diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..7f909e530 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ +# Usefull with: +# +# cat < ~/.local/bin/podiff +# #!/bin/sh +# grep -v '^#:' "$1" +# EOF +# chmod a+x ~/.local/bin/podiff +# git config diff.podiff.textconv podiff + +*.po diff=podiff +*.pot diff=podiff diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..288948351 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.mo +.tx/**/*.po +venv/ +.idea/ +.DS_Store diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..a032f15cf --- /dev/null +++ b/.travis.yml @@ -0,0 +1,14 @@ +language: python +dist: xenial +python: 3.7 +before_install: + - sudo apt-get update + - sudo apt-get install -y hunspell hunspell-fr-comprehensive +install: + - pip install pospell "powrap>=0.3.0" + - pospell --version + - powrap --version +script: + - powrap --check --quiet **/*.po + - pospell -p dict -l fr_FR **/*.po + - make CPYTHON_CLONE=/tmp/cpython/ COMMIT=15e7d2432294ec46f1ad84ce958fdeb9d4ca78b1 diff --git a/.tx/config b/.tx/config new file mode 100644 index 000000000..5de616379 --- /dev/null +++ b/.tx/config @@ -0,0 +1,2331 @@ +[main] +host = https://www.transifex.com +[python-newest.glossary_] +trans.fr = glossary.po +type = PO +source_lang = en + +[python-newest.license] +trans.fr = license.po +type = PO +source_lang = en + +[python-newest.sphinx] +trans.fr = sphinx.po +type = PO +source_lang = en + +[python-newest.about] +trans.fr = about.po +type = PO +source_lang = en + +[python-newest.bugs] +trans.fr = bugs.po +type = PO +source_lang = en + +[python-newest.copyright] +trans.fr = copyright.po +type = PO +source_lang = en + +[python-newest.contents] +trans.fr = contents.po +type = PO +source_lang = en + +[python-newest.library--re] +trans.fr = library/re.po +type = PO +source_lang = en + +[python-newest.library--sysconfig] +trans.fr = library/sysconfig.po +type = PO +source_lang = en + +[python-newest.library--getpass] +trans.fr = library/getpass.po +type = PO +source_lang = en + +[python-newest.library--imghdr] +trans.fr = library/imghdr.po +type = PO +source_lang = en + +[python-newest.library--zipapp] +trans.fr = library/zipapp.po +type = PO +source_lang = en + +[python-newest.library--urllib_error] +trans.fr = library/urllib.error.po +type = PO +source_lang = en + +[python-newest.library--urllib_parse] +trans.fr = library/urllib.parse.po +type = PO +source_lang = en + +[python-newest.library--xml_sax_utils] +trans.fr = library/xml.sax.utils.po +type = PO +source_lang = en + +[python-newest.library--mmap] +trans.fr = library/mmap.po +type = PO +source_lang = en + +[python-newest.library--difflib] +trans.fr = library/difflib.po +type = PO +source_lang = en + +[python-newest.library--tkinter_scrolledtext] +trans.fr = library/tkinter.scrolledtext.po +type = PO +source_lang = en + +[python-newest.library--parser] +trans.fr = library/parser.po +type = PO +source_lang = en + +[python-newest.library--pyexpat] +trans.fr = library/pyexpat.po +type = PO +source_lang = en + +[python-newest.library--curses_panel] +trans.fr = library/curses.panel.po +type = PO +source_lang = en + +[python-newest.library--fractions] +trans.fr = library/fractions.po +type = PO +source_lang = en + +[python-newest.library--asyncio-subprocess] +trans.fr = library/asyncio-subprocess.po +type = PO +source_lang = en + +[python-newest.library--compileall] +trans.fr = library/compileall.po +type = PO +source_lang = en + +[python-newest.library--optparse] +trans.fr = library/optparse.po +type = PO +source_lang = en + +[python-newest.library--imp] +trans.fr = library/imp.po +type = PO +source_lang = en + +[python-newest.library--locale] +trans.fr = library/locale.po +type = PO +source_lang = en + +[python-newest.library--ctypes] +trans.fr = library/ctypes.po +type = PO +source_lang = en + +[python-newest.library--doctest] +trans.fr = library/doctest.po +type = PO +source_lang = en + +[python-newest.library--distribution] +trans.fr = library/distribution.po +type = PO +source_lang = en + +[python-newest.library--ipc] +trans.fr = library/ipc.po +type = PO +source_lang = en + +[python-newest.library--numeric] +trans.fr = library/numeric.po +type = PO +source_lang = en + +[python-newest.library--email_headerregistry] +trans.fr = library/email.headerregistry.po +type = PO +source_lang = en + +[python-newest.library--wave] +trans.fr = library/wave.po +type = PO +source_lang = en + +[python-newest.library--email_errors] +trans.fr = library/email.errors.po +type = PO +source_lang = en + +[python-newest.library--sunau] +trans.fr = library/sunau.po +type = PO +source_lang = en + +[python-newest.library--datetime] +trans.fr = library/datetime.po +type = PO +source_lang = en + +[python-newest.library--macpath] +trans.fr = library/macpath.po +type = PO +source_lang = en + +[python-newest.library--unix] +trans.fr = library/unix.po +type = PO +source_lang = en + +[python-newest.library--array] +trans.fr = library/array.po +type = PO +source_lang = en + +[python-newest.library--email_policy] +trans.fr = library/email.policy.po +type = PO +source_lang = en + +[python-newest.library--sched] +trans.fr = library/sched.po +type = PO +source_lang = en + +[python-newest.library--http_cookies] +trans.fr = library/http.cookies.po +type = PO +source_lang = en + +[python-newest.library--shutil] +trans.fr = library/shutil.po +type = PO +source_lang = en + +[python-newest.library--symbol] +trans.fr = library/symbol.po +type = PO +source_lang = en + +[python-newest.library--xml_dom_minidom] +trans.fr = library/xml.dom.minidom.po +type = PO +source_lang = en + +[python-newest.library--modules] +trans.fr = library/modules.po +type = PO +source_lang = en + +[python-newest.library--unicodedata] +trans.fr = library/unicodedata.po +type = PO +source_lang = en + +[python-newest.library--tkinter_ttk] +trans.fr = library/tkinter.ttk.po +type = PO +source_lang = en + +[python-newest.library--binascii] +trans.fr = library/binascii.po +type = PO +source_lang = en + +[python-newest.library--linecache] +trans.fr = library/linecache.po +type = PO +source_lang = en + +[python-newest.library--functools] +trans.fr = library/functools.po +type = PO +source_lang = en + +[python-newest.library--xml_sax_reader] +trans.fr = library/xml.sax.reader.po +type = PO +source_lang = en + +[python-newest.library--pydoc] +trans.fr = library/pydoc.po +type = PO +source_lang = en + +[python-newest.library--pwd] +trans.fr = library/pwd.po +type = PO +source_lang = en + +[python-newest.library--selectors] +trans.fr = library/selectors.po +type = PO +source_lang = en + +[python-newest.library--os_path] +trans.fr = library/os.path.po +type = PO +source_lang = en + +[python-newest.library--asyncio-sync] +trans.fr = library/asyncio-sync.po +type = PO +source_lang = en + +[python-newest.library--_dummy_thread] +trans.fr = library/_dummy_thread.po +type = PO +source_lang = en + +[python-newest.library--fcntl] +trans.fr = library/fcntl.po +type = PO +source_lang = en + +[python-newest.library--constants] +trans.fr = library/constants.po +type = PO +source_lang = en + +[python-newest.library--statistics] +trans.fr = library/statistics.po +type = PO +source_lang = en + +[python-newest.library--pty] +trans.fr = library/pty.po +type = PO +source_lang = en + +[python-newest.library--crypto] +trans.fr = library/crypto.po +type = PO +source_lang = en + +[python-newest.library--xml] +trans.fr = library/xml.po +type = PO +source_lang = en + +[python-newest.library--imaplib] +trans.fr = library/imaplib.po +type = PO +source_lang = en + +[python-newest.library--text] +trans.fr = library/text.po +type = PO +source_lang = en + +[python-newest.library--mm] +trans.fr = library/mm.po +type = PO +source_lang = en + +[python-newest.library--tempfile] +trans.fr = library/tempfile.po +type = PO +source_lang = en + +[python-newest.library--traceback] +trans.fr = library/traceback.po +type = PO +source_lang = en + +[python-newest.library--itertools] +trans.fr = library/itertools.po +type = PO +source_lang = en + +[python-newest.library--__future__] +trans.fr = library/__future__.po +type = PO +source_lang = en + +[python-newest.library--csv] +trans.fr = library/csv.po +type = PO +source_lang = en + +[python-newest.library--stringprep] +trans.fr = library/stringprep.po +type = PO +source_lang = en + +[python-newest.library--development] +trans.fr = library/development.po +type = PO +source_lang = en + +[python-newest.library--platform] +trans.fr = library/platform.po +type = PO +source_lang = en + +[python-newest.library--time] +trans.fr = library/time.po +type = PO +source_lang = en + +[python-newest.library--pyclbr] +trans.fr = library/pyclbr.po +type = PO +source_lang = en + +[python-newest.library--crypt] +trans.fr = library/crypt.po +type = PO +source_lang = en + +[python-newest.library--token] +trans.fr = library/token.po +type = PO +source_lang = en + +[python-newest.library--spwd] +trans.fr = library/spwd.po +type = PO +source_lang = en + +[python-newest.library--modulefinder] +trans.fr = library/modulefinder.po +type = PO +source_lang = en + +[python-newest.library--argparse] +trans.fr = library/argparse.po +type = PO +source_lang = en + +[python-newest.library--collections] +trans.fr = library/collections.po +type = PO +source_lang = en + +[python-newest.library--http] +trans.fr = library/http.po +type = PO +source_lang = en + +[python-newest.library--email] +trans.fr = library/email.po +type = PO +source_lang = en + +[python-newest.library--http_cookiejar] +trans.fr = library/http.cookiejar.po +type = PO +source_lang = en + +[python-newest.library--cmd] +trans.fr = library/cmd.po +type = PO +source_lang = en + +[python-newest.library--xml_dom_pulldom] +trans.fr = library/xml.dom.pulldom.po +type = PO +source_lang = en + +[python-newest.library--glob] +trans.fr = library/glob.po +type = PO +source_lang = en + +[python-newest.library--keyword] +trans.fr = library/keyword.po +type = PO +source_lang = en + +[python-newest.library--concurrency] +trans.fr = library/concurrency.po +type = PO +source_lang = en + +[python-newest.library--atexit] +trans.fr = library/atexit.po +type = PO +source_lang = en + +[python-newest.library--py_compile] +trans.fr = library/py_compile.po +type = PO +source_lang = en + +[python-newest.library--email_encoders] +trans.fr = library/email.encoders.po +type = PO +source_lang = en + +[python-newest.library--inspect] +trans.fr = library/inspect.po +type = PO +source_lang = en + +[python-newest.library--unittest_mock] +trans.fr = library/unittest.mock.po +type = PO +source_lang = en + +[python-newest.library--asyncio-eventloops] +trans.fr = library/asyncio-eventloops.po +type = PO +source_lang = en + +[python-newest.library--allos] +trans.fr = library/allos.po +type = PO +source_lang = en + +[python-newest.library--stat] +trans.fr = library/stat.po +type = PO +source_lang = en + +[python-newest.library--curses] +trans.fr = library/curses.po +type = PO +source_lang = en + +[python-newest.library--persistence] +trans.fr = library/persistence.po +type = PO +source_lang = en + +[python-newest.library--trace] +trans.fr = library/trace.po +type = PO +source_lang = en + +[python-newest.library--zipfile] +trans.fr = library/zipfile.po +type = PO +source_lang = en + +[python-newest.library--mimetypes] +trans.fr = library/mimetypes.po +type = PO +source_lang = en + +[python-newest.library--superseded] +trans.fr = library/superseded.po +type = PO +source_lang = en + +[python-newest.library--internet] +trans.fr = library/internet.po +type = PO +source_lang = en + +[python-newest.library--poplib] +trans.fr = library/poplib.po +type = PO +source_lang = en + +[python-newest.library--language] +trans.fr = library/language.po +type = PO +source_lang = en + +[python-newest.library--string] +trans.fr = library/string.po +type = PO +source_lang = en + +[python-newest.library--mailcap] +trans.fr = library/mailcap.po +type = PO +source_lang = en + +[python-newest.library--email_parser] +trans.fr = library/email.parser.po +type = PO +source_lang = en + +[python-newest.library--bz2] +trans.fr = library/bz2.po +type = PO +source_lang = en + +[python-newest.library--builtins] +trans.fr = library/builtins.po +type = PO +source_lang = en + +[python-newest.library--logging_config] +trans.fr = library/logging.config.po +type = PO +source_lang = en + +[python-newest.library--xml_sax_handler] +trans.fr = library/xml.sax.handler.po +type = PO +source_lang = en + +[python-newest.library--intro] +trans.fr = library/intro.po +type = PO +source_lang = en + +[python-newest.library--python] +trans.fr = library/python.po +type = PO +source_lang = en + +[python-newest.library--tarfile] +trans.fr = library/tarfile.po +type = PO +source_lang = en + +[python-newest.library--fnmatch] +trans.fr = library/fnmatch.po +type = PO +source_lang = en + +[python-newest.library--tty] +trans.fr = library/tty.po +type = PO +source_lang = en + +[python-newest.library--signal] +trans.fr = library/signal.po +type = PO +source_lang = en + +[python-newest.library--contextlib] +trans.fr = library/contextlib.po +type = PO +source_lang = en + +[python-newest.library--pkgutil] +trans.fr = library/pkgutil.po +type = PO +source_lang = en + +[python-newest.library--codeop] +trans.fr = library/codeop.po +type = PO +source_lang = en + +[python-newest.library--gettext] +trans.fr = library/gettext.po +type = PO +source_lang = en + +[python-newest.library--enum] +trans.fr = library/enum.po +type = PO +source_lang = en + +[python-newest.library--decimal] +trans.fr = library/decimal.po +type = PO +source_lang = en + +[python-newest.library--asyncio] +trans.fr = library/asyncio.po +type = PO +source_lang = en + +[python-newest.library--windows] +trans.fr = library/windows.po +type = PO +source_lang = en + +[python-newest.library--urllib_request] +trans.fr = library/urllib.request.po +type = PO +source_lang = en + +[python-newest.library--socket] +trans.fr = library/socket.po +type = PO +source_lang = en + +[python-newest.library--mailbox] +trans.fr = library/mailbox.po +type = PO +source_lang = en + +[python-newest.library--rlcompleter] +trans.fr = library/rlcompleter.po +type = PO +source_lang = en + +[python-newest.library--gzip] +trans.fr = library/gzip.po +type = PO +source_lang = en + +[python-newest.library--http_client] +trans.fr = library/http.client.po +type = PO +source_lang = en + +[python-newest.library--pickle] +trans.fr = library/pickle.po +type = PO +source_lang = en + +[python-newest.library--concurrent] +trans.fr = library/concurrent.po +type = PO +source_lang = en + +[python-newest.library--timeit] +trans.fr = library/timeit.po +type = PO +source_lang = en + +[python-newest.library--tkinter_tix] +trans.fr = library/tkinter.tix.po +type = PO +source_lang = en + +[python-newest.library--readline] +trans.fr = library/readline.po +type = PO +source_lang = en + +[python-newest.library--netrc] +trans.fr = library/netrc.po +type = PO +source_lang = en + +[python-newest.library--asyncio-dev] +trans.fr = library/asyncio-dev.po +type = PO +source_lang = en + +[python-newest.library--email_charset] +trans.fr = library/email.charset.po +type = PO +source_lang = en + +[python-newest.library--venv] +trans.fr = library/venv.po +type = PO +source_lang = en + +[python-newest.library--struct] +trans.fr = library/struct.po +type = PO +source_lang = en + +[python-newest.library--dbm] +trans.fr = library/dbm.po +type = PO +source_lang = en + +[python-newest.library--xdrlib] +trans.fr = library/xdrlib.po +type = PO +source_lang = en + +[python-newest.library--markup] +trans.fr = library/markup.po +type = PO +source_lang = en + +[python-newest.library--dummy_threading] +trans.fr = library/dummy_threading.po +type = PO +source_lang = en + +[python-newest.library--xml_dom] +trans.fr = library/xml.dom.po +type = PO +source_lang = en + +[python-newest.library--smtpd] +trans.fr = library/smtpd.po +type = PO +source_lang = en + +[python-newest.library--idle] +trans.fr = library/idle.po +type = PO +source_lang = en + +[python-newest.library--pipes] +trans.fr = library/pipes.po +type = PO +source_lang = en + +[python-newest.library--chunk] +trans.fr = library/chunk.po +type = PO +source_lang = en + +[python-newest.library--telnetlib] +trans.fr = library/telnetlib.po +type = PO +source_lang = en + +[python-newest.library--filesys] +trans.fr = library/filesys.po +type = PO +source_lang = en + +[python-newest.library--asynchat] +trans.fr = library/asynchat.po +type = PO +source_lang = en + +[python-newest.library--numbers] +trans.fr = library/numbers.po +type = PO +source_lang = en + +[python-newest.library--xmlrpc_server] +trans.fr = library/xmlrpc.server.po +type = PO +source_lang = en + +[python-newest.library--plistlib] +trans.fr = library/plistlib.po +type = PO +source_lang = en + +[python-newest.library--secrets] +trans.fr = library/secrets.po +type = PO +source_lang = en + +[python-newest.library--marshal] +trans.fr = library/marshal.po +type = PO +source_lang = en + +[python-newest.library--html_parser] +trans.fr = library/html.parser.po +type = PO +source_lang = en + +[python-newest.library--netdata] +trans.fr = library/netdata.po +type = PO +source_lang = en + +[python-newest.library--gc] +trans.fr = library/gc.po +type = PO +source_lang = en + +[python-newest.library--fileformats] +trans.fr = library/fileformats.po +type = PO +source_lang = en + +[python-newest.library--bisect] +trans.fr = library/bisect.po +type = PO +source_lang = en + +[python-newest.library--symtable] +trans.fr = library/symtable.po +type = PO +source_lang = en + +[python-newest.library--nis] +trans.fr = library/nis.po +type = PO +source_lang = en + +[python-newest.library--html] +trans.fr = library/html.po +type = PO +source_lang = en + +[python-newest.library--typing] +trans.fr = library/typing.po +type = PO +source_lang = en + +[python-newest.library--weakref] +trans.fr = library/weakref.po +type = PO +source_lang = en + +[python-newest.library--shlex] +trans.fr = library/shlex.po +type = PO +source_lang = en + +[python-newest.library--binary] +trans.fr = library/binary.po +type = PO +source_lang = en + +[python-newest.library--distutils] +trans.fr = library/distutils.po +type = PO +source_lang = en + +[python-newest.library--email_generator] +trans.fr = library/email.generator.po +type = PO +source_lang = en + +[python-newest.library--ensurepip] +trans.fr = library/ensurepip.po +type = PO +source_lang = en + +[python-newest.library--importlib] +trans.fr = library/importlib.po +type = PO +source_lang = en + +[python-newest.library--warnings] +trans.fr = library/warnings.po +type = PO +source_lang = en + +[python-newest.library--tabnanny] +trans.fr = library/tabnanny.po +type = PO +source_lang = en + +[python-newest.library--json] +trans.fr = library/json.po +type = PO +source_lang = en + +[python-newest.library--reprlib] +trans.fr = library/reprlib.po +type = PO +source_lang = en + +[python-newest.library--concurrent_futures] +trans.fr = library/concurrent.futures.po +type = PO +source_lang = en + +[python-newest.library--tk] +trans.fr = library/tk.po +type = PO +source_lang = en + +[python-newest.library--abc] +trans.fr = library/abc.po +type = PO +source_lang = en + +[python-newest.library--filecmp] +trans.fr = library/filecmp.po +type = PO +source_lang = en + +[python-newest.library--undoc] +trans.fr = library/undoc.po +type = PO +source_lang = en + +[python-newest.library--functions] +trans.fr = library/functions.po +type = PO +source_lang = en + +[python-newest.library--unittest_mock-examples] +trans.fr = library/unittest.mock-examples.po +type = PO +source_lang = en + +[python-newest.library--heapq] +trans.fr = library/heapq.po +type = PO +source_lang = en + +[python-newest.library--termios] +trans.fr = library/termios.po +type = PO +source_lang = en + +[python-newest.library--errno] +trans.fr = library/errno.po +type = PO +source_lang = en + +[python-newest.library--calendar] +trans.fr = library/calendar.po +type = PO +source_lang = en + +[python-newest.library--configparser] +trans.fr = library/configparser.po +type = PO +source_lang = en + +[python-newest.library--unittest] +trans.fr = library/unittest.po +type = PO +source_lang = en + +[python-newest.library--socketserver] +trans.fr = library/socketserver.po +type = PO +source_lang = en + +[python-newest.library--tokenize] +trans.fr = library/tokenize.po +type = PO +source_lang = en + +[python-newest.library--random] +trans.fr = library/random.po +type = PO +source_lang = en + +[python-newest.library--code] +trans.fr = library/code.po +type = PO +source_lang = en + +[python-newest.library--sqlite3] +trans.fr = library/sqlite3.po +type = PO +source_lang = en + +[python-newest.library--colorsys] +trans.fr = library/colorsys.po +type = PO +source_lang = en + +[python-newest.library--quopri] +trans.fr = library/quopri.po +type = PO +source_lang = en + +[python-newest.library--dis] +trans.fr = library/dis.po +type = PO +source_lang = en + +[python-newest.library--stdtypes] +trans.fr = library/stdtypes.po +type = PO +source_lang = en + +[python-newest.library--tracemalloc] +trans.fr = library/tracemalloc.po +type = PO +source_lang = en + +[python-newest.library--queue] +trans.fr = library/queue.po +type = PO +source_lang = en + +[python-newest.library--posix] +trans.fr = library/posix.po +type = PO +source_lang = en + +[python-newest.library--turtle] +trans.fr = library/turtle.po +type = PO +source_lang = en + +[python-newest.library--faulthandler] +trans.fr = library/faulthandler.po +type = PO +source_lang = en + +[python-newest.library--email_examples] +trans.fr = library/email.examples.po +type = PO +source_lang = en + +[python-newest.library--base64] +trans.fr = library/base64.po +type = PO +source_lang = en + +[python-newest.library--index] +trans.fr = library/index.po +type = PO +source_lang = en + +[python-newest.library--email_message] +trans.fr = library/email.message.po +type = PO +source_lang = en + +[python-newest.library--xml_etree_elementtree] +trans.fr = library/xml.etree.elementtree.po +type = PO +source_lang = en + +[python-newest.library--asyncio-task] +trans.fr = library/asyncio-task.po +type = PO +source_lang = en + +[python-newest.library--asyncore] +trans.fr = library/asyncore.po +type = PO +source_lang = en + +[python-newest.library--uu] +trans.fr = library/uu.po +type = PO +source_lang = en + +[python-newest.library--urllib_robotparser] +trans.fr = library/urllib.robotparser.po +type = PO +source_lang = en + +[python-newest.library--cgitb] +trans.fr = library/cgitb.po +type = PO +source_lang = en + +[python-newest.library--pathlib] +trans.fr = library/pathlib.po +type = PO +source_lang = en + +[python-newest.library--misc] +trans.fr = library/misc.po +type = PO +source_lang = en + +[python-newest.library--_thread] +trans.fr = library/_thread.po +type = PO +source_lang = en + +[python-newest.library--email_header] +trans.fr = library/email.header.po +type = PO +source_lang = en + +[python-newest.library--runpy] +trans.fr = library/runpy.po +type = PO +source_lang = en + +[python-newest.library--asyncio-eventloop] +trans.fr = library/asyncio-eventloop.po +type = PO +source_lang = en + +[python-newest.library--textwrap] +trans.fr = library/textwrap.po +type = PO +source_lang = en + +[python-newest.library--msilib] +trans.fr = library/msilib.po +type = PO +source_lang = en + +[python-newest.library--debug] +trans.fr = library/debug.po +type = PO +source_lang = en + +[python-newest.library--nntplib] +trans.fr = library/nntplib.po +type = PO +source_lang = en + +[python-newest.library--ast] +trans.fr = library/ast.po +type = PO +source_lang = en + +[python-newest.library--site] +trans.fr = library/site.po +type = PO +source_lang = en + +[python-newest.library--uuid] +trans.fr = library/uuid.po +type = PO +source_lang = en + +[python-newest.library--email_iterators] +trans.fr = library/email.iterators.po +type = PO +source_lang = en + +[python-newest.library--threading] +trans.fr = library/threading.po +type = PO +source_lang = en + +[python-newest.library--email_mime] +trans.fr = library/email.mime.po +type = PO +source_lang = en + +[python-newest.library--shelve] +trans.fr = library/shelve.po +type = PO +source_lang = en + +[python-newest.library--profile] +trans.fr = library/profile.po +type = PO +source_lang = en + +[python-newest.library--math] +trans.fr = library/math.po +type = PO +source_lang = en + +[python-newest.library--fileinput] +trans.fr = library/fileinput.po +type = PO +source_lang = en + +[python-newest.library--select] +trans.fr = library/select.po +type = PO +source_lang = en + +[python-newest.library--pprint] +trans.fr = library/pprint.po +type = PO +source_lang = en + +[python-newest.library--datatypes] +trans.fr = library/datatypes.po +type = PO +source_lang = en + +[python-newest.library--ssl] +trans.fr = library/ssl.po +type = PO +source_lang = en + +[python-newest.library--asyncio-queue] +trans.fr = library/asyncio-queue.po +type = PO +source_lang = en + +[python-newest.library--binhex] +trans.fr = library/binhex.po +type = PO +source_lang = en + +[python-newest.library--io] +trans.fr = library/io.po +type = PO +source_lang = en + +[python-newest.library--asyncio-protocol] +trans.fr = library/asyncio-protocol.po +type = PO +source_lang = en + +[python-newest.library--othergui] +trans.fr = library/othergui.po +type = PO +source_lang = en + +[python-newest.library--webbrowser] +trans.fr = library/webbrowser.po +type = PO +source_lang = en + +[python-newest.library--hmac] +trans.fr = library/hmac.po +type = PO +source_lang = en + +[python-newest.library--collections_abc] +trans.fr = library/collections.abc.po +type = PO +source_lang = en + +[python-newest.library--ftplib] +trans.fr = library/ftplib.po +type = PO +source_lang = en + +[python-newest.library--multiprocessing] +trans.fr = library/multiprocessing.po +type = PO +source_lang = en + +[python-newest.library--types] +trans.fr = library/types.po +type = PO +source_lang = en + +[python-newest.library--ipaddress] +trans.fr = library/ipaddress.po +type = PO +source_lang = en + +[python-newest.library--fpectl] +trans.fr = library/fpectl.po +type = PO +source_lang = en + +[python-newest.library--exceptions] +trans.fr = library/exceptions.po +type = PO +source_lang = en + +[python-newest.library--asyncio-stream] +trans.fr = library/asyncio-stream.po +type = PO +source_lang = en + +[python-newest.library--custominterp] +trans.fr = library/custominterp.po +type = PO +source_lang = en + +[python-newest.library--codecs] +trans.fr = library/codecs.po +type = PO +source_lang = en + +[python-newest.library--bdb] +trans.fr = library/bdb.po +type = PO +source_lang = en + +[python-newest.library--archiving] +trans.fr = library/archiving.po +type = PO +source_lang = en + +[python-newest.library--hashlib] +trans.fr = library/hashlib.po +type = PO +source_lang = en + +[python-newest.library--tkinter] +trans.fr = library/tkinter.po +type = PO +source_lang = en + +[python-newest.library--sys] +trans.fr = library/sys.po +type = PO +source_lang = en + +[python-newest.library--cmath] +trans.fr = library/cmath.po +type = PO +source_lang = en + +[python-newest.library--functional] +trans.fr = library/functional.po +type = PO +source_lang = en + +[python-newest.library--html_entities] +trans.fr = library/html.entities.po +type = PO +source_lang = en + +[python-newest.library--resource] +trans.fr = library/resource.po +type = PO +source_lang = en + +[python-newest.library--pickletools] +trans.fr = library/pickletools.po +type = PO +source_lang = en + +[python-newest.library--email_util] +trans.fr = library/email.util.po +type = PO +source_lang = en + +[python-newest.library--xmlrpc] +trans.fr = library/xmlrpc.po +type = PO +source_lang = en + +[python-newest.library--lzma] +trans.fr = library/lzma.po +type = PO +source_lang = en + +[python-newest.library--syslog] +trans.fr = library/syslog.po +type = PO +source_lang = en + +[python-newest.library--subprocess] +trans.fr = library/subprocess.po +type = PO +source_lang = en + +[python-newest.library--pdb] +trans.fr = library/pdb.po +type = PO +source_lang = en + +[python-newest.library--wsgiref] +trans.fr = library/wsgiref.po +type = PO +source_lang = en + +[python-newest.library--formatter] +trans.fr = library/formatter.po +type = PO +source_lang = en + +[python-newest.library--getopt] +trans.fr = library/getopt.po +type = PO +source_lang = en + +[python-newest.library--cgi] +trans.fr = library/cgi.po +type = PO +source_lang = en + +[python-newest.library--winsound] +trans.fr = library/winsound.po +type = PO +source_lang = en + +[python-newest.library--audioop] +trans.fr = library/audioop.po +type = PO +source_lang = en + +[python-newest.library--__main__] +trans.fr = library/__main__.po +type = PO +source_lang = en + +[python-newest.library--sndhdr] +trans.fr = library/sndhdr.po +type = PO +source_lang = en + +[python-newest.library--copy] +trans.fr = library/copy.po +type = PO +source_lang = en + +[python-newest.library--email_contentmanager] +trans.fr = library/email.contentmanager.po +type = PO +source_lang = en + +[python-newest.library--aifc] +trans.fr = library/aifc.po +type = PO +source_lang = en + +[python-newest.library--msvcrt] +trans.fr = library/msvcrt.po +type = PO +source_lang = en + +[python-newest.library--xmlrpc_client] +trans.fr = library/xmlrpc.client.po +type = PO +source_lang = en + +[python-newest.library--logging_handlers] +trans.fr = library/logging.handlers.po +type = PO +source_lang = en + +[python-newest.library--grp] +trans.fr = library/grp.po +type = PO +source_lang = en + +[python-newest.library--logging] +trans.fr = library/logging.po +type = PO +source_lang = en + +[python-newest.library--i18n] +trans.fr = library/i18n.po +type = PO +source_lang = en + +[python-newest.library--zipimport] +trans.fr = library/zipimport.po +type = PO +source_lang = en + +[python-newest.library--curses_ascii] +trans.fr = library/curses.ascii.po +type = PO +source_lang = en + +[python-newest.library--operator] +trans.fr = library/operator.po +type = PO +source_lang = en + +[python-newest.library--winreg] +trans.fr = library/winreg.po +type = PO +source_lang = en + +[python-newest.library--frameworks] +trans.fr = library/frameworks.po +type = PO +source_lang = en + +[python-newest.library--ossaudiodev] +trans.fr = library/ossaudiodev.po +type = PO +source_lang = en + +[python-newest.library--urllib] +trans.fr = library/urllib.po +type = PO +source_lang = en + +[python-newest.library--os] +trans.fr = library/os.po +type = PO +source_lang = en + +[python-newest.library--smtplib] +trans.fr = library/smtplib.po +type = PO +source_lang = en + +[python-newest.library--copyreg] +trans.fr = library/copyreg.po +type = PO +source_lang = en + +[python-newest.library--test] +trans.fr = library/test.po +type = PO +source_lang = en + +[python-newest.library--xml_sax] +trans.fr = library/xml.sax.po +type = PO +source_lang = en + +[python-newest.library--2to3] +trans.fr = library/2to3.po +type = PO +source_lang = en + +[python-newest.library--http_server] +trans.fr = library/http.server.po +type = PO +source_lang = en + +[python-newest.library--email_compat32-message] +trans.fr = library/email.compat32-message.po +type = PO +source_lang = en + +[python-newest.library--zlib] +trans.fr = library/zlib.po +type = PO +source_lang = en + +[python-newest.distutils--configfile] +trans.fr = distutils/configfile.po +type = PO +source_lang = en + +[python-newest.distutils--sourcedist] +trans.fr = distutils/sourcedist.po +type = PO +source_lang = en + +[python-newest.distutils--extending] +trans.fr = distutils/extending.po +type = PO +source_lang = en + +[python-newest.distutils--setupscript] +trans.fr = distutils/setupscript.po +type = PO +source_lang = en + +[python-newest.distutils--commandref] +trans.fr = distutils/commandref.po +type = PO +source_lang = en + +[python-newest.distutils--builtdist] +trans.fr = distutils/builtdist.po +type = PO +source_lang = en + +[python-newest.distutils--introduction] +trans.fr = distutils/introduction.po +type = PO +source_lang = en + +[python-newest.distutils--index] +trans.fr = distutils/index.po +type = PO +source_lang = en + +[python-newest.distutils--packageindex] +trans.fr = distutils/packageindex.po +type = PO +source_lang = en + +[python-newest.distutils--examples] +trans.fr = distutils/examples.po +type = PO +source_lang = en + +[python-newest.distutils--uploading] +trans.fr = distutils/uploading.po +type = PO +source_lang = en + +[python-newest.distutils--apiref] +trans.fr = distutils/apiref.po +type = PO +source_lang = en + +[python-newest.distributing--index] +trans.fr = distributing/index.po +type = PO +source_lang = en + +[python-newest.faq--extending] +trans.fr = faq/extending.po +type = PO +source_lang = en + +[python-newest.faq--windows] +trans.fr = faq/windows.po +type = PO +source_lang = en + +[python-newest.faq--general] +trans.fr = faq/general.po +type = PO +source_lang = en + +[python-newest.faq--library] +trans.fr = faq/library.po +type = PO +source_lang = en + +[python-newest.faq--gui] +trans.fr = faq/gui.po +type = PO +source_lang = en + +[python-newest.faq--installed] +trans.fr = faq/installed.po +type = PO +source_lang = en + +[python-newest.faq--index] +trans.fr = faq/index.po +type = PO +source_lang = en + +[python-newest.faq--design] +trans.fr = faq/design.po +type = PO +source_lang = en + +[python-newest.faq--programming] +trans.fr = faq/programming.po +type = PO +source_lang = en + +[python-newest.using--unix] +trans.fr = using/unix.po +type = PO +source_lang = en + +[python-newest.using--mac] +trans.fr = using/mac.po +type = PO +source_lang = en + +[python-newest.using--cmdline] +trans.fr = using/cmdline.po +type = PO +source_lang = en + +[python-newest.using--windows] +trans.fr = using/windows.po +type = PO +source_lang = en + +[python-newest.using--index] +trans.fr = using/index.po +type = PO +source_lang = en + +[python-newest.howto--clinic] +trans.fr = howto/clinic.po +type = PO +source_lang = en + +[python-newest.howto--urllib2] +trans.fr = howto/urllib2.po +type = PO +source_lang = en + +[python-newest.howto--argparse] +trans.fr = howto/argparse.po +type = PO +source_lang = en + +[python-newest.howto--curses] +trans.fr = howto/curses.po +type = PO +source_lang = en + +[python-newest.howto--logging-cookbook] +trans.fr = howto/logging-cookbook.po +type = PO +source_lang = en + +[python-newest.howto--sockets] +trans.fr = howto/sockets.po +type = PO +source_lang = en + +[python-newest.howto--pyporting] +trans.fr = howto/pyporting.po +type = PO +source_lang = en + +[python-newest.howto--index] +trans.fr = howto/index.po +type = PO +source_lang = en + +[python-newest.howto--unicode] +trans.fr = howto/unicode.po +type = PO +source_lang = en + +[python-newest.howto--instrumentation] +trans.fr = howto/instrumentation.po +type = PO +source_lang = en + +[python-newest.howto--cporting] +trans.fr = howto/cporting.po +type = PO +source_lang = en + +[python-newest.howto--ipaddress] +trans.fr = howto/ipaddress.po +type = PO +source_lang = en + +[python-newest.howto--sorting] +trans.fr = howto/sorting.po +type = PO +source_lang = en + +[python-newest.howto--functional] +trans.fr = howto/functional.po +type = PO +source_lang = en + +[python-newest.howto--logging] +trans.fr = howto/logging.po +type = PO +source_lang = en + +[python-newest.howto--regex] +trans.fr = howto/regex.po +type = PO +source_lang = en + +[python-newest.howto--descriptor] +trans.fr = howto/descriptor.po +type = PO +source_lang = en + +[python-newest.install--index] +trans.fr = install/index.po +type = PO +source_lang = en + +[python-newest.reference--simple_stmts] +trans.fr = reference/simple_stmts.po +type = PO +source_lang = en + +[python-newest.reference--expressions] +trans.fr = reference/expressions.po +type = PO +source_lang = en + +[python-newest.reference--compound_stmts] +trans.fr = reference/compound_stmts.po +type = PO +source_lang = en + +[python-newest.reference--introduction] +trans.fr = reference/introduction.po +type = PO +source_lang = en + +[python-newest.reference--import] +trans.fr = reference/import.po +type = PO +source_lang = en + +[python-newest.reference--grammar] +trans.fr = reference/grammar.po +type = PO +source_lang = en + +[python-newest.reference--datamodel] +trans.fr = reference/datamodel.po +type = PO +source_lang = en + +[python-newest.reference--index] +trans.fr = reference/index.po +type = PO +source_lang = en + +[python-newest.reference--toplevel_components] +trans.fr = reference/toplevel_components.po +type = PO +source_lang = en + +[python-newest.reference--lexical_analysis] +trans.fr = reference/lexical_analysis.po +type = PO +source_lang = en + +[python-newest.reference--executionmodel] +trans.fr = reference/executionmodel.po +type = PO +source_lang = en + +[python-newest.whatsnew--2_6] +trans.fr = whatsnew/2.6.po +type = PO +source_lang = en + +[python-newest.whatsnew--2_3] +trans.fr = whatsnew/2.3.po +type = PO +source_lang = en + +[python-newest.whatsnew--changelog] +trans.fr = whatsnew/changelog.po +type = PO +source_lang = en + +[python-newest.whatsnew--2_2] +trans.fr = whatsnew/2.2.po +type = PO +source_lang = en + +[python-newest.whatsnew--3_3] +trans.fr = whatsnew/3.3.po +type = PO +source_lang = en + +[python-newest.whatsnew--3_4] +trans.fr = whatsnew/3.4.po +type = PO +source_lang = en + +[python-newest.whatsnew--3_2] +trans.fr = whatsnew/3.2.po +type = PO +source_lang = en + +[python-newest.whatsnew--2_7] +trans.fr = whatsnew/2.7.po +type = PO +source_lang = en + +[python-newest.whatsnew--3_1] +trans.fr = whatsnew/3.1.po +type = PO +source_lang = en + +[python-newest.whatsnew--3_0] +trans.fr = whatsnew/3.0.po +type = PO +source_lang = en + +[python-newest.whatsnew--index] +trans.fr = whatsnew/index.po +type = PO +source_lang = en + +[python-newest.whatsnew--2_0] +trans.fr = whatsnew/2.0.po +type = PO +source_lang = en + +[python-newest.whatsnew--2_4] +trans.fr = whatsnew/2.4.po +type = PO +source_lang = en + +[python-newest.whatsnew--3_5] +trans.fr = whatsnew/3.5.po +type = PO +source_lang = en + +[python-newest.whatsnew--2_5] +trans.fr = whatsnew/2.5.po +type = PO +source_lang = en + +[python-newest.whatsnew--2_1] +trans.fr = whatsnew/2.1.po +type = PO +source_lang = en + +[python-newest.whatsnew--3_6] +trans.fr = whatsnew/3.6.po +type = PO +source_lang = en + +[python-newest.tutorial--modules] +trans.fr = tutorial/modules.po +type = PO +source_lang = en + +[python-newest.tutorial--stdlib2] +trans.fr = tutorial/stdlib2.po +type = PO +source_lang = en + +[python-newest.tutorial--whatnow] +trans.fr = tutorial/whatnow.po +type = PO +source_lang = en + +[python-newest.tutorial--floatingpoint] +trans.fr = tutorial/floatingpoint.po +type = PO +source_lang = en + +[python-newest.tutorial--inputoutput] +trans.fr = tutorial/inputoutput.po +type = PO +source_lang = en + +[python-newest.tutorial--classes] +trans.fr = tutorial/classes.po +type = PO +source_lang = en + +[python-newest.tutorial--appendix] +trans.fr = tutorial/appendix.po +type = PO +source_lang = en + +[python-newest.tutorial--interactive] +trans.fr = tutorial/interactive.po +type = PO +source_lang = en + +[python-newest.tutorial--venv] +trans.fr = tutorial/venv.po +type = PO +source_lang = en + +[python-newest.tutorial--introduction] +trans.fr = tutorial/introduction.po +type = PO +source_lang = en + +[python-newest.tutorial--index] +trans.fr = tutorial/index.po +type = PO +source_lang = en + +[python-newest.tutorial--controlflow] +trans.fr = tutorial/controlflow.po +type = PO +source_lang = en + +[python-newest.tutorial--appetite] +trans.fr = tutorial/appetite.po +type = PO +source_lang = en + +[python-newest.tutorial--errors] +trans.fr = tutorial/errors.po +type = PO +source_lang = en + +[python-newest.tutorial--interpreter] +trans.fr = tutorial/interpreter.po +type = PO +source_lang = en + +[python-newest.tutorial--datastructures] +trans.fr = tutorial/datastructures.po +type = PO +source_lang = en + +[python-newest.tutorial--stdlib] +trans.fr = tutorial/stdlib.po +type = PO +source_lang = en + +[python-newest.extending--building] +trans.fr = extending/building.po +type = PO +source_lang = en + +[python-newest.extending--extending] +trans.fr = extending/extending.po +type = PO +source_lang = en + +[python-newest.extending--windows] +trans.fr = extending/windows.po +type = PO +source_lang = en + +[python-newest.extending--index] +trans.fr = extending/index.po +type = PO +source_lang = en + +[python-newest.extending--embedding] +trans.fr = extending/embedding.po +type = PO +source_lang = en + +[python-newest.extending--newtypes] +trans.fr = extending/newtypes.po +type = PO +source_lang = en + +[python-newest.installing--index] +trans.fr = installing/index.po +type = PO +source_lang = en + +[python-newest.c-api--conversion] +trans.fr = c-api/conversion.po +type = PO +source_lang = en + +[python-newest.c-api--datetime] +trans.fr = c-api/datetime.po +type = PO +source_lang = en + +[python-newest.c-api--memory] +trans.fr = c-api/memory.po +type = PO +source_lang = en + +[python-newest.c-api--coro] +trans.fr = c-api/coro.po +type = PO +source_lang = en + +[python-newest.c-api--file] +trans.fr = c-api/file.po +type = PO +source_lang = en + +[python-newest.c-api--object] +trans.fr = c-api/object.po +type = PO +source_lang = en + +[python-newest.c-api--capsule] +trans.fr = c-api/capsule.po +type = PO +source_lang = en + +[python-newest.c-api--function] +trans.fr = c-api/function.po +type = PO +source_lang = en + +[python-newest.c-api--refcounting] +trans.fr = c-api/refcounting.po +type = PO +source_lang = en + +[python-newest.c-api--cell] +trans.fr = c-api/cell.po +type = PO +source_lang = en + +[python-newest.c-api--none] +trans.fr = c-api/none.po +type = PO +source_lang = en + +[python-newest.c-api--allocation] +trans.fr = c-api/allocation.po +type = PO +source_lang = en + +[python-newest.c-api--intro] +trans.fr = c-api/intro.po +type = PO +source_lang = en + +[python-newest.c-api--number] +trans.fr = c-api/number.po +type = PO +source_lang = en + +[python-newest.c-api--float] +trans.fr = c-api/float.po +type = PO +source_lang = en + +[python-newest.c-api--list] +trans.fr = c-api/list.po +type = PO +source_lang = en + +[python-newest.c-api--memoryview] +trans.fr = c-api/memoryview.po +type = PO +source_lang = en + +[python-newest.c-api--structures] +trans.fr = c-api/structures.po +type = PO +source_lang = en + +[python-newest.c-api--mapping] +trans.fr = c-api/mapping.po +type = PO +source_lang = en + +[python-newest.c-api--iterator] +trans.fr = c-api/iterator.po +type = PO +source_lang = en + +[python-newest.c-api--abstract] +trans.fr = c-api/abstract.po +type = PO +source_lang = en + +[python-newest.c-api--gen] +trans.fr = c-api/gen.po +type = PO +source_lang = en + +[python-newest.c-api--arg] +trans.fr = c-api/arg.po +type = PO +source_lang = en + +[python-newest.c-api--method] +trans.fr = c-api/method.po +type = PO +source_lang = en + +[python-newest.c-api--sequence] +trans.fr = c-api/sequence.po +type = PO +source_lang = en + +[python-newest.c-api--marshal] +trans.fr = c-api/marshal.po +type = PO +source_lang = en + +[python-newest.c-api--import] +trans.fr = c-api/import.po +type = PO +source_lang = en + +[python-newest.c-api--weakref] +trans.fr = c-api/weakref.po +type = PO +source_lang = en + +[python-newest.c-api--dict] +trans.fr = c-api/dict.po +type = PO +source_lang = en + +[python-newest.c-api--buffer] +trans.fr = c-api/buffer.po +type = PO +source_lang = en + +[python-newest.c-api--code] +trans.fr = c-api/code.po +type = PO +source_lang = en + +[python-newest.c-api--index] +trans.fr = c-api/index.po +type = PO +source_lang = en + +[python-newest.c-api--concrete] +trans.fr = c-api/concrete.po +type = PO +source_lang = en + +[python-newest.c-api--unicode] +trans.fr = c-api/unicode.po +type = PO +source_lang = en + +[python-newest.c-api--bytes] +trans.fr = c-api/bytes.po +type = PO +source_lang = en + +[python-newest.c-api--init] +trans.fr = c-api/init.po +type = PO +source_lang = en + +[python-newest.c-api--bool] +trans.fr = c-api/bool.po +type = PO +source_lang = en + +[python-newest.c-api--reflection] +trans.fr = c-api/reflection.po +type = PO +source_lang = en + +[python-newest.c-api--gcsupport] +trans.fr = c-api/gcsupport.po +type = PO +source_lang = en + +[python-newest.c-api--module] +trans.fr = c-api/module.po +type = PO +source_lang = en + +[python-newest.c-api--veryhigh] +trans.fr = c-api/veryhigh.po +type = PO +source_lang = en + +[python-newest.c-api--exceptions] +trans.fr = c-api/exceptions.po +type = PO +source_lang = en + +[python-newest.c-api--objimpl] +trans.fr = c-api/objimpl.po +type = PO +source_lang = en + +[python-newest.c-api--type] +trans.fr = c-api/type.po +type = PO +source_lang = en + +[python-newest.c-api--set] +trans.fr = c-api/set.po +type = PO +source_lang = en + +[python-newest.c-api--codec] +trans.fr = c-api/codec.po +type = PO +source_lang = en + +[python-newest.c-api--typeobj] +trans.fr = c-api/typeobj.po +type = PO +source_lang = en + +[python-newest.c-api--sys] +trans.fr = c-api/sys.po +type = PO +source_lang = en + +[python-newest.c-api--bytearray] +trans.fr = c-api/bytearray.po +type = PO +source_lang = en + +[python-newest.c-api--tuple] +trans.fr = c-api/tuple.po +type = PO +source_lang = en + +[python-newest.c-api--apiabiversion] +trans.fr = c-api/apiabiversion.po +type = PO +source_lang = en + +[python-newest.c-api--stable] +trans.fr = c-api/stable.po +type = PO +source_lang = en + +[python-newest.c-api--objbuffer] +trans.fr = c-api/objbuffer.po +type = PO +source_lang = en + +[python-newest.c-api--slice] +trans.fr = c-api/slice.po +type = PO +source_lang = en + +[python-newest.c-api--long] +trans.fr = c-api/long.po +type = PO +source_lang = en + +[python-newest.c-api--iter] +trans.fr = c-api/iter.po +type = PO +source_lang = en + +[python-newest.c-api--utilities] +trans.fr = c-api/utilities.po +type = PO +source_lang = en + +[python-newest.c-api--complex] +trans.fr = c-api/complex.po +type = PO +source_lang = en + +[python-newest.c-api--descriptor] +trans.fr = c-api/descriptor.po +type = PO +source_lang = en diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..013b3813a --- /dev/null +++ b/Makefile @@ -0,0 +1,113 @@ +# Makefile for French Python Documentation +# +# Here is what you can do: +# +# - make # Automatically build an html local version +# - make todo # To list remaining tasks +# - make verifs # To check for correctness: wrapping, spelling +# - make powrap # To check for wrapping +# - make pospell # To check for spelling +# - make merge # To merge pot from upstream +# - make fuzzy # To find fuzzy strings +# - make progress # To compute current progression +# - make upgrade_venv # To upgrade the venv that compiles the doc +# +# Modes are: autobuild-stable, autobuild-dev, and autobuild-html, +# documented in gen/src/3.6/Doc/Makefile as we're only delegating the +# real work to the Python Doc Makefile. + +CPYTHON_CLONE := ../cpython/ +SPHINX_CONF := $(CPYTHON_CLONE)/Doc/conf.py +LANGUAGE := fr +VENV := ~/.venvs/python-docs-i18n/ +PYTHON := $(shell which python3) +MODE := html +BRANCH = 3.7 +COMMIT = +JOBS = auto + + +.PHONY: all +all: $(SPHINX_CONF) $(VENV)/bin/activate +ifneq "$(shell cd $(CPYTHON_CLONE) 2>/dev/null && git describe --contains --all HEAD)" "$(BRANCH)" + $(warning "Your ../cpython checkout may be on the wrong branch, got $(shell cd $(CPYTHON_CLONE) 2>/dev/null && git describe --contains --all HEAD) expected $(BRANCH)") +endif + mkdir -p $(CPYTHON_CLONE)/locales/$(LANGUAGE)/ + ln -nfs $(shell $(PYTHON) -c 'import os; print(os.path.realpath("."))') $(CPYTHON_CLONE)/locales/$(LANGUAGE)/LC_MESSAGES + $(MAKE) -C $(CPYTHON_CLONE)/Doc/ VENVDIR=$(VENV) PYTHON=$(PYTHON) SPHINXOPTS='-qW -j$(JOBS) -D locale_dirs=../locales -D language=$(LANGUAGE) -D gettext_compact=0 -D latex_engine=xelatex -D latex_elements.inputenc= -D latex_elements.fontenc=' $(MODE) + + +$(SPHINX_CONF): + git clone --depth 1 --branch $(BRANCH) https://github.com/python/cpython.git $(CPYTHON_CLONE) + [ -n "$(COMMIT)" ] && (i=1; while ! $$(git -C $(CPYTHON_CLONE) checkout $(COMMIT)); do i=$$((i * 2)); git -C $(CPYTHON_CLONE) fetch --depth $$i; done) || true + + +.PHONY: upgrade_venv +upgrade_venv: + $(MAKE) -C $(CPYTHON_CLONE)/Doc/ VENVDIR=$(VENV) PYTHON=$(PYTHON) venv + $(VENV)/bin/pip install -U pip potodo powrap pospell + + +$(VENV)/bin/activate: $(SPHINX_CONF) + $(MAKE) -C $(CPYTHON_CLONE)/Doc/ VENVDIR=$(VENV) PYTHON=$(PYTHON) venv + $(VENV)/bin/python3 -m pip install Sphinx==2.2 + + +.PHONY: progress +progress: + @python3 -c 'import sys; print("{:.1%}".format(int(sys.argv[1]) / int(sys.argv[2])))' \ + $(shell msgcat *.po */*.po | msgattrib --translated | grep -c '^msgid') \ + $(shell msgcat *.po */*.po | grep -c '^msgid') + + +$(VENV)/bin/potodo: $(VENV)/bin/activate + $(VENV)/bin/pip install potodo + +$(VENV)/bin/powrap: $(VENV)/bin/activate + $(VENV)/bin/pip install powrap + +$(VENV)/bin/pospell: $(VENV)/bin/activate + $(VENV)/bin/pip install pospell + +.PHONY: todo +todo: $(VENV)/bin/potodo + $(VENV)/bin/potodo + +.PHONY: verifs +verifs: powrap pospell + +.PHONY: powrap +powrap: $(VENV)/bin/powrap + $(VENV)/bin/powrap --check --quiet *.po */*.po + +.PHONY: pospell +pospell: $(VENV)/bin/pospell + $(VENV)/bin/pospell -p dict -l fr_FR *.po */*.po + +.PHONY: merge +merge: upgrade_venv +ifneq "$(shell cd $(CPYTHON_CLONE) 2>/dev/null && git describe --contains --all HEAD)" "$(BRANCH)" + $(error "You're merging from a different branch:" "$(shell cd $(CPYTHON_CLONE) 2>/dev/null && git describe --contains --all HEAD)" vs "$(BRANCH)") +endif + (cd $(CPYTHON_CLONE)/Doc; rm -f build/NEWS) + (cd $(CPYTHON_CLONE); $(VENV)/bin/sphinx-build -Q -b gettext -D gettext_compact=0 Doc pot/) + find $(CPYTHON_CLONE)/pot/ -name '*.pot' |\ + while read -r POT;\ + do\ + PO="./$$(echo "$$POT" | sed "s#$(CPYTHON_CLONE)/pot/##; s#\.pot\$$#.po#")";\ + mkdir -p "$$(dirname "$$PO")";\ + if [ -f "$$PO" ];\ + then\ + case "$$POT" in\ + *whatsnew*) msgmerge --backup=off --force-po --no-fuzzy-matching -U "$$PO" "$$POT" ;;\ + *) msgmerge --backup=off --force-po -U "$$PO" "$$POT" ;;\ + esac\ + else\ + msgcat -o "$$PO" "$$POT";\ + fi\ + done + + +.PHONY: fuzzy +fuzzy: $(VENV)/bin/potodo + $(VENV)/bin/potodo -f diff --git a/README.rst b/README.rst index 62319459e..13c5e1e30 100644 --- a/README.rst +++ b/README.rst @@ -1,10 +1,567 @@ Traduction française de la documentation Python =============================================== -Ce repo existe sur deux forges : +|build| |progression| -- https://git.afpy.org/AFPy/python-docs-fr/ -- https://github.com/python/python-docs-fr/ +.. |build| image:: https://travis-ci.org/python/python-docs-fr.svg?branch=3.7 + :target: https://travis-ci.org/python/python-docs-fr + :width: 45% -le travail s’effectue sur ``git.afpy.org``, github est un mirroir -utilisé pour générer la doc sur https://docs.python.org/fr/ +.. |progression| image:: https://img.shields.io/badge/dynamic/json.svg?label=fr&query=%24.fr&url=http%3A%2F%2Fgce.zhsj.me%2Fpython/newest + :width: 45% + + +Accord de contribution à la documentation +----------------------------------------- + +NOTE CONCERNANT LA LICENCE POUR LES TRADUCTIONS : La documentation de Python +est maintenue grâce à un réseau mondial de bénévoles. En publiant ce projet +sur Transifex, Github, et d'autres endroits publics, et vous invitant +à participer, la PSF vous enjoint à accepter cet accord qui stipule que vous +acceptez de fournir vos améliorations à la documentation de Python ou à la +traduction de la documentation de Python pour le bénéfice de la PSF sous licence +CC0 (disponible à l'adresse +https://creativecommons.org/publicdomain/zero/1.0/legalcode). En retour, vous +pouvez demander à ce que votre contribution à la documentation soit +publiquement reconnue, et si votre traduction est acceptée par la +PSF, vous pouvez (mais vous n'êtes pas obligé) soumettre un correctif incluant +une modification appropriée dans le fichier Misc/ACKS ou TRANSLATORS. Bien que +rien dans le présent *accord de contribution* à la documentation n'oblige la PSF +à incorporer votre contribution textuelle, votre participation à la communauté +Python est bienvenue et appréciée. + +En soumettant votre travail à la PSF pour inclusion dans la documentation, +vous signifiez votre acceptation de cet accord. + + +Contribuer à la traduction +-------------------------- + +Comment contribuer +~~~~~~~~~~~~~~~~~~ + +Vous pouvez contribuer en utilisant : + +- Des *pull requests* Github (solution recommandée). +- En envoyant un patch à la liste `traductions `_. + + +Contribuer en utilisant Github +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Prérequis : + +- Un compte `Github `_. +- ``git`` `installé `_ (pour Windows, voir + https://gitforwindows.org/). +- Un éditeur de fichier ``.po`` (utilisez `poedit `_ + si vous n'en avez pas déjà un). + + +Commencer : + +Vous aurez besoin de *forker* le dépôt des sources `python-docs-fr +`_ en cliquant sur son bouton +``Fork``. Ceci crée une copie du projet sur votre compte Github : un endroit +où vous avez le droit de faire des modifications. + +Étape par étape : + +.. code-block:: bash + + # Clonez votre fork Github avec `git` en utilisant ssh : + git clone git@github.com/VOTRE_NOM_DE_COMPTE_GITHUB/python-docs-fr.git + # *OU* HTTPS : + git clone https://github.com/VOTRE_NOM_DE_COMPTE/python-docs-fr.git + + # Allez dans le répertoire cloné : + cd python-docs-fr/ + + # Ajoutez le dépot upstream (le dépôt public) en utilisant HTTPS (git + # ne demandera pas de mot de passe ainsi) : + # Ceci permet à *git* de savoir quoi/où est *upstream* + git remote add upstream https://github.com/python/python-docs-fr.git + +Ensuite, vous devez trouver un fichier sur lequel travailler. +Vous pouvez utiliser `potodo `_, un outil +fait pour trouver des fichiers ``po`` à traduire. +Installez-le à l'aide de *pip* (``pip install potodo``) dans un environnement +``python3.6`` ou plus. +Lancez ensuite la commande ``potodo`` dans votre clone local. +Vous pouvez choisir n'importe quel fichier non réservé dans la liste +renvoyée par la commande. + +**Nous vous recommandons de ne pas commencer avec un fichier de ``c-api`` +car c'est une partie très technique.** + +Une fois que vous avez choisi un fichier sur lequel travailler, veuillez +ouvrir un `ticket sur Github `_ dans +le format ``Je travaille sur RÉPERTOIRE/FICHIER.po``. Ceci permet à ``potodo`` +de détecter via l'API Github les fichiers ``.po`` réservés dans les tickets +et les *pull requests*. + +Vous êtes maintenant prêt à commencer une session de travail. Chaque +fois que vous commencerez un nouveau fichier, commencez ainsi : + +.. code-block:: bash + + # Pour travailler, nous aurons besoin d'une branche, basée sur une version à jour + # (fraîchement récupérée) de la branche upstream/3.7. Nous appellerons notre branche + # « library-sys » mais vous pouvez appeller la vôtre comme vous voulez. + # En général, vous nommez une branche en fonction du fichier sur lequel vous travaillez. + # Par exemple, si vous travaillez sur « library/venv.po », vous pouvez nommer votre + # branche « library-venv ». + + # Mettez à jour votre version locale + git fetch upstream + # Créez une nouvelle branche nommée « library-sys » basée sur « upstream/3.7 ». + git checkout -b library-sys upstream/3.7 + + # Vous pouvez maintenant travailler sur le fichier, typiquement en utilisant poedit. + # Bien sûr, remplacez « library/sys.po » par le fichier que vous avez choisi précédemment + poedit library/sys.po + + # Configurez poedit pour « ne pas préserver le formatage des + # fichiers existants » (décochez la case), et indiquez une longueur + # de ligne maximum de 79 caractères. + + # Quand vous avez fini de traduire, vous pouvez lancer *pospell* (pip install pospell). + # Cet outil a été conçu pour vérifier si vous n'avez pas d'erreurs de français. + # Vous pouvez exécuter la commande suivante : pospell -p dict -l fr_FR **/*.po pour vérifier + # tous les fichiers ou remplacer **/*.po par le fichier que vous traduisez (recommandé). + # Une liste blanche de certains termes techniques ou de noms propres, comme « Guido », + # « C99 » ou « sérialisable », est stockée dans le fichier « dict » à la racine du projet. + # Vous pouvez bien sûr y ajouter une entrée si nécessaire. + # pospell -p dict library/sys.po + + # Vous pouvez ensuite lancer *powrap* (pip install powrap) qui va reformater le fichier + # que avez vous avez modifié à la longueur de ligne correcte de `79`. + # Exécutez cette commande : `powrap **/*.po`, ou remplacez `**/*.po` par le fichier + # que vous traduisez + powrap library/sys.po + + # C'est le moment de git add et git commit + git add -p # C'est l'occasion de se relire, mais git add -u c'est bien aussi + # ou même git add library/sys.po + + git commit -m "Traduction de library/sys.po" # Ou un autre message plus inspiré :) + + # Poussez ensuite vos modifications sur votre fork Github. + # Le -u n'est utile qu'une fois pour que votre client git se souvienne que cette + # branche est liée à votre fork Github (et donc qu'un futur `git pull` sache quoi + # tirer) + git push -u origin + + # La commande précédente vous affichera un lien pour ouvrir une pull request sur + # Github. Si vous l'avez manqué, allez simplement sur https://github.com/python/python-docs-fr/ + # et un joli bouton « Compare & pull request » devrait apparaître au bout de quelques secondes + # vous indiquant que vous pouvez demander une pull request. + + # À partir de là, quelqu'un passera en revue vos modifications, et vous voudrez + # probablement corriger les erreurs qu'ils auront trouvé. Retournez alors sur votre + # branche (au cas où vous auriez commencé quelque chose d'autre sur une autre branche) : + git checkout glossary + git pull # pour rapatrier les modifications que vous auriez accepté + # sur l'interface web. + # Réglez les problèmes, puis commitez à nouveau : + git commit -a -m "glossaire : petites corrections". + git push + + +Vous avez peut-être remarqué que cela ressemble à un triangle, avec un +segment manquant : + +- Vous récupérez depuis *upstream* (le dépôt commun public sur Github) +- Vous poussez sur *origin* (votre clone sur Github) + +Donc oui, c'est le travail de quelqu'un d'autre d'ajouter le dernier segment, +de votre *origin* au *upstream* public, pour « boucler la boucle ». C'est le +rôle des personnes qui *fusionnent* les *pull requests* après les avoir relues. + +Vous avez peut-être aussi remarqué que vous n'avez jamais commité sur une +branche de version (``3.6``, ``3.7``, etc.), seulement récupéré les +modifications à partir d'elles. Considérez-les comme étant en lecture seule, +vous éviterez les problèmes. + +Avant de valider, vous devriez utiliser `grammalecte +`_ pour vérifier vos traductions. + + +Toutes les traductions doivent être faites sur la dernière version. +Nous ne traduisons jamais sur une version plus ancienne. Par exemple, +si la dernière version de python est Python 3.7, nous ne voulons pas +traduire directement sur la version python 3.5. +Si nécessaire, les traductions seraient rétroportées sur les versions +les plus anciennes par l'`équipe de documentation +`_. + + +Que traduire ? +~~~~~~~~~~~~~~ + +Vous pouvez commencer par des tâches faciles comme réviser les entrées +*fuzzy* pour aider à garder la documentation à jour (trouvez les entrées +*fuzzy* l'aide de `make fuzzy`). + +Vous pouvez également relire les entrées déjà traduites, et enfin +traduire celles qui ne sont pas traduites (trouvez-les à l'aide de +`make todo`)... + +- Ne traduisez pas le contenu de ``:ref :...`` et ``:term :...``. +- Mettez les mots anglais, si vous devez les utiliser, en *italique* + (entourés par des astérisques). +- ``::`` à la fin de certains paragraphes doivent être traduits en `` : + ::`` en français pour placer l'espace avant les deux-points. +- Si vous traduisez un titre de lien, veuillez traduire le lien aussi. + (surtout si c'est un lien Wikipédia et que l'article a une traduction). + Si aucune traduction de la cible n'existe, ne traduisez pas le titre. +- Les guillemets français ``«`` et ``»`` ne sont pas identiques aux + guillemets anglais ``"``. Cependant, Python utilise les guillemets + anglais comme délimiteurs de chaîne de caractères. Il convient donc de + traduire les guillemets mais pas les délimiteurs de chaîne. + +Le cas de « --- » +~~~~~~~~~~~~~~~~~ + +La version anglaise utilise une chose nommée `smartquotes +`_, qui +essaie d'être intelligente, qui fonctionne en anglais, mais cause +rapidement des problèmes dans d'autres langues. +Nous l'avons donc désactivée. + +Les *smartquotes* sont également responsables de la transformation de +``--`` en *en-dash* (``-``), de ``-----`` en *em-dash* (``—``), et de +``...`` en ``…``. + +Comme nous n'avons pas de *smartquotes*, nous devrons également « traduire » +cela manuellement, donc si vous voyez ``---`` en anglais, vous devez le +transformer en ``—`` en français. + + +Le cas de « :: » +~~~~~~~~~~~~~~~~ + +Du point de vue du langage *reStructuredText* (ou *rst*) utilisé dans la documentation : + +=> ``::`` collé à la fin d'un mot signifie « affiche ``:`` et introduit un bloc de code », +mais un ``::`` après une espace signifie « introduit juste un bloc de code ». + +Donc, dans du *rst*, en anglais, nous voyons soit « bla bla:: », soit « bla bla. :: ». + +En français, nous mettons une espace insécable devant nos deux-points, comme : +« Et voilà : ». + +L'utilisation de l'espace insécable en *rst* est naturelle, vous n'aurez qu'à +écrire ``Et voilà ::``. Le ``::`` n'est pas précédé d'un espace normal, +il affichera les deux-points et introduira le bloc de code, et c'est bon. + +Si vous ne savez pas comment taper une espace insécable, il y a une astuce : +lisez celle de la touche *compose* dans la section suivante ; sinon : + +=> Traduisez ``deux-points deux-points`` par +``espace deux-points espace deux-points deux-points``. + +Les caractères ``espace deux-points`` sont restitués tel quel, +c'est du français correct, et la balise ``espace deux-points deux-points`` qui +suit n'affichera rien et introduira le bloc de code. + +Dans un ``.po`` ça donne : `` : ::`` + +Non ! Ça n'insère pas magiquement une espace insécable donc ce n'est toujours pas +vraiment du français valide. + +Oui ! il vaut mieux apprendre à taper les espaces insécables. + + +Utilisation du futur +~~~~~~~~~~~~~~~~~~~~ + +Dans la description du comportement de Python (au sens large, c'est-à-dire +l'interpréteur lui-même mais aussi toutes les bibliothèques), la version +originale utilise souvent le futur : « if you do this, il will produce that … ». +En français, l'utlisation du présent convient tout à fait et le présent est +souvent plus facile à lire : « si vous faites ceci, il se produit cela … ». +On ne conserve le futur que si la deuxième proposition se situe réellement +dans le futur (par exemple, on peut penser qu'un processus de compilation n'est +pas immédiat) ou pour des raisons de concordance des temps. + +Traduction de *should* +~~~~~~~~~~~~~~~~~~~~~~ + +La version originale est très polie envers le lecteur ; elle lui intime +rarement des obligations, préférant employer « you should ». Cependant, en +français, il est d'usage d'être plus direct pour être correctement compris : +« vous devez ». *Vous devriez* est en effet généralement compris comme quelque +chose dont l'on peut de temps en temps se passer, alors que c'est très +rarement le cas pour les « you should » de cette documentation. + +Comment saisir des em-dash, des ellipses, des guillemets français, ou des espaces insécables ? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Malheureusement, cela dépend de votre système d'exploitation et de votre clavier. + +=> Sous Linux/Unix/\*BSD (tel OpenBSD), vous pouvez utilisez une +`Touche de composition `_, +c'est facile à configurer à l'aide de l'outil graphique de configuration de votre +clavier ou via ``dpkg-reconfigure keyboard-configuration`` +(pour Ubuntu ou Debian et distributions assimilées) + +À minima, vous pouvez configurer votre fichier '~/.Xmodmap' pour ajouter l'équivalent de : + +.. code-block:: shell + + # key Compose + keycode 115 = Multi_key + + +Utilisez ``xev`` pour connaitre la bonne correspondance de la touche que vous +voulez assigner ! + +Ensuite, dans votre fichier '~/.xsession', ajoutez : + +.. code-block:: shell + + # Gestion des touches clavier + xmodmap $HOME/.Xmodmap + + +Sous X, avec un bureau graphique, tel que Gnome, ou Xfce, il faut aller modifier +dans les paramètres > clavier > Disposition : puis 'Touche composée'. +Pour finir, redémarrez votre session. + +=> Sous Windows, vous +pouvez utiliser `wincompose `_. + +Avec une touche de composition (personnellement j'utilise ``alt-gr``, +vous pouvez aussi utiliser ``verr maj 🔒``), vous pouvez utiliser les +compositions suivantes : + +- Composer ``<`` ``<`` donne ``« `` +- Composer ``>`` ``>`` donne `` »`` +- Composer espace espace donne une espace insécable +- Composer ``.`` ``.`` ``.`` donne ``…`` + +Comme vous l'avez noté, presque toutes les compositions sont faciles +à retenir, vous pouvez donc essayer les autres et elles devraient tout +simplement fonctionner : + +- Composer ``C`` ``=`` donne ``€`` +- Composer ``1`` ``2`` donne ``½`` +- Composer ``'`` ``E`` donne ``É`` +- … … + + +Où obtenir de l'aide ? +~~~~~~~~~~~~~~~~~~~~~~ + +Le coordinateur de cette traduction est `mdk `_. + +N'hésitez pas à poser vos questions sur le canal ``#python-fr`` sur `freenode +`_ (ne nécessite pas d'inscription) ou sur la +`liste de diffusion des traductions de l'AFPy `_. + + +Ressources de traduction +------------------------ + +- le canal IRC `#python-fr `_ sur freenode ; +- la `liste traductions AFPy `_ ; +- la `liste de diffusion doc-sig + `_ ; +- les `glossaires et dictionnaires de traduc.org + `_, en particulier le + `grand dictionnaire terminologique `_ + de l'Office québécois de la langue française ; +- le `glossaire Python `_, car + il est déjà traduit ; +- le `guide stylistique pour le français de localisation des produits Sun + `_ donne + beaucoup de conseils pour éviter une traduction trop mot à mot ; +- `deepl.com/translator `_ ; +- `Petites leçons de typographie `_, + résumé succint de typographie, utile pour apprendre le bon usage des majuscules, + des espaces, etc. + + +Glossaire +--------- + +Afin d'assurer la cohérence de nos traductions, voici quelques propositions et +rappels pour les termes fréquents à traduire, n'hésitez pas à ouvrir un ticket +si vous n'êtes pas d'accord. + +Pour trouver facilement comment un terme est déjà traduit dans notre documentation, +vous pouvez utiliser +`find_in_po.py `_. + +========================== =============================================== +Terme Traduction proposée +========================== =============================================== +-like -compatible +abstract data type type abstrait +argument argument (à ne pas confondre avec *paramètre*) +backslash antislash, *backslash* +bound lier +bug bogue, *bug* +built-in native +call stack pile d'appels +debugging débogage +deep copy copie récursive (préféré), ou copie profonde +double quote guillemet +deprecated obsolète +-like -compatible +e.g. p. ex. (on n'utilise pas l'anglicisme « e.g. », + lui-même issu du latin *exempli gratia*). + On sépare les deux mots par une espace + insécable pour éviter les retours à la ligne + malheureux. +export exportation +expression expression +garbage collector ramasse-miettes +getter accesseur +i.e. c.-à-d. (on n'utilise pas l'anglicisme « i.e », + lui-même issu du latin *id est*) +identifier identifiant +immutable immuable +import importation +installer installateur +interpreter interpréteur +library bibliothèque +list comprehension liste en compréhension (liste en intension est + valide, mais nous ne l'utilisons pas) +little-endian, big-endian `petit-boutiste, gros-boutiste + `_ +mixin type type de mélange +mutable muable +namespace espace de nommage + (sauf pour le XML où c'est espace de noms) +parameter paramètre +pickle (v.) sérialiser +prompt invite +raise lever +regular expression expression rationnelle, expression régulière +return renvoie, donne (on évite « retourne » qui + pourrait porter à confusion). +setter mutateur +simple quote guillemet simple +socket connecteur ou interface de connexion +statement instruction +subprocess sous-processus +thread fil d'exécution +underscore tiret bas, *underscore* +========================== =============================================== + + +Historique du projet +-------------------- + +Ce projet a été lancé `vers 2012 +`_ +par des membres de l'`AFPy `_. En 2017 ce projet +est devenu la traduction officielle de la documentation Python en français +grâce à la `PEP 545 `_. + + +Simplifier les diffs git +------------------------ + +Les diffs git sont souvent encombrés de changements inutiles de numéros +de ligne, comme : + +.. code-block:: diff + + -#: ../Doc/library/signal.rst:406 + +#: ../Doc/library/signal.rst:408 + +Pour dire à git que ce ne sont pas des informations utiles, vous pouvez faire +ce qui suit après vous être assuré que ``~/.local/bin/`` se trouve dans votre +``PATH``. + +.. code-block:: bash + + cat < ~/.local/bin/podiff + #!/bin/sh + grep -v '^#:' "\$1" + EOF + + chmod a+x ~/.local/bin/podiff + + git config diff.podiff.textconv podiff + + +Maintenance +----------- + +Toutes ces commandes doivent être exécutées à partir de la racine d'un clone +de ``python-docs-fr``, et certains s'attendent à trouver un clone de CPython +à jour à proximité, comme : + +.. code-block:: bash + + ~/ + ├── python-docs-fr/ + └── cpython/ + +Pour cloner CPython, vous pouvez utiliser : + +.. code-block:: bash + + git clone --depth 1 --no-single-branch https://github.com/python/cpython.git + +Ceci évite de télécharger tout l'historique (inutile pour générer la +documentation) mais récupère néanmoins toutes les branches. + + +Fusionner les fichiers *pot* de CPython +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: bash + + make merge + + +Trouver les chaînes de caractères *fuzzy* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: bash + + make fuzzy + + +Lancer un *build* en local +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: bash + + make + + +Synchroniser la traduction avec Transifex +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Vous aurez besoin de ``transifex-client`` et ``powrap``, +depuis PyPI. + +Vous devrez configurer ``tx`` via ``tx init`` si ce n'est déjà fait. + +Propagez d'abord les traductions connues localement : + +.. code-block:: bash + + pomerge --no-overwrite --from-files **/*.po --to-files **/*.po + powrap --modified + git commit -m "Propagating known translations." + + +Ensuite récupérez les changements depuis Transifex : + +.. code-block:: bash + + tx pull -f --parallel + pomerge --from-files **/*.po + git checkout -- . + pomerge --no-overwrite --mark-as-fuzzy --to-files **/*.po + powrap --modified + git add -p + git commit -m "tx pull" + tx push -t -f --no-interactive --parallel diff --git a/TRANSLATORS b/TRANSLATORS new file mode 100644 index 000000000..0996715ac --- /dev/null +++ b/TRANSLATORS @@ -0,0 +1,15 @@ +Baptiste Fontaine +Julien Palard +RobinPetit +Valentin Lorentz +Antoine Rozo +Mohamed Kiouaz +Hervé Sousset +Mickaël Bergem +Vincent Poulailleau +Jules Lasne +Mathieu Dupuy +Vivien Lambert +Andy Kwok +Aya Keddam +Antoine Wecxsteen diff --git a/about.po b/about.po new file mode 100644 index 000000000..701509cad --- /dev/null +++ b/about.po @@ -0,0 +1,91 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-07-23 17:55+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/about.rst:3 +msgid "About these documents" +msgstr "À propos de ces documents" + +#: ../Doc/about.rst:6 +msgid "" +"These documents are generated from `reStructuredText`_ sources by `Sphinx`_, " +"a document processor specifically written for the Python documentation." +msgstr "" +"Ces documents sont générés à partir de sources en `reStructuredText`_ par " +"`Sphinx`_, un analyseur de documents spécialement conçu pour la " +"documentation Python." + +#: ../Doc/about.rst:15 +msgid "" +"Development of the documentation and its toolchain is an entirely volunteer " +"effort, just like Python itself. If you want to contribute, please take a " +"look at the :ref:`reporting-bugs` page for information on how to do so. New " +"volunteers are always welcome!" +msgstr "" +"Le développement de la documentation et de ses outils est entièrement basé " +"sur le volontariat, tout comme Python. Si vous voulez contribuer, allez voir " +"la page :ref:`reporting-bugs` qui contient des informations pour vous y " +"aider. Les nouveaux volontaires sont toujours les bienvenus !" + +#: ../Doc/about.rst:20 +msgid "Many thanks go to:" +msgstr "Merci beaucoup à :" + +#: ../Doc/about.rst:22 +msgid "" +"Fred L. Drake, Jr., the creator of the original Python documentation toolset " +"and writer of much of the content;" +msgstr "" +"Fred L. Drake, Jr., créateur des outils originaux de la documentation Python " +"et rédacteur de la plupart de son contenu ;" + +#: ../Doc/about.rst:24 +msgid "" +"the `Docutils `_ project for creating " +"reStructuredText and the Docutils suite;" +msgstr "" +"le projet `Docutils `_ pour avoir créé " +"*reStructuredText* et la suite d'outils *Docutils* ;" + +#: ../Doc/about.rst:26 +msgid "" +"Fredrik Lundh for his `Alternative Python Reference `_ project from which Sphinx got many good ideas." +msgstr "" +"Fredrik Lundh pour son projet `Alternative Python Reference `_, dont Sphinx a pris beaucoup de bonnes idées." + +#: ../Doc/about.rst:32 +msgid "Contributors to the Python Documentation" +msgstr "Contributeurs de la documentation Python" + +#: ../Doc/about.rst:34 +msgid "" +"Many people have contributed to the Python language, the Python standard " +"library, and the Python documentation. See :source:`Misc/ACKS` in the " +"Python source distribution for a partial list of contributors." +msgstr "" +"De nombreuses personnes ont contribué au langage Python, à sa bibliothèque " +"standard et à sa documentation. Consultez :source:`Misc/ACKS` dans les " +"sources de la distribution Python pour avoir une liste partielle des " +"contributeurs." + +#: ../Doc/about.rst:38 +msgid "" +"It is only with the input and contributions of the Python community that " +"Python has such wonderful documentation -- Thank You!" +msgstr "" +"Ce n'est que grâce aux suggestions et contributions de la communauté Python " +"que Python a une documentation si merveilleuse — Merci !" diff --git a/bugs.po b/bugs.po new file mode 100644 index 000000000..90492aa42 --- /dev/null +++ b/bugs.po @@ -0,0 +1,221 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-08-23 09:13+0200\n" +"Last-Translator: Antoine Wecxsteen\n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/bugs.rst:5 +msgid "Dealing with Bugs" +msgstr "S'attaquer aux bogues" + +#: ../Doc/bugs.rst:7 +msgid "" +"Python is a mature programming language which has established a reputation " +"for stability. In order to maintain this reputation, the developers would " +"like to know of any deficiencies you find in Python." +msgstr "" +"Python est un langage de programmation robuste réputé pour sa stabilité. " +"Afin de maintenir cette réputation, les développeurs souhaitent connaître " +"tout problème que vous pourriez rencontrer dans Python." + +#: ../Doc/bugs.rst:11 +msgid "" +"It can be sometimes faster to fix bugs yourself and contribute patches to " +"Python as it streamlines the process and involves less people. Learn how to :" +"ref:`contribute `." +msgstr "" +"Il est parfois plus rapide de réparer les bogues soi-même et d'en proposer " +"les correctifs, ça simplifie le processus et implique moins de monde. " +"Apprenez à :ref:`contribuer `." + +#: ../Doc/bugs.rst:16 +msgid "Documentation bugs" +msgstr "Bogues de documentation" + +#: ../Doc/bugs.rst:18 +msgid "" +"If you find a bug in this documentation or would like to propose an " +"improvement, please submit a bug report on the :ref:`tracker `. If you have a suggestion on how to fix it, include that as well." +msgstr "" +"Si vous trouvez un bogue dans cette documentation ou si vous désirez " +"proposer une amélioration, si cela concerne aussi la documentation en " +"anglais, ouvrez un rapport sur le :ref:`tracker ` " +"décrivant en anglais le bogue et où vous l'avez trouvé. Si le problème ne " +"touche que la traduction en français, ouvrez un ticket sur https://github." +"com/python/python-docs-fr/issues, ou venez nous en toucher un mot sur le " +"canal #python-fr sur *freenode* (https://webchat.freenode.net/). Si vous " +"avez une suggestion de correction, merci de l'inclure également." + +#: ../Doc/bugs.rst:22 +msgid "" +"If you're short on time, you can also email documentation bug reports to " +"docs@python.org (behavioral bugs can be sent to python-list@python.org). " +"'docs@' is a mailing list run by volunteers; your request will be noticed, " +"though it may take a while to be processed." +msgstr "" +"Si vous êtes limité par le temps, vous pouvez aussi envoyer un courriel à " +"docs@python.org (les bogues de comportement peuvent être envoyés à python-" +"list@python.org). « docs@ » est une liste de diffusion gérée par des " +"volontaires, votre requête sera vue, mais elle peut prendre un moment pour " +"être traitée." + +#: ../Doc/bugs.rst:28 +msgid "`Documentation bugs`_ on the Python issue tracker" +msgstr "`Documentation bugs`_ sur le gestionnaire de tickets de Python" + +#: ../Doc/bugs.rst:33 +msgid "Using the Python issue tracker" +msgstr "Utilisation du gestionnaire de tickets Python" + +#: ../Doc/bugs.rst:35 +msgid "" +"Bug reports for Python itself should be submitted via the Python Bug Tracker " +"(https://bugs.python.org/). The bug tracker offers a Web form which allows " +"pertinent information to be entered and submitted to the developers." +msgstr "" +"Les rapports de bogues pour Python lui-même devraient être soumis via le " +"*Bug Tracker Python* (http://bugs.python.org/). Le gestionnaire de tickets " +"propose un formulaire Web permettant de saisir des informations pertinentes " +"à soumettre aux développeurs." + +#: ../Doc/bugs.rst:39 +msgid "" +"The first step in filing a report is to determine whether the problem has " +"already been reported. The advantage in doing so, aside from saving the " +"developers time, is that you learn what has been done to fix it; it may be " +"that the problem has already been fixed for the next release, or additional " +"information is needed (in which case you are welcome to provide it if you " +"can!). To do this, search the bug database using the search box on the top " +"of the page." +msgstr "" +"La première étape pour remplir un rapport est de déterminer si le problème a " +"déjà été rapporté. L'avantage de cette approche, en plus d'économiser du " +"temps aux développeurs, est d'apprendre ce qui a été fait pour le résoudre ; " +"il se peut que le problème soit déjà résolu dans la prochaine version, ou " +"que des informations complémentaires soient attendues (auquel cas votre " +"contribution est la bienvenue !). Pour ce faire, cherchez dans la base de " +"données de bogues grâce à la boîte de recherche en haut de la page." + +#: ../Doc/bugs.rst:46 +msgid "" +"If the problem you're reporting is not already in the bug tracker, go back " +"to the Python Bug Tracker and log in. If you don't already have a tracker " +"account, select the \"Register\" link or, if you use OpenID, one of the " +"OpenID provider logos in the sidebar. It is not possible to submit a bug " +"report anonymously." +msgstr "" +"Si le problème que vous soumettez n'est pas déjà dans le *bug tracker*, " +"revenez au *Python Bug Tracker* et connectez-vous. Si vous n'avez pas déjà " +"un compte pour le *tracker*, cliquez sur le lien « S'enregistrer », ou, si " +"vous utilisez *OpenID*, sur l'un des logos des fournisseurs *OpenID* dans la " +"barre latérale. Il n'est pas possible de soumettre un rapport de bogue de " +"manière anonyme." + +#: ../Doc/bugs.rst:51 +msgid "" +"Being now logged in, you can submit a bug. Select the \"Create New\" link " +"in the sidebar to open the bug reporting form." +msgstr "" +"Une fois identifié, pour pouvez rapporter un bogue. Sélectionnez le lien " +"*Create New* dans la barre latérale pour ouvrir un nouveau formulaire de " +"rapport de bogue." + +#: ../Doc/bugs.rst:54 +msgid "" +"The submission form has a number of fields. For the \"Title\" field, enter " +"a *very* short description of the problem; less than ten words is good. In " +"the \"Type\" field, select the type of your problem; also select the " +"\"Component\" and \"Versions\" to which the bug relates." +msgstr "" +"Le formulaire de soumission a un certain nombre de champs. Pour le champ " +"« Titre », saisissez une *très* courte description du problème ; moins de " +"dix mots est approprié. Dans le champ « Type », sélectionnez le type de " +"problème ; sélectionnez aussi « Composant » et « Versions » en rapport avec " +"le bogue." + +#: ../Doc/bugs.rst:59 +msgid "" +"In the \"Comment\" field, describe the problem in detail, including what you " +"expected to happen and what did happen. Be sure to include whether any " +"extension modules were involved, and what hardware and software platform you " +"were using (including version information as appropriate)." +msgstr "" +"Dans le champ « Commentaire », décrivez le problème de manière détaillée, " +"incluant ce à quoi vous vous attendiez et ce qui s'est vraiment produit. " +"Assurez-vous d'y inclure les éventuels modules d'extensions impliqués et la " +"plateforme matérielle et logicielle vous utilisiez (en incluant les " +"informations de versions)." + +#: ../Doc/bugs.rst:64 +msgid "" +"Each bug report will be assigned to a developer who will determine what " +"needs to be done to correct the problem. You will receive an update each " +"time action is taken on the bug." +msgstr "" +"Chaque bogue sera attribué à un développeur qui déterminera ce qui est " +"nécessaire d'entreprendre pour corriger le problème. Vous recevrez une " +"notification à chaque action effectuée sur le bogue." + +#: ../Doc/bugs.rst:73 +msgid "" +"`How to Report Bugs Effectively `_" +msgstr "" +"`Comment signaler des bogues de manière efficace `_ (en anglais)" + +#: ../Doc/bugs.rst:72 +msgid "" +"Article which goes into some detail about how to create a useful bug report. " +"This describes what kind of information is useful and why it is useful." +msgstr "" +"Article qui entre dans les détails sur la manière de créer un rapport de " +"bogue utile. Il décrit quel genre d'information est utile et pourquoi elle " +"est utile." + +#: ../Doc/bugs.rst:76 +msgid "" +"`Bug Writing Guidelines `_" +msgstr "" +"`Guide de la rédaction de rapports de bogues `_" + +#: ../Doc/bugs.rst:76 +msgid "" +"Information about writing a good bug report. Some of this is specific to " +"the Mozilla project, but describes general good practices." +msgstr "" +"Conseils pour écrire un bon rapport de bogue. Certains sont spécifiques au " +"projet Mozilla mais présentent des bonnes pratiques générales." + +#: ../Doc/bugs.rst:82 +msgid "Getting started contributing to Python yourself" +msgstr "Commencer à contribuer à Python vous-même" + +#: ../Doc/bugs.rst:84 +msgid "" +"Beyond just reporting bugs that you find, you are also welcome to submit " +"patches to fix them. You can find more information on how to get started " +"patching Python in the `Python Developer's Guide`_. If you have questions, " +"the `core-mentorship mailing list`_ is a friendly place to get answers to " +"any and all questions pertaining to the process of fixing issues in Python." +msgstr "" +"Au-delà de simplement remonter les bogues que vous trouvez, il est aussi " +"apprécié d'y attacher des correctifs. Vous pouvez trouver plus " +"d'informations pour débuter la rédaction de correctifs dans le `Python " +"Developer's Guide`_. Si vous avez des questions, le `core-mentorship mailing " +"list`_ est un endroit amical pour obtenir des réponses à toutes les " +"questions à propos du processus de corrections de bugs dans Python." diff --git a/c-api/abstract.po b/c-api/abstract.po new file mode 100644 index 000000000..3b331cf8e --- /dev/null +++ b/c-api/abstract.po @@ -0,0 +1,45 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-03 16:57+0100\n" +"PO-Revision-Date: 2018-10-17 19:31+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/c-api/abstract.rst:7 +msgid "Abstract Objects Layer" +msgstr "Couche d'abstraction des objets" + +#: ../Doc/c-api/abstract.rst:9 +msgid "" +"The functions in this chapter interact with Python objects regardless of " +"their type, or with wide classes of object types (e.g. all numerical types, " +"or all sequence types). When used on object types for which they do not " +"apply, they will raise a Python exception." +msgstr "" +"Dans ce chapitre, les fonctions s'appliquent à des objets Python sans tenir " +"compte de leur type, ou des classes d'objets au sens large (par exemple, " +"tous les types numériques, ou tous les types de séquence). Quand ils sont " +"utilisés sur des types d'objets qui ne correspondent pas, ils lèveront une " +"exception Python." + +#: ../Doc/c-api/abstract.rst:14 +msgid "" +"It is not possible to use these functions on objects that are not properly " +"initialized, such as a list object that has been created by :c:func:" +"`PyList_New`, but whose items have not been set to some non-\\ ``NULL`` " +"value yet." +msgstr "" +"Il n'est pas possible d'utiliser ces fonctions sur des objets qui n'ont pas " +"été correctement initialisés, comme un objet liste qui a été créé avec :c:" +"func:`PyList_New` mais dont les éléments n'ont pas encore été mis à une " +"valeur non-\\ ``NULL``." diff --git a/c-api/allocation.po b/c-api/allocation.po new file mode 100644 index 000000000..381983e06 --- /dev/null +++ b/c-api/allocation.po @@ -0,0 +1,109 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"PO-Revision-Date: 2018-10-20 21:16+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/c-api/allocation.rst:6 +msgid "Allocating Objects on the Heap" +msgstr "Allouer des objets dans le tas" + +#: ../Doc/c-api/allocation.rst:17 +msgid "" +"Initialize a newly-allocated object *op* with its type and initial " +"reference. Returns the initialized object. If *type* indicates that the " +"object participates in the cyclic garbage detector, it is added to the " +"detector's set of observed objects. Other fields of the object are not " +"affected." +msgstr "" +"Permet d'initialiser un objet *op* nouvellement alloué ainsi que son type et " +"sa référence initiale. Renvoie l'objet initialisé. La présence de *type* " +"indique que l'objet doit être traité par le détecteur d'ordures cycliques, " +"il est de ce fait ajouté à l'ensemble du détecteur d'objets observés. Les " +"autres champs de l'objet ne sont pas affectés." + +#: ../Doc/c-api/allocation.rst:26 +msgid "" +"This does everything :c:func:`PyObject_Init` does, and also initializes the " +"length information for a variable-size object." +msgstr "" +"Effectue les mêmes opérations que :c:func:`PyObject_Init` fait, et " +"initialise également l'information de la longueur pour un objet de taille " +"variable." + +#: ../Doc/c-api/allocation.rst:32 +msgid "" +"Allocate a new Python object using the C structure type *TYPE* and the " +"Python type object *type*. Fields not defined by the Python object header " +"are not initialized; the object's reference count will be one. The size of " +"the memory allocation is determined from the :c:member:`~PyTypeObject." +"tp_basicsize` field of the type object." +msgstr "" +"Alloue un nouvel objet Python en utilisant le type de structure C *TYPE* et " +"l'objet Python *type*. Les champs non définis par l'en-tête de l'objet " +"Python ne sont pas initialisés; le compteur de la référence objet sera égal " +"à un. La taille de l'allocation mémoire est déterminée par le champ :c:" +"member:`~PyTypeObject.tp_basicsize` de l'objet type." + +#: ../Doc/c-api/allocation.rst:41 +msgid "" +"Allocate a new Python object using the C structure type *TYPE* and the " +"Python type object *type*. Fields not defined by the Python object header " +"are not initialized. The allocated memory allows for the *TYPE* structure " +"plus *size* fields of the size given by the :c:member:`~PyTypeObject." +"tp_itemsize` field of *type*. This is useful for implementing objects like " +"tuples, which are able to determine their size at construction time. " +"Embedding the array of fields into the same allocation decreases the number " +"of allocations, improving the memory management efficiency." +msgstr "" +"Alloue un nouvel objet Python en utilisant le type de structure C *TYPE* et " +"l'objet Python de type *type*. Les champs non définis par l'en-tête de " +"l'objet Python ne sont pas initialisés. La mémoire allouée est suffisante " +"pour la structure *TYPE* plus *size* champs de la taille donnée par le champ " +"de *type* :c:member:`~PyTypeObject.tp_itemsize`. Ceci est utile pour " +"l'implémentation d'objets comme les tuples, qui sont capables de déterminer " +"leur taille à la construction. Allouer les champs en même temps que l'objet " +"diminue le nombre d'allocations, améliorant ainsi les performances." + +#: ../Doc/c-api/allocation.rst:53 +msgid "" +"Releases memory allocated to an object using :c:func:`PyObject_New` or :c:" +"func:`PyObject_NewVar`. This is normally called from the :c:member:" +"`~PyTypeObject.tp_dealloc` handler specified in the object's type. The " +"fields of the object should not be accessed after this call as the memory is " +"no longer a valid Python object." +msgstr "" +"Libère la mémoire allouée à un objet utilisant :c:func:`PyObject_New` ou :c:" +"func:`PyObject_NewVar`. Ceci est normalement appelé par le gestionnaire :c:" +"member:`~PyTypeObject.tp_dealloc` spécifié dans le type d'objet. Les champs " +"de l'objet ne doivent plus être accédés après cet appel puisque cet " +"emplacement mémoire ne correspond plus à un objet Python valide." + +#: ../Doc/c-api/allocation.rst:62 +msgid "" +"Object which is visible in Python as ``None``. This should only be accessed " +"using the :c:macro:`Py_None` macro, which evaluates to a pointer to this " +"object." +msgstr "" +"Objet qui est visible en tant que ``None`` dans Python. Ne devrait être " +"accessible uniquement en utilisant la macro :c:macro:`Py_None`, qui évalue " +"cet objet à un pointeur." + +#: ../Doc/c-api/allocation.rst:69 +msgid ":c:func:`PyModule_Create`" +msgstr ":c:func:`PyModule_Create`" + +#: ../Doc/c-api/allocation.rst:70 +msgid "To allocate and create extension modules." +msgstr "Allouer et créer des modules d'extension." diff --git a/c-api/apiabiversion.po b/c-api/apiabiversion.po new file mode 100644 index 000000000..7eb442575 --- /dev/null +++ b/c-api/apiabiversion.po @@ -0,0 +1,120 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/apiabiversion.rst:7 +msgid "API and ABI Versioning" +msgstr "Version des API et ABI" + +#: ../Doc/c-api/apiabiversion.rst:9 +msgid "" +"``PY_VERSION_HEX`` is the Python version number encoded in a single integer." +msgstr "" +"``PY_VERSION_HEX`` est le numéro de version de Python encodé en un seul " +"entier." + +#: ../Doc/c-api/apiabiversion.rst:11 +msgid "" +"For example if the ``PY_VERSION_HEX`` is set to ``0x030401a2``, the " +"underlying version information can be found by treating it as a 32 bit " +"number in the following manner:" +msgstr "" +"Par exemple si le ``PY_VERSION_HEX` est défini à ``0x030401a2``, la " +"version d'information sous-jacente peut être trouvée en la traitant comme un " +"nombre sous 32 bits de la manière suivante:" + +#: ../Doc/c-api/apiabiversion.rst:16 +msgid "Bytes" +msgstr "Bytes" + +#: ../Doc/c-api/apiabiversion.rst:16 +msgid "Bits (big endian order)" +msgstr "Bits (ordre gros-boutiste)" + +#: ../Doc/c-api/apiabiversion.rst:16 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/c-api/apiabiversion.rst:18 +msgid "``1``" +msgstr "``1``" + +#: ../Doc/c-api/apiabiversion.rst:18 +msgid "``1-8``" +msgstr "``1-8``" + +#: ../Doc/c-api/apiabiversion.rst:18 +msgid "``PY_MAJOR_VERSION`` (the ``3`` in ``3.4.1a2``)" +msgstr "``PY_MAJOR_VERSION`` (le ``3`` dans ``3.4.1a2``)" + +#: ../Doc/c-api/apiabiversion.rst:21 +msgid "``2``" +msgstr "``2``" + +#: ../Doc/c-api/apiabiversion.rst:21 +msgid "``9-16``" +msgstr "``9-16``" + +#: ../Doc/c-api/apiabiversion.rst:21 +msgid "``PY_MINOR_VERSION`` (the ``4`` in ``3.4.1a2``)" +msgstr "``PY_MINOR_VERSION`` (le ``4`` dans ``3.4.1a2``)" + +#: ../Doc/c-api/apiabiversion.rst:24 +msgid "``3``" +msgstr "``3``" + +#: ../Doc/c-api/apiabiversion.rst:24 +msgid "``17-24``" +msgstr "``17-24``" + +#: ../Doc/c-api/apiabiversion.rst:24 +msgid "``PY_MICRO_VERSION`` (the ``1`` in ``3.4.1a2``)" +msgstr "``PY_MICRO_VERSION`` (le ``1`` dans ``3.4.1a2``)" + +#: ../Doc/c-api/apiabiversion.rst:27 +msgid "``4``" +msgstr "``4``" + +#: ../Doc/c-api/apiabiversion.rst:27 +msgid "``25-28``" +msgstr "``25-28``" + +#: ../Doc/c-api/apiabiversion.rst:27 +msgid "" +"``PY_RELEASE_LEVEL`` (``0xA`` for alpha, ``0xB`` for beta, ``0xC`` for " +"release candidate and ``0xF`` for final), in this case it is alpha." +msgstr "" +"``PY_RELEASE_LEVEL`` (``0xA`` pour alpha, ``0xB`` pour bêta, ``0xC`` pour " +"une version candidate et ``0xF`` pour final), dans ce cas c'est alpha." + +#: ../Doc/c-api/apiabiversion.rst:32 +msgid "``29-32``" +msgstr "``29-32``" + +#: ../Doc/c-api/apiabiversion.rst:32 +msgid "" +"``PY_RELEASE_SERIAL`` (the ``2`` in ``3.4.1a2``, zero for final releases)" +msgstr "" +"``PY_RELEASE_SERIAL`` (le ``2`` au ``3.4.1a2``, zéro pour des versions " +"finales)" + +#: ../Doc/c-api/apiabiversion.rst:36 +msgid "Thus ``3.4.1a2`` is hexversion ``0x030401a2``." +msgstr "Ainsi ``3.4.1a2`` est une hexane-version ``0x030401a2``." + +#: ../Doc/c-api/apiabiversion.rst:38 +msgid "All the given macros are defined in :source:`Include/patchlevel.h`." +msgstr "" +"Toutes les macros données sont définies dans :source:`Include/patchlevel.h`." diff --git a/c-api/arg.po b/c-api/arg.po new file mode 100644 index 000000000..568021fe4 --- /dev/null +++ b/c-api/arg.po @@ -0,0 +1,1281 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-10-04 12:14+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/c-api/arg.rst:6 +msgid "Parsing arguments and building values" +msgstr "Analyse des arguments et construction des valeurs" + +#: ../Doc/c-api/arg.rst:8 +msgid "" +"These functions are useful when creating your own extensions functions and " +"methods. Additional information and examples are available in :ref:" +"`extending-index`." +msgstr "" +"Ces fonctions sont utiles pour créer vos propres fonctions et méthodes " +"d'extensions. Des informations supplémentaires et des exemples sont " +"disponibles ici: :ref:`extending-index`." + +#: ../Doc/c-api/arg.rst:12 +msgid "" +"The first three of these functions described, :c:func:`PyArg_ParseTuple`, :c:" +"func:`PyArg_ParseTupleAndKeywords`, and :c:func:`PyArg_Parse`, all use " +"*format strings* which are used to tell the function about the expected " +"arguments. The format strings use the same syntax for each of these " +"functions." +msgstr "" +"Dans Les trois premières de ces fonctions décrites, :c:func:" +"`PyArg_ParseTuple`, :c:func:`PyArg_ParseTupleAndKeywords`, et :c:func:" +"`PyArg_Parse`, toutes utilisent *des chaînes de format* qui sont utilisées " +"pour indiquer à la fonction les arguments attendus. Les chaînes de format " +"utilise la même syntaxe pour chacune de ces fonctions." + +#: ../Doc/c-api/arg.rst:19 +msgid "Parsing arguments" +msgstr "Analyse des arguments" + +#: ../Doc/c-api/arg.rst:21 +msgid "" +"A format string consists of zero or more \"format units.\" A format unit " +"describes one Python object; it is usually a single character or a " +"parenthesized sequence of format units. With a few exceptions, a format " +"unit that is not a parenthesized sequence normally corresponds to a single " +"address argument to these functions. In the following description, the " +"quoted form is the format unit; the entry in (round) parentheses is the " +"Python object type that matches the format unit; and the entry in [square] " +"brackets is the type of the C variable(s) whose address should be passed." +msgstr "" +"Une chaîne de format se compose de zéro ou plusieurs \"unités de format\". " +"Une unité de format décrit un objet Python, elle est généralement composée " +"d'un seul caractère ou d'une séquence d'unités de format entre parenthèses. " +"À quelques exceptions près, une unité de format qui n'est pas une séquence " +"entre parenthèses correspond normalement à un argument d'une seule adresse " +"pour ces fonctions. Dans la description qui suit, la forme entre guillemets " +"est l'unité de format, l'entrée entre parenthèses est le type d'objet Python " +"qui correspond à l'unité de format, et l'entrée entre crochets est le type " +"de la variable C (ou des variables) dont l'adresse doit être donnée." + +#: ../Doc/c-api/arg.rst:31 +msgid "Strings and buffers" +msgstr "Chaînes et tampons" + +#: ../Doc/c-api/arg.rst:33 +msgid "" +"These formats allow accessing an object as a contiguous chunk of memory. You " +"don't have to provide raw storage for the returned unicode or bytes area." +msgstr "" +"Ces formats permettent d'accéder à un objet sous forme d'un fragment de " +"mémoire contigüe. Il n'est pas nécessaire d'allouer la mémoire pour " +"l'*unicode* ou le *bytes* renvoyé." + +#: ../Doc/c-api/arg.rst:37 +msgid "" +"In general, when a format sets a pointer to a buffer, the buffer is managed " +"by the corresponding Python object, and the buffer shares the lifetime of " +"this object. You won't have to release any memory yourself. The only " +"exceptions are ``es``, ``es#``, ``et`` and ``et#``." +msgstr "" +"En général, lorsqu'un format définit un pointeur vers un tampon, le tampon " +"est géré par l'objet Python correspondant et le tampon partage la durée de " +"vie de cet objet. vous n'avez pas à libérer de mémoire. Les seules " +"exceptions sont ``es``, ``es#``, ``et`` et ``et#``." + +#: ../Doc/c-api/arg.rst:42 +msgid "" +"However, when a :c:type:`Py_buffer` structure gets filled, the underlying " +"buffer is locked so that the caller can subsequently use the buffer even " +"inside a :c:type:`Py_BEGIN_ALLOW_THREADS` block without the risk of mutable " +"data being resized or destroyed. As a result, **you have to call** :c:func:" +"`PyBuffer_Release` after you have finished processing the data (or in any " +"early abort case)." +msgstr "" +"Néanmoins, quand une structure :c:type:`Py_buffer` est en cours de " +"remplissage, le tampon sous-jacent est verrouillé pour permettre à " +"l'appelant d'utiliser le tampon par la suite, même à l'intérieur d'un bloc :" +"c:type:`Py_BEGIN_ALLOW_THREADS`, sans risques de voir des données muables se " +"faire redimensionner ou supprimer. En conséquence, **il vous appartient " +"d'appeler** :c:func:`PyBuffer_Release` après avoir terminé de traiter les " +"données (ou après une interruption prématurée du traitement de ces données)." + +#: ../Doc/c-api/arg.rst:49 +msgid "Unless otherwise stated, buffers are not NUL-terminated." +msgstr "Sauf indication contraire, les tampons ne se terminent pas par NUL." + +#: ../Doc/c-api/arg.rst:51 +msgid "" +"Some formats require a read-only :term:`bytes-like object`, and set a " +"pointer instead of a buffer structure. They work by checking that the " +"object's :c:member:`PyBufferProcs.bf_releasebuffer` field is *NULL*, which " +"disallows mutable objects such as :class:`bytearray`." +msgstr "" + +#: ../Doc/c-api/arg.rst:58 +msgid "" +"For all ``#`` variants of formats (``s#``, ``y#``, etc.), the type of the " +"length argument (int or :c:type:`Py_ssize_t`) is controlled by defining the " +"macro :c:macro:`PY_SSIZE_T_CLEAN` before including :file:`Python.h`. If the " +"macro was defined, length is a :c:type:`Py_ssize_t` rather than an :c:type:" +"`int`. This behavior will change in a future Python version to only support :" +"c:type:`Py_ssize_t` and drop :c:type:`int` support. It is best to always " +"define :c:macro:`PY_SSIZE_T_CLEAN`." +msgstr "" +"Pour toutes les variantes du marqueur ``#`` (``s#``, ``y#``, etc), le type " +"de l'argument *length* (*int* ou :c:type:`Py_ssize_t`) est contrôlé en " +"définissant la macro :c:macro:`PY_SSIZE_T_CLEAN` avant d'inclure le fichier :" +"file:`Python.h`. Si la macro est définie, la longueur est de type :c:type:" +"`Py_ssize_t` au lieu d'être de type :c:type:`int`. Ce comportement changera " +"dans une future version de Python, qui supportera seulement :c:type:" +"`Py_ssize_t` a la place de :c:type:`int`. Il est préférable de toujours " +"définir :c:macro:`PY_SSIZE_T_CLEAN`." + +#: ../Doc/c-api/arg.rst:85 +msgid "``s`` (:class:`str`) [const char \\*]" +msgstr "``s`` (:class:`str`) [``const char *``]" + +#: ../Doc/c-api/arg.rst:68 +msgid "" +"Convert a Unicode object to a C pointer to a character string. A pointer to " +"an existing string is stored in the character pointer variable whose address " +"you pass. The C string is NUL-terminated. The Python string must not " +"contain embedded null code points; if it does, a :exc:`ValueError` exception " +"is raised. Unicode objects are converted to C strings using ``'utf-8'`` " +"encoding. If this conversion fails, a :exc:`UnicodeError` is raised." +msgstr "" +"Convertit un objet Unicode en un pointeur vers une chaîne de caractères. " +"S'il s'agit d'un pointeur vers une chaîne de caractères déjà existante, il " +"est stocké dans la variable de type pointeur vers un caractère dont vous " +"avez donné l'adresse. Une chaîne de caractères en C se termine par *NULL*. " +"La chaîne de caractères Python ne doit donc pas contenir de caractère dont " +"le code est *null*. Si elle en contient, une exception :exc:`ValueError` est " +"levée. Si la conversion échoue, une :exc:`UnicodeError` est levée." + +#: ../Doc/c-api/arg.rst:77 +msgid "" +"This format does not accept :term:`bytes-like objects `. " +"If you want to accept filesystem paths and convert them to C character " +"strings, it is preferable to use the ``O&`` format with :c:func:" +"`PyUnicode_FSConverter` as *converter*." +msgstr "" +"Ce format n'accepte pas les :term:`objets compatibles avec une chaîne " +"d'octets `. Si vous voulez accepter les chemins du " +"système de fichiers et les convertir vers des chaînes de caractères C, il " +"est préférable d'utiliser le format ``O&`` avec :c:func:" +"`PyUnicode_FSConverter` en tant que *converter*." + +#: ../Doc/c-api/arg.rst:83 ../Doc/c-api/arg.rst:150 +msgid "" +"Previously, :exc:`TypeError` was raised when embedded null code points were " +"encountered in the Python string." +msgstr "" +"Auparavant, une :exc:`TypeError` était levée quand la chaîne de caractères " +"Python contenait des codes NULL." + +#: ../Doc/c-api/arg.rst:91 +msgid "``s*`` (:class:`str` or :term:`bytes-like object`) [Py_buffer]" +msgstr "``s*`` (:class:`str` ou :term:`bytes-like object`) [``Py_buffer``]" + +#: ../Doc/c-api/arg.rst:88 +msgid "" +"This format accepts Unicode objects as well as bytes-like objects. It fills " +"a :c:type:`Py_buffer` structure provided by the caller. In this case the " +"resulting C string may contain embedded NUL bytes. Unicode objects are " +"converted to C strings using ``'utf-8'`` encoding." +msgstr "" +"Ce format accepte les objets Unicode et les *bytes-like object*. Cela " +"remplit une structure :c:type:`Py_buffer` qui est fournie par l'appelant. " +"Dans ce cas, la chaîne de caractères C qui en résulte peut contenir des " +"octets NULL. Les objets Unicode sont convertis en chaînes de caractères C en " +"utilisant l'encodage ``'utf-8'``." + +#: ../Doc/c-api/arg.rst:98 +msgid "" +"``s#`` (:class:`str`, read-only :term:`bytes-like object`) [const char \\*, " +"int or :c:type:`Py_ssize_t`]" +msgstr "" +"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " +"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" + +#: ../Doc/c-api/arg.rst:94 +msgid "" +"Like ``s*``, except that it doesn't accept mutable objects. The result is " +"stored into two C variables, the first one a pointer to a C string, the " +"second one its length. The string may contain embedded null bytes. Unicode " +"objects are converted to C strings using ``'utf-8'`` encoding." +msgstr "" +"La même chose que ``s*``, mais n'accepte pas les objets muables. Le résultat " +"est stocké dans deux variables C, la première est un pointeur vers une " +"chaîne de caractères C, la seconde contient sa taille. La chaîne de " +"caractères peut contenir des octets NULL. Les objets Unicode sont convertis " +"vers des chaînes de caractères C utilisant l'encodage ``'utf-8'``." + +#: ../Doc/c-api/arg.rst:102 ../Doc/c-api/arg.rst:566 +msgid "``z`` (:class:`str` or ``None``) [const char \\*]" +msgstr "``z`` (:class:`str` ou ``None``) [``const char *``]" + +#: ../Doc/c-api/arg.rst:101 +msgid "" +"Like ``s``, but the Python object may also be ``None``, in which case the C " +"pointer is set to *NULL*." +msgstr "" +"Comme ``s``, mais l'objet Python peut aussi être ``None``, auquel cas le " +"pointeur C devient *NULL*." + +#: ../Doc/c-api/arg.rst:106 +msgid "" +"``z*`` (:class:`str`, :term:`bytes-like object` or ``None``) [Py_buffer]" +msgstr "" +"``z*`` (:class:`str`, :term:`bytes-like object` ou ``None``) [``Py_buffer``]" + +#: ../Doc/c-api/arg.rst:105 +msgid "" +"Like ``s*``, but the Python object may also be ``None``, in which case the " +"``buf`` member of the :c:type:`Py_buffer` structure is set to *NULL*." +msgstr "" + +#: ../Doc/c-api/arg.rst:110 +msgid "" +"``z#`` (:class:`str`, read-only :term:`bytes-like object` or ``None``) " +"[const char \\*, int]" +msgstr "" + +#: ../Doc/c-api/arg.rst:109 +msgid "" +"Like ``s#``, but the Python object may also be ``None``, in which case the C " +"pointer is set to *NULL*." +msgstr "" +"Comme ``s#``, mais l'objet Python peut également être ``None``, dans ce cas " +"le pointeur C est définie à *NULL*." + +#: ../Doc/c-api/arg.rst:120 +msgid "``y`` (read-only :term:`bytes-like object`) [const char \\*]" +msgstr "" +"``y`` (lecture seule :term:`objet compatible avec une chaîne d'octets `) [constante char \\*]" + +#: ../Doc/c-api/arg.rst:113 +msgid "" +"This format converts a bytes-like object to a C pointer to a character " +"string; it does not accept Unicode objects. The bytes buffer must not " +"contain embedded null bytes; if it does, a :exc:`ValueError` exception is " +"raised." +msgstr "" +"Ce format convertit un *objet compatible avec une chaîne d'octets* en un " +"pointeur C vers une chaîne de caractères ; il n'accepte pas les objets " +"Unicode. Le tampon d'octets ne doit pas contenir d'octets *null* ; si c'est " +"le cas, une exception :exc:`ValueError` est levée." + +#: ../Doc/c-api/arg.rst:118 +msgid "" +"Previously, :exc:`TypeError` was raised when embedded null bytes were " +"encountered in the bytes buffer." +msgstr "" +"Auparavant, :exc:`TypeError` était levée lorsque des octets *null* étaient " +"rencontrés dans le tampon d'octets." + +#: ../Doc/c-api/arg.rst:125 +msgid "``y*`` (:term:`bytes-like object`) [Py_buffer]" +msgstr "``y*`` (:term:`bytes-like object`) [``Py_buffer``]" + +#: ../Doc/c-api/arg.rst:123 +msgid "" +"This variant on ``s*`` doesn't accept Unicode objects, only bytes-like " +"objects. **This is the recommended way to accept binary data.**" +msgstr "" + +#: ../Doc/c-api/arg.rst:129 +msgid "``y#`` (read-only :term:`bytes-like object`) [const char \\*, int]" +msgstr "" + +#: ../Doc/c-api/arg.rst:128 +msgid "" +"This variant on ``s#`` doesn't accept Unicode objects, only bytes-like " +"objects." +msgstr "" +"Cette variante de ``s#`` n'accepte pas les objets Unicode, uniquement des " +"objets assimilés à des octets." + +#: ../Doc/c-api/arg.rst:134 +msgid "``S`` (:class:`bytes`) [PyBytesObject \\*]" +msgstr "``S`` (:class:`bytes`) [``PyBytesObject *``]" + +#: ../Doc/c-api/arg.rst:132 +msgid "" +"Requires that the Python object is a :class:`bytes` object, without " +"attempting any conversion. Raises :exc:`TypeError` if the object is not a " +"bytes object. The C variable may also be declared as :c:type:`PyObject\\*`." +msgstr "" + +#: ../Doc/c-api/arg.rst:139 +msgid "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" +msgstr "``Y`` (:class:`bytearray`) [``PyByteArrayObject *``]" + +#: ../Doc/c-api/arg.rst:137 +msgid "" +"Requires that the Python object is a :class:`bytearray` object, without " +"attempting any conversion. Raises :exc:`TypeError` if the object is not a :" +"class:`bytearray` object. The C variable may also be declared as :c:type:" +"`PyObject\\*`." +msgstr "" + +#: ../Doc/c-api/arg.rst:156 +msgid "``u`` (:class:`str`) [const Py_UNICODE \\*]" +msgstr "``u`` (:class:`str`) [``const Py_UNICODE *``]" + +#: ../Doc/c-api/arg.rst:142 +msgid "" +"Convert a Python Unicode object to a C pointer to a NUL-terminated buffer of " +"Unicode characters. You must pass the address of a :c:type:`Py_UNICODE` " +"pointer variable, which will be filled with the pointer to an existing " +"Unicode buffer. Please note that the width of a :c:type:`Py_UNICODE` " +"character depends on compilation options (it is either 16 or 32 bits). The " +"Python string must not contain embedded null code points; if it does, a :exc:" +"`ValueError` exception is raised." +msgstr "" +"Convertit un objet Python Unicode en un pointeur C vers un tampon de " +"caractères Unicode terminé par *NULL*. Vous devez passer l'adresse d'un " +"pointeur :c:type:`Py_UNICODE`, qui sera rempli avec le pointeur vers un " +"tampon Unicode existant. Veuillez noter que la taille d'un :c:type:" +"`Py_UNICODE` dépend des options de compilation (soit 16, soit 32 bits). La " +"chaîne de caractères Python ne doit pas contenir de code *NULL*. Si elle en " +"contient, une exception :exc:`ValueError` est levée." + +#: ../Doc/c-api/arg.rst:157 ../Doc/c-api/arg.rst:166 ../Doc/c-api/arg.rst:174 +#: ../Doc/c-api/arg.rst:182 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`PyUnicode_AsWideCharString`." +msgstr "" + +#: ../Doc/c-api/arg.rst:165 +msgid "``u#`` (:class:`str`) [const Py_UNICODE \\*, int]" +msgstr "``u#`` (:class:`str`) [``const Py_UNICODE *``, ``int``]" + +#: ../Doc/c-api/arg.rst:159 +msgid "" +"This variant on ``u`` stores into two C variables, the first one a pointer " +"to a Unicode data buffer, the second one its length. This variant allows " +"null code points." +msgstr "" + +#: ../Doc/c-api/arg.rst:173 +msgid "``Z`` (:class:`str` or ``None``) [const Py_UNICODE \\*]" +msgstr "``Z`` (:class:`str` ou ``None``) [``const Py_UNICODE *``]" + +#: ../Doc/c-api/arg.rst:168 +msgid "" +"Like ``u``, but the Python object may also be ``None``, in which case the :c:" +"type:`Py_UNICODE` pointer is set to *NULL*." +msgstr "" +"Comme ``u``, mais l'objet Python peut aussi être ``None``, auquel cas le " +"pointeur :c:type:`Py_UNICODE` vaut *NULL*." + +#: ../Doc/c-api/arg.rst:181 +msgid "``Z#`` (:class:`str` or ``None``) [const Py_UNICODE \\*, int]" +msgstr "``Z#`` (:class:`str` ou ``None``) [``const Py_UNICODE *``, ``int``]" + +#: ../Doc/c-api/arg.rst:176 +msgid "" +"Like ``u#``, but the Python object may also be ``None``, in which case the :" +"c:type:`Py_UNICODE` pointer is set to *NULL*." +msgstr "" +"Comme ``u#``, mais l'objet Python peut également être ``None``, auquel cas " +"le pointeur :c:type:`Py_UNICODE` vaut *NULL*." + +#: ../Doc/c-api/arg.rst:186 +msgid "``U`` (:class:`str`) [PyObject \\*]" +msgstr "``U`` (:class:`str`) [``PyObject *``]" + +#: ../Doc/c-api/arg.rst:184 +msgid "" +"Requires that the Python object is a Unicode object, without attempting any " +"conversion. Raises :exc:`TypeError` if the object is not a Unicode object. " +"The C variable may also be declared as :c:type:`PyObject\\*`." +msgstr "" + +#: ../Doc/c-api/arg.rst:192 +msgid "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" +msgstr "``w*`` (lecture-écriture :term:`bytes-like object`) [``Py_buffer``]" + +#: ../Doc/c-api/arg.rst:189 +msgid "" +"This format accepts any object which implements the read-write buffer " +"interface. It fills a :c:type:`Py_buffer` structure provided by the caller. " +"The buffer may contain embedded null bytes. The caller have to call :c:func:" +"`PyBuffer_Release` when it is done with the buffer." +msgstr "" + +#: ../Doc/c-api/arg.rst:209 +msgid "``es`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer]" +msgstr "" + +#: ../Doc/c-api/arg.rst:195 +msgid "" +"This variant on ``s`` is used for encoding Unicode into a character buffer. " +"It only works for encoded data without embedded NUL bytes." +msgstr "" + +#: ../Doc/c-api/arg.rst:198 +msgid "" +"This format requires two arguments. The first is only used as input, and " +"must be a :c:type:`const char\\*` which points to the name of an encoding as " +"a NUL-terminated string, or *NULL*, in which case ``'utf-8'`` encoding is " +"used. An exception is raised if the named encoding is not known to Python. " +"The second argument must be a :c:type:`char\\*\\*`; the value of the pointer " +"it references will be set to a buffer with the contents of the argument " +"text. The text will be encoded in the encoding specified by the first " +"argument." +msgstr "" + +#: ../Doc/c-api/arg.rst:206 +msgid "" +":c:func:`PyArg_ParseTuple` will allocate a buffer of the needed size, copy " +"the encoded data into this buffer and adjust *\\*buffer* to reference the " +"newly allocated storage. The caller is responsible for calling :c:func:" +"`PyMem_Free` to free the allocated buffer after use." +msgstr "" + +#: ../Doc/c-api/arg.rst:214 +msgid "" +"``et`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " +"\\*encoding, char \\*\\*buffer]" +msgstr "" + +#: ../Doc/c-api/arg.rst:212 +msgid "" +"Same as ``es`` except that byte string objects are passed through without " +"recoding them. Instead, the implementation assumes that the byte string " +"object uses the encoding passed in as parameter." +msgstr "" + +#: ../Doc/c-api/arg.rst:245 +msgid "" +"``es#`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer, int " +"\\*buffer_length]" +msgstr "" + +#: ../Doc/c-api/arg.rst:217 +msgid "" +"This variant on ``s#`` is used for encoding Unicode into a character buffer. " +"Unlike the ``es`` format, this variant allows input data which contains NUL " +"characters." +msgstr "" + +#: ../Doc/c-api/arg.rst:221 +msgid "" +"It requires three arguments. The first is only used as input, and must be " +"a :c:type:`const char\\*` which points to the name of an encoding as a NUL-" +"terminated string, or *NULL*, in which case ``'utf-8'`` encoding is used. An " +"exception is raised if the named encoding is not known to Python. The " +"second argument must be a :c:type:`char\\*\\*`; the value of the pointer it " +"references will be set to a buffer with the contents of the argument text. " +"The text will be encoded in the encoding specified by the first argument. " +"The third argument must be a pointer to an integer; the referenced integer " +"will be set to the number of bytes in the output buffer." +msgstr "" + +#: ../Doc/c-api/arg.rst:231 +msgid "There are two modes of operation:" +msgstr "Il existe deux modes de fonctionnement :" + +#: ../Doc/c-api/arg.rst:233 +msgid "" +"If *\\*buffer* points a *NULL* pointer, the function will allocate a buffer " +"of the needed size, copy the encoded data into this buffer and set *" +"\\*buffer* to reference the newly allocated storage. The caller is " +"responsible for calling :c:func:`PyMem_Free` to free the allocated buffer " +"after usage." +msgstr "" + +#: ../Doc/c-api/arg.rst:238 +msgid "" +"If *\\*buffer* points to a non-*NULL* pointer (an already allocated " +"buffer), :c:func:`PyArg_ParseTuple` will use this location as the buffer and " +"interpret the initial value of *\\*buffer_length* as the buffer size. It " +"will then copy the encoded data into the buffer and NUL-terminate it. If " +"the buffer is not large enough, a :exc:`ValueError` will be set." +msgstr "" + +#: ../Doc/c-api/arg.rst:244 +msgid "" +"In both cases, *\\*buffer_length* is set to the length of the encoded data " +"without the trailing NUL byte." +msgstr "" +"Dans les deux cas, *\\*buffer_length* est la longueur des données encodées, " +"sans l'octet NUL de fin." + +#: ../Doc/c-api/arg.rst:250 +msgid "" +"``et#`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " +"\\*encoding, char \\*\\*buffer, int \\*buffer_length]" +msgstr "" + +#: ../Doc/c-api/arg.rst:248 +msgid "" +"Same as ``es#`` except that byte string objects are passed through without " +"recoding them. Instead, the implementation assumes that the byte string " +"object uses the encoding passed in as parameter." +msgstr "" + +#: ../Doc/c-api/arg.rst:253 +msgid "Numbers" +msgstr "Les nombres" + +#: ../Doc/c-api/arg.rst:257 +msgid "``b`` (:class:`int`) [unsigned char]" +msgstr "``b`` (:class:`int`) [``unsigned char``]" + +#: ../Doc/c-api/arg.rst:256 +msgid "" +"Convert a nonnegative Python integer to an unsigned tiny int, stored in a C :" +"c:type:`unsigned char`." +msgstr "" +"Convertit un entier Python positif ou nul en un ``unsigned tiny int``, " +"stocké dans un :c:type:`unsigned char` C." + +#: ../Doc/c-api/arg.rst:261 ../Doc/c-api/arg.rst:600 +msgid "``B`` (:class:`int`) [unsigned char]" +msgstr "``B`` (:class:`int`) [``unsigned char``]" + +#: ../Doc/c-api/arg.rst:260 +msgid "" +"Convert a Python integer to a tiny int without overflow checking, stored in " +"a C :c:type:`unsigned char`." +msgstr "" +"Convertit un entier Python en un ``tiny int`` sans vérifier le débordement, " +"stocké dans un :c:type:`unsigned char` C." + +#: ../Doc/c-api/arg.rst:264 ../Doc/c-api/arg.rst:594 +msgid "``h`` (:class:`int`) [short int]" +msgstr "``h`` (:class:`int`) [``short int``]" + +#: ../Doc/c-api/arg.rst:264 +msgid "Convert a Python integer to a C :c:type:`short int`." +msgstr "Convertit un entier Python en un :c:type:`short int` C." + +#: ../Doc/c-api/arg.rst:268 ../Doc/c-api/arg.rst:603 +msgid "``H`` (:class:`int`) [unsigned short int]" +msgstr "``H`` (:class:`int`) [``unsigned short int``]" + +#: ../Doc/c-api/arg.rst:267 +msgid "" +"Convert a Python integer to a C :c:type:`unsigned short int`, without " +"overflow checking." +msgstr "" +"Convertit un entier Python en un :c:type:`unsigned short int` C, sans " +"contrôle de débordement." + +#: ../Doc/c-api/arg.rst:271 ../Doc/c-api/arg.rst:588 +msgid "``i`` (:class:`int`) [int]" +msgstr "``i`` (:class:`int`) [``int``]" + +#: ../Doc/c-api/arg.rst:271 +msgid "Convert a Python integer to a plain C :c:type:`int`." +msgstr "Convertit un entier Python en un :c:type:`int` C." + +#: ../Doc/c-api/arg.rst:275 ../Doc/c-api/arg.rst:606 +msgid "``I`` (:class:`int`) [unsigned int]" +msgstr "``I`` (:class:`int`) [``unsigned int``]" + +#: ../Doc/c-api/arg.rst:274 +msgid "" +"Convert a Python integer to a C :c:type:`unsigned int`, without overflow " +"checking." +msgstr "" +"Convertit un entier Python en un :c:type:`unsigned int` C, sans contrôle de " +"le débordement." + +#: ../Doc/c-api/arg.rst:278 ../Doc/c-api/arg.rst:597 +msgid "``l`` (:class:`int`) [long int]" +msgstr "``l`` (:class:`int`) [``long int``]" + +#: ../Doc/c-api/arg.rst:278 +msgid "Convert a Python integer to a C :c:type:`long int`." +msgstr "Convertit un entier Python en un :c:type:`long int`." + +#: ../Doc/c-api/arg.rst:282 ../Doc/c-api/arg.rst:609 +msgid "``k`` (:class:`int`) [unsigned long]" +msgstr "``k`` (:class:`int`) [``unsigned long``]" + +#: ../Doc/c-api/arg.rst:281 +msgid "" +"Convert a Python integer to a C :c:type:`unsigned long` without overflow " +"checking." +msgstr "" +"Convertit un entier Python en un :c:type:`unsigned long` C sans en vérifier " +"le débordement." + +#: ../Doc/c-api/arg.rst:285 ../Doc/c-api/arg.rst:612 +msgid "``L`` (:class:`int`) [long long]" +msgstr "``L`` (:class:`int`) [``long long``]" + +#: ../Doc/c-api/arg.rst:285 +msgid "Convert a Python integer to a C :c:type:`long long`." +msgstr "" + +#: ../Doc/c-api/arg.rst:289 ../Doc/c-api/arg.rst:615 +msgid "``K`` (:class:`int`) [unsigned long long]" +msgstr "``K`` (:class:`int`) [``unsigned long long``]" + +#: ../Doc/c-api/arg.rst:288 +msgid "" +"Convert a Python integer to a C :c:type:`unsigned long long` without " +"overflow checking." +msgstr "" + +#: ../Doc/c-api/arg.rst:292 ../Doc/c-api/arg.rst:618 +msgid "``n`` (:class:`int`) [Py_ssize_t]" +msgstr "``n`` (:class:`int`) [``Py_ssize_t``]" + +#: ../Doc/c-api/arg.rst:292 +msgid "Convert a Python integer to a C :c:type:`Py_ssize_t`." +msgstr "Convertit un entier Python en un :c:type:`short int` C." + +#: ../Doc/c-api/arg.rst:299 +msgid "``c`` (:class:`bytes` or :class:`bytearray` of length 1) [char]" +msgstr "``c`` (:class:`bytes` ou :class:`bytearray` de longueur 1) [``char``]" + +#: ../Doc/c-api/arg.rst:295 +msgid "" +"Convert a Python byte, represented as a :class:`bytes` or :class:`bytearray` " +"object of length 1, to a C :c:type:`char`." +msgstr "" +"Convertit un *byte* Python, représenté comme un objet :class:`bytes` ou :" +"class:`bytearray` de longueur 1, en un :c:type:`char` C." + +#: ../Doc/c-api/arg.rst:298 +msgid "Allow :class:`bytearray` objects." +msgstr "" + +#: ../Doc/c-api/arg.rst:303 ../Doc/c-api/arg.rst:626 +msgid "``C`` (:class:`str` of length 1) [int]" +msgstr "``C`` (:class:`str` de longueur 1) [``int``]" + +#: ../Doc/c-api/arg.rst:302 +msgid "" +"Convert a Python character, represented as a :class:`str` object of length " +"1, to a C :c:type:`int`." +msgstr "" +"Convertit un caractère Python, représenté comme un objet :class:`str` de " +"longueur 1, en un :c:type:`int` C." + +#: ../Doc/c-api/arg.rst:306 ../Doc/c-api/arg.rst:632 +msgid "``f`` (:class:`float`) [float]" +msgstr "``f`` (:class:`float`) [``float``]" + +#: ../Doc/c-api/arg.rst:306 +msgid "Convert a Python floating point number to a C :c:type:`float`." +msgstr "Convertit un nombre flottant Python vers un :c:type:`float`." + +#: ../Doc/c-api/arg.rst:309 ../Doc/c-api/arg.rst:629 +msgid "``d`` (:class:`float`) [double]" +msgstr "``d`` (:class:`float`) [``double``]" + +#: ../Doc/c-api/arg.rst:309 +msgid "Convert a Python floating point number to a C :c:type:`double`." +msgstr "Convertit un nombre flottant Python vers un :c:type:`double` C." + +#: ../Doc/c-api/arg.rst:312 +msgid "``D`` (:class:`complex`) [Py_complex]" +msgstr "``D`` (:class:`complex`) [``Py_complex``]" + +#: ../Doc/c-api/arg.rst:312 +msgid "Convert a Python complex number to a C :c:type:`Py_complex` structure." +msgstr "" +"Convertit un nombre complexe Python vers une structure :c:type:`Py_complex` " +"C." + +#: ../Doc/c-api/arg.rst:315 +msgid "Other objects" +msgstr "Autres objets" + +#: ../Doc/c-api/arg.rst:320 ../Doc/c-api/arg.rst:643 +msgid "``O`` (object) [PyObject \\*]" +msgstr "``O`` (objet) [``PyObject *``]" + +#: ../Doc/c-api/arg.rst:318 +msgid "" +"Store a Python object (without any conversion) in a C object pointer. The C " +"program thus receives the actual object that was passed. The object's " +"reference count is not increased. The pointer stored is not *NULL*." +msgstr "" +"Stocke un objet Python (sans aucune conversion) en un pointeur sur un objet " +"C. Ainsi, Le programme C reçoit l'objet réel qui a été passé. Le compteur de " +"référence sur l'objet n'est pas incrémenté. Le pointeur stocké n'est pas " +"*NULL*." + +#: ../Doc/c-api/arg.rst:327 +msgid "``O!`` (object) [*typeobject*, PyObject \\*]" +msgstr "``O!`` (objet) [*typeobject*, ``PyObject *``]" + +#: ../Doc/c-api/arg.rst:323 +msgid "" +"Store a Python object in a C object pointer. This is similar to ``O``, but " +"takes two C arguments: the first is the address of a Python type object, the " +"second is the address of the C variable (of type :c:type:`PyObject\\*`) into " +"which the object pointer is stored. If the Python object does not have the " +"required type, :exc:`TypeError` is raised." +msgstr "" + +#: ../Doc/c-api/arg.rst:352 ../Doc/c-api/arg.rst:657 +msgid "``O&`` (object) [*converter*, *anything*]" +msgstr "``O&`` (objet) [*converter*, *anything*]" + +#: ../Doc/c-api/arg.rst:332 +msgid "" +"Convert a Python object to a C variable through a *converter* function. " +"This takes two arguments: the first is a function, the second is the address " +"of a C variable (of arbitrary type), converted to :c:type:`void \\*`. The " +"*converter* function in turn is called as follows::" +msgstr "" + +#: ../Doc/c-api/arg.rst:339 +msgid "" +"where *object* is the Python object to be converted and *address* is the :c:" +"type:`void\\*` argument that was passed to the :c:func:`PyArg_Parse\\*` " +"function. The returned *status* should be ``1`` for a successful conversion " +"and ``0`` if the conversion has failed. When the conversion fails, the " +"*converter* function should raise an exception and leave the content of " +"*address* unmodified." +msgstr "" + +#: ../Doc/c-api/arg.rst:345 +msgid "" +"If the *converter* returns ``Py_CLEANUP_SUPPORTED``, it may get called a " +"second time if the argument parsing eventually fails, giving the converter a " +"chance to release any memory that it had already allocated. In this second " +"call, the *object* parameter will be NULL; *address* will have the same " +"value as in the original call." +msgstr "" + +#: ../Doc/c-api/arg.rst:351 +msgid "``Py_CLEANUP_SUPPORTED`` was added." +msgstr "``Py_CLEANUP_SUPPORTED`` à été ajouté." + +#: ../Doc/c-api/arg.rst:361 +msgid "``p`` (:class:`bool`) [int]" +msgstr "``p`` (:class:`bool`) [``int``]" + +#: ../Doc/c-api/arg.rst:355 +msgid "" +"Tests the value passed in for truth (a boolean **p**\\ redicate) and " +"converts the result to its equivalent C true/false integer value. Sets the " +"int to ``1`` if the expression was true and ``0`` if it was false. This " +"accepts any valid Python value. See :ref:`truth` for more information about " +"how Python tests values for truth." +msgstr "" + +#: ../Doc/c-api/arg.rst:366 ../Doc/c-api/arg.rst:660 +msgid "``(items)`` (:class:`tuple`) [*matching-items*]" +msgstr "``(items)`` (:class:`tuple`) [*matching-items*]" + +#: ../Doc/c-api/arg.rst:364 +msgid "" +"The object must be a Python sequence whose length is the number of format " +"units in *items*. The C arguments must correspond to the individual format " +"units in *items*. Format units for sequences may be nested." +msgstr "" +"L'objet doit être une séquence Python dont la longueur est le nombre " +"d'unités de formats dans *articles*. Les arguments C doivent correspondre à " +"chaque unité de format particulière dans *articles*. Les unités de formats " +"pour les séquences peuvent être imbriquées." + +#: ../Doc/c-api/arg.rst:368 +msgid "" +"It is possible to pass \"long\" integers (integers whose value exceeds the " +"platform's :const:`LONG_MAX`) however no proper range checking is done --- " +"the most significant bits are silently truncated when the receiving field is " +"too small to receive the value (actually, the semantics are inherited from " +"downcasts in C --- your mileage may vary)." +msgstr "" + +#: ../Doc/c-api/arg.rst:374 +msgid "" +"A few other characters have a meaning in a format string. These may not " +"occur inside nested parentheses. They are:" +msgstr "" +"Quelques autres caractères ont un sens dans une chaîne de format. On ne doit " +"pas les trouvées dans des parenthèses imbriquées. Ce sont :" + +#: ../Doc/c-api/arg.rst:382 +msgid "``|``" +msgstr "``|``" + +#: ../Doc/c-api/arg.rst:378 +msgid "" +"Indicates that the remaining arguments in the Python argument list are " +"optional. The C variables corresponding to optional arguments should be " +"initialized to their default value --- when an optional argument is not " +"specified, :c:func:`PyArg_ParseTuple` does not touch the contents of the " +"corresponding C variable(s)." +msgstr "" + +#: ../Doc/c-api/arg.rst:391 +msgid "``$``" +msgstr "``$``" + +#: ../Doc/c-api/arg.rst:385 +msgid "" +":c:func:`PyArg_ParseTupleAndKeywords` only: Indicates that the remaining " +"arguments in the Python argument list are keyword-only. Currently, all " +"keyword-only arguments must also be optional arguments, so ``|`` must always " +"be specified before ``$`` in the format string." +msgstr "" + +#: ../Doc/c-api/arg.rst:396 +msgid "``:``" +msgstr "" + +#: ../Doc/c-api/arg.rst:394 +msgid "" +"The list of format units ends here; the string after the colon is used as " +"the function name in error messages (the \"associated value\" of the " +"exception that :c:func:`PyArg_ParseTuple` raises)." +msgstr "" + +#: ../Doc/c-api/arg.rst:401 +msgid "``;``" +msgstr "" + +#: ../Doc/c-api/arg.rst:399 +msgid "" +"The list of format units ends here; the string after the semicolon is used " +"as the error message *instead* of the default error message. ``:`` and ``;" +"`` mutually exclude each other." +msgstr "" +"La liste des unités de format s'arrête ici ; la chaîne après le point-" +"virgule est utilise comme message d'erreur *au lieu* du message d'erreur par " +"défaut. ``:`` et ``;`` sont mutuellement exclusifs." + +#: ../Doc/c-api/arg.rst:403 +msgid "" +"Note that any Python object references which are provided to the caller are " +"*borrowed* references; do not decrement their reference count!" +msgstr "" +"Notez que n'importe quelles références sur un objet Python qui sont données " +"à l'appelant sont des références *empruntées* ; ne décrémentez pas leur " +"compteur de références !" + +#: ../Doc/c-api/arg.rst:406 +msgid "" +"Additional arguments passed to these functions must be addresses of " +"variables whose type is determined by the format string; these are used to " +"store values from the input tuple. There are a few cases, as described in " +"the list of format units above, where these parameters are used as input " +"values; they should match what is specified for the corresponding format " +"unit in that case." +msgstr "" +"Les arguments additionnels qui sont donnés à ces fonctions doivent être des " +"adresses de variables dont le type est déterminé par la chaîne de format. " +"Elles sont utilisées pour stocker les valeurs du n-uplet d'entrée. Il y a " +"quelques cas, comme décrit précédemment dans le liste des unités de formats, " +"où ces paramètres sont utilisés comme valeurs d'entrée. Dans ce cas, ils " +"devraient correspondre à ce qui est spécifié pour l'unité de format " +"correspondante." + +#: ../Doc/c-api/arg.rst:412 +msgid "" +"For the conversion to succeed, the *arg* object must match the format and " +"the format must be exhausted. On success, the :c:func:`PyArg_Parse\\*` " +"functions return true, otherwise they return false and raise an appropriate " +"exception. When the :c:func:`PyArg_Parse\\*` functions fail due to " +"conversion failure in one of the format units, the variables at the " +"addresses corresponding to that and the following format units are left " +"untouched." +msgstr "" + +#: ../Doc/c-api/arg.rst:421 +msgid "API Functions" +msgstr "Fonction de l'API" + +#: ../Doc/c-api/arg.rst:425 +msgid "" +"Parse the parameters of a function that takes only positional parameters " +"into local variables. Returns true on success; on failure, it returns false " +"and raises the appropriate exception." +msgstr "" + +#: ../Doc/c-api/arg.rst:432 +msgid "" +"Identical to :c:func:`PyArg_ParseTuple`, except that it accepts a va_list " +"rather than a variable number of arguments." +msgstr "" + +#: ../Doc/c-api/arg.rst:438 +msgid "" +"Parse the parameters of a function that takes both positional and keyword " +"parameters into local variables. The *keywords* argument is a *NULL*-" +"terminated array of keyword parameter names. Empty names denote :ref:" +"`positional-only parameters `. Returns true on " +"success; on failure, it returns false and raises the appropriate exception." +msgstr "" + +#: ../Doc/c-api/arg.rst:445 +msgid "" +"Added support for :ref:`positional-only parameters `." +msgstr "" + +#: ../Doc/c-api/arg.rst:452 +msgid "" +"Identical to :c:func:`PyArg_ParseTupleAndKeywords`, except that it accepts a " +"va_list rather than a variable number of arguments." +msgstr "" + +#: ../Doc/c-api/arg.rst:458 +msgid "" +"Ensure that the keys in the keywords argument dictionary are strings. This " +"is only needed if :c:func:`PyArg_ParseTupleAndKeywords` is not used, since " +"the latter already does this check." +msgstr "" + +#: ../Doc/c-api/arg.rst:468 +msgid "" +"Function used to deconstruct the argument lists of \"old-style\" functions " +"--- these are functions which use the :const:`METH_OLDARGS` parameter " +"parsing method, which has been removed in Python 3. This is not recommended " +"for use in parameter parsing in new code, and most code in the standard " +"interpreter has been modified to no longer use this for that purpose. It " +"does remain a convenient way to decompose other tuples, however, and may " +"continue to be used for that purpose." +msgstr "" + +#: ../Doc/c-api/arg.rst:479 +msgid "" +"A simpler form of parameter retrieval which does not use a format string to " +"specify the types of the arguments. Functions which use this method to " +"retrieve their parameters should be declared as :const:`METH_VARARGS` in " +"function or method tables. The tuple containing the actual parameters " +"should be passed as *args*; it must actually be a tuple. The length of the " +"tuple must be at least *min* and no more than *max*; *min* and *max* may be " +"equal. Additional arguments must be passed to the function, each of which " +"should be a pointer to a :c:type:`PyObject\\*` variable; these will be " +"filled in with the values from *args*; they will contain borrowed " +"references. The variables which correspond to optional parameters not given " +"by *args* will not be filled in; these should be initialized by the caller. " +"This function returns true on success and false if *args* is not a tuple or " +"contains the wrong number of elements; an exception will be set if there was " +"a failure." +msgstr "" + +#: ../Doc/c-api/arg.rst:493 +msgid "" +"This is an example of the use of this function, taken from the sources for " +"the :mod:`_weakref` helper module for weak references::" +msgstr "" + +#: ../Doc/c-api/arg.rst:509 +msgid "" +"The call to :c:func:`PyArg_UnpackTuple` in this example is entirely " +"equivalent to this call to :c:func:`PyArg_ParseTuple`::" +msgstr "" + +#: ../Doc/c-api/arg.rst:517 +msgid "Building values" +msgstr "Construction des valeurs" + +#: ../Doc/c-api/arg.rst:521 +msgid "" +"Create a new value based on a format string similar to those accepted by " +"the :c:func:`PyArg_Parse\\*` family of functions and a sequence of values. " +"Returns the value or *NULL* in the case of an error; an exception will be " +"raised if *NULL* is returned." +msgstr "" + +#: ../Doc/c-api/arg.rst:526 +msgid "" +":c:func:`Py_BuildValue` does not always build a tuple. It builds a tuple " +"only if its format string contains two or more format units. If the format " +"string is empty, it returns ``None``; if it contains exactly one format " +"unit, it returns whatever object is described by that format unit. To force " +"it to return a tuple of size 0 or one, parenthesize the format string." +msgstr "" + +#: ../Doc/c-api/arg.rst:532 +msgid "" +"When memory buffers are passed as parameters to supply data to build " +"objects, as for the ``s`` and ``s#`` formats, the required data is copied. " +"Buffers provided by the caller are never referenced by the objects created " +"by :c:func:`Py_BuildValue`. In other words, if your code invokes :c:func:" +"`malloc` and passes the allocated memory to :c:func:`Py_BuildValue`, your " +"code is responsible for calling :c:func:`free` for that memory once :c:func:" +"`Py_BuildValue` returns." +msgstr "" + +#: ../Doc/c-api/arg.rst:540 +msgid "" +"In the following description, the quoted form is the format unit; the entry " +"in (round) parentheses is the Python object type that the format unit will " +"return; and the entry in [square] brackets is the type of the C value(s) to " +"be passed." +msgstr "" + +#: ../Doc/c-api/arg.rst:544 +msgid "" +"The characters space, tab, colon and comma are ignored in format strings " +"(but not within format units such as ``s#``). This can be used to make long " +"format strings a tad more readable." +msgstr "" + +#: ../Doc/c-api/arg.rst:550 +msgid "``s`` (:class:`str` or ``None``) [const char \\*]" +msgstr "``s`` (:class:`str` ou ``None``) [``const char *``]" + +#: ../Doc/c-api/arg.rst:549 +msgid "" +"Convert a null-terminated C string to a Python :class:`str` object using " +"``'utf-8'`` encoding. If the C string pointer is *NULL*, ``None`` is used." +msgstr "" + +#: ../Doc/c-api/arg.rst:555 +msgid "``s#`` (:class:`str` or ``None``) [const char \\*, int]" +msgstr "``s#`` (:class:`str` ou ``None``) [``const char *``, ``int``]" + +#: ../Doc/c-api/arg.rst:553 +msgid "" +"Convert a C string and its length to a Python :class:`str` object using " +"``'utf-8'`` encoding. If the C string pointer is *NULL*, the length is " +"ignored and ``None`` is returned." +msgstr "" + +#: ../Doc/c-api/arg.rst:559 +msgid "``y`` (:class:`bytes`) [const char \\*]" +msgstr "``y`` (:class:`bytes`) [``const char *``]" + +#: ../Doc/c-api/arg.rst:558 +msgid "" +"This converts a C string to a Python :class:`bytes` object. If the C string " +"pointer is *NULL*, ``None`` is returned." +msgstr "" + +#: ../Doc/c-api/arg.rst:563 +msgid "``y#`` (:class:`bytes`) [const char \\*, int]" +msgstr "``y#`` (:class:`bytes`) [``const char *, int``]" + +#: ../Doc/c-api/arg.rst:562 +msgid "" +"This converts a C string and its lengths to a Python object. If the C " +"string pointer is *NULL*, ``None`` is returned." +msgstr "" + +#: ../Doc/c-api/arg.rst:566 ../Doc/c-api/arg.rst:582 +msgid "Same as ``s``." +msgstr "" + +#: ../Doc/c-api/arg.rst:569 +msgid "``z#`` (:class:`str` or ``None``) [const char \\*, int]" +msgstr "``z#`` (:class:`str` ou ``None``) [``const char *``, ``int``]" + +#: ../Doc/c-api/arg.rst:569 ../Doc/c-api/arg.rst:585 +msgid "Same as ``s#``." +msgstr "" + +#: ../Doc/c-api/arg.rst:574 +msgid "``u`` (:class:`str`) [const wchar_t \\*]" +msgstr "``u`` (:class:`str`) [``const wchar_t *``]" + +#: ../Doc/c-api/arg.rst:572 +msgid "" +"Convert a null-terminated :c:type:`wchar_t` buffer of Unicode (UTF-16 or " +"UCS-4) data to a Python Unicode object. If the Unicode buffer pointer is " +"*NULL*, ``None`` is returned." +msgstr "" + +#: ../Doc/c-api/arg.rst:579 +msgid "``u#`` (:class:`str`) [const wchar_t \\*, int]" +msgstr "``u#`` (:class:`str`) [``const wchar_t *``, ``int``]" + +#: ../Doc/c-api/arg.rst:577 +msgid "" +"Convert a Unicode (UTF-16 or UCS-4) data buffer and its length to a Python " +"Unicode object. If the Unicode buffer pointer is *NULL*, the length is " +"ignored and ``None`` is returned." +msgstr "" + +#: ../Doc/c-api/arg.rst:582 +msgid "``U`` (:class:`str` or ``None``) [const char \\*]" +msgstr "``U`` (:class:`str` ou ``None``) [``const char *``]" + +#: ../Doc/c-api/arg.rst:585 +msgid "``U#`` (:class:`str` or ``None``) [const char \\*, int]" +msgstr "``U#`` (:class:`str` ou ``None``) [``const char *``, ``int``]" + +#: ../Doc/c-api/arg.rst:588 +msgid "Convert a plain C :c:type:`int` to a Python integer object." +msgstr "" + +#: ../Doc/c-api/arg.rst:591 +msgid "``b`` (:class:`int`) [char]" +msgstr "``b`` (:class:`int`) [``char``]" + +#: ../Doc/c-api/arg.rst:591 +msgid "Convert a plain C :c:type:`char` to a Python integer object." +msgstr "" + +#: ../Doc/c-api/arg.rst:594 +msgid "Convert a plain C :c:type:`short int` to a Python integer object." +msgstr "" + +#: ../Doc/c-api/arg.rst:597 +msgid "Convert a C :c:type:`long int` to a Python integer object." +msgstr "Convertit un :c:type:`long int` en un *int* Python." + +#: ../Doc/c-api/arg.rst:600 +msgid "Convert a C :c:type:`unsigned char` to a Python integer object." +msgstr "" + +#: ../Doc/c-api/arg.rst:603 +msgid "Convert a C :c:type:`unsigned short int` to a Python integer object." +msgstr "" + +#: ../Doc/c-api/arg.rst:606 +msgid "Convert a C :c:type:`unsigned int` to a Python integer object." +msgstr "" + +#: ../Doc/c-api/arg.rst:609 +msgid "Convert a C :c:type:`unsigned long` to a Python integer object." +msgstr "" + +#: ../Doc/c-api/arg.rst:612 +msgid "Convert a C :c:type:`long long` to a Python integer object." +msgstr "" + +#: ../Doc/c-api/arg.rst:615 +msgid "Convert a C :c:type:`unsigned long long` to a Python integer object." +msgstr "" + +#: ../Doc/c-api/arg.rst:618 +msgid "Convert a C :c:type:`Py_ssize_t` to a Python integer." +msgstr "" + +#: ../Doc/c-api/arg.rst:622 +msgid "``c`` (:class:`bytes` of length 1) [char]" +msgstr "``c`` (:class:`bytes` de taille 1) [``char``]" + +#: ../Doc/c-api/arg.rst:621 +msgid "" +"Convert a C :c:type:`int` representing a byte to a Python :class:`bytes` " +"object of length 1." +msgstr "" + +#: ../Doc/c-api/arg.rst:625 +msgid "" +"Convert a C :c:type:`int` representing a character to Python :class:`str` " +"object of length 1." +msgstr "" + +#: ../Doc/c-api/arg.rst:629 +msgid "Convert a C :c:type:`double` to a Python floating point number." +msgstr "" + +#: ../Doc/c-api/arg.rst:632 +msgid "Convert a C :c:type:`float` to a Python floating point number." +msgstr "" + +#: ../Doc/c-api/arg.rst:635 +msgid "``D`` (:class:`complex`) [Py_complex \\*]" +msgstr "``D`` (:class:`complex`) [``Py_complex *``]" + +#: ../Doc/c-api/arg.rst:635 +msgid "Convert a C :c:type:`Py_complex` structure to a Python complex number." +msgstr "" + +#: ../Doc/c-api/arg.rst:638 +msgid "" +"Pass a Python object untouched (except for its reference count, which is " +"incremented by one). If the object passed in is a *NULL* pointer, it is " +"assumed that this was caused because the call producing the argument found " +"an error and set an exception. Therefore, :c:func:`Py_BuildValue` will " +"return *NULL* but won't raise an exception. If no exception has been raised " +"yet, :exc:`SystemError` is set." +msgstr "" + +#: ../Doc/c-api/arg.rst:646 +msgid "``S`` (object) [PyObject \\*]" +msgstr "``S`` (objet) [``PyObject *``]" + +#: ../Doc/c-api/arg.rst:646 +msgid "Same as ``O``." +msgstr "" + +#: ../Doc/c-api/arg.rst:651 +msgid "``N`` (object) [PyObject \\*]" +msgstr "``N`` (objet) [``PyObject *``]" + +#: ../Doc/c-api/arg.rst:649 +msgid "" +"Same as ``O``, except it doesn't increment the reference count on the " +"object. Useful when the object is created by a call to an object constructor " +"in the argument list." +msgstr "" + +#: ../Doc/c-api/arg.rst:654 +msgid "" +"Convert *anything* to a Python object through a *converter* function. The " +"function is called with *anything* (which should be compatible with :c:type:" +"`void \\*`) as its argument and should return a \"new\" Python object, or " +"*NULL* if an error occurred." +msgstr "" + +#: ../Doc/c-api/arg.rst:660 +msgid "" +"Convert a sequence of C values to a Python tuple with the same number of " +"items." +msgstr "" + +#: ../Doc/c-api/arg.rst:663 +msgid "``[items]`` (:class:`list`) [*matching-items*]" +msgstr "``[items]`` (:class:`list`) [*matching-items*]" + +#: ../Doc/c-api/arg.rst:663 +msgid "" +"Convert a sequence of C values to a Python list with the same number of " +"items." +msgstr "" + +#: ../Doc/c-api/arg.rst:668 +msgid "``{items}`` (:class:`dict`) [*matching-items*]" +msgstr "``{items}`` (:class:`dict`) [*matching-items*]" + +#: ../Doc/c-api/arg.rst:666 +msgid "" +"Convert a sequence of C values to a Python dictionary. Each pair of " +"consecutive C values adds one item to the dictionary, serving as key and " +"value, respectively." +msgstr "" + +#: ../Doc/c-api/arg.rst:670 +msgid "" +"If there is an error in the format string, the :exc:`SystemError` exception " +"is set and *NULL* returned." +msgstr "" + +#: ../Doc/c-api/arg.rst:675 +msgid "" +"Identical to :c:func:`Py_BuildValue`, except that it accepts a va_list " +"rather than a variable number of arguments." +msgstr "" + +#~ msgid "``s`` (:class:`str` or ``None``) [char \\*]" +#~ msgstr "``s`` (:class:`str` ou ``None``) [char \\*]" + +#~ msgid "``z`` (:class:`str` or ``None``) [char \\*]" +#~ msgstr "``z`` (:class:`str` ou ``None``) [char \\*]" + +#~ msgid "``u`` (:class:`str`) [wchar_t \\*]" +#~ msgstr "``u`` (:class:`str`) [wchar_t \\*]" + +#~ msgid "``U`` (:class:`str` or ``None``) [char \\*]" +#~ msgstr "``U`` (:class:`str` ou ``None``) [char \\*]" diff --git a/c-api/bool.po b/c-api/bool.po new file mode 100644 index 000000000..21654bebc --- /dev/null +++ b/c-api/bool.po @@ -0,0 +1,78 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/bool.rst:6 +msgid "Boolean Objects" +msgstr "Les objets booléens" + +#: ../Doc/c-api/bool.rst:8 +msgid "" +"Booleans in Python are implemented as a subclass of integers. There are " +"only two booleans, :const:`Py_False` and :const:`Py_True`. As such, the " +"normal creation and deletion functions don't apply to booleans. The " +"following macros are available, however." +msgstr "" +"Les booléens en Python sont implémentés comme une classe dérivée des " +"entiers. Il y a seulement deux booléens, :const:`Py_False` et :const:" +"`Py_True`. Comme tel, les fonctions de création de suppression ne " +"s'appliquent pas aux booléens. Toutefois, les macros suivantes sont " +"disponibles." + +#: ../Doc/c-api/bool.rst:16 +msgid "Return true if *o* is of type :c:data:`PyBool_Type`." +msgstr "Renvoie vrai si *o* est de type :c:data:`PyBook_Type`." + +#: ../Doc/c-api/bool.rst:21 +msgid "" +"The Python ``False`` object. This object has no methods. It needs to be " +"treated just like any other object with respect to reference counts." +msgstr "" +"L'objet Python ``False``. Cet objet n'a pas de méthodes. En ce qui concerne " +"le comptage de référence, il doit être traité comme n'importe quel autre " +"objet." + +#: ../Doc/c-api/bool.rst:27 +msgid "" +"The Python ``True`` object. This object has no methods. It needs to be " +"treated just like any other object with respect to reference counts." +msgstr "" +"L'objet Python ``True``. Cet objet n'a pas de méthodes. En ce qui concerne " +"le comptage de références, il doit être traité comme n'importe quel autre " +"objet." + +#: ../Doc/c-api/bool.rst:33 +msgid "" +"Return :const:`Py_False` from a function, properly incrementing its " +"reference count." +msgstr "" +"Renvoie :const:`Py_False` depuis une fonction tout en incrémentant son " +"nombre de références." + +#: ../Doc/c-api/bool.rst:39 +msgid "" +"Return :const:`Py_True` from a function, properly incrementing its reference " +"count." +msgstr "" +"Renvoie :const:`Py_True` depuis une fonction, en incrémentant son nombre de " +"références." + +#: ../Doc/c-api/bool.rst:45 +msgid "" +"Return a new reference to :const:`Py_True` or :const:`Py_False` depending on " +"the truth value of *v*." +msgstr "" +"Renvoie une nouvelle référence de :const:`Py_True` ou :const:`Py_False` en " +"fonction de la valeur de *v*." diff --git a/c-api/buffer.po b/c-api/buffer.po new file mode 100644 index 000000000..c78eae496 --- /dev/null +++ b/c-api/buffer.po @@ -0,0 +1,721 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2018-10-04 12:18+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/c-api/buffer.rst:11 +msgid "Buffer Protocol" +msgstr "Protocole tampon" + +#: ../Doc/c-api/buffer.rst:18 +msgid "" +"Certain objects available in Python wrap access to an underlying memory " +"array or *buffer*. Such objects include the built-in :class:`bytes` and :" +"class:`bytearray`, and some extension types like :class:`array.array`. Third-" +"party libraries may define their own types for special purposes, such as " +"image processing or numeric analysis." +msgstr "" +"Certains objets Python enveloppent l'accès à un tableau de mémoire sous-" +"jacente (nommée zone tampon ou simplement tampon, *buffer* en anglais). Les " +"objets natifs :class:`bytes` et :class:`bytearray` en sont des exemples, " +"ainsi que quelques types d'extension comme :class:`array.array`. Les " +"bibliothèques tierces peuvent définir leurs propres types à des fins " +"spéciales, telles que le traitement d'image ou l'analyse numérique." + +#: ../Doc/c-api/buffer.rst:24 +msgid "" +"While each of these types have their own semantics, they share the common " +"characteristic of being backed by a possibly large memory buffer. It is " +"then desirable, in some situations, to access that buffer directly and " +"without intermediate copying." +msgstr "" +"Alors que chacun de ces types a sa propre sémantique, ils partagent la " +"caractéristique commune d'être soutenus par un tampon de mémoire important. " +"Il est donc souhaitable, dans certains cas, d'accéder à cette mémoire " +"directement sans l'étape intermédiaire de copie." + +#: ../Doc/c-api/buffer.rst:29 +msgid "" +"Python provides such a facility at the C level in the form of the :ref:" +"`buffer protocol `. This protocol has two sides:" +msgstr "" +"Python fournit une telle facilité au niveau du C sous la forme de :ref:" +"`protocole tampon `. Ce protocole comporte deux aspects :" + +#: ../Doc/c-api/buffer.rst:34 +msgid "" +"on the producer side, a type can export a \"buffer interface\" which allows " +"objects of that type to expose information about their underlying buffer. " +"This interface is described in the section :ref:`buffer-structs`;" +msgstr "" +"du côté producteur, un type peut exporter une \"interface tampon\" qui " +"permet aux objets de ce type d'exposer des informations concernant leur " +"tampon sous-jacent. Cette interface est décrite dans la section :ref:`buffer-" +"structs` ;" + +#: ../Doc/c-api/buffer.rst:38 +msgid "" +"on the consumer side, several means are available to obtain a pointer to the " +"raw underlying data of an object (for example a method parameter)." +msgstr "" +"du côté consommateur, plusieurs moyens sont disponibles pour obtenir un " +"pointeur vers les données sous-jacentes brutes d'un objet (par exemple un " +"paramètre de méthode)." + +#: ../Doc/c-api/buffer.rst:41 +msgid "" +"Simple objects such as :class:`bytes` and :class:`bytearray` expose their " +"underlying buffer in byte-oriented form. Other forms are possible; for " +"example, the elements exposed by an :class:`array.array` can be multi-byte " +"values." +msgstr "" +"Des objets simples tels que :class:`bytes` et :class:`bytearray` exposent " +"leur tampon sous-jacent dans un format orienté octet. D'autres formes sont " +"possibles ; par exemple, les éléments exposés par un :class:`array.array` " +"peuvent être des valeurs multi-octets." + +#: ../Doc/c-api/buffer.rst:45 +msgid "" +"An example consumer of the buffer interface is the :meth:`~io.BufferedIOBase." +"write` method of file objects: any object that can export a series of bytes " +"through the buffer interface can be written to a file. While :meth:`write` " +"only needs read-only access to the internal contents of the object passed to " +"it, other methods such as :meth:`~io.BufferedIOBase.readinto` need write " +"access to the contents of their argument. The buffer interface allows " +"objects to selectively allow or reject exporting of read-write and read-only " +"buffers." +msgstr "" +"Un exemple de consommateur de l'interface tampon est la méthode :meth:`~io." +"BufferedIOBase.write` des objets fichiers : tout objet qui peut exporter une " +"série d'octets à travers l'interface tampon peut être écrit dans un fichier. " +"Alors que :meth:`write` n'a besoin que d'un accès lecture au contenu " +"interne de l'objet qui lui est passé, d'autres méthodes telles que :meth:" +"`~io.BufferedIOBase.readinto` nécessitent un accès écriture au contenu de " +"leur argument. L'interface *buffer* permet aux objets d'autoriser ou de " +"rejeter sélectivement l'exportation de tampons en mode lecture-écriture et " +"en mode lecture seule." + +#: ../Doc/c-api/buffer.rst:53 +msgid "" +"There are two ways for a consumer of the buffer interface to acquire a " +"buffer over a target object:" +msgstr "" +"Un consommateur de l'interface tampon peut acquérir un tampon sur un objet " +"cible de deux manières :" + +#: ../Doc/c-api/buffer.rst:56 +msgid "call :c:func:`PyObject_GetBuffer` with the right parameters;" +msgstr "appelez :c:func:`PyObject_GetBuffer` avec les paramètres appropriés ;" + +#: ../Doc/c-api/buffer.rst:58 +msgid "" +"call :c:func:`PyArg_ParseTuple` (or one of its siblings) with one of the " +"``y*``, ``w*`` or ``s*`` :ref:`format codes `." +msgstr "" +"appelez :c:func:`PyArg_ParseTuple` (ou l'un de ses fonctions sœurs) avec " +"l'un des ``y*``, ``w*`` ou ``s*`` :ref:`format codes `." + +#: ../Doc/c-api/buffer.rst:61 +msgid "" +"In both cases, :c:func:`PyBuffer_Release` must be called when the buffer " +"isn't needed anymore. Failure to do so could lead to various issues such as " +"resource leaks." +msgstr "" +"Dans les deux cas, :c:func:`PyBuffer_Release` doit être appelée quand le " +"tampon n'est plus nécessaire. Ne pas le faire peut conduire à divers " +"problèmes tels que des fuites de ressources." + +#: ../Doc/c-api/buffer.rst:69 +msgid "Buffer structure" +msgstr "La structure *buffer*" + +#: ../Doc/c-api/buffer.rst:71 +msgid "" +"Buffer structures (or simply \"buffers\") are useful as a way to expose the " +"binary data from another object to the Python programmer. They can also be " +"used as a zero-copy slicing mechanism. Using their ability to reference a " +"block of memory, it is possible to expose any data to the Python programmer " +"quite easily. The memory could be a large, constant array in a C extension, " +"it could be a raw block of memory for manipulation before passing to an " +"operating system library, or it could be used to pass around structured data " +"in its native, in-memory format." +msgstr "" +"Les structures tampons (ou simplement les \"tampons\", *buffers* en anglais) " +"sont utiles pour exposer les données binaires d'un autre objet au " +"programmeur Python. Elles peuvent également être utilisées comme un " +"mécanisme de découpage sans copie. En utilisant leur capacité à référencer " +"un bloc de mémoire, il est possible d'exposer toutes les données au " +"programmeur Python assez facilement. La mémoire peut être un grand tableau " +"constant dans une extension C, il peut s'agir d'un bloc brut de mémoire à " +"manipuler avant de passer à une bibliothèque de système d'exploitation ou " +"être utilisé pour transmettre des données structurées dans son format natif " +"en mémoire." + +#: ../Doc/c-api/buffer.rst:80 +msgid "" +"Contrary to most data types exposed by the Python interpreter, buffers are " +"not :c:type:`PyObject` pointers but rather simple C structures. This allows " +"them to be created and copied very simply. When a generic wrapper around a " +"buffer is needed, a :ref:`memoryview ` object can be " +"created." +msgstr "" +"Contrairement à la plupart des types de données exposés par l'interpréteur " +"Python, les tampons ne sont pas de simples pointeurs vers :c:type:`PyObject` " +"mais plutôt des structures C simples. Cela leur permet d'être créés et " +"copiés très simplement. lorsque vous avez besoin d'une enveloppe générique " +"(*wrapper* en anglais) pour un tampon, un objet :ref:`memoryview ` peut être créé." + +#: ../Doc/c-api/buffer.rst:86 +msgid "" +"For short instructions how to write an exporting object, see :ref:`Buffer " +"Object Structures `. For obtaining a buffer, see :c:func:" +"`PyObject_GetBuffer`." +msgstr "" + +#: ../Doc/c-api/buffer.rst:94 +msgid "" +"A pointer to the start of the logical structure described by the buffer " +"fields. This can be any location within the underlying physical memory block " +"of the exporter. For example, with negative :c:member:`~Py_buffer.strides` " +"the value may point to the end of the memory block." +msgstr "" + +#: ../Doc/c-api/buffer.rst:99 +msgid "" +"For :term:`contiguous` arrays, the value points to the beginning of the " +"memory block." +msgstr "" + +#: ../Doc/c-api/buffer.rst:104 +msgid "" +"A new reference to the exporting object. The reference is owned by the " +"consumer and automatically decremented and set to *NULL* by :c:func:" +"`PyBuffer_Release`. The field is the equivalent of the return value of any " +"standard C-API function." +msgstr "" + +#: ../Doc/c-api/buffer.rst:109 +msgid "" +"As a special case, for *temporary* buffers that are wrapped by :c:func:" +"`PyMemoryView_FromBuffer` or :c:func:`PyBuffer_FillInfo` this field is " +"*NULL*. In general, exporting objects MUST NOT use this scheme." +msgstr "" + +#: ../Doc/c-api/buffer.rst:116 +msgid "" +"``product(shape) * itemsize``. For contiguous arrays, this is the length of " +"the underlying memory block. For non-contiguous arrays, it is the length " +"that the logical structure would have if it were copied to a contiguous " +"representation." +msgstr "" + +#: ../Doc/c-api/buffer.rst:121 +msgid "" +"Accessing ``((char *)buf)[0] up to ((char *)buf)[len-1]`` is only valid if " +"the buffer has been obtained by a request that guarantees contiguity. In " +"most cases such a request will be :c:macro:`PyBUF_SIMPLE` or :c:macro:" +"`PyBUF_WRITABLE`." +msgstr "" + +#: ../Doc/c-api/buffer.rst:127 +msgid "" +"An indicator of whether the buffer is read-only. This field is controlled by " +"the :c:macro:`PyBUF_WRITABLE` flag." +msgstr "" + +#: ../Doc/c-api/buffer.rst:132 +msgid "" +"Item size in bytes of a single element. Same as the value of :func:`struct." +"calcsize` called on non-NULL :c:member:`~Py_buffer.format` values." +msgstr "" + +#: ../Doc/c-api/buffer.rst:135 +msgid "" +"Important exception: If a consumer requests a buffer without the :c:macro:" +"`PyBUF_FORMAT` flag, :c:member:`~Py_buffer.format` will be set to *NULL*, " +"but :c:member:`~Py_buffer.itemsize` still has the value for the original " +"format." +msgstr "" + +#: ../Doc/c-api/buffer.rst:140 +msgid "" +"If :c:member:`~Py_buffer.shape` is present, the equality ``product(shape) * " +"itemsize == len`` still holds and the consumer can use :c:member:`~Py_buffer." +"itemsize` to navigate the buffer." +msgstr "" + +#: ../Doc/c-api/buffer.rst:144 +msgid "" +"If :c:member:`~Py_buffer.shape` is *NULL* as a result of a :c:macro:" +"`PyBUF_SIMPLE` or a :c:macro:`PyBUF_WRITABLE` request, the consumer must " +"disregard :c:member:`~Py_buffer.itemsize` and assume ``itemsize == 1``." +msgstr "" + +#: ../Doc/c-api/buffer.rst:150 +msgid "" +"A *NUL* terminated string in :mod:`struct` module style syntax describing " +"the contents of a single item. If this is *NULL*, ``\"B\"`` (unsigned bytes) " +"is assumed." +msgstr "" + +#: ../Doc/c-api/buffer.rst:154 +msgid "This field is controlled by the :c:macro:`PyBUF_FORMAT` flag." +msgstr "" + +#: ../Doc/c-api/buffer.rst:158 +msgid "" +"The number of dimensions the memory represents as an n-dimensional array. If " +"it is ``0``, :c:member:`~Py_buffer.buf` points to a single item representing " +"a scalar. In this case, :c:member:`~Py_buffer.shape`, :c:member:`~Py_buffer." +"strides` and :c:member:`~Py_buffer.suboffsets` MUST be *NULL*." +msgstr "" + +#: ../Doc/c-api/buffer.rst:163 +msgid "" +"The macro :c:macro:`PyBUF_MAX_NDIM` limits the maximum number of dimensions " +"to 64. Exporters MUST respect this limit, consumers of multi-dimensional " +"buffers SHOULD be able to handle up to :c:macro:`PyBUF_MAX_NDIM` dimensions." +msgstr "" + +#: ../Doc/c-api/buffer.rst:169 +msgid "" +"An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim` " +"indicating the shape of the memory as an n-dimensional array. Note that " +"``shape[0] * ... * shape[ndim-1] * itemsize`` MUST be equal to :c:member:" +"`~Py_buffer.len`." +msgstr "" + +#: ../Doc/c-api/buffer.rst:174 +msgid "" +"Shape values are restricted to ``shape[n] >= 0``. The case ``shape[n] == 0`` " +"requires special attention. See `complex arrays`_ for further information." +msgstr "" + +#: ../Doc/c-api/buffer.rst:178 +msgid "The shape array is read-only for the consumer." +msgstr "" + +#: ../Doc/c-api/buffer.rst:182 +msgid "" +"An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim` " +"giving the number of bytes to skip to get to a new element in each dimension." +msgstr "" + +#: ../Doc/c-api/buffer.rst:186 +msgid "" +"Stride values can be any integer. For regular arrays, strides are usually " +"positive, but a consumer MUST be able to handle the case ``strides[n] <= " +"0``. See `complex arrays`_ for further information." +msgstr "" + +#: ../Doc/c-api/buffer.rst:190 +msgid "The strides array is read-only for the consumer." +msgstr "" + +#: ../Doc/c-api/buffer.rst:194 +msgid "" +"An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim`. If " +"``suboffsets[n] >= 0``, the values stored along the nth dimension are " +"pointers and the suboffset value dictates how many bytes to add to each " +"pointer after de-referencing. A suboffset value that is negative indicates " +"that no de-referencing should occur (striding in a contiguous memory block)." +msgstr "" + +#: ../Doc/c-api/buffer.rst:201 +msgid "" +"If all suboffsets are negative (i.e. no de-referencing is needed), then this " +"field must be NULL (the default value)." +msgstr "" + +#: ../Doc/c-api/buffer.rst:204 +msgid "" +"This type of array representation is used by the Python Imaging Library " +"(PIL). See `complex arrays`_ for further information how to access elements " +"of such an array." +msgstr "" + +#: ../Doc/c-api/buffer.rst:208 +msgid "The suboffsets array is read-only for the consumer." +msgstr "" + +#: ../Doc/c-api/buffer.rst:212 +msgid "" +"This is for use internally by the exporting object. For example, this might " +"be re-cast as an integer by the exporter and used to store flags about " +"whether or not the shape, strides, and suboffsets arrays must be freed when " +"the buffer is released. The consumer MUST NOT alter this value." +msgstr "" + +#: ../Doc/c-api/buffer.rst:221 +msgid "Buffer request types" +msgstr "" + +#: ../Doc/c-api/buffer.rst:223 +msgid "" +"Buffers are usually obtained by sending a buffer request to an exporting " +"object via :c:func:`PyObject_GetBuffer`. Since the complexity of the logical " +"structure of the memory can vary drastically, the consumer uses the *flags* " +"argument to specify the exact buffer type it can handle." +msgstr "" + +#: ../Doc/c-api/buffer.rst:228 +msgid "" +"All :c:data:`Py_buffer` fields are unambiguously defined by the request type." +msgstr "" + +#: ../Doc/c-api/buffer.rst:232 +msgid "request-independent fields" +msgstr "" + +#: ../Doc/c-api/buffer.rst:233 +msgid "" +"The following fields are not influenced by *flags* and must always be filled " +"in with the correct values: :c:member:`~Py_buffer.obj`, :c:member:" +"`~Py_buffer.buf`, :c:member:`~Py_buffer.len`, :c:member:`~Py_buffer." +"itemsize`, :c:member:`~Py_buffer.ndim`." +msgstr "" + +#: ../Doc/c-api/buffer.rst:239 +msgid "readonly, format" +msgstr "" + +#: ../Doc/c-api/buffer.rst:243 +msgid "" +"Controls the :c:member:`~Py_buffer.readonly` field. If set, the exporter " +"MUST provide a writable buffer or else report failure. Otherwise, the " +"exporter MAY provide either a read-only or writable buffer, but the choice " +"MUST be consistent for all consumers." +msgstr "" + +#: ../Doc/c-api/buffer.rst:250 +msgid "" +"Controls the :c:member:`~Py_buffer.format` field. If set, this field MUST be " +"filled in correctly. Otherwise, this field MUST be *NULL*." +msgstr "" + +#: ../Doc/c-api/buffer.rst:254 +msgid "" +":c:macro:`PyBUF_WRITABLE` can be \\|'d to any of the flags in the next " +"section. Since :c:macro:`PyBUF_SIMPLE` is defined as 0, :c:macro:" +"`PyBUF_WRITABLE` can be used as a stand-alone flag to request a simple " +"writable buffer." +msgstr "" + +#: ../Doc/c-api/buffer.rst:258 +msgid "" +":c:macro:`PyBUF_FORMAT` can be \\|'d to any of the flags except :c:macro:" +"`PyBUF_SIMPLE`. The latter already implies format ``B`` (unsigned bytes)." +msgstr "" + +#: ../Doc/c-api/buffer.rst:263 +msgid "shape, strides, suboffsets" +msgstr "" + +#: ../Doc/c-api/buffer.rst:265 +msgid "" +"The flags that control the logical structure of the memory are listed in " +"decreasing order of complexity. Note that each flag contains all bits of the " +"flags below it." +msgstr "" + +#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 +#: ../Doc/c-api/buffer.rst:321 +msgid "Request" +msgstr "" + +#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 +#: ../Doc/c-api/buffer.rst:321 +msgid "shape" +msgstr "" + +#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 +#: ../Doc/c-api/buffer.rst:321 +msgid "strides" +msgstr "" + +#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 +#: ../Doc/c-api/buffer.rst:321 +msgid "suboffsets" +msgstr "" + +#: ../Doc/c-api/buffer.rst:274 ../Doc/c-api/buffer.rst:276 +#: ../Doc/c-api/buffer.rst:278 ../Doc/c-api/buffer.rst:298 +#: ../Doc/c-api/buffer.rst:300 ../Doc/c-api/buffer.rst:302 +#: ../Doc/c-api/buffer.rst:304 ../Doc/c-api/buffer.rst:323 +#: ../Doc/c-api/buffer.rst:325 ../Doc/c-api/buffer.rst:327 +#: ../Doc/c-api/buffer.rst:329 ../Doc/c-api/buffer.rst:331 +#: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:335 +#: ../Doc/c-api/buffer.rst:337 +msgid "yes" +msgstr "oui" + +#: ../Doc/c-api/buffer.rst:274 ../Doc/c-api/buffer.rst:323 +#: ../Doc/c-api/buffer.rst:325 +msgid "if needed" +msgstr "" + +#: ../Doc/c-api/buffer.rst:276 ../Doc/c-api/buffer.rst:278 +#: ../Doc/c-api/buffer.rst:280 ../Doc/c-api/buffer.rst:298 +#: ../Doc/c-api/buffer.rst:300 ../Doc/c-api/buffer.rst:302 +#: ../Doc/c-api/buffer.rst:304 ../Doc/c-api/buffer.rst:327 +#: ../Doc/c-api/buffer.rst:329 ../Doc/c-api/buffer.rst:331 +#: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:335 +#: ../Doc/c-api/buffer.rst:337 +msgid "NULL" +msgstr "" + +#: ../Doc/c-api/buffer.rst:287 +msgid "contiguity requests" +msgstr "" + +#: ../Doc/c-api/buffer.rst:289 +msgid "" +"C or Fortran :term:`contiguity ` can be explicitly requested, " +"with and without stride information. Without stride information, the buffer " +"must be C-contiguous." +msgstr "" + +#: ../Doc/c-api/buffer.rst:296 ../Doc/c-api/buffer.rst:321 +msgid "contig" +msgstr "" + +#: ../Doc/c-api/buffer.rst:298 ../Doc/c-api/buffer.rst:304 +#: ../Doc/c-api/buffer.rst:335 ../Doc/c-api/buffer.rst:337 +msgid "C" +msgstr "" + +#: ../Doc/c-api/buffer.rst:300 +msgid "F" +msgstr "F" + +#: ../Doc/c-api/buffer.rst:302 +msgid "C or F" +msgstr "" + +#: ../Doc/c-api/buffer.rst:309 +msgid "compound requests" +msgstr "" + +#: ../Doc/c-api/buffer.rst:311 +msgid "" +"All possible requests are fully defined by some combination of the flags in " +"the previous section. For convenience, the buffer protocol provides " +"frequently used combinations as single flags." +msgstr "" + +#: ../Doc/c-api/buffer.rst:315 +msgid "" +"In the following table *U* stands for undefined contiguity. The consumer " +"would have to call :c:func:`PyBuffer_IsContiguous` to determine contiguity." +msgstr "" + +#: ../Doc/c-api/buffer.rst:321 +msgid "readonly" +msgstr "" + +#: ../Doc/c-api/buffer.rst:321 +msgid "format" +msgstr "format" + +#: ../Doc/c-api/buffer.rst:323 ../Doc/c-api/buffer.rst:325 +#: ../Doc/c-api/buffer.rst:327 ../Doc/c-api/buffer.rst:329 +#: ../Doc/c-api/buffer.rst:331 ../Doc/c-api/buffer.rst:333 +msgid "U" +msgstr "" + +#: ../Doc/c-api/buffer.rst:323 ../Doc/c-api/buffer.rst:327 +#: ../Doc/c-api/buffer.rst:331 ../Doc/c-api/buffer.rst:335 +msgid "0" +msgstr "0" + +#: ../Doc/c-api/buffer.rst:325 ../Doc/c-api/buffer.rst:329 +#: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:337 +msgid "1 or 0" +msgstr "" + +#: ../Doc/c-api/buffer.rst:342 +msgid "Complex arrays" +msgstr "" + +#: ../Doc/c-api/buffer.rst:345 +msgid "NumPy-style: shape and strides" +msgstr "" + +#: ../Doc/c-api/buffer.rst:347 +msgid "" +"The logical structure of NumPy-style arrays is defined by :c:member:" +"`~Py_buffer.itemsize`, :c:member:`~Py_buffer.ndim`, :c:member:`~Py_buffer." +"shape` and :c:member:`~Py_buffer.strides`." +msgstr "" + +#: ../Doc/c-api/buffer.rst:350 +msgid "" +"If ``ndim == 0``, the memory location pointed to by :c:member:`~Py_buffer." +"buf` is interpreted as a scalar of size :c:member:`~Py_buffer.itemsize`. In " +"that case, both :c:member:`~Py_buffer.shape` and :c:member:`~Py_buffer." +"strides` are *NULL*." +msgstr "" + +#: ../Doc/c-api/buffer.rst:354 +msgid "" +"If :c:member:`~Py_buffer.strides` is *NULL*, the array is interpreted as a " +"standard n-dimensional C-array. Otherwise, the consumer must access an n-" +"dimensional array as follows:" +msgstr "" + +#: ../Doc/c-api/buffer.rst:358 +msgid "" +"``ptr = (char *)buf + indices[0] * strides[0] + ... + indices[n-1] * " +"strides[n-1]`` ``item = *((typeof(item) *)ptr);``" +msgstr "" + +#: ../Doc/c-api/buffer.rst:362 +msgid "" +"As noted above, :c:member:`~Py_buffer.buf` can point to any location within " +"the actual memory block. An exporter can check the validity of a buffer with " +"this function:" +msgstr "" + +#: ../Doc/c-api/buffer.rst:396 +msgid "PIL-style: shape, strides and suboffsets" +msgstr "" + +#: ../Doc/c-api/buffer.rst:398 +msgid "" +"In addition to the regular items, PIL-style arrays can contain pointers that " +"must be followed in order to get to the next element in a dimension. For " +"example, the regular three-dimensional C-array ``char v[2][2][3]`` can also " +"be viewed as an array of 2 pointers to 2 two-dimensional arrays: ``char " +"(*v[2])[2][3]``. In suboffsets representation, those two pointers can be " +"embedded at the start of :c:member:`~Py_buffer.buf`, pointing to two ``char " +"x[2][3]`` arrays that can be located anywhere in memory." +msgstr "" + +#: ../Doc/c-api/buffer.rst:407 +msgid "" +"Here is a function that returns a pointer to the element in an N-D array " +"pointed to by an N-dimensional index when there are both non-NULL strides " +"and suboffsets::" +msgstr "" + +#: ../Doc/c-api/buffer.rst:426 +msgid "Buffer-related functions" +msgstr "Fonctions relatives aux tampons" + +#: ../Doc/c-api/buffer.rst:430 +msgid "" +"Return ``1`` if *obj* supports the buffer interface otherwise ``0``. When " +"``1`` is returned, it doesn't guarantee that :c:func:`PyObject_GetBuffer` " +"will succeed. This function always succeeds." +msgstr "" + +#: ../Doc/c-api/buffer.rst:437 +msgid "" +"Send a request to *exporter* to fill in *view* as specified by *flags*. If " +"the exporter cannot provide a buffer of the exact type, it MUST raise :c:" +"data:`PyExc_BufferError`, set :c:member:`view->obj` to *NULL* and return " +"``-1``." +msgstr "" + +#: ../Doc/c-api/buffer.rst:442 +msgid "" +"On success, fill in *view*, set :c:member:`view->obj` to a new reference to " +"*exporter* and return 0. In the case of chained buffer providers that " +"redirect requests to a single object, :c:member:`view->obj` MAY refer to " +"this object instead of *exporter* (See :ref:`Buffer Object Structures " +"`)." +msgstr "" + +#: ../Doc/c-api/buffer.rst:447 +msgid "" +"Successful calls to :c:func:`PyObject_GetBuffer` must be paired with calls " +"to :c:func:`PyBuffer_Release`, similar to :c:func:`malloc` and :c:func:" +"`free`. Thus, after the consumer is done with the buffer, :c:func:" +"`PyBuffer_Release` must be called exactly once." +msgstr "" + +#: ../Doc/c-api/buffer.rst:455 +msgid "" +"Release the buffer *view* and decrement the reference count for :c:member:" +"`view->obj`. This function MUST be called when the buffer is no longer being " +"used, otherwise reference leaks may occur." +msgstr "" + +#: ../Doc/c-api/buffer.rst:459 +msgid "" +"It is an error to call this function on a buffer that was not obtained via :" +"c:func:`PyObject_GetBuffer`." +msgstr "" + +#: ../Doc/c-api/buffer.rst:465 +msgid "" +"Return the implied :c:data:`~Py_buffer.itemsize` from :c:data:`~Py_buffer." +"format`. This function is not yet implemented." +msgstr "" + +#: ../Doc/c-api/buffer.rst:471 +msgid "" +"Return ``1`` if the memory defined by the *view* is C-style (*order* is " +"``'C'``) or Fortran-style (*order* is ``'F'``) :term:`contiguous` or either " +"one (*order* is ``'A'``). Return ``0`` otherwise. This function always " +"succeeds." +msgstr "" + +#: ../Doc/c-api/buffer.rst:478 +msgid "" +"Copy *len* bytes from *src* to its contiguous representation in *buf*. " +"*order* can be ``'C'`` or ``'F'`` (for C-style or Fortran-style ordering). " +"``0`` is returned on success, ``-1`` on error." +msgstr "" + +#: ../Doc/c-api/buffer.rst:482 +msgid "This function fails if *len* != *src->len*." +msgstr "" + +#: ../Doc/c-api/buffer.rst:487 +msgid "" +"Fill the *strides* array with byte-strides of a :term:`contiguous` (C-style " +"if *order* is ``'C'`` or Fortran-style if *order* is ``'F'``) array of the " +"given shape with the given number of bytes per element." +msgstr "" + +#: ../Doc/c-api/buffer.rst:494 +msgid "" +"Handle buffer requests for an exporter that wants to expose *buf* of size " +"*len* with writability set according to *readonly*. *buf* is interpreted as " +"a sequence of unsigned bytes." +msgstr "" + +#: ../Doc/c-api/buffer.rst:498 +msgid "" +"The *flags* argument indicates the request type. This function always fills " +"in *view* as specified by flags, unless *buf* has been designated as read-" +"only and :c:macro:`PyBUF_WRITABLE` is set in *flags*." +msgstr "" + +#: ../Doc/c-api/buffer.rst:502 +msgid "" +"On success, set :c:member:`view->obj` to a new reference to *exporter* and " +"return 0. Otherwise, raise :c:data:`PyExc_BufferError`, set :c:member:`view-" +">obj` to *NULL* and return ``-1``;" +msgstr "" + +#: ../Doc/c-api/buffer.rst:506 +msgid "" +"If this function is used as part of a :ref:`getbufferproc `, " +"*exporter* MUST be set to the exporting object and *flags* must be passed " +"unmodified. Otherwise, *exporter* MUST be NULL." +msgstr "" diff --git a/c-api/bytearray.po b/c-api/bytearray.po new file mode 100644 index 000000000..4b3116288 --- /dev/null +++ b/c-api/bytearray.po @@ -0,0 +1,117 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-10-04 12:21+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/bytearray.rst:6 +msgid "Byte Array Objects" +msgstr "Objets tableau d'octets" + +#: ../Doc/c-api/bytearray.rst:13 +msgid "" +"This subtype of :c:type:`PyObject` represents a Python bytearray object." +msgstr "" +"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." + +#: ../Doc/c-api/bytearray.rst:18 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python bytearray " +"type; it is the same object as :class:`bytearray` in the Python layer." +msgstr "" +"Cette instance de :c:type:`PyTypeObject` représente le type Python " +"*bytearray*, c'est le même que :class:`bytearray` côté Python." + +#: ../Doc/c-api/bytearray.rst:23 +msgid "Type check macros" +msgstr "Macros de vérification de type" + +#: ../Doc/c-api/bytearray.rst:27 +msgid "" +"Return true if the object *o* is a bytearray object or an instance of a " +"subtype of the bytearray type." +msgstr "" +"Renvoie vrai si l'objet *o* est un ``bytearray`` ou une instance d'un sous-" +"type du type ``bytearray``." + +#: ../Doc/c-api/bytearray.rst:33 +msgid "" +"Return true if the object *o* is a bytearray object, but not an instance of " +"a subtype of the bytearray type." +msgstr "" +"Renvoie vrai si l'objet *o* est un ``bytearray``, mais pas une instance d'un " +"sous-type du type ``bytearray``." + +#: ../Doc/c-api/bytearray.rst:38 +msgid "Direct API functions" +msgstr "Fonctions directes sur l'API" + +#: ../Doc/c-api/bytearray.rst:42 +msgid "" +"Return a new bytearray object from any object, *o*, that implements the :ref:" +"`buffer protocol `." +msgstr "" +"Renvoie un nouvel objet *bytearray* depuis n'importe quel objet, *o*, qui " +"implémente le :ref:`protocole buffer `." + +#: ../Doc/c-api/bytearray.rst:50 +msgid "" +"Create a new bytearray object from *string* and its length, *len*. On " +"failure, *NULL* is returned." +msgstr "" +"Crée un nouvel objet ``bytearray`` à partir d'un objet *string* et de sa " +"longueur, *len*. En cas d'échec, *NULL* est renvoyé." + +#: ../Doc/c-api/bytearray.rst:56 +msgid "" +"Concat bytearrays *a* and *b* and return a new bytearray with the result." +msgstr "" +"Concatène les ``bytearrays`` *a* et *b* et renvoie un nouveau ``bytearray`` " +"avec le résultat." + +#: ../Doc/c-api/bytearray.rst:61 +msgid "Return the size of *bytearray* after checking for a *NULL* pointer." +msgstr "" +"Renvoie la taille de *bytearray* après vérification de la présence d'un " +"pointeur *NULL*." + +#: ../Doc/c-api/bytearray.rst:66 +msgid "" +"Return the contents of *bytearray* as a char array after checking for a " +"*NULL* pointer. The returned array always has an extra null byte appended." +msgstr "" +"Renvoie le contenu de *bytearray* sous forme d'un tableau de caractères, en " +"vérifiant que ce n'est pas un pointeur *NULL*. Le tableau renvoyé se termine " +"toujours par un octet *null*." + +#: ../Doc/c-api/bytearray.rst:73 +msgid "Resize the internal buffer of *bytearray* to *len*." +msgstr "Redimensionne le tampon interne de *bytearray* à la taille *len*." + +#: ../Doc/c-api/bytearray.rst:76 +msgid "Macros" +msgstr "Macros" + +#: ../Doc/c-api/bytearray.rst:78 +msgid "These macros trade safety for speed and they don't check pointers." +msgstr "" +"Ces macros sont taillées pour la vitesse d'exécution et ne vérifient pas les " +"pointeurs." + +#: ../Doc/c-api/bytearray.rst:82 +msgid "Macro version of :c:func:`PyByteArray_AsString`." +msgstr "Version macro de :c:func:`PyByteArray_AsString`." + +#: ../Doc/c-api/bytearray.rst:87 +msgid "Macro version of :c:func:`PyByteArray_Size`." +msgstr "Version macro de :c:func:`PyByteArray_Size`." diff --git a/c-api/bytes.po b/c-api/bytes.po new file mode 100644 index 000000000..dbd32524b --- /dev/null +++ b/c-api/bytes.po @@ -0,0 +1,324 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-07-03 11:50+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/bytes.rst:6 +msgid "Bytes Objects" +msgstr "Objets *bytes*" + +#: ../Doc/c-api/bytes.rst:8 +msgid "" +"These functions raise :exc:`TypeError` when expecting a bytes parameter and " +"are called with a non-bytes parameter." +msgstr "" + +#: ../Doc/c-api/bytes.rst:16 +msgid "This subtype of :c:type:`PyObject` represents a Python bytes object." +msgstr "" + +#: ../Doc/c-api/bytes.rst:21 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python bytes type; it " +"is the same object as :class:`bytes` in the Python layer." +msgstr "" + +#: ../Doc/c-api/bytes.rst:27 +msgid "" +"Return true if the object *o* is a bytes object or an instance of a subtype " +"of the bytes type." +msgstr "" + +#: ../Doc/c-api/bytes.rst:33 +msgid "" +"Return true if the object *o* is a bytes object, but not an instance of a " +"subtype of the bytes type." +msgstr "" + +#: ../Doc/c-api/bytes.rst:39 +msgid "" +"Return a new bytes object with a copy of the string *v* as value on success, " +"and *NULL* on failure. The parameter *v* must not be *NULL*; it will not be " +"checked." +msgstr "" + +#: ../Doc/c-api/bytes.rst:46 +msgid "" +"Return a new bytes object with a copy of the string *v* as value and length " +"*len* on success, and *NULL* on failure. If *v* is *NULL*, the contents of " +"the bytes object are uninitialized." +msgstr "" + +#: ../Doc/c-api/bytes.rst:53 +msgid "" +"Take a C :c:func:`printf`\\ -style *format* string and a variable number of " +"arguments, calculate the size of the resulting Python bytes object and " +"return a bytes object with the values formatted into it. The variable " +"arguments must be C types and must correspond exactly to the format " +"characters in the *format* string. The following format characters are " +"allowed:" +msgstr "" + +#: ../Doc/c-api/bytes.rst:68 +msgid "Format Characters" +msgstr "Caractères de format" + +#: ../Doc/c-api/bytes.rst:68 +msgid "Type" +msgstr "Type" + +#: ../Doc/c-api/bytes.rst:68 +msgid "Comment" +msgstr "" + +#: ../Doc/c-api/bytes.rst:70 +msgid ":attr:`%%`" +msgstr "" + +#: ../Doc/c-api/bytes.rst:70 +msgid "*n/a*" +msgstr "" + +#: ../Doc/c-api/bytes.rst:70 +msgid "The literal % character." +msgstr "" + +#: ../Doc/c-api/bytes.rst:72 +msgid ":attr:`%c`" +msgstr "" + +#: ../Doc/c-api/bytes.rst:72 ../Doc/c-api/bytes.rst:75 +#: ../Doc/c-api/bytes.rst:93 ../Doc/c-api/bytes.rst:96 +msgid "int" +msgstr "*int*" + +#: ../Doc/c-api/bytes.rst:72 +msgid "A single byte, represented as a C int." +msgstr "" + +#: ../Doc/c-api/bytes.rst:75 +msgid ":attr:`%d`" +msgstr "" + +#: ../Doc/c-api/bytes.rst:75 +msgid "Equivalent to ``printf(\"%d\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/bytes.rst:78 +msgid ":attr:`%u`" +msgstr "" + +#: ../Doc/c-api/bytes.rst:78 +msgid "unsigned int" +msgstr "``unsigned int``" + +#: ../Doc/c-api/bytes.rst:78 +msgid "Equivalent to ``printf(\"%u\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/bytes.rst:81 +msgid ":attr:`%ld`" +msgstr "" + +#: ../Doc/c-api/bytes.rst:81 +msgid "long" +msgstr "" + +#: ../Doc/c-api/bytes.rst:81 +msgid "Equivalent to ``printf(\"%ld\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/bytes.rst:84 +msgid ":attr:`%lu`" +msgstr "" + +#: ../Doc/c-api/bytes.rst:84 +msgid "unsigned long" +msgstr "``unsigned long``" + +#: ../Doc/c-api/bytes.rst:84 +msgid "Equivalent to ``printf(\"%lu\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/bytes.rst:87 +msgid ":attr:`%zd`" +msgstr "" + +#: ../Doc/c-api/bytes.rst:87 +msgid "Py_ssize_t" +msgstr "" + +#: ../Doc/c-api/bytes.rst:87 +msgid "Equivalent to ``printf(\"%zd\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/bytes.rst:90 +msgid ":attr:`%zu`" +msgstr "" + +#: ../Doc/c-api/bytes.rst:90 +msgid "size_t" +msgstr "" + +#: ../Doc/c-api/bytes.rst:90 +msgid "Equivalent to ``printf(\"%zu\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/bytes.rst:93 +msgid ":attr:`%i`" +msgstr "" + +#: ../Doc/c-api/bytes.rst:93 +msgid "Equivalent to ``printf(\"%i\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/bytes.rst:96 +msgid ":attr:`%x`" +msgstr "" + +#: ../Doc/c-api/bytes.rst:96 +msgid "Equivalent to ``printf(\"%x\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/bytes.rst:99 +msgid ":attr:`%s`" +msgstr "" + +#: ../Doc/c-api/bytes.rst:99 +msgid "const char\\*" +msgstr "" + +#: ../Doc/c-api/bytes.rst:99 +msgid "A null-terminated C character array." +msgstr "" + +#: ../Doc/c-api/bytes.rst:102 +msgid ":attr:`%p`" +msgstr "" + +#: ../Doc/c-api/bytes.rst:102 +msgid "const void\\*" +msgstr "" + +#: ../Doc/c-api/bytes.rst:102 +msgid "" +"The hex representation of a C pointer. Mostly equivalent to ``printf(\"%p" +"\")`` except that it is guaranteed to start with the literal ``0x`` " +"regardless of what the platform's ``printf`` yields." +msgstr "" + +#: ../Doc/c-api/bytes.rst:111 +msgid "" +"An unrecognized format character causes all the rest of the format string to " +"be copied as-is to the result object, and any extra arguments discarded." +msgstr "" + +#: ../Doc/c-api/bytes.rst:114 +msgid "" +"For integer specifiers (d, u, ld, lu, zd, zu, i, x): the 0-conversion flag " +"has effect even when a precision is given." +msgstr "" + +#: ../Doc/c-api/bytes.rst:120 +msgid "" +"Identical to :c:func:`PyBytes_FromFormat` except that it takes exactly two " +"arguments." +msgstr "" + +#: ../Doc/c-api/bytes.rst:126 +msgid "" +"Return the bytes representation of object *o* that implements the buffer " +"protocol." +msgstr "" + +#: ../Doc/c-api/bytes.rst:132 +msgid "Return the length of the bytes in bytes object *o*." +msgstr "" + +#: ../Doc/c-api/bytes.rst:137 +msgid "Macro form of :c:func:`PyBytes_Size` but without error checking." +msgstr "" + +#: ../Doc/c-api/bytes.rst:142 +msgid "" +"Return a pointer to the contents of *o*. The pointer refers to the internal " +"buffer of *o*, which consists of ``len(o) + 1`` bytes. The last byte in the " +"buffer is always null, regardless of whether there are any other null " +"bytes. The data must not be modified in any way, unless the object was just " +"created using ``PyBytes_FromStringAndSize(NULL, size)``. It must not be " +"deallocated. If *o* is not a bytes object at all, :c:func:" +"`PyBytes_AsString` returns *NULL* and raises :exc:`TypeError`." +msgstr "" + +#: ../Doc/c-api/bytes.rst:154 +msgid "Macro form of :c:func:`PyBytes_AsString` but without error checking." +msgstr "" + +#: ../Doc/c-api/bytes.rst:159 +msgid "" +"Return the null-terminated contents of the object *obj* through the output " +"variables *buffer* and *length*." +msgstr "" + +#: ../Doc/c-api/bytes.rst:162 +msgid "" +"If *length* is *NULL*, the bytes object may not contain embedded null bytes; " +"if it does, the function returns ``-1`` and a :exc:`ValueError` is raised." +msgstr "" + +#: ../Doc/c-api/bytes.rst:166 +msgid "" +"The buffer refers to an internal buffer of *obj*, which includes an " +"additional null byte at the end (not counted in *length*). The data must " +"not be modified in any way, unless the object was just created using " +"``PyBytes_FromStringAndSize(NULL, size)``. It must not be deallocated. If " +"*obj* is not a bytes object at all, :c:func:`PyBytes_AsStringAndSize` " +"returns ``-1`` and raises :exc:`TypeError`." +msgstr "" + +#: ../Doc/c-api/bytes.rst:173 +msgid "" +"Previously, :exc:`TypeError` was raised when embedded null bytes were " +"encountered in the bytes object." +msgstr "" + +#: ../Doc/c-api/bytes.rst:180 +msgid "" +"Create a new bytes object in *\\*bytes* containing the contents of *newpart* " +"appended to *bytes*; the caller will own the new reference. The reference " +"to the old value of *bytes* will be stolen. If the new object cannot be " +"created, the old reference to *bytes* will still be discarded and the value " +"of *\\*bytes* will be set to *NULL*; the appropriate exception will be set." +msgstr "" + +#: ../Doc/c-api/bytes.rst:189 +msgid "" +"Create a new bytes object in *\\*bytes* containing the contents of *newpart* " +"appended to *bytes*. This version decrements the reference count of " +"*newpart*." +msgstr "" + +#: ../Doc/c-api/bytes.rst:196 +msgid "" +"A way to resize a bytes object even though it is \"immutable\". Only use " +"this to build up a brand new bytes object; don't use this if the bytes may " +"already be known in other parts of the code. It is an error to call this " +"function if the refcount on the input bytes object is not one. Pass the " +"address of an existing bytes object as an lvalue (it may be written into), " +"and the new size desired. On success, *\\*bytes* holds the resized bytes " +"object and ``0`` is returned; the address in *\\*bytes* may differ from its " +"input value. If the reallocation fails, the original bytes object at *" +"\\*bytes* is deallocated, *\\*bytes* is set to *NULL*, :exc:`MemoryError` is " +"set, and ``-1`` is returned." +msgstr "" diff --git a/c-api/capsule.po b/c-api/capsule.po new file mode 100644 index 000000000..f2fa76d99 --- /dev/null +++ b/c-api/capsule.po @@ -0,0 +1,198 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/capsule.rst:6 +msgid "Capsules" +msgstr "Capsules" + +#: ../Doc/c-api/capsule.rst:10 +msgid "" +"Refer to :ref:`using-capsules` for more information on using these objects." +msgstr "" +"Reportez-vous à :ref:`using-capsules` pour plus d'informations sur " +"l'utilisation de ces objets." + +#: ../Doc/c-api/capsule.rst:17 +msgid "" +"This subtype of :c:type:`PyObject` represents an opaque value, useful for C " +"extension modules who need to pass an opaque value (as a :c:type:`void\\*` " +"pointer) through Python code to other C code. It is often used to make a C " +"function pointer defined in one module available to other modules, so the " +"regular import mechanism can be used to access C APIs defined in dynamically " +"loaded modules." +msgstr "" + +#: ../Doc/c-api/capsule.rst:27 +msgid "The type of a destructor callback for a capsule. Defined as::" +msgstr "" + +#: ../Doc/c-api/capsule.rst:31 +msgid "" +"See :c:func:`PyCapsule_New` for the semantics of PyCapsule_Destructor " +"callbacks." +msgstr "" + +#: ../Doc/c-api/capsule.rst:37 +msgid "Return true if its argument is a :c:type:`PyCapsule`." +msgstr "" + +#: ../Doc/c-api/capsule.rst:42 +msgid "" +"Create a :c:type:`PyCapsule` encapsulating the *pointer*. The *pointer* " +"argument may not be *NULL*." +msgstr "" + +#: ../Doc/c-api/capsule.rst:45 +msgid "On failure, set an exception and return *NULL*." +msgstr "" + +#: ../Doc/c-api/capsule.rst:47 +msgid "" +"The *name* string may either be *NULL* or a pointer to a valid C string. If " +"non-*NULL*, this string must outlive the capsule. (Though it is permitted " +"to free it inside the *destructor*.)" +msgstr "" + +#: ../Doc/c-api/capsule.rst:51 +msgid "" +"If the *destructor* argument is not *NULL*, it will be called with the " +"capsule as its argument when it is destroyed." +msgstr "" + +#: ../Doc/c-api/capsule.rst:54 +msgid "" +"If this capsule will be stored as an attribute of a module, the *name* " +"should be specified as ``modulename.attributename``. This will enable other " +"modules to import the capsule using :c:func:`PyCapsule_Import`." +msgstr "" + +#: ../Doc/c-api/capsule.rst:61 +msgid "" +"Retrieve the *pointer* stored in the capsule. On failure, set an exception " +"and return *NULL*." +msgstr "" + +#: ../Doc/c-api/capsule.rst:64 +msgid "" +"The *name* parameter must compare exactly to the name stored in the capsule. " +"If the name stored in the capsule is *NULL*, the *name* passed in must also " +"be *NULL*. Python uses the C function :c:func:`strcmp` to compare capsule " +"names." +msgstr "" + +#: ../Doc/c-api/capsule.rst:72 +msgid "" +"Return the current destructor stored in the capsule. On failure, set an " +"exception and return *NULL*." +msgstr "" + +#: ../Doc/c-api/capsule.rst:75 +msgid "" +"It is legal for a capsule to have a *NULL* destructor. This makes a *NULL* " +"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" +"`PyErr_Occurred` to disambiguate." +msgstr "" + +#: ../Doc/c-api/capsule.rst:82 +msgid "" +"Return the current context stored in the capsule. On failure, set an " +"exception and return *NULL*." +msgstr "" + +#: ../Doc/c-api/capsule.rst:85 +msgid "" +"It is legal for a capsule to have a *NULL* context. This makes a *NULL* " +"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" +"`PyErr_Occurred` to disambiguate." +msgstr "" + +#: ../Doc/c-api/capsule.rst:92 +msgid "" +"Return the current name stored in the capsule. On failure, set an exception " +"and return *NULL*." +msgstr "" + +#: ../Doc/c-api/capsule.rst:95 +msgid "" +"It is legal for a capsule to have a *NULL* name. This makes a *NULL* return " +"code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" +"`PyErr_Occurred` to disambiguate." +msgstr "" + +#: ../Doc/c-api/capsule.rst:102 +msgid "" +"Import a pointer to a C object from a capsule attribute in a module. The " +"*name* parameter should specify the full name to the attribute, as in " +"``module.attribute``. The *name* stored in the capsule must match this " +"string exactly. If *no_block* is true, import the module without blocking " +"(using :c:func:`PyImport_ImportModuleNoBlock`). If *no_block* is false, " +"import the module conventionally (using :c:func:`PyImport_ImportModule`)." +msgstr "" + +#: ../Doc/c-api/capsule.rst:109 +msgid "" +"Return the capsule's internal *pointer* on success. On failure, set an " +"exception and return *NULL*." +msgstr "" + +#: ../Doc/c-api/capsule.rst:115 +msgid "" +"Determines whether or not *capsule* is a valid capsule. A valid capsule is " +"non-*NULL*, passes :c:func:`PyCapsule_CheckExact`, has a non-*NULL* pointer " +"stored in it, and its internal name matches the *name* parameter. (See :c:" +"func:`PyCapsule_GetPointer` for information on how capsule names are " +"compared.)" +msgstr "" + +#: ../Doc/c-api/capsule.rst:121 +msgid "" +"In other words, if :c:func:`PyCapsule_IsValid` returns a true value, calls " +"to any of the accessors (any function starting with :c:func:`PyCapsule_Get`) " +"are guaranteed to succeed." +msgstr "" + +#: ../Doc/c-api/capsule.rst:125 +msgid "" +"Return a nonzero value if the object is valid and matches the name passed " +"in. Return ``0`` otherwise. This function will not fail." +msgstr "" + +#: ../Doc/c-api/capsule.rst:131 +msgid "Set the context pointer inside *capsule* to *context*." +msgstr "" + +#: ../Doc/c-api/capsule.rst:133 ../Doc/c-api/capsule.rst:140 +#: ../Doc/c-api/capsule.rst:149 ../Doc/c-api/capsule.rst:157 +msgid "" +"Return ``0`` on success. Return nonzero and set an exception on failure." +msgstr "" + +#: ../Doc/c-api/capsule.rst:138 +msgid "Set the destructor inside *capsule* to *destructor*." +msgstr "" + +#: ../Doc/c-api/capsule.rst:145 +msgid "" +"Set the name inside *capsule* to *name*. If non-*NULL*, the name must " +"outlive the capsule. If the previous *name* stored in the capsule was not " +"*NULL*, no attempt is made to free it." +msgstr "" + +#: ../Doc/c-api/capsule.rst:154 +msgid "" +"Set the void pointer inside *capsule* to *pointer*. The pointer may not be " +"*NULL*." +msgstr "" diff --git a/c-api/cell.po b/c-api/cell.po new file mode 100644 index 000000000..44b2efd6d --- /dev/null +++ b/c-api/cell.po @@ -0,0 +1,98 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-09 10:14+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/c-api/cell.rst:6 +msgid "Cell Objects" +msgstr "Objets Cellules" + +#: ../Doc/c-api/cell.rst:8 +msgid "" +"\"Cell\" objects are used to implement variables referenced by multiple " +"scopes. For each such variable, a cell object is created to store the value; " +"the local variables of each stack frame that references the value contains a " +"reference to the cells from outer scopes which also use that variable. When " +"the value is accessed, the value contained in the cell is used instead of " +"the cell object itself. This de-referencing of the cell object requires " +"support from the generated byte-code; these are not automatically de-" +"referenced when accessed. Cell objects are not likely to be useful elsewhere." +msgstr "" +"Les objets \"Cellules\" (*cell* en anglais) sont utilisés pour implémenter " +"des variables référencées dans de multiples environnements. Pour chacune de " +"ces variables, un objet cellule est créé pour stocker sa valeur ; les " +"variables locales de chaque pile d'exécution qui référence cette valeur " +"contiennent une référence sur les cellules des autres environnements qui " +"utilisent aussi cette variable. Quand la valeur est accédée, la valeur de la " +"cellule est utilisée, au lei de celle de l'objet cellule proprement dit. Ce " +"dé-référencement de l'objet cellule requiert l'intervention du *bytecode* " +"généré ; il n'est pas automatiquement dé-référencé quand il est accédé. Il " +"est plausible que les objets cellules ne soit utilisés ailleurs." + +#: ../Doc/c-api/cell.rst:20 +msgid "The C structure used for cell objects." +msgstr "Structure C utilisée pour les objets cellules." + +#: ../Doc/c-api/cell.rst:25 +msgid "The type object corresponding to cell objects." +msgstr "Type objet correspondant aux objets cellules." + +#: ../Doc/c-api/cell.rst:30 +msgid "Return true if *ob* is a cell object; *ob* must not be *NULL*." +msgstr "" +"Renvoie ``True`` si *ob* est un objet cellule ; *ob* ne doit pas être à " +"*NULL*." + +#: ../Doc/c-api/cell.rst:35 +msgid "" +"Create and return a new cell object containing the value *ob*. The parameter " +"may be *NULL*." +msgstr "" +"Crée et retourne un nouvel objet cellule contenant la valeur *ob*. Le " +"paramètre peut être mis à *NULL*." + +#: ../Doc/c-api/cell.rst:41 +msgid "Return the contents of the cell *cell*." +msgstr "Renvoie le contenu de la cellule *cell*." + +#: ../Doc/c-api/cell.rst:46 +msgid "" +"Return the contents of the cell *cell*, but without checking that *cell* is " +"non-*NULL* and a cell object." +msgstr "" +"Renvoie le contenu de la cellule *cell*, mais sans vérifier si *cell* est " +"non *NULL* et sans vérifier si c'est un objet cellule." + +#: ../Doc/c-api/cell.rst:52 +msgid "" +"Set the contents of the cell object *cell* to *value*. This releases the " +"reference to any current content of the cell. *value* may be *NULL*. *cell* " +"must be non-*NULL*; if it is not a cell object, ``-1`` will be returned. On " +"success, ``0`` will be returned." +msgstr "" +"Définit le contenu de l'objet cellule à *value*. Cela libère la référence à " +"toute valeur de la cellule. *value* peut être fixé à *NULL*. *cell* ne doit " +"pas être *NULL* ; si ce n'est pas un objet cellule, ``-1`` est renvoyé. Si " +"c'est un objet cellule, renvoie ``0``." + +#: ../Doc/c-api/cell.rst:60 +msgid "" +"Sets the value of the cell object *cell* to *value*. No reference counts " +"are adjusted, and no checks are made for safety; *cell* must be non-*NULL* " +"and must be a cell object." +msgstr "" +"Définit la valeur de l'objet cellule à *value*. Pas de comptage de " +"références n'est ajusté et il n'y' a pas de contrôle effectué pour vérifier " +"la sûreté ; *cell* doit être à non *NULL* et doit être un objet cellule." diff --git a/c-api/code.po b/c-api/code.po new file mode 100644 index 000000000..5bd628113 --- /dev/null +++ b/c-api/code.po @@ -0,0 +1,75 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-02-15 00:30+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/code.rst:8 +msgid "Code Objects" +msgstr "Objets code" + +#: ../Doc/c-api/code.rst:12 +msgid "" +"Code objects are a low-level detail of the CPython implementation. Each one " +"represents a chunk of executable code that hasn't yet been bound into a " +"function." +msgstr "" +"Les objets *Code* sont spécifiques à l'implémentation bas niveau de CPython. " +"Chacun d'eux représente une partie de code exécutable, qui n'a pas encore " +"été lié dans une fonction." + +#: ../Doc/c-api/code.rst:18 +msgid "" +"The C structure of the objects used to describe code objects. The fields of " +"this type are subject to change at any time." +msgstr "" +"La structure C utilisée pour décrire les objets *Code*. Les attributs de " +"cette structure sont sujets à changer à tout moment." + +#: ../Doc/c-api/code.rst:24 +msgid "" +"This is an instance of :c:type:`PyTypeObject` representing the Python :class:" +"`code` type." +msgstr "" +"C'est une instance de :c:type:`PyTypeObject` représentant le type Python :" +"class:`code`." + +#: ../Doc/c-api/code.rst:30 +msgid "Return true if *co* is a :class:`code` object." +msgstr "Renvoie vrai si *co* est un objet :class:`code`." + +#: ../Doc/c-api/code.rst:34 +msgid "Return the number of free variables in *co*." +msgstr "Renvoie le nombre de variables libres dans *co*." + +#: ../Doc/c-api/code.rst:38 +msgid "" +"Return a new code object. If you need a dummy code object to create a " +"frame, use :c:func:`PyCode_NewEmpty` instead. Calling :c:func:`PyCode_New` " +"directly can bind you to a precise Python version since the definition of " +"the bytecode changes often." +msgstr "" +"Renvoie un nouvel objet *code*. Si vous avez besoin d'un objet code factice " +"pour créer une *frame*, utilisez plutôt :c:func:`PyCode_NewEmpty`. Appeler :" +"c:func:`PyCode_New` peut vous lier directement à une version spécifique de " +"Python, le *bytecode* étant sujet à modifications." + +#: ../Doc/c-api/code.rst:46 +msgid "" +"Return a new empty code object with the specified filename, function name, " +"and first line number. It is illegal to :func:`exec` or :func:`eval` the " +"resulting code object." +msgstr "" +"Renvoie un nouvel objet *code* avec le nom de fichier, le nom de fonction, " +"et le numéro de première ligne donnés. Il n'est pas permis d'utiliser :func:" +"`exec` ou :func:`eval` sur l'objet renvoyé." diff --git a/c-api/codec.po b/c-api/codec.po new file mode 100644 index 000000000..977a2cd09 --- /dev/null +++ b/c-api/codec.po @@ -0,0 +1,163 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/codec.rst:4 +msgid "Codec registry and support functions" +msgstr "" + +#: ../Doc/c-api/codec.rst:8 +msgid "Register a new codec search function." +msgstr "" + +#: ../Doc/c-api/codec.rst:10 +msgid "" +"As side effect, this tries to load the :mod:`encodings` package, if not yet " +"done, to make sure that it is always first in the list of search functions." +msgstr "" + +#: ../Doc/c-api/codec.rst:15 +msgid "" +"Return ``1`` or ``0`` depending on whether there is a registered codec for " +"the given *encoding*. This function always succeeds." +msgstr "" + +#: ../Doc/c-api/codec.rst:20 +msgid "Generic codec based encoding API." +msgstr "" + +#: ../Doc/c-api/codec.rst:22 +msgid "" +"*object* is passed through the encoder function found for the given " +"*encoding* using the error handling method defined by *errors*. *errors* " +"may be *NULL* to use the default method defined for the codec. Raises a :" +"exc:`LookupError` if no encoder can be found." +msgstr "" + +#: ../Doc/c-api/codec.rst:29 +msgid "Generic codec based decoding API." +msgstr "" + +#: ../Doc/c-api/codec.rst:31 +msgid "" +"*object* is passed through the decoder function found for the given " +"*encoding* using the error handling method defined by *errors*. *errors* " +"may be *NULL* to use the default method defined for the codec. Raises a :" +"exc:`LookupError` if no encoder can be found." +msgstr "" + +#: ../Doc/c-api/codec.rst:38 +msgid "Codec lookup API" +msgstr "" + +#: ../Doc/c-api/codec.rst:40 +msgid "" +"In the following functions, the *encoding* string is looked up converted to " +"all lower-case characters, which makes encodings looked up through this " +"mechanism effectively case-insensitive. If no codec is found, a :exc:" +"`KeyError` is set and *NULL* returned." +msgstr "" + +#: ../Doc/c-api/codec.rst:47 +msgid "Get an encoder function for the given *encoding*." +msgstr "" + +#: ../Doc/c-api/codec.rst:51 +msgid "Get a decoder function for the given *encoding*." +msgstr "" + +#: ../Doc/c-api/codec.rst:55 +msgid "" +"Get an :class:`~codecs.IncrementalEncoder` object for the given *encoding*." +msgstr "" + +#: ../Doc/c-api/codec.rst:59 +msgid "" +"Get an :class:`~codecs.IncrementalDecoder` object for the given *encoding*." +msgstr "" + +#: ../Doc/c-api/codec.rst:63 +msgid "" +"Get a :class:`~codecs.StreamReader` factory function for the given " +"*encoding*." +msgstr "" + +#: ../Doc/c-api/codec.rst:67 +msgid "" +"Get a :class:`~codecs.StreamWriter` factory function for the given " +"*encoding*." +msgstr "" + +#: ../Doc/c-api/codec.rst:71 +msgid "Registry API for Unicode encoding error handlers" +msgstr "" + +#: ../Doc/c-api/codec.rst:75 +msgid "" +"Register the error handling callback function *error* under the given " +"*name*. This callback function will be called by a codec when it encounters " +"unencodable characters/undecodable bytes and *name* is specified as the " +"error parameter in the call to the encode/decode function." +msgstr "" + +#: ../Doc/c-api/codec.rst:80 +msgid "" +"The callback gets a single argument, an instance of :exc:" +"`UnicodeEncodeError`, :exc:`UnicodeDecodeError` or :exc:" +"`UnicodeTranslateError` that holds information about the problematic " +"sequence of characters or bytes and their offset in the original string " +"(see :ref:`unicodeexceptions` for functions to extract this information). " +"The callback must either raise the given exception, or return a two-item " +"tuple containing the replacement for the problematic sequence, and an " +"integer giving the offset in the original string at which encoding/decoding " +"should be resumed." +msgstr "" + +#: ../Doc/c-api/codec.rst:90 +msgid "Return ``0`` on success, ``-1`` on error." +msgstr "" + +#: ../Doc/c-api/codec.rst:94 +msgid "" +"Lookup the error handling callback function registered under *name*. As a " +"special case *NULL* can be passed, in which case the error handling callback " +"for \"strict\" will be returned." +msgstr "" + +#: ../Doc/c-api/codec.rst:100 +msgid "Raise *exc* as an exception." +msgstr "" + +#: ../Doc/c-api/codec.rst:104 +msgid "Ignore the unicode error, skipping the faulty input." +msgstr "" + +#: ../Doc/c-api/codec.rst:108 +msgid "Replace the unicode encode error with ``?`` or ``U+FFFD``." +msgstr "" + +#: ../Doc/c-api/codec.rst:112 +msgid "Replace the unicode encode error with XML character references." +msgstr "" + +#: ../Doc/c-api/codec.rst:116 +msgid "" +"Replace the unicode encode error with backslash escapes (``\\x``, ``\\u`` " +"and ``\\U``)." +msgstr "" + +#: ../Doc/c-api/codec.rst:121 +msgid "Replace the unicode encode error with ``\\N{...}`` escapes." +msgstr "" diff --git a/c-api/complex.po b/c-api/complex.po new file mode 100644 index 000000000..708d7647e --- /dev/null +++ b/c-api/complex.po @@ -0,0 +1,200 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-09-21 09:15+0200\n" +"PO-Revision-Date: 2019-01-14 20:31+0100\n" +"Last-Translator: ANTOINE FOURES \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.4\n" + +#: ../Doc/c-api/complex.rst:6 +msgid "Complex Number Objects" +msgstr "Objets représentant des nombres complexes" + +#: ../Doc/c-api/complex.rst:10 +msgid "" +"Python's complex number objects are implemented as two distinct types when " +"viewed from the C API: one is the Python object exposed to Python programs, " +"and the other is a C structure which represents the actual complex number " +"value. The API provides functions for working with both." +msgstr "" +"Les nombres complexes Python sont implémentés comme deux types distincts, " +"lorsqu'ils sont vus de l'API C : l'un est l'objet Python tel qu'il est vu " +"par les programmes Python, et l'autre est une structure C qui représente la " +"valeur exacte du nombre complexe. L'API fournit des fonctions pour " +"travailler avec ces deux représentations." + +#: ../Doc/c-api/complex.rst:17 +msgid "Complex Numbers as C Structures" +msgstr "Nombres complexes en tant que structures C" + +#: ../Doc/c-api/complex.rst:19 +msgid "" +"Note that the functions which accept these structures as parameters and " +"return them as results do so *by value* rather than dereferencing them " +"through pointers. This is consistent throughout the API." +msgstr "" +"Les fonctions qui acceptent ces structures comme paramètres et les renvoient " +"comme résultats le font en fonction de leur *valeur* au lieu de les dé-" +"référencer en utilisant des pointeurs. C'est constant dans toute l'API." + +#: ../Doc/c-api/complex.rst:26 +msgid "" +"The C structure which corresponds to the value portion of a Python complex " +"number object. Most of the functions for dealing with complex number " +"objects use structures of this type as input or output values, as " +"appropriate. It is defined as::" +msgstr "" +"Structure C représentant la valeur d'un nombre complexe Python. La majorité " +"des fonctions qui traitent des nombres complexes utilisent cette structure " +"en entrée ou en sortie, selon le cas. Elle est définie par ::" + +#: ../Doc/c-api/complex.rst:39 +msgid "" +"Return the sum of two complex numbers, using the C :c:type:`Py_complex` " +"representation." +msgstr "" +"Renvoie la somme de deux nombres complexes, sous la forme d'un :c:type:" +"`Py_complex` en C." + +#: ../Doc/c-api/complex.rst:45 +msgid "" +"Return the difference between two complex numbers, using the C :c:type:" +"`Py_complex` representation." +msgstr "" +"Renvoie la différence de deux nombres complexes, sous la forme d'un :c:type:" +"`Py_complex` en C." + +#: ../Doc/c-api/complex.rst:51 +msgid "" +"Return the negation of the complex number *complex*, using the C :c:type:" +"`Py_complex` representation." +msgstr "" +"Renvoie l'opposé du nombre complexe *complex*, sous la forme d'un :c:type:" +"`Py_complex` en C." + +#: ../Doc/c-api/complex.rst:57 +msgid "" +"Return the product of two complex numbers, using the C :c:type:`Py_complex` " +"representation." +msgstr "" +"Renvoie le produit de deux nombres complexes, sous la forme d'un :c:type:" +"`Py_complex` en C." + +#: ../Doc/c-api/complex.rst:63 +msgid "" +"Return the quotient of two complex numbers, using the C :c:type:`Py_complex` " +"representation." +msgstr "" +"Renvoie le quotient de deux nombres complexes, sous la forme d'un :c:type:" +"`Py_complex` en C." + +#: ../Doc/c-api/complex.rst:66 +msgid "" +"If *divisor* is null, this method returns zero and sets :c:data:`errno` to :" +"c:data:`EDOM`." +msgstr "" +"Si *divisor* est nul, cette méthode renvoie zéro et assigne :c:data:`EDOM` " +"à :c:data:`errno`." + +#: ../Doc/c-api/complex.rst:72 +msgid "" +"Return the exponentiation of *num* by *exp*, using the C :c:type:" +"`Py_complex` representation." +msgstr "" +"Renvoie *num* à la puissance *exp*, sous la forme d'un :c:type:`Py_complex` " +"en C." + +#: ../Doc/c-api/complex.rst:75 +msgid "" +"If *num* is null and *exp* is not a positive real number, this method " +"returns zero and sets :c:data:`errno` to :c:data:`EDOM`." +msgstr "" +"Si *num* est nul et *exp* n'est pas un nombre réel positif, cette méthode " +"renvoie zéro et assigne :c:data:`EDOM` à :c:data:`errno`." + +#: ../Doc/c-api/complex.rst:80 +msgid "Complex Numbers as Python Objects" +msgstr "Nombres complexes en tant qu'objets Python" + +#: ../Doc/c-api/complex.rst:85 +msgid "" +"This subtype of :c:type:`PyObject` represents a Python complex number object." +msgstr "" +"Ce sous-type de l'objet :c:type:`PyObject` représente un nombre complexe en " +"Python." + +#: ../Doc/c-api/complex.rst:90 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python complex number " +"type. It is the same object as :class:`complex` in the Python layer." +msgstr "" +"Cette instance de :c:type:`PyTypeObject` représente le type nombre complexe " +"Python. C'est le même objet que la classe :class:`complex` de la couche " +"Python." + +#: ../Doc/c-api/complex.rst:96 +msgid "" +"Return true if its argument is a :c:type:`PyComplexObject` or a subtype of :" +"c:type:`PyComplexObject`." +msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyComplexObject` ou un sous-" +"type de :c:type:`PyComplexObject`." + +#: ../Doc/c-api/complex.rst:102 +msgid "" +"Return true if its argument is a :c:type:`PyComplexObject`, but not a " +"subtype of :c:type:`PyComplexObject`." +msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyComplexObject`, mais pas " +"un sous-type de :c:type:`PyComplexObject`." + +#: ../Doc/c-api/complex.rst:108 +msgid "" +"Create a new Python complex number object from a C :c:type:`Py_complex` " +"value." +msgstr "" +"Crée un nouveau nombre complexe à partir de la valeur d'un :c:type:" +"`Py_complex` en C." + +#: ../Doc/c-api/complex.rst:113 +msgid "Return a new :c:type:`PyComplexObject` object from *real* and *imag*." +msgstr "" +"Renvoie un nouveau :c:type:`PyComplexObject` à partir de *real* et de *imag*." + +#: ../Doc/c-api/complex.rst:118 +msgid "Return the real part of *op* as a C :c:type:`double`." +msgstr "" +"Renvoie la partie réelle du nombre complexe *op* sous la forme d'un :c:type:" +"`double` en C." + +#: ../Doc/c-api/complex.rst:123 +msgid "Return the imaginary part of *op* as a C :c:type:`double`." +msgstr "" +"Renvoie la partie imaginaire du nombre complexe *op* sous la forme d'un :c:" +"type:`double` en C." + +#: ../Doc/c-api/complex.rst:128 +msgid "Return the :c:type:`Py_complex` value of the complex number *op*." +msgstr "" +"Renvoie la valeur du nombre complexe *op* sous la forme d'un :c:type:" +"`Py_complex` en C." + +#: ../Doc/c-api/complex.rst:130 +msgid "" +"If *op* is not a Python complex number object but has a :meth:`__complex__` " +"method, this method will first be called to convert *op* to a Python complex " +"number object. Upon failure, this method returns ``-1.0`` as a real value." +msgstr "" +"Si *op* n'est pas un nombre complexe Python mais a une méthode :meth:" +"`__complex__`, cette méthode est d'abord appelée pour convertir *op* en " +"nombre complexe Python. En cas d'échec, cette méthode renvoie ``-1.0`` en " +"tant que nombre réel." diff --git a/c-api/concrete.po b/c-api/concrete.po new file mode 100644 index 000000000..52b28b171 --- /dev/null +++ b/c-api/concrete.po @@ -0,0 +1,89 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-02-15 00:31+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/concrete.rst:8 +msgid "Concrete Objects Layer" +msgstr "Couche des objets concrets" + +#: ../Doc/c-api/concrete.rst:10 +msgid "" +"The functions in this chapter are specific to certain Python object types. " +"Passing them an object of the wrong type is not a good idea; if you receive " +"an object from a Python program and you are not sure that it has the right " +"type, you must perform a type check first; for example, to check that an " +"object is a dictionary, use :c:func:`PyDict_Check`. The chapter is " +"structured like the \"family tree\" of Python object types." +msgstr "" +"Les fonctions de ce chapitre sont spécifiques à certains types d'objets " +"Python. Leur donner un objet du mauvais type n'est pas une bonne idée, si " +"vous recevez un objet d'un programme Python, et que vous n'êtes pas sûr " +"qu'il soit du bon type, vous devez vérifier son type en premier. Par " +"exemple, pour vérifier qu'un objet est un dictionnaire, utilisez :c:func:" +"`PyDict_Check`. Ce chapitre est organisé comme un arbre généalogique de " +"types d'objets Python." + +#: ../Doc/c-api/concrete.rst:19 +msgid "" +"While the functions described in this chapter carefully check the type of " +"the objects which are passed in, many of them do not check for *NULL* being " +"passed instead of a valid object. Allowing *NULL* to be passed in can cause " +"memory access violations and immediate termination of the interpreter." +msgstr "" +"Tandis que les fonctions décrites dans ce chapitre vérifient avec soin le " +"type des objets qui leur sont passés, beaucoup d'entre elles ne vérifient " +"pas que *NULL* est passé au lieu d'un objet valide. Autoriser *NULL* à être " +"passé peut provoquer des violations d'accès à la mémoire et ainsi terminer " +"immédiatement l'interpréteur." + +#: ../Doc/c-api/concrete.rst:28 +msgid "Fundamental Objects" +msgstr "Objets fondamentaux" + +#: ../Doc/c-api/concrete.rst:30 +msgid "" +"This section describes Python type objects and the singleton object ``None``." +msgstr "" +"Cette section décrit les objets de type Python et l'objet singleton ``None``." + +#: ../Doc/c-api/concrete.rst:41 +msgid "Numeric Objects" +msgstr "Objets numériques" + +#: ../Doc/c-api/concrete.rst:56 +msgid "Sequence Objects" +msgstr "Objets séquences" + +#: ../Doc/c-api/concrete.rst:60 +msgid "" +"Generic operations on sequence objects were discussed in the previous " +"chapter; this section deals with the specific kinds of sequence objects that " +"are intrinsic to the Python language." +msgstr "" +"Les opérations génériques sur les objets séquences ont été discutées dans le " +"chapitre précédent. Cette section traite des genres spécifiques d'objets " +"séquences qui sont intrinsèques au langage Python." + +#: ../Doc/c-api/concrete.rst:78 +msgid "Container Objects" +msgstr "Objets conteneurs" + +#: ../Doc/c-api/concrete.rst:91 +msgid "Function Objects" +msgstr "Objets fonctions" + +#: ../Doc/c-api/concrete.rst:102 +msgid "Other Objects" +msgstr "Autres objets" diff --git a/c-api/contextvars.po b/c-api/contextvars.po new file mode 100644 index 000000000..72faa61a3 --- /dev/null +++ b/c-api/contextvars.po @@ -0,0 +1,178 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-08-03 23:47+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/contextvars.rst:6 +msgid "Context Variables Objects" +msgstr "" + +#: ../Doc/c-api/contextvars.rst:13 +msgid "" +"In Python 3.7.1 the signatures of all context variables C APIs were " +"**changed** to use :c:type:`PyObject` pointers instead of :c:type:" +"`PyContext`, :c:type:`PyContextVar`, and :c:type:`PyContextToken`, e.g.::" +msgstr "" + +#: ../Doc/c-api/contextvars.rst:24 +msgid "See :issue:`34762` for more details." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:29 +msgid "" +"This section details the public C API for the :mod:`contextvars` module." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:33 +msgid "" +"The C structure used to represent a :class:`contextvars.Context` object." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:38 +msgid "" +"The C structure used to represent a :class:`contextvars.ContextVar` object." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:43 +msgid "The C structure used to represent a :class:`contextvars.Token` object." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:47 +msgid "The type object representing the *context* type." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:51 +msgid "The type object representing the *context variable* type." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:55 +msgid "The type object representing the *context variable token* type." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:58 +msgid "Type-check macros:" +msgstr "Macros pour vérifier les types :" + +#: ../Doc/c-api/contextvars.rst:62 +msgid "" +"Return true if *o* is of type :c:data:`PyContext_Type`. *o* must not be " +"*NULL*. This function always succeeds." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:67 +msgid "" +"Return true if *o* is of type :c:data:`PyContextVar_Type`. *o* must not be " +"*NULL*. This function always succeeds." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:72 +msgid "" +"Return true if *o* is of type :c:data:`PyContextToken_Type`. *o* must not be " +"*NULL*. This function always succeeds." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:76 +msgid "Context object management functions:" +msgstr "" + +#: ../Doc/c-api/contextvars.rst:80 +msgid "" +"Create a new empty context object. Returns ``NULL`` if an error has " +"occurred." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:85 +msgid "" +"Create a shallow copy of the passed *ctx* context object. Returns ``NULL`` " +"if an error has occurred." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:90 +msgid "" +"Create a shallow copy of the current thread context. Returns ``NULL`` if an " +"error has occurred." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:95 +msgid "" +"Set *ctx* as the current context for the current thread. Returns ``0`` on " +"success, and ``-1`` on error." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:100 +msgid "" +"Deactivate the *ctx* context and restore the previous context as the current " +"context for the current thread. Returns ``0`` on success, and ``-1`` on " +"error." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:106 +msgid "" +"Clear the context variable free list. Return the total number of freed " +"items. This function always succeeds." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:110 +msgid "Context variable functions:" +msgstr "" + +#: ../Doc/c-api/contextvars.rst:114 +msgid "" +"Create a new ``ContextVar`` object. The *name* parameter is used for " +"introspection and debug purposes. The *def* parameter may optionally " +"specify the default value for the context variable. If an error has " +"occurred, this function returns ``NULL``." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:121 +msgid "" +"Get the value of a context variable. Returns ``-1`` if an error has " +"occurred during lookup, and ``0`` if no error occurred, whether or not a " +"value was found." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:125 +msgid "" +"If the context variable was found, *value* will be a pointer to it. If the " +"context variable was *not* found, *value* will point to:" +msgstr "" + +#: ../Doc/c-api/contextvars.rst:128 +msgid "*default_value*, if not ``NULL``;" +msgstr "" + +#: ../Doc/c-api/contextvars.rst:129 +msgid "the default value of *var*, if not ``NULL``;" +msgstr "" + +#: ../Doc/c-api/contextvars.rst:130 +msgid "``NULL``" +msgstr "``NULL``" + +#: ../Doc/c-api/contextvars.rst:132 +msgid "If the value was found, the function will create a new reference to it." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:136 +msgid "" +"Set the value of *var* to *value* in the current context. Returns a pointer " +"to a :c:type:`PyObject` object, or ``NULL`` if an error has occurred." +msgstr "" + +#: ../Doc/c-api/contextvars.rst:142 +msgid "" +"Reset the state of the *var* context variable to that it was in before :c:" +"func:`PyContextVar_Set` that returned the *token* was called. This function " +"returns ``0`` on success and ``-1`` on error." +msgstr "" diff --git a/c-api/conversion.po b/c-api/conversion.po new file mode 100644 index 000000000..476f119a3 --- /dev/null +++ b/c-api/conversion.po @@ -0,0 +1,199 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/conversion.rst:6 +msgid "String conversion and formatting" +msgstr "Conversion et formatage de chaînes" + +#: ../Doc/c-api/conversion.rst:8 +msgid "Functions for number conversion and formatted string output." +msgstr "" +"Fonctions de conversion pour les nombres et pour la sortie des chaînes " +"formatées." + +#: ../Doc/c-api/conversion.rst:13 +msgid "" +"Output not more than *size* bytes to *str* according to the format string " +"*format* and the extra arguments. See the Unix man page :manpage:" +"`snprintf(2)`." +msgstr "" + +#: ../Doc/c-api/conversion.rst:19 +msgid "" +"Output not more than *size* bytes to *str* according to the format string " +"*format* and the variable argument list *va*. Unix man page :manpage:" +"`vsnprintf(2)`." +msgstr "" + +#: ../Doc/c-api/conversion.rst:23 +msgid "" +":c:func:`PyOS_snprintf` and :c:func:`PyOS_vsnprintf` wrap the Standard C " +"library functions :c:func:`snprintf` and :c:func:`vsnprintf`. Their purpose " +"is to guarantee consistent behavior in corner cases, which the Standard C " +"functions do not." +msgstr "" + +#: ../Doc/c-api/conversion.rst:28 +msgid "" +"The wrappers ensure that *str*[*size*-1] is always ``'\\0'`` upon return. " +"They never write more than *size* bytes (including the trailing ``'\\0'``) " +"into str. Both functions require that ``str != NULL``, ``size > 0`` and " +"``format != NULL``." +msgstr "" + +#: ../Doc/c-api/conversion.rst:33 +msgid "" +"If the platform doesn't have :c:func:`vsnprintf` and the buffer size needed " +"to avoid truncation exceeds *size* by more than 512 bytes, Python aborts " +"with a *Py_FatalError*." +msgstr "" + +#: ../Doc/c-api/conversion.rst:37 +msgid "" +"The return value (*rv*) for these functions should be interpreted as follows:" +msgstr "" + +#: ../Doc/c-api/conversion.rst:39 +msgid "" +"When ``0 <= rv < size``, the output conversion was successful and *rv* " +"characters were written to *str* (excluding the trailing ``'\\0'`` byte at " +"*str*[*rv*])." +msgstr "" + +#: ../Doc/c-api/conversion.rst:43 +msgid "" +"When ``rv >= size``, the output conversion was truncated and a buffer with " +"``rv + 1`` bytes would have been needed to succeed. *str*[*size*-1] is " +"``'\\0'`` in this case." +msgstr "" + +#: ../Doc/c-api/conversion.rst:47 +msgid "" +"When ``rv < 0``, \"something bad happened.\" *str*[*size*-1] is ``'\\0'`` in " +"this case too, but the rest of *str* is undefined. The exact cause of the " +"error depends on the underlying platform." +msgstr "" + +#: ../Doc/c-api/conversion.rst:51 +msgid "" +"The following functions provide locale-independent string to number " +"conversions." +msgstr "" + +#: ../Doc/c-api/conversion.rst:56 +msgid "" +"Convert a string ``s`` to a :c:type:`double`, raising a Python exception on " +"failure. The set of accepted strings corresponds to the set of strings " +"accepted by Python's :func:`float` constructor, except that ``s`` must not " +"have leading or trailing whitespace. The conversion is independent of the " +"current locale." +msgstr "" + +#: ../Doc/c-api/conversion.rst:62 +msgid "" +"If ``endptr`` is ``NULL``, convert the whole string. Raise :exc:" +"`ValueError` and return ``-1.0`` if the string is not a valid representation " +"of a floating-point number." +msgstr "" + +#: ../Doc/c-api/conversion.rst:66 +msgid "" +"If endptr is not ``NULL``, convert as much of the string as possible and set " +"``*endptr`` to point to the first unconverted character. If no initial " +"segment of the string is the valid representation of a floating-point " +"number, set ``*endptr`` to point to the beginning of the string, raise " +"ValueError, and return ``-1.0``." +msgstr "" + +#: ../Doc/c-api/conversion.rst:73 +msgid "" +"If ``s`` represents a value that is too large to store in a float (for " +"example, ``\"1e500\"`` is such a string on many platforms) then if " +"``overflow_exception`` is ``NULL`` return ``Py_HUGE_VAL`` (with an " +"appropriate sign) and don't set any exception. Otherwise, " +"``overflow_exception`` must point to a Python exception object; raise that " +"exception and return ``-1.0``. In both cases, set ``*endptr`` to point to " +"the first character after the converted value." +msgstr "" + +#: ../Doc/c-api/conversion.rst:81 +msgid "" +"If any other error occurs during the conversion (for example an out-of-" +"memory error), set the appropriate Python exception and return ``-1.0``." +msgstr "" + +#: ../Doc/c-api/conversion.rst:90 +msgid "" +"Convert a :c:type:`double` *val* to a string using supplied *format_code*, " +"*precision*, and *flags*." +msgstr "" + +#: ../Doc/c-api/conversion.rst:93 +msgid "" +"*format_code* must be one of ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, " +"``'G'`` or ``'r'``. For ``'r'``, the supplied *precision* must be 0 and is " +"ignored. The ``'r'`` format code specifies the standard :func:`repr` format." +msgstr "" + +#: ../Doc/c-api/conversion.rst:98 +msgid "" +"*flags* can be zero or more of the values *Py_DTSF_SIGN*, " +"*Py_DTSF_ADD_DOT_0*, or *Py_DTSF_ALT*, or-ed together:" +msgstr "" + +#: ../Doc/c-api/conversion.rst:101 +msgid "" +"*Py_DTSF_SIGN* means to always precede the returned string with a sign " +"character, even if *val* is non-negative." +msgstr "" + +#: ../Doc/c-api/conversion.rst:104 +msgid "" +"*Py_DTSF_ADD_DOT_0* means to ensure that the returned string will not look " +"like an integer." +msgstr "" + +#: ../Doc/c-api/conversion.rst:107 +msgid "" +"*Py_DTSF_ALT* means to apply \"alternate\" formatting rules. See the " +"documentation for the :c:func:`PyOS_snprintf` ``'#'`` specifier for details." +msgstr "" + +#: ../Doc/c-api/conversion.rst:111 +msgid "" +"If *ptype* is non-NULL, then the value it points to will be set to one of " +"*Py_DTST_FINITE*, *Py_DTST_INFINITE*, or *Py_DTST_NAN*, signifying that " +"*val* is a finite number, an infinite number, or not a number, respectively." +msgstr "" + +#: ../Doc/c-api/conversion.rst:115 +msgid "" +"The return value is a pointer to *buffer* with the converted string or " +"*NULL* if the conversion failed. The caller is responsible for freeing the " +"returned string by calling :c:func:`PyMem_Free`." +msgstr "" + +#: ../Doc/c-api/conversion.rst:124 +msgid "" +"Case insensitive comparison of strings. The function works almost " +"identically to :c:func:`strcmp` except that it ignores the case." +msgstr "" + +#: ../Doc/c-api/conversion.rst:130 +msgid "" +"Case insensitive comparison of strings. The function works almost " +"identically to :c:func:`strncmp` except that it ignores the case." +msgstr "" diff --git a/c-api/coro.po b/c-api/coro.po new file mode 100644 index 000000000..32fe30563 --- /dev/null +++ b/c-api/coro.po @@ -0,0 +1,52 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-10-04 12:24+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/coro.rst:6 +msgid "Coroutine Objects" +msgstr "Objets coroutines" + +#: ../Doc/c-api/coro.rst:10 +msgid "" +"Coroutine objects are what functions declared with an ``async`` keyword " +"return." +msgstr "" +"Les objets coroutines sont les objets renvoyés par les fonctions déclarées " +"avec le mot clef ``async``." + +#: ../Doc/c-api/coro.rst:16 +msgid "The C structure used for coroutine objects." +msgstr "La structure C utilisée pour les objets coroutine." + +#: ../Doc/c-api/coro.rst:21 +msgid "The type object corresponding to coroutine objects." +msgstr "L'objet type correspondant aux objets coroutines." + +#: ../Doc/c-api/coro.rst:26 +msgid "Return true if *ob*'s type is *PyCoro_Type*; *ob* must not be *NULL*." +msgstr "" +"Renvoie vrai si *ob* est de type *PyCoro_Type*. *ob* ne doit pas être *NULL*." + +#: ../Doc/c-api/coro.rst:31 +msgid "" +"Create and return a new coroutine object based on the *frame* object, with " +"``__name__`` and ``__qualname__`` set to *name* and *qualname*. A reference " +"to *frame* is stolen by this function. The *frame* argument must not be " +"*NULL*." +msgstr "" +"Crée et renvoie un nouvel objet coroutine basé sur l'objet *frame*, avec " +"``__name__`` et ``__qualname__`` respectivement assignés de *name* et " +"*qualname*. Une référence à *frame* est empruntée par cette fonction. " +"L'argument *frame* ne doit pas être *NULL*." diff --git a/c-api/datetime.po b/c-api/datetime.po new file mode 100644 index 000000000..4e268df34 --- /dev/null +++ b/c-api/datetime.po @@ -0,0 +1,314 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-31 10:15+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" +"X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,3,-1,-1\n" + +#: ../Doc/c-api/datetime.rst:6 +msgid "DateTime Objects" +msgstr "Objets DateTime" + +#: ../Doc/c-api/datetime.rst:8 +msgid "" +"Various date and time objects are supplied by the :mod:`datetime` module. " +"Before using any of these functions, the header file :file:`datetime.h` must " +"be included in your source (note that this is not included by :file:`Python." +"h`), and the macro :c:macro:`PyDateTime_IMPORT` must be invoked, usually as " +"part of the module initialisation function. The macro puts a pointer to a C " +"structure into a static variable, :c:data:`PyDateTimeAPI`, that is used by " +"the following macros." +msgstr "" +"De nombreux objets *date* et *time* sont exposés par le module :mod:" +"`DateTime`. Avant d'utiliser une de ces fonctions, le fichier d'en-tête :" +"file:`datetime.h` doit être inclus dans vos sources (veuillez noter qu'il " +"n'est pas inclus par le fichier :file:`Python.h`) et la macro :c:macro:" +"`PyDateTime_IMPORT` doit-être invoquée, généralement lors de la fonction " +"d'initialisation du module. La macro crée un pointeur vers une structure C " +"et place celui-ci dans une variable statique, :c:data:`PyDateTimeAPI`, qui " +"est utilisée par les macros suivantes." + +#: ../Doc/c-api/datetime.rst:16 +msgid "Macro for access to the UTC singleton:" +msgstr "Macro pour accéder au singleton UTC :" + +#: ../Doc/c-api/datetime.rst:20 +msgid "" +"Returns the time zone singleton representing UTC, the same object as :attr:" +"`datetime.timezone.utc`." +msgstr "" +"Renvoie le singleton du fuseau horaire UTC, qui est le même objet que :attr:" +"`datetime.timezone.utc`." + +#: ../Doc/c-api/datetime.rst:26 +msgid "Type-check macros:" +msgstr "Macros pour vérifier les types :" + +#: ../Doc/c-api/datetime.rst:30 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_DateType` or a subtype " +"of :c:data:`PyDateTime_DateType`. *ob* must not be *NULL*." +msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateType` ou un sous-" +"type de :c:data:`PyDateTime_DateType`. *ob* ne doit pas être *NULL*." + +#: ../Doc/c-api/datetime.rst:36 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_DateType`. *ob* must not " +"be *NULL*." +msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateType`. *ob* ne doit " +"pas être *NULL*." + +#: ../Doc/c-api/datetime.rst:42 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType` or a " +"subtype of :c:data:`PyDateTime_DateTimeType`. *ob* must not be *NULL*." +msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateTimeType` ou un " +"sous-type de :c:data:`PyDateTime_DateTimeType`. *ob* ne doit pas être *NULL*." + +#: ../Doc/c-api/datetime.rst:48 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType`. *ob* must " +"not be *NULL*." +msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateTimeType`. *ob* ne " +"doit pas être *NULL*." + +#: ../Doc/c-api/datetime.rst:54 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_TimeType` or a subtype " +"of :c:data:`PyDateTime_TimeType`. *ob* must not be *NULL*." +msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TimeType` ou un sous-" +"type de :c:data:`PyDateTime_TimeType`. *ob* ne doit pas être *NULL*." + +#: ../Doc/c-api/datetime.rst:60 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_TimeType`. *ob* must not " +"be *NULL*." +msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TimeType`. *ob* ne doit " +"pas être *NULL*." + +#: ../Doc/c-api/datetime.rst:66 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_DeltaType` or a subtype " +"of :c:data:`PyDateTime_DeltaType`. *ob* must not be *NULL*." +msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DeltaType` ou un sous-" +"type de :c:data:`PyDateTime_DeltaType`. *ob* ne doit pas être *NULL*." + +#: ../Doc/c-api/datetime.rst:72 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_DeltaType`. *ob* must not " +"be *NULL*." +msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DeltaType`. *ob* ne " +"doit pas être *NULL*." + +#: ../Doc/c-api/datetime.rst:78 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType` or a subtype " +"of :c:data:`PyDateTime_TZInfoType`. *ob* must not be *NULL*." +msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TZInfoType` ou un sous-" +"type de :c:data:`PyDateTime_TZInfoType`. *ob* ne doit pas être *NULL*." + +#: ../Doc/c-api/datetime.rst:84 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType`. *ob* must " +"not be *NULL*." +msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TZInfoType`. *ob* ne " +"doit pas être *NULL*." + +#: ../Doc/c-api/datetime.rst:88 +msgid "Macros to create objects:" +msgstr "Macros pour créer des objets :" + +#: ../Doc/c-api/datetime.rst:92 +msgid "" +"Return a :class:`datetime.date` object with the specified year, month and " +"day." +msgstr "" +"Renvoie un objet :class:`datetime.date` avec l'année, le mois et le jour " +"spécifiés." + +#: ../Doc/c-api/datetime.rst:97 +msgid "" +"Return a :class:`datetime.datetime` object with the specified year, month, " +"day, hour, minute, second and microsecond." +msgstr "" +"Renvoie un objet :class:`datetime.datetime` avec l'année, le mois, le jour, " +"l'heure, la minute, la seconde et la microseconde spécifiés." + +#: ../Doc/c-api/datetime.rst:103 +msgid "" +"Return a :class:`datetime.datetime` object with the specified year, month, " +"day, hour, minute, second, microsecond and fold." +msgstr "" +"Renvoie un objet :class:`datetime.datetime` avec l'année, le mois, le jour, " +"l'heure, la minute, la seconde, la microseconde et le pli (*fold* en " +"anglais) spécifiés." + +#: ../Doc/c-api/datetime.rst:111 +msgid "" +"Return a :class:`datetime.time` object with the specified hour, minute, " +"second and microsecond." +msgstr "" +"Renvoie un objet :class:`datetime.time` avec l'heure, la minute, la seconde " +"et la microseconde spécifiées." + +#: ../Doc/c-api/datetime.rst:117 +msgid "" +"Return a :class:`datetime.time` object with the specified hour, minute, " +"second, microsecond and fold." +msgstr "" +"Renvoie un objet :class:`datetime.time` avec l'heure, la minute, la seconde, " +"la microseconde et le pli (*fold* en anglais) spécifiés." + +#: ../Doc/c-api/datetime.rst:125 +msgid "" +"Return a :class:`datetime.timedelta` object representing the given number of " +"days, seconds and microseconds. Normalization is performed so that the " +"resulting number of microseconds and seconds lie in the ranges documented " +"for :class:`datetime.timedelta` objects." +msgstr "" +"Renvoie un objet :class:`datetime.timedelta` représentant le nombre passé en " +"paramètre de jours, de secondes et de microsecondes. Le résultat est " +"normalisé pour que le nombre de microsecondes et de secondes tombe dans la " +"plage documentée pour les objets :class:`datetime.timedelta`." + +#: ../Doc/c-api/datetime.rst:132 +msgid "" +"Return a :class:`datetime.timezone` object with an unnamed fixed offset " +"represented by the *offset* argument." +msgstr "" +"Renvoie un objet :class:`datetime.timezone` avec un décalage anonyme fixe " +"représenté par l'argument *offset*." + +#: ../Doc/c-api/datetime.rst:139 +msgid "" +"Return a :class:`datetime.timezone` object with a fixed offset represented " +"by the *offset* argument and with tzname *name*." +msgstr "" +"Renvoie un objet :class:`datetime.timezone` avec un décalage fixe représenté " +"par l'argument *offset* et avec le nom de fuseau horaire *name*." + +#: ../Doc/c-api/datetime.rst:145 +msgid "" +"Macros to extract fields from date objects. The argument must be an " +"instance of :c:data:`PyDateTime_Date`, including subclasses (such as :c:data:" +"`PyDateTime_DateTime`). The argument must not be *NULL*, and the type is " +"not checked:" +msgstr "" +"Macros pour extraire les champs des objets *date*. L'argument doit être une " +"instance de :c:data:`PyDateTime_Date`, ou une sous-classe (telle que :c:data:" +"`PyDateTime_DateTime`). L'argument ne doit pas être *NULL*, et le type n'est " +"pas vérifié :" + +#: ../Doc/c-api/datetime.rst:152 +msgid "Return the year, as a positive int." +msgstr "Renvoie l'année, sous forme d'entier positif." + +#: ../Doc/c-api/datetime.rst:157 +msgid "Return the month, as an int from 1 through 12." +msgstr "Renvoie le mois, sous forme d'entier allant de 1 à 12." + +#: ../Doc/c-api/datetime.rst:162 +msgid "Return the day, as an int from 1 through 31." +msgstr "Renvoie le jour, sous forme d'entier allant de 1 à 31." + +#: ../Doc/c-api/datetime.rst:165 +msgid "" +"Macros to extract fields from datetime objects. The argument must be an " +"instance of :c:data:`PyDateTime_DateTime`, including subclasses. The " +"argument must not be *NULL*, and the type is not checked:" +msgstr "" +"Macros pour extraire les champs des objets *datetime*. L'argument doit être " +"une instance de :c:data:`PyDateTime_DateTime` ou une sous-classe de celle-" +"ci. L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :" + +#: ../Doc/c-api/datetime.rst:171 ../Doc/c-api/datetime.rst:195 +msgid "Return the hour, as an int from 0 through 23." +msgstr "Renvoie l'heure, sous forme d'entier allant de 0 à 23." + +#: ../Doc/c-api/datetime.rst:176 ../Doc/c-api/datetime.rst:200 +msgid "Return the minute, as an int from 0 through 59." +msgstr "Renvoie la minute, sous forme d'entier allant de 0 à 59." + +#: ../Doc/c-api/datetime.rst:181 ../Doc/c-api/datetime.rst:205 +msgid "Return the second, as an int from 0 through 59." +msgstr "Renvoie la seconde, sous forme d'entier allant de 0 à 59." + +#: ../Doc/c-api/datetime.rst:186 ../Doc/c-api/datetime.rst:210 +msgid "Return the microsecond, as an int from 0 through 999999." +msgstr "Renvoie la microseconde, sous forme d'entier allant de 0 à 999999." + +#: ../Doc/c-api/datetime.rst:189 +msgid "" +"Macros to extract fields from time objects. The argument must be an " +"instance of :c:data:`PyDateTime_Time`, including subclasses. The argument " +"must not be *NULL*, and the type is not checked:" +msgstr "" +"Macros pour extraire les champs des objets *time*. L'argument doit être une " +"instance de :c:data:`PyDateTime_Time` ou une sous-classe de celle-ci. " +"L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :" + +#: ../Doc/c-api/datetime.rst:213 +msgid "" +"Macros to extract fields from time delta objects. The argument must be an " +"instance of :c:data:`PyDateTime_Delta`, including subclasses. The argument " +"must not be *NULL*, and the type is not checked:" +msgstr "" +"Macros pour extraire les champs des objets *time delta*. L'argument doit " +"être une instance de :c:data:`PyDateTime_Delta` ou une sous-classe de celle-" +"ci. L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :" + +#: ../Doc/c-api/datetime.rst:219 +msgid "Return the number of days, as an int from -999999999 to 999999999." +msgstr "" +"Renvoie le nombre de jours, sous forme d'entier allant de -999999999 à " +"999999999." + +#: ../Doc/c-api/datetime.rst:226 +msgid "Return the number of seconds, as an int from 0 through 86399." +msgstr "Renvoie le nombre de secondes sous forme d'entier allant de 0 à 86399." + +#: ../Doc/c-api/datetime.rst:233 +msgid "Return the number of microseconds, as an int from 0 through 999999." +msgstr "" +"Renvoie le nombre de microsecondes, sous forme d'entier allant de 0 à 999999." + +#: ../Doc/c-api/datetime.rst:238 +msgid "Macros for the convenience of modules implementing the DB API:" +msgstr "Macros de confort pour les modules implémentant l'API DB :" + +#: ../Doc/c-api/datetime.rst:242 +msgid "" +"Create and return a new :class:`datetime.datetime` object given an argument " +"tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp()`." +msgstr "" +"Crée et renvoie un nouvel objet :class:`datetime.datetime` à partir d'un n-" +"uplet qui peut être passé à :meth:`datetime.datetime.fromtimestamp()`." + +#: ../Doc/c-api/datetime.rst:248 +msgid "" +"Create and return a new :class:`datetime.date` object given an argument " +"tuple suitable for passing to :meth:`datetime.date.fromtimestamp()`." +msgstr "" +"Crée et renvoie un nouvel objet :class:`datetime.date` à partir d'un n-uplet " +"qui peut être passé à :meth:`datetime.date.fromtimestamp()`." diff --git a/c-api/descriptor.po b/c-api/descriptor.po new file mode 100644 index 000000000..04a2c3101 --- /dev/null +++ b/c-api/descriptor.po @@ -0,0 +1,41 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-02-15 00:32+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/descriptor.rst:6 +msgid "Descriptor Objects" +msgstr "Les descripteurs" + +#: ../Doc/c-api/descriptor.rst:8 +msgid "" +"\"Descriptors\" are objects that describe some attribute of an object. They " +"are found in the dictionary of type objects." +msgstr "" +"Les \"Descripteurs\" sont des objets décrivant des attributs pour un objet. " +"Ils se trouvent dans le dictionnaire du type de l'objet." + +#: ../Doc/c-api/descriptor.rst:15 +msgid "The type object for the built-in descriptor types." +msgstr "L'objet *type* des descripteurs natifs." + +#: ../Doc/c-api/descriptor.rst:35 +msgid "" +"Return true if the descriptor objects *descr* describes a data attribute, or " +"false if it describes a method. *descr* must be a descriptor object; there " +"is no error checking." +msgstr "" +"Renvoie vrai si le descripteur *descr* décrit un attribut de donnée, ou faux " +"s'il décrit une méthode. *descr* doit être un objet descripteur. Il n'y a " +"pas de vérification d'erreur." diff --git a/c-api/dict.po b/c-api/dict.po new file mode 100644 index 000000000..c50d1ef45 --- /dev/null +++ b/c-api/dict.po @@ -0,0 +1,217 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2018-07-03 11:36+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/dict.rst:6 +msgid "Dictionary Objects" +msgstr "Objets dictionnaires" + +#: ../Doc/c-api/dict.rst:13 +msgid "" +"This subtype of :c:type:`PyObject` represents a Python dictionary object." +msgstr "" + +#: ../Doc/c-api/dict.rst:18 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python dictionary " +"type. This is the same object as :class:`dict` in the Python layer." +msgstr "" + +#: ../Doc/c-api/dict.rst:24 +msgid "" +"Return true if *p* is a dict object or an instance of a subtype of the dict " +"type." +msgstr "" + +#: ../Doc/c-api/dict.rst:30 +msgid "" +"Return true if *p* is a dict object, but not an instance of a subtype of the " +"dict type." +msgstr "" + +#: ../Doc/c-api/dict.rst:36 +msgid "Return a new empty dictionary, or *NULL* on failure." +msgstr "" + +#: ../Doc/c-api/dict.rst:41 +msgid "" +"Return a :class:`types.MappingProxyType` object for a mapping which enforces " +"read-only behavior. This is normally used to create a view to prevent " +"modification of the dictionary for non-dynamic class types." +msgstr "" + +#: ../Doc/c-api/dict.rst:48 +msgid "Empty an existing dictionary of all key-value pairs." +msgstr "" + +#: ../Doc/c-api/dict.rst:53 +msgid "" +"Determine if dictionary *p* contains *key*. If an item in *p* is matches " +"*key*, return ``1``, otherwise return ``0``. On error, return ``-1``. This " +"is equivalent to the Python expression ``key in p``." +msgstr "" + +#: ../Doc/c-api/dict.rst:60 +msgid "Return a new dictionary that contains the same key-value pairs as *p*." +msgstr "" + +#: ../Doc/c-api/dict.rst:65 +msgid "" +"Insert *value* into the dictionary *p* with a key of *key*. *key* must be :" +"term:`hashable`; if it isn't, :exc:`TypeError` will be raised. Return ``0`` " +"on success or ``-1`` on failure." +msgstr "" + +#: ../Doc/c-api/dict.rst:74 +msgid "" +"Insert *value* into the dictionary *p* using *key* as a key. *key* should be " +"a :c:type:`const char\\*`. The key object is created using " +"``PyUnicode_FromString(key)``. Return ``0`` on success or ``-1`` on failure." +msgstr "" + +#: ../Doc/c-api/dict.rst:82 +msgid "" +"Remove the entry in dictionary *p* with key *key*. *key* must be hashable; " +"if it isn't, :exc:`TypeError` is raised. Return ``0`` on success or ``-1`` " +"on failure." +msgstr "" + +#: ../Doc/c-api/dict.rst:89 +msgid "" +"Remove the entry in dictionary *p* which has a key specified by the string " +"*key*. Return ``0`` on success or ``-1`` on failure." +msgstr "" + +#: ../Doc/c-api/dict.rst:95 +msgid "" +"Return the object from dictionary *p* which has a key *key*. Return *NULL* " +"if the key *key* is not present, but *without* setting an exception." +msgstr "" + +#: ../Doc/c-api/dict.rst:98 +msgid "" +"Note that exceptions which occur while calling :meth:`__hash__` and :meth:" +"`__eq__` methods will get suppressed. To get error reporting use :c:func:" +"`PyDict_GetItemWithError()` instead." +msgstr "" + +#: ../Doc/c-api/dict.rst:105 +msgid "" +"Variant of :c:func:`PyDict_GetItem` that does not suppress exceptions. " +"Return *NULL* **with** an exception set if an exception occurred. Return " +"*NULL* **without** an exception set if the key wasn't present." +msgstr "" + +#: ../Doc/c-api/dict.rst:113 +msgid "" +"This is the same as :c:func:`PyDict_GetItem`, but *key* is specified as a :c:" +"type:`const char\\*`, rather than a :c:type:`PyObject\\*`." +msgstr "" + +#: ../Doc/c-api/dict.rst:116 +msgid "" +"Note that exceptions which occur while calling :meth:`__hash__` and :meth:" +"`__eq__` methods and creating a temporary string object will get suppressed. " +"To get error reporting use :c:func:`PyDict_GetItemWithError()` instead." +msgstr "" + +#: ../Doc/c-api/dict.rst:124 +msgid "" +"This is the same as the Python-level :meth:`dict.setdefault`. If present, " +"it returns the value corresponding to *key* from the dictionary *p*. If the " +"key is not in the dict, it is inserted with value *defaultobj* and " +"*defaultobj* is returned. This function evaluates the hash function of " +"*key* only once, instead of evaluating it independently for the lookup and " +"the insertion." +msgstr "" + +#: ../Doc/c-api/dict.rst:134 +msgid "" +"Return a :c:type:`PyListObject` containing all the items from the dictionary." +msgstr "" + +#: ../Doc/c-api/dict.rst:139 +msgid "" +"Return a :c:type:`PyListObject` containing all the keys from the dictionary." +msgstr "" + +#: ../Doc/c-api/dict.rst:144 +msgid "" +"Return a :c:type:`PyListObject` containing all the values from the " +"dictionary *p*." +msgstr "" + +#: ../Doc/c-api/dict.rst:152 +msgid "" +"Return the number of items in the dictionary. This is equivalent to " +"``len(p)`` on a dictionary." +msgstr "" + +#: ../Doc/c-api/dict.rst:158 +msgid "" +"Iterate over all key-value pairs in the dictionary *p*. The :c:type:" +"`Py_ssize_t` referred to by *ppos* must be initialized to ``0`` prior to the " +"first call to this function to start the iteration; the function returns " +"true for each pair in the dictionary, and false once all pairs have been " +"reported. The parameters *pkey* and *pvalue* should either point to :c:type:" +"`PyObject\\*` variables that will be filled in with each key and value, " +"respectively, or may be *NULL*. Any references returned through them are " +"borrowed. *ppos* should not be altered during iteration. Its value " +"represents offsets within the internal dictionary structure, and since the " +"structure is sparse, the offsets are not consecutive." +msgstr "" + +#: ../Doc/c-api/dict.rst:169 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/c-api/dict.rst:179 +msgid "" +"The dictionary *p* should not be mutated during iteration. It is safe to " +"modify the values of the keys as you iterate over the dictionary, but only " +"so long as the set of keys does not change. For example::" +msgstr "" + +#: ../Doc/c-api/dict.rst:204 +msgid "" +"Iterate over mapping object *b* adding key-value pairs to dictionary *a*. " +"*b* may be a dictionary, or any object supporting :c:func:`PyMapping_Keys` " +"and :c:func:`PyObject_GetItem`. If *override* is true, existing pairs in *a* " +"will be replaced if a matching key is found in *b*, otherwise pairs will " +"only be added if there is not a matching key in *a*. Return ``0`` on success " +"or ``-1`` if an exception was raised." +msgstr "" + +#: ../Doc/c-api/dict.rst:214 +msgid "" +"This is the same as ``PyDict_Merge(a, b, 1)`` in C, and is similar to ``a." +"update(b)`` in Python except that :c:func:`PyDict_Update` doesn't fall back " +"to the iterating over a sequence of key value pairs if the second argument " +"has no \"keys\" attribute. Return ``0`` on success or ``-1`` if an " +"exception was raised." +msgstr "" + +#: ../Doc/c-api/dict.rst:223 +msgid "" +"Update or merge into dictionary *a*, from the key-value pairs in *seq2*. " +"*seq2* must be an iterable object producing iterable objects of length 2, " +"viewed as key-value pairs. In case of duplicate keys, the last wins if " +"*override* is true, else the first wins. Return ``0`` on success or ``-1`` " +"if an exception was raised. Equivalent Python (except for the return value)::" +msgstr "" + +#: ../Doc/c-api/dict.rst:238 +msgid "Clear the free list. Return the total number of freed items." +msgstr "" diff --git a/c-api/exceptions.po b/c-api/exceptions.po new file mode 100644 index 000000000..4ea59db85 --- /dev/null +++ b/c-api/exceptions.po @@ -0,0 +1,1417 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2018-10-04 12:24+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/c-api/exceptions.rst:8 +msgid "Exception Handling" +msgstr "Gestion des exceptions" + +#: ../Doc/c-api/exceptions.rst:10 +msgid "" +"The functions described in this chapter will let you handle and raise Python " +"exceptions. It is important to understand some of the basics of Python " +"exception handling. It works somewhat like the POSIX :c:data:`errno` " +"variable: there is a global indicator (per thread) of the last error that " +"occurred. Most C API functions don't clear this on success, but will set it " +"to indicate the cause of the error on failure. Most C API functions also " +"return an error indicator, usually *NULL* if they are supposed to return a " +"pointer, or ``-1`` if they return an integer (exception: the :c:func:`PyArg_" +"\\*` functions return ``1`` for success and ``0`` for failure)." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:20 +msgid "" +"Concretely, the error indicator consists of three object pointers: the " +"exception's type, the exception's value, and the traceback object. Any of " +"those pointers can be NULL if non-set (although some combinations are " +"forbidden, for example you can't have a non-NULL traceback if the exception " +"type is NULL)." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:26 +msgid "" +"When a function must fail because some function it called failed, it " +"generally doesn't set the error indicator; the function it called already " +"set it. It is responsible for either handling the error and clearing the " +"exception or returning after cleaning up any resources it holds (such as " +"object references or memory allocations); it should *not* continue normally " +"if it is not prepared to handle the error. If returning due to an error, it " +"is important to indicate to the caller that an error has been set. If the " +"error is not handled or carefully propagated, additional calls into the " +"Python/C API may not behave as intended and may fail in mysterious ways." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:37 +msgid "" +"The error indicator is **not** the result of :func:`sys.exc_info()`. The " +"former corresponds to an exception that is not yet caught (and is therefore " +"still propagating), while the latter returns an exception after it is caught " +"(and has therefore stopped propagating)." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:44 +msgid "Printing and clearing" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:49 +msgid "" +"Clear the error indicator. If the error indicator is not set, there is no " +"effect." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:55 +msgid "" +"Print a standard traceback to ``sys.stderr`` and clear the error indicator. " +"**Unless** the error is a ``SystemExit``. In that case the no traceback is " +"printed and Python process will exit with the error code specified by the " +"``SystemExit`` instance." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:60 +msgid "" +"Call this function **only** when the error indicator is set. Otherwise it " +"will cause a fatal error!" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:63 +msgid "" +"If *set_sys_last_vars* is nonzero, the variables :data:`sys.last_type`, :" +"data:`sys.last_value` and :data:`sys.last_traceback` will be set to the " +"type, value and traceback of the printed exception, respectively." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:70 +msgid "Alias for ``PyErr_PrintEx(1)``." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:75 +msgid "" +"This utility function prints a warning message to ``sys.stderr`` when an " +"exception has been set but it is impossible for the interpreter to actually " +"raise the exception. It is used, for example, when an exception occurs in " +"an :meth:`__del__` method." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:80 +msgid "" +"The function is called with a single argument *obj* that identifies the " +"context in which the unraisable exception occurred. If possible, the repr of " +"*obj* will be printed in the warning message." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:84 +msgid "An exception must be set when calling this function." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:88 +msgid "Raising exceptions" +msgstr "Lever des exceptions" + +#: ../Doc/c-api/exceptions.rst:90 +msgid "" +"These functions help you set the current thread's error indicator. For " +"convenience, some of these functions will always return a NULL pointer for " +"use in a ``return`` statement." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:97 +msgid "" +"This is the most common way to set the error indicator. The first argument " +"specifies the exception type; it is normally one of the standard exceptions, " +"e.g. :c:data:`PyExc_RuntimeError`. You need not increment its reference " +"count. The second argument is an error message; it is decoded from " +"``'utf-8``'." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:105 +msgid "" +"This function is similar to :c:func:`PyErr_SetString` but lets you specify " +"an arbitrary Python object for the \"value\" of the exception." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:111 +msgid "" +"This function sets the error indicator and returns *NULL*. *exception* " +"should be a Python exception class. The *format* and subsequent parameters " +"help format the error message; they have the same meaning and values as in :" +"c:func:`PyUnicode_FromFormat`. *format* is an ASCII-encoded string." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:120 +msgid "" +"Same as :c:func:`PyErr_Format`, but taking a :c:type:`va_list` argument " +"rather than a variable number of arguments." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:128 +msgid "This is a shorthand for ``PyErr_SetObject(type, Py_None)``." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:133 +msgid "" +"This is a shorthand for ``PyErr_SetString(PyExc_TypeError, message)``, where " +"*message* indicates that a built-in operation was invoked with an illegal " +"argument. It is mostly for internal use." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:140 +msgid "" +"This is a shorthand for ``PyErr_SetNone(PyExc_MemoryError)``; it returns " +"*NULL* so an object allocation function can write ``return PyErr_NoMemory();" +"`` when it runs out of memory." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:149 +msgid "" +"This is a convenience function to raise an exception when a C library " +"function has returned an error and set the C variable :c:data:`errno`. It " +"constructs a tuple object whose first item is the integer :c:data:`errno` " +"value and whose second item is the corresponding error message (gotten from :" +"c:func:`strerror`), and then calls ``PyErr_SetObject(type, object)``. On " +"Unix, when the :c:data:`errno` value is :const:`EINTR`, indicating an " +"interrupted system call, this calls :c:func:`PyErr_CheckSignals`, and if " +"that set the error indicator, leaves it set to that. The function always " +"returns *NULL*, so a wrapper function around a system call can write " +"``return PyErr_SetFromErrno(type);`` when the system call returns an error." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:163 +msgid "" +"Similar to :c:func:`PyErr_SetFromErrno`, with the additional behavior that " +"if *filenameObject* is not *NULL*, it is passed to the constructor of *type* " +"as a third parameter. In the case of :exc:`OSError` exception, this is used " +"to define the :attr:`filename` attribute of the exception instance." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:172 +msgid "" +"Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but takes a " +"second filename object, for raising errors when a function that takes two " +"filenames fails." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:181 +msgid "" +"Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but the filename " +"is given as a C string. *filename* is decoded from the filesystem encoding " +"(:func:`os.fsdecode`)." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:188 +msgid "" +"This is a convenience function to raise :exc:`WindowsError`. If called with " +"*ierr* of :c:data:`0`, the error code returned by a call to :c:func:" +"`GetLastError` is used instead. It calls the Win32 function :c:func:" +"`FormatMessage` to retrieve the Windows description of error code given by " +"*ierr* or :c:func:`GetLastError`, then it constructs a tuple object whose " +"first item is the *ierr* value and whose second item is the corresponding " +"error message (gotten from :c:func:`FormatMessage`), and then calls " +"``PyErr_SetObject(PyExc_WindowsError, object)``. This function always " +"returns *NULL*." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:197 ../Doc/c-api/exceptions.rst:205 +#: ../Doc/c-api/exceptions.rst:214 ../Doc/c-api/exceptions.rst:222 +#: ../Doc/c-api/exceptions.rst:231 ../Doc/c-api/exceptions.rst:240 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." + +#: ../Doc/c-api/exceptions.rst:202 +msgid "" +"Similar to :c:func:`PyErr_SetFromWindowsErr`, with an additional parameter " +"specifying the exception type to be raised." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:210 +msgid "" +"Similar to :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, but the " +"filename is given as a C string. *filename* is decoded from the filesystem " +"encoding (:func:`os.fsdecode`)." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:219 +msgid "" +"Similar to :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, with an " +"additional parameter specifying the exception type to be raised." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:227 +msgid "" +"Similar to :c:func:`PyErr_SetExcFromWindowsErrWithFilenameObject`, but " +"accepts a second filename object." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:237 +msgid "" +"Similar to :c:func:`PyErr_SetFromWindowsErrWithFilename`, with an additional " +"parameter specifying the exception type to be raised." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:245 +msgid "" +"This is a convenience function to raise :exc:`ImportError`. *msg* will be " +"set as the exception's message string. *name* and *path*, both of which can " +"be ``NULL``, will be set as the :exc:`ImportError`'s respective ``name`` and " +"``path`` attributes." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:255 +msgid "" +"Set file, line, and offset information for the current exception. If the " +"current exception is not a :exc:`SyntaxError`, then it sets additional " +"attributes, which make the exception printing subsystem think the exception " +"is a :exc:`SyntaxError`." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:265 +msgid "" +"Like :c:func:`PyErr_SyntaxLocationObject`, but *filename* is a byte string " +"decoded from the filesystem encoding (:func:`os.fsdecode`)." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:273 +msgid "" +"Like :c:func:`PyErr_SyntaxLocationEx`, but the col_offset parameter is " +"omitted." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:279 +msgid "" +"This is a shorthand for ``PyErr_SetString(PyExc_SystemError, message)``, " +"where *message* indicates that an internal operation (e.g. a Python/C API " +"function) was invoked with an illegal argument. It is mostly for internal " +"use." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:286 +msgid "Issuing warnings" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:288 +msgid "" +"Use these functions to issue warnings from C code. They mirror similar " +"functions exported by the Python :mod:`warnings` module. They normally " +"print a warning message to *sys.stderr*; however, it is also possible that " +"the user has specified that warnings are to be turned into errors, and in " +"that case they will raise an exception. It is also possible that the " +"functions raise an exception because of a problem with the warning " +"machinery. The return value is ``0`` if no exception is raised, or ``-1`` if " +"an exception is raised. (It is not possible to determine whether a warning " +"message is actually printed, nor what the reason is for the exception; this " +"is intentional.) If an exception is raised, the caller should do its normal " +"exception handling (for example, :c:func:`Py_DECREF` owned references and " +"return an error value)." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:303 +msgid "" +"Issue a warning message. The *category* argument is a warning category (see " +"below) or *NULL*; the *message* argument is a UTF-8 encoded string. " +"*stack_level* is a positive number giving a number of stack frames; the " +"warning will be issued from the currently executing line of code in that " +"stack frame. A *stack_level* of 1 is the function calling :c:func:" +"`PyErr_WarnEx`, 2 is the function above that, and so forth." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:310 +msgid "" +"Warning categories must be subclasses of :c:data:`PyExc_Warning`; :c:data:" +"`PyExc_Warning` is a subclass of :c:data:`PyExc_Exception`; the default " +"warning category is :c:data:`PyExc_RuntimeWarning`. The standard Python " +"warning categories are available as global variables whose names are " +"enumerated at :ref:`standardwarningcategories`." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:316 +msgid "" +"For information about warning control, see the documentation for the :mod:" +"`warnings` module and the :option:`-W` option in the command line " +"documentation. There is no C API for warning control." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:322 +msgid "" +"Much like :c:func:`PyErr_SetImportError` but this function allows for " +"specifying a subclass of :exc:`ImportError` to raise." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:330 +msgid "" +"Issue a warning message with explicit control over all warning attributes. " +"This is a straightforward wrapper around the Python function :func:`warnings." +"warn_explicit`, see there for more information. The *module* and *registry* " +"arguments may be set to *NULL* to get the default effect described there." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:341 +msgid "" +"Similar to :c:func:`PyErr_WarnExplicitObject` except that *message* and " +"*module* are UTF-8 encoded strings, and *filename* is decoded from the " +"filesystem encoding (:func:`os.fsdecode`)." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:348 +msgid "" +"Function similar to :c:func:`PyErr_WarnEx`, but use :c:func:" +"`PyUnicode_FromFormat` to format the warning message. *format* is an ASCII-" +"encoded string." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:357 +msgid "" +"Function similar to :c:func:`PyErr_WarnFormat`, but *category* is :exc:" +"`ResourceWarning` and pass *source* to :func:`warnings.WarningMessage`." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:364 +msgid "Querying the error indicator" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:368 +msgid "" +"Test whether the error indicator is set. If set, return the exception " +"*type* (the first argument to the last call to one of the :c:func:`PyErr_Set" +"\\*` functions or to :c:func:`PyErr_Restore`). If not set, return *NULL*. " +"You do not own a reference to the return value, so you do not need to :c:" +"func:`Py_DECREF` it." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:376 +msgid "" +"Do not compare the return value to a specific exception; use :c:func:" +"`PyErr_ExceptionMatches` instead, shown below. (The comparison could easily " +"fail since the exception may be an instance instead of a class, in the case " +"of a class exception, or it may be a subclass of the expected exception.)" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:384 +msgid "" +"Equivalent to ``PyErr_GivenExceptionMatches(PyErr_Occurred(), exc)``. This " +"should only be called when an exception is actually set; a memory access " +"violation will occur if no exception has been raised." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:391 +msgid "" +"Return true if the *given* exception matches the exception type in *exc*. " +"If *exc* is a class object, this also returns true when *given* is an " +"instance of a subclass. If *exc* is a tuple, all exception types in the " +"tuple (and recursively in subtuples) are searched for a match." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:399 +msgid "" +"Retrieve the error indicator into three variables whose addresses are " +"passed. If the error indicator is not set, set all three variables to " +"*NULL*. If it is set, it will be cleared and you own a reference to each " +"object retrieved. The value and traceback object may be *NULL* even when " +"the type object is not." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:406 +msgid "" +"This function is normally only used by code that needs to catch exceptions " +"or by code that needs to save and restore the error indicator temporarily, e." +"g.::" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:421 +msgid "" +"Set the error indicator from the three objects. If the error indicator is " +"already set, it is cleared first. If the objects are *NULL*, the error " +"indicator is cleared. Do not pass a *NULL* type and non-*NULL* value or " +"traceback. The exception type should be a class. Do not pass an invalid " +"exception type or value. (Violating these rules will cause subtle problems " +"later.) This call takes away a reference to each object: you must own a " +"reference to each object before the call and after the call you no longer " +"own these references. (If you don't understand this, don't use this " +"function. I warned you.)" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:433 +msgid "" +"This function is normally only used by code that needs to save and restore " +"the error indicator temporarily. Use :c:func:`PyErr_Fetch` to save the " +"current error indicator." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:440 +msgid "" +"Under certain circumstances, the values returned by :c:func:`PyErr_Fetch` " +"below can be \"unnormalized\", meaning that ``*exc`` is a class object but " +"``*val`` is not an instance of the same class. This function can be used " +"to instantiate the class in that case. If the values are already " +"normalized, nothing happens. The delayed normalization is implemented to " +"improve performance." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:448 +msgid "" +"This function *does not* implicitly set the ``__traceback__`` attribute on " +"the exception value. If setting the traceback appropriately is desired, the " +"following additional snippet is needed::" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:459 +msgid "" +"Retrieve the exception info, as known from ``sys.exc_info()``. This refers " +"to an exception that was *already caught*, not to an exception that was " +"freshly raised. Returns new references for the three objects, any of which " +"may be *NULL*. Does not modify the exception info state." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:466 +msgid "" +"This function is not normally used by code that wants to handle exceptions. " +"Rather, it can be used when code needs to save and restore the exception " +"state temporarily. Use :c:func:`PyErr_SetExcInfo` to restore or clear the " +"exception state." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:476 +msgid "" +"Set the exception info, as known from ``sys.exc_info()``. This refers to an " +"exception that was *already caught*, not to an exception that was freshly " +"raised. This function steals the references of the arguments. To clear the " +"exception state, pass *NULL* for all three arguments. For general rules " +"about the three arguments, see :c:func:`PyErr_Restore`." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:484 +msgid "" +"This function is not normally used by code that wants to handle exceptions. " +"Rather, it can be used when code needs to save and restore the exception " +"state temporarily. Use :c:func:`PyErr_GetExcInfo` to read the exception " +"state." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:493 +msgid "Signal Handling" +msgstr "Traitement des signaux" + +#: ../Doc/c-api/exceptions.rst:503 +msgid "" +"This function interacts with Python's signal handling. It checks whether a " +"signal has been sent to the processes and if so, invokes the corresponding " +"signal handler. If the :mod:`signal` module is supported, this can invoke a " +"signal handler written in Python. In all cases, the default effect for :" +"const:`SIGINT` is to raise the :exc:`KeyboardInterrupt` exception. If an " +"exception is raised the error indicator is set and the function returns " +"``-1``; otherwise the function returns ``0``. The error indicator may or " +"may not be cleared if it was previously set." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:519 +msgid "" +"Simulate the effect of a :const:`SIGINT` signal arriving. The next time :c:" +"func:`PyErr_CheckSignals` is called, the Python signal handler for :const:" +"`SIGINT` will be called." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:523 +msgid "" +"If :const:`SIGINT` isn't handled by Python (it was set to :data:`signal." +"SIG_DFL` or :data:`signal.SIG_IGN`), this function does nothing." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:529 +msgid "" +"This utility function specifies a file descriptor to which the signal number " +"is written as a single byte whenever a signal is received. *fd* must be non-" +"blocking. It returns the previous such file descriptor." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:533 +msgid "" +"The value ``-1`` disables the feature; this is the initial state. This is " +"equivalent to :func:`signal.set_wakeup_fd` in Python, but without any error " +"checking. *fd* should be a valid file descriptor. The function should only " +"be called from the main thread." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:538 +msgid "On Windows, the function now also supports socket handles." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:543 +msgid "Exception Classes" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:547 +msgid "" +"This utility function creates and returns a new exception class. The *name* " +"argument must be the name of the new exception, a C string of the form " +"``module.classname``. The *base* and *dict* arguments are normally *NULL*. " +"This creates a class object derived from :exc:`Exception` (accessible in C " +"as :c:data:`PyExc_Exception`)." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:553 +msgid "" +"The :attr:`__module__` attribute of the new class is set to the first part " +"(up to the last dot) of the *name* argument, and the class name is set to " +"the last part (after the last dot). The *base* argument can be used to " +"specify alternate base classes; it can either be only one class or a tuple " +"of classes. The *dict* argument can be used to specify a dictionary of class " +"variables and methods." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:562 +msgid "" +"Same as :c:func:`PyErr_NewException`, except that the new exception class " +"can easily be given a docstring: If *doc* is non-*NULL*, it will be used as " +"the docstring for the exception class." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:570 +msgid "Exception Objects" +msgstr "Objets exception" + +#: ../Doc/c-api/exceptions.rst:574 +msgid "" +"Return the traceback associated with the exception as a new reference, as " +"accessible from Python through :attr:`__traceback__`. If there is no " +"traceback associated, this returns *NULL*." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:581 +msgid "" +"Set the traceback associated with the exception to *tb*. Use ``Py_None`` to " +"clear it." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:587 +msgid "" +"Return the context (another exception instance during whose handling *ex* " +"was raised) associated with the exception as a new reference, as accessible " +"from Python through :attr:`__context__`. If there is no context associated, " +"this returns *NULL*." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:595 +msgid "" +"Set the context associated with the exception to *ctx*. Use *NULL* to clear " +"it. There is no type check to make sure that *ctx* is an exception " +"instance. This steals a reference to *ctx*." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:602 +msgid "" +"Return the cause (either an exception instance, or :const:`None`, set by " +"``raise ... from ...``) associated with the exception as a new reference, as " +"accessible from Python through :attr:`__cause__`." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:609 +msgid "" +"Set the cause associated with the exception to *cause*. Use *NULL* to clear " +"it. There is no type check to make sure that *cause* is either an exception " +"instance or :const:`None`. This steals a reference to *cause*." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:613 +msgid "" +":attr:`__suppress_context__` is implicitly set to ``True`` by this function." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:619 +msgid "Unicode Exception Objects" +msgstr "Objets exception Unicode" + +#: ../Doc/c-api/exceptions.rst:621 +msgid "" +"The following functions are used to create and modify Unicode exceptions " +"from C." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:625 +msgid "" +"Create a :class:`UnicodeDecodeError` object with the attributes *encoding*, " +"*object*, *length*, *start*, *end* and *reason*. *encoding* and *reason* are " +"UTF-8 encoded strings." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:631 +msgid "" +"Create a :class:`UnicodeEncodeError` object with the attributes *encoding*, " +"*object*, *length*, *start*, *end* and *reason*. *encoding* and *reason* are " +"UTF-8 encoded strings." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:637 +msgid "" +"Create a :class:`UnicodeTranslateError` object with the attributes *object*, " +"*length*, *start*, *end* and *reason*. *reason* is a UTF-8 encoded string." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:643 +msgid "Return the *encoding* attribute of the given exception object." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:649 +msgid "Return the *object* attribute of the given exception object." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:655 +msgid "" +"Get the *start* attribute of the given exception object and place it into *" +"\\*start*. *start* must not be *NULL*. Return ``0`` on success, ``-1`` on " +"failure." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:663 +msgid "" +"Set the *start* attribute of the given exception object to *start*. Return " +"``0`` on success, ``-1`` on failure." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:670 +msgid "" +"Get the *end* attribute of the given exception object and place it into *" +"\\*end*. *end* must not be *NULL*. Return ``0`` on success, ``-1`` on " +"failure." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:678 +msgid "" +"Set the *end* attribute of the given exception object to *end*. Return " +"``0`` on success, ``-1`` on failure." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:685 +msgid "Return the *reason* attribute of the given exception object." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:691 +msgid "" +"Set the *reason* attribute of the given exception object to *reason*. " +"Return ``0`` on success, ``-1`` on failure." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:696 +msgid "Recursion Control" +msgstr "Contrôle de la récursion" + +#: ../Doc/c-api/exceptions.rst:698 +msgid "" +"These two functions provide a way to perform safe recursive calls at the C " +"level, both in the core and in extension modules. They are needed if the " +"recursive code does not necessarily invoke Python code (which tracks its " +"recursion depth automatically)." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:705 +msgid "Marks a point where a recursive C-level call is about to be performed." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:707 +msgid "" +"If :const:`USE_STACKCHECK` is defined, this function checks if the OS stack " +"overflowed using :c:func:`PyOS_CheckStack`. In this is the case, it sets a :" +"exc:`MemoryError` and returns a nonzero value." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:711 +msgid "" +"The function then checks if the recursion limit is reached. If this is the " +"case, a :exc:`RecursionError` is set and a nonzero value is returned. " +"Otherwise, zero is returned." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:715 +msgid "" +"*where* should be a string such as ``\" in instance check\"`` to be " +"concatenated to the :exc:`RecursionError` message caused by the recursion " +"depth limit." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:721 +msgid "" +"Ends a :c:func:`Py_EnterRecursiveCall`. Must be called once for each " +"*successful* invocation of :c:func:`Py_EnterRecursiveCall`." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:724 +msgid "" +"Properly implementing :c:member:`~PyTypeObject.tp_repr` for container types " +"requires special recursion handling. In addition to protecting the stack, :" +"c:member:`~PyTypeObject.tp_repr` also needs to track objects to prevent " +"cycles. The following two functions facilitate this functionality. " +"Effectively, these are the C equivalent to :func:`reprlib.recursive_repr`." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:732 +msgid "" +"Called at the beginning of the :c:member:`~PyTypeObject.tp_repr` " +"implementation to detect cycles." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:735 +msgid "" +"If the object has already been processed, the function returns a positive " +"integer. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " +"should return a string object indicating a cycle. As examples, :class:" +"`dict` objects return ``{...}`` and :class:`list` objects return ``[...]``." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:741 +msgid "" +"The function will return a negative integer if the recursion limit is " +"reached. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " +"should typically return ``NULL``." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:745 +msgid "" +"Otherwise, the function returns zero and the :c:member:`~PyTypeObject." +"tp_repr` implementation can continue normally." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:750 +msgid "" +"Ends a :c:func:`Py_ReprEnter`. Must be called once for each invocation of :" +"c:func:`Py_ReprEnter` that returns zero." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:757 +msgid "Standard Exceptions" +msgstr "Exceptions standards" + +#: ../Doc/c-api/exceptions.rst:759 +msgid "" +"All standard Python exceptions are available as global variables whose names " +"are ``PyExc_`` followed by the Python exception name. These have the type :" +"c:type:`PyObject\\*`; they are all class objects. For completeness, here " +"are all the variables:" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:820 ../Doc/c-api/exceptions.rst:953 +#: ../Doc/c-api/exceptions.rst:1001 +msgid "C Name" +msgstr "Nom C" + +#: ../Doc/c-api/exceptions.rst:820 ../Doc/c-api/exceptions.rst:1001 +msgid "Python Name" +msgstr "Nom Python" + +#: ../Doc/c-api/exceptions.rst:820 ../Doc/c-api/exceptions.rst:953 +#: ../Doc/c-api/exceptions.rst:1001 +msgid "Notes" +msgstr "Notes" + +#: ../Doc/c-api/exceptions.rst:822 +msgid ":c:data:`PyExc_BaseException`" +msgstr ":c:data:`PyExc_BaseException`" + +#: ../Doc/c-api/exceptions.rst:822 +msgid ":exc:`BaseException`" +msgstr ":exc:`BaseException`" + +#: ../Doc/c-api/exceptions.rst:822 ../Doc/c-api/exceptions.rst:824 +#: ../Doc/c-api/exceptions.rst:826 ../Doc/c-api/exceptions.rst:872 +#: ../Doc/c-api/exceptions.rst:884 ../Doc/c-api/exceptions.rst:1003 +msgid "\\(1)" +msgstr "\\(1)" + +#: ../Doc/c-api/exceptions.rst:824 +msgid ":c:data:`PyExc_Exception`" +msgstr ":c:data:`PyExc_Exception`" + +#: ../Doc/c-api/exceptions.rst:824 +msgid ":exc:`Exception`" +msgstr ":exc:`Exception`" + +#: ../Doc/c-api/exceptions.rst:826 +msgid ":c:data:`PyExc_ArithmeticError`" +msgstr ":c:data:`PyExc_ArithmeticError`" + +#: ../Doc/c-api/exceptions.rst:826 +msgid ":exc:`ArithmeticError`" +msgstr ":exc:`ArithmeticError`" + +#: ../Doc/c-api/exceptions.rst:828 +msgid ":c:data:`PyExc_AssertionError`" +msgstr ":c:data:`PyExc_AssertionError`" + +#: ../Doc/c-api/exceptions.rst:828 +msgid ":exc:`AssertionError`" +msgstr ":exc:`AssertionError`" + +#: ../Doc/c-api/exceptions.rst:830 +msgid ":c:data:`PyExc_AttributeError`" +msgstr ":c:data:`PyExc_AttributeError`" + +#: ../Doc/c-api/exceptions.rst:830 +msgid ":exc:`AttributeError`" +msgstr ":exc:`AttributeError`" + +#: ../Doc/c-api/exceptions.rst:832 +msgid ":c:data:`PyExc_BlockingIOError`" +msgstr ":c:data:`PyExc_BlockingIOError`" + +#: ../Doc/c-api/exceptions.rst:832 +msgid ":exc:`BlockingIOError`" +msgstr ":exc:`BlockingIOError`" + +#: ../Doc/c-api/exceptions.rst:834 +msgid ":c:data:`PyExc_BrokenPipeError`" +msgstr ":c:data:`PyExc_BrokenPipeError`" + +#: ../Doc/c-api/exceptions.rst:834 +msgid ":exc:`BrokenPipeError`" +msgstr ":exc:`BrokenPipeError`" + +#: ../Doc/c-api/exceptions.rst:836 +msgid ":c:data:`PyExc_BufferError`" +msgstr ":c:data:`PyExc_BufferError`" + +#: ../Doc/c-api/exceptions.rst:836 +msgid ":exc:`BufferError`" +msgstr ":exc:`BufferError`" + +#: ../Doc/c-api/exceptions.rst:838 +msgid ":c:data:`PyExc_ChildProcessError`" +msgstr ":c:data:`PyExc_ChildProcessError`" + +#: ../Doc/c-api/exceptions.rst:838 +msgid ":exc:`ChildProcessError`" +msgstr ":exc:`ChildProcessError`" + +#: ../Doc/c-api/exceptions.rst:840 +msgid ":c:data:`PyExc_ConnectionAbortedError`" +msgstr ":c:data:`PyExc_ConnectionAbortedError`" + +#: ../Doc/c-api/exceptions.rst:840 +msgid ":exc:`ConnectionAbortedError`" +msgstr ":exc:`ConnectionAbortedError`" + +#: ../Doc/c-api/exceptions.rst:842 +msgid ":c:data:`PyExc_ConnectionError`" +msgstr ":c:data:`PyExc_ConnectionError`" + +#: ../Doc/c-api/exceptions.rst:842 +msgid ":exc:`ConnectionError`" +msgstr ":exc:`ConnectionError`" + +#: ../Doc/c-api/exceptions.rst:844 +msgid ":c:data:`PyExc_ConnectionRefusedError`" +msgstr ":c:data:`PyExc_ConnectionRefusedError`" + +#: ../Doc/c-api/exceptions.rst:844 +msgid ":exc:`ConnectionRefusedError`" +msgstr ":exc:`ConnectionRefusedError`" + +#: ../Doc/c-api/exceptions.rst:846 +msgid ":c:data:`PyExc_ConnectionResetError`" +msgstr ":c:data:`PyExc_ConnectionResetError`" + +#: ../Doc/c-api/exceptions.rst:846 +msgid ":exc:`ConnectionResetError`" +msgstr ":exc:`ConnectionResetError`" + +#: ../Doc/c-api/exceptions.rst:848 +msgid ":c:data:`PyExc_EOFError`" +msgstr ":c:data:`PyExc_EOFError`" + +#: ../Doc/c-api/exceptions.rst:848 +msgid ":exc:`EOFError`" +msgstr ":exc:`EOFError`" + +#: ../Doc/c-api/exceptions.rst:850 +msgid ":c:data:`PyExc_FileExistsError`" +msgstr ":c:data:`PyExc_FileExistsError`" + +#: ../Doc/c-api/exceptions.rst:850 +msgid ":exc:`FileExistsError`" +msgstr ":exc:`FileExistsError`" + +#: ../Doc/c-api/exceptions.rst:852 +msgid ":c:data:`PyExc_FileNotFoundError`" +msgstr ":c:data:`PyExc_FloatingPointError`" + +#: ../Doc/c-api/exceptions.rst:852 +msgid ":exc:`FileNotFoundError`" +msgstr ":exc:`FileNotFoundError`" + +#: ../Doc/c-api/exceptions.rst:854 +msgid ":c:data:`PyExc_FloatingPointError`" +msgstr ":c:data:`PyExc_FloatingPointError`" + +#: ../Doc/c-api/exceptions.rst:854 +msgid ":exc:`FloatingPointError`" +msgstr ":exc:`FloatingPointError`" + +#: ../Doc/c-api/exceptions.rst:856 +msgid ":c:data:`PyExc_GeneratorExit`" +msgstr ":c:data:`PyExc_GeneratorExit`" + +#: ../Doc/c-api/exceptions.rst:856 +msgid ":exc:`GeneratorExit`" +msgstr ":exc:`GeneratorExit`" + +#: ../Doc/c-api/exceptions.rst:858 +msgid ":c:data:`PyExc_ImportError`" +msgstr ":c:data:`PyExc_ImportError`" + +#: ../Doc/c-api/exceptions.rst:858 +msgid ":exc:`ImportError`" +msgstr ":exc:`ImportError`" + +#: ../Doc/c-api/exceptions.rst:860 +msgid ":c:data:`PyExc_IndentationError`" +msgstr ":c:data:`PyExc_IndentationError`" + +#: ../Doc/c-api/exceptions.rst:860 +msgid ":exc:`IndentationError`" +msgstr ":exc:`IndentationError`" + +#: ../Doc/c-api/exceptions.rst:862 +msgid ":c:data:`PyExc_IndexError`" +msgstr ":c:data:`PyExc_IndexError`" + +#: ../Doc/c-api/exceptions.rst:862 +msgid ":exc:`IndexError`" +msgstr ":exc:`IndexError`" + +#: ../Doc/c-api/exceptions.rst:864 +msgid ":c:data:`PyExc_InterruptedError`" +msgstr ":c:data:`PyExc_InterruptedError`" + +#: ../Doc/c-api/exceptions.rst:864 +msgid ":exc:`InterruptedError`" +msgstr ":exc:`InterruptedError`" + +#: ../Doc/c-api/exceptions.rst:866 +msgid ":c:data:`PyExc_IsADirectoryError`" +msgstr ":c:data:`PyExc_IsADirectoryError`" + +#: ../Doc/c-api/exceptions.rst:866 +msgid ":exc:`IsADirectoryError`" +msgstr ":exc:`IsADirectoryError`" + +#: ../Doc/c-api/exceptions.rst:868 +msgid ":c:data:`PyExc_KeyError`" +msgstr ":c:data:`PyExc_KeyError`" + +#: ../Doc/c-api/exceptions.rst:868 +msgid ":exc:`KeyError`" +msgstr ":exc:`KeyError`" + +#: ../Doc/c-api/exceptions.rst:870 +msgid ":c:data:`PyExc_KeyboardInterrupt`" +msgstr ":c:data:`PyExc_KeyboardInterrupt`" + +#: ../Doc/c-api/exceptions.rst:870 +msgid ":exc:`KeyboardInterrupt`" +msgstr ":exc:`KeyboardInterrupt`" + +#: ../Doc/c-api/exceptions.rst:872 +msgid ":c:data:`PyExc_LookupError`" +msgstr ":c:data:`PyExc_LookupError`" + +#: ../Doc/c-api/exceptions.rst:872 +msgid ":exc:`LookupError`" +msgstr ":exc:`LookupError`" + +#: ../Doc/c-api/exceptions.rst:874 +msgid ":c:data:`PyExc_MemoryError`" +msgstr ":c:data:`PyExc_MemoryError`" + +#: ../Doc/c-api/exceptions.rst:874 +msgid ":exc:`MemoryError`" +msgstr ":exc:`MemoryError`" + +#: ../Doc/c-api/exceptions.rst:876 +msgid ":c:data:`PyExc_ModuleNotFoundError`" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:876 +msgid ":exc:`ModuleNotFoundError`" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:878 +msgid ":c:data:`PyExc_NameError`" +msgstr ":c:data:`PyExc_NameError`" + +#: ../Doc/c-api/exceptions.rst:878 +msgid ":exc:`NameError`" +msgstr ":exc:`NameError`" + +#: ../Doc/c-api/exceptions.rst:880 +msgid ":c:data:`PyExc_NotADirectoryError`" +msgstr ":c:data:`PyExc_NotADirectoryError`" + +#: ../Doc/c-api/exceptions.rst:880 +msgid ":exc:`NotADirectoryError`" +msgstr ":exc:`NotADirectoryError`" + +#: ../Doc/c-api/exceptions.rst:882 +msgid ":c:data:`PyExc_NotImplementedError`" +msgstr ":c:data:`PyExc_NotImplementedError`" + +#: ../Doc/c-api/exceptions.rst:882 +msgid ":exc:`NotImplementedError`" +msgstr ":exc:`NotImplementedError`" + +#: ../Doc/c-api/exceptions.rst:884 +msgid ":c:data:`PyExc_OSError`" +msgstr ":c:data:`PyExc_OSError`" + +#: ../Doc/c-api/exceptions.rst:884 +msgid ":exc:`OSError`" +msgstr ":exc:`OSError`" + +#: ../Doc/c-api/exceptions.rst:886 +msgid ":c:data:`PyExc_OverflowError`" +msgstr ":c:data:`PyExc_OverflowError`" + +#: ../Doc/c-api/exceptions.rst:886 +msgid ":exc:`OverflowError`" +msgstr ":exc:`OverflowError`" + +#: ../Doc/c-api/exceptions.rst:888 +msgid ":c:data:`PyExc_PermissionError`" +msgstr ":c:data:`PyExc_PermissionError`" + +#: ../Doc/c-api/exceptions.rst:888 +msgid ":exc:`PermissionError`" +msgstr ":exc:`PermissionError`" + +#: ../Doc/c-api/exceptions.rst:890 +msgid ":c:data:`PyExc_ProcessLookupError`" +msgstr ":c:data:`PyExc_ProcessLookupError`" + +#: ../Doc/c-api/exceptions.rst:890 +msgid ":exc:`ProcessLookupError`" +msgstr ":exc:`ProcessLookupError`" + +#: ../Doc/c-api/exceptions.rst:892 +msgid ":c:data:`PyExc_RecursionError`" +msgstr ":c:data:`PyExc_ReferenceError`" + +#: ../Doc/c-api/exceptions.rst:892 +msgid ":exc:`RecursionError`" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:894 +msgid ":c:data:`PyExc_ReferenceError`" +msgstr ":c:data:`PyExc_ReferenceError`" + +#: ../Doc/c-api/exceptions.rst:894 +msgid ":exc:`ReferenceError`" +msgstr ":exc:`ReferenceError`" + +#: ../Doc/c-api/exceptions.rst:894 +msgid "\\(2)" +msgstr "\\(2)" + +#: ../Doc/c-api/exceptions.rst:896 +msgid ":c:data:`PyExc_RuntimeError`" +msgstr ":c:data:`PyExc_RuntimeError`" + +#: ../Doc/c-api/exceptions.rst:896 +msgid ":exc:`RuntimeError`" +msgstr ":exc:`RuntimeError`" + +#: ../Doc/c-api/exceptions.rst:898 +msgid ":c:data:`PyExc_StopAsyncIteration`" +msgstr ":c:data:`PyExc_StopAsyncIteration`" + +#: ../Doc/c-api/exceptions.rst:898 +msgid ":exc:`StopAsyncIteration`" +msgstr ":exc:`StopAsyncIteration`" + +#: ../Doc/c-api/exceptions.rst:900 +msgid ":c:data:`PyExc_StopIteration`" +msgstr ":c:data:`PyExc_StopIteration`" + +#: ../Doc/c-api/exceptions.rst:900 +msgid ":exc:`StopIteration`" +msgstr ":exc:`StopIteration`" + +#: ../Doc/c-api/exceptions.rst:902 +msgid ":c:data:`PyExc_SyntaxError`" +msgstr ":c:data:`PyExc_SyntaxError`" + +#: ../Doc/c-api/exceptions.rst:902 +msgid ":exc:`SyntaxError`" +msgstr ":exc:`SyntaxError`" + +#: ../Doc/c-api/exceptions.rst:904 +msgid ":c:data:`PyExc_SystemError`" +msgstr ":c:data:`PyExc_SystemError`" + +#: ../Doc/c-api/exceptions.rst:904 +msgid ":exc:`SystemError`" +msgstr ":exc:`SystemError`" + +#: ../Doc/c-api/exceptions.rst:906 +msgid ":c:data:`PyExc_SystemExit`" +msgstr ":c:data:`PyExc_SystemExit`" + +#: ../Doc/c-api/exceptions.rst:906 +msgid ":exc:`SystemExit`" +msgstr ":exc:`SystemExit`" + +#: ../Doc/c-api/exceptions.rst:908 +msgid ":c:data:`PyExc_TabError`" +msgstr ":c:data:`PyExc_TabError`" + +#: ../Doc/c-api/exceptions.rst:908 +msgid ":exc:`TabError`" +msgstr ":exc:`TabError`" + +#: ../Doc/c-api/exceptions.rst:910 +msgid ":c:data:`PyExc_TimeoutError`" +msgstr ":c:data:`PyExc_ImportError`" + +#: ../Doc/c-api/exceptions.rst:910 +msgid ":exc:`TimeoutError`" +msgstr ":exc:`TimeoutError`" + +#: ../Doc/c-api/exceptions.rst:912 +msgid ":c:data:`PyExc_TypeError`" +msgstr ":c:data:`PyExc_TypeError`" + +#: ../Doc/c-api/exceptions.rst:912 +msgid ":exc:`TypeError`" +msgstr ":exc:`TypeError`" + +#: ../Doc/c-api/exceptions.rst:914 +msgid ":c:data:`PyExc_UnboundLocalError`" +msgstr ":c:data:`PyExc_UnboundLocalError`" + +#: ../Doc/c-api/exceptions.rst:914 +msgid ":exc:`UnboundLocalError`" +msgstr ":exc:`UnboundLocalError`" + +#: ../Doc/c-api/exceptions.rst:916 +msgid ":c:data:`PyExc_UnicodeDecodeError`" +msgstr ":c:data:`PyExc_UnicodeDecodeError`" + +#: ../Doc/c-api/exceptions.rst:916 +msgid ":exc:`UnicodeDecodeError`" +msgstr ":exc:`UnicodeDecodeError`" + +#: ../Doc/c-api/exceptions.rst:918 +msgid ":c:data:`PyExc_UnicodeEncodeError`" +msgstr ":c:data:`PyExc_UnicodeEncodeError`" + +#: ../Doc/c-api/exceptions.rst:918 +msgid ":exc:`UnicodeEncodeError`" +msgstr ":exc:`UnicodeEncodeError`" + +#: ../Doc/c-api/exceptions.rst:920 +msgid ":c:data:`PyExc_UnicodeError`" +msgstr ":c:data:`PyExc_UnicodeError`" + +#: ../Doc/c-api/exceptions.rst:920 +msgid ":exc:`UnicodeError`" +msgstr ":exc:`UnicodeError`" + +#: ../Doc/c-api/exceptions.rst:922 +msgid ":c:data:`PyExc_UnicodeTranslateError`" +msgstr ":c:data:`PyExc_UnicodeTranslateError`" + +#: ../Doc/c-api/exceptions.rst:922 +msgid ":exc:`UnicodeTranslateError`" +msgstr ":exc:`UnicodeTranslateError`" + +#: ../Doc/c-api/exceptions.rst:924 +msgid ":c:data:`PyExc_ValueError`" +msgstr ":c:data:`PyExc_ValueError`" + +#: ../Doc/c-api/exceptions.rst:924 +msgid ":exc:`ValueError`" +msgstr ":exc:`ValueError`" + +#: ../Doc/c-api/exceptions.rst:926 +msgid ":c:data:`PyExc_ZeroDivisionError`" +msgstr ":c:data:`PyExc_ZeroDivisionError`" + +#: ../Doc/c-api/exceptions.rst:926 +msgid ":exc:`ZeroDivisionError`" +msgstr ":exc:`ZeroDivisionError`" + +#: ../Doc/c-api/exceptions.rst:929 +msgid "" +":c:data:`PyExc_BlockingIOError`, :c:data:`PyExc_BrokenPipeError`, :c:data:" +"`PyExc_ChildProcessError`, :c:data:`PyExc_ConnectionError`, :c:data:" +"`PyExc_ConnectionAbortedError`, :c:data:`PyExc_ConnectionRefusedError`, :c:" +"data:`PyExc_ConnectionResetError`, :c:data:`PyExc_FileExistsError`, :c:data:" +"`PyExc_FileNotFoundError`, :c:data:`PyExc_InterruptedError`, :c:data:" +"`PyExc_IsADirectoryError`, :c:data:`PyExc_NotADirectoryError`, :c:data:" +"`PyExc_PermissionError`, :c:data:`PyExc_ProcessLookupError` and :c:data:" +"`PyExc_TimeoutError` were introduced following :pep:`3151`." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:939 +msgid ":c:data:`PyExc_StopAsyncIteration` and :c:data:`PyExc_RecursionError`." +msgstr ":c:data:`PyExc_StopAsyncIteration` et :c:data:`PyExc_RecursionError`." + +#: ../Doc/c-api/exceptions.rst:942 +msgid ":c:data:`PyExc_ModuleNotFoundError`." +msgstr ":c:data:`PyExc_ModuleNotFoundError`." + +#: ../Doc/c-api/exceptions.rst:945 +msgid "These are compatibility aliases to :c:data:`PyExc_OSError`:" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:955 +msgid ":c:data:`PyExc_EnvironmentError`" +msgstr ":c:data:`PyExc_EnvironmentError`" + +#: ../Doc/c-api/exceptions.rst:957 +msgid ":c:data:`PyExc_IOError`" +msgstr ":c:data:`PyExc_IOError`" + +#: ../Doc/c-api/exceptions.rst:959 +msgid ":c:data:`PyExc_WindowsError`" +msgstr ":c:data:`PyExc_WindowsError`" + +#: ../Doc/c-api/exceptions.rst:959 +msgid "\\(3)" +msgstr "\\(3)" + +#: ../Doc/c-api/exceptions.rst:962 +msgid "These aliases used to be separate exception types." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:965 ../Doc/c-api/exceptions.rst:1029 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/c-api/exceptions.rst:968 +msgid "This is a base class for other standard exceptions." +msgstr "C'est la classe de base pour les autres exceptions standards." + +#: ../Doc/c-api/exceptions.rst:971 +msgid "This is the same as :exc:`weakref.ReferenceError`." +msgstr "Identique à :exc:`weakref.ReferenceError`." + +#: ../Doc/c-api/exceptions.rst:974 +msgid "" +"Only defined on Windows; protect code that uses this by testing that the " +"preprocessor macro ``MS_WINDOWS`` is defined." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:980 +msgid "Standard Warning Categories" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:982 +msgid "" +"All standard Python warning categories are available as global variables " +"whose names are ``PyExc_`` followed by the Python exception name. These have " +"the type :c:type:`PyObject\\*`; they are all class objects. For " +"completeness, here are all the variables:" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:1003 +msgid ":c:data:`PyExc_Warning`" +msgstr ":c:data:`PyExc_Warning`" + +#: ../Doc/c-api/exceptions.rst:1003 +msgid ":exc:`Warning`" +msgstr ":exc:`Warning`" + +#: ../Doc/c-api/exceptions.rst:1005 +msgid ":c:data:`PyExc_BytesWarning`" +msgstr ":c:data:`PyExc_BytesWarning`" + +#: ../Doc/c-api/exceptions.rst:1005 +msgid ":exc:`BytesWarning`" +msgstr ":exc:`BytesWarning`" + +#: ../Doc/c-api/exceptions.rst:1007 +msgid ":c:data:`PyExc_DeprecationWarning`" +msgstr ":c:data:`PyExc_DeprecationWarning`" + +#: ../Doc/c-api/exceptions.rst:1007 +msgid ":exc:`DeprecationWarning`" +msgstr ":exc:`DeprecationWarning`" + +#: ../Doc/c-api/exceptions.rst:1009 +msgid ":c:data:`PyExc_FutureWarning`" +msgstr ":c:data:`PyExc_FutureWarning`" + +#: ../Doc/c-api/exceptions.rst:1009 +msgid ":exc:`FutureWarning`" +msgstr ":exc:`FutureWarning`" + +#: ../Doc/c-api/exceptions.rst:1011 +msgid ":c:data:`PyExc_ImportWarning`" +msgstr ":c:data:`PyExc_ImportWarning`" + +#: ../Doc/c-api/exceptions.rst:1011 +msgid ":exc:`ImportWarning`" +msgstr ":exc:`ImportWarning`" + +#: ../Doc/c-api/exceptions.rst:1013 +msgid ":c:data:`PyExc_PendingDeprecationWarning`" +msgstr ":c:data:`PyExc_PendingDeprecationWarning`" + +#: ../Doc/c-api/exceptions.rst:1013 +msgid ":exc:`PendingDeprecationWarning`" +msgstr ":exc:`PendingDeprecationWarning`" + +#: ../Doc/c-api/exceptions.rst:1015 +msgid ":c:data:`PyExc_ResourceWarning`" +msgstr ":c:data:`PyExc_ResourceWarning`" + +#: ../Doc/c-api/exceptions.rst:1015 +msgid ":exc:`ResourceWarning`" +msgstr ":exc:`ResourceWarning`" + +#: ../Doc/c-api/exceptions.rst:1017 +msgid ":c:data:`PyExc_RuntimeWarning`" +msgstr ":c:data:`PyExc_RuntimeWarning`" + +#: ../Doc/c-api/exceptions.rst:1017 +msgid ":exc:`RuntimeWarning`" +msgstr ":exc:`RuntimeWarning`" + +#: ../Doc/c-api/exceptions.rst:1019 +msgid ":c:data:`PyExc_SyntaxWarning`" +msgstr ":c:data:`PyExc_SyntaxWarning`" + +#: ../Doc/c-api/exceptions.rst:1019 +msgid ":exc:`SyntaxWarning`" +msgstr ":exc:`SyntaxWarning`" + +#: ../Doc/c-api/exceptions.rst:1021 +msgid ":c:data:`PyExc_UnicodeWarning`" +msgstr ":c:data:`PyExc_UnicodeWarning`" + +#: ../Doc/c-api/exceptions.rst:1021 +msgid ":exc:`UnicodeWarning`" +msgstr ":exc:`UnicodeWarning`" + +#: ../Doc/c-api/exceptions.rst:1023 +msgid ":c:data:`PyExc_UserWarning`" +msgstr ":c:data:`PyExc_UserWarning`" + +#: ../Doc/c-api/exceptions.rst:1023 +msgid ":exc:`UserWarning`" +msgstr ":exc:`UserWarning`" + +#: ../Doc/c-api/exceptions.rst:1026 +msgid ":c:data:`PyExc_ResourceWarning`." +msgstr ":c:data:`PyExc_ResourceWarning`." + +#: ../Doc/c-api/exceptions.rst:1032 +msgid "This is a base class for other standard warning categories." +msgstr "C'est la classe de base pour les autres catégories de *warning*." diff --git a/c-api/file.po b/c-api/file.po new file mode 100644 index 000000000..0a223af60 --- /dev/null +++ b/c-api/file.po @@ -0,0 +1,132 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-10-18 09:48+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/c-api/file.rst:6 +msgid "File Objects" +msgstr "Objets fichiers" + +#: ../Doc/c-api/file.rst:10 +msgid "" +"These APIs are a minimal emulation of the Python 2 C API for built-in file " +"objects, which used to rely on the buffered I/O (:c:type:`FILE\\*`) support " +"from the C standard library. In Python 3, files and streams use the new :" +"mod:`io` module, which defines several layers over the low-level unbuffered " +"I/O of the operating system. The functions described below are convenience " +"C wrappers over these new APIs, and meant mostly for internal error " +"reporting in the interpreter; third-party code is advised to access the :mod:" +"`io` APIs instead." +msgstr "" +"Ces API sont une émulation minimale de l'API C Python 2 pour les objets " +"fichier natifs, qui reposaient sur la gestion des entrées-sorties avec " +"tampon (:c:type:`FILE\\*`) de la bibliothèque standard C. En Python 3, les " +"fichiers et les flux utilisent le nouveau module :mod:`io`, qui définit " +"plusieurs couches au dessus des entrées/sorties bas niveau sans tampon du " +"système d'exploitation. Les fonctions définies ci-dessous, écrites en C, " +"encapsulent ces nouvelles APi pour les rendre plus faciles d'utilisation et " +"sont majoritairement pensées pour signaler des erreurs internes dans " +"l'interpréteur ; il est conseillé au code tiers d'utiliser les API de :mod:" +"`io` à la place." + +#: ../Doc/c-api/file.rst:22 +msgid "" +"Create a Python file object from the file descriptor of an already opened " +"file *fd*. The arguments *name*, *encoding*, *errors* and *newline* can be " +"*NULL* to use the defaults; *buffering* can be *-1* to use the default. " +"*name* is ignored and kept for backward compatibility. Return *NULL* on " +"failure. For a more comprehensive description of the arguments, please refer " +"to the :func:`io.open` function documentation." +msgstr "" +"Crée un objet fichier Python à partir du descripteur d'un fichier déjà " +"ouvert *fd*. Les arguments *name*, *encoding*, *errors* et *newline* peuvent " +"être *NULL* pour utiliser ceux par défaut ; *buffering* peut être *-1* pour " +"utiliser celui par défaut ; *name* est ignoré et gardé pour la rétro-" +"compatibilité. Renvoie *NULL* en cas d'échec. Pour une description plus " +"détaillée des arguments, merci de vous référer à la documentation de " +"fonction :func:`io.open`." + +#: ../Doc/c-api/file.rst:31 +msgid "" +"Since Python streams have their own buffering layer, mixing them with OS-" +"level file descriptors can produce various issues (such as unexpected " +"ordering of data)." +msgstr "" +"Étant donné que les flux de données Python possèdent leur propre couche de " +"tampon, les mélanger avec des descripteurs de fichiers du niveau du système " +"d'exploitation peut produire des erreurs (comme par exemple un ordre des " +"données inattendu)." + +#: ../Doc/c-api/file.rst:35 +msgid "Ignore *name* attribute." +msgstr "ignore l'attribut *name*" + +#: ../Doc/c-api/file.rst:41 +msgid "" +"Return the file descriptor associated with *p* as an :c:type:`int`. If the " +"object is an integer, its value is returned. If not, the object's :meth:" +"`~io.IOBase.fileno` method is called if it exists; the method must return an " +"integer, which is returned as the file descriptor value. Sets an exception " +"and returns ``-1`` on failure." +msgstr "" +"Renvoie un descripteur de fichier associé avec *p* comme un :c:type:`int`. " +"Si l'objet est un entier, sa valeur est renvoyée. Sinon, la méthode :meth:" +"`~io.IOBase.fileno` de l'objet est appelée si elle existe; la méthode doit " +"renvoyer un entier, qui est renvoyé en tant que valeur du descripteur. " +"Affecte une exception et renvoie ``-1`` lors d'un échec." + +#: ../Doc/c-api/file.rst:52 +msgid "" +"Equivalent to ``p.readline([n])``, this function reads one line from the " +"object *p*. *p* may be a file object or any object with a :meth:`~io.IOBase." +"readline` method. If *n* is ``0``, exactly one line is read, regardless of " +"the length of the line. If *n* is greater than ``0``, no more than *n* " +"bytes will be read from the file; a partial line can be returned. In both " +"cases, an empty string is returned if the end of the file is reached " +"immediately. If *n* is less than ``0``, however, one line is read " +"regardless of length, but :exc:`EOFError` is raised if the end of the file " +"is reached immediately." +msgstr "" +"Cette fonction, équivalente à ``p.readline([n])``, lit une ligne de l'objet " +"*p*. *p* peut être un objet fichier ou n'importe quel objet qui possède une " +"méthode :meth:`~io.IOBase.readline`. Si *n* vaut ``0``, une seule ligne est " +"lue, indépendamment de la taille de la ligne. Si *n* est plus grand que " +"``0``, un maximum de *n* octets seront lus en provenance du fichier ; une " +"ligne partielle peut être renvoyée. Dans les deux cas, une chaîne de " +"caractères vide est renvoyée si la fin du fichier est atteinte " +"immédiatement. Cependant, si *n* est plus petit que ``0``, une ligne est lue " +"indépendamment de sa taille, mais :exc:`EOFError` est levée si la fin du " +"fichier est atteinte immédiatement." + +#: ../Doc/c-api/file.rst:67 +msgid "" +"Write object *obj* to file object *p*. The only supported flag for *flags* " +"is :const:`Py_PRINT_RAW`; if given, the :func:`str` of the object is written " +"instead of the :func:`repr`. Return ``0`` on success or ``-1`` on failure; " +"the appropriate exception will be set." +msgstr "" +"Écrit l'objet *obj* dans l'objet fichier *p*. La seule option gérée pour " +"*flags* est :const:`Py_PRINT_RAW` ; si défini, l'attribut :func:`str` de " +"l'objet est écrit à la place de l'attribut :func:`repr`. Retourne ``0`` en " +"cas de succès ou ``-1`` en cas échec ; l'exception appropriée sera levée." + +#: ../Doc/c-api/file.rst:75 +msgid "" +"Write string *s* to file object *p*. Return ``0`` on success or ``-1`` on " +"failure; the appropriate exception will be set." +msgstr "" +"Écrit la chaîne de caractères *s* dans l'objet fichier *p*. Retourne ``0`` " +"en cas de succès ou ``-1`` en cas d'échec ; l'exception appropriée sera mise " +"en place." diff --git a/c-api/float.po b/c-api/float.po new file mode 100644 index 000000000..8710d59ae --- /dev/null +++ b/c-api/float.po @@ -0,0 +1,121 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-01-14 15:30+0100\n" +"Last-Translator: ANTOINE FOURES \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/float.rst:6 +msgid "Floating Point Objects" +msgstr "Objets représentant les nombres à virgule flottante" + +#: ../Doc/c-api/float.rst:13 +msgid "" +"This subtype of :c:type:`PyObject` represents a Python floating point object." +msgstr "" +"Ce sous-type de l'objet :c:type:`PyObject` représente un nombre à virgule " +"flottante en Python." + +#: ../Doc/c-api/float.rst:18 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python floating point " +"type. This is the same object as :class:`float` in the Python layer." +msgstr "" +"Cette instance de l'objet :c:type:`PyTypeObject` représente le type nombre à " +"virgule flottante en Python. C'est le même objet que la classe :class:" +"`float` de la couche Python." + +#: ../Doc/c-api/float.rst:24 +msgid "" +"Return true if its argument is a :c:type:`PyFloatObject` or a subtype of :c:" +"type:`PyFloatObject`." +msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyFloatObject` ou un sous-" +"type de :c:type:`PyFloatObject`." + +#: ../Doc/c-api/float.rst:30 +msgid "" +"Return true if its argument is a :c:type:`PyFloatObject`, but not a subtype " +"of :c:type:`PyFloatObject`." +msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyFloatObject`, mais pas un " +"sous-type de :c:type:`PyFloatObject`." + +#: ../Doc/c-api/float.rst:36 +msgid "" +"Create a :c:type:`PyFloatObject` object based on the string value in *str*, " +"or *NULL* on failure." +msgstr "" +"Crée un objet :c:type:`PyFloatObject` à partir de la valeur de la chaîne de " +"caractères *str*, ou *NULL* en cas d'échec." + +#: ../Doc/c-api/float.rst:42 +msgid "Create a :c:type:`PyFloatObject` object from *v*, or *NULL* on failure." +msgstr "" +"Crée un objet :c:type:`PyFloatObject` à partir de *v*, ou *NULL* en cas " +"d'échec." + +#: ../Doc/c-api/float.rst:47 +msgid "" +"Return a C :c:type:`double` representation of the contents of *pyfloat*. If " +"*pyfloat* is not a Python floating point object but has a :meth:`__float__` " +"method, this method will first be called to convert *pyfloat* into a float. " +"This method returns ``-1.0`` upon failure, so one should call :c:func:" +"`PyErr_Occurred` to check for errors." +msgstr "" +"Renvoie une représentation du contenu d'un *pyfloat* sous la forme d'un :c:" +"type:`double` en C. Si le *pyfloat* n'est pas un nombre à virgule flottante " +"mais contient une méthode :meth:`__float__`, elle est d'abord appelée pour " +"convertir le *pyfloat* en nombre à virgule flottante. Cette méthode renvoie " +"``-1.0`` en cas d'échec, il faut appeler :c:func:`PyErr_Occurred` pour " +"vérifier les erreurs." + +#: ../Doc/c-api/float.rst:56 +msgid "" +"Return a C :c:type:`double` representation of the contents of *pyfloat*, but " +"without error checking." +msgstr "" +"Renvoie une représentation du contenu d'un *pyfloat* sous la forme d'un :c:" +"type:`double` en C, sans vérifier les erreurs." + +#: ../Doc/c-api/float.rst:62 +msgid "" +"Return a structseq instance which contains information about the precision, " +"minimum and maximum values of a float. It's a thin wrapper around the header " +"file :file:`float.h`." +msgstr "" +"Renvoie une instance *structseq* qui contient les informations sur la " +"précision et les valeurs minimales et maximales pour un nombre à virgule " +"flottante. C'est une enveloppe autour du fichier d'entête :file:`float.h`." + +#: ../Doc/c-api/float.rst:69 +msgid "" +"Return the maximum representable finite float *DBL_MAX* as C :c:type:" +"`double`." +msgstr "" +"Renvoie le nombre à virgule flottante fini maximal *DBL_MAX* sous la forme " +"d'un :c:type:`double` en C." + +#: ../Doc/c-api/float.rst:74 +msgid "" +"Return the minimum normalized positive float *DBL_MIN* as C :c:type:`double`." +msgstr "" +"Renvoie le nombre à virgule flottante minimal normalisé *DBL_MIN* sous la " +"forme :c:type:`double` en C." + +#: ../Doc/c-api/float.rst:78 +msgid "" +"Clear the float free list. Return the number of items that could not be " +"freed." +msgstr "" +"Libère la mémoire de la *free list* des nombres à virgule flottante. Renvoie " +"le nombre d'éléments qui n'ont pas pu être libérés." diff --git a/c-api/function.po b/c-api/function.po new file mode 100644 index 000000000..9185b0b57 --- /dev/null +++ b/c-api/function.po @@ -0,0 +1,119 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/function.rst:6 +msgid "Function Objects" +msgstr "Objets fonctions" + +#: ../Doc/c-api/function.rst:10 +msgid "There are a few functions specific to Python functions." +msgstr "" + +#: ../Doc/c-api/function.rst:15 +msgid "The C structure used for functions." +msgstr "" + +#: ../Doc/c-api/function.rst:22 +msgid "" +"This is an instance of :c:type:`PyTypeObject` and represents the Python " +"function type. It is exposed to Python programmers as ``types." +"FunctionType``." +msgstr "" + +#: ../Doc/c-api/function.rst:28 +msgid "" +"Return true if *o* is a function object (has type :c:data:" +"`PyFunction_Type`). The parameter must not be *NULL*." +msgstr "" + +#: ../Doc/c-api/function.rst:34 +msgid "" +"Return a new function object associated with the code object *code*. " +"*globals* must be a dictionary with the global variables accessible to the " +"function." +msgstr "" + +#: ../Doc/c-api/function.rst:37 +msgid "" +"The function's docstring and name are retrieved from the code object. " +"*__module__* is retrieved from *globals*. The argument defaults, annotations " +"and closure are set to *NULL*. *__qualname__* is set to the same value as " +"the function's name." +msgstr "" + +#: ../Doc/c-api/function.rst:44 +msgid "" +"As :c:func:`PyFunction_New`, but also allows setting the function object's " +"``__qualname__`` attribute. *qualname* should be a unicode object or NULL; " +"if NULL, the ``__qualname__`` attribute is set to the same value as its " +"``__name__`` attribute." +msgstr "" + +#: ../Doc/c-api/function.rst:54 +msgid "Return the code object associated with the function object *op*." +msgstr "" + +#: ../Doc/c-api/function.rst:59 +msgid "Return the globals dictionary associated with the function object *op*." +msgstr "" + +#: ../Doc/c-api/function.rst:64 +msgid "" +"Return the *__module__* attribute of the function object *op*. This is " +"normally a string containing the module name, but can be set to any other " +"object by Python code." +msgstr "" + +#: ../Doc/c-api/function.rst:71 +msgid "" +"Return the argument default values of the function object *op*. This can be " +"a tuple of arguments or *NULL*." +msgstr "" + +#: ../Doc/c-api/function.rst:77 +msgid "" +"Set the argument default values for the function object *op*. *defaults* " +"must be *Py_None* or a tuple." +msgstr "" + +#: ../Doc/c-api/function.rst:80 ../Doc/c-api/function.rst:94 +#: ../Doc/c-api/function.rst:108 +msgid "Raises :exc:`SystemError` and returns ``-1`` on failure." +msgstr "" + +#: ../Doc/c-api/function.rst:85 +msgid "" +"Return the closure associated with the function object *op*. This can be " +"*NULL* or a tuple of cell objects." +msgstr "" + +#: ../Doc/c-api/function.rst:91 +msgid "" +"Set the closure associated with the function object *op*. *closure* must be " +"*Py_None* or a tuple of cell objects." +msgstr "" + +#: ../Doc/c-api/function.rst:99 +msgid "" +"Return the annotations of the function object *op*. This can be a mutable " +"dictionary or *NULL*." +msgstr "" + +#: ../Doc/c-api/function.rst:105 +msgid "" +"Set the annotations for the function object *op*. *annotations* must be a " +"dictionary or *Py_None*." +msgstr "" diff --git a/c-api/gcsupport.po b/c-api/gcsupport.po new file mode 100644 index 000000000..9ff106e9e --- /dev/null +++ b/c-api/gcsupport.po @@ -0,0 +1,201 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/gcsupport.rst:6 +msgid "Supporting Cyclic Garbage Collection" +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:8 +msgid "" +"Python's support for detecting and collecting garbage which involves " +"circular references requires support from object types which are \"containers" +"\" for other objects which may also be containers. Types which do not store " +"references to other objects, or which only store references to atomic types " +"(such as numbers or strings), do not need to provide any explicit support " +"for garbage collection." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:15 +msgid "" +"To create a container type, the :c:member:`~PyTypeObject.tp_flags` field of " +"the type object must include the :const:`Py_TPFLAGS_HAVE_GC` and provide an " +"implementation of the :c:member:`~PyTypeObject.tp_traverse` handler. If " +"instances of the type are mutable, a :c:member:`~PyTypeObject.tp_clear` " +"implementation must also be provided." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:24 +msgid "" +"Objects with a type with this flag set must conform with the rules " +"documented here. For convenience these objects will be referred to as " +"container objects." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:28 +msgid "Constructors for container types must conform to two rules:" +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:30 +msgid "" +"The memory for the object must be allocated using :c:func:`PyObject_GC_New` " +"or :c:func:`PyObject_GC_NewVar`." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:33 +msgid "" +"Once all the fields which may contain references to other containers are " +"initialized, it must call :c:func:`PyObject_GC_Track`." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:39 +msgid "" +"Analogous to :c:func:`PyObject_New` but for container objects with the :" +"const:`Py_TPFLAGS_HAVE_GC` flag set." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:45 +msgid "" +"Analogous to :c:func:`PyObject_NewVar` but for container objects with the :" +"const:`Py_TPFLAGS_HAVE_GC` flag set." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:51 +msgid "" +"Resize an object allocated by :c:func:`PyObject_NewVar`. Returns the " +"resized object or *NULL* on failure. *op* must not be tracked by the " +"collector yet." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:57 +msgid "" +"Adds the object *op* to the set of container objects tracked by the " +"collector. The collector can run at unexpected times so objects must be " +"valid while being tracked. This should be called once all the fields " +"followed by the :c:member:`~PyTypeObject.tp_traverse` handler become valid, " +"usually near the end of the constructor." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:66 +msgid "" +"A macro version of :c:func:`PyObject_GC_Track`. It should not be used for " +"extension modules." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:69 ../Doc/c-api/gcsupport.rst:101 +msgid "This macro is removed from Python 3.8." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:72 +msgid "" +"Similarly, the deallocator for the object must conform to a similar pair of " +"rules:" +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:75 +msgid "" +"Before fields which refer to other containers are invalidated, :c:func:" +"`PyObject_GC_UnTrack` must be called." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:78 +msgid "" +"The object's memory must be deallocated using :c:func:`PyObject_GC_Del`." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:83 +msgid "" +"Releases memory allocated to an object using :c:func:`PyObject_GC_New` or :c:" +"func:`PyObject_GC_NewVar`." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:89 +msgid "" +"Remove the object *op* from the set of container objects tracked by the " +"collector. Note that :c:func:`PyObject_GC_Track` can be called again on " +"this object to add it back to the set of tracked objects. The deallocator (:" +"c:member:`~PyTypeObject.tp_dealloc` handler) should call this for the object " +"before any of the fields used by the :c:member:`~PyTypeObject.tp_traverse` " +"handler become invalid." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:98 +msgid "" +"A macro version of :c:func:`PyObject_GC_UnTrack`. It should not be used for " +"extension modules." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:104 +msgid "" +"The :c:member:`~PyTypeObject.tp_traverse` handler accepts a function " +"parameter of this type:" +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:109 +msgid "" +"Type of the visitor function passed to the :c:member:`~PyTypeObject." +"tp_traverse` handler. The function should be called with an object to " +"traverse as *object* and the third parameter to the :c:member:`~PyTypeObject." +"tp_traverse` handler as *arg*. The Python core uses several visitor " +"functions to implement cyclic garbage detection; it's not expected that " +"users will need to write their own visitor functions." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:116 +msgid "" +"The :c:member:`~PyTypeObject.tp_traverse` handler must have the following " +"type:" +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:121 +msgid "" +"Traversal function for a container object. Implementations must call the " +"*visit* function for each object directly contained by *self*, with the " +"parameters to *visit* being the contained object and the *arg* value passed " +"to the handler. The *visit* function must not be called with a *NULL* " +"object argument. If *visit* returns a non-zero value that value should be " +"returned immediately." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:128 +msgid "" +"To simplify writing :c:member:`~PyTypeObject.tp_traverse` handlers, a :c:" +"func:`Py_VISIT` macro is provided. In order to use this macro, the :c:" +"member:`~PyTypeObject.tp_traverse` implementation must name its arguments " +"exactly *visit* and *arg*:" +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:135 +msgid "" +"If *o* is not *NULL*, call the *visit* callback, with arguments *o* and " +"*arg*. If *visit* returns a non-zero value, then return it. Using this " +"macro, :c:member:`~PyTypeObject.tp_traverse` handlers look like::" +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:148 +msgid "" +"The :c:member:`~PyTypeObject.tp_clear` handler must be of the :c:type:" +"`inquiry` type, or *NULL* if the object is immutable." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:154 +msgid "" +"Drop references that may have created reference cycles. Immutable objects " +"do not have to define this method since they can never directly create " +"reference cycles. Note that the object must still be valid after calling " +"this method (don't just call :c:func:`Py_DECREF` on a reference). The " +"collector will call this method if it detects that this object is involved " +"in a reference cycle." +msgstr "" diff --git a/c-api/gen.po b/c-api/gen.po new file mode 100644 index 000000000..10df7139c --- /dev/null +++ b/c-api/gen.po @@ -0,0 +1,74 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"PO-Revision-Date: 2018-10-04 12:24+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.4\n" + +#: ../Doc/c-api/gen.rst:6 +msgid "Generator Objects" +msgstr "Objets générateur" + +#: ../Doc/c-api/gen.rst:8 +msgid "" +"Generator objects are what Python uses to implement generator iterators. " +"They are normally created by iterating over a function that yields values, " +"rather than explicitly calling :c:func:`PyGen_New` or :c:func:" +"`PyGen_NewWithQualName`." +msgstr "" +"Python utilise des objets générateurs pour implémenter les itérations de " +"générateurs. Ils sont normalement crées en itérant sur une fonction donnant " +"des valeurs via ``yield``, au lieu d'appeler explicitement :c:func:" +"`PyGen_New` ou :c:func:`PyGen_NewWithQualName`." + +#: ../Doc/c-api/gen.rst:15 +msgid "The C structure used for generator objects." +msgstr "La structure C utilisée pour les objets générateurs." + +#: ../Doc/c-api/gen.rst:20 +msgid "The type object corresponding to generator objects." +msgstr "Le type objet correspondant aux objets générateurs." + +#: ../Doc/c-api/gen.rst:25 +msgid "Return true if *ob* is a generator object; *ob* must not be *NULL*." +msgstr "" +"Renvoie ``True`` si *ob* est un objet générateur. *ob* ne doit pas être " +"*NULL*." + +#: ../Doc/c-api/gen.rst:30 +msgid "Return true if *ob*'s type is *PyGen_Type*; *ob* must not be *NULL*." +msgstr "" +"Renvoie ``True`` si le type de *ob* est *PyGen_Type*. *ob* ne doit pas être " +"*NULL*." + +#: ../Doc/c-api/gen.rst:35 +msgid "" +"Create and return a new generator object based on the *frame* object. A " +"reference to *frame* is stolen by this function. The argument must not be " +"*NULL*." +msgstr "" +"Crée et renvoie un nouvel objet générateur basé sur l'objet *frame*. Une " +"référence à *frame* est volée par cette fonction. L'argument ne doit pas " +"être *NULL*." + +#: ../Doc/c-api/gen.rst:41 +msgid "" +"Create and return a new generator object based on the *frame* object, with " +"``__name__`` and ``__qualname__`` set to *name* and *qualname*. A reference " +"to *frame* is stolen by this function. The *frame* argument must not be " +"*NULL*." +msgstr "" +"Crée et renvoie un nouvel objet générateur basé sur l'objet *frame*, avec " +"``__name__`` et ``__qualname__`` valant *name* et *qualname*. Une référence " +"à *frame* est volée par cette fonction. L'argument *frame* ne doit pas être " +"*NULL*." diff --git a/c-api/import.po b/c-api/import.po new file mode 100644 index 000000000..a47f98a47 --- /dev/null +++ b/c-api/import.po @@ -0,0 +1,323 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/import.rst:6 +msgid "Importing Modules" +msgstr "Importer des modules" + +#: ../Doc/c-api/import.rst:16 +msgid "" +"This is a simplified interface to :c:func:`PyImport_ImportModuleEx` below, " +"leaving the *globals* and *locals* arguments set to *NULL* and *level* set " +"to 0. When the *name* argument contains a dot (when it specifies a " +"submodule of a package), the *fromlist* argument is set to the list " +"``['*']`` so that the return value is the named module rather than the top-" +"level package containing it as would otherwise be the case. (Unfortunately, " +"this has an additional side effect when *name* in fact specifies a " +"subpackage instead of a submodule: the submodules specified in the package's " +"``__all__`` variable are loaded.) Return a new reference to the imported " +"module, or *NULL* with an exception set on failure. A failing import of a " +"module doesn't leave the module in :data:`sys.modules`." +msgstr "" + +#: ../Doc/c-api/import.rst:28 ../Doc/c-api/import.rst:89 +msgid "This function always uses absolute imports." +msgstr "" + +#: ../Doc/c-api/import.rst:33 +msgid "This function is a deprecated alias of :c:func:`PyImport_ImportModule`." +msgstr "" + +#: ../Doc/c-api/import.rst:35 +msgid "" +"This function used to fail immediately when the import lock was held by " +"another thread. In Python 3.3 though, the locking scheme switched to per-" +"module locks for most purposes, so this function's special behaviour isn't " +"needed anymore." +msgstr "" + +#: ../Doc/c-api/import.rst:46 +msgid "" +"Import a module. This is best described by referring to the built-in Python " +"function :func:`__import__`." +msgstr "" + +#: ../Doc/c-api/import.rst:49 ../Doc/c-api/import.rst:65 +msgid "" +"The return value is a new reference to the imported module or top-level " +"package, or *NULL* with an exception set on failure. Like for :func:" +"`__import__`, the return value when a submodule of a package was requested " +"is normally the top-level package, unless a non-empty *fromlist* was given." +msgstr "" + +#: ../Doc/c-api/import.rst:55 +msgid "" +"Failing imports remove incomplete module objects, like with :c:func:" +"`PyImport_ImportModule`." +msgstr "" + +#: ../Doc/c-api/import.rst:61 +msgid "" +"Import a module. This is best described by referring to the built-in Python " +"function :func:`__import__`, as the standard :func:`__import__` function " +"calls this function directly." +msgstr "" + +#: ../Doc/c-api/import.rst:75 +msgid "" +"Similar to :c:func:`PyImport_ImportModuleLevelObject`, but the name is a " +"UTF-8 encoded string instead of a Unicode object." +msgstr "" + +#: ../Doc/c-api/import.rst:78 +msgid "Negative values for *level* are no longer accepted." +msgstr "" + +#: ../Doc/c-api/import.rst:83 +msgid "" +"This is a higher-level interface that calls the current \"import hook " +"function\" (with an explicit *level* of 0, meaning absolute import). It " +"invokes the :func:`__import__` function from the ``__builtins__`` of the " +"current globals. This means that the import is done using whatever import " +"hooks are installed in the current environment." +msgstr "" + +#: ../Doc/c-api/import.rst:94 +msgid "" +"Reload a module. Return a new reference to the reloaded module, or *NULL* " +"with an exception set on failure (the module still exists in this case)." +msgstr "" + +#: ../Doc/c-api/import.rst:100 +msgid "" +"Return the module object corresponding to a module name. The *name* " +"argument may be of the form ``package.module``. First check the modules " +"dictionary if there's one there, and if not, create a new one and insert it " +"in the modules dictionary. Return *NULL* with an exception set on failure." +msgstr "" + +#: ../Doc/c-api/import.rst:107 +msgid "" +"This function does not load or import the module; if the module wasn't " +"already loaded, you will get an empty module object. Use :c:func:" +"`PyImport_ImportModule` or one of its variants to import a module. Package " +"structures implied by a dotted name for *name* are not created if not " +"already present." +msgstr "" + +#: ../Doc/c-api/import.rst:117 +msgid "" +"Similar to :c:func:`PyImport_AddModuleObject`, but the name is a UTF-8 " +"encoded string instead of a Unicode object." +msgstr "" + +#: ../Doc/c-api/import.rst:125 +msgid "" +"Given a module name (possibly of the form ``package.module``) and a code " +"object read from a Python bytecode file or obtained from the built-in " +"function :func:`compile`, load the module. Return a new reference to the " +"module object, or *NULL* with an exception set if an error occurred. *name* " +"is removed from :attr:`sys.modules` in error cases, even if *name* was " +"already in :attr:`sys.modules` on entry to :c:func:" +"`PyImport_ExecCodeModule`. Leaving incompletely initialized modules in :" +"attr:`sys.modules` is dangerous, as imports of such modules have no way to " +"know that the module object is an unknown (and probably damaged with respect " +"to the module author's intents) state." +msgstr "" + +#: ../Doc/c-api/import.rst:135 +msgid "" +"The module's :attr:`__spec__` and :attr:`__loader__` will be set, if not set " +"already, with the appropriate values. The spec's loader will be set to the " +"module's ``__loader__`` (if set) and to an instance of :class:" +"`SourceFileLoader` otherwise." +msgstr "" + +#: ../Doc/c-api/import.rst:140 +msgid "" +"The module's :attr:`__file__` attribute will be set to the code object's :c:" +"member:`co_filename`. If applicable, :attr:`__cached__` will also be set." +msgstr "" + +#: ../Doc/c-api/import.rst:144 +msgid "" +"This function will reload the module if it was already imported. See :c:" +"func:`PyImport_ReloadModule` for the intended way to reload a module." +msgstr "" + +#: ../Doc/c-api/import.rst:147 +msgid "" +"If *name* points to a dotted name of the form ``package.module``, any " +"package structures not already created will still not be created." +msgstr "" + +#: ../Doc/c-api/import.rst:150 +msgid "" +"See also :c:func:`PyImport_ExecCodeModuleEx` and :c:func:" +"`PyImport_ExecCodeModuleWithPathnames`." +msgstr "" + +#: ../Doc/c-api/import.rst:156 +msgid "" +"Like :c:func:`PyImport_ExecCodeModule`, but the :attr:`__file__` attribute " +"of the module object is set to *pathname* if it is non-``NULL``." +msgstr "" + +#: ../Doc/c-api/import.rst:159 +msgid "See also :c:func:`PyImport_ExecCodeModuleWithPathnames`." +msgstr "" + +#: ../Doc/c-api/import.rst:164 +msgid "" +"Like :c:func:`PyImport_ExecCodeModuleEx`, but the :attr:`__cached__` " +"attribute of the module object is set to *cpathname* if it is non-``NULL``. " +"Of the three functions, this is the preferred one to use." +msgstr "" + +#: ../Doc/c-api/import.rst:173 +msgid "" +"Like :c:func:`PyImport_ExecCodeModuleObject`, but *name*, *pathname* and " +"*cpathname* are UTF-8 encoded strings. Attempts are also made to figure out " +"what the value for *pathname* should be from *cpathname* if the former is " +"set to ``NULL``." +msgstr "" + +#: ../Doc/c-api/import.rst:179 +msgid "" +"Uses :func:`imp.source_from_cache()` in calculating the source path if only " +"the bytecode path is provided." +msgstr "" + +#: ../Doc/c-api/import.rst:186 +msgid "" +"Return the magic number for Python bytecode files (a.k.a. :file:`.pyc` " +"file). The magic number should be present in the first four bytes of the " +"bytecode file, in little-endian byte order. Returns ``-1`` on error." +msgstr "" + +#: ../Doc/c-api/import.rst:190 +msgid "Return value of ``-1`` upon failure." +msgstr "" + +#: ../Doc/c-api/import.rst:196 +msgid "" +"Return the magic tag string for :pep:`3147` format Python bytecode file " +"names. Keep in mind that the value at ``sys.implementation.cache_tag`` is " +"authoritative and should be used instead of this function." +msgstr "" + +#: ../Doc/c-api/import.rst:204 +msgid "" +"Return the dictionary used for the module administration (a.k.a. ``sys." +"modules``). Note that this is a per-interpreter variable." +msgstr "" + +#: ../Doc/c-api/import.rst:209 +msgid "" +"Return the already imported module with the given name. If the module has " +"not been imported yet then returns NULL but does not set an error. Returns " +"NULL and sets an error if the lookup failed." +msgstr "" + +#: ../Doc/c-api/import.rst:217 +msgid "" +"Return a finder object for a :data:`sys.path`/:attr:`pkg.__path__` item " +"*path*, possibly by fetching it from the :data:`sys.path_importer_cache` " +"dict. If it wasn't yet cached, traverse :data:`sys.path_hooks` until a hook " +"is found that can handle the path item. Return ``None`` if no hook could; " +"this tells our caller that the :term:`path based finder` could not find a " +"finder for this path item. Cache the result in :data:`sys." +"path_importer_cache`. Return a new reference to the finder object." +msgstr "" + +#: ../Doc/c-api/import.rst:228 +msgid "Initialize the import mechanism. For internal use only." +msgstr "" + +#: ../Doc/c-api/import.rst:233 +msgid "Empty the module table. For internal use only." +msgstr "" + +#: ../Doc/c-api/import.rst:238 +msgid "Finalize the import mechanism. For internal use only." +msgstr "" + +#: ../Doc/c-api/import.rst:243 +msgid "" +"Load a frozen module named *name*. Return ``1`` for success, ``0`` if the " +"module is not found, and ``-1`` with an exception set if the initialization " +"failed. To access the imported module on a successful load, use :c:func:" +"`PyImport_ImportModule`. (Note the misnomer --- this function would reload " +"the module if it was already imported.)" +msgstr "" + +#: ../Doc/c-api/import.rst:251 +msgid "The ``__file__`` attribute is no longer set on the module." +msgstr "" + +#: ../Doc/c-api/import.rst:257 +msgid "" +"Similar to :c:func:`PyImport_ImportFrozenModuleObject`, but the name is a " +"UTF-8 encoded string instead of a Unicode object." +msgstr "" + +#: ../Doc/c-api/import.rst:265 +msgid "" +"This is the structure type definition for frozen module descriptors, as " +"generated by the :program:`freeze` utility (see :file:`Tools/freeze/` in the " +"Python source distribution). Its definition, found in :file:`Include/import." +"h`, is::" +msgstr "" + +#: ../Doc/c-api/import.rst:279 +msgid "" +"This pointer is initialized to point to an array of :c:type:`struct _frozen` " +"records, terminated by one whose members are all *NULL* or zero. When a " +"frozen module is imported, it is searched in this table. Third-party code " +"could play tricks with this to provide a dynamically created collection of " +"frozen modules." +msgstr "" + +#: ../Doc/c-api/import.rst:287 +msgid "" +"Add a single module to the existing table of built-in modules. This is a " +"convenience wrapper around :c:func:`PyImport_ExtendInittab`, returning " +"``-1`` if the table could not be extended. The new module can be imported " +"by the name *name*, and uses the function *initfunc* as the initialization " +"function called on the first attempted import. This should be called " +"before :c:func:`Py_Initialize`." +msgstr "" + +#: ../Doc/c-api/import.rst:297 +msgid "" +"Structure describing a single entry in the list of built-in modules. Each " +"of these structures gives the name and initialization function for a module " +"built into the interpreter. The name is an ASCII encoded string. Programs " +"which embed Python may use an array of these structures in conjunction with :" +"c:func:`PyImport_ExtendInittab` to provide additional built-in modules. The " +"structure is defined in :file:`Include/import.h` as::" +msgstr "" + +#: ../Doc/c-api/import.rst:312 +msgid "" +"Add a collection of modules to the table of built-in modules. The *newtab* " +"array must end with a sentinel entry which contains *NULL* for the :attr:" +"`name` field; failure to provide the sentinel value can result in a memory " +"fault. Returns ``0`` on success or ``-1`` if insufficient memory could be " +"allocated to extend the internal table. In the event of failure, no modules " +"are added to the internal table. This should be called before :c:func:" +"`Py_Initialize`." +msgstr "" diff --git a/c-api/index.po b/c-api/index.po new file mode 100644 index 000000000..bcabd4156 --- /dev/null +++ b/c-api/index.po @@ -0,0 +1,32 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-02-15 00:33+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/index.rst:5 +msgid "Python/C API Reference Manual" +msgstr "Manuel de référence de l'API Python/C" + +#: ../Doc/c-api/index.rst:7 +msgid "" +"This manual documents the API used by C and C++ programmers who want to " +"write extension modules or embed Python. It is a companion to :ref:" +"`extending-index`, which describes the general principles of extension " +"writing but does not document the API functions in detail." +msgstr "" +"C'est la documentation de l'API utilisée par les développeurs C et C++ " +"écrivant des modules d'extension ou intégrant Python. Elle va de pair avec :" +"ref:`extending-index`, qui décrit les principes généraux de l'écriture " +"d'extensions, mais ne rentre pas dans les détails de chaque fonction de " +"l'API." diff --git a/c-api/init.po b/c-api/init.po new file mode 100644 index 000000000..612174cc8 --- /dev/null +++ b/c-api/init.po @@ -0,0 +1,1860 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-11-29 18:22+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/init.rst:8 +msgid "Initialization, Finalization, and Threads" +msgstr "" + +#: ../Doc/c-api/init.rst:13 +msgid "Before Python Initialization" +msgstr "" + +#: ../Doc/c-api/init.rst:15 +msgid "" +"In an application embedding Python, the :c:func:`Py_Initialize` function " +"must be called before using any other Python/C API functions; with the " +"exception of a few functions and the :ref:`global configuration variables " +"`." +msgstr "" + +#: ../Doc/c-api/init.rst:20 +msgid "" +"The following functions can be safely called before Python is initialized:" +msgstr "" + +#: ../Doc/c-api/init.rst:22 +msgid "Configuration functions:" +msgstr "" + +#: ../Doc/c-api/init.rst:24 +msgid ":c:func:`PyImport_AppendInittab`" +msgstr "" + +#: ../Doc/c-api/init.rst:25 +msgid ":c:func:`PyImport_ExtendInittab`" +msgstr "" + +#: ../Doc/c-api/init.rst:26 +msgid ":c:func:`PyInitFrozenExtensions`" +msgstr "" + +#: ../Doc/c-api/init.rst:27 +msgid ":c:func:`PyMem_SetAllocator`" +msgstr "" + +#: ../Doc/c-api/init.rst:28 +msgid ":c:func:`PyMem_SetupDebugHooks`" +msgstr "" + +#: ../Doc/c-api/init.rst:29 +msgid ":c:func:`PyObject_SetArenaAllocator`" +msgstr "" + +#: ../Doc/c-api/init.rst:30 +msgid ":c:func:`Py_SetPath`" +msgstr "" + +#: ../Doc/c-api/init.rst:31 +msgid ":c:func:`Py_SetProgramName`" +msgstr "" + +#: ../Doc/c-api/init.rst:32 +msgid ":c:func:`Py_SetPythonHome`" +msgstr "" + +#: ../Doc/c-api/init.rst:33 +msgid ":c:func:`Py_SetStandardStreamEncoding`" +msgstr "" + +#: ../Doc/c-api/init.rst:34 +msgid ":c:func:`PySys_AddWarnOption`" +msgstr "" + +#: ../Doc/c-api/init.rst:35 +msgid ":c:func:`PySys_AddXOption`" +msgstr "" + +#: ../Doc/c-api/init.rst:36 +msgid ":c:func:`PySys_ResetWarnOptions`" +msgstr "" + +#: ../Doc/c-api/init.rst:38 +msgid "Informative functions:" +msgstr "" + +#: ../Doc/c-api/init.rst:40 +msgid ":c:func:`Py_IsInitialized`" +msgstr "" + +#: ../Doc/c-api/init.rst:41 +msgid ":c:func:`PyMem_GetAllocator`" +msgstr "" + +#: ../Doc/c-api/init.rst:42 +msgid ":c:func:`PyObject_GetArenaAllocator`" +msgstr "" + +#: ../Doc/c-api/init.rst:43 +msgid ":c:func:`Py_GetBuildInfo`" +msgstr "" + +#: ../Doc/c-api/init.rst:44 +msgid ":c:func:`Py_GetCompiler`" +msgstr "" + +#: ../Doc/c-api/init.rst:45 +msgid ":c:func:`Py_GetCopyright`" +msgstr "" + +#: ../Doc/c-api/init.rst:46 +msgid ":c:func:`Py_GetPlatform`" +msgstr "" + +#: ../Doc/c-api/init.rst:47 +msgid ":c:func:`Py_GetVersion`" +msgstr "" + +#: ../Doc/c-api/init.rst:49 +msgid "Utilities:" +msgstr "" + +#: ../Doc/c-api/init.rst:51 +msgid ":c:func:`Py_DecodeLocale`" +msgstr "" + +#: ../Doc/c-api/init.rst:53 +msgid "Memory allocators:" +msgstr "" + +#: ../Doc/c-api/init.rst:55 +msgid ":c:func:`PyMem_RawMalloc`" +msgstr "" + +#: ../Doc/c-api/init.rst:56 +msgid ":c:func:`PyMem_RawRealloc`" +msgstr "" + +#: ../Doc/c-api/init.rst:57 +msgid ":c:func:`PyMem_RawCalloc`" +msgstr "" + +#: ../Doc/c-api/init.rst:58 +msgid ":c:func:`PyMem_RawFree`" +msgstr "" + +#: ../Doc/c-api/init.rst:62 +msgid "" +"The following functions **should not be called** before :c:func:" +"`Py_Initialize`: :c:func:`Py_EncodeLocale`, :c:func:`Py_GetPath`, :c:func:" +"`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, :c:func:" +"`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome`, :c:func:" +"`Py_GetProgramName` and :c:func:`PyEval_InitThreads`." +msgstr "" + +#: ../Doc/c-api/init.rst:72 +msgid "Global configuration variables" +msgstr "" + +#: ../Doc/c-api/init.rst:74 +msgid "" +"Python has variables for the global configuration to control different " +"features and options. By default, these flags are controlled by :ref:" +"`command line options `." +msgstr "" + +#: ../Doc/c-api/init.rst:78 +msgid "" +"When a flag is set by an option, the value of the flag is the number of " +"times that the option was set. For example, ``-b`` sets :c:data:" +"`Py_BytesWarningFlag` to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to " +"2." +msgstr "" + +#: ../Doc/c-api/init.rst:84 +msgid "" +"Issue a warning when comparing :class:`bytes` or :class:`bytearray` with :" +"class:`str` or :class:`bytes` with :class:`int`. Issue an error if greater " +"or equal to ``2``." +msgstr "" + +#: ../Doc/c-api/init.rst:88 +msgid "Set by the :option:`-b` option." +msgstr "" + +#: ../Doc/c-api/init.rst:92 +msgid "" +"Turn on parser debugging output (for expert only, depending on compilation " +"options)." +msgstr "" + +#: ../Doc/c-api/init.rst:95 +msgid "" +"Set by the :option:`-d` option and the :envvar:`PYTHONDEBUG` environment " +"variable." +msgstr "" + +#: ../Doc/c-api/init.rst:100 +msgid "" +"If set to non-zero, Python won't try to write ``.pyc`` files on the import " +"of source modules." +msgstr "" + +#: ../Doc/c-api/init.rst:103 +msgid "" +"Set by the :option:`-B` option and the :envvar:`PYTHONDONTWRITEBYTECODE` " +"environment variable." +msgstr "" + +#: ../Doc/c-api/init.rst:108 +msgid "" +"Suppress error messages when calculating the module search path in :c:func:" +"`Py_GetPath`." +msgstr "" + +#: ../Doc/c-api/init.rst:111 +msgid "Private flag used by ``_freeze_importlib`` and ``frozenmain`` programs." +msgstr "" + +#: ../Doc/c-api/init.rst:115 +msgid "" +"Set to ``1`` if the :envvar:`PYTHONHASHSEED` environment variable is set to " +"a non-empty string." +msgstr "" + +#: ../Doc/c-api/init.rst:118 +msgid "" +"If the flag is non-zero, read the :envvar:`PYTHONHASHSEED` environment " +"variable to initialize the secret hash seed." +msgstr "" + +#: ../Doc/c-api/init.rst:123 +msgid "" +"Ignore all :envvar:`PYTHON*` environment variables, e.g. :envvar:" +"`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." +msgstr "" +"Ignore toutes les variables d'environnement :envvar:`PYTHON*` qui pourraient " +"être définies. Par exemple, :envvar:`PYTHONPATH` et :envvar:`PYTHONHOME`." + +#: ../Doc/c-api/init.rst:126 +msgid "Set by the :option:`-E` and :option:`-I` options." +msgstr "" + +#: ../Doc/c-api/init.rst:130 +msgid "" +"When a script is passed as first argument or the :option:`-c` option is " +"used, enter interactive mode after executing the script or the command, even " +"when :data:`sys.stdin` does not appear to be a terminal." +msgstr "" + +#: ../Doc/c-api/init.rst:134 +msgid "" +"Set by the :option:`-i` option and the :envvar:`PYTHONINSPECT` environment " +"variable." +msgstr "" + +#: ../Doc/c-api/init.rst:139 +msgid "Set by the :option:`-i` option." +msgstr "" + +#: ../Doc/c-api/init.rst:143 +msgid "" +"Run Python in isolated mode. In isolated mode :data:`sys.path` contains " +"neither the script's directory nor the user's site-packages directory." +msgstr "" + +#: ../Doc/c-api/init.rst:146 +msgid "Set by the :option:`-I` option." +msgstr "" + +#: ../Doc/c-api/init.rst:152 +msgid "" +"If the flag is non-zero, use the ``mbcs`` encoding instead of the UTF-8 " +"encoding for the filesystem encoding." +msgstr "" + +#: ../Doc/c-api/init.rst:155 +msgid "" +"Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " +"variable is set to a non-empty string." +msgstr "" + +#: ../Doc/c-api/init.rst:158 +msgid "See :pep:`529` for more details." +msgstr "Voir la :pep:`529` pour plus d'informations." + +#: ../Doc/c-api/init.rst:160 ../Doc/c-api/init.rst:172 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." + +#: ../Doc/c-api/init.rst:164 +msgid "" +"If the flag is non-zero, use :class:`io.FileIO` instead of :class:" +"`WindowsConsoleIO` for :mod:`sys` standard streams." +msgstr "" + +#: ../Doc/c-api/init.rst:167 +msgid "" +"Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " +"is set to a non-empty string." +msgstr "" + +#: ../Doc/c-api/init.rst:170 +msgid "See :pep:`528` for more details." +msgstr "" + +#: ../Doc/c-api/init.rst:176 +msgid "" +"Disable the import of the module :mod:`site` and the site-dependent " +"manipulations of :data:`sys.path` that it entails. Also disable these " +"manipulations if :mod:`site` is explicitly imported later (call :func:`site." +"main` if you want them to be triggered)." +msgstr "" +"Désactive l’importation du module :mod:`site` et les modifications locales " +"de :data:`sys.path` qu’il implique. Désactive aussi ces manipulations si :" +"mod:`site` est importé explicitement plus tard (appelez :func:`site.main` si " +"vous voulez les déclencher)." + +#: ../Doc/c-api/init.rst:181 +msgid "Set by the :option:`-S` option." +msgstr "" + +#: ../Doc/c-api/init.rst:185 +msgid "" +"Don't add the :data:`user site-packages directory ` to :data:" +"`sys.path`." +msgstr "" +"N'ajoute pas le répertoire utilisateur :data:`site-packages ` à :data:`sys.path`." + +#: ../Doc/c-api/init.rst:188 +msgid "" +"Set by the :option:`-s` and :option:`-I` options, and the :envvar:" +"`PYTHONNOUSERSITE` environment variable." +msgstr "" + +#: ../Doc/c-api/init.rst:193 +msgid "" +"Set by the :option:`-O` option and the :envvar:`PYTHONOPTIMIZE` environment " +"variable." +msgstr "" + +#: ../Doc/c-api/init.rst:198 +msgid "" +"Don't display the copyright and version messages even in interactive mode." +msgstr "N'affiche pas le copyright et la version, même en mode interactif." + +#: ../Doc/c-api/init.rst:200 +msgid "Set by the :option:`-q` option." +msgstr "" + +#: ../Doc/c-api/init.rst:206 +msgid "Force the stdout and stderr streams to be unbuffered." +msgstr "" + +#: ../Doc/c-api/init.rst:208 +msgid "" +"Set by the :option:`-u` option and the :envvar:`PYTHONUNBUFFERED` " +"environment variable." +msgstr "" + +#: ../Doc/c-api/init.rst:213 +msgid "" +"Print a message each time a module is initialized, showing the place " +"(filename or built-in module) from which it is loaded. If greater or equal " +"to ``2``, print a message for each file that is checked for when searching " +"for a module. Also provides information on module cleanup at exit." +msgstr "" + +#: ../Doc/c-api/init.rst:218 +msgid "" +"Set by the :option:`-v` option and the :envvar:`PYTHONVERBOSE` environment " +"variable." +msgstr "" + +#: ../Doc/c-api/init.rst:223 +msgid "Initializing and finalizing the interpreter" +msgstr "" + +#: ../Doc/c-api/init.rst:241 +msgid "" +"Initialize the Python interpreter. In an application embedding Python, " +"this should be called before using any other Python/C API functions; see :" +"ref:`Before Python Initialization ` for the few exceptions." +msgstr "" + +#: ../Doc/c-api/init.rst:245 +msgid "" +"This initializes the table of loaded modules (``sys.modules``), and creates " +"the fundamental modules :mod:`builtins`, :mod:`__main__` and :mod:`sys`. It " +"also initializes the module search path (``sys.path``). It does not set " +"``sys.argv``; use :c:func:`PySys_SetArgvEx` for that. This is a no-op when " +"called for a second time (without calling :c:func:`Py_FinalizeEx` first). " +"There is no return value; it is a fatal error if the initialization fails." +msgstr "" + +#: ../Doc/c-api/init.rst:254 +msgid "" +"On Windows, changes the console mode from ``O_TEXT`` to ``O_BINARY``, which " +"will also affect non-Python uses of the console using the C Runtime." +msgstr "" + +#: ../Doc/c-api/init.rst:260 +msgid "" +"This function works like :c:func:`Py_Initialize` if *initsigs* is ``1``. If " +"*initsigs* is ``0``, it skips initialization registration of signal " +"handlers, which might be useful when Python is embedded." +msgstr "" + +#: ../Doc/c-api/init.rst:267 +msgid "" +"Return true (nonzero) when the Python interpreter has been initialized, " +"false (zero) if not. After :c:func:`Py_FinalizeEx` is called, this returns " +"false until :c:func:`Py_Initialize` is called again." +msgstr "" + +#: ../Doc/c-api/init.rst:274 +msgid "" +"Undo all initializations made by :c:func:`Py_Initialize` and subsequent use " +"of Python/C API functions, and destroy all sub-interpreters (see :c:func:" +"`Py_NewInterpreter` below) that were created and not yet destroyed since the " +"last call to :c:func:`Py_Initialize`. Ideally, this frees all memory " +"allocated by the Python interpreter. This is a no-op when called for a " +"second time (without calling :c:func:`Py_Initialize` again first). Normally " +"the return value is ``0``. If there were errors during finalization " +"(flushing buffered data), ``-1`` is returned." +msgstr "" + +#: ../Doc/c-api/init.rst:283 +msgid "" +"This function is provided for a number of reasons. An embedding application " +"might want to restart Python without having to restart the application " +"itself. An application that has loaded the Python interpreter from a " +"dynamically loadable library (or DLL) might want to free all memory " +"allocated by Python before unloading the DLL. During a hunt for memory leaks " +"in an application a developer might want to free all memory allocated by " +"Python before exiting from the application." +msgstr "" + +#: ../Doc/c-api/init.rst:291 +msgid "" +"**Bugs and caveats:** The destruction of modules and objects in modules is " +"done in random order; this may cause destructors (:meth:`__del__` methods) " +"to fail when they depend on other objects (even functions) or modules. " +"Dynamically loaded extension modules loaded by Python are not unloaded. " +"Small amounts of memory allocated by the Python interpreter may not be freed " +"(if you find a leak, please report it). Memory tied up in circular " +"references between objects is not freed. Some memory allocated by extension " +"modules may not be freed. Some extensions may not work properly if their " +"initialization routine is called more than once; this can happen if an " +"application calls :c:func:`Py_Initialize` and :c:func:`Py_FinalizeEx` more " +"than once." +msgstr "" + +#: ../Doc/c-api/init.rst:307 +msgid "" +"This is a backwards-compatible version of :c:func:`Py_FinalizeEx` that " +"disregards the return value." +msgstr "" + +#: ../Doc/c-api/init.rst:312 +msgid "Process-wide parameters" +msgstr "" + +#: ../Doc/c-api/init.rst:322 +msgid "" +"This function should be called before :c:func:`Py_Initialize`, if it is " +"called at all. It specifies which encoding and error handling to use with " +"standard IO, with the same meanings as in :func:`str.encode`." +msgstr "" + +#: ../Doc/c-api/init.rst:326 +msgid "" +"It overrides :envvar:`PYTHONIOENCODING` values, and allows embedding code to " +"control IO encoding when the environment variable does not work." +msgstr "" + +#: ../Doc/c-api/init.rst:329 +msgid "" +"``encoding`` and/or ``errors`` may be NULL to use :envvar:`PYTHONIOENCODING` " +"and/or default values (depending on other settings)." +msgstr "" + +#: ../Doc/c-api/init.rst:333 +msgid "" +"Note that :data:`sys.stderr` always uses the \"backslashreplace\" error " +"handler, regardless of this (or any other) setting." +msgstr "" + +#: ../Doc/c-api/init.rst:336 +msgid "" +"If :c:func:`Py_FinalizeEx` is called, this function will need to be called " +"again in order to affect subsequent calls to :c:func:`Py_Initialize`." +msgstr "" + +#: ../Doc/c-api/init.rst:339 +msgid "" +"Returns ``0`` if successful, a nonzero value on error (e.g. calling after " +"the interpreter has already been initialized)." +msgstr "" + +#: ../Doc/c-api/init.rst:352 +msgid "" +"This function should be called before :c:func:`Py_Initialize` is called for " +"the first time, if it is called at all. It tells the interpreter the value " +"of the ``argv[0]`` argument to the :c:func:`main` function of the program " +"(converted to wide characters). This is used by :c:func:`Py_GetPath` and " +"some other functions below to find the Python run-time libraries relative to " +"the interpreter executable. The default value is ``'python'``. The " +"argument should point to a zero-terminated wide character string in static " +"storage whose contents will not change for the duration of the program's " +"execution. No code in the Python interpreter will change the contents of " +"this storage." +msgstr "" + +#: ../Doc/c-api/init.rst:363 ../Doc/c-api/init.rst:477 +#: ../Doc/c-api/init.rst:579 ../Doc/c-api/init.rst:606 +#: ../Doc/c-api/init.rst:623 +msgid "" +"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:type:" +"`wchar_*` string." +msgstr "" + +#: ../Doc/c-api/init.rst:371 +msgid "" +"Return the program name set with :c:func:`Py_SetProgramName`, or the " +"default. The returned string points into static storage; the caller should " +"not modify its value." +msgstr "" + +#: ../Doc/c-api/init.rst:378 +msgid "" +"Return the *prefix* for installed platform-independent files. This is " +"derived through a number of complicated rules from the program name set " +"with :c:func:`Py_SetProgramName` and some environment variables; for " +"example, if the program name is ``'/usr/local/bin/python'``, the prefix is " +"``'/usr/local'``. The returned string points into static storage; the caller " +"should not modify its value. This corresponds to the :makevar:`prefix` " +"variable in the top-level :file:`Makefile` and the ``--prefix`` argument to " +"the :program:`configure` script at build time. The value is available to " +"Python code as ``sys.prefix``. It is only useful on Unix. See also the next " +"function." +msgstr "" + +#: ../Doc/c-api/init.rst:391 +msgid "" +"Return the *exec-prefix* for installed platform-*dependent* files. This is " +"derived through a number of complicated rules from the program name set " +"with :c:func:`Py_SetProgramName` and some environment variables; for " +"example, if the program name is ``'/usr/local/bin/python'``, the exec-prefix " +"is ``'/usr/local'``. The returned string points into static storage; the " +"caller should not modify its value. This corresponds to the :makevar:" +"`exec_prefix` variable in the top-level :file:`Makefile` and the ``--exec-" +"prefix`` argument to the :program:`configure` script at build time. The " +"value is available to Python code as ``sys.exec_prefix``. It is only useful " +"on Unix." +msgstr "" + +#: ../Doc/c-api/init.rst:401 +msgid "" +"Background: The exec-prefix differs from the prefix when platform dependent " +"files (such as executables and shared libraries) are installed in a " +"different directory tree. In a typical installation, platform dependent " +"files may be installed in the :file:`/usr/local/plat` subtree while platform " +"independent may be installed in :file:`/usr/local`." +msgstr "" + +#: ../Doc/c-api/init.rst:407 +msgid "" +"Generally speaking, a platform is a combination of hardware and software " +"families, e.g. Sparc machines running the Solaris 2.x operating system are " +"considered the same platform, but Intel machines running Solaris 2.x are " +"another platform, and Intel machines running Linux are yet another " +"platform. Different major revisions of the same operating system generally " +"also form different platforms. Non-Unix operating systems are a different " +"story; the installation strategies on those systems are so different that " +"the prefix and exec-prefix are meaningless, and set to the empty string. " +"Note that compiled Python bytecode files are platform independent (but not " +"independent from the Python version by which they were compiled!)." +msgstr "" + +#: ../Doc/c-api/init.rst:418 +msgid "" +"System administrators will know how to configure the :program:`mount` or :" +"program:`automount` programs to share :file:`/usr/local` between platforms " +"while having :file:`/usr/local/plat` be a different filesystem for each " +"platform." +msgstr "" + +#: ../Doc/c-api/init.rst:430 +msgid "" +"Return the full program name of the Python executable; this is computed as " +"a side-effect of deriving the default module search path from the program " +"name (set by :c:func:`Py_SetProgramName` above). The returned string points " +"into static storage; the caller should not modify its value. The value is " +"available to Python code as ``sys.executable``." +msgstr "" + +#: ../Doc/c-api/init.rst:444 +msgid "" +"Return the default module search path; this is computed from the program " +"name (set by :c:func:`Py_SetProgramName` above) and some environment " +"variables. The returned string consists of a series of directory names " +"separated by a platform dependent delimiter character. The delimiter " +"character is ``':'`` on Unix and Mac OS X, ``';'`` on Windows. The returned " +"string points into static storage; the caller should not modify its value. " +"The list :data:`sys.path` is initialized with this value on interpreter " +"startup; it can be (and usually is) modified later to change the search path " +"for loading modules." +msgstr "" + +#: ../Doc/c-api/init.rst:464 +msgid "" +"Set the default module search path. If this function is called before :c:" +"func:`Py_Initialize`, then :c:func:`Py_GetPath` won't attempt to compute a " +"default search path but uses the one provided instead. This is useful if " +"Python is embedded by an application that has full knowledge of the location " +"of all modules. The path components should be separated by the platform " +"dependent delimiter character, which is ``':'`` on Unix and Mac OS X, " +"``';'`` on Windows." +msgstr "" + +#: ../Doc/c-api/init.rst:472 +msgid "" +"This also causes :data:`sys.executable` to be set only to the raw program " +"name (see :c:func:`Py_SetProgramName`) and for :data:`sys.prefix` and :data:" +"`sys.exec_prefix` to be empty. It is up to the caller to modify these if " +"required after calling :c:func:`Py_Initialize`." +msgstr "" + +#: ../Doc/c-api/init.rst:480 +msgid "" +"The path argument is copied internally, so the caller may free it after the " +"call completes." +msgstr "" + +#: ../Doc/c-api/init.rst:486 +msgid "" +"Return the version of this Python interpreter. This is a string that looks " +"something like ::" +msgstr "" + +#: ../Doc/c-api/init.rst:493 +msgid "" +"The first word (up to the first space character) is the current Python " +"version; the first three characters are the major and minor version " +"separated by a period. The returned string points into static storage; the " +"caller should not modify its value. The value is available to Python code " +"as :data:`sys.version`." +msgstr "" + +#: ../Doc/c-api/init.rst:503 +msgid "" +"Return the platform identifier for the current platform. On Unix, this is " +"formed from the \"official\" name of the operating system, converted to " +"lower case, followed by the major revision number; e.g., for Solaris 2.x, " +"which is also known as SunOS 5.x, the value is ``'sunos5'``. On Mac OS X, " +"it is ``'darwin'``. On Windows, it is ``'win'``. The returned string " +"points into static storage; the caller should not modify its value. The " +"value is available to Python code as ``sys.platform``." +msgstr "" + +#: ../Doc/c-api/init.rst:514 +msgid "" +"Return the official copyright string for the current Python version, for " +"example" +msgstr "" + +#: ../Doc/c-api/init.rst:516 +msgid "``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``" +msgstr "" + +#: ../Doc/c-api/init.rst:520 +msgid "" +"The returned string points into static storage; the caller should not modify " +"its value. The value is available to Python code as ``sys.copyright``." +msgstr "" + +#: ../Doc/c-api/init.rst:526 +msgid "" +"Return an indication of the compiler used to build the current Python " +"version, in square brackets, for example::" +msgstr "" + +#: ../Doc/c-api/init.rst:533 ../Doc/c-api/init.rst:547 +msgid "" +"The returned string points into static storage; the caller should not modify " +"its value. The value is available to Python code as part of the variable " +"``sys.version``." +msgstr "" + +#: ../Doc/c-api/init.rst:540 +msgid "" +"Return information about the sequence number and build date and time of the " +"current Python interpreter instance, for example ::" +msgstr "" + +#: ../Doc/c-api/init.rst:559 +msgid "" +"Set :data:`sys.argv` based on *argc* and *argv*. These parameters are " +"similar to those passed to the program's :c:func:`main` function with the " +"difference that the first entry should refer to the script file to be " +"executed rather than the executable hosting the Python interpreter. If " +"there isn't a script that will be run, the first entry in *argv* can be an " +"empty string. If this function fails to initialize :data:`sys.argv`, a " +"fatal condition is signalled using :c:func:`Py_FatalError`." +msgstr "" + +#: ../Doc/c-api/init.rst:567 +msgid "" +"If *updatepath* is zero, this is all the function does. If *updatepath* is " +"non-zero, the function also modifies :data:`sys.path` according to the " +"following algorithm:" +msgstr "" + +#: ../Doc/c-api/init.rst:571 +msgid "" +"If the name of an existing script is passed in ``argv[0]``, the absolute " +"path of the directory where the script is located is prepended to :data:`sys." +"path`." +msgstr "" + +#: ../Doc/c-api/init.rst:574 +msgid "" +"Otherwise (that is, if *argc* is ``0`` or ``argv[0]`` doesn't point to an " +"existing file name), an empty string is prepended to :data:`sys.path`, which " +"is the same as prepending the current working directory (``\".\"``)." +msgstr "" + +#: ../Doc/c-api/init.rst:583 +msgid "" +"It is recommended that applications embedding the Python interpreter for " +"purposes other than executing a single script pass ``0`` as *updatepath*, " +"and update :data:`sys.path` themselves if desired. See `CVE-2008-5983 " +"`_." +msgstr "" + +#: ../Doc/c-api/init.rst:588 +msgid "" +"On versions before 3.1.3, you can achieve the same effect by manually " +"popping the first :data:`sys.path` element after having called :c:func:" +"`PySys_SetArgv`, for example using::" +msgstr "" + +#: ../Doc/c-api/init.rst:602 +msgid "" +"This function works like :c:func:`PySys_SetArgvEx` with *updatepath* set to " +"``1`` unless the :program:`python` interpreter was started with the :option:" +"`-I`." +msgstr "" + +#: ../Doc/c-api/init.rst:609 +msgid "The *updatepath* value depends on :option:`-I`." +msgstr "" + +#: ../Doc/c-api/init.rst:614 +msgid "" +"Set the default \"home\" directory, that is, the location of the standard " +"Python libraries. See :envvar:`PYTHONHOME` for the meaning of the argument " +"string." +msgstr "" + +#: ../Doc/c-api/init.rst:618 +msgid "" +"The argument should point to a zero-terminated character string in static " +"storage whose contents will not change for the duration of the program's " +"execution. No code in the Python interpreter will change the contents of " +"this storage." +msgstr "" + +#: ../Doc/c-api/init.rst:629 +msgid "" +"Return the default \"home\", that is, the value set by a previous call to :c:" +"func:`Py_SetPythonHome`, or the value of the :envvar:`PYTHONHOME` " +"environment variable if it is set." +msgstr "" + +#: ../Doc/c-api/init.rst:637 +msgid "Thread State and the Global Interpreter Lock" +msgstr "" + +#: ../Doc/c-api/init.rst:644 +msgid "" +"The Python interpreter is not fully thread-safe. In order to support multi-" +"threaded Python programs, there's a global lock, called the :term:`global " +"interpreter lock` or :term:`GIL`, that must be held by the current thread " +"before it can safely access Python objects. Without the lock, even the " +"simplest operations could cause problems in a multi-threaded program: for " +"example, when two threads simultaneously increment the reference count of " +"the same object, the reference count could end up being incremented only " +"once instead of twice." +msgstr "" + +#: ../Doc/c-api/init.rst:654 +msgid "" +"Therefore, the rule exists that only the thread that has acquired the :term:" +"`GIL` may operate on Python objects or call Python/C API functions. In order " +"to emulate concurrency of execution, the interpreter regularly tries to " +"switch threads (see :func:`sys.setswitchinterval`). The lock is also " +"released around potentially blocking I/O operations like reading or writing " +"a file, so that other Python threads can run in the meantime." +msgstr "" + +#: ../Doc/c-api/init.rst:665 +msgid "" +"The Python interpreter keeps some thread-specific bookkeeping information " +"inside a data structure called :c:type:`PyThreadState`. There's also one " +"global variable pointing to the current :c:type:`PyThreadState`: it can be " +"retrieved using :c:func:`PyThreadState_Get`." +msgstr "" + +#: ../Doc/c-api/init.rst:671 +msgid "Releasing the GIL from extension code" +msgstr "" + +#: ../Doc/c-api/init.rst:673 +msgid "" +"Most extension code manipulating the :term:`GIL` has the following simple " +"structure::" +msgstr "" + +#: ../Doc/c-api/init.rst:682 +msgid "This is so common that a pair of macros exists to simplify it::" +msgstr "" + +#: ../Doc/c-api/init.rst:692 +msgid "" +"The :c:macro:`Py_BEGIN_ALLOW_THREADS` macro opens a new block and declares a " +"hidden local variable; the :c:macro:`Py_END_ALLOW_THREADS` macro closes the " +"block." +msgstr "" + +#: ../Doc/c-api/init.rst:696 +msgid "The block above expands to the following code::" +msgstr "" + +#: ../Doc/c-api/init.rst:708 +msgid "" +"Here is how these functions work: the global interpreter lock is used to " +"protect the pointer to the current thread state. When releasing the lock " +"and saving the thread state, the current thread state pointer must be " +"retrieved before the lock is released (since another thread could " +"immediately acquire the lock and store its own thread state in the global " +"variable). Conversely, when acquiring the lock and restoring the thread " +"state, the lock must be acquired before storing the thread state pointer." +msgstr "" + +#: ../Doc/c-api/init.rst:717 +msgid "" +"Calling system I/O functions is the most common use case for releasing the " +"GIL, but it can also be useful before calling long-running computations " +"which don't need access to Python objects, such as compression or " +"cryptographic functions operating over memory buffers. For example, the " +"standard :mod:`zlib` and :mod:`hashlib` modules release the GIL when " +"compressing or hashing data." +msgstr "" + +#: ../Doc/c-api/init.rst:728 +msgid "Non-Python created threads" +msgstr "" + +#: ../Doc/c-api/init.rst:730 +msgid "" +"When threads are created using the dedicated Python APIs (such as the :mod:" +"`threading` module), a thread state is automatically associated to them and " +"the code showed above is therefore correct. However, when threads are " +"created from C (for example by a third-party library with its own thread " +"management), they don't hold the GIL, nor is there a thread state structure " +"for them." +msgstr "" + +#: ../Doc/c-api/init.rst:737 +msgid "" +"If you need to call Python code from these threads (often this will be part " +"of a callback API provided by the aforementioned third-party library), you " +"must first register these threads with the interpreter by creating a thread " +"state data structure, then acquiring the GIL, and finally storing their " +"thread state pointer, before you can start using the Python/C API. When you " +"are done, you should reset the thread state pointer, release the GIL, and " +"finally free the thread state data structure." +msgstr "" + +#: ../Doc/c-api/init.rst:745 +msgid "" +"The :c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release` functions " +"do all of the above automatically. The typical idiom for calling into " +"Python from a C thread is::" +msgstr "" + +#: ../Doc/c-api/init.rst:759 +msgid "" +"Note that the :c:func:`PyGILState_\\*` functions assume there is only one " +"global interpreter (created automatically by :c:func:`Py_Initialize`). " +"Python supports the creation of additional interpreters (using :c:func:" +"`Py_NewInterpreter`), but mixing multiple interpreters and the :c:func:" +"`PyGILState_\\*` API is unsupported." +msgstr "" + +#: ../Doc/c-api/init.rst:765 +msgid "" +"Another important thing to note about threads is their behaviour in the face " +"of the C :c:func:`fork` call. On most systems with :c:func:`fork`, after a " +"process forks only the thread that issued the fork will exist. That also " +"means any locks held by other threads will never be released. Python solves " +"this for :func:`os.fork` by acquiring the locks it uses internally before " +"the fork, and releasing them afterwards. In addition, it resets any :ref:" +"`lock-objects` in the child. When extending or embedding Python, there is no " +"way to inform Python of additional (non-Python) locks that need to be " +"acquired before or reset after a fork. OS facilities such as :c:func:" +"`pthread_atfork` would need to be used to accomplish the same thing. " +"Additionally, when extending or embedding Python, calling :c:func:`fork` " +"directly rather than through :func:`os.fork` (and returning to or calling " +"into Python) may result in a deadlock by one of Python's internal locks " +"being held by a thread that is defunct after the fork. :c:func:" +"`PyOS_AfterFork_Child` tries to reset the necessary locks, but is not always " +"able to." +msgstr "" + +#: ../Doc/c-api/init.rst:784 +msgid "High-level API" +msgstr "" + +#: ../Doc/c-api/init.rst:786 +msgid "" +"These are the most commonly used types and functions when writing C " +"extension code, or when embedding the Python interpreter:" +msgstr "" + +#: ../Doc/c-api/init.rst:791 +msgid "" +"This data structure represents the state shared by a number of cooperating " +"threads. Threads belonging to the same interpreter share their module " +"administration and a few other internal items. There are no public members " +"in this structure." +msgstr "" + +#: ../Doc/c-api/init.rst:796 +msgid "" +"Threads belonging to different interpreters initially share nothing, except " +"process state like available memory, open file descriptors and such. The " +"global interpreter lock is also shared by all threads, regardless of to " +"which interpreter they belong." +msgstr "" + +#: ../Doc/c-api/init.rst:804 +msgid "" +"This data structure represents the state of a single thread. The only " +"public data member is :c:type:`PyInterpreterState \\*`:attr:`interp`, which " +"points to this thread's interpreter state." +msgstr "" + +#: ../Doc/c-api/init.rst:817 +msgid "" +"Initialize and acquire the global interpreter lock. It should be called in " +"the main thread before creating a second thread or engaging in any other " +"thread operations such as ``PyEval_ReleaseThread(tstate)``. It is not needed " +"before calling :c:func:`PyEval_SaveThread` or :c:func:`PyEval_RestoreThread`." +msgstr "" + +#: ../Doc/c-api/init.rst:822 +msgid "This is a no-op when called for a second time." +msgstr "" + +#: ../Doc/c-api/init.rst:824 +msgid "" +"This function is now called by :c:func:`Py_Initialize()`, so you don't have " +"to call it yourself anymore." +msgstr "" + +#: ../Doc/c-api/init.rst:828 +msgid "" +"This function cannot be called before :c:func:`Py_Initialize()` anymore." +msgstr "" + +#: ../Doc/c-api/init.rst:836 +msgid "" +"Returns a non-zero value if :c:func:`PyEval_InitThreads` has been called. " +"This function can be called without holding the GIL, and therefore can be " +"used to avoid calls to the locking API when running single-threaded." +msgstr "" + +#: ../Doc/c-api/init.rst:840 +msgid "The :term:`GIL` is now initialized by :c:func:`Py_Initialize()`." +msgstr "" + +#: ../Doc/c-api/init.rst:846 +msgid "" +"Release the global interpreter lock (if it has been created and thread " +"support is enabled) and reset the thread state to *NULL*, returning the " +"previous thread state (which is not *NULL*). If the lock has been created, " +"the current thread must have acquired it." +msgstr "" + +#: ../Doc/c-api/init.rst:854 +msgid "" +"Acquire the global interpreter lock (if it has been created and thread " +"support is enabled) and set the thread state to *tstate*, which must not be " +"*NULL*. If the lock has been created, the current thread must not have " +"acquired it, otherwise deadlock ensues." +msgstr "" + +#: ../Doc/c-api/init.rst:860 ../Doc/c-api/init.rst:913 +msgid "" +"Calling this function from a thread when the runtime is finalizing will " +"terminate the thread, even if the thread was not created by Python. You can " +"use :c:func:`_Py_IsFinalizing` or :func:`sys.is_finalizing` to check if the " +"interpreter is in process of being finalized before calling this function to " +"avoid unwanted termination." +msgstr "" + +#: ../Doc/c-api/init.rst:868 +msgid "" +"Return the current thread state. The global interpreter lock must be held. " +"When the current thread state is *NULL*, this issues a fatal error (so that " +"the caller needn't check for *NULL*)." +msgstr "" + +#: ../Doc/c-api/init.rst:875 +msgid "" +"Swap the current thread state with the thread state given by the argument " +"*tstate*, which may be *NULL*. The global interpreter lock must be held and " +"is not released." +msgstr "" + +#: ../Doc/c-api/init.rst:882 +msgid "" +"This function is called from :c:func:`PyOS_AfterFork_Child` to ensure that " +"newly created child processes don't hold locks referring to threads which " +"are not running in the child process." +msgstr "" + +#: ../Doc/c-api/init.rst:887 +msgid "" +"The following functions use thread-local storage, and are not compatible " +"with sub-interpreters:" +msgstr "" + +#: ../Doc/c-api/init.rst:892 +msgid "" +"Ensure that the current thread is ready to call the Python C API regardless " +"of the current state of Python, or of the global interpreter lock. This may " +"be called as many times as desired by a thread as long as each call is " +"matched with a call to :c:func:`PyGILState_Release`. In general, other " +"thread-related APIs may be used between :c:func:`PyGILState_Ensure` and :c:" +"func:`PyGILState_Release` calls as long as the thread state is restored to " +"its previous state before the Release(). For example, normal usage of the :" +"c:macro:`Py_BEGIN_ALLOW_THREADS` and :c:macro:`Py_END_ALLOW_THREADS` macros " +"is acceptable." +msgstr "" + +#: ../Doc/c-api/init.rst:902 +msgid "" +"The return value is an opaque \"handle\" to the thread state when :c:func:" +"`PyGILState_Ensure` was called, and must be passed to :c:func:" +"`PyGILState_Release` to ensure Python is left in the same state. Even though " +"recursive calls are allowed, these handles *cannot* be shared - each unique " +"call to :c:func:`PyGILState_Ensure` must save the handle for its call to :c:" +"func:`PyGILState_Release`." +msgstr "" + +#: ../Doc/c-api/init.rst:909 +msgid "" +"When the function returns, the current thread will hold the GIL and be able " +"to call arbitrary Python code. Failure is a fatal error." +msgstr "" + +#: ../Doc/c-api/init.rst:921 +msgid "" +"Release any resources previously acquired. After this call, Python's state " +"will be the same as it was prior to the corresponding :c:func:" +"`PyGILState_Ensure` call (but generally this state will be unknown to the " +"caller, hence the use of the GILState API)." +msgstr "" + +#: ../Doc/c-api/init.rst:926 +msgid "" +"Every call to :c:func:`PyGILState_Ensure` must be matched by a call to :c:" +"func:`PyGILState_Release` on the same thread." +msgstr "" + +#: ../Doc/c-api/init.rst:932 +msgid "" +"Get the current thread state for this thread. May return ``NULL`` if no " +"GILState API has been used on the current thread. Note that the main thread " +"always has such a thread-state, even if no auto-thread-state call has been " +"made on the main thread. This is mainly a helper/diagnostic function." +msgstr "" + +#: ../Doc/c-api/init.rst:940 +msgid "" +"Return ``1`` if the current thread is holding the GIL and ``0`` otherwise. " +"This function can be called from any thread at any time. Only if it has had " +"its Python thread state initialized and currently is holding the GIL will it " +"return ``1``. This is mainly a helper/diagnostic function. It can be useful " +"for example in callback contexts or memory allocation functions when knowing " +"that the GIL is locked can allow the caller to perform sensitive actions or " +"otherwise behave differently." +msgstr "" + +#: ../Doc/c-api/init.rst:952 +msgid "" +"The following macros are normally used without a trailing semicolon; look " +"for example usage in the Python source distribution." +msgstr "" + +#: ../Doc/c-api/init.rst:958 +msgid "" +"This macro expands to ``{ PyThreadState *_save; _save = PyEval_SaveThread();" +"``. Note that it contains an opening brace; it must be matched with a " +"following :c:macro:`Py_END_ALLOW_THREADS` macro. See above for further " +"discussion of this macro." +msgstr "" + +#: ../Doc/c-api/init.rst:966 +msgid "" +"This macro expands to ``PyEval_RestoreThread(_save); }``. Note that it " +"contains a closing brace; it must be matched with an earlier :c:macro:" +"`Py_BEGIN_ALLOW_THREADS` macro. See above for further discussion of this " +"macro." +msgstr "" + +#: ../Doc/c-api/init.rst:974 +msgid "" +"This macro expands to ``PyEval_RestoreThread(_save);``: it is equivalent to :" +"c:macro:`Py_END_ALLOW_THREADS` without the closing brace." +msgstr "" + +#: ../Doc/c-api/init.rst:980 +msgid "" +"This macro expands to ``_save = PyEval_SaveThread();``: it is equivalent to :" +"c:macro:`Py_BEGIN_ALLOW_THREADS` without the opening brace and variable " +"declaration." +msgstr "" + +#: ../Doc/c-api/init.rst:986 +msgid "Low-level API" +msgstr "" + +#: ../Doc/c-api/init.rst:988 +msgid "" +"All of the following functions must be called after :c:func:`Py_Initialize`." +msgstr "" + +#: ../Doc/c-api/init.rst:990 +msgid ":c:func:`Py_Initialize()` now initializes the :term:`GIL`." +msgstr "" + +#: ../Doc/c-api/init.rst:996 +msgid "" +"Create a new interpreter state object. The global interpreter lock need not " +"be held, but may be held if it is necessary to serialize calls to this " +"function." +msgstr "" + +#: ../Doc/c-api/init.rst:1003 +msgid "" +"Reset all information in an interpreter state object. The global " +"interpreter lock must be held." +msgstr "" + +#: ../Doc/c-api/init.rst:1009 +msgid "" +"Destroy an interpreter state object. The global interpreter lock need not " +"be held. The interpreter state must have been reset with a previous call " +"to :c:func:`PyInterpreterState_Clear`." +msgstr "" + +#: ../Doc/c-api/init.rst:1016 +msgid "" +"Create a new thread state object belonging to the given interpreter object. " +"The global interpreter lock need not be held, but may be held if it is " +"necessary to serialize calls to this function." +msgstr "" + +#: ../Doc/c-api/init.rst:1023 +msgid "" +"Reset all information in a thread state object. The global interpreter lock " +"must be held." +msgstr "" + +#: ../Doc/c-api/init.rst:1029 +msgid "" +"Destroy a thread state object. The global interpreter lock need not be " +"held. The thread state must have been reset with a previous call to :c:func:" +"`PyThreadState_Clear`." +msgstr "" + +#: ../Doc/c-api/init.rst:1036 +msgid "" +"Return the interpreter's unique ID. If there was any error in doing so then " +"``-1`` is returned and an error is set." +msgstr "" + +#: ../Doc/c-api/init.rst:1044 +msgid "" +"Return a dictionary in which extensions can store thread-specific state " +"information. Each extension should use a unique key to use to store state " +"in the dictionary. It is okay to call this function when no current thread " +"state is available. If this function returns *NULL*, no exception has been " +"raised and the caller should assume no current thread state is available." +msgstr "" + +#: ../Doc/c-api/init.rst:1053 +msgid "" +"Asynchronously raise an exception in a thread. The *id* argument is the " +"thread id of the target thread; *exc* is the exception object to be raised. " +"This function does not steal any references to *exc*. To prevent naive " +"misuse, you must write your own C extension to call this. Must be called " +"with the GIL held. Returns the number of thread states modified; this is " +"normally one, but will be zero if the thread id isn't found. If *exc* is :" +"const:`NULL`, the pending exception (if any) for the thread is cleared. This " +"raises no exceptions." +msgstr "" + +#: ../Doc/c-api/init.rst:1061 +msgid "" +"The type of the *id* parameter changed from :c:type:`long` to :c:type:" +"`unsigned long`." +msgstr "" + +#: ../Doc/c-api/init.rst:1067 +msgid "" +"Acquire the global interpreter lock and set the current thread state to " +"*tstate*, which should not be *NULL*. The lock must have been created " +"earlier. If this thread already has the lock, deadlock ensues." +msgstr "" + +#: ../Doc/c-api/init.rst:1071 +msgid "" +":c:func:`PyEval_RestoreThread` is a higher-level function which is always " +"available (even when threads have not been initialized)." +msgstr "" + +#: ../Doc/c-api/init.rst:1077 +msgid "" +"Reset the current thread state to *NULL* and release the global interpreter " +"lock. The lock must have been created earlier and must be held by the " +"current thread. The *tstate* argument, which must not be *NULL*, is only " +"used to check that it represents the current thread state --- if it isn't, a " +"fatal error is reported." +msgstr "" + +#: ../Doc/c-api/init.rst:1083 +msgid "" +":c:func:`PyEval_SaveThread` is a higher-level function which is always " +"available (even when threads have not been initialized)." +msgstr "" + +#: ../Doc/c-api/init.rst:1089 +msgid "" +"Acquire the global interpreter lock. The lock must have been created " +"earlier. If this thread already has the lock, a deadlock ensues." +msgstr "" + +#: ../Doc/c-api/init.rst:1092 +msgid "" +"This function does not update the current thread state. Please use :c:func:" +"`PyEval_RestoreThread` or :c:func:`PyEval_AcquireThread` instead." +msgstr "" + +#: ../Doc/c-api/init.rst:1100 +msgid "" +"Release the global interpreter lock. The lock must have been created " +"earlier." +msgstr "" + +#: ../Doc/c-api/init.rst:1102 +msgid "" +"This function does not update the current thread state. Please use :c:func:" +"`PyEval_SaveThread` or :c:func:`PyEval_ReleaseThread` instead." +msgstr "" + +#: ../Doc/c-api/init.rst:1111 +msgid "Sub-interpreter support" +msgstr "" + +#: ../Doc/c-api/init.rst:1113 +msgid "" +"While in most uses, you will only embed a single Python interpreter, there " +"are cases where you need to create several independent interpreters in the " +"same process and perhaps even in the same thread. Sub-interpreters allow " +"you to do that. You can switch between sub-interpreters using the :c:func:" +"`PyThreadState_Swap` function. You can create and destroy them using the " +"following functions:" +msgstr "" + +#: ../Doc/c-api/init.rst:1131 +msgid "" +"Create a new sub-interpreter. This is an (almost) totally separate " +"environment for the execution of Python code. In particular, the new " +"interpreter has separate, independent versions of all imported modules, " +"including the fundamental modules :mod:`builtins`, :mod:`__main__` and :mod:" +"`sys`. The table of loaded modules (``sys.modules``) and the module search " +"path (``sys.path``) are also separate. The new environment has no ``sys." +"argv`` variable. It has new standard I/O stream file objects ``sys.stdin``, " +"``sys.stdout`` and ``sys.stderr`` (however these refer to the same " +"underlying file descriptors)." +msgstr "" + +#: ../Doc/c-api/init.rst:1141 +msgid "" +"The return value points to the first thread state created in the new sub-" +"interpreter. This thread state is made in the current thread state. Note " +"that no actual thread is created; see the discussion of thread states " +"below. If creation of the new interpreter is unsuccessful, *NULL* is " +"returned; no exception is set since the exception state is stored in the " +"current thread state and there may not be a current thread state. (Like all " +"other Python/C API functions, the global interpreter lock must be held " +"before calling this function and is still held when it returns; however, " +"unlike most other Python/C API functions, there needn't be a current thread " +"state on entry.)" +msgstr "" + +#: ../Doc/c-api/init.rst:1156 +msgid "" +"Extension modules are shared between (sub-)interpreters as follows: the " +"first time a particular extension is imported, it is initialized normally, " +"and a (shallow) copy of its module's dictionary is squirreled away. When " +"the same extension is imported by another (sub-)interpreter, a new module is " +"initialized and filled with the contents of this copy; the extension's " +"``init`` function is not called. Note that this is different from what " +"happens when an extension is imported after the interpreter has been " +"completely re-initialized by calling :c:func:`Py_FinalizeEx` and :c:func:" +"`Py_Initialize`; in that case, the extension's ``initmodule`` function *is* " +"called again." +msgstr "" + +#: ../Doc/c-api/init.rst:1173 +msgid "" +"Destroy the (sub-)interpreter represented by the given thread state. The " +"given thread state must be the current thread state. See the discussion of " +"thread states below. When the call returns, the current thread state is " +"*NULL*. All thread states associated with this interpreter are destroyed. " +"(The global interpreter lock must be held before calling this function and " +"is still held when it returns.) :c:func:`Py_FinalizeEx` will destroy all " +"sub-interpreters that haven't been explicitly destroyed at that point." +msgstr "" + +#: ../Doc/c-api/init.rst:1183 +msgid "Bugs and caveats" +msgstr "" + +#: ../Doc/c-api/init.rst:1185 +msgid "" +"Because sub-interpreters (and the main interpreter) are part of the same " +"process, the insulation between them isn't perfect --- for example, using " +"low-level file operations like :func:`os.close` they can (accidentally or " +"maliciously) affect each other's open files. Because of the way extensions " +"are shared between (sub-)interpreters, some extensions may not work " +"properly; this is especially likely when the extension makes use of (static) " +"global variables, or when the extension manipulates its module's dictionary " +"after its initialization. It is possible to insert objects created in one " +"sub-interpreter into a namespace of another sub-interpreter; this should be " +"done with great care to avoid sharing user-defined functions, methods, " +"instances or classes between sub-interpreters, since import operations " +"executed by such objects may affect the wrong (sub-)interpreter's dictionary " +"of loaded modules." +msgstr "" + +#: ../Doc/c-api/init.rst:1199 +msgid "" +"Also note that combining this functionality with :c:func:`PyGILState_\\*` " +"APIs is delicate, because these APIs assume a bijection between Python " +"thread states and OS-level threads, an assumption broken by the presence of " +"sub-interpreters. It is highly recommended that you don't switch sub-" +"interpreters between a pair of matching :c:func:`PyGILState_Ensure` and :c:" +"func:`PyGILState_Release` calls. Furthermore, extensions (such as :mod:" +"`ctypes`) using these APIs to allow calling of Python code from non-Python " +"created threads will probably be broken when using sub-interpreters." +msgstr "" + +#: ../Doc/c-api/init.rst:1210 +msgid "Asynchronous Notifications" +msgstr "" + +#: ../Doc/c-api/init.rst:1212 +msgid "" +"A mechanism is provided to make asynchronous notifications to the main " +"interpreter thread. These notifications take the form of a function pointer " +"and a void pointer argument." +msgstr "" + +#: ../Doc/c-api/init.rst:1221 +msgid "" +"Schedule a function to be called from the main interpreter thread. On " +"success, ``0`` is returned and *func* is queued for being called in the main " +"thread. On failure, ``-1`` is returned without setting any exception." +msgstr "" + +#: ../Doc/c-api/init.rst:1225 +msgid "" +"When successfully queued, *func* will be *eventually* called from the main " +"interpreter thread with the argument *arg*. It will be called " +"asynchronously with respect to normally running Python code, but with both " +"these conditions met:" +msgstr "" + +#: ../Doc/c-api/init.rst:1230 +msgid "on a :term:`bytecode` boundary;" +msgstr "" + +#: ../Doc/c-api/init.rst:1231 +msgid "" +"with the main thread holding the :term:`global interpreter lock` (*func* can " +"therefore use the full C API)." +msgstr "" + +#: ../Doc/c-api/init.rst:1234 +msgid "" +"*func* must return ``0`` on success, or ``-1`` on failure with an exception " +"set. *func* won't be interrupted to perform another asynchronous " +"notification recursively, but it can still be interrupted to switch threads " +"if the global interpreter lock is released." +msgstr "" + +#: ../Doc/c-api/init.rst:1239 +msgid "" +"This function doesn't need a current thread state to run, and it doesn't " +"need the global interpreter lock." +msgstr "" + +#: ../Doc/c-api/init.rst:1243 +msgid "" +"This is a low-level function, only useful for very special cases. There is " +"no guarantee that *func* will be called as quick as possible. If the main " +"thread is busy executing a system call, *func* won't be called before the " +"system call returns. This function is generally **not** suitable for " +"calling Python code from arbitrary C threads. Instead, use the :ref:" +"`PyGILState API`." +msgstr "" + +#: ../Doc/c-api/init.rst:1255 +msgid "Profiling and Tracing" +msgstr "" + +#: ../Doc/c-api/init.rst:1260 +msgid "" +"The Python interpreter provides some low-level support for attaching " +"profiling and execution tracing facilities. These are used for profiling, " +"debugging, and coverage analysis tools." +msgstr "" + +#: ../Doc/c-api/init.rst:1264 +msgid "" +"This C interface allows the profiling or tracing code to avoid the overhead " +"of calling through Python-level callable objects, making a direct C function " +"call instead. The essential attributes of the facility have not changed; " +"the interface allows trace functions to be installed per-thread, and the " +"basic events reported to the trace function are the same as had been " +"reported to the Python-level trace functions in previous versions." +msgstr "" + +#: ../Doc/c-api/init.rst:1274 +msgid "" +"The type of the trace function registered using :c:func:`PyEval_SetProfile` " +"and :c:func:`PyEval_SetTrace`. The first parameter is the object passed to " +"the registration function as *obj*, *frame* is the frame object to which the " +"event pertains, *what* is one of the constants :const:`PyTrace_CALL`, :const:" +"`PyTrace_EXCEPTION`, :const:`PyTrace_LINE`, :const:`PyTrace_RETURN`, :const:" +"`PyTrace_C_CALL`, :const:`PyTrace_C_EXCEPTION`, :const:`PyTrace_C_RETURN`, " +"or :const:`PyTrace_OPCODE`, and *arg* depends on the value of *what*:" +msgstr "" + +#: ../Doc/c-api/init.rst:1283 +msgid "Value of *what*" +msgstr "" + +#: ../Doc/c-api/init.rst:1283 +msgid "Meaning of *arg*" +msgstr "" + +#: ../Doc/c-api/init.rst:1285 +msgid ":const:`PyTrace_CALL`" +msgstr "" + +#: ../Doc/c-api/init.rst:1285 ../Doc/c-api/init.rst:1290 +#: ../Doc/c-api/init.rst:1301 +msgid "Always :c:data:`Py_None`." +msgstr "" + +#: ../Doc/c-api/init.rst:1287 +msgid ":const:`PyTrace_EXCEPTION`" +msgstr "" + +#: ../Doc/c-api/init.rst:1287 +msgid "Exception information as returned by :func:`sys.exc_info`." +msgstr "" + +#: ../Doc/c-api/init.rst:1290 +msgid ":const:`PyTrace_LINE`" +msgstr "" + +#: ../Doc/c-api/init.rst:1292 +msgid ":const:`PyTrace_RETURN`" +msgstr "" + +#: ../Doc/c-api/init.rst:1292 +msgid "" +"Value being returned to the caller, or *NULL* if caused by an exception." +msgstr "" + +#: ../Doc/c-api/init.rst:1295 +msgid ":const:`PyTrace_C_CALL`" +msgstr "" + +#: ../Doc/c-api/init.rst:1295 ../Doc/c-api/init.rst:1297 +#: ../Doc/c-api/init.rst:1299 +msgid "Function object being called." +msgstr "" + +#: ../Doc/c-api/init.rst:1297 +msgid ":const:`PyTrace_C_EXCEPTION`" +msgstr "" + +#: ../Doc/c-api/init.rst:1299 +msgid ":const:`PyTrace_C_RETURN`" +msgstr "" + +#: ../Doc/c-api/init.rst:1301 +msgid ":const:`PyTrace_OPCODE`" +msgstr "" + +#: ../Doc/c-api/init.rst:1306 +msgid "" +"The value of the *what* parameter to a :c:type:`Py_tracefunc` function when " +"a new call to a function or method is being reported, or a new entry into a " +"generator. Note that the creation of the iterator for a generator function " +"is not reported as there is no control transfer to the Python bytecode in " +"the corresponding frame." +msgstr "" + +#: ../Doc/c-api/init.rst:1315 +msgid "" +"The value of the *what* parameter to a :c:type:`Py_tracefunc` function when " +"an exception has been raised. The callback function is called with this " +"value for *what* when after any bytecode is processed after which the " +"exception becomes set within the frame being executed. The effect of this " +"is that as exception propagation causes the Python stack to unwind, the " +"callback is called upon return to each frame as the exception propagates. " +"Only trace functions receives these events; they are not needed by the " +"profiler." +msgstr "" + +#: ../Doc/c-api/init.rst:1326 +msgid "" +"The value passed as the *what* parameter to a :c:type:`Py_tracefunc` " +"function (but not a profiling function) when a line-number event is being " +"reported. It may be disabled for a frame by setting :attr:`f_trace_lines` to " +"*0* on that frame." +msgstr "" + +#: ../Doc/c-api/init.rst:1333 +msgid "" +"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " +"a call is about to return." +msgstr "" + +#: ../Doc/c-api/init.rst:1339 +msgid "" +"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " +"a C function is about to be called." +msgstr "" + +#: ../Doc/c-api/init.rst:1345 +msgid "" +"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " +"a C function has raised an exception." +msgstr "" + +#: ../Doc/c-api/init.rst:1351 +msgid "" +"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " +"a C function has returned." +msgstr "" + +#: ../Doc/c-api/init.rst:1357 +msgid "" +"The value for the *what* parameter to :c:type:`Py_tracefunc` functions (but " +"not profiling functions) when a new opcode is about to be executed. This " +"event is not emitted by default: it must be explicitly requested by setting :" +"attr:`f_trace_opcodes` to *1* on the frame." +msgstr "" + +#: ../Doc/c-api/init.rst:1365 +msgid "" +"Set the profiler function to *func*. The *obj* parameter is passed to the " +"function as its first parameter, and may be any Python object, or *NULL*. " +"If the profile function needs to maintain state, using a different value for " +"*obj* for each thread provides a convenient and thread-safe place to store " +"it. The profile function is called for all monitored events except :const:" +"`PyTrace_LINE` :const:`PyTrace_OPCODE` and :const:`PyTrace_EXCEPTION`." +msgstr "" + +#: ../Doc/c-api/init.rst:1375 +msgid "" +"Set the tracing function to *func*. This is similar to :c:func:" +"`PyEval_SetProfile`, except the tracing function does receive line-number " +"events and per-opcode events, but does not receive any event related to C " +"function objects being called. Any trace function registered using :c:func:" +"`PyEval_SetTrace` will not receive :const:`PyTrace_C_CALL`, :const:" +"`PyTrace_C_EXCEPTION` or :const:`PyTrace_C_RETURN` as a value for the *what* " +"parameter." +msgstr "" + +#: ../Doc/c-api/init.rst:1385 +msgid "Advanced Debugger Support" +msgstr "Support avancé du débogueur" + +#: ../Doc/c-api/init.rst:1390 +msgid "" +"These functions are only intended to be used by advanced debugging tools." +msgstr "" + +#: ../Doc/c-api/init.rst:1395 +msgid "" +"Return the interpreter state object at the head of the list of all such " +"objects." +msgstr "" + +#: ../Doc/c-api/init.rst:1400 +msgid "Return the main interpreter state object." +msgstr "" + +#: ../Doc/c-api/init.rst:1405 +msgid "" +"Return the next interpreter state object after *interp* from the list of all " +"such objects." +msgstr "" + +#: ../Doc/c-api/init.rst:1411 +msgid "" +"Return the pointer to the first :c:type:`PyThreadState` object in the list " +"of threads associated with the interpreter *interp*." +msgstr "" + +#: ../Doc/c-api/init.rst:1417 +msgid "" +"Return the next thread state object after *tstate* from the list of all such " +"objects belonging to the same :c:type:`PyInterpreterState` object." +msgstr "" + +#: ../Doc/c-api/init.rst:1424 +msgid "Thread Local Storage Support" +msgstr "" + +#: ../Doc/c-api/init.rst:1428 +msgid "" +"The Python interpreter provides low-level support for thread-local storage " +"(TLS) which wraps the underlying native TLS implementation to support the " +"Python-level thread local storage API (:class:`threading.local`). The " +"CPython C level APIs are similar to those offered by pthreads and Windows: " +"use a thread key and functions to associate a :c:type:`void\\*` value per " +"thread." +msgstr "" + +#: ../Doc/c-api/init.rst:1435 +msgid "" +"The GIL does *not* need to be held when calling these functions; they supply " +"their own locking." +msgstr "" + +#: ../Doc/c-api/init.rst:1438 +msgid "" +"Note that :file:`Python.h` does not include the declaration of the TLS APIs, " +"you need to include :file:`pythread.h` to use thread-local storage." +msgstr "" + +#: ../Doc/c-api/init.rst:1442 +msgid "" +"None of these API functions handle memory management on behalf of the :c:" +"type:`void\\*` values. You need to allocate and deallocate them yourself. " +"If the :c:type:`void\\*` values happen to be :c:type:`PyObject\\*`, these " +"functions don't do refcount operations on them either." +msgstr "" + +#: ../Doc/c-api/init.rst:1450 +msgid "Thread Specific Storage (TSS) API" +msgstr "" + +#: ../Doc/c-api/init.rst:1452 +msgid "" +"TSS API is introduced to supersede the use of the existing TLS API within " +"the CPython interpreter. This API uses a new type :c:type:`Py_tss_t` " +"instead of :c:type:`int` to represent thread keys." +msgstr "" + +#: ../Doc/c-api/init.rst:1458 +msgid "\"A New C-API for Thread-Local Storage in CPython\" (:pep:`539`)" +msgstr "" + +#: ../Doc/c-api/init.rst:1463 +msgid "" +"This data structure represents the state of a thread key, the definition of " +"which may depend on the underlying TLS implementation, and it has an " +"internal field representing the key's initialization state. There are no " +"public members in this structure." +msgstr "" + +#: ../Doc/c-api/init.rst:1468 +msgid "" +"When :ref:`Py_LIMITED_API ` is not defined, static allocation of " +"this type by :c:macro:`Py_tss_NEEDS_INIT` is allowed." +msgstr "" + +#: ../Doc/c-api/init.rst:1474 +msgid "" +"This macro expands to the initializer for :c:type:`Py_tss_t` variables. Note " +"that this macro won't be defined with :ref:`Py_LIMITED_API `." +msgstr "" + +#: ../Doc/c-api/init.rst:1479 +msgid "Dynamic Allocation" +msgstr "" + +#: ../Doc/c-api/init.rst:1481 +msgid "" +"Dynamic allocation of the :c:type:`Py_tss_t`, required in extension modules " +"built with :ref:`Py_LIMITED_API `, where static allocation of this " +"type is not possible due to its implementation being opaque at build time." +msgstr "" + +#: ../Doc/c-api/init.rst:1488 +msgid "" +"Return a value which is the same state as a value initialized with :c:macro:" +"`Py_tss_NEEDS_INIT`, or *NULL* in the case of dynamic allocation failure." +msgstr "" + +#: ../Doc/c-api/init.rst:1495 +msgid "" +"Free the given *key* allocated by :c:func:`PyThread_tss_alloc`, after first " +"calling :c:func:`PyThread_tss_delete` to ensure any associated thread locals " +"have been unassigned. This is a no-op if the *key* argument is `NULL`." +msgstr "" + +#: ../Doc/c-api/init.rst:1501 +msgid "" +"A freed key becomes a dangling pointer, you should reset the key to `NULL`." +msgstr "" + +#: ../Doc/c-api/init.rst:1506 +msgid "Methods" +msgstr "Méthodes" + +#: ../Doc/c-api/init.rst:1508 +msgid "" +"The parameter *key* of these functions must not be *NULL*. Moreover, the " +"behaviors of :c:func:`PyThread_tss_set` and :c:func:`PyThread_tss_get` are " +"undefined if the given :c:type:`Py_tss_t` has not been initialized by :c:" +"func:`PyThread_tss_create`." +msgstr "" + +#: ../Doc/c-api/init.rst:1516 +msgid "" +"Return a non-zero value if the given :c:type:`Py_tss_t` has been initialized " +"by :c:func:`PyThread_tss_create`." +msgstr "" + +#: ../Doc/c-api/init.rst:1522 +msgid "" +"Return a zero value on successful initialization of a TSS key. The behavior " +"is undefined if the value pointed to by the *key* argument is not " +"initialized by :c:macro:`Py_tss_NEEDS_INIT`. This function can be called " +"repeatedly on the same key -- calling it on an already initialized key is a " +"no-op and immediately returns success." +msgstr "" + +#: ../Doc/c-api/init.rst:1531 +msgid "" +"Destroy a TSS key to forget the values associated with the key across all " +"threads, and change the key's initialization state to uninitialized. A " +"destroyed key is able to be initialized again by :c:func:" +"`PyThread_tss_create`. This function can be called repeatedly on the same " +"key -- calling it on an already destroyed key is a no-op." +msgstr "" + +#: ../Doc/c-api/init.rst:1540 +msgid "" +"Return a zero value to indicate successfully associating a :c:type:`void\\*` " +"value with a TSS key in the current thread. Each thread has a distinct " +"mapping of the key to a :c:type:`void\\*` value." +msgstr "" + +#: ../Doc/c-api/init.rst:1547 +msgid "" +"Return the :c:type:`void\\*` value associated with a TSS key in the current " +"thread. This returns *NULL* if no value is associated with the key in the " +"current thread." +msgstr "" + +#: ../Doc/c-api/init.rst:1555 +msgid "Thread Local Storage (TLS) API" +msgstr "" + +#: ../Doc/c-api/init.rst:1557 +msgid "" +"This API is superseded by :ref:`Thread Specific Storage (TSS) API `." +msgstr "" + +#: ../Doc/c-api/init.rst:1562 +msgid "" +"This version of the API does not support platforms where the native TLS key " +"is defined in a way that cannot be safely cast to ``int``. On such " +"platforms, :c:func:`PyThread_create_key` will return immediately with a " +"failure status, and the other TLS functions will all be no-ops on such " +"platforms." +msgstr "" + +#: ../Doc/c-api/init.rst:1567 +msgid "" +"Due to the compatibility problem noted above, this version of the API should " +"not be used in new code." +msgstr "" + +#~ msgid "Name" +#~ msgstr "Nom" + +#~ msgid "Value" +#~ msgstr "Valeur" + +#~ msgid "0" +#~ msgstr "0" + +#~ msgid "1" +#~ msgstr "1" + +#~ msgid "2" +#~ msgstr "2" + +#~ msgid "3" +#~ msgstr "3" + +#~ msgid "4" +#~ msgstr "4" + +#~ msgid "5" +#~ msgstr "5" + +#~ msgid "6" +#~ msgstr "6" + +#~ msgid "7" +#~ msgstr "7" + +#~ msgid "8" +#~ msgstr "8" + +#~ msgid "10" +#~ msgstr "10" diff --git a/c-api/intro.po b/c-api/intro.po new file mode 100644 index 000000000..1bdf37b81 --- /dev/null +++ b/c-api/intro.po @@ -0,0 +1,717 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/intro.rst:8 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/c-api/intro.rst:10 +msgid "" +"The Application Programmer's Interface to Python gives C and C++ programmers " +"access to the Python interpreter at a variety of levels. The API is equally " +"usable from C++, but for brevity it is generally referred to as the Python/C " +"API. There are two fundamentally different reasons for using the Python/C " +"API. The first reason is to write *extension modules* for specific purposes; " +"these are C modules that extend the Python interpreter. This is probably " +"the most common use. The second reason is to use Python as a component in a " +"larger application; this technique is generally referred to as :dfn:" +"`embedding` Python in an application." +msgstr "" + +#: ../Doc/c-api/intro.rst:20 +msgid "" +"Writing an extension module is a relatively well-understood process, where a " +"\"cookbook\" approach works well. There are several tools that automate the " +"process to some extent. While people have embedded Python in other " +"applications since its early existence, the process of embedding Python is " +"less straightforward than writing an extension." +msgstr "" + +#: ../Doc/c-api/intro.rst:26 +msgid "" +"Many API functions are useful independent of whether you're embedding or " +"extending Python; moreover, most applications that embed Python will need " +"to provide a custom extension as well, so it's probably a good idea to " +"become familiar with writing an extension before attempting to embed Python " +"in a real application." +msgstr "" + +#: ../Doc/c-api/intro.rst:34 +msgid "Coding standards" +msgstr "" + +#: ../Doc/c-api/intro.rst:36 +msgid "" +"If you're writing C code for inclusion in CPython, you **must** follow the " +"guidelines and standards defined in :PEP:`7`. These guidelines apply " +"regardless of the version of Python you are contributing to. Following " +"these conventions is not necessary for your own third party extension " +"modules, unless you eventually expect to contribute them to Python." +msgstr "" + +#: ../Doc/c-api/intro.rst:46 +msgid "Include Files" +msgstr "" + +#: ../Doc/c-api/intro.rst:48 +msgid "" +"All function, type and macro definitions needed to use the Python/C API are " +"included in your code by the following line::" +msgstr "" + +#: ../Doc/c-api/intro.rst:54 +msgid "" +"This implies inclusion of the following standard headers: ````, " +"````, ````, ````, ```` and ```` (if available)." +msgstr "" + +#: ../Doc/c-api/intro.rst:60 +msgid "" +"Since Python may define some pre-processor definitions which affect the " +"standard headers on some systems, you *must* include :file:`Python.h` before " +"any standard headers are included." +msgstr "" +"Python pouvant définir certaines définitions pré-processeur qui affectent " +"les têtes standard sur certains systèmes, vous *devez* inclure :file:`Python." +"h` avant les en-têtes standards." + +#: ../Doc/c-api/intro.rst:64 +msgid "" +"It is recommended to always define ``PY_SSIZE_T_CLEAN`` before including " +"``Python.h``. See :ref:`arg-parsing` for a description of this macro." +msgstr "" + +#: ../Doc/c-api/intro.rst:67 +msgid "" +"All user visible names defined by Python.h (except those defined by the " +"included standard headers) have one of the prefixes ``Py`` or ``_Py``. " +"Names beginning with ``_Py`` are for internal use by the Python " +"implementation and should not be used by extension writers. Structure member " +"names do not have a reserved prefix." +msgstr "" + +#: ../Doc/c-api/intro.rst:72 +msgid "" +"**Important:** user code should never define names that begin with ``Py`` or " +"``_Py``. This confuses the reader, and jeopardizes the portability of the " +"user code to future Python versions, which may define additional names " +"beginning with one of these prefixes." +msgstr "" + +#: ../Doc/c-api/intro.rst:77 +msgid "" +"The header files are typically installed with Python. On Unix, these are " +"located in the directories :file:`{prefix}/include/pythonversion/` and :file:" +"`{exec_prefix}/include/pythonversion/`, where :envvar:`prefix` and :envvar:" +"`exec_prefix` are defined by the corresponding parameters to Python's :" +"program:`configure` script and *version* is ``'%d.%d' % sys." +"version_info[:2]``. On Windows, the headers are installed in :file:" +"`{prefix}/include`, where :envvar:`prefix` is the installation directory " +"specified to the installer." +msgstr "" + +#: ../Doc/c-api/intro.rst:86 +msgid "" +"To include the headers, place both directories (if different) on your " +"compiler's search path for includes. Do *not* place the parent directories " +"on the search path and then use ``#include ``; this will " +"break on multi-platform builds since the platform independent headers under :" +"envvar:`prefix` include the platform specific headers from :envvar:" +"`exec_prefix`." +msgstr "" + +#: ../Doc/c-api/intro.rst:93 +msgid "" +"C++ users should note that though the API is defined entirely using C, the " +"header files do properly declare the entry points to be ``extern \"C\"``, so " +"there is no need to do anything special to use the API from C++." +msgstr "" + +#: ../Doc/c-api/intro.rst:99 +msgid "Useful macros" +msgstr "" + +#: ../Doc/c-api/intro.rst:101 +msgid "" +"Several useful macros are defined in the Python header files. Many are " +"defined closer to where they are useful (e.g. :c:macro:`Py_RETURN_NONE`). " +"Others of a more general utility are defined here. This is not necessarily " +"a complete listing." +msgstr "" + +#: ../Doc/c-api/intro.rst:108 +msgid "" +"Use this when you have a code path that you do not expect to be reached. For " +"example, in the ``default:`` clause in a ``switch`` statement for which all " +"possible values are covered in ``case`` statements. Use this in places " +"where you might be tempted to put an ``assert(0)`` or ``abort()`` call." +msgstr "" + +#: ../Doc/c-api/intro.rst:117 +msgid "Return the absolute value of ``x``." +msgstr "" + +#: ../Doc/c-api/intro.rst:123 +msgid "Return the minimum value between ``x`` and ``y``." +msgstr "" + +#: ../Doc/c-api/intro.rst:129 +msgid "Return the maximum value between ``x`` and ``y``." +msgstr "" + +#: ../Doc/c-api/intro.rst:135 +msgid "" +"Convert ``x`` to a C string. E.g. ``Py_STRINGIFY(123)`` returns ``\"123\"``." +msgstr "" + +#: ../Doc/c-api/intro.rst:142 +msgid "Return the size of a structure (``type``) ``member`` in bytes." +msgstr "" + +#: ../Doc/c-api/intro.rst:148 +msgid "" +"Argument must be a character or an integer in the range [-128, 127] or [0, " +"255]. This macro returns ``c`` cast to an ``unsigned char``." +msgstr "" + +#: ../Doc/c-api/intro.rst:153 +msgid "" +"Like ``getenv(s)``, but returns *NULL* if :option:`-E` was passed on the " +"command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set)." +msgstr "" + +#: ../Doc/c-api/intro.rst:158 +msgid "" +"Use this for unused arguments in a function definition to silence compiler " +"warnings, e.g. ``PyObject* func(PyObject *Py_UNUSED(ignored))``." +msgstr "" + +#: ../Doc/c-api/intro.rst:167 +msgid "Objects, Types and Reference Counts" +msgstr "" + +#: ../Doc/c-api/intro.rst:171 +msgid "" +"Most Python/C API functions have one or more arguments as well as a return " +"value of type :c:type:`PyObject\\*`. This type is a pointer to an opaque " +"data type representing an arbitrary Python object. Since all Python object " +"types are treated the same way by the Python language in most situations (e." +"g., assignments, scope rules, and argument passing), it is only fitting that " +"they should be represented by a single C type. Almost all Python objects " +"live on the heap: you never declare an automatic or static variable of type :" +"c:type:`PyObject`, only pointer variables of type :c:type:`PyObject\\*` can " +"be declared. The sole exception are the type objects; since these must " +"never be deallocated, they are typically static :c:type:`PyTypeObject` " +"objects." +msgstr "" + +#: ../Doc/c-api/intro.rst:182 +msgid "" +"All Python objects (even Python integers) have a :dfn:`type` and a :dfn:" +"`reference count`. An object's type determines what kind of object it is (e." +"g., an integer, a list, or a user-defined function; there are many more as " +"explained in :ref:`types`). For each of the well-known types there is a " +"macro to check whether an object is of that type; for instance, " +"``PyList_Check(a)`` is true if (and only if) the object pointed to by *a* is " +"a Python list." +msgstr "" + +#: ../Doc/c-api/intro.rst:193 +msgid "Reference Counts" +msgstr "Compteurs de références" + +#: ../Doc/c-api/intro.rst:195 +msgid "" +"The reference count is important because today's computers have a finite " +"(and often severely limited) memory size; it counts how many different " +"places there are that have a reference to an object. Such a place could be " +"another object, or a global (or static) C variable, or a local variable in " +"some C function. When an object's reference count becomes zero, the object " +"is deallocated. If it contains references to other objects, their " +"reference count is decremented. Those other objects may be deallocated in " +"turn, if this decrement makes their reference count become zero, and so on. " +"(There's an obvious problem with objects that reference each other here; " +"for now, the solution is \"don't do that.\")" +msgstr "" + +#: ../Doc/c-api/intro.rst:210 +msgid "" +"Reference counts are always manipulated explicitly. The normal way is to " +"use the macro :c:func:`Py_INCREF` to increment an object's reference count " +"by one, and :c:func:`Py_DECREF` to decrement it by one. The :c:func:" +"`Py_DECREF` macro is considerably more complex than the incref one, since it " +"must check whether the reference count becomes zero and then cause the " +"object's deallocator to be called. The deallocator is a function pointer " +"contained in the object's type structure. The type-specific deallocator " +"takes care of decrementing the reference counts for other objects contained " +"in the object if this is a compound object type, such as a list, as well as " +"performing any additional finalization that's needed. There's no chance " +"that the reference count can overflow; at least as many bits are used to " +"hold the reference count as there are distinct memory locations in virtual " +"memory (assuming ``sizeof(Py_ssize_t) >= sizeof(void*)``). Thus, the " +"reference count increment is a simple operation." +msgstr "" + +#: ../Doc/c-api/intro.rst:224 +msgid "" +"It is not necessary to increment an object's reference count for every " +"local variable that contains a pointer to an object. In theory, the " +"object's reference count goes up by one when the variable is made to point " +"to it and it goes down by one when the variable goes out of scope. " +"However, these two cancel each other out, so at the end the reference count " +"hasn't changed. The only real reason to use the reference count is to " +"prevent the object from being deallocated as long as our variable is " +"pointing to it. If we know that there is at least one other reference to " +"the object that lives at least as long as our variable, there is no need to " +"increment the reference count temporarily. An important situation where " +"this arises is in objects that are passed as arguments to C functions in an " +"extension module that are called from Python; the call mechanism guarantees " +"to hold a reference to every argument for the duration of the call." +msgstr "" + +#: ../Doc/c-api/intro.rst:238 +msgid "" +"However, a common pitfall is to extract an object from a list and hold on to " +"it for a while without incrementing its reference count. Some other " +"operation might conceivably remove the object from the list, decrementing " +"its reference count and possible deallocating it. The real danger is that " +"innocent-looking operations may invoke arbitrary Python code which could do " +"this; there is a code path which allows control to flow back to the user " +"from a :c:func:`Py_DECREF`, so almost any operation is potentially dangerous." +msgstr "" + +#: ../Doc/c-api/intro.rst:246 +msgid "" +"A safe approach is to always use the generic operations (functions whose " +"name begins with ``PyObject_``, ``PyNumber_``, ``PySequence_`` or " +"``PyMapping_``). These operations always increment the reference count of " +"the object they return. This leaves the caller with the responsibility to " +"call :c:func:`Py_DECREF` when they are done with the result; this soon " +"becomes second nature." +msgstr "" + +#: ../Doc/c-api/intro.rst:256 +msgid "Reference Count Details" +msgstr "" + +#: ../Doc/c-api/intro.rst:258 +msgid "" +"The reference count behavior of functions in the Python/C API is best " +"explained in terms of *ownership of references*. Ownership pertains to " +"references, never to objects (objects are not owned: they are always " +"shared). \"Owning a reference\" means being responsible for calling " +"Py_DECREF on it when the reference is no longer needed. Ownership can also " +"be transferred, meaning that the code that receives ownership of the " +"reference then becomes responsible for eventually decref'ing it by calling :" +"c:func:`Py_DECREF` or :c:func:`Py_XDECREF` when it's no longer needed---or " +"passing on this responsibility (usually to its caller). When a function " +"passes ownership of a reference on to its caller, the caller is said to " +"receive a *new* reference. When no ownership is transferred, the caller is " +"said to *borrow* the reference. Nothing needs to be done for a borrowed " +"reference." +msgstr "" + +#: ../Doc/c-api/intro.rst:271 +msgid "" +"Conversely, when a calling function passes in a reference to an object, " +"there are two possibilities: the function *steals* a reference to the " +"object, or it does not. *Stealing a reference* means that when you pass a " +"reference to a function, that function assumes that it now owns that " +"reference, and you are not responsible for it any longer." +msgstr "" + +#: ../Doc/c-api/intro.rst:281 +msgid "" +"Few functions steal references; the two notable exceptions are :c:func:" +"`PyList_SetItem` and :c:func:`PyTuple_SetItem`, which steal a reference to " +"the item (but not to the tuple or list into which the item is put!). These " +"functions were designed to steal a reference because of a common idiom for " +"populating a tuple or list with newly created objects; for example, the code " +"to create the tuple ``(1, 2, \"three\")`` could look like this (forgetting " +"about error handling for the moment; a better way to code this is shown " +"below)::" +msgstr "" + +#: ../Doc/c-api/intro.rst:296 +msgid "" +"Here, :c:func:`PyLong_FromLong` returns a new reference which is immediately " +"stolen by :c:func:`PyTuple_SetItem`. When you want to keep using an object " +"although the reference to it will be stolen, use :c:func:`Py_INCREF` to grab " +"another reference before calling the reference-stealing function." +msgstr "" + +#: ../Doc/c-api/intro.rst:301 +msgid "" +"Incidentally, :c:func:`PyTuple_SetItem` is the *only* way to set tuple " +"items; :c:func:`PySequence_SetItem` and :c:func:`PyObject_SetItem` refuse to " +"do this since tuples are an immutable data type. You should only use :c:" +"func:`PyTuple_SetItem` for tuples that you are creating yourself." +msgstr "" + +#: ../Doc/c-api/intro.rst:306 +msgid "" +"Equivalent code for populating a list can be written using :c:func:" +"`PyList_New` and :c:func:`PyList_SetItem`." +msgstr "" + +#: ../Doc/c-api/intro.rst:309 +msgid "" +"However, in practice, you will rarely use these ways of creating and " +"populating a tuple or list. There's a generic function, :c:func:" +"`Py_BuildValue`, that can create most common objects from C values, directed " +"by a :dfn:`format string`. For example, the above two blocks of code could " +"be replaced by the following (which also takes care of the error checking)::" +msgstr "" + +#: ../Doc/c-api/intro.rst:320 +msgid "" +"It is much more common to use :c:func:`PyObject_SetItem` and friends with " +"items whose references you are only borrowing, like arguments that were " +"passed in to the function you are writing. In that case, their behaviour " +"regarding reference counts is much saner, since you don't have to increment " +"a reference count so you can give a reference away (\"have it be stolen\"). " +"For example, this function sets all items of a list (actually, any mutable " +"sequence) to a given item::" +msgstr "" + +#: ../Doc/c-api/intro.rst:350 +msgid "" +"The situation is slightly different for function return values. While " +"passing a reference to most functions does not change your ownership " +"responsibilities for that reference, many functions that return a reference " +"to an object give you ownership of the reference. The reason is simple: in " +"many cases, the returned object is created on the fly, and the reference " +"you get is the only reference to the object. Therefore, the generic " +"functions that return object references, like :c:func:`PyObject_GetItem` " +"and :c:func:`PySequence_GetItem`, always return a new reference (the caller " +"becomes the owner of the reference)." +msgstr "" + +#: ../Doc/c-api/intro.rst:359 +msgid "" +"It is important to realize that whether you own a reference returned by a " +"function depends on which function you call only --- *the plumage* (the type " +"of the object passed as an argument to the function) *doesn't enter into it!" +"* Thus, if you extract an item from a list using :c:func:`PyList_GetItem`, " +"you don't own the reference --- but if you obtain the same item from the " +"same list using :c:func:`PySequence_GetItem` (which happens to take exactly " +"the same arguments), you do own a reference to the returned object." +msgstr "" + +#: ../Doc/c-api/intro.rst:371 +msgid "" +"Here is an example of how you could write a function that computes the sum " +"of the items in a list of integers; once using :c:func:`PyList_GetItem`, " +"and once using :c:func:`PySequence_GetItem`. ::" +msgstr "" + +#: ../Doc/c-api/intro.rst:435 +msgid "Types" +msgstr "" + +#: ../Doc/c-api/intro.rst:437 +msgid "" +"There are few other data types that play a significant role in the Python/C " +"API; most are simple C types such as :c:type:`int`, :c:type:`long`, :c:type:" +"`double` and :c:type:`char\\*`. A few structure types are used to describe " +"static tables used to list the functions exported by a module or the data " +"attributes of a new object type, and another is used to describe the value " +"of a complex number. These will be discussed together with the functions " +"that use them." +msgstr "" + +#: ../Doc/c-api/intro.rst:449 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/c-api/intro.rst:451 +msgid "" +"The Python programmer only needs to deal with exceptions if specific error " +"handling is required; unhandled exceptions are automatically propagated to " +"the caller, then to the caller's caller, and so on, until they reach the top-" +"level interpreter, where they are reported to the user accompanied by a " +"stack traceback." +msgstr "" + +#: ../Doc/c-api/intro.rst:459 +msgid "" +"For C programmers, however, error checking always has to be explicit. All " +"functions in the Python/C API can raise exceptions, unless an explicit claim " +"is made otherwise in a function's documentation. In general, when a " +"function encounters an error, it sets an exception, discards any object " +"references that it owns, and returns an error indicator. If not documented " +"otherwise, this indicator is either *NULL* or ``-1``, depending on the " +"function's return type. A few functions return a Boolean true/false result, " +"with false indicating an error. Very few functions return no explicit error " +"indicator or have an ambiguous return value, and require explicit testing " +"for errors with :c:func:`PyErr_Occurred`. These exceptions are always " +"explicitly documented." +msgstr "" + +#: ../Doc/c-api/intro.rst:474 +msgid "" +"Exception state is maintained in per-thread storage (this is equivalent to " +"using global storage in an unthreaded application). A thread can be in one " +"of two states: an exception has occurred, or not. The function :c:func:" +"`PyErr_Occurred` can be used to check for this: it returns a borrowed " +"reference to the exception type object when an exception has occurred, and " +"*NULL* otherwise. There are a number of functions to set the exception " +"state: :c:func:`PyErr_SetString` is the most common (though not the most " +"general) function to set the exception state, and :c:func:`PyErr_Clear` " +"clears the exception state." +msgstr "" + +#: ../Doc/c-api/intro.rst:484 +msgid "" +"The full exception state consists of three objects (all of which can be " +"*NULL*): the exception type, the corresponding exception value, and the " +"traceback. These have the same meanings as the Python result of ``sys." +"exc_info()``; however, they are not the same: the Python objects represent " +"the last exception being handled by a Python :keyword:`try` ... :keyword:" +"`except` statement, while the C level exception state only exists while an " +"exception is being passed on between C functions until it reaches the Python " +"bytecode interpreter's main loop, which takes care of transferring it to " +"``sys.exc_info()`` and friends." +msgstr "" + +#: ../Doc/c-api/intro.rst:496 +msgid "" +"Note that starting with Python 1.5, the preferred, thread-safe way to access " +"the exception state from Python code is to call the function :func:`sys." +"exc_info`, which returns the per-thread exception state for Python code. " +"Also, the semantics of both ways to access the exception state have changed " +"so that a function which catches an exception will save and restore its " +"thread's exception state so as to preserve the exception state of its " +"caller. This prevents common bugs in exception handling code caused by an " +"innocent-looking function overwriting the exception being handled; it also " +"reduces the often unwanted lifetime extension for objects that are " +"referenced by the stack frames in the traceback." +msgstr "" + +#: ../Doc/c-api/intro.rst:507 +msgid "" +"As a general principle, a function that calls another function to perform " +"some task should check whether the called function raised an exception, and " +"if so, pass the exception state on to its caller. It should discard any " +"object references that it owns, and return an error indicator, but it " +"should *not* set another exception --- that would overwrite the exception " +"that was just raised, and lose important information about the exact cause " +"of the error." +msgstr "" + +#: ../Doc/c-api/intro.rst:516 +msgid "" +"A simple example of detecting exceptions and passing them on is shown in " +"the :c:func:`sum_sequence` example above. It so happens that this example " +"doesn't need to clean up any owned references when it detects an error. The " +"following example function shows some error cleanup. First, to remind you " +"why you like Python, we show the equivalent Python code::" +msgstr "" + +#: ../Doc/c-api/intro.rst:531 +msgid "Here is the corresponding C code, in all its glory::" +msgstr "" + +#: ../Doc/c-api/intro.rst:583 +msgid "" +"This example represents an endorsed use of the ``goto`` statement in C! It " +"illustrates the use of :c:func:`PyErr_ExceptionMatches` and :c:func:" +"`PyErr_Clear` to handle specific exceptions, and the use of :c:func:" +"`Py_XDECREF` to dispose of owned references that may be *NULL* (note the " +"``'X'`` in the name; :c:func:`Py_DECREF` would crash when confronted with a " +"*NULL* reference). It is important that the variables used to hold owned " +"references are initialized to *NULL* for this to work; likewise, the " +"proposed return value is initialized to ``-1`` (failure) and only set to " +"success after the final call made is successful." +msgstr "" + +#: ../Doc/c-api/intro.rst:597 +msgid "Embedding Python" +msgstr "Embarquer Python" + +#: ../Doc/c-api/intro.rst:599 +msgid "" +"The one important task that only embedders (as opposed to extension writers) " +"of the Python interpreter have to worry about is the initialization, and " +"possibly the finalization, of the Python interpreter. Most functionality of " +"the interpreter can only be used after the interpreter has been initialized." +msgstr "" + +#: ../Doc/c-api/intro.rst:612 +msgid "" +"The basic initialization function is :c:func:`Py_Initialize`. This " +"initializes the table of loaded modules, and creates the fundamental " +"modules :mod:`builtins`, :mod:`__main__`, and :mod:`sys`. It also " +"initializes the module search path (``sys.path``)." +msgstr "" + +#: ../Doc/c-api/intro.rst:619 +msgid "" +":c:func:`Py_Initialize` does not set the \"script argument list\" (``sys." +"argv``). If this variable is needed by Python code that will be executed " +"later, it must be set explicitly with a call to ``PySys_SetArgvEx(argc, " +"argv, updatepath)`` after the call to :c:func:`Py_Initialize`." +msgstr "" + +#: ../Doc/c-api/intro.rst:624 +msgid "" +"On most systems (in particular, on Unix and Windows, although the details " +"are slightly different), :c:func:`Py_Initialize` calculates the module " +"search path based upon its best guess for the location of the standard " +"Python interpreter executable, assuming that the Python library is found in " +"a fixed location relative to the Python interpreter executable. In " +"particular, it looks for a directory named :file:`lib/python{X.Y}` relative " +"to the parent directory where the executable named :file:`python` is found " +"on the shell command search path (the environment variable :envvar:`PATH`)." +msgstr "" + +#: ../Doc/c-api/intro.rst:633 +msgid "" +"For instance, if the Python executable is found in :file:`/usr/local/bin/" +"python`, it will assume that the libraries are in :file:`/usr/local/lib/" +"python{X.Y}`. (In fact, this particular path is also the \"fallback\" " +"location, used when no executable file named :file:`python` is found along :" +"envvar:`PATH`.) The user can override this behavior by setting the " +"environment variable :envvar:`PYTHONHOME`, or insert additional directories " +"in front of the standard path by setting :envvar:`PYTHONPATH`." +msgstr "" + +#: ../Doc/c-api/intro.rst:648 +msgid "" +"The embedding application can steer the search by calling " +"``Py_SetProgramName(file)`` *before* calling :c:func:`Py_Initialize`. Note " +"that :envvar:`PYTHONHOME` still overrides this and :envvar:`PYTHONPATH` is " +"still inserted in front of the standard path. An application that requires " +"total control has to provide its own implementation of :c:func:" +"`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, and :c:" +"func:`Py_GetProgramFullPath` (all defined in :file:`Modules/getpath.c`)." +msgstr "" + +#: ../Doc/c-api/intro.rst:658 +msgid "" +"Sometimes, it is desirable to \"uninitialize\" Python. For instance, the " +"application may want to start over (make another call to :c:func:" +"`Py_Initialize`) or the application is simply done with its use of Python " +"and wants to free memory allocated by Python. This can be accomplished by " +"calling :c:func:`Py_FinalizeEx`. The function :c:func:`Py_IsInitialized` " +"returns true if Python is currently in the initialized state. More " +"information about these functions is given in a later chapter. Notice that :" +"c:func:`Py_FinalizeEx` does *not* free all memory allocated by the Python " +"interpreter, e.g. memory allocated by extension modules currently cannot be " +"released." +msgstr "" + +#: ../Doc/c-api/intro.rst:672 +msgid "Debugging Builds" +msgstr "" + +#: ../Doc/c-api/intro.rst:674 +msgid "" +"Python can be built with several macros to enable extra checks of the " +"interpreter and extension modules. These checks tend to add a large amount " +"of overhead to the runtime so they are not enabled by default." +msgstr "" + +#: ../Doc/c-api/intro.rst:678 +msgid "" +"A full list of the various types of debugging builds is in the file :file:" +"`Misc/SpecialBuilds.txt` in the Python source distribution. Builds are " +"available that support tracing of reference counts, debugging the memory " +"allocator, or low-level profiling of the main interpreter loop. Only the " +"most frequently-used builds will be described in the remainder of this " +"section." +msgstr "" + +#: ../Doc/c-api/intro.rst:684 +msgid "" +"Compiling the interpreter with the :c:macro:`Py_DEBUG` macro defined " +"produces what is generally meant by \"a debug build\" of Python. :c:macro:" +"`Py_DEBUG` is enabled in the Unix build by adding ``--with-pydebug`` to the :" +"file:`./configure` command. It is also implied by the presence of the not-" +"Python-specific :c:macro:`_DEBUG` macro. When :c:macro:`Py_DEBUG` is " +"enabled in the Unix build, compiler optimization is disabled." +msgstr "" + +#: ../Doc/c-api/intro.rst:691 +msgid "" +"In addition to the reference count debugging described below, the following " +"extra checks are performed:" +msgstr "" + +#: ../Doc/c-api/intro.rst:694 +msgid "Extra checks are added to the object allocator." +msgstr "" + +#: ../Doc/c-api/intro.rst:696 +msgid "Extra checks are added to the parser and compiler." +msgstr "" + +#: ../Doc/c-api/intro.rst:698 +msgid "" +"Downcasts from wide types to narrow types are checked for loss of " +"information." +msgstr "" + +#: ../Doc/c-api/intro.rst:700 +msgid "" +"A number of assertions are added to the dictionary and set implementations. " +"In addition, the set object acquires a :meth:`test_c_api` method." +msgstr "" + +#: ../Doc/c-api/intro.rst:703 +msgid "Sanity checks of the input arguments are added to frame creation." +msgstr "" + +#: ../Doc/c-api/intro.rst:705 +msgid "" +"The storage for ints is initialized with a known invalid pattern to catch " +"reference to uninitialized digits." +msgstr "" + +#: ../Doc/c-api/intro.rst:708 +msgid "" +"Low-level tracing and extra exception checking are added to the runtime " +"virtual machine." +msgstr "" + +#: ../Doc/c-api/intro.rst:711 +msgid "Extra checks are added to the memory arena implementation." +msgstr "" + +#: ../Doc/c-api/intro.rst:713 +msgid "Extra debugging is added to the thread module." +msgstr "" + +#: ../Doc/c-api/intro.rst:715 +msgid "There may be additional checks not mentioned here." +msgstr "" + +#: ../Doc/c-api/intro.rst:717 +msgid "" +"Defining :c:macro:`Py_TRACE_REFS` enables reference tracing. When defined, " +"a circular doubly linked list of active objects is maintained by adding two " +"extra fields to every :c:type:`PyObject`. Total allocations are tracked as " +"well. Upon exit, all existing references are printed. (In interactive mode " +"this happens after every statement run by the interpreter.) Implied by :c:" +"macro:`Py_DEBUG`." +msgstr "" + +#: ../Doc/c-api/intro.rst:723 +msgid "" +"Please refer to :file:`Misc/SpecialBuilds.txt` in the Python source " +"distribution for more detailed information." +msgstr "" diff --git a/c-api/iter.po b/c-api/iter.po new file mode 100644 index 000000000..4b93f6dde --- /dev/null +++ b/c-api/iter.po @@ -0,0 +1,48 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-02-15 00:33+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/iter.rst:6 +msgid "Iterator Protocol" +msgstr "Protocole d'itération" + +#: ../Doc/c-api/iter.rst:8 +msgid "There are two functions specifically for working with iterators." +msgstr "Il existe deux fonctions dédiées à l'interaction avec les itérateurs." + +#: ../Doc/c-api/iter.rst:12 +msgid "Return true if the object *o* supports the iterator protocol." +msgstr "Renvoie vrai si l'objet *o* supporte le protocole d'itération." + +#: ../Doc/c-api/iter.rst:17 +msgid "" +"Return the next value from the iteration *o*. The object must be an " +"iterator (it is up to the caller to check this). If there are no remaining " +"values, returns *NULL* with no exception set. If an error occurs while " +"retrieving the item, returns *NULL* and passes along the exception." +msgstr "" +"Renvoie la valeur suivante d'une itération de *o*. L'objet doit être un " +"itérateur (c'est à l'appelant de faire cette vérification). Renvoie *NULL* " +"s'il n'y a plus de valeurs, sans déclarer d'exception. Renvoie *NULL* en " +"déclarant une exception si une erreur survient lors de la récupération d'un " +"élément." + +#: ../Doc/c-api/iter.rst:22 +msgid "" +"To write a loop which iterates over an iterator, the C code should look " +"something like this::" +msgstr "" +"Pour écrire une boucle itérant un itérateur, le code C devrait ressembler " +"à : ::" diff --git a/c-api/iterator.po b/c-api/iterator.po new file mode 100644 index 000000000..644360afe --- /dev/null +++ b/c-api/iterator.po @@ -0,0 +1,81 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2019-03-26 17:16+0100\n" +"Last-Translator: ANTOINE FOURES \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/iterator.rst:6 +msgid "Iterator Objects" +msgstr "Itérateurs" + +#: ../Doc/c-api/iterator.rst:8 +msgid "" +"Python provides two general-purpose iterator objects. The first, a sequence " +"iterator, works with an arbitrary sequence supporting the :meth:" +"`__getitem__` method. The second works with a callable object and a " +"sentinel value, calling the callable for each item in the sequence, and " +"ending the iteration when the sentinel value is returned." +msgstr "" +"Python fournit deux itérateurs d'usage générique. Le premier est un " +"itérateur de séquence, il fonctionne avec n'importe quelle séquence " +"implémentant la méthode :meth:`__getitem__`. Le second fonctionne avec un " +"objet appelable et une valeur sentinelle, l'appelable permet d'obtenir " +"chaque élément de la séquence, et l'itération se termine lorsque la " +"sentinelle est atteinte." + +#: ../Doc/c-api/iterator.rst:17 +msgid "" +"Type object for iterator objects returned by :c:func:`PySeqIter_New` and the " +"one-argument form of the :func:`iter` built-in function for built-in " +"sequence types." +msgstr "" +"Type des itérateurs renvoyés par les fonctions :c:func:`PySeqIter_New` et la " +"forme à un argument de la fonction native :func:`iter` pour les séquences " +"natives." + +#: ../Doc/c-api/iterator.rst:24 +msgid "Return true if the type of *op* is :c:data:`PySeqIter_Type`." +msgstr "Renvoie vrai si *op* est de type :c:data:`PySeqIter_Type`." + +#: ../Doc/c-api/iterator.rst:29 +msgid "" +"Return an iterator that works with a general sequence object, *seq*. The " +"iteration ends when the sequence raises :exc:`IndexError` for the " +"subscripting operation." +msgstr "" +"Renvoie un itérateur sur la séquence *seq*. L'itération prend fin lorsque la " +"séquence lève :exc:`IndexError` lors d'une tentative d'accès." + +#: ../Doc/c-api/iterator.rst:36 +msgid "" +"Type object for iterator objects returned by :c:func:`PyCallIter_New` and " +"the two-argument form of the :func:`iter` built-in function." +msgstr "" +"Type de l'itérateur renvoyé par les fonctions :c:func:`PyCallIter_New` et :" +"func:`iter` à deux arguments." + +#: ../Doc/c-api/iterator.rst:42 +msgid "Return true if the type of *op* is :c:data:`PyCallIter_Type`." +msgstr "Renvoie vrai si *op* est de type :c:data:`PyCallIter_Type`." + +#: ../Doc/c-api/iterator.rst:47 +msgid "" +"Return a new iterator. The first parameter, *callable*, can be any Python " +"callable object that can be called with no parameters; each call to it " +"should return the next item in the iteration. When *callable* returns a " +"value equal to *sentinel*, the iteration will be terminated." +msgstr "" +"Renvoie un nouvel itérateur. Le premier paramètre, *callable*, peut être " +"n'importe quel objet Python appelable sans aucun paramètre ; chaque appel " +"doit renvoyer l'élément suivant de l'itération. Lorsque *callable* renvoie " +"une valeur égale à *sentinel*, l'itération prend fin." diff --git a/c-api/list.po b/c-api/list.po new file mode 100644 index 000000000..db5daea9a --- /dev/null +++ b/c-api/list.po @@ -0,0 +1,153 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/list.rst:6 +msgid "List Objects" +msgstr "" + +#: ../Doc/c-api/list.rst:13 +msgid "This subtype of :c:type:`PyObject` represents a Python list object." +msgstr "" + +#: ../Doc/c-api/list.rst:18 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python list type. " +"This is the same object as :class:`list` in the Python layer." +msgstr "" + +#: ../Doc/c-api/list.rst:24 +msgid "" +"Return true if *p* is a list object or an instance of a subtype of the list " +"type." +msgstr "" + +#: ../Doc/c-api/list.rst:30 +msgid "" +"Return true if *p* is a list object, but not an instance of a subtype of the " +"list type." +msgstr "" + +#: ../Doc/c-api/list.rst:36 +msgid "Return a new list of length *len* on success, or *NULL* on failure." +msgstr "" + +#: ../Doc/c-api/list.rst:40 +msgid "" +"If *len* is greater than zero, the returned list object's items are set to " +"``NULL``. Thus you cannot use abstract API functions such as :c:func:" +"`PySequence_SetItem` or expose the object to Python code before setting all " +"items to a real object with :c:func:`PyList_SetItem`." +msgstr "" + +#: ../Doc/c-api/list.rst:50 +msgid "" +"Return the length of the list object in *list*; this is equivalent to " +"``len(list)`` on a list object." +msgstr "" + +#: ../Doc/c-api/list.rst:56 +msgid "Macro form of :c:func:`PyList_Size` without error checking." +msgstr "" + +#: ../Doc/c-api/list.rst:61 +msgid "" +"Return the object at position *index* in the list pointed to by *list*. The " +"position must be positive, indexing from the end of the list is not " +"supported. If *index* is out of bounds, return *NULL* and set an :exc:" +"`IndexError` exception." +msgstr "" + +#: ../Doc/c-api/list.rst:69 +msgid "Macro form of :c:func:`PyList_GetItem` without error checking." +msgstr "" + +#: ../Doc/c-api/list.rst:74 +msgid "" +"Set the item at index *index* in list to *item*. Return ``0`` on success or " +"``-1`` on failure." +msgstr "" + +#: ../Doc/c-api/list.rst:79 +msgid "" +"This function \"steals\" a reference to *item* and discards a reference to " +"an item already in the list at the affected position." +msgstr "" + +#: ../Doc/c-api/list.rst:85 +msgid "" +"Macro form of :c:func:`PyList_SetItem` without error checking. This is " +"normally only used to fill in new lists where there is no previous content." +msgstr "" + +#: ../Doc/c-api/list.rst:90 +msgid "" +"This macro \"steals\" a reference to *item*, and, unlike :c:func:" +"`PyList_SetItem`, does *not* discard a reference to any item that is being " +"replaced; any reference in *list* at position *i* will be leaked." +msgstr "" + +#: ../Doc/c-api/list.rst:98 +msgid "" +"Insert the item *item* into list *list* in front of index *index*. Return " +"``0`` if successful; return ``-1`` and set an exception if unsuccessful. " +"Analogous to ``list.insert(index, item)``." +msgstr "" + +#: ../Doc/c-api/list.rst:105 +msgid "" +"Append the object *item* at the end of list *list*. Return ``0`` if " +"successful; return ``-1`` and set an exception if unsuccessful. Analogous " +"to ``list.append(item)``." +msgstr "" + +#: ../Doc/c-api/list.rst:112 +msgid "" +"Return a list of the objects in *list* containing the objects *between* " +"*low* and *high*. Return *NULL* and set an exception if unsuccessful. " +"Analogous to ``list[low:high]``. Negative indices, as when slicing from " +"Python, are not supported." +msgstr "" + +#: ../Doc/c-api/list.rst:120 +msgid "" +"Set the slice of *list* between *low* and *high* to the contents of " +"*itemlist*. Analogous to ``list[low:high] = itemlist``. The *itemlist* may " +"be *NULL*, indicating the assignment of an empty list (slice deletion). " +"Return ``0`` on success, ``-1`` on failure. Negative indices, as when " +"slicing from Python, are not supported." +msgstr "" + +#: ../Doc/c-api/list.rst:129 +msgid "" +"Sort the items of *list* in place. Return ``0`` on success, ``-1`` on " +"failure. This is equivalent to ``list.sort()``." +msgstr "" + +#: ../Doc/c-api/list.rst:135 +msgid "" +"Reverse the items of *list* in place. Return ``0`` on success, ``-1`` on " +"failure. This is the equivalent of ``list.reverse()``." +msgstr "" + +#: ../Doc/c-api/list.rst:143 +msgid "" +"Return a new tuple object containing the contents of *list*; equivalent to " +"``tuple(list)``." +msgstr "" + +#: ../Doc/c-api/list.rst:149 +msgid "Clear the free list. Return the total number of freed items." +msgstr "" diff --git a/c-api/long.po b/c-api/long.po new file mode 100644 index 000000000..9262049f8 --- /dev/null +++ b/c-api/long.po @@ -0,0 +1,324 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-10 10:50+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/long.rst:6 +msgid "Integer Objects" +msgstr "Objets *Integer*" + +#: ../Doc/c-api/long.rst:11 +msgid "" +"All integers are implemented as \"long\" integer objects of arbitrary size." +msgstr "" + +#: ../Doc/c-api/long.rst:13 +msgid "" +"On error, most ``PyLong_As*`` APIs return ``(return type)-1`` which cannot " +"be distinguished from a number. Use :c:func:`PyErr_Occurred` to " +"disambiguate." +msgstr "" + +#: ../Doc/c-api/long.rst:18 +msgid "This subtype of :c:type:`PyObject` represents a Python integer object." +msgstr "" + +#: ../Doc/c-api/long.rst:23 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python integer type. " +"This is the same object as :class:`int` in the Python layer." +msgstr "" + +#: ../Doc/c-api/long.rst:29 +msgid "" +"Return true if its argument is a :c:type:`PyLongObject` or a subtype of :c:" +"type:`PyLongObject`." +msgstr "" + +#: ../Doc/c-api/long.rst:35 +msgid "" +"Return true if its argument is a :c:type:`PyLongObject`, but not a subtype " +"of :c:type:`PyLongObject`." +msgstr "" + +#: ../Doc/c-api/long.rst:41 +msgid "" +"Return a new :c:type:`PyLongObject` object from *v*, or *NULL* on failure." +msgstr "" + +#: ../Doc/c-api/long.rst:43 +msgid "" +"The current implementation keeps an array of integer objects for all " +"integers between ``-5`` and ``256``, when you create an int in that range " +"you actually just get back a reference to the existing object. So it should " +"be possible to change the value of ``1``. I suspect the behaviour of Python " +"in this case is undefined. :-)" +msgstr "" + +#: ../Doc/c-api/long.rst:52 +msgid "" +"Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long`, " +"or *NULL* on failure." +msgstr "" + +#: ../Doc/c-api/long.rst:58 +msgid "" +"Return a new :c:type:`PyLongObject` object from a C :c:type:`Py_ssize_t`, or " +"*NULL* on failure." +msgstr "" + +#: ../Doc/c-api/long.rst:64 +msgid "" +"Return a new :c:type:`PyLongObject` object from a C :c:type:`size_t`, or " +"*NULL* on failure." +msgstr "" + +#: ../Doc/c-api/long.rst:70 +msgid "" +"Return a new :c:type:`PyLongObject` object from a C :c:type:`long long`, or " +"*NULL* on failure." +msgstr "" + +#: ../Doc/c-api/long.rst:76 +msgid "" +"Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long " +"long`, or *NULL* on failure." +msgstr "" + +#: ../Doc/c-api/long.rst:82 +msgid "" +"Return a new :c:type:`PyLongObject` object from the integer part of *v*, or " +"*NULL* on failure." +msgstr "" + +#: ../Doc/c-api/long.rst:88 +msgid "" +"Return a new :c:type:`PyLongObject` based on the string value in *str*, " +"which is interpreted according to the radix in *base*. If *pend* is non-" +"*NULL*, *\\*pend* will point to the first character in *str* which follows " +"the representation of the number. If *base* is ``0``, *str* is interpreted " +"using the :ref:`integers` definition; in this case, leading zeros in a non-" +"zero decimal number raises a :exc:`ValueError`. If *base* is not ``0``, it " +"must be between ``2`` and ``36``, inclusive. Leading spaces and single " +"underscores after a base specifier and between digits are ignored. If there " +"are no digits, :exc:`ValueError` will be raised." +msgstr "" + +#: ../Doc/c-api/long.rst:101 +msgid "" +"Convert a sequence of Unicode digits to a Python integer value. The Unicode " +"string is first encoded to a byte string using :c:func:" +"`PyUnicode_EncodeDecimal` and then converted using :c:func:" +"`PyLong_FromString`." +msgstr "" + +#: ../Doc/c-api/long.rst:107 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`PyLong_FromUnicodeObject`." +msgstr "" + +#: ../Doc/c-api/long.rst:112 +msgid "" +"Convert a sequence of Unicode digits in the string *u* to a Python integer " +"value. The Unicode string is first encoded to a byte string using :c:func:" +"`PyUnicode_EncodeDecimal` and then converted using :c:func:" +"`PyLong_FromString`." +msgstr "" + +#: ../Doc/c-api/long.rst:122 +msgid "" +"Create a Python integer from the pointer *p*. The pointer value can be " +"retrieved from the resulting value using :c:func:`PyLong_AsVoidPtr`." +msgstr "" + +#: ../Doc/c-api/long.rst:133 ../Doc/c-api/long.rst:145 +msgid "" +"Return a C :c:type:`long` representation of *obj*. If *obj* is not an " +"instance of :c:type:`PyLongObject`, first call its :meth:`__int__` method " +"(if present) to convert it to a :c:type:`PyLongObject`." +msgstr "" + +#: ../Doc/c-api/long.rst:137 ../Doc/c-api/long.rst:166 +msgid "" +"Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" +"type:`long`." +msgstr "" + +#: ../Doc/c-api/long.rst:140 ../Doc/c-api/long.rst:154 +#: ../Doc/c-api/long.rst:169 ../Doc/c-api/long.rst:183 +#: ../Doc/c-api/long.rst:200 +msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." +msgstr "" + +#: ../Doc/c-api/long.rst:149 +msgid "" +"If the value of *obj* is greater than :const:`LONG_MAX` or less than :const:" +"`LONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and return " +"``-1``; otherwise, set *\\*overflow* to ``0``. If any other exception " +"occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." +msgstr "" + +#: ../Doc/c-api/long.rst:162 ../Doc/c-api/long.rst:174 +msgid "" +"Return a C :c:type:`long long` representation of *obj*. If *obj* is not an " +"instance of :c:type:`PyLongObject`, first call its :meth:`__int__` method " +"(if present) to convert it to a :c:type:`PyLongObject`." +msgstr "" + +#: ../Doc/c-api/long.rst:178 +msgid "" +"If the value of *obj* is greater than :const:`PY_LLONG_MAX` or less than :" +"const:`PY_LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, " +"and return ``-1``; otherwise, set *\\*overflow* to ``0``. If any other " +"exception occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." +msgstr "" + +#: ../Doc/c-api/long.rst:194 +msgid "" +"Return a C :c:type:`Py_ssize_t` representation of *pylong*. *pylong* must " +"be an instance of :c:type:`PyLongObject`." +msgstr "" + +#: ../Doc/c-api/long.rst:197 +msgid "" +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" +"type:`Py_ssize_t`." +msgstr "" + +#: ../Doc/c-api/long.rst:209 +msgid "" +"Return a C :c:type:`unsigned long` representation of *pylong*. *pylong* " +"must be an instance of :c:type:`PyLongObject`." +msgstr "" + +#: ../Doc/c-api/long.rst:212 +msgid "" +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" +"type:`unsigned long`." +msgstr "" + +#: ../Doc/c-api/long.rst:215 +msgid "" +"Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " +"disambiguate." +msgstr "" + +#: ../Doc/c-api/long.rst:225 +msgid "" +"Return a C :c:type:`size_t` representation of *pylong*. *pylong* must be an " +"instance of :c:type:`PyLongObject`." +msgstr "" + +#: ../Doc/c-api/long.rst:228 +msgid "" +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" +"type:`size_t`." +msgstr "" + +#: ../Doc/c-api/long.rst:231 +msgid "" +"Returns ``(size_t)-1`` on error. Use :c:func:`PyErr_Occurred` to " +"disambiguate." +msgstr "" + +#: ../Doc/c-api/long.rst:240 +msgid "" +"Return a C :c:type:`unsigned long long` representation of *pylong*. " +"*pylong* must be an instance of :c:type:`PyLongObject`." +msgstr "" + +#: ../Doc/c-api/long.rst:243 +msgid "" +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for an :" +"c:type:`unsigned long long`." +msgstr "" + +#: ../Doc/c-api/long.rst:246 +msgid "" +"Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` to " +"disambiguate." +msgstr "" + +#: ../Doc/c-api/long.rst:249 +msgid "" +"A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`." +msgstr "" + +#: ../Doc/c-api/long.rst:255 +msgid "" +"Return a C :c:type:`unsigned long` representation of *obj*. If *obj* is not " +"an instance of :c:type:`PyLongObject`, first call its :meth:`__int__` method " +"(if present) to convert it to a :c:type:`PyLongObject`." +msgstr "" + +#: ../Doc/c-api/long.rst:259 +msgid "" +"If the value of *obj* is out of range for an :c:type:`unsigned long`, return " +"the reduction of that value modulo ``ULONG_MAX + 1``." +msgstr "" + +#: ../Doc/c-api/long.rst:262 +msgid "" +"Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " +"disambiguate." +msgstr "" + +#: ../Doc/c-api/long.rst:268 +msgid "" +"Return a C :c:type:`unsigned long long` representation of *obj*. If *obj* " +"is not an instance of :c:type:`PyLongObject`, first call its :meth:`__int__` " +"method (if present) to convert it to a :c:type:`PyLongObject`." +msgstr "" + +#: ../Doc/c-api/long.rst:272 +msgid "" +"If the value of *obj* is out of range for an :c:type:`unsigned long long`, " +"return the reduction of that value modulo ``PY_ULLONG_MAX + 1``." +msgstr "" + +#: ../Doc/c-api/long.rst:275 +msgid "" +"Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` " +"to disambiguate." +msgstr "" + +#: ../Doc/c-api/long.rst:281 +msgid "" +"Return a C :c:type:`double` representation of *pylong*. *pylong* must be an " +"instance of :c:type:`PyLongObject`." +msgstr "" + +#: ../Doc/c-api/long.rst:284 +msgid "" +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" +"type:`double`." +msgstr "" + +#: ../Doc/c-api/long.rst:287 +msgid "" +"Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." +msgstr "" + +#: ../Doc/c-api/long.rst:292 +msgid "" +"Convert a Python integer *pylong* to a C :c:type:`void` pointer. If *pylong* " +"cannot be converted, an :exc:`OverflowError` will be raised. This is only " +"assured to produce a usable :c:type:`void` pointer for values created with :" +"c:func:`PyLong_FromVoidPtr`." +msgstr "" + +#: ../Doc/c-api/long.rst:297 +msgid "Returns *NULL* on error. Use :c:func:`PyErr_Occurred` to disambiguate." +msgstr "" diff --git a/c-api/mapping.po b/c-api/mapping.po new file mode 100644 index 000000000..b715a0c74 --- /dev/null +++ b/c-api/mapping.po @@ -0,0 +1,130 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/mapping.rst:6 +msgid "Mapping Protocol" +msgstr "Protocole de correspondance" + +#: ../Doc/c-api/mapping.rst:8 +msgid "" +"See also :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` and :c:func:" +"`PyObject_DelItem`." +msgstr "" +"Voir aussi :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` et :c:func:" +"`PyObject_DelItem`." + +#: ../Doc/c-api/mapping.rst:14 +msgid "" +"Return ``1`` if the object provides mapping protocol or supports slicing, " +"and ``0`` otherwise. Note that it returns ``1`` for Python classes with a :" +"meth:`__getitem__` method since in general case it is impossible to " +"determine what the type of keys it supports. This function always succeeds." +msgstr "" + +#: ../Doc/c-api/mapping.rst:26 +msgid "" +"Returns the number of keys in object *o* on success, and ``-1`` on failure. " +"This is equivalent to the Python expression ``len(o)``." +msgstr "" +"Renvoie le nombre de clefs dans l'objet *o* et ``-1`` en cas d'échec. C'est " +"l'équivalent de l'expression Python ``len(o)``." + +#: ../Doc/c-api/mapping.rst:32 +msgid "" +"Return element of *o* corresponding to the string *key* or *NULL* on " +"failure. This is the equivalent of the Python expression ``o[key]``. See " +"also :c:func:`PyObject_GetItem`." +msgstr "" + +#: ../Doc/c-api/mapping.rst:39 +msgid "" +"Map the string *key* to the value *v* in object *o*. Returns ``-1`` on " +"failure. This is the equivalent of the Python statement ``o[key] = v``. See " +"also :c:func:`PyObject_SetItem`." +msgstr "" + +#: ../Doc/c-api/mapping.rst:46 +msgid "" +"Remove the mapping for the object *key* from the object *o*. Return ``-1`` " +"on failure. This is equivalent to the Python statement ``del o[key]``. This " +"is an alias of :c:func:`PyObject_DelItem`." +msgstr "" +"Supprime la correspondance associée à l'objet *key* dans l'objet *o*. " +"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " +"``del o[key]``. C'est un alias pour :c:func:`PyObject_DelItem`." + +#: ../Doc/c-api/mapping.rst:53 +msgid "" +"Remove the mapping for the string *key* from the object *o*. Return ``-1`` " +"on failure. This is equivalent to the Python statement ``del o[key]``." +msgstr "" +"Supprime la correspondance associée à la chaîne *key* dans l'objet *o*. " +"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " +"``del o[key]``." + +#: ../Doc/c-api/mapping.rst:59 ../Doc/c-api/mapping.rst:70 +msgid "" +"Return ``1`` if the mapping object has the key *key* and ``0`` otherwise. " +"This is equivalent to the Python expression ``key in o``. This function " +"always succeeds." +msgstr "" +"Renvoie ``1`` si l'objet de correspondance possède une clef *key* et ``0`` " +"sinon. C'est l'équivalent de l'expression Python ``key in o``. Cette " +"fonction ne provoque jamais d'erreur." + +#: ../Doc/c-api/mapping.rst:63 +msgid "" +"Note that exceptions which occur while calling the :meth:`__getitem__` " +"method will get suppressed. To get error reporting use :c:func:" +"`PyObject_GetItem()` instead." +msgstr "" +"Notez que les exceptions qui surviennent pendant l'appel de la méthode :meth:" +"`__getitem__` seront supprimées. Pour obtenir le rapport d'erreur, utilisez " +"plutôt :c:func:`PyObject_GetItem()`." + +#: ../Doc/c-api/mapping.rst:74 +msgid "" +"Note that exceptions which occur while calling the :meth:`__getitem__` " +"method and creating a temporary string object will get suppressed. To get " +"error reporting use :c:func:`PyMapping_GetItemString()` instead." +msgstr "" +"Notez que les exceptions qui surviennent en créant une chaîne de caractères " +"temporaire pendant l'appel de la méthode :meth:`__getitem__` seront " +"supprimées. Pour obtenir le rapport d'erreur, utilisez plutôt :c:func:" +"`PyMapping_GetItemString()`." + +#: ../Doc/c-api/mapping.rst:81 +msgid "" +"On success, return a list of the keys in object *o*. On failure, return " +"*NULL*." +msgstr "" + +#: ../Doc/c-api/mapping.rst:84 ../Doc/c-api/mapping.rst:93 +#: ../Doc/c-api/mapping.rst:102 +msgid "Previously, the function returned a list or a tuple." +msgstr "Auparavant, la fonction renvoyait une liste ou un n-uplet." + +#: ../Doc/c-api/mapping.rst:90 +msgid "" +"On success, return a list of the values in object *o*. On failure, return " +"*NULL*." +msgstr "" + +#: ../Doc/c-api/mapping.rst:99 +msgid "" +"On success, return a list of the items in object *o*, where each item is a " +"tuple containing a key-value pair. On failure, return *NULL*." +msgstr "" diff --git a/c-api/marshal.po b/c-api/marshal.po new file mode 100644 index 000000000..3b3eee189 --- /dev/null +++ b/c-api/marshal.po @@ -0,0 +1,113 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-08-03 17:52+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/marshal.rst:6 +msgid "Data marshalling support" +msgstr "" + +#: ../Doc/c-api/marshal.rst:8 +msgid "" +"These routines allow C code to work with serialized objects using the same " +"data format as the :mod:`marshal` module. There are functions to write data " +"into the serialization format, and additional functions that can be used to " +"read the data back. Files used to store marshalled data must be opened in " +"binary mode." +msgstr "" + +#: ../Doc/c-api/marshal.rst:14 +msgid "Numeric values are stored with the least significant byte first." +msgstr "" + +#: ../Doc/c-api/marshal.rst:16 +msgid "" +"The module supports two versions of the data format: version 0 is the " +"historical version, version 1 shares interned strings in the file, and upon " +"unmarshalling. Version 2 uses a binary format for floating point numbers. " +"*Py_MARSHAL_VERSION* indicates the current file format (currently 2)." +msgstr "" + +#: ../Doc/c-api/marshal.rst:24 +msgid "" +"Marshal a :c:type:`long` integer, *value*, to *file*. This will only write " +"the least-significant 32 bits of *value*; regardless of the size of the " +"native :c:type:`long` type. *version* indicates the file format." +msgstr "" + +#: ../Doc/c-api/marshal.rst:31 +msgid "" +"Marshal a Python object, *value*, to *file*. *version* indicates the file " +"format." +msgstr "" + +#: ../Doc/c-api/marshal.rst:37 +msgid "" +"Return a bytes object containing the marshalled representation of *value*. " +"*version* indicates the file format." +msgstr "" + +#: ../Doc/c-api/marshal.rst:41 +msgid "The following functions allow marshalled values to be read back in." +msgstr "" + +#: ../Doc/c-api/marshal.rst:46 +msgid "" +"Return a C :c:type:`long` from the data stream in a :c:type:`FILE\\*` opened " +"for reading. Only a 32-bit value can be read in using this function, " +"regardless of the native size of :c:type:`long`." +msgstr "" + +#: ../Doc/c-api/marshal.rst:50 ../Doc/c-api/marshal.rst:60 +msgid "" +"On error, sets the appropriate exception (:exc:`EOFError`) and returns " +"``-1``." +msgstr "" + +#: ../Doc/c-api/marshal.rst:56 +msgid "" +"Return a C :c:type:`short` from the data stream in a :c:type:`FILE\\*` " +"opened for reading. Only a 16-bit value can be read in using this function, " +"regardless of the native size of :c:type:`short`." +msgstr "" + +#: ../Doc/c-api/marshal.rst:66 +msgid "" +"Return a Python object from the data stream in a :c:type:`FILE\\*` opened " +"for reading." +msgstr "" + +#: ../Doc/c-api/marshal.rst:69 ../Doc/c-api/marshal.rst:83 +#: ../Doc/c-api/marshal.rst:92 +msgid "" +"On error, sets the appropriate exception (:exc:`EOFError`, :exc:`ValueError` " +"or :exc:`TypeError`) and returns *NULL*." +msgstr "" + +#: ../Doc/c-api/marshal.rst:75 +msgid "" +"Return a Python object from the data stream in a :c:type:`FILE\\*` opened " +"for reading. Unlike :c:func:`PyMarshal_ReadObjectFromFile`, this function " +"assumes that no further objects will be read from the file, allowing it to " +"aggressively load file data into memory so that the de-serialization can " +"operate from data in memory rather than reading a byte at a time from the " +"file. Only use these variant if you are certain that you won't be reading " +"anything else from the file." +msgstr "" + +#: ../Doc/c-api/marshal.rst:89 +msgid "" +"Return a Python object from the data stream in a byte buffer containing " +"*len* bytes pointed to by *data*." +msgstr "" diff --git a/c-api/memory.po b/c-api/memory.po new file mode 100644 index 000000000..1692f8227 --- /dev/null +++ b/c-api/memory.po @@ -0,0 +1,806 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/memory.rst:8 +msgid "Memory Management" +msgstr "" + +#: ../Doc/c-api/memory.rst:17 +msgid "Overview" +msgstr "Aperçu" + +#: ../Doc/c-api/memory.rst:19 +msgid "" +"Memory management in Python involves a private heap containing all Python " +"objects and data structures. The management of this private heap is ensured " +"internally by the *Python memory manager*. The Python memory manager has " +"different components which deal with various dynamic storage management " +"aspects, like sharing, segmentation, preallocation or caching." +msgstr "" + +#: ../Doc/c-api/memory.rst:25 +msgid "" +"At the lowest level, a raw memory allocator ensures that there is enough " +"room in the private heap for storing all Python-related data by interacting " +"with the memory manager of the operating system. On top of the raw memory " +"allocator, several object-specific allocators operate on the same heap and " +"implement distinct memory management policies adapted to the peculiarities " +"of every object type. For example, integer objects are managed differently " +"within the heap than strings, tuples or dictionaries because integers imply " +"different storage requirements and speed/space tradeoffs. The Python memory " +"manager thus delegates some of the work to the object-specific allocators, " +"but ensures that the latter operate within the bounds of the private heap." +msgstr "" + +#: ../Doc/c-api/memory.rst:36 +msgid "" +"It is important to understand that the management of the Python heap is " +"performed by the interpreter itself and that the user has no control over " +"it, even if they regularly manipulate object pointers to memory blocks " +"inside that heap. The allocation of heap space for Python objects and other " +"internal buffers is performed on demand by the Python memory manager through " +"the Python/C API functions listed in this document." +msgstr "" + +#: ../Doc/c-api/memory.rst:49 +msgid "" +"To avoid memory corruption, extension writers should never try to operate on " +"Python objects with the functions exported by the C library: :c:func:" +"`malloc`, :c:func:`calloc`, :c:func:`realloc` and :c:func:`free`. This will " +"result in mixed calls between the C allocator and the Python memory manager " +"with fatal consequences, because they implement different algorithms and " +"operate on different heaps. However, one may safely allocate and release " +"memory blocks with the C library allocator for individual purposes, as shown " +"in the following example::" +msgstr "" + +#: ../Doc/c-api/memory.rst:68 +msgid "" +"In this example, the memory request for the I/O buffer is handled by the C " +"library allocator. The Python memory manager is involved only in the " +"allocation of the string object returned as a result." +msgstr "" + +#: ../Doc/c-api/memory.rst:72 +msgid "" +"In most situations, however, it is recommended to allocate memory from the " +"Python heap specifically because the latter is under control of the Python " +"memory manager. For example, this is required when the interpreter is " +"extended with new object types written in C. Another reason for using the " +"Python heap is the desire to *inform* the Python memory manager about the " +"memory needs of the extension module. Even when the requested memory is used " +"exclusively for internal, highly-specific purposes, delegating all memory " +"requests to the Python memory manager causes the interpreter to have a more " +"accurate image of its memory footprint as a whole. Consequently, under " +"certain circumstances, the Python memory manager may or may not trigger " +"appropriate actions, like garbage collection, memory compaction or other " +"preventive procedures. Note that by using the C library allocator as shown " +"in the previous example, the allocated memory for the I/O buffer escapes " +"completely the Python memory manager." +msgstr "" + +#: ../Doc/c-api/memory.rst:88 +msgid "" +"The :envvar:`PYTHONMALLOC` environment variable can be used to configure the " +"memory allocators used by Python." +msgstr "" + +#: ../Doc/c-api/memory.rst:91 +msgid "" +"The :envvar:`PYTHONMALLOCSTATS` environment variable can be used to print " +"statistics of the :ref:`pymalloc memory allocator ` every time a " +"new pymalloc object arena is created, and on shutdown." +msgstr "" + +#: ../Doc/c-api/memory.rst:97 +msgid "Raw Memory Interface" +msgstr "" + +#: ../Doc/c-api/memory.rst:99 +msgid "" +"The following function sets are wrappers to the system allocator. These " +"functions are thread-safe, the :term:`GIL ` does " +"not need to be held." +msgstr "" + +#: ../Doc/c-api/memory.rst:103 +msgid "" +"The :ref:`default raw memory allocator ` uses the " +"following functions: :c:func:`malloc`, :c:func:`calloc`, :c:func:`realloc` " +"and :c:func:`free`; call ``malloc(1)`` (or ``calloc(1, 1)``) when requesting " +"zero bytes." +msgstr "" + +#: ../Doc/c-api/memory.rst:112 ../Doc/c-api/memory.rst:183 +#: ../Doc/c-api/memory.rst:285 +msgid "" +"Allocates *n* bytes and returns a pointer of type :c:type:`void\\*` to the " +"allocated memory, or *NULL* if the request fails." +msgstr "" + +#: ../Doc/c-api/memory.rst:115 +msgid "" +"Requesting zero bytes returns a distinct non-*NULL* pointer if possible, as " +"if ``PyMem_RawMalloc(1)`` had been called instead. The memory will not have " +"been initialized in any way." +msgstr "" + +#: ../Doc/c-api/memory.rst:122 ../Doc/c-api/memory.rst:193 +#: ../Doc/c-api/memory.rst:295 +msgid "" +"Allocates *nelem* elements each whose size in bytes is *elsize* and returns " +"a pointer of type :c:type:`void\\*` to the allocated memory, or *NULL* if " +"the request fails. The memory is initialized to zeros." +msgstr "" + +#: ../Doc/c-api/memory.rst:126 +msgid "" +"Requesting zero elements or elements of size zero bytes returns a distinct " +"non-*NULL* pointer if possible, as if ``PyMem_RawCalloc(1, 1)`` had been " +"called instead." +msgstr "" + +#: ../Doc/c-api/memory.rst:135 ../Doc/c-api/memory.rst:206 +#: ../Doc/c-api/memory.rst:308 +msgid "" +"Resizes the memory block pointed to by *p* to *n* bytes. The contents will " +"be unchanged to the minimum of the old and the new sizes." +msgstr "" + +#: ../Doc/c-api/memory.rst:138 +msgid "" +"If *p* is *NULL*, the call is equivalent to ``PyMem_RawMalloc(n)``; else if " +"*n* is equal to zero, the memory block is resized but is not freed, and the " +"returned pointer is non-*NULL*." +msgstr "" + +#: ../Doc/c-api/memory.rst:142 +msgid "" +"Unless *p* is *NULL*, it must have been returned by a previous call to :c:" +"func:`PyMem_RawMalloc`, :c:func:`PyMem_RawRealloc` or :c:func:" +"`PyMem_RawCalloc`." +msgstr "" + +#: ../Doc/c-api/memory.rst:146 +msgid "" +"If the request fails, :c:func:`PyMem_RawRealloc` returns *NULL* and *p* " +"remains a valid pointer to the previous memory area." +msgstr "" + +#: ../Doc/c-api/memory.rst:152 +msgid "" +"Frees the memory block pointed to by *p*, which must have been returned by a " +"previous call to :c:func:`PyMem_RawMalloc`, :c:func:`PyMem_RawRealloc` or :c:" +"func:`PyMem_RawCalloc`. Otherwise, or if ``PyMem_RawFree(p)`` has been " +"called before, undefined behavior occurs." +msgstr "" + +#: ../Doc/c-api/memory.rst:157 ../Doc/c-api/memory.rst:227 +#: ../Doc/c-api/memory.rst:329 +msgid "If *p* is *NULL*, no operation is performed." +msgstr "" + +#: ../Doc/c-api/memory.rst:163 +msgid "Memory Interface" +msgstr "" + +#: ../Doc/c-api/memory.rst:165 ../Doc/c-api/memory.rst:271 +msgid "" +"The following function sets, modeled after the ANSI C standard, but " +"specifying behavior when requesting zero bytes, are available for allocating " +"and releasing memory from the Python heap." +msgstr "" + +#: ../Doc/c-api/memory.rst:169 +msgid "" +"The :ref:`default memory allocator ` uses the :" +"ref:`pymalloc memory allocator `." +msgstr "" + +#: ../Doc/c-api/memory.rst:174 ../Doc/c-api/memory.rst:280 +msgid "" +"The :term:`GIL ` must be held when using these " +"functions." +msgstr "" + +#: ../Doc/c-api/memory.rst:179 +msgid "" +"The default allocator is now pymalloc instead of system :c:func:`malloc`." +msgstr "" + +#: ../Doc/c-api/memory.rst:186 +msgid "" +"Requesting zero bytes returns a distinct non-*NULL* pointer if possible, as " +"if ``PyMem_Malloc(1)`` had been called instead. The memory will not have " +"been initialized in any way." +msgstr "" + +#: ../Doc/c-api/memory.rst:197 +msgid "" +"Requesting zero elements or elements of size zero bytes returns a distinct " +"non-*NULL* pointer if possible, as if ``PyMem_Calloc(1, 1)`` had been called " +"instead." +msgstr "" + +#: ../Doc/c-api/memory.rst:209 +msgid "" +"If *p* is *NULL*, the call is equivalent to ``PyMem_Malloc(n)``; else if *n* " +"is equal to zero, the memory block is resized but is not freed, and the " +"returned pointer is non-*NULL*." +msgstr "" + +#: ../Doc/c-api/memory.rst:213 +msgid "" +"Unless *p* is *NULL*, it must have been returned by a previous call to :c:" +"func:`PyMem_Malloc`, :c:func:`PyMem_Realloc` or :c:func:`PyMem_Calloc`." +msgstr "" + +#: ../Doc/c-api/memory.rst:216 +msgid "" +"If the request fails, :c:func:`PyMem_Realloc` returns *NULL* and *p* remains " +"a valid pointer to the previous memory area." +msgstr "" + +#: ../Doc/c-api/memory.rst:222 +msgid "" +"Frees the memory block pointed to by *p*, which must have been returned by a " +"previous call to :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc` or :c:func:" +"`PyMem_Calloc`. Otherwise, or if ``PyMem_Free(p)`` has been called before, " +"undefined behavior occurs." +msgstr "" + +#: ../Doc/c-api/memory.rst:229 +msgid "" +"The following type-oriented macros are provided for convenience. Note that " +"*TYPE* refers to any C type." +msgstr "" + +#: ../Doc/c-api/memory.rst:235 +msgid "" +"Same as :c:func:`PyMem_Malloc`, but allocates ``(n * sizeof(TYPE))`` bytes " +"of memory. Returns a pointer cast to :c:type:`TYPE\\*`. The memory will " +"not have been initialized in any way." +msgstr "" + +#: ../Doc/c-api/memory.rst:242 +msgid "" +"Same as :c:func:`PyMem_Realloc`, but the memory block is resized to ``(n * " +"sizeof(TYPE))`` bytes. Returns a pointer cast to :c:type:`TYPE\\*`. On " +"return, *p* will be a pointer to the new memory area, or *NULL* in the event " +"of failure." +msgstr "" + +#: ../Doc/c-api/memory.rst:247 +msgid "" +"This is a C preprocessor macro; *p* is always reassigned. Save the original " +"value of *p* to avoid losing memory when handling errors." +msgstr "" + +#: ../Doc/c-api/memory.rst:253 +msgid "Same as :c:func:`PyMem_Free`." +msgstr "" + +#: ../Doc/c-api/memory.rst:255 +msgid "" +"In addition, the following macro sets are provided for calling the Python " +"memory allocator directly, without involving the C API functions listed " +"above. However, note that their use does not preserve binary compatibility " +"across Python versions and is therefore deprecated in extension modules." +msgstr "" + +#: ../Doc/c-api/memory.rst:260 +msgid "``PyMem_MALLOC(size)``" +msgstr "" + +#: ../Doc/c-api/memory.rst:261 +msgid "``PyMem_NEW(type, size)``" +msgstr "" + +#: ../Doc/c-api/memory.rst:262 +msgid "``PyMem_REALLOC(ptr, size)``" +msgstr "" + +#: ../Doc/c-api/memory.rst:263 +msgid "``PyMem_RESIZE(ptr, type, size)``" +msgstr "" + +#: ../Doc/c-api/memory.rst:264 +msgid "``PyMem_FREE(ptr)``" +msgstr "" + +#: ../Doc/c-api/memory.rst:265 +msgid "``PyMem_DEL(ptr)``" +msgstr "" + +#: ../Doc/c-api/memory.rst:269 +msgid "Object allocators" +msgstr "" + +#: ../Doc/c-api/memory.rst:275 +msgid "" +"The :ref:`default object allocator ` uses the :" +"ref:`pymalloc memory allocator `." +msgstr "" + +#: ../Doc/c-api/memory.rst:288 +msgid "" +"Requesting zero bytes returns a distinct non-*NULL* pointer if possible, as " +"if ``PyObject_Malloc(1)`` had been called instead. The memory will not have " +"been initialized in any way." +msgstr "" + +#: ../Doc/c-api/memory.rst:299 +msgid "" +"Requesting zero elements or elements of size zero bytes returns a distinct " +"non-*NULL* pointer if possible, as if ``PyObject_Calloc(1, 1)`` had been " +"called instead." +msgstr "" + +#: ../Doc/c-api/memory.rst:311 +msgid "" +"If *p* is *NULL*, the call is equivalent to ``PyObject_Malloc(n)``; else if " +"*n* is equal to zero, the memory block is resized but is not freed, and the " +"returned pointer is non-*NULL*." +msgstr "" + +#: ../Doc/c-api/memory.rst:315 +msgid "" +"Unless *p* is *NULL*, it must have been returned by a previous call to :c:" +"func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` or :c:func:" +"`PyObject_Calloc`." +msgstr "" + +#: ../Doc/c-api/memory.rst:318 +msgid "" +"If the request fails, :c:func:`PyObject_Realloc` returns *NULL* and *p* " +"remains a valid pointer to the previous memory area." +msgstr "" + +#: ../Doc/c-api/memory.rst:324 +msgid "" +"Frees the memory block pointed to by *p*, which must have been returned by a " +"previous call to :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` or :c:" +"func:`PyObject_Calloc`. Otherwise, or if ``PyObject_Free(p)`` has been " +"called before, undefined behavior occurs." +msgstr "" + +#: ../Doc/c-api/memory.rst:335 +msgid "Default Memory Allocators" +msgstr "" + +#: ../Doc/c-api/memory.rst:337 +msgid "Default memory allocators:" +msgstr "" + +#: ../Doc/c-api/memory.rst:340 +msgid "Configuration" +msgstr "Configuration" + +#: ../Doc/c-api/memory.rst:340 +msgid "Name" +msgstr "Nom" + +#: ../Doc/c-api/memory.rst:340 +msgid "PyMem_RawMalloc" +msgstr "" + +#: ../Doc/c-api/memory.rst:340 +msgid "PyMem_Malloc" +msgstr "" + +#: ../Doc/c-api/memory.rst:340 +msgid "PyObject_Malloc" +msgstr "" + +#: ../Doc/c-api/memory.rst:342 +msgid "Release build" +msgstr "" + +#: ../Doc/c-api/memory.rst:342 +msgid "``\"pymalloc\"``" +msgstr "" + +#: ../Doc/c-api/memory.rst:342 ../Doc/c-api/memory.rst:344 +msgid "``malloc``" +msgstr "" + +#: ../Doc/c-api/memory.rst:342 +msgid "``pymalloc``" +msgstr "" + +#: ../Doc/c-api/memory.rst:343 +msgid "Debug build" +msgstr "" + +#: ../Doc/c-api/memory.rst:343 +msgid "``\"pymalloc_debug\"``" +msgstr "" + +#: ../Doc/c-api/memory.rst:343 ../Doc/c-api/memory.rst:345 +msgid "``malloc`` + debug" +msgstr "" + +#: ../Doc/c-api/memory.rst:343 +msgid "``pymalloc`` + debug" +msgstr "" + +#: ../Doc/c-api/memory.rst:344 +msgid "Release build, without pymalloc" +msgstr "" + +#: ../Doc/c-api/memory.rst:344 +msgid "``\"malloc\"``" +msgstr "" + +#: ../Doc/c-api/memory.rst:345 +msgid "Debug build, without pymalloc" +msgstr "" + +#: ../Doc/c-api/memory.rst:345 +msgid "``\"malloc_debug\"``" +msgstr "" + +#: ../Doc/c-api/memory.rst:348 +msgid "Legend:" +msgstr "" + +#: ../Doc/c-api/memory.rst:350 +msgid "Name: value for :envvar:`PYTHONMALLOC` environment variable" +msgstr "" + +#: ../Doc/c-api/memory.rst:351 +msgid "" +"``malloc``: system allocators from the standard C library, C functions: :c:" +"func:`malloc`, :c:func:`calloc`, :c:func:`realloc` and :c:func:`free`" +msgstr "" + +#: ../Doc/c-api/memory.rst:353 +msgid "``pymalloc``: :ref:`pymalloc memory allocator `" +msgstr "" + +#: ../Doc/c-api/memory.rst:354 +msgid "" +"\"+ debug\": with debug hooks installed by :c:func:`PyMem_SetupDebugHooks`" +msgstr "" + +#: ../Doc/c-api/memory.rst:358 +msgid "Customize Memory Allocators" +msgstr "" + +#: ../Doc/c-api/memory.rst:364 +msgid "" +"Structure used to describe a memory block allocator. The structure has four " +"fields:" +msgstr "" + +#: ../Doc/c-api/memory.rst:368 ../Doc/c-api/memory.rst:513 +msgid "Field" +msgstr "Champ" + +#: ../Doc/c-api/memory.rst:368 ../Doc/c-api/memory.rst:513 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/c-api/memory.rst:370 ../Doc/c-api/memory.rst:515 +msgid "``void *ctx``" +msgstr "``void *ctx``" + +#: ../Doc/c-api/memory.rst:370 ../Doc/c-api/memory.rst:515 +msgid "user context passed as first argument" +msgstr "" + +#: ../Doc/c-api/memory.rst:372 +msgid "``void* malloc(void *ctx, size_t size)``" +msgstr "``void* malloc(void *ctx, size_t size)``" + +#: ../Doc/c-api/memory.rst:372 +msgid "allocate a memory block" +msgstr "" + +#: ../Doc/c-api/memory.rst:374 +msgid "``void* calloc(void *ctx, size_t nelem, size_t elsize)``" +msgstr "" + +#: ../Doc/c-api/memory.rst:374 +msgid "allocate a memory block initialized with zeros" +msgstr "" + +#: ../Doc/c-api/memory.rst:377 +msgid "``void* realloc(void *ctx, void *ptr, size_t new_size)``" +msgstr "" + +#: ../Doc/c-api/memory.rst:377 +msgid "allocate or resize a memory block" +msgstr "" + +#: ../Doc/c-api/memory.rst:379 +msgid "``void free(void *ctx, void *ptr)``" +msgstr "``void free(void *ctx, void *ptr)``" + +#: ../Doc/c-api/memory.rst:379 +msgid "free a memory block" +msgstr "" + +#: ../Doc/c-api/memory.rst:382 +msgid "" +"The :c:type:`PyMemAllocator` structure was renamed to :c:type:" +"`PyMemAllocatorEx` and a new ``calloc`` field was added." +msgstr "" + +#: ../Doc/c-api/memory.rst:389 +msgid "Enum used to identify an allocator domain. Domains:" +msgstr "" + +#: ../Doc/c-api/memory.rst:393 ../Doc/c-api/memory.rst:402 +#: ../Doc/c-api/memory.rst:411 +msgid "Functions:" +msgstr "" + +#: ../Doc/c-api/memory.rst:395 +msgid ":c:func:`PyMem_RawMalloc`" +msgstr "" + +#: ../Doc/c-api/memory.rst:396 +msgid ":c:func:`PyMem_RawRealloc`" +msgstr "" + +#: ../Doc/c-api/memory.rst:397 +msgid ":c:func:`PyMem_RawCalloc`" +msgstr "" + +#: ../Doc/c-api/memory.rst:398 +msgid ":c:func:`PyMem_RawFree`" +msgstr "" + +#: ../Doc/c-api/memory.rst:404 +msgid ":c:func:`PyMem_Malloc`," +msgstr "" + +#: ../Doc/c-api/memory.rst:405 +msgid ":c:func:`PyMem_Realloc`" +msgstr "" + +#: ../Doc/c-api/memory.rst:406 +msgid ":c:func:`PyMem_Calloc`" +msgstr "" + +#: ../Doc/c-api/memory.rst:407 +msgid ":c:func:`PyMem_Free`" +msgstr "" + +#: ../Doc/c-api/memory.rst:413 +msgid ":c:func:`PyObject_Malloc`" +msgstr "" + +#: ../Doc/c-api/memory.rst:414 +msgid ":c:func:`PyObject_Realloc`" +msgstr "" + +#: ../Doc/c-api/memory.rst:415 +msgid ":c:func:`PyObject_Calloc`" +msgstr "" + +#: ../Doc/c-api/memory.rst:416 +msgid ":c:func:`PyObject_Free`" +msgstr "" + +#: ../Doc/c-api/memory.rst:420 +msgid "Get the memory block allocator of the specified domain." +msgstr "" + +#: ../Doc/c-api/memory.rst:425 +msgid "Set the memory block allocator of the specified domain." +msgstr "" + +#: ../Doc/c-api/memory.rst:427 +msgid "" +"The new allocator must return a distinct non-NULL pointer when requesting " +"zero bytes." +msgstr "" + +#: ../Doc/c-api/memory.rst:430 +msgid "" +"For the :c:data:`PYMEM_DOMAIN_RAW` domain, the allocator must be thread-" +"safe: the :term:`GIL ` is not held when the " +"allocator is called." +msgstr "" + +#: ../Doc/c-api/memory.rst:434 +msgid "" +"If the new allocator is not a hook (does not call the previous allocator), " +"the :c:func:`PyMem_SetupDebugHooks` function must be called to reinstall the " +"debug hooks on top on the new allocator." +msgstr "" + +#: ../Doc/c-api/memory.rst:441 +msgid "Setup hooks to detect bugs in the Python memory allocator functions." +msgstr "" + +#: ../Doc/c-api/memory.rst:443 +msgid "" +"Newly allocated memory is filled with the byte ``0xCD`` (``CLEANBYTE``), " +"freed memory is filled with the byte ``0xDD`` (``DEADBYTE``). Memory blocks " +"are surrounded by \"forbidden bytes\" (``FORBIDDENBYTE``: byte ``0xFD``)." +msgstr "" + +#: ../Doc/c-api/memory.rst:447 +msgid "Runtime checks:" +msgstr "" + +#: ../Doc/c-api/memory.rst:449 +msgid "" +"Detect API violations, ex: :c:func:`PyObject_Free` called on a buffer " +"allocated by :c:func:`PyMem_Malloc`" +msgstr "" + +#: ../Doc/c-api/memory.rst:451 +msgid "Detect write before the start of the buffer (buffer underflow)" +msgstr "" + +#: ../Doc/c-api/memory.rst:452 +msgid "Detect write after the end of the buffer (buffer overflow)" +msgstr "" + +#: ../Doc/c-api/memory.rst:453 +msgid "" +"Check that the :term:`GIL ` is held when allocator " +"functions of :c:data:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) and :" +"c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are called" +msgstr "" + +#: ../Doc/c-api/memory.rst:458 +msgid "" +"On error, the debug hooks use the :mod:`tracemalloc` module to get the " +"traceback where a memory block was allocated. The traceback is only " +"displayed if :mod:`tracemalloc` is tracing Python memory allocations and the " +"memory block was traced." +msgstr "" + +#: ../Doc/c-api/memory.rst:463 +msgid "" +"These hooks are :ref:`installed by default ` if " +"Python is compiled in debug mode. The :envvar:`PYTHONMALLOC` environment " +"variable can be used to install debug hooks on a Python compiled in release " +"mode." +msgstr "" + +#: ../Doc/c-api/memory.rst:468 +msgid "" +"This function now also works on Python compiled in release mode. On error, " +"the debug hooks now use :mod:`tracemalloc` to get the traceback where a " +"memory block was allocated. The debug hooks now also check if the GIL is " +"held when functions of :c:data:`PYMEM_DOMAIN_OBJ` and :c:data:" +"`PYMEM_DOMAIN_MEM` domains are called." +msgstr "" + +#: ../Doc/c-api/memory.rst:475 +msgid "" +"Byte patterns ``0xCB`` (``CLEANBYTE``), ``0xDB`` (``DEADBYTE``) and ``0xFB`` " +"(``FORBIDDENBYTE``) have been replaced with ``0xCD``, ``0xDD`` and ``0xFD`` " +"to use the same values than Windows CRT debug ``malloc()`` and ``free()``." +msgstr "" + +#: ../Doc/c-api/memory.rst:485 +msgid "The pymalloc allocator" +msgstr "" + +#: ../Doc/c-api/memory.rst:487 +msgid "" +"Python has a *pymalloc* allocator optimized for small objects (smaller or " +"equal to 512 bytes) with a short lifetime. It uses memory mappings called " +"\"arenas\" with a fixed size of 256 KiB. It falls back to :c:func:" +"`PyMem_RawMalloc` and :c:func:`PyMem_RawRealloc` for allocations larger than " +"512 bytes." +msgstr "" + +#: ../Doc/c-api/memory.rst:492 +msgid "" +"*pymalloc* is the :ref:`default allocator ` of " +"the :c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) and :c:data:" +"`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) domains." +msgstr "" + +#: ../Doc/c-api/memory.rst:496 +msgid "The arena allocator uses the following functions:" +msgstr "" + +#: ../Doc/c-api/memory.rst:498 +msgid ":c:func:`VirtualAlloc` and :c:func:`VirtualFree` on Windows," +msgstr "" + +#: ../Doc/c-api/memory.rst:499 +msgid ":c:func:`mmap` and :c:func:`munmap` if available," +msgstr "" + +#: ../Doc/c-api/memory.rst:500 +msgid ":c:func:`malloc` and :c:func:`free` otherwise." +msgstr "" + +#: ../Doc/c-api/memory.rst:503 +msgid "Customize pymalloc Arena Allocator" +msgstr "" + +#: ../Doc/c-api/memory.rst:509 +msgid "" +"Structure used to describe an arena allocator. The structure has three " +"fields:" +msgstr "" + +#: ../Doc/c-api/memory.rst:517 +msgid "``void* alloc(void *ctx, size_t size)``" +msgstr "``void* alloc(void *ctx, size_t size)``" + +#: ../Doc/c-api/memory.rst:517 +msgid "allocate an arena of size bytes" +msgstr "" + +#: ../Doc/c-api/memory.rst:519 +msgid "``void free(void *ctx, size_t size, void *ptr)``" +msgstr "``void free(void *ctx, size_t size, void *ptr)``" + +#: ../Doc/c-api/memory.rst:519 +msgid "free an arena" +msgstr "" + +#: ../Doc/c-api/memory.rst:524 +msgid "Get the arena allocator." +msgstr "" + +#: ../Doc/c-api/memory.rst:528 +msgid "Set the arena allocator." +msgstr "" + +#: ../Doc/c-api/memory.rst:532 +msgid "tracemalloc C API" +msgstr "" + +#: ../Doc/c-api/memory.rst:556 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/c-api/memory.rst:558 +msgid "" +"Here is the example from section :ref:`memoryoverview`, rewritten so that " +"the I/O buffer is allocated from the Python heap by using the first function " +"set::" +msgstr "" + +#: ../Doc/c-api/memory.rst:571 +msgid "The same code using the type-oriented function set::" +msgstr "" + +#: ../Doc/c-api/memory.rst:583 +msgid "" +"Note that in the two examples above, the buffer is always manipulated via " +"functions belonging to the same set. Indeed, it is required to use the same " +"memory API family for a given memory block, so that the risk of mixing " +"different allocators is reduced to a minimum. The following code sequence " +"contains two errors, one of which is labeled as *fatal* because it mixes two " +"different allocators operating on different heaps. ::" +msgstr "" + +#: ../Doc/c-api/memory.rst:598 +msgid "" +"In addition to the functions aimed at handling raw memory blocks from the " +"Python heap, objects in Python are allocated and released with :c:func:" +"`PyObject_New`, :c:func:`PyObject_NewVar` and :c:func:`PyObject_Del`." +msgstr "" + +#: ../Doc/c-api/memory.rst:602 +msgid "" +"These will be explained in the next chapter on defining and implementing new " +"object types in C." +msgstr "" diff --git a/c-api/memoryview.po b/c-api/memoryview.po new file mode 100644 index 000000000..395a03b8f --- /dev/null +++ b/c-api/memoryview.po @@ -0,0 +1,99 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/memoryview.rst:9 +msgid "MemoryView objects" +msgstr "Objets de type MemoryView" + +#: ../Doc/c-api/memoryview.rst:11 +msgid "" +"A :class:`memoryview` object exposes the C level :ref:`buffer interface " +"` as a Python object which can then be passed around like any " +"other object." +msgstr "" +"Un objet Python :class:`memoryview` expose le :ref:`protocole tampon " +"` du C. Cet objet peut ensuite être passé comme n'importe " +"quel objet." + +#: ../Doc/c-api/memoryview.rst:18 +msgid "" +"Create a memoryview object from an object that provides the buffer " +"interface. If *obj* supports writable buffer exports, the memoryview object " +"will be read/write, otherwise it may be either read-only or read/write at " +"the discretion of the exporter." +msgstr "" +"Crée un objet *memoryview* à partir d'un objet implémentant le protocole " +"tampon. Si *obj* permet d'exporter des tampons modifiables, l'objet " +"*memoryview* crée acceptera la lecture et écriture, sinon l'objet crée est " +"soit en lecture seule ou lecture/écriture, à la discrétion de l'*exporteur*." + +#: ../Doc/c-api/memoryview.rst:25 +msgid "" +"Create a memoryview object using *mem* as the underlying buffer. *flags* can " +"be one of :c:macro:`PyBUF_READ` or :c:macro:`PyBUF_WRITE`." +msgstr "" +"Crée un objet *memoryview* utilisant *mem* comme un tampon sous-jacent. " +"*flags* peut être :c:macro:`PyBUF_READ` ou :c:macro:`PyBUF_WRITE`." + +#: ../Doc/c-api/memoryview.rst:32 +msgid "" +"Create a memoryview object wrapping the given buffer structure *view*. For " +"simple byte buffers, :c:func:`PyMemoryView_FromMemory` is the preferred " +"function." +msgstr "" +"Crée un objet *memoryview* à partir de la structure tampon *view*. Pour de " +"simples tampons d'octets, :c:func:`PyMemoryView_FromMemory` est préférée." + +#: ../Doc/c-api/memoryview.rst:38 +msgid "" +"Create a memoryview object to a :term:`contiguous` chunk of memory (in " +"either 'C' or 'F'ortran *order*) from an object that defines the buffer " +"interface. If memory is contiguous, the memoryview object points to the " +"original memory. Otherwise, a copy is made and the memoryview points to a " +"new bytes object." +msgstr "" +"Crée un objet *memoryview* vers un segment de mémoire :term:`contiguous` " +"(organisé comme en ``'C'`` ou comme en ``'F'`` pour Fortran) à partir d'un " +"objet qui expose le protocole tampon. Si la mémoire est contiguë, l'objet " +"*memoryview* pointe vers la mémoire d'origine. Sinon une copie est faite et " +"la *memoryview* pointe vers un nouvel objet *bytes*." + +#: ../Doc/c-api/memoryview.rst:47 +msgid "" +"Return true if the object *obj* is a memoryview object. It is not currently " +"allowed to create subclasses of :class:`memoryview`." +msgstr "" +"Renvoie vrai si l'objet *obj* est un objet *memoryview*. Il n'est pas permis " +"de créer une sous-classe de :class:`memoryview`." + +#: ../Doc/c-api/memoryview.rst:53 +msgid "" +"Return a pointer to the memoryview's private copy of the exporter's buffer. " +"*mview* **must** be a memoryview instance; this macro doesn't check its " +"type, you must do it yourself or you will risk crashes." +msgstr "" +"Retourne un pointeur vers la copie privée du tampon de l'*exporteur* de " +"*memoryview*. *mview* **doit** être une instance de *memoryview*; cette " +"macro ne vérifie pas le type, vous devez le faire vous-même sinon vous " +"pourriez subir un crash." + +#: ../Doc/c-api/memoryview.rst:59 +msgid "" +"Return either a pointer to the exporting object that the memoryview is based " +"on or *NULL* if the memoryview has been created by one of the functions :c:" +"func:`PyMemoryView_FromMemory` or :c:func:`PyMemoryView_FromBuffer`. *mview* " +"**must** be a memoryview instance." +msgstr "" diff --git a/c-api/method.po b/c-api/method.po new file mode 100644 index 000000000..a99b94ba3 --- /dev/null +++ b/c-api/method.po @@ -0,0 +1,106 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/method.rst:6 +msgid "Instance Method Objects" +msgstr "" + +#: ../Doc/c-api/method.rst:10 +msgid "" +"An instance method is a wrapper for a :c:data:`PyCFunction` and the new way " +"to bind a :c:data:`PyCFunction` to a class object. It replaces the former " +"call ``PyMethod_New(func, NULL, class)``." +msgstr "" + +#: ../Doc/c-api/method.rst:17 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python instance " +"method type. It is not exposed to Python programs." +msgstr "" + +#: ../Doc/c-api/method.rst:23 +msgid "" +"Return true if *o* is an instance method object (has type :c:data:" +"`PyInstanceMethod_Type`). The parameter must not be *NULL*." +msgstr "" + +#: ../Doc/c-api/method.rst:29 +msgid "" +"Return a new instance method object, with *func* being any callable object " +"*func* is the function that will be called when the instance method is " +"called." +msgstr "" + +#: ../Doc/c-api/method.rst:36 +msgid "Return the function object associated with the instance method *im*." +msgstr "" + +#: ../Doc/c-api/method.rst:41 +msgid "" +"Macro version of :c:func:`PyInstanceMethod_Function` which avoids error " +"checking." +msgstr "" + +#: ../Doc/c-api/method.rst:47 +msgid "Method Objects" +msgstr "Objets méthode" + +#: ../Doc/c-api/method.rst:51 +msgid "" +"Methods are bound function objects. Methods are always bound to an instance " +"of a user-defined class. Unbound methods (methods bound to a class object) " +"are no longer available." +msgstr "" + +#: ../Doc/c-api/method.rst:60 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python method type. " +"This is exposed to Python programs as ``types.MethodType``." +msgstr "" + +#: ../Doc/c-api/method.rst:66 +msgid "" +"Return true if *o* is a method object (has type :c:data:`PyMethod_Type`). " +"The parameter must not be *NULL*." +msgstr "" + +#: ../Doc/c-api/method.rst:72 +msgid "" +"Return a new method object, with *func* being any callable object and *self* " +"the instance the method should be bound. *func* is the function that will be " +"called when the method is called. *self* must not be *NULL*." +msgstr "" + +#: ../Doc/c-api/method.rst:79 +msgid "Return the function object associated with the method *meth*." +msgstr "" + +#: ../Doc/c-api/method.rst:84 +msgid "" +"Macro version of :c:func:`PyMethod_Function` which avoids error checking." +msgstr "" + +#: ../Doc/c-api/method.rst:89 +msgid "Return the instance associated with the method *meth*." +msgstr "" + +#: ../Doc/c-api/method.rst:94 +msgid "Macro version of :c:func:`PyMethod_Self` which avoids error checking." +msgstr "" + +#: ../Doc/c-api/method.rst:99 +msgid "Clear the free list. Return the total number of freed items." +msgstr "" diff --git a/c-api/module.po b/c-api/module.po new file mode 100644 index 000000000..471e8f9a7 --- /dev/null +++ b/c-api/module.po @@ -0,0 +1,549 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/module.rst:6 +msgid "Module Objects" +msgstr "" + +#: ../Doc/c-api/module.rst:15 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python module type. " +"This is exposed to Python programs as ``types.ModuleType``." +msgstr "" + +#: ../Doc/c-api/module.rst:21 +msgid "Return true if *p* is a module object, or a subtype of a module object." +msgstr "" + +#: ../Doc/c-api/module.rst:26 +msgid "" +"Return true if *p* is a module object, but not a subtype of :c:data:" +"`PyModule_Type`." +msgstr "" + +#: ../Doc/c-api/module.rst:39 +msgid "" +"Return a new module object with the :attr:`__name__` attribute set to " +"*name*. The module's :attr:`__name__`, :attr:`__doc__`, :attr:`__package__`, " +"and :attr:`__loader__` attributes are filled in (all but :attr:`__name__` " +"are set to ``None``); the caller is responsible for providing a :attr:" +"`__file__` attribute." +msgstr "" + +#: ../Doc/c-api/module.rst:47 +msgid ":attr:`__package__` and :attr:`__loader__` are set to ``None``." +msgstr "" + +#: ../Doc/c-api/module.rst:53 +msgid "" +"Similar to :c:func:`PyModule_NewObject`, but the name is a UTF-8 encoded " +"string instead of a Unicode object." +msgstr "" + +#: ../Doc/c-api/module.rst:61 +msgid "" +"Return the dictionary object that implements *module*'s namespace; this " +"object is the same as the :attr:`~object.__dict__` attribute of the module " +"object. If *module* is not a module object (or a subtype of a module " +"object), :exc:`SystemError` is raised and *NULL* is returned." +msgstr "" + +#: ../Doc/c-api/module.rst:66 +msgid "" +"It is recommended extensions use other :c:func:`PyModule_\\*` and :c:func:" +"`PyObject_\\*` functions rather than directly manipulate a module's :attr:" +"`~object.__dict__`." +msgstr "" + +#: ../Doc/c-api/module.rst:77 +msgid "" +"Return *module*'s :attr:`__name__` value. If the module does not provide " +"one, or if it is not a string, :exc:`SystemError` is raised and *NULL* is " +"returned." +msgstr "" + +#: ../Doc/c-api/module.rst:85 +msgid "" +"Similar to :c:func:`PyModule_GetNameObject` but return the name encoded to " +"``'utf-8'``." +msgstr "" + +#: ../Doc/c-api/module.rst:90 +msgid "" +"Return the \"state\" of the module, that is, a pointer to the block of " +"memory allocated at module creation time, or *NULL*. See :c:member:" +"`PyModuleDef.m_size`." +msgstr "" + +#: ../Doc/c-api/module.rst:97 +msgid "" +"Return a pointer to the :c:type:`PyModuleDef` struct from which the module " +"was created, or *NULL* if the module wasn't created from a definition." +msgstr "" + +#: ../Doc/c-api/module.rst:107 +msgid "" +"Return the name of the file from which *module* was loaded using *module*'s :" +"attr:`__file__` attribute. If this is not defined, or if it is not a " +"unicode string, raise :exc:`SystemError` and return *NULL*; otherwise return " +"a reference to a Unicode object." +msgstr "" + +#: ../Doc/c-api/module.rst:117 +msgid "" +"Similar to :c:func:`PyModule_GetFilenameObject` but return the filename " +"encoded to 'utf-8'." +msgstr "" + +#: ../Doc/c-api/module.rst:120 +msgid "" +":c:func:`PyModule_GetFilename` raises :c:type:`UnicodeEncodeError` on " +"unencodable filenames, use :c:func:`PyModule_GetFilenameObject` instead." +msgstr "" + +#: ../Doc/c-api/module.rst:128 +msgid "Initializing C modules" +msgstr "" + +#: ../Doc/c-api/module.rst:130 +msgid "" +"Modules objects are usually created from extension modules (shared libraries " +"which export an initialization function), or compiled-in modules (where the " +"initialization function is added using :c:func:`PyImport_AppendInittab`). " +"See :ref:`building` or :ref:`extending-with-embedding` for details." +msgstr "" + +#: ../Doc/c-api/module.rst:135 +msgid "" +"The initialization function can either pass a module definition instance to :" +"c:func:`PyModule_Create`, and return the resulting module object, or request " +"\"multi-phase initialization\" by returning the definition struct itself." +msgstr "" + +#: ../Doc/c-api/module.rst:141 +msgid "" +"The module definition struct, which holds all information needed to create a " +"module object. There is usually only one statically initialized variable of " +"this type for each module." +msgstr "" + +#: ../Doc/c-api/module.rst:147 +msgid "Always initialize this member to :const:`PyModuleDef_HEAD_INIT`." +msgstr "" + +#: ../Doc/c-api/module.rst:151 +msgid "Name for the new module." +msgstr "" + +#: ../Doc/c-api/module.rst:155 +msgid "" +"Docstring for the module; usually a docstring variable created with :c:func:" +"`PyDoc_STRVAR` is used." +msgstr "" + +#: ../Doc/c-api/module.rst:160 +msgid "" +"Module state may be kept in a per-module memory area that can be retrieved " +"with :c:func:`PyModule_GetState`, rather than in static globals. This makes " +"modules safe for use in multiple sub-interpreters." +msgstr "" + +#: ../Doc/c-api/module.rst:164 +msgid "" +"This memory area is allocated based on *m_size* on module creation, and " +"freed when the module object is deallocated, after the :c:member:`m_free` " +"function has been called, if present." +msgstr "" + +#: ../Doc/c-api/module.rst:168 +msgid "" +"Setting ``m_size`` to ``-1`` means that the module does not support sub-" +"interpreters, because it has global state." +msgstr "" + +#: ../Doc/c-api/module.rst:171 +msgid "" +"Setting it to a non-negative value means that the module can be re-" +"initialized and specifies the additional amount of memory it requires for " +"its state. Non-negative ``m_size`` is required for multi-phase " +"initialization." +msgstr "" + +#: ../Doc/c-api/module.rst:176 +msgid "See :PEP:`3121` for more details." +msgstr "" + +#: ../Doc/c-api/module.rst:180 +msgid "" +"A pointer to a table of module-level functions, described by :c:type:" +"`PyMethodDef` values. Can be *NULL* if no functions are present." +msgstr "" + +#: ../Doc/c-api/module.rst:185 +msgid "" +"An array of slot definitions for multi-phase initialization, terminated by a " +"``{0, NULL}`` entry. When using single-phase initialization, *m_slots* must " +"be *NULL*." +msgstr "" + +#: ../Doc/c-api/module.rst:191 +msgid "" +"Prior to version 3.5, this member was always set to *NULL*, and was defined " +"as:" +msgstr "" + +#: ../Doc/c-api/module.rst:198 +msgid "" +"A traversal function to call during GC traversal of the module object, or " +"*NULL* if not needed. This function may be called before module state is " +"allocated (:c:func:`PyModule_GetState()` may return `NULL`), and before the :" +"c:member:`Py_mod_exec` function is executed." +msgstr "" + +#: ../Doc/c-api/module.rst:205 +msgid "" +"A clear function to call during GC clearing of the module object, or *NULL* " +"if not needed. This function may be called before module state is allocated " +"(:c:func:`PyModule_GetState()` may return `NULL`), and before the :c:member:" +"`Py_mod_exec` function is executed." +msgstr "" + +#: ../Doc/c-api/module.rst:212 +msgid "" +"A function to call during deallocation of the module object, or *NULL* if " +"not needed. This function may be called before module state is allocated (:c:" +"func:`PyModule_GetState()` may return `NULL`), and before the :c:member:" +"`Py_mod_exec` function is executed." +msgstr "" + +#: ../Doc/c-api/module.rst:218 +msgid "Single-phase initialization" +msgstr "" + +#: ../Doc/c-api/module.rst:220 +msgid "" +"The module initialization function may create and return the module object " +"directly. This is referred to as \"single-phase initialization\", and uses " +"one of the following two module creation functions:" +msgstr "" + +#: ../Doc/c-api/module.rst:226 +msgid "" +"Create a new module object, given the definition in *def*. This behaves " +"like :c:func:`PyModule_Create2` with *module_api_version* set to :const:" +"`PYTHON_API_VERSION`." +msgstr "" + +#: ../Doc/c-api/module.rst:233 +msgid "" +"Create a new module object, given the definition in *def*, assuming the API " +"version *module_api_version*. If that version does not match the version of " +"the running interpreter, a :exc:`RuntimeWarning` is emitted." +msgstr "" + +#: ../Doc/c-api/module.rst:239 +msgid "" +"Most uses of this function should be using :c:func:`PyModule_Create` " +"instead; only use this if you are sure you need it." +msgstr "" + +#: ../Doc/c-api/module.rst:242 +msgid "" +"Before it is returned from in the initialization function, the resulting " +"module object is typically populated using functions like :c:func:" +"`PyModule_AddObject`." +msgstr "" + +#: ../Doc/c-api/module.rst:248 +msgid "Multi-phase initialization" +msgstr "" + +#: ../Doc/c-api/module.rst:250 +msgid "" +"An alternate way to specify extensions is to request \"multi-phase " +"initialization\". Extension modules created this way behave more like Python " +"modules: the initialization is split between the *creation phase*, when the " +"module object is created, and the *execution phase*, when it is populated. " +"The distinction is similar to the :py:meth:`__new__` and :py:meth:`__init__` " +"methods of classes." +msgstr "" + +#: ../Doc/c-api/module.rst:257 +msgid "" +"Unlike modules created using single-phase initialization, these modules are " +"not singletons: if the *sys.modules* entry is removed and the module is re-" +"imported, a new module object is created, and the old module is subject to " +"normal garbage collection -- as with Python modules. By default, multiple " +"modules created from the same definition should be independent: changes to " +"one should not affect the others. This means that all state should be " +"specific to the module object (using e.g. using :c:func:" +"`PyModule_GetState`), or its contents (such as the module's :attr:`__dict__` " +"or individual classes created with :c:func:`PyType_FromSpec`)." +msgstr "" + +#: ../Doc/c-api/module.rst:267 +msgid "" +"All modules created using multi-phase initialization are expected to " +"support :ref:`sub-interpreters `. Making sure " +"multiple modules are independent is typically enough to achieve this." +msgstr "" + +#: ../Doc/c-api/module.rst:271 +msgid "" +"To request multi-phase initialization, the initialization function " +"(PyInit_modulename) returns a :c:type:`PyModuleDef` instance with non-empty :" +"c:member:`~PyModuleDef.m_slots`. Before it is returned, the ``PyModuleDef`` " +"instance must be initialized with the following function:" +msgstr "" + +#: ../Doc/c-api/module.rst:278 +msgid "" +"Ensures a module definition is a properly initialized Python object that " +"correctly reports its type and reference count." +msgstr "" + +#: ../Doc/c-api/module.rst:281 +msgid "Returns *def* cast to ``PyObject*``, or *NULL* if an error occurred." +msgstr "" + +#: ../Doc/c-api/module.rst:285 +msgid "" +"The *m_slots* member of the module definition must point to an array of " +"``PyModuleDef_Slot`` structures:" +msgstr "" + +#: ../Doc/c-api/module.rst:292 +msgid "A slot ID, chosen from the available values explained below." +msgstr "" + +#: ../Doc/c-api/module.rst:296 +msgid "Value of the slot, whose meaning depends on the slot ID." +msgstr "" + +#: ../Doc/c-api/module.rst:300 +msgid "The *m_slots* array must be terminated by a slot with id 0." +msgstr "" + +#: ../Doc/c-api/module.rst:302 +msgid "The available slot types are:" +msgstr "" + +#: ../Doc/c-api/module.rst:306 +msgid "" +"Specifies a function that is called to create the module object itself. The " +"*value* pointer of this slot must point to a function of the signature:" +msgstr "" + +#: ../Doc/c-api/module.rst:311 +msgid "" +"The function receives a :py:class:`~importlib.machinery.ModuleSpec` " +"instance, as defined in :PEP:`451`, and the module definition. It should " +"return a new module object, or set an error and return *NULL*." +msgstr "" + +#: ../Doc/c-api/module.rst:316 +msgid "" +"This function should be kept minimal. In particular, it should not call " +"arbitrary Python code, as trying to import the same module again may result " +"in an infinite loop." +msgstr "" + +#: ../Doc/c-api/module.rst:320 +msgid "" +"Multiple ``Py_mod_create`` slots may not be specified in one module " +"definition." +msgstr "" + +#: ../Doc/c-api/module.rst:323 +msgid "" +"If ``Py_mod_create`` is not specified, the import machinery will create a " +"normal module object using :c:func:`PyModule_New`. The name is taken from " +"*spec*, not the definition, to allow extension modules to dynamically adjust " +"to their place in the module hierarchy and be imported under different names " +"through symlinks, all while sharing a single module definition." +msgstr "" + +#: ../Doc/c-api/module.rst:329 +msgid "" +"There is no requirement for the returned object to be an instance of :c:type:" +"`PyModule_Type`. Any type can be used, as long as it supports setting and " +"getting import-related attributes. However, only ``PyModule_Type`` instances " +"may be returned if the ``PyModuleDef`` has non-*NULL* ``m_traverse``, " +"``m_clear``, ``m_free``; non-zero ``m_size``; or slots other than " +"``Py_mod_create``." +msgstr "" + +#: ../Doc/c-api/module.rst:338 +msgid "" +"Specifies a function that is called to *execute* the module. This is " +"equivalent to executing the code of a Python module: typically, this " +"function adds classes and constants to the module. The signature of the " +"function is:" +msgstr "" + +#: ../Doc/c-api/module.rst:345 +msgid "" +"If multiple ``Py_mod_exec`` slots are specified, they are processed in the " +"order they appear in the *m_slots* array." +msgstr "" + +#: ../Doc/c-api/module.rst:348 +msgid "See :PEP:`489` for more details on multi-phase initialization." +msgstr "" + +#: ../Doc/c-api/module.rst:351 +msgid "Low-level module creation functions" +msgstr "" + +#: ../Doc/c-api/module.rst:353 +msgid "" +"The following functions are called under the hood when using multi-phase " +"initialization. They can be used directly, for example when creating module " +"objects dynamically. Note that both ``PyModule_FromDefAndSpec`` and " +"``PyModule_ExecDef`` must be called to fully initialize a module." +msgstr "" + +#: ../Doc/c-api/module.rst:360 +msgid "" +"Create a new module object, given the definition in *module* and the " +"ModuleSpec *spec*. This behaves like :c:func:`PyModule_FromDefAndSpec2` " +"with *module_api_version* set to :const:`PYTHON_API_VERSION`." +msgstr "" + +#: ../Doc/c-api/module.rst:368 +msgid "" +"Create a new module object, given the definition in *module* and the " +"ModuleSpec *spec*, assuming the API version *module_api_version*. If that " +"version does not match the version of the running interpreter, a :exc:" +"`RuntimeWarning` is emitted." +msgstr "" + +#: ../Doc/c-api/module.rst:375 +msgid "" +"Most uses of this function should be using :c:func:`PyModule_FromDefAndSpec` " +"instead; only use this if you are sure you need it." +msgstr "" + +#: ../Doc/c-api/module.rst:382 +msgid "Process any execution slots (:c:data:`Py_mod_exec`) given in *def*." +msgstr "" + +#: ../Doc/c-api/module.rst:388 +msgid "" +"Set the docstring for *module* to *docstring*. This function is called " +"automatically when creating a module from ``PyModuleDef``, using either " +"``PyModule_Create`` or ``PyModule_FromDefAndSpec``." +msgstr "" + +#: ../Doc/c-api/module.rst:397 +msgid "" +"Add the functions from the *NULL* terminated *functions* array to *module*. " +"Refer to the :c:type:`PyMethodDef` documentation for details on individual " +"entries (due to the lack of a shared module namespace, module level " +"\"functions\" implemented in C typically receive the module as their first " +"parameter, making them similar to instance methods on Python classes). This " +"function is called automatically when creating a module from " +"``PyModuleDef``, using either ``PyModule_Create`` or " +"``PyModule_FromDefAndSpec``." +msgstr "" + +#: ../Doc/c-api/module.rst:409 +msgid "Support functions" +msgstr "" + +#: ../Doc/c-api/module.rst:411 +msgid "" +"The module initialization function (if using single phase initialization) or " +"a function called from a module execution slot (if using multi-phase " +"initialization), can use the following functions to help initialize the " +"module state:" +msgstr "" + +#: ../Doc/c-api/module.rst:418 +msgid "" +"Add an object to *module* as *name*. This is a convenience function which " +"can be used from the module's initialization function. This steals a " +"reference to *value*. Return ``-1`` on error, ``0`` on success." +msgstr "" + +#: ../Doc/c-api/module.rst:424 +msgid "" +"Add an integer constant to *module* as *name*. This convenience function " +"can be used from the module's initialization function. Return ``-1`` on " +"error, ``0`` on success." +msgstr "" + +#: ../Doc/c-api/module.rst:431 +msgid "" +"Add a string constant to *module* as *name*. This convenience function can " +"be used from the module's initialization function. The string *value* must " +"be *NULL*-terminated. Return ``-1`` on error, ``0`` on success." +msgstr "" + +#: ../Doc/c-api/module.rst:438 +msgid "" +"Add an int constant to *module*. The name and the value are taken from " +"*macro*. For example ``PyModule_AddIntMacro(module, AF_INET)`` adds the int " +"constant *AF_INET* with the value of *AF_INET* to *module*. Return ``-1`` on " +"error, ``0`` on success." +msgstr "" + +#: ../Doc/c-api/module.rst:446 +msgid "Add a string constant to *module*." +msgstr "" + +#: ../Doc/c-api/module.rst:450 +msgid "Module lookup" +msgstr "" + +#: ../Doc/c-api/module.rst:452 +msgid "" +"Single-phase initialization creates singleton modules that can be looked up " +"in the context of the current interpreter. This allows the module object to " +"be retrieved later with only a reference to the module definition." +msgstr "" + +#: ../Doc/c-api/module.rst:456 +msgid "" +"These functions will not work on modules created using multi-phase " +"initialization, since multiple such modules can be created from a single " +"definition." +msgstr "" + +#: ../Doc/c-api/module.rst:461 +msgid "" +"Returns the module object that was created from *def* for the current " +"interpreter. This method requires that the module object has been attached " +"to the interpreter state with :c:func:`PyState_AddModule` beforehand. In " +"case the corresponding module object is not found or has not been attached " +"to the interpreter state yet, it returns *NULL*." +msgstr "" + +#: ../Doc/c-api/module.rst:468 +msgid "" +"Attaches the module object passed to the function to the interpreter state. " +"This allows the module object to be accessible via :c:func:" +"`PyState_FindModule`." +msgstr "" + +#: ../Doc/c-api/module.rst:471 +msgid "Only effective on modules created using single-phase initialization." +msgstr "" + +#: ../Doc/c-api/module.rst:477 +msgid "" +"Removes the module object created from *def* from the interpreter state." +msgstr "" diff --git a/c-api/none.po b/c-api/none.po new file mode 100644 index 000000000..cf01198d0 --- /dev/null +++ b/c-api/none.po @@ -0,0 +1,49 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-11-05 11:18+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/none.rst:6 +msgid "The ``None`` Object" +msgstr "L'objet ``None``" + +#: ../Doc/c-api/none.rst:10 +msgid "" +"Note that the :c:type:`PyTypeObject` for ``None`` is not directly exposed in " +"the Python/C API. Since ``None`` is a singleton, testing for object " +"identity (using ``==`` in C) is sufficient. There is no :c:func:" +"`PyNone_Check` function for the same reason." +msgstr "" +"Notez que le :c:type:`PyTypeObject` de ``None`` n'est pas directement exposé " +"via l'API Python/C. Puisque ``None`` est un singleton, tester son identité " +"(en utilisant ``==`` en C) est suffisant. Il n'existe pas de fonction :c:" +"func:`PyNone_Check` pour la même raison." + +#: ../Doc/c-api/none.rst:18 +msgid "" +"The Python ``None`` object, denoting lack of value. This object has no " +"methods. It needs to be treated just like any other object with respect to " +"reference counts." +msgstr "" +"L'objet Python ``None``, exprimant l'absence de valeur. Cet objet n'a " +"aucune méthode. Il doit être traité exactement comme les autres objets en " +"terme de comptage de références." + +#: ../Doc/c-api/none.rst:25 +msgid "" +"Properly handle returning :c:data:`Py_None` from within a C function (that " +"is, increment the reference count of ``None`` and return it.)" +msgstr "" +"Renvoie, de la bonne manière, :c:data:`Py_None` depuis une fonction C (c'est " +"à dire en incrémentant les références à ``None`` avant de le donner)." diff --git a/c-api/number.po b/c-api/number.po new file mode 100644 index 000000000..0e2b87843 --- /dev/null +++ b/c-api/number.po @@ -0,0 +1,285 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/number.rst:6 +msgid "Number Protocol" +msgstr "" + +#: ../Doc/c-api/number.rst:11 +msgid "" +"Returns ``1`` if the object *o* provides numeric protocols, and false " +"otherwise. This function always succeeds." +msgstr "" + +#: ../Doc/c-api/number.rst:17 +msgid "" +"Returns the result of adding *o1* and *o2*, or *NULL* on failure. This is " +"the equivalent of the Python expression ``o1 + o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:23 +msgid "" +"Returns the result of subtracting *o2* from *o1*, or *NULL* on failure. " +"This is the equivalent of the Python expression ``o1 - o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:29 +msgid "" +"Returns the result of multiplying *o1* and *o2*, or *NULL* on failure. This " +"is the equivalent of the Python expression ``o1 * o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:35 +msgid "" +"Returns the result of matrix multiplication on *o1* and *o2*, or *NULL* on " +"failure. This is the equivalent of the Python expression ``o1 @ o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:43 +msgid "" +"Return the floor of *o1* divided by *o2*, or *NULL* on failure. This is " +"equivalent to the \"classic\" division of integers." +msgstr "" + +#: ../Doc/c-api/number.rst:49 +msgid "" +"Return a reasonable approximation for the mathematical value of *o1* divided " +"by *o2*, or *NULL* on failure. The return value is \"approximate\" because " +"binary floating point numbers are approximate; it is not possible to " +"represent all real numbers in base two. This function can return a floating " +"point value when passed two integers." +msgstr "" + +#: ../Doc/c-api/number.rst:58 +msgid "" +"Returns the remainder of dividing *o1* by *o2*, or *NULL* on failure. This " +"is the equivalent of the Python expression ``o1 % o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:66 +msgid "" +"See the built-in function :func:`divmod`. Returns *NULL* on failure. This " +"is the equivalent of the Python expression ``divmod(o1, o2)``." +msgstr "" + +#: ../Doc/c-api/number.rst:74 +msgid "" +"See the built-in function :func:`pow`. Returns *NULL* on failure. This is " +"the equivalent of the Python expression ``pow(o1, o2, o3)``, where *o3* is " +"optional. If *o3* is to be ignored, pass :c:data:`Py_None` in its place " +"(passing *NULL* for *o3* would cause an illegal memory access)." +msgstr "" + +#: ../Doc/c-api/number.rst:82 +msgid "" +"Returns the negation of *o* on success, or *NULL* on failure. This is the " +"equivalent of the Python expression ``-o``." +msgstr "" + +#: ../Doc/c-api/number.rst:88 +msgid "" +"Returns *o* on success, or *NULL* on failure. This is the equivalent of the " +"Python expression ``+o``." +msgstr "" + +#: ../Doc/c-api/number.rst:96 +msgid "" +"Returns the absolute value of *o*, or *NULL* on failure. This is the " +"equivalent of the Python expression ``abs(o)``." +msgstr "" + +#: ../Doc/c-api/number.rst:102 +msgid "" +"Returns the bitwise negation of *o* on success, or *NULL* on failure. This " +"is the equivalent of the Python expression ``~o``." +msgstr "" + +#: ../Doc/c-api/number.rst:108 +msgid "" +"Returns the result of left shifting *o1* by *o2* on success, or *NULL* on " +"failure. This is the equivalent of the Python expression ``o1 << o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:114 +msgid "" +"Returns the result of right shifting *o1* by *o2* on success, or *NULL* on " +"failure. This is the equivalent of the Python expression ``o1 >> o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:120 +msgid "" +"Returns the \"bitwise and\" of *o1* and *o2* on success and *NULL* on " +"failure. This is the equivalent of the Python expression ``o1 & o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:126 +msgid "" +"Returns the \"bitwise exclusive or\" of *o1* by *o2* on success, or *NULL* " +"on failure. This is the equivalent of the Python expression ``o1 ^ o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:132 +msgid "" +"Returns the \"bitwise or\" of *o1* and *o2* on success, or *NULL* on " +"failure. This is the equivalent of the Python expression ``o1 | o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:138 +msgid "" +"Returns the result of adding *o1* and *o2*, or *NULL* on failure. The " +"operation is done *in-place* when *o1* supports it. This is the equivalent " +"of the Python statement ``o1 += o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:145 +msgid "" +"Returns the result of subtracting *o2* from *o1*, or *NULL* on failure. The " +"operation is done *in-place* when *o1* supports it. This is the equivalent " +"of the Python statement ``o1 -= o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:152 +msgid "" +"Returns the result of multiplying *o1* and *o2*, or *NULL* on failure. The " +"operation is done *in-place* when *o1* supports it. This is the equivalent " +"of the Python statement ``o1 *= o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:159 +msgid "" +"Returns the result of matrix multiplication on *o1* and *o2*, or *NULL* on " +"failure. The operation is done *in-place* when *o1* supports it. This is " +"the equivalent of the Python statement ``o1 @= o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:168 +msgid "" +"Returns the mathematical floor of dividing *o1* by *o2*, or *NULL* on " +"failure. The operation is done *in-place* when *o1* supports it. This is " +"the equivalent of the Python statement ``o1 //= o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:175 +msgid "" +"Return a reasonable approximation for the mathematical value of *o1* divided " +"by *o2*, or *NULL* on failure. The return value is \"approximate\" because " +"binary floating point numbers are approximate; it is not possible to " +"represent all real numbers in base two. This function can return a floating " +"point value when passed two integers. The operation is done *in-place* when " +"*o1* supports it." +msgstr "" + +#: ../Doc/c-api/number.rst:184 +msgid "" +"Returns the remainder of dividing *o1* by *o2*, or *NULL* on failure. The " +"operation is done *in-place* when *o1* supports it. This is the equivalent " +"of the Python statement ``o1 %= o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:193 +msgid "" +"See the built-in function :func:`pow`. Returns *NULL* on failure. The " +"operation is done *in-place* when *o1* supports it. This is the equivalent " +"of the Python statement ``o1 **= o2`` when o3 is :c:data:`Py_None`, or an in-" +"place variant of ``pow(o1, o2, o3)`` otherwise. If *o3* is to be ignored, " +"pass :c:data:`Py_None` in its place (passing *NULL* for *o3* would cause an " +"illegal memory access)." +msgstr "" + +#: ../Doc/c-api/number.rst:202 +msgid "" +"Returns the result of left shifting *o1* by *o2* on success, or *NULL* on " +"failure. The operation is done *in-place* when *o1* supports it. This is " +"the equivalent of the Python statement ``o1 <<= o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:209 +msgid "" +"Returns the result of right shifting *o1* by *o2* on success, or *NULL* on " +"failure. The operation is done *in-place* when *o1* supports it. This is " +"the equivalent of the Python statement ``o1 >>= o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:216 +msgid "" +"Returns the \"bitwise and\" of *o1* and *o2* on success and *NULL* on " +"failure. The operation is done *in-place* when *o1* supports it. This is " +"the equivalent of the Python statement ``o1 &= o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:223 +msgid "" +"Returns the \"bitwise exclusive or\" of *o1* by *o2* on success, or *NULL* " +"on failure. The operation is done *in-place* when *o1* supports it. This " +"is the equivalent of the Python statement ``o1 ^= o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:230 +msgid "" +"Returns the \"bitwise or\" of *o1* and *o2* on success, or *NULL* on " +"failure. The operation is done *in-place* when *o1* supports it. This is " +"the equivalent of the Python statement ``o1 |= o2``." +msgstr "" + +#: ../Doc/c-api/number.rst:239 +msgid "" +"Returns the *o* converted to an integer object on success, or *NULL* on " +"failure. This is the equivalent of the Python expression ``int(o)``." +msgstr "" + +#: ../Doc/c-api/number.rst:247 +msgid "" +"Returns the *o* converted to a float object on success, or *NULL* on " +"failure. This is the equivalent of the Python expression ``float(o)``." +msgstr "" + +#: ../Doc/c-api/number.rst:253 +msgid "" +"Returns the *o* converted to a Python int on success or *NULL* with a :exc:" +"`TypeError` exception raised on failure." +msgstr "" + +#: ../Doc/c-api/number.rst:259 +msgid "" +"Returns the integer *n* converted to base *base* as a string. The *base* " +"argument must be one of 2, 8, 10, or 16. For base 2, 8, or 16, the returned " +"string is prefixed with a base marker of ``'0b'``, ``'0o'``, or ``'0x'``, " +"respectively. If *n* is not a Python int, it is converted with :c:func:" +"`PyNumber_Index` first." +msgstr "" + +#: ../Doc/c-api/number.rst:268 +msgid "" +"Returns *o* converted to a Py_ssize_t value if *o* can be interpreted as an " +"integer. If the call fails, an exception is raised and ``-1`` is returned." +msgstr "" + +#: ../Doc/c-api/number.rst:271 +msgid "" +"If *o* can be converted to a Python int but the attempt to convert to a " +"Py_ssize_t value would raise an :exc:`OverflowError`, then the *exc* " +"argument is the type of exception that will be raised (usually :exc:" +"`IndexError` or :exc:`OverflowError`). If *exc* is *NULL*, then the " +"exception is cleared and the value is clipped to *PY_SSIZE_T_MIN* for a " +"negative integer or *PY_SSIZE_T_MAX* for a positive integer." +msgstr "" + +#: ../Doc/c-api/number.rst:281 +msgid "" +"Returns ``1`` if *o* is an index integer (has the nb_index slot of the " +"tp_as_number structure filled in), and ``0`` otherwise. This function always " +"succeeds." +msgstr "" diff --git a/c-api/objbuffer.po b/c-api/objbuffer.po new file mode 100644 index 000000000..b8fa1e503 --- /dev/null +++ b/c-api/objbuffer.po @@ -0,0 +1,111 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2019-04-11 19:43+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/c-api/objbuffer.rst:4 +msgid "Old Buffer Protocol" +msgstr "Ancien Protocole Tampon" + +#: ../Doc/c-api/objbuffer.rst:8 +msgid "" +"These functions were part of the \"old buffer protocol\" API in Python 2. In " +"Python 3, this protocol doesn't exist anymore but the functions are still " +"exposed to ease porting 2.x code. They act as a compatibility wrapper " +"around the :ref:`new buffer protocol `, but they don't give " +"you control over the lifetime of the resources acquired when a buffer is " +"exported." +msgstr "" +"Ces fonctions faisaient partie de l'API de l'ancien protocole de tampons " +"dans Python 2. Dans Python 3, ce protocole n'existe plus, mais les fonctions " +"sont toujours exposées pour simplifier le portage de code Python 2.x. Elles " +"se comportent comme une abstraction de compatibilité du :ref:`nouveau " +"protocole de tampons `, mais sans vous donner de contrôle sur " +"la durée de vie des ressources acquises lorsqu'un tampon est exporté." + +#: ../Doc/c-api/objbuffer.rst:15 +msgid "" +"Therefore, it is recommended that you call :c:func:`PyObject_GetBuffer` (or " +"the ``y*`` or ``w*`` :ref:`format codes ` with the :c:func:" +"`PyArg_ParseTuple` family of functions) to get a buffer view over an object, " +"and :c:func:`PyBuffer_Release` when the buffer view can be released." +msgstr "" +"Il est donc recommandé d'appeler :c:func:`PyObject_GetBuffer` (ou les :ref:" +"`codes ` ``y*`` ou ``w*`` à la famille de fonctions :c:func:" +"`PyArg_ParseTuple`) pour obtenir une vue d'un tampon sur un objet, et :c:" +"func:`PyBuffer_Release` lorsque la vue peut être libérée." + +#: ../Doc/c-api/objbuffer.rst:23 +msgid "" +"Returns a pointer to a read-only memory location usable as character-based " +"input. The *obj* argument must support the single-segment character buffer " +"interface. On success, returns ``0``, sets *buffer* to the memory location " +"and *buffer_len* to the buffer length. Returns ``-1`` and sets a :exc:" +"`TypeError` on error." +msgstr "" +"Retourne un pointeur vers un emplacement de mémoire en lecture seule " +"utilisable en tant qu'entrée basée sur des caractères. L'argument *obj* doit " +"prendre en charge l'interface de tampon de caractère à segment unique. En " +"cas de succès, retourne ``0``, définit *buffer* à l'emplacement de la " +"mémoire et *buffer_len* à la longueur de la mémoire tampon. Retourne ``-1`` " +"et affecte une exception :exc:`TypeError` en cas d'erreur." + +#: ../Doc/c-api/objbuffer.rst:32 +msgid "" +"Returns a pointer to a read-only memory location containing arbitrary data. " +"The *obj* argument must support the single-segment readable buffer " +"interface. On success, returns ``0``, sets *buffer* to the memory location " +"and *buffer_len* to the buffer length. Returns ``-1`` and sets a :exc:" +"`TypeError` on error." +msgstr "" +"Retourne un pointeur vers un emplacement de mémoire en lecture seule " +"contenant des données arbitraires. L'argument *obj* doit prendre en charge " +"l'interface de tampon lisible à segment unique. En cas de succès, retourne " +"``0``, définit *buffer* à l'emplacement de la mémoire et *buffer_len* à la " +"longueur de la mémoire tampon. Renvoie ``-1`` et affecte l'exception :exc:" +"`TypeError` en cas d'erreur." + +#: ../Doc/c-api/objbuffer.rst:41 +msgid "" +"Returns ``1`` if *o* supports the single-segment readable buffer interface. " +"Otherwise returns ``0``. This function always succeeds." +msgstr "" +"Retourne ``1`` si *o* prend en charge l'interface de mémoire tampon lisible " +"à segment unique. Sinon, renvoie ``0``. Cette fonction réussit toujours." + +#: ../Doc/c-api/objbuffer.rst:44 +msgid "" +"Note that this function tries to get and release a buffer, and exceptions " +"which occur while calling corresponding functions will get suppressed. To " +"get error reporting use :c:func:`PyObject_GetBuffer()` instead." +msgstr "" +"Notez que cette fonction tente d'obtenir et de libérer une mémoire tampon, " +"et les exceptions qui se produisent lors de l'appel des fonctions " +"correspondantes seront supprimées. Pour que les erreurs vous soient " +"signalées, utilisez :c:func:`PyObject_GetBuffer()` à la place." + +#: ../Doc/c-api/objbuffer.rst:51 +msgid "" +"Returns a pointer to a writable memory location. The *obj* argument must " +"support the single-segment, character buffer interface. On success, returns " +"``0``, sets *buffer* to the memory location and *buffer_len* to the buffer " +"length. Returns ``-1`` and sets a :exc:`TypeError` on error." +msgstr "" +"Retourne un pointeur vers un emplacement de mémoire accessible en écriture. " +"L'argument *obj* doit prendre en charge l'interface de mémoire tampon de " +"caractère à segment unique. En cas de succès, retourne ``0``, définit " +"*buffer* à l'emplacement de la mémoire et *buffer_len* à la longueur de la " +"mémoire tampon. Renvoie ``-1`` et affecte l'exception :exc:`TypeError` en " +"cas d'erreur." diff --git a/c-api/object.po b/c-api/object.po new file mode 100644 index 000000000..a8b685247 --- /dev/null +++ b/c-api/object.po @@ -0,0 +1,597 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"PO-Revision-Date: 2019-08-16 22:56+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/c-api/object.rst:6 +msgid "Object Protocol" +msgstr "Protocole Objet" + +#: ../Doc/c-api/object.rst:11 +msgid "" +"The ``NotImplemented`` singleton, used to signal that an operation is not " +"implemented for the given type combination." +msgstr "" +"Le singleton ``NotImplemented``, utilisé pour signaler qu'une opération " +"n'est pas implémentée pour la combinaison de types en question." + +#: ../Doc/c-api/object.rst:17 +msgid "" +"Properly handle returning :c:data:`Py_NotImplemented` from within a C " +"function (that is, increment the reference count of NotImplemented and " +"return it)." +msgstr "" +"Traite proprement le renvoi de :c:data:`Py_NotImplemented` depuis " +"l'intérieur d'une fonction C (c'est-à-dire, incrémente le compteur de " +"référence de `NotImplemented` et le renvoie)." + +#: ../Doc/c-api/object.rst:24 +msgid "" +"Print an object *o*, on file *fp*. Returns ``-1`` on error. The flags " +"argument is used to enable certain printing options. The only option " +"currently supported is :const:`Py_PRINT_RAW`; if given, the :func:`str` of " +"the object is written instead of the :func:`repr`." +msgstr "" +"Écrit un objet *o*, dans le fichier *fp*. Renvoie ``-1`` en cas d'erreur. " +"L'argument *flags* est utilisé pour permettre certaines options de rendu. La " +"seule option actuellement gérée est :const:`Py_PRINT_RAW` ; si cet argument " +"est fourni, le :func:`str` de l'objet est utilisé pour le rendu à la place " +"de :func:`repr`." + +#: ../Doc/c-api/object.rst:32 ../Doc/c-api/object.rst:43 +msgid "" +"Returns ``1`` if *o* has the attribute *attr_name*, and ``0`` otherwise. " +"This is equivalent to the Python expression ``hasattr(o, attr_name)``. This " +"function always succeeds." +msgstr "" +"Renvoie ``1`` si *o* a l'attribut *attr_name*, et ``0`` sinon. Ceci est " +"équivalent à l'expression Python ``hasattr(o, attr_name)``. Cette fonction " +"réussit toujours." + +#: ../Doc/c-api/object.rst:36 +msgid "" +"Note that exceptions which occur while calling :meth:`__getattr__` and :meth:" +"`__getattribute__` methods will get suppressed. To get error reporting use :" +"c:func:`PyObject_GetAttr()` instead." +msgstr "" + +#: ../Doc/c-api/object.rst:47 +msgid "" +"Note that exceptions which occur while calling :meth:`__getattr__` and :meth:" +"`__getattribute__` methods and creating a temporary string object will get " +"suppressed. To get error reporting use :c:func:`PyObject_GetAttrString()` " +"instead." +msgstr "" + +#: ../Doc/c-api/object.rst:55 +msgid "" +"Retrieve an attribute named *attr_name* from object *o*. Returns the " +"attribute value on success, or *NULL* on failure. This is the equivalent of " +"the Python expression ``o.attr_name``." +msgstr "" +"Récupère l'attribut nommé *attr_name* de l'objet *o*. Renvoie la valeur de " +"l'attribut en cas de succès, ou *NULL* en cas d'échec. Ceci est équivalent à " +"l'expression Python ``o.attr_name``." + +#: ../Doc/c-api/object.rst:62 +msgid "" +"Retrieve an attribute named *attr_name* from object *o*. Returns the " +"attribute value on success, or *NULL* on failure. This is the equivalent of " +"the Python expression ``o.attr_name``." +msgstr "" +"Récupère un attribut nommé *attr_name* de l'objet *o*. Renvoie la valeur de " +"l'attribut en cas de succès, ou *NULL* en cas d'échec. Ceci est équivalent à " +"l'expression Python ``o.attr_name``." + +#: ../Doc/c-api/object.rst:69 +msgid "" +"Generic attribute getter function that is meant to be put into a type " +"object's ``tp_getattro`` slot. It looks for a descriptor in the dictionary " +"of classes in the object's MRO as well as an attribute in the object's :attr:" +"`~object.__dict__` (if present). As outlined in :ref:`descriptors`, data " +"descriptors take preference over instance attributes, while non-data " +"descriptors don't. Otherwise, an :exc:`AttributeError` is raised." +msgstr "" +"Accesseur d'attribut générique destiné à être mis dans le *slot* " +"``tp_getattro`` d'un objet type. Recherche un descripteur dans le " +"dictionnaire de classes du MRO de l'objet ainsi qu'un attribut dans le :attr:" +"`~object.__dict__` de l'objet (si présent). Comme défini dans :ref:" +"`descriptors`, les descripteurs de données sont prioritaires sur les " +"attributs d'instance, contrairement aux autres descripteurs. Sinon, une :exc:" +"`AttributeError` est levée." + +#: ../Doc/c-api/object.rst:79 ../Doc/c-api/object.rst:90 +msgid "" +"Set the value of the attribute named *attr_name*, for object *o*, to the " +"value *v*. Raise an exception and return ``-1`` on failure; return ``0`` on " +"success. This is the equivalent of the Python statement ``o.attr_name = v``." +msgstr "" +"Définit la valeur de l'attribut nommé *attr_name*, pour l'objet *o*, à la " +"valeur *v*. Lève une exception et renvoie ``-1`` en cas d'échec ; renvoie " +"``0`` en cas de succès. Ceci est équivalent à l'instruction Python ``o." +"attr_name = v``." + +#: ../Doc/c-api/object.rst:84 +msgid "" +"If *v* is *NULL*, the attribute is deleted, however this feature is " +"deprecated in favour of using :c:func:`PyObject_DelAttr`." +msgstr "" +"Si *v* est *NULL*, l'attribut est supprimé. Cette fonctionnalité est " +"obsolète,nous vous conseillons d'utiliser :c:func:`PyObject_DelAttr`." + +#: ../Doc/c-api/object.rst:95 +msgid "" +"If *v* is *NULL*, the attribute is deleted, however this feature is " +"deprecated in favour of using :c:func:`PyObject_DelAttrString`." +msgstr "" +"Si *v* est *NULL*, l'attribut est supprimé. Cette fonctionnalité est " +"obsolète, nous vous conseillons d'utiliser :c:func:`PyObject_DelAttr`." + +#: ../Doc/c-api/object.rst:101 +msgid "" +"Generic attribute setter and deleter function that is meant to be put into a " +"type object's :c:member:`~PyTypeObject.tp_setattro` slot. It looks for a " +"data descriptor in the dictionary of classes in the object's MRO, and if " +"found it takes preference over setting or deleting the attribute in the " +"instance dictionary. Otherwise, the attribute is set or deleted in the " +"object's :attr:`~object.__dict__` (if present). On success, ``0`` is " +"returned, otherwise an :exc:`AttributeError` is raised and ``-1`` is " +"returned." +msgstr "" +"Accesseur et suppresseur générique d'attributs qui est fait pour être mis " +"dans le :c:member:`~PyTypeObject.tp_setattro` d'un objet type. Il cherche un " +"descripteur de données dans le dictionnaire de classes dans le MRO de " +"l'objet et, si ce descripteur est trouvé, c'est lui qui est utilisé de " +"préférence pour la suppression et la définition de l'attribut dans le " +"dictionnaire d'instance. Sinon, l'attribut est défini ou supprimé dans le :" +"attr:`~object.__dict__` de l'objet (si présent). En cas de succès, ``0`` est " +"renvoyé, sinon une :exc:`AttributeError` est levée et ``-1`` est renvoyé." + +#: ../Doc/c-api/object.rst:113 ../Doc/c-api/object.rst:119 +msgid "" +"Delete attribute named *attr_name*, for object *o*. Returns ``-1`` on " +"failure. This is the equivalent of the Python statement ``del o.attr_name``." +msgstr "" +"Supprime l'attribut nommé *attr_name*, pour l'objet *o*. Renvoie ``-1`` en " +"cas d'échec. Ceci est l'équivalent de l'expression Python ``del o." +"attr_name``." + +#: ../Doc/c-api/object.rst:125 +msgid "" +"A generic implementation for the getter of a ``__dict__`` descriptor. It " +"creates the dictionary if necessary." +msgstr "" +"Une implémentation générique de l'accesseur d'un descripteur d'un " +"``__dict__``. Crée le dictionnaire si nécessaire." + +#: ../Doc/c-api/object.rst:133 +msgid "" +"A generic implementation for the setter of a ``__dict__`` descriptor. This " +"implementation does not allow the dictionary to be deleted." +msgstr "" +"Une implémentation générique du mutateur d'un descripteur de ``__dict__``. " +"Cette implémentation n'autorise pas la suppression du dictionnaire." + +#: ../Doc/c-api/object.rst:141 +msgid "" +"Compare the values of *o1* and *o2* using the operation specified by *opid*, " +"which must be one of :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:" +"`Py_NE`, :const:`Py_GT`, or :const:`Py_GE`, corresponding to ``<``, ``<=``, " +"``==``, ``!=``, ``>``, or ``>=`` respectively. This is the equivalent of the " +"Python expression ``o1 op o2``, where ``op`` is the operator corresponding " +"to *opid*. Returns the value of the comparison on success, or *NULL* on " +"failure." +msgstr "" +"Compare les valeurs de *o1* et *o2* en utilisant l'opération spécifiée par " +"*opid*, qui doit être :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:" +"`Py_NE`, :const:`Py_GT`, ou :const:`Py_GE`, correspondant à ``<``, ``<=``, " +"``==``, ``!=``, ``>``, ou ``>=`` respectivement. Ceci est l'équivalent de " +"l'expression Python ``o1 op o2``, où ``op`` est l'opérateur correspondant à " +"*opid*. Renvoie la valeur de la comparaison en cas de succès, ou *NULL* en " +"cas d'échec." + +#: ../Doc/c-api/object.rst:151 +msgid "" +"Compare the values of *o1* and *o2* using the operation specified by *opid*, " +"which must be one of :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:" +"`Py_NE`, :const:`Py_GT`, or :const:`Py_GE`, corresponding to ``<``, ``<=``, " +"``==``, ``!=``, ``>``, or ``>=`` respectively. Returns ``-1`` on error, " +"``0`` if the result is false, ``1`` otherwise. This is the equivalent of the " +"Python expression ``o1 op o2``, where ``op`` is the operator corresponding " +"to *opid*." +msgstr "" +"Compare les valeurs de *o1* et *o2* en utilisant l'opération spécifiée par " +"*opid*, qui doit être :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:" +"`Py_NE`, :const:`Py_GT`, ou :const:`Py_GE`, correspondant à ``<``, ``<=``, " +"``==``, ``!=``, ``>``, ou ``>=`` respectivement. Renvoie ``-1`` en cas " +"d'erreur, ``0`` si le résultat est faux, et ``1`` sinon. Ceci est " +"l'équivalent de l'expression Python ``o1 op o2``, où ``op`` est l'opérateur " +"correspondant à *opid*." + +#: ../Doc/c-api/object.rst:160 +msgid "" +"If *o1* and *o2* are the same object, :c:func:`PyObject_RichCompareBool` " +"will always return ``1`` for :const:`Py_EQ` and ``0`` for :const:`Py_NE`." +msgstr "" +"Si *o1* et *o2* sont le même objet, :c:func:`PyObject_RichCompareBool` " +"renvoie toujours ``1`` pour :const:`Py_EQ` et ``0`` pour :const:`Py_NE`." + +#: ../Doc/c-api/object.rst:167 +msgid "" +"Compute a string representation of object *o*. Returns the string " +"representation on success, *NULL* on failure. This is the equivalent of the " +"Python expression ``repr(o)``. Called by the :func:`repr` built-in function." +msgstr "" +"Calcule une représentation en chaîne de caractères de l'objet *o*. Renvoie " +"la représentation en chaîne de caractères en cas de succès, *NULL* en cas " +"d'échec. Ceci est l'équivalent de l'expression Python ``repr(o)``. Appelé " +"par la fonction native :func:`repr`." + +#: ../Doc/c-api/object.rst:171 ../Doc/c-api/object.rst:195 +msgid "" +"This function now includes a debug assertion to help ensure that it does not " +"silently discard an active exception." +msgstr "" +"Cette fonction inclut maintenant une assertion de débogage afin d'assurer " +"qu'elle ne passe pas sous silence une exception active." + +#: ../Doc/c-api/object.rst:179 +msgid "" +"As :c:func:`PyObject_Repr`, compute a string representation of object *o*, " +"but escape the non-ASCII characters in the string returned by :c:func:" +"`PyObject_Repr` with ``\\x``, ``\\u`` or ``\\U`` escapes. This generates a " +"string similar to that returned by :c:func:`PyObject_Repr` in Python 2. " +"Called by the :func:`ascii` built-in function." +msgstr "" +"Comme :c:Func:`PyObject_Repr`, calcule une représentation en chaîne de " +"caractères de l'objet *o*, mais échappe les caractères non ASCII dans la " +"chaîne de caractères renvoyée par :c:Func:`PyObject_Repr` avec' ``\\x``, ``" +"\\u`` ou ``\\U``. Cela génère une chaîne de caractères similaire à celle " +"renvoyée par :c:func:`PyObject_Repr` en Python 2. Appelée par la fonction " +"native :func:`ascii`." + +#: ../Doc/c-api/object.rst:190 +msgid "" +"Compute a string representation of object *o*. Returns the string " +"representation on success, *NULL* on failure. This is the equivalent of the " +"Python expression ``str(o)``. Called by the :func:`str` built-in function " +"and, therefore, by the :func:`print` function." +msgstr "" +"Calcule une représentation en chaîne de caractères de l'objet *o*. Renvoie " +"la représentation en chaîne de caractères en cas de succès, *NULL* en cas " +"d'échec. Ceci est l'équivalent de l'expression Python ``str(o)``. Appelée " +"par la fonction native :func:`str`, et, par conséquent, par la fonction :" +"func:`print`." + +#: ../Doc/c-api/object.rst:203 +msgid "" +"Compute a bytes representation of object *o*. *NULL* is returned on failure " +"and a bytes object on success. This is equivalent to the Python expression " +"``bytes(o)``, when *o* is not an integer. Unlike ``bytes(o)``, a TypeError " +"is raised when *o* is an integer instead of a zero-initialized bytes object." +msgstr "" +"Calcule une représentation en octets de l'objet *o*. *NULL* est renvoyé en " +"cas d'échec, un objet séquence d'octets est renvoyé en cas de succès. Ceci " +"est l'équivalent de l'expression Python ``bytes(o)``, quand *o* n'est pas un " +"entier. Contrairement à ``bytes(o)``, une exception *TypeError* est levée " +"lorsque *o* est un entier au lieu d'un objet octet initialisé avec des zéros." + +#: ../Doc/c-api/object.rst:212 +msgid "" +"Return ``1`` if the class *derived* is identical to or derived from the " +"class *cls*, otherwise return ``0``. In case of an error, return ``-1``." +msgstr "" +"Renvoie ``1`` si la classe *derived* est identique à ou dérivée de la classe " +"*cls*, renvoie ``0`` sinon. En cas d'erreur, renvoie ``-1``." + +#: ../Doc/c-api/object.rst:215 ../Doc/c-api/object.rst:234 +msgid "" +"If *cls* is a tuple, the check will be done against every entry in *cls*. " +"The result will be ``1`` when at least one of the checks returns ``1``, " +"otherwise it will be ``0``." +msgstr "" +"Si *cls* est un tuple, la vérification est menée sur chaque entrée de *cls*. " +"Le résultat sera ``1`` quand au moins une des vérifications renvoie ``1``, " +"sinon ce sera ``0``." + +#: ../Doc/c-api/object.rst:219 +msgid "" +"If *cls* has a :meth:`~class.__subclasscheck__` method, it will be called to " +"determine the subclass status as described in :pep:`3119`. Otherwise, " +"*derived* is a subclass of *cls* if it is a direct or indirect subclass, i." +"e. contained in ``cls.__mro__``." +msgstr "" +"Si *cls* a une méthode :meth:`~class.__subclasscheck__`, elle est appelée " +"pour déterminer le statut de la sous-classe comme décrit dans :pep:`3119`. " +"Sinon, *derived* est une sous-classe de *cls* si c'est une sous-classe " +"directe ou indirecte, c'est-à-dire contenue dans ``cls.__mro__``." + +#: ../Doc/c-api/object.rst:224 +msgid "" +"Normally only class objects, i.e. instances of :class:`type` or a derived " +"class, are considered classes. However, objects can override this by having " +"a :attr:`__bases__` attribute (which must be a tuple of base classes)." +msgstr "" +"Normalement seulement les classes objets, c'est-à-dire les instances de :" +"class:`type` ou d'une classe dérivée, sont considérées classes. Cependant, " +"les objets peuvent surcharger cela en ayant un attribut :attr:`__bases__` " +"(qui doit être un tuple de classes de bases)." + +#: ../Doc/c-api/object.rst:231 +msgid "" +"Return ``1`` if *inst* is an instance of the class *cls* or a subclass of " +"*cls*, or ``0`` if not. On error, returns ``-1`` and sets an exception." +msgstr "" +"Renvoie ``1`` si *inst* est une instance de la classe *cls* ou une sous-" +"classe de *cls*, ou ``0`` sinon. En cas d'erreur, renvoie ``-1`` et " +"initialise une exception." + +#: ../Doc/c-api/object.rst:238 +msgid "" +"If *cls* has a :meth:`~class.__instancecheck__` method, it will be called to " +"determine the subclass status as described in :pep:`3119`. Otherwise, " +"*inst* is an instance of *cls* if its class is a subclass of *cls*." +msgstr "" +"Si *cls* a une méthode :meth:`~class.__subclasscheck__`, elle sera appelée " +"pour déterminer le statut de la sous-classe comme décrit dans :pep:`3119`. " +"Sinon, *inst* est une instance *cls* si sa classe est une sous-classe de " +"*cls*." + +#: ../Doc/c-api/object.rst:242 +msgid "" +"An instance *inst* can override what is considered its class by having a :" +"attr:`__class__` attribute." +msgstr "" +"Une instance *inst* peut surcharger ce qui est considéré comme sa classe en " +"ayant un attribut :attr:`__class__`." + +#: ../Doc/c-api/object.rst:245 +msgid "" +"An object *cls* can override if it is considered a class, and what its base " +"classes are, by having a :attr:`__bases__` attribute (which must be a tuple " +"of base classes)." +msgstr "" +"Un objet *cls* peut surcharger s'il est considéré comme une classe, et ce " +"que ses classes de bases sont, en ayant un attribut :attr:`__bases__` (qui " +"doit être un tuple des classes de base)." + +#: ../Doc/c-api/object.rst:252 +msgid "" +"Determine if the object *o* is callable. Return ``1`` if the object is " +"callable and ``0`` otherwise. This function always succeeds." +msgstr "" +"Détermine si l'objet *o* est appelable. Renvoie ``1`` si c'est le cas, et " +"``0`` sinon. Cette fonction réussit toujours." + +#: ../Doc/c-api/object.rst:258 +msgid "" +"Call a callable Python object *callable*, with arguments given by the tuple " +"*args*, and named arguments given by the dictionary *kwargs*." +msgstr "" +"Appelle un objet Python appelable *callable*, avec des arguments donnés par " +"le tuple *args*, et des arguments nommés donnés par le dictionnaire *kwargs*." + +#: ../Doc/c-api/object.rst:261 +msgid "" +"*args* must not be *NULL*, use an empty tuple if no arguments are needed. If " +"no named arguments are needed, *kwargs* can be *NULL*." +msgstr "" +"*args* ne doit pas être égal à *NULL*, utilisez un tuple vide si aucun " +"argument n'est nécessaire. Si aucun argument nommé n'est nécessaire, " +"*kwargs* peut être égal à *NULL*." + +#: ../Doc/c-api/object.rst:264 ../Doc/c-api/object.rst:276 +#: ../Doc/c-api/object.rst:288 ../Doc/c-api/object.rst:308 +#: ../Doc/c-api/object.rst:327 ../Doc/c-api/object.rst:341 +msgid "" +"Return the result of the call on success, or raise an exception and return " +"*NULL* on failure." +msgstr "" +"Renvoie le résultat de l'appel en cas de succès, ou lève une exception et " +"renvoie *NULL* en cas d'échec." + +#: ../Doc/c-api/object.rst:267 +msgid "" +"This is the equivalent of the Python expression: ``callable(*args, " +"**kwargs)``." +msgstr "" +"Ceci est l'équivalent de l'expression Python : ``callable(*args, **kwargs)``." + +#: ../Doc/c-api/object.rst:273 +msgid "" +"Call a callable Python object *callable*, with arguments given by the tuple " +"*args*. If no arguments are needed, then *args* can be *NULL*." +msgstr "" +"Appelle un objet Python appelable *callable*, avec des arguments donnés par " +"le tuple *args*. Si aucun argument n'est nécessaire, alors *args* peut être " +"égal à *NULL*." + +#: ../Doc/c-api/object.rst:279 ../Doc/c-api/object.rst:291 +msgid "This is the equivalent of the Python expression: ``callable(*args)``." +msgstr "Ceci est l'équivalent de l'expression Python : ``callable(*args)``." + +#: ../Doc/c-api/object.rst:284 +msgid "" +"Call a callable Python object *callable*, with a variable number of C " +"arguments. The C arguments are described using a :c:func:`Py_BuildValue` " +"style format string. The format can be *NULL*, indicating that no arguments " +"are provided." +msgstr "" +"Appelle un objet Python appelable, avec un nombre variable d'arguments C. " +"Les arguments C sont décrits par une chaîne de caractères de format de type :" +"c:func:`Py_BuildValue`. Le format peut être *NULL*, indiquant qu'aucun " +"argument n'est donné." + +#: ../Doc/c-api/object.rst:293 +msgid "" +"Note that if you only pass :c:type:`PyObject \\*` args, :c:func:" +"`PyObject_CallFunctionObjArgs` is a faster alternative." +msgstr "" + +#: ../Doc/c-api/object.rst:296 +msgid "The type of *format* was changed from ``char *``." +msgstr "" + +#: ../Doc/c-api/object.rst:302 +msgid "" +"Call the method named *name* of object *obj* with a variable number of C " +"arguments. The C arguments are described by a :c:func:`Py_BuildValue` " +"format string that should produce a tuple." +msgstr "" + +#: ../Doc/c-api/object.rst:306 +msgid "The format can be *NULL*, indicating that no arguments are provided." +msgstr "" + +#: ../Doc/c-api/object.rst:311 +msgid "" +"This is the equivalent of the Python expression: ``obj.name(arg1, " +"arg2, ...)``." +msgstr "" + +#: ../Doc/c-api/object.rst:314 +msgid "" +"Note that if you only pass :c:type:`PyObject \\*` args, :c:func:" +"`PyObject_CallMethodObjArgs` is a faster alternative." +msgstr "" + +#: ../Doc/c-api/object.rst:317 +msgid "The types of *name* and *format* were changed from ``char *``." +msgstr "" + +#: ../Doc/c-api/object.rst:323 +msgid "" +"Call a callable Python object *callable*, with a variable number of :c:type:" +"`PyObject\\*` arguments. The arguments are provided as a variable number of " +"parameters followed by *NULL*." +msgstr "" + +#: ../Doc/c-api/object.rst:330 +msgid "" +"This is the equivalent of the Python expression: ``callable(arg1, " +"arg2, ...)``." +msgstr "" + +#: ../Doc/c-api/object.rst:336 +msgid "" +"Calls a method of the Python object *obj*, where the name of the method is " +"given as a Python string object in *name*. It is called with a variable " +"number of :c:type:`PyObject\\*` arguments. The arguments are provided as a " +"variable number of parameters followed by *NULL*." +msgstr "" + +#: ../Doc/c-api/object.rst:349 +msgid "" +"Compute and return the hash value of an object *o*. On failure, return " +"``-1``. This is the equivalent of the Python expression ``hash(o)``." +msgstr "" + +#: ../Doc/c-api/object.rst:352 +msgid "" +"The return type is now Py_hash_t. This is a signed integer the same size as " +"Py_ssize_t." +msgstr "" + +#: ../Doc/c-api/object.rst:359 +msgid "" +"Set a :exc:`TypeError` indicating that ``type(o)`` is not hashable and " +"return ``-1``. This function receives special treatment when stored in a " +"``tp_hash`` slot, allowing a type to explicitly indicate to the interpreter " +"that it is not hashable." +msgstr "" + +#: ../Doc/c-api/object.rst:367 +msgid "" +"Returns ``1`` if the object *o* is considered to be true, and ``0`` " +"otherwise. This is equivalent to the Python expression ``not not o``. On " +"failure, return ``-1``." +msgstr "" + +#: ../Doc/c-api/object.rst:374 +msgid "" +"Returns ``0`` if the object *o* is considered to be true, and ``1`` " +"otherwise. This is equivalent to the Python expression ``not o``. On " +"failure, return ``-1``." +msgstr "" + +#: ../Doc/c-api/object.rst:383 +msgid "" +"When *o* is non-*NULL*, returns a type object corresponding to the object " +"type of object *o*. On failure, raises :exc:`SystemError` and returns " +"*NULL*. This is equivalent to the Python expression ``type(o)``. This " +"function increments the reference count of the return value. There's really " +"no reason to use this function instead of the common expression ``o-" +">ob_type``, which returns a pointer of type :c:type:`PyTypeObject\\*`, " +"except when the incremented reference count is needed." +msgstr "" + +#: ../Doc/c-api/object.rst:394 +msgid "" +"Return true if the object *o* is of type *type* or a subtype of *type*. " +"Both parameters must be non-*NULL*." +msgstr "" + +#: ../Doc/c-api/object.rst:403 +msgid "" +"Return the length of object *o*. If the object *o* provides either the " +"sequence and mapping protocols, the sequence length is returned. On error, " +"``-1`` is returned. This is the equivalent to the Python expression " +"``len(o)``." +msgstr "" + +#: ../Doc/c-api/object.rst:410 +msgid "" +"Return an estimated length for the object *o*. First try to return its " +"actual length, then an estimate using :meth:`~object.__length_hint__`, and " +"finally return the default value. On error return ``-1``. This is the " +"equivalent to the Python expression ``operator.length_hint(o, default)``." +msgstr "" + +#: ../Doc/c-api/object.rst:420 +msgid "" +"Return element of *o* corresponding to the object *key* or *NULL* on " +"failure. This is the equivalent of the Python expression ``o[key]``." +msgstr "" + +#: ../Doc/c-api/object.rst:426 +msgid "" +"Map the object *key* to the value *v*. Raise an exception and return ``-1`` " +"on failure; return ``0`` on success. This is the equivalent of the Python " +"statement ``o[key] = v``." +msgstr "" + +#: ../Doc/c-api/object.rst:433 +msgid "" +"Remove the mapping for the object *key* from the object *o*. Return ``-1`` " +"on failure. This is equivalent to the Python statement ``del o[key]``." +msgstr "" + +#: ../Doc/c-api/object.rst:439 +msgid "" +"This is equivalent to the Python expression ``dir(o)``, returning a " +"(possibly empty) list of strings appropriate for the object argument, or " +"*NULL* if there was an error. If the argument is *NULL*, this is like the " +"Python ``dir()``, returning the names of the current locals; in this case, " +"if no execution frame is active then *NULL* is returned but :c:func:" +"`PyErr_Occurred` will return false." +msgstr "" + +#: ../Doc/c-api/object.rst:448 +msgid "" +"This is equivalent to the Python expression ``iter(o)``. It returns a new " +"iterator for the object argument, or the object itself if the object is " +"already an iterator. Raises :exc:`TypeError` and returns *NULL* if the " +"object cannot be iterated." +msgstr "" diff --git a/c-api/objimpl.po b/c-api/objimpl.po new file mode 100644 index 000000000..178166cd8 --- /dev/null +++ b/c-api/objimpl.po @@ -0,0 +1,27 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-10-18 09:23+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/objimpl.rst:7 +msgid "Object Implementation Support" +msgstr "Implémentation d'objets" + +#: ../Doc/c-api/objimpl.rst:9 +msgid "" +"This chapter describes the functions, types, and macros used when defining " +"new object types." +msgstr "" +"Ce chapitre décrit les fonctions, types, et macros utilisées pour définir de " +"nouveaux types d'objets." diff --git a/c-api/refcounting.po b/c-api/refcounting.po new file mode 100644 index 000000000..302252101 --- /dev/null +++ b/c-api/refcounting.po @@ -0,0 +1,96 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/refcounting.rst:8 +msgid "Reference Counting" +msgstr "" + +#: ../Doc/c-api/refcounting.rst:10 +msgid "" +"The macros in this section are used for managing reference counts of Python " +"objects." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:16 +msgid "" +"Increment the reference count for object *o*. The object must not be " +"*NULL*; if you aren't sure that it isn't *NULL*, use :c:func:`Py_XINCREF`." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:22 +msgid "" +"Increment the reference count for object *o*. The object may be *NULL*, in " +"which case the macro has no effect." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:28 +msgid "" +"Decrement the reference count for object *o*. The object must not be " +"*NULL*; if you aren't sure that it isn't *NULL*, use :c:func:`Py_XDECREF`. " +"If the reference count reaches zero, the object's type's deallocation " +"function (which must not be *NULL*) is invoked." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:35 +msgid "" +"The deallocation function can cause arbitrary Python code to be invoked (e." +"g. when a class instance with a :meth:`__del__` method is deallocated). " +"While exceptions in such code are not propagated, the executed code has free " +"access to all Python global variables. This means that any object that is " +"reachable from a global variable should be in a consistent state before :c:" +"func:`Py_DECREF` is invoked. For example, code to delete an object from a " +"list should copy a reference to the deleted object in a temporary variable, " +"update the list data structure, and then call :c:func:`Py_DECREF` for the " +"temporary variable." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:47 +msgid "" +"Decrement the reference count for object *o*. The object may be *NULL*, in " +"which case the macro has no effect; otherwise the effect is the same as for :" +"c:func:`Py_DECREF`, and the same warning applies." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:54 +msgid "" +"Decrement the reference count for object *o*. The object may be *NULL*, in " +"which case the macro has no effect; otherwise the effect is the same as for :" +"c:func:`Py_DECREF`, except that the argument is also set to *NULL*. The " +"warning for :c:func:`Py_DECREF` does not apply with respect to the object " +"passed because the macro carefully uses a temporary variable and sets the " +"argument to *NULL* before decrementing its reference count." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:61 +msgid "" +"It is a good idea to use this macro whenever decrementing the value of a " +"variable that might be traversed during garbage collection." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:65 +msgid "" +"The following functions are for runtime dynamic embedding of Python: " +"``Py_IncRef(PyObject *o)``, ``Py_DecRef(PyObject *o)``. They are simply " +"exported function versions of :c:func:`Py_XINCREF` and :c:func:`Py_XDECREF`, " +"respectively." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:70 +msgid "" +"The following functions or macros are only for use within the interpreter " +"core: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:" +"`_Py_NewReference`, as well as the global variable :c:data:`_Py_RefTotal`." +msgstr "" diff --git a/c-api/reflection.po b/c-api/reflection.po new file mode 100644 index 000000000..3fc439a99 --- /dev/null +++ b/c-api/reflection.po @@ -0,0 +1,77 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2019-02-26 12:01+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/reflection.rst:6 +msgid "Reflection" +msgstr "Réflexion" + +#: ../Doc/c-api/reflection.rst:10 +msgid "" +"Return a dictionary of the builtins in the current execution frame, or the " +"interpreter of the thread state if no frame is currently executing." +msgstr "" +"Renvoie un dictionnaire des fonctions natives de la *frame* en cours " +"d'exécution, ou si aucune *frame* n'est exécutée, les fonctions natives du " +"*thread* indiqué par le *thread state*." + +#: ../Doc/c-api/reflection.rst:16 +msgid "" +"Return a dictionary of the local variables in the current execution frame, " +"or *NULL* if no frame is currently executing." +msgstr "" +"Renvoie un dictionnaire des variables locales de la *frame* en cours " +"d'exécution, ou *NULL* si aucune *frame* n'est en cours d'exécution." + +#: ../Doc/c-api/reflection.rst:22 +msgid "" +"Return a dictionary of the global variables in the current execution frame, " +"or *NULL* if no frame is currently executing." +msgstr "" +"Renvoie un dictionnaire des variables globales de la *frame* en cours " +"d'exécution ou *NULL* si aucune *frame* n'est en cours d'exécution." + +#: ../Doc/c-api/reflection.rst:28 +msgid "" +"Return the current thread state's frame, which is *NULL* if no frame is " +"currently executing." +msgstr "" +"Renvoie la *frame* actuelle selon le *thread state*, qui est *NULL* si " +"aucune *frame* n'est en cours d'exécution." + +#: ../Doc/c-api/reflection.rst:34 +msgid "Return the line number that *frame* is currently executing." +msgstr "Renvoie le numéro de ligne que *frame* est en train d'exécuter" + +#: ../Doc/c-api/reflection.rst:39 +msgid "" +"Return the name of *func* if it is a function, class or instance object, " +"else the name of *func*\\s type." +msgstr "" +"Renvoie le nom de *func* s'il s'agit d'une fonction, d'une classe ou d'un " +"objet d'instance, sinon le nom du type de *func*" + +#: ../Doc/c-api/reflection.rst:45 +msgid "" +"Return a description string, depending on the type of *func*. Return values " +"include \"()\" for functions and methods, \" constructor\", \" instance\", " +"and \" object\". Concatenated with the result of :c:func:" +"`PyEval_GetFuncName`, the result will be a description of *func*." +msgstr "" +"Renvoie une description en chaîne de caractères, en fonction du type de " +"*func*. Les valeurs renvoyées peuvent être ``\"()\"`` pour les fonction et " +"les méthodes, ``\\\" constructor\\\"``, ``\\\" instance\\\"``, ``\\\" object" +"\\\"``. Concaténé avec le résultat de :c:func:`PyEval_GetFuncName`, le " +"résultat sera une description de *func*" diff --git a/c-api/sequence.po b/c-api/sequence.po new file mode 100644 index 000000000..31bce7d9a --- /dev/null +++ b/c-api/sequence.po @@ -0,0 +1,184 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/sequence.rst:6 +msgid "Sequence Protocol" +msgstr "" + +#: ../Doc/c-api/sequence.rst:11 +msgid "" +"Return ``1`` if the object provides sequence protocol, and ``0`` otherwise. " +"Note that it returns ``1`` for Python classes with a :meth:`__getitem__` " +"method unless they are :class:`dict` subclasses since in general case it is " +"impossible to determine what the type of keys it supports. This function " +"always succeeds." +msgstr "" + +#: ../Doc/c-api/sequence.rst:23 +msgid "" +"Returns the number of objects in sequence *o* on success, and ``-1`` on " +"failure. This is equivalent to the Python expression ``len(o)``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:29 +msgid "" +"Return the concatenation of *o1* and *o2* on success, and *NULL* on failure. " +"This is the equivalent of the Python expression ``o1 + o2``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:35 +msgid "" +"Return the result of repeating sequence object *o* *count* times, or *NULL* " +"on failure. This is the equivalent of the Python expression ``o * count``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:41 +msgid "" +"Return the concatenation of *o1* and *o2* on success, and *NULL* on failure. " +"The operation is done *in-place* when *o1* supports it. This is the " +"equivalent of the Python expression ``o1 += o2``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:48 +msgid "" +"Return the result of repeating sequence object *o* *count* times, or *NULL* " +"on failure. The operation is done *in-place* when *o* supports it. This is " +"the equivalent of the Python expression ``o *= count``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:55 +msgid "" +"Return the *i*\\ th element of *o*, or *NULL* on failure. This is the " +"equivalent of the Python expression ``o[i]``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:61 +msgid "" +"Return the slice of sequence object *o* between *i1* and *i2*, or *NULL* on " +"failure. This is the equivalent of the Python expression ``o[i1:i2]``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:67 +msgid "" +"Assign object *v* to the *i*\\ th element of *o*. Raise an exception and " +"return ``-1`` on failure; return ``0`` on success. This is the equivalent " +"of the Python statement ``o[i] = v``. This function *does not* steal a " +"reference to *v*." +msgstr "" + +#: ../Doc/c-api/sequence.rst:72 +msgid "" +"If *v* is *NULL*, the element is deleted, however this feature is deprecated " +"in favour of using :c:func:`PySequence_DelItem`." +msgstr "" + +#: ../Doc/c-api/sequence.rst:78 +msgid "" +"Delete the *i*\\ th element of object *o*. Returns ``-1`` on failure. This " +"is the equivalent of the Python statement ``del o[i]``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:84 +msgid "" +"Assign the sequence object *v* to the slice in sequence object *o* from *i1* " +"to *i2*. This is the equivalent of the Python statement ``o[i1:i2] = v``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:90 +msgid "" +"Delete the slice in sequence object *o* from *i1* to *i2*. Returns ``-1`` " +"on failure. This is the equivalent of the Python statement ``del o[i1:i2]``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:96 +msgid "" +"Return the number of occurrences of *value* in *o*, that is, return the " +"number of keys for which ``o[key] == value``. On failure, return ``-1``. " +"This is equivalent to the Python expression ``o.count(value)``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:103 +msgid "" +"Determine if *o* contains *value*. If an item in *o* is equal to *value*, " +"return ``1``, otherwise return ``0``. On error, return ``-1``. This is " +"equivalent to the Python expression ``value in o``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:110 +msgid "" +"Return the first index *i* for which ``o[i] == value``. On error, return " +"``-1``. This is equivalent to the Python expression ``o.index(value)``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:116 +msgid "" +"Return a list object with the same contents as the sequence or iterable *o*, " +"or *NULL* on failure. The returned list is guaranteed to be new. This is " +"equivalent to the Python expression ``list(o)``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:125 +msgid "" +"Return a tuple object with the same contents as the sequence or iterable " +"*o*, or *NULL* on failure. If *o* is a tuple, a new reference will be " +"returned, otherwise a tuple will be constructed with the appropriate " +"contents. This is equivalent to the Python expression ``tuple(o)``." +msgstr "" + +#: ../Doc/c-api/sequence.rst:133 +msgid "" +"Return the sequence or iterable *o* as a list, unless it is already a tuple " +"or list, in which case *o* is returned. Use :c:func:" +"`PySequence_Fast_GET_ITEM` to access the members of the result. Returns " +"*NULL* on failure. If the object is not a sequence or iterable, raises :exc:" +"`TypeError` with *m* as the message text." +msgstr "" + +#: ../Doc/c-api/sequence.rst:141 +msgid "" +"Returns the length of *o*, assuming that *o* was returned by :c:func:" +"`PySequence_Fast` and that *o* is not *NULL*. The size can also be gotten " +"by calling :c:func:`PySequence_Size` on *o*, but :c:func:" +"`PySequence_Fast_GET_SIZE` is faster because it can assume *o* is a list or " +"tuple." +msgstr "" + +#: ../Doc/c-api/sequence.rst:150 +msgid "" +"Return the *i*\\ th element of *o*, assuming that *o* was returned by :c:" +"func:`PySequence_Fast`, *o* is not *NULL*, and that *i* is within bounds." +msgstr "" + +#: ../Doc/c-api/sequence.rst:156 +msgid "" +"Return the underlying array of PyObject pointers. Assumes that *o* was " +"returned by :c:func:`PySequence_Fast` and *o* is not *NULL*." +msgstr "" + +#: ../Doc/c-api/sequence.rst:159 +msgid "" +"Note, if a list gets resized, the reallocation may relocate the items array. " +"So, only use the underlying array pointer in contexts where the sequence " +"cannot change." +msgstr "" + +#: ../Doc/c-api/sequence.rst:166 +msgid "" +"Return the *i*\\ th element of *o* or *NULL* on failure. Macro form of :c:" +"func:`PySequence_GetItem` but without checking that :c:func:" +"`PySequence_Check` on *o* is true and without adjustment for negative " +"indices." +msgstr "" diff --git a/c-api/set.po b/c-api/set.po new file mode 100644 index 000000000..c2e658a33 --- /dev/null +++ b/c-api/set.po @@ -0,0 +1,180 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/set.rst:6 +msgid "Set Objects" +msgstr "" + +#: ../Doc/c-api/set.rst:15 +msgid "" +"This section details the public API for :class:`set` and :class:`frozenset` " +"objects. Any functionality not listed below is best accessed using the " +"either the abstract object protocol (including :c:func:" +"`PyObject_CallMethod`, :c:func:`PyObject_RichCompareBool`, :c:func:" +"`PyObject_Hash`, :c:func:`PyObject_Repr`, :c:func:`PyObject_IsTrue`, :c:func:" +"`PyObject_Print`, and :c:func:`PyObject_GetIter`) or the abstract number " +"protocol (including :c:func:`PyNumber_And`, :c:func:`PyNumber_Subtract`, :c:" +"func:`PyNumber_Or`, :c:func:`PyNumber_Xor`, :c:func:`PyNumber_InPlaceAnd`, :" +"c:func:`PyNumber_InPlaceSubtract`, :c:func:`PyNumber_InPlaceOr`, and :c:func:" +"`PyNumber_InPlaceXor`)." +msgstr "" + +#: ../Doc/c-api/set.rst:29 +msgid "" +"This subtype of :c:type:`PyObject` is used to hold the internal data for " +"both :class:`set` and :class:`frozenset` objects. It is like a :c:type:" +"`PyDictObject` in that it is a fixed size for small sets (much like tuple " +"storage) and will point to a separate, variable sized block of memory for " +"medium and large sized sets (much like list storage). None of the fields of " +"this structure should be considered public and are subject to change. All " +"access should be done through the documented API rather than by manipulating " +"the values in the structure." +msgstr "" + +#: ../Doc/c-api/set.rst:40 +msgid "" +"This is an instance of :c:type:`PyTypeObject` representing the Python :class:" +"`set` type." +msgstr "" + +#: ../Doc/c-api/set.rst:46 +msgid "" +"This is an instance of :c:type:`PyTypeObject` representing the Python :class:" +"`frozenset` type." +msgstr "" + +#: ../Doc/c-api/set.rst:49 +msgid "" +"The following type check macros work on pointers to any Python object. " +"Likewise, the constructor functions work with any iterable Python object." +msgstr "" + +#: ../Doc/c-api/set.rst:55 +msgid "" +"Return true if *p* is a :class:`set` object or an instance of a subtype." +msgstr "" + +#: ../Doc/c-api/set.rst:59 +msgid "" +"Return true if *p* is a :class:`frozenset` object or an instance of a " +"subtype." +msgstr "" + +#: ../Doc/c-api/set.rst:64 +msgid "" +"Return true if *p* is a :class:`set` object, a :class:`frozenset` object, or " +"an instance of a subtype." +msgstr "" + +#: ../Doc/c-api/set.rst:70 +msgid "" +"Return true if *p* is a :class:`set` object or a :class:`frozenset` object " +"but not an instance of a subtype." +msgstr "" + +#: ../Doc/c-api/set.rst:76 +msgid "" +"Return true if *p* is a :class:`frozenset` object but not an instance of a " +"subtype." +msgstr "" + +#: ../Doc/c-api/set.rst:82 +msgid "" +"Return a new :class:`set` containing objects returned by the *iterable*. " +"The *iterable* may be *NULL* to create a new empty set. Return the new set " +"on success or *NULL* on failure. Raise :exc:`TypeError` if *iterable* is " +"not actually iterable. The constructor is also useful for copying a set " +"(``c=set(s)``)." +msgstr "" + +#: ../Doc/c-api/set.rst:91 +msgid "" +"Return a new :class:`frozenset` containing objects returned by the " +"*iterable*. The *iterable* may be *NULL* to create a new empty frozenset. " +"Return the new set on success or *NULL* on failure. Raise :exc:`TypeError` " +"if *iterable* is not actually iterable." +msgstr "" + +#: ../Doc/c-api/set.rst:97 +msgid "" +"The following functions and macros are available for instances of :class:" +"`set` or :class:`frozenset` or instances of their subtypes." +msgstr "" + +#: ../Doc/c-api/set.rst:105 +msgid "" +"Return the length of a :class:`set` or :class:`frozenset` object. Equivalent " +"to ``len(anyset)``. Raises a :exc:`PyExc_SystemError` if *anyset* is not a :" +"class:`set`, :class:`frozenset`, or an instance of a subtype." +msgstr "" + +#: ../Doc/c-api/set.rst:112 +msgid "Macro form of :c:func:`PySet_Size` without error checking." +msgstr "" + +#: ../Doc/c-api/set.rst:117 +msgid "" +"Return ``1`` if found, ``0`` if not found, and ``-1`` if an error is " +"encountered. Unlike the Python :meth:`__contains__` method, this function " +"does not automatically convert unhashable sets into temporary frozensets. " +"Raise a :exc:`TypeError` if the *key* is unhashable. Raise :exc:" +"`PyExc_SystemError` if *anyset* is not a :class:`set`, :class:`frozenset`, " +"or an instance of a subtype." +msgstr "" + +#: ../Doc/c-api/set.rst:126 +msgid "" +"Add *key* to a :class:`set` instance. Also works with :class:`frozenset` " +"instances (like :c:func:`PyTuple_SetItem` it can be used to fill-in the " +"values of brand new frozensets before they are exposed to other code). " +"Return ``0`` on success or ``-1`` on failure. Raise a :exc:`TypeError` if " +"the *key* is unhashable. Raise a :exc:`MemoryError` if there is no room to " +"grow. Raise a :exc:`SystemError` if *set* is not an instance of :class:" +"`set` or its subtype." +msgstr "" + +#: ../Doc/c-api/set.rst:135 +msgid "" +"The following functions are available for instances of :class:`set` or its " +"subtypes but not for instances of :class:`frozenset` or its subtypes." +msgstr "" + +#: ../Doc/c-api/set.rst:141 +msgid "" +"Return ``1`` if found and removed, ``0`` if not found (no action taken), and " +"``-1`` if an error is encountered. Does not raise :exc:`KeyError` for " +"missing keys. Raise a :exc:`TypeError` if the *key* is unhashable. Unlike " +"the Python :meth:`~set.discard` method, this function does not automatically " +"convert unhashable sets into temporary frozensets. Raise :exc:" +"`PyExc_SystemError` if *set* is not an instance of :class:`set` or its " +"subtype." +msgstr "" + +#: ../Doc/c-api/set.rst:151 +msgid "" +"Return a new reference to an arbitrary object in the *set*, and removes the " +"object from the *set*. Return *NULL* on failure. Raise :exc:`KeyError` if " +"the set is empty. Raise a :exc:`SystemError` if *set* is not an instance of :" +"class:`set` or its subtype." +msgstr "" + +#: ../Doc/c-api/set.rst:159 +msgid "Empty an existing set of all elements." +msgstr "" + +#: ../Doc/c-api/set.rst:164 +msgid "Clear the free list. Return the total number of freed items." +msgstr "" diff --git a/c-api/slice.po b/c-api/slice.po new file mode 100644 index 000000000..5481ed6c9 --- /dev/null +++ b/c-api/slice.po @@ -0,0 +1,138 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/slice.rst:6 +msgid "Slice Objects" +msgstr "" + +#: ../Doc/c-api/slice.rst:11 +msgid "" +"The type object for slice objects. This is the same as :class:`slice` in " +"the Python layer." +msgstr "" + +#: ../Doc/c-api/slice.rst:17 +msgid "Return true if *ob* is a slice object; *ob* must not be *NULL*." +msgstr "" + +#: ../Doc/c-api/slice.rst:22 +msgid "" +"Return a new slice object with the given values. The *start*, *stop*, and " +"*step* parameters are used as the values of the slice object attributes of " +"the same names. Any of the values may be *NULL*, in which case the ``None`` " +"will be used for the corresponding attribute. Return *NULL* if the new " +"object could not be allocated." +msgstr "" + +#: ../Doc/c-api/slice.rst:31 +msgid "" +"Retrieve the start, stop and step indices from the slice object *slice*, " +"assuming a sequence of length *length*. Treats indices greater than *length* " +"as errors." +msgstr "" + +#: ../Doc/c-api/slice.rst:35 +msgid "" +"Returns ``0`` on success and ``-1`` on error with no exception set (unless " +"one of the indices was not :const:`None` and failed to be converted to an " +"integer, in which case ``-1`` is returned with an exception set)." +msgstr "" + +#: ../Doc/c-api/slice.rst:39 +msgid "You probably do not want to use this function." +msgstr "" + +#: ../Doc/c-api/slice.rst:41 ../Doc/c-api/slice.rst:72 +msgid "" +"The parameter type for the *slice* parameter was ``PySliceObject*`` before." +msgstr "" + +#: ../Doc/c-api/slice.rst:48 +msgid "" +"Usable replacement for :c:func:`PySlice_GetIndices`. Retrieve the start, " +"stop, and step indices from the slice object *slice* assuming a sequence of " +"length *length*, and store the length of the slice in *slicelength*. Out of " +"bounds indices are clipped in a manner consistent with the handling of " +"normal slices." +msgstr "" + +#: ../Doc/c-api/slice.rst:54 +msgid "Returns ``0`` on success and ``-1`` on error with exception set." +msgstr "" + +#: ../Doc/c-api/slice.rst:57 +msgid "" +"This function is considered not safe for resizable sequences. Its invocation " +"should be replaced by a combination of :c:func:`PySlice_Unpack` and :c:func:" +"`PySlice_AdjustIndices` where ::" +msgstr "" + +#: ../Doc/c-api/slice.rst:65 +msgid "is replaced by ::" +msgstr "" + +#: ../Doc/c-api/slice.rst:76 +msgid "" +"If ``Py_LIMITED_API`` is not set or set to the value between ``0x03050400`` " +"and ``0x03060000`` (not including) or ``0x03060100`` or higher :c:func:`!" +"PySlice_GetIndicesEx` is implemented as a macro using :c:func:`!" +"PySlice_Unpack` and :c:func:`!PySlice_AdjustIndices`. Arguments *start*, " +"*stop* and *step* are evaluated more than once." +msgstr "" + +#: ../Doc/c-api/slice.rst:83 +msgid "" +"If ``Py_LIMITED_API`` is set to the value less than ``0x03050400`` or " +"between ``0x03060000`` and ``0x03060100`` (not including) :c:func:`!" +"PySlice_GetIndicesEx` is a deprecated function." +msgstr "" + +#: ../Doc/c-api/slice.rst:91 +msgid "" +"Extract the start, stop and step data members from a slice object as C " +"integers. Silently reduce values larger than ``PY_SSIZE_T_MAX`` to " +"``PY_SSIZE_T_MAX``, silently boost the start and stop values less than " +"``PY_SSIZE_T_MIN`` to ``PY_SSIZE_T_MIN``, and silently boost the step values " +"less than ``-PY_SSIZE_T_MAX`` to ``-PY_SSIZE_T_MAX``." +msgstr "" + +#: ../Doc/c-api/slice.rst:97 +msgid "Return ``-1`` on error, ``0`` on success." +msgstr "" + +#: ../Doc/c-api/slice.rst:104 +msgid "" +"Adjust start/end slice indices assuming a sequence of the specified length. " +"Out of bounds indices are clipped in a manner consistent with the handling " +"of normal slices." +msgstr "" + +#: ../Doc/c-api/slice.rst:108 +msgid "" +"Return the length of the slice. Always successful. Doesn't call Python " +"code." +msgstr "" + +#: ../Doc/c-api/slice.rst:115 +msgid "Ellipsis Object" +msgstr "" + +#: ../Doc/c-api/slice.rst:120 +msgid "" +"The Python ``Ellipsis`` object. This object has no methods. It needs to be " +"treated just like any other object with respect to reference counts. Like :" +"c:data:`Py_None` it is a singleton object." +msgstr "" diff --git a/c-api/stable.po b/c-api/stable.po new file mode 100644 index 000000000..2eb5a69c6 --- /dev/null +++ b/c-api/stable.po @@ -0,0 +1,97 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-10-04 12:26+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/stable.rst:7 +msgid "Stable Application Binary Interface" +msgstr "ABI Stable" + +#: ../Doc/c-api/stable.rst:9 +msgid "" +"Traditionally, the C API of Python will change with every release. Most " +"changes will be source-compatible, typically by only adding API, rather than " +"changing existing API or removing API (although some interfaces do get " +"removed after being deprecated first)." +msgstr "" +"L'API C de Python change à chaque version. La majorité de ces changement " +"n'affecte cependant pas la compatibilité du code source. Typiquement, des " +"API sont ajoutées, mais ni modifiées ni supprimées (bien que certaines " +"interfaces puissent être supprimées, après avoir d'abord été dépréciées)." + +#: ../Doc/c-api/stable.rst:14 +msgid "" +"Unfortunately, the API compatibility does not extend to binary compatibility " +"(the ABI). The reason is primarily the evolution of struct definitions, " +"where addition of a new field, or changing the type of a field, might not " +"break the API, but can break the ABI. As a consequence, extension modules " +"need to be recompiled for every Python release (although an exception is " +"possible on Unix when none of the affected interfaces are used). In " +"addition, on Windows, extension modules link with a specific pythonXY.dll " +"and need to be recompiled to link with a newer one." +msgstr "" +"Malheureusement, la compatibilité de l'API ne s'étend pas à une " +"compatibilité binaire (l'ABI). L'évolution des structures en est la raison " +"principale : l'ajout de nouveaux attributs, ou le changement du type d'un " +"attribut peut ne pas casser l'API mais casser l'ABI. Par conséquent, les " +"modules d'extension doivent être recompilés à chaque nouvelle version de " +"Python (ce n'est exceptionnellement pas nécessaire sur Unix, si aucune des " +"interfaces modifiées n'est utilisée). De plus, sous Windows, les modules " +"d'extension sont liés à un *pythonXY.dll* spécifique, ils est donc " +"nécessaire de les recompiler pour les lier au nouveau DLL." + +#: ../Doc/c-api/stable.rst:23 +msgid "" +"Since Python 3.2, a subset of the API has been declared to guarantee a " +"stable ABI. Extension modules wishing to use this API (called \"limited API" +"\") need to define ``Py_LIMITED_API``. A number of interpreter details then " +"become hidden from the extension module; in return, a module is built that " +"works on any 3.x version (x>=2) without recompilation." +msgstr "" +"Depuis Python 3.2 il est garanti qu'une certaine partie de l'API gardera une " +"ABI stable. Les modules d'extension souhaitant utiliser cette API (Appellée " +"\"API limitée\") doivent définir ``Py_LIMITED_API``. Des spécificités de " +"l'interpréteur sont alors cachées au module, en contrepartie le module " +"devient compatible avec toutes les versions de Python 3.x (x>=2) sans " +"recompilation." + +#: ../Doc/c-api/stable.rst:29 +msgid "" +"In some cases, the stable ABI needs to be extended with new functions. " +"Extension modules wishing to use these new APIs need to set " +"``Py_LIMITED_API`` to the ``PY_VERSION_HEX`` value (see :ref:" +"`apiabiversion`) of the minimum Python version they want to support (e.g. " +"``0x03030000`` for Python 3.3). Such modules will work on all subsequent " +"Python releases, but fail to load (because of missing symbols) on the older " +"releases." +msgstr "" +"Dans certains cas, il est nécessaire d'étendre l'ABI stable avec de " +"nouvelles fonctions. Les modules d'extension souhaitant utiliser ces " +"nouvelles APIs doivent configurer ``Py_LIMITED_API`` à la valeur " +"``Py_VERSION_HEX`` correspondant à la plus ancienne version de Python qu'ils " +"souhaitent supporter (voir :ref:`apiabiversion`, par exemple ``0x03030000`` " +"pour Python 3.3). De tels modules fonctionneront dans toutes les versions " +"ultérieures de Python, mais ne pourront pas se charger (dû à des symboles " +"manquants) sur les versions plus anciennes." + +#: ../Doc/c-api/stable.rst:36 +msgid "" +"As of Python 3.2, the set of functions available to the limited API is " +"documented in :pep:`384`. In the C API documentation, API elements that are " +"not part of the limited API are marked as \"Not part of the limited API.\"" +msgstr "" +"Depuis Python 3.2, l'ensemble des fonctions exposées par l'API limitée est " +"documentée dans la :pep:`384`. Dans la documentation de l'API C, les " +"éléments ne faisant pas partie de l'API limitée sont notés \"Ne faisant pas " +"partie de l'API limitée\" (*\"Not part of the limited API\"*)." diff --git a/c-api/structures.po b/c-api/structures.po new file mode 100644 index 000000000..aa3cd2e96 --- /dev/null +++ b/c-api/structures.po @@ -0,0 +1,617 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/structures.rst:6 +msgid "Common Object Structures" +msgstr "" + +#: ../Doc/c-api/structures.rst:8 +msgid "" +"There are a large number of structures which are used in the definition of " +"object types for Python. This section describes these structures and how " +"they are used." +msgstr "" + +#: ../Doc/c-api/structures.rst:12 +msgid "" +"All Python objects ultimately share a small number of fields at the " +"beginning of the object's representation in memory. These are represented " +"by the :c:type:`PyObject` and :c:type:`PyVarObject` types, which are " +"defined, in turn, by the expansions of some macros also used, whether " +"directly or indirectly, in the definition of all other Python objects." +msgstr "" + +#: ../Doc/c-api/structures.rst:21 +msgid "" +"All object types are extensions of this type. This is a type which contains " +"the information Python needs to treat a pointer to an object as an object. " +"In a normal \"release\" build, it contains only the object's reference count " +"and a pointer to the corresponding type object. Nothing is actually declared " +"to be a :c:type:`PyObject`, but every pointer to a Python object can be cast " +"to a :c:type:`PyObject*`. Access to the members must be done by using the " +"macros :c:macro:`Py_REFCNT` and :c:macro:`Py_TYPE`." +msgstr "" + +#: ../Doc/c-api/structures.rst:33 +msgid "" +"This is an extension of :c:type:`PyObject` that adds the :attr:`ob_size` " +"field. This is only used for objects that have some notion of *length*. " +"This type does not often appear in the Python/C API. Access to the members " +"must be done by using the macros :c:macro:`Py_REFCNT`, :c:macro:`Py_TYPE`, " +"and :c:macro:`Py_SIZE`." +msgstr "" + +#: ../Doc/c-api/structures.rst:42 +msgid "" +"This is a macro used when declaring new types which represent objects " +"without a varying length. The PyObject_HEAD macro expands to::" +msgstr "" + +#: ../Doc/c-api/structures.rst:47 +msgid "See documentation of :c:type:`PyObject` above." +msgstr "" + +#: ../Doc/c-api/structures.rst:52 +msgid "" +"This is a macro used when declaring new types which represent objects with a " +"length that varies from instance to instance. The PyObject_VAR_HEAD macro " +"expands to::" +msgstr "" + +#: ../Doc/c-api/structures.rst:58 +msgid "See documentation of :c:type:`PyVarObject` above." +msgstr "" + +#: ../Doc/c-api/structures.rst:63 +msgid "" +"This macro is used to access the :attr:`ob_type` member of a Python object. " +"It expands to::" +msgstr "" + +#: ../Doc/c-api/structures.rst:71 +msgid "" +"This macro is used to access the :attr:`ob_refcnt` member of a Python " +"object. It expands to::" +msgstr "" + +#: ../Doc/c-api/structures.rst:80 +msgid "" +"This macro is used to access the :attr:`ob_size` member of a Python object. " +"It expands to::" +msgstr "" + +#: ../Doc/c-api/structures.rst:88 +msgid "" +"This is a macro which expands to initialization values for a new :c:type:" +"`PyObject` type. This macro expands to::" +msgstr "" + +#: ../Doc/c-api/structures.rst:97 +msgid "" +"This is a macro which expands to initialization values for a new :c:type:" +"`PyVarObject` type, including the :attr:`ob_size` field. This macro expands " +"to::" +msgstr "" + +#: ../Doc/c-api/structures.rst:107 +msgid "" +"Type of the functions used to implement most Python callables in C. " +"Functions of this type take two :c:type:`PyObject\\*` parameters and return " +"one such value. If the return value is *NULL*, an exception shall have been " +"set. If not *NULL*, the return value is interpreted as the return value of " +"the function as exposed in Python. The function must return a new reference." +msgstr "" + +#: ../Doc/c-api/structures.rst:117 +msgid "" +"Type of the functions used to implement Python callables in C with " +"signature :const:`METH_VARARGS | METH_KEYWORDS`." +msgstr "" + +#: ../Doc/c-api/structures.rst:123 +msgid "" +"Type of the functions used to implement Python callables in C with " +"signature :const:`METH_FASTCALL`." +msgstr "" + +#: ../Doc/c-api/structures.rst:129 +msgid "" +"Type of the functions used to implement Python callables in C with " +"signature :const:`METH_FASTCALL | METH_KEYWORDS`." +msgstr "" + +#: ../Doc/c-api/structures.rst:135 +msgid "" +"Structure used to describe a method of an extension type. This structure " +"has four fields:" +msgstr "" + +#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279 +#: ../Doc/c-api/structures.rst:345 +msgid "Field" +msgstr "Champ" + +#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279 +#: ../Doc/c-api/structures.rst:345 +msgid "C Type" +msgstr "Type C" + +#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279 +#: ../Doc/c-api/structures.rst:345 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/c-api/structures.rst:141 +msgid ":attr:`ml_name`" +msgstr "" + +#: ../Doc/c-api/structures.rst:141 ../Doc/c-api/structures.rst:149 +#: ../Doc/c-api/structures.rst:281 ../Doc/c-api/structures.rst:294 +#: ../Doc/c-api/structures.rst:310 ../Doc/c-api/structures.rst:347 +#: ../Doc/c-api/structures.rst:355 +msgid "const char \\*" +msgstr "" + +#: ../Doc/c-api/structures.rst:141 +msgid "name of the method" +msgstr "" + +#: ../Doc/c-api/structures.rst:143 +msgid ":attr:`ml_meth`" +msgstr "" + +#: ../Doc/c-api/structures.rst:143 +msgid "PyCFunction" +msgstr "PyCFunction" + +#: ../Doc/c-api/structures.rst:143 +msgid "pointer to the C implementation" +msgstr "" + +#: ../Doc/c-api/structures.rst:146 +msgid ":attr:`ml_flags`" +msgstr "" + +#: ../Doc/c-api/structures.rst:146 ../Doc/c-api/structures.rst:283 +#: ../Doc/c-api/structures.rst:290 ../Doc/c-api/structures.rst:306 +msgid "int" +msgstr "*int*" + +#: ../Doc/c-api/structures.rst:146 +msgid "flag bits indicating how the call should be constructed" +msgstr "" + +#: ../Doc/c-api/structures.rst:149 +msgid ":attr:`ml_doc`" +msgstr "" + +#: ../Doc/c-api/structures.rst:149 ../Doc/c-api/structures.rst:294 +msgid "points to the contents of the docstring" +msgstr "" + +#: ../Doc/c-api/structures.rst:153 +msgid "" +"The :attr:`ml_meth` is a C function pointer. The functions may be of " +"different types, but they always return :c:type:`PyObject\\*`. If the " +"function is not of the :c:type:`PyCFunction`, the compiler will require a " +"cast in the method table. Even though :c:type:`PyCFunction` defines the " +"first parameter as :c:type:`PyObject\\*`, it is common that the method " +"implementation uses the specific C type of the *self* object." +msgstr "" + +#: ../Doc/c-api/structures.rst:160 +msgid "" +"The :attr:`ml_flags` field is a bitfield which can include the following " +"flags. The individual flags indicate either a calling convention or a " +"binding convention." +msgstr "" + +#: ../Doc/c-api/structures.rst:164 +msgid "" +"There are four basic calling conventions for positional arguments and two of " +"them can be combined with :const:`METH_KEYWORDS` to support also keyword " +"arguments. So there are a total of 6 calling conventions:" +msgstr "" + +#: ../Doc/c-api/structures.rst:170 +msgid "" +"This is the typical calling convention, where the methods have the type :c:" +"type:`PyCFunction`. The function expects two :c:type:`PyObject\\*` values. " +"The first one is the *self* object for methods; for module functions, it is " +"the module object. The second parameter (often called *args*) is a tuple " +"object representing all arguments. This parameter is typically processed " +"using :c:func:`PyArg_ParseTuple` or :c:func:`PyArg_UnpackTuple`." +msgstr "" + +#: ../Doc/c-api/structures.rst:180 +msgid "" +"Methods with these flags must be of type :c:type:`PyCFunctionWithKeywords`. " +"The function expects three parameters: *self*, *args*, *kwargs* where " +"*kwargs* is a dictionary of all the keyword arguments or possibly *NULL* if " +"there are no keyword arguments. The parameters are typically processed " +"using :c:func:`PyArg_ParseTupleAndKeywords`." +msgstr "" + +#: ../Doc/c-api/structures.rst:189 +msgid "" +"Fast calling convention supporting only positional arguments. The methods " +"have the type :c:type:`_PyCFunctionFast`. The first parameter is *self*, the " +"second parameter is a C array of :c:type:`PyObject\\*` values indicating the " +"arguments and the third parameter is the number of arguments (the length of " +"the array)." +msgstr "" + +#: ../Doc/c-api/structures.rst:195 ../Doc/c-api/structures.rst:210 +msgid "This is not part of the :ref:`limited API `." +msgstr "" + +#: ../Doc/c-api/structures.rst:202 +msgid "" +"Extension of :const:`METH_FASTCALL` supporting also keyword arguments, with " +"methods of type :c:type:`_PyCFunctionFastWithKeywords`. Keyword arguments " +"are passed the same way as in the vectorcall protocol: there is an " +"additional fourth :c:type:`PyObject\\*` parameter which is a tuple " +"representing the names of the keyword arguments or possibly *NULL* if there " +"are no keywords. The values of the keyword arguments are stored in the " +"*args* array, after the positional arguments." +msgstr "" + +#: ../Doc/c-api/structures.rst:217 +msgid "" +"Methods without parameters don't need to check whether arguments are given " +"if they are listed with the :const:`METH_NOARGS` flag. They need to be of " +"type :c:type:`PyCFunction`. The first parameter is typically named *self* " +"and will hold a reference to the module or object instance. In all cases " +"the second parameter will be *NULL*." +msgstr "" + +#: ../Doc/c-api/structures.rst:226 +msgid "" +"Methods with a single object argument can be listed with the :const:`METH_O` " +"flag, instead of invoking :c:func:`PyArg_ParseTuple` with a ``\"O\"`` " +"argument. They have the type :c:type:`PyCFunction`, with the *self* " +"parameter, and a :c:type:`PyObject\\*` parameter representing the single " +"argument." +msgstr "" + +#: ../Doc/c-api/structures.rst:232 +msgid "" +"These two constants are not used to indicate the calling convention but the " +"binding when use with methods of classes. These may not be used for " +"functions defined for modules. At most one of these flags may be set for " +"any given method." +msgstr "" + +#: ../Doc/c-api/structures.rst:242 +msgid "" +"The method will be passed the type object as the first parameter rather than " +"an instance of the type. This is used to create *class methods*, similar to " +"what is created when using the :func:`classmethod` built-in function." +msgstr "" + +#: ../Doc/c-api/structures.rst:252 +msgid "" +"The method will be passed *NULL* as the first parameter rather than an " +"instance of the type. This is used to create *static methods*, similar to " +"what is created when using the :func:`staticmethod` built-in function." +msgstr "" + +#: ../Doc/c-api/structures.rst:256 +msgid "" +"One other constant controls whether a method is loaded in place of another " +"definition with the same method name." +msgstr "" + +#: ../Doc/c-api/structures.rst:262 +msgid "" +"The method will be loaded in place of existing definitions. Without " +"*METH_COEXIST*, the default is to skip repeated definitions. Since slot " +"wrappers are loaded before the method table, the existence of a " +"*sq_contains* slot, for example, would generate a wrapped method named :meth:" +"`__contains__` and preclude the loading of a corresponding PyCFunction with " +"the same name. With the flag defined, the PyCFunction will be loaded in " +"place of the wrapper object and will co-exist with the slot. This is " +"helpful because calls to PyCFunctions are optimized more than wrapper object " +"calls." +msgstr "" + +#: ../Doc/c-api/structures.rst:275 +msgid "" +"Structure which describes an attribute of a type which corresponds to a C " +"struct member. Its fields are:" +msgstr "" + +#: ../Doc/c-api/structures.rst:281 +msgid ":attr:`name`" +msgstr "" + +#: ../Doc/c-api/structures.rst:281 +msgid "name of the member" +msgstr "" + +#: ../Doc/c-api/structures.rst:283 +msgid ":attr:`!type`" +msgstr "" + +#: ../Doc/c-api/structures.rst:283 +msgid "the type of the member in the C struct" +msgstr "" + +#: ../Doc/c-api/structures.rst:286 +msgid ":attr:`offset`" +msgstr "" + +#: ../Doc/c-api/structures.rst:286 ../Doc/c-api/structures.rst:322 +msgid "Py_ssize_t" +msgstr "" + +#: ../Doc/c-api/structures.rst:286 +msgid "" +"the offset in bytes that the member is located on the type's object struct" +msgstr "" + +#: ../Doc/c-api/structures.rst:290 +msgid ":attr:`flags`" +msgstr "" + +#: ../Doc/c-api/structures.rst:290 +msgid "flag bits indicating if the field should be read-only or writable" +msgstr "" + +#: ../Doc/c-api/structures.rst:294 +msgid ":attr:`doc`" +msgstr "" + +#: ../Doc/c-api/structures.rst:298 +msgid "" +":attr:`!type` can be one of many ``T_`` macros corresponding to various C " +"types. When the member is accessed in Python, it will be converted to the " +"equivalent Python type." +msgstr "" + +#: ../Doc/c-api/structures.rst:303 +msgid "Macro name" +msgstr "" + +#: ../Doc/c-api/structures.rst:303 +msgid "C type" +msgstr "Type C" + +#: ../Doc/c-api/structures.rst:305 +msgid "T_SHORT" +msgstr "" + +#: ../Doc/c-api/structures.rst:305 +msgid "short" +msgstr "" + +#: ../Doc/c-api/structures.rst:306 +msgid "T_INT" +msgstr "" + +#: ../Doc/c-api/structures.rst:307 +msgid "T_LONG" +msgstr "" + +#: ../Doc/c-api/structures.rst:307 +msgid "long" +msgstr "" + +#: ../Doc/c-api/structures.rst:308 +msgid "T_FLOAT" +msgstr "" + +#: ../Doc/c-api/structures.rst:308 +msgid "float" +msgstr "*float*" + +#: ../Doc/c-api/structures.rst:309 +msgid "T_DOUBLE" +msgstr "" + +#: ../Doc/c-api/structures.rst:309 +msgid "double" +msgstr "double" + +#: ../Doc/c-api/structures.rst:310 +msgid "T_STRING" +msgstr "" + +#: ../Doc/c-api/structures.rst:311 +msgid "T_OBJECT" +msgstr "" + +#: ../Doc/c-api/structures.rst:311 ../Doc/c-api/structures.rst:312 +msgid "PyObject \\*" +msgstr "PyObject \\*" + +#: ../Doc/c-api/structures.rst:312 +msgid "T_OBJECT_EX" +msgstr "" + +#: ../Doc/c-api/structures.rst:313 +msgid "T_CHAR" +msgstr "" + +#: ../Doc/c-api/structures.rst:313 ../Doc/c-api/structures.rst:314 +#: ../Doc/c-api/structures.rst:319 +msgid "char" +msgstr "char" + +#: ../Doc/c-api/structures.rst:314 +msgid "T_BYTE" +msgstr "" + +#: ../Doc/c-api/structures.rst:315 +msgid "T_UBYTE" +msgstr "" + +#: ../Doc/c-api/structures.rst:315 +msgid "unsigned char" +msgstr "``unsigned char``" + +#: ../Doc/c-api/structures.rst:316 +msgid "T_UINT" +msgstr "" + +#: ../Doc/c-api/structures.rst:316 +msgid "unsigned int" +msgstr "``unsigned int``" + +#: ../Doc/c-api/structures.rst:317 +msgid "T_USHORT" +msgstr "" + +#: ../Doc/c-api/structures.rst:317 +msgid "unsigned short" +msgstr "``unsigned short``" + +#: ../Doc/c-api/structures.rst:318 +msgid "T_ULONG" +msgstr "" + +#: ../Doc/c-api/structures.rst:318 +msgid "unsigned long" +msgstr "``unsigned long``" + +#: ../Doc/c-api/structures.rst:319 +msgid "T_BOOL" +msgstr "" + +#: ../Doc/c-api/structures.rst:320 +msgid "T_LONGLONG" +msgstr "" + +#: ../Doc/c-api/structures.rst:320 +msgid "long long" +msgstr "" + +#: ../Doc/c-api/structures.rst:321 +msgid "T_ULONGLONG" +msgstr "" + +#: ../Doc/c-api/structures.rst:321 +msgid "unsigned long long" +msgstr "``unsigned long long``" + +#: ../Doc/c-api/structures.rst:322 +msgid "T_PYSSIZET" +msgstr "" + +#: ../Doc/c-api/structures.rst:325 +msgid "" +":c:macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` differ in that :c:macro:" +"`T_OBJECT` returns ``None`` if the member is *NULL* and :c:macro:" +"`T_OBJECT_EX` raises an :exc:`AttributeError`. Try to use :c:macro:" +"`T_OBJECT_EX` over :c:macro:`T_OBJECT` because :c:macro:`T_OBJECT_EX` " +"handles use of the :keyword:`del` statement on that attribute more correctly " +"than :c:macro:`T_OBJECT`." +msgstr "" + +#: ../Doc/c-api/structures.rst:332 +msgid "" +":attr:`flags` can be ``0`` for write and read access or :c:macro:`READONLY` " +"for read-only access. Using :c:macro:`T_STRING` for :attr:`type` implies :c:" +"macro:`READONLY`. :c:macro:`T_STRING` data is interpreted as UTF-8. Only :c:" +"macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` members can be deleted. (They " +"are set to *NULL*)." +msgstr "" + +#: ../Doc/c-api/structures.rst:341 +msgid "" +"Structure to define property-like access for a type. See also description of " +"the :c:member:`PyTypeObject.tp_getset` slot." +msgstr "" + +#: ../Doc/c-api/structures.rst:347 +msgid "name" +msgstr "" + +#: ../Doc/c-api/structures.rst:347 +msgid "attribute name" +msgstr "" + +#: ../Doc/c-api/structures.rst:349 +msgid "get" +msgstr "" + +#: ../Doc/c-api/structures.rst:349 +msgid "getter" +msgstr "" + +#: ../Doc/c-api/structures.rst:349 +msgid "C Function to get the attribute" +msgstr "" + +#: ../Doc/c-api/structures.rst:351 +msgid "set" +msgstr "" + +#: ../Doc/c-api/structures.rst:351 +msgid "setter" +msgstr "" + +#: ../Doc/c-api/structures.rst:351 +msgid "" +"optional C function to set or delete the attribute, if omitted the attribute " +"is readonly" +msgstr "" + +#: ../Doc/c-api/structures.rst:355 +msgid "doc" +msgstr "" + +#: ../Doc/c-api/structures.rst:355 +msgid "optional docstring" +msgstr "" + +#: ../Doc/c-api/structures.rst:357 +msgid "closure" +msgstr "" + +#: ../Doc/c-api/structures.rst:357 +msgid "void \\*" +msgstr "" + +#: ../Doc/c-api/structures.rst:357 +msgid "" +"optional function pointer, providing additional data for getter and setter" +msgstr "" + +#: ../Doc/c-api/structures.rst:362 +msgid "" +"The ``get`` function takes one :c:type:`PyObject\\*` parameter (the " +"instance) and a function pointer (the associated ``closure``)::" +msgstr "" + +#: ../Doc/c-api/structures.rst:367 +msgid "" +"It should return a new reference on success or *NULL* with a set exception " +"on failure." +msgstr "" + +#: ../Doc/c-api/structures.rst:370 +msgid "" +"``set`` functions take two :c:type:`PyObject\\*` parameters (the instance " +"and the value to be set) and a function pointer (the associated " +"``closure``)::" +msgstr "" + +#: ../Doc/c-api/structures.rst:375 +msgid "" +"In case the attribute should be deleted the second parameter is *NULL*. " +"Should return ``0`` on success or ``-1`` with a set exception on failure." +msgstr "" diff --git a/c-api/sys.po b/c-api/sys.po new file mode 100644 index 000000000..66de68f5b --- /dev/null +++ b/c-api/sys.po @@ -0,0 +1,365 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/sys.rst:6 +msgid "Operating System Utilities" +msgstr "" + +#: ../Doc/c-api/sys.rst:10 +msgid "" +"Return the file system representation for *path*. If the object is a :class:" +"`str` or :class:`bytes` object, then its reference count is incremented. If " +"the object implements the :class:`os.PathLike` interface, then :meth:`~os." +"PathLike.__fspath__` is returned as long as it is a :class:`str` or :class:" +"`bytes` object. Otherwise :exc:`TypeError` is raised and ``NULL`` is " +"returned." +msgstr "" + +#: ../Doc/c-api/sys.rst:22 +msgid "" +"Return true (nonzero) if the standard I/O file *fp* with name *filename* is " +"deemed interactive. This is the case for files for which " +"``isatty(fileno(fp))`` is true. If the global flag :c:data:" +"`Py_InteractiveFlag` is true, this function also returns true if the " +"*filename* pointer is *NULL* or if the name is equal to one of the strings " +"``''`` or ``'???'``." +msgstr "" + +#: ../Doc/c-api/sys.rst:31 +msgid "" +"Function to prepare some internal state before a process fork. This should " +"be called before calling :c:func:`fork` or any similar function that clones " +"the current process. Only available on systems where :c:func:`fork` is " +"defined." +msgstr "" + +#: ../Doc/c-api/sys.rst:41 +msgid "" +"Function to update some internal state after a process fork. This should be " +"called from the parent process after calling :c:func:`fork` or any similar " +"function that clones the current process, regardless of whether process " +"cloning was successful. Only available on systems where :c:func:`fork` is " +"defined." +msgstr "" + +#: ../Doc/c-api/sys.rst:52 +msgid "" +"Function to update internal interpreter state after a process fork. This " +"must be called from the child process after calling :c:func:`fork`, or any " +"similar function that clones the current process, if there is any chance the " +"process will call back into the Python interpreter. Only available on " +"systems where :c:func:`fork` is defined." +msgstr "" + +#: ../Doc/c-api/sys.rst:61 +msgid "" +":func:`os.register_at_fork` allows registering custom Python functions to be " +"called by :c:func:`PyOS_BeforeFork()`, :c:func:`PyOS_AfterFork_Parent` and :" +"c:func:`PyOS_AfterFork_Child`." +msgstr "" + +#: ../Doc/c-api/sys.rst:68 +msgid "" +"Function to update some internal state after a process fork; this should be " +"called in the new process if the Python interpreter will continue to be " +"used. If a new executable is loaded into the new process, this function does " +"not need to be called." +msgstr "" + +#: ../Doc/c-api/sys.rst:73 +msgid "This function is superseded by :c:func:`PyOS_AfterFork_Child()`." +msgstr "" + +#: ../Doc/c-api/sys.rst:79 +msgid "" +"Return true when the interpreter runs out of stack space. This is a " +"reliable check, but is only available when :const:`USE_STACKCHECK` is " +"defined (currently on Windows using the Microsoft Visual C++ compiler). :" +"const:`USE_STACKCHECK` will be defined automatically; you should never " +"change the definition in your own code." +msgstr "" + +#: ../Doc/c-api/sys.rst:88 +msgid "" +"Return the current signal handler for signal *i*. This is a thin wrapper " +"around either :c:func:`sigaction` or :c:func:`signal`. Do not call those " +"functions directly! :c:type:`PyOS_sighandler_t` is a typedef alias for :c:" +"type:`void (\\*)(int)`." +msgstr "" + +#: ../Doc/c-api/sys.rst:96 +msgid "" +"Set the signal handler for signal *i* to be *h*; return the old signal " +"handler. This is a thin wrapper around either :c:func:`sigaction` or :c:func:" +"`signal`. Do not call those functions directly! :c:type:" +"`PyOS_sighandler_t` is a typedef alias for :c:type:`void (\\*)(int)`." +msgstr "" + +#: ../Doc/c-api/sys.rst:103 +msgid "" +"Decode a byte string from the locale encoding with the :ref:`surrogateescape " +"error handler `: undecodable bytes are decoded as " +"characters in range U+DC80..U+DCFF. If a byte sequence can be decoded as a " +"surrogate character, escape the bytes using the surrogateescape error " +"handler instead of decoding them." +msgstr "" + +#: ../Doc/c-api/sys.rst:109 ../Doc/c-api/sys.rst:150 +msgid "Encoding, highest priority to lowest priority:" +msgstr "" + +#: ../Doc/c-api/sys.rst:111 ../Doc/c-api/sys.rst:152 +msgid "``UTF-8`` on macOS and Android;" +msgstr "" + +#: ../Doc/c-api/sys.rst:112 ../Doc/c-api/sys.rst:153 +msgid "``UTF-8`` if the Python UTF-8 mode is enabled;" +msgstr "" + +#: ../Doc/c-api/sys.rst:113 ../Doc/c-api/sys.rst:154 +msgid "" +"``ASCII`` if the ``LC_CTYPE`` locale is ``\"C\"``, ``nl_langinfo(CODESET)`` " +"returns the ``ASCII`` encoding (or an alias), and :c:func:`mbstowcs` and :c:" +"func:`wcstombs` functions uses the ``ISO-8859-1`` encoding." +msgstr "" + +#: ../Doc/c-api/sys.rst:117 ../Doc/c-api/sys.rst:158 +msgid "the current locale encoding." +msgstr "" + +#: ../Doc/c-api/sys.rst:119 +msgid "" +"Return a pointer to a newly allocated wide character string, use :c:func:" +"`PyMem_RawFree` to free the memory. If size is not ``NULL``, write the " +"number of wide characters excluding the null character into ``*size``" +msgstr "" + +#: ../Doc/c-api/sys.rst:123 +msgid "" +"Return ``NULL`` on decoding error or memory allocation error. If *size* is " +"not ``NULL``, ``*size`` is set to ``(size_t)-1`` on memory error or set to " +"``(size_t)-2`` on decoding error." +msgstr "" + +#: ../Doc/c-api/sys.rst:127 +msgid "" +"Decoding errors should never happen, unless there is a bug in the C library." +msgstr "" + +#: ../Doc/c-api/sys.rst:130 +msgid "" +"Use the :c:func:`Py_EncodeLocale` function to encode the character string " +"back to a byte string." +msgstr "" + +#: ../Doc/c-api/sys.rst:135 +msgid "" +"The :c:func:`PyUnicode_DecodeFSDefaultAndSize` and :c:func:" +"`PyUnicode_DecodeLocaleAndSize` functions." +msgstr "" + +#: ../Doc/c-api/sys.rst:140 ../Doc/c-api/sys.rst:172 +msgid "The function now uses the UTF-8 encoding in the UTF-8 mode." +msgstr "" + +#: ../Doc/c-api/sys.rst:146 +msgid "" +"Encode a wide character string to the locale encoding with the :ref:" +"`surrogateescape error handler `: surrogate characters in " +"the range U+DC80..U+DCFF are converted to bytes 0x80..0xFF." +msgstr "" + +#: ../Doc/c-api/sys.rst:160 +msgid "The function uses the UTF-8 encoding in the Python UTF-8 mode." +msgstr "" + +#: ../Doc/c-api/sys.rst:162 +msgid "" +"Return a pointer to a newly allocated byte string, use :c:func:`PyMem_Free` " +"to free the memory. Return ``NULL`` on encoding error or memory allocation " +"error" +msgstr "" + +#: ../Doc/c-api/sys.rst:166 +msgid "" +"If error_pos is not ``NULL``, ``*error_pos`` is set to ``(size_t)-1`` on " +"success, or set to the index of the invalid character on encoding error." +msgstr "" + +#: ../Doc/c-api/sys.rst:169 +msgid "" +"Use the :c:func:`Py_DecodeLocale` function to decode the bytes string back " +"to a wide character string." +msgstr "" + +#: ../Doc/c-api/sys.rst:177 +msgid "" +"The :c:func:`PyUnicode_EncodeFSDefault` and :c:func:`PyUnicode_EncodeLocale` " +"functions." +msgstr "" + +#: ../Doc/c-api/sys.rst:182 +msgid "The function now supports the UTF-8 mode." +msgstr "" + +#: ../Doc/c-api/sys.rst:189 +msgid "System Functions" +msgstr "" + +#: ../Doc/c-api/sys.rst:191 +msgid "" +"These are utility functions that make functionality from the :mod:`sys` " +"module accessible to C code. They all work with the current interpreter " +"thread's :mod:`sys` module's dict, which is contained in the internal thread " +"state structure." +msgstr "" + +#: ../Doc/c-api/sys.rst:197 +msgid "" +"Return the object *name* from the :mod:`sys` module or *NULL* if it does not " +"exist, without setting an exception." +msgstr "" + +#: ../Doc/c-api/sys.rst:202 +msgid "" +"Set *name* in the :mod:`sys` module to *v* unless *v* is *NULL*, in which " +"case *name* is deleted from the sys module. Returns ``0`` on success, ``-1`` " +"on error." +msgstr "" + +#: ../Doc/c-api/sys.rst:208 +msgid "" +"Reset :data:`sys.warnoptions` to an empty list. This function may be called " +"prior to :c:func:`Py_Initialize`." +msgstr "" + +#: ../Doc/c-api/sys.rst:213 +msgid "" +"Append *s* to :data:`sys.warnoptions`. This function must be called prior " +"to :c:func:`Py_Initialize` in order to affect the warnings filter list." +msgstr "" + +#: ../Doc/c-api/sys.rst:218 +msgid "Append *unicode* to :data:`sys.warnoptions`." +msgstr "" + +#: ../Doc/c-api/sys.rst:220 +msgid "" +"Note: this function is not currently usable from outside the CPython " +"implementation, as it must be called prior to the implicit import of :mod:" +"`warnings` in :c:func:`Py_Initialize` to be effective, but can't be called " +"until enough of the runtime has been initialized to permit the creation of " +"Unicode objects." +msgstr "" + +#: ../Doc/c-api/sys.rst:228 +msgid "" +"Set :data:`sys.path` to a list object of paths found in *path* which should " +"be a list of paths separated with the platform's search path delimiter (``:" +"`` on Unix, ``;`` on Windows)." +msgstr "" + +#: ../Doc/c-api/sys.rst:234 +msgid "" +"Write the output string described by *format* to :data:`sys.stdout`. No " +"exceptions are raised, even if truncation occurs (see below)." +msgstr "" + +#: ../Doc/c-api/sys.rst:237 +msgid "" +"*format* should limit the total size of the formatted output string to 1000 " +"bytes or less -- after 1000 bytes, the output string is truncated. In " +"particular, this means that no unrestricted \"%s\" formats should occur; " +"these should be limited using \"%.s\" where is a decimal number " +"calculated so that plus the maximum size of other formatted text does " +"not exceed 1000 bytes. Also watch out for \"%f\", which can print hundreds " +"of digits for very large numbers." +msgstr "" + +#: ../Doc/c-api/sys.rst:245 +msgid "" +"If a problem occurs, or :data:`sys.stdout` is unset, the formatted message " +"is written to the real (C level) *stdout*." +msgstr "" + +#: ../Doc/c-api/sys.rst:250 +msgid "" +"As :c:func:`PySys_WriteStdout`, but write to :data:`sys.stderr` or *stderr* " +"instead." +msgstr "" + +#: ../Doc/c-api/sys.rst:255 +msgid "" +"Function similar to PySys_WriteStdout() but format the message using :c:func:" +"`PyUnicode_FromFormatV` and don't truncate the message to an arbitrary " +"length." +msgstr "" + +#: ../Doc/c-api/sys.rst:263 +msgid "" +"As :c:func:`PySys_FormatStdout`, but write to :data:`sys.stderr` or *stderr* " +"instead." +msgstr "" + +#: ../Doc/c-api/sys.rst:270 +msgid "" +"Parse *s* as a set of :option:`-X` options and add them to the current " +"options mapping as returned by :c:func:`PySys_GetXOptions`. This function " +"may be called prior to :c:func:`Py_Initialize`." +msgstr "" + +#: ../Doc/c-api/sys.rst:278 +msgid "" +"Return the current dictionary of :option:`-X` options, similarly to :data:" +"`sys._xoptions`. On error, *NULL* is returned and an exception is set." +msgstr "" + +#: ../Doc/c-api/sys.rst:288 +msgid "Process Control" +msgstr "" + +#: ../Doc/c-api/sys.rst:295 +msgid "" +"Print a fatal error message and kill the process. No cleanup is performed. " +"This function should only be invoked when a condition is detected that would " +"make it dangerous to continue using the Python interpreter; e.g., when the " +"object administration appears to be corrupted. On Unix, the standard C " +"library function :c:func:`abort` is called which will attempt to produce a :" +"file:`core` file." +msgstr "" + +#: ../Doc/c-api/sys.rst:309 +msgid "" +"Exit the current process. This calls :c:func:`Py_FinalizeEx` and then calls " +"the standard C library function ``exit(status)``. If :c:func:" +"`Py_FinalizeEx` indicates an error, the exit status is set to 120." +msgstr "" + +#: ../Doc/c-api/sys.rst:313 +msgid "Errors from finalization no longer ignored." +msgstr "" + +#: ../Doc/c-api/sys.rst:323 +msgid "" +"Register a cleanup function to be called by :c:func:`Py_FinalizeEx`. The " +"cleanup function will be called with no arguments and should return no " +"value. At most 32 cleanup functions can be registered. When the " +"registration is successful, :c:func:`Py_AtExit` returns ``0``; on failure, " +"it returns ``-1``. The cleanup function registered last is called first. " +"Each cleanup function will be called at most once. Since Python's internal " +"finalization will have completed before the cleanup function, no Python APIs " +"should be called by *func*." +msgstr "" diff --git a/c-api/tuple.po b/c-api/tuple.po new file mode 100644 index 000000000..ea67c7601 --- /dev/null +++ b/c-api/tuple.po @@ -0,0 +1,255 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/tuple.rst:6 +msgid "Tuple Objects" +msgstr "" + +#: ../Doc/c-api/tuple.rst:13 +msgid "This subtype of :c:type:`PyObject` represents a Python tuple object." +msgstr "" + +#: ../Doc/c-api/tuple.rst:18 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python tuple type; it " +"is the same object as :class:`tuple` in the Python layer." +msgstr "" + +#: ../Doc/c-api/tuple.rst:24 +msgid "" +"Return true if *p* is a tuple object or an instance of a subtype of the " +"tuple type." +msgstr "" + +#: ../Doc/c-api/tuple.rst:30 +msgid "" +"Return true if *p* is a tuple object, but not an instance of a subtype of " +"the tuple type." +msgstr "" + +#: ../Doc/c-api/tuple.rst:36 +msgid "Return a new tuple object of size *len*, or *NULL* on failure." +msgstr "" + +#: ../Doc/c-api/tuple.rst:41 +msgid "" +"Return a new tuple object of size *n*, or *NULL* on failure. The tuple " +"values are initialized to the subsequent *n* C arguments pointing to Python " +"objects. ``PyTuple_Pack(2, a, b)`` is equivalent to " +"``Py_BuildValue(\"(OO)\", a, b)``." +msgstr "" + +#: ../Doc/c-api/tuple.rst:48 +msgid "Take a pointer to a tuple object, and return the size of that tuple." +msgstr "" + +#: ../Doc/c-api/tuple.rst:53 +msgid "" +"Return the size of the tuple *p*, which must be non-*NULL* and point to a " +"tuple; no error checking is performed." +msgstr "" + +#: ../Doc/c-api/tuple.rst:59 +msgid "" +"Return the object at position *pos* in the tuple pointed to by *p*. If " +"*pos* is out of bounds, return *NULL* and sets an :exc:`IndexError` " +"exception." +msgstr "" + +#: ../Doc/c-api/tuple.rst:65 +msgid "Like :c:func:`PyTuple_GetItem`, but does no checking of its arguments." +msgstr "" + +#: ../Doc/c-api/tuple.rst:70 +msgid "" +"Take a slice of the tuple pointed to by *p* from *low* to *high* and return " +"it as a new tuple." +msgstr "" + +#: ../Doc/c-api/tuple.rst:76 +msgid "" +"Insert a reference to object *o* at position *pos* of the tuple pointed to " +"by *p*. Return ``0`` on success." +msgstr "" + +#: ../Doc/c-api/tuple.rst:81 ../Doc/c-api/tuple.rst:91 +#: ../Doc/c-api/tuple.rst:209 ../Doc/c-api/tuple.rst:218 +msgid "This function \"steals\" a reference to *o*." +msgstr "" + +#: ../Doc/c-api/tuple.rst:86 +msgid "" +"Like :c:func:`PyTuple_SetItem`, but does no error checking, and should " +"*only* be used to fill in brand new tuples." +msgstr "" + +#: ../Doc/c-api/tuple.rst:96 +msgid "" +"Can be used to resize a tuple. *newsize* will be the new length of the " +"tuple. Because tuples are *supposed* to be immutable, this should only be " +"used if there is only one reference to the object. Do *not* use this if the " +"tuple may already be known to some other part of the code. The tuple will " +"always grow or shrink at the end. Think of this as destroying the old tuple " +"and creating a new one, only more efficiently. Returns ``0`` on success. " +"Client code should never assume that the resulting value of ``*p`` will be " +"the same as before calling this function. If the object referenced by ``*p`` " +"is replaced, the original ``*p`` is destroyed. On failure, returns ``-1`` " +"and sets ``*p`` to *NULL*, and raises :exc:`MemoryError` or :exc:" +"`SystemError`." +msgstr "" + +#: ../Doc/c-api/tuple.rst:110 +msgid "Clear the free list. Return the total number of freed items." +msgstr "" + +#: ../Doc/c-api/tuple.rst:114 +msgid "Struct Sequence Objects" +msgstr "" + +#: ../Doc/c-api/tuple.rst:116 +msgid "" +"Struct sequence objects are the C equivalent of :func:`~collections." +"namedtuple` objects, i.e. a sequence whose items can also be accessed " +"through attributes. To create a struct sequence, you first have to create a " +"specific struct sequence type." +msgstr "" + +#: ../Doc/c-api/tuple.rst:123 +msgid "" +"Create a new struct sequence type from the data in *desc*, described below. " +"Instances of the resulting type can be created with :c:func:" +"`PyStructSequence_New`." +msgstr "" + +#: ../Doc/c-api/tuple.rst:129 +msgid "Initializes a struct sequence type *type* from *desc* in place." +msgstr "" + +#: ../Doc/c-api/tuple.rst:134 +msgid "" +"The same as ``PyStructSequence_InitType``, but returns ``0`` on success and " +"``-1`` on failure." +msgstr "" + +#: ../Doc/c-api/tuple.rst:142 +msgid "Contains the meta information of a struct sequence type to create." +msgstr "" + +#: ../Doc/c-api/tuple.rst:145 ../Doc/c-api/tuple.rst:168 +msgid "Field" +msgstr "Champ" + +#: ../Doc/c-api/tuple.rst:145 ../Doc/c-api/tuple.rst:168 +msgid "C Type" +msgstr "Type C" + +#: ../Doc/c-api/tuple.rst:145 ../Doc/c-api/tuple.rst:168 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/c-api/tuple.rst:147 ../Doc/c-api/tuple.rst:170 +msgid "``name``" +msgstr "``name``" + +#: ../Doc/c-api/tuple.rst:147 ../Doc/c-api/tuple.rst:149 +#: ../Doc/c-api/tuple.rst:170 ../Doc/c-api/tuple.rst:175 +msgid "``const char *``" +msgstr "" + +#: ../Doc/c-api/tuple.rst:147 +msgid "name of the struct sequence type" +msgstr "" + +#: ../Doc/c-api/tuple.rst:149 ../Doc/c-api/tuple.rst:175 +msgid "``doc``" +msgstr "" + +#: ../Doc/c-api/tuple.rst:149 +msgid "pointer to docstring for the type or NULL to omit" +msgstr "" + +#: ../Doc/c-api/tuple.rst:152 +msgid "``fields``" +msgstr "" + +#: ../Doc/c-api/tuple.rst:152 +msgid "``PyStructSequence_Field *``" +msgstr "``PyStructSequence_Field *``" + +#: ../Doc/c-api/tuple.rst:152 +msgid "pointer to *NULL*-terminated array with field names of the new type" +msgstr "" + +#: ../Doc/c-api/tuple.rst:155 +msgid "``n_in_sequence``" +msgstr "``n_in_sequence``" + +#: ../Doc/c-api/tuple.rst:155 +msgid "``int``" +msgstr "``int``" + +#: ../Doc/c-api/tuple.rst:155 +msgid "number of fields visible to the Python side (if used as tuple)" +msgstr "" + +#: ../Doc/c-api/tuple.rst:162 +msgid "" +"Describes a field of a struct sequence. As a struct sequence is modeled as a " +"tuple, all fields are typed as :c:type:`PyObject\\*`. The index in the :" +"attr:`fields` array of the :c:type:`PyStructSequence_Desc` determines which " +"field of the struct sequence is described." +msgstr "" + +#: ../Doc/c-api/tuple.rst:170 +msgid "" +"name for the field or *NULL* to end the list of named fields, set to " +"PyStructSequence_UnnamedField to leave unnamed" +msgstr "" + +#: ../Doc/c-api/tuple.rst:175 +msgid "field docstring or *NULL* to omit" +msgstr "" + +#: ../Doc/c-api/tuple.rst:181 +msgid "Special value for a field name to leave it unnamed." +msgstr "" + +#: ../Doc/c-api/tuple.rst:186 +msgid "" +"Creates an instance of *type*, which must have been created with :c:func:" +"`PyStructSequence_NewType`." +msgstr "" + +#: ../Doc/c-api/tuple.rst:192 +msgid "" +"Return the object at position *pos* in the struct sequence pointed to by " +"*p*. No bounds checking is performed." +msgstr "" + +#: ../Doc/c-api/tuple.rst:198 +msgid "Macro equivalent of :c:func:`PyStructSequence_GetItem`." +msgstr "" + +#: ../Doc/c-api/tuple.rst:203 +msgid "" +"Sets the field at index *pos* of the struct sequence *p* to value *o*. " +"Like :c:func:`PyTuple_SET_ITEM`, this should only be used to fill in brand " +"new instances." +msgstr "" + +#: ../Doc/c-api/tuple.rst:214 +msgid "Macro equivalent of :c:func:`PyStructSequence_SetItem`." +msgstr "" diff --git a/c-api/type.po b/c-api/type.po new file mode 100644 index 000000000..8be0c2f28 --- /dev/null +++ b/c-api/type.po @@ -0,0 +1,131 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: 2018-02-15 00:33+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/type.rst:6 +msgid "Type Objects" +msgstr "Objets type" + +#: ../Doc/c-api/type.rst:13 +msgid "The C structure of the objects used to describe built-in types." +msgstr "" + +#: ../Doc/c-api/type.rst:18 +msgid "" +"This is the type object for type objects; it is the same object as :class:" +"`type` in the Python layer." +msgstr "" + +#: ../Doc/c-api/type.rst:24 +msgid "" +"Return true if the object *o* is a type object, including instances of types " +"derived from the standard type object. Return false in all other cases." +msgstr "" + +#: ../Doc/c-api/type.rst:30 +msgid "" +"Return true if the object *o* is a type object, but not a subtype of the " +"standard type object. Return false in all other cases." +msgstr "" + +#: ../Doc/c-api/type.rst:36 +msgid "Clear the internal lookup cache. Return the current version tag." +msgstr "" + +#: ../Doc/c-api/type.rst:40 +msgid "" +"Return the :c:member:`~PyTypeObject.tp_flags` member of *type*. This " +"function is primarily meant for use with `Py_LIMITED_API`; the individual " +"flag bits are guaranteed to be stable across Python releases, but access to :" +"c:member:`~PyTypeObject.tp_flags` itself is not part of the limited API." +msgstr "" + +#: ../Doc/c-api/type.rst:47 +msgid "The return type is now ``unsigned long`` rather than ``long``." +msgstr "" + +#: ../Doc/c-api/type.rst:53 +msgid "" +"Invalidate the internal lookup cache for the type and all of its subtypes. " +"This function must be called after any manual modification of the attributes " +"or base classes of the type." +msgstr "" + +#: ../Doc/c-api/type.rst:60 +msgid "" +"Return true if the type object *o* sets the feature *feature*. Type " +"features are denoted by single bit flags." +msgstr "" + +#: ../Doc/c-api/type.rst:66 +msgid "" +"Return true if the type object includes support for the cycle detector; this " +"tests the type flag :const:`Py_TPFLAGS_HAVE_GC`." +msgstr "" + +#: ../Doc/c-api/type.rst:72 +msgid "Return true if *a* is a subtype of *b*." +msgstr "" + +#: ../Doc/c-api/type.rst:74 +msgid "" +"This function only checks for actual subtypes, which means that :meth:" +"`~class.__subclasscheck__` is not called on *b*. Call :c:func:" +"`PyObject_IsSubclass` to do the same check that :func:`issubclass` would do." +msgstr "" + +#: ../Doc/c-api/type.rst:82 +msgid "" +"Generic handler for the :c:member:`~PyTypeObject.tp_alloc` slot of a type " +"object. Use Python's default memory allocation mechanism to allocate a new " +"instance and initialize all its contents to *NULL*." +msgstr "" + +#: ../Doc/c-api/type.rst:88 +msgid "" +"Generic handler for the :c:member:`~PyTypeObject.tp_new` slot of a type " +"object. Create a new instance using the type's :c:member:`~PyTypeObject." +"tp_alloc` slot." +msgstr "" + +#: ../Doc/c-api/type.rst:93 +msgid "" +"Finalize a type object. This should be called on all type objects to finish " +"their initialization. This function is responsible for adding inherited " +"slots from a type's base class. Return ``0`` on success, or return ``-1`` " +"and sets an exception on error." +msgstr "" + +#: ../Doc/c-api/type.rst:100 +msgid "" +"Creates and returns a heap type object from the *spec* passed to the " +"function." +msgstr "" + +#: ../Doc/c-api/type.rst:104 +msgid "" +"Creates and returns a heap type object from the *spec*. In addition to that, " +"the created heap type contains all types contained by the *bases* tuple as " +"base types. This allows the caller to reference other heap types as base " +"types." +msgstr "" + +#: ../Doc/c-api/type.rst:112 +msgid "" +"Return the function pointer stored in the given slot. If the result is " +"*NULL*, this indicates that either the slot is *NULL*, or that the function " +"was called with invalid parameters. Callers will typically cast the result " +"pointer into the appropriate function type." +msgstr "" diff --git a/c-api/typeobj.po b/c-api/typeobj.po new file mode 100644 index 000000000..89058cbda --- /dev/null +++ b/c-api/typeobj.po @@ -0,0 +1,1689 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/typeobj.rst:6 +msgid "Type Objects" +msgstr "Objets type" + +#: ../Doc/c-api/typeobj.rst:8 +msgid "" +"Perhaps one of the most important structures of the Python object system is " +"the structure that defines a new type: the :c:type:`PyTypeObject` " +"structure. Type objects can be handled using any of the :c:func:`PyObject_" +"\\*` or :c:func:`PyType_\\*` functions, but do not offer much that's " +"interesting to most Python applications. These objects are fundamental to " +"how objects behave, so they are very important to the interpreter itself and " +"to any extension module that implements new types." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:16 +msgid "" +"Type objects are fairly large compared to most of the standard types. The " +"reason for the size is that each type object stores a large number of " +"values, mostly C function pointers, each of which implements a small part of " +"the type's functionality. The fields of the type object are examined in " +"detail in this section. The fields will be described in the order in which " +"they occur in the structure." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:23 +msgid "" +"Typedefs: unaryfunc, binaryfunc, ternaryfunc, inquiry, intargfunc, " +"intintargfunc, intobjargproc, intintobjargproc, objobjargproc, destructor, " +"freefunc, printfunc, getattrfunc, getattrofunc, setattrfunc, setattrofunc, " +"reprfunc, hashfunc" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:28 +msgid "" +"The structure definition for :c:type:`PyTypeObject` can be found in :file:" +"`Include/object.h`. For convenience of reference, this repeats the " +"definition found there:" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:35 +msgid "" +"The type object structure extends the :c:type:`PyVarObject` structure. The :" +"attr:`ob_size` field is used for dynamic types (created by :func:" +"`type_new`, usually called from a class statement). Note that :c:data:" +"`PyType_Type` (the metatype) initializes :c:member:`~PyTypeObject." +"tp_itemsize`, which means that its instances (i.e. type objects) *must* have " +"the :attr:`ob_size` field." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:45 +msgid "" +"These fields are only present when the macro ``Py_TRACE_REFS`` is defined. " +"Their initialization to *NULL* is taken care of by the " +"``PyObject_HEAD_INIT`` macro. For statically allocated objects, these " +"fields always remain *NULL*. For dynamically allocated objects, these two " +"fields are used to link the object into a doubly-linked list of *all* live " +"objects on the heap. This could be used for various debugging purposes; " +"currently the only use is to print the objects that are still alive at the " +"end of a run when the environment variable :envvar:`PYTHONDUMPREFS` is set." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:54 +msgid "These fields are not inherited by subtypes." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:59 +msgid "" +"This is the type object's reference count, initialized to ``1`` by the " +"``PyObject_HEAD_INIT`` macro. Note that for statically allocated type " +"objects, the type's instances (objects whose :attr:`ob_type` points back to " +"the type) do *not* count as references. But for dynamically allocated type " +"objects, the instances *do* count as references." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:65 ../Doc/c-api/typeobj.rst:94 +#: ../Doc/c-api/typeobj.rst:122 +msgid "This field is not inherited by subtypes." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:70 +msgid "" +"This is the type's type, in other words its metatype. It is initialized by " +"the argument to the ``PyObject_HEAD_INIT`` macro, and its value should " +"normally be ``&PyType_Type``. However, for dynamically loadable extension " +"modules that must be usable on Windows (at least), the compiler complains " +"that this is not a valid initializer. Therefore, the convention is to pass " +"*NULL* to the ``PyObject_HEAD_INIT`` macro and to initialize this field " +"explicitly at the start of the module's initialization function, before " +"doing anything else. This is typically done like this::" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:81 +msgid "" +"This should be done before any instances of the type are created. :c:func:" +"`PyType_Ready` checks if :attr:`ob_type` is *NULL*, and if so, initializes " +"it to the :attr:`ob_type` field of the base class. :c:func:`PyType_Ready` " +"will not change this field if it is non-zero." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:86 ../Doc/c-api/typeobj.rst:188 +#: ../Doc/c-api/typeobj.rst:255 ../Doc/c-api/typeobj.rst:322 +#: ../Doc/c-api/typeobj.rst:340 ../Doc/c-api/typeobj.rst:682 +#: ../Doc/c-api/typeobj.rst:699 ../Doc/c-api/typeobj.rst:779 +#: ../Doc/c-api/typeobj.rst:874 ../Doc/c-api/typeobj.rst:967 +#: ../Doc/c-api/typeobj.rst:1022 +msgid "This field is inherited by subtypes." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:91 +msgid "" +"For statically allocated type objects, this should be initialized to zero. " +"For dynamically allocated type objects, this field has a special internal " +"meaning." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:99 +msgid "" +"Pointer to a NUL-terminated string containing the name of the type. For " +"types that are accessible as module globals, the string should be the full " +"module name, followed by a dot, followed by the type name; for built-in " +"types, it should be just the type name. If the module is a submodule of a " +"package, the full package name is part of the full module name. For " +"example, a type named :class:`T` defined in module :mod:`M` in subpackage :" +"mod:`Q` in package :mod:`P` should have the :c:member:`~PyTypeObject." +"tp_name` initializer ``\"P.Q.M.T\"``." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:107 +msgid "" +"For dynamically allocated type objects, this should just be the type name, " +"and the module name explicitly stored in the type dict as the value for key " +"``'__module__'``." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:111 +msgid "" +"For statically allocated type objects, the tp_name field should contain a " +"dot. Everything before the last dot is made accessible as the :attr:" +"`__module__` attribute, and everything after the last dot is made accessible " +"as the :attr:`~definition.__name__` attribute." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:116 +msgid "" +"If no dot is present, the entire :c:member:`~PyTypeObject.tp_name` field is " +"made accessible as the :attr:`~definition.__name__` attribute, and the :attr:" +"`__module__` attribute is undefined (unless explicitly set in the " +"dictionary, as explained above). This means your type will be impossible to " +"pickle. Additionally, it will not be listed in module documentations " +"created with pydoc." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:128 +msgid "" +"These fields allow calculating the size in bytes of instances of the type." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:130 +msgid "" +"There are two kinds of types: types with fixed-length instances have a zero :" +"c:member:`~PyTypeObject.tp_itemsize` field, types with variable-length " +"instances have a non-zero :c:member:`~PyTypeObject.tp_itemsize` field. For " +"a type with fixed-length instances, all instances have the same size, given " +"in :c:member:`~PyTypeObject.tp_basicsize`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:135 +msgid "" +"For a type with variable-length instances, the instances must have an :attr:" +"`ob_size` field, and the instance size is :c:member:`~PyTypeObject." +"tp_basicsize` plus N times :c:member:`~PyTypeObject.tp_itemsize`, where N is " +"the \"length\" of the object. The value of N is typically stored in the " +"instance's :attr:`ob_size` field. There are exceptions: for example, ints " +"use a negative :attr:`ob_size` to indicate a negative number, and N is " +"``abs(ob_size)`` there. Also, the presence of an :attr:`ob_size` field in " +"the instance layout doesn't mean that the instance structure is variable-" +"length (for example, the structure for the list type has fixed-length " +"instances, yet those instances have a meaningful :attr:`ob_size` field)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:146 +msgid "" +"The basic size includes the fields in the instance declared by the macro :c:" +"macro:`PyObject_HEAD` or :c:macro:`PyObject_VAR_HEAD` (whichever is used to " +"declare the instance struct) and this in turn includes the :attr:`_ob_prev` " +"and :attr:`_ob_next` fields if they are present. This means that the only " +"correct way to get an initializer for the :c:member:`~PyTypeObject." +"tp_basicsize` is to use the ``sizeof`` operator on the struct used to " +"declare the instance layout. The basic size does not include the GC header " +"size." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:154 +msgid "" +"These fields are inherited separately by subtypes. If the base type has a " +"non-zero :c:member:`~PyTypeObject.tp_itemsize`, it is generally not safe to " +"set :c:member:`~PyTypeObject.tp_itemsize` to a different non-zero value in a " +"subtype (though this depends on the implementation of the base type)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:159 +msgid "" +"A note about alignment: if the variable items require a particular " +"alignment, this should be taken care of by the value of :c:member:" +"`~PyTypeObject.tp_basicsize`. Example: suppose a type implements an array " +"of ``double``. :c:member:`~PyTypeObject.tp_itemsize` is ``sizeof(double)``. " +"It is the programmer's responsibility that :c:member:`~PyTypeObject." +"tp_basicsize` is a multiple of ``sizeof(double)`` (assuming this is the " +"alignment requirement for ``double``)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:169 +msgid "" +"A pointer to the instance destructor function. This function must be " +"defined unless the type guarantees that its instances will never be " +"deallocated (as is the case for the singletons ``None`` and ``Ellipsis``)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:173 +msgid "" +"The destructor function is called by the :c:func:`Py_DECREF` and :c:func:" +"`Py_XDECREF` macros when the new reference count is zero. At this point, " +"the instance is still in existence, but there are no references to it. The " +"destructor function should free all references which the instance owns, free " +"all memory buffers owned by the instance (using the freeing function " +"corresponding to the allocation function used to allocate the buffer), and " +"finally (as its last action) call the type's :c:member:`~PyTypeObject." +"tp_free` function. If the type is not subtypable (doesn't have the :const:" +"`Py_TPFLAGS_BASETYPE` flag bit set), it is permissible to call the object " +"deallocator directly instead of via :c:member:`~PyTypeObject.tp_free`. The " +"object deallocator should be the one used to allocate the instance; this is " +"normally :c:func:`PyObject_Del` if the instance was allocated using :c:func:" +"`PyObject_New` or :c:func:`PyObject_VarNew`, or :c:func:`PyObject_GC_Del` if " +"the instance was allocated using :c:func:`PyObject_GC_New` or :c:func:" +"`PyObject_GC_NewVar`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:193 +msgid "Reserved slot, formerly used for print formatting in Python 2.x." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:198 +msgid "An optional pointer to the get-attribute-string function." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:200 +msgid "" +"This field is deprecated. When it is defined, it should point to a function " +"that acts the same as the :c:member:`~PyTypeObject.tp_getattro` function, " +"but taking a C string instead of a Python string object to give the " +"attribute name. The signature is ::" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:206 +msgid "" +"This field is inherited by subtypes together with :c:member:`~PyTypeObject." +"tp_getattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` " +"and :c:member:`~PyTypeObject.tp_getattro` from its base type when the " +"subtype's :c:member:`~PyTypeObject.tp_getattr` and :c:member:`~PyTypeObject." +"tp_getattro` are both *NULL*." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:213 ../Doc/c-api/typeobj.rst:358 +msgid "" +"An optional pointer to the function for setting and deleting attributes." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:215 +msgid "" +"This field is deprecated. When it is defined, it should point to a function " +"that acts the same as the :c:member:`~PyTypeObject.tp_setattro` function, " +"but taking a C string instead of a Python string object to give the " +"attribute name. The signature is ::" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:221 +msgid "" +"The *v* argument is set to *NULL* to delete the attribute. This field is " +"inherited by subtypes together with :c:member:`~PyTypeObject.tp_setattro`: a " +"subtype inherits both :c:member:`~PyTypeObject.tp_setattr` and :c:member:" +"`~PyTypeObject.tp_setattro` from its base type when the subtype's :c:member:" +"`~PyTypeObject.tp_setattr` and :c:member:`~PyTypeObject.tp_setattro` are " +"both *NULL*." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:229 +msgid "" +"Pointer to an additional structure that contains fields relevant only to " +"objects which implement :term:`awaitable` and :term:`asynchronous iterator` " +"protocols at the C-level. See :ref:`async-structs` for details." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:233 +msgid "Formerly known as ``tp_compare`` and ``tp_reserved``." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:241 +msgid "" +"An optional pointer to a function that implements the built-in function :" +"func:`repr`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:244 +msgid "" +"The signature is the same as for :c:func:`PyObject_Repr`; it must return a " +"string or a Unicode object. Ideally, this function should return a string " +"that, when passed to :func:`eval`, given a suitable environment, returns an " +"object with the same value. If this is not feasible, it should return a " +"string starting with ``'<'`` and ending with ``'>'`` from which both the " +"type and the value of the object can be deduced." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:251 +msgid "" +"When this field is not set, a string of the form ``<%s object at %p>`` is " +"returned, where ``%s`` is replaced by the type name, and ``%p`` by the " +"object's memory address." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:259 +msgid "" +"Pointer to an additional structure that contains fields relevant only to " +"objects which implement the number protocol. These fields are documented " +"in :ref:`number-structs`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:263 +msgid "" +"The :c:member:`~PyTypeObject.tp_as_number` field is not inherited, but the " +"contained fields are inherited individually." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:269 +msgid "" +"Pointer to an additional structure that contains fields relevant only to " +"objects which implement the sequence protocol. These fields are documented " +"in :ref:`sequence-structs`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:273 +msgid "" +"The :c:member:`~PyTypeObject.tp_as_sequence` field is not inherited, but the " +"contained fields are inherited individually." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:279 +msgid "" +"Pointer to an additional structure that contains fields relevant only to " +"objects which implement the mapping protocol. These fields are documented " +"in :ref:`mapping-structs`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:283 +msgid "" +"The :c:member:`~PyTypeObject.tp_as_mapping` field is not inherited, but the " +"contained fields are inherited individually." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:291 +msgid "" +"An optional pointer to a function that implements the built-in function :" +"func:`hash`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:294 +msgid "" +"The signature is the same as for :c:func:`PyObject_Hash`; it must return a " +"value of the type Py_hash_t. The value ``-1`` should not be returned as a " +"normal return value; when an error occurs during the computation of the hash " +"value, the function should set an exception and return ``-1``." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:299 +msgid "" +"This field can be set explicitly to :c:func:`PyObject_HashNotImplemented` to " +"block inheritance of the hash method from a parent type. This is interpreted " +"as the equivalent of ``__hash__ = None`` at the Python level, causing " +"``isinstance(o, collections.Hashable)`` to correctly return ``False``. Note " +"that the converse is also true - setting ``__hash__ = None`` on a class at " +"the Python level will result in the ``tp_hash`` slot being set to :c:func:" +"`PyObject_HashNotImplemented`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:307 +msgid "" +"When this field is not set, an attempt to take the hash of the object " +"raises :exc:`TypeError`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:310 +msgid "" +"This field is inherited by subtypes together with :c:member:`~PyTypeObject." +"tp_richcompare`: a subtype inherits both of :c:member:`~PyTypeObject." +"tp_richcompare` and :c:member:`~PyTypeObject.tp_hash`, when the subtype's :c:" +"member:`~PyTypeObject.tp_richcompare` and :c:member:`~PyTypeObject.tp_hash` " +"are both *NULL*." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:318 +msgid "" +"An optional pointer to a function that implements calling the object. This " +"should be *NULL* if the object is not callable. The signature is the same " +"as for :c:func:`PyObject_Call`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:327 +msgid "" +"An optional pointer to a function that implements the built-in operation :" +"func:`str`. (Note that :class:`str` is a type now, and :func:`str` calls " +"the constructor for that type. This constructor calls :c:func:" +"`PyObject_Str` to do the actual work, and :c:func:`PyObject_Str` will call " +"this handler.)" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:332 +msgid "" +"The signature is the same as for :c:func:`PyObject_Str`; it must return a " +"string or a Unicode object. This function should return a \"friendly\" " +"string representation of the object, as this is the representation that will " +"be used, among other things, by the :func:`print` function." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:337 +msgid "" +"When this field is not set, :c:func:`PyObject_Repr` is called to return a " +"string representation." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:345 +msgid "An optional pointer to the get-attribute function." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:347 +msgid "" +"The signature is the same as for :c:func:`PyObject_GetAttr`. It is usually " +"convenient to set this field to :c:func:`PyObject_GenericGetAttr`, which " +"implements the normal way of looking for object attributes." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:351 +msgid "" +"This field is inherited by subtypes together with :c:member:`~PyTypeObject." +"tp_getattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` " +"and :c:member:`~PyTypeObject.tp_getattro` from its base type when the " +"subtype's :c:member:`~PyTypeObject.tp_getattr` and :c:member:`~PyTypeObject." +"tp_getattro` are both *NULL*." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:360 +msgid "" +"The signature is the same as for :c:func:`PyObject_SetAttr`, but setting *v* " +"to *NULL* to delete an attribute must be supported. It is usually " +"convenient to set this field to :c:func:`PyObject_GenericSetAttr`, which " +"implements the normal way of setting object attributes." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:365 +msgid "" +"This field is inherited by subtypes together with :c:member:`~PyTypeObject." +"tp_setattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` " +"and :c:member:`~PyTypeObject.tp_setattro` from its base type when the " +"subtype's :c:member:`~PyTypeObject.tp_setattr` and :c:member:`~PyTypeObject." +"tp_setattro` are both *NULL*." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:372 +msgid "" +"Pointer to an additional structure that contains fields relevant only to " +"objects which implement the buffer interface. These fields are documented " +"in :ref:`buffer-structs`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:376 +msgid "" +"The :c:member:`~PyTypeObject.tp_as_buffer` field is not inherited, but the " +"contained fields are inherited individually." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:382 +msgid "" +"This field is a bit mask of various flags. Some flags indicate variant " +"semantics for certain situations; others are used to indicate that certain " +"fields in the type object (or in the extension structures referenced via :c:" +"member:`~PyTypeObject.tp_as_number`, :c:member:`~PyTypeObject." +"tp_as_sequence`, :c:member:`~PyTypeObject.tp_as_mapping`, and :c:member:" +"`~PyTypeObject.tp_as_buffer`) that were historically not always present are " +"valid; if such a flag bit is clear, the type fields it guards must not be " +"accessed and must be considered to have a zero or *NULL* value instead." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:390 +msgid "" +"Inheritance of this field is complicated. Most flag bits are inherited " +"individually, i.e. if the base type has a flag bit set, the subtype inherits " +"this flag bit. The flag bits that pertain to extension structures are " +"strictly inherited if the extension structure is inherited, i.e. the base " +"type's value of the flag bit is copied into the subtype together with a " +"pointer to the extension structure. The :const:`Py_TPFLAGS_HAVE_GC` flag " +"bit is inherited together with the :c:member:`~PyTypeObject.tp_traverse` " +"and :c:member:`~PyTypeObject.tp_clear` fields, i.e. if the :const:" +"`Py_TPFLAGS_HAVE_GC` flag bit is clear in the subtype and the :c:member:" +"`~PyTypeObject.tp_traverse` and :c:member:`~PyTypeObject.tp_clear` fields in " +"the subtype exist and have *NULL* values." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:401 +msgid "" +"The following bit masks are currently defined; these can be ORed together " +"using the ``|`` operator to form the value of the :c:member:`~PyTypeObject." +"tp_flags` field. The macro :c:func:`PyType_HasFeature` takes a type and a " +"flags value, *tp* and *f*, and checks whether ``tp->tp_flags & f`` is non-" +"zero." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:409 +msgid "" +"This bit is set when the type object itself is allocated on the heap. In " +"this case, the :attr:`ob_type` field of its instances is considered a " +"reference to the type, and the type object is INCREF'ed when a new instance " +"is created, and DECREF'ed when an instance is destroyed (this does not apply " +"to instances of subtypes; only the type referenced by the instance's ob_type " +"gets INCREF'ed or DECREF'ed)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:419 +msgid "" +"This bit is set when the type can be used as the base type of another type. " +"If this bit is clear, the type cannot be subtyped (similar to a \"final\" " +"class in Java)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:426 +msgid "" +"This bit is set when the type object has been fully initialized by :c:func:" +"`PyType_Ready`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:432 +msgid "" +"This bit is set while :c:func:`PyType_Ready` is in the process of " +"initializing the type object." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:438 +msgid "" +"This bit is set when the object supports garbage collection. If this bit is " +"set, instances must be created using :c:func:`PyObject_GC_New` and destroyed " +"using :c:func:`PyObject_GC_Del`. More information in section :ref:" +"`supporting-cycle-detection`. This bit also implies that the GC-related " +"fields :c:member:`~PyTypeObject.tp_traverse` and :c:member:`~PyTypeObject." +"tp_clear` are present in the type object." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:448 +msgid "" +"This is a bitmask of all the bits that pertain to the existence of certain " +"fields in the type object and its extension structures. Currently, it " +"includes the following bits: :const:`Py_TPFLAGS_HAVE_STACKLESS_EXTENSION`, :" +"const:`Py_TPFLAGS_HAVE_VERSION_TAG`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:463 +msgid "" +"These flags are used by functions such as :c:func:`PyLong_Check` to quickly " +"determine if a type is a subclass of a built-in type; such specific checks " +"are faster than a generic check, like :c:func:`PyObject_IsInstance`. Custom " +"types that inherit from built-ins should have their :c:member:`~PyTypeObject." +"tp_flags` set appropriately, or the code that interacts with such types will " +"behave differently depending on what kind of check is used." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:474 +msgid "" +"This bit is set when the :c:member:`~PyTypeObject.tp_finalize` slot is " +"present in the type structure." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:482 +msgid "" +"An optional pointer to a NUL-terminated C string giving the docstring for " +"this type object. This is exposed as the :attr:`__doc__` attribute on the " +"type and instances of the type." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:486 +msgid "This field is *not* inherited by subtypes." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:491 +msgid "" +"An optional pointer to a traversal function for the garbage collector. This " +"is only used if the :const:`Py_TPFLAGS_HAVE_GC` flag bit is set. More " +"information about Python's garbage collection scheme can be found in " +"section :ref:`supporting-cycle-detection`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:496 +msgid "" +"The :c:member:`~PyTypeObject.tp_traverse` pointer is used by the garbage " +"collector to detect reference cycles. A typical implementation of a :c:" +"member:`~PyTypeObject.tp_traverse` function simply calls :c:func:`Py_VISIT` " +"on each of the instance's members that are Python objects. For example, " +"this is function :c:func:`local_traverse` from the :mod:`_thread` extension " +"module::" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:511 +msgid "" +"Note that :c:func:`Py_VISIT` is called only on those members that can " +"participate in reference cycles. Although there is also a ``self->key`` " +"member, it can only be *NULL* or a Python string and therefore cannot be " +"part of a reference cycle." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:515 +msgid "" +"On the other hand, even if you know a member can never be part of a cycle, " +"as a debugging aid you may want to visit it anyway just so the :mod:`gc` " +"module's :func:`~gc.get_referents` function will include it." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:519 +msgid "" +"Note that :c:func:`Py_VISIT` requires the *visit* and *arg* parameters to :c:" +"func:`local_traverse` to have these specific names; don't name them just " +"anything." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:523 +msgid "" +"This field is inherited by subtypes together with :c:member:`~PyTypeObject." +"tp_clear` and the :const:`Py_TPFLAGS_HAVE_GC` flag bit: the flag bit, :c:" +"member:`~PyTypeObject.tp_traverse`, and :c:member:`~PyTypeObject.tp_clear` " +"are all inherited from the base type if they are all zero in the subtype." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:531 +msgid "" +"An optional pointer to a clear function for the garbage collector. This is " +"only used if the :const:`Py_TPFLAGS_HAVE_GC` flag bit is set." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:534 +msgid "" +"The :c:member:`~PyTypeObject.tp_clear` member function is used to break " +"reference cycles in cyclic garbage detected by the garbage collector. Taken " +"together, all :c:member:`~PyTypeObject.tp_clear` functions in the system " +"must combine to break all reference cycles. This is subtle, and if in any " +"doubt supply a :c:member:`~PyTypeObject.tp_clear` function. For example, " +"the tuple type does not implement a :c:member:`~PyTypeObject.tp_clear` " +"function, because it's possible to prove that no reference cycle can be " +"composed entirely of tuples. Therefore the :c:member:`~PyTypeObject." +"tp_clear` functions of other types must be sufficient to break any cycle " +"containing a tuple. This isn't immediately obvious, and there's rarely a " +"good reason to avoid implementing :c:member:`~PyTypeObject.tp_clear`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:544 +msgid "" +"Implementations of :c:member:`~PyTypeObject.tp_clear` should drop the " +"instance's references to those of its members that may be Python objects, " +"and set its pointers to those members to *NULL*, as in the following " +"example::" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:558 +msgid "" +"The :c:func:`Py_CLEAR` macro should be used, because clearing references is " +"delicate: the reference to the contained object must not be decremented " +"until after the pointer to the contained object is set to *NULL*. This is " +"because decrementing the reference count may cause the contained object to " +"become trash, triggering a chain of reclamation activity that may include " +"invoking arbitrary Python code (due to finalizers, or weakref callbacks, " +"associated with the contained object). If it's possible for such code to " +"reference *self* again, it's important that the pointer to the contained " +"object be *NULL* at that time, so that *self* knows the contained object can " +"no longer be used. The :c:func:`Py_CLEAR` macro performs the operations in " +"a safe order." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:569 +msgid "" +"Because the goal of :c:member:`~PyTypeObject.tp_clear` functions is to break " +"reference cycles, it's not necessary to clear contained objects like Python " +"strings or Python integers, which can't participate in reference cycles. On " +"the other hand, it may be convenient to clear all contained Python objects, " +"and write the type's :c:member:`~PyTypeObject.tp_dealloc` function to " +"invoke :c:member:`~PyTypeObject.tp_clear`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:575 +msgid "" +"More information about Python's garbage collection scheme can be found in " +"section :ref:`supporting-cycle-detection`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:578 +msgid "" +"This field is inherited by subtypes together with :c:member:`~PyTypeObject." +"tp_traverse` and the :const:`Py_TPFLAGS_HAVE_GC` flag bit: the flag bit, :c:" +"member:`~PyTypeObject.tp_traverse`, and :c:member:`~PyTypeObject.tp_clear` " +"are all inherited from the base type if they are all zero in the subtype." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:586 +msgid "" +"An optional pointer to the rich comparison function, whose signature is " +"``PyObject *tp_richcompare(PyObject *a, PyObject *b, int op)``. The first " +"parameter is guaranteed to be an instance of the type that is defined by :c:" +"type:`PyTypeObject`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:591 +msgid "" +"The function should return the result of the comparison (usually ``Py_True`` " +"or ``Py_False``). If the comparison is undefined, it must return " +"``Py_NotImplemented``, if another error occurred it must return ``NULL`` and " +"set an exception condition." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:598 +msgid "" +"If you want to implement a type for which only a limited set of comparisons " +"makes sense (e.g. ``==`` and ``!=``, but not ``<`` and friends), directly " +"raise :exc:`TypeError` in the rich comparison function." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:602 +msgid "" +"This field is inherited by subtypes together with :c:member:`~PyTypeObject." +"tp_hash`: a subtype inherits :c:member:`~PyTypeObject.tp_richcompare` and :c:" +"member:`~PyTypeObject.tp_hash` when the subtype's :c:member:`~PyTypeObject." +"tp_richcompare` and :c:member:`~PyTypeObject.tp_hash` are both *NULL*." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:607 +msgid "" +"The following constants are defined to be used as the third argument for :c:" +"member:`~PyTypeObject.tp_richcompare` and for :c:func:`PyObject_RichCompare`:" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:611 +msgid "Constant" +msgstr "Constante" + +#: ../Doc/c-api/typeobj.rst:611 +msgid "Comparison" +msgstr "Comparaison" + +#: ../Doc/c-api/typeobj.rst:613 +msgid ":const:`Py_LT`" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:613 +msgid "``<``" +msgstr "``<``" + +#: ../Doc/c-api/typeobj.rst:615 +msgid ":const:`Py_LE`" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:615 +msgid "``<=``" +msgstr "``<=``" + +#: ../Doc/c-api/typeobj.rst:617 +msgid ":const:`Py_EQ`" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:617 +msgid "``==``" +msgstr "``==``" + +#: ../Doc/c-api/typeobj.rst:619 +msgid ":const:`Py_NE`" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:619 +msgid "``!=``" +msgstr "``!=``" + +#: ../Doc/c-api/typeobj.rst:621 +msgid ":const:`Py_GT`" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:621 +msgid "``>``" +msgstr "``>``" + +#: ../Doc/c-api/typeobj.rst:623 +msgid ":const:`Py_GE`" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:623 +msgid "``>=``" +msgstr "``>=``" + +#: ../Doc/c-api/typeobj.rst:626 +msgid "" +"The following macro is defined to ease writing rich comparison functions:" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:630 +msgid "" +"Return ``Py_True`` or ``Py_False`` from the function, depending on the " +"result of a comparison. VAL_A and VAL_B must be orderable by C comparison " +"operators (for example, they may be C ints or floats). The third argument " +"specifies the requested operation, as for :c:func:`PyObject_RichCompare`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:636 +msgid "The return value's reference count is properly incremented." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:638 +msgid "On error, sets an exception and returns NULL from the function." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:645 +msgid "" +"If the instances of this type are weakly referenceable, this field is " +"greater than zero and contains the offset in the instance structure of the " +"weak reference list head (ignoring the GC header, if present); this offset " +"is used by :c:func:`PyObject_ClearWeakRefs` and the :c:func:`PyWeakref_\\*` " +"functions. The instance structure needs to include a field of type :c:type:" +"`PyObject\\*` which is initialized to *NULL*." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:652 +msgid "" +"Do not confuse this field with :c:member:`~PyTypeObject.tp_weaklist`; that " +"is the list head for weak references to the type object itself." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:655 +msgid "" +"This field is inherited by subtypes, but see the rules listed below. A " +"subtype may override this offset; this means that the subtype uses a " +"different weak reference list head than the base type. Since the list head " +"is always found via :c:member:`~PyTypeObject.tp_weaklistoffset`, this should " +"not be a problem." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:660 +msgid "" +"When a type defined by a class statement has no :attr:`~object.__slots__` " +"declaration, and none of its base types are weakly referenceable, the type " +"is made weakly referenceable by adding a weak reference list head slot to " +"the instance layout and setting the :c:member:`~PyTypeObject." +"tp_weaklistoffset` of that slot's offset." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:665 +msgid "" +"When a type's :attr:`__slots__` declaration contains a slot named :attr:" +"`__weakref__`, that slot becomes the weak reference list head for instances " +"of the type, and the slot's offset is stored in the type's :c:member:" +"`~PyTypeObject.tp_weaklistoffset`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:670 +msgid "" +"When a type's :attr:`__slots__` declaration does not contain a slot named :" +"attr:`__weakref__`, the type inherits its :c:member:`~PyTypeObject." +"tp_weaklistoffset` from its base type." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:676 +msgid "" +"An optional pointer to a function that returns an iterator for the object. " +"Its presence normally signals that the instances of this type are iterable " +"(although sequences may be iterable without this function)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:680 +msgid "This function has the same signature as :c:func:`PyObject_GetIter`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:687 +msgid "" +"An optional pointer to a function that returns the next item in an iterator. " +"When the iterator is exhausted, it must return *NULL*; a :exc:" +"`StopIteration` exception may or may not be set. When another error occurs, " +"it must return *NULL* too. Its presence signals that the instances of this " +"type are iterators." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:693 +msgid "" +"Iterator types should also define the :c:member:`~PyTypeObject.tp_iter` " +"function, and that function should return the iterator instance itself (not " +"a new iterator instance)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:697 +msgid "This function has the same signature as :c:func:`PyIter_Next`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:704 +msgid "" +"An optional pointer to a static *NULL*-terminated array of :c:type:" +"`PyMethodDef` structures, declaring regular methods of this type." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:707 +msgid "" +"For each entry in the array, an entry is added to the type's dictionary " +"(see :c:member:`~PyTypeObject.tp_dict` below) containing a method descriptor." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:710 +msgid "" +"This field is not inherited by subtypes (methods are inherited through a " +"different mechanism)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:716 +msgid "" +"An optional pointer to a static *NULL*-terminated array of :c:type:" +"`PyMemberDef` structures, declaring regular data members (fields or slots) " +"of instances of this type." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:720 +msgid "" +"For each entry in the array, an entry is added to the type's dictionary " +"(see :c:member:`~PyTypeObject.tp_dict` below) containing a member descriptor." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:723 +msgid "" +"This field is not inherited by subtypes (members are inherited through a " +"different mechanism)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:729 +msgid "" +"An optional pointer to a static *NULL*-terminated array of :c:type:" +"`PyGetSetDef` structures, declaring computed attributes of instances of this " +"type." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:732 +msgid "" +"For each entry in the array, an entry is added to the type's dictionary " +"(see :c:member:`~PyTypeObject.tp_dict` below) containing a getset descriptor." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:735 +msgid "" +"This field is not inherited by subtypes (computed attributes are inherited " +"through a different mechanism)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:741 +msgid "" +"An optional pointer to a base type from which type properties are " +"inherited. At this level, only single inheritance is supported; multiple " +"inheritance require dynamically creating a type object by calling the " +"metatype." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:745 +msgid "" +"This field is not inherited by subtypes (obviously), but it defaults to " +"``&PyBaseObject_Type`` (which to Python programmers is known as the type :" +"class:`object`)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:752 +msgid "The type's dictionary is stored here by :c:func:`PyType_Ready`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:754 +msgid "" +"This field should normally be initialized to *NULL* before PyType_Ready is " +"called; it may also be initialized to a dictionary containing initial " +"attributes for the type. Once :c:func:`PyType_Ready` has initialized the " +"type, extra attributes for the type may be added to this dictionary only if " +"they don't correspond to overloaded operations (like :meth:`__add__`)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:760 +msgid "" +"This field is not inherited by subtypes (though the attributes defined in " +"here are inherited through a different mechanism)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:765 +msgid "" +"It is not safe to use :c:func:`PyDict_SetItem` on or otherwise modify :c:" +"member:`~PyTypeObject.tp_dict` with the dictionary C-API." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:771 +msgid "An optional pointer to a \"descriptor get\" function." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:773 ../Doc/c-api/typeobj.rst:787 +#: ../Doc/c-api/typeobj.rst:859 ../Doc/c-api/typeobj.rst:881 +#: ../Doc/c-api/typeobj.rst:912 +msgid "The function signature is ::" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:784 +msgid "" +"An optional pointer to a function for setting and deleting a descriptor's " +"value." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:791 +msgid "" +"The *value* argument is set to *NULL* to delete the value. This field is " +"inherited by subtypes." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:799 +msgid "" +"If the instances of this type have a dictionary containing instance " +"variables, this field is non-zero and contains the offset in the instances " +"of the type of the instance variable dictionary; this offset is used by :c:" +"func:`PyObject_GenericGetAttr`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:804 +msgid "" +"Do not confuse this field with :c:member:`~PyTypeObject.tp_dict`; that is " +"the dictionary for attributes of the type object itself." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:807 +msgid "" +"If the value of this field is greater than zero, it specifies the offset " +"from the start of the instance structure. If the value is less than zero, " +"it specifies the offset from the *end* of the instance structure. A " +"negative offset is more expensive to use, and should only be used when the " +"instance structure contains a variable-length part. This is used for " +"example to add an instance variable dictionary to subtypes of :class:`str` " +"or :class:`tuple`. Note that the :c:member:`~PyTypeObject.tp_basicsize` " +"field should account for the dictionary added to the end in that case, even " +"though the dictionary is not included in the basic object layout. On a " +"system with a pointer size of 4 bytes, :c:member:`~PyTypeObject." +"tp_dictoffset` should be set to ``-4`` to indicate that the dictionary is at " +"the very end of the structure." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:819 +msgid "" +"The real dictionary offset in an instance can be computed from a negative :c:" +"member:`~PyTypeObject.tp_dictoffset` as follows::" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:826 +msgid "" +"where :c:member:`~PyTypeObject.tp_basicsize`, :c:member:`~PyTypeObject." +"tp_itemsize` and :c:member:`~PyTypeObject.tp_dictoffset` are taken from the " +"type object, and :attr:`ob_size` is taken from the instance. The absolute " +"value is taken because ints use the sign of :attr:`ob_size` to store the " +"sign of the number. (There's never a need to do this calculation yourself; " +"it is done for you by :c:func:`_PyObject_GetDictPtr`.)" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:832 +msgid "" +"This field is inherited by subtypes, but see the rules listed below. A " +"subtype may override this offset; this means that the subtype instances " +"store the dictionary at a difference offset than the base type. Since the " +"dictionary is always found via :c:member:`~PyTypeObject.tp_dictoffset`, this " +"should not be a problem." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:837 +msgid "" +"When a type defined by a class statement has no :attr:`~object.__slots__` " +"declaration, and none of its base types has an instance variable dictionary, " +"a dictionary slot is added to the instance layout and the :c:member:" +"`~PyTypeObject.tp_dictoffset` is set to that slot's offset." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:842 +msgid "" +"When a type defined by a class statement has a :attr:`__slots__` " +"declaration, the type inherits its :c:member:`~PyTypeObject.tp_dictoffset` " +"from its base type." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:845 +msgid "" +"(Adding a slot named :attr:`~object.__dict__` to the :attr:`__slots__` " +"declaration does not have the expected effect, it just causes confusion. " +"Maybe this should be added as a feature just like :attr:`__weakref__` " +"though.)" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:852 +msgid "An optional pointer to an instance initialization function." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:854 +msgid "" +"This function corresponds to the :meth:`__init__` method of classes. Like :" +"meth:`__init__`, it is possible to create an instance without calling :meth:" +"`__init__`, and it is possible to reinitialize an instance by calling its :" +"meth:`__init__` method again." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:863 +msgid "" +"The self argument is the instance to be initialized; the *args* and *kwds* " +"arguments represent positional and keyword arguments of the call to :meth:" +"`__init__`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:867 +msgid "" +"The :c:member:`~PyTypeObject.tp_init` function, if not *NULL*, is called " +"when an instance is created normally by calling its type, after the type's :" +"c:member:`~PyTypeObject.tp_new` function has returned an instance of the " +"type. If the :c:member:`~PyTypeObject.tp_new` function returns an instance " +"of some other type that is not a subtype of the original type, no :c:member:" +"`~PyTypeObject.tp_init` function is called; if :c:member:`~PyTypeObject." +"tp_new` returns an instance of a subtype of the original type, the " +"subtype's :c:member:`~PyTypeObject.tp_init` is called." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:879 +msgid "An optional pointer to an instance allocation function." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:885 +msgid "" +"The purpose of this function is to separate memory allocation from memory " +"initialization. It should return a pointer to a block of memory of adequate " +"length for the instance, suitably aligned, and initialized to zeros, but " +"with :attr:`ob_refcnt` set to ``1`` and :attr:`ob_type` set to the type " +"argument. If the type's :c:member:`~PyTypeObject.tp_itemsize` is non-zero, " +"the object's :attr:`ob_size` field should be initialized to *nitems* and the " +"length of the allocated memory block should be ``tp_basicsize + " +"nitems*tp_itemsize``, rounded up to a multiple of ``sizeof(void*)``; " +"otherwise, *nitems* is not used and the length of the block should be :c:" +"member:`~PyTypeObject.tp_basicsize`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:895 +msgid "" +"Do not use this function to do any other instance initialization, not even " +"to allocate additional memory; that should be done by :c:member:" +"`~PyTypeObject.tp_new`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:898 +msgid "" +"This field is inherited by static subtypes, but not by dynamic subtypes " +"(subtypes created by a class statement); in the latter, this field is always " +"set to :c:func:`PyType_GenericAlloc`, to force a standard heap allocation " +"strategy. That is also the recommended value for statically defined types." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:906 +msgid "An optional pointer to an instance creation function." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:908 +msgid "" +"If this function is *NULL* for a particular type, that type cannot be called " +"to create new instances; presumably there is some other way to create " +"instances, like a factory function." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:916 +msgid "" +"The subtype argument is the type of the object being created; the *args* and " +"*kwds* arguments represent positional and keyword arguments of the call to " +"the type. Note that subtype doesn't have to equal the type whose :c:member:" +"`~PyTypeObject.tp_new` function is called; it may be a subtype of that type " +"(but not an unrelated type)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:922 +msgid "" +"The :c:member:`~PyTypeObject.tp_new` function should call ``subtype-" +">tp_alloc(subtype, nitems)`` to allocate space for the object, and then do " +"only as much further initialization as is absolutely necessary. " +"Initialization that can safely be ignored or repeated should be placed in " +"the :c:member:`~PyTypeObject.tp_init` handler. A good rule of thumb is that " +"for immutable types, all initialization should take place in :c:member:" +"`~PyTypeObject.tp_new`, while for mutable types, most initialization should " +"be deferred to :c:member:`~PyTypeObject.tp_init`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:930 +msgid "" +"This field is inherited by subtypes, except it is not inherited by static " +"types whose :c:member:`~PyTypeObject.tp_base` is *NULL* or " +"``&PyBaseObject_Type``." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:936 +msgid "" +"An optional pointer to an instance deallocation function. Its signature is :" +"c:type:`freefunc`::" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:941 +msgid "" +"An initializer that is compatible with this signature is :c:func:" +"`PyObject_Free`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:943 +msgid "" +"This field is inherited by static subtypes, but not by dynamic subtypes " +"(subtypes created by a class statement); in the latter, this field is set to " +"a deallocator suitable to match :c:func:`PyType_GenericAlloc` and the value " +"of the :const:`Py_TPFLAGS_HAVE_GC` flag bit." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:951 +msgid "An optional pointer to a function called by the garbage collector." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:953 +msgid "" +"The garbage collector needs to know whether a particular object is " +"collectible or not. Normally, it is sufficient to look at the object's " +"type's :c:member:`~PyTypeObject.tp_flags` field, and check the :const:" +"`Py_TPFLAGS_HAVE_GC` flag bit. But some types have a mixture of statically " +"and dynamically allocated instances, and the statically allocated instances " +"are not collectible. Such types should define this function; it should " +"return ``1`` for a collectible instance, and ``0`` for a non-collectible " +"instance. The signature is ::" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:963 +msgid "" +"(The only example of this are types themselves. The metatype, :c:data:" +"`PyType_Type`, defines this function to distinguish between statically and " +"dynamically allocated types.)" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:972 +msgid "Tuple of base types." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:974 +msgid "" +"This is set for types created by a class statement. It should be *NULL* for " +"statically defined types." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:977 +msgid "This field is not inherited." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:982 +msgid "" +"Tuple containing the expanded set of base types, starting with the type " +"itself and ending with :class:`object`, in Method Resolution Order." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:985 +msgid "" +"This field is not inherited; it is calculated fresh by :c:func:" +"`PyType_Ready`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:990 +msgid "" +"An optional pointer to an instance finalization function. Its signature is :" +"c:type:`destructor`::" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:995 +msgid "" +"If :c:member:`~PyTypeObject.tp_finalize` is set, the interpreter calls it " +"once when finalizing an instance. It is called either from the garbage " +"collector (if the instance is part of an isolated reference cycle) or just " +"before the object is deallocated. Either way, it is guaranteed to be called " +"before attempting to break reference cycles, ensuring that it finds the " +"object in a sane state." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1002 +msgid "" +":c:member:`~PyTypeObject.tp_finalize` should not mutate the current " +"exception status; therefore, a recommended way to write a non-trivial " +"finalizer is::" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1019 +msgid "" +"For this field to be taken into account (even through inheritance), you must " +"also set the :const:`Py_TPFLAGS_HAVE_FINALIZE` flags bit." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1026 +msgid "\"Safe object finalization\" (:pep:`442`)" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1031 +msgid "Unused. Not inherited. Internal use only." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1036 +msgid "" +"List of weak references to subclasses. Not inherited. Internal use only." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1041 +msgid "" +"Weak reference list head, for weak references to this type object. Not " +"inherited. Internal use only." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1044 +msgid "" +"The remaining fields are only defined if the feature test macro :const:" +"`COUNT_ALLOCS` is defined, and are for internal use only. They are " +"documented here for completeness. None of these fields are inherited by " +"subtypes." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1052 +msgid "Number of allocations." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1057 +msgid "Number of frees." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1062 +msgid "Maximum simultaneously allocated objects." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1067 +msgid "" +"Pointer to the next type object with a non-zero :c:member:`~PyTypeObject." +"tp_allocs` field." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1069 +msgid "" +"Also, note that, in a garbage collected Python, tp_dealloc may be called " +"from any Python thread, not just the thread which created the object (if the " +"object becomes part of a refcount cycle, that cycle might be collected by a " +"garbage collection on any thread). This is not a problem for Python API " +"calls, since the thread on which tp_dealloc is called will own the Global " +"Interpreter Lock (GIL). However, if the object being destroyed in turn " +"destroys objects from some other C or C++ library, care should be taken to " +"ensure that destroying those objects on the thread which called tp_dealloc " +"will not violate any assumptions of the library." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1083 +msgid "Number Object Structures" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1090 +msgid "" +"This structure holds pointers to the functions which an object uses to " +"implement the number protocol. Each function is used by the function of " +"similar name documented in the :ref:`number` section." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1094 ../Doc/c-api/typeobj.rst:1381 +msgid "Here is the structure definition::" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1141 +msgid "" +"Binary and ternary functions must check the type of all their operands, and " +"implement the necessary conversions (at least one of the operands is an " +"instance of the defined type). If the operation is not defined for the " +"given operands, binary and ternary functions must return " +"``Py_NotImplemented``, if another error occurred they must return ``NULL`` " +"and set an exception." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1150 +msgid "" +"The :c:data:`nb_reserved` field should always be ``NULL``. It was " +"previously called :c:data:`nb_long`, and was renamed in Python 3.0.1." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1158 +msgid "Mapping Object Structures" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1165 +msgid "" +"This structure holds pointers to the functions which an object uses to " +"implement the mapping protocol. It has three members:" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1170 +msgid "" +"This function is used by :c:func:`PyMapping_Size` and :c:func:" +"`PyObject_Size`, and has the same signature. This slot may be set to *NULL* " +"if the object has no defined length." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1176 +msgid "" +"This function is used by :c:func:`PyObject_GetItem` and :c:func:" +"`PySequence_GetSlice`, and has the same signature as :c:func:`!" +"PyObject_GetItem`. This slot must be filled for the :c:func:" +"`PyMapping_Check` function to return ``1``, it can be *NULL* otherwise." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1184 +msgid "" +"This function is used by :c:func:`PyObject_SetItem`, :c:func:" +"`PyObject_DelItem`, :c:func:`PyObject_SetSlice` and :c:func:" +"`PyObject_DelSlice`. It has the same signature as :c:func:`!" +"PyObject_SetItem`, but *v* can also be set to *NULL* to delete an item. If " +"this slot is *NULL*, the object does not support item assignment and " +"deletion." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1195 +msgid "Sequence Object Structures" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1202 +msgid "" +"This structure holds pointers to the functions which an object uses to " +"implement the sequence protocol." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1207 +msgid "" +"This function is used by :c:func:`PySequence_Size` and :c:func:" +"`PyObject_Size`, and has the same signature. It is also used for handling " +"negative indices via the :c:member:`~PySequenceMethods.sq_item` and the :c:" +"member:`~PySequenceMethods.sq_ass_item` slots." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1214 +msgid "" +"This function is used by :c:func:`PySequence_Concat` and has the same " +"signature. It is also used by the ``+`` operator, after trying the numeric " +"addition via the :c:member:`~PyNumberMethods.nb_add` slot." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1220 +msgid "" +"This function is used by :c:func:`PySequence_Repeat` and has the same " +"signature. It is also used by the ``*`` operator, after trying numeric " +"multiplication via the :c:member:`~PyNumberMethods.nb_multiply` slot." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1226 +msgid "" +"This function is used by :c:func:`PySequence_GetItem` and has the same " +"signature. It is also used by :c:func:`PyObject_GetItem`, after trying the " +"subscription via the :c:member:`~PyMappingMethods.mp_subscript` slot. This " +"slot must be filled for the :c:func:`PySequence_Check` function to return " +"``1``, it can be *NULL* otherwise." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1232 +msgid "" +"Negative indexes are handled as follows: if the :attr:`sq_length` slot is " +"filled, it is called and the sequence length is used to compute a positive " +"index which is passed to :attr:`sq_item`. If :attr:`sq_length` is *NULL*, " +"the index is passed as is to the function." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1239 +msgid "" +"This function is used by :c:func:`PySequence_SetItem` and has the same " +"signature. It is also used by :c:func:`PyObject_SetItem` and :c:func:" +"`PyObject_DelItem`, after trying the item assignment and deletion via the :c:" +"member:`~PyMappingMethods.mp_ass_subscript` slot. This slot may be left to " +"*NULL* if the object does not support item assignment and deletion." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1248 +msgid "" +"This function may be used by :c:func:`PySequence_Contains` and has the same " +"signature. This slot may be left to *NULL*, in this case :c:func:`!" +"PySequence_Contains` simply traverses the sequence until it finds a match." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1255 +msgid "" +"This function is used by :c:func:`PySequence_InPlaceConcat` and has the same " +"signature. It should modify its first operand, and return it. This slot " +"may be left to *NULL*, in this case :c:func:`!PySequence_InPlaceConcat` will " +"fall back to :c:func:`PySequence_Concat`. It is also used by the augmented " +"assignment ``+=``, after trying numeric in-place addition via the :c:member:" +"`~PyNumberMethods.nb_inplace_add` slot." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1264 +msgid "" +"This function is used by :c:func:`PySequence_InPlaceRepeat` and has the same " +"signature. It should modify its first operand, and return it. This slot " +"may be left to *NULL*, in this case :c:func:`!PySequence_InPlaceRepeat` will " +"fall back to :c:func:`PySequence_Repeat`. It is also used by the augmented " +"assignment ``*=``, after trying numeric in-place multiplication via the :c:" +"member:`~PyNumberMethods.nb_inplace_multiply` slot." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1275 +msgid "Buffer Object Structures" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1283 +msgid "" +"This structure holds pointers to the functions required by the :ref:`Buffer " +"protocol `. The protocol defines how an exporter object can " +"expose its internal data to consumer objects." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1289 ../Doc/c-api/typeobj.rst:1338 +#: ../Doc/c-api/typeobj.rst:1391 ../Doc/c-api/typeobj.rst:1402 +#: ../Doc/c-api/typeobj.rst:1413 +msgid "The signature of this function is::" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1293 +msgid "" +"Handle a request to *exporter* to fill in *view* as specified by *flags*. " +"Except for point (3), an implementation of this function MUST take these " +"steps:" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1297 +msgid "" +"Check if the request can be met. If not, raise :c:data:`PyExc_BufferError`, " +"set :c:data:`view->obj` to *NULL* and return ``-1``." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1300 +msgid "Fill in the requested fields." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1302 +msgid "Increment an internal counter for the number of exports." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1304 +msgid "" +"Set :c:data:`view->obj` to *exporter* and increment :c:data:`view->obj`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1306 +msgid "Return ``0``." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1308 +msgid "" +"If *exporter* is part of a chain or tree of buffer providers, two main " +"schemes can be used:" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1311 +msgid "" +"Re-export: Each member of the tree acts as the exporting object and sets :c:" +"data:`view->obj` to a new reference to itself." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1314 +msgid "" +"Redirect: The buffer request is redirected to the root object of the tree. " +"Here, :c:data:`view->obj` will be a new reference to the root object." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1318 +msgid "" +"The individual fields of *view* are described in section :ref:`Buffer " +"structure `, the rules how an exporter must react to " +"specific requests are in section :ref:`Buffer request types `." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1323 +msgid "" +"All memory pointed to in the :c:type:`Py_buffer` structure belongs to the " +"exporter and must remain valid until there are no consumers left. :c:member:" +"`~Py_buffer.format`, :c:member:`~Py_buffer.shape`, :c:member:`~Py_buffer." +"strides`, :c:member:`~Py_buffer.suboffsets` and :c:member:`~Py_buffer." +"internal` are read-only for the consumer." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1330 +msgid "" +":c:func:`PyBuffer_FillInfo` provides an easy way of exposing a simple bytes " +"buffer while dealing correctly with all request types." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1333 +msgid "" +":c:func:`PyObject_GetBuffer` is the interface for the consumer that wraps " +"this function." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1342 +msgid "" +"Handle a request to release the resources of the buffer. If no resources " +"need to be released, :c:member:`PyBufferProcs.bf_releasebuffer` may be " +"*NULL*. Otherwise, a standard implementation of this function will take " +"these optional steps:" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1347 +msgid "Decrement an internal counter for the number of exports." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1349 +msgid "If the counter is ``0``, free all memory associated with *view*." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1351 +msgid "" +"The exporter MUST use the :c:member:`~Py_buffer.internal` field to keep " +"track of buffer-specific resources. This field is guaranteed to remain " +"constant, while a consumer MAY pass a copy of the original buffer as the " +"*view* argument." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1357 +msgid "" +"This function MUST NOT decrement :c:data:`view->obj`, since that is done " +"automatically in :c:func:`PyBuffer_Release` (this scheme is useful for " +"breaking reference cycles)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1362 +msgid "" +":c:func:`PyBuffer_Release` is the interface for the consumer that wraps this " +"function." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1370 +msgid "Async Object Structures" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1378 +msgid "" +"This structure holds pointers to the functions required to implement :term:" +"`awaitable` and :term:`asynchronous iterator` objects." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1395 +msgid "" +"The returned object must be an iterator, i.e. :c:func:`PyIter_Check` must " +"return ``1`` for it." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1398 +msgid "" +"This slot may be set to *NULL* if an object is not an :term:`awaitable`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1406 +msgid "" +"Must return an :term:`awaitable` object. See :meth:`__anext__` for details." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1408 +msgid "" +"This slot may be set to *NULL* if an object does not implement asynchronous " +"iteration protocol." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1417 +msgid "" +"Must return an :term:`awaitable` object. See :meth:`__anext__` for details. " +"This slot may be set to *NULL*." +msgstr "" diff --git a/c-api/unicode.po b/c-api/unicode.po new file mode 100644 index 000000000..71623f6c6 --- /dev/null +++ b/c-api/unicode.po @@ -0,0 +1,1978 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-10-04 12:27+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/unicode.rst:6 +msgid "Unicode Objects and Codecs" +msgstr "" + +#: ../Doc/c-api/unicode.rst:12 +msgid "Unicode Objects" +msgstr "" + +#: ../Doc/c-api/unicode.rst:14 +msgid "" +"Since the implementation of :pep:`393` in Python 3.3, Unicode objects " +"internally use a variety of representations, in order to allow handling the " +"complete range of Unicode characters while staying memory efficient. There " +"are special cases for strings where all code points are below 128, 256, or " +"65536; otherwise, code points must be below 1114112 (which is the full " +"Unicode range)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:20 +msgid "" +":c:type:`Py_UNICODE*` and UTF-8 representations are created on demand and " +"cached in the Unicode object. The :c:type:`Py_UNICODE*` representation is " +"deprecated and inefficient; it should be avoided in performance- or memory-" +"sensitive situations." +msgstr "" + +#: ../Doc/c-api/unicode.rst:25 +msgid "" +"Due to the transition between the old APIs and the new APIs, Unicode objects " +"can internally be in two states depending on how they were created:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:28 +msgid "" +"\"canonical\" Unicode objects are all objects created by a non-deprecated " +"Unicode API. They use the most efficient representation allowed by the " +"implementation." +msgstr "" + +#: ../Doc/c-api/unicode.rst:32 +msgid "" +"\"legacy\" Unicode objects have been created through one of the deprecated " +"APIs (typically :c:func:`PyUnicode_FromUnicode`) and only bear the :c:type:" +"`Py_UNICODE*` representation; you will have to call :c:func:" +"`PyUnicode_READY` on them before calling any other API." +msgstr "" + +#: ../Doc/c-api/unicode.rst:39 +msgid "Unicode Type" +msgstr "" + +#: ../Doc/c-api/unicode.rst:41 +msgid "" +"These are the basic Unicode object types used for the Unicode implementation " +"in Python:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:48 +msgid "" +"These types are typedefs for unsigned integer types wide enough to contain " +"characters of 32 bits, 16 bits and 8 bits, respectively. When dealing with " +"single Unicode characters, use :c:type:`Py_UCS4`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:57 +msgid "" +"This is a typedef of :c:type:`wchar_t`, which is a 16-bit type or 32-bit " +"type depending on the platform." +msgstr "" + +#: ../Doc/c-api/unicode.rst:60 +msgid "" +"In previous versions, this was a 16-bit type or a 32-bit type depending on " +"whether you selected a \"narrow\" or \"wide\" Unicode version of Python at " +"build time." +msgstr "" + +#: ../Doc/c-api/unicode.rst:70 +msgid "" +"These subtypes of :c:type:`PyObject` represent a Python Unicode object. In " +"almost all cases, they shouldn't be used directly, since all API functions " +"that deal with Unicode objects take and return :c:type:`PyObject` pointers." +msgstr "" + +#: ../Doc/c-api/unicode.rst:79 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python Unicode type. " +"It is exposed to Python code as ``str``." +msgstr "" + +#: ../Doc/c-api/unicode.rst:83 +msgid "" +"The following APIs are really C macros and can be used to do fast checks and " +"to access internal read-only data of Unicode objects:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:88 +msgid "" +"Return true if the object *o* is a Unicode object or an instance of a " +"Unicode subtype." +msgstr "" + +#: ../Doc/c-api/unicode.rst:94 +msgid "" +"Return true if the object *o* is a Unicode object, but not an instance of a " +"subtype." +msgstr "" + +#: ../Doc/c-api/unicode.rst:100 +msgid "" +"Ensure the string object *o* is in the \"canonical\" representation. This " +"is required before using any of the access macros described below." +msgstr "" + +#: ../Doc/c-api/unicode.rst:105 +msgid "" +"Returns ``0`` on success and ``-1`` with an exception set on failure, which " +"in particular happens if memory allocation fails." +msgstr "" + +#: ../Doc/c-api/unicode.rst:113 +msgid "" +"Return the length of the Unicode string, in code points. *o* has to be a " +"Unicode object in the \"canonical\" representation (not checked)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:123 +msgid "" +"Return a pointer to the canonical representation cast to UCS1, UCS2 or UCS4 " +"integer types for direct character access. No checks are performed if the " +"canonical representation has the correct character size; use :c:func:" +"`PyUnicode_KIND` to select the right macro. Make sure :c:func:" +"`PyUnicode_READY` has been called before accessing this." +msgstr "" + +#: ../Doc/c-api/unicode.rst:137 +msgid "Return values of the :c:func:`PyUnicode_KIND` macro." +msgstr "" + +#: ../Doc/c-api/unicode.rst:144 +msgid "" +"Return one of the PyUnicode kind constants (see above) that indicate how " +"many bytes per character this Unicode object uses to store its data. *o* " +"has to be a Unicode object in the \"canonical\" representation (not checked)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:155 +msgid "" +"Return a void pointer to the raw Unicode buffer. *o* has to be a Unicode " +"object in the \"canonical\" representation (not checked)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:164 +msgid "" +"Write into a canonical representation *data* (as obtained with :c:func:" +"`PyUnicode_DATA`). This macro does not do any sanity checks and is intended " +"for usage in loops. The caller should cache the *kind* value and *data* " +"pointer as obtained from other macro calls. *index* is the index in the " +"string (starts at 0) and *value* is the new code point value which should be " +"written to that location." +msgstr "" + +#: ../Doc/c-api/unicode.rst:176 +msgid "" +"Read a code point from a canonical representation *data* (as obtained with :" +"c:func:`PyUnicode_DATA`). No checks or ready calls are performed." +msgstr "" + +#: ../Doc/c-api/unicode.rst:184 +msgid "" +"Read a character from a Unicode object *o*, which must be in the \"canonical" +"\" representation. This is less efficient than :c:func:`PyUnicode_READ` if " +"you do multiple consecutive reads." +msgstr "" + +#: ../Doc/c-api/unicode.rst:193 +msgid "" +"Return the maximum code point that is suitable for creating another string " +"based on *o*, which must be in the \"canonical\" representation. This is " +"always an approximation but more efficient than iterating over the string." +msgstr "" + +#: ../Doc/c-api/unicode.rst:202 +msgid "Clear the free list. Return the total number of freed items." +msgstr "" + +#: ../Doc/c-api/unicode.rst:207 +msgid "" +"Return the size of the deprecated :c:type:`Py_UNICODE` representation, in " +"code units (this includes surrogate pairs as 2 units). *o* has to be a " +"Unicode object (not checked)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:213 ../Doc/c-api/unicode.rst:223 +msgid "" +"Part of the old-style Unicode API, please migrate to using :c:func:" +"`PyUnicode_GET_LENGTH`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:218 +msgid "" +"Return the size of the deprecated :c:type:`Py_UNICODE` representation in " +"bytes. *o* has to be a Unicode object (not checked)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:229 +msgid "" +"Return a pointer to a :c:type:`Py_UNICODE` representation of the object. " +"The returned buffer is always terminated with an extra null code point. It " +"may also contain embedded null code points, which would cause the string to " +"be truncated when used in most C functions. The ``AS_DATA`` form casts the " +"pointer to :c:type:`const char *`. The *o* argument has to be a Unicode " +"object (not checked)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:236 +msgid "" +"This macro is now inefficient -- because in many cases the :c:type:" +"`Py_UNICODE` representation does not exist and needs to be created -- and " +"can fail (return *NULL* with an exception set). Try to port the code to use " +"the new :c:func:`PyUnicode_nBYTE_DATA` macros or use :c:func:" +"`PyUnicode_WRITE` or :c:func:`PyUnicode_READ`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:245 +msgid "" +"Part of the old-style Unicode API, please migrate to using the :c:func:" +"`PyUnicode_nBYTE_DATA` family of macros." +msgstr "" + +#: ../Doc/c-api/unicode.rst:249 +msgid "Unicode Character Properties" +msgstr "" + +#: ../Doc/c-api/unicode.rst:251 +msgid "" +"Unicode provides many different character properties. The most often needed " +"ones are available through these macros which are mapped to C functions " +"depending on the Python configuration." +msgstr "" + +#: ../Doc/c-api/unicode.rst:258 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is a whitespace character." +msgstr "" + +#: ../Doc/c-api/unicode.rst:263 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is a lowercase character." +msgstr "" + +#: ../Doc/c-api/unicode.rst:268 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is an uppercase character." +msgstr "" + +#: ../Doc/c-api/unicode.rst:273 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is a titlecase character." +msgstr "" + +#: ../Doc/c-api/unicode.rst:278 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is a linebreak character." +msgstr "" + +#: ../Doc/c-api/unicode.rst:283 +msgid "Return ``1`` or ``0`` depending on whether *ch* is a decimal character." +msgstr "" + +#: ../Doc/c-api/unicode.rst:288 +msgid "Return ``1`` or ``0`` depending on whether *ch* is a digit character." +msgstr "" + +#: ../Doc/c-api/unicode.rst:293 +msgid "Return ``1`` or ``0`` depending on whether *ch* is a numeric character." +msgstr "" + +#: ../Doc/c-api/unicode.rst:298 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is an alphabetic character." +msgstr "" + +#: ../Doc/c-api/unicode.rst:303 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is an alphanumeric character." +msgstr "" + +#: ../Doc/c-api/unicode.rst:308 +msgid "" +"Return ``1`` or ``0`` depending on whether *ch* is a printable character. " +"Nonprintable characters are those characters defined in the Unicode " +"character database as \"Other\" or \"Separator\", excepting the ASCII space " +"(0x20) which is considered printable. (Note that printable characters in " +"this context are those which should not be escaped when :func:`repr` is " +"invoked on a string. It has no bearing on the handling of strings written " +"to :data:`sys.stdout` or :data:`sys.stderr`.)" +msgstr "" + +#: ../Doc/c-api/unicode.rst:317 +msgid "These APIs can be used for fast direct character conversions:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:322 +msgid "Return the character *ch* converted to lower case." +msgstr "" + +#: ../Doc/c-api/unicode.rst:324 ../Doc/c-api/unicode.rst:332 +#: ../Doc/c-api/unicode.rst:340 +msgid "This function uses simple case mappings." +msgstr "" + +#: ../Doc/c-api/unicode.rst:330 +msgid "Return the character *ch* converted to upper case." +msgstr "" + +#: ../Doc/c-api/unicode.rst:338 +msgid "Return the character *ch* converted to title case." +msgstr "" + +#: ../Doc/c-api/unicode.rst:346 +msgid "" +"Return the character *ch* converted to a decimal positive integer. Return " +"``-1`` if this is not possible. This macro does not raise exceptions." +msgstr "" + +#: ../Doc/c-api/unicode.rst:352 +msgid "" +"Return the character *ch* converted to a single digit integer. Return ``-1`` " +"if this is not possible. This macro does not raise exceptions." +msgstr "" + +#: ../Doc/c-api/unicode.rst:358 +msgid "" +"Return the character *ch* converted to a double. Return ``-1.0`` if this is " +"not possible. This macro does not raise exceptions." +msgstr "" + +#: ../Doc/c-api/unicode.rst:362 +msgid "These APIs can be used to work with surrogates:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:366 +msgid "Check if *ch* is a surrogate (``0xD800 <= ch <= 0xDFFF``)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:370 +msgid "Check if *ch* is a high surrogate (``0xD800 <= ch <= 0xDBFF``)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:374 +msgid "Check if *ch* is a low surrogate (``0xDC00 <= ch <= 0xDFFF``)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:378 +msgid "" +"Join two surrogate characters and return a single Py_UCS4 value. *high* and " +"*low* are respectively the leading and trailing surrogates in a surrogate " +"pair." +msgstr "" + +#: ../Doc/c-api/unicode.rst:384 +msgid "Creating and accessing Unicode strings" +msgstr "" + +#: ../Doc/c-api/unicode.rst:386 +msgid "" +"To create Unicode objects and access their basic sequence properties, use " +"these APIs:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:391 +msgid "" +"Create a new Unicode object. *maxchar* should be the true maximum code " +"point to be placed in the string. As an approximation, it can be rounded up " +"to the nearest value in the sequence 127, 255, 65535, 1114111." +msgstr "" + +#: ../Doc/c-api/unicode.rst:395 +msgid "" +"This is the recommended way to allocate a new Unicode object. Objects " +"created using this function are not resizable." +msgstr "" + +#: ../Doc/c-api/unicode.rst:404 +msgid "" +"Create a new Unicode object with the given *kind* (possible values are :c:" +"macro:`PyUnicode_1BYTE_KIND` etc., as returned by :c:func:" +"`PyUnicode_KIND`). The *buffer* must point to an array of *size* units of " +"1, 2 or 4 bytes per character, as given by the kind." +msgstr "" + +#: ../Doc/c-api/unicode.rst:414 +msgid "" +"Create a Unicode object from the char buffer *u*. The bytes will be " +"interpreted as being UTF-8 encoded. The buffer is copied into the new " +"object. If the buffer is not *NULL*, the return value might be a shared " +"object, i.e. modification of the data is not allowed." +msgstr "" + +#: ../Doc/c-api/unicode.rst:419 +msgid "" +"If *u* is *NULL*, this function behaves like :c:func:`PyUnicode_FromUnicode` " +"with the buffer set to *NULL*. This usage is deprecated in favor of :c:func:" +"`PyUnicode_New`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:426 +msgid "" +"Create a Unicode object from a UTF-8 encoded null-terminated char buffer *u*." +msgstr "" + +#: ../Doc/c-api/unicode.rst:432 +msgid "" +"Take a C :c:func:`printf`\\ -style *format* string and a variable number of " +"arguments, calculate the size of the resulting Python Unicode string and " +"return a string with the values formatted into it. The variable arguments " +"must be C types and must correspond exactly to the format characters in the " +"*format* ASCII-encoded string. The following format characters are allowed:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:447 +msgid "Format Characters" +msgstr "Caractères de format" + +#: ../Doc/c-api/unicode.rst:447 +msgid "Type" +msgstr "Type" + +#: ../Doc/c-api/unicode.rst:447 +msgid "Comment" +msgstr "" + +#: ../Doc/c-api/unicode.rst:449 +msgid ":attr:`%%`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:449 +msgid "*n/a*" +msgstr "" + +#: ../Doc/c-api/unicode.rst:449 +msgid "The literal % character." +msgstr "" + +#: ../Doc/c-api/unicode.rst:451 +msgid ":attr:`%c`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:451 ../Doc/c-api/unicode.rst:454 +#: ../Doc/c-api/unicode.rst:487 ../Doc/c-api/unicode.rst:490 +msgid "int" +msgstr "*int*" + +#: ../Doc/c-api/unicode.rst:451 +msgid "A single character, represented as a C int." +msgstr "" + +#: ../Doc/c-api/unicode.rst:454 +msgid ":attr:`%d`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:454 +msgid "Equivalent to ``printf(\"%d\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/unicode.rst:457 +msgid ":attr:`%u`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:457 +msgid "unsigned int" +msgstr "``unsigned int``" + +#: ../Doc/c-api/unicode.rst:457 +msgid "Equivalent to ``printf(\"%u\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/unicode.rst:460 +msgid ":attr:`%ld`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:460 ../Doc/c-api/unicode.rst:463 +msgid "long" +msgstr "" + +#: ../Doc/c-api/unicode.rst:460 +msgid "Equivalent to ``printf(\"%ld\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/unicode.rst:463 +msgid ":attr:`%li`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:463 +msgid "Equivalent to ``printf(\"%li\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/unicode.rst:466 +msgid ":attr:`%lu`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:466 +msgid "unsigned long" +msgstr "``unsigned long``" + +#: ../Doc/c-api/unicode.rst:466 +msgid "Equivalent to ``printf(\"%lu\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/unicode.rst:469 +msgid ":attr:`%lld`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:469 ../Doc/c-api/unicode.rst:472 +msgid "long long" +msgstr "" + +#: ../Doc/c-api/unicode.rst:469 +msgid "Equivalent to ``printf(\"%lld\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/unicode.rst:472 +msgid ":attr:`%lli`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:472 +msgid "Equivalent to ``printf(\"%lli\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/unicode.rst:475 +msgid ":attr:`%llu`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:475 +msgid "unsigned long long" +msgstr "``unsigned long long``" + +#: ../Doc/c-api/unicode.rst:475 +msgid "Equivalent to ``printf(\"%llu\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/unicode.rst:478 +msgid ":attr:`%zd`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:478 ../Doc/c-api/unicode.rst:481 +msgid "Py_ssize_t" +msgstr "" + +#: ../Doc/c-api/unicode.rst:478 +msgid "Equivalent to ``printf(\"%zd\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/unicode.rst:481 +msgid ":attr:`%zi`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:481 +msgid "Equivalent to ``printf(\"%zi\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/unicode.rst:484 +msgid ":attr:`%zu`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:484 +msgid "size_t" +msgstr "" + +#: ../Doc/c-api/unicode.rst:484 +msgid "Equivalent to ``printf(\"%zu\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/unicode.rst:487 +msgid ":attr:`%i`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:487 +msgid "Equivalent to ``printf(\"%i\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/unicode.rst:490 +msgid ":attr:`%x`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:490 +msgid "Equivalent to ``printf(\"%x\")``. [1]_" +msgstr "" + +#: ../Doc/c-api/unicode.rst:493 +msgid ":attr:`%s`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:493 +msgid "const char\\*" +msgstr "" + +#: ../Doc/c-api/unicode.rst:493 +msgid "A null-terminated C character array." +msgstr "" + +#: ../Doc/c-api/unicode.rst:496 +msgid ":attr:`%p`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:496 +msgid "const void\\*" +msgstr "" + +#: ../Doc/c-api/unicode.rst:496 +msgid "" +"The hex representation of a C pointer. Mostly equivalent to ``printf(\"%p" +"\")`` except that it is guaranteed to start with the literal ``0x`` " +"regardless of what the platform's ``printf`` yields." +msgstr "" + +#: ../Doc/c-api/unicode.rst:504 +msgid ":attr:`%A`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:504 ../Doc/c-api/unicode.rst:507 +#: ../Doc/c-api/unicode.rst:516 ../Doc/c-api/unicode.rst:519 +msgid "PyObject\\*" +msgstr "PyObject\\*" + +#: ../Doc/c-api/unicode.rst:504 +msgid "The result of calling :func:`ascii`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:507 +msgid ":attr:`%U`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:507 +#, fuzzy +msgid "A Unicode object." +msgstr "Un objet Unicode." + +#: ../Doc/c-api/unicode.rst:509 +msgid ":attr:`%V`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:509 +msgid "PyObject\\*, const char\\*" +msgstr "" + +#: ../Doc/c-api/unicode.rst:509 +msgid "" +"A Unicode object (which may be *NULL*) and a null-terminated C character " +"array as a second parameter (which will be used, if the first parameter is " +"*NULL*)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:516 +msgid ":attr:`%S`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:516 +msgid "The result of calling :c:func:`PyObject_Str`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:519 +msgid ":attr:`%R`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:519 +msgid "The result of calling :c:func:`PyObject_Repr`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:523 +msgid "" +"An unrecognized format character causes all the rest of the format string to " +"be copied as-is to the result string, and any extra arguments discarded." +msgstr "" + +#: ../Doc/c-api/unicode.rst:527 +msgid "" +"The width formatter unit is number of characters rather than bytes. The " +"precision formatter unit is number of bytes for ``\"%s\"`` and ``\"%V\"`` " +"(if the ``PyObject*`` argument is NULL), and a number of characters for ``" +"\"%A\"``, ``\"%U\"``, ``\"%S\"``, ``\"%R\"`` and ``\"%V\"`` (if the " +"``PyObject*`` argument is not NULL)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:533 +msgid "" +"For integer specifiers (d, u, ld, li, lu, lld, lli, llu, zd, zi, zu, i, x): " +"the 0-conversion flag has effect even when a precision is given." +msgstr "" + +#: ../Doc/c-api/unicode.rst:536 +msgid "Support for ``\"%lld\"`` and ``\"%llu\"`` added." +msgstr "" + +#: ../Doc/c-api/unicode.rst:539 +msgid "Support for ``\"%li\"``, ``\"%lli\"`` and ``\"%zi\"`` added." +msgstr "" + +#: ../Doc/c-api/unicode.rst:542 +msgid "" +"Support width and precision formatter for ``\"%s\"``, ``\"%A\"``, ``\"%U" +"\"``, ``\"%V\"``, ``\"%S\"``, ``\"%R\"`` added." +msgstr "" + +#: ../Doc/c-api/unicode.rst:549 +msgid "" +"Identical to :c:func:`PyUnicode_FromFormat` except that it takes exactly two " +"arguments." +msgstr "" + +#: ../Doc/c-api/unicode.rst:556 +msgid "Decode an encoded object *obj* to a Unicode object." +msgstr "" + +#: ../Doc/c-api/unicode.rst:558 +msgid "" +":class:`bytes`, :class:`bytearray` and other :term:`bytes-like objects " +"` are decoded according to the given *encoding* and using " +"the error handling defined by *errors*. Both can be *NULL* to have the " +"interface use the default values (see :ref:`builtincodecs` for details)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:564 +msgid "" +"All other objects, including Unicode objects, cause a :exc:`TypeError` to be " +"set." +msgstr "" + +#: ../Doc/c-api/unicode.rst:567 +msgid "" +"The API returns *NULL* if there was an error. The caller is responsible for " +"decref'ing the returned objects." +msgstr "" + +#: ../Doc/c-api/unicode.rst:573 +msgid "Return the length of the Unicode object, in code points." +msgstr "" + +#: ../Doc/c-api/unicode.rst:584 +msgid "" +"Copy characters from one Unicode object into another. This function " +"performs character conversion when necessary and falls back to :c:func:" +"`memcpy` if possible. Returns ``-1`` and sets an exception on error, " +"otherwise returns the number of copied characters." +msgstr "" + +#: ../Doc/c-api/unicode.rst:595 +msgid "" +"Fill a string with a character: write *fill_char* into ``unicode[start:start" +"+length]``." +msgstr "" + +#: ../Doc/c-api/unicode.rst:598 +msgid "" +"Fail if *fill_char* is bigger than the string maximum character, or if the " +"string has more than 1 reference." +msgstr "" + +#: ../Doc/c-api/unicode.rst:601 +msgid "" +"Return the number of written character, or return ``-1`` and raise an " +"exception on error." +msgstr "" + +#: ../Doc/c-api/unicode.rst:610 +msgid "" +"Write a character to a string. The string must have been created through :c:" +"func:`PyUnicode_New`. Since Unicode strings are supposed to be immutable, " +"the string must not be shared, or have been hashed yet." +msgstr "" + +#: ../Doc/c-api/unicode.rst:614 +msgid "" +"This function checks that *unicode* is a Unicode object, that the index is " +"not out of bounds, and that the object can be modified safely (i.e. that it " +"its reference count is one)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:623 +msgid "" +"Read a character from a string. This function checks that *unicode* is a " +"Unicode object and the index is not out of bounds, in contrast to the macro " +"version :c:func:`PyUnicode_READ_CHAR`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:633 +msgid "" +"Return a substring of *str*, from character index *start* (included) to " +"character index *end* (excluded). Negative indices are not supported." +msgstr "" + +#: ../Doc/c-api/unicode.rst:642 +msgid "" +"Copy the string *u* into a UCS4 buffer, including a null character, if " +"*copy_null* is set. Returns *NULL* and sets an exception on error (in " +"particular, a :exc:`SystemError` if *buflen* is smaller than the length of " +"*u*). *buffer* is returned on success." +msgstr "" + +#: ../Doc/c-api/unicode.rst:652 +msgid "" +"Copy the string *u* into a new UCS4 buffer that is allocated using :c:func:" +"`PyMem_Malloc`. If this fails, *NULL* is returned with a :exc:`MemoryError` " +"set. The returned buffer always has an extra null code point appended." +msgstr "" + +#: ../Doc/c-api/unicode.rst:661 +msgid "Deprecated Py_UNICODE APIs" +msgstr "" + +#: ../Doc/c-api/unicode.rst:665 +msgid "" +"These API functions are deprecated with the implementation of :pep:`393`. " +"Extension modules can continue using them, as they will not be removed in " +"Python 3.x, but need to be aware that their use can now cause performance " +"and memory hits." +msgstr "" + +#: ../Doc/c-api/unicode.rst:672 +msgid "" +"Create a Unicode object from the Py_UNICODE buffer *u* of the given size. " +"*u* may be *NULL* which causes the contents to be undefined. It is the " +"user's responsibility to fill in the needed data. The buffer is copied into " +"the new object." +msgstr "" + +#: ../Doc/c-api/unicode.rst:677 +msgid "" +"If the buffer is not *NULL*, the return value might be a shared object. " +"Therefore, modification of the resulting Unicode object is only allowed when " +"*u* is *NULL*." +msgstr "" + +#: ../Doc/c-api/unicode.rst:681 +msgid "" +"If the buffer is *NULL*, :c:func:`PyUnicode_READY` must be called once the " +"string content has been filled before using any of the access macros such " +"as :c:func:`PyUnicode_KIND`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:685 +msgid "" +"Please migrate to using :c:func:`PyUnicode_FromKindAndData`, :c:func:" +"`PyUnicode_FromWideChar` or :c:func:`PyUnicode_New`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:691 +msgid "" +"Return a read-only pointer to the Unicode object's internal :c:type:" +"`Py_UNICODE` buffer, or *NULL* on error. This will create the :c:type:" +"`Py_UNICODE*` representation of the object if it is not yet available. The " +"buffer is always terminated with an extra null code point. Note that the " +"resulting :c:type:`Py_UNICODE` string may also contain embedded null code " +"points, which would cause the string to be truncated when used in most C " +"functions." +msgstr "" + +#: ../Doc/c-api/unicode.rst:699 +msgid "" +"Please migrate to using :c:func:`PyUnicode_AsUCS4`, :c:func:" +"`PyUnicode_AsWideChar`, :c:func:`PyUnicode_ReadChar` or similar new APIs." +msgstr "" + +#: ../Doc/c-api/unicode.rst:706 +msgid "" +"Create a Unicode object by replacing all decimal digits in :c:type:" +"`Py_UNICODE` buffer of the given *size* by ASCII digits 0--9 according to " +"their decimal value. Return *NULL* if an exception occurs." +msgstr "" + +#: ../Doc/c-api/unicode.rst:713 +msgid "" +"Like :c:func:`PyUnicode_AsUnicode`, but also saves the :c:func:`Py_UNICODE` " +"array length (excluding the extra null terminator) in *size*. Note that the " +"resulting :c:type:`Py_UNICODE*` string may contain embedded null code " +"points, which would cause the string to be truncated when used in most C " +"functions." +msgstr "" + +#: ../Doc/c-api/unicode.rst:724 +msgid "" +"Create a copy of a Unicode string ending with a null code point. Return " +"*NULL* and raise a :exc:`MemoryError` exception on memory allocation " +"failure, otherwise return a new allocated buffer (use :c:func:`PyMem_Free` " +"to free the buffer). Note that the resulting :c:type:`Py_UNICODE*` string " +"may contain embedded null code points, which would cause the string to be " +"truncated when used in most C functions." +msgstr "" + +#: ../Doc/c-api/unicode.rst:733 +msgid "" +"Please migrate to using :c:func:`PyUnicode_AsUCS4Copy` or similar new APIs." +msgstr "" + +#: ../Doc/c-api/unicode.rst:738 +msgid "" +"Return the size of the deprecated :c:type:`Py_UNICODE` representation, in " +"code units (this includes surrogate pairs as 2 units)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:741 +msgid "Please migrate to using :c:func:`PyUnicode_GetLength`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:746 +msgid "" +"Copy an instance of a Unicode subtype to a new true Unicode object if " +"necessary. If *obj* is already a true Unicode object (not a subtype), return " +"the reference with incremented refcount." +msgstr "" + +#: ../Doc/c-api/unicode.rst:750 +msgid "" +"Objects other than Unicode or its subtypes will cause a :exc:`TypeError`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:754 +msgid "Locale Encoding" +msgstr "" + +#: ../Doc/c-api/unicode.rst:756 +msgid "" +"The current locale encoding can be used to decode text from the operating " +"system." +msgstr "" + +#: ../Doc/c-api/unicode.rst:763 +msgid "" +"Decode a string from UTF-8 on Android, or from the current locale encoding " +"on other platforms. The supported error handlers are ``\"strict\"`` and ``" +"\"surrogateescape\"`` (:pep:`383`). The decoder uses ``\"strict\"`` error " +"handler if *errors* is ``NULL``. *str* must end with a null character but " +"cannot contain embedded null characters." +msgstr "" + +#: ../Doc/c-api/unicode.rst:770 +msgid "" +"Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` to decode a string from :c:" +"data:`Py_FileSystemDefaultEncoding` (the locale encoding read at Python " +"startup)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:774 ../Doc/c-api/unicode.rst:810 +msgid "This function ignores the Python UTF-8 mode." +msgstr "" + +#: ../Doc/c-api/unicode.rst:778 ../Doc/c-api/unicode.rst:882 +msgid "The :c:func:`Py_DecodeLocale` function." +msgstr "" + +#: ../Doc/c-api/unicode.rst:782 +msgid "" +"The function now also uses the current locale encoding for the " +"``surrogateescape`` error handler, except on Android. Previously, :c:func:" +"`Py_DecodeLocale` was used for the ``surrogateescape``, and the current " +"locale encoding was used for ``strict``." +msgstr "" + +#: ../Doc/c-api/unicode.rst:791 +msgid "" +"Similar to :c:func:`PyUnicode_DecodeLocaleAndSize`, but compute the string " +"length using :c:func:`strlen`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:799 +msgid "" +"Encode a Unicode object to UTF-8 on Android, or to the current locale " +"encoding on other platforms. The supported error handlers are ``\"strict\"`` " +"and ``\"surrogateescape\"`` (:pep:`383`). The encoder uses ``\"strict\"`` " +"error handler if *errors* is ``NULL``. Return a :class:`bytes` object. " +"*unicode* cannot contain embedded null characters." +msgstr "" + +#: ../Doc/c-api/unicode.rst:806 +msgid "" +"Use :c:func:`PyUnicode_EncodeFSDefault` to encode a string to :c:data:" +"`Py_FileSystemDefaultEncoding` (the locale encoding read at Python startup)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:814 ../Doc/c-api/unicode.rst:918 +msgid "The :c:func:`Py_EncodeLocale` function." +msgstr "" + +#: ../Doc/c-api/unicode.rst:818 +msgid "" +"The function now also uses the current locale encoding for the " +"``surrogateescape`` error handler, except on Android. Previously, :c:func:" +"`Py_EncodeLocale` was used for the ``surrogateescape``, and the current " +"locale encoding was used for ``strict``." +msgstr "" + +#: ../Doc/c-api/unicode.rst:827 +msgid "File System Encoding" +msgstr "" + +#: ../Doc/c-api/unicode.rst:829 +msgid "" +"To encode and decode file names and other environment strings, :c:data:" +"`Py_FileSystemDefaultEncoding` should be used as the encoding, and :c:data:" +"`Py_FileSystemDefaultEncodeErrors` should be used as the error handler (:pep:" +"`383` and :pep:`529`). To encode file names to :class:`bytes` during " +"argument parsing, the ``\"O&\"`` converter should be used, passing :c:func:" +"`PyUnicode_FSConverter` as the conversion function:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:838 +msgid "" +"ParseTuple converter: encode :class:`str` objects -- obtained directly or " +"through the :class:`os.PathLike` interface -- to :class:`bytes` using :c:" +"func:`PyUnicode_EncodeFSDefault`; :class:`bytes` objects are output as-is. " +"*result* must be a :c:type:`PyBytesObject*` which must be released when it " +"is no longer used." +msgstr "" + +#: ../Doc/c-api/unicode.rst:846 ../Doc/c-api/unicode.rst:863 +msgid "Accepts a :term:`path-like object`." +msgstr "Accepte un :term:`path-like object`." + +#: ../Doc/c-api/unicode.rst:849 +msgid "" +"To decode file names to :class:`str` during argument parsing, the ``\"O&\"`` " +"converter should be used, passing :c:func:`PyUnicode_FSDecoder` as the " +"conversion function:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:855 +msgid "" +"ParseTuple converter: decode :class:`bytes` objects -- obtained either " +"directly or indirectly through the :class:`os.PathLike` interface -- to :" +"class:`str` using :c:func:`PyUnicode_DecodeFSDefaultAndSize`; :class:`str` " +"objects are output as-is. *result* must be a :c:type:`PyUnicodeObject*` " +"which must be released when it is no longer used." +msgstr "" + +#: ../Doc/c-api/unicode.rst:869 +msgid "" +"Decode a string using :c:data:`Py_FileSystemDefaultEncoding` and the :c:data:" +"`Py_FileSystemDefaultEncodeErrors` error handler." +msgstr "" + +#: ../Doc/c-api/unicode.rst:872 ../Doc/c-api/unicode.rst:893 +#: ../Doc/c-api/unicode.rst:909 +msgid "" +"If :c:data:`Py_FileSystemDefaultEncoding` is not set, fall back to the " +"locale encoding." +msgstr "" + +#: ../Doc/c-api/unicode.rst:875 +msgid "" +":c:data:`Py_FileSystemDefaultEncoding` is initialized at startup from the " +"locale encoding and cannot be modified later. If you need to decode a string " +"from the current locale encoding, use :c:func:" +"`PyUnicode_DecodeLocaleAndSize`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:884 ../Doc/c-api/unicode.rst:898 +#: ../Doc/c-api/unicode.rst:922 +msgid "Use :c:data:`Py_FileSystemDefaultEncodeErrors` error handler." +msgstr "" + +#: ../Doc/c-api/unicode.rst:890 +msgid "" +"Decode a null-terminated string using :c:data:`Py_FileSystemDefaultEncoding` " +"and the :c:data:`Py_FileSystemDefaultEncodeErrors` error handler." +msgstr "" + +#: ../Doc/c-api/unicode.rst:896 +msgid "" +"Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` if you know the string length." +msgstr "" + +#: ../Doc/c-api/unicode.rst:904 +msgid "" +"Encode a Unicode object to :c:data:`Py_FileSystemDefaultEncoding` with the :" +"c:data:`Py_FileSystemDefaultEncodeErrors` error handler, and return :class:" +"`bytes`. Note that the resulting :class:`bytes` object may contain null " +"bytes." +msgstr "" + +#: ../Doc/c-api/unicode.rst:912 +msgid "" +":c:data:`Py_FileSystemDefaultEncoding` is initialized at startup from the " +"locale encoding and cannot be modified later. If you need to encode a string " +"to the current locale encoding, use :c:func:`PyUnicode_EncodeLocale`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:926 +msgid "wchar_t Support" +msgstr "" + +#: ../Doc/c-api/unicode.rst:928 +msgid ":c:type:`wchar_t` support for platforms which support it:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:932 +msgid "" +"Create a Unicode object from the :c:type:`wchar_t` buffer *w* of the given " +"*size*. Passing ``-1`` as the *size* indicates that the function must itself " +"compute the length, using wcslen. Return *NULL* on failure." +msgstr "" + +#: ../Doc/c-api/unicode.rst:940 +msgid "" +"Copy the Unicode object contents into the :c:type:`wchar_t` buffer *w*. At " +"most *size* :c:type:`wchar_t` characters are copied (excluding a possibly " +"trailing null termination character). Return the number of :c:type:" +"`wchar_t` characters copied or ``-1`` in case of an error. Note that the " +"resulting :c:type:`wchar_t*` string may or may not be null-terminated. It " +"is the responsibility of the caller to make sure that the :c:type:`wchar_t*` " +"string is null-terminated in case this is required by the application. Also, " +"note that the :c:type:`wchar_t*` string might contain null characters, which " +"would cause the string to be truncated when used with most C functions." +msgstr "" + +#: ../Doc/c-api/unicode.rst:953 +msgid "" +"Convert the Unicode object to a wide character string. The output string " +"always ends with a null character. If *size* is not *NULL*, write the number " +"of wide characters (excluding the trailing null termination character) into *" +"\\*size*. Note that the resulting :c:type:`wchar_t` string might contain " +"null characters, which would cause the string to be truncated when used with " +"most C functions. If *size* is *NULL* and the :c:type:`wchar_t*` string " +"contains null characters a :exc:`ValueError` is raised." +msgstr "" + +#: ../Doc/c-api/unicode.rst:961 +msgid "" +"Returns a buffer allocated by :c:func:`PyMem_Alloc` (use :c:func:" +"`PyMem_Free` to free it) on success. On error, returns *NULL* and *\\*size* " +"is undefined. Raises a :exc:`MemoryError` if memory allocation is failed." +msgstr "" + +#: ../Doc/c-api/unicode.rst:968 +msgid "" +"Raises a :exc:`ValueError` if *size* is *NULL* and the :c:type:`wchar_t*` " +"string contains null characters." +msgstr "" + +#: ../Doc/c-api/unicode.rst:976 +msgid "Built-in Codecs" +msgstr "" + +#: ../Doc/c-api/unicode.rst:978 +msgid "" +"Python provides a set of built-in codecs which are written in C for speed. " +"All of these codecs are directly usable via the following functions." +msgstr "" + +#: ../Doc/c-api/unicode.rst:981 +msgid "" +"Many of the following APIs take two arguments encoding and errors, and they " +"have the same semantics as the ones of the built-in :func:`str` string " +"object constructor." +msgstr "" + +#: ../Doc/c-api/unicode.rst:985 +msgid "" +"Setting encoding to *NULL* causes the default encoding to be used which is " +"ASCII. The file system calls should use :c:func:`PyUnicode_FSConverter` for " +"encoding file names. This uses the variable :c:data:" +"`Py_FileSystemDefaultEncoding` internally. This variable should be treated " +"as read-only: on some systems, it will be a pointer to a static string, on " +"others, it will change at run-time (such as when the application invokes " +"setlocale)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:993 +msgid "" +"Error handling is set by errors which may also be set to *NULL* meaning to " +"use the default handling defined for the codec. Default error handling for " +"all built-in codecs is \"strict\" (:exc:`ValueError` is raised)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:997 +msgid "" +"The codecs all use a similar interface. Only deviation from the following " +"generic ones are documented for simplicity." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1002 +msgid "Generic Codecs" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1004 +msgid "These are the generic codec APIs:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1010 +msgid "" +"Create a Unicode object by decoding *size* bytes of the encoded string *s*. " +"*encoding* and *errors* have the same meaning as the parameters of the same " +"name in the :func:`str` built-in function. The codec to be used is looked " +"up using the Python codec registry. Return *NULL* if an exception was " +"raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1020 +msgid "" +"Encode a Unicode object and return the result as Python bytes object. " +"*encoding* and *errors* have the same meaning as the parameters of the same " +"name in the Unicode :meth:`~str.encode` method. The codec to be used is " +"looked up using the Python codec registry. Return *NULL* if an exception was " +"raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1030 +msgid "" +"Encode the :c:type:`Py_UNICODE` buffer *s* of the given *size* and return a " +"Python bytes object. *encoding* and *errors* have the same meaning as the " +"parameters of the same name in the Unicode :meth:`~str.encode` method. The " +"codec to be used is looked up using the Python codec registry. Return " +"*NULL* if an exception was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1038 ../Doc/c-api/unicode.rst:1295 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`PyUnicode_AsEncodedString`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1042 +msgid "UTF-8 Codecs" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1044 +msgid "These are the UTF-8 codec APIs:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1049 +msgid "" +"Create a Unicode object by decoding *size* bytes of the UTF-8 encoded string " +"*s*. Return *NULL* if an exception was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1056 +msgid "" +"If *consumed* is *NULL*, behave like :c:func:`PyUnicode_DecodeUTF8`. If " +"*consumed* is not *NULL*, trailing incomplete UTF-8 byte sequences will not " +"be treated as an error. Those bytes will not be decoded and the number of " +"bytes that have been decoded will be stored in *consumed*." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1064 +msgid "" +"Encode a Unicode object using UTF-8 and return the result as Python bytes " +"object. Error handling is \"strict\". Return *NULL* if an exception was " +"raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1071 +msgid "" +"Return a pointer to the UTF-8 encoding of the Unicode object, and store the " +"size of the encoded representation (in bytes) in *size*. The *size* " +"argument can be *NULL*; in this case no size will be stored. The returned " +"buffer always has an extra null byte appended (not included in *size*), " +"regardless of whether there are any other null code points." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1077 +msgid "" +"In the case of an error, *NULL* is returned with an exception set and no " +"*size* is stored." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1080 +msgid "" +"This caches the UTF-8 representation of the string in the Unicode object, " +"and subsequent calls will return a pointer to the same buffer. The caller " +"is not responsible for deallocating the buffer." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1086 ../Doc/c-api/unicode.rst:1096 +msgid "The return type is now ``const char *`` rather of ``char *``." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1092 +msgid "As :c:func:`PyUnicode_AsUTF8AndSize`, but does not store the size." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1102 +msgid "" +"Encode the :c:type:`Py_UNICODE` buffer *s* of the given *size* using UTF-8 " +"and return a Python bytes object. Return *NULL* if an exception was raised " +"by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1109 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`PyUnicode_AsUTF8String`, :c:func:`PyUnicode_AsUTF8AndSize` or :c:func:" +"`PyUnicode_AsEncodedString`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1113 +msgid "UTF-32 Codecs" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1115 +msgid "These are the UTF-32 codec APIs:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1121 +msgid "" +"Decode *size* bytes from a UTF-32 encoded buffer string and return the " +"corresponding Unicode object. *errors* (if non-*NULL*) defines the error " +"handling. It defaults to \"strict\"." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1125 ../Doc/c-api/unicode.rst:1198 +msgid "" +"If *byteorder* is non-*NULL*, the decoder starts decoding using the given " +"byte order::" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1132 +msgid "" +"If ``*byteorder`` is zero, and the first four bytes of the input data are a " +"byte order mark (BOM), the decoder switches to this byte order and the BOM " +"is not copied into the resulting Unicode string. If ``*byteorder`` is " +"``-1`` or ``1``, any byte order mark is copied to the output." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1137 ../Doc/c-api/unicode.rst:1211 +msgid "" +"After completion, *\\*byteorder* is set to the current byte order at the end " +"of input data." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1140 ../Doc/c-api/unicode.rst:1214 +msgid "If *byteorder* is *NULL*, the codec starts in native order mode." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1142 ../Doc/c-api/unicode.rst:1178 +#: ../Doc/c-api/unicode.rst:1216 ../Doc/c-api/unicode.rst:1253 +msgid "Return *NULL* if an exception was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1148 +msgid "" +"If *consumed* is *NULL*, behave like :c:func:`PyUnicode_DecodeUTF32`. If " +"*consumed* is not *NULL*, :c:func:`PyUnicode_DecodeUTF32Stateful` will not " +"treat trailing incomplete UTF-32 byte sequences (such as a number of bytes " +"not divisible by four) as an error. Those bytes will not be decoded and the " +"number of bytes that have been decoded will be stored in *consumed*." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1157 +msgid "" +"Return a Python byte string using the UTF-32 encoding in native byte order. " +"The string always starts with a BOM mark. Error handling is \"strict\". " +"Return *NULL* if an exception was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1165 +msgid "" +"Return a Python bytes object holding the UTF-32 encoded value of the Unicode " +"data in *s*. Output is written according to the following byte order::" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1172 ../Doc/c-api/unicode.rst:1246 +msgid "" +"If byteorder is ``0``, the output string will always start with the Unicode " +"BOM mark (U+FEFF). In the other two modes, no BOM mark is prepended." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1175 +msgid "" +"If *Py_UNICODE_WIDE* is not defined, surrogate pairs will be output as a " +"single code point." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1182 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`PyUnicode_AsUTF32String` or :c:func:`PyUnicode_AsEncodedString`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1186 +msgid "UTF-16 Codecs" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1188 +msgid "These are the UTF-16 codec APIs:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1194 +msgid "" +"Decode *size* bytes from a UTF-16 encoded buffer string and return the " +"corresponding Unicode object. *errors* (if non-*NULL*) defines the error " +"handling. It defaults to \"strict\"." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1205 +msgid "" +"If ``*byteorder`` is zero, and the first two bytes of the input data are a " +"byte order mark (BOM), the decoder switches to this byte order and the BOM " +"is not copied into the resulting Unicode string. If ``*byteorder`` is " +"``-1`` or ``1``, any byte order mark is copied to the output (where it will " +"result in either a ``\\ufeff`` or a ``\\ufffe`` character)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1222 +msgid "" +"If *consumed* is *NULL*, behave like :c:func:`PyUnicode_DecodeUTF16`. If " +"*consumed* is not *NULL*, :c:func:`PyUnicode_DecodeUTF16Stateful` will not " +"treat trailing incomplete UTF-16 byte sequences (such as an odd number of " +"bytes or a split surrogate pair) as an error. Those bytes will not be " +"decoded and the number of bytes that have been decoded will be stored in " +"*consumed*." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1231 +msgid "" +"Return a Python byte string using the UTF-16 encoding in native byte order. " +"The string always starts with a BOM mark. Error handling is \"strict\". " +"Return *NULL* if an exception was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1239 +msgid "" +"Return a Python bytes object holding the UTF-16 encoded value of the Unicode " +"data in *s*. Output is written according to the following byte order::" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1249 +msgid "" +"If *Py_UNICODE_WIDE* is defined, a single :c:type:`Py_UNICODE` value may get " +"represented as a surrogate pair. If it is not defined, each :c:type:" +"`Py_UNICODE` values is interpreted as a UCS-2 character." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1257 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`PyUnicode_AsUTF16String` or :c:func:`PyUnicode_AsEncodedString`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1261 +msgid "UTF-7 Codecs" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1263 +msgid "These are the UTF-7 codec APIs:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1268 +msgid "" +"Create a Unicode object by decoding *size* bytes of the UTF-7 encoded string " +"*s*. Return *NULL* if an exception was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1275 +msgid "" +"If *consumed* is *NULL*, behave like :c:func:`PyUnicode_DecodeUTF7`. If " +"*consumed* is not *NULL*, trailing incomplete UTF-7 base-64 sections will " +"not be treated as an error. Those bytes will not be decoded and the number " +"of bytes that have been decoded will be stored in *consumed*." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1284 +msgid "" +"Encode the :c:type:`Py_UNICODE` buffer of the given size using UTF-7 and " +"return a Python bytes object. Return *NULL* if an exception was raised by " +"the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1288 +msgid "" +"If *base64SetO* is nonzero, \"Set O\" (punctuation that has no otherwise " +"special meaning) will be encoded in base-64. If *base64WhiteSpace* is " +"nonzero, whitespace will be encoded in base-64. Both are set to zero for " +"the Python \"utf-7\" codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1299 +msgid "Unicode-Escape Codecs" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1301 +msgid "These are the \"Unicode Escape\" codec APIs:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1307 +msgid "" +"Create a Unicode object by decoding *size* bytes of the Unicode-Escape " +"encoded string *s*. Return *NULL* if an exception was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1313 +msgid "" +"Encode a Unicode object using Unicode-Escape and return the result as a " +"bytes object. Error handling is \"strict\". Return *NULL* if an exception " +"was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1320 +msgid "" +"Encode the :c:type:`Py_UNICODE` buffer of the given *size* using Unicode-" +"Escape and return a bytes object. Return *NULL* if an exception was raised " +"by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1325 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`PyUnicode_AsUnicodeEscapeString`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1329 +msgid "Raw-Unicode-Escape Codecs" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1331 +msgid "These are the \"Raw Unicode Escape\" codec APIs:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1337 +msgid "" +"Create a Unicode object by decoding *size* bytes of the Raw-Unicode-Escape " +"encoded string *s*. Return *NULL* if an exception was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1343 +msgid "" +"Encode a Unicode object using Raw-Unicode-Escape and return the result as a " +"bytes object. Error handling is \"strict\". Return *NULL* if an exception " +"was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1351 +msgid "" +"Encode the :c:type:`Py_UNICODE` buffer of the given *size* using Raw-Unicode-" +"Escape and return a bytes object. Return *NULL* if an exception was raised " +"by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1357 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`PyUnicode_AsRawUnicodeEscapeString` or :c:func:" +"`PyUnicode_AsEncodedString`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1361 +msgid "Latin-1 Codecs" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1363 +msgid "" +"These are the Latin-1 codec APIs: Latin-1 corresponds to the first 256 " +"Unicode ordinals and only these are accepted by the codecs during encoding." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1369 +msgid "" +"Create a Unicode object by decoding *size* bytes of the Latin-1 encoded " +"string *s*. Return *NULL* if an exception was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1375 +msgid "" +"Encode a Unicode object using Latin-1 and return the result as Python bytes " +"object. Error handling is \"strict\". Return *NULL* if an exception was " +"raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1382 +msgid "" +"Encode the :c:type:`Py_UNICODE` buffer of the given *size* using Latin-1 and " +"return a Python bytes object. Return *NULL* if an exception was raised by " +"the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1389 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`PyUnicode_AsLatin1String` or :c:func:`PyUnicode_AsEncodedString`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1393 +msgid "ASCII Codecs" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1395 +msgid "" +"These are the ASCII codec APIs. Only 7-bit ASCII data is accepted. All " +"other codes generate errors." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1401 +msgid "" +"Create a Unicode object by decoding *size* bytes of the ASCII encoded string " +"*s*. Return *NULL* if an exception was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1407 +msgid "" +"Encode a Unicode object using ASCII and return the result as Python bytes " +"object. Error handling is \"strict\". Return *NULL* if an exception was " +"raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1414 +msgid "" +"Encode the :c:type:`Py_UNICODE` buffer of the given *size* using ASCII and " +"return a Python bytes object. Return *NULL* if an exception was raised by " +"the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1421 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`PyUnicode_AsASCIIString` or :c:func:`PyUnicode_AsEncodedString`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1425 +msgid "Character Map Codecs" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1427 +msgid "" +"This codec is special in that it can be used to implement many different " +"codecs (and this is in fact what was done to obtain most of the standard " +"codecs included in the :mod:`encodings` package). The codec uses mapping to " +"encode and decode characters. The mapping objects provided must support " +"the :meth:`__getitem__` mapping interface; dictionaries and sequences work " +"well." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1433 +msgid "These are the mapping codec APIs:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1438 +msgid "" +"Create a Unicode object by decoding *size* bytes of the encoded string *s* " +"using the given *mapping* object. Return *NULL* if an exception was raised " +"by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1442 +msgid "" +"If *mapping* is *NULL*, Latin-1 decoding will be applied. Else *mapping* " +"must map bytes ordinals (integers in the range from 0 to 255) to Unicode " +"strings, integers (which are then interpreted as Unicode ordinals) or " +"``None``. Unmapped data bytes -- ones which cause a :exc:`LookupError`, as " +"well as ones which get mapped to ``None``, ``0xFFFE`` or ``'\\ufffe'``, are " +"treated as undefined mappings and cause an error." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1453 +msgid "" +"Encode a Unicode object using the given *mapping* object and return the " +"result as a bytes object. Error handling is \"strict\". Return *NULL* if " +"an exception was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1457 +msgid "" +"The *mapping* object must map Unicode ordinal integers to bytes objects, " +"integers in the range from 0 to 255 or ``None``. Unmapped character " +"ordinals (ones which cause a :exc:`LookupError`) as well as mapped to " +"``None`` are treated as \"undefined mapping\" and cause an error." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1466 +msgid "" +"Encode the :c:type:`Py_UNICODE` buffer of the given *size* using the given " +"*mapping* object and return the result as a bytes object. Return *NULL* if " +"an exception was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1473 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`PyUnicode_AsCharmapString` or :c:func:`PyUnicode_AsEncodedString`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1476 +msgid "The following codec API is special in that maps Unicode to Unicode." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1481 +msgid "" +"Translate a Unicode object using the given *mapping* object and return the " +"resulting Unicode object. Return *NULL* if an exception was raised by the " +"codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1485 +msgid "" +"The *mapping* object must map Unicode ordinal integers to Unicode strings, " +"integers (which are then interpreted as Unicode ordinals) or ``None`` " +"(causing deletion of the character). Unmapped character ordinals (ones " +"which cause a :exc:`LookupError`) are left untouched and are copied as-is." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1494 +msgid "" +"Translate a :c:type:`Py_UNICODE` buffer of the given *size* by applying a " +"character *mapping* table to it and return the resulting Unicode object. " +"Return *NULL* when an exception was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1501 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`PyUnicode_Translate`. or :ref:`generic codec based API `" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1505 +msgid "MBCS codecs for Windows" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1507 +msgid "" +"These are the MBCS codec APIs. They are currently only available on Windows " +"and use the Win32 MBCS converters to implement the conversions. Note that " +"MBCS (or DBCS) is a class of encodings, not just one. The target encoding " +"is defined by the user settings on the machine running the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1514 +msgid "" +"Create a Unicode object by decoding *size* bytes of the MBCS encoded string " +"*s*. Return *NULL* if an exception was raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1521 +msgid "" +"If *consumed* is *NULL*, behave like :c:func:`PyUnicode_DecodeMBCS`. If " +"*consumed* is not *NULL*, :c:func:`PyUnicode_DecodeMBCSStateful` will not " +"decode trailing lead byte and the number of bytes that have been decoded " +"will be stored in *consumed*." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1529 +msgid "" +"Encode a Unicode object using MBCS and return the result as Python bytes " +"object. Error handling is \"strict\". Return *NULL* if an exception was " +"raised by the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1536 +msgid "" +"Encode the Unicode object using the specified code page and return a Python " +"bytes object. Return *NULL* if an exception was raised by the codec. Use :c:" +"data:`CP_ACP` code page to get the MBCS encoder." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1545 +msgid "" +"Encode the :c:type:`Py_UNICODE` buffer of the given *size* using MBCS and " +"return a Python bytes object. Return *NULL* if an exception was raised by " +"the codec." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1552 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`PyUnicode_AsMBCSString`, :c:func:`PyUnicode_EncodeCodePage` or :c:func:" +"`PyUnicode_AsEncodedString`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1556 +msgid "Methods & Slots" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1562 +msgid "Methods and Slot Functions" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1564 +msgid "" +"The following APIs are capable of handling Unicode objects and strings on " +"input (we refer to them as strings in the descriptions) and return Unicode " +"objects or integers as appropriate." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1568 +msgid "They all return *NULL* or ``-1`` if an exception occurs." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1573 +msgid "Concat two strings giving a new Unicode string." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1578 +msgid "" +"Split a string giving a list of Unicode strings. If *sep* is *NULL*, " +"splitting will be done at all whitespace substrings. Otherwise, splits " +"occur at the given separator. At most *maxsplit* splits will be done. If " +"negative, no limit is set. Separators are not included in the resulting " +"list." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1586 +msgid "" +"Split a Unicode string at line breaks, returning a list of Unicode strings. " +"CRLF is considered to be one line break. If *keepend* is ``0``, the Line " +"break characters are not included in the resulting strings." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1594 +msgid "" +"Translate a string by applying a character mapping table to it and return " +"the resulting Unicode object." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1597 +msgid "" +"The mapping table must map Unicode ordinal integers to Unicode ordinal " +"integers or ``None`` (causing deletion of the character)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1600 +msgid "" +"Mapping tables need only provide the :meth:`__getitem__` interface; " +"dictionaries and sequences work well. Unmapped character ordinals (ones " +"which cause a :exc:`LookupError`) are left untouched and are copied as-is." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1604 +msgid "" +"*errors* has the usual meaning for codecs. It may be *NULL* which indicates " +"to use the default error handling." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1610 +msgid "" +"Join a sequence of strings using the given *separator* and return the " +"resulting Unicode string." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1617 +msgid "" +"Return ``1`` if *substr* matches ``str[start:end]`` at the given tail end " +"(*direction* == ``-1`` means to do a prefix match, *direction* == ``1`` a " +"suffix match), ``0`` otherwise. Return ``-1`` if an error occurred." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1625 +msgid "" +"Return the first position of *substr* in ``str[start:end]`` using the given " +"*direction* (*direction* == ``1`` means to do a forward search, *direction* " +"== ``-1`` a backward search). The return value is the index of the first " +"match; a value of ``-1`` indicates that no match was found, and ``-2`` " +"indicates that an error occurred and an exception has been set." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1635 +msgid "" +"Return the first position of the character *ch* in ``str[start:end]`` using " +"the given *direction* (*direction* == ``1`` means to do a forward search, " +"*direction* == ``-1`` a backward search). The return value is the index of " +"the first match; a value of ``-1`` indicates that no match was found, and " +"``-2`` indicates that an error occurred and an exception has been set." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1643 +msgid "*start* and *end* are now adjusted to behave like ``str[start:end]``." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1650 +msgid "" +"Return the number of non-overlapping occurrences of *substr* in ``str[start:" +"end]``. Return ``-1`` if an error occurred." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1657 +msgid "" +"Replace at most *maxcount* occurrences of *substr* in *str* with *replstr* " +"and return the resulting Unicode object. *maxcount* == ``-1`` means replace " +"all occurrences." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1664 +msgid "" +"Compare two strings and return ``-1``, ``0``, ``1`` for less than, equal, " +"and greater than, respectively." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1667 +msgid "" +"This function returns ``-1`` upon failure, so one should call :c:func:" +"`PyErr_Occurred` to check for errors." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1673 +msgid "" +"Compare a Unicode object, *uni*, with *string* and return ``-1``, ``0``, " +"``1`` for less than, equal, and greater than, respectively. It is best to " +"pass only ASCII-encoded strings, but the function interprets the input " +"string as ISO-8859-1 if it contains non-ASCII characters." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1678 +msgid "This function does not raise exceptions." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1683 +msgid "Rich compare two Unicode strings and return one of the following:" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1685 +msgid "``NULL`` in case an exception was raised" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1686 +msgid ":const:`Py_True` or :const:`Py_False` for successful comparisons" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1687 +msgid ":const:`Py_NotImplemented` in case the type combination is unknown" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1689 +msgid "" +"Possible values for *op* are :const:`Py_GT`, :const:`Py_GE`, :const:" +"`Py_EQ`, :const:`Py_NE`, :const:`Py_LT`, and :const:`Py_LE`." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1695 +msgid "" +"Return a new string object from *format* and *args*; this is analogous to " +"``format % args``." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1701 +msgid "" +"Check whether *element* is contained in *container* and return true or false " +"accordingly." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1704 +msgid "" +"*element* has to coerce to a one element Unicode string. ``-1`` is returned " +"if there was an error." +msgstr "" + +#: ../Doc/c-api/unicode.rst:1710 +msgid "" +"Intern the argument *\\*string* in place. The argument must be the address " +"of a pointer variable pointing to a Python Unicode string object. If there " +"is an existing interned string that is the same as *\\*string*, it sets *" +"\\*string* to it (decrementing the reference count of the old string object " +"and incrementing the reference count of the interned string object), " +"otherwise it leaves *\\*string* alone and interns it (incrementing its " +"reference count). (Clarification: even though there is a lot of talk about " +"reference counts, think of this function as reference-count-neutral; you own " +"the object after the call if and only if you owned it before the call.)" +msgstr "" + +#: ../Doc/c-api/unicode.rst:1723 +msgid "" +"A combination of :c:func:`PyUnicode_FromString` and :c:func:" +"`PyUnicode_InternInPlace`, returning either a new Unicode string object that " +"has been interned, or a new (\"owned\") reference to an earlier interned " +"string object with the same value." +msgstr "" diff --git a/c-api/utilities.po b/c-api/utilities.po new file mode 100644 index 000000000..4a8b48b7b --- /dev/null +++ b/c-api/utilities.po @@ -0,0 +1,31 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-10-04 12:27+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/utilities.rst:7 +msgid "Utilities" +msgstr "Utilitaires" + +#: ../Doc/c-api/utilities.rst:9 +msgid "" +"The functions in this chapter perform various utility tasks, ranging from " +"helping C code be more portable across platforms, using Python modules from " +"C, and parsing function arguments and constructing Python values from C " +"values." +msgstr "" +"Les fonctions de ce chapitre sont utilitaires, certaines aident à rendre le " +"code en C plus portable, d'autres à utiliser des modules Python depuis du C, " +"analyser des arguments de fonctions, ou encore construire des valeurs Python " +"à partir de valeurs C." diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po new file mode 100644 index 000000000..23fc0d531 --- /dev/null +++ b/c-api/veryhigh.po @@ -0,0 +1,430 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/c-api/veryhigh.rst:8 +msgid "The Very High Level Layer" +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:10 +msgid "" +"The functions in this chapter will let you execute Python source code given " +"in a file or a buffer, but they will not let you interact in a more detailed " +"way with the interpreter." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:14 +msgid "" +"Several of these functions accept a start symbol from the grammar as a " +"parameter. The available start symbols are :const:`Py_eval_input`, :const:" +"`Py_file_input`, and :const:`Py_single_input`. These are described " +"following the functions which accept them as parameters." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:19 +msgid "" +"Note also that several of these functions take :c:type:`FILE\\*` " +"parameters. One particular issue which needs to be handled carefully is " +"that the :c:type:`FILE` structure for different C libraries can be different " +"and incompatible. Under Windows (at least), it is possible for dynamically " +"linked extensions to actually use different libraries, so care should be " +"taken that :c:type:`FILE\\*` parameters are only passed to these functions " +"if it is certain that they were created by the same library that the Python " +"runtime is using." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:30 +msgid "" +"The main program for the standard interpreter. This is made available for " +"programs which embed Python. The *argc* and *argv* parameters should be " +"prepared exactly as those which are passed to a C program's :c:func:`main` " +"function (converted to wchar_t according to the user's locale). It is " +"important to note that the argument list may be modified (but the contents " +"of the strings pointed to by the argument list are not). The return value " +"will be ``0`` if the interpreter exits normally (i.e., without an " +"exception), ``1`` if the interpreter exits due to an exception, or ``2`` if " +"the parameter list does not represent a valid Python command line." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:40 +msgid "" +"Note that if an otherwise unhandled :exc:`SystemExit` is raised, this " +"function will not return ``1``, but exit the process, as long as " +"``Py_InspectFlag`` is not set." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:47 +msgid "" +"This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " +"leaving *closeit* set to ``0`` and *flags* set to *NULL*." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:53 +msgid "" +"This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " +"leaving the *closeit* argument set to ``0``." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:59 +msgid "" +"This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " +"leaving the *flags* argument set to *NULL*." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:65 +msgid "" +"If *fp* refers to a file associated with an interactive device (console or " +"terminal input or Unix pseudo-terminal), return the value of :c:func:" +"`PyRun_InteractiveLoop`, otherwise return the result of :c:func:" +"`PyRun_SimpleFile`. *filename* is decoded from the filesystem encoding (:" +"func:`sys.getfilesystemencoding`). If *filename* is *NULL*, this function " +"uses ``\"???\"`` as the filename." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:75 +msgid "" +"This is a simplified interface to :c:func:`PyRun_SimpleStringFlags` below, " +"leaving the *PyCompilerFlags\\** argument set to NULL." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:81 +msgid "" +"Executes the Python source code from *command* in the :mod:`__main__` module " +"according to the *flags* argument. If :mod:`__main__` does not already " +"exist, it is created. Returns ``0`` on success or ``-1`` if an exception " +"was raised. If there was an error, there is no way to get the exception " +"information. For the meaning of *flags*, see below." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:87 +msgid "" +"Note that if an otherwise unhandled :exc:`SystemExit` is raised, this " +"function will not return ``-1``, but exit the process, as long as " +"``Py_InspectFlag`` is not set." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:94 +msgid "" +"This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, " +"leaving *closeit* set to ``0`` and *flags* set to *NULL*." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:100 +msgid "" +"This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, " +"leaving *flags* set to *NULL*." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:106 +msgid "" +"Similar to :c:func:`PyRun_SimpleStringFlags`, but the Python source code is " +"read from *fp* instead of an in-memory string. *filename* should be the name " +"of the file, it is decoded from the filesystem encoding (:func:`sys." +"getfilesystemencoding`). If *closeit* is true, the file is closed before " +"PyRun_SimpleFileExFlags returns." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:113 +msgid "" +"On Windows, *fp* should be opened as binary mode (e.g. ``fopen(filename, \"rb" +"\")``. Otherwise, Python may not handle script file with LF line ending " +"correctly." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:119 +msgid "" +"This is a simplified interface to :c:func:`PyRun_InteractiveOneFlags` below, " +"leaving *flags* set to *NULL*." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:125 +msgid "" +"Read and execute a single statement from a file associated with an " +"interactive device according to the *flags* argument. The user will be " +"prompted using ``sys.ps1`` and ``sys.ps2``. *filename* is decoded from the " +"filesystem encoding (:func:`sys.getfilesystemencoding`)." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:130 +msgid "" +"Returns ``0`` when the input was executed successfully, ``-1`` if there was " +"an exception, or an error code from the :file:`errcode.h` include file " +"distributed as part of Python if there was a parse error. (Note that :file:" +"`errcode.h` is not included by :file:`Python.h`, so must be included " +"specifically if needed.)" +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:139 +msgid "" +"This is a simplified interface to :c:func:`PyRun_InteractiveLoopFlags` " +"below, leaving *flags* set to *NULL*." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:145 +msgid "" +"Read and execute statements from a file associated with an interactive " +"device until EOF is reached. The user will be prompted using ``sys.ps1`` " +"and ``sys.ps2``. *filename* is decoded from the filesystem encoding (:func:" +"`sys.getfilesystemencoding`). Returns ``0`` at EOF or a negative number " +"upon failure." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:154 +msgid "" +"Can be set to point to a function with the prototype ``int func(void)``. " +"The function will be called when Python's interpreter prompt is about to " +"become idle and wait for user input from the terminal. The return value is " +"ignored. Overriding this hook can be used to integrate the interpreter's " +"prompt with other event loops, as done in the :file:`Modules/_tkinter.c` in " +"the Python source code." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:165 +msgid "" +"Can be set to point to a function with the prototype ``char *func(FILE " +"*stdin, FILE *stdout, char *prompt)``, overriding the default function used " +"to read a single line of input at the interpreter's prompt. The function is " +"expected to output the string *prompt* if it's not *NULL*, and then read a " +"line of input from the provided standard input file, returning the resulting " +"string. For example, The :mod:`readline` module sets this hook to provide " +"line-editing and tab-completion features." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:174 +msgid "" +"The result must be a string allocated by :c:func:`PyMem_RawMalloc` or :c:" +"func:`PyMem_RawRealloc`, or *NULL* if an error occurred." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:177 +msgid "" +"The result must be allocated by :c:func:`PyMem_RawMalloc` or :c:func:" +"`PyMem_RawRealloc`, instead of being allocated by :c:func:`PyMem_Malloc` or :" +"c:func:`PyMem_Realloc`." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:185 +msgid "" +"This is a simplified interface to :c:func:" +"`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set to " +"*NULL* and *flags* set to ``0``." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:192 +msgid "" +"This is a simplified interface to :c:func:" +"`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set to " +"*NULL*." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:199 +msgid "" +"Parse Python source code from *str* using the start token *start* according " +"to the *flags* argument. The result can be used to create a code object " +"which can be evaluated efficiently. This is useful if a code fragment must " +"be evaluated many times. *filename* is decoded from the filesystem encoding " +"(:func:`sys.getfilesystemencoding`)." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:208 +msgid "" +"This is a simplified interface to :c:func:`PyParser_SimpleParseFileFlags` " +"below, leaving *flags* set to ``0``." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:214 +msgid "" +"Similar to :c:func:`PyParser_SimpleParseStringFlagsFilename`, but the Python " +"source code is read from *fp* instead of an in-memory string." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:220 +msgid "" +"This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving " +"*flags* set to *NULL*." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:226 +msgid "" +"Execute Python source code from *str* in the context specified by the " +"objects *globals* and *locals* with the compiler flags specified by " +"*flags*. *globals* must be a dictionary; *locals* can be any object that " +"implements the mapping protocol. The parameter *start* specifies the start " +"token that should be used to parse the source code." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:232 +msgid "" +"Returns the result of executing the code as a Python object, or *NULL* if an " +"exception was raised." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:238 +msgid "" +"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " +"*closeit* set to ``0`` and *flags* set to *NULL*." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:244 +msgid "" +"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " +"*flags* set to *NULL*." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:250 +msgid "" +"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " +"*closeit* set to ``0``." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:256 +msgid "" +"Similar to :c:func:`PyRun_StringFlags`, but the Python source code is read " +"from *fp* instead of an in-memory string. *filename* should be the name of " +"the file, it is decoded from the filesystem encoding (:func:`sys." +"getfilesystemencoding`). If *closeit* is true, the file is closed before :c:" +"func:`PyRun_FileExFlags` returns." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:265 +msgid "" +"This is a simplified interface to :c:func:`Py_CompileStringFlags` below, " +"leaving *flags* set to *NULL*." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:271 +msgid "" +"This is a simplified interface to :c:func:`Py_CompileStringExFlags` below, " +"with *optimize* set to ``-1``." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:277 +msgid "" +"Parse and compile the Python source code in *str*, returning the resulting " +"code object. The start token is given by *start*; this can be used to " +"constrain the code which can be compiled and should be :const:" +"`Py_eval_input`, :const:`Py_file_input`, or :const:`Py_single_input`. The " +"filename specified by *filename* is used to construct the code object and " +"may appear in tracebacks or :exc:`SyntaxError` exception messages. This " +"returns *NULL* if the code cannot be parsed or compiled." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:285 +msgid "" +"The integer *optimize* specifies the optimization level of the compiler; a " +"value of ``-1`` selects the optimization level of the interpreter as given " +"by :option:`-O` options. Explicit levels are ``0`` (no optimization; " +"``__debug__`` is true), ``1`` (asserts are removed, ``__debug__`` is false) " +"or ``2`` (docstrings are removed too)." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:296 +msgid "" +"Like :c:func:`Py_CompileStringObject`, but *filename* is a byte string " +"decoded from the filesystem encoding (:func:`os.fsdecode`)." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:303 +msgid "" +"This is a simplified interface to :c:func:`PyEval_EvalCodeEx`, with just the " +"code object, and global and local variables. The other arguments are set to " +"*NULL*." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:310 +msgid "" +"Evaluate a precompiled code object, given a particular environment for its " +"evaluation. This environment consists of a dictionary of global variables, " +"a mapping object of local variables, arrays of arguments, keywords and " +"defaults, a dictionary of default values for :ref:`keyword-only ` arguments and a closure tuple of cells." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:319 +msgid "" +"The C structure of the objects used to describe frame objects. The fields of " +"this type are subject to change at any time." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:325 +msgid "" +"Evaluate an execution frame. This is a simplified interface to :c:func:" +"`PyEval_EvalFrameEx`, for backward compatibility." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:331 +msgid "" +"This is the main, unvarnished function of Python interpretation. It is " +"literally 2000 lines long. The code object associated with the execution " +"frame *f* is executed, interpreting bytecode and executing calls as needed. " +"The additional *throwflag* parameter can mostly be ignored - if true, then " +"it causes an exception to immediately be thrown; this is used for the :meth:" +"`~generator.throw` methods of generator objects." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:338 +msgid "" +"This function now includes a debug assertion to help ensure that it does not " +"silently discard an active exception." +msgstr "" +"Cette fonction inclut maintenant une assertion de débogage afin d'assurer " +"qu'elle ne passe pas sous silence une exception active." + +#: ../Doc/c-api/veryhigh.rst:345 +msgid "" +"This function changes the flags of the current evaluation frame, and returns " +"true on success, false on failure." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:353 +msgid "" +"The start symbol from the Python grammar for isolated expressions; for use " +"with :c:func:`Py_CompileString`." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:361 +msgid "" +"The start symbol from the Python grammar for sequences of statements as read " +"from a file or other source; for use with :c:func:`Py_CompileString`. This " +"is the symbol to use when compiling arbitrarily long Python source code." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:370 +msgid "" +"The start symbol from the Python grammar for a single statement; for use " +"with :c:func:`Py_CompileString`. This is the symbol used for the interactive " +"interpreter loop." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:377 +msgid "" +"This is the structure used to hold compiler flags. In cases where code is " +"only being compiled, it is passed as ``int flags``, and in cases where code " +"is being executed, it is passed as ``PyCompilerFlags *flags``. In this " +"case, ``from __future__ import`` can modify *flags*." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:382 +msgid "" +"Whenever ``PyCompilerFlags *flags`` is *NULL*, :attr:`cf_flags` is treated " +"as equal to ``0``, and any modification due to ``from __future__ import`` is " +"discarded. ::" +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:393 +msgid "" +"This bit can be set in *flags* to cause division operator ``/`` to be " +"interpreted as \"true division\" according to :pep:`238`." +msgstr "" diff --git a/c-api/weakref.po b/c-api/weakref.po new file mode 100644 index 000000000..d3a18d9ca --- /dev/null +++ b/c-api/weakref.po @@ -0,0 +1,114 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-03-29 14:17+0100\n" +"Last-Translator: Andy Kwok \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/c-api/weakref.rst:6 +msgid "Weak Reference Objects" +msgstr "Objets à références faibles" + +#: ../Doc/c-api/weakref.rst:8 +msgid "" +"Python supports *weak references* as first-class objects. There are two " +"specific object types which directly implement weak references. The first " +"is a simple reference object, and the second acts as a proxy for the " +"original object as much as it can." +msgstr "" +"Python gère les *références faibles* comme des objets de première classe. Il " +"existe deux types d'objets spécifiques qui implémentent directement les " +"références faibles. Le premier est un objet de référence simple, et le " +"second agit autant que possible comme un mandataire vers l'objet original." + +#: ../Doc/c-api/weakref.rst:16 +msgid "Return true if *ob* is either a reference or proxy object." +msgstr "Renvoie vrai si *ob* est soit une référence, soit un objet proxy." + +#: ../Doc/c-api/weakref.rst:21 +msgid "Return true if *ob* is a reference object." +msgstr "Retourne vrai si *ob* est un objet référence." + +#: ../Doc/c-api/weakref.rst:26 +msgid "Return true if *ob* is a proxy object." +msgstr "Retourne vrai si *ob* est un objet proxy" + +#: ../Doc/c-api/weakref.rst:31 +msgid "" +"Return a weak reference object for the object *ob*. This will always return " +"a new reference, but is not guaranteed to create a new object; an existing " +"reference object may be returned. The second parameter, *callback*, can be " +"a callable object that receives notification when *ob* is garbage collected; " +"it should accept a single parameter, which will be the weak reference object " +"itself. *callback* may also be ``None`` or *NULL*. If *ob* is not a weakly-" +"referencable object, or if *callback* is not callable, ``None``, or *NULL*, " +"this will return *NULL* and raise :exc:`TypeError`." +msgstr "" +"Retourne un objet de référence faible pour l'objet *ob*. Elle renvoie " +"toujours une nouvelle référence, mais cela ne signifie pas qu'un nouvel " +"objet est créé ; un objet référence existant peut être renvoyé. Le second " +"paramètre, *callback*, peut être un objet appelable qui reçoit une " +"notification lorsque *ob* est collecté par le ramasse-miette (*garbage " +"collected* en anglais) ; il doit accepter un paramètre unique, qui est " +"l'objet référence faible lui-même. *callback* peut aussi être positionné à " +"``None`` ou à *NULL*. Si *ob* n'est pas un objet faiblement référençable, " +"ou si *callback* n'est pas appelable, ``None``` ou *NULL*, ceci retourne " +"*NULL* et lève une :exc:`TypeError`." + +#: ../Doc/c-api/weakref.rst:43 +msgid "" +"Return a weak reference proxy object for the object *ob*. This will always " +"return a new reference, but is not guaranteed to create a new object; an " +"existing proxy object may be returned. The second parameter, *callback*, " +"can be a callable object that receives notification when *ob* is garbage " +"collected; it should accept a single parameter, which will be the weak " +"reference object itself. *callback* may also be ``None`` or *NULL*. If *ob* " +"is not a weakly-referencable object, or if *callback* is not callable, " +"``None``, or *NULL*, this will return *NULL* and raise :exc:`TypeError`." +msgstr "" +"Retourne un objet mandataire à référence faible pour l'objet *ob*. Ceci " +"renvoie toujours une nouvelle référence, mais ne garantit pas la création " +"d'un nouvel objet ; un objet proxy existant peut être retourné. Le second " +"paramètre, *callback*, peut être un objet appelable qui reçoit une " +"notification lorsque *ob* est collecté ; il doit accepter un seul paramètre, " +"qui sera l'objet de référence faible lui-même. *callback* peut aussi être " +"``None`` ou *NULLL*. Si *ob* n'est pas un objet faiblement référençable, ou " +"si *callback* n'est pas appelable, ``None``` ou *NULL*, ceci renvoie *NULL* " +"et lève une :exc:`TypeError`." + +#: ../Doc/c-api/weakref.rst:55 +msgid "" +"Return the referenced object from a weak reference, *ref*. If the referent " +"is no longer live, returns :const:`Py_None`." +msgstr "" +"Retourne l'objet référencé à partir d'une référence faible, *ref*. Si le " +"référence n'existe plus, alors l'objet renvoie :const:`Py_None`." + +#: ../Doc/c-api/weakref.rst:60 +msgid "" +"This function returns a **borrowed reference** to the referenced object. " +"This means that you should always call :c:func:`Py_INCREF` on the object " +"except if you know that it cannot be destroyed while you are still using it." +msgstr "" +"Cette fonction renvoie une **référence empruntée** à l'objet référencé. Cela " +"signifie que vous devez toujours appeler :c:func:`Py_INCREF` sur l'objet " +"sauf si vous savez qu'il ne peut pas être détruit tant que vous l'utilisez " +"encore." + +#: ../Doc/c-api/weakref.rst:68 +msgid "" +"Similar to :c:func:`PyWeakref_GetObject`, but implemented as a macro that " +"does no error checking." +msgstr "" +"Similaire à :c:func:`PyWeakref_GetObject`, mais implémenté comme une macro " +"qui ne vérifie pas les erreurs." diff --git a/contents.po b/contents.po new file mode 100644 index 000000000..a1c7d8991 --- /dev/null +++ b/contents.po @@ -0,0 +1,19 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/contents.rst:3 +msgid "Python Documentation contents" +msgstr "Contenu de la documentation Python" diff --git a/copyright.po b/copyright.po new file mode 100644 index 000000000..c816adfd6 --- /dev/null +++ b/copyright.po @@ -0,0 +1,54 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-03 16:57+0100\n" +"PO-Revision-Date: 2019-01-03 16:59+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/copyright.rst:3 +msgid "Copyright" +msgstr "Copyright" + +#: ../Doc/copyright.rst:5 +msgid "Python and this documentation is:" +msgstr "Python et cette documentation sont :" + +#: ../Doc/copyright.rst:7 +msgid "Copyright © 2001-2019 Python Software Foundation. All rights reserved." +msgstr "" +"Copyright © 2001-2019 Python Software Foundation. Tous droits réservés." + +#: ../Doc/copyright.rst:9 +msgid "Copyright © 2000 BeOpen.com. All rights reserved." +msgstr "Copyright © 2000 *BeOpen.com*. Tous droits réservés." + +#: ../Doc/copyright.rst:11 +msgid "" +"Copyright © 1995-2000 Corporation for National Research Initiatives. All " +"rights reserved." +msgstr "" +"Copyright © 1995-2000 *Corporation for National Research Initiatives*. Tous " +"droits réservés." + +#: ../Doc/copyright.rst:14 +msgid "" +"Copyright © 1991-1995 Stichting Mathematisch Centrum. All rights reserved." +msgstr "" +"Copyright © 1991-1995 *Stichting Mathematisch Centrum*. Tous droits réservés." + +#: ../Doc/copyright.rst:18 +msgid "" +"See :ref:`history-and-license` for complete license and permissions " +"information." +msgstr "" +"Voir :ref:`history-and-license` pour des informations complètes concernant " +"la licence et les permissions." diff --git a/dict b/dict new file mode 100644 index 000000000..a9bbba819 --- /dev/null +++ b/dict @@ -0,0 +1,190 @@ +#python-fr +-1 +-ième +-uplet +-uplets +017f +212a +ahlstrom +allocateur +allocateurs +base16 +base32 +base64 +base85 +batch +boguer +c++ +c- +c/c++ +C14N +C89 +c99 +chacha20 +cadriciel +cadriciels +catucci +cobjects +composabilité +concourance +contravariante +contravariantes +configurateurs +contribués +coroutine +coroutines +cpython +curryfication +cython +d'allocateurs +d'indifférentiabilité +d'itérateurs +docstrings +décodables +déduplication +délimitants +désenregistre +déserialisables +déserialisation +déserialisations +déserialise +déserialiser +déserialiseur +déserialiseurs +désérialiseur +désérialiseurs +déserialisées +déserialisés +désérialisés +désérialise +désérialiser +désérialisé +désérialisées +encodable +ethnomathématiques +farrugia +finaliseur +frederik +fredrik +freeze +glibc +guido +hachabilité +hachable +hachables +hettinger +html +indiçage +indo-arabes +ininterruptible +interchangés +intralignes +ios +ipv4 +itérateur +itérateurs +ième +journalise +journaliser +journaliseur +journalisé +journalisée +journalisés +jr. +kolams +kuchling +l'allocateur +l'indiçage +l'itérateur +lexicographiquement +lorsqu'aucune +lorsqu'aucun +mar +mar. +marc-andré +mersenne +mertz +Monty +muabilité +muable +muables +multiensemble +multiensembles +mutex +mémoïsant +mémoïsation +métacaractère +métacaractères +métaclasse +métaclasses +n-ième +namespace +non-hachable +non-hachables +pdb +pip +pourcent +proleptique +précompilé +préemptif +préremplis +py2exe +pyc +pychecker +pydb +pylint +pythonwin +qu +re +recompilation +reedy +relationelle +retraçage +réentrant +réentrante +réentrants +réessayable +réexécuter +référençable +référençables +réimplémente +réimplémenter +réimplémentez +résolveurs +réusinage +réusinages +réusiné +réutilisabilité +serwy +shell +slot +smalltalk +sqlite +surprenamment +sérialisable +sérialisables +sérialiser +sérialiseur +sérialisé +sérialisée +sérialisées +sérialisés +tk +tokenisation +tokenisé +tokenisés +tty +uplets +utf-8 +utf-16 +utf-32 +von +w3c +world +wxwidgets +x11 +x86 +zope +émoji +ı +ſ diff --git a/distributing/index.po b/distributing/index.po new file mode 100644 index 000000000..b0f8269fa --- /dev/null +++ b/distributing/index.po @@ -0,0 +1,348 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 20:39+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/distributing/index.rst:5 +msgid "Distributing Python Modules" +msgstr "Distribuer des modules Python" + +#: ../Doc/distributing/index.rst:0 +msgid "Email" +msgstr "Email" + +#: ../Doc/distributing/index.rst:7 +msgid "distutils-sig@python.org" +msgstr "distutils-sig@python.org" + +#: ../Doc/distributing/index.rst:10 +msgid "" +"As a popular open source development project, Python has an active " +"supporting community of contributors and users that also make their software " +"available for other Python developers to use under open source license terms." +msgstr "" +"En tant que logiciel libre populaire, Python bénéficie d'une communauté " +"active de contributeurs et d'utilisateurs qui rendent à leur tour leurs " +"logiciels disponibles, sous licence libre, pour les autres développeurs " +"Python." + +#: ../Doc/distributing/index.rst:14 +msgid "" +"This allows Python users to share and collaborate effectively, benefiting " +"from the solutions others have already created to common (and sometimes even " +"rare!) problems, as well as potentially contributing their own solutions to " +"the common pool." +msgstr "" +"Cela permet aux utilisateurs de Python de partager et de collaborer " +"efficacement, bénéficiant des solutions que les autres ont déjà crées pour " +"résoudre les problèmes communs (ou même, parfois, rares !), aussi que de " +"partager leurs propres solutions à tous." + +#: ../Doc/distributing/index.rst:19 +msgid "" +"This guide covers the distribution part of the process. For a guide to " +"installing other Python projects, refer to the :ref:`installation guide " +"`." +msgstr "" +"Ce guide couvre la partie distribution du processus. Pour un guide sur " +"l'installation d'autres projets Python, voir :ref:`installation guide " +"`." + +#: ../Doc/distributing/index.rst:25 +msgid "" +"For corporate and other institutional users, be aware that many " +"organisations have their own policies around using and contributing to open " +"source software. Please take such policies into account when making use of " +"the distribution and installation tools provided with Python." +msgstr "" +"Pour les entreprises et autres institutions, gardez en tête que certaines " +"organisations ont leur propres règles sur l'utilisation et la contribution " +"au logiciel libre. Prenez ces règles en compte lorsque vous utilisez les " +"outils de distribution et d'installation fournis par Python." + +#: ../Doc/distributing/index.rst:32 +msgid "Key terms" +msgstr "Vocabulaire" + +#: ../Doc/distributing/index.rst:34 +msgid "" +"the `Python Packaging Index `__ is a public repository of " +"open source licensed packages made available for use by other Python users" +msgstr "" +"le `Python Packaging Index `__ est un dépôt public de " +"paquets sous licence libre rendus disponibles par d'autres utilisateurs " +"Python" + +#: ../Doc/distributing/index.rst:37 +msgid "" +"the `Python Packaging Authority `__ are the group of " +"developers and documentation authors responsible for the maintenance and " +"evolution of the standard packaging tools and the associated metadata and " +"file format standards. They maintain a variety of tools, documentation and " +"issue trackers on both `GitHub `__ and `BitBucket " +"`__." +msgstr "" +"le `Python Packaging Authority `__ est le groupe de " +"développeurs et d'auteurs de documentation responsables de la maintenance et " +"de l'évolution des outils standards de création de paquets, des métadonnées, " +"et des formats de fichiers standards. Ils maintiennent quelques outils, " +"documentation, et gestionnaires de ticket, aussi bien sur `GitHub `__ que sur `BitBucket `__." + +#: ../Doc/distributing/index.rst:44 +msgid "" +":mod:`distutils` is the original build and distribution system first added " +"to the Python standard library in 1998. While direct use of :mod:`distutils` " +"is being phased out, it still laid the foundation for the current packaging " +"and distribution infrastructure, and it not only remains part of the " +"standard library, but its name lives on in other ways (such as the name of " +"the mailing list used to coordinate Python packaging standards development)." +msgstr "" +":mod:`distutils` est le premier système de construction et de distribution " +"ajouté à la bibliothèque standard en 1998. Bien que l'utilisation directe " +"de :mod:`distutils` est progressivement supprimée, elle reste le fondement " +"de l'infrastructure actuelle de construction de paquet et de distribution. " +"Au delà de rester dans la bibliothèque standard, son nom vit aussi sous " +"d'autres formes, tel que la liste de diffusion utilisée pour coordonner le " +"développement et les standards de la création de paquet." + +#: ../Doc/distributing/index.rst:51 +msgid "" +"`setuptools`_ is a (largely) drop-in replacement for :mod:`distutils` first " +"published in 2004. Its most notable addition over the unmodified :mod:" +"`distutils` tools was the ability to declare dependencies on other packages. " +"It is currently recommended as a more regularly updated alternative to :mod:" +"`distutils` that offers consistent support for more recent packaging " +"standards across a wide range of Python versions." +msgstr "" +"`setuptools`_, d'abord publié en 2004, est (en grande partie) le remplaçant " +"de :mod:`distutils`. La nouveauté la plus notable, au delà des outils non " +"modifiés de :mod:`distutils` est la possibilité de déclarer des dépendances " +"à d'autres paquets. C'est l'alternative actuellement recommandée car plus " +"régulièrement mise à jour que :mod:`distutils` et gère mieux les standards " +"de création de paquets actuels, pour un large choix de version de Python." + +#: ../Doc/distributing/index.rst:57 +msgid "" +"`wheel`_ (in this context) is a project that adds the ``bdist_wheel`` " +"command to :mod:`distutils`/`setuptools`_. This produces a cross platform " +"binary packaging format (called \"wheels\" or \"wheel files\" and defined " +"in :pep:`427`) that allows Python libraries, even those including binary " +"extensions, to be installed on a system without needing to be built locally." +msgstr "" +"`wheel`_ (dans ce contexte) est un projet qui ajoute la commande " +"``bdist_wheel`` à :mod:`distutils`/`setuptools`_. Cela produit un paquet " +"binaire multiplateforme (nommé \"*wheels*\" ou \"*wheel files*\" et définis " +"dans la :pep:`427`) qui permet aux bibliothèques Python, même celles " +"incluant des extensions binaires, d'être installées sur un système sans " +"avoir à les compiler localement." + +#: ../Doc/distributing/index.rst:68 +msgid "Open source licensing and collaboration" +msgstr "Licence libre et collaboration" + +#: ../Doc/distributing/index.rst:70 +msgid "" +"In most parts of the world, software is automatically covered by copyright. " +"This means that other developers require explicit permission to copy, use, " +"modify and redistribute the software." +msgstr "" +"Dans la plupart des pays du monde, le logiciel est automatiquement couvert " +"par les droits d'auteur. Cela signifie que les autres développeurs ont " +"besoin d'une autorisation explicite pour copier, utiliser, modifier, et " +"redistribuer le logiciel." + +#: ../Doc/distributing/index.rst:74 +msgid "" +"Open source licensing is a way of explicitly granting such permission in a " +"relatively consistent way, allowing developers to share and collaborate " +"efficiently by making common solutions to various problems freely available. " +"This leaves many developers free to spend more time focusing on the problems " +"that are relatively unique to their specific situation." +msgstr "" +"Les licences libres sont un moyen d'autoriser explicitement ces permissions " +"par un moyen relativement cohérent, autorisant les développeurs à partager " +"et collaborer efficacement en rendant des solutions communes à divers " +"problèmes librement disponibles. Cela laisse beaucoup de développeurs libres " +"de dépenser plus de temps concentrés sur des problèmes relativement uniques " +"à leur cas spécifiques." + +#: ../Doc/distributing/index.rst:80 +msgid "" +"The distribution tools provided with Python are designed to make it " +"reasonably straightforward for developers to make their own contributions " +"back to that common pool of software if they choose to do so." +msgstr "" +"Les outils de distribution fournis avec Python sont conçus pour rendre la " +"vie des développeurs relativement simple lorsqu'ils souhaitent contribuer, " +"s'il le désirent, à ces ressources communes." + +#: ../Doc/distributing/index.rst:84 +msgid "" +"The same distribution tools can also be used to distribute software within " +"an organisation, regardless of whether that software is published as open " +"source software or not." +msgstr "" +"Ces mêmes outils de distribution peuvent aussi être utilisés pour distribuer " +"du logiciel à l'intérieur d'une organisation, que ce soit du logiciel libre " +"ou non." + +#: ../Doc/distributing/index.rst:90 +msgid "Installing the tools" +msgstr "Installer les outils" + +#: ../Doc/distributing/index.rst:92 +msgid "" +"The standard library does not include build tools that support modern Python " +"packaging standards, as the core development team has found that it is " +"important to have standard tools that work consistently, even on older " +"versions of Python." +msgstr "" +"La bibliothèque standard n'inclut pas d'outils capable de créer des paquets " +"selon les standards modernes, car l'équipe fondamentale de développement à " +"trouvé qu'il était plus important d'avoir des outils standards qui " +"fonctionnent de manière cohérente, même avec de plus vieilles versions de " +"Python." + +#: ../Doc/distributing/index.rst:97 +msgid "" +"The currently recommended build and distribution tools can be installed by " +"invoking the ``pip`` module at the command line::" +msgstr "" +"Les outils de construction de paquets et de distribution actuellement " +"recommandées peuvent être installées en invoquant le module ``pip`` dans une " +"invite de commande ::" + +#: ../Doc/distributing/index.rst:104 +msgid "" +"For POSIX users (including Mac OS X and Linux users), these instructions " +"assume the use of a :term:`virtual environment`." +msgstr "" +"Pour les utilisateurs d'environnements POSIX (incluant Mac OS X et les " +"utilisateurs de Linux), ces instructions supposent l'utilisation d'un :term:" +"`environnement virtuel`." + +#: ../Doc/distributing/index.rst:107 +msgid "" +"For Windows users, these instructions assume that the option to adjust the " +"system PATH environment variable was selected when installing Python." +msgstr "" +"Pour les utilisateurs de Windows, ces instructions supposent que l'option " +"proposant de modifier la variable d'environnement PATH à été cochée lors de " +"l'installation de Python." + +#: ../Doc/distributing/index.rst:111 +msgid "" +"The Python Packaging User Guide includes more details on the `currently " +"recommended tools`_." +msgstr "" +"Le *Python Packaging User Guide* contient plus de détails sur les `(en) " +"outils actuellement recommandés `_." + +#: ../Doc/distributing/index.rst:123 +msgid "Reading the Python Packaging User Guide" +msgstr "Consultez le *Python Packaging User Guide*" + +#: ../Doc/distributing/index.rst:125 +msgid "" +"The Python Packaging User Guide covers the various key steps and elements " +"involved in creating and publishing a project:" +msgstr "" +"Le *Python Packaging User Guide* couvre les différentes étapes et les " +"éléments clés de la création et publication d'un projet :" + +#: ../Doc/distributing/index.rst:128 +msgid "`Project structure`_" +msgstr "`(en) Structure d'un projet `_" + +#: ../Doc/distributing/index.rst:129 +msgid "`Building and packaging the project`_" +msgstr "" +"`(en) Construire et empaqueter le projet `_" + +#: ../Doc/distributing/index.rst:130 +msgid "`Uploading the project to the Python Packaging Index`_" +msgstr "" +"`(en) Téléverser le projet sur le Python Packaging Index `_" + +#: ../Doc/distributing/index.rst:141 +msgid "How do I...?" +msgstr "Comment puis-je ...?" + +#: ../Doc/distributing/index.rst:143 +msgid "These are quick answers or links for some common tasks." +msgstr "" +"Ce sont des réponses rapides ou des liens pour certaines tâches courantes." + +#: ../Doc/distributing/index.rst:146 +msgid "... choose a name for my project?" +msgstr "... choisir un nom pour mon projet ?" + +#: ../Doc/distributing/index.rst:148 +msgid "This isn't an easy topic, but here are a few tips:" +msgstr "Ce n'est pas un sujet facile, mais voici quelques conseils :" + +#: ../Doc/distributing/index.rst:150 +msgid "check the Python Packaging Index to see if the name is already in use" +msgstr "vérifiez dans le *Python Packaging Index* si le nom est déjà utilisé" + +#: ../Doc/distributing/index.rst:151 +msgid "" +"check popular hosting sites like GitHub, BitBucket, etc to see if there is " +"already a project with that name" +msgstr "" +"vérifiez sur quelques sites d'hébergement populaires tels que GitHub, " +"BitBucket, etc pour voir s'il y existe déjà un projet avec ce nom" + +#: ../Doc/distributing/index.rst:153 +msgid "check what comes up in a web search for the name you're considering" +msgstr "" +"vérifiez ce qui sort en recherchant sur le web le nom que vous envisagez" + +#: ../Doc/distributing/index.rst:154 +msgid "" +"avoid particularly common words, especially ones with multiple meanings, as " +"they can make it difficult for users to find your software when searching " +"for it" +msgstr "" +"évitez les mots trop communs, plus particulièrement ceux ayant plusieurs " +"significations, car pour vos utilisateurs, cela complique la recherche de " +"votre logiciel" + +#: ../Doc/distributing/index.rst:160 +msgid "... create and distribute binary extensions?" +msgstr "... créer et distribuer des extensions binaires ?" + +#: ../Doc/distributing/index.rst:162 +msgid "" +"This is actually quite a complex topic, with a variety of alternatives " +"available depending on exactly what you're aiming to achieve. See the Python " +"Packaging User Guide for more information and recommendations." +msgstr "" +"C'est un sujet particulièrement compliqué, avec pléthore alternatives " +"disponibles dont le choix dépend de votre objectif exact. Voir le *Python " +"Packaging User Guide* pour plus d'informations et de recommandations." + +#: ../Doc/distributing/index.rst:168 +msgid "" +"`Python Packaging User Guide: Binary Extensions `__" +msgstr "" +"`Python Packaging User Guide: Binary Extensions `__" + +#~ msgid "Reading the guide" +#~ msgstr "Lire le manuel" diff --git a/distutils/apiref.po b/distutils/apiref.po new file mode 100644 index 000000000..835176a00 --- /dev/null +++ b/distutils/apiref.po @@ -0,0 +1,3399 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: 2019-04-11 18:00+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/distutils/apiref.rst:5 +msgid "API Reference" +msgstr "Référence de l'API" + +#: ../Doc/distutils/apiref.rst:9 +msgid ":mod:`distutils.core` --- Core Distutils functionality" +msgstr "" +":mod:`distutils.core` --- Fonctionnalités principales du module Distutils" + +#: ../Doc/distutils/apiref.rst:15 +msgid "" +"The :mod:`distutils.core` module is the only module that needs to be " +"installed to use the Distutils. It provides the :func:`setup` (which is " +"called from the setup script). Indirectly provides the :class:`distutils." +"dist.Distribution` and :class:`distutils.cmd.Command` class." +msgstr "" +"Le module :mod:`distutils.core` est le seul module qui a besoin d'être " +"installé pour utiliser Distutils. Il fournit le :func:`setup` (qui est " +"appelé par le script *setup.py*). Il fournit indirectement les classes :" +"class:`distutils.dist.Distribution` et :class:`distutils.cmd.Command`." + +#: ../Doc/distutils/apiref.rst:23 +msgid "" +"The basic do-everything function that does most everything you could ever " +"ask for from a Distutils method." +msgstr "" +"La fonction de base à tout faire qui fait presque tout ce dont vous pourriez " +"attendre d'une méthode Distutils." + +#: ../Doc/distutils/apiref.rst:26 +msgid "" +"The setup function takes a large number of arguments. These are laid out in " +"the following table." +msgstr "" +"La fonction ``setup`` prend un grand nombre d'arguments. Ils sont présentés " +"dans le tableau suivant." + +#: ../Doc/distutils/apiref.rst:32 ../Doc/distutils/apiref.rst:175 +msgid "argument name" +msgstr "nom de l'argument" + +#: ../Doc/distutils/apiref.rst:32 ../Doc/distutils/apiref.rst:133 +#: ../Doc/distutils/apiref.rst:175 +msgid "value" +msgstr "valeur" + +#: ../Doc/distutils/apiref.rst:32 ../Doc/distutils/apiref.rst:175 +msgid "type" +msgstr "type" + +#: ../Doc/distutils/apiref.rst:34 ../Doc/distutils/apiref.rst:177 +msgid "*name*" +msgstr "*name*" + +#: ../Doc/distutils/apiref.rst:34 +msgid "The name of the package" +msgstr "Le nom du paquet" + +#: ../Doc/distutils/apiref.rst:34 ../Doc/distutils/apiref.rst:36 +#: ../Doc/distutils/apiref.rst:40 ../Doc/distutils/apiref.rst:43 +#: ../Doc/distutils/apiref.rst:46 ../Doc/distutils/apiref.rst:48 +#: ../Doc/distutils/apiref.rst:51 ../Doc/distutils/apiref.rst:58 +#: ../Doc/distutils/apiref.rst:62 ../Doc/distutils/apiref.rst:65 +#: ../Doc/distutils/apiref.rst:86 ../Doc/distutils/apiref.rst:96 +#: ../Doc/distutils/apiref.rst:177 ../Doc/distutils/apiref.rst:268 +msgid "a string" +msgstr "une chaîne de caractères" + +#: ../Doc/distutils/apiref.rst:36 +msgid "*version*" +msgstr "*version*" + +#: ../Doc/distutils/apiref.rst:36 +msgid "The version number of the package; see :mod:`distutils.version`" +msgstr "Le numéro de version du paquet, voir :mod:`distutils.version`" + +#: ../Doc/distutils/apiref.rst:40 +msgid "*description*" +msgstr "*description*" + +#: ../Doc/distutils/apiref.rst:40 +msgid "A single line describing the package" +msgstr "Une ligne unique décrivant le paquet" + +#: ../Doc/distutils/apiref.rst:43 +msgid "*long_description*" +msgstr "*long_description*" + +#: ../Doc/distutils/apiref.rst:43 +msgid "Longer description of the package" +msgstr "Une description plus longue du paquet" + +#: ../Doc/distutils/apiref.rst:46 +msgid "*author*" +msgstr "*author*" + +#: ../Doc/distutils/apiref.rst:46 +msgid "The name of the package author" +msgstr "Le nom de l'auteur du paquet" + +#: ../Doc/distutils/apiref.rst:48 +msgid "*author_email*" +msgstr "*author_email*" + +#: ../Doc/distutils/apiref.rst:48 +msgid "The email address of the package author" +msgstr "L'adresse e-mail de l'auteur du paquet" + +#: ../Doc/distutils/apiref.rst:51 +msgid "*maintainer*" +msgstr "*maintainer*" + +#: ../Doc/distutils/apiref.rst:51 +msgid "" +"The name of the current maintainer, if different from the author. Note that " +"if the maintainer is provided, distutils will use it as the author in :file:" +"`PKG-INFO`" +msgstr "" +"Le nom de l'actuel mainteneur, s'il est différent de l'auteur. Remarquez que " +"si *maintainer* est fourni, *distutils* l'utilise à la place de *author* " +"dans :file:`PKG-INFO`." + +#: ../Doc/distutils/apiref.rst:58 +msgid "*maintainer_email*" +msgstr "*maintainer_email*" + +#: ../Doc/distutils/apiref.rst:58 +msgid "" +"The email address of the current maintainer, if different from the author" +msgstr "Le courriel de l'actuel mainteneur, si différent de l'auteur" + +#: ../Doc/distutils/apiref.rst:62 +msgid "*url*" +msgstr "*url*" + +#: ../Doc/distutils/apiref.rst:62 +msgid "A URL for the package (homepage)" +msgstr "Une URL pour le paquet (page d'accueil)" + +#: ../Doc/distutils/apiref.rst:65 +msgid "*download_url*" +msgstr "*download_url*" + +#: ../Doc/distutils/apiref.rst:65 +msgid "A URL to download the package" +msgstr "Une URL pour télécharger le paquet" + +#: ../Doc/distutils/apiref.rst:67 +msgid "*packages*" +msgstr "*packages*" + +#: ../Doc/distutils/apiref.rst:67 +msgid "A list of Python packages that distutils will manipulate" +msgstr "Une liste des paquets Python que *distutils* va manipuler" + +#: ../Doc/distutils/apiref.rst:67 ../Doc/distutils/apiref.rst:70 +#: ../Doc/distutils/apiref.rst:73 ../Doc/distutils/apiref.rst:90 +#: ../Doc/distutils/apiref.rst:183 ../Doc/distutils/apiref.rst:197 +#: ../Doc/distutils/apiref.rst:213 ../Doc/distutils/apiref.rst:216 +#: ../Doc/distutils/apiref.rst:220 ../Doc/distutils/apiref.rst:224 +#: ../Doc/distutils/apiref.rst:230 ../Doc/distutils/apiref.rst:237 +#: ../Doc/distutils/apiref.rst:248 ../Doc/distutils/apiref.rst:257 +#: ../Doc/distutils/apiref.rst:265 +msgid "a list of strings" +msgstr "une liste de chaînes de caractères" + +#: ../Doc/distutils/apiref.rst:70 +msgid "*py_modules*" +msgstr "*py_modules*" + +#: ../Doc/distutils/apiref.rst:70 +msgid "A list of Python modules that distutils will manipulate" +msgstr "Une liste de modules Python que *distutils* va manipuler" + +#: ../Doc/distutils/apiref.rst:73 +msgid "*scripts*" +msgstr "*scripts*" + +#: ../Doc/distutils/apiref.rst:73 +msgid "A list of standalone script files to be built and installed" +msgstr "Une liste de scripts autonomes à construire et à installer" + +#: ../Doc/distutils/apiref.rst:77 +msgid "*ext_modules*" +msgstr "*ext_modules*" + +#: ../Doc/distutils/apiref.rst:77 +msgid "A list of Python extensions to be built" +msgstr "Une liste des extensions Python à construire" + +#: ../Doc/distutils/apiref.rst:77 +msgid "a list of instances of :class:`distutils.core.Extension`" +msgstr "une liste d'instances de :class:`distutils.core.Extension`" + +#: ../Doc/distutils/apiref.rst:80 +msgid "*classifiers*" +msgstr "*classifiers*" + +#: ../Doc/distutils/apiref.rst:80 +msgid "A list of categories for the package" +msgstr "Une liste de catégories pour le paquet" + +#: ../Doc/distutils/apiref.rst:80 +msgid "" +"a list of strings; valid classifiers are listed on `PyPI `_." +msgstr "" +"une liste des chaînes de caractères, les classificateurs valides sont listés " +"sur `PyPI `_." + +#: ../Doc/distutils/apiref.rst:83 +msgid "*distclass*" +msgstr "*distclass*" + +#: ../Doc/distutils/apiref.rst:83 +msgid "the :class:`Distribution` class to use" +msgstr "la classe :class:`Distribution` à utiliser" + +#: ../Doc/distutils/apiref.rst:83 +msgid "a subclass of :class:`distutils.core.Distribution`" +msgstr "une sous classe de :class:`distutils.core.Distribution`" + +#: ../Doc/distutils/apiref.rst:86 +msgid "*script_name*" +msgstr "*script_name*" + +#: ../Doc/distutils/apiref.rst:86 +msgid "The name of the setup.py script - defaults to ``sys.argv[0]``" +msgstr "Le nom du script *setup.py* . Initialisé par ``sys.argv[0]``" + +#: ../Doc/distutils/apiref.rst:90 +msgid "*script_args*" +msgstr "*script_args*" + +#: ../Doc/distutils/apiref.rst:90 +msgid "Arguments to supply to the setup script" +msgstr "Arguments à fournir au script d'installation" + +#: ../Doc/distutils/apiref.rst:93 +msgid "*options*" +msgstr "*options*" + +#: ../Doc/distutils/apiref.rst:93 +msgid "default options for the setup script" +msgstr "options par défaut pour le script d'installation" + +#: ../Doc/distutils/apiref.rst:93 ../Doc/distutils/apiref.rst:103 +#: ../Doc/distutils/apiref.rst:109 +msgid "a dictionary" +msgstr "un dictionnaire" + +#: ../Doc/distutils/apiref.rst:96 +msgid "*license*" +msgstr "*license*" + +#: ../Doc/distutils/apiref.rst:96 +msgid "The license for the package" +msgstr "La licence pour le paquet" + +#: ../Doc/distutils/apiref.rst:98 +msgid "*keywords*" +msgstr "*keywords*" + +#: ../Doc/distutils/apiref.rst:98 +msgid "Descriptive meta-data, see :pep:`314`" +msgstr "Méta-données descriptives, voir :pep:`314`" + +#: ../Doc/distutils/apiref.rst:98 ../Doc/distutils/apiref.rst:101 +msgid "a list of strings or a comma-separated string" +msgstr "" +"Une liste de chaînes de caractères ou une chaîne de caractère dont les " +"éléments sont séparés par des virgules." + +#: ../Doc/distutils/apiref.rst:101 +msgid "*platforms*" +msgstr "*platforms*" + +#: ../Doc/distutils/apiref.rst:103 +msgid "*cmdclass*" +msgstr "*cmdclass*" + +#: ../Doc/distutils/apiref.rst:103 +msgid "A mapping of command names to :class:`Command` subclasses" +msgstr "" +"Un dictionnaire des noms de commandes et des sous-classes :class:`Command`" + +#: ../Doc/distutils/apiref.rst:106 +msgid "*data_files*" +msgstr "*data_files*" + +#: ../Doc/distutils/apiref.rst:106 +msgid "A list of data files to install" +msgstr "Une liste de fichiers de données à installer" + +#: ../Doc/distutils/apiref.rst:106 +msgid "a list" +msgstr "une liste" + +#: ../Doc/distutils/apiref.rst:109 +msgid "*package_dir*" +msgstr "*package_dir*" + +#: ../Doc/distutils/apiref.rst:109 +msgid "A mapping of package to directory names" +msgstr "Un dictionnaire des paquets et des noms de dossiers" + +#: ../Doc/distutils/apiref.rst:117 +msgid "" +"Run a setup script in a somewhat controlled environment, and return the :" +"class:`distutils.dist.Distribution` instance that drives things. This is " +"useful if you need to find out the distribution meta-data (passed as " +"keyword args from *script* to :func:`setup`), or the contents of the config " +"files or command-line." +msgstr "" +"Exécute un script d'installation dans un environnement quelque peu contrôlé, " +"et renvoie une instance :class:`distutils.dist.distribution` qui contrôle " +"l’exécution. Ceci est utile si vous avez besoin de connaître les méta-" +"données de la distribution (passées sous forme d'arguments nommés de " +"*script* à la fonction :func:`setup`), ou le contenu des fichiers de " +"configuration ou de la ligne de commande." + +#: ../Doc/distutils/apiref.rst:123 +msgid "" +"*script_name* is a file that will be read and run with :func:`exec`. ``sys." +"argv[0]`` will be replaced with *script* for the duration of the call. " +"*script_args* is a list of strings; if supplied, ``sys.argv[1:]`` will be " +"replaced by *script_args* for the duration of the call." +msgstr "" +"*script_name* est un fichier qui sera lu et exécuté avec :func:`exec`. ``sys." +"argv[0]`` sera remplacé par *script* par la durée de l'appel. *script_args* " +"est une liste de chaînes de caractères; si fourni, ``sys.argv[1:]`` sera " +"remplacé par *script_args* pour la durée de l'appel." + +#: ../Doc/distutils/apiref.rst:128 +msgid "" +"*stop_after* tells :func:`setup` when to stop processing; possible values:" +msgstr "*stop_after* dit à :func:`setup` quand s'arrêter; valeurs possibles:" + +#: ../Doc/distutils/apiref.rst:133 ../Doc/distutils/apiref.rst:547 +#: ../Doc/distutils/apiref.rst:1568 +msgid "description" +msgstr "description" + +#: ../Doc/distutils/apiref.rst:135 +msgid "*init*" +msgstr "*init*" + +#: ../Doc/distutils/apiref.rst:135 +msgid "" +"Stop after the :class:`Distribution` instance has been created and " +"populated with the keyword arguments to :func:`setup`" +msgstr "" +"S'arrête une fois que l'instance :class:`Distribution` a été créée et " +"renseignée avec les arguments-clés de :func:`setup`" + +#: ../Doc/distutils/apiref.rst:139 +msgid "*config*" +msgstr "*config*" + +#: ../Doc/distutils/apiref.rst:139 +msgid "" +"Stop after config files have been parsed (and their data stored in the :" +"class:`Distribution` instance)" +msgstr "" +"S'arrête une fois que les fichiers de configuration ont été parcouru (et que " +"leurs données ont été stockées dans l'instance :class:`Distribution`)" + +#: ../Doc/distutils/apiref.rst:143 +msgid "*commandline*" +msgstr "*commandline*" + +#: ../Doc/distutils/apiref.rst:143 +msgid "" +"Stop after the command-line (``sys.argv[1:]`` or *script_args*) have been " +"parsed (and the data stored in the :class:`Distribution` instance.)" +msgstr "" +"S'arrête une fois que la ligne de commande (``sys.argv[1:]`` ou " +"*script_args*) a été parcouru (et les données stockées dans l'instance :" +"class:`Distribution`)" + +#: ../Doc/distutils/apiref.rst:148 +msgid "*run*" +msgstr "*run*" + +#: ../Doc/distutils/apiref.rst:148 +msgid "" +"Stop after all commands have been run (the same as if :func:`setup` had " +"been called in the usual way). This is the default value." +msgstr "" +"S'arrête une fois que toutes les commandes ont été exécutées (comme si :func:" +"`setup` fût appelé de la manière habituelle). Ceci est la valeur par défaut." + +#: ../Doc/distutils/apiref.rst:154 +msgid "" +"In addition, the :mod:`distutils.core` module exposed a number of classes " +"that live elsewhere." +msgstr "" +"De plus, le module :mod:`distutils.core` a exposé un nombre de classe qui " +"existent ailleurs." + +#: ../Doc/distutils/apiref.rst:157 +msgid ":class:`~distutils.extension.Extension` from :mod:`distutils.extension`" +msgstr "" +":class:`~distutils.extension.Extension` du module :mod:`distutils.extension`" + +#: ../Doc/distutils/apiref.rst:159 +msgid ":class:`~distutils.cmd.Command` from :mod:`distutils.cmd`" +msgstr ":class:`~distutils.cmd.Command` du module :mod:`distutils.cmd`" + +#: ../Doc/distutils/apiref.rst:161 +msgid ":class:`~distutils.dist.Distribution` from :mod:`distutils.dist`" +msgstr ":class:`~distutils.dist.Distribution` du module :mod:`distutils.dist`" + +#: ../Doc/distutils/apiref.rst:163 +msgid "" +"A short description of each of these follows, but see the relevant module " +"for the full reference." +msgstr "" +"Une courte description de chacune d'elle suit, mais consultez le module " +"concerné pour une référence complète." + +#: ../Doc/distutils/apiref.rst:169 +msgid "" +"The Extension class describes a single C or C++ extension module in a setup " +"script. It accepts the following keyword arguments in its constructor:" +msgstr "" +"La classe *Extension* décrit un seul module d'extension C ou C++ dans un " +"script d'installation. Elle accepte dans son constructeur les arguments " +"nommés suivants:" + +#: ../Doc/distutils/apiref.rst:177 +msgid "" +"the full name of the extension, including any packages --- ie. *not* a " +"filename or pathname, but Python dotted name" +msgstr "" +"Le nom complet de l'extension, incluant n'importe quel paquet --- c-à-d " +"*pas* un nom de fichier ou de chemin mais un nom Python séparé par des " +"points." + +#: ../Doc/distutils/apiref.rst:183 +msgid "*sources*" +msgstr "*sources*" + +#: ../Doc/distutils/apiref.rst:183 +msgid "" +"list of source filenames, relative to the distribution root (where the setup " +"script lives), in Unix form (slash-separated) for portability. Source files " +"may be C, C++, SWIG (.i), platform-specific resource files, or whatever else " +"is recognized by the :command:`build_ext` command as source for a Python " +"extension." +msgstr "" +"Listes des noms de fichier des sources, relatifs à la racine de la " +"distribution (où est placé le script *setup.py*), dans un format Unix " +"(séparé par des slashs) dans un souci de portabilité. Les fichiers de code " +"source peuvent être du C, C++, SWIG (*.i*), des fichiers de ressources " +"spécifiques à la plateforme ou tout autre reconnu par la commande :command:" +"`build_ext` comme source d'une extension Python." + +#: ../Doc/distutils/apiref.rst:197 +msgid "*include_dirs*" +msgstr "*include_dirs*" + +#: ../Doc/distutils/apiref.rst:197 +msgid "" +"list of directories to search for C/C++ header files (in Unix form for " +"portability)" +msgstr "" +"Liste des répertoires où chercher les fichiers d'entêtes C/C++ (en format " +"Unix dans un souci de portabilité)." + +#: ../Doc/distutils/apiref.rst:201 +msgid "*define_macros*" +msgstr "*define_macros*" + +#: ../Doc/distutils/apiref.rst:201 +msgid "" +"list of macros to define; each macro is defined using a 2-tuple ``(name, " +"value)``, where *value* is either the string to define it to or ``None`` to " +"define it without a particular value (equivalent of ``#define FOO`` in " +"source or :option:`!-DFOO` on Unix C compiler command line)" +msgstr "" +"Liste de macros à définir ; chaque macro est définie à l'aide d'un couple " +"``(name, value)``, où *value* correspond soit à la chaîne sur laquelle la " +"macro doit être définie, soit à ``None`` pour définir la macro sur aucune " +"valeur particulière (équivalent à ``#define TRUC`` dans la source ou à :" +"option:`!-DTRUC` dans la ligne de commande du compilateur C Unix." + +#: ../Doc/distutils/apiref.rst:201 +msgid "a list of tuples" +msgstr "une liste de tuples" + +#: ../Doc/distutils/apiref.rst:213 +msgid "*undef_macros*" +msgstr "*undef_macros*" + +#: ../Doc/distutils/apiref.rst:213 +msgid "list of macros to undefine explicitly" +msgstr "Liste de macros à ignorer explicitement." + +#: ../Doc/distutils/apiref.rst:216 +msgid "*library_dirs*" +msgstr "*library_dirs*" + +#: ../Doc/distutils/apiref.rst:216 +msgid "list of directories to search for C/C++ libraries at link time" +msgstr "" +"Liste de répertoires à parcourir pour chercher les bibliothèques C/C++ lors " +"de la phase d'édition de liens." + +#: ../Doc/distutils/apiref.rst:220 +msgid "*libraries*" +msgstr "*libraries*" + +#: ../Doc/distutils/apiref.rst:220 +msgid "list of library names (not filenames or paths) to link against" +msgstr "" +"Liste de noms de bibliothèques à lier à la compilation. Pas de noms de " +"fichiers ou de chemin." + +#: ../Doc/distutils/apiref.rst:224 +msgid "*runtime_library_dirs*" +msgstr "*runtime_library_dirs*" + +#: ../Doc/distutils/apiref.rst:224 +msgid "" +"list of directories to search for C/C++ libraries at run time (for shared " +"extensions, this is when the extension is loaded)" +msgstr "" +"Liste de répertoires à parcourir pour les bibliothèques C/C++ lors de la " +"phase d'exécution. Pour les extensions partagées, c'est à ce moment que " +"l'extension est chargée. " + +#: ../Doc/distutils/apiref.rst:230 +msgid "*extra_objects*" +msgstr "*extra_objects*" + +#: ../Doc/distutils/apiref.rst:230 +msgid "" +"list of extra files to link with (eg. object files not implied by 'sources', " +"static library that must be explicitly specified, binary resource files, " +"etc.)" +msgstr "" +"Liste des fichiers supplémentaires à lier (par exemple les fichiers d'objets " +"non explicités dans les 'sources', bibliothèque statique qui doit être " +"explicitement spécifiée, fichiers de ressources binaires, etc. )." + +#: ../Doc/distutils/apiref.rst:237 +msgid "*extra_compile_args*" +msgstr "*extra_compile_args*" + +#: ../Doc/distutils/apiref.rst:237 +msgid "" +"any extra platform- and compiler-specific information to use when compiling " +"the source files in 'sources'. For platforms and compilers where a command " +"line makes sense, this is typically a list of command-line arguments, but " +"for other platforms it could be anything." +msgstr "" +"Toute information supplémentaire spécifique à la plate-forme et au " +"compilateur à utiliser lors de la compilation des fichiers sources dans " +"'sources'. Pour les plates-formes et les compilateurs où une ligne de " +"commande a du sens, il s'agit généralement d'une liste d'arguments de ligne " +"de commande, mais pour d'autres plates-formes, cela peut être n'importe quoi." + +#: ../Doc/distutils/apiref.rst:248 +msgid "*extra_link_args*" +msgstr "*extra_link_args*" + +#: ../Doc/distutils/apiref.rst:248 +msgid "" +"any extra platform- and compiler-specific information to use when linking " +"object files together to create the extension (or to create a new static " +"Python interpreter). Similar interpretation as for 'extra_compile_args'." +msgstr "" +"Toute information supplémentaire spécifique à la plate-forme et au " +"compilateur à utiliser lors de la liaison de fichiers objets pour créer " +"l'extension (ou pour créer un nouvel interpréteur Python statique). " +"Interprétation similaire à celle de *extra_compile_args*." + +#: ../Doc/distutils/apiref.rst:257 +msgid "*export_symbols*" +msgstr "*export_symbols*" + +#: ../Doc/distutils/apiref.rst:257 +msgid "" +"list of symbols to be exported from a shared extension. Not used on all " +"platforms, and not generally necessary for Python extensions, which " +"typically export exactly one symbol: ``init`` + extension_name." +msgstr "" +"Liste des symboles à exporter à partir d'une extension partagée. N'est pas " +"utilisé sur toutes les plates-formes et n'est généralement pas nécessaire " +"pour les extensions Python, qui exportent généralement exactement un " +"symbole : ``init`` + nom_de_l'extension." + +#: ../Doc/distutils/apiref.rst:265 +msgid "*depends*" +msgstr "*depends*" + +#: ../Doc/distutils/apiref.rst:265 +msgid "list of files that the extension depends on" +msgstr "Liste des fichiers dont dépend l'extension." + +#: ../Doc/distutils/apiref.rst:268 +msgid "*language*" +msgstr "*language*" + +#: ../Doc/distutils/apiref.rst:268 +msgid "" +"extension language (i.e. ``'c'``, ``'c++'``, ``'objc'``). Will be detected " +"from the source extensions if not provided." +msgstr "" +"Langage de l'extension (par exemple ``'c'``, ``'c++'``, ``'objc'``). Il sera " +"détecté selon l'extension de la source s'il n'est pas précisé." + +#: ../Doc/distutils/apiref.rst:274 +msgid "*optional*" +msgstr "*optional*" + +#: ../Doc/distutils/apiref.rst:274 +msgid "" +"specifies that a build failure in the extension should not abort the build " +"process, but simply skip the extension." +msgstr "" +"Spécifie qu'un échec de compilation dans l'extension ne doit pas interrompre " +"le processus de compilation, mais simplement ignorer l'extension." + +#: ../Doc/distutils/apiref.rst:274 +msgid "a boolean" +msgstr "un booléen" + +#: ../Doc/distutils/apiref.rst:283 +msgid "" +"A :class:`Distribution` describes how to build, install and package up a " +"Python software package." +msgstr "" +"Une classe :class:`Distribution` décrit comment compiler, installer et " +"empaqueter un paquet logiciel Python." + +#: ../Doc/distutils/apiref.rst:286 +msgid "" +"See the :func:`setup` function for a list of keyword arguments accepted by " +"the Distribution constructor. :func:`setup` creates a Distribution instance." +msgstr "" +"Voir la fonction :func:`setup` pour une liste des arguments de mots-clés " +"acceptés par le constructeur *Distribution*. :func:`setup` crée une instance " +"de Distribution." + +#: ../Doc/distutils/apiref.rst:289 +msgid "" +":class:`~distutils.core.Distribution` now warns if ``classifiers``, " +"``keywords`` and ``platforms`` fields are not specified as a list or a " +"string." +msgstr "" +":class:`~distutils.core.Distribution` avertit maintenant si les champs " +"``classifiers``, ``keywords`` et ``platforms`` ne sont pas spécifiés comme " +"une liste ou une chaîne de caractères." + +#: ../Doc/distutils/apiref.rst:296 +msgid "" +"A :class:`Command` class (or rather, an instance of one of its subclasses) " +"implement a single distutils command." +msgstr "" +"Une classe :class:`Command` (ou plutôt une instance d'une de ses sous-" +"classes) implémente une commande *distutils* unique." + +#: ../Doc/distutils/apiref.rst:301 +msgid ":mod:`distutils.ccompiler` --- CCompiler base class" +msgstr ":mod:`distutils.ccompiler` — Classe de base CCompiler" + +#: ../Doc/distutils/apiref.rst:307 +msgid "" +"This module provides the abstract base class for the :class:`CCompiler` " +"classes. A :class:`CCompiler` instance can be used for all the compile and " +"link steps needed to build a single project. Methods are provided to set " +"options for the compiler --- macro definitions, include directories, link " +"path, libraries and the like." +msgstr "" +"Ce module fournit la classe de base abstraite pour les classes :class:" +"`CCompiler`. Une instance de :class:`CCompiler` peut être utilisée pour " +"toutes les étapes de compilation et de liaison nécessaires à la compilation " +"d'un projet unique. Des méthodes sont fournies pour définir des options pour " +"le compilateur --- définitions de macros, inclusion des répertoires, des " +"chemins de liens, des bibliothèques, etc." + +#: ../Doc/distutils/apiref.rst:313 +msgid "This module provides the following functions." +msgstr "Ce module fournit les fonctions suivantes." + +#: ../Doc/distutils/apiref.rst:318 +msgid "" +"Generate linker options for searching library directories and linking with " +"specific libraries. *libraries* and *library_dirs* are, respectively, lists " +"of library names (not filenames!) and search directories. Returns a list of " +"command-line options suitable for use with some compiler (depending on the " +"two format strings passed in)." +msgstr "" +"Génère des options de liaison pour chercher dans les répertoires des " +"bibliothèques et pour effectuer les liaisons avec des bibliothèques " +"spécifiques. *libraries* et *library_dirs* sont, respectivement, des listes " +"de noms de bibliothèques (pas de noms de fichiers !) et de répertoires à " +"rechercher. Renvoie une liste d'options de ligne de commande utilisables " +"avec certains compilateurs (en fonction des deux chaînes de format " +"transmises)." + +#: ../Doc/distutils/apiref.rst:327 +msgid "" +"Generate C pre-processor options (:option:`!-D`, :option:`!-U`, :option:`!-" +"I`) as used by at least two types of compilers: the typical Unix compiler " +"and Visual C++. *macros* is the usual thing, a list of 1- or 2-tuples, where " +"``(name,)`` means undefine (:option:`!-U`) macro *name*, and ``(name, " +"value)`` means define (:option:`!-D`) macro *name* to *value*. " +"*include_dirs* is just a list of directory names to be added to the header " +"file search path (:option:`!-I`). Returns a list of command-line options " +"suitable for either Unix compilers or Visual C++." +msgstr "" +"Génère les options du préprocesseur C (:option:`!-D`, :option:`!-U`, :option:" +"`!-I`) utilisées par au moins deux types de compilateurs : les compilateurs " +"type Unix et Visual C++. *macros* est une liste de couples où ``(name,)`` " +"est traité comme *non définie* (:option:`!-U`); ``(name, value)`` est traité " +"comme *définie* (:option:`!-D`). *include_dirs* est la liste de noms de " +"répertoires à ajouter au chemin de recherche du fichier d'en-tête (:option:" +"`!-I`). Renvoie une liste d'options de ligne de commande pour les " +"compilateurs Unix ou Visual C+++." + +#: ../Doc/distutils/apiref.rst:339 +msgid "Determine the default compiler to use for the given platform." +msgstr "" +"Détermine le compilateur par défaut a utiliser par une plateforme donnée." + +#: ../Doc/distutils/apiref.rst:341 +msgid "" +"*osname* should be one of the standard Python OS names (i.e. the ones " +"returned by ``os.name``) and *platform* the common value returned by ``sys." +"platform`` for the platform in question." +msgstr "" +"*osname* doit être l'un des noms d'OS Python standard (c'est-à-dire un des " +"noms renvoyés par ``os.name``) et *platform* la valeur commune renvoyés par " +"``sys.platform`` pour la plate-forme en question." + +#: ../Doc/distutils/apiref.rst:345 +msgid "" +"The default values are ``os.name`` and ``sys.platform`` in case the " +"parameters are not given." +msgstr "" +"Les valeurs par défaut sont ``os.name`` et ``sys.platform`` si les " +"paramètres ne sont pas fournis." + +#: ../Doc/distutils/apiref.rst:351 +msgid "" +"Factory function to generate an instance of some CCompiler subclass for the " +"supplied platform/compiler combination. *plat* defaults to ``os.name`` (eg. " +"``'posix'``, ``'nt'``), and *compiler* defaults to the default compiler for " +"that platform. Currently only ``'posix'`` and ``'nt'`` are supported, and " +"the default compilers are \"traditional Unix interface\" (:class:" +"`UnixCCompiler` class) and Visual C++ (:class:`MSVCCompiler` class). Note " +"that it's perfectly possible to ask for a Unix compiler object under " +"Windows, and a Microsoft compiler object under Unix---if you supply a value " +"for *compiler*, *plat* is ignored." +msgstr "" +"Fonction de génération produisant une instance d'une sous-classe CCompiler " +"pour la combinaison plateforme/compilateur fournie. Par défaut, *plat* est " +"le ``os.name`` (par exemple ``'posix'``, ``'nt'``), et *compiler* est le " +"compilateur par défaut pour cette plate-forme. Actuellement, seuls " +"``'posix'`` et ``'nt'`` sont gérés, et les compilateurs par défaut sont ceux " +"qui gèrent une \"interface Unix traditionnelle\" (:class:`UnixCCompiler`) et " +"Visual C++ (:class:`MSVCCompiler`). Notez qu'il est tout à fait possible de " +"demander un objet compilateur Unix sous Windows, et un objet compilateur " +"Microsoft sous Unix. Si vous fournissez une valeur pour *compiler*, *plat* " +"est ignoré." + +#: ../Doc/distutils/apiref.rst:367 +msgid "" +"Print list of available compilers (used by the :option:`!--help-compiler` " +"options to :command:`build`, :command:`build_ext`, :command:`build_clib`)." +msgstr "" +"Affiche la liste des compilateurs disponibles (utilisés par l'option :option:" +"`!--help-compiler` pour les commandes :command:`build`, :command:" +"`build_ext`, :command:`build_clib`)." + +#: ../Doc/distutils/apiref.rst:373 +msgid "" +"The abstract base class :class:`CCompiler` defines the interface that must " +"be implemented by real compiler classes. The class also has some utility " +"methods used by several compiler classes." +msgstr "" +"La classe de base abstraite :class:`CCompiler` définit l'interface qui doit " +"être implémentée par des classes de compilateur concrètes. La classe " +"possède également quelques méthodes utilitaires utilisées par plusieurs " +"classes de compilateurs." + +#: ../Doc/distutils/apiref.rst:377 +msgid "" +"The basic idea behind a compiler abstraction class is that each instance can " +"be used for all the compile/link steps in building a single project. Thus, " +"attributes common to all of those compile and link steps --- include " +"directories, macros to define, libraries to link against, etc. --- are " +"attributes of the compiler instance. To allow for variability in how " +"individual files are treated, most of those attributes may be varied on a " +"per-compilation or per-link basis." +msgstr "" +"L'idée de base derrière une classe abstraite de compilateur est que chaque " +"instance peut être utilisée pour toutes les étapes de compilation/lien dans " +"la construction d'un seul projet. Ainsi, les attributs communs à toutes ces " +"étapes de compilation et de liaison (ce qui inclut les répertoires, les " +"macros à définir, les bibliothèques à relier, etc.) sont des attributs de " +"l'instance du compilateur. Pour tenir compte des variations dans la façon " +"dont chaque fichier est traité, la plupart de ces attributs peuvent être " +"modifiés en fonction de chaque compilation ou de chaque lien." + +#: ../Doc/distutils/apiref.rst:385 +msgid "" +"The constructor for each subclass creates an instance of the Compiler " +"object. Flags are *verbose* (show verbose output), *dry_run* (don't actually " +"execute the steps) and *force* (rebuild everything, regardless of " +"dependencies). All of these flags default to ``0`` (off). Note that you " +"probably don't want to instantiate :class:`CCompiler` or one of its " +"subclasses directly - use the :func:`distutils.CCompiler.new_compiler` " +"factory function instead." +msgstr "" +"Le constructeur de chaque sous-classe crée une instance de l'objet " +"*Compiler*. Les paramètres optionnels sont *verbose* (affiche plus " +"d'information à l'exécution), *dry_run* (ne pas exécuter les étapes) et " +"*force* (tout reconstruire, indépendamment des dépendances). Tous ces " +"paramètres ont la valeur par défaut ``0`` (désactivé). Notez que vous ne " +"voulez probablement pas instancier directement la classe :class:`CCompiler` " +"ou une de ses sous-classes. Utilisez plutôt la fonction génératrice :func:" +"`distutils.CCompiler.new_compiler`." + +#: ../Doc/distutils/apiref.rst:392 +msgid "" +"The following methods allow you to manually alter compiler options for the " +"instance of the Compiler class." +msgstr "" +"Les méthodes suivantes vous permettent de modifier manuellement les options " +"du compilateur de l'instance de la classe *Compiler*." + +#: ../Doc/distutils/apiref.rst:398 +msgid "" +"Add *dir* to the list of directories that will be searched for header files. " +"The compiler is instructed to search directories in the order in which they " +"are supplied by successive calls to :meth:`add_include_dir`." +msgstr "" +"Ajoute *dir* à la liste des répertoires qui sont recherchés pour les " +"fichiers d'en-tête. Le compilateur est chargé de rechercher les répertoires " +"dans l'ordre dans lequel ils sont fournis par des appels successifs à :meth:" +"`add_include_dir`." + +#: ../Doc/distutils/apiref.rst:405 +msgid "" +"Set the list of directories that will be searched to *dirs* (a list of " +"strings). Overrides any preceding calls to :meth:`add_include_dir`; " +"subsequent calls to :meth:`add_include_dir` add to the list passed to :meth:" +"`set_include_dirs`. This does not affect any list of standard include " +"directories that the compiler may search by default." +msgstr "" +"Affecte la liste des répertoires qui seront recherchés à la valeur de *dirs* " +"(une liste de chaînes). Remplace tous les appels précédents de :meth:" +"`add_include_dir` ; les appels suivants de :meth:`add_include_dir` " +"s'ajoutent à la liste transmise par :meth:`set_include_dirs`. Ceci n'affecte " +"pas la liste des répertoires d'inclusion standard que le compilateur peut " +"rechercher par défaut." + +#: ../Doc/distutils/apiref.rst:414 +msgid "" +"Add *libname* to the list of libraries that will be included in all links " +"driven by this compiler object. Note that *libname* should \\*not\\* be the " +"name of a file containing a library, but the name of the library itself: the " +"actual filename will be inferred by the linker, the compiler, or the " +"compiler class (depending on the platform)." +msgstr "" +"Ajoute *libname* à la liste des bibliothèques qui seront incluses dans tous " +"les liens gérés par l'objet compilateur. Notez que *libname* ne *doit pas " +"être* le nom d'un fichier contenant une bibliothèque, mais le nom de la " +"bibliothèque elle-même : le nom du fichier sera déduit par l'éditeur de " +"liens, le compilateur ou la classe de compilation (selon la plate-forme)." + +#: ../Doc/distutils/apiref.rst:420 +msgid "" +"The linker will be instructed to link against libraries in the order they " +"were supplied to :meth:`add_library` and/or :meth:`set_libraries`. It is " +"perfectly valid to duplicate library names; the linker will be instructed to " +"link against libraries as many times as they are mentioned." +msgstr "" +"L'éditeur de liens est chargé de lier les bibliothèques dans l'ordre dans " +"lequel elles sont fournies à :meth:`add_library` et/ou :meth:" +"`set_libraries`. Il est parfaitement valide de dupliquer les noms de " +"bibliothèques ; l'éditeur de liens est chargé de créer des liens avec les " +"bibliothèques autant de fois que les noms sont mentionnées." + +#: ../Doc/distutils/apiref.rst:428 +msgid "" +"Set the list of libraries to be included in all links driven by this " +"compiler object to *libnames* (a list of strings). This does not affect any " +"standard system libraries that the linker may include by default." +msgstr "" +"Affecte la liste des bibliothèques à inclure dans tous les liens gérés par " +"l'objet compilateur avec la valeur de *libnames* (une liste des chaînes de " +"caractères). Ceci n'affecte pas les bibliothèques système standard que " +"l'éditeur de liens peut inclure par défaut." + +#: ../Doc/distutils/apiref.rst:435 +msgid "" +"Add *dir* to the list of directories that will be searched for libraries " +"specified to :meth:`add_library` and :meth:`set_libraries`. The linker will " +"be instructed to search for libraries in the order they are supplied to :" +"meth:`add_library_dir` and/or :meth:`set_library_dirs`." +msgstr "" +"Ajoute *dir* à la liste des répertoires qui seront recherchés pour les " +"bibliothèques spécifiées dans :meth:`add_library` et :meth:`set_libraries`. " +"L'éditeur de liens est chargé de rechercher les bibliothèques dans l'ordre " +"dans lequel elles sont fournies à :meth:`add_library_dir` et/ou :meth:" +"`set_library_dirs`." + +#: ../Doc/distutils/apiref.rst:443 +msgid "" +"Set the list of library search directories to *dirs* (a list of strings). " +"This does not affect any standard library search path that the linker may " +"search by default." +msgstr "" +"Affecte la liste des répertoires de recherche de bibliothèque avec la valeur " +"de *dirs* (une liste de chaînes de caractères). Cela n'affecte pas le " +"chemin de recherche standard de la bibliothèque que l'éditeur de liens peut " +"rechercher par défaut." + +#: ../Doc/distutils/apiref.rst:450 +msgid "" +"Add *dir* to the list of directories that will be searched for shared " +"libraries at runtime." +msgstr "" +"Ajoute *dir* à la liste des répertoires qui seront recherchés par les " +"bibliothèques partagées au moment de l'exécution." + +#: ../Doc/distutils/apiref.rst:456 +msgid "" +"Set the list of directories to search for shared libraries at runtime to " +"*dirs* (a list of strings). This does not affect any standard search path " +"that the runtime linker may search by default." +msgstr "" +"Affecte la liste des répertoires pour rechercher les bibliothèques partagées " +"au moment de l'exécution à la valeur de *dirs* (une liste des chaînes de " +"caractères). Ceci n'affecte aucun chemin de recherche standard que " +"l'éditeur de liens d'exécution peut rechercher par défaut." + +#: ../Doc/distutils/apiref.rst:463 +msgid "" +"Define a preprocessor macro for all compilations driven by this compiler " +"object. The optional parameter *value* should be a string; if it is not " +"supplied, then the macro will be defined without an explicit value and the " +"exact outcome depends on the compiler used." +msgstr "" +"Définit une macro de préprocesseur pour toutes les compilations gérées par " +"cet objet compilateur. Le paramètre optionnel *value* doit être une chaîne " +"de caractères ; s'il n'est pas fourni, alors la macro sera définie sans " +"valeur explicite et le résultat exact dépendra du compilateur utilisé." + +#: ../Doc/distutils/apiref.rst:473 +msgid "" +"Undefine a preprocessor macro for all compilations driven by this compiler " +"object. If the same macro is defined by :meth:`define_macro` and undefined " +"by :meth:`undefine_macro` the last call takes precedence (including multiple " +"redefinitions or undefinitions). If the macro is redefined/undefined on a " +"per-compilation basis (ie. in the call to :meth:`compile`), then that takes " +"precedence." +msgstr "" +"Désactive une macro de préprocesseur pour toutes les compilations gérées par " +"cet objet compilateur. Si la même macro est définie par :meth:" +"`define_macro` et ensuite désactivée par un appel à :meth:`undefine_macro`, " +"le dernier appel est prioritaire (y compris en cas de redéfinitions " +"multiples). Si la macro est redéfinie/désactivée par compilation (c'est-à-" +"dire dans l'appel à :meth:`compile`), alors cet appel prévaut." + +#: ../Doc/distutils/apiref.rst:483 +msgid "" +"Add *object* to the list of object files (or analogues, such as explicitly " +"named library files or the output of \"resource compilers\") to be included " +"in every link driven by this compiler object." +msgstr "" +"Ajoute *objet* à la liste des fichiers objets (ou analogues, tels que les " +"fichiers de bibliothèque explicitement nommés ou la sortie des " +"\"compilateurs de ressources\") à inclure dans chaque lien qui est géré par " +"ce compilateur d'objets." + +#: ../Doc/distutils/apiref.rst:490 +msgid "" +"Set the list of object files (or analogues) to be included in every link to " +"*objects*. This does not affect any standard object files that the linker " +"may include by default (such as system libraries)." +msgstr "" +"Définit la liste des fichiers objets (ou analogues) à inclure dans chaque " +"lien à la valeur de *objects*. Ceci n'affecte pas les fichiers d'objets " +"standard que l'éditeur de liens peut inclure par défaut (comme les " +"bibliothèques système)." + +#: ../Doc/distutils/apiref.rst:494 +msgid "" +"The following methods implement methods for autodetection of compiler " +"options, providing some functionality similar to GNU :program:`autoconf`." +msgstr "" +"Les méthodes suivantes offre des services pour l'auto-détection des options " +"du compilateur. Elles offrent des fonctionnalités similaires à celles du " +"programme GNU :program:`autoconf`." + +#: ../Doc/distutils/apiref.rst:500 +msgid "" +"Detect the language of a given file, or list of files. Uses the instance " +"attributes :attr:`language_map` (a dictionary), and :attr:`language_order` " +"(a list) to do the job." +msgstr "" +"Détecte le langage d'un fichier donné, ou d'une liste de fichiers. Utilise " +"les attributs d'instance :attr:`language_map` (un dictionnaire) et :attr:" +"`language_order` (une liste) pour faire le travail." + +#: ../Doc/distutils/apiref.rst:507 +msgid "" +"Search the specified list of directories for a static or shared library file " +"*lib* and return the full path to that file. If *debug* is true, look for a " +"debugging version (if that makes sense on the current platform). Return " +"``None`` if *lib* wasn't found in any of the specified directories." +msgstr "" +"Recherche dans la liste des répertoires spécifiés un fichier de bibliothèque " +"statique ou partagée *lib* et renvoie le chemin complet vers ce fichier. Si " +"*debug* est vrai, recherche une version de débogage (si cela a du sens sur " +"la plate-forme actuelle). Renvoie ``None`` si *lib* n'a pas été trouvé dans " +"l'un des répertoires spécifiés." + +#: ../Doc/distutils/apiref.rst:515 +msgid "" +"Return a boolean indicating whether *funcname* is supported on the current " +"platform. The optional arguments can be used to augment the compilation " +"environment by providing additional include files and paths and libraries " +"and paths." +msgstr "" +"Renvoie un booléen indiquant si *funcname* est pris en charge sur la plate-" +"forme courante. Les arguments optionnels peuvent être utilisés pour " +"enrichir l'environnement de compilation en fournissant des fichiers, des " +"répertoires de fichiers, des bibliothèques, des répertoires de bibliothèques " +"supplémentaires" + +#: ../Doc/distutils/apiref.rst:523 +msgid "" +"Return the compiler option to add *dir* to the list of directories searched " +"for libraries." +msgstr "" +"Renvoie l'option de compilation pour ajouter *dir* à la liste des " +"répertoires recherchés pour les bibliothèques." + +#: ../Doc/distutils/apiref.rst:529 +msgid "" +"Return the compiler option to add *lib* to the list of libraries linked into " +"the shared library or executable." +msgstr "" +"Renvoie l'option de compilation pour ajouter *lib* à la liste des " +"bibliothèques liées à la bibliothèque partagée ou à l'exécutable." + +#: ../Doc/distutils/apiref.rst:535 +msgid "" +"Return the compiler option to add *dir* to the list of directories searched " +"for runtime libraries." +msgstr "" +"Renvoie l'option de compilation pour ajouter *dir* à la liste des " +"répertoires recherchés par les bibliothèques d'exécution." + +#: ../Doc/distutils/apiref.rst:541 +msgid "" +"Define the executables (and options for them) that will be run to perform " +"the various stages of compilation. The exact set of executables that may be " +"specified here depends on the compiler class (via the 'executables' class " +"attribute), but most will have:" +msgstr "" +"Définit les exécutables (et leurs options) qui seront exécutés pour " +"effectuer les différentes étapes de compilation. L'ensemble exact des " +"exécutables qui peuvent être spécifiés ici dépend de la classe du " +"compilateur (via l'attribut de classe *executables*), mais la plupart " +"utilisent :" + +#: ../Doc/distutils/apiref.rst:547 +msgid "attribute" +msgstr "attribut" + +#: ../Doc/distutils/apiref.rst:549 +msgid "*compiler*" +msgstr "*compiler*" + +#: ../Doc/distutils/apiref.rst:549 +msgid "the C/C++ compiler" +msgstr "Le compilateur C/C++." + +#: ../Doc/distutils/apiref.rst:551 +msgid "*linker_so*" +msgstr "*linker_so*" + +#: ../Doc/distutils/apiref.rst:551 +msgid "linker used to create shared objects and libraries" +msgstr "" +"L'éditeur de liens utilisé pour la création d'objets ou de bibliothèques " +"partagées." + +#: ../Doc/distutils/apiref.rst:554 +msgid "*linker_exe*" +msgstr "*linker_exe*" + +#: ../Doc/distutils/apiref.rst:554 +msgid "linker used to create binary executables" +msgstr "L'éditeur de lien utilisé pour créer des exécutables binaires." + +#: ../Doc/distutils/apiref.rst:556 +msgid "*archiver*" +msgstr "*archiver*" + +#: ../Doc/distutils/apiref.rst:556 +msgid "static library creator" +msgstr "Créateur de bibliothèque statique." + +#: ../Doc/distutils/apiref.rst:559 +msgid "" +"On platforms with a command-line (Unix, DOS/Windows), each of these is a " +"string that will be split into executable name and (optional) list of " +"arguments. (Splitting the string is done similarly to how Unix shells " +"operate: words are delimited by spaces, but quotes and backslashes can " +"override this. See :func:`distutils.util.split_quoted`.)" +msgstr "" +"Sur les plates-formes disposant d'un outil de ligne de commande (Unix, DOS/" +"Windows), chacun de ces éléments est une chaîne qui sera fractionnée en un " +"nom exécutable et, éventuellement, une liste d'arguments. Le fractionnement " +"de la chaîne est réalisée selon la même procédure que celle appliquée par " +"les *shells* Unix : les mots sont délimités par des espaces, mais les " +"guillemets et les antislashs permettent de les ignorer. Voir :func:" +"`distutils.util.split_quoted`." + +#: ../Doc/distutils/apiref.rst:565 +msgid "The following methods invoke stages in the build process." +msgstr "" +"Les méthodes suivantes permettent d'exécuter des étapes lors de processus de " +"construction." + +#: ../Doc/distutils/apiref.rst:570 +msgid "" +"Compile one or more source files. Generates object files (e.g. transforms " +"a :file:`.c` file to a :file:`.o` file.)" +msgstr "" +"Compile un ou plusieurs fichiers source. Génère des fichiers objets (par " +"exemple, transforme un fichier :file:`.c` en fichier :file:`.o`)." + +#: ../Doc/distutils/apiref.rst:573 +msgid "" +"*sources* must be a list of filenames, most likely C/C++ files, but in " +"reality anything that can be handled by a particular compiler and compiler " +"class (eg. :class:`MSVCCompiler` can handle resource files in *sources*). " +"Return a list of object filenames, one per source filename in *sources*. " +"Depending on the implementation, not all source files will necessarily be " +"compiled, but all corresponding object filenames will be returned." +msgstr "" +"*sources* doit être une liste de noms de fichiers, généralement des fichiers " +"C/C++, mais elle pourrait contenir n'importe quel fichier géré par un " +"compilateur et une classe de compilateur (par exemple, :class:`MSVCCompiler` " +"peut gérer les fichiers de ressources dans *sources*). Renvoie une liste de " +"noms de fichiers objet : un objet par nom de fichier dans *sources*. Selon " +"les cas, tous les fichiers source ne seront pas forcément compilés, mais " +"tous les noms de fichiers objet correspondants seront renvoyés." + +#: ../Doc/distutils/apiref.rst:580 +msgid "" +"If *output_dir* is given, object files will be put under it, while retaining " +"their original path component. That is, :file:`foo/bar.c` normally compiles " +"to :file:`foo/bar.o` (for a Unix implementation); if *output_dir* is " +"*build*, then it would compile to :file:`build/foo/bar.o`." +msgstr "" +"Si *output_dir* est donné, les fichiers objets seront placés à l'intérieur, " +"tout en conservant leurs chemins relatifs. Par exemple, le :file:`truc/" +"machin.c` compile normalement en :file:`truc/machin.o` (pour une " +"implémentation Unix) ; si *output_dir* a la valeur *build*, alors il " +"compilera en :file:`build/truc/machin.o`." + +#: ../Doc/distutils/apiref.rst:585 +msgid "" +"*macros*, if given, must be a list of macro definitions. A macro definition " +"is either a ``(name, value)`` 2-tuple or a ``(name,)`` 1-tuple. The former " +"defines a macro; if the value is ``None``, the macro is defined without an " +"explicit value. The 1-tuple case undefines a macro. Later definitions/" +"redefinitions/undefinitions take precedence." +msgstr "" +"Le paramètre *macros*, s'il est donné, doit être une liste de définitions de " +"macros. Une définition de macro est soit un couple ``(nom, valeur)``, ou un " +"singleton ``(nom,)``. Le premier définit une macro ; si la valeur est " +"``None``, la macro est définie sans valeur explicite. L'utilisation d'un " +"singleton désactive la macro. Les définitions, redéfinitions ou " +"désactivations ultérieures priment." + +#: ../Doc/distutils/apiref.rst:591 +msgid "" +"*include_dirs*, if given, must be a list of strings, the directories to add " +"to the default include file search path for this compilation only." +msgstr "" +"*include_dirs* doit être une liste de chaînes de caractères contenant les " +"répertoires à ajouter au chemin de recherche par défaut pour cette " +"compilation uniquement." + +#: ../Doc/distutils/apiref.rst:594 +msgid "" +"*debug* is a boolean; if true, the compiler will be instructed to output " +"debug symbols in (or alongside) the object file(s)." +msgstr "" +"*debug* est un booléen ; si sa valeur est *vraie*, le compilateur est chargé " +"d'afficher les symboles de débogage dans (ou à côté) du ou des fichiers " +"objets." + +#: ../Doc/distutils/apiref.rst:597 +msgid "" +"*extra_preargs* and *extra_postargs* are implementation-dependent. On " +"platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), " +"they are most likely lists of strings: extra command-line arguments to " +"prepend/append to the compiler command line. On other platforms, consult " +"the implementation class documentation. In any event, they are intended as " +"an escape hatch for those occasions when the abstract compiler framework " +"doesn't cut the mustard." +msgstr "" +"*extra_preargs* et *extra_postargs* dépendent de l'implémentation. Sur les " +"plates-formes qui ont une ligne de commande (par exemple Unix, DOS/Windows), " +"il s'agit très probablement de listes de chaînes de caractères. Ce sont des " +"arguments supplémentaires à ajouter avant (*preargs*) et après (*postargs*) " +"la ligne de commande du compilateur. Sur d'autres plates-formes, consultez " +"la documentation de la classe d'implémentation. Ces paramètres sont exposés " +"pour permettre de sortir du cadre de la classe abstraite en cas de nécessité." + +#: ../Doc/distutils/apiref.rst:604 +msgid "" +"*depends*, if given, is a list of filenames that all targets depend on. If " +"a source file is older than any file in depends, then the source file will " +"be recompiled. This supports dependency tracking, but only at a coarse " +"granularity." +msgstr "" +"*depends* est une liste de noms de fichiers dont dépendent toutes les " +"cibles. Si un fichier source est plus ancien qu'un fichier dans *depends*, " +"alors le fichier source sera recompilé. Cela permet un suivi des " +"dépendances à un niveau macro. " + +#: ../Doc/distutils/apiref.rst:609 +msgid "Raises :exc:`CompileError` on failure." +msgstr "Lève :exc:`CompileError` en cas d'échec." + +#: ../Doc/distutils/apiref.rst:614 +msgid "" +"Link a bunch of stuff together to create a static library file. The \"bunch " +"of stuff\" consists of the list of object files supplied as *objects*, the " +"extra object files supplied to :meth:`add_link_object` and/or :meth:" +"`set_link_objects`, the libraries supplied to :meth:`add_library` and/or :" +"meth:`set_libraries`, and the libraries supplied as *libraries* (if any)." +msgstr "" +"Relie un ensemble d'éléments pour créer un fichier de bibliothèque statique. " +"L'ensemble d'éléments se compose de la liste des fichiers d'objets fournis " +"comme *objets*, des fichiers d'objets supplémentaires fournis à :meth:" +"`add_link_object` et/ou :meth:`set_link_objects`, des bibliothèques fournies " +"à :meth:`add_library` et/ou :meth:`set_libraries` et les bibliothèques " +"fournies à *libraries* (le cas échéant)." + +#: ../Doc/distutils/apiref.rst:620 +msgid "" +"*output_libname* should be a library name, not a filename; the filename will " +"be inferred from the library name. *output_dir* is the directory where the " +"library file will be put." +msgstr "" +"*output_libname* doit être un nom de bibliothèque et non un nom de fichier ; " +"le nom de fichier sera déduit du nom de bibliothèque. *output_dir* est le " +"répertoire dans lequel le fichier bibliothèque sera placé." + +#: ../Doc/distutils/apiref.rst:626 +msgid "" +"*debug* is a boolean; if true, debugging information will be included in the " +"library (note that on most platforms, it is the compile step where this " +"matters: the *debug* flag is included here just for consistency)." +msgstr "" +"*debug* est un booléen ; si sa valeur est *vraie*, les informations de " +"débogage seront incluses dans la bibliothèque (notez que sur la plupart des " +"plateformes, c'est à l'étape de compilation que ce paramètre est pris en " +"compte : le paramètre *debug* est inclus ici pour assurer une cohérence)." + +#: ../Doc/distutils/apiref.rst:630 ../Doc/distutils/apiref.rst:672 +msgid "" +"*target_lang* is the target language for which the given objects are being " +"compiled. This allows specific linkage time treatment of certain languages." +msgstr "" +"*target_lang* est le langage cible pour lequel les objets donnés sont " +"compilés. Cela permet un traitement spécifique du temps de liaison dans " +"certains langages." + +#: ../Doc/distutils/apiref.rst:633 +msgid "Raises :exc:`LibError` on failure." +msgstr "Lève :exc:`LibError` en cas d'échec." + +#: ../Doc/distutils/apiref.rst:638 +msgid "" +"Link a bunch of stuff together to create an executable or shared library " +"file." +msgstr "" +"Relie un ensemble d'éléments pour créer un fichier exécutable ou une " +"bibliothèque partagée." + +#: ../Doc/distutils/apiref.rst:640 +msgid "" +"The \"bunch of stuff\" consists of the list of object files supplied as " +"*objects*. *output_filename* should be a filename. If *output_dir* is " +"supplied, *output_filename* is relative to it (i.e. *output_filename* can " +"provide directory components if needed)." +msgstr "" +"L'ensemble d'éléments se compose de la liste des fichiers objets fournis " +"comme *objets*. *output_filename* devrait être un nom de fichier. Si " +"*output_dir* est fourni, *output_filename* lui est relatif (c'est-à-dire que " +"*output_filename* peut être un chemin vers un fichier )." + +#: ../Doc/distutils/apiref.rst:645 +msgid "" +"*libraries* is a list of libraries to link against. These are library " +"names, not filenames, since they're translated into filenames in a platform-" +"specific way (eg. *foo* becomes :file:`libfoo.a` on Unix and :file:`foo.lib` " +"on DOS/Windows). However, they can include a directory component, which " +"means the linker will look in that specific directory rather than searching " +"all the normal locations." +msgstr "" +"*libraries* est une liste de bibliothèques avec lesquelles il est possible " +"d'établir des liens. Ce sont des noms de bibliothèques, pas des noms de " +"fichiers, puisqu'ils sont traduits en noms de fichiers d'une manière " +"spécifique à la plate-forme (par exemple *truc* devient :file:`libtruc.a` " +"sous Unix et :file:`truc.lib` sous DOS/Windows). Cependant, ils peuvent " +"inclure un chemin, ce qui signifie que l'éditeur de liens cherchera dans ce " +"chemin spécifique plutôt que de rechercher tous les emplacements standard." + +#: ../Doc/distutils/apiref.rst:652 +msgid "" +"*library_dirs*, if supplied, should be a list of directories to search for " +"libraries that were specified as bare library names (ie. no directory " +"component). These are on top of the system default and those supplied to :" +"meth:`add_library_dir` and/or :meth:`set_library_dirs`. " +"*runtime_library_dirs* is a list of directories that will be embedded into " +"the shared library and used to search for other shared libraries that \\*it" +"\\* depends on at run-time. (This may only be relevant on Unix.)" +msgstr "" +"*library_dirs*, s'il est fourni, doit être une liste de répertoires à " +"rechercher pour les bibliothèques qui ont été spécifiées comme des " +"bibliothèques pures (c'est-à-dire sans aucun répertoire). Celles-ci " +"s'ajoutent aux valeurs par défaut du système et à celles fournies à :meth:" +"`add_library_dir` et/ou :meth:`set_library_dirs`. *runtime_library_dirs* " +"est une liste de répertoires qui seront intégrés dans la bibliothèque " +"partagée et utilisés pour rechercher d'autres bibliothèques partagées dont " +"elle dépend à l'exécution. (Ceci est probablement valable uniquement sous " +"UNIX.)" + +#: ../Doc/distutils/apiref.rst:660 +msgid "" +"*export_symbols* is a list of symbols that the shared library will export. " +"(This appears to be relevant only on Windows.)" +msgstr "" +"*export_symbols* est une liste de symboles que la bibliothèque partagée va " +"exporter. (Ceci est probablement valable uniquement sous Window.)" + +#: ../Doc/distutils/apiref.rst:663 +msgid "" +"*debug* is as for :meth:`compile` and :meth:`create_static_lib`, with the " +"slight distinction that it actually matters on most platforms (as opposed " +"to :meth:`create_static_lib`, which includes a *debug* flag mostly for " +"form's sake)." +msgstr "" +"*debug* s'utilise comme pour :meth:`compile` et :meth:`create_static_lib`, " +"avec la nuance qu'elle a ici une importance sur la plupart des plateformes " +"(par opposition à :meth:`create_static_lib` qui inclut une option *debug* " +"pour se conformer à l'interface)." + +#: ../Doc/distutils/apiref.rst:668 +msgid "" +"*extra_preargs* and *extra_postargs* are as for :meth:`compile` (except of " +"course that they supply command-line arguments for the particular linker " +"being used)." +msgstr "" +"*extra_preargs* et *extra_postargs* s'utilisent comme pour :meth:`compile` " +"(sauf bien sûr qu'ils fournissent des arguments à la ligne de commande pour " +"l'éditeur de liens spécifique utilisé)." + +#: ../Doc/distutils/apiref.rst:675 +msgid "Raises :exc:`LinkError` on failure." +msgstr "Lève :exc:`LinkError` en cas d'échec." + +#: ../Doc/distutils/apiref.rst:680 +msgid "" +"Link an executable. *output_progname* is the name of the file executable, " +"while *objects* are a list of object filenames to link in. Other arguments " +"are as for the :meth:`link` method." +msgstr "" +"Lie un exécutable. *output_progname* est le nom de l'exécutable du fichier, " +"tandis que *objects* est une liste de noms de fichiers objets à lier. Les " +"autres arguments sont les mêmes que pour la méthode :meth:`link`." + +#: ../Doc/distutils/apiref.rst:687 +msgid "" +"Link a shared library. *output_libname* is the name of the output library, " +"while *objects* is a list of object filenames to link in. Other arguments " +"are as for the :meth:`link` method." +msgstr "" +"Lie une bibliothèque partagée. *output_libname* est le nom de la " +"bibliothèque de sortie, tandis que *objects* est une liste de noms de " +"fichiers d'objets à lier. Les autres arguments sont les mêmes que pour la " +"méthode :meth:`link`." + +#: ../Doc/distutils/apiref.rst:694 +msgid "" +"Link a shared object. *output_filename* is the name of the shared object " +"that will be created, while *objects* is a list of object filenames to link " +"in. Other arguments are as for the :meth:`link` method." +msgstr "" +"Lie un objet partagé. *output_filename* est le nom de l'objet partagé qui " +"sera créé, tandis que *objects* est une liste de noms de fichiers d'objets à " +"lier. Les autres arguments sont les mêmes que pour la méthode :meth:`link`." + +#: ../Doc/distutils/apiref.rst:701 +msgid "" +"Preprocess a single C/C++ source file, named in *source*. Output will be " +"written to file named *output_file*, or *stdout* if *output_file* not " +"supplied. *macros* is a list of macro definitions as for :meth:`compile`, " +"which will augment the macros set with :meth:`define_macro` and :meth:" +"`undefine_macro`. *include_dirs* is a list of directory names that will be " +"added to the default list, in the same way as :meth:`add_include_dir`." +msgstr "" +"Prétraitement d'un seul fichier source C/C++, désigné dans *source*. La " +"sortie du traitement est écrite dans un fichier nommé *output_file*, ou dans " +"*stdout* si *output_file* n'est pas fourni. *macros* est une liste de " +"définitions de macros comme pour :meth:`compile`, qui vont s'ajouter aux " +"macros définies avec :meth:`define_macro` et :meth:`undefine_macro`. " +"*include_dirs* est une liste de noms de répertoires qui seront ajoutés à la " +"liste par défaut, de la même manière que :meth:`add_include_dir`." + +#: ../Doc/distutils/apiref.rst:708 +msgid "Raises :exc:`PreprocessError` on failure." +msgstr "Lève :exc:`PreprocessError` en cas d'échec." + +#: ../Doc/distutils/apiref.rst:710 +msgid "" +"The following utility methods are defined by the :class:`CCompiler` class, " +"for use by the various concrete subclasses." +msgstr "" +"Les méthodes utilitaires suivantes sont définies par la classe :class:" +"`CCompiler`, à l'usage des différentes sous-classes concrètes." + +#: ../Doc/distutils/apiref.rst:716 +msgid "" +"Returns the filename of the executable for the given *basename*. Typically " +"for non-Windows platforms this is the same as the basename, while Windows " +"will get a :file:`.exe` added." +msgstr "" +"Renvoie le nom de fichier de l'exécutable pour un *nom de base* donné. " +"Généralement, pour les plates-formes non Windows, c'est le même nom que le " +"nom de base, tandis que sur Windows l'extension :file:`.exe` sera ajouté." + +#: ../Doc/distutils/apiref.rst:723 +msgid "" +"Returns the filename for the given library name on the current platform. On " +"Unix a library with *lib_type* of ``'static'`` will typically be of the " +"form :file:`liblibname.a`, while a *lib_type* of ``'dynamic'`` will be of " +"the form :file:`liblibname.so`." +msgstr "" +"Renvoie le nom de fichier pour le nom de bibliothèque donné sur la plate-" +"forme actuelle. Sous Unix, une bibliothèque avec un *lib_type* de type " +"``static`` sera généralement de la forme :file:`liblibname.a`, tandis qu'un " +"*lib_type* de type ``dynamic`` sera de la forme :file:`liblibname.so`." + +#: ../Doc/distutils/apiref.rst:731 +msgid "" +"Returns the name of the object files for the given source files. " +"*source_filenames* should be a list of filenames." +msgstr "" +"Renvoie le nom des fichiers objets pour les fichiers sources donnés. " +"*source_filenames* doit être une liste de noms de fichiers." + +#: ../Doc/distutils/apiref.rst:737 +msgid "" +"Returns the name of a shared object file for the given file name *basename*." +msgstr "" +"Renvoie le nom d'un fichier objet partagé pour le nom de fichier *basename*." + +#: ../Doc/distutils/apiref.rst:742 +msgid "" +"Invokes :func:`distutils.util.execute`. This method invokes a Python " +"function *func* with the given arguments *args*, after logging and taking " +"into account the *dry_run* flag." +msgstr "" +"Invoque :func:`distutils.util.execute`. Cette méthode invoque une fonction " +"Python *func* avec les arguments *args* , après journalisation et prise en " +"compte de l'option *dry_run*." + +#: ../Doc/distutils/apiref.rst:749 +msgid "" +"Invokes :func:`distutils.util.spawn`. This invokes an external process to " +"run the given command." +msgstr "" +"Invoque :func:`distutils.util.spawn`. Invoque un processus externe pour " +"exécuter la commande donnée." + +#: ../Doc/distutils/apiref.rst:755 +msgid "" +"Invokes :func:`distutils.dir_util.mkpath`. This creates a directory and any " +"missing ancestor directories." +msgstr "" +"Invoque :func:`distutils.dir_util.mkpath`. Crée un répertoire et tous les " +"répertoires parents manquants." + +#: ../Doc/distutils/apiref.rst:761 +msgid "Invokes :meth:`distutils.file_util.move_file`. Renames *src* to *dst*." +msgstr "Invoque :meth:`distutils.file_util.move_file`. Renomme *src* en *dst*." + +#: ../Doc/distutils/apiref.rst:766 +msgid "Write a message using :func:`distutils.log.debug`." +msgstr "Écrit un message en utilisant :func:`distutils.log.debug`." + +#: ../Doc/distutils/apiref.rst:771 +msgid "Write a warning message *msg* to standard error." +msgstr "" +"Écris un message d'avertissement *msg* dans la sortie d'erreur standard." + +#: ../Doc/distutils/apiref.rst:776 +msgid "" +"If the *debug* flag is set on this :class:`CCompiler` instance, print *msg* " +"to standard output, otherwise do nothing." +msgstr "" +"Si l'option *debug* est activée pour cette instance de :class:`CCompiler`, " +"affiche *msg* sur la sortie standard, sinon rien ne s'affiche." + +#: ../Doc/distutils/apiref.rst:788 +msgid ":mod:`distutils.unixccompiler` --- Unix C Compiler" +msgstr ":mod:`distutils.unixccompiler` — Compilateur C Unix" + +#: ../Doc/distutils/apiref.rst:794 +msgid "" +"This module provides the :class:`UnixCCompiler` class, a subclass of :class:" +"`CCompiler` that handles the typical Unix-style command-line C compiler:" +msgstr "" +"Ce module fournit la classe :class:`UnixCCompiler`, une sous-classe de la " +"classe :class:`CCompiler` qui gère les compilateurs C ayant une interface en " +"ligne de commande conforme au standard Unix :" + +#: ../Doc/distutils/apiref.rst:797 +msgid "macros defined with :option:`!-Dname[=value]`" +msgstr "macros définies avec l'option :option:`!-Dname[=value]`." + +#: ../Doc/distutils/apiref.rst:799 +msgid "macros undefined with :option:`!-Uname`" +msgstr "macros désaffectées avec :option:`!-Uname`." + +#: ../Doc/distutils/apiref.rst:801 +msgid "include search directories specified with :option:`!-Idir`" +msgstr "" +"inclut les répertoires de recherche spécifiés avec l'option :option:`!-Idir`." + +#: ../Doc/distutils/apiref.rst:803 +msgid "libraries specified with :option:`!-llib`" +msgstr "bibliothèques spécifiées avec l'option :option:`!-llib`" + +#: ../Doc/distutils/apiref.rst:805 +msgid "library search directories specified with :option:`!-Ldir`" +msgstr "" +"répertoires de recherche des bibliothèques définis avec l'option :option:`!-" +"Ldir`." + +#: ../Doc/distutils/apiref.rst:807 +msgid "" +"compile handled by :program:`cc` (or similar) executable with :option:`!-c` " +"option: compiles :file:`.c` to :file:`.o`" +msgstr "" +"compilation gérée par :program:`cc` (ou similaire) exécutable avec l'option :" +"option:`!-c` compile :file:`.c` vers :file:`.o`." + +#: ../Doc/distutils/apiref.rst:810 +msgid "" +"link static library handled by :program:`ar` command (possibly with :program:" +"`ranlib`)" +msgstr "" +"édition de liens pour une bibliothèque statique gérée par le programme en " +"ligne de commande :program:`ar` (éventuellement avec le programme :program:" +"`ranlib`)." + +#: ../Doc/distutils/apiref.rst:813 +msgid "link shared library handled by :program:`cc` :option:`!-shared`" +msgstr "" +"édition de liens pour une bibliothèque gérée par :program:`cc` :option:`!-" +"shared`." + +#: ../Doc/distutils/apiref.rst:817 +msgid ":mod:`distutils.msvccompiler` --- Microsoft Compiler" +msgstr ":mod:`distutils.msvccompiler` — Compilateur Microsoft" + +#: ../Doc/distutils/apiref.rst:824 +msgid "" +"This module provides :class:`MSVCCompiler`, an implementation of the " +"abstract :class:`CCompiler` class for Microsoft Visual Studio. Typically, " +"extension modules need to be compiled with the same compiler that was used " +"to compile Python. For Python 2.3 and earlier, the compiler was Visual " +"Studio 6. For Python 2.4 and 2.5, the compiler is Visual Studio .NET 2003." +msgstr "" +"Ce module fournit :class:`MSVCCompiler`, une implémentation de la classe " +"abstraite :class:`CCompiler` pour Microsoft Visual Studio. Généralement, les " +"modules d'extension doivent être compilés avec le même compilateur que celui " +"utilisé pour compiler Python. Pour Python 2.3 et les versions antérieures, " +"le compilateur était Visual Studio 6. Pour Python 2.4 et 2.5, le compilateur " +"est Visual Studio .NET 2003." + +#: ../Doc/distutils/apiref.rst:830 +msgid "" +":class:`MSVCCompiler` will normally choose the right compiler, linker etc. " +"on its own. To override this choice, the environment variables " +"*DISTUTILS_USE_SDK* and *MSSdk* must be both set. *MSSdk* indicates that the " +"current environment has been setup by the SDK's ``SetEnv.Cmd`` script, or " +"that the environment variables had been registered when the SDK was " +"installed; *DISTUTILS_USE_SDK* indicates that the distutils user has made an " +"explicit choice to override the compiler selection by :class:`MSVCCompiler`." +msgstr "" +"La classe :class:`MSVCCompiler` sélectionnera normalement le bon " +"compilateur, éditeur de liens, etc. Pour remplacer ces choix, les variables " +"d'environnement *DISTUTILS_USE_SDK* et *MSSdk* doivent être toutes les deux " +"définies. *MSSdk* indique que l'environnement courant a été configuré par le " +"script ``SetEnv.Cmd`` du kit de développement logiciel (*SDK*), ou que les " +"variables d'environnement ont été enregistrées lorsque le kit a été " +"installé ; *DISTUTILS_USE_SDK* indique que l'utilisateur de *distutils* a " +"choisi explicitement de remplacer le compilateur utilisé par :class:" +"`MSVCCompiler`." + +#: ../Doc/distutils/apiref.rst:840 +msgid ":mod:`distutils.bcppcompiler` --- Borland Compiler" +msgstr ":mod:`distutils.bcppcompiler` — Compilateur Borland" + +#: ../Doc/distutils/apiref.rst:845 +msgid "" +"This module provides :class:`BorlandCCompiler`, a subclass of the abstract :" +"class:`CCompiler` class for the Borland C++ compiler." +msgstr "" +"Ce module fournit :class:`BorlandCCompiler`, une sous-classe de la classe " +"abstraite :class:`CCompiler` classe pour le compilateur Borland C++." + +#: ../Doc/distutils/apiref.rst:850 +msgid ":mod:`distutils.cygwincompiler` --- Cygwin Compiler" +msgstr ":mod:`distutils.cygwincompiler` — Compilateur Cygwin" + +#: ../Doc/distutils/apiref.rst:855 +msgid "" +"This module provides the :class:`CygwinCCompiler` class, a subclass of :" +"class:`UnixCCompiler` that handles the Cygwin port of the GNU C compiler to " +"Windows. It also contains the Mingw32CCompiler class which handles the " +"mingw32 port of GCC (same as cygwin in no-cygwin mode)." +msgstr "" +"Ce module fournit la classe :class:`CygwinCCompiler`, une sous-classe de la " +"classe :class:`UnixCCompiler` qui gère *Cygwin*, le portage du compilateur " +"GNU C sur Windows. Il contient également la classe Mingw32CCompiler qui " +"gère le portage *mingw32* de GCC (comme *cygwin* en mode *no-cygwin*)." + +#: ../Doc/distutils/apiref.rst:862 +msgid ":mod:`distutils.archive_util` --- Archiving utilities" +msgstr ":mod:`distutils.archive_util` — Utilitaires d'archivage" + +#: ../Doc/distutils/apiref.rst:868 +msgid "" +"This module provides a few functions for creating archive files, such as " +"tarballs or zipfiles." +msgstr "" +"Ce module fournit quelques fonctions pour créer des fichiers d'archive, tels " +"que des archives aux formats *tarballs* ou *zipfiles*." + +#: ../Doc/distutils/apiref.rst:874 +msgid "" +"Create an archive file (eg. ``zip`` or ``tar``). *base_name* is the name " +"of the file to create, minus any format-specific extension; *format* is the " +"archive format: one of ``zip``, ``tar``, ``gztar``, ``bztar``, ``xztar``, or " +"``ztar``. *root_dir* is a directory that will be the root directory of the " +"archive; ie. we typically ``chdir`` into *root_dir* before creating the " +"archive. *base_dir* is the directory where we start archiving from; ie. " +"*base_dir* will be the common prefix of all files and directories in the " +"archive. *root_dir* and *base_dir* both default to the current directory. " +"Returns the name of the archive file." +msgstr "" +"Crée un fichier d'archive (par exemple ``zip`` ou ``tar``). *base_name* est " +"le nom du fichier à créer, sans extension spécifique indiquant le format. " +"*format* est le format d'archive : un parmi ``zip``, ``tar``, ``gztar``, " +"``bztar``, ``xztar``, ``xztar``, ou ``ztar``. *root_dir* est un répertoire " +"qui sera le répertoire racine de l'archive ; c'est-à-dire que le programme " +"se positionne dans *root_dir* avant de créer l'archive. *base_dir* est le " +"répertoire à partir duquel se lance l'archivage ; par exemple, *base_dir* " +"est le préfixe commun à tous les fichiers et répertoires de l'archive. " +"*root_dir* et *base_dir* sont tous deux par défaut dans le répertoire " +"courant. Renvoie le nom du fichier archive." + +#: ../Doc/distutils/apiref.rst:884 +msgid "Added support for the ``xztar`` format." +msgstr "Ajout du support des fichiers ``xztar``." + +#: ../Doc/distutils/apiref.rst:890 +msgid "" +"'Create an (optional compressed) archive as a tar file from all files in and " +"under *base_dir*. *compress* must be ``'gzip'`` (the default), ``'bzip2'``, " +"``'xz'``, ``'compress'``, or ``None``. For the ``'compress'`` method the " +"compression utility named by :program:`compress` must be on the default " +"program search path, so this is probably Unix-specific. The output tar file " +"will be named :file:`base_dir.tar`, possibly plus the appropriate " +"compression extension (``.gz``, ``.bz2``, ``.xz`` or ``.Z``). Return the " +"output filename." +msgstr "" +"Crée une archive (compressée en option) sous forme de fichier au format " +"*tar* à partir de tous les fichiers dans et sous *base_dir*. *compress* doit " +"être ``'gzip'`` (par défaut), ``'bzip2'``, ``'xz'``, ``'compress'`` ou " +"``None``. Pour la méthode ``'compress'`` l'utilitaire de compression nommé " +"par :program:`compress` doit être sur le chemin de recherche par défaut, " +"donc c'est sans doute spécifique à Unix. Le fichier *tar* de sortie sera " +"nommé :file:`base_dir.tar`, avec l'extension de compression appropriée (``." +"gz``, ``.bz2``, ``.xz`` ou ``.Z``). Renvoie le nom du fichier de sortie." + +#: ../Doc/distutils/apiref.rst:899 +msgid "Added support for the ``xz`` compression." +msgstr "Ajout du support de la compression ``xz``." + +#: ../Doc/distutils/apiref.rst:905 +msgid "" +"Create a zip file from all files in and under *base_dir*. The output zip " +"file will be named *base_name* + :file:`.zip`. Uses either the :mod:" +"`zipfile` Python module (if available) or the InfoZIP :file:`zip` utility " +"(if installed and found on the default search path). If neither tool is " +"available, raises :exc:`DistutilsExecError`. Returns the name of the " +"output zip file." +msgstr "" +"Crée un fichier zip à partir de tous les fichiers dans et sous *base_dir*. " +"Le fichier zip de sortie est nommé *base_name* + :file:`.zip`. Utilise soit " +"le module Python :mod:`zipfile` (si disponible) ou l'utilitaire InfoZIP :" +"file:`zip` (s'il est installé et trouvé sur le chemin de recherche par " +"défaut). Si aucun des deux outils n'est disponible, lève :exc:" +"`DistutilsExecError`. Renvoie le nom du fichier zip de sortie." + +#: ../Doc/distutils/apiref.rst:913 +msgid ":mod:`distutils.dep_util` --- Dependency checking" +msgstr ":mod:`distutils.dep_util` — Vérification des dépendances" + +#: ../Doc/distutils/apiref.rst:919 +msgid "" +"This module provides functions for performing simple, timestamp-based " +"dependency of files and groups of files; also, functions based entirely on " +"such timestamp dependency analysis." +msgstr "" +"Ce module fournit des fonctions permettant d'effectuer des tests de " +"dépendance simples, basés sur les horodatages de fichiers et de groupes de " +"fichiers, ainsi que des fonctionnalités entièrement basées sur ces analyses " +"de dépendance par rapport aux horodatages." + +#: ../Doc/distutils/apiref.rst:926 +msgid "" +"Return true if *source* exists and is more recently modified than *target*, " +"or if *source* exists and *target* doesn't. Return false if both exist and " +"*target* is the same age or newer than *source*. Raise :exc:" +"`DistutilsFileError` if *source* does not exist." +msgstr "" +"Renvoie la valeur *true* si *source* existe et a été modifiée plus récemment " +"que *target*, ou si *source* existe et *target* n'existe pas. Renvoie la " +"valeur *false* si les deux existent et que *target* est aussi ou plus récent " +"que *source*. Lève :exc:`DistutilsFileError` si *source* n'existe pas." + +#: ../Doc/distutils/apiref.rst:934 +msgid "" +"Walk two filename lists in parallel, testing if each source is newer than " +"its corresponding target. Return a pair of lists (*sources*, *targets*) " +"where source is newer than target, according to the semantics of :func:" +"`newer`." +msgstr "" +"Parcourt en parallèle deux listes de noms de fichiers, en vérifiant si " +"chaque source est plus récente que sa cible correspondante. Renvoie une " +"paire de listes (*sources*, *cibles*) où la source est plus récente que la " +"cible, selon la sémantique de :func:`newer`." + +#: ../Doc/distutils/apiref.rst:943 +msgid "" +"Return true if *target* is out-of-date with respect to any file listed in " +"*sources*. In other words, if *target* exists and is newer than every file " +"in *sources*, return false; otherwise return true. *missing* controls what " +"we do when a source file is missing; the default (``'error'``) is to blow up " +"with an :exc:`OSError` from inside :func:`os.stat`; if it is ``'ignore'``, " +"we silently drop any missing source files; if it is ``'newer'``, any missing " +"source files make us assume that *target* is out-of-date (this is handy in " +"\"dry-run\" mode: it'll make you pretend to carry out commands that wouldn't " +"work because inputs are missing, but that doesn't matter because you're not " +"actually going to run the commands)." +msgstr "" +"Renvoie la valeur *True* si *target* a une date dépassée par rapport à un " +"fichier figurant dans *sources* En d'autres termes, si *target* existe et " +"est plus récente que chaque fichier dans *sources*, renvoie la valeur " +"*False* ; sinon renvoie la valeur *True*. *missing* contrôle ce qui se passe " +"lorsqu'un fichier source est manquant ; la valeur par défaut (``'error'``) " +"est de lever une exception :exc:`OSError` à l'intérieur de :func:`os.stat` ; " +"si *missing* vaut ``'ignore'``,tout fichier source manquant est ignoré. Si " +"*missing* vaut ``'newer'``, tout fichier source manquant indique que " +"*target* n'est plus à jour (ce qui est utile en mode *dry-run* : cela permet " +"d'exécuter des commandes qui ne fonctionneraient pas parce que des entrées " +"sont manquantes sans les exécuter réellement)." + +#: ../Doc/distutils/apiref.rst:956 +msgid ":mod:`distutils.dir_util` --- Directory tree operations" +msgstr "" +":mod:`distutils.dir_util` --- Opérations sur l'arborescence des répertoires" + +#: ../Doc/distutils/apiref.rst:962 +msgid "" +"This module provides functions for operating on directories and trees of " +"directories." +msgstr "" +"Ce module fournit des fonctions pour travailler sur des répertoires et des " +"arborescences de répertoires." + +#: ../Doc/distutils/apiref.rst:968 +msgid "" +"Create a directory and any missing ancestor directories. If the directory " +"already exists (or if *name* is the empty string, which means the current " +"directory, which of course exists), then do nothing. Raise :exc:" +"`DistutilsFileError` if unable to create some directory along the way (eg. " +"some sub-path exists, but is a file rather than a directory). If *verbose* " +"is true, print a one-line summary of each mkdir to stdout. Return the list " +"of directories actually created." +msgstr "" +"Crée un répertoire et tous les répertoires parents manquants. Si le " +"répertoire existe déjà (ou si *name* est la chaîne vide, c'est-à-dire le " +"répertoire courant, qui existe bien sûr), alors ne fait rien. Lève :exc:" +"`DistutilsFileError` s'il n'est pas possible de créer un répertoire en cours " +"de route (par exemple, un sous-chemin existe, mais est un fichier plutôt " +"qu'un répertoire). Si *verbose* est vrai, affiche un résumé d'une ligne de " +"chaque *mkdir* vers *stdout*. Renvoie la liste des répertoires réellement " +"créés." + +#: ../Doc/distutils/apiref.rst:979 +msgid "" +"Create all the empty directories under *base_dir* needed to put *files* " +"there. *base_dir* is just the name of a directory which doesn't necessarily " +"exist yet; *files* is a list of filenames to be interpreted relative to " +"*base_dir*. *base_dir* + the directory portion of every file in *files* will " +"be created if it doesn't already exist. *mode*, *verbose* and *dry_run* " +"flags are as for :func:`mkpath`." +msgstr "" +"Crée tous les répertoires vides sous *base_dir* nécessaires pour placer " +"*files*. *base_dir* est le nom d'un répertoire qui n'existe pas encore " +"nécessairement ; *files* est une liste de noms de fichiers relatifs à " +"*base_dir*. *base_dir* + la partie répertoire de chaque fichier dans *files* " +"est créée si elle n'existe pas déjà. Les options *mode*, *verbose* et " +"*dry_run* sont les mêmes que pour :func:`mkpath`." + +#: ../Doc/distutils/apiref.rst:989 +msgid "" +"Copy an entire directory tree *src* to a new location *dst*. Both *src* and " +"*dst* must be directory names. If *src* is not a directory, raise :exc:" +"`DistutilsFileError`. If *dst* does not exist, it is created with :func:" +"`mkpath`. The end result of the copy is that every file in *src* is copied " +"to *dst*, and directories under *src* are recursively copied to *dst*. " +"Return the list of files that were copied or might have been copied, using " +"their output name. The return value is unaffected by *update* or *dry_run*: " +"it is simply the list of all files under *src*, with the names changed to be " +"under *dst*." +msgstr "" +"Copie une arborescence de répertoires entière *src* vers un nouvel " +"emplacement *dst*. *src* et *dst* doivent tous deux être des noms de " +"répertoire. Si *src* n'est pas un répertoire, lève :exc:" +"`DistutilsFileError`. Si *dst* n'existe pas, il est créé avec :func:" +"`mkpath`. Le résultat final de la copie est que chaque fichier dans *src* " +"est copié dans *dst*, et les répertoires sous *src* sont récursivement " +"copiés dans *dst*. Renvoie la liste des fichiers qui ont été copiés ou qui " +"auraient pu l'être, en utilisant leur nom de sortie. La valeur renvoyée " +"n'est pas affectée par *update* ou *dry_run* : c'est tout simplement la " +"liste de tous les fichiers sous *src*, avec les noms modifiés pour être sous " +"*dst*." + +#: ../Doc/distutils/apiref.rst:999 +msgid "" +"*preserve_mode* and *preserve_times* are the same as for :func:`distutils." +"file_util.copy_file`; note that they only apply to regular files, not to " +"directories. If *preserve_symlinks* is true, symlinks will be copied as " +"symlinks (on platforms that support them!); otherwise (the default), the " +"destination of the symlink will be copied. *update* and *verbose* are the " +"same as for :func:`copy_file`." +msgstr "" +"Les modes *preserve_mode* et *preserve_times* sont les mêmes que pour :func:" +"`distutils.file_util.copy_file` ; il faut savoir que cela ne concerne que " +"les fichiers réguliers, et non les dossiers. Si *preserve_symlinks* est " +"vrai, les liens symboliques seront copiés en tant que liens symboliques (sur " +"les plateformes qui les gèrent !); sinon (par défaut), la destination du " +"lien sera copiée. *update* et *verbose* sont les mêmes que pour :func:" +"`copy_file`." + +#: ../Doc/distutils/apiref.rst:1007 +msgid "" +"Files in *src* that begin with :file:`.nfs` are skipped (more information on " +"these files is available in answer D2 of the `NFS FAQ page `_)." +msgstr "" +"Les fichiers dans *src* qui commencent par :file:`.nfs` sont ignorés (plus " +"d'informations sur ces fichiers sont disponibles dans la réponse *D2* de la " +"page `NFS FAQ page `_)." + +#: ../Doc/distutils/apiref.rst:1011 +msgid "NFS files are ignored." +msgstr "Les fichiers NFS sont ignorés." + +#: ../Doc/distutils/apiref.rst:1016 +msgid "" +"Recursively remove *directory* and all files and directories underneath it. " +"Any errors are ignored (apart from being reported to ``sys.stdout`` if " +"*verbose* is true)." +msgstr "" +"Supprime récursivement *directory* et tous les fichiers et répertoires en " +"dessous. Toutes les erreurs sont ignorées (sauf si *verbose* est vrai, elles " +"sont affichées sur ``sys.stdout``)." + +#: ../Doc/distutils/apiref.rst:1022 +msgid ":mod:`distutils.file_util` --- Single file operations" +msgstr ":mod:`distutils.file_util` — Traitements mono-fichier" + +#: ../Doc/distutils/apiref.rst:1028 +msgid "" +"This module contains some utility functions for operating on individual " +"files." +msgstr "" +"Ce module contient quelques fonctions de service pour travailler sur des " +"fichiers individuels." + +#: ../Doc/distutils/apiref.rst:1033 +msgid "" +"Copy file *src* to *dst*. If *dst* is a directory, then *src* is copied " +"there with the same name; otherwise, it must be a filename. (If the file " +"exists, it will be ruthlessly clobbered.) If *preserve_mode* is true (the " +"default), the file's mode (type and permission bits, or whatever is " +"analogous on the current platform) is copied. If *preserve_times* is true " +"(the default), the last-modified and last-access times are copied as well. " +"If *update* is true, *src* will only be copied if *dst* does not exist, or " +"if *dst* does exist but is older than *src*." +msgstr "" +"Copie le fichier *src* dans *dst*. Si *dst* est un répertoire, alors *src* y " +"est copié avec le même nom ; sinon, il faut que ce soit un nom de fichier. " +"Si *preserve_mode* est vrai (par défaut), le mode du fichier (son type et " +"ses bits de permission, ou ce qui est analogue sur la plate-forme actuelle) " +"sont copiés. Si *preserve_times* est vrai (par défaut), les horodatages de " +"la dernière modification et du dernier accès sont également copiés. Si " +"*update* est vrai, *src* ne peut être copié que si *dst* n'existe pas, ou si " +"*dst* existe mais est plus ancien que *src*." + +#: ../Doc/distutils/apiref.rst:1042 +msgid "" +"*link* allows you to make hard links (using :func:`os.link`) or symbolic " +"links (using :func:`os.symlink`) instead of copying: set it to ``'hard'`` or " +"``'sym'``; if it is ``None`` (the default), files are copied. Don't set " +"*link* on systems that don't support it: :func:`copy_file` doesn't check if " +"hard or symbolic linking is available. It uses :func:`_copy_file_contents` " +"to copy file contents." +msgstr "" +"*link* permets de créer des liens physiques (en utilisant :func:`os.link`) " +"ou symboliques (en utilisant :func:`os.symlink`) au lieu de les copier : " +"paramétrez la valeur a ``'hard'`` ou ``'sym'`` ; si elle vaut ``None`` (par " +"défaut), les fichiers sont copiés. Ne définissez pas *link* sur les systèmes " +"qui ne les gèrent pas : :func:`copy_file` ne vérifie pas si des liens " +"symboliques ou physiques sont disponibles. La fonction :func:" +"`_copy_file_contents` est utilisée pour copier le contenu des fichiers." + +#: ../Doc/distutils/apiref.rst:1049 +msgid "" +"Return a tuple ``(dest_name, copied)``: *dest_name* is the actual name of " +"the output file, and *copied* is true if the file was copied (or would have " +"been copied, if *dry_run* true)." +msgstr "" +"Renvoie un couple ``(dest_name, copied)`` : *dest_name* est le nom réel du " +"fichier de sortie, et *copied* est vrai si le fichier a été copié (ou aurait " +"été copié, si *dry_run* est vrai)." + +#: ../Doc/distutils/apiref.rst:1063 +msgid "" +"Move file *src* to *dst*. If *dst* is a directory, the file will be moved " +"into it with the same name; otherwise, *src* is just renamed to *dst*. " +"Returns the new full name of the file." +msgstr "" +"Déplace le fichier *src* vers *dst*. Si *dst* est un répertoire, le fichier " +"y est déplacé avec le même nom ; sinon, *src* est simplement renommé *dst*. " +"Renvoie le nouveau nom complet du fichier." + +#: ../Doc/distutils/apiref.rst:1069 +msgid "" +"Handles cross-device moves on Unix using :func:`copy_file`. What about " +"other systems?" +msgstr "" +"Gère les déplacements inter-périphériques sous Unix en utilisant :func:" +"`copy_file`. Qu'en est-il sur les autres systèmes ?" + +#: ../Doc/distutils/apiref.rst:1075 +msgid "" +"Create a file called *filename* and write *contents* (a sequence of strings " +"without line terminators) to it." +msgstr "" +"Crée un fichier appelé *filename* et y écrit *contents* (une séquence de " +"chaînes sans terminaison de ligne)." + +#: ../Doc/distutils/apiref.rst:1080 +msgid ":mod:`distutils.util` --- Miscellaneous other utility functions" +msgstr ":mod:`distutils.util` — Autres fonctions de service" + +#: ../Doc/distutils/apiref.rst:1086 +msgid "" +"This module contains other assorted bits and pieces that don't fit into any " +"other utility module." +msgstr "" +"Ce module contient d'autres éléments qui ne correspondent à aucun autre " +"module de service." + +#: ../Doc/distutils/apiref.rst:1092 +msgid "" +"Return a string that identifies the current platform. This is used mainly " +"to distinguish platform-specific build directories and platform-specific " +"built distributions. Typically includes the OS name and version and the " +"architecture (as supplied by 'os.uname()'), although the exact information " +"included depends on the OS; e.g., on Linux, the kernel version isn't " +"particularly important." +msgstr "" +"Renvoie une chaîne qui identifie la plate-forme courante. Ceci est utilisé " +"pour distinguer les répertoires de compilation spécifiques aux plates-formes " +"et les distributions construites spécifiques aux plates-formes. Cette " +"chaîne inclut en règle générale le nom et la version de l'OS et " +"l'architecture (tels que fournis par la fonction ``os.uname()`` ). Bien que " +"l'information exacte dépend de l'OS, par exemple, sous Linux, la version " +"noyau ne joue pas un grand rôle." + +#: ../Doc/distutils/apiref.rst:1099 +msgid "Examples of returned values:" +msgstr "Exemples de valeurs renvoyées :" + +#: ../Doc/distutils/apiref.rst:1101 +msgid "``linux-i586``" +msgstr "``linux-i586``" + +#: ../Doc/distutils/apiref.rst:1102 +msgid "``linux-alpha``" +msgstr "``linux-alpha``" + +#: ../Doc/distutils/apiref.rst:1103 +msgid "``solaris-2.6-sun4u``" +msgstr "``solaris-2.6-sun4u``" + +#: ../Doc/distutils/apiref.rst:1105 +msgid "For non-POSIX platforms, currently just returns ``sys.platform``." +msgstr "" +"Pour les plates-formes qui ne sont pas POSIX, renvoie simplement ``sys." +"platform``." + +#: ../Doc/distutils/apiref.rst:1107 +msgid "" +"For Mac OS X systems the OS version reflects the minimal version on which " +"binaries will run (that is, the value of ``MACOSX_DEPLOYMENT_TARGET`` during " +"the build of Python), not the OS version of the current system." +msgstr "" +"Pour les systèmes Mac OS X, la version du système d'exploitation correspond " +"à la version minimale sur laquelle les binaires pourront être exécutés " +"(c'est-à-dire la valeur de ``MACOSX_DEPLOYMENT_TARGET`` pendant la " +"compilation de Python), et non la version du système actuel." + +#: ../Doc/distutils/apiref.rst:1111 +msgid "" +"For universal binary builds on Mac OS X the architecture value reflects the " +"universal binary status instead of the architecture of the current " +"processor. For 32-bit universal binaries the architecture is ``fat``, for 64-" +"bit universal binaries the architecture is ``fat64``, and for 4-way " +"universal binaries the architecture is ``universal``. Starting from Python " +"2.7 and Python 3.2 the architecture ``fat3`` is used for a 3-way universal " +"build (ppc, i386, x86_64) and ``intel`` is used for a universal build with " +"the i386 and x86_64 architectures" +msgstr "" +"Pour les binaires universels construits sur Mac OS X, la valeur de " +"l'architecture reflète l'état du binaire universel au lieu de celle de " +"l'architecture du processeur en cours. Pour les binaires universels 32 bits, " +"l'architecture est ``fat``, pour les binaires universels 64 bits, " +"l'architecture est ``fat64``, et pour les binaires universels 4 voies, " +"l'architecture est ``universelle``. A partir de Python 2.7 et Python 3.2, " +"l'architecture ``fat3`` est utilisée pour une compilation universelle à 3 " +"voies (*ppc*, *i386*, *x86_64*) et ``intel`` est utilisée pour une " +"compilation universelle avec les architectures *i386* et *x86_64*" + +#: ../Doc/distutils/apiref.rst:1120 +msgid "Examples of returned values on Mac OS X:" +msgstr "Exemples de valeurs renvoyées sous Mac OS X :" + +#: ../Doc/distutils/apiref.rst:1122 +msgid "``macosx-10.3-ppc``" +msgstr "``macosx-10.3-ppc``" + +#: ../Doc/distutils/apiref.rst:1124 +msgid "``macosx-10.3-fat``" +msgstr "``macosx-10.3-fat``" + +#: ../Doc/distutils/apiref.rst:1126 +msgid "``macosx-10.5-universal``" +msgstr "``macosx-10.5-universal``" + +#: ../Doc/distutils/apiref.rst:1128 +msgid "``macosx-10.6-intel``" +msgstr "``macosx-10.6-intel``" + +#: ../Doc/distutils/apiref.rst:1133 +msgid "" +"Return 'pathname' as a name that will work on the native filesystem, i.e. " +"split it on '/' and put it back together again using the current directory " +"separator. Needed because filenames in the setup script are always supplied " +"in Unix style, and have to be converted to the local convention before we " +"can actually use them in the filesystem. Raises :exc:`ValueError` on non-" +"Unix-ish systems if *pathname* either starts or ends with a slash." +msgstr "" +"Renvoie un chemin *pathname* qui fonctionne sur le système de fichiers " +"natif. Par exemple, il sépare le chemin sur */* et le recompose en utilisant " +"le séparateur de répertoires courant. Cela est nécessaire parce que les noms " +"de fichiers dans les scripts d'installations sont toujours fournis dans le " +"style Unix, et doivent être convertis dans la convention du système avant " +"d'être utilisé par le système de fichiers. Lève :exc:`ValueError` sur les " +"systèmes non UNIX si *pathname* commence ou se termine par une barre oblique " +"(*slash* en anglais)." + +#: ../Doc/distutils/apiref.rst:1143 +msgid "" +"Return *pathname* with *new_root* prepended. If *pathname* is relative, " +"this is equivalent to ``os.path.join(new_root,pathname)`` Otherwise, it " +"requires making *pathname* relative and then joining the two, which is " +"tricky on DOS/Windows." +msgstr "" +"Renvoie un chemin *pathname* préfixé avec *new_root*. Si *pathname* est " +"relatif, c`est l'équivalent de ``os.path.join(new_root,pathname)`` Sinon, il " +"faut rendre *pathname* relatif et joindre les deux, ce qui est dangereux " +"sous DOS/Windows." + +#: ../Doc/distutils/apiref.rst:1150 +msgid "" +"Ensure that 'os.environ' has all the environment variables we guarantee that " +"users can use in config files, command-line options, etc. Currently this " +"includes:" +msgstr "" +"Vérifie que 'os.environ' possède toutes les variables d'environnement " +"utilisables dans les fichiers de configuration, les options en ligne de " +"commande, etc. À l'heure actuelle, cela comprend :" + +#: ../Doc/distutils/apiref.rst:1154 +msgid ":envvar:`HOME` - user's home directory (Unix only)" +msgstr "" +":envvar:`HOME`. Répertoire d’accueil de l'utilisateur (Unix uniquement)" + +#: ../Doc/distutils/apiref.rst:1155 +msgid "" +":envvar:`PLAT` - description of the current platform, including hardware and " +"OS (see :func:`get_platform`)" +msgstr "" +":envvar:`PLAT`. Description de la plate-forme actuelle, y compris le " +"matériel et le l'OS (voir :func:`get_platform`)" + +#: ../Doc/distutils/apiref.rst:1161 +msgid "" +"Perform shell/Perl-style variable substitution on *s*. Every occurrence of " +"``$`` followed by a name is considered a variable, and variable is " +"substituted by the value found in the *local_vars* dictionary, or in ``os." +"environ`` if it's not in *local_vars*. *os.environ* is first checked/" +"augmented to guarantee that it contains certain values: see :func:" +"`check_environ`. Raise :exc:`ValueError` for any variables not found in " +"either *local_vars* or ``os.environ``." +msgstr "" +"Exécute la substitution de variable de style shell/Perl sur *s*. Chaque " +"occurrence de ``$`` suivie d'un nom est considérée comme une variable, et la " +"variable est remplacée par la valeur trouvée dans le dictionnaire " +"*local_vars*, ou dans ``os.environ`` si elle ne se trouve pas dans " +"*local_vars*. *os.environ* est d'abord vérifié/étendu pour garantir qu'elle " +"contient certaines valeurs : voir :func:`check_environ`. Lève :exc:" +"`ValueError` pour toute variable non trouvée dans *local_vars* ou ``os." +"environ``." + +#: ../Doc/distutils/apiref.rst:1168 +msgid "" +"Note that this is not a fully-fledged string interpolation function. A valid " +"``$variable`` can consist only of upper and lower case letters, numbers and " +"an underscore. No { } or ( ) style quoting is available." +msgstr "" +"Remarquez qu'il ne s'agit pas d'une fonction d'interpolation de chaîne à " +"part entière. Une ``$variable`` valide ne peut être composée que de lettres " +"majuscules et minuscules, de chiffres et d'un tiret bas. Aucune syntaxe de " +"type {} ou () pour indiquer des variables n'est disponible." + +#: ../Doc/distutils/apiref.rst:1175 +msgid "" +"Split a string up according to Unix shell-like rules for quotes and " +"backslashes. In short: words are delimited by spaces, as long as those " +"spaces are not escaped by a backslash, or inside a quoted string. Single and " +"double quotes are equivalent, and the quote characters can be backslash-" +"escaped. The backslash is stripped from any two-character escape sequence, " +"leaving only the escaped character. The quote characters are stripped from " +"any quoted string. Returns a list of words." +msgstr "" +"Sépare une chaîne de caractères selon les règles de type shell Unix pour les " +"guillemets et les barres obliques inverses. En bref : les mots sont " +"délimités par des espaces, tant que ces espaces ne sont pas échappées par " +"une barre oblique inversée, ou à l'intérieur d'une chaîne guillemets. Les " +"guillemets simples et doubles sont équivalents, et les caractères entre " +"guillemets peuvent être échappés à l'aide d'une barre oblique inversée. La " +"barre oblique inversée est supprimée de toute séquence d'échappement à deux " +"caractères, ne laissant que le caractère échappé. Les caractères guillemets " +"sont supprimés de toute chaîne de caractères entre guillemets. Renvoie une " +"liste de mots." + +#: ../Doc/distutils/apiref.rst:1188 +msgid "" +"Perform some action that affects the outside world (for instance, writing to " +"the filesystem). Such actions are special because they are disabled by the " +"*dry_run* flag. This method takes care of all that bureaucracy for you; " +"all you have to do is supply the function to call and an argument tuple for " +"it (to embody the \"external action\" being performed), and an optional " +"message to print." +msgstr "" +"Exécute une action qui affecte le monde extérieur (par exemple, écrire dans " +"le système de fichiers). De telles actions sont spéciales car elles sont " +"désactivées par l'option *dry_run*. Cette méthode s'occupe de tout. Vous " +"devez simplement fournir la fonction à appeler avec un couple d'argument lui " +"correspondant et un message facultatif à afficher." + +#: ../Doc/distutils/apiref.rst:1197 +msgid "Convert a string representation of truth to true (1) or false (0)." +msgstr "" +"Convertit une chaîne de caractères représentant une valeur booléenne en " +"``1`` (si elle est évaluée comme vraie) ou ``0`` (si elle est évaluée comme " +"fausse)." + +#: ../Doc/distutils/apiref.rst:1199 +msgid "" +"True values are ``y``, ``yes``, ``t``, ``true``, ``on`` and ``1``; false " +"values are ``n``, ``no``, ``f``, ``false``, ``off`` and ``0``. Raises :exc:" +"`ValueError` if *val* is anything else." +msgstr "" +"Les valeurs *vraies* sont , ``y``, ``yes``, ``t``, ``true``, ``on`` et " +"``1``. Les valeurs *fausses* sont ``n``, ``no``, ``f``, ``false``, ``off`` " +"et ``0``. Lève :exc:`ValueError` si *val* est autre chose." + +#: ../Doc/distutils/apiref.rst:1206 +msgid "" +"Byte-compile a collection of Python source files to :file:`.pyc` files in a :" +"file:`__pycache__` subdirectory (see :pep:`3147` and :pep:`488`). *py_files* " +"is a list of files to compile; any files that don't end in :file:`.py` are " +"silently skipped. *optimize* must be one of the following:" +msgstr "" +"Effectue une compilation vers du *bytecode* Python à partir d'un ensemble de " +"fichiers sources Python dans un fichier :file:`.pyc` dans un sous " +"répertoire :file:`__pycache__` (voir :pep:`3147` et :pep:`488`). *py_files* " +"est une liste de fichiers à compiler ; tous les fichiers qui ne se terminent " +"pas par :file:`.py` sont ignorés en silence. *optimize* doit être l'un des " +"éléments suivants :" + +#: ../Doc/distutils/apiref.rst:1211 +msgid "``0`` - don't optimize" +msgstr "``0``: ne pas optimiser" + +#: ../Doc/distutils/apiref.rst:1212 +msgid "``1`` - normal optimization (like ``python -O``)" +msgstr "``1``: optimisation normale (comme ``python -O``)" + +#: ../Doc/distutils/apiref.rst:1213 +msgid "``2`` - extra optimization (like ``python -OO``)" +msgstr "``2``: optimisation supplémentaire (comme ``python -OO``)" + +#: ../Doc/distutils/apiref.rst:1215 +msgid "If *force* is true, all files are recompiled regardless of timestamps." +msgstr "" +"Si *force* est vrai, tous les fichiers sont recompilés indépendamment des " +"horodatages." + +#: ../Doc/distutils/apiref.rst:1217 +msgid "" +"The source filename encoded in each :term:`bytecode` file defaults to the " +"filenames listed in *py_files*; you can modify these with *prefix* and " +"*basedir*. *prefix* is a string that will be stripped off of each source " +"filename, and *base_dir* is a directory name that will be prepended (after " +"*prefix* is stripped). You can supply either or both (or neither) of " +"*prefix* and *base_dir*, as you wish." +msgstr "" +"Le nom du fichier source encodé dans chaque fichier :term:`bytecode` est par " +"défaut le nom présent dans la liste des noms de fichiers source *py_files* ; " +"vous pouvez modifier dynamiquement ses noms avec *prefix* et *basedir*. " +"*prefix* est une chaîne de caractères qui sera supprimée de chaque nom de " +"fichier source, et *base_dir* est un nom de répertoire qui sera préfixé au " +"nom (après que le *prefixe* soit supprimé). Vous pouvez choisir de fournir " +"l'un ou l'autre (ou les deux) paramètres : *prefixe* et *base_dir*." + +#: ../Doc/distutils/apiref.rst:1224 +msgid "" +"If *dry_run* is true, doesn't actually do anything that would affect the " +"filesystem." +msgstr "" +"Si *dry_run* est vrai, ne fait rien qui puisse affecter le système de " +"fichiers." + +#: ../Doc/distutils/apiref.rst:1227 +msgid "" +"Byte-compilation is either done directly in this interpreter process with " +"the standard :mod:`py_compile` module, or indirectly by writing a temporary " +"script and executing it. Normally, you should let :func:`byte_compile` " +"figure out to use direct compilation or not (see the source for details). " +"The *direct* flag is used by the script generated in indirect mode; unless " +"you know what you're doing, leave it set to ``None``." +msgstr "" +"La compilation binaire se fait soit directement dans l'interpréteur courant " +"avec le module standard :mod:`py_compile`, soit indirectement en écrivant un " +"script temporaire et en l'exécutant. Normalement, vous devez laisser :func:" +"`byte_compile` choisir d'utiliser la compilation directe ou non (voir le " +"code-source pour les détails). Le paramètre *direct* est utilisé par le " +"script généré en mode indirect ; à moins que vous ne sachiez ce que vous " +"faites, laissez le paramètre à ``None`` (Aucun)." + +#: ../Doc/distutils/apiref.rst:1234 +msgid "" +"Create ``.pyc`` files with an :func:`import magic tag ` in " +"their name, in a :file:`__pycache__` subdirectory instead of files without " +"tag in the current directory." +msgstr "" +"Crée des fichiers ``.pyc`` avec un sous-répertoire :func:`import magic tag " +"` dans leur nom, dans le sous répertoire :file:`__pycache__` " +"plutôt que dans le répertoire courant, sans tag." + +#: ../Doc/distutils/apiref.rst:1239 +msgid "Create ``.pyc`` files according to :pep:`488`." +msgstr "Crée des fichiers ``.pyc`` selon la :pep:`488`." + +#: ../Doc/distutils/apiref.rst:1245 +msgid "" +"Return a version of *header* escaped for inclusion in an :rfc:`822` header, " +"by ensuring there are 8 spaces space after each newline. Note that it does " +"no other modification of the string." +msgstr "" +"Renvoie une version de *header* traitée avec les échappements compatibles " +"avec les en-têtes :rfc:`822`, en s'assurant qu'il y a 8 espaces après chaque " +"nouvelle ligne. Notez qu'il ne fait aucune autre modification de la chaîne " +"de caractères." + +#: ../Doc/distutils/apiref.rst:1255 +msgid ":mod:`distutils.dist` --- The Distribution class" +msgstr ":mod:`distutils.dist` — La classe Distribution" + +#: ../Doc/distutils/apiref.rst:1262 +msgid "" +"This module provides the :class:`~distutils.core.Distribution` class, which " +"represents the module distribution being built/installed/distributed." +msgstr "" +"Ce module fournit la classe :class:`~distutils.core.Distribution`, qui " +"représente le module *distribution* en cours de construction/installation/" +"distribution." + +#: ../Doc/distutils/apiref.rst:1267 +msgid ":mod:`distutils.extension` --- The Extension class" +msgstr ":mod:`distutils.extension` — La classe Extension" + +#: ../Doc/distutils/apiref.rst:1274 +msgid "" +"This module provides the :class:`Extension` class, used to describe C/C++ " +"extension modules in setup scripts." +msgstr "" +"Ce module fournit la classe :class:`Extension`, utilisée pour décrire les " +"modules d'extension C/C++ dans les scripts de configuration." + +#: ../Doc/distutils/apiref.rst:1282 +msgid ":mod:`distutils.debug` --- Distutils debug mode" +msgstr ":mod:`distutils.debug` — Mode de débogage du module *Distutils*" + +#: ../Doc/distutils/apiref.rst:1288 +msgid "This module provides the DEBUG flag." +msgstr "Ce module fournit l'option *DEBUG*." + +#: ../Doc/distutils/apiref.rst:1292 +msgid ":mod:`distutils.errors` --- Distutils exceptions" +msgstr ":mod:`distutils.errors` — Exceptions du module *Distutils*" + +#: ../Doc/distutils/apiref.rst:1298 +msgid "" +"Provides exceptions used by the Distutils modules. Note that Distutils " +"modules may raise standard exceptions; in particular, SystemExit is usually " +"raised for errors that are obviously the end-user's fault (eg. bad command-" +"line arguments)." +msgstr "" +"Fournit les exceptions utilisées par les modules de *Distutils*. Notez que " +"les modules *Distutils* peuvent soulever des exceptions standard ; en " +"particulier, ``SystemExit`` est généralement levée pour les erreurs qui sont " +"manifestement de la responsabilité de l'utilisateur final (ex : mauvais " +"argument en ligne de commande)." + +#: ../Doc/distutils/apiref.rst:1302 +msgid "" +"This module is safe to use in ``from ... import *`` mode; it only exports " +"symbols whose names start with ``Distutils`` and end with ``Error``." +msgstr "" +"Ce module est utilisable avec la syntaxe ``from ... import *`` ; il " +"n'exporte que des symboles dont le nom commence par ``Distutils`` et se " +"termine par ``Error``." + +#: ../Doc/distutils/apiref.rst:1307 +msgid "" +":mod:`distutils.fancy_getopt` --- Wrapper around the standard getopt module" +msgstr "" +":mod:`distutils.fancy_getopt` --- Encapsulation du module *getopt* standard" + +#: ../Doc/distutils/apiref.rst:1313 +msgid "" +"This module provides a wrapper around the standard :mod:`getopt` module " +"that provides the following additional features:" +msgstr "" +"Ce module est une encapsulation du module standard :mod:`getopt` qui apporte " +"les fonctionnalités supplémentaires suivantes :" + +#: ../Doc/distutils/apiref.rst:1316 +msgid "short and long options are tied together" +msgstr "Les options *short* et *long* sont liées entre elles." + +#: ../Doc/distutils/apiref.rst:1318 +msgid "" +"options have help strings, so :func:`fancy_getopt` could potentially create " +"a complete usage summary" +msgstr "" +"Les options ont des pages d'aide, donc :func:`fancy_getopt` pourrait " +"potentiellement créer un résumé d'utilisation complet" + +#: ../Doc/distutils/apiref.rst:1321 +msgid "options set attributes of a passed-in object" +msgstr "Les options définissent les attributs à partir d'un objet fourni." + +#: ../Doc/distutils/apiref.rst:1323 +msgid "" +"boolean options can have \"negative aliases\" --- eg. if :option:`!--quiet` " +"is the \"negative alias\" of :option:`!--verbose`, then :option:`!--quiet` " +"on the command line sets *verbose* to false." +msgstr "" +"Les options booléennes peuvent avoir des \"alias négatifs\" --- par exemple " +"l'option :option:`!-quiet` est *l'alias négatif* de :option:`!--verbose`, " +"l'option :option:`!-quiet` sur la ligne de commande met *verbose* à faux." + +#: ../Doc/distutils/apiref.rst:1329 +msgid "" +"Wrapper function. *options* is a list of ``(long_option, short_option, " +"help_string)`` 3-tuples as described in the constructor for :class:" +"`FancyGetopt`. *negative_opt* should be a dictionary mapping option names to " +"option names, both the key and value should be in the *options* list. " +"*object* is an object which will be used to store values (see the :meth:" +"`getopt` method of the :class:`FancyGetopt` class). *args* is the argument " +"list. Will use ``sys.argv[1:]`` if you pass ``None`` as *args*." +msgstr "" +"Encapsulation de la fonction ``getopt``. *options* est une liste de triplets " +"``(long_option, short_option, help_string)`` comme décrit dans le " +"constructeur de la classe :class:`FancyGetopt`. *negative_opt* doit être un " +"dictionnaire associant les noms des options aux noms des options, la clé et " +"la valeur doivent être dans la liste *options*. *object* est un objet qui " +"sera utilisé pour stocker des valeurs (voir la méthode :meth:`getopt` de la " +"classe :class:`FancyGetopt`). *args* est la liste des arguments. Utilise " +"``sys.argv[1 :]`` si ``None`` est passé à *args*." + +#: ../Doc/distutils/apiref.rst:1340 +msgid "Wraps *text* to less than *width* wide." +msgstr "" +"Ajoute des retours à la ligne à *texte* de manière à ce que la largeur soit " +"inférieure à *largeur*." + +#: ../Doc/distutils/apiref.rst:1345 +msgid "" +"The option_table is a list of 3-tuples: ``(long_option, short_option, " +"help_string)``" +msgstr "" +"La liste *option_table* est constituée de triplets : ``(long_option, " +"short_option, help_string*)``" + +#: ../Doc/distutils/apiref.rst:1348 +msgid "" +"If an option takes an argument, its *long_option* should have ``'='`` " +"appended; *short_option* should just be a single character, no ``':'`` in " +"any case. *short_option* should be ``None`` if a *long_option* doesn't have " +"a corresponding *short_option*. All option tuples must have long options." +msgstr "" +"Si une option prend un argument, sa *long_option* doit se terminer par " +"``'='``. *short_option* doit être un seul caractère, jamais ``':'`'. " +"*option_courte* doit être ``None`` si *long_option* n'a pas de " +"*short_option* correspondante. Tous les triplets d'options doivent avoir des " +"options longues." + +#: ../Doc/distutils/apiref.rst:1353 +msgid "The :class:`FancyGetopt` class provides the following methods:" +msgstr "La classe :class:`FancyGetopt` fournit les méthodes suivantes :" + +#: ../Doc/distutils/apiref.rst:1358 +msgid "Parse command-line options in args. Store as attributes on *object*." +msgstr "" +"Analyse les options de ligne de commande des arguments. Les stocke en tant " +"qu'attributs de *objet*." + +#: ../Doc/distutils/apiref.rst:1360 +msgid "" +"If *args* is ``None`` or not supplied, uses ``sys.argv[1:]``. If *object* " +"is ``None`` or not supplied, creates a new :class:`OptionDummy` instance, " +"stores option values there, and returns a tuple ``(args, object)``. If " +"*object* is supplied, it is modified in place and :func:`getopt` just " +"returns *args*; in both cases, the returned *args* is a modified copy of the " +"passed-in *args* list, which is left untouched." +msgstr "" +"Si *args* est ``None`` ou n'est pas définie, utilise ``sys.argv[1:]``. Si " +"*object* est ``None`` ou n'est pas définie, créer une nouvelle instance de " +"la classe :class:`OptionDummy` , stocke les valeurs d'options dans " +"l'instance et renvoie un couple ``(args, object)``. Si *objet* est fourni, " +"il est modifié sur place et :func:`getopt` renvoie simplement *args*; dans " +"les deux cas, Les arguments *args* renvoyés sont une copie modifiée de la " +"liste *args* transmise, qui est n'est pas modifiée." + +#: ../Doc/distutils/apiref.rst:1372 +msgid "" +"Returns the list of ``(option, value)`` tuples processed by the previous run " +"of :meth:`getopt` Raises :exc:`RuntimeError` if :meth:`getopt` hasn't been " +"called yet." +msgstr "" +"Renvoie la liste des couples ``(option, valeur)`` traités par l'exécution " +"précédente de :meth:`getopt`. Déclenche :exc:`RuntimeError` si :meth:" +"`getopt` n'a pas encore été appelée." + +#: ../Doc/distutils/apiref.rst:1379 +msgid "" +"Generate help text (a list of strings, one per suggested line of output) " +"from the option table for this :class:`FancyGetopt` object." +msgstr "" +"Génère un texte d'aide (une liste de chaînes, une par ligne de sortie " +"suggérée) de la liste d'options pour l'objet de la classe :class:" +"`FancyGetopt`." + +#: ../Doc/distutils/apiref.rst:1382 +msgid "If supplied, prints the supplied *header* at the top of the help." +msgstr "S'il est fourni, affiche l'en-tête *header* en haut de l'aide." + +#: ../Doc/distutils/apiref.rst:1386 +msgid ":mod:`distutils.filelist` --- The FileList class" +msgstr ":mod:`distutils.filelist` — La classe *FileList* liste des fichiers" + +#: ../Doc/distutils/apiref.rst:1393 +msgid "" +"This module provides the :class:`FileList` class, used for poking about the " +"filesystem and building lists of files." +msgstr "" +"Ce module fournit la classe :class:`FileList`, utilisée pour parcourir le " +"système de fichiers et construire des listes de fichiers." + +#: ../Doc/distutils/apiref.rst:1398 +msgid ":mod:`distutils.log` --- Simple PEP 282-style logging" +msgstr "" +":mod:`distutils.log` --- Journalisation basée sur le style de la PEP 282" + +#: ../Doc/distutils/apiref.rst:1405 +msgid ":mod:`distutils.spawn` --- Spawn a sub-process" +msgstr ":mod:`distutils.spawn` — Crée un sous-processus" + +#: ../Doc/distutils/apiref.rst:1411 +msgid "" +"This module provides the :func:`spawn` function, a front-end to various " +"platform-specific functions for launching another program in a sub-process. " +"Also provides :func:`find_executable` to search the path for a given " +"executable name." +msgstr "" +"Ce module offre la fonction :func:`spawn`, une interface avec diverses " +"fonctions spécifiques à la plate-forme pour lancer un autre programme dans " +"un sous-processus. Inclut également :func:`find_executable` pour rechercher " +"le chemin d'accès pour un nom d'exécutable donné." + +#: ../Doc/distutils/apiref.rst:1418 +msgid ":mod:`distutils.sysconfig` --- System configuration information" +msgstr "" +":mod:`distutils.sysconfig` --- Informations de configuration du système" + +#: ../Doc/distutils/apiref.rst:1427 +msgid "" +"The :mod:`distutils.sysconfig` module provides access to Python's low-level " +"configuration information. The specific configuration variables available " +"depend heavily on the platform and configuration. The specific variables " +"depend on the build process for the specific version of Python being run; " +"the variables are those found in the :file:`Makefile` and configuration " +"header that are installed with Python on Unix systems. The configuration " +"header is called :file:`pyconfig.h` for Python versions starting with 2.2, " +"and :file:`config.h` for earlier versions of Python." +msgstr "" +"Le module :mod:`distutils.sysconfig` donne accès aux informations de " +"configuration bas niveau de Python. Les variables de configuration " +"spécifiques disponibles dépendent de la plate-forme et de la configuration. " +"Les variables spécifiques dépendent du processus de compilation de la " +"version *spécifique* de Python en cours d'exécution. Les variables sont " +"celles qui se trouvent dans le fichier :file:`Makefile` et dans les entêtes " +"de configuration installés avec Python sur des systèmes Unix. Le fichier " +"des entêtes de configuration s'appelle :file:`pyconfig.h` pour les versions " +"de Python commençant par 2.2, et :file:`config.h` pour les versions " +"antérieures de Python." + +#: ../Doc/distutils/apiref.rst:1436 +msgid "" +"Some additional functions are provided which perform some useful " +"manipulations for other parts of the :mod:`distutils` package." +msgstr "" +"Quelques fonctions supplémentaires sont fournies pour effectuer des " +"manipulations utiles pour d'autres parties du paquet :mod:`distutils`." + +#: ../Doc/distutils/apiref.rst:1442 +msgid "The result of ``os.path.normpath(sys.prefix)``." +msgstr "Le résultat de ``os.path.normpath(sys.prefix)``." + +#: ../Doc/distutils/apiref.rst:1447 +msgid "The result of ``os.path.normpath(sys.exec_prefix)``." +msgstr "Le résultat de ``os.path.normpath(sys.exec_prefix)``." + +#: ../Doc/distutils/apiref.rst:1452 +msgid "" +"Return the value of a single variable. This is equivalent to " +"``get_config_vars().get(name)``." +msgstr "" +"Retourne la valeur d'une seule variable. C'est l'équivalent de " +"``get_config_vars().get(name)``." + +#: ../Doc/distutils/apiref.rst:1458 +msgid "" +"Return a set of variable definitions. If there are no arguments, this " +"returns a dictionary mapping names of configuration variables to values. If " +"arguments are provided, they should be strings, and the return value will be " +"a sequence giving the associated values. If a given name does not have a " +"corresponding value, ``None`` will be included for that variable." +msgstr "" +"Retourne un ensemble de définitions de variables. S'il n'y a pas " +"d'arguments, cela renvoie un dictionnaire qui associe les noms des variables " +"de configuration aux valeurs. Si des arguments sont spécifiés, ils doivent " +"être des chaînes de caractères, et la valeur renvoyée sera une séquence " +"donnant les valeurs correspondantes. Si un nom donné n'a pas de valeur " +"correspondante, la valeur ``None`` sera utilisée pour cette variable." + +#: ../Doc/distutils/apiref.rst:1467 +msgid "" +"Return the full path name of the configuration header. For Unix, this will " +"be the header generated by the :program:`configure` script; for other " +"platforms the header will have been supplied directly by the Python source " +"distribution. The file is a platform-specific text file." +msgstr "" +"Renvoie le nom complet du chemin d'accès de l'en-tête de configuration. " +"Pour Unix, c'est l'en-tête généré par le script :program:`configure` ; pour " +"les autres plates-formes, l'en-tête provient directement de la distribution " +"source Python. Le fichier est un fichier texte spécifique à la plate-forme." + +#: ../Doc/distutils/apiref.rst:1475 +msgid "" +"Return the full path name of the :file:`Makefile` used to build Python. For " +"Unix, this will be a file generated by the :program:`configure` script; the " +"meaning for other platforms will vary. The file is a platform-specific text " +"file, if it exists. This function is only useful on POSIX platforms." +msgstr "" +"Renvoie le nom complet du chemin d'accès du fichier :file:`Makefile` utilisé " +"pour construire Python. Pour Unix, c'est le fichier généré par le script :" +"program:`configure`. La définition pour les autres plateformes varie. S'il " +"existe, il s'agit d'un fichier texte spécifique à la plate-forme. Cette " +"fonction n'est utile que sur les plates-formes POSIX." + +#: ../Doc/distutils/apiref.rst:1483 +msgid "" +"Return the directory for either the general or platform-dependent C include " +"files. If *plat_specific* is true, the platform-dependent include directory " +"is returned; if false or omitted, the platform-independent directory is " +"returned. If *prefix* is given, it is used as either the prefix instead of :" +"const:`PREFIX`, or as the exec-prefix instead of :const:`EXEC_PREFIX` if " +"*plat_specific* is true." +msgstr "" +"Renvoie le répertoire pour les fichiers d'inclusion C standards ou " +"dépendants de la plate-forme. Si *plat_specific* est vrai, le répertoire " +"*include* dépendant de la plate-forme est renvoyé ; si la valeur est *faux* " +"ou *None*, le répertoire indépendant de la plate-forme est renvoyé. Si " +"*prefix* est donné, il est utilisé soit comme préfixe au lieu de :const:" +"`PREFIX`, soit comme préfixe d'exécution au lieu de :const:`EXEC_PREFIX` si " +"*plat_specific* est vrai." + +#: ../Doc/distutils/apiref.rst:1493 +msgid "" +"Return the directory for either the general or platform-dependent library " +"installation. If *plat_specific* is true, the platform-dependent include " +"directory is returned; if false or omitted, the platform-independent " +"directory is returned. If *prefix* is given, it is used as either the " +"prefix instead of :const:`PREFIX`, or as the exec-prefix instead of :const:" +"`EXEC_PREFIX` if *plat_specific* is true. If *standard_lib* is true, the " +"directory for the standard library is returned rather than the directory for " +"the installation of third-party extensions." +msgstr "" +"Renvoie le répertoire pour l'installation de la bibliothèque standard ou " +"dépendante de la plate-forme. Si *plat_specific* est vrai, le répertoire " +"*include* dépendant de la plate-forme est renvoyé ; si la valeur est *faux* " +"ou *None*, le répertoire indépendant de la plate-forme est renvoyé. Si " +"*prefix* est donné, il est utilisé soit comme préfixe au lieu de :const:" +"`PREFIX`, soit comme préfixe d'exécution au lieu de :const:`EXEC_PREFIX` si " +"*plat_specific* est vrai. Si *standard_lib* est vrai, le répertoire de la " +"bibliothèque standard est renvoyé plutôt que le répertoire d'installation " +"des extensions tierces." + +#: ../Doc/distutils/apiref.rst:1502 +msgid "" +"The following function is only intended for use within the :mod:`distutils` " +"package." +msgstr "" +"La fonction suivante est uniquement destinée à être utilisée dans le paquet :" +"mod:`distutils`." + +#: ../Doc/distutils/apiref.rst:1508 +msgid "" +"Do any platform-specific customization of a :class:`distutils.ccompiler." +"CCompiler` instance." +msgstr "" +"Exécute toute personnalisation spécifique à la plate-forme d'une instance :" +"class:`distutils.ccompiler.CCompiler`." + +#: ../Doc/distutils/apiref.rst:1511 +msgid "" +"This function is only needed on Unix at this time, but should be called " +"consistently to support forward-compatibility. It inserts the information " +"that varies across Unix flavors and is stored in Python's :file:`Makefile`. " +"This information includes the selected compiler, compiler and linker " +"options, and the extension used by the linker for shared objects." +msgstr "" +"Cette fonction n'est nécessaire que sous Unix pour le moment, mais doit être " +"appelée de manière cohérente pour supporter la compatibilité ascendante. " +"Elle insère des informations qui varient d'une version à l'autre d'Unix et " +"qui sont stockées dans le fichier Python :file:`Makefile`. Ces informations " +"comprennent le compilateur, les options du compilateur et de l'éditeur de " +"liens sélectionnés, ainsi que l'extension utilisée par l'éditeur de liens " +"pour les objets partagés." + +#: ../Doc/distutils/apiref.rst:1517 +msgid "" +"This function is even more special-purpose, and should only be used from " +"Python's own build procedures." +msgstr "" +"Cette fonction est encore plus spéciale, et ne devrait être utilisée que " +"dans les procédures de compilation de Python." + +#: ../Doc/distutils/apiref.rst:1523 +msgid "" +"Inform the :mod:`distutils.sysconfig` module that it is being used as part " +"of the build process for Python. This changes a lot of relative locations " +"for files, allowing them to be located in the build area rather than in an " +"installed Python." +msgstr "" +"Informe le module :mod:`distutils.sysconfig` qu'il est utilisé dans le cadre " +"du processus de compilation de Python. Cela change beaucoup d'emplacements " +"relatifs pour les fichiers, ce qui les place dans la zone de compilation " +"plutôt que dans un interpréteur Python installé." + +#: ../Doc/distutils/apiref.rst:1530 +msgid ":mod:`distutils.text_file` --- The TextFile class" +msgstr ":mod:`distutils.text_file` — La classe TextFile" + +#: ../Doc/distutils/apiref.rst:1536 +msgid "" +"This module provides the :class:`TextFile` class, which gives an interface " +"to text files that (optionally) takes care of stripping comments, ignoring " +"blank lines, and joining lines with backslashes." +msgstr "" +"Ce module fournit la classe :class:`TextFile`, qui donne une interface aux " +"fichiers texte qui s'occupe (optionnellement) de supprimer les commentaires, " +"d'ignorer les lignes vides et de joindre les lignes avec des antislash." + +#: ../Doc/distutils/apiref.rst:1543 +msgid "" +"This class provides a file-like object that takes care of all the things " +"you commonly want to do when processing a text file that has some line-by-" +"line syntax: strip comments (as long as ``#`` is your comment character), " +"skip blank lines, join adjacent lines by escaping the newline (ie. backslash " +"at end of line), strip leading and/or trailing whitespace. All of these are " +"optional and independently controllable." +msgstr "" +"Cette classe fournit un objet de type fichier qui se charge de tout ce que " +"vous voulez généralement faire lors du traitement d'un fichier texte ayant " +"une syntaxe ligne par ligne : Suppression des commentaires (tant que ``#`` " +"est votre caractère de commentaire), passer les lignes vides, joindre des " +"lignes adjacentes en échappant la nouvelle ligne (les lignes se terminant " +"par une antislash), supprime les espace blancs avant et après le texte etc. " +"Toutes ces fonctions sont optionnelles et peuvent être commandées " +"indépendamment." + +#: ../Doc/distutils/apiref.rst:1550 +msgid "" +"The class provides a :meth:`warn` method so you can generate warning " +"messages that report physical line number, even if the logical line in " +"question spans multiple physical lines. Also provides :meth:`unreadline` " +"for implementing line-at-a-time lookahead." +msgstr "" +"La classe fournit une méthode :meth:`warn` pour pouvoir générer des messages " +"d'avertissement qui renvoie le numéro de ligne physique, même si la ligne " +"logique en question couvre plusieurs lignes physiques. Fournit également :" +"meth:`unreadline` pour implémenter un système prospectif ligne par ligne." + +#: ../Doc/distutils/apiref.rst:1555 +msgid "" +":class:`TextFile` instances are create with either *filename*, *file*, or " +"both. :exc:`RuntimeError` is raised if both are ``None``. *filename* should " +"be a string, and *file* a file object (or something that provides :meth:" +"`readline` and :meth:`close` methods). It is recommended that you supply " +"at least *filename*, so that :class:`TextFile` can include it in warning " +"messages. If *file* is not supplied, :class:`TextFile` creates its own " +"using the :func:`open` built-in function." +msgstr "" +"Les instances de :class:`TextFile` sont créées soit avec *filename*, soit " +"avec *file* ou bien les deux. :exc:`RuntimeError` est levé si les deux " +"valent ``None``. *filename* doit être une chaîne de caractères, et *file* un " +"objet fichier (ou quelque chose qui fournit les méthodes :meth:`readline` " +"et :meth:`close`). Il est recommandé de fournir au moins *filename*, afin " +"que :class:`TextFile` puisse l'inclure dans les messages d'avertissement. " +"Si *file* n'est pas fourni, :class:`TextFile` crée son propre fichier en " +"utilisant la fonction :func:`open`." + +#: ../Doc/distutils/apiref.rst:1563 +msgid "" +"The options are all boolean, and affect the values returned by :meth:" +"`readline`" +msgstr "" +"Les options sont toutes booléennes et affectent les valeurs renvoyées par :" +"meth:`readline`." + +#: ../Doc/distutils/apiref.rst:1568 +msgid "option name" +msgstr "Nom des options" + +#: ../Doc/distutils/apiref.rst:1568 +msgid "default" +msgstr "default" + +#: ../Doc/distutils/apiref.rst:1570 +msgid "*strip_comments*" +msgstr "*strip_comments*" + +#: ../Doc/distutils/apiref.rst:1570 +msgid "" +"strip from ``'#'`` to end-of-line, as well as any whitespace leading up to " +"the ``'#'``\\ ---unless it is escaped by a backslash" +msgstr "" +"Supprime les caractères à partir de ``'#'`` jusqu'à la fin de la ligne, " +"ainsi que tout espace blanc menant au premier ``'#'`` --- à moins qu'il ne " +"soit échappé par une antislash" + +#: ../Doc/distutils/apiref.rst:1570 ../Doc/distutils/apiref.rst:1579 +#: ../Doc/distutils/apiref.rst:1584 +msgid "true" +msgstr "*true*" + +#: ../Doc/distutils/apiref.rst:1576 +msgid "*lstrip_ws*" +msgstr "*lstrip_ws*" + +#: ../Doc/distutils/apiref.rst:1576 +msgid "strip leading whitespace from each line before returning it" +msgstr "" +"Efface les espaces blancs en début de chaque ligne avant de la renvoyer." + +#: ../Doc/distutils/apiref.rst:1576 ../Doc/distutils/apiref.rst:1594 +#: ../Doc/distutils/apiref.rst:1605 +msgid "false" +msgstr "*false*" + +#: ../Doc/distutils/apiref.rst:1579 +msgid "*rstrip_ws*" +msgstr "*rstrip_ws*" + +#: ../Doc/distutils/apiref.rst:1579 +msgid "" +"strip trailing whitespace (including line terminator!) from each line before " +"returning it." +msgstr "" +"Efface les espaces blancs de fin de ligne (y compris le terminateur de " +"ligne !) de chaque ligne avant de la renvoyer." + +#: ../Doc/distutils/apiref.rst:1584 +msgid "*skip_blanks*" +msgstr "*skip_blanks*" + +#: ../Doc/distutils/apiref.rst:1584 +msgid "" +"skip lines that are empty \\*after\\* stripping comments and whitespace. " +"(If both lstrip_ws and rstrip_ws are false, then some lines may consist of " +"solely whitespace: these will \\*not\\* be skipped, even if *skip_blanks* is " +"true.)" +msgstr "" +"Ignore les lignes qui sont vides \\*après\\* la suppression des commentaires " +"et des espaces. (Si *lstrip_ws* et *rstrip_ws* sont tous les deux faux, " +"alors certaines lignes peuvent être composées uniquement d'espaces : elles " +"ne seront pas ignorées, même si *skip_blanks* est vrai." + +#: ../Doc/distutils/apiref.rst:1594 +msgid "*join_lines*" +msgstr "*join_lines*" + +#: ../Doc/distutils/apiref.rst:1594 +msgid "" +"if a backslash is the last non-newline character on a line after stripping " +"comments and whitespace, join the following line to it to form one logical " +"line; if N consecutive lines end with a backslash, then N+1 physical lines " +"will be joined to form one logical line." +msgstr "" +"Si sur la ligne, une antislash est le dernier caractère et que ce caractère " +"n'est pas le caractère de nouvelle ligne. Joint la ligne suivante pour " +"former une ligne logique. Si N lignes consécutives se terminent par une " +"antislash, alors N+1 lignes physiques seront liées pour former une seul " +"ligne logique." + +#: ../Doc/distutils/apiref.rst:1605 +msgid "*collapse_join*" +msgstr "*collapse_join*" + +#: ../Doc/distutils/apiref.rst:1605 +msgid "" +"strip leading whitespace from lines that are joined to their predecessor; " +"only matters if ``(join_lines and not lstrip_ws)``" +msgstr "" +"Supprime les espaces blancs des lignes qui sont jointes à leur prédécesseur. " +"n'est utile que que si ``(join_lines and not lstrip_ws)``." + +#: ../Doc/distutils/apiref.rst:1612 +msgid "" +"Note that since *rstrip_ws* can strip the trailing newline, the semantics " +"of :meth:`readline` must differ from those of the built-in file object's :" +"meth:`readline` method! In particular, :meth:`readline` returns ``None`` " +"for end-of-file: an empty string might just be a blank line (or an all-" +"whitespace line), if *rstrip_ws* is true but *skip_blanks* is not." +msgstr "" +"Notez que puisque *rstrip_ws* peut effacer la fin de la ligne, la sémantique " +"de :meth:`readline` doit être différente de celle de la méthode standard :" +"meth:`readline` des objets fichier ! En particulier, :meth:`readline` " +"renvoie ``None`` pour indiquer la fin du fichier: une chaîne vide peut être " +"juste une ligne blanche (ou une ligne entièrement blanche), si *rstrip_ws* " +"est vrai mais pas si *skip_blanks* est faux." + +#: ../Doc/distutils/apiref.rst:1621 +msgid "" +"Open a new file *filename*. This overrides any *file* or *filename* " +"constructor arguments." +msgstr "" +"Ouvre un nouveau fichier *filename*. Remplace tous les arguments du " +"constructeur *file* ou *filename*." + +#: ../Doc/distutils/apiref.rst:1627 +msgid "" +"Close the current file and forget everything we know about it (including the " +"filename and the current line number)." +msgstr "" +"Ferme le fichier courant et oublie toutes les informations connues à son " +"sujet (y compris le nom du fichier et le numéro de la ligne courante)." + +#: ../Doc/distutils/apiref.rst:1633 +msgid "" +"Print (to stderr) a warning message tied to the current logical line in the " +"current file. If the current logical line in the file spans multiple " +"physical lines, the warning refers to the whole range, such as ``\"lines " +"3-5\"``. If *line* is supplied, it overrides the current line number; it " +"may be a list or tuple to indicate a range of physical lines, or an integer " +"for a single physical line." +msgstr "" +"Affiche (vers *stderr*) un message d'avertissement lié à la ligne logique " +"courante dans le fichier courant. Si la ligne logique courante dans le " +"fichier s'étend sur plusieurs lignes physiques, l'avertissement se réfère à " +"une plage de lignes physiques, telles que ``\"lignes 3-5\"``. Si *line* est " +"fourni, il remplace le numéro de la ligne courante ; il peut s'agir d'une " +"liste ou d'un couple pour indiquer une plage de lignes physiques, ou d'un " +"entier pour une seule ligne physique." + +#: ../Doc/distutils/apiref.rst:1643 +msgid "" +"Read and return a single logical line from the current file (or from an " +"internal buffer if lines have previously been \"unread\" with :meth:" +"`unreadline`). If the *join_lines* option is true, this may involve " +"reading multiple physical lines concatenated into a single string. Updates " +"the current line number, so calling :meth:`warn` after :meth:`readline` " +"emits a warning about the physical line(s) just read. Returns ``None`` on " +"end-of-file, since the empty string can occur if *rstrip_ws* is true but " +"*strip_blanks* is not." +msgstr "" +"Lit et renvoie une seule ligne logique à partir du fichier courant (ou à " +"partir d'un tampon interne si les lignes ont déjà été marqué comme non lue " +"avec :meth:`unreadline`). Si l'option *join_lines* est vraie, cela peut " +"impliquer la lecture de plusieurs lignes physiques concaténées en une seule " +"chaîne. Met à jour le numéro de la ligne courante. Appeler :meth:`warn` " +"après :meth:`readline` émet donc un avertissement sur la ou les lignes " +"physiques qui viennent d'être lues. Renvoie ``None`` à la fin du fichier, " +"puisque la chaîne vide peut se produire si *rstrip_ws* est vrai mais pas si " +"*strip_blanks* est faux." + +#: ../Doc/distutils/apiref.rst:1654 +msgid "" +"Read and return the list of all logical lines remaining in the current file. " +"This updates the current line number to the last line of the file." +msgstr "" +"Lit et renvoie la liste de toutes les lignes logiques restant dans le " +"fichier courant. Met à jour le numéro de la ligne courante à la dernière " +"ligne du fichier." + +#: ../Doc/distutils/apiref.rst:1660 +msgid "" +"Push *line* (a string) onto an internal buffer that will be checked by " +"future :meth:`readline` calls. Handy for implementing a parser with line-at-" +"a-time lookahead. Note that lines that are \"unread\" with :meth:" +"`unreadline` are not subsequently re-cleansed (whitespace stripped, or " +"whatever) when read with :meth:`readline`. If multiple calls are made to :" +"meth:`unreadline` before a call to :meth:`readline`, the lines will be " +"returned most in most recent first order." +msgstr "" +"Insère la ligne *line* (une chaîne de caractères) dans un tampon interne qui " +"sera vérifié par les futurs appels de :meth:`readline`. Utile pour " +"implémenter un analyseur prospectif ligne par ligne. Notez que les lignes " +"qui sont \"non lues\" avec :meth:`unreadline` ne sont ensuite pas traitées " +"de nouveau (espace blancs, ou autre) quand elles sont lues avec :meth:" +"`readline`. Si plusieurs appels sont faits à :meth:`unreadline` avant un " +"appel à :meth:`readline`, les lignes sont renvoyées dans l'ordre de la plus " +"récente première à la plus ancienne." + +#: ../Doc/distutils/apiref.rst:1669 +msgid ":mod:`distutils.version` --- Version number classes" +msgstr ":mod:`distutils.version` — Classes de numéros de version" + +#: ../Doc/distutils/apiref.rst:1684 +msgid ":mod:`distutils.cmd` --- Abstract base class for Distutils commands" +msgstr "" +":mod:`distutils.cmd` --- Classe de base abstraite pour les commandes " +"*Distutils*" + +#: ../Doc/distutils/apiref.rst:1691 +msgid "This module supplies the abstract base class :class:`Command`." +msgstr "Ce module fournit la classe de base abstraite :class:`Command`." + +#: ../Doc/distutils/apiref.rst:1696 +msgid "" +"Abstract base class for defining command classes, the \"worker bees\" of the " +"Distutils. A useful analogy for command classes is to think of them as " +"subroutines with local variables called *options*. The options are declared " +"in :meth:`initialize_options` and defined (given their final values) in :" +"meth:`finalize_options`, both of which must be defined by every command " +"class. The distinction between the two is necessary because option values " +"might come from the outside world (command line, config file, ...), and any " +"options dependent on other options must be computed after these outside " +"influences have been processed --- hence :meth:`finalize_options`. The body " +"of the subroutine, where it does all its work based on the values of its " +"options, is the :meth:`run` method, which must also be implemented by every " +"command class." +msgstr "" +"Classe de base abstraite pour définir les classes de commandes, les " +"\"ouvrières\" de *Distutils*. Une analogie utile pour les classes de " +"commandes est de les considérer comme des sous-routines avec des variables " +"locales appelées *options*. Les options sont déclarées dans :meth:" +"`initialiser_options` et définies (compte tenu de leur valeur finale) dans :" +"meth:`finalize_options`, qui doivent être définies pour chaque classe de " +"commande. La distinction entre les deux est nécessaire parce que les " +"valeurs des options peuvent venir de l'extérieur (ligne de commande, fichier " +"de configuration, ....), et toutes les options dépendantes d'autres options " +"doivent être calculées après que ces options externes aient été traitées --- " +"ce qui explique :meth:`finalize_options`. Le corps de la sous-routine, où " +"s'effectue tout le travail est basé sur les valeurs de ses options, est la " +"méthode :meth:`run`, qui doit être implémentée par chaque classe de commande." + +#: ../Doc/distutils/apiref.rst:1709 +msgid "" +"The class constructor takes a single argument *dist*, a :class:`~distutils." +"core.Distribution` instance." +msgstr "" +"Le constructeur prend un seul argument, *dist*, une instance de :class:" +"`~distutils.core.Distribution`." + +#: ../Doc/distutils/apiref.rst:1714 +msgid "Creating a new Distutils command" +msgstr "Créer une nouvelle commande *Distutils*" + +#: ../Doc/distutils/apiref.rst:1716 +msgid "This section outlines the steps to create a new Distutils command." +msgstr "" +"Cette section décrit les étapes pour créer une nouvelle commande *Distutils*." + +#: ../Doc/distutils/apiref.rst:1718 +msgid "" +"A new command lives in a module in the :mod:`distutils.command` package. " +"There is a sample template in that directory called :file:" +"`command_template`. Copy this file to a new module with the same name as " +"the new command you're implementing. This module should implement a class " +"with the same name as the module (and the command). So, for instance, to " +"create the command ``peel_banana`` (so that users can run ``setup.py " +"peel_banana``), you'd copy :file:`command_template` to :file:`distutils/" +"command/peel_banana.py`, then edit it so that it's implementing the class :" +"class:`peel_banana`, a subclass of :class:`distutils.cmd.Command`." +msgstr "" +"Une nouvelle commande doit résider dans un module du package :mod:`distutils." +"command`. Il existe un exemple de modèle dans ce répertoire nommé :file:" +"`command_template`. Copiez ce fichier dans un nouveau module portant le même " +"nom que la nouvelle commande que vous implémentez. Ce module doit " +"implémenter une classe portant le même nom que le module (et la commande). " +"Par exemple, pour créer la commande ``peel_banana`` (afin que les " +"utilisateurs puissent exécuter ``setup.py peel_banana``), vous devez copier " +"le fichier :file:`commande_template` dans :file:`distutils/command/" +"peel_banana.py`, puis l'éditer pour qu'il implémente la classe :class:" +"`peel_banana`, une sous-classe de la classe :class:`distutils.cmd.Command`." + +#: ../Doc/distutils/apiref.rst:1728 +msgid "Subclasses of :class:`Command` must define the following methods." +msgstr "" +"Les sous-classes de la classe :class:`Command` doivent définir les méthodes " +"suivantes." + +#: ../Doc/distutils/apiref.rst:1732 +msgid "" +"Set default values for all the options that this command supports. Note " +"that these defaults may be overridden by other commands, by the setup " +"script, by config files, or by the command-line. Thus, this is not the " +"place to code dependencies between options; generally, :meth:" +"`initialize_options` implementations are just a bunch of ``self.foo = None`` " +"assignments." +msgstr "" +"Définit des valeurs par défaut pour toutes les options que cette commande " +"gère. Notez que ces valeurs par défaut peuvent être remplacées par d'autres " +"commandes, par le script d'installation, par des fichiers de configuration " +"ou par la ligne de commande. Ce n'est donc pas l'endroit idéal pour " +"introduire des dépendances entre les options. En règle générale, les " +"méthodes suivantes :meth:`initialize_options` ne font que des assignations " +"de type ``self.truc = None``." + +#: ../Doc/distutils/apiref.rst:1741 +msgid "" +"Set final values for all the options that this command supports. This is " +"always called as late as possible, ie. after any option assignments from " +"the command-line or from other commands have been done. Thus, this is the " +"place to code option dependencies: if *foo* depends on *bar*, then it is " +"safe to set *foo* from *bar* as long as *foo* still has the same value it " +"was assigned in :meth:`initialize_options`." +msgstr "" +"Définit les valeurs finales pour toutes les options que cette commande gère. " +"Cette méthode doit toujours être appelée le plus tard possible, c'est-à-dire " +"après que toutes les affectations des options de la ligne de commande ou que " +"d'autres commandes ont été faites. C'est donc l'endroit idéal pour " +"introduire des dépendances d'options : si *truc* dépend de *machin*, alors " +"il est sûr de mettre *truc* de *machin* aussi longtemps que *truc* a " +"toujours la même valeur qui lui a été attribué par :meth:" +"`initialize_options`." + +#: ../Doc/distutils/apiref.rst:1751 +msgid "" +"A command's raison d'etre: carry out the action it exists to perform, " +"controlled by the options initialized in :meth:`initialize_options`, " +"customized by other commands, the setup script, the command-line, and config " +"files, and finalized in :meth:`finalize_options`. All terminal output and " +"filesystem interaction should be done by :meth:`run`." +msgstr "" +"La raison d'être d'une commande : exécuter l'action programmée en étant " +"contrôlée par les options initialisées dans :meth:`initialize_options`, " +"personnalisées par d'autres commandes, par le script de configuration, par " +"la ligne de commande et les fichiers de configuration, puis finalisée dans :" +"meth:`finalize_options`. Toutes les interactions avec le système de fichiers " +"et la sortie du terminal doivent être effectuées par :meth:`run`." + +#: ../Doc/distutils/apiref.rst:1760 +msgid "" +"*sub_commands* formalizes the notion of a \"family\" of commands, e.g. " +"``install`` as the parent with sub-commands ``install_lib``, " +"``install_headers``, etc. The parent of a family of commands defines " +"*sub_commands* as a class attribute; it's a list of 2-tuples " +"``(command_name, predicate)``, with *command_name* a string and *predicate* " +"a function, a string or ``None``. *predicate* is a method of the parent " +"command that determines whether the corresponding command is applicable in " +"the current situation. (E.g. ``install_headers`` is only applicable if we " +"have any C header files to install.) If *predicate* is ``None``, that " +"command is always applicable." +msgstr "" +"*sub_commands* formalise la notion de \"famille\" de commandes, par exemple. " +"``install`` est le parent des sous-commandes ``install_lib``, " +"``install_headers``, etc. Le parent d'une famille de commandes définit " +"*sub_commands* en tant qu'attribut de classe ; c'est une liste de couples " +"``(command_name, predicate)``, avec *command_name* le nom de la commande et " +"*predicate* une fonction, une chaîne ou ``None``. *predicate* est une " +"méthode de la commande parent qui détermine si la commande correspondante " +"est applicable dans la situation actuelle. Par exemple : ``install_headers`` " +"n'est applicable que s'il existe des fichiers d'en-tête C à installer. Si " +"*predicate* est ``None``, cette commande est toujours effectuée." + +#: ../Doc/distutils/apiref.rst:1771 +msgid "" +"*sub_commands* is usually defined at the *end* of a class, because " +"predicates can be methods of the class, so they must already have been " +"defined. The canonical example is the :command:`install` command." +msgstr "" +"*sub_commands* est généralement défini à la *fin* d'une classe, car les " +"prédicats peuvent être des méthodes de la classe, ils doivent donc déjà " +"avoir été définis. L'exemple canonique est la commande :command:`install`." + +#: ../Doc/distutils/apiref.rst:1777 +msgid ":mod:`distutils.command` --- Individual Distutils commands" +msgstr ":mod:`distutils.command` — Commandes *Distutils* individuelles" + +#: ../Doc/distutils/apiref.rst:1788 +msgid ":mod:`distutils.command.bdist` --- Build a binary installer" +msgstr ":mod:`distutils.command.bdist` — Construit un installateur binaire" + +#: ../Doc/distutils/apiref.rst:1798 +msgid "" +":mod:`distutils.command.bdist_packager` --- Abstract base class for packagers" +msgstr "" +":mod:`distutils.command.bdist_packager` --- Classe de base abstraite pour " +"empaqueteurs" + +#: ../Doc/distutils/apiref.rst:1808 +msgid ":mod:`distutils.command.bdist_dumb` --- Build a \"dumb\" installer" +msgstr "" +":mod:`distutils.command.bdist_dumb` --- Construit un installateur passif " +"(*dumb*)" + +#: ../Doc/distutils/apiref.rst:1818 +msgid "" +":mod:`distutils.command.bdist_msi` --- Build a Microsoft Installer binary " +"package" +msgstr "" +":mod:`distutils.command.bdist_msi` --- Construit un installateur Microsoft" + +#: ../Doc/distutils/apiref.rst:1825 +msgid "Builds a `Windows Installer`_ (.msi) binary package." +msgstr "Construit un installateur `Windows Installeur`_ (*.msi*)" + +#: ../Doc/distutils/apiref.rst:1829 +msgid "" +"In most cases, the ``bdist_msi`` installer is a better choice than the " +"``bdist_wininst`` installer, because it provides better support for Win64 " +"platforms, allows administrators to perform non-interactive installations, " +"and allows installation through group policies." +msgstr "" +"Dans la plupart des cas, l'installateur ``bdist_msi`` est un meilleur choix " +"que l'installateur ``bdist_wininst``, car il gère mieux les plates-formes " +"*Win64*, et permet en plus aux administrateurs d'effectuer des installations " +"non interactives ainsi que des installations via des stratégies de groupe." + +#: ../Doc/distutils/apiref.rst:1836 +msgid "" +":mod:`distutils.command.bdist_rpm` --- Build a binary distribution as a " +"Redhat RPM and SRPM" +msgstr "" +":mod:`distutils.command.bdist_rpm` --- Construit une distribution binaire au " +"format Redhat RPM et SRPM" + +#: ../Doc/distutils/apiref.rst:1846 +msgid ":mod:`distutils.command.bdist_wininst` --- Build a Windows installer" +msgstr "" +":mod:`distutils.command.bdist_wininst` --- Construit un installateur Windows" + +#: ../Doc/distutils/apiref.rst:1856 +msgid ":mod:`distutils.command.sdist` --- Build a source distribution" +msgstr ":mod:`distutils.command.sdist` — Construit une distribution source" + +#: ../Doc/distutils/apiref.rst:1866 +msgid ":mod:`distutils.command.build` --- Build all files of a package" +msgstr "" +":mod:`distutils.command.build` --- Construit tous les fichiers d'un paquet" + +#: ../Doc/distutils/apiref.rst:1876 +msgid "" +":mod:`distutils.command.build_clib` --- Build any C libraries in a package" +msgstr "" +":mod:`distutils.command.build_clib` --- Construit toutes les bibliothèques C " +"d'un paquet" + +#: ../Doc/distutils/apiref.rst:1886 +msgid "" +":mod:`distutils.command.build_ext` --- Build any extensions in a package" +msgstr "" +":mod:`distutils.command.build_ext` --- Construit toutes les extensions d'un " +"paquet" + +#: ../Doc/distutils/apiref.rst:1896 +msgid "" +":mod:`distutils.command.build_py` --- Build the .py/.pyc files of a package" +msgstr "" +":mod:`distutils.command.build_py` --- Construit les fichiers *.py/.pyc* d'un " +"paquet" + +#: ../Doc/distutils/apiref.rst:1906 +msgid "" +"Alternative implementation of build_py which also runs the 2to3 conversion " +"library on each .py file that is going to be installed. To use this in a " +"setup.py file for a distribution that is designed to run with both Python 2." +"x and 3.x, add::" +msgstr "" +"Implémentation alternative de *build_py* qui exécute également la " +"bibliothèque de conversion *2to3* sur chaque fichier *.py* qui va être " +"installé. Pour l'utiliser dans un fichier *setup.py* pour une distribution " +"conçue pour fonctionner avec *Python 2.x* et *3.x*, ajouter ::" + +#: ../Doc/distutils/apiref.rst:1916 +msgid "to your setup.py, and later::" +msgstr "à votre *setup.py* et, plus tard ::" + +#: ../Doc/distutils/apiref.rst:1920 +msgid "to the invocation of setup()." +msgstr "à l'appel de *setup()*." + +#: ../Doc/distutils/apiref.rst:1924 +msgid "" +":mod:`distutils.command.build_scripts` --- Build the scripts of a package" +msgstr "" +":mod:`distutils.command.build_scripts` --- Construit les scripts d'un paquet" + +#: ../Doc/distutils/apiref.rst:1934 +msgid ":mod:`distutils.command.clean` --- Clean a package build area" +msgstr "" +":mod:`distutils.command.clean` --- Nettoie un dossier de compilation d'un " +"paquet" + +#: ../Doc/distutils/apiref.rst:1939 +msgid "" +"This command removes the temporary files created by :command:`build` and its " +"subcommands, like intermediary compiled object files. With the ``--all`` " +"option, the complete build directory will be removed." +msgstr "" +"Cette commande supprime les fichiers temporaires créés par la commande :" +"command:`build` et ses sous-commandes, comme les fichiers objets compilés " +"intermédiaires. Avec l'option ``--all``, le répertoire de compilation sera " +"supprimé." + +#: ../Doc/distutils/apiref.rst:1943 +msgid "" +"Extension modules built :ref:`in place ` will " +"not be cleaned, as they are not in the build directory." +msgstr "" +"Les modules d'extension construits :ref:`sur place ` ne seront pas effacés, car ils ne sont pas dans le répertoire " +"*build*." + +#: ../Doc/distutils/apiref.rst:1948 +msgid ":mod:`distutils.command.config` --- Perform package configuration" +msgstr "" +":mod:`distutils.command.config` --- Effectue la configuration d'un paquet" + +#: ../Doc/distutils/apiref.rst:1958 +msgid ":mod:`distutils.command.install` --- Install a package" +msgstr ":mod:`distutils.command.install` — Installe un paquet" + +#: ../Doc/distutils/apiref.rst:1968 +msgid "" +":mod:`distutils.command.install_data` --- Install data files from a package" +msgstr "" +":mod:`distutils.command.install_data` --- Installe les fichiers de données " +"d'un paquet" + +#: ../Doc/distutils/apiref.rst:1978 +msgid "" +":mod:`distutils.command.install_headers` --- Install C/C++ header files from " +"a package" +msgstr "" +":mod:`distutils.command.install_headers` --- Installe les fichiers d'en-tête " +"C/C++ d'un paquet" + +#: ../Doc/distutils/apiref.rst:1988 +msgid "" +":mod:`distutils.command.install_lib` --- Install library files from a package" +msgstr "" +":mod:`distutils.command.install_lib` --- Installe les fichiers de " +"bibliothèque à partir d'un paquet" + +#: ../Doc/distutils/apiref.rst:1998 +msgid "" +":mod:`distutils.command.install_scripts` --- Install script files from a " +"package" +msgstr "" +":mod:`distutils.command.install_scripts` --- Installe les fichiers de script " +"d'un paquet" + +#: ../Doc/distutils/apiref.rst:2008 +msgid "" +":mod:`distutils.command.register` --- Register a module with the Python " +"Package Index" +msgstr "" +":mod:`distutils.command.register` --- Enregistre un module dans l'Index des " +"paquets Python (*Python Package Index* ou *PyPI* en anglais)" + +#: ../Doc/distutils/apiref.rst:2014 +msgid "" +"The ``register`` command registers the package with the Python Package " +"Index. This is described in more detail in :pep:`301`." +msgstr "" +"La commande ``register`` enregistre le paquet dans l'index des paquets " +"Python. Plus de détails à ce sujet dans la :pep:`301`." + +#: ../Doc/distutils/apiref.rst:2021 +msgid ":mod:`distutils.command.check` --- Check the meta-data of a package" +msgstr "" +":mod:`distutils.command.check` --- Vérifie les méta-données d'un paquet" + +#: ../Doc/distutils/apiref.rst:2027 +msgid "" +"The ``check`` command performs some tests on the meta-data of a package. For " +"example, it verifies that all required meta-data are provided as the " +"arguments passed to the :func:`setup` function." +msgstr "" +"La commande ``check`` effectue des tests sur les méta-données d'un paquet. " +"Par exemple, elle vérifie que toutes les méta-données requises sont fournies " +"lorsque les arguments sont passés à la fonction :func:`setup`." diff --git a/distutils/builtdist.po b/distutils/builtdist.po new file mode 100644 index 000000000..32907a268 --- /dev/null +++ b/distutils/builtdist.po @@ -0,0 +1,1021 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2019-06-08 15:19+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/distutils/builtdist.rst:5 +msgid "Creating Built Distributions" +msgstr "Créer une distribution compilée" + +#: ../Doc/distutils/builtdist.rst:7 +msgid "" +"A \"built distribution\" is what you're probably used to thinking of either " +"as a \"binary package\" or an \"installer\" (depending on your background). " +"It's not necessarily binary, though, because it might contain only Python " +"source code and/or byte-code; and we don't call it a package, because that " +"word is already spoken for in Python. (And \"installer\" is a term specific " +"to the world of mainstream desktop systems.)" +msgstr "" +"Une \"distribution compilée\" vous fait surement penser à un \"paquet binaire" +"\" ou à un \"installateur\" (tout dépend de votre environnement). Ce n'est " +"cependant pas forcément un binaire, il peut ne contenir que des sources " +"Python et / ou du *byte-code* ; et nous n'appelons pas ça un *package* parce " +"que ce mot est déjà utilisé dans Python (et \"installateur\" est un terme " +"spécifique au monde des systèmes de bureau)." + +#: ../Doc/distutils/builtdist.rst:14 +msgid "" +"A built distribution is how you make life as easy as possible for installers " +"of your module distribution: for users of RPM-based Linux systems, it's a " +"binary RPM; for Windows users, it's an executable installer; for Debian-" +"based Linux users, it's a Debian package; and so forth. Obviously, no one " +"person will be able to create built distributions for every platform under " +"the sun, so the Distutils are designed to enable module developers to " +"concentrate on their specialty---writing code and creating source " +"distributions---while an intermediary species called *packagers* springs up " +"to turn source distributions into built distributions for as many platforms " +"as there are packagers." +msgstr "" +"Une distribution compilée est une manière de rendre la vie plus facile à " +"ceux qui installent votre module : pour les utilisateurs de système Linux " +"basé sur RPM, ce sera des binaires RPM ; pour les utilisateurs de Windows, " +"c'est un installateur exécutable ; pour les utilisateurs de Linux basés sur " +"Debian, c'est un paquet Debian ; et ainsi de suite. Évidemment, personne " +"n'est capable de créer une distribution compilée pour toutes les plateformes " +"existantes, donc Distutils est fait pour permettre aux développeurs de se " +"concentrer sur leurs spécialités --- écrire du code et créer des " +"distributions source --- pendant que d'autres, appelés *packagers* " +"s'occupent de transformer les sources en paquets pour chaque plateforme." + +#: ../Doc/distutils/builtdist.rst:24 +msgid "" +"Of course, the module developer could be their own packager; or the packager " +"could be a volunteer \"out there\" somewhere who has access to a platform " +"which the original developer does not; or it could be software periodically " +"grabbing new source distributions and turning them into built distributions " +"for as many platforms as the software has access to. Regardless of who they " +"are, a packager uses the setup script and the :command:`bdist` command " +"family to generate built distributions." +msgstr "" +"Bien sur, le développeur du module peut être son propre *packager* ; ou le " +"*packager* peut être un volontaire \"quelque part\" qui a accès à une " +"plateforme que le développeur initial n'a pas ; ou bien un logiciel qui " +"prend les sources périodiquement et les transforme en une distribution " +"compilée pour autant de plateforme que le logiciel a accès. Peu importe qui " +"ils sont, les *packagers* utilisent ``setup.py`` et la famille de commandes :" +"command:`bdist` afin de générer une distribution compilée." + +#: ../Doc/distutils/builtdist.rst:32 +msgid "" +"As a simple example, if I run the following command in the Distutils source " +"tree::" +msgstr "" +"Pour prendre un exemple simple, si je lance la commande suivante dans les " +"sources de Distutils ::" + +#: ../Doc/distutils/builtdist.rst:37 +msgid "" +"then the Distutils builds my module distribution (the Distutils itself in " +"this case), does a \"fake\" installation (also in the :file:`build` " +"directory), and creates the default type of built distribution for my " +"platform. The default format for built distributions is a \"dumb\" tar file " +"on Unix, and a simple executable installer on Windows. (That tar file is " +"considered \"dumb\" because it has to be unpacked in a specific location to " +"work.)" +msgstr "" +"alors Distutils construit ma distribution du module (Distutils lui-même dans " +"ce cas), fait une \"fausse\" installation (aussi dans le dossier :file:" +"`build`) et crée le type de distribution compilée par défaut pour ma " +"plateforme. Le format par défaut est un \"bête\" fichier *tar* pour Unix et " +"un simple installateur exécutable pour Windows (ce fichier *tar* est " +"considéré comme \"bête\" car il doit être décompressé à un endroit précis " +"pour fonctionner)." + +#: ../Doc/distutils/builtdist.rst:44 +msgid "" +"Thus, the above command on a Unix system creates :file:`Distutils-1.0.{plat}." +"tar.gz`; unpacking this tarball from the right place installs the Distutils " +"just as though you had downloaded the source distribution and run ``python " +"setup.py install``. (The \"right place\" is either the root of the " +"filesystem or Python's :file:`{prefix}` directory, depending on the options " +"given to the :command:`bdist_dumb` command; the default is to make dumb " +"distributions relative to :file:`{prefix}`.)" +msgstr "" +"Par conséquent, la commande si dessus crée le fichier :file:`Distutils-1.0." +"{plat}.tar.gz` sur les systèmes Unix ; décompresser cette archive *tar* au " +"bon endroit installe Distutils exactement comme si vous aviez téléchargé la " +"distribution source et lancé ``python setup.py install`` (le \"bon endroit\" " +"est soit la racine du système de fichier, ou le dossier de Python :file:" +"`{prefix}`, tout dépend des options données à la commande :command:" +"`bdist_dumb` ; la valeur par défaut est de créer une distribution \"bête\" " +"relative à :file:`{prefix}`)." + +#: ../Doc/distutils/builtdist.rst:52 +msgid "" +"Obviously, for pure Python distributions, this isn't any simpler than just " +"running ``python setup.py install``\\ ---but for non-pure distributions, " +"which include extensions that would need to be compiled, it can mean the " +"difference between someone being able to use your extensions or not. And " +"creating \"smart\" built distributions, such as an RPM package or an " +"executable installer for Windows, is far more convenient for users even if " +"your distribution doesn't include any extensions." +msgstr "" +"Évidemment, pour une distribution en Python pur, ce n'est pas aussi simple " +"que de simplement lancer ``python setup.py install``\\ ---mais pour une " +"distribution non-pure qui inclut des extensions qui devraient être " +"compilées, ça peut faire la différence entre quelqu'un qui sera capable " +"d'utiliser votre extension, ou non. De plus créer une distribution compilée " +"\"intelligente\" tel qu'un paquet RPM ou un installateur exécutable Windows, " +"est bien plus pratique pour les utilisateurs, même si votre module n'inclut " +"aucune extension." + +#: ../Doc/distutils/builtdist.rst:60 +msgid "" +"The :command:`bdist` command has a :option:`!--formats` option, similar to " +"the :command:`sdist` command, which you can use to select the types of built " +"distribution to generate: for example, ::" +msgstr "" +"La commande :command:`bdist` a l'option :option:`!--formats`, similaire à la " +"commande :command:`sdist`, que vous pouvez utiliser pour sélectionner le " +"type de distribution compilée à générer : par exemple, ::" + +#: ../Doc/distutils/builtdist.rst:66 +msgid "" +"would, when run on a Unix system, create :file:`Distutils-1.0.{plat}.zip`\\ " +"---again, this archive would be unpacked from the root directory to install " +"the Distutils." +msgstr "" +"serait, lors d'une exécution sur un système Unix, crée :file:`Distutils-1.0." +"{plat}.zip`\\ ---à nouveau, cette archive devra être décompressé depuis la " +"racine pour installer Distutils." + +#: ../Doc/distutils/builtdist.rst:70 +msgid "The available formats for built distributions are:" +msgstr "Les formats disponibles pour les distributions compilées sont :" + +#: ../Doc/distutils/builtdist.rst:73 +msgid "Format" +msgstr "Format" + +#: ../Doc/distutils/builtdist.rst:73 +msgid "Description" +msgstr "Description" + +#: ../Doc/distutils/builtdist.rst:73 +msgid "Notes" +msgstr "Notes" + +#: ../Doc/distutils/builtdist.rst:75 +msgid "``gztar``" +msgstr "``gztar``" + +#: ../Doc/distutils/builtdist.rst:75 +msgid "gzipped tar file (:file:`.tar.gz`)" +msgstr "fichier *tar* *gzippé* (:file:`.tar.gz`)" + +#: ../Doc/distutils/builtdist.rst:75 +msgid "\\(1)" +msgstr "\\(1)" + +#: ../Doc/distutils/builtdist.rst:78 +msgid "``bztar``" +msgstr "``bztar``" + +#: ../Doc/distutils/builtdist.rst:78 +msgid "bzipped tar file (:file:`.tar.bz2`)" +msgstr "fichier *tar* de type *bzipped* (:file:`.tar.bz2`)" + +#: ../Doc/distutils/builtdist.rst:81 +msgid "``xztar``" +msgstr "``xztar``" + +#: ../Doc/distutils/builtdist.rst:81 +msgid "xzipped tar file (:file:`.tar.xz`)" +msgstr "fichier *tar* de type *xzipped* (:file:`.tar.xz`)" + +#: ../Doc/distutils/builtdist.rst:84 +msgid "``ztar``" +msgstr "``ztar``" + +#: ../Doc/distutils/builtdist.rst:84 +msgid "compressed tar file (:file:`.tar.Z`)" +msgstr "fichier *tar* compressé par *compress* (:file:`.tar.Z`)" + +#: ../Doc/distutils/builtdist.rst:84 +msgid "\\(3)" +msgstr "\\(3)" + +#: ../Doc/distutils/builtdist.rst:87 +msgid "``tar``" +msgstr "``tar``" + +#: ../Doc/distutils/builtdist.rst:87 +msgid "tar file (:file:`.tar`)" +msgstr "fichier *tar* (:file:`.tar`)" + +#: ../Doc/distutils/builtdist.rst:89 +msgid "``zip``" +msgstr "``zip``" + +#: ../Doc/distutils/builtdist.rst:89 +msgid "zip file (:file:`.zip`)" +msgstr "fichier *zip* (:file:`.zip`)" + +#: ../Doc/distutils/builtdist.rst:89 +msgid "(2),(4)" +msgstr "(2),(4)" + +#: ../Doc/distutils/builtdist.rst:91 +msgid "``rpm``" +msgstr "``rpm``" + +#: ../Doc/distutils/builtdist.rst:91 +msgid "RPM" +msgstr "RPM" + +#: ../Doc/distutils/builtdist.rst:91 +msgid "\\(5)" +msgstr "\\(5)" + +#: ../Doc/distutils/builtdist.rst:93 +msgid "``pkgtool``" +msgstr "``pkgtool``" + +#: ../Doc/distutils/builtdist.rst:93 +msgid "Solaris :program:`pkgtool`" +msgstr "Solaris :program:`pkgtool`" + +#: ../Doc/distutils/builtdist.rst:95 +msgid "``sdux``" +msgstr "``sdux``" + +#: ../Doc/distutils/builtdist.rst:95 +msgid "HP-UX :program:`swinstall`" +msgstr "HP-UX :program:`swinstall`" + +#: ../Doc/distutils/builtdist.rst:97 +msgid "``wininst``" +msgstr "``wininst``" + +#: ../Doc/distutils/builtdist.rst:97 +msgid "self-extracting ZIP file for Windows" +msgstr "fichier zip auto-extracteur Windows" + +#: ../Doc/distutils/builtdist.rst:97 +msgid "\\(4)" +msgstr "\\(4)" + +#: ../Doc/distutils/builtdist.rst:100 +msgid "``msi``" +msgstr "``msi``" + +#: ../Doc/distutils/builtdist.rst:100 +msgid "Microsoft Installer." +msgstr "Installateur Microsoft." + +#: ../Doc/distutils/builtdist.rst:103 +msgid "Added support for the ``xztar`` format." +msgstr "Ajout du support des fichiers ``xztar``." + +#: ../Doc/distutils/builtdist.rst:107 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/distutils/builtdist.rst:110 +msgid "default on Unix" +msgstr "par défaut sur Unix" + +#: ../Doc/distutils/builtdist.rst:113 +msgid "default on Windows" +msgstr "par défaut sur Windows" + +#: ../Doc/distutils/builtdist.rst:116 +msgid "requires external :program:`compress` utility." +msgstr "nécessite un programme externe :program:`compress`." + +#: ../Doc/distutils/builtdist.rst:119 +msgid "" +"requires either external :program:`zip` utility or :mod:`zipfile` module " +"(part of the standard Python library since Python 1.6)" +msgstr "" +"nécessite soit un utilitaire :program:`zip` extérieur ou le module :mod:" +"`zipfile` (inclut dans la bibliothèque standard depuis Python 1.6)" + +#: ../Doc/distutils/builtdist.rst:123 +msgid "" +"requires external :program:`rpm` utility, version 3.0.4 or better (use ``rpm " +"--version`` to find out which version you have)" +msgstr "" +"nécessite un programme externe :program:`rpm`, version 3.0.4 ou mieux " +"(utilisez ``rpm --version`` pour connaître quelle version vous avez)" + +#: ../Doc/distutils/builtdist.rst:126 +msgid "" +"You don't have to use the :command:`bdist` command with the :option:`!--" +"formats` option; you can also use the command that directly implements the " +"format you're interested in. Some of these :command:`bdist` \"sub-commands" +"\" actually generate several similar formats; for instance, the :command:" +"`bdist_dumb` command generates all the \"dumb\" archive formats (``tar``, " +"``gztar``, ``bztar``, ``xztar``, ``ztar``, and ``zip``), and :command:" +"`bdist_rpm` generates both binary and source RPMs. The :command:`bdist` sub-" +"commands, and the formats generated by each, are:" +msgstr "" +"Vous ne devez pas utiliser la commande :command:`bdist` avec l'option :" +"option:`!--formats` ; Vous pouvez également utiliser la commande qui " +"implémente directement le format qui vous intéresse. Certaines de ces \"sous-" +"commandes\" :command:`bdist` génèrent plusieurs formats similaires ; par " +"exemple, La commande :command:`bdist_dumb` génère les archives aux formats " +"\"bêtes\" (``tar``, ``gztar``, ``bztar``, ``xztar``, ``ztar``, et ``zip``), " +"et :command:`bdist_rpm` génère les binaires RPM et ainsi que les sources. " +"Les sous-commandes :command:`bdist`, et les formats générés par chacun, " +"sont :" + +#: ../Doc/distutils/builtdist.rst:136 +msgid "Command" +msgstr "Commande" + +#: ../Doc/distutils/builtdist.rst:136 +msgid "Formats" +msgstr "Formats" + +#: ../Doc/distutils/builtdist.rst:138 +msgid ":command:`bdist_dumb`" +msgstr ":command:`bdist_dumb`" + +#: ../Doc/distutils/builtdist.rst:138 +msgid "tar, gztar, bztar, xztar, ztar, zip" +msgstr "tar, gztar, bztar, xztar, ztar, zip" + +#: ../Doc/distutils/builtdist.rst:140 +msgid ":command:`bdist_rpm`" +msgstr ":command:`bdist_rpm`" + +#: ../Doc/distutils/builtdist.rst:140 +msgid "rpm, srpm" +msgstr "rpm, srpm" + +#: ../Doc/distutils/builtdist.rst:142 +msgid ":command:`bdist_wininst`" +msgstr ":command:`bdist_wininst`" + +#: ../Doc/distutils/builtdist.rst:142 +msgid "wininst" +msgstr "wininst" + +#: ../Doc/distutils/builtdist.rst:144 +msgid ":command:`bdist_msi`" +msgstr ":command:`bdist_msi`" + +#: ../Doc/distutils/builtdist.rst:144 +msgid "msi" +msgstr "msi" + +#: ../Doc/distutils/builtdist.rst:147 +msgid "" +"The following sections give details on the individual :command:`bdist_\\*` " +"commands." +msgstr "" +"Le chapitre suivant donne des détails individuel sur les commandes :command:" +"`bdist_\\*`." + +#: ../Doc/distutils/builtdist.rst:163 +msgid "Creating RPM packages" +msgstr "Créer un paquet RPM" + +#: ../Doc/distutils/builtdist.rst:165 +msgid "" +"The RPM format is used by many popular Linux distributions, including Red " +"Hat, SuSE, and Mandrake. If one of these (or any of the other RPM-based " +"Linux distributions) is your usual environment, creating RPM packages for " +"other users of that same distribution is trivial. Depending on the " +"complexity of your module distribution and differences between Linux " +"distributions, you may also be able to create RPMs that work on different " +"RPM-based distributions." +msgstr "" +"Le format RPM est utilisé par beaucoup de distributions Linux populaires, " +"incluant Red Hat, SuSE et Mandrake. Si l'une d'entre elle (ou n'importe " +"quelle autre distribution basé sur RPM) est votre environnement habituel, " +"créer un paquet pour les autres utilisateur de ces distributions est " +"trivial. Cela dépend de la complexité de votre module et des différences " +"entre les distributions Linux, vous pourrez aussi créer des RPM qui " +"fonctionneront sur des distributions RPM différentes." + +#: ../Doc/distutils/builtdist.rst:172 +msgid "" +"The usual way to create an RPM of your module distribution is to run the :" +"command:`bdist_rpm` command::" +msgstr "" +"La manière habituelle de créer un RPM de votre module est d'utiliser la " +"commande :command:`bdist_rpm` ::" + +#: ../Doc/distutils/builtdist.rst:177 +msgid "or the :command:`bdist` command with the :option:`!--format` option::" +msgstr "ou la commande :command:`bdist` avec l'option :option:`!--format` ::" + +#: ../Doc/distutils/builtdist.rst:181 +msgid "" +"The former allows you to specify RPM-specific options; the latter allows " +"you to easily specify multiple formats in one run. If you need to do both, " +"you can explicitly specify multiple :command:`bdist_\\*` commands and their " +"options::" +msgstr "" +"La première vous permet de spécifier des options spécifiques à RPM ; la " +"dernière vous permet de spécifier plusieurs formats d'un seul coup. Si vous " +"avez besoin d'utiliser les deux, vous pouvez explicitement spécifier " +"plusieurs commandes :command:`bdist_\\*` et leurs options ::" + +#: ../Doc/distutils/builtdist.rst:188 +msgid "" +"Creating RPM packages is driven by a :file:`.spec` file, much as using the " +"Distutils is driven by the setup script. To make your life easier, the :" +"command:`bdist_rpm` command normally creates a :file:`.spec` file based on " +"the information you supply in the setup script, on the command line, and in " +"any Distutils configuration files. Various options and sections in the :" +"file:`.spec` file are derived from options in the setup script as follows:" +msgstr "" +"La création de Package RPM est configurée par un fichier :file:`.spec`, un " +"peu comme Distutils est configuré par script *setup.py*. Pour vous faciliter " +"la tâche, la commande :command:`bdist_rpm` crée normalement un fichier :file:" +"`.spec` basé sur les informations que vous fournissez dans *setup.py*, dans " +"les options de la ligne de commande et dans la configuration de Distutils. " +"Beaucoup d'options du fichier :file:`.spec` sont dérivées des options du " +"script de préparation suivant :" + +#: ../Doc/distutils/builtdist.rst:196 ../Doc/distutils/builtdist.rst:220 +msgid "RPM :file:`.spec` file option or section" +msgstr "Option de fichier RPM :file:`.spec`" + +#: ../Doc/distutils/builtdist.rst:196 +msgid "Distutils setup script option" +msgstr "Options du script de préparation Distutils" + +#: ../Doc/distutils/builtdist.rst:198 +msgid "Name" +msgstr "Nom" + +#: ../Doc/distutils/builtdist.rst:198 +msgid "``name``" +msgstr "``name``" + +#: ../Doc/distutils/builtdist.rst:200 +msgid "Summary (in preamble)" +msgstr "*Summary* (dans le préambule)" + +#: ../Doc/distutils/builtdist.rst:200 +msgid "``description``" +msgstr "``description``" + +#: ../Doc/distutils/builtdist.rst:202 +msgid "Version" +msgstr "Version" + +#: ../Doc/distutils/builtdist.rst:202 +msgid "``version``" +msgstr "``version``" + +#: ../Doc/distutils/builtdist.rst:204 ../Doc/distutils/builtdist.rst:227 +msgid "Vendor" +msgstr "Vendor" + +#: ../Doc/distutils/builtdist.rst:204 +msgid "" +"``author`` and ``author_email``, or --- & ``maintainer`` and " +"``maintainer_email``" +msgstr "" +"``author`` et ``author_email``, ou --- & ``maintainer`` et " +"``maintainer_email``" + +#: ../Doc/distutils/builtdist.rst:208 +msgid "Copyright" +msgstr "Copyright" + +#: ../Doc/distutils/builtdist.rst:208 +msgid "``license``" +msgstr "``license``" + +#: ../Doc/distutils/builtdist.rst:210 +msgid "Url" +msgstr "Url" + +#: ../Doc/distutils/builtdist.rst:210 +msgid "``url``" +msgstr "``url``" + +#: ../Doc/distutils/builtdist.rst:212 +msgid "%description (section)" +msgstr "%description (section)" + +#: ../Doc/distutils/builtdist.rst:212 +msgid "``long_description``" +msgstr "``long_description``" + +#: ../Doc/distutils/builtdist.rst:215 +msgid "" +"Additionally, there are many options in :file:`.spec` files that don't have " +"corresponding options in the setup script. Most of these are handled " +"through options to the :command:`bdist_rpm` command as follows:" +msgstr "" +"De plus, il y a beaucoup d'options dans le fichier :file:`.spec` qui n'ont " +"aucun équivalent dans le script de préparation. La plupart de celles ci sont " +"gérées par les options de la commande :command:`bdist_rpm` suivant :" + +#: ../Doc/distutils/builtdist.rst:220 +msgid ":command:`bdist_rpm` option" +msgstr "Option de :command:`bdist_rpm`" + +#: ../Doc/distutils/builtdist.rst:220 +msgid "default value" +msgstr "valeur par défaut" + +#: ../Doc/distutils/builtdist.rst:223 +msgid "Release" +msgstr "Version" + +#: ../Doc/distutils/builtdist.rst:223 +msgid "``release``" +msgstr "``release``" + +#: ../Doc/distutils/builtdist.rst:223 +msgid "\"1\"" +msgstr "\"1\"" + +#: ../Doc/distutils/builtdist.rst:225 +msgid "Group" +msgstr "Group" + +#: ../Doc/distutils/builtdist.rst:225 +msgid "``group``" +msgstr "``group``" + +#: ../Doc/distutils/builtdist.rst:225 +msgid "\"Development/Libraries\"" +msgstr "\"Développement/Bibliothèques\"" + +#: ../Doc/distutils/builtdist.rst:227 +msgid "``vendor``" +msgstr "``vendor``" + +#: ../Doc/distutils/builtdist.rst:227 +msgid "(see above)" +msgstr "(voir au-dessus)" + +#: ../Doc/distutils/builtdist.rst:229 +msgid "Packager" +msgstr "Packager" + +#: ../Doc/distutils/builtdist.rst:229 +msgid "``packager``" +msgstr "``packager``" + +#: ../Doc/distutils/builtdist.rst:229 ../Doc/distutils/builtdist.rst:231 +#: ../Doc/distutils/builtdist.rst:233 ../Doc/distutils/builtdist.rst:235 +#: ../Doc/distutils/builtdist.rst:237 ../Doc/distutils/builtdist.rst:239 +#: ../Doc/distutils/builtdist.rst:241 ../Doc/distutils/builtdist.rst:243 +msgid "(none)" +msgstr "(none)" + +#: ../Doc/distutils/builtdist.rst:231 +msgid "Provides" +msgstr "Provides" + +#: ../Doc/distutils/builtdist.rst:231 +msgid "``provides``" +msgstr "``provides``" + +#: ../Doc/distutils/builtdist.rst:233 +msgid "Requires" +msgstr "Requires" + +#: ../Doc/distutils/builtdist.rst:233 +msgid "``requires``" +msgstr "``requires``" + +#: ../Doc/distutils/builtdist.rst:235 +msgid "Conflicts" +msgstr "Conflicts" + +#: ../Doc/distutils/builtdist.rst:235 +msgid "``conflicts``" +msgstr "``conflicts``" + +#: ../Doc/distutils/builtdist.rst:237 +msgid "Obsoletes" +msgstr "Obsoletes" + +#: ../Doc/distutils/builtdist.rst:237 +msgid "``obsoletes``" +msgstr "``obsoletes``" + +#: ../Doc/distutils/builtdist.rst:239 +msgid "Distribution" +msgstr "Distribution" + +#: ../Doc/distutils/builtdist.rst:239 +msgid "``distribution_name``" +msgstr "``distribution_name``" + +#: ../Doc/distutils/builtdist.rst:241 +msgid "BuildRequires" +msgstr "BuildRequires" + +#: ../Doc/distutils/builtdist.rst:241 +msgid "``build_requires``" +msgstr "``build_requires``" + +#: ../Doc/distutils/builtdist.rst:243 +msgid "Icon" +msgstr "Icon" + +#: ../Doc/distutils/builtdist.rst:243 +msgid "``icon``" +msgstr "``icon``" + +#: ../Doc/distutils/builtdist.rst:246 +msgid "" +"Obviously, supplying even a few of these options on the command-line would " +"be tedious and error-prone, so it's usually best to put them in the setup " +"configuration file, :file:`setup.cfg`\\ ---see section :ref:`setup-config`. " +"If you distribute or package many Python module distributions, you might " +"want to put options that apply to all of them in your personal Distutils " +"configuration file (:file:`~/.pydistutils.cfg`). If you want to temporarily " +"disable this file, you can pass the :option:`!--no-user-cfg` option to :file:" +"`setup.py`." +msgstr "" +"Fournir ces options en ligne de commande est fastidieux et sujet à des " +"erreurs, il est donc recommandé de les mettre dans un fichier de " +"configuration. :file:`setup.cfg`\\ --- voir la section :ref:`setup-config`. " +"Si vous distribuez ou empaquetez beaucoup de modules de distribution Python, " +"vous pourriez vouloir mettre les options qui s'appliquent à tous vos projets " +"dans votre fichier de configuration personnel Distutils (:file:`~/." +"pydistutils.cfg`). Si vous voulez temporairement désactiver ce fichier, vous " +"pouvez passer l'option :option:`!--no-user-cfg` à :file:`setup.py`." + +#: ../Doc/distutils/builtdist.rst:254 +msgid "" +"There are three steps to building a binary RPM package, all of which are " +"handled automatically by the Distutils:" +msgstr "" +"La création de binaire RPM se fait en trois étapes, chacune gérée " +"automatiquement par Distutils :" + +#: ../Doc/distutils/builtdist.rst:257 +msgid "" +"create a :file:`.spec` file, which describes the package (analogous to the " +"Distutils setup script; in fact, much of the information in the setup " +"script winds up in the :file:`.spec` file)" +msgstr "" +"crée un fichier :file:`.spec` qui décrit le paquet (comme le script de " +"préparation Distutils, en réalité la plupart des informations du script de " +"préparation se retrouve dans le fichier :file:`.spec`)" + +#: ../Doc/distutils/builtdist.rst:261 +msgid "create the source RPM" +msgstr "crée un RPM source" + +#: ../Doc/distutils/builtdist.rst:263 +msgid "" +"create the \"binary\" RPM (which may or may not contain binary code, " +"depending on whether your module distribution contains Python extensions)" +msgstr "" +"crée le RPM \"binaire\" (qui peut ou non contenir des binaires, tout dépend " +"de si votre module contiens des extensions)" + +#: ../Doc/distutils/builtdist.rst:266 +msgid "" +"Normally, RPM bundles the last two steps together; when you use the " +"Distutils, all three steps are typically bundled together." +msgstr "" +"Normalement, RPM réunit les deux dernières étapes ensemble ; quand vous " +"utilisez Distutils, les trois étapes sont regroupées." + +#: ../Doc/distutils/builtdist.rst:269 +msgid "" +"If you wish, you can separate these three steps. You can use the :option:" +"`!--spec-only` option to make :command:`bdist_rpm` just create the :file:`." +"spec` file and exit; in this case, the :file:`.spec` file will be written to " +"the \"distribution directory\"---normally :file:`dist/`, but customizable " +"with the :option:`!--dist-dir` option. (Normally, the :file:`.spec` file " +"winds up deep in the \"build tree,\" in a temporary directory created by :" +"command:`bdist_rpm`.)" +msgstr "" +"Si vous le souhaitez, vous pouvez séparer ces trois étapes. Vous pouvez " +"utiliser l'option :option:`!--spec-only` pour faire en sorte que la " +"commande :command:`bdist_rpm` crée juste le fichier :file:`.spec` et " +"quitte ; dans ce cas, le fichier :file:`.spec` sera écrit dans le dossier de " +"distribution (\"*distribution directory*\") --- normalement :file:`dist/`, " +"mais personnalisable avec l'option :option:`!--dist-dir`. (Normalement, le " +"fichier :file:`.spec` se retrouve profondément enfoui dans l'arborescence, " +"dans un dossier temporaire créé par la commande :command:`bdist_rpm`.)" + +#: ../Doc/distutils/builtdist.rst:297 +msgid "Creating Windows Installers" +msgstr "Créer un installateur Windows" + +#: ../Doc/distutils/builtdist.rst:299 +msgid "" +"Executable installers are the natural format for binary distributions on " +"Windows. They display a nice graphical user interface, display some " +"information about the module distribution to be installed taken from the " +"metadata in the setup script, let the user select a few options, and start " +"or cancel the installation." +msgstr "" +"Les installateurs exécutables sont le format naturel pour les distributions " +"sur Windows. Ils affichent une jolie interface graphique, montrent quelques " +"informations à propos du module qui va être installé, tiré des métadonnées " +"dans le script de préparation, laisse l'utilisateur choisir quelques options " +"et démarrer ou annuler l'installation." + +#: ../Doc/distutils/builtdist.rst:305 +msgid "" +"Since the metadata is taken from the setup script, creating Windows " +"installers is usually as easy as running::" +msgstr "" +"Étant donné que les métadonnées sont tirées du script de préparation, créer " +"un installateur Windows est généralement facile, il suffit de lancer ::" + +#: ../Doc/distutils/builtdist.rst:310 +msgid "or the :command:`bdist` command with the :option:`!--formats` option::" +msgstr "ou la commande :command:`bdist` avec l'option :option:`!--formats` ::" + +#: ../Doc/distutils/builtdist.rst:314 +msgid "" +"If you have a pure module distribution (only containing pure Python modules " +"and packages), the resulting installer will be version independent and have " +"a name like :file:`foo-1.0.win32.exe`. These installers can even be created " +"on Unix platforms or Mac OS X." +msgstr "" +"Si vous avez un module pur (contenant seulement des modules et des packages " +"en Python pur), l'installateur final ne sera lié a aucune version de Python " +"et aura un nom du type :file:`foo-1.0.win32.exe`. Ces installateurs peuvent " +"même être créés sur les plateformes Unix ou Mac OS X." + +#: ../Doc/distutils/builtdist.rst:319 +msgid "" +"If you have a non-pure distribution, the extensions can only be created on a " +"Windows platform, and will be Python version dependent. The installer " +"filename will reflect this and now has the form :file:`foo-1.0.win32-py2.0." +"exe`. You have to create a separate installer for every Python version you " +"want to support." +msgstr "" +"Si vous avez une distribution \"non-pure\", l'extension peut être créée " +"uniquement pour les plateformes Windows et sera lié à une version de Python. " +"Le nom de l'installateur reflétera ça et sera de format :file:`foo-1.0.win32-" +"py2.0.exe`. Vous devrez créer un installateur pour chaque version de Python " +"que vous voulez supporter." + +#: ../Doc/distutils/builtdist.rst:325 +msgid "" +"The installer will try to compile pure modules into :term:`bytecode` after " +"installation on the target system in normal and optimizing mode. If you " +"don't want this to happen for some reason, you can run the :command:" +"`bdist_wininst` command with the :option:`!--no-target-compile` and/or the :" +"option:`!--no-target-optimize` option." +msgstr "" +"L'installeur essaiera de compiler les modules purs en :term:`bytecode` après " +"installation sur le système cible dans les modes normaux et optimisé. Si " +"vous ne voulez pas que ce soit fait, vous pouvez lancer la commande :command:" +"`bdist_wininst` avec l'option :option:`!--no-target-compile` et/ou l'option :" +"option:`!--no-target-optimize`." + +#: ../Doc/distutils/builtdist.rst:331 +msgid "" +"By default the installer will display the cool \"Python Powered\" logo when " +"it is run, but you can also supply your own 152x261 bitmap which must be a " +"Windows :file:`.bmp` file with the :option:`!--bitmap` option." +msgstr "" +"Par défaut l'installateur affichera le super logo \"Python Powered\", mais " +"vous pouvez aussi donnez votre propre bitmap de 152x261 qui doit être un " +"fichier :file:`.bmp` Windows avec l'option :option:`!--bitmap`." + +#: ../Doc/distutils/builtdist.rst:335 +msgid "" +"The installer will also display a large title on the desktop background " +"window when it is run, which is constructed from the name of your " +"distribution and the version number. This can be changed to another text by " +"using the :option:`!--title` option." +msgstr "" +"L'installateur affichera aussi un grand titre en arrière plan de la fenêtre " +"quand exécuté, qui est composé du nom de votre distribution et du numéro de " +"version. Cela peut être changé avec un autre texte avec l'option :option:`!--" +"title`." + +#: ../Doc/distutils/builtdist.rst:340 +msgid "" +"The installer file will be written to the \"distribution directory\" --- " +"normally :file:`dist/`, but customizable with the :option:`!--dist-dir` " +"option." +msgstr "" +"Le fichier d'installation sera écrit dans le dossier de distribution " +"(\"*distribution directory*\") --- normalement :file:`dist/`, mais " +"personnalisable avec l'option :option:`!--dist-dir`." + +#: ../Doc/distutils/builtdist.rst:346 +msgid "Cross-compiling on Windows" +msgstr "Compiler pour toute les plateformes Windows" + +#: ../Doc/distutils/builtdist.rst:348 +msgid "" +"Starting with Python 2.6, distutils is capable of cross-compiling between " +"Windows platforms. In practice, this means that with the correct tools " +"installed, you can use a 32bit version of Windows to create 64bit extensions " +"and vice-versa." +msgstr "" +"Depuis Python 2.6, *distutils* est capable de compiler pour toutes les " +"plateformes de Windows. En pratique, cela signifie qu'avec les bons outils " +"installés, vous pouvez utiliser une version 32 bits de Windows pour créer " +"une extension 64 bits et vice-versa." + +#: ../Doc/distutils/builtdist.rst:353 +msgid "" +"To build for an alternate platform, specify the :option:`!--plat-name` " +"option to the build command. Valid values are currently 'win32', and 'win-" +"amd64'. For example, on a 32bit version of Windows, you could execute::" +msgstr "" +"Pour construire pour une plateforme alternative, spécifiez l'option :option:" +"`!--plat-name` à la commande de **build**. Les valeurs valides sont " +"actuellement **'win32'**, et **'win-amd64'**. Par exemple, sur une version " +"*32bit* de Windows, vous pourriez exécuter ::" + +#: ../Doc/distutils/builtdist.rst:359 +msgid "" +"to build a 64bit version of your extension. The Windows Installers also " +"support this option, so the command::" +msgstr "" +"pour construire une version 64 bits de votre module. L'installateur Windows " +"supporte aussi cette option, donc la commande ::" + +#: ../Doc/distutils/builtdist.rst:364 +msgid "" +"would create a 64bit installation executable on your 32bit version of " +"Windows." +msgstr "" +"créera un installateur exécutable 64 bits depuis votre version 32 bits de " +"Windows." + +#: ../Doc/distutils/builtdist.rst:366 +msgid "" +"To cross-compile, you must download the Python source code and cross-compile " +"Python itself for the platform you are targeting - it is not possible from a " +"binary installation of Python (as the .lib etc file for other platforms are " +"not included.) In practice, this means the user of a 32 bit operating " +"system will need to use Visual Studio 2008 to open the :file:`PCbuild/" +"PCbuild.sln` solution in the Python source tree and build the \"x64\" " +"configuration of the 'pythoncore' project before cross-compiling extensions " +"is possible." +msgstr "" +"Pour effectuer une compilation croisée (*cross-compile* en anglais), vous " +"devez télécharger le code source de Python et le compiler pour la plateforme " +"cible, il est impossible de le faire depuis une installation de Python (vu " +"que les fichiers *.lib* pour les autres plateformes ne sont pas inclus). En " +"pratique, cela veut dire qu'un utilisateur de système 32 bits devra utiliser " +"Visual Studio 2008 pour ouvrir la solution :file:`PCBuild/PCbuild.sln` dans " +"l'arborescence des sources de Python et construire la version *x64* du " +"projet *pythoncore* avant de pouvoir compiler son extension." + +#: ../Doc/distutils/builtdist.rst:375 +msgid "" +"Note that by default, Visual Studio 2008 does not install 64bit compilers or " +"tools. You may need to reexecute the Visual Studio setup process and select " +"these tools (using Control Panel->[Add/Remove] Programs is a convenient way " +"to check or modify your existing install.)" +msgstr "" +"Remarquez que par défaut Visual Studio 2008 n'installe pas les outils et " +"compilateur 64 bits. Vous devrez peut-être ré-exécuter le processus " +"d'installation et sélectionner ces outils (utiliser le *Panneau de Contrôle -" +"> [Ajouter/Supprimer]* est un bon moyen de vérifier ou modifier votre " +"installation existante.)" + +#: ../Doc/distutils/builtdist.rst:383 +msgid "The Postinstallation script" +msgstr "Le script de post-installation" + +#: ../Doc/distutils/builtdist.rst:385 +msgid "" +"Starting with Python 2.3, a postinstallation script can be specified with " +"the :option:`!--install-script` option. The basename of the script must be " +"specified, and the script filename must also be listed in the scripts " +"argument to the setup function." +msgstr "" +"Depuis Python 2.3, un script post-installation peut être spécifié avec " +"l'option :option:`!--install-script`. Le nom du script doit être spécifié et " +"présent dans l'argument \"scripts\" de la fonction ``setup``." + +#: ../Doc/distutils/builtdist.rst:390 +msgid "" +"This script will be run at installation time on the target system after all " +"the files have been copied, with ``argv[1]`` set to :option:`!-install`, and " +"again at uninstallation time before the files are removed with ``argv[1]`` " +"set to :option:`!-remove`." +msgstr "" +"Ce script doit être lancé au moment de l'installation sur le système cible " +"après que tous les fichiers ont été copiés, avec la valeur de ``argv[1]`` " +"à :option:`!-install`, et une autre fois durant la désinstallation avant " +"que les fichiers soient supprimés avec la valeur de ``argv[1]`` à :option:`!-" +"remove`." + +#: ../Doc/distutils/builtdist.rst:395 +msgid "" +"The installation script runs embedded in the windows installer, every output " +"(``sys.stdout``, ``sys.stderr``) is redirected into a buffer and will be " +"displayed in the GUI after the script has finished." +msgstr "" +"Le script d'installation s'exécute intégré à la fenêtre d'installation, " +"chaque sortie (``sys.stdout``, ``sys.stderr``) est redirigé dans le tampon " +"et sera affiché dans le GUI après que les scripts soient finis." + +#: ../Doc/distutils/builtdist.rst:399 +msgid "" +"Some functions especially useful in this context are available as additional " +"built-in functions in the installation script." +msgstr "" +"Certaines fonctions spécialement utiles dans ce contexte sont disponibles " +"comme fonctions natives additionnelles dans le script d'installation." + +#: ../Doc/distutils/builtdist.rst:406 +msgid "" +"These functions should be called when a directory or file is created by the " +"postinstall script at installation time. It will register *path* with the " +"uninstaller, so that it will be removed when the distribution is " +"uninstalled. To be safe, directories are only removed if they are empty." +msgstr "" +"Ces fonctions peuvent être appelées lorsqu'un répertoire ou un fichier est " +"crée par le script de post installation au moment de l'installation. Cela va " +"enregistrer le *chemin* avec le des-installateur, de sorte qu'il soit retiré " +"lors de la des-installation de la distribution. pour être sûr, les " +"répertoires sont uniquement retirés s'ils sont vides." + +#: ../Doc/distutils/builtdist.rst:414 +msgid "" +"This function can be used to retrieve special folder locations on Windows " +"like the Start Menu or the Desktop. It returns the full path to the folder. " +"*csidl_string* must be one of the following strings::" +msgstr "" +"Cette fonction peut être utilisée pour extraire des localisations de " +"fichiers spéciaux sous Windows comme un menu démarrer ou le Bureau. Cela " +"renvoie le chemin complet pour le fichier. *csidl_string* doit être unes des " +"chaines suivantes ::" + +#: ../Doc/distutils/builtdist.rst:434 +msgid "If the folder cannot be retrieved, :exc:`OSError` is raised." +msgstr "Si le fichier ne peut être extrait, :exc:`OSError` est obtenu.." + +#: ../Doc/distutils/builtdist.rst:436 +msgid "" +"Which folders are available depends on the exact Windows version, and " +"probably also the configuration. For details refer to Microsoft's " +"documentation of the :c:func:`SHGetSpecialFolderPath` function." +msgstr "" +"Quel dossier est disponible dépend de la version exacte de Windows, et " +"probablement aussi de la configuration. pour des détails se référer à la " +"documentation Microsoft de la fonction :c:func:`SHGetSpecialFolderPath`." + +#: ../Doc/distutils/builtdist.rst:443 +msgid "" +"This function creates a shortcut. *target* is the path to the program to be " +"started by the shortcut. *description* is the description of the shortcut. " +"*filename* is the title of the shortcut that the user will see. *arguments* " +"specifies the command line arguments, if any. *workdir* is the working " +"directory for the program. *iconpath* is the file containing the icon for " +"the shortcut, and *iconindex* is the index of the icon in the file " +"*iconpath*. Again, for details consult the Microsoft documentation for the :" +"class:`IShellLink` interface." +msgstr "" +"Cette fonction crée un raccourci. *cible* est le chemin au programme auquel " +"mène le raccourci. *description* est la description du raccourci. " +"*nomfichier* est le titre du raccourci que verra l'utilisateur. *arguments* " +"spécifie les arguments de la ligne de commande, si existant. *cheminRep* est " +"le répertoire de travail pour le programme. *cheminIcone* est le fichier " +"contenant l’icône pour le raccourci, et *IndexIcone* est l'index pour " +"l’icône dans le fichier *cheminIcone*. Encore, pour les détails consulter la " +"documentation Microsoft pour l'interface :class:`ILienShell`." + +#: ../Doc/distutils/builtdist.rst:454 +msgid "Vista User Access Control (UAC)" +msgstr "Contrôle d'accès utilisateur Vista (UAC)" + +#: ../Doc/distutils/builtdist.rst:456 +msgid "" +"Starting with Python 2.6, bdist_wininst supports a :option:`!--user-access-" +"control` option. The default is 'none' (meaning no UAC handling is done), " +"and other valid values are 'auto' (meaning prompt for UAC elevation if " +"Python was installed for all users) and 'force' (meaning always prompt for " +"elevation)." +msgstr "" +"Depuis Python 2.6, *bdist_wininst* accepte une option :option:`!--user-" +"access-control`. Sa valeur par défaut est 'none' (Ce qui veut dire que aucun " +"UAC est fait), et les autres valeurs valides sont 'auto' (ce qui veut dire " +"qu'il faut demander une élévation de privilèges UAC si Python a été installé " +"pour tous les utilisateurs) et 'force' (Toujours demander une élévation de " +"privilèges)." diff --git a/distutils/commandref.po b/distutils/commandref.po new file mode 100644 index 000000000..3c67467f5 --- /dev/null +++ b/distutils/commandref.po @@ -0,0 +1,157 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-10-04 15:27+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/distutils/commandref.rst:5 +msgid "Command Reference" +msgstr "Référence des commandes" + +#: ../Doc/distutils/commandref.rst:22 +msgid "Installing modules: the :command:`install` command family" +msgstr "Installer des modules: la famille de commande :command:`install`" + +#: ../Doc/distutils/commandref.rst:24 +msgid "" +"The install command ensures that the build commands have been run and then " +"runs the subcommands :command:`install_lib`, :command:`install_data` and :" +"command:`install_scripts`." +msgstr "" +"La commande d'installation s’assure que la commande de construction a bien " +"été lancé puis lance les sous-commandes :command:`install_lib`, :command:" +"`install_data` et :command:`install_scripts`." + +#: ../Doc/distutils/commandref.rst:35 +msgid ":command:`install_data`" +msgstr ":command:`install_data`" + +#: ../Doc/distutils/commandref.rst:37 +msgid "This command installs all data files provided with the distribution." +msgstr "" +"Cette commande installe tous les fichiers fournis avec la distribution." + +#: ../Doc/distutils/commandref.rst:43 +msgid ":command:`install_scripts`" +msgstr ":command:`install_scripts`" + +#: ../Doc/distutils/commandref.rst:45 +msgid "This command installs all (Python) scripts in the distribution." +msgstr "" +"Cette commande installe tout les scripts (Python) dans la distribution." + +#: ../Doc/distutils/commandref.rst:54 +msgid "Creating a source distribution: the :command:`sdist` command" +msgstr "Créer une distribution source: la commande :command:`sdist`" + +#: ../Doc/distutils/commandref.rst:58 +msgid "The manifest template commands are:" +msgstr "Les commandes du modèle manifeste sont :" + +#: ../Doc/distutils/commandref.rst:61 +msgid "Command" +msgstr "Commande" + +#: ../Doc/distutils/commandref.rst:61 +msgid "Description" +msgstr "Description" + +#: ../Doc/distutils/commandref.rst:63 +msgid ":command:`include pat1 pat2 ...`" +msgstr ":command:`include pat1 pat2 ...`" + +#: ../Doc/distutils/commandref.rst:63 +msgid "include all files matching any of the listed patterns" +msgstr "Inclut tous les fichiers ressemblant aux modèles listés" + +#: ../Doc/distutils/commandref.rst:66 +msgid ":command:`exclude pat1 pat2 ...`" +msgstr ":command:`exclude pat1 pat2 ...`" + +#: ../Doc/distutils/commandref.rst:66 +msgid "exclude all files matching any of the listed patterns" +msgstr "exclut tous les fichiers ressemblant aux modèles listés" + +#: ../Doc/distutils/commandref.rst:69 +msgid ":command:`recursive-include dir pat1 pat2 ...`" +msgstr ":command:`recursive-include dir pat1 pat2 ...`" + +#: ../Doc/distutils/commandref.rst:69 +msgid "include all files under *dir* matching any of the listed patterns" +msgstr "" +"inclut récursivement tous les fichiers sous *dir* ressemblant aux modèles " +"listés" + +#: ../Doc/distutils/commandref.rst:72 +msgid ":command:`recursive-exclude dir pat1 pat2 ...`" +msgstr ":command:`recursive-exclude dir pat1 pat2 ...`" + +#: ../Doc/distutils/commandref.rst:72 +msgid "exclude all files under *dir* matching any of the listed patterns" +msgstr "exclut tous les fichiers sous *dir* ressemblant aux modèles listés" + +#: ../Doc/distutils/commandref.rst:75 +msgid ":command:`global-include pat1 pat2 ...`" +msgstr ":command:`global-include pat1 pat2 ...`" + +#: ../Doc/distutils/commandref.rst:75 +msgid "" +"include all files anywhere in the source tree matching --- & any of the " +"listed patterns" +msgstr "" +"Inclut tous les fichiers dans l'arborescence ressemblant aux modèles listés" + +#: ../Doc/distutils/commandref.rst:78 +msgid ":command:`global-exclude pat1 pat2 ...`" +msgstr ":command:`global-exclude pat1 pat2 ...`" + +#: ../Doc/distutils/commandref.rst:78 +msgid "" +"exclude all files anywhere in the source tree matching --- & any of the " +"listed patterns" +msgstr "" +"exclut tous les fichiers dans l'arborescence ressemblant aux modèles listés" + +#: ../Doc/distutils/commandref.rst:81 +msgid ":command:`prune dir`" +msgstr ":command:`prune dir`" + +#: ../Doc/distutils/commandref.rst:81 +msgid "exclude all files under *dir*" +msgstr "exclut tous les fichiers dans *dir*" + +#: ../Doc/distutils/commandref.rst:83 +msgid ":command:`graft dir`" +msgstr ":command:`graft dir`" + +#: ../Doc/distutils/commandref.rst:83 +msgid "include all files under *dir*" +msgstr "inclut tous les fichiers dans *dir*" + +#: ../Doc/distutils/commandref.rst:86 +msgid "" +"The patterns here are Unix-style \"glob\" patterns: ``*`` matches any " +"sequence of regular filename characters, ``?`` matches any single regular " +"filename character, and ``[range]`` matches any of the characters in *range* " +"(e.g., ``a-z``, ``a-zA-Z``, ``a-f0-9_.``). The definition of \"regular " +"filename character\" is platform-specific: on Unix it is anything except " +"slash; on Windows anything except backslash or colon." +msgstr "" +"Les modèles sont de style Unix *glob* : ``*`` correspond à n'importe quelle " +"chaîne de caractères d'un nom de fichier valide, ``?`` correspond à un seul " +"caractère d'un nom de fichier valide et ``[range]`` correspond à n'importe " +"quel caractère dans la *range* (e.g., ``a-z``, ``a-zA-Z``, ``a-f0-9_.``). " +"La définition de \"caractère de nom de fichier valide\" est spécifique à " +"chaque plateforme: sur Unix il s'agir de n'importe quel caractère à part le " +"slash; sur Windows il s'agir de n'importe quel caractère a part l'anti-slash " +"et les deux points." diff --git a/distutils/configfile.po b/distutils/configfile.po new file mode 100644 index 000000000..964b5ac73 --- /dev/null +++ b/distutils/configfile.po @@ -0,0 +1,157 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/distutils/configfile.rst:5 +msgid "Writing the Setup Configuration File" +msgstr "" + +#: ../Doc/distutils/configfile.rst:7 +msgid "" +"Often, it's not possible to write down everything needed to build a " +"distribution *a priori*: you may need to get some information from the user, " +"or from the user's system, in order to proceed. As long as that information " +"is fairly simple---a list of directories to search for C header files or " +"libraries, for example---then providing a configuration file, :file:`setup." +"cfg`, for users to edit is a cheap and easy way to solicit it. " +"Configuration files also let you provide default values for any command " +"option, which the installer can then override either on the command-line or " +"by editing the config file." +msgstr "" + +#: ../Doc/distutils/configfile.rst:16 +msgid "" +"The setup configuration file is a useful middle-ground between the setup " +"script---which, ideally, would be opaque to installers [#]_---and the " +"command-line to the setup script, which is outside of your control and " +"entirely up to the installer. In fact, :file:`setup.cfg` (and any other " +"Distutils configuration files present on the target system) are processed " +"after the contents of the setup script, but before the command-line. This " +"has several useful consequences:" +msgstr "" + +#: ../Doc/distutils/configfile.rst:30 +msgid "" +"installers can override some of what you put in :file:`setup.py` by editing :" +"file:`setup.cfg`" +msgstr "" + +#: ../Doc/distutils/configfile.rst:33 +msgid "" +"you can provide non-standard defaults for options that are not easily set " +"in :file:`setup.py`" +msgstr "" + +#: ../Doc/distutils/configfile.rst:36 +msgid "" +"installers can override anything in :file:`setup.cfg` using the command-line " +"options to :file:`setup.py`" +msgstr "" + +#: ../Doc/distutils/configfile.rst:39 +msgid "The basic syntax of the configuration file is simple:" +msgstr "" + +#: ../Doc/distutils/configfile.rst:47 +msgid "" +"where *command* is one of the Distutils commands (e.g. :command:`build_py`, :" +"command:`install`), and *option* is one of the options that command " +"supports. Any number of options can be supplied for each command, and any " +"number of command sections can be included in the file. Blank lines are " +"ignored, as are comments, which run from a ``'#'`` character until the end " +"of the line. Long option values can be split across multiple lines simply " +"by indenting the continuation lines." +msgstr "" + +#: ../Doc/distutils/configfile.rst:55 +msgid "" +"You can find out the list of options supported by a particular command with " +"the universal :option:`!--help` option, e.g." +msgstr "" + +#: ../Doc/distutils/configfile.rst:73 +msgid "" +"Note that an option spelled :option:`!--foo-bar` on the command-line is " +"spelled ``foo_bar`` in configuration files." +msgstr "" + +#: ../Doc/distutils/configfile.rst:78 +msgid "" +"For example, say you want your extensions to be built \"in-place\"---that " +"is, you have an extension :mod:`pkg.ext`, and you want the compiled " +"extension file (:file:`ext.so` on Unix, say) to be put in the same source " +"directory as your pure Python modules :mod:`pkg.mod1` and :mod:`pkg.mod2`. " +"You can always use the :option:`!--inplace` option on the command-line to " +"ensure this:" +msgstr "" + +#: ../Doc/distutils/configfile.rst:88 +msgid "" +"But this requires that you always specify the :command:`build_ext` command " +"explicitly, and remember to provide :option:`!--inplace`. An easier way is " +"to \"set and forget\" this option, by encoding it in :file:`setup.cfg`, the " +"configuration file for this distribution:" +msgstr "" + +#: ../Doc/distutils/configfile.rst:98 +msgid "" +"This will affect all builds of this module distribution, whether or not you " +"explicitly specify :command:`build_ext`. If you include :file:`setup.cfg` " +"in your source distribution, it will also affect end-user builds---which is " +"probably a bad idea for this option, since always building extensions in-" +"place would break installation of the module distribution. In certain " +"peculiar cases, though, modules are built right in their installation " +"directory, so this is conceivably a useful ability. (Distributing " +"extensions that expect to be built in their installation directory is almost " +"always a bad idea, though.)" +msgstr "" + +#: ../Doc/distutils/configfile.rst:107 +msgid "" +"Another example: certain commands take a lot of options that don't change " +"from run to run; for example, :command:`bdist_rpm` needs to know everything " +"required to generate a \"spec\" file for creating an RPM distribution. Some " +"of this information comes from the setup script, and some is automatically " +"generated by the Distutils (such as the list of files installed). But some " +"of it has to be supplied as options to :command:`bdist_rpm`, which would be " +"very tedious to do on the command-line for every run. Hence, here is a " +"snippet from the Distutils' own :file:`setup.cfg`:" +msgstr "" + +#: ../Doc/distutils/configfile.rst:127 +msgid "" +"Note that the ``doc_files`` option is simply a whitespace-separated string " +"split across multiple lines for readability." +msgstr "" + +#: ../Doc/distutils/configfile.rst:134 +msgid ":ref:`inst-config-syntax` in \"Installing Python Modules\"" +msgstr "" + +#: ../Doc/distutils/configfile.rst:134 +msgid "" +"More information on the configuration files is available in the manual for " +"system administrators." +msgstr "" + +#: ../Doc/distutils/configfile.rst:139 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/distutils/configfile.rst:140 +msgid "" +"This ideal probably won't be achieved until auto-configuration is fully " +"supported by the Distutils." +msgstr "" diff --git a/distutils/examples.po b/distutils/examples.po new file mode 100644 index 000000000..0ec1b2344 --- /dev/null +++ b/distutils/examples.po @@ -0,0 +1,276 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/distutils/examples.rst:5 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/distutils/examples.rst:7 +msgid "" +"This chapter provides a number of basic examples to help get started with " +"distutils. Additional information about using distutils can be found in the " +"Distutils Cookbook." +msgstr "" + +#: ../Doc/distutils/examples.rst:14 +msgid "`Distutils Cookbook `_" +msgstr "" + +#: ../Doc/distutils/examples.rst:15 +msgid "" +"Collection of recipes showing how to achieve more control over distutils." +msgstr "" + +#: ../Doc/distutils/examples.rst:21 +msgid "Pure Python distribution (by module)" +msgstr "" + +#: ../Doc/distutils/examples.rst:23 +msgid "" +"If you're just distributing a couple of modules, especially if they don't " +"live in a particular package, you can specify them individually using the " +"``py_modules`` option in the setup script." +msgstr "" + +#: ../Doc/distutils/examples.rst:27 +msgid "" +"In the simplest case, you'll have two files to worry about: a setup script " +"and the single module you're distributing, :file:`foo.py` in this example::" +msgstr "" + +#: ../Doc/distutils/examples.rst:34 +msgid "" +"(In all diagrams in this section, ** will refer to the distribution " +"root directory.) A minimal setup script to describe this situation would " +"be::" +msgstr "" + +#: ../Doc/distutils/examples.rst:43 +msgid "" +"Note that the name of the distribution is specified independently with the " +"``name`` option, and there's no rule that says it has to be the same as the " +"name of the sole module in the distribution (although that's probably a good " +"convention to follow). However, the distribution name is used to generate " +"filenames, so you should stick to letters, digits, underscores, and hyphens." +msgstr "" + +#: ../Doc/distutils/examples.rst:49 +msgid "" +"Since ``py_modules`` is a list, you can of course specify multiple modules, " +"eg. if you're distributing modules :mod:`foo` and :mod:`bar`, your setup " +"might look like this::" +msgstr "" + +#: ../Doc/distutils/examples.rst:58 +msgid "and the setup script might be ::" +msgstr "" + +#: ../Doc/distutils/examples.rst:66 +msgid "" +"You can put module source files into another directory, but if you have " +"enough modules to do that, it's probably easier to specify modules by " +"package rather than listing them individually." +msgstr "" + +#: ../Doc/distutils/examples.rst:74 +msgid "Pure Python distribution (by package)" +msgstr "" + +#: ../Doc/distutils/examples.rst:76 +msgid "" +"If you have more than a couple of modules to distribute, especially if they " +"are in multiple packages, it's probably easier to specify whole packages " +"rather than individual modules. This works even if your modules are not in " +"a package; you can just tell the Distutils to process modules from the root " +"package, and that works the same as any other package (except that you don't " +"have to have an :file:`__init__.py` file)." +msgstr "" + +#: ../Doc/distutils/examples.rst:83 +msgid "The setup script from the last example could also be written as ::" +msgstr "" + +#: ../Doc/distutils/examples.rst:91 +msgid "(The empty string stands for the root package.)" +msgstr "" + +#: ../Doc/distutils/examples.rst:93 +msgid "" +"If those two files are moved into a subdirectory, but remain in the root " +"package, e.g.::" +msgstr "" + +#: ../Doc/distutils/examples.rst:101 +msgid "" +"then you would still specify the root package, but you have to tell the " +"Distutils where source files in the root package live::" +msgstr "" + +#: ../Doc/distutils/examples.rst:111 +msgid "" +"More typically, though, you will want to distribute multiple modules in the " +"same package (or in sub-packages). For example, if the :mod:`foo` and :mod:" +"`bar` modules belong in package :mod:`foobar`, one way to layout your source " +"tree is ::" +msgstr "" + +#: ../Doc/distutils/examples.rst:123 +msgid "" +"This is in fact the default layout expected by the Distutils, and the one " +"that requires the least work to describe in your setup script::" +msgstr "" + +#: ../Doc/distutils/examples.rst:132 +msgid "" +"If you want to put modules in directories not named for their package, then " +"you need to use the ``package_dir`` option again. For example, if the :file:" +"`src` directory holds modules in the :mod:`foobar` package::" +msgstr "" + +#: ../Doc/distutils/examples.rst:143 +msgid "an appropriate setup script would be ::" +msgstr "" + +#: ../Doc/distutils/examples.rst:152 +msgid "" +"Or, you might put modules from your main package right in the distribution " +"root::" +msgstr "" + +#: ../Doc/distutils/examples.rst:161 +msgid "in which case your setup script would be ::" +msgstr "" + +#: ../Doc/distutils/examples.rst:170 +msgid "(The empty string also stands for the current directory.)" +msgstr "" + +#: ../Doc/distutils/examples.rst:172 +msgid "" +"If you have sub-packages, they must be explicitly listed in ``packages``, " +"but any entries in ``package_dir`` automatically extend to sub-packages. (In " +"other words, the Distutils does *not* scan your source tree, trying to " +"figure out which directories correspond to Python packages by looking for :" +"file:`__init__.py` files.) Thus, if the default layout grows a sub-package::" +msgstr "" + +#: ../Doc/distutils/examples.rst:188 +msgid "then the corresponding setup script would be ::" +msgstr "" + +#: ../Doc/distutils/examples.rst:200 +msgid "Single extension module" +msgstr "" + +#: ../Doc/distutils/examples.rst:202 +msgid "" +"Extension modules are specified using the ``ext_modules`` option. " +"``package_dir`` has no effect on where extension source files are found; it " +"only affects the source for pure Python modules. The simplest case, a " +"single extension module in a single C source file, is::" +msgstr "" + +#: ../Doc/distutils/examples.rst:211 +msgid "" +"If the :mod:`foo` extension belongs in the root package, the setup script " +"for this could be ::" +msgstr "" + +#: ../Doc/distutils/examples.rst:221 +msgid "If the extension actually belongs in a package, say :mod:`foopkg`, then" +msgstr "" + +#: ../Doc/distutils/examples.rst:223 +msgid "" +"With exactly the same source tree layout, this extension can be put in the :" +"mod:`foopkg` package simply by changing the name of the extension::" +msgstr "" + +#: ../Doc/distutils/examples.rst:234 +msgid "Checking a package" +msgstr "" + +#: ../Doc/distutils/examples.rst:236 +msgid "" +"The ``check`` command allows you to verify if your package meta-data meet " +"the minimum requirements to build a distribution." +msgstr "" + +#: ../Doc/distutils/examples.rst:239 +msgid "" +"To run it, just call it using your :file:`setup.py` script. If something is " +"missing, ``check`` will display a warning." +msgstr "" + +#: ../Doc/distutils/examples.rst:242 +msgid "Let's take an example with a simple script::" +msgstr "" + +#: ../Doc/distutils/examples.rst:248 +msgid "Running the ``check`` command will display some warnings:" +msgstr "" + +#: ../Doc/distutils/examples.rst:259 +msgid "" +"If you use the reStructuredText syntax in the ``long_description`` field and " +"`docutils`_ is installed you can check if the syntax is fine with the " +"``check`` command, using the ``restructuredtext`` option." +msgstr "" + +#: ../Doc/distutils/examples.rst:263 +msgid "For example, if the :file:`setup.py` script is changed like this::" +msgstr "" + +#: ../Doc/distutils/examples.rst:278 +msgid "" +"Where the long description is broken, ``check`` will be able to detect it by " +"using the :mod:`docutils` parser:" +msgstr "" + +#: ../Doc/distutils/examples.rst:289 +msgid "Reading the metadata" +msgstr "" + +#: ../Doc/distutils/examples.rst:291 +msgid "" +"The :func:`distutils.core.setup` function provides a command-line interface " +"that allows you to query the metadata fields of a project through the " +"``setup.py`` script of a given project:" +msgstr "" + +#: ../Doc/distutils/examples.rst:300 +msgid "" +"This call reads the ``name`` metadata by running the :func:`distutils.core." +"setup` function. Although, when a source or binary distribution is created " +"with Distutils, the metadata fields are written in a static file called :" +"file:`PKG-INFO`. When a Distutils-based project is installed in Python, the :" +"file:`PKG-INFO` file is copied alongside the modules and packages of the " +"distribution under :file:`NAME-VERSION-pyX.X.egg-info`, where ``NAME`` is " +"the name of the project, ``VERSION`` its version as defined in the Metadata, " +"and ``pyX.X`` the major and minor version of Python like ``2.7`` or ``3.2``." +msgstr "" + +#: ../Doc/distutils/examples.rst:310 +msgid "" +"You can read back this static file, by using the :class:`distutils.dist." +"DistributionMetadata` class and its :func:`read_pkg_file` method::" +msgstr "" + +#: ../Doc/distutils/examples.rst:324 +msgid "" +"Notice that the class can also be instantiated with a metadata file path to " +"loads its values::" +msgstr "" diff --git a/distutils/extending.po b/distutils/extending.po new file mode 100644 index 000000000..3415815c9 --- /dev/null +++ b/distutils/extending.po @@ -0,0 +1,182 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-18 10:21+0200\n" +"PO-Revision-Date: 2018-11-30 14:00+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/distutils/extending.rst:5 +msgid "Extending Distutils" +msgstr "Extension de Distutils" + +#: ../Doc/distutils/extending.rst:7 +msgid "" +"Distutils can be extended in various ways. Most extensions take the form of " +"new commands or replacements for existing commands. New commands may be " +"written to support new types of platform-specific packaging, for example, " +"while replacements for existing commands may be made to modify details of " +"how the command operates on a package." +msgstr "" +"*Distutils* peut être étendu de multiples façons. La plupart des extensions " +"sont soit des nouvelles commandes soit des remplacements de commandes " +"existantes. De nouvelles commandes pourraient par exemple servir à " +"l'empaquetage pour des plateformes spécifiques tandis que des remplacements " +"peuvent modifier certains aspects des commandes existantes." + +#: ../Doc/distutils/extending.rst:13 +msgid "" +"Most extensions of the distutils are made within :file:`setup.py` scripts " +"that want to modify existing commands; many simply add a few file extensions " +"that should be copied into packages in addition to :file:`.py` files as a " +"convenience." +msgstr "" +"La plupart des extensions de *distutils* sont faites dans le script :file:" +"`setup.py`. La plupart ajoutent simplement quelques extensions de fichiers " +"qui devraient être copiés dans le paquet en plus des fichiers :file:`.py`." + +#: ../Doc/distutils/extending.rst:18 +msgid "" +"Most distutils command implementations are subclasses of the :class:" +"`distutils.cmd.Command` class. New commands may directly inherit from :" +"class:`Command`, while replacements often derive from :class:`Command` " +"indirectly, directly subclassing the command they are replacing. Commands " +"are required to derive from :class:`Command`." +msgstr "" +"La plupart des implémentations des commandes *distutils* sont des sous-" +"classes de :class:`distutils.cmd.Command`. Les nouvelles commandes peuvent " +"hériter directement de :class:`Command`, alors que les remplacements " +"dérivent souvent de :class:`Command` indirectement, directement sous-" +"classant la commande qu'ils remplacent. Les commandes doivent dériver de la " +"classe :class:`Command`." + +#: ../Doc/distutils/extending.rst:33 +msgid "Integrating new commands" +msgstr "Intégrer de nouvelles commandes" + +#: ../Doc/distutils/extending.rst:35 +msgid "" +"There are different ways to integrate new command implementations into " +"distutils. The most difficult is to lobby for the inclusion of the new " +"features in distutils itself, and wait for (and require) a version of Python " +"that provides that support. This is really hard for many reasons." +msgstr "" +"Il y a différentes façons d’intégrer de nouvelles implémentations de " +"commandes dans *distutils*. La plus difficile est de faire pression pour " +"inclure une nouvelle fonctionnalité dans *distutils* même, et d’attendre (et " +"demander) une version de Python l'implémentant. C'est très difficile pour " +"beaucoup de raisons." + +#: ../Doc/distutils/extending.rst:40 +msgid "" +"The most common, and possibly the most reasonable for most needs, is to " +"include the new implementations with your :file:`setup.py` script, and cause " +"the :func:`distutils.core.setup` function use them::" +msgstr "" +"La plus commune, et possiblement la plus raisonnable pour la plupart des " +"cas, est d'inclure les nouvelles implémentations dans votre fichier :file:" +"`setup.py`, et de faire en sorte que la fonction :func:`distutils.core." +"setup` les utilise ::" + +#: ../Doc/distutils/extending.rst:55 +msgid "" +"This approach is most valuable if the new implementations must be used to " +"use a particular package, as everyone interested in the package will need to " +"have the new command implementation." +msgstr "" +"Cette approche est la plus valable si les nouvelles implémentations doivent " +"être utilisées pour utiliser un paquet particulier, vu que toutes les " +"personnes intéressées par le paquet devront avoir ces nouvelles " +"implémentations de commandes." + +#: ../Doc/distutils/extending.rst:59 +msgid "" +"Beginning with Python 2.4, a third option is available, intended to allow " +"new commands to be added which can support existing :file:`setup.py` scripts " +"without requiring modifications to the Python installation. This is " +"expected to allow third-party extensions to provide support for additional " +"packaging systems, but the commands can be used for anything distutils " +"commands can be used for. A new configuration option, ``command_packages`` " +"(command-line option :option:`!--command-packages`), can be used to specify " +"additional packages to be searched for modules implementing commands. Like " +"all distutils options, this can be specified on the command line or in a " +"configuration file. This option can only be set in the ``[global]`` section " +"of a configuration file, or before any commands on the command line. If set " +"in a configuration file, it can be overridden from the command line; setting " +"it to an empty string on the command line causes the default to be used. " +"This should never be set in a configuration file provided with a package." +msgstr "" +"Depuis Python 2.4, une troisième option est disponible, prévue pour " +"permettre d'ajouter de nouvelles commandes compatibles avec le script " +"existant :file:`setup.py` sans avoir besoin de modifier l'installation " +"Python. C'est fait pour que les extensions tierces puissent rester " +"compatibles avec d'autres systèmes d'empaquetage, mais les commandes peuvent " +"être utilisées pour tout ce que les commandes de *distutils* peuvent faire. " +"Une nouvelle option de configuration, ``command_packages`` (option shell :" +"option:`!--command-packages`), peut être utilisée pour spécifier des " +"recherches de paquets additionnels pour des modules qui implémentent des " +"commandes. Comme toutes les options *distutils*, cela peut être spécifié en " +"ligne de commande ou dans un fichier de configuration. Cette option peut " +"être fixée dans la section ``[global]`` d'un fichier de configuration, ou " +"avant n'importe quelle commande dans un shell. Si définie dans un fichier de " +"configuration, elle peut être écrasée depuis la ligne de commande. Mettre " +"une chaine de caractères vide en valeur de cette option forcera " +"l'utilisation de la valeur par défaut. Cela ne devrait jamais être fixé dans " +"un fichier de configuration donné avec un paquet." + +#: ../Doc/distutils/extending.rst:74 +msgid "" +"This new option can be used to add any number of packages to the list of " +"packages searched for command implementations; multiple package names should " +"be separated by commas. When not specified, the search is only performed in " +"the :mod:`distutils.command` package. When :file:`setup.py` is run with the " +"option ``--command-packages distcmds,buildcmds``, however, the packages :mod:" +"`distutils.command`, :mod:`distcmds`, and :mod:`buildcmds` will be searched " +"in that order. New commands are expected to be implemented in modules of " +"the same name as the command by classes sharing the same name. Given the " +"example command line option above, the command :command:`bdist_openpkg` " +"could be implemented by the class :class:`distcmds.bdist_openpkg." +"bdist_openpkg` or :class:`buildcmds.bdist_openpkg.bdist_openpkg`." +msgstr "" +"Cette nouvelle option peut être utilisée pour ajouter n'importe quel nombre " +"de paquet à la liste des paquets recherchés pour les implémentations de " +"commandes ; plusieurs noms de paquets doivent être séparés par des virgules. " +"Quand non spécifié, la recherche est seulement faite dans le paquet :mod:" +"`distutils.command`. Cependant, lorsque :file:`setup.py` est lancé avec " +"l'option ``--command-packages distcmds,buildcmds``, les paquets :mod:" +"`distutils.command`, :mod:`distcmds`, et :mod:`buildcmds` seront cherchés " +"dans cet ordre. Il est attendu des nouvelles commandes d’être implémentées " +"en modules du même nom que la commande en utilisant des classes partageant " +"le même nom. Comme dans l'exemple shell donné ci-dessus, la commande :" +"command:`bdist_openpkg` pourrait être implémentée avec la classe :class:" +"`distcmds.bdist_openpkg.bdist_openpkg` ou :class:`buildcmds.bdist_openpkg." +"bdist_openpkg`." + +#: ../Doc/distutils/extending.rst:88 +msgid "Adding new distribution types" +msgstr "Ajout de nouveaux types de distribution" + +#: ../Doc/distutils/extending.rst:90 +msgid "" +"Commands that create distributions (files in the :file:`dist/` directory) " +"need to add ``(command, filename)`` pairs to ``self.distribution." +"dist_files`` so that :command:`upload` can upload it to PyPI. The " +"*filename* in the pair contains no path information, only the name of the " +"file itself. In dry-run mode, pairs should still be added to represent what " +"would have been created." +msgstr "" +"Les commandes qui créent des distributions (fichiers dans le dossier :file:" +"`dist/`) doivent ajouter la paire ``(command, filename)`` à ``self." +"distribution.dist_files`` pour que :command:`upload` puisse publier sur " +"PyPI. Le nom de fichier (*filename*) dans la paire ne contiens pas de " +"chemin, juste le nom du fichier lui-même. En mode *dry-run*, les paires " +"doivent toujours être ajoutées pour représenter ce qui aurait été créé." diff --git a/distutils/index.po b/distutils/index.po new file mode 100644 index 000000000..bd8a7b264 --- /dev/null +++ b/distutils/index.po @@ -0,0 +1,71 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-07-04 11:20+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/distutils/index.rst:5 +msgid "Distributing Python Modules (Legacy version)" +msgstr "Distribuer des modules Python (Version historique)" + +#: ../Doc/distutils/index.rst:0 +msgid "Authors" +msgstr "Auteurs" + +#: ../Doc/distutils/index.rst:7 +msgid "Greg Ward, Anthony Baxter" +msgstr "Greg Ward, Anthony Baxter" + +#: ../Doc/distutils/index.rst:0 +msgid "Email" +msgstr "Email" + +#: ../Doc/distutils/index.rst:8 +msgid "distutils-sig@python.org" +msgstr "distutils-sig@python.org" + +#: ../Doc/distutils/index.rst:12 +msgid ":ref:`distributing-index`" +msgstr ":ref:`distributing-index`" + +#: ../Doc/distutils/index.rst:13 +msgid "The up to date module distribution documentations" +msgstr "La documentation actuelle de distribution de modules" + +#: ../Doc/distutils/index.rst:15 +msgid "" +"This document describes the Python Distribution Utilities (\"Distutils\") " +"from the module developer's point of view, describing how to use the " +"Distutils to make Python modules and extensions easily available to a wider " +"audience with very little overhead for build/release/install mechanics." +msgstr "" +"Ce document décrit les outils de distribution de Python (\"Distutils\") du " +"point de vue d'un développeur de modules. Il décrit comment utiliser " +"`Distutils` pour rendre des modules et extensions Python disponible à une " +"large audience, simplement, avec un faible surcoût sur les mécaniques de " +"construction, déploiement et installation." + +#: ../Doc/distutils/index.rst:22 +msgid "" +"This guide only covers the basic tools for building and distributing " +"extensions that are provided as part of this version of Python. Third party " +"tools offer easier to use and more secure alternatives. Refer to the `quick " +"recommendations section `__ in the Python Packaging User Guide for more information." +msgstr "" +"Ce guide ne couvre que les outils de base, fournis avec cette version de " +"Python, pour construire et distribuer des extensions. D'autres outils " +"peuvent être plus sécurisés et plus simple à utiliser. Consultez `quick " +"recommendations section `__ dans le *Python Packaging User Guide* pour plus " +"d'informations." diff --git a/distutils/introduction.po b/distutils/introduction.po new file mode 100644 index 000000000..06544be5d --- /dev/null +++ b/distutils/introduction.po @@ -0,0 +1,453 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/distutils/introduction.rst:5 +msgid "An Introduction to Distutils" +msgstr "Introduction à Distutils" + +#: ../Doc/distutils/introduction.rst:7 +msgid "" +"This document covers using the Distutils to distribute your Python modules, " +"concentrating on the role of developer/distributor: if you're looking for " +"information on installing Python modules, you should refer to the :ref:" +"`install-index` chapter." +msgstr "" +"Ce document traite de l'utilisation de Distutils pour distribuer des modules " +"Python, en se concentrant sur le rôle de développeur/distributeur : si vous " +"cherchez des informations sur l'installation de modules Python, vous devriez " +"vous référer au chapitre :ref:`install-index`." + +#: ../Doc/distutils/introduction.rst:16 +msgid "Concepts & Terminology" +msgstr "Concepts et Terminologie" + +#: ../Doc/distutils/introduction.rst:18 +msgid "" +"Using the Distutils is quite simple, both for module developers and for " +"users/administrators installing third-party modules. As a developer, your " +"responsibilities (apart from writing solid, well-documented and well-tested " +"code, of course!) are:" +msgstr "" +"Utiliser Distuils est assez simple, à la fois pour les développeurs de " +"module et pour les utilisateurs/administrateurs qui installent des modules " +"tiers. En tant que développeur, vos responsabilités (en plus d'écrire du " +"code solide, bien documenté et bien testé, bien entendu !) sont :" + +#: ../Doc/distutils/introduction.rst:23 +msgid "write a setup script (:file:`setup.py` by convention)" +msgstr "écrire un script d'installation (:file:`setup.py` par convention) ;" + +#: ../Doc/distutils/introduction.rst:25 +msgid "(optional) write a setup configuration file" +msgstr "(optionnel) écrire un fichier de configuration pour l'installation ;" + +#: ../Doc/distutils/introduction.rst:27 +msgid "create a source distribution" +msgstr "créer une distribution source ;" + +#: ../Doc/distutils/introduction.rst:29 +msgid "(optional) create one or more built (binary) distributions" +msgstr "(optionnel) créer une ou plusieurs distributions compilées (binaires)." + +#: ../Doc/distutils/introduction.rst:31 +msgid "Each of these tasks is covered in this document." +msgstr "Chacune de ces tâches est couverte dans ce document." + +#: ../Doc/distutils/introduction.rst:33 +msgid "" +"Not all module developers have access to a multitude of platforms, so it's " +"not always feasible to expect them to create a multitude of built " +"distributions. It is hoped that a class of intermediaries, called " +"*packagers*, will arise to address this need. Packagers will take source " +"distributions released by module developers, build them on one or more " +"platforms, and release the resulting built distributions. Thus, users on " +"the most popular platforms will be able to install most popular Python " +"module distributions in the most natural way for their platform, without " +"having to run a single setup script or compile a line of code." +msgstr "" +"Tous les développeurs de modules n'ont pas accès à une multitude de " +"plateformes, donc on ne peut pas exiger d'eux qu'ils créent une multitude de " +"distributions compilées. On s'attend à ce que certains intermédiaires, " +"appelés *packagers*, prennent en charge ce besoin. Les packagers vont " +"prendre les sources des distributions publiées par les développeurs de " +"modules, les construire sur on ou plusieurs plateformes, et publier les " +"distributions compilées résultantes. Ainsi, les utilisateurs sur les " +"plateformes les plus populaires vont pouvoir installer la plupart des " +"modules Python de la façon la plus naturelle qui soit pour leur plateforme, " +"sans avoir à exécuter de script ou à compiler du code." + +#: ../Doc/distutils/introduction.rst:47 +msgid "A Simple Example" +msgstr "Un exemple simple" + +#: ../Doc/distutils/introduction.rst:49 +msgid "" +"The setup script is usually quite simple, although since it's written in " +"Python, there are no arbitrary limits to what you can do with it, though you " +"should be careful about putting arbitrarily expensive operations in your " +"setup script. Unlike, say, Autoconf-style configure scripts, the setup " +"script may be run multiple times in the course of building and installing " +"your module distribution." +msgstr "" +"Le script d'installation est habituellement assez simple, même s'il n'y a " +"pas de limite à ce qu'il peut faire (il est écrit en Python, n'est-ce " +"pas ?). Veillez d'ailleurs à ne pas surcharger ce script avec des opérations " +"coûteuses car, contrairement aux scripts de configuration façon Autoconf, le " +"script d'installation peut être amené à être exécuté plusieurs fois au cours " +"de la compilation et de l'installation du module. " + +#: ../Doc/distutils/introduction.rst:56 +msgid "" +"If all you want to do is distribute a module called :mod:`foo`, contained in " +"a file :file:`foo.py`, then your setup script can be as simple as this::" +msgstr "" +"Si tout ce que vous voulez est de distribuer un module appelé :mod:`foo`, " +"contenu dans un fichier :file:`foo.py`, alors votre script d'installation " +"peut se résumer à :" + +#: ../Doc/distutils/introduction.rst:65 +msgid "Some observations:" +msgstr "Quelques observations :" + +#: ../Doc/distutils/introduction.rst:67 +msgid "" +"most information that you supply to the Distutils is supplied as keyword " +"arguments to the :func:`setup` function" +msgstr "" +"la plupart des informations que vous fournissez à Distutils sont fournies en " +"tant que qu'arguments nommés à la fonction :func:`setup`;" + +#: ../Doc/distutils/introduction.rst:70 +msgid "" +"those keyword arguments fall into two categories: package metadata (name, " +"version number) and information about what's in the package (a list of pure " +"Python modules, in this case)" +msgstr "" +"ces arguments nommés tombent dans deux catégories : métadonnées du paquet " +"(nom, numéro de version) et des informations sur le contenu du paquet paquet " +"(une liste de purs modules Python, dans ce cas) ; " + +#: ../Doc/distutils/introduction.rst:74 +msgid "" +"modules are specified by module name, not filename (the same will hold true " +"for packages and extensions)" +msgstr "" +"les modules sont listés par nom de module, plutôt que par nom de fichier (le " +"cas est similaire pour les paquets et extensions) ;" + +#: ../Doc/distutils/introduction.rst:77 +msgid "" +"it's recommended that you supply a little more metadata, in particular your " +"name, email address and a URL for the project (see section :ref:`setup-" +"script` for an example)" +msgstr "" +"il est recommandé de fournir un minimum de métadonnées, en particulier votre " +"nom, une adresse de courriel et une URL pour le projet (voir section :ref:" +"`setup-script` pour un exemple)." + +#: ../Doc/distutils/introduction.rst:81 +msgid "" +"To create a source distribution for this module, you would create a setup " +"script, :file:`setup.py`, containing the above code, and run this command " +"from a terminal::" +msgstr "" +"Pour créer une distribution source pour ce module, il faut créer un script " +"d'installation, :file:`setup.py`, contenant le code ci-dessus, et exécuter " +"cette commande depuis un terminal :" + +#: ../Doc/distutils/introduction.rst:87 +msgid "" +"For Windows, open a command prompt window (:menuselection:`Start --> " +"Accessories`) and change the command to::" +msgstr "" +"Pour Windows, ouvrez une invite de commande (:menuselection:`Démarrer --> " +"Accessoires`) et changez la commande en :" + +#: ../Doc/distutils/introduction.rst:92 +msgid "" +":command:`sdist` will create an archive file (e.g., tarball on Unix, ZIP " +"file on Windows) containing your setup script :file:`setup.py`, and your " +"module :file:`foo.py`. The archive file will be named :file:`foo-1.0.tar.gz` " +"(or :file:`.zip`), and will unpack into a directory :file:`foo-1.0`." +msgstr "" +":command:`sdist` va créer un fichier d'archive (p. ex. une archive *tar* sur " +"Unix, un fichier ZIP sous Windows) contenant votre script d'installation :" +"file:`setup.py`, et votre module :file:`foo.py`. Le fichier d'archive va " +"être nommé :file:`foo-1.0.tar.gz` (ou :file:`.zip`), et va se décompresser " +"dans un répertoire :file:`foo-1.0`." + +#: ../Doc/distutils/introduction.rst:97 +msgid "" +"If an end-user wishes to install your :mod:`foo` module, all they have to do " +"is download :file:`foo-1.0.tar.gz` (or :file:`.zip`), unpack it, and---from " +"the :file:`foo-1.0` directory---run ::" +msgstr "" +"Si un utilisateur final souhaite installer votre module :mod:`foo`, tout ce " +"qu'il aura à faire est de télécharger le fichier :file:`foo-1.0.tar.gz` (ou :" +"file:`.zip`), le décompresser et ---depuis le répertoire :file:`foo-1.0`--- " +"exécuter :" + +#: ../Doc/distutils/introduction.rst:103 +msgid "" +"which will ultimately copy :file:`foo.py` to the appropriate directory for " +"third-party modules in their Python installation." +msgstr "" +"ce qui va finalement copier :file:`foo.py` dans le répertoire approprié pour " +"un module tiers dans son installation Python." + +#: ../Doc/distutils/introduction.rst:106 +msgid "" +"This simple example demonstrates some fundamental concepts of the Distutils. " +"First, both developers and installers have the same basic user interface, i." +"e. the setup script. The difference is which Distutils *commands* they use: " +"the :command:`sdist` command is almost exclusively for module developers, " +"while :command:`install` is more often for installers (although most " +"developers will want to install their own code occasionally)." +msgstr "" +"Ce simple exemple démontre des concepts fondamentaux de Distutils, " +"Premièrement, les développeurs et installeurs ont la même interface " +"utilisateur basique, p. ex. le script d'installation. La différence est " +"quelle *commande* Distutils ils utilisent : la commande :command:`sdist` est " +"quasiment exclusivement pour les développeurs de modules Python, tandis que :" +"command:`install` est plus souvent pour les installeurs (bien que la plupart " +"des développeurs vont vouloir installer leur code occasionnellement)." + +#: ../Doc/distutils/introduction.rst:113 +msgid "" +"If you want to make things really easy for your users, you can create one or " +"more built distributions for them. For instance, if you are running on a " +"Windows machine, and want to make things easy for other Windows users, you " +"can create an executable installer (the most appropriate type of built " +"distribution for this platform) with the :command:`bdist_wininst` command. " +"For example::" +msgstr "" +"Si vous voulez rendre les choses vraiment faciles pour vos utilisateurs, " +"vous pouvez créer on ou plusieurs distributions compilées pour eux. En " +"l’occurrence, si vous tournez sous une machine Windows, et que vous voulez " +"rendre les choses faciles pour les autres utilisateurs Windows, vous pouvez " +"créer un installateur exécutable (le mode de distribution le plus approprié " +"pour cette plateforme) avec la commande :command:`bdist_wininst`. Par " +"exemple :" + +#: ../Doc/distutils/introduction.rst:121 +msgid "" +"will create an executable installer, :file:`foo-1.0.win32.exe`, in the " +"current directory." +msgstr "" +"va créer une installeur exécutable, :file:`foo-1.0.win32.exe`, dans le " +"répertoire courant." + +#: ../Doc/distutils/introduction.rst:124 +msgid "" +"Other useful built distribution formats are RPM, implemented by the :command:" +"`bdist_rpm` command, Solaris :program:`pkgtool` (:command:`bdist_pkgtool`), " +"and HP-UX :program:`swinstall` (:command:`bdist_sdux`). For example, the " +"following command will create an RPM file called :file:`foo-1.0.noarch.rpm`::" +msgstr "" +"D'autres formats de distributions compilés utiles sont RPM, implémenté par " +"la commande :command:`bdist_rpm`, Solaris :program:`pkgtool` (:command:" +"`bdist_pkgtool`), et HP-UX :program:`swinstall` (:command:`bdist_sdux`). Par " +"exemple, la commande suivante va créer un fichier RPM appelé :file:`foo-1.0." +"noarch.rpm`::" + +#: ../Doc/distutils/introduction.rst:132 +msgid "" +"(The :command:`bdist_rpm` command uses the :command:`rpm` executable, " +"therefore this has to be run on an RPM-based system such as Red Hat Linux, " +"SuSE Linux, or Mandrake Linux.)" +msgstr "" +"(La commande :command:`bdist_rpm` utilise l'exécutable :command:`rpm`, " +"cependant cela doit être exécuté sur un système basé sur RPM tel que Red Hat " +"Linux, SuSE Linux, or Mandrake Linux.)" + +#: ../Doc/distutils/introduction.rst:136 +msgid "" +"You can find out what distribution formats are available at any time by " +"running ::" +msgstr "" +"Vous pouvez trouver quelles sont les formats de distribution disponibles à " +"n'importe quel moment en exécutant :" + +#: ../Doc/distutils/introduction.rst:145 +msgid "General Python terminology" +msgstr "Terminologie Python générale" + +#: ../Doc/distutils/introduction.rst:147 +msgid "" +"If you're reading this document, you probably have a good idea of what " +"modules, extensions, and so forth are. Nevertheless, just to be sure that " +"everyone is operating from a common starting point, we offer the following " +"glossary of common Python terms:" +msgstr "" +"Si vous lisez ce document, vous avez probablement une bonne idée de ce que " +"sont les modules, extensions, etc. Néanmoins, juste pour être sur que tout " +"le monde opère depuis un point d'entrée commun, nous reprécisons le " +"glossaire suivant des termes Python communs :" + +#: ../Doc/distutils/introduction.rst:155 +msgid "module" +msgstr "module" + +#: ../Doc/distutils/introduction.rst:153 +msgid "" +"the basic unit of code reusability in Python: a block of code imported by " +"some other code. Three types of modules concern us here: pure Python " +"modules, extension modules, and packages." +msgstr "" +"unité de base de la réutilisabilité en Python : un bloc de code importé par " +"un autre code. Trois types de modules nous concernent ici : les purs modules " +"Python, les modules d'extension, et les packages." + +#: ../Doc/distutils/introduction.rst:160 +msgid "pure Python module" +msgstr "pur module Python" + +#: ../Doc/distutils/introduction.rst:158 +msgid "" +"a module written in Python and contained in a single :file:`.py` file (and " +"possibly associated :file:`.pyc` files). Sometimes referred to as a \"pure " +"module.\"" +msgstr "" +"un module écrit en Python et contenu dans un seul fichier :file:`.py` (et " +"possiblement un fichier :file:`.pyc` associé). Parfois appelé \"pur module.\"" + +#: ../Doc/distutils/introduction.rst:168 +msgid "extension module" +msgstr "module d'extension" + +#: ../Doc/distutils/introduction.rst:163 +msgid "" +"a module written in the low-level language of the Python implementation: C/C+" +"+ for Python, Java for Jython. Typically contained in a single dynamically " +"loadable pre-compiled file, e.g. a shared object (:file:`.so`) file for " +"Python extensions on Unix, a DLL (given the :file:`.pyd` extension) for " +"Python extensions on Windows, or a Java class file for Jython extensions. " +"(Note that currently, the Distutils only handles C/C++ extensions for " +"Python.)" +msgstr "" +"un module écrit dans un langage de bas niveau de l'implémentation Python: C/C" +"++ pour Python, Java pour Jython. Typiquement contenu dans un unique fichier " +"pré-compilé chargeable, p. ex. un fichier objet partagé (:file:`.so`) pour " +"des extensions Python sous Unix, un fichier DLL (étant donné l'extension :" +"file:`.pyd`) pour les extensions Python sous Windows, ou un fichier de " +"classe Java pour les extensions Jython (notez qu'actuellement, Distutils " +"gère seulement les extensions Python C/C++)." + +#: ../Doc/distutils/introduction.rst:173 +msgid "package" +msgstr "paquet" + +#: ../Doc/distutils/introduction.rst:171 +msgid "" +"a module that contains other modules; typically contained in a directory in " +"the filesystem and distinguished from other directories by the presence of a " +"file :file:`__init__.py`." +msgstr "" +"un module qui contient d'autres modules ; très souvent contenu dans un " +"répertoire du système de fichier et qui se distingue des autres répertoires " +"par la présence d'un fichier :file:`__init__.py`." + +#: ../Doc/distutils/introduction.rst:183 +msgid "root package" +msgstr "paquet racine" + +#: ../Doc/distutils/introduction.rst:176 +msgid "" +"the root of the hierarchy of packages. (This isn't really a package, since " +"it doesn't have an :file:`__init__.py` file. But we have to call it " +"something.) The vast majority of the standard library is in the root " +"package, as are many small, standalone third-party modules that don't belong " +"to a larger module collection. Unlike regular packages, modules in the root " +"package can be found in many directories: in fact, every directory listed in " +"``sys.path`` contributes modules to the root package." +msgstr "" +"la racine de la hiérarchie de paquets. (Ce n'est pas vraiment un paquet, " +"puisqu'il n'a pas un fichier :file:`__init__.py`. Mais nous devons bien le " +"nommer.) La grande majorité de la bibliothèque standard est dans le package " +"racine, comme le sont certains petits, des packages tiers autonomes qui " +"n'appartiennent pas à une un module plus grand. Contrairement aux packages " +"réguliers, les modules dans le package racine peuvent être trouvés dans " +"plusieurs répertoires : en effet, tous les répertoires listés ``sys.path`` " +"contribuent à faire partie du package racine." + +#: ../Doc/distutils/introduction.rst:188 +msgid "Distutils-specific terminology" +msgstr "Terminologie spécifique à Distutils" + +#: ../Doc/distutils/introduction.rst:190 +msgid "" +"The following terms apply more specifically to the domain of distributing " +"Python modules using the Distutils:" +msgstr "" +"Les termes suivant s'appliquent plus spécifiquement au domaine de la " +"distribution de modules Python en utilisant les Distutils :" + +#: ../Doc/distutils/introduction.rst:199 +msgid "module distribution" +msgstr "module de distribution" + +#: ../Doc/distutils/introduction.rst:194 +msgid "" +"a collection of Python modules distributed together as a single downloadable " +"resource and meant to be installed *en masse*. Examples of some well-known " +"module distributions are NumPy, SciPy, Pillow, or mxBase. (This would be " +"called a *package*, except that term is already taken in the Python context: " +"a single module distribution may contain zero, one, or many Python packages.)" +msgstr "" +"une collection de modules Python distribués ensemble, comme une unique " +"ressource téléchargeable et ayant pour but d'être installé *en bloc*. Des " +"exemples de modules distribués bien connus sont *NumPy*, *SciPy*, *Pillow*, " +"ou *mxBase*. (On pourrait les appeler des *packages*, malgré que le terme " +"soit déjà pris dans le contexte Python : une distribution de module simple " +"pourrait contenir zéro, on ou plusieurs packages Python" + +#: ../Doc/distutils/introduction.rst:203 +msgid "pure module distribution" +msgstr "distribution de modules purs" + +#: ../Doc/distutils/introduction.rst:202 +msgid "" +"a module distribution that contains only pure Python modules and packages. " +"Sometimes referred to as a \"pure distribution.\"" +msgstr "" +"une distribution de module qui contient seulement des modules purs et " +"packages Python. Parfois appelée « distribution pure »." + +#: ../Doc/distutils/introduction.rst:207 +msgid "non-pure module distribution" +msgstr "distribution de module non pur" + +#: ../Doc/distutils/introduction.rst:206 +msgid "" +"a module distribution that contains at least one extension module. " +"Sometimes referred to as a \"non-pure distribution.\"" +msgstr "" +"une distribution de module qui contient au moins un module d'extension. " +"Parfois appelée « distribution non-pure »." + +#: ../Doc/distutils/introduction.rst:211 +msgid "distribution root" +msgstr "distribution racine" + +#: ../Doc/distutils/introduction.rst:210 +msgid "" +"the top-level directory of your source tree (or source distribution); the " +"directory where :file:`setup.py` exists. Generally :file:`setup.py` will " +"be run from this directory." +msgstr "" +"le répertoire de plus haut niveau de votre arborescence (ou distribution " +"source) ; le répertoire ou :file:`setup.py` existe. Généralement :file:" +"`setup.py` est exécuté depuis ce répertoire." diff --git a/distutils/packageindex.po b/distutils/packageindex.po new file mode 100644 index 000000000..7b9b337af --- /dev/null +++ b/distutils/packageindex.po @@ -0,0 +1,38 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-08-21 12:33+0200\n" +"Last-Translator: Zepmanbc \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" + +#: ../Doc/distutils/packageindex.rst:7 +msgid "The Python Package Index (PyPI)" +msgstr "L'index de paquets Python (*Python Package Index* : PyPI)" + +#: ../Doc/distutils/packageindex.rst:9 +msgid "" +"The `Python Package Index (PyPI)`_ stores metadata describing distributions " +"packaged with distutils and other publishing tools, as well the distribution " +"archives themselves." +msgstr "" +"Le `Python Package Index (PyPI)`_ stocke les métadonnées décrivant les " +"distributions empaquetées avec *distutils* et autres outils de publication, " +"ainsi que les archives des distributions elles-mêmes." + +#: ../Doc/distutils/packageindex.rst:13 +msgid "" +"References to up to date PyPI documentation can be found at :ref:`publishing-" +"python-packages`." +msgstr "" +"Des références à la documentation de PyPI à jour peuvent être trouvées sur :" +"ref:`publishing-python-packages`." diff --git a/distutils/setupscript.po b/distutils/setupscript.po new file mode 100644 index 000000000..6f52fe7f5 --- /dev/null +++ b/distutils/setupscript.po @@ -0,0 +1,1393 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/distutils/setupscript.rst:5 +msgid "Writing the Setup Script" +msgstr "Rédaction du script ``setup.py``" + +#: ../Doc/distutils/setupscript.rst:7 +msgid "" +"The setup script is the centre of all activity in building, distributing, " +"and installing modules using the Distutils. The main purpose of the setup " +"script is to describe your module distribution to the Distutils, so that the " +"various commands that operate on your modules do the right thing. As we saw " +"in section :ref:`distutils-simple-example` above, the setup script consists " +"mainly of a call to :func:`setup`, and most information supplied to the " +"Distutils by the module developer is supplied as keyword arguments to :func:" +"`setup`." +msgstr "" +"Le script ``setup.py`` est au centre de toute opération de construction, de " +"distribution et d'installation des modules utilisant les *Distutils*. " +"L'objectif principal du script ``setup.py`` est de décrire le module aux " +"*Distutils*, de telle sorte que les diverses commandes qui agissent sur " +"votre module fassent les bonnes choses. Comme nous avons vu dans la section :" +"ref:`distutils-simple-example` au-dessus, le script ``setup.py`` consiste " +"principalement à un appel à :func:`setup`, et la plupart des informations " +"fournies aux *Distutils* par le développeur du module sont fournies en tant " +"qu'arguments nommés à :func:`setup.py`." + +#: ../Doc/distutils/setupscript.rst:15 +msgid "" +"Here's a slightly more involved example, which we'll follow for the next " +"couple of sections: the Distutils' own setup script. (Keep in mind that " +"although the Distutils are included with Python 1.6 and later, they also " +"have an independent existence so that Python 1.5.2 users can use them to " +"install other module distributions. The Distutils' own setup script, shown " +"here, is used to install the package into Python 1.5.2.) ::" +msgstr "" +"Voici un exemple un peu plus concret, que nous allons suivre pour les " +"quelques sections suivantes : le propre script ``setup.py`` des *Distutils* " +"(gardez toujours à l'esprit qu'en dépit de l'inclusion des *Distutils* dans " +"python 1.6 et ses versions successives, ils ont aussi une existence à part " +"entière de telle sorte que les utilisateurs de Python 1.5.2 puissent les " +"utiliser pour installer d'autres modules. Le propre script ``setup.py`` des " +"*Distutils* montré ici est utilisé pour installer le paquet dans Python " +"1.5.2). ::" + +#: ../Doc/distutils/setupscript.rst:35 +msgid "" +"There are only two differences between this and the trivial one-file " +"distribution presented in section :ref:`distutils-simple-example`: more " +"metadata, and the specification of pure Python modules by package, rather " +"than by module. This is important since the Distutils consist of a couple " +"of dozen modules split into (so far) two packages; an explicit list of every " +"module would be tedious to generate and difficult to maintain. For more " +"information on the additional meta-data, see section :ref:`meta-data`." +msgstr "" +"Il y a seulement deux différences entre cet exemple et l'exemple trivial de " +"la distribution d'un unique fichier présenté dans la partie :ref:`distutils-" +"simple-example` : plus de métadonnées, et la définition de modules purement " +"Python par paquet, plutôt que par module. C'est important car les " +"*Distutils* sont composés de quelques douzaines de modules séparés (pour le " +"moment) en deux paquets ; une liste explicite de chaque module serait " +"pénible à générer et difficile à maintenir. Pour plus d'information sur les " +"métadonnées supplémentaires, voir la partie :ref:`meta-data`." + +#: ../Doc/distutils/setupscript.rst:43 +msgid "" +"Note that any pathnames (files or directories) supplied in the setup script " +"should be written using the Unix convention, i.e. slash-separated. The " +"Distutils will take care of converting this platform-neutral representation " +"into whatever is appropriate on your current platform before actually using " +"the pathname. This makes your setup script portable across operating " +"systems, which of course is one of the major goals of the Distutils. In " +"this spirit, all pathnames in this document are slash-separated." +msgstr "" +"À noter que chaque chemin d'accès fourni au script ``setup.py`` doit être " +"écrit selon la convention Unix. Autrement dit, séparé par des barres " +"obliques (slash). Les *Distutils* prendront soin de convertir cette " +"représentation indépendante de la plateforme en une représentation adaptée à " +"votre plateforme actuelle avant d'effectivement utiliser le chemin d'accès. " +"Cela rend votre script ``setup.py`` portable d'un système d'exploitation à " +"l'autre, ce qui évidemment est l'un des buts majeurs des *Distutils*. Dans " +"cet esprit, tous les chemins d'accès dans ce document sont séparés par des " +"barres obliques (slash)." + +#: ../Doc/distutils/setupscript.rst:51 +msgid "" +"This, of course, only applies to pathnames given to Distutils functions. If " +"you, for example, use standard Python functions such as :func:`glob.glob` " +"or :func:`os.listdir` to specify files, you should be careful to write " +"portable code instead of hardcoding path separators::" +msgstr "" +"Cela, évidemment, s'applique uniquement aux chemins d'accès passés aux " +"fonctions de *Distutils*. Si vous, par exemple, vous utilisez les fonctions " +"standards de Python telles que :func:`glob.glob` or :func:`os.listdir` pour " +"définir des fichiers, vous devez prendre soin d'écrire du code portable au " +"lieu de coder en dur les séparateurs de chemin ::" + +#: ../Doc/distutils/setupscript.rst:63 +msgid "Listing whole packages" +msgstr "Lister l'ensemble des paquets" + +#: ../Doc/distutils/setupscript.rst:65 +msgid "" +"The ``packages`` option tells the Distutils to process (build, distribute, " +"install, etc.) all pure Python modules found in each package mentioned in " +"the ``packages`` list. In order to do this, of course, there has to be a " +"correspondence between package names and directories in the filesystem. The " +"default correspondence is the most obvious one, i.e. package :mod:" +"`distutils` is found in the directory :file:`distutils` relative to the " +"distribution root. Thus, when you say ``packages = ['foo']`` in your setup " +"script, you are promising that the Distutils will find a file :file:`foo/" +"__init__.py` (which might be spelled differently on your system, but you get " +"the idea) relative to the directory where your setup script lives. If you " +"break this promise, the Distutils will issue a warning but still process the " +"broken package anyway." +msgstr "" +"L'option ``packages`` dit aux *Distutils* de traiter (construire, " +"distribuer, installer, etc.) tous les modules en Python pur trouvés dans " +"chaque paquet mentionné dans la liste ``packages``. À cette fin, évidemment, " +"il faut une correspondance entre les noms des paquets et des répertoires " +"dans le système de fichiers. La correspondance par défaut est la plus " +"évidente. À savoir : le paquet :mod:`distutils` se trouve dans le " +"répertoire :file:`distutils` situé à la racine de la distribution. Ainsi, " +"quand vous écrivez ``packages = ['foo']`` dans votre script ``setup.py``, " +"vous vous engagez à ce que les *Distutils* trouvent un fichier ``foo/" +"__init__.py`` (qui peut s'épeler différemment sur votre système, mais vous " +"voyez l'idée) à un emplacement relatif au répertoire où se trouve le script " +"``setup.py``. Si ce n'est pas le cas, les *Distutils* lèvent un " +"avertissement mais traitent tout de même le paquet défectueux." + +#: ../Doc/distutils/setupscript.rst:77 +msgid "" +"If you use a different convention to lay out your source directory, that's " +"no problem: you just have to supply the ``package_dir`` option to tell the " +"Distutils about your convention. For example, say you keep all Python " +"source under :file:`lib`, so that modules in the \"root package\" (i.e., not " +"in any package at all) are in :file:`lib`, modules in the :mod:`foo` package " +"are in :file:`lib/foo`, and so forth. Then you would put ::" +msgstr "" +"Si vous utilisez une convention différente pour arranger votre répertoire de " +"sources, ce n'est pas un problème : vous avez seulement à fournir l'option " +"``package_dir`` pour prévenir les *Distutils* de l'usage de cette " +"convention. Par exemple, supposons que vous gardez toutes les sources Python " +"sous :file:`lib`, de telle sorte que les modules dans le « paquet " +"racine » (c'est-à-dire dans aucun paquet du tout) sont dans :file:`lib`, les " +"modules dans le paquet :mod:`foo` sont dans :file:`lib/foo`, et ainsi de " +"suite. Alors, vous pouvez mettre ::" + +#: ../Doc/distutils/setupscript.rst:86 +msgid "" +"in your setup script. The keys to this dictionary are package names, and an " +"empty package name stands for the root package. The values are directory " +"names relative to your distribution root. In this case, when you say " +"``packages = ['foo']``, you are promising that the file :file:`lib/foo/" +"__init__.py` exists." +msgstr "" +"dans votre script ``setup.py``. Les clés de ce dictionnaire sont les noms " +"des paquets, et un nom de paquet vide fait office de paquet racine. Les " +"valeurs sont des noms de répertoires relatifs à la racine de votre " +"distribution. Dans ce cas, lorsque vous dites ``packages = ['foo']``, vous " +"vous engagez à ce que le fichier :file:`lib/foo/__init__.py` existe." + +#: ../Doc/distutils/setupscript.rst:91 +msgid "" +"Another possible convention is to put the :mod:`foo` package right in :file:" +"`lib`, the :mod:`foo.bar` package in :file:`lib/bar`, etc. This would be " +"written in the setup script as ::" +msgstr "" +"Une autre convention possible est de mettre le paquet :mod:`foo` directement " +"dans :file:`lib`, le paquet :mod:`foo.bar` dans :file:`lib/bar`, etc. Cela " +"s'écrirait ainsi dans le script ``setup.py`` : ::" + +#: ../Doc/distutils/setupscript.rst:97 +msgid "" +"A ``package: dir`` entry in the ``package_dir`` dictionary implicitly " +"applies to all packages below *package*, so the :mod:`foo.bar` case is " +"automatically handled here. In this example, having ``packages = ['foo', " +"'foo.bar']`` tells the Distutils to look for :file:`lib/__init__.py` and :" +"file:`lib/bar/__init__.py`. (Keep in mind that although ``package_dir`` " +"applies recursively, you must explicitly list all packages in ``packages``: " +"the Distutils will *not* recursively scan your source tree looking for any " +"directory with an :file:`__init__.py` file.)" +msgstr "" + +#: ../Doc/distutils/setupscript.rst:110 +msgid "Listing individual modules" +msgstr "Lister chaque module indépendamment" + +#: ../Doc/distutils/setupscript.rst:112 +msgid "" +"For a small module distribution, you might prefer to list all modules rather " +"than listing packages---especially the case of a single module that goes in " +"the \"root package\" (i.e., no package at all). This simplest case was " +"shown in section :ref:`distutils-simple-example`; here is a slightly more " +"involved example::" +msgstr "" +"Pour un petit projet, vous pouvez préférer lister tous les modules plutôt " +"que les paquets — surtout le cas d'un module seul qui va dans le « paquet " +"racine » (à savoir, aucun paquet du tout). Le cas le plus simple a été " +"montré dans la partie :ref:`distutils-simple-example` ; voici un exemple " +"plus concret ::" + +#: ../Doc/distutils/setupscript.rst:119 +msgid "" +"This describes two modules, one of them in the \"root\" package, the other " +"in the :mod:`pkg` package. Again, the default package/directory layout " +"implies that these two modules can be found in :file:`mod1.py` and :file:" +"`pkg/mod2.py`, and that :file:`pkg/__init__.py` exists as well. And again, " +"you can override the package/directory correspondence using the " +"``package_dir`` option." +msgstr "" +"Deux modules sont décrits, l'un dans le paquet « racine », l'autre dans le " +"paquet :mod:`pkg`. Encore une fois, la structure paquet/répertoire par " +"défaut implique que ces deux modules peuvent être trouvés dans :file:`mod1." +"py` et :file:`pkg/mod2.py`, et que :file:`pkg/__init__.py` existe aussi. Là " +"aussi, vous pouvez redéfinir la correspondance paquet/répertoire en " +"utilisant l'option ``package_dir``." + +#: ../Doc/distutils/setupscript.rst:129 +msgid "Describing extension modules" +msgstr "Description des modules d'extension" + +#: ../Doc/distutils/setupscript.rst:131 +msgid "" +"Just as writing Python extension modules is a bit more complicated than " +"writing pure Python modules, describing them to the Distutils is a bit more " +"complicated. Unlike pure modules, it's not enough just to list modules or " +"packages and expect the Distutils to go out and find the right files; you " +"have to specify the extension name, source file(s), and any compile/link " +"requirements (include directories, libraries to link with, etc.)." +msgstr "" +"Tout comme écrire des modules d'extension Python est un peu plus compliqué " +"que d’écrire des modules purement en Python, les décrire aux *Distutils* est " +"un peu plus compliqué. Contrairement aux modules purs, il ne suffit pas de " +"simplement lister les modules ou les paquets et d'attendre que les " +"*Distutils* trouvent par eux-mêmes les bons fichiers ; vous devez définir le " +"nom de l'extension, du ou des fichiers de sources, et les prérequis de " +"compilation/lien (répertoires à inclure, bibliothèques à lier, etc.)." + +#: ../Doc/distutils/setupscript.rst:140 +msgid "" +"All of this is done through another keyword argument to :func:`setup`, the " +"``ext_modules`` option. ``ext_modules`` is just a list of :class:" +"`~distutils.core.Extension` instances, each of which describes a single " +"extension module. Suppose your distribution includes a single extension, " +"called :mod:`foo` and implemented by :file:`foo.c`. If no additional " +"instructions to the compiler/linker are needed, describing this extension is " +"quite simple::" +msgstr "" +"Tout ceci est fait à l'aide d'un autre argument nommé passé à :func:`setup`, " +"l'option ``ext_modules``. ``ext_modules`` est simplement une liste de " +"classes :class:`~distutils.core.Extension`, chacune décrivant une seule " +"extension de module. Supposons que votre distribution inclut une seule " +"extension appelée :mod:`foo` et implémentée par :file:`foo.c`. Si aucune " +"instruction supplémentaire au compilateur/lieur n'est requise, décrire cette " +"extension est assez simple ::" + +#: ../Doc/distutils/setupscript.rst:150 +msgid "" +"The :class:`Extension` class can be imported from :mod:`distutils.core` " +"along with :func:`setup`. Thus, the setup script for a module distribution " +"that contains only this one extension and nothing else might be::" +msgstr "" +"La classe :class:`Extension` peut être importée depuis :mod:`distutils.core` " +"en même temps que :func:`setup`. Ainsi, le script ``setup.py`` pour un " +"module qui ne contient que cette seule extension et rien d'autre peut être ::" + +#: ../Doc/distutils/setupscript.rst:160 +msgid "" +"The :class:`Extension` class (actually, the underlying extension-building " +"machinery implemented by the :command:`build_ext` command) supports a great " +"deal of flexibility in describing Python extensions, which is explained in " +"the following sections." +msgstr "" +"La classe :class:`Extension` (en réalité, la machinerie sous-jacente " +"construisant les extensions implémentées par la commande :command:" +"`build_ext`) permet une grande flexibilité dans la description des " +"extensions Python, ce qui est expliqué dans les parties suivantes." + +#: ../Doc/distutils/setupscript.rst:167 +msgid "Extension names and packages" +msgstr "Nom des extensions et paquets" + +#: ../Doc/distutils/setupscript.rst:169 +msgid "" +"The first argument to the :class:`~distutils.core.Extension` constructor is " +"always the name of the extension, including any package names. For " +"example, ::" +msgstr "" +"Le premier argument du constructeur :class:`~distutils.core.Extension` est " +"toujours le nom de l'extension, incluant tout nom de paquet. Par exemple ::" + +#: ../Doc/distutils/setupscript.rst:174 +msgid "describes an extension that lives in the root package, while ::" +msgstr "décrit une extension qui se situe dans le paquet racine, tandis que ::" + +#: ../Doc/distutils/setupscript.rst:178 +msgid "" +"describes the same extension in the :mod:`pkg` package. The source files " +"and resulting object code are identical in both cases; the only difference " +"is where in the filesystem (and therefore where in Python's namespace " +"hierarchy) the resulting extension lives." +msgstr "" +"décrit la même extension dans le paquet :mod:`pkg`. Les fichiers sources et " +"le code objet résultant sont identiques dans les deux cas ; la seule " +"différence est où, dans le système de fichier (et conséquemment dans la " +"hiérarchie de l'espace de nommage de Python), l'extension résultante se " +"situe." + +#: ../Doc/distutils/setupscript.rst:183 +msgid "" +"If you have a number of extensions all in the same package (or all under the " +"same base package), use the ``ext_package`` keyword argument to :func:" +"`setup`. For example, ::" +msgstr "" +"Si vous avez un certain nombre d'extensions toutes dans le même paquet (ou " +"toutes sous le même paquet de base), utilisez l'argument nommé " +"``ext_package`` de :func:`setup`. Par exemple ::" + +#: ../Doc/distutils/setupscript.rst:193 +msgid "" +"will compile :file:`foo.c` to the extension :mod:`pkg.foo`, and :file:`bar." +"c` to :mod:`pkg.subpkg.bar`." +msgstr "" +"compile :file:`foo.c` en l’extension :mod:`pkg.foo`, et :file:`bar.c` en :" +"mod:`pkg.subpkg.bar`." + +#: ../Doc/distutils/setupscript.rst:198 +msgid "Extension source files" +msgstr "Fichiers sources d'extension" + +#: ../Doc/distutils/setupscript.rst:200 +msgid "" +"The second argument to the :class:`~distutils.core.Extension` constructor is " +"a list of source files. Since the Distutils currently only support C, C++, " +"and Objective-C extensions, these are normally C/C++/Objective-C source " +"files. (Be sure to use appropriate extensions to distinguish C++ source " +"files: :file:`.cc` and :file:`.cpp` seem to be recognized by both Unix and " +"Windows compilers.)" +msgstr "" +"Le second argument du constructeur d'\\ :class:`~distutils.core.Extension` " +"est une liste de fichiers sources. Puisque les *Distutils* ne gèrent que les " +"extensions en C, C++ et Objective-C, ce sont normalement des fichiers " +"sources en C/C++/Objective-C (assurez vous d'utiliser les extensions " +"appropriées pour détecter les fichiers sources en C++ : :file:`.cc` et :file:" +"`.cpp` semblent être reconnus tant par les compilateurs Unix que Windows)." + +#: ../Doc/distutils/setupscript.rst:207 +msgid "" +"However, you can also include SWIG interface (:file:`.i`) files in the list; " +"the :command:`build_ext` command knows how to deal with SWIG extensions: it " +"will run SWIG on the interface file and compile the resulting C/C++ file " +"into your extension." +msgstr "" +"Néanmoins, vous pouvez également inclure des fichiers d'interface SWIG (:" +"file:`.i`) dans la liste ; la commande :command:`build_ext` sait comment " +"gérer les extensions SWIG : il lancera SWIG sur un fichier d'interface et " +"compilera le fichier en C/C++ en une extension." + +#: ../Doc/distutils/setupscript.rst:214 +msgid "" +"This warning notwithstanding, options to SWIG can be currently passed like " +"this::" +msgstr "" +"Malgré cet avertissement, les options peuvent être actuellement passées à " +"SWIG de la façon suivante ::" + +#: ../Doc/distutils/setupscript.rst:223 +msgid "Or on the commandline like this::" +msgstr "Ou en ligne de commande de cette façon ::" + +#: ../Doc/distutils/setupscript.rst:227 +msgid "" +"On some platforms, you can include non-source files that are processed by " +"the compiler and included in your extension. Currently, this just means " +"Windows message text (:file:`.mc`) files and resource definition (:file:`." +"rc`) files for Visual C++. These will be compiled to binary resource (:file:" +"`.res`) files and linked into the executable." +msgstr "" +"Sur certaines plateformes, vous pouvez inclure des fichiers autres que des " +"sources qui seront traités par le compilateur et inclus dans votre " +"extension. Pour l'instant, cela concerne seulement les fichiers de messages " +"texte Windows (:file:`.mc`) et les fichiers de définition de ressource pour " +"Visual C++ (:file:`.rc`). Ils seront compilés en fichiers de ressources " +"binaires (:file:`.res`) et liés à l'exécutable." + +#: ../Doc/distutils/setupscript.rst:235 +msgid "Preprocessor options" +msgstr "Options de préprocesseur" + +#: ../Doc/distutils/setupscript.rst:237 +msgid "" +"Three optional arguments to :class:`~distutils.core.Extension` will help if " +"you need to specify include directories to search or preprocessor macros to " +"define/undefine: ``include_dirs``, ``define_macros``, and ``undef_macros``." +msgstr "" +"Trois arguments optionnels de :class:`~distutils.core.Extension` aident si " +"vous avez besoin de préciser les dossiers d’en-têtes à chercher ou les " +"macros de préprocesseurs à charger ou ignorer : ``include_dirs``, " +"``define_macros``, et ``undef_macros``." + +#: ../Doc/distutils/setupscript.rst:241 +msgid "" +"For example, if your extension requires header files in the :file:`include` " +"directory under your distribution root, use the ``include_dirs`` option::" +msgstr "" +"Par exemple, si votre extension nécessite des fichiers d'en-tête dans le " +"répertoire :file:`include` à la racine de votre distribution, utilisez " +"l'option ``include_dirs`` ::" + +#: ../Doc/distutils/setupscript.rst:246 +msgid "" +"You can specify absolute directories there; if you know that your extension " +"will only be built on Unix systems with X11R6 installed to :file:`/usr`, you " +"can get away with ::" +msgstr "" +"Ici, vous pouvez définir le chemin absolu des répertoires ; si vous savez " +"que votre extension sera compilée sur un système Unix avec ``X11R6`` " +"installé dans :file:`/usr`, vous pouvez vous en sortir avec ::" + +#: ../Doc/distutils/setupscript.rst:252 +msgid "" +"You should avoid this sort of non-portable usage if you plan to distribute " +"your code: it's probably better to write C code like ::" +msgstr "" +"Il convient d'éviter ce type d'utilisation non portable si vous envisagez de " +"distribuer votre code : Il est probablement mieux d'écrire du code C comme ::" + +#: ../Doc/distutils/setupscript.rst:257 +msgid "" +"If you need to include header files from some other Python extension, you " +"can take advantage of the fact that header files are installed in a " +"consistent way by the Distutils :command:`install_headers` command. For " +"example, the Numerical Python header files are installed (on a standard Unix " +"installation) to :file:`/usr/local/include/python1.5/Numerical`. (The exact " +"location will differ according to your platform and Python installation.) " +"Since the Python include directory---\\ :file:`/usr/local/include/python1.5` " +"in this case---is always included in the search path when building Python " +"extensions, the best approach is to write C code like ::" +msgstr "" +"Si vous avez besoin d'inclure des fichiers d'en-tête provenant d'autres " +"extensions Python, vous pouvez profiter du fait que les fichiers d'en-têtes " +"sont installés de façon cohérente par la commande :command:`install_headers` " +"des *Distutils*. Par exemple, les fichiers d'en-têtes de *Numerical Python* " +"(NumPy) sont installés (dans le cas d'une installation Unix standard) dans :" +"file:`/usr/local/include/python1.5/Numerical` — l'emplacement exact diffère " +"selon votre plateforme et votre installation de Python. Vu que le " +"répertoire :file:`include` de Python —\\ :file:`/usr/local/include/" +"python1.5` dans ce cas-ci — est toujours inclus dans le chemin de recherche " +"quand vous construisez des extensions Python, la meilleure approche est " +"d'écrire du code C comme ::" + +#: ../Doc/distutils/setupscript.rst:269 +msgid "" +"If you must put the :file:`Numerical` include directory right into your " +"header search path, though, you can find that directory using the Distutils :" +"mod:`distutils.sysconfig` module::" +msgstr "" +"Si vous devez mettre le répertoire :file:`include` de :file:`Numerical` " +"directement dans l'en-tête du chemin de recherche, cependant, vous pouvez " +"trouver ce répertoire en utilisant le module :mod:`distutils.sysconfig` des " +"*Distutils* ::" + +#: ../Doc/distutils/setupscript.rst:279 +msgid "" +"Even though this is quite portable---it will work on any Python " +"installation, regardless of platform---it's probably easier to just write " +"your C code in the sensible way." +msgstr "" +"Même si c'est assez portable — ça marche sur la plupart des installations de " +"Python, indépendamment de la plateforme — il est probablement plus facile " +"d'écrire un code C un peu plus réfléchi." + +#: ../Doc/distutils/setupscript.rst:283 +msgid "" +"You can define and undefine pre-processor macros with the ``define_macros`` " +"and ``undef_macros`` options. ``define_macros`` takes a list of ``(name, " +"value)`` tuples, where ``name`` is the name of the macro to define (a " +"string) and ``value`` is its value: either a string or ``None``. (Defining " +"a macro ``FOO`` to ``None`` is the equivalent of a bare ``#define FOO`` in " +"your C source: with most compilers, this sets ``FOO`` to the string ``1``.) " +"``undef_macros`` is just a list of macros to undefine." +msgstr "" +"Vous pouvez définir ou ignorer des macros de pré-processeur avec les options " +"``define_macros`` et ``undef_macros``. ``define_macros`` prend une liste de " +"paires ``(nom, valeur)``, où ``nom`` est le nom de la macro à définir (une " +"chaîne de caractères) et ``valeur`` est sa valeur ; soit une chaîne de " +"caractères, soit ``None`` (définir une macro ``FOO`` à ``None`` est " +"équivalent à un simple ``#define FOO`` dans votre source en C ; pour la " +"majorité des compilateurs, cela définit la valeur de ``FOO`` à la chaîne de " +"caractère ``1``). ``undef_macros`` est juste une liste de macros à supprimer." + +#: ../Doc/distutils/setupscript.rst:291 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/distutils/setupscript.rst:298 +msgid "is the equivalent of having this at the top of every C source file::" +msgstr "est équivalent à avoir ceci au début de chaque fichier source en C ::" + +#: ../Doc/distutils/setupscript.rst:307 +msgid "Library options" +msgstr "Options des bibliothèques" + +#: ../Doc/distutils/setupscript.rst:309 +msgid "" +"You can also specify the libraries to link against when building your " +"extension, and the directories to search for those libraries. The " +"``libraries`` option is a list of libraries to link against, " +"``library_dirs`` is a list of directories to search for libraries at link-" +"time, and ``runtime_library_dirs`` is a list of directories to search for " +"shared (dynamically loaded) libraries at run-time." +msgstr "" +"Vous pouvez aussi définir les bibliothèques à lier quand vous construisez " +"votre extension, ainsi que le répertoire de recherche pour ces " +"bibliothèques. L'option ``libraries`` est une liste de bibliothèques à lier, " +"``library_dirs`` est une liste de répertoires dans lesquels chercher des " +"bibliothèques au moment de la liaison, et ``runtime_library_dirs`` est une " +"liste de répertoires pour la recherche des bibliothèques partagées (chargées " +"dynamiquement) à l'exécution." + +#: ../Doc/distutils/setupscript.rst:315 +msgid "" +"For example, if you need to link against libraries known to be in the " +"standard library search path on target systems ::" +msgstr "" +"Par exemple, pour lier des bibliothèques que l'on sait dans le chemin des " +"bibliothèques standards des systèmes cibles ::" + +#: ../Doc/distutils/setupscript.rst:321 +msgid "" +"If you need to link with libraries in a non-standard location, you'll have " +"to include the location in ``library_dirs``::" +msgstr "" +"Pour lier une bibliothèque se trouvant à un emplacement non standard, vous " +"devez inclure son emplacement dans ``library_dirs`` ::" + +#: ../Doc/distutils/setupscript.rst:328 +msgid "" +"(Again, this sort of non-portable construct should be avoided if you intend " +"to distribute your code.)" +msgstr "" +"Là aussi, ce genre de construction non portable doit être évité si vous avez " +"l'intention de distribuer votre code." + +#: ../Doc/distutils/setupscript.rst:335 +msgid "Other options" +msgstr "Autres options" + +#: ../Doc/distutils/setupscript.rst:337 +msgid "" +"There are still some other options which can be used to handle special cases." +msgstr "" +"Il y a encore d'autres options qui peuvent être utilisées pour gérer des cas " +"spéciaux." + +#: ../Doc/distutils/setupscript.rst:339 +msgid "" +"The ``optional`` option is a boolean; if it is true, a build failure in the " +"extension will not abort the build process, but instead simply not install " +"the failing extension." +msgstr "" +"L'option ``optional`` est un booléen ; s'il est vrai, un échec de la " +"construction dans l'extension n'annule pas le processus de construction, " +"mais à la place, l'extension en échec ne sera pas installée." + +#: ../Doc/distutils/setupscript.rst:343 +msgid "" +"The ``extra_objects`` option is a list of object files to be passed to the " +"linker. These files must not have extensions, as the default extension for " +"the compiler is used." +msgstr "" +"L'option ``extra_objects`` est une liste d'objets fichiers à passer à " +"l'éditeur de liens. Ces fichiers ne doivent pas avoir d'extensions car " +"l'extension par défaut du compilateur est utilisée." + +#: ../Doc/distutils/setupscript.rst:347 +msgid "" +"``extra_compile_args`` and ``extra_link_args`` can be used to specify " +"additional command line options for the respective compiler and linker " +"command lines." +msgstr "" +"``extra_compile_args`` et ``extra_link_args`` peuvent être utilisées pour " +"définir des options additionnelles en ligne de commande propres aux lignes " +"de commandes respectives du compilateur et de l'éditeur de liens." + +#: ../Doc/distutils/setupscript.rst:351 +msgid "" +"``export_symbols`` is only useful on Windows. It can contain a list of " +"symbols (functions or variables) to be exported. This option is not needed " +"when building compiled extensions: Distutils will automatically add " +"``initmodule`` to the list of exported symbols." +msgstr "" +"``export_symbols`` est seulement utile sur Windows. Elle peut contenir une " +"liste de symboles (fonctions ou variables) à exporter. Cette option n'est " +"pas requise pour la construction d'extensions compilées : *Distutils* ajoute " +"automatiquement ``initmodule`` à la liste des symboles exportés." + +#: ../Doc/distutils/setupscript.rst:356 +msgid "" +"The ``depends`` option is a list of files that the extension depends on (for " +"example header files). The build command will call the compiler on the " +"sources to rebuild extension if any on this files has been modified since " +"the previous build." +msgstr "" +"L'option ``depends`` est une liste de fichiers dont les extensions dépendent " +"(par exemple les fichiers d'en-têtes). La commande ``build`` appelle le " +"compilateur sur les sources pour reconstruire l'extension si un de ces " +"fichiers a été modifié depuis la dernière construction." + +#: ../Doc/distutils/setupscript.rst:362 +msgid "Relationships between Distributions and Packages" +msgstr "Relations entre distributions et paquets" + +#: ../Doc/distutils/setupscript.rst:364 +msgid "A distribution may relate to packages in three specific ways:" +msgstr "" +"Une distribution peut se rapporter à des paquets de trois manières " +"spécifiques :" + +#: ../Doc/distutils/setupscript.rst:366 +msgid "It can require packages or modules." +msgstr "elle peut nécessiter des paquets ou des modules ;" + +#: ../Doc/distutils/setupscript.rst:368 +msgid "It can provide packages or modules." +msgstr "elle peut fournir des paquets ou des modules ;" + +#: ../Doc/distutils/setupscript.rst:370 +msgid "It can obsolete packages or modules." +msgstr "elle peut rendre obsolète des paquets ou des modules." + +#: ../Doc/distutils/setupscript.rst:372 +msgid "" +"These relationships can be specified using keyword arguments to the :func:" +"`distutils.core.setup` function." +msgstr "" +"Ces relations peuvent être définies en utilisant des paramètres nommés dans " +"la fonction :func:`distutils.core.setup`." + +#: ../Doc/distutils/setupscript.rst:375 +msgid "" +"Dependencies on other Python modules and packages can be specified by " +"supplying the *requires* keyword argument to :func:`setup`. The value must " +"be a list of strings. Each string specifies a package that is required, and " +"optionally what versions are sufficient." +msgstr "" +"Les dépendances à d'autres modules et paquets Python peuvent être définies " +"en fournissant le paramètre nommé ``requires`` à :func:`setup`. La valeur " +"doit être une liste de chaînes de caractères. Chaque chaîne de caractères " +"définit un paquet requis et, en option, les versions minimales." + +#: ../Doc/distutils/setupscript.rst:380 +msgid "" +"To specify that any version of a module or package is required, the string " +"should consist entirely of the module or package name. Examples include " +"``'mymodule'`` and ``'xml.parsers.expat'``." +msgstr "" +"S'il n'est pas nécessaire de préciser la version d'un module ou d'un paquet, " +"la chaîne de caractères contient simplement les noms de modules ou de " +"paquets. Par exemple ``mymodule`` et ``'xml.parsers.expat'``." + +#: ../Doc/distutils/setupscript.rst:384 +msgid "" +"If specific versions are required, a sequence of qualifiers can be supplied " +"in parentheses. Each qualifier may consist of a comparison operator and a " +"version number. The accepted comparison operators are::" +msgstr "" +"Si des versions spécifiques sont requises, une suite de qualificatifs peut " +"être fournie entre parenthèses. Chaque qualificatif peut contenir un " +"opérateur de comparaison et un numéro de version. Les opérateurs de " +"comparaison acceptés sont ::" + +#: ../Doc/distutils/setupscript.rst:391 +msgid "" +"These can be combined by using multiple qualifiers separated by commas (and " +"optional whitespace). In this case, all of the qualifiers must be matched; " +"a logical AND is used to combine the evaluations." +msgstr "" +"Ils peuvent être combinés en utilisant plusieurs qualificatifs séparés par " +"des virgules (et de façon optionnelle, des espaces). Dans ce cas, tous les " +"qualificatifs doivent être respectés ; un ET logique est utilisé pour " +"combiner les évaluations." + +#: ../Doc/distutils/setupscript.rst:395 +msgid "Let's look at a bunch of examples:" +msgstr "Jetons un œil à quelques exemples :" + +#: ../Doc/distutils/setupscript.rst:398 +msgid "Requires Expression" +msgstr "Valeur de ``requires``" + +#: ../Doc/distutils/setupscript.rst:398 ../Doc/distutils/setupscript.rst:416 +msgid "Explanation" +msgstr "Explication" + +#: ../Doc/distutils/setupscript.rst:400 +msgid "``==1.0``" +msgstr "``==1.0``" + +#: ../Doc/distutils/setupscript.rst:400 +msgid "Only version ``1.0`` is compatible" +msgstr "Seule la version ``1.0`` est compatible." + +#: ../Doc/distutils/setupscript.rst:402 +msgid "``>1.0, !=1.5.1, <2.0``" +msgstr "``>1.0, !=1.5.1, <2.0``" + +#: ../Doc/distutils/setupscript.rst:402 +msgid "" +"Any version after ``1.0`` and before ``2.0`` is compatible, except ``1.5.1``" +msgstr "" +"Toute version après ``1.0`` et avant ``2.0`` est compatible, à l'exception " +"de ``1.5.1``." + +#: ../Doc/distutils/setupscript.rst:406 +msgid "" +"Now that we can specify dependencies, we also need to be able to specify " +"what we provide that other distributions can require. This is done using " +"the *provides* keyword argument to :func:`setup`. The value for this keyword " +"is a list of strings, each of which names a Python module or package, and " +"optionally identifies the version. If the version is not specified, it is " +"assumed to match that of the distribution." +msgstr "" +"Maintenant que nous pouvons définir des dépendances, nous devons également " +"être en mesure de définir ce que d'autres distributions peuvent attendre de " +"notre part. Cela est réalisé en utilisant l'argument nommé *provides* dans :" +"func:`setup`. La valeur de cet argument est une liste de chaînes de " +"caractères, chacune d'entre elles étant un module Python ou un paquet et, de " +"façon optionnelle, identifie une version. Si la version n'est pas définie, " +"il est supposé qu'elle correspond à celle de la distribution." + +#: ../Doc/distutils/setupscript.rst:413 +msgid "Some examples:" +msgstr "Quelques exemples :" + +#: ../Doc/distutils/setupscript.rst:416 +msgid "Provides Expression" +msgstr "Valeur de ``provides``" + +#: ../Doc/distutils/setupscript.rst:418 +msgid "``mypkg``" +msgstr "``mypkg``" + +#: ../Doc/distutils/setupscript.rst:418 +msgid "Provide ``mypkg``, using the distribution version" +msgstr "Fournit ``mypkg`` en utilisant la version de la distribution." + +#: ../Doc/distutils/setupscript.rst:421 +msgid "``mypkg (1.1)``" +msgstr "``mypkg (1.1)``" + +#: ../Doc/distutils/setupscript.rst:421 +msgid "Provide ``mypkg`` version 1.1, regardless of the distribution version" +msgstr "" +"Fournit ``mypkg`` en version 1.1, indépendamment de la version de la " +"distribution." + +#: ../Doc/distutils/setupscript.rst:425 +msgid "" +"A package can declare that it obsoletes other packages using the *obsoletes* " +"keyword argument. The value for this is similar to that of the *requires* " +"keyword: a list of strings giving module or package specifiers. Each " +"specifier consists of a module or package name optionally followed by one or " +"more version qualifiers. Version qualifiers are given in parentheses after " +"the module or package name." +msgstr "" +"On peut déclarer d'autres paquets obsolètes dans un paquet en utilisant " +"l'argument nommé *obsoletes*. La valeur pour celui-ci est similaire à celui " +"de l'argument nommé *requires* : une liste de chaînes de caractères donnant " +"les spécifications du module ou du paquet. Chaque spécification est " +"constituée d'un nom de module ou de paquet qui peut être suivi au choix par " +"un ou plusieurs qualificateurs de versions. Les qualificateurs de versions " +"sont donnés entre parenthèses après le nom de module ou de paquet." + +#: ../Doc/distutils/setupscript.rst:432 +msgid "" +"The versions identified by the qualifiers are those that are obsoleted by " +"the distribution being described. If no qualifiers are given, all versions " +"of the named module or package are understood to be obsoleted." +msgstr "" +"Les versions identifiées par les qualificateurs sont celles qui sont rendues " +"obsolètes par la distribution décrite. Si aucun qualificateur n'est donné, " +"toutes les versions du module ou du paquet nommé sont considérées comme " +"obsolètes." + +#: ../Doc/distutils/setupscript.rst:439 +msgid "Installing Scripts" +msgstr "Installation des scripts" + +#: ../Doc/distutils/setupscript.rst:441 +msgid "" +"So far we have been dealing with pure and non-pure Python modules, which are " +"usually not run by themselves but imported by scripts." +msgstr "" +"Jusqu'à présent nous avons interagi avec des modules Python purs ou non, qui " +"ne sont habituellement pas lancés par eux-mêmes mais importés par des " +"scripts." + +#: ../Doc/distutils/setupscript.rst:444 +msgid "" +"Scripts are files containing Python source code, intended to be started from " +"the command line. Scripts don't require Distutils to do anything very " +"complicated. The only clever feature is that if the first line of the script " +"starts with ``#!`` and contains the word \"python\", the Distutils will " +"adjust the first line to refer to the current interpreter location. By " +"default, it is replaced with the current interpreter location. The :option:" +"`!--executable` (or :option:`!-e`) option will allow the interpreter path to " +"be explicitly overridden." +msgstr "" +"Les scripts sont des fichiers contenant du code source Python prévus pour " +"être lancés en ligne de commande. Les scripts n'ont pas besoin des " +"*Distutils* pour faire quoi que ce soit de très compliqué. La seule " +"fonctionnalité astucieuse est que la première ligne du script commence par " +"``#!`` et contient le mot « python », les *Distutils* ajusteront la première " +"ligne pour faire référence à l'emplacement actuel de l'interpréteur. Par " +"défaut, elle est remplacée par l'emplacement de l'interpréteur en fonction. " +"L'option :option:`!--executable` (ou :option:`!-e`) permet de définir " +"explicitement le chemin vers l'interpréteur." + +#: ../Doc/distutils/setupscript.rst:452 +msgid "" +"The ``scripts`` option simply is a list of files to be handled in this way. " +"From the PyXML setup script::" +msgstr "" +"L'option ``scripts`` est simplement une liste de fichiers à utiliser de " +"cette façon. Dans le script ``setup.py`` de PyML ::" + +#: ../Doc/distutils/setupscript.rst:459 +msgid "" +"All the scripts will also be added to the ``MANIFEST`` file if no template " +"is provided. See :ref:`manifest`." +msgstr "" +"Tous les scripts seront aussi ajoutés au fichier ``MANIFEST`` si aucun " +"modèle n'est fourni. Voir :ref:`manifest`." + +#: ../Doc/distutils/setupscript.rst:467 +msgid "Installing Package Data" +msgstr "Installation de paquets de données" + +#: ../Doc/distutils/setupscript.rst:469 +msgid "" +"Often, additional files need to be installed into a package. These files " +"are often data that's closely related to the package's implementation, or " +"text files containing documentation that might be of interest to programmers " +"using the package. These files are called :dfn:`package data`." +msgstr "" +"Souvent, des fichiers additionnels doivent être installés dans le paquet. " +"Ces fichiers sont souvent de la donnée qui est intimement liée à " +"l'implémentation du paquet, ou des fichiers textes contenant de la " +"documentation intéressant le programmeur utilisant le paquet. Ces fichiers " +"sont appelés :dfn:`paquets de données `." + +#: ../Doc/distutils/setupscript.rst:474 +msgid "" +"Package data can be added to packages using the ``package_data`` keyword " +"argument to the :func:`setup` function. The value must be a mapping from " +"package name to a list of relative path names that should be copied into the " +"package. The paths are interpreted as relative to the directory containing " +"the package (information from the ``package_dir`` mapping is used if " +"appropriate); that is, the files are expected to be part of the package in " +"the source directories. They may contain glob patterns as well." +msgstr "" +"Les paquets de données peuvent être ajoutés en utilisant l'argument nommé " +"``package_data`` dans la fonction :func:`setup`. La valeur doit être un " +"tableau de correspondances entre le nom du paquet et une liste de chemins " +"relatifs à copier dans le paquet. Les chemins sont interprétés relativement " +"au répertoire contenant le paquet (l'information du mappage ``package_dir`` " +"est utilisée le cas échéant) ; ceci étant, il convient que les fichiers " +"fassent partie du répertoire source du paquet. Ils peuvent également " +"contenir des motifs `glob`." + +#: ../Doc/distutils/setupscript.rst:482 +msgid "" +"The path names may contain directory portions; any necessary directories " +"will be created in the installation." +msgstr "" +"Les chemins d'accès peuvent contenir une hiérarchie de répertoires ; tout " +"répertoire nécessaire sera créé dans cette installation." + +#: ../Doc/distutils/setupscript.rst:485 +msgid "" +"For example, if a package should contain a subdirectory with several data " +"files, the files can be arranged like this in the source tree::" +msgstr "" +"Par exemple, si un paquet doit inclure un sous-répertoire avec plusieurs " +"fichiers de donnée, les fichiers peuvent être organisés dans l'arborescence " +"de la façon suivante ::" + +#: ../Doc/distutils/setupscript.rst:498 +msgid "The corresponding call to :func:`setup` might be::" +msgstr "L'appel correspondant à :func:`setup` peut s'écrire ::" + +#: ../Doc/distutils/setupscript.rst:507 +msgid "" +"All the files that match ``package_data`` will be added to the ``MANIFEST`` " +"file if no template is provided. See :ref:`manifest`." +msgstr "" +"Tous les fichiers correspondant à ``package_data`` seront ajoutés au fichier " +"``MANIFEST`` si aucun modèle n'est fourni. Voir :ref:`manifest`." + +#: ../Doc/distutils/setupscript.rst:515 +msgid "Installing Additional Files" +msgstr "Installation de fichiers additionnels" + +#: ../Doc/distutils/setupscript.rst:517 +msgid "" +"The ``data_files`` option can be used to specify additional files needed by " +"the module distribution: configuration files, message catalogs, data files, " +"anything which doesn't fit in the previous categories." +msgstr "" +"L'option ``data_files`` peut être utilisée pour définir des fichiers " +"additionnels requis pour la distribution du module : fichiers de " +"configuration, catalogues de messages, fichiers de donnée, tout ce qui ne " +"rentre pas dans les catégories précédentes." + +#: ../Doc/distutils/setupscript.rst:521 +msgid "" +"``data_files`` specifies a sequence of (*directory*, *files*) pairs in the " +"following way::" +msgstr "" +"``data_files`` définit une séquence de paires (*répertoires*, *fichiers*) de " +"la façon suivante ::" + +#: ../Doc/distutils/setupscript.rst:529 +msgid "" +"Each (*directory*, *files*) pair in the sequence specifies the installation " +"directory and the files to install there." +msgstr "" +"Chaque paire (*répertoire*, *fichier*) dans la séquence définit le " +"répertoire d'installation et les fichiers à y installer." + +#: ../Doc/distutils/setupscript.rst:532 +msgid "" +"Each file name in *files* is interpreted relative to the :file:`setup.py` " +"script at the top of the package source distribution. Note that you can " +"specify the directory where the data files will be installed, but you cannot " +"rename the data files themselves." +msgstr "" +"Chaque nom de fichier dans *fichiers* est interprété relativement au script :" +"file:`setup.py` à la racine du paquet de la distribution source. Notez que " +"vous pouvez définir un répertoire où les fichiers de donnée seront " +"installés, mais vous ne pouvez pas renommer les fichiers de donnée eux-mêmes." + +#: ../Doc/distutils/setupscript.rst:537 +msgid "" +"The *directory* should be a relative path. It is interpreted relative to the " +"installation prefix (Python's ``sys.prefix`` for system installations; " +"``site.USER_BASE`` for user installations). Distutils allows *directory* to " +"be an absolute installation path, but this is discouraged since it is " +"incompatible with the wheel packaging format. No directory information from " +"*files* is used to determine the final location of the installed file; only " +"the name of the file is used." +msgstr "" +"Le *répertoire* doit être un chemin relatif. Il est interprété relativement " +"au préfixe d'installation (le ``sys.prefix`` de Python pour les " +"installations ``système`` ; ``site.USER_BASE`` pour les installations " +"``utilisateur``). *Distutils* permet à *répertoire* d'être un chemin " +"d'installation absolu, mais cela est déconseillé dans la mesure où c'est " +"incompatible avec la mise au format `wheel` du paquet. Aucune information de " +"répertoire provenant de *fichiers* n'est utilisée pour déterminer " +"l’emplacement final d'installation du fichier ; seul le nom du fichier est " +"utilisé." + +#: ../Doc/distutils/setupscript.rst:545 +msgid "" +"You can specify the ``data_files`` options as a simple sequence of files " +"without specifying a target directory, but this is not recommended, and the :" +"command:`install` command will print a warning in this case. To install data " +"files directly in the target directory, an empty string should be given as " +"the directory." +msgstr "" +"Vous pouvez définir les options ``data_files`` comme une simple succession " +"de fichiers sans définir de répertoire cible, mais cela n'est pas " +"recommandé, et la commande :command:`install` affichera un message d'alerte " +"dans ce cas. Pour installer des fichiers de donnée directement dans le " +"répertoire cible, une chaîne de caractère vide doit être donnée en tant que " +"répertoire." + +#: ../Doc/distutils/setupscript.rst:551 +msgid "" +"All the files that match ``data_files`` will be added to the ``MANIFEST`` " +"file if no template is provided. See :ref:`manifest`." +msgstr "" +"Tous les fichiers correspondant à ``data_files`` seront ajoutés au fichier " +"``MANIFEST`` si aucun modèle n'est fourni. Voir :ref:`manifest`." + +#: ../Doc/distutils/setupscript.rst:559 +msgid "Additional meta-data" +msgstr "Métadonnées additionnelles" + +#: ../Doc/distutils/setupscript.rst:561 +msgid "" +"The setup script may include additional meta-data beyond the name and " +"version. This information includes:" +msgstr "" +"Le script ``setup.py`` peut inclure des métadonnées additionnelles en plus " +"du nom et de la version. Cela inclut les informations suivantes :" + +#: ../Doc/distutils/setupscript.rst:565 +msgid "Meta-Data" +msgstr "Métadonnées" + +#: ../Doc/distutils/setupscript.rst:565 +msgid "Description" +msgstr "Description" + +#: ../Doc/distutils/setupscript.rst:565 +msgid "Value" +msgstr "Valeur" + +#: ../Doc/distutils/setupscript.rst:565 +msgid "Notes" +msgstr "Notes" + +#: ../Doc/distutils/setupscript.rst:567 +msgid "``name``" +msgstr "``name``" + +#: ../Doc/distutils/setupscript.rst:567 +msgid "name of the package" +msgstr "nom du paquet" + +#: ../Doc/distutils/setupscript.rst:567 ../Doc/distutils/setupscript.rst:569 +#: ../Doc/distutils/setupscript.rst:571 ../Doc/distutils/setupscript.rst:576 +#: ../Doc/distutils/setupscript.rst:583 ../Doc/distutils/setupscript.rst:599 +msgid "short string" +msgstr "courte chaîne de caractères" + +#: ../Doc/distutils/setupscript.rst:567 ../Doc/distutils/setupscript.rst:581 +msgid "\\(1)" +msgstr "\\(1)" + +#: ../Doc/distutils/setupscript.rst:569 +msgid "``version``" +msgstr "``version``" + +#: ../Doc/distutils/setupscript.rst:569 +msgid "version of this release" +msgstr "version de la publication" + +#: ../Doc/distutils/setupscript.rst:569 +msgid "(1)(2)" +msgstr "(1)(2)" + +#: ../Doc/distutils/setupscript.rst:571 +msgid "``author``" +msgstr "``author``" + +#: ../Doc/distutils/setupscript.rst:571 +msgid "package author's name" +msgstr "nom de l'auteur du paquet" + +#: ../Doc/distutils/setupscript.rst:571 ../Doc/distutils/setupscript.rst:573 +#: ../Doc/distutils/setupscript.rst:576 ../Doc/distutils/setupscript.rst:578 +msgid "\\(3)" +msgstr "\\(3)" + +#: ../Doc/distutils/setupscript.rst:573 +msgid "``author_email``" +msgstr "``author_email``" + +#: ../Doc/distutils/setupscript.rst:573 +msgid "email address of the package author" +msgstr "adresse courriel de l'auteur du paquet" + +#: ../Doc/distutils/setupscript.rst:573 ../Doc/distutils/setupscript.rst:578 +msgid "email address" +msgstr "adresse de courriel" + +#: ../Doc/distutils/setupscript.rst:576 +msgid "``maintainer``" +msgstr "``maintainer``" + +#: ../Doc/distutils/setupscript.rst:576 +msgid "package maintainer's name" +msgstr "nom du mainteneur du paquet" + +#: ../Doc/distutils/setupscript.rst:578 +msgid "``maintainer_email``" +msgstr "``maintainer_email``" + +#: ../Doc/distutils/setupscript.rst:578 +msgid "email address of the package maintainer" +msgstr "adresse du courriel du mainteneur du paquet" + +#: ../Doc/distutils/setupscript.rst:581 +msgid "``url``" +msgstr "``url``" + +#: ../Doc/distutils/setupscript.rst:581 +msgid "home page for the package" +msgstr "page d’accueil du paquet" + +#: ../Doc/distutils/setupscript.rst:581 ../Doc/distutils/setupscript.rst:590 +msgid "URL" +msgstr "URL" + +#: ../Doc/distutils/setupscript.rst:583 +msgid "``description``" +msgstr "``description``" + +#: ../Doc/distutils/setupscript.rst:583 +msgid "short, summary description of the package" +msgstr "bref résumé décrivant le paquet" + +#: ../Doc/distutils/setupscript.rst:587 +msgid "``long_description``" +msgstr "``long_description``" + +#: ../Doc/distutils/setupscript.rst:587 +msgid "longer description of the package" +msgstr "description plus complète du paquet" + +#: ../Doc/distutils/setupscript.rst:587 +msgid "long string" +msgstr "longue chaîne de caractères" + +#: ../Doc/distutils/setupscript.rst:587 +msgid "\\(4)" +msgstr "\\(4)" + +#: ../Doc/distutils/setupscript.rst:590 +msgid "``download_url``" +msgstr "``download_url``" + +#: ../Doc/distutils/setupscript.rst:590 +msgid "location where the package may be downloaded" +msgstr "endroit où le paquet peut être téléchargé" + +#: ../Doc/distutils/setupscript.rst:593 +msgid "``classifiers``" +msgstr "``classifiers``" + +#: ../Doc/distutils/setupscript.rst:593 +msgid "a list of classifiers" +msgstr "une liste de classificateurs" + +#: ../Doc/distutils/setupscript.rst:593 ../Doc/distutils/setupscript.rst:595 +#: ../Doc/distutils/setupscript.rst:597 +msgid "list of strings" +msgstr "liste de chaînes de caractères" + +#: ../Doc/distutils/setupscript.rst:593 +msgid "(6)(7)" +msgstr "(6)(7)" + +#: ../Doc/distutils/setupscript.rst:595 +msgid "``platforms``" +msgstr "``platforms``" + +#: ../Doc/distutils/setupscript.rst:595 +msgid "a list of platforms" +msgstr "une liste de plateformes" + +#: ../Doc/distutils/setupscript.rst:595 ../Doc/distutils/setupscript.rst:597 +msgid "(6)(8)" +msgstr "(6)(8)" + +#: ../Doc/distutils/setupscript.rst:597 +msgid "``keywords``" +msgstr "``keywords``" + +#: ../Doc/distutils/setupscript.rst:597 +msgid "a list of keywords" +msgstr "une liste de mots-clés" + +#: ../Doc/distutils/setupscript.rst:599 +msgid "``license``" +msgstr "``license``" + +#: ../Doc/distutils/setupscript.rst:599 +msgid "license for the package" +msgstr "licence du paquet" + +#: ../Doc/distutils/setupscript.rst:599 +msgid "\\(5)" +msgstr "\\(5)" + +#: ../Doc/distutils/setupscript.rst:602 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/distutils/setupscript.rst:605 +msgid "These fields are required." +msgstr "Ces champs sont requis." + +#: ../Doc/distutils/setupscript.rst:608 +msgid "" +"It is recommended that versions take the form *major.minor[.patch[.sub]]*." +msgstr "" +"Il est recommandé que les versions prennent la forme *majeure.mineure[." +"correctif[.sous-correctif]]*." + +#: ../Doc/distutils/setupscript.rst:611 +msgid "" +"Either the author or the maintainer must be identified. If maintainer is " +"provided, distutils lists it as the author in :file:`PKG-INFO`." +msgstr "" +"L'auteur ou un mainteneur doit être identifié. Si un mainteneur est fourni, " +"*distutils* l'indique en tant qu'auteur dans le fichier :file:`PKG-INFO`." + +#: ../Doc/distutils/setupscript.rst:615 +msgid "" +"The ``long_description`` field is used by PyPI when you publish a package, " +"to build its project page." +msgstr "" +"Le champ ``long_description`` est utilisé par PyPI quand vous publiez un " +"paquet pour construire sa page de projet." + +#: ../Doc/distutils/setupscript.rst:619 +msgid "" +"The ``license`` field is a text indicating the license covering the package " +"where the license is not a selection from the \"License\" Trove classifiers. " +"See the ``Classifier`` field. Notice that there's a ``licence`` distribution " +"option which is deprecated but still acts as an alias for ``license``." +msgstr "" +"Le champ ``license`` est un texte indiquant la licence du paquet quand la " +"licence n'est pas indiquée dans les classificateurs de type « Licence » " +"Trove. Voir le champ ``Classifier``. À noter qu'il y a une option de " +"distribution ``licence`` qui est obsolète mais agit toujours comme un alias " +"pour ``license``." + +#: ../Doc/distutils/setupscript.rst:626 +msgid "This field must be a list." +msgstr "Ce champ doit être une liste." + +#: ../Doc/distutils/setupscript.rst:629 +msgid "" +"The valid classifiers are listed on `PyPI `_." +msgstr "" +"Les classificateurs valides sont listés sur `PyPI `_." + +#: ../Doc/distutils/setupscript.rst:633 +msgid "" +"To preserve backward compatibility, this field also accepts a string. If you " +"pass a comma-separated string ``'foo, bar'``, it will be converted to " +"``['foo', 'bar']``, Otherwise, it will be converted to a list of one string." +msgstr "" +"Pour préserver la rétrocompatibilité, ce champ accepte aussi une chaîne de " +"caractères. Si vous passez une chaine de caractères séparée par des virgules " +"``'truc, machin'``, elle sera convertie en ``['truc', 'machin']``, " +"Autrement, elle sera convertie en une liste d'une chaîne de caractères." + +#: ../Doc/distutils/setupscript.rst:639 +msgid "'short string'" +msgstr "'chaîne courte'" + +#: ../Doc/distutils/setupscript.rst:639 +msgid "A single line of text, not more than 200 characters." +msgstr "Une simple ligne de texte ne dépassant par 200 caractères." + +#: ../Doc/distutils/setupscript.rst:643 +msgid "'long string'" +msgstr "'chaîne longue'" + +#: ../Doc/distutils/setupscript.rst:642 +msgid "" +"Multiple lines of plain text in reStructuredText format (see http://docutils." +"sourceforge.net/)." +msgstr "" +"De multiples lignes de texte au format ReStructuredText (voir http://" +"docutils.sourceforge.net/)." + +#: ../Doc/distutils/setupscript.rst:646 +msgid "'list of strings'" +msgstr "'liste de chaînes'" + +#: ../Doc/distutils/setupscript.rst:646 +msgid "See below." +msgstr "Voir ci-dessous." + +#: ../Doc/distutils/setupscript.rst:648 +msgid "" +"Encoding the version information is an art in itself. Python packages " +"generally adhere to the version format *major.minor[.patch][sub]*. The major " +"number is 0 for initial, experimental releases of software. It is " +"incremented for releases that represent major milestones in a package. The " +"minor number is incremented when important new features are added to the " +"package. The patch number increments when bug-fix releases are made. " +"Additional trailing version information is sometimes used to indicate sub-" +"releases. These are \"a1,a2,...,aN\" (for alpha releases, where " +"functionality and API may change), \"b1,b2,...,bN\" (for beta releases, " +"which only fix bugs) and \"pr1,pr2,...,prN\" (for final pre-release release " +"testing). Some examples:" +msgstr "" +"Encoder les informations de version est un art en soi. Les paquets Python " +"adhèrent généralement au format de version *majeure.mineure[.correctif]" +"[sous]*. Le numéro majeur 0 est utilisé pour les publications " +"expérimentales, initiales d'un logiciel. Il est incrémenté pour les " +"publications qui représentent des étapes majeures pour le paquet. Le nombre " +"mineur est incrémenté quand d'importantes nouvelles fonctionnalités sont " +"ajoutées au paquet. Le numéro de correctif s'incrémente lors de la " +"publication d'une correction de bogue est faite. Celles-ci sont \"*a1,a2,...," +"aN*\" (pour les publications alpha, où les fonctionnalités et l'API peut " +"changer), \"*b1,b2,...,bN*\" (pour les publications *beta*, qui corrigent " +"seulement les bogues) et \"*pr1,pr2,...,prN*\" (pour les ultimes pré-" +"publication et publications de test). Quelques exemples :" + +#: ../Doc/distutils/setupscript.rst:660 +msgid "0.1.0" +msgstr "0.1.0" + +#: ../Doc/distutils/setupscript.rst:660 +msgid "the first, experimental release of a package" +msgstr "la première, publication expérimentale du paquet" + +#: ../Doc/distutils/setupscript.rst:663 +msgid "1.0.1a2" +msgstr "1.0.1a2" + +#: ../Doc/distutils/setupscript.rst:663 +msgid "the second alpha release of the first patch version of 1.0" +msgstr "la seconde publication alpha du premier correctif de la version 1.0" + +#: ../Doc/distutils/setupscript.rst:665 +msgid "``classifiers`` must be specified in a list::" +msgstr "les ``classifiers`` doivent être définis dans une liste ::" + +#: ../Doc/distutils/setupscript.rst:686 +msgid "" +":class:`~distutils.core.setup` now warns when ``classifiers``, ``keywords`` " +"or ``platforms`` fields are not specified as a list or a string." +msgstr "" +":class:`~distutils.core.setup` alerte maintenant lorsque les champs " +"``classifiers``, ``keywords`` ou ``platforms`` ne sont pas définis en tant " +"que liste ou chaîne de caractères." + +#: ../Doc/distutils/setupscript.rst:693 +msgid "Debugging the setup script" +msgstr "Débogage du script ``setup.py``" + +#: ../Doc/distutils/setupscript.rst:695 +msgid "" +"Sometimes things go wrong, and the setup script doesn't do what the " +"developer wants." +msgstr "" +"Parfois les choses tournent mal et le script ``setup.py`` ne fait pas ce que " +"le développeur veut." + +#: ../Doc/distutils/setupscript.rst:698 +msgid "" +"Distutils catches any exceptions when running the setup script, and print a " +"simple error message before the script is terminated. The motivation for " +"this behaviour is to not confuse administrators who don't know much about " +"Python and are trying to install a package. If they get a big long " +"traceback from deep inside the guts of Distutils, they may think the package " +"or the Python installation is broken because they don't read all the way " +"down to the bottom and see that it's a permission problem." +msgstr "" +"*Distutils* intercepte toute exception lors de l'exécution du script ``setup." +"py`` et affiche un message d'erreur simple avant d'arrêter le script. L'idée " +"est de ne pas embrouiller les administrateurs qui ne savent pas grand-chose " +"de Python et qui essayent d'installer un paquet. S'ils reçoivent une grosse " +"et longue trace d'appels provenant des entrailles de *Distutils*, ils " +"peuvent penser que le paquet ou que l'installation de Python est corrompue " +"car, ils ne lisent pas tout jusqu'en bas alors que c'est un problème de " +"droits." + +#: ../Doc/distutils/setupscript.rst:706 +msgid "" +"On the other hand, this doesn't help the developer to find the cause of the " +"failure. For this purpose, the :envvar:`DISTUTILS_DEBUG` environment " +"variable can be set to anything except an empty string, and distutils will " +"now print detailed information about what it is doing, dump the full " +"traceback when an exception occurs, and print the whole command line when an " +"external program (like a C compiler) fails." +msgstr "" +"D'un autre côté, cela n'aide pas le développeur à trouver la cause du " +"problème. À cette fin, la variable d'environnement :envvar:`DISTUTILS_DEBUG` " +"peut être assignée à n'importe quoi sauf une chaîne de caractères vide, et " +"*distutils* affichera maintenant une information détaillée à propos de ce " +"qu'il fait, déversera la trace d'appels complète lors d'une exception, et " +"affichera la ligne de commande complète quand un programme externe (comme un " +"compilateur C) échoue." + +#~ msgid "\\(6)" +#~ msgstr "\\(6)" diff --git a/distutils/sourcedist.po b/distutils/sourcedist.po new file mode 100644 index 000000000..57815353e --- /dev/null +++ b/distutils/sourcedist.po @@ -0,0 +1,558 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-09-29 17:53+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/distutils/sourcedist.rst:5 +msgid "Creating a Source Distribution" +msgstr "Créer une distribution source" + +#: ../Doc/distutils/sourcedist.rst:7 +msgid "" +"As shown in section :ref:`distutils-simple-example`, you use the :command:" +"`sdist` command to create a source distribution. In the simplest case, ::" +msgstr "" +"Comme montré dans le chapitre :ref:`distutils-simple-example`, vous pouvez " +"utiliser la commande :command:`sdist` pour créer une distribution source. " +"Dans le cas le plus simple, ::" + +#: ../Doc/distutils/sourcedist.rst:12 +msgid "" +"(assuming you haven't specified any :command:`sdist` options in the setup " +"script or config file), :command:`sdist` creates the archive of the default " +"format for the current platform. The default format is a gzip'ed tar file (:" +"file:`.tar.gz`) on Unix, and ZIP file on Windows." +msgstr "" +"(en supposant que vous n'avez spécifié aucune option pour la commande :" +"command:`sdist` dans le script de préparation ou le fichier de " +"configuration), :command:`sdist` crée une archive au format par défaut pour " +"la plateforme utilisée. Le format par défaut est un fichier *tar* compressé " +"(:file:`.tar.gz`) sur Unix et un fichier ZIP sur Windows." + +#: ../Doc/distutils/sourcedist.rst:17 +msgid "" +"You can specify as many formats as you like using the :option:`!--formats` " +"option, for example::" +msgstr "" +"Vous pouvez donner autant de formats que désiré *via* l'option :option:`!--" +"formats`, par exemple ::" + +#: ../Doc/distutils/sourcedist.rst:22 +msgid "to create a gzipped tarball and a zip file. The available formats are:" +msgstr "" +"pour créer un fichier *tarball* compressé et un fichier ZIP. Les formats " +"disponibles actuellement sont :" + +#: ../Doc/distutils/sourcedist.rst:25 +msgid "Format" +msgstr "Format" + +#: ../Doc/distutils/sourcedist.rst:25 +msgid "Description" +msgstr "Description" + +#: ../Doc/distutils/sourcedist.rst:25 +msgid "Notes" +msgstr "Notes" + +#: ../Doc/distutils/sourcedist.rst:27 +msgid "``zip``" +msgstr "``zip``" + +#: ../Doc/distutils/sourcedist.rst:27 +msgid "zip file (:file:`.zip`)" +msgstr "Fichier *zip* (:file:`.zip`)" + +#: ../Doc/distutils/sourcedist.rst:27 +msgid "(1),(3)" +msgstr "(1), (3)" + +#: ../Doc/distutils/sourcedist.rst:29 +msgid "``gztar``" +msgstr "``gztar``" + +#: ../Doc/distutils/sourcedist.rst:29 +msgid "gzip'ed tar file (:file:`.tar.gz`)" +msgstr "Fichier *tar* compressé par *gzip* (:file:`.tar.gz`)" + +#: ../Doc/distutils/sourcedist.rst:29 +msgid "\\(2)" +msgstr "\\(2)" + +#: ../Doc/distutils/sourcedist.rst:32 +msgid "``bztar``" +msgstr "``bztar``" + +#: ../Doc/distutils/sourcedist.rst:32 +msgid "bzip2'ed tar file (:file:`.tar.bz2`)" +msgstr "Fichier *tar* compressé par *bzip2* (:file:`.tar.bz2`)" + +#: ../Doc/distutils/sourcedist.rst:35 +msgid "``xztar``" +msgstr "``xztar``" + +#: ../Doc/distutils/sourcedist.rst:35 +msgid "xz'ed tar file (:file:`.tar.xz`)" +msgstr "Fichier *tar* compressé par *xz* (:file:`.tar.xz`)" + +#: ../Doc/distutils/sourcedist.rst:38 +msgid "``ztar``" +msgstr "``ztar``" + +#: ../Doc/distutils/sourcedist.rst:38 +msgid "compressed tar file (:file:`.tar.Z`)" +msgstr "Fichier *tar* compressé par *compress* (:file:`.tar.Z`)" + +#: ../Doc/distutils/sourcedist.rst:38 +msgid "\\(4)" +msgstr "\\(4)" + +#: ../Doc/distutils/sourcedist.rst:41 +msgid "``tar``" +msgstr "``tar``" + +#: ../Doc/distutils/sourcedist.rst:41 +msgid "tar file (:file:`.tar`)" +msgstr "fichier *tar* (:file:`.tar`)" + +#: ../Doc/distutils/sourcedist.rst:44 +msgid "Added support for the ``xztar`` format." +msgstr "Ajout du support des fichiers ``xztar``." + +#: ../Doc/distutils/sourcedist.rst:47 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/distutils/sourcedist.rst:50 +msgid "default on Windows" +msgstr "Par défaut sur Windows" + +#: ../Doc/distutils/sourcedist.rst:53 +msgid "default on Unix" +msgstr "Par défaut sur Unix" + +#: ../Doc/distutils/sourcedist.rst:56 +msgid "" +"requires either external :program:`zip` utility or :mod:`zipfile` module " +"(part of the standard Python library since Python 1.6)" +msgstr "" +"nécessite soit un utilitaire :program:`zip` extérieur ou le module :mod:" +"`zipfile` (inclut dans la bibliothèque standard depuis Python 1.6)" + +#: ../Doc/distutils/sourcedist.rst:60 +msgid "" +"requires the :program:`compress` program. Notice that this format is now " +"pending for deprecation and will be removed in the future versions of Python." +msgstr "" +"nécessite le programme :program:`compress`. Remarquez que ce format sera " +"bientôt obsolète et sera enlevé des prochaines version de Python." + +#: ../Doc/distutils/sourcedist.rst:63 +msgid "" +"When using any ``tar`` format (``gztar``, ``bztar``, ``xztar``, ``ztar`` or " +"``tar``), under Unix you can specify the ``owner`` and ``group`` names that " +"will be set for each member of the archive." +msgstr "" +"Lorsque vous utilisez n'importe quel format ``tar`` (``gztar``, ``bztar``, " +"``xztar``, ``ztar`` or ``tar``), vous pouvez spécifier sous Unix le " +"propriétaire et le groupe qui seront appliqué pour chaque fichier de " +"l'archive." + +#: ../Doc/distutils/sourcedist.rst:67 +msgid "For example, if you want all files of the archive to be owned by root::" +msgstr "" +"Par exemple, si vous voulez que tous les fichiers de l'archive soient détenu " +"par *root* ::" + +#: ../Doc/distutils/sourcedist.rst:75 +msgid "Specifying the files to distribute" +msgstr "Spécifier les fichiers à distribuer" + +#: ../Doc/distutils/sourcedist.rst:77 +msgid "" +"If you don't supply an explicit list of files (or instructions on how to " +"generate one), the :command:`sdist` command puts a minimal default set into " +"the source distribution:" +msgstr "" +"Si vous ne fournissez pas une liste explicite de fichiers (ou les " +"instructions pour la générer), la commande :command:`sdist` en met par " +"défaut le minimum dans la distribution source :" + +#: ../Doc/distutils/sourcedist.rst:81 +msgid "" +"all Python source files implied by the ``py_modules`` and ``packages`` " +"options" +msgstr "" +"tous les fichiers source Python sous-entendus par les options ``py_modules`` " +"et ``packages``" + +#: ../Doc/distutils/sourcedist.rst:84 +msgid "" +"all C source files mentioned in the ``ext_modules`` or ``libraries`` options" +msgstr "" +"tous les fichiers source C mentionnés dans les arguments ``ext_modules`` ou " +"``libraries``" + +#: ../Doc/distutils/sourcedist.rst:90 +msgid "" +"scripts identified by the ``scripts`` option See :ref:`distutils-installing-" +"scripts`." +msgstr "" +"scripts identifiés par l'argument ``scripts``. Voir :ref:`distutils-" +"installing-scripts`." + +#: ../Doc/distutils/sourcedist.rst:93 +msgid "" +"anything that looks like a test script: :file:`test/test\\*.py` (currently, " +"the Distutils don't do anything with test scripts except include them in " +"source distributions, but in the future there will be a standard for testing " +"Python module distributions)" +msgstr "" +"tout ce qui ressemble à un script de test :file:`test/test\\*.py` (pour " +"l'instant, Distutils ne fait rien avec ces scripts de test, si ce n'est les " +"inclure dans les distributions sources, mais dans le futur un standard sera " +"implémenté pour tester les distributions de module Python)" + +#: ../Doc/distutils/sourcedist.rst:98 +msgid "" +"Any of the standard README files (:file:`README`, :file:`README.txt`, or :" +"file:`README.rst`), :file:`setup.py` (or whatever you called your setup " +"script), and :file:`setup.cfg`." +msgstr "" +"n'importe quel fichier README classique (:file:`README`, :file:`README.txt`, " +"ou :file:`README.rst`), ainsi que le fichier :file:`setup.py` (ou votre " +"script d'installation si vous l'avez appelé autrement) et le fichier :file:" +"`setup.cfg`." + +#: ../Doc/distutils/sourcedist.rst:102 +msgid "" +"all files that matches the ``package_data`` metadata. See :ref:`distutils-" +"installing-package-data`." +msgstr "" +"tous les fichiers associés aux méta-données ``package_data``. Voir :ref:" +"`distutils-installing-package-data`." + +#: ../Doc/distutils/sourcedist.rst:105 +msgid "" +"all files that matches the ``data_files`` metadata. See :ref:`distutils-" +"additional-files`." +msgstr "" +"tous les fichiers associés aux méta-données ``data_files``. Voir :ref:" +"`distutils-additional-files`." + +#: ../Doc/distutils/sourcedist.rst:108 +msgid "" +"Sometimes this is enough, but usually you will want to specify additional " +"files to distribute. The typical way to do this is to write a *manifest " +"template*, called :file:`MANIFEST.in` by default. The manifest template is " +"just a list of instructions for how to generate your manifest file, :file:" +"`MANIFEST`, which is the exact list of files to include in your source " +"distribution. The :command:`sdist` command processes this template and " +"generates a manifest based on its instructions and what it finds in the " +"filesystem." +msgstr "" +"Parfois ce fonctionnement suffit, mais généralement vous voudrez spécifier " +"des fichiers supplémentaires à distribuer. La façon classique de le faire " +"est d'écrire un *manifeste modèle*, appelé :file:`MANIFEST.in` par défaut. " +"Ce manifeste modèle est juste une liste d'instructions pour générer votre " +"fichier manifeste final, :file:`MANIFEST`, qui est la liste exacte des " +"fichiers à inclure dans votre distribution source. La commande :command:" +"`sdist` traite ce modèle et génère un manifeste à partir de ces instructions " +"et de ce qu'elle trouve dans le système de fichiers." + +#: ../Doc/distutils/sourcedist.rst:116 +msgid "" +"If you prefer to roll your own manifest file, the format is simple: one " +"filename per line, regular files (or symlinks to them) only. If you do " +"supply your own :file:`MANIFEST`, you must specify everything: the default " +"set of files described above does not apply in this case." +msgstr "" +"Si vous préférez créer votre propre fichier manifeste, le format est " +"simple : un nom de fichier par ligne, uniquement des fichiers normaux (ou " +"leur lien symbolique). Si vous fournissez votre propre :file:`MANIFEST`, " +"vous devez tout spécifier : les groupes de fichiers par défaut décrits au-" +"dessus ne sont pas inclus automatiquement dans ce cas." + +#: ../Doc/distutils/sourcedist.rst:121 +msgid "" +"An existing generated :file:`MANIFEST` will be regenerated without :command:" +"`sdist` comparing its modification time to the one of :file:`MANIFEST.in` " +"or :file:`setup.py`." +msgstr "" +"Un :file:`MANIFEST` existant généré automatiquement sera régénéré sans que :" +"command:`sdist` ne compare son heure de modification à :file:`MANIFEST.in` " +"ou :file:`setup.py`." + +#: ../Doc/distutils/sourcedist.rst:126 +msgid "" +":file:`MANIFEST` files start with a comment indicating they are generated. " +"Files without this comment are not overwritten or removed." +msgstr "" +"Les fichiers :file:`MANIFEST` commencent par un commentaire indiquant qu'ils " +"sont générés. Les fichiers sans ce commentaire ne sont pas réécrits ou " +"supprimés." + +#: ../Doc/distutils/sourcedist.rst:130 +msgid "" +":command:`sdist` will read a :file:`MANIFEST` file if no :file:`MANIFEST.in` " +"exists, like it used to do." +msgstr "" +":command:`sdist` lira un ficher :file:`MANIFEST` s'il n'existe pas de :file:" +"`MANIFEST.in` , tel qu'il en avait l'habitude." + +#: ../Doc/distutils/sourcedist.rst:134 +msgid "" +":file:`README.rst` is now included in the list of distutils standard READMEs." +msgstr "" +"Le fichier :file:`README.rst` est maintenant inclus dans la liste des " +"fichiers *README* standards de *distutils*." + +#: ../Doc/distutils/sourcedist.rst:138 +msgid "" +"The manifest template has one command per line, where each command specifies " +"a set of files to include or exclude from the source distribution. For an " +"example, again we turn to the Distutils' own manifest template:" +msgstr "" +"Le modèle de manifeste possède une commande par ligne, où chaque commande " +"spécifie un ensemble de fichiers à inclure ou à exclure de la distribution " +"source. Par exemple, regardons à nouveau le propre manifeste de Distutils :" + +#: ../Doc/distutils/sourcedist.rst:148 +msgid "" +"The meanings should be fairly clear: include all files in the distribution " +"root matching :file:`\\*.txt`, all files anywhere under the :file:`examples` " +"directory matching :file:`\\*.txt` or :file:`\\*.py`, and exclude all " +"directories matching :file:`examples/sample?/build`. All of this is done " +"*after* the standard include set, so you can exclude files from the standard " +"set with explicit instructions in the manifest template. (Or, you can use " +"the :option:`!--no-defaults` option to disable the standard set entirely.) " +"There are several other commands available in the manifest template mini-" +"language; see section :ref:`sdist-cmd`." +msgstr "" +"La signification est assez claire : inclure tous les fichiers à la racine de " +"la distribution correspondant à :file:`*.txt`, tous les fichiers n'importe " +"où dans le dossier :file:`examples` correspondant à :file:`\\*.txt` ou :file:" +"`\\*.py`, et exclure tous les dossiers correspondant à :file:`examples/" +"sample?/build`. Tout ceci est fait **après** l'ensemble d'inclusions " +"standard, vous pouvez donc exclure des fichiers précédemment inclus en " +"utilisant une instruction explicite dans le manifeste. (Vous pouvez aussi " +"utiliser l'option :option:`!--no-defaults` pour désactiver complètement les " +"inclusions standards). Il existe d'autres commandes dans le langage du " +"fichier manifeste, consultez le chapitre :ref:`sdist-cmd`." + +#: ../Doc/distutils/sourcedist.rst:158 +msgid "" +"The order of commands in the manifest template matters: initially, we have " +"the list of default files as described above, and each command in the " +"template adds to or removes from that list of files. Once we have fully " +"processed the manifest template, we remove files that should not be included " +"in the source distribution:" +msgstr "" +"L'ordre des commandes dans le modèle manifeste compte : nous avons, à la " +"base, la liste de fichiers par défaut telle que décrite plus haut. Ensuite, " +"chaque commande du modèle ajoute ou supprime des fichiers de cette liste. " +"Une fois que le traitement du manifeste modèle est fini, nous enlevons les " +"fichiers qui ne doivent pas être inclus dans la distribution source :" + +#: ../Doc/distutils/sourcedist.rst:164 +msgid "all files in the Distutils \"build\" tree (default :file:`build/`)" +msgstr "" +"tous les fichiers dans l'arborescence de *build* de Distutils (par défaut :" +"file:`build/`)" + +#: ../Doc/distutils/sourcedist.rst:166 +msgid "" +"all files in directories named :file:`RCS`, :file:`CVS`, :file:`.svn`, :file:" +"`.hg`, :file:`.git`, :file:`.bzr` or :file:`_darcs`" +msgstr "" +"tous les fichiers dans les dossiers nommés :file:`RCS`, :file:`CVS`, :file:`." +"svn`, :file:`.hg`, :file:`.git`, :file:`.bzr` ou :file:`_darcs`" + +#: ../Doc/distutils/sourcedist.rst:169 +msgid "" +"Now we have our complete list of files, which is written to the manifest for " +"future reference, and then used to build the source distribution archive(s)." +msgstr "" +"Maintenant nous avons notre liste complète de fichiers ; elle est désormais " +"écrite dans le manifeste pour une utilisation future et sera utilisée pour " +"construire la ou les archive(s) de notre distribution source." + +#: ../Doc/distutils/sourcedist.rst:172 +msgid "" +"You can disable the default set of included files with the :option:`!--no-" +"defaults` option, and you can disable the standard exclude set with :option:" +"`!--no-prune`." +msgstr "" +"Vous pouvez désactiver l'ensemble des fichiers inclus par défaut en " +"utilisant l'option :option:`!--no-defaults`, ainsi que désactiver les " +"exclusions standards avec l'option :option:`!--no-prune`." + +#: ../Doc/distutils/sourcedist.rst:176 +msgid "" +"Following the Distutils' own manifest template, let's trace how the :command:" +"`sdist` command builds the list of files to include in the Distutils source " +"distribution:" +msgstr "" +"Voici le manifeste modèle de Distutils, suivons comment la commande :command:" +"`sdist` construit la liste des fichiers à inclure dans la distribution " +"source de Distutils." + +#: ../Doc/distutils/sourcedist.rst:180 +msgid "" +"include all Python source files in the :file:`distutils` and :file:" +"`distutils/command` subdirectories (because packages corresponding to those " +"two directories were mentioned in the ``packages`` option in the setup " +"script---see section :ref:`setup-script`)" +msgstr "" +"inclure tous les fichiers source Python dans les sous-dossiers :file:" +"`distutils` et :file:`distutils/command` (parce que des paquets " +"correspondant à ces deux dossiers ont été mentionnés dans l'argument " +"``packages`` du script d'installation --- voir le chapitre :ref:`setup-" +"script`)" + +#: ../Doc/distutils/sourcedist.rst:185 +msgid "" +"include :file:`README.txt`, :file:`setup.py`, and :file:`setup.cfg` " +"(standard files)" +msgstr "" +"inclure :file:`README.txt`, :file:`setup.py` et :file:`setup.cfg` (fichiers " +"standards)" + +#: ../Doc/distutils/sourcedist.rst:188 +msgid "include :file:`test/test\\*.py` (standard files)" +msgstr "inclure :file:`test/test\\*.py` (fichiers standard)" + +#: ../Doc/distutils/sourcedist.rst:190 +msgid "" +"include :file:`\\*.txt` in the distribution root (this will find :file:" +"`README.txt` a second time, but such redundancies are weeded out later)" +msgstr "" +"inclure :file:`\\*.txt` à la racine de la distribution (ceci trouve :file:" +"`README.txt` une seconde fois, mais les redondances sont supprimées plus " +"tard)" + +#: ../Doc/distutils/sourcedist.rst:193 +msgid "" +"include anything matching :file:`\\*.txt` or :file:`\\*.py` in the sub-tree " +"under :file:`examples`," +msgstr "" +"inclure tout fichier de la forme :file:`\\*.txt` ou :file:`\\*.py` dans la " +"sous-arborescence de :file:`examples`," + +#: ../Doc/distutils/sourcedist.rst:196 +msgid "" +"exclude all files in the sub-trees starting at directories matching :file:" +"`examples/sample?/build`\\ ---this may exclude files included by the " +"previous two steps, so it's important that the ``prune`` command in the " +"manifest template comes after the ``recursive-include`` command" +msgstr "" +"exclure tous les fichiers dans les sous-arborescences dont les dossiers " +"racines sont de la forme :file:`examples/sample?/build`\\ --- Ceci peut " +"exclure des fichiers inclus dans les étapes précédentes, il est donc " +"important que la commande ``prune`` dans le manifeste modèle vienne après la " +"commande ``recursive-include``" + +#: ../Doc/distutils/sourcedist.rst:201 +msgid "" +"exclude the entire :file:`build` tree, and any :file:`RCS`, :file:`CVS`, :" +"file:`.svn`, :file:`.hg`, :file:`.git`, :file:`.bzr` and :file:`_darcs` " +"directories" +msgstr "" +"exclure l'arborescence de :file:`build` ainsi que les dossiers :file:" +"`RCS`, :file:`CVS`, :file:`.svn`, :file:`.hg`, :file:`.git`, :file:`.bzr` " +"et :file:`_darcs`" + +#: ../Doc/distutils/sourcedist.rst:205 +msgid "" +"Just like in the setup script, file and directory names in the manifest " +"template should always be slash-separated; the Distutils will take care of " +"converting them to the standard representation on your platform. That way, " +"the manifest template is portable across operating systems." +msgstr "" +"Comme dans le script de préparation, les chemins des fichiers et des " +"dossiers dans le manifeste modèle doivent toujours être séparés par des " +"barres obliques (*slash* en anglais) ; Distutils s'occupe de les convertir à " +"la représentation standard de votre plateforme. De cette manière, le " +"manifeste modèle est portable sur tout système d'exploitation." + +#: ../Doc/distutils/sourcedist.rst:214 +msgid "Manifest-related options" +msgstr "Options pour le manifeste" + +#: ../Doc/distutils/sourcedist.rst:216 +msgid "" +"The normal course of operations for the :command:`sdist` command is as " +"follows:" +msgstr "" +"L'ordre normal des opérations pour la commande :command:`sdist` est le " +"suivant :" + +#: ../Doc/distutils/sourcedist.rst:218 +msgid "" +"if the manifest file (:file:`MANIFEST` by default) exists and the first line " +"does not have a comment indicating it is generated from :file:`MANIFEST.in`, " +"then it is used as is, unaltered" +msgstr "" +"si le fichier manifeste (:file:`MANIFEST` par défaut) existe et que la " +"première ligne n'a pas de commentaire indiquant qu'il a été généré par :file:" +"`MANIFEST.in`, alors il est utilisé tel quel, inchangé" + +#: ../Doc/distutils/sourcedist.rst:222 +msgid "" +"if the manifest file doesn't exist or has been previously automatically " +"generated, read :file:`MANIFEST.in` and create the manifest" +msgstr "" +"si le manifeste n'existe pas ou s'il a été généré automatiquement, lire :" +"file:`MANIFEST.in` et créer le manifeste" + +#: ../Doc/distutils/sourcedist.rst:225 +msgid "" +"if neither :file:`MANIFEST` nor :file:`MANIFEST.in` exist, create a manifest " +"with just the default file set" +msgstr "" +"s'il n'existe ni :file:`MANIFEST`, ni :file:`MANIFEST.in`, alors créer un " +"manifeste contenant uniquement le groupe de fichiers par défaut" + +#: ../Doc/distutils/sourcedist.rst:228 +msgid "" +"use the list of files now in :file:`MANIFEST` (either just generated or read " +"in) to create the source distribution archive(s)" +msgstr "" +"utiliser maintenant la liste de fichiers de :file:`MANIFEST` (qu'il ait été " +"généré ou lu) pour créer la ou les archive(s) de la distribution source" + +#: ../Doc/distutils/sourcedist.rst:231 +msgid "" +"There are a couple of options that modify this behaviour. First, use the :" +"option:`!--no-defaults` and :option:`!--no-prune` to disable the standard " +"\"include\" and \"exclude\" sets." +msgstr "" +"Il existe deux manières pour modifier ce comportement. D'abord utilisez les " +"options :option:`!--no-defaults` et :option:`!--no-prune` pour désactiver " +"les inclusions et exclusions standards." + +#: ../Doc/distutils/sourcedist.rst:235 +msgid "" +"Second, you might just want to (re)generate the manifest, but not create a " +"source distribution::" +msgstr "" +"Ensuite, si vous ne voulez que (ré)générer le manifeste, mais pas créer la " +"distribution source ::" + +#: ../Doc/distutils/sourcedist.rst:240 +msgid ":option:`!-o` is a shortcut for :option:`!--manifest-only`." +msgstr "" +"L'option :option:`!-o` est un raccourci pour l'option :option:`!--manifest-" +"only`." diff --git a/distutils/uploading.po b/distutils/uploading.po new file mode 100644 index 000000000..575c2bcc0 --- /dev/null +++ b/distutils/uploading.po @@ -0,0 +1,33 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-08-21 12:22+0200\n" +"Last-Translator: Zepmanbc \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" + +#: ../Doc/distutils/uploading.rst:5 +msgid "Uploading Packages to the Package Index" +msgstr "Téléverser des paquets dans *Python Package Index*" + +#: ../Doc/distutils/uploading.rst:7 +msgid "" +"References to up to date PyPI documentation can be found at :ref:`publishing-" +"python-packages`." +msgstr "" +"Des références actualisées à la documentation de PyPI sont disponibles sur :" +"ref:`publishing-python-packages`." + +#~ msgid "" +#~ "The contents of this page have moved to the section :ref:`package-index`." +#~ msgstr "" +#~ "Le contenu de cette page à déménagé dans la section :ref:`package-index`." diff --git a/extending/building.po b/extending/building.po new file mode 100644 index 000000000..0841ae991 --- /dev/null +++ b/extending/building.po @@ -0,0 +1,242 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-10-04 16:22+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/extending/building.rst:7 +msgid "Building C and C++ Extensions" +msgstr "Construire des extensions C et C++" + +#: ../Doc/extending/building.rst:9 +msgid "" +"A C extension for CPython is a shared library (e.g. a ``.so`` file on Linux, " +"``.pyd`` on Windows), which exports an *initialization function*." +msgstr "" +"Une extension C pour CPython est une bibliothèque partagée (Un ``.so`` sur " +"Linux, un ``.pyd`` sur Windows), qui expose une *fonction d'initialisation*." + +#: ../Doc/extending/building.rst:12 +msgid "" +"To be importable, the shared library must be available on :envvar:" +"`PYTHONPATH`, and must be named after the module name, with an appropriate " +"extension. When using distutils, the correct filename is generated " +"automatically." +msgstr "" +"Pour pouvoir être importée, la bibliothèque partagée doit pourvoir être " +"trouvée dans :envvar:`PYTHONPATH`, et doit porter le nom du module, avec " +"l'extension appropriée. En utilisant *distutils*, le nom est généré " +"automatiquement." + +#: ../Doc/extending/building.rst:16 +msgid "The initialization function has the signature:" +msgstr "La fonction d'initialisation doit avoir le prototype :" + +#: ../Doc/extending/building.rst:20 +msgid "" +"It returns either a fully-initialized module, or a :c:type:`PyModuleDef` " +"instance. See :ref:`initializing-modules` for details." +msgstr "" +"Elle doit donner soit un module entièrement initialisé, soit une instance " +"de :c:type:`PyModuleDef`. Voir :ref:`initializing-modules` pour plus de " +"détails." + +#: ../Doc/extending/building.rst:25 +msgid "" +"For modules with ASCII-only names, the function must be named " +"``PyInit_``, with ```` replaced by the name of the " +"module. When using :ref:`multi-phase-initialization`, non-ASCII module names " +"are allowed. In this case, the initialization function name is " +"``PyInitU_``, with ```` encoded using Python's " +"*punycode* encoding with hyphens replaced by underscores. In Python::" +msgstr "" +"Pour les modules dont les noms sont entièrement en ASCII, la fonction doit " +"être nommée ``PyInit_``, dont ```` est remplacé par " +"le nom du module. En utilisant :ref:`multi-phase-initialization`, il est " +"possible d'utiliser des noms de modules comptant des caractères non ASCII. " +"Dans ce cas, le nom de la fonction d'initialisation est " +"``PyInitU_``, où ``modulename`` est encodé avec l'encodage " +"*punyencode* de Python, dont les tirets sont remplacés par des tirets-bas. " +"En Python ça donne ::" + +#: ../Doc/extending/building.rst:39 +msgid "" +"It is possible to export multiple modules from a single shared library by " +"defining multiple initialization functions. However, importing them requires " +"using symbolic links or a custom importer, because by default only the " +"function corresponding to the filename is found. See the *\"Multiple modules " +"in one library\"* section in :pep:`489` for details." +msgstr "" +"Il est possible d'exporter plusieurs modules depuis une seule bibliothèque " +"partagée en définissant plusieurs fonctions d'initialisation. Cependant pour " +"les importer, un lien symbolique doit être créé pour chacun, ou un " +"*importer* personnalisé, puisque par défaut seule la fonction correspondant " +"au nom du fichier est cherchée. Voir le chapitre *\"Multiple modules in one " +"library\"* dans la :pep:`489` pour plus d'informations." + +#: ../Doc/extending/building.rst:49 +msgid "Building C and C++ Extensions with distutils" +msgstr "Construire les extensions C et C++ avec *distutils*" + +#: ../Doc/extending/building.rst:53 +msgid "" +"Extension modules can be built using distutils, which is included in " +"Python. Since distutils also supports creation of binary packages, users " +"don't necessarily need a compiler and distutils to install the extension." +msgstr "" +"Des modules d'extension peuvent être construits avec *distutils*, qui est " +"inclus dans Python. Puisque *distutils* gère aussi la création de paquets " +"binaires, les utilisateurs n'auront pas nécessairement besoin ni d'un " +"compilateur ni de *distutils* pour installer l'extension." + +#: ../Doc/extending/building.rst:57 +msgid "" +"A distutils package contains a driver script, :file:`setup.py`. This is a " +"plain Python file, which, in the most simple case, could look like this:" +msgstr "" +"Un paquet *distutils* contient un script :file:`setup.py`. C'est un simple " +"fichier Python, ressemblant dans la plupart des cas à :" + +#: ../Doc/extending/building.rst:73 +msgid "With this :file:`setup.py`, and a file :file:`demo.c`, running ::" +msgstr "Avec ce :file:`setup.py` et un fichier :file:`demo.c`, lancer ::" + +#: ../Doc/extending/building.rst:77 +msgid "" +"will compile :file:`demo.c`, and produce an extension module named ``demo`` " +"in the :file:`build` directory. Depending on the system, the module file " +"will end up in a subdirectory :file:`build/lib.system`, and may have a name " +"like :file:`demo.so` or :file:`demo.pyd`." +msgstr "" +"compilera :file:`demo.c`, et produira un module d'extension nommé ``demo`` " +"dans le dossier :file:`build`. En fonction du système, le fichier du module " +"peut se retrouver dans :file:`build/lib.system`, et son nom peut être :file:" +"`demo.py` ou :file:`demo.pyd`." + +#: ../Doc/extending/building.rst:82 +msgid "" +"In the :file:`setup.py`, all execution is performed by calling the ``setup`` " +"function. This takes a variable number of keyword arguments, of which the " +"example above uses only a subset. Specifically, the example specifies meta-" +"information to build packages, and it specifies the contents of the " +"package. Normally, a package will contain additional modules, like Python " +"source modules, documentation, subpackages, etc. Please refer to the " +"distutils documentation in :ref:`distutils-index` to learn more about the " +"features of distutils; this section explains building extension modules only." +msgstr "" +"Dans le fichier :file:`setup.py`, tout est exécuté en appelant la fonction " +"``setup``. Elle prend un nombre variable d'arguments nommés, dont l'exemple " +"précédent n'utilise qu'une partie. L'exemple précise des méta-informations " +"pour construire les paquets, et définir le contenu du paquet. Normalement un " +"paquet contient des modules additionnels, comme des modules sources, " +"documentation, sous paquets, etc. Referez-vous à la documentation de " +"*distutils* dans :ref:`distutils-index` pour en apprendre plus sur les " +"fonctionnalités de *distutils*. Cette section n'explique que la construction " +"de modules d'extension." + +#: ../Doc/extending/building.rst:91 +msgid "" +"It is common to pre-compute arguments to :func:`setup`, to better structure " +"the driver script. In the example above, the ``ext_modules`` argument to :" +"func:`~distutils.core.setup` is a list of extension modules, each of which " +"is an instance of the :class:`~distutils.extension.Extension`. In the " +"example, the instance defines an extension named ``demo`` which is build by " +"compiling a single source file, :file:`demo.c`." +msgstr "" +"Il est classique de pré-calculer les arguments à la fonction :func:`setup`, " +"pour plus de lisibilité. Dans l'exemple ci-dessus, l'argument " +"``ext_modules`` à :func:`~distutils.core.setup` est une liste de modules " +"d'extension, chacun est une instance de la classe :class:`~distutils." +"extension.Extension`. Dans l'exemple, l'instance définit une extension " +"nommée ``demo`` construite par la compilation d'un seul fichier source :file:" +"`demo.c`." + +#: ../Doc/extending/building.rst:99 +msgid "" +"In many cases, building an extension is more complex, since additional " +"preprocessor defines and libraries may be needed. This is demonstrated in " +"the example below." +msgstr "" +"Dans la plupart des cas, construire une extension est plus complexe à cause " +"des bibliothèques et définitions de préprocesseurs dont la compilation " +"pourrait dépendre. C'est ce qu'on remarque dans l'exemple plus bas." + +#: ../Doc/extending/building.rst:127 +msgid "" +"In this example, :func:`~distutils.core.setup` is called with additional " +"meta-information, which is recommended when distribution packages have to be " +"built. For the extension itself, it specifies preprocessor defines, include " +"directories, library directories, and libraries. Depending on the compiler, " +"distutils passes this information in different ways to the compiler. For " +"example, on Unix, this may result in the compilation commands ::" +msgstr "" +"Dans cet exemple, la fonction :func:`~distutils.core.setup` est appelée avec " +"quelques autres méta-informations, ce qui est recommandé pour distribuer des " +"paquets. En ce qui concerne l'extension, sont définis quelques macros " +"préprocesseur, dossiers pour les en-têtes et bibliothèques. En fonction du " +"compilateur, *distutils* peut donner ces informations de manière différente. " +"Par exemple, sur Unix, ça peut ressembler aux commandes : ::" + +#: ../Doc/extending/building.rst:139 +msgid "" +"These lines are for demonstration purposes only; distutils users should " +"trust that distutils gets the invocations right." +msgstr "" +"Ces lignes ne sont qu'à titre d'exemple, les utilisateurs de *distutils* " +"doivent avoir confiance en *distutils* qui fera les appels correctement." + +#: ../Doc/extending/building.rst:146 +msgid "Distributing your extension modules" +msgstr "Distribuer vos modules d'extension" + +#: ../Doc/extending/building.rst:148 +msgid "" +"When an extension has been successfully build, there are three ways to use " +"it." +msgstr "" +"Lorsqu'une extension a été construite avec succès, il existe trois moyens de " +"l'utiliser." + +#: ../Doc/extending/building.rst:150 +msgid "" +"End-users will typically want to install the module, they do so by running ::" +msgstr "" +"Typiquement, les utilisateurs vont vouloir installer le module, ils le font " +"en exécutant ::" + +#: ../Doc/extending/building.rst:154 +msgid "" +"Module maintainers should produce source packages; to do so, they run ::" +msgstr "" +"Les mainteneurs de modules voudront produire des paquets source, pour ce " +"faire ils exécuteront ::" + +#: ../Doc/extending/building.rst:158 +msgid "" +"In some cases, additional files need to be included in a source " +"distribution; this is done through a :file:`MANIFEST.in` file; see :ref:" +"`manifest` for details." +msgstr "" +"Dans certains cas, des fichiers supplémentaires doivent être inclus dans une " +"distribution source : c'est possible via un fichier :file:`MANIFEST.in`, c." +"f. :ref:`manifest`." + +#: ../Doc/extending/building.rst:161 +msgid "" +"If the source distribution has been build successfully, maintainers can also " +"create binary distributions. Depending on the platform, one of the following " +"commands can be used to do so. ::" +msgstr "" +"Si la distribution source a été construite avec succès, les mainteneurs " +"peuvent créer une distribution binaire. En fonction de la plateforme, une " +"des commandes suivantes peut être utilisée. ::" diff --git a/extending/embedding.po b/extending/embedding.po new file mode 100644 index 000000000..144691ee1 --- /dev/null +++ b/extending/embedding.po @@ -0,0 +1,462 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-10-04 16:18+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/extending/embedding.rst:8 +msgid "Embedding Python in Another Application" +msgstr "Intégrer Python dans une autre application" + +#: ../Doc/extending/embedding.rst:10 +msgid "" +"The previous chapters discussed how to extend Python, that is, how to extend " +"the functionality of Python by attaching a library of C functions to it. It " +"is also possible to do it the other way around: enrich your C/C++ " +"application by embedding Python in it. Embedding provides your application " +"with the ability to implement some of the functionality of your application " +"in Python rather than C or C++. This can be used for many purposes; one " +"example would be to allow users to tailor the application to their needs by " +"writing some scripts in Python. You can also use it yourself if some of the " +"functionality can be written in Python more easily." +msgstr "" +"Les chapitres précédents couvraient l'extension de Python, c'est à dire, " +"comment enrichir une fonctionnalité de Python en y attachant une " +"bibliothèque de fonctions C. C'est aussi possible dans l'autre sens: " +"enrichir vos applications C/C++ en y intégrant Python. Intégrer Python vous " +"permet d'implémenter certaines fonctionnalités de vos applications en Python " +"plutôt qu'en C ou C++. C'est utile dans de nombreux cas, un exemple serait " +"de permettre aux utilisateurs d'adapter une application à leur besoins en y " +"écrivant des scripts Python. Vous pouvez aussi l'utiliser vous même si " +"certaines fonctionnalités peuvent être rédigées plus facilement en Python." + +#: ../Doc/extending/embedding.rst:20 +msgid "" +"Embedding Python is similar to extending it, but not quite. The difference " +"is that when you extend Python, the main program of the application is still " +"the Python interpreter, while if you embed Python, the main program may have " +"nothing to do with Python --- instead, some parts of the application " +"occasionally call the Python interpreter to run some Python code." +msgstr "" +"Intégrer et étendre Python sont des tâches presque identiques. La différence " +"est qu'en étendant Python, le programme principal reste l'interpréteur " +"Python, alors qu'en intégrant Python le programme principal peut ne rien à " +"voir avec Python. C'est simplement quelques parties du programme qui " +"appellent l'interpréteur Python pour exécuter un peu de code Python." + +#: ../Doc/extending/embedding.rst:26 +msgid "" +"So if you are embedding Python, you are providing your own main program. " +"One of the things this main program has to do is initialize the Python " +"interpreter. At the very least, you have to call the function :c:func:" +"`Py_Initialize`. There are optional calls to pass command line arguments to " +"Python. Then later you can call the interpreter from any part of the " +"application." +msgstr "" +"En intégrant Python, vous fournissez le programme principal. L'une de ses " +"tâches sera d'initialiser l'interpréteur. Au minimum vous devrez appeler :c:" +"func:`Py_Initialize`. Il est possible, avec quelques appels supplémentaires, " +"de passer des options à Python. Ensuite vous pourrez appeler l'interpréteur " +"depuis n'importe quelle partie de votre programme." + +#: ../Doc/extending/embedding.rst:32 +msgid "" +"There are several different ways to call the interpreter: you can pass a " +"string containing Python statements to :c:func:`PyRun_SimpleString`, or you " +"can pass a stdio file pointer and a file name (for identification in error " +"messages only) to :c:func:`PyRun_SimpleFile`. You can also call the lower-" +"level operations described in the previous chapters to construct and use " +"Python objects." +msgstr "" +"Il existe différents moyens d'appeler l'interpréteur: vous pouvez donner une " +"chaîne contenant des instructions Python à :c:func:`PyRun_SimpleString`, ou " +"vous pouvez donner un pointeur de fichier *stdio* et un nom de fichier " +"(juste pour nommer les messages d'erreur) à :c:func:`PyRunSimpleFile`. Vous " +"pouvez aussi appeler les API de bas niveau décrites dans les chapitres " +"précédents pour construire et utiliser des objets Python." + +#: ../Doc/extending/embedding.rst:42 +msgid ":ref:`c-api-index`" +msgstr ":ref:`c-api-index`" + +#: ../Doc/extending/embedding.rst:42 +msgid "" +"The details of Python's C interface are given in this manual. A great deal " +"of necessary information can be found here." +msgstr "" +"Les détails sur l'interface entre Python et le C sont donnés dans ce manuel. " +"Pléthore informations s'y trouvent." + +#: ../Doc/extending/embedding.rst:49 +msgid "Very High Level Embedding" +msgstr "Intégration de très haut niveau" + +#: ../Doc/extending/embedding.rst:51 +msgid "" +"The simplest form of embedding Python is the use of the very high level " +"interface. This interface is intended to execute a Python script without " +"needing to interact with the application directly. This can for example be " +"used to perform some operation on a file. ::" +msgstr "" +"La manière la plus simple d'intégrer Python est d'utiliser une interface de " +"très haut niveau. Cette interface a pour but d'exécuter un script Python " +"sans avoir à interagir avec directement. C'est utile, par exemple, pour " +"effectuer une opération sur un fichier. ::" + +#: ../Doc/extending/embedding.rst:78 +msgid "" +"The :c:func:`Py_SetProgramName` function should be called before :c:func:" +"`Py_Initialize` to inform the interpreter about paths to Python run-time " +"libraries. Next, the Python interpreter is initialized with :c:func:" +"`Py_Initialize`, followed by the execution of a hard-coded Python script " +"that prints the date and time. Afterwards, the :c:func:`Py_FinalizeEx` call " +"shuts the interpreter down, followed by the end of the program. In a real " +"program, you may want to get the Python script from another source, perhaps " +"a text-editor routine, a file, or a database. Getting the Python code from " +"a file can better be done by using the :c:func:`PyRun_SimpleFile` function, " +"which saves you the trouble of allocating memory space and loading the file " +"contents." +msgstr "" +"C'est la fonction :c:func:`Py_SetProgramName` qui devrait être appelée en " +"premier, avant :c:func:`Py_Initialize`, afin d'informer l'interpréteur des " +"chemins vers ses bibliothèques. Ensuite l'interpréteur est initialisé par :c:" +"func:`Py_Initialize`, suivi de l'exécution de Python codé en dur affichant " +"la date et l'heure, puis, l'appel à :c:func:`Py_FinalizeEx` éteint " +"l'interpréteur, engendrant ainsi la fin du programme. Dans un vrai " +"programme, vous pourriez vouloir lire le script Python depuis une autre " +"source, peut être depuis un éditeur de texte, un fichier, ou une base de " +"donnée. Récupérer du code Python depuis un fichier se fait via :c:func:" +"`PyRun_SimplFile`, qui vous économise le travail d'allouer de la mémoire et " +"de charger le contenu du fichier." + +#: ../Doc/extending/embedding.rst:93 +msgid "Beyond Very High Level Embedding: An overview" +msgstr "Au delà de l'intégration de haut niveau: survol" + +#: ../Doc/extending/embedding.rst:95 +msgid "" +"The high level interface gives you the ability to execute arbitrary pieces " +"of Python code from your application, but exchanging data values is quite " +"cumbersome to say the least. If you want that, you should use lower level " +"calls. At the cost of having to write more C code, you can achieve almost " +"anything." +msgstr "" +"L'interface de haut niveau vous permet d'exécuter n'importe quel morceau de " +"code Python depuis votre application, mais échanger des données est quelque " +"peu alambiqué. Si c'est ce dont vous avez besoin, vous devez utiliser des " +"appels de niveau plus bas. Il vous en coûtera plus de lignes de C à écrire, " +"mais vous pourrez presque tout faire." + +#: ../Doc/extending/embedding.rst:100 +msgid "" +"It should be noted that extending Python and embedding Python is quite the " +"same activity, despite the different intent. Most topics discussed in the " +"previous chapters are still valid. To show this, consider what the extension " +"code from Python to C really does:" +msgstr "" +"Il est à souligner qu'étendre ou intégrer Python revient à la louche au " +"même, en dépit de la différence d'intention. La plupart des sujets parcourus " +"dans les chapitres précédents sont toujours valides. Pour le prouver, " +"regardez ce qu'un code d'extension de Python vers C fait réellement :" + +#: ../Doc/extending/embedding.rst:105 +msgid "Convert data values from Python to C," +msgstr "Convertir des valeurs de Python vers le C," + +#: ../Doc/extending/embedding.rst:107 +msgid "Perform a function call to a C routine using the converted values, and" +msgstr "Appeler une fonction C en utilisant les valeurs converties, et" + +#: ../Doc/extending/embedding.rst:109 +msgid "Convert the data values from the call from C to Python." +msgstr "Convertir les résultats de l'appel à la fonction C pour Python." + +#: ../Doc/extending/embedding.rst:111 +msgid "When embedding Python, the interface code does:" +msgstr "Lors de l'intégration de Python, le code de l'interface fait :" + +#: ../Doc/extending/embedding.rst:113 +msgid "Convert data values from C to Python," +msgstr "Convertir les valeurs depuis le C vers Python," + +#: ../Doc/extending/embedding.rst:115 +msgid "" +"Perform a function call to a Python interface routine using the converted " +"values, and" +msgstr "" +"Effectuer un appel de fonction de l'interface Python en utilisant les " +"valeurs converties, et" + +#: ../Doc/extending/embedding.rst:118 +msgid "Convert the data values from the call from Python to C." +msgstr "Convertir les valeurs de l'appel Python pour le C." + +#: ../Doc/extending/embedding.rst:120 +msgid "" +"As you can see, the data conversion steps are simply swapped to accommodate " +"the different direction of the cross-language transfer. The only difference " +"is the routine that you call between both data conversions. When extending, " +"you call a C routine, when embedding, you call a Python routine." +msgstr "" +"Tel que vous le voyez, les conversions sont simplement inversées pour " +"s'adapter au différentes directions de transfert inter-langage. La seule " +"différence est la fonction que vous appelez entre les deux conversions de " +"données. Lors de l'extension, vous appelez une fonction C, lors de " +"l'intégration vous appelez une fonction Python." + +#: ../Doc/extending/embedding.rst:125 +msgid "" +"This chapter will not discuss how to convert data from Python to C and vice " +"versa. Also, proper use of references and dealing with errors is assumed to " +"be understood. Since these aspects do not differ from extending the " +"interpreter, you can refer to earlier chapters for the required information." +msgstr "" +"Ce chapitre ne couvrira pas la conversion des données de Python vers le C ni " +"l'inverse. Aussi, un usage correct des références, ainsi que savoir gérer " +"les erreurs sont considérés acquis. Ces aspects étant identiques à " +"l'extension de l'interpréteur, vous pouvez vous référer aux chapitres " +"précédents." + +#: ../Doc/extending/embedding.rst:134 +msgid "Pure Embedding" +msgstr "Intégration pure" + +#: ../Doc/extending/embedding.rst:136 +msgid "" +"The first program aims to execute a function in a Python script. Like in the " +"section about the very high level interface, the Python interpreter does not " +"directly interact with the application (but that will change in the next " +"section)." +msgstr "" +"L'objectif du premier programme est d'exécuter une fonction dans un script " +"Python. Comme dans la section à propos des interfaces de haut niveau, " +"l'interpréteur n'interagit pas directement avec l'application (mais le fera " +"dans la section suivante)." + +#: ../Doc/extending/embedding.rst:141 +msgid "The code to run a function defined in a Python script is:" +msgstr "Le code pour appeler une fonction définie dans un script Python est :" + +#: ../Doc/extending/embedding.rst:146 +msgid "" +"This code loads a Python script using ``argv[1]``, and calls the function " +"named in ``argv[2]``. Its integer arguments are the other values of the " +"``argv`` array. If you :ref:`compile and link ` this program " +"(let's call the finished executable :program:`call`), and use it to execute " +"a Python script, such as:" +msgstr "" +"Ce code charge un script Python en utilisant ``argv[1]``, et appelle une " +"fonction dont le nom est dans ``argv[2]``. Ses arguments entiers sont les " +"autres valeurs de ``argv``. Si vous :ref:`compilez et liez ` ce " +"programme (appelons l'exécutable :program:`call`), et l'appelez pour " +"exécuter un script Python, tel que :" + +#: ../Doc/extending/embedding.rst:161 +msgid "then the result should be:" +msgstr "alors, le résultat sera:" + +#: ../Doc/extending/embedding.rst:169 +msgid "" +"Although the program is quite large for its functionality, most of the code " +"is for data conversion between Python and C, and for error reporting. The " +"interesting part with respect to embedding Python starts with ::" +msgstr "" +"Bien que le programme soit plutôt gros pour ses fonctionnalités, la plupart " +"du code n'est que conversion de données entre Python et C, aussi que pour " +"rapporter les erreurs. La partie intéressante, qui concerne l'intégration de " +"Python débute par ::" + +#: ../Doc/extending/embedding.rst:178 +msgid "" +"After initializing the interpreter, the script is loaded using :c:func:" +"`PyImport_Import`. This routine needs a Python string as its argument, " +"which is constructed using the :c:func:`PyUnicode_FromString` data " +"conversion routine. ::" +msgstr "" +"Après avoir initialisé l'interpréteur, le script est chargé en utilisant :c:" +"func:`PyImport_Import`. Cette fonction prend une chaîne Python pour " +"argument, elle même construite en utilisant la fonction de conversion :c:" +"func:`PyUnicode_FromString`." + +#: ../Doc/extending/embedding.rst:191 +msgid "" +"Once the script is loaded, the name we're looking for is retrieved using :c:" +"func:`PyObject_GetAttrString`. If the name exists, and the object returned " +"is callable, you can safely assume that it is a function. The program then " +"proceeds by constructing a tuple of arguments as normal. The call to the " +"Python function is then made with::" +msgstr "" +"Une fois le script chargé, le nom recherché est obtenu en utilisant :c:func:" +"`PyObject_GetAttrString`. Si le nom existe, et que l'objet récupéré peut " +"être appelé, vous pouvez présumer sans risque que c'est une fonction. Le " +"programme continue, classiquement, par la construction de n-uplet " +"d'arguments. L'appel à la fonction Python est alors effectué avec ::" + +#: ../Doc/extending/embedding.rst:199 +msgid "" +"Upon return of the function, ``pValue`` is either *NULL* or it contains a " +"reference to the return value of the function. Be sure to release the " +"reference after examining the value." +msgstr "" +"Après l'exécution de la fonction, ``pValue`` est soit *NULL*, soit une " +"référence sur la valeur donnée par la fonction. Assurez-vous de libérer la " +"référence après avoir utilisé la valeur." + +#: ../Doc/extending/embedding.rst:207 +msgid "Extending Embedded Python" +msgstr "Étendre un Python intégré" + +#: ../Doc/extending/embedding.rst:209 +msgid "" +"Until now, the embedded Python interpreter had no access to functionality " +"from the application itself. The Python API allows this by extending the " +"embedded interpreter. That is, the embedded interpreter gets extended with " +"routines provided by the application. While it sounds complex, it is not so " +"bad. Simply forget for a while that the application starts the Python " +"interpreter. Instead, consider the application to be a set of subroutines, " +"and write some glue code that gives Python access to those routines, just " +"like you would write a normal Python extension. For example::" +msgstr "" +"Jusqu'à présent, l'interpréteur Python intégré n'avait pas accès aux " +"fonctionnalités de l'application elle-même. L'API Python le permet en " +"étendant l'interpréteur intégré. Autrement dit, l'interpréteur intégré est " +"étendu avec des fonctions fournies par l'application. Bien que cela puisse " +"sembler complexe, ce n'est pas si dur. Il suffit d'oublier que l'application " +"démarre l'interpréteur Python, au lieu de cela, voyez l'application comme un " +"ensemble de fonctions, et rédigez un peu de code pour exposer ces fonctions " +"à Python, tout comme vous écririez une extension Python normale. Par " +"exemple ::" + +#: ../Doc/extending/embedding.rst:246 +msgid "" +"Insert the above code just above the :c:func:`main` function. Also, insert " +"the following two statements before the call to :c:func:`Py_Initialize`::" +msgstr "" +"Insérez le code ci-dessus juste avant la fonction :c:func:`main`. Ajoutez " +"aussi les deux instructions suivantes avant l'appel à :c:func:" +"`Py_Initialize` ::" + +#: ../Doc/extending/embedding.rst:252 +msgid "" +"These two lines initialize the ``numargs`` variable, and make the :func:`emb." +"numargs` function accessible to the embedded Python interpreter. With these " +"extensions, the Python script can do things like" +msgstr "" +"Ces deux lignes initialisent la variable ``numarg``, et rend la fonction :" +"func:`emb.numargs` accessible à l'interpréteur intégré. Avec ces ajouts, le " +"script Python petit maintenant faire des choses comme" + +#: ../Doc/extending/embedding.rst:261 +msgid "" +"In a real application, the methods will expose an API of the application to " +"Python." +msgstr "" +"Dans un cas réel, les méthodes exposeraient une API de l'application a " +"Python." + +#: ../Doc/extending/embedding.rst:271 +msgid "Embedding Python in C++" +msgstr "Intégrer Python dans du C++" + +#: ../Doc/extending/embedding.rst:273 +msgid "" +"It is also possible to embed Python in a C++ program; precisely how this is " +"done will depend on the details of the C++ system used; in general you will " +"need to write the main program in C++, and use the C++ compiler to compile " +"and link your program. There is no need to recompile Python itself using C+" +"+." +msgstr "" +"Il est aussi possible d'intégrer Python dans un programme en C++, la manière " +"exacte dont cela se fait dépend de détails du système C++ utilisé. En " +"général vous écrirez le programme principal en C++, utiliserez un " +"compilateur C++ pour compiler et lier votre programme. Il n'y a pas besoin " +"de recompiler Python en utilisant C++." + +#: ../Doc/extending/embedding.rst:282 +msgid "Compiling and Linking under Unix-like systems" +msgstr "Compiler et Lier en environnement Unix ou similaire" + +#: ../Doc/extending/embedding.rst:284 +msgid "" +"It is not necessarily trivial to find the right flags to pass to your " +"compiler (and linker) in order to embed the Python interpreter into your " +"application, particularly because Python needs to load library modules " +"implemented as C dynamic extensions (:file:`.so` files) linked against it." +msgstr "" +"Ce n'est pas évident de trouver les bonnes options à passer au compilateur " +"(et *linker*) pour intégrer l'interpréteur Python dans une application, " +"Python ayant besoin de charger des extensions sous forme de bibliothèques " +"dynamiques en C (des :file:`.so`) pour se lier avec." + +#: ../Doc/extending/embedding.rst:290 +msgid "" +"To find out the required compiler and linker flags, you can execute the :" +"file:`python{X.Y}-config` script which is generated as part of the " +"installation process (a :file:`python3-config` script may also be " +"available). This script has several options, of which the following will be " +"directly useful to you:" +msgstr "" +"Pour trouver les bonnes option de compilateur et *linker*, vous pouvez " +"exécuter le script :file:`python(X.Y)-config` généré durant l'installation " +"(un script :file:`python3-config` peut aussi être disponible). Ce script a " +"quelques options, celles-ci vous seront utiles :" + +#: ../Doc/extending/embedding.rst:296 +msgid "" +"``pythonX.Y-config --cflags`` will give you the recommended flags when " +"compiling:" +msgstr "" +"``pythonX.Y-config --cflags`` vous donnera les options recommandées pour " +"compiler:" + +#: ../Doc/extending/embedding.rst:304 +msgid "" +"``pythonX.Y-config --ldflags`` will give you the recommended flags when " +"linking:" +msgstr "" +"``pythonX.Y-config --ldflags`` vous donnera les drapeaux recommandés lors de " +"l'édition de lien:" + +#: ../Doc/extending/embedding.rst:313 +msgid "" +"To avoid confusion between several Python installations (and especially " +"between the system Python and your own compiled Python), it is recommended " +"that you use the absolute path to :file:`python{X.Y}-config`, as in the " +"above example." +msgstr "" +"Pour éviter la confusion entre différentes installations de Python, (et plus " +"spécialement entre celle de votre système et votre version compilée), il est " +"recommandé d'utiliser un chemin absolu vers :file:`python{X.Y}-config`, " +"comme dans l'exemple précédent." + +#: ../Doc/extending/embedding.rst:318 +msgid "" +"If this procedure doesn't work for you (it is not guaranteed to work for all " +"Unix-like platforms; however, we welcome :ref:`bug reports `) you will have to read your system's documentation about dynamic " +"linking and/or examine Python's :file:`Makefile` (use :func:`sysconfig." +"get_makefile_filename` to find its location) and compilation options. In " +"this case, the :mod:`sysconfig` module is a useful tool to programmatically " +"extract the configuration values that you will want to combine together. " +"For example:" +msgstr "" +"Si cette procédure ne fonctionne pas pour vous (il n'est pas garanti qu'elle " +"fonctionne pour toutes les plateformes Unix, mais nous traiteront volontiers " +"les :ref:`rapports de bugs `), vous devrez lire la " +"documentation de votre système sur la liaison dynamique (*dynamic linking*) " +"et / ou examiner le :file:`Makefile` de Python (utilisez :func:`sysconfig." +"get_makefile_filename` pour trouver son emplacement) et les options de " +"compilation. Dans ce cas, le module :mod:`sysconfig` est un outil utile pour " +"extraire automatiquement les valeurs de configuration que vous voudrez " +"combiner ensemble. Par exemple :" diff --git a/extending/extending.po b/extending/extending.po new file mode 100644 index 000000000..ff4cb1c53 --- /dev/null +++ b/extending/extending.po @@ -0,0 +1,1772 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-19 21:54+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.4\n" + +#: ../Doc/extending/extending.rst:8 +msgid "Extending Python with C or C++" +msgstr "Étendre Python en C ou C++" + +#: ../Doc/extending/extending.rst:10 +msgid "" +"It is quite easy to add new built-in modules to Python, if you know how to " +"program in C. Such :dfn:`extension modules` can do two things that can't be " +"done directly in Python: they can implement new built-in object types, and " +"they can call C library functions and system calls." +msgstr "" +"Il est relativement facile d'ajouter de nouveaux modules à Python, si vous " +"savez programmer en C. Ces :dfn:` extension modules` " +"permettent deux choses qui ne sont pas possible directement en Python: Elles " +"peuvent définir de nouveaux types natifs, et peuvent appeler des fonctions " +"de bibliothèques C ou appels systèmes." + +#: ../Doc/extending/extending.rst:15 +msgid "" +"To support extensions, the Python API (Application Programmers Interface) " +"defines a set of functions, macros and variables that provide access to most " +"aspects of the Python run-time system. The Python API is incorporated in a " +"C source file by including the header ``\"Python.h\"``." +msgstr "" +"Pour gérer les extensions, l'API Python (*Application Programmer Interface*) " +"définit un ensemble de fonctions, macros et variables qui donnent accès à la " +"plupart des aspects du système d'exécution de Python. L'API Python est " +"incorporée dans un fichier source C en incluant l'en-tête ``\"Python.h\"``." + +#: ../Doc/extending/extending.rst:20 +msgid "" +"The compilation of an extension module depends on its intended use as well " +"as on your system setup; details are given in later chapters." +msgstr "" +"La compilation d'un module d'extension dépend de l'usage prévu et de la " +"configuration du système, plus de détails peuvent être trouvés dans les " +"chapitres suivants." + +#: ../Doc/extending/extending.rst:25 +msgid "" +"The C extension interface is specific to CPython, and extension modules do " +"not work on other Python implementations. In many cases, it is possible to " +"avoid writing C extensions and preserve portability to other " +"implementations. For example, if your use case is calling C library " +"functions or system calls, you should consider using the :mod:`ctypes` " +"module or the `cffi `_ library rather than " +"writing custom C code. These modules let you write Python code to interface " +"with C code and are more portable between implementations of Python than " +"writing and compiling a C extension module." +msgstr "" +"L'interface d'extension C est spécifique à CPython, et les modules " +"d'extension ne fonctionne pas sur les autres implémentations de Python. Dans " +"de nombreux cas, il est possible d'éviter la rédaction des extensions en C " +"et ainsi préserver la portabilité vers d'autres implémentations. Par " +"exemple, si vous devez appeler une fonction de la bibliothèque C ou faire un " +"appel système, vous devriez envisager d'utiliser le module :mod:`ctypes` ou " +"d'utiliser la bibliothèque `cffi `_ plutôt que " +"d'écrire du code C sur mesure. Ces modules vous permettent d'écrire du code " +"Python s'interfaçant avec le code C et sont plus portables entre les " +"implémentations de Python que l'écriture et la compilation d'une d'extension " +"C." + +#: ../Doc/extending/extending.rst:40 +msgid "A Simple Example" +msgstr "Un exemple simple" + +#: ../Doc/extending/extending.rst:42 +msgid "" +"Let's create an extension module called ``spam`` (the favorite food of Monty " +"Python fans...) and let's say we want to create a Python interface to the C " +"library function :c:func:`system` [#]_. This function takes a null-" +"terminated character string as argument and returns an integer. We want " +"this function to be callable from Python as follows:" +msgstr "" +"Créons un module d'extension appelé ``spam`` (la nourriture préférée de fans " +"des Monty Python ...) et disons que nous voulons créer une interface Python " +"à la fonction de la bibliothèque C :c:func:`system` [#]_. Cette fonction " +"prend une chaîne de caractères terminée par NULL comme argument et renvoie " +"un entier. Nous voulons que cette fonction soit appelable à partir de Python " +"comme suit :" + +#: ../Doc/extending/extending.rst:53 +msgid "" +"Begin by creating a file :file:`spammodule.c`. (Historically, if a module " +"is called ``spam``, the C file containing its implementation is called :file:" +"`spammodule.c`; if the module name is very long, like ``spammify``, the " +"module name can be just :file:`spammify.c`.)" +msgstr "" +"Commencez par créer un fichier :file:`spammodule.c`. (Historiquement, si un " +"module se nomme ``spam``, le fichier C contenant son implémentation est " +"appelé :file:`spammodule.c`. Si le nom du module est très long, comme " +"``spammify``, le nom du module peut être juste :file:`spammify.c`.)" + +#: ../Doc/extending/extending.rst:58 +msgid "The first two lines of our file can be::" +msgstr "Les deux premières lignes de notre fichier peuvent être ::" + +#: ../Doc/extending/extending.rst:63 +msgid "" +"which pulls in the Python API (you can add a comment describing the purpose " +"of the module and a copyright notice if you like)." +msgstr "" +"qui récupère l'API Python (vous pouvez ajouter un commentaire décrivant le " +"but du module et un avis de droit d'auteur si vous le souhaitez)." + +#: ../Doc/extending/extending.rst:68 +msgid "" +"Since Python may define some pre-processor definitions which affect the " +"standard headers on some systems, you *must* include :file:`Python.h` before " +"any standard headers are included." +msgstr "" +"Python pouvant définir certaines définitions pré-processeur qui affectent " +"les têtes standard sur certains systèmes, vous *devez* inclure :file:`Python." +"h` avant les en-têtes standards." + +#: ../Doc/extending/extending.rst:72 +msgid "" +"It is recommended to always define ``PY_SSIZE_T_CLEAN`` before including " +"``Python.h``. See :ref:`parsetuple` for a description of this macro." +msgstr "" +"Il est recommandé de toujours définir ``PY_SSIZE_T_CLEAN`` avant d'inclure " +"``Python.h``. Lisez :ref:`parsetuple` pour avoir une description de cette " +"macro." + +#: ../Doc/extending/extending.rst:75 +msgid "" +"All user-visible symbols defined by :file:`Python.h` have a prefix of ``Py`` " +"or ``PY``, except those defined in standard header files. For convenience, " +"and since they are used extensively by the Python interpreter, ``\"Python.h" +"\"`` includes a few standard header files: ````, ````, " +"````, and ````. If the latter header file does not exist " +"on your system, it declares the functions :c:func:`malloc`, :c:func:`free` " +"and :c:func:`realloc` directly." +msgstr "" +"Tous les symboles exposés par :file:`Python.h` sont préfixés de ``Py`` ou " +"``PY``, sauf ceux qui sont définis dans les en-têtes standard. Pour le " +"confort, et comme ils sont largement utilisés par l'interpréteur Python, ``" +"\"Python.h\"`` inclut lui même quelques d'en-têtes standard : ````, " +"````, ```` et ````. Si ce dernier n'existe pas " +"sur votre système, il déclare les fonctions :c:func:`malloc`, :c:func:`free` " +"et :c:func:`realloc` directement." + +#: ../Doc/extending/extending.rst:83 +msgid "" +"The next thing we add to our module file is the C function that will be " +"called when the Python expression ``spam.system(string)`` is evaluated " +"(we'll see shortly how it ends up being called)::" +msgstr "" +"La prochaine chose que nous ajoutons à notre fichier de module est la " +"fonction C qui sera appelée lorsque l'expression Python ``spam." +"system(chaîne)`` sera évaluée (nous verrons bientôt comment elle finit par " +"être appelée) ::" + +#: ../Doc/extending/extending.rst:99 +msgid "" +"There is a straightforward translation from the argument list in Python (for " +"example, the single expression ``\"ls -l\"``) to the arguments passed to the " +"C function. The C function always has two arguments, conventionally named " +"*self* and *args*." +msgstr "" +"Il y a une correspondance directe de la liste des arguments en Python (par " +"exemple, l'expression ``\"ls -l\"``) aux arguments passés à la fonction C. " +"La fonction C a toujours deux arguments, appelés par convention *self* et " +"*args*." + +#: ../Doc/extending/extending.rst:104 +msgid "" +"The *self* argument points to the module object for module-level functions; " +"for a method it would point to the object instance." +msgstr "" +"Pour les fonctions au niveau du module, l'argument *self* pointe sur l'objet " +"module, pour une méthode, il pointe sur l'instance de l'objet." + +#: ../Doc/extending/extending.rst:107 +msgid "" +"The *args* argument will be a pointer to a Python tuple object containing " +"the arguments. Each item of the tuple corresponds to an argument in the " +"call's argument list. The arguments are Python objects --- in order to do " +"anything with them in our C function we have to convert them to C values. " +"The function :c:func:`PyArg_ParseTuple` in the Python API checks the " +"argument types and converts them to C values. It uses a template string to " +"determine the required types of the arguments as well as the types of the C " +"variables into which to store the converted values. More about this later." +msgstr "" +"L'argument *args* sera un pointeur vers un *tuple* Python contenant les " +"arguments. Chaque élément du *tuple* correspond à un argument dans la liste " +"des arguments de l'appel. Les arguments sont des objets Python --- afin d'en " +"faire quelque chose dans notre fonction C, nous devons les convertir en " +"valeurs C. La fonction :c:func:`PyArg_ParseTuple` de l'API Python vérifie " +"les types des arguments et les convertit en valeurs C. Elle utilise un " +"modèle sous forme de chaîne pour déterminer les types requis des arguments " +"ainsi que les types de variables C dans lequel stocker les valeurs " +"converties. Nous en verront plus, plus tard." + +#: ../Doc/extending/extending.rst:116 +msgid "" +":c:func:`PyArg_ParseTuple` returns true (nonzero) if all arguments have the " +"right type and its components have been stored in the variables whose " +"addresses are passed. It returns false (zero) if an invalid argument list " +"was passed. In the latter case it also raises an appropriate exception so " +"the calling function can return *NULL* immediately (as we saw in the " +"example)." +msgstr "" +":c:func:`PyArg_ParseTuple` renvoie vrai (pas zéro) si tous les arguments ont " +"le bon type et que ses composants ont été stockés dans les variables dont " +"les adresses données. Il renvoie faux (zéro) si une liste d'arguments " +"invalide a été passée. Dans ce dernier cas, elle lève également une " +"exception appropriée de sorte que la fonction d'appel puisse renvoyer *NULL* " +"immédiatement (comme nous l'avons vu dans l'exemple)." + +#: ../Doc/extending/extending.rst:126 +msgid "Intermezzo: Errors and Exceptions" +msgstr "Intermezzo: Les erreurs et exceptions" + +#: ../Doc/extending/extending.rst:128 +msgid "" +"An important convention throughout the Python interpreter is the following: " +"when a function fails, it should set an exception condition and return an " +"error value (usually a *NULL* pointer). Exceptions are stored in a static " +"global variable inside the interpreter; if this variable is *NULL* no " +"exception has occurred. A second global variable stores the \"associated " +"value\" of the exception (the second argument to :keyword:`raise`). A third " +"variable contains the stack traceback in case the error originated in Python " +"code. These three variables are the C equivalents of the result in Python " +"of :meth:`sys.exc_info` (see the section on module :mod:`sys` in the Python " +"Library Reference). It is important to know about them to understand how " +"errors are passed around." +msgstr "" +"Une convention primordiale imprégnant tout l'interpréteur Python est: quand " +"une fonction échoue, elle devrait laisser une exception et renvoyer une " +"valeur d'erreur (typiquement un pointeur *NULL*). Dans l'interpréteur, les " +"exceptions sont stockés dans une variable globale statique, si cette " +"variable est *NULL*, aucune exception n'a eu lieu. Une seconde variable " +"globale stocke la \"valeur associée\" à l'exception (le deuxième argument " +"de :keyword:`raise`). Une troisième variable contient la trace de la pile " +"dans le cas où l'erreur soit survenue dans du code Python. Ces trois " +"variables sont les équivalents C du résultat de :meth:`sys.exc_info` en " +"Python (voir la section sur le module :mod:`sys` dans *The Python Library " +"Reference*). Il est important de les connaître pour comprendre comment les " +"erreurs sont propagées." + +#: ../Doc/extending/extending.rst:139 +msgid "" +"The Python API defines a number of functions to set various types of " +"exceptions." +msgstr "" +"L'API Python définit un certain nombre de fonctions pour créer différents " +"types d'exceptions." + +#: ../Doc/extending/extending.rst:141 +msgid "" +"The most common one is :c:func:`PyErr_SetString`. Its arguments are an " +"exception object and a C string. The exception object is usually a " +"predefined object like :c:data:`PyExc_ZeroDivisionError`. The C string " +"indicates the cause of the error and is converted to a Python string object " +"and stored as the \"associated value\" of the exception." +msgstr "" +"La plus courante est :c:func:`PyErr_SetString`. Ses arguments sont un objet " +"exception et une chaîne C. L'objet exception est généralement un objet " +"prédéfini comme :c:data:`PyExc_ZeroDivisionError`. La chaîne C indique la " +"cause de l'erreur et est convertie en une chaîne Python puis stockée en tant " +"que \"valeur associée\" à l'exception." + +#: ../Doc/extending/extending.rst:147 +msgid "" +"Another useful function is :c:func:`PyErr_SetFromErrno`, which only takes an " +"exception argument and constructs the associated value by inspection of the " +"global variable :c:data:`errno`. The most general function is :c:func:" +"`PyErr_SetObject`, which takes two object arguments, the exception and its " +"associated value. You don't need to :c:func:`Py_INCREF` the objects passed " +"to any of these functions." +msgstr "" +"Une autre fonction utile est :c:func:`PyErr_SetFromErrno`, qui construit une " +"exception à partir de la valeur de la variable globale :c:data:`errno`. La " +"fonction la plus générale est :c:func:`PyErr_SetObject`, qui prend deux " +"arguments: l'exception et sa valeur associée. Vous ne devez pas appliquer :c:" +"func:`Py_INCREF` aux objets transmis à ces fonctions." + +#: ../Doc/extending/extending.rst:154 +msgid "" +"You can test non-destructively whether an exception has been set with :c:" +"func:`PyErr_Occurred`. This returns the current exception object, or *NULL* " +"if no exception has occurred. You normally don't need to call :c:func:" +"`PyErr_Occurred` to see whether an error occurred in a function call, since " +"you should be able to tell from the return value." +msgstr "" +"Vous pouvez tester de manière non destructive si une exception a été levée " +"avec :c:func:`PyErr_Occurred`. Cela renvoie l'objet exception actuel, ou " +"*NULL* si aucune exception n'a eu lieu. Cependant, vous ne devriez pas avoir " +"besoin d'appeler :c:func:`PyErr_Occurred` pour voir si une erreur est " +"survenue durant l'appel d'une fonction, puisque vous devriez être en mesure " +"de le déterminer à partir de la valeur de retour." + +#: ../Doc/extending/extending.rst:160 +msgid "" +"When a function *f* that calls another function *g* detects that the latter " +"fails, *f* should itself return an error value (usually *NULL* or ``-1``). " +"It should *not* call one of the :c:func:`PyErr_\\*` functions --- one has " +"already been called by *g*. *f*'s caller is then supposed to also return an " +"error indication to *its* caller, again *without* calling :c:func:`PyErr_" +"\\*`, and so on --- the most detailed cause of the error was already " +"reported by the function that first detected it. Once the error reaches the " +"Python interpreter's main loop, this aborts the currently executing Python " +"code and tries to find an exception handler specified by the Python " +"programmer." +msgstr "" +"Lorsqu'une fonction *f* ayant appelé une autre fonction *g* détecte que " +"cette dernière a échoué, *f* devrait donner une valeur d'erreur à son tour " +"(habituellement *NULL* ou ``-1``). *f* ne devrait *pas* appeler l'une des " +"fonctions :c:func:`PyErr_\\*`, l'une d'elles ayant déjà été appelée par *g*. " +"La fonction appelant *f* est alors censée renvoyer aussi un code d'erreur à " +"celle qui l'a appelée, toujours sans utiliser :c:func:`PyErr_\\*`, et ainsi " +"de suite. La cause la plus détaillée de l'erreur a déjà été signalée par la " +"fonction l'ayant détectée en premier. Une fois l'erreur remontée à la boucle " +"principale de l'interpréteur Python, il interrompt le code en cours " +"d'exécution et essaie de trouver un gestionnaire d'exception spécifié par le " +"développeur Python." + +#: ../Doc/extending/extending.rst:170 +msgid "" +"(There are situations where a module can actually give a more detailed error " +"message by calling another :c:func:`PyErr_\\*` function, and in such cases " +"it is fine to do so. As a general rule, however, this is not necessary, and " +"can cause information about the cause of the error to be lost: most " +"operations can fail for a variety of reasons.)" +msgstr "" +"(Il y a des situations où un module peut effectivement donner un message " +"d'erreur plus détaillé en appelant une autre fonction :c:func:`PyErr_\\*`, " +"dans de tels cas, il est tout à fait possible de le faire. Cependant, ce " +"n'est généralement pas nécessaire, et peut amener à perdre des informations " +"sur la cause de l'erreur: la plupart des opérations peuvent échouer pour " +"tout un tas de raisons)." + +#: ../Doc/extending/extending.rst:176 +msgid "" +"To ignore an exception set by a function call that failed, the exception " +"condition must be cleared explicitly by calling :c:func:`PyErr_Clear`. The " +"only time C code should call :c:func:`PyErr_Clear` is if it doesn't want to " +"pass the error on to the interpreter but wants to handle it completely by " +"itself (possibly by trying something else, or pretending nothing went wrong)." +msgstr "" +"Pour ignorer une exception qui aurait été émise lors d'un appel de fonction " +"qui aurait échoué, l'exception doit être retirée explicitement en appelant :" +"c:func:`PyErr_Clear`. Le seul cas pour lequel du code C devrait appeler :c:" +"func:`PyErr_Clear` est lorsqu'il ne veut pas passer l'erreur à " +"l'interpréteur, mais souhaite la gérer lui-même (peut-être en essayant " +"quelque chose d'autre, ou en prétendant que rien n'a mal tourné)." + +#: ../Doc/extending/extending.rst:182 +msgid "" +"Every failing :c:func:`malloc` call must be turned into an exception --- the " +"direct caller of :c:func:`malloc` (or :c:func:`realloc`) must call :c:func:" +"`PyErr_NoMemory` and return a failure indicator itself. All the object-" +"creating functions (for example, :c:func:`PyLong_FromLong`) already do this, " +"so this note is only relevant to those who call :c:func:`malloc` directly." +msgstr "" +"Chaque échec de :c:func:`malloc` doit être transformé en une exception --- " +"l'appelant direct de :c:func:`malloc` (ou :c:func:`realloc`) doit appeler :c:" +"func:`PyErr_NoMemory` et prendre l'initiative de renvoyer une valeur " +"d'erreur. Toutes les fonctions construisant des objets (tels que :c:func:" +"`PyLong_FromLong`) le font déjà, donc cette note ne concerne que ceux qui " +"appellent :c:func:`malloc` directement." + +#: ../Doc/extending/extending.rst:188 +msgid "" +"Also note that, with the important exception of :c:func:`PyArg_ParseTuple` " +"and friends, functions that return an integer status usually return a " +"positive value or zero for success and ``-1`` for failure, like Unix system " +"calls." +msgstr "" +"Notez également que, à l'exception notable de :c:func:`PyArg_ParseTuple` et " +"compagnie, les fonctions qui renvoient leur statut sous forme d'entier " +"donnent généralement une valeur positive ou zéro en cas de succès et ``-1`` " +"en cas d'échec, comme les appels du système Unix." + +#: ../Doc/extending/extending.rst:192 +msgid "" +"Finally, be careful to clean up garbage (by making :c:func:`Py_XDECREF` or :" +"c:func:`Py_DECREF` calls for objects you have already created) when you " +"return an error indicator!" +msgstr "" +"Enfin, lorsque vous renvoyez un code d'erreur, n'oubliez pas faire un brin " +"de nettoyage (en appelant :c:func:`Py_XDECREF` ou :c:func:`Py_DECREF` avec " +"les objets que vous auriez déjà créés) !" + +#: ../Doc/extending/extending.rst:196 +msgid "" +"The choice of which exception to raise is entirely yours. There are " +"predeclared C objects corresponding to all built-in Python exceptions, such " +"as :c:data:`PyExc_ZeroDivisionError`, which you can use directly. Of course, " +"you should choose exceptions wisely --- don't use :c:data:`PyExc_TypeError` " +"to mean that a file couldn't be opened (that should probably be :c:data:" +"`PyExc_IOError`). If something's wrong with the argument list, the :c:func:" +"`PyArg_ParseTuple` function usually raises :c:data:`PyExc_TypeError`. If " +"you have an argument whose value must be in a particular range or must " +"satisfy other conditions, :c:data:`PyExc_ValueError` is appropriate." +msgstr "" +"Le choix de l'exception à lever vous incombe. Il existe des objets C " +"correspondant à chaque exception Python, tel que :c:data:" +"`PyExc_ZeroDivisionError`, que vous pouvez utiliser directement. Choisissez " +"judicieusement vos exceptions, typiquement n'utilisez pas :c:data:" +"`PyExc_TypeError` pour indiquer qu'un fichier n'a pas pu être ouvert (qui " +"devrait probablement être :c:data:`PyExc_IOError`). Si quelque chose ne va " +"pas avec la liste des arguments, la fonction :c:func:`PyArg_ParseTuple` lève " +"habituellement une exception :c:data:`PyExc_TypeError`. Mais si vous avez un " +"argument dont la valeur doit être dans un intervalle particulier ou qui doit " +"satisfaire d'autres conditions, :c:data:`PyExc_ValueError` sera plus " +"appropriée." + +#: ../Doc/extending/extending.rst:206 +msgid "" +"You can also define a new exception that is unique to your module. For this, " +"you usually declare a static object variable at the beginning of your file::" +msgstr "" +"Vous pouvez également créer une exception spécifique à votre module. Pour " +"cela, déclarez simplement une variable statique au début de votre fichier ::" + +#: ../Doc/extending/extending.rst:211 +msgid "" +"and initialize it in your module's initialization function (:c:func:" +"`PyInit_spam`) with an exception object (leaving out the error checking for " +"now)::" +msgstr "" +"et initialisez-la dans la fonction d'initialisation de votre module (:c:func:" +"`PyInit_spam`) avec un objet exception (Passons, pour le moment, la " +"vérification des codes d'erreur) ::" + +#: ../Doc/extending/extending.rst:229 +msgid "" +"Note that the Python name for the exception object is :exc:`spam.error`. " +"The :c:func:`PyErr_NewException` function may create a class with the base " +"class being :exc:`Exception` (unless another class is passed in instead of " +"*NULL*), described in :ref:`bltin-exceptions`." +msgstr "" +"Notez que le nom de exception, côté Python, est :exc:`spam.error`. La " +"fonction :c:func:`PyErr_NewException` peut créer une classe héritant de :exc:" +"`Exception` (à moins qu'une autre classe ne lui soit fournie à la place de " +"*NULL*), voir :ref:`bltin-exceptions`." + +#: ../Doc/extending/extending.rst:234 +msgid "" +"Note also that the :c:data:`SpamError` variable retains a reference to the " +"newly created exception class; this is intentional! Since the exception " +"could be removed from the module by external code, an owned reference to the " +"class is needed to ensure that it will not be discarded, causing :c:data:" +"`SpamError` to become a dangling pointer. Should it become a dangling " +"pointer, C code which raises the exception could cause a core dump or other " +"unintended side effects." +msgstr "" +"Notez également que la variable :c:data:`SpamError` contient une référence à " +"la nouvelle classe créée; ceci est intentionnel! Comme l'exception peut être " +"retirée du module par un code externe, une référence à la classe est " +"nécessaire pour assurer qu'il ne sera pas rejeté, causant :c:data:" +"`SpamError` à devenir un pointeur défaillant. S'il devenait un pointeur " +"défaillant, le C code qui lève l'exception peut engendrer un rejet central " +"ou des effets secondaires inattendus." + +#: ../Doc/extending/extending.rst:241 +msgid "" +"We discuss the use of ``PyMODINIT_FUNC`` as a function return type later in " +"this sample." +msgstr "" +"Nous traiterons de l'utilisation de ``PyMODINIT_FUNC`` comme un type de " +"retour de fonction plus tard dans cette section." + +#: ../Doc/extending/extending.rst:244 +msgid "" +"The :exc:`spam.error` exception can be raised in your extension module using " +"a call to :c:func:`PyErr_SetString` as shown below::" +msgstr "" +"L'exception :exc:`spam.error` peut être levée dans votre module d'extension " +"en appelant :c:func:`PyErr_SetString` comme montré ci-dessous ::" + +#: ../Doc/extending/extending.rst:267 +msgid "Back to the Example" +msgstr "Retour vers l'exemple" + +#: ../Doc/extending/extending.rst:269 +msgid "" +"Going back to our example function, you should now be able to understand " +"this statement::" +msgstr "" +"En revenant vers notre fonction exemple, vous devriez maintenant être " +"capable de comprendre cette affirmation ::" + +#: ../Doc/extending/extending.rst:275 +msgid "" +"It returns *NULL* (the error indicator for functions returning object " +"pointers) if an error is detected in the argument list, relying on the " +"exception set by :c:func:`PyArg_ParseTuple`. Otherwise the string value of " +"the argument has been copied to the local variable :c:data:`command`. This " +"is a pointer assignment and you are not supposed to modify the string to " +"which it points (so in Standard C, the variable :c:data:`command` should " +"properly be declared as ``const char *command``)." +msgstr "" +"Elle renvoie *NULL* (l'indicateur d'erreur pour les fonctions renvoyant des " +"pointeurs d'objet) si une erreur est détectée dans la liste des arguments,se " +"fiant à l'exception définie par :c:func:`PyArg_ParseTuple`. Autrement,la " +"valeur chaîne de l'argument a été copiée dans la variable locale :c:data:" +"`command`. Il s'agit d'une attribution de pointeur et vous n'êtes pas " +"supposés modifier la chaîne qui vers laquelle il pointe (donc en C Standard, " +"la variable :c:data:`command` doit être clairement déclarée comme ``const " +"char *command``)." + +#: ../Doc/extending/extending.rst:283 +msgid "" +"The next statement is a call to the Unix function :c:func:`system`, passing " +"it the string we just got from :c:func:`PyArg_ParseTuple`::" +msgstr "" +"La prochaine instruction est un appel à la fonction Unix :c:func:`system`, " +"en lui passant la chaîne que nous venons d'obtenir à partir de :c:func:" +"`PyArg_ParseTuple` ::" + +#: ../Doc/extending/extending.rst:288 +msgid "" +"Our :func:`spam.system` function must return the value of :c:data:`sts` as a " +"Python object. This is done using the function :c:func:`PyLong_FromLong`. ::" +msgstr "" +"Notre fonction :func:`spam.system` doit renvoyer la valeur de :c:data:`sts` " +"comme un objet Python. Cela est effectué par l'utilisation de la fonction :c:" +"func:`PyLong_FromLong`. ::" + +#: ../Doc/extending/extending.rst:293 +msgid "" +"In this case, it will return an integer object. (Yes, even integers are " +"objects on the heap in Python!)" +msgstr "" +"Dans ce cas, elle renverra un objet entier. (Oui, même les entiers sont des " +"objets dans le tas en Python!)" + +#: ../Doc/extending/extending.rst:296 +msgid "" +"If you have a C function that returns no useful argument (a function " +"returning :c:type:`void`), the corresponding Python function must return " +"``None``. You need this idiom to do so (which is implemented by the :c:" +"macro:`Py_RETURN_NONE` macro)::" +msgstr "" +"Si vous avez une fonction C qui ne renvoie aucun argument utile (une " +"fonction renvoyant :c:type:`void`), la fonction Python correspondante doit " +"renvoyer ``None``. Vous aurez besoin de cette locution pour cela (qui est " +"implémentée par la macro :c:macro:`Py_RETURN_NONE`) ::" + +#: ../Doc/extending/extending.rst:304 +msgid "" +":c:data:`Py_None` is the C name for the special Python object ``None``. It " +"is a genuine Python object rather than a *NULL* pointer, which means \"error" +"\" in most contexts, as we have seen." +msgstr "" +":c:data:`Py_None` est le nom C pour l'objet spécial Python ``None``. C'est " +"un authentique objet Python plutôt qu'un pointeur *NULL*, qui signifie " +"qu'une erreur est survenue, dans la plupart des situations, comme nous " +"l'avons vu." + +#: ../Doc/extending/extending.rst:312 +msgid "The Module's Method Table and Initialization Function" +msgstr "La fonction d'initialisation et le tableau des méthodes du module" + +#: ../Doc/extending/extending.rst:314 +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:325 +msgid "" +"Note the third entry (``METH_VARARGS``). This is a flag telling the " +"interpreter the calling convention to be used for the C function. It should " +"normally always be ``METH_VARARGS`` or ``METH_VARARGS | METH_KEYWORDS``; a " +"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:330 +msgid "" +"When using only ``METH_VARARGS``, the function should expect the Python-" +"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:334 +msgid "" +"The :const:`METH_KEYWORDS` bit may be set in the third field if keyword " +"arguments should be passed to the function. In this case, the C function " +"should accept a third ``PyObject *`` parameter which will be a dictionary of " +"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:340 +msgid "" +"The method table must be referenced in the module definition structure::" +msgstr "" +"Le tableau des méthodes doit être référencé dans la structure de définition " +"du module ::" + +#: ../Doc/extending/extending.rst:351 +msgid "" +"This structure, in turn, must be passed to the interpreter in the module's " +"initialization function. The initialization function must be named :c:func:" +"`PyInit_name`, where *name* is the name of the module, and should be the " +"only non-\\ ``static`` item defined in the module file::" +msgstr "" +"Cette structure, à son tour, doit être transmise à l'interpréteur dans la " +"fonction d'initialisation du module. La fonction d'initialisation doit être " +"nommée :c:func:`PyInit_name`, où *nom* est le nom du module, et doit être le " +"seul élément non ``static`` défini dans le fichier du module ::" + +#: ../Doc/extending/extending.rst:362 +msgid "" +"Note that PyMODINIT_FUNC declares the function as ``PyObject *`` return " +"type, declares any special linkage declarations required by the platform, " +"and for C++ declares the function as ``extern \"C\"``." +msgstr "" +"Notez que *PyMODINIT_FUNC* déclare la fonction comme renvoyant un objet de " +"type ``PyObject *``, et déclare également toute déclaration de liaison " +"spéciale requise par la plate-forme, et pour le C++ déclare la fonction " +"comme un C ``extern``." + +#: ../Doc/extending/extending.rst:366 +msgid "" +"When the Python program imports module :mod:`spam` for the first time, :c:" +"func:`PyInit_spam` is called. (See below for comments about embedding " +"Python.) It calls :c:func:`PyModule_Create`, which returns a module object, " +"and inserts built-in function objects into the newly created module based " +"upon the table (an array of :c:type:`PyMethodDef` structures) found in the " +"module definition. :c:func:`PyModule_Create` returns a pointer to the module " +"object that it creates. It may abort with a fatal error for certain errors, " +"or return *NULL* if the module could not be initialized satisfactorily. The " +"init function must return the module object to its caller, so that it then " +"gets inserted into ``sys.modules``." +msgstr "" + +#: ../Doc/extending/extending.rst:377 +msgid "" +"When embedding Python, the :c:func:`PyInit_spam` function is not called " +"automatically unless there's an entry in the :c:data:`PyImport_Inittab` " +"table. To add the module to the initialization table, use :c:func:" +"`PyImport_AppendInittab`, optionally followed by an import of the module::" +msgstr "" +"Lors de l'intégration de Python, la fonction :c:func:`PyInit_spam` n'est pas " +"appelée automatiquement, sauf s'il y a une entrée dans la table :c:data:" +"`PyImport_Inittab`. Pour ajouter le module à la table d'initialisation, " +"utilisez :c:func:`PyImport_AppendInittab`, suivi éventuellement d'une " +"importation du module ::" + +#: ../Doc/extending/extending.rst:413 +msgid "" +"Removing entries from ``sys.modules`` or importing compiled modules into " +"multiple interpreters within a process (or following a :c:func:`fork` " +"without an intervening :c:func:`exec`) can create problems for some " +"extension modules. Extension module authors should exercise caution when " +"initializing internal data structures." +msgstr "" +"Supprimer des entrées de ``sys.modules`` ou importer des modules compilés " +"dans plusieurs interpréteurs au sein d'un processus (ou suivre un :c:func:" +"`fork` sans l'intervention d'un :c:func:`exec`) peut créer des problèmes " +"pour certains modules d'extension. Les auteurs de modules d'extension " +"doivent faire preuve de prudence lorsqu'ils initialisent des structures de " +"données internes." + +#: ../Doc/extending/extending.rst:419 +msgid "" +"A more substantial example module is included in the Python source " +"distribution as :file:`Modules/xxmodule.c`. This file may be used as a " +"template or simply read as an example." +msgstr "" +"Un exemple de module plus substantiel est inclus dans la distribution des " +"sources Python sous le nom :file:`Modules/xxmodule.c`. Ce fichier peut être " +"utilisé comme modèle ou simplement lu comme exemple." + +#: ../Doc/extending/extending.rst:425 +msgid "" +"Unlike our ``spam`` example, ``xxmodule`` uses *multi-phase initialization* " +"(new in Python 3.5), where a PyModuleDef structure is returned from " +"``PyInit_spam``, and creation of the module is left to the import machinery. " +"For details on multi-phase initialization, see :PEP:`489`." +msgstr "" +"Contrairement à notre exemple de ``spam``, ``xxmodule`` utilise une " +"*initialisation multi-phase* (nouveau en Python 3.5), où une structure " +"*PyModuleDef* est renvoyée à partir de ``PyInit_spam``, et la création du " +"module est laissée au mécanisme d'importation. Pour plus de détails sur " +"l'initialisation multi-phase, voir :PEP:`489`." + +#: ../Doc/extending/extending.rst:434 +msgid "Compilation and Linkage" +msgstr "Compilation et liaison" + +#: ../Doc/extending/extending.rst:436 +msgid "" +"There are two more things to do before you can use your new extension: " +"compiling and linking it with the Python system. If you use dynamic " +"loading, the details may depend on the style of dynamic loading your system " +"uses; see the chapters about building extension modules (chapter :ref:" +"`building`) and additional information that pertains only to building on " +"Windows (chapter :ref:`building-on-windows`) for more information about this." +msgstr "" + +#: ../Doc/extending/extending.rst:443 +msgid "" +"If you can't use dynamic loading, or if you want to make your module a " +"permanent part of the Python interpreter, you will have to change the " +"configuration setup and rebuild the interpreter. Luckily, this is very " +"simple on Unix: just place your file (:file:`spammodule.c` for example) in " +"the :file:`Modules/` directory of an unpacked source distribution, add a " +"line to the file :file:`Modules/Setup.local` describing your file:" +msgstr "" + +#: ../Doc/extending/extending.rst:454 +msgid "" +"and rebuild the interpreter by running :program:`make` in the toplevel " +"directory. You can also run :program:`make` in the :file:`Modules/` " +"subdirectory, but then you must first rebuild :file:`Makefile` there by " +"running ':program:`make` Makefile'. (This is necessary each time you change " +"the :file:`Setup` file.)" +msgstr "" + +#: ../Doc/extending/extending.rst:460 +msgid "" +"If your module requires additional libraries to link with, these can be " +"listed on the line in the configuration file as well, for instance:" +msgstr "" + +#: ../Doc/extending/extending.rst:471 +msgid "Calling Python Functions from C" +msgstr "Appeler des fonctions Python en C" + +#: ../Doc/extending/extending.rst:473 +msgid "" +"So far we have concentrated on making C functions callable from Python. The " +"reverse is also useful: calling Python functions from C. This is especially " +"the case for libraries that support so-called \"callback\" functions. If a " +"C interface makes use of callbacks, the equivalent Python often needs to " +"provide a callback mechanism to the Python programmer; the implementation " +"will require calling the Python callback functions from a C callback. Other " +"uses are also imaginable." +msgstr "" + +#: ../Doc/extending/extending.rst:481 +msgid "" +"Fortunately, the Python interpreter is easily called recursively, and there " +"is a standard interface to call a Python function. (I won't dwell on how to " +"call the Python parser with a particular string as input --- if you're " +"interested, have a look at the implementation of the :option:`-c` command " +"line option in :file:`Modules/main.c` from the Python source code.)" +msgstr "" + +#: ../Doc/extending/extending.rst:487 +msgid "" +"Calling a Python function is easy. First, the Python program must somehow " +"pass you the Python function object. You should provide a function (or some " +"other interface) to do this. When this function is called, save a pointer " +"to the Python function object (be careful to :c:func:`Py_INCREF` it!) in a " +"global variable --- or wherever you see fit. For example, the following " +"function might be part of a module definition::" +msgstr "" + +#: ../Doc/extending/extending.rst:517 +msgid "" +"This function must be registered with the interpreter using the :const:" +"`METH_VARARGS` flag; this is described in section :ref:`methodtable`. The :" +"c:func:`PyArg_ParseTuple` function and its arguments are documented in " +"section :ref:`parsetuple`." +msgstr "" +"Cette fonction doit être déclarée en utilisant le drapeau :const:" +"`METH_VARARGS` ; ceci est décrit dans la section :ref:`methodtable`. La " +"fonction :c:func:`PyArg_ParseTuple` et ses arguments sont documentés dans la " +"section :ref:`parsetuple`." + +#: ../Doc/extending/extending.rst:522 +msgid "" +"The macros :c:func:`Py_XINCREF` and :c:func:`Py_XDECREF` increment/decrement " +"the reference count of an object and are safe in the presence of *NULL* " +"pointers (but note that *temp* will not be *NULL* in this context). More " +"info on them in section :ref:`refcounts`." +msgstr "" + +#: ../Doc/extending/extending.rst:529 +msgid "" +"Later, when it is time to call the function, you call the C function :c:func:" +"`PyObject_CallObject`. This function has two arguments, both pointers to " +"arbitrary Python objects: the Python function, and the argument list. The " +"argument list must always be a tuple object, whose length is the number of " +"arguments. To call the Python function with no arguments, pass in NULL, or " +"an empty tuple; to call it with one argument, pass a singleton tuple. :c:" +"func:`Py_BuildValue` returns a tuple when its format string consists of zero " +"or more format codes between parentheses. For example::" +msgstr "" + +#: ../Doc/extending/extending.rst:549 +msgid "" +":c:func:`PyObject_CallObject` returns a Python object pointer: this is the " +"return value of the Python function. :c:func:`PyObject_CallObject` is " +"\"reference-count-neutral\" with respect to its arguments. In the example a " +"new tuple was created to serve as the argument list, which is :c:func:" +"`Py_DECREF`\\ -ed immediately after the :c:func:`PyObject_CallObject` call." +msgstr "" + +#: ../Doc/extending/extending.rst:556 +msgid "" +"The return value of :c:func:`PyObject_CallObject` is \"new\": either it is a " +"brand new object, or it is an existing object whose reference count has been " +"incremented. So, unless you want to save it in a global variable, you " +"should somehow :c:func:`Py_DECREF` the result, even (especially!) if you are " +"not interested in its value." +msgstr "" + +#: ../Doc/extending/extending.rst:562 +msgid "" +"Before you do this, however, it is important to check that the return value " +"isn't *NULL*. If it is, the Python function terminated by raising an " +"exception. If the C code that called :c:func:`PyObject_CallObject` is called " +"from Python, it should now return an error indication to its Python caller, " +"so the interpreter can print a stack trace, or the calling Python code can " +"handle the exception. If this is not possible or desirable, the exception " +"should be cleared by calling :c:func:`PyErr_Clear`. For example::" +msgstr "" + +#: ../Doc/extending/extending.rst:575 +msgid "" +"Depending on the desired interface to the Python callback function, you may " +"also have to provide an argument list to :c:func:`PyObject_CallObject`. In " +"some cases the argument list is also provided by the Python program, through " +"the same interface that specified the callback function. It can then be " +"saved and used in the same manner as the function object. In other cases, " +"you may have to construct a new tuple to pass as the argument list. The " +"simplest way to do this is to call :c:func:`Py_BuildValue`. For example, if " +"you want to pass an integral event code, you might use the following code::" +msgstr "" +"Selon l'interface souhaitée pour la fonction de rappel Python, vous devrez " +"peut-être aussi fournir une liste d'arguments à :c:func:" +"`PyObject_CallObject`. Dans certains cas, la liste d'arguments est également " +"fournie par le programme Python, par l'intermédiaire de la même interface " +"qui a spécifié la fonction de rappel. Elle peut alors être sauvegardée et " +"utilisée de la même manière que l'objet fonction. Dans d'autres cas, vous " +"pouvez avoir à construire un nouveau n-uplet à passer comme liste " +"d'arguments. La façon la plus simple de faire cela est d'appeler :c:func:" +"`Py_BuildValue`. Par exemple, si vous voulez passer un code d'événement " +"intégral, vous pouvez utiliser le code suivant ::" + +#: ../Doc/extending/extending.rst:594 +msgid "" +"Note the placement of ``Py_DECREF(arglist)`` immediately after the call, " +"before the error check! Also note that strictly speaking this code is not " +"complete: :c:func:`Py_BuildValue` may run out of memory, and this should be " +"checked." +msgstr "" + +#: ../Doc/extending/extending.rst:598 +msgid "" +"You may also call a function with keyword arguments by using :c:func:" +"`PyObject_Call`, which supports arguments and keyword arguments. As in the " +"above example, we use :c:func:`Py_BuildValue` to construct the dictionary. ::" +msgstr "" +"Vous pouvez également appeler une fonction avec des arguments nommés en " +"utilisant :c:func:`PyObject_Call`, qui accepte les arguments et les " +"arguments nommés. Comme dans l'exemple ci-dessus, nous utilisons :c:func:" +"`Py_BuildValue` pour construire le dictionnaire. ::" + +#: ../Doc/extending/extending.rst:616 +msgid "Extracting Parameters in Extension Functions" +msgstr "Extraire des paramètres dans des fonctions d'extension" + +#: ../Doc/extending/extending.rst:620 +msgid "The :c:func:`PyArg_ParseTuple` function is declared as follows::" +msgstr "La fonction :c:func:`PyArg_ParseTuple` est déclarée ainsi ::" + +#: ../Doc/extending/extending.rst:624 +msgid "" +"The *arg* argument must be a tuple object containing an argument list passed " +"from Python to a C function. The *format* argument must be a format string, " +"whose syntax is explained in :ref:`arg-parsing` in the Python/C API " +"Reference Manual. The remaining arguments must be addresses of variables " +"whose type is determined by the format string." +msgstr "" + +#: ../Doc/extending/extending.rst:630 +msgid "" +"Note that while :c:func:`PyArg_ParseTuple` checks that the Python arguments " +"have the required types, it cannot check the validity of the addresses of C " +"variables passed to the call: if you make mistakes there, your code will " +"probably crash or at least overwrite random bits in memory. So be careful!" +msgstr "" + +#: ../Doc/extending/extending.rst:635 +msgid "" +"Note that any Python object references which are provided to the caller are " +"*borrowed* references; do not decrement their reference count!" +msgstr "" +"Notez que n'importe quelles références sur un objet Python qui sont données " +"à l'appelant sont des références *empruntées* ; ne décrémentez pas leur " +"compteur de références !" + +#: ../Doc/extending/extending.rst:638 +msgid "Some example calls::" +msgstr "Quelques exemples d'appels ::" + +#: ../Doc/extending/extending.rst:708 +msgid "Keyword Parameters for Extension Functions" +msgstr "Paramètres nommés pour des fonctions d'extension" + +#: ../Doc/extending/extending.rst:712 +msgid "" +"The :c:func:`PyArg_ParseTupleAndKeywords` function is declared as follows::" +msgstr "" +"La fonction :c:func:`PyArg_ParseTupleAndKeywords` est déclarée ainsi ::" + +#: ../Doc/extending/extending.rst:717 +msgid "" +"The *arg* and *format* parameters are identical to those of the :c:func:" +"`PyArg_ParseTuple` function. The *kwdict* parameter is the dictionary of " +"keywords received as the third parameter from the Python runtime. The " +"*kwlist* parameter is a *NULL*-terminated list of strings which identify the " +"parameters; the names are matched with the type information from *format* " +"from left to right. On success, :c:func:`PyArg_ParseTupleAndKeywords` " +"returns true, otherwise it returns false and raises an appropriate exception." +msgstr "" + +#: ../Doc/extending/extending.rst:727 +msgid "" +"Nested tuples cannot be parsed when using keyword arguments! Keyword " +"parameters passed in which are not present in the *kwlist* will cause :exc:" +"`TypeError` to be raised." +msgstr "" +"Les n-uplets imbriqués ne peuvent pas être traités lorsqu'on utilise des " +"arguments de type mot-clé ! Ceux-ci doivent apparaître dans dans *kwlist*, " +"dans le cas contraire une exception :exc:`TypeError` est levée." + +#: ../Doc/extending/extending.rst:733 +msgid "" +"Here is an example module which uses keywords, based on an example by Geoff " +"Philbrick (philbrick@hks.com)::" +msgstr "" +"Voici un exemple de module qui utilise des mots-clés, basé sur un exemple de " +"*Geoff Philbrick* (philbrick@hks.com) ::" + +#: ../Doc/extending/extending.rst:788 +msgid "Building Arbitrary Values" +msgstr "Créer des valeurs arbitraires" + +#: ../Doc/extending/extending.rst:790 +msgid "" +"This function is the counterpart to :c:func:`PyArg_ParseTuple`. It is " +"declared as follows::" +msgstr "" +"Cette fonction est le complément de :c:func:`PyArg_ParseTuple`. Elle est " +"déclarée comme suit ::" + +#: ../Doc/extending/extending.rst:795 +msgid "" +"It recognizes a set of format units similar to the ones recognized by :c:" +"func:`PyArg_ParseTuple`, but the arguments (which are input to the function, " +"not output) must not be pointers, just values. It returns a new Python " +"object, suitable for returning from a C function called from Python." +msgstr "" +"Il reconnaît un ensemble d'unités de format similaires à celles reconnues " +"par :c:func:`PyArg_ParseTuple`, mais les arguments (qui sont les données en " +"entrée de fonction, et non de la sortie) ne doivent pas être des pointeurs, " +"mais juste des valeurs. Il renvoie un nouvel objet Python, adapté pour être " +"renvoyé par une fonction C appelée depuis Python." + +#: ../Doc/extending/extending.rst:800 +msgid "" +"One difference with :c:func:`PyArg_ParseTuple`: while the latter requires " +"its first argument to be a tuple (since Python argument lists are always " +"represented as tuples internally), :c:func:`Py_BuildValue` does not always " +"build a tuple. It builds a tuple only if its format string contains two or " +"more format units. If the format string is empty, it returns ``None``; if it " +"contains exactly one format unit, it returns whatever object is described by " +"that format unit. To force it to return a tuple of size 0 or one, " +"parenthesize the format string." +msgstr "" + +#: ../Doc/extending/extending.rst:808 +msgid "" +"Examples (to the left the call, to the right the resulting Python value):" +msgstr "" +"Exemples (à gauche l'appel, à droite la valeur résultante, en Python) :" + +#: ../Doc/extending/extending.rst:834 +msgid "Reference Counts" +msgstr "Compteurs de références" + +#: ../Doc/extending/extending.rst:836 +msgid "" +"In languages like C or C++, the programmer is responsible for dynamic " +"allocation and deallocation of memory on the heap. In C, this is done using " +"the functions :c:func:`malloc` and :c:func:`free`. In C++, the operators " +"``new`` and ``delete`` are used with essentially the same meaning and we'll " +"restrict the following discussion to the C case." +msgstr "" +"Dans les langages comme le C ou le C++, le développeur est responsable de " +"l'allocation dynamique et de la dés-allocation de la mémoire sur le tas. En " +"C, cela se fait à l'aide des fonctions :c:func:`malloc` et :c:func:`free`. " +"En C++, les opérateurs ``new`` et ``delete`` sont utilisés avec " +"essentiellement la même signification et nous limiterons la discussion " +"suivante au cas du C." + +#: ../Doc/extending/extending.rst:842 +msgid "" +"Every block of memory allocated with :c:func:`malloc` should eventually be " +"returned to the pool of available memory by exactly one call to :c:func:" +"`free`. It is important to call :c:func:`free` at the right time. If a " +"block's address is forgotten but :c:func:`free` is not called for it, the " +"memory it occupies cannot be reused until the program terminates. This is " +"called a :dfn:`memory leak`. On the other hand, if a program calls :c:func:" +"`free` for a block and then continues to use the block, it creates a " +"conflict with re-use of the block through another :c:func:`malloc` call. " +"This is called :dfn:`using freed memory`. It has the same bad consequences " +"as referencing uninitialized data --- core dumps, wrong results, mysterious " +"crashes." +msgstr "" + +#: ../Doc/extending/extending.rst:853 +msgid "" +"Common causes of memory leaks are unusual paths through the code. For " +"instance, a function may allocate a block of memory, do some calculation, " +"and then free the block again. Now a change in the requirements for the " +"function may add a test to the calculation that detects an error condition " +"and can return prematurely from the function. It's easy to forget to free " +"the allocated memory block when taking this premature exit, especially when " +"it is added later to the code. Such leaks, once introduced, often go " +"undetected for a long time: the error exit is taken only in a small fraction " +"of all calls, and most modern machines have plenty of virtual memory, so the " +"leak only becomes apparent in a long-running process that uses the leaking " +"function frequently. Therefore, it's important to prevent leaks from " +"happening by having a coding convention or strategy that minimizes this kind " +"of errors." +msgstr "" + +#: ../Doc/extending/extending.rst:866 +msgid "" +"Since Python makes heavy use of :c:func:`malloc` and :c:func:`free`, it " +"needs a strategy to avoid memory leaks as well as the use of freed memory. " +"The chosen method is called :dfn:`reference counting`. The principle is " +"simple: every object contains a counter, which is incremented when a " +"reference to the object is stored somewhere, and which is decremented when a " +"reference to it is deleted. When the counter reaches zero, the last " +"reference to the object has been deleted and the object is freed." +msgstr "" +"Comme Python fait un usage intensif de :c:func:`malloc` et de :c:func:" +"`free`, il a besoin d'une stratégie pour éviter les fuites de mémoire ainsi " +"que l'utilisation de la mémoire libérée. La méthode choisie est appelée :dfn:" +"`reference counting`. Le principe est simple : chaque objet contient un " +"compteur, qui est incrémenté lorsqu'une référence à l'objet est stockée " +"quelque part, et qui est décrémenté lorsqu'une référence à celui-ci est " +"supprimée. Lorsque le compteur atteint zéro, la dernière référence à l'objet " +"a été supprimée et l'objet est libéré." + +#: ../Doc/extending/extending.rst:874 +msgid "" +"An alternative strategy is called :dfn:`automatic garbage collection`. " +"(Sometimes, reference counting is also referred to as a garbage collection " +"strategy, hence my use of \"automatic\" to distinguish the two.) The big " +"advantage of automatic garbage collection is that the user doesn't need to " +"call :c:func:`free` explicitly. (Another claimed advantage is an " +"improvement in speed or memory usage --- this is no hard fact however.) The " +"disadvantage is that for C, there is no truly portable automatic garbage " +"collector, while reference counting can be implemented portably (as long as " +"the functions :c:func:`malloc` and :c:func:`free` are available --- which " +"the C Standard guarantees). Maybe some day a sufficiently portable automatic " +"garbage collector will be available for C. Until then, we'll have to live " +"with reference counts." +msgstr "" +"Une stratégie alternative est appelée :dfn:`automatic garbage collection` " +"(ramasse-miettes). Parfois, le comptage des références est également appelé " +"stratégie de ramasse-miettes, d'où l'utilisation du terme \"automatique\" " +"pour distinguer les deux. Le grand avantage du ramasse-miettes est que " +"l'utilisateur n'a pas besoin d'appeler :c:func:`free` explicitement. (Un " +"autre avantage important est l'amélioration de la vitesse ou de " +"l'utilisation de la mémoire, ce n'est cependant pas un fait avéré). " +"L'inconvénient est que pour C, il n'y a pas de ramasse-miettes portable " +"proprement-dit, alors que le comptage des références peut être implémenté de " +"façon portable (tant que les fonctions :c:func:`malloc` et :c:func:`free` " +"soient disponibles, ce que la norme C garantit). Peut-être qu'un jour un " +"ramasse-miettes suffisamment portable sera disponible pour C. D'ici là, nous " +"devrons utiliser les compteurs des références." + +#: ../Doc/extending/extending.rst:886 +msgid "" +"While Python uses the traditional reference counting implementation, it also " +"offers a cycle detector that works to detect reference cycles. This allows " +"applications to not worry about creating direct or indirect circular " +"references; these are the weakness of garbage collection implemented using " +"only reference counting. Reference cycles consist of objects which contain " +"(possibly indirect) references to themselves, so that each object in the " +"cycle has a reference count which is non-zero. Typical reference counting " +"implementations are not able to reclaim the memory belonging to any objects " +"in a reference cycle, or referenced from the objects in the cycle, even " +"though there are no further references to the cycle itself." +msgstr "" +"Bien que Python utilise l'implémentation traditionnelle de comptage de " +"référence, il contient également un détecteur de cycles qui fonctionne pour " +"détecter les cycles de référence. Cela permet aux applications d'empêcher la " +"création de références circulaires directes ou indirectes ; ceci sont les " +"faiblesses du ramasse-miettes mis en œuvre en utilisant uniquement le " +"comptage de référence. Les cycles de référence sont constitués d'objets qui " +"contiennent des références (éventuellement indirectes) à eux-mêmes, de sorte " +"que chaque objet du cycle a un comptage de référence qui n'est pas nul. Les " +"implémentations typiques de comptage de référence ne sont pas capables de " +"récupérer la mémoire appartenant à des objets dans un cycle de référence, ou " +"référencés à partir des objets dans le cycle, même s'il n'y a pas d'autres " +"références au cycle lui-même." + +#: ../Doc/extending/extending.rst:897 +msgid "" +"The cycle detector is able to detect garbage cycles and can reclaim them. " +"The :mod:`gc` module exposes a way to run the detector (the :func:`~gc." +"collect` function), as well as configuration interfaces and the ability to " +"disable the detector at runtime. The cycle detector is considered an " +"optional component; though it is included by default, it can be disabled at " +"build time using the :option:`!--without-cycle-gc` option to the :program:" +"`configure` script on Unix platforms (including Mac OS X). If the cycle " +"detector is disabled in this way, the :mod:`gc` module will not be available." +msgstr "" + +#: ../Doc/extending/extending.rst:911 +msgid "Reference Counting in Python" +msgstr "Comptage de références en Python" + +#: ../Doc/extending/extending.rst:913 +msgid "" +"There are two macros, ``Py_INCREF(x)`` and ``Py_DECREF(x)``, which handle " +"the incrementing and decrementing of the reference count. :c:func:" +"`Py_DECREF` also frees the object when the count reaches zero. For " +"flexibility, it doesn't call :c:func:`free` directly --- rather, it makes a " +"call through a function pointer in the object's :dfn:`type object`. For " +"this purpose (and others), every object also contains a pointer to its type " +"object." +msgstr "" +"Il existe deux macros, ``Py_INCREF(x)`` et ``Py_DECREF(x)``, qui gèrent " +"l'incrémentation et la décrémentation du comptage de référence. :c:func:" +"`Py_DECREF` libère également l'objet lorsque le comptage atteint zéro. Pour " +"plus de flexibilité, il n'appelle pas :c:func:`free` directement — plutôt, " +"il fait un appel à travers un pointeur de fonction dans l'objet :dfn:`type " +"objet` de l'objet. À cette fin (et pour d'autres), chaque objet contient " +"également un pointeur vers son objet type." + +#: ../Doc/extending/extending.rst:920 +msgid "" +"The big question now remains: when to use ``Py_INCREF(x)`` and " +"``Py_DECREF(x)``? Let's first introduce some terms. Nobody \"owns\" an " +"object; however, you can :dfn:`own a reference` to an object. An object's " +"reference count is now defined as the number of owned references to it. The " +"owner of a reference is responsible for calling :c:func:`Py_DECREF` when the " +"reference is no longer needed. Ownership of a reference can be " +"transferred. There are three ways to dispose of an owned reference: pass it " +"on, store it, or call :c:func:`Py_DECREF`. Forgetting to dispose of an owned " +"reference creates a memory leak." +msgstr "" +"La grande question demeure maintenant : quand utiliser ``Py_INCREF(x)`` et " +"``Py_DECREF(x)`` ? Commençons par définir quelques termes. Personne ne " +"possède un objet, mais vous pouvez en :dfn:`avoir une référence`. Le " +"comptage de références d'un objet est maintenant défini comme étant le " +"nombre de références à cet objet. Le propriétaire d'une référence est " +"responsable d'appeler :c:func:`Py_DECREF` lorsque la référence n'est plus " +"nécessaire. La propriété d'une référence peut être transférée. Il y a trois " +"façons de disposer d'une référence : la transmettre, la stocker, ou appeler :" +"c:func:`Py_DECREF`. Oublier de se débarrasser d'une référence crée une fuite " +"de mémoire." + +#: ../Doc/extending/extending.rst:929 +msgid "" +"It is also possible to :dfn:`borrow` [#]_ a reference to an object. The " +"borrower of a reference should not call :c:func:`Py_DECREF`. The borrower " +"must not hold on to the object longer than the owner from which it was " +"borrowed. Using a borrowed reference after the owner has disposed of it " +"risks using freed memory and should be avoided completely [#]_." +msgstr "" + +#: ../Doc/extending/extending.rst:935 +msgid "" +"The advantage of borrowing over owning a reference is that you don't need to " +"take care of disposing of the reference on all possible paths through the " +"code --- in other words, with a borrowed reference you don't run the risk of " +"leaking when a premature exit is taken. The disadvantage of borrowing over " +"owning is that there are some subtle situations where in seemingly correct " +"code a borrowed reference can be used after the owner from which it was " +"borrowed has in fact disposed of it." +msgstr "" +"L'avantage d'emprunter, plutôt qu'être propriétaire d'une référence est que " +"vous n'avez pas à vous soucier de disposer de la référence sur tous les " +"chemins possibles dans le code — en d'autres termes, avec une référence " +"empruntée, vous ne courez pas le risque de fuites lors d'une sortie " +"prématurée. L'inconvénient de l'emprunt par rapport à la possession est " +"qu'il existe certaines situations subtiles où, dans un code apparemment " +"correct, une référence empruntée peut être utilisée après que le " +"propriétaire auquel elle a été empruntée l'a en fait éliminée." + +#: ../Doc/extending/extending.rst:943 +msgid "" +"A borrowed reference can be changed into an owned reference by calling :c:" +"func:`Py_INCREF`. This does not affect the status of the owner from which " +"the reference was borrowed --- it creates a new owned reference, and gives " +"full owner responsibilities (the new owner must dispose of the reference " +"properly, as well as the previous owner)." +msgstr "" + +#: ../Doc/extending/extending.rst:953 +msgid "Ownership Rules" +msgstr "Règles concernant la propriété de références" + +#: ../Doc/extending/extending.rst:955 +msgid "" +"Whenever an object reference is passed into or out of a function, it is part " +"of the function's interface specification whether ownership is transferred " +"with the reference or not." +msgstr "" +"Chaque fois qu'une référence d'objet est passée à l'intérieur ou à " +"l'extérieur d'une fonction, elle fait partie de la spécification de " +"l'interface de la fonction, peu importe que la propriété soit transférée " +"avec la référence ou non." + +#: ../Doc/extending/extending.rst:959 +msgid "" +"Most functions that return a reference to an object pass on ownership with " +"the reference. In particular, all functions whose function it is to create " +"a new object, such as :c:func:`PyLong_FromLong` and :c:func:`Py_BuildValue`, " +"pass ownership to the receiver. Even if the object is not actually new, you " +"still receive ownership of a new reference to that object. For instance, :c:" +"func:`PyLong_FromLong` maintains a cache of popular values and can return a " +"reference to a cached item." +msgstr "" + +#: ../Doc/extending/extending.rst:967 +msgid "" +"Many functions that extract objects from other objects also transfer " +"ownership with the reference, for instance :c:func:" +"`PyObject_GetAttrString`. The picture is less clear, here, however, since a " +"few common routines are exceptions: :c:func:`PyTuple_GetItem`, :c:func:" +"`PyList_GetItem`, :c:func:`PyDict_GetItem`, and :c:func:" +"`PyDict_GetItemString` all return references that you borrow from the tuple, " +"list or dictionary." +msgstr "" + +#: ../Doc/extending/extending.rst:974 +msgid "" +"The function :c:func:`PyImport_AddModule` also returns a borrowed reference, " +"even though it may actually create the object it returns: this is possible " +"because an owned reference to the object is stored in ``sys.modules``." +msgstr "" + +#: ../Doc/extending/extending.rst:978 +msgid "" +"When you pass an object reference into another function, in general, the " +"function borrows the reference from you --- if it needs to store it, it will " +"use :c:func:`Py_INCREF` to become an independent owner. There are exactly " +"two important exceptions to this rule: :c:func:`PyTuple_SetItem` and :c:func:" +"`PyList_SetItem`. These functions take over ownership of the item passed to " +"them --- even if they fail! (Note that :c:func:`PyDict_SetItem` and friends " +"don't take over ownership --- they are \"normal.\")" +msgstr "" + +#: ../Doc/extending/extending.rst:986 +msgid "" +"When a C function is called from Python, it borrows references to its " +"arguments from the caller. The caller owns a reference to the object, so " +"the borrowed reference's lifetime is guaranteed until the function returns. " +"Only when such a borrowed reference must be stored or passed on, it must be " +"turned into an owned reference by calling :c:func:`Py_INCREF`." +msgstr "" + +#: ../Doc/extending/extending.rst:992 +msgid "" +"The object reference returned from a C function that is called from Python " +"must be an owned reference --- ownership is transferred from the function to " +"its caller." +msgstr "" + +#: ../Doc/extending/extending.rst:1000 +msgid "Thin Ice" +msgstr "Terrain dangereux" + +#: ../Doc/extending/extending.rst:1002 +msgid "" +"There are a few situations where seemingly harmless use of a borrowed " +"reference can lead to problems. These all have to do with implicit " +"invocations of the interpreter, which can cause the owner of a reference to " +"dispose of it." +msgstr "" +"Il existe quelques situations où l'utilisation apparemment inoffensive d'une " +"référence empruntée peut entraîner des problèmes. Tous ces problèmes sont en " +"lien avec des invocations implicites de l’interpréteur, et peuvent amener le " +"propriétaire d'une référence à s'en défaire." + +#: ../Doc/extending/extending.rst:1006 +msgid "" +"The first and most important case to know about is using :c:func:`Py_DECREF` " +"on an unrelated object while borrowing a reference to a list item. For " +"instance::" +msgstr "" +"Le premier cas, et le plus important à connaître, est celui de l'application " +"de :c:func:`Py_DECREF` à un objet non relié, tout en empruntant une " +"référence à un élément de liste. Par exemple ::" + +#: ../Doc/extending/extending.rst:1018 +msgid "" +"This function first borrows a reference to ``list[0]``, then replaces " +"``list[1]`` with the value ``0``, and finally prints the borrowed reference. " +"Looks harmless, right? But it's not!" +msgstr "" +"Cette fonction emprunte d'abord une référence à ``list[0]``, puis remplace " +"``list[1]`` par la valeur ``0``, et enfin affiche la référence empruntée. " +"Ça a l'air inoffensif, n'est-ce pas ? Mais ce n'est pas le cas !" + +#: ../Doc/extending/extending.rst:1022 +msgid "" +"Let's follow the control flow into :c:func:`PyList_SetItem`. The list owns " +"references to all its items, so when item 1 is replaced, it has to dispose " +"of the original item 1. Now let's suppose the original item 1 was an " +"instance of a user-defined class, and let's further suppose that the class " +"defined a :meth:`__del__` method. If this class instance has a reference " +"count of 1, disposing of it will call its :meth:`__del__` method." +msgstr "" +"Suivons le flux de contrôle dans :c:func:`PyList_SetItem`. La liste possède " +"des références à tous ses éléments, donc quand l'élément 1 est remplacé, " +"elle doit se débarrasser de l'élément 1 original. Supposons maintenant que " +"l'élément 1 original était une instance d'une classe définie par " +"l'utilisateur, et supposons en outre que la classe définisse une méthode :" +"meth:`__del__`. Si l'instance de cette classe a un nombre des références de " +"1, sa destruction appellera sa méthode :meth:`__del__`." + +#: ../Doc/extending/extending.rst:1029 +msgid "" +"Since it is written in Python, the :meth:`__del__` method can execute " +"arbitrary Python code. Could it perhaps do something to invalidate the " +"reference to ``item`` in :c:func:`bug`? You bet! Assuming that the list " +"passed into :c:func:`bug` is accessible to the :meth:`__del__` method, it " +"could execute a statement to the effect of ``del list[0]``, and assuming " +"this was the last reference to that object, it would free the memory " +"associated with it, thereby invalidating ``item``." +msgstr "" +"Comme elle est écrite en Python, la méthode :meth:`__del__` peut exécuter du " +"code Python arbitraire. Pourrait-elle faire quelque chose pour invalider la " +"référence à ``item`` dans :c:func:`bug` ? Bien sûr ! En supposant que la " +"liste passée dans :c:func:`bug` est accessible à la méthode :meth:`__del__`, " +"elle pourrait exécuter une instruction à l'effet de ``del list[0]``, et en " +"supposant que ce soit la dernière référence à cet objet, elle libérerait la " +"mémoire qui lui est associée, invalidant ainsi ``item``." + +#: ../Doc/extending/extending.rst:1037 +msgid "" +"The solution, once you know the source of the problem, is easy: temporarily " +"increment the reference count. The correct version of the function reads::" +msgstr "" + +#: ../Doc/extending/extending.rst:1051 +msgid "" +"This is a true story. An older version of Python contained variants of this " +"bug and someone spent a considerable amount of time in a C debugger to " +"figure out why his :meth:`__del__` methods would fail..." +msgstr "" + +#: ../Doc/extending/extending.rst:1055 +msgid "" +"The second case of problems with a borrowed reference is a variant involving " +"threads. Normally, multiple threads in the Python interpreter can't get in " +"each other's way, because there is a global lock protecting Python's entire " +"object space. However, it is possible to temporarily release this lock " +"using the macro :c:macro:`Py_BEGIN_ALLOW_THREADS`, and to re-acquire it " +"using :c:macro:`Py_END_ALLOW_THREADS`. This is common around blocking I/O " +"calls, to let other threads use the processor while waiting for the I/O to " +"complete. Obviously, the following function has the same problem as the " +"previous one::" +msgstr "" +"Le deuxième cas de problèmes liés à une référence empruntée est une variante " +"impliquant des fils de discussion. Normalement, plusieurs threads dans " +"l'interpréteur Python ne peuvent pas se gêner mutuellement, car il existe un " +"verrou global protégeant tout l'espace objet de Python. Cependant, il est " +"possible de libérer temporairement ce verrou en utilisant la macro :c:macro:" +"`Py_BEGIN_ALLOW_THREADS`, et de le ré-acquérir en utilisant :c:macro:" +"`Py_END_ALLOW_THREADS`. Ceci est un procédé courant pour bloquer les appels " +"d'entrées/sorties, afin de permettre aux autres threads d'utiliser le " +"processeur en attendant que les E/S soient terminées. Évidemment, la " +"fonction suivante a le même problème que la précédente ::" + +#: ../Doc/extending/extending.rst:1078 +msgid "NULL Pointers" +msgstr "Pointeurs ``NULL``" + +#: ../Doc/extending/extending.rst:1080 +msgid "" +"In general, functions that take object references as arguments do not expect " +"you to pass them *NULL* pointers, and will dump core (or cause later core " +"dumps) if you do so. Functions that return object references generally " +"return *NULL* only to indicate that an exception occurred. The reason for " +"not testing for *NULL* arguments is that functions often pass the objects " +"they receive on to other function --- if each function were to test for " +"*NULL*, there would be a lot of redundant tests and the code would run more " +"slowly." +msgstr "" + +#: ../Doc/extending/extending.rst:1088 +msgid "" +"It is better to test for *NULL* only at the \"source:\" when a pointer that " +"may be *NULL* is received, for example, from :c:func:`malloc` or from a " +"function that may raise an exception." +msgstr "" + +#: ../Doc/extending/extending.rst:1092 +msgid "" +"The macros :c:func:`Py_INCREF` and :c:func:`Py_DECREF` do not check for " +"*NULL* pointers --- however, their variants :c:func:`Py_XINCREF` and :c:func:" +"`Py_XDECREF` do." +msgstr "" + +#: ../Doc/extending/extending.rst:1096 +msgid "" +"The macros for checking for a particular object type (``Pytype_Check()``) " +"don't check for *NULL* pointers --- again, there is much code that calls " +"several of these in a row to test an object against various different " +"expected types, and this would generate redundant tests. There are no " +"variants with *NULL* checking." +msgstr "" + +#: ../Doc/extending/extending.rst:1102 +msgid "" +"The C function calling mechanism guarantees that the argument list passed to " +"C functions (``args`` in the examples) is never *NULL* --- in fact it " +"guarantees that it is always a tuple [#]_." +msgstr "" + +#: ../Doc/extending/extending.rst:1106 +msgid "" +"It is a severe error to ever let a *NULL* pointer \"escape\" to the Python " +"user." +msgstr "" + +#: ../Doc/extending/extending.rst:1117 +msgid "Writing Extensions in C++" +msgstr "Écrire des extensions en C++" + +#: ../Doc/extending/extending.rst:1119 +msgid "" +"It is possible to write extension modules in C++. Some restrictions apply. " +"If the main program (the Python interpreter) is compiled and linked by the C " +"compiler, global or static objects with constructors cannot be used. This " +"is not a problem if the main program is linked by the C++ compiler. " +"Functions that will be called by the Python interpreter (in particular, " +"module initialization functions) have to be declared using ``extern \"C\"``. " +"It is unnecessary to enclose the Python header files in ``extern \"C\" {...}" +"`` --- they use this form already if the symbol ``__cplusplus`` is defined " +"(all recent C++ compilers define this symbol)." +msgstr "" +"C'est possible d'écrire des modules d'extension en C++, mais sous certaines " +"conditions. Si le programme principal (l'interpréteur Python) est compilé et " +"lié par le compilateur C, les objets globaux ou statiques avec les " +"constructeurs ne peuvent pas être utilisés. Ceci n'est pas un problème si le " +"programme principal est relié par le compilateur C++. Les fonctions qui " +"seront appelées par l'interpréteur Python (en particulier, les fonctions " +"d'initialisation des modules) doivent être déclarées en utilisant ``extern " +"\"C\"``. Il n'est pas nécessaire d'inclure les fichiers d'en-tête Python " +"dans le ``extern \"C\" {…}``, car ils utilisent déjà ce format si le symbole " +"``__cplusplus`` est défini (tous les compilateurs C++ récents définissent ce " +"symbole)." + +#: ../Doc/extending/extending.rst:1133 +msgid "Providing a C API for an Extension Module" +msgstr "Fournir une API en langage C pour un module d'extension" + +#: ../Doc/extending/extending.rst:1138 +msgid "" +"Many extension modules just provide new functions and types to be used from " +"Python, but sometimes the code in an extension module can be useful for " +"other extension modules. For example, an extension module could implement a " +"type \"collection\" which works like lists without order. Just like the " +"standard Python list type has a C API which permits extension modules to " +"create and manipulate lists, this new collection type should have a set of C " +"functions for direct manipulation from other extension modules." +msgstr "" +"De nombreux modules d'extension fournissent simplement de nouvelles " +"fonctions et de nouveaux types à utiliser à partir de Python, mais parfois " +"le code d'un module d'extension peut être utile pour d'autres modules " +"d'extension. Par exemple, un module d'extension peut mettre en œuvre un type " +"\"collection\" qui fonctionne comme des listes sans ordre. Tout comme le " +"type de liste Python standard possède une API C qui permet aux modules " +"d'extension de créer et de manipuler des listes, ce nouveau type de " +"collection devrait posséder un ensemble de fonctions C pour une manipulation " +"directe à partir d'autres modules d'extension." + +#: ../Doc/extending/extending.rst:1146 +msgid "" +"At first sight this seems easy: just write the functions (without declaring " +"them ``static``, of course), provide an appropriate header file, and " +"document the C API. And in fact this would work if all extension modules " +"were always linked statically with the Python interpreter. When modules are " +"used as shared libraries, however, the symbols defined in one module may not " +"be visible to another module. The details of visibility depend on the " +"operating system; some systems use one global namespace for the Python " +"interpreter and all extension modules (Windows, for example), whereas others " +"require an explicit list of imported symbols at module link time (AIX is one " +"example), or offer a choice of different strategies (most Unices). And even " +"if symbols are globally visible, the module whose functions one wishes to " +"call might not have been loaded yet!" +msgstr "" +"À première vue, cela semble facile : il suffit d'écrire les fonctions (sans " +"les déclarer \"statiques\", bien sûr), de fournir un fichier d'en-tête " +"approprié et de documenter l'API C. Et en fait, cela fonctionnerait si tous " +"les modules d'extension étaient toujours liés statiquement avec " +"l'interpréteur Python. Cependant, lorsque les modules sont utilisés comme " +"des bibliothèques partagées, les symboles définis dans un module peuvent ne " +"pas être visibles par un autre module. Les détails de la visibilité " +"dépendent du système d'exploitation ; certains systèmes utilisent un espace " +"de noms global pour l'interpréteur Python et tous les modules d'extension " +"(Windows, par exemple), tandis que d'autres exigent une liste explicite des " +"symboles importés au moment de la liaison des modules (AIX en est un " +"exemple), ou offrent un choix de stratégies différentes (la plupart des " +"*Unix*). Et même si les symboles sont globalement visibles, le module dont " +"on souhaite appeler les fonctions n'est peut-être pas encore chargé !" + +#: ../Doc/extending/extending.rst:1158 +msgid "" +"Portability therefore requires not to make any assumptions about symbol " +"visibility. This means that all symbols in extension modules should be " +"declared ``static``, except for the module's initialization function, in " +"order to avoid name clashes with other extension modules (as discussed in " +"section :ref:`methodtable`). And it means that symbols that *should* be " +"accessible from other extension modules must be exported in a different way." +msgstr "" +"La portabilité exige donc de ne faire aucune supposition sur la visibilité " +"des symboles. Cela signifie que tous les symboles des modules d'extension " +"doivent être déclarés ``static``, à l'exception de la fonction " +"d'initialisation du module, afin d'éviter les conflits de noms avec les " +"autres modules d'extension (comme discuté dans la section :ref:" +"`methodtable`). Et cela signifie que les symboles qui *devraient* être " +"accessibles à partir d'autres modules d'extension doivent être exportés " +"d'une manière différente." + +#: ../Doc/extending/extending.rst:1165 +msgid "" +"Python provides a special mechanism to pass C-level information (pointers) " +"from one extension module to another one: Capsules. A Capsule is a Python " +"data type which stores a pointer (:c:type:`void \\*`). Capsules can only be " +"created and accessed via their C API, but they can be passed around like any " +"other Python object. In particular, they can be assigned to a name in an " +"extension module's namespace. Other extension modules can then import this " +"module, retrieve the value of this name, and then retrieve the pointer from " +"the Capsule." +msgstr "" + +#: ../Doc/extending/extending.rst:1173 +msgid "" +"There are many ways in which Capsules can be used to export the C API of an " +"extension module. Each function could get its own Capsule, or all C API " +"pointers could be stored in an array whose address is published in a " +"Capsule. And the various tasks of storing and retrieving the pointers can be " +"distributed in different ways between the module providing the code and the " +"client modules." +msgstr "" +"Il existe de nombreuses façons d'utiliser les Capsules pour exporter l'API C " +"d'un module d'extension. Chaque fonction peut obtenir sa propre Capsule, ou " +"tous les pointeurs de l'API C peuvent être stockés dans un tableau dont " +"l'adresse est inscrite dans une Capsule. Et les différentes tâches de " +"stockage et de récupération des pointeurs peuvent être réparties de " +"différentes manières entre le module fournissant le code et les modules " +"clients." + +#: ../Doc/extending/extending.rst:1179 +msgid "" +"Whichever method you choose, it's important to name your Capsules properly. " +"The function :c:func:`PyCapsule_New` takes a name parameter (:c:type:`const " +"char \\*`); you're permitted to pass in a *NULL* name, but we strongly " +"encourage you to specify a name. Properly named Capsules provide a degree " +"of runtime type-safety; there is no feasible way to tell one unnamed Capsule " +"from another." +msgstr "" + +#: ../Doc/extending/extending.rst:1186 +msgid "" +"In particular, Capsules used to expose C APIs should be given a name " +"following this convention::" +msgstr "" + +#: ../Doc/extending/extending.rst:1191 +msgid "" +"The convenience function :c:func:`PyCapsule_Import` makes it easy to load a " +"C API provided via a Capsule, but only if the Capsule's name matches this " +"convention. This behavior gives C API users a high degree of certainty that " +"the Capsule they load contains the correct C API." +msgstr "" + +#: ../Doc/extending/extending.rst:1196 +msgid "" +"The following example demonstrates an approach that puts most of the burden " +"on the writer of the exporting module, which is appropriate for commonly " +"used library modules. It stores all C API pointers (just one in the " +"example!) in an array of :c:type:`void` pointers which becomes the value of " +"a Capsule. The header file corresponding to the module provides a macro that " +"takes care of importing the module and retrieving its C API pointers; client " +"modules only have to call this macro before accessing the C API." +msgstr "" +"L'exemple suivant montre une approche qui fait peser la plus grande partie " +"de la charge sur le rédacteur du module d'exportation, ce qui est approprié " +"pour les modules de bibliothèque couramment utilisés. Il stocke tous les " +"pointeurs de l'API C (un seul dans l'exemple !) dans un tableau de " +"pointeurs :c:type:`void` qui devient la valeur d'une Capsule. Le fichier " +"d'en-tête correspondant au module fournit une macro qui se charge d'importer " +"le module et de récupérer ses pointeurs d'API C. Les modules clients n'ont " +"qu'à appeler cette macro avant d'accéder à l'API C." + +#: ../Doc/extending/extending.rst:1204 +msgid "" +"The exporting module is a modification of the :mod:`spam` module from " +"section :ref:`extending-simpleexample`. The function :func:`spam.system` " +"does not call the C library function :c:func:`system` directly, but a " +"function :c:func:`PySpam_System`, which would of course do something more " +"complicated in reality (such as adding \"spam\" to every command). This " +"function :c:func:`PySpam_System` is also exported to other extension modules." +msgstr "" +"Le module d'exportation est une modification du module :mod:`spam` de la " +"section :ref:`extending-simpleexample`. La fonction :func:`spam.system` " +"n'appelle pas directement la fonction de la bibliothèque C :c:func:`system`, " +"mais une fonction :c:func:`PySpam_System`, qui ferait bien sûr quelque chose " +"de plus compliqué en réalité (comme ajouter du *spam* à chaque commande). " +"Cette fonction :c:func:`PySpam_System` est également exportée vers d'autres " +"modules d'extension." + +#: ../Doc/extending/extending.rst:1211 +msgid "" +"The function :c:func:`PySpam_System` is a plain C function, declared " +"``static`` like everything else::" +msgstr "" + +#: ../Doc/extending/extending.rst:1220 +msgid "The function :c:func:`spam_system` is modified in a trivial way::" +msgstr "La fonction :c:func:`spam_system` est modifiée de manière simple ::" + +#: ../Doc/extending/extending.rst:1234 +msgid "In the beginning of the module, right after the line ::" +msgstr "Au début du module, immédiatement après la ligne ::" + +#: ../Doc/extending/extending.rst:1238 +msgid "two more lines must be added::" +msgstr "on doit ajouter deux lignes supplémentaires ::" + +#: ../Doc/extending/extending.rst:1243 +msgid "" +"The ``#define`` is used to tell the header file that it is being included in " +"the exporting module, not a client module. Finally, the module's " +"initialization function must take care of initializing the C API pointer " +"array::" +msgstr "" +"L'indicateur ``#define`` est utilisé pour indiquer au fichier d'en-tête " +"qu'il est inclus dans le module d'exportation, et non dans un module client. " +"Enfin, la fonction d'initialisation du module doit prendre en charge " +"l'initialisation du tableau de pointeurs de l'API C ::" + +#: ../Doc/extending/extending.rst:1269 +msgid "" +"Note that ``PySpam_API`` is declared ``static``; otherwise the pointer array " +"would disappear when :func:`PyInit_spam` terminates!" +msgstr "" +"Notez que ``PySpam_API`` est déclaré ``static`` ; sinon le tableau de " +"pointeurs disparaîtrait lorsque :func:`PyInit_spam`` se finit !" + +#: ../Doc/extending/extending.rst:1272 +msgid "" +"The bulk of the work is in the header file :file:`spammodule.h`, which looks " +"like this::" +msgstr "" +"L'essentiel du travail se trouve dans le fichier d'en-tête :file:`spammodule." +"h`, qui ressemble à ceci ::" + +#: ../Doc/extending/extending.rst:1323 +msgid "" +"All that a client module must do in order to have access to the function :c:" +"func:`PySpam_System` is to call the function (or rather macro) :c:func:" +"`import_spam` in its initialization function::" +msgstr "" +"Tout ce qu'un module client doit faire pour avoir accès à la fonction :c:" +"func:`PySpam_System` est d'appeler la fonction (ou plutôt la macro) :c:func:" +"`import_spam` dans sa fonction d'initialisation ::" + +#: ../Doc/extending/extending.rst:1341 +msgid "" +"The main disadvantage of this approach is that the file :file:`spammodule.h` " +"is rather complicated. However, the basic structure is the same for each " +"function that is exported, so it has to be learned only once." +msgstr "" +"Le principal inconvénient de cette approche est que le fichier :file:" +"`spammodule.h` est assez compliqué. Cependant, la structure de base est la " +"même pour chaque fonction exportée, ce qui fait qu'elle ne doit être apprise " +"qu'une seule fois." + +#: ../Doc/extending/extending.rst:1345 +msgid "" +"Finally it should be mentioned that Capsules offer additional functionality, " +"which is especially useful for memory allocation and deallocation of the " +"pointer stored in a Capsule. The details are described in the Python/C API " +"Reference Manual in the section :ref:`capsules` and in the implementation of " +"Capsules (files :file:`Include/pycapsule.h` and :file:`Objects/pycapsule.c` " +"in the Python source code distribution)." +msgstr "" +"Enfin, il convient de mentionner que Capsules offrent des fonctionnalités " +"supplémentaires, qui sont particulièrement utiles pour l'allocation de la " +"mémoire et la dés-allocation du pointeur stocké dans un objet Capsule. Les " +"détails sont décrits dans le manuel de référence de l'API Python/C dans la " +"section :ref:`capsules` et dans l'implémentation des Capsules (fichiers :" +"file:`Include/pycapsule.h` et :file:`Objects/pycapsule.c` dans la " +"distribution du code source Python)." + +#: ../Doc/extending/extending.rst:1353 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/extending/extending.rst:1354 +msgid "" +"An interface for this function already exists in the standard module :mod:" +"`os` --- it was chosen as a simple and straightforward example." +msgstr "" +"Une interface pour cette fonction existe déjà dans le module standard :mod:" +"`os`, elle a été choisie comme un exemple simple et direct." + +#: ../Doc/extending/extending.rst:1357 +msgid "" +"The metaphor of \"borrowing\" a reference is not completely correct: the " +"owner still has a copy of the reference." +msgstr "" +"L'expression « emprunter une référence » n'est pas tout à fait correcte, car " +"le propriétaire a toujours une copie de la référence." + +#: ../Doc/extending/extending.rst:1360 +msgid "" +"Checking that the reference count is at least 1 **does not work** --- the " +"reference count itself could be in freed memory and may thus be reused for " +"another object!" +msgstr "" +"Vérifier que le comptage de référence est d'au moins 1 **ne fonctionne " +"pas**, le compte de référence lui-même pourrait être en mémoire libérée et " +"peut donc être réutilisé pour un autre objet !" + +#: ../Doc/extending/extending.rst:1364 +msgid "" +"These guarantees don't hold when you use the \"old\" style calling " +"convention --- this is still found in much existing code." +msgstr "" +"Ces garanties ne sont pas valables lorsqu'on emploie les conventions de " +"nommage anciennes, qu'on retrouve encore assez souvent dans beaucoup de code " +"existant." diff --git a/extending/index.po b/extending/index.po new file mode 100644 index 000000000..379a185e6 --- /dev/null +++ b/extending/index.po @@ -0,0 +1,133 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-07-04 11:38+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.4\n" + +#: ../Doc/extending/index.rst:5 +msgid "Extending and Embedding the Python Interpreter" +msgstr "Extension et intégration de l'interpréteur Python" + +#: ../Doc/extending/index.rst:7 +msgid "" +"This document describes how to write modules in C or C++ to extend the " +"Python interpreter with new modules. Those modules can not only define new " +"functions but also new object types and their methods. The document also " +"describes how to embed the Python interpreter in another application, for " +"use as an extension language. Finally, it shows how to compile and link " +"extension modules so that they can be loaded dynamically (at run time) into " +"the interpreter, if the underlying operating system supports this feature." +msgstr "" +"Ce document décrit comment écrire des modules en C ou C++ pour étendre " +"l'interpréteur Python à de nouveaux modules. En plus de définir de nouvelles " +"fonctions, ces modules peuvent définir de nouveaux types d'objets ainsi que " +"leur méthodes. Ce document explique aussi comment intégrer l'interpréteur " +"Python dans une autre application, pour être utilisé comme langage " +"d'extension. Enfin, ce document montre comment compiler et lier les modules " +"d'extension pour qu'ils puissent être chargés dynamiquement (à l'exécution) " +"dans l'interpréteur, si le système d'exploitation sous-jacent supporte cette " +"fonctionnalité." + +#: ../Doc/extending/index.rst:15 +msgid "" +"This document assumes basic knowledge about Python. For an informal " +"introduction to the language, see :ref:`tutorial-index`. :ref:`reference-" +"index` gives a more formal definition of the language. :ref:`library-index` " +"documents the existing object types, functions and modules (both built-in " +"and written in Python) that give the language its wide application range." +msgstr "" +"Ce document présuppose que vous avez des connaissances de base sur Python. " +"Pour une introduction informelle du langage, voyez :ref:`tutorial-index`. :" +"ref:`reference-index` donne une définition plus formelle du langage. :ref:" +"`library-index` documente les objets types, fonctions et modules existants " +"(tous intégrés et écrits en Python) qui donnent au langage sa large gamme " +"d'applications." + +#: ../Doc/extending/index.rst:21 +msgid "" +"For a detailed description of the whole Python/C API, see the separate :ref:" +"`c-api-index`." +msgstr "" +"Pour une description dans sa totalité de l'API Python/C, voir :ref:`c-api-" +"index`." + +#: ../Doc/extending/index.rst:26 +msgid "Recommended third party tools" +msgstr "Les outils tiers recommandés" + +#: ../Doc/extending/index.rst:28 +msgid "" +"This guide only covers the basic tools for creating extensions provided as " +"part of this version of CPython. Third party tools like `Cython `_, `cffi `_, `SWIG `_ and `Numba `_ offer both simpler and " +"more sophisticated approaches to creating C and C++ extensions for Python." +msgstr "" +"Ce guide ne couvre que les outils basiques permettant de créer des " +"extensions fournies dans cette version de CPython. Les outils tiers tels que " +"`Cython `_, `cffi `_, `SWIG " +"`_ et `Numba `_ offrent des " +"approches plus simples et plus élaborées pour créer des extensions C et C++ " +"pour Python." + +#: ../Doc/extending/index.rst:40 +msgid "" +"`Python Packaging User Guide: Binary Extensions `_" +msgstr "" +"`Guide d'utilisation de l'empaquetage Python : Extensions binaires `_" + +#: ../Doc/extending/index.rst:38 +msgid "" +"The Python Packaging User Guide not only covers several available tools that " +"simplify the creation of binary extensions, but also discusses the various " +"reasons why creating an extension module may be desirable in the first place." +msgstr "" +"Le guide d'utilisation de l'empaquetage Python ne couvre pas uniquement " +"quelques outils disponibles qui simplifient la création d'extensions " +"binaires, mais aborde aussi les différentes raisons pour lesquelles créer un " +"module d'extension peut être souhaitable d'entrée." + +#: ../Doc/extending/index.rst:45 +msgid "Creating extensions without third party tools" +msgstr "Création d'extensions sans outils tiers" + +#: ../Doc/extending/index.rst:47 +msgid "" +"This section of the guide covers creating C and C++ extensions without " +"assistance from third party tools. It is intended primarily for creators of " +"those tools, rather than being a recommended way to create your own C " +"extensions." +msgstr "" +"Cette section du guide couvre la création d'extensions C et C++ sans " +"l'utilisation d'outils tiers. Cette section est destinée aux créateurs de " +"ces outils, plus que d'être une méthode recommandée pour créer votre propre " +"extension C." + +#: ../Doc/extending/index.rst:63 +msgid "Embedding the CPython runtime in a larger application" +msgstr "Intégrer l'interpréteur CPython dans une plus grande application" + +#: ../Doc/extending/index.rst:65 +msgid "" +"Sometimes, rather than creating an extension that runs inside the Python " +"interpreter as the main application, it is desirable to instead embed the " +"CPython runtime inside a larger application. This section covers some of the " +"details involved in doing that successfully." +msgstr "" +"Parfois, plutôt que de créer une extension qui s'exécute dans l'interpréteur " +"Python comme application principale, il est préférable d'intégrer " +"l'interpréteur Python dans une application plus large. Cette section donne " +"quelques informations nécessaires au succès de cette opération." diff --git a/extending/newtypes.po b/extending/newtypes.po new file mode 100644 index 000000000..cb28a8c18 --- /dev/null +++ b/extending/newtypes.po @@ -0,0 +1,678 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-29 00:24+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/extending/newtypes.rst:5 +msgid "Defining Extension Types: Assorted Topics" +msgstr "Définir les types d'extension : divers sujets" + +#: ../Doc/extending/newtypes.rst:9 +msgid "" +"This section aims to give a quick fly-by on the various type methods you can " +"implement and what they do." +msgstr "" + +#: ../Doc/extending/newtypes.rst:12 +msgid "" +"Here is the definition of :c:type:`PyTypeObject`, with some fields only used " +"in debug builds omitted:" +msgstr "" + +#: ../Doc/extending/newtypes.rst:18 +msgid "" +"Now that's a *lot* of methods. Don't worry too much though -- if you have a " +"type you want to define, the chances are very good that you will only " +"implement a handful of these." +msgstr "" + +#: ../Doc/extending/newtypes.rst:22 +msgid "" +"As you probably expect by now, we're going to go over this and give more " +"information about the various handlers. We won't go in the order they are " +"defined in the structure, because there is a lot of historical baggage that " +"impacts the ordering of the fields. It's often easiest to find an example " +"that includes the fields you need and then change the values to suit your " +"new type. ::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:31 +msgid "" +"The name of the type -- as mentioned in the previous chapter, this will " +"appear in various places, almost entirely for diagnostic purposes. Try to " +"choose something that will be helpful in such a situation! ::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:37 +msgid "" +"These fields tell the runtime how much memory to allocate when new objects " +"of this type are created. Python has some built-in support for variable " +"length structures (think: strings, tuples) which is where the :c:member:" +"`~PyTypeObject.tp_itemsize` field comes in. This will be dealt with " +"later. ::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:44 +msgid "" +"Here you can put a string (or its address) that you want returned when the " +"Python script references ``obj.__doc__`` to retrieve the doc string." +msgstr "" +"Ici vous pouvez mettre une chaîne (ou son adresse) que vous voulez renvoyer " +"lorsque le script Python référence ``obj.__doc__`` pour récupérer le " +"*docstring*." + +#: ../Doc/extending/newtypes.rst:47 +msgid "" +"Now we come to the basic type methods -- the ones most extension types will " +"implement." +msgstr "" +"Nous en arrivons maintenant aux méthodes de type basiques -- celles que la " +"plupart des types d'extension mettront en œuvre." + +#: ../Doc/extending/newtypes.rst:52 +msgid "Finalization and De-allocation" +msgstr "Finalisation et de-allocation" + +#: ../Doc/extending/newtypes.rst:64 +msgid "" +"This function is called when the reference count of the instance of your " +"type is reduced to zero and the Python interpreter wants to reclaim it. If " +"your type has memory to free or other clean-up to perform, you can put it " +"here. The object itself needs to be freed here as well. Here is an example " +"of this function::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:81 +msgid "" +"One important requirement of the deallocator function is that it leaves any " +"pending exceptions alone. This is important since deallocators are " +"frequently called as the interpreter unwinds the Python stack; when the " +"stack is unwound due to an exception (rather than normal returns), nothing " +"is done to protect the deallocators from seeing that an exception has " +"already been set. Any actions which a deallocator performs which may cause " +"additional Python code to be executed may detect that an exception has been " +"set. This can lead to misleading errors from the interpreter. The proper " +"way to protect against this is to save a pending exception before performing " +"the unsafe action, and restoring it when done. This can be done using the :" +"c:func:`PyErr_Fetch` and :c:func:`PyErr_Restore` functions::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:120 +msgid "" +"There are limitations to what you can safely do in a deallocator function. " +"First, if your type supports garbage collection (using :c:member:" +"`~PyTypeObject.tp_traverse` and/or :c:member:`~PyTypeObject.tp_clear`), some " +"of the object's members can have been cleared or finalized by the time :c:" +"member:`~PyTypeObject.tp_dealloc` is called. Second, in :c:member:" +"`~PyTypeObject.tp_dealloc`, your object is in an unstable state: its " +"reference count is equal to zero. Any call to a non-trivial object or API " +"(as in the example above) might end up calling :c:member:`~PyTypeObject." +"tp_dealloc` again, causing a double free and a crash." +msgstr "" + +#: ../Doc/extending/newtypes.rst:129 +msgid "" +"Starting with Python 3.4, it is recommended not to put any complex " +"finalization code in :c:member:`~PyTypeObject.tp_dealloc`, and instead use " +"the new :c:member:`~PyTypeObject.tp_finalize` type method." +msgstr "" + +#: ../Doc/extending/newtypes.rst:134 +msgid ":pep:`442` explains the new finalization scheme." +msgstr ":pep:`442` explique le nouveau schéma de finalisation." + +#: ../Doc/extending/newtypes.rst:141 +msgid "Object Presentation" +msgstr "Présentation de l'objet" + +#: ../Doc/extending/newtypes.rst:143 +msgid "" +"In Python, there are two ways to generate a textual representation of an " +"object: the :func:`repr` function, and the :func:`str` function. (The :func:" +"`print` function just calls :func:`str`.) These handlers are both optional." +msgstr "" + +#: ../Doc/extending/newtypes.rst:152 +msgid "" +"The :c:member:`~PyTypeObject.tp_repr` handler should return a string object " +"containing a representation of the instance for which it is called. Here is " +"a simple example::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:163 +msgid "" +"If no :c:member:`~PyTypeObject.tp_repr` handler is specified, the " +"interpreter will supply a representation that uses the type's :c:member:" +"`~PyTypeObject.tp_name` and a uniquely-identifying value for the object." +msgstr "" + +#: ../Doc/extending/newtypes.rst:167 +msgid "" +"The :c:member:`~PyTypeObject.tp_str` handler is to :func:`str` what the :c:" +"member:`~PyTypeObject.tp_repr` handler described above is to :func:`repr`; " +"that is, it is called when Python code calls :func:`str` on an instance of " +"your object. Its implementation is very similar to the :c:member:" +"`~PyTypeObject.tp_repr` function, but the resulting string is intended for " +"human consumption. If :c:member:`~PyTypeObject.tp_str` is not specified, " +"the :c:member:`~PyTypeObject.tp_repr` handler is used instead." +msgstr "" + +#: ../Doc/extending/newtypes.rst:174 +msgid "Here is a simple example::" +msgstr "Voici un exemple simple ::" + +#: ../Doc/extending/newtypes.rst:186 +msgid "Attribute Management" +msgstr "Gestion des attributs" + +#: ../Doc/extending/newtypes.rst:188 +msgid "" +"For every object which can support attributes, the corresponding type must " +"provide the functions that control how the attributes are resolved. There " +"needs to be a function which can retrieve attributes (if any are defined), " +"and another to set attributes (if setting attributes is allowed). Removing " +"an attribute is a special case, for which the new value passed to the " +"handler is *NULL*." +msgstr "" + +#: ../Doc/extending/newtypes.rst:194 +msgid "" +"Python supports two pairs of attribute handlers; a type that supports " +"attributes only needs to implement the functions for one pair. The " +"difference is that one pair takes the name of the attribute as a :c:type:" +"`char\\*`, while the other accepts a :c:type:`PyObject\\*`. Each type can " +"use whichever pair makes more sense for the implementation's convenience. ::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:206 +msgid "" +"If accessing attributes of an object is always a simple operation (this will " +"be explained shortly), there are generic implementations which can be used " +"to provide the :c:type:`PyObject\\*` version of the attribute management " +"functions. The actual need for type-specific attribute handlers almost " +"completely disappeared starting with Python 2.2, though there are many " +"examples which have not been updated to use some of the new generic " +"mechanism that is available." +msgstr "" + +#: ../Doc/extending/newtypes.rst:217 +msgid "Generic Attribute Management" +msgstr "Gestion des attributs génériques" + +#: ../Doc/extending/newtypes.rst:219 +msgid "" +"Most extension types only use *simple* attributes. So, what makes the " +"attributes simple? There are only a couple of conditions that must be met:" +msgstr "" + +#: ../Doc/extending/newtypes.rst:222 +msgid "" +"The name of the attributes must be known when :c:func:`PyType_Ready` is " +"called." +msgstr "" +"Le nom des attributs doivent être déjà connus lorsqu'on lance :c:func:" +"`PyType_Ready`." + +#: ../Doc/extending/newtypes.rst:225 +msgid "" +"No special processing is needed to record that an attribute was looked up or " +"set, nor do actions need to be taken based on the value." +msgstr "" + +#: ../Doc/extending/newtypes.rst:228 +msgid "" +"Note that this list does not place any restrictions on the values of the " +"attributes, when the values are computed, or how relevant data is stored." +msgstr "" + +#: ../Doc/extending/newtypes.rst:231 +msgid "" +"When :c:func:`PyType_Ready` is called, it uses three tables referenced by " +"the type object to create :term:`descriptor`\\s which are placed in the " +"dictionary of the type object. Each descriptor controls access to one " +"attribute of the instance object. Each of the tables is optional; if all " +"three are *NULL*, instances of the type will only have attributes that are " +"inherited from their base type, and should leave the :c:member:" +"`~PyTypeObject.tp_getattro` and :c:member:`~PyTypeObject.tp_setattro` fields " +"*NULL* as well, allowing the base type to handle attributes." +msgstr "" + +#: ../Doc/extending/newtypes.rst:239 +msgid "The tables are declared as three fields of the type object::" +msgstr "" +"Les tables sont déclarées sous la forme de trois champs de type objet ::" + +#: ../Doc/extending/newtypes.rst:245 +msgid "" +"If :c:member:`~PyTypeObject.tp_methods` is not *NULL*, it must refer to an " +"array of :c:type:`PyMethodDef` structures. Each entry in the table is an " +"instance of this structure::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:256 +msgid "" +"One entry should be defined for each method provided by the type; no entries " +"are needed for methods inherited from a base type. One additional entry is " +"needed at the end; it is a sentinel that marks the end of the array. The :" +"attr:`ml_name` field of the sentinel must be *NULL*." +msgstr "" + +#: ../Doc/extending/newtypes.rst:261 +msgid "" +"The second table is used to define attributes which map directly to data " +"stored in the instance. A variety of primitive C types are supported, and " +"access may be read-only or read-write. The structures in the table are " +"defined as::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:273 +msgid "" +"For each entry in the table, a :term:`descriptor` will be constructed and " +"added to the type which will be able to extract a value from the instance " +"structure. The :attr:`type` field should contain one of the type codes " +"defined in the :file:`structmember.h` header; the value will be used to " +"determine how to convert Python values to and from C values. The :attr:" +"`flags` field is used to store flags which control how the attribute can be " +"accessed." +msgstr "" + +#: ../Doc/extending/newtypes.rst:280 +msgid "" +"The following flag constants are defined in :file:`structmember.h`; they may " +"be combined using bitwise-OR." +msgstr "" + +#: ../Doc/extending/newtypes.rst:284 +msgid "Constant" +msgstr "Constante" + +#: ../Doc/extending/newtypes.rst:284 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/extending/newtypes.rst:286 +msgid ":const:`READONLY`" +msgstr ":const:`READONLY`" + +#: ../Doc/extending/newtypes.rst:286 +msgid "Never writable." +msgstr "Jamais disponible en écriture." + +#: ../Doc/extending/newtypes.rst:288 +msgid ":const:`READ_RESTRICTED`" +msgstr ":const:`READ_RESTRICTED`" + +#: ../Doc/extending/newtypes.rst:288 +msgid "Not readable in restricted mode." +msgstr "Non disponible en lecture, dans le mode restreint." + +#: ../Doc/extending/newtypes.rst:290 +msgid ":const:`WRITE_RESTRICTED`" +msgstr ":const:`WRITE_RESTRICTED`" + +#: ../Doc/extending/newtypes.rst:290 +msgid "Not writable in restricted mode." +msgstr "Non disponible en écriture dans le mode restreint." + +#: ../Doc/extending/newtypes.rst:292 +msgid ":const:`RESTRICTED`" +msgstr ":const:`RESTRICTED`" + +#: ../Doc/extending/newtypes.rst:292 +msgid "Not readable or writable in restricted mode." +msgstr "Non disponible en lecture ou écriture, en mode restreint." + +#: ../Doc/extending/newtypes.rst:301 +msgid "" +"An interesting advantage of using the :c:member:`~PyTypeObject.tp_members` " +"table to build descriptors that are used at runtime is that any attribute " +"defined this way can have an associated doc string simply by providing the " +"text in the table. An application can use the introspection API to retrieve " +"the descriptor from the class object, and get the doc string using its :attr:" +"`__doc__` attribute." +msgstr "" +"Un avantage intéressant de l'utilisation de la table :c:member:" +"`~PyTypeObject.tp_members` pour construire les descripteurs qui sont " +"utilisés à l'exécution, est que à tout attribut défini de cette façon on " +"peut associer un *docstring*, en écrivant simplement le texte dans la table. " +"Une application peut utiliser l'API d'introspection pour récupérer le " +"descripteur de l'objet de classe, et utiliser son attribut :attr:`__doc__` " +"pour renvoyer le *docstring*." + +#: ../Doc/extending/newtypes.rst:307 +msgid "" +"As with the :c:member:`~PyTypeObject.tp_methods` table, a sentinel entry " +"with a :attr:`name` value of *NULL* is required." +msgstr "" + +#: ../Doc/extending/newtypes.rst:321 +msgid "Type-specific Attribute Management" +msgstr "Gestion des attributs de type spécifiques" + +#: ../Doc/extending/newtypes.rst:323 +msgid "" +"For simplicity, only the :c:type:`char\\*` version will be demonstrated " +"here; the type of the name parameter is the only difference between the :c:" +"type:`char\\*` and :c:type:`PyObject\\*` flavors of the interface. This " +"example effectively does the same thing as the generic example above, but " +"does not use the generic support added in Python 2.2. It explains how the " +"handler functions are called, so that if you do need to extend their " +"functionality, you'll understand what needs to be done." +msgstr "" + +#: ../Doc/extending/newtypes.rst:331 +msgid "" +"The :c:member:`~PyTypeObject.tp_getattr` handler is called when the object " +"requires an attribute look-up. It is called in the same situations where " +"the :meth:`__getattr__` method of a class would be called." +msgstr "" + +#: ../Doc/extending/newtypes.rst:335 +msgid "Here is an example::" +msgstr "Voici un exemple : ::" + +#: ../Doc/extending/newtypes.rst:351 +msgid "" +"The :c:member:`~PyTypeObject.tp_setattr` handler is called when the :meth:" +"`__setattr__` or :meth:`__delattr__` method of a class instance would be " +"called. When an attribute should be deleted, the third parameter will be " +"*NULL*. Here is an example that simply raises an exception; if this were " +"really all you wanted, the :c:member:`~PyTypeObject.tp_setattr` handler " +"should be set to *NULL*. ::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:365 +msgid "Object Comparison" +msgstr "Comparaison des objets" + +#: ../Doc/extending/newtypes.rst:371 +msgid "" +"The :c:member:`~PyTypeObject.tp_richcompare` handler is called when " +"comparisons are needed. It is analogous to the :ref:`rich comparison " +"methods `, like :meth:`__lt__`, and also called by :c:func:" +"`PyObject_RichCompare` and :c:func:`PyObject_RichCompareBool`." +msgstr "" + +#: ../Doc/extending/newtypes.rst:376 +msgid "" +"This function is called with two Python objects and the operator as " +"arguments, where the operator is one of ``Py_EQ``, ``Py_NE``, ``Py_LE``, " +"``Py_GT``, ``Py_LT`` or ``Py_GT``. It should compare the two objects with " +"respect to the specified operator and return ``Py_True`` or ``Py_False`` if " +"the comparison is successful, ``Py_NotImplemented`` to indicate that " +"comparison is not implemented and the other object's comparison method " +"should be tried, or *NULL* if an exception was set." +msgstr "" + +#: ../Doc/extending/newtypes.rst:384 +msgid "" +"Here is a sample implementation, for a datatype that is considered equal if " +"the size of an internal pointer is equal::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:414 +msgid "Abstract Protocol Support" +msgstr "Support pour le protocole abstrait" + +#: ../Doc/extending/newtypes.rst:416 +msgid "" +"Python supports a variety of *abstract* 'protocols;' the specific interfaces " +"provided to use these interfaces are documented in :ref:`abstract`." +msgstr "" + +#: ../Doc/extending/newtypes.rst:420 +msgid "" +"A number of these abstract interfaces were defined early in the development " +"of the Python implementation. In particular, the number, mapping, and " +"sequence protocols have been part of Python since the beginning. Other " +"protocols have been added over time. For protocols which depend on several " +"handler routines from the type implementation, the older protocols have been " +"defined as optional blocks of handlers referenced by the type object. For " +"newer protocols there are additional slots in the main type object, with a " +"flag bit being set to indicate that the slots are present and should be " +"checked by the interpreter. (The flag bit does not indicate that the slot " +"values are non-*NULL*. The flag may be set to indicate the presence of a " +"slot, but a slot may still be unfilled.) ::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:435 +msgid "" +"If you wish your object to be able to act like a number, a sequence, or a " +"mapping object, then you place the address of a structure that implements " +"the C type :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, or :c:" +"type:`PyMappingMethods`, respectively. It is up to you to fill in this " +"structure with appropriate values. You can find examples of the use of each " +"of these in the :file:`Objects` directory of the Python source " +"distribution. ::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:444 +msgid "" +"This function, if you choose to provide it, should return a hash number for " +"an instance of your data type. Here is a simple example::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:457 +msgid "" +":c:type:`Py_hash_t` is a signed integer type with a platform-varying width. " +"Returning ``-1`` from :c:member:`~PyTypeObject.tp_hash` indicates an error, " +"which is why you should be careful to avoid returning it when hash " +"computation is successful, as seen above." +msgstr "" + +#: ../Doc/extending/newtypes.rst:466 +msgid "" +"This function is called when an instance of your data type is \"called\", " +"for example, if ``obj1`` is an instance of your data type and the Python " +"script contains ``obj1('hello')``, the :c:member:`~PyTypeObject.tp_call` " +"handler is invoked." +msgstr "" + +#: ../Doc/extending/newtypes.rst:470 +msgid "This function takes three arguments:" +msgstr "Cette fonction prend trois arguments :" + +#: ../Doc/extending/newtypes.rst:472 +msgid "" +"*self* is the instance of the data type which is the subject of the call. If " +"the call is ``obj1('hello')``, then *self* is ``obj1``." +msgstr "" + +#: ../Doc/extending/newtypes.rst:475 +msgid "" +"*args* is a tuple containing the arguments to the call. You can use :c:func:" +"`PyArg_ParseTuple` to extract the arguments." +msgstr "" + +#: ../Doc/extending/newtypes.rst:478 +msgid "" +"*kwds* is a dictionary of keyword arguments that were passed. If this is non-" +"*NULL* and you support keyword arguments, use :c:func:" +"`PyArg_ParseTupleAndKeywords` to extract the arguments. If you do not want " +"to support keyword arguments and this is non-*NULL*, raise a :exc:" +"`TypeError` with a message saying that keyword arguments are not supported." +msgstr "" + +#: ../Doc/extending/newtypes.rst:484 +msgid "Here is a toy ``tp_call`` implementation::" +msgstr "Ceci est une implémentation ``tp_call`` très simple ::" + +#: ../Doc/extending/newtypes.rst:510 +msgid "" +"These functions provide support for the iterator protocol. Both handlers " +"take exactly one parameter, the instance for which they are being called, " +"and return a new reference. In the case of an error, they should set an " +"exception and return *NULL*. :c:member:`~PyTypeObject.tp_iter` corresponds " +"to the Python :meth:`__iter__` method, while :c:member:`~PyTypeObject." +"tp_iternext` corresponds to the Python :meth:`~iterator.__next__` method." +msgstr "" + +#: ../Doc/extending/newtypes.rst:517 +msgid "" +"Any :term:`iterable` object must implement the :c:member:`~PyTypeObject." +"tp_iter` handler, which must return an :term:`iterator` object. Here the " +"same guidelines apply as for Python classes:" +msgstr "" +"Tout objet :term:`iterable` doit implémenter le gestionnaire :c:member:" +"`~PyTypeObject.tp_iter`, qui doit renvoyer un objet de type :term:" +"`iterator`. Ici, les mêmes directives s'appliquent de la même façon que " +"pour les classes *Python* :" + +#: ../Doc/extending/newtypes.rst:521 +msgid "" +"For collections (such as lists and tuples) which can support multiple " +"independent iterators, a new iterator should be created and returned by each " +"call to :c:member:`~PyTypeObject.tp_iter`." +msgstr "" +"Pour les collections (telles que les listes et les n-uplets) qui peuvent " +"implémenter plusieurs itérateurs indépendants, un nouvel itérateur doit être " +"créé et renvoyé par chaque appel de type :c:member:`~PyTypeObject.tp_iter`." + +#: ../Doc/extending/newtypes.rst:524 +msgid "" +"Objects which can only be iterated over once (usually due to side effects of " +"iteration, such as file objects) can implement :c:member:`~PyTypeObject." +"tp_iter` by returning a new reference to themselves -- and should also " +"therefore implement the :c:member:`~PyTypeObject.tp_iternext` handler." +msgstr "" + +#: ../Doc/extending/newtypes.rst:529 +msgid "" +"Any :term:`iterator` object should implement both :c:member:`~PyTypeObject." +"tp_iter` and :c:member:`~PyTypeObject.tp_iternext`. An iterator's :c:member:" +"`~PyTypeObject.tp_iter` handler should return a new reference to the " +"iterator. Its :c:member:`~PyTypeObject.tp_iternext` handler should return a " +"new reference to the next object in the iteration, if there is one. If the " +"iteration has reached the end, :c:member:`~PyTypeObject.tp_iternext` may " +"return *NULL* without setting an exception, or it may set :exc:" +"`StopIteration` *in addition* to returning *NULL*; avoiding the exception " +"can yield slightly better performance. If an actual error occurs, :c:member:" +"`~PyTypeObject.tp_iternext` should always set an exception and return *NULL*." +msgstr "" + +#: ../Doc/extending/newtypes.rst:545 +msgid "Weak Reference Support" +msgstr "Prise en charge de la référence faible" + +#: ../Doc/extending/newtypes.rst:547 +msgid "" +"One of the goals of Python's weak reference implementation is to allow any " +"type to participate in the weak reference mechanism without incurring the " +"overhead on performance-critical objects (such as numbers)." +msgstr "" +"L'un des objectifs de l'implémentation de la référence faible de *Python* " +"est de permettre à tout type d'objet de participer au mécanisme de référence " +"faible sans avoir à supporter le surcoût de la performance critique des " +"certains objets, tels que les nombres." + +#: ../Doc/extending/newtypes.rst:552 +msgid "Documentation for the :mod:`weakref` module." +msgstr "Documentation pour le module :mod:`weakref`." + +#: ../Doc/extending/newtypes.rst:554 +msgid "" +"For an object to be weakly referencable, the extension type must do two " +"things:" +msgstr "" +"Pour qu'un objet soit faiblement référençable, le type d'extension doit " +"faire deux choses :" + +#: ../Doc/extending/newtypes.rst:556 +msgid "" +"Include a :c:type:`PyObject\\*` field in the C object structure dedicated to " +"the weak reference mechanism. The object's constructor should leave it " +"*NULL* (which is automatic when using the default :c:member:`~PyTypeObject." +"tp_alloc`)." +msgstr "" + +#: ../Doc/extending/newtypes.rst:561 +msgid "" +"Set the :c:member:`~PyTypeObject.tp_weaklistoffset` type member to the " +"offset of the aforementioned field in the C object structure, so that the " +"interpreter knows how to access and modify that field." +msgstr "" +"Définissez le membre de type :c:member:`~PyTypeObject.tp_weaklistoffset` à " +"la valeur de décalage (*offset*) du champ susmentionné dans la structure de " +"l'objet *C*, afin que l'interpréteur sache comment accéder à ce champ et le " +"modifier." + +#: ../Doc/extending/newtypes.rst:565 +msgid "" +"Concretely, here is how a trivial object structure would be augmented with " +"the required field::" +msgstr "" +"Concrètement, voici comment une structure d'objet simple serait complétée " +"par le champ requis ::" + +#: ../Doc/extending/newtypes.rst:573 +msgid "And the corresponding member in the statically-declared type object::" +msgstr "" +"Et le membre correspondant dans l'objet de type déclaré statiquement ::" + +#: ../Doc/extending/newtypes.rst:581 +msgid "" +"The only further addition is that ``tp_dealloc`` needs to clear any weak " +"references (by calling :c:func:`PyObject_ClearWeakRefs`) if the field is non-" +"*NULL*::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:597 +msgid "More Suggestions" +msgstr "Plus de suggestions" + +#: ../Doc/extending/newtypes.rst:599 +msgid "" +"In order to learn how to implement any specific method for your new data " +"type, get the :term:`CPython` source code. Go to the :file:`Objects` " +"directory, then search the C source files for ``tp_`` plus the function you " +"want (for example, ``tp_richcompare``). You will find examples of the " +"function you want to implement." +msgstr "" +"Pour savoir comment mettre en œuvre une méthode spécifique pour votre " +"nouveau type de données, téléchargez le code source :term:`CPython`. Allez " +"dans le répertoire :file:`Objects`, puis cherchez dans les fichiers sources " +"*C* la fonction ``tp_`` plus la fonction que vous voulez (par exemple, " +"``tp_richcompare``). Vous trouverez des exemples de la fonction que vous " +"voulez implémenter." + +#: ../Doc/extending/newtypes.rst:605 +msgid "" +"When you need to verify that an object is a concrete instance of the type " +"you are implementing, use the :c:func:`PyObject_TypeCheck` function. A " +"sample of its use might be something like the following::" +msgstr "" +"Lorsque vous avez besoin de vérifier qu'un objet est une instance concrète " +"du type que vous implémentez, utilisez la fonction :c:func:" +"`PyObject_TypeCheck`. Voici un exemple de son utilisation ::" + +#: ../Doc/extending/newtypes.rst:616 +msgid "Download CPython source releases." +msgstr "Télécharger les versions sources de *CPython*." + +#: ../Doc/extending/newtypes.rst:616 +msgid "https://www.python.org/downloads/source/" +msgstr "https://www.python.org/downloads/source/" + +#: ../Doc/extending/newtypes.rst:618 +msgid "" +"The CPython project on GitHub, where the CPython source code is developed." +msgstr "" +"Le projet *CPython* sur *GitHub*, où se trouve le code source *CPython*." + +#: ../Doc/extending/newtypes.rst:619 +msgid "https://github.com/python/cpython" +msgstr "https://github.com/python/cpython" + +#~ msgid "Footnotes" +#~ msgstr "Notes" diff --git a/extending/newtypes_tutorial.po b/extending/newtypes_tutorial.po new file mode 100644 index 000000000..8b3684702 --- /dev/null +++ b/extending/newtypes_tutorial.po @@ -0,0 +1,859 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-06-17 10:15+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/extending/newtypes_tutorial.rst:7 +msgid "Defining Extension Types: Tutorial" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:14 +msgid "" +"Python allows the writer of a C extension module to define new types that " +"can be manipulated from Python code, much like the built-in :class:`str` " +"and :class:`list` types. The code for all extension types follows a " +"pattern, but there are some details that you need to understand before you " +"can get started. This document is a gentle introduction to the topic." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:24 +msgid "The Basics" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:26 +msgid "" +"The :term:`CPython` runtime sees all Python objects as variables of type :c:" +"type:`PyObject\\*`, which serves as a \"base type\" for all Python objects. " +"The :c:type:`PyObject` structure itself only contains the object's :term:" +"`reference count` and a pointer to the object's \"type object\". This is " +"where the action is; the type object determines which (C) functions get " +"called by the interpreter when, for instance, an attribute gets looked up on " +"an object, a method called, or it is multiplied by another object. These C " +"functions are called \"type methods\"." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:35 +msgid "" +"So, if you want to define a new extension type, you need to create a new " +"type object." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:38 +msgid "" +"This sort of thing can only be explained by example, so here's a minimal, " +"but complete, module that defines a new type named :class:`Custom` inside a " +"C extension module :mod:`custom`:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:43 +msgid "" +"What we're showing here is the traditional way of defining *static* " +"extension types. It should be adequate for most uses. The C API also " +"allows defining heap-allocated extension types using the :c:func:" +"`PyType_FromSpec` function, which isn't covered in this tutorial." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:50 +msgid "" +"Now that's quite a bit to take in at once, but hopefully bits will seem " +"familiar from the previous chapter. This file defines three things:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:53 +msgid "" +"What a :class:`Custom` **object** contains: this is the ``CustomObject`` " +"struct, which is allocated once for each :class:`Custom` instance." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:55 +msgid "" +"How the :class:`Custom` **type** behaves: this is the ``CustomType`` struct, " +"which defines a set of flags and function pointers that the interpreter " +"inspects when specific operations are requested." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:58 +msgid "" +"How to initialize the :mod:`custom` module: this is the ``PyInit_custom`` " +"function and the associated ``custommodule`` struct." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:61 +msgid "The first bit is::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:67 +msgid "" +"This is what a Custom object will contain. ``PyObject_HEAD`` is mandatory " +"at the start of each object struct and defines a field called ``ob_base`` of " +"type :c:type:`PyObject`, containing a pointer to a type object and a " +"reference count (these can be accessed using the macros :c:macro:`Py_REFCNT` " +"and :c:macro:`Py_TYPE` respectively). The reason for the macro is to " +"abstract away the layout and to enable additional fields in debug builds." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:75 +msgid "" +"There is no semicolon above after the :c:macro:`PyObject_HEAD` macro. Be " +"wary of adding one by accident: some compilers will complain." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:78 +msgid "" +"Of course, objects generally store additional data besides the standard " +"``PyObject_HEAD`` boilerplate; for example, here is the definition for " +"standard Python floats::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:87 +msgid "The second bit is the definition of the type object. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:100 +msgid "" +"We recommend using C99-style designated initializers as above, to avoid " +"listing all the :c:type:`PyTypeObject` fields that you don't care about and " +"also to avoid caring about the fields' declaration order." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:104 +msgid "" +"The actual definition of :c:type:`PyTypeObject` in :file:`object.h` has many " +"more :ref:`fields ` than the definition above. The remaining " +"fields will be filled with zeros by the C compiler, and it's common practice " +"to not specify them explicitly unless you need them." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:109 +msgid "We're going to pick it apart, one field at a time::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:113 +msgid "" +"This line is mandatory boilerplate to initialize the ``ob_base`` field " +"mentioned above. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:118 +msgid "" +"The name of our type. This will appear in the default textual " +"representation of our objects and in some error messages, for example:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:128 +msgid "" +"Note that the name is a dotted name that includes both the module name and " +"the name of the type within the module. The module in this case is :mod:" +"`custom` and the type is :class:`Custom`, so we set the type name to :class:" +"`custom.Custom`. Using the real dotted import path is important to make your " +"type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:137 +msgid "" +"This is so that Python knows how much memory to allocate when creating new :" +"class:`Custom` instances. :c:member:`~PyTypeObject.tp_itemsize` is only " +"used for variable-sized objects and should otherwise be zero." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:143 +msgid "" +"If you want your type to be subclassable from Python, and your type has the " +"same :c:member:`~PyTypeObject.tp_basicsize` as its base type, you may have " +"problems with multiple inheritance. A Python subclass of your type will " +"have to list your type first in its :attr:`~class.__bases__`, or else it " +"will not be able to call your type's :meth:`__new__` method without getting " +"an error. You can avoid this problem by ensuring that your type has a " +"larger value for :c:member:`~PyTypeObject.tp_basicsize` than its base type " +"does. Most of the time, this will be true anyway, because either your base " +"type will be :class:`object`, or else you will be adding data members to " +"your base type, and therefore increasing its size." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:153 +msgid "We set the class flags to :const:`Py_TPFLAGS_DEFAULT`. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:157 +msgid "" +"All types should include this constant in their flags. It enables all of " +"the members defined until at least Python 3.3. If you need further members, " +"you will need to OR the corresponding flags." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:161 +msgid "" +"We provide a doc string for the type in :c:member:`~PyTypeObject.tp_doc`. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:165 +msgid "" +"To enable object creation, we have to provide a :c:member:`~PyTypeObject." +"tp_new` handler. This is the equivalent of the Python method :meth:" +"`__new__`, but has to be specified explicitly. In this case, we can just " +"use the default implementation provided by the API function :c:func:" +"`PyType_GenericNew`. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:172 +msgid "" +"Everything else in the file should be familiar, except for some code in :c:" +"func:`PyInit_custom`::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:178 +msgid "" +"This initializes the :class:`Custom` type, filling in a number of members to " +"the appropriate default values, including :attr:`ob_type` that we initially " +"set to *NULL*. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:184 +msgid "" +"This adds the type to the module dictionary. This allows us to create :" +"class:`Custom` instances by calling the :class:`Custom` class:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:192 +msgid "" +"That's it! All that remains is to build it; put the above code in a file " +"called :file:`custom.c` and:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:201 +msgid "in a file called :file:`setup.py`; then typing" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:207 +msgid "" +"at a shell should produce a file :file:`custom.so` in a subdirectory; move " +"to that directory and fire up Python --- you should be able to ``import " +"custom`` and play around with Custom objects." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:211 +msgid "That wasn't so hard, was it?" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:213 +msgid "" +"Of course, the current Custom type is pretty uninteresting. It has no data " +"and doesn't do anything. It can't even be subclassed." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:217 +msgid "" +"While this documentation showcases the standard :mod:`distutils` module for " +"building C extensions, it is recommended in real-world use cases to use the " +"newer and better-maintained ``setuptools`` library. Documentation on how to " +"do this is out of scope for this document and can be found in the `Python " +"Packaging User's Guide `_." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:225 +msgid "Adding data and methods to the Basic example" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:227 +msgid "" +"Let's extend the basic example to add some data and methods. Let's also " +"make the type usable as a base class. We'll create a new module, :mod:" +"`custom2` that adds these capabilities:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:234 +msgid "This version of the module has a number of changes." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:236 +msgid "We've added an extra include::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:240 +msgid "" +"This include provides declarations that we use to handle attributes, as " +"described a bit later." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:243 +msgid "" +"The :class:`Custom` type now has three data attributes in its C struct, " +"*first*, *last*, and *number*. The *first* and *last* variables are Python " +"strings containing first and last names. The *number* attribute is a C " +"integer." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:247 +msgid "The object structure is updated accordingly::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:256 +msgid "" +"Because we now have data to manage, we have to be more careful about object " +"allocation and deallocation. At a minimum, we need a deallocation method::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:267 +msgid "which is assigned to the :c:member:`~PyTypeObject.tp_dealloc` member::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:271 +msgid "" +"This method first clears the reference counts of the two Python attributes. :" +"c:func:`Py_XDECREF` correctly handles the case where its argument is *NULL* " +"(which might happen here if ``tp_new`` failed midway). It then calls the :c:" +"member:`~PyTypeObject.tp_free` member of the object's type (computed by " +"``Py_TYPE(self)``) to free the object's memory. Note that the object's type " +"might not be :class:`CustomType`, because the object may be an instance of a " +"subclass." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:280 +msgid "" +"The explicit cast to ``destructor`` above is needed because we defined " +"``Custom_dealloc`` to take a ``CustomObject *`` argument, but the " +"``tp_dealloc`` function pointer expects to receive a ``PyObject *`` " +"argument. Otherwise, the compiler will emit a warning. This is object-" +"oriented polymorphism, in C!" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:286 +msgid "" +"We want to make sure that the first and last names are initialized to empty " +"strings, so we provide a ``tp_new`` implementation::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:310 +msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:314 +msgid "" +"The ``tp_new`` handler is responsible for creating (as opposed to " +"initializing) objects of the type. It is exposed in Python as the :meth:" +"`__new__` method. It is not required to define a ``tp_new`` member, and " +"indeed many extension types will simply reuse :c:func:`PyType_GenericNew` as " +"done in the first version of the ``Custom`` type above. In this case, we " +"use the ``tp_new`` handler to initialize the ``first`` and ``last`` " +"attributes to non-*NULL* default values." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:322 +msgid "" +"``tp_new`` is passed the type being instantiated (not necessarily " +"``CustomType``, if a subclass is instantiated) and any arguments passed when " +"the type was called, and is expected to return the instance created. " +"``tp_new`` handlers always accept positional and keyword arguments, but they " +"often ignore the arguments, leaving the argument handling to initializer (a." +"k.a. ``tp_init`` in C or ``__init__`` in Python) methods." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:330 +msgid "" +"``tp_new`` shouldn't call ``tp_init`` explicitly, as the interpreter will do " +"it itself." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:333 +msgid "" +"The ``tp_new`` implementation calls the :c:member:`~PyTypeObject.tp_alloc` " +"slot to allocate memory::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:338 +msgid "" +"Since memory allocation may fail, we must check the :c:member:`~PyTypeObject." +"tp_alloc` result against *NULL* before proceeding." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:342 +msgid "" +"We didn't fill the :c:member:`~PyTypeObject.tp_alloc` slot ourselves. " +"Rather :c:func:`PyType_Ready` fills it for us by inheriting it from our base " +"class, which is :class:`object` by default. Most types use the default " +"allocation strategy." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:348 +msgid "" +"If you are creating a co-operative :c:member:`~PyTypeObject.tp_new` (one " +"that calls a base type's :c:member:`~PyTypeObject.tp_new` or :meth:" +"`__new__`), you must *not* try to determine what method to call using method " +"resolution order at runtime. Always statically determine what type you are " +"going to call, and call its :c:member:`~PyTypeObject.tp_new` directly, or " +"via ``type->tp_base->tp_new``. If you do not do this, Python subclasses of " +"your type that also inherit from other Python-defined classes may not work " +"correctly. (Specifically, you may not be able to create instances of such " +"subclasses without getting a :exc:`TypeError`.)" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:358 +msgid "" +"We also define an initialization function which accepts arguments to provide " +"initial values for our instance::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:387 +msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:391 +msgid "" +"The :c:member:`~PyTypeObject.tp_init` slot is exposed in Python as the :meth:" +"`__init__` method. It is used to initialize an object after it's created. " +"Initializers always accept positional and keyword arguments, and they should " +"return either ``0`` on success or ``-1`` on error." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:396 +msgid "" +"Unlike the ``tp_new`` handler, there is no guarantee that ``tp_init`` is " +"called at all (for example, the :mod:`pickle` module by default doesn't " +"call :meth:`__init__` on unpickled instances). It can also be called " +"multiple times. Anyone can call the :meth:`__init__` method on our " +"objects. For this reason, we have to be extra careful when assigning the " +"new attribute values. We might be tempted, for example to assign the " +"``first`` member like this::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:410 +msgid "" +"But this would be risky. Our type doesn't restrict the type of the " +"``first`` member, so it could be any kind of object. It could have a " +"destructor that causes code to be executed that tries to access the " +"``first`` member; or that destructor could release the :term:`Global " +"interpreter Lock` and let arbitrary code run in other threads that accesses " +"and modifies our object." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:417 +msgid "" +"To be paranoid and protect ourselves against this possibility, we almost " +"always reassign members before decrementing their reference counts. When " +"don't we have to do this?" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:421 +msgid "when we absolutely know that the reference count is greater than 1;" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:423 +msgid "" +"when we know that deallocation of the object [#]_ will neither release the :" +"term:`GIL` nor cause any calls back into our type's code;" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:426 +msgid "" +"when decrementing a reference count in a :c:member:`~PyTypeObject." +"tp_dealloc` handler on a type which doesn't support cyclic garbage " +"collection [#]_." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:429 +msgid "" +"We want to expose our instance variables as attributes. There are a number " +"of ways to do that. The simplest way is to define member definitions::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:442 +msgid "" +"and put the definitions in the :c:member:`~PyTypeObject.tp_members` slot::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:446 +msgid "" +"Each member definition has a member name, type, offset, access flags and " +"documentation string. See the :ref:`Generic-Attribute-Management` section " +"below for details." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:450 +msgid "" +"A disadvantage of this approach is that it doesn't provide a way to restrict " +"the types of objects that can be assigned to the Python attributes. We " +"expect the first and last names to be strings, but any Python objects can be " +"assigned. Further, the attributes can be deleted, setting the C pointers to " +"*NULL*. Even though we can make sure the members are initialized to non-" +"*NULL* values, the members can be set to *NULL* if the attributes are " +"deleted." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:457 +msgid "" +"We define a single method, :meth:`Custom.name()`, that outputs the objects " +"name as the concatenation of the first and last names. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:474 +msgid "" +"The method is implemented as a C function that takes a :class:`Custom` (or :" +"class:`Custom` subclass) instance as the first argument. Methods always " +"take an instance as the first argument. Methods often take positional and " +"keyword arguments as well, but in this case we don't take any and don't need " +"to accept a positional argument tuple or keyword argument dictionary. This " +"method is equivalent to the Python method:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:486 +msgid "" +"Note that we have to check for the possibility that our :attr:`first` and :" +"attr:`last` members are *NULL*. This is because they can be deleted, in " +"which case they are set to *NULL*. It would be better to prevent deletion " +"of these attributes and to restrict the attribute values to be strings. " +"We'll see how to do that in the next section." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:492 +msgid "" +"Now that we've defined the method, we need to create an array of method " +"definitions::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:502 +msgid "" +"(note that we used the :const:`METH_NOARGS` flag to indicate that the method " +"is expecting no arguments other than *self*)" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:505 +msgid "and assign it to the :c:member:`~PyTypeObject.tp_methods` slot::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:509 +msgid "" +"Finally, we'll make our type usable as a base class for subclassing. We've " +"written our methods carefully so far so that they don't make any assumptions " +"about the type of the object being created or used, so all we need to do is " +"to add the :const:`Py_TPFLAGS_BASETYPE` to our class flag definition::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:516 +msgid "" +"We rename :c:func:`PyInit_custom` to :c:func:`PyInit_custom2`, update the " +"module name in the :c:type:`PyModuleDef` struct, and update the full class " +"name in the :c:type:`PyTypeObject` struct." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:520 +msgid "Finally, we update our :file:`setup.py` file to build the new module:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:533 +msgid "Providing finer control over data attributes" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:535 +msgid "" +"In this section, we'll provide finer control over how the :attr:`first` and :" +"attr:`last` attributes are set in the :class:`Custom` example. In the " +"previous version of our module, the instance variables :attr:`first` and :" +"attr:`last` could be set to non-string values or even deleted. We want to " +"make sure that these attributes always contain strings." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:544 +msgid "" +"To provide greater control, over the :attr:`first` and :attr:`last` " +"attributes, we'll use custom getter and setter functions. Here are the " +"functions for getting and setting the :attr:`first` attribute::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:575 +msgid "" +"The getter function is passed a :class:`Custom` object and a \"closure\", " +"which is a void pointer. In this case, the closure is ignored. (The " +"closure supports an advanced usage in which definition data is passed to the " +"getter and setter. This could, for example, be used to allow a single set of " +"getter and setter functions that decide the attribute to get or set based on " +"data in the closure.)" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:581 +msgid "" +"The setter function is passed the :class:`Custom` object, the new value, and " +"the closure. The new value may be *NULL*, in which case the attribute is " +"being deleted. In our setter, we raise an error if the attribute is deleted " +"or if its new value is not a string." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:586 +msgid "We create an array of :c:type:`PyGetSetDef` structures::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:596 +msgid "and register it in the :c:member:`~PyTypeObject.tp_getset` slot::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:600 +msgid "" +"The last item in a :c:type:`PyGetSetDef` structure is the \"closure\" " +"mentioned above. In this case, we aren't using a closure, so we just pass " +"*NULL*." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:603 +msgid "We also remove the member definitions for these attributes::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:611 +msgid "" +"We also need to update the :c:member:`~PyTypeObject.tp_init` handler to only " +"allow strings [#]_ to be passed::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:640 +msgid "" +"With these changes, we can assure that the ``first`` and ``last`` members " +"are never *NULL* so we can remove checks for *NULL* values in almost all " +"cases. This means that most of the :c:func:`Py_XDECREF` calls can be " +"converted to :c:func:`Py_DECREF` calls. The only place we can't change " +"these calls is in the ``tp_dealloc`` implementation, where there is the " +"possibility that the initialization of these members failed in ``tp_new``." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:647 +msgid "" +"We also rename the module initialization function and module name in the " +"initialization function, as we did before, and we add an extra definition to " +"the :file:`setup.py` file." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:653 +msgid "Supporting cyclic garbage collection" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:655 +msgid "" +"Python has a :term:`cyclic garbage collector (GC) ` that " +"can identify unneeded objects even when their reference counts are not zero. " +"This can happen when objects are involved in cycles. For example, consider:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:665 +msgid "" +"In this example, we create a list that contains itself. When we delete it, " +"it still has a reference from itself. Its reference count doesn't drop to " +"zero. Fortunately, Python's cyclic garbage collector will eventually figure " +"out that the list is garbage and free it." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:670 +msgid "" +"In the second version of the :class:`Custom` example, we allowed any kind of " +"object to be stored in the :attr:`first` or :attr:`last` attributes [#]_. " +"Besides, in the second and third versions, we allowed subclassing :class:" +"`Custom`, and subclasses may add arbitrary attributes. For any of those two " +"reasons, :class:`Custom` objects can participate in cycles:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:684 +msgid "" +"To allow a :class:`Custom` instance participating in a reference cycle to be " +"properly detected and collected by the cyclic GC, our :class:`Custom` type " +"needs to fill two additional slots and to enable a flag that enables these " +"slots:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:691 +msgid "" +"First, the traversal method lets the cyclic GC know about subobjects that " +"could participate in cycles::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:711 +msgid "" +"For each subobject that can participate in cycles, we need to call the :c:" +"func:`visit` function, which is passed to the traversal method. The :c:func:" +"`visit` function takes as arguments the subobject and the extra argument " +"*arg* passed to the traversal method. It returns an integer value that must " +"be returned if it is non-zero." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:717 +msgid "" +"Python provides a :c:func:`Py_VISIT` macro that automates calling visit " +"functions. With :c:func:`Py_VISIT`, we can minimize the amount of " +"boilerplate in ``Custom_traverse``::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:730 +msgid "" +"The :c:member:`~PyTypeObject.tp_traverse` implementation must name its " +"arguments exactly *visit* and *arg* in order to use :c:func:`Py_VISIT`." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:733 +msgid "" +"Second, we need to provide a method for clearing any subobjects that can " +"participate in cycles::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:744 +msgid "" +"Notice the use of the :c:func:`Py_CLEAR` macro. It is the recommended and " +"safe way to clear data attributes of arbitrary types while decrementing " +"their reference counts. If you were to call :c:func:`Py_XDECREF` instead on " +"the attribute before setting it to *NULL*, there is a possibility that the " +"attribute's destructor would call back into code that reads the attribute " +"again (*especially* if there is a reference cycle)." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:752 +msgid "You could emulate :c:func:`Py_CLEAR` by writing::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:759 +msgid "" +"Nevertheless, it is much easier and less error-prone to always use :c:func:" +"`Py_CLEAR` when deleting an attribute. Don't try to micro-optimize at the " +"expense of robustness!" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:763 +msgid "" +"The deallocator ``Custom_dealloc`` may call arbitrary code when clearing " +"attributes. It means the circular GC can be triggered inside the function. " +"Since the GC assumes reference count is not zero, we need to untrack the " +"object from the GC by calling :c:func:`PyObject_GC_UnTrack` before clearing " +"members. Here is our reimplemented deallocator using :c:func:" +"`PyObject_GC_UnTrack` and ``Custom_clear``::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:778 +msgid "" +"Finally, we add the :const:`Py_TPFLAGS_HAVE_GC` flag to the class flags::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:782 +msgid "" +"That's pretty much it. If we had written custom :c:member:`~PyTypeObject." +"tp_alloc` or :c:member:`~PyTypeObject.tp_free` handlers, we'd need to modify " +"them for cyclic garbage collection. Most extensions will use the versions " +"automatically provided." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:788 +msgid "Subclassing other types" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:790 +msgid "" +"It is possible to create new extension types that are derived from existing " +"types. It is easiest to inherit from the built in types, since an extension " +"can easily use the :c:type:`PyTypeObject` it needs. It can be difficult to " +"share these :c:type:`PyTypeObject` structures between extension modules." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:795 +msgid "" +"In this example we will create a :class:`SubList` type that inherits from " +"the built-in :class:`list` type. The new type will be completely compatible " +"with regular lists, but will have an additional :meth:`increment` method " +"that increases an internal counter:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:815 +msgid "" +"As you can see, the source code closely resembles the :class:`Custom` " +"examples in previous sections. We will break down the main differences " +"between them. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:823 +msgid "" +"The primary difference for derived type objects is that the base type's " +"object structure must be the first value. The base type will already " +"include the :c:func:`PyObject_HEAD` at the beginning of its structure." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:827 +msgid "" +"When a Python object is a :class:`SubList` instance, its ``PyObject *`` " +"pointer can be safely cast to both ``PyListObject *`` and ``SubListObject " +"*``::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:839 +msgid "" +"We see above how to call through to the :attr:`__init__` method of the base " +"type." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:842 +msgid "" +"This pattern is important when writing a type with custom :c:member:" +"`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_dealloc` members. " +"The :c:member:`~PyTypeObject.tp_new` handler should not actually create the " +"memory for the object with its :c:member:`~PyTypeObject.tp_alloc`, but let " +"the base class handle it by calling its own :c:member:`~PyTypeObject.tp_new`." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:848 +msgid "" +"The :c:type:`PyTypeObject` struct supports a :c:member:`~PyTypeObject." +"tp_base` specifying the type's concrete base class. Due to cross-platform " +"compiler issues, you can't fill that field directly with a reference to :c:" +"type:`PyList_Type`; it should be done later in the module initialization " +"function::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:871 +msgid "" +"Before calling :c:func:`PyType_Ready`, the type structure must have the :c:" +"member:`~PyTypeObject.tp_base` slot filled in. When we are deriving an " +"existing type, it is not necessary to fill out the :c:member:`~PyTypeObject." +"tp_alloc` slot with :c:func:`PyType_GenericNew` -- the allocation function " +"from the base type will be inherited." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:877 +msgid "" +"After that, calling :c:func:`PyType_Ready` and adding the type object to the " +"module is the same as with the basic :class:`Custom` examples." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:882 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/extending/newtypes_tutorial.rst:883 +msgid "" +"This is true when we know that the object is a basic type, like a string or " +"a float." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:886 +msgid "" +"We relied on this in the :c:member:`~PyTypeObject.tp_dealloc` handler in " +"this example, because our type doesn't support garbage collection." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:889 +msgid "" +"We now know that the first and last members are strings, so perhaps we could " +"be less careful about decrementing their reference counts, however, we " +"accept instances of string subclasses. Even though deallocating normal " +"strings won't call back into our objects, we can't guarantee that " +"deallocating an instance of a string subclass won't call back into our " +"objects." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:895 +msgid "" +"Also, even with our attributes restricted to strings instances, the user " +"could pass arbitrary :class:`str` subclasses and therefore still create " +"reference cycles." +msgstr "" diff --git a/extending/windows.po b/extending/windows.po new file mode 100644 index 000000000..c818f3a3e --- /dev/null +++ b/extending/windows.po @@ -0,0 +1,283 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-09-21 09:15+0200\n" +"PO-Revision-Date: 2019-06-01 23:38+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/extending/windows.rst:8 +msgid "Building C and C++ Extensions on Windows" +msgstr "Construire des extensions C et C++ sur Windows" + +#: ../Doc/extending/windows.rst:10 +msgid "" +"This chapter briefly explains how to create a Windows extension module for " +"Python using Microsoft Visual C++, and follows with more detailed background " +"information on how it works. The explanatory material is useful for both " +"the Windows programmer learning to build Python extensions and the Unix " +"programmer interested in producing software which can be successfully built " +"on both Unix and Windows." +msgstr "" +"Cette page explique rapidement comment créer un module d'extension Windows " +"pour Python en utilisant Microsoft Visual C++, et donne plus d'informations " +"contextuelles sur son fonctionnement. Le texte explicatif est utile tant " +"pour le développeur Windows qui apprend à construire des extensions Python " +"que pour le développeur Unix souhaitant produire des logiciels pouvant être " +"construits sur Unix et Windows." + +#: ../Doc/extending/windows.rst:17 +msgid "" +"Module authors are encouraged to use the distutils approach for building " +"extension modules, instead of the one described in this section. You will " +"still need the C compiler that was used to build Python; typically Microsoft " +"Visual C++." +msgstr "" +"Les auteurs de modules sont invités à utiliser l'approche *distutils* pour " +"construire des modules d'extension, au lieu de celle décrite dans cette " +"section. Vous aurez toujours besoin du compilateur C utilisé pour construire " +"Python ; typiquement Microsoft Visual C++." + +#: ../Doc/extending/windows.rst:24 +msgid "" +"This chapter mentions a number of filenames that include an encoded Python " +"version number. These filenames are represented with the version number " +"shown as ``XY``; in practice, ``'X'`` will be the major version number and " +"``'Y'`` will be the minor version number of the Python release you're " +"working with. For example, if you are using Python 2.2.1, ``XY`` will " +"actually be ``22``." +msgstr "" +"Cette page mentionne plusieurs noms de fichiers comprenant un numéro de " +"version Python encodé. Ces noms de fichiers sont construits sous le format " +"de version ``XY`` ; en pratique, ``'X'`` représente le numéro de version " +"majeure et ``'Y'`` représente le numéro de version mineure de la version " +"Python avec laquelle vous travaillez. Par exemple, si vous utilisez Python " +"2.2.1, ``XY`` correspond à ``22``." + +#: ../Doc/extending/windows.rst:34 +msgid "A Cookbook Approach" +msgstr "Une approche \"recette de cuisine\"" + +#: ../Doc/extending/windows.rst:36 +msgid "" +"There are two approaches to building extension modules on Windows, just as " +"there are on Unix: use the :mod:`distutils` package to control the build " +"process, or do things manually. The distutils approach works well for most " +"extensions; documentation on using :mod:`distutils` to build and package " +"extension modules is available in :ref:`distutils-index`. If you find you " +"really need to do things manually, it may be instructive to study the " +"project file for the :source:`winsound ` standard " +"library module." +msgstr "" +"Il y a deux approches lorsque l'on construit des modules d'extension sur " +"Windows, tout comme sur Unix : utiliser le paquet :mod:`distutils` pour " +"contrôler le processus de construction, ou faire les choses manuellement. " +"L'approche *distutils* fonctionne bien pour la plupart des extensions ; la " +"documentation pour utiliser :mod:`distutils` pour construire et empaqueter " +"les modules d'extension est disponible dans :ref:`distutils-index`. Si vous " +"considérez que vous avez réellement besoin de faire les choses manuellement, " +"il pourrait être enrichissant d'étudier le fichier de projet :source:" +"`winsound ` pour le module de la bibliothèque " +"standard." + +#: ../Doc/extending/windows.rst:48 +msgid "Differences Between Unix and Windows" +msgstr "Différences entre Unix et Windows" + +#: ../Doc/extending/windows.rst:53 +msgid "" +"Unix and Windows use completely different paradigms for run-time loading of " +"code. Before you try to build a module that can be dynamically loaded, be " +"aware of how your system works." +msgstr "" +"\\ Unix et Windows utilisent des paradigmes complètement différents pour le " +"chargement du code pendant l'exécution. Avant d'essayer de construire un " +"module qui puisse être chargé dynamiquement, soyez conscient du mode de " +"fonctionnement du système." + +#: ../Doc/extending/windows.rst:57 +msgid "" +"In Unix, a shared object (:file:`.so`) file contains code to be used by the " +"program, and also the names of functions and data that it expects to find in " +"the program. When the file is joined to the program, all references to " +"those functions and data in the file's code are changed to point to the " +"actual locations in the program where the functions and data are placed in " +"memory. This is basically a link operation." +msgstr "" +"Sur Unix, un fichier objet partagé (:file:`.so`) contient du code servant au " +"programme, ainsi que les noms des fonctions et les données que l'on " +"s'attend à trouver dans le programme. Quand le fichier est attaché au " +"programme, toutes les références à ces fonctions et données dans le code du " +"fichier sont modifiées pour pointer vers les localisations actuelles dans le " +"programme où sont désormais placées les fonctions et données dans la " +"mémoire. C'est tout simplement une opération de liaison." + +#: ../Doc/extending/windows.rst:64 +msgid "" +"In Windows, a dynamic-link library (:file:`.dll`) file has no dangling " +"references. Instead, an access to functions or data goes through a lookup " +"table. So the DLL code does not have to be fixed up at runtime to refer to " +"the program's memory; instead, the code already uses the DLL's lookup table, " +"and the lookup table is modified at runtime to point to the functions and " +"data." +msgstr "" +"Sur Windows, un fichier bibliothèque de liens dynamiques (:file:`.dll`) n'a " +"pas de références paresseuses. A la place, un accès aux fonctions ou données " +"passe par une table de conversion. Cela est fait pour que le code DLL ne " +"doive pas être réarrangé à l'exécution pour renvoyer à la mémoire du " +"programme ; à la place, le code utilise déjà la table de conversion DLL, et " +"cette table est modifiée à l'exécution pour pointer vers les fonctions et " +"données." + +#: ../Doc/extending/windows.rst:70 +msgid "" +"In Unix, there is only one type of library file (:file:`.a`) which contains " +"code from several object files (:file:`.o`). During the link step to create " +"a shared object file (:file:`.so`), the linker may find that it doesn't know " +"where an identifier is defined. The linker will look for it in the object " +"files in the libraries; if it finds it, it will include all the code from " +"that object file." +msgstr "" +"Sur Unix, il n'y a qu'un type de bibliothèque de fichier (:file:`.a`) qui " +"contient du code venant de plusieurs fichiers objets (:file:`.o`). Durant " +"l'étape de liaison pour créer un fichier objet partagé (:file:`.so`), le " +"lieur peut informer qu'il ne sait pas où un identificateur est défini. Le " +"lieur le cherchera dans les fichiers objet dans les bibliothèques ; s'il le " +"trouve, il inclura tout le code provenant de ce fichier objet." + +#: ../Doc/extending/windows.rst:76 +msgid "" +"In Windows, there are two types of library, a static library and an import " +"library (both called :file:`.lib`). A static library is like a Unix :file:`." +"a` file; it contains code to be included as necessary. An import library is " +"basically used only to reassure the linker that a certain identifier is " +"legal, and will be present in the program when the DLL is loaded. So the " +"linker uses the information from the import library to build the lookup " +"table for using identifiers that are not included in the DLL. When an " +"application or a DLL is linked, an import library may be generated, which " +"will need to be used for all future DLLs that depend on the symbols in the " +"application or DLL." +msgstr "" +"Sur Windows, il y a deux types de bibliothèques, une bibliothèque statique " +"et une bibliothèque d'importation (toutes deux appelées :file:`.lib`). Une " +"bibliothèque statique est comme un fichier Unix :file:`.a` ; elle contient " +"du code pouvant être inclus si nécessaire. Une bibliothèque d'importation " +"est uniquement utilisée pour rassurer le lieur qu'un certain identificateur " +"est légal, et sera présent dans le programme quand la DLL est chargée. Comme " +"ça le lieur utilise les informations provenant de la bibliothèque " +"d'importation pour construire la table de conversion pour utiliser les " +"identificateurs qui ne sont pas inclus dans la DLL. Quand une application ou " +"une DLL est liée, une bibliothèque d'importation peut être générée, qui " +"devra être utilisée pour toutes les futures DLL dépendantes aux symboles " +"provenant de l'application ou de la DLL." + +#: ../Doc/extending/windows.rst:86 +msgid "" +"Suppose you are building two dynamic-load modules, B and C, which should " +"share another block of code A. On Unix, you would *not* pass :file:`A.a` to " +"the linker for :file:`B.so` and :file:`C.so`; that would cause it to be " +"included twice, so that B and C would each have their own copy. In Windows, " +"building :file:`A.dll` will also build :file:`A.lib`. You *do* pass :file:" +"`A.lib` to the linker for B and C. :file:`A.lib` does not contain code; it " +"just contains information which will be used at runtime to access A's code." +msgstr "" +"Supposons que vous construisez deux modules de chargement dynamiques, B et " +"C, qui ne devraient pas partager un autre bloc de code avec A. Sur Unix, " +"vous ne transmettrez pas :file:`A.a` au lieur pour :file:`B.so` et :file:`C." +"so` ; cela le ferait être inclus deux fois, pour que B et C aient chacun " +"leur propre copie. Sur Windows, construire :file:`A.dll` construira aussi :" +"file:`A.lib`. Vous transmettez :file:`A.lib` au lieur pour B et C. :file:`A." +"lib` ne contient pas de code ; il contient uniquement des informations qui " +"seront utilisées lors de l'exécution pour accéder au code de A." + +#: ../Doc/extending/windows.rst:94 +msgid "" +"In Windows, using an import library is sort of like using ``import spam``; " +"it gives you access to spam's names, but does not create a separate copy. " +"On Unix, linking with a library is more like ``from spam import *``; it does " +"create a separate copy." +msgstr "" +"Sur Windows, utiliser une bibliothèque d'importation est comme utiliser " +"``import spam``; cela vous donne accès aux noms des spams, mais ne crée par " +"de copie séparée. Sur Unix, se lier à une bibliothèque est plus comme ``from " +"spam import *`` ; cela crée une copie séparée." + +#: ../Doc/extending/windows.rst:103 +msgid "Using DLLs in Practice" +msgstr "Utiliser les DLL en pratique" + +#: ../Doc/extending/windows.rst:108 +msgid "" +"Windows Python is built in Microsoft Visual C++; using other compilers may " +"or may not work (though Borland seems to). The rest of this section is MSVC+" +"+ specific." +msgstr "" +"Le Python de Windows est construit en Microsoft Visual C++ ; utiliser " +"d'autres compilateurs pourrait fonctionner, ou pas (cependant Borland a " +"l'air de fonctionner). Le reste de cette section est spécifique à MSVC++." + +#: ../Doc/extending/windows.rst:112 +msgid "" +"When creating DLLs in Windows, you must pass :file:`pythonXY.lib` to the " +"linker. To build two DLLs, spam and ni (which uses C functions found in " +"spam), you could use these commands::" +msgstr "" +"Lorsque vous créez des DLL sur Windows, vous devez transmettre :file:" +"`pythonXY.lib` au lieur. Pour construire deux DLL, spam et ni (qui utilisent " +"des fonctions C trouvées dans spam), vous pouvez utiliser ces commandes ::" + +#: ../Doc/extending/windows.rst:119 +msgid "" +"The first command created three files: :file:`spam.obj`, :file:`spam.dll` " +"and :file:`spam.lib`. :file:`Spam.dll` does not contain any Python " +"functions (such as :c:func:`PyArg_ParseTuple`), but it does know how to find " +"the Python code thanks to :file:`pythonXY.lib`." +msgstr "" +"La première commande a créé trois fichiers : :file:`spam.obj`, :file:`spam." +"dll` et :file:`spam.lib`. :file:`Spam.dll` ne contient pas de fonctions " +"Python (telles que :c:func:`PyArg_ParseTuple`), mais il sait comment trouver " +"le code Python grâce à :file:`pythonXY.lib`." + +#: ../Doc/extending/windows.rst:124 +msgid "" +"The second command created :file:`ni.dll` (and :file:`.obj` and :file:`." +"lib`), which knows how to find the necessary functions from spam, and also " +"from the Python executable." +msgstr "" +"La seconde commande a créé :file:`ni.dll` (et :file:`.obj` et :file:`.lib`), " +"qui sait comment trouver les fonctions nécessaires dans spam, ainsi qu'à " +"partir de l'exécutable Python." + +#: ../Doc/extending/windows.rst:128 +msgid "" +"Not every identifier is exported to the lookup table. If you want any other " +"modules (including Python) to be able to see your identifiers, you have to " +"say ``_declspec(dllexport)``, as in ``void _declspec(dllexport) " +"initspam(void)`` or ``PyObject _declspec(dllexport) *NiGetSpamData(void)``." +msgstr "" +"Chaque identificateur n'est pas exporté vers la table de conversion. Si vous " +"voulez que tout autre module (y compris Python) soit capable de voir vos " +"identificateurs, vous devez préciser ``_declspec(dllexport)``, comme dans " +"``void _declspec(dllexport) initspam(void)`` ou ``PyObject " +"_declspec(dllexport) *NiGetSpamData(void)``." + +#: ../Doc/extending/windows.rst:133 +msgid "" +"Developer Studio will throw in a lot of import libraries that you do not " +"really need, adding about 100K to your executable. To get rid of them, use " +"the Project Settings dialog, Link tab, to specify *ignore default " +"libraries*. Add the correct :file:`msvcrtxx.lib` to the list of libraries." +msgstr "" +"\\ Developer Studio apportera beaucoup de bibliothèques d'importation dont " +"vous n'avez pas vraiment besoin, augmentant d'environ 100ko votre " +"exécutable. Pour s'en débarrasser, allez dans les Paramètres du Projet, " +"onglet Lien, pour préciser *ignorer les bibliothèques par défaut*. Et la :" +"file:`msvcrtxx.lib` correcte à la liste des bibliothèques." diff --git a/faq/design.po b/faq/design.po new file mode 100644 index 000000000..0c6abcda3 --- /dev/null +++ b/faq/design.po @@ -0,0 +1,1528 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-03-21 21:04+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/faq/design.rst:3 +msgid "Design and History FAQ" +msgstr "FAQ histoire et design" + +#: ../Doc/faq/design.rst:6 +msgid "Contents" +msgstr "Sommaire" + +#: ../Doc/faq/design.rst:11 +msgid "Why does Python use indentation for grouping of statements?" +msgstr "" +"Pourquoi Python utilise-t-il l'indentation pour grouper les instructions ?" + +#: ../Doc/faq/design.rst:13 +msgid "" +"Guido van Rossum believes that using indentation for grouping is extremely " +"elegant and contributes a lot to the clarity of the average Python program. " +"Most people learn to love this feature after a while." +msgstr "" +"Guido van Rossum considère que l'usage de l'indentation pour regrouper les " +"blocs d'instruction est élégant et contribue énormément à la clarté globale " +"du programme Python. La plupart des gens finissent par aimer cette " +"particularité au bout d'un moment." + +#: ../Doc/faq/design.rst:17 +msgid "" +"Since there are no begin/end brackets there cannot be a disagreement between " +"grouping perceived by the parser and the human reader. Occasionally C " +"programmers will encounter a fragment of code like this::" +msgstr "" +"Comme il n'y a pas d'accolades de début/fin, il ne peut y avoir de " +"différence entre le bloc perçu par l'analyseur syntaxique et le lecteur " +"humain. Parfois les programmeurs C pourront trouver un morceau de code comme " +"celui-ci ::" + +#: ../Doc/faq/design.rst:26 +msgid "" +"Only the ``x++`` statement is executed if the condition is true, but the " +"indentation leads you to believe otherwise. Even experienced C programmers " +"will sometimes stare at it a long time wondering why ``y`` is being " +"decremented even for ``x > y``." +msgstr "" +"Seule l'instruction ``x++`` sera exécutée si la condition est vraie, mais " +"l'indentation pourrait vous faire penser le contraire. Mêmes des " +"développeurs C expérimentés resteront pendant un moment à se demander " +"pourquoi ``y`` est décrémenté même si ``x > y``." + +#: ../Doc/faq/design.rst:31 +msgid "" +"Because there are no begin/end brackets, Python is much less prone to coding-" +"style conflicts. In C there are many different ways to place the braces. If " +"you're used to reading and writing code that uses one style, you will feel " +"at least slightly uneasy when reading (or being required to write) another " +"style." +msgstr "" +"Comme il n'y a pas d'accolades de début/fin, Python est moins sujet aux " +"conflits de style de code. En C, on peut placer les accolades de nombreuses " +"façons. Si vous êtes habitués à lire et écrire selon un style particulier, " +"vous pourriez vous sentir perturbé en lisant (ou en devant écrire) avec un " +"autre style." + +#: ../Doc/faq/design.rst:36 +msgid "" +"Many coding styles place begin/end brackets on a line by themselves. This " +"makes programs considerably longer and wastes valuable screen space, making " +"it harder to get a good overview of a program. Ideally, a function should " +"fit on one screen (say, 20--30 lines). 20 lines of Python can do a lot more " +"work than 20 lines of C. This is not solely due to the lack of begin/end " +"brackets -- the lack of declarations and the high-level data types are also " +"responsible -- but the indentation-based syntax certainly helps." +msgstr "" +"Nombre de styles de programmation utilisent des accolades de début/fin sur " +"une ligne à part. Cela rend les programmes beaucoup plus longs et fait " +"perdre une bonne partie de l'espace visible sur l'écran, empêchant un peu " +"d'avoir une vue globale du programme. Idéalement, une fonction doit être " +"visible sur un écran (environ 20 ou 30 lignes). 20 lignes de Python peuvent " +"faire beaucoup plus que 20 lignes de C. Ce n'est pas seulement dû à " +"l'absence d'accolades de début/fin -- l'absence de déclarations et la " +"présence de types de haut-niveau en sont également responsables -- mais la " +"syntaxe basée sur l'indentation aide sûrement." + +#: ../Doc/faq/design.rst:46 +msgid "Why am I getting strange results with simple arithmetic operations?" +msgstr "" +"Pourquoi ai-je d'étranges résultats suite à de simples opérations " +"arithmétiques ?" + +#: ../Doc/faq/design.rst:48 +msgid "See the next question." +msgstr "Voir la question suivante." + +#: ../Doc/faq/design.rst:52 +msgid "Why are floating-point calculations so inaccurate?" +msgstr "Pourquoi les calculs à virgules flottantes sont si imprécis ?" + +#: ../Doc/faq/design.rst:54 +msgid "Users are often surprised by results like this::" +msgstr "Les gens sont très souvent surpris par des résultats comme celui-ci ::" + +#: ../Doc/faq/design.rst:59 +msgid "" +"and think it is a bug in Python. It's not. This has little to do with " +"Python, and much more to do with how the underlying platform handles " +"floating-point numbers." +msgstr "" +"et pensent que c'est un *bug* dans Python. Ça ne l'est pas. Ceci n'a " +"d'ailleurs que peu à voir avec Python, mais avec la manière dont la " +"plateforme sous-jacente gère les nombres à virgule flottante." + +#: ../Doc/faq/design.rst:63 +msgid "" +"The :class:`float` type in CPython uses a C ``double`` for storage. A :" +"class:`float` object's value is stored in binary floating-point with a fixed " +"precision (typically 53 bits) and Python uses C operations, which in turn " +"rely on the hardware implementation in the processor, to perform floating-" +"point operations. This means that as far as floating-point operations are " +"concerned, Python behaves like many popular languages including C and Java." +msgstr "" +"La classe :class:`float` dans CPython utilise le type double du langage C " +"comme stockage. La valeur d'un objet :class:`float` est stockée dans un " +"format binaire à virgule flottante avec une précision fixe (généralement 53 " +"bits). Python utilise des opérations qui proviennent du langage C qui à leur " +"tour reposent sur l'implémentation au niveau du processeur afin d'effectuer " +"des opérations en virgule flottante. Cela signifie que dans le cadre des " +"opérations sur les nombres à virgule flottante, Python se comporte comme " +"beaucoup de langages populaires dont C et Java." + +#: ../Doc/faq/design.rst:70 +msgid "" +"Many numbers that can be written easily in decimal notation cannot be " +"expressed exactly in binary floating-point. For example, after::" +msgstr "" +"Beaucoup de nombres pouvant être écrits facilement en notation décimale ne " +"peuvent pas s'exprimer de manière exacte en binaire à virgule flottante. Par " +"exemple, après ::" + +#: ../Doc/faq/design.rst:75 +msgid "" +"the value stored for ``x`` is a (very good) approximation to the decimal " +"value ``1.2``, but is not exactly equal to it. On a typical machine, the " +"actual stored value is::" +msgstr "" +"la valeur stockée pour ``x`` est une (très bonne) approximation de la valeur " +"décimale ``1.2``, mais cette valeur n'est pas exacte. Sur une machine " +"typique, la valeur stockée est en fait ::" + +#: ../Doc/faq/design.rst:81 +msgid "which is exactly::" +msgstr "qui est, exactement ::" + +#: ../Doc/faq/design.rst:85 +msgid "" +"The typical precision of 53 bits provides Python floats with 15--16 decimal " +"digits of accuracy." +msgstr "" +"La précision typique de 53 bits des *floats* Python permet une précision de " +"15--16 décimales." + +#: ../Doc/faq/design.rst:88 +msgid "" +"For a fuller explanation, please see the :ref:`floating point arithmetic " +"` chapter in the Python tutorial." +msgstr "" +"Veuillez vous référer au chapitre sur :ref:`floating point arithmetic ` du tutoriel python pour de plus amples informations." + +#: ../Doc/faq/design.rst:93 +msgid "Why are Python strings immutable?" +msgstr "Pourquoi les chaînes de caractères Python sont-elles immuables ?" + +#: ../Doc/faq/design.rst:95 +msgid "There are several advantages." +msgstr "Il y a plusieurs avantages." + +#: ../Doc/faq/design.rst:97 +msgid "" +"One is performance: knowing that a string is immutable means we can allocate " +"space for it at creation time, and the storage requirements are fixed and " +"unchanging. This is also one of the reasons for the distinction between " +"tuples and lists." +msgstr "" +"La première concerne la performance : savoir qu'une chaîne de caractères est " +"immuable signifie que l'allocation mémoire allouée lors de la création de " +"cette chaîne est fixe et figée. C'est aussi l'une des raisons pour " +"lesquelles on fait la distinction entre les *tuples* et les listes." + +#: ../Doc/faq/design.rst:102 +msgid "" +"Another advantage is that strings in Python are considered as \"elemental\" " +"as numbers. No amount of activity will change the value 8 to anything else, " +"and in Python, no amount of activity will change the string \"eight\" to " +"anything else." +msgstr "" +"Un autre avantage est que les chaînes en Python sont considérées aussi " +"\"élémentaires\" que les nombres. Aucun processus ne changera la valeur du " +"nombre 8 en autre chose, et en Python, aucun processus changera la chaîne de " +"caractère \"huit\" en autre chose." + +#: ../Doc/faq/design.rst:110 +msgid "Why must 'self' be used explicitly in method definitions and calls?" +msgstr "" +"Pourquoi \"self\" doit-il être explicitement utilisé dans les définitions et " +"les appels de méthode ?" + +#: ../Doc/faq/design.rst:112 +msgid "" +"The idea was borrowed from Modula-3. It turns out to be very useful, for a " +"variety of reasons." +msgstr "" +"L'idée a été empruntée à Modula-3. Il s'avère être très utile, pour diverses " +"raisons." + +#: ../Doc/faq/design.rst:115 +msgid "" +"First, it's more obvious that you are using a method or instance attribute " +"instead of a local variable. Reading ``self.x`` or ``self.meth()`` makes it " +"absolutely clear that an instance variable or method is used even if you " +"don't know the class definition by heart. In C++, you can sort of tell by " +"the lack of a local variable declaration (assuming globals are rare or " +"easily recognizable) -- but in Python, there are no local variable " +"declarations, so you'd have to look up the class definition to be sure. " +"Some C++ and Java coding standards call for instance attributes to have an " +"``m_`` prefix, so this explicitness is still useful in those languages, too." +msgstr "" +"Tout d'abord, il est plus évident d'utiliser une méthode ou un attribut " +"d'instance par exemple au lieu d'une variable locale. Lire ``self.x`` ou " +"``self.meth()`` est sans ambiguïté sur le fait que c'est une variable " +"d'instance ou une méthode qui est utilisée, même si vous ne connaissez pas " +"la définition de classe par cœur. En C++, vous pouvez les reconnaitre par " +"l'absence d'une déclaration de variable locale (en supposant que les " +"variables globales sont rares ou facilement reconnaissables) -- mais en " +"Python, il n'y a pas de déclarations de variables locales, de sorte que vous " +"devez chercher la définition de classe pour être sûr. Certaines normes de " +"programmation C++ et Java préfixent les attributs d'instance par ``m_``. " +"Cette syntaxe explicite est ainsi utile également pour ces langages." + +#: ../Doc/faq/design.rst:125 +msgid "" +"Second, it means that no special syntax is necessary if you want to " +"explicitly reference or call the method from a particular class. In C++, if " +"you want to use a method from a base class which is overridden in a derived " +"class, you have to use the ``::`` operator -- in Python you can write " +"``baseclass.methodname(self, )``. This is particularly " +"useful for :meth:`__init__` methods, and in general in cases where a derived " +"class method wants to extend the base class method of the same name and thus " +"has to call the base class method somehow." +msgstr "" +"Ensuite, ça veut dire qu'aucune syntaxe spéciale n'est nécessaire si vous " +"souhaitez explicitement référencer ou appeler la méthode depuis une classe " +"en particulier. En C++, si vous utilisez la méthode d'une classe de base " +"elle-même surchargée par une classe dérivée, vous devez utiliser l'opérateur " +"``::`` -- en Python vous pouvez écrire ``baseclass.methodname(self, " +")``. C'est particulièrement utile pour les méthodes :meth:" +"`__init__`, et de manière générale dans les cas où une classe dérivée veut " +"étendre la méthode du même nom de la classe de base, devant ainsi appeler la " +"méthode de la classe de base d'une certaine manière." + +#: ../Doc/faq/design.rst:134 +msgid "" +"Finally, for instance variables it solves a syntactic problem with " +"assignment: since local variables in Python are (by definition!) those " +"variables to which a value is assigned in a function body (and that aren't " +"explicitly declared global), there has to be some way to tell the " +"interpreter that an assignment was meant to assign to an instance variable " +"instead of to a local variable, and it should preferably be syntactic (for " +"efficiency reasons). C++ does this through declarations, but Python doesn't " +"have declarations and it would be a pity having to introduce them just for " +"this purpose. Using the explicit ``self.var`` solves this nicely. " +"Similarly, for using instance variables, having to write ``self.var`` means " +"that references to unqualified names inside a method don't have to search " +"the instance's directories. To put it another way, local variables and " +"instance variables live in two different namespaces, and you need to tell " +"Python which namespace to use." +msgstr "" +"Enfin, pour des variables d'instance, ça résout un problème syntactique pour " +"l'assignation : puisque les variables locales en Python sont (par " +"définition !) ces variables auxquelles les valeurs sont assignées dans le " +"corps d'une fonction (et n'étant pas déclarées explicitement globales), il " +"doit y avoir un moyen de dire à l'interpréteur qu'une assignation est censée " +"assigner une variable d'instance plutôt qu'une variable locale, et doit de " +"préférence être syntactique (pour des raisons d'efficacité). C++ fait ça au " +"travers de déclarations, mais Python n'a pas de déclarations et ça serait " +"dommage d'avoir à les introduire juste pour cette raison. Utiliser " +"explicitement ``self.var`` résout ça avec élégance. Pareillement, pour " +"utiliser des variables d'instance, avoir à écrire ``self.var`` signifie que " +"les références vers des noms non-qualifiés au sein d'une méthode n'ont pas à " +"être cherchés dans l'annuaire d'instances. En d'autres termes, les variables " +"locales et les variables d'instance vivent dans deux différents espaces de " +"nommage, et vous devez dire à Python quel espace de nommage utiliser." + +#: ../Doc/faq/design.rst:150 +msgid "Why can't I use an assignment in an expression?" +msgstr "Pourquoi ne puis-je pas utiliser d'assignation dans une expression ?" + +#: ../Doc/faq/design.rst:152 +msgid "" +"Many people used to C or Perl complain that they want to use this C idiom:" +msgstr "" +"De nombreuses personnes habituées à C ou Perl se plaignent de vouloir " +"utiliser cet idiome C :" + +#: ../Doc/faq/design.rst:160 +msgid "where in Python you're forced to write this::" +msgstr "où en Python vous êtes forcé à écrire ceci ::" + +#: ../Doc/faq/design.rst:168 +msgid "" +"The reason for not allowing assignment in Python expressions is a common, " +"hard-to-find bug in those other languages, caused by this construct:" +msgstr "" +"La raison pour ne pas autoriser l'assignation dans les expressions en Python " +"est un bug fréquent, et difficile à trouver dans ces autres langages, causé " +"par cette construction :" + +#: ../Doc/faq/design.rst:180 +msgid "" +"The error is a simple typo: ``x = 0``, which assigns 0 to the variable " +"``x``, was written while the comparison ``x == 0`` is certainly what was " +"intended." +msgstr "" +"Cette erreur est une simple coquille : ``x = 0``, qui assigne 0 à la " +"variable ``x``, a été écrit alors que la comparaison ``x == 0`` est " +"certainement ce qui était souhaité." + +#: ../Doc/faq/design.rst:183 +msgid "" +"Many alternatives have been proposed. Most are hacks that save some typing " +"but use arbitrary or cryptic syntax or keywords, and fail the simple " +"criterion for language change proposals: it should intuitively suggest the " +"proper meaning to a human reader who has not yet been introduced to the " +"construct." +msgstr "" +"De nombreuses alternatives ont été proposées. La plupart économisaient " +"quelques touches mais utilisaient des mots clefs ou des syntaxes arbitraires " +"ou cryptiques, et manquaient à la règle que toute proposition de changement " +"de langage devrait respecter : elle doit intuitivement suggérer la bonne " +"signification au lecteur qui n'a pas encore été introduit à cette syntaxe." + +#: ../Doc/faq/design.rst:188 +msgid "" +"An interesting phenomenon is that most experienced Python programmers " +"recognize the ``while True`` idiom and don't seem to be missing the " +"assignment in expression construct much; it's only newcomers who express a " +"strong desire to add this to the language." +msgstr "" +"Un phénomène intéressant est que la plupart des programmeurs Python " +"expérimentés reconnaissent l'idiome ``while True`` et ne semblent pas " +"manquer l'assignation dans la construction de l'expression; seuls les " +"nouveaux-venus expriment un fort désir d'ajouter ceci au langage." + +#: ../Doc/faq/design.rst:193 +msgid "" +"There's an alternative way of spelling this that seems attractive but is " +"generally less robust than the \"while True\" solution::" +msgstr "" +"Il y a une manière alternative de faire ça qui semble attrayante mais elle " +"est généralement moins robuste que la solution ``while True`` ::" + +#: ../Doc/faq/design.rst:201 +msgid "" +"The problem with this is that if you change your mind about exactly how you " +"get the next line (e.g. you want to change it into ``sys.stdin.readline()``) " +"you have to remember to change two places in your program -- the second " +"occurrence is hidden at the bottom of the loop." +msgstr "" +"Le problème avec ceci est que si vous changez d'avis sur la manière dont " +"vous allez récupérer la prochaine ligne (ex : vous voulez changer en ``sys." +"stdin.readline()``) vous devez vous souvenir de le changer à deux endroits " +"dans votre programme -- la deuxième occurrence est cachée en bas de la " +"boucle." + +#: ../Doc/faq/design.rst:206 +msgid "" +"The best approach is to use iterators, making it possible to loop through " +"objects using the ``for`` statement. For example, :term:`file objects ` support the iterator protocol, so you can write simply::" +msgstr "" +"La meilleur approche est d'utiliser les itérateurs, rendant possible de " +"parcourir des objets en utilisant l'instruction ``for``. Par exemple, les :" +"term:`objets fichiers ` gèrent le protocole d'itération, donc " +"vous pouvez simplement écrire ::" + +#: ../Doc/faq/design.rst:216 +msgid "" +"Why does Python use methods for some functionality (e.g. list.index()) but " +"functions for other (e.g. len(list))?" +msgstr "" +"Pourquoi Python utilise des méthodes pour certaines fonctionnalités (ex : " +"``list.index()``) mais des fonctions pour d'autres (ex : ``len(list)``) ?" + +#: ../Doc/faq/design.rst:218 +msgid "As Guido said:" +msgstr "Comme l'a dit Guido :" + +#: ../Doc/faq/design.rst:220 +msgid "" +"(a) For some operations, prefix notation just reads better than postfix -- " +"prefix (and infix!) operations have a long tradition in mathematics which " +"likes notations where the visuals help the mathematician thinking about a " +"problem. Compare the easy with which we rewrite a formula like x*(a+b) into " +"x*a + x*b to the clumsiness of doing the same thing using a raw OO notation." +msgstr "" +"(a) Pour certaines opérations, la notation préfixe se lit mieux que celle " +"suffixe -- les opérations préfixe (et infixe !) sont une longue tradition en " +"mathématique, où on apprécie les notations qui aident visuellement le " +"mathématicien à réfléchir sur un problème. Comparez la facilité avec " +"laquelle nous réécrivons une formule comme x*(a+b) en x*a + x*b à la " +"lourdeur de faire la même chose avec une notation orientée objet brute." + +#: ../Doc/faq/design.rst:227 +msgid "" +"(b) When I read code that says len(x) I *know* that it is asking for the " +"length of something. This tells me two things: the result is an integer, and " +"the argument is some kind of container. To the contrary, when I read x." +"len(), I have to already know that x is some kind of container implementing " +"an interface or inheriting from a class that has a standard len(). Witness " +"the confusion we occasionally have when a class that is not implementing a " +"mapping has a get() or keys() method, or something that isn't a file has a " +"write() method." +msgstr "" +"(b) Quand je lis du code qui dit ``len(x)`` *je sais* qu'il demande la " +"longueur de quelque chose. Cela me dit deux choses : le résultat est un " +"entier, et l'argument est une sorte de conteneur. Au contraire, quand je lis " +"``x.len()``, je dois déjà savoir que x est une sorte de conteneur " +"implémentant une interface ou héritant d'une classe qui a un ``len()`` " +"standard. Voyez la confusion qui arrive parfois quand une classe qui " +"n'implémente pas une interface de dictionnaire a une méthode ``get()`` ou " +"``key()``, ou quand un objet qui n'est pas un fichier implémente une méthode " +"``write()``." + +#: ../Doc/faq/design.rst:254 +msgid "https://mail.python.org/pipermail/python-3000/2006-November/004643.html" +msgstr "" +"https://mail.python.org/pipermail/python-3000/2006-November/004643.html" + +#: ../Doc/faq/design.rst:240 +msgid "Why is join() a string method instead of a list or tuple method?" +msgstr "" +"Pourquoi ``join()`` est une méthode de chaîne plutôt qu'une de liste ou de " +"tuple ?" + +#: ../Doc/faq/design.rst:242 +msgid "" +"Strings became much more like other standard types starting in Python 1.6, " +"when methods were added which give the same functionality that has always " +"been available using the functions of the string module. Most of these new " +"methods have been widely accepted, but the one which appears to make some " +"programmers feel uncomfortable is::" +msgstr "" +"Les chaînes sont devenues bien plus comme d'autres types standards à partir " +"de Python 1.6, lorsque les méthodes ont été ajoutées fournissant ainsi les " +"mêmes fonctionnalités que celles qui étaient déjà disponibles en utilisant " +"les fonctions du module string. La plupart de ces nouvelles méthodes ont été " +"largement acceptées, mais celle qui semble rendre certains programmeurs " +"inconfortables est ::" + +#: ../Doc/faq/design.rst:250 +msgid "which gives the result::" +msgstr "qui donne le résultat ::" + +#: ../Doc/faq/design.rst:254 +msgid "There are two common arguments against this usage." +msgstr "Il y a deux arguments fréquents contre cet usage." + +#: ../Doc/faq/design.rst:256 +msgid "" +"The first runs along the lines of: \"It looks really ugly using a method of " +"a string literal (string constant)\", to which the answer is that it might, " +"but a string literal is just a fixed value. If the methods are to be allowed " +"on names bound to strings there is no logical reason to make them " +"unavailable on literals." +msgstr "" +"Le premier se caractérise par les lignes suivantes : \"C'est vraiment moche " +"d'utiliser une méthode de chaîne littérale (chaîne constante)\", à laquelle " +"la réponse est qu'il se peut, mais une chaîne littérale est juste une valeur " +"fixe. Si la méthode est autorisée sur des noms liés à des chaînes, il n'y a " +"pas de raison logique à les rendre indisponibles sur des chaînes littérales." + +#: ../Doc/faq/design.rst:262 +msgid "" +"The second objection is typically cast as: \"I am really telling a sequence " +"to join its members together with a string constant\". Sadly, you aren't. " +"For some reason there seems to be much less difficulty with having :meth:" +"`~str.split` as a string method, since in that case it is easy to see that ::" +msgstr "" +"La deuxième objection se réfère typiquement à : \"Je suis réellement en " +"train de dire à une séquence de joindre ses membres avec une constante de " +"chaîne\". Malheureusement, vous ne l'êtes pas. Pour quelque raison, il " +"semble être bien moins difficile d'avoir :meth:`~str.split` en tant que " +"méthode de chaîne, puisque dans ce cas il est facile de voir que ::" + +#: ../Doc/faq/design.rst:269 +msgid "" +"is an instruction to a string literal to return the substrings delimited by " +"the given separator (or, by default, arbitrary runs of white space)." +msgstr "" +"est une instruction à une chaîne littérale de renvoyer les sous-chaînes " +"délimitées par le séparateur fournit (ou, par défaut, les espaces, ou " +"groupes d'espaces)." + +#: ../Doc/faq/design.rst:272 +msgid "" +":meth:`~str.join` is a string method because in using it you are telling the " +"separator string to iterate over a sequence of strings and insert itself " +"between adjacent elements. This method can be used with any argument which " +"obeys the rules for sequence objects, including any new classes you might " +"define yourself. Similar methods exist for bytes and bytearray objects." +msgstr "" +":meth:`~str.join` est une méthode de chaîne parce qu'en l'utilisant vous " +"dites au séparateur de chaîne d'itérer une séquence de chaînes et de " +"s'insérer entre les éléments adjacents. Cette méthode peut être utilisée " +"avec n'importe quel argument qui obéit aux règles d'objets séquence, " +"incluant n'importe quelles nouvelles classes que vous pourriez définir vous-" +"même. Des méthodes similaires existent pour des objets ``bytes`` et " +"``bytearray``." + +#: ../Doc/faq/design.rst:280 +msgid "How fast are exceptions?" +msgstr "À quel point les exceptions sont-elles rapides ?" + +#: ../Doc/faq/design.rst:282 +msgid "" +"A try/except block is extremely efficient if no exceptions are raised. " +"Actually catching an exception is expensive. In versions of Python prior to " +"2.0 it was common to use this idiom::" +msgstr "" +"Un bloc ``try`` / ``except`` est extrêmement efficient tant qu'aucune " +"exception ne sont levée. En effet, intercepter une exception s'avère " +"coûteux. Dans les versions de précédant Python 2.0, il était courant " +"d'utiliser cette pratique ::" + +#: ../Doc/faq/design.rst:292 +msgid "" +"This only made sense when you expected the dict to have the key almost all " +"the time. If that wasn't the case, you coded it like this::" +msgstr "" +"Cela n'a de sens que si vous vous attendez à ce que le dictionnaire ait la " +"clé presque tout le temps. Si ce n'était pas le cas, vous l'auriez codé " +"comme suit ::" + +#: ../Doc/faq/design.rst:300 +msgid "" +"For this specific case, you could also use ``value = dict.setdefault(key, " +"getvalue(key))``, but only if the ``getvalue()`` call is cheap enough " +"because it is evaluated in all cases." +msgstr "" +"Pour ce cas, vous pouvez également utiliser ``value = dict.setdefault(key, " +"getvalue(key))``, mais seulement si l'appel à ``getvalue()`` est " +"suffisamment peu coûteux car il est évalué dans tous les cas." + +#: ../Doc/faq/design.rst:306 +msgid "Why isn't there a switch or case statement in Python?" +msgstr "" +"Pourquoi n'y a-t-il pas une instruction *switch* ou une structure similaire " +"à *switch / case* en Python ?" + +#: ../Doc/faq/design.rst:308 +msgid "" +"You can do this easily enough with a sequence of ``if... elif... elif... " +"else``. There have been some proposals for switch statement syntax, but " +"there is no consensus (yet) on whether and how to do range tests. See :pep:" +"`275` for complete details and the current status." +msgstr "" +"Vous pouvez le faire assez facilement avec une séquence de ``if... elif... " +"elif... else``. Il y a eu quelques propositions pour la syntaxe de " +"l'instruction ``switch``, mais il n'y a pas (encore) de consensus sur le cas " +"des intervalles. Voir la :pep:`275` pour tous les détails et l'état actuel." + +#: ../Doc/faq/design.rst:313 +msgid "" +"For cases where you need to choose from a very large number of " +"possibilities, you can create a dictionary mapping case values to functions " +"to call. For example::" +msgstr "" +"Dans les cas où vous devez choisir parmi un très grand nombre de " +"possibilités, vous pouvez créer un dictionnaire faisant correspondre des " +"valeurs à des fonctions à appeler. Par exemple ::" + +#: ../Doc/faq/design.rst:327 +msgid "" +"For calling methods on objects, you can simplify yet further by using the :" +"func:`getattr` built-in to retrieve methods with a particular name::" +msgstr "" +"Pour appeler les méthodes sur des objets, vous pouvez simplifier davantage " +"en utilisant la fonction native :func:`getattr` pour récupérer les méthodes " +"avec un nom donné ::" + +#: ../Doc/faq/design.rst:339 +msgid "" +"It's suggested that you use a prefix for the method names, such as " +"``visit_`` in this example. Without such a prefix, if values are coming " +"from an untrusted source, an attacker would be able to call any method on " +"your object." +msgstr "" +"Il est suggéré que vous utilisiez un préfixe pour les noms de méthodes, " +"telles que ``visit_`` dans cet exemple. Sans ce préfixe, si les valeurs " +"proviennent d'une source non fiable, un attaquant serait en mesure d'appeler " +"n'importe quelle méthode sur votre objet." + +#: ../Doc/faq/design.rst:345 +msgid "" +"Can't you emulate threads in the interpreter instead of relying on an OS-" +"specific thread implementation?" +msgstr "" +"Est-il possible d'émuler des fils d'exécution dans l'interpréteur plutôt que " +"se baser sur les implémentations spécifique aux OS ?" + +#: ../Doc/faq/design.rst:347 +msgid "" +"Answer 1: Unfortunately, the interpreter pushes at least one C stack frame " +"for each Python stack frame. Also, extensions can call back into Python at " +"almost random moments. Therefore, a complete threads implementation " +"requires thread support for C." +msgstr "" +"Réponse 1 : Malheureusement, l'interpréteur pousse au moins un bloc de pile " +"C (*stack frame*) pour chaque bloc de pile de Python. Aussi, les extensions " +"peuvent rappeler dans Python à presque n'importe quel moment. Par " +"conséquent, une implémentation complète des fils d'exécution nécessiterai un " +"support complet en C." + +#: ../Doc/faq/design.rst:352 +msgid "" +"Answer 2: Fortunately, there is `Stackless Python `_, which has a completely redesigned " +"interpreter loop that avoids the C stack." +msgstr "" +"Réponse 2 : heureusement, il existe `Stackless Python `_, qui a complètement ré-architecturé la " +"boucle principale de l'interpréteur afin de ne pas utiliser la pile C." + +#: ../Doc/faq/design.rst:357 +msgid "Why can't lambda expressions contain statements?" +msgstr "" +"Pourquoi les expressions lambda ne peuvent pas contenir d'instructions ?" + +#: ../Doc/faq/design.rst:359 +msgid "" +"Python lambda expressions cannot contain statements because Python's " +"syntactic framework can't handle statements nested inside expressions. " +"However, in Python, this is not a serious problem. Unlike lambda forms in " +"other languages, where they add functionality, Python lambdas are only a " +"shorthand notation if you're too lazy to define a function." +msgstr "" +"Les expressions lambda de Python ne peuvent pas contenir d'instructions " +"parce que le cadre syntaxique de Python ne peut pas gérer les instructions " +"imbriquées à l'intérieur d'expressions. Cependant, en Python, ce n'est pas " +"vraiment un problème. Contrairement aux formes lambda dans d'autres " +"langages, où elles ajoutent des fonctionnalités, les expressions lambda de " +"Python sont seulement une notation concise si vous êtes trop paresseux pour " +"définir une fonction." + +#: ../Doc/faq/design.rst:365 +msgid "" +"Functions are already first class objects in Python, and can be declared in " +"a local scope. Therefore the only advantage of using a lambda instead of a " +"locally-defined function is that you don't need to invent a name for the " +"function -- but that's just a local variable to which the function object " +"(which is exactly the same type of object that a lambda expression yields) " +"is assigned!" +msgstr "" +"Les fonctions sont déjà des objets de première classe en Python et peuvent " +"être déclarées dans une portée locale. L'unique avantage d'utiliser une " +"fonction lambda au lieu d'une fonction définie localement est que vous " +"n'avez nullement besoin d'un nom pour la fonction -- Mais c'est juste une " +"variable locale à laquelle est affecté l'objet fonction (qui est exactement " +"le même type d'objet qui donne une expression lambda) !" + +#: ../Doc/faq/design.rst:373 +msgid "Can Python be compiled to machine code, C or some other language?" +msgstr "" +"Python peut-il être compilé en code machine, en C ou dans un autre langage ?" + +#: ../Doc/faq/design.rst:375 +msgid "" +"`Cython `_ compiles a modified version of Python with " +"optional annotations into C extensions. `Nuitka `_ " +"is an up-and-coming compiler of Python into C++ code, aiming to support the " +"full Python language. For compiling to Java you can consider `VOC `_." +msgstr "" +"`Cython `_ compile une version modifiée de Python avec " +"des annotations optionnelles en extensions C. `Nuitka `_ est un nouveau compilateur de Python vers C++, visant à supporter le " +"langage Python entièrement. Pour compiler en Java, vous pouvez regarder `VOC " +"`_." + +#: ../Doc/faq/design.rst:383 +msgid "How does Python manage memory?" +msgstr "Comment Python gère la mémoire ?" + +#: ../Doc/faq/design.rst:385 +msgid "" +"The details of Python memory management depend on the implementation. The " +"standard implementation of Python, :term:`CPython`, uses reference counting " +"to detect inaccessible objects, and another mechanism to collect reference " +"cycles, periodically executing a cycle detection algorithm which looks for " +"inaccessible cycles and deletes the objects involved. The :mod:`gc` module " +"provides functions to perform a garbage collection, obtain debugging " +"statistics, and tune the collector's parameters." +msgstr "" +"Les détails de la gestion de la mémoire en Python dépendent de " +"l'implémentation. En effet, l'implémentation standard de Python, :term:" +"`CPython`, utilise des compteurs de références afin de détecter des objets " +"inaccessibles et un autre mécanisme pour collecter les références " +"circulaires, exécutant périodiquement un algorithme de détection de cycles " +"qui recherche les cycles inaccessibles et supprime les objets impliqués. Le " +"module :mod:`gc` fournit des fonctions pour lancer le ramasse-miettes, " +"d'obtenir des statistiques de débogage et ajuster ses paramètres." + +#: ../Doc/faq/design.rst:393 +msgid "" +"Other implementations (such as `Jython `_ or `PyPy " +"`_), however, can rely on a different mechanism such as " +"a full-blown garbage collector. This difference can cause some subtle " +"porting problems if your Python code depends on the behavior of the " +"reference counting implementation." +msgstr "" +"Cependant, d'autres implémentations (par exemple `Jython `_ ou `PyPy `_) peuvent compter sur un mécanisme " +"différent comme un véritable ramasse-miette. Cette différence peut causer de " +"subtils problèmes de portabilité si votre code Python dépend du comportement " +"de l'implémentation du compteur de références." + +#: ../Doc/faq/design.rst:399 +msgid "" +"In some Python implementations, the following code (which is fine in " +"CPython) will probably run out of file descriptors::" +msgstr "" +"Dans certaines implémentations de Python, le code suivant (qui marche " +"parfaitement avec *CPython*) aurait probablement manqué de descripteurs de " +"fichiers ::" + +#: ../Doc/faq/design.rst:406 +msgid "" +"Indeed, using CPython's reference counting and destructor scheme, each new " +"assignment to *f* closes the previous file. With a traditional GC, however, " +"those file objects will only get collected (and closed) at varying and " +"possibly long intervals." +msgstr "" +"En effet, à l'aide du comptage de références et du destructeur d'objets de " +"*CPython*, chaque nouvelle affectation à *f* ferme le fichier précédent. " +"Cependant, avec un *GC* classique, ces objets seront seulement recueillies " +"(et fermés) à intervalles variables et possiblement avec de longs " +"intervalles." + +#: ../Doc/faq/design.rst:411 +msgid "" +"If you want to write code that will work with any Python implementation, you " +"should explicitly close the file or use the :keyword:`with` statement; this " +"will work regardless of memory management scheme::" +msgstr "" +"Si vous souhaitez écrire du code qui fonctionne avec n'importe quelle " +"implémentation de Python, vous devez explicitement fermer le fichier ou " +"utiliser l'instruction :keyword:`with` ; ceci fonctionnera indépendamment du " +"système de gestion de la mémoire ::" + +#: ../Doc/faq/design.rst:421 +msgid "Why doesn't CPython use a more traditional garbage collection scheme?" +msgstr "" +"Pourquoi CPython n'utilise-il pas un ramasse-miette plus traditionnel ?" + +#: ../Doc/faq/design.rst:423 +msgid "" +"For one thing, this is not a C standard feature and hence it's not portable. " +"(Yes, we know about the Boehm GC library. It has bits of assembler code for " +"*most* common platforms, not for all of them, and although it is mostly " +"transparent, it isn't completely transparent; patches are required to get " +"Python to work with it.)" +msgstr "" +"D'une part, ce n'est pas une caractéristique normalisé en C et par " +"conséquent ce n'est pas portable. (Oui, nous connaissons la bibliothèque *GC " +"Boehm*. Elle contient du code assembleur pour la plupart des plates-formes " +"classiques, mais pas toutes, et bien qu'elle soit le plus souvent " +"transparent, c'est loin d'être le cas, des correctifs sont nécessaires afin " +"que Python fonctionne correctement avec.)" + +#: ../Doc/faq/design.rst:429 +msgid "" +"Traditional GC also becomes a problem when Python is embedded into other " +"applications. While in a standalone Python it's fine to replace the " +"standard malloc() and free() with versions provided by the GC library, an " +"application embedding Python may want to have its *own* substitute for " +"malloc() and free(), and may not want Python's. Right now, CPython works " +"with anything that implements malloc() and free() properly." +msgstr "" +"Le *GC* classique devient également un problème lorsque Python est incorporé " +"dans d'autres applications. Bien que dans une application Python, il ne soit " +"pas gênant de remplacer les fonctions ``malloc()`` et ``free()` avec les " +"versions fournies par la bibliothèque *GC*, une application incluant Python " +"peut vouloir avoir ses propres implémentations de ``malloc()`` et ``free()`` " +"et peut ne pas vouloir celles de Python. À l'heure actuelle, CPython " +"fonctionne avec n'importe quelle implémentation correcte de ``malloc()`` et " +"``free()``." + +#: ../Doc/faq/design.rst:438 +msgid "Why isn't all memory freed when CPython exits?" +msgstr "" +"Pourquoi toute la mémoire n'est pas libérée lorsque *CPython* s'arrête ?" + +#: ../Doc/faq/design.rst:440 +msgid "" +"Objects referenced from the global namespaces of Python modules are not " +"always deallocated when Python exits. This may happen if there are circular " +"references. There are also certain bits of memory that are allocated by the " +"C library that are impossible to free (e.g. a tool like Purify will complain " +"about these). Python is, however, aggressive about cleaning up memory on " +"exit and does try to destroy every single object." +msgstr "" +"Les objets référencés depuis les espaces de nommage globaux des modules " +"Python ne sont pas toujours désalloués lorsque Python s'arrête. Cela peut se " +"produire s'il y a des références circulaires. Il y a aussi certaines parties " +"de mémoire qui sont alloués par la bibliothèque C qui sont impossibles à " +"libérer (par exemple un outil comme *Purify* s'en plaindra). Python est, " +"cependant, agressif sur le nettoyage de la mémoire en quittant et cherche à " +"détruire chaque objet." + +#: ../Doc/faq/design.rst:447 +msgid "" +"If you want to force Python to delete certain things on deallocation use " +"the :mod:`atexit` module to run a function that will force those deletions." +msgstr "" +"Si vous voulez forcer Python à désallouer certains objets en quittant, " +"utilisez le module :mod:`texit` pour exécuter une fonction qui va forcer ces " +"destructions." + +#: ../Doc/faq/design.rst:452 +msgid "Why are there separate tuple and list data types?" +msgstr "" +"Pourquoi les *tuples* et les *list* sont deux types de données séparés ?" + +#: ../Doc/faq/design.rst:454 +msgid "" +"Lists and tuples, while similar in many respects, are generally used in " +"fundamentally different ways. Tuples can be thought of as being similar to " +"Pascal records or C structs; they're small collections of related data which " +"may be of different types which are operated on as a group. For example, a " +"Cartesian coordinate is appropriately represented as a tuple of two or three " +"numbers." +msgstr "" +"Les listes et les *tuples*, bien que semblable à bien des égards, sont " +"généralement utilisés de façons fondamentalement différentes. Les *tuples* " +"peuvent être considérés comme étant similaires aux dossiers en Pascal ou aux " +"structures en C; Ce sont de petites collections de données associées qui " +"peuvent être de différents types qui sont utilisées ensemble. Par exemple, " +"un repère cartésien est correctement représenté comme un *tuple* de deux ou " +"trois nombres." + +#: ../Doc/faq/design.rst:461 +msgid "" +"Lists, on the other hand, are more like arrays in other languages. They " +"tend to hold a varying number of objects all of which have the same type and " +"which are operated on one-by-one. For example, ``os.listdir('.')`` returns " +"a list of strings representing the files in the current directory. " +"Functions which operate on this output would generally not break if you " +"added another file or two to the directory." +msgstr "" +"Les listes, ressemblent davantage à des tableaux dans d'autres langues. " +"Elles ont tendance à contenir un nombre variable d'objets de même type " +"manipulés individuellement. Par exemple, ``os.listdir('.')`` renvoie une " +"liste de chaînes représentant les fichiers dans le dossier courant. Les " +"fonctions travaillant sur cette sortie accepteraient généralement sans aucun " +"problème que vous ajoutiez un ou deux fichiers supplémentaire dans le " +"dossier." + +#: ../Doc/faq/design.rst:468 +msgid "" +"Tuples are immutable, meaning that once a tuple has been created, you can't " +"replace any of its elements with a new value. Lists are mutable, meaning " +"that you can always change a list's elements. Only immutable elements can " +"be used as dictionary keys, and hence only tuples and not lists can be used " +"as keys." +msgstr "" +"Les *tuples* sont immuables, ce qui signifie que lorsqu'un *tuple* a été " +"créé, vous ne pouvez remplacer aucun de ses éléments par une nouvelle " +"valeur. Les listes sont muables, ce qui signifie que vous pouvez toujours " +"modifier les éléments d'une liste. Seuls des éléments immuables peuvent être " +"utilisés comme clés de dictionnaires, et donc de ``tuple`` et ``list`` seul " +"des *tuples* peuvent être utilisés comme clés." + +#: ../Doc/faq/design.rst:475 +msgid "How are lists implemented in CPython?" +msgstr "Comment les listes sont-elles implémentées dans CPython ?" + +#: ../Doc/faq/design.rst:477 +msgid "" +"CPython's lists are really variable-length arrays, not Lisp-style linked " +"lists. The implementation uses a contiguous array of references to other " +"objects, and keeps a pointer to this array and the array's length in a list " +"head structure." +msgstr "" +"Les listes en CPython sont de vrais tableaux de longueur variable " +"contrairement à des listes orientées *Lisp* (i.e des listes chaînées). " +"L'implémentation utilise un tableau contigu de références à d'autres objets. " +"Elle conserve également un pointeur vers ce tableau et la longueur du " +"tableau dans une structure de tête de liste." + +#: ../Doc/faq/design.rst:481 +msgid "" +"This makes indexing a list ``a[i]`` an operation whose cost is independent " +"of the size of the list or the value of the index." +msgstr "" +"Cela rend l'indexation d'une liste ``a[i]`` une opération dont le coût est " +"indépendant de la taille de la liste ou de la valeur de l'indice." + +#: ../Doc/faq/design.rst:484 +msgid "" +"When items are appended or inserted, the array of references is resized. " +"Some cleverness is applied to improve the performance of appending items " +"repeatedly; when the array must be grown, some extra space is allocated so " +"the next few times don't require an actual resize." +msgstr "" +"Lorsque des éléments sont ajoutés ou insérés, le tableau de références est " +"redimensionné. Un savoir-faire ingénieux permet l'amélioration des " +"performances lors de l'ajout fréquent d'éléments ; Lorsque le tableau doit " +"être étendu, un certain espace supplémentaire est alloué de sorte que pour " +"la prochaine fois, ceci ne nécessite plus un redimensionnement effectif." + +#: ../Doc/faq/design.rst:491 +msgid "How are dictionaries implemented in CPython?" +msgstr "Comment les dictionnaires sont-ils implémentés dans CPython ?" + +#: ../Doc/faq/design.rst:493 +msgid "" +"CPython's dictionaries are implemented as resizable hash tables. Compared " +"to B-trees, this gives better performance for lookup (the most common " +"operation by far) under most circumstances, and the implementation is " +"simpler." +msgstr "" +"Les dictionnaires CPython sont implémentés sous forme de tables de hachage " +"redimensionnables. Par rapport aux *B-trees*, cela donne de meilleures " +"performances pour la recherche (l'opération la plus courante de loin) dans " +"la plupart des circonstances, et leur implémentation est plus simple." + +#: ../Doc/faq/design.rst:497 +msgid "" +"Dictionaries work by computing a hash code for each key stored in the " +"dictionary using the :func:`hash` built-in function. The hash code varies " +"widely depending on the key and a per-process seed; for example, \"Python\" " +"could hash to -539294296 while \"python\", a string that differs by a single " +"bit, could hash to 1142331976. The hash code is then used to calculate a " +"location in an internal array where the value will be stored. Assuming that " +"you're storing keys that all have different hash values, this means that " +"dictionaries take constant time -- O(1), in Big-O notation -- to retrieve a " +"key." +msgstr "" +"Les dictionnaires fonctionnent en calculant un code de hachage pour chaque " +"clé stockée dans le dictionnaire en utilisant la fonction :func:`hash`. Le " +"code de hachage varie grandement selon la clé et du nombre de processus " +"utilisés ; Par exemple, la chaine de caractère \"Python\" pourrait avoir " +"comme code de hachage une valeur allant jusqu'à-539294296 tandis que la " +"chaine \"python\",qui se distingue de la première par un seul bit, pourrait " +"avoir comme code de hachage une valeur allant jusqu'à 1142331976. Le code " +"de hachage est ensuite utilisé pour calculer un emplacement dans un tableau " +"interne où la valeur est stockée. Dans l'hypothèse où vous stockez les clés " +"qui ont toutes des valeurs de hachage différentes, cela signifie que le " +"temps pour récupérer une clé est constant -- O(1), en notation grand O de " +"Landau." + +#: ../Doc/faq/design.rst:508 +msgid "Why must dictionary keys be immutable?" +msgstr "Pourquoi les clés du dictionnaire sont immuables ?" + +#: ../Doc/faq/design.rst:510 +msgid "" +"The hash table implementation of dictionaries uses a hash value calculated " +"from the key value to find the key. If the key were a mutable object, its " +"value could change, and thus its hash could also change. But since whoever " +"changes the key object can't tell that it was being used as a dictionary " +"key, it can't move the entry around in the dictionary. Then, when you try " +"to look up the same object in the dictionary it won't be found because its " +"hash value is different. If you tried to look up the old value it wouldn't " +"be found either, because the value of the object found in that hash bin " +"would be different." +msgstr "" +"L'implémentation de la table de hachage des dictionnaires utilise une valeur " +"de hachage calculée à partir de la valeur de la clé pour trouver la clé elle-" +"même. Si la clé était un objet muable, sa valeur peut changer, et donc son " +"hachage pourrait également changer. Mais toute personne modifiant l'objet " +"clé ne peut pas dire qu'elle a été utilisée comme une clé de dictionnaire. " +"Il ne peut déplacer l'entrée dans le dictionnaire. Ainsi, lorsque vous " +"essayez de rechercher le même objet dans le dictionnaire, il ne sera pas " +"disponible parce que sa valeur de hachage est différente. Si vous essayez de " +"chercher l'ancienne valeur, elle serait également introuvable car la valeur " +"de l'objet trouvé dans cet emplacement de hachage serait différente." + +#: ../Doc/faq/design.rst:519 +msgid "" +"If you want a dictionary indexed with a list, simply convert the list to a " +"tuple first; the function ``tuple(L)`` creates a tuple with the same entries " +"as the list ``L``. Tuples are immutable and can therefore be used as " +"dictionary keys." +msgstr "" +"Si vous voulez un dictionnaire indexé avec une liste, il faut simplement " +"convertir la liste en un *tuple* ; la fonction ``tuple(L)`` crée un " +"*tuple* avec les mêmes entrées que la liste ``L``. Les *tuples* sont " +"immuables et peuvent donc être utilisés comme clés du dictionnaire." + +#: ../Doc/faq/design.rst:523 +msgid "Some unacceptable solutions that have been proposed:" +msgstr "Certaines solutions insatisfaisantes qui ont été proposées :" + +#: ../Doc/faq/design.rst:525 +msgid "" +"Hash lists by their address (object ID). This doesn't work because if you " +"construct a new list with the same value it won't be found; e.g.::" +msgstr "" +"Les listes de hachage par leur adresse (*ID* de l'objet). Cela ne " +"fonctionne pas parce que si vous créez une nouvelle liste avec la même " +"valeur, elle ne sera pas retrouvée; par exemple ::" + +#: ../Doc/faq/design.rst:531 +msgid "" +"would raise a :exc:`KeyError` exception because the id of the ``[1, 2]`` " +"used in the second line differs from that in the first line. In other " +"words, dictionary keys should be compared using ``==``, not using :keyword:" +"`is`." +msgstr "" +"cela lèverait une exception :exc:`KeyError` car l'ID de ``[1, 2]`` utilisé " +"dans la deuxième ligne diffère de celle de la première ligne. En d'autres " +"termes, les clés de dictionnaire doivent être comparées à l'aide du " +"comparateur ``==`` et non à l'aide du mot clé :keyword:`is`." + +#: ../Doc/faq/design.rst:535 +msgid "" +"Make a copy when using a list as a key. This doesn't work because the list, " +"being a mutable object, could contain a reference to itself, and then the " +"copying code would run into an infinite loop." +msgstr "" +"Faire une copie lors de l'utilisation d'une liste en tant que clé. Cela ne " +"fonctionne pas puisque la liste, étant un objet muable, pourrait contenir " +"une référence à elle-même ou avoir une boucle infinie au niveau du code " +"copié." + +#: ../Doc/faq/design.rst:539 +msgid "" +"Allow lists as keys but tell the user not to modify them. This would allow " +"a class of hard-to-track bugs in programs when you forgot or modified a list " +"by accident. It also invalidates an important invariant of dictionaries: " +"every value in ``d.keys()`` is usable as a key of the dictionary." +msgstr "" +"Autoriser les listes en tant que clés, mais indiquer à l'utilisateur de ne " +"pas les modifier. Cela permettrait un ensemble de bogues difficiles à suivre " +"dans les programmes lorsque vous avez oublié ou modifié une liste par " +"accident. Cela casse également un impératif important des dictionnaires : " +"chaque valeur de ``d.keys()`` est utilisable comme clé du dictionnaire." + +#: ../Doc/faq/design.rst:544 +msgid "" +"Mark lists as read-only once they are used as a dictionary key. The problem " +"is that it's not just the top-level object that could change its value; you " +"could use a tuple containing a list as a key. Entering anything as a key " +"into a dictionary would require marking all objects reachable from there as " +"read-only -- and again, self-referential objects could cause an infinite " +"loop." +msgstr "" +"Marquer les listes comme étant en lecture seule une fois qu'elles sont " +"utilisées comme clé de dictionnaire. Le problème est que ce n'est pas " +"seulement l'objet de niveau supérieur qui pourrait changer sa valeur; vous " +"pourriez utiliser un tuple contenant une liste comme clé. Utiliser " +"n'importe quoi comme une clé dans un dictionnaire nécessiterait de marquer " +"tous les objets accessibles à partir de là comme en lecture seule -- et " +"encore une fois, les objets se faisant référence pourraient provoquer une " +"boucle infinie." + +#: ../Doc/faq/design.rst:550 +msgid "" +"There is a trick to get around this if you need to, but use it at your own " +"risk: You can wrap a mutable structure inside a class instance which has " +"both a :meth:`__eq__` and a :meth:`__hash__` method. You must then make " +"sure that the hash value for all such wrapper objects that reside in a " +"dictionary (or other hash based structure), remain fixed while the object is " +"in the dictionary (or other structure). ::" +msgstr "" +"Il y a un truc pour contourner ceci si vous en avez besoin, mais utilisez-le " +"à vos risques et périls. Vous pouvez encapsuler une structure mutable à " +"l'intérieur d'une instance de classe qui a à la fois une méthode :meth:" +"`__eq__` et :meth:`__hash__`. Vous devez ensuite vous assurer que la valeur " +"de hachage pour tous ces objets *wrapper* qui résident dans un dictionnaire " +"(ou une autre structure basée sur le hachage), restent fixes pendant que " +"l'objet est dans le dictionnaire (ou une autre structure). ::" + +#: ../Doc/faq/design.rst:574 +msgid "" +"Note that the hash computation is complicated by the possibility that some " +"members of the list may be unhashable and also by the possibility of " +"arithmetic overflow." +msgstr "" +"Notez que le calcul de hachage peut être compliqué car il est possible que " +"certains membres de la liste peuvent être impossible à hacher et aussi par " +"la possibilité de débordement arithmétique." + +#: ../Doc/faq/design.rst:578 +msgid "" +"Furthermore it must always be the case that if ``o1 == o2`` (ie ``o1." +"__eq__(o2) is True``) then ``hash(o1) == hash(o2)`` (ie, ``o1.__hash__() == " +"o2.__hash__()``), regardless of whether the object is in a dictionary or " +"not. If you fail to meet these restrictions dictionaries and other hash " +"based structures will misbehave." +msgstr "" +"De plus, il faut toujours que, si ``o1 == o2`` (par exemple ``o1.__eq__(o2) " +"vaut True``) alors ``hash(o1) == hash(o2)`` (par exemple, ``o1.__hash__() == " +"o2.__hash__()``), que l’objet se trouve dans un dictionnaire ou pas. Si vous " +"ne remplissez pas ces conditions, les dictionnaires et autres structures " +"basées sur le hachage se comporteront mal." + +#: ../Doc/faq/design.rst:583 +msgid "" +"In the case of ListWrapper, whenever the wrapper object is in a dictionary " +"the wrapped list must not change to avoid anomalies. Don't do this unless " +"you are prepared to think hard about the requirements and the consequences " +"of not meeting them correctly. Consider yourself warned." +msgstr "" +"Dans le cas de *ListWrapper*, chaque fois que l'objet *wrapper* est dans un " +"dictionnaire, la liste encapsulée ne doit pas changer pour éviter les " +"anomalies. Ne faites pas cela à moins que vous n’ayez pensé aux potentielles " +"conséquences de ne pas satisfaire entièrement ces conditions. Vous avez été " +"prévenus." + +#: ../Doc/faq/design.rst:590 +msgid "Why doesn't list.sort() return the sorted list?" +msgstr "Pourquoi ``list.sort()`` ne renvoie pas la liste triée ?" + +#: ../Doc/faq/design.rst:592 +msgid "" +"In situations where performance matters, making a copy of the list just to " +"sort it would be wasteful. Therefore, :meth:`list.sort` sorts the list in " +"place. In order to remind you of that fact, it does not return the sorted " +"list. This way, you won't be fooled into accidentally overwriting a list " +"when you need a sorted copy but also need to keep the unsorted version " +"around." +msgstr "" +"Dans les situations où la performance est importante, faire une copie de la " +"liste juste pour la trier serait un gaspillage. Par conséquent, :meth:`list." +"sort` trie la liste en place. Afin de vous le rappeler, il ne retourne pas " +"la liste triée. De cette façon, vous ne serez pas dupés en écrasant " +"accidentellement une liste lorsque vous avez besoin d’une copie triée, mais " +"vous devrez également garder sous la main la version non triée." + +#: ../Doc/faq/design.rst:598 +msgid "" +"If you want to return a new list, use the built-in :func:`sorted` function " +"instead. This function creates a new list from a provided iterable, sorts " +"it and returns it. For example, here's how to iterate over the keys of a " +"dictionary in sorted order::" +msgstr "" +"Si vous souhaitez retourner une nouvelle liste, utilisez plutôt la fonction " +"native :func:`sorted`. Cette fonction crée une nouvelle liste à partir d’un " +"itérable fourni, la trie et la retourne. Par exemple, voici comment itérer " +"sur les clefs d’un dictionnaire dans l’ordre trié ::" + +#: ../Doc/faq/design.rst:608 +msgid "How do you specify and enforce an interface spec in Python?" +msgstr "" +"Comment spécifiez-vous et appliquez-vous une spécification d’interface en " +"Python ?" + +#: ../Doc/faq/design.rst:610 +msgid "" +"An interface specification for a module as provided by languages such as C++ " +"and Java describes the prototypes for the methods and functions of the " +"module. Many feel that compile-time enforcement of interface specifications " +"helps in the construction of large programs." +msgstr "" +"Une spécification d'interface pour un module fourni par des langages tels " +"que C++ et Java décrit les prototypes pour les méthodes et les fonctions du " +"module. Beaucoup estiment que la vérification au moment de la compilation " +"des spécifications d'interface aide à la construction de grands programmes." + +#: ../Doc/faq/design.rst:615 +msgid "" +"Python 2.6 adds an :mod:`abc` module that lets you define Abstract Base " +"Classes (ABCs). You can then use :func:`isinstance` and :func:`issubclass` " +"to check whether an instance or a class implements a particular ABC. The :" +"mod:`collections.abc` module defines a set of useful ABCs such as :class:" +"`~collections.abc.Iterable`, :class:`~collections.abc.Container`, and :class:" +"`~collections.abc.MutableMapping`." +msgstr "" +"Python 2.6 ajoute un module :mod:`abc` qui vous permet de définir des " +"classes de base abstraites (ABCs). Vous pouvez ensuite utiliser :func:" +"`isinstance` et :func:`issubclass` pour vérifier si une instance ou une " +"classe implémente une ABC particulière. Le module :mod:`collections.abc` " +"définit un ensemble d'ABCs utiles telles que :class:`~collections.abc." +"Iterable`, :class:`~collections.abc.Container` et :class:`collections.abc." +"MutableMapping`." + +#: ../Doc/faq/design.rst:622 +msgid "" +"For Python, many of the advantages of interface specifications can be " +"obtained by an appropriate test discipline for components. There is also a " +"tool, PyChecker, which can be used to find problems due to subclassing." +msgstr "" +"Pour Python, la plupart des avantages des spécifications d'interface peuvent " +"être obtenus par une discipline de test appropriée pour les composants. Il " +"existe aussi un outil, PyChecker, qui peut être utilisé pour trouver des " +"problèmes d'héritage." + +#: ../Doc/faq/design.rst:626 +msgid "" +"A good test suite for a module can both provide a regression test and serve " +"as a module interface specification and a set of examples. Many Python " +"modules can be run as a script to provide a simple \"self test.\" Even " +"modules which use complex external interfaces can often be tested in " +"isolation using trivial \"stub\" emulations of the external interface. The :" +"mod:`doctest` and :mod:`unittest` modules or third-party test frameworks can " +"be used to construct exhaustive test suites that exercise every line of code " +"in a module." +msgstr "" +"Une bonne suite de tests pour un module peut à la fois fournir un test de " +"non régression et servir de spécification d'interface de module ainsi qu'un " +"ensemble d'exemples. De nombreux modules Python peuvent être exécutés en " +"tant que script pour fournir un simple « auto-test ». Même les modules qui " +"utilisent des interfaces externes complexes peuvent souvent être testés " +"isolément à l'aide d'émulations triviales embryonnaires de l'interface " +"externe. Les modules :mod:`doctest` et :mod:`UnitTest` ou des frameworks de " +"test tiers peuvent être utilisés pour construire des suites de tests " +"exhaustives qui éprouvent chaque ligne de code dans un module." + +#: ../Doc/faq/design.rst:634 +msgid "" +"An appropriate testing discipline can help build large complex applications " +"in Python as well as having interface specifications would. In fact, it can " +"be better because an interface specification cannot test certain properties " +"of a program. For example, the :meth:`append` method is expected to add new " +"elements to the end of some internal list; an interface specification cannot " +"test that your :meth:`append` implementation will actually do this " +"correctly, but it's trivial to check this property in a test suite." +msgstr "" +"Une discipline de test appropriée peut aider à construire des applications " +"complexes de grande taille en Python aussi bien que le feraient des " +"spécifications d'interface. En fait, c'est peut être même mieux parce qu'une " +"spécification d'interface ne peut pas tester certaines propriétés d'un " +"programme. Par exemple, la méthode :meth:`Append` est censée ajouter de " +"nouveaux éléments à la fin d'une liste « sur place » ; une spécification " +"d'interface ne peut pas tester que votre implémentation de :meth:`append` va " +"réellement le faire correctement, mais il est trivial de vérifier cette " +"propriété dans une suite de tests." + +#: ../Doc/faq/design.rst:642 +msgid "" +"Writing test suites is very helpful, and you might want to design your code " +"with an eye to making it easily tested. One increasingly popular technique, " +"test-directed development, calls for writing parts of the test suite first, " +"before you write any of the actual code. Of course Python allows you to be " +"sloppy and not write test cases at all." +msgstr "" +"L'écriture des suites de tests est très utile, et vous voudrez peut-être " +"concevoir votre code de manière à le rendre facilement testable. Une " +"technique de plus en plus populaire, le développement dirigé par les tests, " +"requiert d'écrire d'abord des éléments de la suite de tests, avant d'écrire " +"le code réel. Bien sûr, Python vous permet d'être laxiste et de ne pas " +"écrire de test du tout." + +#: ../Doc/faq/design.rst:650 +msgid "Why is there no goto?" +msgstr "Pourquoi n'y a-t-il pas de ``goto`` en Python ?" + +#: ../Doc/faq/design.rst:652 +msgid "" +"You can use exceptions to provide a \"structured goto\" that even works " +"across function calls. Many feel that exceptions can conveniently emulate " +"all reasonable uses of the \"go\" or \"goto\" constructs of C, Fortran, and " +"other languages. For example::" +msgstr "" +"Vous pouvez utiliser les exceptions afin de mettre en place un \"``goto`` " +"structuré\" qui fonctionne même avec les appels de fonctions. Beaucoup de " +"personnes estiment que les exceptions peuvent émuler idéalement tout " +"utilisation raisonnable des constructions ``go`` ou ``goto`` en C, en " +"Fortran ou autres langages de programmation. Par exemple ::" + +#: ../Doc/faq/design.rst:667 +msgid "" +"This doesn't allow you to jump into the middle of a loop, but that's usually " +"considered an abuse of goto anyway. Use sparingly." +msgstr "" +"Cela ne vous permet pas de sauter au milieu d'une boucle. Néanmoins, dans " +"tous les cas cela est généralement considéré comme un abus de ``goto``. À " +"Utiliser avec parcimonie." + +#: ../Doc/faq/design.rst:672 +msgid "Why can't raw strings (r-strings) end with a backslash?" +msgstr "" +"Pourquoi les chaînes de caractères brutes (r-strings) ne peuvent-elles pas " +"se terminer par un *backslash* ?" + +#: ../Doc/faq/design.rst:674 +msgid "" +"More precisely, they can't end with an odd number of backslashes: the " +"unpaired backslash at the end escapes the closing quote character, leaving " +"an unterminated string." +msgstr "" +"Plus précisément, elles ne peuvent pas se terminer par un nombre impair de " +"*backslashes* : le *backslash* non appairé à la fin échappe le caractère de " +"guillemet final, laissant une chaîne non terminée." + +#: ../Doc/faq/design.rst:678 +msgid "" +"Raw strings were designed to ease creating input for processors (chiefly " +"regular expression engines) that want to do their own backslash escape " +"processing. Such processors consider an unmatched trailing backslash to be " +"an error anyway, so raw strings disallow that. In return, they allow you to " +"pass on the string quote character by escaping it with a backslash. These " +"rules work well when r-strings are used for their intended purpose." +msgstr "" +"Les chaînes brutes ont été conçues pour faciliter la création de données " +"pour les processeurs de texte (principalement les moteurs d'expressions " +"régulières) qui veulent faire leur propre traitement d'échappement " +"d'*antislashes*. Ces processeurs considèrent un *antislash* de fin non-" +"appairé comme une erreur, alors les chaînes brutes ne le permettent pas. En " +"retour, elles vous permettent de transmettre le caractère de citation de la " +"chaîne en l'échappant avec un *antislash*. Ces règles fonctionnent bien " +"lorsque les chaînes brutes sont utilisées pour leur but premier." + +#: ../Doc/faq/design.rst:685 +msgid "" +"If you're trying to build Windows pathnames, note that all Windows system " +"calls accept forward slashes too::" +msgstr "" +"Si vous essayez de construire des chemins d'accès Windows, notez que tous " +"les appels système Windows acceptent également les *slashes* \"classiques" +"\" ::" + +#: ../Doc/faq/design.rst:690 +msgid "" +"If you're trying to build a pathname for a DOS command, try e.g. one of ::" +msgstr "" +"Si vous essayez de construire un chemin d'accès pour une commande DOS, " +"essayez par exemple l'un de ceux-là ::" + +#: ../Doc/faq/design.rst:698 +msgid "Why doesn't Python have a \"with\" statement for attribute assignments?" +msgstr "" +"Pourquoi la déclaration ``with`` pour les assignations d'attributs n'existe " +"pas en Python ?" + +#: ../Doc/faq/design.rst:700 +msgid "" +"Python has a 'with' statement that wraps the execution of a block, calling " +"code on the entrance and exit from the block. Some language have a " +"construct that looks like this::" +msgstr "" +"Python a une instruction ``with`` qui encapsule l'exécution d'un bloc, en " +"appelant le code sur l'entrée et la sortie du bloc. Certains langages " +"possèdent une construction qui ressemble à ceci ::" + +#: ../Doc/faq/design.rst:708 +msgid "In Python, such a construct would be ambiguous." +msgstr "En Python, une telle construction serait ambiguë." + +#: ../Doc/faq/design.rst:710 +msgid "" +"Other languages, such as Object Pascal, Delphi, and C++, use static types, " +"so it's possible to know, in an unambiguous way, what member is being " +"assigned to. This is the main point of static typing -- the compiler " +"*always* knows the scope of every variable at compile time." +msgstr "" +"Les autres langages, tels que le Pascal, le Delphi et le C++ utilisent des " +"types statiques, il est donc possible de savoir d'une manière claire et " +"directe ce à quoi est attribué un membre. C'est le point principal du typage " +"statique --le compilateur connaît *toujours* la portée de toutes les " +"variables au moment de la compilation." + +#: ../Doc/faq/design.rst:715 +msgid "" +"Python uses dynamic types. It is impossible to know in advance which " +"attribute will be referenced at runtime. Member attributes may be added or " +"removed from objects on the fly. This makes it impossible to know, from a " +"simple reading, what attribute is being referenced: a local one, a global " +"one, or a member attribute?" +msgstr "" +"Python utilise le typage dynamique. Il est impossible de savoir à l'avance " +"quel attribut est utilisé comme référence lors de l'exécution. Les attributs " +"membres peuvent être ajoutés ou retirés des objets à la volée. Il est donc " +"impossible de savoir, d'une simple lecture, quel attribut est référencé : " +"s'il est local, global ou un attribut membre?" + +#: ../Doc/faq/design.rst:721 +msgid "For instance, take the following incomplete snippet::" +msgstr "Prenons par exemple l'extrait incomplet suivant ::" + +#: ../Doc/faq/design.rst:727 +msgid "" +"The snippet assumes that \"a\" must have a member attribute called \"x\". " +"However, there is nothing in Python that tells the interpreter this. What " +"should happen if \"a\" is, let us say, an integer? If there is a global " +"variable named \"x\", will it be used inside the with block? As you see, " +"the dynamic nature of Python makes such choices much harder." +msgstr "" +"L'extrait suppose que \"a\" doit avoir un attribut membre appelé \"x\". " +"Néanmoins, il n'y a rien en Python qui en informe l'interpréteur. Que se " +"passe-t-il si \"a\" est, disons, un entier ? Si une variable globale nommée " +"\"x\" existe, sera-t-elle utilisée dans le bloc ``with`` ? Comme vous " +"voyez, la nature dynamique du Python rend ces choix beaucoup plus difficiles." + +#: ../Doc/faq/design.rst:733 +msgid "" +"The primary benefit of \"with\" and similar language features (reduction of " +"code volume) can, however, easily be achieved in Python by assignment. " +"Instead of::" +msgstr "" +"L'avantage principal de ``with`` et des fonctionnalités de langage " +"similaires (réduction du volume de code) peut, cependant, être facilement " +"réalisé en Python par assignation. Au lieu de ::" + +#: ../Doc/faq/design.rst:740 +msgid "write this::" +msgstr "écrivez ceci ::" + +#: ../Doc/faq/design.rst:747 +msgid "" +"This also has the side-effect of increasing execution speed because name " +"bindings are resolved at run-time in Python, and the second version only " +"needs to perform the resolution once." +msgstr "" +"Cela a également pour effet secondaire d'augmenter la vitesse d'exécution " +"car les liaisons de noms sont résolues au moment de l'exécution en Python, " +"et la deuxième version n'a besoin d'exécuter la résolution qu'une seule fois." + +#: ../Doc/faq/design.rst:753 +msgid "Why are colons required for the if/while/def/class statements?" +msgstr "" +"Pourquoi les deux-points sont-ils nécessaires pour les déclarations ``if/" +"while/def/class`` ?" + +#: ../Doc/faq/design.rst:755 +msgid "" +"The colon is required primarily to enhance readability (one of the results " +"of the experimental ABC language). Consider this::" +msgstr "" +"Le deux-points est principalement nécessaires pour améliorer la lisibilité " +"(l'un des résultats du langage expérimental ABC). Considérez ceci ::" + +#: ../Doc/faq/design.rst:761 +msgid "versus ::" +msgstr "versus ::" + +#: ../Doc/faq/design.rst:766 +msgid "" +"Notice how the second one is slightly easier to read. Notice further how a " +"colon sets off the example in this FAQ answer; it's a standard usage in " +"English." +msgstr "" +"Remarquez comment le deuxième est un peu plus facile à lire. Remarquez " +"aussi comment un deux-points introduit l'exemple dans cette réponse à la " +"FAQ ; c'est un usage standard en anglais." + +#: ../Doc/faq/design.rst:769 +msgid "" +"Another minor reason is that the colon makes it easier for editors with " +"syntax highlighting; they can look for colons to decide when indentation " +"needs to be increased instead of having to do a more elaborate parsing of " +"the program text." +msgstr "" +"Une autre raison mineure est que les deux-points facilitent la tâche des " +"éditeurs avec coloration syntaxique ; ils peuvent rechercher les deux-points " +"pour décider quand l'indentation doit être augmentée au lieu d'avoir à faire " +"une analyse plus élaborée du texte du programme." + +#: ../Doc/faq/design.rst:775 +msgid "Why does Python allow commas at the end of lists and tuples?" +msgstr "" +"Pourquoi Python permet-il les virgules à la fin des listes et des tuples ?" + +#: ../Doc/faq/design.rst:777 +msgid "" +"Python lets you add a trailing comma at the end of lists, tuples, and " +"dictionaries::" +msgstr "" +"Python vous permet d'ajouter une virgule à la fin des listes, des tuples et " +"des dictionnaires ::" + +#: ../Doc/faq/design.rst:788 +msgid "There are several reasons to allow this." +msgstr "Il y a plusieurs raisons d'accepter cela." + +#: ../Doc/faq/design.rst:790 +msgid "" +"When you have a literal value for a list, tuple, or dictionary spread across " +"multiple lines, it's easier to add more elements because you don't have to " +"remember to add a comma to the previous line. The lines can also be " +"reordered without creating a syntax error." +msgstr "" +"Lorsque vous avez une valeur littérale pour une liste, un tuple ou un " +"dictionnaire réparti sur plusieurs lignes, il est plus facile d'ajouter plus " +"d'éléments parce que vous n'avez pas besoin de vous rappeler d'ajouter une " +"virgule à la ligne précédente. Les lignes peuvent aussi être réorganisées " +"sans créer une erreur de syntaxe." + +#: ../Doc/faq/design.rst:795 +msgid "" +"Accidentally omitting the comma can lead to errors that are hard to " +"diagnose. For example::" +msgstr "" +"L'omission accidentelle de la virgule peut entraîner des erreurs difficiles " +"à diagnostiquer, par exemple ::" + +#: ../Doc/faq/design.rst:805 +msgid "" +"This list looks like it has four elements, but it actually contains three: " +"\"fee\", \"fiefoo\" and \"fum\". Always adding the comma avoids this source " +"of error." +msgstr "" +"Cette liste a l'air d'avoir quatre éléments, mais elle en contient en fait " +"trois : \"*fee*\", \"*fiefoo*\" et \"*fum*\". Toujours ajouter la virgule " +"permet d'éviter cette source d'erreur." + +#: ../Doc/faq/design.rst:808 +msgid "" +"Allowing the trailing comma may also make programmatic code generation " +"easier." +msgstr "" +"Permettre la virgule de fin peut également faciliter la génération de code." diff --git a/faq/extending.po b/faq/extending.po new file mode 100644 index 000000000..2bf610334 --- /dev/null +++ b/faq/extending.po @@ -0,0 +1,539 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-08-31 11:36+0200\n" +"Last-Translator: Zepmanbc \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" + +#: ../Doc/faq/extending.rst:3 +msgid "Extending/Embedding FAQ" +msgstr "FAQ extension/intégration" + +#: ../Doc/faq/extending.rst:6 +msgid "Contents" +msgstr "Sommaire" + +#: ../Doc/faq/extending.rst:16 +msgid "Can I create my own functions in C?" +msgstr "Puis-je créer mes propres fonctions en C ?" + +#: ../Doc/faq/extending.rst:18 +msgid "" +"Yes, you can create built-in modules containing functions, variables, " +"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:22 +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:26 +msgid "Can I create my own functions in C++?" +msgstr "Puis-je créer mes propres fonctions en C++ ?" + +#: ../Doc/faq/extending.rst:28 +msgid "" +"Yes, using the C compatibility features found in C++. Place ``extern \"C" +"\" { ... }`` around the Python include files and put ``extern \"C\"`` before " +"each function that is going to be called by the Python interpreter. Global " +"or static C++ objects with constructors are probably not a good idea." +msgstr "" +"Oui, en utilisant les fonctionnalités de compatibilité C existantes en C++. " +"Placez ``extern \"C\" { ... }`` autour des fichiers Python inclus et mettez " +"``extern \"C\"`` avant chaque fonction qui va être appelée par " +"l'interpréteur Python. Les objets C++ globaux ou statiques avec les " +"constructeurs ne sont probablement pas une bonne idée." + +#: ../Doc/faq/extending.rst:37 +msgid "Writing C is hard; are there any alternatives?" +msgstr "Écrire directement en C est difficile ; existe-t-il des alternatives ?" + +#: ../Doc/faq/extending.rst:39 +msgid "" +"There are a number of alternatives to writing your own C extensions, " +"depending on what you're trying to do." +msgstr "" +"Il y a un certain nombre de solutions existantes qui vous permettent " +"d'écrire vos propres extensions C, selon ce que vous essayez de faire." + +#: ../Doc/faq/extending.rst:44 +msgid "" +"`Cython `_ and its relative `Pyrex `_ are compilers that accept a " +"slightly modified form of Python and generate the corresponding C code. " +"Cython and Pyrex make it possible to write an extension without having to " +"learn Python's C API." +msgstr "" +"`Cython `_ et son cousin `Pyrex `_ sont des compilateurs qui " +"acceptent une forme légèrement modifiée de Python et produisent du code C " +"correspondant. Cython et Pyrex permettent d'écrire une extension sans avoir " +"à connaître l'API C de Python." + +#: ../Doc/faq/extending.rst:50 +msgid "" +"If you need to interface to some C or C++ library for which no Python " +"extension currently exists, you can try wrapping the library's data types " +"and functions with a tool such as `SWIG `_. `SIP " +"`__, `CXX `_ `Boost `_, or `Weave `_ are also alternatives " +"for wrapping C++ libraries." +msgstr "" +"Si vous avez besoin d'accéder à l'interface d'une bibliothèque C ou C++ pour " +"laquelle aucune extension Python n'existe à ce jour, vous pouvez essayer " +"d'encapsuler les types de données et fonctions de la bibliothèque avec un " +"outil tel que `SWIG `_. `SIP `__, `CXX `_, `Boost `_ ou " +"`Weave `_ sont également des alternatives " +"pour encapsuler des bibliothèques C++." + +#: ../Doc/faq/extending.rst:61 +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:63 +msgid "" +"The highest-level function to do this is :c:func:`PyRun_SimpleString` which " +"takes a single string argument to be executed in the context of the module " +"``__main__`` and returns ``0`` for success and ``-1`` when an exception " +"occurred (including :exc:`SyntaxError`). If you want more control, use :c:" +"func:`PyRun_String`; see the source for :c:func:`PyRun_SimpleString` in " +"``Python/pythonrun.c``." +msgstr "" +"La fonction de plus haut niveau pour ce faire est :c:func:" +"`PyRun_SimpleStringString` qui prend une chaîne pour seul argument afin de " +"l'exécuter dans le contexte du module ``__main__`` et renvoie ``0`` en cas " +"de succès et ``-1`` quand une exception se produit (incluant :exc:" +"`SyntaxError`). Pour une meilleure maîtrise, utilisez :c:func:" +"`PyRun_String` ; voir le code source pour :c:func:`PyRun_SimpleString` dans " +"``Python/pythonrun.c``." + +#: ../Doc/faq/extending.rst:72 +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:74 +msgid "" +"Call the function :c:func:`PyRun_String` from the previous question with the " +"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:80 +msgid "How do I extract C values from a Python object?" +msgstr "Comment puis-je extraire des donnés en C d'un objet Python ?" + +#: ../Doc/faq/extending.rst:82 +msgid "" +"That depends on the object's type. If it's a tuple, :c:func:`PyTuple_Size` " +"returns its length and :c:func:`PyTuple_GetItem` returns the item at a " +"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:87 +msgid "" +"For bytes, :c:func:`PyBytes_Size` returns its length and :c:func:" +"`PyBytes_AsStringAndSize` provides a pointer to its value and its length. " +"Note that Python bytes objects may contain null bytes so C's :c:func:" +"`strlen` should not be used." +msgstr "" +"Pour les bytes, :c:func:`PyBytes_Size` renvoie sa longueur et :c:func:" +"`PyBytes_AsStringAndSize` fournit un pointeur vers sa valeur et sa longueur. " +"Notez que les objets bytes en Python peuvent contenir des valeurs nulles, " +"c'est pourquoi il ne faut pas utiliser la fonction C :c:func:`strlen`." + +#: ../Doc/faq/extending.rst:92 +msgid "" +"To test the type of an object, first make sure it isn't *NULL*, and then " +"use :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:" +"`PyList_Check`, etc." +msgstr "" +"Pour tester le type d'un objet, assurez-vous d'abord qu'il n'est pas *NULL*, " +"puis utilisez :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:" +"`PyList_Check`, etc." + +#: ../Doc/faq/extending.rst:95 +msgid "" +"There is also a high-level API to Python objects which is provided by the so-" +"called 'abstract' interface -- read ``Include/abstract.h`` for further " +"details. It allows interfacing with any kind of Python sequence using calls " +"like :c:func:`PySequence_Length`, :c:func:`PySequence_GetItem`, etc. as well " +"as many other useful protocols such as numbers (:c:func:`PyNumber_Index` et " +"al.) and mappings in the PyMapping APIs." +msgstr "" +"Il y a aussi une API de haut niveau pour les objets Python qui est fournie " +"par l'interface dite « abstraite » — voir ``Include/abstract.h`` pour plus " +"de détails. Elle permet l'interfaçage avec tout type de séquence Python en " +"utilisant des appels tels que :c:func:`PySequence_Length`, :c:func:" +"`PySequence_GetItem`, etc. ainsi que de nombreux autres protocoles utiles " +"tels que les nombres (:c:func:`PyNumber_Index` et autres) et les " +"correspondances dans les APIs PyMapping." + +#: ../Doc/faq/extending.rst:104 +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:106 +msgid "You can't. Use :c:func:`PyTuple_Pack` instead." +msgstr "Vous ne pouvez pas. Utilisez :c:func:`PyTuple_Pack` à la place." + +#: ../Doc/faq/extending.rst:110 +msgid "How do I call an object's method from C?" +msgstr "Comment puis-je appeler la méthode d'un objet à partir de C ?" + +#: ../Doc/faq/extending.rst:112 +msgid "" +"The :c:func:`PyObject_CallMethod` function can be used to call an arbitrary " +"method of an object. The parameters are the object, the name of the method " +"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:121 +msgid "" +"This works for any object that has methods -- whether built-in or user-" +"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:124 +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:135 +msgid "" +"Note that since :c:func:`PyObject_CallObject` *always* wants a tuple for the " +"argument list, to call a function without arguments, pass \"()\" for the " +"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:142 +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:144 +msgid "" +"In Python code, define an object that supports the ``write()`` method. " +"Assign this object to :data:`sys.stdout` and :data:`sys.stderr`. Call " +"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:149 +msgid "The easiest way to do this is to use the :class:`io.StringIO` class:" +msgstr "" +"La façon la plus simple consiste à utiliser la classe :class:`io.StringIO` :" + +#: ../Doc/faq/extending.rst:161 +msgid "A custom object to do the same would look like this:" +msgstr "" +"Le code d'un objet à la fonctionnalité similaire ressemblerait à ceci :" + +#: ../Doc/faq/extending.rst:182 +msgid "How do I access a module written in Python from C?" +msgstr "Comment accéder à un module écrit en Python à partir de C ?" + +#: ../Doc/faq/extending.rst:184 +msgid "You can get a pointer to the module object as follows::" +msgstr "Vous pouvez obtenir un pointeur sur l'objet module comme suit ::" + +#: ../Doc/faq/extending.rst:188 +msgid "" +"If the module hasn't been imported yet (i.e. it is not yet present in :data:" +"`sys.modules`), this initializes the module; otherwise it simply returns the " +"value of ``sys.modules[\"\"]``. Note that it doesn't enter the " +"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[\"\"]``. 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:194 +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:199 +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:204 +msgid "How do I interface to C++ objects from Python?" +msgstr "Comment s'interfacer avec les objets C++ depuis Python ?" + +#: ../Doc/faq/extending.rst:206 +msgid "" +"Depending on your requirements, there are many approaches. To do this " +"manually, begin by reading :ref:`the \"Extending and Embedding\" document " +"`. Realize that for the Python run-time system, there " +"isn't a whole lot of difference between C and C++ -- so the strategy of " +"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" +"\" `. 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:212 +msgid "For C++ libraries, see :ref:`c-wrapper-software`." +msgstr "Pour les bibliothèques C++, voir :ref:`c-wrapper-software`." + +#: ../Doc/faq/extending.rst:216 +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:218 +msgid "" +"Setup must end in a newline, if there is no newline there, the build process " +"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:224 +msgid "How do I debug an extension?" +msgstr "Comment déboguer une extension ?" + +#: ../Doc/faq/extending.rst:226 +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:229 +msgid "In your ``.gdbinit`` file (or interactively), add the command:" +msgstr "" +"Dans votre fichier ``.gdbinit`` (ou manuellement), ajoutez la commande :" + +#: ../Doc/faq/extending.rst:235 +msgid "Then, when you run GDB:" +msgstr "Ensuite, lorsque vous exécutez GDB :" + +#: ../Doc/faq/extending.rst:247 +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:249 +msgid "" +"Most packaged versions of Python don't include the :file:`/usr/lib/python2." +"{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:253 +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:255 +msgid "For Debian, run ``apt-get install python-dev``." +msgstr "Pour Debian, exécutez ``apt-get install python-dev``." + +#: ../Doc/faq/extending.rst:259 +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:261 +msgid "" +"Sometimes you want to emulate the Python interactive interpreter's behavior, " +"where it gives you a continuation prompt when the input is incomplete (e.g. " +"you typed the start of an \"if\" statement or you didn't close your " +"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:267 +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:270 +msgid "" +"The easiest way to do it in C is to call :c:func:`PyRun_InteractiveLoop` " +"(perhaps in a separate thread) and let the Python interpreter handle the " +"input for you. You can also set the :c:func:`PyOS_ReadlineFunctionPointer` " +"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:276 +msgid "" +"However sometimes you have to run the embedded Python interpreter in the " +"same thread as your rest application and you can't allow the :c:func:" +"`PyRun_InteractiveLoop` to stop while waiting for user input. The one " +"solution then is to call :c:func:`PyParser_ParseString` and test for ``e." +"error`` equal to ``E_EOF``, which means the input is incomplete. Here's a " +"sample code fragment, untested, inspired by code from Alex Farber::" +msgstr "" +"Cependant, vous devez parfois exécuter l'interpréteur Python intégré dans le " +"même fil d’exécution que le reste de votre application et vous ne pouvez pas " +"laisser :c:func:`PyRun_InteractiveLoop` attendre les entrées utilisateur. La " +"seule solution est alors d'appeler :c:func:`PyParser_ParseString` et de " +"tester si ``e.error`` égale ``E_EOF``, ce qui signifie que l'entrée est " +"incomplète. Voici un exemple de code, non testé, inspiré d'un code écrit par " +"Alex Farber ::" + +#: ../Doc/faq/extending.rst:310 +msgid "" +"Another solution is trying to compile the received string with :c:func:" +"`Py_CompileString`. If it compiles without errors, try to execute the " +"returned code object by calling :c:func:`PyEval_EvalCode`. Otherwise save " +"the input for later. If the compilation fails, find out if it's an error or " +"just more input is required - by extracting the message string from the " +"exception tuple and comparing it to the string \"unexpected EOF while parsing" +"\". 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:432 +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:434 +msgid "" +"To dynamically load g++ extension modules, you must recompile Python, relink " +"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:440 +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:442 +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:445 +msgid "" +"The Boost Python Library (BPL, http://www.boost.org/libs/python/doc/index." +"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)." diff --git a/faq/general.po b/faq/general.po new file mode 100644 index 000000000..1ecfe1bb7 --- /dev/null +++ b/faq/general.po @@ -0,0 +1,936 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2019-06-10 15:36+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/faq/general.rst:5 +msgid "General Python FAQ" +msgstr "FAQ générale sur Python" + +#: ../Doc/faq/general.rst:8 +msgid "Contents" +msgstr "Sommaire" + +#: ../Doc/faq/general.rst:13 +msgid "General Information" +msgstr "Informations générales" + +#: ../Doc/faq/general.rst:16 +msgid "What is Python?" +msgstr "Qu'est-ce que Python ?" + +#: ../Doc/faq/general.rst:18 +msgid "" +"Python is an interpreted, interactive, object-oriented programming " +"language. It incorporates modules, exceptions, dynamic typing, very high " +"level dynamic data types, and classes. Python combines remarkable power " +"with very clear syntax. It has interfaces to many system calls and " +"libraries, as well as to various window systems, and is extensible in C or C+" +"+. It is also usable as an extension language for applications that need a " +"programmable interface. Finally, Python is portable: it runs on many Unix " +"variants, on the Mac, and on Windows 2000 and later." +msgstr "" +"Python est un langage de programmation interprété, interactif, orienté " +"objet. Il incorpore des modules, des exceptions, un typage dynamique et des " +"classes. Python combine une puissance incroyable et une syntaxe très claire. " +"Il dispose de liens avec de nombreuses interfaces de programmation pour " +"systèmes d'exploitation et bibliothèques, ainsi que divers systèmes " +"d'interfaces graphiques, et il peut être étendu grâce au C ou C++. Il est " +"aussi utilisable comme langage d'extension (script) pour les logiciels qui " +"nécessitent une interface de programmation. Enfin, Python est portable : il " +"fonctionne sur multiples variantes Unix, sur Mac, ainsi que sur Windows 2000 " +"et versions supérieures." + +#: ../Doc/faq/general.rst:27 +msgid "" +"To find out more, start with :ref:`tutorial-index`. The `Beginner's Guide " +"to Python `_ links to other " +"introductory tutorials and resources for learning Python." +msgstr "" +"Pour en savoir plus, commencez par :ref:`tutorial-index`. Le « `Guide des " +"Débutants pour Python `_ » " +"renvoie vers d'autres tutoriels et ressources d'initiation pour apprendre " +"Python." + +#: ../Doc/faq/general.rst:33 +msgid "What is the Python Software Foundation?" +msgstr "Qu'est ce que la Python Software Foundation ?" + +#: ../Doc/faq/general.rst:35 +msgid "" +"The Python Software Foundation is an independent non-profit organization " +"that holds the copyright on Python versions 2.1 and newer. The PSF's " +"mission is to advance open source technology related to the Python " +"programming language and to publicize the use of Python. The PSF's home " +"page is at https://www.python.org/psf/." +msgstr "" +"La Python Software Foundation (PSF) est une organisation indépendante à but " +"non lucratif qui détient les droits d'auteur sur les versions Python 2.1 et " +"plus récentes. La mission de la PSF est de faire progresser les technologies " +"ouvertes (*open source*) relatives au langage de programmation Python et de " +"promouvoir son utilisation. Le page d'accueil de la PSF se trouve à " +"l'adresse suivante : https://www.python.org/psf/." + +#: ../Doc/faq/general.rst:41 +msgid "" +"Donations to the PSF are tax-exempt in the US. If you use Python and find " +"it helpful, please contribute via `the PSF donation page `_." +msgstr "" +"Si vous utilisez Python et que vous le trouvez utile, merci de contribuer " +"par le biais de `la page de donation de la PSF `_." + +#: ../Doc/faq/general.rst:47 +msgid "Are there copyright restrictions on the use of Python?" +msgstr "" +"Existe-il des restrictions liées à la propriété intellectuelle quant à " +"l'utilisation de Python ?" + +#: ../Doc/faq/general.rst:49 +msgid "" +"You can do anything you want with the source, as long as you leave the " +"copyrights in and display those copyrights in any documentation about Python " +"that you produce. If you honor the copyright rules, it's OK to use Python " +"for commercial use, to sell copies of Python in source or binary form " +"(modified or unmodified), or to sell products that incorporate Python in " +"some form. We would still like to know about all commercial use of Python, " +"of course." +msgstr "" +"Vous pouvez faire ce que vous souhaitez avec la source, tant que vous " +"respecterez la licence d'utilisation et que vous l'afficherez dans toute " +"documentation que vous produirez au sujet de Python. Si vous respectez ces " +"règles, vous pouvez utiliser Python dans un cadre commercial, vendre le code " +"source ou la forme binaire (modifiée ou non), ou vendre des produits qui " +"incorporent Python sous une forme quelconque. Bien entendu, nous " +"souhaiterions avoir connaissance de tous les projets commerciaux utilisant " +"Python." + +#: ../Doc/faq/general.rst:56 +msgid "" +"See `the PSF license page `_ to find " +"further explanations and a link to the full text of the license." +msgstr "" +"Voir `la page de licence d'utilisation de la PSF `_ pour trouver davantage d'informations et un lien vers la version " +"intégrale de la licence d'utilisation." + +#: ../Doc/faq/general.rst:59 +msgid "" +"The Python logo is trademarked, and in certain cases permission is required " +"to use it. Consult `the Trademark Usage Policy `__ for more information." +msgstr "" +"Le logo de Python est une marque déposée, et dans certains cas une " +"autorisation est nécessaire pour l'utiliser. Consultez `la politique " +"d'utilisation de la marque `__ pour " +"plus d'informations." + +#: ../Doc/faq/general.rst:65 +msgid "Why was Python created in the first place?" +msgstr "Pourquoi Python a été créé ?" + +#: ../Doc/faq/general.rst:67 +msgid "" +"Here's a *very* brief summary of what started it all, written by Guido van " +"Rossum:" +msgstr "" +"Voici un *très* bref résumé de comment tout a commencé, écrit par Guido van " +"Rossum (puis traduit en français) :" + +#: ../Doc/faq/general.rst:70 +msgid "" +"I had extensive experience with implementing an interpreted language in the " +"ABC group at CWI, and from working with this group I had learned a lot about " +"language design. This is the origin of many Python features, including the " +"use of indentation for statement grouping and the inclusion of very-high-" +"level data types (although the details are all different in Python)." +msgstr "" +"J'avais une expérience complète avec la mise en œuvre du langage interprété " +"ABC au sein du CWI, et en travaillant dans ce groupe j'ai appris beaucoup à " +"propos de la conception de langage. C'est l'origine de nombreuses " +"fonctionnalités de Python, notamment l'utilisation de l'indentation pour le " +"groupement et l'inclusion de types de très haut niveau (bien que dans les " +"détails ils soient tous différents dans Python)." + +#: ../Doc/faq/general.rst:77 +msgid "" +"I had a number of gripes about the ABC language, but also liked many of its " +"features. It was impossible to extend the ABC language (or its " +"implementation) to remedy my complaints -- in fact its lack of extensibility " +"was one of its biggest problems. I had some experience with using Modula-2+ " +"and talked with the designers of Modula-3 and read the Modula-3 report. " +"Modula-3 is the origin of the syntax and semantics used for exceptions, and " +"some other Python features." +msgstr "" +"J'avais un certain nombre de différends avec le langage ABC, mais j'aimais " +"aussi beaucoup de ses fonctionnalités. Il était impossible d'étendre le " +"langage ABC (ou ses implémentations) pour remédier à mes réclamations -- en " +"vérité le manque d'extensibilité était l'un des plus gros problème. J'avais " +"un peu d'expérience avec l'utilisation de Modula-2+ et j'en ai parlé avec " +"les concepteurs de Modula-3 et j'ai lu le rapport sur Modula-3. Modula-3 est " +"à l'origine de la syntaxe et de la sémantique utilisée pour les exceptions, " +"et quelques autres fonctionnalités en Python." + +#: ../Doc/faq/general.rst:85 +msgid "" +"I was working in the Amoeba distributed operating system group at CWI. We " +"needed a better way to do system administration than by writing either C " +"programs or Bourne shell scripts, since Amoeba had its own system call " +"interface which wasn't easily accessible from the Bourne shell. My " +"experience with error handling in Amoeba made me acutely aware of the " +"importance of exceptions as a programming language feature." +msgstr "" +"Je travaillais sur un groupe de systèmes d'exploitation distribués Amoeba au " +"CWI. Nous avions besoin d'un meilleur moyen pour gérer l'administration " +"système qu'écrire un programme en C ou en script Bourne shell, puisque " +"l'Amoeba avait sa propre interface d'appels système qui n'était pas " +"facilement accessible depuis les scripts Bourne shell. Mon expérience avec " +"le traitement des erreurs dans l'Amoeba m'a vraiment fait prendre conscience " +"de l'importance des exceptions en tant que fonctionnalité d'un langage de " +"programmation." + +#: ../Doc/faq/general.rst:92 +msgid "" +"It occurred to me that a scripting language with a syntax like ABC but with " +"access to the Amoeba system calls would fill the need. I realized that it " +"would be foolish to write an Amoeba-specific language, so I decided that I " +"needed a language that was generally extensible." +msgstr "" +"Il m'est venu à l'esprit qu'un langage de script avec une syntaxe comme ABC " +"mais avec un accès aux appels systèmes d'Amoeba remplirait les besoins. J'ai " +"réalisé que ce serait idiot d'écrire un langage spécifique à Amoeba, donc " +"j'ai décidé que j'avais besoin d'un langage qui serait généralement " +"extensible." + +#: ../Doc/faq/general.rst:97 +msgid "" +"During the 1989 Christmas holidays, I had a lot of time on my hand, so I " +"decided to give it a try. During the next year, while still mostly working " +"on it in my own time, Python was used in the Amoeba project with increasing " +"success, and the feedback from colleagues made me add many early " +"improvements." +msgstr "" +"Pendant les vacances de Noël 1989, j'avais beaucoup de temps à disposition, " +"donc j'ai décidé de faire un essai. Durant l'année suivante, j'ai encore " +"beaucoup travaillé dessus sur mon propre temps. Python a été utilisé dans le " +"projet Amoeba avec un succès croissant, et les retours de mes collègues " +"m'ont permis d'ajouter beaucoup des premières améliorations." + +#: ../Doc/faq/general.rst:103 +msgid "" +"In February 1991, after just over a year of development, I decided to post " +"to USENET. The rest is in the ``Misc/HISTORY`` file." +msgstr "" +"En Février 1991, juste après un peu plus d'un an de développement, j'ai " +"décidé de le poster sur USENET. Le reste se trouve dans le fichier « Misc/" +"HISTORY »." + +#: ../Doc/faq/general.rst:108 +msgid "What is Python good for?" +msgstr "Pour quoi Python est-il fait ?" + +#: ../Doc/faq/general.rst:110 +msgid "" +"Python is a high-level general-purpose programming language that can be " +"applied to many different classes of problems." +msgstr "" +"Python est un langage de programmation haut niveau généraliste qui peut être " +"utilisé pour pallier à différents problèmes." + +#: ../Doc/faq/general.rst:113 +msgid "" +"The language comes with a large standard library that covers areas such as " +"string processing (regular expressions, Unicode, calculating differences " +"between files), Internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, CGI " +"programming), software engineering (unit testing, logging, profiling, " +"parsing Python code), and operating system interfaces (system calls, " +"filesystems, TCP/IP sockets). Look at the table of contents for :ref:" +"`library-index` to get an idea of what's available. A wide variety of third-" +"party extensions are also available. Consult `the Python Package Index " +"`_ to find packages of interest to you." +msgstr "" +"Le langage vient avec une bibliothèque standard importante qui couvre des " +"domaines tels que le traitement des chaînes de caractères (expressions " +"régulières, Unicode, calcul de différences entre les fichiers), les " +"protocoles Internet (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, script CGI), " +"ingénierie logicielle (tests unitaires, enregistrement, analyse de code " +"Python), et interfaces pour systèmes d'exploitation (appels système, système " +"de fichiers, connecteurs TCP/IP). Regardez la table des matières :ref:" +"`library-index` pour avoir une idée de ce qui est disponible. Une grande " +"variété de greffons tiers existent aussi. Consultez `le sommaire des paquets " +"Python `_ pour trouver les paquets qui pourraient vous " +"intéresser." + +#: ../Doc/faq/general.rst:125 +msgid "How does the Python version numbering scheme work?" +msgstr "Comment fonctionne le numérotage des versions de Python ?" + +#: ../Doc/faq/general.rst:127 +msgid "" +"Python versions are numbered A.B.C or A.B. A is the major version number -- " +"it is only incremented for really major changes in the language. B is the " +"minor version number, incremented for less earth-shattering changes. C is " +"the micro-level -- it is incremented for each bugfix release. See :pep:`6` " +"for more information about bugfix releases." +msgstr "" +"Les versions de Python sont numérotées A.B.C ou A.B. A est une version " +"majeure -- elle est augmentée seulement lorsqu'il y a des changements " +"conséquents dans le langage. B est une version mineure, elle est augmentée " +"lors de changements de moindre importance. C est un micro-niveau -- elle est " +"augmentée à chaque sortie de correctifs de bogue." + +#: ../Doc/faq/general.rst:133 +msgid "" +"Not all releases are bugfix releases. In the run-up to a new major release, " +"a series of development releases are made, denoted as alpha, beta, or " +"release candidate. Alphas are early releases in which interfaces aren't yet " +"finalized; it's not unexpected to see an interface change between two alpha " +"releases. Betas are more stable, preserving existing interfaces but possibly " +"adding new modules, and release candidates are frozen, making no changes " +"except as needed to fix critical bugs." +msgstr "" +"Toutes les sorties ne concernent pas la correction de bogues. A l'approche " +"de la sortie d'une nouvelle version majeure, une série de versions de " +"développement sont créées, dénommées *alpha*, *beta*, *release candidate*. " +"Les alphas sont des versions primaires dans lesquelles les interfaces ne " +"sont pas encore finalisées; ce n'est pas inattendu de voir des changements " +"d'interface entre deux versions alpha. Les *betas* sont plus stables, " +"préservent les interfaces existantes mais peuvent ajouter de nouveaux " +"modules, les *release candidate* sont figées, elles ne font aucun changement " +"à l'exception de ceux nécessaires pour corriger des bogues critiques." + +#: ../Doc/faq/general.rst:141 +msgid "" +"Alpha, beta and release candidate versions have an additional suffix. The " +"suffix for an alpha version is \"aN\" for some small number N, the suffix " +"for a beta version is \"bN\" for some small number N, and the suffix for a " +"release candidate version is \"cN\" for some small number N. In other " +"words, all versions labeled 2.0aN precede the versions labeled 2.0bN, which " +"precede versions labeled 2.0cN, and *those* precede 2.0." +msgstr "" +"Les versions *alpha*, *beta* et *release candidate* ont un suffixe " +"supplémentaire. Le suffixe pour une version alpha est « aN » où N est un " +"petit nombre, le suffixe pour une version *beta* est *bN* où N est un petit " +"nombre, et le suffixe pour une *release candidate* est « cN » où N est un " +"petit nombre. En d'autres mots, toutes les versions nommées *2.0.aN* " +"précèdent les versions *2.0.bN*, qui elles-mêmes précèdent 2.0cN, et *celles-" +"ci* précèdent la version 2.0." + +#: ../Doc/faq/general.rst:148 +msgid "" +"You may also find version numbers with a \"+\" suffix, e.g. \"2.2+\". These " +"are unreleased versions, built directly from the CPython development " +"repository. In practice, after a final minor release is made, the version " +"is incremented to the next minor version, which becomes the \"a0\" version, " +"e.g. \"2.4a0\"." +msgstr "" +"Vous pouvez aussi trouver des versions avec un signe « + » en suffixe, par " +"exemple « 2.2+». Ces versions sont non distribuées, construites directement " +"depuis le dépôt de développement de CPython. En pratique, après la sortie " +"finale d'une version mineure, la version est augmentée à la prochaine " +"version mineure, qui devient la version *a0*, c'est-à-dire *2.4a0*." + +#: ../Doc/faq/general.rst:153 +msgid "" +"See also the documentation for :data:`sys.version`, :data:`sys.hexversion`, " +"and :data:`sys.version_info`." +msgstr "" +"Voir aussi la documentation pour for :data:`sys.version`, :data:`sys." +"hexversion`, et :data:`sys.version_info`." + +#: ../Doc/faq/general.rst:158 +msgid "How do I obtain a copy of the Python source?" +msgstr "Comment obtenir une copie du code source de Python ?" + +#: ../Doc/faq/general.rst:160 +msgid "" +"The latest Python source distribution is always available from python.org, " +"at https://www.python.org/downloads/. The latest development sources can be " +"obtained at https://github.com/python/cpython/." +msgstr "" +"La dernière version du code source déployée est toujours disponible sur " +"python.org, à https://www.python.org/downloads/. Le code source de la " +"dernière version en développement peut être obtenue à https://github.com/" +"python/cpython/." + +#: ../Doc/faq/general.rst:164 +msgid "" +"The source distribution is a gzipped tar file containing the complete C " +"source, Sphinx-formatted documentation, Python library modules, example " +"programs, and several useful pieces of freely distributable software. The " +"source will compile and run out of the box on most UNIX platforms." +msgstr "" +"Le code source est dans une archive *gzippée* au format *tar*, elle contient " +"le code source C complet, la documentation formatée avec Sphinx, les " +"libraires Python, des exemples de programmes, et plusieurs morceaux de code " +"utiles distribuables librement. Le code source sera compilé et prêt à " +"fonctionner immédiatement sur la plupart des plateformes UNIX." + +#: ../Doc/faq/general.rst:169 +msgid "" +"Consult the `Getting Started section of the Python Developer's Guide " +"`__ for more information on getting the " +"source code and compiling it." +msgstr "" +"Consultez `la section Premiers pas du Guide des Développeurs Python `__ pour plus d'informations sur comment obtenir " +"le code source et le compiler." + +#: ../Doc/faq/general.rst:175 +msgid "How do I get documentation on Python?" +msgstr "Comment obtenir la documentation de Python ?" + +#: ../Doc/faq/general.rst:179 +msgid "" +"The standard documentation for the current stable version of Python is " +"available at https://docs.python.org/3/. PDF, plain text, and downloadable " +"HTML versions are also available at https://docs.python.org/3/download.html." +msgstr "" +"La documentation standard pour la version stable actuelle est disponible à " +"https://docs.python.org/3/. Des versions aux formats PDF, texte et HTML " +"sont aussi disponibles à https://docs.python.org/3/download.html." + +#: ../Doc/faq/general.rst:183 +msgid "" +"The documentation is written in reStructuredText and processed by `the " +"Sphinx documentation tool `__. The reStructuredText " +"source for the documentation is part of the Python source distribution." +msgstr "" +"La documentation est écrite au format *reStructuredText* et traitée par " +"l'outil de documentation `Sphinx `__. La source du " +"*reStructuredText* pour la documentation constitue une partie des sources de " +"Python." + +#: ../Doc/faq/general.rst:189 +msgid "I've never programmed before. Is there a Python tutorial?" +msgstr "Je n'ai jamais programmé avant. Existe t-il un tutoriel Python ?" + +#: ../Doc/faq/general.rst:191 +msgid "" +"There are numerous tutorials and books available. The standard " +"documentation includes :ref:`tutorial-index`." +msgstr "" +"Il y a de nombreux tutoriels et livres disponibles. La documentation " +"standard inclut :ref:`tutorial-index`." + +#: ../Doc/faq/general.rst:194 +msgid "" +"Consult `the Beginner's Guide `_ to find information for beginning Python programmers, " +"including lists of tutorials." +msgstr "" +"Consultez le `Guide du Débutant `_ afin de trouver des informations pour les développeurs " +"Python débutants, incluant une liste de tutoriels." + +#: ../Doc/faq/general.rst:199 +msgid "Is there a newsgroup or mailing list devoted to Python?" +msgstr "Y a-t-il un forum ou une liste de diffusion dédié à Python ?" + +#: ../Doc/faq/general.rst:201 +msgid "" +"There is a newsgroup, :newsgroup:`comp.lang.python`, and a mailing list, " +"`python-list `_. The " +"newsgroup and mailing list are gatewayed into each other -- if you can read " +"news it's unnecessary to subscribe to the mailing list. :newsgroup:`comp." +"lang.python` is high-traffic, receiving hundreds of postings every day, and " +"Usenet readers are often more able to cope with this volume." +msgstr "" +"Il y a un forum, :newsgroup:`comp.lang.python` et une liste de diffusion, " +"`python-list `_. Le " +"forum et la liste de diffusion sont des passerelles l'un vers l'autre -- si " +"vous pouvez lire les *news* ce n'est pas inutile de souscrire à la liste de " +"diffusion. :newsgroup:`comp.lang.python` a beaucoup d'activité, il reçoit " +"des centaines de messages chaque jour, et les lecteurs du réseau Usenet sont " +"souvent plus capables de faire face à ce volume." + +#: ../Doc/faq/general.rst:208 +msgid "" +"Announcements of new software releases and events can be found in comp.lang." +"python.announce, a low-traffic moderated list that receives about five " +"postings per day. It's available as `the python-announce mailing list " +"`_." +msgstr "" +"Les annonces pour les nouvelles versions et événements peuvent êtres " +"trouvées dans *comp.lang.python.announce*, une liste diminuée peu active qui " +"reçoit environ 5 messages par jour. C'est disponible à `liste de diffusion " +"des annonces Python `_." + +#: ../Doc/faq/general.rst:213 +msgid "" +"More info about other mailing lists and newsgroups can be found at https://" +"www.python.org/community/lists/." +msgstr "" +"Plus d'informations à propos des autres listes de diffusion et forums " +"peuvent être trouvées à https://www.python.org/community/lists/." + +#: ../Doc/faq/general.rst:218 +msgid "How do I get a beta test version of Python?" +msgstr "Comment obtenir une version bêta test de Python ?" + +#: ../Doc/faq/general.rst:220 +msgid "" +"Alpha and beta releases are available from https://www.python.org/" +"downloads/. All releases are announced on the comp.lang.python and comp." +"lang.python.announce newsgroups and on the Python home page at https://www." +"python.org/; an RSS feed of news is available." +msgstr "" +"Les versions alpha et bêta sont disponibles depuis https://www.python.org/" +"downloads/. Toutes les versions sont annoncées sur les *newsgroups* *comp." +"lang.python* et *comp.lang.python.announce* ainsi que sur la page d'accueil " +"de Python à https://www.python.org/; un flux RSS d'actualités y est aussi " +"disponible." + +#: ../Doc/faq/general.rst:225 +msgid "" +"You can also access the development version of Python through Git. See `The " +"Python Developer's Guide `_ for details." +msgstr "" +"Vous pouvez aussi accéder aux de Python en développement grâce à Git. Voir " +"`Le Guide du Développeur Python `_ pour plus " +"de détails." + +#: ../Doc/faq/general.rst:230 +msgid "How do I submit bug reports and patches for Python?" +msgstr "Comment soumettre un rapport de bogues ou un correctif pour Python ?" + +#: ../Doc/faq/general.rst:232 +msgid "" +"To report a bug or submit a patch, please use the Roundup installation at " +"https://bugs.python.org/." +msgstr "" +"Pour reporter un bogue ou soumettre un correctif, merci d'utiliser https://" +"bugs.python.org/." + +#: ../Doc/faq/general.rst:235 +msgid "" +"You must have a Roundup account to report bugs; this makes it possible for " +"us to contact you if we have follow-up questions. It will also enable " +"Roundup to send you updates as we act on your bug. If you had previously " +"used SourceForge to report bugs to Python, you can obtain your Roundup " +"password through Roundup's `password reset procedure `_." +msgstr "" +"Vous devez avoir un compte Roundup pour reporter des bogues; cela nous " +"permet de vous contacter si nous avons des questions complémentaires. Cela " +"permettra aussi le suivi de traitement de votre bogue. Si vous avez " +"auparavant utilisé SourceForge pour reporter des bogues sur Python, vous " +"pouvez obtenir un mot de passe Roundup grâce à la `procédure de " +"réinitialisation de mot de passe de Roundup `_." + +#: ../Doc/faq/general.rst:241 +msgid "" +"For more information on how Python is developed, consult `the Python " +"Developer's Guide `_." +msgstr "" +"Pour davantage d'informations sur comment Python est développé, consultez " +"`le Guide du Développeur Python `_." + +#: ../Doc/faq/general.rst:246 +msgid "Are there any published articles about Python that I can reference?" +msgstr "" +"Existe-t-il des articles publiés au sujet de Python auxquels je peux me " +"référer ?" + +#: ../Doc/faq/general.rst:248 +msgid "It's probably best to cite your favorite book about Python." +msgstr "" +"C'est probablement mieux de vous référer à votre livre favori à propos de " +"Python." + +#: ../Doc/faq/general.rst:250 +msgid "" +"The very first article about Python was written in 1991 and is now quite " +"outdated." +msgstr "" +"Le tout premier article à propos de Python a été écrit en 1991 et est " +"maintenant obsolète." + +#: ../Doc/faq/general.rst:253 +msgid "" +"Guido van Rossum and Jelke de Boer, \"Interactively Testing Remote Servers " +"Using the Python Programming Language\", CWI Quarterly, Volume 4, Issue 4 " +"(December 1991), Amsterdam, pp 283--303." +msgstr "" +"Guido van Rossum et Jelke de Boer, « *Interactively Testing Remote Servers " +"Using the Python Programming Language* », CWI Quarterly, Volume 4, Issue 4 " +"(December 1991), Amsterdam, pp 283--303." + +#: ../Doc/faq/general.rst:259 +msgid "Are there any books on Python?" +msgstr "Y a-t-il des livres au sujet de Python ?" + +#: ../Doc/faq/general.rst:261 +msgid "" +"Yes, there are many, and more are being published. See the python.org wiki " +"at https://wiki.python.org/moin/PythonBooks for a list." +msgstr "" +"Oui, il y en a beaucoup, et d'autres sont en cours de publication. Voir le " +"wiki python à https://wiki.python.org/moin/PythonBooks pour avoir une liste." + +#: ../Doc/faq/general.rst:264 +msgid "" +"You can also search online bookstores for \"Python\" and filter out the " +"Monty Python references; or perhaps search for \"Python\" and \"language\"." +msgstr "" +"Vous pouvez aussi chercher chez les revendeurs de livres en ligne avec le " +"terme « Python » et éliminer les références concernant les Monty Python, ou " +"peut-être faire une recherche avec les termes « langage » et « Python »." + +#: ../Doc/faq/general.rst:269 +msgid "Where in the world is www.python.org located?" +msgstr "Où www.python.org est-il localisé dans le monde ?" + +#: ../Doc/faq/general.rst:271 +msgid "" +"The Python project's infrastructure is located all over the world and is " +"managed by the Python Infrastructure Team. Details `here `__." +msgstr "" +"L'infrastructure du projet Python est située dans le monde entier et est " +"gérée par l'équipe de l'infrastructure Python. Plus de détails `ici `__." + +#: ../Doc/faq/general.rst:276 +msgid "Why is it called Python?" +msgstr "Pourquoi le nom Python ?" + +#: ../Doc/faq/general.rst:278 +msgid "" +"When he began implementing Python, Guido van Rossum was also reading the " +"published scripts from `\"Monty Python's Flying Circus\" `__, a BBC comedy series from the 1970s. " +"Van Rossum thought he needed a name that was short, unique, and slightly " +"mysterious, so he decided to call the language Python." +msgstr "" +"Quand il a commencé à implémenter Python, Guido van Rossum a aussi lu le " +"script publié par `\"Monty Python's Flying Circus\" `__, une série comique des années 1970 diffusée par la " +"BBC. Van Rossum a pensé qu'il avait besoin d'un nom court, unique, et un peu " +"mystérieux, donc il a décidé de l'appeler le langage Python." + +#: ../Doc/faq/general.rst:286 +msgid "Do I have to like \"Monty Python's Flying Circus\"?" +msgstr "Dois-je aimer \"Monty Python's Flying Circus\" ?" + +#: ../Doc/faq/general.rst:288 +msgid "No, but it helps. :)" +msgstr "Non, mais ça peut aider. :)" + +#: ../Doc/faq/general.rst:292 +msgid "Python in the real world" +msgstr "Python c'est le monde réel" + +#: ../Doc/faq/general.rst:295 +msgid "How stable is Python?" +msgstr "Quel est le niveau de stabilité de Python ?" + +#: ../Doc/faq/general.rst:297 +msgid "" +"Very stable. New, stable releases have been coming out roughly every 6 to " +"18 months since 1991, and this seems likely to continue. Currently there " +"are usually around 18 months between major releases." +msgstr "" +"Très stable. Les versions stables sont sorties environ tous les 6 à 18 mois " +"depuis 1991, et il semble probable que ça continue. Actuellement il y a " +"habituellement environ 18 mois entre deux sorties de version majeure." + +#: ../Doc/faq/general.rst:301 +msgid "" +"The developers issue \"bugfix\" releases of older versions, so the stability " +"of existing releases gradually improves. Bugfix releases, indicated by a " +"third component of the version number (e.g. 3.5.3, 3.6.2), are managed for " +"stability; only fixes for known problems are included in a bugfix release, " +"and it's guaranteed that interfaces will remain the same throughout a series " +"of bugfix releases." +msgstr "" +"Les développeurs fournissent des versions correctives d'anciennes versions, " +"ainsi la stabilité des versions existantes s'améliore. Les versions " +"correctives, indiquées par le troisième chiffre du numéro de version (ex. " +"2.5.2, 2.6.2), sont gérées pour la stabilité, seules les corrections pour " +"les problèmes connus sont inclus dans les versions correctives, et il est " +"garanti que les interfaces resteront les mêmes tout au long de la série de " +"versions correctives." + +#: ../Doc/faq/general.rst:308 +msgid "" +"The latest stable releases can always be found on the `Python download page " +"`_. There are two production-ready " +"versions of Python: 2.x and 3.x. The recommended version is 3.x, which is " +"supported by most widely used libraries. Although 2.x is still widely used, " +"`it will not be maintained after January 1, 2020 `_." +msgstr "" +"Les dernières versions stables peuvent toujours être trouvées sur la `page " +"de téléchargement Python `_. Il existe " +"deux versions stables de Python : 2.x et 3.x, mais seule la version 3 est " +"recommandée, c'est celle qui est compatible avec les bibliothèques les plus " +"largement utilisées. Bien que Python 2 soit encore utilisé, `il ne sera plus " +"maintenu après le 1er janvier 2020 `_." + +#: ../Doc/faq/general.rst:315 +msgid "How many people are using Python?" +msgstr "Combien de personnes utilisent Python ?" + +#: ../Doc/faq/general.rst:317 +msgid "" +"There are probably tens of thousands of users, though it's difficult to " +"obtain an exact count." +msgstr "" +"Il y a probablement des dizaines de milliers d'utilisateurs, cependant c'est " +"difficile d'obtenir un nombre exact." + +#: ../Doc/faq/general.rst:320 +msgid "" +"Python is available for free download, so there are no sales figures, and " +"it's available from many different sites and packaged with many Linux " +"distributions, so download statistics don't tell the whole story either." +msgstr "" +"Python est disponible en téléchargement gratuit, donc il n'y a pas de " +"chiffres de ventes, il est disponible depuis de nombreux sites différents et " +"il est inclus avec de beaucoup de distributions Linux, donc les statistiques " +"de téléchargement ne donnent pas la totalité non plus." + +#: ../Doc/faq/general.rst:324 +msgid "" +"The comp.lang.python newsgroup is very active, but not all Python users post " +"to the group or even read it." +msgstr "" +"Le forum *comp.lang.python* est très actif, mais tous les utilisateurs de " +"Python ne laissent pas de messages dessus ou même ne le lisent pas." + +#: ../Doc/faq/general.rst:329 +msgid "Have any significant projects been done in Python?" +msgstr "Y a-t-il un nombre de projets significatif réalisés en Python ?" + +#: ../Doc/faq/general.rst:331 +msgid "" +"See https://www.python.org/about/success for a list of projects that use " +"Python. Consulting the proceedings for `past Python conferences `_ will reveal contributions from many " +"different companies and organizations." +msgstr "" +"Voir https://www.python.org/about/success pour avoir une liste des projets " +"qui utilisent Python. En consultant les comptes-rendu des `conférences " +"Python précédentes `_ il " +"s'avère que les contributions proviennent de nombreux organismes et " +"entreprises divers." + +#: ../Doc/faq/general.rst:336 +msgid "" +"High-profile Python projects include `the Mailman mailing list manager " +"`_ and `the Zope application server `_. Several Linux distributions, most notably `Red Hat `_, have written part or all of their installer and system " +"administration software in Python. Companies that use Python internally " +"include Google, Yahoo, and Lucasfilm Ltd." +msgstr "" +"Les projets Python à grande visibilité incluent `Mailman mailing list " +"manager `_ et `l'application serveur Zope `_. Plusieurs distributions Linux, notamment `Red Hat `_, qui a écrit tout ou partie de son installateur et de son " +"logiciel d'administration système en Python. Les entreprises qui utilisent " +"Python en interne comprennent Google, Yahoo, et Lucasfilm Ltd." + +#: ../Doc/faq/general.rst:345 +msgid "What new developments are expected for Python in the future?" +msgstr "Quelles sont les nouveautés en développement attendues pour Python ?" + +#: ../Doc/faq/general.rst:347 +msgid "" +"See https://www.python.org/dev/peps/ for the Python Enhancement Proposals " +"(PEPs). PEPs are design documents describing a suggested new feature for " +"Python, providing a concise technical specification and a rationale. Look " +"for a PEP titled \"Python X.Y Release Schedule\", where X.Y is a version " +"that hasn't been publicly released yet." +msgstr "" +"Regardez les propositions d'amélioration de Python (« *Python Enhancement " +"Proposals* », ou *PEP*) sur https://www.python.org/dev/peps/. Les PEP sont " +"des documents techniques qui décrivent une nouvelle fonctionnalité qui a été " +"suggérée pour Python, en fournissant une spécification technique concise et " +"logique. Recherchez une PEP intitulée \"Python X.Y Release Schedule\", où X." +"Y est la version qui n'a pas encore été publiée." + +#: ../Doc/faq/general.rst:353 +msgid "" +"New development is discussed on `the python-dev mailing list `_." +msgstr "" +"Le nouveau développement est discuté sur `la liste de diffusion python-dev " +"`_." + +#: ../Doc/faq/general.rst:358 +msgid "Is it reasonable to propose incompatible changes to Python?" +msgstr "" +"Est-il raisonnable de proposer des changements incompatibles dans Python ?" + +#: ../Doc/faq/general.rst:360 +msgid "" +"In general, no. There are already millions of lines of Python code around " +"the world, so any change in the language that invalidates more than a very " +"small fraction of existing programs has to be frowned upon. Even if you can " +"provide a conversion program, there's still the problem of updating all " +"documentation; many books have been written about Python, and we don't want " +"to invalidate them all at a single stroke." +msgstr "" +"En général, non. Il y a déjà des millions de lignes de code de Python tout " +"autour du monde, donc n'importe quel changement dans le langage qui rend " +"invalide ne serait-ce qu'une très petite fraction du code de programmes " +"existants doit être désapprouvé. Même si vous pouvez fournir un programme de " +"conversion, il y a toujours des problèmes de mise à jour dans toutes les " +"documentations, beaucoup de livres ont été écrits au sujet de Python, et " +"nous ne voulons pas les rendre invalides soudainement." + +#: ../Doc/faq/general.rst:367 +msgid "" +"Providing a gradual upgrade path is necessary if a feature has to be " +"changed. :pep:`5` describes the procedure followed for introducing backward-" +"incompatible changes while minimizing disruption for users." +msgstr "" +"En fournissant un rythme de mise à jour progressif qui est obligatoire si " +"une fonctionnalité doit être changée." + +#: ../Doc/faq/general.rst:373 +msgid "Is Python a good language for beginning programmers?" +msgstr "" +"Existe-t-il un meilleur langage de programmation pour les programmeurs " +"débutants ?" + +#: ../Doc/faq/general.rst:375 +msgid "Yes." +msgstr "Oui." + +#: ../Doc/faq/general.rst:377 +msgid "" +"It is still common to start students with a procedural and statically typed " +"language such as Pascal, C, or a subset of C++ or Java. Students may be " +"better served by learning Python as their first language. Python has a very " +"simple and consistent syntax and a large standard library and, most " +"importantly, using Python in a beginning programming course lets students " +"concentrate on important programming skills such as problem decomposition " +"and data type design. With Python, students can be quickly introduced to " +"basic concepts such as loops and procedures. They can probably even work " +"with user-defined objects in their very first course." +msgstr "" +"Il reste commun pour les étudiants de commencer avec un langage procédural " +"et à typage statique comme le Pascal, le C, ou un sous-ensemble du C++ ou " +"Java. Les étudiants pourraient être mieux servis en apprenant Python comme " +"premier langage. Python a une syntaxe très simple et cohérente ainsi qu'une " +"vaste libraire standard, plus important encore, utiliser Python dans les " +"cours d'initiation à la programmation permet aux étudiants de se concentrer " +"sur les compétences de programmation les cruciales comme les problèmes de " +"découpage et d'architecture. Avec Python, les étudiants peuvent rapidement " +"aborder des concepts fondamentaux comme les boucles et les procédures. Ils " +"peuvent même probablement travailler avec des objets définis dans leurs " +"premiers cours." + +#: ../Doc/faq/general.rst:387 +msgid "" +"For a student who has never programmed before, using a statically typed " +"language seems unnatural. It presents additional complexity that the " +"student must master and slows the pace of the course. The students are " +"trying to learn to think like a computer, decompose problems, design " +"consistent interfaces, and encapsulate data. While learning to use a " +"statically typed language is important in the long term, it is not " +"necessarily the best topic to address in the students' first programming " +"course." +msgstr "" +"Pour un étudiant qui n'a jamais programmé avant, utiliser un langage à " +"typage statique peut sembler contre-nature. Cela représente une complexité " +"additionnelle que l'étudiant doit maîtriser ce qui ralentit le cours. Les " +"étudiants essaient d'apprendre à penser comme un ordinateur, décomposer les " +"problèmes, établir une architecture propre, et résumer les données. " +"Apprendre à utiliser un langage typé statiquement est important sur le long " +"terme, ce n'est pas nécessairement la meilleure idée pour s'adresser aux " +"étudiants durant leur tout premier cours." + +#: ../Doc/faq/general.rst:395 +msgid "" +"Many other aspects of Python make it a good first language. Like Java, " +"Python has a large standard library so that students can be assigned " +"programming projects very early in the course that *do* something. " +"Assignments aren't restricted to the standard four-function calculator and " +"check balancing programs. By using the standard library, students can gain " +"the satisfaction of working on realistic applications as they learn the " +"fundamentals of programming. Using the standard library also teaches " +"students about code reuse. Third-party modules such as PyGame are also " +"helpful in extending the students' reach." +msgstr "" +"De nombreux autres aspects de Python en font un bon premier langage. Comme " +"Java, Python a une large bibliothèque standard donc les étudiants peuvent " +"être assigner à la programmation de projets très tôt dans leur apprentissage " +"qui *fait* quelque chose. Les missions ne sont pas restreintes aux quatre " +"fonction standards. En utilisant la bibliothèque standard, les étudiants " +"peuvent ressentir de la satisfaction en travaillant sur des applications " +"réalistes alors qu'ils apprennent les fondamentaux de la programmation. " +"Utiliser la bibliothèque standard apprend aussi aux étudiants la " +"réutilisation de code. Les modules tiers tels que PyGame sont aussi très " +"utiles pour étendre les compétences des étudiants." + +#: ../Doc/faq/general.rst:404 +msgid "" +"Python's interactive interpreter enables students to test language features " +"while they're programming. They can keep a window with the interpreter " +"running while they enter their program's source in another window. If they " +"can't remember the methods for a list, they can do something like this::" +msgstr "" +"L'interpréteur interactif de Python permet aux étudiants de tester les " +"fonctionnalités du langage pendant qu'ils programment. Ils peuvent garder " +"une fenêtre avec l'interpréteur en fonctionnement pendant qu'ils rentrent la " +"source de leur programme dans une autre fenêtre. S'ils ne peuvent pas se " +"souvenir des méthodes pour une liste, ils peuvent faire quelque chose comme " +"ça ::" + +#: ../Doc/faq/general.rst:433 +msgid "" +"With the interpreter, documentation is never far from the student as they " +"are programming." +msgstr "" +"Avec l'interpréteur, la documentation n'est jamais loin des étudiants quand " +"ils travaillent." + +#: ../Doc/faq/general.rst:436 +msgid "" +"There are also good IDEs for Python. IDLE is a cross-platform IDE for " +"Python that is written in Python using Tkinter. PythonWin is a Windows-" +"specific IDE. Emacs users will be happy to know that there is a very good " +"Python mode for Emacs. All of these programming environments provide syntax " +"highlighting, auto-indenting, and access to the interactive interpreter " +"while coding. Consult `the Python wiki `_ for a full list of Python editing environments." +msgstr "" +"Il y a aussi de bons environnements de développement intégrés (EDIs) pour " +"Python. IDLE est un EDI multiplateforme pour Python qui est écrit en Python " +"en utilisant Tkinter. *PythonWin* est un IDE spécifique à Windows. Les " +"utilisateurs d'Emcs seront heureux d'apprendre qu'il y a un très bon mode " +"Python pour Emacs. Tous ces environnements de développement intégrés " +"fournissent la coloration syntaxique, l'auto-indentation, et l'accès à " +"l'interpréteur interactif durant le codage. Consultez `le wiki Python " +"`_ pour une liste complète des " +"environnements de développement intégrés." + +#: ../Doc/faq/general.rst:444 +msgid "" +"If you want to discuss Python's use in education, you may be interested in " +"joining `the edu-sig mailing list `_." +msgstr "" +"Si vous voulez discuter de l'usage de Python dans l'éducation, vous devriez " +"intéressé pour rejoindre `la liste de diffusion pour l'enseignement `_." diff --git a/faq/gui.po b/faq/gui.po new file mode 100644 index 000000000..a162dab79 --- /dev/null +++ b/faq/gui.po @@ -0,0 +1,336 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-08-06 11:31+0200\n" +"Last-Translator: Zepmanbc \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" + +#: ../Doc/faq/gui.rst:5 +msgid "Graphic User Interface FAQ" +msgstr "FAQ interface graphique" + +#: ../Doc/faq/gui.rst:8 +msgid "Contents" +msgstr "Sommaire" + +#: ../Doc/faq/gui.rst:15 +msgid "General GUI Questions" +msgstr "Questions générales sur l'interface graphique" + +#: ../Doc/faq/gui.rst:18 +msgid "What platform-independent GUI toolkits exist for Python?" +msgstr "" +"Quelles bibliothèques d'interfaces graphiques multi-plateformes existent en " +"Python ?" + +#: ../Doc/faq/gui.rst:20 +msgid "" +"Depending on what platform(s) you are aiming at, there are several. Some of " +"them haven't been ported to Python 3 yet. At least `Tkinter`_ and `Qt`_ are " +"known to be Python 3-compatible." +msgstr "" +"Selon les plateformes que vous comptez utiliser, il en existe plusieurs. " +"Certaines ne sont cependant pas encore disponibles en Python 3. A minima, " +"`Tkinter`_ et `Qt`_ sont connus pour être compatibles avec Python 3." + +#: ../Doc/faq/gui.rst:27 +msgid "Tkinter" +msgstr "*Tkinter*" + +#: ../Doc/faq/gui.rst:29 +msgid "" +"Standard builds of Python include an object-oriented interface to the Tcl/Tk " +"widget set, called :ref:`tkinter `. This is probably the easiest " +"to install (since it comes included with most `binary distributions `_ of Python) and use. For more info about Tk, " +"including pointers to the source, see the `Tcl/Tk home page `_. Tcl/Tk is fully portable to the Mac OS X, Windows, and Unix " +"platforms." +msgstr "" +"Les versions standards de Python incluent une interface orientée objet pour " +"le jeu d'objets graphiques *Tcl/Tk*, appelée :ref:`tkinter `. " +"C'est probablement la plus facile à installer (puisqu'elle est incluse avec " +"la plupart des `distributions binaires `_ " +"de Python) et à utiliser. Pour plus d'informations sur *Tk*, y compris les " +"liens vers les sources, voir la page d'accueil `Tcl/Tk `_. *Tcl/Tk* est entièrement portable sur les plates-formes Mac OS X, " +"Windows et Unix." + +#: ../Doc/faq/gui.rst:38 +msgid "wxWidgets" +msgstr "*wxWidgets*" + +#: ../Doc/faq/gui.rst:40 +msgid "" +"wxWidgets (https://www.wxwidgets.org) is a free, portable GUI class library " +"written in C++ that provides a native look and feel on a number of " +"platforms, with Windows, Mac OS X, GTK, X11, all listed as current stable " +"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:46 +msgid "" +"`wxPython `_ is the Python binding for wxwidgets. " +"While it often lags slightly behind the official wxWidgets releases, it also " +"offers a number of features via pure Python extensions that are not " +"available in other language bindings. There is an active wxPython user and " +"developer community." +msgstr "" +"`wxPython `_ est le portage Python de *wxWidgets*. " +"Bien qu’il soit légèrement en retard sur les versions officielles de " +"*wxWidgets*, il offre également des fonctionnalités propres à Python qui ne " +"sont pas disponibles pour les clients d'autres langages. *WxPython* dispose " +"de plus, d’une communauté d’utilisateurs et de développeurs active." + +#: ../Doc/faq/gui.rst:52 +msgid "" +"Both wxWidgets and wxPython are free, open source, software with permissive " +"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:58 +msgid "Qt" +msgstr "*Qt*" + +#: ../Doc/faq/gui.rst:60 +msgid "" +"There are bindings available for the Qt toolkit (using either `PyQt `_ or `PySide `_) and for KDE (`PyKDE4 `__). PyQt is currently more mature than PySide, but you must " +"buy a PyQt license from `Riverbank Computing `_ 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 `_ ou `PySide " +"`_) et pour *KDE* (`PyKDE4 `__). *PyQt* est actuellement plus mûre " +"que *PySide*, mais*PyQt* nécessite d'acheter une licence de `Riverbank " +"Computing `_ si " +"vous voulez écrire des applications propriétaires. *PySide* est gratuit " +"pour toutes les applications." + +#: ../Doc/faq/gui.rst:67 +msgid "" +"Qt 4.5 upwards is licensed under the LGPL license; also, commercial licenses " +"are available from `The Qt Company `_." +msgstr "" +"*Qt >= 4.5* est sous licence LGPL ; de plus, des licences commerciales sont " +"disponibles auprès de `The Qt Company `_." + +#: ../Doc/faq/gui.rst:71 +msgid "Gtk+" +msgstr "*Gtk+*" + +#: ../Doc/faq/gui.rst:73 +msgid "" +"The `GObject introspection bindings `_ for Python allow you to write GTK+ 3 applications. There is " +"also a `Python GTK+ 3 Tutorial `_." +msgstr "" +"Les `GObject introspection bindings `_ pour Python vous permettent d'écrire des applications GTK+ 3. " +"Il y a aussi un tutoriel `Python GTK+ 3 `_." + +#: ../Doc/faq/gui.rst:77 +msgid "" +"The older PyGtk bindings for the `Gtk+ 2 toolkit `_ " +"have been implemented by James Henstridge; see ." +msgstr "" +"Les anciennes versions de *PyGtk* pour le `Gtk+ 2 toolkit `_ ont été implémentées par James Henstridge ; voir ." + +#: ../Doc/faq/gui.rst:81 +msgid "Kivy" +msgstr "*Kivy*" + +#: ../Doc/faq/gui.rst:83 +msgid "" +"`Kivy `_ is a cross-platform GUI library supporting both " +"desktop operating systems (Windows, macOS, Linux) and mobile devices " +"(Android, iOS). It is written in Python and Cython, and can use a range of " +"windowing backends." +msgstr "" +"`*Kivy* `_ est une bibliothèque GUI multi-plateformes " +"disponible à la fois sur les systèmes d'exploitation de bureau (Windows, " +"MacOS, Linux) et les appareils mobiles (Android, iOS). Elle est écrite en " +"Python et Cython, et peut utiliser une série de fenêtres de *backends*." + +#: ../Doc/faq/gui.rst:88 +msgid "" +"Kivy is free and open source software distributed under the MIT license." +msgstr "" +"*Kivy* est un logiciel libre et open source distribué sous licence MIT." + +#: ../Doc/faq/gui.rst:91 +msgid "FLTK" +msgstr "*FLTK*" + +#: ../Doc/faq/gui.rst:93 +msgid "" +"Python bindings for `the FLTK toolkit `_, a simple yet " +"powerful and mature cross-platform windowing system, are available from `the " +"PyFLTK project `_." +msgstr "" +"Les liaisons Python pour `the FLTK toolkit `_, un " +"système de fenêtrage multi-plateformes simple mais puissant et mûr, sont " +"disponibles auprès de `the PyFLTK project `_." + +#: ../Doc/faq/gui.rst:98 +msgid "OpenGL" +msgstr "*OpenGL*" + +#: ../Doc/faq/gui.rst:100 +msgid "For OpenGL bindings, see `PyOpenGL `_." +msgstr "" +"Pour les clients OpenGL, voir `PyOpenGL `_." + +#: ../Doc/faq/gui.rst:104 +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:106 +msgid "" +"By installing the `PyObjc Objective-C bridge `_, Python programs can use Mac OS X's Cocoa libraries." +msgstr "" +"En installant le `PyObjc Objective-C bridge `_, les programmes Python peuvent utiliser les bibliothèques Cocoa de Mac " +"OS X." + +#: ../Doc/faq/gui.rst:110 +msgid "" +":ref:`Pythonwin ` by Mark Hammond includes an interface to the " +"Microsoft Foundation Classes and a Python programming environment that's " +"written mostly in Python using the MFC classes." +msgstr "" +":ref:`Pythonwin ` 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:116 +msgid "Tkinter questions" +msgstr "Questions à propos de *Tkinter*" + +#: ../Doc/faq/gui.rst:119 +msgid "How do I freeze Tkinter applications?" +msgstr "Comment puis-je geler (*freezer*) les applications *Tkinter* ?" + +#: ../Doc/faq/gui.rst:121 +msgid "" +"Freeze is a tool to create stand-alone applications. When freezing Tkinter " +"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:125 +msgid "" +"One solution is to ship the application with the Tcl and Tk libraries, and " +"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:129 +msgid "" +"To get truly stand-alone applications, the Tcl scripts that form the library " +"have to be integrated into the application as well. One tool supporting that " +"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:134 +msgid "" +"Build Tix with SAM enabled, perform the appropriate call to :c:func:" +"`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:141 +msgid "Can I have Tk events handled while waiting for I/O?" +msgstr "Puis-je modifier des événements *Tk* pendant l'écoute des *E/S* ?" + +#: ../Doc/faq/gui.rst:143 +msgid "" +"On platforms other than Windows, yes, and you don't even need threads! But " +"you'll have to restructure your I/O code a bit. Tk has the equivalent of " +"Xt's :c:func:`XtAddInput()` call, which allows you to register a callback " +"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:151 +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:153 +msgid "" +"An often-heard complaint is that event handlers bound to events with the :" +"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:156 +msgid "" +"The most common cause is that the widget to which the binding applies " +"doesn't have \"keyboard focus\". Check out the Tk documentation for the " +"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*)." diff --git a/faq/index.po b/faq/index.po new file mode 100644 index 000000000..450c655f8 --- /dev/null +++ b/faq/index.po @@ -0,0 +1,19 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/faq/index.rst:5 +msgid "Python Frequently Asked Questions" +msgstr "Questions fréquemment posées sur Python" diff --git a/faq/installed.po b/faq/installed.po new file mode 100644 index 000000000..2c39ba32e --- /dev/null +++ b/faq/installed.po @@ -0,0 +1,144 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 13:21+0200\n" +"PO-Revision-Date: 2018-10-04 16:57+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.1.1\n" + +#: ../Doc/faq/installed.rst:3 +msgid "\"Why is Python Installed on my Computer?\" FAQ" +msgstr "FAQ \"Pourquoi Python est installé sur mon ordinateur ?\"" + +#: ../Doc/faq/installed.rst:6 +msgid "What is Python?" +msgstr "Qu'est-ce que Python ?" + +#: ../Doc/faq/installed.rst:8 +msgid "" +"Python is a programming language. It's used for many different " +"applications. It's used in some high schools and colleges as an introductory " +"programming language because Python is easy to learn, but it's also used by " +"professional software developers at places such as Google, NASA, and " +"Lucasfilm Ltd." +msgstr "" +"Python est un langage de programmation. Il est utilisé dans de nombreuses " +"applications. Souvent utilisé dans les lycées et universités comme langage " +"d'introduction à la programmation pour sa simplicité d'apprentissage, il est " +"aussi utilisé par des développeurs professionnels appartenant à des grands " +"groupes comme Google, la NASA, Lucasfilm etc." + +#: ../Doc/faq/installed.rst:13 +msgid "" +"If you wish to learn more about Python, start with the `Beginner's Guide to " +"Python `_." +msgstr "" +"Si vous voulez en apprendre plus sur Python, vous pouvez commencer par le " +"`Guide des Débutants pour Python `_." + +#: ../Doc/faq/installed.rst:18 +msgid "Why is Python installed on my machine?" +msgstr "Pourquoi Python est installé sur ma machine ?" + +#: ../Doc/faq/installed.rst:20 +msgid "" +"If you find Python installed on your system but don't remember installing " +"it, there are several possible ways it could have gotten there." +msgstr "" +"Si Python est installé sur votre système mais que vous ne vous rappelez pas " +"l'avoir installé, il y a plusieurs raisons possibles à sa présence." + +#: ../Doc/faq/installed.rst:23 +msgid "" +"Perhaps another user on the computer wanted to learn programming and " +"installed it; you'll have to figure out who's been using the machine and " +"might have installed it." +msgstr "" +"Peut être qu'un autre utilisateur de l'ordinateur voulait apprendre la " +"programmation et l'a installé, dans ce cas vous allez devoir trouver qui a " +"utilisé votre machine et aurait pu l'installer." + +#: ../Doc/faq/installed.rst:26 +msgid "" +"A third-party application installed on the machine might have been written " +"in Python and included a Python installation. There are many such " +"applications, from GUI programs to network servers and administrative " +"scripts." +msgstr "" +"Une application tierce installée sur votre machine écrite en Python " +"installera Python. Il existe de nombreuses applications de ce type, allant " +"de programme avec interface graphique, jusqu'aux scripts d'administration, " +"en passant par les serveurs." + +#: ../Doc/faq/installed.rst:29 +msgid "" +"Some Windows machines also have Python installed. At this writing we're " +"aware of computers from Hewlett-Packard and Compaq that include Python. " +"Apparently some of HP/Compaq's administrative tools are written in Python." +msgstr "" +"Certaines machines fonctionnant avec le système d'exploitation Windows " +"possèdent une installation de Python. À ce jour, les ordinateurs des marques " +"Hewlett-Packard et Compaq incluent nativement Python. Certains outils " +"d'administration de ces marques sont écrits en Python." + +#: ../Doc/faq/installed.rst:32 +msgid "" +"Many Unix-compatible operating systems, such as Mac OS X and some Linux " +"distributions, have Python installed by default; it's included in the base " +"installation." +msgstr "" +"Python est installé par défaut et à l'installation par de nombreux systèmes " +"Unix, comme Mac OS X et certaines distributions Linux." + +#: ../Doc/faq/installed.rst:38 +msgid "Can I delete Python?" +msgstr "Puis-je supprimer Python ?" + +#: ../Doc/faq/installed.rst:40 +msgid "That depends on where Python came from." +msgstr "Cela dépend de l'origine de Python." + +#: ../Doc/faq/installed.rst:42 +msgid "" +"If someone installed it deliberately, you can remove it without hurting " +"anything. On Windows, use the Add/Remove Programs icon in the Control Panel." +msgstr "" +"Si Python a été installé délibérément par une personne tierce ou vous même, " +"vous pouvez le supprimer sans causer de dommage. Sous Windows, vous pouvez " +"simplement utiliser l'icône d'Ajout / Suppression de programmes du Panneau " +"de configuration." + +#: ../Doc/faq/installed.rst:45 +msgid "" +"If Python was installed by a third-party application, you can also remove " +"it, but that application will no longer work. You should use that " +"application's uninstaller rather than removing Python directly." +msgstr "" +"Si Python a été installé par une application tierce, Python peut être " +"désinstallé, l'application l'ayant installé cessera alors de fonctionner. " +"Dans ce cas, désinstallez l'application en utilisant son outil de " +"désinstallation est plus indiqué que supprimer Python." + +#: ../Doc/faq/installed.rst:49 +msgid "" +"If Python came with your operating system, removing it is not recommended. " +"If you remove it, whatever tools were written in Python will no longer run, " +"and some of them might be important to you. Reinstalling the whole system " +"would then be required to fix things again." +msgstr "" +"Si Python a été installé avec votre système d'exploitation, le supprimer " +"n'est pas recommandé. Si vous choisissez tout de même de le supprimer, tous " +"les outils écrits en python cesseront alors de fonctionner, certains outils " +"pouvant être importants. La réinstallation intégrale du système pourrait " +"être nécessaire pour résoudre les problèmes suite à la désinstallation de " +"Python." diff --git a/faq/library.po b/faq/library.po new file mode 100644 index 000000000..ae422f258 --- /dev/null +++ b/faq/library.po @@ -0,0 +1,1179 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2019-08-22 22:17+0200\n" +"Last-Translator: Antoine Wecxsteen\n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/faq/library.rst:5 +msgid "Library and Extension FAQ" +msgstr "FAQ sur la bibliothèque et les extensions" + +#: ../Doc/faq/library.rst:8 +msgid "Contents" +msgstr "Sommaire" + +#: ../Doc/faq/library.rst:12 +msgid "General Library Questions" +msgstr "Questions générales sur la bibliothèque" + +#: ../Doc/faq/library.rst:15 +msgid "How do I find a module or application to perform task X?" +msgstr "" +"Comment trouver un module ou une application pour effectuer la tâche X ?" + +#: ../Doc/faq/library.rst:17 +msgid "" +"Check :ref:`the Library Reference ` to see if there's a " +"relevant standard library module. (Eventually you'll learn what's in the " +"standard library and will be able to skip this step.)" +msgstr "" +"Regardez si la :ref:`bibliothèque standard ` contient un " +"module approprié (avec l'expérience, vous connaitrez le contenu de la " +"bibliothèque standard et pourrez sauter cette étape)." + +#: ../Doc/faq/library.rst:21 +msgid "" +"For third-party packages, search the `Python Package Index `_ or try `Google `_ or another Web search " +"engine. Searching for \"Python\" plus a keyword or two for your topic of " +"interest will usually find something helpful." +msgstr "" +"Pour des paquets tiers, regardez dans `l'index des paquets Python `_ ou essayez `Google `_ ou un autre moteur " +"de recherche (NDT : comme le moteur français `Qwant `_). Rechercher « Python » accompagné d'un ou deux mots-clés se " +"rapportant à ce qui vous intéresse donne souvent de bons résultats." + +#: ../Doc/faq/library.rst:28 +msgid "Where is the math.py (socket.py, regex.py, etc.) source file?" +msgstr "" +"Où sont stockés les fichiers sources *math.py*, *socket.py*, *regex.py*, " +"etc ?" + +#: ../Doc/faq/library.rst:30 +msgid "" +"If you can't find a source file for a module it may be a built-in or " +"dynamically loaded module implemented in C, C++ or other compiled language. " +"In this case you may not have the source file or it may be something like :" +"file:`mathmodule.c`, somewhere in a C source directory (not on the Python " +"Path)." +msgstr "" +"Si vous ne parvenez pas à trouver le fichier source d'un module, c'est peut-" +"être parce que celui-ci est un module natif ou bien un module implémenté en " +"C, C++, ou autre langage compilé, qui est chargé dynamiquement. Dans ce cas, " +"vous ne possédez peut-être pas le fichier source ou celui-ci est en réalité " +"stocké quelque part dans un dossier de fichiers source C (qui ne sera pas " +"dans le chemin Python), comme par exemple :file:`mathmodule.c`." + +#: ../Doc/faq/library.rst:35 +msgid "There are (at least) three kinds of modules in Python:" +msgstr "Il y a (au moins) trois types de modules dans Python :" + +#: ../Doc/faq/library.rst:37 +msgid "modules written in Python (.py);" +msgstr "les modules écrits en Python (*.py*) ;" + +#: ../Doc/faq/library.rst:38 +msgid "" +"modules written in C and dynamically loaded (.dll, .pyd, .so, .sl, etc);" +msgstr "" +"les modules écrits en C et chargés dynamiquement (*.dll*, *.pyd*, *.so*, *." +"sl*, *etc.*) ;" + +#: ../Doc/faq/library.rst:39 +msgid "" +"modules written in C and linked with the interpreter; to get a list of " +"these, type::" +msgstr "" +"les modules écrits en C et liés à l'interpréteur ; pour obtenir leur liste, " +"entrez ::" + +#: ../Doc/faq/library.rst:47 +msgid "How do I make a Python script executable on Unix?" +msgstr "Comment rendre un script Python exécutable sous Unix ?" + +#: ../Doc/faq/library.rst:49 +msgid "" +"You need to do two things: the script file's mode must be executable and the " +"first line must begin with ``#!`` followed by the path of the Python " +"interpreter." +msgstr "" +"Deux conditions doivent être remplies : les droits d'accès au fichier " +"doivent permettre son exécution et la première ligne du script doit " +"commencer par ``#!`` suivi du chemin vers l'interpréteur Python." + +#: ../Doc/faq/library.rst:53 +msgid "" +"The first is done by executing ``chmod +x scriptfile`` or perhaps ``chmod " +"755 scriptfile``." +msgstr "" +"La première condition est remplie en exécutant ``chmod +x scriptfile`` ou " +"``chmod 755 scriptfile``." + +#: ../Doc/faq/library.rst:56 +msgid "" +"The second can be done in a number of ways. The most straightforward way is " +"to write ::" +msgstr "" +"Il y a plusieurs façons de remplir la seconde. La plus simple consiste à " +"écrire au tout début du fichier ::" + +#: ../Doc/faq/library.rst:61 +msgid "" +"as the very first line of your file, using the pathname for where the Python " +"interpreter is installed on your platform." +msgstr "en utilisant le chemin de l'interpréteur Python sur votre machine." + +#: ../Doc/faq/library.rst:64 +msgid "" +"If you would like the script to be independent of where the Python " +"interpreter lives, you can use the :program:`env` program. Almost all Unix " +"variants support the following, assuming the Python interpreter is in a " +"directory on the user's :envvar:`PATH`::" +msgstr "" +"Pour rendre ce script indépendant de la localisation de l'interpréteur " +"Python, il faut utiliser le programme :program:`env`. La ligne ci-dessous " +"fonctionne sur la quasi-totalité des dérivés de Unix, à condition que " +"l'interpréteur Python soit dans un dossier référencé dans la variable :" +"envvar:`PATH` de l'utilisateur ::" + +#: ../Doc/faq/library.rst:71 +msgid "" +"*Don't* do this for CGI scripts. The :envvar:`PATH` variable for CGI " +"scripts is often very minimal, so you need to use the actual absolute " +"pathname of the interpreter." +msgstr "" +"Ne faites *pas* ceci pour des scripts CGI. La variable :envvar:`PATH` des " +"scripts CGI est souvent très succincte, il faut par conséquent préciser le " +"chemin absolu réel de l'interpréteur." + +#: ../Doc/faq/library.rst:75 +msgid "" +"Occasionally, a user's environment is so full that the :program:`/usr/bin/" +"env` program fails; or there's no env program at all. In that case, you can " +"try the following hack (due to Alex Rezinsky):" +msgstr "" +"Il peut arriver que l'environnement d'un utilisateur soit si chargé que le " +"programme :program:`/usr/bin/env` échoue ; ou que le programme *env* " +"n'existe pas du tout. Dans ce cas, vous pouvez utiliser l'astuce suivante, " +"élaborée par Alex Rezinsky :" + +#: ../Doc/faq/library.rst:86 +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:94 +msgid "Is there a curses/termcap package for Python?" +msgstr "Existe-t'il un module *curse* ou *termcap* en Python ?" + +#: ../Doc/faq/library.rst:98 +msgid "" +"For Unix variants: The standard Python source distribution comes with a " +"curses module in the :source:`Modules` subdirectory, though it's not " +"compiled by default. (Note that this is not available in the Windows " +"distribution -- there is no curses module for Windows.)" +msgstr "" +"Pour les dérivés d'Unix : la distribution standard de Python contient un " +"module *curses* dans le sous-dossier :source:`Modules`, bien qu'il ne soit " +"pas compilé par défaut. Il n'est pas disponible en Windows — le module " +"*curses* n'existant pas en Windows." + +#: ../Doc/faq/library.rst:103 +msgid "" +"The :mod:`curses` module supports basic curses features as well as many " +"additional functions from ncurses and SYSV curses such as colour, " +"alternative character set support, pads, and mouse support. This means the " +"module isn't compatible with operating systems that only have BSD curses, " +"but there don't seem to be any currently maintained OSes that fall into this " +"category." +msgstr "" +"Le module :mod:`curses` comprend les fonctionnalités de base de *curses* et " +"beaucoup de fonctionnalités supplémentaires provenant de *ncurses* et de " +"*SYSV curses* comme la couleur, la gestion des ensembles de caractères " +"alternatifs, la prise en charge du pavé tactile et de la souris. Cela " +"implique que le module n'est pas compatible avec des systèmes d'exploitation " +"qui n'ont que le *curses* de BSD mais, de nos jours, de tels systèmes " +"d'exploitation ne semblent plus exister ou être maintenus." + +#: ../Doc/faq/library.rst:109 +msgid "" +"For Windows: use `the consolelib module `_." +msgstr "" +"Pour Windows : utilisez le module `consolelib `_." + +#: ../Doc/faq/library.rst:114 +msgid "Is there an equivalent to C's onexit() in Python?" +msgstr "Existe-t'il un équivalent à la fonction C ``onexit()`` en Python ?" + +#: ../Doc/faq/library.rst:116 +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:121 +msgid "Why don't my signal handlers work?" +msgstr "Pourquoi mes gestionnaires de signaux ne fonctionnent-t'ils pas ?" + +#: ../Doc/faq/library.rst:123 +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:128 +msgid "so it should be declared with two arguments::" +msgstr "donc il doit être déclaré avec deux paramètres ::" + +#: ../Doc/faq/library.rst:135 +msgid "Common tasks" +msgstr "Tâches fréquentes" + +#: ../Doc/faq/library.rst:138 +msgid "How do I test a Python program or component?" +msgstr "Comment tester un programme ou un composant Python ?" + +#: ../Doc/faq/library.rst:140 +msgid "" +"Python comes with two testing frameworks. The :mod:`doctest` module finds " +"examples in the docstrings for a module and runs them, comparing the output " +"with the expected output given in the docstring." +msgstr "" +"Python fournit deux cadriciels de test. Le module :mod:`doctest` cherche des " +"exemples dans les *docstrings* d'un module et les exécute. Il compare alors " +"la sortie avec la sortie attendue, telle que définie dans la *docstring*." + +#: ../Doc/faq/library.rst:144 +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:147 +msgid "" +"To make testing easier, you should use good modular design in your program. " +"Your program should have almost all functionality encapsulated in either " +"functions or class methods -- and this sometimes has the surprising and " +"delightful effect of making the program run faster (because local variable " +"accesses are faster than global accesses). Furthermore the program should " +"avoid depending on mutating global variables, since this makes testing much " +"more difficult to do." +msgstr "" +"Pour rendre le test plus aisé, il est nécessaire de bien découper le code " +"d'un programme. Votre programme doit avoir la quasi-totalité des " +"fonctionnalités dans des fonctions ou des classes — et ceci a parfois " +"l'avantage aussi plaisant qu'inattendu de rendre le programme plus rapide, " +"les accès aux variables locales étant en effet plus rapides que les accès " +"aux variables globales. De plus le programme doit éviter au maximum de " +"manipuler des variables globales, car ceci rend le test beaucoup plus " +"difficile." + +#: ../Doc/faq/library.rst:155 +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:160 +msgid "at the bottom of the main module of your program." +msgstr "à la fin du module principal du programme." + +#: ../Doc/faq/library.rst:162 +msgid "" +"Once your program is organized as a tractable collection of functions and " +"class behaviours you should write test functions that exercise the " +"behaviours. A test suite that automates a sequence of tests can be " +"associated with each module. This sounds like a lot of work, but since " +"Python is so terse and flexible it's surprisingly easy. You can make coding " +"much more pleasant and fun by writing your test functions in parallel with " +"the \"production code\", since this makes it easy to find bugs and even " +"design flaws earlier." +msgstr "" +"Une fois que la logique du programme est implémentée par un ensemble de " +"fonctions et de comportements de classes, il faut écrire des fonctions de " +"test qui vont éprouver cette logique. À chaque module, il est possible " +"d'associer une suite de tests qui joue de manière automatique un ensemble de " +"tests. Au premier abord, il semble qu'il faille fournir un effort " +"conséquent, mais comme Python est un langage concis et flexible, c'est " +"surprenamment aisé. Écrire simultanément le code « de production » et les " +"fonctions de test associées rend le développement plus agréable et plus " +"amusant, car ceci permet de trouver des bogues, voire des défauts de " +"conception, plus facilement." + +#: ../Doc/faq/library.rst:170 +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:176 +msgid "" +"Even programs that interact with complex external interfaces may be tested " +"when the external interfaces are unavailable by using \"fake\" interfaces " +"implemented in Python." +msgstr "" +"Les programmes qui interagissent avec des interfaces externes complexes " +"peuvent être testés même quand ces interfaces ne sont pas disponibles, en " +"utilisant des interfaces « simulacres » implémentées en Python." + +#: ../Doc/faq/library.rst:182 +msgid "How do I create documentation from doc strings?" +msgstr "Comment générer la documentation à partir des *docstrings* ?" + +#: ../Doc/faq/library.rst:184 +msgid "" +"The :mod:`pydoc` module can create HTML from the doc strings in your Python " +"source code. An alternative for creating API documentation purely from " +"docstrings is `epydoc `_. `Sphinx `_ 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 `_. `Sphinx `_ peut également inclure du contenu " +"provenant de *docstrings*." + +#: ../Doc/faq/library.rst:191 +msgid "How do I get a single keypress at a time?" +msgstr "Comment détecter qu'une touche est pressée ?" + +#: ../Doc/faq/library.rst:193 +msgid "" +"For Unix variants there are several solutions. It's straightforward to do " +"this using curses, but curses is a fairly large module to learn." +msgstr "" +"Pour les dérivés d'Unix, plusieurs solutions s'offrent à vous. C'est facile " +"en utilisant le module *curses*, mais *curses* est un module assez " +"conséquent à apprendre." + +#: ../Doc/faq/library.rst:237 +msgid "Threads" +msgstr "Fils d'exécution" + +#: ../Doc/faq/library.rst:240 +msgid "How do I program using threads?" +msgstr "Comment programmer avec des fils d'exécution ?" + +#: ../Doc/faq/library.rst:242 +msgid "" +"Be sure to use the :mod:`threading` module and not the :mod:`_thread` " +"module. The :mod:`threading` module builds convenient abstractions on top of " +"the low-level primitives provided by the :mod:`_thread` module." +msgstr "" +"Veillez à bien utiliser le module :mod:`threading` et non le module :mod:" +"`_thread`. Le module :mod:`threading` fournit une abstraction plus facile à " +"manipuler que les primitives de bas-niveau du module :mod:`_thread`." + +#: ../Doc/faq/library.rst:246 +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:251 +msgid "None of my threads seem to run: why?" +msgstr "Aucun de mes fils ne semble s'exécuter : pourquoi ?" + +#: ../Doc/faq/library.rst:253 +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:256 +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:271 +msgid "" +"But now (on many platforms) the threads don't run in parallel, but appear to " +"run sequentially, one at a time! The reason is that the OS thread scheduler " +"doesn't start a new thread until the previous thread is blocked." +msgstr "" +"Mais à présent, sur beaucoup de plates-formes, les fils ne s'exécutent pas " +"en parallèle, mais semblent s'exécuter de manière séquentielle, l'un après " +"l'autre ! En réalité, l'ordonnanceur de fils du système d'exploitation ne " +"démarre pas de nouveau fil avant que le précédent ne soit bloqué." + +#: ../Doc/faq/library.rst:275 +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:288 +msgid "" +"Instead of trying to guess a good delay value for :func:`time.sleep`, it's " +"better to use some kind of semaphore mechanism. One idea is to use the :mod:" +"`queue` module to create a queue object, let each thread append a token to " +"the queue when it finishes, and let the main thread read as many tokens from " +"the queue as there are threads." +msgstr "" +"Au lieu d'essayer de trouver une bonne valeur d'attente pour la fonction :" +"func:`time.sleep`, il vaut mieux utiliser un mécanisme basé sur les " +"sémaphores. Une solution consiste à utiliser le module :mod:`queue` pour " +"créer un objet file, faire en sorte que chaque fil ajoute un jeton à la file " +"quand il se termine, et que le fil principal retire autant de jetons de la " +"file qu'il y a de fils." + +#: ../Doc/faq/library.rst:296 +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:298 +msgid "" +"The easiest way is to use the new :mod:`concurrent.futures` module, " +"especially the :mod:`~concurrent.futures.ThreadPoolExecutor` class." +msgstr "" +"La manière la plus simple est d'utiliser le nouveau module :mod:`concurrent." +"futures`, en particulier la classe :mod:`~concurrent.futures." +"ThreadPoolExecutor`." + +#: ../Doc/faq/library.rst:301 +msgid "" +"Or, if you want fine control over the dispatching algorithm, you can write " +"your own logic manually. Use the :mod:`queue` module to create a queue " +"containing a list of jobs. The :class:`~queue.Queue` class maintains a list " +"of objects and has a ``.put(obj)`` method that adds items to the queue and a " +"``.get()`` method to return them. The class will take care of the locking " +"necessary to ensure that each job is handed out exactly once." +msgstr "" +"Ou bien, si vous désirez contrôler plus finement l'algorithme de " +"distribution, vous pouvez écrire votre propre logique « à la main ». " +"Utilisez le module :mod:`queue` pour créer une file de tâches ; la classe :" +"class:`~queue.Queue` gère une liste d'objets et a une méthode ``." +"put(objet)`` pour ajouter un élément à la file, et une méthode ``.get()`` " +"pour les récupérer. La classe s'occupe de gérer les verrous pour que chaque " +"tâche soit exécutée une et une seule fois." + +#: ../Doc/faq/library.rst:308 +msgid "Here's a trivial example::" +msgstr "Voici un exemple trivial ::" + +#: ../Doc/faq/library.rst:346 +msgid "When run, this will produce the following output:" +msgstr "Quand celui-ci est exécuté, il produit la sortie suivante :" + +#: ../Doc/faq/library.rst:364 +msgid "" +"Consult the module's documentation for more details; the :class:`~queue." +"Queue` class provides a featureful interface." +msgstr "" +"Consultez la documentation du module pour plus de détails ; la classe :class:" +"`~queue.Queue` fournit une interface pleine de fonctionnalités." + +#: ../Doc/faq/library.rst:369 +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:371 +msgid "" +"A :term:`global interpreter lock` (GIL) is used internally to ensure that " +"only one thread runs in the Python VM at a time. In general, Python offers " +"to switch among threads only between bytecode instructions; how frequently " +"it switches can be set via :func:`sys.setswitchinterval`. Each bytecode " +"instruction and therefore all the C implementation code reached from each " +"instruction is therefore atomic from the point of view of a Python program." +msgstr "" +"Le :term:`verrou global de l'interpréteur ` (GIL " +"pour *global interpreter lock*) est utilisé en interne pour s'assurer que la " +"machine virtuelle Python (MVP) n'exécute qu'un seul fil à la fois. De " +"manière générale, Python ne change de fil qu'entre les instructions du code " +"intermédiaire ; :func:`sys.setswitchinterval` permet de contrôler la " +"fréquence de bascule entre les fils. Chaque instruction du code " +"intermédiaire, et, par conséquent, tout le code C appelé par cette " +"instruction est donc atomique du point de vue d'un programme Python." + +#: ../Doc/faq/library.rst:378 +msgid "" +"In theory, this means an exact accounting requires an exact understanding of " +"the PVM bytecode implementation. In practice, it means that operations on " +"shared variables of built-in data types (ints, lists, dicts, etc) that " +"\"look atomic\" really are." +msgstr "" +"En théorie, cela veut dire qu'un décompte exact nécessite une connaissance " +"parfaite de l'implémentation de la MVP. En pratique, cela veut dire que les " +"opérations sur des variables partagées de type natif (les entier, les " +"listes, les dictionnaires etc.) qui « semblent atomiques » le sont " +"réellement." + +#: ../Doc/faq/library.rst:383 +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:398 +msgid "These aren't::" +msgstr "Les suivantes ne le sont pas ::" + +#: ../Doc/faq/library.rst:405 +msgid "" +"Operations that replace other objects may invoke those other objects' :meth:" +"`__del__` method when their reference count reaches zero, and that can " +"affect things. This is especially true for the mass updates to dictionaries " +"and lists. When in doubt, use a mutex!" +msgstr "" +"Les opérations qui remplacent d'autres objets peuvent invoquer la méthode :" +"meth:`__del__` de ces objets quand leur compteur de référence passe à zéro, " +"et cela peut avoir de l'impact. C'est tout particulièrement vrai pour les " +"des changements massifs sur des dictionnaires ou des listes. En cas de " +"doute, il vaut mieux utiliser un mutex." + +#: ../Doc/faq/library.rst:412 +msgid "Can't we get rid of the Global Interpreter Lock?" +msgstr "Pourquoi ne pas se débarrasser du verrou global de l'interpréteur ?" + +#: ../Doc/faq/library.rst:416 +msgid "" +"The :term:`global interpreter lock` (GIL) is often seen as a hindrance to " +"Python's deployment on high-end multiprocessor server machines, because a " +"multi-threaded Python program effectively only uses one CPU, due to the " +"insistence that (almost) all Python code can only run while the GIL is held." +msgstr "" +"Le :term:`verrou global de l'interpréteur ` (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:421 +msgid "" +"Back in the days of Python 1.5, Greg Stein actually implemented a " +"comprehensive patch set (the \"free threading\" patches) that removed the " +"GIL and replaced it with fine-grained locking. Adam Olsen recently did a " +"similar experiment in his `python-safethread `_ project. Unfortunately, both experiments " +"exhibited a sharp drop in single-thread performance (at least 30% slower), " +"due to the amount of fine-grained locking necessary to compensate for the " +"removal of the GIL." +msgstr "" +"À l'époque de Python 1.5, Greg Stein a bien implémenté un ensemble complet " +"de correctifs (les correctifs « fils d'exécution libres ») qui remplaçaient " +"le GIL par des verrous plus granulaires. Adam Olsen a conduit une expérience " +"similaire dans son projet `python-safethread `_. Malheureusement, ces deux tentatives ont " +"induit une baisse significative (d'au moins 30%) des performances du code à " +"un seul fil d'exécution, à cause de la quantité de verrouillage plus " +"granulaire nécessaire pour contrebalancer la suppression du GIL." + +#: ../Doc/faq/library.rst:429 +msgid "" +"This doesn't mean that you can't make good use of Python on multi-CPU " +"machines! You just have to be creative with dividing the work up between " +"multiple *processes* rather than multiple *threads*. The :class:" +"`~concurrent.futures.ProcessPoolExecutor` class in the new :mod:`concurrent." +"futures` module provides an easy way of doing so; the :mod:`multiprocessing` " +"module provides a lower-level API in case you want more control over " +"dispatching of tasks." +msgstr "" +"Cela ne signifie pas qu'il est impossible de tirer profit de Python sur des " +"machines à plusieurs cœurs ! Il faut seulement être malin et diviser le " +"travail à faire entre plusieurs *processus* plutôt qu'entre plusieurs *fils " +"d'exécution*. La classe :class:`~concurrent.futures.ProcessPoolExecutor` du " +"nouveau module :mod:`concurrent.futures` permet de faire cela facilement ; " +"le module :mod:`multiprocessing` fournit une API de plus bas-niveau pour un " +"meilleur contrôle sur la distribution des tâches." + +#: ../Doc/faq/library.rst:437 +msgid "" +"Judicious use of C extensions will also help; if you use a C extension to " +"perform a time-consuming task, the extension can release the GIL while the " +"thread of execution is in the C code and allow other threads to get some " +"work done. Some standard library modules such as :mod:`zlib` and :mod:" +"`hashlib` already do this." +msgstr "" +"Des extensions C appropriées peuvent aussi aider ; en utilisant une " +"extension C pour effectuer une tâche longue, l'extension peut relâcher le " +"GIL pendant que le fil est en train d'exécuter ce code et laisser les autres " +"fils travailler. Des modules de la bibliothèque standard comme :mod:`zlib` " +"ou :mod:`hashlib` utilisent cette technique." + +#: ../Doc/faq/library.rst:443 +msgid "" +"It has been suggested that the GIL should be a per-interpreter-state lock " +"rather than truly global; interpreters then wouldn't be able to share " +"objects. Unfortunately, this isn't likely to happen either. It would be a " +"tremendous amount of work, because many object implementations currently " +"have global state. For example, small integers and short strings are cached; " +"these caches would have to be moved to the interpreter state. Other object " +"types have their own free list; these free lists would have to be moved to " +"the interpreter state. And so on." +msgstr "" +"On a déjà proposé de restreindre le GIL par interpréteur, et non plus d'être " +"complétement global ; les interpréteurs ne seraient plus en mesure de " +"partager des objets. Malheureusement, cela n'a pas beaucoup de chance non " +"plus d'arriver. Cela nécessiterait un travail considérable, car la façon " +"dont beaucoup d'objets sont implémentés rend leur état global. Par exemple, " +"les entiers et les chaînes de caractères courts sont mis en cache ; ces " +"caches devraient être déplacés au niveau de l'interpréteur. D'autres objets " +"ont leur propre liste de suppression, ces listes devraient être déplacées au " +"niveau de l'interpréteur et ainsi de suite." + +#: ../Doc/faq/library.rst:452 +msgid "" +"And I doubt that it can even be done in finite time, because the same " +"problem exists for 3rd party extensions. It is likely that 3rd party " +"extensions are being written at a faster rate than you can convert them to " +"store all their global state in the interpreter state." +msgstr "" +"C'est une tâche sans fin, car les extensions tierces ont le même problème, " +"et il est probable que les extensions tierces soient développées plus vite " +"qu'il ne soit possible de les corriger pour les faire stocker leur état au " +"niveau de l'interpréteur et non plus au niveau global." + +#: ../Doc/faq/library.rst:457 +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:462 +msgid "Input and Output" +msgstr "Les entrées/sorties" + +#: ../Doc/faq/library.rst:465 +msgid "How do I delete a file? (And other file questions...)" +msgstr "Comment supprimer un fichier ? (et autres questions sur les fichiers…)" + +#: ../Doc/faq/library.rst:467 +msgid "" +"Use ``os.remove(filename)`` or ``os.unlink(filename)``; for documentation, " +"see the :mod:`os` module. The two functions are identical; :func:`~os." +"unlink` is simply the name of the Unix system call for this function." +msgstr "" +"Utilisez ``os.remove(filename)`` ou ``os.unlink(filename)`` ; pour la " +"documentation, référez-vous au module :mod:`os`. Ces deux fonctions sont " +"identiques, :func:`~os.unlink` n'est tout simplement que le nom de l'appel " +"système à cette fonction sous Unix." + +#: ../Doc/faq/library.rst:471 +msgid "" +"To remove a directory, use :func:`os.rmdir`; use :func:`os.mkdir` to create " +"one. ``os.makedirs(path)`` will create any intermediate directories in " +"``path`` that don't exist. ``os.removedirs(path)`` will remove intermediate " +"directories as long as they're empty; if you want to delete an entire " +"directory tree and its contents, use :func:`shutil.rmtree`." +msgstr "" +"Utilisez :func:`os.rmdir` pour supprimer un dossier et :func:`os.mkdir` pour " +"en créer un nouveau. ``os.makedirs(chemin)`` crée les dossiers " +"intermédiaires de ``chemin`` qui n'existent pas et ``os.removedirs(chemin)`` " +"supprime les dossiers intermédiaires si ceux-ci sont vides. Pour supprimer " +"une arborescence et tout son contenu, utilisez :func:`shutil.rmtree`." + +#: ../Doc/faq/library.rst:477 +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:479 +msgid "" +"To truncate a file, open it using ``f = open(filename, \"rb+\")``, and use " +"``f.truncate(offset)``; offset defaults to the current seek position. " +"There's also ``os.ftruncate(fd, offset)`` for files opened with :func:`os." +"open`, where *fd* is the file descriptor (a small integer)." +msgstr "" +"Pour supprimer le contenu d'un fichier, ouvrez celui-ci avec ``f = " +"open(nom_du_fichier, \"rb+\")``, puis exécutez ``f.truncate(décalage)`` où " +"*décalage* est par défaut la position actuelle de la tête de lecture. Il " +"existe aussi ``os.ftruncate(df, décalage)`` pour les fichiers ouverts avec :" +"func:`os.open`, où *df* est le descripteur de fichier (un entier court)." + +#: ../Doc/faq/library.rst:484 +msgid "" +"The :mod:`shutil` module also contains a number of functions to work on " +"files including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, and :" +"func:`~shutil.rmtree`." +msgstr "" +"Le module :mod:`shutil` propose aussi un grand nombre de fonctions pour " +"effectuer des opérations sur des fichiers comme :func:`~shutil.copyfile`, :" +"func:`~shutil.copytree` et :func:`~shutil.rmtree`." + +#: ../Doc/faq/library.rst:490 +msgid "How do I copy a file?" +msgstr "Comment copier un fichier ?" + +#: ../Doc/faq/library.rst:492 +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:497 +msgid "How do I read (or write) binary data?" +msgstr "Comment lire (ou écrire) des données binaires ?" + +#: ../Doc/faq/library.rst:499 +msgid "" +"To read or write complex binary data formats, it's best to use the :mod:" +"`struct` module. It allows you to take a string containing binary data " +"(usually numbers) and convert it to Python objects; and vice versa." +msgstr "" +"Pour lire ou écrire des formats de données complexes en binaire, il est " +"recommandé d'utiliser le module :mod:`struct`. Celui-ci permet de convertir " +"une chaîne de caractères qui contient des données binaires, souvent des " +"nombres, en objets Python, et vice-versa." + +#: ../Doc/faq/library.rst:503 +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:512 +msgid "" +"The '>' in the format string forces big-endian data; the letter 'h' reads " +"one \"short integer\" (2 bytes), and 'l' reads one \"long integer\" (4 " +"bytes) from the string." +msgstr "" +"« > » dans la chaîne de formatage indique que la donnée doit être lue en " +"mode gros-boutiste, la lettre « h » indique un entier court (2 octets) et la " +"lettre « l » indique un entier long (4 octets)." + +#: ../Doc/faq/library.rst:516 +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:521 +msgid "" +"To read and write binary data, it is mandatory to open the file in binary " +"mode (here, passing ``\"rb\"`` to :func:`open`). If you use ``\"r\"`` " +"instead (the default), the file will be open in text mode and ``f.read()`` " +"will return :class:`str` objects rather than :class:`bytes` objects." +msgstr "" +"Pour lire et écrire de la donnée binaire, il est obligatoire d'ouvrir le " +"fichier en mode binaire également (ici, en passant ``\"rb\"`` à :func:" +"`open`). En utilisant ``\"r\"`` (valeur par défaut), le fichier est ouvert " +"en mode textuel et ``f.read()`` renvoie des objets :class:`str` au lieu " +"d'objets :class:`bytes`." + +#: ../Doc/faq/library.rst:529 +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:531 +msgid "" +":func:`os.read` is a low-level function which takes a file descriptor, a " +"small integer representing the opened file. :func:`os.popen` creates a high-" +"level file object, the same type returned by the built-in :func:`open` " +"function. Thus, to read *n* bytes from a pipe *p* created with :func:`os." +"popen`, you need to use ``p.read(n)``." +msgstr "" +":func:`os.read` est une fonction de bas niveau qui prend en paramètre un " +"descripteur de fichier — un entier court qui représente le fichier ouvert. :" +"func:`os.popen` crée un objet fichier de haut niveau, du même type que celui " +"renvoyé par la fonction native :func:`open`. Par conséquent, pour lire *n* " +"octets d'un tube *p* créé avec :func:`os.popen`, il faut utiliser ``p." +"read(n)``." + +#: ../Doc/faq/library.rst:618 +msgid "How do I access the serial (RS232) port?" +msgstr "Comment accéder au port de transmission en série (RS-232) ?" + +#: ../Doc/faq/library.rst:620 +msgid "For Win32, POSIX (Linux, BSD, etc.), Jython:" +msgstr "Pour Win32, POSIX (Linux, BSD, etc.) et Jython :" + +#: ../Doc/faq/library.rst:622 +msgid "http://pyserial.sourceforge.net" +msgstr "http://pyserial.sourceforge.net" + +#: ../Doc/faq/library.rst:624 +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:626 +msgid "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com" +msgstr "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com" + +#: ../Doc/faq/library.rst:630 +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:632 +msgid "" +"Python :term:`file objects ` are a high-level layer of " +"abstraction on low-level C file descriptors." +msgstr "" +"Les :term:`objets fichiers ` en Python sont des abstractions de " +"haut niveau sur les descripteurs de fichier C de bas niveau." + +#: ../Doc/faq/library.rst:635 +msgid "" +"For most file objects you create in Python via the built-in :func:`open` " +"function, ``f.close()`` marks the Python file object as being closed from " +"Python's point of view, and also arranges to close the underlying C file " +"descriptor. This also happens automatically in ``f``'s destructor, when " +"``f`` becomes garbage." +msgstr "" +"Pour la plupart des objets fichiers créés en Python avec la fonction native :" +"func:`open`, ``f.close()`` marque le fichier comme fermé du point de vue de " +"Python et ferme aussi le descripteur C sous-jacent. Le même mécanisme est " +"enclenché automatiquement dans le destructeur de ``f``, lorsque ``f`` est " +"recyclé." + +#: ../Doc/faq/library.rst:641 +msgid "" +"But stdin, stdout and stderr are treated specially by Python, because of the " +"special status also given to them by C. Running ``sys.stdout.close()`` " +"marks the Python-level file object as being closed, but does *not* close the " +"associated C file descriptor." +msgstr "" +"Mais *stdin*, *stdout* et *stderr* ont droit à un traitement spécial en " +"Python, car leur statut en C est lui-aussi spécial. Exécuter ``sys.stdout." +"close()`` marque l'objet fichier comme fermé du point de vue de Python, mais " +"le descripteur de fichier C associé n'est *pas* fermé." + +#: ../Doc/faq/library.rst:646 +msgid "" +"To close the underlying C file descriptor for one of these three, you should " +"first be sure that's what you really want to do (e.g., you may confuse " +"extension modules trying to do I/O). If it is, use :func:`os.close`::" +msgstr "" +"Pour fermer le descripteur de fichier sous-jacent C de l'une de ces trois " +"sorties, demandez-vous avant tout si vous êtes sûr de vous (cela peut, par " +"exemple, perturber le bon fonctionnement de modules qui font des opérations " +"d'entrée-sortie). Si c'est le cas, utilisez :func:`os.close` ::" + +#: ../Doc/faq/library.rst:654 +msgid "Or you can use the numeric constants 0, 1 and 2, respectively." +msgstr "" +"Il est aussi possible de fermer respectivement les constantes numériques 0, " +"1 ou 2." + +#: ../Doc/faq/library.rst:658 +msgid "Network/Internet Programming" +msgstr "Programmation réseau et Internet" + +#: ../Doc/faq/library.rst:661 +msgid "What WWW tools are there for Python?" +msgstr "Quels sont les outils Python dédiés à la Toile ?" + +#: ../Doc/faq/library.rst:663 +msgid "" +"See the chapters titled :ref:`internet` and :ref:`netdata` in the Library " +"Reference Manual. Python has many modules that will help you build server-" +"side and client-side web systems." +msgstr "" +"Référez-vous aux chapitres intitulés :ref:`internet` et :ref:`netdata` dans " +"le manuel de référence de la bibliothèque. Python a de nombreux modules pour " +"construire des applications de Toile côté client comme côté serveur." + +#: ../Doc/faq/library.rst:669 +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:672 +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:677 +msgid "How can I mimic CGI form submission (METHOD=POST)?" +msgstr "Comment reproduire un envoi de formulaire CGI (``METHOD=POST``) ?" + +#: ../Doc/faq/library.rst:679 +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:682 +msgid "Yes. Here's a simple example that uses urllib.request::" +msgstr "Oui. Voici un exemple simple d'utilisation de *urllib.request* ::" + +#: ../Doc/faq/library.rst:697 +msgid "" +"Note that in general for percent-encoded POST operations, query strings must " +"be quoted using :func:`urllib.parse.urlencode`. For example, to send " +"``name=Guy Steele, Jr.``::" +msgstr "" +"Remarquez qu'en général, la chaîne de caractères d'une requête POST encodée " +"avec des des signes « % » doit être mise entre guillemets à l'aide de :func:" +"`urllib.parse.urlencode`. Par exemple pour envoyer ``name=Guy Steele, Jr." +"`` ::" + +#: ../Doc/faq/library.rst:705 +msgid ":ref:`urllib-howto` for extensive examples." +msgstr ":ref:`urllib-howto` pour des exemples complets." + +#: ../Doc/faq/library.rst:709 +msgid "What module should I use to help with generating HTML?" +msgstr "Quel module utiliser pour générer du HTML ?" + +#: ../Doc/faq/library.rst:713 +msgid "" +"You can find a collection of useful links on the `Web Programming wiki page " +"`_." +msgstr "" +"La `page wiki de la programmation Toile `_ (en anglais) répertorie un ensemble de liens pertinents." + +#: ../Doc/faq/library.rst:718 +msgid "How do I send mail from a Python script?" +msgstr "Comment envoyer un courriel avec un script Python ?" + +#: ../Doc/faq/library.rst:720 +msgid "Use the standard library module :mod:`smtplib`." +msgstr "Utilisez le module :mod:`smtplib` de la bibliothèque standard." + +#: ../Doc/faq/library.rst:722 +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:742 +msgid "" +"A Unix-only alternative uses sendmail. The location of the sendmail program " +"varies between systems; sometimes it is ``/usr/lib/sendmail``, sometimes ``/" +"usr/sbin/sendmail``. The sendmail manual page will help you out. Here's " +"some sample code::" +msgstr "" +"Sous Unix, il est possible d'utiliser *sendmail*. La localisation de " +"l'exécutable *sendmail* dépend du système ; cela peut-être ``/usr/lib/" +"sendmail`` ou ``/usr/sbin/sendmail``, la page de manuel de *sendmail* peut " +"vous aider. Par exemple ::" + +#: ../Doc/faq/library.rst:762 +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:764 +msgid "" +"The :mod:`select` module is commonly used to help with asynchronous I/O on " +"sockets." +msgstr "" +"Le module :mod:`select` est fréquemment utilisé pour effectuer des entrées-" +"sorties asynchrones sur des connecteurs réseaux." + +#: ../Doc/faq/library.rst:767 +msgid "" +"To prevent the TCP connect from blocking, you can set the socket to non-" +"blocking mode. Then when you do the ``connect()``, you will either connect " +"immediately (unlikely) or get an exception that contains the error number as " +"``.errno``. ``errno.EINPROGRESS`` indicates that the connection is in " +"progress, but hasn't finished yet. Different OSes will return different " +"values, so you're going to have to check what's returned on your system." +msgstr "" +"Pour empêcher une connexion TCP de se bloquer, il est possible de mettre le " +"connecteur en mode lecture seule. Avec cela, au moment du ``connect()``, la " +"connexion pourra être immédiate (peu probable) ou bien vous obtiendrez une " +"exception qui contient le numéro d'erreur dans ``.errno``. ``errno." +"EINPROGRESS`` indique que la connexion est en cours, mais qu'elle n'a pas " +"encore aboutie. La valeur dépend du système d'exploitation, donc renseignez-" +"vous sur la valeur utilisée par votre système." + +#: ../Doc/faq/library.rst:774 +msgid "" +"You can use the ``connect_ex()`` method to avoid creating an exception. It " +"will just return the errno value. To poll, you can call ``connect_ex()`` " +"again later -- ``0`` or ``errno.EISCONN`` indicate that you're connected -- " +"or you can pass this socket to select to check if it's writable." +msgstr "" +"``connect_ex()`` permet d'éviter la création de l'exception, et de ne " +"renvoyer que la valeur de *errno*. Pour vérifier l'état de la connexion, " +"utilisez encore une fois ``connect_ex()`` — ``0`` ou ``errno.EISCONN`` " +"indiquent que la connexion est active — ou passez le connecteur en argument " +"de ``select()`` pour vérifier si le connecteur est prêt à recevoir des " +"entrées." + +#: ../Doc/faq/library.rst:780 +msgid "" +"The :mod:`asyncore` module presents a framework-like approach to the problem " +"of writing non-blocking networking code. The third-party `Twisted `_ library is a popular and feature-rich alternative." +msgstr "" +"Le module :mod:`asyncore` propose une approche en cadriciel pour écrire du " +"code réseau non-bloquant. La bibliothèque tierce `Twisted `_ en est une alternative plébiscitée, avec un grand " +"nombre de fonctionnalités." + +#: ../Doc/faq/library.rst:787 +msgid "Databases" +msgstr "Bases de données" + +#: ../Doc/faq/library.rst:790 +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:792 +msgid "Yes." +msgstr "Oui." + +#: ../Doc/faq/library.rst:794 +msgid "" +"Interfaces to disk-based hashes such as :mod:`DBM ` and :mod:`GDBM " +"` are also included with standard Python. There is also the :mod:" +"`sqlite3` module, which provides a lightweight disk-based relational " +"database." +msgstr "" +"La distribution standard de Python fournit aussi des interfaces à des bases " +"de données comme :mod:`DBM ` ou :mod:`GDBM `. Il existe " +"aussi le module :mod:`sqlite3` qui implémente une base de données " +"relationelle légère sur disque." + +#: ../Doc/faq/library.rst:799 +msgid "" +"Support for most relational databases is available. See the " +"`DatabaseProgramming wiki page `_ for details." +msgstr "" +"La gestion de la plupart des bases de données relationnelles est assurée. " +"Voir la page wiki `DatabaseProgramming `_ pour plus de détails." + +#: ../Doc/faq/library.rst:805 +msgid "How do you implement persistent objects in Python?" +msgstr "Comment implémenter la persistance d'objets en Python ?" + +#: ../Doc/faq/library.rst:807 +msgid "" +"The :mod:`pickle` library module solves this in a very general way (though " +"you still can't store things like open files, sockets or windows), and the :" +"mod:`shelve` library module uses pickle and (g)dbm to create persistent " +"mappings containing arbitrary Python objects." +msgstr "" +"Le module :mod:`pickle` répond à cela de manière large (bien qu'il ne soit " +"pas possible de stocker des fichiers ouverts, des connecteurs ou des " +"fenêtres par exemple), et le module :mod:`shelve` de la bibliothèque utilise " +"*pickle* et *(g)dbm* pour créer des liens persistants vers des objets Python." + +#: ../Doc/faq/library.rst:814 +msgid "Mathematics and Numerics" +msgstr "Mathématiques et calcul numérique" + +#: ../Doc/faq/library.rst:817 +msgid "How do I generate random numbers in Python?" +msgstr "Comment générer des nombres aléatoires en Python ?" + +#: ../Doc/faq/library.rst:819 +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:825 +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:827 +msgid "" +"There are also many other specialized generators in this module, such as:" +msgstr "Ce module fournit beaucoup d'autres générateurs spécialisés comme :" + +#: ../Doc/faq/library.rst:829 +msgid "``randrange(a, b)`` chooses an integer in the range [a, b)." +msgstr "``randrange(a, b)`` génère un entier dans l'intervalle [a, b[." + +#: ../Doc/faq/library.rst:830 +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:831 +msgid "" +"``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution." +msgstr "``normalvariate(mean, sdev)`` simule la loi normale (Gaussienne)." + +#: ../Doc/faq/library.rst:833 +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:835 +msgid "``choice(S)`` chooses random element from a given sequence" +msgstr "``choice(S)`` sélectionne au hasard un élément d'une séquence donnée" + +#: ../Doc/faq/library.rst:836 +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:838 +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." diff --git a/faq/programming.po b/faq/programming.po new file mode 100644 index 000000000..9f6da9491 --- /dev/null +++ b/faq/programming.po @@ -0,0 +1,3013 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-09-16 11:03+0200\n" +"Last-Translator: Antoine Wecxsteen\n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/faq/programming.rst:5 +msgid "Programming FAQ" +msgstr "FAQ de programmation" + +#: ../Doc/faq/programming.rst:8 +msgid "Contents" +msgstr "Sommaire" + +#: ../Doc/faq/programming.rst:12 +msgid "General Questions" +msgstr "Questions générales" + +#: ../Doc/faq/programming.rst:15 +msgid "" +"Is there a source code level debugger with breakpoints, single-stepping, " +"etc.?" +msgstr "" +"Existe-t-il un débogueur de code source avec points d'arrêts, exécution pas-" +"à-pas, etc. ?" + +#: ../Doc/faq/programming.rst:17 ../Doc/faq/programming.rst:63 +msgid "Yes." +msgstr "Oui." + +#: ../Doc/faq/programming.rst:19 +msgid "" +"Several debuggers for Python are described below, and the built-in function :" +"func:`breakpoint` allows you to drop into any of them." +msgstr "" +"Plusieurs débogueurs sont décrits ci-dessous et la fonction native :func:" +"`breakpoint` permet d'utiliser n'importe lequel d'entre eux." + +#: ../Doc/faq/programming.rst:22 +msgid "" +"The pdb module is a simple but adequate console-mode debugger for Python. It " +"is part of the standard Python library, and is :mod:`documented in the " +"Library Reference Manual `. You can also write your own debugger by " +"using the code for pdb as an example." +msgstr "" +"Le module ``pdb`` est un débogueur console simple, mais parfaitement adapté " +"à Python. Il fait partie de la bibliothèque standard de Python, sa " +"documentation se trouve dans le :mod:`manuel de référence `. Vous " +"pouvez vous inspirer du code de ``pdb`` pour écrire votre propre débogueur." + +#: ../Doc/faq/programming.rst:27 +msgid "" +"The IDLE interactive development environment, which is part of the standard " +"Python distribution (normally available as Tools/scripts/idle), includes a " +"graphical debugger." +msgstr "" +"L'environnement de développement interactif IDLE, qui est fourni avec la " +"distribution standard de Python (normalement disponible dans ``Tools/scripts/" +"idle``) contient un débogueur graphique." + +#: ../Doc/faq/programming.rst:31 +msgid "" +"PythonWin is a Python IDE that includes a GUI debugger based on pdb. The " +"Pythonwin debugger colors breakpoints and has quite a few cool features such " +"as debugging non-Pythonwin programs. Pythonwin is available as part of the " +"`Python for Windows Extensions `__ project and as a part of the ActivePython distribution (see https://www." +"activestate.com/activepython\\ )." +msgstr "" +"*PythonWin* est un environnement de développement intégré (EDI) Python qui " +"embarque un débogueur graphique basé sur ``pdb``. Le débogueur *PythonWin* " +"colore les points d'arrêts et possède quelques fonctionnalités sympathiques, " +"comme la possibilité de déboguer des programmes développés sans " +"*PythonWin*. *PythonWin* est disponible dans le projet `Extensions Python " +"pour Windows `__ et fait partie " +"de la distribution ActivePython (voir https://www.activestate.com/" +"activepython\\ )." + +#: ../Doc/faq/programming.rst:38 +msgid "" +"`Boa Constructor `_ is an IDE and " +"GUI builder that uses wxWidgets. It offers visual frame creation and " +"manipulation, an object inspector, many views on the source like object " +"browsers, inheritance hierarchies, doc string generated html documentation, " +"an advanced debugger, integrated help, and Zope support." +msgstr "" +"`Boa Constructor `_ est un EDI et " +"un constructeur d'interface homme-machine basé sur *wxWidgets*. Il propose " +"la création et la manipulation de fenêtres, un inspecteur d'objets, de " +"nombreuses façons de visualiser des sources comme un navigateur d'objets, " +"les hiérarchies d'héritage, la documentation html générée par les " +"docstrings, un débogueur avancé, une aide intégrée et la prise en charge de " +"Zope." + +#: ../Doc/faq/programming.rst:44 +msgid "" +"`Eric `_ is an IDE built on PyQt and " +"the Scintilla editing component." +msgstr "" +"`Eric `_ est un EDI basé sur PyQt et " +"l'outil d'édition Scintilla." + +#: ../Doc/faq/programming.rst:47 +msgid "" +"Pydb is a version of the standard Python debugger pdb, modified for use with " +"DDD (Data Display Debugger), a popular graphical debugger front end. Pydb " +"can be found at http://bashdb.sourceforge.net/pydb/ and DDD can be found at " +"https://www.gnu.org/software/ddd." +msgstr "" +"Pydb est une version du débogueur standard Python pdb, modifié pour être " +"utilisé avec DDD (Data Display Debugger), un célèbre débogueur graphique. " +"Pydb est disponible sur http://bashdb.sourceforge.net/pydb/ et DDD est " +"disponible sur https://www.gnu.org/software/ddd." + +#: ../Doc/faq/programming.rst:52 +msgid "" +"There are a number of commercial Python IDEs that include graphical " +"debuggers. They include:" +msgstr "" +"Il existe de nombreux EDI Python propriétaires qui embarquent un débogueur " +"graphique. Notamment :" + +#: ../Doc/faq/programming.rst:55 +msgid "Wing IDE (https://wingware.com/)" +msgstr "Wing IDE (https://wingware.com/)" + +#: ../Doc/faq/programming.rst:56 +msgid "Komodo IDE (https://komodoide.com/)" +msgstr "Komodo IDE (https://komodoide.com/)" + +#: ../Doc/faq/programming.rst:57 +msgid "PyCharm (https://www.jetbrains.com/pycharm/)" +msgstr "PyCharm (https://www.jetbrains.com/pycharm/)" + +#: ../Doc/faq/programming.rst:61 +msgid "Is there a tool to help find bugs or perform static analysis?" +msgstr "" +"Existe-t-il des outils pour aider à trouver des bogues ou faire de l'analyse " +"statique de code ?" + +#: ../Doc/faq/programming.rst:65 +msgid "" +"PyChecker is a static analysis tool that finds bugs in Python source code " +"and warns about code complexity and style. You can get PyChecker from " +"http://pychecker.sourceforge.net/." +msgstr "" +"*PyChecker* est un outil d'analyse statique qui trouve les bogues dans le " +"code source Python et émet des avertissements relatifs à la complexité et au " +"style du code. *PyChecker* est disponible sur http://pychecker.sourceforge." +"net/." + +#: ../Doc/faq/programming.rst:69 +msgid "" +"`Pylint `_ is another tool that checks if a module " +"satisfies a coding standard, and also makes it possible to write plug-ins to " +"add a custom feature. In addition to the bug checking that PyChecker " +"performs, Pylint offers some additional features such as checking line " +"length, whether variable names are well-formed according to your coding " +"standard, whether declared interfaces are fully implemented, and more. " +"https://docs.pylint.org/ provides a full list of Pylint's features." +msgstr "" +"Pylint `_ est un autre outil qui vérifie si un " +"module satisfait aux normes de développement, et qui permet en plus d'écrire " +"des greffons pour ajouter des fonctionnalités personnalisées. En plus de la " +"vérification des bogues effectuée par PyChecker, Pylint effectue quelques " +"vérifications supplémentaires comme la longueur des lignes, les conventions " +"de nommage des variables, que les interfaces déclarées sont implémentées en " +"totalité, et plus encore. https://docs.pylint.org/ fournit la liste complète " +"des fonctionnalités de Pylint." + +#: ../Doc/faq/programming.rst:77 +msgid "" +"Static type checkers such as `Mypy `_, `Pyre `_, and `Pytype `_ can " +"check type hints in Python source code." +msgstr "" +"Les vérificateurs statiques de typage comme `Mypy `_, " +"`Pyre `_, et `Pytype `_ peuvent vérifier les indications de type dans du code source " +"Python." + +#: ../Doc/faq/programming.rst:84 +msgid "How can I create a stand-alone binary from a Python script?" +msgstr "Comment créer un binaire autonome à partir d'un script Python ?" + +#: ../Doc/faq/programming.rst:86 +msgid "" +"You don't need the ability to compile Python to C code if all you want is a " +"stand-alone program that users can download and run without having to " +"install the Python distribution first. There are a number of tools that " +"determine the set of modules required by a program and bind these modules " +"together with a Python binary to produce a single executable." +msgstr "" +"Pour créer un programme autonome, c'est-à-dire un programme que n'importe " +"qui peut télécharger et exécuter sans avoir à installer une distribution " +"Python au préalable, il n'est pas nécessaire de compiler du code Python en " +"code C. Il existe en effet plusieurs outils qui déterminent les modules " +"requis par un programme et lient ces modules avec un binaire Python pour " +"produire un seul exécutable." + +#: ../Doc/faq/programming.rst:92 +msgid "" +"One is to use the freeze tool, which is included in the Python source tree " +"as ``Tools/freeze``. It converts Python byte code to C arrays; a C compiler " +"you can embed all your modules into a new program, which is then linked with " +"the standard Python modules." +msgstr "" +"Un de ces outils est freeze, qui se trouve dans ``Tools/freeze`` de " +"l'arborescence des sources de Python. Il convertit le code intermédiaire " +"(*bytecode*) Python en tableaux C ; un compilateur C permet d'intégrer tous " +"vos modules dans un nouveau programme, qui est ensuite lié aux modules " +"standards Python." + +#: ../Doc/faq/programming.rst:97 +msgid "" +"It works by scanning your source recursively for import statements (in both " +"forms) and looking for the modules in the standard Python path as well as in " +"the source directory (for built-in modules). It then turns the bytecode for " +"modules written in Python into C code (array initializers that can be turned " +"into code objects using the marshal module) and creates a custom-made config " +"file that only contains those built-in modules which are actually used in " +"the program. It then compiles the generated C code and links it with the " +"rest of the Python interpreter to form a self-contained binary which acts " +"exactly like your script." +msgstr "" +"Il fonctionne en cherchant de manière récursive les instructions d'import " +"(sous les deux formes) dans le code source et en recherchant ces modules " +"dans le chemin Python standard ainsi que dans le répertoire source (pour les " +"modules natifs). Il transforme ensuite le code intermédiaire des modules " +"écrits en Python en code C (des tableaux pré-remplis qui peuvent être " +"transformés en objets code à l'aide du module *marshal*) et crée un fichier " +"de configuration personnalisé qui contient uniquement les modules natifs qui " +"sont réellement utilisés dans le programme. Il compile ensuite le code C " +"généré et le lie au reste de l'interpréteur Python pour former un binaire " +"autonome qui fait exactement la même chose que le script." + +#: ../Doc/faq/programming.rst:106 +msgid "" +"Obviously, freeze requires a C compiler. There are several other utilities " +"which don't. One is Thomas Heller's py2exe (Windows only) at" +msgstr "" +"Bien évidemment, freeze nécessite un compilateur C. Il existe d'autres " +"outils qui peuvent s'en passer. Un de ceux-ci est py2exe de Thomas Heller " +"(pour Windows uniquement) disponible sur" + +#: ../Doc/faq/programming.rst:109 +msgid "http://www.py2exe.org/" +msgstr "http://www.py2exe.org/" + +#: ../Doc/faq/programming.rst:111 +msgid "" +"Another tool is Anthony Tuininga's `cx_Freeze `_." +msgstr "" +"Un autre de ces outils est `cx_Freeze `_ d'Anthony Tuininga." + +#: ../Doc/faq/programming.rst:115 +msgid "Are there coding standards or a style guide for Python programs?" +msgstr "" +"Existe-t-il des normes de développement ou un guide de style pour écrire des " +"programmes Python ?" + +#: ../Doc/faq/programming.rst:117 +msgid "" +"Yes. The coding style required for standard library modules is documented " +"as :pep:`8`." +msgstr "" +"Oui. Le style de développement que les modules de la bibliothèque standard " +"doivent obligatoirement respecter est documenté dans la :pep:`8`." + +#: ../Doc/faq/programming.rst:122 +msgid "Core Language" +msgstr "Fondamentaux" + +#: ../Doc/faq/programming.rst:125 +msgid "Why am I getting an UnboundLocalError when the variable has a value?" +msgstr "" +"Pourquoi une UnboundLocalError est levée alors qu'une variable a une valeur ?" + +#: ../Doc/faq/programming.rst:127 +msgid "" +"It can be a surprise to get the UnboundLocalError in previously working code " +"when it is modified by adding an assignment statement somewhere in the body " +"of a function." +msgstr "" +"Il est parfois surprenant d'obtenir une UnboundLocalError dans du code " +"jusqu'à présent correct, quand celui-ci est modifié en ajoutant une " +"instruction d'affectation quelque part dans le corps d'une fonction." + +#: ../Doc/faq/programming.rst:131 +msgid "This code:" +msgstr "Le code suivant :" + +#: ../Doc/faq/programming.rst:139 +msgid "works, but this code:" +msgstr "fonctionne, mais le suivant :" + +#: ../Doc/faq/programming.rst:146 +msgid "results in an UnboundLocalError:" +msgstr "lève une UnboundLocalError :" + +#: ../Doc/faq/programming.rst:153 +msgid "" +"This is because when you make an assignment to a variable in a scope, that " +"variable becomes local to that scope and shadows any similarly named " +"variable in the outer scope. Since the last statement in foo assigns a new " +"value to ``x``, the compiler recognizes it as a local variable. " +"Consequently when the earlier ``print(x)`` attempts to print the " +"uninitialized local variable and an error results." +msgstr "" +"Cela est dû au fait que, quand une variable est affectée dans un contexte, " +"cette variable devient locale à ce contexte et remplace toute variable du " +"même nom du contexte appelant. Vu que la dernière instruction dans *foo* " +"affecte une nouvelle valeur à ``x``, le compilateur la traite comme une " +"nouvelle variable. Par conséquent, quand le ``print(x)`` essaye d'afficher " +"la variable non initialisée, une erreur se produit." + +#: ../Doc/faq/programming.rst:160 +msgid "" +"In the example above you can access the outer scope variable by declaring it " +"global:" +msgstr "" +"Dans l'exemple ci-dessus, la variable du contexte appelant reste accessible " +"en la déclarant globale :" + +#: ../Doc/faq/programming.rst:171 +msgid "" +"This explicit declaration is required in order to remind you that (unlike " +"the superficially analogous situation with class and instance variables) you " +"are actually modifying the value of the variable in the outer scope:" +msgstr "" +"Cette déclaration explicite est obligatoire pour se rappeler que " +"(contrairement au cas à peu près similaire avec des variables de classe et " +"d'instance), c'est la valeur de la variable du contexte appelant qui est " +"modifiée :" + +#: ../Doc/faq/programming.rst:178 +msgid "" +"You can do a similar thing in a nested scope using the :keyword:`nonlocal` " +"keyword:" +msgstr "" +"Une alternative dans un contexte imbriqué consiste à utiliser le mot-clé :" +"keyword:`nonlocal` :" + +#: ../Doc/faq/programming.rst:195 +msgid "What are the rules for local and global variables in Python?" +msgstr "" +"Quelles sont les règles pour les variables locales et globales en Python ?" + +#: ../Doc/faq/programming.rst:197 +msgid "" +"In Python, variables that are only referenced inside a function are " +"implicitly global. If a variable is assigned a value anywhere within the " +"function's body, it's assumed to be a local unless explicitly declared as " +"global." +msgstr "" +"En Python, si une variable n'est pas modifiée dans une fonction mais " +"seulement lue, elle est implicitement considérée comme globale. Si une " +"valeur lui est affectée, elle est considérée locale (sauf si elle est " +"explicitement déclarée globale)." + +#: ../Doc/faq/programming.rst:201 +msgid "" +"Though a bit surprising at first, a moment's consideration explains this. " +"On one hand, requiring :keyword:`global` for assigned variables provides a " +"bar against unintended side-effects. On the other hand, if ``global`` was " +"required for all global references, you'd be using ``global`` all the time. " +"You'd have to declare as global every reference to a built-in function or to " +"a component of an imported module. This clutter would defeat the usefulness " +"of the ``global`` declaration for identifying side-effects." +msgstr "" +"Bien que surprenant au premier abord, ce choix s'explique facilement. D'une " +"part, exiger :keyword:`global` pour des variables affectées est une " +"protection contre des effets de bord inattendus. D'autre part, si ``global`` " +"était obligatoire pour toutes les références à des objets globaux, il " +"faudrait mettre ``global`` partout, car il faudrait dans ce cas déclarer " +"globale chaque référence à une fonction native ou à un composant d'un module " +"importé. Le codé serait alors truffé de déclarations ``global``, ce qui " +"nuirait à leur raison d'être : identifier les effets de bords." + +#: ../Doc/faq/programming.rst:211 +msgid "" +"Why do lambdas defined in a loop with different values all return the same " +"result?" +msgstr "" +"Pourquoi des expressions lambda définies dans une boucle avec des valeurs " +"différentes retournent-elles le même résultat ?" + +#: ../Doc/faq/programming.rst:213 +msgid "" +"Assume you use a for loop to define a few different lambdas (or even plain " +"functions), e.g.::" +msgstr "" +"Supposons que l'on utilise une boucle itérative pour définir des expressions " +"lambda (voire même des fonctions) différentes, par exemple ::" + +#: ../Doc/faq/programming.rst:220 +msgid "" +"This gives you a list that contains 5 lambdas that calculate ``x**2``. You " +"might expect that, when called, they would return, respectively, ``0``, " +"``1``, ``4``, ``9``, and ``16``. However, when you actually try you will " +"see that they all return ``16``::" +msgstr "" +"Le code précédent crée une liste de 5 expressions lambda qui calculent " +"chacune ``x**2``. En les exécutant, on pourrait s'attendre à obtenir ``0``, " +"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` ::" + +#: ../Doc/faq/programming.rst:230 +msgid "" +"This happens because ``x`` is not local to the lambdas, but is defined in " +"the outer scope, and it is accessed when the lambda is called --- not when " +"it is defined. At the end of the loop, the value of ``x`` is ``4``, so all " +"the functions now return ``4**2``, i.e. ``16``. You can also verify this by " +"changing the value of ``x`` and see how the results of the lambdas change::" +msgstr "" +"Ceci s'explique par le fait que ``x`` n'est pas une variable locale aux " +"expressions, mais est définie dans le contexte appelant. Elle est lue à " +"l'appel de l'expression lambda – et non au moment où cette expression est " +"définie. À la fin de la boucle, ``x`` vaut ``4``, donc toutes les fonctions " +"renvoient ``4*2``, i.e. ``16``. Ceci se vérifie également en changeant la " +"valeur de ``x`` et en constatant que les résultats sont modifiés ::" + +#: ../Doc/faq/programming.rst:240 +msgid "" +"In order to avoid this, you need to save the values in variables local to " +"the lambdas, so that they don't rely on the value of the global ``x``::" +msgstr "" +"Pour éviter ce phénomène, les valeurs doivent être stockées dans des " +"variables locales aux expressions lambda pour que celles-ci ne se basent " +"plus sur la variable globale ``x`` ::" + +#: ../Doc/faq/programming.rst:247 +msgid "" +"Here, ``n=x`` creates a new variable ``n`` local to the lambda and computed " +"when the lambda is defined so that it has the same value that ``x`` had at " +"that point in the loop. This means that the value of ``n`` will be ``0`` in " +"the first lambda, ``1`` in the second, ``2`` in the third, and so on. " +"Therefore each lambda will now return the correct result::" +msgstr "" +"Dans ce code, ``n=x`` crée une nouvelle variable ``n``, locale à " +"l'expression. Cette variable est évaluée quand l'expression est définie donc " +"``n`` a la même valeur que ``x`` à ce moment. La valeur de ``n`` est donc " +"``0`` dans la première lambda, ``1`` dans la deuxième, ``2`` dans la " +"troisième et ainsi de suite. Chaque expression lambda renvoie donc le " +"résultat correct ::" + +#: ../Doc/faq/programming.rst:258 +msgid "" +"Note that this behaviour is not peculiar to lambdas, but applies to regular " +"functions too." +msgstr "" +"Ce comportement n'est pas propre aux expressions lambda, mais s'applique " +"aussi aux fonctions normales." + +#: ../Doc/faq/programming.rst:263 +msgid "How do I share global variables across modules?" +msgstr "Comment partager des variables globales entre modules ?" + +#: ../Doc/faq/programming.rst:265 +msgid "" +"The canonical way to share information across modules within a single " +"program is to create a special module (often called config or cfg). Just " +"import the config module in all modules of your application; the module then " +"becomes available as a global name. Because there is only one instance of " +"each module, any changes made to the module object get reflected " +"everywhere. For example:" +msgstr "" +"La manière standard de partager des informations entre modules d'un même " +"programme est de créer un module spécial (souvent appelé *config* ou *cfg*) " +"et de l'importer dans tous les modules de l'application ; le module devient " +"accessible depuis l'espace de nommage global. Vu qu'il n'y a qu'une instance " +"de chaque module, tout changement dans l'instance est propagé partout. Par " +"exemple :" + +#: ../Doc/faq/programming.rst:271 +msgid "config.py::" +msgstr "*config.py* ::" + +#: ../Doc/faq/programming.rst:275 +msgid "mod.py::" +msgstr "*mod.py* ::" + +#: ../Doc/faq/programming.rst:280 +msgid "main.py::" +msgstr "*main.py* ::" + +#: ../Doc/faq/programming.rst:286 +msgid "" +"Note that using a module is also the basis for implementing the Singleton " +"design pattern, for the same reason." +msgstr "" +"Pour les mêmes raisons, l'utilisation d'un module est aussi à la base de " +"l'implémentation du patron de conception singleton." + +#: ../Doc/faq/programming.rst:291 +msgid "What are the \"best practices\" for using import in a module?" +msgstr "" +"Quelles sont les « bonnes pratiques » pour utiliser import dans un module ?" + +#: ../Doc/faq/programming.rst:293 +msgid "" +"In general, don't use ``from modulename import *``. Doing so clutters the " +"importer's namespace, and makes it much harder for linters to detect " +"undefined names." +msgstr "" +"De manière générale, il ne faut pas faire ``from modulename import *``. Ceci " +"encombre l'espace de nommage de l'importateur et rend la détection de noms " +"non-définis beaucoup plus ardue pour les analyseurs de code." + +#: ../Doc/faq/programming.rst:297 +msgid "" +"Import modules at the top of a file. Doing so makes it clear what other " +"modules your code requires and avoids questions of whether the module name " +"is in scope. Using one import per line makes it easy to add and delete " +"module imports, but using multiple imports per line uses less screen space." +msgstr "" +"Les modules doivent être importés au début d'un fichier. Ceci permet " +"d'afficher clairement de quels modules le code à besoin et évite de se " +"demander si le module est dans le contexte. Faire un seul `import` par ligne " +"rend l'ajout et la suppression d'une importation de module plus aisé, mais " +"importer plusieurs modules sur une même ligne prend moins d'espace." + +#: ../Doc/faq/programming.rst:302 +msgid "It's good practice if you import modules in the following order:" +msgstr "Il est recommandé d'importer les modules dans l'ordre suivant :" + +#: ../Doc/faq/programming.rst:304 +msgid "standard library modules -- e.g. ``sys``, ``os``, ``getopt``, ``re``" +msgstr "" +"les modules de la bibliothèque standard — e.g. ``sys``, ``os``, ``getopt``, " +"``re``" + +#: ../Doc/faq/programming.rst:305 +msgid "" +"third-party library modules (anything installed in Python's site-packages " +"directory) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." +msgstr "" +"les modules externes (tout ce qui est installé dans le dossier *site-" +"packages* de Python) — e.g. *mx.DateTime, ZODB, PIL.Image*, etc." + +#: ../Doc/faq/programming.rst:307 +msgid "locally-developed modules" +msgstr "les modules développés en local" + +#: ../Doc/faq/programming.rst:309 +msgid "" +"It is sometimes necessary to move imports to a function or class to avoid " +"problems with circular imports. Gordon McMillan says:" +msgstr "" +"Il est parfois nécessaire de déplacer des importations dans une fonction ou " +"une classe pour éviter les problèmes d'importations circulaires. Comme le " +"souligne Gordon McMillan :" + +#: ../Doc/faq/programming.rst:312 +msgid "" +"Circular imports are fine where both modules use the \"import \" " +"form of import. They fail when the 2nd module wants to grab a name out of " +"the first (\"from module import name\") and the import is at the top level. " +"That's because names in the 1st are not yet available, because the first " +"module is busy importing the 2nd." +msgstr "" +"Il n'y a aucun souci à faire des importations circulaires tant que les deux " +"modules utilisent la forme ``import ``. Ça ne pose problème que si " +"le second module cherche à récupérer un nom du premier module (*\"from " +"module import name\"*) et que l'importation est dans l'espace de nommage du " +"fichier. Les noms du premier module ne sont en effet pas encore disponibles " +"car le premier module est occupé à importer le second." + +#: ../Doc/faq/programming.rst:318 +msgid "" +"In this case, if the second module is only used in one function, then the " +"import can easily be moved into that function. By the time the import is " +"called, the first module will have finished initializing, and the second " +"module can do its import." +msgstr "" +"Dans ce cas, si le second module n'est utilisé que dans une fonction, " +"l'importation peut facilement être déplacée dans cette fonction. Au moment " +"où l'importation sera appelée, le premier module aura fini de s'initialiser " +"et le second pourra faire son importation." + +#: ../Doc/faq/programming.rst:323 +msgid "" +"It may also be necessary to move imports out of the top level of code if " +"some of the modules are platform-specific. In that case, it may not even be " +"possible to import all of the modules at the top of the file. In this case, " +"importing the correct modules in the corresponding platform-specific code is " +"a good option." +msgstr "" +"Il peut parfois être nécessaire de déplacer des importations de modules hors " +"de l'espace de plus haut niveau du code si certains de ces modules dépendent " +"de la machine utilisée. Dans ce cas de figure, il est parfois impossible " +"d'importer tous les modules au début du fichier. Dans ce cas, il est " +"recommandé d'importer les modules adéquats dans le code spécifique à la " +"machine." + +#: ../Doc/faq/programming.rst:328 +msgid "" +"Only move imports into a local scope, such as inside a function definition, " +"if it's necessary to solve a problem such as avoiding a circular import or " +"are trying to reduce the initialization time of a module. This technique is " +"especially helpful if many of the imports are unnecessary depending on how " +"the program executes. You may also want to move imports into a function if " +"the modules are only ever used in that function. Note that loading a module " +"the first time may be expensive because of the one time initialization of " +"the module, but loading a module multiple times is virtually free, costing " +"only a couple of dictionary lookups. Even if the module name has gone out " +"of scope, the module is probably available in :data:`sys.modules`." +msgstr "" +"Les imports ne devraient être déplacés dans un espace local, comme dans la " +"définition d'une fonction, que si cela est nécessaire pour résoudre un " +"problème comme éviter des dépendances circulaires ou réduire le temps " +"d'initialisation d'un module. Cette technique est particulièrement utile si " +"la majorité des imports est superflue selon le flux d'exécution du " +"programme. Il est également pertinent de déplacer des importations dans une " +"fonction si le module n'est utilisé qu'au sein de cette fonction. Le premier " +"chargement d'un module peut être coûteux à cause du coût fixe " +"d'initialisation d'un module, mais charger un module plusieurs fois est " +"quasiment gratuit, cela ne coûte que quelques indirections dans un " +"dictionnaire. Même si le nom du module est sorti du contexte courant, le " +"module est probablement disponible dans :data:`sys.modules`." + +#: ../Doc/faq/programming.rst:341 +msgid "Why are default values shared between objects?" +msgstr "Pourquoi les arguments par défaut sont-ils partagés entre les objets ?" + +#: ../Doc/faq/programming.rst:343 +msgid "" +"This type of bug commonly bites neophyte programmers. Consider this " +"function::" +msgstr "" +"C'est un problème que rencontrent souvent les programmeurs débutants. " +"Examinons la fonction suivante ::" + +#: ../Doc/faq/programming.rst:350 +msgid "" +"The first time you call this function, ``mydict`` contains a single item. " +"The second time, ``mydict`` contains two items because when ``foo()`` begins " +"executing, ``mydict`` starts out with an item already in it." +msgstr "" +"Au premier appel de cette fonction, ``mydict`` ne contient qu'un seul " +"élément. Au second appel, ``mydict`` contient deux éléments car quand " +"``foo()`` commence son exécution, ``mydict`` contient déjà un élément." + +#: ../Doc/faq/programming.rst:354 +msgid "" +"It is often expected that a function call creates new objects for default " +"values. This is not what happens. Default values are created exactly once, " +"when the function is defined. If that object is changed, like the " +"dictionary in this example, subsequent calls to the function will refer to " +"this changed object." +msgstr "" +"On est souvent amené à croire qu'un appel de fonction créé des nouveaux " +"objets pour les valeurs par défaut. Ce n'est pas le cas. Les valeurs par " +"défaut ne sont créées qu'une et une seule fois, au moment où la fonction est " +"définie. Si l'objet est modifié, comme le dictionnaire dans cet exemple, les " +"appels suivants à cette fonction font référence à l'objet ainsi modifié." + +#: ../Doc/faq/programming.rst:359 +msgid "" +"By definition, immutable objects such as numbers, strings, tuples, and " +"``None``, are safe from change. Changes to mutable objects such as " +"dictionaries, lists, and class instances can lead to confusion." +msgstr "" +"Par définition, les objets immuables comme les nombres, les chaînes de " +"caractères, les n-uplets et ``None`` ne sont pas modifiés. Les changements " +"sur des objets muables comme les dictionnaires, les listes et les instances " +"de classe peuvent porter à confusion." + +#: ../Doc/faq/programming.rst:363 +msgid "" +"Because of this feature, it is good programming practice to not use mutable " +"objects as default values. Instead, use ``None`` as the default value and " +"inside the function, check if the parameter is ``None`` and create a new " +"list/dictionary/whatever if it is. For example, don't write::" +msgstr "" +"En raison de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets " +"muables comme valeurs par défaut. Il vaut mieux utiliser ``None`` comme " +"valeur par défaut et, à l'intérieur de la fonction, vérifier si le paramètre " +"est à ``None`` et créer une nouvelle liste, dictionnaire ou autre, le cas " +"échéant. Par exemple, il ne faut pas écrire ::" + +#: ../Doc/faq/programming.rst:371 +msgid "but::" +msgstr "mais plutôt ::" + +#: ../Doc/faq/programming.rst:377 +msgid "" +"This feature can be useful. When you have a function that's time-consuming " +"to compute, a common technique is to cache the parameters and the resulting " +"value of each call to the function, and return the cached value if the same " +"value is requested again. This is called \"memoizing\", and can be " +"implemented like this::" +msgstr "" +"Cette fonctionnalité a une utilité. Il est courant de mettre en cache les " +"paramètres et la valeur de retour de chacun des appels d'une fonction " +"coûteuse à exécuter, et de renvoyer la valeur stockée en cache si le même " +"appel est ré-effectué. C'est la technique dite de « mémoïsation », qui " +"s'implémente de la manière suivante ::" + +#: ../Doc/faq/programming.rst:392 +msgid "" +"You could use a global variable containing a dictionary instead of the " +"default value; it's a matter of taste." +msgstr "" +"Il est possible d'utiliser une variable globale contenant un dictionnaire à " +"la place de la valeur par défaut ; ce n'est qu'une question de goût." + +#: ../Doc/faq/programming.rst:397 +msgid "" +"How can I pass optional or keyword parameters from one function to another?" +msgstr "" +"Comment passer des paramètres optionnels ou nommés d'une fonction à l'autre ?" + +#: ../Doc/faq/programming.rst:399 +msgid "" +"Collect the arguments using the ``*`` and ``**`` specifiers in the " +"function's parameter list; this gives you the positional arguments as a " +"tuple and the keyword arguments as a dictionary. You can then pass these " +"arguments when calling another function by using ``*`` and ``**``::" +msgstr "" +"Il faut récupérer les arguments en utilisant les sélecteurs ``*`` et ``**`` " +"dans la liste des paramètres de la fonction ; ceci donne les arguments " +"positionnels sous la forme d'un n-uplet et les arguments nommés sous forme " +"de dictionnaire. Ces arguments peuvent être passés à une autre fonction en " +"utilisant ``*`` et ``**`` ::" + +#: ../Doc/faq/programming.rst:418 +msgid "What is the difference between arguments and parameters?" +msgstr "Quelle est la différence entre les arguments et les paramètres ?" + +#: ../Doc/faq/programming.rst:420 +msgid "" +":term:`Parameters ` are defined by the names that appear in a " +"function definition, whereas :term:`arguments ` are the values " +"actually passed to a function when calling it. Parameters define what types " +"of arguments a function can accept. For example, given the function " +"definition::" +msgstr "" +"Les :term:`paramètres ` sont les noms qui apparaissent dans une " +"définition de fonction, alors que les :term:`arguments ` sont les " +"valeurs qui sont réellement passées à une fonction lors de l'appel de celle-" +"ci. Les paramètres définissent les types des arguments qu'une fonction " +"accepte. Ainsi, avec la définition de fonction suivante ::" + +#: ../Doc/faq/programming.rst:428 +msgid "" +"*foo*, *bar* and *kwargs* are parameters of ``func``. However, when calling " +"``func``, for example::" +msgstr "" +"*foo*, *bar* et *kwargs* sont des paramètres de ``func``. Mais à l'appel de " +"``func`` avec, par exemple ::" + +#: ../Doc/faq/programming.rst:433 +msgid "the values ``42``, ``314``, and ``somevar`` are arguments." +msgstr "les valeurs ``42``, ``314``, et ``somevar`` sont des arguments." + +#: ../Doc/faq/programming.rst:437 +msgid "Why did changing list 'y' also change list 'x'?" +msgstr "Pourquoi modifier la liste 'y' modifie aussi la liste 'x' ?" + +#: ../Doc/faq/programming.rst:439 +msgid "If you wrote code like::" +msgstr "Si vous avez écrit du code comme ::" + +#: ../Doc/faq/programming.rst:449 +msgid "" +"you might be wondering why appending an element to ``y`` changed ``x`` too." +msgstr "" +"vous vous demandez peut-être pourquoi l'ajout d'un élément à ``y`` a aussi " +"changé ``x``." + +#: ../Doc/faq/programming.rst:451 +msgid "There are two factors that produce this result:" +msgstr "Il y a deux raisons qui conduisent à ce comportement :" + +#: ../Doc/faq/programming.rst:453 +msgid "" +"Variables are simply names that refer to objects. Doing ``y = x`` doesn't " +"create a copy of the list -- it creates a new variable ``y`` that refers to " +"the same object ``x`` refers to. This means that there is only one object " +"(the list), and both ``x`` and ``y`` refer to it." +msgstr "" +"Les variables ne sont que des noms qui font référence à des objets. La ligne " +"``y = x`` ne crée pas une copie de la liste — elle crée une nouvelle " +"variable ``y`` qui pointe sur le même objet que ``x``. Ceci signifie qu'il " +"n'existe qu'un seul objet (la liste) auquel ``x`` et ``y`` font référence." + +#: ../Doc/faq/programming.rst:457 +msgid "" +"Lists are :term:`mutable`, which means that you can change their content." +msgstr "" +"Les listes sont des :term:`muable`, ce qui signifie que leur contenu peut " +"être modifié." + +#: ../Doc/faq/programming.rst:459 +msgid "" +"After the call to :meth:`~list.append`, the content of the mutable object " +"has changed from ``[]`` to ``[10]``. Since both the variables refer to the " +"same object, using either name accesses the modified value ``[10]``." +msgstr "" +"Après l'appel de :meth:`~list.append`, le contenu de l'objet muable est " +"passé de ``[]`` à ``[10]``. Vu que les deux variables font référence au même " +"objet, il est possible d'accéder à la valeur modifiée ``[10]`` avec chacun " +"des noms." + +#: ../Doc/faq/programming.rst:463 +msgid "If we instead assign an immutable object to ``x``::" +msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" + +#: ../Doc/faq/programming.rst:473 +msgid "" +"we can see that in this case ``x`` and ``y`` are not equal anymore. This is " +"because integers are :term:`immutable`, and when we do ``x = x + 1`` we are " +"not mutating the int ``5`` by incrementing its value; instead, we are " +"creating a new object (the int ``6``) and assigning it to ``x`` (that is, " +"changing which object ``x`` refers to). After this assignment we have two " +"objects (the ints ``6`` and ``5``) and two variables that refer to them " +"(``x`` now refers to ``6`` but ``y`` still refers to ``5``)." +msgstr "" +"on observe que ``x`` et ``y`` ne sont ici plus égales. Les entiers sont des " +"immuables (:term:`immutable`), et ``x = x + 1`` ne change pas l'entier ``5`` " +"en incrémentant sa valeur. Au contraire, un nouvel objet est créé (l'entier " +"``6``) et affecté à ``x`` (c'est à dire qu'on change l'objet auquel fait " +"référence ``x``). Après cette affectation on a deux objets (les entiers " +"``6`` et ``5``) et deux variables qui font référence à ces deux objets " +"(``x`` fait désormais référence à ``6`` mais ``y`` fait toujours référence à " +"``5``)." + +#: ../Doc/faq/programming.rst:481 +msgid "" +"Some operations (for example ``y.append(10)`` and ``y.sort()``) mutate the " +"object, whereas superficially similar operations (for example ``y = y + " +"[10]`` and ``sorted(y)``) create a new object. In general in Python (and in " +"all cases in the standard library) a method that mutates an object will " +"return ``None`` to help avoid getting the two types of operations confused. " +"So if you mistakenly write ``y.sort()`` thinking it will give you a sorted " +"copy of ``y``, you'll instead end up with ``None``, which will likely cause " +"your program to generate an easily diagnosed error." +msgstr "" +"Certaines opérations (par exemple, ``y.append(10)`` et ``y.sort()``) " +"modifient l'objet, alors que des opérations identiques en apparence (par " +"exemple ``y = y + [10]`` et ``sorted(y)``) créent un nouvel objet. En " +"général, en Python, une méthode qui modifie un objet renvoie ``None`` (c'est " +"même systématique dans la bibliothèque standard) pour éviter la confusion " +"entre les deux opérations. Donc écrire par erreur ``y.sort()`` en pensant " +"obtenir une copie triée de ``y`` donne ``None``, ce qui conduit très souvent " +"le programme à générer une erreur facile à diagnostiquer." + +#: ../Doc/faq/programming.rst:490 +msgid "" +"However, there is one class of operations where the same operation sometimes " +"has different behaviors with different types: the augmented assignment " +"operators. For example, ``+=`` mutates lists but not tuples or ints " +"(``a_list += [1, 2, 3]`` is equivalent to ``a_list.extend([1, 2, 3])`` and " +"mutates ``a_list``, whereas ``some_tuple += (1, 2, 3)`` and ``some_int += " +"1`` create new objects)." +msgstr "" +"Il existe cependant une classe d'opérations qui se comporte différemment " +"selon le type : les opérateurs d'affectation incrémentaux. Par exemple, ``" +"+=`` modifie les listes mais pas les n-uplets ni les entiers (``a_list += " +"[1, 2, 3]`` équivaut à ``a_list.extend([1, 2, 3])`` et modifie ``a_list``, " +"alors que ``some_tuple += (1, 2, 3)`` et ``some_int += 1`` créent de " +"nouveaux objets)." + +#: ../Doc/faq/programming.rst:497 +msgid "In other words:" +msgstr "En d'autres termes :" + +#: ../Doc/faq/programming.rst:499 +msgid "" +"If we have a mutable object (:class:`list`, :class:`dict`, :class:`set`, " +"etc.), we can use some specific operations to mutate it and all the " +"variables that refer to it will see the change." +msgstr "" +"Il est possible d'appliquer des opérations qui modifient un objet muable (:" +"class:`list`, :class:`dict`, :class:`set`, etc.) et toutes les variables qui " +"y font référence verront le changement." + +#: ../Doc/faq/programming.rst:502 +msgid "" +"If we have an immutable object (:class:`str`, :class:`int`, :class:`tuple`, " +"etc.), all the variables that refer to it will always see the same value, " +"but operations that transform that value into a new value always return a " +"new object." +msgstr "" +"Toutes les variables qui font référence à un objet immuable (:class:`str`, :" +"class:`int`, :class:`tuple`, etc.) renvoient la même valeur, mais les " +"opérations qui transforment cette valeur en une nouvelle valeur renvoient " +"toujours un nouvel objet." + +#: ../Doc/faq/programming.rst:507 +msgid "" +"If you want to know if two variables refer to the same object or not, you " +"can use the :keyword:`is` operator, or the built-in function :func:`id`." +msgstr "" +"L'opérateur :keyword:`is` ou la fonction native :func:`id` permettent de " +"savoir si deux variables font référence au même objet." + +#: ../Doc/faq/programming.rst:512 +msgid "How do I write a function with output parameters (call by reference)?" +msgstr "" +"Comment écrire une fonction qui modifie ses paramètres ? (passage par " +"référence)" + +#: ../Doc/faq/programming.rst:514 +msgid "" +"Remember that arguments are passed by assignment in Python. Since " +"assignment just creates references to objects, there's no alias between an " +"argument name in the caller and callee, and so no call-by-reference per se. " +"You can achieve the desired effect in a number of ways." +msgstr "" +"En Python, les arguments sont passés comme des affectations de variables. Vu " +"qu'une affectation crée des références à des objets, il n'y a pas de lien " +"entre un argument dans l'appel de la fonction et sa définition, et donc pas " +"de passage par référence en soi. Il y a cependant plusieurs façons d'en " +"émuler un." + +#: ../Doc/faq/programming.rst:519 +msgid "By returning a tuple of the results::" +msgstr "En renvoyant un n-uplet de résultats ::" + +#: ../Doc/faq/programming.rst:530 +msgid "This is almost always the clearest solution." +msgstr "C'est presque toujours la meilleure solution." + +#: ../Doc/faq/programming.rst:532 +msgid "" +"By using global variables. This isn't thread-safe, and is not recommended." +msgstr "" +"En utilisant des variables globales. Cette approche ne fonctionne pas dans " +"des contextes à plusieurs fils d'exécution (elle n'est pas *thread-safe*), " +"et n'est donc pas recommandée." + +#: ../Doc/faq/programming.rst:534 +msgid "By passing a mutable (changeable in-place) object::" +msgstr "En passant un objet muable (modifiable sur place) ::" + +#: ../Doc/faq/programming.rst:544 +msgid "By passing in a dictionary that gets mutated::" +msgstr "En passant un dictionnaire, qui sera modifié ::" + +#: ../Doc/faq/programming.rst:554 +msgid "Or bundle up values in a class instance::" +msgstr "Ou regrouper les valeurs dans une instance de classe ::" + +#: ../Doc/faq/programming.rst:570 +msgid "There's almost never a good reason to get this complicated." +msgstr "Faire quelque chose d'aussi compliqué est rarement une bonne idée." + +#: ../Doc/faq/programming.rst:572 +msgid "Your best choice is to return a tuple containing the multiple results." +msgstr "" +"La meilleure option reste de renvoyer un n-uplet contenant les différents " +"résultats." + +#: ../Doc/faq/programming.rst:576 +msgid "How do you make a higher order function in Python?" +msgstr "Comment construire une fonction d'ordre supérieur en Python ?" + +#: ../Doc/faq/programming.rst:578 +msgid "" +"You have two choices: you can use nested scopes or you can use callable " +"objects. For example, suppose you wanted to define ``linear(a,b)`` which " +"returns a function ``f(x)`` that computes the value ``a*x+b``. Using nested " +"scopes::" +msgstr "" +"Deux possibilités : on peut utiliser des portées imbriquées ou bien des " +"objets appelables. Par exemple, supposons que l'on souhaite définir " +"``linear(a, b)`` qui renvoie une fonction ``f(x)`` qui calcule la valeur " +"``a*x+b``. En utilisant les portées imbriquées ::" + +#: ../Doc/faq/programming.rst:587 +msgid "Or using a callable object::" +msgstr "Ou en utilisant un objet appelable ::" + +#: ../Doc/faq/programming.rst:597 +msgid "In both cases, ::" +msgstr "Dans les deux cas ::" + +#: ../Doc/faq/programming.rst:601 +msgid "gives a callable object where ``taxes(10e6) == 0.3 * 10e6 + 2``." +msgstr "donne un objet appelable où ``taxes(10e6) == 0.3 * 10e6 + 2``." + +#: ../Doc/faq/programming.rst:603 +msgid "" +"The callable object approach has the disadvantage that it is a bit slower " +"and results in slightly longer code. However, note that a collection of " +"callables can share their signature via inheritance::" +msgstr "" +"L'approche par objet appelable a le désavantage d'être légèrement plus lente " +"et de produire un code légèrement plus long. Cependant, il faut noter qu'une " +"collection d'objet appelables peuvent partager leurs signatures par " +"héritage ::" + +#: ../Doc/faq/programming.rst:612 +msgid "Object can encapsulate state for several methods::" +msgstr "Les objets peuvent encapsuler un état pour plusieurs méthodes ::" + +#: ../Doc/faq/programming.rst:630 +msgid "" +"Here ``inc()``, ``dec()`` and ``reset()`` act like functions which share the " +"same counting variable." +msgstr "" +"Ici ``inc()``, ``dec()`` et ``reset()`` agissent comme des fonctions " +"partageant une même variable compteur." + +#: ../Doc/faq/programming.rst:635 +msgid "How do I copy an object in Python?" +msgstr "Comment copier un objet en Python ?" + +#: ../Doc/faq/programming.rst:637 +msgid "" +"In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general " +"case. Not all objects can be copied, but most can." +msgstr "" +"En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy`. Tous les " +"objets ne peuvent pas être copiés, mais la plupart le peuvent." + +#: ../Doc/faq/programming.rst:640 +msgid "" +"Some objects can be copied more easily. Dictionaries have a :meth:`~dict." +"copy` method::" +msgstr "" +"Certains objets peuvent être copiés plus facilement que d'autres. Les " +"dictionnaires ont une méthode :meth:`~dict.copy` ::" + +#: ../Doc/faq/programming.rst:645 +msgid "Sequences can be copied by slicing::" +msgstr "Les séquences peuvent être copiées via la syntaxe des tranches ::" + +#: ../Doc/faq/programming.rst:651 +msgid "How can I find the methods or attributes of an object?" +msgstr "Comment récupérer les méthodes ou les attributs d'un objet ?" + +#: ../Doc/faq/programming.rst:653 +msgid "" +"For an instance x of a user-defined class, ``dir(x)`` returns an " +"alphabetized list of the names containing the instance attributes and " +"methods and attributes defined by its class." +msgstr "" +"Pour une instance x d'une classe définie par un utilisateur, ``dir(x)`` " +"renvoie une liste alphabétique des noms contenants les attributs de " +"l'instance, et les attributs et méthodes définies par sa classe." + +#: ../Doc/faq/programming.rst:659 +msgid "How can my code discover the name of an object?" +msgstr "Comment un code peut-il obtenir le nom d'un objet ?" + +#: ../Doc/faq/programming.rst:661 +msgid "" +"Generally speaking, it can't, because objects don't really have names. " +"Essentially, assignment always binds a name to a value; The same is true of " +"``def`` and ``class`` statements, but in that case the value is a callable. " +"Consider the following code::" +msgstr "" +"C'est impossible en général, parce qu'un objet n'a pas de nom à proprement " +"parler. Schématiquement, l'affectation fait correspondre un nom à une " +"valeur ; c'est vrai aussi pour les instructions ``def`` et ``class``, à la " +"différence près que, dans ce cas, la valeur est un appelable. Par exemple, " +"dans le code suivant ::" + +#: ../Doc/faq/programming.rst:677 +msgid "" +"Arguably the class has a name: even though it is bound to two names and " +"invoked through the name B the created instance is still reported as an " +"instance of class A. However, it is impossible to say whether the " +"instance's name is a or b, since both names are bound to the same value." +msgstr "" +"Affirmer que la classe a un nom est discutable. Bien qu'elle soit liée à " +"deux noms, et qu'elle soit appelée via le nom B, l'instance créée déclare " +"tout de même être une instance de la classe A. De même, il est impossible de " +"dire si le nom de l'instance est a ou b, les deux noms étant attachés à la " +"même valeur." + +#: ../Doc/faq/programming.rst:682 +msgid "" +"Generally speaking it should not be necessary for your code to \"know the " +"names\" of particular values. Unless you are deliberately writing " +"introspective programs, this is usually an indication that a change of " +"approach might be beneficial." +msgstr "" +"De façon générale, une application ne devrait pas avoir besoin de « " +"connaître le nom » d'une valeur particulière. À moins d'être délibérément en " +"train d'écrire un programme introspectif, c'est souvent l'indication qu'un " +"changement d'approche serait bénéfique." + +#: ../Doc/faq/programming.rst:687 +msgid "" +"In comp.lang.python, Fredrik Lundh once gave an excellent analogy in answer " +"to this question:" +msgstr "" +"Sur *comp.lang.python*, Fredrik Lundh a donné un jour une excellente " +"analogie pour répondre à cette question :" + +#: ../Doc/faq/programming.rst:690 +msgid "" +"The same way as you get the name of that cat you found on your porch: the " +"cat (object) itself cannot tell you its name, and it doesn't really care -- " +"so the only way to find out what it's called is to ask all your neighbours " +"(namespaces) if it's their cat (object)..." +msgstr "" +"C'est pareil que trouver le nom du chat qui traîne devant votre porte : le " +"chat (objet) ne peut pas vous dire lui-même son nom, et il s'en moque un peu " +"­– alors le meilleur moyen de savoir comment il s'appelle est de demander à " +"tous vos voisins (espaces de nommage) si c'est leur chat (objet)…" + +#: ../Doc/faq/programming.rst:695 +msgid "" +"....and don't be surprised if you'll find that it's known by many names, or " +"no name at all!" +msgstr "" +"…et ne soyez pas surpris si vous découvrez qu'il est connu sous plusieurs " +"noms, ou s'il n'a pas de nom du tout !" + +#: ../Doc/faq/programming.rst:700 +msgid "What's up with the comma operator's precedence?" +msgstr "Qu'en est-il de la précédence de l'opérateur virgule ?" + +#: ../Doc/faq/programming.rst:702 +msgid "Comma is not an operator in Python. Consider this session::" +msgstr "" +"La virgule n'est pas un opérateur en Python. Observez le code suivant ::" + +#: ../Doc/faq/programming.rst:707 +msgid "" +"Since the comma is not an operator, but a separator between expressions the " +"above is evaluated as if you had entered::" +msgstr "" +"Comme la virgule n'est pas un opérateur, mais un séparateur entre deux " +"expressions, l'expression ci-dessus est évaluée de la même façon que si vous " +"aviez écrit ::" + +#: ../Doc/faq/programming.rst:712 +msgid "not::" +msgstr "et non ::" + +#: ../Doc/faq/programming.rst:716 +msgid "" +"The same is true of the various assignment operators (``=``, ``+=`` etc). " +"They are not truly operators but syntactic delimiters in assignment " +"statements." +msgstr "" +"Ceci est vrai pour tous les opérateurs d'affectation (``=``, ``+=`` etc). Ce " +"ne sont pas vraiment des opérateurs mais plutôt des délimiteurs syntaxiques " +"dans les instructions d'affectation." + +#: ../Doc/faq/programming.rst:721 +msgid "Is there an equivalent of C's \"?:\" ternary operator?" +msgstr "Existe-t-il un équivalent à l'opérateur ternaire \"?:\" du C ?" + +#: ../Doc/faq/programming.rst:723 +msgid "Yes, there is. The syntax is as follows::" +msgstr "Oui. Sa syntaxe est la suivante ::" + +#: ../Doc/faq/programming.rst:730 +msgid "" +"Before this syntax was introduced in Python 2.5, a common idiom was to use " +"logical operators::" +msgstr "" +"Avant l'introduction de cette syntaxe dans Python 2.5, il était courant " +"d'utiliser les opérateurs de logique ::" + +#: ../Doc/faq/programming.rst:735 +msgid "" +"However, this idiom is unsafe, as it can give wrong results when *on_true* " +"has a false boolean value. Therefore, it is always better to use the ``... " +"if ... else ...`` form." +msgstr "" +"Cet idiome est dangereux, car il donne un résultat erroné quand *on_true* a " +"la valeur booléenne fausse. Il faut donc toujours utiliser la forme ``... " +"if ... else ...``." + +#: ../Doc/faq/programming.rst:741 +msgid "Is it possible to write obfuscated one-liners in Python?" +msgstr "" +"Est-il possible d'écrire des programmes obscurcis (*obfuscated*) d'une ligne " +"en Python ?" + +#: ../Doc/faq/programming.rst:743 +msgid "" +"Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!" +"lambda`. See the following three examples, due to Ulf Bartelt::" +msgstr "" +"Oui. C'est souvent le cas en imbriquant des :keyword:`lambda` dans des :" +"keyword:`!lambda`. Par exemple les trois morceaux de code suivants, créés " +"par Ulf Bartelt ::" + +#: ../Doc/faq/programming.rst:770 +msgid "Don't try this at home, kids!" +msgstr "Les enfants, ne faites pas ça chez vous !" + +#: ../Doc/faq/programming.rst:776 +msgid "What does the slash(/) in the parameter list of a function mean?" +msgstr "" +"Que signifie la barre oblique (/) dans la liste des paramètres d'une " +"fonction ?" + +#: ../Doc/faq/programming.rst:778 +msgid "" +"A slash in the argument list of a function denotes that the parameters prior " +"to it are positional-only. Positional-only parameters are the ones without " +"an externally-usable name. Upon calling a function that accepts positional-" +"only parameters, arguments are mapped to parameters based solely on their " +"position. For example, :func:`pow` is a function that accepts positional-" +"only parameters. Its documentation looks like this::" +msgstr "" +"Une barre oblique dans la liste des arguments d'une fonction indique que les " +"paramètres la précédant sont uniquement positionnels. Les paramètres " +"uniquement positionnels ne peuvent pas être référencés par leur nom depuis " +"l'extérieur. Lors de l'appel d'une fonction qui accepte des paramètres " +"uniquement positionnels, les arguments sont affectés aux paramètres en " +"fonction de leur position. Par exemple, la fonction :func:`pow` n'accepte " +"que des paramètres uniquement positionnels. Sa documentation est la " +"suivante ::" + +#: ../Doc/faq/programming.rst:794 +msgid "" +"The slash at the end of the parameter list means that all three parameters " +"are positional-only. Thus, calling :func:`pow` with keyword aguments would " +"lead to an error::" +msgstr "" +"La barre oblique à la fin de la liste des paramètres signifie que les trois " +"paramètres sont uniquement positionnels. Et donc, appeler :func:`pow` avec " +"des arguments nommés provoque une erreur ::" + +#: ../Doc/faq/programming.rst:803 +msgid "" +"Note that as of this writing this is only documentational and no valid " +"syntax in Python, although there is :pep:`570`, which proposes a syntax for " +"position-only parameters in Python." +msgstr "" +"Notez que cet exemple n'est fourni qu'à titre informatif et n'est pas une " +"syntaxe Python valide, bien que la :pep:`570` propose une syntaxe pour les " +"paramètres uniquement positionnels en Python." + +#: ../Doc/faq/programming.rst:809 +msgid "Numbers and strings" +msgstr "Nombres et chaînes de caractères" + +#: ../Doc/faq/programming.rst:812 +msgid "How do I specify hexadecimal and octal integers?" +msgstr "Comment écrire des entiers hexadécimaux ou octaux ?" + +#: ../Doc/faq/programming.rst:814 +msgid "" +"To specify an octal digit, precede the octal value with a zero, and then a " +"lower or uppercase \"o\". For example, to set the variable \"a\" to the " +"octal value \"10\" (8 in decimal), type::" +msgstr "" +"Pour écrire un entier octal, faites précéder la valeur octale par un zéro, " +"puis un \"o\" majuscule ou minuscule. Par exemple pour affecter la valeur " +"octale \"10\" (8 en décimal) à la variable \"a\", tapez ::" + +#: ../Doc/faq/programming.rst:822 +msgid "" +"Hexadecimal is just as easy. Simply precede the hexadecimal number with a " +"zero, and then a lower or uppercase \"x\". Hexadecimal digits can be " +"specified in lower or uppercase. For example, in the Python interpreter::" +msgstr "" +"L'hexadécimal est tout aussi simple, faites précéder le nombre hexadécimal " +"par un zéro, puis un \"x\" majuscule ou minuscule. Les nombres hexadécimaux " +"peuvent être écrits en majuscules ou en minuscules. Par exemple, dans " +"l'interpréteur Python ::" + +#: ../Doc/faq/programming.rst:835 +msgid "Why does -22 // 10 return -3?" +msgstr "Pourquoi ``-22 // 10`` donne-t-il ``-3`` ?" + +#: ../Doc/faq/programming.rst:837 +msgid "" +"It's primarily driven by the desire that ``i % j`` have the same sign as " +"``j``. If you want that, and also want::" +msgstr "" +"Cela est principalement dû à la volonté que ``i % j`` ait le même signe que " +"j. Si vous voulez en plus que ::" + +#: ../Doc/faq/programming.rst:842 +msgid "" +"then integer division has to return the floor. C also requires that " +"identity to hold, and then compilers that truncate ``i // j`` need to make " +"``i % j`` have the same sign as ``i``." +msgstr "" +"alors la division entière doit renvoyer l'entier inférieur. Le C impose " +"également que cette égalité soit vérifiée, et donc les compilateurs qui " +"tronquent ``i // j`` ont besoin que ``i % j`` ait le même signe que ``i``." + +#: ../Doc/faq/programming.rst:846 +msgid "" +"There are few real use cases for ``i % j`` when ``j`` is negative. When " +"``j`` is positive, there are many, and in virtually all of them it's more " +"useful for ``i % j`` to be ``>= 0``. If the clock says 10 now, what did it " +"say 200 hours ago? ``-190 % 12 == 2`` is useful; ``-190 % 12 == -10`` is a " +"bug waiting to bite." +msgstr "" +"Il y a peu de cas d'utilisation réels pour ``i % j`` quand ``j`` est " +"négatif. Quand ``j`` est positif, il y en a beaucoup, et dans pratiquement " +"tous, il est plus utile que ``i % j`` soit ``>=0``. Si l'horloge affiche " +"10 h maintenant, qu'affichait-elle il y a 200 heures ? ``-190 % 12 == 2`` " +"est utile ; ``-190 % 12 == -10`` est un bogue en puissance." + +#: ../Doc/faq/programming.rst:854 +msgid "How do I convert a string to a number?" +msgstr "Comment convertir une chaîne de caractères en nombre ?" + +#: ../Doc/faq/programming.rst:856 +msgid "" +"For integers, use the built-in :func:`int` type constructor, e.g. " +"``int('144') == 144``. Similarly, :func:`float` converts to floating-point, " +"e.g. ``float('144') == 144.0``." +msgstr "" +"Pour les entiers, utilisez le constructeur natif de :func:`int`, par exemple " +"``int('144') == 144``. De façon similaire, :func:`float` donne la valeur " +"flottante, par exemple ``float('144') == 144.0``." + +#: ../Doc/faq/programming.rst:860 +msgid "" +"By default, these interpret the number as decimal, so that ``int('0144') == " +"144`` and ``int('0x144')`` raises :exc:`ValueError`. ``int(string, base)`` " +"takes the base to convert from as a second optional argument, so " +"``int('0x144', 16) == 324``. If the base is specified as 0, the number is " +"interpreted using Python's rules: a leading '0o' indicates octal, and '0x' " +"indicates a hex number." +msgstr "" +"Par défaut, ces fonctions interprètent les nombres comme des décimaux, de " +"telle façon que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:" +"`ValueError`. Le second argument (optionnel) de ``int(string, base)`` est la " +"base dans laquelle convertir, donc ``int('0x144', 16) == 324``. Si la base " +"donnée est 0, le nombre est interprété selon les règles Python : un préfixe " +"``0o`` indique de l'octal et ``0x`` indique de l'hexadécimal." + +#: ../Doc/faq/programming.rst:866 +msgid "" +"Do not use the built-in function :func:`eval` if all you need is to convert " +"strings to numbers. :func:`eval` will be significantly slower and it " +"presents a security risk: someone could pass you a Python expression that " +"might have unwanted side effects. For example, someone could pass " +"``__import__('os').system(\"rm -rf $HOME\")`` which would erase your home " +"directory." +msgstr "" +"N'utilisez pas la fonction native :func:`eval` pour convertir des chaînes de " +"caractères en nombres. :func:`eval` est beaucoup plus lente et pose des " +"problèmes de sécurité : quelqu'un pourrait vous envoyer une expression " +"Python pouvant avoir des effets de bord indésirables. Par exemple, quelqu'un " +"pourrait passer ``__import__('os').system(\"rm -rf $HOME\")`` ce qui " +"effacerait votre répertoire personnel." + +#: ../Doc/faq/programming.rst:873 +msgid "" +":func:`eval` also has the effect of interpreting numbers as Python " +"expressions, so that e.g. ``eval('09')`` gives a syntax error because Python " +"does not allow leading '0' in a decimal number (except '0')." +msgstr "" +":func:`eval` a aussi pour effet d'interpréter les nombres comme des " +"expressions Python. Ainsi ``eval('09')`` produit une erreur de syntaxe, " +"parce que Python ne permet pas les '0' en tête d'un nombre décimal (à " +"l'exception du nombre '0')." + +#: ../Doc/faq/programming.rst:879 +msgid "How do I convert a number to a string?" +msgstr "Comment convertir un nombre en chaîne de caractères ?" + +#: ../Doc/faq/programming.rst:881 +msgid "" +"To convert, e.g., the number 144 to the string '144', use the built-in type " +"constructor :func:`str`. If you want a hexadecimal or octal representation, " +"use the built-in functions :func:`hex` or :func:`oct`. For fancy " +"formatting, see the :ref:`f-strings` and :ref:`formatstrings` sections, e.g. " +"``\"{:04d}\".format(144)`` yields ``'0144'`` and ``\"{:.3f}\"." +"format(1.0/3.0)`` yields ``'0.333'``." +msgstr "" +"Pour transformer, par exemple, le nombre 144 en la chaîne de caractères " +"'144', il faut utiliser la fonction native :func:`str`. Pour obtenir la " +"représentation hexadécimale ou octale, il faut utiliser les fonctions " +"natives :func:`hex` ou :func:`oct`. Pour des représentations non-" +"conventionnelles, se référer aux sections :ref:`f-strings` et :ref:" +"`formatstrings`, e.g. ``\"{:04d}\".format(144)`` produit ``'0144'`` et ``" +"\"{:.3f}\".format(1.0/3.0)`` produit ``'0.333'``." + +#: ../Doc/faq/programming.rst:890 +msgid "How do I modify a string in place?" +msgstr "Comment modifier une chaîne de caractères « sur place » ?" + +#: ../Doc/faq/programming.rst:892 +msgid "" +"You can't, because strings are immutable. In most situations, you should " +"simply construct a new string from the various parts you want to assemble it " +"from. However, if you need an object with the ability to modify in-place " +"unicode data, try using an :class:`io.StringIO` object or the :mod:`array` " +"module::" +msgstr "" +"C'est impossible car les chaînes de caractères sont immuables. Dans la " +"plupart des cas, il faut tout simplement construire une nouvelle chaîne à " +"partir des morceaux de l'ancienne. Si toutefois vous avez besoin d'un objet " +"capable de modifier de la donnée Unicode « sur place », essayez d'utiliser " +"un objet :class:`io.StringIO` ou le module :mod:`array` ::" + +#: ../Doc/faq/programming.rst:922 +msgid "How do I use strings to call functions/methods?" +msgstr "" +"Comment utiliser des chaînes de caractères pour appeler des fonctions/" +"méthodes ?" + +#: ../Doc/faq/programming.rst:924 +msgid "There are various techniques." +msgstr "Il y a plusieurs façons de faire." + +#: ../Doc/faq/programming.rst:926 +msgid "" +"The best is to use a dictionary that maps strings to functions. The primary " +"advantage of this technique is that the strings do not need to match the " +"names of the functions. This is also the primary technique used to emulate " +"a case construct::" +msgstr "" +"La meilleure est d'utiliser un dictionnaire qui fait correspondre les " +"chaînes de caractères à des fonctions. Le principal avantage de cette " +"technique est que les chaînes n'ont pas besoin d'être égales aux noms de " +"fonctions. C'est aussi la façon principale d'imiter la construction \"case" +"\" ::" + +#: ../Doc/faq/programming.rst:941 +msgid "Use the built-in function :func:`getattr`::" +msgstr "Utiliser la fonction :func:`getattr` ::" + +#: ../Doc/faq/programming.rst:946 +msgid "" +"Note that :func:`getattr` works on any object, including classes, class " +"instances, modules, and so on." +msgstr "" +"Notez que :func:`getattr` marche sur n'importe quel objet, ceci inclut les " +"classes, les instances de classes, les modules et ainsi de suite." + +#: ../Doc/faq/programming.rst:949 +msgid "This is used in several places in the standard library, like this::" +msgstr "" +"Ceci est utilisé à plusieurs reprises dans la bibliothèque standard, de " +"cette façon ::" + +#: ../Doc/faq/programming.rst:962 +msgid "Use :func:`locals` or :func:`eval` to resolve the function name::" +msgstr "" +"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de la " +"fonction ::" + +#: ../Doc/faq/programming.rst:975 +msgid "" +"Note: Using :func:`eval` is slow and dangerous. If you don't have absolute " +"control over the contents of the string, someone could pass a string that " +"resulted in an arbitrary function being executed." +msgstr "" +"Note : utiliser :func:`eval` est lent est dangereux. Si vous n'avez pas un " +"contrôle absolu sur le contenu de la chaîne de caractères, quelqu'un " +"pourrait passer une chaîne de caractères pouvant appeler n'importe quelle " +"fonction." + +#: ../Doc/faq/programming.rst:980 +msgid "" +"Is there an equivalent to Perl's chomp() for removing trailing newlines from " +"strings?" +msgstr "" +"Existe-t-il un équivalent à la fonction ``chomp()`` de Perl, pour retirer " +"les caractères de fin de ligne d'une chaîne de caractères ?" + +#: ../Doc/faq/programming.rst:982 +msgid "" +"You can use ``S.rstrip(\"\\r\\n\")`` to remove all occurrences of any line " +"terminator from the end of the string ``S`` without removing other trailing " +"whitespace. If the string ``S`` represents more than one line, with several " +"empty lines at the end, the line terminators for all the blank lines will be " +"removed::" +msgstr "" +"Vous pouvez utiliser ``S.rstrip(\"\\r\\n\")`` pour retirer toutes les " +"occurrences de tout marqueur de fin de ligne à la fin d'une chaîne de " +"caractère ``S``, sans en enlever aucune espace. Si la chaîne ``S`` " +"représente plus d'une ligne, avec plusieurs lignes vides, les marqueurs de " +"fin de ligne de chaque ligne vide seront retirés ::" + +#: ../Doc/faq/programming.rst:994 +msgid "" +"Since this is typically only desired when reading text one line at a time, " +"using ``S.rstrip()`` this way works well." +msgstr "" +"Vu que cela ne sert presque qu'à lire un texte ligne à ligne, utiliser ``S." +"rstrip()`` de cette manière fonctionne correctement." + +#: ../Doc/faq/programming.rst:999 +msgid "Is there a scanf() or sscanf() equivalent?" +msgstr "Existe-t-il un équivalent à ``scanf()`` ou ``sscanf()`` ?" + +#: ../Doc/faq/programming.rst:1001 +msgid "Not as such." +msgstr "Pas exactement." + +#: ../Doc/faq/programming.rst:1003 +msgid "" +"For simple input parsing, the easiest approach is usually to split the line " +"into whitespace-delimited words using the :meth:`~str.split` method of " +"string objects and then convert decimal strings to numeric values using :" +"func:`int` or :func:`float`. ``split()`` supports an optional \"sep\" " +"parameter which is useful if the line uses something other than whitespace " +"as a separator." +msgstr "" +"Pour une simple analyse de chaîne, l'approche la plus simple est " +"généralement de découper la ligne en mots délimités par des espaces, en " +"utilisant la méthode :meth:`~str.split` des objets chaîne de caractères, et " +"ensuite de convertir les chaînes de décimaux en valeurs numériques en " +"utilisant la fonction :func:`int` ou :func:`float`. ``split()`` possède un " +"paramètre optionnel \"sep\" qui est utile si la ligne utilise autre chose " +"que des espaces comme séparateurs." + +#: ../Doc/faq/programming.rst:1009 +msgid "" +"For more complicated input parsing, regular expressions are more powerful " +"than C's :c:func:`sscanf` and better suited for the task." +msgstr "" +"Pour des analyses plus compliquées, les expressions rationnelles sont plus " +"puissantes que la fonction :c:func:`sscanf` de C et mieux adaptées à la " +"tâche." + +#: ../Doc/faq/programming.rst:1014 +msgid "What does 'UnicodeDecodeError' or 'UnicodeEncodeError' error mean?" +msgstr "" +"Que signifient les erreurs ``UnicodeDecodeError`` ou ``UnicodeEncodeError`` ?" + +#: ../Doc/faq/programming.rst:1016 +msgid "See the :ref:`unicode-howto`." +msgstr "Voir :ref:`unicode-howto`." + +#: ../Doc/faq/programming.rst:1020 +msgid "Performance" +msgstr "Performances" + +#: ../Doc/faq/programming.rst:1023 +msgid "My program is too slow. How do I speed it up?" +msgstr "Mon programme est trop lent. Comment l'accélérer ?" + +#: ../Doc/faq/programming.rst:1025 +msgid "" +"That's a tough one, in general. First, here are a list of things to " +"remember before diving further:" +msgstr "" +"Question difficile en général. Il faut garder en tête les points suivants " +"avant d'aller plus loin :" + +#: ../Doc/faq/programming.rst:1028 +msgid "" +"Performance characteristics vary across Python implementations. This FAQ " +"focusses on :term:`CPython`." +msgstr "" +"Les performances varient en fonction des implémentations de Python. Cette " +"FAQ ne traite que de :term:`CPython`." + +#: ../Doc/faq/programming.rst:1030 +msgid "" +"Behaviour can vary across operating systems, especially when talking about I/" +"O or multi-threading." +msgstr "" +"Les comportements peuvent différer d'un système d'exploitation à l'autre, " +"tout particulièrement quand il s'agit d'entrée/sortie ou de fils d'exécution " +"multiples." + +#: ../Doc/faq/programming.rst:1032 +msgid "" +"You should always find the hot spots in your program *before* attempting to " +"optimize any code (see the :mod:`profile` module)." +msgstr "" +"Il faut toujours essayer de trouver où sont les points de contention d'un " +"programme *avant* d'essayer d'optimiser du code (voir le module :mod:" +"`profile`)." + +#: ../Doc/faq/programming.rst:1034 +msgid "" +"Writing benchmark scripts will allow you to iterate quickly when searching " +"for improvements (see the :mod:`timeit` module)." +msgstr "" +"Écrire des scripts d'évaluation de performances permet de progresser " +"rapidement dans la recherche d'améliorations (voir le module :mod:`timeit`)." + +#: ../Doc/faq/programming.rst:1036 +msgid "" +"It is highly recommended to have good code coverage (through unit testing or " +"any other technique) before potentially introducing regressions hidden in " +"sophisticated optimizations." +msgstr "" +"Il est très fortement recommandé d'avoir une bonne couverture de code (avec " +"des tests unitaires ou autre) avant d'ajouter des erreurs dans des " +"optimisations sophistiquées." + +#: ../Doc/faq/programming.rst:1040 +msgid "" +"That being said, there are many tricks to speed up Python code. Here are " +"some general principles which go a long way towards reaching acceptable " +"performance levels:" +msgstr "" +"Ceci étant dit, il y a beaucoup d'astuces pour accélérer du code Python. " +"Voici quelques principes généraux qui peuvent aider à atteindre des niveaux " +"de performance satisfaisants :" + +#: ../Doc/faq/programming.rst:1044 +msgid "" +"Making your algorithms faster (or changing to faster ones) can yield much " +"larger benefits than trying to sprinkle micro-optimization tricks all over " +"your code." +msgstr "" +"Améliorer les algorithmes (ou en changer pour des plus performants) peut " +"produire de bien meilleurs résultats que d'optimiser ça et là de petites " +"portions du code." + +#: ../Doc/faq/programming.rst:1048 +msgid "" +"Use the right data structures. Study documentation for the :ref:`bltin-" +"types` and the :mod:`collections` module." +msgstr "" +"Utiliser les structures de données adaptées. Se référer à la documentation " +"des :ref:`bltin-types` et du module :mod:`collections`." + +#: ../Doc/faq/programming.rst:1051 +msgid "" +"When the standard library provides a primitive for doing something, it is " +"likely (although not guaranteed) to be faster than any alternative you may " +"come up with. This is doubly true for primitives written in C, such as " +"builtins and some extension types. For example, be sure to use either the :" +"meth:`list.sort` built-in method or the related :func:`sorted` function to " +"do sorting (and see the :ref:`sortinghowto` for examples of moderately " +"advanced usage)." +msgstr "" +"Quand la bibliothèque standard fournit une implémentation pour quelque " +"chose, il y a de fortes chances (même si ce n'est pas systématique) que " +"cette implémentation soit plus rapide que la votre. C'est d'autant plus vrai " +"pour les routines écrites en C, comme les routines natives et certaines " +"extensions de types. Par exemple, il faut utiliser la méthode native :meth:" +"`list.sort` ou la fonction :func:`sorted` similaire pour classer (et se " +"référer à la section :ref:`sortinghowto` pour des exemples d'utilisation " +"courante)." + +#: ../Doc/faq/programming.rst:1059 +msgid "" +"Abstractions tend to create indirections and force the interpreter to work " +"more. If the levels of indirection outweigh the amount of useful work done, " +"your program will be slower. You should avoid excessive abstraction, " +"especially under the form of tiny functions or methods (which are also often " +"detrimental to readability)." +msgstr "" +"Les abstractions ont tendance à créer des indirections et obligent " +"l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse la " +"quantité de travail effectif, le programme sera ralenti. Il faut toujours " +"éviter trop d'indirections, en particulier sous la forme de fonctions ou " +"méthodes trop petites (qui nuisent aussi souvent à la clarté du code)." + +#: ../Doc/faq/programming.rst:1065 +msgid "" +"If you have reached the limit of what pure Python can allow, there are tools " +"to take you further away. For example, `Cython `_ can " +"compile a slightly modified version of Python code into a C extension, and " +"can be used on many different platforms. Cython can take advantage of " +"compilation (and optional type annotations) to make your code significantly " +"faster than when interpreted. If you are confident in your C programming " +"skills, you can also :ref:`write a C extension module ` " +"yourself." +msgstr "" +"Si vous atteignez les limites de ce que du Python « pur » permet de faire, " +"il y a des outils qui permettent d'aller plus loin. Par exemple, `Cython " +"`_ peut compiler une version légèrement modifiée de code " +"Python en une extension C et est disponible sur de nombreuses plate-formes. " +"Cython peut bénéficier de la compilation (et de l'annotation, optionnelle, " +"des types) pour rendre votre code beaucoup plus rapide que s'il était " +"interprété. Si vous avez confiance en vos capacités de programmation en C, " +"vous pouvez aussi :ref:`écrire un module d'extension en C` " +"vous-même." + +#: ../Doc/faq/programming.rst:1075 +msgid "" +"The wiki page devoted to `performance tips `_." +msgstr "" +"La page wiki dédiée aux `astuces de performance `_." + +#: ../Doc/faq/programming.rst:1081 +msgid "What is the most efficient way to concatenate many strings together?" +msgstr "" +"Quelle est la manière la plus efficace de concaténer un grand nombre de " +"chaînes de caractères ?" + +#: ../Doc/faq/programming.rst:1083 +msgid "" +":class:`str` and :class:`bytes` objects are immutable, therefore " +"concatenating many strings together is inefficient as each concatenation " +"creates a new object. In the general case, the total runtime cost is " +"quadratic in the total string length." +msgstr "" +"Les objets :class:`str` et :class:`bytes` sont immuables, par conséquent " +"concaténer un grand nombre de chaînes de caractères entre elles n'est pas " +"très efficace car chaque concaténation crée un nouvel objet. Dans le cas " +"général, la complexité est quadratique par rapport à la taille totale de la " +"chaîne." + +#: ../Doc/faq/programming.rst:1088 +msgid "" +"To accumulate many :class:`str` objects, the recommended idiom is to place " +"them into a list and call :meth:`str.join` at the end::" +msgstr "" +"Pour mettre bout-à-bout un grand nombre d'objets :class:`str`, la technique " +"recommandée consiste à toutes les mettre dans une liste et appeler la " +"méthode :meth:`str.join` à la fin ::" + +#: ../Doc/faq/programming.rst:1096 +msgid "(another reasonably efficient idiom is to use :class:`io.StringIO`)" +msgstr "" +"(une autre technique relativement efficace consiste à utiliser :class:`io." +"StringIO`)" + +#: ../Doc/faq/programming.rst:1098 +msgid "" +"To accumulate many :class:`bytes` objects, the recommended idiom is to " +"extend a :class:`bytearray` object using in-place concatenation (the ``+=`` " +"operator)::" +msgstr "" +"Pour concaténer un grand nombre d'objets :class:`bytes`, la technique " +"recommandée consiste à étendre un objet :class:`bytearray` en utilisant la " +"concaténation en-place (l'opérateur ``+=``) ::" + +#: ../Doc/faq/programming.rst:1107 +msgid "Sequences (Tuples/Lists)" +msgstr "Séquences (n-uplets / listes)" + +#: ../Doc/faq/programming.rst:1110 +msgid "How do I convert between tuples and lists?" +msgstr "Comment convertir les listes en n-uplets et inversement ?" + +#: ../Doc/faq/programming.rst:1112 +msgid "" +"The type constructor ``tuple(seq)`` converts any sequence (actually, any " +"iterable) into a tuple with the same items in the same order." +msgstr "" +"Le constructeur de type ``tuple(seq)`` convertit toute séquence (plus " +"précisément, tout itérable) en un n-uplet avec les mêmes éléments dans le " +"même ordre." + +#: ../Doc/faq/programming.rst:1115 +msgid "" +"For example, ``tuple([1, 2, 3])`` yields ``(1, 2, 3)`` and ``tuple('abc')`` " +"yields ``('a', 'b', 'c')``. If the argument is a tuple, it does not make a " +"copy but returns the same object, so it is cheap to call :func:`tuple` when " +"you aren't sure that an object is already a tuple." +msgstr "" +"Par exemple ``tuple([1, 2, 3])`` renvoie ``(1, 2, 3)`` et ``tuple('abc')`` " +"renvoie ``('a', 'b', 'c')``. Si l'argument est un n-uplet, cela ne crée pas " +"de copie, mais renvoie le même objet, ce qui fait de :func:`tuple` une " +"fonction économique à appeler quand vous ne savez pas si votre objet est " +"déjà un n-uplet." + +#: ../Doc/faq/programming.rst:1120 +msgid "" +"The type constructor ``list(seq)`` converts any sequence or iterable into a " +"list with the same items in the same order. For example, ``list((1, 2, " +"3))`` yields ``[1, 2, 3]`` and ``list('abc')`` yields ``['a', 'b', 'c']``. " +"If the argument is a list, it makes a copy just like ``seq[:]`` would." +msgstr "" +"Le constructeur de type ``list(seq)`` convertit toute séquence ou itérable " +"en liste contenant les mêmes éléments dans le même ordre. Par exemple, " +"``list((1,2,3))`` renvoie ``[1,2,3]`` et ``list('abc')`` renvoie " +"``['a','b','c']``. Si l'argument est une liste, il renvoie une copie, de la " +"même façon que ``seq[:]``." + +#: ../Doc/faq/programming.rst:1127 +msgid "What's a negative index?" +msgstr "Qu'est-ce qu'un index négatif ?" + +#: ../Doc/faq/programming.rst:1129 +msgid "" +"Python sequences are indexed with positive numbers and negative numbers. " +"For positive numbers 0 is the first index 1 is the second index and so " +"forth. For negative indices -1 is the last index and -2 is the penultimate " +"(next to last) index and so forth. Think of ``seq[-n]`` as the same as " +"``seq[len(seq)-n]``." +msgstr "" +"Les séquences Python sont indexées avec des nombres positifs aussi bien que " +"négatifs. Pour les nombres positifs, 0 est le premier indice, 1 est le " +"deuxième, et ainsi de suite. Pour les indices négatifs, ``-1`` est le " +"dernier index, ``-2`` est le pénultième (avant-dernier), et ainsi de suite. " +"On peut aussi dire que ``seq[-n]`` est équivalent à ``seq[len(seq)-n]``." + +#: ../Doc/faq/programming.rst:1134 +msgid "" +"Using negative indices can be very convenient. For example ``S[:-1]`` is " +"all of the string except for its last character, which is useful for " +"removing the trailing newline from a string." +msgstr "" +"Utiliser des indices négatifs peut être très pratique. Par exemple " +"``S[:-1]`` représente la chaîne tout entière à l'exception du dernier " +"caractère, ce qui est pratique pour retirer un caractère de fin de ligne à " +"la fin d'une chaîne." + +#: ../Doc/faq/programming.rst:1140 +msgid "How do I iterate over a sequence in reverse order?" +msgstr "Comment itérer à rebours sur une séquence ?" + +#: ../Doc/faq/programming.rst:1142 +msgid "" +"Use the :func:`reversed` built-in function, which is new in Python 2.4::" +msgstr "" +"Utilisez la fonction native :func:`reversed`, qui a été introduite en Python " +"2.4 ::" + +#: ../Doc/faq/programming.rst:1147 +msgid "" +"This won't touch your original sequence, but build a new copy with reversed " +"order to iterate over." +msgstr "" +"Cela ne modifie pas la séquence initiale, mais construit à la place une " +"copie en ordre inverse pour itérer dessus." + +#: ../Doc/faq/programming.rst:1150 +msgid "With Python 2.3, you can use an extended slice syntax::" +msgstr "Avec Python 2.3 vous pouvez utiliser la syntaxe étendue de tranches ::" + +#: ../Doc/faq/programming.rst:1157 +msgid "How do you remove duplicates from a list?" +msgstr "Comment retirer les doublons d'une liste ?" + +#: ../Doc/faq/programming.rst:1159 +msgid "See the Python Cookbook for a long discussion of many ways to do this:" +msgstr "" +"Lisez le « livre de recettes » Python pour trouver une longue discussion sur " +"les nombreuses approches possibles :" + +#: ../Doc/faq/programming.rst:1161 +msgid "https://code.activestate.com/recipes/52560/" +msgstr "https://code.activestate.com/recipes/52560/" + +#: ../Doc/faq/programming.rst:1163 +msgid "" +"If you don't mind reordering the list, sort it and then scan from the end of " +"the list, deleting duplicates as you go::" +msgstr "" +"Si changer l'ordre de la liste ne vous dérange pas, commencez par ordonner " +"celle-ci, puis parcourez-la d'un bout à l'autre, en supprimant les doublons " +"trouvés en chemin ::" + +#: ../Doc/faq/programming.rst:1175 +msgid "" +"If all elements of the list may be used as set keys (i.e. they are all :term:" +"`hashable`) this is often faster ::" +msgstr "" +"Si tous les éléments de la liste peuvent être utilisés comme des clés de " +"dictionnaire (c'est à dire, qu'elles sont toutes :term:`hachables " +"`) ceci est souvent plus rapide ::" + +#: ../Doc/faq/programming.rst:1180 +msgid "" +"This converts the list into a set, thereby removing duplicates, and then " +"back into a list." +msgstr "" +"Ceci convertit la liste en un ensemble, ce qui supprime automatiquement les " +"doublons, puis la transforme à nouveau en liste." + +#: ../Doc/faq/programming.rst:1185 +msgid "How do you make an array in Python?" +msgstr "Comment construire un tableau en Python ?" + +#: ../Doc/faq/programming.rst:1187 +msgid "Use a list::" +msgstr "Utilisez une liste ::" + +#: ../Doc/faq/programming.rst:1191 +msgid "" +"Lists are equivalent to C or Pascal arrays in their time complexity; the " +"primary difference is that a Python list can contain objects of many " +"different types." +msgstr "" +"Les listes ont un coût équivalent à celui des tableaux C ou Pascal ; la " +"principale différence est qu'une liste Python peut contenir des objets de " +"différents types." + +#: ../Doc/faq/programming.rst:1194 +msgid "" +"The ``array`` module also provides methods for creating arrays of fixed " +"types with compact representations, but they are slower to index than " +"lists. Also note that the Numeric extensions and others define array-like " +"structures with various characteristics as well." +msgstr "" +"Le module ``array`` fournit des méthodes pour créer des tableaux de types " +"fixes dans une représentation compacte, mais ils sont plus lents à indexer " +"que les listes. Notez aussi que l'extension ``Numeric`` (et d'autres) " +"fournissent différentes structures de type tableaux, avec des " +"caractéristiques différentes." + +#: ../Doc/faq/programming.rst:1199 +msgid "" +"To get Lisp-style linked lists, you can emulate cons cells using tuples::" +msgstr "" +"Pour obtenir des listes chaînées à la sauce Lisp, vous pouvez émuler les " +"*cons cells* en utilisant des n-uplets ::" + +#: ../Doc/faq/programming.rst:1203 +msgid "" +"If mutability is desired, you could use lists instead of tuples. Here the " +"analogue of lisp car is ``lisp_list[0]`` and the analogue of cdr is " +"``lisp_list[1]``. Only do this if you're sure you really need to, because " +"it's usually a lot slower than using Python lists." +msgstr "" +"Si vous voulez pouvoir modifier les éléments, utilisez une liste plutôt " +"qu'un tuple. Ici la version équivalente du *car* de Lisp est " +"``lisp_list[0]`` et l'équivalent de *cdr* est ``lisp_list[1]``. Ne faites " +"ceci que si vous êtes réellement sûr d'en avoir besoin, cette méthode est en " +"général bien plus lente que les listes Python." + +#: ../Doc/faq/programming.rst:1212 +msgid "How do I create a multidimensional list?" +msgstr "Comment créer une liste à plusieurs dimensions ?" + +#: ../Doc/faq/programming.rst:1214 +msgid "You probably tried to make a multidimensional array like this::" +msgstr "" +"Vous avez probablement essayé de créer une liste à plusieurs dimensions de " +"cette façon ::" + +#: ../Doc/faq/programming.rst:1218 +msgid "This looks correct if you print it:" +msgstr "Elle semble correcte si on l'affiche :" + +#: ../Doc/faq/programming.rst:1229 +msgid "But when you assign a value, it shows up in multiple places:" +msgstr "" +"Mais quand vous affectez une valeur, celle-ci apparaît à plusieurs " +"endroits ::" + +#: ../Doc/faq/programming.rst:1241 +msgid "" +"The reason is that replicating a list with ``*`` doesn't create copies, it " +"only creates references to the existing objects. The ``*3`` creates a list " +"containing 3 references to the same list of length two. Changes to one row " +"will show in all rows, which is almost certainly not what you want." +msgstr "" +"Dupliquer une liste en utilisant ``*`` ne crée en réalité pas de copie mais " +"seulement des références aux objets existants. Le ``*3`` crée une liste " +"contenant trois références à la même liste de longueur deux. Un changement " +"dans une colonne apparaîtra donc dans toutes les colonnes, ce qui n'est très " +"probablement pas ce que vous souhaitiez." + +#: ../Doc/faq/programming.rst:1246 +msgid "" +"The suggested approach is to create a list of the desired length first and " +"then fill in each element with a newly created list::" +msgstr "" +"L'approche suggérée est d'abord de créer une liste de la longueur désirée, " +"puis de remplir tous les éléments avec une nouvelle chaîne ::" + +#: ../Doc/faq/programming.rst:1253 +msgid "" +"This generates a list containing 3 different lists of length two. You can " +"also use a list comprehension::" +msgstr "" +"Cela génère une liste contenant elle-même trois listes distinctes, de " +"longueur deux. Vous pouvez aussi utiliser la syntaxe des listes en " +"compréhension ::" + +#: ../Doc/faq/programming.rst:1259 +msgid "" +"Or, you can use an extension that provides a matrix datatype; `NumPy `_ is the best known." +msgstr "" +"Vous pouvez aussi utiliser une extension qui fournit un type matriciel " +"natif ; `NumPy `_ est la plus répandue." + +#: ../Doc/faq/programming.rst:1264 +msgid "How do I apply a method to a sequence of objects?" +msgstr "Comment appliquer une méthode à une séquence d'objets ?" + +#: ../Doc/faq/programming.rst:1266 +msgid "Use a list comprehension::" +msgstr "Utilisez une liste en compréhension ::" + +#: ../Doc/faq/programming.rst:1273 +msgid "" +"Why does a_tuple[i] += ['item'] raise an exception when the addition works?" +msgstr "" +"Pourquoi ``a_tuple[i] += ['item']`` lève-t-il une exception alors que " +"l'addition fonctionne ?" + +#: ../Doc/faq/programming.rst:1275 +msgid "" +"This is because of a combination of the fact that augmented assignment " +"operators are *assignment* operators, and the difference between mutable and " +"immutable objects in Python." +msgstr "" +"Ceci est dû à la combinaison de deux facteurs : le fait que les opérateurs " +"d'affectation incrémentaux sont des opérateurs d'*affectation* et à la " +"différence entre les objets muables et immuables en Python." + +#: ../Doc/faq/programming.rst:1279 +msgid "" +"This discussion applies in general when augmented assignment operators are " +"applied to elements of a tuple that point to mutable objects, but we'll use " +"a ``list`` and ``+=`` as our exemplar." +msgstr "" +"Cette discussion est valable, en général, quand des opérateurs d'affectation " +"incrémentale sont appliqués aux éléments d'un n-uplet qui pointe sur des " +"objets muables, mais on prendra ``list`` et ``+=`` comme exemple." + +#: ../Doc/faq/programming.rst:1283 +msgid "If you wrote::" +msgstr "Si vous écrivez ::" + +#: ../Doc/faq/programming.rst:1291 +msgid "" +"The reason for the exception should be immediately clear: ``1`` is added to " +"the object ``a_tuple[0]`` points to (``1``), producing the result object, " +"``2``, but when we attempt to assign the result of the computation, ``2``, " +"to element ``0`` of the tuple, we get an error because we can't change what " +"an element of a tuple points to." +msgstr "" +"La cause de l'exception est claire : ``1`` est ajouté à l'objet " +"``a_tuple[0]`` qui pointe sur (``1``), ce qui produit l'objet résultant " +"``2``, mais, lorsque l'on tente d'affecter le résultat du calcul, ``2``, à " +"l'élément ``0`` du n-uplet, on obtient une erreur car il est impossible de " +"modifier la cible sur laquelle pointe un élément d'un n-uplet." + +#: ../Doc/faq/programming.rst:1297 +msgid "" +"Under the covers, what this augmented assignment statement is doing is " +"approximately this::" +msgstr "" +"Sous le capot, une instruction d'affectation incrémentale fait à peu près " +"ceci ::" + +#: ../Doc/faq/programming.rst:1306 +msgid "" +"It is the assignment part of the operation that produces the error, since a " +"tuple is immutable." +msgstr "" +"C'est la partie de l'affectation de l'opération qui génère l'erreur, vu " +"qu'un n-uplet est immuable." + +#: ../Doc/faq/programming.rst:1309 +msgid "When you write something like::" +msgstr "Quand vous écrivez un code du style ::" + +#: ../Doc/faq/programming.rst:1317 +msgid "" +"The exception is a bit more surprising, and even more surprising is the fact " +"that even though there was an error, the append worked::" +msgstr "" +"L'exception est un peu plus surprenante et, chose encore plus étrange, " +"malgré l'erreur, l'ajout a fonctionné ::" + +#: ../Doc/faq/programming.rst:1323 +msgid "" +"To see why this happens, you need to know that (a) if an object implements " +"an ``__iadd__`` magic method, it gets called when the ``+=`` augmented " +"assignment is executed, and its return value is what gets used in the " +"assignment statement; and (b) for lists, ``__iadd__`` is equivalent to " +"calling ``extend`` on the list and returning the list. That's why we say " +"that for lists, ``+=`` is a \"shorthand\" for ``list.extend``::" +msgstr "" +"Pour comprendre ce qui se passe, il faut savoir que, premièrement, si un " +"objet implémente la méthode magique c, celle-ci est appelée quand " +"l'affectation incrémentale ``+=`` est exécutée et sa valeur de retour est " +"utilisée dans l'instruction d'affectation ; et que, deuxièmement, pour les " +"listes, ``__iadd__`` équivaut à appeler ``extend`` sur la liste et à " +"renvoyer celle-ci. C'est pour cette raison que l'on dit que pour les listes, " +"``+=`` est un \"raccourci\" pour ``list.extend`` ::" + +#: ../Doc/faq/programming.rst:1335 +msgid "This is equivalent to::" +msgstr "C’est équivalent à ::" + +#: ../Doc/faq/programming.rst:1340 +msgid "" +"The object pointed to by a_list has been mutated, and the pointer to the " +"mutated object is assigned back to ``a_list``. The end result of the " +"assignment is a no-op, since it is a pointer to the same object that " +"``a_list`` was previously pointing to, but the assignment still happens." +msgstr "" +"L'objet sur lequel pointe ``a_list`` a été modifié et le pointeur vers " +"l'objet modifié est réaffecté à ``a_list``. *In fine*, l'affectation ne " +"change rien, puisque c'est un pointeur vers le même objet que sur lequel " +"pointait ``a_list``, mais l'affectation a tout de même lieu." + +#: ../Doc/faq/programming.rst:1345 +msgid "Thus, in our tuple example what is happening is equivalent to::" +msgstr "" +"Donc, dans notre exemple avec un n-uplet, il se passe quelque chose " +"équivalent à ::" + +#: ../Doc/faq/programming.rst:1353 +msgid "" +"The ``__iadd__`` succeeds, and thus the list is extended, but even though " +"``result`` points to the same object that ``a_tuple[0]`` already points to, " +"that final assignment still results in an error, because tuples are " +"immutable." +msgstr "" +"L'appel à ``__iadd__`` réussit et la liste est étendue, mais bien que " +"``result`` pointe sur le même objet que ``a_tuple[0]``, l'affectation finale " +"échoue car les n-uplets ne sont pas muables." + +#: ../Doc/faq/programming.rst:1359 +msgid "" +"I want to do a complicated sort: can you do a Schwartzian Transform in " +"Python?" +msgstr "" +"Je souhaite faire un classement compliqué : peut on faire une transformation " +"de Schwartz en Python ?" + +#: ../Doc/faq/programming.rst:1361 +msgid "" +"The technique, attributed to Randal Schwartz of the Perl community, sorts " +"the elements of a list by a metric which maps each element to its \"sort " +"value\". In Python, use the ``key`` argument for the :meth:`list.sort` " +"method::" +msgstr "" +"Cette technique, attribuée à Randal Schwartz de la communauté Perl, ordonne " +"les éléments d'une liste à l'aide une transformation qui fait correspondre " +"chaque élément à sa \"valeur de tri\". En Python, ceci est géré par " +"l'argument ``key`` de la méthode :meth:`list.sort` ::" + +#: ../Doc/faq/programming.rst:1370 +msgid "How can I sort one list by values from another list?" +msgstr "Comment ordonner une liste en fonction des valeurs d'une autre liste ?" + +#: ../Doc/faq/programming.rst:1372 +msgid "" +"Merge them into an iterator of tuples, sort the resulting list, and then " +"pick out the element you want. ::" +msgstr "" +"Fusionnez-les dans un itérateur de n-uplets, ordonnez la liste obtenue, puis " +"choisissez l'élément que vous voulez ::" + +#: ../Doc/faq/programming.rst:1386 +msgid "An alternative for the last step is::" +msgstr "Vous pouvez remplacer la dernière étape par ::" + +#: ../Doc/faq/programming.rst:1391 +msgid "" +"If you find this more legible, you might prefer to use this instead of the " +"final list comprehension. However, it is almost twice as slow for long " +"lists. Why? First, the ``append()`` operation has to reallocate memory, and " +"while it uses some tricks to avoid doing that each time, it still has to do " +"it occasionally, and that costs quite a bit. Second, the expression " +"\"result.append\" requires an extra attribute lookup, and third, there's a " +"speed reduction from having to make all those function calls." +msgstr "" +"Si cela vous semble plus lisible, vous pouvez utiliser cette forme plutôt " +"qu'une liste en compréhension. Toutefois, ce code est presque deux fois plus " +"lent pour une liste de grande taille. Pourquoi ? Tout d'abord, parce que " +"``append()`` doit ré-allouer de la mémoire et, même si elle utilise quelques " +"astuces pour éviter d'effectuer la ré-allocation à chaque appel, elle doit " +"tout de même le faire de temps en temps, ce qui coûte assez cher. " +"Deuxièmement, parce que l'expression ``result.append`` fait un accès " +"supplémentaire à un attribut et, enfin, parce que tous ces appels de " +"fonctions réduisent la vitesse d'exécution." + +#: ../Doc/faq/programming.rst:1401 +msgid "Objects" +msgstr "Objets" + +#: ../Doc/faq/programming.rst:1404 +msgid "What is a class?" +msgstr "Qu'est-ce qu'une classe ?" + +#: ../Doc/faq/programming.rst:1406 +msgid "" +"A class is the particular object type created by executing a class " +"statement. Class objects are used as templates to create instance objects, " +"which embody both the data (attributes) and code (methods) specific to a " +"datatype." +msgstr "" +"Une classe est le type d'objet particulier créé par l'exécution d'une " +"déclaration de classe. Les objets de classe sont utilisés comme modèles pour " +"créer des objets, qui incarnent à la fois les données (attributs) et le code " +"(méthodes) spécifiques à un type de données." + +#: ../Doc/faq/programming.rst:1410 +msgid "" +"A class can be based on one or more other classes, called its base " +"class(es). It then inherits the attributes and methods of its base classes. " +"This allows an object model to be successively refined by inheritance. You " +"might have a generic ``Mailbox`` class that provides basic accessor methods " +"for a mailbox, and subclasses such as ``MboxMailbox``, ``MaildirMailbox``, " +"``OutlookMailbox`` that handle various specific mailbox formats." +msgstr "" +"Une classe peut être fondée sur une ou plusieurs autres classes, appelée sa " +"(ou ses) classe(s) de base. Elle hérite alors des attributs et des méthodes " +"de ses classes de base. Cela permet à un modèle d'objet d'être " +"successivement raffiné par héritage. Vous pourriez avoir une classe " +"générique ``Mailbox``, qui fournit des méthodes d'accès de base pour une " +"boîte aux lettres, et des sous-classes telles que ``MboxMailbox``, " +"``MaildirMailbox``, ``OutlookMailbox`` qui gèrent les plusieurs formats " +"spécifiques de boîtes aux lettres." + +#: ../Doc/faq/programming.rst:1419 +msgid "What is a method?" +msgstr "Qu'est-ce qu'une méthode ?" + +#: ../Doc/faq/programming.rst:1421 +msgid "" +"A method is a function on some object ``x`` that you normally call as ``x." +"name(arguments...)``. Methods are defined as functions inside the class " +"definition::" +msgstr "" +"Une méthode est une fonction sur un objet ``x`` qu'on appelle de manière " +"générale sous la forme ``x.name(arguments…)``. Les méthodes sont définies " +"comme des fonctions à l'intérieur de la définition de classe ::" + +#: ../Doc/faq/programming.rst:1431 +msgid "What is self?" +msgstr "Qu'est-ce que self ?" + +#: ../Doc/faq/programming.rst:1433 +msgid "" +"Self is merely a conventional name for the first argument of a method. A " +"method defined as ``meth(self, a, b, c)`` should be called as ``x.meth(a, b, " +"c)`` for some instance ``x`` of the class in which the definition occurs; " +"the called method will think it is called as ``meth(x, a, b, c)``." +msgstr "" +"Par convention, le premier argument d'une méthode est appelé self. Une " +"méthode ``meth(self, a, b, c)`` doit être appelée sous la forme ``x.meth(a, " +"b, c)`` où ``x`` est une instance de la classe dans laquelle cette méthode " +"est définie ; tout se passe comme si la méthode était appelée comme " +"``meth(x, a, b, c)``." + +#: ../Doc/faq/programming.rst:1438 +msgid "See also :ref:`why-self`." +msgstr "Voir aussi :ref:`why-self`." + +#: ../Doc/faq/programming.rst:1442 +msgid "" +"How do I check if an object is an instance of a given class or of a subclass " +"of it?" +msgstr "" +"Comment vérifier si un objet est une instance d'une classe donnée ou d'une " +"sous-classe de celle-ci ?" + +#: ../Doc/faq/programming.rst:1444 +msgid "" +"Use the built-in function ``isinstance(obj, cls)``. You can check if an " +"object is an instance of any of a number of classes by providing a tuple " +"instead of a single class, e.g. ``isinstance(obj, (class1, class2, ...))``, " +"and can also check whether an object is one of Python's built-in types, e.g. " +"``isinstance(obj, str)`` or ``isinstance(obj, (int, float, complex))``." +msgstr "" +"Utilisez la fonction native ``isinstance(obj, cls)``. Vous pouvez vérifier " +"qu'un objet est une instance de plusieurs classes à la fois en fournissant " +"un n-uplet à la place d'une seule classe, par exemple, ``isinstance(obj, " +"(class1, class2, ...))``. Vous pouvez également vérifier qu'un objet est " +"l'un des types natifs de Python, par exemple ``isinstance(obj, str)`` ou " +"``isinstance(obj, (int, float, complex))``." + +#: ../Doc/faq/programming.rst:1450 +msgid "" +"Note that most programs do not use :func:`isinstance` on user-defined " +"classes very often. If you are developing the classes yourself, a more " +"proper object-oriented style is to define methods on the classes that " +"encapsulate a particular behaviour, instead of checking the object's class " +"and doing a different thing based on what class it is. For example, if you " +"have a function that does something::" +msgstr "" +"Notez que la plupart des programmes n'utilisent que rarement :func:" +"`isInstance` sur les classes définies par l'utilisateur. Si vous développez " +"vous-même des classes, une approche plus orientée-objet consiste définir des " +"méthodes sur les classes qui sont porteuses d'un comportement particulier, " +"plutôt que de vérifier la classe de l'objet et de faire un traitement ad-" +"hoc. Par exemple, si vous avez une fonction qui fait quelque chose ::" + +#: ../Doc/faq/programming.rst:1464 +msgid "" +"A better approach is to define a ``search()`` method on all the classes and " +"just call it::" +msgstr "" +"Une meilleure approche est de définir une méthode ``search()`` dans toutes " +"les classes et qu'il suffit d'appeler de la manière suivante ::" + +#: ../Doc/faq/programming.rst:1479 +msgid "What is delegation?" +msgstr "Qu'est-ce que la délégation ?" + +#: ../Doc/faq/programming.rst:1481 +msgid "" +"Delegation is an object oriented technique (also called a design pattern). " +"Let's say you have an object ``x`` and want to change the behaviour of just " +"one of its methods. You can create a new class that provides a new " +"implementation of the method you're interested in changing and delegates all " +"other methods to the corresponding method of ``x``." +msgstr "" +"La délégation est une technique orientée objet (aussi appelée « patron de " +"conception). Prenons un objet ``x`` dont on souhaite modifier le " +"comportement d'une seule de ses méthodes. On peut créer une nouvelle classe " +"qui fournit une nouvelle implémentation de la méthode qui nous intéresse " +"dans l'évolution et qui délègue toute autre méthode à la méthode " +"correspondante de ``x``." + +#: ../Doc/faq/programming.rst:1487 +msgid "" +"Python programmers can easily implement delegation. For example, the " +"following class implements a class that behaves like a file but converts all " +"written data to uppercase::" +msgstr "" +"Les programmeurs Python peuvent facilement mettre en œuvre la délégation. " +"Par exemple, la classe suivante implémente une classe qui se comporte comme " +"un fichier, mais convertit toutes les données écrites en majuscules ::" + +#: ../Doc/faq/programming.rst:1502 +msgid "" +"Here the ``UpperOut`` class redefines the ``write()`` method to convert the " +"argument string to uppercase before calling the underlying ``self.__outfile." +"write()`` method. All other methods are delegated to the underlying ``self." +"__outfile`` object. The delegation is accomplished via the ``__getattr__`` " +"method; consult :ref:`the language reference ` for more " +"information about controlling attribute access." +msgstr "" +"Ici, la classe ``UpperOut`` redéfinit la méthode ``write()`` pour convertir " +"la chaîne d'argument en majuscules avant d'appeler la méthode sous-jacentes " +"``self.__outfile.write()``. Toutes les autres méthodes sont déléguées à " +"l'objet sous-jacent ``self.__outfile``. La délégation se fait par la méthode " +"``__getattr__``, consulter :ref:`the language reference ` " +"pour plus d'informations sur le contrôle d'accès d'attribut." + +#: ../Doc/faq/programming.rst:1509 +msgid "" +"Note that for more general cases delegation can get trickier. When " +"attributes must be set as well as retrieved, the class must define a :meth:" +"`__setattr__` method too, and it must do so carefully. The basic " +"implementation of :meth:`__setattr__` is roughly equivalent to the " +"following::" +msgstr "" +"Notez que pour une utilisation plus générale de la délégation, les choses " +"peuvent se compliquer. Lorsque les attributs doivent être définis aussi bien " +"que récupérés, la classe doit définir une méthode :meth:`__setattr__` aussi, " +"et il doit le faire avec soin. La mise en œuvre basique de la méthode :meth:" +"`__setattr__` est à peu près équivalent à ce qui suit ::" + +#: ../Doc/faq/programming.rst:1520 +msgid "" +"Most :meth:`__setattr__` implementations must modify ``self.__dict__`` to " +"store local state for self without causing an infinite recursion." +msgstr "" +"La plupart des implémentations de :meth:`__setattr__` doivent modifier " +"``self.__dict__`` pour stocker l'état local de self sans provoquer une " +"récursion infinie." + +#: ../Doc/faq/programming.rst:1525 +msgid "" +"How do I call a method defined in a base class from a derived class that " +"overrides it?" +msgstr "" +"Comment appeler une méthode définie dans une classe de base depuis une " +"classe dérivée qui la surcharge ?" + +#: ../Doc/faq/programming.rst:1527 +msgid "Use the built-in :func:`super` function::" +msgstr "Utilisez la fonction native :func:`super` ::" + +#: ../Doc/faq/programming.rst:1533 +msgid "" +"For version prior to 3.0, you may be using classic classes: For a class " +"definition such as ``class Derived(Base): ...`` you can call method " +"``meth()`` defined in ``Base`` (or one of ``Base``'s base classes) as ``Base." +"meth(self, arguments...)``. Here, ``Base.meth`` is an unbound method, so " +"you need to provide the ``self`` argument." +msgstr "" +"Pour les versions antérieures à 3.0, vous pouvez utiliser des classes " +"classiques : pour une définition de classe comme ``class Derived(Base): ..." +"`` vous pouvez appeler la méthode ``meth()`` définie dans ``Base`` (ou l'une " +"des classes de base de ``Base``) en faisant ``Base.meth(self, " +"arguments...)``. Ici, ``Base.meth`` est une méthode non liée, il faut donc " +"fournir l'argument ``self``." + +#: ../Doc/faq/programming.rst:1541 +msgid "How can I organize my code to make it easier to change the base class?" +msgstr "" +"Comment organiser un code pour permettre de changer la classe de base plus " +"facilement ?" + +#: ../Doc/faq/programming.rst:1543 +msgid "" +"You could define an alias for the base class, assign the real base class to " +"it before your class definition, and use the alias throughout your class. " +"Then all you have to change is the value assigned to the alias. " +"Incidentally, this trick is also handy if you want to decide dynamically (e." +"g. depending on availability of resources) which base class to use. " +"Example::" +msgstr "" +"Vous pouvez définir un alias pour la classe de base, lui attribuer la classe " +"de base réelle avant la définition de classe, et utiliser l'alias au long de " +"votre classe. Ensuite, tout ce que vous devez changer est la valeur " +"attribuée à l'alias. Accessoirement, cette astuce est également utile si " +"vous voulez déterminer dynamiquement (par exemple en fonction de la " +"disponibilité des ressources) la classe de base à utiliser. Exemple ::" + +#: ../Doc/faq/programming.rst:1558 +msgid "How do I create static class data and static class methods?" +msgstr "" +"Comment créer des données statiques de classe et des méthodes statiques de " +"classe ?" + +#: ../Doc/faq/programming.rst:1560 +msgid "" +"Both static data and static methods (in the sense of C++ or Java) are " +"supported in Python." +msgstr "" +"Les données statiques et les méthodes statiques (au sens C++ ou Java) sont " +"prises en charge en Python." + +#: ../Doc/faq/programming.rst:1563 +msgid "" +"For static data, simply define a class attribute. To assign a new value to " +"the attribute, you have to explicitly use the class name in the assignment::" +msgstr "" +"Pour les données statiques, il suffit de définir un attribut de classe. Pour " +"attribuer une nouvelle valeur à l'attribut, vous devez explicitement " +"utiliser le nom de classe dans l'affectation ::" + +#: ../Doc/faq/programming.rst:1575 +msgid "" +"``c.count`` also refers to ``C.count`` for any ``c`` such that " +"``isinstance(c, C)`` holds, unless overridden by ``c`` itself or by some " +"class on the base-class search path from ``c.__class__`` back to ``C``." +msgstr "" +"``c.count`` se réfère également à ``C.count`` pour tout ``c`` tel que " +"``isInstance (c, C)`` est vrai, sauf remplacement par ``c`` lui-même ou par " +"une classe sur le chemin de recherche de classe de base de ``c.__class__`` " +"jusqu'à ``C``." + +#: ../Doc/faq/programming.rst:1579 +msgid "" +"Caution: within a method of C, an assignment like ``self.count = 42`` " +"creates a new and unrelated instance named \"count\" in ``self``'s own " +"dict. Rebinding of a class-static data name must always specify the class " +"whether inside a method or not::" +msgstr "" +"Attention : dans une méthode de C, une affectation comme ``self.count = 42`` " +"crée une nouvelle instance sans rapport avec le nom ``count`` dans le " +"dictionnaire de données de ``self``. La redéfinition d'une donnée statique " +"de classe doit toujours spécifier la classe, que l'on soit à l'intérieur " +"d'une méthode ou non ::" + +#: ../Doc/faq/programming.rst:1586 +msgid "Static methods are possible::" +msgstr "Il est possible d'utiliser des méthodes statiques ::" + +#: ../Doc/faq/programming.rst:1594 +msgid "" +"However, a far more straightforward way to get the effect of a static method " +"is via a simple module-level function::" +msgstr "" +"Cependant, d'une manière beaucoup plus simple pour obtenir l'effet d'une " +"méthode statique se fait par une simple fonction au niveau du module ::" + +#: ../Doc/faq/programming.rst:1600 +msgid "" +"If your code is structured so as to define one class (or tightly related " +"class hierarchy) per module, this supplies the desired encapsulation." +msgstr "" +"Si votre code est structuré de manière à définir une classe (ou bien la " +"hiérarchie des classes connexes) par module, ceci fournira l'encapsulation " +"souhaitée." + +#: ../Doc/faq/programming.rst:1605 +msgid "How can I overload constructors (or methods) in Python?" +msgstr "Comment surcharger les constructeurs (ou méthodes) en Python ?" + +#: ../Doc/faq/programming.rst:1607 +msgid "" +"This answer actually applies to all methods, but the question usually comes " +"up first in the context of constructors." +msgstr "" +"Cette réponse s'applique en fait à toutes les méthodes, mais la question se " +"pose généralement dans le contexte des constructeurs." + +#: ../Doc/faq/programming.rst:1610 +msgid "In C++ you'd write" +msgstr "En C++, on écrirait" + +#: ../Doc/faq/programming.rst:1619 +msgid "" +"In Python you have to write a single constructor that catches all cases " +"using default arguments. For example::" +msgstr "" +"En Python, vous devez écrire un constructeur unique qui considère tous les " +"cas en utilisant des arguments par défaut. Par exemple ::" + +#: ../Doc/faq/programming.rst:1629 +msgid "This is not entirely equivalent, but close enough in practice." +msgstr "" +"Ce n'est pas tout à fait équivalent, mais suffisamment proche dans la " +"pratique." + +#: ../Doc/faq/programming.rst:1631 +msgid "You could also try a variable-length argument list, e.g. ::" +msgstr "" +"Vous pouvez aussi utiliser une liste d'arguments de longueur variable, par " +"exemple ::" + +#: ../Doc/faq/programming.rst:1636 +msgid "The same approach works for all method definitions." +msgstr "La même approche fonctionne pour toutes les définitions de méthode." + +#: ../Doc/faq/programming.rst:1640 +msgid "I try to use __spam and I get an error about _SomeClassName__spam." +msgstr "" +"J'essaie d'utiliser ``__spam`` et j'obtiens une erreur à propos de " +"``_SomeClassName__spam``." + +#: ../Doc/faq/programming.rst:1642 +msgid "" +"Variable names with double leading underscores are \"mangled\" to provide a " +"simple but effective way to define class private variables. Any identifier " +"of the form ``__spam`` (at least two leading underscores, at most one " +"trailing underscore) is textually replaced with ``_classname__spam``, where " +"``classname`` is the current class name with any leading underscores " +"stripped." +msgstr "" +"Les noms de variables commençant avec deux tirets bas sont « déformés », " +"c'est un moyen simple mais efficace de définir des variables privées à une " +"classe. Tout identifiant de la forme ``__spam`` (commençant par au moins " +"deux tirets bas et se terminant par au plus un tiret bas) est textuellement " +"remplacé par ``_classname__spam``, où ``classname`` est le nom de la classe " +"en cours sans les éventuels tirets bas du début." + +#: ../Doc/faq/programming.rst:1648 +msgid "" +"This doesn't guarantee privacy: an outside user can still deliberately " +"access the \"_classname__spam\" attribute, and private values are visible in " +"the object's ``__dict__``. Many Python programmers never bother to use " +"private variable names at all." +msgstr "" +"Cela ne garantit aucune protection : un utilisateur extérieur peut encore " +"délibérément accéder à l'attribut ``_classname__spam`` et les valeurs " +"privées sont visibles dans l'objet ``__dict__``. De nombreux programmeurs " +"Python ne prennent jamais la peine d'utiliser des noms de variable privés." + +#: ../Doc/faq/programming.rst:1655 +msgid "My class defines __del__ but it is not called when I delete the object." +msgstr "" +"Ma classe définit ``__del__`` mais elle n'est pas appelée lorsque je " +"supprime l'objet." + +#: ../Doc/faq/programming.rst:1657 +msgid "There are several possible reasons for this." +msgstr "Il y a plusieurs explications possibles." + +#: ../Doc/faq/programming.rst:1659 +msgid "" +"The del statement does not necessarily call :meth:`__del__` -- it simply " +"decrements the object's reference count, and if this reaches zero :meth:" +"`__del__` is called." +msgstr "" +"La commande *del* n'appelle pas forcément :meth:`__del__` — elle décrémente " +"simplement le compteur de références de l'objet et, si celui-ci arrive à " +"zéro, :meth:`__del__` est appelée." + +#: ../Doc/faq/programming.rst:1663 +msgid "" +"If your data structures contain circular links (e.g. a tree where each child " +"has a parent reference and each parent has a list of children) the reference " +"counts will never go back to zero. Once in a while Python runs an algorithm " +"to detect such cycles, but the garbage collector might run some time after " +"the last reference to your data structure vanishes, so your :meth:`__del__` " +"method may be called at an inconvenient and random time. This is " +"inconvenient if you're trying to reproduce a problem. Worse, the order in " +"which object's :meth:`__del__` methods are executed is arbitrary. You can " +"run :func:`gc.collect` to force a collection, but there *are* pathological " +"cases where objects will never be collected." +msgstr "" +"Si la structure de données contient des références circulaires (e.g. un " +"arbre dans lequel chaque fils référence son père, et chaque père garde une " +"liste de ses fils), le compteur de références n'arrivera jamais à zéro. " +"Python exécute périodiquement un algorithme pour détecter ce genre de " +"cycles, mais il peut se passer un certain temps entre le moment où la " +"structure est référencée pour la dernière fois et l'appel du ramasse-" +"miettes, donc la méthode :meth:`__del__` peut être appelée à un moment " +"aléatoire et pas opportun. C'est gênant pour essayer reproduire un problème. " +"Pire, l'ordre dans lequel les méthodes :meth:`__del__` des objets sont " +"appelées est arbitraire. Il est possible de forcer l'appel du ramasse-" +"miettes avec la fonction :func:`gc.collect`, mais il existe certains cas où " +"les objets ne seront jamais nettoyés." + +#: ../Doc/faq/programming.rst:1674 +msgid "" +"Despite the cycle collector, it's still a good idea to define an explicit " +"``close()`` method on objects to be called whenever you're done with them. " +"The ``close()`` method can then remove attributes that refer to subobjects. " +"Don't call :meth:`__del__` directly -- :meth:`__del__` should call " +"``close()`` and ``close()`` should make sure that it can be called more than " +"once for the same object." +msgstr "" +"Bien que le ramasse-miette de cycles existe, il est tout de même recommandé " +"de définir une méthode ``close()`` explicite sur des objets, et de l'appeler " +"quand leur cycle de vie s'achève. Cette méthode ``close()`` peut alors " +"supprimer les attributs qui référencent des sous-objets. Il vaut mieux ne " +"pas appeler la méthode :meth:`__del__` directement, mais la méthode :meth:" +"`__del__` devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir " +"être appelée plusieurs fois sur le même objet." + +#: ../Doc/faq/programming.rst:1681 +msgid "" +"Another way to avoid cyclical references is to use the :mod:`weakref` " +"module, which allows you to point to objects without incrementing their " +"reference count. Tree data structures, for instance, should use weak " +"references for their parent and sibling references (if they need them!)." +msgstr "" +"Une alternative pour éviter les références cycliques consiste à utiliser le " +"module :mod:`weakref`, qui permet de faire référence à des objets sans " +"incrémenter leur compteur de références. Par exemple, les structures " +"d'arbres devraient utiliser des références faibles entre pères et fils (si " +"nécessaire !)." + +#: ../Doc/faq/programming.rst:1694 +msgid "" +"Finally, if your :meth:`__del__` method raises an exception, a warning " +"message is printed to :data:`sys.stderr`." +msgstr "" +"Enfin, si la méthode :meth:`__del__` lève une exception, un message " +"d'avertissement s'affiche dans :data:`sys.stderr`." + +#: ../Doc/faq/programming.rst:1699 +msgid "How do I get a list of all instances of a given class?" +msgstr "Comment obtenir toutes les instances d'une classe ?" + +#: ../Doc/faq/programming.rst:1701 +msgid "" +"Python does not keep track of all instances of a class (or of a built-in " +"type). You can program the class's constructor to keep track of all " +"instances by keeping a list of weak references to each instance." +msgstr "" +"Python ne tient pas de registre de toutes les instances d'une classe (ni de " +"n'importe quel type natif). Il est cependant possible de programmer le " +"constructeur de la classe de façon à tenir un tel registre, en maintenant " +"une liste de références faibles vers chaque instance." + +#: ../Doc/faq/programming.rst:1707 +msgid "Why does the result of ``id()`` appear to be not unique?" +msgstr "" +"Pourquoi le résultat de ``id()`` peut-il être le même pour deux objets " +"différents ?" + +#: ../Doc/faq/programming.rst:1709 +msgid "" +"The :func:`id` builtin returns an integer that is guaranteed to be unique " +"during the lifetime of the object. Since in CPython, this is the object's " +"memory address, it happens frequently that after an object is deleted from " +"memory, the next freshly created object is allocated at the same position in " +"memory. This is illustrated by this example:" +msgstr "" +"La fonction native :func:`id` renvoie un entier dont l'unicité est garantie " +"durant toute la vie de l'objet. Vu qu'en CPython cet entier est en réalité " +"l'adresse mémoire de l'objet, il est fréquent qu'un nouvel objet soit alloué " +"à une adresse mémoire identique à celle d'un objet venant d'être supprimé. " +"Comme l'illustre le code suivant :" + +#: ../Doc/faq/programming.rst:1720 +msgid "" +"The two ids belong to different integer objects that are created before, and " +"deleted immediately after execution of the ``id()`` call. To be sure that " +"objects whose id you want to examine are still alive, create another " +"reference to the object:" +msgstr "" +"Les deux identifiants appartiennent à des objets entiers créés juste avant " +"l'appel à ``id()`` et détruits immédiatement après. Pour s'assurer que les " +"objets dont on veut examiner les identifiants sont toujours en vie, créons " +"une nouvelle référence à l'objet :" + +#: ../Doc/faq/programming.rst:1733 +msgid "Modules" +msgstr "Modules" + +#: ../Doc/faq/programming.rst:1736 +msgid "How do I create a .pyc file?" +msgstr "Comment créer des fichiers ``.pyc`` ?" + +#: ../Doc/faq/programming.rst:1738 +msgid "" +"When a module is imported for the first time (or when the source file has " +"changed since the current compiled file was created) a ``.pyc`` file " +"containing the compiled code should be created in a ``__pycache__`` " +"subdirectory of the directory containing the ``.py`` file. The ``.pyc`` " +"file will have a filename that starts with the same name as the ``.py`` " +"file, and ends with ``.pyc``, with a middle component that depends on the " +"particular ``python`` binary that created it. (See :pep:`3147` for details.)" +msgstr "" +"Quand un module est importé pour la première fois (ou si le fichier source a " +"été modifié depuis la création du fichier compilé), un fichier ``.pyc`` " +"contenant le code précompilé est créé dans un sous-dossier ``__pycache__`` " +"du dossier contentant le fichier ``.py``. Le nom du fichier ``.pyc`` est " +"identique au fichier ``.py`` et se termine par ``.pyc``, avec une partie " +"centrale qui dépend du binaire ``python`` qui l'a créé (voir la :pep:`3147` " +"pour de plus amples précisions)." + +#: ../Doc/faq/programming.rst:1746 +msgid "" +"One reason that a ``.pyc`` file may not be created is a permissions problem " +"with the directory containing the source file, meaning that the " +"``__pycache__`` subdirectory cannot be created. This can happen, for " +"example, if you develop as one user but run as another, such as if you are " +"testing with a web server." +msgstr "" +"Une des raisons pour lesquelles un fichier ``.pyc`` peut ne pas être créé " +"est un problème de droits sur le dossier qui contient le fichier source, ce " +"qui veut dire qu'il est impossible de créer le sous-dossier ``__pycache__``. " +"Ceci peut arriver, par exemple, si vous développez en tant qu'un certain " +"utilisateur, mais que le code est exécuté en tant qu'un autre utilisateur, " +"par exemple pour tester un serveur Web." + +#: ../Doc/faq/programming.rst:1751 +msgid "" +"Unless the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable is set, " +"creation of a .pyc file is automatic if you're importing a module and Python " +"has the ability (permissions, free space, etc...) to create a " +"``__pycache__`` subdirectory and write the compiled module to that " +"subdirectory." +msgstr "" +"La création du fichier ``.pyc`` est automatique durant l'import d'un module " +"si Python est capable (en termes de droits, d'espace disque, etc) de créer " +"un sous-dossier ``__pycache__`` et d'écrire le module ainsi compilé dans ce " +"sous-répertoire, à moins que la variable d'environnement :envvar:" +"`PYTHONDONTWRITEBYTECODE` soit définie." + +#: ../Doc/faq/programming.rst:1756 +msgid "" +"Running Python on a top level script is not considered an import and no ``." +"pyc`` will be created. For example, if you have a top-level module ``foo." +"py`` that imports another module ``xyz.py``, when you run ``foo`` (by typing " +"``python foo.py`` as a shell command), a ``.pyc`` will be created for " +"``xyz`` because ``xyz`` is imported, but no ``.pyc`` file will be created " +"for ``foo`` since ``foo.py`` isn't being imported." +msgstr "" +"Exécuter du Python dans un script de plus haut niveau n'est pas considéré " +"comme un import et le fichier ``.pyc`` n'est pas créé. Par exemple, si un " +"module de plus haut niveau ``foo.py`` importe un autre module ``xyz.py``, " +"alors à l'exécution de ``foo`` (en tapant ``python foo.py`` dans la " +"console), un fichier ``.pyc`` est créé pour ``xyz`` mais pas pour ``foo`` " +"car ``foo.py`` n'est pas importé." + +#: ../Doc/faq/programming.rst:1763 +msgid "" +"If you need to create a ``.pyc`` file for ``foo`` -- that is, to create a ``." +"pyc`` file for a module that is not imported -- you can, using the :mod:" +"`py_compile` and :mod:`compileall` modules." +msgstr "" +"Pour créer un fichier ``.pyc`` pour ``foo`` — c'est-à-dire créer un fichier " +"``.pyc`` pour un module qui n'est pas importé — il existe les modules :mod:" +"`py_compile` et :mod:`compileall`." + +#: ../Doc/faq/programming.rst:1767 +msgid "" +"The :mod:`py_compile` module can manually compile any module. One way is to " +"use the ``compile()`` function in that module interactively::" +msgstr "" +"Le module :mod:`py_compile` peut compiler n'importe quel module " +"manuellement. Il est ainsi possible d'appeler la fonction ``compile()`` de " +"manière interactive ::" + +#: ../Doc/faq/programming.rst:1773 +msgid "" +"This will write the ``.pyc`` to a ``__pycache__`` subdirectory in the same " +"location as ``foo.py`` (or you can override that with the optional parameter " +"``cfile``)." +msgstr "" +"Ces lignes écrivent le ``.pyc`` dans un sous-dossier ``__pycache__`` à côté " +"de ``foo.py`` (le paramètre optionnel ``cfile`` permet de changer ce " +"comportement)." + +#: ../Doc/faq/programming.rst:1777 +msgid "" +"You can also automatically compile all files in a directory or directories " +"using the :mod:`compileall` module. You can do it from the shell prompt by " +"running ``compileall.py`` and providing the path of a directory containing " +"Python files to compile::" +msgstr "" +"Tous les fichiers d'un ou plusieurs dossiers peuvent aussi être compilés " +"avec le module :mod:`compileall`. C'est possible depuis l'invite de commande " +"en exécutant ``compileall.py`` avec le chemin du dossier contenant les " +"fichiers Python à compiler ::" + +#: ../Doc/faq/programming.rst:1786 +msgid "How do I find the current module name?" +msgstr "Comment obtenir le nom du module actuel ?" + +#: ../Doc/faq/programming.rst:1788 +msgid "" +"A module can find out its own module name by looking at the predefined " +"global variable ``__name__``. If this has the value ``'__main__'``, the " +"program is running as a script. Many modules that are usually used by " +"importing them also provide a command-line interface or a self-test, and " +"only execute this code after checking ``__name__``::" +msgstr "" +"Un module peut déterminer son propre nom en examinant la variable globale " +"prédéfinie ``__name__``. Si celle-ci vaut ``'__main__'``, c'est que le " +"programme est exécuté comme un script. Beaucoup de modules qui doivent " +"normalement être importés pour pouvoir être utilisés fournissent aussi une " +"interface en ligne de commande ou un test automatique. Ils n'exécutent cette " +"portion du code qu'après avoir vérifié la valeur de ``__name__`` ::" + +#: ../Doc/faq/programming.rst:1803 +msgid "How can I have modules that mutually import each other?" +msgstr "Comment avoir des modules qui s'importent mutuellement ?" + +#: ../Doc/faq/programming.rst:1805 +msgid "Suppose you have the following modules:" +msgstr "Considérons les modules suivants :" + +#: ../Doc/faq/programming.rst:1807 +msgid "foo.py::" +msgstr "*foo.py* ::" + +#: ../Doc/faq/programming.rst:1812 +msgid "bar.py::" +msgstr "*bar.py* ::" + +#: ../Doc/faq/programming.rst:1817 +msgid "The problem is that the interpreter will perform the following steps:" +msgstr "Le problème réside dans les étapes que l'interpréteur va réaliser :" + +#: ../Doc/faq/programming.rst:1819 +msgid "main imports foo" +msgstr "*main* importe *foo*" + +#: ../Doc/faq/programming.rst:1820 +msgid "Empty globals for foo are created" +msgstr "Les variables globales (vides) de *foo* sont créées" + +#: ../Doc/faq/programming.rst:1821 +msgid "foo is compiled and starts executing" +msgstr "*foo* est compilé et commence à s'exécuter" + +#: ../Doc/faq/programming.rst:1822 +msgid "foo imports bar" +msgstr "*foo* importe *bar*" + +#: ../Doc/faq/programming.rst:1823 +msgid "Empty globals for bar are created" +msgstr "Les variables globales (vides) de *bar* sont créées" + +#: ../Doc/faq/programming.rst:1824 +msgid "bar is compiled and starts executing" +msgstr "*bar* est compilé et commence à s'exécuter" + +#: ../Doc/faq/programming.rst:1825 +msgid "" +"bar imports foo (which is a no-op since there already is a module named foo)" +msgstr "" +"*bar* importe *foo* (en réalité, rien ne passe car il y a déjà un module " +"appelé *foo*)" + +#: ../Doc/faq/programming.rst:1826 +msgid "bar.foo_var = foo.foo_var" +msgstr "bar.foo_var = foo.foo_var" + +#: ../Doc/faq/programming.rst:1828 +msgid "" +"The last step fails, because Python isn't done with interpreting ``foo`` yet " +"and the global symbol dictionary for ``foo`` is still empty." +msgstr "" +"La dernière étape échoue car Python n'a pas fini d'interpréter ``foo`` et le " +"dictionnaire global des symboles de ``foo`` est encore vide." + +#: ../Doc/faq/programming.rst:1831 +msgid "" +"The same thing happens when you use ``import foo``, and then try to access " +"``foo.foo_var`` in global code." +msgstr "" +"Le même phénomène arrive quand on utilise ``import foo``, et qu'on essaye " +"ensuite d'accéder à ``foo.foo_var`` dans le code global." + +#: ../Doc/faq/programming.rst:1834 +msgid "There are (at least) three possible workarounds for this problem." +msgstr "Il y a (au moins) trois façons de contourner ce problème." + +#: ../Doc/faq/programming.rst:1836 +msgid "" +"Guido van Rossum recommends avoiding all uses of ``from import ..." +"``, and placing all code inside functions. Initializations of global " +"variables and class variables should use constants or built-in functions " +"only. This means everything from an imported module is referenced as " +"``.``." +msgstr "" +"Guido van Rossum déconseille d'utiliser ``from import ...`` et de " +"mettre tout le code dans des fonctions. L'initialisation des variables " +"globales et des variables de classe ne doit utiliser que des constantes ou " +"des fonctions natives. Ceci implique que tout ce qui est fourni par un " +"module soit référencé par ``.``." + +#: ../Doc/faq/programming.rst:1841 +msgid "" +"Jim Roskind suggests performing steps in the following order in each module:" +msgstr "" +"Jim Roskind recommande d'effectuer les étapes suivantes dans cet ordre dans " +"chaque module :" + +#: ../Doc/faq/programming.rst:1843 +msgid "" +"exports (globals, functions, and classes that don't need imported base " +"classes)" +msgstr "" +"les exportations (variables globales, fonctions et les classes qui ne " +"nécessitent d'importer des classes de base)" + +#: ../Doc/faq/programming.rst:1845 +msgid "``import`` statements" +msgstr "les instructions ``import``" + +#: ../Doc/faq/programming.rst:1846 +msgid "" +"active code (including globals that are initialized from imported values)." +msgstr "" +"le code (avec les variables globales qui sont initialisées à partir de " +"valeurs importées)." + +#: ../Doc/faq/programming.rst:1848 +msgid "" +"van Rossum doesn't like this approach much because the imports appear in a " +"strange place, but it does work." +msgstr "" +"van Rossum désapprouve cette approche car les importations se trouvent à un " +"endroit bizarre, mais cela fonctionne." + +#: ../Doc/faq/programming.rst:1851 +msgid "" +"Matthias Urlichs recommends restructuring your code so that the recursive " +"import is not necessary in the first place." +msgstr "" +"Matthias Urlichs conseille de restructurer le code pour éviter les " +"importations récursives." + +#: ../Doc/faq/programming.rst:1854 +msgid "These solutions are not mutually exclusive." +msgstr "Ces solutions peuvent être combinées." + +#: ../Doc/faq/programming.rst:1858 +msgid "__import__('x.y.z') returns ; how do I get z?" +msgstr "" +"``__import__('x.y.z')`` renvoie ```` ; comment accéder à ``z`` ?" + +#: ../Doc/faq/programming.rst:1860 +msgid "" +"Consider using the convenience function :func:`~importlib.import_module` " +"from :mod:`importlib` instead::" +msgstr "" +"Utilisez plutôt la fonction :func:`~importlib.import_module` de :mod:" +"`importlib` ::" + +#: ../Doc/faq/programming.rst:1867 +msgid "" +"When I edit an imported module and reimport it, the changes don't show up. " +"Why does this happen?" +msgstr "" +"Quand j'édite un module et que je le réimporte, je ne vois pas les " +"changements. Pourquoi ?" + +#: ../Doc/faq/programming.rst:1869 +msgid "" +"For reasons of efficiency as well as consistency, Python only reads the " +"module file on the first time a module is imported. If it didn't, in a " +"program consisting of many modules where each one imports the same basic " +"module, the basic module would be parsed and re-parsed many times. To force " +"re-reading of a changed module, do this::" +msgstr "" +"Pour des raisons de performance et de cohérence, Python ne lit le fichier " +"d'un module que la première fois où celui-ci est importé. Si ce n'était pas " +"le cas, dans un programme composé d'un très grand nombre de modules qui " +"importent tous le même module de base, ce module de base serait analysé et " +"ré-analysé un très grand nombre de fois. Pour forcer la relecture d'un " +"module, il faut faire ::" + +#: ../Doc/faq/programming.rst:1879 +msgid "" +"Warning: this technique is not 100% fool-proof. In particular, modules " +"containing statements like ::" +msgstr "" +"Attention, cette technique ne marche pas systématiquement. En particulier, " +"les modules qui contiennent des instructions comme ::" + +#: ../Doc/faq/programming.rst:1884 +msgid "" +"will continue to work with the old version of the imported objects. If the " +"module contains class definitions, existing class instances will *not* be " +"updated to use the new class definition. This can result in the following " +"paradoxical behaviour::" +msgstr "" +"continuent de fonctionner avec l'ancienne version des objets importés. Si le " +"module contient une définition de classe, les instances déjà existantes de " +"celle-ci ne sont *pas* mises à jour avec la nouvelle définition de la " +"classe. Ceci peut conduire au comportement paradoxal suivant ::" + +#: ../Doc/faq/programming.rst:1897 +msgid "" +"The nature of the problem is made clear if you print out the \"identity\" of " +"the class objects::" +msgstr "" +"La nature du problème apparaît clairement en affichant « l'identité » des " +"objets de la classe ::" + +#~ msgid "Dictionaries" +#~ msgstr "Dictionnaires" + +#~ msgid "" +#~ "How can I get a dictionary to store and display its keys in a consistent " +#~ "order?" +#~ msgstr "" +#~ "Comment puis-je faire stocker et afficher les clefs d'un dictionnaire " +#~ "dans un ordre cohérent ?" diff --git a/faq/windows.po b/faq/windows.po new file mode 100644 index 000000000..6d4924b6f --- /dev/null +++ b/faq/windows.po @@ -0,0 +1,600 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2019-08-21 10:59+0200\n" +"Last-Translator: Zepmanbc \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" + +#: ../Doc/faq/windows.rst:9 +msgid "Python on Windows FAQ" +msgstr "FAQ : Python et Windows" + +#: ../Doc/faq/windows.rst:12 +msgid "Contents" +msgstr "Sommaire" + +#: ../Doc/faq/windows.rst:22 +msgid "How do I run a Python program under Windows?" +msgstr "Comment exécuter un programme Python sous Windows ?" + +#: ../Doc/faq/windows.rst:24 +msgid "" +"This is not necessarily a straightforward question. If you are already " +"familiar with running programs from the Windows command line then everything " +"will seem obvious; otherwise, you might need a little more guidance." +msgstr "" +"Ce n'est pas forcément une question simple. Si vous êtes déjà familier avec " +"le lancement de programmes depuis la ligne de commande de Windows alors tout " +"semblera évident ; sinon, vous pourriez avoir besoin d'être un peu guidé." + +#: ../Doc/faq/windows.rst:28 +msgid "" +"Unless you use some sort of integrated development environment, you will end " +"up *typing* Windows commands into what is variously referred to as a \"DOS " +"window\" or \"Command prompt window\". Usually you can create such a window " +"from your search bar by searching for ``cmd``. You should be able to " +"recognize when you have started such a window because you will see a Windows " +"\"command prompt\", which usually looks like this:" +msgstr "" +"À moins que vous n'utilisiez une sorte d'environnement de développement, " +"vous finirez par *taper* des commandes Windows dans ce qui est diversement " +"appelé une \"fenêtre DOS\" ou \"invite de commande Windows\". En général " +"vous pouvez ouvrir un telle fenêtre depuis votre barre de recherche en " +"cherchant ``cmd``. Vous devriez être capable de reconnaitre quand vous avez " +"lancé une telle fenêtre parce que vous verrez une invite de commande " +"Windows, qui en en général ressemble à ça :" + +#: ../Doc/faq/windows.rst:39 +msgid "" +"The letter may be different, and there might be other things after it, so " +"you might just as easily see something like:" +msgstr "" +"La lettre peut être différente, et il peut y avoir d'autres choses à la " +"suite, alors il se peut que ça ressemble également à ça :" + +#: ../Doc/faq/windows.rst:46 +msgid "" +"depending on how your computer has been set up and what else you have " +"recently done with it. Once you have started such a window, you are well on " +"the way to running Python programs." +msgstr "" +"selon la configuration de votre ordinateur et ce que vous avez récemment " +"fait avec. Une fois que vous avez ouvert cette fenêtre, vous êtes bien " +"partis pour pouvoir lancer des programmes Python." + +#: ../Doc/faq/windows.rst:50 +msgid "" +"You need to realize that your Python scripts have to be processed by another " +"program called the Python *interpreter*. The interpreter reads your script, " +"compiles it into bytecodes, and then executes the bytecodes to run your " +"program. So, how do you arrange for the interpreter to handle your Python?" +msgstr "" +"Retenez que vos scripts Python doivent être traités par un autre programme " +"appelé \"l’interpréteur\" Python. L’interpréteur lit votre script, le " +"compile en *bytecode*, et exécute le *bytecode* pour faire tourner votre " +"programme. Alors, comment faire pour donner votre code Python à " +"l'interpréteur ?" + +#: ../Doc/faq/windows.rst:55 +msgid "" +"First, you need to make sure that your command window recognises the word " +"\"py\" as an instruction to start the interpreter. If you have opened a " +"command window, you should try entering the command ``py`` and hitting " +"return:" +msgstr "" +"Tout d'abord, vous devez vous assurer que votre fenêtre d'invite de commande " +"reconnaît le mot \"python\" comme une instruction pour démarrer " +"l'interpréteur. Si vous avez ouvert une invite de commande, entrez la " +"commande ``py``, puis appuyez sur entrée :" + +#: ../Doc/faq/windows.rst:64 +msgid "You should then see something like:" +msgstr "Vous devez voir quelque chose comme ça :" + +#: ../Doc/faq/windows.rst:72 +msgid "" +"You have started the interpreter in \"interactive mode\". That means you can " +"enter Python statements or expressions interactively and have them executed " +"or evaluated while you wait. This is one of Python's strongest features. " +"Check it by entering a few expressions of your choice and seeing the results:" +msgstr "" +"Vous avez lancé l'interpréteur dans son \"mode interactif\". Cela signifie " +"que vous pouvez entrer des instructions ou des expressions Python de manière " +"interactive pour qu'elles soient exécutées. Il s'agit là d'une des plus " +"puissantes fonctionnalités de Python. Vous pouvez le vérifier en entrant " +"quelques commandes de votre choix et en regardant le résultat :" + +#: ../Doc/faq/windows.rst:84 +msgid "" +"Many people use the interactive mode as a convenient yet highly programmable " +"calculator. When you want to end your interactive Python session, call the :" +"func:`exit` function or hold the :kbd:`Ctrl` key down while you enter a :kbd:" +"`Z`, then hit the \":kbd:`Enter`\" key to get back to your Windows command " +"prompt." +msgstr "" +"Beaucoup de gens utilisent le mode interactif comme une calculatrice " +"pratique mais néanmoins hautement programmable. Lorsque vous souhaitez " +"mettre fin à votre session Python interactive, appelez la fonction :func:" +"`exit` ou maintenez la touche :kbd:`Ctrl` enfoncée pendant que vous entrez " +"un :kbd:`Z`, puis appuyez sur la touche \":kbd:`Enter`\" pour revenir à " +"votre invite de commande Windows." + +#: ../Doc/faq/windows.rst:90 +msgid "" +"You may also find that you have a Start-menu entry such as :menuselection:" +"`Start --> Programs --> Python 3.x --> Python (command line)` that results " +"in you seeing the ``>>>`` prompt in a new window. If so, the window will " +"disappear after you call the :func:`exit` function or enter the :kbd:`Ctrl-" +"Z` character; Windows is running a single \"python\" command in the window, " +"and closes it when you terminate the interpreter." +msgstr "" +"Peut-être avez-vous remarqué une nouvelle entrée dans votre menu Démarrer " +"telle que :menuselection:`Démarrer --> Programmes --> Python 3.x --> Python " +"(ligne de commande)` qui a pour résultat que vous voyez l'invite ``>>>`` " +"dans une nouvelle fenêtre. Si oui, la fenêtre va disparaître quand vous " +"appellerez la fonction :func:`exit` ou entrez le caractère :kbd:`Ctrl-Z` ; " +"Windows exécute une commande \"python\" dans la fenêtre et ferme celle-ci " +"lorsque vous fermez l'interpréteur." + +#: ../Doc/faq/windows.rst:97 +msgid "" +"Now that we know the ``py`` command is recognized, you can give your Python " +"script to it. You'll have to give either an absolute or a relative path to " +"the Python script. Let's say your Python script is located in your desktop " +"and is named ``hello.py``, and your command prompt is nicely opened in your " +"home directory so you're seeing something similar to::" +msgstr "" +"Maintenant que nous savons que la commande ``py`` est reconnue, vous pouvez " +"lui donner votre script Python. Vous devez donner le chemin absolu ou " +"relatif du script Python. Disons que votre script Python est situé sur votre " +"bureau et est nommé ``hello.py``, et votre invite de commande est bien " +"ouvert dans votre répertoire d’accueil, alors vous voyez quelque chose " +"comme ::" + +#: ../Doc/faq/windows.rst:106 +msgid "" +"So now you'll ask the ``py`` command to give your script to Python by typing " +"``py`` followed by your script path::" +msgstr "" +"Alors maintenant, vous demanderez à la commande ``py`` de donner votre " +"script à Python en tapant ``py`` suivi de votre chemin de script ::" + +#: ../Doc/faq/windows.rst:114 +msgid "How do I make Python scripts executable?" +msgstr "Comment rendre des scripts Python exécutables ?" + +#: ../Doc/faq/windows.rst:116 +msgid "" +"On Windows, the standard Python installer already associates the .py " +"extension with a file type (Python.File) and gives that file type an open " +"command that runs the interpreter (``D:\\Program Files\\Python\\python.exe " +"\"%1\" %*``). This is enough to make scripts executable from the command " +"prompt as 'foo.py'. If you'd rather be able to execute the script by simple " +"typing 'foo' with no extension you need to add .py to the PATHEXT " +"environment variable." +msgstr "" +"Sous Windows, l'installateur Python associe l'extension *.py* avec un type " +"de fichier (Python.File) et une commande qui lance l’interpréteur (``D:" +"\\Program Files\\Python\\python.exe \"%1\" %*``). Cela suffit pour pouvoir " +"exécuter les scripts Python depuis la ligne de commande en saisissant *foo." +"py*. Si vous souhaitez pouvoir exécuter les scripts en saisissant simplement " +"*foo* sans l’extension, vous devez ajouter *.py* au paramètre " +"d’environnement PATHEXT." + +#: ../Doc/faq/windows.rst:124 +msgid "Why does Python sometimes take so long to start?" +msgstr "Pourquoi Python met-il du temps à démarrer ?" + +#: ../Doc/faq/windows.rst:126 +msgid "" +"Usually Python starts very quickly on Windows, but occasionally there are " +"bug reports that Python suddenly begins to take a long time to start up. " +"This is made even more puzzling because Python will work fine on other " +"Windows systems which appear to be configured identically." +msgstr "" +"Normalement, sous Windows, Python se lance très rapidement, mais parfois des " +"rapports d'erreurs indiquent que Python commence soudain à prendre beaucoup " +"de temps pour démarrer. C'est d'autant plus intrigant que Python fonctionne " +"correctement avec d'autres Windows configurés de façon similaire." + +#: ../Doc/faq/windows.rst:131 +msgid "" +"The problem may be caused by a misconfiguration of virus checking software " +"on the problem machine. Some virus scanners have been known to introduce " +"startup overhead of two orders of magnitude when the scanner is configured " +"to monitor all reads from the filesystem. Try checking the configuration of " +"virus scanning software on your systems to ensure that they are indeed " +"configured identically. McAfee, when configured to scan all file system read " +"activity, is a particular offender." +msgstr "" +"Le problème peut venir d'un antivirus mal configuré. Certains antivirus sont " +"connus pour doubler le temps de démarrage lorsqu'ils sont configurés pour " +"surveiller toutes les lectures du système de fichiers. Essayez de regarder " +"si les antivirus des deux machines sont bien paramétrés à l'identique. " +"*McAfee* est particulièrement problématique lorsqu'il est paramétré pour " +"surveiller toutes les lectures du système de fichiers." + +#: ../Doc/faq/windows.rst:141 +msgid "How do I make an executable from a Python script?" +msgstr "Comment construire un exécutable depuis un script Python ?" + +#: ../Doc/faq/windows.rst:143 +msgid "" +"See `cx_Freeze `_ for a " +"distutils extension that allows you to create console and GUI executables " +"from Python code. `py2exe `_, the most popular " +"extension for building Python 2.x-based executables, does not yet support " +"Python 3 but a version that does is in development." +msgstr "" +"Regardez `cx_Freeze `_ pour " +"une extension *distutils* qui permet de créer des exécutables console et IUG " +"à partir de code Python. `py2exe `_ est l'extension " +"la plus populaire pour construire des exécutables basés sur Python 2.x mais " +"l'implémentation en Python 3 est en cours de développement." + +#: ../Doc/faq/windows.rst:151 +msgid "Is a ``*.pyd`` file the same as a DLL?" +msgstr "Est-ce qu'un fichier ``*.pyd`` est la même chose qu'une DLL ?" + +#: ../Doc/faq/windows.rst:153 +msgid "" +"Yes, .pyd files are dll's, but there are a few differences. If you have a " +"DLL named ``foo.pyd``, then it must have a function ``PyInit_foo()``. You " +"can then write Python \"import foo\", and Python will search for foo.pyd (as " +"well as foo.py, foo.pyc) and if it finds it, will attempt to call " +"``PyInit_foo()`` to initialize it. You do not link your .exe with foo.lib, " +"as that would cause Windows to require the DLL to be present." +msgstr "" +"Oui, les fichiers *.pyd* sont des fichiers *dll*, mais il y a quelques " +"différences. Si vous avez une *DLL* ``foo.pyd``, celle-ci doit posséder une " +"fonction ``PyInit_foo()``. Vous pouvez alors écrire en Python « *import " +"foo* » et Python recherchera le fichier *foo.pyd* (ainsi que *foo.py* et " +"*foo.pyc*); s'il le trouve, il tentera d'appeler ``PyInit_foo()`` pour " +"l'initialiser. Ne liez pas votre *.exe* avec *foo.lib* car dans ce cas " +"Windows aura besoin de la DLL." + +#: ../Doc/faq/windows.rst:160 +msgid "" +"Note that the search path for foo.pyd is PYTHONPATH, not the same as the " +"path that Windows uses to search for foo.dll. Also, foo.pyd need not be " +"present to run your program, whereas if you linked your program with a dll, " +"the dll is required. Of course, foo.pyd is required if you want to say " +"``import foo``. In a DLL, linkage is declared in the source code with " +"``__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:169 +msgid "How can I embed Python into a Windows application?" +msgstr "Comment puis-je intégrer Python dans une application Windows ?" + +#: ../Doc/faq/windows.rst:171 +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:173 +msgid "" +"Do _not_ build Python into your .exe file directly. On Windows, Python must " +"be a DLL to handle importing modules that are themselves DLL's. (This is " +"the first key undocumented fact.) Instead, link to :file:`python{NN}.dll`; " +"it is typically installed in ``C:\\Windows\\System``. *NN* is the Python " +"version, a number such as \"33\" for Python 3.3." +msgstr "" +"Ne compilez **pas** Python directement dans votre fichier *.exe*. Sous " +"Windows, Python doit être une DLL pour pouvoir importer des modules qui sont " +"eux-mêmes des DLL (ceci constitue une information de première importance non " +"documentée). Au lieu de cela faites un lien vers :file:`python{NN}.dll` qui " +"est généralement placé dans ``C:\\Windows\\System``. *NN* étant la version " +"Python, par exemple « 33 » pour Python 3.3." + +#: ../Doc/faq/windows.rst:179 +msgid "" +"You can link to Python in two different ways. Load-time linking means " +"linking against :file:`python{NN}.lib`, while run-time linking means linking " +"against :file:`python{NN}.dll`. (General note: :file:`python{NN}.lib` is " +"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:185 +msgid "" +"Run-time linking greatly simplifies link options; everything happens at run " +"time. Your code must load :file:`python{NN}.dll` using the Windows " +"``LoadLibraryEx()`` routine. The code must also use access routines and " +"data in :file:`python{NN}.dll` (that is, Python's C API's) using pointers " +"obtained by the Windows ``GetProcAddress()`` routine. Macros can make using " +"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:192 +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:197 +msgid "" +"If you use SWIG, it is easy to create a Python \"extension module\" that " +"will make the app's data and methods available to Python. SWIG will handle " +"just about all the grungy details for you. The result is C code that you " +"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:203 +msgid "" +"SWIG will create an init function (a C function) whose name depends on the " +"name of the extension module. For example, if the name of the module is " +"leo, the init function will be called initleo(). If you use SWIG shadow " +"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:209 +msgid "" +"The reason you can link the C code in step 2 into your .exe file is that " +"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:213 +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:224 +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:227 +msgid "" +"Problem 1: The so-called \"Very High Level\" functions that take FILE * " +"arguments will not work in a multi-compiler environment because each " +"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:232 +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:241 +msgid "" +"Alas, Py_None is a macro that expands to a reference to a complex data " +"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:249 +msgid "" +"It may be possible to use SWIG's ``%typemap`` command to make the change " +"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:253 +msgid "" +"Using a Python shell script to put up a Python interpreter window from " +"inside your Windows app is not a good idea; the resulting window will be " +"independent of your app's windowing system. Rather, you (or the " +"wxPythonWindow class) should create a \"native\" interpreter window. It is " +"easy to connect that window to the Python interpreter. You can redirect " +"Python's i/o to _any_ object that supports read and write, so all you need " +"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:262 +msgid "How do I keep editors from inserting tabs into my Python source?" +msgstr "" +"Comment empêcher mon éditeur d'utiliser des tabulations dans mes fichiers " +"Python ?" + +#: ../Doc/faq/windows.rst:264 +msgid "" +"The FAQ does not recommend using tabs, and the Python style guide, :pep:`8`, " +"recommends 4 spaces for distributed Python code; this is also the Emacs " +"python-mode default." +msgstr "" +"La FAQ ne recommande pas l'utilisation des indentations et le guide " +"stylistique de Python, la :pep:`8`, recommande l'utilisation de 4 espaces " +"dans les codes Python. C'est aussi le comportement par défaut d'Emacs avec " +"Python." + +#: ../Doc/faq/windows.rst:268 +msgid "" +"Under any editor, mixing tabs and spaces is a bad idea. MSVC is no " +"different in this respect, and is easily configured to use spaces: Take :" +"menuselection:`Tools --> Options --> Tabs`, and for file type \"Default\" " +"set \"Tab size\" and \"Indent size\" to 4, and select the \"Insert spaces\" " +"radio button." +msgstr "" +"Quel que soit votre éditeur, mélanger des tabulations et des espaces est une " +"mauvaise idée. *Visual C++*, par exemple, peut être facilement configuré " +"pour utiliser des espaces : allez dans :menuselection:`Tools --> Options --> " +"Tabs` et pour le type de fichier par défaut, vous devez mettre *Tab size* et " +"*Indent size* à 4, puis sélectionner *Insert spaces*." + +#: ../Doc/faq/windows.rst:273 +msgid "" +"Python raises :exc:`IndentationError` or :exc:`TabError` if mixed tabs and " +"spaces are causing problems in leading whitespace. You may also run the :mod:" +"`tabnanny` module to check a directory tree in batch mode." +msgstr "" +"Python va lever :exc:`IndentationError` ou :exc:`TabError` si un mélange de " +"tabulation et d’indentation pose problème en début de ligne. Vous pouvez " +"aussi utiliser le module :mod:`tabnanny` pour détecter ces erreurs." + +#: ../Doc/faq/windows.rst:280 +msgid "How do I check for a keypress without blocking?" +msgstr "" +"Comment puis-je vérifier de manière non bloquante qu'une touche a été " +"pressée ?" + +#: ../Doc/faq/windows.rst:282 +msgid "" +"Use the msvcrt module. This is a standard Windows-specific extension " +"module. It defines a function ``kbhit()`` which checks whether a keyboard " +"hit is present, and ``getch()`` which gets one character without echoing it." +msgstr "" +"Utilisez le module ``msvcrt``. C'est une extension standard spécifique à " +"Windows, qui définit une fonction ``kbhit()`` qui vérifie si une pression de " +"touche s'est produite, et ``getch()`` qui récupère le caractère sans " +"l'afficher." + +#, fuzzy +#~ msgid "How do I emulate os.kill() in Windows?" +#~ msgstr "Comment émuler ``os.kill()`` sur Windows ?" + +#~ msgid "How do I extract the downloaded documentation on Windows?" +#~ msgstr "Comment décompresser la documentation téléchargée sous Windows ?" + +#~ msgid "" +#~ "Sometimes, when you download the documentation package to a Windows " +#~ "machine using a web browser, the file extension of the saved file ends up " +#~ "being .EXE. This is a mistake; the extension should be .TGZ." +#~ msgstr "" +#~ "Quelquefois, lorsque vous téléchargez de la documentation avec Windows en " +#~ "utilisant un navigateur internet, l’extension du fichier est .EXE. Il " +#~ "s'agit d'une erreur ; l'extension devrait être .TGZ." + +#~ msgid "" +#~ "Simply rename the downloaded file to have the .TGZ extension, and WinZip " +#~ "will be able to handle it. (If your copy of WinZip doesn't, get a newer " +#~ "one from https://www.winzip.com.)" +#~ msgstr "" +#~ "Renommez simplement le fichier téléchargé pour lui donner l'extension ." +#~ "TGZ, puis utilisez WinZip pour le décompresser. Si WinZip ne peut pas " +#~ "décompresser le fichier, téléchargez une version plus à jour (https://www." +#~ "winzip.com)." + +#~ msgid "|Python Development on XP|_" +#~ msgstr "|Python Development on XP|_" + +#~ msgid "" +#~ "This series of screencasts aims to get you up and running with Python on " +#~ "Windows XP. The knowledge is distilled into 1.5 hours and will get you " +#~ "up and running with the right Python distribution, coding in your choice " +#~ "of IDE, and debugging and writing solid code with unit-tests." +#~ msgstr "" +#~ "Cette série de vidéos a pour but de vous montrer comment utiliser Python " +#~ "sur Windows XP. Les explications durent 1 heure et demi et vous " +#~ "permettront d'utiliser la distribution Python adéquate, de développer " +#~ "dans l'IDE de votre choix, et de déboguer et écrire du code solide " +#~ "accompagné des tests unitaires." + +#~ msgid "" +#~ "If the ``python`` command, instead of displaying the interpreter prompt " +#~ "``>>>``, gives you a message like::" +#~ msgstr "" +#~ "Si, au lieu de vous afficher ``>>>`` la commande ``python`` vous affiche " +#~ "un message semblable à celui-ci ::" + +#~ msgid "" +#~ "Python is not added to the DOS path by default. This screencast will " +#~ "walk you through the steps to add the correct entry to the `System Path`, " +#~ "allowing Python to be executed from the command-line by all users." +#~ msgstr "" +#~ "Par défaut, Python n'est pas ajouté au PATH. Cette vidéo vous montrera " +#~ "les étapes à suivre pour ajouter la bonne entrée au PATH, permettant " +#~ "ainsi à tous les utilisateurs d'utiliser Python en ligne de commande." + +#~ msgid "or::" +#~ msgstr "ou ::" + +#~ msgid "" +#~ "then you need to make sure that your computer knows where to find the " +#~ "Python interpreter. To do this you will have to modify a setting called " +#~ "PATH, which is a list of directories where Windows will look for programs." +#~ msgstr "" +#~ "alors, vous devez vous assurer que votre ordinateur sait où trouver " +#~ "l’interpréteur Python. Pour cela, vous devez modifier un paramètre, " +#~ "appelé \"PATH\", qui est une liste des répertoires dans lesquels Windows " +#~ "cherche les programmes." diff --git a/glossary.po b/glossary.po new file mode 100644 index 000000000..5c569c87b --- /dev/null +++ b/glossary.po @@ -0,0 +1,2747 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-08-19 10:02+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/glossary.rst:5 +msgid "Glossary" +msgstr "Glossaire" + +#: ../Doc/glossary.rst:10 +msgid "``>>>``" +msgstr "``>>>``" + +#: ../Doc/glossary.rst:12 +msgid "" +"The default Python prompt of the interactive shell. Often seen for code " +"examples which can be executed interactively in the interpreter." +msgstr "" +"L'invite de commande utilisée par défaut dans l'interpréteur interactif. On " +"la voit souvent dans des exemples de code qui peuvent être exécutés " +"interactivement dans l'interpréteur." + +#: ../Doc/glossary.rst:14 +msgid "``...``" +msgstr "``...``" + +#: ../Doc/glossary.rst:16 +msgid "" +"The default Python prompt of the interactive shell when entering the code " +"for an indented code block, when within a pair of matching left and right " +"delimiters (parentheses, square brackets, curly braces or triple quotes), or " +"after specifying a decorator." +msgstr "" +"L'invite de commande utilisée par défaut dans l'interpréteur interactif " +"lorsqu'on entre un bloc de code indenté, dans des délimiteurs fonctionnant " +"par paires (parenthèses, crochets, accolades, triple guillemets), ou après " +"un avoir spécifié un décorateur." + +#: ../Doc/glossary.rst:20 +msgid "2to3" +msgstr "*2to3*" + +#: ../Doc/glossary.rst:22 +msgid "" +"A tool that tries to convert Python 2.x code to Python 3.x code by handling " +"most of the incompatibilities which can be detected by parsing the source " +"and traversing the parse tree." +msgstr "" +"Outil qui essaie de convertir du code pour Python 2.x en code pour Python 3." +"x en gérant la plupart des incompatibilités qui peuvent être détectées en " +"analysant la source et parcourant son arbre syntaxique." + +#: ../Doc/glossary.rst:26 +msgid "" +"2to3 is available in the standard library as :mod:`lib2to3`; a standalone " +"entry point is provided as :file:`Tools/scripts/2to3`. See :ref:`2to3-" +"reference`." +msgstr "" +"*2to3* est disponible dans la bibliothèque standard sous le nom de :mod:" +"`lib2to3` ; un point d’entrée indépendant est fourni via :file:`Tools/" +"scripts/2to3`. Cf. :ref:`2to3-reference`." + +#: ../Doc/glossary.rst:29 +msgid "abstract base class" +msgstr "classe de base abstraite" + +#: ../Doc/glossary.rst:31 +msgid "" +"Abstract base classes complement :term:`duck-typing` by providing a way to " +"define interfaces when other techniques like :func:`hasattr` would be clumsy " +"or subtly wrong (for example with :ref:`magic methods `). " +"ABCs introduce virtual subclasses, which are classes that don't inherit from " +"a class but are still recognized by :func:`isinstance` and :func:" +"`issubclass`; see the :mod:`abc` module documentation. Python comes with " +"many built-in ABCs for data structures (in the :mod:`collections.abc` " +"module), numbers (in the :mod:`numbers` module), streams (in the :mod:`io` " +"module), import finders and loaders (in the :mod:`importlib.abc` module). " +"You can create your own ABCs with the :mod:`abc` module." +msgstr "" +"Les classes de base abstraites (ABC, suivant l'abréviation anglaise " +"*Abstract Base Class*) complètent le :term:`duck-typing` en fournissant un " +"moyen de définir des interfaces pour les cas où d'autres techniques comme :" +"func:`hasattr` seraient inélégantes ou subtilement fausses (par exemple avec " +"les :ref:`méthodes magiques `). Les ABC introduisent des " +"sous-classes virtuelles qui n'héritent pas d'une classe mais qui sont quand " +"même reconnues par :func:`isinstance` ou :func:`issubclass` (voir la " +"documentation du module :mod:`abc`). Python contient de nombreuses ABC pour " +"les structures de données (dans le module :mod:`collections.abc`), les " +"nombres (dans le module :mod:`numbers`), les flux (dans le module :mod:`io`) " +"et les chercheurs-chargeurs du système d'importation (dans le module :mod:" +"`importlib.abc`). Vous pouvez créer vos propres ABC avec le module :mod:" +"`abc`." + +#: ../Doc/glossary.rst:42 +msgid "annotation" +msgstr "annotation" + +#: ../Doc/glossary.rst:44 +msgid "" +"A label associated with a variable, a class attribute or a function " +"parameter or return value, used by convention as a :term:`type hint`." +msgstr "" +"Étiquette associée à une variable, un attribut de classe, un paramètre de " +"fonction ou une valeur de retour. Elle est utilisée par convention comme :" +"term:`type hint`." + +#: ../Doc/glossary.rst:48 +msgid "" +"Annotations of local variables cannot be accessed at runtime, but " +"annotations of global variables, class attributes, and functions are stored " +"in the :attr:`__annotations__` special attribute of modules, classes, and " +"functions, respectively." +msgstr "" +"Les annotations de variables locales ne sont pas accessibles au moment de " +"l'exécution, mais les annotations de variables globales, d'attributs de " +"classe et de fonctions sont stockées dans l'attribut spécial :attr:" +"`__annotations__` des modules, classes et fonctions, respectivement." + +#: ../Doc/glossary.rst:54 +msgid "" +"See :term:`variable annotation`, :term:`function annotation`, :pep:`484` " +"and :pep:`526`, which describe this functionality." +msgstr "" +"Voir :term:`variable annotation`, :term:`function annotation`, :pep:`484` " +"et :pep:`526`, qui décrivent cette fonctionnalité." + +#: ../Doc/glossary.rst:56 +msgid "argument" +msgstr "argument" + +#: ../Doc/glossary.rst:58 +msgid "" +"A value passed to a :term:`function` (or :term:`method`) when calling the " +"function. There are two kinds of argument:" +msgstr "" +"Valeur, donnée à une :term:`fonction` ou à une :term:`méthode` lors de son " +"appel. Il existe deux types d'arguments :" + +#: ../Doc/glossary.rst:61 +msgid "" +":dfn:`keyword argument`: an argument preceded by an identifier (e.g. " +"``name=``) in a function call or passed as a value in a dictionary preceded " +"by ``**``. For example, ``3`` and ``5`` are both keyword arguments in the " +"following calls to :func:`complex`::" +msgstr "" +":dfn:`argument nommé` : un argument précédé d'un identifiant (comme " +"``name=``) ou un dictionnaire précédé de ``**``, lors d'un appel de " +"fonction. Par exemple, ``3`` et ``5`` sont tous les deux des arguments " +"nommés dans l'appel à :func:`complex` ici ::" + +#: ../Doc/glossary.rst:69 +msgid "" +":dfn:`positional argument`: an argument that is not a keyword argument. " +"Positional arguments can appear at the beginning of an argument list and/or " +"be passed as elements of an :term:`iterable` preceded by ``*``. For example, " +"``3`` and ``5`` are both positional arguments in the following calls::" +msgstr "" +":dfn:`argument positionnel` : un argument qui n'est pas nommé. Les arguments " +"positionnels apparaissent au début de la liste des arguments, ou donnés sous " +"forme d'un :term:`itérable` précédé par ``*``. Par exemple, ``3`` et ``5`` " +"sont tous les deux des arguments positionnels dans les appels suivants ::" + +#: ../Doc/glossary.rst:78 +msgid "" +"Arguments are assigned to the named local variables in a function body. See " +"the :ref:`calls` section for the rules governing this assignment. " +"Syntactically, any expression can be used to represent an argument; the " +"evaluated value is assigned to the local variable." +msgstr "" +"Les arguments se retrouvent dans le corps de la fonction appelée parmi les " +"variables locales. Voir la section :ref:`calls` à propos des règles dictant " +"cette affectation. Syntaxiquement, toute expression est acceptée comme " +"argument, et c'est la valeur résultante de l'expression qui sera affectée à " +"la variable locale." + +#: ../Doc/glossary.rst:83 +msgid "" +"See also the :term:`parameter` glossary entry, the FAQ question on :ref:`the " +"difference between arguments and parameters `, " +"and :pep:`362`." +msgstr "" +"Voir aussi :term:`parameter` dans le glossaire, la question :ref:`Différence " +"entre argument et paramètre ` de la FAQ et la :" +"pep:`362`." + +#: ../Doc/glossary.rst:86 +msgid "asynchronous context manager" +msgstr "gestionnaire de contexte asynchrone" + +#: ../Doc/glossary.rst:88 +msgid "" +"An object which controls the environment seen in an :keyword:`async with` " +"statement by defining :meth:`__aenter__` and :meth:`__aexit__` methods. " +"Introduced by :pep:`492`." +msgstr "" +"(*asynchronous context manager* en anglais) Objet contrôlant l'environnement " +"à l'intérieur d'une instruction :keyword:`with` en définissant les méthodes :" +"meth:`__aenter__` et :meth:`__aexit__`. A été Introduit par la :pep:`492`." + +#: ../Doc/glossary.rst:91 +msgid "asynchronous generator" +msgstr "générateur asynchrone" + +#: ../Doc/glossary.rst:93 +msgid "" +"A function which returns an :term:`asynchronous generator iterator`. It " +"looks like a coroutine function defined with :keyword:`async def` except " +"that it contains :keyword:`yield` expressions for producing a series of " +"values usable in an :keyword:`async for` loop." +msgstr "" +"Fonction qui renvoie un :term:`asynchronous generator iterator`. Cela " +"ressemble à une coroutine définie par :keyword:`async def`, sauf qu'elle " +"contient une ou des expressions :keyword:`yield` produisant ainsi uns série " +"de valeurs utilisables dans une boucle :keyword:`async for`." + +#: ../Doc/glossary.rst:98 +msgid "" +"Usually refers to an asynchronous generator function, but may refer to an " +"*asynchronous generator iterator* in some contexts. In cases where the " +"intended meaning isn't clear, using the full terms avoids ambiguity." +msgstr "" +"Générateur asynchrone fait généralement référence à une fonction, mais peut " +"faire référence à un *itérateur de générateur asynchrone* dans certains " +"contextes. Dans les cas où le sens voulu n'est pas clair, utiliser " +"l'ensemble des termes lève l’ambiguïté." + +#: ../Doc/glossary.rst:102 +msgid "" +"An asynchronous generator function may contain :keyword:`await` expressions " +"as well as :keyword:`async for`, and :keyword:`async with` statements." +msgstr "" +"Un générateur asynchrone peut contenir des expressions :keyword:`await` " +"ainsi que des instructions :keyword:`async for`, et :keyword:`async with`." + +#: ../Doc/glossary.rst:105 +msgid "asynchronous generator iterator" +msgstr "itérateur de générateur asynchrone" + +#: ../Doc/glossary.rst:107 +msgid "An object created by a :term:`asynchronous generator` function." +msgstr "Objet créé par une fonction :term:`asynchronous generator`." + +#: ../Doc/glossary.rst:109 +msgid "" +"This is an :term:`asynchronous iterator` which when called using the :meth:" +"`__anext__` method returns an awaitable object which will execute the body " +"of the asynchronous generator function until the next :keyword:`yield` " +"expression." +msgstr "" +"C'est un :term:`asynchronous iterator` qui, lorsqu'il est appelé via la " +"méthode :meth:`__anext__` renvoie un objet *awaitable* qui exécute le corps " +"de la fonction du générateur asynchrone jusqu'au prochain :keyword:`yield`." + +#: ../Doc/glossary.rst:114 +msgid "" +"Each :keyword:`yield` temporarily suspends processing, remembering the " +"location execution state (including local variables and pending try-" +"statements). When the *asynchronous generator iterator* effectively resumes " +"with another awaitable returned by :meth:`__anext__`, it picks up where it " +"left off. See :pep:`492` and :pep:`525`." +msgstr "" +"Chaque :keyword:`yield` suspend temporairement l'exécution, en gardant en " +"mémoire l'endroit et l'état de l'exécution (ce qui inclut les variables " +"locales et les *try* en cours). Lorsque l'exécution de l'itérateur de " +"générateur asynchrone reprend avec un nouvel *awaitable* renvoyé par :meth:" +"`__anext__`, elle repart de là où elle s'était arrêtée. Voir la :pep:`492` " +"et la :pep:`525`." + +#: ../Doc/glossary.rst:119 +msgid "asynchronous iterable" +msgstr "itérable asynchrone" + +#: ../Doc/glossary.rst:121 +msgid "" +"An object, that can be used in an :keyword:`async for` statement. Must " +"return an :term:`asynchronous iterator` from its :meth:`__aiter__` method. " +"Introduced by :pep:`492`." +msgstr "" +"Objet qui peut être utilisé dans une instruction :keyword:`async for`. Sa " +"méthode :meth:`__aiter__` doit renvoyer un :term:`asynchronous iterator`. A " +"été introduit par la :pep:`492`." + +#: ../Doc/glossary.rst:124 +msgid "asynchronous iterator" +msgstr "itérateur asynchrone" + +#: ../Doc/glossary.rst:126 +msgid "" +"An object that implements the :meth:`__aiter__` and :meth:`__anext__` " +"methods. ``__anext__`` must return an :term:`awaitable` object. :keyword:" +"`async for` resolves the awaitables returned by an asynchronous iterator's :" +"meth:`__anext__` method until it raises a :exc:`StopAsyncIteration` " +"exception. Introduced by :pep:`492`." +msgstr "" +"Objet qui implémente les méthodes :meth:`__aiter__` et :meth:`__anext__`. " +"``__anext__`` doit renvoyer un objet :term:`awaitable`. Tant que la méthode :" +"meth:`__anext__` produit des objets *awaitable*, le :keyword:`async for` " +"appelant les consomme. L'itérateur asynchrone lève une exception :exc:" +"`StopAsyncIteration` pour signifier la fin de l'itération. A été introduit " +"par la :pep:`492`." + +#: ../Doc/glossary.rst:131 +msgid "attribute" +msgstr "attribut" + +#: ../Doc/glossary.rst:133 +msgid "" +"A value associated with an object which is referenced by name using dotted " +"expressions. For example, if an object *o* has an attribute *a* it would be " +"referenced as *o.a*." +msgstr "" +"Valeur associée à un objet et désignée par son nom via une notation " +"utilisant des points. Par exemple, si un objet *o* possède un attribut *a*, " +"il sera référencé par *o.a*." + +#: ../Doc/glossary.rst:136 +msgid "awaitable" +msgstr "*awaitable*" + +#: ../Doc/glossary.rst:138 +msgid "" +"An object that can be used in an :keyword:`await` expression. Can be a :" +"term:`coroutine` or an object with an :meth:`__await__` method. See also :" +"pep:`492`." +msgstr "" +"Objet pouvant être utilisé dans une expression :keyword:`await`. Ce peut " +"être une :term:`coroutine` ou un objet avec une méthode :meth:`__await__`. " +"Voir aussi la :pep:`492`." + +#: ../Doc/glossary.rst:141 +msgid "BDFL" +msgstr "*BDFL*" + +#: ../Doc/glossary.rst:143 +msgid "" +"Benevolent Dictator For Life, a.k.a. `Guido van Rossum `_, Python's creator." +msgstr "" +"Dictateur bienveillant à vie (*Benevolent Dictator For Life* en anglais). " +"Pseudonyme de `Guido van Rossum `_, le " +"créateur de Python." + +#: ../Doc/glossary.rst:145 +msgid "binary file" +msgstr "fichier binaire" + +#: ../Doc/glossary.rst:147 +msgid "" +"A :term:`file object` able to read and write :term:`bytes-like objects " +"`. Examples of binary files are files opened in binary " +"mode (``'rb'``, ``'wb'`` or ``'rb+'``), :data:`sys.stdin.buffer`, :data:`sys." +"stdout.buffer`, and instances of :class:`io.BytesIO` and :class:`gzip." +"GzipFile`." +msgstr "" +"Un :term:`file object` capable de lire et d'écrire des :term:`bytes-like " +"objects `. Des fichiers binaires sont, par exemple, les " +"fichiers ouverts en mode binaire (``'rb'``, ``'wb'``, ou ``'rb+'``), :data:" +"`sys.stdin.buffer`, :data:`sys.stdout.buffer`, les instances de :class:`io." +"BytesIO` ou de :class:`gzip.GzipFile`." + +#: ../Doc/glossary.rst:154 +msgid "" +"See also :term:`text file` for a file object able to read and write :class:" +"`str` objects." +msgstr "" +"Consultez :term:`fichier texte`, un objet fichier capable de lire et " +"d'écrire des objets :class:`str`." + +#: ../Doc/glossary.rst:156 +msgid "bytes-like object" +msgstr "objet octet-compatible" + +#: ../Doc/glossary.rst:158 +msgid "" +"An object that supports the :ref:`bufferobjects` and can export a C-:term:" +"`contiguous` buffer. This includes all :class:`bytes`, :class:`bytearray`, " +"and :class:`array.array` objects, as well as many common :class:`memoryview` " +"objects. Bytes-like objects can be used for various operations that work " +"with binary data; these include compression, saving to a binary file, and " +"sending over a socket." +msgstr "" +"Un objet gérant les :ref:`bufferobjects` et pouvant exporter un tampon " +"(*buffer* en anglais) C-:term:`contiguous`. Cela inclut les objets :class:" +"`bytes`, :class:`bytearray` et :class:`array.array`, ainsi que beaucoup " +"d'objets :class:`memoryview`. Les objets bytes-compatibles peuvent être " +"utilisés pour diverses opérations sur des données binaires, comme la " +"compression, la sauvegarde dans un fichier binaire ou l'envoi sur le réseau." + +#: ../Doc/glossary.rst:165 +msgid "" +"Some operations need the binary data to be mutable. The documentation often " +"refers to these as \"read-write bytes-like objects\". Example mutable " +"buffer objects include :class:`bytearray` and a :class:`memoryview` of a :" +"class:`bytearray`. Other operations require the binary data to be stored in " +"immutable objects (\"read-only bytes-like objects\"); examples of these " +"include :class:`bytes` and a :class:`memoryview` of a :class:`bytes` object." +msgstr "" +"Certaines opérations nécessitent de travailler sur des données binaires " +"variables. La documentation parle de ceux-ci comme des *read-write bytes-" +"like objects*. Par exemple, :class:`bytearray` ou une :class:`memoryview` " +"d'un :class:`bytearray` en font partie. D'autres opérations nécessitent de " +"travailler sur des données binaires stockées dans des objets immuables (*" +"\"read-only bytes-like objects\"*), par exemples :class:`bytes` ou :class:" +"`memoryview` d'un objet :class:`byte`." + +#: ../Doc/glossary.rst:173 +msgid "bytecode" +msgstr "code intermédiaire (*bytecode*)" + +#: ../Doc/glossary.rst:175 +msgid "" +"Python source code is compiled into bytecode, the internal representation of " +"a Python program in the CPython interpreter. The bytecode is also cached in " +"``.pyc`` files so that executing the same file is faster the second time " +"(recompilation from source to bytecode can be avoided). This \"intermediate " +"language\" is said to run on a :term:`virtual machine` that executes the " +"machine code corresponding to each bytecode. Do note that bytecodes are not " +"expected to work between different Python virtual machines, nor to be stable " +"between Python releases." +msgstr "" +"Le code source, en Python, est compilé en un code intermédiaire (*bytecode* " +"en anglais), la représentation interne à CPython d'un programme Python. Le " +"code intermédiaire est mis en cache dans un fichier ``.pyc`` de manière à ce " +"qu'une seconde exécution soit plus rapide (la compilation en code " +"intermédiaire a déjà été faite). On dit que ce *langage intermédiaire* est " +"exécuté sur une :term:`virtual machine` qui exécute des instructions machine " +"pour chaque instruction du code intermédiaire. Notez que le code " +"intermédiaire n'a pas vocation à fonctionner sur différentes machines " +"virtuelles Python ou à être stable entre différentes versions de Python." + +#: ../Doc/glossary.rst:185 +msgid "" +"A list of bytecode instructions can be found in the documentation for :ref:" +"`the dis module `." +msgstr "" +"La documentation du :ref:`module dis ` fournit une liste des " +"instructions du code intermédiaire." + +#: ../Doc/glossary.rst:187 +msgid "class" +msgstr "classe" + +#: ../Doc/glossary.rst:189 +msgid "" +"A template for creating user-defined objects. Class definitions normally " +"contain method definitions which operate on instances of the class." +msgstr "" +"Modèle pour créer des objets définis par l'utilisateur. Une définition de " +"classe (*class*) contient normalement des définitions de méthodes qui " +"agissent sur les instances de la classe." + +#: ../Doc/glossary.rst:192 +msgid "class variable" +msgstr "variable de classe" + +#: ../Doc/glossary.rst:194 +msgid "" +"A variable defined in a class and intended to be modified only at class " +"level (i.e., not in an instance of the class)." +msgstr "" +"Une variable définie dans une classe et destinée à être modifiée uniquement " +"au niveau de la classe (c'est-à-dire, pas dans une instance de la classe)." + +#: ../Doc/glossary.rst:196 +msgid "coercion" +msgstr "coercition" + +#: ../Doc/glossary.rst:198 +msgid "" +"The implicit conversion of an instance of one type to another during an " +"operation which involves two arguments of the same type. For example, " +"``int(3.15)`` converts the floating point number to the integer ``3``, but " +"in ``3+4.5``, each argument is of a different type (one int, one float), and " +"both must be converted to the same type before they can be added or it will " +"raise a :exc:`TypeError`. Without coercion, all arguments of even " +"compatible types would have to be normalized to the same value by the " +"programmer, e.g., ``float(3)+4.5`` rather than just ``3+4.5``." +msgstr "" +"Conversion implicite d'une instance d'un type vers un autre lors d'une " +"opération dont les deux opérandes doivent être de même type. Par exemple " +"``int(3.15)`` convertit explicitement le nombre à virgule flottante en " +"nombre entier ``3``. Mais dans l'opération ``3 + 4.5``, les deux opérandes " +"sont d'un type différent (un entier et un nombre à virgule flottante), alors " +"qu'ils doivent avoir le même type pour être additionnés (sinon une " +"exception :exc:`TypeError` serait levée). Sans coercition, tous les " +"opérandes, même de types compatibles, devraient être convertis (on parle " +"aussi de *cast*) explicitement par le développeur, par exemple : ``float(3) " +"+ 4.5`` au lieu du simple ``3 + 4.5``." + +#: ../Doc/glossary.rst:206 +msgid "complex number" +msgstr "nombre complexe" + +#: ../Doc/glossary.rst:208 +msgid "" +"An extension of the familiar real number system in which all numbers are " +"expressed as a sum of a real part and an imaginary part. Imaginary numbers " +"are real multiples of the imaginary unit (the square root of ``-1``), often " +"written ``i`` in mathematics or ``j`` in engineering. Python has built-in " +"support for complex numbers, which are written with this latter notation; " +"the imaginary part is written with a ``j`` suffix, e.g., ``3+1j``. To get " +"access to complex equivalents of the :mod:`math` module, use :mod:`cmath`. " +"Use of complex numbers is a fairly advanced mathematical feature. If you're " +"not aware of a need for them, it's almost certain you can safely ignore them." +msgstr "" +"Extension des nombres réels familiers, dans laquelle tous les nombres sont " +"exprimés sous la forme d'une somme d'une partie réelle et d'une partie " +"imaginaire. Les nombres imaginaires sont les nombres réels multipliés par " +"l'unité imaginaire (la racine carrée de ``-1``, souvent écrite ``i`` en " +"mathématiques ou ``j`` par les ingénieurs). Python comprend nativement les " +"nombres complexes, écrits avec cette dernière notation : la partie " +"imaginaire est écrite avec un suffixe ``j``, exemple, ``3+1j``. Pour " +"utiliser les équivalents complexes de :mod:`math`, utilisez :mod:`cmath`. " +"Les nombres complexes sont un concept assez avancé en mathématiques. Si vous " +"ne connaissez pas ce concept, vous pouvez tranquillement les ignorer." + +#: ../Doc/glossary.rst:218 +msgid "context manager" +msgstr "gestionnaire de contexte" + +#: ../Doc/glossary.rst:220 +msgid "" +"An object which controls the environment seen in a :keyword:`with` statement " +"by defining :meth:`__enter__` and :meth:`__exit__` methods. See :pep:`343`." +msgstr "" +"Objet contrôlant l'environnement à l'intérieur d'un bloc :keyword:`with` en " +"définissant les méthodes :meth:`__enter__` et :meth:`__exit__`. Consultez " +"la :pep:`343`." + +#: ../Doc/glossary.rst:223 +msgid "context variable" +msgstr "variable de contexte" + +#: ../Doc/glossary.rst:225 +msgid "" +"A variable which can have different values depending on its context. This is " +"similar to Thread-Local Storage in which each execution thread may have a " +"different value for a variable. However, with context variables, there may " +"be several contexts in one execution thread and the main usage for context " +"variables is to keep track of variables in concurrent asynchronous tasks. " +"See :mod:`contextvars`." +msgstr "" +"Une variable qui peut avoir des valeurs différentes en fonction de son " +"contexte. Cela est similaire au stockage par fil d’exécution (*Thread Local " +"Storage* en anglais) dans lequel chaque fil d’exécution peut avoir une " +"valeur différente pour une variable. Toutefois, avec les variables de " +"contexte, il peut y avoir plusieurs contextes dans un fil d’exécution et " +"l’utilisation principale pour les variables de contexte est de garder une " +"trace des variables dans les tâches asynchrones concourantes. Voir :mod:" +"`contextvars`." + +#: ../Doc/glossary.rst:232 +msgid "contiguous" +msgstr "contigu" + +#: ../Doc/glossary.rst:236 +msgid "" +"A buffer is considered contiguous exactly if it is either *C-contiguous* or " +"*Fortran contiguous*. Zero-dimensional buffers are C and Fortran " +"contiguous. In one-dimensional arrays, the items must be laid out in memory " +"next to each other, in order of increasing indexes starting from zero. In " +"multidimensional C-contiguous arrays, the last index varies the fastest when " +"visiting items in order of memory address. However, in Fortran contiguous " +"arrays, the first index varies the fastest." +msgstr "" +"Un tampon (*buffer* en anglais) est considéré comme contigu s’il est soit *C-" +"contigu* soit *Fortran-contigu*. Les tampons de dimension zéro sont C-" +"contigus et Fortran-contigus. Pour un tableau à une dimension, ses éléments " +"doivent être placés en mémoire l’un à côté de l’autre, dans l’ordre " +"croissant de leur indice, en commençant à zéro. Pour qu’un tableau " +"multidimensionnel soit C-contigu, le dernier indice doit être celui qui " +"varie le plus rapidement lors du parcours de ses éléments dans l’ordre de " +"leur adresse mémoire. À l'inverse, dans les tableaux Fortran-contigu, c’est " +"le premier indice qui doit varier le plus rapidement." + +#: ../Doc/glossary.rst:244 +msgid "coroutine" +msgstr "coroutine" + +#: ../Doc/glossary.rst:246 +msgid "" +"Coroutines is a more generalized form of subroutines. Subroutines are " +"entered at one point and exited at another point. Coroutines can be " +"entered, exited, and resumed at many different points. They can be " +"implemented with the :keyword:`async def` statement. See also :pep:`492`." +msgstr "" +"Les coroutines sont une forme généralisées des fonctions. On entre dans une " +"fonction en un point et on en sort en un autre point. On peut entrer, sortir " +"et reprendre l'exécution d'une coroutine en plusieurs points. Elles peuvent " +"être implémentées en utilisant l'instruction :keyword:`async def`. Voir " +"aussi la :pep:`492`." + +#: ../Doc/glossary.rst:251 +msgid "coroutine function" +msgstr "fonction coroutine" + +#: ../Doc/glossary.rst:253 +msgid "" +"A function which returns a :term:`coroutine` object. A coroutine function " +"may be defined with the :keyword:`async def` statement, and may contain :" +"keyword:`await`, :keyword:`async for`, and :keyword:`async with` keywords. " +"These were introduced by :pep:`492`." +msgstr "" +"Fonction qui renvoie un objet :term:`coroutine`. Une fonction coroutine peut " +"être définie par l'instruction :keyword:`async def` et peut contenir les " +"mots clés :keyword:`await`, :keyword:`async for` ainsi que :keyword:`async " +"with`. A été introduit par la :pep:`492`." + +#: ../Doc/glossary.rst:258 +msgid "CPython" +msgstr "CPython" + +#: ../Doc/glossary.rst:260 +msgid "" +"The canonical implementation of the Python programming language, as " +"distributed on `python.org `_. The term \"CPython\" " +"is used when necessary to distinguish this implementation from others such " +"as Jython or IronPython." +msgstr "" +"L'implémentation canonique du langage de programmation Python, tel que " +"distribué sur `python.org `_. Le terme \"CPython\" " +"est utilisé dans certains contextes lorsqu'il est nécessaire de distinguer " +"cette implémentation des autres comme *Jython* ou *IronPython*." + +#: ../Doc/glossary.rst:264 +msgid "decorator" +msgstr "décorateur" + +#: ../Doc/glossary.rst:266 +msgid "" +"A function returning another function, usually applied as a function " +"transformation using the ``@wrapper`` syntax. Common examples for " +"decorators are :func:`classmethod` and :func:`staticmethod`." +msgstr "" +"Fonction dont la valeur de retour est une autre fonction. Un décorateur est " +"habituellement utilisé pour transformer une fonction via la syntaxe " +"``@wrapper``, dont les exemples typiques sont : :func:`classmethod` et :func:" +"`staticmethod`." + +#: ../Doc/glossary.rst:270 +msgid "" +"The decorator syntax is merely syntactic sugar, the following two function " +"definitions are semantically equivalent::" +msgstr "" +"La syntaxe des décorateurs est simplement du sucre syntaxique, les " +"définitions des deux fonctions suivantes sont sémantiquement équivalentes ::" + +#: ../Doc/glossary.rst:281 +msgid "" +"The same concept exists for classes, but is less commonly used there. See " +"the documentation for :ref:`function definitions ` and :ref:`class " +"definitions ` for more about decorators." +msgstr "" +"Quoique moins fréquemment utilisé, le même concept existe pour les classes. " +"Consultez la documentation :ref:`définitions de fonctions ` et :" +"ref:`définitions de classes ` pour en savoir plus sur les décorateurs." + +#: ../Doc/glossary.rst:284 +msgid "descriptor" +msgstr "descripteur" + +#: ../Doc/glossary.rst:286 +msgid "" +"Any object which defines the methods :meth:`__get__`, :meth:`__set__`, or :" +"meth:`__delete__`. When a class attribute is a descriptor, its special " +"binding behavior is triggered upon attribute lookup. Normally, using *a.b* " +"to get, set or delete an attribute looks up the object named *b* in the " +"class dictionary for *a*, but if *b* is a descriptor, the respective " +"descriptor method gets called. Understanding descriptors is a key to a deep " +"understanding of Python because they are the basis for many features " +"including functions, methods, properties, class methods, static methods, and " +"reference to super classes." +msgstr "" +"N'importe quel objet définissant les méthodes :meth:`__get__`, :meth:" +"`__set__`, ou :meth:`__delete__`. Lorsque l'attribut d'une classe est un " +"descripteur, son comportement spécial est déclenché lors de la recherche des " +"attributs. Normalement, lorsque vous écrivez *a.b* pour obtenir, affecter ou " +"effacer un attribut, Python recherche l'objet nommé *b* dans le dictionnaire " +"de la classe de *a*. Mais si *b* est un descripteur, c'est la méthode de ce " +"descripteur qui est alors appelée. Comprendre les descripteurs est requis " +"pour avoir une compréhension approfondie de Python, ils sont la base de " +"nombre de ses caractéristiques notamment les fonctions, méthodes, " +"propriétés, méthodes de classes, méthodes statiques et les références aux " +"classes parentes." + +#: ../Doc/glossary.rst:296 +msgid "" +"For more information about descriptors' methods, see :ref:`descriptors`." +msgstr "" +"Pour plus d'informations sur les méthodes des descripteurs, consultez :ref:" +"`descriptors`." + +#: ../Doc/glossary.rst:297 +msgid "dictionary" +msgstr "dictionnaire" + +#: ../Doc/glossary.rst:299 +msgid "" +"An associative array, where arbitrary keys are mapped to values. The keys " +"can be any object with :meth:`__hash__` and :meth:`__eq__` methods. Called a " +"hash in Perl." +msgstr "" +"Structure de donnée associant des clés à des valeurs. Les clés peuvent être " +"n'importe quel objet possédant les méthodes :meth:`__hash__` et :meth:" +"`__eq__`. En Perl, les dictionnaires sont appelés \"*hash*\"." + +#: ../Doc/glossary.rst:302 +msgid "dictionary view" +msgstr "vue de dictionnaire" + +#: ../Doc/glossary.rst:304 +msgid "" +"The objects returned from :meth:`dict.keys`, :meth:`dict.values`, and :meth:" +"`dict.items` are called dictionary views. They provide a dynamic view on the " +"dictionary’s entries, which means that when the dictionary changes, the view " +"reflects these changes. To force the dictionary view to become a full list " +"use ``list(dictview)``. See :ref:`dict-views`." +msgstr "" +"Objets retournés par les méthodes :meth:`dict.keys`, :meth:`dict.values` et :" +"meth:`dict.items`. Ils fournissent des vues dynamiques des entrées du " +"dictionnaire, ce qui signifie que lorsque le dictionnaire change, la vue " +"change. Pour transformer une vue en vraie liste, utilisez " +"``list(dictview)``. Voir :ref:`dict-views`." + +#: ../Doc/glossary.rst:310 +msgid "docstring" +msgstr "*docstring* (chaîne de documentation)" + +#: ../Doc/glossary.rst:312 +msgid "" +"A string literal which appears as the first expression in a class, function " +"or module. While ignored when the suite is executed, it is recognized by " +"the compiler and put into the :attr:`__doc__` attribute of the enclosing " +"class, function or module. Since it is available via introspection, it is " +"the canonical place for documentation of the object." +msgstr "" +"Première chaîne littérale qui apparaît dans l'expression d'une classe, " +"fonction, ou module. Bien qu'ignorée à l'exécution, elle est reconnue par le " +"compilateur et placée dans l'attribut :attr:`__doc__` de la classe, de la " +"fonction ou du module. Comme cette chaîne est disponible par introspection, " +"c'est l'endroit idéal pour documenter l'objet." + +#: ../Doc/glossary.rst:318 +msgid "duck-typing" +msgstr "*duck-typing*" + +#: ../Doc/glossary.rst:320 +msgid "" +"A programming style which does not look at an object's type to determine if " +"it has the right interface; instead, the method or attribute is simply " +"called or used (\"If it looks like a duck and quacks like a duck, it must be " +"a duck.\") By emphasizing interfaces rather than specific types, well-" +"designed code improves its flexibility by allowing polymorphic " +"substitution. Duck-typing avoids tests using :func:`type` or :func:" +"`isinstance`. (Note, however, that duck-typing can be complemented with :" +"term:`abstract base classes `.) Instead, it typically " +"employs :func:`hasattr` tests or :term:`EAFP` programming." +msgstr "" +"Style de programmation qui ne prend pas en compte le type d'un objet pour " +"déterminer s'il respecte une interface, mais qui appelle simplement la " +"méthode ou l'attribut (*Si ça a un bec et que ça cancane, ça doit être un " +"canard*, *duck* signifie canard en anglais). En se concentrant sur les " +"interfaces plutôt que les types, du code bien construit améliore sa " +"flexibilité en autorisant des substitutions polymorphiques. Le *duck-typing* " +"évite de vérifier les types via :func:`type` ou :func:`isinstance`, Notez " +"cependant que le *duck-typing* peut travailler de pair avec les :term:" +"`classes de base abstraites `. À la place, le " +"*duck-typing* utilise plutôt :func:`hasattr` ou la programmation :term:" +"`EAFP`." + +#: ../Doc/glossary.rst:329 +msgid "EAFP" +msgstr "EAFP" + +#: ../Doc/glossary.rst:331 +msgid "" +"Easier to ask for forgiveness than permission. This common Python coding " +"style assumes the existence of valid keys or attributes and catches " +"exceptions if the assumption proves false. This clean and fast style is " +"characterized by the presence of many :keyword:`try` and :keyword:`except` " +"statements. The technique contrasts with the :term:`LBYL` style common to " +"many other languages such as C." +msgstr "" +"Il est plus simple de demander pardon que demander la permission (*Easier to " +"Ask for Forgiveness than Permission* en anglais). Ce style de développement " +"Python fait l'hypothèse que le code est valide et traite les exceptions si " +"cette hypothèse s'avère fausse. Ce style, propre et efficace, est " +"caractérisé par la présence de beaucoup de mots clés :keyword:`try` et :" +"keyword:`except`. Cette technique de programmation contraste avec le style :" +"term:`LBYL` utilisé couramment dans les langages tels que C." + +#: ../Doc/glossary.rst:337 +msgid "expression" +msgstr "expression" + +#: ../Doc/glossary.rst:339 +msgid "" +"A piece of syntax which can be evaluated to some value. In other words, an " +"expression is an accumulation of expression elements like literals, names, " +"attribute access, operators or function calls which all return a value. In " +"contrast to many other languages, not all language constructs are " +"expressions. There are also :term:`statement`\\s which cannot be used as " +"expressions, such as :keyword:`while`. Assignments are also statements, not " +"expressions." +msgstr "" +"Suite logique de termes et chiffres conformes à la syntaxe Python dont " +"l'évaluation fournit une valeur. En d'autres termes, une expression est une " +"suite d'éléments tels que des noms, opérateurs, littéraux, accès " +"d'attributs, méthodes ou fonctions qui aboutissent à une valeur. " +"Contrairement à beaucoup d'autres langages, les différentes constructions du " +"langage ne sont pas toutes des expressions. On trouve également des :term:" +"`instructions ` qui ne peuvent pas être utilisées comme " +"expressions, tel que :keyword:`while`. Les affectations sont également des " +"instructions et non des expressions." + +#: ../Doc/glossary.rst:346 +msgid "extension module" +msgstr "module d'extension" + +#: ../Doc/glossary.rst:348 +msgid "" +"A module written in C or C++, using Python's C API to interact with the core " +"and with user code." +msgstr "" +"Module écrit en C ou C++, utilisant l'API C de Python pour interagir avec " +"Python et le code de l'utilisateur." + +#: ../Doc/glossary.rst:350 +msgid "f-string" +msgstr "f-string" + +#: ../Doc/glossary.rst:352 +msgid "" +"String literals prefixed with ``'f'`` or ``'F'`` are commonly called \"f-" +"strings\" which is short for :ref:`formatted string literals `. " +"See also :pep:`498`." +msgstr "" +"Chaîne littérale préfixée de ``'f'`` ou ``'F'``. Les \"f-strings\" sont un " +"raccourci pour :ref:`formatted string literals `. Voir la :pep:" +"`498`." + +#: ../Doc/glossary.rst:355 +msgid "file object" +msgstr "objet fichier" + +#: ../Doc/glossary.rst:357 +msgid "" +"An object exposing a file-oriented API (with methods such as :meth:`read()` " +"or :meth:`write()`) to an underlying resource. Depending on the way it was " +"created, a file object can mediate access to a real on-disk file or to " +"another type of storage or communication device (for example standard input/" +"output, in-memory buffers, sockets, pipes, etc.). File objects are also " +"called :dfn:`file-like objects` or :dfn:`streams`." +msgstr "" +"Objet exposant une ressource via une API orientée fichier (avec les " +"méthodes :meth:`read()` ou :meth:`write()`). En fonction de la manière dont " +"il a été créé, un objet fichier peut interfacer l'accès à un fichier sur le " +"disque ou à un autre type de stockage ou de communication (typiquement " +"l'entrée standard, la sortie standard, un tampon en mémoire, un connecteur " +"réseau…). Les objets fichiers sont aussi appelés :dfn:`file-like-objects` " +"ou :dfn:`streams`." + +#: ../Doc/glossary.rst:365 +msgid "" +"There are actually three categories of file objects: raw :term:`binary files " +"`, buffered :term:`binary files ` and :term:`text " +"files `. Their interfaces are defined in the :mod:`io` module. " +"The canonical way to create a file object is by using the :func:`open` " +"function." +msgstr "" +"Il existe en réalité trois catégories de fichiers objets : les :term:" +"`fichiers binaires ` bruts, les :term:`fichiers binaires " +"` avec tampon (*buffer*) et les :term:`fichiers textes " +"`. Leurs interfaces sont définies dans le module :mod:`io`. " +"Le moyen le plus simple et direct de créer un objet fichier est d'utiliser " +"la fonction :func:`open`." + +#: ../Doc/glossary.rst:370 +msgid "file-like object" +msgstr "objet fichier-compatible" + +#: ../Doc/glossary.rst:372 +msgid "A synonym for :term:`file object`." +msgstr "Synonyme de :term:`objet fichier`." + +#: ../Doc/glossary.rst:373 +msgid "finder" +msgstr "chercheur" + +#: ../Doc/glossary.rst:375 +msgid "" +"An object that tries to find the :term:`loader` for a module that is being " +"imported." +msgstr "" +"Objet qui essaie de trouver un :term:`chargeur ` pour le module en " +"cours d'importation." + +#: ../Doc/glossary.rst:378 +msgid "" +"Since Python 3.3, there are two types of finder: :term:`meta path finders " +"` for use with :data:`sys.meta_path`, and :term:`path " +"entry finders ` for use with :data:`sys.path_hooks`." +msgstr "" +"Depuis Python 3.3, il existe deux types de chercheurs : les :term:" +"`chercheurs dans les méta-chemins ` à utiliser avec :data:" +"`sys.meta_path` ; les :term:`chercheurs d'entrée dans path ` à utiliser avec :data:`sys.path_hooks`." + +#: ../Doc/glossary.rst:382 +msgid "See :pep:`302`, :pep:`420` and :pep:`451` for much more detail." +msgstr "Voir les :pep:`302`, :pep:`420` et :pep:`451` pour plus de détails." + +#: ../Doc/glossary.rst:383 +msgid "floor division" +msgstr "division entière" + +#: ../Doc/glossary.rst:385 +msgid "" +"Mathematical division that rounds down to nearest integer. The floor " +"division operator is ``//``. For example, the expression ``11 // 4`` " +"evaluates to ``2`` in contrast to the ``2.75`` returned by float true " +"division. Note that ``(-11) // 4`` is ``-3`` because that is ``-2.75`` " +"rounded *downward*. See :pep:`238`." +msgstr "" +"Division mathématique arrondissant à l'entier inférieur. L'opérateur de la " +"division entière est ``//``. Par exemple l'expression ``11 // 4`` vaut " +"``2``, contrairement à ``11 / 4`` qui vaut ``2.75``. Notez que ``(-11) // " +"4`` vaut ``-3`` car l'arrondi se fait à l'entier inférieur. Voir la :pep:" +"`328`." + +#: ../Doc/glossary.rst:390 +msgid "function" +msgstr "fonction" + +#: ../Doc/glossary.rst:392 +msgid "" +"A series of statements which returns some value to a caller. It can also be " +"passed zero or more :term:`arguments ` which may be used in the " +"execution of the body. See also :term:`parameter`, :term:`method`, and the :" +"ref:`function` section." +msgstr "" +"Suite d'instructions qui renvoie une valeur à son appelant. On peut lui " +"passer des :term:`arguments ` qui pourront être utilisés dans le " +"corps de la fonction. Voir aussi :term:`paramètre`, :term:`méthode` et :ref:" +"`function`." + +#: ../Doc/glossary.rst:396 +msgid "function annotation" +msgstr "annotation de fonction" + +#: ../Doc/glossary.rst:398 +msgid "An :term:`annotation` of a function parameter or return value." +msgstr ":term:`annotation` d'un paramètre de fonction ou valeur de retour." + +#: ../Doc/glossary.rst:400 +msgid "" +"Function annotations are usually used for :term:`type hints `: " +"for example, this function is expected to take two :class:`int` arguments " +"and is also expected to have an :class:`int` return value::" +msgstr "" +"Les annotations de fonctions sont généralement utilisées pour des :term:" +"`indications de types ` : par exemple, cette fonction devrait " +"prendre deux arguments :class:`int` et devrait également avoir une valeur de " +"retour de type :class:`int` ::" + +#: ../Doc/glossary.rst:408 +msgid "Function annotation syntax is explained in section :ref:`function`." +msgstr "" +"L'annotation syntaxique de la fonction est expliquée dans la section :ref:" +"`function`." + +#: ../Doc/glossary.rst:410 +msgid "" +"See :term:`variable annotation` and :pep:`484`, which describe this " +"functionality." +msgstr "" +"Voir :term:`variable annotation` et :pep:`484`, qui décrivent cette " +"fonctionnalité." + +#: ../Doc/glossary.rst:412 +msgid "__future__" +msgstr "__future__" + +#: ../Doc/glossary.rst:414 +msgid "" +"A pseudo-module which programmers can use to enable new language features " +"which are not compatible with the current interpreter." +msgstr "" +"Pseudo-module que les développeurs peuvent utiliser pour activer de " +"nouvelles fonctionnalités du langage qui ne sont pas compatibles avec " +"l'interpréteur utilisé." + +#: ../Doc/glossary.rst:417 +msgid "" +"By importing the :mod:`__future__` module and evaluating its variables, you " +"can see when a new feature was first added to the language and when it " +"becomes the default::" +msgstr "" +"En important le module :mod:`__future__` et en affichant ses variables, vous " +"pouvez voir à quel moment une nouvelle fonctionnalité a été rajoutée dans le " +"langage et quand elle devient le comportement par défaut ::" + +#: ../Doc/glossary.rst:424 +msgid "garbage collection" +msgstr "ramasse-miettes" + +#: ../Doc/glossary.rst:426 +msgid "" +"The process of freeing memory when it is not used anymore. Python performs " +"garbage collection via reference counting and a cyclic garbage collector " +"that is able to detect and break reference cycles. The garbage collector " +"can be controlled using the :mod:`gc` module." +msgstr "" +"(*garbage collection* en anglais) Mécanisme permettant de libérer de la " +"mémoire lorsqu'elle n'est plus utilisée. Python utilise un ramasse-miettes " +"par comptage de référence et un ramasse-miettes cyclique capable de détecter " +"et casser les références circulaires. Le ramasse-miettes peut être contrôlé " +"en utilisant le module :mod:`gc`." + +#: ../Doc/glossary.rst:432 +msgid "generator" +msgstr "générateur" + +#: ../Doc/glossary.rst:434 +msgid "" +"A function which returns a :term:`generator iterator`. It looks like a " +"normal function except that it contains :keyword:`yield` expressions for " +"producing a series of values usable in a for-loop or that can be retrieved " +"one at a time with the :func:`next` function." +msgstr "" +"Fonction qui renvoie un :term:`itérateur de générateur`. Cela ressemble à " +"une fonction normale, en dehors du fait qu'elle contient une ou des " +"expressions :keyword:`yield` produisant une série de valeurs utilisable dans " +"une boucle *for* ou récupérées une à une via la fonction :func:`next`." + +#: ../Doc/glossary.rst:439 +msgid "" +"Usually refers to a generator function, but may refer to a *generator " +"iterator* in some contexts. In cases where the intended meaning isn't " +"clear, using the full terms avoids ambiguity." +msgstr "" +"Fait généralement référence à une fonction générateur mais peut faire " +"référence à un *itérateur de générateur* dans certains contextes. Dans les " +"cas où le sens voulu n'est pas clair, utiliser les termes complets lève " +"l’ambigüité." + +#: ../Doc/glossary.rst:442 +msgid "generator iterator" +msgstr "itérateur de générateur" + +#: ../Doc/glossary.rst:444 +msgid "An object created by a :term:`generator` function." +msgstr "Objet créé par une fonction :term:`générateur`." + +#: ../Doc/glossary.rst:446 +msgid "" +"Each :keyword:`yield` temporarily suspends processing, remembering the " +"location execution state (including local variables and pending try-" +"statements). When the *generator iterator* resumes, it picks up where it " +"left off (in contrast to functions which start fresh on every invocation)." +msgstr "" +"Chaque :keyword:`yield` suspend temporairement l'exécution, en se rappelant " +"l'endroit et l'état de l'exécution (y compris les variables locales et les " +"*try* en cours). Lorsque l'itérateur de générateur reprend, il repart là où " +"il en était (contrairement à une fonction qui prendrait un nouveau départ à " +"chaque invocation)." + +#: ../Doc/glossary.rst:453 +msgid "generator expression" +msgstr "expression génératrice" + +#: ../Doc/glossary.rst:455 +msgid "" +"An expression that returns an iterator. It looks like a normal expression " +"followed by a :keyword:`!for` clause defining a loop variable, range, and an " +"optional :keyword:`!if` clause. The combined expression generates values " +"for an enclosing function::" +msgstr "" +"Expression qui donne un itérateur. Elle ressemble à une expression normale, " +"suivie d'une clause :keyword:`!for` définissant une variable de boucle, un " +"intervalle et une clause :keyword:`!if` optionnelle. Toute cette expression " +"génère des valeurs pour la fonction qui l'entoure ::" + +#: ../Doc/glossary.rst:462 +msgid "generic function" +msgstr "fonction générique" + +#: ../Doc/glossary.rst:464 +msgid "" +"A function composed of multiple functions implementing the same operation " +"for different types. Which implementation should be used during a call is " +"determined by the dispatch algorithm." +msgstr "" +"Fonction composée de plusieurs fonctions implémentant les mêmes opérations " +"pour différents types. L'implémentation à utiliser est déterminée lors de " +"l'appel par l'algorithme de répartition." + +#: ../Doc/glossary.rst:468 +msgid "" +"See also the :term:`single dispatch` glossary entry, the :func:`functools." +"singledispatch` decorator, and :pep:`443`." +msgstr "" +"Voir aussi :term:`single dispatch`, le décorateur :func:`functools." +"singledispatch` et la :pep:`443`." + +#: ../Doc/glossary.rst:471 +msgid "GIL" +msgstr "GIL" + +#: ../Doc/glossary.rst:473 +msgid "See :term:`global interpreter lock`." +msgstr "Voir :term:`global interpreter lock`." + +#: ../Doc/glossary.rst:474 +msgid "global interpreter lock" +msgstr "verrou global de l'interpréteur" + +#: ../Doc/glossary.rst:476 +msgid "" +"The mechanism used by the :term:`CPython` interpreter to assure that only " +"one thread executes Python :term:`bytecode` at a time. This simplifies the " +"CPython implementation by making the object model (including critical built-" +"in types such as :class:`dict`) implicitly safe against concurrent access. " +"Locking the entire interpreter makes it easier for the interpreter to be " +"multi-threaded, at the expense of much of the parallelism afforded by multi-" +"processor machines." +msgstr "" +"(*global interpreter lock* en anglais) Mécanisme utilisé par l'interpréteur :" +"term:`CPython` pour s'assurer qu'un seul fil d'exécution (*thread* en " +"anglais) n'exécute le :term:`bytecode` à la fois. Cela simplifie " +"l'implémentation de CPython en rendant le modèle objet (incluant des parties " +"critiques comme la classe native :class:`dict`) implicitement protégé contre " +"les accès concourants. Verrouiller l'interpréteur entier rend plus facile " +"l'implémentation de multiples fils d'exécution (*multi-thread* en anglais), " +"au détriment malheureusement de beaucoup du parallélisme possible sur les " +"machines ayant plusieurs processeurs." + +#: ../Doc/glossary.rst:485 +msgid "" +"However, some extension modules, either standard or third-party, are " +"designed so as to release the GIL when doing computationally-intensive tasks " +"such as compression or hashing. Also, the GIL is always released when doing " +"I/O." +msgstr "" +"Cependant, certains modules d'extension, standards ou non, sont conçus de " +"manière à libérer le GIL lorsqu'ils effectuent des tâches lourdes tel que la " +"compression ou le hachage. De la même manière, le GIL est toujours libéré " +"lors des entrées / sorties." + +#: ../Doc/glossary.rst:490 +msgid "" +"Past efforts to create a \"free-threaded\" interpreter (one which locks " +"shared data at a much finer granularity) have not been successful because " +"performance suffered in the common single-processor case. It is believed " +"that overcoming this performance issue would make the implementation much " +"more complicated and therefore costlier to maintain." +msgstr "" +"Les tentatives précédentes d'implémenter un interpréteur Python avec une " +"granularité de verrouillage plus fine ont toutes échouées, à cause de leurs " +"mauvaises performances dans le cas d'un processeur unique. Il est admis que " +"corriger ce problème de performance induit mènerait à une implémentation " +"beaucoup plus compliquée et donc plus coûteuse à maintenir." + +#: ../Doc/glossary.rst:496 +msgid "hash-based pyc" +msgstr "*pyc* utilisant le hachage" + +#: ../Doc/glossary.rst:498 +msgid "" +"A bytecode cache file that uses the hash rather than the last-modified time " +"of the corresponding source file to determine its validity. See :ref:`pyc-" +"invalidation`." +msgstr "" +"Un fichier de cache de code intermédiaire (*bytecode* en anglais) qui " +"utilise le hachage plutôt que l'heure de dernière modification du fichier " +"source correspondant pour déterminer sa validité. Voir :ref:`pyc-" +"invalidation`." + +#: ../Doc/glossary.rst:501 +msgid "hashable" +msgstr "hachable" + +#: ../Doc/glossary.rst:503 +msgid "" +"An object is *hashable* if it has a hash value which never changes during " +"its lifetime (it needs a :meth:`__hash__` method), and can be compared to " +"other objects (it needs an :meth:`__eq__` method). Hashable objects which " +"compare equal must have the same hash value." +msgstr "" +"Un objet est *hachable* s'il a une empreinte (*hash*) qui ne change jamais " +"(il doit donc implémenter une méthode :meth:`__hash__`) et s'il peut être " +"comparé à d'autres objets (avec la méthode :meth:`__eq__`). Les objets " +"hachables dont la comparaison par ``__eq__`` est vraie doivent avoir la même " +"empreinte." + +#: ../Doc/glossary.rst:508 +msgid "" +"Hashability makes an object usable as a dictionary key and a set member, " +"because these data structures use the hash value internally." +msgstr "" +"La hachabilité permet à un objet d'être utilisé comme clé de dictionnaire ou " +"en tant que membre d'un ensemble (type *set*), car ces structures de données " +"utilisent ce *hash*." + +#: ../Doc/glossary.rst:511 +msgid "" +"Most of Python's immutable built-in objects are hashable; mutable containers " +"(such as lists or dictionaries) are not; immutable containers (such as " +"tuples and frozensets) are only hashable if their elements are hashable. " +"Objects which are instances of user-defined classes are hashable by " +"default. They all compare unequal (except with themselves), and their hash " +"value is derived from their :func:`id`." +msgstr "" +"La plupart des types immuables natifs de Python sont hachables, mais les " +"conteneurs muables (comme les listes ou les dictionnaires) ne le sont pas ; " +"les conteneurs immuables (comme les n-uplets ou les ensembles gelés) ne sont " +"hachables que si leurs éléments sont hachables. Les instances de classes " +"définies par les utilisateurs sont hachables par défaut. Elles sont toutes " +"considérées différentes (sauf avec elles-mêmes) et leur valeur de hachage " +"est calculée à partir de leur :func:`id`." + +#: ../Doc/glossary.rst:518 +msgid "IDLE" +msgstr "IDLE" + +#: ../Doc/glossary.rst:520 +msgid "" +"An Integrated Development Environment for Python. IDLE is a basic editor " +"and interpreter environment which ships with the standard distribution of " +"Python." +msgstr "" +"Environnement de développement intégré pour Python. IDLE est un éditeur " +"basique et un interpréteur livré avec la distribution standard de Python." + +#: ../Doc/glossary.rst:523 +msgid "immutable" +msgstr "immuable" + +#: ../Doc/glossary.rst:525 +msgid "" +"An object with a fixed value. Immutable objects include numbers, strings " +"and tuples. Such an object cannot be altered. A new object has to be " +"created if a different value has to be stored. They play an important role " +"in places where a constant hash value is needed, for example as a key in a " +"dictionary." +msgstr "" +"Objet dont la valeur ne change pas. Les nombres, les chaînes et les n-uplets " +"sont immuables. Ils ne peuvent être modifiés. Un nouvel objet doit être créé " +"si une valeur différente doit être stockée. Ils jouent un rôle important " +"quand une valeur de *hash* constante est requise, typiquement en clé de " +"dictionnaire." + +#: ../Doc/glossary.rst:530 +msgid "import path" +msgstr "chemin des importations" + +#: ../Doc/glossary.rst:532 +msgid "" +"A list of locations (or :term:`path entries `) that are searched " +"by the :term:`path based finder` for modules to import. During import, this " +"list of locations usually comes from :data:`sys.path`, but for subpackages " +"it may also come from the parent package's ``__path__`` attribute." +msgstr "" +"Liste de :term:`entrées ` dans lesquelles le :term:`chercheur " +"basé sur les chemins ` cherche les modules à importer. " +"Typiquement, lors d'une importation, cette liste vient de :data:`sys.path` ; " +"pour les sous-paquets, elle peut aussi venir de l'attribut ``__path__`` du " +"paquet parent." + +#: ../Doc/glossary.rst:537 +msgid "importing" +msgstr "importer" + +#: ../Doc/glossary.rst:539 +msgid "" +"The process by which Python code in one module is made available to Python " +"code in another module." +msgstr "Processus rendant le code Python d'un module disponible dans un autre." + +#: ../Doc/glossary.rst:541 +msgid "importer" +msgstr "importateur" + +#: ../Doc/glossary.rst:543 +msgid "" +"An object that both finds and loads a module; both a :term:`finder` and :" +"term:`loader` object." +msgstr "" +"Objet qui trouve et charge un module, en même temps un :term:`chercheur " +"` et un :term:`chargeur `." + +#: ../Doc/glossary.rst:545 +msgid "interactive" +msgstr "interactif" + +#: ../Doc/glossary.rst:547 +msgid "" +"Python has an interactive interpreter which means you can enter statements " +"and expressions at the interpreter prompt, immediately execute them and see " +"their results. Just launch ``python`` with no arguments (possibly by " +"selecting it from your computer's main menu). It is a very powerful way to " +"test out new ideas or inspect modules and packages (remember ``help(x)``)." +msgstr "" +"Python a un interpréteur interactif, ce qui signifie que vous pouvez écrire " +"des expressions et des instructions à l'invite de l'interpréteur. " +"L'interpréteur Python va les exécuter immédiatement et vous en présenter le " +"résultat. Démarrez juste ``python`` (probablement depuis le menu principal " +"de votre ordinateur). C'est un moyen puissant pour tester de nouvelles idées " +"ou étudier de nouveaux modules (souvenez-vous de ``help(x)``)." + +#: ../Doc/glossary.rst:553 +msgid "interpreted" +msgstr "interprété" + +#: ../Doc/glossary.rst:555 +msgid "" +"Python is an interpreted language, as opposed to a compiled one, though the " +"distinction can be blurry because of the presence of the bytecode compiler. " +"This means that source files can be run directly without explicitly creating " +"an executable which is then run. Interpreted languages typically have a " +"shorter development/debug cycle than compiled ones, though their programs " +"generally also run more slowly. See also :term:`interactive`." +msgstr "" +"Python est un langage interprété, en opposition aux langages compilés, bien " +"que la frontière soit floue en raison de la présence d'un compilateur en " +"code intermédiaire. Cela signifie que les fichiers sources peuvent être " +"exécutés directement, sans avoir à compiler un fichier exécutable " +"intermédiaire. Les langages interprétés ont généralement un cycle de " +"développement / débogage plus court que les langages compilés. Cependant, " +"ils s'exécutent généralement plus lentement. Voir aussi :term:`interactif`." + +#: ../Doc/glossary.rst:562 +msgid "interpreter shutdown" +msgstr "arrêt de l'interpréteur" + +#: ../Doc/glossary.rst:564 +msgid "" +"When asked to shut down, the Python interpreter enters a special phase where " +"it gradually releases all allocated resources, such as modules and various " +"critical internal structures. It also makes several calls to the :term:" +"`garbage collector `. This can trigger the execution of " +"code in user-defined destructors or weakref callbacks. Code executed during " +"the shutdown phase can encounter various exceptions as the resources it " +"relies on may not function anymore (common examples are library modules or " +"the warnings machinery)." +msgstr "" +"Lorsqu'on lui demande de s'arrêter, l'interpréteur Python entre dans une " +"phase spéciale où il libère graduellement les ressources allouées, comme les " +"modules ou quelques structures de données internes. Il fait aussi quelques " +"appels au :term:`ramasse-miettes`. Cela peut déclencher l'exécution de code " +"dans des destructeurs ou des fonctions de rappels de *weakrefs*. Le code " +"exécuté lors de l'arrêt peut rencontrer des exceptions puisque les " +"ressources auxquelles il fait appel sont susceptibles de ne plus " +"fonctionner, (typiquement les modules des bibliothèques ou le mécanisme de " +"*warning*)." + +#: ../Doc/glossary.rst:573 +msgid "" +"The main reason for interpreter shutdown is that the ``__main__`` module or " +"the script being run has finished executing." +msgstr "" +"La principale raison d'arrêt de l'interpréteur est que le module " +"``__main__`` ou le script en cours d'exécution a terminé de s'exécuter." + +#: ../Doc/glossary.rst:575 +msgid "iterable" +msgstr "itérable" + +#: ../Doc/glossary.rst:577 +msgid "" +"An object capable of returning its members one at a time. Examples of " +"iterables include all sequence types (such as :class:`list`, :class:`str`, " +"and :class:`tuple`) and some non-sequence types like :class:`dict`, :term:" +"`file objects `, and objects of any classes you define with an :" +"meth:`__iter__` method or with a :meth:`__getitem__` method that implements :" +"term:`Sequence` semantics." +msgstr "" +"Objet capable de renvoyer ses éléments un à un. Par exemple, tous les types " +"séquence (comme :class:`list`, :class:`str`, et :class:`tuple`), quelques " +"autres types comme :class:`dict`, :term:`objets fichiers ` ou " +"tout objet d'une classe ayant une méthode :meth:`__iter__` ou :meth:" +"`__getitem__` qui implémente la sémantique d'une :term:`Sequence`." + +#: ../Doc/glossary.rst:584 +msgid "" +"Iterables can be used in a :keyword:`for` loop and in many other places " +"where a sequence is needed (:func:`zip`, :func:`map`, ...). When an " +"iterable object is passed as an argument to the built-in function :func:" +"`iter`, it returns an iterator for the object. This iterator is good for " +"one pass over the set of values. When using iterables, it is usually not " +"necessary to call :func:`iter` or deal with iterator objects yourself. The " +"``for`` statement does that automatically for you, creating a temporary " +"unnamed variable to hold the iterator for the duration of the loop. See " +"also :term:`iterator`, :term:`sequence`, and :term:`generator`." +msgstr "" +"Les itérables peuvent être utilisés dans des boucles :keyword:`for` et à " +"beaucoup d'autres endroits où une séquence est requise (:func:`zip`, :func:" +"`map`…). Lorsqu'un itérable est passé comme argument à la fonction native :" +"func:`iter`, celle-ci fournit en retour un itérateur sur cet itérable. Cet " +"itérateur n'est valable que pour une seule passe sur le jeu de valeurs. Lors " +"de l'utilisation d'itérables, il n'est habituellement pas nécessaire " +"d'appeler :func:`iter` ou de s'occuper soi-même des objets itérateurs. " +"L'instruction ``for`` le fait automatiquement pour vous, créant une variable " +"temporaire anonyme pour garder l'itérateur durant la boucle. Voir aussi :" +"term:`itérateur`, :term:`séquence` et :term:`générateur`." + +#: ../Doc/glossary.rst:594 +msgid "iterator" +msgstr "itérateur" + +#: ../Doc/glossary.rst:596 +msgid "" +"An object representing a stream of data. Repeated calls to the iterator's :" +"meth:`~iterator.__next__` method (or passing it to the built-in function :" +"func:`next`) return successive items in the stream. When no more data are " +"available a :exc:`StopIteration` exception is raised instead. At this " +"point, the iterator object is exhausted and any further calls to its :meth:" +"`__next__` method just raise :exc:`StopIteration` again. Iterators are " +"required to have an :meth:`__iter__` method that returns the iterator object " +"itself so every iterator is also iterable and may be used in most places " +"where other iterables are accepted. One notable exception is code which " +"attempts multiple iteration passes. A container object (such as a :class:" +"`list`) produces a fresh new iterator each time you pass it to the :func:" +"`iter` function or use it in a :keyword:`for` loop. Attempting this with an " +"iterator will just return the same exhausted iterator object used in the " +"previous iteration pass, making it appear like an empty container." +msgstr "" +"Objet représentant un flux de donnée. Des appels successifs à la méthode :" +"meth:`~iterator.__next__` de l'itérateur (ou le passer à la fonction native :" +"func:`next`) donne successivement les objets du flux. Lorsque plus aucune " +"donnée n'est disponible, une exception :exc:`StopIteration` est levée. À ce " +"point, l'itérateur est épuisé et tous les appels suivants à sa méthode :meth:" +"`__next__` lèveront encore une exception :exc:`StopIteration`. Les " +"itérateurs doivent avoir une méthode :meth:`__iter__` qui renvoie l'objet " +"itérateur lui-même, de façon à ce que chaque itérateur soit aussi itérable " +"et puisse être utilisé dans la plupart des endroits où d'autres itérables " +"sont attendus. Une exception notable est un code qui tente plusieurs " +"itérations complètes. Un objet conteneur, (tel que :class:`list`) produit un " +"nouvel itérateur neuf à chaque fois qu'il est passé à la fonction :func:" +"`iter` ou s'il est utilisé dans une boucle :keyword:`for`. Faire ceci sur un " +"itérateur donnerait simplement le même objet itérateur épuisé utilisé dans " +"son itération précédente, le faisant ressembler à un conteneur vide." + +#: ../Doc/glossary.rst:611 +msgid "More information can be found in :ref:`typeiter`." +msgstr "Vous trouverez davantage d'informations dans :ref:`typeiter`." + +#: ../Doc/glossary.rst:612 +msgid "key function" +msgstr "fonction clé" + +#: ../Doc/glossary.rst:614 +msgid "" +"A key function or collation function is a callable that returns a value used " +"for sorting or ordering. For example, :func:`locale.strxfrm` is used to " +"produce a sort key that is aware of locale specific sort conventions." +msgstr "" +"Une fonction clé est un objet appelable qui renvoie une valeur à fins de tri " +"ou de classement. Par exemple, la fonction :func:`locale.strxfrm` est " +"utilisée pour générer une clé de classement prenant en compte les " +"conventions de classement spécifiques aux paramètres régionaux courants." + +#: ../Doc/glossary.rst:619 +msgid "" +"A number of tools in Python accept key functions to control how elements are " +"ordered or grouped. They include :func:`min`, :func:`max`, :func:`sorted`, :" +"meth:`list.sort`, :func:`heapq.merge`, :func:`heapq.nsmallest`, :func:`heapq." +"nlargest`, and :func:`itertools.groupby`." +msgstr "" +"Plusieurs outils dans Python acceptent des fonctions clés pour déterminer " +"comment les éléments sont classés ou groupés. On peut citer les fonctions :" +"func:`min`, :func:`max`, :func:`sorted`, :meth:`list.sort`, :func:`heapq." +"merge`, :func:`heapq.nsmallest`, :func:`heapq.nlargest` et :func:`itertools." +"groupby`." + +#: ../Doc/glossary.rst:625 +msgid "" +"There are several ways to create a key function. For example. the :meth:" +"`str.lower` method can serve as a key function for case insensitive sorts. " +"Alternatively, a key function can be built from a :keyword:`lambda` " +"expression such as ``lambda r: (r[0], r[2])``. Also, the :mod:`operator` " +"module provides three key function constructors: :func:`~operator." +"attrgetter`, :func:`~operator.itemgetter`, and :func:`~operator." +"methodcaller`. See the :ref:`Sorting HOW TO ` for examples of " +"how to create and use key functions." +msgstr "" +"Il existe plusieurs moyens de créer une fonction clé. Par exemple, la " +"méthode :meth:`str.lower` peut servir de fonction clé pour effectuer des " +"recherches insensibles à la casse. Aussi, il est possible de créer des " +"fonctions clés avec des expressions :keyword:`lambda`, comme ``lambda r: " +"(r[0], r[2])``. Vous noterez que le module :mod:`operator` propose des " +"constructeurs de fonctions clefs : :func:`~operator.attrgetter`, :func:" +"`~operator.itemgetter` et :func:`~operator.methodcaller`. Voir :ref:`Comment " +"Trier ` pour des exemples de création et d'utilisation de " +"fonctions clefs." + +#: ../Doc/glossary.rst:633 +msgid "keyword argument" +msgstr "argument nommé" + +#: ../Doc/glossary.rst:635 ../Doc/glossary.rst:899 +msgid "See :term:`argument`." +msgstr "Voir :term:`argument`." + +#: ../Doc/glossary.rst:636 +msgid "lambda" +msgstr "lambda" + +#: ../Doc/glossary.rst:638 +msgid "" +"An anonymous inline function consisting of a single :term:`expression` which " +"is evaluated when the function is called. The syntax to create a lambda " +"function is ``lambda [parameters]: expression``" +msgstr "" +"Fonction anonyme sous la forme d'une :term:`expression` et ne contenant " +"qu'une seule expression, exécutée lorsque la fonction est appelée. La " +"syntaxe pour créer des fonctions lambda est : ``lambda [parameters]: " +"expression``" + +#: ../Doc/glossary.rst:641 +msgid "LBYL" +msgstr "LBYL" + +#: ../Doc/glossary.rst:643 +msgid "" +"Look before you leap. This coding style explicitly tests for pre-conditions " +"before making calls or lookups. This style contrasts with the :term:`EAFP` " +"approach and is characterized by the presence of many :keyword:`if` " +"statements." +msgstr "" +"Regarde avant de sauter, (*Look before you leap* en anglais). Ce style de " +"programmation consiste à vérifier des conditions avant d'effectuer des " +"appels ou des accès. Ce style contraste avec le style :term:`EAFP` et se " +"caractérise par la présence de beaucoup d'instructions :keyword:`if`." + +#: ../Doc/glossary.rst:648 +msgid "" +"In a multi-threaded environment, the LBYL approach can risk introducing a " +"race condition between \"the looking\" and \"the leaping\". For example, " +"the code, ``if key in mapping: return mapping[key]`` can fail if another " +"thread removes *key* from *mapping* after the test, but before the lookup. " +"This issue can be solved with locks or by using the EAFP approach." +msgstr "" +"Dans un environnement avec plusieurs fils d'exécution (*multi-threaded* en " +"anglais), le style *LBYL* peut engendrer un séquencement critique (*race " +"condition* en anglais) entre le \"regarde\" et le \"sauter\". Par exemple, " +"le code ``if key in mapping: return mapping[key]`` peut échouer si un autre " +"fil d'exécution supprime la clé *key* du *mapping* après le test mais avant " +"l'accès. Ce problème peut être résolu avec des verrous (*locks*) ou avec " +"l'approche EAFP." + +#: ../Doc/glossary.rst:653 +msgid "list" +msgstr "*list*" + +#: ../Doc/glossary.rst:655 +msgid "" +"A built-in Python :term:`sequence`. Despite its name it is more akin to an " +"array in other languages than to a linked list since access to elements is " +"O(1)." +msgstr "" +"Un type natif de :term:`sequence` dans Python. En dépit de son nom, une " +"``list`` ressemble plus à un tableau (*array* dans la plupart des langages) " +"qu'à une liste chaînée puisque les accès se font en O(1)." + +#: ../Doc/glossary.rst:658 +msgid "list comprehension" +msgstr "liste en compréhension (ou liste en intension)" + +#: ../Doc/glossary.rst:660 +msgid "" +"A compact way to process all or part of the elements in a sequence and " +"return a list with the results. ``result = ['{:#04x}'.format(x) for x in " +"range(256) if x % 2 == 0]`` generates a list of strings containing even hex " +"numbers (0x..) in the range from 0 to 255. The :keyword:`if` clause is " +"optional. If omitted, all elements in ``range(256)`` are processed." +msgstr "" +"Écriture concise pour manipuler tout ou partie des éléments d'une séquence " +"et renvoyer une liste contenant les résultats. ``result = ['{:#04x}'." +"format(x) for x in range(256) if x % 2 == 0]`` génère la liste composée des " +"nombres pairs de 0 à 255 écrits sous formes de chaînes de caractères et en " +"hexadécimal (``0x…``). La clause :keyword:`if` est optionnelle. Si elle est " +"omise, tous les éléments du ``range(256)`` seront utilisés." + +#: ../Doc/glossary.rst:666 +msgid "loader" +msgstr "chargeur" + +#: ../Doc/glossary.rst:668 +msgid "" +"An object that loads a module. It must define a method named :meth:" +"`load_module`. A loader is typically returned by a :term:`finder`. See :pep:" +"`302` for details and :class:`importlib.abc.Loader` for an :term:`abstract " +"base class`." +msgstr "" +"Objet qui charge un module. Il doit définir une méthode nommée :meth:" +"`load_module`. Un chargeur est typiquement donné par un :term:`chercheur " +"`. Voir la :pep:`302` pour plus de détails et :class:`importlib.ABC." +"Loader` pour sa :term:`classe de base abstraite`." + +#: ../Doc/glossary.rst:672 +msgid "magic method" +msgstr "méthode magique" + +#: ../Doc/glossary.rst:676 +msgid "An informal synonym for :term:`special method`." +msgstr "Un synonyme informel de :term:`special method`." + +#: ../Doc/glossary.rst:677 +msgid "mapping" +msgstr "tableau de correspondances" + +#: ../Doc/glossary.rst:679 +msgid "" +"A container object that supports arbitrary key lookups and implements the " +"methods specified in the :class:`~collections.abc.Mapping` or :class:" +"`~collections.abc.MutableMapping` :ref:`abstract base classes `. Examples include :class:`dict`, :class:" +"`collections.defaultdict`, :class:`collections.OrderedDict` and :class:" +"`collections.Counter`." +msgstr "" +"(*mapping* en anglais) Conteneur permettant de rechercher des éléments à " +"partir de clés et implémentant les méthodes spécifiées dans les :ref:" +"`classes de base abstraites ` :class:" +"`collections.abc.Mapping` ou :class:`collections.abc.MutableMapping`. Les " +"classes suivantes sont des exemples de tableaux de correspondances : :class:" +"`dict`, :class:`collections.defaultdict`, :class:`collections.OrderedDict` " +"et :class:`collections.Counter`." + +#: ../Doc/glossary.rst:685 +msgid "meta path finder" +msgstr "chercheur dans les méta-chemins" + +#: ../Doc/glossary.rst:687 +msgid "" +"A :term:`finder` returned by a search of :data:`sys.meta_path`. Meta path " +"finders are related to, but different from :term:`path entry finders `." +msgstr "" +"Un :term:`chercheur ` renvoyé par une recherche dans :data:`sys." +"meta_path`. Les chercheurs dans les méta-chemins ressemblent, mais sont " +"différents des :term:`chercheurs d'entrée dans path `." + +#: ../Doc/glossary.rst:691 +msgid "" +"See :class:`importlib.abc.MetaPathFinder` for the methods that meta path " +"finders implement." +msgstr "" +"Voir :class:`importlib.abc.MetaPathFinder` pour les méthodes que les " +"chercheurs dans les méta-chemins doivent implémenter." + +#: ../Doc/glossary.rst:693 +msgid "metaclass" +msgstr "métaclasse" + +#: ../Doc/glossary.rst:695 +msgid "" +"The class of a class. Class definitions create a class name, a class " +"dictionary, and a list of base classes. The metaclass is responsible for " +"taking those three arguments and creating the class. Most object oriented " +"programming languages provide a default implementation. What makes Python " +"special is that it is possible to create custom metaclasses. Most users " +"never need this tool, but when the need arises, metaclasses can provide " +"powerful, elegant solutions. They have been used for logging attribute " +"access, adding thread-safety, tracking object creation, implementing " +"singletons, and many other tasks." +msgstr "" +"Classe d'une classe. Les définitions de classe créent un nom pour la classe, " +"un dictionnaire de classe et une liste de classes parentes. La métaclasse a " +"pour rôle de réunir ces trois paramètres pour construire la classe. La " +"plupart des langages orientés objet fournissent une implémentation par " +"défaut. La particularité de Python est la possibilité de créer des " +"métaclasses personnalisées. La plupart des utilisateurs n'auront jamais " +"besoin de cet outil, mais lorsque le besoin survient, les métaclasses " +"offrent des solutions élégantes et puissantes. Elles sont utilisées pour " +"journaliser les accès à des propriétés, rendre sûrs les environnements " +"*multi-threads*, suivre la création d'objets, implémenter des singletons et " +"bien d'autres tâches." + +#: ../Doc/glossary.rst:705 +msgid "More information can be found in :ref:`metaclasses`." +msgstr "Plus d'informations sont disponibles dans : :ref:`metaclasses`." + +#: ../Doc/glossary.rst:706 +msgid "method" +msgstr "méthode" + +#: ../Doc/glossary.rst:708 +msgid "" +"A function which is defined inside a class body. If called as an attribute " +"of an instance of that class, the method will get the instance object as its " +"first :term:`argument` (which is usually called ``self``). See :term:" +"`function` and :term:`nested scope`." +msgstr "" +"Fonction définie à l'intérieur d'une classe. Lorsqu'elle est appelée comme " +"un attribut d'une instance de cette classe, la méthode reçoit l'instance en " +"premier :term:`argument` (qui, par convention, est habituellement nommé " +"``self``). Voir :term:`function` et :term:`nested scope`." + +#: ../Doc/glossary.rst:712 +msgid "method resolution order" +msgstr "ordre de résolution des méthodes" + +#: ../Doc/glossary.rst:714 +msgid "" +"Method Resolution Order is the order in which base classes are searched for " +"a member during lookup. See `The Python 2.3 Method Resolution Order `_ for details of the algorithm " +"used by the Python interpreter since the 2.3 release." +msgstr "" +"L'ordre de résolution des méthodes (*MRO* pour *Method Resolution Order* en " +"anglais) est, lors de la recherche d'un attribut dans les classes parentes, " +"la façon dont l'interpréteur Python classe ces classes parentes. Voir `The " +"Python 2.3 Method Resolution Order `_ pour plus de détails sur l'algorithme utilisé par " +"l'interpréteur Python depuis la version 2.3." + +#: ../Doc/glossary.rst:718 +msgid "module" +msgstr "module" + +#: ../Doc/glossary.rst:720 +msgid "" +"An object that serves as an organizational unit of Python code. Modules " +"have a namespace containing arbitrary Python objects. Modules are loaded " +"into Python by the process of :term:`importing`." +msgstr "" +"Objet utilisé pour organiser une portion unitaire de code en Python. Les " +"modules ont un espace de nommage et peuvent contenir n'importe quels objets " +"Python. Charger des modules est appelé :term:`importer `." + +#: ../Doc/glossary.rst:724 +msgid "See also :term:`package`." +msgstr "Voir aussi :term:`paquet`." + +#: ../Doc/glossary.rst:725 +msgid "module spec" +msgstr "spécificateur de module" + +#: ../Doc/glossary.rst:727 +msgid "" +"A namespace containing the import-related information used to load a module. " +"An instance of :class:`importlib.machinery.ModuleSpec`." +msgstr "" +"Espace de nommage contenant les informations, relatives à l'importation, " +"utilisées pour charger un module. C'est une instance de la classe :class:" +"`importlib.machinery.ModuleSpec`." + +#: ../Doc/glossary.rst:729 +msgid "MRO" +msgstr "MRO" + +#: ../Doc/glossary.rst:731 +msgid "See :term:`method resolution order`." +msgstr "Voir :term:`ordre de résolution des méthodes`." + +#: ../Doc/glossary.rst:732 +msgid "mutable" +msgstr "muable" + +#: ../Doc/glossary.rst:734 +msgid "" +"Mutable objects can change their value but keep their :func:`id`. See also :" +"term:`immutable`." +msgstr "" +"Un objet muable peut changer de valeur tout en gardant le même :func:`id`. " +"Voir aussi :term:`immuable`." + +#: ../Doc/glossary.rst:736 +msgid "named tuple" +msgstr "n-uplet nommé" + +#: ../Doc/glossary.rst:738 +msgid "" +"Any tuple-like class whose indexable elements are also accessible using " +"named attributes (for example, :func:`time.localtime` returns a tuple-like " +"object where the *year* is accessible either with an index such as ``t[0]`` " +"or with a named attribute like ``t.tm_year``)." +msgstr "" +"(*named-tuple* en anglais) Classe qui, comme un *n-uplet* (*tuple* en " +"anglais), a ses éléments accessibles par leur indice. Et en plus, les " +"éléments sont accessibles par leur nom. Par exemple, :func:`time.localtime` " +"donne un objet ressemblant à un *n-uplet*, dont *year* est accessible par " +"son indice : ``t[0]`` ou par son nom : ``t.tm_year``)." + +#: ../Doc/glossary.rst:743 +msgid "" +"A named tuple can be a built-in type such as :class:`time.struct_time`, or " +"it can be created with a regular class definition. A full featured named " +"tuple can also be created with the factory function :func:`collections." +"namedtuple`. The latter approach automatically provides extra features such " +"as a self-documenting representation like ``Employee(name='jones', " +"title='programmer')``." +msgstr "" +"Un *n-uplet nommé* peut être un type natif tel que :class:`time.struct_time` " +"ou il peut être construit comme une simple classe. Un *n-uplet nommé* " +"complet peut aussi être créé via la fonction :func:`collections.namedtuple`. " +"Cette dernière approche fournit automatiquement des fonctionnalités " +"supplémentaires, tel qu'une représentation lisible comme " +"``Employee(name='jones', title='programmer')``." + +#: ../Doc/glossary.rst:749 +msgid "namespace" +msgstr "espace de nommage" + +#: ../Doc/glossary.rst:751 +msgid "" +"The place where a variable is stored. Namespaces are implemented as " +"dictionaries. There are the local, global and built-in namespaces as well " +"as nested namespaces in objects (in methods). Namespaces support modularity " +"by preventing naming conflicts. For instance, the functions :func:`builtins." +"open <.open>` and :func:`os.open` are distinguished by their namespaces. " +"Namespaces also aid readability and maintainability by making it clear which " +"module implements a function. For instance, writing :func:`random.seed` or :" +"func:`itertools.islice` makes it clear that those functions are implemented " +"by the :mod:`random` and :mod:`itertools` modules, respectively." +msgstr "" +"L'endroit où une variable est stockée. Les espaces de nommage sont " +"implémentés avec des dictionnaires. Il existe des espaces de nommage " +"globaux, natifs ou imbriqués dans les objets (dans les méthodes). Les " +"espaces de nommage favorisent la modularité car ils permettent d'éviter les " +"conflits de noms. Par exemple, les fonctions :func:`builtins.open <.open>` " +"et :func:`os.open` sont différenciées par leurs espaces de nom. Les espaces " +"de nommage aident aussi à la lisibilité et la maintenabilité en rendant " +"clair quel module implémente une fonction. Par exemple, écrire :func:`random." +"seed` ou :func:`itertools.islice` affiche clairement que ces fonctions sont " +"implémentées respectivement dans les modules :mod:`random` et :mod:" +"`itertools`." + +#: ../Doc/glossary.rst:761 +msgid "namespace package" +msgstr "paquet-espace de nommage" + +#: ../Doc/glossary.rst:763 +msgid "" +"A :pep:`420` :term:`package` which serves only as a container for " +"subpackages. Namespace packages may have no physical representation, and " +"specifically are not like a :term:`regular package` because they have no " +"``__init__.py`` file." +msgstr "" +"Un :term:`paquet` tel que défini dans la :pep:`421` qui ne sert qu'à " +"contenir des sous-paquets. Les paquets-espace de nommage peuvent n'avoir " +"aucune représentation physique et, plus spécifiquement, ne sont pas comme " +"un :term:`paquet classique` puisqu'ils n'ont pas de fichier ``__init__.py``." + +#: ../Doc/glossary.rst:768 +msgid "See also :term:`module`." +msgstr "Voir aussi :term:`module`." + +#: ../Doc/glossary.rst:769 +msgid "nested scope" +msgstr "portée imbriquée" + +#: ../Doc/glossary.rst:771 +msgid "" +"The ability to refer to a variable in an enclosing definition. For " +"instance, a function defined inside another function can refer to variables " +"in the outer function. Note that nested scopes by default work only for " +"reference and not for assignment. Local variables both read and write in " +"the innermost scope. Likewise, global variables read and write to the " +"global namespace. The :keyword:`nonlocal` allows writing to outer scopes." +msgstr "" +"Possibilité de faire référence à une variable déclarée dans une définition " +"englobante. Typiquement, une fonction définie à l'intérieur d'une autre " +"fonction a accès aux variables de cette dernière. Souvenez-vous cependant " +"que cela ne fonctionne que pour accéder à des variables, pas pour les " +"assigner. Les variables locales sont lues et assignées dans l'espace de " +"nommage le plus proche. Tout comme les variables globales qui sont stockés " +"dans l'espace de nommage global, le mot clef :keyword:`nonlocal` permet " +"d'écrire dans l'espace de nommage dans lequel est déclarée la variable." + +#: ../Doc/glossary.rst:778 +msgid "new-style class" +msgstr "nouvelle classe" + +#: ../Doc/glossary.rst:780 +msgid "" +"Old name for the flavor of classes now used for all class objects. In " +"earlier Python versions, only new-style classes could use Python's newer, " +"versatile features like :attr:`~object.__slots__`, descriptors, properties, :" +"meth:`__getattribute__`, class methods, and static methods." +msgstr "" +"Ancien nom pour l'implémentation actuelle des classes, pour tous les objets. " +"Dans les anciennes versions de Python, seules les nouvelles classes " +"pouvaient utiliser les nouvelles fonctionnalités telles que :attr:`~object." +"__slots__`, les descripteurs, les propriétés, :meth:`__getattribute__`, les " +"méthodes de classe et les méthodes statiques." + +#: ../Doc/glossary.rst:784 +msgid "object" +msgstr "objet" + +#: ../Doc/glossary.rst:786 +msgid "" +"Any data with state (attributes or value) and defined behavior (methods). " +"Also the ultimate base class of any :term:`new-style class`." +msgstr "" +"N'importe quelle donnée comportant des états (sous forme d'attributs ou " +"d'une valeur) et un comportement (des méthodes). C'est aussi (``object``) " +"l'ancêtre commun à absolument toutes les :term:`nouvelles classes `." + +#: ../Doc/glossary.rst:789 +msgid "package" +msgstr "paquet" + +#: ../Doc/glossary.rst:791 +msgid "" +"A Python :term:`module` which can contain submodules or recursively, " +"subpackages. Technically, a package is a Python module with an ``__path__`` " +"attribute." +msgstr "" +":term:`module` Python qui peut contenir des sous-modules ou des sous-" +"paquets. Techniquement, un paquet est un module qui possède un attribut " +"``__path__``." + +#: ../Doc/glossary.rst:795 +msgid "See also :term:`regular package` and :term:`namespace package`." +msgstr "Voir aussi :term:`paquet classique` et :term:`namespace package`." + +#: ../Doc/glossary.rst:796 +msgid "parameter" +msgstr "paramètre" + +#: ../Doc/glossary.rst:798 +msgid "" +"A named entity in a :term:`function` (or method) definition that specifies " +"an :term:`argument` (or in some cases, arguments) that the function can " +"accept. There are five kinds of parameter:" +msgstr "" +"Entité nommée dans la définition d'une :term:`fonction` (ou méthode), " +"décrivant un :term:`argument` (ou dans certains cas des arguments) que la " +"fonction accepte. Il existe cinq sortes de paramètres :" + +#: ../Doc/glossary.rst:802 +msgid "" +":dfn:`positional-or-keyword`: specifies an argument that can be passed " +"either :term:`positionally ` or as a :term:`keyword argument " +"`. This is the default kind of parameter, for example *foo* and " +"*bar* in the following::" +msgstr "" +":dfn:`positional-or-keyword` : l'argument peut être passé soit par sa :term:" +"`position `, soit en tant que :term:`argument nommé `. " +"C'est le type de paramètre par défaut. Par exemple, *foo* et *bar* dans " +"l'exemple suivant ::" + +#: ../Doc/glossary.rst:811 +msgid "" +":dfn:`positional-only`: specifies an argument that can be supplied only by " +"position. Python has no syntax for defining positional-only parameters. " +"However, some built-in functions have positional-only parameters (e.g. :func:" +"`abs`)." +msgstr "" +":dfn:`positional-only`: l'argument ne peut être donné que par sa position. " +"Python n'a pas de syntaxe pour déclarer de tels paramètres, cependant des " +"fonctions natives, comme :func:`abs`, en utilisent." + +#: ../Doc/glossary.rst:818 +msgid "" +":dfn:`keyword-only`: specifies an argument that can be supplied only by " +"keyword. Keyword-only parameters can be defined by including a single var-" +"positional parameter or bare ``*`` in the parameter list of the function " +"definition before them, for example *kw_only1* and *kw_only2* in the " +"following::" +msgstr "" +":dfn:`keyword-only` : l'argument ne peut être fourni que nommé. Les " +"paramètres *keyword-only* peuvent être définis en utilisant un seul " +"paramètre *var-positional*, ou en ajoutant une étoile (``*``) seule dans la " +"liste des paramètres avant eux. Par exemple, *kw_only1* et *kw_only2* dans " +"le code suivant ::" + +#: ../Doc/glossary.rst:826 +msgid "" +":dfn:`var-positional`: specifies that an arbitrary sequence of positional " +"arguments can be provided (in addition to any positional arguments already " +"accepted by other parameters). Such a parameter can be defined by " +"prepending the parameter name with ``*``, for example *args* in the " +"following::" +msgstr "" +":dfn:`var-positional` : une séquence d'arguments positionnels peut être " +"fournie (en plus de tous les arguments positionnels déjà acceptés par " +"d'autres paramètres). Un tel paramètre peut être défini en préfixant son nom " +"par une ``*``. Par exemple *args* ci-après ::" + +#: ../Doc/glossary.rst:834 +msgid "" +":dfn:`var-keyword`: specifies that arbitrarily many keyword arguments can be " +"provided (in addition to any keyword arguments already accepted by other " +"parameters). Such a parameter can be defined by prepending the parameter " +"name with ``**``, for example *kwargs* in the example above." +msgstr "" +":dfn:`var-keyword` : une quantité arbitraire d'arguments peut être passée, " +"chacun étant nommé (en plus de tous les arguments nommés déjà acceptés par " +"d'autres paramètres). Un tel paramètre est défini en préfixant le nom du " +"paramètre par ``**``. Par exemple, *kwargs* ci-dessus." + +#: ../Doc/glossary.rst:840 +msgid "" +"Parameters can specify both optional and required arguments, as well as " +"default values for some optional arguments." +msgstr "" +"Les paramètres peuvent spécifier des arguments obligatoires ou optionnels, " +"ainsi que des valeurs par défaut pour les arguments optionnels." + +#: ../Doc/glossary.rst:843 +msgid "" +"See also the :term:`argument` glossary entry, the FAQ question on :ref:`the " +"difference between arguments and parameters `, " +"the :class:`inspect.Parameter` class, the :ref:`function` section, and :pep:" +"`362`." +msgstr "" +"Voir aussi :term:`argument` dans le glossaire, la question sur :ref:`la " +"différence entre les arguments et les paramètres ` dans la FAQ, la classe :class:`inspect.Parameter`, la section :" +"ref:`function` et la :pep:`362`." + +#: ../Doc/glossary.rst:847 +msgid "path entry" +msgstr "entrée de chemin" + +#: ../Doc/glossary.rst:849 +msgid "" +"A single location on the :term:`import path` which the :term:`path based " +"finder` consults to find modules for importing." +msgstr "" +"Emplacement dans le :term:`chemin des importations ` (*import " +"path* en anglais, d'où le *path*) que le :term:`chercheur basé sur les " +"chemins ` consulte pour trouver des modules à importer." + +#: ../Doc/glossary.rst:851 +msgid "path entry finder" +msgstr "chercheur de chemins" + +#: ../Doc/glossary.rst:853 +msgid "" +"A :term:`finder` returned by a callable on :data:`sys.path_hooks` (i.e. a :" +"term:`path entry hook`) which knows how to locate modules given a :term:" +"`path entry`." +msgstr "" +":term:`chercheur ` renvoyé par un appelable sur un :data:`sys." +"path_hooks` (c'est-à-dire un :term:`point d'entrée pour la recherche dans " +"path `) qui sait où trouver des modules lorsqu'on lui donne " +"une :term:`entrée de path `." + +#: ../Doc/glossary.rst:857 +msgid "" +"See :class:`importlib.abc.PathEntryFinder` for the methods that path entry " +"finders implement." +msgstr "" +"Voir :class:`importlib.abc.PathEntryFinder` pour les méthodes qu'un " +"chercheur d'entrée dans *path* doit implémenter." + +#: ../Doc/glossary.rst:859 +msgid "path entry hook" +msgstr "point d'entrée pour la recherche dans *path*" + +#: ../Doc/glossary.rst:861 +msgid "" +"A callable on the :data:`sys.path_hook` list which returns a :term:`path " +"entry finder` if it knows how to find modules on a specific :term:`path " +"entry`." +msgstr "" +"Appelable dans la liste :data:`sys.path_hook` qui donne un :term:`chercheur " +"d'entrée dans path ` s'il sait où trouver des modules " +"pour une :term:`entrée dans path ` donnée." + +#: ../Doc/glossary.rst:864 +msgid "path based finder" +msgstr "chercheur basé sur les chemins" + +#: ../Doc/glossary.rst:866 +msgid "" +"One of the default :term:`meta path finders ` which " +"searches an :term:`import path` for modules." +msgstr "" +"L'un des :term:`chercheurs dans les méta-chemins ` par " +"défaut qui cherche des modules dans un :term:`chemin des importations " +"`." + +#: ../Doc/glossary.rst:868 +msgid "path-like object" +msgstr "objet simili-chemin" + +#: ../Doc/glossary.rst:870 +msgid "" +"An object representing a file system path. A path-like object is either a :" +"class:`str` or :class:`bytes` object representing a path, or an object " +"implementing the :class:`os.PathLike` protocol. An object that supports the :" +"class:`os.PathLike` protocol can be converted to a :class:`str` or :class:" +"`bytes` file system path by calling the :func:`os.fspath` function; :func:" +"`os.fsdecode` and :func:`os.fsencode` can be used to guarantee a :class:" +"`str` or :class:`bytes` result instead, respectively. Introduced by :pep:" +"`519`." +msgstr "" +"Objet représentant un chemin du système de fichiers. Un objet simili-chemin " +"est un objet :class:`str` ou un objet :class:`bytes` représentant un chemin " +"ou un objet implémentant le protocole :class:`os.PathLike`. Un objet qui " +"accepte le protocole :class:`os.PathLike` peut être converti en un chemin :" +"class:`str` ou :class:`bytes` du système de fichiers en appelant la " +"fonction :func:`os.fspath`. :func:`os.fsdecode` et :func:`os.fsencode` " +"peuvent être utilisées, respectivement, pour garantir un résultat de type :" +"class:`str` ou :class:`bytes` à la place. A été Introduit par la :pep:`519`." + +#: ../Doc/glossary.rst:878 +msgid "PEP" +msgstr "PEP" + +#: ../Doc/glossary.rst:880 +msgid "" +"Python Enhancement Proposal. A PEP is a design document providing " +"information to the Python community, or describing a new feature for Python " +"or its processes or environment. PEPs should provide a concise technical " +"specification and a rationale for proposed features." +msgstr "" +"*Python Enhancement Proposal* (Proposition d'amélioration Python). Un PEP " +"est un document de conception fournissant des informations à la communauté " +"Python ou décrivant une nouvelle fonctionnalité pour Python, ses processus " +"ou son environnement. Les PEP doivent fournir une spécification technique " +"concise et une justification des fonctionnalités proposées." + +#: ../Doc/glossary.rst:886 +msgid "" +"PEPs are intended to be the primary mechanisms for proposing major new " +"features, for collecting community input on an issue, and for documenting " +"the design decisions that have gone into Python. The PEP author is " +"responsible for building consensus within the community and documenting " +"dissenting opinions." +msgstr "" +"Les PEPs sont censés être les principaux mécanismes pour proposer de " +"nouvelles fonctionnalités majeures, pour recueillir les commentaires de la " +"communauté sur une question et pour documenter les décisions de conception " +"qui sont intégrées en Python. L’auteur du PEP est responsable de " +"l’établissement d’un consensus au sein de la communauté et de documenter les " +"opinions contradictoires." + +#: ../Doc/glossary.rst:892 +msgid "See :pep:`1`." +msgstr "Voir :pep:`1`." + +#: ../Doc/glossary.rst:893 +msgid "portion" +msgstr "portion" + +#: ../Doc/glossary.rst:895 +msgid "" +"A set of files in a single directory (possibly stored in a zip file) that " +"contribute to a namespace package, as defined in :pep:`420`." +msgstr "" +"Jeu de fichiers dans un seul dossier (pouvant être stocké sous forme de " +"fichier zip) qui contribue à l'espace de nommage d'un paquet, tel que défini " +"dans la :pep:`420`." + +#: ../Doc/glossary.rst:897 +msgid "positional argument" +msgstr "argument positionnel" + +#: ../Doc/glossary.rst:900 +msgid "provisional API" +msgstr "API provisoire" + +#: ../Doc/glossary.rst:902 +msgid "" +"A provisional API is one which has been deliberately excluded from the " +"standard library's backwards compatibility guarantees. While major changes " +"to such interfaces are not expected, as long as they are marked provisional, " +"backwards incompatible changes (up to and including removal of the " +"interface) may occur if deemed necessary by core developers. Such changes " +"will not be made gratuitously -- they will occur only if serious fundamental " +"flaws are uncovered that were missed prior to the inclusion of the API." +msgstr "" +"Une API provisoire est une API qui n'offre aucune garantie de " +"rétrocompatibilité (la bibliothèque standard exige la rétrocompatibilité). " +"Bien que des changements majeurs d'une telle interface ne soient pas " +"attendus, tant qu'elle est étiquetée provisoire, des changements cassant la " +"rétrocompatibilité (y compris sa suppression complète) peuvent survenir si " +"les développeurs principaux le jugent nécessaire. Ces modifications ne " +"surviendront que si de sérieux problèmes sont découverts et qu'ils n'avaient " +"pas été identifiés avant l'ajout de l'API." + +#: ../Doc/glossary.rst:911 +msgid "" +"Even for provisional APIs, backwards incompatible changes are seen as a " +"\"solution of last resort\" - every attempt will still be made to find a " +"backwards compatible resolution to any identified problems." +msgstr "" +"Même pour les API provisoires, les changements cassant la rétrocompatibilité " +"sont considérés comme des \"solutions de dernier recours\". Tout ce qui est " +"possible sera fait pour tenter de résoudre les problèmes en conservant la " +"rétrocompatibilité." + +#: ../Doc/glossary.rst:915 +msgid "" +"This process allows the standard library to continue to evolve over time, " +"without locking in problematic design errors for extended periods of time. " +"See :pep:`411` for more details." +msgstr "" +"Ce processus permet à la bibliothèque standard de continuer à évoluer avec " +"le temps, sans se bloquer longtemps sur des erreurs d'architecture. Voir la :" +"pep:`411` pour plus de détails." + +#: ../Doc/glossary.rst:918 +msgid "provisional package" +msgstr "paquet provisoire" + +#: ../Doc/glossary.rst:920 +msgid "See :term:`provisional API`." +msgstr "Voir :term:`provisional API`." + +#: ../Doc/glossary.rst:921 +msgid "Python 3000" +msgstr "Python 3000" + +#: ../Doc/glossary.rst:923 +msgid "" +"Nickname for the Python 3.x release line (coined long ago when the release " +"of version 3 was something in the distant future.) This is also abbreviated " +"\"Py3k\"." +msgstr "" +"Surnom donné à la série des Python 3.x (très vieux surnom donné à l'époque " +"où Python 3 représentait un futur lointain). Aussi abrégé *Py3k*." + +#: ../Doc/glossary.rst:926 +msgid "Pythonic" +msgstr "*Pythonique*" + +#: ../Doc/glossary.rst:928 +msgid "" +"An idea or piece of code which closely follows the most common idioms of the " +"Python language, rather than implementing code using concepts common to " +"other languages. For example, a common idiom in Python is to loop over all " +"elements of an iterable using a :keyword:`for` statement. Many other " +"languages don't have this type of construct, so people unfamiliar with " +"Python sometimes use a numerical counter instead::" +msgstr "" +"Idée, ou bout de code, qui colle aux idiomes de Python plutôt qu'aux " +"concepts communs rencontrés dans d'autres langages. Par exemple, il est " +"idiomatique en Python de parcourir les éléments d'un itérable en utilisant :" +"keyword:`for`. Beaucoup d'autres langages n'ont pas cette possibilité, donc " +"les gens qui ne sont pas habitués à Python utilisent parfois un compteur " +"numérique à la place ::" + +#: ../Doc/glossary.rst:938 +msgid "As opposed to the cleaner, Pythonic method::" +msgstr "" +"Plutôt qu'utiliser la méthode, plus propre et élégante, donc *Pythonique* ::" + +#: ../Doc/glossary.rst:942 +msgid "qualified name" +msgstr "nom qualifié" + +#: ../Doc/glossary.rst:944 +msgid "" +"A dotted name showing the \"path\" from a module's global scope to a class, " +"function or method defined in that module, as defined in :pep:`3155`. For " +"top-level functions and classes, the qualified name is the same as the " +"object's name::" +msgstr "" +"Nom, comprenant des points, montrant le \"chemin\" de l'espace de nommage " +"global d'un module vers une classe, fonction ou méthode définie dans ce " +"module, tel que défini dans la :pep:`3155`. Pour les fonctions et classes de " +"premier niveau, le nom qualifié est le même que le nom de l'objet ::" + +#: ../Doc/glossary.rst:961 +msgid "" +"When used to refer to modules, the *fully qualified name* means the entire " +"dotted path to the module, including any parent packages, e.g. ``email.mime." +"text``::" +msgstr "" +"Lorsqu'il est utilisé pour nommer des modules, le *nom qualifié complet* " +"(*fully qualified name - FQN* en anglais) signifie le chemin complet (séparé " +"par des points) vers le module, incluant tous les paquets parents. Par " +"exemple : ``email.mime.text`` ::" + +#: ../Doc/glossary.rst:968 +msgid "reference count" +msgstr "nombre de références" + +#: ../Doc/glossary.rst:970 +msgid "" +"The number of references to an object. When the reference count of an " +"object drops to zero, it is deallocated. Reference counting is generally " +"not visible to Python code, but it is a key element of the :term:`CPython` " +"implementation. The :mod:`sys` module defines a :func:`~sys.getrefcount` " +"function that programmers can call to return the reference count for a " +"particular object." +msgstr "" +"Nombre de références à un objet. Lorsque le nombre de références à un objet " +"descend à zéro, l'objet est désalloué. Le comptage de référence n'est " +"généralement pas visible dans le code Python, mais c'est un élément clé de " +"l'implémentation :term:`CPython`. Le module :mod:`sys` définit une fonction :" +"func:`~sys.getrefcount` que les développeurs peuvent utiliser pour obtenir " +"le nombre de références à un objet donné." + +#: ../Doc/glossary.rst:976 +msgid "regular package" +msgstr "paquet classique" + +#: ../Doc/glossary.rst:978 +msgid "" +"A traditional :term:`package`, such as a directory containing an ``__init__." +"py`` file." +msgstr "" +":term:`paquet` traditionnel, tel qu'un dossier contenant un fichier " +"``__init__.py``." + +#: ../Doc/glossary.rst:981 +msgid "See also :term:`namespace package`." +msgstr "Voir aussi :term:`paquet-espace de nommage `." + +#: ../Doc/glossary.rst:982 +msgid "__slots__" +msgstr "``__slots__``" + +#: ../Doc/glossary.rst:984 +msgid "" +"A declaration inside a class that saves memory by pre-declaring space for " +"instance attributes and eliminating instance dictionaries. Though popular, " +"the technique is somewhat tricky to get right and is best reserved for rare " +"cases where there are large numbers of instances in a memory-critical " +"application." +msgstr "" +"Déclaration dans une classe qui économise de la mémoire en pré-allouant de " +"l'espace pour les attributs des instances et qui élimine le dictionnaire " +"(des attributs) des instances. Bien que populaire, cette technique est " +"difficile à maîtriser et devrait être réservée à de rares cas où un grand " +"nombre d'instances dans une application devient un sujet critique pour la " +"mémoire." + +#: ../Doc/glossary.rst:989 +msgid "sequence" +msgstr "séquence" + +#: ../Doc/glossary.rst:991 +msgid "" +"An :term:`iterable` which supports efficient element access using integer " +"indices via the :meth:`__getitem__` special method and defines a :meth:" +"`__len__` method that returns the length of the sequence. Some built-in " +"sequence types are :class:`list`, :class:`str`, :class:`tuple`, and :class:" +"`bytes`. Note that :class:`dict` also supports :meth:`__getitem__` and :meth:" +"`__len__`, but is considered a mapping rather than a sequence because the " +"lookups use arbitrary :term:`immutable` keys rather than integers." +msgstr "" +":term:`itérable` qui offre un accès efficace à ses éléments par un indice " +"sous forme de nombre entier via la méthode spéciale :meth:`__getitem__` et " +"qui définit une méthode :meth:`__len__` donnant sa taille. Voici quelques " +"séquences natives : :class:`list`, :class:`str`, :class:`tuple`, et :class:" +"`bytes`. Notez que :class:`dict` possède aussi une méthode :meth:" +"`__getitem__` et une méthode :meth:`__len__`, mais il est considéré comme un " +"*mapping* plutôt qu'une séquence, car ses accès se font par une clé " +"arbitraire :term:`immuable` plutôt qu'un nombre entier." + +#: ../Doc/glossary.rst:1000 +msgid "" +"The :class:`collections.abc.Sequence` abstract base class defines a much " +"richer interface that goes beyond just :meth:`__getitem__` and :meth:" +"`__len__`, adding :meth:`count`, :meth:`index`, :meth:`__contains__`, and :" +"meth:`__reversed__`. Types that implement this expanded interface can be " +"registered explicitly using :func:`~abc.register`." +msgstr "" +"La classe abstraite de base :class:`collections.abc.Sequence` définit une " +"interface plus riche qui va au-delà des simples :meth:`__getitem__` et :meth:" +"`__len__`, en ajoutant :meth:`count`, :meth:`index`, :meth:`__contains__` " +"et :meth:`__reversed__`. Les types qui implémentent cette interface étendue " +"peuvent s'enregistrer explicitement en utilisant :func:`~abc.register`." + +#: ../Doc/glossary.rst:1007 +msgid "single dispatch" +msgstr "distribution simple" + +#: ../Doc/glossary.rst:1009 +msgid "" +"A form of :term:`generic function` dispatch where the implementation is " +"chosen based on the type of a single argument." +msgstr "" +"Forme de distribution, comme les :term:`fonction génériques `, où l'implémentation est choisie en fonction du type d'un seul " +"argument." + +#: ../Doc/glossary.rst:1011 +msgid "slice" +msgstr "tranche" + +#: ../Doc/glossary.rst:1013 +msgid "" +"An object usually containing a portion of a :term:`sequence`. A slice is " +"created using the subscript notation, ``[]`` with colons between numbers " +"when several are given, such as in ``variable_name[1:3:5]``. The bracket " +"(subscript) notation uses :class:`slice` objects internally." +msgstr "" +"(*slice* en anglais), un objet contenant habituellement une portion de :term:" +"`séquence`. Une tranche est créée en utilisant la notation ``[]`` avec des " +"``:`` entre les nombres lorsque plusieurs sont fournis, comme dans " +"``variable_name[1:3:5]``. Cette notation utilise des objets :class:`slice` " +"en interne." + +#: ../Doc/glossary.rst:1017 +msgid "special method" +msgstr "méthode spéciale" + +#: ../Doc/glossary.rst:1021 +msgid "" +"A method that is called implicitly by Python to execute a certain operation " +"on a type, such as addition. Such methods have names starting and ending " +"with double underscores. Special methods are documented in :ref:" +"`specialnames`." +msgstr "" +"(*special method* en anglais) Méthode appelée implicitement par Python pour " +"exécuter une opération sur un type, comme une addition. De telles méthodes " +"ont des noms commençant et terminant par des doubles tirets bas. Les " +"méthodes spéciales sont documentées dans :ref:`specialnames`." + +#: ../Doc/glossary.rst:1025 +msgid "statement" +msgstr "instruction" + +#: ../Doc/glossary.rst:1027 +msgid "" +"A statement is part of a suite (a \"block\" of code). A statement is either " +"an :term:`expression` or one of several constructs with a keyword, such as :" +"keyword:`if`, :keyword:`while` or :keyword:`for`." +msgstr "" +"Une instruction (*statement* en anglais) est un composant d'un \"bloc\" de " +"code. Une instruction est soit une :term:`expression`, soit une ou plusieurs " +"constructions basées sur un mot-clé, comme :keyword:`if`, :keyword:`while` " +"ou :keyword:`for`." + +#: ../Doc/glossary.rst:1030 +msgid "struct sequence" +msgstr "*struct sequence*" + +#: ../Doc/glossary.rst:1032 +msgid "" +"A tuple with named elements. Struct sequences expose an interface similar " +"to :term:`named tuple` in that elements can be accessed either by index or " +"as an attribute. However, they do not have any of the named tuple methods " +"like :meth:`~collections.somenamedtuple._make` or :meth:`~collections." +"somenamedtuple._asdict`. Examples of struct sequences include :data:`sys." +"float_info` and the return value of :func:`os.stat`." +msgstr "" +"Un n-uplet (*tuple* en anglais) dont les éléments sont nommés. Les *struct " +"sequences* exposent une interface similaire au :term:`n-uplet nommé` car on " +"peut accéder à leurs éléments par un nom d'attribut ou par un indice. " +"Cependant, elles n'ont aucune des méthodes du *n-uplet nommé* : ni :meth:" +"`collections.somenamedtuple._make` ou :meth:`~collections.somenamedtuple." +"_asdict`. Par exemple :data:`sys.float_info` ou les valeurs données par :" +"func:`os.stat` sont des *struct sequence*." + +#: ../Doc/glossary.rst:1038 +msgid "text encoding" +msgstr "encodage de texte" + +#: ../Doc/glossary.rst:1040 +msgid "A codec which encodes Unicode strings to bytes." +msgstr "" +"Codec (codeur-décodeur) qui convertit des chaînes de caractères Unicode en " +"octets (classe *bytes*)." + +#: ../Doc/glossary.rst:1041 +msgid "text file" +msgstr "fichier texte" + +#: ../Doc/glossary.rst:1043 +msgid "" +"A :term:`file object` able to read and write :class:`str` objects. Often, a " +"text file actually accesses a byte-oriented datastream and handles the :term:" +"`text encoding` automatically. Examples of text files are files opened in " +"text mode (``'r'`` or ``'w'``), :data:`sys.stdin`, :data:`sys.stdout`, and " +"instances of :class:`io.StringIO`." +msgstr "" +":term:`file object` capable de lire et d'écrire des objets :class:`str`. " +"Souvent, un fichier texte (*text file* en anglais) accède en fait à un flux " +"de donnée en octets et gère l':term:`text encoding` automatiquement. Des " +"exemples de fichiers textes sont les fichiers ouverts en mode texte (``'r'`` " +"ou ``'w'``), :data:`sys.stdin`, :data:`sys.stdout` et les instances de :" +"class:`io.StringIO`." + +#: ../Doc/glossary.rst:1050 +msgid "" +"See also :term:`binary file` for a file object able to read and write :term:" +"`bytes-like objects `." +msgstr "" +"Voir aussi :term:`binary file` pour un objet fichier capable de lire et " +"d'écrire :term:`bytes-like objects `." + +#: ../Doc/glossary.rst:1052 +msgid "triple-quoted string" +msgstr "chaîne entre triple guillemets" + +#: ../Doc/glossary.rst:1054 +msgid "" +"A string which is bound by three instances of either a quotation mark (\") " +"or an apostrophe ('). While they don't provide any functionality not " +"available with single-quoted strings, they are useful for a number of " +"reasons. They allow you to include unescaped single and double quotes " +"within a string and they can span multiple lines without the use of the " +"continuation character, making them especially useful when writing " +"docstrings." +msgstr "" +"Chaîne qui est délimitée par trois guillemets simples (``'``) ou trois " +"guillemets doubles (``\"``). Bien qu'elle ne fournisse aucune fonctionnalité " +"qui ne soit pas disponible avec une chaîne entre guillemets, elle est utile " +"pour de nombreuses raisons. Elle vous autorise à insérer des guillemets " +"simples et doubles dans une chaîne sans avoir à les protéger et elle peut " +"s'étendre sur plusieurs lignes sans avoir à terminer chaque ligne par un ``" +"\\``. Elle est ainsi particulièrement utile pour les chaînes de " +"documentation (*docstrings*)." + +#: ../Doc/glossary.rst:1061 +msgid "type" +msgstr "type" + +#: ../Doc/glossary.rst:1063 +msgid "" +"The type of a Python object determines what kind of object it is; every " +"object has a type. An object's type is accessible as its :attr:`~instance." +"__class__` attribute or can be retrieved with ``type(obj)``." +msgstr "" +"Le type d'un objet Python détermine quel genre d'objet c'est. Tous les " +"objets ont un type. Le type d'un objet peut être obtenu via son attribut :" +"attr:`~instance.__class__` ou via ``type(obj)``." + +#: ../Doc/glossary.rst:1067 +msgid "type alias" +msgstr "alias de type" + +#: ../Doc/glossary.rst:1069 +msgid "A synonym for a type, created by assigning the type to an identifier." +msgstr "Synonyme d'un type, créé en affectant le type à un identifiant." + +#: ../Doc/glossary.rst:1071 +msgid "" +"Type aliases are useful for simplifying :term:`type hints `. For " +"example::" +msgstr "" +"Les alias de types sont utiles pour simplifier les :term:`indications de " +"types `. Par exemple ::" + +#: ../Doc/glossary.rst:1080 +msgid "could be made more readable like this::" +msgstr "pourrait être rendu plus lisible comme ceci ::" + +#: ../Doc/glossary.rst:1089 ../Doc/glossary.rst:1103 +msgid "See :mod:`typing` and :pep:`484`, which describe this functionality." +msgstr "Voir :mod:`typing` et :pep:`484`, qui décrivent cette fonctionnalité." + +#: ../Doc/glossary.rst:1090 +msgid "type hint" +msgstr "indication de type" + +#: ../Doc/glossary.rst:1092 +msgid "" +"An :term:`annotation` that specifies the expected type for a variable, a " +"class attribute, or a function parameter or return value." +msgstr "" +"Le :term:`annotation` qui spécifie le type attendu pour une variable, un " +"attribut de classe, un paramètre de fonction ou une valeur de retour." + +#: ../Doc/glossary.rst:1095 +msgid "" +"Type hints are optional and are not enforced by Python but they are useful " +"to static type analysis tools, and aid IDEs with code completion and " +"refactoring." +msgstr "" +"Les indications de type sont facultatives et ne sont pas indispensables à " +"l'interpréteur Python, mais elles sont utiles aux outils d'analyse de type " +"statique et aident les IDE à compléter et à réusiner (*code refactoring* en " +"anglais) le code." + +#: ../Doc/glossary.rst:1099 +msgid "" +"Type hints of global variables, class attributes, and functions, but not " +"local variables, can be accessed using :func:`typing.get_type_hints`." +msgstr "" +"Les indicateurs de type de variables globales, d'attributs de classe et de " +"fonctions, mais pas de variables locales, peuvent être consultés en " +"utilisant :func:`typing.get_type_hints`." + +#: ../Doc/glossary.rst:1104 +msgid "universal newlines" +msgstr "retours à la ligne universels" + +#: ../Doc/glossary.rst:1106 +msgid "" +"A manner of interpreting text streams in which all of the following are " +"recognized as ending a line: the Unix end-of-line convention ``'\\n'``, the " +"Windows convention ``'\\r\\n'``, and the old Macintosh convention " +"``'\\r'``. See :pep:`278` and :pep:`3116`, as well as :func:`bytes." +"splitlines` for an additional use." +msgstr "" +"Une manière d'interpréter des flux de texte dans lesquels sont reconnues " +"toutes les fins de ligne suivantes : la convention Unix ``'\\n'``, la " +"convention Windows ``'\\r\\n'`` et l'ancienne convention Macintosh " +"``'\\r'``. Voir la :pep:`278` et la :pep:`3116`, ainsi que la fonction :func:" +"`bytes.splitlines` pour d'autres usages." + +#: ../Doc/glossary.rst:1111 +msgid "variable annotation" +msgstr "annotation de variable" + +#: ../Doc/glossary.rst:1113 +msgid "An :term:`annotation` of a variable or a class attribute." +msgstr ":term:`annotation` d'une variable ou d'un attribut de classe." + +#: ../Doc/glossary.rst:1115 +msgid "" +"When annotating a variable or a class attribute, assignment is optional::" +msgstr "" +"Lorsque vous annotez une variable ou un attribut de classe, l'affectation " +"est facultative ::" + +#: ../Doc/glossary.rst:1120 +msgid "" +"Variable annotations are usually used for :term:`type hints `: " +"for example this variable is expected to take :class:`int` values::" +msgstr "" +"Les annotations de variables sont généralement utilisées pour des :term:" +"`indications de types ` : par exemple, cette variable devrait " +"prendre des valeurs de type :class:`int` ::" + +#: ../Doc/glossary.rst:1126 +msgid "Variable annotation syntax is explained in section :ref:`annassign`." +msgstr "" +"La syntaxe d'annotation de la variable est expliquée dans la section :ref:" +"`annassign`." + +#: ../Doc/glossary.rst:1128 +msgid "" +"See :term:`function annotation`, :pep:`484` and :pep:`526`, which describe " +"this functionality." +msgstr "" +"Reportez-vous à :term:`function annotation`, à la :pep:`484` et à la :pep:" +"`526` qui décrivent cette fonctionnalité." + +#: ../Doc/glossary.rst:1130 +msgid "virtual environment" +msgstr "environnement virtuel" + +#: ../Doc/glossary.rst:1132 +msgid "" +"A cooperatively isolated runtime environment that allows Python users and " +"applications to install and upgrade Python distribution packages without " +"interfering with the behaviour of other Python applications running on the " +"same system." +msgstr "" +"Environnement d'exécution isolé (en mode coopératif) qui permet aux " +"utilisateurs de Python et aux applications d'installer et de mettre à jour " +"des paquets sans interférer avec d'autres applications Python fonctionnant " +"sur le même système." + +#: ../Doc/glossary.rst:1137 +msgid "See also :mod:`venv`." +msgstr "Voir aussi :mod:`venv`." + +#: ../Doc/glossary.rst:1138 +msgid "virtual machine" +msgstr "machine virtuelle" + +#: ../Doc/glossary.rst:1140 +msgid "" +"A computer defined entirely in software. Python's virtual machine executes " +"the :term:`bytecode` emitted by the bytecode compiler." +msgstr "" +"Ordinateur défini entièrement par du logiciel. La machine virtuelle " +"(*virtual machine*) de Python exécute le :term:`bytecode` produit par le " +"compilateur de *bytecode*." + +#: ../Doc/glossary.rst:1142 +msgid "Zen of Python" +msgstr "Le zen de Python" + +#: ../Doc/glossary.rst:1144 +msgid "" +"Listing of Python design principles and philosophies that are helpful in " +"understanding and using the language. The listing can be found by typing " +"\"``import this``\" at the interactive prompt." +msgstr "" +"Liste de principes et de préceptes utiles pour comprendre et utiliser le " +"langage. Cette liste peut être obtenue en tapant \"``import this``\" dans " +"une invite Python interactive." + +#~ msgid "" +#~ "An arbitrary metadata value associated with a function parameter or " +#~ "return value. Its syntax is explained in section :ref:`function`. " +#~ "Annotations may be accessed via the :attr:`__annotations__` special " +#~ "attribute of a function object." +#~ msgstr "" +#~ "Métadonnée quelconque associée au paramètre d'une fonction ou à sa valeur " +#~ "de retour (NdT : la traduction canonique du terme anglais *annotation* " +#~ "est \"décoration\", notamment dans le cas des arbres syntaxiques, ce qui " +#~ "est le cas ici. Cependant, Python ayant déjà utilisé le terme *decorator* " +#~ "dans une autre acception, nous traduisons *annotation* par \"annotation" +#~ "\"). Sa syntaxe est documentée dans la section :ref:`function`. Vous " +#~ "pouvez accéder aux annotations d'une fonction *via* l'attribut spécial :" +#~ "attr:`__annotations__`." + +#~ msgid "" +#~ "Python itself does not assign any particular meaning to function " +#~ "annotations. They are intended to be interpreted by third-party libraries " +#~ "or tools. See :pep:`3107`, which describes some of their potential uses." +#~ msgstr "" +#~ "Python lui-même ne prend pas en compte les annotations. Leur but est " +#~ "d'être interprétées par des bibliothèques ou outils tiers. Voir la :pep:" +#~ "`3207` qui décrit certains usages possibles." + +#~ msgid "A :term:`binary file` reads and write :class:`bytes` objects." +#~ msgstr "Un :term:`fichier binaire` lit et écrit des objets :class:`bytes`." + +#~ msgid "" +#~ "A type metadata value associated with a module global variable or a class " +#~ "attribute. Its syntax is explained in section :ref:`annassign`. " +#~ "Annotations are stored in the :attr:`__annotations__` special attribute " +#~ "of a class or module object and can be accessed using :func:`typing." +#~ "get_type_hints`." +#~ msgstr "" +#~ "Métadonnée associée à une variable globale de module ou a un attribut de " +#~ "classe et qui donne la valeur du type (NdT : la traduction canonique du " +#~ "terme anglais *annotation* est \"décoration\", notamment dans le cas des " +#~ "arbres syntaxiques, ce qui est le cas ici. Cependant, Python ayant déjà " +#~ "utilisé le terme *decorator* dans une autre acception, nous traduisons " +#~ "*annotation* par \"annotation\"). Sa syntaxe est expliquée dans la " +#~ "section :ref:`annassign`. Les annotations sont stockées dans un attribut :" +#~ "attr:`__annotations__` spécial de classe ou de module et sont accessibles " +#~ "en utilisant :func:`typing.get_type_hints`." + +#~ msgid "" +#~ "Python itself does not assign any particular meaning to variable " +#~ "annotations. They are intended to be interpreted by third-party libraries " +#~ "or type checking tools. See :pep:`526`, :pep:`484` which describe some of " +#~ "their potential uses." +#~ msgstr "" +#~ "Python lui-même n'attache aucune signification particulière aux " +#~ "annotations de variables. Elles sont destinées à être interprétées par " +#~ "des bibliothèques tierces ou des outils de contrôle de type. Voir la :pep:" +#~ "`526` et la :pep:`484` qui décrivent certaines de leurs utilisations " +#~ "potentielles." diff --git a/howto/argparse.po b/howto/argparse.po new file mode 100644 index 000000000..a73e40cb9 --- /dev/null +++ b/howto/argparse.po @@ -0,0 +1,633 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-10-13 22:28+0200\n" +"PO-Revision-Date: 2019-07-25 16:44+0200\n" +"Last-Translator: Antonin Décimo \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/howto/argparse.rst:3 +msgid "Argparse Tutorial" +msgstr "Tutoriel *argparse*" + +#: ../Doc/howto/argparse.rst:0 +msgid "author" +msgstr "auteur" + +#: ../Doc/howto/argparse.rst:5 +msgid "Tshepang Lekhonkhobe" +msgstr "Tshepang Lekhonkhobe" + +#: ../Doc/howto/argparse.rst:9 +msgid "" +"This tutorial is intended to be a gentle introduction to :mod:`argparse`, " +"the recommended command-line parsing module in the Python standard library." +msgstr "" +"Ce tutoriel est destiné à être une introduction en douceur à :mod:" +"`argparse`, le module d'analyse de ligne de commande recommandé dans la " +"bibliothèque standard de Python." + +#: ../Doc/howto/argparse.rst:14 +msgid "" +"There are two other modules that fulfill the same task, namely :mod:`getopt` " +"(an equivalent for :c:func:`getopt` from the C language) and the deprecated :" +"mod:`optparse`. Note also that :mod:`argparse` is based on :mod:`optparse`, " +"and therefore very similar in terms of usage." +msgstr "" +"Il y a deux autres modules qui remplissent le même rôle : :mod:`getopt` (un " +"équivalent de :c:func:`getopt` du langage C) et :mod:`optparse` qui est " +"obsolète. Il faut noter que :mod:`argparse` est basé sur :mod:`optparse` et " +"donc s'utilise de manière très similaire." + +#: ../Doc/howto/argparse.rst:22 +msgid "Concepts" +msgstr "Concepts" + +#: ../Doc/howto/argparse.rst:24 +msgid "" +"Let's show the sort of functionality that we are going to explore in this " +"introductory tutorial by making use of the :command:`ls` command:" +msgstr "" +"Commençons par l'utilisation de la commande :command:`ls` pour voir le type " +"de fonctionnalité que nous allons étudier dans ce tutoriel d'introduction :" + +#: ../Doc/howto/argparse.rst:46 +msgid "A few concepts we can learn from the four commands:" +msgstr "Quelques concepts que l'on peut apprendre avec les quatre commandes :" + +#: ../Doc/howto/argparse.rst:48 +msgid "" +"The :command:`ls` command is useful when run without any options at all. It " +"defaults to displaying the contents of the current directory." +msgstr "" +"La commande :command:`ls` est utile quand elle est exécutée sans aucun " +"paramètre. Elle affiche par défaut le contenu du dossier courant." + +#: ../Doc/howto/argparse.rst:51 +msgid "" +"If we want beyond what it provides by default, we tell it a bit more. In " +"this case, we want it to display a different directory, ``pypy``. What we " +"did is specify what is known as a positional argument. It's named so because " +"the program should know what to do with the value, solely based on where it " +"appears on the command line. This concept is more relevant to a command " +"like :command:`cp`, whose most basic usage is ``cp SRC DEST``. The first " +"position is *what you want copied,* and the second position is *where you " +"want it copied to*." +msgstr "" +"Si l'on veut plus que ce qui est proposé par défaut, il faut l'indiquer. " +"Dans le cas présent, on veut afficher un dossier différent : ``pypy``. Ce " +"que l'on a fait c'est spécifier un argument positionnel. C'est appelé ainsi " +"car cela permet au programme de savoir quoi faire avec la valeur en se " +"basant seulement sur sa position dans la ligne de commande. Ce concept est " +"plus pertinent pour une commande comme :command:`cp` dont l'usage de base " +"est ``cp SRC DEST``. Le premier argument est *ce que vous voulez copier* et " +"le second est *où vous voulez le copier*." + +#: ../Doc/howto/argparse.rst:60 +msgid "" +"Now, say we want to change behaviour of the program. In our example, we " +"display more info for each file instead of just showing the file names. The " +"``-l`` in that case is known as an optional argument." +msgstr "" +"Maintenant, supposons que l'on veuille changer la façon dont le programme " +"agit. Dans notre exemple, on affiche plus d'information pour chaque ficher " +"que simplement leur nom. Dans ce cas, ``-l`` est un argument facultatif." + +#: ../Doc/howto/argparse.rst:64 +msgid "" +"That's a snippet of the help text. It's very useful in that you can come " +"across a program you have never used before, and can figure out how it works " +"simply by reading its help text." +msgstr "" +"C'est un fragment du texte d'aide. Cela peut être très utile quand on tombe " +"sur un programme que l'on à jamais utilisé auparavant car on peut comprendre " +"son fonctionnement simplement en lisant l'aide associée." + +#: ../Doc/howto/argparse.rst:70 +msgid "The basics" +msgstr "Les bases" + +#: ../Doc/howto/argparse.rst:72 +msgid "Let us start with a very simple example which does (almost) nothing::" +msgstr "Commençons par un exemple très simple qui ne fait (quasiment) rien ::" + +#: ../Doc/howto/argparse.rst:78 ../Doc/howto/argparse.rst:186 +#: ../Doc/howto/argparse.rst:207 +msgid "Following is a result of running the code:" +msgstr "Ce qui suit est le résultat de l'exécution du code :" + +#: ../Doc/howto/argparse.rst:95 ../Doc/howto/argparse.rst:252 +#: ../Doc/howto/argparse.rst:296 +msgid "Here is what is happening:" +msgstr "Voilà ce qu'il se passe :" + +#: ../Doc/howto/argparse.rst:97 +msgid "" +"Running the script without any options results in nothing displayed to " +"stdout. Not so useful." +msgstr "" +"Exécuter le script sans aucun paramètre a pour effet de ne rien afficher sur " +"la sortie d'erreur. Ce n'est pas très utile." + +#: ../Doc/howto/argparse.rst:100 +msgid "" +"The second one starts to display the usefulness of the :mod:`argparse` " +"module. We have done almost nothing, but already we get a nice help message." +msgstr "" +"Le deuxième commence à montrer l'intérêt du module :mod:`argparse`. On n'a " +"quasiment rien fait mais on a déjà un beau message d'aide." + +#: ../Doc/howto/argparse.rst:103 +msgid "" +"The ``--help`` option, which can also be shortened to ``-h``, is the only " +"option we get for free (i.e. no need to specify it). Specifying anything " +"else results in an error. But even then, we do get a useful usage message, " +"also for free." +msgstr "" +"L'option ``--help``, que l'on peut aussi raccourcir en ``-h``, est la seule " +"option que l'on a gratuitement (pas besoin de la préciser). Préciser quoi " +"que ce soit d'autre entraîne une erreur. Mais même dans ce cas, on reçoit " +"aussi un message utile, toujours gratuitement." + +#: ../Doc/howto/argparse.rst:110 +msgid "Introducing Positional arguments" +msgstr "Introduction aux arguments positionnels" + +#: ../Doc/howto/argparse.rst:112 +msgid "An example::" +msgstr "Un exemple ::" + +#: ../Doc/howto/argparse.rst:120 +msgid "And running the code:" +msgstr "On exécute le code :" + +#: ../Doc/howto/argparse.rst:138 +msgid "Here is what's happening:" +msgstr "Voilà ce qu'il se passe :" + +#: ../Doc/howto/argparse.rst:140 +msgid "" +"We've added the :meth:`add_argument` method, which is what we use to specify " +"which command-line options the program is willing to accept. In this case, " +"I've named it ``echo`` so that it's in line with its function." +msgstr "" +"On a ajouté la méthode :meth:`add_argument` que l'on utilise pour préciser " +"quels paramètre de lignes de commandes le programme peut accepter. Dans le " +"cas présent, je l'ai appelé ``echo`` pour que cela corresponde à sa fonction." + +#: ../Doc/howto/argparse.rst:144 +msgid "Calling our program now requires us to specify an option." +msgstr "" +"Utiliser le programme nécessite maintenant que l'on précise un paramètre." + +#: ../Doc/howto/argparse.rst:146 +msgid "" +"The :meth:`parse_args` method actually returns some data from the options " +"specified, in this case, ``echo``." +msgstr "" +"La méthode :meth:`parse_args` renvoie en réalité certaines données des " +"paramètres précisés, dans le cas présent : ``echo``." + +#: ../Doc/howto/argparse.rst:149 +msgid "" +"The variable is some form of 'magic' that :mod:`argparse` performs for free " +"(i.e. no need to specify which variable that value is stored in). You will " +"also notice that its name matches the string argument given to the method, " +"``echo``." +msgstr "" +"La variable est comme une forme de 'magie' que :mod:`argparse` effectue " +"gratuitement (c.-à-d. pas besoin de préciser dans quelle variable la valeur " +"est stockée). Vous aurez aussi remarqué que le nom est le même que " +"l'argument en chaîne de caractères donné à la méthode : ``echo``." + +#: ../Doc/howto/argparse.rst:154 +msgid "" +"Note however that, although the help display looks nice and all, it " +"currently is not as helpful as it can be. For example we see that we got " +"``echo`` as a positional argument, but we don't know what it does, other " +"than by guessing or by reading the source code. So, let's make it a bit more " +"useful::" +msgstr "" +"Notez cependant que, même si l'affichage d'aide paraît bien , il n'est pas " +"aussi utile qu'il pourrait l'être. Par exemple, on peut lire que ``echo`` " +"est un argument positionnel mais on ne peut pas savoir ce que cela fait " +"autrement qu'en le devinant ou en lisant le code source. Donc, rendons-le un " +"peu plus utile ::" + +#: ../Doc/howto/argparse.rst:165 +msgid "And we get:" +msgstr "Et on obtient :" + +#: ../Doc/howto/argparse.rst:178 +msgid "Now, how about doing something even more useful::" +msgstr "" +"À présent, que diriez-vous de faire quelque chose d'encore plus utile ::" + +#: ../Doc/howto/argparse.rst:196 +msgid "" +"That didn't go so well. That's because :mod:`argparse` treats the options we " +"give it as strings, unless we tell it otherwise. So, let's tell :mod:" +"`argparse` to treat that input as an integer::" +msgstr "" +"Cela n'a pas très bien fonctionné. C'est parce que :mod:`argparse` traite " +"les paramètres que l'on donne comme des chaînes de caractères à moins qu'on " +"ne lui indique de faire autrement. Donc, disons à :mod:`argparse` de traiter " +"cette entrée comme un entier ::" + +#: ../Doc/howto/argparse.rst:217 +msgid "" +"That went well. The program now even helpfully quits on bad illegal input " +"before proceeding." +msgstr "" +"Cela a bien fonctionné. Maintenant le programme va même s'arrêter si " +"l'entrée n'est pas légale avant de procéder à l'exécution." + +#: ../Doc/howto/argparse.rst:222 +msgid "Introducing Optional arguments" +msgstr "Introduction aux arguments optionnels" + +#: ../Doc/howto/argparse.rst:224 +msgid "" +"So far we have been playing with positional arguments. Let us have a look on " +"how to add optional ones::" +msgstr "" +"Jusqu'à maintenant, on a joué avec les arguments positionnels. Regardons " +"comment ajouter des paramètres optionnels ::" + +#: ../Doc/howto/argparse.rst:234 ../Doc/howto/argparse.rst:280 +#: ../Doc/howto/argparse.rst:396 ../Doc/howto/argparse.rst:430 +msgid "And the output:" +msgstr "Et le résultat :" + +#: ../Doc/howto/argparse.rst:254 +msgid "" +"The program is written so as to display something when ``--verbosity`` is " +"specified and display nothing when not." +msgstr "" +"Le programme est écrit de sorte qu'il n'affiche rien sauf si l'option ``--" +"verbosity`` est précisée." + +#: ../Doc/howto/argparse.rst:257 +msgid "" +"To show that the option is actually optional, there is no error when running " +"the program without it. Note that by default, if an optional argument isn't " +"used, the relevant variable, in this case :attr:`args.verbosity`, is given " +"``None`` as a value, which is the reason it fails the truth test of the :" +"keyword:`if` statement." +msgstr "" +"Pour montrer que l'option est bien optionnelle il n'y aura pas d'erreur s'il " +"on exécute le programme sans celle-ci. Notez que par défaut, si une option " +"n'est pas utilisée, la variable associée, dans le cas présent : :attr:`args." +"verbosity`, prend la valeur ``None`` c'est pourquoi elle échoue le test de " +"vérité de l'assertion :keyword:`if`." + +#: ../Doc/howto/argparse.rst:263 +msgid "The help message is a bit different." +msgstr "Le message d'aide est quelque peu différent." + +#: ../Doc/howto/argparse.rst:265 +msgid "" +"When using the ``--verbosity`` option, one must also specify some value, any " +"value." +msgstr "" +"Quand on utilise l'option ``--verbosity`` on doit aussi préciser une valeur, " +"n'importe laquelle." + +#: ../Doc/howto/argparse.rst:268 +msgid "" +"The above example accepts arbitrary integer values for ``--verbosity``, but " +"for our simple program, only two values are actually useful, ``True`` or " +"``False``. Let's modify the code accordingly::" +msgstr "" +"L'exemple ci-dessus accepte des valeurs entières arbitraires pour ``--" +"verbosity`` mais pour notre programme simple seule deux valeurs sont " +"réellement utiles : ``True`` et ``False``. Modifions le code en accord avec " +"cela ::" + +#: ../Doc/howto/argparse.rst:298 +msgid "" +"The option is now more of a flag than something that requires a value. We " +"even changed the name of the option to match that idea. Note that we now " +"specify a new keyword, ``action``, and give it the value ``\"store_true\"``. " +"This means that, if the option is specified, assign the value ``True`` to :" +"data:`args.verbose`. Not specifying it implies ``False``." +msgstr "" +"Maintenant le paramètre est plus une option que quelque chose qui nécessite " +"une valeur. On a même changé le nom du paramètre pour qu'il corresponde à " +"cette idée. Notez que maintenant on précise une nouvelle ``action`` clavier " +"et qu'on lui donne la valeur ``\"store_true\"``. Cela signifie que si " +"l'option est précisée la valeur ``True`` est assignée à :data:`args." +"verbose`. Ne rien préciser implique la valeur ``False``." + +#: ../Doc/howto/argparse.rst:305 +msgid "" +"It complains when you specify a value, in true spirit of what flags actually " +"are." +msgstr "" +"Dans l'esprit de ce que sont vraiment les options, pas des paramètres, il se " +"plaint quand vous tentez de préciser une valeur." + +#: ../Doc/howto/argparse.rst:308 +msgid "Notice the different help text." +msgstr "Notez que l'aide est différente." + +#: ../Doc/howto/argparse.rst:312 +msgid "Short options" +msgstr "Les paramètres raccourcis" + +#: ../Doc/howto/argparse.rst:314 +msgid "" +"If you are familiar with command line usage, you will notice that I haven't " +"yet touched on the topic of short versions of the options. It's quite " +"simple::" +msgstr "" +"Si vous êtes familier avec l'utilisation de la ligne de commande, vous avez " +"dû remarquer que je n'ai pour l'instant rien dit au sujet des versions " +"raccourcies des paramètres. C'est très simple ::" + +#: ../Doc/howto/argparse.rst:326 +msgid "And here goes:" +msgstr "Et voilà :" + +#: ../Doc/howto/argparse.rst:339 +msgid "Note that the new ability is also reflected in the help text." +msgstr "Notez que la nouvelle option est aussi indiquée dans l'aide." + +#: ../Doc/howto/argparse.rst:343 +msgid "Combining Positional and Optional arguments" +msgstr "Combinaison d'arguments positionnels et optionnels" + +#: ../Doc/howto/argparse.rst:345 +msgid "Our program keeps growing in complexity::" +msgstr "Notre programme continue de croître en complexité ::" + +#: ../Doc/howto/argparse.rst:360 +msgid "And now the output:" +msgstr "Et voilà le résultat :" + +#: ../Doc/howto/argparse.rst:374 +msgid "We've brought back a positional argument, hence the complaint." +msgstr "Nous avons ajouté un argument nommé, d'où le message d'erreur." + +#: ../Doc/howto/argparse.rst:376 +msgid "Note that the order does not matter." +msgstr "Notez que l'ordre importe peu." + +#: ../Doc/howto/argparse.rst:378 +msgid "" +"How about we give this program of ours back the ability to have multiple " +"verbosity values, and actually get to use them::" +msgstr "" +"Qu'en est-il si nous donnons à ce programme la possibilité d'avoir plusieurs " +"niveaux de verbosité, et que celui-ci les prend en compte ::" + +#: ../Doc/howto/argparse.rst:412 +msgid "" +"These all look good except the last one, which exposes a bug in our program. " +"Let's fix it by restricting the values the ``--verbosity`` option can " +"accept::" +msgstr "" +"Tout semble bon sauf le dernier, qui montre que notre programme contient un " +"bogue. Corrigeons cela en restreignant les valeurs que ``--verbosity`` " +"accepte ::" + +#: ../Doc/howto/argparse.rst:448 +msgid "" +"Note that the change also reflects both in the error message as well as the " +"help string." +msgstr "" +"Notez que ce changement est pris en compte à la fois dans le message " +"d'erreur et dans le texte d'aide." + +#: ../Doc/howto/argparse.rst:451 +msgid "" +"Now, let's use a different approach of playing with verbosity, which is " +"pretty common. It also matches the way the CPython executable handles its " +"own verbosity argument (check the output of ``python --help``)::" +msgstr "" +"Essayons maintenant une approche différente pour jouer sur la verbosité, ce " +"qui arrive fréquemment. Cela correspond également à comment le programme " +"CPython gère ses propres paramètres de verbosité (jetez un œil sur la sortie " +"de la commande ``python --help``) ::" + +#: ../Doc/howto/argparse.rst:470 +msgid "" +"We have introduced another action, \"count\", to count the number of " +"occurrences of a specific optional arguments:" +msgstr "" +"Nous avons introduit une autre action, ``\"count\"``, pour compter le nombre " +"d’occurrences d'une argument optionnel en particulier :" + +#: ../Doc/howto/argparse.rst:498 +msgid "" +"Yes, it's now more of a flag (similar to ``action=\"store_true\"``) in the " +"previous version of our script. That should explain the complaint." +msgstr "" +"Oui, c'est maintenant d'avantage une option (similaire à ``action=" +"\"store_true\"``) de la version précédente de notre script. Cela devrait " +"expliquer le message d'erreur." + +#: ../Doc/howto/argparse.rst:501 +msgid "It also behaves similar to \"store_true\" action." +msgstr "Cela se comporte de la même manière que l'action ``\"store_true\"``." + +#: ../Doc/howto/argparse.rst:503 +msgid "" +"Now here's a demonstration of what the \"count\" action gives. You've " +"probably seen this sort of usage before." +msgstr "" +"Maintenant voici une démonstration de ce que l'action ``\"count\"`` fait. " +"Vous avez sûrement vu ce genre d'utilisation auparavant." + +#: ../Doc/howto/argparse.rst:506 +msgid "" +"And if you don't specify the ``-v`` flag, that flag is considered to have " +"``None`` value." +msgstr "" +"Et si vous ne spécifiez pas l'option ``-v``, cette option prendra la valeur " +"``None``." + +#: ../Doc/howto/argparse.rst:509 +msgid "" +"As should be expected, specifying the long form of the flag, we should get " +"the same output." +msgstr "" +"Comme on s'y attend, en spécifiant l'option dans sa forme longue, on devrait " +"obtenir la même sortie." + +#: ../Doc/howto/argparse.rst:512 +msgid "" +"Sadly, our help output isn't very informative on the new ability our script " +"has acquired, but that can always be fixed by improving the documentation " +"for our script (e.g. via the ``help`` keyword argument)." +msgstr "" +"Malheureusement, notre sortie d'aide n'est pas très informative à propos des " +"nouvelles possibilités de notre programme, mais cela peut toujours être " +"corrigé en améliorant sa documentation (en utilisant l'argument ``help``)." + +#: ../Doc/howto/argparse.rst:516 +msgid "That last output exposes a bug in our program." +msgstr "La dernière sortie du programme montre que celui-ci contient un bogue." + +#: ../Doc/howto/argparse.rst:519 +msgid "Let's fix::" +msgstr "Corrigeons ::" + +#: ../Doc/howto/argparse.rst:538 +msgid "And this is what it gives:" +msgstr "Et c'est ce que ça donne :" + +#: ../Doc/howto/argparse.rst:553 +msgid "" +"First output went well, and fixes the bug we had before. That is, we want " +"any value >= 2 to be as verbose as possible." +msgstr "" +"Les premières exécutions du programme sont correctes, et le bogue que nous " +"avons eu est corrigé. Cela dit, nous voulons que n'importe quelle valeur >= " +"2 rende le programme aussi verbeux que possible." + +#: ../Doc/howto/argparse.rst:556 +msgid "Third output not so good." +msgstr "La troisième sortie de programme n'est pas si bien que ça." + +#: ../Doc/howto/argparse.rst:558 +msgid "Let's fix that bug::" +msgstr "Corrigeons ce bogue ::" + +#: ../Doc/howto/argparse.rst:575 +msgid "" +"We've just introduced yet another keyword, ``default``. We've set it to " +"``0`` in order to make it comparable to the other int values. Remember that " +"by default, if an optional argument isn't specified, it gets the ``None`` " +"value, and that cannot be compared to an int value (hence the :exc:" +"`TypeError` exception)." +msgstr "" +"Nous venons juste d'introduire un nouveau mot clef, ``default``. Nous " +"l'avons définit à ``0`` pour le rendre comparable aux autres valeurs. " +"Rappelez-vous que par défaut, si un argument optionnel n'est pas spécifié, " +"il sera définit à ``None``, et ne pourra pas être comparé à une valeur de " +"type entier (une erreur :exc:`TypeError` serait alors levée)." + +#: ../Doc/howto/argparse.rst:582 +msgid "And:" +msgstr "Et :" + +#: ../Doc/howto/argparse.rst:589 +msgid "" +"You can go quite far just with what we've learned so far, and we have only " +"scratched the surface. The :mod:`argparse` module is very powerful, and " +"we'll explore a bit more of it before we end this tutorial." +msgstr "" +"Vous pouvez aller assez loin seulement avec ce que nous avons appris jusqu'à " +"maintenant, et nous n'avons qu’aperçu la surface. Le module :mod:`argparse` " +"est très puissant, et nous allons l'explorer un peu plus avant la fin de ce " +"tutoriel." + +#: ../Doc/howto/argparse.rst:596 +msgid "Getting a little more advanced" +msgstr "Aller un peu plus loin" + +#: ../Doc/howto/argparse.rst:598 +msgid "" +"What if we wanted to expand our tiny program to perform other powers, not " +"just squares::" +msgstr "" +"Qu'en est-il si nous souhaitons étendre notre mini programme pour le rendre " +"capable de calculer d'autres puissances, et pas seulement des carrés ::" + +#: ../Doc/howto/argparse.rst:615 ../Doc/howto/argparse.rst:653 +msgid "Output:" +msgstr "Sortie :" + +#: ../Doc/howto/argparse.rst:636 +msgid "" +"Notice that so far we've been using verbosity level to *change* the text " +"that gets displayed. The following example instead uses verbosity level to " +"display *more* text instead::" +msgstr "" +"Il est à noter que jusqu'à présent nous avons utilisé le niveau de verbosité " +"pour *changer* le texte qui est affiché. L'exemple suivant au contraire " +"utilise le niveau de verbosité pour afficher *plus* de texte à la place ::" + +#: ../Doc/howto/argparse.rst:667 +msgid "Conflicting options" +msgstr "Paramètres en conflit" + +#: ../Doc/howto/argparse.rst:669 +msgid "" +"So far, we have been working with two methods of an :class:`argparse." +"ArgumentParser` instance. Let's introduce a third one, :meth:" +"`add_mutually_exclusive_group`. It allows for us to specify options that " +"conflict with each other. Let's also change the rest of the program so that " +"the new functionality makes more sense: we'll introduce the ``--quiet`` " +"option, which will be the opposite of the ``--verbose`` one::" +msgstr "" +"Jusque là, nous avons travaillé avec deux méthodes d'une instance de :class:" +"`argparse.ArgumentParser`. En voici une troisième, :meth:" +"`add_mutually_exclusive_group`. Elle nous permet de spécifier des paramètres " +"qui sont en conflit entre eux. Changeons aussi le reste du programme de " +"telle sorte que la nouvelle fonctionnalité fasse sens : nous allons " +"introduire l'option ``--quiet``, qui va avoir l'effet opposé de l'option ``--" +"verbose`` ::" + +#: ../Doc/howto/argparse.rst:695 +msgid "" +"Our program is now simpler, and we've lost some functionality for the sake " +"of demonstration. Anyways, here's the output:" +msgstr "" +"Notre programme est maintenant plus simple, et nous avons perdu des " +"fonctionnalités pour faire cette démonstration. Peu importe, voici la sortie " +"du programme :" + +#: ../Doc/howto/argparse.rst:713 +msgid "" +"That should be easy to follow. I've added that last output so you can see " +"the sort of flexibility you get, i.e. mixing long form options with short " +"form ones." +msgstr "" +"Cela devrait être facile à suivre. J'ai ajouté cette dernière sortie pour " +"que vous puissiez voir le genre de flexibilité que vous pouvez avoir, par " +"exemple pour faire un mélange entre des paramètres courts et longs." + +#: ../Doc/howto/argparse.rst:717 +msgid "" +"Before we conclude, you probably want to tell your users the main purpose of " +"your program, just in case they don't know::" +msgstr "" +"Avant d'en finir, vous voudrez certainement dire à vos utilisateurs quel est " +"le but principal de votre programme, juste dans le cas ou ils ne le " +"sauraient pas ::" + +#: ../Doc/howto/argparse.rst:738 +msgid "" +"Note that slight difference in the usage text. Note the ``[-v | -q]``, which " +"tells us that we can either use ``-v`` or ``-q``, but not both at the same " +"time:" +msgstr "" +"Notez cette nuance dans le texte d'utilisation. Les options `[-v | -q]`` " +"nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais pas " +"les deux ensemble :" + +#: ../Doc/howto/argparse.rst:760 +msgid "Conclusion" +msgstr "Conclusion" + +#: ../Doc/howto/argparse.rst:762 +msgid "" +"The :mod:`argparse` module offers a lot more than shown here. Its docs are " +"quite detailed and thorough, and full of examples. Having gone through this " +"tutorial, you should easily digest them without feeling overwhelmed." +msgstr "" +"Le module :mod:`argparse` offre bien plus que ce qui est montré ici. Sa " +"documentation est assez détaillée, complète et pleine d'exemples. En ayant " +"accompli ce tutoriel, vous pourrez facilement comprendre cette documentation " +"sans vous sentir dépassé." diff --git a/howto/clinic.po b/howto/clinic.po new file mode 100644 index 000000000..f7590053a --- /dev/null +++ b/howto/clinic.po @@ -0,0 +1,2907 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2019-03-26 17:29+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/howto/clinic.rst:5 +msgid "Argument Clinic How-To" +msgstr "Guide Argument Clinic" + +#: ../Doc/howto/clinic.rst:0 +msgid "author" +msgstr "auteur" + +#: ../Doc/howto/clinic.rst:7 +msgid "Larry Hastings" +msgstr "Larry Hastings" + +#: ../Doc/howto/clinic.rst:None +msgid "Abstract" +msgstr "Résumé" + +#: ../Doc/howto/clinic.rst:12 +msgid "" +"Argument Clinic is a preprocessor for CPython C files. Its purpose is to " +"automate all the boilerplate involved with writing argument parsing code for " +"\"builtins\". This document shows you how to convert your first C function " +"to work with Argument Clinic, and then introduces some advanced topics on " +"Argument Clinic usage." +msgstr "" +"Argument Clinic est un préprocesseur pour les fichiers C de CPython. Il " +"permet d'automatiser les tâches répétitives lors de la rédaction du code " +"d'analyse d'arguments pour les modules natifs. Ce document vous montre " +"comment convertir votre première fonction C de façon à ce qu'elle fonctionne " +"avec Argument Clinic, avant d'introduire des usages plus avancés d'Argument " +"Clinic. " + +#: ../Doc/howto/clinic.rst:19 +msgid "" +"Currently Argument Clinic is considered internal-only for CPython. Its use " +"is not supported for files outside CPython, and no guarantees are made " +"regarding backwards compatibility for future versions. In other words: if " +"you maintain an external C extension for CPython, you're welcome to " +"experiment with Argument Clinic in your own code. But the version of " +"Argument Clinic that ships with the next version of CPython *could* be " +"totally incompatible and break all your code." +msgstr "" +"Argument Clinic est pour le moment considéré comme un outil interne à " +"CPython. Il n'est pas conçu pour gérer des fichiers à l'extérieur de " +"CPython, et sa compatibilité ascendante n'est pas garantie pour les versions " +"futures. En d'autres termes, si vous êtes mainteneur d'une extension C pour " +"CPython, vous pouvez bien sûr expérimenter avec Argument Clinic sur votre " +"propre code. Mais la version d'Argument Clinic livrée avec la prochaine " +"version de CPython *pourrait* être totalement incompatible et casser tout " +"votre code." + +#: ../Doc/howto/clinic.rst:29 +msgid "The Goals Of Argument Clinic" +msgstr "Les objectifs d'Argument Clinic" + +#: ../Doc/howto/clinic.rst:31 +msgid "" +"Argument Clinic's primary goal is to take over responsibility for all " +"argument parsing code inside CPython. This means that, when you convert a " +"function to work with Argument Clinic, that function should no longer do any " +"of its own argument parsing—the code generated by Argument Clinic should be " +"a \"black box\" to you, where CPython calls in at the top, and your code " +"gets called at the bottom, with ``PyObject *args`` (and maybe ``PyObject " +"*kwargs``) magically converted into the C variables and types you need." +msgstr "" +"Le premier objectif d'Argument Clinic est de prendre en charge toute " +"l'analyse d'arguments à l'intérieur de CPython. Cela signifie que si vous " +"convertissez une fonction pour fonctionner avec Argument Clinic, cette " +"fonction n'a plus du tout besoin d'analyser ses propres arguments. Le code " +"généré par Argument Clinic doit être une « boîte noire » avec en entrée " +"l'appel de CPython, et en sortie l'appel à votre code. Entre les deux, " +"``PyObject *args`` (et éventuellement ``PyObject *kwargs``) sont convertis " +"magiquement dans les variables et types C dont vous avez besoin." + +#: ../Doc/howto/clinic.rst:41 +msgid "" +"In order for Argument Clinic to accomplish its primary goal, it must be easy " +"to use. Currently, working with CPython's argument parsing library is a " +"chore, requiring maintaining redundant information in a surprising number of " +"places. When you use Argument Clinic, you don't have to repeat yourself." +msgstr "" +"Pour que le premier objectif d'Argument Clinic soit atteint, il faut qu'il " +"soit facile à utiliser. Actuellement, travailler avec la bibliothèque " +"d'analyse d'arguments de CPython est une corvée. Il faut maintenir une " +"quantité surprenante d'informations redondantes. En utilisant Argument " +"Clinic, il n'est plus nécessaire de se répéter." + +#: ../Doc/howto/clinic.rst:47 +msgid "" +"Obviously, no one would want to use Argument Clinic unless it's solving " +"their problem—and without creating new problems of its own. So it's " +"paramount that Argument Clinic generate correct code. It'd be nice if the " +"code was faster, too, but at the very least it should not introduce a major " +"speed regression. (Eventually Argument Clinic *should* make a major speedup " +"possible—we could rewrite its code generator to produce tailor-made argument " +"parsing code, rather than calling the general-purpose CPython argument " +"parsing library. That would make for the fastest argument parsing possible!)" +msgstr "" +"Certainement, personne ne voudrait utiliser Argument Clinic s'il ne réglait " +"pas leur problème -- sans en créer de nouveaux. Il est donc de la première " +"importance qu'Argument Clinic génère du code correct. Il est aussi " +"souhaitable que le code soit aussi plus rapide. Au minimum, il ne doit pas " +"introduire de régression significative sur la vitesse d'exécution. (Au bout " +"du compte, Argument Clinic *devrait* permettre une accélération importante " +"-- on pourrait ré-écrire son générateur de code pour produire du code " +"d'analyse d'argument adapté au mieux, plutôt que d'utiliser la bibliothèque " +"d'analyse d'argument générique. On aurait ainsi l'analyse d'argument la plus " +"rapide possible !)" + +#: ../Doc/howto/clinic.rst:59 +msgid "" +"Additionally, Argument Clinic must be flexible enough to work with any " +"approach to argument parsing. Python has some functions with some very " +"strange parsing behaviors; Argument Clinic's goal is to support all of them." +msgstr "" +"De plus, Argument Clinic doit être suffisamment flexible pour s'accommoder " +"d'approches différentes de l'analyse d'arguments. Il y a des fonctions dans " +"Python dont le traitement des arguments est très étrange ; le but d'Argument " +"Clinic est de les gérer toutes. " + +#: ../Doc/howto/clinic.rst:64 +msgid "" +"Finally, the original motivation for Argument Clinic was to provide " +"introspection \"signatures\" for CPython builtins. It used to be, the " +"introspection query functions would throw an exception if you passed in a " +"builtin. With Argument Clinic, that's a thing of the past!" +msgstr "" +"Finalement, la motivation première d'Argument Clinic était de fournir des « " +"signatures » pour l'introspection des composants natifs de CPython. " +"Précédemment, les fonctions d'introspection levaient une exception si vous " +"passiez un composant natif. Grâce à Argument Clinic, ce comportement " +"appartient au passé !" + +#: ../Doc/howto/clinic.rst:70 +msgid "" +"One idea you should keep in mind, as you work with Argument Clinic: the more " +"information you give it, the better job it'll be able to do. Argument Clinic " +"is admittedly relatively simple right now. But as it evolves it will get " +"more sophisticated, and it should be able to do many interesting and smart " +"things with all the information you give it." +msgstr "" +"En travaillant avec Argument Clinic, il faut garder à l'esprit que plus vous " +"lui donnez de détails, meilleur sera son boulot. Argument Clinic est bien " +"sûr assez simple pour le moment. Mais à mesure qu'il évoluera et deviendra " +"plus sophistiqué, il sera capable de faire beaucoup de choses intéressantes " +"et intelligentes à partir de l'information que vous lui fournissez." + +#: ../Doc/howto/clinic.rst:80 +msgid "Basic Concepts And Usage" +msgstr "Concepts de base et utilisation" + +#: ../Doc/howto/clinic.rst:82 +msgid "" +"Argument Clinic ships with CPython; you'll find it in ``Tools/clinic/clinic." +"py``. If you run that script, specifying a C file as an argument:" +msgstr "" +"Argument Clinic est livré avec CPython; vous le trouverez dans ``Tools/" +"clinic/clinic.py``. Si vous exécutez ce script, en spécifiant un fichier C " +"comme argument : " + +#: ../Doc/howto/clinic.rst:89 +msgid "" +"Argument Clinic will scan over the file looking for lines that look exactly " +"like this:" +msgstr "Argument Clinic va parcourir le fichier en cherchant cette ligne :" + +#: ../Doc/howto/clinic.rst:96 +msgid "" +"When it finds one, it reads everything up to a line that looks exactly like " +"this:" +msgstr "" +"Lorsqu'il en trouve une, il lit tout ce qui suit, jusqu'à cette ligne :" + +#: ../Doc/howto/clinic.rst:103 +msgid "" +"Everything in between these two lines is input for Argument Clinic. All of " +"these lines, including the beginning and ending comment lines, are " +"collectively called an Argument Clinic \"block\"." +msgstr "" +"Tout ce qui se trouve entre ces deux lignes est une entrée pour Argument " +"Clinic. Toutes ces lignes, en incluant les commentaires de début et de fin, " +"sont appelées collectivement un « bloc » d'Argument Clinic. " + +#: ../Doc/howto/clinic.rst:107 +msgid "" +"When Argument Clinic parses one of these blocks, it generates output. This " +"output is rewritten into the C file immediately after the block, followed by " +"a comment containing a checksum. The Argument Clinic block now looks like " +"this:" +msgstr "" +"Lorsque *Argument Clinic* analyse l'un de ces blocs, il produit une sortie. " +"Cette sortie est réécrite dans le fichier C immédiatement après le bloc, " +"suivie par un commentaire contenant une somme de contrôle. Le bloc Argument " +"Clinic ressemble maintenant à cela :" + +#: ../Doc/howto/clinic.rst:120 +msgid "" +"If you run Argument Clinic on the same file a second time, Argument Clinic " +"will discard the old output and write out the new output with a fresh " +"checksum line. However, if the input hasn't changed, the output won't " +"change either." +msgstr "" +"Si vous exécutez de nouveau Argument Clinic sur ce même fichier, Argument " +"Clinic supprime la vieille sortie, et écrit la nouvelle sortie avec une " +"ligne de somme de contrôle mise à jour. Cependant, si l'entrée n'a pas " +"changé, la sortie ne change pas non plus. " + +#: ../Doc/howto/clinic.rst:124 +msgid "" +"You should never modify the output portion of an Argument Clinic block. " +"Instead, change the input until it produces the output you want. (That's " +"the purpose of the checksum—to detect if someone changed the output, as " +"these edits would be lost the next time Argument Clinic writes out fresh " +"output.)" +msgstr "" +"Vous ne devez jamais modifier la sortie d'un bloc Argument Clinic. Changez " +"plutôt l'entrée jusqu'à obtenir la sortie souhaitée (c'est précisément le " +"but de la somme de contrôle, détecter si la sortie a été changée. En effet, " +"ces modifications seront perdues après que Argument Clinic a écrit une " +"nouvelle sortie)." + +#: ../Doc/howto/clinic.rst:129 +msgid "" +"For the sake of clarity, here's the terminology we'll use with Argument " +"Clinic:" +msgstr "Par souci de clarté, voilà la terminologie que nous emploierons :" + +#: ../Doc/howto/clinic.rst:131 +msgid "" +"The first line of the comment (``/*[clinic input]``) is the *start line*." +msgstr "" +"La première ligne du commentaire (``/*[clinic input]``) est la *ligne de " +"début*." + +#: ../Doc/howto/clinic.rst:132 +msgid "" +"The last line of the initial comment (``[clinic start generated code]*/``) " +"is the *end line*." +msgstr "" +"La dernière ligne du commentaire initial (``[clinic start generated code]*/" +"``) est la *ligne de fin*." + +#: ../Doc/howto/clinic.rst:133 +msgid "" +"The last line (``/*[clinic end generated code: checksum=...]*/``) is the " +"*checksum line*." +msgstr "" +"La dernière ligne (``/*[clinic end generated code: checksum=...]*/``) est la " +"*ligne de contrôle*. " + +#: ../Doc/howto/clinic.rst:134 +msgid "In between the start line and the end line is the *input*." +msgstr "" +"On appelle *entrée* ce qui se trouve entre la ligne de début et la ligne de " +"fin." + +#: ../Doc/howto/clinic.rst:135 +msgid "In between the end line and the checksum line is the *output*." +msgstr "" +"Et on appelle *sortie* ce qui se trouve entre la ligne de fin et la ligne de " +"contrôle." + +#: ../Doc/howto/clinic.rst:136 +msgid "" +"All the text collectively, from the start line to the checksum line " +"inclusively, is the *block*. (A block that hasn't been successfully " +"processed by Argument Clinic yet doesn't have output or a checksum line, but " +"it's still considered a block.)" +msgstr "" +"L'ensemble du texte, depuis la ligne de début jusqu'à la ligne de contrôle " +"incluse s'appelle le *bloc*. (Un bloc qui n'a pas encore été traité avec " +"succès par Argument Clinic n'a pas encore de sortie ni de ligne de contrôle " +"mais est quand même considéré comme un bloc)" + +#: ../Doc/howto/clinic.rst:143 +msgid "Converting Your First Function" +msgstr "Convertissez votre première fonction" + +#: ../Doc/howto/clinic.rst:145 +msgid "" +"The best way to get a sense of how Argument Clinic works is to convert a " +"function to work with it. Here, then, are the bare minimum steps you'd need " +"to follow to convert a function to work with Argument Clinic. Note that for " +"code you plan to check in to CPython, you really should take the conversion " +"farther, using some of the advanced concepts you'll see later on in the " +"document (like \"return converters\" and \"self converters\"). But we'll " +"keep it simple for this walkthrough so you can learn." +msgstr "" +"La meilleure manière de comprendre le fonctionnement d'Argument Clinic est " +"de convertir une fonction. Voici donc les étapes minimales que vous devez " +"suivre pour convertir une fonction de manière à ce qu'elle fonctionne avec " +"Argument Clinic. Remarquez que pour du code que vous comptez inclure dans " +"CPython, vous devrez certainement pousser plus loin la conversion, en " +"utilisant les concepts avancés que nous verrons plus loin dans ce document " +"(comme ``return converters`` et ``self converters``). Mais concentrons nous " +"pour le moment sur les choses simples." + +#: ../Doc/howto/clinic.rst:154 +msgid "Let's dive in!" +msgstr "En route !" + +#: ../Doc/howto/clinic.rst:156 +msgid "" +"Make sure you're working with a freshly updated checkout of the CPython " +"trunk." +msgstr "" +"Assurez-vous que vous travaillez sur une copie récemment mise à jour du code " +"de CPython." + +#: ../Doc/howto/clinic.rst:159 +msgid "" +"Find a Python builtin that calls either :c:func:`PyArg_ParseTuple` or :c:" +"func:`PyArg_ParseTupleAndKeywords`, and hasn't been converted to work with " +"Argument Clinic yet. For my example I'm using ``_pickle.Pickler.dump()``." +msgstr "" +"Trouvez une fonction native de Python qui fait appel à :c:func:" +"`PyArg_ParseTuple` ou :c:func:`PyArg_ParseTupleAndKeywords`, et n'a pas " +"encore été convertie par Argument Clinic. Pour cet exemple, j'utilise " +"``_pickle.Pickler.dump()``." + +#: ../Doc/howto/clinic.rst:164 +msgid "" +"If the call to the ``PyArg_Parse`` function uses any of the following format " +"units:" +msgstr "Si l'appel à ``PyArg_Parse`` utilise l'un des formats suivants :" + +#: ../Doc/howto/clinic.rst:176 +msgid "" +"or if it has multiple calls to :c:func:`PyArg_ParseTuple`, you should choose " +"a different function. Argument Clinic *does* support all of these " +"scenarios. But these are advanced topics—let's do something simpler for " +"your first function." +msgstr "" +"ou s'il y a de multiples appels à :c:func:`PyArg_ParseTuple`, choisissez une " +"fonction différente. Argument Clinic gère tous ces scénarios, mais se sont " +"des sujets trop avancés pour notre première fonction." + +#: ../Doc/howto/clinic.rst:181 +msgid "" +"Also, if the function has multiple calls to :c:func:`PyArg_ParseTuple` or :c:" +"func:`PyArg_ParseTupleAndKeywords` where it supports different types for the " +"same argument, or if the function uses something besides PyArg_Parse " +"functions to parse its arguments, it probably isn't suitable for conversion " +"to Argument Clinic. Argument Clinic doesn't support generic functions or " +"polymorphic parameters." +msgstr "" +"Par ailleurs, si la fonction a des appels multiples à :c:func:" +"`PyArg_ParseTuple` ou :c:func:`PyArg_ParseTupleAndKeywords` dans lesquels " +"elle permet différents types pour les mêmes arguments, il n'est probablement " +"pas possible de la convertir pour Argument Clinic. Argument Clinic ne gère " +"pas les fonctions génériques ou les paramètres polymorphes." + +#: ../Doc/howto/clinic.rst:188 +msgid "Add the following boilerplate above the function, creating our block::" +msgstr "" +"Ajoutez les lignes standard suivantes au-dessus de votre fonction pour créer " +"notre bloc ::" + +#: ../Doc/howto/clinic.rst:193 +msgid "" +"Cut the docstring and paste it in between the ``[clinic]`` lines, removing " +"all the junk that makes it a properly quoted C string. When you're done you " +"should have just the text, based at the left margin, with no line wider than " +"80 characters. (Argument Clinic will preserve indents inside the docstring.)" +msgstr "" +"Coupez la *docstring* et collez-la entre les lignes commençant par " +"``[clinic]``, en enlevant tout le bazar qui en fait une chaîne de caractères " +"correcte en C. Une fois que c'est fait, vous devez avoir seulement le texte, " +"aligné à gauche, sans ligne plus longue que 80 caractères (Argument Clinic " +"préserve l'indentation à l'intérieur de la *docstring*)." + +#: ../Doc/howto/clinic.rst:199 +msgid "" +"If the old docstring had a first line that looked like a function signature, " +"throw that line away. (The docstring doesn't need it anymore—when you use " +"``help()`` on your builtin in the future, the first line will be built " +"automatically based on the function's signature.)" +msgstr "" +"Si l'ancienne *docstring* commençait par une ligne qui ressemble à une " +"signature de fonction, supprimez cette ligne. (Elle n'est plus nécessaire " +"pour la *docstring*. Dans le futur, quand vous utiliserez ``help()`` pour " +"une fonction native, la première ligne sera construite automatiquement à " +"partir de la signature de la fonction.)" + +#: ../Doc/howto/clinic.rst:205 ../Doc/howto/clinic.rst:226 +#: ../Doc/howto/clinic.rst:250 ../Doc/howto/clinic.rst:308 +#: ../Doc/howto/clinic.rst:348 ../Doc/howto/clinic.rst:375 +#: ../Doc/howto/clinic.rst:481 ../Doc/howto/clinic.rst:533 +msgid "Sample::" +msgstr "Échantillon ::" + +#: ../Doc/howto/clinic.rst:211 +msgid "" +"If your docstring doesn't have a \"summary\" line, Argument Clinic will " +"complain. So let's make sure it has one. The \"summary\" line should be a " +"paragraph consisting of a single 80-column line at the beginning of the " +"docstring." +msgstr "" +"Si votre *docstring* ne contient pas de ligne « résumé », Argument Clinic va " +"se plaindre. Assurons-nous donc qu'il y en a une. La ligne « résumé » doit " +"être un paragraphe consistant en une seule ligne de 80 colonnes au début de " +"la *docstring*." + +#: ../Doc/howto/clinic.rst:216 +msgid "" +"(Our example docstring consists solely of a summary line, so the sample code " +"doesn't have to change for this step.)" +msgstr "" +"Dans notre exemple, la *docstring* est seulement composée d'une ligne de " +"résumé, donc le code ne change pas à cette étape." + +#: ../Doc/howto/clinic.rst:219 +msgid "" +"Above the docstring, enter the name of the function, followed by a blank " +"line. This should be the Python name of the function, and should be the " +"full dotted path to the function—it should start with the name of the " +"module, include any sub-modules, and if the function is a method on a class " +"it should include the class name too." +msgstr "" +"Au dessus de la *docstring*, entrez le nom de la fonction, suivi d'une ligne " +"vide. Ce doit être le nom de la fonction en Python et être le chemin complet " +"jusqu'à la fonction. Il doit commencer par le nom du module, suivi de tous " +"les sous-modules, puis, si la fonction est une méthode de classe, inclure " +"aussi le nom de la classe." + +#: ../Doc/howto/clinic.rst:234 +msgid "" +"If this is the first time that module or class has been used with Argument " +"Clinic in this C file, you must declare the module and/or class. Proper " +"Argument Clinic hygiene prefers declaring these in a separate block " +"somewhere near the top of the C file, in the same way that include files and " +"statics go at the top. (In our sample code we'll just show the two blocks " +"next to each other.)" +msgstr "" +"Si c'est la première fois que ce module ou cette classe est utilisée avec " +"Argument Clinic dans ce fichier C, vous devez déclarer votre module et/ou " +"votre classe. Pour suivre de bonnes pratiques avec Argument Clinic, il vaut " +"mieux faire ces déclaration quelque part en tête du fichier C, comme les " +"fichiers inclus et les statiques (dans cet extrait, nous montrons les deux " +"blocs à côté l'un de l'autre)." + +#: ../Doc/howto/clinic.rst:242 +msgid "" +"The name of the class and module should be the same as the one seen by " +"Python. Check the name defined in the :c:type:`PyModuleDef` or :c:type:" +"`PyTypeObject` as appropriate." +msgstr "" +"Le nom de la classe et du module doivent être les mêmes que ceux vus par " +"Python. Selon le cas, référez-vous à :c:type:`PyModuleDef` ou :c:type:" +"`PyTypeObject`" + +#: ../Doc/howto/clinic.rst:246 +msgid "" +"When you declare a class, you must also specify two aspects of its type in " +"C: the type declaration you'd use for a pointer to an instance of this " +"class, and a pointer to the :c:type:`PyTypeObject` for this class." +msgstr "" +"Quand vous déclarez une classe, vous devez aussi spécifier deux aspects de " +"son type en C: la déclaration de type que vous utiliseriez pour un pointeur " +"vers une instance de cette classe et un pointeur vers le :c:type:" +"`PyTypeObject` de cette classe." + +#: ../Doc/howto/clinic.rst:266 +msgid "" +"Declare each of the parameters to the function. Each parameter should get " +"its own line. All the parameter lines should be indented from the function " +"name and the docstring." +msgstr "" +"Déclarez chacun des paramètres de la fonction. Chaque paramètre doit être " +"sur une ligne séparée. Tous les paramètres doivent être indentés par rapport " +"au nom de la fonction et à la *docstring*." + +#: ../Doc/howto/clinic.rst:270 +msgid "The general form of these parameter lines is as follows:" +msgstr "La forme générale de ces paramètres est la suivante :" + +#: ../Doc/howto/clinic.rst:276 +msgid "If the parameter has a default value, add that after the converter:" +msgstr "" +"Si le paramètre a une valeur par défaut, ajoutez ceci après le " +"convertisseur :" + +#: ../Doc/howto/clinic.rst:283 +msgid "" +"Argument Clinic's support for \"default values\" is quite sophisticated; " +"please see :ref:`the section below on default values ` for " +"more information." +msgstr "" +"Argument Clinic peut traiter les « valeurs par défaut » de manière assez " +"sophistiquée; voyez :ref:`la section ci-dessous sur les valeurs par défaut " +"` pour plus de détails." + +#: ../Doc/howto/clinic.rst:287 +msgid "Add a blank line below the parameters." +msgstr "Ajoutez une ligne vide sous les paramètres." + +#: ../Doc/howto/clinic.rst:289 +msgid "" +"What's a \"converter\"? It establishes both the type of the variable used " +"in C, and the method to convert the Python value into a C value at runtime. " +"For now you're going to use what's called a \"legacy converter\"—a " +"convenience syntax intended to make porting old code into Argument Clinic " +"easier." +msgstr "" +"Que fait le « convertisseur » ? Il établit à la fois le type de variable " +"utilisé en C et la méthode pour convertir la valeur Python en valeur C lors " +"de l'exécution. Pour le moment, vous allez utiliser ce qui s'appelle un « " +"convertisseur hérité » -- une syntaxe de convenance qui facilite le portage " +"de vieux code dans Argument Clinic." + +#: ../Doc/howto/clinic.rst:296 +msgid "" +"For each parameter, copy the \"format unit\" for that parameter from the " +"``PyArg_Parse()`` format argument and specify *that* as its converter, as a " +"quoted string. (\"format unit\" is the formal name for the one-to-three " +"character substring of the ``format`` parameter that tells the argument " +"parsing function what the type of the variable is and how to convert it. " +"For more on format units please see :ref:`arg-parsing`.)" +msgstr "" +"Pour chaque paramètre, copiez l'« unité de format » de ce paramètre à partir " +"de l'argument de ``PyArg_Parse()`` et spécifiez *ça* comme convertisseur, " +"entre guillemets. (l'« unité de format » est le nom formel pour la partie du " +"paramètre ``format``, de un à trois caractères, qui indique à la fonction " +"d'analyse d'arguments quel est le type de la variable et comment la " +"convertir. Pour plus d'information sur les unités de format, voyez :ref:`arg-" +"parsing`.)" + +#: ../Doc/howto/clinic.rst:305 +msgid "" +"For multicharacter format units like ``z#``, use the entire two-or-three " +"character string." +msgstr "" +"Pour des unités de format de plusieurs caractères, comme ``z#``, utilisez " +"l'ensemble des 2 ou 3 caractères de la chaîne. " + +#: ../Doc/howto/clinic.rst:323 +msgid "" +"If your function has ``|`` in the format string, meaning some parameters " +"have default values, you can ignore it. Argument Clinic infers which " +"parameters are optional based on whether or not they have default values." +msgstr "" +"Si votre fonction a le caractère ``|`` dans son format, parce que certains " +"paramètres ont des valeurs par défaut, vous pouvez l'ignorer. Argument " +"Clinic infère quels paramètres sont optionnels selon s'ils ont ou non une " +"valeur par défaut." + +#: ../Doc/howto/clinic.rst:328 +msgid "" +"If your function has ``$`` in the format string, meaning it takes keyword-" +"only arguments, specify ``*`` on a line by itself before the first keyword-" +"only argument, indented the same as the parameter lines." +msgstr "" +"Si votre fonction a le caractère ``$`` dans son format, parce qu'elle " +"n'accepte que des arguments nommés, spécifiez ``*`` sur une ligne à part, " +"avant le premier argument nommé, avec la même indentation que les lignes de " +"paramètres." + +#: ../Doc/howto/clinic.rst:333 +msgid "(``_pickle.Pickler.dump`` has neither, so our sample is unchanged.)" +msgstr "" +"(``_pickle.Pickler.dump`` n'a ni l'un ni l'autre, donc notre exemple est " +"inchangé.)" + +#: ../Doc/howto/clinic.rst:336 +msgid "" +"If the existing C function calls :c:func:`PyArg_ParseTuple` (as opposed to :" +"c:func:`PyArg_ParseTupleAndKeywords`), then all its arguments are positional-" +"only." +msgstr "" +"Si la fonction C existante appelle :c:func:`PyArg_ParseTuple` (et pas :c:" +"func:`PyArg_ParseTupleAndKeywords`), alors tous ses arguments sont " +"uniquement positionnels. " + +#: ../Doc/howto/clinic.rst:340 +msgid "" +"To mark all parameters as positional-only in Argument Clinic, add a ``/`` on " +"a line by itself after the last parameter, indented the same as the " +"parameter lines." +msgstr "" +"Pour marquer tous les paramètres comme uniquement positionnels dans Argument " +"Clinic, ajoutez ``/`` sur une ligne à part après le dernier paramètre, avec " +"la même indentation que les lignes de paramètres." + +#: ../Doc/howto/clinic.rst:344 +msgid "" +"Currently this is all-or-nothing; either all parameters are positional-only, " +"or none of them are. (In the future Argument Clinic may relax this " +"restriction.)" +msgstr "" +"Pour le moment, c'est tout ou rien ; soit tous les paramètres sont " +"uniquement positionnels, ou aucun ne l'est. (Dans le futur, Argument Clinic " +"supprimera peut être cette restriction.)" + +#: ../Doc/howto/clinic.rst:364 +msgid "" +"It's helpful to write a per-parameter docstring for each parameter. But per-" +"parameter docstrings are optional; you can skip this step if you prefer." +msgstr "" +"Il est utile d'ajouter une *docstring* pour chaque paramètre, mais c'est " +"optionnel; vous pouvez passer cette étape si vous préférez." + +#: ../Doc/howto/clinic.rst:368 +msgid "" +"Here's how to add a per-parameter docstring. The first line of the per-" +"parameter docstring must be indented further than the parameter definition. " +"The left margin of this first line establishes the left margin for the whole " +"per-parameter docstring; all the text you write will be outdented by this " +"amount. You can write as much text as you like, across multiple lines if " +"you wish." +msgstr "" +"Voici comment ajouter la *docstring* d'un paramètre. La première ligne doit " +"être plus indentée que la définition du paramètre. La marge gauche de cette " +"première ligne établit la marge gauche pour l'ensemble de la *docstring* de " +"ce paramètre; tout le texte que vous écrivez sera indenté de cette quantité. " +"Vous pouvez écrire autant de texte que vous le souhaitez, sur plusieurs " +"lignes." + +#: ../Doc/howto/clinic.rst:392 +msgid "" +"Save and close the file, then run ``Tools/clinic/clinic.py`` on it. With " +"luck everything worked---your block now has output, and a ``.c.h`` file has " +"been generated! Reopen the file in your text editor to see::" +msgstr "" +"Enregistrez puis fermez le fichier, puis exécutez ``Tools/clinic/clinic.py`` " +"dessus. Avec un peu de chance tout a fonctionné, votre bloc a maintenant une " +"sortie, et un fichier ``.c.h`` a été généré ! Ré-ouvrez le fichier dans " +"votre éditeur pour voir ::" + +#: ../Doc/howto/clinic.rst:411 +msgid "" +"Obviously, if Argument Clinic didn't produce any output, it's because it " +"found an error in your input. Keep fixing your errors and retrying until " +"Argument Clinic processes your file without complaint." +msgstr "" +"Bien sûr, si Argument Clinic n'a pas produit de sortie, c'est qu'il a " +"rencontré une erreur dans votre entrée. Corrigez vos erreurs et réessayez " +"jusqu'à ce qu'Argument Clinic traite votre fichier sans problème." + +#: ../Doc/howto/clinic.rst:415 +msgid "" +"For readability, most of the glue code has been generated to a ``.c.h`` " +"file. You'll need to include that in your original ``.c`` file, typically " +"right after the clinic module block::" +msgstr "" +"Pour plus de visibilité, la plupart du code a été écrit dans un fichier ``.c." +"h``. Vous devez l'inclure dans votre fichier ``.c`` original, typiquement " +"juste après le bloc du module *clinic* ::" + +#: ../Doc/howto/clinic.rst:421 +msgid "" +"Double-check that the argument-parsing code Argument Clinic generated looks " +"basically the same as the existing code." +msgstr "" +"Vérifiez bien que le code d'analyse d'argument généré par Argument Clinic " +"ressemble bien au code existant." + +#: ../Doc/howto/clinic.rst:424 +msgid "" +"First, ensure both places use the same argument-parsing function. The " +"existing code must call either :c:func:`PyArg_ParseTuple` or :c:func:" +"`PyArg_ParseTupleAndKeywords`; ensure that the code generated by Argument " +"Clinic calls the *exact* same function." +msgstr "" +"Assurez vous premièrement que les deux codes utilisent la même fonction pour " +"analyser les arguments. Le code existant doit appeler soit :c:func:" +"`PyArg_ParseTuple` soit :c:func:`PyArg_ParseTupleAndKeywords`; assurez vous " +"que le code généré par Argument Clinic appelle *exactement* la même fonction." + +#: ../Doc/howto/clinic.rst:430 +msgid "" +"Second, the format string passed in to :c:func:`PyArg_ParseTuple` or :c:func:" +"`PyArg_ParseTupleAndKeywords` should be *exactly* the same as the hand-" +"written one in the existing function, up to the colon or semi-colon." +msgstr "" +"Deuxièmement, la chaîne de caractère du format passée dans :c:func:" +"`PyArg_ParseTuple` ou :c:func:`PyArg_ParseTupleAndKeywords` doit être " +"*exactement* la même que celle écrite à la main, jusqu'aux deux points ou au " +"point virgule." + +#: ../Doc/howto/clinic.rst:435 +msgid "" +"(Argument Clinic always generates its format strings with a ``:`` followed " +"by the name of the function. If the existing code's format string ends with " +"``;``, to provide usage help, this change is harmless—don't worry about it.)" +msgstr "" +"(Argument Clinic génère toujours ses chaînes de format avec ``:`` suivi du " +"nom de la fonction. Si la chaîne de format du code existant termine par ``;" +"``, pour fournir une aide sur l'utilisation, ce changement n'a aucun effet, " +"ne vous en souciez pas.)" + +#: ../Doc/howto/clinic.rst:440 +msgid "" +"Third, for parameters whose format units require two arguments (like a " +"length variable, or an encoding string, or a pointer to a conversion " +"function), ensure that the second argument is *exactly* the same between the " +"two invocations." +msgstr "" +"Troisièmement, pour des paramètres dont l'unité de format nécessite deux " +"arguments (comme une variable de longueur, ou une chaîne d'encodage, ou un " +"pointeur vers une fonction de conversion), assurez vous que ce deuxième " +"argument est *exactement* le même entre les deux invocations." + +#: ../Doc/howto/clinic.rst:445 +msgid "" +"Fourth, inside the output portion of the block you'll find a preprocessor " +"macro defining the appropriate static :c:type:`PyMethodDef` structure for " +"this builtin::" +msgstr "" +"Quatrièmement, à l'intérieur de la section sortie du bloc, vous trouverez " +"une macro pré-processeur qui définit les structures statiques :c:type:" +"`PyMethodDef` appropriées pour ce module natif ::" + +#: ../Doc/howto/clinic.rst:452 +msgid "" +"This static structure should be *exactly* the same as the existing static :c:" +"type:`PyMethodDef` structure for this builtin." +msgstr "" +"Cette structure statique doit être *exactement* la même que la structure " +"statique :c:type:`PyMethodDef` existante pour ce module natif." + +#: ../Doc/howto/clinic.rst:455 +msgid "" +"If any of these items differ in *any way*, adjust your Argument Clinic " +"function specification and rerun ``Tools/clinic/clinic.py`` until they *are* " +"the same." +msgstr "" +"Si l'un de ces éléments diffère *de quelque façon que se soit*, ajustez la " +"spécification de fonction d'Argument Clinic et exécutez de nouveau ``Tools/" +"clinic/clinic.py`` jusqu'à ce qu'elles soient identiques." + +#: ../Doc/howto/clinic.rst:460 +msgid "" +"Notice that the last line of its output is the declaration of your \"impl\" " +"function. This is where the builtin's implementation goes. Delete the " +"existing prototype of the function you're modifying, but leave the opening " +"curly brace. Now delete its argument parsing code and the declarations of " +"all the variables it dumps the arguments into. Notice how the Python " +"arguments are now arguments to this impl function; if the implementation " +"used different names for these variables, fix it." +msgstr "" +"Notez que la dernière ligne de cette sortie est la déclaration de votre " +"fonction ``impl``. C'est là que va l'implémentation de la fonction native. " +"Supprimez le prototype de la fonction que vous modifiez, mais laissez " +"l'accolade ouverte. Maintenant, supprimez tout le code d'analyse d'argument " +"et les déclarations de toutes les variables auxquelles il assigne les " +"arguments. Vous voyez que désormais, les arguments Python sont ceux de cette " +"fonction ``impl``; si l'implémentation utilise des noms différents pour ces " +"variables, corrigez-les." + +#: ../Doc/howto/clinic.rst:468 +msgid "" +"Let's reiterate, just because it's kind of weird. Your code should now look " +"like this::" +msgstr "" +"Comme c'est un peu bizarre, ça vaut la peine de répéter. Votre fonction doit " +"ressembler à ça ::" + +#: ../Doc/howto/clinic.rst:477 +msgid "" +"Argument Clinic generated the checksum line and the function prototype just " +"above it. You should write the opening (and closing) curly braces for the " +"function, and the implementation inside." +msgstr "" +"Argument Clinic génère une ligne de contrôle et la fonction prototype juste " +"au dessus. Vous devez écrire les accolades d'ouverture (et de fermeture) " +"pour la fonction, et l’implémentation à l'intérieur." + +#: ../Doc/howto/clinic.rst:522 +msgid "" +"Remember the macro with the :c:type:`PyMethodDef` structure for this " +"function? Find the existing :c:type:`PyMethodDef` structure for this " +"function and replace it with a reference to the macro. (If the builtin is " +"at module scope, this will probably be very near the end of the file; if the " +"builtin is a class method, this will probably be below but relatively near " +"to the implementation.)" +msgstr "" +"Vous vous souvenez de la macro avec la structure :c:type:`PyMethodDef` pour " +"cette fonction ? Trouvez la structure :c:type:`PyMethodDef` existante pour " +"cette fonction et remplacez là par une référence à cette macro. (Si la " +"fonction native est définie au niveau d'un module, vous le trouverez " +"certainement vers la fin du fichier; s'il s'agît d'une méthode de classe, se " +"sera sans doute plus bas, mais relativement près de l'implémentation.)" + +#: ../Doc/howto/clinic.rst:529 +msgid "" +"Note that the body of the macro contains a trailing comma. So when you " +"replace the existing static :c:type:`PyMethodDef` structure with the macro, " +"*don't* add a comma to the end." +msgstr "" +"Notez que le corps de la macro contient une virgule finale. Donc, lorsque " +"vous remplacez la structure statique :c:type:`PyMethodDef` par la macro, " +"*n'ajoutez pas* de virgule à la fin." + +#: ../Doc/howto/clinic.rst:542 +msgid "" +"Compile, then run the relevant portions of the regression-test suite. This " +"change should not introduce any new compile-time warnings or errors, and " +"there should be no externally-visible change to Python's behavior." +msgstr "" +"Compilez, puis faites tourner les portions idoines de la suite de tests de " +"régressions. Ce changement ne doit introduire aucun nouveau message d'erreur " +"ou avertissement à la compilation, et il ne devrait y avoir aucun changement " +"visible de l'extérieur au comportement de Python." + +#: ../Doc/howto/clinic.rst:546 +msgid "" +"Well, except for one difference: ``inspect.signature()`` run on your " +"function should now provide a valid signature!" +msgstr "" +"Enfin, à part pour une différence : si vous exécutez ``inspect.signature()`` " +"sur votre fonction, vous obtiendrez maintenant une signature valide !" + +#: ../Doc/howto/clinic.rst:549 +msgid "" +"Congratulations, you've ported your first function to work with Argument " +"Clinic!" +msgstr "" +"Félicitations, vous avez adapté votre première fonction pour qu'elle utilise " +"Argument Clinic !" + +#: ../Doc/howto/clinic.rst:552 +msgid "Advanced Topics" +msgstr "Sujets avancés" + +#: ../Doc/howto/clinic.rst:554 +msgid "" +"Now that you've had some experience working with Argument Clinic, it's time " +"for some advanced topics." +msgstr "" +"Maintenant que vous avez un peu d'expérience avec Argument Clinic, c'est le " +"moment pour des sujets avancés." + +#: ../Doc/howto/clinic.rst:559 +msgid "Symbolic default values" +msgstr "Valeurs par défaut" + +#: ../Doc/howto/clinic.rst:561 +msgid "" +"The default value you provide for a parameter can't be any arbitrary " +"expression. Currently the following are explicitly supported:" +msgstr "" +"La valeur par défaut que vous fournissez pour un paramètre ne peut pas être " +"n'importe quelle expression. Actuellement, ce qui est géré :" + +#: ../Doc/howto/clinic.rst:564 +msgid "Numeric constants (integer and float)" +msgstr "Constantes numériques (entier ou nombre flottant)" + +#: ../Doc/howto/clinic.rst:565 +msgid "String constants" +msgstr "Chaînes constantes" + +#: ../Doc/howto/clinic.rst:566 +msgid "``True``, ``False``, and ``None``" +msgstr "``True``, ``False`` et ``None``" + +#: ../Doc/howto/clinic.rst:567 +msgid "" +"Simple symbolic constants like ``sys.maxsize``, which must start with the " +"name of the module" +msgstr "" +"Constantes symboliques simples comme ``sys.maxsize``, qui doivent commencer " +"par le nom du module" + +#: ../Doc/howto/clinic.rst:570 +msgid "" +"In case you're curious, this is implemented in ``from_builtin()`` in ``Lib/" +"inspect.py``." +msgstr "" +"Si par curiosité vous voulez lire l'implémentation, c'est ``from_builtin()`` " +"dans ``Lib/inspect.py``." + +#: ../Doc/howto/clinic.rst:573 +msgid "" +"(In the future, this may need to get even more elaborate, to allow full " +"expressions like ``CONSTANT - 1``.)" +msgstr "" +"(Dans le futur, il est possible que l'on ait besoin de l'améliorer, pour " +"autoriser les expressions complètes comme ``CONSTANT - 1``.)" + +#: ../Doc/howto/clinic.rst:578 +msgid "Renaming the C functions and variables generated by Argument Clinic" +msgstr "Renommer les fonctions et variables C générées par Argument Clinic" + +#: ../Doc/howto/clinic.rst:580 +msgid "" +"Argument Clinic automatically names the functions it generates for you. " +"Occasionally this may cause a problem, if the generated name collides with " +"the name of an existing C function. There's an easy solution: override the " +"names used for the C functions. Just add the keyword ``\"as\"`` to your " +"function declaration line, followed by the function name you wish to use. " +"Argument Clinic will use that function name for the base (generated) " +"function, then add ``\"_impl\"`` to the end and use that for the name of the " +"impl function." +msgstr "" +"Argument Clinic nomme automatiquement les fonctions qu'il génère. Parfois, " +"cela peut poser des problèmes, si le nom généré entre en collision avec le " +"nom d'une fonction C existante. Il y a une solution simple : surcharger les " +"noms utilisés par les fonctions C. Ajoutez simplement le mot clef ``\"as\"`` " +"sur la ligne de la déclaration de la fonction, suivi par le nom de la " +"fonction que vous souhaitez utiliser. Argument Clinic utilisera ce nom de " +"fonction pour la fonction de base (celle générée), et ajoutera ``\"_impl\"`` " +"à la fin et utilisera ce nom pour la fonction ``impl``." + +#: ../Doc/howto/clinic.rst:588 +msgid "" +"For example, if we wanted to rename the C function names generated for " +"``pickle.Pickler.dump``, it'd look like this::" +msgstr "" +"Par exemple, si nous voulons renommer les noms de fonction C générés pour " +"``pickle.Pickler.dump``, ça ressemblerait à ça ::" + +#: ../Doc/howto/clinic.rst:596 +msgid "" +"The base function would now be named ``pickler_dumper()``, and the impl " +"function would now be named ``pickler_dumper_impl()``." +msgstr "" +"La fonction de base sera maintenant nommée ``pickler_dumper()``, et la " +"fonction *impl* serait maintenant nommé ``pickler_dumper_impl()``." + +#: ../Doc/howto/clinic.rst:600 +msgid "" +"Similarly, you may have a problem where you want to give a parameter a " +"specific Python name, but that name may be inconvenient in C. Argument " +"Clinic allows you to give a parameter different names in Python and in C, " +"using the same ``\"as\"`` syntax::" +msgstr "" +"De même, vous pouvez avoir un problème quand vous souhaiterez donner à un " +"paramètre un nom spécifique à Python, mais ce nom peut être gênant en C. " +"Argument Clinic vous permet de donner à un paramètre des noms différents en " +"Python et en C ::" + +#: ../Doc/howto/clinic.rst:614 +msgid "" +"Here, the name used in Python (in the signature and the ``keywords`` array) " +"would be ``file``, but the C variable would be named ``file_obj``." +msgstr "" +"Ici, le nom utilisé en Python (dans la signature ainsi que le tableau des " +"``keywords``) sera ``file``, et la variable C s'appellera ``file_obj``." + +#: ../Doc/howto/clinic.rst:617 +msgid "You can use this to rename the ``self`` parameter too!" +msgstr "Vous pouvez utiliser ceci pour renommer aussi le paramètre ``self``" + +#: ../Doc/howto/clinic.rst:621 +msgid "Converting functions using PyArg_UnpackTuple" +msgstr "Conversion des fonctions en utilisant *PyArg_UnpackTuple*" + +#: ../Doc/howto/clinic.rst:623 +msgid "" +"To convert a function parsing its arguments with :c:func:" +"`PyArg_UnpackTuple`, simply write out all the arguments, specifying each as " +"an ``object``. You may specify the ``type`` argument to cast the type as " +"appropriate. All arguments should be marked positional-only (add a ``/`` on " +"a line by itself after the last argument)." +msgstr "" +"Afin de convertir une fonction analysant ses arguments via :c:func:" +"`PyArg_UnpackTuple`, écrivez simplement tous les arguments, en les " +"spécifiant comme des ``object``. Vous pouvez spécifier également le ``type`` " +"d'argument afin de le forcer au type approprié. Tous les arguments devraient " +"être marqués comme seulement positionnels (ajoutez un ``/`` seul sur la " +"ligne après le dernier argument)." + +#: ../Doc/howto/clinic.rst:629 +msgid "" +"Currently the generated code will use :c:func:`PyArg_ParseTuple`, but this " +"will change soon." +msgstr "" +"Actuellement, le code généré utilise :c:func:`PyArg_ParseTuple`, mais cela " +"va bientôt changer." + +#: ../Doc/howto/clinic.rst:633 +msgid "Optional Groups" +msgstr "Groupes optionnels" + +#: ../Doc/howto/clinic.rst:635 +msgid "" +"Some legacy functions have a tricky approach to parsing their arguments: " +"they count the number of positional arguments, then use a ``switch`` " +"statement to call one of several different :c:func:`PyArg_ParseTuple` calls " +"depending on how many positional arguments there are. (These functions " +"cannot accept keyword-only arguments.) This approach was used to simulate " +"optional arguments back before :c:func:`PyArg_ParseTupleAndKeywords` was " +"created." +msgstr "" +"Certaines fonctions de base ont une approche particulière pour analyser " +"leurs arguments : elles comptent le nombre d'arguments positionnels, puis " +"elles utilisent une condition ``switch`` basée sur le nombre d'arguments " +"présents pour appeler différentes :c:func:`PyArg_ParseTuple` disponibles " +"(ces fonctions ne peuvent pas avoir des arguments passés uniquement en tant " +"qu'arguments nommés). Cette approche était utilisée pour simuler des " +"arguments optionnels avant que :c:func:`PyArg_ParseTupleAndKeywords` ne soit " +"créée." + +#: ../Doc/howto/clinic.rst:642 +msgid "" +"While functions using this approach can often be converted to use :c:func:" +"`PyArg_ParseTupleAndKeywords`, optional arguments, and default values, it's " +"not always possible. Some of these legacy functions have behaviors :c:func:" +"`PyArg_ParseTupleAndKeywords` doesn't directly support. The most obvious " +"example is the builtin function ``range()``, which has an optional argument " +"on the *left* side of its required argument! Another example is ``curses." +"window.addch()``, which has a group of two arguments that must always be " +"specified together. (The arguments are called ``x`` and ``y``; if you call " +"the function passing in ``x``, you must also pass in ``y``—and if you don't " +"pass in ``x`` you may not pass in ``y`` either.)" +msgstr "" +"Alors que les fonctions utilisant cette approche peuvent normalement être " +"converties pour utiliser :c:func:`PyArg_ParseTupleAndKeywords`, des " +"arguments optionnels et des valeurs par défaut, ce n'est pas toujours " +"possible. Certaines fonctions classiques ne peuvent pas être gérées par :c:" +"func:`PyArg_ParseTupleAndKeywords`. L'exemple le plus évident est la " +"fonction native ``range()``, qui possède un argument optionnel à *gauche* de " +"ses arguments requis ! Un autre exemple est la fonction ``curses.window." +"addch()``, qui possède un groupe de deux arguments qui doivent toujours être " +"spécifiés ensemble (ces arguments s'appellent ``x`` et ``y`` ; si vous " +"appelez la fonction en passant ``x``, vous devez passer ``y`` et si vous ne " +"passez pas ``x``, vous ne devez pas passer ``y`` non plus)." + +#: ../Doc/howto/clinic.rst:654 +msgid "" +"In any case, the goal of Argument Clinic is to support argument parsing for " +"all existing CPython builtins without changing their semantics. Therefore " +"Argument Clinic supports this alternate approach to parsing, using what are " +"called *optional groups*. Optional groups are groups of arguments that must " +"all be passed in together. They can be to the left or the right of the " +"required arguments. They can *only* be used with positional-only parameters." +msgstr "" +"Dans tous les cas, le but d'Argument Clinic est de prendre en charge " +"l'analyse des arguments pour toutes les fonctions natives de CPython sans " +"avoir besoin de les modifier. C'est pourquoi Argument Clinic propose cette " +"autre approche pour l'analyse, en utilisant ce qu'on appelle les *groupes " +"optionnels*. Les groupes optionnels sont des groupes d'arguments qui doivent " +"tous être transmis ensemble. Ils peuvent être situés à droite ou à gauche " +"des arguments requis. Ils ne peuvent être utilisés *seulement* qu'en tant " +"que paramètres positionnels." + +#: ../Doc/howto/clinic.rst:662 +msgid "" +"Optional groups are *only* intended for use when converting functions that " +"make multiple calls to :c:func:`PyArg_ParseTuple`! Functions that use *any* " +"other approach for parsing arguments should *almost never* be converted to " +"Argument Clinic using optional groups. Functions using optional groups " +"currently cannot have accurate signatures in Python, because Python just " +"doesn't understand the concept. Please avoid using optional groups wherever " +"possible." +msgstr "" +"Les groupes optionnels sont *uniquement* prévus pour convertir les fonctions " +"faisant des appels multiples à :c:func:`PyArg_ParseTuple` ! Les fonctions " +"qui utilisent *au moins une* des autres approches ne doivent *presque " +"jamais* être converties à Argument Clinic en utilisant les groupes " +"optionnels. Les fonctions utilisant ces groupes n'ont pas actuellement de " +"signature précise en Python, parce que celui-ci ne peut simplement pas " +"comprendre ce concept. Tâchez d'éviter au maximum d'utiliser ces groupes " +"optionnels si possible." + +#: ../Doc/howto/clinic.rst:671 +msgid "" +"To specify an optional group, add a ``[`` on a line by itself before the " +"parameters you wish to group together, and a ``]`` on a line by itself after " +"these parameters. As an example, here's how ``curses.window.addch`` uses " +"optional groups to make the first two parameters and the last parameter " +"optional::" +msgstr "" +"Afin de signaler un groupe optionnel, ajoutez un ``[`` seul sur une ligne " +"avant les paramètres que vous souhaitez inclure dans le groupe, puis un " +"``]`` seul sur une ligne après ces paramètres. Voici, par exemple, comment " +"``curses.window.addch`` utilise les groupes optionnels pour rendre optionnel " +"les deux premiers paramètres ainsi que le dernier :" + +#: ../Doc/howto/clinic.rst:700 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/howto/clinic.rst:702 +msgid "" +"For every optional group, one additional parameter will be passed into the " +"impl function representing the group. The parameter will be an int named " +"``group_{direction}_{number}``, where ``{direction}`` is either ``right`` or " +"``left`` depending on whether the group is before or after the required " +"parameters, and ``{number}`` is a monotonically increasing number (starting " +"at 1) indicating how far away the group is from the required parameters. " +"When the impl is called, this parameter will be set to zero if this group " +"was unused, and set to non-zero if this group was used. (By used or unused, " +"I mean whether or not the parameters received arguments in this invocation.)" +msgstr "" +"Pour chaque groupe optionnel, un paramètre additionnel sera passé à la " +"fonction ``impl`` représentant le groupe. Ce paramètre sera un entier nommé " +"``group_{direction}_{number}``, où ``{direction}`` peut être soit ``right`` " +"ou ``left`` suivant que le groupe est situé avant ou après les paramètres " +"requis, et ``{number}`` sera un entier incrémenté (débutant à 1) indiquant " +"la distance entre le groupe et les paramètres requis. Quand la fonction " +"``impl`` est appelée, ce paramètre est positionné à zéro si le groupe n'a " +"pas été utilisé, et positionné à un nombre entier positif sinon (par " +"inutilisé, on entend que les paramètres n'ont pas reçu de valeur lors de cet " +"appel)." + +#: ../Doc/howto/clinic.rst:713 +msgid "" +"If there are no required arguments, the optional groups will behave as if " +"they're to the right of the required arguments." +msgstr "" +"S'il n'y a pas d'arguments requis, les groupes optionnels se comportent " +"comme s'ils étaient à droite des arguments requis." + +#: ../Doc/howto/clinic.rst:716 +msgid "" +"In the case of ambiguity, the argument parsing code favors parameters on the " +"left (before the required parameters)." +msgstr "" +"En cas d'ambiguïté, le code d'analyse des arguments favorise ceux situés à " +"gauche (avant les paramètres obligatoires)." + +#: ../Doc/howto/clinic.rst:719 +msgid "Optional groups can only contain positional-only parameters." +msgstr "" +"Les groupes optionnels ne peuvent contenir que des arguments positionnels." + +#: ../Doc/howto/clinic.rst:721 +msgid "" +"Optional groups are *only* intended for legacy code. Please do not use " +"optional groups for new code." +msgstr "" +"Les groupes optionnels sont *seulement* destinés au code hérité. Ne les " +"utilisez pas dans du nouveau code." + +#: ../Doc/howto/clinic.rst:726 +msgid "Using real Argument Clinic converters, instead of \"legacy converters\"" +msgstr "" +"Utilisation des adaptateurs d'Argument Clinic, en lieu et place des " +"« adaptateurs de base »" + +#: ../Doc/howto/clinic.rst:728 +msgid "" +"To save time, and to minimize how much you need to learn to achieve your " +"first port to Argument Clinic, the walkthrough above tells you to use " +"\"legacy converters\". \"Legacy converters\" are a convenience, designed " +"explicitly to make porting existing code to Argument Clinic easier. And to " +"be clear, their use is acceptable when porting code for Python 3.4." +msgstr "" +"Afin de gagner du temps, et pour minimiser la courbe d'apprentissage pour " +"pouvoir utiliser Argument Clinic, le guide ci-dessus préconise les " +"« adaptateurs de base ». Ceux-ci sont un moyen simple conçu pour porter " +"facilement du code existant sous Argument Clinic. Et pour être clair, leur " +"utilisation est tout à fait acceptable pour porter du code Python 3.4." + +#: ../Doc/howto/clinic.rst:735 +msgid "" +"However, in the long term we probably want all our blocks to use Argument " +"Clinic's real syntax for converters. Why? A couple reasons:" +msgstr "" +"Cependant, sur le long terme, il est certainement préférable que tous vos " +"blocs utilisent la syntaxe réelle des adaptateurs d'Argument Clinic. " +"Pourquoi ? Voici quelques raisons :" + +#: ../Doc/howto/clinic.rst:739 +msgid "" +"The proper converters are far easier to read and clearer in their intent." +msgstr "Les adaptateurs sont plus simples et plus clairs." + +#: ../Doc/howto/clinic.rst:740 +msgid "" +"There are some format units that are unsupported as \"legacy converters\", " +"because they require arguments, and the legacy converter syntax doesn't " +"support specifying arguments." +msgstr "" +"Il existe des formats qui ne sont pas gérés par les « adaptateurs de base », " +"parce qu'ils nécessitent des arguments, et la syntaxe de ces adaptateurs ne " +"supporte pas cela." + +#: ../Doc/howto/clinic.rst:743 +msgid "" +"In the future we may have a new argument parsing library that isn't " +"restricted to what :c:func:`PyArg_ParseTuple` supports; this flexibility " +"won't be available to parameters using legacy converters." +msgstr "" +"Dans le futur, on pourrait avoir une nouvelle bibliothèque d'analyse des " +"arguments qui ne serait pas limitée à ce que :c:func:`PyArg_ParseTuple` " +"accepte ; cette flexibilité ne serait pas accessible aux paramètres " +"utilisant des adaptateurs de base." + +#: ../Doc/howto/clinic.rst:747 +msgid "" +"Therefore, if you don't mind a little extra effort, please use the normal " +"converters instead of legacy converters." +msgstr "" +"Ainsi, si vous n'êtes pas contre un petit effort supplémentaire, vous " +"devriez utiliser les adaptateurs normaux plutôt que ceux de base." + +#: ../Doc/howto/clinic.rst:750 +msgid "" +"In a nutshell, the syntax for Argument Clinic (non-legacy) converters looks " +"like a Python function call. However, if there are no explicit arguments to " +"the function (all functions take their default values), you may omit the " +"parentheses. Thus ``bool`` and ``bool()`` are exactly the same converters." +msgstr "" +"En bref, la syntaxe des adaptateurs d'Argument Clinic ressemble à un appel " +"de fonction Python. Mais, s'il n'y a pas d'argument explicite à la fonction " +"(celle-ci utilisant ses valeurs par défaut), vous pouvez omettre les " +"parenthèses. Ainsi ``bool`` et ``bool()`` représentent le même adaptateur." + +#: ../Doc/howto/clinic.rst:756 +msgid "" +"All arguments to Argument Clinic converters are keyword-only. All Argument " +"Clinic converters accept the following arguments:" +msgstr "" +"Tous les arguments passés aux adaptateurs d'Argument Clinic sont nommés. " +"Tous les adaptateurs d'Argument Clinic acceptent les arguments suivants :" + +#: ../Doc/howto/clinic.rst:764 ../Doc/howto/clinic.rst:1246 +msgid "``c_default``" +msgstr "``c_default``" + +#: ../Doc/howto/clinic.rst:760 +msgid "" +"The default value for this parameter when defined in C. Specifically, this " +"will be the initializer for the variable declared in the \"parse function" +"\". See :ref:`the section on default values ` for how to " +"use this. Specified as a string." +msgstr "" +"La valeur par défaut de cet argument lorsqu'il est défini en C. Typiquement, " +"il servira à initialiser la variable déclarée dans la « fonction " +"d'analyse ». Voir la section relative aux :ref:`valeurs par défaut " +"` pour apprendre à l'utiliser. Spécifié en tant que chaîne " +"de caractères." + +#: ../Doc/howto/clinic.rst:769 +msgid "``annotation``" +msgstr "``annotation``" + +#: ../Doc/howto/clinic.rst:767 +msgid "" +"The annotation value for this parameter. Not currently supported, because " +"PEP 8 mandates that the Python library may not use annotations." +msgstr "" + +#: ../Doc/howto/clinic.rst:771 +msgid "" +"In addition, some converters accept additional arguments. Here is a list of " +"these arguments, along with their meanings:" +msgstr "" +"De plus, certains adaptateurs acceptent des arguments additionnels. Voici la " +"liste de ces arguments, avec leur explication :" + +#: ../Doc/howto/clinic.rst:780 +msgid "``accept``" +msgstr "``accept``" + +#: ../Doc/howto/clinic.rst:775 +msgid "" +"A set of Python types (and possibly pseudo-types); this restricts the " +"allowable Python argument to values of these types. (This is not a general-" +"purpose facility; as a rule it only supports specific lists of types as " +"shown in the legacy converter table.)" +msgstr "" +"Un ensemble de types Python (et potentiellement des pseudo-types) ; cela " +"restreint l'argument Python autorisé aux valeurs de ces types (ce n'est pas " +"destiné à une utilisation généralisée ; en fait, il gère seulement les types " +"listés dans la table des adaptateurs de base)." + +#: ../Doc/howto/clinic.rst:780 +msgid "To accept ``None``, add ``NoneType`` to this set." +msgstr "Pour accepter ``None``, ajouter ``NoneType`` à cet ensemble." + +#: ../Doc/howto/clinic.rst:785 +msgid "``bitwise``" +msgstr "``bitwise``" + +#: ../Doc/howto/clinic.rst:783 +msgid "" +"Only supported for unsigned integers. The native integer value of this " +"Python argument will be written to the parameter without any range checking, " +"even for negative values." +msgstr "" +"Autorisé seulement pour les entiers non signés. La valeur native de cet " +"argument Python sera transcrite dans le paramètre sans aucune vérification " +"de plage, même pour des valeurs négatives." + +#: ../Doc/howto/clinic.rst:790 ../Doc/howto/clinic.rst:1260 +msgid "``converter``" +msgstr "``converter``" + +#: ../Doc/howto/clinic.rst:788 +msgid "" +"Only supported by the ``object`` converter. Specifies the name of a :ref:`C " +"\"converter function\" ` to use to convert this object to a " +"native type." +msgstr "" +"Autorisé seulement pour l'adaptateur ``object``. Spécifie le nom d'une :ref:" +"`« fonction de conversion » depuis C ` à utiliser pour " +"convertir cet objet en type natif." + +#: ../Doc/howto/clinic.rst:795 +msgid "``encoding``" +msgstr "``encoding``" + +#: ../Doc/howto/clinic.rst:793 +msgid "" +"Only supported for strings. Specifies the encoding to use when converting " +"this string from a Python str (Unicode) value into a C ``char *`` value." +msgstr "" +"Autorisé seulement pour les chaînes de caractères. Spécifie l'encodage à " +"utiliser lors de la conversion de cette chaîne depuis une valeur de type " +"Python ``str`` (Unicode) en valeur C ``char *``." + +#: ../Doc/howto/clinic.rst:799 +msgid "``subclass_of``" +msgstr "``subclass_of``" + +#: ../Doc/howto/clinic.rst:798 +msgid "" +"Only supported for the ``object`` converter. Requires that the Python value " +"be a subclass of a Python type, as expressed in C." +msgstr "" +"Autorisé seulement pour l'adaptateur ``object``. Nécessite que la valeur " +"Python soit une sous-classe d'un type Python, telle qu'exprimée en C." + +#: ../Doc/howto/clinic.rst:804 ../Doc/howto/clinic.rst:1232 +msgid "``type``" +msgstr "``type``" + +#: ../Doc/howto/clinic.rst:802 +msgid "" +"Only supported for the ``object`` and ``self`` converters. Specifies the C " +"type that will be used to declare the variable. Default value is ``" +"\"PyObject *\"``." +msgstr "" +"Autorisé seulement pour les adaptateurs ``object`` et ``self``. Spécifie le " +"type C qui sera utilisé pour déclarer la variable. La valeur par défaut est " +"``\"PyObject *\"``." + +#: ../Doc/howto/clinic.rst:810 +msgid "``zeroes``" +msgstr "``zeroes``" + +#: ../Doc/howto/clinic.rst:807 +msgid "" +"Only supported for strings. If true, embedded NUL bytes (``'\\\\0'``) are " +"permitted inside the value. The length of the string will be passed in to " +"the impl function, just after the string parameter, as a parameter named " +"``_length``." +msgstr "" +"Autorisé seulement pour les chaînes de caractères. Si vrai, les octets NUL " +"(``'\\\\0'``) sont permis au sein de la valeur. La taille de la chaîne sera " +"passée à la fonction ``impl``, juste après le paramètre chaîne, en tant que " +"paramètre nommé ``_length``." + +#: ../Doc/howto/clinic.rst:812 +msgid "" +"Please note, not every possible combination of arguments will work. Usually " +"these arguments are implemented by specific ``PyArg_ParseTuple`` *format " +"units*, with specific behavior. For example, currently you cannot call " +"``unsigned_short`` without also specifying ``bitwise=True``. Although it's " +"perfectly reasonable to think this would work, these semantics don't map to " +"any existing format unit. So Argument Clinic doesn't support it. (Or, at " +"least, not yet.)" +msgstr "" +"Attention de bien noter que toutes les combinaisons d'arguments ne " +"fonctionnent pas. Normalement, ces arguments sont mis en place via des " +"*formats* ``PyArg_ParseTuple`` au comportement spécifique. Par exemple, à " +"l'heure actuelle vous ne pouvez pas appeler ``unsigned_short`` sans " +"spécifier également ``bitwise=True``. Bien qu'il soit parfaitement " +"raisonnable de penser que ça puisse fonctionner, cette écriture ne " +"correspond à aucun format. Donc Argument Clinic ne le gère pas (en tous cas, " +"pas pour le moment)." + +#: ../Doc/howto/clinic.rst:820 +msgid "" +"Below is a table showing the mapping of legacy converters into real Argument " +"Clinic converters. On the left is the legacy converter, on the right is the " +"text you'd replace it with." +msgstr "" +"Vous pouvez voir, ci-dessous, une table présentant la correspondance entre " +"les adaptateurs de base et ceux d'Argument Clinic. À gauche, sont listés les " +"adaptateurs de base et, à droite, le texte qui les remplace." + +#: ../Doc/howto/clinic.rst:825 +msgid "``'B'``" +msgstr "``'B'``" + +#: ../Doc/howto/clinic.rst:825 +msgid "``unsigned_char(bitwise=True)``" +msgstr "``unsigned_char(bitwise=True)``" + +#: ../Doc/howto/clinic.rst:826 +msgid "``'b'``" +msgstr "``'b'``" + +#: ../Doc/howto/clinic.rst:826 +msgid "``unsigned_char``" +msgstr "``unsigned_char``" + +#: ../Doc/howto/clinic.rst:827 +msgid "``'c'``" +msgstr "``'c'``" + +#: ../Doc/howto/clinic.rst:827 +msgid "``char``" +msgstr "``char``" + +#: ../Doc/howto/clinic.rst:828 +msgid "``'C'``" +msgstr "``'C'``" + +#: ../Doc/howto/clinic.rst:828 +msgid "``int(accept={str})``" +msgstr "``int(accept={str})``" + +#: ../Doc/howto/clinic.rst:829 +msgid "``'d'``" +msgstr "``'d'``" + +#: ../Doc/howto/clinic.rst:829 +msgid "``double``" +msgstr "``double``" + +#: ../Doc/howto/clinic.rst:830 +msgid "``'D'``" +msgstr "``'D'``" + +#: ../Doc/howto/clinic.rst:830 +msgid "``Py_complex``" +msgstr "``Py_complex``" + +#: ../Doc/howto/clinic.rst:831 +msgid "``'es'``" +msgstr "``'es'``" + +#: ../Doc/howto/clinic.rst:831 +msgid "``str(encoding='name_of_encoding')``" +msgstr "``str(encoding='name_of_encoding')``" + +#: ../Doc/howto/clinic.rst:832 +msgid "``'es#'``" +msgstr "``'es#'``" + +#: ../Doc/howto/clinic.rst:832 +msgid "``str(encoding='name_of_encoding', zeroes=True)``" +msgstr "``str(encoding='name_of_encoding', zeroes=True)``" + +#: ../Doc/howto/clinic.rst:833 +msgid "``'et'``" +msgstr "``'et'``" + +#: ../Doc/howto/clinic.rst:833 +msgid "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``" +msgstr "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``" + +#: ../Doc/howto/clinic.rst:834 +msgid "``'et#'``" +msgstr "``'et#'``" + +#: ../Doc/howto/clinic.rst:834 +msgid "" +"``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, " +"zeroes=True)``" +msgstr "" +"``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, " +"zeroes=True)``" + +#: ../Doc/howto/clinic.rst:835 +msgid "``'f'``" +msgstr "``'f'``" + +#: ../Doc/howto/clinic.rst:835 +msgid "``float``" +msgstr "``float``" + +#: ../Doc/howto/clinic.rst:836 +msgid "``'h'``" +msgstr "``'h'``" + +#: ../Doc/howto/clinic.rst:836 +msgid "``short``" +msgstr "``short``" + +#: ../Doc/howto/clinic.rst:837 +msgid "``'H'``" +msgstr "``'H'``" + +#: ../Doc/howto/clinic.rst:837 +msgid "``unsigned_short(bitwise=True)``" +msgstr "``unsigned_short(bitwise=True)``" + +#: ../Doc/howto/clinic.rst:838 +msgid "``'i'``" +msgstr "``'i'``" + +#: ../Doc/howto/clinic.rst:838 +msgid "``int``" +msgstr "``int``" + +#: ../Doc/howto/clinic.rst:839 +msgid "``'I'``" +msgstr "``'I'``" + +#: ../Doc/howto/clinic.rst:839 +msgid "``unsigned_int(bitwise=True)``" +msgstr "``unsigned_int(bitwise=True)``" + +#: ../Doc/howto/clinic.rst:840 +msgid "``'k'``" +msgstr "``'k'``" + +#: ../Doc/howto/clinic.rst:840 +msgid "``unsigned_long(bitwise=True)``" +msgstr "``unsigned_long(bitwise=True)``" + +#: ../Doc/howto/clinic.rst:841 +msgid "``'K'``" +msgstr "``'K'``" + +#: ../Doc/howto/clinic.rst:841 +msgid "``unsigned_long_long(bitwise=True)``" +msgstr "``unsigned_long_long(bitwise=True)``" + +#: ../Doc/howto/clinic.rst:842 +msgid "``'l'``" +msgstr "``'l'``" + +#: ../Doc/howto/clinic.rst:842 +msgid "``long``" +msgstr "``long``" + +#: ../Doc/howto/clinic.rst:843 +msgid "``'L'``" +msgstr "``'L'``" + +#: ../Doc/howto/clinic.rst:843 +msgid "``long long``" +msgstr "``long long``" + +#: ../Doc/howto/clinic.rst:844 +msgid "``'n'``" +msgstr "``'n'``" + +#: ../Doc/howto/clinic.rst:844 +msgid "``Py_ssize_t``" +msgstr "``Py_ssize_t``" + +#: ../Doc/howto/clinic.rst:845 +msgid "``'O'``" +msgstr "``'O'``" + +#: ../Doc/howto/clinic.rst:845 +msgid "``object``" +msgstr "``object``" + +#: ../Doc/howto/clinic.rst:846 +msgid "``'O!'``" +msgstr "``'O!'``" + +#: ../Doc/howto/clinic.rst:846 +msgid "``object(subclass_of='&PySomething_Type')``" +msgstr "``object(subclass_of='&PySomething_Type')``" + +#: ../Doc/howto/clinic.rst:847 +msgid "``'O&'``" +msgstr "``'O&'``" + +#: ../Doc/howto/clinic.rst:847 +msgid "``object(converter='name_of_c_function')``" +msgstr "``object(converter='name_of_c_function')``" + +#: ../Doc/howto/clinic.rst:848 +msgid "``'p'``" +msgstr "``'p'``" + +#: ../Doc/howto/clinic.rst:848 +msgid "``bool``" +msgstr "``bool``" + +#: ../Doc/howto/clinic.rst:849 +msgid "``'S'``" +msgstr "``'S'``" + +#: ../Doc/howto/clinic.rst:849 +msgid "``PyBytesObject``" +msgstr "``PyBytesObject``" + +#: ../Doc/howto/clinic.rst:850 +msgid "``'s'``" +msgstr "``'s'``" + +#: ../Doc/howto/clinic.rst:850 +msgid "``str``" +msgstr "``str``" + +#: ../Doc/howto/clinic.rst:851 +msgid "``'s#'``" +msgstr "``'s#'``" + +#: ../Doc/howto/clinic.rst:851 +msgid "``str(zeroes=True)``" +msgstr "``str(zeroes=True)``" + +#: ../Doc/howto/clinic.rst:852 +msgid "``'s*'``" +msgstr "``'s*'``" + +#: ../Doc/howto/clinic.rst:852 +msgid "``Py_buffer(accept={buffer, str})``" +msgstr "``Py_buffer(accept={buffer, str})``" + +#: ../Doc/howto/clinic.rst:853 +msgid "``'U'``" +msgstr "``'U'``" + +#: ../Doc/howto/clinic.rst:853 +msgid "``unicode``" +msgstr "``unicode``" + +#: ../Doc/howto/clinic.rst:854 +msgid "``'u'``" +msgstr "``'u'``" + +#: ../Doc/howto/clinic.rst:854 +msgid "``Py_UNICODE``" +msgstr "``Py_UNICODE``" + +#: ../Doc/howto/clinic.rst:855 +msgid "``'u#'``" +msgstr "``'u#'``" + +#: ../Doc/howto/clinic.rst:855 +msgid "``Py_UNICODE(zeroes=True)``" +msgstr "``Py_UNICODE(zeroes=True)``" + +#: ../Doc/howto/clinic.rst:856 +msgid "``'w*'``" +msgstr "``'w*'``" + +#: ../Doc/howto/clinic.rst:856 +msgid "``Py_buffer(accept={rwbuffer})``" +msgstr "``Py_buffer(accept={rwbuffer})``" + +#: ../Doc/howto/clinic.rst:857 +msgid "``'Y'``" +msgstr "``'Y'``" + +#: ../Doc/howto/clinic.rst:857 +msgid "``PyByteArrayObject``" +msgstr "``PyByteArrayObject``" + +#: ../Doc/howto/clinic.rst:858 +msgid "``'y'``" +msgstr "``'y'``" + +#: ../Doc/howto/clinic.rst:858 +msgid "``str(accept={bytes})``" +msgstr "``str(accept={bytes})``" + +#: ../Doc/howto/clinic.rst:859 +msgid "``'y#'``" +msgstr "``'y#'``" + +#: ../Doc/howto/clinic.rst:859 +msgid "``str(accept={robuffer}, zeroes=True)``" +msgstr "``str(accept={robuffer}, zeroes=True)``" + +#: ../Doc/howto/clinic.rst:860 +msgid "``'y*'``" +msgstr "``'y*'``" + +#: ../Doc/howto/clinic.rst:860 +msgid "``Py_buffer``" +msgstr "``Py_buffer``" + +#: ../Doc/howto/clinic.rst:861 +msgid "``'Z'``" +msgstr "``'Z'``" + +#: ../Doc/howto/clinic.rst:861 +msgid "``Py_UNICODE(accept={str, NoneType})``" +msgstr "``Py_UNICODE(accept={str, NoneType})``" + +#: ../Doc/howto/clinic.rst:862 +msgid "``'Z#'``" +msgstr "``'Z#'``" + +#: ../Doc/howto/clinic.rst:862 +msgid "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" +msgstr "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" + +#: ../Doc/howto/clinic.rst:863 +msgid "``'z'``" +msgstr "``'z'``" + +#: ../Doc/howto/clinic.rst:863 +msgid "``str(accept={str, NoneType})``" +msgstr "``str(accept={str, NoneType})``" + +#: ../Doc/howto/clinic.rst:864 +msgid "``'z#'``" +msgstr "``'z#'``" + +#: ../Doc/howto/clinic.rst:864 +msgid "``str(accept={str, NoneType}, zeroes=True)``" +msgstr "``str(accept={str, NoneType}, zeroes=True)``" + +#: ../Doc/howto/clinic.rst:865 +msgid "``'z*'``" +msgstr "``'z*'``" + +#: ../Doc/howto/clinic.rst:865 +msgid "``Py_buffer(accept={buffer, str, NoneType})``" +msgstr "``Py_buffer(accept={buffer, str, NoneType})``" + +#: ../Doc/howto/clinic.rst:868 +msgid "" +"As an example, here's our sample ``pickle.Pickler.dump`` using the proper " +"converter::" +msgstr "" +"Par exemple, voici notre code ``pickle.Pickler.dump`` via l'adaptateur " +"approprié ::" + +#: ../Doc/howto/clinic.rst:881 +msgid "" +"Argument Clinic will show you all the converters it has available. For each " +"converter it'll show you all the parameters it accepts, along with the " +"default value for each parameter. Just run ``Tools/clinic/clinic.py --" +"converters`` to see the full list." +msgstr "" +"Argument Clinic sait lister tous les adaptateurs disponibles. Pour chaque " +"adaptateur, il vous liste également l'ensemble des paramètres qu'ils " +"acceptent, ainsi que les valeurs par défaut de chacun. Utilisez simplement " +"la commande ``Tools/clinic/clinic.py --converters`` pour afficher la liste." + +#: ../Doc/howto/clinic.rst:887 +msgid "Py_buffer" +msgstr "Py_buffer" + +#: ../Doc/howto/clinic.rst:889 +msgid "" +"When using the ``Py_buffer`` converter (or the ``'s*'``, ``'w*'``, ``'*y'``, " +"or ``'z*'`` legacy converters), you *must* not call :c:func:" +"`PyBuffer_Release` on the provided buffer. Argument Clinic generates code " +"that does it for you (in the parsing function)." +msgstr "" +"Lorsque vous utilisez l'adaptateur ``Py_buffer`` (ou bien les adaptateurs de " +"base ``'s*'``, ``'w*'``, ``'*y'``, ou ``'z*'``), vous *ne devez pas* " +"appeler :c:func:`PyBuffer_Release` sur le tampon fourni. Argument Clinic " +"génère du code qui le fait pour vous (dans la fonction d'analyse)." + +#: ../Doc/howto/clinic.rst:897 +msgid "Advanced converters" +msgstr "Adaptateurs avancés" + +#: ../Doc/howto/clinic.rst:899 +msgid "" +"Remember those format units you skipped for your first time because they " +"were advanced? Here's how to handle those too." +msgstr "" +"Vous vous souvenez de ces spécifications de format que vous avez laissées de " +"côté la première fois parce qu'il s'agissait de notions avancées ? Voici " +"comment les utiliser." + +#: ../Doc/howto/clinic.rst:902 +msgid "" +"The trick is, all those format units take arguments—either conversion " +"functions, or types, or strings specifying an encoding. (But \"legacy " +"converters\" don't support arguments. That's why we skipped them for your " +"first function.) The argument you specified to the format unit is now an " +"argument to the converter; this argument is either ``converter`` (for " +"``O&``), ``subclass_of`` (for ``O!``), or ``encoding`` (for all the format " +"units that start with ``e``)." +msgstr "" +"L'astuce est que toutes ces spécifications de format acceptent des arguments " +"— aussi bien des fonctions de conversion que des types, ou des chaînes " +"spécifiant un encodage. (mais les « adaptateurs de base » ne gèrent pas les " +"arguments. C'est pourquoi nous les avions laissés de côté pour votre " +"première fonction.) L'argument que vous aviez spécifié à la spécification de " +"format est désormais un argument du convertisseur ; cet argument est soit " +"``converter`` (pour ``O&``), ``subclass_of`` (pour ``O!``), ou ``encoding`` " +"(pour toutes les spécifications de format qui commencent par ``e``)." + +#: ../Doc/howto/clinic.rst:910 +msgid "" +"When using ``subclass_of``, you may also want to use the other custom " +"argument for ``object()``: ``type``, which lets you set the type actually " +"used for the parameter. For example, if you want to ensure that the object " +"is a subclass of ``PyUnicode_Type``, you probably want to use the converter " +"``object(type='PyUnicodeObject *', subclass_of='&PyUnicode_Type')``." +msgstr "" +"Lorsque vous utilisez ``subclass_of``, vous pouvez également vouloir " +"utiliser les autres arguments usuels pour ``object()`` : ``type``, qui vous " +"laisse spécifier le type à utiliser pour l'argument. Par exemple, si vous " +"voulez vous assurer que l'objet est une sous-classe de ``PyUnicode_Type``, " +"vous utiliserez probablement le convertisseur ``object(type='PyUnicodeObject " +"*', subclass_of='&PyUnicode_Type')``." + +#: ../Doc/howto/clinic.rst:916 +msgid "" +"One possible problem with using Argument Clinic: it takes away some possible " +"flexibility for the format units starting with ``e``. When writing a " +"``PyArg_Parse`` call by hand, you could theoretically decide at runtime what " +"encoding string to pass in to :c:func:`PyArg_ParseTuple`. But now this " +"string must be hard-coded at Argument-Clinic-preprocessing-time. This " +"limitation is deliberate; it made supporting this format unit much easier, " +"and may allow for future optimizations. This restriction doesn't seem " +"unreasonable; CPython itself always passes in static hard-coded encoding " +"strings for parameters whose format units start with ``e``." +msgstr "" +"Mentionnons un problème potentiel d'utiliser *Argument Clinic* : cela retire " +"la flexibilité des spécifications de format commençant par ``e``. Lorsque " +"vous faites un appel à ``PyArg_Parse`` à la main, vous pourriez " +"théoriquement décider quelle chaîne d'encodage passer à :c:func:" +"`PyArg_ParseTuple`. Mais désormais cette chaîne doit être codée en dur au " +"moment du pré-processus d'Argument-Clinic. Cette limitation est délibérée ; " +"elle permet une gestion plus simple de cette spécification de format, et " +"peut permettre de futures optimisations. Cette restriction ne semble pas " +"déraisonnable ; CPython lui-même utilise toujours des chaînes d'encodage en " +"dur pour les paramètres dont les spécifications de format commencent par " +"``e``." + +#: ../Doc/howto/clinic.rst:929 +msgid "Parameter default values" +msgstr "Valeurs par défaut des paramètres" + +#: ../Doc/howto/clinic.rst:931 +msgid "" +"Default values for parameters can be any of a number of values. At their " +"simplest, they can be string, int, or float literals:" +msgstr "" +"Les valeurs par défaut des paramètres peuvent être n'importe quelle valeur. " +"Au plus simple, ce sont des chaînes, des entiers ou des nombres flottants :" + +#: ../Doc/howto/clinic.rst:940 +msgid "They can also use any of Python's built-in constants:" +msgstr "" +"Vous pouvez également utiliser n'importe quelle constante native de Python :" + +#: ../Doc/howto/clinic.rst:948 +msgid "" +"There's also special support for a default value of ``NULL``, and for simple " +"expressions, documented in the following sections." +msgstr "" +"La valeur ``NULL`` est également acceptée, ainsi que des expressions " +"simples, comme expliqué dans les sections suivantes." + +#: ../Doc/howto/clinic.rst:953 +msgid "The ``NULL`` default value" +msgstr "La valeur par défaut ``NULL``" + +#: ../Doc/howto/clinic.rst:955 +msgid "" +"For string and object parameters, you can set them to ``None`` to indicate " +"that there's no default. However, that means the C variable will be " +"initialized to ``Py_None``. For convenience's sakes, there's a special " +"value called ``NULL`` for just this reason: from Python's perspective it " +"behaves like a default value of ``None``, but the C variable is initialized " +"with ``NULL``." +msgstr "" +"Pour les paramètres chaînes et objets, vous pouvez les positionner à " +"``None`` pour indiquer qu'il n'y a pas de valeur par défaut. Pour autant, " +"cela signifie que la variable C sera initialisée à ``Py_None``. Par " +"commodité, il existe une valeur spécifique appelée ``NULL`` juste pour cette " +"raison : du point de vue de Python, cette valeur se comporte comme la valeur " +"par défaut ``None``, mais la variable C est initialisée à ``NULL``." + +#: ../Doc/howto/clinic.rst:963 +msgid "Expressions specified as default values" +msgstr "Expressions spécifiées comme valeurs par défaut" + +#: ../Doc/howto/clinic.rst:965 +msgid "" +"The default value for a parameter can be more than just a literal value. It " +"can be an entire expression, using math operators and looking up attributes " +"on objects. However, this support isn't exactly simple, because of some non-" +"obvious semantics." +msgstr "" +"La valeur par défaut d'un paramètre peut être plus qu'une simple valeur " +"littérale. Il peut s'agir d'une expression, utilisant des opérateurs " +"mathématiques et des attributs d'objets. Cependant, cette possibilité n'est " +"pas aussi simple, notamment à cause de sémantiques peu évidentes." + +#: ../Doc/howto/clinic.rst:970 +msgid "Consider the following example:" +msgstr "Examinons l'exemple suivant :" + +#: ../Doc/howto/clinic.rst:976 +msgid "" +"``sys.maxsize`` can have different values on different platforms. Therefore " +"Argument Clinic can't simply evaluate that expression locally and hard-code " +"it in C. So it stores the default in such a way that it will get evaluated " +"at runtime, when the user asks for the function's signature." +msgstr "" + +#: ../Doc/howto/clinic.rst:981 +msgid "" +"What namespace is available when the expression is evaluated? It's " +"evaluated in the context of the module the builtin came from. So, if your " +"module has an attribute called \"``max_widgets``\", you may simply use it:" +msgstr "" + +#: ../Doc/howto/clinic.rst:989 +msgid "" +"If the symbol isn't found in the current module, it fails over to looking in " +"``sys.modules``. That's how it can find ``sys.maxsize`` for example. " +"(Since you don't know in advance what modules the user will load into their " +"interpreter, it's best to restrict yourself to modules that are preloaded by " +"Python itself.)" +msgstr "" + +#: ../Doc/howto/clinic.rst:994 +msgid "" +"Evaluating default values only at runtime means Argument Clinic can't " +"compute the correct equivalent C default value. So you need to tell it " +"explicitly. When you use an expression, you must also specify the equivalent " +"expression in C, using the ``c_default`` parameter to the converter:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1003 +msgid "" +"Another complication: Argument Clinic can't know in advance whether or not " +"the expression you supply is valid. It parses it to make sure it looks " +"legal, but it can't *actually* know. You must be very careful when using " +"expressions to specify values that are guaranteed to be valid at runtime!" +msgstr "" + +#: ../Doc/howto/clinic.rst:1008 +msgid "" +"Finally, because expressions must be representable as static C values, there " +"are many restrictions on legal expressions. Here's a list of Python " +"features you're not permitted to use:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1012 +msgid "Function calls." +msgstr "des appels de fonction." + +#: ../Doc/howto/clinic.rst:1013 +msgid "Inline if statements (``3 if foo else 5``)." +msgstr "des instructions *if* en ligne (``3 if foo else 5``) ;" + +#: ../Doc/howto/clinic.rst:1014 +msgid "Automatic sequence unpacking (``*[1, 2, 3]``)." +msgstr "" + +#: ../Doc/howto/clinic.rst:1015 +msgid "List/set/dict comprehensions and generator expressions." +msgstr "" + +#: ../Doc/howto/clinic.rst:1016 +msgid "Tuple/list/set/dict literals." +msgstr "" + +#: ../Doc/howto/clinic.rst:1021 +msgid "Using a return converter" +msgstr "" + +#: ../Doc/howto/clinic.rst:1023 +msgid "" +"By default the impl function Argument Clinic generates for you returns " +"``PyObject *``. But your C function often computes some C type, then " +"converts it into the ``PyObject *`` at the last moment. Argument Clinic " +"handles converting your inputs from Python types into native C types—why not " +"have it convert your return value from a native C type into a Python type " +"too?" +msgstr "" + +#: ../Doc/howto/clinic.rst:1029 +msgid "" +"That's what a \"return converter\" does. It changes your impl function to " +"return some C type, then adds code to the generated (non-impl) function to " +"handle converting that value into the appropriate ``PyObject *``." +msgstr "" + +#: ../Doc/howto/clinic.rst:1033 +msgid "" +"The syntax for return converters is similar to that of parameter converters. " +"You specify the return converter like it was a return annotation on the " +"function itself. Return converters behave much the same as parameter " +"converters; they take arguments, the arguments are all keyword-only, and if " +"you're not changing any of the default arguments you can omit the " +"parentheses." +msgstr "" + +#: ../Doc/howto/clinic.rst:1039 +msgid "" +"(If you use both ``\"as\"`` *and* a return converter for your function, the " +"``\"as\"`` should come before the return converter.)" +msgstr "" + +#: ../Doc/howto/clinic.rst:1042 +msgid "" +"There's one additional complication when using return converters: how do you " +"indicate an error has occurred? Normally, a function returns a valid (non-" +"``NULL``) pointer for success, and ``NULL`` for failure. But if you use an " +"integer return converter, all integers are valid. How can Argument Clinic " +"detect an error? Its solution: each return converter implicitly looks for a " +"special value that indicates an error. If you return that value, and an " +"error has been set (``PyErr_Occurred()`` returns a true value), then the " +"generated code will propagate the error. Otherwise it will encode the value " +"you return like normal." +msgstr "" + +#: ../Doc/howto/clinic.rst:1051 +msgid "Currently Argument Clinic supports only a few return converters:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1066 +msgid "" +"None of these take parameters. For the first three, return -1 to indicate " +"error. For ``DecodeFSDefault``, the return type is ``const char *``; return " +"a NULL pointer to indicate an error." +msgstr "" + +#: ../Doc/howto/clinic.rst:1070 +msgid "" +"(There's also an experimental ``NoneType`` converter, which lets you return " +"``Py_None`` on success or ``NULL`` on failure, without having to increment " +"the reference count on ``Py_None``. I'm not sure it adds enough clarity to " +"be worth using.)" +msgstr "" + +#: ../Doc/howto/clinic.rst:1075 +msgid "" +"To see all the return converters Argument Clinic supports, along with their " +"parameters (if any), just run ``Tools/clinic/clinic.py --converters`` for " +"the full list." +msgstr "" + +#: ../Doc/howto/clinic.rst:1081 +msgid "Cloning existing functions" +msgstr "" + +#: ../Doc/howto/clinic.rst:1083 +msgid "" +"If you have a number of functions that look similar, you may be able to use " +"Clinic's \"clone\" feature. When you clone an existing function, you reuse:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1087 +msgid "its parameters, including" +msgstr "" + +#: ../Doc/howto/clinic.rst:1089 +msgid "their names," +msgstr "" + +#: ../Doc/howto/clinic.rst:1091 +msgid "their converters, with all parameters," +msgstr "" + +#: ../Doc/howto/clinic.rst:1093 +msgid "their default values," +msgstr "" + +#: ../Doc/howto/clinic.rst:1095 +msgid "their per-parameter docstrings," +msgstr "" + +#: ../Doc/howto/clinic.rst:1097 +msgid "" +"their *kind* (whether they're positional only, positional or keyword, or " +"keyword only), and" +msgstr "" + +#: ../Doc/howto/clinic.rst:1100 +msgid "its return converter." +msgstr "" + +#: ../Doc/howto/clinic.rst:1102 +msgid "" +"The only thing not copied from the original function is its docstring; the " +"syntax allows you to specify a new docstring." +msgstr "" + +#: ../Doc/howto/clinic.rst:1105 +msgid "Here's the syntax for cloning a function::" +msgstr "" + +#: ../Doc/howto/clinic.rst:1113 +msgid "" +"(The functions can be in different modules or classes. I wrote ``module." +"class`` in the sample just to illustrate that you must use the full path to " +"*both* functions.)" +msgstr "" + +#: ../Doc/howto/clinic.rst:1117 +msgid "" +"Sorry, there's no syntax for partially-cloning a function, or cloning a " +"function then modifying it. Cloning is an all-or nothing proposition." +msgstr "" + +#: ../Doc/howto/clinic.rst:1120 +msgid "" +"Also, the function you are cloning from must have been previously defined in " +"the current file." +msgstr "" + +#: ../Doc/howto/clinic.rst:1124 +msgid "Calling Python code" +msgstr "" + +#: ../Doc/howto/clinic.rst:1126 +msgid "" +"The rest of the advanced topics require you to write Python code which lives " +"inside your C file and modifies Argument Clinic's runtime state. This is " +"simple: you simply define a Python block." +msgstr "" + +#: ../Doc/howto/clinic.rst:1130 +msgid "" +"A Python block uses different delimiter lines than an Argument Clinic " +"function block. It looks like this::" +msgstr "" + +#: ../Doc/howto/clinic.rst:1137 +msgid "" +"All the code inside the Python block is executed at the time it's parsed. " +"All text written to stdout inside the block is redirected into the \"output" +"\" after the block." +msgstr "" + +#: ../Doc/howto/clinic.rst:1141 +msgid "" +"As an example, here's a Python block that adds a static integer variable to " +"the C code::" +msgstr "" + +#: ../Doc/howto/clinic.rst:1152 +msgid "Using a \"self converter\"" +msgstr "" + +#: ../Doc/howto/clinic.rst:1154 +msgid "" +"Argument Clinic automatically adds a \"self\" parameter for you using a " +"default converter. It automatically sets the ``type`` of this parameter to " +"the \"pointer to an instance\" you specified when you declared the type. " +"However, you can override Argument Clinic's converter and specify one " +"yourself. Just add your own ``self`` parameter as the first parameter in a " +"block, and ensure that its converter is an instance of ``self_converter`` or " +"a subclass thereof." +msgstr "" + +#: ../Doc/howto/clinic.rst:1163 +msgid "" +"What's the point? This lets you override the type of ``self``, or give it a " +"different default name." +msgstr "" + +#: ../Doc/howto/clinic.rst:1166 +msgid "" +"How do you specify the custom type you want to cast ``self`` to? If you only " +"have one or two functions with the same type for ``self``, you can directly " +"use Argument Clinic's existing ``self`` converter, passing in the type you " +"want to use as the ``type`` parameter::" +msgstr "" + +#: ../Doc/howto/clinic.rst:1182 +msgid "" +"On the other hand, if you have a lot of functions that will use the same " +"type for ``self``, it's best to create your own converter, subclassing " +"``self_converter`` but overwriting the ``type`` member::" +msgstr "" + +#: ../Doc/howto/clinic.rst:1205 +msgid "Writing a custom converter" +msgstr "" + +#: ../Doc/howto/clinic.rst:1207 +msgid "" +"As we hinted at in the previous section... you can write your own " +"converters! A converter is simply a Python class that inherits from " +"``CConverter``. The main purpose of a custom converter is if you have a " +"parameter using the ``O&`` format unit—parsing this parameter means calling " +"a :c:func:`PyArg_ParseTuple` \"converter function\"." +msgstr "" + +#: ../Doc/howto/clinic.rst:1213 +msgid "" +"Your converter class should be named ``*something*_converter``. If the name " +"follows this convention, then your converter class will be automatically " +"registered with Argument Clinic; its name will be the name of your class " +"with the ``_converter`` suffix stripped off. (This is accomplished with a " +"metaclass.)" +msgstr "" + +#: ../Doc/howto/clinic.rst:1219 +msgid "" +"You shouldn't subclass ``CConverter.__init__``. Instead, you should write a " +"``converter_init()`` function. ``converter_init()`` always accepts a " +"``self`` parameter; after that, all additional parameters *must* be keyword-" +"only. Any arguments passed in to the converter in Argument Clinic will be " +"passed along to your ``converter_init()``." +msgstr "" + +#: ../Doc/howto/clinic.rst:1226 +msgid "" +"There are some additional members of ``CConverter`` you may wish to specify " +"in your subclass. Here's the current list:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1230 +msgid "" +"The C type to use for this variable. ``type`` should be a Python string " +"specifying the type, e.g. ``int``. If this is a pointer type, the type " +"string should end with ``' *'``." +msgstr "" + +#: ../Doc/howto/clinic.rst:1236 +msgid "``default``" +msgstr "" + +#: ../Doc/howto/clinic.rst:1235 +msgid "" +"The Python default value for this parameter, as a Python value. Or the magic " +"value ``unspecified`` if there is no default." +msgstr "" + +#: ../Doc/howto/clinic.rst:1241 +msgid "``py_default``" +msgstr "" + +#: ../Doc/howto/clinic.rst:1239 +msgid "" +"``default`` as it should appear in Python code, as a string. Or ``None`` if " +"there is no default." +msgstr "" + +#: ../Doc/howto/clinic.rst:1244 +msgid "" +"``default`` as it should appear in C code, as a string. Or ``None`` if there " +"is no default." +msgstr "" + +#: ../Doc/howto/clinic.rst:1257 +msgid "``c_ignored_default``" +msgstr "" + +#: ../Doc/howto/clinic.rst:1249 +msgid "" +"The default value used to initialize the C variable when there is no " +"default, but not specifying a default may result in an \"uninitialized " +"variable\" warning. This can easily happen when using option groups—" +"although properly-written code will never actually use this value, the " +"variable does get passed in to the impl, and the C compiler will complain " +"about the \"use\" of the uninitialized value. This value should always be a " +"non-empty string." +msgstr "" + +#: ../Doc/howto/clinic.rst:1260 +msgid "The name of the C converter function, as a string." +msgstr "" + +#: ../Doc/howto/clinic.rst:1265 +msgid "``impl_by_reference``" +msgstr "" + +#: ../Doc/howto/clinic.rst:1263 +msgid "" +"A boolean value. If true, Argument Clinic will add a ``&`` in front of the " +"name of the variable when passing it into the impl function." +msgstr "" + +#: ../Doc/howto/clinic.rst:1271 +msgid "``parse_by_reference``" +msgstr "" + +#: ../Doc/howto/clinic.rst:1268 +msgid "" +"A boolean value. If true, Argument Clinic will add a ``&`` in front of the " +"name of the variable when passing it into :c:func:`PyArg_ParseTuple`." +msgstr "" + +#: ../Doc/howto/clinic.rst:1273 +msgid "" +"Here's the simplest example of a custom converter, from ``Modules/zlibmodule." +"c``::" +msgstr "" + +#: ../Doc/howto/clinic.rst:1284 +msgid "" +"This block adds a converter to Argument Clinic named ``ssize_t``. " +"Parameters declared as ``ssize_t`` will be declared as type ``Py_ssize_t``, " +"and will be parsed by the ``'O&'`` format unit, which will call the " +"``ssize_t_converter`` converter function. ``ssize_t`` variables " +"automatically support default values." +msgstr "" + +#: ../Doc/howto/clinic.rst:1290 +msgid "" +"More sophisticated custom converters can insert custom C code to handle " +"initialization and cleanup. You can see more examples of custom converters " +"in the CPython source tree; grep the C files for the string ``CConverter``." +msgstr "" + +#: ../Doc/howto/clinic.rst:1296 +msgid "Writing a custom return converter" +msgstr "" + +#: ../Doc/howto/clinic.rst:1298 +msgid "" +"Writing a custom return converter is much like writing a custom converter. " +"Except it's somewhat simpler, because return converters are themselves much " +"simpler." +msgstr "" + +#: ../Doc/howto/clinic.rst:1302 +msgid "" +"Return converters must subclass ``CReturnConverter``. There are no examples " +"yet of custom return converters, because they are not widely used yet. If " +"you wish to write your own return converter, please read ``Tools/clinic/" +"clinic.py``, specifically the implementation of ``CReturnConverter`` and all " +"its subclasses." +msgstr "" + +#: ../Doc/howto/clinic.rst:1310 +msgid "METH_O and METH_NOARGS" +msgstr "" + +#: ../Doc/howto/clinic.rst:1312 +msgid "" +"To convert a function using ``METH_O``, make sure the function's single " +"argument is using the ``object`` converter, and mark the arguments as " +"positional-only::" +msgstr "" + +#: ../Doc/howto/clinic.rst:1324 +msgid "" +"To convert a function using ``METH_NOARGS``, just don't specify any " +"arguments." +msgstr "" + +#: ../Doc/howto/clinic.rst:1327 +msgid "" +"You can still use a self converter, a return converter, and specify a " +"``type`` argument to the object converter for ``METH_O``." +msgstr "" + +#: ../Doc/howto/clinic.rst:1331 +msgid "tp_new and tp_init functions" +msgstr "" + +#: ../Doc/howto/clinic.rst:1333 +msgid "" +"You can convert ``tp_new`` and ``tp_init`` functions. Just name them " +"``__new__`` or ``__init__`` as appropriate. Notes:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1336 +msgid "" +"The function name generated for ``__new__`` doesn't end in ``__new__`` like " +"it would by default. It's just the name of the class, converted into a " +"valid C identifier." +msgstr "" + +#: ../Doc/howto/clinic.rst:1340 +msgid "No ``PyMethodDef`` ``#define`` is generated for these functions." +msgstr "" + +#: ../Doc/howto/clinic.rst:1342 +msgid "``__init__`` functions return ``int``, not ``PyObject *``." +msgstr "" + +#: ../Doc/howto/clinic.rst:1344 +msgid "Use the docstring as the class docstring." +msgstr "" + +#: ../Doc/howto/clinic.rst:1346 +msgid "" +"Although ``__new__`` and ``__init__`` functions must always accept both the " +"``args`` and ``kwargs`` objects, when converting you may specify any " +"signature for these functions that you like. (If your function doesn't " +"support keywords, the parsing function generated will throw an exception if " +"it receives any.)" +msgstr "" + +#: ../Doc/howto/clinic.rst:1353 +msgid "Changing and redirecting Clinic's output" +msgstr "" + +#: ../Doc/howto/clinic.rst:1355 +msgid "" +"It can be inconvenient to have Clinic's output interspersed with your " +"conventional hand-edited C code. Luckily, Clinic is configurable: you can " +"buffer up its output for printing later (or earlier!), or write its output " +"to a separate file. You can also add a prefix or suffix to every line of " +"Clinic's generated output." +msgstr "" + +#: ../Doc/howto/clinic.rst:1361 +msgid "" +"While changing Clinic's output in this manner can be a boon to readability, " +"it may result in Clinic code using types before they are defined, or your " +"code attempting to use Clinic-generated code before it is defined. These " +"problems can be easily solved by rearranging the declarations in your file, " +"or moving where Clinic's generated code goes. (This is why the default " +"behavior of Clinic is to output everything into the current block; while " +"many people consider this hampers readability, it will never require " +"rearranging your code to fix definition-before-use problems.)" +msgstr "" + +#: ../Doc/howto/clinic.rst:1370 +msgid "Let's start with defining some terminology:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1397 +msgid "*field*" +msgstr "" + +#: ../Doc/howto/clinic.rst:1373 +msgid "" +"A field, in this context, is a subsection of Clinic's output. For example, " +"the ``#define`` for the ``PyMethodDef`` structure is a field, called " +"``methoddef_define``. Clinic has seven different fields it can output per " +"function definition:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1388 +msgid "" +"All the names are of the form ``\"_\"``, where ``\"\"`` is the " +"semantic object represented (the parsing function, the impl function, the " +"docstring, or the methoddef structure) and ``\"\"`` represents what kind " +"of statement the field is. Field names that end in ``\"_prototype\"`` " +"represent forward declarations of that thing, without the actual body/data " +"of the thing; field names that end in ``\"_definition\"`` represent the " +"actual definition of the thing, with the body/data of the thing. (``" +"\"methoddef\"`` is special, it's the only one that ends with ``\"_define" +"\"``, representing that it's a preprocessor #define.)" +msgstr "" + +#: ../Doc/howto/clinic.rst:1431 +msgid "*destination*" +msgstr "" + +#: ../Doc/howto/clinic.rst:1400 +msgid "" +"A destination is a place Clinic can write output to. There are five built-" +"in destinations:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1405 ../Doc/howto/clinic.rst:1480 +#: ../Doc/howto/clinic.rst:1558 +msgid "``block``" +msgstr "" + +#: ../Doc/howto/clinic.rst:1404 +msgid "" +"The default destination: printed in the output section of the current Clinic " +"block." +msgstr "" + +#: ../Doc/howto/clinic.rst:1411 ../Doc/howto/clinic.rst:1507 +#: ../Doc/howto/clinic.rst:1561 +msgid "``buffer``" +msgstr "" + +#: ../Doc/howto/clinic.rst:1408 +msgid "" +"A text buffer where you can save text for later. Text sent here is appended " +"to the end of any existing text. It's an error to have any text left in the " +"buffer when Clinic finishes processing a file." +msgstr "" + +#: ../Doc/howto/clinic.rst:1422 ../Doc/howto/clinic.rst:1493 +#: ../Doc/howto/clinic.rst:1587 +msgid "``file``" +msgstr "" + +#: ../Doc/howto/clinic.rst:1414 +msgid "" +"A separate \"clinic file\" that will be created automatically by Clinic. The " +"filename chosen for the file is ``{basename}.clinic{extension}``, where " +"``basename`` and ``extension`` were assigned the output from ``os.path." +"splitext()`` run on the current file. (Example: the ``file`` destination " +"for ``_pickle.c`` would be written to ``_pickle.clinic.c``.)" +msgstr "" + +#: ../Doc/howto/clinic.rst:1421 +msgid "" +"**Important: When using a** ``file`` **destination, you** *must check in* " +"**the generated file!**" +msgstr "" + +#: ../Doc/howto/clinic.rst:1427 ../Doc/howto/clinic.rst:1520 +#: ../Doc/howto/clinic.rst:1591 +msgid "``two-pass``" +msgstr "" + +#: ../Doc/howto/clinic.rst:1425 +msgid "" +"A buffer like ``buffer``. However, a two-pass buffer can only be dumped " +"once, and it prints out all text sent to it during all processing, even from " +"Clinic blocks *after* the dumping point." +msgstr "" + +#: ../Doc/howto/clinic.rst:1431 ../Doc/howto/clinic.rst:1554 +msgid "``suppress``" +msgstr "" + +#: ../Doc/howto/clinic.rst:1430 +msgid "The text is suppressed—thrown away." +msgstr "" + +#: ../Doc/howto/clinic.rst:1433 +msgid "Clinic defines five new directives that let you reconfigure its output." +msgstr "" + +#: ../Doc/howto/clinic.rst:1435 +msgid "The first new directive is ``dump``:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1441 +msgid "" +"This dumps the current contents of the named destination into the output of " +"the current block, and empties it. This only works with ``buffer`` and " +"``two-pass`` destinations." +msgstr "" + +#: ../Doc/howto/clinic.rst:1445 +msgid "" +"The second new directive is ``output``. The most basic form of ``output`` " +"is like this:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1452 +msgid "" +"This tells Clinic to output *field* to *destination*. ``output`` also " +"supports a special meta-destination, called ``everything``, which tells " +"Clinic to output *all* fields to that *destination*." +msgstr "" + +#: ../Doc/howto/clinic.rst:1456 +msgid "``output`` has a number of other functions:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1465 +msgid "" +"``output push`` and ``output pop`` allow you to push and pop configurations " +"on an internal configuration stack, so that you can temporarily modify the " +"output configuration, then easily restore the previous configuration. " +"Simply push before your change to save the current configuration, then pop " +"when you wish to restore the previous configuration." +msgstr "" + +#: ../Doc/howto/clinic.rst:1472 +msgid "" +"``output preset`` sets Clinic's output to one of several built-in preset " +"configurations, as follows:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1476 +msgid "" +"Clinic's original starting configuration. Writes everything immediately " +"after the input block." +msgstr "" + +#: ../Doc/howto/clinic.rst:1479 +msgid "" +"Suppress the ``parser_prototype`` and ``docstring_prototype``, write " +"everything else to ``block``." +msgstr "" + +#: ../Doc/howto/clinic.rst:1483 +msgid "" +"Designed to write everything to the \"clinic file\" that it can. You then " +"``#include`` this file near the top of your file. You may need to rearrange " +"your file to make this work, though usually this just means creating forward " +"declarations for various ``typedef`` and ``PyTypeObject`` definitions." +msgstr "" + +#: ../Doc/howto/clinic.rst:1489 +msgid "" +"Suppress the ``parser_prototype`` and ``docstring_prototype``, write the " +"``impl_definition`` to ``block``, and write everything else to ``file``." +msgstr "" + +#: ../Doc/howto/clinic.rst:1493 +msgid "The default filename is ``\"{dirname}/clinic/{basename}.h\"``." +msgstr "" + +#: ../Doc/howto/clinic.rst:1496 +msgid "" +"Save up most of the output from Clinic, to be written into your file near " +"the end. For Python files implementing modules or builtin types, it's " +"recommended that you dump the buffer just above the static structures for " +"your module or builtin type; these are normally very near the end. Using " +"``buffer`` may require even more editing than ``file``, if your file has " +"static ``PyMethodDef`` arrays defined in the middle of the file." +msgstr "" + +#: ../Doc/howto/clinic.rst:1505 +msgid "" +"Suppress the ``parser_prototype``, ``impl_prototype``, and " +"``docstring_prototype``, write the ``impl_definition`` to ``block``, and " +"write everything else to ``file``." +msgstr "" + +#: ../Doc/howto/clinic.rst:1510 +msgid "" +"Similar to the ``buffer`` preset, but writes forward declarations to the " +"``two-pass`` buffer, and definitions to the ``buffer``. This is similar to " +"the ``buffer`` preset, but may require less editing than ``buffer``. Dump " +"the ``two-pass`` buffer near the top of your file, and dump the ``buffer`` " +"near the end just like you would when using the ``buffer`` preset." +msgstr "" + +#: ../Doc/howto/clinic.rst:1517 +msgid "" +"Suppresses the ``impl_prototype``, write the ``impl_definition`` to " +"``block``, write ``docstring_prototype``, ``methoddef_define``, and " +"``parser_prototype`` to ``two-pass``, write everything else to ``buffer``." +msgstr "" + +#: ../Doc/howto/clinic.rst:1531 +msgid "``partial-buffer``" +msgstr "" + +#: ../Doc/howto/clinic.rst:1523 +msgid "" +"Similar to the ``buffer`` preset, but writes more things to ``block``, only " +"writing the really big chunks of generated code to ``buffer``. This avoids " +"the definition-before-use problem of ``buffer`` completely, at the small " +"cost of having slightly more stuff in the block's output. Dump the " +"``buffer`` near the end, just like you would when using the ``buffer`` " +"preset." +msgstr "" + +#: ../Doc/howto/clinic.rst:1530 +msgid "" +"Suppresses the ``impl_prototype``, write the ``docstring_definition`` and " +"``parser_definition`` to ``buffer``, write everything else to ``block``." +msgstr "" + +#: ../Doc/howto/clinic.rst:1533 +msgid "The third new directive is ``destination``:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1539 +msgid "This performs an operation on the destination named ``name``." +msgstr "" + +#: ../Doc/howto/clinic.rst:1541 +msgid "There are two defined subcommands: ``new`` and ``clear``." +msgstr "" + +#: ../Doc/howto/clinic.rst:1543 +msgid "The ``new`` subcommand works like this:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1549 +msgid "" +"This creates a new destination with name ```` and type ````." +msgstr "" + +#: ../Doc/howto/clinic.rst:1551 +msgid "There are five destination types:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1554 +msgid "Throws the text away." +msgstr "" + +#: ../Doc/howto/clinic.rst:1557 +msgid "" +"Writes the text to the current block. This is what Clinic originally did." +msgstr "" + +#: ../Doc/howto/clinic.rst:1561 +msgid "A simple text buffer, like the \"buffer\" builtin destination above." +msgstr "" + +#: ../Doc/howto/clinic.rst:1564 +msgid "" +"A text file. The file destination takes an extra argument, a template to " +"use for building the filename, like so:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1567 +msgid "destination new " +msgstr "" + +#: ../Doc/howto/clinic.rst:1569 +msgid "" +"The template can use three strings internally that will be replaced by bits " +"of the filename:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1572 +msgid "{path}" +msgstr "" + +#: ../Doc/howto/clinic.rst:1573 +msgid "The full path to the file, including directory and full filename." +msgstr "" + +#: ../Doc/howto/clinic.rst:1574 +msgid "{dirname}" +msgstr "" + +#: ../Doc/howto/clinic.rst:1575 +msgid "The name of the directory the file is in." +msgstr "" + +#: ../Doc/howto/clinic.rst:1576 +msgid "{basename}" +msgstr "" + +#: ../Doc/howto/clinic.rst:1577 +msgid "Just the name of the file, not including the directory." +msgstr "" + +#: ../Doc/howto/clinic.rst:1579 +msgid "{basename_root}" +msgstr "" + +#: ../Doc/howto/clinic.rst:1579 +msgid "" +"Basename with the extension clipped off (everything up to but not including " +"the last '.')." +msgstr "" + +#: ../Doc/howto/clinic.rst:1583 +msgid "{basename_extension}" +msgstr "" + +#: ../Doc/howto/clinic.rst:1582 +msgid "" +"The last '.' and everything after it. If the basename does not contain a " +"period, this will be the empty string." +msgstr "" + +#: ../Doc/howto/clinic.rst:1585 +msgid "" +"If there are no periods in the filename, {basename} and {filename} are the " +"same, and {extension} is empty. \"{basename}{extension}\" is always exactly " +"the same as \"{filename}\".\"" +msgstr "" + +#: ../Doc/howto/clinic.rst:1590 +msgid "A two-pass buffer, like the \"two-pass\" builtin destination above." +msgstr "" + +#: ../Doc/howto/clinic.rst:1593 +msgid "The ``clear`` subcommand works like this:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1599 +msgid "" +"It removes all the accumulated text up to this point in the destination. (I " +"don't know what you'd need this for, but I thought maybe it'd be useful " +"while someone's experimenting.)" +msgstr "" + +#: ../Doc/howto/clinic.rst:1603 +msgid "The fourth new directive is ``set``:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1610 +msgid "" +"``set`` lets you set two internal variables in Clinic. ``line_prefix`` is a " +"string that will be prepended to every line of Clinic's output; " +"``line_suffix`` is a string that will be appended to every line of Clinic's " +"output." +msgstr "" + +#: ../Doc/howto/clinic.rst:1614 +msgid "Both of these support two format strings:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1617 +msgid "``{block comment start}``" +msgstr "" + +#: ../Doc/howto/clinic.rst:1617 +msgid "" +"Turns into the string ``/*``, the start-comment text sequence for C files." +msgstr "" + +#: ../Doc/howto/clinic.rst:1620 +msgid "``{block comment end}``" +msgstr "" + +#: ../Doc/howto/clinic.rst:1620 +msgid "" +"Turns into the string ``*/``, the end-comment text sequence for C files." +msgstr "" + +#: ../Doc/howto/clinic.rst:1622 +msgid "" +"The final new directive is one you shouldn't need to use directly, called " +"``preserve``:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1629 +msgid "" +"This tells Clinic that the current contents of the output should be kept, " +"unmodified. This is used internally by Clinic when dumping output into " +"``file`` files; wrapping it in a Clinic block lets Clinic use its existing " +"checksum functionality to ensure the file was not modified by hand before it " +"gets overwritten." +msgstr "" + +#: ../Doc/howto/clinic.rst:1636 +msgid "The #ifdef trick" +msgstr "" + +#: ../Doc/howto/clinic.rst:1638 +msgid "" +"If you're converting a function that isn't available on all platforms, " +"there's a trick you can use to make life a little easier. The existing code " +"probably looks like this::" +msgstr "" + +#: ../Doc/howto/clinic.rst:1649 +msgid "" +"And then in the ``PyMethodDef`` structure at the bottom the existing code " +"will have:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1658 +msgid "" +"In this scenario, you should enclose the body of your impl function inside " +"the ``#ifdef``, like so::" +msgstr "" + +#: ../Doc/howto/clinic.rst:1672 +msgid "" +"Then, remove those three lines from the ``PyMethodDef`` structure, replacing " +"them with the macro Argument Clinic generated:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1679 +msgid "" +"(You can find the real name for this macro inside the generated code. Or you " +"can calculate it yourself: it's the name of your function as defined on the " +"first line of your block, but with periods changed to underscores, " +"uppercased, and ``\"_METHODDEF\"`` added to the end.)" +msgstr "" + +#: ../Doc/howto/clinic.rst:1684 +msgid "" +"Perhaps you're wondering: what if ``HAVE_FUNCTIONNAME`` isn't defined? The " +"``MODULE_FUNCTIONNAME_METHODDEF`` macro won't be defined either!" +msgstr "" + +#: ../Doc/howto/clinic.rst:1687 +msgid "" +"Here's where Argument Clinic gets very clever. It actually detects that the " +"Argument Clinic block might be deactivated by the ``#ifdef``. When that " +"happens, it generates a little extra code that looks like this::" +msgstr "" + +#: ../Doc/howto/clinic.rst:1695 +msgid "" +"That means the macro always works. If the function is defined, this turns " +"into the correct structure, including the trailing comma. If the function " +"is undefined, this turns into nothing." +msgstr "" + +#: ../Doc/howto/clinic.rst:1699 +msgid "" +"However, this causes one ticklish problem: where should Argument Clinic put " +"this extra code when using the \"block\" output preset? It can't go in the " +"output block, because that could be deactivated by the ``#ifdef``. (That's " +"the whole point!)" +msgstr "" + +#: ../Doc/howto/clinic.rst:1703 +msgid "" +"In this situation, Argument Clinic writes the extra code to the \"buffer\" " +"destination. This may mean that you get a complaint from Argument Clinic:" +msgstr "" + +#: ../Doc/howto/clinic.rst:1711 +msgid "" +"When this happens, just open your file, find the ``dump buffer`` block that " +"Argument Clinic added to your file (it'll be at the very bottom), then move " +"it above the ``PyMethodDef`` structure where that macro is used." +msgstr "" + +#: ../Doc/howto/clinic.rst:1718 +msgid "Using Argument Clinic in Python files" +msgstr "" + +#: ../Doc/howto/clinic.rst:1720 +msgid "" +"It's actually possible to use Argument Clinic to preprocess Python files. " +"There's no point to using Argument Clinic blocks, of course, as the output " +"wouldn't make any sense to the Python interpreter. But using Argument " +"Clinic to run Python blocks lets you use Python as a Python preprocessor!" +msgstr "" + +#: ../Doc/howto/clinic.rst:1725 +msgid "" +"Since Python comments are different from C comments, Argument Clinic blocks " +"embedded in Python files look slightly different. They look like this:" +msgstr "" diff --git a/howto/cporting.po b/howto/cporting.po new file mode 100644 index 000000000..b14613dcb --- /dev/null +++ b/howto/cporting.po @@ -0,0 +1,269 @@ +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: 2019-07-19 23:34+0200\n" +"Last-Translator: Andy Kwok \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" + +#: ../Doc/howto/cporting.rst:7 +msgid "Porting Extension Modules to Python 3" +msgstr "Portage des modules d'extension vers Python 3" + +#: ../Doc/howto/cporting.rst:0 +msgid "author" +msgstr "auteur" + +#: ../Doc/howto/cporting.rst:9 +msgid "Benjamin Peterson" +msgstr "Benjamin Peterson" + +#: ../Doc/howto/cporting.rst:None +msgid "Abstract" +msgstr "Résumé" + +#: ../Doc/howto/cporting.rst:14 +msgid "" +"Although changing the C-API was not one of Python 3's objectives, the many " +"Python-level changes made leaving Python 2's API intact impossible. In " +"fact, some changes such as :func:`int` and :func:`long` unification are more " +"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" +msgstr "Compilation conditionnelle" + +#: ../Doc/howto/cporting.rst:25 +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 "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 "Unification de *str* et *unicode*" + +#: ../Doc/howto/cporting.rst:46 +msgid "" +"Python 3's :func:`str` type is equivalent to Python 2's :func:`unicode`; the " +"C functions are called ``PyUnicode_*`` for both. The old 8-bit string type " +"has become :func:`bytes`, with C functions called ``PyBytes_*``. Python 2.6 " +"and later provide a compatibility header, :file:`bytesobject.h`, mapping " +"``PyBytes`` names to ``PyString`` ones. For best compatibility with Python " +"3, :c:type:`PyUnicode` should be used for textual data and :c:type:`PyBytes` " +"for binary data. It's also important to remember that :c:type:`PyBytes` " +"and :c:type:`PyUnicode` in Python 3 are not interchangeable like :c:type:" +"`PyString` and :c:type:`PyUnicode` are in Python 2. The following example " +"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 "Unification de *long* et *int*" + +#: ../Doc/howto/cporting.rst:97 +msgid "" +"Python 3 has only one integer type, :func:`int`. But it actually " +"corresponds to Python 2's :func:`long` type—the :func:`int` type used in " +"Python 2 was removed. In the C-API, ``PyInt_*`` functions are replaced by " +"their ``PyLong_*`` equivalents." +msgstr "" +"Python 3 n'a qu'un type d'entier, :func:`int`. Mais il correspond au type :" +"func:`long` de Python 2 — le type :func:`int` utilisé dans Python 2 a été " +"supprimé. Dans l'API C, les fonctions ``PyInt_*`` sont remplacées par leurs " +"équivalents ``PyLong_*``." + +#: ../Doc/howto/cporting.rst:104 +msgid "Module initialization and state" +msgstr "Initialisation et état du module" + +#: ../Doc/howto/cporting.rst:106 +msgid "" +"Python 3 has a revamped extension module initialization system. (See :pep:" +"`3121`.) Instead of storing module state in globals, they should be stored " +"in an interpreter specific structure. Creating modules that act correctly " +"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 "CObject remplacé par Capsule" + +#: ../Doc/howto/cporting.rst:199 +msgid "" +"The :c:type:`Capsule` object was introduced in Python 3.1 and 2.7 to " +"replace :c:type:`CObject`. CObjects were useful, but the :c:type:`CObject` " +"API was problematic: it didn't permit distinguishing between valid CObjects, " +"which allowed mismatched CObjects to crash the interpreter, and some of its " +"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 "" +"If you're currently using CObjects, and you want to migrate to 3.1 or newer, " +"you'll need to switch to Capsules. :c:type:`CObject` was deprecated in 3.1 " +"and 2.7 and completely removed in Python 3.2. If you only support 2.7, or " +"3.1 and above, you can simply switch to :c:type:`Capsule`. If you need to " +"support Python 3.0, or versions of Python earlier than 2.7, you'll have to " +"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 "" +"The following example header file :file:`capsulethunk.h` may solve the " +"problem for you. Simply write your code against the :c:type:`Capsule` API " +"and include this header file after :file:`Python.h`. Your code will " +"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 "" +":file:`capsulethunk.h` simulates Capsules using CObjects. However, :c:type:" +"`CObject` provides no place to store the capsule's \"name\". As a result " +"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 "Le paramètre *name* passé à :c:func:`PyCapsule_New` est ignoré." + +#: ../Doc/howto/cporting.rst:230 +msgid "" +"The name parameter passed in to :c:func:`PyCapsule_IsValid` and :c:func:" +"`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 ":c:func:`PyCapsule_GetName` renvoie toujours un NULL." + +#: ../Doc/howto/cporting.rst:236 +msgid "" +":c:func:`PyCapsule_SetName` always raises an exception and returns failure. " +"(Since there's no way to store a name in a CObject, noisy failure of :c:func:" +"`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 "" +"You can find :file:`capsulethunk.h` in the Python source distribution as :" +"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 "Autres options" + +#: ../Doc/howto/cporting.rst:254 +msgid "" +"If you are writing a new extension module, you might consider `Cython " +"`_. 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 `_. 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." diff --git a/howto/curses.po b/howto/curses.po new file mode 100644 index 000000000..1255203e7 --- /dev/null +++ b/howto/curses.po @@ -0,0 +1,1087 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/howto/curses.rst:5 +msgid "Curses Programming with Python" +msgstr "Programmation *Curses* avec Python" + +#: ../Doc/howto/curses.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/howto/curses.rst:7 +msgid "A.M. Kuchling, Eric S. Raymond" +msgstr "A.M. Kuchling, Eric S. Raymond" + +#: ../Doc/howto/curses.rst:0 +msgid "Release" +msgstr "Version" + +#: ../Doc/howto/curses.rst:8 +msgid "2.04" +msgstr "2.04" + +#: ../Doc/howto/curses.rst:None +msgid "Abstract" +msgstr "Résumé" + +#: ../Doc/howto/curses.rst:13 +msgid "" +"This document describes how to use the :mod:`curses` extension module to " +"control text-mode displays." +msgstr "" +"Ce document décrit comment utiliser le module d'extension :mod:`curses` pour " +"contrôler l'affichage en mode texte." + +#: ../Doc/howto/curses.rst:18 +msgid "What is curses?" +msgstr "Qu'est-ce que *curses* ?" + +#: ../Doc/howto/curses.rst:20 +msgid "" +"The curses library supplies a terminal-independent screen-painting and " +"keyboard-handling facility for text-based terminals; such terminals include " +"VT100s, the Linux console, and the simulated terminal provided by various " +"programs. Display terminals support various control codes to perform common " +"operations such as moving the cursor, scrolling the screen, and erasing " +"areas. Different terminals use widely differing codes, and often have their " +"own minor quirks." +msgstr "" +"La bibliothèque *curses* fournit une capacité de dessin à l'écran et de " +"gestion du clavier indépendante du terminal pour les terminaux textuels ; " +"ces terminaux comprennent les *VT100*, la console Linux et le terminal " +"simulé fourni par divers programmes. Les terminaux d'affichage prennent en " +"charge divers codes de commande pour effectuer des opérations courantes " +"telles que déplacer le curseur, faire défiler l'écran et effacer des zones. " +"Différents terminaux utilisent des codes très différents et ont souvent " +"leurs propres bizarreries mineures." + +#: ../Doc/howto/curses.rst:28 +msgid "" +"In a world of graphical displays, one might ask \"why bother\"? It's true " +"that character-cell display terminals are an obsolete technology, but there " +"are niches in which being able to do fancy things with them are still " +"valuable. One niche is on small-footprint or embedded Unixes that don't run " +"an X server. Another is tools such as OS installers and kernel " +"configurators that may have to run before any graphical support is available." +msgstr "" +"Dans un monde d'affichages graphiques, on pourrait se demander « pourquoi " +"s'embêter ? ». Il est vrai que les terminaux d'affichage caractère par " +"caractère sont une technologie obsolète, mais il existe des niches pour " +"lesquelles la possibilité de faire des choses fantaisistes est encore " +"précieuse. En exemple de niche, on peut citer les systèmes de type Unix de " +"petite taille ou embarqués qui n'utilisent pas de serveur X. Il y a aussi " +"les outils tels que les installateurs d'OS et les outils de configuration du " +"noyau qui doivent être exécutés avant qu'un support graphique ne soit " +"disponible." + +#: ../Doc/howto/curses.rst:36 +msgid "" +"The curses library provides fairly basic functionality, providing the " +"programmer with an abstraction of a display containing multiple non-" +"overlapping windows of text. The contents of a window can be changed in " +"various ways---adding text, erasing it, changing its appearance---and the " +"curses library will figure out what control codes need to be sent to the " +"terminal to produce the right output. curses doesn't provide many user-" +"interface concepts such as buttons, checkboxes, or dialogs; if you need such " +"features, consider a user interface library such as `Urwid `_." +msgstr "" +"La bibliothèque *curses* propose des fonctionnalités assez basiques, " +"fournissant au programmeur une abstraction d'affichage contenant plusieurs " +"fenêtres de texte qui ne se chevauchent pas. Le contenu d'une fenêtre peut " +"être modifié de différentes manières — en ajoutant du texte, en l'effaçant " +"ou en changeant son apparence — et la bibliothèque *curses* trouve quels " +"codes de contrôle doivent être envoyés au terminal pour produire le bon " +"résultat. *curses* ne fournit pas beaucoup de concepts d'interface " +"utilisateur tels que boutons, cases à cocher ou dialogues ; si vous avez " +"besoin de telles fonctionnalités, pensez à une bibliothèque d'interface " +"utilisateur comme `Urwid `_." + +#: ../Doc/howto/curses.rst:46 +msgid "" +"The curses library was originally written for BSD Unix; the later System V " +"versions of Unix from AT&T added many enhancements and new functions. BSD " +"curses is no longer maintained, having been replaced by ncurses, which is an " +"open-source implementation of the AT&T interface. If you're using an open-" +"source Unix such as Linux or FreeBSD, your system almost certainly uses " +"ncurses. Since most current commercial Unix versions are based on System V " +"code, all the functions described here will probably be available. The " +"older versions of curses carried by some proprietary Unixes may not support " +"everything, though." +msgstr "" +"La bibliothèque *curses* a été écrite à l'origine pour BSD Unix ; les " +"dernières versions *System V* d'Unix d'AT&T ont ajouté de nombreuses " +"améliorations et de nouvelles fonctions. BSD *curses* n'est plus maintenu, " +"ayant été remplacé par *ncurses*, qui est une implémentation open-source de " +"l'interface AT&T. Si vous utilisez un Unix open-source comme Linux ou " +"FreeBSD, votre système utilise presque certainement *ncurses*. Comme la " +"plupart des versions commerciales actuelles d'Unix sont basées sur le code " +"*System V*, toutes les fonctions décrites ici seront probablement " +"disponibles. Les anciennes versions de *curses* portées par certains Unix " +"propriétaires pourraient ne pas gérer toutes les fonctions." + +#: ../Doc/howto/curses.rst:56 +msgid "" +"The Windows version of Python doesn't include the :mod:`curses` module. A " +"ported version called `UniCurses `_ is " +"available. You could also try `the Console module `_ written by Fredrik Lundh, which doesn't use the same " +"API as curses but provides cursor-addressable text output and full support " +"for mouse and keyboard input." +msgstr "" +"La version Windows de Python n'inclut pas le module :mod:`curses`. Une " +"version portée appelée `UniCurses `_ est " +"disponible. Vous pouvez également essayer le `Windows console driver `_ écrit par Fredrik Lundh, qui n'utilise " +"pas la même API que *curses*, mais fournit une sortie texte avec gestion du " +"curseur et une prise en charge complète de la souris et du clavier." + +#: ../Doc/howto/curses.rst:66 +msgid "The Python curses module" +msgstr "Le module *curses* de Python" + +#: ../Doc/howto/curses.rst:68 +msgid "" +"The Python module is a fairly simple wrapper over the C functions provided " +"by curses; if you're already familiar with curses programming in C, it's " +"really easy to transfer that knowledge to Python. The biggest difference is " +"that the Python interface makes things simpler by merging different C " +"functions such as :c:func:`addstr`, :c:func:`mvaddstr`, and :c:func:" +"`mvwaddstr` into a single :meth:`~curses.window.addstr` method. You'll see " +"this covered in more detail later." +msgstr "" +"Le module Python est une surcouche assez simple enrobant les fonctions C " +"fournies par *curses* ; si vous êtes déjà familier avec la programmation " +"*curses* en C, il est très facile de transférer cette connaissance à Python. " +"La plus grande différence est que l'interface Python simplifie les choses en " +"fusionnant différentes fonctions C telles que :c:func:`addstr`, :c:func:" +"`mvaddstr` et :c:func:`mvwaddstr` en une seule méthode :meth:`~curses.window." +"addstr`. Nous voyons cela plus en détail ci-après." + +#: ../Doc/howto/curses.rst:76 +msgid "" +"This HOWTO is an introduction to writing text-mode programs with curses and " +"Python. It doesn't attempt to be a complete guide to the curses API; for " +"that, see the Python library guide's section on ncurses, and the C manual " +"pages for ncurses. It will, however, give you the basic ideas." +msgstr "" +"Ce guide pratique est une introduction à l'écriture de programmes en mode " +"texte avec *curses* et Python. Il n'essaie pas d'être un guide complet de " +"l'API *curses* ; pour cela, consultez la section du guide de la bibliothèque " +"Python sur *ncurses* et les pages du manuel C pour *ncurses*. Il vous donne " +"cependant les idées de base." + +#: ../Doc/howto/curses.rst:83 +msgid "Starting and ending a curses application" +msgstr "Lancement et arrêt une application *curses*" + +#: ../Doc/howto/curses.rst:85 +msgid "" +"Before doing anything, curses must be initialized. This is done by calling " +"the :func:`~curses.initscr` function, which will determine the terminal " +"type, send any required setup codes to the terminal, and create various " +"internal data structures. If successful, :func:`initscr` returns a window " +"object representing the entire screen; this is usually called ``stdscr`` " +"after the name of the corresponding C variable. ::" +msgstr "" +"Avant de faire quoi que ce soit, *curses* doit être initialisé. Appelez pour " +"cela la fonction :func:`~curses.initscr`, elle détermine le type de " +"terminal, envoie tous les codes de configuration requis au terminal et crée " +"diverses structures de données internes. En cas de succès, :func:`initscr` " +"renvoie un objet fenêtre représentant l'écran entier ; il est généralement " +"appelé ``stdscr`` d'après le nom de la variable C correspondante. ::" + +#: ../Doc/howto/curses.rst:96 +msgid "" +"Usually curses applications turn off automatic echoing of keys to the " +"screen, in order to be able to read keys and only display them under certain " +"circumstances. This requires calling the :func:`~curses.noecho` function. ::" +msgstr "" +"Habituellement, les applications *curses* désactivent l'écho automatique des " +"touches à l'écran, afin de pouvoir lire les touches et ne les afficher que " +"dans certaines circonstances. Cela nécessite d'appeler la fonction :func:" +"`~curses.noecho`. ::" + +#: ../Doc/howto/curses.rst:103 +msgid "" +"Applications will also commonly need to react to keys instantly, without " +"requiring the Enter key to be pressed; this is called cbreak mode, as " +"opposed to the usual buffered input mode. ::" +msgstr "" +"Également, les applications réagissent généralement instantanément aux " +"touches sans qu'il soit nécessaire d'appuyer sur la touche Entrée ; c'est ce " +"qu'on appelle le mode *cbreak*, par opposition au mode d'entrée habituel " +"avec un tampon. ::" + +#: ../Doc/howto/curses.rst:109 +msgid "" +"Terminals usually return special keys, such as the cursor keys or navigation " +"keys such as Page Up and Home, as a multibyte escape sequence. While you " +"could write your application to expect such sequences and process them " +"accordingly, curses can do it for you, returning a special value such as :" +"const:`curses.KEY_LEFT`. To get curses to do the job, you'll have to enable " +"keypad mode. ::" +msgstr "" +"Les terminaux renvoient généralement les touches spéciales, telles que les " +"touches de curseur ou les touches de navigation (Page précédente et Accueil " +"par exemple), comme une séquence d'échappement sur plusieurs octets. Bien " +"que vous puissiez écrire votre application pour vous attendre à de telles " +"séquences et les traiter en conséquence, *curses* peut le faire pour vous, " +"renvoyant une valeur spéciale telle que :const:`curses.KEY_LEFT`. Pour que " +"*curses* fasse le travail, vous devez activer le mode *keypad*. ::" + +#: ../Doc/howto/curses.rst:118 +msgid "" +"Terminating a curses application is much easier than starting one. You'll " +"need to call::" +msgstr "" +"Arrêter une application *curses* est beaucoup plus facile que d'en démarrer " +"une. Appelez ::" + +#: ../Doc/howto/curses.rst:125 +msgid "" +"to reverse the curses-friendly terminal settings. Then call the :func:" +"`~curses.endwin` function to restore the terminal to its original operating " +"mode. ::" +msgstr "" +"pour inverser les réglages du terminal mis en place pour *curses*. Ensuite, " +"appelez la fonction :func:`~curses.enddwin` pour restaurer le terminal dans " +"son mode de fonctionnement original. ::" + +#: ../Doc/howto/curses.rst:131 +msgid "" +"A common problem when debugging a curses application is to get your terminal " +"messed up when the application dies without restoring the terminal to its " +"previous state. In Python this commonly happens when your code is buggy and " +"raises an uncaught exception. Keys are no longer echoed to the screen when " +"you type them, for example, which makes using the shell difficult." +msgstr "" +"Un problème courant lors du débogage d'une application *curses* est de se " +"retrouver avec un terminal sans queue ni tête lorsque l'application meurt " +"sans restaurer le terminal à son état précédent. Avec Python, cela arrive " +"souvent lorsque votre code est bogué et lève une exception non interceptée. " +"Les touches ne sont plus répétées à l'écran lorsque vous les tapez, par " +"exemple, ce qui rend l'utilisation de l'interface de commande du *shell* " +"difficile." + +#: ../Doc/howto/curses.rst:137 +msgid "" +"In Python you can avoid these complications and make debugging much easier " +"by importing the :func:`curses.wrapper` function and using it like this::" +msgstr "" +"En Python, vous pouvez éviter ces complications et faciliter le débogage en " +"important la fonction :func:`curses.wrapper` et en l'utilisant comme suit ::" + +#: ../Doc/howto/curses.rst:156 +msgid "" +"The :func:`~curses.wrapper` function takes a callable object and does the " +"initializations described above, also initializing colors if color support " +"is present. :func:`wrapper` then runs your provided callable. Once the " +"callable returns, :func:`wrapper` will restore the original state of the " +"terminal. The callable is called inside a :keyword:`try`...\\ :keyword:" +"`except` that catches exceptions, restores the state of the terminal, and " +"then re-raises the exception. Therefore your terminal won't be left in a " +"funny state on exception and you'll be able to read the exception's message " +"and traceback." +msgstr "" +"La fonction :func:`~curses.wrapper` prend un objet appelable et fait les " +"initialisations décrites ci-dessus, initialisant également les couleurs si " +"la gestion des couleurs est possible. :func:`wrapper` lance l'appelable " +"fourni. Une fois que l'appelable termine, :func:`wrapper` restaure l'état " +"d'origine du terminal. L'appelable est appelé à l'intérieur d'un :keyword:" +"`try`...\\ :keyword:`except` qui capture les exceptions, restaure l'état du " +"terminal, puis relève l'exception. Par conséquent, votre terminal ne reste " +"pas dans un drôle d'état au moment de l'exception et vous pourrez lire le " +"message de l'exception et la trace de la pile d'appels." + +#: ../Doc/howto/curses.rst:168 +msgid "Windows and Pads" +msgstr "Fenêtres et tampons (*pads* en anglais)" + +#: ../Doc/howto/curses.rst:170 +msgid "" +"Windows are the basic abstraction in curses. A window object represents a " +"rectangular area of the screen, and supports methods to display text, erase " +"it, allow the user to input strings, and so forth." +msgstr "" +"Les fenêtres sont l'abstraction de base de *curses*. Un objet fenêtre " +"représente une zone rectangulaire de l'écran qui gère des méthodes pour " +"afficher du texte, l'effacer, permettre à l'utilisateur de saisir des " +"chaînes, etc." + +#: ../Doc/howto/curses.rst:174 +msgid "" +"The ``stdscr`` object returned by the :func:`~curses.initscr` function is a " +"window object that covers the entire screen. Many programs may need only " +"this single window, but you might wish to divide the screen into smaller " +"windows, in order to redraw or clear them separately. The :func:`~curses." +"newwin` function creates a new window of a given size, returning the new " +"window object. ::" +msgstr "" +"L'objet ``stdscr`` renvoyé par la fonction :func:`~curses.initscr` est un " +"objet fenêtre qui couvre l'écran entier. De nombreux programmes peuvent " +"n'avoir besoin que de cette fenêtre unique, mais vous pouvez diviser l'écran " +"en fenêtres plus petites, afin de les redessiner ou de les effacer " +"séparément. La fonction :func:`~curses.newwin` crée une nouvelle fenêtre " +"d'une taille donnée, renvoyant le nouvel objet fenêtre. ::" + +#: ../Doc/howto/curses.rst:185 +msgid "" +"Note that the coordinate system used in curses is unusual. Coordinates are " +"always passed in the order *y,x*, and the top-left corner of a window is " +"coordinate (0,0). This breaks the normal convention for handling " +"coordinates where the *x* coordinate comes first. This is an unfortunate " +"difference from most other computer applications, but it's been part of " +"curses since it was first written, and it's too late to change things now." +msgstr "" +"Notez que le système de coordonnées utilisé dans *curses* est inhabituel. " +"Les coordonnées sont toujours passées dans l'ordre *y,x* et le coin " +"supérieur gauche d'une fenêtre a pour coordonnées (0,0). Ceci rompt la " +"convention normale des coordonnées où la coordonnée *x* vient en premier. " +"C'est une différence malheureuse par rapport à la plupart des autres " +"applications informatiques, mais elle fait partie de *curses* depuis qu'il a " +"été écrit et il est trop tard pour changer les choses maintenant." + +#: ../Doc/howto/curses.rst:193 +msgid "" +"Your application can determine the size of the screen by using the :data:" +"`curses.LINES` and :data:`curses.COLS` variables to obtain the *y* and *x* " +"sizes. Legal coordinates will then extend from ``(0,0)`` to ``(curses.LINES " +"- 1, curses.COLS - 1)``." +msgstr "" +"Votre application peut déterminer la taille de l'écran en utilisant les " +"variables :data:`curses.LINES` et :data:`curses.COLS` pour obtenir les " +"tailles *y* et *x*. Les coordonnées licites s'étendent alors de ``(0,0)`` à " +"``(curses.LINES - 1, curses.COLS - 1)``." + +#: ../Doc/howto/curses.rst:198 +msgid "" +"When you call a method to display or erase text, the effect doesn't " +"immediately show up on the display. Instead you must call the :meth:" +"`~curses.window.refresh` method of window objects to update the screen." +msgstr "" +"Quand vous appelez une méthode pour afficher ou effacer du texte, " +"l'affichage ne le reflète pas immédiatement. Vous devez appeler la méthode :" +"meth:`~curses.window.refresh` des objets fenêtre pour mettre à jour l'écran." + +#: ../Doc/howto/curses.rst:203 +msgid "" +"This is because curses was originally written with slow 300-baud terminal " +"connections in mind; with these terminals, minimizing the time required to " +"redraw the screen was very important. Instead curses accumulates changes to " +"the screen and displays them in the most efficient manner when you call :" +"meth:`refresh`. For example, if your program displays some text in a window " +"and then clears the window, there's no need to send the original text " +"because they're never visible." +msgstr "" +"C'est parce que *curses* a été écrit du temps des terminaux avec une " +"connexion à 300 bauds seulement ; avec ces terminaux, il était important de " +"minimiser le temps passé à redessiner l'écran. *curses* calcule donc les " +"modifications à apporter à l'écran pour les afficher de la manière la plus " +"efficace au moment où la méthode :meth:`refresh` est appelée. Par exemple, " +"si votre programme affiche du texte dans une fenêtre puis efface cette " +"fenêtre, il n'est pas nécessaire de l'afficher puisqu'il ne sera jamais " +"visible." + +#: ../Doc/howto/curses.rst:212 +msgid "" +"In practice, explicitly telling curses to redraw a window doesn't really " +"complicate programming with curses much. Most programs go into a flurry of " +"activity, and then pause waiting for a keypress or some other action on the " +"part of the user. All you have to do is to be sure that the screen has been " +"redrawn before pausing to wait for user input, by first calling ``stdscr." +"refresh()`` or the :meth:`refresh` method of some other relevant window." +msgstr "" +"Pratiquement, le fait de devoir indiquer explicitement à *curses* de " +"redessiner une fenêtre ne rend pas la programmation plus compliquée. La " +"plupart des programmes effectuent une rafale de traitements puis attendent " +"qu'une touche soit pressée ou toute autre action de la part de " +"l'utilisateur. Tout ce que vous avez à faire consiste à vous assurer que " +"l'écran a bien été redessiné avant d'attendre une entrée utilisateur, en " +"appelant d'abord ``stdscr.refresh()`` ou la méthode :meth:`refresh` de la " +"fenêtre adéquate." + +#: ../Doc/howto/curses.rst:220 +msgid "" +"A pad is a special case of a window; it can be larger than the actual " +"display screen, and only a portion of the pad displayed at a time. Creating " +"a pad requires the pad's height and width, while refreshing a pad requires " +"giving the coordinates of the on-screen area where a subsection of the pad " +"will be displayed. ::" +msgstr "" +"Un tampon (*pad* en anglais) est une forme spéciale de fenêtre ; il peut " +"être plus grand que l'écran effectif et il est possible de n'afficher qu'une " +"partie du tampon à la fois. La création d'un tampon nécessite de fournir sa " +"hauteur et sa largeur, tandis que pour le rafraîchissement du tampon, vous " +"devez fournir les coordonnées de la zone de l'écran où une partie du tampon " +"sera affichée." + +#: ../Doc/howto/curses.rst:241 +msgid "" +"The :meth:`refresh` call displays a section of the pad in the rectangle " +"extending from coordinate (5,5) to coordinate (20,75) on the screen; the " +"upper left corner of the displayed section is coordinate (0,0) on the pad. " +"Beyond that difference, pads are exactly like ordinary windows and support " +"the same methods." +msgstr "" +"L'appel à :meth:`refresh` affiche une partie du tampon dans le rectangle " +"formé par les coins de coordonnées (5,5) et (20,75) de l'écran ; le coin " +"supérieur gauche de la partie affichée a pour coordonnées (0,0) dans le " +"tampon. À part cette différence, les tampons sont exactement comme les " +"fenêtres ordinaires et gèrent les mêmes méthodes." + +#: ../Doc/howto/curses.rst:247 +msgid "" +"If you have multiple windows and pads on screen there is a more efficient " +"way to update the screen and prevent annoying screen flicker as each part of " +"the screen gets updated. :meth:`refresh` actually does two things:" +msgstr "" +"Si vous avez plusieurs fenêtres et tampons sur l'écran, il existe un moyen " +"plus efficace pour rafraîchir l'écran et éviter des scintillements agaçants " +"à chaque mise à jour. :meth:`refresh` effectue en fait deux choses :" + +#: ../Doc/howto/curses.rst:252 +msgid "" +"Calls the :meth:`~curses.window.noutrefresh` method of each window to update " +"an underlying data structure representing the desired state of the screen." +msgstr "" +"elle appelle la méthode :meth:`~curses.window.noutrefresh` de chaque fenêtre " +"pour mettre à jour les données sous-jacentes qui permettent d'obtenir " +"l'affichage voulu ;" + +#: ../Doc/howto/curses.rst:255 +msgid "" +"Calls the function :func:`~curses.doupdate` function to change the physical " +"screen to match the desired state recorded in the data structure." +msgstr "" +"elle appelle la fonction :func:`~curses.doupdate` pour modifier l'écran " +"physique afin de correspondre à l'état défini par les données sous-jacentes." + +#: ../Doc/howto/curses.rst:258 +msgid "" +"Instead you can call :meth:`noutrefresh` on a number of windows to update " +"the data structure, and then call :func:`doupdate` to update the screen." +msgstr "" +"Vous pouvez ainsi appeler :meth:`noutrefresh` sur les fenêtres dont vous " +"voulez mettre à jour des données, puis :func:`doupdate` pour mettre à jour " +"l'écran." + +#: ../Doc/howto/curses.rst:264 +msgid "Displaying Text" +msgstr "Affichage de texte" + +#: ../Doc/howto/curses.rst:266 +msgid "" +"From a C programmer's point of view, curses may sometimes look like a twisty " +"maze of functions, all subtly different. For example, :c:func:`addstr` " +"displays a string at the current cursor location in the ``stdscr`` window, " +"while :c:func:`mvaddstr` moves to a given y,x coordinate first before " +"displaying the string. :c:func:`waddstr` is just like :c:func:`addstr`, but " +"allows specifying a window to use instead of using ``stdscr`` by default. :c:" +"func:`mvwaddstr` allows specifying both a window and a coordinate." +msgstr "" +"D'un point de vue de programmeur C, *curses* peut parfois ressembler à un " +"enchevêtrement de fonctions, chacune ayant sa subtilité. Par exemple, :c:" +"func:`addstr` affiche une chaîne à la position actuelle du curseur de la " +"fenêtre ``stdscr``, alors que :c:func:`mvaddstr` se déplace d'abord " +"jusqu'aux coordonnées (y,x) avant d'afficher la chaîne. :c:func:`waddstr` " +"est comme :c:func:`addstr`, mais permet de spécifier la fenêtre au lieu " +"d'utiliser ``stdscr`` par défaut. :c:func:`mvwaddstr` permet de spécifier à " +"la fois les coordonnées et la fenêtre." + +#: ../Doc/howto/curses.rst:275 +msgid "" +"Fortunately the Python interface hides all these details. ``stdscr`` is a " +"window object like any other, and methods such as :meth:`~curses.window." +"addstr` accept multiple argument forms. Usually there are four different " +"forms." +msgstr "" +"Heureusement, l'interface Python masque tous ces détails. ``stdscr`` est un " +"objet fenêtre comme les autres et les méthodes telles que :meth:`~curses." +"window.addstr` acceptent leurs arguments sous de multiples formes, " +"habituellement quatre." + +#: ../Doc/howto/curses.rst:281 +msgid "Form" +msgstr "Forme" + +#: ../Doc/howto/curses.rst:281 ../Doc/howto/curses.rst:350 +msgid "Description" +msgstr "Description" + +#: ../Doc/howto/curses.rst:283 +msgid "*str* or *ch*" +msgstr "*str* ou *ch*" + +#: ../Doc/howto/curses.rst:283 +msgid "Display the string *str* or character *ch* at the current position" +msgstr "Affiche la chaîne *str* ou le caractère *ch* à la position actuelle" + +#: ../Doc/howto/curses.rst:286 +msgid "*str* or *ch*, *attr*" +msgstr "*str* ou *ch*, *attr*" + +#: ../Doc/howto/curses.rst:286 +msgid "" +"Display the string *str* or character *ch*, using attribute *attr* at the " +"current position" +msgstr "" +"Affiche la chaîne *str* ou le caractère *ch*, en utilisant l'attribut *attr* " +"à la position actuelle" + +#: ../Doc/howto/curses.rst:290 +msgid "*y*, *x*, *str* or *ch*" +msgstr "*y*, *x*, *str* ou *ch*" + +#: ../Doc/howto/curses.rst:290 +msgid "Move to position *y,x* within the window, and display *str* or *ch*" +msgstr "" +"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou " +"le caractère *ch*" + +#: ../Doc/howto/curses.rst:293 +msgid "*y*, *x*, *str* or *ch*, *attr*" +msgstr "*y*, *x*, *str* ou *ch*, *attr*" + +#: ../Doc/howto/curses.rst:293 +msgid "" +"Move to position *y,x* within the window, and display *str* or *ch*, using " +"attribute *attr*" +msgstr "" +"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou " +"le caractère *ch* en utilisant l'attribut *attr*" + +#: ../Doc/howto/curses.rst:297 +msgid "" +"Attributes allow displaying text in highlighted forms such as boldface, " +"underline, reverse code, or in color. They'll be explained in more detail " +"in the next subsection." +msgstr "" +"Les attributs permettent de mettre en valeur du texte : gras, souligné, mode " +"vidéo inversé ou en couleur. Nous les voyons plus en détail dans la section " +"suivante." + +#: ../Doc/howto/curses.rst:302 +msgid "" +"The :meth:`~curses.window.addstr` method takes a Python string or bytestring " +"as the value to be displayed. The contents of bytestrings are sent to the " +"terminal as-is. Strings are encoded to bytes using the value of the " +"window's :attr:`encoding` attribute; this defaults to the default system " +"encoding as returned by :func:`locale.getpreferredencoding`." +msgstr "" +"La méthode :meth:`~curses.window.addstr` prend en argument une chaîne ou une " +"suite d'octets Python. Le contenu des chaînes d'octets est envoyé vers le " +"terminal tel quel. Les chaînes sont encodées en octets en utilisant la " +"valeur de l'attribut :attr:`encoding` de la fenêtre ; c'est par défaut " +"l'encodage du système tel que renvoyé par :func:`locale." +"getpreferredencoding`." + +#: ../Doc/howto/curses.rst:309 +msgid "" +"The :meth:`~curses.window.addch` methods take a character, which can be " +"either a string of length 1, a bytestring of length 1, or an integer." +msgstr "" +"Les méthodes :meth:`~curses.window.addch` prennent un caractère, soit sous " +"la forme d'une chaîne de longueur 1, d'une chaîne d'octets de longueur 1 ou " +"d'un entier." + +#: ../Doc/howto/curses.rst:312 +msgid "" +"Constants are provided for extension characters; these constants are " +"integers greater than 255. For example, :const:`ACS_PLMINUS` is a +/- " +"symbol, and :const:`ACS_ULCORNER` is the upper left corner of a box (handy " +"for drawing borders). You can also use the appropriate Unicode character." +msgstr "" +"Des constantes sont disponibles pour étendre les caractères ; ces constantes " +"sont des entiers supérieurs à 255. Par exemple, :const:`ACS_PLMINUS` " +"correspond au symbole +/- et :const:`ACS_ULCORNER` correspond au coin en " +"haut et à gauche d'une boîte (utile pour dessiner des encadrements). Vous " +"pouvez aussi utiliser les caractères Unicode adéquats." + +#: ../Doc/howto/curses.rst:318 +msgid "" +"Windows remember where the cursor was left after the last operation, so if " +"you leave out the *y,x* coordinates, the string or character will be " +"displayed wherever the last operation left off. You can also move the " +"cursor with the ``move(y,x)`` method. Because some terminals always display " +"a flashing cursor, you may want to ensure that the cursor is positioned in " +"some location where it won't be distracting; it can be confusing to have the " +"cursor blinking at some apparently random location." +msgstr "" +"Windows se souvient de l'endroit où le curseur était positionné lors de la " +"dernière opération, de manière à ce que si vous n'utilisez pas les " +"coordonnées *y,x*, l'affichage se produit au dernier endroit utilisé. Vous " +"pouvez aussi déplacer le curseur avec la méthode ``move(y,x)``. Comme " +"certains terminaux affichent un curseur clignotant, vous pouvez ainsi vous " +"assurer que celui-ci est positionné à un endroit où il ne distrait pas " +"l'utilisateur (il peut être déroutant d'avoir un curseur qui clignote à des " +"endroits apparemment aléatoires)." + +#: ../Doc/howto/curses.rst:326 +msgid "" +"If your application doesn't need a blinking cursor at all, you can call " +"``curs_set(False)`` to make it invisible. For compatibility with older " +"curses versions, there's a ``leaveok(bool)`` function that's a synonym for :" +"func:`~curses.curs_set`. When *bool* is true, the curses library will " +"attempt to suppress the flashing cursor, and you won't need to worry about " +"leaving it in odd locations." +msgstr "" +"Si votre application n'a pas besoin d'un curseur clignotant, vous pouvez " +"appeler ``curs_set(False)`` pour le rendre invisible. Par souci de " +"compatibilité avec les anciennes versions de *curses*, il existe la fonction " +"``leaveok(bool)`` qui est un synonyme de :func:`~curses.curs_set`. Quand " +"*bool* vaut ``True``, la bibliothèque *curses* essaie de supprimer le " +"curseur clignotant et vous n'avez plus besoin de vous soucier de le laisser " +"trainer à des endroits bizarres." + +#: ../Doc/howto/curses.rst:335 +msgid "Attributes and Color" +msgstr "Attributs et couleurs" + +#: ../Doc/howto/curses.rst:337 +msgid "" +"Characters can be displayed in different ways. Status lines in a text-based " +"application are commonly shown in reverse video, or a text viewer may need " +"to highlight certain words. curses supports this by allowing you to specify " +"an attribute for each cell on the screen." +msgstr "" +"Les caractères peuvent être affichés de différentes façons. Les lignes de " +"statut des applications en mode texte sont généralement affichées en mode " +"vidéo inversé ; vous pouvez avoir besoin de mettre en valeur certains mots. " +"À ces fins, *curses* vous permet de spécifier un attribut pour chaque " +"caractère à l'écran." + +#: ../Doc/howto/curses.rst:342 +msgid "" +"An attribute is an integer, each bit representing a different attribute. " +"You can try to display text with multiple attribute bits set, but curses " +"doesn't guarantee that all the possible combinations are available, or that " +"they're all visually distinct. That depends on the ability of the terminal " +"being used, so it's safest to stick to the most commonly available " +"attributes, listed here." +msgstr "" +"Un attribut est un entier dont chaque bit représente un attribut différent. " +"Vous pouvez essayer d'afficher du texte avec plusieurs attributs définis " +"simultanément mais *curses* ne garantit pas que toutes les combinaisons " +"soient prises en compte ou que le résultat soit visuellement différent. Cela " +"dépend de la capacité de chaque terminal utilisé, il est donc plus sage de " +"se cantonner aux attributs les plus communément utilisés, dont la liste est " +"fournie ci-dessous." + +#: ../Doc/howto/curses.rst:350 +msgid "Attribute" +msgstr "Attribut" + +#: ../Doc/howto/curses.rst:352 +msgid ":const:`A_BLINK`" +msgstr ":const:`A_BLINK`" + +#: ../Doc/howto/curses.rst:352 +msgid "Blinking text" +msgstr "Texte clignotant" + +#: ../Doc/howto/curses.rst:354 +msgid ":const:`A_BOLD`" +msgstr ":const:`A_BOLD`" + +#: ../Doc/howto/curses.rst:354 +msgid "Extra bright or bold text" +msgstr "Texte en surbrillance ou en gras" + +#: ../Doc/howto/curses.rst:356 +msgid ":const:`A_DIM`" +msgstr ":const:`A_DIM`" + +#: ../Doc/howto/curses.rst:356 +msgid "Half bright text" +msgstr "Texte en demi-ton" + +#: ../Doc/howto/curses.rst:358 +msgid ":const:`A_REVERSE`" +msgstr ":const:`A_REVERSE`" + +#: ../Doc/howto/curses.rst:358 +msgid "Reverse-video text" +msgstr "Texte en mode vidéo inversé" + +#: ../Doc/howto/curses.rst:360 +msgid ":const:`A_STANDOUT`" +msgstr ":const:`A_STANDOUT`" + +#: ../Doc/howto/curses.rst:360 +msgid "The best highlighting mode available" +msgstr "Le meilleur mode de mis en valeur pour le texte" + +#: ../Doc/howto/curses.rst:362 +msgid ":const:`A_UNDERLINE`" +msgstr ":const:`A_UNDERLINE`" + +#: ../Doc/howto/curses.rst:362 +msgid "Underlined text" +msgstr "Texte souligné" + +#: ../Doc/howto/curses.rst:365 +msgid "" +"So, to display a reverse-video status line on the top line of the screen, " +"you could code::" +msgstr "" +"Ainsi, pour mettre la ligne de statut située en haut de l'écran en mode " +"vidéo inversé, vous pouvez coder ::" + +#: ../Doc/howto/curses.rst:372 +msgid "" +"The curses library also supports color on those terminals that provide it. " +"The most common such terminal is probably the Linux console, followed by " +"color xterms." +msgstr "" +"La bibliothèque *curses* gère également les couleurs pour les terminaux " +"compatibles. Le plus répandu de ces terminaux est sûrement la console Linux, " +"suivie par *xterm* en couleurs." + +#: ../Doc/howto/curses.rst:376 +msgid "" +"To use color, you must call the :func:`~curses.start_color` function soon " +"after calling :func:`~curses.initscr`, to initialize the default color set " +"(the :func:`curses.wrapper` function does this automatically). Once that's " +"done, the :func:`~curses.has_colors` function returns TRUE if the terminal " +"in use can actually display color. (Note: curses uses the American spelling " +"'color', instead of the Canadian/British spelling 'colour'. If you're used " +"to the British spelling, you'll have to resign yourself to misspelling it " +"for the sake of these functions.)" +msgstr "" +"Pour utiliser les couleurs, vous devez d'abord appeler la fonction :func:" +"`~curses.start_color` juste après avoir appelé :func:`~curses.initscr` afin " +"d'initialiser (la fonction :func:`curses.wrapper` le fait automatiquement). " +"Ensuite, la fonction :func:`~curses.has_colors` renvoie ``True`` si le " +"terminal utilisé gère les couleurs (note : *curses* utilise l'orthographe " +"américaine *color* et non pas l'orthographe britannique ou canadienne " +"*colour* ; si vous êtes habitué à l'orthographe britannique, vous devrez " +"vous résigner à mal l'orthographier tant que vous utilisez *curses*)." + +#: ../Doc/howto/curses.rst:386 +msgid "" +"The curses library maintains a finite number of color pairs, containing a " +"foreground (or text) color and a background color. You can get the " +"attribute value corresponding to a color pair with the :func:`~curses." +"color_pair` function; this can be bitwise-OR'ed with other attributes such " +"as :const:`A_REVERSE`, but again, such combinations are not guaranteed to " +"work on all terminals." +msgstr "" +"La bibliothèque *curses* maintient un nombre restreint de paires de " +"couleurs, constituées d'une couleur de texte (*foreground*) et de fond " +"(*background*). Vous pouvez obtenir la valeur des attributs correspondant à " +"une paire de couleur avec la fonction :func:`~curses.color_pair` ; cette " +"valeur peut être combinée bit par bit (avec la fonction *OR*) avec les " +"autres attributs tels que :const:`A_REVERSE`,mais là encore, de telles " +"combinaisons risquent de ne pas fonctionner sur tous les terminaux." + +#: ../Doc/howto/curses.rst:393 +msgid "An example, which displays a line of text using color pair 1::" +msgstr "" +"Un exemple d'affichage d'une ligne de texte en utilisant la paire de couleur " +"1 ::" + +#: ../Doc/howto/curses.rst:398 +msgid "" +"As I said before, a color pair consists of a foreground and background " +"color. The ``init_pair(n, f, b)`` function changes the definition of color " +"pair *n*, to foreground color f and background color b. Color pair 0 is " +"hard-wired to white on black, and cannot be changed." +msgstr "" +"Comme indiqué auparavant, une paire de couleurs est constituée d'une couleur " +"de texte et d'une couleur de fond. La fonction ``init_pair(n, f, b)`` change " +"la définition de la paire de couleurs *n*, en définissant la couleur de " +"texte à *f* et la couleur de fond à *b*. La paire de couleurs 0 est codée en " +"dur à blanc sur noir et ne peut être modifiée." + +#: ../Doc/howto/curses.rst:403 +msgid "" +"Colors are numbered, and :func:`start_color` initializes 8 basic colors when " +"it activates color mode. They are: 0:black, 1:red, 2:green, 3:yellow, 4:" +"blue, 5:magenta, 6:cyan, and 7:white. The :mod:`curses` module defines " +"named constants for each of these colors: :const:`curses.COLOR_BLACK`, :" +"const:`curses.COLOR_RED`, and so forth." +msgstr "" +"Les couleurs sont numérotées et :func:`start_color` initialise 8 couleurs " +"basiques lors de l'activation du mode en couleurs. Ce sont : 0 pour noir " +"(*black*), 1 pour rouge (*red*), 2 pour vert (*green*), 3 pour jaune " +"(*yellow*), 4 pour bleu *(blue*), 5 pour magenta, 6 pour cyan et 7 pour " +"blanc (*white*). Le module :mod:`curses` définit des constantes nommées pour " +"chacune de ces couleurs : :const:`curses.COLOR_BLACK`, :const:`curses." +"COLOR_RED` et ainsi de suite." + +#: ../Doc/howto/curses.rst:409 +msgid "" +"Let's put all this together. To change color 1 to red text on a white " +"background, you would call::" +msgstr "" +"Testons tout ça. Pour changer la couleur 1 à rouge sur fond blanc, appelez ::" + +#: ../Doc/howto/curses.rst:414 +msgid "" +"When you change a color pair, any text already displayed using that color " +"pair will change to the new colors. You can also display new text in this " +"color with::" +msgstr "" +"Quand vous modifiez une paire de couleurs, tout le texte déjà affiché qui " +"utilise cette paire de couleur voit les nouvelles couleurs s'appliquer à " +"lui. Vous pouvez aussi afficher du nouveau texte dans cette couleur avec ::" + +#: ../Doc/howto/curses.rst:420 +msgid "" +"Very fancy terminals can change the definitions of the actual colors to a " +"given RGB value. This lets you change color 1, which is usually red, to " +"purple or blue or any other color you like. Unfortunately, the Linux " +"console doesn't support this, so I'm unable to try it out, and can't provide " +"any examples. You can check if your terminal can do this by calling :func:" +"`~curses.can_change_color`, which returns ``True`` if the capability is " +"there. If you're lucky enough to have such a talented terminal, consult " +"your system's man pages for more information." +msgstr "" +"Les terminaux « de luxe » peuvent définir les couleurs avec des valeurs " +"*RGB*. Cela vous permet de modifier la couleur 1, habituellement rouge, en " +"violet ou bleu voire toute autre couleur selon votre goût. Malheureusement, " +"la console Linux ne gère pas cette fonctionnalité, je suis donc bien " +"incapable de la tester et de vous en fournir un exemple. Vous pouvez " +"vérifier si votre terminal la prend en charge en appelant :func:`~curses." +"can_change_color`, qui renvoie ``True`` en cas de succès. Si vous avez la " +"chance d'avoir un terminal aussi perfectionné, consultez les pages du manuel " +"de votre système pour obtenir plus d'informations." + +#: ../Doc/howto/curses.rst:431 +msgid "User Input" +msgstr "Entrées de l'utilisateur" + +#: ../Doc/howto/curses.rst:433 +msgid "" +"The C curses library offers only very simple input mechanisms. Python's :mod:" +"`curses` module adds a basic text-input widget. (Other libraries such as " +"`Urwid `_ have more extensive collections " +"of widgets.)" +msgstr "" +"La bibliothèque C *curses* ne propose que quelques mécanismes très simples " +"pour les entrées. Le module :mod:`curses` y ajoute un *widget* basique " +"d'entrée de texte (d'autres bibliothèques telles que `Urwid `_ ont un ensemble de *widgets* plus conséquent)." + +#: ../Doc/howto/curses.rst:438 +msgid "There are two methods for getting input from a window:" +msgstr "Il y a deux méthodes pour obtenir des entrées dans une fenêtre :" + +#: ../Doc/howto/curses.rst:440 +msgid "" +":meth:`~curses.window.getch` refreshes the screen and then waits for the " +"user to hit a key, displaying the key if :func:`~curses.echo` has been " +"called earlier. You can optionally specify a coordinate to which the cursor " +"should be moved before pausing." +msgstr "" +":meth:`~curses.window.getch` rafraîchit l'écran et attend que l'utilisateur " +"appuie sur une touche, affichant cette touche si :func:`~curses.echo` a été " +"appelé auparavant. Vous pouvez en option spécifier des coordonnées où " +"positionner le curseur avant la mise en pause ;" + +#: ../Doc/howto/curses.rst:445 +msgid "" +":meth:`~curses.window.getkey` does the same thing but converts the integer " +"to a string. Individual characters are returned as 1-character strings, and " +"special keys such as function keys return longer strings containing a key " +"name such as ``KEY_UP`` or ``^G``." +msgstr "" +":meth:`~curses.window.getkey` effectue la même chose mais convertit l'entier " +"en chaîne. Les caractères individuels sont renvoyés en chaînes de longueur 1 " +"alors que les touches spéciales (telles que les touches de fonction) " +"renvoient des chaînes plus longues contenant le nom de la touche (tel que " +"``KEY_UP`` ou ``^G``)." + +#: ../Doc/howto/curses.rst:450 +msgid "" +"It's possible to not wait for the user using the :meth:`~curses.window." +"nodelay` window method. After ``nodelay(True)``, :meth:`getch` and :meth:" +"`getkey` for the window become non-blocking. To signal that no input is " +"ready, :meth:`getch` returns ``curses.ERR`` (a value of -1) and :meth:" +"`getkey` raises an exception. There's also a :func:`~curses.halfdelay` " +"function, which can be used to (in effect) set a timer on each :meth:" +"`getch`; if no input becomes available within a specified delay (measured in " +"tenths of a second), curses raises an exception." +msgstr "" +"Il est possible de ne pas attendre l'utilisateur en utilisant la méthode de " +"fenêtre :meth:`~curses.window.nodelay`. Après ``nodelay(True)``, les " +"méthodes de fenêtre :meth:`getch` et :meth:`getkey` deviennent non " +"bloquantes. Pour indiquer qu'aucune entrée n'a eu lieu, :meth:`getch` " +"renvoie ``curses.ERR`` (ayant pour valeur −1) et :meth:`getkey` lève une " +"exception. Il existe aussi la fonction :func:`~curses.halfdelay`, qui peut " +"être utilisée pour définir un délai maximal pour chaque :meth:`getch` ; si " +"aucune entrée n'est disponible dans le délai spécifié (mesuré en dixièmes de " +"seconde), *curses* lève une exception." + +#: ../Doc/howto/curses.rst:460 +msgid "" +"The :meth:`getch` method returns an integer; if it's between 0 and 255, it " +"represents the ASCII code of the key pressed. Values greater than 255 are " +"special keys such as Page Up, Home, or the cursor keys. You can compare the " +"value returned to constants such as :const:`curses.KEY_PPAGE`, :const:" +"`curses.KEY_HOME`, or :const:`curses.KEY_LEFT`. The main loop of your " +"program may look something like this::" +msgstr "" +"La méthode :meth:`getch` renvoie un entier ; s'il est entre 0 et 255, c'est " +"le code ASCII de la touche pressée. Les valeurs supérieures à 255 sont des " +"touches spéciales telles que Page Précédente, Accueil ou les touches du " +"curseur. Vous pouvez comparer la valeur renvoyée aux constantes :const:" +"`curses.KEY_PPAGE`, :const:`curses.KEY_HOME`, :const:`curses.KEY_LEFT`, etc. " +"La boucle principale de votre programme pourrait ressembler à quelque chose " +"comme ::" + +#: ../Doc/howto/curses.rst:476 +msgid "" +"The :mod:`curses.ascii` module supplies ASCII class membership functions " +"that take either integer or 1-character string arguments; these may be " +"useful in writing more readable tests for such loops. It also supplies " +"conversion functions that take either integer or 1-character-string " +"arguments and return the same type. For example, :func:`curses.ascii.ctrl` " +"returns the control character corresponding to its argument." +msgstr "" +"Le module :mod:`curses.ascii` fournit des fonctions pour déterminer si " +"l'entier ou la chaîne de longueur 1 passés en arguments font partie de la " +"classe ASCII ; elles peuvent s'avérer utile pour écrire du code plus lisible " +"dans ce genre de boucles. Il fournit également des fonctions de conversion " +"qui prennent un entier ou une chaîne de longueur 1 en entrée et renvoient le " +"type correspondant au nom de la fonction. Par exemple, :func:`curses.ascii." +"ctrl` renvoie le caractère de contrôle correspondant à son paramètre." + +#: ../Doc/howto/curses.rst:483 +msgid "" +"There's also a method to retrieve an entire string, :meth:`~curses.window." +"getstr`. It isn't used very often, because its functionality is quite " +"limited; the only editing keys available are the backspace key and the Enter " +"key, which terminates the string. It can optionally be limited to a fixed " +"number of characters. ::" +msgstr "" +"Il existe aussi une méthode pour récupérer une chaîne entière, :meth:" +"`~curses.window.getstr`. Elle n'est pas beaucoup utilisée car son utilité " +"est limitée : les seules touches d'édition disponibles sont le retour " +"arrière et la touche Entrée, qui termine la chaîne. Elle peut, en option, " +"être limitée à un nombre fixé de caractères. ::" + +#: ../Doc/howto/curses.rst:494 +msgid "" +"The :mod:`curses.textpad` module supplies a text box that supports an Emacs-" +"like set of keybindings. Various methods of the :class:`~curses.textpad." +"Textbox` class support editing with input validation and gathering the edit " +"results either with or without trailing spaces. Here's an example::" +msgstr "" +"Le module :mod:`curses.textpad` fournit un type de boîte texte qui gère des " +"touches de fonctions à la façon d'\\ *Emacs*. Plusieurs méthodes de la " +"classe :class:`~curses.textpad.Textbox` gèrent l'édition avec la validation " +"des entrées et le regroupement de l'entrée avec ou sans les espaces de début " +"et de fin. Par exemple ::" + +#: ../Doc/howto/curses.rst:518 +msgid "" +"See the library documentation on :mod:`curses.textpad` for more details." +msgstr "" +"Consultez la documentation de la bibliothèque pour plus de détails sur :mod:" +"`curses.textpad`." + +#: ../Doc/howto/curses.rst:522 +msgid "For More Information" +msgstr "Pour aller plus loin" + +#: ../Doc/howto/curses.rst:524 +msgid "" +"This HOWTO doesn't cover some advanced topics, such as reading the contents " +"of the screen or capturing mouse events from an xterm instance, but the " +"Python library page for the :mod:`curses` module is now reasonably " +"complete. You should browse it next." +msgstr "" +"Ce guide pratique ne couvre pas certains sujets avancés, tels que la lecture " +"du contenu de l'écran ou la capture des événements relatifs à la souris dans " +"une instance *xterm*, mais la page de la bibliothèque Python du module :mod:" +"`curses` est maintenant suffisamment complète. Nous vous encourageons à la " +"parcourir." + +#: ../Doc/howto/curses.rst:529 +msgid "" +"If you're in doubt about the detailed behavior of the curses functions, " +"consult the manual pages for your curses implementation, whether it's " +"ncurses or a proprietary Unix vendor's. The manual pages will document any " +"quirks, and provide complete lists of all the functions, attributes, and :" +"const:`ACS_\\*` characters available to you." +msgstr "" +"Si vous vous posez des questions sur le fonctionnement précis de fonctions " +"*curses*, consultez les pages de manuel de l'implémentation *curses* de " +"votre système, que ce soit *ncurses* ou une version propriétaire Unix. Les " +"pages de manuel documentent toutes les bizarreries et vous donneront les " +"listes complètes des fonctions, attributs et codes :const:`ACS_\\*` des " +"caractères disponibles." + +#: ../Doc/howto/curses.rst:536 +msgid "" +"Because the curses API is so large, some functions aren't supported in the " +"Python interface. Often this isn't because they're difficult to implement, " +"but because no one has needed them yet. Also, Python doesn't yet support " +"the menu library associated with ncurses. Patches adding support for these " +"would be welcome; see `the Python Developer's Guide `_ to learn more about submitting patches to Python." +msgstr "" +"Étant donné que l'API *curses* est si volumineuse, certaines fonctions ne " +"sont pas prises en charge dans l'interface Python. Souvent, ce n'est pas " +"parce qu'elles sont difficiles à implémenter, mais parce que personne n'en a " +"eu encore besoin. De plus, Python ne prend pas encore en charge la " +"bibliothèque de gestion des menus associée à *ncurses*. Les correctifs " +"ajoutant cette prise en charge seraient bienvenus ; reportez-vous au `guide " +"du développeur Python `_ pour apprendre " +"comment soumettre des améliorations à Python." + +#: ../Doc/howto/curses.rst:544 +msgid "" +"`Writing Programs with NCURSES `_: a lengthy tutorial for C programmers." +msgstr "" +"`Writing Programs with NCURSES `_ : un long tutoriel pour les programmeurs C (ressource en " +"anglais)." + +#: ../Doc/howto/curses.rst:546 +msgid "`The ncurses man page `_" +msgstr "`La page de manuel ncurses `_" + +#: ../Doc/howto/curses.rst:547 +msgid "" +"`The ncurses FAQ `_" +msgstr "" +"`La FAQ ncurses `_ " +"(ressource en anglais)" + +#: ../Doc/howto/curses.rst:548 +msgid "" +"`\"Use curses... don't swear\" `_: video of a PyCon 2013 talk on controlling terminals using " +"curses or Urwid." +msgstr "" +"`\"Use curses... don't swear\" `_ : vidéo d'une conférence lors de la PyCon 2013 sur la " +"gestion des terminaux à l'aide de *curses* et *Urwid* (vidéo en anglais)." + +#: ../Doc/howto/curses.rst:550 +msgid "" +"`\"Console Applications with Urwid\" `_: video of a PyCon CA 2012 talk " +"demonstrating some applications written using Urwid." +msgstr "" +"`\"Console Applications with Urwid\" `_ : vidéo d'une conférence lors de PyCon CA " +"2012 montrant quelques applications utilisant *Urwid*." diff --git a/howto/descriptor.po b/howto/descriptor.po new file mode 100644 index 000000000..2f4cf80ac --- /dev/null +++ b/howto/descriptor.po @@ -0,0 +1,634 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2019-09-16 11:04+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.1.1\n" + +#: ../Doc/howto/descriptor.rst:3 +msgid "Descriptor HowTo Guide" +msgstr "Guide pour l'utilisation des descripteurs" + +#: ../Doc/howto/descriptor.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/howto/descriptor.rst:5 +msgid "Raymond Hettinger" +msgstr "Raymond Hettinger" + +#: ../Doc/howto/descriptor.rst:0 +msgid "Contact" +msgstr "Contact" + +#: ../Doc/howto/descriptor.rst:6 +msgid "" +msgstr "" + +#: ../Doc/howto/descriptor.rst:8 +msgid "Contents" +msgstr "Sommaire" + +#: ../Doc/howto/descriptor.rst:11 +msgid "Abstract" +msgstr "Résumé" + +#: ../Doc/howto/descriptor.rst:13 +msgid "" +"Defines descriptors, summarizes the protocol, and shows how descriptors are " +"called. Examines a custom descriptor and several built-in Python " +"descriptors including functions, properties, static methods, and class " +"methods. Shows how each works by giving a pure Python equivalent and a " +"sample application." +msgstr "" +"Définit les descripteurs, résume le protocole et montre comment les " +"descripteurs sont appelés. Examine un descripteur personnalisé et plusieurs " +"descripteurs Python intégrés, y compris les fonctions, les propriétés, les " +"méthodes statiques et les méthodes de classe. Montre comment chacun " +"fonctionne en donnant un équivalent Python pur et un exemple d'application." + +#: ../Doc/howto/descriptor.rst:18 +msgid "" +"Learning about descriptors not only provides access to a larger toolset, it " +"creates a deeper understanding of how Python works and an appreciation for " +"the elegance of its design." +msgstr "" +"L'apprentissage des descripteurs permet non seulement d'accéder à un " +"ensemble d'outils plus vaste, mais aussi de mieux comprendre le " +"fonctionnement de Python et d'apprécier l'élégance de sa conception." + +#: ../Doc/howto/descriptor.rst:24 +msgid "Definition and Introduction" +msgstr "Définition et introduction" + +#: ../Doc/howto/descriptor.rst:26 +msgid "" +"In general, a descriptor is an object attribute with \"binding behavior\", " +"one whose attribute access has been overridden by methods in the descriptor " +"protocol. Those methods are :meth:`__get__`, :meth:`__set__`, and :meth:" +"`__delete__`. If any of those methods are defined for an object, it is said " +"to be a descriptor." +msgstr "" +"En général, un descripteur est un attribut objet avec un \"comportement " +"contraignant\", dont l'accès à l'attribut a été remplacé par des méthodes " +"dans le protocole du descripteur. Ces méthodes sont : :meth:`__get__`, :" +"meth:`__set__`, et :meth:`__delete__`. Si l'une de ces méthodes est définie " +"pour un objet, il s'agit d'un descripteur." + +#: ../Doc/howto/descriptor.rst:32 +msgid "" +"The default behavior for attribute access is to get, set, or delete the " +"attribute from an object's dictionary. For instance, ``a.x`` has a lookup " +"chain starting with ``a.__dict__['x']``, then ``type(a).__dict__['x']``, and " +"continuing through the base classes of ``type(a)`` excluding metaclasses. If " +"the looked-up value is an object defining one of the descriptor methods, " +"then Python may override the default behavior and invoke the descriptor " +"method instead. Where this occurs in the precedence chain depends on which " +"descriptor methods were defined." +msgstr "" +"Le comportement par défaut pour l'accès aux attributs consiste à obtenir, " +"définir ou supprimer l'attribut du dictionnaire d'un objet. Par exemple, " +"``a. x`` a une chaîne de recherche commençant par ``a. __dict__ ['x']``, " +"puis ``type (a). __dict__ ['x']``, et continuant à travers les classes de " +"base de ``type (a)`` À l'exclusion des sous-classes. Si la valeur recherchée " +"est un objet définissant l'une des méthodes de descripteur, Python peut " +"substituer le comportement par défaut et appeler à la place la méthode " +"Descriptor. Lorsque cela se produit dans la chaîne de précédence dépend de " +"quelles méthodes descripteur ont été définies." + +#: ../Doc/howto/descriptor.rst:41 +msgid "" +"Descriptors are a powerful, general purpose protocol. They are the " +"mechanism behind properties, methods, static methods, class methods, and :" +"func:`super()`. They are used throughout Python itself to implement the new " +"style classes introduced in version 2.2. Descriptors simplify the " +"underlying C-code and offer a flexible set of new tools for everyday Python " +"programs." +msgstr "" +"Les descripteurs sont un protocole puissant et à usage général. Ils sont le " +"mécanisme derrière les propriétés, les méthodes, les méthodes statiques, les " +"méthodes de classes et :func:`super()`. Ils sont utilisés dans tout Python " +"lui-même pour implémenter les nouvelles classes de style introduites dans la " +"version 2.2. Les descripteurs simplifient le code C sous-jacent et offrent " +"un ensemble flexible de nouveaux outils pour les programmes Python " +"quotidiens." + +#: ../Doc/howto/descriptor.rst:49 +msgid "Descriptor Protocol" +msgstr "Protocole descripteur" + +#: ../Doc/howto/descriptor.rst:51 +msgid "``descr.__get__(self, obj, type=None) -> value``" +msgstr "``descr.__get__(self, obj, type=None) -> value``" + +#: ../Doc/howto/descriptor.rst:53 +msgid "``descr.__set__(self, obj, value) -> None``" +msgstr "``descr.__set__(self, obj, value) -> None``" + +#: ../Doc/howto/descriptor.rst:55 +msgid "``descr.__delete__(self, obj) -> None``" +msgstr "``descr.__delete__(self, obj) -> None``" + +#: ../Doc/howto/descriptor.rst:57 +msgid "" +"That is all there is to it. Define any of these methods and an object is " +"considered a descriptor and can override default behavior upon being looked " +"up as an attribute." +msgstr "" +"C'est tout ce qu'il y a à faire. Définissez n'importe laquelle de ces " +"méthodes et un objet est considéré comme un descripteur et peut remplacer le " +"comportement par défaut lorsqu'il est recherché comme un attribut." + +#: ../Doc/howto/descriptor.rst:61 +msgid "" +"If an object defines both :meth:`__get__` and :meth:`__set__`, it is " +"considered a data descriptor. Descriptors that only define :meth:`__get__` " +"are called non-data descriptors (they are typically used for methods but " +"other uses are possible)." +msgstr "" +"Si un objet définit à la fois :meth:`__get__` et :meth:`__set__`, il est " +"considéré comme un descripteur de données. Les descripteurs qui ne " +"définissent que :meth:`__get__` sont appelés descripteurs *non-data* (ils " +"sont généralement utilisés pour des méthodes mais d'autres utilisations sont " +"possibles)." + +#: ../Doc/howto/descriptor.rst:66 +msgid "" +"Data and non-data descriptors differ in how overrides are calculated with " +"respect to entries in an instance's dictionary. If an instance's dictionary " +"has an entry with the same name as a data descriptor, the data descriptor " +"takes precedence. If an instance's dictionary has an entry with the same " +"name as a non-data descriptor, the dictionary entry takes precedence." +msgstr "" +"Les descripteurs de données et les descripteurs *non-data* diffèrent dans la " +"façon dont les dérogations sont calculées en ce qui concerne les entrées du " +"dictionnaire d'une instance. Si le dictionnaire d'une instance comporte une " +"entrée portant le même nom qu'un descripteur de données, le descripteur de " +"données est prioritaire. Si le dictionnaire d'une instance comporte une " +"entrée portant le même nom qu'un descripteur *non-data*, l'entrée du " +"dictionnaire a la priorité." + +#: ../Doc/howto/descriptor.rst:72 +msgid "" +"To make a read-only data descriptor, define both :meth:`__get__` and :meth:" +"`__set__` with the :meth:`__set__` raising an :exc:`AttributeError` when " +"called. Defining the :meth:`__set__` method with an exception raising " +"placeholder is enough to make it a data descriptor." +msgstr "" +"Pour faire un descripteur de données en lecture seule, définissez à la fois :" +"meth:`__get__` et :meth:`__set__` avec :meth:`__set__` levant une erreur :" +"exc:`AttributeError` quand il est appelé. Définir la méthode :meth:" +"`__set__set__` avec une exception élevant le caractère générique est " +"suffisant pour en faire un descripteur de données." + +#: ../Doc/howto/descriptor.rst:79 +msgid "Invoking Descriptors" +msgstr "Invocation des descripteurs" + +#: ../Doc/howto/descriptor.rst:81 +msgid "" +"A descriptor can be called directly by its method name. For example, ``d." +"__get__(obj)``." +msgstr "" +"Un descripteur peut être appelé directement par son nom de méthode. Par " +"exemple, ``d.__get__(obj)``." + +#: ../Doc/howto/descriptor.rst:84 +msgid "" +"Alternatively, it is more common for a descriptor to be invoked " +"automatically upon attribute access. For example, ``obj.d`` looks up ``d`` " +"in the dictionary of ``obj``. If ``d`` defines the method :meth:`__get__`, " +"then ``d.__get__(obj)`` is invoked according to the precedence rules listed " +"below." +msgstr "" +"Alternativement, il est plus courant qu'un descripteur soit invoqué " +"automatiquement lors de l'accès aux attributs. Par exemple, ``obj.d`` " +"recherche ``d`` dans le dictionnaire de ``obj.d``. Si ``d`` définit la " +"méthode :meth:`__get__`, alors ``d.__get__(obj)`` est invoqué selon les " +"règles de priorité énumérées ci-dessous." + +#: ../Doc/howto/descriptor.rst:89 +msgid "" +"The details of invocation depend on whether ``obj`` is an object or a class." +msgstr "" +"Les détails de l'invocation dépendent du fait que ``obj`` est un objet ou " +"une classe." + +#: ../Doc/howto/descriptor.rst:91 +msgid "" +"For objects, the machinery is in :meth:`object.__getattribute__` which " +"transforms ``b.x`` into ``type(b).__dict__['x'].__get__(b, type(b))``. The " +"implementation works through a precedence chain that gives data descriptors " +"priority over instance variables, instance variables priority over non-data " +"descriptors, and assigns lowest priority to :meth:`__getattr__` if provided. " +"The full C implementation can be found in :c:func:" +"`PyObject_GenericGetAttr()` in :source:`Objects/object.c`." +msgstr "" +"Pour les objets, la machinerie est en :meth:`object.__getattribute__` qui " +"transforme ``b.x`` en ``type(b).__dict__['x'].__get__(b, type(b)]``. " +"L'implémentation fonctionne à travers une chaîne de priorité qui donne la " +"priorité aux descripteurs de données sur les variables d'instance, la " +"priorité aux variables d'instance sur les descripteurs *non-data*, et " +"attribue la priorité la plus faible à :meth:`__getattr__` si fourni. " +"L'implémentation complète de C peut être trouvée dans :c:func:" +"`PyObject_GenericGetAttr()` dans :source:`Objects/object.c`." + +#: ../Doc/howto/descriptor.rst:99 +msgid "" +"For classes, the machinery is in :meth:`type.__getattribute__` which " +"transforms ``B.x`` into ``B.__dict__['x'].__get__(None, B)``. In pure " +"Python, it looks like::" +msgstr "" +"Pour les classes, la machinerie est dans :meth:`type.__getattribute__` qui " +"transforme ``B.x`` en ``B.__dict__['x'].__get__(None, B)``. En Python pur, " +"il ressemble à ::" + +#: ../Doc/howto/descriptor.rst:110 +msgid "The important points to remember are:" +msgstr "Les points importants à retenir sont :" + +#: ../Doc/howto/descriptor.rst:112 +msgid "descriptors are invoked by the :meth:`__getattribute__` method" +msgstr "les descripteurs sont appelés par la méthode :meth:`__getattribute__`" + +#: ../Doc/howto/descriptor.rst:113 +msgid "overriding :meth:`__getattribute__` prevents automatic descriptor calls" +msgstr "" +"redéfinition :meth:`__getattribute____` empêche les appels automatiques de " +"descripteurs" + +#: ../Doc/howto/descriptor.rst:114 +msgid "" +":meth:`object.__getattribute__` and :meth:`type.__getattribute__` make " +"different calls to :meth:`__get__`." +msgstr "" +":meth:`objet.__getattribute__` et :meth:`type.__getattribute__` font " +"différents appels à :meth:`__get__`." + +#: ../Doc/howto/descriptor.rst:116 +msgid "data descriptors always override instance dictionaries." +msgstr "" +"les descripteurs de données remplacent toujours les dictionnaires " +"d'instances." + +#: ../Doc/howto/descriptor.rst:117 +msgid "non-data descriptors may be overridden by instance dictionaries." +msgstr "" +"les descripteurs *non-data* peuvent être remplacés par des dictionnaires " +"d'instance." + +#: ../Doc/howto/descriptor.rst:119 +msgid "" +"The object returned by ``super()`` also has a custom :meth:" +"`__getattribute__` method for invoking descriptors. The call ``super(B, " +"obj).m()`` searches ``obj.__class__.__mro__`` for the base class ``A`` " +"immediately following ``B`` and then returns ``A.__dict__['m'].__get__(obj, " +"B)``. If not a descriptor, ``m`` is returned unchanged. If not in the " +"dictionary, ``m`` reverts to a search using :meth:`object.__getattribute__`." +msgstr "" +"L'objet retourné par ``super()`` a aussi une méthode personnalisée :meth:" +"`__getattribute__` pour appeler les descripteurs. L'appel ``super(B, obj)." +"m()`` recherche ``obj.__class__.__mro__`` pour la classe de base ``A`` " +"immédiatement après ``B`` et renvoie ensuite ``A.__dict__['m'].__get__(obj, " +"B)``. Si ce n'est pas un descripteur, ``m`` est retourné inchangé. Si ce " +"n'est pas dans le dictionnaire, ``m`` renvoie à une recherche avec :meth:" +"`object.__getattribute__`." + +#: ../Doc/howto/descriptor.rst:126 +msgid "" +"The implementation details are in :c:func:`super_getattro()` in :source:" +"`Objects/typeobject.c`. and a pure Python equivalent can be found in " +"`Guido's Tutorial`_." +msgstr "" +"Les détails d'implémentation sont dans :c:func:`super_getattro()` dans :" +"source:`Objects/typeobject.c` et un équivalent Python pur peut être trouvé " +"dans `Guido's Tutorial`_." + +#: ../Doc/howto/descriptor.rst:132 +msgid "" +"The details above show that the mechanism for descriptors is embedded in " +"the :meth:`__getattribute__()` methods for :class:`object`, :class:`type`, " +"and :func:`super`. Classes inherit this machinery when they derive from :" +"class:`object` or if they have a meta-class providing similar functionality. " +"Likewise, classes can turn-off descriptor invocation by overriding :meth:" +"`__getattribute__()`." +msgstr "" +"Les détails ci-dessus montrent que le mécanisme des descripteurs est intégré " +"dans les méthodes :meth:`__getattribute__()` pour :class:`object`, :class:" +"`type` et :func:`super`. Les classes héritent de cette machinerie " +"lorsqu'elles dérivent de :class:`object` ou si elles ont une méta-classe " +"fournissant des fonctionnalités similaires. De même, les classes peuvent " +"désactiver l'appel de descripteurs en remplaçant :meth:`__getattribute__()`." + +#: ../Doc/howto/descriptor.rst:141 +msgid "Descriptor Example" +msgstr "Exemple de descripteur" + +#: ../Doc/howto/descriptor.rst:143 +msgid "" +"The following code creates a class whose objects are data descriptors which " +"print a message for each get or set. Overriding :meth:`__getattribute__` is " +"alternate approach that could do this for every attribute. However, this " +"descriptor is useful for monitoring just a few chosen attributes::" +msgstr "" +"Le code suivant crée une classe dont les objets sont des descripteurs de " +"données qui affichent un message pour chaque lecture ou écriture. " +"Redéfinir :meth:`__getattribute__` est une approche alternative qui pourrait " +"le faire pour chaque attribut. Cependant, ce descripteur n'est utile que " +"pour le suivi de quelques attributs choisis ::" + +#: ../Doc/howto/descriptor.rst:181 +msgid "" +"The protocol is simple and offers exciting possibilities. Several use cases " +"are so common that they have been packaged into individual function calls. " +"Properties, bound methods, static methods, and class methods are all based " +"on the descriptor protocol." +msgstr "" +"Le protocole est simple et offre des possibilités passionnantes. Plusieurs " +"cas d'utilisation sont si courants qu'ils ont été regroupés en appels de " +"fonction individuels. Les propriétés, les méthodes liées, les méthodes " +"statiques et les méthodes de classe sont toutes basées sur le protocole du " +"descripteur." + +#: ../Doc/howto/descriptor.rst:188 +msgid "Properties" +msgstr "Propriétés" + +#: ../Doc/howto/descriptor.rst:190 +msgid "" +"Calling :func:`property` is a succinct way of building a data descriptor " +"that triggers function calls upon access to an attribute. Its signature is::" +msgstr "" +"Appeler :func:`property` est une façon succincte de construire un " +"descripteur de données qui déclenche des appels de fonction lors de l'accès " +"à un attribut. Sa signature est ::" + +#: ../Doc/howto/descriptor.rst:195 +msgid "" +"The documentation shows a typical use to define a managed attribute ``x``::" +msgstr "" +"La documentation montre une utilisation typique pour définir un attribut " +"géré ``x`` ::" + +#: ../Doc/howto/descriptor.rst:203 +msgid "" +"To see how :func:`property` is implemented in terms of the descriptor " +"protocol, here is a pure Python equivalent::" +msgstr "" +"Pour voir comment :func:`property` est implémenté dans le protocole du " +"descripteur, voici un un équivalent Python pur ::" + +#: ../Doc/howto/descriptor.rst:243 +msgid "" +"The :func:`property` builtin helps whenever a user interface has granted " +"attribute access and then subsequent changes require the intervention of a " +"method." +msgstr "" +"La fonction native :func:`property` aide chaque fois qu'une interface " +"utilisateur a accordé l'accès à un attribut et que des modifications " +"ultérieures nécessitent l'intervention d'une méthode." + +#: ../Doc/howto/descriptor.rst:247 +msgid "" +"For instance, a spreadsheet class may grant access to a cell value through " +"``Cell('b10').value``. Subsequent improvements to the program require the " +"cell to be recalculated on every access; however, the programmer does not " +"want to affect existing client code accessing the attribute directly. The " +"solution is to wrap access to the value attribute in a property data " +"descriptor::" +msgstr "" +"Par exemple, une classe de tableur peut donner accès à une valeur de cellule " +"via ``Cell('b10').value``. Les améliorations ultérieures du programme " +"exigent que la cellule soit recalculée à chaque accès ; cependant, le " +"programmeur ne veut pas affecter le code client existant accédant " +"directement à l'attribut. La solution consiste à envelopper l'accès à " +"l'attribut de valeur dans un descripteur de données de propriété ::" + +#: ../Doc/howto/descriptor.rst:263 +msgid "Functions and Methods" +msgstr "Fonctions et méthodes" + +#: ../Doc/howto/descriptor.rst:265 +msgid "" +"Python's object oriented features are built upon a function based " +"environment. Using non-data descriptors, the two are merged seamlessly." +msgstr "" +"Les fonctionnalités orientées objet de Python sont construites sur un " +"environnement basé sur des fonctions. À l'aide de descripteurs *non-data*, " +"les deux sont fusionnés de façon transparente." + +#: ../Doc/howto/descriptor.rst:268 +msgid "" +"Class dictionaries store methods as functions. In a class definition, " +"methods are written using :keyword:`def` or :keyword:`lambda`, the usual " +"tools for creating functions. Methods only differ from regular functions in " +"that the first argument is reserved for the object instance. By Python " +"convention, the instance reference is called *self* but may be called *this* " +"or any other variable name." +msgstr "" +"Les dictionnaires de classes stockent les méthodes sous forme de fonctions. " +"Dans une définition de classe, les méthodes sont écrites en utilisant :" +"keyword:`def` ou :keyword:`lambda`, les outils habituels pour créer des " +"fonctions. Les méthodes ne diffèrent des fonctions régulières que par le " +"fait que le premier argument est réservé à l'instance de l'objet. Par " +"convention Python, la référence de l'instance est appelée *self* mais peut " +"être appelée *this* ou tout autre nom de variable." + +#: ../Doc/howto/descriptor.rst:275 +msgid "" +"To support method calls, functions include the :meth:`__get__` method for " +"binding methods during attribute access. This means that all functions are " +"non-data descriptors which return bound methods when they are invoked from " +"an object. In pure Python, it works like this::" +msgstr "" +"Pour prendre en charge les appels de méthodes, les fonctions incluent la " +"méthode :meth:`__get__` pour lier les méthodes pendant l'accès aux " +"attributs. Cela signifie que toutes les fonctions sont des descripteurs " +"*non-data* qui renvoient des méthodes liées lorsqu'elles sont appelées " +"depuis un objet. En Python pur, il fonctionne comme ceci ::" + +#: ../Doc/howto/descriptor.rst:288 +msgid "" +"Running the interpreter shows how the function descriptor works in practice::" +msgstr "" +"L'exécution de l'interpréteur montre comment le descripteur de fonction se " +"comporte dans la pratique ::" + +#: ../Doc/howto/descriptor.rst:326 +msgid "Static Methods and Class Methods" +msgstr "Méthodes statiques et méthodes de classe" + +#: ../Doc/howto/descriptor.rst:328 +msgid "" +"Non-data descriptors provide a simple mechanism for variations on the usual " +"patterns of binding functions into methods." +msgstr "" +"Les descripteurs *non-data* fournissent un mécanisme simple pour les " +"variations des patrons habituels des fonctions de liaison dans les méthodes." + +#: ../Doc/howto/descriptor.rst:331 +msgid "" +"To recap, functions have a :meth:`__get__` method so that they can be " +"converted to a method when accessed as attributes. The non-data descriptor " +"transforms an ``obj.f(*args)`` call into ``f(obj, *args)``. Calling ``klass." +"f(*args)`` becomes ``f(*args)``." +msgstr "" +"Pour résumer, les fonctions ont une méthode :meth:`__get__` pour qu'elles " +"puissent être converties en méthode lorsqu'on y accède comme attributs. Le " +"descripteur *non-data* transforme un appel ``obj.f(*args)``en ``f(obj, " +"*args)``. Appeler ``klass.f(*args)`` devient ``f(*args)``." + +#: ../Doc/howto/descriptor.rst:336 +msgid "This chart summarizes the binding and its two most useful variants:" +msgstr "" +"Ce tableau résume le lien (*binding*) et ses deux variantes les plus " +"utiles ::" + +#: ../Doc/howto/descriptor.rst:339 +msgid "Transformation" +msgstr "Transformation" + +#: ../Doc/howto/descriptor.rst:339 +msgid "Called from an Object" +msgstr "Appelé depuis un Objet" + +#: ../Doc/howto/descriptor.rst:339 +msgid "Called from a Class" +msgstr "Appelé depuis un Classe" + +#: ../Doc/howto/descriptor.rst:342 +msgid "function" +msgstr "fonction" + +#: ../Doc/howto/descriptor.rst:342 +msgid "f(obj, \\*args)" +msgstr "f(obj, \\*args)" + +#: ../Doc/howto/descriptor.rst:342 ../Doc/howto/descriptor.rst:344 +msgid "f(\\*args)" +msgstr "f(\\*args)" + +#: ../Doc/howto/descriptor.rst:344 +msgid "staticmethod" +msgstr "méthode statique" + +#: ../Doc/howto/descriptor.rst:346 +msgid "classmethod" +msgstr "méthode de classe" + +#: ../Doc/howto/descriptor.rst:346 +msgid "f(type(obj), \\*args)" +msgstr "f(type(obj), \\*args)" + +#: ../Doc/howto/descriptor.rst:346 +msgid "f(klass, \\*args)" +msgstr "f(klass, \\*args)" + +#: ../Doc/howto/descriptor.rst:349 +msgid "" +"Static methods return the underlying function without changes. Calling " +"either ``c.f`` or ``C.f`` is the equivalent of a direct lookup into ``object." +"__getattribute__(c, \"f\")`` or ``object.__getattribute__(C, \"f\")``. As a " +"result, the function becomes identically accessible from either an object or " +"a class." +msgstr "" +"Les méthodes statiques renvoient la fonction sous-jacente sans " +"modifications. Appeler ``c.f`` ou ``C.f`` est l'équivalent d'une recherche " +"directe dans ``objet.__getattribute__(c, \"f\")`` ou ``objet." +"__getattribute__(C, \"f\")``. Par conséquent, la fonction devient accessible " +"de manière identique à partir d'un objet ou d'une classe." + +#: ../Doc/howto/descriptor.rst:355 +msgid "" +"Good candidates for static methods are methods that do not reference the " +"``self`` variable." +msgstr "" +"Les bonnes candidates pour être méthode statique sont des méthodes qui ne " +"font pas référence à la variable ``self``." + +#: ../Doc/howto/descriptor.rst:358 +msgid "" +"For instance, a statistics package may include a container class for " +"experimental data. The class provides normal methods for computing the " +"average, mean, median, and other descriptive statistics that depend on the " +"data. However, there may be useful functions which are conceptually related " +"but do not depend on the data. For instance, ``erf(x)`` is handy conversion " +"routine that comes up in statistical work but does not directly depend on a " +"particular dataset. It can be called either from an object or the class: " +"``s.erf(1.5) --> .9332`` or ``Sample.erf(1.5) --> .9332``." +msgstr "" +"Par exemple, un paquet traitant de statistiques peut inclure une classe qui " +"est un conteneur pour des données expérimentales. La classe fournit les " +"méthodes normales pour calculer la moyenne, la moyenne, la médiane et " +"d'autres statistiques descriptives qui dépendent des données. Cependant, il " +"peut y avoir des fonctions utiles qui sont conceptuellement liées mais qui " +"ne dépendent pas des données. Par exemple, ``erf(x)`` est une routine de " +"conversion pratique qui apparaît dans le travail statistique mais qui ne " +"dépend pas directement d'un ensemble de données particulier. Elle peut être " +"appelée à partir d'un objet ou de la classe : ``s.erf(1.5) --> .9332``` ou " +"``Sample.erf(1.5) --> .9332``." + +#: ../Doc/howto/descriptor.rst:367 +msgid "" +"Since staticmethods return the underlying function with no changes, the " +"example calls are unexciting::" +msgstr "" +"Depuis que les méthodes statiques renvoient la fonction sous-jacente sans " +"changement, les exemples d’appels ne sont pas excitants ::" + +#: ../Doc/howto/descriptor.rst:380 +msgid "" +"Using the non-data descriptor protocol, a pure Python version of :func:" +"`staticmethod` would look like this::" +msgstr "" +"En utilisant le protocole de descripteur *non-data*, une version Python pure " +"de :func:`staticmethod` ressemblerait à ceci ::" + +#: ../Doc/howto/descriptor.rst:392 +msgid "" +"Unlike static methods, class methods prepend the class reference to the " +"argument list before calling the function. This format is the same for " +"whether the caller is an object or a class::" +msgstr "" +"Contrairement aux méthodes statiques, les méthodes de classe préchargent la " +"référence de classe dans la liste d'arguments avant d'appeler la fonction. " +"Ce format est le même que l'appelant soit un objet ou une classe ::" + +#: ../Doc/howto/descriptor.rst:407 +msgid "" +"This behavior is useful whenever the function only needs to have a class " +"reference and does not care about any underlying data. One use for " +"classmethods is to create alternate class constructors. In Python 2.3, the " +"classmethod :func:`dict.fromkeys` creates a new dictionary from a list of " +"keys. The pure Python equivalent is::" +msgstr "" +"Ce comportement est utile lorsque la fonction n'a besoin que d'une référence " +"de classe et ne se soucie pas des données sous-jacentes. Une des " +"utilisations des méthodes de classe est de créer d'autres constructeurs de " +"classe. En Python 2.3, la méthode de classe :func:`dict.fromkeys` crée un " +"nouveau dictionnaire à partir d'une liste de clés. L'équivalent Python pur " +"est ::" + +#: ../Doc/howto/descriptor.rst:423 +msgid "Now a new dictionary of unique keys can be constructed like this::" +msgstr "" +"Maintenant un nouveau dictionnaire de clés uniques peut être construit comme " +"ceci ::" + +#: ../Doc/howto/descriptor.rst:428 +msgid "" +"Using the non-data descriptor protocol, a pure Python version of :func:" +"`classmethod` would look like this::" +msgstr "" +"En utilisant le protocole de descripteur *non-data*, une version Python pure " +"de :func:`classmethod` ressemblerait à ceci ::" diff --git a/howto/functional.po b/howto/functional.po new file mode 100644 index 000000000..a1e3a4904 --- /dev/null +++ b/howto/functional.po @@ -0,0 +1,1996 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2018-02-15 00:38+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/howto/functional.rst:3 +msgid "Functional Programming HOWTO" +msgstr "Guide pratique : programmation fonctionnelle" + +#: ../Doc/howto/functional.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/howto/functional.rst:5 +msgid "A. M. Kuchling" +msgstr "A. M. Kuchling" + +#: ../Doc/howto/functional.rst:0 +msgid "Release" +msgstr "Version" + +#: ../Doc/howto/functional.rst:6 +msgid "0.32" +msgstr "0.32" + +#: ../Doc/howto/functional.rst:8 +msgid "" +"In this document, we'll take a tour of Python's features suitable for " +"implementing programs in a functional style. After an introduction to the " +"concepts of functional programming, we'll look at language features such as :" +"term:`iterator`\\s and :term:`generator`\\s and relevant library modules " +"such as :mod:`itertools` and :mod:`functools`." +msgstr "" +"Dans ce document, nous allons faire un tour des fonctionnalités de Python " +"adaptées à la réalisation d'un programme dans un style fonctionnel. Après " +"une introduction à la programmation fonctionnelle, nous aborderons des " +"outils tels que les :term:`iterator`\\s et les :term:`generator`\\s ainsi " +"que les modules :mod:`itertools` et :mod:`functools`." + +#: ../Doc/howto/functional.rst:16 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/howto/functional.rst:18 +msgid "" +"This section explains the basic concept of functional programming; if you're " +"just interested in learning about Python language features, skip to the next " +"section on :ref:`functional-howto-iterators`." +msgstr "" +"Cette section détaille les fondamentaux de la programmation fonctionnelle. " +"Si seules les fonctionnalités de Python vous intéressent, vous pouvez sauter " +"cette partie et lire la section suivante sur les :ref:`functional-howto-" +"iterators`." + +#: ../Doc/howto/functional.rst:22 +msgid "" +"Programming languages support decomposing problems in several different ways:" +msgstr "" +"Les langages de programmation permettent de traiter des problèmes selon " +"différentes approches :" + +#: ../Doc/howto/functional.rst:24 +msgid "" +"Most programming languages are **procedural**: programs are lists of " +"instructions that tell the computer what to do with the program's input. C, " +"Pascal, and even Unix shells are procedural languages." +msgstr "" +"La plupart des langages de programmation suivent une logique " +"**procédurale** : les programmes sont constitués de listes d'instructions " +"qui détaillent les opérations que l'ordinateur doit appliquer aux entrées du " +"programme. C, Pascal ou encore les interpréteurs de commandes Unix sont des " +"langages procéduraux." + +#: ../Doc/howto/functional.rst:28 +msgid "" +"In **declarative** languages, you write a specification that describes the " +"problem to be solved, and the language implementation figures out how to " +"perform the computation efficiently. SQL is the declarative language you're " +"most likely to be familiar with; a SQL query describes the data set you want " +"to retrieve, and the SQL engine decides whether to scan tables or use " +"indexes, which subclauses should be performed first, etc." +msgstr "" +"Les langages **déclaratifs** permettent d'écrire la spécification du " +"problème et laissent l'implémentation du langage trouver une façon efficace " +"de réaliser les calculs nécessaires à sa résolution. SQL est un langage " +"déclaratif que vous êtes susceptible de connaître ; une requête SQL décrit " +"le jeu de données que vous souhaitez récupérer et le moteur SQL choisit de " +"parcourir les tables ou d'utiliser les index, l'ordre de résolution des sous-" +"clauses, etc." + +#: ../Doc/howto/functional.rst:35 +msgid "" +"**Object-oriented** programs manipulate collections of objects. Objects " +"have internal state and support methods that query or modify this internal " +"state in some way. Smalltalk and Java are object-oriented languages. C++ " +"and Python are languages that support object-oriented programming, but don't " +"force the use of object-oriented features." +msgstr "" +"Les programmes **orientés objet** manipulent des ensembles d'objets. Ceux-ci " +"possèdent un état interne et des méthodes qui interrogent ou modifient cet " +"état d'une façon ou d'une autre. Smalltalk et Java sont deux langages " +"orientés objet. C++ et Python gèrent la programmation orientée objet mais " +"n'imposent pas l'utilisation de telles fonctionnalités." + +#: ../Doc/howto/functional.rst:41 +msgid "" +"**Functional** programming decomposes a problem into a set of functions. " +"Ideally, functions only take inputs and produce outputs, and don't have any " +"internal state that affects the output produced for a given input. Well-" +"known functional languages include the ML family (Standard ML, OCaml, and " +"other variants) and Haskell." +msgstr "" +"La programmation **fonctionnelle** implique de décomposer un problème en un " +"ensemble de fonctions. Dans l'idéal, les fonctions produisent des sorties à " +"partir d'entrées et ne possède pas d'état interne qui soit susceptible de " +"modifier la sortie pour une entrée donnée. Les langages fonctionnels les " +"plus connus sont ceux de la famille ML (Standard ML, OCaml et autres) et " +"Haskell." + +#: ../Doc/howto/functional.rst:47 +msgid "" +"The designers of some computer languages choose to emphasize one particular " +"approach to programming. This often makes it difficult to write programs " +"that use a different approach. Other languages are multi-paradigm languages " +"that support several different approaches. Lisp, C++, and Python are multi-" +"paradigm; you can write programs or libraries that are largely procedural, " +"object-oriented, or functional in all of these languages. In a large " +"program, different sections might be written using different approaches; the " +"GUI might be object-oriented while the processing logic is procedural or " +"functional, for example." +msgstr "" +"Les personnes qui conçoivent des langages de programmation peuvent choisir " +"de privilégier une approche par rapport à une autre. Cela complexifie " +"l'écriture de programmes appliquant un paradigme différent de celui " +"considéré. Certains langages sont multi-paradigmes et gère plusieurs " +"approches différentes. Lisp, C++ et Python sont de tels langages ; vous " +"pouvez écrire des programmes ou des bibliothèques dans un style procédural, " +"orienté objet ou fonctionnel dans chacun d'entre eux. Différentes parties " +"d'une application peuvent être écrites selon des approches différentes ; par " +"exemple, l'interface graphique peut suivre le paradigme orienté objet tandis " +"que la logique de traitement est procédurale ou fonctionnelle." + +#: ../Doc/howto/functional.rst:58 +msgid "" +"In a functional program, input flows through a set of functions. Each " +"function operates on its input and produces some output. Functional style " +"discourages functions with side effects that modify internal state or make " +"other changes that aren't visible in the function's return value. Functions " +"that have no side effects at all are called **purely functional**. Avoiding " +"side effects means not using data structures that get updated as a program " +"runs; every function's output must only depend on its input." +msgstr "" +"Dans un programme fonctionnel, l'entrée traverse un ensemble de fonctions. " +"Chaque fonction opère sur son entrée et produit une sortie. Le style " +"fonctionnel préconise de ne pas écrire de fonctions ayant des effets de " +"bord, c'est-à-dire qui modifient un état interne ou réalisent d'autres " +"changements qui ne sont pas visibles dans la valeur de sortie de la " +"fonction. Les fonctions qui ne présentent aucun effet de bord sont dites " +"**purement fonctionnelles**. L'interdiction des effets de bord signifie " +"qu'aucune structure de données n'est mise à jour lors de l'exécution du " +"programme ; chaque sortie d'une fonction ne dépend que de son entrée." + +#: ../Doc/howto/functional.rst:66 +msgid "" +"Some languages are very strict about purity and don't even have assignment " +"statements such as ``a=3`` or ``c = a + b``, but it's difficult to avoid all " +"side effects. Printing to the screen or writing to a disk file are side " +"effects, for example. For example, in Python a call to the :func:`print` " +"or :func:`time.sleep` function both return no useful value; they're only " +"called for their side effects of sending some text to the screen or pausing " +"execution for a second." +msgstr "" +"Certains langages sont très stricts en ce qui concerne la pureté des " +"fonctions et ne laissent même pas la possibilité d'assigner des variables " +"avec des expressions telles que ``a = 3`` ou ``c = a + b``, cependant il est " +"difficile d'éviter tous les effets de bord. Afficher un message sur l'écran " +"ou écrire un fichier sur le disque sont des effets de bord. Par exemple, un " +"appel aux fonctions :func:`print` ou :func:`time.sleep` en Python ne renvoie " +"aucune valeur utile ; ces fonctions ne sont appelées que pour leur effet de " +"bord (afficher du texte sur l'écran et mettre en pause l'exécution du " +"programme)." + +#: ../Doc/howto/functional.rst:74 +msgid "" +"Python programs written in functional style usually won't go to the extreme " +"of avoiding all I/O or all assignments; instead, they'll provide a " +"functional-appearing interface but will use non-functional features " +"internally. For example, the implementation of a function will still use " +"assignments to local variables, but won't modify global variables or have " +"other side effects." +msgstr "" +"Les programmes Python écrits dans un style fonctionnel ne poussent " +"généralement pas le curseur de la pureté à l'extrême en interdisant toute " +"entrée/sortie ou les assignations ; ils exhibent une interface fonctionnelle " +"en apparence mais utilisent des fonctionnalités impures en interne. Par " +"exemple, l'implémentation d'une fonction peut assigner dans des variables " +"locales mais ne modifiera pas de variable globale et n'aura pas d'autre " +"effet de bord." + +#: ../Doc/howto/functional.rst:80 +msgid "" +"Functional programming can be considered the opposite of object-oriented " +"programming. Objects are little capsules containing some internal state " +"along with a collection of method calls that let you modify this state, and " +"programs consist of making the right set of state changes. Functional " +"programming wants to avoid state changes as much as possible and works with " +"data flowing between functions. In Python you might combine the two " +"approaches by writing functions that take and return instances representing " +"objects in your application (e-mail messages, transactions, etc.)." +msgstr "" +"La programmation fonctionnelle peut être considérée comme l'opposé de la " +"programmation orientée objet. Les objets encapsulent un état interne ainsi " +"qu'une collection de méthodes qui permettent de modifier cet état. Les " +"programmes consistent à appliquer les bons changements à ces états. La " +"programmation fonctionnelle vous impose d'éviter au maximum ces changements " +"d'états en travaillant sur des données qui traversent un flux de fonctions. " +"En Python, vous pouvez combiner ces deux approches en écrivant des fonctions " +"qui prennent en argument et renvoient des instances représentants des objets " +"de votre application (courriers électroniques, transactions, etc.)." + +#: ../Doc/howto/functional.rst:89 +msgid "" +"Functional design may seem like an odd constraint to work under. Why should " +"you avoid objects and side effects? There are theoretical and practical " +"advantages to the functional style:" +msgstr "" +"Programmer sous la contrainte du paradigme fonctionnel peut sembler étrange. " +"Pourquoi vouloir éviter les objets et les effets de bord ? Il existe des " +"avantages théoriques et pratiques au style fonctionnel :" + +#: ../Doc/howto/functional.rst:93 +msgid "Formal provability." +msgstr "Preuves formelles." + +#: ../Doc/howto/functional.rst:94 +msgid "Modularity." +msgstr "Modularité." + +#: ../Doc/howto/functional.rst:95 +msgid "Composability." +msgstr "Composabilité." + +#: ../Doc/howto/functional.rst:96 +msgid "Ease of debugging and testing." +msgstr "Facilité de débogage et de test." + +#: ../Doc/howto/functional.rst:100 +msgid "Formal provability" +msgstr "Preuves formelles" + +#: ../Doc/howto/functional.rst:102 +msgid "" +"A theoretical benefit is that it's easier to construct a mathematical proof " +"that a functional program is correct." +msgstr "" +"Un avantage théorique est qu'il plus facile de construire une preuve " +"mathématique de l'exactitude d'un programme fonctionnel." + +#: ../Doc/howto/functional.rst:105 +msgid "" +"For a long time researchers have been interested in finding ways to " +"mathematically prove programs correct. This is different from testing a " +"program on numerous inputs and concluding that its output is usually " +"correct, or reading a program's source code and concluding that the code " +"looks right; the goal is instead a rigorous proof that a program produces " +"the right result for all possible inputs." +msgstr "" +"Les chercheurs ont longtemps souhaité trouver des façons de prouver " +"mathématiquement qu'un programme est correct. Cela ne se borne pas à tester " +"si la sortie d'un programme est correcte sur de nombreuses entrées ou lire " +"le code source et en conclure que le celui-ci semble juste. L'objectif est " +"d'établir une preuve rigoureuse que le programme produit le bon résultat " +"pour toutes les entrées possibles." + +#: ../Doc/howto/functional.rst:112 +msgid "" +"The technique used to prove programs correct is to write down " +"**invariants**, properties of the input data and of the program's variables " +"that are always true. For each line of code, you then show that if " +"invariants X and Y are true **before** the line is executed, the slightly " +"different invariants X' and Y' are true **after** the line is executed. " +"This continues until you reach the end of the program, at which point the " +"invariants should match the desired conditions on the program's output." +msgstr "" +"La technique utilisée pour prouver l'exactitude d'un programme est d'écrire " +"des **invariants**, c'est-à-dire des propriétés de l'entrée et des variables " +"du programme qui sont toujours vérifiées. Pour chaque ligne de code, il " +"suffit de montrer que si les invariants X et Y sont vrais **avant** " +"l'exécution de cette ligne, les invariants légèrement modifiés X' et Y' sont " +"vérifiés **après** son exécution. Ceci se répète jusqu'à atteindre la fin du " +"programme. À ce stade, les invariants doivent alors correspondre aux " +"propriétés que l'on souhaite que la sortie du programme vérifie." + +#: ../Doc/howto/functional.rst:120 +msgid "" +"Functional programming's avoidance of assignments arose because assignments " +"are difficult to handle with this technique; assignments can break " +"invariants that were true before the assignment without producing any new " +"invariants that can be propagated onward." +msgstr "" +"L'aversion du style fonctionnel envers les assignations de variable est " +"apparue car celles-ci sont difficiles à gérer avec cette méthode. Les " +"assignations peuvent rompre des invariants qui étaient vrais auparavant sans " +"pour autant produire de nouveaux invariants qui pourraient être propagés." + +#: ../Doc/howto/functional.rst:125 +msgid "" +"Unfortunately, proving programs correct is largely impractical and not " +"relevant to Python software. Even trivial programs require proofs that are " +"several pages long; the proof of correctness for a moderately complicated " +"program would be enormous, and few or none of the programs you use daily " +"(the Python interpreter, your XML parser, your web browser) could be proven " +"correct. Even if you wrote down or generated a proof, there would then be " +"the question of verifying the proof; maybe there's an error in it, and you " +"wrongly believe you've proved the program correct." +msgstr "" +"Malheureusement, prouver l'exactitude d'un programme est très peu commode et " +"ne concerne que rarement des logiciels en Python. Même des programmes " +"triviaux nécessitent souvent des preuves s'étalant sur plusieurs pages ; la " +"preuve de l'exactitude d'un programme relativement gros serait gigantesque. " +"Peu, voire aucun, des programmes que vous utilisez quotidiennement " +"(l'interpréteur Python, votre analyseur syntaxique XML, votre navigateur " +"web) ne peuvent être prouvés exacts. Même si vous écriviez ou généreriez une " +"preuve, il faudrait encore vérifier celle-ci. Peut-être qu'elle contient une " +"erreur et que vous pensez désormais, à tort, que vous avez prouvé que votre " +"programme est correct." + +#: ../Doc/howto/functional.rst:136 +msgid "Modularity" +msgstr "Modularité" + +#: ../Doc/howto/functional.rst:138 +msgid "" +"A more practical benefit of functional programming is that it forces you to " +"break apart your problem into small pieces. Programs are more modular as a " +"result. It's easier to specify and write a small function that does one " +"thing than a large function that performs a complicated transformation. " +"Small functions are also easier to read and to check for errors." +msgstr "" +"Un intérêt plus pratique de la programmation fonctionnelle est qu'elle " +"impose de décomposer le problème en petits morceaux. Les programmes qui en " +"résultent sont souvent plus modulaires. Il est plus simple de spécifier et " +"d'écrire une petite fonction qui ne fait qu'une seule tâche plutôt qu'une " +"grosse fonction qui réalise une transformation complexe. Les petites " +"fonctions sont plus faciles à lire et à vérifier." + +#: ../Doc/howto/functional.rst:146 +msgid "Ease of debugging and testing" +msgstr "Facilité de débogage et de test" + +#: ../Doc/howto/functional.rst:148 +msgid "Testing and debugging a functional-style program is easier." +msgstr "Tester et déboguer un programme fonctionnel est plus facile." + +#: ../Doc/howto/functional.rst:150 +msgid "" +"Debugging is simplified because functions are generally small and clearly " +"specified. When a program doesn't work, each function is an interface point " +"where you can check that the data are correct. You can look at the " +"intermediate inputs and outputs to quickly isolate the function that's " +"responsible for a bug." +msgstr "" +"Déboguer est plus simple car les fonctions sont généralement petites et bien " +"spécifiées. Lorsqu'un programme ne fonctionne pas, chaque fonction constitue " +"une étape intermédiaire au niveau de laquelle vous pouvez vérifier que les " +"valeurs sont justes. Vous pouvez observer les entrées intermédiaires et les " +"sorties afin d'isoler rapidement la fonction qui est à l'origine du bogue." + +#: ../Doc/howto/functional.rst:155 +msgid "" +"Testing is easier because each function is a potential subject for a unit " +"test. Functions don't depend on system state that needs to be replicated " +"before running a test; instead you only have to synthesize the right input " +"and then check that the output matches expectations." +msgstr "" +"Les tests sont plus faciles car chaque fonction est désormais un sujet " +"potentiel pour un test unitaire. Les fonctions ne dépendent pas d'un état " +"particulier du système qui devrait être répliqué avant d'exécuter un test ; " +"à la place vous n'avez qu'à produire une entrée synthétique et vérifier que " +"le résultat correspond à ce que vous attendez." + +#: ../Doc/howto/functional.rst:162 +msgid "Composability" +msgstr "Composabilité" + +#: ../Doc/howto/functional.rst:164 +msgid "" +"As you work on a functional-style program, you'll write a number of " +"functions with varying inputs and outputs. Some of these functions will be " +"unavoidably specialized to a particular application, but others will be " +"useful in a wide variety of programs. For example, a function that takes a " +"directory path and returns all the XML files in the directory, or a function " +"that takes a filename and returns its contents, can be applied to many " +"different situations." +msgstr "" +"En travaillant sur un programme dans le style fonctionnel, vous écrivez un " +"certain nombre de fonctions avec des entrées et des sorties variables. " +"Certaines de ces fonctions sont inévitablement spécifiques à une application " +"en particulier, mais d'autres peuvent s'appliquer à de nombreux cas d'usage. " +"Par exemple, une fonction qui liste l'ensemble des fichiers XML d'un " +"répertoire à partir du chemin de celui-ci ou une fonction qui renvoie le " +"contenu d'un fichier à partir de son nom peuvent être utiles dans de " +"nombreuses situations." + +#: ../Doc/howto/functional.rst:171 +msgid "" +"Over time you'll form a personal library of utilities. Often you'll " +"assemble new programs by arranging existing functions in a new configuration " +"and writing a few functions specialized for the current task." +msgstr "" +"Au fur et à mesure, vous constituez ainsi une bibliothèque personnelle " +"d'utilitaires. Souvent, vous pourrez construire de nouveaux programmes en " +"agençant des fonctions existantes dans une nouvelle configuration et en " +"écrivant quelques fonctions spécifiques à votre objectif en cours." + +#: ../Doc/howto/functional.rst:179 +msgid "Iterators" +msgstr "Itérateurs" + +#: ../Doc/howto/functional.rst:181 +msgid "" +"I'll start by looking at a Python language feature that's an important " +"foundation for writing functional-style programs: iterators." +msgstr "" +"Commençons par jeter un œil à une des fonctionnalités les plus importantes " +"pour écrire en style fonctionnel avec Python : les itérateurs." + +#: ../Doc/howto/functional.rst:184 +msgid "" +"An iterator is an object representing a stream of data; this object returns " +"the data one element at a time. A Python iterator must support a method " +"called :meth:`~iterator.__next__` that takes no arguments and always returns " +"the next element of the stream. If there are no more elements in the " +"stream, :meth:`~iterator.__next__` must raise the :exc:`StopIteration` " +"exception. Iterators don't have to be finite, though; it's perfectly " +"reasonable to write an iterator that produces an infinite stream of data." +msgstr "" +"Un itérateur est un objet qui représente un flux de données ; cet objet " +"renvoie les données un élément à la fois. Un itérateur Python doit posséder " +"une méthode :meth:`~iterator.__next__` qui ne prend pas d'argument et " +"renvoie toujours l'élément suivant du flux. S'il n'y plus d'élément dans le " +"flux, :meth:`~iterator.__next__` doit lever une exception :exc:" +"`StopIteration`. Toutefois, ce n'est pas indispensable ; il est envisageable " +"d'écrire un itérateur qui produit un flux infini de données." + +#: ../Doc/howto/functional.rst:192 +msgid "" +"The built-in :func:`iter` function takes an arbitrary object and tries to " +"return an iterator that will return the object's contents or elements, " +"raising :exc:`TypeError` if the object doesn't support iteration. Several " +"of Python's built-in data types support iteration, the most common being " +"lists and dictionaries. An object is called :term:`iterable` if you can get " +"an iterator for it." +msgstr "" +"La fonction native :func:`iter` prend un objet arbitraire et tente de " +"construire un itérateur qui renvoie le contenu de l'objet (ou ses éléments) " +"en levant une exception :exc:`TypeError` si l'objet ne gère pas l'itération. " +"Plusieurs types de données natifs à Python gèrent l'itération, notamment les " +"listes et les dictionnaires. On appelle :term:`iterable` un objet pour " +"lequel il est possible de construire un itérateur." + +#: ../Doc/howto/functional.rst:199 +msgid "You can experiment with the iteration interface manually:" +msgstr "Vous pouvez expérimenter avec l'interface d'itération manuellement :" + +#: ../Doc/howto/functional.rst:217 +msgid "" +"Python expects iterable objects in several different contexts, the most " +"important being the :keyword:`for` statement. In the statement ``for X in " +"Y``, Y must be an iterator or some object for which :func:`iter` can create " +"an iterator. These two statements are equivalent::" +msgstr "" +"Python s'attend à travailler sur des objets itérables dans divers contextes " +"et tout particulièrement dans une boucle :keyword:`for`. Dans l'expression " +"``for X in Y``, Y doit être un itérateur ou un objet pour lequel :func:" +"`iter` peut générer un itérateur. Ces deux expressions sont équivalentes ::" + +#: ../Doc/howto/functional.rst:229 +msgid "" +"Iterators can be materialized as lists or tuples by using the :func:`list` " +"or :func:`tuple` constructor functions:" +msgstr "" +"Les itérateurs peuvent être transformés en listes ou en tuples en appelant " +"les constructeurs respectifs :func:`list` et :func:`tuple` :" + +#: ../Doc/howto/functional.rst:238 +msgid "" +"Sequence unpacking also supports iterators: if you know an iterator will " +"return N elements, you can unpack them into an N-tuple:" +msgstr "" +"Le dépaquetage de séquences fonctionne également sur les itérateurs : si " +"vous savez qu'un itérateur renvoie N éléments, vous pouvez les dépaqueter " +"dans un n-uplet :" + +#: ../Doc/howto/functional.rst:247 +msgid "" +"Built-in functions such as :func:`max` and :func:`min` can take a single " +"iterator argument and will return the largest or smallest element. The ``" +"\"in\"`` and ``\"not in\"`` operators also support iterators: ``X in " +"iterator`` is true if X is found in the stream returned by the iterator. " +"You'll run into obvious problems if the iterator is infinite; :func:`max`, :" +"func:`min` will never return, and if the element X never appears in the " +"stream, the ``\"in\"`` and ``\"not in\"`` operators won't return either." +msgstr "" +"Certaines fonctions natives telles que :func:`max` et :func:`min` prennent " +"un itérateur en argument et en renvoie le plus grand ou le plus petit " +"élément. Les opérateurs ``\"in\"`` et ``\"not in\"`` gèrent également les " +"itérateurs : ``X in iterator`` est vrai si X a été trouvé dans le flux " +"renvoyé par l'itérateur. Vous rencontrerez bien sûr des problèmes si " +"l'itérateur est infini : :func:`max`, :func:`min` ne termineront jamais et, " +"si l'élément X n'apparaît pas dans le flux, les opérateurs ``\"in\"`` et ``" +"\"not in\"`` non plus." + +#: ../Doc/howto/functional.rst:255 +msgid "" +"Note that you can only go forward in an iterator; there's no way to get the " +"previous element, reset the iterator, or make a copy of it. Iterator " +"objects can optionally provide these additional capabilities, but the " +"iterator protocol only specifies the :meth:`~iterator.__next__` method. " +"Functions may therefore consume all of the iterator's output, and if you " +"need to do something different with the same stream, you'll have to create a " +"new iterator." +msgstr "" +"Notez qu'il n'est possible de parcourir un itérateur que vers l'avant et " +"qu'il est impossible de récupérer l'élément précédent, de réinitialiser " +"l'itérateur ou d'en créer une copie. Des objets itérateurs peuvent offrir " +"ces possibilités de façon facultative, mais le protocole d'itération ne " +"spécifie que la méthode :meth:`~iterator.__next__`. Certaines fonctions " +"peuvent ainsi consommer l'entièreté de la sortie d'un itérateur et, si vous " +"devez utiliser le même flux pour autre chose, vous devrez en créer un " +"nouveau." + +#: ../Doc/howto/functional.rst:265 +msgid "Data Types That Support Iterators" +msgstr "Types de données itérables" + +#: ../Doc/howto/functional.rst:267 +msgid "" +"We've already seen how lists and tuples support iterators. In fact, any " +"Python sequence type, such as strings, will automatically support creation " +"of an iterator." +msgstr "" +"Nous avons vu précédemment comment les listes et les *tuples* gèrent les " +"itérateurs. En réalité, n'importe quel type de séquence en Python, par " +"exemple les chaînes de caractères, sont itérables." + +#: ../Doc/howto/functional.rst:271 +msgid "" +"Calling :func:`iter` on a dictionary returns an iterator that will loop over " +"the dictionary's keys::" +msgstr "" +"Appeler :func:`iter` sur un dictionnaire renvoie un itérateur qui parcourt " +"l'ensemble de ses clés ::" + +#: ../Doc/howto/functional.rst:291 +msgid "" +"Note that starting with Python 3.7, dictionary iteration order is guaranteed " +"to be the same as the insertion order. In earlier versions, the behaviour " +"was unspecified and could vary between implementations." +msgstr "" +"Notez qu'à partir de la version 3.7, Python garantit que l'ordre de " +"l'itération sur un dictionnaire est identique à l'ordre d'insertion des " +"clés. Dans les versions précédentes, ce comportement n'était pas spécifié et " +"pouvait varier en fonction de l'implémentation." + +#: ../Doc/howto/functional.rst:295 +msgid "" +"Applying :func:`iter` to a dictionary always loops over the keys, but " +"dictionaries have methods that return other iterators. If you want to " +"iterate over values or key/value pairs, you can explicitly call the :meth:" +"`~dict.values` or :meth:`~dict.items` methods to get an appropriate iterator." +msgstr "" +"Appliquer :func:`iter` sur un dictionnaire produit un itérateur sur ses clés " +"mais il est possible d'obtenir d'autres itérateurs par d'autres méthodes. Si " +"vous souhaitez itérer sur les valeurs ou les paires clé/valeur du " +"dictionnaire, vous pouvez explicitement appeler les méthodes :meth:`~dict." +"values` ou :meth:`~dict.items` pour obtenir l'itérateur idoine." + +#: ../Doc/howto/functional.rst:301 +msgid "" +"The :func:`dict` constructor can accept an iterator that returns a finite " +"stream of ``(key, value)`` tuples:" +msgstr "" +"Le constructeur :func:`dict` accepte de prendre un itérateur en argument qui " +"renvoie un flux fini de pairs ``(clé, valeur)`` :" + +#: ../Doc/howto/functional.rst:308 +msgid "" +"Files also support iteration by calling the :meth:`~io.TextIOBase.readline` " +"method until there are no more lines in the file. This means you can read " +"each line of a file like this::" +msgstr "" +"Les fichiers gèrent aussi l'itération en appelant la méthode :meth:`~io." +"TextIOBase.readline` jusqu'à ce qu'il n'y ait plus d'autre ligne dans le " +"fichier. Cela signifie que vous pouvez lire l'intégralité d'un fichier de la " +"façon suivante ::" + +#: ../Doc/howto/functional.rst:316 +msgid "" +"Sets can take their contents from an iterable and let you iterate over the " +"set's elements::" +msgstr "" +"Les ensembles peuvent être créés à partir d'un itérable et autorisent " +"l'itération sur les éléments de l'ensemble ::" + +#: ../Doc/howto/functional.rst:326 +msgid "Generator expressions and list comprehensions" +msgstr "Expressions génératrices et compréhension de listes" + +#: ../Doc/howto/functional.rst:328 +msgid "" +"Two common operations on an iterator's output are 1) performing some " +"operation for every element, 2) selecting a subset of elements that meet " +"some condition. For example, given a list of strings, you might want to " +"strip off trailing whitespace from each line or extract all the strings " +"containing a given substring." +msgstr "" +"Deux opérations courantes réalisables sur la sortie d'un itérateur sont 1) " +"effectuer une opération pour chaque élément, 2) extraire le sous-ensemble " +"des éléments qui vérifient une certaine condition. Par exemple, pour une " +"liste de chaînes de caractères, vous pouvez choisir de retirer tous les " +"caractères blancs à la fin de chaque ligne ou extraire toutes les chaînes " +"contenant une sous-chaîne précise." + +#: ../Doc/howto/functional.rst:334 +msgid "" +"List comprehensions and generator expressions (short form: \"listcomps\" and " +"\"genexps\") are a concise notation for such operations, borrowed from the " +"functional programming language Haskell (https://www.haskell.org/). You can " +"strip all the whitespace from a stream of strings with the following code::" +msgstr "" +"Les compréhensions de listes et les expressions génératrices sont des façons " +"concises d'exprimer de telles opérations, inspirées du langage de " +"programmation fonctionnel Haskell (https://www.haskell.org/). Vous pouvez " +"retirer tous les caractères blancs initiaux et finaux d'un flux de chaînes " +"de caractères à l'aide du code suivant ::" + +#: ../Doc/howto/functional.rst:347 +msgid "" +"You can select only certain elements by adding an ``\"if\"`` condition::" +msgstr "" +"Vous pouvez ne sélectionner que certains éléments en ajoutant une condition " +"« ``if`` » ::" + +#: ../Doc/howto/functional.rst:352 +msgid "" +"With a list comprehension, you get back a Python list; ``stripped_list`` is " +"a list containing the resulting lines, not an iterator. Generator " +"expressions return an iterator that computes the values as necessary, not " +"needing to materialize all the values at once. This means that list " +"comprehensions aren't useful if you're working with iterators that return an " +"infinite stream or a very large amount of data. Generator expressions are " +"preferable in these situations." +msgstr "" +"La compréhension de liste renvoie une liste Python ; ``stripped_list`` est " +"une liste contenant les lignes après transformation, pas un itérateur. Les " +"expressions génératrices renvoient un itérateur qui calcule les valeurs au " +"fur et à mesure sans toutes les matérialiser d'un seul coup. Cela signifie " +"que les compréhensions de listes ne sont pas très utiles si vous travaillez " +"sur des itérateurs infinis ou produisant une très grande quantité de " +"données. Les expressions génératrices sont préférables dans ce cas." + +#: ../Doc/howto/functional.rst:359 +msgid "" +"Generator expressions are surrounded by parentheses (\"()\") and list " +"comprehensions are surrounded by square brackets (\"[]\"). Generator " +"expressions have the form::" +msgstr "" +"Les expressions génératrices sont écrites entre parenthèses (« () ») et les " +"compréhensions de listes entre crochets (« [] »). Les expressions " +"génératrices sont de la forme ::" + +#: ../Doc/howto/functional.rst:372 +msgid "" +"Again, for a list comprehension only the outside brackets are different " +"(square brackets instead of parentheses)." +msgstr "" +"La compréhension de liste équivalente s'écrit de la même manière, utilisez " +"juste des crochets à la place des parenthèses." + +#: ../Doc/howto/functional.rst:375 +msgid "" +"The elements of the generated output will be the successive values of " +"``expression``. The ``if`` clauses are all optional; if present, " +"``expression`` is only evaluated and added to the result when ``condition`` " +"is true." +msgstr "" +"Les éléments de la sortie sont les valeurs successives de ``expression``. La " +"clause ``if`` est facultative ; si elle est présente, ``expression`` n'est " +"évaluée et ajoutée au résultat que si ``condition`` est vérifiée." + +#: ../Doc/howto/functional.rst:379 +msgid "" +"Generator expressions always have to be written inside parentheses, but the " +"parentheses signalling a function call also count. If you want to create an " +"iterator that will be immediately passed to a function you can write::" +msgstr "" +"Les expressions génératrices doivent toujours être écrites entre " +"parenthèses, mais les parenthèses qui encadrent un appel de fonction " +"comptent aussi. Si vous souhaitez créer un itérateur qui soit immédiatement " +"passé à une fonction, vous pouvez écrire ::" + +#: ../Doc/howto/functional.rst:385 +msgid "" +"The ``for...in`` clauses contain the sequences to be iterated over. The " +"sequences do not have to be the same length, because they are iterated over " +"from left to right, **not** in parallel. For each element in ``sequence1``, " +"``sequence2`` is looped over from the beginning. ``sequence3`` is then " +"looped over for each resulting pair of elements from ``sequence1`` and " +"``sequence2``." +msgstr "" +"Les clauses ``for ... in`` indiquent les séquences sur lesquelles itérer. " +"Celles-ci peuvent être de longueurs différentes car l'itération est réalisée " +"de gauche à droite et non en parallèle. ``sequence2`` est parcourue " +"entièrement pour chaque élément de ``sequence1``. ``sequence3`` est ensuite " +"parcourue dans son intégralité pour chaque paire d'éléments de ``sequence1`` " +"et ``sequence2``." + +#: ../Doc/howto/functional.rst:391 +msgid "" +"To put it another way, a list comprehension or generator expression is " +"equivalent to the following Python code::" +msgstr "" +"Autrement dit, une compréhension de liste ou une expression génératrice est " +"équivalente au code Python ci-dessous ::" + +#: ../Doc/howto/functional.rst:408 +msgid "" +"This means that when there are multiple ``for...in`` clauses but no ``if`` " +"clauses, the length of the resulting output will be equal to the product of " +"the lengths of all the sequences. If you have two lists of length 3, the " +"output list is 9 elements long:" +msgstr "" +"Ainsi lorsque plusieurs clauses ``for ... in`` sont présentes mais sans " +"condition ``if``, la longueur totale de la nouvelle séquence est égale au " +"produit des longueurs des séquences itérées. Si vous travaillez sur deux " +"listes de longueur 3, la sortie contiendra 9 éléments :" + +#: ../Doc/howto/functional.rst:420 +msgid "" +"To avoid introducing an ambiguity into Python's grammar, if ``expression`` " +"is creating a tuple, it must be surrounded with parentheses. The first list " +"comprehension below is a syntax error, while the second one is correct::" +msgstr "" +"Afin de ne pas créer une ambiguïté dans la grammaire de Python, " +"``expression`` doit être encadrée par des parenthèses si elle produit un n-" +"uplet. La première compréhension de liste ci-dessous n'est pas valide " +"syntaxiquement, tandis que la seconde l'est ::" + +#: ../Doc/howto/functional.rst:431 +msgid "Generators" +msgstr "Générateurs" + +#: ../Doc/howto/functional.rst:433 +msgid "" +"Generators are a special class of functions that simplify the task of " +"writing iterators. Regular functions compute a value and return it, but " +"generators return an iterator that returns a stream of values." +msgstr "" +"Les générateurs forment une classe spéciale de fonctions qui simplifie la " +"création d'itérateurs. Les fonctions habituelles calculent une valeur et la " +"renvoie, tandis que les générateurs renvoient un itérateur qui produit un " +"flux de valeurs." + +#: ../Doc/howto/functional.rst:437 +msgid "" +"You're doubtless familiar with how regular function calls work in Python or " +"C. When you call a function, it gets a private namespace where its local " +"variables are created. When the function reaches a ``return`` statement, " +"the local variables are destroyed and the value is returned to the caller. " +"A later call to the same function creates a new private namespace and a " +"fresh set of local variables. But, what if the local variables weren't " +"thrown away on exiting a function? What if you could later resume the " +"function where it left off? This is what generators provide; they can be " +"thought of as resumable functions." +msgstr "" +"Vous connaissez sans doute le fonctionnement des appels de fonctions en " +"Python ou en C. Lorsqu'une fonction est appelée, un espace de nommage privé " +"lui est associé pour ses variables locales. Lorsque le programme atteint une " +"instruction ``return``, les variables locales sont détruites et la valeur " +"est renvoyée à l'appelant. Les appels postérieurs à la même fonction créent " +"un nouvel espace de nommage privé et de nouvelles variables locales. " +"Cependant, que se passerait-il si les variables locales n'étaient pas " +"détruites lors de la sortie d'une fonction ? Et s'il était possible de " +"reprendre l'exécution de la fonction là où elle s'était arrêtée ? Les " +"générateurs sont une réponse à ces questions ; vous pouvez considérer qu'il " +"s'agit de fonctions qu'il est possible d'interrompre, puis de relancer sans " +"perdre leur progression." + +#: ../Doc/howto/functional.rst:446 +msgid "Here's the simplest example of a generator function:" +msgstr "Voici un exemple simple de fonction génératrice :" + +#: ../Doc/howto/functional.rst:452 +msgid "" +"Any function containing a :keyword:`yield` keyword is a generator function; " +"this is detected by Python's :term:`bytecode` compiler which compiles the " +"function specially as a result." +msgstr "" +"N'importe quelle fonction contenant le mot-clé :keyword:`yield` est un " +"générateur ; le compilateur :term:`bytecode` de Python détecte ce mot-clé et " +"prend en compte cette particularité de la fonction." + +#: ../Doc/howto/functional.rst:456 +msgid "" +"When you call a generator function, it doesn't return a single value; " +"instead it returns a generator object that supports the iterator protocol. " +"On executing the ``yield`` expression, the generator outputs the value of " +"``i``, similar to a ``return`` statement. The big difference between " +"``yield`` and a ``return`` statement is that on reaching a ``yield`` the " +"generator's state of execution is suspended and local variables are " +"preserved. On the next call to the generator's :meth:`~generator.__next__` " +"method, the function will resume executing." +msgstr "" +"Lorsque vous appelez une fonction génératrice, celle-ci ne renvoie pas une " +"unique valeur ; elle renvoie un objet générateur qui implémente le protocole " +"d'itération. Lorsque l'expression ``yield`` est exécutée, le générateur " +"renvoie la valeur de ``i``, d'une façon similaire à un ``return``. La " +"différence principale entre ``yield`` et ``return`` est qu'en atteignant " +"l'instruction ``yield``, l'état du générateur est suspendu et les variables " +"locales sont conservées. Lors de l'appel suivant à la méthode :meth:" +"`~generator.__next__` du générateur, la fonction reprend son exécution." + +#: ../Doc/howto/functional.rst:465 +msgid "Here's a sample usage of the ``generate_ints()`` generator:" +msgstr "Voici un exemple d'utilisation du générateur ``generate_ints()`` :" + +#: ../Doc/howto/functional.rst:482 +msgid "" +"You could equally write ``for i in generate_ints(5)``, or ``a, b, c = " +"generate_ints(3)``." +msgstr "" +"Vous pourriez de façon équivalente écrire ``for i in generate_ints(5)`` ou " +"``a, b, c = generate_ints(3)``." + +#: ../Doc/howto/functional.rst:485 +msgid "" +"Inside a generator function, ``return value`` causes " +"``StopIteration(value)`` to be raised from the :meth:`~generator.__next__` " +"method. Once this happens, or the bottom of the function is reached, the " +"procession of values ends and the generator cannot yield any further values." +msgstr "" +"Dans une fonction génératrice, une instruction ``return value`` entraine la " +"levée d'une exception ``StopIteration(value)`` dans la méthode :meth:" +"`~generator.__next__`. Lorsque cela se produit (ou que la fin de la fonction " +"est atteinte), le flot de nouvelles valeurs s'arrête et le générateur ne " +"peut plus rien produire." + +#: ../Doc/howto/functional.rst:490 +msgid "" +"You could achieve the effect of generators manually by writing your own " +"class and storing all the local variables of the generator as instance " +"variables. For example, returning a list of integers could be done by " +"setting ``self.count`` to 0, and having the :meth:`~iterator.__next__` " +"method increment ``self.count`` and return it. However, for a moderately " +"complicated generator, writing a corresponding class can be much messier." +msgstr "" +"Vous pouvez obtenir le même comportement que celui des générateurs en " +"écrivant votre propre classe qui stocke les variables locales du générateur " +"comme variables d'instance. Pour renvoyer une liste d'entiers, par exemple, " +"vous pouvez initialiser ``self.count`` à 0 et écrire la méthode :meth:" +"`~iterator.__next__` de telle sorte qu'elle incrémente ``self.count`` puis " +"le renvoie. Cependant, cela devient beaucoup plus complexe pour des " +"générateurs relativement sophistiqués." + +#: ../Doc/howto/functional.rst:498 +msgid "" +"The test suite included with Python's library, :source:`Lib/test/" +"test_generators.py`, contains a number of more interesting examples. Here's " +"one generator that implements an in-order traversal of a tree using " +"generators recursively. ::" +msgstr "" +":source:`Lib/test/test_generators.py`, la suite de test de la bibliothèque " +"Python, contient de nombreux exemples intéressants. Voici un générateur qui " +"implémente le parcours d'un arbre dans l'ordre en utilisant des générateurs " +"de façon récursive. ::" + +#: ../Doc/howto/functional.rst:514 +msgid "" +"Two other examples in ``test_generators.py`` produce solutions for the N-" +"Queens problem (placing N queens on an NxN chess board so that no queen " +"threatens another) and the Knight's Tour (finding a route that takes a " +"knight to every square of an NxN chessboard without visiting any square " +"twice)." +msgstr "" +"Deux autres exemples de ``test_generators.py`` permettent de résoudre le " +"problème des N Reines (placer *N* reines sur un échiquier de dimensions " +"*NxN* de telle sorte qu'aucune reine ne soit en position d'en prendre une " +"autre) et le problème du cavalier (trouver un chemin permettant au cavalier " +"de visiter toutes les cases d'un échiquier *NxN* sans jamais visiter la même " +"case deux fois)." + +#: ../Doc/howto/functional.rst:522 +msgid "Passing values into a generator" +msgstr "Transmettre des valeurs au générateur" + +#: ../Doc/howto/functional.rst:524 +msgid "" +"In Python 2.4 and earlier, generators only produced output. Once a " +"generator's code was invoked to create an iterator, there was no way to pass " +"any new information into the function when its execution is resumed. You " +"could hack together this ability by making the generator look at a global " +"variable or by passing in some mutable object that callers then modify, but " +"these approaches are messy." +msgstr "" +"Avant Python 2.5, les générateurs ne pouvaient que produire des sorties. Une " +"fois le code du générateur exécuté pour créer un itérateur, il était " +"impossible d'introduire de l'information nouvelle dans la fonction mise en " +"pause. Une astuce consistait à obtenir cette fonctionnalité en autorisant le " +"générateur à consulter des variables globales ou en lui passant des objets " +"mutables modifiés hors du générateur, mais ces approches étaient compliquées." + +#: ../Doc/howto/functional.rst:531 +msgid "" +"In Python 2.5 there's a simple way to pass values into a generator. :keyword:" +"`yield` became an expression, returning a value that can be assigned to a " +"variable or otherwise operated on::" +msgstr "" +"À partir de Python 2.5, il existe une méthode simple pour transmettre des " +"valeurs à un générateur. Le mot-clé :keyword:`yield` est devenu une " +"expression qui renvoie une valeur sur laquelle il est possible d'opérer et " +"que vous pouvez assigner à une variable ::" + +#: ../Doc/howto/functional.rst:537 +msgid "" +"I recommend that you **always** put parentheses around a ``yield`` " +"expression when you're doing something with the returned value, as in the " +"above example. The parentheses aren't always necessary, but it's easier to " +"always add them instead of having to remember when they're needed." +msgstr "" +"Comme dans l'exemple ci-dessus, nous vous recommandons de **toujours** " +"encadrer les expressions ``yield`` par des parenthèses lorsque vous utilisez " +"leur valeur de retour. Elles ne sont pas toujours indispensables mais mieux " +"vaut prévenir que guérir : il est plus facile de les ajouter " +"systématiquement que de prendre le risque de les oublier là où elles sont " +"requises." + +#: ../Doc/howto/functional.rst:542 +msgid "" +"(:pep:`342` explains the exact rules, which are that a ``yield``-expression " +"must always be parenthesized except when it occurs at the top-level " +"expression on the right-hand side of an assignment. This means you can " +"write ``val = yield i`` but have to use parentheses when there's an " +"operation, as in ``val = (yield i) + 12``.)" +msgstr "" +"(Les règles exactes de parenthésage sont spécifies dans la :pep:`342` : une " +"expression ``yield`` doit toujours être parenthésée sauf s'il s'agit de " +"l'expression la plus externe du côté droit d'une assignation. Cela signifie " +"que vous pouvez écrire ``val = yield i`` mais que les parenthèses sont " +"requises s'il y a une opération, comme dans ``val = (yield i) + 12``.)" + +#: ../Doc/howto/functional.rst:548 +msgid "" +"Values are sent into a generator by calling its :meth:`send(value) " +"` method. This method resumes the generator's code and the " +"``yield`` expression returns the specified value. If the regular :meth:" +"`~generator.__next__` method is called, the ``yield`` returns ``None``." +msgstr "" +"Des valeurs peuvent être transmises à un générateur en appelant sa méthode :" +"meth:`send(value) `. Celle-ci reprend l'exécution du " +"générateur et l'expression ``yield`` renvoie la valeur spécifiée. Si c'est " +"la méthode :meth:`~generator.__next__` habituelle qui est appelée, alors " +"``yield`` renvoie ``None``." + +#: ../Doc/howto/functional.rst:553 +msgid "" +"Here's a simple counter that increments by 1 and allows changing the value " +"of the internal counter." +msgstr "" +"Voici un exemple de compteur qui s'incrémente de 1 mais dont il est possible " +"de modifier le compte interne." + +#: ../Doc/howto/functional.rst:568 +msgid "And here's an example of changing the counter:" +msgstr "Et voici comment il est possible de modifier le compteur :" + +#: ../Doc/howto/functional.rst:585 +msgid "" +"Because ``yield`` will often be returning ``None``, you should always check " +"for this case. Don't just use its value in expressions unless you're sure " +"that the :meth:`~generator.send` method will be the only method used to " +"resume your generator function." +msgstr "" +"Puisque ``yield`` renvoie souvent ``None``, vous devez toujours vérifier si " +"c'est le cas. N'utilisez pas la valeur de retour à moins d'être certain que " +"seule la méthode :meth:`~generator.send` sera utilisée pour reprendre " +"l'exécution de la fonction génératrice." + +#: ../Doc/howto/functional.rst:590 +msgid "" +"In addition to :meth:`~generator.send`, there are two other methods on " +"generators:" +msgstr "" +"En plus de :meth:`~generator.send`, il existe deux autres méthodes " +"s'appliquant aux générateurs :" + +#: ../Doc/howto/functional.rst:593 +msgid "" +":meth:`throw(type, value=None, traceback=None) ` is used to " +"raise an exception inside the generator; the exception is raised by the " +"``yield`` expression where the generator's execution is paused." +msgstr "" +":meth:`throw(type, value=None, traceback=None) ` permet de " +"lever une exception dans le générateur ; celle-ci est levée par l'expression " +"``yield`` à l'endroit où l'exécution a été mise en pause." + +#: ../Doc/howto/functional.rst:597 +msgid "" +":meth:`~generator.close` raises a :exc:`GeneratorExit` exception inside the " +"generator to terminate the iteration. On receiving this exception, the " +"generator's code must either raise :exc:`GeneratorExit` or :exc:" +"`StopIteration`; catching the exception and doing anything else is illegal " +"and will trigger a :exc:`RuntimeError`. :meth:`~generator.close` will also " +"be called by Python's garbage collector when the generator is garbage-" +"collected." +msgstr "" +":meth:`~generator.close` lève une exception :exc:`GeneratorExit` dans le " +"générateur afin de terminer l'itération. Le code du générateur qui reçoit " +"cette exception doit lever à son tour :exc:`GeneratorExit` ou :exc:" +"`StopIteration`. Il est illégal d'attraper cette exception et de faire quoi " +"que ce soit d'autre, ceci déclenche une erreur :exc:`RuntimeError`. Lorsque " +"le ramasse-miette de Python collecte le générateur, il appelle sa méthode :" +"meth:`~generator.close`." + +#: ../Doc/howto/functional.rst:605 +msgid "" +"If you need to run cleanup code when a :exc:`GeneratorExit` occurs, I " +"suggest using a ``try: ... finally:`` suite instead of catching :exc:" +"`GeneratorExit`." +msgstr "" +"Si vous devez exécuter du code pour faire le ménage lors d'une :exc:" +"`GeneratorExit`, nous vous suggérons d'utiliser une structure ``try: ... " +"finally`` plutôt que d'attraper :exc:`GeneratorExit`." + +#: ../Doc/howto/functional.rst:608 +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/howto/functional.rst:611 +msgid "" +"Generators also become **coroutines**, a more generalized form of " +"subroutines. Subroutines are entered at one point and exited at another " +"point (the top of the function, and a ``return`` statement), but coroutines " +"can be entered, exited, and resumed at many different points (the ``yield`` " +"statements)." +msgstr "" +"Les générateurs sont également devenus des **coroutines**, une forme " +"généralisée de sous-routine. L'exécution des sous-routines démarre à un " +"endroit et se termine à un autre (au début de la fonction et au niveau de " +"l'instruction ``return``), tandis qu'il est possible d'entrer, de sortir ou " +"de reprendre une coroutine à différents endroits (les instructions " +"``yield``)." + +#: ../Doc/howto/functional.rst:618 +msgid "Built-in functions" +msgstr "Fonctions natives" + +#: ../Doc/howto/functional.rst:620 +msgid "" +"Let's look in more detail at built-in functions often used with iterators." +msgstr "" +"Voyons un peu plus en détail les fonctions natives souvent utilisées de " +"concert avec les itérateurs." + +#: ../Doc/howto/functional.rst:622 +msgid "" +"Two of Python's built-in functions, :func:`map` and :func:`filter` duplicate " +"the features of generator expressions:" +msgstr "" +":func:`map` et :func:`filter` sont deux fonctions natives de Python qui " +"clonent les propriétés des expressions génératrices :" + +#: ../Doc/howto/functional.rst:634 +msgid "" +":func:`map(f, iterA, iterB, ...) ` returns an iterator over the sequence" +msgstr "" +":func:`map(f, iterA, iterB, ...) ` renvoie un itérateur sur une séquence" + +#: ../Doc/howto/functional.rst:626 +msgid "" +"``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." +msgstr "" +"``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." + +#: ../Doc/howto/functional.rst:636 +msgid "You can of course achieve the same effect with a list comprehension." +msgstr "" +"Vous pouvez obtenir le même comportement à l'aide d'une compréhension de " +"liste." + +#: ../Doc/howto/functional.rst:638 +msgid "" +":func:`filter(predicate, iter) ` returns an iterator over all the " +"sequence elements that meet a certain condition, and is similarly duplicated " +"by list comprehensions. A **predicate** is a function that returns the " +"truth value of some condition; for use with :func:`filter`, the predicate " +"must take a single value." +msgstr "" +":func:`filter(predicate, iter) ` renvoie un itérateur sur l'ensemble " +"des éléments de la séquence qui vérifient une certaine condition. Son " +"comportement peut également être reproduit par une compréhension de liste. " +"Un **prédicat** est une fonction qui renvoie vrai ou faux en fonction d'une " +"certaine condition. Dans le cas de :func:`filter`, le prédicat ne doit " +"prendre qu'un seul argument." + +#: ../Doc/howto/functional.rst:651 +msgid "This can also be written as a list comprehension:" +msgstr "Cela peut se réécrire sous la forme d'une compréhension de liste :" + +#: ../Doc/howto/functional.rst:657 +msgid "" +":func:`enumerate(iter, start=0) ` counts off the elements in the " +"iterable returning 2-tuples containing the count (from *start*) and each " +"element. ::" +msgstr "" +":func:`enumerate(iter, start=0) ` énumère les éléments de " +"l'itérable en renvoyant des paires contenant le nombre d'éléments déjà " +"listés (depuis le *début*) et l'élément en cours ::" + +#: ../Doc/howto/functional.rst:667 +msgid "" +":func:`enumerate` is often used when looping through a list and recording " +"the indexes at which certain conditions are met::" +msgstr "" +":func:`enumerate` est souvent utilisée lorsque l'on souhaite boucler sur une " +"liste tout en listant les indices pour lesquels une certaine condition est " +"vérifiée ::" + +#: ../Doc/howto/functional.rst:675 +msgid "" +":func:`sorted(iterable, key=None, reverse=False) ` collects all the " +"elements of the iterable into a list, sorts the list, and returns the sorted " +"result. The *key* and *reverse* arguments are passed through to the " +"constructed list's :meth:`~list.sort` method. ::" +msgstr "" +":func:`sorted(iterable, key=None, reverse=False) ` rassemble tous " +"les éléments de l'itérable dans une liste, les classe et renvoie le résultat " +"classé. Les arguments *key* et *reverse* sont passés à la méthode :meth:" +"`~list.sort` de la liste ainsi construite. ::" + +#: ../Doc/howto/functional.rst:690 +msgid "" +"(For a more detailed discussion of sorting, see the :ref:`sortinghowto`.)" +msgstr "" +"(Pour plus de détails sur les algorithmes de tri, se référer à :ref:" +"`sortinghowto`.)" + +#: ../Doc/howto/functional.rst:693 +msgid "" +"The :func:`any(iter) ` and :func:`all(iter) ` built-ins look at " +"the truth values of an iterable's contents. :func:`any` returns ``True`` if " +"any element in the iterable is a true value, and :func:`all` returns " +"``True`` if all of the elements are true values:" +msgstr "" +"Les fonctions natives :func:`any(iter) ` et :func:`all(iter) ` " +"permettent d'observer les valeurs de vérité des éléments d'un itérable. :" +"func:`any` renvoie ``True`` si au moins un élément de l'itérable s'évalue " +"comme vrai et :func:`all` renvoie ``True`` si tous les éléments s'évaluent " +"comme vrai :" + +#: ../Doc/howto/functional.rst:712 +msgid "" +":func:`zip(iterA, iterB, ...) ` takes one element from each iterable " +"and returns them in a tuple::" +msgstr "" +":func:`zip(iterA, iterB, ...) ` rassemble un élément de chaque itérable " +"dans un n-uplet ::" + +#: ../Doc/howto/functional.rst:718 +msgid "" +"It doesn't construct an in-memory list and exhaust all the input iterators " +"before returning; instead tuples are constructed and returned only if " +"they're requested. (The technical term for this behaviour is `lazy " +"evaluation `__.)" +msgstr "" +"Cela ne construit pas de liste stockée en mémoire, ni ne vide les itérateurs " +"d'entrée avant de renvoyer sa valeur ; en réalité les n-uplets sont " +"construits et renvoyés au fur et à mesure (il s'agit techniquement parlant " +"d'un comportement d'`évaluation paresseuse `__)." + +#: ../Doc/howto/functional.rst:723 +msgid "" +"This iterator is intended to be used with iterables that are all of the same " +"length. If the iterables are of different lengths, the resulting stream " +"will be the same length as the shortest iterable. ::" +msgstr "" +"Cet itérateur suppose qu'il opère sur des itérables de même longueur. Si la " +"longueur des itérables diffère, le flux résultant a la même longueur que le " +"plus court des itérables. ::" + +#: ../Doc/howto/functional.rst:730 +msgid "" +"You should avoid doing this, though, because an element may be taken from " +"the longer iterators and discarded. This means you can't go on to use the " +"iterators further because you risk skipping a discarded element." +msgstr "" +"Toutefois, vous devez éviter de dépendre de ce comportement. En effet un " +"élément d'un des itérables les plus longs peut être retiré puis jeté (car " +"l'autre itérable est trop court). Cela signifie que vous ne pouvez alors " +"plus utiliser cet itérable car vous allez sauter l'élément qui vient d'être " +"jeté." + +#: ../Doc/howto/functional.rst:736 +msgid "The itertools module" +msgstr "Le module *itertools*" + +#: ../Doc/howto/functional.rst:738 +msgid "" +"The :mod:`itertools` module contains a number of commonly-used iterators as " +"well as functions for combining several iterators. This section will " +"introduce the module's contents by showing small examples." +msgstr "" +"Le module :mod:`itertools` contient de nombreux itérateurs très utilisés, " +"ainsi que des fonctions pour combiner différents itérateurs. Cette section " +"présente le contenu du module au travers de quelques exemples." + +#: ../Doc/howto/functional.rst:742 +msgid "The module's functions fall into a few broad classes:" +msgstr "Les fonctions du module se divisent en quelques grandes catégories :" + +#: ../Doc/howto/functional.rst:744 +msgid "Functions that create a new iterator based on an existing iterator." +msgstr "" +"Les fonctions qui transforment un itérateur existant en un nouvel itérateur." + +#: ../Doc/howto/functional.rst:745 +msgid "Functions for treating an iterator's elements as function arguments." +msgstr "" +"Les fonctions qui traitent les éléments d'un itérateur comme les arguments " +"d'une fonction." + +#: ../Doc/howto/functional.rst:746 +msgid "Functions for selecting portions of an iterator's output." +msgstr "" +"Les fonctions qui permettent de sélectionner des portions de la sortie d'un " +"itérateur." + +#: ../Doc/howto/functional.rst:747 +msgid "A function for grouping an iterator's output." +msgstr "Une fonction qui permet de grouper la sortie d'un itérateur." + +#: ../Doc/howto/functional.rst:750 +msgid "Creating new iterators" +msgstr "Créer de nouveaux itérateurs" + +#: ../Doc/howto/functional.rst:752 +msgid "" +":func:`itertools.count(start, step) ` returns an infinite " +"stream of evenly spaced values. You can optionally supply the starting " +"number, which defaults to 0, and the interval between numbers, which " +"defaults to 1::" +msgstr "" +":func:`itertools.count(start, step) ` renvoie un flux " +"infini de valeurs régulièrement espacées. Vous pouvez spécifier la valeur de " +"départ (par défaut, 0) et l'intervalle entre les nombres (par défaut, 1) ::" + +#: ../Doc/howto/functional.rst:763 +msgid "" +":func:`itertools.cycle(iter) ` saves a copy of the contents " +"of a provided iterable and returns a new iterator that returns its elements " +"from first to last. The new iterator will repeat these elements " +"infinitely. ::" +msgstr "" +":func:`itertools.cycle(iter) ` sauvegarde une copie du " +"contenu de l'itérable passé en argument et renvoie un nouvel itérateur qui " +"produit tous les éléments du premier au dernier et se répète indéfiniment. ::" + +#: ../Doc/howto/functional.rst:770 +msgid "" +":func:`itertools.repeat(elem, [n]) ` returns the provided " +"element *n* times, or returns the element endlessly if *n* is not " +"provided. ::" +msgstr "" +":func:`itertools.repeat(elem, [n]) ` renvoie l'élément " +"passé en argument *n* fois ou répète l'élément à l'infini si *n* n'est pas " +"spécifié. ::" + +#: ../Doc/howto/functional.rst:778 +msgid "" +":func:`itertools.chain(iterA, iterB, ...) ` takes an " +"arbitrary number of iterables as input, and returns all the elements of the " +"first iterator, then all the elements of the second, and so on, until all of " +"the iterables have been exhausted. ::" +msgstr "" +":func:`itertools.chain(iterA, iterB, ...) ` reçoit un " +"nombre arbitraire d'itérables en entrée et les concatène, renvoyant tous les " +"éléments du premier itérateur, puis tous ceux du second et ainsi de suite " +"jusqu'à ce que tous les itérables aient été épuisés. ::" + +#: ../Doc/howto/functional.rst:786 +msgid "" +":func:`itertools.islice(iter, [start], stop, [step]) ` " +"returns a stream that's a slice of the iterator. With a single *stop* " +"argument, it will return the first *stop* elements. If you supply a " +"starting index, you'll get *stop-start* elements, and if you supply a value " +"for *step*, elements will be skipped accordingly. Unlike Python's string " +"and list slicing, you can't use negative values for *start*, *stop*, or " +"*step*. ::" +msgstr "" +":func:`itertools.islice(iter, [start], stop, [step]) ` " +"renvoie une portion de l'itérateur. En passant seulement l'argument *stop*, " +"il renvoie les *stop* premiers éléments. En spécifiant un indice de début, " +"vous récupérez *stop - start* éléments ; utilisez *step* pour spécifier une " +"valeur de pas. Cependant vous ne pouvez pas utiliser de valeurs négatives " +"pour *start*, *stop* ou *step* (contrairement aux listes et chaînes de " +"caractères de Python). ::" + +#: ../Doc/howto/functional.rst:800 +msgid "" +":func:`itertools.tee(iter, [n]) ` replicates an iterator; it " +"returns *n* independent iterators that will all return the contents of the " +"source iterator. If you don't supply a value for *n*, the default is 2. " +"Replicating iterators requires saving some of the contents of the source " +"iterator, so this can consume significant memory if the iterator is large " +"and one of the new iterators is consumed more than the others. ::" +msgstr "" +":func:`itertools.tee(iter, [n]) ` duplique un itérateur et " +"renvoie *n* itérateurs indépendants, chacun copiant le contenu de " +"l'itérateur source. La valeur par défaut pour *n* est 2. La réplication des " +"itérateurs nécessite la sauvegarde d'une partie du contenu de l'itérateur " +"source, ce qui peut consommer beaucoup de mémoire si l'itérateur est grand " +"et que l'un des nouveaux itérateurs est plus consommé que les autres. ::" + +#: ../Doc/howto/functional.rst:819 +msgid "Calling functions on elements" +msgstr "Appliquer des fonctions au contenu des itérateurs" + +#: ../Doc/howto/functional.rst:821 +msgid "" +"The :mod:`operator` module contains a set of functions corresponding to " +"Python's operators. Some examples are :func:`operator.add(a, b) ` (adds two values), :func:`operator.ne(a, b) ` (same as " +"``a != b``), and :func:`operator.attrgetter('id') ` " +"(returns a callable that fetches the ``.id`` attribute)." +msgstr "" +"Le module :mod:`operator` rassemble des fonctions équivalentes aux " +"opérateurs Python. Par exemple, :func:`operator.add(a,b) ` " +"additionne deux valeurs, :func:`operator.ne(a, b) ` est " +"équivalent à ``a != b`` et :func:`operator.attrgetter('id') ` renvoie un objet appelable qui récupère l'attribut ``.id``." + +#: ../Doc/howto/functional.rst:827 +msgid "" +":func:`itertools.starmap(func, iter) ` assumes that the " +"iterable will return a stream of tuples, and calls *func* using these tuples " +"as the arguments::" +msgstr "" +":func:`itertools.starmap(func, iter) ` suppose que " +"l'itérable renvoie une séquence de n-uplets et appelle *func* en utilisant " +"tous les n-uplets comme arguments ::" + +#: ../Doc/howto/functional.rst:839 +msgid "Selecting elements" +msgstr "Sélectionner des éléments" + +#: ../Doc/howto/functional.rst:841 +msgid "" +"Another group of functions chooses a subset of an iterator's elements based " +"on a predicate." +msgstr "" +"Une autre catégorie de fonctions est celle permettant de sélectionner un " +"sous-ensemble des éléments de l'itérateur selon un prédicat donné." + +#: ../Doc/howto/functional.rst:844 +msgid "" +":func:`itertools.filterfalse(predicate, iter) ` is " +"the opposite of :func:`filter`, returning all elements for which the " +"predicate returns false::" +msgstr "" +":func:`itertools.filterfalse(predicate, iter) ` est " +"l'opposé de :func:`filter` et renvoie tous les éléments pour lesquels le " +"prédicat est faux ::" + +#: ../Doc/howto/functional.rst:851 +msgid "" +":func:`itertools.takewhile(predicate, iter) ` returns " +"elements for as long as the predicate returns true. Once the predicate " +"returns false, the iterator will signal the end of its results. ::" +msgstr "" +":func:`itertools.takewhile(predicate, iter) ` renvoie " +"les éléments de l'itérateur tant que ceux-ci vérifient le prédicat. Dès lors " +"que le prédicat renvoie faux, l'itération s'arrête. ::" + +#: ../Doc/howto/functional.rst:864 +msgid "" +":func:`itertools.dropwhile(predicate, iter) ` discards " +"elements while the predicate returns true, and then returns the rest of the " +"iterable's results. ::" +msgstr "" +":func:`itertools.dropwhile(predicate, iter) ` supprime " +"des éléments tant que le prédicat renvoie vrai puis renvoie le reste des " +"éléments de l'itérable. ::" + +#: ../Doc/howto/functional.rst:874 +msgid "" +":func:`itertools.compress(data, selectors) ` takes two " +"iterators and returns only those elements of *data* for which the " +"corresponding element of *selectors* is true, stopping whenever either one " +"is exhausted::" +msgstr "" +":func:`itertools.compress(data, selectors) ` prend un " +"itérateur *data* et un itérateur *selectors* et renvoie les éléments de " +"*data* pour lesquels l'élément correspondant de *selectors* est évalué à " +"vrai. L'itération s'arrête lorsque l'un des deux itérateurs est épuisé ::" + +#: ../Doc/howto/functional.rst:883 +msgid "Combinatoric functions" +msgstr "Fonctions combinatoires" + +#: ../Doc/howto/functional.rst:885 +msgid "" +"The :func:`itertools.combinations(iterable, r) ` " +"returns an iterator giving all possible *r*-tuple combinations of the " +"elements contained in *iterable*. ::" +msgstr "" +":func:`itertools.combinations(iterable, r) ` renvoie " +"un itérateur qui produit toutes les combinaisons possibles de *r*-uplets des " +"éléments de *iterable*. ::" + +#: ../Doc/howto/functional.rst:900 +msgid "" +"The elements within each tuple remain in the same order as *iterable* " +"returned them. For example, the number 1 is always before 2, 3, 4, or 5 in " +"the examples above. A similar function, :func:`itertools." +"permutations(iterable, r=None) `, removes this " +"constraint on the order, returning all possible arrangements of length *r*::" +msgstr "" +"Les éléments de chaque tuple sont ordonnés dans le même ordre que leur " +"apparition dans *iterable*. Ainsi, dans les exemples ci-dessus, le nombre 1 " +"se trouve toujours avant 2, 3, 4 ou 5. La fonction :func:`itertools." +"permutations(iterable, r=None) ` supprime la " +"contrainte sur l'ordre et renvoie tous les arrangements possibles de " +"longueur *r* ::" + +#: ../Doc/howto/functional.rst:919 +msgid "" +"If you don't supply a value for *r* the length of the iterable is used, " +"meaning that all the elements are permuted." +msgstr "" +"Si vous ne spécifiez pas de valeur pour *r*, la longueur de l'itérable est " +"utilisée par défaut, c'est-à-dire que toutes les permutations de la séquence " +"sont renvoyées." + +#: ../Doc/howto/functional.rst:922 +msgid "" +"Note that these functions produce all of the possible combinations by " +"position and don't require that the contents of *iterable* are unique::" +msgstr "" +"Notez que ces fonctions génèrent toutes les combinaisons possibles en se " +"basant sur la position des éléments et ne requièrent pas que les éléments de " +"*iterable* soient uniques ::" + +#: ../Doc/howto/functional.rst:929 +msgid "" +"The identical tuple ``('a', 'a', 'b')`` occurs twice, but the two 'a' " +"strings came from different positions." +msgstr "" +"Le triplet ``('a', 'a', 'b')`` apparaît deux fois mais les deux chaînes de " +"caractères ``'a'`` proviennent de deux positions différentes." + +#: ../Doc/howto/functional.rst:932 +msgid "" +"The :func:`itertools.combinations_with_replacement(iterable, r) ` function relaxes a different constraint: " +"elements can be repeated within a single tuple. Conceptually an element is " +"selected for the first position of each tuple and then is replaced before " +"the second element is selected. ::" +msgstr "" +"La fonction :func:`itertools.combinations_with_replacement(iterable, r) " +"` assouplit une autre contrainte : " +"les éléments peuvent être répétés au sein du même n-uplet. Il s'agit d'un " +"tirage avec remise : le premier élément sélectionné pour chaque n-uplet est " +"replacé dans la séquence avant le tirage du deuxième. ::" + +#: ../Doc/howto/functional.rst:947 +msgid "Grouping elements" +msgstr "Grouper les éléments" + +#: ../Doc/howto/functional.rst:949 +msgid "" +"The last function I'll discuss, :func:`itertools.groupby(iter, " +"key_func=None) `, is the most complicated. " +"``key_func(elem)`` is a function that can compute a key value for each " +"element returned by the iterable. If you don't supply a key function, the " +"key is simply each element itself." +msgstr "" +"La dernière fonction que allons voir, :func:`itertools.groupby(iter, " +"key_func=None) ` est la plus complexe. ``key_func(elem)`` " +"est une fonction qui produit une clé pour chaque élément renvoyé par " +"l'itérable. Si vous ne spécifiez pas de fonction *key*, alors celle-ci est " +"l'identité par défaut (c'est-à-dire que la clé d'un élément est l'élément " +"lui-même)." + +#: ../Doc/howto/functional.rst:954 +msgid "" +":func:`~itertools.groupby` collects all the consecutive elements from the " +"underlying iterable that have the same key value, and returns a stream of 2-" +"tuples containing a key value and an iterator for the elements with that key." +msgstr "" +":func:`~itertools.groupby` rassemble tous éléments consécutifs de l'itérable " +"sous-jacent qui ont la même clé et renvoie un flux de paires contenant la " +"clé et un itérateur produisant la liste des éléments pour cette clé." + +#: ../Doc/howto/functional.rst:982 +msgid "" +":func:`~itertools.groupby` assumes that the underlying iterable's contents " +"will already be sorted based on the key. Note that the returned iterators " +"also use the underlying iterable, so you have to consume the results of " +"iterator-1 before requesting iterator-2 and its corresponding key." +msgstr "" +":func:`~itertools.groupby` fait l'hypothèse que le contenu de l'itérable " +"sous-jacent est d'ores et déjà ordonné en fonction de la clé. Notez que les " +"itérateurs générés utilisent également l'itérable sous-jacent. Vous devez " +"donc consommer l'intégralité des résultats du premier itérateur renvoyé " +"(*iterator-1* dans l'exemple ci-dessus) avant de récupérer le deuxième " +"itérateur (*iterator-2* dans l'exemple ci-dessus) et la clé à laquelle il " +"est associé." + +#: ../Doc/howto/functional.rst:989 +msgid "The functools module" +msgstr "Le module *functools*" + +#: ../Doc/howto/functional.rst:991 +msgid "" +"The :mod:`functools` module in Python 2.5 contains some higher-order " +"functions. A **higher-order function** takes one or more functions as input " +"and returns a new function. The most useful tool in this module is the :" +"func:`functools.partial` function." +msgstr "" +"Le module :mod:`functools` introduit par Python 2.5 contient diverses " +"fonctions d'ordre supérieur. Une **fonction d'ordre supérieur** prend une ou " +"plusieurs fonctions en entrée et renvoie une fonction. L'outil le plus " +"important de ce module est la fonction :func:`functools.partial`." + +#: ../Doc/howto/functional.rst:996 +msgid "" +"For programs written in a functional style, you'll sometimes want to " +"construct variants of existing functions that have some of the parameters " +"filled in. Consider a Python function ``f(a, b, c)``; you may wish to create " +"a new function ``g(b, c)`` that's equivalent to ``f(1, b, c)``; you're " +"filling in a value for one of ``f()``'s parameters. This is called " +"\"partial function application\"." +msgstr "" +"En programmant dans un style fonctionnel, il est courant de vouloir " +"construire des variantes de fonctions existantes dont certains paramètres " +"sont prédéfinis. Par exemple, considérons une fonction Python ``f(a, b, " +"c)``. Si vous voulez une nouvelle fonction ``g(b, c)`` équivalente à ``f(1, " +"b, c)``, c'est-à-dire fixer le premier paramètre de ``f()``. La fonction " +"``g()`` est une appelée « application partielle » de ``f()``." + +#: ../Doc/howto/functional.rst:1002 +msgid "" +"The constructor for :func:`~functools.partial` takes the arguments " +"``(function, arg1, arg2, ..., kwarg1=value1, kwarg2=value2)``. The " +"resulting object is callable, so you can just call it to invoke ``function`` " +"with the filled-in arguments." +msgstr "" +"Le constructeur de :func:`~functools.partial` prend en argument ``(fonction, " +"arg1, arg2, ..., kwarg1=value1, kwarg2=value2, ...)``. Un appel à l'objet " +"ainsi créé invoque la fonction ``fonction`` avec les arguments spécifiés." + +#: ../Doc/howto/functional.rst:1007 +msgid "Here's a small but realistic example::" +msgstr "Voici un exemple court mais réaliste ::" + +#: ../Doc/howto/functional.rst:1019 +msgid "" +":func:`functools.reduce(func, iter, [initial_value]) ` " +"cumulatively performs an operation on all the iterable's elements and, " +"therefore, can't be applied to infinite iterables. *func* must be a function " +"that takes two elements and returns a single value. :func:`functools." +"reduce` takes the first two elements A and B returned by the iterator and " +"calculates ``func(A, B)``. It then requests the third element, C, " +"calculates ``func(func(A, B), C)``, combines this result with the fourth " +"element returned, and continues until the iterable is exhausted. If the " +"iterable returns no values at all, a :exc:`TypeError` exception is raised. " +"If the initial value is supplied, it's used as a starting point and " +"``func(initial_value, A)`` is the first calculation. ::" +msgstr "" +":func:`functools.reduce(func, iter, [initial_value]) ` " +"applique une opération cumulative à tous les éléments d'un itérable et ne " +"peut donc être appliquée à des itérables infinis. *func* doit être une " +"fonction qui prend deux éléments et renvoie une seule valeur. :func:" +"`functools.reduce` prend les deux premiers éléments A et B renvoyés par " +"l'itérateur et calcule ``func(A, B)``. Elle extrait ensuite le troisième " +"élément C et calcule ``func(func(A, B), C)`` puis combine ce résultat avec " +"le quatrième élément renvoyé etc. jusqu'à épuisement de l'itérable. Une " +"exception :exc:`TypeError` est levée si l'itérable ne renvoie aucune valeur. " +"La valeur initiale *initial_value*, si spécifiée, est utilisée comme point " +"de départ et le premier calcul est alors ``func(inital_value, A)``. ::" + +#: ../Doc/howto/functional.rst:1043 +msgid "" +"If you use :func:`operator.add` with :func:`functools.reduce`, you'll add up " +"all the elements of the iterable. This case is so common that there's a " +"special built-in called :func:`sum` to compute it:" +msgstr "" +"Si vous combinez :func:`operator.add` avec :func:`functools.reduce`, vous " +"allez additionner tous les éléments de l'itérable. Ce cas est suffisamment " +"courant pour qu'il existe une fonction native :func:`sum` qui lui est " +"équivalent :" + +#: ../Doc/howto/functional.rst:1055 +msgid "" +"For many uses of :func:`functools.reduce`, though, it can be clearer to just " +"write the obvious :keyword:`for` loop::" +msgstr "" +"Cependant, il peut être plus lisible dans de nombreuses situations " +"impliquant :func:`functools.reduce` de simplement écrire la boucle :keyword:" +"`for` ::" + +#: ../Doc/howto/functional.rst:1067 +msgid "" +"A related function is :func:`itertools.accumulate(iterable, func=operator." +"add) `. It performs the same calculation, but instead " +"of returning only the final result, :func:`accumulate` returns an iterator " +"that also yields each partial result::" +msgstr "" +":func:`itertools.accumulate(iterable, func=operator.add) ` est une fonction similaire qui réalise le même calcul mais, " +"plutôt que de renvoyer seulement le résultat final, :func:`accumulate` " +"renvoie un itérateur qui génère la séquence de tous les résultats " +"intermédiaires ::" + +#: ../Doc/howto/functional.rst:1080 +msgid "The operator module" +msgstr "Le module *operator*" + +#: ../Doc/howto/functional.rst:1082 +msgid "" +"The :mod:`operator` module was mentioned earlier. It contains a set of " +"functions corresponding to Python's operators. These functions are often " +"useful in functional-style code because they save you from writing trivial " +"functions that perform a single operation." +msgstr "" +"Le module :mod:`operator` mentionné précédemment contient un ensemble de " +"fonctions reproduisant les opérateurs de Python. Ces fonctions sont souvent " +"utiles en programmation fonctionnelle car elles permettent de ne pas avoir à " +"écrire des fonctions triviales qui ne réalisent qu'une seule opération." + +#: ../Doc/howto/functional.rst:1087 +msgid "Some of the functions in this module are:" +msgstr "Voici quelques fonctions de ce module :" + +#: ../Doc/howto/functional.rst:1089 +msgid "" +"Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, " +"``abs()``, ..." +msgstr "" +"Les opérations mathématiques : ``add()``, ``sub()``, ``mul()``, " +"``floordiv()``, ``abs()``, ..." + +#: ../Doc/howto/functional.rst:1090 +msgid "Logical operations: ``not_()``, ``truth()``." +msgstr "Les opérations logiques : ``not_()``, ``truth()``." + +#: ../Doc/howto/functional.rst:1091 +msgid "Bitwise operations: ``and_()``, ``or_()``, ``invert()``." +msgstr "Les opérations bit à bit : ``and_()``, ``or_()``, ``invert()``." + +#: ../Doc/howto/functional.rst:1092 +msgid "" +"Comparisons: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, and ``ge()``." +msgstr "" +"Les comparaisons : ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, et " +"``ge()``." + +#: ../Doc/howto/functional.rst:1093 +msgid "Object identity: ``is_()``, ``is_not()``." +msgstr "L'identification des objets : ``is_()``, ``is_not()``." + +#: ../Doc/howto/functional.rst:1095 +msgid "Consult the operator module's documentation for a complete list." +msgstr "" +"Veuillez vous référer à la documentation du module *operator* pour une liste " +"complète." + +#: ../Doc/howto/functional.rst:1099 +msgid "Small functions and the lambda expression" +msgstr "Expressions lambda et fonctions courtes" + +#: ../Doc/howto/functional.rst:1101 +msgid "" +"When writing functional-style programs, you'll often need little functions " +"that act as predicates or that combine elements in some way." +msgstr "" +"Dans un style de programmation fonctionnel, il est courant d'avoir besoin de " +"petites fonctions utilisées comme prédicats ou pour combiner des éléments " +"d'une façon ou d'une autre." + +#: ../Doc/howto/functional.rst:1104 +msgid "" +"If there's a Python built-in or a module function that's suitable, you don't " +"need to define a new function at all::" +msgstr "" +"S'il existe une fonction native Python ou une fonction d'un module qui " +"convient, vous n'avez pas besoin de définir de nouvelle fonction ::" + +#: ../Doc/howto/functional.rst:1110 +msgid "" +"If the function you need doesn't exist, you need to write it. One way to " +"write small functions is to use the :keyword:`lambda` expression. " +"``lambda`` takes a number of parameters and an expression combining these " +"parameters, and creates an anonymous function that returns the value of the " +"expression::" +msgstr "" +"Si la fonction dont vous avez besoin n'existe pas, vous devez l'écrire. Une " +"façon d'écrire des fonctions courtes consiste à utiliser les expressions :" +"keyword:`lambda`. ``lambda`` prend plusieurs paramètres et une expression " +"combinant ces derniers afin de créer une fonction anonyme qui renvoie la " +"valeur de cette expression ::" + +#: ../Doc/howto/functional.rst:1119 +msgid "" +"An alternative is to just use the ``def`` statement and define a function in " +"the usual way::" +msgstr "" +"Une autre façon de faire est de simplement utiliser l'instruction ``def`` " +"afin de définir une fonction de la manière habituelle ::" + +#: ../Doc/howto/functional.rst:1128 +msgid "" +"Which alternative is preferable? That's a style question; my usual course " +"is to avoid using ``lambda``." +msgstr "" +"La méthode à préférer est une question de style, en général l'auteur évite " +"l'utilisation de ``lambda``." + +#: ../Doc/howto/functional.rst:1131 +msgid "" +"One reason for my preference is that ``lambda`` is quite limited in the " +"functions it can define. The result has to be computable as a single " +"expression, which means you can't have multiway ``if... elif... else`` " +"comparisons or ``try... except`` statements. If you try to do too much in a " +"``lambda`` statement, you'll end up with an overly complicated expression " +"that's hard to read. Quick, what's the following code doing? ::" +msgstr "" +"Une des raisons est que ``lambda`` ne peut pas définir toutes les fonctions. " +"Le résultat doit pouvoir se calculer en une seule expression, ce qui " +"signifie qu'il est impossible d'avoir des comparaisons ``if ... elif ... " +"else`` à plusieurs branches ou des structures ``try ... except``. Si vous " +"essayez de trop en faire dans une expression ``lambda``, vous finirez avec " +"une expression illisible. Par exemple, pouvez-vous dire du premier coup " +"d’œil ce que fait le code ci-dessous ? ::" + +#: ../Doc/howto/functional.rst:1141 +msgid "" +"You can figure it out, but it takes time to disentangle the expression to " +"figure out what's going on. Using a short nested ``def`` statements makes " +"things a little bit better::" +msgstr "" +"Vous pouvez sûrement comprendre ce que fait ce code mais cela prend du temps " +"de démêler l'expression pour y voir plus clair. Une clause ``def`` concise " +"améliore la situation ::" + +#: ../Doc/howto/functional.rst:1151 +msgid "But it would be best of all if I had simply used a ``for`` loop::" +msgstr "" +"Toutefois l'idéal aurait été de simplement se contenter d'une boucle " +"``for`` ::" + +#: ../Doc/howto/functional.rst:1157 +msgid "Or the :func:`sum` built-in and a generator expression::" +msgstr "" +"ou de la fonction native :func:`sum` et d'une expression génératrice ::" + +#: ../Doc/howto/functional.rst:1161 +msgid "" +"Many uses of :func:`functools.reduce` are clearer when written as ``for`` " +"loops." +msgstr "" +"Les boucles ``for`` sont souvent plus lisibles que la fonction :func:" +"`functools.reduce`." + +#: ../Doc/howto/functional.rst:1163 +msgid "" +"Fredrik Lundh once suggested the following set of rules for refactoring uses " +"of ``lambda``:" +msgstr "" +"Frederik Lundh a suggéré quelques règles pour le réusinage de code " +"impliquant les expressions ``lambda`` :" + +#: ../Doc/howto/functional.rst:1166 +msgid "Write a lambda function." +msgstr "Écrire une fonction lambda." + +#: ../Doc/howto/functional.rst:1167 +msgid "Write a comment explaining what the heck that lambda does." +msgstr "" +"Écrire un commentaire qui explique ce que fait cette satanée fonction lambda." + +#: ../Doc/howto/functional.rst:1168 +msgid "" +"Study the comment for a while, and think of a name that captures the essence " +"of the comment." +msgstr "" +"Scruter le commentaire pendant quelques temps et réfléchir à un nom qui " +"synthétise son essence." + +#: ../Doc/howto/functional.rst:1170 +msgid "Convert the lambda to a def statement, using that name." +msgstr "" +"Réécrire la fonction lambda en une définition *def* en utilisant ce nom." + +#: ../Doc/howto/functional.rst:1171 +msgid "Remove the comment." +msgstr "Effacer le commentaire." + +#: ../Doc/howto/functional.rst:1173 +msgid "" +"I really like these rules, but you're free to disagree about whether this " +"lambda-free style is better." +msgstr "" +"J'aime beaucoup ces règles mais vous êtes libre de ne pas être d'accord et " +"de ne pas préférer ce style sans lambda." + +#: ../Doc/howto/functional.rst:1178 +msgid "Revision History and Acknowledgements" +msgstr "Historique des modifications et remerciements" + +#: ../Doc/howto/functional.rst:1180 +msgid "" +"The author would like to thank the following people for offering " +"suggestions, corrections and assistance with various drafts of this article: " +"Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, Jim Jewett, Mike " +"Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake Winton." +msgstr "" +"L'auteur souhaiterait remercier les personnes suivantes pour leurs " +"suggestions, leurs corrections et leur aide sur les premières versions de " +"cet article : Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, Jim " +"Jewett, Mike Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake " +"Winton." + +#: ../Doc/howto/functional.rst:1185 +msgid "Version 0.1: posted June 30 2006." +msgstr "Version 0.1 : publiée le 30 juin 2006." + +#: ../Doc/howto/functional.rst:1187 +msgid "Version 0.11: posted July 1 2006. Typo fixes." +msgstr "Version 0.11 : publiée le 1er juillet 2006. Correction orthographique." + +#: ../Doc/howto/functional.rst:1189 +msgid "" +"Version 0.2: posted July 10 2006. Merged genexp and listcomp sections into " +"one. Typo fixes." +msgstr "" +"Version 0.2 : publiée le 10 juillet 2006. Fusion des sections *genexp* et " +"*listcomp*. Correction orthographique." + +#: ../Doc/howto/functional.rst:1192 +msgid "" +"Version 0.21: Added more references suggested on the tutor mailing list." +msgstr "" +"Version 0.21 : ajout de plusieurs références suggérées sur la liste de " +"diffusion *tutor*." + +#: ../Doc/howto/functional.rst:1194 +msgid "" +"Version 0.30: Adds a section on the ``functional`` module written by Collin " +"Winter; adds short section on the operator module; a few other edits." +msgstr "" +"Version 0.30 : ajout d'une section sur le module ``functional`` écrite par " +"Collin Winter ; ajout d'une courte section sur le module ``operator`` ; " +"quelques autres modifications." + +#: ../Doc/howto/functional.rst:1199 +msgid "References" +msgstr "Références" + +#: ../Doc/howto/functional.rst:1202 +msgid "General" +msgstr "Général" + +#: ../Doc/howto/functional.rst:1204 +msgid "" +"**Structure and Interpretation of Computer Programs**, by Harold Abelson and " +"Gerald Jay Sussman with Julie Sussman. Full text at https://mitpress.mit." +"edu/sicp/. In this classic textbook of computer science, chapters 2 and 3 " +"discuss the use of sequences and streams to organize the data flow inside a " +"program. The book uses Scheme for its examples, but many of the design " +"approaches described in these chapters are applicable to functional-style " +"Python code." +msgstr "" +"**Structure and Interpretation of Computer Programs** par Harold Abelson et " +"Gerald Jay Sussman avec Julie Sussman. Disponible à l'adresse https://" +"mitpress.mit.edu/sicp/. Ce livre est un classique en informatique. Les " +"chapitres 2 et 3 présentent l'utilisation des séquences et des flux pour " +"organiser le flot de données dans un programme. Les exemples du livre " +"utilisent le langage Scheme mais la plupart des approches décrites dans ces " +"chapitres s'appliquent au style fonctionnel de Python." + +#: ../Doc/howto/functional.rst:1212 +msgid "" +"http://www.defmacro.org/ramblings/fp.html: A general introduction to " +"functional programming that uses Java examples and has a lengthy historical " +"introduction." +msgstr "" +"http://www.defmacro.org/ramblings/fp.html : une présentation générale à la " +"programmation fonctionnelle avec une longue introduction historique et des " +"exemples en Java." + +#: ../Doc/howto/functional.rst:1215 +msgid "" +"https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia " +"entry describing functional programming." +msgstr "" +"https://fr.wikipedia.org/wiki/Programmation_fonctionnelle : l'entrée " +"Wikipédia qui décrit la programmation fonctionnelle." + +#: ../Doc/howto/functional.rst:1218 +msgid "https://en.wikipedia.org/wiki/Coroutine: Entry for coroutines." +msgstr "" +"https://fr.wikipedia.org/wiki/Coroutine : l'entrée pour les coroutines." + +#: ../Doc/howto/functional.rst:1220 +msgid "" +"https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying." +msgstr "" +"https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour le concept de " +"curryfication (création d'applications partielles)." + +#: ../Doc/howto/functional.rst:1223 +msgid "Python-specific" +msgstr "Spécifique à Python" + +#: ../Doc/howto/functional.rst:1225 +msgid "" +"http://gnosis.cx/TPiP/: The first chapter of David Mertz's book :title-" +"reference:`Text Processing in Python` discusses functional programming for " +"text processing, in the section titled \"Utilizing Higher-Order Functions in " +"Text Processing\"." +msgstr "" +"http://gnosis.cx/TPiP/ : le premier chapitre du livre de David Mertz :title-" +"reference:`Text Processing in Python` présente l'utilisation de la " +"programmation fonctionnelle pour le traitement de texte dans la section « " +"Utilisation des fonctions d'ordre supérieur pour le traitement de texte »." + +#: ../Doc/howto/functional.rst:1230 +msgid "" +"Mertz also wrote a 3-part series of articles on functional programming for " +"IBM's DeveloperWorks site; see `part 1 `__, `part 2 `__, and `part 3 `__," +msgstr "" +"Mertz a également écrit une série de 3 articles (en anglais) sur la " +"programmation fonctionnelle pour le site de IBM *DeveloperWorks*, voir la " +"`partie 1 `__, la `partie 2 `__ et la `partie 3 `__." + +#: ../Doc/howto/functional.rst:1238 +msgid "Python documentation" +msgstr "Documentation Python" + +#: ../Doc/howto/functional.rst:1240 +msgid "Documentation for the :mod:`itertools` module." +msgstr "Documentation du module :mod:`itertools`." + +#: ../Doc/howto/functional.rst:1242 +msgid "Documentation for the :mod:`functools` module." +msgstr "Documentation du module :mod:`functools`." + +#: ../Doc/howto/functional.rst:1244 +msgid "Documentation for the :mod:`operator` module." +msgstr "Documentation du module :mod:`operator`." + +#: ../Doc/howto/functional.rst:1246 +msgid ":pep:`289`: \"Generator Expressions\"" +msgstr ":pep:`289`: *\"Generator Expressions\"*" + +#: ../Doc/howto/functional.rst:1248 +msgid "" +":pep:`342`: \"Coroutines via Enhanced Generators\" describes the new " +"generator features in Python 2.5." +msgstr "" +":pep:`342`: *\"Coroutines via Enhanced Generators\"* décrit les nouvelles " +"fonctionnalités des générateurs en Python 2.5." diff --git a/howto/index.po b/howto/index.po new file mode 100644 index 000000000..b760b8210 --- /dev/null +++ b/howto/index.po @@ -0,0 +1,36 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/howto/index.rst:3 +msgid "Python HOWTOs" +msgstr "Les HOWTOs de Python" + +#: ../Doc/howto/index.rst:5 +msgid "" +"Python HOWTOs are documents that cover a single, specific topic, and attempt " +"to cover it fairly completely. Modelled on the Linux Documentation Project's " +"HOWTO collection, this collection is an effort to foster documentation " +"that's more detailed than the Python Library Reference." +msgstr "" +"les Guides Pratique Python sont des documents couvrant chacun un sujet " +"unique et spécifique de la manière la plus complète possible. Créés à partir " +"de la suite Documentation Project's HOWTO Linux, cette suite essaie de " +"promouvoir les documentations plus détaillées que la Python Library " +"Reference." + +#: ../Doc/howto/index.rst:11 +msgid "Currently, the HOWTOs are:" +msgstr "Actuellement, les HOWTOs sont :" diff --git a/howto/instrumentation.po b/howto/instrumentation.po new file mode 100644 index 000000000..d9c2eb43f --- /dev/null +++ b/howto/instrumentation.po @@ -0,0 +1,415 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-09-15 21:52+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/howto/instrumentation.rst:7 +msgid "Instrumenting CPython with DTrace and SystemTap" +msgstr "Instrumenter CPython avec DTrace et SystemTap" + +#: ../Doc/howto/instrumentation.rst:0 +msgid "author" +msgstr "auteur" + +#: ../Doc/howto/instrumentation.rst:9 +msgid "David Malcolm" +msgstr "David Malcolm" + +#: ../Doc/howto/instrumentation.rst:10 +msgid "Łukasz Langa" +msgstr "Łukasz Langa" + +#: ../Doc/howto/instrumentation.rst:12 +msgid "" +"DTrace and SystemTap are monitoring tools, each providing a way to inspect " +"what the processes on a computer system are doing. They both use domain-" +"specific languages allowing a user to write scripts which:" +msgstr "" +"*DTrace* et *SystemTap* sont des outils de surveillance, chacun fournissant " +"un moyen de d'inspecter ce que font les processus d'un système informatique. " +"Ils utilisent tous les deux des langages dédiés permettant à un utilisateur " +"d'écrire des scripts qui permettent de ::" + +#: ../Doc/howto/instrumentation.rst:16 +msgid "filter which processes are to be observed" +msgstr "Filtrer les processus à observer." + +#: ../Doc/howto/instrumentation.rst:17 +msgid "gather data from the processes of interest" +msgstr "Recueillir des données sur le processus choisi." + +#: ../Doc/howto/instrumentation.rst:18 +msgid "generate reports on the data" +msgstr "Générer des rapports sur les données." + +#: ../Doc/howto/instrumentation.rst:20 +msgid "" +"As of Python 3.6, CPython can be built with embedded \"markers\", also known " +"as \"probes\", that can be observed by a DTrace or SystemTap script, making " +"it easier to monitor what the CPython processes on a system are doing." +msgstr "" +"À partir de Python 3.6, CPython peut être compilé avec des « marqueurs » " +"intégrés, aussi appelés « sondes », qui peuvent être observés par un script " +"*DTrace* ou *SystemTap*, ce qui facilite le suivi des processus CPython." + +#: ../Doc/howto/instrumentation.rst:27 +msgid "" +"DTrace markers are implementation details of the CPython interpreter. No " +"guarantees are made about probe compatibility between versions of CPython. " +"DTrace scripts can stop working or work incorrectly without warning when " +"changing CPython versions." +msgstr "" +"Les marqueurs DTrace sont des détails d'implémentation de l'interpréteur " +"CPython. Aucune garantie n'est donnée quant à la compatibilité des sondes " +"entre les versions de CPython. Les scripts DTrace peuvent s'arrêter de " +"fonctionner ou fonctionner incorrectement sans avertissement lors du " +"changement de version de CPython." + +#: ../Doc/howto/instrumentation.rst:34 +msgid "Enabling the static markers" +msgstr "Activer les marqueurs statiques" + +#: ../Doc/howto/instrumentation.rst:36 +msgid "" +"macOS comes with built-in support for DTrace. On Linux, in order to build " +"CPython with the embedded markers for SystemTap, the SystemTap development " +"tools must be installed." +msgstr "" +"macOS est livré avec un support intégré pour *DTrace*. Sous Linux, pour " +"construire CPython avec les marqueurs embarqués pour *SystemTap*, les outils " +"de développement *SystemTap* doivent être installés." + +#: ../Doc/howto/instrumentation.rst:40 +msgid "On a Linux machine, this can be done via::" +msgstr "Sur une machine Linux, cela se fait via ::" + +#: ../Doc/howto/instrumentation.rst:44 +msgid "or::" +msgstr "ou ::" + +#: ../Doc/howto/instrumentation.rst:49 +msgid "CPython must then be configured ``--with-dtrace``:" +msgstr "CPython doit être configuré avec l'option ``--with-dtrace`` ::" + +#: ../Doc/howto/instrumentation.rst:55 +msgid "" +"On macOS, you can list available DTrace probes by running a Python process " +"in the background and listing all probes made available by the Python " +"provider::" +msgstr "" +"Sous macOS, vous pouvez lister les sondes *DTrace* disponibles en exécutant " +"un processus Python en arrière-plan et en listant toutes les sondes mises à " +"disposition par le fournisseur Python ::" + +#: ../Doc/howto/instrumentation.rst:72 +msgid "" +"On Linux, you can verify if the SystemTap static markers are present in the " +"built binary by seeing if it contains a \".note.stapsdt\" section." +msgstr "" +"Sous Linux, pour vérifier que les marqueurs statiques *SystemTap* sont " +"présents dans le binaire compilé, il suffit de regarder s'il contient une " +"section ``.note.stapsdt``." + +#: ../Doc/howto/instrumentation.rst:80 +msgid "" +"If you've built Python as a shared library (with --enable-shared), you need " +"to look instead within the shared library. For example::" +msgstr "" +"Si vous avez compilé Python en tant que bibliothèque partagée (avec ``--" +"enable-shared``), vous devez plutôt regarder dans la bibliothèque partagée. " +"Par exemple ::" + +#: ../Doc/howto/instrumentation.rst:86 +msgid "Sufficiently modern readelf can print the metadata::" +msgstr "" +"Une version suffisamment moderne de *readelf* peut afficher les " +"métadonnées ::" + +#: ../Doc/howto/instrumentation.rst:123 +msgid "" +"The above metadata contains information for SystemTap describing how it can " +"patch strategically-placed machine code instructions to enable the tracing " +"hooks used by a SystemTap script." +msgstr "" +"Les métadonnées ci-dessus contiennent des informations pour *SystemTap* " +"décrivant comment il peut mettre à jour des instructions de code machine " +"stratégiquement placées pour activer les crochets de traçage utilisés par un " +"script *SystemTap*." + +#: ../Doc/howto/instrumentation.rst:129 +msgid "Static DTrace probes" +msgstr "Sondes DTrace statiques" + +#: ../Doc/howto/instrumentation.rst:131 +msgid "" +"The following example DTrace script can be used to show the call/return " +"hierarchy of a Python script, only tracing within the invocation of a " +"function called \"start\". In other words, import-time function invocations " +"are not going to be listed:" +msgstr "" +"L'exemple suivant de script *DTrace* montre la hiérarchie d'appel/retour " +"d'un script Python, en ne traçant que l'invocation d'une fonction ``start``. " +"En d'autres termes, les appels de fonctions lors de la phase d'import ne " +"seront pas répertoriées ::" + +#: ../Doc/howto/instrumentation.rst:170 ../Doc/howto/instrumentation.rst:228 +msgid "It can be invoked like this::" +msgstr "Il peut être utilisé de cette manière ::" + +#: ../Doc/howto/instrumentation.rst:174 ../Doc/howto/instrumentation.rst:234 +msgid "The output looks like this:" +msgstr "La sortie ressemble à ceci ::" + +#: ../Doc/howto/instrumentation.rst:199 +msgid "Static SystemTap markers" +msgstr "Marqueurs statiques *SystemTap*" + +#: ../Doc/howto/instrumentation.rst:201 +msgid "" +"The low-level way to use the SystemTap integration is to use the static " +"markers directly. This requires you to explicitly state the binary file " +"containing them." +msgstr "" +"La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser " +"directement les marqueurs statiques. Pour cela vous devez pointer " +"explicitement le fichier binaire qui les contient." + +#: ../Doc/howto/instrumentation.rst:205 +msgid "" +"For example, this SystemTap script can be used to show the call/return " +"hierarchy of a Python script:" +msgstr "" +"Par exemple, ce script *SystemTap* peut être utilisé pour afficher la " +"hiérarchie d'appel/retour d'un script Python ::" + +#: ../Doc/howto/instrumentation.rst:245 +msgid "where the columns are:" +msgstr "où les colonnes sont ::" + +#: ../Doc/howto/instrumentation.rst:247 +msgid "time in microseconds since start of script" +msgstr "temps en microsecondes depuis le début du script" + +#: ../Doc/howto/instrumentation.rst:249 +msgid "name of executable" +msgstr "nom de l'exécutable" + +#: ../Doc/howto/instrumentation.rst:251 +msgid "PID of process" +msgstr "PID du processus" + +#: ../Doc/howto/instrumentation.rst:253 +msgid "" +"and the remainder indicates the call/return hierarchy as the script executes." +msgstr "" +"et le reste indique la hiérarchie d'appel/retour lorsque le script s'exécute." + +#: ../Doc/howto/instrumentation.rst:255 +msgid "" +"For a `--enable-shared` build of CPython, the markers are contained within " +"the libpython shared library, and the probe's dotted path needs to reflect " +"this. For example, this line from the above example:" +msgstr "" +"Pour une compilation `--enable-shared` de CPython, les marqueurs sont " +"contenus dans la bibliothèque partagée *libpython*, et le chemin du module " +"de la sonde doit le refléter. Par exemple, la ligne de l'exemple ci-dessus :" + +#: ../Doc/howto/instrumentation.rst:263 +msgid "should instead read:" +msgstr "doit plutôt se lire comme ::" + +#: ../Doc/howto/instrumentation.rst:269 +msgid "(assuming a debug build of CPython 3.6)" +msgstr "" +"(en supposant une version compilée avec le débogage activé de CPython 3.6)" + +#: ../Doc/howto/instrumentation.rst:273 +msgid "Available static markers" +msgstr "Marqueurs statiques disponibles" + +#: ../Doc/howto/instrumentation.rst:279 +msgid "" +"This marker indicates that execution of a Python function has begun. It is " +"only triggered for pure-Python (bytecode) functions." +msgstr "" +"Ce marqueur indique que l'exécution d'une fonction Python a commencé. Il " +"n'est déclenché que pour les fonctions en Python pur (code intermédiaire)." + +#: ../Doc/howto/instrumentation.rst:282 +msgid "" +"The filename, function name, and line number are provided back to the " +"tracing script as positional arguments, which must be accessed using ``" +"$arg1``, ``$arg2``, ``$arg3``:" +msgstr "" +"Le nom de fichier, le nom de la fonction et le numéro de ligne sont renvoyés " +"au script de traçage sous forme d'arguments positionnels, auxquels il faut " +"accéder en utilisant ``$arg1``, ``$arg2``, ``$arg3`` :" + +#: ../Doc/howto/instrumentation.rst:286 +msgid "" +"``$arg1`` : ``(const char *)`` filename, accessible using " +"``user_string($arg1)``" +msgstr "" +"``$arg1`` : ``(const char *)`` nom de fichier, accessible via " +"``user_string($arg1)``" + +#: ../Doc/howto/instrumentation.rst:288 +msgid "" +"``$arg2`` : ``(const char *)`` function name, accessible using " +"``user_string($arg2)``" +msgstr "" +"``$arg2`` : ``(const char *)`` nom de la fonction, accessible via " +"``user_string($arg2)``" + +#: ../Doc/howto/instrumentation.rst:291 +msgid "``$arg3`` : ``int`` line number" +msgstr "``$arg3`` : numéro de ligne ``int``" + +#: ../Doc/howto/instrumentation.rst:295 +msgid "" +"This marker is the converse of :c:func:`function__entry`, and indicates that " +"execution of a Python function has ended (either via ``return``, or via an " +"exception). It is only triggered for pure-Python (bytecode) functions." +msgstr "" +"Ce marqueur est l'inverse de :c:func:`function__entry`, et indique que " +"l'exécution d'une fonction Python est terminée (soit via ``return``, soit " +"via une exception). Il n'est déclenché que pour les fonctions en Python pur " +"(code intermédiaire)." + +#: ../Doc/howto/instrumentation.rst:299 +msgid "The arguments are the same as for :c:func:`function__entry`" +msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`" + +#: ../Doc/howto/instrumentation.rst:303 +msgid "" +"This marker indicates a Python line is about to be executed. It is the " +"equivalent of line-by-line tracing with a Python profiler. It is not " +"triggered within C functions." +msgstr "" +"Ce marqueur indique qu'une ligne Python est sur le point d'être exécutée. " +"C'est l'équivalent du traçage ligne par ligne avec un profileur Python. Il " +"n'est pas déclenché dans les fonctions C." + +#: ../Doc/howto/instrumentation.rst:307 +msgid "The arguments are the same as for :c:func:`function__entry`." +msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`." + +#: ../Doc/howto/instrumentation.rst:311 +msgid "" +"Fires when the Python interpreter starts a garbage collection cycle. " +"``arg0`` is the generation to scan, like :func:`gc.collect()`." +msgstr "" +"Fonction appelée lorsque l'interpréteur Python lance un cycle de collecte du " +"ramasse-miettes. ``arg0`` est la génération à scanner, comme :func:`gc." +"collect()`." + +#: ../Doc/howto/instrumentation.rst:316 +msgid "" +"Fires when the Python interpreter finishes a garbage collection cycle. " +"``arg0`` is the number of collected objects." +msgstr "" +"Fonction appelée lorsque l'interpréteur Python termine un cycle de collecte " +"du ramasse-miettes. ``Arg0`` est le nombre d'objets collectés." + +#: ../Doc/howto/instrumentation.rst:321 +msgid "" +"Fires before :mod:`importlib` attempts to find and load the module. ``arg0`` " +"is the module name." +msgstr "" +"Fonction appelée avant que :mod:`importlib` essaye de trouver et de charger " +"le module. ``arg0`` est le nom du module." + +#: ../Doc/howto/instrumentation.rst:328 +msgid "" +"Fires after :mod:`importlib`'s find_and_load function is called. ``arg0`` is " +"the module name, ``arg1`` indicates if module was successfully loaded." +msgstr "" +"Fonction appelée après que la fonction ``find_and_load`` du module :mod:" +"`importlib` soit appelée. ``arg0`` est le nom du module, ``arg1`` indique si " +"le module a été chargé avec succès." + +#: ../Doc/howto/instrumentation.rst:336 +msgid "SystemTap Tapsets" +msgstr "*Tapsets* de *SystemTap*" + +#: ../Doc/howto/instrumentation.rst:338 +msgid "" +"The higher-level way to use the SystemTap integration is to use a \"tapset" +"\": SystemTap's equivalent of a library, which hides some of the lower-level " +"details of the static markers." +msgstr "" +"La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser " +"un *« tapset »*. L'équivalent pour *SystemTap* d'une bibliothèque, qui " +"permet de masquer les détails de niveau inférieur des marqueurs statiques." + +#: ../Doc/howto/instrumentation.rst:342 +msgid "Here is a tapset file, based on a non-shared build of CPython:" +msgstr "" +"Voici un fichier *tapset*, basé sur une version non partagée compilée de " +"CPython ::" + +#: ../Doc/howto/instrumentation.rst:365 +msgid "" +"If this file is installed in SystemTap's tapset directory (e.g. ``/usr/share/" +"systemtap/tapset``), then these additional probepoints become available:" +msgstr "" +"Si ce fichier est installé dans le répertoire *tapset* de *SystemTap* (par " +"exemple ``/usr/share/systemtap/tapset``), alors ces sondes supplémentaires " +"deviennent disponibles ::" + +#: ../Doc/howto/instrumentation.rst:371 +msgid "" +"This probe point indicates that execution of a Python function has begun. It " +"is only triggered for pure-Python (bytecode) functions." +msgstr "" +"Cette sonde indique que l'exécution d'une fonction Python a commencé. Elle " +"n'est déclenchée que pour les fonctions en Python pur (code intermédiaire)." + +#: ../Doc/howto/instrumentation.rst:376 +msgid "" +"This probe point is the converse of :c:func:`python.function.return`, and " +"indicates that execution of a Python function has ended (either via " +"``return``, or via an exception). It is only triggered for pure-Python " +"(bytecode) functions." +msgstr "" +"Cette sonde est l'inverse de :c:func:`python.function.return`, et indique " +"que l'exécution d'une fonction Python est terminée (soit via ``return``, " +"soit via une exception). Elle est uniquement déclenchée pour les fonctions " +"en Python pur (code intermédiaire)." + +#: ../Doc/howto/instrumentation.rst:383 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/howto/instrumentation.rst:384 +msgid "" +"This SystemTap script uses the tapset above to more cleanly implement the " +"example given above of tracing the Python function-call hierarchy, without " +"needing to directly name the static markers:" +msgstr "" +"Ce script *SystemTap* utilise le *tapset* ci-dessus pour implémenter plus " +"proprement l'exemple précédent de traçage de la hiérarchie des appels de " +"fonctions Python, sans avoir besoin de nommer directement les marqueurs " +"statiques ::" + +#: ../Doc/howto/instrumentation.rst:403 +msgid "" +"The following script uses the tapset above to provide a top-like view of all " +"running CPython code, showing the top 20 most frequently-entered bytecode " +"frames, each second, across the whole system:" +msgstr "" +"Le script suivant utilise le *tapset* ci-dessus pour fournir une vue de " +"l'ensemble du code CPython en cours d'exécution, montrant les 20 cadres de " +"la pile d'appel (*stack frames*) les plus fréquemment utilisées du code " +"intermédiaire, chaque seconde, sur l'ensemble du système ::" diff --git a/howto/ipaddress.po b/howto/ipaddress.po new file mode 100644 index 000000000..2511a330b --- /dev/null +++ b/howto/ipaddress.po @@ -0,0 +1,424 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: 2019-01-11 23:02+0100\n" +"Last-Translator: BAILLY Geoffroy \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/howto/ipaddress.rst:9 +msgid "An introduction to the ipaddress module" +msgstr "Introduction au module ``ipaddress``" + +#: ../Doc/howto/ipaddress.rst:0 +msgid "author" +msgstr "auteur" + +#: ../Doc/howto/ipaddress.rst:11 +msgid "Peter Moody" +msgstr "Peter Moody" + +#: ../Doc/howto/ipaddress.rst:12 +msgid "Nick Coghlan" +msgstr "Nick Coghlan" + +#: ../Doc/howto/ipaddress.rst:None +msgid "Overview" +msgstr "Aperçu" + +#: ../Doc/howto/ipaddress.rst:16 +msgid "" +"This document aims to provide a gentle introduction to the :mod:`ipaddress` " +"module. It is aimed primarily at users that aren't already familiar with IP " +"networking terminology, but may also be useful to network engineers wanting " +"an overview of how :mod:`ipaddress` represents IP network addressing " +"concepts." +msgstr "" +"Ce document vise à fournir une introduction rapide au module :mod:" +"`ipaddress`. Il est destiné aux utilisateurs qui ne sont pas familiers avec " +"la terminologie des réseaux IP, mais il peut aussi être utile aux ingénieurs " +"réseaux qui cherchent un aperçu de la représentation des concepts " +"d'adressage IP avec le module :mod:`ipaddress`." + +#: ../Doc/howto/ipaddress.rst:24 +msgid "Creating Address/Network/Interface objects" +msgstr "Créer un objet Adresse/Réseau/Interface" + +#: ../Doc/howto/ipaddress.rst:26 +msgid "" +"Since :mod:`ipaddress` is a module for inspecting and manipulating IP " +"addresses, the first thing you'll want to do is create some objects. You " +"can use :mod:`ipaddress` to create objects from strings and integers." +msgstr "" +"Vu que :mod:`ipaddress` est un module pour inspecter et manipuler des " +"adresses IP, la première chose que vous voudrez faire est de créer quelques " +"objets. Vous pouvez utiliser :mod:`ipaddress` pour créer des objets à partir " +"de chaînes de caractères et d'entiers." + +#: ../Doc/howto/ipaddress.rst:32 +msgid "A Note on IP Versions" +msgstr "Note sur les versions d'IP" + +#: ../Doc/howto/ipaddress.rst:34 +msgid "" +"For readers that aren't particularly familiar with IP addressing, it's " +"important to know that the Internet Protocol is currently in the process of " +"moving from version 4 of the protocol to version 6. This transition is " +"occurring largely because version 4 of the protocol doesn't provide enough " +"addresses to handle the needs of the whole world, especially given the " +"increasing number of devices with direct connections to the internet." +msgstr "" +"Pour les lecteurs qui ne sont pas particulièrement familiers avec " +"l'adressage IP il est important de savoir que le protocole IP est " +"actuellement en évolution de la version 4 du protocole vers la version 6. " +"Cette transition est largement due au fait que la version 4 du protocole ne " +"fournit pas assez d'adresses pour gérer les besoins du monde entier, " +"particulièrement à cause de la croissance des périphériques directement " +"connectés à Internet." + +#: ../Doc/howto/ipaddress.rst:41 +msgid "" +"Explaining the details of the differences between the two versions of the " +"protocol is beyond the scope of this introduction, but readers need to at " +"least be aware that these two versions exist, and it will sometimes be " +"necessary to force the use of one version or the other." +msgstr "" +"Expliquer les détails des différences entre les deux versions du protocole " +"est au-delà du périmètre de cette introduction, mais les lecteurs doivent au " +"moins être avertis de l'existence de ces deux versions et qu'il sera " +"nécessaire de forcer l'utilisation d'une version ou de l'autre." + +#: ../Doc/howto/ipaddress.rst:48 +msgid "IP Host Addresses" +msgstr "Adresses IP des hôtes" + +#: ../Doc/howto/ipaddress.rst:50 +msgid "" +"Addresses, often referred to as \"host addresses\" are the most basic unit " +"when working with IP addressing. The simplest way to create addresses is to " +"use the :func:`ipaddress.ip_address` factory function, which automatically " +"determines whether to create an IPv4 or IPv6 address based on the passed in " +"value:" +msgstr "" +"Les adresses, souvent dénommées \"adresses hôtes\" sont les unités les plus " +"basiques quand on travaille avec l'adressage IP. Le moyen le plus simple de " +"créer des adresses est d'utiliser la fonction de fabrication :func:" +"`ipaddress.ip_address` qui va automatiquement déterminer quoi créer entre " +"une adresse IPv4 ou une adresse IPv6 en fonction de la valeur qui est " +"transmise :" + +#: ../Doc/howto/ipaddress.rst:61 +msgid "" +"Addresses can also be created directly from integers. Values that will fit " +"within 32 bits are assumed to be IPv4 addresses::" +msgstr "" +"Les adresses peuvent être créées directement depuis des entiers. Les valeurs " +"qui correspondent à des entiers 32 bits sont assimilées à des adresses " +"IPv4 ::" + +#: ../Doc/howto/ipaddress.rst:69 +msgid "" +"To force the use of IPv4 or IPv6 addresses, the relevant classes can be " +"invoked directly. This is particularly useful to force creation of IPv6 " +"addresses for small integers::" +msgstr "" +"Pour forcer l'utilisation d'IPv4 ou d'IPv6, la classe appropriée peut être " +"invoquée directement. C'est particulièrement utile pour forcer la création " +"d'adresse IPv6 pour de petits entiers ::" + +#: ../Doc/howto/ipaddress.rst:82 +msgid "Defining Networks" +msgstr "Définir des réseaux" + +#: ../Doc/howto/ipaddress.rst:84 +msgid "" +"Host addresses are usually grouped together into IP networks, so :mod:" +"`ipaddress` provides a way to create, inspect and manipulate network " +"definitions. IP network objects are constructed from strings that define the " +"range of host addresses that are part of that network. The simplest form for " +"that information is a \"network address/network prefix\" pair, where the " +"prefix defines the number of leading bits that are compared to determine " +"whether or not an address is part of the network and the network address " +"defines the expected value of those bits." +msgstr "" +"Les adresses hôtes sont souvent regroupées dans des réseaux IP, donc :mod:" +"`ipaddress` fournit un moyen de créer, d'inspecter et de manipuler les " +"définitions des réseaux. Les objets correspondants aux réseaux IP sont " +"construits à partir de chaînes de caractères qui définissent le périmètre " +"des adresses hôtes qui font partie de ce réseau. La forme la plus simple de " +"cette information est un couple \"adresse réseau/préfixe réseau\" , où le " +"préfixe définit le nombre de bits de tête qui sont comparés pour déterminer " +"si l'adresse fait ou ne fait pas partie de ce réseau et l'adresse réseau " +"définit la valeur attendue pour ces bits." + +#: ../Doc/howto/ipaddress.rst:93 +msgid "" +"As for addresses, a factory function is provided that determines the correct " +"IP version automatically::" +msgstr "" +"Tout comme pour les adresses, une fonction de fabrication est disponible et " +"détermine automatiquement la version correcte d'IP ::" + +#: ../Doc/howto/ipaddress.rst:101 +msgid "" +"Network objects cannot have any host bits set. The practical effect of this " +"is that ``192.0.2.1/24`` does not describe a network. Such definitions are " +"referred to as interface objects since the ip-on-a-network notation is " +"commonly used to describe network interfaces of a computer on a given " +"network and are described further in the next section." +msgstr "" +"Il est interdit pour des objets réseaux d'avoir des bits affectés à leurs " +"hôtes mis à 1. Ainsi la chaine de caractères ``192.0.2.1/24`` ne peut " +"définir un réseau. Ces objets réseaux sont aussi appelés objets d'interfaces " +"car la notation ``adresse ip / réseau`` est couramment utilisée pour décrire " +"les interfaces réseau d'un ordinateur sur un réseau donné (nous les " +"détaillons plus loin dans cette section)." + +#: ../Doc/howto/ipaddress.rst:107 +msgid "" +"By default, attempting to create a network object with host bits set will " +"result in :exc:`ValueError` being raised. To request that the additional " +"bits instead be coerced to zero, the flag ``strict=False`` can be passed to " +"the constructor::" +msgstr "" +"Par défaut, tenter de créer un objet réseau avec des bits d'hôtes mis à 1 " +"lève une :exc:`ValueError`. Pour demander que les bits supplémentaires " +"soient plutôt forcés à zéro, l'attribut ``strict=False`` peut être passé au " +"constructeur ::" + +#: ../Doc/howto/ipaddress.rst:119 +msgid "" +"While the string form offers significantly more flexibility, networks can " +"also be defined with integers, just like host addresses. In this case, the " +"network is considered to contain only the single address identified by the " +"integer, so the network prefix includes the entire network address::" +msgstr "" +"Alors que la forme textuelle offre davantage de flexibilité les réseaux " +"peuvent aussi être définis avec des entiers, tout comme les adresses hôtes. " +"Dans ce cas le réseau est considéré comme contenant uniquement l'adresse " +"identifiée par l'entier, donc le préfixe réseau inclut l'adresse du réseau " +"complet ::" + +#: ../Doc/howto/ipaddress.rst:129 +msgid "" +"As with addresses, creation of a particular kind of network can be forced by " +"calling the class constructor directly instead of using the factory function." +msgstr "" +"Comme avec les adresses, la création d'un type de réseau particulier peut " +"être forcée en appelant directement le constructeur de la classe plutôt que " +"d'utiliser la fonction de fabrication." + +#: ../Doc/howto/ipaddress.rst:135 +msgid "Host Interfaces" +msgstr "Interfaces des hôtes" + +#: ../Doc/howto/ipaddress.rst:137 +msgid "" +"As mentioned just above, if you need to describe an address on a particular " +"network, neither the address nor the network classes are sufficient. " +"Notation like ``192.0.2.1/24`` is commonly used by network engineers and the " +"people who write tools for firewalls and routers as shorthand for \"the host " +"``192.0.2.1`` on the network ``192.0.2.0/24``\", Accordingly, :mod:" +"`ipaddress` provides a set of hybrid classes that associate an address with " +"a particular network. The interface for creation is identical to that for " +"defining network objects, except that the address portion isn't constrained " +"to being a network address." +msgstr "" +"Comme mentionné ci-dessus, si vous avez besoin de décrire une adresse sur un " +"réseau particulier, ni l'adresse ni les classes réseaux ne sont suffisantes. " +"Les notations comme ``192.0.2.1/24`` sont généralement utilisées par les " +"ingénieurs réseaux et les personnes qui écrivent des outils pour les pare-" +"feu et les routeurs comme raccourci pour \" l'hôte ``192.0.2.1`` sur le " +"réseau ``192.0.2.0/24``\", par conséquent, :mod:`ipaddress` fournit un " +"ensemble de classes hybrides qui associent une adresse à un réseau " +"particulier. L'interface pour la création est identique à celle pour la " +"définition des objets réseaux, excepté que la partie adresse n'est pas " +"contrainte d'être une adresse réseau." + +#: ../Doc/howto/ipaddress.rst:152 +msgid "" +"Integer inputs are accepted (as with networks), and use of a particular IP " +"version can be forced by calling the relevant constructor directly." +msgstr "" +"Les entiers sont acceptés en entrée (comme avec les réseaux) et " +"l'utilisation d'une version d'IP peut être forcée en appelant directement le " +"constructeur adapté." + +#: ../Doc/howto/ipaddress.rst:157 +msgid "Inspecting Address/Network/Interface Objects" +msgstr "Inspecter les objets Address/Network/Interface" + +#: ../Doc/howto/ipaddress.rst:159 +msgid "" +"You've gone to the trouble of creating an IPv(4|6)(Address|Network|" +"Interface) object, so you probably want to get information about it. :mod:" +"`ipaddress` tries to make doing this easy and intuitive." +msgstr "" +"Vous vous êtes donné la peine de créer un objet (adresse|réseau|" +"interface)IPv(4|6), donc vous voudrez probablement des informations sur " +"celui-ci. :mod:`ipaddress` essaie de rendre ceci facile et intuitif." + +#: ../Doc/howto/ipaddress.rst:163 +msgid "Extracting the IP version::" +msgstr "Extraire la version du protocole IP ::" + +#: ../Doc/howto/ipaddress.rst:172 +msgid "Obtaining the network from an interface::" +msgstr "Obtenir le réseau à partir de l'interface ::" + +#: ../Doc/howto/ipaddress.rst:181 +msgid "Finding out how many individual addresses are in a network::" +msgstr "Trouver combien d'adresses individuelles sont dans un réseau ::" + +#: ../Doc/howto/ipaddress.rst:190 +msgid "Iterating through the \"usable\" addresses on a network::" +msgstr "Itération sur chacune des adresses \"utilisables\" d'un réseau ::" + +#: ../Doc/howto/ipaddress.rst:205 +msgid "" +"Obtaining the netmask (i.e. set bits corresponding to the network prefix) or " +"the hostmask (any bits that are not part of the netmask):" +msgstr "" +"Obtenir le masque réseau (définit les bits correspondant au préfixe du " +"réseau) ou le masque de l'hôte (tous les bits qui ne sont pas dans le masque " +"du réseau) :" + +#: ../Doc/howto/ipaddress.rst:220 +msgid "Exploding or compressing the address::" +msgstr "Éclater ou compresser l'adresse ::" + +#: ../Doc/howto/ipaddress.rst:231 +msgid "" +"While IPv4 doesn't support explosion or compression, the associated objects " +"still provide the relevant properties so that version neutral code can " +"easily ensure the most concise or most verbose form is used for IPv6 " +"addresses while still correctly handling IPv4 addresses." +msgstr "" +"Alors que IPv4 ne gère pas l'éclatement ou la compression, les objets " +"associés fournissent toujours les propriétés adaptées pour que du code, le " +"plus neutre possible vis-à-vis de la version, puisse facilement s'assurer " +"que la forme la plus concise ou la plus verbeuse utilisée pour des adresses " +"IPv6 va aussi fonctionner pour gérer des adresses IPv4." + +#: ../Doc/howto/ipaddress.rst:238 +msgid "Networks as lists of Addresses" +msgstr "Réseaux en tant que listes d'adresses" + +#: ../Doc/howto/ipaddress.rst:240 +msgid "" +"It's sometimes useful to treat networks as lists. This means it is possible " +"to index them like this::" +msgstr "" +"Il est parfois utile de traiter les réseaux en tant que listes. Cela " +"signifie qu'il est possible de les indexer comme ça ::" + +#: ../Doc/howto/ipaddress.rst:253 +msgid "" +"It also means that network objects lend themselves to using the list " +"membership test syntax like this::" +msgstr "" +"Cela signifie aussi que les objets réseaux se prêtent bien à l'utilisation " +"de la syntaxe suivante pour le test d'appartenance à la liste ::" + +#: ../Doc/howto/ipaddress.rst:259 +msgid "Containment testing is done efficiently based on the network prefix::" +msgstr "" +"En se basant sur le préfixe réseau on peut efficacement tester " +"l'appartenance ::" + +#: ../Doc/howto/ipaddress.rst:269 +msgid "Comparisons" +msgstr "Comparaisons" + +#: ../Doc/howto/ipaddress.rst:271 +msgid "" +":mod:`ipaddress` provides some simple, hopefully intuitive ways to compare " +"objects, where it makes sense::" +msgstr "" +":mod:`ipaddress` fournit des moyens simples et intuitifs (du moins nous " +"l'espérons) pour comparer les objets, quand cela fait sens ::" + +#: ../Doc/howto/ipaddress.rst:277 +msgid "" +"A :exc:`TypeError` exception is raised if you try to compare objects of " +"different versions or different types." +msgstr "" +"Une exception :exc:`TypeError` est levée si vous tentez de comparer des " +"objets de différentes versions ou de types différents." + +#: ../Doc/howto/ipaddress.rst:282 +msgid "Using IP Addresses with other modules" +msgstr "Utiliser des adresse IP avec d'autre modules" + +#: ../Doc/howto/ipaddress.rst:284 +msgid "" +"Other modules that use IP addresses (such as :mod:`socket`) usually won't " +"accept objects from this module directly. Instead, they must be coerced to " +"an integer or string that the other module will accept::" +msgstr "" +"Les autres modules qui utilisent des adresses IP (comme :mod:`socket`) " +"n'acceptent généralement pas les objets de ce module directement. Au lieu de " +"cela, ils doivent être convertis en entiers ou en chaînes de caractères que " +"l'autre module va accepter ::" + +#: ../Doc/howto/ipaddress.rst:296 +msgid "Getting more detail when instance creation fails" +msgstr "Obtenir plus de détails lors de l'échec de la création de l'instance" + +#: ../Doc/howto/ipaddress.rst:298 +msgid "" +"When creating address/network/interface objects using the version-agnostic " +"factory functions, any errors will be reported as :exc:`ValueError` with a " +"generic error message that simply says the passed in value was not " +"recognized as an object of that type. The lack of a specific error is " +"because it's necessary to know whether the value is *supposed* to be IPv4 or " +"IPv6 in order to provide more detail on why it has been rejected." +msgstr "" +"Lors de la création des objets Adresse/Réseau/Interface en utilisant les " +"fonctions de fabrication agnostiques à la version, n'importe quelle erreur " +"va être signalée en tant que :exc:`ValueError` avec un message d'erreur " +"générique qui dit simplement que la valeur entrée n'a pas été reconnue en " +"tant qu'objet de ce type. Pour fournir plus de détails sur la cause du " +"rejet, il faudrait reconnaitre si la valeur est *supposée* être une adresse " +"IPv4 ou IPv6." + +#: ../Doc/howto/ipaddress.rst:305 +msgid "" +"To support use cases where it is useful to have access to this additional " +"detail, the individual class constructors actually raise the :exc:" +"`ValueError` subclasses :exc:`ipaddress.AddressValueError` and :exc:" +"`ipaddress.NetmaskValueError` to indicate exactly which part of the " +"definition failed to parse correctly." +msgstr "" +"Pour gérer les cas d'usage où il est utile d'avoir accès à ces détails, les " +"constructeurs individuels des classes lèvent actuellement les sous-classes " +"de :exc:`ValueError`, :exc:`ipaddress.AddressValueError` et :exc:`ipaddress." +"NetmaskValueError` pour indiquer précisément quelle partie de la définition " +"n'a pas pu être correctement traitée." + +#: ../Doc/howto/ipaddress.rst:311 +msgid "" +"The error messages are significantly more detailed when using the class " +"constructors directly. For example::" +msgstr "" +"Les messages d'erreur sont particulièrement plus détaillés lors de " +"l'utilisation directe du constructeur. Par exemple ::" + +#: ../Doc/howto/ipaddress.rst:332 +msgid "" +"However, both of the module specific exceptions have :exc:`ValueError` as " +"their parent class, so if you're not concerned with the particular type of " +"error, you can still write code like the following::" +msgstr "" +"Cependant, les exceptions spécifiques des deux modules ont :exc:`ValueError` " +"comme classe parent ; donc si vous n'êtes pas intéressé par le type " +"particulier d'erreur remontée, vous pouvez écrire votre code comme suit ::" diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po new file mode 100644 index 000000000..f12524d87 --- /dev/null +++ b/howto/logging-cookbook.po @@ -0,0 +1,1389 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/howto/logging-cookbook.rst:5 +msgid "Logging Cookbook" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/howto/logging-cookbook.rst:7 +msgid "Vinay Sajip " +msgstr "Vinay Sajip " + +#: ../Doc/howto/logging-cookbook.rst:9 +msgid "" +"This page contains a number of recipes related to logging, which have been " +"found useful in the past." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:15 +msgid "Using logging in multiple modules" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:17 +msgid "" +"Multiple calls to ``logging.getLogger('someLogger')`` return a reference to " +"the same logger object. This is true not only within the same module, but " +"also across modules as long as it is in the same Python interpreter " +"process. It is true for references to the same object; additionally, " +"application code can define and configure a parent logger in one module and " +"create (but not configure) a child logger in a separate module, and all " +"logger calls to the child will pass up to the parent. Here is a main " +"module::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:55 +msgid "Here is the auxiliary module::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:75 +msgid "The output looks like this:" +msgstr "La sortie ressemble à ceci ::" + +#: ../Doc/howto/logging-cookbook.rst:101 +msgid "Logging from multiple threads" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:103 +msgid "" +"Logging from multiple threads requires no special effort. The following " +"example shows logging from the main (initial) thread and another thread::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:132 +msgid "When run, the script should print something like the following:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:154 +msgid "" +"This shows the logging output interspersed as one might expect. This " +"approach works for more threads than shown here, of course." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:158 +msgid "Multiple handlers and formatters" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:160 +msgid "" +"Loggers are plain Python objects. The :meth:`~Logger.addHandler` method has " +"no minimum or maximum quota for the number of handlers you may add. " +"Sometimes it will be beneficial for an application to log all messages of " +"all severities to a text file while simultaneously logging errors or above " +"to the console. To set this up, simply configure the appropriate handlers. " +"The logging calls in the application code will remain unchanged. Here is a " +"slight modification to the previous simple module-based configuration " +"example::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:193 +msgid "" +"Notice that the 'application' code does not care about multiple handlers. " +"All that changed was the addition and configuration of a new handler named " +"*fh*." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:196 +msgid "" +"The ability to create new handlers with higher- or lower-severity filters " +"can be very helpful when writing and testing an application. Instead of " +"using many ``print`` statements for debugging, use ``logger.debug``: Unlike " +"the print statements, which you will have to delete or comment out later, " +"the logger.debug statements can remain intact in the source code and remain " +"dormant until you need them again. At that time, the only change that needs " +"to happen is to modify the severity level of the logger and/or handler to " +"debug." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:207 +msgid "Logging to multiple destinations" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:209 +msgid "" +"Let's say you want to log to console and file with different message formats " +"and in differing circumstances. Say you want to log messages with levels of " +"DEBUG and higher to file, and those messages at level INFO and higher to the " +"console. Let's also assume that the file should contain timestamps, but the " +"console messages should not. Here's how you can achieve this::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:247 +msgid "When you run this, on the console you will see" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:256 +msgid "and in the file you will see something like" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:266 +msgid "" +"As you can see, the DEBUG message only shows up in the file. The other " +"messages are sent to both destinations." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:269 +msgid "" +"This example uses console and file handlers, but you can use any number and " +"combination of handlers you choose." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:274 +msgid "Configuration server example" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:276 +msgid "Here is an example of a module using the logging configuration server::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:307 +msgid "" +"And here is a script that takes a filename and sends that file to the " +"server, properly preceded with the binary-encoded length, as the new logging " +"configuration::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:330 +msgid "Dealing with handlers that block" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:334 +msgid "" +"Sometimes you have to get your logging handlers to do their work without " +"blocking the thread you're logging from. This is common in Web applications, " +"though of course it also occurs in other scenarios." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:338 +msgid "" +"A common culprit which demonstrates sluggish behaviour is the :class:" +"`SMTPHandler`: sending emails can take a long time, for a number of reasons " +"outside the developer's control (for example, a poorly performing mail or " +"network infrastructure). But almost any network-based handler can block: " +"Even a :class:`SocketHandler` operation may do a DNS query under the hood " +"which is too slow (and this query can be deep in the socket library code, " +"below the Python layer, and outside your control)." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:346 +msgid "" +"One solution is to use a two-part approach. For the first part, attach only " +"a :class:`QueueHandler` to those loggers which are accessed from performance-" +"critical threads. They simply write to their queue, which can be sized to a " +"large enough capacity or initialized with no upper bound to their size. The " +"write to the queue will typically be accepted quickly, though you will " +"probably need to catch the :exc:`queue.Full` exception as a precaution in " +"your code. If you are a library developer who has performance-critical " +"threads in their code, be sure to document this (together with a suggestion " +"to attach only ``QueueHandlers`` to your loggers) for the benefit of other " +"developers who will use your code." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:357 +msgid "" +"The second part of the solution is :class:`QueueListener`, which has been " +"designed as the counterpart to :class:`QueueHandler`. A :class:" +"`QueueListener` is very simple: it's passed a queue and some handlers, and " +"it fires up an internal thread which listens to its queue for LogRecords " +"sent from ``QueueHandlers`` (or any other source of ``LogRecords``, for that " +"matter). The ``LogRecords`` are removed from the queue and passed to the " +"handlers for processing." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:365 +msgid "" +"The advantage of having a separate :class:`QueueListener` class is that you " +"can use the same instance to service multiple ``QueueHandlers``. This is " +"more resource-friendly than, say, having threaded versions of the existing " +"handler classes, which would eat up one thread per handler for no particular " +"benefit." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:370 +msgid "An example of using these two classes follows (imports omitted)::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:388 +msgid "which, when run, will produce:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:394 +msgid "" +"Prior to Python 3.5, the :class:`QueueListener` always passed every message " +"received from the queue to every handler it was initialized with. (This was " +"because it was assumed that level filtering was all done on the other side, " +"where the queue is filled.) From 3.5 onwards, this behaviour can be changed " +"by passing a keyword argument ``respect_handler_level=True`` to the " +"listener's constructor. When this is done, the listener compares the level " +"of each message with the handler's level, and only passes a message to a " +"handler if it's appropriate to do so." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:407 +msgid "Sending and receiving logging events across a network" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:409 +msgid "" +"Let's say you want to send logging events across a network, and handle them " +"at the receiving end. A simple way of doing this is attaching a :class:" +"`SocketHandler` instance to the root logger at the sending end::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:437 +msgid "" +"At the receiving end, you can set up a receiver using the :mod:" +"`socketserver` module. Here is a basic working example::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:525 +msgid "" +"First run the server, and then the client. On the client side, nothing is " +"printed on the console; on the server side, you should see something like:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:537 +msgid "" +"Note that there are some security issues with pickle in some scenarios. If " +"these affect you, you can use an alternative serialization scheme by " +"overriding the :meth:`~handlers.SocketHandler.makePickle` method and " +"implementing your alternative there, as well as adapting the above script to " +"use your alternative serialization." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:547 +msgid "Adding contextual information to your logging output" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:549 +msgid "" +"Sometimes you want logging output to contain contextual information in " +"addition to the parameters passed to the logging call. For example, in a " +"networked application, it may be desirable to log client-specific " +"information in the log (e.g. remote client's username, or IP address). " +"Although you could use the *extra* parameter to achieve this, it's not " +"always convenient to pass the information in this way. While it might be " +"tempting to create :class:`Logger` instances on a per-connection basis, this " +"is not a good idea because these instances are not garbage collected. While " +"this is not a problem in practice, when the number of :class:`Logger` " +"instances is dependent on the level of granularity you want to use in " +"logging an application, it could be hard to manage if the number of :class:" +"`Logger` instances becomes effectively unbounded." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:564 +msgid "Using LoggerAdapters to impart contextual information" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:566 +msgid "" +"An easy way in which you can pass contextual information to be output along " +"with logging event information is to use the :class:`LoggerAdapter` class. " +"This class is designed to look like a :class:`Logger`, so that you can call :" +"meth:`debug`, :meth:`info`, :meth:`warning`, :meth:`error`, :meth:" +"`exception`, :meth:`critical` and :meth:`log`. These methods have the same " +"signatures as their counterparts in :class:`Logger`, so you can use the two " +"types of instances interchangeably." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:574 +msgid "" +"When you create an instance of :class:`LoggerAdapter`, you pass it a :class:" +"`Logger` instance and a dict-like object which contains your contextual " +"information. When you call one of the logging methods on an instance of :" +"class:`LoggerAdapter`, it delegates the call to the underlying instance of :" +"class:`Logger` passed to its constructor, and arranges to pass the " +"contextual information in the delegated call. Here's a snippet from the code " +"of :class:`LoggerAdapter`::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:590 +msgid "" +"The :meth:`~LoggerAdapter.process` method of :class:`LoggerAdapter` is where " +"the contextual information is added to the logging output. It's passed the " +"message and keyword arguments of the logging call, and it passes back " +"(potentially) modified versions of these to use in the call to the " +"underlying logger. The default implementation of this method leaves the " +"message alone, but inserts an 'extra' key in the keyword argument whose " +"value is the dict-like object passed to the constructor. Of course, if you " +"had passed an 'extra' keyword argument in the call to the adapter, it will " +"be silently overwritten." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:599 +msgid "" +"The advantage of using 'extra' is that the values in the dict-like object " +"are merged into the :class:`LogRecord` instance's __dict__, allowing you to " +"use customized strings with your :class:`Formatter` instances which know " +"about the keys of the dict-like object. If you need a different method, e.g. " +"if you want to prepend or append the contextual information to the message " +"string, you just need to subclass :class:`LoggerAdapter` and override :meth:" +"`~LoggerAdapter.process` to do what you need. Here is a simple example::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:615 +msgid "which you can use like this::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:620 +msgid "" +"Then any events that you log to the adapter will have the value of " +"``some_conn_id`` prepended to the log messages." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:624 +msgid "Using objects other than dicts to pass contextual information" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:626 +msgid "" +"You don't need to pass an actual dict to a :class:`LoggerAdapter` - you " +"could pass an instance of a class which implements ``__getitem__`` and " +"``__iter__`` so that it looks like a dict to logging. This would be useful " +"if you want to generate values dynamically (whereas the values in a dict " +"would be constant)." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:635 +msgid "Using Filters to impart contextual information" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:637 +msgid "" +"You can also add contextual information to log output using a user-defined :" +"class:`Filter`. ``Filter`` instances are allowed to modify the " +"``LogRecords`` passed to them, including adding additional attributes which " +"can then be output using a suitable format string, or if needed a custom :" +"class:`Formatter`." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:642 +msgid "" +"For example in a web application, the request being processed (or at least, " +"the interesting parts of it) can be stored in a threadlocal (:class:" +"`threading.local`) variable, and then accessed from a ``Filter`` to add, " +"say, information from the request - say, the remote IP address and remote " +"user's username - to the ``LogRecord``, using the attribute names 'ip' and " +"'user' as in the ``LoggerAdapter`` example above. In that case, the same " +"format string can be used to get similar output to that shown above. Here's " +"an example script::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:688 +msgid "which, when run, produces something like:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:709 +msgid "Logging to a single file from multiple processes" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:711 +msgid "" +"Although logging is thread-safe, and logging to a single file from multiple " +"threads in a single process *is* supported, logging to a single file from " +"*multiple processes* is *not* supported, because there is no standard way to " +"serialize access to a single file across multiple processes in Python. If " +"you need to log to a single file from multiple processes, one way of doing " +"this is to have all the processes log to a :class:`~handlers.SocketHandler`, " +"and have a separate process which implements a socket server which reads " +"from the socket and logs to file. (If you prefer, you can dedicate one " +"thread in one of the existing processes to perform this function.) :ref:" +"`This section ` documents this approach in more detail and " +"includes a working socket receiver which can be used as a starting point for " +"you to adapt in your own applications." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:724 +msgid "" +"If you are using a recent version of Python which includes the :mod:" +"`multiprocessing` module, you could write your own handler which uses the :" +"class:`~multiprocessing.Lock` class from this module to serialize access to " +"the file from your processes. The existing :class:`FileHandler` and " +"subclasses do not make use of :mod:`multiprocessing` at present, though they " +"may do so in the future. Note that at present, the :mod:`multiprocessing` " +"module does not provide working lock functionality on all platforms (see " +"https://bugs.python.org/issue3770)." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:735 +msgid "" +"Alternatively, you can use a ``Queue`` and a :class:`QueueHandler` to send " +"all logging events to one of the processes in your multi-process " +"application. The following example script demonstrates how you can do this; " +"in the example a separate listener process listens for events sent by other " +"processes and logs them according to its own logging configuration. Although " +"the example only demonstrates one way of doing it (for example, you may want " +"to use a listener thread rather than a separate listener process -- the " +"implementation would be analogous) it does allow for completely different " +"logging configurations for the listener and the other processes in your " +"application, and can be used as the basis for code meeting your own specific " +"requirements::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:851 +msgid "" +"A variant of the above script keeps the logging in the main process, in a " +"separate thread::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:946 +msgid "" +"This variant shows how you can e.g. apply configuration for particular " +"loggers - e.g. the ``foo`` logger has a special handler which stores all " +"events in the ``foo`` subsystem in a file ``mplog-foo.log``. This will be " +"used by the logging machinery in the main process (even though the logging " +"events are generated in the worker processes) to direct the messages to the " +"appropriate destinations." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:953 +msgid "Using file rotation" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:958 +msgid "" +"Sometimes you want to let a log file grow to a certain size, then open a new " +"file and log to that. You may want to keep a certain number of these files, " +"and when that many files have been created, rotate the files so that the " +"number of files and the size of the files both remain bounded. For this " +"usage pattern, the logging package provides a :class:`~handlers." +"RotatingFileHandler`::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:990 +msgid "" +"The result should be 6 separate files, each with part of the log history for " +"the application:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1002 +msgid "" +"The most current file is always :file:`logging_rotatingfile_example.out`, " +"and each time it reaches the size limit it is renamed with the suffix " +"``.1``. Each of the existing backup files is renamed to increment the suffix " +"(``.1`` becomes ``.2``, etc.) and the ``.6`` file is erased." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1007 +msgid "" +"Obviously this example sets the log length much too small as an extreme " +"example. You would want to set *maxBytes* to an appropriate value." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1013 +msgid "Use of alternative formatting styles" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1015 +msgid "" +"When logging was added to the Python standard library, the only way of " +"formatting messages with variable content was to use the %-formatting " +"method. Since then, Python has gained two new formatting approaches: :class:" +"`string.Template` (added in Python 2.4) and :meth:`str.format` (added in " +"Python 2.6)." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1021 +msgid "" +"Logging (as of 3.2) provides improved support for these two additional " +"formatting styles. The :class:`Formatter` class been enhanced to take an " +"additional, optional keyword parameter named ``style``. This defaults to " +"``'%'``, but other possible values are ``'{'`` and ``'$'``, which correspond " +"to the other two formatting styles. Backwards compatibility is maintained by " +"default (as you would expect), but by explicitly specifying a style " +"parameter, you get the ability to specify format strings which work with :" +"meth:`str.format` or :class:`string.Template`. Here's an example console " +"session to show the possibilities:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1055 +msgid "" +"Note that the formatting of logging messages for final output to logs is " +"completely independent of how an individual logging message is constructed. " +"That can still use %-formatting, as shown here::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1063 +msgid "" +"Logging calls (``logger.debug()``, ``logger.info()`` etc.) only take " +"positional parameters for the actual logging message itself, with keyword " +"parameters used only for determining options for how to handle the actual " +"logging call (e.g. the ``exc_info`` keyword parameter to indicate that " +"traceback information should be logged, or the ``extra`` keyword parameter " +"to indicate additional contextual information to be added to the log). So " +"you cannot directly make logging calls using :meth:`str.format` or :class:" +"`string.Template` syntax, because internally the logging package uses %-" +"formatting to merge the format string and the variable arguments. There " +"would be no changing this while preserving backward compatibility, since all " +"logging calls which are out there in existing code will be using %-format " +"strings." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1076 +msgid "" +"There is, however, a way that you can use {}- and $- formatting to construct " +"your individual log messages. Recall that for a message you can use an " +"arbitrary object as a message format string, and that the logging package " +"will call ``str()`` on that object to get the actual format string. Consider " +"the following two classes::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1100 +msgid "" +"Either of these can be used in place of a format string, to allow {}- or $-" +"formatting to be used to build the actual \"message\" part which appears in " +"the formatted log output in place of \"%(message)s\" or \"{message}\" or " +"\"$message\". It's a little unwieldy to use the class names whenever you " +"want to log something, but it's quite palatable if you use an alias such as " +"__ (double underscore --- not to be confused with _, the single underscore " +"used as a synonym/alias for :func:`gettext.gettext` or its brethren)." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1108 +msgid "" +"The above classes are not included in Python, though they're easy enough to " +"copy and paste into your own code. They can be used as follows (assuming " +"that they're declared in a module called ``wherever``):" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1130 +msgid "" +"While the above examples use ``print()`` to show how the formatting works, " +"you would of course use ``logger.debug()`` or similar to actually log using " +"this approach." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1134 +msgid "" +"One thing to note is that you pay no significant performance penalty with " +"this approach: the actual formatting happens not when you make the logging " +"call, but when (and if) the logged message is actually about to be output to " +"a log by a handler. So the only slightly unusual thing which might trip you " +"up is that the parentheses go around the format string and the arguments, " +"not just the format string. That's because the __ notation is just syntax " +"sugar for a constructor call to one of the XXXMessage classes." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1142 +msgid "" +"If you prefer, you can use a :class:`LoggerAdapter` to achieve a similar " +"effect to the above, as in the following example::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1173 +msgid "" +"The above script should log the message ``Hello, world!`` when run with " +"Python 3.2 or later." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1182 +msgid "Customizing ``LogRecord``" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1184 +msgid "" +"Every logging event is represented by a :class:`LogRecord` instance. When an " +"event is logged and not filtered out by a logger's level, a :class:" +"`LogRecord` is created, populated with information about the event and then " +"passed to the handlers for that logger (and its ancestors, up to and " +"including the logger where further propagation up the hierarchy is " +"disabled). Before Python 3.2, there were only two places where this creation " +"was done:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1191 +msgid "" +":meth:`Logger.makeRecord`, which is called in the normal process of logging " +"an event. This invoked :class:`LogRecord` directly to create an instance." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1194 +msgid "" +":func:`makeLogRecord`, which is called with a dictionary containing " +"attributes to be added to the LogRecord. This is typically invoked when a " +"suitable dictionary has been received over the network (e.g. in pickle form " +"via a :class:`~handlers.SocketHandler`, or in JSON form via an :class:" +"`~handlers.HTTPHandler`)." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1200 +msgid "" +"This has usually meant that if you need to do anything special with a :class:" +"`LogRecord`, you've had to do one of the following." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1203 +msgid "" +"Create your own :class:`Logger` subclass, which overrides :meth:`Logger." +"makeRecord`, and set it using :func:`~logging.setLoggerClass` before any " +"loggers that you care about are instantiated." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1206 +msgid "" +"Add a :class:`Filter` to a logger or handler, which does the necessary " +"special manipulation you need when its :meth:`~Filter.filter` method is " +"called." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1210 +msgid "" +"The first approach would be a little unwieldy in the scenario where (say) " +"several different libraries wanted to do different things. Each would " +"attempt to set its own :class:`Logger` subclass, and the one which did this " +"last would win." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1215 +msgid "" +"The second approach works reasonably well for many cases, but does not allow " +"you to e.g. use a specialized subclass of :class:`LogRecord`. Library " +"developers can set a suitable filter on their loggers, but they would have " +"to remember to do this every time they introduced a new logger (which they " +"would do simply by adding new packages or modules and doing ::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1223 +msgid "" +"at module level). It's probably one too many things to think about. " +"Developers could also add the filter to a :class:`~logging.NullHandler` " +"attached to their top-level logger, but this would not be invoked if an " +"application developer attached a handler to a lower-level library logger --- " +"so output from that handler would not reflect the intentions of the library " +"developer." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1229 +msgid "" +"In Python 3.2 and later, :class:`~logging.LogRecord` creation is done " +"through a factory, which you can specify. The factory is just a callable you " +"can set with :func:`~logging.setLogRecordFactory`, and interrogate with :" +"func:`~logging.getLogRecordFactory`. The factory is invoked with the same " +"signature as the :class:`~logging.LogRecord` constructor, as :class:" +"`LogRecord` is the default setting for the factory." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1236 +msgid "" +"This approach allows a custom factory to control all aspects of LogRecord " +"creation. For example, you could return a subclass, or just add some " +"additional attributes to the record once created, using a pattern similar to " +"this::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1249 +msgid "" +"This pattern allows different libraries to chain factories together, and as " +"long as they don't overwrite each other's attributes or unintentionally " +"overwrite the attributes provided as standard, there should be no surprises. " +"However, it should be borne in mind that each link in the chain adds run-" +"time overhead to all logging operations, and the technique should only be " +"used when the use of a :class:`Filter` does not provide the desired result." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1260 +msgid "Subclassing QueueHandler - a ZeroMQ example" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1262 +msgid "" +"You can use a :class:`QueueHandler` subclass to send messages to other kinds " +"of queues, for example a ZeroMQ 'publish' socket. In the example below,the " +"socket is created separately and passed to the handler (as its 'queue')::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1281 +msgid "" +"Of course there are other ways of organizing this, for example passing in " +"the data needed by the handler to create the socket::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1299 +msgid "Subclassing QueueListener - a ZeroMQ example" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1301 +msgid "" +"You can also subclass :class:`QueueListener` to get messages from other " +"kinds of queues, for example a ZeroMQ 'subscribe' socket. Here's an example::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1320 +msgid "Module :mod:`logging`" +msgstr "Module :mod:`logging`" + +#: ../Doc/howto/logging-cookbook.rst:1320 +msgid "API reference for the logging module." +msgstr "Référence d'API pour le module de journalisation." + +#: ../Doc/howto/logging-cookbook.rst:1323 +msgid "Module :mod:`logging.config`" +msgstr "Module :mod:`logging.config`" + +#: ../Doc/howto/logging-cookbook.rst:1323 +msgid "Configuration API for the logging module." +msgstr "API de configuration pour le module de journalisation." + +#: ../Doc/howto/logging-cookbook.rst:1326 +msgid "Module :mod:`logging.handlers`" +msgstr "Module :mod:`logging.handlers`" + +#: ../Doc/howto/logging-cookbook.rst:1326 +msgid "Useful handlers included with the logging module." +msgstr "Gestionnaires utiles inclus avec le module de journalisation." + +#: ../Doc/howto/logging-cookbook.rst:1328 +msgid ":ref:`A basic logging tutorial `" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1330 +msgid ":ref:`A more advanced logging tutorial `" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1334 +msgid "An example dictionary-based configuration" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1336 +msgid "" +"Below is an example of a logging configuration dictionary - it's taken from " +"the `documentation on the Django project `_. This dictionary is passed to :" +"func:`~config.dictConfig` to put the configuration into effect::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1392 +msgid "" +"For more information about this configuration, you can see the `relevant " +"section `_ of the Django documentation." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1399 +msgid "Using a rotator and namer to customize log rotation processing" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1401 +msgid "" +"An example of how you can define a namer and rotator is given in the " +"following snippet, which shows zlib-based compression of the log file::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1419 +msgid "" +"These are not \"true\" .gz files, as they are bare compressed data, with no " +"\"container\" such as you’d find in an actual gzip file. This snippet is " +"just for illustration purposes." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1424 +msgid "A more elaborate multiprocessing example" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1426 +msgid "" +"The following working example shows how logging can be used with " +"multiprocessing using configuration files. The configurations are fairly " +"simple, but serve to illustrate how more complex ones could be implemented " +"in a real multiprocessing scenario." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1431 +msgid "" +"In the example, the main process spawns a listener process and some worker " +"processes. Each of the main process, the listener and the workers have three " +"separate configurations (the workers all share the same configuration). We " +"can see logging in the main process, how the workers log to a QueueHandler " +"and how the listener implements a QueueListener and a more complex logging " +"configuration, and arranges to dispatch events received via the queue to the " +"handlers specified in the configuration. Note that these configurations are " +"purely illustrative, but you should be able to adapt this example to your " +"own scenario." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1441 +msgid "" +"Here's the script - the docstrings and the comments hopefully explain how it " +"works::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1653 +msgid "Inserting a BOM into messages sent to a SysLogHandler" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1655 +msgid "" +":rfc:`5424` requires that a Unicode message be sent to a syslog daemon as a " +"set of bytes which have the following structure: an optional pure-ASCII " +"component, followed by a UTF-8 Byte Order Mark (BOM), followed by Unicode " +"encoded using UTF-8. (See the :rfc:`relevant section of the specification " +"<5424#section-6>`.)" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1661 +msgid "" +"In Python 3.1, code was added to :class:`~logging.handlers.SysLogHandler` to " +"insert a BOM into the message, but unfortunately, it was implemented " +"incorrectly, with the BOM appearing at the beginning of the message and " +"hence not allowing any pure-ASCII component to appear before it." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1667 +msgid "" +"As this behaviour is broken, the incorrect BOM insertion code is being " +"removed from Python 3.2.4 and later. However, it is not being replaced, and " +"if you want to produce :rfc:`5424`-compliant messages which include a BOM, " +"an optional pure-ASCII sequence before it and arbitrary Unicode after it, " +"encoded using UTF-8, then you need to do the following:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1673 +msgid "" +"Attach a :class:`~logging.Formatter` instance to your :class:`~logging." +"handlers.SysLogHandler` instance, with a format string such as::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1679 +msgid "" +"The Unicode code point U+FEFF, when encoded using UTF-8, will be encoded as " +"a UTF-8 BOM -- the byte-string ``b'\\xef\\xbb\\xbf'``." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1682 +msgid "" +"Replace the ASCII section with whatever placeholders you like, but make sure " +"that the data that appears in there after substitution is always ASCII (that " +"way, it will remain unchanged after UTF-8 encoding)." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1686 +msgid "" +"Replace the Unicode section with whatever placeholders you like; if the data " +"which appears there after substitution contains characters outside the ASCII " +"range, that's fine -- it will be encoded using UTF-8." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1690 +msgid "" +"The formatted message *will* be encoded using UTF-8 encoding by " +"``SysLogHandler``. If you follow the above rules, you should be able to " +"produce :rfc:`5424`-compliant messages. If you don't, logging may not " +"complain, but your messages will not be RFC 5424-compliant, and your syslog " +"daemon may complain." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1697 +msgid "Implementing structured logging" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1699 +msgid "" +"Although most logging messages are intended for reading by humans, and thus " +"not readily machine-parseable, there might be circumstances where you want " +"to output messages in a structured format which *is* capable of being parsed " +"by a program (without needing complex regular expressions to parse the log " +"message). This is straightforward to achieve using the logging package. " +"There are a number of ways in which this could be achieved, but the " +"following is a simple approach which uses JSON to serialise the event in a " +"machine-parseable manner::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1723 +msgid "If the above script is run, it prints:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1729 +#: ../Doc/howto/logging-cookbook.rst:1778 +msgid "" +"Note that the order of items might be different according to the version of " +"Python used." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1732 +msgid "" +"If you need more specialised processing, you can use a custom JSON encoder, " +"as in the following complete example::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1772 +msgid "When the above script is run, it prints:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1787 +msgid "Customizing handlers with :func:`dictConfig`" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1789 +msgid "" +"There are times when you want to customize logging handlers in particular " +"ways, and if you use :func:`dictConfig` you may be able to do this without " +"subclassing. As an example, consider that you may want to set the ownership " +"of a log file. On POSIX, this is easily done using :func:`shutil.chown`, but " +"the file handlers in the stdlib don't offer built-in support. You can " +"customize handler creation using a plain function such as::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1803 +msgid "" +"You can then specify, in a logging configuration passed to :func:" +"`dictConfig`, that a logging handler be created by calling this function::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1836 +msgid "" +"In this example I am setting the ownership using the ``pulse`` user and " +"group, just for the purposes of illustration. Putting it together into a " +"working script, ``chowntest.py``::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1883 +msgid "To run this, you will probably need to run as ``root``:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1893 +msgid "" +"Note that this example uses Python 3.3 because that's where :func:`shutil." +"chown` makes an appearance. This approach should work with any Python " +"version that supports :func:`dictConfig` - namely, Python 2.7, 3.2 or later. " +"With pre-3.3 versions, you would need to implement the actual ownership " +"change using e.g. :func:`os.chown`." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1899 +msgid "" +"In practice, the handler-creating function may be in a utility module " +"somewhere in your project. Instead of the line in the configuration::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1904 +msgid "you could use e.g.::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1908 +msgid "" +"where ``project.util`` can be replaced with the actual name of the package " +"where the function resides. In the above working script, using ``'ext://" +"__main__.owned_file_handler'`` should work. Here, the actual callable is " +"resolved by :func:`dictConfig` from the ``ext://`` specification." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1913 +msgid "" +"This example hopefully also points the way to how you could implement other " +"types of file change - e.g. setting specific POSIX permission bits - in the " +"same way, using :func:`os.chmod`." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1917 +msgid "" +"Of course, the approach could also be extended to types of handler other " +"than a :class:`~logging.FileHandler` - for example, one of the rotating file " +"handlers, or a different type of handler altogether." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1927 +msgid "Using particular formatting styles throughout your application" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1929 +msgid "" +"In Python 3.2, the :class:`~logging.Formatter` gained a ``style`` keyword " +"parameter which, while defaulting to ``%`` for backward compatibility, " +"allowed the specification of ``{`` or ``$`` to support the formatting " +"approaches supported by :meth:`str.format` and :class:`string.Template`. " +"Note that this governs the formatting of logging messages for final output " +"to logs, and is completely orthogonal to how an individual logging message " +"is constructed." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1936 +msgid "" +"Logging calls (:meth:`~Logger.debug`, :meth:`~Logger.info` etc.) only take " +"positional parameters for the actual logging message itself, with keyword " +"parameters used only for determining options for how to handle the logging " +"call (e.g. the ``exc_info`` keyword parameter to indicate that traceback " +"information should be logged, or the ``extra`` keyword parameter to indicate " +"additional contextual information to be added to the log). So you cannot " +"directly make logging calls using :meth:`str.format` or :class:`string." +"Template` syntax, because internally the logging package uses %-formatting " +"to merge the format string and the variable arguments. There would no " +"changing this while preserving backward compatibility, since all logging " +"calls which are out there in existing code will be using %-format strings." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1948 +msgid "" +"There have been suggestions to associate format styles with specific " +"loggers, but that approach also runs into backward compatibility problems " +"because any existing code could be using a given logger name and using %-" +"formatting." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1952 +msgid "" +"For logging to work interoperably between any third-party libraries and your " +"code, decisions about formatting need to be made at the level of the " +"individual logging call. This opens up a couple of ways in which alternative " +"formatting styles can be accommodated." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1959 +msgid "Using LogRecord factories" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1961 +msgid "" +"In Python 3.2, along with the :class:`~logging.Formatter` changes mentioned " +"above, the logging package gained the ability to allow users to set their " +"own :class:`LogRecord` subclasses, using the :func:`setLogRecordFactory` " +"function. You can use this to set your own subclass of :class:`LogRecord`, " +"which does the Right Thing by overriding the :meth:`~LogRecord.getMessage` " +"method. The base class implementation of this method is where the ``msg % " +"args`` formatting happens, and where you can substitute your alternate " +"formatting; however, you should be careful to support all formatting styles " +"and allow %-formatting as the default, to ensure interoperability with other " +"code. Care should also be taken to call ``str(self.msg)``, just as the base " +"implementation does." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1972 +msgid "" +"Refer to the reference documentation on :func:`setLogRecordFactory` and :" +"class:`LogRecord` for more information." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1977 +msgid "Using custom message objects" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:1979 +msgid "" +"There is another, perhaps simpler way that you can use {}- and $- formatting " +"to construct your individual log messages. You may recall (from :ref:" +"`arbitrary-object-messages`) that when logging you can use an arbitrary " +"object as a message format string, and that the logging package will call :" +"func:`str` on that object to get the actual format string. Consider the " +"following two classes::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2004 +msgid "" +"Either of these can be used in place of a format string, to allow {}- or $-" +"formatting to be used to build the actual \"message\" part which appears in " +"the formatted log output in place of “%(message)s” or “{message}” or " +"“$message”. If you find it a little unwieldy to use the class names whenever " +"you want to log something, you can make it more palatable if you use an " +"alias such as ``M`` or ``_`` for the message (or perhaps ``__``, if you are " +"using ``_`` for localization)." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2012 +msgid "" +"Examples of this approach are given below. Firstly, formatting with :meth:" +"`str.format`::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2026 +msgid "Secondly, formatting with :class:`string.Template`::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2033 +msgid "" +"One thing to note is that you pay no significant performance penalty with " +"this approach: the actual formatting happens not when you make the logging " +"call, but when (and if) the logged message is actually about to be output to " +"a log by a handler. So the only slightly unusual thing which might trip you " +"up is that the parentheses go around the format string and the arguments, " +"not just the format string. That’s because the __ notation is just syntax " +"sugar for a constructor call to one of the ``XXXMessage`` classes shown " +"above." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2047 +msgid "Configuring filters with :func:`dictConfig`" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2049 +msgid "" +"You *can* configure filters using :func:`~logging.config.dictConfig`, though " +"it might not be obvious at first glance how to do it (hence this recipe). " +"Since :class:`~logging.Filter` is the only filter class included in the " +"standard library, and it is unlikely to cater to many requirements (it's " +"only there as a base class), you will typically need to define your own :" +"class:`~logging.Filter` subclass with an overridden :meth:`~logging.Filter." +"filter` method. To do this, specify the ``()`` key in the configuration " +"dictionary for the filter, specifying a callable which will be used to " +"create the filter (a class is the most obvious, but you can provide any " +"callable which returns a :class:`~logging.Filter` instance). Here is a " +"complete example::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2102 +msgid "" +"This example shows how you can pass configuration data to the callable which " +"constructs the instance, in the form of keyword parameters. When run, the " +"above script will print:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2110 +msgid "which shows that the filter is working as configured." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2112 +msgid "A couple of extra points to note:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2114 +msgid "" +"If you can't refer to the callable directly in the configuration (e.g. if it " +"lives in a different module, and you can't import it directly where the " +"configuration dictionary is), you can use the form ``ext://...`` as " +"described in :ref:`logging-config-dict-externalobj`. For example, you could " +"have used the text ``'ext://__main__.MyFilter'`` instead of ``MyFilter`` in " +"the above example." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2121 +msgid "" +"As well as for filters, this technique can also be used to configure custom " +"handlers and formatters. See :ref:`logging-config-dict-userdef` for more " +"information on how logging supports using user-defined objects in its " +"configuration, and see the other cookbook recipe :ref:`custom-handlers` " +"above." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2130 +msgid "Customized exception formatting" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2132 +msgid "" +"There might be times when you want to do customized exception formatting - " +"for argument's sake, let's say you want exactly one line per logged event, " +"even when exception information is present. You can do this with a custom " +"formatter class, as shown in the following example::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2173 +msgid "When run, this produces a file with exactly two lines:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2180 +msgid "" +"While the above treatment is simplistic, it points the way to how exception " +"information can be formatted to your liking. The :mod:`traceback` module may " +"be helpful for more specialized needs." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2187 +msgid "Speaking logging messages" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2189 +msgid "" +"There might be situations when it is desirable to have logging messages " +"rendered in an audible rather than a visible format. This is easy to do if " +"you have text-to-speech (TTS) functionality available in your system, even " +"if it doesn't have a Python binding. Most TTS systems have a command line " +"program you can run, and this can be invoked from a handler using :mod:" +"`subprocess`. It's assumed here that TTS command line programs won't expect " +"to interact with users or take a long time to complete, and that the " +"frequency of logged messages will be not so high as to swamp the user with " +"messages, and that it's acceptable to have the messages spoken one at a time " +"rather than concurrently, The example implementation below waits for one " +"message to be spoken before the next is processed, and this might cause " +"other handlers to be kept waiting. Here is a short example showing the " +"approach, which assumes that the ``espeak`` TTS package is available::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2231 +msgid "" +"When run, this script should say \"Hello\" and then \"Goodbye\" in a female " +"voice." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2233 +msgid "" +"The above approach can, of course, be adapted to other TTS systems and even " +"other systems altogether which can process messages via external programs " +"run from a command line." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2241 +msgid "Buffering logging messages and outputting them conditionally" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2243 +msgid "" +"There might be situations where you want to log messages in a temporary area " +"and only output them if a certain condition occurs. For example, you may " +"want to start logging debug events in a function, and if the function " +"completes without errors, you don't want to clutter the log with the " +"collected debug information, but if there is an error, you want all the " +"debug information to be output as well as the error." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2250 +msgid "" +"Here is an example which shows how you could do this using a decorator for " +"your functions where you want logging to behave this way. It makes use of " +"the :class:`logging.handlers.MemoryHandler`, which allows buffering of " +"logged events until some condition occurs, at which point the buffered " +"events are ``flushed`` - passed to another handler (the ``target`` handler) " +"for processing. By default, the ``MemoryHandler`` flushed when its buffer " +"gets filled up or an event whose level is greater than or equal to a " +"specified threshold is seen. You can use this recipe with a more specialised " +"subclass of ``MemoryHandler`` if you want custom flushing behavior." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2260 +msgid "" +"The example script has a simple function, ``foo``, which just cycles through " +"all the logging levels, writing to ``sys.stderr`` to say what level it's " +"about to log at, and then actually logging a message at that level. You can " +"pass a parameter to ``foo`` which, if true, will log at ERROR and CRITICAL " +"levels - otherwise, it only logs at DEBUG, INFO and WARNING levels." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2266 +msgid "" +"The script just arranges to decorate ``foo`` with a decorator which will do " +"the conditional logging that's required. The decorator takes a logger as a " +"parameter and attaches a memory handler for the duration of the call to the " +"decorated function. The decorator can be additionally parameterised using a " +"target handler, a level at which flushing should occur, and a capacity for " +"the buffer. These default to a :class:`~logging.StreamHandler` which writes " +"to ``sys.stderr``, ``logging.ERROR`` and ``100`` respectively." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2274 +msgid "Here's the script::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2337 +msgid "When this script is run, the following output should be observed:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2367 +msgid "" +"As you can see, actual logging output only occurs when an event is logged " +"whose severity is ERROR or greater, but in that case, any previous events at " +"lower severities are also logged." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2371 +msgid "You can of course use the conventional means of decoration::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2381 +msgid "Formatting times using UTC (GMT) via configuration" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2383 +msgid "" +"Sometimes you want to format times using UTC, which can be done using a " +"class such as `UTCFormatter`, shown below::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2392 +msgid "" +"and you can then use the ``UTCFormatter`` in your code instead of :class:" +"`~logging.Formatter`. If you want to do that via configuration, you can use " +"the :func:`~logging.config.dictConfig` API with an approach illustrated by " +"the following complete example::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2435 +msgid "When this script is run, it should print something like:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2442 +msgid "" +"showing how the time is formatted both as local time and UTC, one for each " +"handler." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2449 +msgid "Using a context manager for selective logging" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2451 +msgid "" +"There are times when it would be useful to temporarily change the logging " +"configuration and revert it back after doing something. For this, a context " +"manager is the most obvious way of saving and restoring the logging context. " +"Here is a simple example of such a context manager, which allows you to " +"optionally change the logging level and add a logging handler purely in the " +"scope of the context manager::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2484 +msgid "" +"If you specify a level value, the logger's level is set to that value in the " +"scope of the with block covered by the context manager. If you specify a " +"handler, it is added to the logger on entry to the block and removed on exit " +"from the block. You can also ask the manager to close the handler for you on " +"block exit - you could do this if you don't need the handler any more." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2490 +msgid "" +"To illustrate how it works, we can add the following block of code to the " +"above::" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2508 +msgid "" +"We initially set the logger's level to ``INFO``, so message #1 appears and " +"message #2 doesn't. We then change the level to ``DEBUG`` temporarily in the " +"following ``with`` block, and so message #3 appears. After the block exits, " +"the logger's level is restored to ``INFO`` and so message #4 doesn't appear. " +"In the next ``with`` block, we set the level to ``DEBUG`` again but also add " +"a handler writing to ``sys.stdout``. Thus, message #5 appears twice on the " +"console (once via ``stderr`` and once via ``stdout``). After the ``with`` " +"statement's completion, the status is as it was before so message #6 appears " +"(like message #1) whereas message #7 doesn't (just like message #2)." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2518 +msgid "If we run the resulting script, the result is as follows:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2529 +msgid "" +"If we run it again, but pipe ``stderr`` to ``/dev/null``, we see the " +"following, which is the only message written to ``stdout``:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2537 +msgid "Once again, but piping ``stdout`` to ``/dev/null``, we get:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2547 +msgid "" +"In this case, the message #5 printed to ``stdout`` doesn't appear, as " +"expected." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:2549 +msgid "" +"Of course, the approach described here can be generalised, for example to " +"attach logging filters temporarily. Note that the above code works in Python " +"2 as well as Python 3." +msgstr "" diff --git a/howto/logging.po b/howto/logging.po new file mode 100644 index 000000000..9c2df090f --- /dev/null +++ b/howto/logging.po @@ -0,0 +1,2048 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-10 15:38+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" + +#: ../Doc/howto/logging.rst:3 +msgid "Logging HOWTO" +msgstr "Tutoriel sur la journalisation" + +#: ../Doc/howto/logging.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/howto/logging.rst:5 +msgid "Vinay Sajip " +msgstr "Vinay Sajip " + +#: ../Doc/howto/logging.rst:12 +msgid "Basic Logging Tutorial" +msgstr "Les bases de l'utilisation du module `logging`" + +#: ../Doc/howto/logging.rst:14 +msgid "" +"Logging is a means of tracking events that happen when some software runs. " +"The software's developer adds logging calls to their code to indicate that " +"certain events have occurred. An event is described by a descriptive message " +"which can optionally contain variable data (i.e. data that is potentially " +"different for each occurrence of the event). Events also have an importance " +"which the developer ascribes to the event; the importance can also be called " +"the *level* or *severity*." +msgstr "" +"La journalisation (*logging* en anglais) est une façon de suivre les " +"événements qui ont lieu durant le fonctionnement d'un logiciel. Le " +"développeur du logiciel ajoute des appels à l'outil de journalisation dans " +"son code pour indiquer que certains événements ont eu lieu. Un événement est " +"décrit par un message descriptif, qui peut éventuellement contenir des " +"données variables (c'est-à-dire qui peuvent être différentes pour chaque " +"occurrence de l'événement). Un événement a aussi une importance que le " +"développeur lui attribue ; cette importance peut aussi être appelée *niveau* " +"ou *sévérité*." + +#: ../Doc/howto/logging.rst:23 +msgid "When to use logging" +msgstr "Quand utiliser `logging`" + +#: ../Doc/howto/logging.rst:25 +msgid "" +"Logging provides a set of convenience functions for simple logging usage. " +"These are :func:`debug`, :func:`info`, :func:`warning`, :func:`error` and :" +"func:`critical`. To determine when to use logging, see the table below, " +"which states, for each of a set of common tasks, the best tool to use for it." +msgstr "" +"Le module *logging* fournit un ensemble de fonctions de commodités pour une " +"utilisation simple du module. Ce sont les fonctions :func:`debug`, :func:" +"`info`, :func:`warning`, :func:`error` et :func:`critical`. Pour déterminer " +"quand employer la journalisation, voyez la table ci-dessous, qui vous " +"indique, pour chaque tâche parmi les plus communes, l'outil approprié." + +#: ../Doc/howto/logging.rst:31 +msgid "Task you want to perform" +msgstr "Tâche que vous souhaitez mener" + +#: ../Doc/howto/logging.rst:31 +msgid "The best tool for the task" +msgstr "Le meilleur outil pour cette tâche" + +#: ../Doc/howto/logging.rst:33 +msgid "" +"Display console output for ordinary usage of a command line script or program" +msgstr "" +"Affiche la sortie console d'un script en ligne de commande ou d'un programme " +"lors de son utilisation ordinaire" + +#: ../Doc/howto/logging.rst:33 +msgid ":func:`print`" +msgstr ":func:`print`" + +#: ../Doc/howto/logging.rst:37 +msgid "" +"Report events that occur during normal operation of a program (e.g. for " +"status monitoring or fault investigation)" +msgstr "" +"Rapporter des évènements qui ont lieu au cours du fonctionnement normal d'un " +"programme (par exemple pour suivre un statut ou examiner des " +"dysfonctionnements)" + +#: ../Doc/howto/logging.rst:37 +msgid "" +":func:`logging.info` (or :func:`logging.debug` for very detailed output for " +"diagnostic purposes)" +msgstr "" +":func:`logging.info` (ou :func:`logging.debug` pour une sortie très " +"détaillée à visée diagnostique)" + +#: ../Doc/howto/logging.rst:42 +msgid "Issue a warning regarding a particular runtime event" +msgstr "" +"Émettre un avertissement (*warning* en anglais) en relation avec un " +"évènement particulier au cours du fonctionnement d’un programme" + +#: ../Doc/howto/logging.rst:42 +msgid "" +":func:`warnings.warn` in library code if the issue is avoidable and the " +"client application should be modified to eliminate the warning" +msgstr "" +":func:`warnings.warn` dans le code de la bibliothèque si le problème est " +"évitable et l'application cliente doit être modifiée pour éliminer cet " +"avertissement" + +#: ../Doc/howto/logging.rst:47 +msgid "" +":func:`logging.warning` if there is nothing the client application can do " +"about the situation, but the event should still be noted" +msgstr "" +":func:`logging.warning` si l'application cliente ne peut rien faire pour " +"corriger la situation mais l'évènement devrait quand même être noté" + +#: ../Doc/howto/logging.rst:52 +msgid "Report an error regarding a particular runtime event" +msgstr "" +"Rapporter une erreur lors d'un évènement particulier en cours d'exécution" + +#: ../Doc/howto/logging.rst:52 +msgid "Raise an exception" +msgstr "Lever une exception" + +#: ../Doc/howto/logging.rst:55 +msgid "" +"Report suppression of an error without raising an exception (e.g. error " +"handler in a long-running server process)" +msgstr "" +"Rapporter la suppression d'une erreur sans lever d'exception (par exemple " +"pour la gestion d'erreur d'un processus de long terme sur un serveur)" + +#: ../Doc/howto/logging.rst:55 +msgid "" +":func:`logging.error`, :func:`logging.exception` or :func:`logging.critical` " +"as appropriate for the specific error and application domain" +msgstr "" +":func:`logging.error`, :func:`logging.exception` ou :func:`logging." +"critical`, au mieux, selon l'erreur spécifique et le domaine d'application" + +#: ../Doc/howto/logging.rst:62 +msgid "" +"The logging functions are named after the level or severity of the events " +"they are used to track. The standard levels and their applicability are " +"described below (in increasing order of severity):" +msgstr "" +"Les fonctions de journalisation sont nommées d'après le niveau ou la " +"sévérité des évènements qu'elles suivent. Les niveaux standards et leurs " +"applications sont décrits ci-dessous (par ordre croissant de sévérité) :" + +#: ../Doc/howto/logging.rst:69 ../Doc/howto/logging.rst:846 +msgid "Level" +msgstr "Niveau" + +#: ../Doc/howto/logging.rst:69 +msgid "When it's used" +msgstr "Quand il est utilisé" + +#: ../Doc/howto/logging.rst:71 ../Doc/howto/logging.rst:856 +msgid "``DEBUG``" +msgstr "``DEBUG``" + +#: ../Doc/howto/logging.rst:71 +msgid "" +"Detailed information, typically of interest only when diagnosing problems." +msgstr "" +"Information détaillée, intéressante seulement lorsqu'on diagnostique un " +"problème." + +#: ../Doc/howto/logging.rst:74 ../Doc/howto/logging.rst:854 +msgid "``INFO``" +msgstr "``INFO``" + +#: ../Doc/howto/logging.rst:74 +msgid "Confirmation that things are working as expected." +msgstr "Confirmation que tout fonctionne comme prévu." + +#: ../Doc/howto/logging.rst:77 ../Doc/howto/logging.rst:852 +msgid "``WARNING``" +msgstr "``WARNING``" + +#: ../Doc/howto/logging.rst:77 +msgid "" +"An indication that something unexpected happened, or indicative of some " +"problem in the near future (e.g. 'disk space low'). The software is still " +"working as expected." +msgstr "" +"L'indication que quelque chose d'inattendu a eu lieu, ou de la possibilité " +"d'un problème dans un futur proche (par exemple « espace disque faible »). " +"Le logiciel fonctionne encore normalement." + +#: ../Doc/howto/logging.rst:82 ../Doc/howto/logging.rst:850 +msgid "``ERROR``" +msgstr "``ERROR``" + +#: ../Doc/howto/logging.rst:82 +msgid "" +"Due to a more serious problem, the software has not been able to perform " +"some function." +msgstr "" +"Du fait d'un problème plus sérieux, le logiciel n'a pas été capable de " +"réaliser une tâche." + +#: ../Doc/howto/logging.rst:85 ../Doc/howto/logging.rst:848 +msgid "``CRITICAL``" +msgstr "``CRITICAL``" + +#: ../Doc/howto/logging.rst:85 +msgid "" +"A serious error, indicating that the program itself may be unable to " +"continue running." +msgstr "" +"Une erreur sérieuse, indiquant que le programme lui-même pourrait être " +"incapable de continuer à fonctionner." + +#: ../Doc/howto/logging.rst:89 +msgid "" +"The default level is ``WARNING``, which means that only events of this level " +"and above will be tracked, unless the logging package is configured to do " +"otherwise." +msgstr "" +"Le niveau par défaut est ``WARNING``, ce qui signifie que seuls les " +"évènements de ce niveau et au-dessus sont suivis, sauf si le paquet " +"*logging* est configuré pour faire autrement." + +#: ../Doc/howto/logging.rst:93 +msgid "" +"Events that are tracked can be handled in different ways. The simplest way " +"of handling tracked events is to print them to the console. Another common " +"way is to write them to a disk file." +msgstr "" +"Les évènements suivis peuvent être gérés de différentes façons. La manière " +"la plus simple est de les afficher dans la console. Une autre méthode " +"commune est de les écrire dans un fichier." + +#: ../Doc/howto/logging.rst:101 +msgid "A simple example" +msgstr "Un exemple simple" + +#: ../Doc/howto/logging.rst:103 +msgid "A very simple example is::" +msgstr "Un exemple très simple est ::" + +#: ../Doc/howto/logging.rst:109 +msgid "If you type these lines into a script and run it, you'll see:" +msgstr "" +"Si vous entrez ces lignes dans un script que vous exécutez, vous verrez :" + +#: ../Doc/howto/logging.rst:115 +msgid "" +"printed out on the console. The ``INFO`` message doesn't appear because the " +"default level is ``WARNING``. The printed message includes the indication of " +"the level and the description of the event provided in the logging call, i." +"e. 'Watch out!'. Don't worry about the 'root' part for now: it will be " +"explained later. The actual output can be formatted quite flexibly if you " +"need that; formatting options will also be explained later." +msgstr "" +"affiché dans la console. Le message ``INFO`` n'apparaît pas parce que le " +"niveau par défaut est ``WARNING``. Le message affiché inclut l'indication du " +"niveau et la description de l'évènement fournie dans l'appel à *logging*, " +"ici « Watch out! ». Ne vous préoccupez pas de la partie « *root* » pour le " +"moment : nous détaillerons ce point plus bas. La sortie elle-même peut être " +"formatée de multiples manières si besoin. Les options de formatage seront " +"aussi expliquées plus bas." + +#: ../Doc/howto/logging.rst:124 +msgid "Logging to a file" +msgstr "Enregistrer les évènements dans un fichier" + +#: ../Doc/howto/logging.rst:126 +msgid "" +"A very common situation is that of recording logging events in a file, so " +"let's look at that next. Be sure to try the following in a newly-started " +"Python interpreter, and don't just continue from the session described " +"above::" +msgstr "" +"Il est très commun d'enregistrer les évènements dans un fichier, c'est donc " +"ce que nous allons regarder maintenant. Il faut essayer ce qui suit avec un " +"interpréteur Python nouvellement démarré, ne poursuivez pas la session " +"commencée ci-dessus ::" + +#: ../Doc/howto/logging.rst:136 +msgid "" +"And now if we open the file and look at what we have, we should find the log " +"messages:" +msgstr "" +"Maintenant, si nous ouvrons le fichier et lisons ce qui s'y trouve, on " +"trouvera les messages de log :" + +#: ../Doc/howto/logging.rst:145 +msgid "" +"This example also shows how you can set the logging level which acts as the " +"threshold for tracking. In this case, because we set the threshold to " +"``DEBUG``, all of the messages were printed." +msgstr "" +"Cet exemple montre aussi comment on peut régler le niveau de journalisation " +"qui sert de seuil pour le suivi. Dans ce cas, comme nous avons réglé le " +"seuil à ``DEBUG``, tous les messages ont été écrits." + +#: ../Doc/howto/logging.rst:149 +msgid "" +"If you want to set the logging level from a command-line option such as:" +msgstr "" +"Si vous souhaitez régler le niveau de journalisation à partir d'une option " +"de la ligne de commande comme :" + +#: ../Doc/howto/logging.rst:155 +msgid "" +"and you have the value of the parameter passed for ``--log`` in some " +"variable *loglevel*, you can use::" +msgstr "" +"et que vous passez ensuite la valeur du paramètre donné à l'option `--log` " +"dans une variable *loglevel*, vous pouvez utiliser ::" + +#: ../Doc/howto/logging.rst:160 +msgid "" +"to get the value which you'll pass to :func:`basicConfig` via the *level* " +"argument. You may want to error check any user input value, perhaps as in " +"the following example::" +msgstr "" +"de manière à obtenir la valeur à passer à :func:`basicConfig` à travers " +"l'argument *level*. Vous pouvez vérifier que l'utilisateur n'a fait aucune " +"erreur pour la valeur de ce paramètre, comme dans l'exemple ci-dessous ::" + +#: ../Doc/howto/logging.rst:172 +msgid "" +"The call to :func:`basicConfig` should come *before* any calls to :func:" +"`debug`, :func:`info` etc. As it's intended as a one-off simple " +"configuration facility, only the first call will actually do anything: " +"subsequent calls are effectively no-ops." +msgstr "" +"L'appel à :func:`basicConfig` doit être fait *avant* un appel à :func:" +"`debug`, :func:`info`, etc. Comme l'objectif est d'avoir un outil de " +"configuration simple et d'usage unique, seul le premier appel aura un effet, " +"les appels suivants ne font rien." + +#: ../Doc/howto/logging.rst:177 +msgid "" +"If you run the above script several times, the messages from successive runs " +"are appended to the file *example.log*. If you want each run to start " +"afresh, not remembering the messages from earlier runs, you can specify the " +"*filemode* argument, by changing the call in the above example to::" +msgstr "" +"Si vous exécutez le script plusieurs fois, les messages des exécutions " +"successives sont ajoutés au fichier *example.log*. Si vous voulez que chaque " +"exécution reprenne un fichier vierge, sans conserver les messages des " +"exécutions précédentes, vous pouvez spécifier l'argument *filemode*, en " +"changeant l'appel à l'exemple précédent par ::" + +#: ../Doc/howto/logging.rst:184 +msgid "" +"The output will be the same as before, but the log file is no longer " +"appended to, so the messages from earlier runs are lost." +msgstr "" +"La sortie est identique à la précédente, mais le texte n'est plus ajouté au " +"fichier de log, donc les messages des exécutions précédentes sont perdus." + +#: ../Doc/howto/logging.rst:189 +msgid "Logging from multiple modules" +msgstr "Employer *logging* à partir de différents modules" + +#: ../Doc/howto/logging.rst:191 +msgid "" +"If your program consists of multiple modules, here's an example of how you " +"could organize logging in it::" +msgstr "" +"Si votre programme est composé de plusieurs modules, voici une façon " +"d'organiser\n" +"l'outil de journalisation ::" + +#: ../Doc/howto/logging.rst:215 +msgid "If you run *myapp.py*, you should see this in *myapp.log*:" +msgstr "Si vous exécutez *myapp.py*, vous verrez ceci dans *myapp.log* :" + +#: ../Doc/howto/logging.rst:223 +msgid "" +"which is hopefully what you were expecting to see. You can generalize this " +"to multiple modules, using the pattern in *mylib.py*. Note that for this " +"simple usage pattern, you won't know, by looking in the log file, *where* in " +"your application your messages came from, apart from looking at the event " +"description. If you want to track the location of your messages, you'll need " +"to refer to the documentation beyond the tutorial level -- see :ref:`logging-" +"advanced-tutorial`." +msgstr "" +"ce qui est normalement ce à quoi vous vous attendiez. Vous pouvez " +"généraliser cela à plusieurs modules, en employant le motif de *mylib.py*. " +"Remarquez qu'avec cette méthode simple, vous ne pourrez pas savoir, en " +"lisant le fichier de log, *d'où* viennent les messages dans votre " +"application, sauf dans la description de l'évènement. Si vous voulez suivre " +"la localisation des messages, référerez-vous à la documentation avancée :ref:" +"`logging-advanced-tutorial`." + +#: ../Doc/howto/logging.rst:233 +msgid "Logging variable data" +msgstr "Journalisation de données variables" + +#: ../Doc/howto/logging.rst:235 +msgid "" +"To log variable data, use a format string for the event description message " +"and append the variable data as arguments. For example::" +msgstr "" +"Pour enregistrer des données variables, utilisez une chaîne formatée dans le " +"message de description de l'évènement et ajoutez les données variables comme " +"argument. Par exemple ::" + +#: ../Doc/howto/logging.rst:241 +msgid "will display:" +msgstr "affichera :" + +#: ../Doc/howto/logging.rst:247 +msgid "" +"As you can see, merging of variable data into the event description message " +"uses the old, %-style of string formatting. This is for backwards " +"compatibility: the logging package pre-dates newer formatting options such " +"as :meth:`str.format` and :class:`string.Template`. These newer formatting " +"options *are* supported, but exploring them is outside the scope of this " +"tutorial: see :ref:`formatting-styles` for more information." +msgstr "" +"Comme vous pouvez le voir, l'inclusion des données variables dans le message " +"de description de l'évènement emploie le vieux style de formatage avec %. " +"C'est pour assurer la rétrocompatibilité : le module `logging` est antérieur " +"aux nouvelles options de formatage comme :meth:`str.format` ou :class:" +"`string.Template`. Ces nouvelles options de formatage *sont* gérées, mais " +"leur exploration sort du cadre de ce tutoriel, voyez :ref:`formatting-" +"styles` pour plus d'information." + +#: ../Doc/howto/logging.rst:256 +msgid "Changing the format of displayed messages" +msgstr "Modifier le format du message affiché" + +#: ../Doc/howto/logging.rst:258 +msgid "" +"To change the format which is used to display messages, you need to specify " +"the format you want to use::" +msgstr "" +"Pour changer le format utilisé pour afficher le message, vous devez préciser " +"le format que vous souhaitez employer ::" + +#: ../Doc/howto/logging.rst:267 +msgid "which would print:" +msgstr "ce qui affiche :" + +#: ../Doc/howto/logging.rst:275 +msgid "" +"Notice that the 'root' which appeared in earlier examples has disappeared. " +"For a full set of things that can appear in format strings, you can refer to " +"the documentation for :ref:`logrecord-attributes`, but for simple usage, you " +"just need the *levelname* (severity), *message* (event description, " +"including variable data) and perhaps to display when the event occurred. " +"This is described in the next section." +msgstr "" +"Notez que le `root` qui apparaissait dans les exemples précédents a disparu. " +"Pour voir l'ensemble des éléments qui peuvent apparaître dans la chaîne de " +"format, référez-vous à la documentation pour :ref:`logrecord-attributes`. " +"Pour une utilisation simple, vous avez seulement besoin du *levelname* (la " +"sévérité), du *message* (la description de l'évènement, avec les données " +"variables) et peut-être du moment auquel l'évènement a eu lieu. Nous " +"décrivons ces points dans la prochaine section." + +#: ../Doc/howto/logging.rst:284 +msgid "Displaying the date/time in messages" +msgstr "Afficher l'horodatage dans les messages" + +#: ../Doc/howto/logging.rst:286 +msgid "" +"To display the date and time of an event, you would place '%(asctime)s' in " +"your format string::" +msgstr "" +"Pour afficher la date ou le temps d'un évènement, ajoutez `%(asctime)` dans " +"votre chaîne de formatage ::" + +#: ../Doc/howto/logging.rst:293 +msgid "which should print something like this:" +msgstr "ce qui affichera quelque chose comme :" + +#: ../Doc/howto/logging.rst:299 +msgid "" +"The default format for date/time display (shown above) is like ISO8601 or :" +"rfc:`3339`. If you need more control over the formatting of the date/time, " +"provide a *datefmt* argument to ``basicConfig``, as in this example::" +msgstr "" +"Le format par défaut de l'horodatage (comme ci-dessus) est donné par la " +"norme ISO8601 ou :rfc:`3339`. Pour plus de contrôle sur le formatage de " +"l'horodatage, vous pouvez fournir à ``basicConfig`` un argument *datefmt*, " +"comme dans l'exemple suivant ::" + +#: ../Doc/howto/logging.rst:307 +msgid "which would display something like this:" +msgstr "ce qui affichera quelque chose comme :" + +#: ../Doc/howto/logging.rst:313 +msgid "" +"The format of the *datefmt* argument is the same as supported by :func:`time." +"strftime`." +msgstr "Le format de *datefmt* est le même que celui de :func:`time.strftime`." + +#: ../Doc/howto/logging.rst:318 +msgid "Next Steps" +msgstr "Étapes suivantes" + +#: ../Doc/howto/logging.rst:320 +msgid "" +"That concludes the basic tutorial. It should be enough to get you up and " +"running with logging. There's a lot more that the logging package offers, " +"but to get the best out of it, you'll need to invest a little more of your " +"time in reading the following sections. If you're ready for that, grab some " +"of your favourite beverage and carry on." +msgstr "" +"Nous concluons ainsi le tutoriel basique. Il devrait suffire à vous mettre " +"le pied à l'étrier pour utiliser `logging`. Le module `logging` a beaucoup " +"d'autre cordes à son arc, mais pour en profiter au maximum, vous devez " +"prendre le temps de lire les sections suivantes. Si vous êtes prêt, servez-" +"vous votre boisson préférée et poursuivons." + +#: ../Doc/howto/logging.rst:326 +msgid "" +"If your logging needs are simple, then use the above examples to incorporate " +"logging into your own scripts, and if you run into problems or don't " +"understand something, please post a question on the comp.lang.python Usenet " +"group (available at https://groups.google.com/forum/#!forum/comp.lang." +"python) and you should receive help before too long." +msgstr "" +"Si vos besoins avec `logging` sont simples, vous pouvez incorporer les " +"exemples ci-dessus dans vos scripts. Si vous rencontrez des difficultés ou " +"s'il y a quelque chose que vous ne comprenez pas, vous pouvez poser une " +"question sur le groupe Usenet `comp.lang.python` (accessible à https://" +"groups.google.com/forum/#!forum/comp.lang.python), on vous répondra " +"rapidement." + +#: ../Doc/howto/logging.rst:332 +msgid "" +"Still here? You can carry on reading the next few sections, which provide a " +"slightly more advanced/in-depth tutorial than the basic one above. After " +"that, you can take a look at the :ref:`logging-cookbook`." +msgstr "" +"Vous êtes encore là ? Vous pouvez lire les prochaines sections, qui donnent " +"un peu plus de détails que l'introduction ci-dessus. Après ça, vous pouvez " +"jeter un œil à :ref:`logging-cookbook`." + +#: ../Doc/howto/logging.rst:340 +msgid "Advanced Logging Tutorial" +msgstr "Usage avancé de Logging" + +#: ../Doc/howto/logging.rst:342 +msgid "" +"The logging library takes a modular approach and offers several categories " +"of components: loggers, handlers, filters, and formatters." +msgstr "" +"La bibliothèque de journalisation adopte une approche modulaire et offre " +"différentes catégories de composants : *loggers*, *handlers*, *filters* et " +"*formatters*." + +#: ../Doc/howto/logging.rst:345 +msgid "Loggers expose the interface that application code directly uses." +msgstr "" +"Les enregistreurs (*loggers* en anglais) exposent l'interface que le code de " +"l'application utilise directement." + +#: ../Doc/howto/logging.rst:346 +msgid "" +"Handlers send the log records (created by loggers) to the appropriate " +"destination." +msgstr "" +"Les gestionnaires (*handlers*) envoient les entrées de journal (créés par " +"les *loggers*) vers les destinations voulues." + +#: ../Doc/howto/logging.rst:348 +msgid "" +"Filters provide a finer grained facility for determining which log records " +"to output." +msgstr "" +"Les filtres (*filters*) fournissent un moyen de choisir finement quelles " +"entrées de journal doivent être sorties." + +#: ../Doc/howto/logging.rst:350 +msgid "Formatters specify the layout of log records in the final output." +msgstr "" +"Les formateurs (*formatters*) spécifient la structure de l'entrée de journal " +"dans la sortie finale." + +#: ../Doc/howto/logging.rst:352 +msgid "" +"Log event information is passed between loggers, handlers, filters and " +"formatters in a :class:`LogRecord` instance." +msgstr "" +"L'information relative à un événement est passée entre *loggers*, *handlers* " +"et *formatters* dans une instance de la classe :class:`LogRecord`." + +#: ../Doc/howto/logging.rst:355 +msgid "" +"Logging is performed by calling methods on instances of the :class:`Logger` " +"class (hereafter called :dfn:`loggers`). Each instance has a name, and they " +"are conceptually arranged in a namespace hierarchy using dots (periods) as " +"separators. For example, a logger named 'scan' is the parent of loggers " +"'scan.text', 'scan.html' and 'scan.pdf'. Logger names can be anything you " +"want, and indicate the area of an application in which a logged message " +"originates." +msgstr "" +"La journalisation est réalisée en appelant les méthodes d'instance de la " +"classe :class:`Logger` (que l'on appelle ci-dessous :dfn:`loggers`). Chaque " +"instance a un nom et les instances sont organisées conceptuellement comme " +"des hiérarchies dans l'espace de nommage, en utilisant un point comme " +"séparateur. Par exemple, un `logger` appelé `scan` est le parent des " +"`loggers` `scan.text`, `scan.html` et `scan.pdf`. Les noms des `loggers` " +"peuvent être ce que vous voulez et indiquent le sous-domaine d'une " +"application depuis lequel le message enregistré a été émis." + +#: ../Doc/howto/logging.rst:362 +msgid "" +"A good convention to use when naming loggers is to use a module-level " +"logger, in each module which uses logging, named as follows::" +msgstr "" +"Une bonne convention lorsqu'on nomme les *loggers* est d'utiliser un " +"*logger* au niveau du module, dans chaque module qui emploie `logging`, " +"nommé de la façon suivante ::" + +#: ../Doc/howto/logging.rst:367 +msgid "" +"This means that logger names track the package/module hierarchy, and it's " +"intuitively obvious where events are logged just from the logger name." +msgstr "" +"Cela signifie que le nom d'un `logger` se rapporte à la hiérarchie du paquet " +"et des modules, et il est évident de voir où un événement a été enregistré " +"simplement en regardant le nom du `logger`." + +#: ../Doc/howto/logging.rst:370 +msgid "" +"The root of the hierarchy of loggers is called the root logger. That's the " +"logger used by the functions :func:`debug`, :func:`info`, :func:`warning`, :" +"func:`error` and :func:`critical`, which just call the same-named method of " +"the root logger. The functions and the methods have the same signatures. The " +"root logger's name is printed as 'root' in the logged output." +msgstr "" +"La racine de la hiérarchie des `loggers` est appelée le *root logger*. C'est " +"le `logger` utilisé par les fonctions :func:`debug`, :func:`info`, :func:" +"`warning`, :func:`error` et :func:`critical`, qui appelle en fait les " +"méthodes du même nom de l'objet *root logger*. Les fonctions et les méthodes " +"ont la même signature. Le nom du *root logger* est affiché comme « `root` » " +"dans la sortie." + +#: ../Doc/howto/logging.rst:376 +msgid "" +"It is, of course, possible to log messages to different destinations. " +"Support is included in the package for writing log messages to files, HTTP " +"GET/POST locations, email via SMTP, generic sockets, queues, or OS-specific " +"logging mechanisms such as syslog or the Windows NT event log. Destinations " +"are served by :dfn:`handler` classes. You can create your own log " +"destination class if you have special requirements not met by any of the " +"built-in handler classes." +msgstr "" +"Il est bien sûr possible d'enregistrer des messages pour des destinations " +"différentes. Ce paquet permet d'écrire des entrées de journal dans des " +"fichiers, des ressources HTTP GET/POST, par courriel via SMTP, des " +"connecteurs (*socket* en anglais) génériques, des files d'attente, ou des " +"mécanismes d'enregistrement spécifiques au système d'exploitation, comme " +"*syslog* ou le journal d'événements de Windows NT. Les destinations sont " +"servies par des classes :dfn:`handler`. Vous pouvez créer votre propre " +"classe de destination si vous avez des besoins spéciaux qui ne sont couverts " +"par aucune classe *handler* prédéfinie." + +#: ../Doc/howto/logging.rst:383 +msgid "" +"By default, no destination is set for any logging messages. You can specify " +"a destination (such as console or file) by using :func:`basicConfig` as in " +"the tutorial examples. If you call the functions :func:`debug`, :func:" +"`info`, :func:`warning`, :func:`error` and :func:`critical`, they will check " +"to see if no destination is set; and if one is not set, they will set a " +"destination of the console (``sys.stderr``) and a default format for the " +"displayed message before delegating to the root logger to do the actual " +"message output." +msgstr "" +"Par défaut, aucune destination n'est prédéfinie pour les messages de " +"journalisation. Vous pouvez définir une destination (comme la console ou un " +"fichier) en utilisant :func:`basicConfig` comme dans les exemples donnés " +"dans le tutoriel. Si vous appelez les fonctions :func:`debug`, :func:" +"`info`, :func:`warning`, :func:`error` et :func:`critical`, celles-ci " +"vérifient si une destination a été définie ; si ce n'est pas le cas, la " +"destination est assignée à la console (``sys.stderr``) avec un format par " +"défaut pour le message affiché, avant d'être déléguée au *logger* racine, " +"qui sort le message." + +#: ../Doc/howto/logging.rst:391 +msgid "The default format set by :func:`basicConfig` for messages is:" +msgstr "" +"Le format par défaut des messages est défini par :func:`basicConfig` comme " +"suit ::" + +#: ../Doc/howto/logging.rst:397 +msgid "" +"You can change this by passing a format string to :func:`basicConfig` with " +"the *format* keyword argument. For all options regarding how a format string " +"is constructed, see :ref:`formatter-objects`." +msgstr "" +"Vous pouvez modifier ce comportement en passant une chaîne de formatage à :" +"func:`basicConfig` par l'argument nommé *format*. Consultez :ref:`formatter-" +"objects` pour toutes les options de construction de cette chaîne de " +"formatage." + +#: ../Doc/howto/logging.rst:402 +msgid "Logging Flow" +msgstr "Flux du processus de journalisation" + +#: ../Doc/howto/logging.rst:404 +msgid "" +"The flow of log event information in loggers and handlers is illustrated in " +"the following diagram." +msgstr "" +"Le flux des informations associées à un évènement dans les `loggers` et les " +"`handlers` est illustré dans le diagramme suivant." + +#: ../Doc/howto/logging.rst:410 +msgid "Loggers" +msgstr "Loggers" + +#: ../Doc/howto/logging.rst:412 +msgid "" +":class:`Logger` objects have a threefold job. First, they expose several " +"methods to application code so that applications can log messages at " +"runtime. Second, logger objects determine which log messages to act upon " +"based upon severity (the default filtering facility) or filter objects. " +"Third, logger objects pass along relevant log messages to all interested log " +"handlers." +msgstr "" +"Les objets de classe :class:`Logger` ont un rôle triple. Premièrement, ils " +"exposent plusieurs méthodes au code de l'application, de manière à ce " +"qu'elle puisse enregistrer des messages en cours d'exécution. Deuxièmement, " +"les objets `logger` déterminent sur quel message agir selon leur sévérité (à " +"partir des filtres par défaut) ou selon les objets `filter` associés. " +"Troisièmement, les objets `logger` transmettent les messages pertinents à " +"tous les `handlers` concernés." + +#: ../Doc/howto/logging.rst:418 +msgid "" +"The most widely used methods on logger objects fall into two categories: " +"configuration and message sending." +msgstr "" +"Les méthodes des objets `logger` les plus utilisées appartiennent à deux " +"catégories : la configuration et l'envoi de messages." + +#: ../Doc/howto/logging.rst:421 +msgid "These are the most common configuration methods:" +msgstr "Voici les méthodes de configuration les plus communes :" + +#: ../Doc/howto/logging.rst:423 +msgid "" +":meth:`Logger.setLevel` specifies the lowest-severity log message a logger " +"will handle, where debug is the lowest built-in severity level and critical " +"is the highest built-in severity. For example, if the severity level is " +"INFO, the logger will handle only INFO, WARNING, ERROR, and CRITICAL " +"messages and will ignore DEBUG messages." +msgstr "" +":meth:`Logger.setLevel` spécifie le plus bas niveau de sévérité qu'un " +"`logger` traitera. Ainsi, `debug` est le niveau de sévérité défini par " +"défaut le plus bas et `critical` est le plus haut. Par exemple, si le niveau " +"de sévérité est INFO, le `logger` ne traite que les messages de niveau INFO, " +"WARNING, ERROR et CRITICAL ; il ignore les messages de niveau DEBUG." + +#: ../Doc/howto/logging.rst:429 +msgid "" +":meth:`Logger.addHandler` and :meth:`Logger.removeHandler` add and remove " +"handler objects from the logger object. Handlers are covered in more detail " +"in :ref:`handler-basic`." +msgstr "" +":meth:`Logger.addHandler` et :meth:`Logger.removeHandler` ajoutent ou " +"enlèvent des objets `handlers` au `logger`. Les objets `handlers` sont " +"expliqués plus en détail dans :ref:`handler-basic`." + +#: ../Doc/howto/logging.rst:433 +msgid "" +":meth:`Logger.addFilter` and :meth:`Logger.removeFilter` add and remove " +"filter objects from the logger object. Filters are covered in more detail " +"in :ref:`filter`." +msgstr "" +":meth:`Logger.addFilter` et :meth:`Logger.removeFilter` ajoutent ou enlèvent " +"des objets `filter` au `logger`. Les objets `filters` sont expliqués plus en " +"détail dans :ref:`filter`." + +#: ../Doc/howto/logging.rst:437 +msgid "" +"You don't need to always call these methods on every logger you create. See " +"the last two paragraphs in this section." +msgstr "" +"Comme nous l'expliquons aux deux derniers paragraphes de cette section, vous " +"n'avez pas besoin de faire appel à ces méthodes à chaque fois que vous créez " +"un `logger`." + +#: ../Doc/howto/logging.rst:440 +msgid "" +"With the logger object configured, the following methods create log messages:" +msgstr "" +"Une fois que l'objet `logger` est correctement configuré, les méthodes " +"suivantes permettent de créer un message :" + +#: ../Doc/howto/logging.rst:442 +msgid "" +":meth:`Logger.debug`, :meth:`Logger.info`, :meth:`Logger.warning`, :meth:" +"`Logger.error`, and :meth:`Logger.critical` all create log records with a " +"message and a level that corresponds to their respective method names. The " +"message is actually a format string, which may contain the standard string " +"substitution syntax of ``%s``, ``%d``, ``%f``, and so on. The rest of their " +"arguments is a list of objects that correspond with the substitution fields " +"in the message. With regard to ``**kwargs``, the logging methods care only " +"about a keyword of ``exc_info`` and use it to determine whether to log " +"exception information." +msgstr "" +"Les méthodes :meth:`Logger.debug`, :meth:`Logger.info`, :meth:`Logger." +"warning`, :meth:`Logger.error` et :meth:`Logger.critical` créent des entrées " +"de journal avec un message et un niveau correspondant à leur nom. Le message " +"est en fait une chaîne de caractères qui peut contenir la syntaxe standard " +"de substitution de chaînes de caractères : ``%s``, ``%d``, ``%f``, etc. " +"L'argument suivant est une liste des objets correspondant aux champs à " +"substituer dans le message. En ce qui concerne ``**kwargs``, les méthodes de " +"`logging` ne tiennent compte que du mot clef ``exc_info`` et l'utilisent " +"pour déterminer s'il faut enregistrer les informations associées à une " +"exception." + +#: ../Doc/howto/logging.rst:452 +msgid "" +":meth:`Logger.exception` creates a log message similar to :meth:`Logger." +"error`. The difference is that :meth:`Logger.exception` dumps a stack trace " +"along with it. Call this method only from an exception handler." +msgstr "" +":meth:`Logger.exception` crée un message similaire à :meth:`Logger.error`. " +"La différence est que :meth:`Logger.exception` ajoute la trace de la pile " +"d'exécution au message. On ne peut appeler cette méthode qu'à l'intérieur " +"d'un bloc de gestion d'exception." + +#: ../Doc/howto/logging.rst:456 +msgid "" +":meth:`Logger.log` takes a log level as an explicit argument. This is a " +"little more verbose for logging messages than using the log level " +"convenience methods listed above, but this is how to log at custom log " +"levels." +msgstr "" +":meth:`Logger.log` prend le niveau de sévérité comme argument explicite. " +"C'est un peu plus verbeux pour enregistrer des messages que d'utiliser les " +"méthodes plus pratiques décrites si dessus, mais c'est ce qui permet " +"d'enregistrer des messages pour des niveaux de sévérité définis par " +"l'utilisateur." + +#: ../Doc/howto/logging.rst:460 +msgid "" +":func:`getLogger` returns a reference to a logger instance with the " +"specified name if it is provided, or ``root`` if not. The names are period-" +"separated hierarchical structures. Multiple calls to :func:`getLogger` with " +"the same name will return a reference to the same logger object. Loggers " +"that are further down in the hierarchical list are children of loggers " +"higher up in the list. For example, given a logger with a name of ``foo``, " +"loggers with names of ``foo.bar``, ``foo.bar.baz``, and ``foo.bam`` are all " +"descendants of ``foo``." +msgstr "" +":func:`getLogger` renvoie une référence à un objet `logger` du nom spécifié " +"si celui-ci est donné en argument. Dans le cas contraire, se sera le `logger " +"root`. Ces noms sont des structures hiérarchiques séparées par des points. " +"Des appels répétés à :func:`getLogger` avec le même nom renvoient une " +"référence au même objet `logger`. Les `loggers` qui sont plus bas dans cette " +"liste hiérarchique sont des enfants des `loggers` plus haut dans la liste. " +"Par exemple, si un `logger` a le nom ``foo``, les `loggers` avec les noms " +"``foo.bar``, ``foo.bar.baz``, et ``foo.bam`` sont tous des descendants de " +"``foo``." + +#: ../Doc/howto/logging.rst:468 +msgid "" +"Loggers have a concept of *effective level*. If a level is not explicitly " +"set on a logger, the level of its parent is used instead as its effective " +"level. If the parent has no explicit level set, *its* parent is examined, " +"and so on - all ancestors are searched until an explicitly set level is " +"found. The root logger always has an explicit level set (``WARNING`` by " +"default). When deciding whether to process an event, the effective level of " +"the logger is used to determine whether the event is passed to the logger's " +"handlers." +msgstr "" +"On associe aux `loggers` un concept de *niveau effectif*. Si aucun niveau " +"n'est explicitement défini pour un `logger`, c'est le niveau du parent qui " +"est utilisé comme niveau effectif. Si le parent n'a pas de niveau défini, " +"c'est celui de *son* parent qui est considéré, et ainsi de suite ; on " +"examine tous les ancêtres jusqu'à ce qu'un niveau explicite soit trouvé. Le " +"`logger root` a toujours un niveau explicite (``WARNING`` par défaut). Quand " +"le `logger` traite un événement, c'est ce niveau effectif qui est utilisé " +"pour déterminer si cet événement est transmis à ses `handlers`." + +#: ../Doc/howto/logging.rst:476 +msgid "" +"Child loggers propagate messages up to the handlers associated with their " +"ancestor loggers. Because of this, it is unnecessary to define and configure " +"handlers for all the loggers an application uses. It is sufficient to " +"configure handlers for a top-level logger and create child loggers as " +"needed. (You can, however, turn off propagation by setting the *propagate* " +"attribute of a logger to ``False``.)" +msgstr "" +"Les `loggers` fils font remonter leurs messages aux `handlers` associés à " +"leurs `loggers` parents. De ce fait, il n'est pas nécessaire de définir et " +"configurer des `handlers` pour tous les `loggers` employés par une " +"application. Il suffit de configurer les `handlers` pour un `logger` de haut " +"niveau et de créer des `loggers` fils quand c'est nécessaire (on peut " +"cependant empêcher la propagation aux ancêtres des messages en donnant la " +"valeur ``False`` à l'attribut *propagate* d'un `logger`)." + +#: ../Doc/howto/logging.rst:487 +msgid "Handlers" +msgstr "Handlers" + +#: ../Doc/howto/logging.rst:489 +msgid "" +":class:`~logging.Handler` objects are responsible for dispatching the " +"appropriate log messages (based on the log messages' severity) to the " +"handler's specified destination. :class:`Logger` objects can add zero or " +"more handler objects to themselves with an :meth:`~Logger.addHandler` " +"method. As an example scenario, an application may want to send all log " +"messages to a log file, all log messages of error or higher to stdout, and " +"all messages of critical to an email address. This scenario requires three " +"individual handlers where each handler is responsible for sending messages " +"of a specific severity to a specific location." +msgstr "" +"Les objets de type :class:`~logging.Handler` sont responsables de la " +"distribution des messages (selon leur niveau de sévérité) vers les " +"destinations spécifiées pour ce `handler`. Les objets :class:`Logger` " +"peuvent ajouter des objets `handler` à eux-mêmes en appelant :meth:`~Logger." +"addHandler`. Pour donner un exemple, une application peut envoyer tous les " +"messages dans un fichier journal, tous les messages de niveau `error` ou " +"supérieur vers la sortie standard, et tous les messages de niveau `critical` " +"vers une adresse de courriel. Dans ce scenario, nous avons besoin de trois " +"`handlers`, responsable chacun d'envoyer des messages d'une sévérité donnée " +"vers une destination donnée." + +#: ../Doc/howto/logging.rst:499 +msgid "" +"The standard library includes quite a few handler types (see :ref:`useful-" +"handlers`); the tutorials use mainly :class:`StreamHandler` and :class:" +"`FileHandler` in its examples." +msgstr "" +"La bibliothèque standard inclut déjà un bon nombre de types de gestionnaires " +"(voir :ref:`useful-handlers`) ; le tutoriel utilise surtout :class:" +"`StreamHandler` et :class:`FileHandler` dans ses exemples." + +#: ../Doc/howto/logging.rst:503 +msgid "" +"There are very few methods in a handler for application developers to " +"concern themselves with. The only handler methods that seem relevant for " +"application developers who are using the built-in handler objects (that is, " +"not creating custom handlers) are the following configuration methods:" +msgstr "" +"Peu de méthodes des objets `handlers` sont intéressantes pour les " +"développeurs. Les seules méthodes intéressantes lorsqu'on utilise les objets " +"`handlers` natifs (c'est à dire si l'on ne crée pas d'`handler` " +"personnalisé) sont les méthodes de configuration suivantes :" + +#: ../Doc/howto/logging.rst:508 +msgid "" +"The :meth:`~Handler.setLevel` method, just as in logger objects, specifies " +"the lowest severity that will be dispatched to the appropriate destination. " +"Why are there two :func:`setLevel` methods? The level set in the logger " +"determines which severity of messages it will pass to its handlers. The " +"level set in each handler determines which messages that handler will send " +"on." +msgstr "" +"La méthode :meth:`~Handler.setLevel`, comme celle des objets `logger` permet " +"de spécifier le plus bas niveau de sévérité qui sera distribué à la " +"destination appropriée. Pourquoi y a-t-il deux méthodes :func:`setLevel` ? " +"Le niveau défini dans le `logger` détermine quelle sévérité doit avoir un " +"message pour être transmis à ses `handlers`. Le niveau mis pour chaque " +"`handler` détermine quels messages seront envoyés aux destinations." + +#: ../Doc/howto/logging.rst:514 +msgid "" +":meth:`~Handler.setFormatter` selects a Formatter object for this handler to " +"use." +msgstr "" +":meth:`~Handler.setFormatter` sélectionne l'objet `Formatter` utilisé par " +"cet `handler`." + +#: ../Doc/howto/logging.rst:517 +msgid "" +":meth:`~Handler.addFilter` and :meth:`~Handler.removeFilter` respectively " +"configure and deconfigure filter objects on handlers." +msgstr "" +":meth:`~Handler.addFilter` et :meth:`~Handler.removeFilter` configurent et " +"respectivement dé-configurent des objets `filter` sur les `handlers`." + +#: ../Doc/howto/logging.rst:520 +msgid "" +"Application code should not directly instantiate and use instances of :class:" +"`Handler`. Instead, the :class:`Handler` class is a base class that defines " +"the interface that all handlers should have and establishes some default " +"behavior that child classes can use (or override)." +msgstr "" +"Le code d'une application ne devrait ni instancier, ni utiliser d'instances " +"de la classe :class:`Handler`. La classe :class:`Handler` est plutôt d'une " +"classe de base qui définit l'interface que tous les gestionnaires doivent " +"avoir et établit les comportements par défaut que les classes filles peuvent " +"employer (ou redéfinir)." + +#: ../Doc/howto/logging.rst:527 +msgid "Formatters" +msgstr "Formatters" + +#: ../Doc/howto/logging.rst:529 +msgid "" +"Formatter objects configure the final order, structure, and contents of the " +"log message. Unlike the base :class:`logging.Handler` class, application " +"code may instantiate formatter classes, although you could likely subclass " +"the formatter if your application needs special behavior. The constructor " +"takes three optional arguments -- a message format string, a date format " +"string and a style indicator." +msgstr "" +"Les objets `formatter` configurent l'ordre final, la structure et le contenu " +"du message. Contrairement à la classe de base :class:`logging.Handler`, le " +"code d'une application peut instancier un objet de classe `formatter`, même " +"si vous pouvez toujours sous-classer `formatter` si vous avez besoin d'un " +"comportement spécial dans votre application. Le constructeur a trois " +"arguments optionnels : une chaîne de formatage du message, un chaîne de " +"formatage de la date et un indicateur de style." + +#: ../Doc/howto/logging.rst:538 +msgid "" +"If there is no message format string, the default is to use the raw " +"message. If there is no date format string, the default date format is:" +msgstr "" +"S'il n'y a pas de chaîne de formatage, la chaîne brute est utilisée par " +"défaut. S'il n'y a pas de chaîne de formatage de date, le format de date par " +"défaut est :" + +#: ../Doc/howto/logging.rst:545 +msgid "" +"with the milliseconds tacked on at the end. The ``style`` is one of `%`, '{' " +"or '$'. If one of these is not specified, then '%' will be used." +msgstr "" +"avec les millisecondes en suffixe. Le ``style`` est `%`, `{` ou `$`. Si " +"aucun n'est spécifié, `%` sera utilisé." + +#: ../Doc/howto/logging.rst:548 +msgid "" +"If the ``style`` is '%', the message format string uses ``%()s`` styled string substitution; the possible keys are documented in :" +"ref:`logrecord-attributes`. If the style is '{', the message format string " +"is assumed to be compatible with :meth:`str.format` (using keyword " +"arguments), while if the style is '$' then the message format string should " +"conform to what is expected by :meth:`string.Template.substitute`." +msgstr "" +"Si l'argument ``style`` est `%`, la chaîne de formatage utilise ``%()s`` comme style de substitution de chaîne de caractères ; les " +"clefs possibles sont documentées dans :ref:`logrecord-attributes`. Si le " +"style est `{`, le message de la chaîne de formatage est compatible avec :" +"meth:`str.format` (en employant des arguments à mots clefs). Enfin si le " +"style est `$` alors la chaîne de formatage du message doit être conforme à " +"ce qui est attendu de :meth:`string.Template.substitute`." + +#: ../Doc/howto/logging.rst:555 +msgid "Added the ``style`` parameter." +msgstr "Ajout du paramètre ``style``." + +#: ../Doc/howto/logging.rst:558 +msgid "" +"The following message format string will log the time in a human-readable " +"format, the severity of the message, and the contents of the message, in " +"that order::" +msgstr "" +"La chaîne de formatage de message suivante enregistrera le temps dans un " +"format lisible par les humains, la sévérité du message et son contenu, dans " +"cet ordre ::" + +#: ../Doc/howto/logging.rst:564 +msgid "" +"Formatters use a user-configurable function to convert the creation time of " +"a record to a tuple. By default, :func:`time.localtime` is used; to change " +"this for a particular formatter instance, set the ``converter`` attribute of " +"the instance to a function with the same signature as :func:`time.localtime` " +"or :func:`time.gmtime`. To change it for all formatters, for example if you " +"want all logging times to be shown in GMT, set the ``converter`` attribute " +"in the Formatter class (to ``time.gmtime`` for GMT display)." +msgstr "" +"Les `formatters` emploient une fonction configurable par l'utilisateur pour " +"convertir le temps de création d'une entrée de journal en un tuple. Par " +"défaut, :func:`time.localtime` est employé ; pour changer cela pour une " +"instance particulière de `formatter`, assignez une fonction avec la même " +"signature que :func:`time.localtime` ou :func:`time.gmtime` à l'attribut " +"``converter`` de cette instance. Pour changer cela pour tous les " +"`formatters`, par exemple si vous voulez que tous votre horodatage soit " +"affiché en GMT, changez l'attribut ``converter`` de la classe ``Formatter`` " +"en ``time.gmtime``." + +#: ../Doc/howto/logging.rst:574 +msgid "Configuring Logging" +msgstr "Configuration de `Logging`" + +#: ../Doc/howto/logging.rst:578 +msgid "Programmers can configure logging in three ways:" +msgstr "On peut configurer `logging` de trois façons :" + +#: ../Doc/howto/logging.rst:580 +msgid "" +"Creating loggers, handlers, and formatters explicitly using Python code that " +"calls the configuration methods listed above." +msgstr "" +"Créer des `loggers`, `handlers` et `formatters` explicitement en utilisant " +"du code Python qui appelle les méthodes de configuration listées ci-dessus." + +#: ../Doc/howto/logging.rst:582 +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:584 +msgid "" +"Creating a dictionary of configuration information and passing it to the :" +"func:`dictConfig` function." +msgstr "" +"Créer un dictionnaire d'informations de configuration et le passer à la " +"fonction :func:`dictConfig`." + +#: ../Doc/howto/logging.rst:587 +msgid "" +"For the reference documentation on the last two options, see :ref:`logging-" +"config-api`. The following example configures a very simple logger, a " +"console handler, and a simple formatter using Python code::" +msgstr "" +"Pour la documentation de référence de ces deux dernières options, voyez :ref:" +"`logging-config-api`. L'exemple suivant configure un `logger` très simple, " +"un `handler` employant la console, et un `formatter` simple en utilisant du " +"code Python ::" + +#: ../Doc/howto/logging.rst:617 +msgid "" +"Running this module from the command line produces the following output:" +msgstr "" +"L'exécution de ce module via la ligne de commande produit la sortie " +"suivante :" + +#: ../Doc/howto/logging.rst:628 +msgid "" +"The following Python module creates a logger, handler, and formatter nearly " +"identical to those in the example listed above, with the only difference " +"being the names of the objects::" +msgstr "" +"Le module Python suivant crée un *logger*, un *handler* et un *formatter* " +"identiques à ceux de l'exemple détaillé au-dessus, au nom des objets près ::" + +#: ../Doc/howto/logging.rst:647 +msgid "Here is the logging.conf file:" +msgstr "Voici le fichier *logging.conf* :" + +#: ../Doc/howto/logging.rst:680 +msgid "" +"The output is nearly identical to that of the non-config-file-based example:" +msgstr "" +"La sortie est presque identique à celle de l'exemple qui n'est pas basé sur " +"un fichier de configuration :" + +#: ../Doc/howto/logging.rst:691 +msgid "" +"You can see that the config file approach has a few advantages over the " +"Python code approach, mainly separation of configuration and code and the " +"ability of noncoders to easily modify the logging properties." +msgstr "" +"Vous pouvez constatez les avantages de l'approche par fichier de " +"configuration par rapport à celle du code Python, principalement la " +"séparation de la configuration et du code, et la possibilité pour une " +"personne qui ne code pas de modifier facilement les propriétés de `logging`." + +#: ../Doc/howto/logging.rst:695 +msgid "" +"The :func:`fileConfig` function takes a default parameter, " +"``disable_existing_loggers``, which defaults to ``True`` for reasons of " +"backward compatibility. This may or may not be what you want, since it will " +"cause any non-root loggers existing before the :func:`fileConfig` call to be " +"disabled unless they (or an ancestor) are explicitly named in the " +"configuration. Please refer to the reference documentation for more " +"information, and specify ``False`` for this parameter if you wish." +msgstr "" +"La fonction :func:`fileConfig` accepte un paramètre par défaut " +"``disable_existing_loggers``, qui vaut ``True`` par défaut pour des raisons " +"de compatibilité ascendante. Ce n'est pas forcément ce que vous souhaitez : " +"en effet, tous les *loggers* créés avant l'appel à :func:`fileConfig` seront " +"désactivés sauf si eux-mêmes (ou l'un de leurs parents) sont explicitement " +"nommés dans le fichier de configuration. Veuillez vous rapporter à la " +"documentation pour plus de détails, et donner la valeur ``False`` à ce " +"paramètre si vous le souhaitez." + +#: ../Doc/howto/logging.rst:703 +msgid "" +"The dictionary passed to :func:`dictConfig` can also specify a Boolean value " +"with key ``disable_existing_loggers``, which if not specified explicitly in " +"the dictionary also defaults to being interpreted as ``True``. This leads to " +"the logger-disabling behaviour described above, which may not be what you " +"want - in which case, provide the key explicitly with a value of ``False``." +msgstr "" +"Le dictionnaire passé à :func:`dictConfig` peut aussi spécifier une valeur " +"Booléenne pour la clef ``disable_existing_loggers``. Si cette valeur n'est " +"pas donnée, elle est interprétée comme vraie par défaut. Cela conduit au " +"comportement de désactivation des *loggers* décrit ci-dessus, qui n'est pas " +"forcément celui que vous souhaitez ; dans ce cas, donnez explicitement la " +"valeur ``False`` à cette clef." + +#: ../Doc/howto/logging.rst:713 +msgid "" +"Note that the class names referenced in config files need to be either " +"relative to the logging module, or absolute values which can be resolved " +"using normal import mechanisms. Thus, you could use either :class:`~logging." +"handlers.WatchedFileHandler` (relative to the logging module) or ``mypackage." +"mymodule.MyHandler`` (for a class defined in package ``mypackage`` and " +"module ``mymodule``, where ``mypackage`` is available on the Python import " +"path)." +msgstr "" +"Notez que les noms de classe référencés dans le fichier de configuration " +"doivent être relatifs au module `logging`, ou des valeurs absolues qui " +"peuvent être résolues à travers les mécanismes d'importation habituels. " +"Ainsi, on peut soit utiliser :class:`~logging.handlers.WatchedFileHandler` " +"(relativement au module `logging`) ou ``mypackage.mymodule.MyHandler`` (pour " +"une classe définie dans le paquet ``mypackage`` et le module ``mymodule``, " +"si ``mypackage`` est disponible dans les chemins d'importation de Python)." + +#: ../Doc/howto/logging.rst:721 +msgid "" +"In Python 3.2, a new means of configuring logging has been introduced, using " +"dictionaries to hold configuration information. This provides a superset of " +"the functionality of the config-file-based approach outlined above, and is " +"the recommended configuration method for new applications and deployments. " +"Because a Python dictionary is used to hold configuration information, and " +"since you can populate that dictionary using different means, you have more " +"options for configuration. For example, you can use a configuration file in " +"JSON format, or, if you have access to YAML processing functionality, a file " +"in YAML format, to populate the configuration dictionary. Or, of course, you " +"can construct the dictionary in Python code, receive it in pickled form over " +"a socket, or use whatever approach makes sense for your application." +msgstr "" +"Dans Python 3.2, un nouveau moyen de configuration de la journalisation a " +"été introduit, à l'aide de dictionnaires pour contenir les informations de " +"configuration. Cela fournit un sur-ensemble de la fonctionnalité décrite ci-" +"dessus basée sur un fichier de configuration et c’est la méthode recommandée " +"pour les nouvelles applications et les déploiements. Étant donné qu'un " +"dictionnaire Python est utilisé pour contenir des informations de " +"configuration et que vous pouvez remplir ce dictionnaire à l'aide de " +"différents moyens, vous avez plus d'options pour la configuration. Par " +"exemple, vous pouvez utiliser un fichier de configuration au format JSON ou, " +"si vous avez accès à la fonctionnalité de traitement YAML, un fichier au " +"format YAML, pour remplir le dictionnaire de configuration. Ou bien sûr, " +"vous pouvez construire le dictionnaire dans le code Python, le recevoir sous " +"forme de *pickle* sur un connecteur, ou utiliser n'importe quelle approche " +"suivant la logique de votre application." + +#: ../Doc/howto/logging.rst:733 +msgid "" +"Here's an example of the same configuration as above, in YAML format for the " +"new dictionary-based approach:" +msgstr "" +"Voici un exemple définissant la même configuration que ci-dessus, au format " +"YAML pour le dictionnaire correspondant à cette nouvelle approche :" + +#: ../Doc/howto/logging.rst:757 +msgid "" +"For more information about logging using a dictionary, see :ref:`logging-" +"config-api`." +msgstr "" +"Pour plus d'informations sur la journalisation à l'aide d'un dictionnaire, " +"consultez :ref:`logging-config-api`." + +#: ../Doc/howto/logging.rst:761 +msgid "What happens if no configuration is provided" +msgstr "Comportement par défaut (si aucune configuration n'est fournie)" + +#: ../Doc/howto/logging.rst:763 +msgid "" +"If no logging configuration is provided, it is possible to have a situation " +"where a logging event needs to be output, but no handlers can be found to " +"output the event. The behaviour of the logging package in these " +"circumstances is dependent on the Python version." +msgstr "" +"Si aucune configuration de journalisation n'est fournie, il est possible " +"d'avoir une situation où un événement doit faire l'objet d'une " +"journalisation, mais où aucun gestionnaire ne peut être trouvé pour tracer " +"l'événement. Le comportement du paquet ``logging`` dans ces circonstances " +"dépend de la version Python." + +#: ../Doc/howto/logging.rst:768 +msgid "For versions of Python prior to 3.2, the behaviour is as follows:" +msgstr "" +"Pour les versions de Python antérieures à 3.2, le comportement est le " +"suivant :" + +#: ../Doc/howto/logging.rst:770 +msgid "" +"If *logging.raiseExceptions* is ``False`` (production mode), the event is " +"silently dropped." +msgstr "" +"Si *logging.raiseExceptions* vaut ``False`` (mode production), l’événement " +"est silencieusement abandonné." + +#: ../Doc/howto/logging.rst:773 +msgid "" +"If *logging.raiseExceptions* is ``True`` (development mode), a message 'No " +"handlers could be found for logger X.Y.Z' is printed once." +msgstr "" +"Si *logging.raiseExceptions* vaut ``True`` (mode de développement), un " +"message *No handlers could be found for logger X.Y.Z* est écrit sur la " +"sortie standard une fois." + +#: ../Doc/howto/logging.rst:776 +msgid "In Python 3.2 and later, the behaviour is as follows:" +msgstr "Dans Python 3.2 et ultérieur, le comportement est le suivant :" + +#: ../Doc/howto/logging.rst:778 +msgid "" +"The event is output using a 'handler of last resort', stored in ``logging." +"lastResort``. This internal handler is not associated with any logger, and " +"acts like a :class:`~logging.StreamHandler` which writes the event " +"description message to the current value of ``sys.stderr`` (therefore " +"respecting any redirections which may be in effect). No formatting is done " +"on the message - just the bare event description message is printed. The " +"handler's level is set to ``WARNING``, so all events at this and greater " +"severities will be output." +msgstr "" +"L'événement est sorti à l'aide d'un « gestionnaire de dernier recours », " +"stocké dans ``logging.lastResort``. Ce gestionnaire interne n'est associé à " +"aucun enregistreur et agit comme un :class:`~logging.StreamHandler` qui " +"écrit le message de description de l'événement vers la valeur actuelle de " +"``sys.stderr`` (par conséquent, en respectant les redirections qui peuvent " +"être en vigueur). Aucun formatage n'est fait sur le message – juste le " +"message de description de l'événement nu est affiché. Le niveau du " +"gestionnaire est défini sur ``WARNING``, de sorte que tous les événements de " +"cette sévérité et plus seront écrits." + +#: ../Doc/howto/logging.rst:787 +msgid "" +"To obtain the pre-3.2 behaviour, ``logging.lastResort`` can be set to " +"``None``." +msgstr "" +"Pour obtenir un comportement antérieur à 3.2, ``logging.lastResort`` peut " +"être mis à ``None``." + +#: ../Doc/howto/logging.rst:792 +msgid "Configuring Logging for a Library" +msgstr "Configuration de la journalisation pour une bibliothèque" + +#: ../Doc/howto/logging.rst:794 +msgid "" +"When developing a library which uses logging, you should take care to " +"document how the library uses logging - for example, the names of loggers " +"used. Some consideration also needs to be given to its logging " +"configuration. If the using application does not use logging, and library " +"code makes logging calls, then (as described in the previous section) events " +"of severity ``WARNING`` and greater will be printed to ``sys.stderr``. This " +"is regarded as the best default behaviour." +msgstr "" +"Lors du développement d'une bibliothèque qui utilise la journalisation, vous " +"devez prendre soin de documenter la façon dont la bibliothèque utilise la " +"journalisation (par exemple, les noms des enregistreurs utilisés). Consacrez " +"aussi un peu de temps à la configuration de la journalisation. Si " +"l'application utilisant votre bibliothèque n'utilise pas la journalisation " +"et que le code de la bibliothèque effectue des appels de journalisation, " +"alors (comme décrit dans la section précédente), les événements de gravité " +"``WARNING`` et au-dessus seront écrits sur ``sys.stderr``. Cela est " +"considéré comme le meilleur comportement par défaut." + +#: ../Doc/howto/logging.rst:802 +msgid "" +"If for some reason you *don't* want these messages printed in the absence of " +"any logging configuration, you can attach a do-nothing handler to the top-" +"level logger for your library. This avoids the message being printed, since " +"a handler will always be found for the library's events: it just doesn't " +"produce any output. If the library user configures logging for application " +"use, presumably that configuration will add some handlers, and if levels are " +"suitably configured then logging calls made in library code will send output " +"to those handlers, as normal." +msgstr "" +"Si, pour une raison quelconque, vous ne voulez *pas* que ces messages soient " +"affichés en l'absence de toute configuration de journalisation, vous pouvez " +"attacher un gestionnaire *ne-fait-rien* à l'enregistreur de niveau supérieur " +"de votre bibliothèque. Cela évite qu’un message ne soit écrit, puisqu’un " +"gestionnaire sera toujours trouvé pour les événements de la bibliothèque, il " +"ne produit tout simplement pas de sortie. Si celui qui utilise la " +"bibliothèque configure la journalisation pour son application, il est " +"vraisemblable que la configuration ajoutera certains gestionnaires et, si " +"les niveaux sont convenablement configurés, alors la journalisation des " +"appels effectués dans le code de bibliothèque enverra la sortie à ces " +"gestionnaires, comme d'habitude." + +#: ../Doc/howto/logging.rst:811 +msgid "" +"A do-nothing handler is included in the logging package: :class:`~logging." +"NullHandler` (since Python 3.1). An instance of this handler could be added " +"to the top-level logger of the logging namespace used by the library (*if* " +"you want to prevent your library's logged events being output to ``sys." +"stderr`` in the absence of logging configuration). If all logging by a " +"library *foo* is done using loggers with names matching 'foo.x', 'foo.x.y', " +"etc. then the code::" +msgstr "" +"Un gestionnaire *ne-fait-rien* est inclus dans le paquet de " +"journalisation : :class:`~logging.NullHandler` (depuis Python 3.1). Une " +"instance de ce gestionnaire peut être ajoutée à l'enregistreur de niveau " +"supérieur de l'espace de nommage de journalisation utilisé par la " +"bibliothèque (*si* vous souhaitez empêcher la copie de la journalisation de " +"votre bibliothèque dans ``sys.stderr`` en l'absence de configuration de " +"journalisation). Si toute la journalisation par une bibliothèque *foo* est " +"effectuée en utilisant des enregistreurs avec des noms correspondant à *foo." +"x*, *foo.x.y*, etc., alors le code ::" + +#: ../Doc/howto/logging.rst:822 +msgid "" +"should have the desired effect. If an organisation produces a number of " +"libraries, then the logger name specified can be 'orgname.foo' rather than " +"just 'foo'." +msgstr "" +"doit avoir l'effet désiré. Si une organisation produit un certain nombre de " +"bibliothèques, le nom de l'enregistreur spécifié peut être ``orgname.foo`` " +"plutôt que simplement ``foo``." + +#: ../Doc/howto/logging.rst:826 +msgid "" +"It is strongly advised that you *do not add any handlers other than* :class:" +"`~logging.NullHandler` *to your library's loggers*. This is because the " +"configuration of handlers is the prerogative of the application developer " +"who uses your library. The application developer knows their target audience " +"and what handlers are most appropriate for their application: if you add " +"handlers 'under the hood', you might well interfere with their ability to " +"carry out unit tests and deliver logs which suit their requirements." +msgstr "" +"Il est vivement conseillé de ne *pas ajouter de gestionnaires autres que* :" +"class:`~logging.NullHandler` *aux enregistreurs de votre bibliothèque*. Cela " +"est dû au fait que la configuration des gestionnaires est la prérogative du " +"développeur d'applications qui utilise votre bibliothèque. Le développeur " +"d'applications connaît le public cible et les gestionnaires les plus " +"appropriés pour ses applications : si vous ajoutez des gestionnaires « sous " +"le manteau », vous pourriez bien interférer avec les tests unitaires et la " +"journalisation qui convient à ses exigences." + +#: ../Doc/howto/logging.rst:837 +msgid "Logging Levels" +msgstr "Niveaux de journalisation" + +#: ../Doc/howto/logging.rst:839 +msgid "" +"The numeric values of logging levels are given in the following table. These " +"are primarily of interest if you want to define your own levels, and need " +"them to have specific values relative to the predefined levels. If you " +"define a level with the same numeric value, it overwrites the predefined " +"value; the predefined name is lost." +msgstr "" +"Les valeurs numériques des niveaux de journalisation sont données dans le " +"tableau suivant. Celles-ci n'ont d'intérêt que si vous voulez définir vos " +"propres niveaux, avec des valeurs spécifiques par rapport aux niveaux " +"prédéfinis. Si vous définissez un niveau avec la même valeur numérique, il " +"écrase la valeur prédéfinie ; le nom prédéfini est perdu." + +#: ../Doc/howto/logging.rst:846 +msgid "Numeric value" +msgstr "Valeur numérique" + +#: ../Doc/howto/logging.rst:848 +msgid "50" +msgstr "50" + +#: ../Doc/howto/logging.rst:850 +msgid "40" +msgstr "40" + +#: ../Doc/howto/logging.rst:852 +msgid "30" +msgstr "30" + +#: ../Doc/howto/logging.rst:854 +msgid "20" +msgstr "20" + +#: ../Doc/howto/logging.rst:856 +msgid "10" +msgstr "10" + +#: ../Doc/howto/logging.rst:858 +msgid "``NOTSET``" +msgstr "``NOTSET``" + +#: ../Doc/howto/logging.rst:858 +msgid "0" +msgstr "0" + +#: ../Doc/howto/logging.rst:861 +msgid "" +"Levels can also be associated with loggers, being set either by the " +"developer or through loading a saved logging configuration. When a logging " +"method is called on a logger, the logger compares its own level with the " +"level associated with the method call. If the logger's level is higher than " +"the method call's, no logging message is actually generated. This is the " +"basic mechanism controlling the verbosity of logging output." +msgstr "" +"Les niveaux peuvent également être associés à des enregistreurs, étant " +"définis soit par le développeur, soit par le chargement d'une configuration " +"de journalisation enregistrée. Lorsqu'une méthode de journalisation est " +"appelée sur un enregistreur, l'enregistreur compare son propre niveau avec " +"le niveau associé à l'appel de méthode. Si le niveau de l'enregistreur est " +"supérieur à l'appel de méthode, aucun message de journalisation n'est " +"réellement généré. C'est le mécanisme de base contrôlant la verbosité de la " +"sortie de journalisation." + +#: ../Doc/howto/logging.rst:868 +msgid "" +"Logging messages are encoded as instances of the :class:`~logging.LogRecord` " +"class. When a logger decides to actually log an event, a :class:`~logging." +"LogRecord` instance is created from the logging message." +msgstr "" +"Les messages de journalisation sont codés en tant qu'instances de :class:" +"`~logging.LogRecord`. Lorsqu'un enregistreur décide de réellement " +"enregistrer un événement, une instance de :class:`~logging.LogRecord` est " +"créée à partir du message de journalisation." + +#: ../Doc/howto/logging.rst:872 +msgid "" +"Logging messages are subjected to a dispatch mechanism through the use of :" +"dfn:`handlers`, which are instances of subclasses of the :class:`Handler` " +"class. Handlers are responsible for ensuring that a logged message (in the " +"form of a :class:`LogRecord`) ends up in a particular location (or set of " +"locations) which is useful for the target audience for that message (such as " +"end users, support desk staff, system administrators, developers). Handlers " +"are passed :class:`LogRecord` instances intended for particular " +"destinations. Each logger can have zero, one or more handlers associated " +"with it (via the :meth:`~Logger.addHandler` method of :class:`Logger`). In " +"addition to any handlers directly associated with a logger, *all handlers " +"associated with all ancestors of the logger* are called to dispatch the " +"message (unless the *propagate* flag for a logger is set to a false value, " +"at which point the passing to ancestor handlers stops)." +msgstr "" +"Les messages de journalisation sont soumis à un mécanisme d'expédition via " +"l'utilisation de :dfn:`handlers`, qui sont des instances de sous-classes de " +"la classe :class:`Handler`. Les gestionnaires sont chargés de s'assurer " +"qu'un message journalisé (sous la forme d'un :class:`LogRecord`) atterrit " +"dans un emplacement particulier (ou un ensemble d'emplacements) qui est " +"utile pour le public cible pour ce message (tels que les utilisateurs " +"finaux, le personnel chargé de l'assistance aux utilisateurs, les " +"administrateurs système ou les développeurs). Des instances de :class:" +"`LogRecord` adaptées à leur destination finale sont passées aux " +"gestionnaires destinées à des destinations particulières. Chaque " +"enregistreur peut avoir zéro, un ou plusieurs gestionnaires associés à celui-" +"ci (via la méthode :meth:`~Logger.addHandler` de :class:`Logger`). En plus " +"de tous les gestionnaires directement associés à un enregistreur, *tous les " +"gestionnaires associés à tous les ancêtres de l'enregistreur* sont appelés " +"pour envoyer le message (à moins que l'indicateur *propager* pour un " +"enregistreur soit défini sur la valeur ``False``, auquel cas le passage à " +"l'ancêtre gestionnaires s'arrête)." + +#: ../Doc/howto/logging.rst:886 +msgid "" +"Just as for loggers, handlers can have levels associated with them. A " +"handler's level acts as a filter in the same way as a logger's level does. " +"If a handler decides to actually dispatch an event, the :meth:`~Handler." +"emit` method is used to send the message to its destination. Most user-" +"defined subclasses of :class:`Handler` will need to override this :meth:" +"`~Handler.emit`." +msgstr "" +"Tout comme pour les enregistreurs, les gestionnaires peuvent avoir des " +"niveaux associés. Le niveau d'un gestionnaire agit comme un filtre de la " +"même manière que le niveau d'un enregistreur. Si un gestionnaire décide de " +"réellement distribuer un événement, la méthode :meth:`~Handler.emit` est " +"utilisée pour envoyer le message à sa destination. La plupart des sous-" +"classes définies par l'utilisateur de :class:`Handler` devront remplacer ce :" +"meth:`~Handler.emit`." + +#: ../Doc/howto/logging.rst:895 +msgid "Custom Levels" +msgstr "Niveaux personnalisés" + +#: ../Doc/howto/logging.rst:897 +msgid "" +"Defining your own levels is possible, but should not be necessary, as the " +"existing levels have been chosen on the basis of practical experience. " +"However, if you are convinced that you need custom levels, great care should " +"be exercised when doing this, and it is possibly *a very bad idea to define " +"custom levels if you are developing a library*. That's because if multiple " +"library authors all define their own custom levels, there is a chance that " +"the logging output from such multiple libraries used together will be " +"difficult for the using developer to control and/or interpret, because a " +"given numeric value might mean different things for different libraries." +msgstr "" +"La définition de vos propres niveaux est possible, mais ne devrait pas être " +"nécessaire, car les niveaux existants ont été choisis par expérience. " +"Cependant, si vous êtes convaincu que vous avez besoin de niveaux " +"personnalisés, prenez grand soin à leur réalisation et il est pratiquement " +"certain que c’est *une très mauvaise idée de définir des niveaux " +"personnalisés si vous développez une bibliothèque*. Car si plusieurs auteurs " +"de bibliothèque définissent tous leurs propres niveaux personnalisés, il y a " +"une chance que la sortie de journalisation de ces multiples bibliothèques " +"utilisées ensemble sera difficile pour le développeur à utiliser pour " +"contrôler et/ou interpréter, car une valeur numérique donnée peut signifier " +"des choses différentes pour différentes bibliothèques." + +#: ../Doc/howto/logging.rst:910 +msgid "Useful Handlers" +msgstr "Gestionnaires utiles" + +#: ../Doc/howto/logging.rst:912 +msgid "" +"In addition to the base :class:`Handler` class, many useful subclasses are " +"provided:" +msgstr "" +"En plus de la classe de base :class:`Handler`, de nombreuses sous-classes " +"utiles sont fournies :" + +#: ../Doc/howto/logging.rst:915 +msgid "" +":class:`StreamHandler` instances send messages to streams (file-like " +"objects)." +msgstr "" +"Les instances :class:`StreamHandler` envoient des messages aux flux (objets " +"de type fichier)." + +#: ../Doc/howto/logging.rst:918 +msgid ":class:`FileHandler` instances send messages to disk files." +msgstr "" +"Les instances :class:`FileHandler` envoient des messages à des fichiers sur " +"le disque." + +#: ../Doc/howto/logging.rst:920 +msgid "" +":class:`~handlers.BaseRotatingHandler` is the base class for handlers that " +"rotate log files at a certain point. It is not meant to be instantiated " +"directly. Instead, use :class:`~handlers.RotatingFileHandler` or :class:" +"`~handlers.TimedRotatingFileHandler`." +msgstr "" +":class:`~handlers.BaseRotatingHandler` est la classe de base pour les " +"gestionnaires qui assurent la rotation des fichiers de journalisation à " +"partir d’un certain point. Elle n'est pas destinée à être instanciée " +"directement. Utilisez plutôt :class:`~handlers.RotatingFileHandler` ou :" +"class:`~handlers.TimedRotatingFileHandler`." + +#: ../Doc/howto/logging.rst:925 +msgid "" +":class:`~handlers.RotatingFileHandler` instances send messages to disk " +"files, with support for maximum log file sizes and log file rotation." +msgstr "" +"Les instances :class:`~handlers.RotatingFileHandler` envoient des messages à " +"des fichiers sur le disque, avec la prise en charge des tailles maximales de " +"fichiers de journalisation et de la rotation des fichiers de journalisation." + +#: ../Doc/howto/logging.rst:928 +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:931 +msgid "" +":class:`~handlers.SocketHandler` instances send messages to TCP/IP sockets. " +"Since 3.4, Unix domain sockets are also supported." +msgstr "" +"Les instances de :class:`~handlers.SocketHandler` envoient des messages aux " +"connecteurs TCP/IP. Depuis 3.4, les connecteurs UNIX sont également pris en " +"charge." + +#: ../Doc/howto/logging.rst:934 +msgid "" +":class:`~handlers.DatagramHandler` instances send messages to UDP sockets. " +"Since 3.4, Unix domain sockets are also supported." +msgstr "" +"Les instances de :class:`~handlers.DatagramHandler` envoient des messages " +"aux connecteurs UDP. Depuis 3.4, les connecteurs UNIX sont également pris en " +"charge." + +#: ../Doc/howto/logging.rst:937 +msgid "" +":class:`~handlers.SMTPHandler` instances send messages to a designated email " +"address." +msgstr "" +"Les instances de :class:`~handlers.SMTPHandler` envoient des messages à une " +"adresse e-mail désignée." + +#: ../Doc/howto/logging.rst:940 +msgid "" +":class:`~handlers.SysLogHandler` instances send messages to a Unix syslog " +"daemon, possibly on a remote machine." +msgstr "" +"Les instances de :class:`~handlers.SysLogHandler` envoient des messages à un " +"*daemon* *syslog* UNIX, éventuellement sur un ordinateur distant." + +#: ../Doc/howto/logging.rst:943 +msgid "" +":class:`~handlers.NTEventLogHandler` instances send messages to a Windows " +"NT/2000/XP event log." +msgstr "" +"Les instances de :class:`~handlers.NTEventLogHandler` envoient des messages " +"à un journal des événements Windows NT/2000/XP." + +#: ../Doc/howto/logging.rst:946 +msgid "" +":class:`~handlers.MemoryHandler` instances send messages to a buffer in " +"memory, which is flushed whenever specific criteria are met." +msgstr "" +"Les instances de :class:`~handlers.MemoryHandler` envoient des messages à un " +"tampon en mémoire, qui est vidé chaque fois que des critères spécifiques " +"sont remplis." + +#: ../Doc/howto/logging.rst:949 +msgid "" +":class:`~handlers.HTTPHandler` instances send messages to an HTTP server " +"using either ``GET`` or ``POST`` semantics." +msgstr "" +"Les instances de :class:`~handlers.HTTPHandler` envoient des messages à un " +"serveur HTTP à l'aide de la sémantique ``GET`` ou ``POST``." + +#: ../Doc/howto/logging.rst:952 +msgid "" +":class:`~handlers.WatchedFileHandler` instances watch the file they are " +"logging to. If the file changes, it is closed and reopened using the file " +"name. This handler is only useful on Unix-like systems; Windows does not " +"support the underlying mechanism used." +msgstr "" +"Les instances de :class:`~handlers.WatchedFileHandler` surveillent le " +"fichier sur lequel elles se connectent. Si le fichier change, il est fermé " +"et rouvert à l'aide du nom de fichier. Ce gestionnaire n'est utile que sur " +"les systèmes de type UNIX ; Windows ne prend pas en charge le mécanisme sous-" +"jacent utilisé." + +#: ../Doc/howto/logging.rst:957 +msgid "" +":class:`~handlers.QueueHandler` instances send messages to a queue, such as " +"those implemented in the :mod:`queue` or :mod:`multiprocessing` modules." +msgstr "" +"Les instances de :class:`~handlers.QueueHandler` envoient des messages à une " +"file d'attente, telles que celles implémentées dans les modules :mod:`queue` " +"ou :mod:`multiprocessing`." + +#: ../Doc/howto/logging.rst:960 +msgid "" +":class:`NullHandler` instances do nothing with error messages. They are used " +"by library developers who want to use logging, but want to avoid the 'No " +"handlers could be found for logger XXX' message which can be displayed if " +"the library user has not configured logging. See :ref:`library-config` for " +"more information." +msgstr "" +"Les instances :class:`NullHandler` ne font rien avec les messages d'erreur. " +"Ils sont utilisés par les développeurs de bibliothèques qui veulent utiliser " +"la journalisation, mais qui veulent éviter les messages de type *No handlers " +"could be found for logger XXX*, affiché si celui qui utilise la bibliothèque " +"n'a pas configuré la journalisation. Voir :ref:`library-config` pour plus " +"d'informations." + +#: ../Doc/howto/logging.rst:966 +msgid "The :class:`NullHandler` class." +msgstr "La classe :class:`NullHandler`." + +#: ../Doc/howto/logging.rst:969 +msgid "The :class:`~handlers.QueueHandler` class." +msgstr "La classe :class:`~handlers.QueueHandler`." + +#: ../Doc/howto/logging.rst:972 +msgid "" +"The :class:`NullHandler`, :class:`StreamHandler` and :class:`FileHandler` " +"classes are defined in the core logging package. The other handlers are " +"defined in a sub-module, :mod:`logging.handlers`. (There is also another sub-" +"module, :mod:`logging.config`, for configuration functionality.)" +msgstr "" +"Les classes :class:`NullHandler`, :class:`StreamHandler` et :class:" +"`FileHandler` sont définies dans le module de journalisation de base. Les " +"autres gestionnaires sont définis dans un sous-module, :mod:`logging." +"handlers` (il existe également un autre sous-module, :mod:`logging.config`, " +"pour la fonctionnalité de configuration)." + +#: ../Doc/howto/logging.rst:977 +msgid "" +"Logged messages are formatted for presentation through instances of the :" +"class:`Formatter` class. They are initialized with a format string suitable " +"for use with the % operator and a dictionary." +msgstr "" +"Les messages journalisés sont mis en forme pour la présentation via des " +"instances de la classe :class:`Formatter`. Ils sont initialisés avec une " +"chaîne de format appropriée pour une utilisation avec l'opérateur % et un " +"dictionnaire." + +#: ../Doc/howto/logging.rst:981 +msgid "" +"For formatting multiple messages in a batch, instances of :class:`~handlers." +"BufferingFormatter` can be used. In addition to the format string (which is " +"applied to each message in the batch), there is provision for header and " +"trailer format strings." +msgstr "" +"Pour formater plusieurs messages dans un lot, des instances de :class:" +"`~handlers.BufferingFormatter` peuvent être utilisées. En plus de la chaîne " +"de format (qui est appliquée à chaque message dans le lot), il existe des " +"dispositions pour les chaînes de format d'en-tête et de fin." + +#: ../Doc/howto/logging.rst:986 +msgid "" +"When filtering based on logger level and/or handler level is not enough, " +"instances of :class:`Filter` can be added to both :class:`Logger` and :class:" +"`Handler` instances (through their :meth:`~Handler.addFilter` method). " +"Before deciding to process a message further, both loggers and handlers " +"consult all their filters for permission. If any filter returns a false " +"value, the message is not processed further." +msgstr "" +"Lorsque le filtrage basé sur le niveau de l'enregistreur et/ou le niveau du " +"gestionnaire ne suffit pas, les instances de :class:`Filter` peuvent être " +"ajoutées aux deux instances de :class:`Logger` et :class:`Handler` (par le " +"biais de leur méthode :meth:`~Handler.addFilter`). Avant de décider de " +"traiter un message plus loin, les enregistreurs et les gestionnaires " +"consultent tous leurs filtres pour obtenir l'autorisation. Si un filtre " +"renvoie une valeur ``False``, le traitement du message est arrêté." + +#: ../Doc/howto/logging.rst:993 +msgid "" +"The basic :class:`Filter` functionality allows filtering by specific logger " +"name. If this feature is used, messages sent to the named logger and its " +"children are allowed through the filter, and all others dropped." +msgstr "" +"La fonctionnalité de base :class:`Filter` permet de filtrer par nom de " +"*logger* spécifique. Si cette fonctionnalité est utilisée, les messages " +"envoyés à l'enregistreur nommé et à ses enfants sont autorisés via le filtre " +"et tous les autres sont abandonnés." + +#: ../Doc/howto/logging.rst:1001 +msgid "Exceptions raised during logging" +msgstr "Exceptions levées par la journalisation" + +#: ../Doc/howto/logging.rst:1003 +msgid "" +"The logging package is designed to swallow exceptions which occur while " +"logging in production. This is so that errors which occur while handling " +"logging events - such as logging misconfiguration, network or other similar " +"errors - do not cause the application using logging to terminate prematurely." +msgstr "" +"Le paquet de journalisation est conçu pour ne pas faire apparaître les " +"exceptions qui se produisent lors de la journalisation en production. Il " +"s'agit de sorte que les erreurs qui se produisent lors de la gestion des " +"événements de journalisation (telles qu'une mauvaise configuration de la " +"journalisation, une erreur réseau ou d'autres erreurs similaires) ne " +"provoquent pas l'arrêt de l'application utilisant la journalisation." + +#: ../Doc/howto/logging.rst:1008 +msgid "" +":class:`SystemExit` and :class:`KeyboardInterrupt` exceptions are never " +"swallowed. Other exceptions which occur during the :meth:`~Handler.emit` " +"method of a :class:`Handler` subclass are passed to its :meth:`~Handler." +"handleError` method." +msgstr "" +"Les exceptions :class:`SystemExit` et :class:`KeyboardInterrupt` ne sont " +"jamais passées sous silence. Les autres exceptions qui se produisent pendant " +"la méthode :meth:`~Handler.emit` d'une sous classe :class:`Handler` sont " +"passées à sa méthode :meth:`~Handler.handleError`." + +#: ../Doc/howto/logging.rst:1013 +msgid "" +"The default implementation of :meth:`~Handler.handleError` in :class:" +"`Handler` checks to see if a module-level variable, :data:`raiseExceptions`, " +"is set. If set, a traceback is printed to :data:`sys.stderr`. If not set, " +"the exception is swallowed." +msgstr "" +"L'implémentation par défaut de :meth:`~Handler.handleError` dans la classe :" +"class:`Handler` vérifie si une variable au niveau du module, :data:" +"`raiseExceptions`, est définie. Si cette valeur est définie, la trace de la " +"pile d'appels est affichée sur :data:`sys.stderr`. Si elle n'est pas " +"définie, l'exception est passée sous silence." + +#: ../Doc/howto/logging.rst:1018 +msgid "" +"The default value of :data:`raiseExceptions` is ``True``. This is because " +"during development, you typically want to be notified of any exceptions that " +"occur. It's advised that you set :data:`raiseExceptions` to ``False`` for " +"production usage." +msgstr "" +"La valeur par défaut de :data:`raiseExceptions` est ``True``. C'est parce " +"que pendant le développement, vous voulez généralement être notifié de " +"toutes les exceptions qui se produisent. Il est conseillé de définir :data:" +"`raiseExceptions` à ``False`` pour une utilisation en production." + +#: ../Doc/howto/logging.rst:1028 +msgid "Using arbitrary objects as messages" +msgstr "Utilisation d'objets arbitraires comme messages" + +#: ../Doc/howto/logging.rst:1030 +msgid "" +"In the preceding sections and examples, it has been assumed that the message " +"passed when logging the event is a string. However, this is not the only " +"possibility. You can pass an arbitrary object as a message, and its :meth:" +"`~object.__str__` method will be called when the logging system needs to " +"convert it to a string representation. In fact, if you want to, you can " +"avoid computing a string representation altogether - for example, the :class:" +"`~handlers.SocketHandler` emits an event by pickling it and sending it over " +"the wire." +msgstr "" +"Dans les sections et exemples précédents, il a été supposé que le message " +"passé lors de la journalisation de l'événement est une chaîne. Cependant, ce " +"n'est pas la seule possibilité. Vous pouvez passer un objet arbitraire en " +"tant que message et sa méthode :meth:`~object.__str__` est appelée lorsque " +"le système de journalisation doit le convertir en une représentation sous " +"forme de chaîne. En fait, si vous le souhaitez, vous pouvez complètement " +"éviter de calculer une représentation sous forme de chaîne. Par exemple, les " +"gestionnaires :class:`~handlers.SocketHandler` émettent un événement en lui " +"appliquant *pickle* et en l'envoyant sur le réseau." + +#: ../Doc/howto/logging.rst:1041 +msgid "Optimization" +msgstr "Optimisation" + +#: ../Doc/howto/logging.rst:1043 +msgid "" +"Formatting of message arguments is deferred until it cannot be avoided. " +"However, computing the arguments passed to the logging method can also be " +"expensive, and you may want to avoid doing it if the logger will just throw " +"away your event. To decide what to do, you can call the :meth:`~Logger." +"isEnabledFor` method which takes a level argument and returns true if the " +"event would be created by the Logger for that level of call. You can write " +"code like this::" +msgstr "" +"La mise en forme des arguments de message est différée jusqu'à ce qu'elle ne " +"puisse pas être évitée. Toutefois, le calcul des arguments passés à la " +"méthode de journalisation peut également être coûteux et vous voudrez peut-" +"être éviter de le faire si l'enregistreur va simplement jeter votre " +"événement. Pour décider de ce qu'il faut faire, vous pouvez appeler la " +"méthode :meth:`~Logger.isEnabledFor` qui prend en argument le niveau et " +"renvoie ``True`` si un événement est créé par l'enregistreur pour ce niveau " +"d'appel. Vous pouvez écrire un code qui ressemble à ça ::" + +#: ../Doc/howto/logging.rst:1055 +msgid "" +"so that if the logger's threshold is set above ``DEBUG``, the calls to :func:" +"`expensive_func1` and :func:`expensive_func2` are never made." +msgstr "" +"de sorte que si le seuil du journaliseur est défini au-dessus de ``DEBUG``, " +"les appels à :func:`expensive_func1` et :func:`expensive_func2` ne sont " +"jamais faits." + +#: ../Doc/howto/logging.rst:1058 +msgid "" +"In some cases, :meth:`~Logger.isEnabledFor` can itself be more expensive " +"than you'd like (e.g. for deeply nested loggers where an explicit level is " +"only set high up in the logger hierarchy). In such cases (or if you want to " +"avoid calling a method in tight loops), you can cache the result of a call " +"to :meth:`~Logger.isEnabledFor` in a local or instance variable, and use " +"that instead of calling the method each time. Such a cached value would only " +"need to be recomputed when the logging configuration changes dynamically " +"while the application is running (which is not all that common)." +msgstr "" +"Dans certains cas, :meth:`~Logger.isEnabledFor` peut être plus coûteux que " +"vous le souhaitez (par exemple pour les enregistreurs profondément imbriqués " +"où un niveau explicite n'est défini que dans la hiérarchie des " +"enregistreurs). Dans de tels cas (ou si vous souhaitez éviter d'appeler une " +"méthode dans des boucles optimisées), vous pouvez mettre en cache le " +"résultat d'un appel à :meth:`~Logger.isEnabledFor` dans une variable locale " +"ou d'instance, et l'utiliser au lieu d'appeler la méthode à chaque fois. Une " +"telle valeur mise en cache ne doit être recalculée que lorsque la " +"configuration de journalisation change dynamiquement pendant l'exécution de " +"l'application (ce qui est rarement le cas)." + +#: ../Doc/howto/logging.rst:1067 +msgid "" +"There are other optimizations which can be made for specific applications " +"which need more precise control over what logging information is collected. " +"Here's a list of things you can do to avoid processing during logging which " +"you don't need:" +msgstr "" +"Il existe d'autres optimisations qui peuvent être faites pour des " +"applications spécifiques qui nécessitent un contrôle plus précis sur les " +"informations de journalisation collectées. Voici une liste de choses que " +"vous pouvez faire pour éviter le traitement pendant la journalisation dont " +"vous n'avez pas besoin :" + +#: ../Doc/howto/logging.rst:1073 +msgid "What you don't want to collect" +msgstr "Ce que vous ne voulez pas collecter" + +#: ../Doc/howto/logging.rst:1073 +msgid "How to avoid collecting it" +msgstr "Comment éviter de le collecter" + +#: ../Doc/howto/logging.rst:1075 +msgid "Information about where calls were made from." +msgstr "Informations sur l'endroit où les appels ont été faits." + +#: ../Doc/howto/logging.rst:1075 +msgid "" +"Set ``logging._srcfile`` to ``None``. This avoids calling :func:`sys." +"_getframe`, which may help to speed up your code in environments like PyPy " +"(which can't speed up code that uses :func:`sys._getframe`), if and when " +"PyPy supports Python 3.x." +msgstr "" +"Définissez ``logging._srcfile`` à ``None``. Cela évite d'appeler :func:`sys." +"_getframe`, qui peut aider à accélérer votre code dans des environnements " +"comme PyPy (qui ne peut pas accélérer le code qui utilise :func:`sys." +"_getframe`), si et quand PyPy prendra en charge Python 3.x." + +#: ../Doc/howto/logging.rst:1083 +msgid "Threading information." +msgstr "Informations de *threading*." + +#: ../Doc/howto/logging.rst:1083 +msgid "Set ``logging.logThreads`` to ``0``." +msgstr "Mettez ``logging.logThreads`` à ``0``." + +#: ../Doc/howto/logging.rst:1085 +msgid "Process information." +msgstr "Informations sur le processus." + +#: ../Doc/howto/logging.rst:1085 +msgid "Set ``logging.logProcesses`` to ``0``." +msgstr "Mettez ``logging.logProcesses`` à ``0``." + +#: ../Doc/howto/logging.rst:1088 +msgid "" +"Also note that the core logging module only includes the basic handlers. If " +"you don't import :mod:`logging.handlers` and :mod:`logging.config`, they " +"won't take up any memory." +msgstr "" +"Notez également que le module de journalisation principale inclut uniquement " +"les gestionnaires de base. Si vous n'importez pas :mod:`logging.handlers` " +"et :mod:`logging.config`, ils ne prendront pas de mémoire." + +#: ../Doc/howto/logging.rst:1095 +msgid "Module :mod:`logging`" +msgstr "Module :mod:`logging`" + +#: ../Doc/howto/logging.rst:1095 +msgid "API reference for the logging module." +msgstr "Référence d'API pour le module de journalisation." + +#: ../Doc/howto/logging.rst:1098 +msgid "Module :mod:`logging.config`" +msgstr "Module :mod:`logging.config`" + +#: ../Doc/howto/logging.rst:1098 +msgid "Configuration API for the logging module." +msgstr "API de configuration pour le module de journalisation." + +#: ../Doc/howto/logging.rst:1101 +msgid "Module :mod:`logging.handlers`" +msgstr "Module :mod:`logging.handlers`" + +#: ../Doc/howto/logging.rst:1101 +msgid "Useful handlers included with the logging module." +msgstr "Gestionnaires utiles inclus avec le module de journalisation." + +#: ../Doc/howto/logging.rst:1103 +msgid ":ref:`A logging cookbook `" +msgstr ":ref:`A logging cookbook `" diff --git a/howto/pyporting.po b/howto/pyporting.po new file mode 100644 index 000000000..9a6a8ab43 --- /dev/null +++ b/howto/pyporting.po @@ -0,0 +1,970 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: 2019-09-05 10:42+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/howto/pyporting.rst:5 +msgid "Porting Python 2 Code to Python 3" +msgstr "Portage de code Python 2 vers Python 3" + +#: ../Doc/howto/pyporting.rst:0 +msgid "author" +msgstr "auteur" + +#: ../Doc/howto/pyporting.rst:7 +msgid "Brett Cannon" +msgstr "Brett Cannon" + +#: ../Doc/howto/pyporting.rst:None +msgid "Abstract" +msgstr "Résumé" + +#: ../Doc/howto/pyporting.rst:11 +msgid "" +"With Python 3 being the future of Python while Python 2 is still in active " +"use, it is good to have your project available for both major releases of " +"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 "" +"If you would like to read one core Python developer's take on why Python 3 " +"came into existence, you can read Nick Coghlan's `Python 3 Q & A`_ or Brett " +"Cannon's `Why Python 3 exists`_." +msgstr "" +"Si vous souhaitez lire l'avis d'un développeur principal de Python sur ce " +"qui a motivé la création de Python 3, vous pouvez lire le `Python 3 Q & A`_ " +"de Nick Coghlan ou bien `Why Python 3 exists`_ de Brett Cannon." + +#: ../Doc/howto/pyporting.rst:23 +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:27 +msgid "The Short Explanation" +msgstr "La version courte" + +#: ../Doc/howto/pyporting.rst:29 +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:32 +msgid "Only worry about supporting Python 2.7" +msgstr "Ne se préoccuper que du support de Python 2.7" + +#: ../Doc/howto/pyporting.rst:33 +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:116 +msgid "Learn the differences between Python 2 & 3" +msgstr "Apprendre les différences entre Python 2 et 3" + +#: ../Doc/howto/pyporting.rst:36 +msgid "" +"Use Futurize_ (or Modernize_) to update your code (e.g. ``pip install " +"future``)" +msgstr "" +"Utiliser Futurize_ (ou Modernize_) pour mettre à jour votre code (par " +"exemple ``pip install future``)" + +#: ../Doc/howto/pyporting.rst:37 +msgid "" +"Use Pylint_ to help make sure you don't regress on your Python 3 support " +"(``pip install pylint``)" +msgstr "" +"Utilisez Pylint_ pour vous assurer que vous ne régressez pas sur votre prise " +"en charge de Python 3 (``pip install pylint``)" + +#: ../Doc/howto/pyporting.rst:39 +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:41 +msgid "" +"Once your dependencies are no longer blocking you, use continuous " +"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:44 +msgid "" +"Consider using optional static type checking to make sure your type usage " +"works in both Python 2 & 3 (e.g. use mypy_ to check your typing under both " +"Python 2 & Python 3)." +msgstr "" +"Envisager l'utilisation d'un vérifieur de type statique afin de vous assurer " +"que votre façon d'utiliser les types est compatible avec Python 2 et 3 (par " +"exemple en utilisant mypy_ pour vérifier votre typage sous Python 2 et 3)." + +#: ../Doc/howto/pyporting.rst:50 +msgid "Details" +msgstr "Détails" + +#: ../Doc/howto/pyporting.rst:52 +msgid "" +"A key point about supporting Python 2 & 3 simultaneously is that you can " +"start **today**! Even if your dependencies are not supporting Python 3 yet " +"that does not mean you can't modernize your code **now** to support Python " +"3. Most changes required to support Python 3 lead to cleaner code using " +"newer practices even in Python 2 code." +msgstr "" +"Un point clé du support simultané de Python 2 et 3 est qu'il vous est " +"possible de commencer **dès aujourd'hui** ! Même si vos dépendances ne sont " +"pas encore compatibles Python 3, vous pouvez moderniser votre code **dès " +"maintenant** pour gérer Python 3. La plupart des modifications nécessaires à " +"la compatibilité Python 3 donnent un code plus propre utilisant une syntaxe " +"plus récente, même dans du code Python 2." + +#: ../Doc/howto/pyporting.rst:58 +msgid "" +"Another key point is that modernizing your Python 2 code to also support " +"Python 3 is largely automated for you. While you might have to make some API " +"decisions thanks to Python 3 clarifying text data versus binary data, the " +"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:64 +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:69 +msgid "Drop support for Python 2.6 and older" +msgstr "Abandon de la compatibilité Python 2.6 et antérieures" + +#: ../Doc/howto/pyporting.rst:71 +msgid "" +"While you can make Python 2.5 work with Python 3, it is **much** easier if " +"you only have to work with Python 2.7. If dropping Python 2.5 is not an " +"option then the six_ project can help you support Python 2.5 & 3 " +"simultaneously (``pip install six``). Do realize, though, that nearly all " +"the projects listed in this HOWTO will not be available to you." +msgstr "" +"Bien qu'il soit possible de rendre Python 2.5 compatible avec Python 3, il " +"est **beaucoup** plus simple de n'avoir qu'à travailler avec Python 2.7. Si " +"abandonner Python 2.5 n'est pas une option, alors le projet six_ peut vous " +"aider à gérer simultanément Python 2.5 et 3 (``pip install six``). " +"Néanmoins, soyez conscient que la quasi-totalité des projets listés dans ce " +"guide pratique ne seront pas applicables à votre situation." + +#: ../Doc/howto/pyporting.rst:77 +msgid "" +"If you are able to skip Python 2.5 and older, then the required changes to " +"your code should continue to look and feel like idiomatic Python code. At " +"worst you will have to use a function instead of a method in some instances " +"or have to import a function instead of using a built-in one, but otherwise " +"the overall transformation should not feel foreign to you." +msgstr "" +"Si vous pouvez ignorer Python 2.5 et antérieur, les changements nécessaires " +"à appliquer à votre code devraient encore ressembler à vos yeux à du code " +"Python idiomatique. Dans le pire cas, vous devrez utiliser une fonction " +"plutôt qu'une méthode dans certains cas, ou bien vous devrez importer une " +"fonction plutôt qu'utiliser une fonction native, mais le reste du temps le " +"code transformé devrait vous rester familier." + +#: ../Doc/howto/pyporting.rst:83 +msgid "" +"But you should aim for only supporting Python 2.7. Python 2.6 is no longer " +"freely supported and thus is not receiving bugfixes. This means **you** will " +"have to work around any issues you come across with Python 2.6. There are " +"also some tools mentioned in this HOWTO which do not support Python 2.6 (e." +"g., Pylint_), and this will become more commonplace as time goes on. It will " +"simply be easier for you if you only support the versions of Python that you " +"have to support." +msgstr "" +"Mais nous vous conseillons de viser seulement un support de Python 2.7. " +"Python 2.6 n'est plus supporté gratuitement et par conséquent ne reçoit plus " +"aucun correctif. Cela signifie que **vous** devrez trouver des solutions de " +"contournement aux problèmes que vous rencontrez avec Python 2.6. Il existe " +"en outre des outils mentionnés dans ce guide pratique qui ne supportent pas " +"Python 2.6 (par exemple Pylint_), ce qui sera de plus en plus courant au fil " +"du temps. Il est simplement plus facile pour vous de n'assurer une " +"compatibilité qu'avec les versions de Python que vous avez l'obligation de " +"gérer." + +#: ../Doc/howto/pyporting.rst:92 +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 "" +"In your ``setup.py`` file you should have the proper `trove classifier`_ " +"specifying what versions of Python you support. As your project does not " +"support Python 3 yet you should at least have ``Programming Language :: " +"Python :: 2 :: Only`` specified. Ideally you should also specify each major/" +"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:103 +msgid "Have good test coverage" +msgstr "Obtenir une bonne couverture de code" + +#: ../Doc/howto/pyporting.rst:105 +msgid "" +"Once you have your code supporting the oldest version of Python 2 you want " +"it to, you will want to make sure your test suite has good coverage. A good " +"rule of thumb is that if you want to be confident enough in your test suite " +"that any failures that appear after having tools rewrite your code are " +"actual bugs in the tools and not in your code. If you want a number to aim " +"for, try to get over 80% coverage (and don't feel bad if you find it hard to " +"get better than 90% coverage). If you don't already have a tool to measure " +"test coverage then coverage.py_ is recommended." +msgstr "" +"Une fois que votre code est compatible avec la plus ancienne version de " +"Python 2 que vous souhaitez, vous devez vous assurer que votre suite de test " +"a une couverture suffisante. Une bonne règle empirique consiste à avoir " +"suffisamment confiance en la suite de test pour qu'une erreur apparaissant " +"après la réécriture du code par les outils automatiques résulte de bogues de " +"ces derniers et non de votre code. Si vous souhaitez une valeur cible, " +"essayez de dépasser les 80 % de couverture (et ne vous sentez pas coupable " +"si vous trouvez difficile de faire mieux que 90 % de couverture). Si vous ne " +"disposez pas encore d'un outil pour mesurer la couverture de code, coverage." +"py_ est recommandé." + +#: ../Doc/howto/pyporting.rst:118 +msgid "" +"Once you have your code well-tested you are ready to begin porting your code " +"to Python 3! But to fully understand how your code is going to change and " +"what you want to look out for while you code, you will want to learn what " +"changes Python 3 makes in terms of Python 2. Typically the two best ways of " +"doing that is reading the `\"What's New\"`_ doc for each release of Python 3 " +"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:128 +msgid "Update your code" +msgstr "Mettre à jour votre code" + +#: ../Doc/howto/pyporting.rst:130 +msgid "" +"Once you feel like you know what is different in Python 3 compared to Python " +"2, it's time to update your code! You have a choice between two tools in " +"porting your code automatically: Futurize_ and Modernize_. Which tool you " +"choose will depend on how much like Python 3 you want your code to be. " +"Futurize_ does its best to make Python 3 idioms and practices exist in " +"Python 2, e.g. backporting the ``bytes`` type from Python 3 so that you have " +"semantic parity between the major versions of Python. Modernize_, on the " +"other hand, is more conservative and targets a Python 2/3 subset of Python, " +"directly relying on six_ to help provide compatibility. As Python 3 is the " +"future, it might be best to consider Futurize to begin adjusting to any new " +"practices that Python 3 introduces which you are not accustomed to yet." +msgstr "" +"Une fois que vous pensez en savoir suffisamment sur les différences entre " +"Python 3 et Python 2, il est temps de mettre à jour votre code ! Vous avez " +"le choix entre deux outils pour porter votre code automatiquement : " +"Futurize_ et Modernize_. Le choix de l'outil dépend de la dose de Python 3 " +"que vous souhaitez introduire dans votre code. Futurize_ s'efforce " +"d'introduire les idiomes et pratiques de Python 3 dans Python 2, par exemple " +"en réintroduisant le type ``bytes`` de Python 3 de telle sorte que la " +"sémantique soit identique entre les deux versions majeures de Python. En " +"revanche, Modernize_ est plus conservateur et vise un sous-ensemble " +"d'instructions Python 2/3, en s'appuyant directement sur six_ pour la " +"compatibilité. Python 3 étant le futur de Python, il pourrait être " +"préférable d'utiliser *Futurize* afin de commencer à s'ajuster aux nouvelles " +"pratiques introduites par Python 3 avec lesquelles vous n'êtes pas encore " +"habitué." + +#: ../Doc/howto/pyporting.rst:142 +msgid "" +"Regardless of which tool you choose, they will update your code to run under " +"Python 3 while staying compatible with the version of Python 2 you started " +"with. Depending on how conservative you want to be, you may want to run the " +"tool over your test suite first and visually inspect the diff to make sure " +"the transformation is accurate. After you have transformed your test suite " +"and verified that all the tests still pass as expected, then you can " +"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:150 +msgid "" +"Unfortunately the tools can't automate everything to make your code work " +"under Python 3 and so there are a handful of things you will need to update " +"manually to get full Python 3 support (which of these steps are necessary " +"vary between the tools). Read the documentation for the tool you choose to " +"use to see what it fixes by default and what it can do optionally to know " +"what will (not) be fixed for you and what you may have to fix on your own (e." +"g. using ``io.open()`` over the built-in ``open()`` function is off by " +"default in Modernize). Luckily, though, there are only a couple of things to " +"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:162 +msgid "Division" +msgstr "Division" + +#: ../Doc/howto/pyporting.rst:164 +msgid "" +"In Python 3, ``5 / 2 == 2.5`` and not ``2``; all division between ``int`` " +"values result in a ``float``. This change has actually been planned since " +"Python 2.2 which was released in 2002. Since then users have been encouraged " +"to add ``from __future__ import division`` to any and all files which use " +"the ``/`` and ``//`` operators or to be running the interpreter with the ``-" +"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:172 +msgid "Add ``from __future__ import division`` to your files" +msgstr "Ajouter ``from __future__ import division`` à vos fichiers" + +#: ../Doc/howto/pyporting.rst:173 +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:176 +msgid "" +"The reason that ``/`` isn't simply translated to ``//`` automatically is " +"that if an object defines a ``__truediv__`` method but not ``__floordiv__`` " +"then your code would begin to fail (e.g. a user-defined class that uses ``/" +"`` to signify some operation but not ``//`` for the same thing or at all)." +msgstr "" +"La raison pour laquelle ``/`` n'est pas simplement remplacé par ``//`` " +"automatiquement est que si un objet définit une méthode ``__truediv__`` mais " +"pas de méthode ``__floordiv__``, alors votre code pourrait produire une " +"erreur (par exemple, une classe définie par l'utilisateur qui utilise ``/`` " +"pour définir une opération quelconque mais pour laquelle ``//`` n'a pas du " +"tout la même signification, voire n'est pas utilisé du tout)." + +#: ../Doc/howto/pyporting.rst:183 +msgid "Text versus binary data" +msgstr "Texte et données binaires" + +#: ../Doc/howto/pyporting.rst:185 +msgid "" +"In Python 2 you could use the ``str`` type for both text and binary data. " +"Unfortunately this confluence of two different concepts could lead to " +"brittle code which sometimes worked for either kind of data, sometimes not. " +"It also could lead to confusing APIs if people didn't explicitly state that " +"something that accepted ``str`` accepted either text or binary data instead " +"of one specific type. This complicated the situation especially for anyone " +"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:194 +msgid "" +"To make the distinction between text and binary data clearer and more " +"pronounced, Python 3 did what most languages created in the age of the " +"internet have done and made text and binary data distinct types that cannot " +"blindly be mixed together (Python predates widespread access to the " +"internet). For any code that deals only with text or only binary data, this " +"separation doesn't pose an issue. But for code that has to deal with both, " +"it does mean you might have to now care about when you are using text " +"compared to binary data, which is why this cannot be entirely automated." +msgstr "" +"Afin de rendre la distinction entre texte et données binaires claire et " +"prononcée, Python 3 a suivi la voie pavée par la plupart des langages créés " +"à l'ère d'Internet et a séparé les types texte et données binaires de telle " +"sorte qu'il ne soit plus possible de les confondre (Python est antérieur à " +"la démocratisation de l'accès à Internet). Cette séparation ne pose pas de " +"problème pour du code ne gérant soit que du texte, soit que des données " +"binaires. Cependant un code source devant gérer les deux doit désormais se " +"préoccuper du type des données manipulées, ce qui explique que ce processus " +"ne peut pas être entièrement automatisé." + +#: ../Doc/howto/pyporting.rst:203 +msgid "" +"To start, you will need to decide which APIs take text and which take binary " +"(it is **highly** recommended you don't design APIs that can take both due " +"to the difficulty of keeping the code working; as stated earlier it is " +"difficult to do well). In Python 2 this means making sure the APIs that take " +"text can work with ``unicode`` and those that work with binary data work " +"with the ``bytes`` type from Python 3 (which is a subset of ``str`` in " +"Python 2 and acts as an alias for ``bytes`` type in Python 2). Usually the " +"biggest issue is realizing which methods exist on which types in Python 2 & " +"3 simultaneously (for text that's ``unicode`` in Python 2 and ``str`` in " +"Python 3, for binary that's ``str``/``bytes`` in Python 2 and ``bytes`` in " +"Python 3). The following table lists the **unique** methods of each data " +"type across Python 2 & 3 (e.g., the ``decode()`` method is usable on the " +"equivalent binary data type in either Python 2 or 3, but it can't be used by " +"the textual data type consistently between Python 2 and 3 because ``str`` in " +"Python 3 doesn't have the method). Do note that as of Python 3.5 the " +"``__mod__`` method was added to the bytes type." +msgstr "" +"Pour commencer, vous devrez choisir quelles API travaillent sur du texte et " +"lesquelles travaillent avec des données binaires (il est **fortement** " +"recommandé de ne pas concevoir d'API qui gèrent les deux types compte-tenu " +"de la difficulté supplémentaire que cela induit). Dans Python 2, cela " +"signifie s'assurer que les API recevant du texte en entrée peuvent gérer " +"``unicode`` et celles qui reçoivent des données binaires fonctionnent avec " +"le type ``bytes`` de Python 3 (qui est un sous-ensemble de ``str`` dans " +"Python 2 et opère comme un alias du type ``bytes`` de Python 2). En général, " +"le principal problème consiste à inventorier quelles méthodes existent et " +"opèrent sur quel type dans Python & 3 simultanément (pour le texte, il " +"s'agit de ``unicode`` dans Python 2 et ``str`` dans Python 3, pour le " +"binaire il s'agit de ``str``/``bytes`` dans Python 2 et ``bytes`` dans " +"Python 3). Le tableau ci-dessous liste les méthodes **spécifiques** à chaque " +"type de données dans Python 2 et 3 (par exemple, la méthode ``decode()`` " +"peut être utilisée sur des données binaires équivalentes en Python 2 et 3, " +"mais ne peut pas être utilisée de la même façon sur le type texte en Python " +"2 et 3 car le type ``str`` de Python 3 ne possède pas de telle méthode). " +"Notez que depuis Python 3.5, la méthode ``__mod__`` a été ajoutée au type " +"*bytes*." + +#: ../Doc/howto/pyporting.rst:220 +msgid "**Text data**" +msgstr "**Format texte**" + +#: ../Doc/howto/pyporting.rst:220 +msgid "**Binary data**" +msgstr "**Format binaire**" + +#: ../Doc/howto/pyporting.rst:222 +msgid "\\" +msgstr "\\" + +#: ../Doc/howto/pyporting.rst:222 +msgid "decode" +msgstr "decode" + +#: ../Doc/howto/pyporting.rst:224 +msgid "encode" +msgstr "encode" + +#: ../Doc/howto/pyporting.rst:226 +msgid "format" +msgstr "format" + +#: ../Doc/howto/pyporting.rst:228 +msgid "isdecimal" +msgstr "isdecimal" + +#: ../Doc/howto/pyporting.rst:230 +msgid "isnumeric" +msgstr "isnumeric" + +#: ../Doc/howto/pyporting.rst:233 +msgid "" +"Making the distinction easier to handle can be accomplished by encoding and " +"decoding between binary data and text at the edge of your code. This means " +"that when you receive text in binary data, you should immediately decode it. " +"And if your code needs to send text as binary data then encode it as late as " +"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:240 +msgid "" +"The next issue is making sure you know whether the string literals in your " +"code represent text or binary data. You should add a ``b`` prefix to any " +"literal that presents binary data. For text you should add a ``u`` prefix to " +"the text literal. (there is a :mod:`__future__` import to force all " +"unspecified literals to be Unicode, but usage has shown it isn't as " +"effective as adding a ``b`` or ``u`` prefix to all literals explicitly)" +msgstr "" +"Le point suivant est de s'assurer que vous savez quelles chaînes de " +"caractères littérales de votre code correspondent à du texte ou à du " +"binaire. Vous devez préfixer par ``b`` tous les littéraux qui représentent " +"des données binaires et par ``u`` les littéraux qui représentent du texte " +"(il existe une importation du module :mod:`__future__` permettant de forcer " +"l'encodage de toutes les chaînes de caractères littérales non spécifiées en " +"Unicode, mais cette pratique s'est avérée moins efficace que l'ajout " +"explicite des préfixe ``b`` et ``u``)." + +#: ../Doc/howto/pyporting.rst:247 +msgid "" +"As part of this dichotomy you also need to be careful about opening files. " +"Unless you have been working on Windows, there is a chance you have not " +"always bothered to add the ``b`` mode when opening a binary file (e.g., " +"``rb`` for binary reading). Under Python 3, binary files and text files are " +"clearly distinct and mutually incompatible; see the :mod:`io` module for " +"details. Therefore, you **must** make a decision of whether a file will be " +"used for binary access (allowing binary data to be read and/or written) or " +"textual access (allowing text data to be read and/or written). You should " +"also use :func:`io.open` for opening files instead of the built-in :func:" +"`open` function as the :mod:`io` module is consistent from Python 2 to 3 " +"while the built-in :func:`open` function is not (in Python 3 it's actually :" +"func:`io.open`). Do not bother with the outdated practice of using :func:" +"`codecs.open` as that's only necessary for keeping compatibility with Python " +"2.5." +msgstr "" +"Une conséquence de cette dichotomie est que vous devez être prudents lors de " +"l'ouverture d'un fichier. À moins que vous travailliez sous Windows, il y a " +"des chances pour que vous ne vous soyez jamais préoccupé de spécifier le " +"mode ``b`` lorsque vous ouvrez des fichiers binaires (par exemple ``rb`` " +"pour lire un fichier binaire). Sous Python 3, les fichiers binaire et texte " +"sont distincts et mutuellement incompatibles ; se référer au module :mod:" +"`io` pour plus de détails. Ainsi vous **devez** décider lorsque vous ouvrez " +"un fichier si vous y accéderez en mode binaire (ce qui permet de lire et " +"écrire des données binaires) ou en mode texte (ce qui permet de lire et " +"écrire du texte). Vous devez également utiliser :func:`io.open` pour ouvrir " +"des fichiers plutôt que la fonction native :func:`open` étant donné que le " +"module :mod:`io` est cohérent de Python 2 à 3, ce qui n'est pas vrai pour la " +"fonction :func:`open` (en Python 3, il s'agit en réalité de :func:`io." +"open`). Ne cherchez pas à appliquer l'ancienne pratique consistant à " +"utiliser :func:`codecs.open` qui n'est nécessaire que pour préserver une " +"compatibilité avec Python 2.5." + +#: ../Doc/howto/pyporting.rst:261 +msgid "" +"The constructors of both ``str`` and ``bytes`` have different semantics for " +"the same arguments between Python 2 & 3. Passing an integer to ``bytes`` in " +"Python 2 will give you the string representation of the integer: ``bytes(3) " +"== '3'``. But in Python 3, an integer argument to ``bytes`` will give you a " +"bytes object as long as the integer specified, filled with null bytes: " +"``bytes(3) == b'\\x00\\x00\\x00'``. A similar worry is necessary when " +"passing a bytes object to ``str``. In Python 2 you just get the bytes object " +"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:271 +msgid "" +"Finally, the indexing of binary data requires careful handling (slicing does " +"**not** require any special handling). In Python 2, ``b'123'[1] == b'2'`` " +"while in Python 3 ``b'123'[1] == 50``. Because binary data is simply a " +"collection of binary numbers, Python 3 returns the integer value for the " +"byte you index on. But in Python 2 because ``bytes == str``, indexing " +"returns a one-item slice of bytes. The six_ project has a function named " +"``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:280 +msgid "To summarize:" +msgstr "Pour résumer :" + +#: ../Doc/howto/pyporting.rst:282 +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:283 +msgid "" +"Make sure that your code that works with text also works with ``unicode`` " +"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:286 +msgid "" +"Mark all binary literals with a ``b`` prefix, textual literals with a ``u`` " +"prefix" +msgstr "" +"Préfixez tous vos littéraux binaires par ``b`` et toutes vos chaînes de " +"caractères littérales par ``u``" + +#: ../Doc/howto/pyporting.rst:288 +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:290 +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:292 +msgid "Be careful when indexing into binary data" +msgstr "Utilisez avec prudence l'indiçage sur des données binaires" + +#: ../Doc/howto/pyporting.rst:296 +msgid "Use feature detection instead of version detection" +msgstr "" +"Utilisez la détection de fonctionnalités plutôt que la détection de version" + +#: ../Doc/howto/pyporting.rst:298 +msgid "" +"Inevitably you will have code that has to choose what to do based on what " +"version of Python is running. The best way to do this is with feature " +"detection of whether the version of Python you're running under supports " +"what you need. If for some reason that doesn't work then you should make the " +"version check be against Python 2 and not Python 3. To help explain this, " +"let's look at an example." +msgstr "" +"Vous rencontrerez inévitablement du code devant décider quoi faire en " +"fonction de la version de Python qui s'exécute. La meilleure façon de gérer " +"ce cas est de détecter si les fonctionnalités dont vous avez besoin sont " +"gérées par la version de Python sous laquelle le code s'exécute. Si pour " +"certaines raisons cela ne fonctionne pas, alors vous devez tester si votre " +"version est Python 2 et non Python 3. Afin de clarifier cette pratique, " +"voici un exemple." + +#: ../Doc/howto/pyporting.rst:305 +msgid "" +"Let's pretend that you need access to a feature of importlib_ that is " +"available in Python's standard library since Python 3.3 and available for " +"Python 2 through importlib2_ on PyPI. You might be tempted to write code to " +"access e.g. the ``importlib.abc`` module by doing the following::" +msgstr "" +"Supposons que vous avez besoin d'accéder à une fonctionnalité de importlib_ " +"qui n'est disponible dans la bibliothèque standard de Python que depuis la " +"version 3.3 et est disponible pour Python 2 via le module importlib2_ sur " +"PyPI. Vous pourriez être tenté d'écrire un code qui accède, par exemple, au " +"module ``importlib.abc`` avec l'approche suivante : ::" + +#: ../Doc/howto/pyporting.rst:317 +msgid "" +"The problem with this code is what happens when Python 4 comes out? It would " +"be better to treat Python 2 as the exceptional case instead of Python 3 and " +"assume that future Python versions will be more compatible with Python 3 " +"than Python 2::" +msgstr "" +"Le problème est le suivant : que se passe-t-il lorsque Python 4 est publié ? " +"Il serait préférable de traiter le cas Python 2 comme l'exception plutôt que " +"Python 3 et de supposer que les versions futures de Python 2 seront plus " +"compatibles avec Python 3 qu'avec Python 2 ::" + +#: ../Doc/howto/pyporting.rst:329 +msgid "" +"The best solution, though, is to do no version detection at all and instead " +"rely on feature detection. That avoids any potential issues of getting the " +"version detection wrong and helps keep you future-compatible::" +msgstr "" +"Néanmoins la meilleure solution est de ne pas chercher à déterminer la " +"version de Python mais plutôt à détecter les fonctionnalités disponibles. " +"Cela évite les problèmes potentiels liés aux erreurs de détection de version " +"et facilite la compatibilité future ::" + +#: ../Doc/howto/pyporting.rst:340 +msgid "Prevent compatibility regressions" +msgstr "Prévenir les régressions de compatibilité" + +#: ../Doc/howto/pyporting.rst:342 +msgid "" +"Once you have fully translated your code to be compatible with Python 3, you " +"will want to make sure your code doesn't regress and stop working under " +"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:347 +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:354 +msgid "" +"You can also run Python 2 with the ``-3`` flag to be warned about various " +"compatibility issues your code triggers during execution. If you turn " +"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:359 +msgid "" +"You can also use the Pylint_ project and its ``--py3k`` flag to lint your " +"code to receive warnings when your code begins to deviate from Python 3 " +"compatibility. This also prevents you from having to run Modernize_ or " +"Futurize_ over your code regularly to catch compatibility regressions. This " +"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:368 +msgid "Check which dependencies block your transition" +msgstr "Vérifier quelles dépendances empêchent la migration" + +#: ../Doc/howto/pyporting.rst:370 +msgid "" +"**After** you have made your code compatible with Python 3 you should begin " +"to care about whether your dependencies have also been ported. The " +"caniusepython3_ project was created to help you determine which projects -- " +"directly or indirectly -- are blocking you from supporting Python 3. There " +"is both a command-line tool as well as a web interface at https://" +"caniusepython3.com." +msgstr "" +"**Après** avoir rendu votre code compatible avec Python 3, vous devez " +"commencer à vous intéresser au portage de vos dépendances. Le projet " +"`caniusepython3`_ a été créé afin de vous aider à déterminer quels projets " +"sont bloquants dans votre support de Python 3, directement ou indirectement. " +"Il existe un outil en ligne de commande ainsi qu'une interface web : https://" +"caniusepython3.com." + +#: ../Doc/howto/pyporting.rst:377 +msgid "" +"The project also provides code which you can integrate into your test suite " +"so that you will have a failing test when you no longer have dependencies " +"blocking you from using Python 3. This allows you to avoid having to " +"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:384 +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:386 +msgid "" +"Once your code works under Python 3, you should update the classifiers in " +"your ``setup.py`` to contain ``Programming Language :: Python :: 3`` and to " +"not specify sole Python 2 support. This will tell anyone using your code " +"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:394 +msgid "Use continuous integration to stay compatible" +msgstr "Utiliser l'intégration continue pour maintenir la compatibilité" + +#: ../Doc/howto/pyporting.rst:396 +msgid "" +"Once you are able to fully run under Python 3 you will want to make sure " +"your code always works under both Python 2 & 3. Probably the best tool for " +"running your tests under multiple Python interpreters is tox_. You can then " +"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:402 +msgid "" +"You may also want to use the ``-bb`` flag with the Python 3 interpreter to " +"trigger an exception when you are comparing bytes to strings or bytes to an " +"int (the latter is available starting in Python 3.5). By default type-" +"differing comparisons simply return ``False``, but if you made a mistake in " +"your separation of text/binary data handling or indexing on bytes you " +"wouldn't easily find the mistake. This flag will raise an exception when " +"these kinds of comparisons occur, making the mistake much easier to track " +"down." +msgstr "" +"Vous pouvez également utiliser l'option ``-bb`` de l'interpréteur Python 3 " +"afin de déclencher une exception lorsque vous comparez des *bytes* à des " +"chaînes de caractères ou à un entier (cette deuxième possibilité est " +"disponible à partir de Python 3.5). Par défaut, des comparaisons entre types " +"différents renvoient simplement ``False`` mais si vous avez fait une erreur " +"dans votre séparation de la gestion texte/données binaires ou votre indiçage " +"des *bytes*, vous ne trouverez pas facilement le bogue. Ce drapeau lève une " +"exception lorsque ce genre de comparaison apparaît, facilitant ainsi son " +"identification et sa localisation." + +#: ../Doc/howto/pyporting.rst:410 +msgid "" +"And that's mostly it! At this point your code base is compatible with both " +"Python 2 and 3 simultaneously. Your testing will also be set up so that you " +"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:417 +msgid "Consider using optional static type checking" +msgstr "Envisager l'utilisation d'un vérificateur de type statique optionnel" + +#: ../Doc/howto/pyporting.rst:419 +msgid "" +"Another way to help port your code is to use a static type checker like " +"mypy_ or pytype_ on your code. These tools can be used to analyze your code " +"as if it's being run under Python 2, then you can run the tool a second time " +"as if your code is running under Python 3. By running a static type checker " +"twice like this you can discover if you're e.g. misusing binary data type in " +"one version of Python compared to another. If you add optional type hints to " +"your code you can also explicitly state whether your APIs use textual or " +"binary data, helping to make sure everything functions as expected in both " +"versions of Python." +msgstr "" +"Une autre façon de faciliter le portage de votre code est d'utiliser un " +"vérificateur de type statique comme mypy_ ou pytype_. Ces outils peuvent " +"être utilisés pour analyser votre code comme s'il était exécuté sous Python " +"2, puis une seconde fois comme s'il était exécuté sous Python 3. " +"L'utilisation double d'un vérificateur de type statique de cette façon " +"permet de détecter si, par exemple, vous faites une utilisation inappropriée " +"des types de données binaires dans une version de Python par rapport à " +"l'autre. Si vous ajoutez les indices optionnels de typage à votre code, vous " +"pouvez alors explicitement déclarer que vos API attendent des données " +"binaires ou du texte, ce qui facilite alors la vérification du comportement " +"de votre code dans les deux versions de Python." diff --git a/howto/regex.po b/howto/regex.po new file mode 100644 index 000000000..c35905a75 --- /dev/null +++ b/howto/regex.po @@ -0,0 +1,2693 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-03-26 22:48+0100\n" +"Last-Translator: Nabil Bendafi \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/howto/regex.rst:5 +msgid "Regular Expression HOWTO" +msgstr "Guide des expressions régulières" + +#: ../Doc/howto/regex.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/howto/regex.rst:7 +msgid "A.M. Kuchling " +msgstr "A.M. Kuchling " + +#: ../Doc/howto/regex.rst:None +msgid "Abstract" +msgstr "Résumé" + +#: ../Doc/howto/regex.rst:18 +msgid "" +"This document is an introductory tutorial to using regular expressions in " +"Python with the :mod:`re` module. It provides a gentler introduction than " +"the corresponding section in the Library Reference." +msgstr "" +"Ce document constitue un guide d'introduction à l'utilisation des " +"expressions régulières en Python avec le module :mod:`re`. Il fournit une " +"introduction plus abordable que la section correspondante dans le guide de " +"référence de la bibliothèque." + +#: ../Doc/howto/regex.rst:24 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/howto/regex.rst:26 +msgid "" +"Regular expressions (called REs, or regexes, or regex patterns) are " +"essentially a tiny, highly specialized programming language embedded inside " +"Python and made available through the :mod:`re` module. Using this little " +"language, you specify the rules for the set of possible strings that you " +"want to match; this set might contain English sentences, or e-mail " +"addresses, or TeX commands, or anything you like. You can then ask " +"questions such as \"Does this string match the pattern?\", or \"Is there a " +"match for the pattern anywhere in this string?\". You can also use REs to " +"modify a string or to split it apart in various ways." +msgstr "" +"Les expressions régulières (notées RE ou motifs *regex* dans ce document) " +"sont essentiellement un petit langage de programmation hautement spécialisé " +"embarqué dans Python et dont la manipulation est rendue possible par " +"l'utilisation du module :mod:`re`. En utilisant ce petit langage, vous " +"définissez des règles pour spécifier une correspondance avec un ensemble " +"souhaité de chaînes de caractères ; ces chaînes peuvent être des phrases, " +"des adresses de courriel, des commandes TeX ou tout ce que vous voulez. Vous " +"pouvez ensuite poser des questions telles que \"Est-ce que cette chaîne de " +"caractères correspond au motif ?\" ou \"Y a-t-il une correspondance pour ce " +"motif à l'intérieur de la chaîne de caractères ?\". Vous pouvez aussi " +"utiliser les RE pour modifier une chaîne de caractères ou la découper de " +"différentes façons." + +#: ../Doc/howto/regex.rst:35 +msgid "" +"Regular expression patterns are compiled into a series of bytecodes which " +"are then executed by a matching engine written in C. For advanced use, it " +"may be necessary to pay careful attention to how the engine will execute a " +"given RE, and write the RE in a certain way in order to produce bytecode " +"that runs faster. Optimization isn't covered in this document, because it " +"requires that you have a good understanding of the matching engine's " +"internals." +msgstr "" +"Un motif d'expression régulière est compilé en code intermédiaire " +"(*bytecode* en anglais) qui est ensuite exécuté par un moteur de " +"correspondance écrit en C. Pour une utilisation plus poussée, il peut " +"s'avérer nécessaire de s'intéresser à la manière dont le moteur exécute la " +"RE afin d'écrire une expression dont le code intermédiaire est plus rapide. " +"L'optimisation n'est pas traitée dans ce document, parce qu'elle nécessite " +"d'avoir une bonne compréhension des mécanismes internes du moteur de " +"correspondance." + +#: ../Doc/howto/regex.rst:42 +msgid "" +"The regular expression language is relatively small and restricted, so not " +"all possible string processing tasks can be done using regular expressions. " +"There are also tasks that *can* be done with regular expressions, but the " +"expressions turn out to be very complicated. In these cases, you may be " +"better off writing Python code to do the processing; while Python code will " +"be slower than an elaborate regular expression, it will also probably be " +"more understandable." +msgstr "" +"Le langage des expressions régulières est relativement petit et restreint, " +"donc toutes les tâches de manipulation de chaînes de caractères ne peuvent " +"pas être réalisées à l'aide d'expressions régulières. Il existe aussi des " +"tâches qui *peuvent* être réalisées à l'aide d'expressions régulières mais " +"qui ont tendance à produire des expressions régulières très compliquées. " +"Dans ces cas, il est plus utile d'écrire du code Python pour réaliser le " +"traitement ; même si le code Python est plus lent qu'une expression " +"régulière élaborée, il sera probablement plus compréhensible." + +#: ../Doc/howto/regex.rst:51 +msgid "Simple Patterns" +msgstr "Motifs simples" + +#: ../Doc/howto/regex.rst:53 +msgid "" +"We'll start by learning about the simplest possible regular expressions. " +"Since regular expressions are used to operate on strings, we'll begin with " +"the most common task: matching characters." +msgstr "" +"Nous commençons par étudier les expressions régulières les plus simples. " +"Dans la mesure où les expressions régulières sont utilisées pour manipuler " +"des chaînes de caractères, nous commençons par l'action la plus courante : " +"la correspondance de caractères." + +#: ../Doc/howto/regex.rst:57 +msgid "" +"For a detailed explanation of the computer science underlying regular " +"expressions (deterministic and non-deterministic finite automata), you can " +"refer to almost any textbook on writing compilers." +msgstr "" +"Pour une explication détaillée sur le concept informatique sous-jacent aux " +"expressions régulières (automate à états déterministe ou non-déterministe), " +"vous pouvez vous référer à n'importe quel manuel sur l'écriture de " +"compilateurs." + +#: ../Doc/howto/regex.rst:63 +msgid "Matching Characters" +msgstr "Correspondance de caractères" + +#: ../Doc/howto/regex.rst:65 +msgid "" +"Most letters and characters will simply match themselves. For example, the " +"regular expression ``test`` will match the string ``test`` exactly. (You " +"can enable a case-insensitive mode that would let this RE match ``Test`` or " +"``TEST`` as well; more about this later.)" +msgstr "" +"La plupart des lettres ou caractères correspondent simplement à eux-mêmes. " +"Par exemple, l'expression régulière ``test`` correspond à la chaîne de " +"caractères ``test``, précisément. Vous pouvez activer le mode non-sensible à " +"la casse qui permet à cette RE de correspondre également à ``Test`` ou " +"``TEST`` (ce sujet est traité par la suite)." + +#: ../Doc/howto/regex.rst:70 +msgid "" +"There are exceptions to this rule; some characters are special :dfn:" +"`metacharacters`, and don't match themselves. Instead, they signal that " +"some out-of-the-ordinary thing should be matched, or they affect other " +"portions of the RE by repeating them or changing their meaning. Much of " +"this document is devoted to discussing various metacharacters and what they " +"do." +msgstr "" +"Il existe des exceptions à cette règle ; certains caractères sont des :dfn:" +"`métacaractères` spéciaux et ne correspondent pas à eux-mêmes. Au lieu de " +"cela, ils signalent que certaines choses non ordinaires doivent " +"correspondre, ou ils affectent d'autre portions de la RE en les répétant ou " +"en changeant leur sens. Une grande partie de ce document est consacrée au " +"fonctionnement de ces métacaractères." + +#: ../Doc/howto/regex.rst:76 +msgid "" +"Here's a complete list of the metacharacters; their meanings will be " +"discussed in the rest of this HOWTO." +msgstr "" +"Voici une liste complète des métacaractères ; leur sens est décrit dans la " +"suite de ce guide." + +#: ../Doc/howto/regex.rst:83 +msgid "" +"The first metacharacters we'll look at are ``[`` and ``]``. They're used for " +"specifying a character class, which is a set of characters that you wish to " +"match. Characters can be listed individually, or a range of characters can " +"be indicated by giving two characters and separating them by a ``'-'``. For " +"example, ``[abc]`` will match any of the characters ``a``, ``b``, or ``c``; " +"this is the same as ``[a-c]``, which uses a range to express the same set of " +"characters. If you wanted to match only lowercase letters, your RE would be " +"``[a-z]``." +msgstr "" +"Les premiers métacaractères que nous étudions sont ``[`` et ``]``. Ils sont " +"utilisés pour spécifier une classe de caractères, qui forme un ensemble de " +"caractères dont vous souhaitez trouver la correspondance. Les caractères " +"peuvent être listés individuellement, ou une plage de caractères peut être " +"indiquée en fournissant deux caractères séparés par un `'-'``. Par exemple, " +"``[abc]`` correspond à n'importe quel caractère parmi ``a``, ``b``, ou " +"``c`` ; c'est équivalent à ``[a-c]``, qui utilise une plage pour exprimer le " +"même ensemble de caractères. Si vous voulez trouver une chaîne qui ne " +"contient que des lettres en minuscules, la RE est ``[a-z]``." + +#: ../Doc/howto/regex.rst:92 +msgid "" +"Metacharacters are not active inside classes. For example, ``[akm$]`` will " +"match any of the characters ``'a'``, ``'k'``, ``'m'``, or ``'$'``; ``'$'`` " +"is usually a metacharacter, but inside a character class it's stripped of " +"its special nature." +msgstr "" +"Les métacaractères ne sont pas actifs dans les classes. Par exemple, ``[akm" +"$]`` correspond à n'importe quel caractère parmi ``'a'``, ``'k'``, ``'m'`` " +"ou ``'$'`` ; ``'$'`` est habituellement un métacaractère mais dans une " +"classe de caractères, il est dépourvu de sa signification spéciale." + +#: ../Doc/howto/regex.rst:97 +msgid "" +"You can match the characters not listed within the class by :dfn:" +"`complementing` the set. This is indicated by including a ``'^'`` as the " +"first character of the class. For example, ``[^5]`` will match any character " +"except ``'5'``. If the caret appears elsewhere in a character class, it " +"does not have special meaning. For example: ``[5^]`` will match either a " +"``'5'`` or a ``'^'``." +msgstr "" +"Vous pouvez trouver une correspondance avec les caractères non listés dans " +"une classe en spécifiant le :dfn:`complément` de l'ensemble. Ceci est " +"indiqué en plaçant un ``'^'`` en tant que premier caractère de la classe. " +"Par exemple, ``[^5]`` correspond à tous les caractères, sauf ``'5'``. Si le " +"caret se trouve ailleurs dans la classe de caractères, il ne possède pas de " +"signification spéciale. Ainsi, ``[5^]`` correspond au ``'5'`` ou au " +"caractère ``'^'``." + +#: ../Doc/howto/regex.rst:103 +msgid "" +"Perhaps the most important metacharacter is the backslash, ``\\``. As in " +"Python string literals, the backslash can be followed by various characters " +"to signal various special sequences. It's also used to escape all the " +"metacharacters so you can still match them in patterns; for example, if you " +"need to match a ``[`` or ``\\``, you can precede them with a backslash to " +"remove their special meaning: ``\\[`` or ``\\\\``." +msgstr "" +"Le métacaractère le plus important est probablement la barre oblique inverse " +"( *backslash* en anglais), ``\\``. Comme dans les chaînes de caractères en " +"Python, la barre oblique inverse peut être suivie par différents caractères " +"pour signaler différentes séquences spéciales. Elle est aussi utilisée pour " +"échapper tous les métacaractères afin d'en trouver les correspondances dans " +"les motifs ; par exemple, si vous devez trouver une correspondance pour " +"``[`` ou ``\\``, vous pouvez les précéder avec une barre oblique inverse " +"pour annuler leur signification spéciale : ``\\[`` ou ``\\\\``." + +#: ../Doc/howto/regex.rst:110 +msgid "" +"Some of the special sequences beginning with ``'\\'`` represent predefined " +"sets of characters that are often useful, such as the set of digits, the set " +"of letters, or the set of anything that isn't whitespace." +msgstr "" +"Certaines séquences spéciales commençant par ``'\\'`` représentent des " +"ensembles de caractères prédéfinis qui sont souvent utiles, tels que " +"l'ensemble des chiffres, l'ensemble des lettres ou l'ensemble des caractères " +"qui ne sont pas des \"blancs\"." + +#: ../Doc/howto/regex.rst:115 +msgid "" +"Let's take an example: ``\\w`` matches any alphanumeric character. If the " +"regex pattern is expressed in bytes, this is equivalent to the class ``[a-zA-" +"Z0-9_]``. If the regex pattern is a string, ``\\w`` will match all the " +"characters marked as letters in the Unicode database provided by the :mod:" +"`unicodedata` module. You can use the more restricted definition of ``\\w`` " +"in a string pattern by supplying the :const:`re.ASCII` flag when compiling " +"the regular expression." +msgstr "" +"Prenons un exemple : ``\\w`` correspond à n'importe quel caractère " +"alphanumérique. Si l'expression régulière est exprimée en *bytes*, c'est " +"équivalent à la classe ``[a-zA-Z0-9_]``. Si l'expression régulière est une " +"chaîne de caractères, ``\\w`` correspond à tous les caractères identifiés " +"comme lettre dans la base de données Unicode fournie par le module :mod:" +"`unicodedata`. Vous pouvez utiliser la définition plus restrictive de ``" +"\\w`` dans un motif exprimé en chaîne de caractères en spécifiant l'option :" +"const:`re.ASCII` lors de la compilation de l'expression régulière." + +#: ../Doc/howto/regex.rst:123 +msgid "" +"The following list of special sequences isn't complete. For a complete list " +"of sequences and expanded class definitions for Unicode string patterns, see " +"the last part of :ref:`Regular Expression Syntax ` in the " +"Standard Library reference. In general, the Unicode versions match any " +"character that's in the appropriate category in the Unicode database." +msgstr "" +"La liste de séquences spéciales suivante est incomplète. Pour une liste " +"complète des séquences et définitions de classes étendues relatives aux " +"motifs de chaînes de caractères Unicode, reportez-vous à la dernière partie " +"de la référence :ref:`Syntaxe d'Expressions Régulières ` de la " +"bibliothèque standard. En général, les versions Unicode trouvent une " +"correspondance avec n'importe quel caractère présent dans la catégorie " +"appropriée de la base de données Unicode." + +#: ../Doc/howto/regex.rst:131 +msgid "``\\d``" +msgstr "``\\d``" + +#: ../Doc/howto/regex.rst:131 +msgid "Matches any decimal digit; this is equivalent to the class ``[0-9]``." +msgstr "" +"Correspond à n'importe quel caractère numérique ; équivalent à la classe " +"``[0-9]``." + +#: ../Doc/howto/regex.rst:134 +msgid "``\\D``" +msgstr "``\\D``" + +#: ../Doc/howto/regex.rst:134 +msgid "" +"Matches any non-digit character; this is equivalent to the class ``[^0-9]``." +msgstr "" +"Correspond à n'importe caractère non numérique ; équivalent à la classe " +"``[^0-9]``." + +#: ../Doc/howto/regex.rst:138 +msgid "``\\s``" +msgstr "``\\s``" + +#: ../Doc/howto/regex.rst:137 +msgid "" +"Matches any whitespace character; this is equivalent to the class ``[ \\t\\n" +"\\r\\f\\v]``." +msgstr "" +"Correspond à n'importe quel caractère \"blanc\" ; équivalent à la classe " +"``[ \\t\\n\\r\\f\\v]``." + +#: ../Doc/howto/regex.rst:142 +msgid "``\\S``" +msgstr "``\\S``" + +#: ../Doc/howto/regex.rst:141 +msgid "" +"Matches any non-whitespace character; this is equivalent to the class ``[^ " +"\\t\\n\\r\\f\\v]``." +msgstr "" +"Correspond à n'importe caractère autre que \"blanc\" ; équivalent à la " +"classe ``[^ \\t\\n\\r\\f\\v]``." + +#: ../Doc/howto/regex.rst:146 +msgid "``\\w``" +msgstr "``\\w``" + +#: ../Doc/howto/regex.rst:145 +msgid "" +"Matches any alphanumeric character; this is equivalent to the class ``[a-zA-" +"Z0-9_]``." +msgstr "" +"Correspond à n'importe caractère alphanumérique ; équivalent à la classe " +"``[a-zA-Z0-9_]``." + +#: ../Doc/howto/regex.rst:150 +msgid "``\\W``" +msgstr "``\\W``" + +#: ../Doc/howto/regex.rst:149 +msgid "" +"Matches any non-alphanumeric character; this is equivalent to the class " +"``[^a-zA-Z0-9_]``." +msgstr "" +"Correspond à n'importe caractère non-alphanumérique ; équivalent à la classe " +"``[^a-zA-Z0-9_]``." + +#: ../Doc/howto/regex.rst:152 +msgid "" +"These sequences can be included inside a character class. For example, " +"``[\\s,.]`` is a character class that will match any whitespace character, " +"or ``','`` or ``'.'``." +msgstr "" +"Ces séquences peuvent être incluses dans une classe de caractères. Par " +"exemple, ``[\\s,.]`` est une classe de caractères qui correspond à tous les " +"caractères \"blancs\" ou ``','`` ou ``'.'``." + +#: ../Doc/howto/regex.rst:156 +msgid "" +"The final metacharacter in this section is ``.``. It matches anything " +"except a newline character, and there's an alternate mode (:const:`re." +"DOTALL`) where it will match even a newline. ``.`` is often used where you " +"want to match \"any character\"." +msgstr "" +"Le dernier métacaractère de cette section est ``.``. Il correspond à tous " +"les caractères, à l'exception du caractère de retour à la ligne ; il existe " +"un mode alternatif (:const:`re.DOTALL`) dans lequel il correspond également " +"eu caractère de retour à la ligne. ``.`` est souvent utilisé lorsque l'on " +"veut trouver une correspondance avec \"n'importe quel caractère\"." + +#: ../Doc/howto/regex.rst:163 +msgid "Repeating Things" +msgstr "Répétitions" + +#: ../Doc/howto/regex.rst:165 +msgid "" +"Being able to match varying sets of characters is the first thing regular " +"expressions can do that isn't already possible with the methods available on " +"strings. However, if that was the only additional capability of regexes, " +"they wouldn't be much of an advance. Another capability is that you can " +"specify that portions of the RE must be repeated a certain number of times." +msgstr "" +"Trouver des correspondances de divers ensembles de caractères est la " +"première utilisation des expressions régulières, ce que l'on ne peut pas " +"faire avec les méthodes des chaînes. Cependant, si c'était la seule " +"possibilité des expressions régulières, le gain ne serait pas significatif. " +"Une autre utilisation consiste à spécifier des portions d'une RE qui peuvent " +"être répétées un certain nombre de fois." + +#: ../Doc/howto/regex.rst:171 +msgid "" +"The first metacharacter for repeating things that we'll look at is ``*``. " +"``*`` doesn't match the literal character ``'*'``; instead, it specifies " +"that the previous character can be matched zero or more times, instead of " +"exactly once." +msgstr "" +"Le premier métacaractère pour la répétition que nous abordons est ``*``. " +"``*`` ne correspond pas au caractère littéral ``'*'`` ; à la place, il " +"spécifie que le caractère précédent peut correspondre zéro, une ou plusieurs " +"fois (au lieu d'une seule fois)." + +#: ../Doc/howto/regex.rst:175 +msgid "" +"For example, ``ca*t`` will match ``'ct'`` (0 ``'a'`` characters), ``'cat'`` " +"(1 ``'a'``), ``'caaat'`` (3 ``'a'`` characters), and so forth." +msgstr "" +"Par exemple, ``cha*t`` correspond à ``'cht'`` (0 caractère ``'a'``), " +"``'chat'`` (1 ``'a'``), ``'chaaat'`` (3 caractères ``'a'``) et ainsi de " +"suite." + +#: ../Doc/howto/regex.rst:178 +msgid "" +"Repetitions such as ``*`` are :dfn:`greedy`; when repeating a RE, the " +"matching engine will try to repeat it as many times as possible. If later " +"portions of the pattern don't match, the matching engine will then back up " +"and try again with fewer repetitions." +msgstr "" +"Les répétitions telles que ``*`` sont :dfn:`gloutonnes` ; quand vous répétez " +"une RE, le moteur de correspondance essaie de trouver la correspondance la " +"plus longue en répétant le motif tant qu'il le peut. Si la suite du motif ne " +"correspond pas, le moteur de correspondance revient en arrière et essaie " +"avec moins de répétitions." + +#: ../Doc/howto/regex.rst:183 +msgid "" +"A step-by-step example will make this more obvious. Let's consider the " +"expression ``a[bcd]*b``. This matches the letter ``'a'``, zero or more " +"letters from the class ``[bcd]``, and finally ends with a ``'b'``. Now " +"imagine matching this RE against the string ``'abcbd'``." +msgstr "" +"Un exemple étape par étape mettra les choses au clair. Considérons " +"l'expression ``a[bcd]*b``. Elle correspond à la lettre ``'a'``, suivi " +"d'aucune ou plusieurs lettres de la classe `[bcd]`` et finit par un ``'b'``. " +"Maintenant, supposons que nous cherchons une correspondance de cette RE avec " +"la chaîne de caractères ``'abcbd'``." + +#: ../Doc/howto/regex.rst:189 +msgid "Step" +msgstr "Étape" + +#: ../Doc/howto/regex.rst:189 +msgid "Matched" +msgstr "Correspond" + +#: ../Doc/howto/regex.rst:189 +msgid "Explanation" +msgstr "Explication" + +#: ../Doc/howto/regex.rst:191 +msgid "1" +msgstr "1" + +#: ../Doc/howto/regex.rst:191 +msgid "``a``" +msgstr "``a``" + +#: ../Doc/howto/regex.rst:191 +msgid "The ``a`` in the RE matches." +msgstr "Le ``a`` correspond dans la RE." + +#: ../Doc/howto/regex.rst:193 +msgid "2" +msgstr "2" + +#: ../Doc/howto/regex.rst:193 +msgid "``abcbd``" +msgstr "``abcbd``" + +#: ../Doc/howto/regex.rst:193 +msgid "" +"The engine matches ``[bcd]*``, going as far as it can, which is to the end " +"of the string." +msgstr "" +"Le moteur de correspondance trouve ``[bcd]*``, va aussi loin qu'il le peut, " +"ce qui n'est pas la fin de la chaîne." + +#: ../Doc/howto/regex.rst:197 +msgid "3" +msgstr "3" + +#: ../Doc/howto/regex.rst:197 ../Doc/howto/regex.rst:205 +msgid "*Failure*" +msgstr "*échec*" + +#: ../Doc/howto/regex.rst:197 +msgid "" +"The engine tries to match ``b``, but the current position is at the end of " +"the string, so it fails." +msgstr "" +"Le moteur essaie de trouver une correspondance avec ``b`` mais la position " +"courante est à la fin de la chaîne de caractères, donc il échoue." + +#: ../Doc/howto/regex.rst:202 +msgid "4" +msgstr "4" + +#: ../Doc/howto/regex.rst:202 ../Doc/howto/regex.rst:213 +msgid "``abcb``" +msgstr "``abcb``" + +#: ../Doc/howto/regex.rst:202 +msgid "Back up, so that ``[bcd]*`` matches one less character." +msgstr "" +"Retour en arrière, de manière à ce que ``[bcd]*`` corresponde avec un " +"caractère de moins." + +#: ../Doc/howto/regex.rst:205 +msgid "5" +msgstr "5" + +#: ../Doc/howto/regex.rst:205 +msgid "" +"Try ``b`` again, but the current position is at the last character, which is " +"a ``'d'``." +msgstr "" +"Essaie encore ``b``, mais la position courante est le dernier caractère, qui " +"est ``'d'``." + +#: ../Doc/howto/regex.rst:209 ../Doc/howto/regex.rst:213 +msgid "6" +msgstr "6" + +#: ../Doc/howto/regex.rst:209 +msgid "``abc``" +msgstr "``abc``" + +#: ../Doc/howto/regex.rst:209 +msgid "Back up again, so that ``[bcd]*`` is only matching ``bc``." +msgstr "" +"Encore un retour en arrière, de manière à ce que ``[bcd]*`` ne corresponde " +"qu'à ``bc``." + +#: ../Doc/howto/regex.rst:213 +msgid "" +"Try ``b`` again. This time the character at the current position is " +"``'b'``, so it succeeds." +msgstr "" +"Essaie ``b`` encore une fois. Cette fois, le caractère à la position " +"courante est ``'b'``, donc cela fonctionne." + +#: ../Doc/howto/regex.rst:219 +msgid "" +"The end of the RE has now been reached, and it has matched ``'abcb'``. This " +"demonstrates how the matching engine goes as far as it can at first, and if " +"no match is found it will then progressively back up and retry the rest of " +"the RE again and again. It will back up until it has tried zero matches for " +"``[bcd]*``, and if that subsequently fails, the engine will conclude that " +"the string doesn't match the RE at all." +msgstr "" +"La fin de la RE est maintenant atteinte et la correspondance trouvée est " +"``'abcb'``. Ceci démontre comment le moteur de correspondance essaie d'aller " +"le plus loin possible en premier et, si la correspondance échoue, il revient " +"progressivement en arrière et ré-essaie avec le reste de la RE encore et " +"encore. Il revient en arrière jusqu'à qu'il n'y ait aucune correspondance " +"pour ``[bcd]*`` et, si cela échoue toujours, le moteur conclut que la chaîne " +"de caractères et la RE ne correspondent pas du tout." + +#: ../Doc/howto/regex.rst:226 +msgid "" +"Another repeating metacharacter is ``+``, which matches one or more times. " +"Pay careful attention to the difference between ``*`` and ``+``; ``*`` " +"matches *zero* or more times, so whatever's being repeated may not be " +"present at all, while ``+`` requires at least *one* occurrence. To use a " +"similar example, ``ca+t`` will match ``'cat'`` (1 ``'a'``), ``'caaat'`` (3 " +"``'a'``\\ s), but won't match ``'ct'``." +msgstr "" +"Un autre métacaractère de répétition est ``+``, qui fait correspondre une ou " +"plusieurs fois. Faites bien attention à la différence entre ``*`` et ``+`` ; " +"``*`` fait correspondre *zéro* fois ou plus, ainsi ce qui doit être répété " +"peut ne pas être présent du tout, alors que ``+`` requiert au moins *une* " +"occurrence. Pour continuer avec le même exemple, ``cha+t`` correspond avec " +"``'chat'`` (1 ``'a'``), ``'chaaat'`` (3 ``'a'``) mais ne correspond pas avec " +"``'ct'``." + +#: ../Doc/howto/regex.rst:233 +msgid "" +"There are two more repeating qualifiers. The question mark character, ``?" +"``, matches either once or zero times; you can think of it as marking " +"something as being optional. For example, ``home-?brew`` matches either " +"``'homebrew'`` or ``'home-brew'``." +msgstr "" +"Il existe deux autres quantificateurs pour les répétitions. Le point " +"d'interrogation, ``?``, fait correspondre zéro ou une fois ; vous pouvez " +"vous le représenter comme indiquant une option. Par exemple, ``méta-?" +"caractère`` fait correspondre soit ``métacaractère``, soit ``méta-" +"caractère``." + +#: ../Doc/howto/regex.rst:238 +msgid "" +"The most complicated repeated qualifier is ``{m,n}``, where *m* and *n* are " +"decimal integers. This qualifier means there must be at least *m* " +"repetitions, and at most *n*. For example, ``a/{1,3}b`` will match ``'a/" +"b'``, ``'a//b'``, and ``'a///b'``. It won't match ``'ab'``, which has no " +"slashes, or ``'a////b'``, which has four." +msgstr "" +"Le plus compliqué des quantificateurs est ``{m,n}`` où *m* et *n* sont des " +"entiers décimaux. Ce quantificateur indique qu'il faut au moins *m* " +"répétitions et au plus *n*. Par exemple, ``a/{1,3}b`` fait correspondre ``'a/" +"b'``, ``'a//b'`` et ``'a///b'``. Elle ne fait pas correspondre ``'ab'`` (pas " +"de barre oblique) ni ``'a////b'`` (quatre barres obliques)." + +#: ../Doc/howto/regex.rst:244 +msgid "" +"You can omit either *m* or *n*; in that case, a reasonable value is assumed " +"for the missing value. Omitting *m* is interpreted as a lower limit of 0, " +"while omitting *n* results in an upper bound of infinity." +msgstr "" +"Vous pouvez omettre soit *m*, soit *n* ; dans ce cas, une valeur raisonnable " +"est prise pour la valeur manquante. Omettre *m* considère que la borne basse " +"est 0 alors qu'omettre *n* signifie qu'il n'y a pas de borne supérieure." + +#: ../Doc/howto/regex.rst:248 +msgid "" +"Readers of a reductionist bent may notice that the three other qualifiers " +"can all be expressed using this notation. ``{0,}`` is the same as ``*``, " +"``{1,}`` is equivalent to ``+``, and ``{0,1}`` is the same as ``?``. It's " +"better to use ``*``, ``+``, or ``?`` when you can, simply because they're " +"shorter and easier to read." +msgstr "" +"Le lecteur attentif aura noté que les trois premiers quantificateurs peuvent " +"être exprimés en utilisant cette notation. ``{0,}`` est la même chose que " +"``*``, ``{1,}`` est équivalent à ``+`` et ``{0,1}`` se comporte comme ``?``. " +"Il est préférable d'utiliser ``*``, ``+`` ou ``?`` quand vous le pouvez, " +"simplement parce qu'ils sont plus courts et plus faciles à lire." + +#: ../Doc/howto/regex.rst:256 +msgid "Using Regular Expressions" +msgstr "Utilisation des expressions régulières" + +#: ../Doc/howto/regex.rst:258 +msgid "" +"Now that we've looked at some simple regular expressions, how do we actually " +"use them in Python? The :mod:`re` module provides an interface to the " +"regular expression engine, allowing you to compile REs into objects and then " +"perform matches with them." +msgstr "" +"Maintenant que nous avons vu quelques expressions régulières simples, " +"utilisons-les concrètement. Le module :mod:`re` fournit une interface pour " +"le moteur de correspondance, ce qui permet de compiler les RE en objets et " +"d'effectuer des correspondances avec." + +#: ../Doc/howto/regex.rst:265 +msgid "Compiling Regular Expressions" +msgstr "Compilation des expressions régulières" + +#: ../Doc/howto/regex.rst:267 +msgid "" +"Regular expressions are compiled into pattern objects, which have methods " +"for various operations such as searching for pattern matches or performing " +"string substitutions. ::" +msgstr "" +"Les expressions régulières sont compilées en objets motifs, qui possèdent " +"des méthodes pour diverses opérations telles que la recherche de " +"correspondances ou les substitutions dans les chaînes. ::" + +#: ../Doc/howto/regex.rst:276 +msgid "" +":func:`re.compile` also accepts an optional *flags* argument, used to enable " +"various special features and syntax variations. We'll go over the available " +"settings later, but for now a single example will do::" +msgstr "" +":func:`re.compile` accepte aussi une option *flags*, utilisée pour activer " +"des fonctionnalités particulières et des variations de syntaxe. Nous " +"étudierons la définition des variables plus tard et, pour l'instant, un seul " +"exemple suffit ::" + +#: ../Doc/howto/regex.rst:282 +msgid "" +"The RE is passed to :func:`re.compile` as a string. REs are handled as " +"strings because regular expressions aren't part of the core Python language, " +"and no special syntax was created for expressing them. (There are " +"applications that don't need REs at all, so there's no need to bloat the " +"language specification by including them.) Instead, the :mod:`re` module is " +"simply a C extension module included with Python, just like the :mod:" +"`socket` or :mod:`zlib` modules." +msgstr "" +"La RE passée à :func:`re.compile` est une chaîne. Les RE sont des chaînes " +"car les expressions régulières ne font pas partie intrinsèque du langage " +"Python et aucune syntaxe particulière n'a été créée pour les exprimer (il " +"existe des applications qui ne nécessitent aucune RE et il n'a donc aucune " +"raison de grossir les spécifications du langage en incluant les RE). Ainsi, " +"le module :mod:`re` est simplement un module d'extension en C inclus dans " +"Python, tout comme les modules :mod:`socket` ou :mod:`zlib`." + +#: ../Doc/howto/regex.rst:289 +msgid "" +"Putting REs in strings keeps the Python language simpler, but has one " +"disadvantage which is the topic of the next section." +msgstr "" +"Exprimer les RE comme des chaînes de caractères garde le langage Python plus " +"simple mais introduit un inconvénient qui fait l'objet de la section " +"suivante." + +#: ../Doc/howto/regex.rst:296 +msgid "The Backslash Plague" +msgstr "La maudite barre oblique inverse" + +#: ../Doc/howto/regex.rst:298 +msgid "" +"As stated earlier, regular expressions use the backslash character " +"(``'\\'``) to indicate special forms or to allow special characters to be " +"used without invoking their special meaning. This conflicts with Python's " +"usage of the same character for the same purpose in string literals." +msgstr "" +"Comme indiqué précédemment, les expressions régulières utilisent la barre " +"oblique inverse (*backslash* en anglais) pour indiquer des constructions " +"particulières ou pour autoriser des caractères spéciaux sans que leur " +"signification spéciale ne soit invoquée. C'est en contradiction avec l'usage " +"de Python qui est qu'un caractère doit avoir la même signification dans les " +"littéraux de chaînes de caractères." + +#: ../Doc/howto/regex.rst:303 +msgid "" +"Let's say you want to write a RE that matches the string ``\\section``, " +"which might be found in a LaTeX file. To figure out what to write in the " +"program code, start with the desired string to be matched. Next, you must " +"escape any backslashes and other metacharacters by preceding them with a " +"backslash, resulting in the string ``\\\\section``. The resulting string " +"that must be passed to :func:`re.compile` must be ``\\\\section``. However, " +"to express this as a Python string literal, both backslashes must be escaped " +"*again*." +msgstr "" +"Considérons que vous voulez écrire une RE qui fait correspondre la chaîne de " +"caractères ``\\section`` (on en trouve dans un fichier LaTeX). Pour savoir " +"ce qu'il faut coder dans votre programme, commençons par la chaîne de " +"caractères cherchée. Ensuite, nous devons échapper chaque barre oblique " +"inverse et tout autre métacaractère en les précédant d'une barre oblique " +"inverse, ce qui donne la chaîne de caractères ``\\\\section``. La chaîne " +"résultante qui doit être passée à :func:`re.compile` est donc ``\\" +"\\section``. Comme nous devons l'exprimer sous la forme d'une chaîne " +"littérale Python, nous devons échapper les deux barres obliques inverses " +"*encore une fois*." + +#: ../Doc/howto/regex.rst:312 +msgid "Characters" +msgstr "Caractères" + +#: ../Doc/howto/regex.rst:312 +msgid "Stage" +msgstr "Niveau" + +#: ../Doc/howto/regex.rst:314 +msgid "``\\section``" +msgstr "``\\section``" + +#: ../Doc/howto/regex.rst:314 +msgid "Text string to be matched" +msgstr "Chaîne de caractère à chercher" + +#: ../Doc/howto/regex.rst:316 +msgid "``\\\\section``" +msgstr "``\\\\section``" + +#: ../Doc/howto/regex.rst:316 +msgid "Escaped backslash for :func:`re.compile`" +msgstr "Barre oblique inverse échappée pour :func:`re.compile`" + +#: ../Doc/howto/regex.rst:318 ../Doc/howto/regex.rst:345 +msgid "``\"\\\\\\\\section\"``" +msgstr "``\"\\\\\\\\section\"``" + +#: ../Doc/howto/regex.rst:318 +msgid "Escaped backslashes for a string literal" +msgstr "" +"Barres obliques inverses échappées pour un littéral de chaîne de caractères" + +#: ../Doc/howto/regex.rst:321 +msgid "" +"In short, to match a literal backslash, one has to write ``'\\\\\\\\'`` as " +"the RE string, because the regular expression must be ``\\\\``, and each " +"backslash must be expressed as ``\\\\`` inside a regular Python string " +"literal. In REs that feature backslashes repeatedly, this leads to lots of " +"repeated backslashes and makes the resulting strings difficult to understand." +msgstr "" +"Pour faire court, si vous cherchez une correspondance pour une barre oblique " +"inverse littérale, écrivez ``'\\\\\\\\'`` dans votre chaîne RE, car " +"l'expression régulière doit être ``\\\\`` et que chaque barre oblique " +"inverse doit être exprimée comme ``\\\\`` dans un littéral chaîne de " +"caractères Python. Dans les RE qui comportent plusieurs barres obliques " +"inverses, cela conduit à beaucoup de barres obliques inverses et rend la " +"chaîne résultante difficile à comprendre." + +#: ../Doc/howto/regex.rst:327 +msgid "" +"The solution is to use Python's raw string notation for regular expressions; " +"backslashes are not handled in any special way in a string literal prefixed " +"with ``'r'``, so ``r\"\\n\"`` is a two-character string containing ``'\\'`` " +"and ``'n'``, while ``\"\\n\"`` is a one-character string containing a " +"newline. Regular expressions will often be written in Python code using this " +"raw string notation." +msgstr "" +"La solution consiste à utiliser les chaînes brutes Python pour les " +"expressions régulières ; les barres obliques inverses ne sont pas gérées " +"d'une manière particulière dans les chaînes littérales préfixées avec " +"``'r'``. Ainsi, ``r\"\\n\"`` est la chaîne de deux caractères contenant " +"``'\\'`` et ``'n'`` alors que ``\"\\n\"`` est la chaîne contenant uniquement " +"le caractère retour à la ligne. Les expressions régulières sont souvent " +"écrites dans le code Python en utilisant la notation \"chaînes brutes\"." + +#: ../Doc/howto/regex.rst:333 +msgid "" +"In addition, special escape sequences that are valid in regular expressions, " +"but not valid as Python string literals, now result in a :exc:" +"`DeprecationWarning` and will eventually become a :exc:`SyntaxError`, which " +"means the sequences will be invalid if raw string notation or escaping the " +"backslashes isn't used." +msgstr "" +"En complément, les séquences d'échappement valides dans les expressions " +"régulières, mais non valides dans les littéraux chaînes classiques, " +"produisent dorénavant un :exc:`DeprecationWarning` et, possiblement, " +"deviendront une :exc:`SyntaxError`, ce qui signifie que les séquences seront " +"invalides si la notation \"chaîne brute\" ou l'échappement des barres " +"obliques inverses ne sont pas utilisés." + +#: ../Doc/howto/regex.rst:341 +msgid "Regular String" +msgstr "Chaîne normale" + +#: ../Doc/howto/regex.rst:341 +msgid "Raw string" +msgstr "Chaîne de caractères brute" + +#: ../Doc/howto/regex.rst:343 +msgid "``\"ab*\"``" +msgstr "``\"ab*\"``" + +#: ../Doc/howto/regex.rst:343 +msgid "``r\"ab*\"``" +msgstr "``r\"ab*\"``" + +#: ../Doc/howto/regex.rst:345 +msgid "``r\"\\\\section\"``" +msgstr "``r\"\\\\section\"``" + +#: ../Doc/howto/regex.rst:347 +msgid "``\"\\\\w+\\\\s+\\\\1\"``" +msgstr "``\"\\\\w+\\\\s+\\\\1\"``" + +#: ../Doc/howto/regex.rst:347 +msgid "``r\"\\w+\\s+\\1\"``" +msgstr "``r\"\\w+\\s+\\1\"``" + +#: ../Doc/howto/regex.rst:352 +msgid "Performing Matches" +msgstr "Recherche de correspondances" + +#: ../Doc/howto/regex.rst:354 +msgid "" +"Once you have an object representing a compiled regular expression, what do " +"you do with it? Pattern objects have several methods and attributes. Only " +"the most significant ones will be covered here; consult the :mod:`re` docs " +"for a complete listing." +msgstr "" +"Une fois que nous avons un objet représentant une expression régulière " +"compilée, qu'en faisons-nous ? Les objets motifs ont plusieurs méthodes et " +"attributs. Seuls les plus significatifs seront couverts ici ; consultez la " +"documentation :mod:`re` pour la liste complète." + +#: ../Doc/howto/regex.rst:360 ../Doc/howto/regex.rst:418 +#: ../Doc/howto/regex.rst:1057 +msgid "Method/Attribute" +msgstr "Méthode/Attribut" + +#: ../Doc/howto/regex.rst:360 ../Doc/howto/regex.rst:418 +#: ../Doc/howto/regex.rst:1057 +msgid "Purpose" +msgstr "Objectif" + +#: ../Doc/howto/regex.rst:362 +msgid "``match()``" +msgstr "``match()``" + +#: ../Doc/howto/regex.rst:362 +msgid "Determine if the RE matches at the beginning of the string." +msgstr "Détermine si la RE fait correspond dès le début de la chaîne." + +#: ../Doc/howto/regex.rst:365 +msgid "``search()``" +msgstr "``search()``" + +#: ../Doc/howto/regex.rst:365 +msgid "Scan through a string, looking for any location where this RE matches." +msgstr "Analyse la chaîne à la recherche d'une position où la RE correspond." + +#: ../Doc/howto/regex.rst:368 +msgid "``findall()``" +msgstr "``findall()``" + +#: ../Doc/howto/regex.rst:368 +msgid "Find all substrings where the RE matches, and returns them as a list." +msgstr "" +"Trouve toutes les sous-chaînes qui correspondent à la RE et les renvoie sous " +"la forme d'une liste." + +#: ../Doc/howto/regex.rst:371 +msgid "``finditer()``" +msgstr "``finditer()``" + +#: ../Doc/howto/regex.rst:371 +msgid "" +"Find all substrings where the RE matches, and returns them as an :term:" +"`iterator`." +msgstr "" +"Trouve toutes les sous-chaînes qui correspondent à la RE et les renvoie sous " +"la forme d'un :term:`itérateur `." + +#: ../Doc/howto/regex.rst:375 +msgid "" +":meth:`~re.Pattern.match` and :meth:`~re.Pattern.search` return ``None`` if " +"no match can be found. If they're successful, a :ref:`match object ` instance is returned, containing information about the match: " +"where it starts and ends, the substring it matched, and more." +msgstr "" +":meth:`~re.Pattern.match` et :meth:`~re.Pattern.search` renvoient ``None`` " +"si aucune correspondance ne peut être trouvée. Si elles trouvent une " +"correspondance, une instance d'objet :ref:`correspondance ` " +"est renvoyée, contenant les informations relatives à la correspondance : " +"position de départ et de fin, la sous-chaîne qui correspond et d'autres " +"informations." + +#: ../Doc/howto/regex.rst:380 +msgid "" +"You can learn about this by interactively experimenting with the :mod:`re` " +"module. If you have :mod:`tkinter` available, you may also want to look at :" +"source:`Tools/demo/redemo.py`, a demonstration program included with the " +"Python distribution. It allows you to enter REs and strings, and displays " +"whether the RE matches or fails. :file:`redemo.py` can be quite useful when " +"trying to debug a complicated RE." +msgstr "" +"Vous pouvez apprendre leur fonctionnement en expérimentant de manière " +"interactive avec le module :mod:`re`. Si vous disposez de :mod:`tkinter`, " +"vous pouvez aussi regarder les sources de :source:`Tools/demo/redemo.py`, un " +"programme de démonstration inclus dans la distribution Python. Ce programme " +"vous permet de rentrer des RE et des chaînes, affichant si la RE correspond " +"ou pas. :file:`redemo.py` peut s'avérer particulièrement utile quand vous " +"devez déboguer une RE compliquée." + +#: ../Doc/howto/regex.rst:387 +msgid "" +"This HOWTO uses the standard Python interpreter for its examples. First, run " +"the Python interpreter, import the :mod:`re` module, and compile a RE::" +msgstr "" +"Ce guide utilise l'interpréteur standard de Python pour ses exemples. " +"Commencez par lancer l'interpréteur Python, importez le module :mod:`re` et " +"compilez une RE ::" + +#: ../Doc/howto/regex.rst:395 +msgid "" +"Now, you can try matching various strings against the RE ``[a-z]+``. An " +"empty string shouldn't match at all, since ``+`` means 'one or more " +"repetitions'. :meth:`~re.Pattern.match` should return ``None`` in this case, " +"which will cause the interpreter to print no output. You can explicitly " +"print the result of :meth:`!match` to make this clear. ::" +msgstr "" +"Maintenant, vous pouvez tester des correspondances de la RE ``[a-z]+`` avec " +"différentes chaînes. Une chaîne vide ne doit pas correspondre, puisque ``+`` " +"indique \"une ou plusieurs occurrences\". :meth:`~re.Pattern.match` doit " +"renvoyer ``None`` dans ce cas, ce qui fait que l'interpréteur n'affiche " +"rien. Vous pouvez afficher le résultat de :meth:`!match` explicitement pour " +"que ce soit clair. ::" + +#: ../Doc/howto/regex.rst:405 +msgid "" +"Now, let's try it on a string that it should match, such as ``tempo``. In " +"this case, :meth:`~re.Pattern.match` will return a :ref:`match object `, so you should store the result in a variable for later use. ::" +msgstr "" +"Maintenant, essayons sur une chaîne qui doit correspondre, par exemple " +"``tempo``. Dans ce cas, :meth:`~re.Pattern.match` renvoie un :ref:`objet " +"correspondance `, vous pouvez ainsi stocker le résultat dans " +"une variable pour une utilisation ultérieure. ::" + +#: ../Doc/howto/regex.rst:413 +msgid "" +"Now you can query the :ref:`match object ` for information " +"about the matching string. Match object instances also have several methods " +"and attributes; the most important ones are:" +msgstr "" +"Maintenant, vous pouvez interroger :ref:`l'objet correspondance ` pour obtenir des informations sur la chaîne qui correspond. Les " +"instances d'objets correspondances possèdent plusieurs méthodes et " +"attributs ; les plus importants sont :" + +#: ../Doc/howto/regex.rst:420 +msgid "``group()``" +msgstr "``group()``" + +#: ../Doc/howto/regex.rst:420 +msgid "Return the string matched by the RE" +msgstr "Renvoie la chaîne de caractères correspondant à la RE" + +#: ../Doc/howto/regex.rst:422 +msgid "``start()``" +msgstr "``start()``" + +#: ../Doc/howto/regex.rst:422 +msgid "Return the starting position of the match" +msgstr "Renvoie la position de début de la correspondance" + +#: ../Doc/howto/regex.rst:424 +msgid "``end()``" +msgstr "``end()``" + +#: ../Doc/howto/regex.rst:424 +msgid "Return the ending position of the match" +msgstr "Renvoie la position de fin de la correspondance" + +#: ../Doc/howto/regex.rst:426 +msgid "``span()``" +msgstr "``span()``" + +#: ../Doc/howto/regex.rst:426 +msgid "Return a tuple containing the (start, end) positions of the match" +msgstr "" +"Renvoie un *tuple* contenant les positions (début, fin) de la correspondance" + +#: ../Doc/howto/regex.rst:430 +msgid "Trying these methods will soon clarify their meaning::" +msgstr "Essayons ces méthodes pour clarifier leur signification ::" + +#: ../Doc/howto/regex.rst:439 +msgid "" +":meth:`~re.Match.group` returns the substring that was matched by the RE. :" +"meth:`~re.Match.start` and :meth:`~re.Match.end` return the starting and " +"ending index of the match. :meth:`~re.Match.span` returns both start and end " +"indexes in a single tuple. Since the :meth:`~re.Pattern.match` method only " +"checks if the RE matches at the start of a string, :meth:`!start` will " +"always be zero. However, the :meth:`~re.Pattern.search` method of patterns " +"scans through the string, so the match may not start at zero in that " +"case. ::" +msgstr "" +":meth:`~re.Match.group` renvoie la sous-chaîne qui correspond à la RE. :meth:" +"`~re.Match.start` et :meth:`~re.Match.end` renvoient les indices de début et " +"de fin de la correspondance. :meth:`~re.Match.span` renvoie les indices de " +"début et de fin dans un seul *tuple*. Comme la méthode :meth:`~re.Pattern." +"match` ne fait que vérifier si la RE correspond au début de la chaîne, :meth:" +"`!start` vaut toujours zéro. Cependant, la méthode :meth:`~re.Pattern." +"search` d'un motif analyse toute la chaîne, afin de trouver une " +"correspondance potentielle qui ne commence pas à zéro. ::" + +#: ../Doc/howto/regex.rst:456 +msgid "" +"In actual programs, the most common style is to store the :ref:`match object " +"` in a variable, and then check if it was ``None``. This " +"usually looks like::" +msgstr "" +"Dans les programmes réels, la façon de faire la plus courante consiste à " +"stocker :ref:`l'objet correspondance ` dans une variable, " +"puis à vérifier s'il vaut ``None``. Généralement, cela ressemble à ceci ::" + +#: ../Doc/howto/regex.rst:467 +msgid "" +"Two pattern methods return all of the matches for a pattern. :meth:`~re." +"Pattern.findall` returns a list of matching strings::" +msgstr "" +"Deux méthodes de motifs renvoient toutes les correspondances pour un motif. :" +"meth:`~re.Pattern.findall` renvoie une liste des chaînes qui correspondent ::" + +#: ../Doc/howto/regex.rst:474 +msgid "" +"The ``r`` prefix, making the literal a raw string literal, is needed in this " +"example because escape sequences in a normal \"cooked\" string literal that " +"are not recognized by Python, as opposed to regular expressions, now result " +"in a :exc:`DeprecationWarning` and will eventually become a :exc:" +"`SyntaxError`. See :ref:`the-backslash-plague`." +msgstr "" +"Le préfixe ``r``, qui indique une chaîne brute littérale, est nécessaire " +"dans cet exemple car les séquences d'échappement dans une chaîne littérale " +"qui ne sont pas reconnues par Python, alors qu'elles le sont par les " +"expressions régulières, induisent maintenant un :exc:`DeprecationWarning` et " +"deviendront possiblement des :exc:`SyntaxError`. Reportez-vous à :ref:`the-" +"backslash-plague`." + +#: ../Doc/howto/regex.rst:480 +msgid "" +":meth:`~re.Pattern.findall` has to create the entire list before it can be " +"returned as the result. The :meth:`~re.Pattern.finditer` method returns a " +"sequence of :ref:`match object ` instances as an :term:" +"`iterator`::" +msgstr "" +":meth:`~re.Pattern.findall` doit créer la liste entière avant d'être renvoyé " +"comme résultat. La méthode :meth:`~re.Pattern.finditer` renvoie une séquence " +"d'instances :ref:`d'objets correspondances ` en tant :term:" +"`qu'itérateur ` ::" + +#: ../Doc/howto/regex.rst:496 +msgid "Module-Level Functions" +msgstr "Fonctions de niveau module" + +#: ../Doc/howto/regex.rst:498 +msgid "" +"You don't have to create a pattern object and call its methods; the :mod:" +"`re` module also provides top-level functions called :func:`~re.match`, :" +"func:`~re.search`, :func:`~re.findall`, :func:`~re.sub`, and so forth. " +"These functions take the same arguments as the corresponding pattern method " +"with the RE string added as the first argument, and still return either " +"``None`` or a :ref:`match object ` instance. ::" +msgstr "" +"Vous n'avez pas besoin de créer un objet motif et d'appeler ses méthodes ; " +"le module :mod:`re` fournit des fonctions à son niveau, ce sont :func:`~re." +"match`, :func:`~re.search`, :func:`~re.findall`, :func:`~re.sub` et ainsi de " +"suite. Ces fonctions prennent les mêmes arguments que les méthodes " +"correspondantes des objets motifs, avec la chaîne RE ajoutée en tant que " +"premier argument. Elles renvoient toujours ``None`` ou une instance :ref:" +"`d'objet correspondance `. ::" + +#: ../Doc/howto/regex.rst:510 +msgid "" +"Under the hood, these functions simply create a pattern object for you and " +"call the appropriate method on it. They also store the compiled object in a " +"cache, so future calls using the same RE won't need to parse the pattern " +"again and again." +msgstr "" +"En interne, ces fonctions créent simplement un objet motif pour vous et " +"appellent la méthode appropriée de cet objet. Elles stockent également " +"l'objet compilé dans un cache afin que les appels suivants qui utilisent la " +"même RE n'aient pas besoin d'analyser le motif une nouvelle fois." + +#: ../Doc/howto/regex.rst:515 +msgid "" +"Should you use these module-level functions, or should you get the pattern " +"and call its methods yourself? If you're accessing a regex within a loop, " +"pre-compiling it will save a few function calls. Outside of loops, there's " +"not much difference thanks to the internal cache." +msgstr "" +"Devez-vous utiliser ces fonctions au niveau des modules ou devez-vous " +"calculer le motif et appeler vous-même ses méthodes ? Si vous utilisez " +"l'expression régulière à l'intérieur d'une boucle, la pré-compilation permet " +"d'économiser quelques appels de fonctions. En dehors des boucles, il n'y a " +"pas beaucoup de différence grâce au cache interne." + +#: ../Doc/howto/regex.rst:523 +msgid "Compilation Flags" +msgstr "Options de compilation" + +#: ../Doc/howto/regex.rst:525 +msgid "" +"Compilation flags let you modify some aspects of how regular expressions " +"work. Flags are available in the :mod:`re` module under two names, a long " +"name such as :const:`IGNORECASE` and a short, one-letter form such as :const:" +"`I`. (If you're familiar with Perl's pattern modifiers, the one-letter " +"forms use the same letters; the short form of :const:`re.VERBOSE` is :const:" +"`re.X`, for example.) Multiple flags can be specified by bitwise OR-ing " +"them; ``re.I | re.M`` sets both the :const:`I` and :const:`M` flags, for " +"example." +msgstr "" +"Les options de compilation vous permettent de modifier le comportement des " +"expressions régulières. Ces options sont accessibles dans le module :mod:" +"`re` par deux noms, un long du type :const:`IGNORECASE` et un court (une " +"seule lettre) tel que :const:`I` (si vous êtes habitués aux modificateurs de " +"motifs Perl, la version courte utilise les mêmes lettres que Perl, par " +"exemple la version courte de :const:`re.VERBOSE` est :const:`re.X`). " +"Plusieurs options peuvent être spécifiées en appliquant l'opérateur bit-à-" +"bit *OR* ; par exemple, ``re.I | re.M`` active à la fois les options :const:" +"`I` et :const:`M`." + +#: ../Doc/howto/regex.rst:533 +msgid "" +"Here's a table of the available flags, followed by a more detailed " +"explanation of each one." +msgstr "" +"Vous trouvez ci-dessous le tableau des options disponibles, suivies " +"d'explications détaillées." + +#: ../Doc/howto/regex.rst:537 +msgid "Flag" +msgstr "Option" + +#: ../Doc/howto/regex.rst:537 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/howto/regex.rst:539 +msgid ":const:`ASCII`, :const:`A`" +msgstr ":const:`ASCII`, :const:`A`" + +#: ../Doc/howto/regex.rst:539 +msgid "" +"Makes several escapes like ``\\w``, ``\\b``, ``\\s`` and ``\\d`` match only " +"on ASCII characters with the respective property." +msgstr "" +"Transforme plusieurs échappements tels que ``\\w``, ``\\b``, ``\\s`` et ``" +"\\d`` de manière à ce qu'ils ne correspondent qu'à des caractères ASCII " +"ayant la propriété demandée." + +#: ../Doc/howto/regex.rst:543 +msgid ":const:`DOTALL`, :const:`S`" +msgstr ":const:`DOTALL`, :const:`S`" + +#: ../Doc/howto/regex.rst:543 +msgid "Make ``.`` match any character, including newlines." +msgstr "" +"Fait en sorte que ``.`` corresponde à n'importe quel caractère, caractère de " +"retour à la ligne inclus." + +#: ../Doc/howto/regex.rst:546 +msgid ":const:`IGNORECASE`, :const:`I`" +msgstr ":const:`IGNORECASE`, :const:`I`" + +#: ../Doc/howto/regex.rst:546 +msgid "Do case-insensitive matches." +msgstr "Recherche une correspondance sans tenir compte de la casse." + +#: ../Doc/howto/regex.rst:548 +msgid ":const:`LOCALE`, :const:`L`" +msgstr ":const:`LOCALE`, :const:`L`" + +#: ../Doc/howto/regex.rst:548 +msgid "Do a locale-aware match." +msgstr "" +"Recherche une correspondance en tenant compte de la configuration de la " +"région." + +#: ../Doc/howto/regex.rst:550 +msgid ":const:`MULTILINE`, :const:`M`" +msgstr ":const:`MULTILINE`, :const:`M`" + +#: ../Doc/howto/regex.rst:550 +msgid "Multi-line matching, affecting ``^`` and ``$``." +msgstr "Correspondance multi-lignes, affecte ``^`` et ``$``." + +#: ../Doc/howto/regex.rst:553 +msgid ":const:`VERBOSE`, :const:`X` (for 'extended')" +msgstr "" +":const:`VERBOSE`, :const:`X` (pour *extended*, c-à-d étendu en anglais)" + +#: ../Doc/howto/regex.rst:553 +msgid "" +"Enable verbose REs, which can be organized more cleanly and understandably." +msgstr "" +"Active les RE verbeuses, qui peuvent être organisées de manière plus propre " +"et compréhensible." + +#: ../Doc/howto/regex.rst:562 +msgid "" +"Perform case-insensitive matching; character class and literal strings will " +"match letters by ignoring case. For example, ``[A-Z]`` will match lowercase " +"letters, too. Full Unicode matching also works unless the :const:`ASCII` " +"flag is used to disable non-ASCII matches. When the Unicode patterns ``[a-" +"z]`` or ``[A-Z]`` are used in combination with the :const:`IGNORECASE` flag, " +"they will match the 52 ASCII letters and 4 additional non-ASCII letters: " +"'İ' (U+0130, Latin capital letter I with dot above), 'ı' (U+0131, Latin " +"small letter dotless i), 'ſ' (U+017F, Latin small letter long s) and 'K' (U" +"+212A, Kelvin sign). ``Spam`` will match ``'Spam'``, ``'spam'``, " +"``'spAM'``, or ``'ſpam'`` (the latter is matched only in Unicode mode). This " +"lowercasing doesn't take the current locale into account; it will if you " +"also set the :const:`LOCALE` flag." +msgstr "" +"Effectue une correspondance insensible à la casse ; les classes de " +"caractères et les littéraux de chaînes de caractères ignorent la casse pour " +"la correspondance. Par exemple, ``[A-Z]`` correspond aussi aux lettres " +"minuscules. La correspondance Unicode complète fonctionne également, sauf si " +"l'option :const:`ASCII` est utilisée pour désactiver les correspondances non " +"ASCII. Lorsque les motifs Unicode ``[a-z]`` ou ``[A-Z]`` sont utilisés en " +"combinaison avec l'option :const:`IGNORECASE`, ils correspondent avec les 52 " +"lettres ASCII et 4 lettres non ASCII supplémentaires : 'İ' (U+0130, lettre I " +"en majuscule latine avec un point au-dessus), 'ı' (U+0131, lettre minuscule " +"latine i sans point au-dessus), 'ſ' (U+017F, lettre minuscule latine longue " +"s) et 'K' (U+212A, signe du Kelvin). ``Spam`` correspond ainsi à ``'Spam'``, " +"``'spam'``, ``'spAM'`` ou ``'ſpam'`` (ce dernier ne correspond qu'en mode " +"Unicode). Le passage en minuscules ne prend pas en compte la configuration " +"de région courante ; elle le fait si vous mettez aussi l'option :const:" +"`LOCALE`." + +#: ../Doc/howto/regex.rst:580 +msgid "" +"Make ``\\w``, ``\\W``, ``\\b``, ``\\B`` and case-insensitive matching " +"dependent on the current locale instead of the Unicode database." +msgstr "" +"Rend ``\\w``, ``\\W``, ``\\b``, ``\\B`` et les correspondances non sensibles " +"à la casse dépendants de la configuration de la région courante au lieu de " +"la base de données Unicode." + +#: ../Doc/howto/regex.rst:583 +msgid "" +"Locales are a feature of the C library intended to help in writing programs " +"that take account of language differences. For example, if you're " +"processing encoded French text, you'd want to be able to write ``\\w+`` to " +"match words, but ``\\w`` only matches the character class ``[A-Za-z]`` in " +"bytes patterns; it won't match bytes corresponding to ``é`` or ``ç``. If " +"your system is configured properly and a French locale is selected, certain " +"C functions will tell the program that the byte corresponding to ``é`` " +"should also be considered a letter. Setting the :const:`LOCALE` flag when " +"compiling a regular expression will cause the resulting compiled object to " +"use these C functions for ``\\w``; this is slower, but also enables ``\\w+`` " +"to match French words as you'd expect. The use of this flag is discouraged " +"in Python 3 as the locale mechanism is very unreliable, it only handles one " +"\"culture\" at a time, and it only works with 8-bit locales. Unicode " +"matching is already enabled by default in Python 3 for Unicode (str) " +"patterns, and it is able to handle different locales/languages." +msgstr "" +"Les *locales* sont une caractéristique de la bibliothèque C destinées à " +"favoriser une programmation qui tient compte des différences linguistiques " +"(NdT : nous utilisons *configuration de région* dans cette page pour " +"désigner ce concept de la bibliothèque C). Par exemple, si vous traitez du " +"texte français, vous souhaitez pouvoir écrire ``\\w+`` pour faire " +"correspondre les mots, mais ``\\w`` ne correspond qu'à la classe de " +"caractères ``[A-Za-za-z]`` en octets ; cette classe ne correspond pas avec " +"les octets codant ``é`` ou ``ç``. Si votre système est configuré " +"correctement et que la configuration de région est définie sur 'français', " +"certaines fonctions C diront à votre programme que l'octet codant ``é`` doit " +"être considéré comme une lettre. Définir l'option :const:`LOCALE` lors de la " +"compilation d'une expression régulière fait que l'objet compilé résultant " +"utilise ces fonctions C pour ``\\w`` ; c'est plus lent mais cela permet à ``" +"\\w+`` de correspondre avec les mots français tel qu'attendu. L'utilisation " +"de cette option est déconseillée en Python 3 car le mécanisme de locale est " +"très peu fiable, il ne gère qu'une seule \"culture\" à la fois et il ne " +"fonctionne qu'avec des locales 8 bits. La correspondance Unicode est déjà " +"activée par défaut dans Python 3 pour les motifs Unicode (type *str*) et " +"elle est capable de gérer différentes configurations de régions." + +#: ../Doc/howto/regex.rst:605 +msgid "" +"(``^`` and ``$`` haven't been explained yet; they'll be introduced in " +"section :ref:`more-metacharacters`.)" +msgstr "" +"Nota : ``^`` et ``$`` n'ont pas encore été expliqués ; ils sont introduits " +"dans la section :ref:`more-metacharacters`." + +#: ../Doc/howto/regex.rst:608 +msgid "" +"Usually ``^`` matches only at the beginning of the string, and ``$`` matches " +"only at the end of the string and immediately before the newline (if any) at " +"the end of the string. When this flag is specified, ``^`` matches at the " +"beginning of the string and at the beginning of each line within the string, " +"immediately following each newline. Similarly, the ``$`` metacharacter " +"matches either at the end of the string and at the end of each line " +"(immediately preceding each newline)." +msgstr "" +"Normalement, ``^`` correspond uniquement au début de la chaîne, et ``$`` " +"correspond uniquement à la fin de la chaîne et immédiatement avant la " +"nouvelle ligne (s'il y en a une) à la fin de la chaîne. Lorsque cette option " +"est spécifiée, ``^`` correspond au début de la chaîne de caractères et au " +"début de chaque ligne de la chaîne de caractères, immédiatement après le " +"début de la nouvelle ligne. De même, le métacaractère ``$`` correspond à la " +"fin de la chaîne de caractères ou à la fin de chaque ligne (précédant " +"immédiatement chaque nouvelle ligne)." + +#: ../Doc/howto/regex.rst:621 +msgid "" +"Makes the ``'.'`` special character match any character at all, including a " +"newline; without this flag, ``'.'`` will match anything *except* a newline." +msgstr "" +"Fait que le caractère spécial ``'.'`` corresponde avec n'importe quel " +"caractère, y compris le retour à la ligne ; sans cette option, ``'.'`` " +"correspond avec tout, *sauf* le retour à la ligne." + +#: ../Doc/howto/regex.rst:629 +msgid "" +"Make ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\s`` and ``\\S`` perform ASCII-" +"only matching instead of full Unicode matching. This is only meaningful for " +"Unicode patterns, and is ignored for byte patterns." +msgstr "" +"Fait que ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\s`` et ``\\S`` ne " +"correspondent qu'avec des caractères ASCII au lieu de l'ensemble des " +"caractères Unicode. Cette option n'a de sens que pour des motifs Unicode, " +"elle est ignorée pour les motifs *bytes*." + +#: ../Doc/howto/regex.rst:638 +msgid "" +"This flag allows you to write regular expressions that are more readable by " +"granting you more flexibility in how you can format them. When this flag " +"has been specified, whitespace within the RE string is ignored, except when " +"the whitespace is in a character class or preceded by an unescaped " +"backslash; this lets you organize and indent the RE more clearly. This flag " +"also lets you put comments within a RE that will be ignored by the engine; " +"comments are marked by a ``'#'`` that's neither in a character class or " +"preceded by an unescaped backslash." +msgstr "" +"Cette option vous permet d'écrire des expressions régulières plus lisibles " +"en vous permettant plus de flexibilité pour le formatage. Lorsque cette " +"option est activée, les \"blancs\" dans la chaîne RE sont ignorés, sauf " +"lorsque le \"blanc\" se trouve dans une classe de caractères ou est précédé " +"d'une barre oblique inverse ; ceci vous permet d'organiser et d'indenter vos " +"RE plus clairement. Cette option vous permet également de placer des " +"commentaires dans une RE, ils seront ignorés par le moteur ; les " +"commentaires commencent par un ``'#'`` qui n'est ni dans une classe de " +"caractères, ni précédé d'une barre oblique inverse." + +#: ../Doc/howto/regex.rst:647 +msgid "" +"For example, here's a RE that uses :const:`re.VERBOSE`; see how much easier " +"it is to read? ::" +msgstr "" +"Par exemple, voici une RE qui utilise :const:`re.VERBOSE` ; vous pouvez " +"constater qu'elle est beaucoup plus facile à lire ::" + +#: ../Doc/howto/regex.rst:660 +msgid "Without the verbose setting, the RE would look like this::" +msgstr "Sans l'option verbeuse, cette RE ressemble à ceci ::" + +#: ../Doc/howto/regex.rst:666 +msgid "" +"In the above example, Python's automatic concatenation of string literals " +"has been used to break up the RE into smaller pieces, but it's still more " +"difficult to understand than the version using :const:`re.VERBOSE`." +msgstr "" +"Dans l'exemple ci-dessus, Python concatène automatiquement les littéraux " +"chaînes de caractères qui ont été utilisés pour séparer la RE en petits " +"morceaux, mais la RE reste plus difficile à comprendre que sa version " +"utilisant :const:`re.VERBOSE`." + +#: ../Doc/howto/regex.rst:672 +msgid "More Pattern Power" +msgstr "Des motifs plus puissants" + +#: ../Doc/howto/regex.rst:674 +msgid "" +"So far we've only covered a part of the features of regular expressions. In " +"this section, we'll cover some new metacharacters, and how to use groups to " +"retrieve portions of the text that was matched." +msgstr "" +"Jusqu'à présent nous avons seulement couvert une partie des fonctionnalités " +"des expressions régulières. Dans cette section, nous couvrirons quelques " +"nouveaux métacaractères et l'utilisation des groupes pour récupérer des " +"portions de textes correspondantes." + +#: ../Doc/howto/regex.rst:682 +msgid "More Metacharacters" +msgstr "Plus de métacaractères" + +#: ../Doc/howto/regex.rst:684 +msgid "" +"There are some metacharacters that we haven't covered yet. Most of them " +"will be covered in this section." +msgstr "" +"Nous n'avons pas encore couvert tous les métacaractères. Cette section " +"traite de la plupart de ceux que nous n'avons pas abordés." + +#: ../Doc/howto/regex.rst:687 +msgid "" +"Some of the remaining metacharacters to be discussed are :dfn:`zero-width " +"assertions`. They don't cause the engine to advance through the string; " +"instead, they consume no characters at all, and simply succeed or fail. For " +"example, ``\\b`` is an assertion that the current position is located at a " +"word boundary; the position isn't changed by the ``\\b`` at all. This means " +"that zero-width assertions should never be repeated, because if they match " +"once at a given location, they can obviously be matched an infinite number " +"of times." +msgstr "" +"Certains métacaractères restants sont des :dfn:`assertions de largeur zéro` " +"(*zero-width assertions* en anglais). Ils ne font pas avancer le moteur dans " +"la chaîne de caractères ; ils ne consomment aucun caractère et ils " +"réussissent ou échouent tout simplement. Par exemple, ``\\b`` est une " +"assertion selon laquelle la position actuelle est située à la limite d'un " +"mot ; la position n'est pas modifiée par le \" \\b \". Cela signifie que les " +"assertions de largeur zéro ne doivent pas être répétées car, si elles " +"correspondent à un endroit donné, elles correspondent automatiquement un " +"nombre infini de fois." + +#: ../Doc/howto/regex.rst:703 +msgid "``|``" +msgstr "``|``" + +#: ../Doc/howto/regex.rst:696 +msgid "" +"Alternation, or the \"or\" operator. If *A* and *B* are regular " +"expressions, ``A|B`` will match any string that matches either *A* or *B*. " +"``|`` has very low precedence in order to make it work reasonably when " +"you're alternating multi-character strings. ``Crow|Servo`` will match either " +"``'Crow'`` or ``'Servo'``, not ``'Cro'``, a ``'w'`` or an ``'S'``, and " +"``'ervo'``." +msgstr "" +"Union ensembliste ou opérateur \"ou\". Si *A* et *B* sont des expressions " +"régulières, ``A|B`` correspond à toute chaine qui correspond à A ou à B. La " +"priorité de ``|`` est très faible afin de pouvoir effectuer simplement des " +"unions de chaînes de plusieurs caractères. ``Crow|Servo`` correspond avec " +"``'Crow'`` ou ``'Servo'``, mais pas avec ``'Cro'``, un ``'w'`` ou un " +"``'S'``, ou encore ``'ervo'``." + +#: ../Doc/howto/regex.rst:702 +msgid "" +"To match a literal ``'|'``, use ``\\|``, or enclose it inside a character " +"class, as in ``[|]``." +msgstr "" +"Pour correspondre avec un ``'|'`` littéral, utilisez ``\\|`` ou placez-le " +"dans une classe de caractères, comme ceci ``[|]``." + +#: ../Doc/howto/regex.rst:718 +msgid "``^``" +msgstr "``^``" + +#: ../Doc/howto/regex.rst:706 +msgid "" +"Matches at the beginning of lines. Unless the :const:`MULTILINE` flag has " +"been set, this will only match at the beginning of the string. In :const:" +"`MULTILINE` mode, this also matches immediately after each newline within " +"the string." +msgstr "" +"Correspond à un début de ligne. À moins que l'option :const:`MULTILINE` ne " +"soit activée, cela ne fait correspondre que le début de la chaîne. Dans le " +"mode :const:`MULTILINE`, cela fait aussi correspondre immédiatement après " +"chaque nouvelle ligne à l'intérieur de la chaîne." + +#: ../Doc/howto/regex.rst:710 +msgid "" +"For example, if you wish to match the word ``From`` only at the beginning of " +"a line, the RE to use is ``^From``. ::" +msgstr "" +"Par exemple, si vous voulez trouver le mot ``From`` uniquement quand il est " +"en début de ligne, la RE à utiliser est ``^From``. ::" + +#: ../Doc/howto/regex.rst:718 +msgid "To match a literal ``'^'``, use ``\\^``." +msgstr "Pour trouver un ``'^'`` littéral, utilisez ``\\^``." + +#: ../Doc/howto/regex.rst:732 +msgid "``$``" +msgstr "``$``" + +#: ../Doc/howto/regex.rst:721 +msgid "" +"Matches at the end of a line, which is defined as either the end of the " +"string, or any location followed by a newline character. ::" +msgstr "" +"Correspond à une fin de ligne, ce qui veut dire soit la fin de la chaîne, " +"soit tout emplacement qui est suivi du caractère de nouvelle ligne. ::" + +#: ../Doc/howto/regex.rst:731 +msgid "" +"To match a literal ``'$'``, use ``\\$`` or enclose it inside a character " +"class, as in ``[$]``." +msgstr "" +"Pour trouver un ``'$'`` littéral, utilisez ``\\$`` ou placez-le à " +"l'intérieur d'une classe de caractères, comme ceci ``[$]``." + +#: ../Doc/howto/regex.rst:738 +msgid "``\\A``" +msgstr "``\\A``" + +#: ../Doc/howto/regex.rst:735 +msgid "" +"Matches only at the start of the string. When not in :const:`MULTILINE` " +"mode, ``\\A`` and ``^`` are effectively the same. In :const:`MULTILINE` " +"mode, they're different: ``\\A`` still matches only at the beginning of the " +"string, but ``^`` may match at any location inside the string that follows a " +"newline character." +msgstr "" +"Correspond au début de la chaîne de caractère, uniquement. Si l'option :" +"const:`MULTILINE` n'est pas activée, ``\\A`` et ``^`` sont équivalents. Dans " +"le mode :const:`MULTILINE`, ils sont différents : ``\\A`` ne correspond " +"toujours qu'au début de la chaîne alors que ``^`` correspond aussi aux " +"emplacements situés immédiatement après une nouvelle ligne à l'intérieur de " +"la chaîne." + +#: ../Doc/howto/regex.rst:741 +msgid "``\\Z``" +msgstr "``\\Z``" + +#: ../Doc/howto/regex.rst:741 +msgid "Matches only at the end of the string." +msgstr "Correspond uniquement à la fin d'une chaîne de caractères." + +#: ../Doc/howto/regex.rst:776 +msgid "``\\b``" +msgstr "``\\b``" + +#: ../Doc/howto/regex.rst:744 +msgid "" +"Word boundary. This is a zero-width assertion that matches only at the " +"beginning or end of a word. A word is defined as a sequence of alphanumeric " +"characters, so the end of a word is indicated by whitespace or a non-" +"alphanumeric character." +msgstr "" +"Limite de mot. C'est une assertion de largeur zéro qui correspond uniquement " +"aux positions de début et de fin de mot. Un mot est défini comme une " +"séquence de caractères alphanumériques ; ainsi, la fin d'un mot est indiquée " +"par un \"blanc\" ou un caractère non-alphanumérique." + +#: ../Doc/howto/regex.rst:749 +msgid "" +"The following example matches ``class`` only when it's a complete word; it " +"won't match when it's contained inside another word. ::" +msgstr "" +"L'exemple suivant fait correspondre ``class`` seulement si c'est un mot " +"complet ; il n'y a pas de correspondance quand il est à l'intérieur d'un " +"autre mot. ::" + +#: ../Doc/howto/regex.rst:760 +msgid "" +"There are two subtleties you should remember when using this special " +"sequence. First, this is the worst collision between Python's string " +"literals and regular expression sequences. In Python's string literals, ``" +"\\b`` is the backspace character, ASCII value 8. If you're not using raw " +"strings, then Python will convert the ``\\b`` to a backspace, and your RE " +"won't match as you expect it to. The following example looks the same as our " +"previous RE, but omits the ``'r'`` in front of the RE string. ::" +msgstr "" +"Quand vous utilisez cette séquence spéciale, gardez deux choses à l'esprit. " +"Tout d'abord, c'est la pire collision entre les littéraux des chaînes Python " +"et les séquences d'expressions régulières. Dans les littéraux de chaîne de " +"caractères Python, ``\\b``` est le caractère de retour-arrière (*backspace* " +"en anglais), dont la valeur ASCII est 8. Si vous n'utilisez pas les chaînes " +"de caractères brutes, alors Python convertit le ``\\b`` en retour-arrière, " +"et votre RE ne correspond pas à ce que vous attendez. L'exemple suivant " +"ressemble à notre RE précédente, mais nous avons omis le ```'r'`` devant la " +"chaîne RE. ::" + +#: ../Doc/howto/regex.rst:774 +msgid "" +"Second, inside a character class, where there's no use for this assertion, ``" +"\\b`` represents the backspace character, for compatibility with Python's " +"string literals." +msgstr "" +"Ensuite, dans une classe de caractères, où cette assertion n'a pas lieu " +"d'être, ``\\b`` représente le caractère retour-arrière, afin d'être " +"compatible avec les littéraux de chaînes de caractères." + +#: ../Doc/howto/regex.rst:781 +msgid "``\\B``" +msgstr "``\\B``" + +#: ../Doc/howto/regex.rst:779 +msgid "" +"Another zero-width assertion, this is the opposite of ``\\b``, only matching " +"when the current position is not at a word boundary." +msgstr "" +"Encore une assertion de largeur zéro, qui est l'opposée de ``\\b``, c'est-à-" +"dire qu'elle fait correspondre uniquement les emplacements qui ne sont pas à " +"la limite d'un mot." + +#: ../Doc/howto/regex.rst:784 +msgid "Grouping" +msgstr "Regroupement" + +#: ../Doc/howto/regex.rst:786 +msgid "" +"Frequently you need to obtain more information than just whether the RE " +"matched or not. Regular expressions are often used to dissect strings by " +"writing a RE divided into several subgroups which match different components " +"of interest. For example, an RFC-822 header line is divided into a header " +"name and a value, separated by a ``':'``, like this:" +msgstr "" +"Souvent, vous avez besoin d'obtenir plus d'informations que le simple fait " +"que la RE corresponde ou non. Ainsi, les expressions régulières sont souvent " +"utilisées pour analyser des chaînes de caractères en écrivant une RE qui " +"divise une chaîne en plusieurs sous-groupes, correspondant chacun à une " +"information particulière. Par exemple, une ligne d'en-tête RFC-822 peut se " +"diviser en un nom d'en-tête et une valeur associée, séparés par un ``':'``, " +"comme ceci :" + +#: ../Doc/howto/regex.rst:799 +msgid "" +"This can be handled by writing a regular expression which matches an entire " +"header line, and has one group which matches the header name, and another " +"group which matches the header's value." +msgstr "" +"Vous pouvez alors écrire une expression régulière qui fait correspondre une " +"ligne d'en-tête entière et qui comporte un groupe correspondant au nom de " +"l'en-tête, et un autre groupe correspondant à la valeur de l'en-tête." + +#: ../Doc/howto/regex.rst:803 +msgid "" +"Groups are marked by the ``'('``, ``')'`` metacharacters. ``'('`` and " +"``')'`` have much the same meaning as they do in mathematical expressions; " +"they group together the expressions contained inside them, and you can " +"repeat the contents of a group with a repeating qualifier, such as ``*``, ``" +"+``, ``?``, or ``{m,n}``. For example, ``(ab)*`` will match zero or more " +"repetitions of ``ab``. ::" +msgstr "" +"Les groupes sont délimités par les métacaractères marqueurs ``'('``et " +"``')'``. ``'('`` et ``')'`` ont à peu près le même sens que dans les " +"expressions mathématiques ; ils forment un groupe à partir des expressions " +"qu'ils encadrent ; vous pouvez répéter le contenu d'un groupe à l'aide d'un " +"quantificateur, comme ``*``, ``+``, ``?`` ou ``{m,n}``. Par exemple, " +"``(ab)*`` correspond à zéro, une ou plusieurs fois ``ab``. ::" + +#: ../Doc/howto/regex.rst:814 +msgid "" +"Groups indicated with ``'('``, ``')'`` also capture the starting and ending " +"index of the text that they match; this can be retrieved by passing an " +"argument to :meth:`~re.Match.group`, :meth:`~re.Match.start`, :meth:`~re." +"Match.end`, and :meth:`~re.Match.span`. Groups are numbered starting with " +"0. Group 0 is always present; it's the whole RE, so :ref:`match object " +"` methods all have group 0 as their default argument. Later " +"we'll see how to express groups that don't capture the span of text that " +"they match. ::" +msgstr "" +"Les groupes délimités par ``'('``et ``')'`` capturent également les indices " +"de début et de fin du texte avec lequel ils correspondent ; ces indices " +"peuvent être récupérés en passant un argument à :meth:`~re.Match.group`, :" +"meth:`~re.Match.start`, :meth:`~re.Match.end` ou :meth:`~re.Match.span`. Les " +"groupes sont numérotés à partir de 0, le groupe 0 est toujours présent ; " +"c'est l'ensemble de la RE, donc les méthodes de :ref:`l'objet correspondance " +"` ont le groupe 0 comme argument par défaut. Plus loin, nous " +"voyons comment exprimer les groupes qui ne capturent pas l'étendue du texte " +"avec lequel ils correspondent. ::" + +#: ../Doc/howto/regex.rst:830 +msgid "" +"Subgroups are numbered from left to right, from 1 upward. Groups can be " +"nested; to determine the number, just count the opening parenthesis " +"characters, going from left to right. ::" +msgstr "" +"Les sous-groupes sont numérotés de la gauche vers la droite, à partir de 1. " +"Les groupes peuvent être imbriqués ; pour déterminer le numéro, il vous " +"suffit de compter le nombre de parenthèses ouvrantes de la gauche vers la " +"droite. ::" + +#: ../Doc/howto/regex.rst:843 +msgid "" +":meth:`~re.Match.group` can be passed multiple group numbers at a time, in " +"which case it will return a tuple containing the corresponding values for " +"those groups. ::" +msgstr "" +"Vous pouvez passer plusieurs numéros de groupes à :meth:`~re.Match.group` en " +"même temps, elle vous renvoie alors un *tuple* contenant les valeurs " +"correspondantes pour ces groupes. ::" + +#: ../Doc/howto/regex.rst:849 +msgid "" +"The :meth:`~re.Match.groups` method returns a tuple containing the strings " +"for all the subgroups, from 1 up to however many there are. ::" +msgstr "" +"La méthode :meth:`~re.Match.groups` renvoie un *tuple* contenant les " +"chaînes pour tous les sous-groupes, en commençant par le numéro 1 jusqu'au " +"dernier. ::" + +#: ../Doc/howto/regex.rst:855 +msgid "" +"Backreferences in a pattern allow you to specify that the contents of an " +"earlier capturing group must also be found at the current location in the " +"string. For example, ``\\1`` will succeed if the exact contents of group 1 " +"can be found at the current position, and fails otherwise. Remember that " +"Python's string literals also use a backslash followed by numbers to allow " +"including arbitrary characters in a string, so be sure to use a raw string " +"when incorporating backreferences in a RE." +msgstr "" +"Les renvois dans un motif vous permettent de spécifier que le contenu d'un " +"groupe précédent doit aussi être trouvé à l'emplacement actuel dans la " +"chaîne. Par exemple, ``\\1`` réussit si le contenu du premier groupe se " +"trouve aussi à la position courante, sinon il échoue. Rappelez-vous que les " +"littéraux de chaînes Python utilisent aussi la barre oblique inverse suivie " +"d'un nombre pour insérer des caractères arbitraires dans une chaîne ; soyez " +"sûr d'utiliser une chaîne brute quand vous faites des renvois dans une RE." + +#: ../Doc/howto/regex.rst:863 +msgid "For example, the following RE detects doubled words in a string. ::" +msgstr "" +"Par exemple, la RE suivante détecte les mots doublés dans une chaîne. ::" + +#: ../Doc/howto/regex.rst:869 +msgid "" +"Backreferences like this aren't often useful for just searching through a " +"string --- there are few text formats which repeat data in this way --- but " +"you'll soon find out that they're *very* useful when performing string " +"substitutions." +msgstr "" +"Les renvois tels que celui-ci ne sont pas très utiles pour effectuer une " +"simple recherche dans une chaîne --- il n'y a que peu de formats de textes " +"qui répètent des données ainsi --- mais vous verrez bientôt qu'ils sont " +"*très* utiles pour effectuer des substitutions dans les chaînes." + +#: ../Doc/howto/regex.rst:875 +msgid "Non-capturing and Named Groups" +msgstr "Groupes non de capture et groupes nommés" + +#: ../Doc/howto/regex.rst:877 +msgid "" +"Elaborate REs may use many groups, both to capture substrings of interest, " +"and to group and structure the RE itself. In complex REs, it becomes " +"difficult to keep track of the group numbers. There are two features which " +"help with this problem. Both of them use a common syntax for regular " +"expression extensions, so we'll look at that first." +msgstr "" +"Les RE élaborées peuvent utiliser de nombreux groupes, à la fois pour " +"capturer des sous-chaînes intéressantes ainsi que pour regrouper et " +"structurer la RE elle-même. Dans les RE complexes, il devient difficile de " +"garder la trace des numéros de groupes. Deux caractéristiques aident à " +"résoudre ce problème, toutes deux utilisant la même syntaxe d'extension des " +"expressions régulières. Nous allons donc commencer en examinant cette " +"syntaxe." + +#: ../Doc/howto/regex.rst:883 +msgid "" +"Perl 5 is well known for its powerful additions to standard regular " +"expressions. For these new features the Perl developers couldn't choose new " +"single-keystroke metacharacters or new special sequences beginning with ``" +"\\`` without making Perl's regular expressions confusingly different from " +"standard REs. If they chose ``&`` as a new metacharacter, for example, old " +"expressions would be assuming that ``&`` was a regular character and " +"wouldn't have escaped it by writing ``\\&`` or ``[&]``." +msgstr "" +"Les puissantes extensions des expressions régulières de Perl 5 sont " +"réputées. Pour les mettre en œuvre, les développeurs Perl ne pouvaient pas " +"utiliser de nouveaux métacaractères simples ou de nouvelles séquences " +"commençant par ``\\`` sans que les RE Perl ne deviennent trop différentes " +"des RE standards au point de créer de la confusion. S'ils avaient choisi " +"``&`` comme nouveau métacaractère, par exemple, les expressions déjà écrites " +"auraient considéré que ``&`` était un caractère standard et ne l'aurait pas " +"échappé en écrivant ``\\&`` ou ``[&]``." + +#: ../Doc/howto/regex.rst:890 +msgid "" +"The solution chosen by the Perl developers was to use ``(?...)`` as the " +"extension syntax. ``?`` immediately after a parenthesis was a syntax error " +"because the ``?`` would have nothing to repeat, so this didn't introduce any " +"compatibility problems. The characters immediately after the ``?`` " +"indicate what extension is being used, so ``(?=foo)`` is one thing (a " +"positive lookahead assertion) and ``(?:foo)`` is something else (a non-" +"capturing group containing the subexpression ``foo``)." +msgstr "" +"La solution adoptée par les développeurs Perl a été d'utiliser ``(?...)`` " +"comme syntaxe d'extension. Placer ``?`` immédiatement après une parenthèse " +"était une erreur de syntaxe, parce que le ``?`` n'a alors rien à répéter. " +"Ainsi, cela n'a pas introduit de problème de compatibilité. Les caractères " +"qui suivent immédiatement le ``?`` indiquent quelle extension est utilisée, " +"donc ``(?=truc)`` est une chose (une assertion positive anticipée) et ``(?:" +"truc)`` est une autre chose (la sous-expression ``truc`` que l'on groupe)." + +#: ../Doc/howto/regex.rst:898 +msgid "" +"Python supports several of Perl's extensions and adds an extension syntax to " +"Perl's extension syntax. If the first character after the question mark is " +"a ``P``, you know that it's an extension that's specific to Python." +msgstr "" +"Python gère plusieurs des extensions Perl et rajoute une extension à la " +"syntaxe des extensions Perl. Si le premier caractère après le point " +"d'interrogation est ``P``, cela signifie que c'est une extension spécifique " +"à Python." + +#: ../Doc/howto/regex.rst:903 +msgid "" +"Now that we've looked at the general extension syntax, we can return to the " +"features that simplify working with groups in complex REs." +msgstr "" +"Après avoir vu la syntaxe générale d'extension des RE, nous pouvons revenir " +"aux fonctionnalités qui simplifient le travail avec les groupes dans des RE " +"complexes." + +#: ../Doc/howto/regex.rst:906 +msgid "" +"Sometimes you'll want to use a group to denote a part of a regular " +"expression, but aren't interested in retrieving the group's contents. You " +"can make this fact explicit by using a non-capturing group: ``(?:...)``, " +"where you can replace the ``...`` with any other regular expression. ::" +msgstr "" +"Parfois, vous souhaitez utiliser un groupe pour marquer une partie de " +"l'expression régulière mais le contenu de ce groupe ne vous intéresse pas " +"vraiment. Vous pouvez l'indiquer explicitement en utilisant la syntaxe de " +"groupe, mais sans indiquer que vous voulez en capturer le contenu : " +"``(?:...)``, où vous remplacez les ``...`` par n'importe quelle expression " +"régulière. ::" + +#: ../Doc/howto/regex.rst:918 +msgid "" +"Except for the fact that you can't retrieve the contents of what the group " +"matched, a non-capturing group behaves exactly the same as a capturing " +"group; you can put anything inside it, repeat it with a repetition " +"metacharacter such as ``*``, and nest it within other groups (capturing or " +"non-capturing). ``(?:...)`` is particularly useful when modifying an " +"existing pattern, since you can add new groups without changing how all the " +"other groups are numbered. It should be mentioned that there's no " +"performance difference in searching between capturing and non-capturing " +"groups; neither form is any faster than the other." +msgstr "" +"À part le fait que vous n'avez pas accès au contenu du groupe, un groupe se " +"comporte exactement de la même manière qu'un groupe de capture ; vous pouvez " +"placer n'importe quoi dedans, spécifier une répétition avec un métacaractère " +"tel que ``*`` et l'imbriquer dans un autre groupe (de capture ou pas). " +"``(?:...)`` est particulièrement utile quand vous modifiez des motifs " +"existants, puisque vous pouvez ajouter de nouveaux groupes sans changer la " +"façon dont les autres groupes sont numérotés. Nous devons mentionner ici " +"qu'il n'y a aucune différence de performance dans la recherche de groupes, " +"de capture ou non ; les deux formes travaillent à la même vitesse." + +#: ../Doc/howto/regex.rst:927 +msgid "" +"A more significant feature is named groups: instead of referring to them by " +"numbers, groups can be referenced by a name." +msgstr "" +"Une fonctionnalité plus importante est le nommage des groupes : au lieu d'y " +"faire référence par des nombres, vous pouvez référencer des groupes par leur " +"nom." + +#: ../Doc/howto/regex.rst:930 +msgid "" +"The syntax for a named group is one of the Python-specific extensions: ``(?" +"P...)``. *name* is, obviously, the name of the group. Named groups " +"behave exactly like capturing groups, and additionally associate a name with " +"a group. The :ref:`match object ` methods that deal with " +"capturing groups all accept either integers that refer to the group by " +"number or strings that contain the desired group's name. Named groups are " +"still given numbers, so you can retrieve information about a group in two " +"ways::" +msgstr "" +"La syntaxe pour nommer les groupes est l'une des extensions spécifiques à " +"Python : ``(?P....)```. *nom* est, vous vous en doutez, le nom du " +"groupe. Les groupes nommés se comportent exactement comme des groupes de " +"capture, sauf qu'ils associent en plus un nom à un groupe. Les méthodes des :" +"ref:`objets correspondances ` qui gèrent les groupes de " +"capture acceptent soit des entiers qui font référence aux numéros des " +"groupes, soit des chaînes de caractères qui désignent les noms des groupes " +"désirés. Les groupes nommés se voient toujours attribuer un numéro, vous " +"pouvez ainsi récupérer les informations d'un groupe de deux façons ::" + +#: ../Doc/howto/regex.rst:945 +msgid "" +"Named groups are handy because they let you use easily-remembered names, " +"instead of having to remember numbers. Here's an example RE from the :mod:" +"`imaplib` module::" +msgstr "" +"Les groupes nommés sont pratiques car il est plus facile de se rappeler un " +"nom qu'un numéro. Voici un exemple de RE tirée du module :mod:`imaplib` ::" + +#: ../Doc/howto/regex.rst:956 +msgid "" +"It's obviously much easier to retrieve ``m.group('zonem')``, instead of " +"having to remember to retrieve group 9." +msgstr "" +"Il est évidemment plus facile de récupérer ``m.group('zonem')`` que de se " +"rappeler de récupérer le groupe 9." + +#: ../Doc/howto/regex.rst:959 +msgid "" +"The syntax for backreferences in an expression such as ``(...)\\1`` refers " +"to the number of the group. There's naturally a variant that uses the group " +"name instead of the number. This is another Python extension: ``(?P=name)`` " +"indicates that the contents of the group called *name* should again be " +"matched at the current point. The regular expression for finding doubled " +"words, ``\\b(\\w+)\\s+\\1\\b`` can also be written as ``\\b(?P\\w+)\\s" +"+(?P=word)\\b``::" +msgstr "" +"La syntaxe des renvois dans une expression telle que ``(....)\\1`` fait " +"référence au numéro du groupe. Il y a naturellement une variante qui utilise " +"le nom du groupe au lieu du numéro. C'est une autre extension Python : ``(?" +"P=nom)`` indique que le contenu du groupe appelé *nom* doit correspondre à " +"nouveau avec l'emplacement courant. L'expression régulière pour trouver des " +"mots doublés, ``\\b(\\w+)\\s+\\1\\b`` peut ainsi être ré-écrite en ``\\b(?" +"P\\w+)\\s+(?P=mot)\\b`` ::" + +#: ../Doc/howto/regex.rst:972 +msgid "Lookahead Assertions" +msgstr "Assertions prédictives" + +#: ../Doc/howto/regex.rst:974 +msgid "" +"Another zero-width assertion is the lookahead assertion. Lookahead " +"assertions are available in both positive and negative form, and look like " +"this:" +msgstr "" +"Une autre assertion de largeur zéro est l'assertion prédictive. Une " +"assertion prédictive peut s'exprimer sous deux formes, la positive et la " +"négative, comme ceci :" + +#: ../Doc/howto/regex.rst:982 +msgid "``(?=...)``" +msgstr "``(?=...)``" + +#: ../Doc/howto/regex.rst:978 +msgid "" +"Positive lookahead assertion. This succeeds if the contained regular " +"expression, represented here by ``...``, successfully matches at the current " +"location, and fails otherwise. But, once the contained expression has been " +"tried, the matching engine doesn't advance at all; the rest of the pattern " +"is tried right where the assertion started." +msgstr "" +"Assertion prédictive positive. Elle réussit si l'expression régulière " +"contenue, représentée ici par ``...``, correspond effectivement à " +"l'emplacement courant ; dans le cas contraire, elle échoue. Mais, une fois " +"que l'expression contenue a été essayée, le moteur de correspondance " +"n'avance pas ; le reste du motif est testé à l'endroit même où l'assertion a " +"commencé." + +#: ../Doc/howto/regex.rst:987 +msgid "``(?!...)``" +msgstr "``(?!...)``" + +#: ../Doc/howto/regex.rst:985 +msgid "" +"Negative lookahead assertion. This is the opposite of the positive " +"assertion; it succeeds if the contained expression *doesn't* match at the " +"current position in the string." +msgstr "" +"Assertion prédictive négative. C'est l'opposée de l'assertion positive ; " +"elle réussit si l'expression régulière contenue *ne* correspond *pas* à " +"l'emplacement courant dans la chaine." + +#: ../Doc/howto/regex.rst:989 +msgid "" +"To make this concrete, let's look at a case where a lookahead is useful. " +"Consider a simple pattern to match a filename and split it apart into a base " +"name and an extension, separated by a ``.``. For example, in ``news.rc``, " +"``news`` is the base name, and ``rc`` is the filename's extension." +msgstr "" +"Pour rendre ceci plus concret, regardons le cas où une prédiction est utile. " +"Considérons un motif simple qui doit faire correspondre un nom de fichier et " +"le diviser en un nom de base et une extension, séparés par un ``.``. Par " +"exemple, dans ``news.rc``, ``news`` est le nom de base et ``rc`` est " +"l'extension du nom de fichier." + +#: ../Doc/howto/regex.rst:994 +msgid "The pattern to match this is quite simple:" +msgstr "Le motif de correspondance est plutôt simple :" + +#: ../Doc/howto/regex.rst:996 +msgid "``.*[.].*$``" +msgstr "``.*[.].*$``" + +#: ../Doc/howto/regex.rst:998 +msgid "" +"Notice that the ``.`` needs to be treated specially because it's a " +"metacharacter, so it's inside a character class to only match that specific " +"character. Also notice the trailing ``$``; this is added to ensure that all " +"the rest of the string must be included in the extension. This regular " +"expression matches ``foo.bar`` and ``autoexec.bat`` and ``sendmail.cf`` and " +"``printers.conf``." +msgstr "" +"Notez que le ``.`` doit être traité spécialement car c'est un métacaractère, " +"nous le plaçons donc à l'intérieur d'une classe de caractères pour ne faire " +"correspondre que ce caractère spécifique. Notez également le ``$`` en fin ; " +"nous l'avons ajouté pour nous assurer que tout le reste de la chaîne est " +"bien inclus dans l'extension. Cette expression régulière fait correspondre " +"``truc.bar``, ``autoexec.bat``, ``sendmail.cf`` et ``printers.conf``." + +#: ../Doc/howto/regex.rst:1005 +msgid "" +"Now, consider complicating the problem a bit; what if you want to match " +"filenames where the extension is not ``bat``? Some incorrect attempts:" +msgstr "" +"Maintenant, compliquons un peu le problème ; si nous voulons faire " +"correspondre les noms de fichiers dont l'extension n'est pas ``bat`` ? voici " +"quelques tentatives incorrectes :" + +#: ../Doc/howto/regex.rst:1008 +msgid "" +"``.*[.][^b].*$`` The first attempt above tries to exclude ``bat`` by " +"requiring that the first character of the extension is not a ``b``. This is " +"wrong, because the pattern also doesn't match ``foo.bar``." +msgstr "" +"``.*[.][^b].*$`` Le premier essai ci-dessus tente d'exclure ``bat`` en " +"spécifiant que le premier caractère de l'extension ne doit pas être ``b``. " +"Cela ne fonctionne pas, car le motif n'accepte pas ``truc.bar``." + +#: ../Doc/howto/regex.rst:1012 +msgid "``.*[.]([^b]..|.[^a].|..[^t])$``" +msgstr "``.*[.]([^b]..|.[^a].|..[^t])$``" + +#: ../Doc/howto/regex.rst:1014 +msgid "" +"The expression gets messier when you try to patch up the first solution by " +"requiring one of the following cases to match: the first character of the " +"extension isn't ``b``; the second character isn't ``a``; or the third " +"character isn't ``t``. This accepts ``foo.bar`` and rejects ``autoexec." +"bat``, but it requires a three-letter extension and won't accept a filename " +"with a two-letter extension such as ``sendmail.cf``. We'll complicate the " +"pattern again in an effort to fix it." +msgstr "" +"L'expression devient plus confuse si nous essayons de réparer la première " +"solution en spécifiant l'un des cas suivants : le premier caractère de " +"l'extension n'est pas ``b`` ; le deuxième caractère n'est pas ``a`` ; ou le " +"troisième caractère n'est pas ``t```. Ce motif accepte ``truc.bar`` et " +"rejette ``autoexec.bat``, mais elle nécessite une extension de trois lettres " +"et n'accepte pas un nom de fichier avec une extension de deux lettres comme " +"``sendmail.cf``. Compliquons encore une fois le motif pour essayer de le " +"réparer." + +#: ../Doc/howto/regex.rst:1022 +msgid "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" +msgstr "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" + +#: ../Doc/howto/regex.rst:1024 +msgid "" +"In the third attempt, the second and third letters are all made optional in " +"order to allow matching extensions shorter than three characters, such as " +"``sendmail.cf``." +msgstr "" +"Pour cette troisième tentative, les deuxième et troisième lettres sont " +"devenues facultatives afin de permettre la correspondance avec des " +"extensions plus courtes que trois caractères, comme ``sendmail.cf``." + +#: ../Doc/howto/regex.rst:1028 +msgid "" +"The pattern's getting really complicated now, which makes it hard to read " +"and understand. Worse, if the problem changes and you want to exclude both " +"``bat`` and ``exe`` as extensions, the pattern would get even more " +"complicated and confusing." +msgstr "" +"Le motif devient vraiment compliqué maintenant, ce qui le rend difficile à " +"lire et à comprendre. Pire, si le problème change et que vous voulez exclure " +"à la fois ``bat`` et ``exe`` en tant qu'extensions, le modèle deviendra " +"encore plus compliqué et confus." + +#: ../Doc/howto/regex.rst:1033 +msgid "A negative lookahead cuts through all this confusion:" +msgstr "Une assertion prédictive négative supprime toute cette confusion :" + +#: ../Doc/howto/regex.rst:1035 +msgid "" +"``.*[.](?!bat$)[^.]*$`` The negative lookahead means: if the expression " +"``bat`` doesn't match at this point, try the rest of the pattern; if ``bat" +"$`` does match, the whole pattern will fail. The trailing ``$`` is required " +"to ensure that something like ``sample.batch``, where the extension only " +"starts with ``bat``, will be allowed. The ``[^.]*`` makes sure that the " +"pattern works when there are multiple dots in the filename." +msgstr "" +"``.*[.](?!bat$)[^.]*$`` Cette assertion prédictive négative signifie : si " +"l'expression ``bat`` ne correspond pas à cet emplacement, essaie le reste du " +"motif ; si ``bat$`` correspond, tout le motif échoue. Le ``$`` est " +"nécessaire pour s'assurer que quelque chose comme ``sample.batch``, où c'est " +"seulement le début de l'extension qui vaut ``bat``, est autorisé. Le " +"``[^...]*`` s'assure que le motif fonctionne lorsqu'il y a plusieurs points " +"dans le nom de fichier." + +#: ../Doc/howto/regex.rst:1042 +msgid "" +"Excluding another filename extension is now easy; simply add it as an " +"alternative inside the assertion. The following pattern excludes filenames " +"that end in either ``bat`` or ``exe``:" +msgstr "" +"Exclure une autre extension de nom de fichier est maintenant facile ; il " +"suffit de l'ajouter comme alternative à l'intérieur de l'assertion. Le motif " +"suivant exclut les noms de fichiers qui se terminent par ``bat`` ou ``exe`` :" + +#: ../Doc/howto/regex.rst:1046 +msgid "``.*[.](?!bat$|exe$)[^.]*$``" +msgstr "``.*[.](?!bat$|exe$)[^.]*$``" + +#: ../Doc/howto/regex.rst:1050 +msgid "Modifying Strings" +msgstr "Modification de chaînes" + +#: ../Doc/howto/regex.rst:1052 +msgid "" +"Up to this point, we've simply performed searches against a static string. " +"Regular expressions are also commonly used to modify strings in various " +"ways, using the following pattern methods:" +msgstr "" +"Jusqu'à présent, nous avons simplement effectué des recherches dans une " +"chaîne statique. Les expressions régulières sont aussi couramment utilisées " +"pour modifier les chaînes de caractères de diverses manières, en utilisant " +"les méthodes suivantes des motifs :" + +#: ../Doc/howto/regex.rst:1059 +msgid "``split()``" +msgstr "``split()``" + +#: ../Doc/howto/regex.rst:1059 +msgid "Split the string into a list, splitting it wherever the RE matches" +msgstr "" +"Découpe la chaîne de caractère en liste, la découpant partout où la RE " +"correspond" + +#: ../Doc/howto/regex.rst:1062 +msgid "``sub()``" +msgstr "``sub()``" + +#: ../Doc/howto/regex.rst:1062 +msgid "" +"Find all substrings where the RE matches, and replace them with a different " +"string" +msgstr "" +"Recherche toutes les sous-chaînes de caractères où la RE correspond et les " +"substitue par une chaîne de caractères différente" + +#: ../Doc/howto/regex.rst:1065 +msgid "``subn()``" +msgstr "``subn()``" + +#: ../Doc/howto/regex.rst:1065 +msgid "" +"Does the same thing as :meth:`!sub`, but returns the new string and the " +"number of replacements" +msgstr "" +"Fait la même chose que :meth:`!sub`, mais renvoie la nouvelle chaîne et le " +"nombre de remplacements effectués" + +#: ../Doc/howto/regex.rst:1072 +msgid "Splitting Strings" +msgstr "Découpage de chaînes" + +#: ../Doc/howto/regex.rst:1074 +msgid "" +"The :meth:`~re.Pattern.split` method of a pattern splits a string apart " +"wherever the RE matches, returning a list of the pieces. It's similar to " +"the :meth:`~str.split` method of strings but provides much more generality " +"in the delimiters that you can split by; string :meth:`!split` only supports " +"splitting by whitespace or by a fixed string. As you'd expect, there's a " +"module-level :func:`re.split` function, too." +msgstr "" +"La méthode :meth:`~re.Pattern.Pattern.split` d'un motif divise une chaîne de " +"caractères à chaque fois que la RE correspond, retournant la liste des " +"morceaux. C'est similaire à la méthode :meth:`~str.split` mais est beaucoup " +"plus générale par les délimiteurs que vous pouvez spécifier ; la méthode :" +"meth:`!split` du type *string* ne gère que les découpages en suivant les " +"\"blancs\" ou suivant une chaîne définie. Comme vous pouvez vous y attendre, " +"il y a aussi une fonction :func:`re.split` de niveau module." + +#: ../Doc/howto/regex.rst:1085 +msgid "" +"Split *string* by the matches of the regular expression. If capturing " +"parentheses are used in the RE, then their contents will also be returned as " +"part of the resulting list. If *maxsplit* is nonzero, at most *maxsplit* " +"splits are performed." +msgstr "" +"Découpe *string* en suivant les correspondances de l'expression régulière. " +"Si des parenthèses de capture sont utilisées dans la RE, leur contenu est " +"également renvoyé dans la liste résultante. Si *maxsplit* n'est pas nul, au " +"plus *maxsplit* découpages sont effectués." + +#: ../Doc/howto/regex.rst:1090 +msgid "" +"You can limit the number of splits made, by passing a value for *maxsplit*. " +"When *maxsplit* is nonzero, at most *maxsplit* splits will be made, and the " +"remainder of the string is returned as the final element of the list. In " +"the following example, the delimiter is any sequence of non-alphanumeric " +"characters. ::" +msgstr "" +"Vous pouvez limiter le nombre de découpages effectués en passant une valeur " +"pour *maxsplit*. Quand *maxsplit* n'est pas nul, au plus *maxsplit* " +"découpages sont effectués et le reste de la chaîne est renvoyé comme dernier " +"élément de la liste. Dans l'exemple suivant, le délimiteur est toute " +"séquence de caractères non alphanumériques. ::" + +#: ../Doc/howto/regex.rst:1102 +msgid "" +"Sometimes you're not only interested in what the text between delimiters is, " +"but also need to know what the delimiter was. If capturing parentheses are " +"used in the RE, then their values are also returned as part of the list. " +"Compare the following calls::" +msgstr "" +"Parfois, vous voulez récupérer le texte entre les délimiteurs mais aussi " +"quel était le délimiteur. Si des parenthèses de capture sont utilisées dans " +"la RE, leurs valeurs sont également renvoyées dans la liste. Comparons les " +"appels suivants ::" + +#: ../Doc/howto/regex.rst:1114 +msgid "" +"The module-level function :func:`re.split` adds the RE to be used as the " +"first argument, but is otherwise the same. ::" +msgstr "" +"La fonction de niveau module :func:`re.split` ajoute la RE à utiliser comme " +"premier argument, mais est par ailleurs identique. ::" + +#: ../Doc/howto/regex.rst:1126 +msgid "Search and Replace" +msgstr "Recherche et substitution" + +#: ../Doc/howto/regex.rst:1128 +msgid "" +"Another common task is to find all the matches for a pattern, and replace " +"them with a different string. The :meth:`~re.Pattern.sub` method takes a " +"replacement value, which can be either a string or a function, and the " +"string to be processed." +msgstr "" +"Une autre tâche classique est de trouver toutes les correspondances d'un " +"motif et de les remplacer par une autre chaîne. La méthode :meth:`~re." +"Pattern.sub` prend une valeur de substitution, qui peut être une chaîne de " +"caractères ou une fonction, et la chaîne à traiter." + +#: ../Doc/howto/regex.rst:1135 +msgid "" +"Returns the string obtained by replacing the leftmost non-overlapping " +"occurrences of the RE in *string* by the replacement *replacement*. If the " +"pattern isn't found, *string* is returned unchanged." +msgstr "" +"Renvoie la chaîne obtenue en remplaçant les occurrences sans chevauchement " +"les plus à gauche de la RE dans *string* par la substitution *replacement*. " +"Si le motif n'est pas trouvé, *string* est renvoyée inchangée." + +#: ../Doc/howto/regex.rst:1139 +msgid "" +"The optional argument *count* is the maximum number of pattern occurrences " +"to be replaced; *count* must be a non-negative integer. The default value " +"of 0 means to replace all occurrences." +msgstr "" +"L'argument optionnel *count* est le nombre maximum d'occurrences du motif à " +"remplacer ; *count* doit être un entier positif ou nul. La valeur par défaut " +"de 0 signifie qu'il faut remplacer toutes les occurrences." + +#: ../Doc/howto/regex.rst:1143 +msgid "" +"Here's a simple example of using the :meth:`~re.Pattern.sub` method. It " +"replaces colour names with the word ``colour``::" +msgstr "" +"Voici un exemple simple utilisant la méthode :meth:`~re.Pattern.sub`. Nous " +"remplaçons les noms des couleurs par le mot ``colour`` ::" + +#: ../Doc/howto/regex.rst:1152 +msgid "" +"The :meth:`~re.Pattern.subn` method does the same work, but returns a 2-" +"tuple containing the new string value and the number of replacements that " +"were performed::" +msgstr "" +"La méthode :meth:`~re.Pattern.subn.subn` fait la même chose mais renvoie un " +"couple contenant la nouvelle valeur de la chaîne de caractères et le nombre " +"de remplacements effectués ::" + +#: ../Doc/howto/regex.rst:1161 +msgid "" +"Empty matches are replaced only when they're not adjacent to a previous " +"empty match. ::" +msgstr "" +"Les correspondances vides ne sont remplacées que lorsqu'elles ne sont pas " +"adjacentes à une correspondance vide précédente. ::" + +#: ../Doc/howto/regex.rst:1168 +msgid "" +"If *replacement* is a string, any backslash escapes in it are processed. " +"That is, ``\\n`` is converted to a single newline character, ``\\r`` is " +"converted to a carriage return, and so forth. Unknown escapes such as ``" +"\\&`` are left alone. Backreferences, such as ``\\6``, are replaced with the " +"substring matched by the corresponding group in the RE. This lets you " +"incorporate portions of the original text in the resulting replacement " +"string." +msgstr "" +"Si *replacement* est une chaîne de caractères, toute barre oblique inverse " +"d'échappement est traitée. C'est-à-dire que ```\\n`` est converti en " +"caractère de nouvelle ligne, ``\\r`` est converti en retour chariot, et " +"ainsi de suite. Les échappements inconnus comme ``\\&`` sont laissés tels " +"quels. Les renvois, tels que ``\\6``, sont remplacés par la sous-chaîne " +"correspondante au groupe dans le RE. Ceci vous permet d'incorporer des " +"parties du texte original dans la chaîne de remplacement résultante." + +#: ../Doc/howto/regex.rst:1175 +msgid "" +"This example matches the word ``section`` followed by a string enclosed in " +"``{``, ``}``, and changes ``section`` to ``subsection``::" +msgstr "" +"Cet exemple fait correspondre le mot ``section`` suivi par une chaîne " +"encadrée par ``{`` et ``}``, et modifie ``section`` en ``subsection`` ::" + +#: ../Doc/howto/regex.rst:1182 +msgid "" +"There's also a syntax for referring to named groups as defined by the ``(?" +"P...)`` syntax. ``\\g`` will use the substring matched by the " +"group named ``name``, and ``\\g`` uses the corresponding group " +"number. ``\\g<2>`` is therefore equivalent to ``\\2``, but isn't ambiguous " +"in a replacement string such as ``\\g<2>0``. (``\\20`` would be interpreted " +"as a reference to group 20, not a reference to group 2 followed by the " +"literal character ``'0'``.) The following substitutions are all equivalent, " +"but use all three variations of the replacement string. ::" +msgstr "" +"Il existe aussi une syntaxe pour faire référence aux groupes nommés définis " +"par la syntaxe ``(?P....)``. ``\\g`` utilise la sous-chaîne " +"correspondante au groupe nommé ``nom`` et ``\\g`` utilise le numéro " +"de groupe correspondant. ``\\g<2>`` est donc l'équivalent de ``\\2``, mais " +"n'est pas ambigu dans une chaîne de substitution telle que ``\\g<2>0`` (``" +"\\20`` serait interprété comme une référence au groupe 20 et non comme une " +"référence au groupe 2 suivie du caractère littéral ``'0'``). Les " +"substitutions suivantes sont toutes équivalentes mais utilisent les trois " +"variantes de la chaîne de remplacement. ::" + +#: ../Doc/howto/regex.rst:1199 +msgid "" +"*replacement* can also be a function, which gives you even more control. If " +"*replacement* is a function, the function is called for every non-" +"overlapping occurrence of *pattern*. On each call, the function is passed " +"a :ref:`match object ` argument for the match and can use " +"this information to compute the desired replacement string and return it." +msgstr "" +"*replacement* peut aussi être une fonction, ce qui vous donne encore plus de " +"contrôle. Si *replacement* est une fonction, la fonction est appelée pour " +"chaque occurrence non chevauchante de *pattern*. À chaque appel, un " +"argument :ref:`objet correspondance ` est passé à la " +"fonction, qui peut utiliser cette information pour calculer la chaîne de " +"remplacement désirée et la renvoyer." + +#: ../Doc/howto/regex.rst:1205 +msgid "" +"In the following example, the replacement function translates decimals into " +"hexadecimal::" +msgstr "" +"Dans l'exemple suivant, la fonction de substitution convertit un nombre " +"décimal en hexadécimal ::" + +#: ../Doc/howto/regex.rst:1217 +msgid "" +"When using the module-level :func:`re.sub` function, the pattern is passed " +"as the first argument. The pattern may be provided as an object or as a " +"string; if you need to specify regular expression flags, you must either use " +"a pattern object as the first parameter, or use embedded modifiers in the " +"pattern string, e.g. ``sub(\"(?i)b+\", \"x\", \"bbbb BBBB\")`` returns ``'x " +"x'``." +msgstr "" +"Quand vous utilisez la fonction de niveau module :func:`re.sub`, le motif " +"est passé comme premier argument. Vous pouvez fournir le motif sous forme " +"d'objet ou de chaîne de caractères ; si vous avez besoin de spécifier des " +"options pour l'expression régulière, vous devez soit utiliser un objet motif " +"comme premier paramètre, soit utiliser des modificateurs intégrés dans la " +"chaîne de caractères, par exemple ``sub(\"(?i)b+\", \"x\", \"bbbb BBBBB" +"\")```renvoie ``'x x'``." + +#: ../Doc/howto/regex.rst:1225 +msgid "Common Problems" +msgstr "Problèmes classiques" + +#: ../Doc/howto/regex.rst:1227 +msgid "" +"Regular expressions are a powerful tool for some applications, but in some " +"ways their behaviour isn't intuitive and at times they don't behave the way " +"you may expect them to. This section will point out some of the most common " +"pitfalls." +msgstr "" +"Les expressions régulières constituent un outil puissant pour certaines " +"applications mais, à certains égards, leur comportement n'est pas intuitif " +"et, parfois, elles ne se comportent pas comme vous pouvez vous y attendre. " +"Cette section met en évidence certains des pièges les plus courants." + +#: ../Doc/howto/regex.rst:1233 +msgid "Use String Methods" +msgstr "Utilisez les méthodes du type *string*" + +#: ../Doc/howto/regex.rst:1235 +msgid "" +"Sometimes using the :mod:`re` module is a mistake. If you're matching a " +"fixed string, or a single character class, and you're not using any :mod:" +"`re` features such as the :const:`~re.IGNORECASE` flag, then the full power " +"of regular expressions may not be required. Strings have several methods for " +"performing operations with fixed strings and they're usually much faster, " +"because the implementation is a single small C loop that's been optimized " +"for the purpose, instead of the large, more generalized regular expression " +"engine." +msgstr "" +"Parfois, il ne faut pas utiliser le module :mod:`re`. Si vous faites " +"correspondre une chaîne fixe, ou une classe à un seul caractère, et que vous " +"n'utilisez pas les fonctionnalités de :mod:`re` telles que l'option :const:" +"`~re.IGNORECASE`, alors la puissance des expressions régulières n'est pas " +"nécessaire. Les chaînes de caractères ont plusieurs méthodes pour opérer sur " +"des chaînes fixes et elles sont généralement beaucoup plus rapides, parce " +"que l'implémentation est une seule petite boucle C qui a été optimisée, au " +"lieu du gros moteur d'expressions régulières plus généraliste." + +#: ../Doc/howto/regex.rst:1243 +msgid "" +"One example might be replacing a single fixed string with another one; for " +"example, you might replace ``word`` with ``deed``. :func:`re.sub` seems " +"like the function to use for this, but consider the :meth:`~str.replace` " +"method. Note that :meth:`!replace` will also replace ``word`` inside words, " +"turning ``swordfish`` into ``sdeedfish``, but the naive RE ``word`` would " +"have done that, too. (To avoid performing the substitution on parts of " +"words, the pattern would have to be ``\\bword\\b``, in order to require that " +"``word`` have a word boundary on either side. This takes the job beyond :" +"meth:`!replace`'s abilities.)" +msgstr "" +"Nous pouvons prendre l'exemple du remplacement d'une seule chaîne fixe par " +"une autre ; vous souhaitez remplacer ``mot`` par ``acte``. :func:`re.sub` " +"semble être faite pour cela, mais regardons la méthode :meth:`~str.replace`. " +"Notons que :meth:`!replace` remplace aussi ``mot`` à l'intérieur des mots, " +"transformant ``moteur`` en ``acteeur``, mais la RE naïve ``mot`` aurait " +"aussi fait cela (pour éviter d'effectuer la substitution sur des parties de " +"mots, le motif doit être ``\\bmot\\b``, qui exige que ``mot`` soit en limite " +"de mot d'un côté et de l'autre ; c'est au-delà des capacités de la méthode :" +"meth:`!replace`)." + +#: ../Doc/howto/regex.rst:1252 +msgid "" +"Another common task is deleting every occurrence of a single character from " +"a string or replacing it with another single character. You might do this " +"with something like ``re.sub('\\n', ' ', S)``, but :meth:`~str.translate` is " +"capable of doing both tasks and will be faster than any regular expression " +"operation can be." +msgstr "" +"Une autre tâche classique est de supprimer chaque occurrence d'un seul " +"caractère d'une chaîne de caractères ou de le remplacer par un autre " +"caractère unique. Vous pouvez le faire avec quelque chose comme ``re." +"sub('\\n', ' ', S)``, mais :meth:`~str.translate` en est capable et est plus " +"rapide que n'importe quelle opération d'expression régulière." + +#: ../Doc/howto/regex.rst:1258 +msgid "" +"In short, before turning to the :mod:`re` module, consider whether your " +"problem can be solved with a faster and simpler string method." +msgstr "" +"Bref, avant de passer au module :mod:`re`, évaluez d'abord si votre problème " +"peut être résolu avec une méthode de chaîne plus rapide et plus simple." + +#: ../Doc/howto/regex.rst:1263 +msgid "match() versus search()" +msgstr "*match()* contre *search()*" + +#: ../Doc/howto/regex.rst:1265 +msgid "" +"The :func:`~re.match` function only checks if the RE matches at the " +"beginning of the string while :func:`~re.search` will scan forward through " +"the string for a match. It's important to keep this distinction in mind. " +"Remember, :func:`!match` will only report a successful match which will " +"start at 0; if the match wouldn't start at zero, :func:`!match` will *not* " +"report it. ::" +msgstr "" +"La fonction :func:`~re.match` vérifie seulement si la RE correspond au début " +"de la chaîne de caractères tandis que :func:`~re.search` parcourt la chaîne " +"de caractères pour trouver une correspondance. Il est important de garder " +"cette distinction à l'esprit. Rappelez-vous, :func:`!match` ne trouve qu'une " +"correspondance qui commence à 0 ; si la correspondance commence plus loin, :" +"func:`!match` *ne la trouve pas*. ::" + +#: ../Doc/howto/regex.rst:1276 +msgid "" +"On the other hand, :func:`~re.search` will scan forward through the string, " +"reporting the first match it finds. ::" +msgstr "" +"D'un autre côté, :func:`~re.search` balaie la chaîne de caractères, " +"rapportant la première correspondance qu'elle trouve. ::" + +#: ../Doc/howto/regex.rst:1284 +msgid "" +"Sometimes you'll be tempted to keep using :func:`re.match`, and just add ``." +"*`` to the front of your RE. Resist this temptation and use :func:`re." +"search` instead. The regular expression compiler does some analysis of REs " +"in order to speed up the process of looking for a match. One such analysis " +"figures out what the first character of a match must be; for example, a " +"pattern starting with ``Crow`` must match starting with a ``'C'``. The " +"analysis lets the engine quickly scan through the string looking for the " +"starting character, only trying the full match if a ``'C'`` is found." +msgstr "" +"Vous pouvez être tenté d'utiliser :func:`re.match` en ajoutant simplement ``." +"*`` au début de votre RE. Ce n'est pas une bonne idée, utilisez plutôt :func:" +"`re.search`. Le compilateur d'expressions régulières analyse les REs pour " +"optimiser le processus de recherche d'une correspondance. Cette analyse " +"permet de déterminer ce que doit être le premier caractère d'une " +"correspondance ; par exemple, un motif commençant par ``Corbeau`` doit faire " +"correspondre un ``'C'`` en tête. L'analyse permet au moteur de parcourir " +"rapidement la chaîne de caractères à la recherche du caractère de départ, " +"n'essayant la correspondance complète que si un \"C\" a déjà été trouvé." + +#: ../Doc/howto/regex.rst:1293 +msgid "" +"Adding ``.*`` defeats this optimization, requiring scanning to the end of " +"the string and then backtracking to find a match for the rest of the RE. " +"Use :func:`re.search` instead." +msgstr "" +"Ajouter ``.*`` annihile cette optimisation, nécessitant un balayage jusqu'à " +"la fin de la chaîne de caractères, puis un retour en arrière pour trouver " +"une correspondance pour le reste de la RE. Préférez l'utilisation :func:`re." +"search`." + +#: ../Doc/howto/regex.rst:1299 +msgid "Greedy versus Non-Greedy" +msgstr "Glouton contre non-glouton" + +#: ../Doc/howto/regex.rst:1301 +msgid "" +"When repeating a regular expression, as in ``a*``, the resulting action is " +"to consume as much of the pattern as possible. This fact often bites you " +"when you're trying to match a pair of balanced delimiters, such as the angle " +"brackets surrounding an HTML tag. The naive pattern for matching a single " +"HTML tag doesn't work because of the greedy nature of ``.*``. ::" +msgstr "" +"Si vous répétez un motif dans une expression régulière, comme ``a*``, " +"l'action résultante est de consommer autant de motifs que possible. C'est un " +"problème lorsque vous essayez de faire correspondre une paire de " +"délimiteurs, comme des chevrons encadrant une balise HTML. Le motif naïf " +"pour faire correspondre une seule balise HTML ne fonctionne pas en raison de " +"la nature gloutonne de ``.*``. ::" + +#: ../Doc/howto/regex.rst:1315 +msgid "" +"The RE matches the ``'<'`` in ``''``, and the ``.*`` consumes the rest " +"of the string. There's still more left in the RE, though, and the ``>`` " +"can't match at the end of the string, so the regular expression engine has " +"to backtrack character by character until it finds a match for the ``>``. " +"The final match extends from the ``'<'`` in ``''`` to the ``'>'`` in " +"``''``, which isn't what you want." +msgstr "" +"La RE correspond au ``'<'`` de ``''`` et le ``.*``` consomme le reste " +"de la chaîne. Mais, comme il reste des éléments du motif dans la RE et que " +"le ``>`` ne peut pas correspondre à la fin de la chaîne de caractères, le " +"moteur d'expression régulière doit faire marche arrière caractère par " +"caractère jusqu'à ce qu'il trouve une correspondance pour le ``>``. La " +"correspondance finale s'étend du ``'<'`` de ``''`` au ``'>'`` de ``''``, ce qui n'est pas ce que vous voulez." + +#: ../Doc/howto/regex.rst:1322 +msgid "" +"In this case, the solution is to use the non-greedy qualifiers ``*?``, ``+?" +"``, ``??``, or ``{m,n}?``, which match as *little* text as possible. In the " +"above example, the ``'>'`` is tried immediately after the first ``'<'`` " +"matches, and when it fails, the engine advances a character at a time, " +"retrying the ``'>'`` at every step. This produces just the right result::" +msgstr "" +"Dans ce cas, la solution consiste à utiliser des quantificateurs non " +"gloutons tels que ``*?``, ``+?``, ``??`` ou ``{m,n}?``, qui effectuent une " +"correspondance aussi *petite* que possible. Dans l'exemple ci-dessus, le " +"``'>'`` est essayé immédiatement après que le ``'<'`` corresponde et, s'il " +"échoue, le moteur avance caractère par caractère, ré-essayant ``'>'`` à " +"chaque pas. Nous obtenons alors le bon résultat ::" + +#: ../Doc/howto/regex.rst:1331 +msgid "" +"(Note that parsing HTML or XML with regular expressions is painful. Quick-" +"and-dirty patterns will handle common cases, but HTML and XML have special " +"cases that will break the obvious regular expression; by the time you've " +"written a regular expression that handles all of the possible cases, the " +"patterns will be *very* complicated. Use an HTML or XML parser module for " +"such tasks.)" +msgstr "" +"Note : l'analyse du HTML ou du XML avec des expressions régulières est tout " +"sauf une sinécure. Les motifs écrits à la va-vite traiteront les cas " +"communs, mais HTML et XML ont des cas spéciaux qui font planter l'expression " +"régulière évidente ; quand vous aurez écrit une expression régulière qui " +"traite tous les cas possibles, les motifs seront *très* compliqués. " +"Utilisez un module d'analyse HTML ou XML pour de telles tâches." + +#: ../Doc/howto/regex.rst:1339 +msgid "Using re.VERBOSE" +msgstr "Utilisez *re.VERBOSE*" + +#: ../Doc/howto/regex.rst:1341 +msgid "" +"By now you've probably noticed that regular expressions are a very compact " +"notation, but they're not terribly readable. REs of moderate complexity can " +"become lengthy collections of backslashes, parentheses, and metacharacters, " +"making them difficult to read and understand." +msgstr "" +"À présent, vous vous êtes rendu compte que les expressions régulières sont " +"une notation très compacte, mais qu'elles ne sont pas très lisibles. Une RE " +"modérément complexe peut rapidement devenir une longue collection de barres " +"obliques inverses, de parenthèses et de métacaractères, ce qui la rend " +"difficile à lire et à comprendre." + +#: ../Doc/howto/regex.rst:1346 +msgid "" +"For such REs, specifying the :const:`re.VERBOSE` flag when compiling the " +"regular expression can be helpful, because it allows you to format the " +"regular expression more clearly." +msgstr "" +"Pour de telles RE, activer l'option :const:`re.VERBOSE` à la compilation de " +"l'expression régulière peut être utile ; cela vous permet de formater " +"l'expression régulière de manière plus claire." + +#: ../Doc/howto/regex.rst:1350 +msgid "" +"The ``re.VERBOSE`` flag has several effects. Whitespace in the regular " +"expression that *isn't* inside a character class is ignored. This means " +"that an expression such as ``dog | cat`` is equivalent to the less readable " +"``dog|cat``, but ``[a b]`` will still match the characters ``'a'``, ``'b'``, " +"or a space. In addition, you can also put comments inside a RE; comments " +"extend from a ``#`` character to the next newline. When used with triple-" +"quoted strings, this enables REs to be formatted more neatly::" +msgstr "" +"L'option ``re.VERBOSE`` a plusieurs effets. Les espaces dans l'expression " +"régulière qui *ne sont pas* à l'intérieur d'une classe de caractères sont " +"ignorées. Cela signifie qu'une expression comme ``chien | chat`` est " +"équivalente à ``chien|chat`` qui est moins lisible, mais ``[a b]`` " +"correspond toujours aux caractères ``'a'``, ``'b'`` ou à une espace. En " +"outre, vous avez la possibilité de mettre des commentaires à l'intérieur " +"d'une RE ; les commentaires s'étendent du caractère ``#`` à la nouvelle " +"ligne suivante. Lorsque vous l'utilisez avec des chaînes à triple " +"guillemets, cela permet aux RE d'être formatées plus proprement ::" + +#: ../Doc/howto/regex.rst:1367 +msgid "This is far more readable than::" +msgstr "Ceci est beaucoup plus lisible que ::" + +#: ../Doc/howto/regex.rst:1373 +msgid "Feedback" +msgstr "Vos commentaires" + +#: ../Doc/howto/regex.rst:1375 +msgid "" +"Regular expressions are a complicated topic. Did this document help you " +"understand them? Were there parts that were unclear, or Problems you " +"encountered that weren't covered here? If so, please send suggestions for " +"improvements to the author." +msgstr "" +"Les expressions régulières sont un sujet compliqué. Est-ce que ce document " +"vous a aidé à les comprendre ? Des parties ne sont pas claires, ou des " +"problèmes que vous avez rencontrés ne sont pas traités ici ? Si tel est le " +"cas, merci d'envoyer vos suggestions d'améliorations à l'auteur." + +#: ../Doc/howto/regex.rst:1380 +msgid "" +"The most complete book on regular expressions is almost certainly Jeffrey " +"Friedl's Mastering Regular Expressions, published by O'Reilly. " +"Unfortunately, it exclusively concentrates on Perl and Java's flavours of " +"regular expressions, and doesn't contain any Python material at all, so it " +"won't be useful as a reference for programming in Python. (The first " +"edition covered Python's now-removed :mod:`!regex` module, which won't help " +"you much.) Consider checking it out from your library." +msgstr "" +"Le livre le plus complet sur les expressions régulières est certainement " +"Mastering Regular Expressions de Jeffrey Friedl, publié par O'Reilly. " +"Malheureusement, il se concentre sur les déclinaisons Perl et Java des " +"expressions régulières et ne contient aucun contenu pour Python ; il n'est " +"donc pas utile d'en faire référence pour la programmation Python. (La " +"première édition traitait du module Python :mod:`!regex`, maintenant " +"supprimé, ce qui ne vous aidera pas beaucoup.) Pensez à le retirer de votre " +"bibliothèque." diff --git a/howto/sockets.po b/howto/sockets.po new file mode 100644 index 000000000..26706127d --- /dev/null +++ b/howto/sockets.po @@ -0,0 +1,757 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: 2019-06-10 15:41+0200\n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/howto/sockets.rst:5 +msgid "Socket Programming HOWTO" +msgstr "Guide pratique : programmation avec les *sockets*" + +#: ../Doc/howto/sockets.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/howto/sockets.rst:7 +msgid "Gordon McMillan" +msgstr "Gordon McMillan" + +#: ../Doc/howto/sockets.rst:None +msgid "Abstract" +msgstr "Résumé" + +#: ../Doc/howto/sockets.rst:12 +msgid "" +"Sockets are used nearly everywhere, but are one of the most severely " +"misunderstood technologies around. This is a 10,000 foot overview of " +"sockets. It's not really a tutorial - you'll still have work to do in " +"getting things operational. It doesn't cover the fine points (and there are " +"a lot of them), but I hope it will give you enough background to begin using " +"them decently." +msgstr "" +"Les connecteurs (*sockets*, en anglais) sont utilisés presque partout, mais " +"ils sont l'une des technologies les plus méconnues. En voici un aperçu très " +"général. Ce n'est pas vraiment un tutoriel — vous aurez encore du travail à " +"faire pour avoir un résultat opérationnel. Il ne couvre pas les détails (et " +"il y en a beaucoup), mais j'espère qu'il vous donnera suffisamment " +"d'informations pour commencer à les utiliser correctement." + +#: ../Doc/howto/sockets.rst:20 +msgid "Sockets" +msgstr "Interfaces de connexion (*sockets*)" + +#: ../Doc/howto/sockets.rst:22 +msgid "" +"I'm only going to talk about INET (i.e. IPv4) sockets, but they account for " +"at least 99% of the sockets in use. And I'll only talk about STREAM (i.e. " +"TCP) sockets - unless you really know what you're doing (in which case this " +"HOWTO isn't for you!), you'll get better behavior and performance from a " +"STREAM socket than anything else. I will try to clear up the mystery of what " +"a socket is, as well as some hints on how to work with blocking and non-" +"blocking sockets. But I'll start by talking about blocking sockets. You'll " +"need to know how they work before dealing with non-blocking sockets." +msgstr "" +"Je ne vais aborder que les connecteurs INET (i.e. IPv4), mais ils " +"représentent au moins 99% des connecteurs (*socket* en anglais) utilisés. Et " +"je n'aborderai que les connecteurs STREAM (i.e. TCP) — à moins que vous ne " +"sachiez vraiment ce que vous faites (auquel cas ce HOWTO n'est pas pour " +"vous !), vous obtiendrez un meilleur comportement et de meilleures " +"performances avec un connecteur STREAM que tout autre. Je vais essayer " +"d'éclaircir le mystère de ce qu'est un connecteur, ainsi que quelques " +"conseils sur la façon de travailler avec des connecteurs bloquants et non " +"bloquants. Mais je vais commencer par aborder les connecteurs bloquants. " +"Nous avons besoin de savoir comment ils fonctionnent avant de traiter les " +"connecteurs non bloquants." + +#: ../Doc/howto/sockets.rst:31 +msgid "" +"Part of the trouble with understanding these things is that \"socket\" can " +"mean a number of subtly different things, depending on context. So first, " +"let's make a distinction between a \"client\" socket - an endpoint of a " +"conversation, and a \"server\" socket, which is more like a switchboard " +"operator. The client application (your browser, for example) uses \"client\" " +"sockets exclusively; the web server it's talking to uses both \"server\" " +"sockets and \"client\" sockets." +msgstr "" +"Une partie de la difficulté à comprendre ces choses est que « connecteur » " +"peut désigner plusieurs choses très légèrement différentes, selon le " +"contexte. Faisons donc d'abord une distinction entre un connecteur " +"« client » — point final d'une conversation — et un connecteur « serveur », " +"qui ressemble davantage à un standardiste. L'application cliente (votre " +"navigateur par exemple) utilise exclusivement des connecteurs « client » ; " +"le serveur web avec lequel elle parle utilise à la fois des connecteurs " +"« serveur » et des connecteurs « client »." + +#: ../Doc/howto/sockets.rst:40 +msgid "History" +msgstr "Historique" + +#: ../Doc/howto/sockets.rst:42 +msgid "" +"Of the various forms of :abbr:`IPC (Inter Process Communication)`, sockets " +"are by far the most popular. On any given platform, there are likely to be " +"other forms of IPC that are faster, but for cross-platform communication, " +"sockets are about the only game in town." +msgstr "" +"Parmi les différentes formes d’:abbr:`IPC (Inter Process Communication)`, " +"les connecteurs sont de loin les plus populaires. Sur une plate-forme " +"donnée, il est probable que d'autres formes d'\\ *IPC* soient plus rapides, " +"mais pour la communication entre plates-formes, les connecteurs sont à peu " +"près la seule solution valable." + +#: ../Doc/howto/sockets.rst:47 +msgid "" +"They were invented in Berkeley as part of the BSD flavor of Unix. They " +"spread like wildfire with the Internet. With good reason --- the combination " +"of sockets with INET makes talking to arbitrary machines around the world " +"unbelievably easy (at least compared to other schemes)." +msgstr "" +"Ils ont été inventés à Berkeley dans le cadre de la déclinaison *BSD* " +"d'Unix. Ils se sont répandus comme une traînée de poudre avec Internet. Et " +"pour cause : la combinaison des connecteurs avec *INET* rend le dialogue " +"avec n’importe quelle machine dans le monde entier incroyablement facile (du " +"moins par rapport à d'autres systèmes)." + +#: ../Doc/howto/sockets.rst:54 +msgid "Creating a Socket" +msgstr "Créer un connecteur" + +#: ../Doc/howto/sockets.rst:56 +msgid "" +"Roughly speaking, when you clicked on the link that brought you to this " +"page, your browser did something like the following::" +msgstr "" +"Grosso modo, lorsque vous avez cliqué sur le lien qui vous a amené à cette " +"page, votre navigateur a fait quelque chose comme ceci ::" + +#: ../Doc/howto/sockets.rst:64 +msgid "" +"When the ``connect`` completes, the socket ``s`` can be used to send in a " +"request for the text of the page. The same socket will read the reply, and " +"then be destroyed. That's right, destroyed. Client sockets are normally only " +"used for one exchange (or a small set of sequential exchanges)." +msgstr "" +"Lorsque l’appel à ``connect`` est terminé, le connecteur ``s`` peut être " +"utilisé pour envoyer une requête demandant le texte de la page. Le même " +"connecteur lira la réponse, puis sera mis au rebut. C'est exact, mis au " +"rebut. Les connecteurs clients ne sont normalement utilisés que pour un seul " +"échange (ou un petit ensemble d'échanges séquentiels)." + +#: ../Doc/howto/sockets.rst:70 +msgid "" +"What happens in the web server is a bit more complex. First, the web server " +"creates a \"server socket\"::" +msgstr "" +"Ce qui se passe dans le serveur web est un peu plus complexe. Tout d'abord, " +"le serveur web crée un « connecteur serveur » ::" + +#: ../Doc/howto/sockets.rst:80 +msgid "" +"A couple things to notice: we used ``socket.gethostname()`` so that the " +"socket would be visible to the outside world. If we had used ``s." +"bind(('localhost', 80))`` or ``s.bind(('127.0.0.1', 80))`` we would still " +"have a \"server\" socket, but one that was only visible within the same " +"machine. ``s.bind(('', 80))`` specifies that the socket is reachable by any " +"address the machine happens to have." +msgstr "" +"Quelques remarques : nous avons utilisé ``socket.gethostname()`` pour que le " +"connecteur soit visible par le monde extérieur. Si nous avions utilisé ``s." +"bind((('localhost', 80))`` ou ``s.bind((('127.0.0.0.1', 80))`` nous aurions " +"encore un connecteur \"serveur\", mais qui ne serait visible que sur la " +"machine même. ``s.bind('', 80)]`` spécifie que le socket est accessible par " +"toute adresse que la machine possède." + +#: ../Doc/howto/sockets.rst:87 +msgid "" +"A second thing to note: low number ports are usually reserved for \"well " +"known\" services (HTTP, SNMP etc). If you're playing around, use a nice high " +"number (4 digits)." +msgstr "" +"Une deuxième chose à noter : les ports dont le numéro est petit sont " +"généralement réservés aux services \"bien connus\" (HTTP, SNMP, etc.). Si " +"vous expérimentez, utilisez un nombre suffisamment élevé (4 chiffres)." + +#: ../Doc/howto/sockets.rst:91 +msgid "" +"Finally, the argument to ``listen`` tells the socket library that we want it " +"to queue up as many as 5 connect requests (the normal max) before refusing " +"outside connections. If the rest of the code is written properly, that " +"should be plenty." +msgstr "" +"Enfin, l'argument ``listen`` indique à la bibliothèque de connecteurs que " +"nous voulons qu'elle mette en file d'attente jusqu'à 5 requêtes de connexion " +"(le maximum normal) avant de refuser les connexions externes. Si le reste du " +"code est écrit correctement, cela devrait suffire." + +#: ../Doc/howto/sockets.rst:95 +msgid "" +"Now that we have a \"server\" socket, listening on port 80, we can enter the " +"mainloop of the web server::" +msgstr "" +"Maintenant que nous avons un connecteur « serveur », en écoute sur le port " +"80, nous pouvons entrer dans la boucle principale du serveur web ::" + +#: ../Doc/howto/sockets.rst:106 +msgid "" +"There's actually 3 general ways in which this loop could work - dispatching " +"a thread to handle ``clientsocket``, create a new process to handle " +"``clientsocket``, or restructure this app to use non-blocking sockets, and " +"multiplex between our \"server\" socket and any active ``clientsocket``\\ s " +"using ``select``. More about that later. The important thing to understand " +"now is this: this is *all* a \"server\" socket does. It doesn't send any " +"data. It doesn't receive any data. It just produces \"client\" sockets. Each " +"``clientsocket`` is created in response to some *other* \"client\" socket " +"doing a ``connect()`` to the host and port we're bound to. As soon as we've " +"created that ``clientsocket``, we go back to listening for more connections. " +"The two \"clients\" are free to chat it up - they are using some dynamically " +"allocated port which will be recycled when the conversation ends." +msgstr "" +"Il y a en fait trois façons générales de faire fonctionner cette boucle : " +"mobiliser un fil d'exécution pour gérer les ``clientsocket``\\s, créer un " +"nouveau processus pour gérer les ``clientsocket``\\s, ou restructurer cette " +"application pour utiliser des connecteurs non bloquants, et multiplexer " +"entre notre connecteur « serveur » et n'importe quel ``clientsocket`` actif " +"en utilisant ``select``. Plus d'informations à ce sujet plus tard. La chose " +"importante à comprendre maintenant est la suivante : c'est *tout* ce que " +"fait un connecteur « serveur ». Il n'envoie aucune donnée. Il ne reçoit " +"aucune donnée. Il ne fait que produire des connecteurs « clients ». Chaque " +"``clientsocket`` est créé en réponse à un *autre* connecteur « client » qui " +"se connecte à l'hôte et au port auxquels nous sommes liés. Dès que nous " +"avons créé ce ``clientsocket``, nous retournons à l'écoute pour d'autres " +"connexions. Les deux « clients » sont libres de discuter — ils utilisent un " +"port alloué dynamiquement qui sera recyclé à la fin de la conversation." + +#: ../Doc/howto/sockets.rst:121 +msgid "IPC" +msgstr "Communication Entre Processus" + +#: ../Doc/howto/sockets.rst:123 +msgid "" +"If you need fast IPC between two processes on one machine, you should look " +"into pipes or shared memory. If you do decide to use AF_INET sockets, bind " +"the \"server\" socket to ``'localhost'``. On most platforms, this will take " +"a shortcut around a couple of layers of network code and be quite a bit " +"faster." +msgstr "" +"Si vous avez besoin d'une communication rapide entre deux processus sur une " +"même machine, vous devriez regarder comment utiliser les *pipes* ou la " +"mémoire partagée. Si vous décidez d'utiliser les connecteurs AF_INET, liez " +"le connecteur \"serveur\" à ``'localhost'``. Sur la plupart des plates-" +"formes, cela court-circuite quelques couches réseau et est un peu plus " +"rapide." + +#: ../Doc/howto/sockets.rst:129 +msgid "" +"The :mod:`multiprocessing` integrates cross-platform IPC into a higher-level " +"API." +msgstr "" +"Le :mod:`multiprocessing` intègre de l’IPC multiplateforme dans une API de " +"plus haut niveau." + +#: ../Doc/howto/sockets.rst:134 +msgid "Using a Socket" +msgstr "Utilisation d'un connecteur" + +#: ../Doc/howto/sockets.rst:136 +msgid "" +"The first thing to note, is that the web browser's \"client\" socket and the " +"web server's \"client\" socket are identical beasts. That is, this is a " +"\"peer to peer\" conversation. Or to put it another way, *as the designer, " +"you will have to decide what the rules of etiquette are for a conversation*. " +"Normally, the ``connect``\\ ing socket starts the conversation, by sending " +"in a request, or perhaps a signon. But that's a design decision - it's not a " +"rule of sockets." +msgstr "" +"La première chose à noter, c'est que la prise « client » du navigateur web " +"et la prise « client » du serveur web sont des bêtes identiques. C'est-à-" +"dire qu'il s'agit d'une conversation « pair à pair ». Ou pour le dire " +"autrement, *en tant que concepteur, vous devrez décider quelles sont les " +"règles d'étiquette pour une conversation*. Normalement, la connexion via " +"``connect`` lance la conversation en envoyant une demande, ou peut-être un " +"signe. Mais c'est une décision de conception — ce n'est pas une règle des " +"connecteurs." + +#: ../Doc/howto/sockets.rst:143 +msgid "" +"Now there are two sets of verbs to use for communication. You can use " +"``send`` and ``recv``, or you can transform your client socket into a file-" +"like beast and use ``read`` and ``write``. The latter is the way Java " +"presents its sockets. I'm not going to talk about it here, except to warn " +"you that you need to use ``flush`` on sockets. These are buffered \"files\", " +"and a common mistake is to ``write`` something, and then ``read`` for a " +"reply. Without a ``flush`` in there, you may wait forever for the reply, " +"because the request may still be in your output buffer." +msgstr "" +"Il y a maintenant deux ensembles de verbes à utiliser pour la communication. " +"Vous pouvez utiliser ``send`` et ``recv``, ou vous pouvez transformer votre " +"connecteur client en une bête imitant un fichier et utiliser ``read`` et " +"``write``. C'est la façon dont Java présente ses connecteurs. Je ne vais pas " +"en parler ici, sauf pour vous avertir que vous devez utiliser ``flush`` sur " +"les connecteurs. Ce sont des « fichiers », mis en mémoire tampon, et une " +"erreur courante est d'« écrire » via ``write`` quelque chose, puis de " +"« lire » via ``read`` pour obtenir une réponse. Sans un ``flush``, vous " +"pouvez attendre la réponse pour toujours, parce que la requête peut encore " +"être dans votre mémoire tampon de sortie." + +#: ../Doc/howto/sockets.rst:152 +msgid "" +"Now we come to the major stumbling block of sockets - ``send`` and ``recv`` " +"operate on the network buffers. They do not necessarily handle all the bytes " +"you hand them (or expect from them), because their major focus is handling " +"the network buffers. In general, they return when the associated network " +"buffers have been filled (``send``) or emptied (``recv``). They then tell " +"you how many bytes they handled. It is *your* responsibility to call them " +"again until your message has been completely dealt with." +msgstr "" +"Nous arrivons maintenant au principal écueil des connecteurs — ``send`` et " +"``recv`` fonctionnent sur les mémoires tampons du réseau. Ils ne traitent " +"pas nécessairement tous les octets que vous leur passez (ou que vous " +"attendez d'eux), car leur principal objectif est de gérer les tampons " +"réseau. En général, leur exécution se termine lorsque les tampons réseau " +"associés ont été remplis (``send``) ou vidés (``recv``). Ils vous indiquent " +"alors combien d'octets ils ont traité. Il est de *votre* responsabilité de " +"les rappeler jusqu'à ce que votre message ait été complètement traité." + +#: ../Doc/howto/sockets.rst:160 +msgid "" +"When a ``recv`` returns 0 bytes, it means the other side has closed (or is " +"in the process of closing) the connection. You will not receive any more " +"data on this connection. Ever. You may be able to send data successfully; " +"I'll talk more about this later." +msgstr "" +"Lorsqu'un ``recv`` renvoie 0 octet, cela signifie que l'autre partie a fermé " +"(ou est en train de fermer) la connexion. Vous ne recevrez plus de données " +"sur cette connexion. Jamais. Vous pouvez peut-être envoyer des données avec " +"succès. J’en parlerai plus tard." + +#: ../Doc/howto/sockets.rst:165 +msgid "" +"A protocol like HTTP uses a socket for only one transfer. The client sends a " +"request, then reads a reply. That's it. The socket is discarded. This means " +"that a client can detect the end of the reply by receiving 0 bytes." +msgstr "" +"Un protocole comme HTTP utilise un connecteur pour un seul transfert. Le " +"client envoie une demande, puis lit une réponse. C'est tout. Le connecteur " +"est mis au rebut. Cela signifie qu'un client peut détecter la fin de la " +"réponse en recevant 0 octet." + +#: ../Doc/howto/sockets.rst:169 +msgid "" +"But if you plan to reuse your socket for further transfers, you need to " +"realize that *there is no* :abbr:`EOT (End of Transfer)` *on a socket.* I " +"repeat: if a socket ``send`` or ``recv`` returns after handling 0 bytes, the " +"connection has been broken. If the connection has *not* been broken, you " +"may wait on a ``recv`` forever, because the socket will *not* tell you that " +"there's nothing more to read (for now). Now if you think about that a bit, " +"you'll come to realize a fundamental truth of sockets: *messages must either " +"be fixed length* (yuck), *or be delimited* (shrug), *or indicate how long " +"they are* (much better), *or end by shutting down the connection*. The " +"choice is entirely yours, (but some ways are righter than others)." +msgstr "" +"Mais si vous prévoyez de réutiliser votre connecteur pour d'autres " +"transferts, vous devez réaliser que il n'y a *pas* d':abbr:`EOT (End of " +"Transfer)` sur un connecteur. Je répète : si un connecteur ``send`` ou " +"``recv`` retourne après avoir manipulé 0 octets, la connexion a été " +"interrompue. Si la connexion n'a *pas* été interrompue, vous pouvez attendre " +"sur un ``recv`` pour toujours, car le connecteur ne vous dira pas qu'il n'y " +"a plus rien à lire (pour le moment). Maintenant, si vous y réfléchissez un " +"peu, vous allez vous rendre compte d'une vérité fondamentale sur les " +"connecteurs : *les messages doivent être de longueur fixe* (beurk), *ou être " +"délimités* (haussement d'épaules), *ou indiquer de quelle longueur ils sont* " +"(beaucoup mieux), *ou terminer en coupant la connexion*. Le choix est " +"entièrement de votre côté, (mais certaines façons sont plus justes que " +"d'autres)." + +#: ../Doc/howto/sockets.rst:180 +msgid "" +"Assuming you don't want to end the connection, the simplest solution is a " +"fixed length message::" +msgstr "" +"En supposant que vous ne vouliez pas terminer la connexion, la solution la " +"plus simple est un message de longueur fixe ::" + +#: ../Doc/howto/sockets.rst:217 +msgid "" +"The sending code here is usable for almost any messaging scheme - in Python " +"you send strings, and you can use ``len()`` to determine its length (even if " +"it has embedded ``\\0`` characters). It's mostly the receiving code that " +"gets more complex. (And in C, it's not much worse, except you can't use " +"``strlen`` if the message has embedded ``\\0``\\ s.)" +msgstr "" +"Le code d'envoi ici est utilisable pour presque tous les systèmes de " +"messagerie — en Python, vous envoyez des chaînes de caractères, et vous " +"pouvez utiliser ``len()`` pour en déterminer la longueur (même si elle " +"contient des caractères ``\\0``). C'est surtout le code de réception qui " +"devient plus complexe. (Et en C, ce n'est pas bien pire, sauf que vous ne " +"pouvez pas utiliser ``strlen`` si le message contient des ``\\0``\\ s)." + +#: ../Doc/howto/sockets.rst:223 +msgid "" +"The easiest enhancement is to make the first character of the message an " +"indicator of message type, and have the type determine the length. Now you " +"have two ``recv``\\ s - the first to get (at least) that first character so " +"you can look up the length, and the second in a loop to get the rest. If you " +"decide to go the delimited route, you'll be receiving in some arbitrary " +"chunk size, (4096 or 8192 is frequently a good match for network buffer " +"sizes), and scanning what you've received for a delimiter." +msgstr "" +"Le plus simple est de faire du premier caractère du message un indicateur du " +"type de message, et de faire en sorte que le type détermine la longueur. " +"Vous avez maintenant deux ``recv``\\ s — le premier pour obtenir (au moins) " +"ce premier caractère afin de pouvoir déterminer la longueur, et le second " +"dans une boucle pour obtenir le reste. Si vous décidez de suivre la route " +"délimitée, vous recevrez un morceau de taille arbitraire (4096 ou 8192 est " +"fréquemment une bonne valeur pour correspondre à la taille de la mémoire " +"tampon du réseau), et vous analyserez ce que vous avez reçu pour trouver un " +"délimiteur." + +#: ../Doc/howto/sockets.rst:231 +msgid "" +"One complication to be aware of: if your conversational protocol allows " +"multiple messages to be sent back to back (without some kind of reply), and " +"you pass ``recv`` an arbitrary chunk size, you may end up reading the start " +"of a following message. You'll need to put that aside and hold onto it, " +"until it's needed." +msgstr "" +"Une subtilité dont il faut être conscient : si votre protocole de " +"conversation permet de renvoyer plusieurs messages les uns à la suite des " +"autres (sans aucune sorte de réponse), et que vous passez à ``recv`` une " +"taille de morceau arbitraire, vous pouvez en arriver à lire le début du " +"message suivant. Vous devrez alors le mettre de côté et le conserver, " +"jusqu'à ce que vous en ayez besoin." + +#: ../Doc/howto/sockets.rst:237 +msgid "" +"Prefixing the message with its length (say, as 5 numeric characters) gets " +"more complex, because (believe it or not), you may not get all 5 characters " +"in one ``recv``. In playing around, you'll get away with it; but in high " +"network loads, your code will very quickly break unless you use two ``recv`` " +"loops - the first to determine the length, the second to get the data part " +"of the message. Nasty. This is also when you'll discover that ``send`` does " +"not always manage to get rid of everything in one pass. And despite having " +"read this, you will eventually get bit by it!" +msgstr "" +"Préfixer le message avec sa longueur (disons, sous la forme de 5 caractères " +"numériques) devient plus complexe, parce que (croyez-le ou non), vous pouvez " +"ne pas recevoir les 5 caractères en un seul ``recv``. Pour une utilisation " +"triviale, vous vous en tirerez à bon compte ; mais en cas de forte charge " +"réseau, votre code se cassera très rapidement, à moins que vous n’utilisiez " +"deux boucles ``recv`` — la première pour déterminer la longueur, la deuxième " +"pour obtenir la partie « données » du message. Vilain. C’est aussi à ce " +"moment que vous découvrirez que « l’envoi » via ``send`` ne parvient pas " +"toujours à tout évacuer en un seul passage. Et bien que vous ayez lu cet " +"avertissement, vous finirez par vous faire avoir par cette subtilité !" + +#: ../Doc/howto/sockets.rst:246 +msgid "" +"In the interests of space, building your character, (and preserving my " +"competitive position), these enhancements are left as an exercise for the " +"reader. Lets move on to cleaning up." +msgstr "" +"Pour garder une longueur raisonnable à cette page, pour forger votre " +"caractère (et afin de garder l’avantage concurrentiel que j’ai sur vous), " +"ces améliorations ne seront pas abordées et sont laissées en exercice au " +"lecteur. Passons maintenant au nettoyage." + +#: ../Doc/howto/sockets.rst:252 +msgid "Binary Data" +msgstr "Données binaires" + +#: ../Doc/howto/sockets.rst:254 +msgid "" +"It is perfectly possible to send binary data over a socket. The major " +"problem is that not all machines use the same formats for binary data. For " +"example, a Motorola chip will represent a 16 bit integer with the value 1 as " +"the two hex bytes 00 01. Intel and DEC, however, are byte-reversed - that " +"same 1 is 01 00. Socket libraries have calls for converting 16 and 32 bit " +"integers - ``ntohl, htonl, ntohs, htons`` where \"n\" means *network* and \"h" +"\" means *host*, \"s\" means *short* and \"l\" means *long*. Where network " +"order is host order, these do nothing, but where the machine is byte-" +"reversed, these swap the bytes around appropriately." +msgstr "" +"Il est parfaitement possible d’envoyer des données binaires sur un " +"connecteur. Le gros problème est que toutes les machines n’utilisent pas les " +"mêmes formats pour les données binaires. Par exemple, une puce Motorola code " +"l'entier 1, sous 16 bits, comme les deux octets hexadécimaux 00 01. Intel et " +"DEC, cependant, utilisent l’ordre d’octets inverse — ce même 1 est codé 01 " +"00. Les bibliothèques de connecteurs ont des appels pour convertir des " +"entiers de 16 et 32 bits — ``ntohl, htonl, ntohs, htons`` où ``n`` signifie " +"*réseau* (*network*, en anglais) et ``h`` signifie *hôte*, ``s`` signifie " +"*court* (*short*, en anglais) et ``l`` signifie *long*. Lorsque l’ordre du " +"réseau est l’ordre de l’hôte, ceux-ci ne font rien, mais lorsque la machine " +"utilise l’ordre d’octets inverse, ceux-ci échangent les octets de manière " +"appropriée." + +#: ../Doc/howto/sockets.rst:264 +msgid "" +"In these days of 32 bit machines, the ascii representation of binary data is " +"frequently smaller than the binary representation. That's because a " +"surprising amount of the time, all those longs have the value 0, or maybe 1. " +"The string \"0\" would be two bytes, while binary is four. Of course, this " +"doesn't fit well with fixed-length messages. Decisions, decisions." +msgstr "" +"De nos jours, avec les machines 32 bits, la représentation *ASCII* des " +"données binaires est souvent plus compacte que la représentation binaire. " +"C’est parce qu’un nombre surprenant de fois, tous ces *longs* ont la valeur " +"0, ou peut-être 1. La chaîne « 0 » serait codée sur deux octets, alors " +"qu'elle le serait sur quatre en binaire. Bien sûr, cela ne fonctionne pas " +"très bien avec les messages de longueur fixe. Ah, les décisions, les " +"décisions…" + +#: ../Doc/howto/sockets.rst:272 +msgid "Disconnecting" +msgstr "Déconnexion" + +#: ../Doc/howto/sockets.rst:274 +msgid "" +"Strictly speaking, you're supposed to use ``shutdown`` on a socket before " +"you ``close`` it. The ``shutdown`` is an advisory to the socket at the " +"other end. Depending on the argument you pass it, it can mean \"I'm not " +"going to send anymore, but I'll still listen\", or \"I'm not listening, good " +"riddance!\". Most socket libraries, however, are so used to programmers " +"neglecting to use this piece of etiquette that normally a ``close`` is the " +"same as ``shutdown(); close()``. So in most situations, an explicit " +"``shutdown`` is not needed." +msgstr "" +"À proprement parler, vous êtes censé utiliser ``shutdown`` sur un connecteur " +"pour l’arrêter avant de le fermer via ``close``. Le ``shutdown`` est un " +"avertissement au connecteur de l’autre côté. Selon l’argument que vous lui " +"passez, cela peut signifier « Je ne vais plus envoyer, mais je vais quand " +"même écouter », ou « Je n’écoute pas, bon débarras ! ». La plupart des " +"bibliothèques de connecteurs, cependant, sont tellement habituées à ce que " +"les programmeurs négligent d’utiliser ce morceau d’étiquette que normalement " +"un ``close`` est équivalent à ``shutdown() ; close()``. Ainsi, dans la " +"plupart des situations, un ``shutdown`` explicite n’est pas nécessaire." + +#: ../Doc/howto/sockets.rst:282 +msgid "" +"One way to use ``shutdown`` effectively is in an HTTP-like exchange. The " +"client sends a request and then does a ``shutdown(1)``. This tells the " +"server \"This client is done sending, but can still receive.\" The server " +"can detect \"EOF\" by a receive of 0 bytes. It can assume it has the " +"complete request. The server sends a reply. If the ``send`` completes " +"successfully then, indeed, the client was still receiving." +msgstr "" +"Une façon d’utiliser efficacement le ``shutdown`` est d’utiliser un échange " +"de type HTTP. Le client envoie une requête et effectue ensuite un " +"``shutdown(1)``. Cela indique au serveur que « ce client a fini d’envoyer, " +"mais peut encore recevoir ». Le serveur peut détecter *EOF* par une " +"réception de 0 octet. Il peut supposer qu’il a la requête complète. Le " +"serveur envoie une réponse. Si le ``send`` se termine avec succès, alors, en " +"effet, le client était encore en train de recevoir." + +#: ../Doc/howto/sockets.rst:289 +msgid "" +"Python takes the automatic shutdown a step further, and says that when a " +"socket is garbage collected, it will automatically do a ``close`` if it's " +"needed. But relying on this is a very bad habit. If your socket just " +"disappears without doing a ``close``, the socket at the other end may hang " +"indefinitely, thinking you're just being slow. *Please* ``close`` your " +"sockets when you're done." +msgstr "" +"Python pousse l’arrêt automatique un peu plus loin, et dit que lorsqu’un " +"connecteur est collecté par le ramasse-miette, il effectue automatiquement " +"une fermeture via ``close`` si elle est nécessaire. Mais c’est une très " +"mauvaise habitude de s’appuyer sur ce système. Si votre connecteur disparaît " +"sans avoir fait un ``close``, le connecteur à l’autre bout peut rester " +"suspendu indéfiniment, pensant que vous êtes juste lent. Fermez vos " +"connecteurs quand vous avez terminé *s’il vous plait*." + +#: ../Doc/howto/sockets.rst:297 +msgid "When Sockets Die" +msgstr "Quand les connecteurs meurent" + +#: ../Doc/howto/sockets.rst:299 +msgid "" +"Probably the worst thing about using blocking sockets is what happens when " +"the other side comes down hard (without doing a ``close``). Your socket is " +"likely to hang. TCP is a reliable protocol, and it will wait a long, long " +"time before giving up on a connection. If you're using threads, the entire " +"thread is essentially dead. There's not much you can do about it. As long as " +"you aren't doing something dumb, like holding a lock while doing a blocking " +"read, the thread isn't really consuming much in the way of resources. Do " +"*not* try to kill the thread - part of the reason that threads are more " +"efficient than processes is that they avoid the overhead associated with the " +"automatic recycling of resources. In other words, if you do manage to kill " +"the thread, your whole process is likely to be screwed up." +msgstr "" +"Le pire dans l'utilisation de connecteurs bloquants est probablement ce qui " +"se passe lorsque l'autre côté s'interrompt brutalement (sans faire de " +"fermeture via ``close``). Votre connecteur risque d’attendre infiniment. TCP " +"est un protocole fiable, et il attendra très, très longtemps avant " +"d'abandonner une connexion. Si vous utilisez des fils d’exécution, le fil " +"entier est pratiquement mort. Il n'y a pas grand-chose que vous puissiez " +"faire à ce sujet. Du moment que vous ne faites rien de stupide, comme tenir " +"un verrou verrouillé pendant une lecture bloquante, le fil ne consomme pas " +"vraiment beaucoup de ressources. N'essayez *pas* de tuer le fil — si les " +"fils sont plus efficients que les processus, c'est en partie parce qu'ils " +"évitent les coûts significatifs liés au recyclage automatique des " +"ressources. En d'autres termes, si vous parvenez à tuer le fil, tout votre " +"processus risque d'être foutu." + +#: ../Doc/howto/sockets.rst:313 +msgid "Non-blocking Sockets" +msgstr "Connecteurs non bloquants" + +#: ../Doc/howto/sockets.rst:315 +msgid "" +"If you've understood the preceding, you already know most of what you need " +"to know about the mechanics of using sockets. You'll still use the same " +"calls, in much the same ways. It's just that, if you do it right, your app " +"will be almost inside-out." +msgstr "" +"Si vous avez compris ce qui précède, vous savez déjà tout ce que vous devez " +"savoir sur la mécanique de l'utilisation des connecteurs. Vous utiliserez " +"toujours les mêmes appels, de la même façon. C'est juste que, si vous le " +"faites bien, votre application sera presque dans la poche." + +#: ../Doc/howto/sockets.rst:320 +msgid "" +"In Python, you use ``socket.setblocking(0)`` to make it non-blocking. In C, " +"it's more complex, (for one thing, you'll need to choose between the BSD " +"flavor ``O_NONBLOCK`` and the almost indistinguishable Posix flavor " +"``O_NDELAY``, which is completely different from ``TCP_NODELAY``), but it's " +"the exact same idea. You do this after creating the socket, but before using " +"it. (Actually, if you're nuts, you can switch back and forth.)" +msgstr "" +"En Python, vous utilisez ``socket.setblocking(0)`` pour le rendre non-" +"bloquant. En C, c'est plus complexe (pour commencer, vous devez choisir " +"entre la version BSD ``O_NONBLOCK`` et la version Posix presque impossible à " +"distinguer ``O_NDELAY``, qui est complètement différente de " +"``TCP_NODELAY``), mais c'est exactement la même idée. Vous le faites après " +"avoir créé le connecteur mais avant de l'utiliser (en fait, si vous êtes " +"fou, vous pouvez alterner)." + +#: ../Doc/howto/sockets.rst:327 +msgid "" +"The major mechanical difference is that ``send``, ``recv``, ``connect`` and " +"``accept`` can return without having done anything. You have (of course) a " +"number of choices. You can check return code and error codes and generally " +"drive yourself crazy. If you don't believe me, try it sometime. Your app " +"will grow large, buggy and suck CPU. So let's skip the brain-dead solutions " +"and do it right." +msgstr "" +"La différence majeure de fonctionnement est que `send``, ``recv``, " +"``connect`` et ``accept`` peuvent rendre la main sans avoir rien fait. Vous " +"avez (bien sûr) un certain nombre de choix. Vous pouvez vérifier le code de " +"retour et les codes d'erreur et, en général, devenir fou. Si vous ne me " +"croyez pas, essayez un jour. Votre application va grossir, boguer et " +"vampiriser le processeur. Alors, évitons les solutions vouées à l’échec dès " +"le départ et faisons les choses correctement." + +#: ../Doc/howto/sockets.rst:334 +msgid "Use ``select``." +msgstr "Utiliser ``select``." + +#: ../Doc/howto/sockets.rst:336 +msgid "" +"In C, coding ``select`` is fairly complex. In Python, it's a piece of cake, " +"but it's close enough to the C version that if you understand ``select`` in " +"Python, you'll have little trouble with it in C::" +msgstr "" +"En C, implémenter ``select`` est assez complexe. En Python, c'est du gâteau, " +"mais c'est assez proche de la version C ; aussi, si vous comprenez " +"``select`` en Python, vous aurez peu de problèmes avec lui en C ::" + +#: ../Doc/howto/sockets.rst:347 +msgid "" +"You pass ``select`` three lists: the first contains all sockets that you " +"might want to try reading; the second all the sockets you might want to try " +"writing to, and the last (normally left empty) those that you want to check " +"for errors. You should note that a socket can go into more than one list. " +"The ``select`` call is blocking, but you can give it a timeout. This is " +"generally a sensible thing to do - give it a nice long timeout (say a " +"minute) unless you have good reason to do otherwise." +msgstr "" +"Vous passez à ``select`` trois listes : la première contient tous les " +"connecteurs dont vous souhaiter lire le contenu ; la deuxième tous les " +"connecteurs sur lesquels vous voudriez écrire, et la dernière (normalement " +"laissée vide) ceux sur lesquels vous voudriez vérifier s’il y a des erreurs. " +"Prenez note qu'un connecteur peut figurer dans plus d'une liste. L'appel à " +"``select`` est bloquant, mais vous pouvez lui donner un délai d'attente. " +"C'est généralement une bonne chose à faire — donnez-lui un bon gros délai " +"d'attente (disons une minute), à moins que vous n'ayez une bonne raison de " +"ne pas le faire." + +#: ../Doc/howto/sockets.rst:355 +msgid "" +"In return, you will get three lists. They contain the sockets that are " +"actually readable, writable and in error. Each of these lists is a subset " +"(possibly empty) of the corresponding list you passed in." +msgstr "" +"En retour, vous recevrez trois listes. Elles contiennent les connecteurs qui " +"sont réellement lisibles, inscriptibles et en erreur. Chacune de ces listes " +"est un sous-ensemble (éventuellement vide) de la liste correspondante que " +"vous avez transmise." + +#: ../Doc/howto/sockets.rst:359 +msgid "" +"If a socket is in the output readable list, you can be as-close-to-certain-" +"as-we-ever-get-in-this-business that a ``recv`` on that socket will return " +"*something*. Same idea for the writable list. You'll be able to send " +"*something*. Maybe not all you want to, but *something* is better than " +"nothing. (Actually, any reasonably healthy socket will return as writable - " +"it just means outbound network buffer space is available.)" +msgstr "" +"Si un connecteur se trouve dans la liste des sorties que vous pouvez lire, " +"vous pouvez être pratiquement certain qu'un ``recv`` sur ce connecteur " +"retournera *quelque chose*. Même chose pour la liste des sorties sur " +"lesquelles vous pouvez écrire. Vous pourrez envoyer *quelque chose*. Peut-" +"être pas tout ce que vous voudrez, mais *quelque chose* est mieux que rien. " +"(En fait, n'importe quel connecteur raisonnablement sain retournera en " +"écriture — cela signifie simplement que l'espace tampon réseau sortant est " +"disponible)." + +#: ../Doc/howto/sockets.rst:366 +msgid "" +"If you have a \"server\" socket, put it in the potential_readers list. If it " +"comes out in the readable list, your ``accept`` will (almost certainly) " +"work. If you have created a new socket to ``connect`` to someone else, put " +"it in the potential_writers list. If it shows up in the writable list, you " +"have a decent chance that it has connected." +msgstr "" +"Si vous avez un connecteur \"serveur\", mettez-le dans la liste des lecteurs " +"potentiels. Si il apparaît dans la liste des sorties que vous pouvez lire, " +"votre ``accept`` fonctionnera (presque certainement). Si vous avez créé un " +"nouveau connecteur pour ``connect`` à quelqu'un d'autre, mettez-le dans la " +"liste des éditeurs potentiels. Si il apparaît dans la liste des sorties sur " +"lesquelles vous pouvez écrire, vous avez une bonne chance qu'il se soit " +"connecté." + +#: ../Doc/howto/sockets.rst:372 +msgid "" +"Actually, ``select`` can be handy even with blocking sockets. It's one way " +"of determining whether you will block - the socket returns as readable when " +"there's something in the buffers. However, this still doesn't help with the " +"problem of determining whether the other end is done, or just busy with " +"something else." +msgstr "" +"En fait, ``select`` peut être pratique même avec des connecteurs bloquants. " +"C'est une façon de déterminer si vous allez bloquer — le connecteur " +"redevient lisible lorsqu'il y a quelque chose dans les tampons. Cependant, " +"cela n'aide pas encore à déterminer si l'autre extrémité a terminé, ou si " +"elle est simplement occupée par autre chose." + +#: ../Doc/howto/sockets.rst:377 +msgid "" +"**Portability alert**: On Unix, ``select`` works both with the sockets and " +"files. Don't try this on Windows. On Windows, ``select`` works with sockets " +"only. Also note that in C, many of the more advanced socket options are done " +"differently on Windows. In fact, on Windows I usually use threads (which " +"work very, very well) with my sockets." +msgstr "" +"**Alerte de portabilité** : Sous Unix, ``select`` fonctionne aussi bien avec " +"les connecteurs qu'avec les fichiers. N'essayez pas cela sous Windows. Sous " +"Windows, ``select`` ne fonctionne qu'avec les connecteurs. Notez également " +"qu'en C, la plupart des options de connecteurs les plus avancées se font " +"différemment sous Windows. En fait, sous Windows, j'utilise habituellement " +"des fils d'exécution (qui fonctionnent très, très bien) avec mes connecteurs." diff --git a/howto/sorting.po b/howto/sorting.po new file mode 100644 index 000000000..9ad35fa82 --- /dev/null +++ b/howto/sorting.po @@ -0,0 +1,430 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-10-13 22:28+0200\n" +"PO-Revision-Date: 2018-07-31 18:40+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/howto/sorting.rst:4 +msgid "Sorting HOW TO" +msgstr "Guide pour le tri" + +#: ../Doc/howto/sorting.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/howto/sorting.rst:6 +msgid "Andrew Dalke and Raymond Hettinger" +msgstr "Andrew Dalke et Raymond Hettinger" + +#: ../Doc/howto/sorting.rst:0 +msgid "Release" +msgstr "Version" + +#: ../Doc/howto/sorting.rst:7 +msgid "0.1" +msgstr "0.1" + +#: ../Doc/howto/sorting.rst:10 +msgid "" +"Python lists have a built-in :meth:`list.sort` method that modifies the list " +"in-place. There is also a :func:`sorted` built-in function that builds a " +"new sorted list from an iterable." +msgstr "" +"Les listes Python ont une méthode native :meth:`list.sort` qui modifie les " +"listes elles-mêmes. Il y a également une fonction native :func:`sorted` qui " +"construit une nouvelle liste triée depuis un itérable." + +#: ../Doc/howto/sorting.rst:14 +msgid "" +"In this document, we explore the various techniques for sorting data using " +"Python." +msgstr "" +"Dans ce document, nous explorons différentes techniques pour trier les " +"données en Python." + +#: ../Doc/howto/sorting.rst:18 +msgid "Sorting Basics" +msgstr "Les bases du tri" + +#: ../Doc/howto/sorting.rst:20 +msgid "" +"A simple ascending sort is very easy: just call the :func:`sorted` function. " +"It returns a new sorted list::" +msgstr "" +"Un tri ascendant simple est très facile : il suffit d'appeler la fonction :" +"func:`sorted`. Elle renvoie une nouvelle liste triée ::" + +#: ../Doc/howto/sorting.rst:26 +msgid "" +"You can also use the :meth:`list.sort` method. It modifies the list in-place " +"(and returns ``None`` to avoid confusion). Usually it's less convenient " +"than :func:`sorted` - but if you don't need the original list, it's slightly " +"more efficient." +msgstr "" +"Vous pouvez aussi utiliser la méthode :meth:`list.sort`. Elle modifie la " +"liste elle-même (et renvoie ``None`` pour éviter les confusions). " +"Habituellement, cette méthode est moins pratique que la fonction :func:" +"`sorted` -- mais si vous n'avez pas besoin de la liste originale, cette " +"technique est légèrement plus efficace." + +#: ../Doc/howto/sorting.rst:36 +msgid "" +"Another difference is that the :meth:`list.sort` method is only defined for " +"lists. In contrast, the :func:`sorted` function accepts any iterable." +msgstr "" +"Une autre différence est que la méthode :meth:`list.sort` est seulement " +"définie pour les listes. Au contraire, la fonction :func:`sorted` accepte " +"n'importe quel itérable." + +#: ../Doc/howto/sorting.rst:43 +msgid "Key Functions" +msgstr "Fonctions clef" + +#: ../Doc/howto/sorting.rst:45 +msgid "" +"Both :meth:`list.sort` and :func:`sorted` have a *key* parameter to specify " +"a function to be called on each list element prior to making comparisons." +msgstr "" +":meth:`list.sort` et :func:`sorted` ont un paramètre nommé *key* afin de " +"spécifier une fonction qui peut être appelée sur chaque élément de la liste " +"afin d'effectuer des comparaisons." + +#: ../Doc/howto/sorting.rst:48 +msgid "For example, here's a case-insensitive string comparison:" +msgstr "Par exemple, voici une comparaison de texte insensible à la casse:" + +#: ../Doc/howto/sorting.rst:53 +msgid "" +"The value of the *key* parameter should be a function that takes a single " +"argument and returns a key to use for sorting purposes. This technique is " +"fast because the key function is called exactly once for each input record." +msgstr "" +"La valeur du paramètre *key* devrait être une fonction qui prend un seul " +"argument et renvoie une clef à utiliser à des fins de tri. Cette technique " +"est rapide car la fonction clef est appelée exactement une seule fois pour " +"chaque enregistrement en entrée." + +#: ../Doc/howto/sorting.rst:57 +msgid "" +"A common pattern is to sort complex objects using some of the object's " +"indices as keys. For example:" +msgstr "" +"Un usage fréquent est de faire un tri sur des objets complexes en utilisant " +"les indices des objets en tant que clef. Par exemple :" + +#: ../Doc/howto/sorting.rst:68 +msgid "" +"The same technique works for objects with named attributes. For example:" +msgstr "" +"La même technique marche pour des objets avec des attributs nommés. Par " +"exemple :" + +#: ../Doc/howto/sorting.rst:87 +msgid "Operator Module Functions" +msgstr "Fonctions du module *operator*" + +#: ../Doc/howto/sorting.rst:89 +msgid "" +"The key-function patterns shown above are very common, so Python provides " +"convenience functions to make accessor functions easier and faster. The :mod:" +"`operator` module has :func:`~operator.itemgetter`, :func:`~operator." +"attrgetter`, and a :func:`~operator.methodcaller` function." +msgstr "" +"Les fonctions clef utilisées ci-dessus sont courantes, donc Python fournit " +"des fonctions permettant de rendre plus simple et plus rapide l'usage des " +"fonctions d'accesseur. Le module :mod:`operator` contient les fonctions :" +"func:`~operator.itemgetter`, :func:`~operator.attrgetter`, et :func:" +"`~operator.methodcaller`." + +#: ../Doc/howto/sorting.rst:94 +msgid "Using those functions, the above examples become simpler and faster:" +msgstr "" +"En utilisant ces fonctions, les exemples au dessus deviennent plus simples " +"et plus rapides :" + +#: ../Doc/howto/sorting.rst:104 +msgid "" +"The operator module functions allow multiple levels of sorting. For example, " +"to sort by *grade* then by *age*:" +msgstr "" +"Les fonctions du module *operator* permettent plusieurs niveaux de tri. Par " +"exemple, pour trier par *grade* puis par *age* :" + +#: ../Doc/howto/sorting.rst:114 +msgid "Ascending and Descending" +msgstr "Ascendant et descendant" + +#: ../Doc/howto/sorting.rst:116 +msgid "" +"Both :meth:`list.sort` and :func:`sorted` accept a *reverse* parameter with " +"a boolean value. This is used to flag descending sorts. For example, to get " +"the student data in reverse *age* order:" +msgstr "" +":meth:`list.sort` et :func:`sorted` acceptent un paramètre nommé *reverse* " +"avec une valeur booléenne. C'est utilisé pour déterminer l'ordre descendant " +"des tris. Par exemple, pour avoir les données des étudiants dans l'ordre " +"inverse par *age* :" + +#: ../Doc/howto/sorting.rst:127 +msgid "Sort Stability and Complex Sorts" +msgstr "Stabilité des tris et tris complexes" + +#: ../Doc/howto/sorting.rst:129 +msgid "" +"Sorts are guaranteed to be `stable `_\\. That means that when multiple records have " +"the same key, their original order is preserved." +msgstr "" +"Les tris sont garantis `stables `_\\. Cela signifie que lorsque " +"plusieurs enregistrements on la même clef, leur ordre original est préservé." + +#: ../Doc/howto/sorting.rst:137 +msgid "" +"Notice how the two records for *blue* retain their original order so that " +"``('blue', 1)`` is guaranteed to precede ``('blue', 2)``." +msgstr "" +"Notez comme les deux enregistrements pour *blue* gardent leur ordre original " +"et que par conséquent il est garanti que ``('blue', 1)`` précède ``('blue', " +"2)``." + +#: ../Doc/howto/sorting.rst:140 +msgid "" +"This wonderful property lets you build complex sorts in a series of sorting " +"steps. For example, to sort the student data by descending *grade* and then " +"ascending *age*, do the *age* sort first and then sort again using *grade*:" +msgstr "" +"Cette propriété fantastique vous permet de construire des tris complexes " +"dans des tris en plusieurs étapes. Par exemple, afin de sortir les données " +"des étudiants en ordre descendant par *grade* puis en ordre ascendant par " +"*age*, effectuez un tri par *age* en premier puis un second tri par *grade* :" + +#: ../Doc/howto/sorting.rst:148 +msgid "" +"The `Timsort `_ algorithm used in " +"Python does multiple sorts efficiently because it can take advantage of any " +"ordering already present in a dataset." +msgstr "" +"L'algorithme `Timsort `_ utilisé dans " +"Python effectue de multiples tris efficacement parce qu'il peut tirer " +"avantage de n'importe quel ordre de existant dans un jeu de données." + +#: ../Doc/howto/sorting.rst:153 +msgid "The Old Way Using Decorate-Sort-Undecorate" +msgstr "La méthode traditionnelle utilisant Decorate-Sort-Undecorate" + +#: ../Doc/howto/sorting.rst:155 +msgid "This idiom is called Decorate-Sort-Undecorate after its three steps:" +msgstr "" +"Cette technique est appelée Decorate-Sort-Undecorate et se base sur trois " +"étapes :" + +#: ../Doc/howto/sorting.rst:157 +msgid "" +"First, the initial list is decorated with new values that control the sort " +"order." +msgstr "" +"Premièrement, la liste de départ est décorée avec les nouvelles valeurs qui " +"contrôlent l'ordre du tri." + +#: ../Doc/howto/sorting.rst:159 +msgid "Second, the decorated list is sorted." +msgstr "En second lieu, la liste décorée est triée." + +#: ../Doc/howto/sorting.rst:161 +msgid "" +"Finally, the decorations are removed, creating a list that contains only the " +"initial values in the new order." +msgstr "" +"Enfin, la décoration est supprimée, créant ainsi une liste qui contient " +"seulement la valeur initiale dans le nouvel ordre." + +#: ../Doc/howto/sorting.rst:164 +msgid "" +"For example, to sort the student data by *grade* using the DSU approach:" +msgstr "" +"Par exemple, pour trier les données étudiant par *grade* en utilisant " +"l'approche DSU :" + +#: ../Doc/howto/sorting.rst:171 +msgid "" +"This idiom works because tuples are compared lexicographically; the first " +"items are compared; if they are the same then the second items are compared, " +"and so on." +msgstr "" +"Cette technique marche parce que les tuples sont comparés par ordre " +"lexicographique; les premiers objets sont comparés; si il y a des objets " +"identiques, alors l'objet suivant est comparé, et ainsi de suite." + +#: ../Doc/howto/sorting.rst:175 +msgid "" +"It is not strictly necessary in all cases to include the index *i* in the " +"decorated list, but including it gives two benefits:" +msgstr "" +"Il n'est pas strictement nécessaire dans tous les cas d’inclure l'indice *i* " +"dans la liste décorée, mais l'inclure donne deux avantages :" + +#: ../Doc/howto/sorting.rst:178 +msgid "" +"The sort is stable -- if two items have the same key, their order will be " +"preserved in the sorted list." +msgstr "" +"Le tri est stable -- si deux objets on la même clef, leur ordre sera " +"préservé dans la liste triée." + +#: ../Doc/howto/sorting.rst:181 +msgid "" +"The original items do not have to be comparable because the ordering of the " +"decorated tuples will be determined by at most the first two items. So for " +"example the original list could contain complex numbers which cannot be " +"sorted directly." +msgstr "" +"Les objets d'origine ne sont pas nécessairement comparables car l'ordre des " +"tuples décorés sera déterminé par au plus les deux premiers objets. Donc par " +"exemple la liste originale pourrait contenir des nombres complexes qui " +"pourraient ne pas être triés directement." + +#: ../Doc/howto/sorting.rst:186 +msgid "" +"Another name for this idiom is `Schwartzian transform `_\\, after Randal L. Schwartz, who " +"popularized it among Perl programmers." +msgstr "" +"Un autre nom pour cette technique est `Schwartzian transform `_\\, après que Randal L. Schwartz " +"l'ait popularisé chez les développeurs Perl." + +#: ../Doc/howto/sorting.rst:190 +msgid "" +"Now that Python sorting provides key-functions, this technique is not often " +"needed." +msgstr "" +"Maintenant que le tri Python fournit des fonctions-clef, cette technique " +"n'est plus souvent utilisée." + +#: ../Doc/howto/sorting.rst:194 +msgid "The Old Way Using the *cmp* Parameter" +msgstr "La méthode traditionnelle d'utiliser le paramètre *cmp*" + +#: ../Doc/howto/sorting.rst:196 +msgid "" +"Many constructs given in this HOWTO assume Python 2.4 or later. Before that, " +"there was no :func:`sorted` builtin and :meth:`list.sort` took no keyword " +"arguments. Instead, all of the Py2.x versions supported a *cmp* parameter to " +"handle user specified comparison functions." +msgstr "" +"Plusieurs construction données dans ce guide se basent sur Python 2.4 ou " +"plus. Avant cela, il n'y avait pas la fonction :func:`sorted` et la méthode :" +"meth:`list.sort` ne prenait pas d'arguments nommés. À la place, toutes les " +"versions Python 2.x utilisaient un paramètre *cmp* pour prendre en charge " +"les fonctions de comparaisons définies par les utilisateurs." + +#: ../Doc/howto/sorting.rst:201 +msgid "" +"In Py3.0, the *cmp* parameter was removed entirely (as part of a larger " +"effort to simplify and unify the language, eliminating the conflict between " +"rich comparisons and the :meth:`__cmp__` magic method)." +msgstr "" +"En Py3.0, le paramètre *cmp* à été supprimé complètement (dans le cadre d'un " +"effort plus général pour simplifier et unifier le langage, en éliminant le " +"conflit entre les comparaisons riches et la méthode magique :meth:`__cmp__`)." + +#: ../Doc/howto/sorting.rst:205 +msgid "" +"In Py2.x, sort allowed an optional function which can be called for doing " +"the comparisons. That function should take two arguments to be compared and " +"then return a negative value for less-than, return zero if they are equal, " +"or return a positive value for greater-than. For example, we can do:" +msgstr "" +"En Python 2.x, le tri permettait en paramètre une fonction optionnelle qui " +"peut être appelée pour faire des comparaisons. Cette fonction devrait " +"prendre deux arguments à comparer pour renvoyer une valeur négative pour " +"inférieur-à, renvoyer zéro si ils sont égaux, ou renvoyer une valeur " +"positive pour supérieur-à. Par exemple, nous pouvons faire :" + +#: ../Doc/howto/sorting.rst:215 +msgid "Or you can reverse the order of comparison with:" +msgstr "Ou nous pouvons inverser l'ordre de comparaison avec :" + +#: ../Doc/howto/sorting.rst:222 +msgid "" +"When porting code from Python 2.x to 3.x, the situation can arise when you " +"have the user supplying a comparison function and you need to convert that " +"to a key function. The following wrapper makes that easy to do::" +msgstr "" +"En portant du code depuis Python 2.X vers 3.x, des problèmes peuvent " +"survenir quand des utilisateurs fournissent une fonction de comparaison et " +"qu'il faut convertir cette fonction en une fonction-clef. La fonction " +"d'encapsulation suivante rend cela plus facile à faire ::" + +#: ../Doc/howto/sorting.rst:245 +msgid "To convert to a key function, just wrap the old comparison function:" +msgstr "" +"Pour convertir une fonction clef, ils suffit d'encapsuler l'ancienne " +"fonction de comparaison :" + +#: ../Doc/howto/sorting.rst:256 +msgid "" +"In Python 3.2, the :func:`functools.cmp_to_key` function was added to the :" +"mod:`functools` module in the standard library." +msgstr "" +"En Python 3.2, la fonction :func:`functools.cmp_to_key` à été ajoutée au " +"module :mod:`functools` dans la librairie standard." + +#: ../Doc/howto/sorting.rst:260 +msgid "Odd and Ends" +msgstr "Curiosités et conclusion" + +#: ../Doc/howto/sorting.rst:262 +msgid "" +"For locale aware sorting, use :func:`locale.strxfrm` for a key function or :" +"func:`locale.strcoll` for a comparison function." +msgstr "" +"Pour du tri de texte localisé, utilisez :func:`locale.strxfrm` en tant que " +"fonction clef ou :func:`locale.strcoll` comme fonction de comparaison." + +#: ../Doc/howto/sorting.rst:265 +msgid "" +"The *reverse* parameter still maintains sort stability (so that records with " +"equal keys retain the original order). Interestingly, that effect can be " +"simulated without the parameter by using the builtin :func:`reversed` " +"function twice:" +msgstr "" +"Le paramètre *reverse* maintient toujours un tri stable (de telle sorte que " +"les enregistrements avec des clef égales gardent le même ordre). Notez que " +"cet effet peut être simulé sans le paramètre en utilisant la fonction " +"native :func:`reversed` deux fois :" + +#: ../Doc/howto/sorting.rst:277 +msgid "" +"The sort routines are guaranteed to use :meth:`__lt__` when making " +"comparisons between two objects. So, it is easy to add a standard sort order " +"to a class by defining an :meth:`__lt__` method::" +msgstr "" +"Il est garanti que les routines de tri utilisent les méthodes :meth:`__lt__` " +"lorsqu'elles effectuent des comparaisons entre deux objets. Donc il est " +"facile d'ajouter un ordre de tri standard à une classe en définissant sa " +"méthode :meth:`__lt__` ::" + +#: ../Doc/howto/sorting.rst:285 +msgid "" +"Key functions need not depend directly on the objects being sorted. A key " +"function can also access external resources. For instance, if the student " +"grades are stored in a dictionary, they can be used to sort a separate list " +"of student names:" +msgstr "" +"Les fonctions clef n'ont pas besoin de dépendre directement des objets " +"triés. Une fonction clef peut aussi accéder à des ressources externes. En " +"l'occurrence, si les grades des étudiants sont stockés dans un dictionnaire, " +"ils peuvent être utilisés pour trier une liste différentes de noms " +"d'étudiants :" diff --git a/howto/unicode.po b/howto/unicode.po new file mode 100644 index 000000000..ea8483f11 --- /dev/null +++ b/howto/unicode.po @@ -0,0 +1,1516 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-09-03 13:11+0200\n" +"Last-Translator: Mathieu Dupuy \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/howto/unicode.rst:5 +msgid "Unicode HOWTO" +msgstr "Guide Unicode" + +#: ../Doc/howto/unicode.rst:0 +msgid "Release" +msgstr "Version" + +#: ../Doc/howto/unicode.rst:7 +msgid "1.12" +msgstr "1.12" + +#: ../Doc/howto/unicode.rst:9 +msgid "" +"This HOWTO discusses Python's support for the Unicode specification for " +"representing textual data, and explains various problems that people " +"commonly encounter when trying to work with Unicode." +msgstr "" +"Ce guide décrit la gestion de la spécification Unicode par Python pour les " +"données textuelles et explique les différents problèmes généralement " +"rencontrés par les utilisateurs qui travaillent avec Unicode." + +#: ../Doc/howto/unicode.rst:15 +msgid "Introduction to Unicode" +msgstr "Introduction à Unicode" + +#: ../Doc/howto/unicode.rst:18 +msgid "Definitions" +msgstr "Définitions" + +#: ../Doc/howto/unicode.rst:20 +msgid "" +"Today's programs need to be able to handle a wide variety of characters. " +"Applications are often internationalized to display messages and output in a " +"variety of user-selectable languages; the same program might need to output " +"an error message in English, French, Japanese, Hebrew, or Russian. Web " +"content can be written in any of these languages and can also include a " +"variety of emoji symbols. Python's string type uses the Unicode Standard for " +"representing characters, which lets Python programs work with all these " +"different possible characters." +msgstr "" +"Les programmes d'aujourd'hui doivent être capables de traiter une grande " +"variété de caractères. Les applications sont souvent internationalisées pour " +"afficher les messages et les résultats dans une variété de langues " +"sélectionnables par l'utilisateur ; le même programme peut avoir besoin " +"d'afficher un message d'erreur en anglais, français, japonais, hébreu ou " +"russe. Le contenu Web peut être écrit dans n'importe laquelle de ces langues " +"et peut également inclure une variété de symboles émoji. Le type de chaîne " +"de caractères de Python utilise le standard Unicode pour représenter les " +"caractères, ce qui permet aux programmes Python de travailler avec tous ces " +"différents caractères possibles." + +#: ../Doc/howto/unicode.rst:30 +msgid "" +"Unicode (https://www.unicode.org/) is a specification that aims to list " +"every character used by human languages and give each character its own " +"unique code. The Unicode specifications are continually revised and updated " +"to add new languages and symbols." +msgstr "" +"Unicode (https://www.unicode.org/) est une spécification qui vise à lister " +"tous les caractères utilisés par les langues humaines et à donner à chaque " +"caractère son propre code unique. Les spécifications Unicode sont " +"continuellement révisées et mises à jour pour ajouter de nouvelles langues " +"et de nouveaux symboles." + +#: ../Doc/howto/unicode.rst:35 +msgid "" +"A **character** is the smallest possible component of a text. 'A', 'B', " +"'C', etc., are all different characters. So are 'È' and 'Í'. Characters " +"vary depending on the language or context you're talking about. For " +"example, there's a character for \"Roman Numeral One\", 'Ⅰ', that's separate " +"from the uppercase letter 'I'. They'll usually look the same, but these are " +"two different characters that have different meanings." +msgstr "" +"Un **caractère** est le plus petit composant possible d'un texte. « A », " +"« B », « C », etc. sont tous des caractères différents. Il en va de même " +"pour « È » et « Í ». Les caractères varient selon la langue ou le contexte " +"dont vous parlez. Par exemple, il y a un caractère pour « Chiffre Romain " +"Un » (*Roman Numeral One*), « Ⅰ », qui est séparé de la lettre majuscule " +"« I ». Ils se ressemblent généralement, mais ce sont deux caractères " +"différents qui ont des significations différentes." + +#: ../Doc/howto/unicode.rst:42 +msgid "" +"The Unicode standard describes how characters are represented by **code " +"points**. A code point value is an integer in the range 0 to 0x10FFFF " +"(about 1.1 million values, with some 110 thousand assigned so far). In the " +"standard and in this document, a code point is written using the notation ``U" +"+265E`` to mean the character with value ``0x265e`` (9,822 in decimal)." +msgstr "" +"Le standard Unicode décrit comment les caractères sont représentés par les " +"**points de code**. Une valeur de point de code est un nombre entier compris " +"entre ``0`` et ``0x10FFFF`` (environ 1,1 million de valeurs, avec environ " +"110 000 valeurs attribuées à ce jour). Dans le standard et dans le présent " +"document, un point de code est écrit en utilisant la notation ``U+265E`` " +"pour désigner le caractère avec la valeur ``0x265e`` (9 822 en décimal)." + +#: ../Doc/howto/unicode.rst:49 +msgid "" +"The Unicode standard contains a lot of tables listing characters and their " +"corresponding code points:" +msgstr "" +"La standard Unicode contient de nombreux tableaux contenant la liste des " +"caractères et des points de code correspondants :" + +#: ../Doc/howto/unicode.rst:70 +msgid "" +"Strictly, these definitions imply that it's meaningless to say 'this is " +"character ``U+265E``'. ``U+265E`` is a code point, which represents some " +"particular character; in this case, it represents the character 'BLACK CHESS " +"KNIGHT', '♞'. In informal contexts, this distinction between code points " +"and characters will sometimes be forgotten." +msgstr "" +"À proprement parler, ces définitions laissent entendre qu'il est inutile de " +"dire « c'est le caractère ``U+265E`` ». ``U+265E`` est un point de code, qui " +"représente un caractère particulier ; dans ce cas, il représente le " +"caractère « BLACK CHESS KNIGHT », « ♞ ». Dans des contextes informels, cette " +"distinction entre les points de code et les caractères sera parfois oubliée." + +#: ../Doc/howto/unicode.rst:77 +msgid "" +"A character is represented on a screen or on paper by a set of graphical " +"elements that's called a **glyph**. The glyph for an uppercase A, for " +"example, is two diagonal strokes and a horizontal stroke, though the exact " +"details will depend on the font being used. Most Python code doesn't need " +"to worry about glyphs; figuring out the correct glyph to display is " +"generally the job of a GUI toolkit or a terminal's font renderer." +msgstr "" +"Un caractère est représenté sur un écran ou sur papier par un ensemble " +"d’éléments graphiques appelé **glyphe**. Le glyphe d’un A majuscule, par " +"exemple, est deux traits diagonaux et un trait horizontal, bien que les " +"détails exacts dépendent de la police utilisée. La plupart du code Python " +"n’a pas besoin de s’inquiéter des glyphes ; trouver le bon glyphe à afficher " +"est généralement le travail d’une boîte à outils GUI ou du moteur de rendu " +"des polices d’un terminal." + +#: ../Doc/howto/unicode.rst:86 +msgid "Encodings" +msgstr "Encodages" + +#: ../Doc/howto/unicode.rst:88 +msgid "" +"To summarize the previous section: a Unicode string is a sequence of code " +"points, which are numbers from 0 through ``0x10FFFF`` (1,114,111 decimal). " +"This sequence of code points needs to be represented in memory as a set of " +"**code units**, and **code units** are then mapped to 8-bit bytes. The " +"rules for translating a Unicode string into a sequence of bytes are called a " +"**character encoding**, or just an **encoding**." +msgstr "" +"Pour résumer la section précédente : une chaîne Unicode est une séquence de " +"points de code, qui sont des nombres de ``0`` à ``0x10FFFF`` (1 114 111 en " +"décimal). Cette séquence de points de code doit être stockée en mémoire sous " +"la forme d'un ensemble de **unités de code**, et les **unités de code** sont " +"ensuite transposées en octets de 8 bits. Les règles de traduction d'une " +"chaîne Unicode en une séquence d'octets sont appelées un **encodage de " +"caractères** ou simplement un **encodage**." + +#: ../Doc/howto/unicode.rst:96 +msgid "" +"The first encoding you might think of is using 32-bit integers as the code " +"unit, and then using the CPU's representation of 32-bit integers. In this " +"representation, the string \"Python\" might look like this:" +msgstr "" +"Le premier encodage auquel vous pouvez penser est l'utilisation d'entiers 32 " +"bits comme unité de code, puis l'utilisation de la représentation des " +"entiers 32 bits par le CPU. Dans cette représentation, la chaîne « Python » " +"ressemblerait à ceci :" + +#: ../Doc/howto/unicode.rst:106 +msgid "" +"This representation is straightforward but using it presents a number of " +"problems." +msgstr "" +"Cette représentation est simple mais son utilisation pose un certain nombre " +"de problèmes." + +#: ../Doc/howto/unicode.rst:109 +msgid "It's not portable; different processors order the bytes differently." +msgstr "" +"Elle n’est pas portable ; des processeurs différents ordonnent les octets " +"différemment." + +#: ../Doc/howto/unicode.rst:111 +msgid "" +"It's very wasteful of space. In most texts, the majority of the code points " +"are less than 127, or less than 255, so a lot of space is occupied by " +"``0x00`` bytes. The above string takes 24 bytes compared to the 6 bytes " +"needed for an ASCII representation. Increased RAM usage doesn't matter too " +"much (desktop computers have gigabytes of RAM, and strings aren't usually " +"that large), but expanding our usage of disk and network bandwidth by a " +"factor of 4 is intolerable." +msgstr "" +"Elle gâche beaucoup d'espace. Dans la plupart des textes, la majorité des " +"points de code sont inférieurs à 127, ou à 255, donc beaucoup d'espace est " +"occupé par des octets ``0x00``. La chaîne ci-dessus occupe 24 octets, à " +"comparer aux 6 octets nécessaires pour une représentation en ASCII. " +"L'utilisation supplémentaire de RAM n'a pas trop d'importance (les " +"ordinateurs de bureau ont des gigaoctets de RAM et les chaînes ne sont " +"généralement pas si grandes que ça), mais l'accroissement de notre " +"utilisation du disque et de la bande passante réseau par un facteur de 4 est " +"intolérable." + +#: ../Doc/howto/unicode.rst:119 +msgid "" +"It's not compatible with existing C functions such as ``strlen()``, so a new " +"family of wide string functions would need to be used." +msgstr "" +"Elle n’est pas compatible avec les fonctions C existantes telles que " +"``strlen()``, il faudrait donc utiliser une nouvelle famille de fonctions, " +"celle des chaînes larges (*wide strings*)." + +#: ../Doc/howto/unicode.rst:122 +msgid "" +"Therefore this encoding isn't used very much, and people instead choose " +"other encodings that are more efficient and convenient, such as UTF-8." +msgstr "" +"Par conséquent, cet encodage n'est pas très utilisé et d'autres encodages, " +"plus efficaces et pratiques comme UTF-8, sont plutôt choisis." + +#: ../Doc/howto/unicode.rst:125 +msgid "" +"UTF-8 is one of the most commonly used encodings, and Python often defaults " +"to using it. UTF stands for \"Unicode Transformation Format\", and the '8' " +"means that 8-bit values are used in the encoding. (There are also UTF-16 " +"and UTF-32 encodings, but they are less frequently used than UTF-8.) UTF-8 " +"uses the following rules:" +msgstr "" +"UTF-8 est l’un des encodages les plus couramment utilisés et Python " +"l’utilise souvent par défaut. UTF signifie « Unicode Transformation " +"Format » (format de transformation Unicode) et « 8 » signifie que des " +"nombres à 8 bits sont utilisés dans l'encodage (il existe également des " +"codages UTF-16 et UTF-32, mais ils sont moins souvent utilisés que UTF-8). " +"UTF-8 utilise les règles suivantes :" + +#: ../Doc/howto/unicode.rst:131 +msgid "" +"If the code point is < 128, it's represented by the corresponding byte value." +msgstr "" +"Si le point de code est < 128, il est représenté par la valeur de l'octet " +"correspondant." + +#: ../Doc/howto/unicode.rst:132 +msgid "" +"If the code point is >= 128, it's turned into a sequence of two, three, or " +"four bytes, where each byte of the sequence is between 128 and 255." +msgstr "" +"Si le point de code est ≥ 128, il est transformé en une séquence de deux, " +"trois ou quatre octets, où chaque octet de la séquence est compris entre 128 " +"et 255." + +#: ../Doc/howto/unicode.rst:135 +msgid "UTF-8 has several convenient properties:" +msgstr "UTF-8 a plusieurs propriétés intéressantes :" + +#: ../Doc/howto/unicode.rst:137 +msgid "It can handle any Unicode code point." +msgstr "Il peut gérer n'importe quel point de code Unicode." + +#: ../Doc/howto/unicode.rst:138 +msgid "" +"A Unicode string is turned into a sequence of bytes that contains embedded " +"zero bytes only where they represent the null character (U+0000). This means " +"that UTF-8 strings can be processed by C functions such as ``strcpy()`` and " +"sent through protocols that can't handle zero bytes for anything other than " +"end-of-string markers." +msgstr "" +"Une chaîne Unicode est transformée en une séquence d’octets qui contient des " +"octets zéro uniquement lorsqu’ils représentent le caractère nul (U+0000). " +"Cela signifie que les chaînes UTF-8 peuvent être traitées par des fonctions " +"C telles que ``strcpy()`` et envoyées par des protocoles pour qui les octets " +"zéro signifient forcément la fin de chaîne." + +#: ../Doc/howto/unicode.rst:143 +msgid "A string of ASCII text is also valid UTF-8 text." +msgstr "Une chaîne de texte ASCII est également un texte UTF-8 valide." + +#: ../Doc/howto/unicode.rst:144 +msgid "" +"UTF-8 is fairly compact; the majority of commonly used characters can be " +"represented with one or two bytes." +msgstr "" +"UTF-8 est assez compact. La majorité des caractères couramment utilisés " +"peuvent être représentés avec un ou deux octets." + +#: ../Doc/howto/unicode.rst:146 +msgid "" +"If bytes are corrupted or lost, it's possible to determine the start of the " +"next UTF-8-encoded code point and resynchronize. It's also unlikely that " +"random 8-bit data will look like valid UTF-8." +msgstr "" +"Si des octets sont corrompus ou perdus, il est possible de déterminer le " +"début du prochain point de code encodé en UTF-8 et de se resynchroniser. Il " +"est également improbable que des données 8-bits aléatoires ressemblent à du " +"UTF-8 valide." + +#: ../Doc/howto/unicode.rst:149 +msgid "" +"UTF-8 is a byte oriented encoding. The encoding specifies that each " +"character is represented by a specific sequence of one or more bytes. This " +"avoids the byte-ordering issues that can occur with integer and word " +"oriented encodings, like UTF-16 and UTF-32, where the sequence of bytes " +"varies depending on the hardware on which the string was encoded." +msgstr "" +"UTF-8 est un encodage orienté octet. L'encodage spécifie que chaque " +"caractère est représenté par une séquence spécifique d'un ou plusieurs " +"octets. Ceci permet d'éviter les problèmes d'ordre des octets qui peuvent " +"survenir avec les encodages orientés entiers (*integer*) ou orientés mots " +"processeurs (*words*), comme UTF-16 et UTF-32, où la séquence des octets " +"varie en fonction du matériel sur lequel la chaîne a été encodée." + +#: ../Doc/howto/unicode.rst:157 ../Doc/howto/unicode.rst:513 +#: ../Doc/howto/unicode.rst:734 +msgid "References" +msgstr "Références" + +#: ../Doc/howto/unicode.rst:159 +msgid "" +"The `Unicode Consortium site `_ has character " +"charts, a glossary, and PDF versions of the Unicode specification. Be " +"prepared for some difficult reading. `A chronology `_ of the origin and development of Unicode is also available on " +"the site." +msgstr "" +"Le site du `Consortium Unicode `_, en anglais, a des " +"diagrammes de caractères, un glossaire et des versions PDF de la " +"spécification Unicode. Préparez-vous à une lecture difficile. Une " +"`chronologie `_ de l’origine et du " +"développement de l’Unicode est également disponible sur le site." + +#: ../Doc/howto/unicode.rst:164 +msgid "" +"On the Computerphile Youtube channel, Tom Scott briefly `discusses the " +"history of Unicode and UTF-8 ` " +"(9 minutes 36 seconds)." +msgstr "" +"Sur la chaîne Youtube *Computerphile*, Tom Scott parle brièvement de " +"l'histoire d'Unicode et d'UTF-8, en anglais : `Characters, Symbols and the " +"Unicode Miracle ` (9 minutes et " +"36 secondes)." + +#: ../Doc/howto/unicode.rst:168 +msgid "" +"To help understand the standard, Jukka Korpela has written `an introductory " +"guide `_ to reading the Unicode " +"character tables." +msgstr "" +"Pour aider à comprendre le standard, Jukka Korpela a écrit `un guide " +"d’introduction `_ à la lecture des " +"tables de caractères Unicode (ressource en anglais)." + +#: ../Doc/howto/unicode.rst:172 +msgid "" +"Another `good introductory article `_ was " +"written by Joel Spolsky. If this introduction didn't make things clear to " +"you, you should try reading this alternate article before continuing." +msgstr "" +"Un autre `bon article d'introduction `_ a été " +"écrit par Joel Spolsky. Si cette présente introduction ne vous a pas " +"clarifié les choses, vous devriez essayer de lire cet article-là avant de " +"continuer." + +#: ../Doc/howto/unicode.rst:177 +msgid "" +"Wikipedia entries are often helpful; see the entries for \"`character " +"encoding `_\" and `UTF-8 " +"`_, for example." +msgstr "" +"Les pages Wikipédia sont souvent utiles ; voir les pages pour « `Codage des " +"caractères `_ » et " +"`UTF-8 `_, par exemple." + +#: ../Doc/howto/unicode.rst:183 +msgid "Python's Unicode Support" +msgstr "Prise en charge Unicode de Python" + +#: ../Doc/howto/unicode.rst:185 +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:189 +msgid "The String Type" +msgstr "Le type *String*" + +#: ../Doc/howto/unicode.rst:191 +msgid "" +"Since Python 3.0, the language's :class:`str` type contains Unicode " +"characters, meaning any string created using ``\"unicode rocks!\"``, " +"``'unicode rocks!'``, or the triple-quoted string syntax is stored as " +"Unicode." +msgstr "" +"Depuis Python 3.0, le type :class:`str` du langage contient des caractères " +"Unicode, c'est-à-dire n'importe quelle chaîne créée à l'aide de ``\"unicode " +"déchire !\"``, ``'unicode déchire !'`` ou la syntaxe à triples guillemets " +"est enregistrée comme Unicode." + +#: ../Doc/howto/unicode.rst:195 +msgid "" +"The default encoding for Python source code is UTF-8, so you can simply " +"include a Unicode character in a string literal::" +msgstr "" +"L'encodage par défaut pour le code source Python est UTF-8, il est donc " +"facile d'inclure des caractères Unicode dans une chaîne littérale ::" + +#: ../Doc/howto/unicode.rst:205 +msgid "" +"Side note: Python 3 also supports using Unicode characters in identifiers::" +msgstr "" +"Note : Python 3 sait gérer les caractères Unicode dans les identifiants ::" + +#: ../Doc/howto/unicode.rst:211 +msgid "" +"If you can't enter a particular character in your editor or want to keep the " +"source code ASCII-only for some reason, you can also use escape sequences in " +"string literals. (Depending on your system, you may see the actual capital-" +"delta glyph instead of a \\u escape.) ::" +msgstr "" +"Si vous ne pouvez pas entrer un caractère particulier dans votre éditeur ou " +"si vous voulez garder le code source uniquement en ASCII pour une raison " +"quelconque, vous pouvez également utiliser des séquences d'échappement dans " +"les littéraux de chaîne (en fonction de votre système, il se peut que vous " +"voyiez le glyphe réel du *delta majuscule* au lieu d'une séquence " +"d'échappement ``\\u...``) ::" + +#: ../Doc/howto/unicode.rst:223 +msgid "" +"In addition, one can create a string using the :func:`~bytes.decode` method " +"of :class:`bytes`. This method takes an *encoding* argument, such as " +"``UTF-8``, and optionally an *errors* argument." +msgstr "" +"De plus, une chaîne de caractères peut être créée en utilisant la méthode :" +"func:`~bytes.decode` de la classe :class:`bytes`. Cette méthode prend un " +"argument *encoding*, ``UTF-8`` par exemple, et optionnellement un argument " +"*errors*." + +#: ../Doc/howto/unicode.rst:227 +msgid "" +"The *errors* argument specifies the response when the input string can't be " +"converted according to the encoding's rules. Legal values for this argument " +"are ``'strict'`` (raise a :exc:`UnicodeDecodeError` exception), " +"``'replace'`` (use ``U+FFFD``, ``REPLACEMENT CHARACTER``), ``'ignore'`` " +"(just leave the character out of the Unicode result), or " +"``'backslashreplace'`` (inserts a ``\\xNN`` escape sequence). The following " +"examples show the differences::" +msgstr "" +"L'argument *errors* détermine la réponse lorsque la chaîne en entrée ne peut " +"pas être convertie selon les règles de l'encodage. Les valeurs autorisées " +"pour cet argument sont ``'strict'`` (« strict » : lève une exception :exc:" +"`UnicodeDecodeError`), ``'replace'`` (« remplacer » : utilise ``U+FFFD``, " +"``REPLACEMENT CARACTER``), ``'ignore'`` (« ignorer » : n'inclut pas le " +"caractère dans le résultat Unicode) ou ``'backslashreplace'`` (« remplacer " +"avec antislash » : insère une séquence d’échappement ``\\xNN``). Les " +"exemples suivants illustrent les différences ::" + +#: ../Doc/howto/unicode.rst:247 +msgid "" +"Encodings are specified as strings containing the encoding's name. Python " +"comes with roughly 100 different encodings; see the Python Library Reference " +"at :ref:`standard-encodings` for a list. Some encodings have multiple " +"names; for example, ``'latin-1'``, ``'iso_8859_1'`` and ``'8859``' are all " +"synonyms for the same encoding." +msgstr "" +"Les encodages sont spécifiés sous forme de chaînes de caractères contenant " +"le nom de l'encodage. Python est livré avec une centaine d'encodages " +"différents ; voir la référence de la bibliothèque Python sur les :ref:" +"`encodages standards ` pour une liste. Certains " +"encodages ont plusieurs noms ; par exemple, ``'latin-1'``, ``'iso_8859_1'`` " +"et ``'8859'`` sont tous synonymes du même encodage." + +#: ../Doc/howto/unicode.rst:253 +msgid "" +"One-character Unicode strings can also be created with the :func:`chr` built-" +"in function, which takes integers and returns a Unicode string of length 1 " +"that contains the corresponding code point. The reverse operation is the " +"built-in :func:`ord` function that takes a one-character Unicode string and " +"returns the code point value::" +msgstr "" +"Des chaînes Unicode à un caractère peuvent également être créées avec la " +"fonction native :func:`chr`, qui prend des entiers et renvoie une chaîne " +"Unicode de longueur 1 qui contient le point de code correspondant. " +"L'opération inverse est la fonction native :func:`ord` qui prend une chaîne " +"Unicode d'un caractère et renvoie la valeur du point de code ::" + +#: ../Doc/howto/unicode.rst:265 +msgid "Converting to Bytes" +msgstr "Conversion en octets" + +#: ../Doc/howto/unicode.rst:267 +msgid "" +"The opposite method of :meth:`bytes.decode` is :meth:`str.encode`, which " +"returns a :class:`bytes` representation of the Unicode string, encoded in " +"the requested *encoding*." +msgstr "" +"La méthode inverse de :meth:`bytes.decode` est :meth:`str.encode`, qui " +"renvoie une représentation :class:`bytes` de la chaîne Unicode, codée dans " +"l’encodage *encoding* demandé." + +#: ../Doc/howto/unicode.rst:271 +msgid "" +"The *errors* parameter is the same as the parameter of the :meth:`~bytes." +"decode` method but supports a few more possible handlers. As well as " +"``'strict'``, ``'ignore'``, and ``'replace'`` (which in this case inserts a " +"question mark instead of the unencodable character), there is also " +"``'xmlcharrefreplace'`` (inserts an XML character reference), " +"``backslashreplace`` (inserts a ``\\uNNNN`` escape sequence) and " +"``namereplace`` (inserts a ``\\N{...}`` escape sequence)." +msgstr "" +"Le paramètre *errors* est le même que le paramètre de la méthode :meth:" +"`~bytes.decode` mais possède quelques gestionnaires supplémentaires. En plus " +"de ``'strict'``, ``'ignore'`` et ``'remplace'`` (qui dans ce cas insère un " +"point d'interrogation au lieu du caractère non codable), il y a aussi " +"``'xmlcharrefreplace'`` (insère une référence XML), ``backslashreplace`` " +"(insère une séquence ``\\uNNNN``) et ``namereplace`` (insère une séquence ``" +"\\N{...}``)." + +#: ../Doc/howto/unicode.rst:279 +msgid "The following example shows the different results::" +msgstr "L'exemple suivant montre les différents résultats ::" + +#: ../Doc/howto/unicode.rst:300 +msgid "" +"The low-level routines for registering and accessing the available encodings " +"are found in the :mod:`codecs` module. Implementing new encodings also " +"requires understanding the :mod:`codecs` module. However, the encoding and " +"decoding functions returned by this module are usually more low-level than " +"is comfortable, and writing new encodings is a specialized task, so the " +"module won't be covered in this HOWTO." +msgstr "" +"Les routines de bas niveau pour enregistrer et accéder aux encodages " +"disponibles se trouvent dans le module :mod:`codecs`. L'implémentation de " +"nouveaux encodages nécessite également de comprendre le module :mod:" +"`codecs`. Cependant, les fonctions d'encodage et de décodage renvoyées par " +"ce module sont généralement de bas-niveau pour être facilement utilisées et " +"l'écriture de nouveaux encodages est une tâche très spécialisée, donc le " +"module ne sera pas couvert dans ce guide." + +#: ../Doc/howto/unicode.rst:309 +msgid "Unicode Literals in Python Source Code" +msgstr "Littéraux Unicode dans le code source Python" + +#: ../Doc/howto/unicode.rst:311 +msgid "" +"In Python source code, specific Unicode code points can be written using the " +"``\\u`` escape sequence, which is followed by four hex digits giving the " +"code point. The ``\\U`` escape sequence is similar, but expects eight hex " +"digits, not four::" +msgstr "" +"Dans le code source Python, des points de code Unicode spécifiques peuvent " +"être écrits en utilisant la séquence d'échappement ``\\u``, suivie de quatre " +"chiffres hexadécimaux donnant le point de code. La séquence d'échappement ``" +"\\U`` est similaire, mais attend huit chiffres hexadécimaux, pas quatre ::" + +#: ../Doc/howto/unicode.rst:323 +msgid "" +"Using escape sequences for code points greater than 127 is fine in small " +"doses, but becomes an annoyance if you're using many accented characters, as " +"you would in a program with messages in French or some other accent-using " +"language. You can also assemble strings using the :func:`chr` built-in " +"function, but this is even more tedious." +msgstr "" +"L'utilisation de séquences d'échappement pour des points de code supérieurs " +"à 127 est acceptable à faible dose, mais devient gênante si vous utilisez " +"beaucoup de caractères accentués, comme c'est le cas dans un programme avec " +"des messages en français ou dans une autre langue utilisant des lettres " +"accentuées. Vous pouvez également assembler des chaînes de caractères à " +"l'aide de la fonction native :func:`chr`, mais c'est encore plus fastidieux." + +#: ../Doc/howto/unicode.rst:329 +msgid "" +"Ideally, you'd want to be able to write literals in your language's natural " +"encoding. You could then edit Python source code with your favorite editor " +"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:334 +msgid "" +"Python supports writing source code in UTF-8 by default, but you can use " +"almost any encoding if you declare the encoding being used. This is done by " +"including a special comment as either the first or second line of the source " +"file::" +msgstr "" +"Python considère que le code source est écrit en UTF-8 par défaut, mais vous " +"pouvez utiliser presque n'importe quel encodage si vous déclarez l'encodage " +"utilisé. Cela se fait en incluant un commentaire spécial sur la première ou " +"la deuxième ligne du fichier source ::" + +#: ../Doc/howto/unicode.rst:344 +msgid "" +"The syntax is inspired by Emacs's notation for specifying variables local to " +"a file. Emacs supports many different variables, but Python only supports " +"'coding'. The ``-*-`` symbols indicate to Emacs that the comment is " +"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:350 +msgid "" +"If you don't include such a comment, the default encoding used will be UTF-8 " +"as already mentioned. See also :pep:`263` for more information." +msgstr "" +"Si vous n'incluez pas un tel commentaire, l'encodage par défaut est UTF-8 " +"comme déjà mentionné. Voir aussi la :pep:`263` pour plus d'informations." + +#: ../Doc/howto/unicode.rst:355 +msgid "Unicode Properties" +msgstr "Propriétés Unicode" + +#: ../Doc/howto/unicode.rst:357 +msgid "" +"The Unicode specification includes a database of information about code " +"points. For each defined code point, the information includes the " +"character's name, its category, the numeric value if applicable (for " +"characters representing numeric concepts such as the Roman numerals, " +"fractions such as one-third and four-fifths, etc.). There are also display-" +"related properties, such as how to use the code point in bidirectional text." +msgstr "" +"La spécification Unicode inclut une base de données d'informations sur les " +"points de code. Pour chaque point de code défini, l'information comprend le " +"nom du caractère, sa catégorie, la valeur numérique s'il y a lieu (pour les " +"caractères représentant des concepts numériques tels que les chiffres " +"romains, les fractions telles qu'un tiers et quatre cinquièmes, etc.). Il " +"existe également des propriétés liées à l'affichage, telles que " +"l'utilisation du point de code dans un texte bidirectionnel." + +#: ../Doc/howto/unicode.rst:365 +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:379 +msgid "When run, this prints:" +msgstr "Si vous l'exécutez, cela affiche :" + +#: ../Doc/howto/unicode.rst:390 +msgid "" +"The category codes are abbreviations describing the nature of the character. " +"These are grouped into categories such as \"Letter\", \"Number\", " +"\"Punctuation\", or \"Symbol\", which in turn are broken up into " +"subcategories. To take the codes from the above output, ``'Ll'`` means " +"'Letter, lowercase', ``'No'`` means \"Number, other\", ``'Mn'`` is \"Mark, " +"nonspacing\", and ``'So'`` is \"Symbol, other\". See `the General Category " +"Values section of the Unicode Character Database documentation `_ for a list of category " +"codes." +msgstr "" +"Les codes de catégorie sont des abréviations décrivant la nature du " +"caractère. Celles-ci sont regroupées en catégories telles que « Lettre », " +"« Nombre », « Ponctuation » ou « Symbole », qui sont à leur tour divisées en " +"sous-catégories. Pour prendre par exemple les codes de la sortie ci-dessus, " +"``'Ll'`` signifie « Lettre, minuscules », ``'No'`` signifie « Nombre, " +"autre », ``'Mn'`` est « Marque, non-espaçant », et ``'So'`` est « Symbole, " +"autre ». Voir la section `Valeurs générales des catégories de la " +"documentation de la base de données de caractères Unicode `_ (ressource en anglais) " +"pour une liste de codes de catégories." + +#: ../Doc/howto/unicode.rst:401 +msgid "Comparing Strings" +msgstr "Comparaison de chaînes de caractères" + +#: ../Doc/howto/unicode.rst:403 +msgid "" +"Unicode adds some complication to comparing strings, because the same set of " +"characters can be represented by different sequences of code points. For " +"example, a letter like 'ê' can be represented as a single code point U+00EA, " +"or as U+0065 U+0302, which is the code point for 'e' followed by a code " +"point for 'COMBINING CIRCUMFLEX ACCENT'. These will produce the same output " +"when printed, but one is a string of length 1 and the other is of length 2." +msgstr "" +"Unicode ajoute une certaine complication à la comparaison des chaînes de " +"caractères, car le même jeu de caractères peut être représenté par " +"différentes séquences de points de code. Par exemple, une lettre comme « ê » " +"peut être représentée comme un point de code unique ``U+00EA``, ou comme ``U" +"+0065 U+0302``, qui est le point de code pour « e » suivi d'un point de code " +"pour ``COMBINING CIRCUMFLEX ACCENT``. Celles-ci produisent le même résultat " +"lorsqu'elles sont affichées, mais l'une est une chaîne de caractères de " +"longueur 1 et l'autre de longueur 2." + +#: ../Doc/howto/unicode.rst:411 +msgid "" +"One tool for a case-insensitive comparison is the :meth:`~str.casefold` " +"string method that converts a string to a case-insensitive form following an " +"algorithm described by the Unicode Standard. This algorithm has special " +"handling for characters such as the German letter 'ß' (code point U+00DF), " +"which becomes the pair of lowercase letters 'ss'." +msgstr "" +"Un outil pour une comparaison insensible à la casse est la méthode :meth:" +"`~str.casefold` qui convertit une chaîne en une forme insensible à la casse " +"suivant un algorithme décrit par le standard Unicode. Cet algorithme a un " +"traitement spécial pour les caractères tels que la lettre allemande " +"« *ß* » (point de code ``U+00DF``), qui devient la paire de lettres " +"minuscules « *ss* »." + +#: ../Doc/howto/unicode.rst:424 +msgid "" +"A second tool is the :mod:`unicodedata` module's :func:`~unicodedata." +"normalize` function that converts strings to one of several normal forms, " +"where letters followed by a combining character are replaced with single " +"characters. :func:`normalize` can be used to perform string comparisons " +"that won't falsely report inequality if two strings use combining characters " +"differently:" +msgstr "" +"Un deuxième outil est la fonction :mod:`unicodedata` du module :func:" +"`~unicodedata.normalize` qui convertit les chaînes de caractères en l'une de " +"plusieurs formes normales, où les lettres suivies d'un caractère de " +"combinaison sont remplacées par des caractères simples. :func:`normalize` " +"peut être utilisée pour effectuer des comparaisons qui ne rapportent pas " +"faussement les inégalités si deux chaînes utilisent différents caractères de " +"combinaison :" + +#: ../Doc/howto/unicode.rst:447 +msgid "When run, this outputs:" +msgstr "Si vous l'exécutez, cela affiche :" + +#: ../Doc/howto/unicode.rst:456 +msgid "" +"The first argument to the :func:`~unicodedata.normalize` function is a " +"string giving the desired normalization form, which can be one of 'NFC', " +"'NFKC', 'NFD', and 'NFKD'." +msgstr "" +"Le premier argument de la fonction :func:`~unicodedata.normalize` est une " +"chaîne de caractères donnant la forme de normalisation désirée, qui peut " +"être une de celles-ci : ``'NFC'``, ``'NFKC'``, ``'NFD'`` et ``'NFKD'``." + +#: ../Doc/howto/unicode.rst:460 +msgid "The Unicode Standard also specifies how to do caseless comparisons::" +msgstr "" +"La norme Unicode spécifie également comment faire des comparaisons " +"insensibles à la casse ::" + +#: ../Doc/howto/unicode.rst:476 +msgid "" +"This will print ``True``. (Why is :func:`NFD` invoked twice? Because there " +"are a few characters that make :meth:`casefold` return a non-normalized " +"string, so the result needs to be normalized again. See section 3.13 of the " +"Unicode Standard for a discussion and an example.)" +msgstr "" +"Ceci affiche ``True``. (Pourquoi :func:`NFD` est-il invoqué deux fois ? " +"Parce qu'il y a quelques caractères qui font que :meth:`casefold` renvoie " +"une chaîne non normalisée, donc le résultat doit être normalisé à nouveau. " +"Voir la section 3.13 du standard Unicode pour une discussion et un exemple)." + +#: ../Doc/howto/unicode.rst:483 +msgid "Unicode Regular Expressions" +msgstr "Expressions régulières Unicode" + +#: ../Doc/howto/unicode.rst:485 +msgid "" +"The regular expressions supported by the :mod:`re` module can be provided " +"either as bytes or strings. Some of the special character sequences such as " +"``\\d`` and ``\\w`` have different meanings depending on whether the pattern " +"is supplied as bytes or a string. For example, ``\\d`` will match the " +"characters ``[0-9]`` in bytes but in strings will match any character that's " +"in the ``'Nd'`` category." +msgstr "" +"Les expressions régulières gérées par le module :mod:`re` peuvent être " +"fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de " +"caractères spéciaux telles que ``\\d`` et ``\\w`` ont des significations " +"différentes selon que le motif est fourni en octets ou en texte. Par " +"exemple, ``\\d`` correspond aux caractères ``[0-9]`` en octets mais dans les " +"chaînes de caractères correspond à tout caractère de la catégorie ``'Nd'``." + +#: ../Doc/howto/unicode.rst:492 +msgid "" +"The string in this example has the number 57 written in both Thai and Arabic " +"numerals::" +msgstr "" +"Dans cet exemple, la chaîne contient le nombre 57 écrit en chiffres arabes " +"et thaïlandais ::" + +#: ../Doc/howto/unicode.rst:502 +msgid "" +"When executed, ``\\d+`` will match the Thai numerals and print them out. If " +"you supply the :const:`re.ASCII` flag to :func:`~re.compile`, ``\\d+`` will " +"match the substring \"57\" instead." +msgstr "" +"Une fois exécuté, ``\\d+`` correspond aux chiffres thaïlandais et les " +"affiche. Si vous fournissez le drapeau :const:`re.ASCII` à :func:`~re." +"compile`, ``\\d+`` correspond cette fois à la chaîne \"57\"." + +#: ../Doc/howto/unicode.rst:506 +msgid "" +"Similarly, ``\\w`` matches a wide variety of Unicode characters but only " +"``[a-zA-Z0-9_]`` in bytes or if :const:`re.ASCII` is supplied, and ``\\s`` " +"will match either Unicode whitespace characters or ``[ \\t\\n\\r\\f\\v]``." +msgstr "" +"De même, ``\\w`` correspond à une grande variété de caractères Unicode mais " +"seulement ``[a-zA-Z0-9_]`` en octets (ou si :const:`re.ASCII` est fourni) et " +"``\\s`` correspond soit aux caractères blancs Unicode soit aux caractères " +"``[ \\t\\n\\r\\f\\v]``." + +#: ../Doc/howto/unicode.rst:517 +msgid "Some good alternative discussions of Python's Unicode support are:" +msgstr "" +"Quelques bonnes discussions alternatives sur la gestion d'Unicode par Python " +"sont :" + +#: ../Doc/howto/unicode.rst:519 +msgid "" +"`Processing Text Files in Python 3 `_, by Nick Coghlan." +msgstr "" +"`Processing Text Files in Python 3 `_, par Nick Coghlan." + +#: ../Doc/howto/unicode.rst:520 +msgid "" +"`Pragmatic Unicode `_, a PyCon " +"2012 presentation by Ned Batchelder." +msgstr "" +"`Pragmatic Unicode `_, une " +"présentation *PyCon* 2012 par Ned Batchelder." + +#: ../Doc/howto/unicode.rst:522 +msgid "" +"The :class:`str` type is described in the Python library reference at :ref:" +"`textseq`." +msgstr "" +"Le type :class:`str` est décrit dans la référence de la bibliothèque Python " +"à :ref:`textseq`." + +#: ../Doc/howto/unicode.rst:525 +msgid "The documentation for the :mod:`unicodedata` module." +msgstr "La documentation du module :mod:`unicodedata`." + +#: ../Doc/howto/unicode.rst:527 +msgid "The documentation for the :mod:`codecs` module." +msgstr "La documentation du module :mod:`codecs`." + +#: ../Doc/howto/unicode.rst:529 +msgid "" +"Marc-André Lemburg gave `a presentation titled \"Python and Unicode\" (PDF " +"slides) `_ at " +"EuroPython 2002. The slides are an excellent overview of the design of " +"Python 2's Unicode features (where the Unicode string type is called " +"``unicode`` and literals start with ``u``)." +msgstr "" +"Marc-André Lemburg a donné une présentation intitulée `« Python et " +"Unicode » (diapositives PDF) `_ à *EuroPython* 2002. Les diapositives sont un excellent " +"aperçu de la conception des fonctionnalités Unicode de Python 2 (où le type " +"de chaîne Unicode est appelé ``unicode`` et les littéraux commencent par " +"``u``)." + +#: ../Doc/howto/unicode.rst:537 +msgid "Reading and Writing Unicode Data" +msgstr "Lecture et écriture de données Unicode" + +#: ../Doc/howto/unicode.rst:539 +msgid "" +"Once you've written some code that works with Unicode data, the next problem " +"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:543 +msgid "" +"It's possible that you may not need to do anything depending on your input " +"sources and output destinations; you should check whether the libraries used " +"in your application support Unicode natively. XML parsers often return " +"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:549 +msgid "" +"Unicode data is usually converted to a particular encoding before it gets " +"written to disk or sent over a socket. It's possible to do all the work " +"yourself: open a file, read an 8-bit bytes object from it, and convert the " +"bytes with ``bytes.decode(encoding)``. However, the manual approach is not " +"recommended." +msgstr "" +"Les données Unicode sont généralement converties en un encodage particulier " +"avant d'être écrites sur le disque ou envoyées sur un connecteur réseau. Il " +"est possible de faire tout le travail vous-même : ouvrir un fichier, lire un " +"élément 8-bits, puis convertir les octets avec ``bytes.decode(encoding)``. " +"Cependant, l'approche manuelle n'est pas recommandée." + +#: ../Doc/howto/unicode.rst:554 +msgid "" +"One problem is the multi-byte nature of encodings; one Unicode character can " +"be represented by several bytes. If you want to read the file in arbitrary-" +"sized chunks (say, 1024 or 4096 bytes), you need to write error-handling " +"code to catch the case where only part of the bytes encoding a single " +"Unicode character are read at the end of a chunk. One solution would be to " +"read the entire file into memory and then perform the decoding, but that " +"prevents you from working with files that are extremely large; if you need " +"to read a 2 GiB file, you need 2 GiB of RAM. (More, really, since for at " +"least a moment you'd need to have both the encoded string and its Unicode " +"version in memory.)" +msgstr "" +"La nature multi-octets des encodages pose problème ; un caractère Unicode " +"peut être représenté par plusieurs octets. Si vous voulez lire le fichier " +"par morceaux de taille arbitraire (disons 1024 ou 4096 octets), vous devez " +"écrire un code de gestion des erreurs pour détecter le cas où une partie " +"seulement des octets codant un seul caractère Unicode est lue à la fin d'un " +"morceau. Une solution serait de lire le fichier entier en mémoire et " +"d'effectuer le décodage, mais cela vous empêche de travailler avec des " +"fichiers extrêmement volumineux ; si vous avez besoin de lire un fichier de " +"2 Gio, vous avez besoin de 2 Gio de RAM (plus que ça, en fait, puisque " +"pendant un moment, vous aurez besoin d'avoir à la fois la chaîne encodée et " +"sa version Unicode en mémoire)." + +#: ../Doc/howto/unicode.rst:564 +msgid "" +"The solution would be to use the low-level decoding interface to catch the " +"case of partial coding sequences. The work of implementing this has already " +"been done for you: the built-in :func:`open` function can return a file-like " +"object that assumes the file's contents are in a specified encoding and " +"accepts Unicode parameters for methods such as :meth:`~io.TextIOBase.read` " +"and :meth:`~io.TextIOBase.write`. This works through :func:`open`\\'s " +"*encoding* and *errors* parameters which are interpreted just like those in :" +"meth:`str.encode` and :meth:`bytes.decode`." +msgstr "" +"La solution serait d'utiliser l'interface de décodage de bas-niveau pour " +"intercepter le cas des séquences d'encodage incomplètes. Ce travail " +"d'implémentation a déjà été fait pour vous : la fonction native :func:`open` " +"peut renvoyer un objet de type fichier qui suppose que le contenu du fichier " +"est dans un encodage spécifié et accepte les paramètres Unicode pour des " +"méthodes telles que :meth:`~io.TextIOBase.read` et :meth:`~io.TextIOBase." +"write`. Ceci fonctionne grâce aux paramètres *encoding* et *errors* de :func:" +"`open` qui sont interprétés comme ceux de :meth:`str.encode` et :meth:`bytes." +"decode`." + +#: ../Doc/howto/unicode.rst:573 +msgid "Reading Unicode from a file is therefore simple::" +msgstr "Lire de l'Unicode à partir d'un fichier est donc simple ::" + +#: ../Doc/howto/unicode.rst:579 +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:587 +msgid "" +"The Unicode character ``U+FEFF`` is used as a byte-order mark (BOM), and is " +"often written as the first character of a file in order to assist with " +"autodetection of the file's byte ordering. Some encodings, such as UTF-16, " +"expect a BOM to be present at the start of a file; when such an encoding is " +"used, the BOM will be automatically written as the first character and will " +"be silently dropped when the file is read. There are variants of these " +"encodings, such as 'utf-16-le' and 'utf-16-be' for little-endian and big-" +"endian encodings, that specify one particular byte ordering and don't skip " +"the BOM." +msgstr "" +"Le caractère Unicode ``U+FEFFF`` est utilisé comme marque pour indiquer le " +"boutisme (c'est-à-dire l'ordre dans lequel les octets sont placés pour " +"indiquer une valeur sur plusieurs octets, *byte-order mark* en anglais ou " +"*BOM*), et est souvent écrit en tête (premier caractère) d'un fichier afin " +"d'aider à l'auto-détection du boutisme du fichier. Certains encodages, comme " +"UTF-16, s'attendent à ce qu'une *BOM* soit présente au début d'un fichier ; " +"lorsqu'un tel encodage est utilisé, la *BOM* sera automatiquement écrite " +"comme premier caractère et sera silencieusement retirée lorsque le fichier " +"sera lu. Il existe des variantes de ces encodages, comme ``utf-16-le`` et " +"``utf-16-be`` pour les encodages petit-boutiste et gros-boutiste, qui " +"spécifient un ordre d'octets donné et ne sautent pas la *BOM*." + +#: ../Doc/howto/unicode.rst:596 +msgid "" +"In some areas, it is also convention to use a \"BOM\" at the start of UTF-8 " +"encoded files; the name is misleading since UTF-8 is not byte-order " +"dependent. The mark simply announces that the file is encoded in UTF-8. For " +"reading such files, use the 'utf-8-sig' codec to automatically skip the mark " +"if present." +msgstr "" +"Dans certains cas, il est également d'usage d'utiliser une *BOM* au début " +"des fichiers encodés en UTF-8 ; le nom est trompeur puisque l'UTF-8 ne " +"dépend pas de l'ordre des octets. La marque annonce simplement que le " +"fichier est encodé en UTF-8. Pour lire ces fichiers, utilisez le codec " +"``utf-8-sig`` pour sauter automatiquement la marque si elle est présente." + +#: ../Doc/howto/unicode.rst:603 +msgid "Unicode filenames" +msgstr "Noms de fichiers Unicode" + +#: ../Doc/howto/unicode.rst:605 +msgid "" +"Most of the operating systems in common use today support filenames that " +"contain arbitrary Unicode characters. Usually this is implemented by " +"converting the Unicode string into some encoding that varies depending on " +"the system. Today Python is converging on using UTF-8: Python on MacOS has " +"used UTF-8 for several versions, and Python 3.6 switched to using UTF-8 on " +"Windows as well. On Unix systems, there will only be a filesystem encoding " +"if you've set the ``LANG`` or ``LC_CTYPE`` environment variables; if you " +"haven't, the default encoding is again UTF-8." +msgstr "" +"La plupart des systèmes d'exploitation couramment utilisés aujourd'hui " +"prennent en charge les noms de fichiers qui contiennent des caractères " +"Unicode arbitraires. Habituellement, ceci est implémenté en convertissant la " +"chaîne Unicode en un encodage qui varie en fonction du système. Aujourd'hui, " +"Python converge vers l'utilisation d'UTF-8 : Python sous MacOS utilise UTF-8 " +"depuis plusieurs versions et Python 3.6 sous Windows est passé à UTF-8 " +"également. Sur les systèmes Unix, il n'y aura un encodage pour le système de " +"fichiers que si vous avez défini les variables d'environnement ``LANG`` ou " +"``LC_CTYPE`` ; sinon, l'encodage par défaut est UTF-8." + +#: ../Doc/howto/unicode.rst:615 +msgid "" +"The :func:`sys.getfilesystemencoding` function returns the encoding to use " +"on your current system, in case you want to do the encoding manually, but " +"there's not much reason to bother. When opening a file for reading or " +"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:625 +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:628 +msgid "" +"The :func:`os.listdir` function returns filenames, which raises an issue: " +"should it return the Unicode version of filenames, or should it return bytes " +"containing the encoded versions? :func:`os.listdir` can do both, depending " +"on whether you provided the directory path as bytes or a Unicode string. If " +"you pass a Unicode string as the path, filenames will be decoded using the " +"filesystem's encoding and a list of Unicode strings will be returned, while " +"passing a byte path will return the filenames as bytes. For example, " +"assuming the default filesystem encoding is UTF-8, running the following " +"program::" +msgstr "" +"La fonction :func:`os.listdir` renvoie des noms de fichiers, ce qui soulève " +"un problème : doit-elle renvoyer la version Unicode des noms de fichiers ou " +"doit-elle renvoyer des chaînes d'octets contenant les versions encodées ? :" +"func:`os.listdir` peut faire les deux, selon que vous fournissez le chemin " +"du répertoire en chaîne d'octets ou en chaîne Unicode. Si vous passez une " +"chaîne Unicode comme chemin d'accès, les noms de fichiers sont décodés en " +"utilisant l'encodage du système de fichiers et une liste de chaînes Unicode " +"est renvoyée, tandis que passer un chemin d'accès en chaîne d'octets renvoie " +"les noms de fichiers comme chaîne d'octets. Par exemple, en supposant que " +"l'encodage par défaut du système de fichiers est UTF-8, exécuter le " +"programme suivant ::" + +#: ../Doc/howto/unicode.rst:646 +msgid "will produce the following output:" +msgstr "produit la sortie suivante :" + +#: ../Doc/howto/unicode.rst:654 +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:657 +msgid "" +"Note that on most occasions, you should can just stick with using Unicode " +"with these APIs. The bytes APIs should only be used on systems where " +"undecodable file names can be present; that's pretty much only Unix systems " +"now." +msgstr "" +"Notez que, dans la plupart des cas, il convient de vous en tenir à " +"l'utilisation d'Unicode avec ces *APIs*. Les *API* d'octets ne devraient " +"être utilisées que sur les systèmes où des noms de fichiers non décodables " +"peuvent être présents. Cela ne concerne pratiquement que des systèmes Unix " +"maintenant." + +#: ../Doc/howto/unicode.rst:664 +msgid "Tips for Writing Unicode-aware Programs" +msgstr "Conseils pour écrire des programmes compatibles Unicode" + +#: ../Doc/howto/unicode.rst:666 +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:669 +msgid "The most important tip is:" +msgstr "Le conseil le plus important est :" + +#: ../Doc/howto/unicode.rst:671 +msgid "" +"Software should only work with Unicode strings internally, decoding the " +"input data as soon as possible and encoding the output only at the end." +msgstr "" +"Il convient que le logiciel ne traite que des chaînes Unicode en interne, " +"décodant les données d'entrée dès que possible et encodant la sortie " +"uniquement à la fin." + +#: ../Doc/howto/unicode.rst:674 +msgid "" +"If you attempt to write processing functions that accept both Unicode and " +"byte strings, you will find your program vulnerable to bugs wherever you " +"combine the two different kinds of strings. There is no automatic encoding " +"or decoding: if you do e.g. ``str + bytes``, a :exc:`TypeError` will be " +"raised." +msgstr "" +"Si vous essayez d'écrire des fonctions de traitement qui acceptent à la fois " +"les chaînes Unicode et les chaînes d'octets, les possibilités d'occurrences " +"de bogues dans votre programme augmentent partout où vous combinez les deux " +"différents types de chaînes. Il n'y a pas d'encodage ou de décodage " +"automatique : si vous faites par exemple ``str + octets``, une :exc:" +"`TypeError` est levée." + +#: ../Doc/howto/unicode.rst:679 +msgid "" +"When using data coming from a web browser or some other untrusted source, a " +"common technique is to check for illegal characters in a string before using " +"the string in a generated command line or storing it in a database. If " +"you're doing this, be careful to check the decoded string, not the encoded " +"bytes data; some encodings may have interesting properties, such as not " +"being bijective or not being fully ASCII-compatible. This is especially " +"true if the input data also specifies the encoding, since the attacker can " +"then choose a clever way to hide malicious text in the encoded bytestream." +msgstr "" +"Lors de l'utilisation de données provenant d'un navigateur Web ou d'une " +"autre source non fiable, une technique courante consiste à vérifier la " +"présence de caractères illégaux dans une chaîne de caractères avant de " +"l'utiliser pour générer une ligne de commande ou de la stocker dans une base " +"de données. Si vous le faites, vérifiez bien la chaîne décodée, pas les " +"données d'octets codés ; certains encodages peuvent avoir des propriétés " +"intéressantes, comme ne pas être bijectifs ou ne pas être entièrement " +"compatibles avec l'ASCII. C'est particulièrement vrai si l'encodage est " +"spécifié explicitement dans vos données d'entrée, car l'attaquant peut alors " +"choisir un moyen intelligent de cacher du texte malveillant dans le flux de " +"données encodé." + +#: ../Doc/howto/unicode.rst:690 +msgid "Converting Between File Encodings" +msgstr "Conversion entre les encodages de fichiers" + +#: ../Doc/howto/unicode.rst:692 +msgid "" +"The :class:`~codecs.StreamRecoder` class can transparently convert between " +"encodings, taking a stream that returns data in encoding #1 and behaving " +"like a stream returning data in encoding #2." +msgstr "" +"La classe :class:`~codecs.StreamRecoder` peut convertir de manière " +"transparente entre les encodages : prenant un flux qui renvoie des données " +"dans l'encodage #1, elle se comporte comme un flux qui renvoie des données " +"dans l'encodage #2." + +#: ../Doc/howto/unicode.rst:696 +msgid "" +"For example, if you have an input file *f* that's in Latin-1, you can wrap " +"it with a :class:`~codecs.StreamRecoder` to return bytes encoded in UTF-8::" +msgstr "" +"Par exemple, si vous avez un fichier d'entrée *f* qui est en Latin-1, vous " +"pouvez l'encapsuler dans un :class:`~codecs.StreamRecoder` pour qu'il " +"renvoie des octets encodés en UTF-8 ::" + +#: ../Doc/howto/unicode.rst:710 +msgid "Files in an Unknown Encoding" +msgstr "Fichiers dans un encodage inconnu" + +#: ../Doc/howto/unicode.rst:712 +msgid "" +"What can you do if you need to make a change to a file, but don't know the " +"file's encoding? If you know the encoding is ASCII-compatible and only want " +"to examine or modify the ASCII parts, you can open the file with the " +"``surrogateescape`` error handler::" +msgstr "" +"Vous avez besoin de modifier un fichier, mais vous ne connaissez pas son " +"encodage ? Si vous savez que l'encodage est compatible ASCII et que vous " +"voulez seulement examiner ou modifier les parties ASCII, vous pouvez ouvrir " +"le fichier avec le gestionnaire d'erreurs ``surrogateescape`` ::" + +#: ../Doc/howto/unicode.rst:726 +msgid "" +"The ``surrogateescape`` error handler will decode any non-ASCII bytes as " +"code points in a special range running from U+DC80 to U+DCFF. These code " +"points will then turn back into the same bytes when the ``surrogateescape`` " +"error handler is used to encode the data and write it back out." +msgstr "" +"Le gestionnaire d'erreurs ``surrogateescape`` décode tous les octets non-" +"ASCII comme points de code dans une plage spéciale allant de ``U+DC80`` à ``U" +"+DCFF``. Ces points de code redeviennent alors les mêmes octets lorsque le " +"gestionnaire d'erreurs ``surrogateescape`` est utilisé pour encoder les " +"données et les réécrire." + +#: ../Doc/howto/unicode.rst:736 +msgid "" +"One section of `Mastering Python 3 Input/Output `_, a PyCon 2010 talk by David " +"Beazley, discusses text processing and binary data handling." +msgstr "" +"Une partie de la conférence `Mastering Python 3 Input/Output `_ (ressource en anglais), " +"donnée lors de *PyCon* 2010 de David Beazley, parle du traitement de texte " +"et du traitement des données binaires." + +#: ../Doc/howto/unicode.rst:740 +msgid "" +"The `PDF slides for Marc-André Lemburg's presentation \"Writing Unicode-" +"aware Applications in Python\" `_ discuss questions of " +"character encodings as well as how to internationalize and localize an " +"application. These slides cover Python 2.x only." +msgstr "" +"Le `PDF du diaporama de la présentation de Marc-André Lemburg \"Writing " +"Unicodeaware Applications in Python\" `_ (ressource en " +"anglais) traite des questions d'encodage de caractères ainsi que de " +"l'internationalisation et de la localisation d'une application. Ces " +"diapositives ne couvrent que Python 2.x." + +#: ../Doc/howto/unicode.rst:746 +msgid "" +"`The Guts of Unicode in Python `_ is a PyCon 2013 talk by Benjamin Peterson that " +"discusses the internal Unicode representation in Python 3.3." +msgstr "" +"`The Guts of Unicode in Python `_ (ressource en anglais) est une conférence *PyCon* 2013 " +"donnée par Benjamin Peterson qui traite de la représentation interne Unicode " +"en Python 3.3." + +#: ../Doc/howto/unicode.rst:753 +msgid "Acknowledgements" +msgstr "Remerciements" + +#: ../Doc/howto/unicode.rst:755 +msgid "" +"The initial draft of this document was written by Andrew Kuchling. It has " +"since been revised further by Alexander Belopolsky, Georg Brandl, Andrew " +"Kuchling, and Ezio Melotti." +msgstr "" +"La première ébauche de ce document a été rédigée par Andrew Kuchling. Il a " +"depuis été révisé par Alexander Belopolsky, Georg Brandl, Andrew Kuchling et " +"Ezio Melotti." + +#: ../Doc/howto/unicode.rst:759 +msgid "" +"Thanks to the following people who have noted errors or offered suggestions " +"on this article: Éric Araujo, Nicholas Bastin, Nick Coghlan, Marius " +"Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von Löwis, " +"Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham Wideman." +msgstr "" +"Merci aux personnes suivantes qui ont noté des erreurs ou qui ont fait des " +"suggestions sur cet article : Éric Araujo, Nicholas Bastin, Nick Coghlan, " +"Marius Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von " +"Löwis, Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham " +"Wideman." + +#~ msgid "History of Character Codes" +#~ msgstr "Histoire des codes de caractères" + +#~ msgid "" +#~ "In 1968, the American Standard Code for Information Interchange, better " +#~ "known by its acronym ASCII, was standardized. ASCII defined numeric " +#~ "codes for various characters, with the numeric values running from 0 to " +#~ "127. For example, the lowercase letter 'a' is assigned 97 as its code " +#~ "value." +#~ msgstr "" +#~ "En 1968, l'*American Standard Code for Information Interchange*, mieux " +#~ "connu sous son acronyme *ASCII*, a été normalisé. L'ASCII définissait " +#~ "des codes numériques pour différents caractères, les valeurs numériques " +#~ "s'étendant de 0 à 127. Par exemple, la lettre minuscule « a » est " +#~ "assignée à 97 comme valeur de code." + +#~ msgid "" +#~ "ASCII was an American-developed standard, so it only defined unaccented " +#~ "characters. There was an 'e', but no 'é' or 'Í'. This meant that " +#~ "languages which required accented characters couldn't be faithfully " +#~ "represented in ASCII. (Actually the missing accents matter for English, " +#~ "too, which contains words such as 'naïve' and 'café', and some " +#~ "publications have house styles which require spellings such as " +#~ "'coöperate'.)" +#~ msgstr "" +#~ "ASCII était une norme développée par les États-Unis, elle ne définissait " +#~ "donc que des caractères non accentués. Il y avait « e », mais pas « é » " +#~ "ou « Í ». Cela signifiait que les langues qui nécessitaient des " +#~ "caractères accentués ne pouvaient pas être fidèlement représentées en " +#~ "ASCII. (En fait, les accents manquants importaient pour l'anglais aussi, " +#~ "qui contient des mots tels que « naïve » et « café », et certaines " +#~ "publications ont des styles propres qui exigent des orthographes tels que " +#~ "« *coöperate* ».)" + +#~ msgid "" +#~ "For a while people just wrote programs that didn't display accents. In " +#~ "the mid-1980s an Apple II BASIC program written by a French speaker might " +#~ "have lines like these:" +#~ msgstr "" +#~ "Pendant un certain temps, les gens ont juste écrit des programmes qui " +#~ "n'affichaient pas d'accents. Au milieu des années 1980, un programme " +#~ "Apple II BASIC écrit par un français pouvait avoir des lignes comme " +#~ "celles-ci ::" + +#~ msgid "" +#~ "Those messages should contain accents (terminée, paramètre, enregistrés) " +#~ "and they just look wrong to someone who can read French." +#~ msgstr "" +#~ "Ces messages devraient contenir des accents (terminée, paramètre, " +#~ "enregistrés) et ils ont juste l'air anormaux à quelqu'un lisant le " +#~ "français." + +#~ msgid "" +#~ "In the 1980s, almost all personal computers were 8-bit, meaning that " +#~ "bytes could hold values ranging from 0 to 255. ASCII codes only went up " +#~ "to 127, so some machines assigned values between 128 and 255 to accented " +#~ "characters. Different machines had different codes, however, which led " +#~ "to problems exchanging files. Eventually various commonly used sets of " +#~ "values for the 128--255 range emerged. Some were true standards, defined " +#~ "by the International Organization for Standardization, and some were *de " +#~ "facto* conventions that were invented by one company or another and " +#~ "managed to catch on." +#~ msgstr "" +#~ "Dans les années 1980, presque tous les ordinateurs personnels étaient à 8 " +#~ "bits, ce qui signifie que les octets pouvaient contenir des valeurs " +#~ "allant de 0 à 255. Les codes ASCII allaient seulement jusqu'à 127, alors " +#~ "certaines machines ont assigné les valeurs entre 128 et 255 à des " +#~ "caractères accentués. Différentes machines avaient des codes différents, " +#~ "cependant, ce qui a conduit à des problèmes d'échange de fichiers. " +#~ "Finalement, divers ensembles de valeurs couramment utilisés pour la gamme " +#~ "128--255 ont émergé. Certains étaient de véritables normes, définies par " +#~ "l'Organisation internationale de normalisation, et certaines étaient des " +#~ "conventions *de facto* qui ont été inventées par une entreprise ou une " +#~ "autre et qui ont fini par se répandre." + +#~ msgid "" +#~ "255 characters aren't very many. For example, you can't fit both the " +#~ "accented characters used in Western Europe and the Cyrillic alphabet used " +#~ "for Russian into the 128--255 range because there are more than 128 such " +#~ "characters." +#~ msgstr "" +#~ "255 caractères, ça n'est pas beaucoup. Par exemple, vous ne pouvez pas " +#~ "contenir à la fois les caractères accentués utilisés en Europe " +#~ "occidentale et l'alphabet cyrillique utilisé pour le russe dans la gamme " +#~ "128--255, car il y a plus de 128 de tous ces caractères." + +#~ msgid "" +#~ "You could write files using different codes (all your Russian files in a " +#~ "coding system called KOI8, all your French files in a different coding " +#~ "system called Latin1), but what if you wanted to write a French document " +#~ "that quotes some Russian text? In the 1980s people began to want to " +#~ "solve this problem, and the Unicode standardization effort began." +#~ msgstr "" +#~ "Vous pouviez écrire les fichiers avec des codes différents (tous vos " +#~ "fichiers russes dans un système de codage appelé *KOI8*, tous vos " +#~ "fichiers français dans un système de codage différent appelé *Latin1*), " +#~ "mais que faire si vous souhaitiez écrire un document français citant du " +#~ "texte russe ? Dans les années 80, les gens ont commencé à vouloir " +#~ "résoudre ce problème, et les efforts de standardisation Unicode ont " +#~ "commencé." + +#~ msgid "" +#~ "Unicode started out using 16-bit characters instead of 8-bit characters. " +#~ "16 bits means you have 2^16 = 65,536 distinct values available, making it " +#~ "possible to represent many different characters from many different " +#~ "alphabets; an initial goal was to have Unicode contain the alphabets for " +#~ "every single human language. It turns out that even 16 bits isn't enough " +#~ "to meet that goal, and the modern Unicode specification uses a wider " +#~ "range of codes, 0 through 1,114,111 ( ``0x10FFFF`` in base 16)." +#~ msgstr "" +#~ "Unicode a commencé par utiliser des caractères 16 bits au lieu de 8 bits. " +#~ "16 bits signifie que vous avez 2^16 = 65 536 valeurs distinctes " +#~ "disponibles, ce qui permet de représenter de nombreux caractères " +#~ "différents à partir de nombreux alphabets différents. Un des objectifs " +#~ "initiaux était de faire en sorte que Unicode contienne les alphabets de " +#~ "chaque langue humaine. Il s’avère que même 16 bits ne suffisent pas pour " +#~ "atteindre cet objectif, et la spécification Unicode moderne utilise une " +#~ "gamme de codes plus étendue, allant de 0 à 1 114 111 (``0x10FFFF`` en " +#~ "base 16)." + +#~ msgid "" +#~ "There's a related ISO standard, ISO 10646. Unicode and ISO 10646 were " +#~ "originally separate efforts, but the specifications were merged with the " +#~ "1.1 revision of Unicode." +#~ msgstr "" +#~ "Il existe une norme ISO connexe, ISO 10646. Unicode et ISO 10646 étaient " +#~ "à l’origine des efforts séparés, mais les spécifications ont été " +#~ "fusionnées avec la révision 1.1 d’Unicode." + +#~ msgid "" +#~ "(This discussion of Unicode's history is highly simplified. The precise " +#~ "historical details aren't necessary for understanding how to use Unicode " +#~ "effectively, but if you're curious, consult the Unicode consortium site " +#~ "listed in the References or the `Wikipedia entry for Unicode `_ for more information.)" +#~ msgstr "" +#~ "(Cette discussion sur l’historique d’Unicode est extrêmement simplifiée. " +#~ "Les détails historiques précis ne sont pas nécessaires pour comprendre " +#~ "comment utiliser efficacement Unicode, mais si vous êtes curieux, " +#~ "consultez le site du consortium Unicode indiqué dans les références ou la " +#~ "`page Wikipédia pour Unicode `_ (page en anglais) pour plus d’informations.)" + +#~ msgid "" +#~ "Many Internet standards are defined in terms of textual data, and can't " +#~ "handle content with embedded zero bytes." +#~ msgstr "" +#~ "De nombreuses normes Internet sont définies en termes de données " +#~ "textuelles et ne peuvent pas gérer le contenu incorporant des octets " +#~ "*zéro*." + +#~ msgid "" +#~ "Generally people don't use this encoding, instead choosing other " +#~ "encodings that are more efficient and convenient. UTF-8 is probably the " +#~ "most commonly supported encoding; it will be discussed below." +#~ msgstr "" +#~ "Généralement, les gens n’utilisent pas cet encodage, mais optent pour " +#~ "d’autres encodages plus efficaces et pratiques. UTF-8 est probablement " +#~ "l’encodage le plus couramment pris en charge ; celui-ci sera abordé ci-" +#~ "dessous." + +#~ msgid "" +#~ "Encodings don't have to handle every possible Unicode character, and most " +#~ "encodings don't. The rules for converting a Unicode string into the " +#~ "ASCII encoding, for example, are simple; for each code point:" +#~ msgstr "" +#~ "Les encodages n'ont pas à gérer tous les caractères Unicode possibles, et " +#~ "les plupart ne le font pas. Les règles pour convertir une chaîne Unicode " +#~ "en codage ASCII, par exemple, sont simples. pour chaque point de code :" + +#~ msgid "" +#~ "If the code point is < 128, each byte is the same as the value of the " +#~ "code point." +#~ msgstr "" +#~ "Si le point de code est < 128, chaque octet est identique à la valeur du " +#~ "point de code." + +#~ msgid "" +#~ "If the code point is 128 or greater, the Unicode string can't be " +#~ "represented in this encoding. (Python raises a :exc:`UnicodeEncodeError` " +#~ "exception in this case.)" +#~ msgstr "" +#~ "Si le point de code est égal à 128 ou plus, la chaîne Unicode ne peut pas " +#~ "être représentée dans ce codage (Python déclenche une exception :exc:" +#~ "`UnicodeEncodeError` dans ce cas)." + +#~ msgid "" +#~ "Latin-1, also known as ISO-8859-1, is a similar encoding. Unicode code " +#~ "points 0--255 are identical to the Latin-1 values, so converting to this " +#~ "encoding simply requires converting code points to byte values; if a code " +#~ "point larger than 255 is encountered, the string can't be encoded into " +#~ "Latin-1." +#~ msgstr "" +#~ "Latin-1, également connu sous le nom de ISO-8859-1, est un encodage " +#~ "similaire. Les points de code Unicode 0–255 étant identiques aux valeurs " +#~ "de Latin-1, la conversion en cet encodage nécessite simplement la " +#~ "conversion des points de code en octets de même valeur ; si un point de " +#~ "code supérieur à 255 est rencontré, la chaîne ne peut pas être codée en " +#~ "latin-1." + +#~ msgid "" +#~ "Encodings don't have to be simple one-to-one mappings like Latin-1. " +#~ "Consider IBM's EBCDIC, which was used on IBM mainframes. Letter values " +#~ "weren't in one block: 'a' through 'i' had values from 129 to 137, but 'j' " +#~ "through 'r' were 145 through 153. If you wanted to use EBCDIC as an " +#~ "encoding, you'd probably use some sort of lookup table to perform the " +#~ "conversion, but this is largely an internal detail." +#~ msgstr "" +#~ "Les encodages ne doivent pas nécessairement être de simples mappages un à " +#~ "un, comme Latin-1. Prenons l’exemple du code EBCDIC d’IBM, utilisé sur " +#~ "les ordinateurs centraux IBM. Les valeurs de lettre ne faisaient pas " +#~ "partie d’un bloc: les lettres « a » à « i » étaient comprises entre 129 " +#~ "et 137, mais les lettres « j » à « r » étaient comprises entre 145 et " +#~ "153. Si vous vouliez utiliser EBCDIC comme encodage, vous auriez " +#~ "probablement utilisé une sorte de table de correspondance pour effectuer " +#~ "la conversion, mais il s’agit en surtout d’un détail d'implémentation." diff --git a/howto/urllib2.po b/howto/urllib2.po new file mode 100644 index 000000000..d4ebbac9a --- /dev/null +++ b/howto/urllib2.po @@ -0,0 +1,582 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/howto/urllib2.rst:5 +msgid "HOWTO Fetch Internet Resources Using The urllib Package" +msgstr "" +"Guide pratique : récupérer des ressources web en utilisant le module *urllib*" + +#: ../Doc/howto/urllib2.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/howto/urllib2.rst:7 +msgid "`Michael Foord `_" +msgstr "" + +#: ../Doc/howto/urllib2.rst:11 +msgid "" +"There is a French translation of an earlier revision of this HOWTO, " +"available at `urllib2 - Le Manuel manquant `_." +msgstr "" + +#: ../Doc/howto/urllib2.rst:18 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/howto/urllib2.rst:22 +msgid "" +"You may also find useful the following article on fetching web resources " +"with Python:" +msgstr "" + +#: ../Doc/howto/urllib2.rst:25 +msgid "" +"`Basic Authentication `_" +msgstr "" + +#: ../Doc/howto/urllib2.rst:27 +msgid "A tutorial on *Basic Authentication*, with examples in Python." +msgstr "" + +#: ../Doc/howto/urllib2.rst:29 +msgid "" +"**urllib.request** is a Python module for fetching URLs (Uniform Resource " +"Locators). It offers a very simple interface, in the form of the *urlopen* " +"function. This is capable of fetching URLs using a variety of different " +"protocols. It also offers a slightly more complex interface for handling " +"common situations - like basic authentication, cookies, proxies and so on. " +"These are provided by objects called handlers and openers." +msgstr "" + +#: ../Doc/howto/urllib2.rst:36 +msgid "" +"urllib.request supports fetching URLs for many \"URL schemes\" (identified " +"by the string before the ``\":\"`` in URL - for example ``\"ftp\"`` is the " +"URL scheme of ``\"ftp://python.org/\"``) using their associated network " +"protocols (e.g. FTP, HTTP). This tutorial focuses on the most common case, " +"HTTP." +msgstr "" + +#: ../Doc/howto/urllib2.rst:41 +msgid "" +"For straightforward situations *urlopen* is very easy to use. But as soon as " +"you encounter errors or non-trivial cases when opening HTTP URLs, you will " +"need some understanding of the HyperText Transfer Protocol. The most " +"comprehensive and authoritative reference to HTTP is :rfc:`2616`. This is a " +"technical document and not intended to be easy to read. This HOWTO aims to " +"illustrate using *urllib*, with enough detail about HTTP to help you " +"through. It is not intended to replace the :mod:`urllib.request` docs, but " +"is supplementary to them." +msgstr "" + +#: ../Doc/howto/urllib2.rst:51 +msgid "Fetching URLs" +msgstr "" + +#: ../Doc/howto/urllib2.rst:53 +msgid "The simplest way to use urllib.request is as follows::" +msgstr "" + +#: ../Doc/howto/urllib2.rst:59 +msgid "" +"If you wish to retrieve a resource via URL and store it in a temporary " +"location, you can do so via the :func:`shutil.copyfileobj` and :func:" +"`tempfile.NamedTemporaryFile` functions::" +msgstr "" + +#: ../Doc/howto/urllib2.rst:74 +msgid "" +"Many uses of urllib will be that simple (note that instead of an 'http:' URL " +"we could have used a URL starting with 'ftp:', 'file:', etc.). However, " +"it's the purpose of this tutorial to explain the more complicated cases, " +"concentrating on HTTP." +msgstr "" + +#: ../Doc/howto/urllib2.rst:79 +msgid "" +"HTTP is based on requests and responses - the client makes requests and " +"servers send responses. urllib.request mirrors this with a ``Request`` " +"object which represents the HTTP request you are making. In its simplest " +"form you create a Request object that specifies the URL you want to fetch. " +"Calling ``urlopen`` with this Request object returns a response object for " +"the URL requested. This response is a file-like object, which means you can " +"for example call ``.read()`` on the response::" +msgstr "" + +#: ../Doc/howto/urllib2.rst:93 +msgid "" +"Note that urllib.request makes use of the same Request interface to handle " +"all URL schemes. For example, you can make an FTP request like so::" +msgstr "" + +#: ../Doc/howto/urllib2.rst:98 +msgid "" +"In the case of HTTP, there are two extra things that Request objects allow " +"you to do: First, you can pass data to be sent to the server. Second, you " +"can pass extra information (\"metadata\") *about* the data or the about " +"request itself, to the server - this information is sent as HTTP \"headers" +"\". Let's look at each of these in turn." +msgstr "" + +#: ../Doc/howto/urllib2.rst:105 +msgid "Data" +msgstr "" + +#: ../Doc/howto/urllib2.rst:107 +msgid "" +"Sometimes you want to send data to a URL (often the URL will refer to a CGI " +"(Common Gateway Interface) script or other web application). With HTTP, this " +"is often done using what's known as a **POST** request. This is often what " +"your browser does when you submit a HTML form that you filled in on the web. " +"Not all POSTs have to come from forms: you can use a POST to transmit " +"arbitrary data to your own application. In the common case of HTML forms, " +"the data needs to be encoded in a standard way, and then passed to the " +"Request object as the ``data`` argument. The encoding is done using a " +"function from the :mod:`urllib.parse` library. ::" +msgstr "" + +#: ../Doc/howto/urllib2.rst:131 +msgid "" +"Note that other encodings are sometimes required (e.g. for file upload from " +"HTML forms - see `HTML Specification, Form Submission `_ for more details)." +msgstr "" + +#: ../Doc/howto/urllib2.rst:136 +msgid "" +"If you do not pass the ``data`` argument, urllib uses a **GET** request. One " +"way in which GET and POST requests differ is that POST requests often have " +"\"side-effects\": they change the state of the system in some way (for " +"example by placing an order with the website for a hundredweight of tinned " +"spam to be delivered to your door). Though the HTTP standard makes it clear " +"that POSTs are intended to *always* cause side-effects, and GET requests " +"*never* to cause side-effects, nothing prevents a GET request from having " +"side-effects, nor a POST requests from having no side-effects. Data can also " +"be passed in an HTTP GET request by encoding it in the URL itself." +msgstr "" + +#: ../Doc/howto/urllib2.rst:146 +msgid "This is done as follows::" +msgstr "" + +#: ../Doc/howto/urllib2.rst:161 +msgid "" +"Notice that the full URL is created by adding a ``?`` to the URL, followed " +"by the encoded values." +msgstr "" + +#: ../Doc/howto/urllib2.rst:165 +msgid "Headers" +msgstr "" + +#: ../Doc/howto/urllib2.rst:167 +msgid "" +"We'll discuss here one particular HTTP header, to illustrate how to add " +"headers to your HTTP request." +msgstr "" + +#: ../Doc/howto/urllib2.rst:170 +msgid "" +"Some websites [#]_ dislike being browsed by programs, or send different " +"versions to different browsers [#]_. By default urllib identifies itself as " +"``Python-urllib/x.y`` (where ``x`` and ``y`` are the major and minor version " +"numbers of the Python release, e.g. ``Python-urllib/2.5``), which may " +"confuse the site, or just plain not work. The way a browser identifies " +"itself is through the ``User-Agent`` header [#]_. When you create a Request " +"object you can pass a dictionary of headers in. The following example makes " +"the same request as above, but identifies itself as a version of Internet " +"Explorer [#]_. ::" +msgstr "" + +#: ../Doc/howto/urllib2.rst:197 +msgid "" +"The response also has two useful methods. See the section on `info and " +"geturl`_ which comes after we have a look at what happens when things go " +"wrong." +msgstr "" + +#: ../Doc/howto/urllib2.rst:202 +msgid "Handling Exceptions" +msgstr "Gestion des exceptions" + +#: ../Doc/howto/urllib2.rst:204 +msgid "" +"*urlopen* raises :exc:`URLError` when it cannot handle a response (though as " +"usual with Python APIs, built-in exceptions such as :exc:`ValueError`, :exc:" +"`TypeError` etc. may also be raised)." +msgstr "" + +#: ../Doc/howto/urllib2.rst:208 +msgid "" +":exc:`HTTPError` is the subclass of :exc:`URLError` raised in the specific " +"case of HTTP URLs." +msgstr "" + +#: ../Doc/howto/urllib2.rst:211 +msgid "The exception classes are exported from the :mod:`urllib.error` module." +msgstr "" + +#: ../Doc/howto/urllib2.rst:214 +msgid "URLError" +msgstr "" + +#: ../Doc/howto/urllib2.rst:216 +msgid "" +"Often, URLError is raised because there is no network connection (no route " +"to the specified server), or the specified server doesn't exist. In this " +"case, the exception raised will have a 'reason' attribute, which is a tuple " +"containing an error code and a text error message." +msgstr "" + +#: ../Doc/howto/urllib2.rst:221 +msgid "e.g. ::" +msgstr "" + +#: ../Doc/howto/urllib2.rst:232 +msgid "HTTPError" +msgstr "" + +#: ../Doc/howto/urllib2.rst:234 +msgid "" +"Every HTTP response from the server contains a numeric \"status code\". " +"Sometimes the status code indicates that the server is unable to fulfil the " +"request. The default handlers will handle some of these responses for you " +"(for example, if the response is a \"redirection\" that requests the client " +"fetch the document from a different URL, urllib will handle that for you). " +"For those it can't handle, urlopen will raise an :exc:`HTTPError`. Typical " +"errors include '404' (page not found), '403' (request forbidden), and " +"'401' (authentication required)." +msgstr "" + +#: ../Doc/howto/urllib2.rst:242 +msgid "" +"See section 10 of :rfc:`2616` for a reference on all the HTTP error codes." +msgstr "" + +#: ../Doc/howto/urllib2.rst:244 +msgid "" +"The :exc:`HTTPError` instance raised will have an integer 'code' attribute, " +"which corresponds to the error sent by the server." +msgstr "" + +#: ../Doc/howto/urllib2.rst:248 +msgid "Error Codes" +msgstr "" + +#: ../Doc/howto/urllib2.rst:250 +msgid "" +"Because the default handlers handle redirects (codes in the 300 range), and " +"codes in the 100--299 range indicate success, you will usually only see " +"error codes in the 400--599 range." +msgstr "" + +#: ../Doc/howto/urllib2.rst:254 +msgid "" +":attr:`http.server.BaseHTTPRequestHandler.responses` is a useful dictionary " +"of response codes in that shows all the response codes used by :rfc:`2616`. " +"The dictionary is reproduced here for convenience ::" +msgstr "" + +#: ../Doc/howto/urllib2.rst:326 +msgid "" +"When an error is raised the server responds by returning an HTTP error code " +"*and* an error page. You can use the :exc:`HTTPError` instance as a response " +"on the page returned. This means that as well as the code attribute, it also " +"has read, geturl, and info, methods as returned by the ``urllib.response`` " +"module::" +msgstr "" + +#: ../Doc/howto/urllib2.rst:346 +msgid "Wrapping it Up" +msgstr "" + +#: ../Doc/howto/urllib2.rst:348 +msgid "" +"So if you want to be prepared for :exc:`HTTPError` *or* :exc:`URLError` " +"there are two basic approaches. I prefer the second approach." +msgstr "" + +#: ../Doc/howto/urllib2.rst:352 +msgid "Number 1" +msgstr "" + +#: ../Doc/howto/urllib2.rst:374 +msgid "" +"The ``except HTTPError`` *must* come first, otherwise ``except URLError`` " +"will *also* catch an :exc:`HTTPError`." +msgstr "" + +#: ../Doc/howto/urllib2.rst:378 +msgid "Number 2" +msgstr "" + +#: ../Doc/howto/urllib2.rst:399 +msgid "info and geturl" +msgstr "" + +#: ../Doc/howto/urllib2.rst:401 +msgid "" +"The response returned by urlopen (or the :exc:`HTTPError` instance) has two " +"useful methods :meth:`info` and :meth:`geturl` and is defined in the module :" +"mod:`urllib.response`.." +msgstr "" + +#: ../Doc/howto/urllib2.rst:405 +msgid "" +"**geturl** - this returns the real URL of the page fetched. This is useful " +"because ``urlopen`` (or the opener object used) may have followed a " +"redirect. The URL of the page fetched may not be the same as the URL " +"requested." +msgstr "" + +#: ../Doc/howto/urllib2.rst:409 +msgid "" +"**info** - this returns a dictionary-like object that describes the page " +"fetched, particularly the headers sent by the server. It is currently an :" +"class:`http.client.HTTPMessage` instance." +msgstr "" + +#: ../Doc/howto/urllib2.rst:413 +msgid "" +"Typical headers include 'Content-length', 'Content-type', and so on. See the " +"`Quick Reference to HTTP Headers `_ for a " +"useful listing of HTTP headers with brief explanations of their meaning and " +"use." +msgstr "" + +#: ../Doc/howto/urllib2.rst:420 +msgid "Openers and Handlers" +msgstr "" + +#: ../Doc/howto/urllib2.rst:422 +msgid "" +"When you fetch a URL you use an opener (an instance of the perhaps " +"confusingly-named :class:`urllib.request.OpenerDirector`). Normally we have " +"been using the default opener - via ``urlopen`` - but you can create custom " +"openers. Openers use handlers. All the \"heavy lifting\" is done by the " +"handlers. Each handler knows how to open URLs for a particular URL scheme " +"(http, ftp, etc.), or how to handle an aspect of URL opening, for example " +"HTTP redirections or HTTP cookies." +msgstr "" + +#: ../Doc/howto/urllib2.rst:430 +msgid "" +"You will want to create openers if you want to fetch URLs with specific " +"handlers installed, for example to get an opener that handles cookies, or to " +"get an opener that does not handle redirections." +msgstr "" + +#: ../Doc/howto/urllib2.rst:434 +msgid "" +"To create an opener, instantiate an ``OpenerDirector``, and then call ``." +"add_handler(some_handler_instance)`` repeatedly." +msgstr "" + +#: ../Doc/howto/urllib2.rst:437 +msgid "" +"Alternatively, you can use ``build_opener``, which is a convenience function " +"for creating opener objects with a single function call. ``build_opener`` " +"adds several handlers by default, but provides a quick way to add more and/" +"or override the default handlers." +msgstr "" + +#: ../Doc/howto/urllib2.rst:442 +msgid "" +"Other sorts of handlers you might want to can handle proxies, " +"authentication, and other common but slightly specialised situations." +msgstr "" + +#: ../Doc/howto/urllib2.rst:445 +msgid "" +"``install_opener`` can be used to make an ``opener`` object the (global) " +"default opener. This means that calls to ``urlopen`` will use the opener you " +"have installed." +msgstr "" + +#: ../Doc/howto/urllib2.rst:449 +msgid "" +"Opener objects have an ``open`` method, which can be called directly to " +"fetch urls in the same way as the ``urlopen`` function: there's no need to " +"call ``install_opener``, except as a convenience." +msgstr "" + +#: ../Doc/howto/urllib2.rst:455 +msgid "Basic Authentication" +msgstr "" + +#: ../Doc/howto/urllib2.rst:457 +msgid "" +"To illustrate creating and installing a handler we will use the " +"``HTTPBasicAuthHandler``. For a more detailed discussion of this subject -- " +"including an explanation of how Basic Authentication works - see the `Basic " +"Authentication Tutorial `_." +msgstr "" + +#: ../Doc/howto/urllib2.rst:463 +msgid "" +"When authentication is required, the server sends a header (as well as the " +"401 error code) requesting authentication. This specifies the " +"authentication scheme and a 'realm'. The header looks like: ``WWW-" +"Authenticate: SCHEME realm=\"REALM\"``." +msgstr "" + +#: ../Doc/howto/urllib2.rst:468 +msgid "e.g." +msgstr "" + +#: ../Doc/howto/urllib2.rst:475 +msgid "" +"The client should then retry the request with the appropriate name and " +"password for the realm included as a header in the request. This is 'basic " +"authentication'. In order to simplify this process we can create an instance " +"of ``HTTPBasicAuthHandler`` and an opener to use this handler." +msgstr "" + +#: ../Doc/howto/urllib2.rst:480 +msgid "" +"The ``HTTPBasicAuthHandler`` uses an object called a password manager to " +"handle the mapping of URLs and realms to passwords and usernames. If you " +"know what the realm is (from the authentication header sent by the server), " +"then you can use a ``HTTPPasswordMgr``. Frequently one doesn't care what the " +"realm is. In that case, it is convenient to use " +"``HTTPPasswordMgrWithDefaultRealm``. This allows you to specify a default " +"username and password for a URL. This will be supplied in the absence of you " +"providing an alternative combination for a specific realm. We indicate this " +"by providing ``None`` as the realm argument to the ``add_password`` method." +msgstr "" + +#: ../Doc/howto/urllib2.rst:490 +msgid "" +"The top-level URL is the first URL that requires authentication. URLs " +"\"deeper\" than the URL you pass to .add_password() will also match. ::" +msgstr "" + +#: ../Doc/howto/urllib2.rst:515 +msgid "" +"In the above example we only supplied our ``HTTPBasicAuthHandler`` to " +"``build_opener``. By default openers have the handlers for normal situations " +"-- ``ProxyHandler`` (if a proxy setting such as an :envvar:`http_proxy` " +"environment variable is set), ``UnknownHandler``, ``HTTPHandler``, " +"``HTTPDefaultErrorHandler``, ``HTTPRedirectHandler``, ``FTPHandler``, " +"``FileHandler``, ``DataHandler``, ``HTTPErrorProcessor``." +msgstr "" + +#: ../Doc/howto/urllib2.rst:522 +msgid "" +"``top_level_url`` is in fact *either* a full URL (including the 'http:' " +"scheme component and the hostname and optionally the port number) e.g. ``" +"\"http://example.com/\"`` *or* an \"authority\" (i.e. the hostname, " +"optionally including the port number) e.g. ``\"example.com\"`` or ``" +"\"example.com:8080\"`` (the latter example includes a port number). The " +"authority, if present, must NOT contain the \"userinfo\" component - for " +"example ``\"joe:password@example.com\"`` is not correct." +msgstr "" + +#: ../Doc/howto/urllib2.rst:532 +msgid "Proxies" +msgstr "" + +#: ../Doc/howto/urllib2.rst:534 +msgid "" +"**urllib** will auto-detect your proxy settings and use those. This is " +"through the ``ProxyHandler``, which is part of the normal handler chain when " +"a proxy setting is detected. Normally that's a good thing, but there are " +"occasions when it may not be helpful [#]_. One way to do this is to setup " +"our own ``ProxyHandler``, with no proxies defined. This is done using " +"similar steps to setting up a `Basic Authentication`_ handler: ::" +msgstr "" + +#: ../Doc/howto/urllib2.rst:547 +msgid "" +"Currently ``urllib.request`` *does not* support fetching of ``https`` " +"locations through a proxy. However, this can be enabled by extending urllib." +"request as shown in the recipe [#]_." +msgstr "" + +#: ../Doc/howto/urllib2.rst:553 +msgid "" +"``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see " +"the documentation on :func:`~urllib.request.getproxies`." +msgstr "" + +#: ../Doc/howto/urllib2.rst:558 +msgid "Sockets and Layers" +msgstr "" + +#: ../Doc/howto/urllib2.rst:560 +msgid "" +"The Python support for fetching resources from the web is layered. urllib " +"uses the :mod:`http.client` library, which in turn uses the socket library." +msgstr "" + +#: ../Doc/howto/urllib2.rst:563 +msgid "" +"As of Python 2.3 you can specify how long a socket should wait for a " +"response before timing out. This can be useful in applications which have to " +"fetch web pages. By default the socket module has *no timeout* and can hang. " +"Currently, the socket timeout is not exposed at the http.client or urllib." +"request levels. However, you can set the default timeout globally for all " +"sockets using ::" +msgstr "" + +#: ../Doc/howto/urllib2.rst:586 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/howto/urllib2.rst:588 +msgid "This document was reviewed and revised by John Lee." +msgstr "" + +#: ../Doc/howto/urllib2.rst:590 +msgid "Google for example." +msgstr "" + +#: ../Doc/howto/urllib2.rst:591 +msgid "" +"Browser sniffing is a very bad practice for website design - building sites " +"using web standards is much more sensible. Unfortunately a lot of sites " +"still send different versions to different browsers." +msgstr "" + +#: ../Doc/howto/urllib2.rst:594 +msgid "" +"The user agent for MSIE 6 is *'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT " +"5.1; SV1; .NET CLR 1.1.4322)'*" +msgstr "" + +#: ../Doc/howto/urllib2.rst:596 +msgid "" +"For details of more HTTP request headers, see `Quick Reference to HTTP " +"Headers`_." +msgstr "" + +#: ../Doc/howto/urllib2.rst:598 +msgid "" +"In my case I have to use a proxy to access the internet at work. If you " +"attempt to fetch *localhost* URLs through this proxy it blocks them. IE is " +"set to use the proxy, which urllib picks up on. In order to test scripts " +"with a localhost server, I have to prevent urllib from using the proxy." +msgstr "" + +#: ../Doc/howto/urllib2.rst:603 +msgid "" +"urllib opener for SSL proxy (CONNECT method): `ASPN Cookbook Recipe `_." +msgstr "" diff --git a/install/index.po b/install/index.po new file mode 100644 index 000000000..ddda2a146 --- /dev/null +++ b/install/index.po @@ -0,0 +1,1816 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-11-16 09:10+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/install/index.rst:7 +msgid "Installing Python Modules (Legacy version)" +msgstr "installation des modules python (Version historique)" + +#: ../Doc/install/index.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/install/index.rst:9 +msgid "Greg Ward" +msgstr "Greg Ward" + +#: ../Doc/install/index.rst:15 +msgid ":ref:`installing-index`" +msgstr ":ref:`installing-index`" + +#: ../Doc/install/index.rst:16 +msgid "The up to date module installation documentations" +msgstr "" + +#: ../Doc/install/index.rst:28 +msgid "" +"This document describes the Python Distribution Utilities (\"Distutils\") " +"from the end-user's point-of-view, describing how to extend the capabilities " +"of a standard Python installation by building and installing third-party " +"Python modules and extensions." +msgstr "" +"Ce document décrit les utilitaires de distribution de Python (\"Distutils\") " +"du point de vue de l'utilisateur final, décrivant comment étendre les " +"capacités d'une installation standard de python en construisant et " +"installant des modules python tiers et des extensions." + +#: ../Doc/install/index.rst:36 +msgid "" +"This guide only covers the basic tools for building and distributing " +"extensions that are provided as part of this version of Python. Third party " +"tools offer easier to use and more secure alternatives. Refer to the `quick " +"recommendations section `__ in the Python Packaging User Guide for more information." +msgstr "" +"Ce guide ne couvre que les outils de base, fournis avec cette version de " +"Python, pour construire et distribuer des extensions. D'autres outils " +"peuvent être plus sécurisés et plus simple à utiliser. Consultez `quick " +"recommendations section `__ dans le *Python Packaging User Guide* pour plus " +"d'informations." + +#: ../Doc/install/index.rst:47 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/install/index.rst:49 +msgid "" +"Although Python's extensive standard library covers many programming needs, " +"there often comes a time when you need to add some new functionality to your " +"Python installation in the form of third-party modules. This might be " +"necessary to support your own programming, or to support an application that " +"you want to use and that happens to be written in Python." +msgstr "" +"Bien que la vaste bibliothèque standard de Python comble beaucoup de besoins " +"en programmation, il arrive souvent un moment où vous avez besoin d'ajouter " +"de nouvelles fonctionnalités à votre installation de Python, via des modules " +"tiers. Cela peut être nécessaire pour vous aider à écrire vos programmes ou " +"pour prendre en charge une application écrite en Python que vous souhaitez " +"utiliser." + +#: ../Doc/install/index.rst:55 +msgid "" +"In the past, there has been little support for adding third-party modules to " +"an existing Python installation. With the introduction of the Python " +"Distribution Utilities (Distutils for short) in Python 2.0, this changed." +msgstr "" +"Dans le passé, il y a eu peu de prise d'aide à l'ajout de modules tiers sur " +"une installation existante de Python. Avec l'introduction des utilitaires de " +"distribution de Python (Distutils pour faire plus court) dans Python 2.0, " +"ceci a changé." + +#: ../Doc/install/index.rst:59 +msgid "" +"This document is aimed primarily at the people who need to install third-" +"party Python modules: end-users and system administrators who just need to " +"get some Python application running, and existing Python programmers who " +"want to add some new goodies to their toolbox. You don't need to know " +"Python to read this document; there will be some brief forays into using " +"Python's interactive mode to explore your installation, but that's it. If " +"you're looking for information on how to distribute your own Python modules " +"so that others may use them, see the :ref:`distutils-index` manual. :ref:" +"`debug-setup-script` may also be of interest." +msgstr "" +"Ce document s'adresse principalement aux personnes qui ont besoin " +"d'installer des modules tiers de Python : les utilisateurs finaux et les " +"administrateurs système, qui ont juste besoin de faire fonctionner une " +"application Python, et les programmeurs Python, qui veulent ajouter de " +"nouvelles fonctionnalités à leur boîte à outils. Vous n'avez pas besoin de " +"connaître Python pour lire ce document. Il y aura quelques brèves " +"utilisations du mode interactif de Python pour explorer votre installation, " +"mais c'est tout. Si vous cherchez des informations sur la façon de " +"distribuer vos propres modules Python afin que d'autres puissent les " +"utiliser, allez voir le manuel :ref:`distutils-index`. :ref:`debug-setup-" +"script` peut aussi être intéressant." + +#: ../Doc/install/index.rst:73 +msgid "Best case: trivial installation" +msgstr "Le meilleur des cas : l'installation simple" + +#: ../Doc/install/index.rst:75 +msgid "" +"In the best case, someone will have prepared a special version of the module " +"distribution you want to install that is targeted specifically at your " +"platform and is installed just like any other software on your platform. " +"For example, the module developer might make an executable installer " +"available for Windows users, an RPM package for users of RPM-based Linux " +"systems (Red Hat, SuSE, Mandrake, and many others), a Debian package for " +"users of Debian-based Linux systems, and so forth." +msgstr "" +"Dans le meilleur des cas, quelqu'un aura préparé une version spéciale de la " +"distribution du module que vous souhaitez installer qui est destiné " +"spécifiquement à votre plateforme et elle va s'installer comme n'importe " +"quel autre logiciel sur votre plateforme. Par exemple, le développeur du " +"module pourrait faire un installateur exécutable disponible pour les " +"utilisateurs Windows, un paquetage RPM pour les utilisateurs de systèmes " +"Linux basés sur RPM (Red Hat, SuSE, Mandrake et bien d'autres), un paquet " +"Debian pour les utilisateurs de Linux basé sur le système Debian et ainsi de " +"suite." + +#: ../Doc/install/index.rst:83 +msgid "" +"In that case, you would download the installer appropriate to your platform " +"and do the obvious thing with it: run it if it's an executable installer, " +"``rpm --install`` it if it's an RPM, etc. You don't need to run Python or a " +"setup script, you don't need to compile anything---you might not even need " +"to read any instructions (although it's always a good idea to do so anyway)." +msgstr "" +"Dans ce cas, vous devez télécharger le programme d'installation approprié à " +"votre plateforme et faire d'elle ce qui vous semble évident : l'exécuter " +"s'il s'agit d'un exécutable d'installation, ``rpm --install`` si c'est un " +"RPM, etc. Vous n'avez même pas besoin d'exécuter Python ou un script " +"d'installation, vous n'avez pas besoin de compiler quoi que ce soit -- vous " +"devriez même pas avoir besoin de lire toutes les instructions (même si c'est " +"toujours une bonne idée de le faire)." + +#: ../Doc/install/index.rst:89 +msgid "" +"Of course, things will not always be that easy. You might be interested in " +"a module distribution that doesn't have an easy-to-use installer for your " +"platform. In that case, you'll have to start with the source distribution " +"released by the module's author/maintainer. Installing from a source " +"distribution is not too hard, as long as the modules are packaged in the " +"standard way. The bulk of this document is about building and installing " +"modules from standard source distributions." +msgstr "" +"Bien sûr, les choses ne seront pas toujours aussi simple que cela. Vous " +"pourriez être intéressés par une distribution d'un module qui n'a pas de " +"programme d'installation facile à utiliser pour votre plateforme. Dans ce " +"cas, vous allez devoir repartir des fichiers sources publiés par l'auteur/" +"mainteneur du module. L'installation à partir des sources n'est pas très " +"difficile, du moment que les modules en question sont empaquetés de façon " +"standard. Le cœur de ce document explique comment configurer et installer " +"des modules à partir des sources." + +#: ../Doc/install/index.rst:101 +msgid "The new standard: Distutils" +msgstr "Le nouveau standard: Distutils" + +#: ../Doc/install/index.rst:103 +msgid "" +"If you download a module source distribution, you can tell pretty quickly if " +"it was packaged and distributed in the standard way, i.e. using the " +"Distutils. First, the distribution's name and version number will be " +"featured prominently in the name of the downloaded archive, e.g. :file:" +"`foo-1.0.tar.gz` or :file:`widget-0.9.7.zip`. Next, the archive will unpack " +"into a similarly-named directory: :file:`foo-1.0` or :file:`widget-0.9.7`. " +"Additionally, the distribution will contain a setup script :file:`setup.py`, " +"and a file named :file:`README.txt` or possibly just :file:`README`, which " +"should explain that building and installing the module distribution is a " +"simple matter of running one command from a terminal::" +msgstr "" +"Si vous téléchargez une distribution source du module, vous pouvez dire " +"assez rapidement s'il a été empaqueté et distribué de la façon standard, " +"c'est à dire en utilisant Distutils. Premièrement, le nom et le numéro de " +"version de la distribution seront affichés en bonne place dans le nom de " +"l'archive téléchargée, par exemple :file:`foo-1.0.tar.gz` ou :file:" +"`widget-0.9.7.zip`. Ensuite, l'archive va se décompresser dans un répertoire " +"du même nom : :file:`foo-1.0` ou :file:`widget-0.9.7`. En outre, la " +"distribution va contenir un script d'installation :file:`setup.py` et un " +"fichier nommé :file:`README.txt` ou éventuellement juste :file:`README`, qui " +"doit expliquer que la construction et l'installation de la distribution du " +"module se fait simplement en exécutant ceci ::" + +#: ../Doc/install/index.rst:116 +msgid "" +"For Windows, this command should be run from a command prompt window (:" +"menuselection:`Start --> Accessories`)::" +msgstr "" +"Sous Windows, cette commande doit être lancée depuis une invite de commande " +"(:menuselection:`Démarrer --> Accessoires`) ::" + +#: ../Doc/install/index.rst:121 +msgid "" +"If all these things are true, then you already know how to build and install " +"the modules you've just downloaded: Run the command above. Unless you need " +"to install things in a non-standard way or customize the build process, you " +"don't really need this manual. Or rather, the above command is everything " +"you need to get out of this manual." +msgstr "" +"Si toutes ces choses sont vérifiées, alors vous savez déjà comment " +"construire et installer le module que vous venez de télécharger : en " +"exécutant la commande ci-dessus. Sauf si vous avez besoin d'installer les " +"choses d'une manière non standard ou de personnaliser le processus de " +"construction, vous n'avez pas vraiment besoin de ce manuel. Ou plutôt, la " +"commande ci-dessus est tout ce dont vous avez besoin de sortir de ce manuel." + +#: ../Doc/install/index.rst:131 +msgid "Standard Build and Install" +msgstr "Construction standard et installation" + +#: ../Doc/install/index.rst:133 +msgid "" +"As described in section :ref:`inst-new-standard`, building and installing a " +"module distribution using the Distutils is usually one simple command to run " +"from a terminal::" +msgstr "" +"Comme décrit dans la section :ref:`inst-new-standard`, la construction et " +"l'installation d'une distribution d'un module en utilisant Distutils est " +"habituellement fait avec la commande dans un terminal ::" + +#: ../Doc/install/index.rst:143 +msgid "Platform variations" +msgstr "Différences selon les plateformes" + +#: ../Doc/install/index.rst:145 +msgid "" +"You should always run the setup command from the distribution root " +"directory, i.e. the top-level subdirectory that the module source " +"distribution unpacks into. For example, if you've just downloaded a module " +"source distribution :file:`foo-1.0.tar.gz` onto a Unix system, the normal " +"thing to do is::" +msgstr "" +"Vous devez toujours exécuter la commande *setup* à partir du répertoire " +"racine de la distribution, à savoir le sous-répertoire de niveau supérieur à " +"celui où se sont décompressées les sources de la distribution du module. Par " +"exemple, si vous venez de télécharger les sources d'une distribution du " +"module :file:`foo-1.0.tar.gz` sous un système UNIX, la méthode normale " +"consiste à faire ::" + +#: ../Doc/install/index.rst:154 +msgid "" +"On Windows, you'd probably download :file:`foo-1.0.zip`. If you downloaded " +"the archive file to :file:`C:\\\\Temp`, then it would unpack into :file:`C:\\" +"\\Temp\\\\foo-1.0`; you can use either an archive manipulator with a " +"graphical user interface (such as WinZip) or a command-line tool (such as :" +"program:`unzip` or :program:`pkunzip`) to unpack the archive. Then, open a " +"command prompt window and run::" +msgstr "" +"Sous Windows, vous avez probablement téléchargé :file:`foo-1.0.zip`. Si vous " +"avez téléchargé le fichier d'archive dans :file:`C:\\\\Temp`, il se " +"décompressera alors dans :file:`C:\\\\Temp\\\\foo-1.0` ; vous pouvez " +"utiliser soit un manipulateur d'archive avec une interface graphique (comme " +"WinZip) soit un outil de ligne de commande (telles que :program:`unzip` ou :" +"program:`pkunzip`) pour décompresser l'archive. Ensuite, ouvrez une fenêtre " +"d'invite de commandes et exécutez ::" + +#: ../Doc/install/index.rst:168 +msgid "Splitting the job up" +msgstr "Fractionnement du travail" + +#: ../Doc/install/index.rst:170 +msgid "" +"Running ``setup.py install`` builds and installs all modules in one run. If " +"you prefer to work incrementally---especially useful if you want to " +"customize the build process, or if things are going wrong---you can use the " +"setup script to do one thing at a time. This is particularly helpful when " +"the build and install will be done by different users---for example, you " +"might want to build a module distribution and hand it off to a system " +"administrator for installation (or do it yourself, with super-user " +"privileges)." +msgstr "" +"Exécuter ``setup.py install`` construit et installe tous les modules en un " +"seul coup. Si vous préférez travailler progressivement -- ce qui est " +"particulièrement utile si vous souhaitez personnaliser le processus de " +"construction, ou si les choses vont mal -- vous pouvez utiliser le script de " +"configuration pour faire une chose à la fois. Cela est particulièrement " +"utile lorsque la construction et l'installation doit être faite par " +"différents utilisateurs -- par exemple, vous pouvez vouloir construire une " +"distribution d'un module et la transférer à un administrateur système pour " +"l'installation (ou le faire vous-même, avec les privilèges de super-" +"utilisateur)." + +#: ../Doc/install/index.rst:178 +msgid "" +"For example, you can build everything in one step, and then install " +"everything in a second step, by invoking the setup script twice::" +msgstr "" +"Par exemple, vous pouvez construire tout en une seule étape et ensuite " +"installer le tout dans une deuxième étape, en invoquant le script " +"d'installation deux fois ::" + +#: ../Doc/install/index.rst:184 +msgid "" +"If you do this, you will notice that running the :command:`install` command " +"first runs the :command:`build` command, which---in this case---quickly " +"notices that it has nothing to do, since everything in the :file:`build` " +"directory is up-to-date." +msgstr "" +"Si vous faites cela, vous remarquerez que l'exécution de la commande :" +"command:`install` lance d'abord la commande :command:`build`, qui, dans ce " +"cas, s'aperçoit vite qu'il n'a rien à faire, puisque tout dans le dossier :" +"file:`build` est à jour." + +#: ../Doc/install/index.rst:189 +msgid "" +"You may not need this ability to break things down often if all you do is " +"install modules downloaded off the 'net, but it's very handy for more " +"advanced tasks. If you get into distributing your own Python modules and " +"extensions, you'll run lots of individual Distutils commands on their own." +msgstr "" +"Il se peut que vous n'ayez pas souvent besoin de cette capacité à découper " +"les étapes si tout ce que vous faite est d'installer les modules téléchargés " +"sur le Net, mais c'est très pratique pour des tâches plus avancées. Si vous " +"en venez à distribuer vos propres modules et extensions Python, vous allez " +"exécuter beaucoup de commandes individuelles de Distutils, indépendamment " +"les unes des autres." + +#: ../Doc/install/index.rst:198 +msgid "How building works" +msgstr "Comment fonctionne une construction" + +#: ../Doc/install/index.rst:200 +msgid "" +"As implied above, the :command:`build` command is responsible for putting " +"the files to install into a *build directory*. By default, this is :file:" +"`build` under the distribution root; if you're excessively concerned with " +"speed, or want to keep the source tree pristine, you can change the build " +"directory with the :option:`!--build-base` option. For example::" +msgstr "" +"Comme sous-entendu ci-dessus, la commande :command:`build` est chargée de " +"mettre les fichiers à installer dans un *répertoire de travail*. Par défaut, " +"c'est :file:`build` à la racine de la distribution ; si vous êtes très " +"préoccupés par la vitesse, ou si vous voulez conserver l'arborescence des " +"sources d'origine, vous pouvez changer le répertoire de construction avec " +"l'option :option:`!--build-base`. Par exemple ::" + +#: ../Doc/install/index.rst:208 +msgid "" +"(Or you could do this permanently with a directive in your system or " +"personal Distutils configuration file; see section :ref:`inst-config-" +"files`.) Normally, this isn't necessary." +msgstr "" +"(Ou vous pourriez le faire de façon permanente avec une directive dans votre " +"système ou dans le fichier de configuration personnelle de Distutils ; voir " +"la section :ref:`inst-config-files`.) Normalement, ce n'est pas nécessaire." + +#: ../Doc/install/index.rst:212 +msgid "The default layout for the build tree is as follows::" +msgstr "" +"La mise en page par défaut pour l'arbre de compilation se présente comme " +"suit ::" + +#: ../Doc/install/index.rst:219 +msgid "" +"where ```` expands to a brief description of the current OS/hardware " +"platform and Python version. The first form, with just a :file:`lib` " +"directory, is used for \"pure module distributions\"---that is, module " +"distributions that include only pure Python modules. If a module " +"distribution contains any extensions (modules written in C/C++), then the " +"second form, with two ```` directories, is used. In that case, the :" +"file:`temp.{plat}` directory holds temporary files generated by the compile/" +"link process that don't actually get installed. In either case, the :file:" +"`lib` (or :file:`lib.{plat}`) directory contains all Python modules (pure " +"Python and extensions) that will be installed." +msgstr "" +"où ```` représente une brève description de l'actuel système " +"d'exploitation / plateforme matérielle et la version Python. La première " +"forme, avec juste un dossier :file:`lib` est utilisé pour les «distributions " +"de modules purs\" -- c'est-à-dire des distributions de module qui ne " +"incorporent que des modules en Python. Si un module de la distribution " +"contient au moins une extension (modules écrits en C/C++), alors il faut " +"utiliser la deuxième forme, avec deux dossiers ````. Dans ce cas, le " +"répertoire :file:`temp.{plat}` contient les fichiers temporaires générés par " +"le processus de compilation et de lien qui ne seront pas installés. Dans les " +"deux cas, le dossier :file:`lib` (ou :file:`lib.{plat}`) contient tous les " +"modules Python (Python pur et extensions) qui seront installés." + +#: ../Doc/install/index.rst:229 +msgid "" +"In the future, more directories will be added to handle Python scripts, " +"documentation, binary executables, and whatever else is needed to handle the " +"job of installing Python modules and applications." +msgstr "" +"Dans l'avenir, d'autres répertoires seront ajoutés pour gérer les scripts " +"Python, de la documentation, des exécutables binaires et tout ce qui est " +"nécessaire pour gérer le travail de l'installation de modules et " +"d'applications Python." + +#: ../Doc/install/index.rst:237 +msgid "How installation works" +msgstr "Comment fonctionne l'installation" + +#: ../Doc/install/index.rst:239 +msgid "" +"After the :command:`build` command runs (whether you run it explicitly, or " +"the :command:`install` command does it for you), the work of the :command:" +"`install` command is relatively simple: all it has to do is copy everything " +"under :file:`build/lib` (or :file:`build/lib.{plat}`) to your chosen " +"installation directory." +msgstr "" +"Après l'exécution de la commande :command:`build` (que vous l'ayez exécutez " +"explicitement ou que la commande :command:`install` l'ai fait pour vous), le " +"travail de la commande :command:`install` est relativement simple : tout ce " +"qu'il a à faire est de copier tout ce qui est sous :file:`build/lib` (ou :" +"file:`build/lib.{plat}`) dans le répertoire que vous avez choisi pour " +"l'installation." + +#: ../Doc/install/index.rst:245 +msgid "" +"If you don't choose an installation directory---i.e., if you just run " +"``setup.py install``\\ ---then the :command:`install` command installs to " +"the standard location for third-party Python modules. This location varies " +"by platform and by how you built/installed Python itself. On Unix (and Mac " +"OS X, which is also Unix-based), it also depends on whether the module " +"distribution being installed is pure Python or contains extensions (\"non-" +"pure\"):" +msgstr "" +"Si vous ne choisissez aucun répertoire d'installation -- c'est-à-dire, si " +"vous lancez simplement ``setup.py install``\\ -- alors la commande :command:" +"`install` installe à l'emplacement standard pour les modules tiers de " +"Python. Cet emplacement varie selon la plateforme et selon la façon dont " +"vous avez construit et/ou installés Python lui-même. Sous UNIX (et Mac OS X, " +"qui est également basé sur Unix), il dépend aussi de savoir si le module de " +"la distribution en cours d'installation est en pur Python ou contient des " +"extensions (\"non-pur\"):" + +#: ../Doc/install/index.rst:255 +msgid "Platform" +msgstr "Plateforme" + +#: ../Doc/install/index.rst:255 +msgid "Standard installation location" +msgstr "Emplacement standard de l'installation" + +#: ../Doc/install/index.rst:255 +msgid "Default value" +msgstr "Valeur par défaut" + +#: ../Doc/install/index.rst:255 ../Doc/install/index.rst:781 +#: ../Doc/install/index.rst:793 +msgid "Notes" +msgstr "Notes" + +#: ../Doc/install/index.rst:257 +msgid "Unix (pure)" +msgstr "UNIX (pur)" + +#: ../Doc/install/index.rst:257 ../Doc/install/index.rst:470 +msgid ":file:`{prefix}/lib/python{X.Y}/site-packages`" +msgstr ":file:`{prefix}/lib/python{X.Y}/site-packages`" + +#: ../Doc/install/index.rst:257 ../Doc/install/index.rst:259 +msgid ":file:`/usr/local/lib/python{X.Y}/site-packages`" +msgstr ":file:`/usr/local/lib/python{X.Y}/site-packages`" + +#: ../Doc/install/index.rst:257 ../Doc/install/index.rst:259 +#: ../Doc/install/index.rst:783 +msgid "\\(1)" +msgstr "\\(1)" + +#: ../Doc/install/index.rst:259 +msgid "Unix (non-pure)" +msgstr "UNIX (non-pur)" + +#: ../Doc/install/index.rst:259 ../Doc/install/index.rst:471 +msgid ":file:`{exec-prefix}/lib/python{X.Y}/site-packages`" +msgstr ":file:`{exec-prefix}/lib/python{X.Y}/site-packages`" + +#: ../Doc/install/index.rst:261 +msgid "Windows" +msgstr "Windows" + +#: ../Doc/install/index.rst:261 ../Doc/install/index.rst:522 +msgid ":file:`{prefix}\\\\Lib\\\\site-packages`" +msgstr ":file:`{prefix}\\\\Lib\\\\site-packages`" + +#: ../Doc/install/index.rst:261 +msgid ":file:`C:\\\\Python{XY}\\\\Lib\\\\site-packages`" +msgstr ":file:`C:\\\\Python{XY}\\\\Lib\\\\site-packages`" + +#: ../Doc/install/index.rst:261 ../Doc/install/index.rst:785 +msgid "\\(2)" +msgstr "\\(2)" + +#: ../Doc/install/index.rst:264 ../Doc/install/index.rst:805 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/install/index.rst:267 +msgid "" +"Most Linux distributions include Python as a standard part of the system, " +"so :file:`{prefix}` and :file:`{exec-prefix}` are usually both :file:`/usr` " +"on Linux. If you build Python yourself on Linux (or any Unix-like system), " +"the default :file:`{prefix}` and :file:`{exec-prefix}` are :file:`/usr/" +"local`." +msgstr "" +"La plupart des distributions Linux incluent Python comme un élément de base " +"du système, donc :file:`{prefix}` et :file:`{exec-prefix}` sont généralement " +"tous les deux :file:`/usr` sous Linux. Si vous construisez vous-même Python " +"sous Linux (ou tout autre système de type Unix), les valeurs par défaut de :" +"file:`{prefix}` et :file:`{exec-prefix}` sont souvent :file:`/usr/locale/`." + +#: ../Doc/install/index.rst:273 +msgid "" +"The default installation directory on Windows was :file:`C:\\\\Program Files" +"\\\\Python` under Python 1.6a1, 1.5.2, and earlier." +msgstr "" +"Sous Windows, le dossier d'installation par défaut était : :file:`C:\\" +"\\Program Files\\\\Python` sous Python 1.6a1, 1.5.2 et avant." + +#: ../Doc/install/index.rst:276 +msgid "" +":file:`{prefix}` and :file:`{exec-prefix}` stand for the directories that " +"Python is installed to, and where it finds its libraries at run-time. They " +"are always the same under Windows, and very often the same under Unix and " +"Mac OS X. You can find out what your Python installation uses for :file:" +"`{prefix}` and :file:`{exec-prefix}` by running Python in interactive mode " +"and typing a few simple commands. Under Unix, just type ``python`` at the " +"shell prompt. Under Windows, choose :menuselection:`Start --> Programs --> " +"Python X.Y --> Python (command line)`. Once the interpreter is started, " +"you type Python code at the prompt. For example, on my Linux system, I type " +"the three Python statements shown below, and get the output as shown, to " +"find out my :file:`{prefix}` and :file:`{exec-prefix}`:" +msgstr "" +":file:`{prefix}` et :file:`{exec-prefix}` désignent les répertoires dans " +"lesquels Python est installé et où il trouve les librairies lors de " +"l'exécution. Ils sont toujours identiques sous Windows et très souvent les " +"mêmes sous Unix et Mac OS X. Vous pouvez trouver ce que votre installation " +"de Python utilise pour :file:`{prefix}` et :file:`{exec-prefix}` en " +"exécutant Python en mode interactif et en tapant quelques commandes simples. " +"Sous Unix, taper seulement ``python`` à l'invite du *shell*. Sous Windows, " +"sélectionner :menuselection:`Démarrer --> Programmes --> Python X.Y --> " +"Python (ligne de commande)`. Un fois l'interpréteur démarré, vous taper du " +"code Python à l'invite de commande. Par exemple, sur mon système Linux, je " +"tape les trois instructions ci-dessous et obtient la sortie comme indiqué " +"pour trouver mes :file:`{prefix}` et :file:`{exec-prefix}` :" + +#: ../Doc/install/index.rst:298 +msgid "" +"A few other placeholders are used in this document: :file:`{X.Y}` stands for " +"the version of Python, for example ``3.2``; :file:`{abiflags}` will be " +"replaced by the value of :data:`sys.abiflags` or the empty string for " +"platforms which don't define ABI flags; :file:`{distname}` will be replaced " +"by the name of the module distribution being installed. Dots and " +"capitalization are important in the paths; for example, a value that uses " +"``python3.2`` on UNIX will typically use ``Python32`` on Windows." +msgstr "" +"Quelques autres remplacements utilisés dans ce document : :file:`{X.Y}` " +"représenter la version de Python, par exemple ``3.2``; :file:`{abiflags}` " +"sera remplacé par la valeur de :data:`sys.abiflags` ou la chaine vide pour " +"les plateformes qui ne définissent pas d’indicateurs d’ABI ; :file:" +"`{distname}` sera remplacé par le nom de la distribution de modules en train " +"d’être installée. Les points et la capitalisation sont importantes dans les " +"chemins ; par exemple, une valeur qui utilise ``python3.2`` sur Unix " +"utilisera typiquement ``Python32`` sur Windows." + +#: ../Doc/install/index.rst:306 +msgid "" +"If you don't want to install modules to the standard location, or if you " +"don't have permission to write there, then you need to read about alternate " +"installations in section :ref:`inst-alt-install`. If you want to customize " +"your installation directories more heavily, see section :ref:`inst-custom-" +"install` on custom installations." +msgstr "" +"Si vous ne voulez pas installer des modules à l'emplacement standard, ou si " +"vous n'avez pas la permission d'écrire là-bas, alors vous avez besoin de " +"lire la section :ref:`inst-alt-install` sur les alternatives d'installation. " +"Si vous souhaitez personnaliser vos répertoires d'installation plus " +"fortement, allez voir la section :ref:`inst-custom-install` sur les " +"installations personnalisées." + +#: ../Doc/install/index.rst:316 +msgid "Alternate Installation" +msgstr "Installation alternative" + +#: ../Doc/install/index.rst:318 +msgid "" +"Often, it is necessary or desirable to install modules to a location other " +"than the standard location for third-party Python modules. For example, on " +"a Unix system you might not have permission to write to the standard third-" +"party module directory. Or you might wish to try out a module before making " +"it a standard part of your local Python installation. This is especially " +"true when upgrading a distribution already present: you want to make sure " +"your existing base of scripts still works with the new version before " +"actually upgrading." +msgstr "" +"Il est souvent nécessaire ou désirable d’installer des modules à un " +"emplacement autre que l’emplacement standard pour les modules Python tiers. " +"Par exemple, sur un système Unix il est possible que vous n’ayez pas la " +"permission d’écrire dans le dossier standard pour les modules tiers. Ou vous " +"pouvez vouloir essayer un module avant d’en faire une partie standard de " +"votre installation locale de Python. C’est surtout vrai lors d’une mise à " +"jour d’une distribution déjà présente : vous voulez vous assurer que votre " +"base de scripts marche encore avec la nouvelle version avant de faire la " +"mise à jour pour de vrai." + +#: ../Doc/install/index.rst:326 +msgid "" +"The Distutils :command:`install` command is designed to make installing " +"module distributions to an alternate location simple and painless. The " +"basic idea is that you supply a base directory for the installation, and " +"the :command:`install` command picks a set of directories (called an " +"*installation scheme*) under this base directory in which to install files. " +"The details differ across platforms, so read whichever of the following " +"sections applies to you." +msgstr "" +"La commande :command:`install` de Distutils est conçue pour rendre " +"l’installation de distributions de modules à un emplacement alternatif " +"simple et sans douleur. L’idée de base est que vous lui fournissez un " +"dossier de base pour l’installation, et la commande :command:`install` " +"choisit un ensemble de dossier (appelé le *schéma d’installation*) dans " +"lequel elle installe les fichiers. Les détails diffèrent d’une plateforme à " +"une autre, donc lisez la section ci-dessous qui s’applique à vous." + +#: ../Doc/install/index.rst:334 +msgid "" +"Note that the various alternate installation schemes are mutually exclusive: " +"you can pass ``--user``, or ``--home``, or ``--prefix`` and ``--exec-" +"prefix``, or ``--install-base`` and ``--install-platbase``, but you can't " +"mix from these groups." +msgstr "" +"Notez que les différents schémas d’installation alternative sont " +"mutuellement exclusifs : vous pouvez passer ``--user``, ou ``--home``, ou " +"``--prefix`` et ``--exc-prefix``, ou ``--install-base`` et ``--install-" +"platbase``, mais vous ne pouvez pas mélanger ces groupes." + +#: ../Doc/install/index.rst:343 +msgid "Alternate installation: the user scheme" +msgstr "Installation alternative : le schéma *user*" + +#: ../Doc/install/index.rst:345 +msgid "" +"This scheme is designed to be the most convenient solution for users that " +"don't have write permission to the global site-packages directory or don't " +"want to install into it. It is enabled with a simple option::" +msgstr "" +"Ce schéma est conçu pour être la solution la plus pratique pour les " +"utilisateurs qui n’ont pas la permission d’écrire dans le dossier site-" +"packages global, ou qui ne veulent pas y écrire. Il est activé avec une " +"simple option : ::" + +#: ../Doc/install/index.rst:351 +msgid "" +"Files will be installed into subdirectories of :data:`site.USER_BASE` " +"(written as :file:`{userbase}` hereafter). This scheme installs pure Python " +"modules and extension modules in the same location (also known as :data:" +"`site.USER_SITE`). Here are the values for UNIX, including Mac OS X:" +msgstr "" +"Les fichiers seront installés dans des sous-dossiers de :data:`site." +"USER_BASE` (écrit :file:`{userbase}` dans la suite). Ce schéma installe des " +"modules Python purs et les modules d’extension au même endroit (aussi connu " +"sous le nom de :data:`site.USER_SITE`).Voici les valeurs pour UNIX, y " +"compris Mac OS XX : ::" + +#: ../Doc/install/index.rst:357 ../Doc/install/index.rst:368 +#: ../Doc/install/index.rst:419 ../Doc/install/index.rst:468 +#: ../Doc/install/index.rst:520 ../Doc/install/index.rst:545 +#: ../Doc/install/index.rst:781 ../Doc/install/index.rst:793 +msgid "Type of file" +msgstr "Type de fichier" + +#: ../Doc/install/index.rst:357 ../Doc/install/index.rst:368 +#: ../Doc/install/index.rst:419 ../Doc/install/index.rst:468 +#: ../Doc/install/index.rst:520 +msgid "Installation directory" +msgstr "Dossier d'installation" + +#: ../Doc/install/index.rst:359 ../Doc/install/index.rst:370 +#: ../Doc/install/index.rst:421 ../Doc/install/index.rst:522 +msgid "modules" +msgstr "modules" + +#: ../Doc/install/index.rst:359 +msgid ":file:`{userbase}/lib/python{X.Y}/site-packages`" +msgstr ":file:`{userbase}/lib/python{X.Y}/site-packages`" + +#: ../Doc/install/index.rst:360 ../Doc/install/index.rst:371 +#: ../Doc/install/index.rst:422 ../Doc/install/index.rst:472 +#: ../Doc/install/index.rst:523 ../Doc/install/index.rst:550 +msgid "scripts" +msgstr "scripts" + +#: ../Doc/install/index.rst:360 +msgid ":file:`{userbase}/bin`" +msgstr ":file:`{userbase}/bin`" + +#: ../Doc/install/index.rst:361 ../Doc/install/index.rst:372 +#: ../Doc/install/index.rst:423 ../Doc/install/index.rst:473 +#: ../Doc/install/index.rst:524 ../Doc/install/index.rst:551 +msgid "data" +msgstr "données" + +#: ../Doc/install/index.rst:361 ../Doc/install/index.rst:372 +msgid ":file:`{userbase}`" +msgstr ":file:`{userbase}`" + +#: ../Doc/install/index.rst:362 ../Doc/install/index.rst:373 +#: ../Doc/install/index.rst:424 ../Doc/install/index.rst:474 +#: ../Doc/install/index.rst:525 ../Doc/install/index.rst:552 +msgid "C headers" +msgstr "en-têtes C" + +#: ../Doc/install/index.rst:362 +msgid ":file:`{userbase}/include/python{X.Y}{abiflags}/{distname}`" +msgstr ":file:`{userbase}/include/python{X.Y}{abiflags}/{distname}`" + +#: ../Doc/install/index.rst:365 +msgid "And here are the values used on Windows:" +msgstr "Et voici les valeurs utilisées sur Windows : ::" + +#: ../Doc/install/index.rst:370 +msgid ":file:`{userbase}\\\\Python{XY}\\\\site-packages`" +msgstr ":file:`{userbase}\\\\Python{XY}\\\\site-packages`" + +#: ../Doc/install/index.rst:371 +msgid ":file:`{userbase}\\\\Python{XY}\\\\Scripts`" +msgstr ":file:`{userbase}\\\\Python{XY}\\\\Scripts`" + +#: ../Doc/install/index.rst:373 +msgid ":file:`{userbase}\\\\Python{XY}\\\\Include\\\\{distname}`" +msgstr ":file:`{userbase}\\\\Python{XY}\\\\Include\\\\{distname}`" + +#: ../Doc/install/index.rst:376 +msgid "" +"The advantage of using this scheme compared to the other ones described " +"below is that the user site-packages directory is under normal conditions " +"always included in :data:`sys.path` (see :mod:`site` for more information), " +"which means that there is no additional step to perform after running the :" +"file:`setup.py` script to finalize the installation." +msgstr "" +"L’avantage d’utiliser ce schéma plutôt que les autres décrits plus bas est " +"que le dossier site-package du schéma *user* est en temps normal toujours " +"inclus dans :data:`sys.path` (voir :mod:`site` pour plus d’informations), ce " +"qui signifie qu’il n’y a rien d’autre à faire après avoir exécuté le script :" +"file:`setup.py` pour finaliser l’installation." + +#: ../Doc/install/index.rst:382 +msgid "" +"The :command:`build_ext` command also has a ``--user`` option to add :file:" +"`{userbase}/include` to the compiler search path for header files and :file:" +"`{userbase}/lib` to the compiler search path for libraries as well as to the " +"runtime search path for shared C libraries (rpath)." +msgstr "" +"La commande :command:`build_ext` possède aussi une option ``--user`` pour " +"ajouter :file:`{userbase}/include` dans les chemins où le compilateur " +"recherche les fichiers d'en-têtes et :file:`{userbase}/lib` dans les chemins " +"où le compilateur recherche les bibliothèques ainsi que les bibliothèques C " +"partagées chargeables à l'exécution (`rpath`)." + +#: ../Doc/install/index.rst:391 +msgid "Alternate installation: the home scheme" +msgstr "Installation alternative : le schéma home" + +#: ../Doc/install/index.rst:393 +msgid "" +"The idea behind the \"home scheme\" is that you build and maintain a " +"personal stash of Python modules. This scheme's name is derived from the " +"idea of a \"home\" directory on Unix, since it's not unusual for a Unix user " +"to make their home directory have a layout similar to :file:`/usr/` or :file:" +"`/usr/local/`. This scheme can be used by anyone, regardless of the " +"operating system they are installing for." +msgstr "" +"L’idée derrière le « schéma home » est que vous compilez et maintenez un " +"espace personnel de modules Python. Le nom de ce schéma vient de l’idée du " +"dossier « home » sur Unix, vu qu’il n’est pas rare pour un utilisateur UNIX " +"de construire leur dossier *home* avec la même disposition que :file:`/usr/` " +"or :file:`/usr/local/`. Ce schéma peut être utilisé par n’importe qui, quel " +"que soit le système d’exploitation." + +#: ../Doc/install/index.rst:400 +msgid "Installing a new module distribution is as simple as ::" +msgstr "" +"Installer une nouvelle distribution de module est aussi simple que : ::" + +#: ../Doc/install/index.rst:404 +msgid "" +"where you can supply any directory you like for the :option:`!--home` " +"option. On Unix, lazy typists can just type a tilde (``~``); the :command:" +"`install` command will expand this to your home directory::" +msgstr "" +"où vous pouvez fournir le dossier de votre choix à l’option :option:`!--" +"home`. Sur Unix, les paresseux pourront juste mettre un tilde (``~``) ; la " +"commande :command:`install` le remplacera par le chemin vers votre dossier " +"*home* : ::" + +#: ../Doc/install/index.rst:410 +msgid "" +"To make Python find the distributions installed with this scheme, you may " +"have to :ref:`modify Python's search path ` or edit :mod:" +"`sitecustomize` (see :mod:`site`) to call :func:`site.addsitedir` or edit :" +"data:`sys.path`." +msgstr "" +"Pour que Python puisse trouver les distributions installées avec ce schéma, " +"vous devez :ref:`modifier le chemin de recherche de Python ` ou modifier :mod:`sitecustomize` (voir :mod:`site`) pour appeler :" +"func:`site.addsitedir` ou modifiez :data:`sys.path`." + +#: ../Doc/install/index.rst:415 +msgid "" +"The :option:`!--home` option defines the installation base directory. Files " +"are installed to the following directories under the installation base as " +"follows:" +msgstr "" +"L’option :option:`!--home` définit le dossier de base de l’installation. Les " +"fichiers sont installés dans les dossiers suivants dans la base de " +"l’installation de la façon suivante : ::" + +#: ../Doc/install/index.rst:421 +msgid ":file:`{home}/lib/python`" +msgstr ":file:`{home}/lib/python`" + +#: ../Doc/install/index.rst:422 +msgid ":file:`{home}/bin`" +msgstr ":file:`{home}/bin`" + +#: ../Doc/install/index.rst:423 +msgid ":file:`{home}`" +msgstr ":file:`{home}`" + +#: ../Doc/install/index.rst:424 +msgid ":file:`{home}/include/python/{distname}`" +msgstr ":file:`{home}/include/python/{distname}`" + +#: ../Doc/install/index.rst:427 +msgid "(Mentally replace slashes with backslashes if you're on Windows.)" +msgstr "" +"(Remplacez mentalement les slashs avec des antislash si vous êtes sur " +"Windows.)" + +#: ../Doc/install/index.rst:433 +msgid "Alternate installation: Unix (the prefix scheme)" +msgstr "Installation alternative : Unix (le schéma de préfixe)" + +#: ../Doc/install/index.rst:435 +msgid "" +"The \"prefix scheme\" is useful when you wish to use one Python installation " +"to perform the build/install (i.e., to run the setup script), but install " +"modules into the third-party module directory of a different Python " +"installation (or something that looks like a different Python " +"installation). If this sounds a trifle unusual, it is---that's why the user " +"and home schemes come before. However, there are at least two known cases " +"where the prefix scheme will be useful." +msgstr "" +"Le schéma de préfixe est utile quand vous voulez une installation de Python " +"pour faire la compilation/l’installation (i.e. exécuter le script *setup*), " +"mais utiliser les modules tiers d’une installation Python différente (ou " +"quelque chose qui ressemble à une installation Python différente). Si cela " +"semble inhabituel, ça l’est -- c’est pourquoi les schémas *user* et *home* " +"viennent avant. Cependant, il y a au moins deux cas connus où le schéma " +"*prefix* est utile." + +#: ../Doc/install/index.rst:442 +msgid "" +"First, consider that many Linux distributions put Python in :file:`/usr`, " +"rather than the more traditional :file:`/usr/local`. This is entirely " +"appropriate, since in those cases Python is part of \"the system\" rather " +"than a local add-on. However, if you are installing Python modules from " +"source, you probably want them to go in :file:`/usr/local/lib/python2.{X}` " +"rather than :file:`/usr/lib/python2.{X}`. This can be done with ::" +msgstr "" +"Premièrement, considérez que beaucoup de distributions Linux mettent Python " +"dans :file:`/usr`, plutôt que le traditionnel :file:`/usr/local`. C’est tout " +"à fait approprié, puisque dans ces cas Python fait partie du « système » " +"plutôt que d’une addition locale. Cependant, si vous installez des modules " +"Python depuis leur source, vous voulez probablement qu’ils aillent dans :" +"file:`/usr/local/lib/python2.{X}` plutôt que dans :file:`/usr/lib/python2.{X}" +"`. Ça peut être fait avec : ::" + +#: ../Doc/install/index.rst:451 +msgid "" +"Another possibility is a network filesystem where the name used to write to " +"a remote directory is different from the name used to read it: for example, " +"the Python interpreter accessed as :file:`/usr/local/bin/python` might " +"search for modules in :file:`/usr/local/lib/python2.{X}`, but those modules " +"would have to be installed to, say, :file:`/mnt/{@server}/export/lib/python2." +"{X}`. This could be done with ::" +msgstr "" +"Une autre possibilité est un système de fichier réseau où le nom est utilisé " +"pour écrire dans un dossier distant qui est différent du nom utilisé pour le " +"lire : par exemple, l’interpréteur Python appelé est :file:`/usr/local/bin/" +"python` et cherche les modules dans :file:`/usr/local/lib/python2.{X}`, mais " +"ces modules doivent être installé dans, par exemple, :file:`/mnt/{@server}/" +"export/lib/python2.{X}`.Ça peut être fait avec : ::" + +#: ../Doc/install/index.rst:460 +msgid "" +"In either case, the :option:`!--prefix` option defines the installation " +"base, and the :option:`!--exec-prefix` option defines the platform-specific " +"installation base, which is used for platform-specific files. (Currently, " +"this just means non-pure module distributions, but could be expanded to C " +"libraries, binary executables, etc.) If :option:`!--exec-prefix` is not " +"supplied, it defaults to :option:`!--prefix`. Files are installed as " +"follows:" +msgstr "" +"Dans les deux cas, l’option :option:`!--prefix` définit la base de " +"l’installation, et l’option :option:`!--exec-prefix` définit la base " +"d’installation spécifique à la plateforme, qui est utilisé pour des fichiers " +"spécifiques à la plateforme. (Actuellement, ça ne signifie que les " +"distributions de modules non-purs, mais peuvent être étendus aux " +"bibliothèques C, exécutables, etc.). Si :option:`!--exec-prefix` n’est pas " +"fourni, il vaut par défaut :option:`!--prefix`. Les fichiers sont ainsi : ::" + +#: ../Doc/install/index.rst:470 ../Doc/install/index.rst:547 +msgid "Python modules" +msgstr "Modules Python" + +#: ../Doc/install/index.rst:471 ../Doc/install/index.rst:548 +msgid "extension modules" +msgstr "modules d'extension" + +#: ../Doc/install/index.rst:472 +msgid ":file:`{prefix}/bin`" +msgstr ":file:`{prefix}/bin`" + +#: ../Doc/install/index.rst:473 ../Doc/install/index.rst:524 +msgid ":file:`{prefix}`" +msgstr ":file:`{prefix}`" + +#: ../Doc/install/index.rst:474 +msgid ":file:`{prefix}/include/python{X.Y}{abiflags}/{distname}`" +msgstr ":file:`{prefix}/include/python{X.Y}{abiflags}/{distname}`" + +#: ../Doc/install/index.rst:477 +msgid "" +"There is no requirement that :option:`!--prefix` or :option:`!--exec-prefix` " +"actually point to an alternate Python installation; if the directories " +"listed above do not already exist, they are created at installation time." +msgstr "" +"Il n'est pas obligatoire que :option:`!--prefix` ou :option:`!--exec-prefix` " +"pointent vers une installation alternative de Python. Si les dossiers listés " +"ci-dessus n’existent pas, ils sont créés au moment de l’installation." + +#: ../Doc/install/index.rst:481 +msgid "" +"Incidentally, the real reason the prefix scheme is important is simply that " +"a standard Unix installation uses the prefix scheme, but with :option:`!--" +"prefix` and :option:`!--exec-prefix` supplied by Python itself as ``sys." +"prefix`` and ``sys.exec_prefix``. Thus, you might think you'll never use " +"the prefix scheme, but every time you run ``python setup.py install`` " +"without any other options, you're using it." +msgstr "" +"Accessoirement, la vraie raison pour laquelle le schéma *prefix* est " +"important est simplement qu’une installation Unix standard utilise le schéma " +"*prefix*, mais avec les options :option:`!--prefix` et :option:`!--exec-" +"prefix` fournies par Python lui-même en tant que ``sys.prefix`` et ``sys." +"exec_prefix``. Vous pouvez donc penser que vous n’utiliserez jamais le " +"schéma *prefix*, mais à chaque fois que vous lancez ``python setup.py " +"install`` sans autre option, vous l’utilisez." + +#: ../Doc/install/index.rst:488 +msgid "" +"Note that installing extensions to an alternate Python installation has no " +"effect on how those extensions are built: in particular, the Python header " +"files (:file:`Python.h` and friends) installed with the Python interpreter " +"used to run the setup script will be used in compiling extensions. It is " +"your responsibility to ensure that the interpreter used to run extensions " +"installed in this way is compatible with the interpreter used to build " +"them. The best way to do this is to ensure that the two interpreters are " +"the same version of Python (possibly different builds, or possibly copies of " +"the same build). (Of course, if your :option:`!--prefix` and :option:`!--" +"exec-prefix` don't even point to an alternate Python installation, this is " +"immaterial.)" +msgstr "" +"Notez qu’installer des extensions à une installation Python alternative n’a " +"aucun effet sur la façon dont ces extensions sont construites. En " +"particulier, les fichiers en-têtes de Python (:file:`Python.h` et ses amis) " +"installés avec l’interpréteur Python utilisé pour exécuter le script *setup* " +"sera utilisé pour compiler les extensions. Il est de votre responsabilité de " +"vous assurer que l’interpréteur utilisé pour pour exécuter les extensions " +"installées de cette façon est compatible avec celui utilisé pour les " +"compiler. La meilleure façon pour cela est de s’assurer qu’ils sont " +"exactement la même version de Python (possiblement des compilations " +"différentes, ou différentes copies de la même). (Évidemment, si vos :option:" +"`!--prefix` et :option:`!--exec-prefix` ne pointent pas vers une " +"installation alternative de Python, cela n’a pas de sens." + +#: ../Doc/install/index.rst:503 +msgid "Alternate installation: Windows (the prefix scheme)" +msgstr "Installation alternative : Windows (le schéma de préfixe)" + +#: ../Doc/install/index.rst:505 +msgid "" +"Windows has no concept of a user's home directory, and since the standard " +"Python installation under Windows is simpler than under Unix, the :option:" +"`!--prefix` option has traditionally been used to install additional " +"packages in separate locations on Windows. ::" +msgstr "" +"Windows n'a pas de concept de répertoire utilisateur, et comme " +"l'installation standard de Python sur Windows est plus simple que sur Unix, " +"l':option:`!--prefix` option a traditionnellement été utilisée pour " +"installer des paquets supplémentaires à des endroits séparés sur Windows. ::" + +#: ../Doc/install/index.rst:512 +msgid "" +"to install modules to the :file:`\\\\Temp\\\\Python` directory on the " +"current drive." +msgstr "" +"pour installer des modules dans le dossier :file:`\\\\Temp\\\\Python` du " +"disque courant." + +#: ../Doc/install/index.rst:514 +msgid "" +"The installation base is defined by the :option:`!--prefix` option; the :" +"option:`!--exec-prefix` option is not supported under Windows, which means " +"that pure Python modules and extension modules are installed into the same " +"location. Files are installed as follows:" +msgstr "" +"Le dossier racine de l'installation est défini par l'option :option:`!--" +"prefix`. L'option :option:`!--exec-prefix` n'est pas gérée sur Windows, ce " +"qui signifie que les modules Python et les modules d'extension sont " +"installés au même endroit. Les fichiers sont installés selon ce tableau :" + +#: ../Doc/install/index.rst:523 +msgid ":file:`{prefix}\\\\Scripts`" +msgstr ":file:`{prefix}\\\\Scripts`" + +#: ../Doc/install/index.rst:525 +msgid ":file:`{prefix}\\\\Include\\\\{distname}`" +msgstr ":file:`{prefix}\\\\Include\\\\{distname}`" + +#: ../Doc/install/index.rst:532 +msgid "Custom Installation" +msgstr "Installation personnalisée" + +#: ../Doc/install/index.rst:534 +msgid "" +"Sometimes, the alternate installation schemes described in section :ref:" +"`inst-alt-install` just don't do what you want. You might want to tweak " +"just one or two directories while keeping everything under the same base " +"directory, or you might want to completely redefine the installation " +"scheme. In either case, you're creating a *custom installation scheme*." +msgstr "" +"Parfois, les procédés d'installation alternatifs décrits dans la section :" +"ref:`inst-alt-install` ne font pas ce que vous attendiez. Vous pourriez " +"vouloir modifier seulement un ou deux répertoires en conservant tout le " +"reste sous la même racine, ou vouloir redéfinir l'ensemble du procédé " +"d'installation. Quel que soit le cas, vous créez ainsi un *procédé " +"d'installation personnalisé*." + +#: ../Doc/install/index.rst:540 +msgid "" +"To create a custom installation scheme, you start with one of the alternate " +"schemes and override some of the installation directories used for the " +"various types of files, using these options:" +msgstr "" +"Pour créer un modèle d'installation personnalisé, partez d'un modèle " +"alternatif et remplacez les dossiers d'installation de types de fichiers " +"donnés via ces options :" + +#: ../Doc/install/index.rst:545 +msgid "Override option" +msgstr "Option" + +#: ../Doc/install/index.rst:547 +msgid "``--install-purelib``" +msgstr "``--install-purelib``" + +#: ../Doc/install/index.rst:548 +msgid "``--install-platlib``" +msgstr "``--install-platlib``" + +#: ../Doc/install/index.rst:549 +msgid "all modules" +msgstr "tous les modules" + +#: ../Doc/install/index.rst:549 +msgid "``--install-lib``" +msgstr "``--install-lib``" + +#: ../Doc/install/index.rst:550 +msgid "``--install-scripts``" +msgstr "``--install-scripts``" + +#: ../Doc/install/index.rst:551 +msgid "``--install-data``" +msgstr "``--install-data``" + +#: ../Doc/install/index.rst:552 +msgid "``--install-headers``" +msgstr "``--install-headers``" + +#: ../Doc/install/index.rst:555 +msgid "" +"These override options can be relative, absolute, or explicitly defined in " +"terms of one of the installation base directories. (There are two " +"installation base directories, and they are normally the same---they only " +"differ when you use the Unix \"prefix scheme\" and supply different ``--" +"prefix`` and ``--exec-prefix`` options; using ``--install-lib`` will " +"override values computed or given for ``--install-purelib`` and ``--install-" +"platlib``, and is recommended for schemes that don't make a difference " +"between Python and extension modules.)" +msgstr "" + +#: ../Doc/install/index.rst:564 +msgid "" +"For example, say you're installing a module distribution to your home " +"directory under Unix---but you want scripts to go in :file:`~/scripts` " +"rather than :file:`~/bin`. As you might expect, you can override this " +"directory with the :option:`!--install-scripts` option; in this case, it " +"makes most sense to supply a relative path, which will be interpreted " +"relative to the installation base directory (your home directory, in this " +"case)::" +msgstr "" + +#: ../Doc/install/index.rst:573 +msgid "" +"Another Unix example: suppose your Python installation was built and " +"installed with a prefix of :file:`/usr/local/python`, so under a standard " +"installation scripts will wind up in :file:`/usr/local/python/bin`. If you " +"want them in :file:`/usr/local/bin` instead, you would supply this absolute " +"directory for the :option:`!--install-scripts` option::" +msgstr "" + +#: ../Doc/install/index.rst:581 +msgid "" +"(This performs an installation using the \"prefix scheme,\" where the prefix " +"is whatever your Python interpreter was installed with--- :file:`/usr/local/" +"python` in this case.)" +msgstr "" + +#: ../Doc/install/index.rst:585 +msgid "" +"If you maintain Python on Windows, you might want third-party modules to " +"live in a subdirectory of :file:`{prefix}`, rather than right in :file:" +"`{prefix}` itself. This is almost as easy as customizing the script " +"installation directory---you just have to remember that there are two types " +"of modules to worry about, Python and extension modules, which can " +"conveniently be both controlled by one option::" +msgstr "" + +#: ../Doc/install/index.rst:594 +msgid "" +"The specified installation directory is relative to :file:`{prefix}`. Of " +"course, you also have to ensure that this directory is in Python's module " +"search path, such as by putting a :file:`.pth` file in a site directory " +"(see :mod:`site`). See section :ref:`inst-search-path` to find out how to " +"modify Python's search path." +msgstr "" + +#: ../Doc/install/index.rst:600 +msgid "" +"If you want to define an entire installation scheme, you just have to supply " +"all of the installation directory options. The recommended way to do this " +"is to supply relative paths; for example, if you want to maintain all Python " +"module-related files under :file:`python` in your home directory, and you " +"want a separate directory for each platform that you use your home directory " +"from, you might define the following installation scheme::" +msgstr "" + +#: ../Doc/install/index.rst:613 +msgid "or, equivalently, ::" +msgstr "ou ::" + +#: ../Doc/install/index.rst:621 +msgid "" +"``$PLAT`` is not (necessarily) an environment variable---it will be expanded " +"by the Distutils as it parses your command line options, just as it does " +"when parsing your configuration file(s)." +msgstr "" + +#: ../Doc/install/index.rst:625 +msgid "" +"Obviously, specifying the entire installation scheme every time you install " +"a new module distribution would be very tedious. Thus, you can put these " +"options into your Distutils config file (see section :ref:`inst-config-" +"files`):" +msgstr "" + +#: ../Doc/install/index.rst:638 +msgid "or, equivalently," +msgstr "ou (équivalent)," + +#: ../Doc/install/index.rst:649 +msgid "" +"Note that these two are *not* equivalent if you supply a different " +"installation base directory when you run the setup script. For example, ::" +msgstr "" + +#: ../Doc/install/index.rst:654 +msgid "" +"would install pure modules to :file:`/tmp/python/lib` in the first case, and " +"to :file:`/tmp/lib` in the second case. (For the second case, you probably " +"want to supply an installation base of :file:`/tmp/python`.)" +msgstr "" + +#: ../Doc/install/index.rst:658 +msgid "" +"You probably noticed the use of ``$HOME`` and ``$PLAT`` in the sample " +"configuration file input. These are Distutils configuration variables, " +"which bear a strong resemblance to environment variables. In fact, you can " +"use environment variables in config files on platforms that have such a " +"notion but the Distutils additionally define a few extra variables that may " +"not be in your environment, such as ``$PLAT``. (And of course, on systems " +"that don't have environment variables, such as Mac OS 9, the configuration " +"variables supplied by the Distutils are the only ones you can use.) See " +"section :ref:`inst-config-files` for details." +msgstr "" + +#: ../Doc/install/index.rst:668 +msgid "" +"When a :ref:`virtual environment ` is activated, any options that " +"change the installation path will be ignored from all distutils " +"configuration files to prevent inadvertently installing projects outside of " +"the virtual environment." +msgstr "" + +#: ../Doc/install/index.rst:682 +msgid "Modifying Python's Search Path" +msgstr "" + +#: ../Doc/install/index.rst:684 +msgid "" +"When the Python interpreter executes an :keyword:`import` statement, it " +"searches for both Python code and extension modules along a search path. A " +"default value for the path is configured into the Python binary when the " +"interpreter is built. You can determine the path by importing the :mod:`sys` " +"module and printing the value of ``sys.path``. ::" +msgstr "" + +#: ../Doc/install/index.rst:701 +msgid "" +"The null string in ``sys.path`` represents the current working directory." +msgstr "" + +#: ../Doc/install/index.rst:703 +msgid "" +"The expected convention for locally installed packages is to put them in " +"the :file:`{...}/site-packages/` directory, but you may want to install " +"Python modules into some arbitrary directory. For example, your site may " +"have a convention of keeping all software related to the web server under :" +"file:`/www`. Add-on Python modules might then belong in :file:`/www/python`, " +"and in order to import them, this directory must be added to ``sys.path``. " +"There are several different ways to add the directory." +msgstr "" + +#: ../Doc/install/index.rst:711 +msgid "" +"The most convenient way is to add a path configuration file to a directory " +"that's already on Python's path, usually to the :file:`.../site-packages/` " +"directory. Path configuration files have an extension of :file:`.pth`, and " +"each line must contain a single path that will be appended to ``sys.path``. " +"(Because the new paths are appended to ``sys.path``, modules in the added " +"directories will not override standard modules. This means you can't use " +"this mechanism for installing fixed versions of standard modules.)" +msgstr "" + +#: ../Doc/install/index.rst:719 +msgid "" +"Paths can be absolute or relative, in which case they're relative to the " +"directory containing the :file:`.pth` file. See the documentation of the :" +"mod:`site` module for more information." +msgstr "" + +#: ../Doc/install/index.rst:723 +msgid "" +"A slightly less convenient way is to edit the :file:`site.py` file in " +"Python's standard library, and modify ``sys.path``. :file:`site.py` is " +"automatically imported when the Python interpreter is executed, unless the :" +"option:`-S` switch is supplied to suppress this behaviour. So you could " +"simply edit :file:`site.py` and add two lines to it:" +msgstr "" + +#: ../Doc/install/index.rst:734 +msgid "" +"However, if you reinstall the same major version of Python (perhaps when " +"upgrading from 2.2 to 2.2.2, for example) :file:`site.py` will be " +"overwritten by the stock version. You'd have to remember that it was " +"modified and save a copy before doing the installation." +msgstr "" + +#: ../Doc/install/index.rst:739 +msgid "" +"There are two environment variables that can modify ``sys.path``. :envvar:" +"`PYTHONHOME` sets an alternate value for the prefix of the Python " +"installation. For example, if :envvar:`PYTHONHOME` is set to ``/www/" +"python``, the search path will be set to ``['', '/www/python/lib/pythonX." +"Y/', '/www/python/lib/pythonX.Y/plat-linux2', ...]``." +msgstr "" + +#: ../Doc/install/index.rst:745 +msgid "" +"The :envvar:`PYTHONPATH` variable can be set to a list of paths that will be " +"added to the beginning of ``sys.path``. For example, if :envvar:" +"`PYTHONPATH` is set to ``/www/python:/opt/py``, the search path will begin " +"with ``['/www/python', '/opt/py']``. (Note that directories must exist in " +"order to be added to ``sys.path``; the :mod:`site` module removes paths that " +"don't exist.)" +msgstr "" + +#: ../Doc/install/index.rst:752 +msgid "" +"Finally, ``sys.path`` is just a regular Python list, so any Python " +"application can modify it by adding or removing entries." +msgstr "" + +#: ../Doc/install/index.rst:759 +msgid "Distutils Configuration Files" +msgstr "" + +#: ../Doc/install/index.rst:761 +msgid "" +"As mentioned above, you can use Distutils configuration files to record " +"personal or site preferences for any Distutils options. That is, any option " +"to any command can be stored in one of two or three (depending on your " +"platform) configuration files, which will be consulted before the command-" +"line is parsed. This means that configuration files will override default " +"values, and the command-line will in turn override configuration files. " +"Furthermore, if multiple configuration files apply, values from \"earlier\" " +"files are overridden by \"later\" files." +msgstr "" + +#: ../Doc/install/index.rst:774 +msgid "Location and names of config files" +msgstr "" + +#: ../Doc/install/index.rst:776 +msgid "" +"The names and locations of the configuration files vary slightly across " +"platforms. On Unix and Mac OS X, the three configuration files (in the " +"order they are processed) are:" +msgstr "" + +#: ../Doc/install/index.rst:781 ../Doc/install/index.rst:793 +msgid "Location and filename" +msgstr "" + +#: ../Doc/install/index.rst:783 ../Doc/install/index.rst:795 +msgid "system" +msgstr "" + +#: ../Doc/install/index.rst:783 +msgid ":file:`{prefix}/lib/python{ver}/distutils/distutils.cfg`" +msgstr "" + +#: ../Doc/install/index.rst:785 ../Doc/install/index.rst:797 +msgid "personal" +msgstr "" + +#: ../Doc/install/index.rst:785 +msgid ":file:`$HOME/.pydistutils.cfg`" +msgstr "" + +#: ../Doc/install/index.rst:787 ../Doc/install/index.rst:799 +msgid "local" +msgstr "" + +#: ../Doc/install/index.rst:787 ../Doc/install/index.rst:799 +msgid ":file:`setup.cfg`" +msgstr "" + +#: ../Doc/install/index.rst:787 ../Doc/install/index.rst:799 +msgid "\\(3)" +msgstr "\\(3)" + +#: ../Doc/install/index.rst:790 +msgid "And on Windows, the configuration files are:" +msgstr "" + +#: ../Doc/install/index.rst:795 +msgid ":file:`{prefix}\\\\Lib\\\\distutils\\\\distutils.cfg`" +msgstr "" + +#: ../Doc/install/index.rst:795 +msgid "\\(4)" +msgstr "\\(4)" + +#: ../Doc/install/index.rst:797 +msgid ":file:`%HOME%\\\\pydistutils.cfg`" +msgstr "" + +#: ../Doc/install/index.rst:797 +msgid "\\(5)" +msgstr "\\(5)" + +#: ../Doc/install/index.rst:802 +msgid "" +"On all platforms, the \"personal\" file can be temporarily disabled by " +"passing the `--no-user-cfg` option." +msgstr "" + +#: ../Doc/install/index.rst:808 +msgid "" +"Strictly speaking, the system-wide configuration file lives in the directory " +"where the Distutils are installed; under Python 1.6 and later on Unix, this " +"is as shown. For Python 1.5.2, the Distutils will normally be installed to :" +"file:`{prefix}/lib/python1.5/site-packages/distutils`, so the system " +"configuration file should be put there under Python 1.5.2." +msgstr "" + +#: ../Doc/install/index.rst:815 +msgid "" +"On Unix, if the :envvar:`HOME` environment variable is not defined, the " +"user's home directory will be determined with the :func:`getpwuid` function " +"from the standard :mod:`pwd` module. This is done by the :func:`os.path." +"expanduser` function used by Distutils." +msgstr "" + +#: ../Doc/install/index.rst:821 +msgid "" +"I.e., in the current directory (usually the location of the setup script)." +msgstr "" + +#: ../Doc/install/index.rst:824 +msgid "" +"(See also note (1).) Under Python 1.6 and later, Python's default " +"\"installation prefix\" is :file:`C:\\\\Python`, so the system configuration " +"file is normally :file:`C:\\\\Python\\\\Lib\\\\distutils\\\\distutils.cfg`. " +"Under Python 1.5.2, the default prefix was :file:`C:\\\\Program Files\\" +"\\Python`, and the Distutils were not part of the standard library---so the " +"system configuration file would be :file:`C:\\\\Program Files\\\\Python\\" +"\\distutils\\\\distutils.cfg` in a standard Python 1.5.2 installation under " +"Windows." +msgstr "" + +#: ../Doc/install/index.rst:833 +msgid "" +"On Windows, if the :envvar:`HOME` environment variable is not defined, :" +"envvar:`USERPROFILE` then :envvar:`HOMEDRIVE` and :envvar:`HOMEPATH` will be " +"tried. This is done by the :func:`os.path.expanduser` function used by " +"Distutils." +msgstr "" + +#: ../Doc/install/index.rst:842 +msgid "Syntax of config files" +msgstr "" + +#: ../Doc/install/index.rst:844 +msgid "" +"The Distutils configuration files all have the same syntax. The config " +"files are grouped into sections. There is one section for each Distutils " +"command, plus a ``global`` section for global options that affect every " +"command. Each section consists of one option per line, specified as " +"``option=value``." +msgstr "" + +#: ../Doc/install/index.rst:849 +msgid "" +"For example, the following is a complete config file that just forces all " +"commands to run quietly by default:" +msgstr "" + +#: ../Doc/install/index.rst:857 +msgid "" +"If this is installed as the system config file, it will affect all " +"processing of any Python module distribution by any user on the current " +"system. If it is installed as your personal config file (on systems that " +"support them), it will affect only module distributions processed by you. " +"And if it is used as the :file:`setup.cfg` for a particular module " +"distribution, it affects only that distribution." +msgstr "" + +#: ../Doc/install/index.rst:864 +msgid "" +"You could override the default \"build base\" directory and make the :" +"command:`build\\*` commands always forcibly rebuild all files with the " +"following:" +msgstr "" + +#: ../Doc/install/index.rst:874 +msgid "which corresponds to the command-line arguments ::" +msgstr "" + +#: ../Doc/install/index.rst:878 +msgid "" +"except that including the :command:`build` command on the command-line means " +"that command will be run. Including a particular command in config files " +"has no such implication; it only means that if the command is run, the " +"options in the config file will apply. (Or if other commands that derive " +"values from it are run, they will use the values in the config file.)" +msgstr "" + +#: ../Doc/install/index.rst:884 +msgid "" +"You can find out the complete list of options for any command using the :" +"option:`!--help` option, e.g.::" +msgstr "" + +#: ../Doc/install/index.rst:889 +msgid "" +"and you can find out the complete list of global options by using :option:" +"`!--help` without a command::" +msgstr "" + +#: ../Doc/install/index.rst:894 +msgid "" +"See also the \"Reference\" section of the \"Distributing Python Modules\" " +"manual." +msgstr "" + +#: ../Doc/install/index.rst:900 +msgid "Building Extensions: Tips and Tricks" +msgstr "" + +#: ../Doc/install/index.rst:902 +msgid "" +"Whenever possible, the Distutils try to use the configuration information " +"made available by the Python interpreter used to run the :file:`setup.py` " +"script. For example, the same compiler and linker flags used to compile " +"Python will also be used for compiling extensions. Usually this will work " +"well, but in complicated situations this might be inappropriate. This " +"section discusses how to override the usual Distutils behaviour." +msgstr "" + +#: ../Doc/install/index.rst:913 +msgid "Tweaking compiler/linker flags" +msgstr "" + +#: ../Doc/install/index.rst:915 +msgid "" +"Compiling a Python extension written in C or C++ will sometimes require " +"specifying custom flags for the compiler and linker in order to use a " +"particular library or produce a special kind of object code. This is " +"especially true if the extension hasn't been tested on your platform, or if " +"you're trying to cross-compile Python." +msgstr "" + +#: ../Doc/install/index.rst:921 +msgid "" +"In the most general case, the extension author might have foreseen that " +"compiling the extensions would be complicated, and provided a :file:`Setup` " +"file for you to edit. This will likely only be done if the module " +"distribution contains many separate extension modules, or if they often " +"require elaborate sets of compiler flags in order to work." +msgstr "" + +#: ../Doc/install/index.rst:927 +msgid "" +"A :file:`Setup` file, if present, is parsed in order to get a list of " +"extensions to build. Each line in a :file:`Setup` describes a single " +"module. Lines have the following structure::" +msgstr "" + +#: ../Doc/install/index.rst:934 +msgid "Let's examine each of the fields in turn." +msgstr "" + +#: ../Doc/install/index.rst:936 +msgid "" +"*module* is the name of the extension module to be built, and should be a " +"valid Python identifier. You can't just change this in order to rename a " +"module (edits to the source code would also be needed), so this should be " +"left alone." +msgstr "" + +#: ../Doc/install/index.rst:940 +msgid "" +"*sourcefile* is anything that's likely to be a source code file, at least " +"judging by the filename. Filenames ending in :file:`.c` are assumed to be " +"written in C, filenames ending in :file:`.C`, :file:`.cc`, and :file:`.c++` " +"are assumed to be C++, and filenames ending in :file:`.m` or :file:`.mm` are " +"assumed to be in Objective C." +msgstr "" + +#: ../Doc/install/index.rst:946 +msgid "" +"*cpparg* is an argument for the C preprocessor, and is anything starting " +"with :option:`!-I`, :option:`!-D`, :option:`!-U` or :option:`!-C`." +msgstr "" + +#: ../Doc/install/index.rst:949 +msgid "" +"*library* is anything ending in :file:`.a` or beginning with :option:`!-l` " +"or :option:`!-L`." +msgstr "" + +#: ../Doc/install/index.rst:952 +msgid "" +"If a particular platform requires a special library on your platform, you " +"can add it by editing the :file:`Setup` file and running ``python setup.py " +"build``. For example, if the module defined by the line ::" +msgstr "" + +#: ../Doc/install/index.rst:958 +msgid "" +"must be linked with the math library :file:`libm.a` on your platform, simply " +"add :option:`!-lm` to the line::" +msgstr "" + +#: ../Doc/install/index.rst:963 +msgid "" +"Arbitrary switches intended for the compiler or the linker can be supplied " +"with the :option:`!-Xcompiler` *arg* and :option:`!-Xlinker` *arg* options::" +msgstr "" + +#: ../Doc/install/index.rst:968 +msgid "" +"The next option after :option:`!-Xcompiler` and :option:`!-Xlinker` will be " +"appended to the proper command line, so in the above example the compiler " +"will be passed the :option:`!-o32` option, and the linker will be passed :" +"option:`!-shared`. If a compiler option requires an argument, you'll have " +"to supply multiple :option:`!-Xcompiler` options; for example, to pass ``-x c" +"++`` the :file:`Setup` file would have to contain ``-Xcompiler -x -Xcompiler " +"c++``." +msgstr "" + +#: ../Doc/install/index.rst:975 +msgid "" +"Compiler flags can also be supplied through setting the :envvar:`CFLAGS` " +"environment variable. If set, the contents of :envvar:`CFLAGS` will be " +"added to the compiler flags specified in the :file:`Setup` file." +msgstr "" + +#: ../Doc/install/index.rst:983 +msgid "Using non-Microsoft compilers on Windows" +msgstr "" + +#: ../Doc/install/index.rst:990 +msgid "Borland/CodeGear C++" +msgstr "" + +#: ../Doc/install/index.rst:992 +msgid "" +"This subsection describes the necessary steps to use Distutils with the " +"Borland C++ compiler version 5.5. First you have to know that Borland's " +"object file format (OMF) is different from the format used by the Python " +"version you can download from the Python or ActiveState Web site. (Python " +"is built with Microsoft Visual C++, which uses COFF as the object file " +"format.) For this reason you have to convert Python's library :file:" +"`python25.lib` into the Borland format. You can do this as follows:" +msgstr "" + +#: ../Doc/install/index.rst:1007 +msgid "" +"The :file:`coff2omf` program comes with the Borland compiler. The file :" +"file:`python25.lib` is in the :file:`Libs` directory of your Python " +"installation. If your extension uses other libraries (zlib, ...) you have " +"to convert them too." +msgstr "" + +#: ../Doc/install/index.rst:1012 +msgid "" +"The converted files have to reside in the same directories as the normal " +"libraries." +msgstr "" + +#: ../Doc/install/index.rst:1015 +msgid "" +"How does Distutils manage to use these libraries with their changed names? " +"If the extension needs a library (eg. :file:`foo`) Distutils checks first if " +"it finds a library with suffix :file:`_bcpp` (eg. :file:`foo_bcpp.lib`) and " +"then uses this library. In the case it doesn't find such a special library " +"it uses the default name (:file:`foo.lib`.) [#]_" +msgstr "" + +#: ../Doc/install/index.rst:1021 +msgid "" +"To let Distutils compile your extension with Borland C++ you now have to " +"type::" +msgstr "" + +#: ../Doc/install/index.rst:1025 +msgid "" +"If you want to use the Borland C++ compiler as the default, you could " +"specify this in your personal or system-wide configuration file for " +"Distutils (see section :ref:`inst-config-files`.)" +msgstr "" + +#: ../Doc/install/index.rst:1034 +msgid "`C++Builder Compiler `_" +msgstr "" + +#: ../Doc/install/index.rst:1033 +msgid "" +"Information about the free C++ compiler from Borland, including links to the " +"download pages." +msgstr "" + +#: ../Doc/install/index.rst:1037 +msgid "" +"`Creating Python Extensions Using Borland's Free Compiler `_" +msgstr "" + +#: ../Doc/install/index.rst:1037 +msgid "" +"Document describing how to use Borland's free command-line C++ compiler to " +"build Python." +msgstr "" + +#: ../Doc/install/index.rst:1042 +msgid "GNU C / Cygwin / MinGW" +msgstr "" + +#: ../Doc/install/index.rst:1044 +msgid "" +"This section describes the necessary steps to use Distutils with the GNU C/C+" +"+ compilers in their Cygwin and MinGW distributions. [#]_ For a Python " +"interpreter that was built with Cygwin, everything should work without any " +"of these following steps." +msgstr "" + +#: ../Doc/install/index.rst:1049 +msgid "" +"Not all extensions can be built with MinGW or Cygwin, but many can. " +"Extensions most likely to not work are those that use C++ or depend on " +"Microsoft Visual C extensions." +msgstr "" + +#: ../Doc/install/index.rst:1053 +msgid "To let Distutils compile your extension with Cygwin you have to type::" +msgstr "" + +#: ../Doc/install/index.rst:1057 +msgid "and for Cygwin in no-cygwin mode [#]_ or for MinGW type::" +msgstr "" + +#: ../Doc/install/index.rst:1061 +msgid "" +"If you want to use any of these options/compilers as default, you should " +"consider writing it in your personal or system-wide configuration file for " +"Distutils (see section :ref:`inst-config-files`.)" +msgstr "" + +#: ../Doc/install/index.rst:1066 +msgid "Older Versions of Python and MinGW" +msgstr "" + +#: ../Doc/install/index.rst:1067 +msgid "" +"The following instructions only apply if you're using a version of Python " +"inferior to 2.4.1 with a MinGW inferior to 3.0.0 (with " +"binutils-2.13.90-20030111-1)." +msgstr "" + +#: ../Doc/install/index.rst:1071 +msgid "" +"These compilers require some special libraries. This task is more complex " +"than for Borland's C++, because there is no program to convert the library. " +"First you have to create a list of symbols which the Python DLL exports. " +"(You can find a good program for this task at https://sourceforge.net/" +"projects/mingw/files/MinGW/Extension/pexports/)." +msgstr "" + +#: ../Doc/install/index.rst:1084 +msgid "" +"The location of an installed :file:`python25.dll` will depend on the " +"installation options and the version and language of Windows. In a \"just " +"for me\" installation, it will appear in the root of the installation " +"directory. In a shared installation, it will be located in the system " +"directory." +msgstr "" + +#: ../Doc/install/index.rst:1089 +msgid "" +"Then you can create from these information an import library for gcc. ::" +msgstr "" + +#: ../Doc/install/index.rst:1093 +msgid "" +"The resulting library has to be placed in the same directory as :file:" +"`python25.lib`. (Should be the :file:`libs` directory under your Python " +"installation directory.)" +msgstr "" + +#: ../Doc/install/index.rst:1097 +msgid "" +"If your extension uses other libraries (zlib,...) you might have to convert " +"them too. The converted files have to reside in the same directories as the " +"normal libraries do." +msgstr "" + +#: ../Doc/install/index.rst:1104 +msgid "" +"`Building Python modules on MS Windows platform with MinGW `_" +msgstr "" + +#: ../Doc/install/index.rst:1105 +msgid "" +"Information about building the required libraries for the MinGW environment." +msgstr "" + +#: ../Doc/install/index.rst:1109 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/install/index.rst:1110 +msgid "" +"This also means you could replace all existing COFF-libraries with OMF-" +"libraries of the same name." +msgstr "" + +#: ../Doc/install/index.rst:1113 +msgid "" +"Check https://www.sourceware.org/cygwin/ and http://www.mingw.org/ for more " +"information" +msgstr "" + +#: ../Doc/install/index.rst:1116 +msgid "" +"Then you have no POSIX emulation available, but you also don't need :file:" +"`cygwin1.dll`." +msgstr "" diff --git a/installing/index.po b/installing/index.po new file mode 100644 index 000000000..92ebe6179 --- /dev/null +++ b/installing/index.po @@ -0,0 +1,474 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-12-14 15:02+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/installing/index.rst:7 +msgid "Installing Python Modules" +msgstr "Installation de modules Python" + +#: ../Doc/installing/index.rst:0 +msgid "Email" +msgstr "Email" + +#: ../Doc/installing/index.rst:9 +msgid "distutils-sig@python.org" +msgstr "distutils-sig@python.org" + +#: ../Doc/installing/index.rst:11 +msgid "" +"As a popular open source development project, Python has an active " +"supporting community of contributors and users that also make their software " +"available for other Python developers to use under open source license terms." +msgstr "" +"En tant que logiciel libre populaire, Python bénéficie d'une communauté " +"active de contributeurs et d'utilisateurs qui rendent à leur tour leurs " +"logiciels disponibles, sous licence libre, pour les autres développeurs " +"Python." + +#: ../Doc/installing/index.rst:15 +msgid "" +"This allows Python users to share and collaborate effectively, benefiting " +"from the solutions others have already created to common (and sometimes even " +"rare!) problems, as well as potentially contributing their own solutions to " +"the common pool." +msgstr "" +"Cela permet aux utilisateurs de Python de partager et de collaborer " +"efficacement, bénéficiant des solutions que les autres ont déjà crées pour " +"résoudre les problèmes communs (ou même, parfois, rares !), aussi que de " +"partager leurs propres solutions à tous." + +#: ../Doc/installing/index.rst:20 +msgid "" +"This guide covers the installation part of the process. For a guide to " +"creating and sharing your own Python projects, refer to the :ref:" +"`distribution guide `." +msgstr "" +"Ce guide couvre la partie installation. Pour un guide sur la création et le " +"partage de vos propres projets Python, voyez :ref:`le guide de distribution " +"`." + +#: ../Doc/installing/index.rst:26 +msgid "" +"For corporate and other institutional users, be aware that many " +"organisations have their own policies around using and contributing to open " +"source software. Please take such policies into account when making use of " +"the distribution and installation tools provided with Python." +msgstr "" +"Pour les entreprises et autres institutions, gardez en tête que certaines " +"organisations ont leur propres règles sur l'utilisation et la contribution " +"au logiciel libre. Prenez ces règles en compte lorsque vous utilisez les " +"outils de distribution et d'installation fournis par Python." + +#: ../Doc/installing/index.rst:33 +msgid "Key terms" +msgstr "Vocabulaire" + +#: ../Doc/installing/index.rst:35 +msgid "" +"``pip`` is the preferred installer program. Starting with Python 3.4, it is " +"included by default with the Python binary installers." +msgstr "" +"``pip`` est l'outil d'installation de prédilection. À partir de Python 3.4, " +"il est inclus par défaut avec l'installateur de Python." + +#: ../Doc/installing/index.rst:37 +msgid "" +"A *virtual environment* is a semi-isolated Python environment that allows " +"packages to be installed for use by a particular application, rather than " +"being installed system wide." +msgstr "" +"Un *environnement virtuel* est un environnement Python semi-isolé qui " +"autorise les paquets à être installés pour une application particulière, " +"plutôt que d'être installés au niveau du système." + +#: ../Doc/installing/index.rst:40 +msgid "" +"``venv`` is the standard tool for creating virtual environments, and has " +"been part of Python since Python 3.3. Starting with Python 3.4, it defaults " +"to installing ``pip`` into all created virtual environments." +msgstr "" +"``venv`` est l'outil standard pour créer des environnements virtuels, et est " +"intégré à Python depuis la version 3.3. Depuis Python 3.4, il installe aussi " +"``pip`` dans tous les environnements virtuels créés." + +#: ../Doc/installing/index.rst:43 +msgid "" +"``virtualenv`` is a third party alternative (and predecessor) to ``venv``. " +"It allows virtual environments to be used on versions of Python prior to " +"3.4, which either don't provide ``venv`` at all, or aren't able to " +"automatically install ``pip`` into created environments." +msgstr "" +"``virtualenv`` est une alternative tierce à ``venv`` (et son prédécesseur). " +"Elle permet la création d'environnements virtuels pour les versions de " +"Python antérieures à 3.4, qui ne fournissent pas de ``venv``, ou ne sont pas " +"capables d'installer automatiquement ``pip`` dans les environnements créés." + +#: ../Doc/installing/index.rst:47 +msgid "" +"The `Python Packaging Index `__ is a public repository of " +"open source licensed packages made available for use by other Python users." +msgstr "" +"L'`Index des Paquets Python `__ est un dépôt public des " +"paquets sous licence ouverte disponibles pour tous les utilisateurs Python." + +#: ../Doc/installing/index.rst:50 +msgid "" +"the `Python Packaging Authority `__ is the group of " +"developers and documentation authors responsible for the maintenance and " +"evolution of the standard packaging tools and the associated metadata and " +"file format standards. They maintain a variety of tools, documentation, and " +"issue trackers on both `GitHub `__ and `BitBucket " +"`__." +msgstr "" +"l'`Autorité des Paquets Python `__ est le groupe de " +"développeurs et d'auteurs de documentation responsable de la maintenance et " +"l'évolution des outils d'empaquetage standards et des métadonnées associées, " +"ainsi que des standards sur les formats de fichiers. Ils maintiennent une " +"multitude d'outils, documentations, et des systèmes de tickets sur `GitHub " +"`__ et `BitBucket `__." + +#: ../Doc/installing/index.rst:57 +msgid "" +"``distutils`` is the original build and distribution system first added to " +"the Python standard library in 1998. While direct use of ``distutils`` is " +"being phased out, it still laid the foundation for the current packaging and " +"distribution infrastructure, and it not only remains part of the standard " +"library, but its name lives on in other ways (such as the name of the " +"mailing list used to coordinate Python packaging standards development)." +msgstr "" +"``distutils`` est le premier système de construction et de distribution " +"ajouté à la bibliothèque standard en 1998. Bien que l'utilisation directe de " +"``distutils`` soit progressivement supprimée, elle reste le fondement de " +"l'infrastructure actuelle de construction de paquet et de distribution. Au " +"delà de rester dans la bibliothèque standard, son nom vit aussi sous " +"d'autres formes, tel que la liste de diffusion utilisée pour coordonner le " +"développement et les standards de la création de paquet." + +#: ../Doc/installing/index.rst:65 +msgid "" +"``pyvenv`` was the recommended tool for creating virtual environments for " +"Python 3.3 and 3.4, and is `deprecated in Python 3.6 `_." +msgstr "" +"``pyvenv`` était l'outil recommandé pour créer des environnements sous " +"Python 3.3 et 3.4, et est `obsolète depuis Python 3.6 `_." + +#: ../Doc/installing/index.rst:70 +msgid "" +"The use of ``venv`` is now recommended for creating virtual environments." +msgstr "" +"L'utilisation de ``venv`` est maintenant recommandée pour créer vos " +"environnements virtuels." + +#: ../Doc/installing/index.rst:75 +msgid "" +"`Python Packaging User Guide: Creating and using virtual environments " +"`__" +msgstr "" +"`Guide Utilisateur de l'Empaquetage Python : Créer et utiliser des " +"environnements virtuels `__" + +#: ../Doc/installing/index.rst:80 +msgid "Basic usage" +msgstr "Utilisation de base" + +#: ../Doc/installing/index.rst:82 +msgid "" +"The standard packaging tools are all designed to be used from the command " +"line." +msgstr "" +"Les outils standards de création de paquets sont tous conçus pour être " +"utilisés à partir de la ligne de commande." + +#: ../Doc/installing/index.rst:85 +msgid "" +"The following command will install the latest version of a module and its " +"dependencies from the Python Packaging Index::" +msgstr "" +"La commande suivante va installer la dernière version d'un module et ses " +"dépendances depuis le *Python Package Index* ::" + +#: ../Doc/installing/index.rst:92 +msgid "" +"For POSIX users (including Mac OS X and Linux users), the examples in this " +"guide assume the use of a :term:`virtual environment`." +msgstr "" +"Pour les utilisateurs POSIX (y compris Mac OS X et Linux), les exemples de " +"ce guide supposent l'utilisation d'un :term:`environnement virtuel`." + +#: ../Doc/installing/index.rst:95 +msgid "" +"For Windows users, the examples in this guide assume that the option to " +"adjust the system PATH environment variable was selected when installing " +"Python." +msgstr "" +"Pour les utilisateurs de Windows, les exemples de ce guide supposent que " +"l'option proposant de modifier la variable d'environnement PATH à été cochée " +"lors de l'installation de Python." + +#: ../Doc/installing/index.rst:99 +msgid "" +"It's also possible to specify an exact or minimum version directly on the " +"command line. When using comparator operators such as ``>``, ``<`` or some " +"other special character which get interpreted by shell, the package name and " +"the version should be enclosed within double quotes::" +msgstr "" +"Il est aussi possible de préciser une version minimum exacte directement " +"depuis la ligne de commande. Utiliser des caractères de comparaison tel que " +"``>``, ``<`` ou d'autres caractères spéciaux qui sont interprétés par le " +"*shell*, le nom du paquet et la version doivent être mis entre guillemets ::" + +#: ../Doc/installing/index.rst:107 +msgid "" +"Normally, if a suitable module is already installed, attempting to install " +"it again will have no effect. Upgrading existing modules must be requested " +"explicitly::" +msgstr "" +"Normalement, si un module approprié est déjà installé, l'installer à nouveau " +"n'aura aucun effet. La mise à jour de modules existants doit être demandée " +"explicitement ::" + +#: ../Doc/installing/index.rst:113 +msgid "" +"More information and resources regarding ``pip`` and its capabilities can be " +"found in the `Python Packaging User Guide `__." +msgstr "" +"Plus d'informations et de ressources concernant ``pip`` et ses capacités " +"peuvent être trouvées dans le `Python Packaging User Guide `__." + +#: ../Doc/installing/index.rst:116 +msgid "" +"Creation of virtual environments is done through the :mod:`venv` module. " +"Installing packages into an active virtual environment uses the commands " +"shown above." +msgstr "" +"La création d'environnements virtuels est réalisée grâce au module :mod:" +"`venv`. Installer des paquets au sein de l'environnement virtuel courant " +"utilise les commandes montrées précédemment." + +#: ../Doc/installing/index.rst:122 +msgid "" +"`Python Packaging User Guide: Installing Python Distribution Packages " +"`__" +msgstr "" +"`Guide Utilisateur de l'Empaquetage Python : Installer les paquets de la " +"distribution Python `__" + +#: ../Doc/installing/index.rst:127 +msgid "How do I ...?" +msgstr "Comment puis-je ...?" + +#: ../Doc/installing/index.rst:129 +msgid "These are quick answers or links for some common tasks." +msgstr "" +"Ce sont des réponses rapides ou des liens pour certaines tâches courantes." + +#: ../Doc/installing/index.rst:132 +msgid "... install ``pip`` in versions of Python prior to Python 3.4?" +msgstr "" +"... Installer ``pip`` avec une version de Python antérieures à la 3.4 ?" + +#: ../Doc/installing/index.rst:134 +msgid "" +"Python only started bundling ``pip`` with Python 3.4. For earlier versions, " +"``pip`` needs to be \"bootstrapped\" as described in the Python Packaging " +"User Guide." +msgstr "" +"Python n'a commencé à fournir ``pip`` depuis Python 3.4. Pour les versions " +"précédentes, ``pip`` a besoin d'être \"amorcé\" tel que décrit dans le " +"*Python Packaging User Guide*." + +#: ../Doc/installing/index.rst:140 +msgid "" +"`Python Packaging User Guide: Requirements for Installing Packages `__" +msgstr "" +"`Guide Utilisateur de l'Empaquetage Python : Pré-requis pour installer des " +"paquets `__" + +#: ../Doc/installing/index.rst:147 +msgid "... install packages just for the current user?" +msgstr "... Installer des paquets juste pour l'utilisateur actuel ?" + +#: ../Doc/installing/index.rst:149 +msgid "" +"Passing the ``--user`` option to ``python -m pip install`` will install a " +"package just for the current user, rather than for all users of the system." +msgstr "" +"Donner l'option ``--user`` à ``python -m pip install`` lui fera installer un " +"paquet juste pour l'utilisateur en cours, plutôt que pour tous les " +"utilisateurs du système." + +#: ../Doc/installing/index.rst:154 +msgid "... install scientific Python packages?" +msgstr "... Installer des paquets Python scientifiques ?" + +#: ../Doc/installing/index.rst:156 +msgid "" +"A number of scientific Python packages have complex binary dependencies, and " +"aren't currently easy to install using ``pip`` directly. At this point in " +"time, it will often be easier for users to install these packages by `other " +"means `__ rather than attempting to " +"install them with ``pip``." +msgstr "" +"Un certain nombre de paquets scientifiques Python ont des dépendances " +"binaires complexes, et ne sont pas actuellement faciles à installer " +"directement avec ``pip``. Pour le moment, il est souvent plus simple pour " +"les utilisateurs d'installer ces paquets par `d'autres moyens `__ plutôt que d'essayer de les installer avec " +"``pip``." + +#: ../Doc/installing/index.rst:164 +msgid "" +"`Python Packaging User Guide: Installing Scientific Packages `__" +msgstr "" +"`Guide Utilisateur de l'Empaquetage Python : Installer des paquets " +"scientifiques `__" + +#: ../Doc/installing/index.rst:169 +msgid "... work with multiple versions of Python installed in parallel?" +msgstr "" +"... Travailler avec plusieurs versions de Python installés en parallèle ?" + +#: ../Doc/installing/index.rst:171 +msgid "" +"On Linux, Mac OS X, and other POSIX systems, use the versioned Python " +"commands in combination with the ``-m`` switch to run the appropriate copy " +"of ``pip``::" +msgstr "" +"Sous Linux, Max OS X et autres systèmes POSIX, utiliser les commandes Python " +"de la version souhaitée en combinaison avec l'option ``-m`` permet de lancer " +"la version appropriée de ``pip`` ::" + +#: ../Doc/installing/index.rst:180 +msgid "Appropriately versioned ``pip`` commands may also be available." +msgstr "" +"Les versions appropriées des commandes ``pip`` peuvent aussi être " +"disponibles." + +#: ../Doc/installing/index.rst:182 +msgid "" +"On Windows, use the ``py`` Python launcher in combination with the ``-m`` " +"switch::" +msgstr "" +"Sous Windows, utilisez le lanceur Python ``py`` en combinaison avec l'option " +"``-m`` ::" + +#: ../Doc/installing/index.rst:199 +msgid "Common installation issues" +msgstr "Les problèmes d'installation typiques" + +#: ../Doc/installing/index.rst:202 +msgid "Installing into the system Python on Linux" +msgstr "Installer dans le Python du système sur Linux" + +#: ../Doc/installing/index.rst:204 +msgid "" +"On Linux systems, a Python installation will typically be included as part " +"of the distribution. Installing into this Python installation requires root " +"access to the system, and may interfere with the operation of the system " +"package manager and other components of the system if a component is " +"unexpectedly upgraded using ``pip``." +msgstr "" +"Sur les systèmes Linux, une installation de Python sera généralement incluse " +"dans le cadre de la distribution. Installer dans cette installation de " +"Python nécessite un accès *root* sur le système, et peut interférer avec le " +"fonctionnement du gestionnaire de paquets du système et d'autres composants " +"du système si un composant est mis à jour de façon inattendue en utilisant " +"``pip``." + +#: ../Doc/installing/index.rst:210 +msgid "" +"On such systems, it is often better to use a virtual environment or a per-" +"user installation when installing packages with ``pip``." +msgstr "" +"Sur de tels systèmes, il est souvent préférable d'utiliser un environnement " +"virtuel ou une installation par l'utilisateur lors de l'installation des " +"paquets avec ``pip``." + +#: ../Doc/installing/index.rst:215 +msgid "Pip not installed" +msgstr "Pip n'est pas installé" + +#: ../Doc/installing/index.rst:217 +msgid "" +"It is possible that ``pip`` does not get installed by default. One potential " +"fix is::" +msgstr "" +"Il est possible que ``pip`` ne soit pas installé par défaut. Une solution " +"est : ::" + +#: ../Doc/installing/index.rst:221 +msgid "" +"There are also additional resources for `installing pip. `__" +msgstr "" +"Voir aussi `installing pip. `__" + +#: ../Doc/installing/index.rst:226 +msgid "Installing binary extensions" +msgstr "Installation d'extensions binaires" + +#: ../Doc/installing/index.rst:228 +msgid "" +"Python has typically relied heavily on source based distribution, with end " +"users being expected to compile extension modules from source as part of the " +"installation process." +msgstr "" +"Python a généralement beaucoup misé sur une distribution basée sur les " +"sources, avec laquelle les utilisateurs finaux devaient compiler, lors de " +"l'installation, les modules d'extension à partir des sources." + +#: ../Doc/installing/index.rst:232 +msgid "" +"With the introduction of support for the binary ``wheel`` format, and the " +"ability to publish wheels for at least Windows and Mac OS X through the " +"Python Packaging Index, this problem is expected to diminish over time, as " +"users are more regularly able to install pre-built extensions rather than " +"needing to build them themselves." +msgstr "" +"Avec l'introduction du format binaire ``wheel``, et la possibilité de " +"publier des *wheels*, pour, au moins Windows et Mac OS X, via le *Python " +"Package Index*, ce problème devrait diminuer au fil du temps, car les " +"utilisateurs sont plus régulièrement en mesure d'installer des extensions " +"pré-compilées plutôt que de devoir les compiler eux-mêmes." + +#: ../Doc/installing/index.rst:238 +msgid "" +"Some of the solutions for installing `scientific software `__ that are not yet available as pre-built ``wheel`` " +"files may also help with obtaining other binary extensions without needing " +"to build them locally." +msgstr "" +"Certaines solutions pour installer des `paquets scientifiques `__ qui ne sont pas encore disponibles comme " +"``wheel`` pré-construites peuvent aussi aider à obtenir d'autres extensions " +"binaires sans devoir les construire localement." + +#: ../Doc/installing/index.rst:245 +msgid "" +"`Python Packaging User Guide: Binary Extensions `__" +msgstr "" +"`Guide Utilisateur de l'Empaquetage Python : Extensions binaires `__" diff --git a/library/2to3.po b/library/2to3.po new file mode 100644 index 000000000..5f3d314e6 --- /dev/null +++ b/library/2to3.po @@ -0,0 +1,785 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-08-03 17:52+0200\n" +"PO-Revision-Date: 2019-09-16 11:04+0200\n" +"Last-Translator: Léa Klein \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.1.1\n" + +#: ../Doc/library/2to3.rst:4 +msgid "2to3 - Automated Python 2 to 3 code translation" +msgstr "*2to3* — Traduction automatique de code en Python 2 vers Python 3" + +#: ../Doc/library/2to3.rst:8 +msgid "" +"2to3 is a Python program that reads Python 2.x source code and applies a " +"series of *fixers* to transform it into valid Python 3.x code. The standard " +"library contains a rich set of fixers that will handle almost all code. " +"2to3 supporting library :mod:`lib2to3` is, however, a flexible and generic " +"library, so it is possible to write your own fixers for 2to3. :mod:" +"`lib2to3` could also be adapted to custom applications in which Python code " +"needs to be edited automatically." +msgstr "" +"*2to3* est un programme Python qui lit du code source en Python 2.x et " +"applique une suite de correcteurs pour le transformer en code Python 3.x " +"valide. La bibliothèque standard contient un ensemble riche de correcteurs " +"qui gèreront quasiment tout le code. La bibliothèque :mod:`lib2to3` " +"utilisée par *2to3* est cependant une bibliothèque flexible et générique, il " +"est donc possible d'écrire vos propres correcteurs pour *2to3*. :mod:" +"`lib2to3` pourrait aussi être adaptée à des applications personnalisées dans " +"lesquelles le code Python doit être édité automatiquement." + +#: ../Doc/library/2to3.rst:20 +msgid "Using 2to3" +msgstr "Utilisation de *2to3*" + +#: ../Doc/library/2to3.rst:22 +msgid "" +"2to3 will usually be installed with the Python interpreter as a script. It " +"is also located in the :file:`Tools/scripts` directory of the Python root." +msgstr "" +"*2to3* sera généralement installé avec l'interpréteur Python en tant que " +"script. Il est également situé dans le dossier :file:`Tools/scripts` à " +"racine de Python." + +#: ../Doc/library/2to3.rst:25 +msgid "" +"2to3's basic arguments are a list of files or directories to transform. The " +"directories are recursively traversed for Python sources." +msgstr "" +"Les arguments de base de *2to3* sont une liste de fichiers et de répertoires " +"à transformer. Les répertoires sont parcourus récursivement pour trouver " +"les sources Python." + +#: ../Doc/library/2to3.rst:28 +msgid "Here is a sample Python 2.x source file, :file:`example.py`::" +msgstr "Voici un exemple de fichier source Python 2.x, :file:`example.py` ::" + +#: ../Doc/library/2to3.rst:36 +msgid "It can be converted to Python 3.x code via 2to3 on the command line:" +msgstr "" +"Il peut être converti en code Python 3.x par *2to3* en ligne de commande :" + +#: ../Doc/library/2to3.rst:42 +msgid "" +"A diff against the original source file is printed. 2to3 can also write the " +"needed modifications right back to the source file. (A backup of the " +"original file is made unless :option:`!-n` is also given.) Writing the " +"changes back is enabled with the :option:`!-w` flag:" +msgstr "" +"Une comparaison avec le fichier source original est affichée. *2to3* peut " +"aussi écrire les modifications nécessaires directement dans le fichier " +"source. (Une sauvegarde du fichier d'origine est effectuée à moins que " +"l'option :option:`!-n` soit également donnée.) L'écriture des modifications " +"est activée avec l'option :option:`!-w` :" + +#: ../Doc/library/2to3.rst:51 +msgid "After transformation, :file:`example.py` looks like this::" +msgstr "Après transformation, :file:`example.py` ressemble à ::" + +#: ../Doc/library/2to3.rst:59 +msgid "" +"Comments and exact indentation are preserved throughout the translation " +"process." +msgstr "" +"Les commentaires et les retraits sont préservés tout au long du processus de " +"traduction." + +#: ../Doc/library/2to3.rst:61 +msgid "" +"By default, 2to3 runs a set of :ref:`predefined fixers <2to3-fixers>`. The :" +"option:`!-l` flag lists all available fixers. An explicit set of fixers to " +"run can be given with :option:`!-f`. Likewise the :option:`!-x` explicitly " +"disables a fixer. The following example runs only the ``imports`` and " +"``has_key`` fixers:" +msgstr "" +"Par défaut, *2to3* exécute un ensemble de :ref:`correcteurs prédéfinis <2to3-" +"fixers>`. L'option :option:`!-l` énumère tous les correcteurs disponibles. " +"Un ensemble explicite de correcteurs à exécuter peut être donné avec :option:" +"`!-f`. De même, :option:`!-x` désactive explicitement un correcteur. " +"L'exemple suivant exécute uniquement les ``import`` et les correcteurs " +"``has_key`` :" + +#: ../Doc/library/2to3.rst:70 +msgid "This command runs every fixer except the ``apply`` fixer:" +msgstr "" +"Cette commande exécute tous les correcteurs, sauf le correcteurs ``apply`` :" + +#: ../Doc/library/2to3.rst:76 +msgid "" +"Some fixers are *explicit*, meaning they aren't run by default and must be " +"listed on the command line to be run. Here, in addition to the default " +"fixers, the ``idioms`` fixer is run:" +msgstr "" +"Certains correcteurs sont *explicites*, ce qui signifie qu'ils ne sont pas " +"exécutés par défaut et doivent être énumérés sur la ligne de commande à " +"exécuter. Ici, en plus des correcteurs par défaut, le correcteur ``idioms`` " +"est exécuté :" + +#: ../Doc/library/2to3.rst:84 +msgid "Notice how passing ``all`` enables all default fixers." +msgstr "Notez que passer ``all`` active tous les correcteurs par défaut." + +#: ../Doc/library/2to3.rst:86 +msgid "" +"Sometimes 2to3 will find a place in your source code that needs to be " +"changed, but 2to3 cannot fix automatically. In this case, 2to3 will print a " +"warning beneath the diff for a file. You should address the warning in " +"order to have compliant 3.x code." +msgstr "" +"Parfois, *2to3* trouvera un endroit dans votre code source qui doit être " +"changé, mais qu'il ne peut pas résoudre automatiquement. Dans ce cas, " +"*2to3* affiche un avertissement sous la comparaison d'un fichier. Vous " +"devez traiter l'avertissement afin d'avoir un code conforme à Python 3.x." + +#: ../Doc/library/2to3.rst:91 +msgid "" +"2to3 can also refactor doctests. To enable this mode, use the :option:`!-d` " +"flag. Note that *only* doctests will be refactored. This also doesn't " +"require the module to be valid Python. For example, doctest like examples " +"in a reST document could also be refactored with this option." +msgstr "" +"*2to3* peut également réusiner les *doctests*. Pour activer ce mode, " +"utilisez :option:`!-d`. Notez que *seul* les *doctests* seront réusinés. " +"Cela ne nécessite pas que le module soit du Python valide. Par exemple, des " +"*doctests* tels que des exemples dans un document *reST* peuvent également " +"être réusinés avec cette option." + +#: ../Doc/library/2to3.rst:96 +msgid "" +"The :option:`!-v` option enables output of more information on the " +"translation process." +msgstr "" +"L'option :option:`!-v` augmente la quantité de messages générés par le " +"processus de traduction." + +#: ../Doc/library/2to3.rst:99 +msgid "" +"Since some print statements can be parsed as function calls or statements, " +"2to3 cannot always read files containing the print function. When 2to3 " +"detects the presence of the ``from __future__ import print_function`` " +"compiler directive, it modifies its internal grammar to interpret :func:" +"`print` as a function. This change can also be enabled manually with the :" +"option:`!-p` flag. Use :option:`!-p` to run fixers on code that already has " +"had its print statements converted." +msgstr "" +"Puisque certaines instructions d'affichage peuvent être analysées comme des " +"appels ou des instructions de fonction, *2to3* ne peut pas toujours lire les " +"fichiers contenant la fonction d’affichage. Lorsque *2to3* détecte la " +"présence de la directive compilateur ``from __future__ import " +"print_function``, il modifie sa grammaire interne pour interpréter :func:" +"`print` comme une fonction. Cette modification peut également être activée " +"manuellement avec l'option :option:`!-p`. Utilisez :option:`!-p` pour " +"exécuter des correcteurs sur du code dont les instructions d'affichage ont " +"déjà été converties." + +#: ../Doc/library/2to3.rst:107 +msgid "" +"The :option:`!-o` or :option:`!--output-dir` option allows specification of " +"an alternate directory for processed output files to be written to. The :" +"option:`!-n` flag is required when using this as backup files do not make " +"sense when not overwriting the input files." +msgstr "" +"L'option :option:`!-o` ou :option:`!--output-dir` permet de donner autre " +"répertoire pour les fichiers de sortie en écriture. L'option :option:`!-n` " +"est requise quand on les utilise comme fichiers de sauvegarde qui n'ont pas " +"de sens si les fichiers d'entrée ne sont pas écrasés." + +#: ../Doc/library/2to3.rst:112 +msgid "The :option:`!-o` option was added." +msgstr "L'option :option:`!-o` a été ajoutée." + +#: ../Doc/library/2to3.rst:115 +msgid "" +"The :option:`!-W` or :option:`!--write-unchanged-files` flag tells 2to3 to " +"always write output files even if no changes were required to the file. " +"This is most useful with :option:`!-o` so that an entire Python source tree " +"is copied with translation from one directory to another. This option " +"implies the :option:`!-w` flag as it would not make sense otherwise." +msgstr "" +"L'option :option:`!-W` ou :option:`!—write-unchanged-files` indique à *2to3* " +"de toujours écrire des fichiers de sortie même si aucun changement du " +"fichier n'était nécessaire. Ceci est très utile avec `!-o` pour qu'un arbre " +"des sources Python entier soit copié avec la traduction d'un répertoire à " +"l'autre. Cette option implique :option:`!-w` sans quoi elle n'aurait pas de " +"sens." + +#: ../Doc/library/2to3.rst:121 +msgid "The :option:`!-W` flag was added." +msgstr "L'option :option:`!-W` a été ajoutée." + +#: ../Doc/library/2to3.rst:124 +msgid "" +"The :option:`!--add-suffix` option specifies a string to append to all " +"output filenames. The :option:`!-n` flag is required when specifying this " +"as backups are not necessary when writing to different filenames. Example:" +msgstr "" +"L'option :option:`!--add-suffix` spécifie une chaîne à ajouter à tous les " +"noms de fichiers de sortie. L'option :option:`!-n` est nécessaire dans ce " +"cas, puisque sauvegarder n'est pas nécessaire en écrivant dans des fichiers " +"différents. Exemple:" + +#: ../Doc/library/2to3.rst:132 +msgid "Will cause a converted file named ``example.py3`` to be written." +msgstr "Écrit un fichier converti nommé ``example.py3``." + +#: ../Doc/library/2to3.rst:134 +msgid "The :option:`!--add-suffix` option was added." +msgstr "L'option :option:`!--add-suffix` est ajoutée." + +#: ../Doc/library/2to3.rst:137 +msgid "To translate an entire project from one directory tree to another use:" +msgstr "" +"Pour traduire un projet entier d'une arborescence de répertoires à une " +"autre, utilisez :" + +#: ../Doc/library/2to3.rst:147 +msgid "Fixers" +msgstr "Correcteurs" + +#: ../Doc/library/2to3.rst:149 +msgid "" +"Each step of transforming code is encapsulated in a fixer. The command " +"``2to3 -l`` lists them. As :ref:`documented above <2to3-using>`, each can " +"be turned on and off individually. They are described here in more detail." +msgstr "" +"Chaque étape de la transformation du code est encapsulée dans un " +"correcteur. La commande ``2to3 -l`` les énumère. Comme :ref:`documenté ci-" +"dessus <2to3-using>`, chacun peut être activé ou désactivé " +"individuellement. Ils sont décrits plus en détails ici." + +#: ../Doc/library/2to3.rst:156 +msgid "" +"Removes usage of :func:`apply`. For example ``apply(function, *args, " +"**kwargs)`` is converted to ``function(*args, **kwargs)``." +msgstr "" +"Supprime l'usage d':func:`apply`. Par exemple, ``apply(function, *args, " +"**kwargs)`` est converti en ``function(*args, **kwargs)``." + +#: ../Doc/library/2to3.rst:161 +msgid "Replaces deprecated :mod:`unittest` method names with the correct ones." +msgstr "" +"Remplace les noms de méthodes obsolètes du module :mod:`unittest` par les " +"bons." + +#: ../Doc/library/2to3.rst:164 ../Doc/library/2to3.rst:352 +msgid "From" +msgstr "De" + +#: ../Doc/library/2to3.rst:164 ../Doc/library/2to3.rst:352 +msgid "To" +msgstr "À" + +#: ../Doc/library/2to3.rst:166 +msgid "``failUnlessEqual(a, b)``" +msgstr "``failUnlessEqual(a, b)``" + +#: ../Doc/library/2to3.rst:166 ../Doc/library/2to3.rst:168 +msgid ":meth:`assertEqual(a, b) `" +msgstr ":meth:`assertEqual(a, b) `" + +#: ../Doc/library/2to3.rst:168 +msgid "``assertEquals(a, b)``" +msgstr "``assertEquals(a, b)``" + +#: ../Doc/library/2to3.rst:170 +msgid "``failIfEqual(a, b)``" +msgstr "``failIfEqual(a, b)``" + +#: ../Doc/library/2to3.rst:170 ../Doc/library/2to3.rst:172 +msgid ":meth:`assertNotEqual(a, b) `" +msgstr ":meth:`assertNotEqual(a, b) `" + +#: ../Doc/library/2to3.rst:172 +msgid "``assertNotEquals(a, b)``" +msgstr "``assertNotEquals(a, b)``" + +#: ../Doc/library/2to3.rst:174 +msgid "``failUnless(a)``" +msgstr "``failUnless(a)``" + +#: ../Doc/library/2to3.rst:174 ../Doc/library/2to3.rst:176 +msgid ":meth:`assertTrue(a) `" +msgstr ":meth:`assertTrue(a) `" + +#: ../Doc/library/2to3.rst:176 +msgid "``assert_(a)``" +msgstr "``assert_(a)``" + +#: ../Doc/library/2to3.rst:178 +msgid "``failIf(a)``" +msgstr "``failIf(a)``" + +#: ../Doc/library/2to3.rst:178 +msgid ":meth:`assertFalse(a) `" +msgstr ":meth:`assertFalse(a) `" + +#: ../Doc/library/2to3.rst:180 +msgid "``failUnlessRaises(exc, cal)``" +msgstr "``failUnlessRaises(exc, cal)``" + +#: ../Doc/library/2to3.rst:180 +msgid ":meth:`assertRaises(exc, cal) `" +msgstr ":meth:`assertRaises(exc, cal) `" + +#: ../Doc/library/2to3.rst:182 +msgid "``failUnlessAlmostEqual(a, b)``" +msgstr "``failUnlessAlmostEqual(a, b)``" + +#: ../Doc/library/2to3.rst:182 ../Doc/library/2to3.rst:184 +msgid ":meth:`assertAlmostEqual(a, b) `" +msgstr ":meth:`assertAlmostEqual(a, b) `" + +#: ../Doc/library/2to3.rst:184 +msgid "``assertAlmostEquals(a, b)``" +msgstr "``assertAlmostEquals(a, b)``" + +#: ../Doc/library/2to3.rst:186 +msgid "``failIfAlmostEqual(a, b)``" +msgstr "``failIfAlmostEqual(a, b)``" + +#: ../Doc/library/2to3.rst:186 ../Doc/library/2to3.rst:188 +msgid "" +":meth:`assertNotAlmostEqual(a, b) `" +msgstr "" +":meth:`assertNotAlmostEqual(a, b) `" + +#: ../Doc/library/2to3.rst:188 +msgid "``assertNotAlmostEquals(a, b)``" +msgstr "``assertNotAlmostEquals(a, b)``" + +#: ../Doc/library/2to3.rst:194 +msgid "Converts :class:`basestring` to :class:`str`." +msgstr "Convertit une :class:`basestring` en :class:`str`." + +#: ../Doc/library/2to3.rst:198 +msgid "" +"Converts :class:`buffer` to :class:`memoryview`. This fixer is optional " +"because the :class:`memoryview` API is similar but not exactly the same as " +"that of :class:`buffer`." +msgstr "" +"Convertit un :class:`buffer` en :class:`memoryview`. Ce correcteur est " +"optionnel car l'API :class:`memoryview` est similaire mais pas exactement " +"pareil que celle de :class:`buffer`." + +#: ../Doc/library/2to3.rst:204 +msgid "" +"Fixes dictionary iteration methods. :meth:`dict.iteritems` is converted to :" +"meth:`dict.items`, :meth:`dict.iterkeys` to :meth:`dict.keys`, and :meth:" +"`dict.itervalues` to :meth:`dict.values`. Similarly, :meth:`dict." +"viewitems`, :meth:`dict.viewkeys` and :meth:`dict.viewvalues` are converted " +"respectively to :meth:`dict.items`, :meth:`dict.keys` and :meth:`dict." +"values`. It also wraps existing usages of :meth:`dict.items`, :meth:`dict." +"keys`, and :meth:`dict.values` in a call to :class:`list`." +msgstr "" +"Fixe les méthodes d'itération sur les dictionnaires. :meth:`dict.iteritems` " +"est converti en :meth:`dict.items`, :meth:`dict.iterkeys` en :meth:`dict." +"keys` et :meth:`dict.itervalues` en :meth:`dict.values`. De la même façon, :" +"meth:`dict.viewitems`, :meth:`dict.viewkeys` et :meth:`dict.viewvalues` sont " +"convertis respectivement en :meth:`dict.items`, :meth:`dict.keys` et :meth:" +"`dict.values`. Il encapsule également les usages existants de :meth:`dict." +"items`, :meth:`dict.keys` et :meth:`dict.values` dans un appel à :class:" +"`list`." + +#: ../Doc/library/2to3.rst:214 +msgid "Converts ``except X, T`` to ``except X as T``." +msgstr "Convertit ``except X, T`` en ``except X as T``." + +#: ../Doc/library/2to3.rst:218 +msgid "Converts the ``exec`` statement to the :func:`exec` function." +msgstr "Convertit l'instruction ``exec`` en fonction :func:`exec`." + +#: ../Doc/library/2to3.rst:222 +msgid "" +"Removes usage of :func:`execfile`. The argument to :func:`execfile` is " +"wrapped in calls to :func:`open`, :func:`compile`, and :func:`exec`." +msgstr "" +"Supprime l'usage de :func:`execfile`. L'argument de :func:`execfile` est " +"encapsulé dans des appels à :func:`open`, :func:`compile` et :func:`exec`." + +#: ../Doc/library/2to3.rst:227 +msgid "" +"Changes assignment of :attr:`sys.exitfunc` to use of the :mod:`atexit` " +"module." +msgstr "" +"Change l'affectation de :attr:`sys.exitfunc` pour utiliser le module :mod:" +"`atexit`." + +#: ../Doc/library/2to3.rst:232 +msgid "Wraps :func:`filter` usage in a :class:`list` call." +msgstr "Encapsule l'usage de :func:`filter` dans un appel à :class:`list`." + +#: ../Doc/library/2to3.rst:236 +msgid "" +"Fixes function attributes that have been renamed. For example, " +"``my_function.func_closure`` is converted to ``my_function.__closure__``." +msgstr "" +"Fixe les attributs de fonction ayant été renommés. Par exemple, " +"``my_function.func_closure`` est converti en ``my_function.__closure__``." + +#: ../Doc/library/2to3.rst:241 +msgid "Removes ``from __future__ import new_feature`` statements." +msgstr "Supprime les instructions ``from __future__ import new_feature``." + +#: ../Doc/library/2to3.rst:245 +msgid "Renames :func:`os.getcwdu` to :func:`os.getcwd`." +msgstr "Renomme :func:`os.getcwdu` en :func:`os.getcwd`." + +#: ../Doc/library/2to3.rst:249 +msgid "Changes ``dict.has_key(key)`` to ``key in dict``." +msgstr "Change ``dict.has_key(key)`` en ``key in dict``." + +#: ../Doc/library/2to3.rst:253 +msgid "" +"This optional fixer performs several transformations that make Python code " +"more idiomatic. Type comparisons like ``type(x) is SomeClass`` and " +"``type(x) == SomeClass`` are converted to ``isinstance(x, SomeClass)``. " +"``while 1`` becomes ``while True``. This fixer also tries to make use of :" +"func:`sorted` in appropriate places. For example, this block ::" +msgstr "" +"Ce correcteur optionnel effectue plusieurs transformations rendant le code " +"Python plus idiomatique. Les comparaisons de types telles que ``type(x) is " +"SomeClass`` et ``type(x) == SomeClass`` sont converties en ``isinstance(x, " +"SomeClass)``. ``while 1`` devient ``while True``. Ce correcteur essaye " +"aussi d'utiliser :func:`sorted` aux endroits appropriés. Par exemple, ce " +"bloc ::" + +#: ../Doc/library/2to3.rst:262 +msgid "is changed to ::" +msgstr "est transformé en ::" + +#: ../Doc/library/2to3.rst:268 +msgid "Detects sibling imports and converts them to relative imports." +msgstr "" +"Détecte les importations voisines et les convertit en importations relatives." + +#: ../Doc/library/2to3.rst:272 +msgid "Handles module renames in the standard library." +msgstr "Gère les renommages de modules dans la bibliothèque standard." + +#: ../Doc/library/2to3.rst:276 +msgid "" +"Handles other modules renames in the standard library. It is separate from " +"the :2to3fixer:`imports` fixer only because of technical limitations." +msgstr "" +"Gères d'autres renommages de modules dans la bibliothèque standard. Il est " +"distinct de :2to3fixer:`imports` seulement en raison de limitations " +"techniques." + +#: ../Doc/library/2to3.rst:281 +msgid "Converts ``input(prompt)`` to ``eval(input(prompt))``." +msgstr "Convertit ``input(prompt)`` en ``eval(input(prompt))``." + +#: ../Doc/library/2to3.rst:285 +msgid "Converts :func:`intern` to :func:`sys.intern`." +msgstr "Convertit :func:`intern` en :func:`sys.intern`." + +#: ../Doc/library/2to3.rst:289 +msgid "" +"Fixes duplicate types in the second argument of :func:`isinstance`. For " +"example, ``isinstance(x, (int, int))`` is converted to ``isinstance(x, " +"int)`` and ``isinstance(x, (int, float, int))`` is converted to " +"``isinstance(x, (int, float))``." +msgstr "" +"Fixe les types dupliqués dans le second argument de :func:`isinstance`. Par " +"exemple, ``isinstance(x, (int, int))`` est converti en ``isinstance(x, " +"int)`` et ``isinstance(x, (int, float, int))`` est converti en " +"``isinstance(x, (int, float))``." + +#: ../Doc/library/2to3.rst:296 +msgid "" +"Removes imports of :func:`itertools.ifilter`, :func:`itertools.izip`, and :" +"func:`itertools.imap`. Imports of :func:`itertools.ifilterfalse` are also " +"changed to :func:`itertools.filterfalse`." +msgstr "" +"Supprime les importations de :func:`itertools.ifilter`, :func:`itertools." +"izip` et :func:`itertools.imap`. Les importations de :func:`itertools." +"ifilterfalse` sont aussi changées en :func:`itertools.filterfalse`." + +#: ../Doc/library/2to3.rst:302 +msgid "" +"Changes usage of :func:`itertools.ifilter`, :func:`itertools.izip`, and :" +"func:`itertools.imap` to their built-in equivalents. :func:`itertools." +"ifilterfalse` is changed to :func:`itertools.filterfalse`." +msgstr "" +"Change l'usage de :func:`itertools.ifilter`, :func:`itertools.izip` et :func:" +"`itertools.imap` en leurs équivalents intégrés. :func:`itertools." +"ifilterfalse` est changé en :func:`itertools.filterfalse`." + +#: ../Doc/library/2to3.rst:308 +msgid "Renames :class:`long` to :class:`int`." +msgstr "Renomme :class:`long` en :class:`int`." + +#: ../Doc/library/2to3.rst:312 +msgid "" +"Wraps :func:`map` in a :class:`list` call. It also changes ``map(None, x)`` " +"to ``list(x)``. Using ``from future_builtins import map`` disables this " +"fixer." +msgstr "" +"Encapsule :func:`map` dans un appel à :class:`list`. Change aussi " +"``map(None, x)`` en ``list(x)``. L'usage de ``from future_builtins import " +"map`` désactive ce correcteur." + +#: ../Doc/library/2to3.rst:318 +msgid "" +"Converts the old metaclass syntax (``__metaclass__ = Meta`` in the class " +"body) to the new (``class X(metaclass=Meta)``)." +msgstr "" +"Convertit l'ancienne syntaxe de métaclasse (``__metaclass__ = Meta`` dans le " +"corps de la classe) à la nouvelle (``class X(metaclasse=Meta)``)." + +#: ../Doc/library/2to3.rst:323 +msgid "" +"Fixes old method attribute names. For example, ``meth.im_func`` is " +"converted to ``meth.__func__``." +msgstr "" +"Fixe les anciens noms d'attributs de méthodes. Par exemple, ``meth." +"im_func`` est converti en ``meth.__func__``." + +#: ../Doc/library/2to3.rst:328 +msgid "Converts the old not-equal syntax, ``<>``, to ``!=``." +msgstr "Convertit l'ancienne syntaxe d'inégalité, ``<>``, en ``!=``." + +#: ../Doc/library/2to3.rst:332 +msgid "" +"Converts the use of iterator's :meth:`~iterator.next` methods to the :func:" +"`next` function. It also renames :meth:`next` methods to :meth:`~iterator." +"__next__`." +msgstr "" +"Convertit l'usage des méthodes :meth:`~iterator.next` de l' itérateur en :" +"func:`next`. Renomme également les méthodes :meth:`next` en :meth:" +"`~iterator.__next__`." + +#: ../Doc/library/2to3.rst:338 +msgid "Renames :meth:`__nonzero__` to :meth:`~object.__bool__`." +msgstr "Renomme :meth:`__nonzero__` en :meth:`~object.__bool__`." + +#: ../Doc/library/2to3.rst:342 +msgid "Converts octal literals into the new syntax." +msgstr "" +"Convertit les nombres écrits littéralement en octal dans leur nouvelle " +"syntaxe." + +#: ../Doc/library/2to3.rst:346 +msgid "" +"Converts calls to various functions in the :mod:`operator` module to other, " +"but equivalent, function calls. When needed, the appropriate ``import`` " +"statements are added, e.g. ``import collections.abc``. The following " +"mapping are made:" +msgstr "" +"Convertit les appels à diverses fonctions du module :mod:`operator` en " +"appels d'autres fonctions équivalentes. Si besoin, les instructions " +"``import`` appropriées sont ajoutées, e.g. ``import collections.abc``. Les " +"correspondances suivantes sont appliquées :" + +#: ../Doc/library/2to3.rst:354 +msgid "``operator.isCallable(obj)``" +msgstr "``operator.isCallable(obj)``" + +#: ../Doc/library/2to3.rst:354 +msgid "``callable(obj)``" +msgstr "``callable(obj)``" + +#: ../Doc/library/2to3.rst:355 +msgid "``operator.sequenceIncludes(obj)``" +msgstr "``operator.sequenceIncludes(obj)``" + +#: ../Doc/library/2to3.rst:355 +msgid "``operator.contains(obj)``" +msgstr "``operator.contains(obj)``" + +#: ../Doc/library/2to3.rst:356 +msgid "``operator.isSequenceType(obj)``" +msgstr "``operator.isSequenceType(obj)``" + +#: ../Doc/library/2to3.rst:356 +msgid "``isinstance(obj, collections.abc.Sequence)``" +msgstr "``isinstance(obj, collections.abc.Sequence)``" + +#: ../Doc/library/2to3.rst:357 +msgid "``operator.isMappingType(obj)``" +msgstr "``operator.isMappingType(obj)``" + +#: ../Doc/library/2to3.rst:357 +msgid "``isinstance(obj, collections.abc.Mapping)``" +msgstr "``isinstance(obj, collections.abc.Mapping)``" + +#: ../Doc/library/2to3.rst:358 +msgid "``operator.isNumberType(obj)``" +msgstr "``operator.isNumberType(obj)``" + +#: ../Doc/library/2to3.rst:358 +msgid "``isinstance(obj, numbers.Number)``" +msgstr "``isinstance(obj, numbers.Number)``" + +#: ../Doc/library/2to3.rst:359 +msgid "``operator.repeat(obj, n)``" +msgstr "``operator.repeat(obj, n)``" + +#: ../Doc/library/2to3.rst:359 +msgid "``operator.mul(obj, n)``" +msgstr "``operator.mul(obj, n)``" + +#: ../Doc/library/2to3.rst:360 +msgid "``operator.irepeat(obj, n)``" +msgstr "``operator.irepeat(obj, n)``" + +#: ../Doc/library/2to3.rst:360 +msgid "``operator.imul(obj, n)``" +msgstr "``operator.imul(obj, n)``" + +#: ../Doc/library/2to3.rst:365 +msgid "" +"Add extra parenthesis where they are required in list comprehensions. For " +"example, ``[x for x in 1, 2]`` becomes ``[x for x in (1, 2)]``." +msgstr "" +"Ajoute des parenthèses supplémentaires lorsqu'elles sont nécessaires dans " +"les listes en compréhension. Par exemple, ``[x for x in 1, 2]`` devient " +"``[x for x in (1, 2)]``." + +#: ../Doc/library/2to3.rst:370 +msgid "Converts the ``print`` statement to the :func:`print` function." +msgstr "Convertit l'instruction ``print`` en fonction :func:`print`." + +#: ../Doc/library/2to3.rst:374 +msgid "" +"Converts ``raise E, V`` to ``raise E(V)``, and ``raise E, V, T`` to ``raise " +"E(V).with_traceback(T)``. If ``E`` is a tuple, the translation will be " +"incorrect because substituting tuples for exceptions has been removed in 3.0." +msgstr "" +"Convertit ``raise E, V`` en ``raise E(V)`` et ``raise E, V, T`` en ``raise " +"E(V).with_traceback(T)``. Si ``E`` est un tuple, la conversion sera " +"incorrecte puisque la substitution de tuples aux exceptions a été supprimée " +"en 3.0." + +#: ../Doc/library/2to3.rst:380 +msgid "Converts :func:`raw_input` to :func:`input`." +msgstr "Convertit :func:`raw_input` en :func:`input`." + +#: ../Doc/library/2to3.rst:384 +msgid "Handles the move of :func:`reduce` to :func:`functools.reduce`." +msgstr "Gère le déplacement de :func:`reduce` à :func:`functools.reduce`." + +#: ../Doc/library/2to3.rst:388 +msgid "Converts :func:`reload` to :func:`importlib.reload`." +msgstr "" +"Convertit les appels à :func:`reload` en appels à :func:`importlib.reload`." + +#: ../Doc/library/2to3.rst:392 +msgid "Changes :data:`sys.maxint` to :data:`sys.maxsize`." +msgstr "Change :data:`sys.maxint` en :data:`sys.maxsize`." + +#: ../Doc/library/2to3.rst:396 +msgid "Replaces backtick repr with the :func:`repr` function." +msgstr "" +"Remplace les accents graves utilisés comme ``repr`` par des appels à :func:" +"`repr`." + +#: ../Doc/library/2to3.rst:400 +msgid "" +"Replaces use of the :class:`set` constructor with set literals. This fixer " +"is optional." +msgstr "" +"Remplace l'usage du constructeur de :class:`set` par les ensembles " +"littéraux. Ce correcteur est optionnel." + +#: ../Doc/library/2to3.rst:405 +msgid "Renames :exc:`StandardError` to :exc:`Exception`." +msgstr "Renomme :exc:`StandardError` en :exc:`Exception`." + +#: ../Doc/library/2to3.rst:409 +msgid "" +"Changes the deprecated :data:`sys.exc_value`, :data:`sys.exc_type`, :data:" +"`sys.exc_traceback` to use :func:`sys.exc_info`." +msgstr "" +"Change les :data:`sys.exc_value`, :data:`sys.exc_type`, :data:`sys." +"exc_traceback` dépréciés en :func:`sys.exc_info`." + +#: ../Doc/library/2to3.rst:414 +msgid "Fixes the API change in generator's :meth:`throw` method." +msgstr "" +"Fixe le changement de l'API dans la méthode :meth:`throw` du générateur." + +#: ../Doc/library/2to3.rst:418 +msgid "" +"Removes implicit tuple parameter unpacking. This fixer inserts temporary " +"variables." +msgstr "" +"Supprime la décompression implicite des paramètres d'un tuple. Ce correcteur " +"ajoute des variables temporaires." + +#: ../Doc/library/2to3.rst:423 +msgid "" +"Fixes code broken from the removal of some members in the :mod:`types` " +"module." +msgstr "" +"Fixe le code cassé par la suppression de certains membres du module :mod:" +"`types`." + +#: ../Doc/library/2to3.rst:428 +msgid "Renames :class:`unicode` to :class:`str`." +msgstr "Renomme :class:`unicode` en :class:`str`." + +#: ../Doc/library/2to3.rst:432 +msgid "" +"Handles the rename of :mod:`urllib` and :mod:`urllib2` to the :mod:`urllib` " +"package." +msgstr "" +"Gère le renommage des paquets :mod:`urllib` et :mod:`urllib2` en :mod:" +"`urllib`." + +#: ../Doc/library/2to3.rst:437 +msgid "" +"Removes excess whitespace from comma separated items. This fixer is " +"optional." +msgstr "" +"Supprime l'espace excédentaire des éléments séparés par des virgules. Ce " +"correcteur est optionnel." + +#: ../Doc/library/2to3.rst:442 +msgid "" +"Renames :func:`xrange` to :func:`range` and wraps existing :func:`range` " +"calls with :class:`list`." +msgstr "" +"Renomme la fonction :func:`xrange` en :func:`range` et encapsule les appels " +"à la fonction :func:`range` avec des appels à :class:`list`." + +#: ../Doc/library/2to3.rst:447 +msgid "Changes ``for x in file.xreadlines()`` to ``for x in file``." +msgstr "Change ``for x in file.xreadlines()`` en ``for x in file``." + +#: ../Doc/library/2to3.rst:451 +msgid "" +"Wraps :func:`zip` usage in a :class:`list` call. This is disabled when " +"``from future_builtins import zip`` appears." +msgstr "" +"Encapsule l'usage de :func:`zip` dans un appel à :class:`list`. Ceci est " +"désactivé lorsque ``from future_builtins import zip`` apparaît." + +#: ../Doc/library/2to3.rst:456 +msgid ":mod:`lib2to3` - 2to3's library" +msgstr ":mod:`lib2to3` — la bibliothèque de *2to3*" + +#: ../Doc/library/2to3.rst:465 +msgid "**Source code:** :source:`Lib/lib2to3/`" +msgstr "**Code source:** :source:`Lib/lib2to3/`" + +#: ../Doc/library/2to3.rst:471 +msgid "" +"The :mod:`lib2to3` API should be considered unstable and may change " +"drastically in the future." +msgstr "" +"L'API de :mod:`lib2to3` devrait être considérée instable et peut changer " +"drastiquement dans le futur." + +#~ msgid "``hasattr(obj, '__call__')``" +#~ msgstr "``hasattr(obj, '__call__')``" diff --git a/library/__future__.po b/library/__future__.po new file mode 100644 index 000000000..72f3469b4 --- /dev/null +++ b/library/__future__.po @@ -0,0 +1,298 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-06-01 23:02+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/__future__.rst:2 +msgid ":mod:`__future__` --- Future statement definitions" +msgstr ":mod:`__future__` — Définitions des futurs" + +#: ../Doc/library/__future__.rst:7 +msgid "**Source code:** :source:`Lib/__future__.py`" +msgstr "**Source code:** :source:`Lib/_future_.py`" + +#: ../Doc/library/__future__.rst:11 +msgid ":mod:`__future__` is a real module, and serves three purposes:" +msgstr "" +"Le module :mod:`__future__` est un vrai module, et il a trois objectifs :" + +#: ../Doc/library/__future__.rst:13 +msgid "" +"To avoid confusing existing tools that analyze import statements and expect " +"to find the modules they're importing." +msgstr "" +"éviter de dérouter les outils existants qui analysent les instructions " +"d'importation et s'attendent à trouver les modules qu'ils importent ;" + +#: ../Doc/library/__future__.rst:16 +msgid "" +"To ensure that :ref:`future statements ` run under releases prior to " +"2.1 at least yield runtime exceptions (the import of :mod:`__future__` will " +"fail, because there was no module of that name prior to 2.1)." +msgstr "" +"s'assurer que les :ref:`instructions *future* ` lancées sous les " +"versions antérieures à 2.1 lèvent au moins des exceptions à l'exécution " +"(l’importation du module :mod:`__future__` échoue, car il n’y avait pas de " +"module de ce nom avant 2.1) ;" + +#: ../Doc/library/__future__.rst:20 +msgid "" +"To document when incompatible changes were introduced, and when they will be " +"--- or were --- made mandatory. This is a form of executable documentation, " +"and can be inspected programmatically via importing :mod:`__future__` and " +"examining its contents." +msgstr "" +"Pour documenter le phasage de changements entraînant des incompatibilités : " +"introduction, utilisation obligatoire. Il s’agit d’une forme de " +"documentation exécutable, qui peut être inspectée par un programme en " +"important :mod:`__future__` et en examinant son contenu." + +#: ../Doc/library/__future__.rst:25 +msgid "Each statement in :file:`__future__.py` is of the form::" +msgstr "Chaque instruction dans :file:`__future__.py` est de la forme ::" + +#: ../Doc/library/__future__.rst:31 +msgid "" +"where, normally, *OptionalRelease* is less than *MandatoryRelease*, and both " +"are 5-tuples of the same form as :data:`sys.version_info`::" +msgstr "" +"où, normalement, *OptionalRelease* est inférieur à *MandatoryRelease*, et " +"les deux sont des quintuplets de la même forme que :data:`sys." +"version_info` ::" + +#: ../Doc/library/__future__.rst:41 +msgid "" +"*OptionalRelease* records the first release in which the feature was " +"accepted." +msgstr "" +"*OptionalRelease* enregistre la première version dans laquelle la " +"fonctionnalité a été acceptée." + +#: ../Doc/library/__future__.rst:43 +msgid "" +"In the case of a *MandatoryRelease* that has not yet occurred, " +"*MandatoryRelease* predicts the release in which the feature will become " +"part of the language." +msgstr "" +"Dans le cas d'un *MandatoryRelease* qui n'a pas encore eu lieu, " +"*MandatoryRelease* prédit la *release* dans laquelle la fonctionnalité " +"deviendra un élément du langage." + +#: ../Doc/library/__future__.rst:47 +msgid "" +"Else *MandatoryRelease* records when the feature became part of the " +"language; in releases at or after that, modules no longer need a future " +"statement to use the feature in question, but may continue to use such " +"imports." +msgstr "" +"Sinon *MandatoryRelease* enregistre lorsque la fonctionnalité est devenue " +"une partie du langage ; dans cette version ou les suivantes, les modules " +"n'ont plus besoin d'une déclaration *future* pour utiliser la fonctionnalité " +"en question, mais ils peuvent continuer à utiliser ces importations." + +#: ../Doc/library/__future__.rst:51 +msgid "" +"*MandatoryRelease* may also be ``None``, meaning that a planned feature got " +"dropped." +msgstr "" +"*MandatoryRelease* peut également être ``None``, ce qui signifie qu'une " +"fonction planifiée a été abandonnée." + +#: ../Doc/library/__future__.rst:54 +msgid "" +"Instances of class :class:`_Feature` have two corresponding methods, :meth:" +"`getOptionalRelease` and :meth:`getMandatoryRelease`." +msgstr "" +"Les instances de classe :class:`_Feature` ont deux méthodes " +"correspondantes, :meth:`getOptionalRelease` et :meth:`getMandatoryRelease`." + +#: ../Doc/library/__future__.rst:57 +msgid "" +"*CompilerFlag* is the (bitfield) flag that should be passed in the fourth " +"argument to the built-in function :func:`compile` to enable the feature in " +"dynamically compiled code. This flag is stored in the :attr:`compiler_flag` " +"attribute on :class:`_Feature` instances." +msgstr "" +"*CompilerFlag* est un drapeau (chaque bit représente un champ) qui doit être " +"passé en tant que quatrième argument à la fonction native :func:`compile` " +"pour activer la fonctionnalité dans le code compilé dynamiquement. Cet " +"indicateur est stocké dans l'attribut :attr:`compiler_flag` dans les " +"instances de :class:`_Feature`." + +#: ../Doc/library/__future__.rst:62 +msgid "" +"No feature description will ever be deleted from :mod:`__future__`. Since " +"its introduction in Python 2.1 the following features have found their way " +"into the language using this mechanism:" +msgstr "" +"Aucune fonctionnalité ne sera jamais supprimée de :mod:`__future__`. Depuis " +"son introduction dans Python 2.1, les fonctionnalités suivantes ont trouvé " +"leur places dans le langage utilisant ce mécanisme :" + +#: ../Doc/library/__future__.rst:67 +msgid "feature" +msgstr "fonctionnalité" + +#: ../Doc/library/__future__.rst:67 +msgid "optional in" +msgstr "optionnel dans" + +#: ../Doc/library/__future__.rst:67 +msgid "mandatory in" +msgstr "obligatoire dans" + +#: ../Doc/library/__future__.rst:67 +msgid "effect" +msgstr "effet" + +#: ../Doc/library/__future__.rst:69 +msgid "nested_scopes" +msgstr "nested_scopes" + +#: ../Doc/library/__future__.rst:69 +msgid "2.1.0b1" +msgstr "2.1.0b1" + +#: ../Doc/library/__future__.rst:69 +msgid "2.2" +msgstr "2.2" + +#: ../Doc/library/__future__.rst:69 +msgid ":pep:`227`: *Statically Nested Scopes*" +msgstr ":pep:`227` : *Portées imbriquées*" + +#: ../Doc/library/__future__.rst:72 +msgid "generators" +msgstr "générateurs" + +#: ../Doc/library/__future__.rst:72 +msgid "2.2.0a1" +msgstr "2.2.0a1" + +#: ../Doc/library/__future__.rst:72 +msgid "2.3" +msgstr "2.3" + +#: ../Doc/library/__future__.rst:72 +msgid ":pep:`255`: *Simple Generators*" +msgstr ":pep:`255` : *Générateurs simples*" + +#: ../Doc/library/__future__.rst:75 +msgid "division" +msgstr "division" + +#: ../Doc/library/__future__.rst:75 +msgid "2.2.0a2" +msgstr "2.2.0a2" + +#: ../Doc/library/__future__.rst:75 ../Doc/library/__future__.rst:78 +#: ../Doc/library/__future__.rst:84 ../Doc/library/__future__.rst:87 +msgid "3.0" +msgstr "3.0" + +#: ../Doc/library/__future__.rst:75 +msgid ":pep:`238`: *Changing the Division Operator*" +msgstr ":pep:`238` : *Changement de l'opérateur de division*" + +#: ../Doc/library/__future__.rst:78 +msgid "absolute_import" +msgstr "absolute_import" + +#: ../Doc/library/__future__.rst:78 ../Doc/library/__future__.rst:81 +msgid "2.5.0a1" +msgstr "2.5.0a1" + +#: ../Doc/library/__future__.rst:78 +msgid ":pep:`328`: *Imports: Multi-Line and Absolute/Relative*" +msgstr "" +":pep:`328` : *Importations : multilignes et absolues/relatives* (ressource " +"en anglais)" + +#: ../Doc/library/__future__.rst:81 +msgid "with_statement" +msgstr "with_statement" + +#: ../Doc/library/__future__.rst:81 +msgid "2.6" +msgstr "2.6" + +#: ../Doc/library/__future__.rst:81 +msgid ":pep:`343`: *The \"with\" Statement*" +msgstr ":pep:`343` : *L'instruction \"with\"*" + +#: ../Doc/library/__future__.rst:84 +msgid "print_function" +msgstr "print_function" + +#: ../Doc/library/__future__.rst:84 ../Doc/library/__future__.rst:87 +msgid "2.6.0a2" +msgstr "2.6.0a2" + +#: ../Doc/library/__future__.rst:84 +msgid ":pep:`3105`: *Make print a function*" +msgstr ":pep:`3105` : *Transformation de print en fonction*" + +#: ../Doc/library/__future__.rst:87 +msgid "unicode_literals" +msgstr "unicode_literals" + +#: ../Doc/library/__future__.rst:87 +msgid ":pep:`3112`: *Bytes literals in Python 3000*" +msgstr ":pep:`3112` : *Chaînes d'octets littéraux en Python 3000*" + +#: ../Doc/library/__future__.rst:90 +msgid "generator_stop" +msgstr "generator_stop" + +#: ../Doc/library/__future__.rst:90 +msgid "3.5.0b1" +msgstr "3.5.0b1" + +#: ../Doc/library/__future__.rst:90 +msgid "3.7" +msgstr "3.7" + +#: ../Doc/library/__future__.rst:90 +msgid ":pep:`479`: *StopIteration handling inside generators*" +msgstr "" +":pep:`479` : *Gestion de *StopIteration* à l’intérieur des générateurs*" + +#: ../Doc/library/__future__.rst:93 +msgid "annotations" +msgstr "annotations" + +#: ../Doc/library/__future__.rst:93 +msgid "3.7.0b1" +msgstr "3.7.0b1" + +#: ../Doc/library/__future__.rst:93 +msgid "4.0" +msgstr "4.0" + +#: ../Doc/library/__future__.rst:93 +msgid ":pep:`563`: *Postponed evaluation of annotations*" +msgstr ":pep:`563` : *Évaluation différée des annotations*" + +#: ../Doc/library/__future__.rst:102 +msgid ":ref:`future`" +msgstr ":ref:`future`" + +#: ../Doc/library/__future__.rst:103 +msgid "How the compiler treats future imports." +msgstr "Comment le compilateur gère les importations « futures »." + +#, fuzzy +#~ msgid "future" +#~ msgstr "fonctionnalité" diff --git a/library/__main__.po b/library/__main__.po new file mode 100644 index 000000000..026580392 --- /dev/null +++ b/library/__main__.po @@ -0,0 +1,51 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-11-07 22:52+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/__main__.rst:3 +msgid ":mod:`__main__` --- Top-level script environment" +msgstr ":mod:`__main__` — Point d'entrée des scripts" + +#: ../Doc/library/__main__.rst:10 +msgid "" +"``'__main__'`` is the name of the scope in which top-level code executes. A " +"module's __name__ is set equal to ``'__main__'`` when read from standard " +"input, a script, or from an interactive prompt." +msgstr "" +"``'__main__'`` est le nom du *scope* dans lequel le code s'exécute en " +"premier. Le nom d'un module (son *__name__*) vaut ``'__main__'`` lorsqu'il " +"est lu de l'entrée standard, lorsque c'est un script, ou une invite " +"interactive." + +#: ../Doc/library/__main__.rst:14 +msgid "" +"A module can discover whether or not it is running in the main scope by " +"checking its own ``__name__``, which allows a common idiom for conditionally " +"executing code in a module when it is run as a script or with ``python -m`` " +"but not when it is imported::" +msgstr "" +"Un module peut découvrir s'il est exécuté dans le *scope* principal en " +"vérifiant son ``__name__``, ce qui permet typiquement d'exécuter du code " +"lorsque le module est exécuté avec ``python -m`` mais pas lorsqu'il est " +"importé ::" + +#: ../Doc/library/__main__.rst:23 +msgid "" +"For a package, the same effect can be achieved by including a ``__main__." +"py`` module, the contents of which will be executed when the module is run " +"with ``-m``." +msgstr "" +"Pour un paquet, le même effet peut être obtenu en utilisant un module " +"``__main__.py``, son contenu sera exécuté si le paquet est lancé via ``-m``." diff --git a/library/_dummy_thread.po b/library/_dummy_thread.po new file mode 100644 index 000000000..d29dc963d --- /dev/null +++ b/library/_dummy_thread.po @@ -0,0 +1,58 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-09-29 16:01+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/_dummy_thread.rst:2 +msgid "" +":mod:`_dummy_thread` --- Drop-in replacement for the :mod:`_thread` module" +msgstr "" +":mod:`_dummy_thread` --- Module de substitution pour le module :mod:`_thread`" + +#: ../Doc/library/_dummy_thread.rst:7 +msgid "**Source code:** :source:`Lib/_dummy_thread.py`" +msgstr "**Code source:** :source:`Lib/_dummy_thread.py`" + +#: ../Doc/library/_dummy_thread.rst:9 +msgid "" +"Python now always has threading enabled. Please use :mod:`_thread` (or, " +"better, :mod:`threading`) instead." +msgstr "" +"Dorénavant, Python active toujours les fils d'exécution multiples. Utilisez :" +"mod:`_thread` (ou mieux :mod:`threading`) à la place." + +#: ../Doc/library/_dummy_thread.rst:15 +msgid "" +"This module provides a duplicate interface to the :mod:`_thread` module. It " +"was meant to be imported when the :mod:`_thread` module was not provided on " +"a platform." +msgstr "" +"Ce module fournit une imitation de l'interface du module :mod:`_thread`. Son " +"but était d'être importé lorsque le module :mod:`_thread` n'était pas fourni " +"par la plateforme." + +#: ../Doc/library/_dummy_thread.rst:19 +msgid "" +"Be careful to not use this module where deadlock might occur from a thread " +"being created that blocks waiting for another thread to be created. This " +"often occurs with blocking I/O." +msgstr "" +"Soyez prudent de ne pas utiliser ce module lorsqu'un interblocage " +"(*deadlock* en anglais) peut se produire à partir d'un fil d'exécution en " +"cours de création qui bloque en attentant qu'un autre fil d'exécution soit " +"créé. Cela se produit souvent avec des I/O bloquants." + +#~ msgid "Suggested usage is::" +#~ msgstr "Utilisation suggérée ::" diff --git a/library/_thread.po b/library/_thread.po new file mode 100644 index 000000000..8f4472a90 --- /dev/null +++ b/library/_thread.po @@ -0,0 +1,314 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-06-11 18:37+0100\n" +"Last-Translator: Stéphane HUC \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.4\n" + +#: ../Doc/library/_thread.rst:2 +msgid ":mod:`_thread` --- Low-level threading API" +msgstr ":mod:`_thread` — API bas niveau de gestion de fils d'exécution" + +#: ../Doc/library/_thread.rst:15 +msgid "" +"This module provides low-level primitives for working with multiple threads " +"(also called :dfn:`light-weight processes` or :dfn:`tasks`) --- multiple " +"threads of control sharing their global data space. For synchronization, " +"simple locks (also called :dfn:`mutexes` or :dfn:`binary semaphores`) are " +"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:26 +msgid "This module used to be optional, it is now always available." +msgstr "Ce module était optionnel, il est maintenant toujours disponible." + +#: ../Doc/library/_thread.rst:29 +msgid "This module defines the following constants and functions:" +msgstr "Ce module définit les constantes et les fonctions suivantes :" + +#: ../Doc/library/_thread.rst:33 +msgid "Raised on thread-specific errors." +msgstr "Levée lors d'erreurs spécifiques aux fils d'exécution." + +#: ../Doc/library/_thread.rst:35 +msgid "This is now a synonym of the built-in :exc:`RuntimeError`." +msgstr "" +"Ceci est à présent un synonyme de l'exception native :exc:`RuntimeError`." + +#: ../Doc/library/_thread.rst:41 +msgid "This is the type of lock objects." +msgstr "C'est le type d'objets verrous." + +#: ../Doc/library/_thread.rst:46 +msgid "" +"Start a new thread and return its identifier. The thread executes the " +"function *function* with the argument list *args* (which must be a tuple). " +"The optional *kwargs* argument specifies a dictionary of keyword arguments. " +"When the function returns, the thread silently exits. When the function " +"terminates with an unhandled exception, a stack trace is printed and then " +"the thread exits (but other threads continue to run)." +msgstr "" +"Démarre un nouveau fils d'exécution et renvoie son identifiant. Ce fil " +"d'exécution exécute la fonction *function* avec la liste d'arguments *args* " +"(qui doit être un *tuple*). L'argument optionnel *kwargs* spécifie un " +"dictionnaire d'arguments de mots clés. Quand la fonction se termine, le fil " +"d'exécution se termine silencieusement. Quand la fonction termine avec une " +"exception non gérée, une trace de la pile est affichée et ensuite le fil " +"d'exécution s'arrête (mais les autres fils d'exécutions continuent de " +"s'exécuter)." + +#: ../Doc/library/_thread.rst:56 +msgid "" +"Simulate the effect of a :data:`signal.SIGINT` signal arriving in the main " +"thread. A thread can use this function to interrupt the main thread." +msgstr "" +"Simule l'effet d'un signal :data:`signal.SIGINT` arrivant au fil d'exécution " +"principal. Un fil d'exécution peut utiliser cette fonction pour interrompre " +"le fil d'exécution principal." + +#: ../Doc/library/_thread.rst:59 +msgid "" +"If :data:`signal.SIGINT` isn't handled by Python (it was set to :data:" +"`signal.SIG_DFL` or :data:`signal.SIG_IGN`), this function does nothing." +msgstr "" +"Si le signal :data:`signal.SIGINT` n'est pas géré par Python (s'il a été " +"paramétré à :data:`signal.SIG_DFL` ou :data:`signal.SIG_IGN`), cette " +"fonction ne fait rien." + +#: ../Doc/library/_thread.rst:66 +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:80 +msgid "" +"Return a new lock object. Methods of locks are described below. The lock " +"is initially unlocked." +msgstr "" +"Renvoie un nouveau verrou. Les méthodes des verrous sont décrites ci-" +"dessous. Le verrou est initialement déverrouillé." + +#: ../Doc/library/_thread.rst:86 +msgid "" +"Return the 'thread identifier' of the current thread. This is a nonzero " +"integer. Its value has no direct meaning; it is intended as a magic cookie " +"to be used e.g. to index a dictionary of thread-specific data. Thread " +"identifiers may be recycled when a thread exits and another thread is " +"created." +msgstr "" +"Renvoie l'« identifiant de fil » du fil d'exécution courant. C'est un " +"entier non nul. Sa valeur n'a pas de signification directe ; il est destiné " +"à être utilisé comme *cookie* magique, par exemple pour indexer un " +"dictionnaire de données pour chaque fil. Les identifiants de fils peuvent " +"être recyclés lorsqu'un fil d'exécution se termine et qu'un autre fil est " +"créé." + +#: ../Doc/library/_thread.rst:94 +msgid "" +"Return the thread stack size used when creating new threads. The optional " +"*size* argument specifies the stack size to be used for subsequently created " +"threads, and must be 0 (use platform or configured default) or a positive " +"integer value of at least 32,768 (32 KiB). If *size* is not specified, 0 is " +"used. If changing the thread stack size is unsupported, a :exc:" +"`RuntimeError` is raised. If the specified stack size is invalid, a :exc:" +"`ValueError` is raised and the stack size is unmodified. 32 KiB is " +"currently the minimum supported stack size value to guarantee sufficient " +"stack space for the interpreter itself. Note that some platforms may have " +"particular restrictions on values for the stack size, such as requiring a " +"minimum stack size > 32 KiB or requiring allocation in multiples of the " +"system memory page size - platform documentation should be referred to for " +"more information (4 KiB pages are common; using multiples of 4096 for the " +"stack size is the suggested approach in the absence of more specific " +"information)." +msgstr "" +"Renvoie la taille de la pile d'exécution utilisée lors de la création de " +"nouveaux fils d'exécution. L'argument optionnel *size* spécifie la taille de " +"pile à utiliser pour les fils créés ultérieurement, et doit être à 0 (pour " +"utiliser la taille de la plate-forme ou la valeur configurée par défaut) ou " +"un entier positif supérieur ou égal à 32 768 (32 Kio). Si *size* n'est pas " +"spécifié, 0 est utilisé. Si la modification de la taille de la pile de fils " +"n'est pas prise en charge, une exception :exc:`RuntimeError` est levée. Si " +"la taille de la pile spécifiée n'est pas valide, une exception :exc:" +"`ValueError` est levée et la taille de la pile n'est pas modifiée. 32 Kio " +"est actuellement la valeur minimale de taille de la pile prise en charge " +"pour garantir un espace de pile suffisant pour l'interpréteur lui-même. " +"Notez que certaines plates-formes peuvent avoir des restrictions " +"particulières sur les valeurs de taille de la pile, telles que l'exigence " +"d'une taille de pile minimale > 32 Kio ou d'une allocation en multiples de " +"la taille de page de la mémoire du système – la documentation de la plate-" +"forme devrait être consultée pour plus d'informations (4 Kio sont courants ; " +"en l'absence de renseignements plus spécifiques, l'approche suggérée est " +"l'utilisation de multiples de 4 096 octets pour la taille de la pile)." + +#: ../Doc/library/_thread.rst:109 +msgid "" +":ref:`Availability `: Windows, systems with POSIX threads." +msgstr "" +":ref:`Disponibilité ` : Windows et systèmes gérant les fils " +"d'exécution POSIX." + +#: ../Doc/library/_thread.rst:114 +msgid "" +"The maximum value allowed for the *timeout* parameter of :meth:`Lock." +"acquire`. Specifying a timeout greater than this value will raise an :exc:" +"`OverflowError`." +msgstr "" +"La valeur maximale autorisée pour le paramètre *timeout* de la méthode :" +"meth:`Lock.acquire`. Préciser un délai d'attente supérieur à cette valeur " +"lève une exception :exc:`OverflowError`." + +#: ../Doc/library/_thread.rst:121 +msgid "Lock objects have the following methods:" +msgstr "Les verrous ont les méthodes suivantes :" + +#: ../Doc/library/_thread.rst:126 +msgid "" +"Without any optional argument, this method acquires the lock " +"unconditionally, if necessary waiting until it is released by another thread " +"(only one thread at a time can acquire a lock --- that's their reason for " +"existence)." +msgstr "" +"Sans aucun argument optionnel, cette méthode acquiert le verrou " +"inconditionnellement, et si nécessaire attend jusqu'à ce qu'il soit relâché " +"par un autre fil d'exécution (un seul fil d'exécution à la fois peut " +"acquérir le verrou — c'est leur raison d'être)." + +#: ../Doc/library/_thread.rst:130 +msgid "" +"If the integer *waitflag* argument is present, the action depends on its " +"value: if it is zero, the lock is only acquired if it can be acquired " +"immediately without waiting, while if it is nonzero, the lock is acquired " +"unconditionally as above." +msgstr "" +"Si l'argument *waitflag*, un entier, est présent, l'action dépend de sa " +"valeur : si elle est de zéro, le verrou est seulement acquis s'il peut être " +"acquis immédiatement, sans attendre, sinon le verrou est acquis " +"inconditionnellement comme ci-dessus." + +#: ../Doc/library/_thread.rst:135 +msgid "" +"If the floating-point *timeout* argument is present and positive, it " +"specifies the maximum wait time in seconds before returning. A negative " +"*timeout* argument specifies an unbounded wait. You cannot specify a " +"*timeout* if *waitflag* is zero." +msgstr "" +"Si l'argument *timeout*, en virgule flottante, est présent et positif, il " +"spécifie le temps d'attente maximum en secondes avant de renvoyer. Un " +"argument *timeout* négatif spécifie une attente illimitée. Vous ne pouvez " +"pas spécifier un *timeout* si *waitflag* est à zéro." + +#: ../Doc/library/_thread.rst:140 +msgid "" +"The return value is ``True`` if the lock is acquired successfully, ``False`` " +"if not." +msgstr "" +"La valeur renvoyée est ``True`` si le verrou est acquis avec succès, sinon " +"``False``." + +#: ../Doc/library/_thread.rst:143 +msgid "The *timeout* parameter is new." +msgstr "Le paramètre *timeout* est nouveau." + +#: ../Doc/library/_thread.rst:146 +msgid "Lock acquires can now be interrupted by signals on POSIX." +msgstr "" +"Le verrou acquis peut maintenant être interrompu par des signaux sur POSIX." + +#: ../Doc/library/_thread.rst:152 +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:158 +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:161 +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:171 +msgid "**Caveats:**" +msgstr "**Avertissements :**" + +#: ../Doc/library/_thread.rst:175 +msgid "" +"Threads interact strangely with interrupts: the :exc:`KeyboardInterrupt` " +"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:179 +msgid "" +"Calling :func:`sys.exit` or raising the :exc:`SystemExit` exception is " +"equivalent to calling :func:`_thread.exit`." +msgstr "" +"Appeler la fonction :func:`sys.exit` ou lever l'exception :exc:`SystemExit` " +"est équivalent à appeler la fonction :func:`_thread.exit`." + +#: ../Doc/library/_thread.rst:182 +msgid "" +"It is not possible to interrupt the :meth:`acquire` method on a lock --- " +"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:185 +msgid "" +"When the main thread exits, it is system defined whether the other threads " +"survive. On most systems, they are killed without executing :keyword:" +"`try` ... :keyword:`finally` clauses or executing object destructors." +msgstr "" +"Quand le fil d'exécution principal s'arrête, il est défini par le système si " +"les autres fils d'exécution survivent. Sur beaucoup de systèmes, ils sont " +"tués sans l'exécution des clauses :keyword:`try`… :keyword:`finally` ou " +"l'exécution des destructeurs d'objets." + +#: ../Doc/library/_thread.rst:190 +msgid "" +"When the main thread exits, it does not do any of its usual cleanup (except " +"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." diff --git a/library/abc.po b/library/abc.po new file mode 100644 index 000000000..5fc34e356 --- /dev/null +++ b/library/abc.po @@ -0,0 +1,440 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-02-21 17:32+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/abc.rst:2 +msgid ":mod:`abc` --- Abstract Base Classes" +msgstr ":mod:`abc` — Classes de Base Abstraites" + +#: ../Doc/library/abc.rst:11 +msgid "**Source code:** :source:`Lib/abc.py`" +msgstr "**Code source:** :source:`Lib/abc.py`" + +#: ../Doc/library/abc.rst:15 +msgid "" +"This module provides the infrastructure for defining :term:`abstract base " +"classes ` (ABCs) in Python, as outlined in :pep:`3119`; " +"see the PEP for why this was added to Python. (See also :pep:`3141` and the :" +"mod:`numbers` module regarding a type hierarchy for numbers based on ABCs.)" +msgstr "" +"Le module fournit l'infrastructure pour définir les :term:`classes de bases " +"abstraites ` (*Abstract Base Class* ou *ABC* en " +"anglais) en Python, tel qu'indiqué dans la :pep:`3119`; voir la PEP pour la " +"raison de son ajout à Python. (Voir également la :pep:`3141` et le module :" +"mod:`numbers` pour ce qui concerne la hiérarchie de types pour les nombres " +"basés sur les classes de base abstraites). Par la suite nous utiliserons " +"l'abréviation ABC (*Abstract Base Class*) pour désigner une classe de base " +"abstraite." + +#: ../Doc/library/abc.rst:20 +msgid "" +"The :mod:`collections` module has some concrete classes that derive from " +"ABCs; these can, of course, be further derived. In addition, the :mod:" +"`collections.abc` submodule has some ABCs that can be used to test whether a " +"class or instance provides a particular interface, for example, if it is " +"hashable or if it is a mapping." +msgstr "" +"Le module :mod:`collections` possède certaines classes concrètes qui " +"dérivent d'ABC. Celles-ci peuvent, bien sur, être elles-mêmes dérivées. De " +"plus, le sous-module :mod:`collections.abc` possède des ABC qui peuvent être " +"utilisées pour tester si une classe ou une instance fournit une interface " +"spécifique. Par exemple, est-elle hachable ou un tableau associatif " +"(*mapping* en anglais) ?" + +#: ../Doc/library/abc.rst:27 +msgid "" +"This module provides the metaclass :class:`ABCMeta` for defining ABCs and a " +"helper class :class:`ABC` to alternatively define ABCs through inheritance:" +msgstr "" +"Ce module fournit la métaclasse :class:`ABCMeta` pour définir les ABC ainsi " +"que la classe d'aide :class:`ABC`, cette dernière permettant de définir des " +"ABC en utilisant l'héritage :" + +#: ../Doc/library/abc.rst:32 +msgid "" +"A helper class that has :class:`ABCMeta` as its metaclass. With this class, " +"an abstract base class can be created by simply deriving from :class:`ABC` " +"avoiding sometimes confusing metaclass usage, for example::" +msgstr "" +"Classe d'aide qui a :class:`ABCMeta` pour métaclasse. Avec cette classe, une " +"ABC peut être créée simplement en héritant de :class:`ABC` , ce qui permet " +"d'éviter l'utilisation parfois déroutante de métaclasse, par exemple ::" + +#: ../Doc/library/abc.rst:41 +msgid "" +"Note that the type of :class:`ABC` is still :class:`ABCMeta`, therefore " +"inheriting from :class:`ABC` requires the usual precautions regarding " +"metaclass usage, as multiple inheritance may lead to metaclass conflicts. " +"One may also define an abstract base class by passing the metaclass keyword " +"and using :class:`ABCMeta` directly, for example::" +msgstr "" +"Il est à noter que le type de :class:`ABC` reste :class:`ABCMeta`. En " +"conséquence, hériter de :class:`ABC` nécessite les précautions habituelles " +"concernant l'utilisation de métaclasses : l'utilisation d'héritage multiple " +"peut entrainer des conflits de métaclasses. Il est également possible de " +"définir une ABC en passant l'argument nommé *metaclass* et en utilisant :" +"class:`ABCMeta` directement, par exemple ::" + +#: ../Doc/library/abc.rst:57 +msgid "Metaclass for defining Abstract Base Classes (ABCs)." +msgstr "Métaclasse pour définir des classes de base abstraites (ABC)." + +#: ../Doc/library/abc.rst:59 +msgid "" +"Use this metaclass to create an ABC. An ABC can be subclassed directly, and " +"then acts as a mix-in class. You can also register unrelated concrete " +"classes (even built-in classes) and unrelated ABCs as \"virtual subclasses\" " +"-- these and their descendants will be considered subclasses of the " +"registering ABC by the built-in :func:`issubclass` function, but the " +"registering ABC won't show up in their MRO (Method Resolution Order) nor " +"will method implementations defined by the registering ABC be callable (not " +"even via :func:`super`). [#]_" +msgstr "" +"Utilisez cette métaclasse pour créer une ABC. Il est possible d'hériter " +"d'une ABC directement, cette classe de base abstraite fonctionne alors comme " +"une classe *mixin*. Vous pouvez également enregistrer une classe concrète " +"sans lien (même une classe native) et des ABC comme \"sous-classes virtuelles" +"\" -- celles-ci et leur descendantes seront considérées comme des sous-" +"classes de la classe de base abstraite par la fonction native :func:" +"`issubclass`, mais les ABC enregistrées n'apparaitront pas dans leur ordre " +"de résolution des méthodes (*MRO* pour *Method Resolution Order* en " +"anglais). Les implémentations de méthodes définies par l'ABC ne seront pas " +"appelable (pas même via :func:`super`). [#]_" + +#: ../Doc/library/abc.rst:68 +msgid "" +"Classes created with a metaclass of :class:`ABCMeta` have the following " +"method:" +msgstr "" +"Les classes dont la métaclasse est :class:`ABCMeta` possèdent les méthodes " +"suivantes :" + +#: ../Doc/library/abc.rst:72 +msgid "" +"Register *subclass* as a \"virtual subclass\" of this ABC. For example::" +msgstr "" +"Enregistrer *subclass* en tant que sous-classe virtuelle de cette ABC. Par " +"exemple ::" + +#: ../Doc/library/abc.rst:85 +msgid "Returns the registered subclass, to allow usage as a class decorator." +msgstr "" +"Renvoie la sous-classe enregistrée pour permettre l'utilisation en tant que " +"décorateur de classe." + +#: ../Doc/library/abc.rst:88 +msgid "" +"To detect calls to :meth:`register`, you can use the :func:`get_cache_token` " +"function." +msgstr "" +"Pour détecter les appels à :meth:`register`, vous pouvez utiliser la " +"fonction :func:`get_cache_token`." + +#: ../Doc/library/abc.rst:92 +msgid "You can also override this method in an abstract base class:" +msgstr "Vous pouvez également redéfinir cette méthode dans une ABC :" + +#: ../Doc/library/abc.rst:96 +msgid "(Must be defined as a class method.)" +msgstr "(Doit être définie en tant que méthode de classe.)" + +#: ../Doc/library/abc.rst:98 +msgid "" +"Check whether *subclass* is considered a subclass of this ABC. This means " +"that you can customize the behavior of ``issubclass`` further without the " +"need to call :meth:`register` on every class you want to consider a subclass " +"of the ABC. (This class method is called from the :meth:`__subclasscheck__` " +"method of the ABC.)" +msgstr "" +"Vérifie si *subclass* est considérée comme une sous-classe de cette ABC. " +"Cela signifie que vous pouvez personnaliser le comportement de " +"``issubclass`` sans nécessiter d'appeler :meth:`register` pour chacune des " +"classes que vous souhaitez considérer comme sous-classe de l'ABC. (Cette " +"méthode de classe est appelée par la méthode :meth:`__subclasscheck__` de la " +"classe de base abstraite)." + +#: ../Doc/library/abc.rst:104 +msgid "" +"This method should return ``True``, ``False`` or ``NotImplemented``. If it " +"returns ``True``, the *subclass* is considered a subclass of this ABC. If it " +"returns ``False``, the *subclass* is not considered a subclass of this ABC, " +"even if it would normally be one. If it returns ``NotImplemented``, the " +"subclass check is continued with the usual mechanism." +msgstr "" +"Cette méthode doit renvoyer ``True``, ``False`` ou ``NotImplemented``. Si " +"elle renvoie ``True``, *subclass* est considérée comme sous-classe de cette " +"ABC. Si elle renvoie ``False``, la *subclass* n'est pas considérée une sous-" +"classe de cette ABC même si elle l'aurait été en temps normal. Si elle " +"renvoie ``NotImplemented``, la vérification d'appartenance à la sous-classe " +"continue via le mécanisme habituel." + +#: ../Doc/library/abc.rst:114 +msgid "" +"For a demonstration of these concepts, look at this example ABC definition::" +msgstr "" +"Pour une illustration de ces concepts, voir cet exemple de définition de " +"ABC ::" + +#: ../Doc/library/abc.rst:143 +msgid "" +"The ABC ``MyIterable`` defines the standard iterable method, :meth:" +"`~iterator.__iter__`, as an abstract method. The implementation given here " +"can still be called from subclasses. The :meth:`get_iterator` method is " +"also part of the ``MyIterable`` abstract base class, but it does not have to " +"be overridden in non-abstract derived classes." +msgstr "" +"L'ABC ``MyIterable`` définit la méthode d'itération :meth:`~iterator." +"__iter__` comme méthode abstraite. L'implémentation qui lui est donnée ici " +"peut être appelée depuis les sous-classes. La méthode :meth:`get_iterator` " +"fait également partie de la classe de base abstraite ``MyIterable``, mais " +"elle n'a pas à être redéfinie dans les classes dérivées non-abstraites." + +#: ../Doc/library/abc.rst:149 +msgid "" +"The :meth:`__subclasshook__` class method defined here says that any class " +"that has an :meth:`~iterator.__iter__` method in its :attr:`~object." +"__dict__` (or in that of one of its base classes, accessed via the :attr:" +"`~class.__mro__` list) is considered a ``MyIterable`` too." +msgstr "" +"La méthode de classe :meth:`__subclasshook__` définie ici dit que toute " +"classe qui possède la méthode :meth:`~iterator.__iter__` dans son :attr:" +"`~object.__dict__` (ou dans une de ses classes de base, accédée via la " +"liste :attr:`~class.__mro__`) est considérée également comme un " +"``MyIterable``." + +#: ../Doc/library/abc.rst:154 +msgid "" +"Finally, the last line makes ``Foo`` a virtual subclass of ``MyIterable``, " +"even though it does not define an :meth:`~iterator.__iter__` method (it uses " +"the old-style iterable protocol, defined in terms of :meth:`__len__` and :" +"meth:`__getitem__`). Note that this will not make ``get_iterator`` " +"available as a method of ``Foo``, so it is provided separately." +msgstr "" +"Enfin, la dernière ligne fait de ``Foo`` une sous-classe virtuelle de " +"``MyIterable``, même si cette classe ne définit pas de méthode :meth:" +"`~iterator.__iter__` (elle utilise l'ancien protocole d'itération qui se " +"définit en termes de :meth:`__len__` et :meth:`__getitem__`). A noter que " +"cela ne rendra pas le ``get_iterator`` de ``MyIterable`` disponible comme " +"une méthode de ``Foo``, ``get_iterator`` est donc implémenté séparément." + +#: ../Doc/library/abc.rst:163 +msgid "The :mod:`abc` module also provides the following decorator:" +msgstr "Le module :mod:`abc` fournit aussi le décorateur :" + +#: ../Doc/library/abc.rst:167 +msgid "A decorator indicating abstract methods." +msgstr "Un décorateur marquant les méthodes comme abstraites." + +#: ../Doc/library/abc.rst:169 +msgid "" +"Using this decorator requires that the class's metaclass is :class:`ABCMeta` " +"or is derived from it. A class that has a metaclass derived from :class:" +"`ABCMeta` cannot be instantiated unless all of its abstract methods and " +"properties are overridden. The abstract methods can be called using any of " +"the normal 'super' call mechanisms. :func:`abstractmethod` may be used to " +"declare abstract methods for properties and descriptors." +msgstr "" +"Utiliser ce décorateur nécessite que la métaclasse de la classe soit :class:" +"`ABCMeta` ou soit dérivée de celle-ci. Une classe qui possède une méta-" +"classe dérivée de :class:`ABCMeta` ne peut pas être instanciée à moins que " +"toutes ses méthodes et propriétés abstraites soient redéfinies. Les méthodes " +"abstraites peuvent être appelées en utilisant n'importe quel des mécanismes " +"d'appel à 'super'. :func:`abstractmethod` peut être utilisée pour déclarer " +"des méthodes abstraites pour les propriétés et descripteurs." + +#: ../Doc/library/abc.rst:176 +msgid "" +"Dynamically adding abstract methods to a class, or attempting to modify the " +"abstraction status of a method or class once it is created, are not " +"supported. The :func:`abstractmethod` only affects subclasses derived using " +"regular inheritance; \"virtual subclasses\" registered with the ABC's :meth:" +"`register` method are not affected." +msgstr "" +"Python ne gère pas l'ajout dynamique de méthodes abstraites à une classe, il " +"n'est pas non plus possible de modifier l'état d'abstraction d'une méthode " +"ou d'une classe une fois celle-ci créée. :func:`abstractmethod` n'affecte " +"que les sous-classes dérivées utilisant l'héritage classique. Les \"sous-" +"classes virtuelles\" enregistrées avec la méthode :meth:`register` de l'ABC " +"ne sont pas affectées." + +#: ../Doc/library/abc.rst:182 +msgid "" +"When :func:`abstractmethod` is applied in combination with other method " +"descriptors, it should be applied as the innermost decorator, as shown in " +"the following usage examples::" +msgstr "" +"Quand le décorateur :func:`abstractmethod` est utilisé en même temps que " +"d'autres descripteurs de méthodes, il doit être appliqué en tant que " +"décorateur le plus interne. Voir les exemples d'utilisation suivants ::" + +#: ../Doc/library/abc.rst:216 +msgid "" +"In order to correctly interoperate with the abstract base class machinery, " +"the descriptor must identify itself as abstract using :attr:" +"`__isabstractmethod__`. In general, this attribute should be ``True`` if any " +"of the methods used to compose the descriptor are abstract. For example, " +"Python's built-in :class:`property` does the equivalent of::" +msgstr "" +"Afin d'interagir correctement avec le mécanisme de classe de base abstraite, " +"un descripteur doit s'identifier comme abstrait en utilisant :attr:" +"`__isabstractmethod__`. En général, cet attribut doit être ``True`` si au " +"moins une des méthodes faisant partie du descripteur est abstraite. Par " +"exemple, la classe native :class:`property` de python fait l'équivalent de ::" + +#: ../Doc/library/abc.rst:231 +msgid "" +"Unlike Java abstract methods, these abstract methods may have an " +"implementation. This implementation can be called via the :func:`super` " +"mechanism from the class that overrides it. This could be useful as an end-" +"point for a super-call in a framework that uses cooperative multiple-" +"inheritance." +msgstr "" +"Contrairement aux méthodes abstraites Java, ces méthodes abstraites peuvent " +"être implémentées. Cette implémentation peut être appelée via le mécanisme :" +"func:`super` depuis la classe qui la redéfinit. C'est typiquement utile pour " +"y appeler *super* et ainsi coopérer correctement dans un environnement " +"utilisant de l'héritage multiple." + +#: ../Doc/library/abc.rst:239 +msgid "The :mod:`abc` module also supports the following legacy decorators:" +msgstr "" +"Le module :mod:`abc` gère également les décorateurs historiques suivants :" + +#: ../Doc/library/abc.rst:244 +msgid "" +"It is now possible to use :class:`classmethod` with :func:`abstractmethod`, " +"making this decorator redundant." +msgstr "" +"Il est désormais possible d'utiliser :class:`classmethod` avec :func:" +"`abstractmethod`, cela rend ce décorateur redondant." + +#: ../Doc/library/abc.rst:248 +msgid "" +"A subclass of the built-in :func:`classmethod`, indicating an abstract " +"classmethod. Otherwise it is similar to :func:`abstractmethod`." +msgstr "" +"Sous-classe du décorateur natif :func:`classmethod` qui indique une méthode " +"de classe ( ``classmethod`` ) abstraite. En dehors de cela, est similaire à :" +"func:`abstractmethod`." + +#: ../Doc/library/abc.rst:251 +msgid "" +"This special case is deprecated, as the :func:`classmethod` decorator is now " +"correctly identified as abstract when applied to an abstract method::" +msgstr "" +"Ce cas spécial est obsolète car le décorateur :func:`classmethod` est " +"désormais correctement identifié comme abstrait quand il est appliqué à une " +"méthode abstraite ::" + +#: ../Doc/library/abc.rst:265 +msgid "" +"It is now possible to use :class:`staticmethod` with :func:`abstractmethod`, " +"making this decorator redundant." +msgstr "" +"Il est désormais possible d'utiliser :class:`staticmethod` avec :func:" +"`abstractmethod`, cela rend ce décorateur redondant." + +#: ../Doc/library/abc.rst:269 +msgid "" +"A subclass of the built-in :func:`staticmethod`, indicating an abstract " +"staticmethod. Otherwise it is similar to :func:`abstractmethod`." +msgstr "" +"Sous-classe du décorateur natif :func:`classmethod` qui indique une méthode " +"statique ( ``staticmethod`` ) abstraite. En dehors de cela, est similaire à :" +"func:`abstractmethod`." + +#: ../Doc/library/abc.rst:272 +msgid "" +"This special case is deprecated, as the :func:`staticmethod` decorator is " +"now correctly identified as abstract when applied to an abstract method::" +msgstr "" +"Ce cas spécial est obsolète car le décorateur :func:`staticmethod` est " +"désormais correctement identifié comme abstrait quand appliqué à une méthode " +"abstraite ::" + +#: ../Doc/library/abc.rst:285 +msgid "" +"It is now possible to use :class:`property`, :meth:`property.getter`, :meth:" +"`property.setter` and :meth:`property.deleter` with :func:`abstractmethod`, " +"making this decorator redundant." +msgstr "" +"Il est désormais possible d'utiliser :class:`property`, :meth:`property." +"getter`, :meth:`property.setter` et :meth:`property.deleter` avec :func:" +"`abstractmethod`, ce qui rend ce décorateur redondant." + +#: ../Doc/library/abc.rst:290 +msgid "" +"A subclass of the built-in :func:`property`, indicating an abstract property." +msgstr "Sous-classe de :func:`property`, qui indique une propriété abstraite." + +#: ../Doc/library/abc.rst:293 +msgid "" +"This special case is deprecated, as the :func:`property` decorator is now " +"correctly identified as abstract when applied to an abstract method::" +msgstr "" +"Ce cas spécial est obsolète car le décorateur :func:`property` est désormais " +"correctement identifié comme abstrait quand appliqué à une méthode " +"abstraite ::" + +#: ../Doc/library/abc.rst:303 +msgid "" +"The above example defines a read-only property; you can also define a read-" +"write abstract property by appropriately marking one or more of the " +"underlying methods as abstract::" +msgstr "" +"L'exemple ci-dessus définit une propriété en lecture seule. Vous pouvez " +"également définir une propriété en lecture-écriture abstraite en indiquant " +"une ou plusieurs des méthodes sous-jacentes comme abstraite ::" + +#: ../Doc/library/abc.rst:317 +msgid "" +"If only some components are abstract, only those components need to be " +"updated to create a concrete property in a subclass::" +msgstr "" +"Si seuls certains composants sont abstraits, seuls ces composants abstraits " +"nécessitent d'être mis à jour pour créer une propriété concrète dans une " +"sous-classe ::" + +#: ../Doc/library/abc.rst:326 +msgid "The :mod:`abc` module also provides the following functions:" +msgstr "Le module :mod:`abc` fournit également la fonction suivante :" + +#: ../Doc/library/abc.rst:330 +msgid "Returns the current abstract base class cache token." +msgstr "Renvoie le jeton de cache ( *cache token*) de l'ABC." + +#: ../Doc/library/abc.rst:332 +msgid "" +"The token is an opaque object (that supports equality testing) identifying " +"the current version of the abstract base class cache for virtual subclasses. " +"The token changes with every call to :meth:`ABCMeta.register` on any ABC." +msgstr "" +"Le jeton est un objet opaque (qui implémente le test d'égalité) qui " +"identifie la version actuelle du cache de l'ABC pour les sous-classes " +"virtuelles. Le jeton change avec chaque appel à :meth:`ABCMeta.register` sur " +"n'importe quelle ABC." + +#: ../Doc/library/abc.rst:340 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/abc.rst:341 +msgid "" +"C++ programmers should note that Python's virtual base class concept is not " +"the same as C++'s." +msgstr "" +"Les développeurs C++ noteront que le concept Python de classe de base " +"virtuelle ( *virtual base class* ) n'est pas le même que celui de C++." diff --git a/library/aifc.po b/library/aifc.po new file mode 100644 index 000000000..9d7bc658a --- /dev/null +++ b/library/aifc.po @@ -0,0 +1,253 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/aifc.rst:2 +msgid ":mod:`aifc` --- Read and write AIFF and AIFC files" +msgstr ":mod:`aifc` — Lis et écrit dans les fichiers AIFF et AIFC" + +#: ../Doc/library/aifc.rst:7 +msgid "**Source code:** :source:`Lib/aifc.py`" +msgstr "**Code source:** :source:`Lib/aifc.py`" + +#: ../Doc/library/aifc.rst:16 +msgid "" +"This module provides support for reading and writing AIFF and AIFF-C files. " +"AIFF is Audio Interchange File Format, a format for storing digital audio " +"samples in a file. AIFF-C is a newer version of the format that includes " +"the ability to compress the audio data." +msgstr "" + +#: ../Doc/library/aifc.rst:21 +msgid "" +"Audio files have a number of parameters that describe the audio data. The " +"sampling rate or frame rate is the number of times per second the sound is " +"sampled. The number of channels indicate if the audio is mono, stereo, or " +"quadro. Each frame consists of one sample per channel. The sample size is " +"the size in bytes of each sample. Thus a frame consists of ``nchannels * " +"samplesize`` bytes, and a second's worth of audio consists of ``nchannels * " +"samplesize * framerate`` bytes." +msgstr "" + +#: ../Doc/library/aifc.rst:29 +msgid "" +"For example, CD quality audio has a sample size of two bytes (16 bits), uses " +"two channels (stereo) and has a frame rate of 44,100 frames/second. This " +"gives a frame size of 4 bytes (2\\*2), and a second's worth occupies " +"2\\*2\\*44100 bytes (176,400 bytes)." +msgstr "" + +#: ../Doc/library/aifc.rst:34 +msgid "Module :mod:`aifc` defines the following function:" +msgstr "Le module :mod:`aifc` définit les fonctions suivantes :" + +#: ../Doc/library/aifc.rst:39 +msgid "" +"Open an AIFF or AIFF-C file and return an object instance with methods that " +"are described below. The argument *file* is either a string naming a file " +"or a :term:`file object`. *mode* must be ``'r'`` or ``'rb'`` when the file " +"must be opened for reading, or ``'w'`` or ``'wb'`` when the file must be " +"opened for writing. If omitted, ``file.mode`` is used if it exists, " +"otherwise ``'rb'`` is used. When used for writing, the file object should " +"be seekable, unless you know ahead of time how many samples you are going to " +"write in total and use :meth:`writeframesraw` and :meth:`setnframes`. The :" +"func:`.open` function may be used in a :keyword:`with` statement. When the :" +"keyword:`!with` block completes, the :meth:`~aifc.close` method is called." +msgstr "" + +#: ../Doc/library/aifc.rst:50 +msgid "Support for the :keyword:`with` statement was added." +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." + +#: ../Doc/library/aifc.rst:53 +msgid "" +"Objects returned by :func:`.open` when a file is opened for reading have the " +"following methods:" +msgstr "" + +#: ../Doc/library/aifc.rst:59 +msgid "Return the number of audio channels (1 for mono, 2 for stereo)." +msgstr "" + +#: ../Doc/library/aifc.rst:64 +msgid "Return the size in bytes of individual samples." +msgstr "Donne la taille en octets des échantillons, individuellement." + +#: ../Doc/library/aifc.rst:69 +msgid "Return the sampling rate (number of audio frames per second)." +msgstr "" + +#: ../Doc/library/aifc.rst:74 +msgid "Return the number of audio frames in the file." +msgstr "Donne le nombre de trames (*frames*) audio du fichier." + +#: ../Doc/library/aifc.rst:79 +msgid "" +"Return a bytes array of length 4 describing the type of compression used in " +"the audio file. For AIFF files, the returned value is ``b'NONE'``." +msgstr "" + +#: ../Doc/library/aifc.rst:86 +msgid "" +"Return a bytes array convertible to a human-readable description of the type " +"of compression used in the audio file. For AIFF files, the returned value " +"is ``b'not compressed'``." +msgstr "" + +#: ../Doc/library/aifc.rst:93 +msgid "" +"Returns a :func:`~collections.namedtuple` ``(nchannels, sampwidth, " +"framerate, nframes, comptype, compname)``, equivalent to output of the :meth:" +"`get\\*` methods." +msgstr "" +"Renvoie une :func:`~collections.namedtuple` ``(nchannels, sampwidth, " +"framerate, nframes, comptype, compname)``, équivalent à la sortie des " +"méthodes :meth:`get\\*`." + +#: ../Doc/library/aifc.rst:100 +msgid "" +"Return a list of markers in the audio file. A marker consists of a tuple of " +"three elements. The first is the mark ID (an integer), the second is the " +"mark position in frames from the beginning of the data (an integer), the " +"third is the name of the mark (a string)." +msgstr "" + +#: ../Doc/library/aifc.rst:108 +msgid "" +"Return the tuple as described in :meth:`getmarkers` for the mark with the " +"given *id*." +msgstr "" + +#: ../Doc/library/aifc.rst:114 +msgid "" +"Read and return the next *nframes* frames from the audio file. The returned " +"data is a string containing for each frame the uncompressed samples of all " +"channels." +msgstr "" + +#: ../Doc/library/aifc.rst:121 +msgid "" +"Rewind the read pointer. The next :meth:`readframes` will start from the " +"beginning." +msgstr "" + +#: ../Doc/library/aifc.rst:127 +msgid "Seek to the specified frame number." +msgstr "Va à la trame de numéro donné." + +#: ../Doc/library/aifc.rst:132 +msgid "Return the current frame number." +msgstr "Donne le numéro de la trame courante." + +#: ../Doc/library/aifc.rst:137 +msgid "" +"Close the AIFF file. After calling this method, the object can no longer be " +"used." +msgstr "" + +#: ../Doc/library/aifc.rst:140 +msgid "" +"Objects returned by :func:`.open` when a file is opened for writing have all " +"the above methods, except for :meth:`readframes` and :meth:`setpos`. In " +"addition the following methods exist. The :meth:`get\\*` methods can only " +"be called after the corresponding :meth:`set\\*` methods have been called. " +"Before the first :meth:`writeframes` or :meth:`writeframesraw`, all " +"parameters except for the number of frames must be filled in." +msgstr "" + +#: ../Doc/library/aifc.rst:150 +msgid "" +"Create an AIFF file. The default is that an AIFF-C file is created, unless " +"the name of the file ends in ``'.aiff'`` in which case the default is an " +"AIFF file." +msgstr "" + +#: ../Doc/library/aifc.rst:156 +msgid "" +"Create an AIFF-C file. The default is that an AIFF-C file is created, " +"unless the name of the file ends in ``'.aiff'`` in which case the default is " +"an AIFF file." +msgstr "" + +#: ../Doc/library/aifc.rst:163 +msgid "Specify the number of channels in the audio file." +msgstr "Définit le nombre de canaux du fichier audio." + +#: ../Doc/library/aifc.rst:168 +msgid "Specify the size in bytes of audio samples." +msgstr "Définit la taille en octets des échantillons audio." + +#: ../Doc/library/aifc.rst:173 +msgid "Specify the sampling frequency in frames per second." +msgstr "" + +#: ../Doc/library/aifc.rst:178 +msgid "" +"Specify the number of frames that are to be written to the audio file. If " +"this parameter is not set, or not set correctly, the file needs to support " +"seeking." +msgstr "" + +#: ../Doc/library/aifc.rst:189 +msgid "" +"Specify the compression type. If not specified, the audio data will not be " +"compressed. In AIFF files, compression is not possible. The name parameter " +"should be a human-readable description of the compression type as a bytes " +"array, the type parameter should be a bytes array of length 4. Currently " +"the following compression types are supported: ``b'NONE'``, ``b'ULAW'``, " +"``b'ALAW'``, ``b'G722'``." +msgstr "" + +#: ../Doc/library/aifc.rst:199 +msgid "" +"Set all the above parameters at once. The argument is a tuple consisting of " +"the various parameters. This means that it is possible to use the result of " +"a :meth:`getparams` call as argument to :meth:`setparams`." +msgstr "" + +#: ../Doc/library/aifc.rst:206 +msgid "" +"Add a mark with the given id (larger than 0), and the given name at the " +"given position. This method can be called at any time before :meth:`close`." +msgstr "" + +#: ../Doc/library/aifc.rst:212 +msgid "" +"Return the current write position in the output file. Useful in combination " +"with :meth:`setmark`." +msgstr "" + +#: ../Doc/library/aifc.rst:218 +msgid "" +"Write data to the output file. This method can only be called after the " +"audio file parameters have been set." +msgstr "" + +#: ../Doc/library/aifc.rst:221 ../Doc/library/aifc.rst:230 +msgid "Any :term:`bytes-like object` is now accepted." +msgstr "N'importe quel :term:`bytes-like object` est maintenant accepté." + +#: ../Doc/library/aifc.rst:227 +msgid "" +"Like :meth:`writeframes`, except that the header of the audio file is not " +"updated." +msgstr "" + +#: ../Doc/library/aifc.rst:236 +msgid "" +"Close the AIFF file. The header of the file is updated to reflect the " +"actual size of the audio data. After calling this method, the object can no " +"longer be used." +msgstr "" diff --git a/library/allos.po b/library/allos.po new file mode 100644 index 000000000..e98f7e4f1 --- /dev/null +++ b/library/allos.po @@ -0,0 +1,33 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-07-27 22:58+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/allos.rst:5 +msgid "Generic Operating System Services" +msgstr "Services génériques du système d'exploitation" + +#: ../Doc/library/allos.rst:7 +msgid "" +"The modules described in this chapter provide interfaces to operating system " +"features that are available on (almost) all operating systems, such as files " +"and a clock. The interfaces are generally modeled after the Unix or C " +"interfaces, but they are available on most other systems as well. Here's an " +"overview:" +msgstr "" +"Les modules documentés dans ce chapitre fournissent des interfaces vers des " +"fonctionnalités communes à la grande majorité des systèmes d'exploitation, " +"telles que les fichiers et l'horloge. Bien que ces interfaces soient " +"classiquement calquées sur les interfaces Unix ou C, elles sont aussi " +"disponibles sur la plupart des autres systèmes. En voici un aperçu." diff --git a/library/archiving.po b/library/archiving.po new file mode 100644 index 000000000..82631a58e --- /dev/null +++ b/library/archiving.po @@ -0,0 +1,31 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-07-27 23:01+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/archiving.rst:5 +msgid "Data Compression and Archiving" +msgstr "Compression de donnée et archivage" + +#: ../Doc/library/archiving.rst:7 +msgid "" +"The modules described in this chapter support data compression with the " +"zlib, gzip, bzip2 and lzma algorithms, and the creation of ZIP- and tar-" +"format archives. See also :ref:`archiving-operations` provided by the :mod:" +"`shutil` module." +msgstr "" +"Les modules documentés dans ce chapitre implémentent les algorithmes de " +"compression *zlib*, *gzip*, *bzip2* et *lzma*, ainsi que la création " +"d'archives *ZIP* et *tar*. Voir aussi :ref:`archiving-operations` fourni par " +"le module :mod:`shutil`." diff --git a/library/argparse.po b/library/argparse.po new file mode 100644 index 000000000..f670ea2d2 --- /dev/null +++ b/library/argparse.po @@ -0,0 +1,2448 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-07-28 23:47+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/argparse.rst:2 +msgid "" +":mod:`argparse` --- Parser for command-line options, arguments and sub-" +"commands" +msgstr "" +":mod:`argparse` -- Parseur d'arguments, d'options, et de sous-commandes de " +"ligne de commande" + +#: ../Doc/library/argparse.rst:12 +msgid "**Source code:** :source:`Lib/argparse.py`" +msgstr "**Code source:** :source:`Lib/argparse.py`" + +#: ../Doc/library/argparse.rst:None +msgid "Tutorial" +msgstr "Tutoriel" + +#: ../Doc/library/argparse.rst:18 +msgid "" +"This page contains the API reference information. For a more gentle " +"introduction to Python command-line parsing, have a look at the :ref:" +"`argparse tutorial `." +msgstr "" +"Cette page est la référence de l'API. Pour une introduction plus en douceur " +"à l'analyse des arguments de la ligne de commande, regardez :ref:`le " +"tutoriel argparse `." + +#: ../Doc/library/argparse.rst:22 +msgid "" +"The :mod:`argparse` module makes it easy to write user-friendly command-line " +"interfaces. The program defines what arguments it requires, and :mod:" +"`argparse` will figure out how to parse those out of :data:`sys.argv`. The :" +"mod:`argparse` module also automatically generates help and usage messages " +"and issues errors when users give the program invalid arguments." +msgstr "" +"Le module :mod:`argparse` facilite l'écriture d'interfaces en ligne de " +"commande agréables à l'emploi. Le programme définit les arguments requis et :" +"mod:`argparse` s'arrange pour analyser ceux provenant de :data:`sys.argv`. " +"Le module :mod:`argparse` génère aussi automatiquement les messages d'aide, " +"le mode d'emploi, et lève des erreurs lorsque les utilisateurs fournissent " +"au programme des arguments invalides." + +#: ../Doc/library/argparse.rst:30 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/argparse.rst:32 +msgid "" +"The following code is a Python program that takes a list of integers and " +"produces either the sum or the max::" +msgstr "" +"Le code suivant est un programme Python acceptant une liste de nombre " +"entiers et en donnant soit la somme, soit le maximum ::" + +#: ../Doc/library/argparse.rst:47 +msgid "" +"Assuming the Python code above is saved into a file called ``prog.py``, it " +"can be run at the command line and provides useful help messages:" +msgstr "" +"En supposant que le code Python ci-dessus est sauvegardé dans un fichier " +"nommé ``prog.py``, il peut être lancé en ligne de commande et fournit des " +"messages d'aide utiles :" + +#: ../Doc/library/argparse.rst:64 +msgid "" +"When run with the appropriate arguments, it prints either the sum or the max " +"of the command-line integers:" +msgstr "" +"Lorsqu'il est lancé avec les arguments appropriés, il affiche la somme ou le " +"maximum des entiers fournis en ligne de commande :" + +#: ../Doc/library/argparse.rst:75 +msgid "If invalid arguments are passed in, it will issue an error:" +msgstr "Si des arguments invalides sont passés, il lève une erreur :" + +#: ../Doc/library/argparse.rst:83 +msgid "The following sections walk you through this example." +msgstr "Les sections suivantes vous guident au travers de cet exemple." + +#: ../Doc/library/argparse.rst:87 +msgid "Creating a parser" +msgstr "Créer un analyseur (*parser* en anglais)" + +#: ../Doc/library/argparse.rst:89 +msgid "" +"The first step in using the :mod:`argparse` is creating an :class:" +"`ArgumentParser` object::" +msgstr "" +"La première étape dans l'utilisation de :mod:`argparse` est de créer un " +"objet :class:`ArgumentParser` ::" + +#: ../Doc/library/argparse.rst:94 +msgid "" +"The :class:`ArgumentParser` object will hold all the information necessary " +"to parse the command line into Python data types." +msgstr "" +"L'objet :class:`ArgumentParser` contiendra toutes les informations " +"nécessaires pour interpréter la ligne de commande comme des types de données " +"de Python." + +#: ../Doc/library/argparse.rst:99 +msgid "Adding arguments" +msgstr "Ajouter des arguments" + +#: ../Doc/library/argparse.rst:101 +msgid "" +"Filling an :class:`ArgumentParser` with information about program arguments " +"is done by making calls to the :meth:`~ArgumentParser.add_argument` method. " +"Generally, these calls tell the :class:`ArgumentParser` how to take the " +"strings on the command line and turn them into objects. This information is " +"stored and used when :meth:`~ArgumentParser.parse_args` is called. For " +"example::" +msgstr "" +"Alimenter un :class:`ArgumentParser` avec des informations sur les arguments " +"du programme s'effectue en faisant des appels à la méthode :meth:" +"`~ArgumentParser.add_argument`. En général ces appels disent à l':class:" +"`ArgumentParser` comment prendre les chaînes de caractères de la ligne de " +"commande et les transformer en objets. Cette information est stockée et " +"utilisée lorsque :meth:`~ArgumentParser.parse_args` est appelée. Par " +"exemple ::" + +#: ../Doc/library/argparse.rst:113 +msgid "" +"Later, calling :meth:`~ArgumentParser.parse_args` will return an object with " +"two attributes, ``integers`` and ``accumulate``. The ``integers`` attribute " +"will be a list of one or more ints, and the ``accumulate`` attribute will be " +"either the :func:`sum` function, if ``--sum`` was specified at the command " +"line, or the :func:`max` function if it was not." +msgstr "" +"Ensuite, appeler :meth:`~ArgumentParser.parse_args` va renvoyer un objet " +"avec deux attributs, ``integers`` et ``accumulate``. L'attribut ``integers`` " +"est une liste d'un ou plusieurs entiers, et l'attribut ``accumulate`` est " +"soit la fonction :func:`sum`, si ``--sum`` était fourni à la ligne de " +"commande, soit la fonction :func:`max` dans le cas contraire." + +#: ../Doc/library/argparse.rst:121 +msgid "Parsing arguments" +msgstr "Analyse des arguments" + +#: ../Doc/library/argparse.rst:123 +msgid "" +":class:`ArgumentParser` parses arguments through the :meth:`~ArgumentParser." +"parse_args` method. This will inspect the command line, convert each " +"argument to the appropriate type and then invoke the appropriate action. In " +"most cases, this means a simple :class:`Namespace` object will be built up " +"from attributes parsed out of the command line::" +msgstr "" +":class:`ArgumentParser` analyse les arguments avec la méthode :meth:" +"`~ArgumentParser.parse_args`. Cette méthode inspecte la ligne de commande, " +"convertit chaque argument au type approprié et invoque l'action requise. " +"Dans la plupart des cas, le résultat est la construction d'un objet :class:" +"`Namespace` à partir des attributs analysés dans la ligne de commande ::" + +#: ../Doc/library/argparse.rst:132 +msgid "" +"In a script, :meth:`~ArgumentParser.parse_args` will typically be called " +"with no arguments, and the :class:`ArgumentParser` will automatically " +"determine the command-line arguments from :data:`sys.argv`." +msgstr "" +"Dans un script, :meth:`~ArgumentParser.parse_args` est généralement appelée " +"sans arguments et l'objet :class:`ArgumentParser` détermine automatiquement " +"les arguments de la ligne de commande à partir de :data:`sys.argv`." + +#: ../Doc/library/argparse.rst:138 +msgid "ArgumentParser objects" +msgstr "Objets ``ArgumentParser``" + +#: ../Doc/library/argparse.rst:147 +msgid "" +"Create a new :class:`ArgumentParser` object. All parameters should be passed " +"as keyword arguments. Each parameter has its own more detailed description " +"below, but in short they are:" +msgstr "" +"Crée un nouvel objet :class:`ArgumentParser`. Tous les paramètres doivent " +"être passés en arguments nommés. Chaque paramètre a sa propre description " +"détaillée ci-dessous, mais en résumé ils sont :" + +#: ../Doc/library/argparse.rst:151 +msgid "prog_ - The name of the program (default: ``sys.argv[0]``)" +msgstr "prog_ – Le nom du programme (par défaut : ``sys.argv[0]``)" + +#: ../Doc/library/argparse.rst:153 +msgid "" +"usage_ - The string describing the program usage (default: generated from " +"arguments added to parser)" +msgstr "" +"usage_ – La chaîne décrivant l'utilisation du programme (par défaut : " +"générée à partir des arguments ajoutés à l'analyseur)" + +#: ../Doc/library/argparse.rst:156 +msgid "description_ - Text to display before the argument help (default: none)" +msgstr "" +"description_ – Texte à afficher avant l'aide des arguments (par défaut : " +"vide)" + +#: ../Doc/library/argparse.rst:158 +msgid "epilog_ - Text to display after the argument help (default: none)" +msgstr "" +"epilog_ – Texte à afficher après l'aide des arguments (par défaut : vide)" + +#: ../Doc/library/argparse.rst:160 +msgid "" +"parents_ - A list of :class:`ArgumentParser` objects whose arguments should " +"also be included" +msgstr "" +"parents_ – Liste d'objets :class:`ArgumentParser` contenant des arguments " +"qui devraient aussi être inclus" + +#: ../Doc/library/argparse.rst:163 +msgid "formatter_class_ - A class for customizing the help output" +msgstr "" +"formatter_class_ – Classe pour personnaliser la sortie du message d'aide" + +#: ../Doc/library/argparse.rst:165 +msgid "" +"prefix_chars_ - The set of characters that prefix optional arguments " +"(default: '-')" +msgstr "" +"prefix_chars_ – Jeu de caractères qui précède les arguments optionnels (par " +"défaut : ``'-'``)" + +#: ../Doc/library/argparse.rst:168 +msgid "" +"fromfile_prefix_chars_ - The set of characters that prefix files from which " +"additional arguments should be read (default: ``None``)" +msgstr "" +"fromfile_prefix_chars_ – Jeu de caractères qui précède les fichiers d'où des " +"arguments additionnels doivent être lus (par défaut : ``None``)" + +#: ../Doc/library/argparse.rst:171 +msgid "" +"argument_default_ - The global default value for arguments (default: " +"``None``)" +msgstr "" +"argument_default_ – Valeur globale par défaut pour les arguments (par " +"défaut : ``None``)" + +#: ../Doc/library/argparse.rst:174 +msgid "" +"conflict_handler_ - The strategy for resolving conflicting optionals " +"(usually unnecessary)" +msgstr "" +"conflict_handler_ – Stratégie pour résoudre les conflits entre les arguments " +"optionnels (non-nécessaire en général)" + +#: ../Doc/library/argparse.rst:177 +msgid "" +"add_help_ - Add a ``-h/--help`` option to the parser (default: ``True``)" +msgstr "" +"add_help_ – Ajoute une option d'aide ``-h/--help`` à l'analyseur (par " +"défaut : ``True``)" + +#: ../Doc/library/argparse.rst:179 +msgid "" +"allow_abbrev_ - Allows long options to be abbreviated if the abbreviation is " +"unambiguous. (default: ``True``)" +msgstr "" +"allow_abbrev_ – Permet l'acceptation d'abréviations non-ambigües pour les " +"options longues (par défaut : ``True``)" + +#: ../Doc/library/argparse.rst:182 +msgid "*allow_abbrev* parameter was added." +msgstr "Le paramètre *allow_abbrev* est ajouté." + +#: ../Doc/library/argparse.rst:185 ../Doc/library/argparse.rst:683 +msgid "The following sections describe how each of these are used." +msgstr "" +"Les sections suivantes décrivent comment chacune de ces options sont " +"utilisées." + +#: ../Doc/library/argparse.rst:189 +msgid "prog" +msgstr "Le paramètre *prog*" + +#: ../Doc/library/argparse.rst:191 +msgid "" +"By default, :class:`ArgumentParser` objects use ``sys.argv[0]`` to determine " +"how to display the name of the program in help messages. This default is " +"almost always desirable because it will make the help messages match how the " +"program was invoked on the command line. For example, consider a file named " +"``myprogram.py`` with the following code::" +msgstr "" +"Par défaut, l'objet :class:`ArgumentParser` utilise ``sys.argv[0]`` pour " +"déterminer comment afficher le nom du programme dans les messages d'aide. " +"Cette valeur par défaut est presque toujours souhaitable, car elle produit " +"un message d'aide qui correspond à la méthode utilisée pour lancer le " +"programme sur la ligne de commande. Par exemple, si on a un fichier nommé " +"``myprogram.py`` avec le code suivant ::" + +#: ../Doc/library/argparse.rst:202 +msgid "" +"The help for this program will display ``myprogram.py`` as the program name " +"(regardless of where the program was invoked from):" +msgstr "" +"Le message d'aide pour ce programme affiche ``myprogram.py`` pour le nom du " +"programme (peu importe d'où le programme est lancé) :" + +#: ../Doc/library/argparse.rst:221 +msgid "" +"To change this default behavior, another value can be supplied using the " +"``prog=`` argument to :class:`ArgumentParser`::" +msgstr "" +"Pour changer ce comportement par défaut, une valeur alternative est passée " +"par l'argument ``prog=`` du constructeur d':class:`ArgumentParser` ::" + +#: ../Doc/library/argparse.rst:231 +msgid "" +"Note that the program name, whether determined from ``sys.argv[0]`` or from " +"the ``prog=`` argument, is available to help messages using the ``%(prog)s`` " +"format specifier." +msgstr "" +"Prenez note que le nom du programme, peu importe s'il provient de ``sys." +"argv[0]`` ou de l'argument ``prog=``, est accessible aux messages d'aide " +"grâce au spécificateur de formatage ``%(prog)s``." + +#: ../Doc/library/argparse.rst:248 +msgid "usage" +msgstr "Le paramètre *usage*" + +#: ../Doc/library/argparse.rst:250 +msgid "" +"By default, :class:`ArgumentParser` calculates the usage message from the " +"arguments it contains::" +msgstr "" +"Par défaut, l'objet :class:`ArgumentParser` construit le message relatif à " +"l'utilisation à partir des arguments qu'il contient ::" + +#: ../Doc/library/argparse.rst:266 +msgid "" +"The default message can be overridden with the ``usage=`` keyword argument::" +msgstr "" +"Le message par défaut peut être remplacé grâce à l'argument nommé " +"``usage=`` ::" + +#: ../Doc/library/argparse.rst:281 +msgid "" +"The ``%(prog)s`` format specifier is available to fill in the program name " +"in your usage messages." +msgstr "" +"Le spécificateur de formatage ``%(prog)s`` est disponible pour insérer le " +"nom du programme dans vos messages d'utilisation." + +#: ../Doc/library/argparse.rst:286 +msgid "description" +msgstr "Le paramètre *description*" + +#: ../Doc/library/argparse.rst:288 +msgid "" +"Most calls to the :class:`ArgumentParser` constructor will use the " +"``description=`` keyword argument. This argument gives a brief description " +"of what the program does and how it works. In help messages, the " +"description is displayed between the command-line usage string and the help " +"messages for the various arguments::" +msgstr "" +"La plupart des appels au constructeur d':class:`ArgumentParser` utilisent " +"l'argument nommé ``description=``. Cet argument donne une brève description " +"de ce que fait le programme et de comment il fonctionne. Dans les messages " +"d'aide, cette description est affichée entre le prototype de ligne de " +"commande et les messages d'aide des arguments ::" + +#: ../Doc/library/argparse.rst:303 +msgid "" +"By default, the description will be line-wrapped so that it fits within the " +"given space. To change this behavior, see the formatter_class_ argument." +msgstr "" +"Par défaut, la description est sujette au retour à la ligne automatique pour " +"se conformer à l'espace disponible. Pour changer ce comportement, voyez " +"l'argument formatter_class_." + +#: ../Doc/library/argparse.rst:308 +msgid "epilog" +msgstr "Le paramètre *epilog*" + +#: ../Doc/library/argparse.rst:310 +msgid "" +"Some programs like to display additional description of the program after " +"the description of the arguments. Such text can be specified using the " +"``epilog=`` argument to :class:`ArgumentParser`::" +msgstr "" +"Certains programmes aiment afficher un texte supplémentaire après la " +"description des arguments. Un tel texte peut être spécifié grâce à " +"l'argument ``epilog=`` du constructeur d':class:`ArgumentParser` ::" + +#: ../Doc/library/argparse.rst:327 +msgid "" +"As with the description_ argument, the ``epilog=`` text is by default line-" +"wrapped, but this behavior can be adjusted with the formatter_class_ " +"argument to :class:`ArgumentParser`." +msgstr "" +"De même que pour l'argument description_, le texte passé à ``epilog=`` est " +"sujet au retour à la ligne automatique. Ce comportement peut être ajusté " +"grâce à l'argument formatter_class_ du constructeur d':class:" +"`ArgumentParser`." + +#: ../Doc/library/argparse.rst:333 +msgid "parents" +msgstr "Le paramètre *parents*" + +#: ../Doc/library/argparse.rst:335 +msgid "" +"Sometimes, several parsers share a common set of arguments. Rather than " +"repeating the definitions of these arguments, a single parser with all the " +"shared arguments and passed to ``parents=`` argument to :class:" +"`ArgumentParser` can be used. The ``parents=`` argument takes a list of :" +"class:`ArgumentParser` objects, collects all the positional and optional " +"actions from them, and adds these actions to the :class:`ArgumentParser` " +"object being constructed::" +msgstr "" +"Parfois, plusieurs analyseurs partagent un jeu commun d'arguments. Plutôt " +"que de répéter les définitions de ces arguments, un analyseur commun qui " +"contient tous les arguments partagés peut être utilisé, puis passé à " +"l'argument ``parents=`` du constructeur d':class:`ArgumentParser`. " +"L'argument ``parents=`` accepte une liste d'objets :class:`ArgumentParser`, " +"accumule toutes les actions positionnelles et optionnelles de ces objets, " +"puis les ajoute à l'instance d':class:`ArgumentParser` en cours de " +"création ::" + +#: ../Doc/library/argparse.rst:355 +msgid "" +"Note that most parent parsers will specify ``add_help=False``. Otherwise, " +"the :class:`ArgumentParser` will see two ``-h/--help`` options (one in the " +"parent and one in the child) and raise an error." +msgstr "" +"Prenez note que la majorité des analyseurs parents doivent spécifier " +"``add_help=False``. Autrement, le constructeur d':class:`ArgumentParser` va " +"voir plus d'une option ``-h/--help`` (une pour le parent et une pour " +"l'instance en cours de création) et va lever une erreur." + +#: ../Doc/library/argparse.rst:360 +msgid "" +"You must fully initialize the parsers before passing them via ``parents=``. " +"If you change the parent parsers after the child parser, those changes will " +"not be reflected in the child." +msgstr "" +"Vous devez initialiser complètement les analyseurs avant de les passer à " +"``parents=``. Si vous changez les analyseurs parents après la création de " +"l'analyseur enfant, ces changements ne seront pas répercutés sur l'enfant." + +#: ../Doc/library/argparse.rst:366 +msgid "formatter_class" +msgstr "Le paramètre *formatter_class*" + +#: ../Doc/library/argparse.rst:368 +msgid "" +":class:`ArgumentParser` objects allow the help formatting to be customized " +"by specifying an alternate formatting class. Currently, there are four such " +"classes:" +msgstr "" +"Les objets :class:`ArgumentParser` permettent la personnalisation de la mise " +"en page des messages d'aide en spécifiant une classe de formatage " +"alternative. Il y a actuellement quatre classes de formatage :" + +#: ../Doc/library/argparse.rst:377 +msgid "" +":class:`RawDescriptionHelpFormatter` and :class:`RawTextHelpFormatter` give " +"more control over how textual descriptions are displayed. By default, :class:" +"`ArgumentParser` objects line-wrap the description_ and epilog_ texts in " +"command-line help messages::" +msgstr "" +":class:`RawDescriptionHelpFormatter` et :class:`RawTextHelpFormatter` vous " +"donnent plus de contrôle sur comment les descriptions textuelles sont " +"affichées. Par défaut, les contenus de description_ et epilog_ des objets :" +"class:`ArgumentParser` font l'objet du retour à la ligne automatique dans " +"les messages d'aide ::" + +#: ../Doc/library/argparse.rst:402 +msgid "" +"Passing :class:`RawDescriptionHelpFormatter` as ``formatter_class=`` " +"indicates that description_ and epilog_ are already correctly formatted and " +"should not be line-wrapped::" +msgstr "" +"Passer :class:`RawDescriptionHelpFormatter` à ``formatter_class=`` indique " +"que les textes de description_ et d'epilog_ ont déjà été formatés " +"correctement et qu'ils ne doivent pas faire l'objet d'un retour à la ligne " +"automatique ::" + +#: ../Doc/library/argparse.rst:428 +msgid "" +":class:`RawTextHelpFormatter` maintains whitespace for all sorts of help " +"text, including argument descriptions. However, multiple new lines are " +"replaced with one. If you wish to preserve multiple blank lines, add spaces " +"between the newlines." +msgstr "" +":class:`RawTextHelpFormatter` conserve les espaces pour toutes les " +"catégories de textes d'aide, y compris les descriptions des arguments. Notez " +"bien que plusieurs retours à la ligne consécutifs sont remplacés par un " +"seul. Si vous voulez garder plusieurs sauts de ligne, ajoutez des espaces " +"entre les caractères de changement de ligne." + +#: ../Doc/library/argparse.rst:433 +msgid "" +":class:`ArgumentDefaultsHelpFormatter` automatically adds information about " +"default values to each of the argument help messages::" +msgstr "" +":class:`ArgumentDefaultsHelpFormatter` ajoute automatiquement l'information " +"sur les valeurs par défaut aux messages d'aide de tous les arguments ::" + +#: ../Doc/library/argparse.rst:451 +msgid "" +":class:`MetavarTypeHelpFormatter` uses the name of the type_ argument for " +"each argument as the display name for its values (rather than using the " +"dest_ as the regular formatter does)::" +msgstr "" +":class:`MetavarTypeHelpFormatter` utilise le nom du type_ de l'argument pour " +"chacun des arguments comme nom d'affichage pour leurs valeurs (contrairement " +"au formateur standard qui utilise dest_) ::" + +#: ../Doc/library/argparse.rst:472 +msgid "prefix_chars" +msgstr "Le paramètre *prefix_chars*" + +#: ../Doc/library/argparse.rst:474 +msgid "" +"Most command-line options will use ``-`` as the prefix, e.g. ``-f/--foo``. " +"Parsers that need to support different or additional prefix characters, e.g. " +"for options like ``+f`` or ``/foo``, may specify them using the " +"``prefix_chars=`` argument to the ArgumentParser constructor::" +msgstr "" +"La majorité des options sur la ligne de commande utilisent ``-`` comme " +"préfixe (par exemple : ``-f/--foo``). Pour les analyseurs qui doivent " +"accepter des caractères préfixes autres ou additionnels (par exemple pour " +"les options ``+f`` ou ``/foo``), vous devez les spécifier en utilisant " +"l'argument ``prefix_chars=`` du constructeur d'``ArgumentParser`` ::" + +#: ../Doc/library/argparse.rst:486 +msgid "" +"The ``prefix_chars=`` argument defaults to ``'-'``. Supplying a set of " +"characters that does not include ``-`` will cause ``-f/--foo`` options to be " +"disallowed." +msgstr "" +"La valeur par défaut de ``prefix_chars=`` est ``'-'``. Passer un jeu de " +"caractères qui n'inclut pas ``-`` provoquera le refus des options comme ``-" +"f/--foo``." + +#: ../Doc/library/argparse.rst:492 +msgid "fromfile_prefix_chars" +msgstr "Le paramètre *fromfile_prefix_chars*" + +#: ../Doc/library/argparse.rst:494 +msgid "" +"Sometimes, for example when dealing with a particularly long argument lists, " +"it may make sense to keep the list of arguments in a file rather than typing " +"it out at the command line. If the ``fromfile_prefix_chars=`` argument is " +"given to the :class:`ArgumentParser` constructor, then arguments that start " +"with any of the specified characters will be treated as files, and will be " +"replaced by the arguments they contain. For example::" +msgstr "" +"Parfois, par exemple quand on traite une liste d'arguments particulièrement " +"longue, il est logique de stocker la liste d'arguments dans un fichier " +"plutôt que de la saisir sur la ligne de commande. Si un jeu de caractères " +"est passé à l'argument ``fromfile_prefix_chars=`` du constructeur de :class:" +"`ArgumentParser`, alors les arguments qui commencent par l'un des caractères " +"spécifiés seront traités comme des fichiers et seront remplacés par les " +"arguments contenus dans ces fichiers. Par exemple ::" + +#: ../Doc/library/argparse.rst:508 +msgid "" +"Arguments read from a file must by default be one per line (but see also :" +"meth:`~ArgumentParser.convert_arg_line_to_args`) and are treated as if they " +"were in the same place as the original file referencing argument on the " +"command line. So in the example above, the expression ``['-f', 'foo', " +"'@args.txt']`` is considered equivalent to the expression ``['-f', 'foo', '-" +"f', 'bar']``." +msgstr "" +"Par défaut, les arguments lus à partir d'un fichier doivent être chacun sur " +"une nouvelle ligne (voir aussi :meth:`~ArgumentParser." +"convert_arg_line_to_args`) et ils sont traités comme s'ils étaient au même " +"emplacement que le fichier original référençant les arguments de la ligne de " +"commande. Ainsi dans l'exemple ci-dessus, l'expression ``['-f', 'foo', " +"'@args.txt']`` est équivalente à l'expression ``['-f', 'foo', '-f', 'bar']``." + +#: ../Doc/library/argparse.rst:514 +msgid "" +"The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that " +"arguments will never be treated as file references." +msgstr "" +"Par défaut, l'argument ``fromfile_prefix_chars=`` est ``None``, ce qui " +"signifie que les arguments ne seront pas traités en tant que références à " +"des fichiers." + +#: ../Doc/library/argparse.rst:519 +msgid "argument_default" +msgstr "Le paramètre *argument_default*" + +#: ../Doc/library/argparse.rst:521 +msgid "" +"Generally, argument defaults are specified either by passing a default to :" +"meth:`~ArgumentParser.add_argument` or by calling the :meth:`~ArgumentParser." +"set_defaults` methods with a specific set of name-value pairs. Sometimes " +"however, it may be useful to specify a single parser-wide default for " +"arguments. This can be accomplished by passing the ``argument_default=`` " +"keyword argument to :class:`ArgumentParser`. For example, to globally " +"suppress attribute creation on :meth:`~ArgumentParser.parse_args` calls, we " +"supply ``argument_default=SUPPRESS``::" +msgstr "" +"Généralement, les valeurs par défaut des arguments sont spécifiées soit en " +"passant la valeur désirée à :meth:`~ArgumentParser.add_argument` soit par un " +"appel à la méthode :meth:`~ArgumentParser.set_defaults`. Cette méthode " +"accepte un ensemble de paires nom-valeur. Il est parfois pertinent de " +"configurer une valeur par défaut pour tous les arguments d'un analyseur. On " +"peut activer ce comportement en passant la valeur désirée à l'argument nommé " +"``argument_default=`` du constructeur de :class:`ArgumentParser`. Par " +"exemple, pour supprimer globalement la création d'attributs pendant l'appel " +"de :meth:`~ArgumentParser.parse_args`, on fournit " +"``argument_default=SUPPRESS`` ::" + +#: ../Doc/library/argparse.rst:541 +msgid "allow_abbrev" +msgstr "Le paramètre *allow_abbrev*" + +#: ../Doc/library/argparse.rst:543 +msgid "" +"Normally, when you pass an argument list to the :meth:`~ArgumentParser." +"parse_args` method of an :class:`ArgumentParser`, it :ref:`recognizes " +"abbreviations ` of long options." +msgstr "" +"En temps normal, lorsque vous passez une liste d'arguments à la méthode :" +"meth:`~ArgumentParser.parse_args` d':class:`ArgumentParser` :ref:`elle " +"accepte les abréviations ` des options longues." + +#: ../Doc/library/argparse.rst:547 +msgid "This feature can be disabled by setting ``allow_abbrev`` to ``False``::" +msgstr "" +"Cette fonctionnalité peut être désactivée en passant ``False`` à " +"``allow_abbrev`` ::" + +#: ../Doc/library/argparse.rst:560 +msgid "conflict_handler" +msgstr "Le paramètre *conflict_handler*" + +#: ../Doc/library/argparse.rst:562 +msgid "" +":class:`ArgumentParser` objects do not allow two actions with the same " +"option string. By default, :class:`ArgumentParser` objects raise an " +"exception if an attempt is made to create an argument with an option string " +"that is already in use::" +msgstr "" +"Les objets :class:`ArgumentParser` ne peuvent pas avoir plus d'une option " +"avec la même chaîne d'option. Par défaut, les objets :class:`ArgumentParser` " +"lèvent une exception si on essaie de créer un argument avec une chaîne " +"d'option qui est déjà utilisée ::" + +#: ../Doc/library/argparse.rst:574 +msgid "" +"Sometimes (e.g. when using parents_) it may be useful to simply override any " +"older arguments with the same option string. To get this behavior, the " +"value ``'resolve'`` can be supplied to the ``conflict_handler=`` argument " +"of :class:`ArgumentParser`::" +msgstr "" +"Parfois, par exemple si on utilise des analyseurs parents_, il est " +"souhaitable de surcharger les anciens arguments qui partagent la même chaîne " +"d'option. Pour obtenir ce comportement, vous devez passer ``'resolve'`` à " +"l'argument ``conflict_handler=`` du constructeur d':class:`ArgumentParser` ::" + +#: ../Doc/library/argparse.rst:590 +msgid "" +"Note that :class:`ArgumentParser` objects only remove an action if all of " +"its option strings are overridden. So, in the example above, the old ``-f/--" +"foo`` action is retained as the ``-f`` action, because only the ``--foo`` " +"option string was overridden." +msgstr "" +"Prenez note que les objets :class:`ArgumentParser` n'enlèvent une action que " +"si toutes ses chaînes d'options sont surchargées. Ainsi dans l'exemple ci-" +"dessus, l'action ``-f/--foo`` du parent est conservée comme l'action ``-f`` " +"puisque ``--foo`` est la seule chaîne d'options qui a été surchargée." + +#: ../Doc/library/argparse.rst:597 +msgid "add_help" +msgstr "Le paramètre *add_help*" + +#: ../Doc/library/argparse.rst:599 +msgid "" +"By default, ArgumentParser objects add an option which simply displays the " +"parser's help message. For example, consider a file named ``myprogram.py`` " +"containing the following code::" +msgstr "" +"Par défaut, les objets ``ArgumentParser`` ajoutent une option qui offre " +"l'affichage du message d'aide de l'analyseur. Par exemple, prenons le " +"fichier ``myprogram.py`` qui contient le code suivant ::" + +#: ../Doc/library/argparse.rst:608 +msgid "" +"If ``-h`` or ``--help`` is supplied at the command line, the ArgumentParser " +"help will be printed:" +msgstr "" +"Si ``-h`` ou ``--help`` est passé sur la ligne de commande, le message " +"d'aide de l'``ArgumentParser`` sera affiché :" + +#: ../Doc/library/argparse.rst:620 +msgid "" +"Occasionally, it may be useful to disable the addition of this help option. " +"This can be achieved by passing ``False`` as the ``add_help=`` argument to :" +"class:`ArgumentParser`::" +msgstr "" +"Il est parfois utile de désactiver l'ajout de cette option d'aide. Pour ce " +"faire, vous devez passer ``False`` à l'argument ``add_help=`` du " +"constructeur d':class:`ArgumentParser` ::" + +#: ../Doc/library/argparse.rst:632 +msgid "" +"The help option is typically ``-h/--help``. The exception to this is if the " +"``prefix_chars=`` is specified and does not include ``-``, in which case ``-" +"h`` and ``--help`` are not valid options. In this case, the first character " +"in ``prefix_chars`` is used to prefix the help options::" +msgstr "" +"En général, l'option d'aide est ``-h/--help``. L'exception à cette règle est " +"quand une valeur est passée à ``prefix_chars=`` et qu'elle n'inclue pas ``-" +"``, auquel cas, ``-h`` et ``--help`` ne sont pas des options valides. Dans " +"ce cas, le premier caractère de ``prefix_chars`` est utilisé comme préfixe " +"des options d'aide ::" + +#: ../Doc/library/argparse.rst:647 +msgid "The add_argument() method" +msgstr "La méthode *add_argument()*" + +#: ../Doc/library/argparse.rst:653 +msgid "" +"Define how a single command-line argument should be parsed. Each parameter " +"has its own more detailed description below, but in short they are:" +msgstr "" +"Définie comment une option de ligne de commande doit être analysée. Chacun " +"des paramètres est décrit plus en détails ci-bas, mais en résumé ils sont :" + +#: ../Doc/library/argparse.rst:656 +msgid "" +"`name or flags`_ - Either a name or a list of option strings, e.g. ``foo`` " +"or ``-f, --foo``." +msgstr "" +"`name_or_flags`_ – un nom ou une liste de chaînes d'options. Par exemple : " +"``foo`` ou ``-f, --foo``." + +#: ../Doc/library/argparse.rst:659 +msgid "" +"action_ - The basic type of action to be taken when this argument is " +"encountered at the command line." +msgstr "" +"action_ – Type élémentaire de l'action à entreprendre quand cet argument est " +"reconnu sur la ligne de commande." + +#: ../Doc/library/argparse.rst:662 +msgid "nargs_ - The number of command-line arguments that should be consumed." +msgstr "nargs_ – Nombre d'arguments de la ligne de commande à capturer." + +#: ../Doc/library/argparse.rst:664 +msgid "" +"const_ - A constant value required by some action_ and nargs_ selections." +msgstr "" +"const_ – Valeur constante requise par certains choix d'action_ et de nargs_." + +#: ../Doc/library/argparse.rst:666 +msgid "" +"default_ - The value produced if the argument is absent from the command " +"line." +msgstr "" +"default_ – Valeur produite si l'argument est absent de la ligne de commande." + +#: ../Doc/library/argparse.rst:669 +msgid "" +"type_ - The type to which the command-line argument should be converted." +msgstr "" +"type_ – Type vers lequel l'argument sur la ligne de commande doit être " +"converti." + +#: ../Doc/library/argparse.rst:671 +msgid "choices_ - A container of the allowable values for the argument." +msgstr "" +"choices_ – Conteneur qui contient toutes les valeurs permises pour cet " +"argument." + +#: ../Doc/library/argparse.rst:673 +msgid "" +"required_ - Whether or not the command-line option may be omitted (optionals " +"only)." +msgstr "" +"required_ – ``True`` si l'option sur la ligne de commande est obligatoire " +"(ne s'applique qu'aux arguments optionnels)." + +#: ../Doc/library/argparse.rst:676 +msgid "help_ - A brief description of what the argument does." +msgstr "help_ – Brève description de ce que fait l'argument." + +#: ../Doc/library/argparse.rst:678 +msgid "metavar_ - A name for the argument in usage messages." +msgstr "metavar_ – Nom de l'argument dans les messages d'utilisations." + +#: ../Doc/library/argparse.rst:680 +msgid "" +"dest_ - The name of the attribute to be added to the object returned by :" +"meth:`parse_args`." +msgstr "" +"dest_ – Nom de l'attribut qui sera ajouté à l'objet retourné par :meth:" +"`parse_args`." + +#: ../Doc/library/argparse.rst:687 +msgid "name or flags" +msgstr "Les paramètres *name* et *flags*" + +#: ../Doc/library/argparse.rst:689 +msgid "" +"The :meth:`~ArgumentParser.add_argument` method must know whether an " +"optional argument, like ``-f`` or ``--foo``, or a positional argument, like " +"a list of filenames, is expected. The first arguments passed to :meth:" +"`~ArgumentParser.add_argument` must therefore be either a series of flags, " +"or a simple argument name. For example, an optional argument could be " +"created like::" +msgstr "" +"La méthode :meth:`~ArgumentParser.add_argument` doit savoir si c'est un " +"argument optionnel (tel que ``-f`` ou ``--foo``) ou plutôt un argument " +"positionnel (tel qu'une liste de noms de fichiers) qui est attendu. Le " +"premier argument passé à :meth:`~ArgumentParser.add_argument` doit donc être " +"soit une série de noms d'options tels qu'ils apparaissent sur la ligne de " +"commande, soit simplement un nom si on désire un argument positionnel. Par " +"exemple, un argument optionnel est créé comme suit ::" + +#: ../Doc/library/argparse.rst:698 +msgid "while a positional argument could be created like::" +msgstr "alors qu'un argument positionnel est créé comme suit ::" + +#: ../Doc/library/argparse.rst:702 +msgid "" +"When :meth:`~ArgumentParser.parse_args` is called, optional arguments will " +"be identified by the ``-`` prefix, and the remaining arguments will be " +"assumed to be positional::" +msgstr "" +"Lors le l'appel de :meth:`~ArgumentParser.parse_args`, les arguments qui " +"commencent par le préfixe ``-`` sont présumés optionnels et tous les autres " +"sont présumés positionnels ::" + +#: ../Doc/library/argparse.rst:719 +msgid "action" +msgstr "Le paramètre *action*" + +#: ../Doc/library/argparse.rst:721 +msgid "" +":class:`ArgumentParser` objects associate command-line arguments with " +"actions. These actions can do just about anything with the command-line " +"arguments associated with them, though most actions simply add an attribute " +"to the object returned by :meth:`~ArgumentParser.parse_args`. The " +"``action`` keyword argument specifies how the command-line arguments should " +"be handled. The supplied actions are:" +msgstr "" +"Les objets :class:`ArgumentParser` associent les arguments de la ligne de " +"commande avec des actions. Ces actions peuvent soumettre les arguments de la " +"ligne de commande auxquels elles sont associées à un traitement arbitraire, " +"mais la majorité des actions se contentent d'ajouter un attribut à l'objet " +"renvoyé par :meth:`~ArgumentParser.parse_args`. L'argument nommé ``action`` " +"indique comment l'argument de la ligne de commande sera traité. Les actions " +"natives sont :" + +#: ../Doc/library/argparse.rst:727 +msgid "" +"``'store'`` - This just stores the argument's value. This is the default " +"action. For example::" +msgstr "" +"``'store'`` – Stocke la valeur de l'argument sans autre traitement. Ceci est " +"l'action par défaut. Par exemple ::" + +#: ../Doc/library/argparse.rst:735 +msgid "" +"``'store_const'`` - This stores the value specified by the const_ keyword " +"argument. The ``'store_const'`` action is most commonly used with optional " +"arguments that specify some sort of flag. For example::" +msgstr "" +"``'store_const'`` – Stocke la valeur passée à l'argument nommé const_. " +"L'action ``'store_const'`` est typiquement utilisée avec des arguments " +"optionnels qui représentent un drapeau ou une condition similaire. Par " +"exemple ::" + +#: ../Doc/library/argparse.rst:744 +msgid "" +"``'store_true'`` and ``'store_false'`` - These are special cases of " +"``'store_const'`` used for storing the values ``True`` and ``False`` " +"respectively. In addition, they create default values of ``False`` and " +"``True`` respectively. For example::" +msgstr "" +"``'store_true'`` et ``'store_false'`` – Ces actions sont des cas " +"particuliers de ``'store_const'`` pour lesquelles la valeur stockée est " +"``True`` et ``False``, respectivement. Aussi, ces actions ont comme valeur " +"par défaut ``False`` et ``True``, respectivement. Par exemple ::" + +#: ../Doc/library/argparse.rst:756 +msgid "" +"``'append'`` - This stores a list, and appends each argument value to the " +"list. This is useful to allow an option to be specified multiple times. " +"Example usage::" +msgstr "" +"``'append'`` – Stocke une liste et ajoute la valeur de l'argument à la " +"liste. Ceci est pratique pour les options qui peuvent être répétées sur la " +"ligne de commande ::" + +#: ../Doc/library/argparse.rst:765 +msgid "" +"``'append_const'`` - This stores a list, and appends the value specified by " +"the const_ keyword argument to the list. (Note that the const_ keyword " +"argument defaults to ``None``.) The ``'append_const'`` action is typically " +"useful when multiple arguments need to store constants to the same list. For " +"example::" +msgstr "" +"``'append_const'`` – Stocke une liste et ajoute la valeur passée à " +"l'argument nommé const_ à la fin de la liste. Notez que la valeur par défaut " +"de l'argument nommé const_ est ``None``. L'action ``'append_const'`` est " +"pratique quand plusieurs arguments ont besoin de stocker des constantes dans " +"la même liste. Par exemple ::" + +#: ../Doc/library/argparse.rst:777 +msgid "" +"``'count'`` - This counts the number of times a keyword argument occurs. For " +"example, this is useful for increasing verbosity levels::" +msgstr "" +"``'count'`` – Compte le nombre d'occurrences de l'argument nommé. Ceci est " +"pratique, par exemple, pour augmenter le niveau de verbosité ::" + +#: ../Doc/library/argparse.rst:785 +msgid "" +"``'help'`` - This prints a complete help message for all the options in the " +"current parser and then exits. By default a help action is automatically " +"added to the parser. See :class:`ArgumentParser` for details of how the " +"output is created." +msgstr "" +"``'help'`` – Affiche le message d'aide complet pour toutes les options de " +"l'analyseur puis termine l'exécution. Une action ``help`` est " +"automatiquement ajoutée à l'analyseur par défaut. Consultez :class:" +"`ArgumentParser` pour les détails de la création du contenu de l'aide." + +#: ../Doc/library/argparse.rst:790 +msgid "" +"``'version'`` - This expects a ``version=`` keyword argument in the :meth:" +"`~ArgumentParser.add_argument` call, and prints version information and " +"exits when invoked::" +msgstr "" +"``'version'`` – Affiche la version du programme puis termine l'exécution. " +"Cette action requiert l'argument nommé ``version=`` dans l'appel à :meth:" +"`~ArgumentParser.add_argument` ::" + +#: ../Doc/library/argparse.rst:800 +msgid "" +"You may also specify an arbitrary action by passing an Action subclass or " +"other object that implements the same interface. The recommended way to do " +"this is to extend :class:`Action`, overriding the ``__call__`` method and " +"optionally the ``__init__`` method." +msgstr "" + +#: ../Doc/library/argparse.rst:805 +msgid "An example of a custom action::" +msgstr "Un exemple d'action personnalisée ::" + +#: ../Doc/library/argparse.rst:825 +msgid "For more details, see :class:`Action`." +msgstr "Pour plus d'information, voir :class:`Action`." + +#: ../Doc/library/argparse.rst:828 +msgid "nargs" +msgstr "Le paramètre *nargs*" + +#: ../Doc/library/argparse.rst:830 +msgid "" +"ArgumentParser objects usually associate a single command-line argument with " +"a single action to be taken. The ``nargs`` keyword argument associates a " +"different number of command-line arguments with a single action. The " +"supported values are:" +msgstr "" +"En général, les objets ``ArgumentParser`` associent un seul argument de la " +"ligne de commande à une seule action à entreprendre. L'argument nommé " +"``nargs`` associe un nombre différent d'arguments de la ligne de commande à " +"une action. Les valeurs reconnues sont :" + +#: ../Doc/library/argparse.rst:835 +msgid "" +"``N`` (an integer). ``N`` arguments from the command line will be gathered " +"together into a list. For example::" +msgstr "" +"``N`` (un entier). ``N`` arguments de la ligne de commande seront capturés " +"ensemble et stockés dans une liste. Par exemple ::" + +#: ../Doc/library/argparse.rst:844 +msgid "" +"Note that ``nargs=1`` produces a list of one item. This is different from " +"the default, in which the item is produced by itself." +msgstr "" +"Prenez note que ``nargs=1`` produit une liste avec un seul élément. Ceci est " +"différent du comportement par défaut qui produit l'élément directement " +"(comme un scalaire)." + +#: ../Doc/library/argparse.rst:849 +msgid "" +"``'?'``. One argument will be consumed from the command line if possible, " +"and produced as a single item. If no command-line argument is present, the " +"value from default_ will be produced. Note that for optional arguments, " +"there is an additional case - the option string is present but not followed " +"by a command-line argument. In this case the value from const_ will be " +"produced. Some examples to illustrate this::" +msgstr "" +"``'?'``. Un argument sera capturé de la ligne de commande et produit " +"directement. Si aucun argument n'est présent sur la ligne de commande, la " +"valeur de default_ est produite. Prenez note que pour les arguments " +"optionnels, il est aussi possible que la chaîne d'option soit présente mais " +"qu'elle ne soit pas suivie d'un argument. Dans ce cas, la valeur de const_ " +"est produite. Voici quelques exemples pour illustrer ceci ::" + +#: ../Doc/library/argparse.rst:866 +msgid "" +"One of the more common uses of ``nargs='?'`` is to allow optional input and " +"output files::" +msgstr "" +"``nargs='?'`` est fréquemment utilisé pour accepter des fichiers d'entrée et " +"de sortie optionnels ::" + +#: ../Doc/library/argparse.rst:883 +msgid "" +"``'*'``. All command-line arguments present are gathered into a list. Note " +"that it generally doesn't make much sense to have more than one positional " +"argument with ``nargs='*'``, but multiple optional arguments with " +"``nargs='*'`` is possible. For example::" +msgstr "" +"``'*'``. Tous les arguments présents sur la ligne de commande sont capturés " +"dans une liste. Prenez note qu'il n'est pas logique d'avoir plus d'un " +"argument positionnel avec ``nargs='*'``, mais il est par contre possible " +"d'avoir plusieurs arguments optionnels qui spécifient ``nargs='*'``. Par " +"exemple ::" + +#: ../Doc/library/argparse.rst:897 +msgid "" +"``'+'``. Just like ``'*'``, all command-line args present are gathered into " +"a list. Additionally, an error message will be generated if there wasn't at " +"least one command-line argument present. For example::" +msgstr "" +"``'+'``. Comme pour ``'*'``, tous les arguments présents sur la ligne de " +"commande sont capturés dans une liste. De plus, un message d'erreur est " +"produit s'il n'y a pas au moins un argument présent sur la ligne de " +"commande. Par exemple ::" + +#: ../Doc/library/argparse.rst:911 +msgid "" +"``argparse.REMAINDER``. All the remaining command-line arguments are " +"gathered into a list. This is commonly useful for command line utilities " +"that dispatch to other command line utilities::" +msgstr "" + +#: ../Doc/library/argparse.rst:922 +msgid "" +"If the ``nargs`` keyword argument is not provided, the number of arguments " +"consumed is determined by the action_. Generally this means a single " +"command-line argument will be consumed and a single item (not a list) will " +"be produced." +msgstr "" +"Si l'argument nommé ``nargs`` n'est pas fourni, le nombre d'arguments " +"capturés est déterminé par l'action_. En général, c'est un seul argument de " +"la ligne de commande qui est capturé et il est produit directement." + +#: ../Doc/library/argparse.rst:928 +msgid "const" +msgstr "Le paramètre *const*" + +#: ../Doc/library/argparse.rst:930 +msgid "" +"The ``const`` argument of :meth:`~ArgumentParser.add_argument` is used to " +"hold constant values that are not read from the command line but are " +"required for the various :class:`ArgumentParser` actions. The two most " +"common uses of it are:" +msgstr "" +"L'argument ``const`` d':meth:`~ArgumentParser.add_argument` est utilisé pour " +"stocker une constante qui n'est pas lue depuis la ligne de commande mais qui " +"est requise par certaines actions d':class:`ArgumentParser`. Les deux " +"utilisations les plus communes sont :" + +#: ../Doc/library/argparse.rst:934 +msgid "" +"When :meth:`~ArgumentParser.add_argument` is called with " +"``action='store_const'`` or ``action='append_const'``. These actions add " +"the ``const`` value to one of the attributes of the object returned by :meth:" +"`~ArgumentParser.parse_args`. See the action_ description for examples." +msgstr "" +"quand :meth:`~ArgumentParser.add_argument` est appelée avec " +"``action='store_const'`` ou ``action='append_const'``. Ces actions ajoutent " +"la valeur de ``const`` à l'un des attributs de l'objet renvoyé par :meth:" +"`~ArgumentParser.parse_args`. Consultez la description d'action_ pour voir " +"quelques exemples ;" + +#: ../Doc/library/argparse.rst:939 +msgid "" +"When :meth:`~ArgumentParser.add_argument` is called with option strings " +"(like ``-f`` or ``--foo``) and ``nargs='?'``. This creates an optional " +"argument that can be followed by zero or one command-line arguments. When " +"parsing the command line, if the option string is encountered with no " +"command-line argument following it, the value of ``const`` will be assumed " +"instead. See the nargs_ description for examples." +msgstr "" +"quand la méthode :meth:`~ArgumentParser.add_argument` est appelée avec des " +"chaînes d'options (telles que ``-f`` ou ``--foo``) et ``nargs='?'``. Ceci " +"crée un argument optionnel qui peut être suivi de zéro ou un argument de " +"ligne de commande. Quand la ligne de commande est analysée, si la chaîne " +"d'option est trouvée mais qu'elle n'est pas suivie par un argument, la " +"valeur de ``const`` est utilisée. Consultez la description de nargs_ pour " +"voir quelques exemples." + +#: ../Doc/library/argparse.rst:946 +msgid "" +"With the ``'store_const'`` and ``'append_const'`` actions, the ``const`` " +"keyword argument must be given. For other actions, it defaults to ``None``." +msgstr "" +"Pour les actions ``'store_const'`` et ``'append_const'``, l'argument nommé " +"``const`` doit être spécifié. Pour toutes les autres actions, il est " +"optionnel et sa valeur par défaut est ``None``." + +#: ../Doc/library/argparse.rst:951 +msgid "default" +msgstr "Le paramètre *default*" + +#: ../Doc/library/argparse.rst:953 +msgid "" +"All optional arguments and some positional arguments may be omitted at the " +"command line. The ``default`` keyword argument of :meth:`~ArgumentParser." +"add_argument`, whose value defaults to ``None``, specifies what value should " +"be used if the command-line argument is not present. For optional arguments, " +"the ``default`` value is used when the option string was not present at the " +"command line::" +msgstr "" +"Tous les arguments optionnels et certains arguments positionnels peuvent " +"être omis à la ligne de commande. L'argument nommé ``default`` de la " +"méthode :meth:`~ArgumentParser.add_argument` (qui vaut ``None`` par défaut), " +"indique quelle valeur sera utilisé si l'argument est absent de la ligne de " +"commande. Pour les arguments optionnels, la valeur de ``default`` est " +"utilisée si la chaîne d'option n'est pas présente sur la ligne de commande ::" + +#: ../Doc/library/argparse.rst:967 +msgid "" +"If the ``default`` value is a string, the parser parses the value as if it " +"were a command-line argument. In particular, the parser applies any type_ " +"conversion argument, if provided, before setting the attribute on the :class:" +"`Namespace` return value. Otherwise, the parser uses the value as is::" +msgstr "" +"Si la valeur de ``default`` est une chaîne, l'analyseur analyse cette valeur " +"comme si c'était un argument de la ligne de commande. En particulier, " +"l'analyseur applique la conversion spécifiée par l'argument type_ (si elle " +"est fournie) avant d'affecter l'attribut à l'objet :class:`Namespace` " +"renvoyé. Autrement, l'analyseur utilise la valeur telle qu'elle ::" + +#: ../Doc/library/argparse.rst:978 +msgid "" +"For positional arguments with nargs_ equal to ``?`` or ``*``, the " +"``default`` value is used when no command-line argument was present::" +msgstr "" +"Pour les arguments positionnels pour lesquels nargs_ est ``?`` ou ``*``, la " +"valeur de ``default`` est utilisée quand l'argument est absent de la ligne " +"de commande ::" + +#: ../Doc/library/argparse.rst:989 +msgid "" +"Providing ``default=argparse.SUPPRESS`` causes no attribute to be added if " +"the command-line argument was not present::" +msgstr "" +"Si vous passez ``default=argparse.SUPPRESS``, aucun attribut ne sera ajouté " +"à l'objet ``Namespace`` quand l'argument est absent de la ligne de " +"commande ::" + +#: ../Doc/library/argparse.rst:1001 +msgid "type" +msgstr "Le paramètre *type*" + +#: ../Doc/library/argparse.rst:1003 +msgid "" +"By default, :class:`ArgumentParser` objects read command-line arguments in " +"as simple strings. However, quite often the command-line string should " +"instead be interpreted as another type, like a :class:`float` or :class:" +"`int`. The ``type`` keyword argument of :meth:`~ArgumentParser." +"add_argument` allows any necessary type-checking and type conversions to be " +"performed. Common built-in types and functions can be used directly as the " +"value of the ``type`` argument::" +msgstr "" +"Par défaut, les objets :class:`ArgumentParser` capturent les arguments de la " +"ligne de commande comme des chaînes. Très souvent par contre, on désire " +"interpréter les chaînes de la ligne de commande comme un autre type, tel " +"que :class:`float` ou :class:`int`. L'argument nommé ``type`` d':meth:" +"`~ArgumentParser.add_argument` nous permet de faire les vérifications et les " +"conversions de type nécessaires. Les types et les fonctions natives peuvent " +"être utilisés directement pour la valeur de l'argument ``type`` ::" + +#: ../Doc/library/argparse.rst:1016 +msgid "" +"See the section on the default_ keyword argument for information on when the " +"``type`` argument is applied to default arguments." +msgstr "" +"Consultez la rubrique de l'argument nommé default_ pour plus d'information " +"sur quand l'argument ``type`` est appliqué aux arguments par défaut." + +#: ../Doc/library/argparse.rst:1019 +msgid "" +"To ease the use of various types of files, the argparse module provides the " +"factory FileType which takes the ``mode=``, ``bufsize=``, ``encoding=`` and " +"``errors=`` arguments of the :func:`open` function. For example, " +"``FileType('w')`` can be used to create a writable file::" +msgstr "" +"Pour faciliter l'utilisation de types de fichiers variés, le module " +"``argparse`` fournit le type fabrique ``FileType`` qui accepte les arguments " +"``mode=``, ``bufsize=``, ``encoding=`` et ``errors=`` de la fonction :func:" +"`open`. Par exemple, ``FileType('w')`` peut être utilisé pour créer un " +"fichier en mode écriture ::" + +#: ../Doc/library/argparse.rst:1029 +msgid "" +"``type=`` can take any callable that takes a single string argument and " +"returns the converted value::" +msgstr "" +"``type=`` peut prendre n'importe quelle fonction ou objet appelable qui " +"prend une seule chaîne de caractère comme argument et qui renvoie la valeur " +"convertie ::" + +#: ../Doc/library/argparse.rst:1048 +msgid "" +"The choices_ keyword argument may be more convenient for type checkers that " +"simply check against a range of values::" +msgstr "" +"L'argument nommé choices_ est parfois plus facile d'utilisation pour les " +"vérificateurs de type qui comparent la valeur à une gamme prédéfinie ::" + +#: ../Doc/library/argparse.rst:1059 +msgid "See the choices_ section for more details." +msgstr "Voir le chapitre choices_ pour plus de détails." + +#: ../Doc/library/argparse.rst:1063 +msgid "choices" +msgstr "Le paramètre *choices*" + +#: ../Doc/library/argparse.rst:1065 +msgid "" +"Some command-line arguments should be selected from a restricted set of " +"values. These can be handled by passing a container object as the *choices* " +"keyword argument to :meth:`~ArgumentParser.add_argument`. When the command " +"line is parsed, argument values will be checked, and an error message will " +"be displayed if the argument was not one of the acceptable values::" +msgstr "" +"Certains arguments de la ligne de commande doivent être choisis parmi un " +"ensemble fermé de valeurs. Ceux-ci peuvent être gérés en passant un " +"conteneur à l'argument nommé *choices* de la méthode :meth:`~ArgumentParser." +"add_argument`. Quand la ligne de commande est analysée, les valeurs de " +"l'argument sont comparées et un message d'erreur est affiché si l'argument " +"n'est pas parmi les valeurs acceptables ::" + +#: ../Doc/library/argparse.rst:1080 +msgid "" +"Note that inclusion in the *choices* container is checked after any type_ " +"conversions have been performed, so the type of the objects in the *choices* " +"container should match the type_ specified::" +msgstr "" +"Prenez note que le test d'inclusion dans le conteur *choices* est fait après " +"la conversion de type_. Le type des objets dans le conteneur *choices* " +"doivent donc correspondre au type_ spécifié ::" + +#: ../Doc/library/argparse.rst:1092 +msgid "" +"Any object that supports the ``in`` operator can be passed as the *choices* " +"value, so :class:`dict` objects, :class:`set` objects, custom containers, " +"etc. are all supported." +msgstr "" + +#: ../Doc/library/argparse.rst:1098 +msgid "required" +msgstr "Le paramètre *required*" + +#: ../Doc/library/argparse.rst:1100 +msgid "" +"In general, the :mod:`argparse` module assumes that flags like ``-f`` and " +"``--bar`` indicate *optional* arguments, which can always be omitted at the " +"command line. To make an option *required*, ``True`` can be specified for " +"the ``required=`` keyword argument to :meth:`~ArgumentParser.add_argument`::" +msgstr "" +"En général, le module :mod:`argparse` prend pour acquis que les drapeaux " +"comme ``-f`` et ``--bar`` annoncent un argument *optionnel* qui peut " +"toujours être omis de la ligne de commande. Pour rendre une option " +"*obligatoire*, ``True`` peut être passé à l'argument nommé ``required=`` d':" +"meth:`~ArgumentParser.add_argument` ::" + +#: ../Doc/library/argparse.rst:1113 +msgid "" +"As the example shows, if an option is marked as ``required``, :meth:" +"`~ArgumentParser.parse_args` will report an error if that option is not " +"present at the command line." +msgstr "" +"Tel qu'illustré' dans l'exemple, quand l'option est marquée comme " +"``required``, :meth:`~ArgumentParser.parse_args` mentionne une erreur si " +"l'option est absente de la ligne de commande." + +#: ../Doc/library/argparse.rst:1119 +msgid "" +"Required options are generally considered bad form because users expect " +"*options* to be *optional*, and thus they should be avoided when possible." +msgstr "" +"En général, les options obligatoires manifestent un style boiteux, car les " +"utilisateurs s'attendent que les *options* soient *optionnelles*. Elles " +"devraient donc être évitées si possible." + +#: ../Doc/library/argparse.rst:1124 +msgid "help" +msgstr "Le paramètre *help*" + +#: ../Doc/library/argparse.rst:1126 +msgid "" +"The ``help`` value is a string containing a brief description of the " +"argument. When a user requests help (usually by using ``-h`` or ``--help`` " +"at the command line), these ``help`` descriptions will be displayed with " +"each argument::" +msgstr "" +"La valeur de ``help`` est une chaîne qui contient une brève description de " +"l'argument. Quand un utilisateur demande de l'aide (en général par " +"l'utilisation de ``-h`` ou ``--help`` sur la ligne de commande), ces " +"descriptions d'aide seront affichées pour chacun des arguments ::" + +#: ../Doc/library/argparse.rst:1146 +msgid "" +"The ``help`` strings can include various format specifiers to avoid " +"repetition of things like the program name or the argument default_. The " +"available specifiers include the program name, ``%(prog)s`` and most keyword " +"arguments to :meth:`~ArgumentParser.add_argument`, e.g. ``%(default)s``, ``" +"%(type)s``, etc.::" +msgstr "" +"La chaîne ``help`` peut contenir des spécificateurs de formatage afin " +"d'éviter la répétition de contenu tel que le nom du programme et la valeur " +"par défaut de l'argument (voir default_). Les spécificateurs de formatage " +"disponibles incluent entre autres le nom du programme, ``%(prog)s``, et la " +"plupart des arguments nommés d':meth:`~ArgumentParser.add_argument`, tels " +"que ``%(default)s``, ``%(type)s``, etc. ::" + +#: ../Doc/library/argparse.rst:1163 +msgid "" +"As the help string supports %-formatting, if you want a literal ``%`` to " +"appear in the help string, you must escape it as ``%%``." +msgstr "" +"Comme la chaîne d'aide utilise le caractère ``%`` pour le formatage, si vous " +"désirez afficher un ``%`` littéral dans la chaîne d'aide, vous devez en " +"faire l’échappement avec ``%%``." + +#: ../Doc/library/argparse.rst:1166 +msgid "" +":mod:`argparse` supports silencing the help entry for certain options, by " +"setting the ``help`` value to ``argparse.SUPPRESS``::" +msgstr "" +":mod:`argparse` peut supprimer la rubrique d'aide de certaines options. Pour " +"ce faire, passez ``argparse.SUPPRESS`` à ``help`` ::" + +#: ../Doc/library/argparse.rst:1179 +msgid "metavar" +msgstr "Le paramètre *metavar*" + +#: ../Doc/library/argparse.rst:1181 +msgid "" +"When :class:`ArgumentParser` generates help messages, it needs some way to " +"refer to each expected argument. By default, ArgumentParser objects use the " +"dest_ value as the \"name\" of each object. By default, for positional " +"argument actions, the dest_ value is used directly, and for optional " +"argument actions, the dest_ value is uppercased. So, a single positional " +"argument with ``dest='bar'`` will be referred to as ``bar``. A single " +"optional argument ``--foo`` that should be followed by a single command-line " +"argument will be referred to as ``FOO``. An example::" +msgstr "" +"Quand un objet :class:`ArgumentParser` construit le message d'aide, il doit " +"pouvoir faire référence à chacun des arguments attendus. Par défaut, les " +"objets ``ArgumentParser`` utilisent la valeur de dest_ pour le nom de chaque " +"objet. Par défaut, la valeur de dest_ est utilisée telle quelle pour les " +"actions d'arguments positionnels et elle (dest_) est convertie en majuscules " +"pour les actions d'arguments optionnels. Ainsi, un argument positionnel " +"unique avec ``dest='bar'`` sera affiché comme ``bar`` et un argument " +"positionnel unique ``--foo`` qui prend un seul argument sur la ligne de " +"commande sera affiché comme ``FOO``. Par exemple ::" + +#: ../Doc/library/argparse.rst:1205 +msgid "An alternative name can be specified with ``metavar``::" +msgstr "Un nom alternatif peut être fourni à ``metavar`` ::" + +#: ../Doc/library/argparse.rst:1222 +msgid "" +"Note that ``metavar`` only changes the *displayed* name - the name of the " +"attribute on the :meth:`~ArgumentParser.parse_args` object is still " +"determined by the dest_ value." +msgstr "" +"Prenez note que ``metavar`` ne change que le nom *affiché*. Le nom de " +"l'attribut ajouté à l'objet renvoyé par :meth:`~ArgumentParser.parse_args` " +"est toujours déterminé par la valeur de dest_." + +#: ../Doc/library/argparse.rst:1226 +msgid "" +"Different values of ``nargs`` may cause the metavar to be used multiple " +"times. Providing a tuple to ``metavar`` specifies a different display for " +"each of the arguments::" +msgstr "" +"Certaines valeurs de ``nargs`` peuvent provoquer l'affichage de ``metavar`` " +"plus d'une fois. Passer un n-uplet à ``metavar`` indique les différents noms " +"à afficher pour chacun des arguments ::" + +#: ../Doc/library/argparse.rst:1243 +msgid "dest" +msgstr "Le paramètre *dest*" + +#: ../Doc/library/argparse.rst:1245 +msgid "" +"Most :class:`ArgumentParser` actions add some value as an attribute of the " +"object returned by :meth:`~ArgumentParser.parse_args`. The name of this " +"attribute is determined by the ``dest`` keyword argument of :meth:" +"`~ArgumentParser.add_argument`. For positional argument actions, ``dest`` " +"is normally supplied as the first argument to :meth:`~ArgumentParser." +"add_argument`::" +msgstr "" +"La plupart des actions d':class:`ArgumentParser` ajoutent une valeur dans un " +"attribut de l'objet renvoyé par :meth:`~ArgumentParser.parse_args`. Le nom " +"de l'attribut est déterminé par l'argument nommé ``dest`` d':meth:" +"`~ArgumentParser.add_argument`. Pour les arguments positionnels, ``dest`` " +"est généralement le premier argument d':meth:`~ArgumentParser." +"add_argument` ::" + +#: ../Doc/library/argparse.rst:1257 +msgid "" +"For optional argument actions, the value of ``dest`` is normally inferred " +"from the option strings. :class:`ArgumentParser` generates the value of " +"``dest`` by taking the first long option string and stripping away the " +"initial ``--`` string. If no long option strings were supplied, ``dest`` " +"will be derived from the first short option string by stripping the initial " +"``-`` character. Any internal ``-`` characters will be converted to ``_`` " +"characters to make sure the string is a valid attribute name. The examples " +"below illustrate this behavior::" +msgstr "" +"Pour les actions d'arguments optionnels, la valeur de ``dest`` est " +"généralement inférée à partir des chaînes d'option. :class:`ArgumentParser` " +"génère la valeur de ``dest`` en prenant la première chaîne d'option longue " +"et en retirant le préfixe ``--``. Si une chaîne d'option longue n'est pas " +"fournie, ``dest`` sera dérivée de la première chaîne d'option courte sans le " +"préfixe ``-``. Tous les ``-`` subséquents seront convertis en ``_`` pour " +"s'assurer que le chaîne est un nom d'attribut valide. Les exemples suivants " +"illustrent ce comportement ::" + +#: ../Doc/library/argparse.rst:1274 +msgid "``dest`` allows a custom attribute name to be provided::" +msgstr "``dest`` vous permet de fournir un nom d'attribut personnalisé ::" + +#: ../Doc/library/argparse.rst:1282 +msgid "Action classes" +msgstr "Classes Action" + +#: ../Doc/library/argparse.rst:1284 +msgid "" +"Action classes implement the Action API, a callable which returns a callable " +"which processes arguments from the command-line. Any object which follows " +"this API may be passed as the ``action`` parameter to :meth:`add_argument`." +msgstr "" +"Les classes ``Action`` implémentent l'API Action, un appelable qui retourne " +"un appelable qui traite les arguments de la ligne de commande. Tout objet " +"qui suit cette API peut être passé comme paramètre ``action`` d':meth:" +"`add_argument`." + +#: ../Doc/library/argparse.rst:1293 +msgid "" +"Action objects are used by an ArgumentParser to represent the information " +"needed to parse a single argument from one or more strings from the command " +"line. The Action class must accept the two positional arguments plus any " +"keyword arguments passed to :meth:`ArgumentParser.add_argument` except for " +"the ``action`` itself." +msgstr "" +"Les objets ``Action`` sont utilisés par un ``ArgumentParser`` pour " +"représenter l'information nécessaire à l'analyse d'un seul argument à partir " +"d'une ou plusieurs chaînes de la ligne de commande. La classe ``Action`` " +"doit accepter les deux arguments positionnels d':meth:`ArgumentParser." +"add_argument` ainsi que tous ses arguments nommés, sauf ``action``." + +#: ../Doc/library/argparse.rst:1299 +msgid "" +"Instances of Action (or return value of any callable to the ``action`` " +"parameter) should have attributes \"dest\", \"option_strings\", \"default\", " +"\"type\", \"required\", \"help\", etc. defined. The easiest way to ensure " +"these attributes are defined is to call ``Action.__init__``." +msgstr "" +"Les instances d'``Action`` (ou la valeur de retour de l'appelable passé au " +"paramètre ``action``) doivent définir les attributs nécessaires : *dest*, " +"*option_strings*, *default*, *type*, *required*, *help*, etc. La façon la " +"plus simple de s'assurer que ces attributs sont définis est d'appeler " +"``Action.__init__``." + +#: ../Doc/library/argparse.rst:1304 +msgid "" +"Action instances should be callable, so subclasses must override the " +"``__call__`` method, which should accept four parameters:" +msgstr "" +"Les instances d'``Action`` doivent être appelables et donc les sous-classes " +"doivent surcharger la méthode ``__call__``. Cette méthode doit accepter " +"quatre paramètres :" + +#: ../Doc/library/argparse.rst:1307 +msgid "``parser`` - The ArgumentParser object which contains this action." +msgstr "``parser`` – L'objet ``ArgumentParser`` qui contient cette action." + +#: ../Doc/library/argparse.rst:1309 +msgid "" +"``namespace`` - The :class:`Namespace` object that will be returned by :meth:" +"`~ArgumentParser.parse_args`. Most actions add an attribute to this object " +"using :func:`setattr`." +msgstr "" +"``namespace`` – L'objet :class:`Namespace` qui sera renvoyé par :meth:" +"`~ArgumentParser.parse_args`. La majorité des actions ajoutent un attribut à " +"cet objet avec :func:`setattr`." + +#: ../Doc/library/argparse.rst:1313 +msgid "" +"``values`` - The associated command-line arguments, with any type " +"conversions applied. Type conversions are specified with the type_ keyword " +"argument to :meth:`~ArgumentParser.add_argument`." +msgstr "" +"``values`` – Les arguments de la ligne de commande associés à l'action après " +"les avoir soumis à la conversion de type. Les conversions de types sont " +"spécifiées grâce à l’argument nommé type_ d':meth:`~ArgumentParser." +"add_argument`." + +#: ../Doc/library/argparse.rst:1317 +msgid "" +"``option_string`` - The option string that was used to invoke this action. " +"The ``option_string`` argument is optional, and will be absent if the action " +"is associated with a positional argument." +msgstr "" +"``option_string`` – La chaîne d'option utilisée pour invoquer cette action. " +"L'argument ``option_string`` est optionnel et est absent si l'action est " +"associée à un argument positionnel." + +#: ../Doc/library/argparse.rst:1321 +msgid "" +"The ``__call__`` method may perform arbitrary actions, but will typically " +"set attributes on the ``namespace`` based on ``dest`` and ``values``." +msgstr "" +"La méthode ``__call__`` peut réaliser un traitement arbitraire, mais en " +"général elle affect des attributs sur ``namespace`` en fonction de ``dest`` " +"et de ``values``." + +#: ../Doc/library/argparse.rst:1326 +msgid "The parse_args() method" +msgstr "La méthode *parse_args()*" + +#: ../Doc/library/argparse.rst:1330 +msgid "" +"Convert argument strings to objects and assign them as attributes of the " +"namespace. Return the populated namespace." +msgstr "" +"Convertie les chaînes d'arguments en objets et les assigne comme attributs " +"de l'objet ``namespace``. Retourne l'objet ``namespace`` rempli." + +#: ../Doc/library/argparse.rst:1333 +msgid "" +"Previous calls to :meth:`add_argument` determine exactly what objects are " +"created and how they are assigned. See the documentation for :meth:" +"`add_argument` for details." +msgstr "" +"Les appels à :meth:`add_argument` qui ont été faits déterminent exactement " +"quels objets sont créés et comment ils sont affectés. Consultez la rubrique " +"d':meth:`add_argument` pour les détails." + +#: ../Doc/library/argparse.rst:1337 +msgid "" +"args_ - List of strings to parse. The default is taken from :data:`sys." +"argv`." +msgstr "" +"args_ – Liste de chaînes à analyser. La valeur par défaut est récupérée " +"dans : :data:`sys.argv`." + +#: ../Doc/library/argparse.rst:1340 +msgid "" +"namespace_ - An object to take the attributes. The default is a new empty :" +"class:`Namespace` object." +msgstr "" +"namespace_ – Un objet pour recevoir les attributs. Par défaut : une nouvelle " +"instance (vide) de :class:`Namespace`." + +#: ../Doc/library/argparse.rst:1345 +msgid "Option value syntax" +msgstr "Syntaxe de la valeur des options" + +#: ../Doc/library/argparse.rst:1347 +msgid "" +"The :meth:`~ArgumentParser.parse_args` method supports several ways of " +"specifying the value of an option (if it takes one). In the simplest case, " +"the option and its value are passed as two separate arguments::" +msgstr "" +"La méthode :meth:`~ArgumentParser.parse_args` offre plusieurs façons " +"d'indiquer la valeur d'une option si elle en prend une. Dans le cas le plus " +"simple, l'option et sa valeur sont passées en tant que deux arguments " +"distincts ::" + +#: ../Doc/library/argparse.rst:1359 +msgid "" +"For long options (options with names longer than a single character), the " +"option and value can also be passed as a single command-line argument, using " +"``=`` to separate them::" +msgstr "" +"Pour les options longues (les options qui ont un nom plus long qu'un seul " +"caractère), l'option et sa valeur peuvent être passées comme un seul " +"argument de la ligne de commande en utilisant ``=`` comme séparateur ::" + +#: ../Doc/library/argparse.rst:1366 +msgid "" +"For short options (options only one character long), the option and its " +"value can be concatenated::" +msgstr "" +"Pour les options courtes (les options qui utilisent un seul caractère), " +"l'option et sa valeur peuvent être concaténées ::" + +#: ../Doc/library/argparse.rst:1372 +msgid "" +"Several short options can be joined together, using only a single ``-`` " +"prefix, as long as only the last option (or none of them) requires a value::" +msgstr "" +"Plusieurs options courtes peuvent être groupées ensemble après un seul " +"préfixe ``-`` pour autant que seule la dernière (ou aucune) nécessite une " +"valeur ::" + +#: ../Doc/library/argparse.rst:1384 +msgid "Invalid arguments" +msgstr "Arguments invalides" + +#: ../Doc/library/argparse.rst:1386 +msgid "" +"While parsing the command line, :meth:`~ArgumentParser.parse_args` checks " +"for a variety of errors, including ambiguous options, invalid types, invalid " +"options, wrong number of positional arguments, etc. When it encounters such " +"an error, it exits and prints the error along with a usage message::" +msgstr "" +"Quand elle fait l'analyse de la ligne de commande, la méthode :meth:" +"`~ArgumentParser.parse_args` vérifie plusieurs erreurs possibles : entre " +"autres, options ambigües, types invalides, options invalides, nombre " +"incorrect d'arguments positionnels, etc. Quand une erreur est rencontrée, " +"elle affiche l'erreur accompagnée du message d'aide puis termine " +"l'exécution ::" + +#: ../Doc/library/argparse.rst:1412 +msgid "Arguments containing ``-``" +msgstr "Arguments contenant ``-``" + +#: ../Doc/library/argparse.rst:1414 +msgid "" +"The :meth:`~ArgumentParser.parse_args` method attempts to give errors " +"whenever the user has clearly made a mistake, but some situations are " +"inherently ambiguous. For example, the command-line argument ``-1`` could " +"either be an attempt to specify an option or an attempt to provide a " +"positional argument. The :meth:`~ArgumentParser.parse_args` method is " +"cautious here: positional arguments may only begin with ``-`` if they look " +"like negative numbers and there are no options in the parser that look like " +"negative numbers::" +msgstr "" +"La méthode :meth:`~ArgumentParser.parse_args` tente de signaler une erreur " +"quand l'utilisateur s'est clairement trompé. Par contre, certaines " +"situations sont intrinsèquement ambigües. Par exemple, l'argument de la " +"ligne de commande ``-1`` peut aussi bien être une tentative de spécifier une " +"option qu'une tentative de passer un argument positionnel. La méthode :meth:" +"`~ArgumentParser.parse_args` est prudente : les arguments positionnels ne " +"peuvent commencer par ``-`` que s'ils ont l'apparence d'un nombre négatif et " +"que l'analyseur ne contient aucune option qui a l'apparence d'un nombre " +"négatif ::" + +#: ../Doc/library/argparse.rst:1452 +msgid "" +"If you have positional arguments that must begin with ``-`` and don't look " +"like negative numbers, you can insert the pseudo-argument ``'--'`` which " +"tells :meth:`~ArgumentParser.parse_args` that everything after that is a " +"positional argument::" +msgstr "" +"Si l'utilisateur a des arguments positionnels qui commencent par ``-`` et " +"qui n'ont pas l'apparence d'un nombre négatif, il peut insérer le pseudo-" +"argument ``'--'`` qui indique à :meth:`~ArgumentParser.parse_args` de " +"traiter tout ce qui suit comme un argument positionnel ::" + +#: ../Doc/library/argparse.rst:1463 +msgid "Argument abbreviations (prefix matching)" +msgstr "Arguments abrégés (Par comparaison de leurs préfixes)" + +#: ../Doc/library/argparse.rst:1465 +msgid "" +"The :meth:`~ArgumentParser.parse_args` method :ref:`by default " +"` allows long options to be abbreviated to a prefix, if the " +"abbreviation is unambiguous (the prefix matches a unique option)::" +msgstr "" +"Par défaut, la méthode :meth:`~ArgumentParser.parse_args` accepte que les " +"options longues soient :ref:`abrégées ` par un préfixe pour " +"autant que l’abréviation soit non-ambigüe, c'est-à-dire qu'elle ne " +"corresponde qu'à une seule option ::" + +#: ../Doc/library/argparse.rst:1480 +msgid "" +"An error is produced for arguments that could produce more than one options. " +"This feature can be disabled by setting :ref:`allow_abbrev` to ``False``." +msgstr "" +"Une erreur est générée pour les arguments qui peuvent produire plus d'une " +"option. Ce comportement peut être désactivé en passant ``False`` à :ref:" +"`allow_abbrev`." + +#: ../Doc/library/argparse.rst:1486 +msgid "Beyond ``sys.argv``" +msgstr "Au-delà de ``sys.argv``" + +#: ../Doc/library/argparse.rst:1488 +msgid "" +"Sometimes it may be useful to have an ArgumentParser parse arguments other " +"than those of :data:`sys.argv`. This can be accomplished by passing a list " +"of strings to :meth:`~ArgumentParser.parse_args`. This is useful for " +"testing at the interactive prompt::" +msgstr "" +"Il est parfois désirable de demander à un objet ``ArgumentParser`` de faire " +"l'analyse d'arguments autres que ceux de :data:`sys.argv`. On peut faire ce " +"traitement en passant une liste de chaînes à :meth:`~ArgumentParser." +"parse_args`. Cette approche est pratique pour faire des tests depuis " +"l'invite de commande ::" + +#: ../Doc/library/argparse.rst:1508 +msgid "The Namespace object" +msgstr "L'objet namespace" + +#: ../Doc/library/argparse.rst:1512 +msgid "" +"Simple class used by default by :meth:`~ArgumentParser.parse_args` to create " +"an object holding attributes and return it." +msgstr "" +"Classe rudimentaire qui est utilisé par défaut par :meth:`~ArgumentParser." +"parse_args` pour créer un objet qui stock les attributs. Cet objet est " +"renvoyé par ``ArgumentParser.parse_args``." + +#: ../Doc/library/argparse.rst:1515 +msgid "" +"This class is deliberately simple, just an :class:`object` subclass with a " +"readable string representation. If you prefer to have dict-like view of the " +"attributes, you can use the standard Python idiom, :func:`vars`::" +msgstr "" +"Cette classe est délibérément rudimentaire : une sous-classe d':class:" +"`object` avec une représentation textuelle intelligible. Si vous préférez " +"une vue *dict-compatible*, vous devez utiliser :func:`vars` (un idiome " +"Python classique) ::" + +#: ../Doc/library/argparse.rst:1525 +msgid "" +"It may also be useful to have an :class:`ArgumentParser` assign attributes " +"to an already existing object, rather than a new :class:`Namespace` object. " +"This can be achieved by specifying the ``namespace=`` keyword argument::" +msgstr "" +"Il est parfois utile de demander à :class:`ArgumentParser` de faire " +"l'affectation des attributs sur un objet existant plutôt que de faire la " +"création d'un nouvel objet :class:`Namespace`. Ceci peut être réalisé avec " +"l'argument nommé ``namespace=`` ::" + +#: ../Doc/library/argparse.rst:1541 +msgid "Other utilities" +msgstr "Autres outils" + +#: ../Doc/library/argparse.rst:1544 +msgid "Sub-commands" +msgstr "Sous commandes" + +#: ../Doc/library/argparse.rst:1551 +msgid "" +"Many programs split up their functionality into a number of sub-commands, " +"for example, the ``svn`` program can invoke sub-commands like ``svn " +"checkout``, ``svn update``, and ``svn commit``. Splitting up functionality " +"this way can be a particularly good idea when a program performs several " +"different functions which require different kinds of command-line " +"arguments. :class:`ArgumentParser` supports the creation of such sub-" +"commands with the :meth:`add_subparsers` method. The :meth:`add_subparsers` " +"method is normally called with no arguments and returns a special action " +"object. This object has a single method, :meth:`~ArgumentParser." +"add_parser`, which takes a command name and any :class:`ArgumentParser` " +"constructor arguments, and returns an :class:`ArgumentParser` object that " +"can be modified as usual." +msgstr "" +"Certains programmes divisent leurs fonctionnalités entre un nombre de sous-" +"commandes. Par exemple : le programme ``svn`` peut être invoqué comme ``svn " +"checkout``, ``svn update`` et ``svn commit``. Séparer les fonctionnalités de " +"cette façon est judicieux quand le programme effectue plusieurs fonctions " +"différentes qui requièrent différents types de lignes de commandes. :class:" +"`ArgumentParser` prend en charge la création de ce genre de sous-commandes " +"grâce à la méthode :meth:`add_subparsers`. La méthode :meth:`add_subparsers` " +"est généralement appelée sans argument et elle renvoie un objet ``Action`` " +"spécial. Cet objet possède une seule méthode, :meth:`~ArgumentParser." +"add_parser`, qui prend le nom d'une commande et n'importe quels arguments du " +"constructeur d':class:`ArgumentParser` ; elle renvoie un objet :class:" +"`ArgumentParser` qui peut être modifié normalement." + +#: ../Doc/library/argparse.rst:1563 +msgid "Description of parameters:" +msgstr "Description des paramètres" + +#: ../Doc/library/argparse.rst:1565 +msgid "" +"title - title for the sub-parser group in help output; by default " +"\"subcommands\" if description is provided, otherwise uses title for " +"positional arguments" +msgstr "" +"``title`` – titre du groupe de ce sous-analyseur dans la sortie d'aide ; par " +"défaut : ``\"subcommands\"`` si ``description`` est fournie, sinon utilise " +"la valeur de ``title`` de la section sur les arguments positionnels ;" + +#: ../Doc/library/argparse.rst:1569 +msgid "" +"description - description for the sub-parser group in help output, by " +"default ``None``" +msgstr "" +"``description`` – description du groupe de ce sous-analyseur dans la sortie " +"d'aide ; par défaut : ``None`` ;" + +#: ../Doc/library/argparse.rst:1572 +msgid "" +"prog - usage information that will be displayed with sub-command help, by " +"default the name of the program and any positional arguments before the " +"subparser argument" +msgstr "" +"``prog`` – nom du programme dans le message d'utilisation de l'aide des sous-" +"commandes ; par défaut : le nom du programme et les arguments positionnels " +"qui arrivent avant l'argument de ce sous-analyseur ;" + +#: ../Doc/library/argparse.rst:1576 +msgid "" +"parser_class - class which will be used to create sub-parser instances, by " +"default the class of the current parser (e.g. ArgumentParser)" +msgstr "" +"``parser_class`` – classe utilisée pour créer les instances de sous-" +"analyseurs ; par défaut : la classe de l'analyseur courant (par exemple " +"``ArgumentParser``) ;" + +#: ../Doc/library/argparse.rst:1579 +msgid "" +"action_ - the basic type of action to be taken when this argument is " +"encountered at the command line" +msgstr "" +"action_ – action à entreprendre quand cet argument est reconnu sur la ligne " +"de commande ;" + +#: ../Doc/library/argparse.rst:1582 +msgid "" +"dest_ - name of the attribute under which sub-command name will be stored; " +"by default ``None`` and no value is stored" +msgstr "" +"dest_ – nom de l'attribut sous lequel la sous-commande est stockée ; par " +"défaut : ``None`` et aucune valeur n'est stockée ;" + +#: ../Doc/library/argparse.rst:1585 +msgid "" +"required_ - Whether or not a subcommand must be provided, by default " +"``False``." +msgstr "" + +#: ../Doc/library/argparse.rst:1588 +msgid "help_ - help for sub-parser group in help output, by default ``None``" +msgstr "" +"help_ – message d'aide pour le groupe du sous-analyseur dans la sortie " +"d'aide ; par défaut : ``None`` ;" + +#: ../Doc/library/argparse.rst:1590 +msgid "" +"metavar_ - string presenting available sub-commands in help; by default it " +"is ``None`` and presents sub-commands in form {cmd1, cmd2, ..}" +msgstr "" +"metavar_ – chaîne qui représente les sous-commandes disponibles dans les " +"messages d'aide ; par défaut : ``None``, ce qui entraine la génération d'une " +"chaîne suivant le format ``'{cmd1, cmd2, …}'``." + +#: ../Doc/library/argparse.rst:1593 +msgid "Some example usage::" +msgstr "Quelques exemples d'utilisation ::" + +#: ../Doc/library/argparse.rst:1614 +msgid "" +"Note that the object returned by :meth:`parse_args` will only contain " +"attributes for the main parser and the subparser that was selected by the " +"command line (and not any other subparsers). So in the example above, when " +"the ``a`` command is specified, only the ``foo`` and ``bar`` attributes are " +"present, and when the ``b`` command is specified, only the ``foo`` and " +"``baz`` attributes are present." +msgstr "" +"Prenez note que l'objet renvoyé par :meth:`parse_args` ne contient que les " +"attributs reconnus par l'analyseur principal et le sous-analyseur " +"sélectionné par la ligne de commande. Les autres sous-analyseurs n'ont pas " +"d'influence sur l'objet renvoyé. Ainsi dans l'exemple précédent, quand la " +"commande ``a`` est spécifiée, seuls les attributs ``foo`` et ``bar`` sont " +"présents ; quand la commande ``b`` est spécifiée, seuls les attributs " +"``foo`` et ``baz`` sont présents." + +#: ../Doc/library/argparse.rst:1621 +msgid "" +"Similarly, when a help message is requested from a subparser, only the help " +"for that particular parser will be printed. The help message will not " +"include parent parser or sibling parser messages. (A help message for each " +"subparser command, however, can be given by supplying the ``help=`` argument " +"to :meth:`add_parser` as above.)" +msgstr "" +"De même, quand le message d'aide est demandé depuis l'un des sous-" +"analyseurs, seul le message d'aide de cet analyseur est affiché. Le message " +"d'aide n'inclut pas le message de l'analyseur parent ni celui des sous-" +"analyseurs au même niveau. Il est toutefois possible de fournir un message " +"d'aide pour chacun des sous-analyseurs grâce à l'argument ``help=`` d':meth:" +"`add_parser` tel qu'illustré ci-dessus." + +#: ../Doc/library/argparse.rst:1657 +msgid "" +"The :meth:`add_subparsers` method also supports ``title`` and " +"``description`` keyword arguments. When either is present, the subparser's " +"commands will appear in their own group in the help output. For example::" +msgstr "" +"La méthode :meth:`add_subparsers` accepte les arguments nommés ``title`` et " +"``description``. Quand au moins l'un des deux est présent, les commandes du " +"sous-analyseur sont affichées dans leur propre groupe dans la sortie d'aide. " +"Par exemple ::" + +#: ../Doc/library/argparse.rst:1678 +msgid "" +"Furthermore, ``add_parser`` supports an additional ``aliases`` argument, " +"which allows multiple strings to refer to the same subparser. This example, " +"like ``svn``, aliases ``co`` as a shorthand for ``checkout``::" +msgstr "" +"De plus, ``add_parser`` accepte l'argument additionnel ``aliases`` qui " +"permet à plusieurs chaînes de faire référence au même sous-analyseur. " +"L'exemple suivant, à la manière de ``svn``, utilise ``co`` comme une " +"abréviation de ``checkout`` ::" + +#: ../Doc/library/argparse.rst:1689 +msgid "" +"One particularly effective way of handling sub-commands is to combine the " +"use of the :meth:`add_subparsers` method with calls to :meth:`set_defaults` " +"so that each subparser knows which Python function it should execute. For " +"example::" +msgstr "" +"Une façon efficace de traiter les sous-commandes est de combiner " +"l'utilisation de la méthode :meth:`add_subparsers` avec des appels à :meth:" +"`set_defaults` pour que chaque sous-analyseur sache quelle fonction Python " +"doit être exécutée. Par exemple ::" + +#: ../Doc/library/argparse.rst:1726 +msgid "" +"This way, you can let :meth:`parse_args` do the job of calling the " +"appropriate function after argument parsing is complete. Associating " +"functions with actions like this is typically the easiest way to handle the " +"different actions for each of your subparsers. However, if it is necessary " +"to check the name of the subparser that was invoked, the ``dest`` keyword " +"argument to the :meth:`add_subparsers` call will work::" +msgstr "" +"Ainsi, vous pouvez laisser à :meth:`parse_args` la responsabilité de faire " +"l'appel à la bonne fonction après avoir analysé les arguments. Associer " +"fonctions et actions est en général la façon la plus facile de gérer des " +"actions différentes pour chacun de vos sous-analyseurs. Par contre, si vous " +"avez besoin de consulter le nom de du sous-analyseur qui a été invoqué, vous " +"pouvez utiliser l'argument nommé ``dest`` d':meth:`add_subparsers` ::" + +#: ../Doc/library/argparse.rst:1744 +msgid "FileType objects" +msgstr "Objets ``FileType``" + +#: ../Doc/library/argparse.rst:1748 +msgid "" +"The :class:`FileType` factory creates objects that can be passed to the type " +"argument of :meth:`ArgumentParser.add_argument`. Arguments that have :class:" +"`FileType` objects as their type will open command-line arguments as files " +"with the requested modes, buffer sizes, encodings and error handling (see " +"the :func:`open` function for more details)::" +msgstr "" +"Le type fabrique :class:`FileType` crée des objets qui peuvent être passés à " +"l'argument ``type`` d':meth:`ArgumentParser.add_argument`. Les arguments qui " +"ont comme ``type`` un objet :class:`FileType` ouvrent les arguments de la " +"ligne de commande en tant que fichiers avec les options spécifiées : mode, " +"taille du tampon, encodage et gestion des erreurs (voir la fonction :func:" +"`open` pour plus de détails) ::" + +#: ../Doc/library/argparse.rst:1760 +msgid "" +"FileType objects understand the pseudo-argument ``'-'`` and automatically " +"convert this into ``sys.stdin`` for readable :class:`FileType` objects and " +"``sys.stdout`` for writable :class:`FileType` objects::" +msgstr "" +"Les objets ``FileType`` reconnaissent le pseudo-argument ``'-'`` et en font " +"automatiquement la conversion vers ``sys.stdin`` pour les objets :class:" +"`FileType` ouverts en lecture et vers ``sys.stdout`` pour les objets :class:" +"`FileType` ouverts en écriture ::" + +#: ../Doc/library/argparse.rst:1769 +msgid "The *encodings* and *errors* keyword arguments." +msgstr "Les arguments nommés ``encodings`` et ``errors``." + +#: ../Doc/library/argparse.rst:1774 +msgid "Argument groups" +msgstr "Groupes d'arguments" + +#: ../Doc/library/argparse.rst:1778 +msgid "" +"By default, :class:`ArgumentParser` groups command-line arguments into " +"\"positional arguments\" and \"optional arguments\" when displaying help " +"messages. When there is a better conceptual grouping of arguments than this " +"default one, appropriate groups can be created using the :meth:" +"`add_argument_group` method::" +msgstr "" +"Par défaut, :class:`ArgumentParser` sépare les arguments de la ligne de " +"commande entre les groupes « arguments positionnels » et « arguments " +"optionnels » au moment d'afficher les messages d'aide. S'il existe un " +"meilleur regroupement conceptuel des arguments, les groupes adéquats peuvent " +"être créés avec la méthode :meth:`add_argument_group` ::" + +#: ../Doc/library/argparse.rst:1795 +msgid "" +"The :meth:`add_argument_group` method returns an argument group object which " +"has an :meth:`~ArgumentParser.add_argument` method just like a regular :" +"class:`ArgumentParser`. When an argument is added to the group, the parser " +"treats it just like a normal argument, but displays the argument in a " +"separate group for help messages. The :meth:`add_argument_group` method " +"accepts *title* and *description* arguments which can be used to customize " +"this display::" +msgstr "" +"La méthode :meth:`add_argument_group` renvoie un objet représentant le " +"groupe d'arguments. Cet objet possède une méthode :meth:`~ArgumentParser." +"add_argument` semblable à celle d':class:`ArgumentParser`. Quand un argument " +"est ajouté au groupe, l'analyseur le traite comme un argument normal, mais " +"il affiche le nouvel argument dans un groupe séparé dans les messages " +"d'aide. Afin de personnaliser l'affichage, la méthode :meth:" +"`add_argument_group` accepte les arguments ``title`` et ``description`` ::" + +#: ../Doc/library/argparse.rst:1821 +msgid "" +"Note that any arguments not in your user-defined groups will end up back in " +"the usual \"positional arguments\" and \"optional arguments\" sections." +msgstr "" +"Prenez note que tout argument qui n'est pas dans l'un de vos groupes est " +"affiché dans l'une des sections usuelles *positional arguments* et *optional " +"arguments*." + +#: ../Doc/library/argparse.rst:1826 +msgid "Mutual exclusion" +msgstr "Exclusion mutuelle" + +#: ../Doc/library/argparse.rst:1830 +msgid "" +"Create a mutually exclusive group. :mod:`argparse` will make sure that only " +"one of the arguments in the mutually exclusive group was present on the " +"command line::" +msgstr "" +"Crée un groupe mutuellement exclusif. Le module :mod:`argparse` vérifie " +"qu'au plus un des arguments du groupe mutuellement exclusif est présent sur " +"la ligne de commande ::" + +#: ../Doc/library/argparse.rst:1846 +msgid "" +"The :meth:`add_mutually_exclusive_group` method also accepts a *required* " +"argument, to indicate that at least one of the mutually exclusive arguments " +"is required::" +msgstr "" +"La méthode :meth:`add_mutually_exclusive_group` accepte aussi l'argument " +"``required`` pour indiquer qu'au moins un des arguments mutuellement " +"exclusifs est nécessaire ::" + +#: ../Doc/library/argparse.rst:1858 +msgid "" +"Note that currently mutually exclusive argument groups do not support the " +"*title* and *description* arguments of :meth:`~ArgumentParser." +"add_argument_group`." +msgstr "" +"Prenez note que présentement les groupes d'arguments mutuellement exclusifs " +"n'acceptent pas les arguments ``title`` et ``description`` d':meth:" +"`~ArgumentParser.add_argument_group`." + +#: ../Doc/library/argparse.rst:1864 +msgid "Parser defaults" +msgstr "Valeurs par défaut de l'analyseur" + +#: ../Doc/library/argparse.rst:1868 +msgid "" +"Most of the time, the attributes of the object returned by :meth:" +"`parse_args` will be fully determined by inspecting the command-line " +"arguments and the argument actions. :meth:`set_defaults` allows some " +"additional attributes that are determined without any inspection of the " +"command line to be added::" +msgstr "" +"Dans la majorité des cas, les attributs de l'objet renvoyé par :meth:" +"`parse_args` sont entièrement définis par l'inspection des arguments de la " +"ligne de commande et par les actions des arguments. La méthode :meth:" +"`set_defaults` permet l'ajout d'attributs additionnels qui sont définis sans " +"nécessiter l'inspection de la ligne de commande ::" + +#: ../Doc/library/argparse.rst:1880 +msgid "" +"Note that parser-level defaults always override argument-level defaults::" +msgstr "" +"Prenez note que les valeurs par défaut au niveau de l'analyseur ont " +"précédence sur les valeurs par défaut au niveau de l'argument ::" + +#: ../Doc/library/argparse.rst:1888 +msgid "" +"Parser-level defaults can be particularly useful when working with multiple " +"parsers. See the :meth:`~ArgumentParser.add_subparsers` method for an " +"example of this type." +msgstr "" +"Les valeurs par défaut au niveau de l'analyseur sont particulièrement utiles " +"quand on travaille avec plusieurs analyseurs. Voir la méthode :meth:" +"`~ArgumentParser.add_subparsers` pour un exemple de cette utilisation." + +#: ../Doc/library/argparse.rst:1894 +msgid "" +"Get the default value for a namespace attribute, as set by either :meth:" +"`~ArgumentParser.add_argument` or by :meth:`~ArgumentParser.set_defaults`::" +msgstr "" +"Renvoie la valeur par défaut d'un attribut de l'objet ``Namespace`` tel " +"qu'il a été défini soit par :meth:`~ArgumentParser.add_argument` ou par :" +"meth:`~ArgumentParser.set_defaults` ::" + +#: ../Doc/library/argparse.rst:1905 +msgid "Printing help" +msgstr "Afficher l'aide" + +#: ../Doc/library/argparse.rst:1907 +msgid "" +"In most typical applications, :meth:`~ArgumentParser.parse_args` will take " +"care of formatting and printing any usage or error messages. However, " +"several formatting methods are available:" +msgstr "" +"Pour la majorité des applications, :meth:`~ArgumentParser.parse_args` se " +"charge du formatage et de l'affichage des messages d'erreur et " +"d'utilisation. Plusieurs méthodes de formatage sont toutefois disponibles :" + +#: ../Doc/library/argparse.rst:1913 +msgid "" +"Print a brief description of how the :class:`ArgumentParser` should be " +"invoked on the command line. If *file* is ``None``, :data:`sys.stdout` is " +"assumed." +msgstr "" +"Affiche une brève description sur la façon d'invoquer l':class:" +"`ArgumentParser` depuis la ligne de commande. Si ``file`` est ``None``, " +"utilise :data:`sys.stdout`." + +#: ../Doc/library/argparse.rst:1919 +msgid "" +"Print a help message, including the program usage and information about the " +"arguments registered with the :class:`ArgumentParser`. If *file* is " +"``None``, :data:`sys.stdout` is assumed." +msgstr "" +"Affiche un message d'aide qui inclut l'utilisation du programme et " +"l'information sur les arguments répertoriés dans l':class:`ArgumentParser`. " +"Si ``file`` est ``None``, utilise :data:`sys.stdout`." + +#: ../Doc/library/argparse.rst:1923 +msgid "" +"There are also variants of these methods that simply return a string instead " +"of printing it:" +msgstr "" +"Des variantes de ces méthodes sont fournies pour renvoyer la chaîne plutôt " +"que de l'afficher :" + +#: ../Doc/library/argparse.rst:1928 +msgid "" +"Return a string containing a brief description of how the :class:" +"`ArgumentParser` should be invoked on the command line." +msgstr "" +"Renvoie une chaîne contenant une brève description sur la façon d'invoquer " +"l':class:`ArgumentParser` depuis la ligne de commande." + +#: ../Doc/library/argparse.rst:1933 +msgid "" +"Return a string containing a help message, including the program usage and " +"information about the arguments registered with the :class:`ArgumentParser`." +msgstr "" +"Renvoie une chaîne représentant un message d'aide qui inclut des " +"informations sur l'utilisation du programme et sur les arguments définis " +"dans l':class:`ArgumentParser`." + +#: ../Doc/library/argparse.rst:1938 +msgid "Partial parsing" +msgstr "*Parsing* partiel" + +#: ../Doc/library/argparse.rst:1942 +msgid "" +"Sometimes a script may only parse a few of the command-line arguments, " +"passing the remaining arguments on to another script or program. In these " +"cases, the :meth:`~ArgumentParser.parse_known_args` method can be useful. " +"It works much like :meth:`~ArgumentParser.parse_args` except that it does " +"not produce an error when extra arguments are present. Instead, it returns " +"a two item tuple containing the populated namespace and the list of " +"remaining argument strings." +msgstr "" +"Parfois, un script n'analyse que de quelques-uns des arguments de la ligne " +"de commande avant de passer les arguments non-traités à un autre script ou " +"un autre programme. La méthode :meth:`~ArgumentParser.parse_known_args` est " +"utile dans ces cas. Elle fonctionne similairement à :meth:`~ArgumentParser." +"parse_args`, mais elle ne lève pas d'erreur quand des arguments non-reconnus " +"sont présents. Au lieu, elle renvoie une paire de valeurs : l'objet " +"``Namespace`` rempli et la liste des arguments non-traités." + +#: ../Doc/library/argparse.rst:1958 +msgid "" +":ref:`Prefix matching ` rules apply to :meth:" +"`parse_known_args`. The parser may consume an option even if it's just a " +"prefix of one of its known options, instead of leaving it in the remaining " +"arguments list." +msgstr "" +"Les règles d':ref:`acceptation des abréviations ` sont " +"applicables à :meth:`parse_known_args`. L'analyseur peut ainsi capturer une " +"option même si elle n'est que le préfixe d'une option reconnue plutôt que de " +"la laisser dans la liste des arguments non-traités." + +#: ../Doc/library/argparse.rst:1965 +msgid "Customizing file parsing" +msgstr "Personnaliser le *parsing* de fichiers" + +#: ../Doc/library/argparse.rst:1969 +msgid "" +"Arguments that are read from a file (see the *fromfile_prefix_chars* keyword " +"argument to the :class:`ArgumentParser` constructor) are read one argument " +"per line. :meth:`convert_arg_line_to_args` can be overridden for fancier " +"reading." +msgstr "" +"Les arguments qui proviennent d'un fichier sont lus un par ligne. La " +"méthode :meth:`convert_arg_line_to_args` peut être surchargée pour accomplir " +"un traitement plus élaboré. Voir aussi l'argument nommé " +"``fromfile_prefix_chars`` du constructeur d':class:`ArgumentParser`." + +#: ../Doc/library/argparse.rst:1974 +msgid "" +"This method takes a single argument *arg_line* which is a string read from " +"the argument file. It returns a list of arguments parsed from this string. " +"The method is called once per line read from the argument file, in order." +msgstr "" +"La méthode ``convert_arg_line_to_args`` accepte un seul argument, " +"``arg_line``, qui est une chaîne lue dans le fichier d'arguments. Elle " +"renvoie une liste d'arguments analysés dans cette chaîne. La méthode est " +"appelée une fois pour chaque ligne lue du fichier d'arguments. L'ordre est " +"préservé." + +#: ../Doc/library/argparse.rst:1978 +msgid "" +"A useful override of this method is one that treats each space-separated " +"word as an argument. The following example demonstrates how to do this::" +msgstr "" +"Une surcharge utile de cette méthode est de permettre à chaque mot délimité " +"par des espaces d'être traité comme un argument. L'exemple suivant illustre " +"comment réaliser ceci ::" + +#: ../Doc/library/argparse.rst:1987 +msgid "Exiting methods" +msgstr "Méthodes d'interruptions" + +#: ../Doc/library/argparse.rst:1991 +msgid "" +"This method terminates the program, exiting with the specified *status* and, " +"if given, it prints a *message* before that." +msgstr "" + +#: ../Doc/library/argparse.rst:1996 +msgid "" +"This method prints a usage message including the *message* to the standard " +"error and terminates the program with a status code of 2." +msgstr "" +"Cette méthode affiche un message d'utilisation qui inclut la chaîne " +"``message`` sur la sortie d'erreur standard puis termine l'exécution avec le " +"code de fin d'exécution 2." + +#: ../Doc/library/argparse.rst:2001 +msgid "Intermixed parsing" +msgstr "Analyse entremêlée" + +#: ../Doc/library/argparse.rst:2006 +msgid "" +"A number of Unix commands allow the user to intermix optional arguments with " +"positional arguments. The :meth:`~ArgumentParser.parse_intermixed_args` " +"and :meth:`~ArgumentParser.parse_known_intermixed_args` methods support this " +"parsing style." +msgstr "" +"De nombreuses commandes Unix permettent à l'utilisateur d'entremêler les " +"arguments optionnels et les arguments positionnels. Les méthodes :meth:" +"`~ArgumentParser.parse_intermixed_args` et :meth:`~ArgumentParser." +"parse_known_intermixed_args` permettent ce style d'analyse." + +#: ../Doc/library/argparse.rst:2011 +msgid "" +"These parsers do not support all the argparse features, and will raise " +"exceptions if unsupported features are used. In particular, subparsers, " +"``argparse.REMAINDER``, and mutually exclusive groups that include both " +"optionals and positionals are not supported." +msgstr "" +"Ces analyseurs n'offrent pas toutes les fonctionnalités d'``argparse`` et " +"ils lèvent une exception si une fonctionnalité non prise en charge est " +"utilisée. En particulier, les sous-analyseurs, ``argparse.REMAINDER`` et les " +"groupes mutuellement exclusifs qui contiennent à la fois des arguments " +"optionnels et des arguments positionnels ne sont pas pris en charge." + +#: ../Doc/library/argparse.rst:2016 +msgid "" +"The following example shows the difference between :meth:`~ArgumentParser." +"parse_known_args` and :meth:`~ArgumentParser.parse_intermixed_args`: the " +"former returns ``['2', '3']`` as unparsed arguments, while the latter " +"collects all the positionals into ``rest``. ::" +msgstr "" +"L'exemple suivant illustre la différence entre :meth:`~ArgumentParser." +"parse_known_args` et :meth:`~ArgumentParser.parse_intermixed_args` : le " +"premier renvoie ``['2', '3']`` comme arguments non-traités alors que le " +"second capture tous les arguments positionnels dans ``rest`` ::" + +#: ../Doc/library/argparse.rst:2031 +msgid "" +":meth:`~ArgumentParser.parse_known_intermixed_args` returns a two item tuple " +"containing the populated namespace and the list of remaining argument " +"strings. :meth:`~ArgumentParser.parse_intermixed_args` raises an error if " +"there are any remaining unparsed argument strings." +msgstr "" +":meth:`~ArgumentParser.parse_known_intermixed_args` renvoie une paire de " +"valeurs : l'objet ``Namespace`` rempli et une liste de chaînes d'arguments " +"non-traités. :meth:`~ArgumentParser.parse_intermixed_args` lève une erreur " +"s'il reste des chaînes d'arguments non-traités." + +#: ../Doc/library/argparse.rst:2041 +msgid "Upgrading optparse code" +msgstr "Mettre à jour du code ``optparse``" + +#: ../Doc/library/argparse.rst:2043 +msgid "" +"Originally, the :mod:`argparse` module had attempted to maintain " +"compatibility with :mod:`optparse`. However, :mod:`optparse` was difficult " +"to extend transparently, particularly with the changes required to support " +"the new ``nargs=`` specifiers and better usage messages. When most " +"everything in :mod:`optparse` had either been copy-pasted over or monkey-" +"patched, it no longer seemed practical to try to maintain the backwards " +"compatibility." +msgstr "" +"Initialement, le module :mod:`argparse` tentait de rester compatible avec :" +"mod:`optparse`. Hélas, il était difficile de faire des améliorations à :mod:" +"`optparse` de façon transparente, en particulier pour les changements requis " +"pour gérer les nouveaux spécificateurs de ``nargs=`` et les messages " +"d'utilisation améliorés. Après avoir porté ou surchargé tout le code d':mod:" +"`optparse`, la rétro-compatibilité pouvait difficilement être conservée." + +#: ../Doc/library/argparse.rst:2050 +msgid "" +"The :mod:`argparse` module improves on the standard library :mod:`optparse` " +"module in a number of ways including:" +msgstr "" +"Le module :mod:`argparse` fournit plusieurs améliorations par rapport au " +"module :mod:`optparse` de la bibliothèque standard :" + +#: ../Doc/library/argparse.rst:2053 +msgid "Handling positional arguments." +msgstr "Gère les arguments positionnels." + +#: ../Doc/library/argparse.rst:2054 +msgid "Supporting sub-commands." +msgstr "Prise en charge des sous commandes." + +#: ../Doc/library/argparse.rst:2055 +msgid "Allowing alternative option prefixes like ``+`` and ``/``." +msgstr "" +"Permet d'utiliser les alternatives ``+`` ou ``/`` comme préfixes d'option." + +#: ../Doc/library/argparse.rst:2056 +msgid "Handling zero-or-more and one-or-more style arguments." +msgstr "Prend en charge la répétition de valeurs (zéro ou plus, un ou plus)." + +#: ../Doc/library/argparse.rst:2057 +msgid "Producing more informative usage messages." +msgstr "Fournit des messages d'aide plus complets." + +#: ../Doc/library/argparse.rst:2058 +msgid "Providing a much simpler interface for custom ``type`` and ``action``." +msgstr "" +"Fournit une interface plus simple pour les types et actions personnalisés" + +#: ../Doc/library/argparse.rst:2060 +msgid "A partial upgrade path from :mod:`optparse` to :mod:`argparse`:" +msgstr "Le portage partiel d':mod:`optparse` à :mod:`argparse` :" + +#: ../Doc/library/argparse.rst:2062 +msgid "" +"Replace all :meth:`optparse.OptionParser.add_option` calls with :meth:" +"`ArgumentParser.add_argument` calls." +msgstr "" +"Remplacer tous les appels à :meth:`optparse.OptionParser.add_option` par des " +"appels à :meth:`ArgumentParser.add_argument`." + +#: ../Doc/library/argparse.rst:2065 +msgid "" +"Replace ``(options, args) = parser.parse_args()`` with ``args = parser." +"parse_args()`` and add additional :meth:`ArgumentParser.add_argument` calls " +"for the positional arguments. Keep in mind that what was previously called " +"``options``, now in the :mod:`argparse` context is called ``args``." +msgstr "" +"Remplacer ``(options, args) = parser.parse_args()`` par ``args = parser." +"parse_args()`` et ajouter des appels à :meth:`ArgumentParser.add_argument` " +"pour les arguments positionnels. Prenez note que les valeurs précédemment " +"appelées ``options`` sont appelées ``args`` dans le contexte d':mod:" +"`argparse`." + +#: ../Doc/library/argparse.rst:2070 +msgid "" +"Replace :meth:`optparse.OptionParser.disable_interspersed_args` by using :" +"meth:`~ArgumentParser.parse_intermixed_args` instead of :meth:" +"`~ArgumentParser.parse_args`." +msgstr "" +"Remplacer :meth:`optparse.OptionParser.disable_interspersed_args` en " +"appelant :meth:`~ArgumentParser.parse_intermixed_args` plutôt que :meth:" +"`~ArgumentParser.parse_args`." + +#: ../Doc/library/argparse.rst:2074 +msgid "" +"Replace callback actions and the ``callback_*`` keyword arguments with " +"``type`` or ``action`` arguments." +msgstr "" +"Remplacer les actions de rappel (*callback actions* en anglais) et les " +"arguments nommés ``callback_*`` par des arguments ``type`` et ``actions``." + +#: ../Doc/library/argparse.rst:2077 +msgid "" +"Replace string names for ``type`` keyword arguments with the corresponding " +"type objects (e.g. int, float, complex, etc)." +msgstr "" +"Remplacer les chaînes représentant le nom des types pour l'argument nommé " +"``type`` par les objets types correspondants (par exemple : ``int``, " +"``float``, ``complex``, etc)." + +#: ../Doc/library/argparse.rst:2080 +msgid "" +"Replace :class:`optparse.Values` with :class:`Namespace` and :exc:`optparse." +"OptionError` and :exc:`optparse.OptionValueError` with :exc:`ArgumentError`." +msgstr "" +"Remplacer :class:`optparse.Values` par :class:`Namespace` ; et :exc:" +"`optparse.OptionError` et :exc:`optparse.OptionValueError` par :exc:" +"`ArgumentError`." + +#: ../Doc/library/argparse.rst:2084 +msgid "" +"Replace strings with implicit arguments such as ``%default`` or ``%prog`` " +"with the standard Python syntax to use dictionaries to format strings, that " +"is, ``%(default)s`` and ``%(prog)s``." +msgstr "" +"Remplacer les chaînes avec des arguments de formatage implicite (tels que ``" +"%default`` ou ``%prog``) par la syntaxe standard de Python pour " +"l'interpolation d'un dictionnaire dans les chaînes de formatage (c'est-à-" +"dire ``%(default)s`` et ``%(prog)s``)." + +#: ../Doc/library/argparse.rst:2088 +msgid "" +"Replace the OptionParser constructor ``version`` argument with a call to " +"``parser.add_argument('--version', action='version', version='')``." +msgstr "" +"Remplacer l'argument ``version`` du constructeur d'``OptionParser`` par un " +"appel à ``parser.add_argument('--version', action='version', version='')``." diff --git a/library/array.po b/library/array.po new file mode 100644 index 000000000..cfd681fc9 --- /dev/null +++ b/library/array.po @@ -0,0 +1,553 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" +"PO-Revision-Date: 2018-10-06 15:31+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.1.1\n" + +#: ../Doc/library/array.rst:2 +msgid ":mod:`array` --- Efficient arrays of numeric values" +msgstr ":mod:`array` — Tableaux efficaces de valeurs numériques" + +#: ../Doc/library/array.rst:11 +msgid "" +"This module defines an object type which can compactly represent an array of " +"basic values: characters, integers, floating point numbers. Arrays are " +"sequence types and behave very much like lists, except that the type of " +"objects stored in them is constrained. The type is specified at object " +"creation time by using a :dfn:`type code`, which is a single character. The " +"following type codes are defined:" +msgstr "" +"Ce module définit un type d'objet qui permet de représenter de façon " +"compacte un tableau (*array*) de valeurs élémentaires : caractères, entiers, " +"flottants. Les tableaux sont de type séquence et se comportent de manière " +"très similaire aux listes, sauf que les types d'objets qui y sont stockés " +"sont limités. Le type est spécifié au moment de la création de l’objet en " +"utilisant :dfn:`type code`, qui est un caractère unique. Voir ci-dessous " +"pour la définition des types :" + +#: ../Doc/library/array.rst:19 +msgid "Type code" +msgstr "Code d'indication du type" + +#: ../Doc/library/array.rst:19 +msgid "C Type" +msgstr "Type C" + +#: ../Doc/library/array.rst:19 +msgid "Python Type" +msgstr "Type Python" + +#: ../Doc/library/array.rst:19 +msgid "Minimum size in bytes" +msgstr "Taille minimum en octets" + +#: ../Doc/library/array.rst:19 +msgid "Notes" +msgstr "Notes" + +#: ../Doc/library/array.rst:21 +msgid "``'b'``" +msgstr "``'b'``" + +#: ../Doc/library/array.rst:21 +msgid "signed char" +msgstr "``signed char``" + +#: ../Doc/library/array.rst:21 ../Doc/library/array.rst:23 +#: ../Doc/library/array.rst:27 ../Doc/library/array.rst:29 +#: ../Doc/library/array.rst:31 ../Doc/library/array.rst:33 +#: ../Doc/library/array.rst:35 ../Doc/library/array.rst:37 +#: ../Doc/library/array.rst:39 ../Doc/library/array.rst:41 +msgid "int" +msgstr "*int*" + +#: ../Doc/library/array.rst:21 ../Doc/library/array.rst:23 +msgid "1" +msgstr "1" + +#: ../Doc/library/array.rst:23 +msgid "``'B'``" +msgstr "``'B'``" + +#: ../Doc/library/array.rst:23 +msgid "unsigned char" +msgstr "``unsigned char``" + +#: ../Doc/library/array.rst:25 +msgid "``'u'``" +msgstr "``'u'``" + +#: ../Doc/library/array.rst:25 +msgid "Py_UNICODE" +msgstr "Py_UNICODE" + +#: ../Doc/library/array.rst:25 +msgid "Unicode character" +msgstr "Caractère Unicode" + +#: ../Doc/library/array.rst:25 ../Doc/library/array.rst:27 +#: ../Doc/library/array.rst:29 ../Doc/library/array.rst:31 +#: ../Doc/library/array.rst:33 +msgid "2" +msgstr "2" + +#: ../Doc/library/array.rst:25 +msgid "\\(1)" +msgstr "\\(1)" + +#: ../Doc/library/array.rst:27 +msgid "``'h'``" +msgstr "``'h'``" + +#: ../Doc/library/array.rst:27 +msgid "signed short" +msgstr "``signed short``" + +#: ../Doc/library/array.rst:29 +msgid "``'H'``" +msgstr "``'H'``" + +#: ../Doc/library/array.rst:29 +msgid "unsigned short" +msgstr "``unsigned short``" + +#: ../Doc/library/array.rst:31 +msgid "``'i'``" +msgstr "``'i'``" + +#: ../Doc/library/array.rst:31 +msgid "signed int" +msgstr "``signed int``" + +#: ../Doc/library/array.rst:33 +msgid "``'I'``" +msgstr "``'I'``" + +#: ../Doc/library/array.rst:33 +msgid "unsigned int" +msgstr "``unsigned int``" + +#: ../Doc/library/array.rst:35 +msgid "``'l'``" +msgstr "``'l'``" + +#: ../Doc/library/array.rst:35 +msgid "signed long" +msgstr "``signed long``" + +#: ../Doc/library/array.rst:35 ../Doc/library/array.rst:37 +#: ../Doc/library/array.rst:43 +msgid "4" +msgstr "4" + +#: ../Doc/library/array.rst:37 +msgid "``'L'``" +msgstr "``'L'``" + +#: ../Doc/library/array.rst:37 +msgid "unsigned long" +msgstr "``unsigned long``" + +#: ../Doc/library/array.rst:39 +msgid "``'q'``" +msgstr "``'q'``" + +#: ../Doc/library/array.rst:39 +msgid "signed long long" +msgstr "``signed long long``" + +#: ../Doc/library/array.rst:39 ../Doc/library/array.rst:41 +#: ../Doc/library/array.rst:45 +msgid "8" +msgstr "8" + +#: ../Doc/library/array.rst:39 ../Doc/library/array.rst:41 +msgid "\\(2)" +msgstr "\\(2)" + +#: ../Doc/library/array.rst:41 +msgid "``'Q'``" +msgstr "``'Q'``" + +#: ../Doc/library/array.rst:41 +msgid "unsigned long long" +msgstr "``unsigned long long``" + +#: ../Doc/library/array.rst:43 +msgid "``'f'``" +msgstr "``'f'``" + +#: ../Doc/library/array.rst:43 ../Doc/library/array.rst:45 +msgid "float" +msgstr "*float*" + +#: ../Doc/library/array.rst:45 +msgid "``'d'``" +msgstr "``'d'``" + +#: ../Doc/library/array.rst:45 +msgid "double" +msgstr "double" + +#: ../Doc/library/array.rst:48 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/library/array.rst:51 +msgid "" +"The ``'u'`` type code corresponds to Python's obsolete unicode character (:c:" +"type:`Py_UNICODE` which is :c:type:`wchar_t`). Depending on the platform, it " +"can be 16 bits or 32 bits." +msgstr "" +"Le code de type ``'u'`` correspond au type obsolète de Python caractère " +"Unicode (:c:type:`Py_UNICODE` de type :c:type:`wchar_t`). Selon la " +"plateforme, il peut être 16 bits ou 32 bits." + +#: ../Doc/library/array.rst:55 +msgid "" +"``'u'`` will be removed together with the rest of the :c:type:`Py_UNICODE` " +"API." +msgstr "``'u'`` sera supprimé avec le reste de l'API :c:type:`Py_UNICODE`." + +#: ../Doc/library/array.rst:61 +msgid "" +"The ``'q'`` and ``'Q'`` type codes are available only if the platform C " +"compiler used to build Python supports C :c:type:`long long`, or, on " +"Windows, :c:type:`__int64`." +msgstr "" +"Les codes de type ``'q'`` et ``'Q'`` ne sont disponibles que si le " +"compilateur C de la plateforme utilisé pour construire Python gère le type " +"C :c:type:`long long`, ou, sur Windows, :c:type:`__int64`." + +#: ../Doc/library/array.rst:67 +msgid "" +"The actual representation of values is determined by the machine " +"architecture (strictly speaking, by the C implementation). The actual size " +"can be accessed through the :attr:`itemsize` attribute." +msgstr "" +"La représentation réelle des valeurs est déterminée par l'architecture de la " +"machine (à proprement parler, par l'implémentation C). La taille réelle est " +"accessible via l'attribut :attr:`itemsize`." + +#: ../Doc/library/array.rst:71 +msgid "The module defines the following type:" +msgstr "Le module définit le type suivant :" + +#: ../Doc/library/array.rst:76 +msgid "" +"A new array whose items are restricted by *typecode*, and initialized from " +"the optional *initializer* value, which must be a list, a :term:`bytes-like " +"object`, or iterable over elements of the appropriate type." +msgstr "" +"Un nouveau tableau dont les éléments sont limités par *typecode*, et " +"initialisés par la valeur optionnelle *initializer*, qui peut être une " +"liste, un :term:`bytes-like object`, ou un itérable sur des éléments du type " +"approprié." + +#: ../Doc/library/array.rst:81 +msgid "" +"If given a list or string, the initializer is passed to the new array's :" +"meth:`fromlist`, :meth:`frombytes`, or :meth:`fromunicode` method (see " +"below) to add initial items to the array. Otherwise, the iterable " +"initializer is passed to the :meth:`extend` method." +msgstr "" +"Si le paramètre *initializer* est une liste ou une chaîne de caractères, il " +"est passé à la méthode :meth:`fromlist`, :meth:`frombytes` ou :meth:" +"`fromunicode` du tableau (voir ci-dessous) pour ajouter les éléments " +"initiaux du tableau. Si c'est un itérable, il est passé à la méthode :meth:" +"`extend`." + +#: ../Doc/library/array.rst:89 +msgid "A string with all available type codes." +msgstr "Une chaîne avec tous les codes de types disponibles." + +#: ../Doc/library/array.rst:91 +msgid "" +"Array objects support the ordinary sequence operations of indexing, slicing, " +"concatenation, and multiplication. When using slice assignment, the " +"assigned value must be an array object with the same type code; in all other " +"cases, :exc:`TypeError` is raised. Array objects also implement the buffer " +"interface, and may be used wherever :term:`bytes-like objects ` are supported." +msgstr "" +"Les objets de tableau supportent les opérations classiques de séquence : " +"indiçage, découpage, concaténation et multiplication. Lors de l'utilisation " +"de tranche, la valeur assignée doit être un tableau du même type ; dans tous " +"les autres cas, l'exception :exc:`TypeError` est levée. Les objets de " +"tableau implémentent également l'interface tampon, et peuvent être utilisés " +"partout où :term:`bytes-like objects ` sont supportés." + +#: ../Doc/library/array.rst:97 +msgid "The following data items and methods are also supported:" +msgstr "" +"Les éléments de données et méthodes suivants sont également supportés :" + +#: ../Doc/library/array.rst:101 +msgid "The typecode character used to create the array." +msgstr "" +"Le code (de type Python caractère) utilisé pour spécifier le type des " +"éléments du tableau." + +#: ../Doc/library/array.rst:106 +msgid "The length in bytes of one array item in the internal representation." +msgstr "" +"La longueur en octets d'un élément du tableau dans la représentation interne." + +#: ../Doc/library/array.rst:111 +msgid "Append a new item with value *x* to the end of the array." +msgstr "Ajoute un nouvel élément avec la valeur *x* à la fin du tableau." + +#: ../Doc/library/array.rst:116 +msgid "" +"Return a tuple ``(address, length)`` giving the current memory address and " +"the length in elements of the buffer used to hold array's contents. The " +"size of the memory buffer in bytes can be computed as ``array.buffer_info()" +"[1] * array.itemsize``. This is occasionally useful when working with low-" +"level (and inherently unsafe) I/O interfaces that require memory addresses, " +"such as certain :c:func:`ioctl` operations. The returned numbers are valid " +"as long as the array exists and no length-changing operations are applied to " +"it." +msgstr "" +"Renvoie un tuple ``(address, length)`` indiquant l'adresse mémoire courante " +"et la longueur en éléments du tampon utilisé pour contenir le contenu du " +"tableau. La taille du tampon mémoire en octets peut être calculée par " +"``array.buffer_info()[1] * array.itemsize``. Ceci est parfois utile lorsque " +"vous travaillez sur des interfaces E/S de bas niveau (et intrinsèquement " +"dangereuses) qui nécessitent des adresses mémoire, telles que certaines " +"opérations :c:func:`ioctl`. Les nombres renvoyés sont valides tant que le " +"tableau existe et qu'aucune opération qui modifie sa taille ne lui est " +"appliquée." + +#: ../Doc/library/array.rst:126 +msgid "" +"When using array objects from code written in C or C++ (the only way to " +"effectively make use of this information), it makes more sense to use the " +"buffer interface supported by array objects. This method is maintained for " +"backward compatibility and should be avoided in new code. The buffer " +"interface is documented in :ref:`bufferobjects`." +msgstr "" +"Lors de l'utilisation d'objets tableaux provenant de codes écrits en C ou C+" +"+ (le seul moyen d'utiliser efficacement ces informations), il est plus " +"logique d'utiliser l'interface tampon supportée par les objets tableaux. " +"Cette méthode est maintenue pour des raisons de rétrocompatibilité et " +"devrait être évitée dans un nouveau code. L'interface tampon est documentée " +"dans :ref:`bufferobjects`." + +#: ../Doc/library/array.rst:135 +msgid "" +"\"Byteswap\" all items of the array. This is only supported for values " +"which are 1, 2, 4, or 8 bytes in size; for other types of values, :exc:" +"`RuntimeError` is raised. It is useful when reading data from a file " +"written on a machine with a different byte order." +msgstr "" +"Boutisme de tous les éléments du tableau. Ceci n'est pris en charge que pour " +"les valeurs de 1, 2, 4 ou 8 octets ; pour les autres types de valeur, :exc:" +"`RuntimeError` est levée. Il est utile lors de la lecture de données à " +"partir d'un fichier écrit sur une machine avec un ordre d'octets différent." + +#: ../Doc/library/array.rst:143 +msgid "Return the number of occurrences of *x* in the array." +msgstr "Renvoi le nombre d'occurrences de *x* dans le tableau." + +#: ../Doc/library/array.rst:148 +msgid "" +"Append items from *iterable* to the end of the array. If *iterable* is " +"another array, it must have *exactly* the same type code; if not, :exc:" +"`TypeError` will be raised. If *iterable* is not an array, it must be " +"iterable and its elements must be the right type to be appended to the array." +msgstr "" +"Ajoute les éléments de *iterable* à la fin du tableau. Si *iterable* est un " +"autre tableau, il doit le même code d'indication du type ; dans le cas " +"contraire, :exc:`TypeError` sera levée. Si *iterable* n'est pas un tableau, " +"il doit être itérable et ces éléments doivent être du bon type pour être " +"ajoutés dans le tableau." + +#: ../Doc/library/array.rst:156 +msgid "" +"Appends items from the string, interpreting the string as an array of " +"machine values (as if it had been read from a file using the :meth:" +"`fromfile` method)." +msgstr "" +"Ajoute des éléments de la chaîne, interprétant la chaîne comme un tableau de " +"valeurs machine (comme si elle avait été lue depuis le fichier en utilisant " +"la méthode :meth:`from file`)." + +#: ../Doc/library/array.rst:159 +msgid ":meth:`fromstring` is renamed to :meth:`frombytes` for clarity." +msgstr "" +":meth:`fromstring` est renommée en :meth:`frombytes` pour plus de lisibilité." + +#: ../Doc/library/array.rst:165 +msgid "" +"Read *n* items (as machine values) from the :term:`file object` *f* and " +"append them to the end of the array. If less than *n* items are available, :" +"exc:`EOFError` is raised, but the items that were available are still " +"inserted into the array. *f* must be a real built-in file object; something " +"else with a :meth:`read` method won't do." +msgstr "" +"Lit *n* éléments (en tant que valeurs machine) du :term:`file object` *f* et " +"les ajouter à la fin du tableau. Si moins de *n* éléments sont disponibles, :" +"exc:`EOFError` est levée, mais les éléments qui étaient disponibles sont " +"tout de même insérés dans le tableau. *f* doit être un objet fichier natif ; " +"quelque chose d'autre avec une méthode :meth:`read` ne suffit pas." + +#: ../Doc/library/array.rst:174 +msgid "" +"Append items from the list. This is equivalent to ``for x in list: a." +"append(x)`` except that if there is a type error, the array is unchanged." +msgstr "" +"Ajoute les éléments de la liste. C'est l'équivalent de ``for x in list: a." +"append(x)`` sauf que s'il y a une erreur de type, le tableau est inchangé." + +#: ../Doc/library/array.rst:180 +msgid "Deprecated alias for :meth:`frombytes`." +msgstr "Alias obsolète de :meth:`frombytes`." + +#: ../Doc/library/array.rst:185 +msgid "" +"Extends this array with data from the given unicode string. The array must " +"be a type ``'u'`` array; otherwise a :exc:`ValueError` is raised. Use " +"``array.frombytes(unicodestring.encode(enc))`` to append Unicode data to an " +"array of some other type." +msgstr "" +"Étend ce tableau avec les données de la chaîne Unicode donnée. Le tableau " +"doit être de type ``'u'`` ; sinon :exc:`ValueError` est levée. Utiliser " +"``array.frombytes(unicodestring.encode(enc))`` pour ajouter des données " +"Unicode à un tableau d'un autre type." + +#: ../Doc/library/array.rst:193 +msgid "" +"Return the smallest *i* such that *i* is the index of the first occurrence " +"of *x* in the array." +msgstr "" +"Renvoie le plus petit *i* tel que *i* est l'index de la première occurrence " +"de *x* dans le tableau." + +#: ../Doc/library/array.rst:199 +msgid "" +"Insert a new item with value *x* in the array before position *i*. Negative " +"values are treated as being relative to the end of the array." +msgstr "" +"Ajoute un nouvel élément avec la valeur *x* dans le tableau avant la " +"position *i*. Les valeurs négatives sont traitées relativement à la fin du " +"tableau." + +#: ../Doc/library/array.rst:205 +msgid "" +"Removes the item with the index *i* from the array and returns it. The " +"optional argument defaults to ``-1``, so that by default the last item is " +"removed and returned." +msgstr "" +"Supprime l'élément du tableau avec l'index *i* et le renvoie. L'argument " +"optionnel par défaut est à ``-1``, de sorte que par défaut le dernier " +"élément est supprimé et renvoyé." + +#: ../Doc/library/array.rst:212 +msgid "Remove the first occurrence of *x* from the array." +msgstr "Supprime la première occurrence de *x* du tableau." + +#: ../Doc/library/array.rst:217 +msgid "Reverse the order of the items in the array." +msgstr "Inverse l'ordre des éléments du tableau." + +#: ../Doc/library/array.rst:222 +msgid "" +"Convert the array to an array of machine values and return the bytes " +"representation (the same sequence of bytes that would be written to a file " +"by the :meth:`tofile` method.)" +msgstr "" +"Convertit le tableau en un tableau de valeurs machine et renvoie la " +"représentation en octets (la même séquence d'octets qui serait écrite par la " +"méthode :meth:`tofile`)." + +#: ../Doc/library/array.rst:226 +msgid ":meth:`tostring` is renamed to :meth:`tobytes` for clarity." +msgstr "" +":meth:`tostring` est renommé en :meth:`tobytes` pour plus de lisibilité." + +#: ../Doc/library/array.rst:232 +msgid "Write all items (as machine values) to the :term:`file object` *f*." +msgstr "" +"Écrit tous les éléments (en tant que valeurs machine) du :term:`file object` " +"*f*." + +#: ../Doc/library/array.rst:237 +msgid "Convert the array to an ordinary list with the same items." +msgstr "Convertit le tableau en une liste ordinaire avec les mêmes éléments." + +#: ../Doc/library/array.rst:242 +msgid "Deprecated alias for :meth:`tobytes`." +msgstr "Alias obsolète de :meth:`tobytes`." + +#: ../Doc/library/array.rst:247 +msgid "" +"Convert the array to a unicode string. The array must be a type ``'u'`` " +"array; otherwise a :exc:`ValueError` is raised. Use ``array.tobytes()." +"decode(enc)`` to obtain a unicode string from an array of some other type." +msgstr "" +"Convertit le tableau en une chaîne Unicode. Le tableau doit être un tableau " +"de type ``'u'`` ; sinon :exc:`ValueError` est levée. Utilisez ``array." +"tobytes().decode(enc)`` pour obtenir une chaîne Unicode depuis un tableau de " +"tout autre type." + +#: ../Doc/library/array.rst:252 +msgid "" +"When an array object is printed or converted to a string, it is represented " +"as ``array(typecode, initializer)``. The *initializer* is omitted if the " +"array is empty, otherwise it is a string if the *typecode* is ``'u'``, " +"otherwise it is a list of numbers. The string is guaranteed to be able to " +"be converted back to an array with the same type and value using :func:" +"`eval`, so long as the :class:`~array.array` class has been imported using " +"``from array import array``. Examples::" +msgstr "" +"Quand un objet tableau est affiché ou converti en chaîne, il est représenté " +"en tant que ``array(typecode, initializer)``. *initializer* est omis si le " +"tableau est vide, sinon c'est une chaine si le *typecode* est ``'u'``, sinon " +"c'est une liste de nombres. Il est garanti que la chaîne puisse être " +"convertie en un tableau avec le même type et la même valeur en utilisant :" +"func:`eval`, tant que la classe :class:`~array.array` a été importée en " +"utilisant ``from array import array``. Exemples ::" + +#: ../Doc/library/array.rst:269 +msgid "Module :mod:`struct`" +msgstr "Module :mod:`struct`" + +#: ../Doc/library/array.rst:269 +msgid "Packing and unpacking of heterogeneous binary data." +msgstr "Empaquetage et dépaquetage de données binaires hétérogènes." + +#: ../Doc/library/array.rst:273 +msgid "Module :mod:`xdrlib`" +msgstr "Module :mod:`xdrlib`" + +#: ../Doc/library/array.rst:272 +msgid "" +"Packing and unpacking of External Data Representation (XDR) data as used in " +"some remote procedure call systems." +msgstr "" +"Empaquetage et dépaquetage des données XDR (External Data Representation) " +"telles qu'elles sont utilisées dans certains systèmes d'appels de procédures " +"à distance (ou RPC pour *remote procedure call* en anglais)." + +#: ../Doc/library/array.rst:276 +msgid "`The Numerical Python Documentation `_" +msgstr "`La documentation de *Numerical Python* `" + +#: ../Doc/library/array.rst:276 +msgid "" +"The Numeric Python extension (NumPy) defines another array type; see http://" +"www.numpy.org/ for further information about Numerical Python." +msgstr "" +"L'extension *Numeric Python* (NumPy) définit un autre type de tableau ; voir " +"http://www.numpy.org/ pour plus d'informations sur *Numeric Python*." diff --git a/library/ast.po b/library/ast.po new file mode 100644 index 000000000..1b018cc68 --- /dev/null +++ b/library/ast.po @@ -0,0 +1,450 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-09-11 07:42+0200\n" +"Last-Translator: Julien VITARD \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/ast.rst:2 +msgid ":mod:`ast` --- Abstract Syntax Trees" +msgstr ":mod:`ast` — Arbres Syntaxiques Abstraits" + +#: ../Doc/library/ast.rst:10 +msgid "**Source code:** :source:`Lib/ast.py`" +msgstr "**Code source :** :source:`Lib/ast.py`" + +#: ../Doc/library/ast.rst:14 +msgid "" +"The :mod:`ast` module helps Python applications to process trees of the " +"Python abstract syntax grammar. The abstract syntax itself might change " +"with each Python release; this module helps to find out programmatically " +"what the current grammar looks like." +msgstr "" +"Le module :mod:`ast` permet aux applications Python de traiter la grammaire " +"abstraite de l'arbre syntaxique Python. La grammaire abstraite Python elle-" +"même est susceptible d'être modifiée à chaque nouvelle version de Python; ce " +"module permet de trouver à quoi la grammaire actuelle ressemble." + +#: ../Doc/library/ast.rst:19 +msgid "" +"An abstract syntax tree can be generated by passing :data:`ast." +"PyCF_ONLY_AST` as a flag to the :func:`compile` built-in function, or using " +"the :func:`parse` helper provided in this module. The result will be a tree " +"of objects whose classes all inherit from :class:`ast.AST`. An abstract " +"syntax tree can be compiled into a Python code object using the built-in :" +"func:`compile` function." +msgstr "" +"Un arbre syntaxique abstrait peut être généré en passant l'option :data:`ast." +"PyCF_ONLY_AST` à la fonction native :func:`compile`, ou en utilisant la " +"fonction de facilité :func:`parse` fournie par le module. Le résultat est un " +"arbre composé d'objets dont les classes héritent toutes de :class:`ast.AST`. " +"Un arbre syntaxique abstrait peut être compilé en code objet Python en " +"utilisant la fonction native :func:`compile`." + +#: ../Doc/library/ast.rst:27 +msgid "Node classes" +msgstr "Les classes nœud" + +#: ../Doc/library/ast.rst:31 +msgid "" +"This is the base of all AST node classes. The actual node classes are " +"derived from the :file:`Parser/Python.asdl` file, which is reproduced :ref:" +"`below `. They are defined in the :mod:`_ast` C module " +"and re-exported in :mod:`ast`." +msgstr "" +"C'est la classe de base de toute classe nœud de l'AST. Les classes nœud " +"courantes sont dérivées du fichier :file:`Parser/Python.asdl`, qui est " +"reproduit :ref:`ci-dessous `. Ils sont définis dans le " +"module C :mod:`_ast` et ré-exportés dans le module :mod:`ast`." + +#: ../Doc/library/ast.rst:36 +msgid "" +"There is one class defined for each left-hand side symbol in the abstract " +"grammar (for example, :class:`ast.stmt` or :class:`ast.expr`). In addition, " +"there is one class defined for each constructor on the right-hand side; " +"these classes inherit from the classes for the left-hand side trees. For " +"example, :class:`ast.BinOp` inherits from :class:`ast.expr`. For production " +"rules with alternatives (aka \"sums\"), the left-hand side class is " +"abstract: only instances of specific constructor nodes are ever created." +msgstr "" +"Il y a une classe définie pour chacun des symboles présents à gauche dans la " +"grammaire abstraite (par exemple, :class:`ast.stmt` ou :class:`ast.expr`). " +"En plus de cela, il y a une classe définie pour chacun des constructeurs " +"présentés à droite; ces classes héritent des classes situées à gauche dans " +"l'arbre. Par exemple, la classe :class:`ast.BinOp` hérite de la classe :" +"class:`ast.expr`. Pour les règles de réécriture avec alternatives (comme " +"*sums*), la partie gauche est abstraite : seules les instances des " +"constructeurs spécifiques aux nœuds sont créés." + +#: ../Doc/library/ast.rst:49 +msgid "" +"Each concrete class has an attribute :attr:`_fields` which gives the names " +"of all child nodes." +msgstr "" +"Chaque classe concrète possède un attribut :attr:`_fields` donnant les noms " +"de tous les nœuds enfants." + +#: ../Doc/library/ast.rst:52 +msgid "" +"Each instance of a concrete class has one attribute for each child node, of " +"the type as defined in the grammar. For example, :class:`ast.BinOp` " +"instances have an attribute :attr:`left` of type :class:`ast.expr`." +msgstr "" +"Chaque instance d'une classe concrète possède un attribut pour chaque nœud " +"enfant, du type défini par la grammaire. Par exemple, les instances :class:" +"`ast.BinOp` possèdent un attribut :attr:`left` de type :class:`ast.expr`." + +#: ../Doc/library/ast.rst:56 +msgid "" +"If these attributes are marked as optional in the grammar (using a question " +"mark), the value might be ``None``. If the attributes can have zero-or-more " +"values (marked with an asterisk), the values are represented as Python " +"lists. All possible attributes must be present and have valid values when " +"compiling an AST with :func:`compile`." +msgstr "" +"Si ces attributs sont marqués comme optionnels dans la grammaire (en " +"utilisant un point d'interrogation ``?``), la valeur peut être ``None``. Si " +"les attributs peuvent avoir zéro ou plus valeurs (marqués avec un astérisque " +"``*``), les valeurs sont représentées par des listes Python. Tous les " +"attributs possibles doivent être présents et avoir une valeur valide pour " +"compiler un AST avec :func:`compile`." + +#: ../Doc/library/ast.rst:65 +msgid "" +"Instances of :class:`ast.expr` and :class:`ast.stmt` subclasses have :attr:" +"`lineno` and :attr:`col_offset` attributes. The :attr:`lineno` is the line " +"number of source text (1-indexed so the first line is line 1) and the :attr:" +"`col_offset` is the UTF-8 byte offset of the first token that generated the " +"node. The UTF-8 offset is recorded because the parser uses UTF-8 internally." +msgstr "" +"Les instances des sous-classes :class:`ast.expr` et :class:`ast.stmt` " +"possèdent les attributs :attr:`lineno` et :attr:`col_offset`. L'attribut :" +"attr:`lineno` est le numéro de ligne dans le code source (indexé à partir de " +"1 tel que la première ligne est la ligne 1) et l'attribut :attr:`col_offset` " +"qui représente le décalage UTF-8 en byte du premier jeton qui a généré le " +"nœud. Le décalage UTF-8 est enregistré parce que l'analyseur syntaxique " +"utilise l'UTF-8 en interne." + +#: ../Doc/library/ast.rst:72 +msgid "" +"The constructor of a class :class:`ast.T` parses its arguments as follows:" +msgstr "" +"Le constructeur d'une classe :class:`ast.T` analyse ses arguments comme " +"suit :" + +#: ../Doc/library/ast.rst:74 +msgid "" +"If there are positional arguments, there must be as many as there are items " +"in :attr:`T._fields`; they will be assigned as attributes of these names." +msgstr "" +"S'il y a des arguments positionnels, il doit y avoir autant de termes dans :" +"attr:`T._fields`; ils sont assignés comme attributs portant ces noms." + +#: ../Doc/library/ast.rst:76 +msgid "" +"If there are keyword arguments, they will set the attributes of the same " +"names to the given values." +msgstr "" +"S'il y a des arguments nommés, ils définissent les attributs de mêmes noms " +"avec les valeurs données." + +#: ../Doc/library/ast.rst:79 +msgid "" +"For example, to create and populate an :class:`ast.UnaryOp` node, you could " +"use ::" +msgstr "" +"Par exemple, pour créer et peupler un nœud :class:`ast.UnaryOp`, on peut " +"utiliser ::" + +#: ../Doc/library/ast.rst:91 +msgid "or the more compact ::" +msgstr "ou, plus compact ::" + +#: ../Doc/library/ast.rst:100 +msgid "Abstract Grammar" +msgstr "Grammaire abstraite" + +#: ../Doc/library/ast.rst:102 +msgid "The abstract grammar is currently defined as follows:" +msgstr "La grammaire abstraite est actuellement définie comme suit :" + +#: ../Doc/library/ast.rst:109 +msgid ":mod:`ast` Helpers" +msgstr "Outils du module :mod:`ast`" + +#: ../Doc/library/ast.rst:111 +msgid "" +"Apart from the node classes, the :mod:`ast` module defines these utility " +"functions and classes for traversing abstract syntax trees:" +msgstr "" +"À part la classe nœud, le module :mod:`ast` définit ces fonctions et classes " +"utilitaires pour traverser les arbres syntaxiques abstraits :" + +#: ../Doc/library/ast.rst:116 +msgid "" +"Parse the source into an AST node. Equivalent to ``compile(source, " +"filename, mode, ast.PyCF_ONLY_AST)``." +msgstr "" +"Analyse le code source en un nœud AST. Équivalent à ``compile(source, " +"filename, mode, ast.PyCF_ONLY_AST)``." + +#: ../Doc/library/ast.rst:120 ../Doc/library/ast.rst:138 +msgid "" +"It is possible to crash the Python interpreter with a sufficiently large/" +"complex string due to stack depth limitations in Python's AST compiler." +msgstr "" +"Il est possible de faire planter l'interpréteur Python avec des chaînes " +"suffisamment grandes ou complexes lors de la compilation d'un objet AST dû à " +"la limitation de la profondeur de la pile d'appels." + +#: ../Doc/library/ast.rst:127 +msgid "" +"Safely evaluate an expression node or a string containing a Python literal " +"or container display. The string or node provided may only consist of the " +"following Python literal structures: strings, bytes, numbers, tuples, lists, " +"dicts, sets, booleans, and ``None``." +msgstr "" +"Évalue de manière sûre un nœud expression ou une chaîne de caractères " +"contenant une expression littérale Python ou un conteneur. La chaîne de " +"caractères ou le nœud fourni peut seulement faire partie des littéraux " +"Python suivants : chaînes de caractères, bytes, nombres, n-uplets, listes, " +"dictionnaires, ensembles, booléens, et ``None``." + +#: ../Doc/library/ast.rst:132 +msgid "" +"This can be used for safely evaluating strings containing Python values from " +"untrusted sources without the need to parse the values oneself. It is not " +"capable of evaluating arbitrarily complex expressions, for example involving " +"operators or indexing." +msgstr "" +"Cela peut être utilisé pour évaluer de manière sûre la chaîne de caractères " +"contenant des valeurs Python de sources non fiable sans avoir besoin " +"d'analyser les valeurs elles-mêmes. Cette fonction n'est pas capable " +"d'évaluer des expressions complexes arbitraires, par exemple impliquant des " +"opérateurs ou de l'indexation." + +#: ../Doc/library/ast.rst:142 +msgid "Now allows bytes and set literals." +msgstr "Accepte maintenant les littéraux suivants *bytes* et *sets*." + +#: ../Doc/library/ast.rst:148 +msgid "" +"Return the docstring of the given *node* (which must be a :class:" +"`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, or :class:" +"`Module` node), or ``None`` if it has no docstring. If *clean* is true, " +"clean up the docstring's indentation with :func:`inspect.cleandoc`." +msgstr "" +"Renvoie la *docstring* du *node* donné (qui doit être un nœud de type :class:" +"`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, or :class:" +"`Module`), ou ``None`` s'il n'a pas de *docstring*. Si *clean* est vrai, " +"cette fonction nettoie l'indentation de la *docstring* avec :func:`inspect." +"cleandoc`." + +#: ../Doc/library/ast.rst:154 +msgid ":class:`AsyncFunctionDef` is now supported." +msgstr ":class:`AsyncFunctionDef` est maintenant gérée" + +#: ../Doc/library/ast.rst:160 +msgid "" +"When you compile a node tree with :func:`compile`, the compiler expects :" +"attr:`lineno` and :attr:`col_offset` attributes for every node that supports " +"them. This is rather tedious to fill in for generated nodes, so this helper " +"adds these attributes recursively where not already set, by setting them to " +"the values of the parent node. It works recursively starting at *node*." +msgstr "" +"Lorsque l'on compile un arbre avec :func:`compile`, le compilateur attend " +"les attributs :attr:`lineno` et :attr:`col_offset` pour tous les nœuds qui " +"les supportent. Il est fastidieux de les remplir pour les nœuds générés, " +"cette fonction utilitaire ajoute ces attributs de manière récursive là où " +"ils ne sont pas déjà définis, en les définissant comme les valeurs du nœud " +"parent. Elle fonctionne récursivement en démarrant de *node*." + +#: ../Doc/library/ast.rst:169 +msgid "" +"Increment the line number of each node in the tree starting at *node* by " +"*n*. This is useful to \"move code\" to a different location in a file." +msgstr "" +"Incrémente de *n* le numéro de ligne de chaque nœud dans l'arbre en " +"commençant par le nœud *node*. C'est utile pour \"déplacer du code\" à un " +"endroit différent dans un fichier." + +#: ../Doc/library/ast.rst:175 +msgid "" +"Copy source location (:attr:`lineno` and :attr:`col_offset`) from *old_node* " +"to *new_node* if possible, and return *new_node*." +msgstr "" +"Copie le code source (:attr:`lineno` et :attr:`col_offset`) de l'ancien nœud " +"*old_node* vers le nouveau nœud *new_node* si possible, et renvoie " +"*new_node*." + +#: ../Doc/library/ast.rst:181 +msgid "" +"Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` " +"that is present on *node*." +msgstr "" +"Produit un n-uplet de ``(fieldname, value)`` pour chaque champ de ``node." +"_fields`` qui est présent dans *node*." + +#: ../Doc/library/ast.rst:187 +msgid "" +"Yield all direct child nodes of *node*, that is, all fields that are nodes " +"and all items of fields that are lists of nodes." +msgstr "" +"Produit tous les nœuds enfants directs de *node*, c'est à dire, tous les " +"champs qui sont des nœuds et tous les éléments des champs qui sont des " +"listes de nœuds." + +#: ../Doc/library/ast.rst:193 +msgid "" +"Recursively yield all descendant nodes in the tree starting at *node* " +"(including *node* itself), in no specified order. This is useful if you " +"only want to modify nodes in place and don't care about the context." +msgstr "" +"Produit récursivement tous les nœuds enfants dans l'arbre en commençant par " +"*node* (*node* lui-même est inclus), sans ordre spécifique. C'est utile " +"lorsque l'on souhaite modifier les nœuds sur place sans prêter attention au " +"contexte." + +#: ../Doc/library/ast.rst:200 +msgid "" +"A node visitor base class that walks the abstract syntax tree and calls a " +"visitor function for every node found. This function may return a value " +"which is forwarded by the :meth:`visit` method." +msgstr "" +"Classe de base pour un visiteur de nœud, qui parcourt l'arbre syntaxique " +"abstrait et appelle une fonction de visite pour chacun des nœuds trouvés. " +"Cette fonction peut renvoyer une valeur qui est transmise par la méthode :" +"meth:`visit`." + +#: ../Doc/library/ast.rst:204 +msgid "" +"This class is meant to be subclassed, with the subclass adding visitor " +"methods." +msgstr "" +"Cette classe est faite pour être dérivée, en ajoutant des méthodes de visite " +"à la sous-classe." + +#: ../Doc/library/ast.rst:209 +msgid "" +"Visit a node. The default implementation calls the method called :samp:" +"`self.visit_{classname}` where *classname* is the name of the node class, " +"or :meth:`generic_visit` if that method doesn't exist." +msgstr "" +"Visite un nœud. L'implémentation par défaut appelle la méthode :samp:`self." +"visit_{classname}` où *classname* représente le nom de la classe du nœud, " +"ou :meth:`generic_visit` si cette méthode n'existe pas." + +#: ../Doc/library/ast.rst:215 +msgid "This visitor calls :meth:`visit` on all children of the node." +msgstr "" +"Le visiteur appelle la méthode :meth:`visit` de tous les enfants du nœud." + +#: ../Doc/library/ast.rst:217 +msgid "" +"Note that child nodes of nodes that have a custom visitor method won't be " +"visited unless the visitor calls :meth:`generic_visit` or visits them itself." +msgstr "" +"Notons que les nœuds enfants qui possèdent une méthode de visite spéciale ne " +"seront pas visités à moins que le visiteur n'appelle la méthode :meth:" +"`generic_visit` ou ne les visite lui-même." + +#: ../Doc/library/ast.rst:221 +msgid "" +"Don't use the :class:`NodeVisitor` if you want to apply changes to nodes " +"during traversal. For this a special visitor exists (:class:" +"`NodeTransformer`) that allows modifications." +msgstr "" +"N'utilisez pas :class:`NodeVisitor` si vous souhaitez appliquer des " +"changements sur les nœuds lors du parcours. Pour cela, un visiteur spécial " +"existe (:class:`NodeTransformer`) qui permet les modifications." + +#: ../Doc/library/ast.rst:228 +msgid "" +"A :class:`NodeVisitor` subclass that walks the abstract syntax tree and " +"allows modification of nodes." +msgstr "" +"Une sous-classe :class:`NodeVisitor` qui traverse l'arbre syntaxique " +"abstrait et permet les modifications des nœuds." + +#: ../Doc/library/ast.rst:231 +msgid "" +"The :class:`NodeTransformer` will walk the AST and use the return value of " +"the visitor methods to replace or remove the old node. If the return value " +"of the visitor method is ``None``, the node will be removed from its " +"location, otherwise it is replaced with the return value. The return value " +"may be the original node in which case no replacement takes place." +msgstr "" +"Le :class:`NodeTransformer` traverse l'AST et utilise la valeur renvoyée par " +"les méthodes du visiteur pour remplacer ou supprimer l'ancien nœud. Si la " +"valeur renvoyée par la méthode du visiteur est ``None``, le nœud est " +"supprimé de sa position, sinon il est remplacé par la valeur de retour. La " +"valeur de retour peut être le nœud original et dans ce cas, il n'y a pas de " +"remplacement. " + +#: ../Doc/library/ast.rst:237 +msgid "" +"Here is an example transformer that rewrites all occurrences of name lookups " +"(``foo``) to ``data['foo']``::" +msgstr "" +"Voici un exemple du *transformer* qui réécrit les occurrences du " +"dictionnaire (``foo``) en ``data['foo']`` ::" + +#: ../Doc/library/ast.rst:249 +msgid "" +"Keep in mind that if the node you're operating on has child nodes you must " +"either transform the child nodes yourself or call the :meth:`generic_visit` " +"method for the node first." +msgstr "" +"Gardez en tête que si un nœud sur lequel vous travaillez a des nœuds " +"enfants, vous devez transformer également ces nœuds enfant vous-même ou " +"appeler d'abord la méthode :meth:`generic_visit` sur le nœud." + +#: ../Doc/library/ast.rst:253 +msgid "" +"For nodes that were part of a collection of statements (that applies to all " +"statement nodes), the visitor may also return a list of nodes rather than " +"just a single node." +msgstr "" +"Pour les nœuds qui font partie d'une collection d'instructions (cela " +"s'applique à tous les nœuds instruction), le visiteur peut aussi renvoyer la " +"liste des nœuds plutôt qu'un seul nœud." + +#: ../Doc/library/ast.rst:257 +msgid "Usually you use the transformer like this::" +msgstr "Utilisation typique du *transformer* ::" + +#: ../Doc/library/ast.rst:264 +msgid "" +"Return a formatted dump of the tree in *node*. This is mainly useful for " +"debugging purposes. The returned string will show the names and the values " +"for fields. This makes the code impossible to evaluate, so if evaluation is " +"wanted *annotate_fields* must be set to ``False``. Attributes such as line " +"numbers and column offsets are not dumped by default. If this is wanted, " +"*include_attributes* can be set to ``True``." +msgstr "" +"Renvoie un *dump* formaté de l'arbre dans *node*. C'est principalement utile " +"à des fins de débogage. La chaîne de caractères renvoyée présente les noms " +"et valeurs des champs. Cela rend le code impossible à évaluer, si l'on " +"souhaite évaluer ce code, l'option *annotate_fields* doit être définie comme " +"``False``. Les attributs comme les numéros de ligne et les décalages de " +"colonne ne sont pas récupérés par défaut. Si l'on souhaite les récupérer, " +"l'option *include_attributes* peut être définie comme ``True``." + +#: ../Doc/library/ast.rst:273 +msgid "" +"`Green Tree Snakes `_, an external " +"documentation resource, has good details on working with Python ASTs." +msgstr "" +"`Green Tree Snakes `_, une " +"ressource documentaire externe, qui possède plus de détails pour travailler " +"avec des ASTs Python." diff --git a/library/asynchat.po b/library/asynchat.po new file mode 100644 index 000000000..301509446 --- /dev/null +++ b/library/asynchat.po @@ -0,0 +1,317 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-10-06 17:04+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.1.1\n" + +#: ../Doc/library/asynchat.rst:2 +msgid ":mod:`asynchat` --- Asynchronous socket command/response handler" +msgstr "" +":mod:`asynchat` --- Gestionnaire d'interfaces de connexion (*socket*) " +"commande/réponse asynchrones" + +#: ../Doc/library/asynchat.rst:10 +msgid "**Source code:** :source:`Lib/asynchat.py`" +msgstr "*Code source :** :source:`Lib/asynchat.py`" + +#: ../Doc/library/asynchat.rst:12 +msgid "Please use :mod:`asyncio` instead." +msgstr "Utilisez :mod:`asyncio` à la place." + +#: ../Doc/library/asynchat.rst:19 +msgid "" +"This module exists for backwards compatibility only. For new code we " +"recommend using :mod:`asyncio`." +msgstr "" +"Ce module n'existe que pour des raisons de rétrocompatibilité. Pour du code " +"nouveau, l'utilisation de :mod:`asyncio` est recommandée." + +#: ../Doc/library/asynchat.rst:22 +msgid "" +"This module builds on the :mod:`asyncore` infrastructure, simplifying " +"asynchronous clients and servers and making it easier to handle protocols " +"whose elements are terminated by arbitrary strings, or are of variable " +"length. :mod:`asynchat` defines the abstract class :class:`async_chat` that " +"you subclass, providing implementations of the :meth:`collect_incoming_data` " +"and :meth:`found_terminator` methods. It uses the same asynchronous loop as :" +"mod:`asyncore`, and the two types of channel, :class:`asyncore.dispatcher` " +"and :class:`asynchat.async_chat`, can freely be mixed in the channel map. " +"Typically an :class:`asyncore.dispatcher` server channel generates new :" +"class:`asynchat.async_chat` channel objects as it receives incoming " +"connection requests." +msgstr "" +"Ce module s'appuie sur l'infrastructure de :mod:`asyncore`, en simplifiant " +"les clients et serveurs asynchrones et en rendant plus facile la gestion de " +"protocoles dont les éléments finissent par une chaine arbitraire, ou sont de " +"longueur variable. :mod:`asynchat` définit une classe abstraite :class:" +"`async_chat` dont vous héritez, et qui fournit des implémentations des " +"méthodes :meth:`collect_incoming_data` et :meth:`found_terminator`. Il " +"utilise la même boucle asynchrone que :mod:`asyncore`, et deux types de " +"canaux, :class:`asyncore.dispatcher` et :class:`asynchat.async_chat`, qui " +"peuvent être librement mélangés dans la carte des canaux. Habituellement, un " +"canal de serveur :class:`asyncore.dispatcher` génère de nouveaux canaux " +"d'objets :class:`asynchat.async_chat` à la réception de requêtes de " +"connexion." + +#: ../Doc/library/asynchat.rst:37 +msgid "" +"This class is an abstract subclass of :class:`asyncore.dispatcher`. To make " +"practical use of the code you must subclass :class:`async_chat`, providing " +"meaningful :meth:`collect_incoming_data` and :meth:`found_terminator` " +"methods. The :class:`asyncore.dispatcher` methods can be used, although not " +"all make sense in a message/response context." +msgstr "" +"Cette classe est une sous-classe abstraite de :class:`asyncore.dispatcher`. " +"Pour en faire un usage pratique, vous devez créer une classe héritant de :" +"class:`async_chat`, et implémentant des méthodes :meth:" +"`collect_incoming_data` et :meth:`found_terminator` sensées. Les méthodes " +"de :class:`asyncore.dispatcher` peuvent être utilisées, même si toutes " +"n'ont pas de sens dans un contexte de messages/réponse." + +#: ../Doc/library/asynchat.rst:44 +msgid "" +"Like :class:`asyncore.dispatcher`, :class:`async_chat` defines a set of " +"events that are generated by an analysis of socket conditions after a :c:" +"func:`select` call. Once the polling loop has been started the :class:" +"`async_chat` object's methods are called by the event-processing framework " +"with no action on the part of the programmer." +msgstr "" +"Comme :class:`asyncore.dispatcher`, :class:`async_chat` définit un ensemble " +"d’événements générés par une analyse de l'état des interfaces de connexion " +"(*socket* en anglais) après un appel à :c:func:`select`. Une fois que la " +"boucle de scrutation (*polling* en anglais) a été lancée, les méthodes des " +"objets :class:`async_chat` sont appelées par le *framework* de traitement " +"d’événements sans que le programmeur n'ait à le spécifier." + +#: ../Doc/library/asynchat.rst:50 +msgid "" +"Two class attributes can be modified, to improve performance, or possibly " +"even to conserve memory." +msgstr "" +"Deux attributs de classe peuvent être modifiés, pour améliorer la " +"performance, ou potentiellement pour économiser de la mémoire." + +#: ../Doc/library/asynchat.rst:56 +msgid "The asynchronous input buffer size (default ``4096``)." +msgstr "La taille du tampon d'entrées asynchrones (``4096`` par défaut)." + +#: ../Doc/library/asynchat.rst:61 +msgid "The asynchronous output buffer size (default ``4096``)." +msgstr "La taille du tampon de sorties asynchrones (``4096`` par défaut)." + +#: ../Doc/library/asynchat.rst:63 +msgid "" +"Unlike :class:`asyncore.dispatcher`, :class:`async_chat` allows you to " +"define a :abbr:`FIFO (first-in, first-out)` queue of *producers*. A producer " +"need have only one method, :meth:`more`, which should return data to be " +"transmitted on the channel. The producer indicates exhaustion (*i.e.* that " +"it contains no more data) by having its :meth:`more` method return the empty " +"bytes object. At this point the :class:`async_chat` object removes the " +"producer from the queue and starts using the next producer, if any. When the " +"producer queue is empty the :meth:`handle_write` method does nothing. You " +"use the channel object's :meth:`set_terminator` method to describe how to " +"recognize the end of, or an important breakpoint in, an incoming " +"transmission from the remote endpoint." +msgstr "" +"Contrairement à :class:`asyncore.dispatcher`, :class:`async_chat` permet de " +"définir une queue :abbr:`FIFO (first-in, first-out)` de *producteurs*. Un " +"producteur nécessite seulement une méthode, :meth:`more`, qui renvoie la " +"donnée à transmettre au canal. Le producteur indique son épuisement (*c.-à-d." +"* qu'il ne contiens plus de données) en ne retournant avec sa méthode :meth:" +"`more` l'objet bytes vide. L'objet :class:`async_chat` retire alors le " +"producteur de la queue et commence à utiliser le producteur suivant, si il y " +"en à un. Quand la queue de producteurs est vide, la méthode :meth:" +"`handle_write` ne fait rien. La méthode :meth:`set_terminator` de l'objet du " +"canal est utilisé pour décrire comment reconnaître la fin, ou la présence " +"d'un point d'arrêt, dans in transmission entrante depuis le point d’accès " +"distant." + +#: ../Doc/library/asynchat.rst:76 +msgid "" +"To build a functioning :class:`async_chat` subclass your input methods :" +"meth:`collect_incoming_data` and :meth:`found_terminator` must handle the " +"data that the channel receives asynchronously. The methods are described " +"below." +msgstr "" +"Pour construire une sous classe fonctionnelle de :class:`async_chat` pour " +"vos méthodes d'entrées :meth:`collect_incoming_data` et :meth:" +"`found_terminator` doivent gérer la donnée que le canal reçoit de manière " +"asynchrone. Ces méthodes sont décrites ci-dessous." + +#: ../Doc/library/asynchat.rst:84 +msgid "" +"Pushes a ``None`` on to the producer queue. When this producer is popped off " +"the queue it causes the channel to be closed." +msgstr "" +"Pousse un ``None`` sur la pile de producteurs. Quand ce producteur est " +"récupéré dans la queue, le canal est fermé." + +#: ../Doc/library/asynchat.rst:90 +msgid "" +"Called with *data* holding an arbitrary amount of received data. The " +"default method, which must be overridden, raises a :exc:" +"`NotImplementedError` exception." +msgstr "" +"Appelé avec *data* contenant une quantité arbitraire de données. La méthode " +"par défaut, qui doit être écrasée, lève une :exc:`NotImplementedError`." + +#: ../Doc/library/asynchat.rst:97 +msgid "" +"In emergencies this method will discard any data held in the input and/or " +"output buffers and the producer queue." +msgstr "" +"En cas d'urgence, cette méthode va supprimer tout donnée présente dans les " +"tampons d'entrée et/ou de sortie dans la queue de producteurs." + +#: ../Doc/library/asynchat.rst:103 +msgid "" +"Called when the incoming data stream matches the termination condition set " +"by :meth:`set_terminator`. The default method, which must be overridden, " +"raises a :exc:`NotImplementedError` exception. The buffered input data " +"should be available via an instance attribute." +msgstr "" +"Appelée quand le flux de donné corresponds à la condition de fin décrite " +"par :meth:`set_terminator`. La méthode par défaut, qui doit être écrasée, " +"lève une :exc:`NotImplementedError`. Les données entrantes mise en tampon " +"devraient être disponible via un attribut de l'instance." + +#: ../Doc/library/asynchat.rst:111 +msgid "Returns the current terminator for the channel." +msgstr "Renvoie le terminateur courant pour le canal." + +#: ../Doc/library/asynchat.rst:116 +msgid "" +"Pushes data on to the channel's queue to ensure its transmission. This is " +"all you need to do to have the channel write the data out to the network, " +"although it is possible to use your own producers in more complex schemes to " +"implement encryption and chunking, for example." +msgstr "" +"Pousse *data* sur la pile du canal pour assurer sa transmission. C'est tout " +"ce dont on a besoin pour que le canal envoie des données sur le réseau. " +"Cependant, il est possible d'utiliser vos propres producteurs dans des " +"schémas plus complexes qui implémentent de la cryptographie et du *chunking* " +"par exemple." + +#: ../Doc/library/asynchat.rst:124 +msgid "" +"Takes a producer object and adds it to the producer queue associated with " +"the channel. When all currently-pushed producers have been exhausted the " +"channel will consume this producer's data by calling its :meth:`more` method " +"and send the data to the remote endpoint." +msgstr "" +"Prends un objet producteur l'ajoute à la queue de producteurs associée au " +"canal. Quand tout les producteurs actuellement poussés ont été épuisé, le " +"canal consomme les données de ce producteur en appelant sa méthode :meth:" +"`more` et envoie les données au point d’accès distant." + +#: ../Doc/library/asynchat.rst:132 +msgid "" +"Sets the terminating condition to be recognized on the channel. ``term`` " +"may be any of three types of value, corresponding to three different ways to " +"handle incoming protocol data." +msgstr "" +"Définit le marqueur de fin que le canal doit reconnaître. ``term`` peut être " +"n'importe lequel des trois types de valeurs, correspondant aux trois " +"différentes manières de gérer les données entrantes." + +#: ../Doc/library/asynchat.rst:137 +msgid "term" +msgstr "*term*" + +#: ../Doc/library/asynchat.rst:137 +msgid "Description" +msgstr "Description" + +#: ../Doc/library/asynchat.rst:139 +msgid "*string*" +msgstr "*string*" + +#: ../Doc/library/asynchat.rst:139 +msgid "" +"Will call :meth:`found_terminator` when the string is found in the input " +"stream" +msgstr "" +"Appellera :meth:`found_terminator` quand la chaîne est trouvée dans le flux " +"d'entré" + +#: ../Doc/library/asynchat.rst:142 +msgid "*integer*" +msgstr "*integer*" + +#: ../Doc/library/asynchat.rst:142 +msgid "" +"Will call :meth:`found_terminator` when the indicated number of characters " +"have been received" +msgstr "" +"Appellera :meth:`found_terminator` quand le nombre de caractère indiqué à " +"été reçu" + +#: ../Doc/library/asynchat.rst:146 +msgid "``None``" +msgstr "``None``" + +#: ../Doc/library/asynchat.rst:146 +msgid "The channel continues to collect data forever" +msgstr "Le canal continue de collecter des informations indéfiniment" + +#: ../Doc/library/asynchat.rst:150 +msgid "" +"Note that any data following the terminator will be available for reading by " +"the channel after :meth:`found_terminator` is called." +msgstr "" +"Notez que toute donnée située après le marqueur de fin sera accessible en " +"lecture par le canal après que :meth:`found_terminator` ai été appelé." + +#: ../Doc/library/asynchat.rst:157 +msgid "asynchat Example" +msgstr "Exemple *asynchat*" + +#: ../Doc/library/asynchat.rst:159 +msgid "" +"The following partial example shows how HTTP requests can be read with :" +"class:`async_chat`. A web server might create an :class:" +"`http_request_handler` object for each incoming client connection. Notice " +"that initially the channel terminator is set to match the blank line at the " +"end of the HTTP headers, and a flag indicates that the headers are being " +"read." +msgstr "" +"L'exemple partiel suivant montre comment des requêtes HTTP peuvent être lues " +"avec :class:`async_chat`. Un serveur web pourrait créer un objet :class:" +"`http_request_handler` pour chaque connections lient entrantes. Notez que " +"initialement, le marqueur de fin du canal est défini pour reconnaître les " +"lignes vides à la fin des entêtes HTTP, et une option indique que les " +"entêtes sont en train d'être lues." + +#: ../Doc/library/asynchat.rst:166 +msgid "" +"Once the headers have been read, if the request is of type POST (indicating " +"that further data are present in the input stream) then the ``Content-Length:" +"`` header is used to set a numeric terminator to read the right amount of " +"data from the channel." +msgstr "" +"Une fois que les entêtes ont été lues, si la requête est de type *POST* (ce " +"qui indique que davantage de données sont présent dans dans le flux entrant) " +"alors l'entête ``Content-Length:`` est utilisé pour définir un marqueur de " +"fin numérique pour lire la bonne quantité de donné depuis le canal." + +#: ../Doc/library/asynchat.rst:171 +msgid "" +"The :meth:`handle_request` method is called once all relevant input has been " +"marshalled, after setting the channel terminator to ``None`` to ensure that " +"any extraneous data sent by the web client are ignored. ::" +msgstr "" +"La méthode :meth:`handle_request` est appelée une fois que toutes les " +"données pertinentes ont été rassemblées, après avoir définit le marqueur de " +"fin à ``None`` pour s'assurer que toute données étrangères envoyées par le " +"client web sont ignorées. ::" diff --git a/library/asyncio-api-index.po b/library/asyncio-api-index.po new file mode 100644 index 000000000..b741f53fc --- /dev/null +++ b/library/asyncio-api-index.po @@ -0,0 +1,395 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/asyncio-api-index.rst:6 +msgid "High-level API Index" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:8 +msgid "This page lists all high-level async/await enabled asyncio APIs." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:12 +msgid "Tasks" +msgstr "Tâches" + +#: ../Doc/library/asyncio-api-index.rst:14 +msgid "" +"Utilities to run asyncio programs, create Tasks, and await on multiple " +"things with timeouts." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:21 +msgid ":func:`run`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:22 +msgid "Create event loop, run a coroutine, close the loop." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:24 +msgid ":func:`create_task`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:25 +msgid "Start an asyncio Task." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:27 +msgid "``await`` :func:`sleep`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:28 +msgid "Sleep for a number of seconds." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:30 +msgid "``await`` :func:`gather`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:31 +msgid "Schedule and wait for things concurrently." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:33 +msgid "``await`` :func:`wait_for`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:34 +msgid "Run with a timeout." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:36 +msgid "``await`` :func:`shield`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:37 +msgid "Shield from cancellation." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:39 +msgid "``await`` :func:`wait`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:40 +msgid "Monitor for completion." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:42 +msgid ":func:`current_task`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:43 +msgid "Return the current Task." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:45 +msgid ":func:`all_tasks`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:46 +msgid "Return all tasks for an event loop." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:48 +msgid ":class:`Task`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:49 +msgid "Task object." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:51 +msgid ":func:`run_coroutine_threadsafe`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:52 +msgid "Schedule a coroutine from another OS thread." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:54 +msgid "``for in`` :func:`as_completed`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:55 +msgid "Monitor for completion with a ``for`` loop." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:59 +#: ../Doc/library/asyncio-api-index.rst:95 +#: ../Doc/library/asyncio-api-index.rst:119 +#: ../Doc/library/asyncio-api-index.rst:155 +#: ../Doc/library/asyncio-api-index.rst:188 +#: ../Doc/library/asyncio-api-index.rst:213 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/asyncio-api-index.rst:60 +msgid "" +":ref:`Using asyncio.gather() to run things in parallel " +"`." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:63 +msgid "" +":ref:`Using asyncio.wait_for() to enforce a timeout " +"`." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:66 +msgid ":ref:`Cancellation `." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:68 +msgid ":ref:`Using asyncio.sleep() `." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:70 +msgid "See also the main :ref:`Tasks documentation page `." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:74 +msgid "Queues" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:76 +msgid "" +"Queues should be used to distribute work amongst multiple asyncio Tasks, " +"implement connection pools, and pub/sub patterns." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:84 +msgid ":class:`Queue`" +msgstr ":class:`Queue`" + +#: ../Doc/library/asyncio-api-index.rst:85 +msgid "A FIFO queue." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:87 +msgid ":class:`PriorityQueue`" +msgstr ":class:`PriorityQueue`" + +#: ../Doc/library/asyncio-api-index.rst:88 +msgid "A priority queue." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:90 +msgid ":class:`LifoQueue`" +msgstr ":class:`LifoQueue`" + +#: ../Doc/library/asyncio-api-index.rst:91 +msgid "A LIFO queue." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:96 +msgid "" +":ref:`Using asyncio.Queue to distribute workload between several Tasks " +"`." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:99 +msgid "See also the :ref:`Queues documentation page `." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:103 +msgid "Subprocesses" +msgstr "Sous-processus" + +#: ../Doc/library/asyncio-api-index.rst:105 +msgid "Utilities to spawn subprocesses and run shell commands." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:111 +msgid "``await`` :func:`create_subprocess_exec`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:112 +msgid "Create a subprocess." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:114 +msgid "``await`` :func:`create_subprocess_shell`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:115 +msgid "Run a shell command." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:120 +msgid ":ref:`Executing a shell command `." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:122 +msgid "See also the :ref:`subprocess APIs ` documentation." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:127 +msgid "Streams" +msgstr "Streams" + +#: ../Doc/library/asyncio-api-index.rst:129 +msgid "High-level APIs to work with network IO." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:135 +msgid "``await`` :func:`open_connection`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:136 +msgid "Establish a TCP connection." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:138 +msgid "``await`` :func:`open_unix_connection`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:139 +msgid "Establish a Unix socket connection." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:141 +msgid "``await`` :func:`start_server`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:142 +msgid "Start a TCP server." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:144 +msgid "``await`` :func:`start_unix_server`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:145 +msgid "Start a Unix socket server." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:147 +msgid ":class:`StreamReader`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:148 +msgid "High-level async/await object to receive network data." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:150 +msgid ":class:`StreamWriter`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:151 +msgid "High-level async/await object to send network data." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:156 +msgid ":ref:`Example TCP client `." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:158 +msgid "See also the :ref:`streams APIs ` documentation." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:163 +msgid "Synchronization" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:165 +msgid "Threading-like synchronization primitives that can be used in Tasks." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:171 +msgid ":class:`Lock`" +msgstr ":class:`Lock`" + +#: ../Doc/library/asyncio-api-index.rst:172 +msgid "A mutex lock." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:174 +msgid ":class:`Event`" +msgstr ":class:`Event`" + +#: ../Doc/library/asyncio-api-index.rst:175 +msgid "An event object." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:177 +msgid ":class:`Condition`" +msgstr ":class:`Condition`" + +#: ../Doc/library/asyncio-api-index.rst:178 +msgid "A condition object." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:180 +msgid ":class:`Semaphore`" +msgstr ":class:`Semaphore`" + +#: ../Doc/library/asyncio-api-index.rst:181 +msgid "A semaphore." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:183 +msgid ":class:`BoundedSemaphore`" +msgstr ":class:`BoundedSemaphore`" + +#: ../Doc/library/asyncio-api-index.rst:184 +msgid "A bounded semaphore." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:189 +msgid ":ref:`Using asyncio.Event `." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:191 +msgid "" +"See also the documentation of asyncio :ref:`synchronization primitives " +"`." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:196 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/asyncio-api-index.rst:203 +msgid ":exc:`asyncio.TimeoutError`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:204 +msgid "" +"Raised on timeout by functions like :func:`wait_for`. Keep in mind that " +"``asyncio.TimeoutError`` is **unrelated** to the built-in :exc:" +"`TimeoutError` exception." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:208 +msgid ":exc:`asyncio.CancelledError`" +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:209 +msgid "Raised when a Task is cancelled. See also :meth:`Task.cancel`." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:214 +msgid "" +":ref:`Handling CancelledError to run code on cancellation request " +"`." +msgstr "" + +#: ../Doc/library/asyncio-api-index.rst:217 +msgid "" +"See also the full list of :ref:`asyncio-specific exceptions `." +msgstr "" diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po new file mode 100644 index 000000000..0a93aefc6 --- /dev/null +++ b/library/asyncio-dev.po @@ -0,0 +1,275 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-10-13 17:38+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/asyncio-dev.rst:7 +msgid "Developing with asyncio" +msgstr "Programmer avec *asyncio*" + +#: ../Doc/library/asyncio-dev.rst:9 +msgid "" +"Asynchronous programming is different from classic \"sequential\" " +"programming." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:12 +msgid "" +"This page lists common mistakes and traps and explains how to avoid them." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:19 +msgid "Debug Mode" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:21 +msgid "" +"By default asyncio runs in production mode. In order to ease the " +"development asyncio has a *debug mode*." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:24 +msgid "There are several ways to enable asyncio debug mode:" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:26 +msgid "Setting the :envvar:`PYTHONASYNCIODEBUG` environment variable to ``1``." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:28 +msgid "Using the :option:`-X` ``dev`` Python command line option." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:30 +msgid "Passing ``debug=True`` to :func:`asyncio.run`." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:32 +msgid "Calling :meth:`loop.set_debug`." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:34 +msgid "In addition to enabling the debug mode, consider also:" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:36 +msgid "" +"setting the log level of the :ref:`asyncio logger ` to :py:" +"data:`logging.DEBUG`, for example the following snippet of code can be run " +"at startup of the application::" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:42 +msgid "" +"configuring the :mod:`warnings` module to display :exc:`ResourceWarning` " +"warnings. One way of doing that is by using the :option:`-W` ``default`` " +"command line option." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:47 +msgid "When the debug mode is enabled:" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:49 +msgid "" +"asyncio checks for :ref:`coroutines that were not awaited ` and logs them; this mitigates the \"forgotten await\" " +"pitfall." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:53 +msgid "" +"Many non-threadsafe asyncio APIs (such as :meth:`loop.call_soon` and :meth:" +"`loop.call_at` methods) raise an exception if they are called from a wrong " +"thread." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:57 +msgid "" +"The execution time of the I/O selector is logged if it takes too long to " +"perform an I/O operation." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:60 +msgid "" +"Callbacks taking longer than 100ms are logged. The :attr:`loop." +"slow_callback_duration` attribute can be used to set the minimum execution " +"duration in seconds that is considered \"slow\"." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:68 +msgid "Concurrency and Multithreading" +msgstr "Concourance et *multithreading*" + +#: ../Doc/library/asyncio-dev.rst:70 +msgid "" +"An event loop runs in a thread (typically the main thread) and executes all " +"callbacks and Tasks in its thread. While a Task is running in the event " +"loop, no other Tasks can run in the same thread. When a Task executes an " +"``await`` expression, the running Task gets suspended, and the event loop " +"executes the next Task." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:76 +msgid "" +"To schedule a callback from a different OS thread, the :meth:`loop." +"call_soon_threadsafe` method should be used. Example::" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:81 +msgid "" +"Almost all asyncio objects are not thread safe, which is typically not a " +"problem unless there is code that works with them from outside of a Task or " +"a callback. If there's a need for such code to call a low-level asyncio " +"API, the :meth:`loop.call_soon_threadsafe` method should be used, e.g.::" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:89 +msgid "" +"To schedule a coroutine object from a different OS thread, the :func:" +"`run_coroutine_threadsafe` function should be used. It returns a :class:" +"`concurrent.futures.Future` to access the result::" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:102 +msgid "" +"To handle signals and to execute subprocesses, the event loop must be run in " +"the main thread." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:105 +msgid "" +"The :meth:`loop.run_in_executor` method can be used with a :class:" +"`concurrent.futures.ThreadPoolExecutor` to execute blocking code in a " +"different OS thread without blocking the OS thread that the event loop runs " +"in." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:114 +msgid "Running Blocking Code" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:116 +msgid "" +"Blocking (CPU-bound) code should not be called directly. For example, if a " +"function performs a CPU-intensive calculation for 1 second, all concurrent " +"asyncio Tasks and IO operations would be delayed by 1 second." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:121 +msgid "" +"An executor can be used to run a task in a different thread or even in a " +"different process to avoid blocking block the OS thread with the event " +"loop. See the :meth:`loop.run_in_executor` method for more details." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:130 +msgid "Logging" +msgstr "Journalisation" + +#: ../Doc/library/asyncio-dev.rst:132 +msgid "" +"asyncio uses the :mod:`logging` module and all logging is performed via the " +"``\"asyncio\"`` logger." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:135 +msgid "" +"The default log level is :py:data:`logging.INFO`, which can be easily " +"adjusted::" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:144 +msgid "Detect never-awaited coroutines" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:146 +msgid "" +"When a coroutine function is called, but not awaited (e.g. ``coro()`` " +"instead of ``await coro()``) or the coroutine is not scheduled with :meth:" +"`asyncio.create_task`, asyncio will emit a :exc:`RuntimeWarning`::" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:161 ../Doc/library/asyncio-dev.rst:206 +msgid "Output::" +msgstr "Sortie ::" + +#: ../Doc/library/asyncio-dev.rst:166 ../Doc/library/asyncio-dev.rst:222 +msgid "Output in debug mode::" +msgstr "Affichage en mode débogage ::" + +#: ../Doc/library/asyncio-dev.rst:179 +msgid "" +"The usual fix is to either await the coroutine or call the :meth:`asyncio." +"create_task` function::" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:187 +msgid "Detect never-retrieved exceptions" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:189 +msgid "" +"If a :meth:`Future.set_exception` is called but the Future object is never " +"awaited on, the exception would never be propagated to the user code. In " +"this case, asyncio would emit a log message when the Future object is " +"garbage collected." +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:194 +msgid "Example of an unhandled exception::" +msgstr "" + +#: ../Doc/library/asyncio-dev.rst:217 +msgid "" +":ref:`Enable the debug mode ` to get the traceback where " +"the task was created::" +msgstr "" + +#~ msgid "Debug mode of asyncio" +#~ msgstr "Mode de débogage d'*asyncio*" + +#~ msgid "To enable all debug checks for an application:" +#~ msgstr "" +#~ "Pour activer toutes les vérifications de débogage pour une application :" + +#~ msgid "Examples debug checks:" +#~ msgstr "Exemples de vérifications de débogage :" + +#~ msgid "Log the execution time of the selector" +#~ msgstr "Enregistre le temps d'exécution du sélecteur dans le journal" + +#~ msgid "Cancellation" +#~ msgstr "Annulation" + +#~ msgid "Handle blocking functions correctly" +#~ msgstr "Gérer les fonctions bloquantes correctement" + +#~ msgid "Detect coroutine objects never scheduled" +#~ msgstr "Détecte les coroutines qui ne sont jamais exécutées" + +#~ msgid "Example with the bug::" +#~ msgstr "Exemple avec le bug ::" + +#~ msgid "The :meth:`Future.exception` method." +#~ msgstr "La méthode :meth:`Future.exception`." + +#~ msgid "Chain coroutines correctly" +#~ msgstr "Chaîner les coroutines correctement" + +#~ msgid "Actual output:" +#~ msgstr "Affichage obtenu :" + +#~ msgid "Or without ``asyncio.ensure_future()``::" +#~ msgstr "Ou sans ``asyncio.ensure_future()`` ::" diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po new file mode 100644 index 000000000..374c77793 --- /dev/null +++ b/library/asyncio-eventloop.po @@ -0,0 +1,1908 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-10 15:50+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/asyncio-eventloop.rst:6 +msgid "Event Loop" +msgstr "Boucle d'évènements" + +#: ../Doc/library/asyncio-eventloop.rst:10 +msgid "Preface" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:11 +msgid "" +"The event loop is the core of every asyncio application. Event loops run " +"asynchronous tasks and callbacks, perform network IO operations, and run " +"subprocesses." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:15 +msgid "" +"Application developers should typically use the high-level asyncio " +"functions, such as :func:`asyncio.run`, and should rarely need to reference " +"the loop object or call its methods. This section is intended mostly for " +"authors of lower-level code, libraries, and frameworks, who need finer " +"control over the event loop behavior." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:22 +msgid "Obtaining the Event Loop" +msgstr "Obtenir une boucle d'évènements" + +#: ../Doc/library/asyncio-eventloop.rst:23 +msgid "" +"The following low-level functions can be used to get, set, or create an " +"event loop:" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:28 +msgid "Return the running event loop in the current OS thread." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:30 +msgid "" +"If there is no running event loop a :exc:`RuntimeError` is raised. This " +"function can only be called from a coroutine or a callback." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:37 +msgid "" +"Get the current event loop. If there is no current event loop set in the " +"current OS thread and :func:`set_event_loop` has not yet been called, " +"asyncio will create a new event loop and set it as the current one." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:42 +msgid "" +"Because this function has rather complex behavior (especially when custom " +"event loop policies are in use), using the :func:`get_running_loop` function " +"is preferred to :func:`get_event_loop` in coroutines and callbacks." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:47 +msgid "" +"Consider also using the :func:`asyncio.run` function instead of using lower " +"level functions to manually create and close an event loop." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:52 +msgid "Set *loop* as a current event loop for the current OS thread." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:56 +msgid "Create a new event loop object." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:58 +msgid "" +"Note that the behaviour of :func:`get_event_loop`, :func:`set_event_loop`, " +"and :func:`new_event_loop` functions can be altered by :ref:`setting a " +"custom event loop policy `." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:64 +msgid "Contents" +msgstr "Sommaire" + +#: ../Doc/library/asyncio-eventloop.rst:65 +msgid "This documentation page contains the following sections:" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:67 +msgid "" +"The `Event Loop Methods`_ section is the reference documentation of the " +"event loop APIs;" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:70 +msgid "" +"The `Callback Handles`_ section documents the :class:`Handle` and :class:" +"`TimerHandle` instances which are returned from scheduling methods such as :" +"meth:`loop.call_soon` and :meth:`loop.call_later`;" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:74 +msgid "" +"The `Server Objects`_ section documents types returned from event loop " +"methods like :meth:`loop.create_server`;" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:77 +msgid "" +"The `Event Loop Implementations`_ section documents the :class:" +"`SelectorEventLoop` and :class:`ProactorEventLoop` classes;" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:80 +msgid "" +"The `Examples`_ section showcases how to work with some event loop APIs." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:87 +msgid "Event Loop Methods" +msgstr "Méthodes de la boucle d'évènements" + +#: ../Doc/library/asyncio-eventloop.rst:89 +msgid "Event loops have **low-level** APIs for the following:" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:97 +msgid "Running and stopping the loop" +msgstr "Démarrer et arrêter une boucle d'évènements" + +#: ../Doc/library/asyncio-eventloop.rst:101 +msgid "Run until the *future* (an instance of :class:`Future`) has completed." +msgstr "" +"Lance la boucle jusqu'à ce que *future* (une instance de :class:`Future`) " +"soit terminée." + +#: ../Doc/library/asyncio-eventloop.rst:104 +msgid "" +"If the argument is a :ref:`coroutine object ` it is implicitly " +"scheduled to run as a :class:`asyncio.Task`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:107 +msgid "Return the Future's result or raise its exception." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:111 +msgid "Run the event loop until :meth:`stop` is called." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:113 +msgid "" +"If :meth:`stop` is called before :meth:`run_forever()` is called, the loop " +"will poll the I/O selector once with a timeout of zero, run all callbacks " +"scheduled in response to I/O events (and those that were already scheduled), " +"and then exit." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:118 +msgid "" +"If :meth:`stop` is called while :meth:`run_forever` is running, the loop " +"will run the current batch of callbacks and then exit. Note that new " +"callbacks scheduled by callbacks will not run in this case; instead, they " +"will run the next time :meth:`run_forever` or :meth:`run_until_complete` is " +"called." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:126 +msgid "Stop the event loop." +msgstr "Arrête l'exécution de la boucle d'évènements." + +#: ../Doc/library/asyncio-eventloop.rst:130 +msgid "Return ``True`` if the event loop is currently running." +msgstr "Renvoie ``True`` si la boucle d'évènements est démarrée." + +#: ../Doc/library/asyncio-eventloop.rst:134 +msgid "Return ``True`` if the event loop was closed." +msgstr "Renvoie ``True`` si la boucle d'évènements est arrêtée." + +#: ../Doc/library/asyncio-eventloop.rst:138 +msgid "Close the event loop." +msgstr "Arrête la boucle d'évènements." + +#: ../Doc/library/asyncio-eventloop.rst:140 +msgid "" +"The loop must not be running when this function is called. Any pending " +"callbacks will be discarded." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:143 +msgid "" +"This method clears all queues and shuts down the executor, but does not wait " +"for the executor to finish." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:146 +msgid "" +"This method is idempotent and irreversible. No other methods should be " +"called after the event loop is closed." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:151 +msgid "" +"Schedule all currently open :term:`asynchronous generator` objects to close " +"with an :meth:`~agen.aclose()` call. After calling this method, the event " +"loop will issue a warning if a new asynchronous generator is iterated. This " +"should be used to reliably finalize all scheduled asynchronous generators." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:157 +msgid "" +"Note that there is no need to call this function when :func:`asyncio.run` is " +"used." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:160 +#: ../Doc/library/asyncio-eventloop.rst:1001 +#: ../Doc/library/asyncio-eventloop.rst:1363 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/asyncio-eventloop.rst:172 +msgid "Scheduling callbacks" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:176 +msgid "" +"Schedule a *callback* to be called with *args* arguments at the next " +"iteration of the event loop." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:179 +msgid "" +"Callbacks are called in the order in which they are registered. Each " +"callback will be called exactly once." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:182 +#: ../Doc/library/asyncio-eventloop.rst:245 +msgid "" +"An optional keyword-only *context* argument allows specifying a custom :" +"class:`contextvars.Context` for the *callback* to run in. The current " +"context is used when no *context* is provided." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:186 +msgid "" +"An instance of :class:`asyncio.Handle` is returned, which can be used later " +"to cancel the callback." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:189 +msgid "This method is not thread-safe." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:193 +msgid "" +"A thread-safe variant of :meth:`call_soon`. Must be used to schedule " +"callbacks *from another thread*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:196 +msgid "" +"See the :ref:`concurrency and multithreading ` " +"section of the documentation." +msgstr "" +"Voir la section :ref:`exécution concurrente et multi-fils d'exécution " +"` de la documentation." + +#: ../Doc/library/asyncio-eventloop.rst:199 +#: ../Doc/library/asyncio-eventloop.rst:249 +#: ../Doc/library/asyncio-eventloop.rst:269 +msgid "" +"The *context* keyword-only parameter was added. See :pep:`567` for more " +"details." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:207 +msgid "" +"Most :mod:`asyncio` scheduling functions don't allow passing keyword " +"arguments. To do that, use :func:`functools.partial`::" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:214 +msgid "" +"Using partial objects is usually more convenient than using lambdas, as " +"asyncio can render partial objects better in debug and error messages." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:222 +msgid "Scheduling delayed callbacks" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:224 +msgid "" +"Event loop provides mechanisms to schedule callback functions to be called " +"at some point in the future. Event loop uses monotonic clocks to track time." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:231 +msgid "" +"Schedule *callback* to be called after the given *delay* number of seconds " +"(can be either an int or a float)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:234 +#: ../Doc/library/asyncio-eventloop.rst:266 +msgid "" +"An instance of :class:`asyncio.TimerHandle` is returned which can be used to " +"cancel the callback." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:237 +msgid "" +"*callback* will be called exactly once. If two callbacks are scheduled for " +"exactly the same time, the order in which they are called is undefined." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:241 +msgid "" +"The optional positional *args* will be passed to the callback when it is " +"called. If you want the callback to be called with keyword arguments use :" +"func:`functools.partial`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:253 +msgid "" +"In Python 3.7.0 and earlier with the default event loop implementation, the " +"*delay* could not exceed one day. This has been fixed in Python 3.7.1." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:260 +msgid "" +"Schedule *callback* to be called at the given absolute timestamp *when* (an " +"int or a float), using the same time reference as :meth:`loop.time`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:264 +msgid "This method's behavior is the same as :meth:`call_later`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:273 +msgid "" +"In Python 3.7.0 and earlier with the default event loop implementation, the " +"difference between *when* and the current time could not exceed one day. " +"This has been fixed in Python 3.7.1." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:280 +msgid "" +"Return the current time, as a :class:`float` value, according to the event " +"loop's internal monotonic clock." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:284 +msgid "" +"In Python 3.7 and earlier timeouts (relative *delay* or absolute *when*) " +"should not exceed one day. This has been fixed in Python 3.8." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:290 +msgid "The :func:`asyncio.sleep` function." +msgstr "La fonction :func:`asyncio.sleep`." + +#: ../Doc/library/asyncio-eventloop.rst:294 +msgid "Creating Futures and Tasks" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:298 +msgid "Create an :class:`asyncio.Future` object attached to the event loop." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:300 +msgid "" +"This is the preferred way to create Futures in asyncio. This lets third-" +"party event loops provide alternative implementations of the Future object " +"(with better performance or instrumentation)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:308 +msgid "" +"Schedule the execution of a :ref:`coroutine`. Return a :class:`Task` object." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:311 +msgid "" +"Third-party event loops can use their own subclass of :class:`Task` for " +"interoperability. In this case, the result type is a subclass of :class:" +"`Task`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:317 +msgid "Set a task factory that will be used by :meth:`loop.create_task`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:320 +msgid "" +"If *factory* is ``None`` the default task factory will be set. Otherwise, " +"*factory* must be a *callable* with the signature matching ``(loop, coro)``, " +"where *loop* is a reference to the active event loop, and *coro* is a " +"coroutine object. The callable must return a :class:`asyncio.Future`-" +"compatible object." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:328 +msgid "Return a task factory or ``None`` if the default one is in use." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:332 +msgid "Opening network connections" +msgstr "Créer des connexions" + +#: ../Doc/library/asyncio-eventloop.rst:340 +msgid "" +"Open a streaming transport connection to a given address specified by *host* " +"and *port*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:343 +msgid "" +"The socket family can be either :py:data:`~socket.AF_INET` or :py:data:" +"`~socket.AF_INET6` depending on *host* (or the *family* argument, if " +"provided)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:347 +msgid "The socket type will be :py:data:`~socket.SOCK_STREAM`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:349 +#: ../Doc/library/asyncio-eventloop.rst:917 +#: ../Doc/library/asyncio-eventloop.rst:933 +msgid "" +"*protocol_factory* must be a callable returning an :ref:`asyncio protocol " +"` implementation." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:352 +msgid "" +"This method will try to establish the connection in the background. When " +"successful, it returns a ``(transport, protocol)`` pair." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:355 +msgid "The chronological synopsis of the underlying operation is as follows:" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:357 +msgid "" +"The connection is established and a :ref:`transport ` is " +"created for it." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:360 +msgid "" +"*protocol_factory* is called without arguments and is expected to return a :" +"ref:`protocol ` instance." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:363 +msgid "" +"The protocol instance is coupled with the transport by calling its :meth:" +"`~BaseProtocol.connection_made` method." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:366 +msgid "A ``(transport, protocol)`` tuple is returned on success." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:368 +msgid "" +"The created transport is an implementation-dependent bidirectional stream." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:371 +#: ../Doc/library/asyncio-eventloop.rst:445 +msgid "Other arguments:" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:373 +msgid "" +"*ssl*: if given and not false, a SSL/TLS transport is created (by default a " +"plain TCP transport is created). If *ssl* is a :class:`ssl.SSLContext` " +"object, this context is used to create the transport; if *ssl* is :const:" +"`True`, a default context returned from :func:`ssl.create_default_context` " +"is used." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:379 +msgid ":ref:`SSL/TLS security considerations `" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:381 +msgid "" +"*server_hostname* sets or overrides the hostname that the target server's " +"certificate will be matched against. Should only be passed if *ssl* is not " +"``None``. By default the value of the *host* argument is used. If *host* " +"is empty, there is no default and you must pass a value for " +"*server_hostname*. If *server_hostname* is an empty string, hostname " +"matching is disabled (which is a serious security risk, allowing for " +"potential man-in-the-middle attacks)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:389 +msgid "" +"*family*, *proto*, *flags* are the optional address family, protocol and " +"flags to be passed through to getaddrinfo() for *host* resolution. If given, " +"these should all be integers from the corresponding :mod:`socket` module " +"constants." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:394 +msgid "" +"*sock*, if given, should be an existing, already connected :class:`socket." +"socket` object to be used by the transport. If *sock* is given, none of " +"*host*, *port*, *family*, *proto*, *flags* and *local_addr* should be " +"specified." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:399 +msgid "" +"*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " +"the socket to locally. The *local_host* and *local_port* are looked up " +"using ``getaddrinfo()``, similarly to *host* and *port*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:403 +#: ../Doc/library/asyncio-eventloop.rst:726 +msgid "" +"*ssl_handshake_timeout* is (for a TLS connection) the time in seconds to " +"wait for the TLS handshake to complete before aborting the connection. " +"``60.0`` seconds if ``None`` (default)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:409 +#: ../Doc/library/asyncio-eventloop.rst:511 +#: ../Doc/library/asyncio-eventloop.rst:664 +msgid "The *ssl_handshake_timeout* parameter." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:413 +#: ../Doc/library/asyncio-eventloop.rst:594 +msgid "" +"The socket option :py:data:`~socket.TCP_NODELAY` is set by default for all " +"TCP connections." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:418 +#: ../Doc/library/asyncio-eventloop.rst:599 +msgid "Added support for SSL/TLS in :class:`ProactorEventLoop`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:422 +msgid "" +"The :func:`open_connection` function is a high-level alternative API. It " +"returns a pair of (:class:`StreamReader`, :class:`StreamWriter`) that can be " +"used directly in async/await code." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:432 +msgid "Create a datagram connection." +msgstr "Créer une connexion par datagramme" + +#: ../Doc/library/asyncio-eventloop.rst:434 +msgid "" +"The socket family can be either :py:data:`~socket.AF_INET`, :py:data:" +"`~socket.AF_INET6`, or :py:data:`~socket.AF_UNIX`, depending on *host* (or " +"the *family* argument, if provided)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:438 +msgid "The socket type will be :py:data:`~socket.SOCK_DGRAM`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:440 +#: ../Doc/library/asyncio-eventloop.rst:536 +#: ../Doc/library/asyncio-eventloop.rst:647 +msgid "" +"*protocol_factory* must be a callable returning a :ref:`protocol ` implementation." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:443 +#: ../Doc/library/asyncio-eventloop.rst:497 +msgid "A tuple of ``(transport, protocol)`` is returned on success." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:447 +msgid "" +"*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " +"the socket to locally. The *local_host* and *local_port* are looked up " +"using :meth:`getaddrinfo`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:451 +msgid "" +"*remote_addr*, if given, is a ``(remote_host, remote_port)`` tuple used to " +"connect the socket to a remote address. The *remote_host* and *remote_port* " +"are looked up using :meth:`getaddrinfo`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:455 +msgid "" +"*family*, *proto*, *flags* are the optional address family, protocol and " +"flags to be passed through to :meth:`getaddrinfo` for *host* resolution. If " +"given, these should all be integers from the corresponding :mod:`socket` " +"module constants." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:460 +#: ../Doc/library/asyncio-eventloop.rst:568 +msgid "" +"*reuse_address* tells the kernel to reuse a local socket in ``TIME_WAIT`` " +"state, without waiting for its natural timeout to expire. If not specified " +"will automatically be set to ``True`` on Unix." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:465 +msgid "" +"*reuse_port* tells the kernel to allow this endpoint to be bound to the same " +"port as other existing endpoints are bound to, so long as they all set this " +"flag when being created. This option is not supported on Windows and some " +"Unixes. If the :py:data:`~socket.SO_REUSEPORT` constant is not defined then " +"this capability is unsupported." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:471 +msgid "" +"*allow_broadcast* tells the kernel to allow this endpoint to send messages " +"to the broadcast address." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:474 +msgid "" +"*sock* can optionally be specified in order to use a preexisting, already " +"connected, :class:`socket.socket` object to be used by the transport. If " +"specified, *local_addr* and *remote_addr* should be omitted (must be :const:" +"`None`)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:479 +msgid "" +"On Windows, with :class:`ProactorEventLoop`, this method is not supported." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:481 +msgid "" +"See :ref:`UDP echo client protocol ` and :" +"ref:`UDP echo server protocol ` examples." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:484 +msgid "" +"The *family*, *proto*, *flags*, *reuse_address*, *reuse_port, " +"*allow_broadcast*, and *sock* parameters were added." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:492 +msgid "Create a Unix connection." +msgstr "Créer une connexion Unix" + +#: ../Doc/library/asyncio-eventloop.rst:494 +msgid "" +"The socket family will be :py:data:`~socket.AF_UNIX`; socket type will be :" +"py:data:`~socket.SOCK_STREAM`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:499 +msgid "" +"*path* is the name of a Unix domain socket and is required, unless a *sock* " +"parameter is specified. Abstract Unix sockets, :class:`str`, :class:" +"`bytes`, and :class:`~pathlib.Path` paths are supported." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:504 +msgid "" +"See the documentation of the :meth:`loop.create_connection` method for " +"information about arguments to this method." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:508 +#: ../Doc/library/asyncio-eventloop.rst:628 +#: ../Doc/library/asyncio-eventloop.rst:984 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." + +#: ../Doc/library/asyncio-eventloop.rst:515 +msgid "The *path* parameter can now be a :term:`path-like object`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:519 +msgid "Creating network servers" +msgstr "Créer des serveurs" + +#: ../Doc/library/asyncio-eventloop.rst:529 +msgid "" +"Create a TCP server (socket type :data:`~socket.SOCK_STREAM`) listening on " +"*port* of the *host* address." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:532 +msgid "Returns a :class:`Server` object." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:534 +msgid "Arguments:" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:539 +msgid "" +"The *host* parameter can be set to several types which determine where the " +"server would be listening:" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:542 +msgid "" +"If *host* is a string, the TCP server is bound to a single network interface " +"specified by *host*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:545 +msgid "" +"If *host* is a sequence of strings, the TCP server is bound to all network " +"interfaces specified by the sequence." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:548 +msgid "" +"If *host* is an empty string or ``None``, all interfaces are assumed and a " +"list of multiple sockets will be returned (most likely one for IPv4 and " +"another one for IPv6)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:552 +msgid "" +"*family* can be set to either :data:`socket.AF_INET` or :data:`~socket." +"AF_INET6` to force the socket to use IPv4 or IPv6. If not set, the *family* " +"will be determined from host name (defaults to :data:`~socket.AF_UNSPEC`)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:557 +msgid "*flags* is a bitmask for :meth:`getaddrinfo`." +msgstr "*flags* est un masque de bits pour :meth:`getaddrinfo`." + +#: ../Doc/library/asyncio-eventloop.rst:559 +msgid "" +"*sock* can optionally be specified in order to use a preexisting socket " +"object. If specified, *host* and *port* must not be specified." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:562 +msgid "" +"*backlog* is the maximum number of queued connections passed to :meth:" +"`~socket.socket.listen` (defaults to 100)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:565 +msgid "" +"*ssl* can be set to an :class:`~ssl.SSLContext` instance to enable TLS over " +"the accepted connections." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:573 +msgid "" +"*reuse_port* tells the kernel to allow this endpoint to be bound to the same " +"port as other existing endpoints are bound to, so long as they all set this " +"flag when being created. This option is not supported on Windows." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:578 +msgid "" +"*ssl_handshake_timeout* is (for a TLS server) the time in seconds to wait " +"for the TLS handshake to complete before aborting the connection. ``60.0`` " +"seconds if ``None`` (default)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:582 +msgid "" +"*start_serving* set to ``True`` (the default) causes the created server to " +"start accepting connections immediately. When set to ``False``, the user " +"should await on :meth:`Server.start_serving` or :meth:`Server.serve_forever` " +"to make the server to start accepting connections." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:590 +msgid "Added *ssl_handshake_timeout* and *start_serving* parameters." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:603 +msgid "The *host* parameter can be a sequence of strings." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:607 +msgid "" +"The :func:`start_server` function is a higher-level alternative API that " +"returns a pair of :class:`StreamReader` and :class:`StreamWriter` that can " +"be used in an async/await code." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:616 +msgid "" +"Similar to :meth:`loop.create_server` but works with the :py:data:`~socket." +"AF_UNIX` socket family." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:619 +msgid "" +"*path* is the name of a Unix domain socket, and is required, unless a *sock* " +"argument is provided. Abstract Unix sockets, :class:`str`, :class:`bytes`, " +"and :class:`~pathlib.Path` paths are supported." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:624 +msgid "" +"See the documentation of the :meth:`loop.create_server` method for " +"information about arguments to this method." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:631 +msgid "The *ssl_handshake_timeout* and *start_serving* parameters." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:635 +msgid "The *path* parameter can now be a :class:`~pathlib.Path` object." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:640 +msgid "Wrap an already accepted connection into a transport/protocol pair." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:642 +msgid "" +"This method can be used by servers that accept connections outside of " +"asyncio but that use asyncio to handle them." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:645 +#: ../Doc/library/asyncio-eventloop.rst:712 +msgid "Parameters:" +msgstr "Paramètres :" + +#: ../Doc/library/asyncio-eventloop.rst:650 +msgid "" +"*sock* is a preexisting socket object returned from :meth:`socket.accept " +"`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:653 +msgid "" +"*ssl* can be set to an :class:`~ssl.SSLContext` to enable SSL over the " +"accepted connections." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:656 +msgid "" +"*ssl_handshake_timeout* is (for an SSL connection) the time in seconds to " +"wait for the SSL handshake to complete before aborting the connection. " +"``60.0`` seconds if ``None`` (default)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:660 +msgid "Returns a ``(transport, protocol)`` pair." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:670 +msgid "Transferring files" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:675 +msgid "" +"Send a *file* over a *transport*. Return the total number of bytes sent." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:678 +msgid "The method uses high-performance :meth:`os.sendfile` if available." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:680 +msgid "*file* must be a regular file object opened in binary mode." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:682 +#: ../Doc/library/asyncio-eventloop.rst:872 +msgid "" +"*offset* tells from where to start reading the file. If specified, *count* " +"is the total number of bytes to transmit as opposed to sending the file " +"until EOF is reached. File position is always updated, even when this method " +"raises an error, and :meth:`file.tell() ` can be used to " +"obtain the actual number of bytes sent." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:689 +msgid "" +"*fallback* set to ``True`` makes asyncio to manually read and send the file " +"when the platform does not support the sendfile system call (e.g. Windows or " +"SSL socket on Unix)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:693 +msgid "" +"Raise :exc:`SendfileNotAvailableError` if the system does not support the " +"*sendfile* syscall and *fallback* is ``False``." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:700 +msgid "TLS Upgrade" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:706 +msgid "Upgrade an existing transport-based connection to TLS." +msgstr "Convertit une connexion existante en connexion TLS." + +#: ../Doc/library/asyncio-eventloop.rst:708 +msgid "" +"Return a new transport instance, that the *protocol* must start using " +"immediately after the *await*. The *transport* instance passed to the " +"*start_tls* method should never be used again." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:714 +msgid "" +"*transport* and *protocol* instances that methods like :meth:`~loop." +"create_server` and :meth:`~loop.create_connection` return." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:718 +msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:720 +msgid "" +"*server_side* pass ``True`` when a server-side connection is being upgraded " +"(like the one created by :meth:`~loop.create_server`)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:723 +msgid "" +"*server_hostname*: sets or overrides the host name that the target server's " +"certificate will be matched against." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:734 +msgid "Watching file descriptors" +msgstr "Surveiller des descripteurs de fichiers" + +#: ../Doc/library/asyncio-eventloop.rst:738 +msgid "" +"Start monitoring the *fd* file descriptor for read availability and invoke " +"*callback* with the specified arguments once *fd* is available for reading." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:744 +msgid "Stop monitoring the *fd* file descriptor for read availability." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:748 +msgid "" +"Start monitoring the *fd* file descriptor for write availability and invoke " +"*callback* with the specified arguments once *fd* is available for writing." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:752 +#: ../Doc/library/asyncio-eventloop.rst:971 +msgid "" +"Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *callback*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:757 +msgid "Stop monitoring the *fd* file descriptor for write availability." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:759 +msgid "" +"See also :ref:`Platform Support ` section for some " +"limitations of these methods." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:764 +msgid "Working with socket objects directly" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:766 +msgid "" +"In general, protocol implementations that use transport-based APIs such as :" +"meth:`loop.create_connection` and :meth:`loop.create_server` are faster than " +"implementations that work with sockets directly. However, there are some use " +"cases when performance is not critical, and working with :class:`~socket." +"socket` objects directly is more convenient." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:775 +msgid "" +"Receive up to *nbytes* from *sock*. Asynchronous version of :meth:`socket." +"recv() `." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:778 +msgid "Return the received data as a bytes object." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:780 +#: ../Doc/library/asyncio-eventloop.rst:794 +#: ../Doc/library/asyncio-eventloop.rst:809 +#: ../Doc/library/asyncio-eventloop.rst:822 +#: ../Doc/library/asyncio-eventloop.rst:848 +#: ../Doc/library/asyncio-eventloop.rst:886 +msgid "*sock* must be a non-blocking socket." +msgstr "Le connecteur *sock* ne doit pas être bloquant." + +#: ../Doc/library/asyncio-eventloop.rst:782 +msgid "" +"Even though this method was always documented as a coroutine method, " +"releases before Python 3.7 returned a :class:`Future`. Since Python 3.7 this " +"is an ``async def`` method." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:789 +msgid "" +"Receive data from *sock* into the *buf* buffer. Modeled after the blocking :" +"meth:`socket.recv_into() ` method." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:792 +msgid "Return the number of bytes written to the buffer." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:800 +msgid "" +"Send *data* to the *sock* socket. Asynchronous version of :meth:`socket." +"sendall() `." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:803 +msgid "" +"This method continues to send to the socket until either all data in *data* " +"has been sent or an error occurs. ``None`` is returned on success. On " +"error, an exception is raised. Additionally, there is no way to determine " +"how much data, if any, was successfully processed by the receiving end of " +"the connection." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:811 +msgid "" +"Even though the method was always documented as a coroutine method, before " +"Python 3.7 it returned an :class:`Future`. Since Python 3.7, this is an " +"``async def`` method." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:818 +msgid "Connect *sock* to a remote socket at *address*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:820 +msgid "" +"Asynchronous version of :meth:`socket.connect() `." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:824 +msgid "" +"``address`` no longer needs to be resolved. ``sock_connect`` will try to " +"check if the *address* is already resolved by calling :func:`socket." +"inet_pton`. If not, :meth:`loop.getaddrinfo` will be used to resolve the " +"*address*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:833 +msgid "" +":meth:`loop.create_connection` and :func:`asyncio.open_connection() " +"`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:839 +msgid "" +"Accept a connection. Modeled after the blocking :meth:`socket.accept() " +"` method." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:842 +msgid "" +"The socket must be bound to an address and listening for connections. The " +"return value is a pair ``(conn, address)`` where *conn* is a *new* socket " +"object usable to send and receive data on the connection, and *address* is " +"the address bound to the socket on the other end of the connection." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:850 +msgid "" +"Even though the method was always documented as a coroutine method, before " +"Python 3.7 it returned a :class:`Future`. Since Python 3.7, this is an " +"``async def`` method." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:857 +msgid ":meth:`loop.create_server` and :func:`start_server`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:862 +msgid "" +"Send a file using high-performance :mod:`os.sendfile` if possible. Return " +"the total number of bytes sent." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:865 +msgid "" +"Asynchronous version of :meth:`socket.sendfile() `." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:867 +msgid "" +"*sock* must be a non-blocking :const:`socket.SOCK_STREAM` :class:`~socket." +"socket`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:870 +msgid "*file* must be a regular file object open in binary mode." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:879 +msgid "" +"*fallback*, when set to ``True``, makes asyncio manually read and send the " +"file when the platform does not support the sendfile syscall (e.g. Windows " +"or SSL socket on Unix)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:883 +msgid "" +"Raise :exc:`SendfileNotAvailableError` if the system does not support " +"*sendfile* syscall and *fallback* is ``False``." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:892 +msgid "DNS" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:897 +msgid "Asynchronous version of :meth:`socket.getaddrinfo`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:901 +msgid "Asynchronous version of :meth:`socket.getnameinfo`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:903 +msgid "" +"Both *getaddrinfo* and *getnameinfo* methods were always documented to " +"return a coroutine, but prior to Python 3.7 they were, in fact, returning :" +"class:`asyncio.Future` objects. Starting with Python 3.7 both methods are " +"coroutines." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:911 +msgid "Working with pipes" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:915 +msgid "Register the read end of *pipe* in the event loop." +msgstr "" +"Branche l'extrémité en lecture du tube *pipe* à la boucle d'évènements." + +#: ../Doc/library/asyncio-eventloop.rst:920 +msgid "*pipe* is a :term:`file-like object `." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:922 +msgid "" +"Return pair ``(transport, protocol)``, where *transport* supports the :class:" +"`ReadTransport` interface and *protocol* is an object instantiated by the " +"*protocol_factory*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:926 +#: ../Doc/library/asyncio-eventloop.rst:942 +msgid "" +"With :class:`SelectorEventLoop` event loop, the *pipe* is set to non-" +"blocking mode." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:931 +msgid "Register the write end of *pipe* in the event loop." +msgstr "Branche l'extrémité en écriture de *pipe* à la boucle d'évènements." + +#: ../Doc/library/asyncio-eventloop.rst:936 +msgid "*pipe* is :term:`file-like object `." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:938 +msgid "" +"Return pair ``(transport, protocol)``, where *transport* supports :class:" +"`WriteTransport` interface and *protocol* is an object instantiated by the " +"*protocol_factory*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:947 +msgid "" +":class:`SelectorEventLoop` does not support the above methods on Windows. " +"Use :class:`ProactorEventLoop` instead for Windows." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:952 +msgid "" +"The :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` methods." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:957 +msgid "Unix signals" +msgstr "Signaux Unix" + +#: ../Doc/library/asyncio-eventloop.rst:961 +msgid "Set *callback* as the handler for the *signum* signal." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:963 +msgid "" +"The callback will be invoked by *loop*, along with other queued callbacks " +"and runnable coroutines of that event loop. Unlike signal handlers " +"registered using :func:`signal.signal`, a callback registered with this " +"function is allowed to interact with the event loop." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:968 +msgid "" +"Raise :exc:`ValueError` if the signal number is invalid or uncatchable. " +"Raise :exc:`RuntimeError` if there is a problem setting up the handler." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:974 +msgid "" +"Like :func:`signal.signal`, this function must be invoked in the main thread." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:979 +msgid "Remove the handler for the *sig* signal." +msgstr "Supprime le gestionnaire du signal *sig*." + +#: ../Doc/library/asyncio-eventloop.rst:981 +msgid "" +"Return ``True`` if the signal handler was removed, or ``False`` if no " +"handler was set for the given signal." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:988 +msgid "The :mod:`signal` module." +msgstr "Le module :mod:`signal`." + +#: ../Doc/library/asyncio-eventloop.rst:992 +msgid "Executing code in thread or process pools" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:996 +msgid "Arrange for *func* to be called in the specified executor." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:998 +msgid "" +"The *executor* argument should be an :class:`concurrent.futures.Executor` " +"instance. The default executor is used if *executor* is ``None``." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1042 +msgid "This method returns a :class:`asyncio.Future` object." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1044 +msgid "" +"Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *func*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1047 +msgid "" +":meth:`loop.run_in_executor` no longer configures the ``max_workers`` of the " +"thread pool executor it creates, instead leaving it up to the thread pool " +"executor (:class:`~concurrent.futures.ThreadPoolExecutor`) to set the " +"default." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1056 +msgid "" +"Set *executor* as the default executor used by :meth:`run_in_executor`. " +"*executor* should be an instance of :class:`~concurrent.futures." +"ThreadPoolExecutor`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1060 +msgid "" +"Using an executor that is not an instance of :class:`~concurrent.futures." +"ThreadPoolExecutor` is deprecated and will trigger an error in Python 3.9." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1065 +msgid "" +"*executor* must be an instance of :class:`concurrent.futures." +"ThreadPoolExecutor`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1070 +msgid "Error Handling API" +msgstr "API de gestion d'erreur" + +#: ../Doc/library/asyncio-eventloop.rst:1072 +msgid "Allows customizing how exceptions are handled in the event loop." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1076 +msgid "Set *handler* as the new event loop exception handler." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1078 +msgid "" +"If *handler* is ``None``, the default exception handler will be set. " +"Otherwise, *handler* must be a callable with the signature matching ``(loop, " +"context)``, where ``loop`` is a reference to the active event loop, and " +"``context`` is a ``dict`` object containing the details of the exception " +"(see :meth:`call_exception_handler` documentation for details about context)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1088 +msgid "" +"Return the current exception handler, or ``None`` if no custom exception " +"handler was set." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1095 +msgid "Default exception handler." +msgstr "Gestionnaire d'exception par défaut." + +#: ../Doc/library/asyncio-eventloop.rst:1097 +msgid "" +"This is called when an exception occurs and no exception handler is set. " +"This can be called by a custom exception handler that wants to defer to the " +"default handler behavior." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1101 +msgid "" +"*context* parameter has the same meaning as in :meth:" +"`call_exception_handler`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1106 +msgid "Call the current event loop exception handler." +msgstr "" +"Appelle le gestionnaire d'exception de la boucle d'évènements actuelle." + +#: ../Doc/library/asyncio-eventloop.rst:1108 +msgid "" +"*context* is a ``dict`` object containing the following keys (new keys may " +"be introduced in future Python versions):" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1111 +msgid "'message': Error message;" +msgstr "``message`` : Message d'erreur ;" + +#: ../Doc/library/asyncio-eventloop.rst:1112 +msgid "'exception' (optional): Exception object;" +msgstr "``exception`` (optionnel): Un objet exception ;" + +#: ../Doc/library/asyncio-eventloop.rst:1113 +msgid "'future' (optional): :class:`asyncio.Future` instance;" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1114 +msgid "'handle' (optional): :class:`asyncio.Handle` instance;" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1115 +msgid "'protocol' (optional): :ref:`Protocol ` instance;" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1116 +msgid "'transport' (optional): :ref:`Transport ` instance;" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1117 +msgid "'socket' (optional): :class:`socket.socket` instance." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1121 +msgid "" +"This method should not be overloaded in subclassed event loops. For custom " +"exception handling, use the :meth:`set_exception_handler()` method." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1126 +msgid "Enabling debug mode" +msgstr "Active le mode débogage" + +#: ../Doc/library/asyncio-eventloop.rst:1130 +msgid "Get the debug mode (:class:`bool`) of the event loop." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1132 +msgid "" +"The default value is ``True`` if the environment variable :envvar:" +"`PYTHONASYNCIODEBUG` is set to a non-empty string, ``False`` otherwise." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1138 +msgid "Set the debug mode of the event loop." +msgstr "Active le mode débogage pour la boucle d'évènements." + +#: ../Doc/library/asyncio-eventloop.rst:1142 +msgid "" +"The new ``-X dev`` command line option can now also be used to enable the " +"debug mode." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1147 +msgid "The :ref:`debug mode of asyncio `." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1151 +msgid "Running Subprocesses" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1153 +msgid "" +"Methods described in this subsections are low-level. In regular async/await " +"code consider using the high-level :func:`asyncio.create_subprocess_shell` " +"and :func:`asyncio.create_subprocess_exec` convenience functions instead." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1160 +msgid "" +"The default asyncio event loop on **Windows** does not support subprocesses. " +"See :ref:`Subprocess Support on Windows ` for " +"details." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1168 +msgid "" +"Create a subprocess from one or more string arguments specified by *args*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1171 +msgid "*args* must be a list of strings represented by:" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1173 +msgid ":class:`str`;" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1174 +msgid "" +"or :class:`bytes`, encoded to the :ref:`filesystem encoding `." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1177 +msgid "" +"The first string specifies the program executable, and the remaining strings " +"specify the arguments. Together, string arguments form the ``argv`` of the " +"program." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1181 +msgid "" +"This is similar to the standard library :class:`subprocess.Popen` class " +"called with ``shell=False`` and the list of strings passed as the first " +"argument; however, where :class:`~subprocess.Popen` takes a single argument " +"which is list of strings, *subprocess_exec* takes multiple string arguments." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1187 +msgid "" +"The *protocol_factory* must be a callable returning a subclass of the :class:" +"`asyncio.SubprocessProtocol` class." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1190 +msgid "Other parameters:" +msgstr "Autres paramètres :" + +#: ../Doc/library/asyncio-eventloop.rst:1192 +msgid "" +"*stdin*: either a file-like object representing a pipe to be connected to " +"the subprocess's standard input stream using :meth:`~loop." +"connect_write_pipe`, or the :const:`subprocess.PIPE` constant (default). By " +"default a new pipe will be created and connected." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1198 +msgid "" +"*stdout*: either a file-like object representing the pipe to be connected to " +"the subprocess's standard output stream using :meth:`~loop." +"connect_read_pipe`, or the :const:`subprocess.PIPE` constant (default). By " +"default a new pipe will be created and connected." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1204 +msgid "" +"*stderr*: either a file-like object representing the pipe to be connected to " +"the subprocess's standard error stream using :meth:`~loop." +"connect_read_pipe`, or one of :const:`subprocess.PIPE` (default) or :const:" +"`subprocess.STDOUT` constants." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1210 +msgid "" +"By default a new pipe will be created and connected. When :const:`subprocess." +"STDOUT` is specified, the subprocess' standard error stream will be " +"connected to the same pipe as the standard output stream." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1215 +msgid "" +"All other keyword arguments are passed to :class:`subprocess.Popen` without " +"interpretation, except for *bufsize*, *universal_newlines* and *shell*, " +"which should not be specified at all." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1219 +msgid "" +"See the constructor of the :class:`subprocess.Popen` class for documentation " +"on other arguments." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1222 +msgid "" +"Returns a pair of ``(transport, protocol)``, where *transport* conforms to " +"the :class:`asyncio.SubprocessTransport` base class and *protocol* is an " +"object instantiated by the *protocol_factory*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1230 +msgid "" +"Create a subprocess from *cmd*, which can be a :class:`str` or a :class:" +"`bytes` string encoded to the :ref:`filesystem encoding `, using the platform's \"shell\" syntax." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1235 +msgid "" +"This is similar to the standard library :class:`subprocess.Popen` class " +"called with ``shell=True``." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1238 +msgid "" +"The *protocol_factory* must be a callable returning a subclass of the :class:" +"`SubprocessProtocol` class." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1241 +msgid "" +"See :meth:`~loop.subprocess_exec` for more details about the remaining " +"arguments." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1244 +msgid "" +"Returns a pair of ``(transport, protocol)``, where *transport* conforms to " +"the :class:`SubprocessTransport` base class and *protocol* is an object " +"instantiated by the *protocol_factory*." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1249 +msgid "" +"It is the application's responsibility to ensure that all whitespace and " +"special characters are quoted appropriately to avoid `shell injection " +"`_ " +"vulnerabilities. The :func:`shlex.quote` function can be used to properly " +"escape whitespace and special characters in strings that are going to be " +"used to construct shell commands." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1258 +msgid "Callback Handles" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1262 +msgid "" +"A callback wrapper object returned by :meth:`loop.call_soon`, :meth:`loop." +"call_soon_threadsafe`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1267 +msgid "" +"Cancel the callback. If the callback has already been canceled or executed, " +"this method has no effect." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1272 +msgid "Return ``True`` if the callback was cancelled." +msgstr "Renvoie ``True`` si la fonction de rappel à été annulé." + +#: ../Doc/library/asyncio-eventloop.rst:1278 +msgid "" +"A callback wrapper object returned by :meth:`loop.call_later`, and :meth:" +"`loop.call_at`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1281 +msgid "This class is a subclass of :class:`Handle`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1285 +msgid "Return a scheduled callback time as :class:`float` seconds." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1287 +msgid "" +"The time is an absolute timestamp, using the same time reference as :meth:" +"`loop.time`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1294 +msgid "Server Objects" +msgstr "Objets Serveur" + +#: ../Doc/library/asyncio-eventloop.rst:1296 +msgid "" +"Server objects are created by :meth:`loop.create_server`, :meth:`loop." +"create_unix_server`, :func:`start_server`, and :func:`start_unix_server` " +"functions." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1300 +msgid "Do not instantiate the class directly." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1304 +msgid "" +"*Server* objects are asynchronous context managers. When used in an ``async " +"with`` statement, it's guaranteed that the Server object is closed and not " +"accepting new connections when the ``async with`` statement is completed::" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1317 +msgid "Server object is an asynchronous context manager since Python 3.7." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1322 +msgid "" +"Stop serving: close listening sockets and set the :attr:`sockets` attribute " +"to ``None``." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1325 +msgid "" +"The sockets that represent existing incoming client connections are left " +"open." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1328 +msgid "" +"The server is closed asynchronously, use the :meth:`wait_closed` coroutine " +"to wait until the server is closed." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1333 +msgid "Return the event loop associated with the server object." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1339 +msgid "Start accepting connections." +msgstr "Commence à accepter les connexions." + +#: ../Doc/library/asyncio-eventloop.rst:1341 +msgid "" +"This method is idempotent, so it can be called when the server is already " +"being serving." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1344 +msgid "" +"The *start_serving* keyword-only parameter to :meth:`loop.create_server` " +"and :meth:`asyncio.start_server` allows creating a Server object that is not " +"accepting connections initially. In this case ``Server.start_serving()``, " +"or :meth:`Server.serve_forever` can be used to make the Server start " +"accepting connections." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1355 +msgid "" +"Start accepting connections until the coroutine is cancelled. Cancellation " +"of ``serve_forever`` task causes the server to be closed." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1359 +msgid "" +"This method can be called if the server is already accepting connections. " +"Only one ``serve_forever`` task can exist per one *Server* object." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1381 +msgid "Return ``True`` if the server is accepting new connections." +msgstr "Donne ``True`` si le serveur accepte de nouvelles connexions." + +#: ../Doc/library/asyncio-eventloop.rst:1387 +msgid "Wait until the :meth:`close` method completes." +msgstr "Attends que la méthode :meth:`close` se termine." + +#: ../Doc/library/asyncio-eventloop.rst:1391 +msgid "" +"List of :class:`socket.socket` objects the server is listening on, or " +"``None`` if the server is closed." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1394 +msgid "" +"Prior to Python 3.7 ``Server.sockets`` used to return an internal list of " +"server sockets directly. In 3.7 a copy of that list is returned." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1403 +msgid "Event Loop Implementations" +msgstr "Implémentations de boucle d'évènements" + +#: ../Doc/library/asyncio-eventloop.rst:1405 +msgid "" +"asyncio ships with two different event loop implementations: :class:" +"`SelectorEventLoop` and :class:`ProactorEventLoop`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1408 +msgid "" +"By default asyncio is configured to use :class:`SelectorEventLoop` on all " +"platforms." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1414 +msgid "An event loop based on the :mod:`selectors` module." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1416 +msgid "" +"Uses the most efficient *selector* available for the given platform. It is " +"also possible to manually configure the exact selector implementation to be " +"used::" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1428 +msgid ":ref:`Availability `: Unix, Windows." +msgstr ":ref:`Disponibilité ` : Unix, Windows." + +#: ../Doc/library/asyncio-eventloop.rst:1433 +msgid "An event loop for Windows that uses \"I/O Completion Ports\" (IOCP)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1436 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." + +#: ../Doc/library/asyncio-eventloop.rst:1437 +msgid "An example how to use :class:`ProactorEventLoop` on Windows::" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1448 +msgid "" +"`MSDN documentation on I/O Completion Ports `_." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1454 +msgid "Abstract base class for asyncio-compliant event loops." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1456 +msgid "" +"The :ref:`Event Loop Methods ` section lists all methods " +"that an alternative implementation of ``AbstractEventLoop`` should have " +"defined." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1462 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/asyncio-eventloop.rst:1464 +msgid "" +"Note that all examples in this section **purposefully** show how to use the " +"low-level event loop APIs, such as :meth:`loop.run_forever` and :meth:`loop." +"call_soon`. Modern asyncio applications rarely need to be written this way; " +"consider using the high-level functions like :func:`asyncio.run`." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1474 +msgid "Hello World with call_soon()" +msgstr "\"Hello World\" avec ``call_soon()``" + +#: ../Doc/library/asyncio-eventloop.rst:1476 +msgid "" +"An example using the :meth:`loop.call_soon` method to schedule a callback. " +"The callback displays ``\"Hello World\"`` and then stops the event loop::" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1500 +msgid "" +"A similar :ref:`Hello World ` example created with a coroutine " +"and the :func:`run` function." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1507 +msgid "Display the current date with call_later()" +msgstr "Afficher la date actuelle avec ``call_later()``" + +#: ../Doc/library/asyncio-eventloop.rst:1509 +msgid "" +"An example of a callback displaying the current date every second. The " +"callback uses the :meth:`loop.call_later` method to reschedule itself after " +"5 seconds, and then stops the event loop::" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1537 +msgid "" +"A similar :ref:`current date ` example created with a " +"coroutine and the :func:`run` function." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1544 +msgid "Watch a file descriptor for read events" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1546 +msgid "" +"Wait until a file descriptor received some data using the :meth:`loop." +"add_reader` method and then close the event loop::" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1584 +msgid "" +"A similar :ref:`example ` using " +"transports, protocols, and the :meth:`loop.create_connection` method." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1588 +msgid "" +"Another similar :ref:`example ` " +"using the high-level :func:`asyncio.open_connection` function and streams." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1596 +msgid "Set signal handlers for SIGINT and SIGTERM" +msgstr "Définit les gestionnaires de signaux pour *SIGINT* et *SIGTERM*" + +#: ../Doc/library/asyncio-eventloop.rst:1598 +msgid "(This ``signals`` example only works on Unix.)" +msgstr "(Cet exemple ne fonctionne que sur Unix.)" + +#: ../Doc/library/asyncio-eventloop.rst:1600 +msgid "" +"Register handlers for signals :py:data:`SIGINT` and :py:data:`SIGTERM` using " +"the :meth:`loop.add_signal_handler` method::" +msgstr "" + +#~ msgid "Returns running status of event loop." +#~ msgstr "Donne le status d'exécution de la boucle d'évènements." + +#~ msgid "Calls" +#~ msgstr "Appels" + +#~ msgid "Like :meth:`call_soon`, but thread safe." +#~ msgstr "Comme :meth:`call_soon` mais *thread safe*." + +#~ msgid "Delayed calls" +#~ msgstr "Appels différés" + +#~ msgid "Tasks" +#~ msgstr "Tâches" + +#~ msgid "Options that change how the connection is created:" +#~ msgstr "Options modifiant la création de la connexion :" + +#~ msgid "Options changing how the connection is created:" +#~ msgstr "Options modifiant la création de la connexion :" + +#~ msgid "Creating listening connections" +#~ msgstr "Attendre des connections" + +#~ msgid "Low-level socket operations" +#~ msgstr "Opérations bas niveau sur les *socket*" + +#~ msgid "Resolve host name" +#~ msgstr "Résout le nom d'hôte" + +#~ msgid "Add a handler for a signal." +#~ msgstr "Ajouter un gestionnaire (*handler*) pour un signal." + +#~ msgid "Executor" +#~ msgstr "Exécuteur" + +#~ msgid "Server listening on sockets." +#~ msgstr "Serveur écoutant sur des *sockets*." + +#~ msgid "Handle" +#~ msgstr "Handle" + +#~ msgid "This method is a :ref:`coroutine `." +#~ msgstr "Cette méthode est une :ref:`coroutine `." diff --git a/library/asyncio-exceptions.po b/library/asyncio-exceptions.po new file mode 100644 index 000000000..13562feee --- /dev/null +++ b/library/asyncio-exceptions.po @@ -0,0 +1,99 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/asyncio-exceptions.rst:8 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/asyncio-exceptions.rst:13 +msgid "The operation has exceeded the given deadline." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:16 +msgid "" +"This exception is different from the builtin :exc:`TimeoutError` exception." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:22 +msgid "The operation has been cancelled." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:24 +msgid "" +"This exception can be caught to perform custom operations when asyncio Tasks " +"are cancelled. In almost all situations the exception must be re-raised." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:30 +msgid "" +"This exception is a subclass of :exc:`Exception`, so it can be accidentally " +"suppressed by an overly broad ``try..except`` block::" +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:40 +msgid "Instead, the following pattern should be used::" +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:52 +msgid "Invalid internal state of :class:`Task` or :class:`Future`." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:54 +msgid "" +"Can be raised in situations like setting a result value for a *Future* " +"object that already has a result value set." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:60 +msgid "" +"The \"sendfile\" syscall is not available for the given socket or file type." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:63 +msgid "A subclass of :exc:`RuntimeError`." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:68 +msgid "The requested read operation did not complete fully." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:70 +msgid "Raised by the :ref:`asyncio stream APIs`." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:72 +msgid "This exception is a subclass of :exc:`EOFError`." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:76 +msgid "The total number (:class:`int`) of expected bytes." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:80 +msgid "A string of :class:`bytes` read before the end of stream was reached." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:85 +msgid "Reached the buffer size limit while looking for a separator." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:87 +msgid "Raised by the :ref:`asyncio stream APIs `." +msgstr "" + +#: ../Doc/library/asyncio-exceptions.rst:91 +msgid "The total number of to be consumed bytes." +msgstr "" diff --git a/library/asyncio-future.po b/library/asyncio-future.po new file mode 100644 index 000000000..d41490ffb --- /dev/null +++ b/library/asyncio-future.po @@ -0,0 +1,300 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/asyncio-future.rst:8 +msgid "Futures" +msgstr "Futurs" + +#: ../Doc/library/asyncio-future.rst:10 +msgid "" +"*Future* objects are used to bridge **low-level callback-based code** with " +"high-level async/await code." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:15 +msgid "Future Functions" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:19 +msgid "Return ``True`` if *obj* is either of:" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:21 +msgid "an instance of :class:`asyncio.Future`," +msgstr "" + +#: ../Doc/library/asyncio-future.rst:22 +msgid "an instance of :class:`asyncio.Task`," +msgstr "" + +#: ../Doc/library/asyncio-future.rst:23 +msgid "a Future-like object with a ``_asyncio_future_blocking`` attribute." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:31 +msgid "Return:" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:33 +msgid "" +"*obj* argument as is, if *obj* is a :class:`Future`, a :class:`Task`, or a " +"Future-like object (:func:`isfuture` is used for the test.)" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:37 +msgid "" +"a :class:`Task` object wrapping *obj*, if *obj* is a coroutine (:func:" +"`iscoroutine` is used for the test.)" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:40 +msgid "" +"a :class:`Task` object that would await on *obj*, if *obj* is an awaitable (:" +"func:`inspect.isawaitable` is used for the test.)" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:43 +msgid "If *obj* is neither of the above a :exc:`TypeError` is raised." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:47 +msgid "" +"See also the :func:`create_task` function which is the preferred way for " +"creating new Tasks." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:50 +msgid "The function accepts any :term:`awaitable` object." +msgstr "La fonction accepte n'importe quel objet :term:`awaitable`." + +#: ../Doc/library/asyncio-future.rst:56 +msgid "" +"Wrap a :class:`concurrent.futures.Future` object in a :class:`asyncio." +"Future` object." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:61 +msgid "Future Object" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:65 +msgid "" +"A Future represents an eventual result of an asynchronous operation. Not " +"thread-safe." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:68 +msgid "" +"Future is an :term:`awaitable` object. Coroutines can await on Future " +"objects until they either have a result or an exception set, or until they " +"are cancelled." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:72 +msgid "" +"Typically Futures are used to enable low-level callback-based code (e.g. in " +"protocols implemented using asyncio :ref:`transports `) to interoperate with high-level async/await code." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:77 +msgid "" +"The rule of thumb is to never expose Future objects in user-facing APIs, and " +"the recommended way to create a Future object is to call :meth:`loop." +"create_future`. This way alternative event loop implementations can inject " +"their own optimized implementations of a Future object." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:83 +msgid "Added support for the :mod:`contextvars` module." +msgstr "Ajout du support du module :mod:`contextvars`." + +#: ../Doc/library/asyncio-future.rst:88 +msgid "Return the result of the Future." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:90 +msgid "" +"If the Future is *done* and has a result set by the :meth:`set_result` " +"method, the result value is returned." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:93 +msgid "" +"If the Future is *done* and has an exception set by the :meth:" +"`set_exception` method, this method raises the exception." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:96 ../Doc/library/asyncio-future.rst:181 +msgid "" +"If the Future has been *cancelled*, this method raises a :exc:" +"`CancelledError` exception." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:99 +msgid "" +"If the Future's result isn't yet available, this method raises a :exc:" +"`InvalidStateError` exception." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:104 +msgid "Mark the Future as *done* and set its result." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:106 ../Doc/library/asyncio-future.rst:113 +msgid "" +"Raises a :exc:`InvalidStateError` error if the Future is already *done*." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:111 +msgid "Mark the Future as *done* and set an exception." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:118 +msgid "Return ``True`` if the Future is *done*." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:120 +msgid "" +"A Future is *done* if it was *cancelled* or if it has a result or an " +"exception set with :meth:`set_result` or :meth:`set_exception` calls." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:126 +msgid "Return ``True`` if the Future was *cancelled*." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:128 +msgid "" +"The method is usually used to check if a Future is not *cancelled* before " +"setting a result or an exception for it::" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:136 +msgid "Add a callback to be run when the Future is *done*." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:138 +msgid "The *callback* is called with the Future object as its only argument." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:141 +msgid "" +"If the Future is already *done* when this method is called, the callback is " +"scheduled with :meth:`loop.call_soon`." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:144 +msgid "" +"An optional keyword-only *context* argument allows specifying a custom :" +"class:`contextvars.Context` for the *callback* to run in. The current " +"context is used when no *context* is provided." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:148 +msgid "" +":func:`functools.partial` can be used to pass parameters to the callback, e." +"g.::" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:155 +msgid "" +"The *context* keyword-only parameter was added. See :pep:`567` for more " +"details." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:161 +msgid "Remove *callback* from the callbacks list." +msgstr "Retire *callback* de la liste de fonctions de rappel." + +#: ../Doc/library/asyncio-future.rst:163 +msgid "" +"Returns the number of callbacks removed, which is typically 1, unless a " +"callback was added more than once." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:168 +msgid "Cancel the Future and schedule callbacks." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:170 +msgid "" +"If the Future is already *done* or *cancelled*, return ``False``. Otherwise, " +"change the Future's state to *cancelled*, schedule the callbacks, and return " +"``True``." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:176 +msgid "Return the exception that was set on this Future." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:178 +msgid "" +"The exception (or ``None`` if no exception was set) is returned only if the " +"Future is *done*." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:184 +msgid "" +"If the Future isn't *done* yet, this method raises an :exc:" +"`InvalidStateError` exception." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:189 +msgid "Return the event loop the Future object is bound to." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:196 +msgid "" +"This example creates a Future object, creates and schedules an asynchronous " +"Task to set result for the Future, and waits until the Future has a result::" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:231 +msgid "" +"The Future object was designed to mimic :class:`concurrent.futures.Future`. " +"Key differences include:" +msgstr "" + +#: ../Doc/library/asyncio-future.rst:234 +msgid "" +"unlike asyncio Futures, :class:`concurrent.futures.Future` instances cannot " +"be awaited." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:237 +msgid "" +":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` do not " +"accept the *timeout* argument." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:240 +msgid "" +":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` raise an :" +"exc:`InvalidStateError` exception when the Future is not *done*." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:244 +msgid "" +"Callbacks registered with :meth:`asyncio.Future.add_done_callback` are not " +"called immediately. They are scheduled with :meth:`loop.call_soon` instead." +msgstr "" + +#: ../Doc/library/asyncio-future.rst:248 +msgid "" +"asyncio Future is not compatible with the :func:`concurrent.futures.wait` " +"and :func:`concurrent.futures.as_completed` functions." +msgstr "" diff --git a/library/asyncio-llapi-index.po b/library/asyncio-llapi-index.po new file mode 100644 index 000000000..1bfe29dde --- /dev/null +++ b/library/asyncio-llapi-index.po @@ -0,0 +1,984 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/asyncio-llapi-index.rst:6 +msgid "Low-level API Index" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:8 +msgid "This page lists all low-level asyncio APIs." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:12 +msgid "Obtaining the Event Loop" +msgstr "Obtenir une boucle d'évènements" + +#: ../Doc/library/asyncio-llapi-index.rst:18 +msgid ":func:`asyncio.get_running_loop`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:19 +msgid "The **preferred** function to get the running event loop." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:21 +msgid ":func:`asyncio.get_event_loop`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:22 +msgid "Get an event loop instance (current or via the policy)." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:24 +msgid ":func:`asyncio.set_event_loop`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:25 +msgid "Set the event loop as current via the current policy." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:27 +msgid ":func:`asyncio.new_event_loop`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:28 +msgid "Create a new event loop." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:32 +#: ../Doc/library/asyncio-llapi-index.rst:260 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/asyncio-llapi-index.rst:33 +msgid ":ref:`Using asyncio.get_running_loop() `." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:37 +msgid "Event Loop Methods" +msgstr "Méthodes de la boucle d'évènements" + +#: ../Doc/library/asyncio-llapi-index.rst:39 +msgid "" +"See also the main documentation section about the :ref:`event loop methods " +"`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:42 +msgid "Lifecycle" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:47 +msgid ":meth:`loop.run_until_complete`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:48 +msgid "Run a Future/Task/awaitable until complete." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:50 +msgid ":meth:`loop.run_forever`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:51 +msgid "Run the event loop forever." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:53 +msgid ":meth:`loop.stop`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:54 +msgid "Stop the event loop." +msgstr "Arrête l'exécution de la boucle d'évènements." + +#: ../Doc/library/asyncio-llapi-index.rst:56 +msgid ":meth:`loop.close`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:57 +msgid "Close the event loop." +msgstr "Arrête la boucle d'évènements." + +#: ../Doc/library/asyncio-llapi-index.rst:59 +msgid ":meth:`loop.is_running()`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:60 +msgid "Return ``True`` if the event loop is running." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:62 +msgid ":meth:`loop.is_closed()`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:63 +msgid "Return ``True`` if the event loop is closed." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:65 +msgid "``await`` :meth:`loop.shutdown_asyncgens`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:66 +msgid "Close asynchronous generators." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:69 +msgid "Debugging" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:74 +msgid ":meth:`loop.set_debug`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:75 +msgid "Enable or disable the debug mode." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:77 +msgid ":meth:`loop.get_debug`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:78 +msgid "Get the current debug mode." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:81 +msgid "Scheduling Callbacks" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:86 +msgid ":meth:`loop.call_soon`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:87 +msgid "Invoke a callback soon." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:89 +msgid ":meth:`loop.call_soon_threadsafe`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:90 +msgid "A thread-safe variant of :meth:`loop.call_soon`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:92 +msgid ":meth:`loop.call_later`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:93 +msgid "Invoke a callback *after* the given time." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:95 +msgid ":meth:`loop.call_at`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:96 +msgid "Invoke a callback *at* the given time." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:99 +msgid "Thread/Process Pool" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:104 +msgid "``await`` :meth:`loop.run_in_executor`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:105 +msgid "" +"Run a CPU-bound or other blocking function in a :mod:`concurrent.futures` " +"executor." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:108 +msgid ":meth:`loop.set_default_executor`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:109 +msgid "Set the default executor for :meth:`loop.run_in_executor`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:112 +msgid "Tasks and Futures" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:117 +msgid ":meth:`loop.create_future`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:118 +msgid "Create a :class:`Future` object." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:120 +msgid ":meth:`loop.create_task`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:121 +msgid "Schedule coroutine as a :class:`Task`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:123 +msgid ":meth:`loop.set_task_factory`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:124 +msgid "" +"Set a factory used by :meth:`loop.create_task` to create :class:`Tasks " +"`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:127 +msgid ":meth:`loop.get_task_factory`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:128 +msgid "" +"Get the factory :meth:`loop.create_task` uses to create :class:`Tasks " +"`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:132 +msgid "DNS" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:137 +msgid "``await`` :meth:`loop.getaddrinfo`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:138 +msgid "Asynchronous version of :meth:`socket.getaddrinfo`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:140 +msgid "``await`` :meth:`loop.getnameinfo`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:141 +msgid "Asynchronous version of :meth:`socket.getnameinfo`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:144 +msgid "Networking and IPC" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:149 +msgid "``await`` :meth:`loop.create_connection`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:150 +msgid "Open a TCP connection." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:152 +msgid "``await`` :meth:`loop.create_server`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:153 +msgid "Create a TCP server." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:155 +msgid "``await`` :meth:`loop.create_unix_connection`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:156 +msgid "Open a Unix socket connection." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:158 +msgid "``await`` :meth:`loop.create_unix_server`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:159 +msgid "Create a Unix socket server." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:161 +msgid "``await`` :meth:`loop.connect_accepted_socket`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:162 +msgid "Wrap a :class:`~socket.socket` into a ``(transport, protocol)`` pair." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:165 +msgid "``await`` :meth:`loop.create_datagram_endpoint`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:166 +msgid "Open a datagram (UDP) connection." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:168 +msgid "``await`` :meth:`loop.sendfile`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:169 +msgid "Send a file over a transport." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:171 +msgid "``await`` :meth:`loop.start_tls`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:172 +msgid "Upgrade an existing connection to TLS." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:174 +msgid "``await`` :meth:`loop.connect_read_pipe`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:175 +msgid "Wrap a read end of a pipe into a ``(transport, protocol)`` pair." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:177 +msgid "``await`` :meth:`loop.connect_write_pipe`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:178 +msgid "Wrap a write end of a pipe into a ``(transport, protocol)`` pair." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:181 +msgid "Sockets" +msgstr "Interfaces de connexion (*sockets*)" + +#: ../Doc/library/asyncio-llapi-index.rst:186 +msgid "``await`` :meth:`loop.sock_recv`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:187 +msgid "Receive data from the :class:`~socket.socket`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:189 +msgid "``await`` :meth:`loop.sock_recv_into`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:190 +msgid "Receive data from the :class:`~socket.socket` into a buffer." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:192 +msgid "``await`` :meth:`loop.sock_sendall`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:193 +msgid "Send data to the :class:`~socket.socket`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:195 +msgid "``await`` :meth:`loop.sock_connect`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:196 +msgid "Connect the :class:`~socket.socket`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:198 +msgid "``await`` :meth:`loop.sock_accept`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:199 +msgid "Accept a :class:`~socket.socket` connection." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:201 +msgid "``await`` :meth:`loop.sock_sendfile`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:202 +msgid "Send a file over the :class:`~socket.socket`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:204 +msgid ":meth:`loop.add_reader`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:205 +msgid "Start watching a file descriptor for read availability." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:207 +msgid ":meth:`loop.remove_reader`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:208 +msgid "Stop watching a file descriptor for read availability." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:210 +msgid ":meth:`loop.add_writer`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:211 +msgid "Start watching a file descriptor for write availability." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:213 +msgid ":meth:`loop.remove_writer`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:214 +msgid "Stop watching a file descriptor for write availability." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:217 +msgid "Unix Signals" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:222 +msgid ":meth:`loop.add_signal_handler`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:223 +msgid "Add a handler for a :mod:`signal`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:225 +msgid ":meth:`loop.remove_signal_handler`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:226 +msgid "Remove a handler for a :mod:`signal`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:229 +msgid "Subprocesses" +msgstr "Sous-processus" + +#: ../Doc/library/asyncio-llapi-index.rst:234 +msgid ":meth:`loop.subprocess_exec`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:235 +msgid "Spawn a subprocess." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:237 +msgid ":meth:`loop.subprocess_shell`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:238 +msgid "Spawn a subprocess from a shell command." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:241 +msgid "Error Handling" +msgstr "Gestion des erreurs" + +#: ../Doc/library/asyncio-llapi-index.rst:246 +msgid ":meth:`loop.call_exception_handler`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:247 +msgid "Call the exception handler." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:249 +msgid ":meth:`loop.set_exception_handler`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:250 +msgid "Set a new exception handler." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:252 +msgid ":meth:`loop.get_exception_handler`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:253 +msgid "Get the current exception handler." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:255 +msgid ":meth:`loop.default_exception_handler`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:256 +msgid "The default exception handler implementation." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:261 +msgid "" +":ref:`Using asyncio.get_event_loop() and loop.run_forever() " +"`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:264 +msgid ":ref:`Using loop.call_later() `." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:266 +msgid "" +"Using ``loop.create_connection()`` to implement :ref:`an echo-client " +"`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:269 +msgid "" +"Using ``loop.create_connection()`` to :ref:`connect a socket " +"`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:272 +msgid "" +":ref:`Using add_reader() to watch an FD for read events " +"`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:275 +msgid ":ref:`Using loop.add_signal_handler() `." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:277 +msgid ":ref:`Using loop.subprocess_exec() `." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:281 +msgid "Transports" +msgstr "Transports" + +#: ../Doc/library/asyncio-llapi-index.rst:283 +msgid "All transports implement the following methods:" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:289 +msgid ":meth:`transport.close() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:290 +msgid "Close the transport." +msgstr "Ferme le transport." + +#: ../Doc/library/asyncio-llapi-index.rst:292 +msgid ":meth:`transport.is_closing() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:293 +msgid "Return ``True`` if the transport is closing or is closed." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:295 +msgid ":meth:`transport.get_extra_info() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:296 +msgid "Request for information about the transport." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:298 +msgid ":meth:`transport.set_protocol() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:299 +msgid "Set a new protocol." +msgstr "Change le protocole." + +#: ../Doc/library/asyncio-llapi-index.rst:301 +msgid ":meth:`transport.get_protocol() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:302 +msgid "Return the current protocol." +msgstr "Renvoie le protocole courant." + +#: ../Doc/library/asyncio-llapi-index.rst:305 +msgid "" +"Transports that can receive data (TCP and Unix connections, pipes, etc). " +"Returned from methods like :meth:`loop.create_connection`, :meth:`loop." +"create_unix_connection`, :meth:`loop.connect_read_pipe`, etc:" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:310 +msgid "Read Transports" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:315 +msgid ":meth:`transport.is_reading() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:316 +msgid "Return ``True`` if the transport is receiving." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:318 +msgid ":meth:`transport.pause_reading() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:319 +msgid "Pause receiving." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:321 +msgid ":meth:`transport.resume_reading() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:322 +msgid "Resume receiving." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:325 +msgid "" +"Transports that can Send data (TCP and Unix connections, pipes, etc). " +"Returned from methods like :meth:`loop.create_connection`, :meth:`loop." +"create_unix_connection`, :meth:`loop.connect_write_pipe`, etc:" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:330 +msgid "Write Transports" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:335 +msgid ":meth:`transport.write() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:336 +msgid "Write data to the transport." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:338 +msgid ":meth:`transport.writelines() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:339 +msgid "Write buffers to the transport." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:341 +msgid ":meth:`transport.can_write_eof() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:342 +msgid "Return :const:`True` if the transport supports sending EOF." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:344 +msgid ":meth:`transport.write_eof() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:345 +msgid "Close and send EOF after flushing buffered data." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:347 +msgid ":meth:`transport.abort() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:348 +#: ../Doc/library/asyncio-llapi-index.rst:370 +msgid "Close the transport immediately." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:350 +msgid "" +":meth:`transport.get_write_buffer_size() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:352 +msgid "Return high and low water marks for write flow control." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:354 +msgid "" +":meth:`transport.set_write_buffer_limits() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:356 +msgid "Set new high and low water marks for write flow control." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:359 +msgid "Transports returned by :meth:`loop.create_datagram_endpoint`:" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:361 +msgid "Datagram Transports" +msgstr "Transports de datagrammes" + +#: ../Doc/library/asyncio-llapi-index.rst:366 +msgid ":meth:`transport.sendto() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:367 +msgid "Send data to the remote peer." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:369 +msgid ":meth:`transport.abort() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:373 +msgid "" +"Low-level transport abstraction over subprocesses. Returned by :meth:`loop." +"subprocess_exec` and :meth:`loop.subprocess_shell`:" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:377 +msgid "Subprocess Transports" +msgstr "Transports vers des sous-processus" + +#: ../Doc/library/asyncio-llapi-index.rst:382 +msgid ":meth:`transport.get_pid() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:383 +msgid "Return the subprocess process id." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:385 +msgid "" +":meth:`transport.get_pipe_transport() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:387 +msgid "" +"Return the transport for the requested communication pipe (*stdin*, " +"*stdout*, or *stderr*)." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:390 +msgid ":meth:`transport.get_returncode() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:391 +msgid "Return the subprocess return code." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:393 +msgid ":meth:`transport.kill() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:394 +msgid "Kill the subprocess." +msgstr "Tue le sous-processus." + +#: ../Doc/library/asyncio-llapi-index.rst:396 +msgid ":meth:`transport.send_signal() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:397 +msgid "Send a signal to the subprocess." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:399 +msgid ":meth:`transport.terminate() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:400 +msgid "Stop the subprocess." +msgstr "Termine le sous-processus." + +#: ../Doc/library/asyncio-llapi-index.rst:402 +msgid ":meth:`transport.close() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:403 +msgid "Kill the subprocess and close all pipes." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:407 +msgid "Protocols" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:409 +msgid "Protocol classes can implement the following **callback methods**:" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:415 +msgid "``callback`` :meth:`connection_made() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:416 +msgid "Called when a connection is made." +msgstr "Appelé lorsqu'une connexion est établie." + +#: ../Doc/library/asyncio-llapi-index.rst:418 +msgid "``callback`` :meth:`connection_lost() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:419 +msgid "Called when the connection is lost or closed." +msgstr "Appelé lorsqu'une connexion est perdue ou fermée." + +#: ../Doc/library/asyncio-llapi-index.rst:421 +msgid "``callback`` :meth:`pause_writing() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:422 +msgid "Called when the transport's buffer goes over the high water mark." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:424 +msgid "``callback`` :meth:`resume_writing() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:425 +msgid "Called when the transport's buffer drains below the low water mark." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:428 +msgid "Streaming Protocols (TCP, Unix Sockets, Pipes)" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:433 +msgid "``callback`` :meth:`data_received() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:434 +msgid "Called when some data is received." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:436 +msgid "``callback`` :meth:`eof_received() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:437 +#: ../Doc/library/asyncio-llapi-index.rst:452 +msgid "Called when an EOF is received." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:440 +msgid "Buffered Streaming Protocols" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:445 +msgid "``callback`` :meth:`get_buffer() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:446 +msgid "Called to allocate a new receive buffer." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:448 +msgid "``callback`` :meth:`buffer_updated() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:449 +msgid "Called when the buffer was updated with the received data." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:451 +msgid "``callback`` :meth:`eof_received() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:455 +msgid "Datagram Protocols" +msgstr "Protocoles non-connectés" + +#: ../Doc/library/asyncio-llapi-index.rst:460 +msgid "" +"``callback`` :meth:`datagram_received() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:462 +msgid "Called when a datagram is received." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:464 +msgid "``callback`` :meth:`error_received() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:465 +msgid "" +"Called when a previous send or receive operation raises an :class:`OSError`." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:469 +msgid "Subprocess Protocols" +msgstr "Protocoles liés aux sous-processus" + +#: ../Doc/library/asyncio-llapi-index.rst:474 +msgid "" +"``callback`` :meth:`pipe_data_received() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:476 +msgid "" +"Called when the child process writes data into its *stdout* or *stderr* pipe." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:479 +msgid "" +"``callback`` :meth:`pipe_connection_lost() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:481 +msgid "" +"Called when one of the pipes communicating with the child process is closed." +msgstr "" +"Appelé lorsqu'une des *pipe*\\ s de communication avec un sous-processus est " +"fermée." + +#: ../Doc/library/asyncio-llapi-index.rst:484 +msgid "" +"``callback`` :meth:`process_exited() `" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:486 +msgid "Called when the child process has exited." +msgstr "Appelé lorsqu'un processus enfant se termine." + +#: ../Doc/library/asyncio-llapi-index.rst:490 +msgid "Event Loop Policies" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:492 +msgid "" +"Policies is a low-level mechanism to alter the behavior of functions like :" +"func:`asyncio.get_event_loop`. See also the main :ref:`policies section " +"` for more details." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:498 +msgid "Accessing Policies" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:503 +msgid ":meth:`asyncio.get_event_loop_policy`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:504 +msgid "Return the current process-wide policy." +msgstr "Renvoie la stratégie actuelle à l'échelle du processus." + +#: ../Doc/library/asyncio-llapi-index.rst:506 +msgid ":meth:`asyncio.set_event_loop_policy`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:507 +msgid "Set a new process-wide policy." +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:509 +msgid ":class:`AbstractEventLoopPolicy`" +msgstr "" + +#: ../Doc/library/asyncio-llapi-index.rst:510 +msgid "Base class for policy objects." +msgstr "" diff --git a/library/asyncio-platforms.po b/library/asyncio-platforms.po new file mode 100644 index 000000000..ddb9ff308 --- /dev/null +++ b/library/asyncio-platforms.po @@ -0,0 +1,145 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/asyncio-platforms.rst:9 +msgid "Platform Support" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:11 +msgid "" +"The :mod:`asyncio` module is designed to be portable, but some platforms " +"have subtle differences and limitations due to the platforms' underlying " +"architecture and capabilities." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:17 +msgid "All Platforms" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:19 +msgid "" +":meth:`loop.add_reader` and :meth:`loop.add_writer` cannot be used to " +"monitor file I/O." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:24 +msgid "Windows" +msgstr "Windows" + +#: ../Doc/library/asyncio-platforms.rst:26 +msgid "All event loops on Windows do not support the following methods:" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:28 +msgid "" +":meth:`loop.create_unix_connection` and :meth:`loop.create_unix_server` are " +"not supported. The :data:`socket.AF_UNIX` socket family is specific to Unix." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:32 +msgid "" +":meth:`loop.add_signal_handler` and :meth:`loop.remove_signal_handler` are " +"not supported." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:35 +msgid ":class:`SelectorEventLoop` has the following limitations:" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:37 +msgid "" +":class:`~selectors.SelectSelector` is used to wait on socket events: it " +"supports sockets and is limited to 512 sockets." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:40 +msgid "" +":meth:`loop.add_reader` and :meth:`loop.add_writer` only accept socket " +"handles (e.g. pipe file descriptors are not supported)." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:43 +msgid "" +"Pipes are not supported, so the :meth:`loop.connect_read_pipe` and :meth:" +"`loop.connect_write_pipe` methods are not implemented." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:46 +msgid "" +":ref:`Subprocesses ` are not supported, i.e. :meth:`loop." +"subprocess_exec` and :meth:`loop.subprocess_shell` methods are not " +"implemented." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:50 +msgid ":class:`ProactorEventLoop` has the following limitations:" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:52 +msgid "The :meth:`loop.create_datagram_endpoint` method is not supported." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:55 +msgid "" +"The :meth:`loop.add_reader` and :meth:`loop.add_writer` methods are not " +"supported." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:58 +msgid "" +"The resolution of the monotonic clock on Windows is usually around 15.6 " +"msec. The best resolution is 0.5 msec. The resolution depends on the " +"hardware (availability of `HPET `_) and on the Windows configuration." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:68 +msgid "Subprocess Support on Windows" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:70 +msgid "" +":class:`SelectorEventLoop` on Windows does not support subproceses. On " +"Windows, :class:`ProactorEventLoop` should be used instead::" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:81 +msgid "" +"The :meth:`policy.set_child_watcher() ` function is also not supported, as :class:" +"`ProactorEventLoop` has a different mechanism to watch child processes." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:88 +msgid "macOS" +msgstr "macOS" + +#: ../Doc/library/asyncio-platforms.rst:90 +msgid "Modern macOS versions are fully supported." +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:93 +msgid "macOS <= 10.8" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:94 +msgid "" +"On macOS 10.6, 10.7 and 10.8, the default event loop uses :class:`selectors." +"KqueueSelector`, which does not support character devices on these " +"versions. The :class:`SelectorEventLoop` can be manually configured to use :" +"class:`~selectors.SelectSelector` or :class:`~selectors.PollSelector` to " +"support character devices on these older versions of macOS. Example::" +msgstr "" diff --git a/library/asyncio-policy.po b/library/asyncio-policy.po new file mode 100644 index 000000000..93e6c4482 --- /dev/null +++ b/library/asyncio-policy.po @@ -0,0 +1,367 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-03 16:57+0100\n" +"PO-Revision-Date: 2019-04-11 22:41+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/asyncio-policy.rst:8 +msgid "Policies" +msgstr "Stratégies" + +#: ../Doc/library/asyncio-policy.rst:10 +msgid "" +"An event loop policy is a global per-process object that controls the " +"management of the event loop. Each event loop has a default policy, which " +"can be changed and customized using the policy API." +msgstr "" +"Une stratégie de boucle d'événements est un objet global, pour chaque " +"processus, qui contrôle la gestion de la boucle d'événement. Chaque boucle " +"d'événement a une stratégie par défaut, qui peut être modifiée et " +"personnalisée à l'aide de l'API de la stratégie." + +#: ../Doc/library/asyncio-policy.rst:14 +msgid "" +"A policy defines the notion of *context* and manages a separate event loop " +"per context. The default policy defines *context* to be the current thread." +msgstr "" +"Une stratégie définit la notion de *contexte* et gère une boucle d'événement " +"distincte par contexte. La stratégie par défaut définit le *contexte* comme " +"étant le fil d'exécution actuel." + +#: ../Doc/library/asyncio-policy.rst:18 +msgid "" +"By using a custom event loop policy, the behavior of :func:" +"`get_event_loop`, :func:`set_event_loop`, and :func:`new_event_loop` " +"functions can be customized." +msgstr "" +"En utilisant une stratégie de boucle d'événement personnalisée, le " +"comportement des fonctions :func:`get_event_loop`, :func:`set_event_loop` " +"et :func:`new_event_loop` peut être personnalisé." + +#: ../Doc/library/asyncio-policy.rst:22 +msgid "" +"Policy objects should implement the APIs defined in the :class:" +"`AbstractEventLoopPolicy` abstract base class." +msgstr "" +"Les objets de stratégie doivent implémenter les API définies dans la classe " +"de base abstraite :class:`AbstractEventLoopPolicy`." + +#: ../Doc/library/asyncio-policy.rst:27 +msgid "Getting and Setting the Policy" +msgstr "Obtenir et définir la stratégie" + +#: ../Doc/library/asyncio-policy.rst:29 +msgid "" +"The following functions can be used to get and set the policy for the " +"current process:" +msgstr "" +"Les fonctions suivantes peuvent être utilisées pour obtenir et définir la " +"stratégie du processus en cours :" + +#: ../Doc/library/asyncio-policy.rst:34 +msgid "Return the current process-wide policy." +msgstr "Renvoie la stratégie actuelle à l'échelle du processus." + +#: ../Doc/library/asyncio-policy.rst:38 +msgid "Set the current process-wide policy to *policy*." +msgstr "" +"Définit la stratégie actuelle sur l'ensemble du processus sur *policy*." + +#: ../Doc/library/asyncio-policy.rst:40 +msgid "If *policy* is set to ``None``, the default policy is restored." +msgstr "" +"Si *policy* est définie sur ``None``, la stratégie par défaut est restaurée." + +#: ../Doc/library/asyncio-policy.rst:44 +msgid "Policy Objects" +msgstr "Sujets de stratégie" + +#: ../Doc/library/asyncio-policy.rst:46 +msgid "The abstract event loop policy base class is defined as follows:" +msgstr "" +"La classe de base abstraite de la stratégie de boucle d'événements est " +"définie comme suit:" + +#: ../Doc/library/asyncio-policy.rst:50 +msgid "An abstract base class for asyncio policies." +msgstr "Une classe de base abstraite pour les stratégies *asyncio*." + +#: ../Doc/library/asyncio-policy.rst:54 +msgid "Get the event loop for the current context." +msgstr "Récupère la boucle d'évènements pour le contexte actuel." + +#: ../Doc/library/asyncio-policy.rst:56 +msgid "" +"Return an event loop object implementing the :class:`AbstractEventLoop` " +"interface." +msgstr "" +"Renvoie un objet de boucle d'événements en implémentant l'interface :class:" +"`AbstractEventLoop`." + +#: ../Doc/library/asyncio-policy.rst:59 ../Doc/library/asyncio-policy.rst:71 +msgid "This method should never return ``None``." +msgstr "Cette méthode ne devrait jamais renvoyer ``None``." + +#: ../Doc/library/asyncio-policy.rst:65 +msgid "Set the event loop for the current context to *loop*." +msgstr "Définit la boucle d'événements du contexte actuel sur *loop*." + +#: ../Doc/library/asyncio-policy.rst:69 +msgid "Create and return a new event loop object." +msgstr "Crée et renvoie un nouvel objet de boucle d'événements." + +#: ../Doc/library/asyncio-policy.rst:75 +msgid "Get a child process watcher object." +msgstr "Récupère un objet observateur du processus enfant." + +#: ../Doc/library/asyncio-policy.rst:77 +msgid "" +"Return a watcher object implementing the :class:`AbstractChildWatcher` " +"interface." +msgstr "" +"Renvoie un objet observateur implémentant l'interface :class:" +"`AbstractChildWatcher`." + +#: ../Doc/library/asyncio-policy.rst:80 ../Doc/library/asyncio-policy.rst:86 +msgid "This function is Unix specific." +msgstr "Cette fonction est spécifique à Unix." + +#: ../Doc/library/asyncio-policy.rst:84 +msgid "Set the current child process watcher to *watcher*." +msgstr "Définit l'observateur du processus enfant actuel à *watcher*." + +#: ../Doc/library/asyncio-policy.rst:89 +msgid "asyncio ships with the following built-in policies:" +msgstr "*asyncio* est livré avec les stratégies intégrées suivantes :" + +#: ../Doc/library/asyncio-policy.rst:94 +msgid "" +"The default asyncio policy. Uses :class:`SelectorEventLoop` on both Unix " +"and Windows platforms." +msgstr "" +"La stratégie *asyncio* par défaut. Utilise :class:`SelectorEventLoop` sur " +"les plates-formes Unix et Windows." + +#: ../Doc/library/asyncio-policy.rst:97 +msgid "" +"There is no need to install the default policy manually. asyncio is " +"configured to use the default policy automatically." +msgstr "" +"Il n'est pas nécessaire d'installer la stratégie par défaut manuellement. " +"*asyncio* est configuré pour utiliser automatiquement la stratégie par " +"défaut." + +#: ../Doc/library/asyncio-policy.rst:103 +msgid "" +"An alternative event loop policy that uses the :class:`ProactorEventLoop` " +"event loop implementation." +msgstr "" +"Stratégie de boucle d'événements alternative utilisant l'implémentation de " +"la boucle d'événements :class:`ProactorEventLoop`." + +#: ../Doc/library/asyncio-policy.rst:106 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." + +#: ../Doc/library/asyncio-policy.rst:110 +msgid "Process Watchers" +msgstr "Observateurs de processus" + +#: ../Doc/library/asyncio-policy.rst:112 +msgid "" +"A process watcher allows customization of how an event loop monitors child " +"processes on Unix. Specifically, the event loop needs to know when a child " +"process has exited." +msgstr "" +"Un observateur de processus permet de personnaliser la manière dont une " +"boucle d'événements surveille les processus enfants sous Unix. Plus " +"précisément, la boucle d'événements a besoin de savoir quand un processus " +"enfant s'est terminé." + +#: ../Doc/library/asyncio-policy.rst:116 +msgid "" +"In asyncio, child processes are created with :func:`create_subprocess_exec` " +"and :meth:`loop.subprocess_exec` functions." +msgstr "" +"Dans *asyncio*, les processus enfants sont créés avec les fonctions :func:" +"`create_subprocess_exec` et :meth:`loop.subprocess_exec`." + +#: ../Doc/library/asyncio-policy.rst:120 +msgid "" +"asyncio defines the :class:`AbstractChildWatcher` abstract base class, which " +"child watchers should implement, and has two different implementations: :" +"class:`SafeChildWatcher` (configured to be used by default) and :class:" +"`FastChildWatcher`." +msgstr "" +"*asyncio* définit la classe de base abstraite :class:`AbstractChildWatcher`, " +"que les observateurs enfants doivent implémenter et possède deux " +"implémentations différentes : :class:`SafeChildWatcher` (configurée pour " +"être utilisé par défaut) et :class:`FastChildWatcher`." + +#: ../Doc/library/asyncio-policy.rst:125 +msgid "" +"See also the :ref:`Subprocess and Threads ` " +"section." +msgstr "" +"Voir aussi la section :ref:`sous-processus et fils d'exécution `." + +#: ../Doc/library/asyncio-policy.rst:128 +msgid "" +"The following two functions can be used to customize the child process " +"watcher implementation used by the asyncio event loop:" +msgstr "" +"Les deux fonctions suivantes peuvent être utilisées pour personnaliser " +"l'implémentation de l'observateur de processus enfant utilisé par la boucle " +"d'événements *asyncio* :" + +#: ../Doc/library/asyncio-policy.rst:133 +msgid "Return the current child watcher for the current policy." +msgstr "Renvoie l'observateur enfant actuel pour la stratégie actuelle." + +#: ../Doc/library/asyncio-policy.rst:137 +msgid "" +"Set the current child watcher to *watcher* for the current policy. " +"*watcher* must implement methods defined in the :class:" +"`AbstractChildWatcher` base class." +msgstr "" +"Définit l'observateur enfant actuel à *watcher* pour la stratégie actuelle. " +"*watcher* doit implémenter les méthodes définies dans la classe de base :" +"class:`AbstractChildWatcher`." + +#: ../Doc/library/asyncio-policy.rst:142 +msgid "" +"Third-party event loops implementations might not support custom child " +"watchers. For such event loops, using :func:`set_child_watcher` might be " +"prohibited or have no effect." +msgstr "" +"Les implémentations de boucles d'événement tierces peuvent ne pas prendre en " +"charge les observateurs enfants personnalisés. Pour ces boucles " +"d'événements, utiliser :func:`set_child_watcher` pourrait être interdit ou " +"n'avoir aucun effet." + +#: ../Doc/library/asyncio-policy.rst:150 +msgid "Register a new child handler." +msgstr "Enregistre un nouveau gestionnaire." + +#: ../Doc/library/asyncio-policy.rst:152 +msgid "" +"Arrange for ``callback(pid, returncode, *args)`` to be called when a process " +"with PID equal to *pid* terminates. Specifying another callback for the " +"same process replaces the previous handler." +msgstr "" +"Organise l'appel de ``callback(pid, returncode, * args)`` lorsqu'un " +"processus dont le PID est égal à *pid* se termine. La spécification d'un " +"autre rappel pour le même processus remplace le gestionnaire précédent." + +#: ../Doc/library/asyncio-policy.rst:157 +msgid "The *callback* callable must be thread-safe." +msgstr "" +"L'appelable *callback* doit être compatible avec les programmes à fils " +"d'exécution multiples." + +#: ../Doc/library/asyncio-policy.rst:161 +msgid "Removes the handler for process with PID equal to *pid*." +msgstr "Supprime le gestionnaire de processus avec un PID égal à *pid*." + +#: ../Doc/library/asyncio-policy.rst:163 +msgid "" +"The function returns ``True`` if the handler was successfully removed, " +"``False`` if there was nothing to remove." +msgstr "" +"La fonction renvoie ``True`` si le gestionnaire a été supprimé avec succès, " +"``False`` s'il n'y a rien à supprimer." + +#: ../Doc/library/asyncio-policy.rst:168 +msgid "Attach the watcher to an event loop." +msgstr "Attache l'observateur à une boucle d'événement." + +#: ../Doc/library/asyncio-policy.rst:170 +msgid "" +"If the watcher was previously attached to an event loop, then it is first " +"detached before attaching to the new loop." +msgstr "" +"Si l'observateur était précédemment attaché à une boucle d'événements, il " +"est d'abord détaché avant d'être rattaché à la nouvelle boucle." + +#: ../Doc/library/asyncio-policy.rst:173 +msgid "Note: loop may be ``None``." +msgstr "Remarque : la boucle peut être ``None``." + +#: ../Doc/library/asyncio-policy.rst:177 +msgid "Close the watcher." +msgstr "Ferme l'observateur." + +#: ../Doc/library/asyncio-policy.rst:179 +msgid "" +"This method has to be called to ensure that underlying resources are cleaned-" +"up." +msgstr "" +"Cette méthode doit être appelée pour s'assurer que les ressources sous-" +"jacentes sont nettoyées." + +#: ../Doc/library/asyncio-policy.rst:184 +msgid "" +"This implementation avoids disrupting other code spawning processes by " +"polling every process explicitly on a :py:data:`SIGCHLD` signal." +msgstr "" +"Cette implémentation évite de perturber un autre code qui aurait besoin de " +"générer des processus en interrogeant chaque processus explicitement par un " +"signal :py:data:`SIGCHLD`." + +#: ../Doc/library/asyncio-policy.rst:187 +msgid "" +"This is a safe solution but it has a significant overhead when handling a " +"big number of processes (*O(n)* each time a :py:data:`SIGCHLD` is received)." +msgstr "" +"C'est une solution sûre, mais elle nécessite un temps système important lors " +"de la manipulation d'un grand nombre de processus (*O(n)* à chaque fois que " +"un :py:data:`SIGCHLD` est reçu)." + +#: ../Doc/library/asyncio-policy.rst:191 +msgid "asyncio uses this safe implementation by default." +msgstr "*asyncio* utilise cette implémentation sécurisée par défaut." + +#: ../Doc/library/asyncio-policy.rst:195 +msgid "" +"This implementation reaps every terminated processes by calling ``os." +"waitpid(-1)`` directly, possibly breaking other code spawning processes and " +"waiting for their termination." +msgstr "" +"Cette implémentation récupère tous les processus terminés en appelant " +"directement ``os.waitpid(-1)``, cassant éventuellement un autre code qui " +"génère des processus et attend leur fin." + +#: ../Doc/library/asyncio-policy.rst:199 +msgid "" +"There is no noticeable overhead when handling a big number of children " +"(*O(1)* each time a child terminates)." +msgstr "" +"Il n'y a pas de surcharge visible lors de la manipulation d'un grand nombre " +"d'enfants (*O(1)* à chaque fois qu'un enfant se termine)." + +#: ../Doc/library/asyncio-policy.rst:204 +msgid "Custom Policies" +msgstr "Stratégies personnalisées" + +#: ../Doc/library/asyncio-policy.rst:206 +msgid "" +"To implement a new event loop policy, it is recommended to subclass :class:" +"`DefaultEventLoopPolicy` and override the methods for which custom behavior " +"is wanted, e.g.::" +msgstr "" +"Pour implémenter une nouvelle politique de boucle d’événements, il est " +"recommandé de sous-classer :class:`DefaultEventLoopPolicy` et de " +"réimplémenter les méthodes pour lesquelles un comportement personnalisé est " +"souhaité, par exemple ::" diff --git a/library/asyncio-protocol.po b/library/asyncio-protocol.po new file mode 100644 index 000000000..1113623ca --- /dev/null +++ b/library/asyncio-protocol.po @@ -0,0 +1,1048 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-06-18 22:29+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/asyncio-protocol.rst:9 +msgid "Transports and Protocols" +msgstr "Transports et Protocoles" + +#: ../Doc/library/asyncio-protocol.rst:12 +msgid "Preface" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:13 +msgid "" +"Transports and Protocols are used by the **low-level** event loop APIs such " +"as :meth:`loop.create_connection`. They use callback-based programming " +"style and enable high-performance implementations of network or IPC " +"protocols (e.g. HTTP)." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:18 +msgid "" +"Essentially, transports and protocols should only be used in libraries and " +"frameworks and never in high-level asyncio applications." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:22 +msgid "This documentation page covers both `Transports`_ and `Protocols`_." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:25 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/library/asyncio-protocol.rst:26 +msgid "" +"At the highest level, the transport is concerned with *how* bytes are " +"transmitted, while the protocol determines *which* bytes to transmit (and to " +"some extent when)." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:30 +msgid "" +"A different way of saying the same thing: a transport is an abstraction for " +"a socket (or similar I/O endpoint) while a protocol is an abstraction for an " +"application, from the transport's point of view." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:35 +msgid "" +"Yet another view is the transport and protocol interfaces together define an " +"abstract interface for using network I/O and interprocess I/O." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:39 +msgid "" +"There is always a 1:1 relationship between transport and protocol objects: " +"the protocol calls transport methods to send data, while the transport calls " +"protocol methods to pass it data that has been received." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:44 +msgid "" +"Most of connection oriented event loop methods (such as :meth:`loop." +"create_connection`) usually accept a *protocol_factory* argument used to " +"create a *Protocol* object for an accepted connection, represented by a " +"*Transport* object. Such methods usually return a tuple of ``(transport, " +"protocol)``." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:51 +msgid "Contents" +msgstr "Sommaire" + +#: ../Doc/library/asyncio-protocol.rst:52 +msgid "This documentation page contains the following sections:" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:54 +msgid "" +"The `Transports`_ section documents asyncio :class:`BaseTransport`, :class:" +"`ReadTransport`, :class:`WriteTransport`, :class:`Transport`, :class:" +"`DatagramTransport`, and :class:`SubprocessTransport` classes." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:59 +msgid "" +"The `Protocols`_ section documents asyncio :class:`BaseProtocol`, :class:" +"`Protocol`, :class:`BufferedProtocol`, :class:`DatagramProtocol`, and :class:" +"`SubprocessProtocol` classes." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:63 +msgid "" +"The `Examples`_ section showcases how to work with transports, protocols, " +"and low-level event loop APIs." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:70 +msgid "Transports" +msgstr "Transports" + +#: ../Doc/library/asyncio-protocol.rst:72 +msgid "" +"Transports are classes provided by :mod:`asyncio` in order to abstract " +"various kinds of communication channels." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:75 +msgid "" +"Transport objects are always instantiated by an :ref:`asyncio event loop " +"`." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:78 +msgid "" +"asyncio implements transports for TCP, UDP, SSL, and subprocess pipes. The " +"methods available on a transport depend on the transport's kind." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:81 +msgid "" +"The transport classes are :ref:`not thread safe `." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:85 +msgid "Transports Hierarchy" +msgstr "Hiérarchie des transports" + +#: ../Doc/library/asyncio-protocol.rst:89 +msgid "" +"Base class for all transports. Contains methods that all asyncio transports " +"share." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:94 +msgid "A base transport for write-only connections." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:96 +msgid "" +"Instances of the *WriteTransport* class are returned from the :meth:`loop." +"connect_write_pipe` event loop method and are also used by subprocess-" +"related methods like :meth:`loop.subprocess_exec`." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:103 +msgid "A base transport for read-only connections." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:105 +msgid "" +"Instances of the *ReadTransport* class are returned from the :meth:`loop." +"connect_read_pipe` event loop method and are also used by subprocess-related " +"methods like :meth:`loop.subprocess_exec`." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:112 +msgid "" +"Interface representing a bidirectional transport, such as a TCP connection." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:115 +msgid "" +"The user does not instantiate a transport directly; they call a utility " +"function, passing it a protocol factory and other information necessary to " +"create the transport and protocol." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:119 +msgid "" +"Instances of the *Transport* class are returned from or used by event loop " +"methods like :meth:`loop.create_connection`, :meth:`loop." +"create_unix_connection`, :meth:`loop.create_server`, :meth:`loop.sendfile`, " +"etc." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:127 +msgid "A transport for datagram (UDP) connections." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:129 +msgid "" +"Instances of the *DatagramTransport* class are returned from the :meth:`loop." +"create_datagram_endpoint` event loop method." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:135 +msgid "" +"An abstraction to represent a connection between a parent and its child OS " +"process." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:138 +msgid "" +"Instances of the *SubprocessTransport* class are returned from event loop " +"methods :meth:`loop.subprocess_shell` and :meth:`loop.subprocess_exec`." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:144 +msgid "Base Transport" +msgstr "Classe de base des Transports" + +#: ../Doc/library/asyncio-protocol.rst:148 +msgid "Close the transport." +msgstr "Ferme le transport." + +#: ../Doc/library/asyncio-protocol.rst:150 +msgid "" +"If the transport has a buffer for outgoing data, buffered data will be " +"flushed asynchronously. No more data will be received. After all buffered " +"data is flushed, the protocol's :meth:`protocol.connection_lost() " +"` method will be called with :const:`None` as " +"its argument." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:159 +msgid "Return ``True`` if the transport is closing or is closed." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:163 +msgid "Return information about the transport or underlying resources it uses." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:166 +msgid "" +"*name* is a string representing the piece of transport-specific information " +"to get." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:169 +msgid "" +"*default* is the value to return if the information is not available, or if " +"the transport does not support querying it with the given third-party event " +"loop implementation or on the current platform." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:174 +msgid "" +"For example, the following code attempts to get the underlying socket object " +"of the transport::" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:181 +msgid "Categories of information that can be queried on some transports:" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:183 +msgid "socket:" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:185 +msgid "" +"``'peername'``: the remote address to which the socket is connected, result " +"of :meth:`socket.socket.getpeername` (``None`` on error)" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:189 +msgid "``'socket'``: :class:`socket.socket` instance" +msgstr "``'socket'`` : Instance de :class:`socket.socket`" + +#: ../Doc/library/asyncio-protocol.rst:191 +msgid "" +"``'sockname'``: the socket's own address, result of :meth:`socket.socket." +"getsockname`" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:194 +msgid "SSL socket:" +msgstr "Connecteur (*socket* en anglais) SSL :" + +#: ../Doc/library/asyncio-protocol.rst:196 +msgid "" +"``'compression'``: the compression algorithm being used as a string, or " +"``None`` if the connection isn't compressed; result of :meth:`ssl.SSLSocket." +"compression`" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:200 +msgid "" +"``'cipher'``: a three-value tuple containing the name of the cipher being " +"used, the version of the SSL protocol that defines its use, and the number " +"of secret bits being used; result of :meth:`ssl.SSLSocket.cipher`" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:205 +msgid "" +"``'peercert'``: peer certificate; result of :meth:`ssl.SSLSocket.getpeercert`" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:208 +msgid "``'sslcontext'``: :class:`ssl.SSLContext` instance" +msgstr "``sslcontext'`` : Instance de :class:`ssl.SSLContext`" + +#: ../Doc/library/asyncio-protocol.rst:210 +msgid "" +"``'ssl_object'``: :class:`ssl.SSLObject` or :class:`ssl.SSLSocket` instance" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:213 +msgid "pipe:" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:215 +msgid "``'pipe'``: pipe object" +msgstr "``'pipe'`` : objet *pipe*" + +#: ../Doc/library/asyncio-protocol.rst:217 +msgid "subprocess:" +msgstr "sous-processus :" + +#: ../Doc/library/asyncio-protocol.rst:219 +msgid "``'subprocess'``: :class:`subprocess.Popen` instance" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:223 +msgid "Set a new protocol." +msgstr "Change le protocole." + +#: ../Doc/library/asyncio-protocol.rst:225 +msgid "" +"Switching protocol should only be done when both protocols are documented to " +"support the switch." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:230 +msgid "Return the current protocol." +msgstr "Renvoie le protocole courant." + +#: ../Doc/library/asyncio-protocol.rst:234 +msgid "Read-only Transports" +msgstr "Transports en lecture seule" + +#: ../Doc/library/asyncio-protocol.rst:238 +msgid "Return ``True`` if the transport is receiving new data." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:244 +msgid "" +"Pause the receiving end of the transport. No data will be passed to the " +"protocol's :meth:`protocol.data_received() ` method " +"until :meth:`resume_reading` is called." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:248 +msgid "" +"The method is idempotent, i.e. it can be called when the transport is " +"already paused or closed." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:254 +msgid "" +"Resume the receiving end. The protocol's :meth:`protocol.data_received() " +"` method will be called once again if some data is " +"available for reading." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:258 +msgid "" +"The method is idempotent, i.e. it can be called when the transport is " +"already reading." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:264 +msgid "Write-only Transports" +msgstr "Transports en lecture/écriture" + +#: ../Doc/library/asyncio-protocol.rst:268 +msgid "" +"Close the transport immediately, without waiting for pending operations to " +"complete. Buffered data will be lost. No more data will be received. The " +"protocol's :meth:`protocol.connection_lost() ` " +"method will eventually be called with :const:`None` as its argument." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:276 +msgid "" +"Return :const:`True` if the transport supports :meth:`~WriteTransport." +"write_eof`, :const:`False` if not." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:281 +msgid "Return the current size of the output buffer used by the transport." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:285 +msgid "" +"Get the *high* and *low* watermarks for write flow control. Return a tuple " +"``(low, high)`` where *low* and *high* are positive number of bytes." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:289 +msgid "Use :meth:`set_write_buffer_limits` to set the limits." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:295 +msgid "Set the *high* and *low* watermarks for write flow control." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:297 +msgid "" +"These two values (measured in number of bytes) control when the protocol's :" +"meth:`protocol.pause_writing() ` and :meth:" +"`protocol.resume_writing() ` methods are " +"called. If specified, the low watermark must be less than or equal to the " +"high watermark. Neither *high* nor *low* can be negative." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:305 +msgid "" +":meth:`~BaseProtocol.pause_writing` is called when the buffer size becomes " +"greater than or equal to the *high* value. If writing has been paused, :meth:" +"`~BaseProtocol.resume_writing` is called when the buffer size becomes less " +"than or equal to the *low* value." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:310 +msgid "" +"The defaults are implementation-specific. If only the high watermark is " +"given, the low watermark defaults to an implementation-specific value less " +"than or equal to the high watermark. Setting *high* to zero forces *low* to " +"zero as well, and causes :meth:`~BaseProtocol.pause_writing` to be called " +"whenever the buffer becomes non-empty. Setting *low* to zero causes :meth:" +"`~BaseProtocol.resume_writing` to be called only once the buffer is empty. " +"Use of zero for either limit is generally sub-optimal as it reduces " +"opportunities for doing I/O and computation concurrently." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:321 +msgid "Use :meth:`~WriteTransport.get_write_buffer_limits` to get the limits." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:326 +msgid "Write some *data* bytes to the transport." +msgstr "Écrit des octets de *data* sur le transport." + +#: ../Doc/library/asyncio-protocol.rst:328 +#: ../Doc/library/asyncio-protocol.rst:357 +msgid "" +"This method does not block; it buffers the data and arranges for it to be " +"sent out asynchronously." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:333 +msgid "" +"Write a list (or any iterable) of data bytes to the transport. This is " +"functionally equivalent to calling :meth:`write` on each element yielded by " +"the iterable, but may be implemented more efficiently." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:340 +msgid "" +"Close the write end of the transport after flushing all buffered data. Data " +"may still be received." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:343 +msgid "" +"This method can raise :exc:`NotImplementedError` if the transport (e.g. SSL) " +"doesn't support half-closed connections." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:348 +msgid "Datagram Transports" +msgstr "Transports de datagrammes" + +#: ../Doc/library/asyncio-protocol.rst:352 +msgid "" +"Send the *data* bytes to the remote peer given by *addr* (a transport-" +"dependent target address). If *addr* is :const:`None`, the data is sent to " +"the target address given on transport creation." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:362 +msgid "" +"Close the transport immediately, without waiting for pending operations to " +"complete. Buffered data will be lost. No more data will be received. The " +"protocol's :meth:`protocol.connection_lost() ` " +"method will eventually be called with :const:`None` as its argument." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:372 +msgid "Subprocess Transports" +msgstr "Transports vers des sous-processus" + +#: ../Doc/library/asyncio-protocol.rst:376 +msgid "Return the subprocess process id as an integer." +msgstr "" +"Donne l'identifiant du sous processus sous la forme d'un nombre entier." + +#: ../Doc/library/asyncio-protocol.rst:380 +msgid "" +"Return the transport for the communication pipe corresponding to the integer " +"file descriptor *fd*:" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:383 +msgid "" +"``0``: readable streaming transport of the standard input (*stdin*), or :" +"const:`None` if the subprocess was not created with ``stdin=PIPE``" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:385 +msgid "" +"``1``: writable streaming transport of the standard output (*stdout*), or :" +"const:`None` if the subprocess was not created with ``stdout=PIPE``" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:387 +msgid "" +"``2``: writable streaming transport of the standard error (*stderr*), or :" +"const:`None` if the subprocess was not created with ``stderr=PIPE``" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:389 +msgid "other *fd*: :const:`None`" +msgstr "autre *fd* : :const:`None`" + +#: ../Doc/library/asyncio-protocol.rst:393 +msgid "" +"Return the subprocess return code as an integer or :const:`None` if it " +"hasn't returned, which is similar to the :attr:`subprocess.Popen.returncode` " +"attribute." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:399 +msgid "Kill the subprocess." +msgstr "Tue le sous-processus." + +#: ../Doc/library/asyncio-protocol.rst:401 +msgid "" +"On POSIX systems, the function sends SIGKILL to the subprocess. On Windows, " +"this method is an alias for :meth:`terminate`." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:404 +msgid "See also :meth:`subprocess.Popen.kill`." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:408 +msgid "" +"Send the *signal* number to the subprocess, as in :meth:`subprocess.Popen." +"send_signal`." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:413 +msgid "Stop the subprocess." +msgstr "Termine le sous-processus." + +#: ../Doc/library/asyncio-protocol.rst:415 +msgid "" +"On POSIX systems, this method sends SIGTERM to the subprocess. On Windows, " +"the Windows API function TerminateProcess() is called to stop the subprocess." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:419 +msgid "See also :meth:`subprocess.Popen.terminate`." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:423 +msgid "Kill the subprocess by calling the :meth:`kill` method." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:425 +msgid "" +"If the subprocess hasn't returned yet, and close transports of *stdin*, " +"*stdout*, and *stderr* pipes." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:432 +msgid "Protocols" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:434 +msgid "" +"asyncio provides a set of abstract base classes that should be used to " +"implement network protocols. Those classes are meant to be used together " +"with :ref:`transports `." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:438 +msgid "" +"Subclasses of abstract base protocol classes may implement some or all " +"methods. All these methods are callbacks: they are called by transports on " +"certain events, for example when some data is received. A base protocol " +"method should be called by the corresponding transport." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:445 +msgid "Base Protocols" +msgstr "Protocoles de base" + +#: ../Doc/library/asyncio-protocol.rst:449 +msgid "Base protocol with methods that all protocols share." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:453 +msgid "" +"The base class for implementing streaming protocols (TCP, Unix sockets, etc)." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:458 +msgid "" +"A base class for implementing streaming protocols with manual control of the " +"receive buffer." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:463 +msgid "The base class for implementing datagram (UDP) protocols." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:467 +msgid "" +"The base class for implementing protocols communicating with child processes " +"(unidirectional pipes)." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:472 +msgid "Base Protocol" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:474 +msgid "All asyncio protocols can implement Base Protocol callbacks." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:477 +msgid "Connection Callbacks" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:478 +msgid "" +"Connection callbacks are called on all protocols, exactly once per a " +"successful connection. All other protocol callbacks can only be called " +"between those two methods." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:484 +msgid "Called when a connection is made." +msgstr "Appelé lorsqu'une connexion est établie." + +#: ../Doc/library/asyncio-protocol.rst:486 +msgid "" +"The *transport* argument is the transport representing the connection. The " +"protocol is responsible for storing the reference to its transport." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:492 +msgid "Called when the connection is lost or closed." +msgstr "Appelé lorsqu'une connexion est perdue ou fermée." + +#: ../Doc/library/asyncio-protocol.rst:494 +msgid "" +"The argument is either an exception object or :const:`None`. The latter " +"means a regular EOF is received, or the connection was aborted or closed by " +"this side of the connection." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:500 +msgid "Flow Control Callbacks" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:501 +msgid "" +"Flow control callbacks can be called by transports to pause or resume " +"writing performed by the protocol." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:504 +msgid "" +"See the documentation of the :meth:`~WriteTransport.set_write_buffer_limits` " +"method for more details." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:509 +msgid "Called when the transport's buffer goes over the high watermark." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:513 +msgid "Called when the transport's buffer drains below the low watermark." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:515 +msgid "" +"If the buffer size equals the high watermark, :meth:`~BaseProtocol." +"pause_writing` is not called: the buffer size must go strictly over." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:519 +msgid "" +"Conversely, :meth:`~BaseProtocol.resume_writing` is called when the buffer " +"size is equal or lower than the low watermark. These end conditions are " +"important to ensure that things go as expected when either mark is zero." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:526 +msgid "Streaming Protocols" +msgstr "Protocoles connectés" + +#: ../Doc/library/asyncio-protocol.rst:528 +msgid "" +"Event methods, such as :meth:`loop.create_server`, :meth:`loop." +"create_unix_server`, :meth:`loop.create_connection`, :meth:`loop." +"create_unix_connection`, :meth:`loop.connect_accepted_socket`, :meth:`loop." +"connect_read_pipe`, and :meth:`loop.connect_write_pipe` accept factories " +"that return streaming protocols." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:536 +msgid "" +"Called when some data is received. *data* is a non-empty bytes object " +"containing the incoming data." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:539 +msgid "" +"Whether the data is buffered, chunked or reassembled depends on the " +"transport. In general, you shouldn't rely on specific semantics and instead " +"make your parsing generic and flexible. However, data is always received in " +"the correct order." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:544 +msgid "" +"The method can be called an arbitrary number of times while a connection is " +"open." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:547 +msgid "" +"However, :meth:`protocol.eof_received() ` is called " +"at most once. Once `eof_received()` is called, ``data_received()`` is not " +"called anymore." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:553 +msgid "" +"Called when the other end signals it won't send any more data (for example " +"by calling :meth:`transport.write_eof() `, if the " +"other end also uses asyncio)." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:558 +msgid "" +"This method may return a false value (including ``None``), in which case the " +"transport will close itself. Conversely, if this method returns a true " +"value, the protocol used determines whether to close the transport. Since " +"the default implementation returns ``None``, it implicitly closes the " +"connection." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:564 +msgid "" +"Some transports, including SSL, don't support half-closed connections, in " +"which case returning true from this method will result in the connection " +"being closed." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:569 +#: ../Doc/library/asyncio-protocol.rst:630 +msgid "State machine:" +msgstr "Machine à états :" + +#: ../Doc/library/asyncio-protocol.rst:580 +msgid "Buffered Streaming Protocols" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:582 +msgid "" +"**Important:** this has been added to asyncio in Python 3.7 *on a " +"provisional basis*! This is as an experimental API that might be changed or " +"removed completely in Python 3.8." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:587 +msgid "" +"Buffered Protocols can be used with any event loop method that supports " +"`Streaming Protocols`_." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:590 +msgid "" +"``BufferedProtocol`` implementations allow explicit manual allocation and " +"control of the receive buffer. Event loops can then use the buffer provided " +"by the protocol to avoid unnecessary data copies. This can result in " +"noticeable performance improvement for protocols that receive big amounts of " +"data. Sophisticated protocol implementations can significantly reduce the " +"number of buffer allocations." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:597 +msgid "" +"The following callbacks are called on :class:`BufferedProtocol` instances:" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:602 +msgid "Called to allocate a new receive buffer." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:604 +msgid "" +"*sizehint* is the recommended minimum size for the returned buffer. It is " +"acceptable to return smaller or larger buffers than what *sizehint* " +"suggests. When set to -1, the buffer size can be arbitrary. It is an error " +"to return a buffer with a zero size." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:609 +msgid "" +"``get_buffer()`` must return an object implementing the :ref:`buffer " +"protocol `." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:614 +msgid "Called when the buffer was updated with the received data." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:616 +msgid "*nbytes* is the total number of bytes that were written to the buffer." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:620 +msgid "" +"See the documentation of the :meth:`protocol.eof_received() ` method." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:624 +msgid "" +":meth:`~BufferedProtocol.get_buffer` can be called an arbitrary number of " +"times during a connection. However, :meth:`protocol.eof_received() " +"` is called at most once and, if called, :meth:" +"`~BufferedProtocol.get_buffer` and :meth:`~BufferedProtocol.buffer_updated` " +"won't be called after it." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:643 +msgid "Datagram Protocols" +msgstr "Protocoles non-connectés" + +#: ../Doc/library/asyncio-protocol.rst:645 +msgid "" +"Datagram Protocol instances should be constructed by protocol factories " +"passed to the :meth:`loop.create_datagram_endpoint` method." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:650 +msgid "" +"Called when a datagram is received. *data* is a bytes object containing the " +"incoming data. *addr* is the address of the peer sending the data; the " +"exact format depends on the transport." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:656 +msgid "" +"Called when a previous send or receive operation raises an :class:" +"`OSError`. *exc* is the :class:`OSError` instance." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:659 +msgid "" +"This method is called in rare conditions, when the transport (e.g. UDP) " +"detects that a datagram could not be delivered to its recipient. In many " +"conditions though, undeliverable datagrams will be silently dropped." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:666 +msgid "" +"On BSD systems (macOS, FreeBSD, etc.) flow control is not supported for " +"datagram protocols, because there is no reliable way to detect send failures " +"caused by writing too many packets." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:670 +msgid "" +"The socket always appears 'ready' and excess packets are dropped. An :class:" +"`OSError` with ``errno`` set to :const:`errno.ENOBUFS` may or may not be " +"raised; if it is raised, it will be reported to :meth:`DatagramProtocol." +"error_received` but otherwise ignored." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:679 +msgid "Subprocess Protocols" +msgstr "Protocoles liés aux sous-processus" + +#: ../Doc/library/asyncio-protocol.rst:681 +msgid "" +"Datagram Protocol instances should be constructed by protocol factories " +"passed to the :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` " +"methods." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:687 +msgid "" +"Called when the child process writes data into its stdout or stderr pipe." +msgstr "" +"Appelé lorsqu'un processus enfant écrit sur sa sortie d'erreur ou sa sortie " +"standard." + +#: ../Doc/library/asyncio-protocol.rst:690 +msgid "*fd* is the integer file descriptor of the pipe." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:692 +msgid "*data* is a non-empty bytes object containing the received data." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:696 +msgid "" +"Called when one of the pipes communicating with the child process is closed." +msgstr "" +"Appelé lorsqu'une des *pipe*\\ s de communication avec un sous-processus est " +"fermée." + +#: ../Doc/library/asyncio-protocol.rst:699 +msgid "*fd* is the integer file descriptor that was closed." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:703 +msgid "Called when the child process has exited." +msgstr "Appelé lorsqu'un processus enfant se termine." + +#: ../Doc/library/asyncio-protocol.rst:707 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/asyncio-protocol.rst:712 +msgid "TCP Echo Server" +msgstr "Serveur de *ping* en TCP" + +#: ../Doc/library/asyncio-protocol.rst:714 +msgid "" +"Create a TCP echo server using the :meth:`loop.create_server` method, send " +"back received data, and close the connection::" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:755 +msgid "" +"The :ref:`TCP echo server using streams ` " +"example uses the high-level :func:`asyncio.start_server` function." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:761 +msgid "TCP Echo Client" +msgstr "Client de *ping* en TCP" + +#: ../Doc/library/asyncio-protocol.rst:763 +msgid "" +"A TCP echo client using the :meth:`loop.create_connection` method, sends " +"data, and waits until the connection is closed::" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:812 +msgid "" +"The :ref:`TCP echo client using streams ` " +"example uses the high-level :func:`asyncio.open_connection` function." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:819 +msgid "UDP Echo Server" +msgstr "Serveur de *ping* en UDP" + +#: ../Doc/library/asyncio-protocol.rst:821 +msgid "" +"A UDP echo server, using the :meth:`loop.create_datagram_endpoint` method, " +"sends back received data::" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:863 +msgid "UDP Echo Client" +msgstr "Client de *ping* en UDP" + +#: ../Doc/library/asyncio-protocol.rst:865 +msgid "" +"A UDP echo client, using the :meth:`loop.create_datagram_endpoint` method, " +"sends data and closes the transport when it receives the answer::" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:919 +msgid "Connecting Existing Sockets" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:921 +msgid "" +"Wait until a socket receives data using the :meth:`loop.create_connection` " +"method with a protocol::" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:974 +msgid "" +"The :ref:`watch a file descriptor for read events " +"` example uses the low-level :meth:`loop." +"add_reader` method to register an FD." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:978 +msgid "" +"The :ref:`register an open socket to wait for data using streams " +"` example uses high-level streams " +"created by the :func:`open_connection` function in a coroutine." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:985 +msgid "loop.subprocess_exec() and SubprocessProtocol" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:987 +msgid "" +"An example of a subprocess protocol used to get the output of a subprocess " +"and to wait for the subprocess exit." +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:990 +msgid "The subprocess is created by th :meth:`loop.subprocess_exec` method::" +msgstr "" + +#: ../Doc/library/asyncio-protocol.rst:1040 +msgid "" +"See also the :ref:`same example ` " +"written using high-level APIs." +msgstr "" + +#~ msgid "Transports and protocols (callback based API)" +#~ msgstr "Transports et protocoles (APi basée sur des fonctions de rappel)" + +#~ msgid "``'ssl_object'`` info was added to SSL sockets." +#~ msgstr "``'ssl_object'`` est ajouté aux *sockets* SSL." + +#~ msgid "Interface for read-only transports." +#~ msgstr "Interface pour les transports en lecture seule." + +#~ msgid "Interface for write-only transports." +#~ msgstr "Interface pour les transports en écriture seule." + +#~ msgid "Protocol examples" +#~ msgstr "Exemples de protocole" diff --git a/library/asyncio-queue.po b/library/asyncio-queue.po new file mode 100644 index 000000000..778176e72 --- /dev/null +++ b/library/asyncio-queue.po @@ -0,0 +1,218 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2018-10-13 17:37+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/asyncio-queue.rst:7 +msgid "Queues" +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:9 +msgid "" +"asyncio queues are designed to be similar to classes of the :mod:`queue` " +"module. Although asyncio queues are not thread-safe, they are designed to " +"be used specifically in async/await code." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:13 +msgid "" +"Note that methods of asyncio queues don't have a *timeout* parameter; use :" +"func:`asyncio.wait_for` function to do queue operations with a timeout." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:17 +msgid "See also the `Examples`_ section below." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:20 +msgid "Queue" +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:24 +msgid "A first in, first out (FIFO) queue." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:26 +msgid "" +"If *maxsize* is less than or equal to zero, the queue size is infinite. If " +"it is an integer greater than ``0``, then ``await put()`` blocks when the " +"queue reaches *maxsize* until an item is removed by :meth:`get`." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:31 +msgid "" +"Unlike the standard library threading :mod:`queue`, the size of the queue is " +"always known and can be returned by calling the :meth:`qsize` method." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:35 +msgid "This class is :ref:`not thread safe `." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:39 +msgid "Number of items allowed in the queue." +msgstr "Nombre d'éléments autorisés dans la queue." + +#: ../Doc/library/asyncio-queue.rst:43 +msgid "Return ``True`` if the queue is empty, ``False`` otherwise." +msgstr "Renvoie ``True`` si la queue est vide, ``False`` sinon." + +#: ../Doc/library/asyncio-queue.rst:47 +msgid "Return ``True`` if there are :attr:`maxsize` items in the queue." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:49 +msgid "" +"If the queue was initialized with ``maxsize=0`` (the default), then :meth:" +"`full()` never returns ``True``." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:54 +msgid "" +"Remove and return an item from the queue. If queue is empty, wait until an " +"item is available." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:59 +msgid "" +"Return an item if one is immediately available, else raise :exc:`QueueEmpty`." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:64 +msgid "Block until all items in the queue have been received and processed." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:66 +msgid "" +"The count of unfinished tasks goes up whenever an item is added to the " +"queue. The count goes down whenever a consumer coroutine calls :meth:" +"`task_done` to indicate that the item was retrieved and all work on it is " +"complete. When the count of unfinished tasks drops to zero, :meth:`join` " +"unblocks." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:74 +msgid "" +"Put an item into the queue. If the queue is full, wait until a free slot is " +"available before adding the item." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:79 +msgid "Put an item into the queue without blocking." +msgstr "Ajoute un élément dans la queue sans bloquer." + +#: ../Doc/library/asyncio-queue.rst:81 +msgid "If no free slot is immediately available, raise :exc:`QueueFull`." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:85 +msgid "Return the number of items in the queue." +msgstr "Renvoie le nombre d'éléments dans la queue." + +#: ../Doc/library/asyncio-queue.rst:89 +msgid "Indicate that a formerly enqueued task is complete." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:91 +msgid "" +"Used by queue consumers. For each :meth:`~Queue.get` used to fetch a task, a " +"subsequent call to :meth:`task_done` tells the queue that the processing on " +"the task is complete." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:95 +msgid "" +"If a :meth:`join` is currently blocking, it will resume when all items have " +"been processed (meaning that a :meth:`task_done` call was received for every " +"item that had been :meth:`~Queue.put` into the queue)." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:100 +msgid "" +"Raises :exc:`ValueError` if called more times than there were items placed " +"in the queue." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:105 +msgid "Priority Queue" +msgstr "File de priorité" + +#: ../Doc/library/asyncio-queue.rst:109 +msgid "" +"A variant of :class:`Queue`; retrieves entries in priority order (lowest " +"first)." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:112 +msgid "Entries are typically tuples of the form ``(priority_number, data)``." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:117 +msgid "LIFO Queue" +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:121 +msgid "" +"A variant of :class:`Queue` that retrieves most recently added entries first " +"(last in, first out)." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:126 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/asyncio-queue.rst:130 +msgid "" +"This exception is raised when the :meth:`~Queue.get_nowait` method is called " +"on an empty queue." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:136 +msgid "" +"Exception raised when the :meth:`~Queue.put_nowait` method is called on a " +"queue that has reached its *maxsize*." +msgstr "" + +#: ../Doc/library/asyncio-queue.rst:141 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/asyncio-queue.rst:145 +msgid "" +"Queues can be used to distribute workload between several concurrent tasks::" +msgstr "" + +#~ msgid ":class:`Queue`" +#~ msgstr ":class:`Queue`" + +#~ msgid ":class:`PriorityQueue`" +#~ msgstr ":class:`PriorityQueue`" + +#~ msgid ":class:`LifoQueue`" +#~ msgstr ":class:`LifoQueue`" + +#~ msgid "New :meth:`join` and :meth:`task_done` methods." +#~ msgstr "Les nouvelles méthodes :meth:`join` et :meth:`task_done`." + +#~ msgid "This method is a :ref:`coroutine `." +#~ msgstr "Cette méthode est une :ref:`coroutine `." + +#~ msgid "The :meth:`empty` method." +#~ msgstr "La méthode :meth:`empty`." + +#~ msgid "Remove and return an item from the queue." +#~ msgstr "Supprime et donne un élément de la queue." + +#~ msgid "The :meth:`full` method." +#~ msgstr "La méthode :meth:`full`." diff --git a/library/asyncio-stream.po b/library/asyncio-stream.po new file mode 100644 index 000000000..898fa86a8 --- /dev/null +++ b/library/asyncio-stream.po @@ -0,0 +1,422 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-11-29 18:28+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/asyncio-stream.rst:7 +msgid "Streams" +msgstr "Streams" + +#: ../Doc/library/asyncio-stream.rst:9 +msgid "" +"Streams are high-level async/await-ready primitives to work with network " +"connections. Streams allow sending and receiving data without using " +"callbacks or low-level protocols and transports." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:15 +msgid "Here is an example of a TCP echo client written using asyncio streams::" +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:37 +msgid "See also the `Examples`_ section below." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:41 +msgid "Stream Functions" +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:42 +msgid "" +"The following top-level asyncio functions can be used to create and work " +"with streams:" +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:51 +msgid "" +"Establish a network connection and return a pair of ``(reader, writer)`` " +"objects." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:54 +msgid "" +"The returned *reader* and *writer* objects are instances of :class:" +"`StreamReader` and :class:`StreamWriter` classes." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:57 +msgid "" +"The *loop* argument is optional and can always be determined automatically " +"when this function is awaited from a coroutine." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:60 ../Doc/library/asyncio-stream.rst:93 +msgid "" +"*limit* determines the buffer size limit used by the returned :class:" +"`StreamReader` instance. By default the *limit* is set to 64 KiB." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:64 +msgid "" +"The rest of the arguments are passed directly to :meth:`loop." +"create_connection`." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:69 ../Doc/library/asyncio-stream.rst:122 +msgid "The *ssl_handshake_timeout* parameter." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:79 +msgid "Start a socket server." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:81 +msgid "" +"The *client_connected_cb* callback is called whenever a new client " +"connection is established. It receives a ``(reader, writer)`` pair as two " +"arguments, instances of the :class:`StreamReader` and :class:`StreamWriter` " +"classes." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:86 +msgid "" +"*client_connected_cb* can be a plain callable or a :ref:`coroutine function " +"`; if it is a coroutine function, it will be automatically " +"scheduled as a :class:`Task`." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:90 +msgid "" +"The *loop* argument is optional and can always be determined automatically " +"when this method is awaited from a coroutine." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:97 +msgid "" +"The rest of the arguments are passed directly to :meth:`loop.create_server`." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:102 ../Doc/library/asyncio-stream.rst:144 +msgid "The *ssl_handshake_timeout* and *start_serving* parameters." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:106 +msgid "Unix Sockets" +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:111 +msgid "" +"Establish a Unix socket connection and return a pair of ``(reader, writer)``." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:114 +msgid "Similar to :func:`open_connection` but operates on Unix sockets." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:116 +msgid "See also the documentation of :meth:`loop.create_unix_connection`." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:119 ../Doc/library/asyncio-stream.rst:141 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." + +#: ../Doc/library/asyncio-stream.rst:126 +msgid "The *path* parameter can now be a :term:`path-like object`" +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:134 +msgid "Start a Unix socket server." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:136 +msgid "Similar to :func:`start_server` but works with Unix sockets." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:138 +msgid "See also the documentation of :meth:`loop.create_unix_server`." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:148 +msgid "The *path* parameter can now be a :term:`path-like object`." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:155 +msgid "StreamReader" +msgstr "StreamReader" + +#: ../Doc/library/asyncio-stream.rst:159 +msgid "" +"Represents a reader object that provides APIs to read data from the IO " +"stream." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:162 +msgid "" +"It is not recommended to instantiate *StreamReader* objects directly; use :" +"func:`open_connection` and :func:`start_server` instead." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:168 +msgid "" +"Read up to *n* bytes. If *n* is not provided, or set to ``-1``, read until " +"EOF and return all read bytes." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:171 +msgid "" +"If EOF was received and the internal buffer is empty, return an empty " +"``bytes`` object." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:176 +msgid "" +"Read one line, where \"line\" is a sequence of bytes ending with ``\\n``." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:179 +msgid "" +"If EOF is received and ``\\n`` was not found, the method returns partially " +"read data." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:182 +msgid "" +"If EOF is received and the internal buffer is empty, return an empty " +"``bytes`` object." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:187 +msgid "Read exactly *n* bytes." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:189 +msgid "" +"Raise an :exc:`IncompleteReadError` if EOF is reached before *n* can be " +"read. Use the :attr:`IncompleteReadError.partial` attribute to get the " +"partially read data." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:195 +msgid "Read data from the stream until *separator* is found." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:197 +msgid "" +"On success, the data and separator will be removed from the internal buffer " +"(consumed). Returned data will include the separator at the end." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:201 +msgid "" +"If the amount of data read exceeds the configured stream limit, a :exc:" +"`LimitOverrunError` exception is raised, and the data is left in the " +"internal buffer and can be read again." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:205 +msgid "" +"If EOF is reached before the complete separator is found, an :exc:" +"`IncompleteReadError` exception is raised, and the internal buffer is " +"reset. The :attr:`IncompleteReadError.partial` attribute may contain a " +"portion of the separator." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:214 +msgid "Return ``True`` if the buffer is empty and :meth:`feed_eof` was called." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:219 +msgid "StreamWriter" +msgstr "StreamWriter" + +#: ../Doc/library/asyncio-stream.rst:223 +msgid "" +"Represents a writer object that provides APIs to write data to the IO stream." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:226 +msgid "" +"It is not recommended to instantiate *StreamWriter* objects directly; use :" +"func:`open_connection` and :func:`start_server` instead." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:232 +msgid "" +"Return *True* if the underlying transport supports the :meth:`write_eof` " +"method, *False* otherwise." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:237 +msgid "" +"Close the write end of the stream after the buffered write data is flushed." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:242 +msgid "Return the underlying asyncio transport." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:246 +msgid "" +"Access optional transport information; see :meth:`BaseTransport." +"get_extra_info` for details." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:251 +msgid "Write *data* to the stream." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:253 +msgid "" +"This method is not subject to flow control. Calls to ``write()`` should be " +"followed by :meth:`drain`." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:258 +msgid "Write a list (or any iterable) of bytes to the stream." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:260 +msgid "" +"This method is not subject to flow control. Calls to ``writelines()`` should " +"be followed by :meth:`drain`." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:265 +msgid "Wait until it is appropriate to resume writing to the stream. Example::" +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:271 +msgid "" +"This is a flow control method that interacts with the underlying IO write " +"buffer. When the size of the buffer reaches the high watermark, *drain()* " +"blocks until the size of the buffer is drained down to the low watermark and " +"writing can be resumed. When there is nothing to wait for, the :meth:" +"`drain` returns immediately." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:280 +msgid "Close the stream." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:284 +msgid "" +"Return ``True`` if the stream is closed or in the process of being closed." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:291 +msgid "Wait until the stream is closed." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:293 +msgid "" +"Should be called after :meth:`close` to wait until the underlying connection " +"is closed." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:300 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/asyncio-stream.rst:305 +msgid "TCP echo client using streams" +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:307 +msgid "TCP echo client using the :func:`asyncio.open_connection` function::" +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:329 +msgid "" +"The :ref:`TCP echo client protocol " +"` example uses the low-level :meth:" +"`loop.create_connection` method." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:336 +msgid "TCP echo server using streams" +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:338 +msgid "TCP echo server using the :func:`asyncio.start_server` function::" +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:371 +msgid "" +"The :ref:`TCP echo server protocol " +"` example uses the :meth:`loop." +"create_server` method." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:376 +msgid "Get HTTP headers" +msgstr "Récupère les en-têtes HTTP" + +#: ../Doc/library/asyncio-stream.rst:378 +msgid "" +"Simple example querying HTTP headers of the URL passed on the command line::" +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:416 +msgid "Usage::" +msgstr "Utilisation ::" + +#: ../Doc/library/asyncio-stream.rst:420 +msgid "or with HTTPS::" +msgstr "ou avec HTTPS ::" + +#: ../Doc/library/asyncio-stream.rst:428 +msgid "Register an open socket to wait for data using streams" +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:430 +msgid "" +"Coroutine waiting until a socket receives data using the :func:" +"`open_connection` function::" +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:464 +msgid "" +"The :ref:`register an open socket to wait for data using a protocol " +"` example uses a low-level protocol and " +"the :meth:`loop.create_connection` method." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:468 +msgid "" +"The :ref:`watch a file descriptor for read events " +"` example uses the low-level :meth:`loop." +"add_reader` method to watch a file descriptor." +msgstr "" + +#~ msgid "This function is a :ref:`coroutine `." +#~ msgstr "Cette fonction est une :ref:`coroutine `." + +#~ msgid "Get the exception." +#~ msgstr "Récupère l'exception." + +#~ msgid "This method is a :ref:`coroutine `." +#~ msgstr "Cette méthode est une :ref:`coroutine `." + +#~ msgid "Transport." +#~ msgstr "Transport." + +#~ msgid "StreamReaderProtocol" +#~ msgstr "StreamReaderProtocol" + +#~ msgid "IncompleteReadError" +#~ msgstr "IncompleteReadError" + +#~ msgid "Total number of expected bytes (:class:`int`)." +#~ msgstr "Nombre total d'octets attendus (:class:`int`)." diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po new file mode 100644 index 000000000..a0db5bdb6 --- /dev/null +++ b/library/asyncio-subprocess.po @@ -0,0 +1,439 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-15 00:37+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/asyncio-subprocess.rst:7 +msgid "Subprocesses" +msgstr "Sous-processus" + +#: ../Doc/library/asyncio-subprocess.rst:9 +msgid "" +"This section describes high-level async/await asyncio APIs to create and " +"manage subprocesses." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:14 +msgid "" +"Here's an example of how asyncio can run a shell command and obtain its " +"result::" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:35 +msgid "will print::" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:41 +msgid "" +"Because all asyncio subprocess functions are asynchronous and asyncio " +"provides many tools to work with such functions, it is easy to execute and " +"monitor multiple subprocesses in parallel. It is indeed trivial to modify " +"the above example to run several commands simultaneously::" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:53 +msgid "See also the `Examples`_ subsection." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:57 +msgid "Creating Subprocesses" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:63 +msgid "Create a subprocess." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:65 +#: ../Doc/library/asyncio-subprocess.rst:80 +msgid "" +"The *limit* argument sets the buffer limit for :class:`StreamReader` " +"wrappers for :attr:`Process.stdout` and :attr:`Process.stderr` (if :attr:" +"`subprocess.PIPE` is passed to *stdout* and *stderr* arguments)." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:69 +#: ../Doc/library/asyncio-subprocess.rst:84 +msgid "Return a :class:`~asyncio.subprocess.Process` instance." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:71 +msgid "" +"See the documentation of :meth:`loop.subprocess_exec` for other parameters." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:78 +msgid "Run the *cmd* shell command." +msgstr "Exécute la commande *cmd* dans un *shell*." + +#: ../Doc/library/asyncio-subprocess.rst:86 +msgid "" +"See the documentation of :meth:`loop.subprocess_shell` for other parameters." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:91 +msgid "" +"It is the application's responsibility to ensure that all whitespace and " +"special characters are quoted appropriately to avoid `shell injection " +"`_ " +"vulnerabilities. The :func:`shlex.quote` function can be used to properly " +"escape whitespace and special shell characters in strings that are going to " +"be used to construct shell commands." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:100 +msgid "" +"The default asyncio event loop implementation on **Windows** does not " +"support subprocesses. Subprocesses are available for Windows if a :class:" +"`ProactorEventLoop` is used. See :ref:`Subprocess Support on Windows " +"` for details." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:108 +msgid "" +"asyncio also has the following *low-level* APIs to work with subprocesses: :" +"meth:`loop.subprocess_exec`, :meth:`loop.subprocess_shell`, :meth:`loop." +"connect_read_pipe`, :meth:`loop.connect_write_pipe`, as well as the :ref:" +"`Subprocess Transports ` and :ref:`Subprocess " +"Protocols `." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:116 +msgid "Constants" +msgstr "Constantes" + +#: ../Doc/library/asyncio-subprocess.rst:120 +msgid "Can be passed to the *stdin*, *stdout* or *stderr* parameters." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:122 +msgid "" +"If *PIPE* is passed to *stdin* argument, the :attr:`Process.stdin ` attribute will point to a :class:`StreamWriter` " +"instance." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:126 +msgid "" +"If *PIPE* is passed to *stdout* or *stderr* arguments, the :attr:`Process." +"stdout ` and :attr:`Process.stderr " +"` attributes will point to :class:" +"`StreamReader` instances." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:133 +msgid "" +"Special value that can be used as the *stderr* argument and indicates that " +"standard error should be redirected into standard output." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:138 +msgid "" +"Special value that can be used as the *stdin*, *stdout* or *stderr* argument " +"to process creation functions. It indicates that the special file :data:`os." +"devnull` will be used for the corresponding subprocess stream." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:144 +msgid "Interacting with Subprocesses" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:146 +msgid "" +"Both :func:`create_subprocess_exec` and :func:`create_subprocess_shell` " +"functions return instances of the *Process* class. *Process* is a high-" +"level wrapper that allows communicating with subprocesses and watching for " +"their completion." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:153 +msgid "" +"An object that wraps OS processes created by the :func:" +"`create_subprocess_exec` and :func:`create_subprocess_shell` functions." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:157 +msgid "" +"This class is designed to have a similar API to the :class:`subprocess." +"Popen` class, but there are some notable differences:" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:161 +msgid "" +"unlike Popen, Process instances do not have an equivalent to the :meth:" +"`~subprocess.Popen.poll` method;" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:164 +msgid "" +"the :meth:`~asyncio.subprocess.Process.communicate` and :meth:`~asyncio." +"subprocess.Process.wait` methods don't have a *timeout* parameter: use the :" +"func:`wait_for` function;" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:168 +msgid "" +"the :meth:`Process.wait() ` method is " +"asynchronous, whereas :meth:`subprocess.Popen.wait` method is implemented as " +"a blocking busy loop;" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:172 +msgid "the *universal_newlines* parameter is not supported." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:174 +msgid "This class is :ref:`not thread safe `." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:176 +msgid "" +"See also the :ref:`Subprocess and Threads ` " +"section." +msgstr "" +"Voir aussi la section :ref:`sous-processus et fils d'exécution `." + +#: ../Doc/library/asyncio-subprocess.rst:181 +msgid "Wait for the child process to terminate." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:183 +msgid "Set and return the :attr:`returncode` attribute." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:187 +msgid "" +"This method can deadlock when using ``stdout=PIPE`` or ``stderr=PIPE`` and " +"the child process generates so much output that it blocks waiting for the OS " +"pipe buffer to accept more data. Use the :meth:`communicate` method when " +"using pipes to avoid this condition." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:195 +msgid "Interact with process:" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:197 +msgid "send data to *stdin* (if *input* is not ``None``);" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:198 +msgid "read data from *stdout* and *stderr*, until EOF is reached;" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:199 +msgid "wait for process to terminate." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:201 +msgid "" +"The optional *input* argument is the data (:class:`bytes` object) that will " +"be sent to the child process." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:204 +msgid "Return a tuple ``(stdout_data, stderr_data)``." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:206 +msgid "" +"If either :exc:`BrokenPipeError` or :exc:`ConnectionResetError` exception is " +"raised when writing *input* into *stdin*, the exception is ignored. This " +"condition occurs when the process exits before all data are written into " +"*stdin*." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:211 +msgid "" +"If it is desired to send data to the process' *stdin*, the process needs to " +"be created with ``stdin=PIPE``. Similarly, to get anything other than " +"``None`` in the result tuple, the process has to be created with " +"``stdout=PIPE`` and/or ``stderr=PIPE`` arguments." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:217 +msgid "" +"Note, that the data read is buffered in memory, so do not use this method if " +"the data size is large or unlimited." +msgstr "" +"Notez que les données lues sont mises en cache en mémoire, donc n'utilisez " +"pas cette méthode si la taille des données est importante voire illimitée." + +#: ../Doc/library/asyncio-subprocess.rst:222 +msgid "Sends the signal *signal* to the child process." +msgstr "Envoie le signal *signal* au sous-processus." + +#: ../Doc/library/asyncio-subprocess.rst:226 +msgid "" +"On Windows, :py:data:`SIGTERM` is an alias for :meth:`terminate`. " +"``CTRL_C_EVENT`` and ``CTRL_BREAK_EVENT`` can be sent to processes started " +"with a *creationflags* parameter which includes ``CREATE_NEW_PROCESS_GROUP``." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:233 +msgid "Stop the child process." +msgstr "Arrête le sous-processus." + +#: ../Doc/library/asyncio-subprocess.rst:235 +msgid "" +"On POSIX systems this method sends :py:data:`signal.SIGTERM` to the child " +"process." +msgstr "" +"Sur les systèmes POSIX, cette méthode envoie un :py:data:`signal.SIGTERM` au " +"sous-processus." + +#: ../Doc/library/asyncio-subprocess.rst:238 +msgid "" +"On Windows the Win32 API function :c:func:`TerminateProcess` is called to " +"stop the child process." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:243 +msgid "Kill the child." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:245 +msgid "" +"On POSIX systems this method sends :py:data:`SIGKILL` to the child process." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:248 +msgid "On Windows this method is an alias for :meth:`terminate`." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:252 +msgid "" +"Standard input stream (:class:`StreamWriter`) or ``None`` if the process was " +"created with ``stdin=None``." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:257 +msgid "" +"Standard output stream (:class:`StreamReader`) or ``None`` if the process " +"was created with ``stdout=None``." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:262 +msgid "" +"Standard error stream (:class:`StreamReader`) or ``None`` if the process was " +"created with ``stderr=None``." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:267 +msgid "" +"Use the :meth:`communicate` method rather than :attr:`process.stdin.write() " +"`, :attr:`await process.stdout.read() ` or :attr:`await " +"process.stderr.read `. This avoids deadlocks due to streams pausing " +"reading or writing and blocking the child process." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:276 +msgid "Process identification number (PID)." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:278 +msgid "" +"Note that for processes created by the :func:`create_subprocess_shell` " +"function, this attribute is the PID of the spawned shell." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:283 +msgid "Return code of the process when it exits." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:285 +msgid "A ``None`` value indicates that the process has not terminated yet." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:287 +msgid "" +"A negative value ``-N`` indicates that the child was terminated by signal " +"``N`` (POSIX only)." +msgstr "" +"Une valeur négative ``-N`` indique que le sous-processus a été terminé par " +"un signal ``N`` (seulement sur les systèmes *POSIX*)." + +#: ../Doc/library/asyncio-subprocess.rst:294 +msgid "Subprocess and Threads" +msgstr "Sous-processus et fils d'exécution" + +#: ../Doc/library/asyncio-subprocess.rst:296 +msgid "" +"Standard asyncio event loop supports running subprocesses from different " +"threads, but there are limitations:" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:299 +msgid "An event loop must run in the main thread." +msgstr "" +"Une boucle d'évènements doit être exécutée sur le fil d'exécution principal." + +#: ../Doc/library/asyncio-subprocess.rst:301 +msgid "" +"The child watcher must be instantiated in the main thread before executing " +"subprocesses from other threads. Call the :func:`get_child_watcher` function " +"in the main thread to instantiate the child watcher." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:306 +msgid "" +"Note that alternative event loop implementations might not share the above " +"limitations; please refer to their documentation." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:311 +msgid "" +"The :ref:`Concurrency and multithreading in asyncio ` section." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:316 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/asyncio-subprocess.rst:318 +msgid "" +"An example using the :class:`~asyncio.subprocess.Process` class to control a " +"subprocess and the :class:`StreamReader` class to read from its standard " +"output." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:324 +msgid "" +"The subprocess is created by the :func:`create_subprocess_exec` function::" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:355 +msgid "" +"See also the :ref:`same example ` written " +"using low-level APIs." +msgstr "" + +#~ msgid "Windows event loop" +#~ msgstr "Boucle d'évènements Windows" + +#~ msgid "Create a subprocess: high-level API using Process" +#~ msgstr "Créer un processus fils : API de haut niveau utilisant ``Process``" + +#~ msgid "This function is a :ref:`coroutine `." +#~ msgstr "Cette fonction est une :ref:`coroutine `." + +#~ msgid "Other parameters:" +#~ msgstr "Autres paramètres :" + +#~ msgid "This method is a :ref:`coroutine `." +#~ msgstr "Cette méthode est une :ref:`coroutine `." + +#~ msgid "The identifier of the process." +#~ msgstr "L'identifiant du processus." diff --git a/library/asyncio-sync.po b/library/asyncio-sync.po new file mode 100644 index 000000000..aadc9b9f7 --- /dev/null +++ b/library/asyncio-sync.po @@ -0,0 +1,374 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2018-10-15 00:46+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/asyncio-sync.rst:7 +msgid "Synchronization Primitives" +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:9 +msgid "" +"asyncio synchronization primitives are designed to be similar to those of " +"the :mod:`threading` module with two important caveats:" +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:12 +msgid "" +"asyncio primitives are not thread-safe, therefore they should not be used " +"for OS thread synchronization (use :mod:`threading` for that);" +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:16 +msgid "" +"methods of these synchronization primitives do not accept the *timeout* " +"argument; use the :func:`asyncio.wait_for` function to perform operations " +"with timeouts." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:20 +msgid "asyncio has the following basic synchronization primitives:" +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:22 +msgid ":class:`Lock`" +msgstr ":class:`Lock`" + +#: ../Doc/library/asyncio-sync.rst:23 +msgid ":class:`Event`" +msgstr ":class:`Event`" + +#: ../Doc/library/asyncio-sync.rst:24 +msgid ":class:`Condition`" +msgstr ":class:`Condition`" + +#: ../Doc/library/asyncio-sync.rst:25 +msgid ":class:`Semaphore`" +msgstr ":class:`Semaphore`" + +#: ../Doc/library/asyncio-sync.rst:26 +msgid ":class:`BoundedSemaphore`" +msgstr ":class:`BoundedSemaphore`" + +#: ../Doc/library/asyncio-sync.rst:33 +msgid "Lock" +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:37 +msgid "Implements a mutex lock for asyncio tasks. Not thread-safe." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:39 +msgid "" +"An asyncio lock can be used to guarantee exclusive access to a shared " +"resource." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:42 +msgid "The preferred way to use a Lock is an :keyword:`async with` statement::" +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:51 ../Doc/library/asyncio-sync.rst:185 +#: ../Doc/library/asyncio-sync.rst:281 +msgid "which is equivalent to::" +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:64 +msgid "Acquire the lock." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:66 +msgid "" +"This method waits until the lock is *unlocked*, sets it to *locked* and " +"returns ``True``." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:69 +msgid "" +"When more than one coroutine is blocked in :meth:`acquire` waiting for the " +"lock to be unlocked, only one coroutine eventually proceeds." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:73 +msgid "" +"Acquiring a lock is *fair*: the coroutine that proceeds will be the first " +"coroutine that started waiting on the lock." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:78 +msgid "Release the lock." +msgstr "Libère un verrou." + +#: ../Doc/library/asyncio-sync.rst:80 +msgid "When the lock is *locked*, reset it to *unlocked* and return." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:82 +msgid "If the lock is *unlocked*, a :exc:`RuntimeError` is raised." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:86 +msgid "Return ``True`` if the lock is *locked*." +msgstr "Donne ``True`` si le verrou est verrouillé." + +#: ../Doc/library/asyncio-sync.rst:90 +msgid "Event" +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:94 +msgid "An event object. Not thread-safe." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:96 +msgid "" +"An asyncio event can be used to notify multiple asyncio tasks that some " +"event has happened." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:99 +msgid "" +"An Event object manages an internal flag that can be set to *true* with the :" +"meth:`set` method and reset to *false* with the :meth:`clear` method. The :" +"meth:`wait` method blocks until the flag is set to *true*. The flag is set " +"to *false* initially." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:106 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/asyncio-sync.rst:131 +msgid "Wait until the event is set." +msgstr "Attend que l'évènement ait une valeur." + +#: ../Doc/library/asyncio-sync.rst:133 +msgid "" +"If the event is set, return ``True`` immediately. Otherwise block until " +"another task calls :meth:`set`." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:138 +msgid "Set the event." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:140 +msgid "All tasks waiting for event to be set will be immediately awakened." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:145 +msgid "Clear (unset) the event." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:147 +msgid "" +"Tasks awaiting on :meth:`wait` will now block until the :meth:`set` method " +"is called again." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:152 +msgid "Return ``True`` if the event is set." +msgstr "Renvoie ``True`` si l'évènement a une valeur." + +#: ../Doc/library/asyncio-sync.rst:156 +msgid "Condition" +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:160 +msgid "A Condition object. Not thread-safe." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:162 +msgid "" +"An asyncio condition primitive can be used by a task to wait for some event " +"to happen and then get exclusive access to a shared resource." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:166 +msgid "" +"In essence, a Condition object combines the functionality of an :class:" +"`Event` and a :class:`Lock`. It is possible to have multiple Condition " +"objects share one Lock, which allows coordinating exclusive access to a " +"shared resource between different tasks interested in particular states of " +"that shared resource." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:172 +msgid "" +"The optional *lock* argument must be a :class:`Lock` object or ``None``. In " +"the latter case a new Lock object is created automatically." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:176 +msgid "" +"The preferred way to use a Condition is an :keyword:`async with` statement::" +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:198 +msgid "Acquire the underlying lock." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:200 +msgid "" +"This method waits until the underlying lock is *unlocked*, sets it to " +"*locked* and returns ``True``." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:205 +msgid "" +"Wake up at most *n* tasks (1 by default) waiting on this condition. The " +"method is no-op if no tasks are waiting." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:208 ../Doc/library/asyncio-sync.rst:223 +msgid "" +"The lock must be acquired before this method is called and released shortly " +"after. If called with an *unlocked* lock a :exc:`RuntimeError` error is " +"raised." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:214 +msgid "Return ``True`` if the underlying lock is acquired." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:218 +msgid "Wake up all tasks waiting on this condition." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:220 +msgid "This method acts like :meth:`notify`, but wakes up all waiting tasks." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:229 +msgid "Release the underlying lock." +msgstr "Libère le verrou sous-jacent." + +#: ../Doc/library/asyncio-sync.rst:231 +msgid "When invoked on an unlocked lock, a :exc:`RuntimeError` is raised." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:236 +msgid "Wait until notified." +msgstr "Attends d'être notifié." + +#: ../Doc/library/asyncio-sync.rst:238 +msgid "" +"If the calling task has not acquired the lock when this method is called, a :" +"exc:`RuntimeError` is raised." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:241 +msgid "" +"This method releases the underlying lock, and then blocks until it is " +"awakened by a :meth:`notify` or :meth:`notify_all` call. Once awakened, the " +"Condition re-acquires its lock and this method returns ``True``." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:248 +msgid "Wait until a predicate becomes *true*." +msgstr "Attends jusqu'à ce qu'un prédicat devienne vrai." + +#: ../Doc/library/asyncio-sync.rst:250 +msgid "" +"The predicate must be a callable which result will be interpreted as a " +"boolean value. The final value is the return value." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:256 +msgid "Semaphore" +msgstr "Sémaphore" + +#: ../Doc/library/asyncio-sync.rst:260 +msgid "A Semaphore object. Not thread-safe." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:262 +msgid "" +"A semaphore manages an internal counter which is decremented by each :meth:" +"`acquire` call and incremented by each :meth:`release` call. The counter can " +"never go below zero; when :meth:`acquire` finds that it is zero, it blocks, " +"waiting until some task calls :meth:`release`." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:268 +msgid "" +"The optional *value* argument gives the initial value for the internal " +"counter (``1`` by default). If the given value is less than ``0`` a :exc:" +"`ValueError` is raised." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:272 +msgid "" +"The preferred way to use a Semaphore is an :keyword:`async with` statement::" +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:294 +msgid "Acquire a semaphore." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:296 +msgid "" +"If the internal counter is greater than zero, decrement it by one and return " +"``True`` immediately. If it is zero, wait until a :meth:`release` is called " +"and return ``True``." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:302 +msgid "Returns ``True`` if semaphore can not be acquired immediately." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:306 +msgid "" +"Release a semaphore, incrementing the internal counter by one. Can wake up a " +"task waiting to acquire the semaphore." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:309 +msgid "" +"Unlike :class:`BoundedSemaphore`, :class:`Semaphore` allows making more " +"``release()`` calls than ``acquire()`` calls." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:314 +msgid "BoundedSemaphore" +msgstr "BoundedSemaphore" + +#: ../Doc/library/asyncio-sync.rst:318 +msgid "A bounded semaphore object. Not thread-safe." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:320 +msgid "" +"Bounded Semaphore is a version of :class:`Semaphore` that raises a :exc:" +"`ValueError` in :meth:`~Semaphore.release` if it increases the internal " +"counter above the initial *value*." +msgstr "" + +#: ../Doc/library/asyncio-sync.rst:330 +msgid "" +"Acquiring a lock using ``await lock`` or ``yield from lock`` and/or :keyword:" +"`with` statement (``with await lock``, ``with (yield from lock)``) is " +"deprecated. Use ``async with lock`` instead." +msgstr "" + +#~ msgid "Semaphores:" +#~ msgstr "Sémaphores :" + +#~ msgid "This method is a :ref:`coroutine `." +#~ msgstr "Cette méthode est une :ref:`coroutine `." + +#~ msgid "There is no return value." +#~ msgstr "Il n'y a pas de valeur de retour." + +#~ msgid "Semaphores" +#~ msgstr "Sémaphores" diff --git a/library/asyncio-task.po b/library/asyncio-task.po new file mode 100644 index 000000000..7d57083bd --- /dev/null +++ b/library/asyncio-task.po @@ -0,0 +1,1249 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 20:05+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/asyncio-task.rst:6 +msgid "Coroutines and Tasks" +msgstr "Coroutines et tâches" + +#: ../Doc/library/asyncio-task.rst:8 +msgid "" +"This section outlines high-level asyncio APIs to work with coroutines and " +"Tasks." +msgstr "" +"Cette section donne un aperçu des API de haut-niveau du module *asyncio* " +"pour utiliser les coroutines et les tâches." + +#: ../Doc/library/asyncio-task.rst:19 ../Doc/library/asyncio-task.rst:121 +msgid "Coroutines" +msgstr "Coroutines" + +#: ../Doc/library/asyncio-task.rst:21 +msgid "" +"Coroutines declared with async/await syntax is the preferred way of writing " +"asyncio applications. For example, the following snippet of code (requires " +"Python 3.7+) prints \"hello\", waits 1 second, and then prints \"world\"::" +msgstr "" +"Il est recommandé d'utiliser la syntaxe *async* / *await* pour développer " +"des programmes *asyncio*. Par exemple, le morceau de code suivant " +"(nécessitant Python 3.7 ou supérieur) affiche *hello*, attend une seconde et " +"affiche ensuite *world* ::" + +#: ../Doc/library/asyncio-task.rst:37 +msgid "" +"Note that simply calling a coroutine will not schedule it to be executed::" +msgstr "Appeler une coroutine ne la planifie pas pour exécution ::" + +#: ../Doc/library/asyncio-task.rst:43 +msgid "To actually run a coroutine, asyncio provides three main mechanisms:" +msgstr "" +"Pour réellement exécuter une coroutine, *asyncio* fournit trois mécanismes " +"principaux :" + +#: ../Doc/library/asyncio-task.rst:45 +msgid "" +"The :func:`asyncio.run` function to run the top-level entry point \"main()\" " +"function (see the above example.)" +msgstr "" +"La fonction :func:`asyncio.run` pour exécuter la fonction « main() », le " +"point d'entrée de haut-niveau (voir l'exemple ci-dessus)." + +#: ../Doc/library/asyncio-task.rst:48 +msgid "" +"Awaiting on a coroutine. The following snippet of code will print \"hello\" " +"after waiting for 1 second, and then print \"world\" after waiting for " +"*another* 2 seconds::" +msgstr "" +"Attendre une coroutine. Le morceau de code suivant attend une seconde, " +"affiche « hello », attend 2 secondes *supplémentaires*, puis affiche enfin " +"*world* ::" + +#: ../Doc/library/asyncio-task.rst:69 +msgid "Expected output::" +msgstr "Sortie attendue ::" + +#: ../Doc/library/asyncio-task.rst:76 +msgid "" +"The :func:`asyncio.create_task` function to run coroutines concurrently as " +"asyncio :class:`Tasks `." +msgstr "" +"La fonction :func:`asyncio.create_task` pour exécuter de manière concurrente " +"des coroutines en tant que :class:`tâches ` *asyncio*." + +#: ../Doc/library/asyncio-task.rst:79 +msgid "" +"Let's modify the above example and run two ``say_after`` coroutines " +"*concurrently*::" +msgstr "" +"Modifions l'exemple ci-dessus et lançons deux coroutines ``say_after`` *de " +"manière concurrente* ::" + +#: ../Doc/library/asyncio-task.rst:98 +msgid "" +"Note that expected output now shows that the snippet runs 1 second faster " +"than before::" +msgstr "" +"La sortie attendue montre à présent que ce code s'exécute une seconde plus " +"rapidement que le précédent ::" + +#: ../Doc/library/asyncio-task.rst:110 +msgid "Awaitables" +msgstr "Awaitables" + +#: ../Doc/library/asyncio-task.rst:112 +msgid "" +"We say that an object is an **awaitable** object if it can be used in an :" +"keyword:`await` expression. Many asyncio APIs are designed to accept " +"awaitables." +msgstr "" +"Un objet est dit *awaitable* (qui peut être attendu) s'il peut être utilisé " +"dans une expression :keyword:`await`. Beaucoup d'API d'*asyncio* sont " +"conçues pour accepter des *awaitables*." + +#: ../Doc/library/asyncio-task.rst:116 +msgid "" +"There are three main types of *awaitable* objects: **coroutines**, " +"**Tasks**, and **Futures**." +msgstr "" +"Il existe trois types principaux d'*awaitables* : les **coroutines**, les " +"**tâches** et les **futurs**." + +#: ../Doc/library/asyncio-task.rst:122 +msgid "" +"Python coroutines are *awaitables* and therefore can be awaited from other " +"coroutines::" +msgstr "" +"Les coroutines sont des *awaitables* et peuvent donc être attendues par " +"d'autres coroutines ::" + +#: ../Doc/library/asyncio-task.rst:143 +msgid "" +"In this documentation the term \"coroutine\" can be used for two closely " +"related concepts:" +msgstr "" +"Dans cette documentation, le terme « coroutine » est utilisé pour désigner " +"deux concepts voisins :" + +#: ../Doc/library/asyncio-task.rst:146 +msgid "a *coroutine function*: an :keyword:`async def` function;" +msgstr "une *fonction coroutine* : une fonction :keyword:`async def`;" + +#: ../Doc/library/asyncio-task.rst:148 +msgid "" +"a *coroutine object*: an object returned by calling a *coroutine function*." +msgstr "un *objet coroutine* : un objet renvoyé par une *fonction coroutine*." + +#: ../Doc/library/asyncio-task.rst:151 +msgid "" +"asyncio also supports legacy :ref:`generator-based " +"` coroutines." +msgstr "" +"*asyncio* implémente également les coroutines :ref:`basées sur des " +"générateurs ` ; celles-ci sont obsolètes." + +#: ../Doc/library/asyncio-task.rst:156 +msgid "Tasks" +msgstr "Tâches" + +#: ../Doc/library/asyncio-task.rst:157 +msgid "*Tasks* are used to schedule coroutines *concurrently*." +msgstr "" +"Les *tâches* servent à planifier des coroutines de façon à ce qu'elles " +"s'exécutent de manière concurrente." + +#: ../Doc/library/asyncio-task.rst:159 +msgid "" +"When a coroutine is wrapped into a *Task* with functions like :func:`asyncio." +"create_task` the coroutine is automatically scheduled to run soon::" +msgstr "" +"Lorsqu'une coroutine est encapsulée dans une *tâche* à l'aide de fonctions " +"comme :func:`asyncio.create_task`, la coroutine est automatiquement " +"planifiée pour s'exécuter prochainement ::" + +#: ../Doc/library/asyncio-task.rst:181 +msgid "Futures" +msgstr "Futurs" + +#: ../Doc/library/asyncio-task.rst:182 +msgid "" +"A :class:`Future` is a special **low-level** awaitable object that " +"represents an **eventual result** of an asynchronous operation." +msgstr "" +"Un :class:`Future` est un objet *awaitable* spécial de **bas-niveau**, qui " +"représente le **résultat final** d'une opération asynchrone." + +#: ../Doc/library/asyncio-task.rst:185 +msgid "" +"When a Future object is *awaited* it means that the coroutine will wait " +"until the Future is resolved in some other place." +msgstr "" +"Quand un objet *Future* est *attendu*, cela signifie que la coroutine " +"attendra que ce futur soit résolu à un autre endroit." + +#: ../Doc/library/asyncio-task.rst:188 +msgid "" +"Future objects in asyncio are needed to allow callback-based code to be used " +"with async/await." +msgstr "" +"Les objets *Future* d'*asyncio* sont nécessaires pour permettre l'exécution " +"de code basé sur les fonctions de rappel avec la syntaxe *async* / *await*." + +#: ../Doc/library/asyncio-task.rst:191 +msgid "" +"Normally **there is no need** to create Future objects at the application " +"level code." +msgstr "" +"Il est normalement **inutile** de créer des objets *Future* dans la couche " +"applicative du code." + +#: ../Doc/library/asyncio-task.rst:194 +msgid "" +"Future objects, sometimes exposed by libraries and some asyncio APIs, can be " +"awaited::" +msgstr "" +"Les objets *Future*, parfois exposés par des bibliothèques et quelques API " +"d'*asyncio*, peuvent être attendus ::" + +#: ../Doc/library/asyncio-task.rst:206 +msgid "" +"A good example of a low-level function that returns a Future object is :meth:" +"`loop.run_in_executor`." +msgstr "" +":meth:`loop.run_in_executor` est l'exemple typique d'une fonction bas-niveau " +"renvoyant un objet *Future*." + +#: ../Doc/library/asyncio-task.rst:211 +msgid "Running an asyncio Program" +msgstr "Exécution d'un programme *asyncio*" + +#: ../Doc/library/asyncio-task.rst:215 +msgid "" +"This function runs the passed coroutine, taking care of managing the asyncio " +"event loop and *finalizing asynchronous generators*." +msgstr "" +"Cette fonction exécute la coroutine passée en argument. Elle gère la boucle " +"d'événements *asyncio* et *finalise les générateurs asynchrones*." + +#: ../Doc/library/asyncio-task.rst:219 +msgid "" +"This function cannot be called when another asyncio event loop is running in " +"the same thread." +msgstr "" +"Cette fonction ne peut pas être appelée si une autre boucle d'événement " +"s'exécute dans le même fil d'exécution." + +#: ../Doc/library/asyncio-task.rst:222 +msgid "If *debug* is ``True``, the event loop will be run in debug mode." +msgstr "" +"Si *debug* vaut ``True``, la boucle d'événement s'exécute en mode de " +"débogage." + +#: ../Doc/library/asyncio-task.rst:224 +msgid "" +"This function always creates a new event loop and closes it at the end. It " +"should be used as a main entry point for asyncio programs, and should " +"ideally only be called once." +msgstr "" +"Cette fonction crée toujours une nouvelle boucle d'événement et la clôt à la " +"fin. Elle doit être utilisée comme point d'entrée principal des programmes " +"*asyncio* et ne doit être idéalement appelée qu'une seule fois." + +#: ../Doc/library/asyncio-task.rst:228 +msgid "" +"**Important:** this function has been added to asyncio in Python 3.7 on a :" +"term:`provisional basis `." +msgstr "" +"**Important :** cette fonction a été ajoutée à *asyncio* dans Python 3.7 de :" +"term:`manière provisoire `." + +#: ../Doc/library/asyncio-task.rst:234 +msgid "Creating Tasks" +msgstr "Création de tâches" + +#: ../Doc/library/asyncio-task.rst:238 +msgid "" +"Wrap the *coro* :ref:`coroutine ` into a :class:`Task` and " +"schedule its execution. Return the Task object." +msgstr "" +"Encapsule la :ref:`coroutine ` *coro* dans une tâche et la " +"planifie pour exécution. Renvoie l'objet :class:`Task`." + +#: ../Doc/library/asyncio-task.rst:241 +msgid "" +"The task is executed in the loop returned by :func:`get_running_loop`, :exc:" +"`RuntimeError` is raised if there is no running loop in current thread." +msgstr "" +"La tâche est exécutée dans la boucle renvoyée par :func:" +"`get_running_loop` ; :exc:`RuntimeError` est levée s'il n'y a pas de boucle " +"en cours d'exécution dans le fil actuel." + +#: ../Doc/library/asyncio-task.rst:245 +msgid "" +"This function has been **added in Python 3.7**. Prior to Python 3.7, the " +"low-level :func:`asyncio.ensure_future` function can be used instead::" +msgstr "" +"Cette fonction a été **ajoutée dans Python 3.7**. Pour les versions " +"antérieures à la 3.7, la fonction de bas-niveau :func:`asyncio." +"ensure_future` peut-être utilisée ::" + +#: ../Doc/library/asyncio-task.rst:264 +msgid "Sleeping" +msgstr "Attente" + +#: ../Doc/library/asyncio-task.rst:268 +msgid "Block for *delay* seconds." +msgstr "Attend pendant *delay* secondes." + +#: ../Doc/library/asyncio-task.rst:270 +msgid "" +"If *result* is provided, it is returned to the caller when the coroutine " +"completes." +msgstr "" +"Si *result* est spécifié, il est renvoyé à l'appelant quand la coroutine se " +"termine." + +#: ../Doc/library/asyncio-task.rst:273 +msgid "" +"``sleep()`` always suspends the current task, allowing other tasks to run." +msgstr "" +"``sleep()`` suspend systématiquement la tâche courante, ce qui permet aux " +"autres tâches de s'exécuter." + +#: ../Doc/library/asyncio-task.rst:276 ../Doc/library/asyncio-task.rst:434 +#: ../Doc/library/asyncio-task.rst:486 +msgid "" +"The *loop* argument is deprecated and scheduled for removal in Python 3.10." +msgstr "L'argument *loop* est obsolète et sera supprimé en Python 3.10." + +#: ../Doc/library/asyncio-task.rst:281 +msgid "" +"Example of coroutine displaying the current date every second for 5 seconds::" +msgstr "" +"Exemple d'une coroutine affichant la date toutes les secondes pendant 5 " +"secondes ::" + +#: ../Doc/library/asyncio-task.rst:300 +msgid "Running Tasks Concurrently" +msgstr "Exécution de tâches de manière concurrente" + +#: ../Doc/library/asyncio-task.rst:304 +msgid "" +"Run :ref:`awaitable objects ` in the *aws* sequence " +"*concurrently*." +msgstr "" +"Exécute les objets :ref:`awaitable ` de la séquence " +"*aws*, *de manière concurrente*." + +#: ../Doc/library/asyncio-task.rst:307 +msgid "" +"If any awaitable in *aws* is a coroutine, it is automatically scheduled as a " +"Task." +msgstr "" +"Si un *awaitable* de *aws* est une coroutine, celui-ci est automatiquement " +"planifié comme une tâche." + +#: ../Doc/library/asyncio-task.rst:310 +msgid "" +"If all awaitables are completed successfully, the result is an aggregate " +"list of returned values. The order of result values corresponds to the " +"order of awaitables in *aws*." +msgstr "" +"Si tous les *awaitables* s'achèvent avec succès, le résultat est la liste " +"des valeurs renvoyées. L'ordre de cette liste correspond à l'ordre des " +"*awaitables* dans *aws*." + +#: ../Doc/library/asyncio-task.rst:314 +msgid "" +"If *return_exceptions* is ``False`` (default), the first raised exception is " +"immediately propagated to the task that awaits on ``gather()``. Other " +"awaitables in the *aws* sequence **won't be cancelled** and will continue to " +"run." +msgstr "" +"Si *return_exceptions* vaut ``False`` (valeur par défaut), la première " +"exception levée est immédiatement propagée vers la tâche en attente dans le " +"``gather()``. Les autres *awaitables* dans la séquence *aws* **ne sont pas " +"annulés** et poursuivent leur exécution." + +#: ../Doc/library/asyncio-task.rst:319 +msgid "" +"If *return_exceptions* is ``True``, exceptions are treated the same as " +"successful results, and aggregated in the result list." +msgstr "" +"Si *return_exceptions* vaut ``True``, les exceptions sont traitées de la " +"même manière que les exécutions normales, et incluses dans la liste des " +"résultats." + +#: ../Doc/library/asyncio-task.rst:322 +msgid "" +"If ``gather()`` is *cancelled*, all submitted awaitables (that have not " +"completed yet) are also *cancelled*." +msgstr "" +"Si ``gather()`` est *annulé*, tous les *awaitables* en cours (ceux qui n'ont " +"pas encore fini de s'exécuter) sont également *annulés*." + +#: ../Doc/library/asyncio-task.rst:325 +msgid "" +"If any Task or Future from the *aws* sequence is *cancelled*, it is treated " +"as if it raised :exc:`CancelledError` -- the ``gather()`` call is **not** " +"cancelled in this case. This is to prevent the cancellation of one " +"submitted Task/Future to cause other Tasks/Futures to be cancelled." +msgstr "" +"Si n'importe quel *Task* ou *Future* de la séquence *aws* est *annulé*, il " +"est traité comme s'il avait levé :exc:`CancelledError` — l'appel à " +"``gather()`` n'est alors **pas** annulé. Ceci permet d'empêcher que " +"l'annulation d'une tâche ou d'un futur entraîne l'annulation des autres " +"tâches ou futurs." + +#: ../Doc/library/asyncio-task.rst:333 ../Doc/library/asyncio-task.rst:439 +#: ../Doc/library/asyncio-task.rst:561 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/asyncio-task.rst:367 +msgid "" +"If the *gather* itself is cancelled, the cancellation is propagated " +"regardless of *return_exceptions*." +msgstr "" +"Si *gather* est lui-même annulé, l'annulation est propagée indépendamment de " +"*return_exceptions*." + +#: ../Doc/library/asyncio-task.rst:373 +msgid "Shielding From Cancellation" +msgstr "Protection contre l'annulation" + +#: ../Doc/library/asyncio-task.rst:377 +msgid "" +"Protect an :ref:`awaitable object ` from being :meth:" +"`cancelled `." +msgstr "" +"Empêche qu'un objet :ref:`awaitable ` puisse être :meth:" +"`annulé `." + +#: ../Doc/library/asyncio-task.rst:380 ../Doc/library/asyncio-task.rst:417 +msgid "If *aw* is a coroutine it is automatically scheduled as a Task." +msgstr "" +"Si *aw* est une coroutine, elle est planifiée automatiquement comme une " +"tâche." + +#: ../Doc/library/asyncio-task.rst:382 +msgid "The statement::" +msgstr "L'instruction ::" + +#: ../Doc/library/asyncio-task.rst:386 +msgid "is equivalent to::" +msgstr "est équivalente à ::" + +#: ../Doc/library/asyncio-task.rst:390 +msgid "" +"*except* that if the coroutine containing it is cancelled, the Task running " +"in ``something()`` is not cancelled. From the point of view of " +"``something()``, the cancellation did not happen. Although its caller is " +"still cancelled, so the \"await\" expression still raises a :exc:" +"`CancelledError`." +msgstr "" +"*à la différence près* que si la coroutine qui la contient est annulée, la " +"tâche s'exécutant dans ``something()`` n'est pas annulée. Du point de vue " +"de ``something()``, il n'y a pas eu d'annulation. Cependant, son appelant " +"est bien annulé, donc l'expression *await* lève bien une :exc:" +"`CancelledError`." + +#: ../Doc/library/asyncio-task.rst:396 +msgid "" +"If ``something()`` is cancelled by other means (i.e. from within itself) " +"that would also cancel ``shield()``." +msgstr "" +"Si ``something()`` est annulée d'une autre façon (*i.e.* depuis elle-même) " +"ceci annule également ``shield()``." + +#: ../Doc/library/asyncio-task.rst:399 +msgid "" +"If it is desired to completely ignore cancellation (not recommended) the " +"``shield()`` function should be combined with a try/except clause, as " +"follows::" +msgstr "" +"Pour ignorer complètement l'annulation (déconseillé), la fonction " +"``shield()`` peut être combinée à une clause *try* / *except*, comme dans le " +"code ci-dessous ::" + +#: ../Doc/library/asyncio-task.rst:410 +msgid "Timeouts" +msgstr "Délais d'attente" + +#: ../Doc/library/asyncio-task.rst:414 +msgid "" +"Wait for the *aw* :ref:`awaitable ` to complete with a " +"timeout." +msgstr "" +"Attend la fin de l':ref:`awaitable ` *aw* avec délai " +"d'attente." + +#: ../Doc/library/asyncio-task.rst:419 +msgid "" +"*timeout* can either be ``None`` or a float or int number of seconds to wait " +"for. If *timeout* is ``None``, block until the future completes." +msgstr "" +"*timeout* peut-être soit ``None``, soit le nombre de secondes (entier ou " +"décimal) d'attente. Si *timeout* vaut ``None``, la fonction s'interrompt " +"jusqu'à ce que le futur s'achève." + +#: ../Doc/library/asyncio-task.rst:423 +msgid "" +"If a timeout occurs, it cancels the task and raises :exc:`asyncio." +"TimeoutError`." +msgstr "" +"Si le délai d'attente maximal est dépassé, la tâche est annulée et " +"l'exception :exc:`asyncio.TimeoutError` est levée." + +#: ../Doc/library/asyncio-task.rst:426 +msgid "" +"To avoid the task :meth:`cancellation `, wrap it in :func:" +"`shield`." +msgstr "" +"Pour empêcher :meth:`l'annulation ` de la tâche, il est " +"nécessaire de l'encapsuler dans une fonction :func:`shield`." + +#: ../Doc/library/asyncio-task.rst:429 +msgid "" +"The function will wait until the future is actually cancelled, so the total " +"wait time may exceed the *timeout*." +msgstr "" +"Cette fonction attend que le futur soit réellement annulé, donc le temps " +"d'attente total peut être supérieur à *timeout*." + +#: ../Doc/library/asyncio-task.rst:432 +msgid "If the wait is cancelled, the future *aw* is also cancelled." +msgstr "Si l'attente est annulée, le futur *aw* est également annulé." + +#: ../Doc/library/asyncio-task.rst:459 +msgid "" +"When *aw* is cancelled due to a timeout, ``wait_for`` waits for *aw* to be " +"cancelled. Previously, it raised :exc:`asyncio.TimeoutError` immediately." +msgstr "" +"Si le dépassement du délai d'attente maximal provoque l'annulation de *aw*, " +"``wait_for`` attend que *aw* soit annulée. Auparavant, l'exception :exc:" +"`asyncio.TimeoutError` était immédiatement levée." + +#: ../Doc/library/asyncio-task.rst:466 +msgid "Waiting Primitives" +msgstr "Primitives d'attente" + +#: ../Doc/library/asyncio-task.rst:471 +msgid "" +"Run :ref:`awaitable objects ` in the *aws* set " +"concurrently and block until the condition specified by *return_when*." +msgstr "" +"Exécute les objets :ref:`awaitables ` de l'ensemble " +"*aws* de manière concurrente, et s'interrompt jusqu'à ce que la condition " +"décrite dans *return_when* soit vraie." + +#: ../Doc/library/asyncio-task.rst:475 +msgid "" +"If any awaitable in *aws* is a coroutine, it is automatically scheduled as a " +"Task. Passing coroutines objects to ``wait()`` directly is deprecated as it " +"leads to :ref:`confusing behavior `." +msgstr "" +"Si un *awaitable* de *aws* est une coroutine, celle-ci est automatiquement " +"planifiée comme une tâche. Passer directement des objets coroutines à " +"``wait()`` est obsolète, car ceci conduisait :ref:`à un comportement portant " +"à confusion `." + +#: ../Doc/library/asyncio-task.rst:480 +msgid "Returns two sets of Tasks/Futures: ``(done, pending)``." +msgstr "Renvoie deux ensembles de *Tasks* / *Futures* : ``(done, pending)``." + +#: ../Doc/library/asyncio-task.rst:482 +msgid "Usage::" +msgstr "Utilisation ::" + +#: ../Doc/library/asyncio-task.rst:489 +msgid "" +"*timeout* (a float or int), if specified, can be used to control the maximum " +"number of seconds to wait before returning." +msgstr "" +"*timeout* (entier ou décimal), si précisé, peut-être utilisé pour contrôler " +"le nombre maximal de secondes d'attente avant de se terminer." + +#: ../Doc/library/asyncio-task.rst:492 +msgid "" +"Note that this function does not raise :exc:`asyncio.TimeoutError`. Futures " +"or Tasks that aren't done when the timeout occurs are simply returned in the " +"second set." +msgstr "" +"Cette fonction ne lève pas :exc:`asyncio.TimeoutError`. Les futurs et les " +"tâches qui ne sont pas finis quand le délai d'attente maximal est dépassé " +"sont tout simplement renvoyés dans le second ensemble." + +#: ../Doc/library/asyncio-task.rst:496 +msgid "" +"*return_when* indicates when this function should return. It must be one of " +"the following constants:" +msgstr "" +"*return_when* indique quand la fonction doit se terminer. Il peut prendre " +"les valeurs suivantes :" + +#: ../Doc/library/asyncio-task.rst:502 +msgid "Constant" +msgstr "Constante" + +#: ../Doc/library/asyncio-task.rst:502 +msgid "Description" +msgstr "Description" + +#: ../Doc/library/asyncio-task.rst:504 +msgid ":const:`FIRST_COMPLETED`" +msgstr ":const:`FIRST_COMPLETED`" + +#: ../Doc/library/asyncio-task.rst:504 +msgid "The function will return when any future finishes or is cancelled." +msgstr "" +"La fonction se termine lorsque n'importe quel futur se termine ou est annulé." + +#: ../Doc/library/asyncio-task.rst:507 +msgid ":const:`FIRST_EXCEPTION`" +msgstr ":const:`FIRST_EXCEPTION`" + +#: ../Doc/library/asyncio-task.rst:507 +msgid "" +"The function will return when any future finishes by raising an exception. " +"If no future raises an exception then it is equivalent to :const:" +"`ALL_COMPLETED`." +msgstr "" +"La fonction se termine lorsque n'importe quel futur se termine en levant une " +"exception. Si aucun *futur* ne lève d'exception, équivaut à :const:" +"`ALL_COMPLETED`." + +#: ../Doc/library/asyncio-task.rst:513 +msgid ":const:`ALL_COMPLETED`" +msgstr ":const:`ALL_COMPLETED`" + +#: ../Doc/library/asyncio-task.rst:513 +msgid "The function will return when all futures finish or are cancelled." +msgstr "" +"La fonction se termine lorsque les *futurs* sont tous finis ou annulés." + +#: ../Doc/library/asyncio-task.rst:517 +msgid "" +"Unlike :func:`~asyncio.wait_for`, ``wait()`` does not cancel the futures " +"when a timeout occurs." +msgstr "" +"À la différence de :func:`~asyncio.wait_for`, ``wait()`` n'annule pas les " +"futurs quand le délai d'attente est dépassé." + +#: ../Doc/library/asyncio-task.rst:523 +msgid "" +"``wait()`` schedules coroutines as Tasks automatically and later returns " +"those implicitly created Task objects in ``(done, pending)`` sets. " +"Therefore the following code won't work as expected::" +msgstr "" +"``wait()`` planifie automatiquement les coroutines comme des tâches et " +"renvoie les objets *Task* ainsi créés dans les ensembles ``(done, " +"pending)``. Le code suivant ne fonctionne donc pas comme voulu ::" + +#: ../Doc/library/asyncio-task.rst:536 +msgid "Here is how the above snippet can be fixed::" +msgstr "Voici comment corriger le morceau de code ci-dessus ::" + +#: ../Doc/library/asyncio-task.rst:547 +msgid "Passing coroutine objects to ``wait()`` directly is deprecated." +msgstr "Passer directement des objets coroutines à ``wait()`` est obsolète." + +#: ../Doc/library/asyncio-task.rst:553 +msgid "" +"Run :ref:`awaitable objects ` in the *aws* set " +"concurrently. Return an iterator of :class:`Future` objects. Each Future " +"object returned represents the earliest result from the set of the remaining " +"awaitables." +msgstr "" +"Exécute les objets :ref:`awaitables ` de l'ensemble " +"*aws* de manière concurrente. Renvoie un itérateur sur des objets :class:" +"`Future`. Chaque objet *futur* renvoyé représente le résultat le plus récent " +"de l'ensemble des *awaitables* restants." + +#: ../Doc/library/asyncio-task.rst:558 +msgid "" +"Raises :exc:`asyncio.TimeoutError` if the timeout occurs before all Futures " +"are done." +msgstr "" +"Lève une exception :exc:`asyncio.TimeoutError` si le délai d'attente est " +"dépassé avant que tous les futurs ne soient achevés." + +#: ../Doc/library/asyncio-task.rst:569 +msgid "Scheduling From Other Threads" +msgstr "Planification depuis d'autres fils d'exécution" + +#: ../Doc/library/asyncio-task.rst:573 +msgid "Submit a coroutine to the given event loop. Thread-safe." +msgstr "" +"Enregistre une coroutine dans la boucle d'exécution actuelle. Cette " +"opération est compatible avec les programmes à multiples fils d'exécution " +"(*thread-safe*)." + +#: ../Doc/library/asyncio-task.rst:575 +msgid "" +"Return a :class:`concurrent.futures.Future` to wait for the result from " +"another OS thread." +msgstr "" +"Renvoie un :class:`concurrent.futures.Future` pour attendre le résultat d'un " +"autre fil d'exécution du système d'exploitation." + +#: ../Doc/library/asyncio-task.rst:578 +msgid "" +"This function is meant to be called from a different OS thread than the one " +"where the event loop is running. Example::" +msgstr "" +"Cette fonction est faite pour être appelée par un fil d'exécution distinct " +"de celui dans laquelle la boucle d'événement s'exécute. Exemple ::" + +#: ../Doc/library/asyncio-task.rst:590 +msgid "" +"If an exception is raised in the coroutine, the returned Future will be " +"notified. It can also be used to cancel the task in the event loop::" +msgstr "" +"Si une exception est levée dans une coroutine, le futur renvoyé en sera " +"averti. Elle peut également être utilisée pour annuler la tâche de la boucle " +"d'événement ::" + +#: ../Doc/library/asyncio-task.rst:604 +msgid "" +"See the :ref:`concurrency and multithreading ` " +"section of the documentation." +msgstr "" +"Voir la section :ref:`exécution concurrente et multi-fils d'exécution " +"` de la documentation." + +#: ../Doc/library/asyncio-task.rst:607 +msgid "" +"Unlike other asyncio functions this function requires the *loop* argument to " +"be passed explicitly." +msgstr "" +"À la différence des autres fonction d'*asyncio*, cette fonction requiert que " +"*loop* soit passé de manière explicite." + +#: ../Doc/library/asyncio-task.rst:614 +msgid "Introspection" +msgstr "Introspection" + +#: ../Doc/library/asyncio-task.rst:619 +msgid "" +"Return the currently running :class:`Task` instance, or ``None`` if no task " +"is running." +msgstr "" +"Renvoie l'instance de la :class:`Task` en cours d'exécution, ou ``None`` " +"s'il n'y a pas de tâche en cours." + +#: ../Doc/library/asyncio-task.rst:622 +msgid "" +"If *loop* is ``None`` :func:`get_running_loop` is used to get the current " +"loop." +msgstr "" +"Si *loop* vaut ``None``, :func:`get_running_loop` est appelée pour récupérer " +"la boucle en cours d'exécution." + +#: ../Doc/library/asyncio-task.rst:630 +msgid "Return a set of not yet finished :class:`Task` objects run by the loop." +msgstr "" +"Renvoie l'ensemble des :class:`Task` non terminés en cours d'exécution dans " +"la boucle." + +#: ../Doc/library/asyncio-task.rst:633 +msgid "" +"If *loop* is ``None``, :func:`get_running_loop` is used for getting current " +"loop." +msgstr "" +"Si *loop* vaut ``None``, :func:`get_running_loop` est appelée pour récupérer " +"la boucle en cours d'exécution." + +#: ../Doc/library/asyncio-task.rst:640 +msgid "Task Object" +msgstr "Objets *Task*" + +#: ../Doc/library/asyncio-task.rst:644 +msgid "" +"A :class:`Future-like ` object that runs a Python :ref:`coroutine " +"`. Not thread-safe." +msgstr "" +"Objet compatible avec :class:`Future ` qui exécute une :ref:" +"`coroutine ` Python. Cet objet n'est pas utilisable dans des " +"programmes à fils d'exécution multiples." + +#: ../Doc/library/asyncio-task.rst:647 +msgid "" +"Tasks are used to run coroutines in event loops. If a coroutine awaits on a " +"Future, the Task suspends the execution of the coroutine and waits for the " +"completion of the Future. When the Future is *done*, the execution of the " +"wrapped coroutine resumes." +msgstr "" +"Les tâches servent à exécuter des coroutines dans des boucles d'événements. " +"Si une coroutine attend un futur, la tâche interrompt son exécution et " +"attend la fin de ce *futur*. Quand celui-ci est terminé, l'exécution de la " +"coroutine encapsulée reprend." + +#: ../Doc/library/asyncio-task.rst:653 +msgid "" +"Event loops use cooperative scheduling: an event loop runs one Task at a " +"time. While a Task awaits for the completion of a Future, the event loop " +"runs other Tasks, callbacks, or performs IO operations." +msgstr "" +"Les boucles d'événement fonctionnent de manière *coopérative* : une boucle " +"d'événement exécute une tâche à la fois. Quand une tâche attend la fin d'un " +"futur, la boucle d'événement exécute d'autres tâches, des fonctions de " +"rappel, ou effectue des opérations d'entrées-sorties." + +#: ../Doc/library/asyncio-task.rst:658 +msgid "" +"Use the high-level :func:`asyncio.create_task` function to create Tasks, or " +"the low-level :meth:`loop.create_task` or :func:`ensure_future` functions. " +"Manual instantiation of Tasks is discouraged." +msgstr "" +"La fonction de haut niveau :func:`asyncio.create_task` et les fonctions de " +"bas-niveau :meth:`loop.create_task` ou :func:`ensure_future` permettent de " +"créer des tâches. Il est déconseillé d'instancier manuellement des objets " +"*Task*." + +#: ../Doc/library/asyncio-task.rst:663 +msgid "" +"To cancel a running Task use the :meth:`cancel` method. Calling it will " +"cause the Task to throw a :exc:`CancelledError` exception into the wrapped " +"coroutine. If a coroutine is awaiting on a Future object during " +"cancellation, the Future object will be cancelled." +msgstr "" +"La méthode :meth:`cancel` d'une tâche en cours d'exécution permet d'annuler " +"celle-ci. L'appel de cette méthode force la tâche à lever l'exception :exc:" +"`CancelledError` dans la coroutine encapsulée. Si la coroutine attendait un " +"*futur* au moment de l'annulation, celui-ci est annulé." + +#: ../Doc/library/asyncio-task.rst:668 +msgid "" +":meth:`cancelled` can be used to check if the Task was cancelled. The method " +"returns ``True`` if the wrapped coroutine did not suppress the :exc:" +"`CancelledError` exception and was actually cancelled." +msgstr "" +"La méthode :meth:`cancelled` permet de vérifier si la tâche a été annulée. " +"Elle renvoie ``True`` si la coroutine encapsulée n'a pas ignoré l'exception :" +"exc:`CancelledError` et a bien été annulée." + +#: ../Doc/library/asyncio-task.rst:673 +msgid "" +":class:`asyncio.Task` inherits from :class:`Future` all of its APIs except :" +"meth:`Future.set_result` and :meth:`Future.set_exception`." +msgstr "" +":class:`asyncio.Task` hérite de :class:`Future`, de toute son API, à " +"l'exception de :meth:`Future.set_result` et de :meth:`Future.set_exception`." + +#: ../Doc/library/asyncio-task.rst:677 +msgid "" +"Tasks support the :mod:`contextvars` module. When a Task is created it " +"copies the current context and later runs its coroutine in the copied " +"context." +msgstr "" +"*Task* implémente le module :mod:`contextvars`. Lors de sa création, une " +"tâche effectue une copie du contexte actuel et exécutera ses coroutines dans " +"cette copie." + +#: ../Doc/library/asyncio-task.rst:681 +msgid "Added support for the :mod:`contextvars` module." +msgstr "Ajout du support du module :mod:`contextvars`." + +#: ../Doc/library/asyncio-task.rst:686 +msgid "Request the Task to be cancelled." +msgstr "Demande l'annulation d'une tâche." + +#: ../Doc/library/asyncio-task.rst:688 +msgid "" +"This arranges for a :exc:`CancelledError` exception to be thrown into the " +"wrapped coroutine on the next cycle of the event loop." +msgstr "" +"Provisionne la levée de l'exception :exc:`CancelledError` dans la coroutine " +"encapsulée. L'exception sera levée au prochain cycle de la boucle " +"d'exécution." + +#: ../Doc/library/asyncio-task.rst:691 +msgid "" +"The coroutine then has a chance to clean up or even deny the request by " +"suppressing the exception with a :keyword:`try` ... ... ``except " +"CancelledError`` ... :keyword:`finally` block. Therefore, unlike :meth:" +"`Future.cancel`, :meth:`Task.cancel` does not guarantee that the Task will " +"be cancelled, although suppressing cancellation completely is not common and " +"is actively discouraged." +msgstr "" +"La coroutine peut alors se nettoyer ou même ignorer la requête en supprimant " +"l'exception à l'aide d'un bloc :keyword:`try` ... ... ``except " +"CancelledError`` ... :keyword:`finally`. Par conséquent, contrairement à :" +"meth:`Future.cancel`, :meth:`Task.cancel` ne garantit pas que la tâche sera " +"annulée, bien qu'ignorer totalement une annulation ne soit ni une pratique " +"courante, ni encouragé." + +#: ../Doc/library/asyncio-task.rst:701 +msgid "" +"The following example illustrates how coroutines can intercept the " +"cancellation request::" +msgstr "" +"L'exemple ci-dessous illustre comment une coroutine peut intercepter une " +"requête d'annulation ::" + +#: ../Doc/library/asyncio-task.rst:740 +msgid "Return ``True`` if the Task is *cancelled*." +msgstr "Renvoie ``True`` si la tâche est *annulée*." + +#: ../Doc/library/asyncio-task.rst:742 +msgid "" +"The Task is *cancelled* when the cancellation was requested with :meth:" +"`cancel` and the wrapped coroutine propagated the :exc:`CancelledError` " +"exception thrown into it." +msgstr "" +"La tâche est *annulée* quand l'annulation a été demandée avec :meth:`cancel` " +"et la coroutine encapsulée a propagé l'exception :exc:`CancelledError` qui a " +"été levée en son sein." + +#: ../Doc/library/asyncio-task.rst:748 +msgid "Return ``True`` if the Task is *done*." +msgstr "Renvoie ``True`` si la tâche est *achevée*." + +#: ../Doc/library/asyncio-task.rst:750 +msgid "" +"A Task is *done* when the wrapped coroutine either returned a value, raised " +"an exception, or the Task was cancelled." +msgstr "" +"Une tâche est dite *achevée* quand la coroutine encapsulée a soit renvoyé " +"une valeur, soit levé une exception, ou que la tâche a été annulée." + +#: ../Doc/library/asyncio-task.rst:755 +msgid "Return the result of the Task." +msgstr "Renvoie le résultat de la tâche." + +#: ../Doc/library/asyncio-task.rst:757 +msgid "" +"If the Task is *done*, the result of the wrapped coroutine is returned (or " +"if the coroutine raised an exception, that exception is re-raised.)" +msgstr "" +"Si la tâche est *achevée*, le résultat de la coroutine encapsulée est " +"renvoyé (sinon, dans le cas où la coroutine a levé une exception, cette " +"exception est de nouveau levée)." + +#: ../Doc/library/asyncio-task.rst:761 ../Doc/library/asyncio-task.rst:775 +msgid "" +"If the Task has been *cancelled*, this method raises a :exc:`CancelledError` " +"exception." +msgstr "" +"Si la tâche a été *annulée*, cette méthode lève une exception :exc:" +"`CancelledError`." + +#: ../Doc/library/asyncio-task.rst:764 +msgid "" +"If the Task's result isn't yet available, this method raises a :exc:" +"`InvalidStateError` exception." +msgstr "" +"Si le résultat de la tâche n'est pas encore disponible, cette méthode lève " +"une exception :exc:`InvalidStateError`." + +#: ../Doc/library/asyncio-task.rst:769 +msgid "Return the exception of the Task." +msgstr "Renvoie l'exception de la tâche." + +#: ../Doc/library/asyncio-task.rst:771 +msgid "" +"If the wrapped coroutine raised an exception that exception is returned. If " +"the wrapped coroutine returned normally this method returns ``None``." +msgstr "" +"Si la coroutine encapsulée lève une exception, cette exception est renvoyée. " +"Si la coroutine s'est exécutée normalement, cette méthode renvoie ``None``." + +#: ../Doc/library/asyncio-task.rst:778 +msgid "" +"If the Task isn't *done* yet, this method raises an :exc:`InvalidStateError` " +"exception." +msgstr "" +"Si la tâche n'est pas encore *achevée*, cette méthode lève une exception :" +"exc:`InvalidStateError`." + +#: ../Doc/library/asyncio-task.rst:783 +msgid "Add a callback to be run when the Task is *done*." +msgstr "" +"Ajoute une fonction de rappel qui sera exécutée quand la tâche sera " +"*achevée*." + +#: ../Doc/library/asyncio-task.rst:785 ../Doc/library/asyncio-task.rst:794 +msgid "This method should only be used in low-level callback-based code." +msgstr "" +"Cette méthode ne doit être utilisée que dans du code basé sur les fonctions " +"de rappel de bas-niveau." + +#: ../Doc/library/asyncio-task.rst:787 +msgid "" +"See the documentation of :meth:`Future.add_done_callback` for more details." +msgstr "" +"Se référer à la documentation de :meth:`Future.add_done_callback` pour plus " +"de détails." + +#: ../Doc/library/asyncio-task.rst:792 +msgid "Remove *callback* from the callbacks list." +msgstr "Retire *callback* de la liste de fonctions de rappel." + +#: ../Doc/library/asyncio-task.rst:796 +msgid "" +"See the documentation of :meth:`Future.remove_done_callback` for more " +"details." +msgstr "" +"Se référer à la documentation de :meth:`Future.remove_done_callback` pour " +"plus de détails." + +#: ../Doc/library/asyncio-task.rst:801 +msgid "Return the list of stack frames for this Task." +msgstr "Renvoie une liste représentant la pile d'appels de la tâche." + +#: ../Doc/library/asyncio-task.rst:803 +msgid "" +"If the wrapped coroutine is not done, this returns the stack where it is " +"suspended. If the coroutine has completed successfully or was cancelled, " +"this returns an empty list. If the coroutine was terminated by an exception, " +"this returns the list of traceback frames." +msgstr "" +"Si la coroutine encapsulée n'est pas terminée, cette fonction renvoie la " +"pile d'appels à partir de l'endroit où celle-ci est interrompue. Si la " +"coroutine s'est terminée normalement ou a été annulée, cette fonction " +"renvoie une liste vide. Si la coroutine a été terminée par une exception, " +"ceci renvoie la pile d'erreurs." + +#: ../Doc/library/asyncio-task.rst:809 +msgid "The frames are always ordered from oldest to newest." +msgstr "La pile est toujours affichée de l'appelant à l'appelé." + +#: ../Doc/library/asyncio-task.rst:811 +msgid "Only one stack frame is returned for a suspended coroutine." +msgstr "Une seule ligne est renvoyée si la coroutine est suspendue." + +#: ../Doc/library/asyncio-task.rst:813 +msgid "" +"The optional *limit* argument sets the maximum number of frames to return; " +"by default all available frames are returned. The ordering of the returned " +"list differs depending on whether a stack or a traceback is returned: the " +"newest frames of a stack are returned, but the oldest frames of a traceback " +"are returned. (This matches the behavior of the traceback module.)" +msgstr "" +"L'argument facultatif *limit* définit le nombre maximal d'appels à " +"renvoyer ; par défaut, tous sont renvoyés. L'ordre de la liste diffère selon " +"la nature de celle-ci : les appels les plus récents d'une pile d'appels sont " +"renvoyés, si la pile est une pile d'erreurs, ce sont les appels les plus " +"anciens qui le sont (dans un souci de cohérence avec le module *traceback*)." + +#: ../Doc/library/asyncio-task.rst:822 +msgid "Print the stack or traceback for this Task." +msgstr "Affiche la pile d'appels ou d'erreurs de la tâche." + +#: ../Doc/library/asyncio-task.rst:824 +msgid "" +"This produces output similar to that of the traceback module for the frames " +"retrieved by :meth:`get_stack`." +msgstr "" +"Le format de sortie des appels produits par :meth:`get_stack` est similaire " +"à celui du module *traceback*. " + +#: ../Doc/library/asyncio-task.rst:827 +msgid "The *limit* argument is passed to :meth:`get_stack` directly." +msgstr "Le paramètre *limit* est directement passé à :meth:`get_stack`." + +#: ../Doc/library/asyncio-task.rst:829 +msgid "" +"The *file* argument is an I/O stream to which the output is written; by " +"default output is written to :data:`sys.stderr`." +msgstr "" +"Le paramètre *file* est un flux d'entrées-sorties sur lequel le résultat est " +"écrit ; par défaut, :data:`sys.stderr`." + +#: ../Doc/library/asyncio-task.rst:834 +msgid "Return a set of all tasks for an event loop." +msgstr "Renvoie l'ensemble des tâches d'une boucle d'évènements." + +#: ../Doc/library/asyncio-task.rst:836 +msgid "" +"By default all tasks for the current event loop are returned. If *loop* is " +"``None``, the :func:`get_event_loop` function is used to get the current " +"loop." +msgstr "" +"Par défaut, toutes les tâches de la boucle d'exécution actuelle sont " +"renvoyées. Si *loop* vaut ``None``, la fonction :func:`get_event_loop` est " +"appelée pour récupérer la boucle d'exécution actuelle." + +#: ../Doc/library/asyncio-task.rst:840 +msgid "" +"This method is **deprecated** and will be removed in Python 3.9. Use the :" +"func:`asyncio.all_tasks` function instead." +msgstr "" +"Cette méthode est **obsolète** et sera supprimée en Python 3.9. Utilisez la " +"fonction :func:`asyncio.all_tasks` à la place." + +#: ../Doc/library/asyncio-task.rst:845 +msgid "Return the currently running task or ``None``." +msgstr "Renvoie la tâche en cours d'exécution ou ``None``." + +#: ../Doc/library/asyncio-task.rst:847 +msgid "" +"If *loop* is ``None``, the :func:`get_event_loop` function is used to get " +"the current loop." +msgstr "" +"Si *loop* vaut ``None``, la fonction :func:`get_event_loop` est utilisée " +"pour récupérer la boucle d'exécution actuelle." + +#: ../Doc/library/asyncio-task.rst:850 +msgid "" +"This method is **deprecated** and will be removed in Python 3.9. Use the :" +"func:`asyncio.current_task` function instead." +msgstr "" +"Cette méthode est **obsolète** et sera supprimée en Python 3.9. Utilisez la " +"fonction :func:`asyncio.current_task` à la place." + +#: ../Doc/library/asyncio-task.rst:858 +msgid "Generator-based Coroutines" +msgstr "Coroutines basées sur des générateurs" + +#: ../Doc/library/asyncio-task.rst:862 +msgid "" +"Support for generator-based coroutines is **deprecated** and is scheduled " +"for removal in Python 3.10." +msgstr "" +"Les coroutines basées sur des générateurs sont **obsolètes** et il est prévu " +"de les supprimer en Python 3.10." + +#: ../Doc/library/asyncio-task.rst:865 +msgid "" +"Generator-based coroutines predate async/await syntax. They are Python " +"generators that use ``yield from`` expressions to await on Futures and other " +"coroutines." +msgstr "" +"Les coroutines basées sur des générateurs sont antérieures à la syntaxe " +"*async* / *await*. Il existe des générateurs Python qui utilisent les " +"expressions ``yield from`` pour attendre des *futurs* et autres coroutines." + +#: ../Doc/library/asyncio-task.rst:869 +msgid "" +"Generator-based coroutines should be decorated with :func:`@asyncio." +"coroutine `, although this is not enforced." +msgstr "" +"Les coroutines basées sur des générateurs doivent être décorées avec :func:" +"`@asyncio.coroutine `, même si ce n'est pas vérifié par " +"l'interpréteur." + +#: ../Doc/library/asyncio-task.rst:876 +msgid "Decorator to mark generator-based coroutines." +msgstr "Décorateur pour coroutines basées sur des générateurs." + +#: ../Doc/library/asyncio-task.rst:878 +msgid "" +"This decorator enables legacy generator-based coroutines to be compatible " +"with async/await code::" +msgstr "" +"Ce décorateur rend compatibles les coroutines basées sur des générateurs " +"avec le code *async* / *await* ::" + +#: ../Doc/library/asyncio-task.rst:888 +msgid "" +"This decorator is **deprecated** and is scheduled for removal in Python 3.10." +msgstr "" +"Ce décorateur est **obsolète** et il est prévu de le supprimer en Python " +"3.10." + +#: ../Doc/library/asyncio-task.rst:891 +msgid "This decorator should not be used for :keyword:`async def` coroutines." +msgstr "" +"Ce décorateur ne doit pas être utilisé avec des coroutines :keyword:`async " +"def`." + +#: ../Doc/library/asyncio-task.rst:896 +msgid "Return ``True`` if *obj* is a :ref:`coroutine object `." +msgstr "Renvoie ``True`` si *obj* est un :ref:`objet coroutine `." + +#: ../Doc/library/asyncio-task.rst:898 +msgid "" +"This method is different from :func:`inspect.iscoroutine` because it returns " +"``True`` for generator-based coroutines." +msgstr "" +"Cette méthode est différente de :func:`inspect.iscoroutine` car elle renvoie " +"``True`` pour des coroutines basées sur des générateurs." + +#: ../Doc/library/asyncio-task.rst:903 +msgid "Return ``True`` if *func* is a :ref:`coroutine function `." +msgstr "" +"Renvoie ``True`` si *func* est une :ref:`fonction coroutine `." + +#: ../Doc/library/asyncio-task.rst:906 +msgid "" +"This method is different from :func:`inspect.iscoroutinefunction` because it " +"returns ``True`` for generator-based coroutine functions decorated with :" +"func:`@coroutine `." +msgstr "" +"Cette méthode est différente de :func:`inspect.iscoroutinefunction` car elle " +"renvoie ``True`` pour des coroutines basées sur des générateurs, décorées " +"avec :func:`@coroutine `." + +#~ msgid "Tasks and coroutines" +#~ msgstr "Tâches et coroutines" + +#~ msgid "Things a coroutine can do:" +#~ msgstr "Les choses que les coroutines peuvent faire :" + +#~ msgid "Example: Hello World coroutine" +#~ msgstr "Exemple : Coroutine \"Hello World\"" + +#~ msgid "Example: Chain coroutines" +#~ msgstr "Exemple : Chaîner des coroutines" + +#~ msgid "InvalidStateError" +#~ msgstr "InvalidStateError" + +#~ msgid "The operation is not allowed in this state." +#~ msgstr "L'opération n'est pas autorisée dans cet état." + +#~ msgid "The operation exceeded the given deadline." +#~ msgstr "L'opération a dépassé le délai donné." + +#~ msgid "Differences:" +#~ msgstr "Différences :" + +#~ msgid "Returns the number of callbacks removed." +#~ msgstr "Donne le nombre de fonctions de rappel supprimées." + +#~ msgid "Mark the future done and set its result." +#~ msgstr "Marque le futur comme terminé et définit son résultat." + +#~ msgid "Mark the future done and set an exception." +#~ msgstr "Marque le futur comme terminé et définit une exception." + +#~ msgid "Example: Future with run_until_complete()" +#~ msgstr "Exemple : Futur avec ``run_until_complete()``" + +#~ msgid "Example: Future with run_forever()" +#~ msgstr "Exemple : Futur avec ``run_forever()``" + +#~ msgid "Example: Parallel execution of tasks" +#~ msgstr "Exemple : Exécution parallèle de tâches" + +#~ msgid "Example executing 3 tasks (A, B, C) in parallel::" +#~ msgstr "Exemple d'exécution de trois tâches (A, B, C) en parallèle ::" + +#~ msgid "Output::" +#~ msgstr "Sortie ::" + +#~ msgid "The function accepts any :term:`awaitable` object." +#~ msgstr "La fonction accepte n'importe quel objet :term:`awaitable`." + +#~ msgid "This function is a :ref:`coroutine `, usage::" +#~ msgstr "Cette fonction est une :ref:`coroutine `, utilisation ::" + +#~ msgid "A deprecated alias to :func:`ensure_future`." +#~ msgstr "Un alias obsolète de :func:`ensure_future`." + +#~ msgid "The same coroutine implemented using a generator::" +#~ msgstr "La même coroutine implémentée en utilisant un générateur ::" diff --git a/library/asyncio.po b/library/asyncio.po new file mode 100644 index 000000000..aa5c10ad6 --- /dev/null +++ b/library/asyncio.po @@ -0,0 +1,237 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-03 13:15+0200\n" +"PO-Revision-Date: 2018-12-16 16:19+0100\n" +"Last-Translator: Antoine Wecxsteen\n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/library/asyncio.rst:66 +msgid "High-level APIs" +msgstr "Bibliothèques de haut-niveau" + +#: ../Doc/library/asyncio.rst:77 +msgid "Low-level APIs" +msgstr "Bibliothèques de bas-niveau" + +#: ../Doc/library/asyncio.rst:87 +msgid "Guides and Tutorials" +msgstr "Guides et tutoriels" + +#: ../Doc/library/asyncio.rst:2 +msgid ":mod:`asyncio` --- Asynchronous I/O" +msgstr ":mod:`asyncio` — Entrées/Sorties asynchrones" + +#: ../Doc/library/asyncio.rst:None +msgid "Hello World!" +msgstr "Hello World !" + +#: ../Doc/library/asyncio.rst:23 +msgid "" +"asyncio is a library to write **concurrent** code using the **async/await** " +"syntax." +msgstr "" +"`asyncio` est une bibliothèque permettant de faire de la programmation " +"asynchrone en utilisant la syntaxe *async*/*await*." + +#: ../Doc/library/asyncio.rst:26 +msgid "" +"asyncio is used as a foundation for multiple Python asynchronous frameworks " +"that provide high-performance network and web-servers, database connection " +"libraries, distributed task queues, etc." +msgstr "" +"`asyncio` constitue la base de nombreux cadriciels (*frameworks*) Python " +"asynchrones qui fournissent des utilitaires réseau et des serveurs web " +"performants, des bibliothèques de connexion à des bases de données, des " +"files d'exécution distribuées, etc." + +#: ../Doc/library/asyncio.rst:30 +msgid "" +"asyncio is often a perfect fit for IO-bound and high-level **structured** " +"network code." +msgstr "" +"`asyncio` est souvent le bon choix pour écrire du code réseau de haut-niveau " +"et tributaire des entrées-sorties (*IO-bound*)." + +#: ../Doc/library/asyncio.rst:33 +msgid "asyncio provides a set of **high-level** APIs to:" +msgstr "" +"`asyncio` fournit des interfaces de programmation **haut-niveau** pour :" + +#: ../Doc/library/asyncio.rst:35 +msgid "" +":ref:`run Python coroutines ` concurrently and have full control " +"over their execution;" +msgstr "" +":ref:`exécuter des coroutines Python ` de manière concurrente et " +"d'avoir le contrôle total sur leur exécution ;" + +#: ../Doc/library/asyncio.rst:38 +msgid "perform :ref:`network IO and IPC `;" +msgstr "" +"effectuer :ref:`des entrées/sorties réseau et de la communication inter-" +"processus ` ;" + +#: ../Doc/library/asyncio.rst:40 +msgid "control :ref:`subprocesses `;" +msgstr "contrôler des :ref:`sous-processus ` ;" + +#: ../Doc/library/asyncio.rst:42 +msgid "distribute tasks via :ref:`queues `;" +msgstr "distribuer des tâches avec des :ref:`queues ` ;" + +#: ../Doc/library/asyncio.rst:44 +msgid ":ref:`synchronize ` concurrent code;" +msgstr "" +":ref:`synchroniser ` du code s'exécutant de manière " +"concurrente ;" + +#: ../Doc/library/asyncio.rst:46 +msgid "" +"Additionally, there are **low-level** APIs for *library and framework " +"developers* to:" +msgstr "" +"En plus, il existe des bibliothèques de **bas-niveau** pour que les " +"*développeurs de bibliothèques et de frameworks* puissent :" + +#: ../Doc/library/asyncio.rst:49 +msgid "" +"create and manage :ref:`event loops `, which provide " +"asynchronous APIs for :meth:`networking `, running :meth:" +"`subprocesses `, handling :meth:`OS signals `, etc;" +msgstr "" +"créer et gérer des :ref:`boucles d'événements `, qui " +"fournissent des bibliothèques asynchrones de :meth:`réseau `, d'exécution de :meth:`subprocesses `, " +"de gestion de :meth:`signaux système `, etc ;" + +#: ../Doc/library/asyncio.rst:54 +msgid "" +"implement efficient protocols using :ref:`transports `;" +msgstr "" +"implémenter des protocoles efficaces à l'aide de :ref:`transports ` ;" + +#: ../Doc/library/asyncio.rst:57 +msgid "" +":ref:`bridge ` callback-based libraries and code with async/" +"await syntax." +msgstr "" +":ref:`lier ` des bibliothèques basées sur les fonctions de " +"rappel et développer avec la syntaxe *async*/*await*." + +#: ../Doc/library/asyncio.rst:65 +msgid "Reference" +msgstr "Sommaire" + +#~ msgid "**Source code:** :source:`Lib/asyncio/`" +#~ msgstr "**Code source :** :source:`Lib/asyncio/`" + +#~ msgid "" +#~ "This module provides infrastructure for writing single-threaded " +#~ "concurrent code using coroutines, multiplexing I/O access over sockets " +#~ "and other resources, running network clients and servers, and other " +#~ "related primitives. Here is a more detailed list of the package contents:" +#~ msgstr "" +#~ "Ce module fournit l’infrastructure pour écrire des programmes à fil " +#~ "d’exécution unique (*single-thread en anglais*) mais permettant " +#~ "l’exécution de code concurrent en utilisant les coroutines, les accès " +#~ "multiplexés aux entrées-sorties par l’intermédiaire de *sockets* ou " +#~ "autres ressources, la gestion de clients et serveurs réseaux et d’autres " +#~ "fonctions primitives associées. Voici une liste plus détaillée du contenu " +#~ "du paquet :" + +#~ msgid "" +#~ "a pluggable :ref:`event loop ` with various system-" +#~ "specific implementations;" +#~ msgstr "" +#~ "une :ref:`boucle d’évènements ` prête à l’emploi dont " +#~ "les implémentations sont spécifiques à leur plateforme ;" + +#~ msgid "" +#~ ":ref:`transport ` and :ref:`protocol ` abstractions (similar to those in `Twisted `_);" +#~ msgstr "" +#~ "Des abstractions pour les couches :ref:`transport ` " +#~ "et :ref:`protocole ` (similaire à celles proposées par " +#~ "`Twisted `_) ;" + +#~ msgid "" +#~ "concrete support for TCP, UDP, SSL, subprocess pipes, delayed calls, and " +#~ "others (some may be system-dependent);" +#~ msgstr "" +#~ "pour la gestion effective de TCP, UDP, SSL, la communication inter-" +#~ "processus par tubes, les appels différés, et autres (certains peuvent " +#~ "être dépendant du système) ;" + +#~ msgid "" +#~ "a :class:`Future` class that mimics the one in the :mod:`concurrent." +#~ "futures` module, but adapted for use with the event loop;" +#~ msgstr "" +#~ "une classe :class:`Future` qui imite celle du :mod:`concurrent.futures` " +#~ "module, mais qui est adaptée pour fonctionner avec la boucle " +#~ "d’évènements ;" + +#~ msgid "" +#~ "coroutines and tasks based on ``yield from`` (:PEP:`380`), to help write " +#~ "concurrent code in a sequential fashion;" +#~ msgstr "" +#~ "des coroutines et tâches qui se basent sur ``yield from`` (:PEP:`380`), " +#~ "pour écrire du code concurrent de manière séquentielle ;" + +#~ msgid "cancellation support for :class:`Future`\\s and coroutines;" +#~ msgstr "" +#~ "annulation de la gestion de la classe :class:`Future`\\s et coroutines ;" + +#~ msgid "" +#~ ":ref:`synchronization primitives ` for use between " +#~ "coroutines in a single thread, mimicking those in the :mod:`threading` " +#~ "module;" +#~ msgstr "" +#~ ":ref:`des primitives de synchronisation ` à utiliser entre " +#~ "des coroutines dans un fil d’exécution unique, en imitant celles " +#~ "présentes dans le module :mod:`threading` ;" + +#~ msgid "" +#~ "an interface for passing work off to a threadpool, for times when you " +#~ "absolutely, positively have to use a library that makes blocking I/O " +#~ "calls." +#~ msgstr "" +#~ "une interface pour déléguer des tâches à un groupe de fils d’exécutions, " +#~ "lorsque vous avez absolument besoin d’utiliser une bibliothèque qui " +#~ "effectue des entrées-sorties bloquantes." + +#~ msgid "" +#~ "Asynchronous programming is more complex than classical \"sequential\" " +#~ "programming: see the :ref:`Develop with asyncio ` page which " +#~ "lists common traps and explains how to avoid them. :ref:`Enable the debug " +#~ "mode ` during development to detect common issues." +#~ msgstr "" +#~ "Programmer de façon asynchrone est plus complexe que programmer d’une " +#~ "façon séquentielle : lisez la page :ref:`Develop with asyncio ` qui liste les pièges fréquents et explique la manière de les " +#~ "éviter. :ref:`Activer le mode de débogage d’asyncio ` " +#~ "pendant le développement afin de détecter les problèmes courants." + +#~ msgid "Table of contents:" +#~ msgstr "Table des matières :" + +#~ msgid "" +#~ "The :mod:`asyncio` module was designed in :PEP:`3156`. For a motivational " +#~ "primer on transports and protocols, see :PEP:`3153`." +#~ msgstr "" +#~ "Le module :mod:`asyncio` a été présenté dans la :PEP:`3156`. La :PEP:" +#~ "`3153` décrit les motivations premières concernant les couches transports " +#~ "et protocoles." diff --git a/library/asyncore.po b/library/asyncore.po new file mode 100644 index 000000000..f020d046c --- /dev/null +++ b/library/asyncore.po @@ -0,0 +1,362 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-07-27 23:21+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/asyncore.rst:2 +msgid ":mod:`asyncore` --- Asynchronous socket handler" +msgstr ":mod:`asyncore` — Gestionnaire de socket asynchrone" + +#: ../Doc/library/asyncore.rst:13 +msgid "**Source code:** :source:`Lib/asyncore.py`" +msgstr "**Code source :** :source:`Lib/asyncore.py`" + +#: ../Doc/library/asyncore.rst:15 +msgid "Please use :mod:`asyncio` instead." +msgstr "Utilisez :mod:`asyncio` à la place." + +#: ../Doc/library/asyncore.rst:22 +msgid "" +"This module exists for backwards compatibility only. For new code we " +"recommend using :mod:`asyncio`." +msgstr "" +"Ce module n'existe que pour des raisons de rétrocompatibilité. Pour du code " +"nouveau, l'utilisation de :mod:`asyncio` est recommandée." + +#: ../Doc/library/asyncore.rst:25 +msgid "" +"This module provides the basic infrastructure for writing asynchronous " +"socket service clients and servers." +msgstr "" + +#: ../Doc/library/asyncore.rst:28 +msgid "" +"There are only two ways to have a program on a single processor do \"more " +"than one thing at a time.\" Multi-threaded programming is the simplest and " +"most popular way to do it, but there is another very different technique, " +"that lets you have nearly all the advantages of multi-threading, without " +"actually using multiple threads. It's really only practical if your " +"program is largely I/O bound. If your program is processor bound, then pre-" +"emptive scheduled threads are probably what you really need. Network " +"servers are rarely processor bound, however." +msgstr "" + +#: ../Doc/library/asyncore.rst:37 +msgid "" +"If your operating system supports the :c:func:`select` system call in its I/" +"O library (and nearly all do), then you can use it to juggle multiple " +"communication channels at once; doing other work while your I/O is taking " +"place in the \"background.\" Although this strategy can seem strange and " +"complex, especially at first, it is in many ways easier to understand and " +"control than multi-threaded programming. The :mod:`asyncore` module solves " +"many of the difficult problems for you, making the task of building " +"sophisticated high-performance network servers and clients a snap. For " +"\"conversational\" applications and protocols the companion :mod:`asynchat` " +"module is invaluable." +msgstr "" + +#: ../Doc/library/asyncore.rst:48 +msgid "" +"The basic idea behind both modules is to create one or more network " +"*channels*, instances of class :class:`asyncore.dispatcher` and :class:" +"`asynchat.async_chat`. Creating the channels adds them to a global map, " +"used by the :func:`loop` function if you do not provide it with your own " +"*map*." +msgstr "" + +#: ../Doc/library/asyncore.rst:54 +msgid "" +"Once the initial channel(s) is(are) created, calling the :func:`loop` " +"function activates channel service, which continues until the last channel " +"(including any that have been added to the map during asynchronous service) " +"is closed." +msgstr "" + +#: ../Doc/library/asyncore.rst:61 +msgid "" +"Enter a polling loop that terminates after count passes or all open channels " +"have been closed. All arguments are optional. The *count* parameter " +"defaults to ``None``, resulting in the loop terminating only when all " +"channels have been closed. The *timeout* argument sets the timeout " +"parameter for the appropriate :func:`~select.select` or :func:`~select.poll` " +"call, measured in seconds; the default is 30 seconds. The *use_poll* " +"parameter, if true, indicates that :func:`~select.poll` should be used in " +"preference to :func:`~select.select` (the default is ``False``)." +msgstr "" + +#: ../Doc/library/asyncore.rst:70 +msgid "" +"The *map* parameter is a dictionary whose items are the channels to watch. " +"As channels are closed they are deleted from their map. If *map* is " +"omitted, a global map is used. Channels (instances of :class:`asyncore." +"dispatcher`, :class:`asynchat.async_chat` and subclasses thereof) can freely " +"be mixed in the map." +msgstr "" + +#: ../Doc/library/asyncore.rst:79 +msgid "" +"The :class:`dispatcher` class is a thin wrapper around a low-level socket " +"object. To make it more useful, it has a few methods for event-handling " +"which are called from the asynchronous loop. Otherwise, it can be treated " +"as a normal non-blocking socket object." +msgstr "" + +#: ../Doc/library/asyncore.rst:84 +msgid "" +"The firing of low-level events at certain times or in certain connection " +"states tells the asynchronous loop that certain higher-level events have " +"taken place. For example, if we have asked for a socket to connect to " +"another host, we know that the connection has been made when the socket " +"becomes writable for the first time (at this point you know that you may " +"write to it with the expectation of success). The implied higher-level " +"events are:" +msgstr "" + +#: ../Doc/library/asyncore.rst:93 +msgid "Event" +msgstr "" + +#: ../Doc/library/asyncore.rst:93 +msgid "Description" +msgstr "Description" + +#: ../Doc/library/asyncore.rst:95 +msgid "``handle_connect()``" +msgstr "``handle_connect()``" + +#: ../Doc/library/asyncore.rst:95 +msgid "Implied by the first read or write event" +msgstr "" + +#: ../Doc/library/asyncore.rst:98 +msgid "``handle_close()``" +msgstr "``handle_close()``" + +#: ../Doc/library/asyncore.rst:98 +msgid "Implied by a read event with no data available" +msgstr "" + +#: ../Doc/library/asyncore.rst:101 +msgid "``handle_accepted()``" +msgstr "``handle_accepted()``" + +#: ../Doc/library/asyncore.rst:101 +msgid "Implied by a read event on a listening socket" +msgstr "" + +#: ../Doc/library/asyncore.rst:105 +msgid "" +"During asynchronous processing, each mapped channel's :meth:`readable` and :" +"meth:`writable` methods are used to determine whether the channel's socket " +"should be added to the list of channels :c:func:`select`\\ ed or :c:func:" +"`poll`\\ ed for read and write events." +msgstr "" + +#: ../Doc/library/asyncore.rst:110 +msgid "" +"Thus, the set of channel events is larger than the basic socket events. The " +"full set of methods that can be overridden in your subclass follows:" +msgstr "" + +#: ../Doc/library/asyncore.rst:116 +msgid "" +"Called when the asynchronous loop detects that a :meth:`read` call on the " +"channel's socket will succeed." +msgstr "" + +#: ../Doc/library/asyncore.rst:122 +msgid "" +"Called when the asynchronous loop detects that a writable socket can be " +"written. Often this method will implement the necessary buffering for " +"performance. For example::" +msgstr "" + +#: ../Doc/library/asyncore.rst:133 +msgid "" +"Called when there is out of band (OOB) data for a socket connection. This " +"will almost never happen, as OOB is tenuously supported and rarely used." +msgstr "" + +#: ../Doc/library/asyncore.rst:139 +msgid "" +"Called when the active opener's socket actually makes a connection. Might " +"send a \"welcome\" banner, or initiate a protocol negotiation with the " +"remote endpoint, for example." +msgstr "" + +#: ../Doc/library/asyncore.rst:146 +msgid "Called when the socket is closed." +msgstr "Appelé lorsque la socket est fermée." + +#: ../Doc/library/asyncore.rst:151 +msgid "" +"Called when an exception is raised and not otherwise handled. The default " +"version prints a condensed traceback." +msgstr "" + +#: ../Doc/library/asyncore.rst:157 +msgid "" +"Called on listening channels (passive openers) when a connection can be " +"established with a new remote endpoint that has issued a :meth:`connect` " +"call for the local endpoint. Deprecated in version 3.2; use :meth:" +"`handle_accepted` instead." +msgstr "" + +#: ../Doc/library/asyncore.rst:167 +msgid "" +"Called on listening channels (passive openers) when a connection has been " +"established with a new remote endpoint that has issued a :meth:`connect` " +"call for the local endpoint. *sock* is a *new* socket object usable to send " +"and receive data on the connection, and *addr* is the address bound to the " +"socket on the other end of the connection." +msgstr "" + +#: ../Doc/library/asyncore.rst:178 +msgid "" +"Called each time around the asynchronous loop to determine whether a " +"channel's socket should be added to the list on which read events can " +"occur. The default method simply returns ``True``, indicating that by " +"default, all channels will be interested in read events." +msgstr "" + +#: ../Doc/library/asyncore.rst:186 +msgid "" +"Called each time around the asynchronous loop to determine whether a " +"channel's socket should be added to the list on which write events can " +"occur. The default method simply returns ``True``, indicating that by " +"default, all channels will be interested in write events." +msgstr "" + +#: ../Doc/library/asyncore.rst:192 +msgid "" +"In addition, each channel delegates or extends many of the socket methods. " +"Most of these are nearly identical to their socket partners." +msgstr "" + +#: ../Doc/library/asyncore.rst:198 +msgid "" +"This is identical to the creation of a normal socket, and will use the same " +"options for creation. Refer to the :mod:`socket` documentation for " +"information on creating sockets." +msgstr "" + +#: ../Doc/library/asyncore.rst:202 +msgid "*family* and *type* arguments can be omitted." +msgstr "Les arguments *family* et *type* sont optionnels." + +#: ../Doc/library/asyncore.rst:208 +msgid "" +"As with the normal socket object, *address* is a tuple with the first " +"element the host to connect to, and the second the port number." +msgstr "" + +#: ../Doc/library/asyncore.rst:214 +msgid "Send *data* to the remote end-point of the socket." +msgstr "Envoie *data* à l'autre bout de la socket." + +#: ../Doc/library/asyncore.rst:219 +msgid "" +"Read at most *buffer_size* bytes from the socket's remote end-point. An " +"empty bytes object implies that the channel has been closed from the other " +"end." +msgstr "" + +#: ../Doc/library/asyncore.rst:223 +msgid "" +"Note that :meth:`recv` may raise :exc:`BlockingIOError` , even though :func:" +"`select.select` or :func:`select.poll` has reported the socket ready for " +"reading." +msgstr "" + +#: ../Doc/library/asyncore.rst:230 +msgid "" +"Listen for connections made to the socket. The *backlog* argument specifies " +"the maximum number of queued connections and should be at least 1; the " +"maximum value is system-dependent (usually 5)." +msgstr "" + +#: ../Doc/library/asyncore.rst:237 +msgid "" +"Bind the socket to *address*. The socket must not already be bound. (The " +"format of *address* depends on the address family --- refer to the :mod:" +"`socket` documentation for more information.) To mark the socket as re-" +"usable (setting the :const:`SO_REUSEADDR` option), call the :class:" +"`dispatcher` object's :meth:`set_reuse_addr` method." +msgstr "" + +#: ../Doc/library/asyncore.rst:246 +msgid "" +"Accept a connection. The socket must be bound to an address and listening " +"for connections. The return value can be either ``None`` or a pair ``(conn, " +"address)`` where *conn* is a *new* socket object usable to send and receive " +"data on the connection, and *address* is the address bound to the socket on " +"the other end of the connection. When ``None`` is returned it means the " +"connection didn't take place, in which case the server should just ignore " +"this event and keep listening for further incoming connections." +msgstr "" + +#: ../Doc/library/asyncore.rst:258 +msgid "" +"Close the socket. All future operations on the socket object will fail. The " +"remote end-point will receive no more data (after queued data is flushed). " +"Sockets are automatically closed when they are garbage-collected." +msgstr "" + +#: ../Doc/library/asyncore.rst:266 +msgid "" +"A :class:`dispatcher` subclass which adds simple buffered output capability, " +"useful for simple clients. For more sophisticated usage use :class:`asynchat." +"async_chat`." +msgstr "" + +#: ../Doc/library/asyncore.rst:272 +msgid "" +"A file_dispatcher takes a file descriptor or :term:`file object` along with " +"an optional map argument and wraps it for use with the :c:func:`poll` or :c:" +"func:`loop` functions. If provided a file object or anything with a :c:func:" +"`fileno` method, that method will be called and passed to the :class:" +"`file_wrapper` constructor." +msgstr "" + +#: ../Doc/library/asyncore.rst:278 ../Doc/library/asyncore.rst:287 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." + +#: ../Doc/library/asyncore.rst:282 +msgid "" +"A file_wrapper takes an integer file descriptor and calls :func:`os.dup` to " +"duplicate the handle so that the original handle may be closed independently " +"of the file_wrapper. This class implements sufficient methods to emulate a " +"socket for use by the :class:`file_dispatcher` class." +msgstr "" + +#: ../Doc/library/asyncore.rst:293 +msgid "asyncore Example basic HTTP client" +msgstr "Exemple de client HTTP basique avec :mod:`asyncore`" + +#: ../Doc/library/asyncore.rst:295 +msgid "" +"Here is a very basic HTTP client that uses the :class:`dispatcher` class to " +"implement its socket handling::" +msgstr "" + +#: ../Doc/library/asyncore.rst:332 +msgid "asyncore Example basic echo server" +msgstr "Serveur *echo* basique avec :mod:`asyncore`" + +#: ../Doc/library/asyncore.rst:334 +msgid "" +"Here is a basic echo server that uses the :class:`dispatcher` class to " +"accept connections and dispatches the incoming connections to a handler::" +msgstr "" diff --git a/library/atexit.po b/library/atexit.po new file mode 100644 index 000000000..911000b56 --- /dev/null +++ b/library/atexit.po @@ -0,0 +1,164 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-13 09:30+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/library/atexit.rst:2 +msgid ":mod:`atexit` --- Exit handlers" +msgstr ":mod:`atexit` — Gestionnaire de fin de programme" + +#: ../Doc/library/atexit.rst:12 +msgid "" +"The :mod:`atexit` module defines functions to register and unregister " +"cleanup functions. Functions thus registered are automatically executed " +"upon normal interpreter termination. :mod:`atexit` runs these functions in " +"the *reverse* order in which they were registered; if you register ``A``, " +"``B``, and ``C``, at interpreter termination time they will be run in the " +"order ``C``, ``B``, ``A``." +msgstr "" +"Le module :mod:`atexit` définit des fonctions pour inscrire et désinscrire " +"des fonctions de nettoyage. Les fonctions ainsi inscrites sont " +"automatiquement exécutées au moment de l'arrêt normal de l'interpréteur. :" +"mod:`atexit` exécute ces fonctions dans l'ordre inverse dans lequel elles " +"ont été inscrites ; si vous inscrivez ``A``, ``B``, et ``C``, au moment de " +"l'arrêt de l'interpréteur elles seront exécutées dans l'ordre ``C``, ``B``, " +"``A``." + +#: ../Doc/library/atexit.rst:19 +msgid "" +"**Note:** The functions registered via this module are not called when the " +"program is killed by a signal not handled by Python, when a Python fatal " +"internal error is detected, or when :func:`os._exit` is called." +msgstr "" +"**Note:** Les fonctions inscrites via ce module ne sont pas appelées quand " +"le programme est tué par un signal non géré par Python, quand une erreur " +"fatale interne de Python est détectée, ou quand :func:`os._exit` est appelé." + +#: ../Doc/library/atexit.rst:23 +msgid "" +"When used with C-API subinterpreters, registered functions are local to the " +"interpreter they were registered in." +msgstr "" +"Quand elles sont utilisées avec des sous-interpréteurs de l'API C, les " +"fonctions inscrites sont locales à l'interpréteur dans lequel elles ont été " +"inscrites." + +#: ../Doc/library/atexit.rst:29 +msgid "" +"Register *func* as a function to be executed at termination. Any optional " +"arguments that are to be passed to *func* must be passed as arguments to :" +"func:`register`. It is possible to register the same function and arguments " +"more than once." +msgstr "" +"Inscrit *func* comme une fonction à exécuter au moment de l'arrêt de " +"l'interpréteur. Tout argument optionnel qui doit être passé à *func* doit " +"être passé comme argument à :func:`register`. Il est possible d'inscrire les " +"mêmes fonctions et arguments plus d'une fois." + +#: ../Doc/library/atexit.rst:34 +msgid "" +"At normal program termination (for instance, if :func:`sys.exit` is called " +"or the main module's execution completes), all functions registered are " +"called in last in, first out order. The assumption is that lower level " +"modules will normally be imported before higher level modules and thus must " +"be cleaned up later." +msgstr "" +"Lors d'un arrêt normal du programme (par exemple, si :func:`sys.exit` est " +"appelée ou l’exécution du module principal se termine), toutes les fonctions " +"inscrites sont appelées, dans l'ordre de la dernière arrivée, première " +"servie. La supposition est que les modules les plus bas niveau vont " +"normalement être importés avant les modules haut niveau et ainsi être " +"nettoyés en dernier." + +#: ../Doc/library/atexit.rst:40 +msgid "" +"If an exception is raised during execution of the exit handlers, a traceback " +"is printed (unless :exc:`SystemExit` is raised) and the exception " +"information is saved. After all exit handlers have had a chance to run the " +"last exception to be raised is re-raised." +msgstr "" +"Si une exception est levée durant l'exécution du gestionnaire de fin de " +"programme, une trace d'appels est affichée (à moins que :exc:`SystemExit` " +"ait été levée) et les informations de l'exception sont sauvegardées. Une " +"fois que tous les gestionnaires de fin de programme ont eu une chance de " +"s'exécuter, la dernière exception à avoir été levée l'est de nouveau." + +#: ../Doc/library/atexit.rst:45 +msgid "" +"This function returns *func*, which makes it possible to use it as a " +"decorator." +msgstr "" +"Cette fonction renvoie *func*, ce qui rend possible de l'utiliser en tant " +"que décorateur." + +#: ../Doc/library/atexit.rst:51 +msgid "" +"Remove *func* from the list of functions to be run at interpreter shutdown. " +"After calling :func:`unregister`, *func* is guaranteed not to be called when " +"the interpreter shuts down, even if it was registered more than once. :func:" +"`unregister` silently does nothing if *func* was not previously registered." +msgstr "" +"Retire *func* de la liste des fonctions à exécuter à l'arrêt de " +"l’interpréteur. Après avoir appelé :func:`unregister`, *func* est garantie " +"de ne pas être appelée à l'arrêt de l’interpréteur, même si elle a été " +"inscrite plus d'une fois. :func:`unregister` ne fait rien et reste muette " +"dans le cas où *func* n'a pas été inscrite précédemment." + +#: ../Doc/library/atexit.rst:61 +msgid "Module :mod:`readline`" +msgstr "Module :mod:`readline`" + +#: ../Doc/library/atexit.rst:61 +msgid "" +"Useful example of :mod:`atexit` to read and write :mod:`readline` history " +"files." +msgstr "" +"Un exemple utile de l'usage de :mod:`atexit` pour lire et écrire des " +"fichiers d'historique :mod:`readline`." + +#: ../Doc/library/atexit.rst:68 +msgid ":mod:`atexit` Example" +msgstr "Exemple avec :mod:`atexit`" + +#: ../Doc/library/atexit.rst:70 +msgid "" +"The following simple example demonstrates how a module can initialize a " +"counter from a file when it is imported and save the counter's updated value " +"automatically when the program terminates without relying on the application " +"making an explicit call into this module at termination. ::" +msgstr "" +"Le simple exemple suivant démontre comment un module peut initialiser un " +"compteur depuis un fichier quand il est importé, et sauver le valeur mise à " +"jour du compteur automatiquement quand le programme se termine, sans avoir " +"besoin que l'application fasse un appel explicite dans ce module au moment " +"de l'arrêt de l'interpréteur. ::" + +#: ../Doc/library/atexit.rst:92 +msgid "" +"Positional and keyword arguments may also be passed to :func:`register` to " +"be passed along to the registered function when it is called::" +msgstr "" +"Les arguments positionnels et par mot-clé peuvent aussi être passés à :func:" +"`register` afin d'être repassés à la fonction inscrite lors de son appel ::" + +#: ../Doc/library/atexit.rst:104 +msgid "Usage as a :term:`decorator`::" +msgstr "Utilisation en tant que :term:`décorateur ` ::" + +#: ../Doc/library/atexit.rst:112 +msgid "This only works with functions that can be called without arguments." +msgstr "" +"Ceci fonctionne uniquement avec des fonctions qui peuvent être appelées sans " +"argument." diff --git a/library/audioop.po b/library/audioop.po new file mode 100644 index 000000000..c3aa58d7d --- /dev/null +++ b/library/audioop.po @@ -0,0 +1,303 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/audioop.rst:2 +msgid ":mod:`audioop` --- Manipulate raw audio data" +msgstr ":mod:`audioloop` — Manipulation de données audio brutes" + +#: ../Doc/library/audioop.rst:9 +msgid "" +"The :mod:`audioop` module contains some useful operations on sound " +"fragments. It operates on sound fragments consisting of signed integer " +"samples 8, 16, 24 or 32 bits wide, stored in :term:`bytes-like objects " +"`. All scalar items are integers, unless specified " +"otherwise." +msgstr "" + +#: ../Doc/library/audioop.rst:14 +msgid "" +"Support for 24-bit samples was added. All functions now accept any :term:" +"`bytes-like object`. String input now results in an immediate error." +msgstr "" + +#: ../Doc/library/audioop.rst:25 +msgid "" +"This module provides support for a-LAW, u-LAW and Intel/DVI ADPCM encodings." +msgstr "" + +#: ../Doc/library/audioop.rst:29 +msgid "" +"A few of the more complicated operations only take 16-bit samples, otherwise " +"the sample size (in bytes) is always a parameter of the operation." +msgstr "" + +#: ../Doc/library/audioop.rst:32 +msgid "The module defines the following variables and functions:" +msgstr "" + +#: ../Doc/library/audioop.rst:37 +msgid "" +"This exception is raised on all errors, such as unknown number of bytes per " +"sample, etc." +msgstr "" + +#: ../Doc/library/audioop.rst:43 +msgid "" +"Return a fragment which is the addition of the two samples passed as " +"parameters. *width* is the sample width in bytes, either ``1``, ``2``, ``3`` " +"or ``4``. Both fragments should have the same length. Samples are " +"truncated in case of overflow." +msgstr "" + +#: ../Doc/library/audioop.rst:50 +msgid "" +"Decode an Intel/DVI ADPCM coded fragment to a linear fragment. See the " +"description of :func:`lin2adpcm` for details on ADPCM coding. Return a tuple " +"``(sample, newstate)`` where the sample has the width specified in *width*." +msgstr "" + +#: ../Doc/library/audioop.rst:57 +msgid "" +"Convert sound fragments in a-LAW encoding to linearly encoded sound " +"fragments. a-LAW encoding always uses 8 bits samples, so *width* refers only " +"to the sample width of the output fragment here." +msgstr "" + +#: ../Doc/library/audioop.rst:64 +msgid "Return the average over all samples in the fragment." +msgstr "" + +#: ../Doc/library/audioop.rst:69 +msgid "" +"Return the average peak-peak value over all samples in the fragment. No " +"filtering is done, so the usefulness of this routine is questionable." +msgstr "" + +#: ../Doc/library/audioop.rst:75 +msgid "" +"Return a fragment that is the original fragment with a bias added to each " +"sample. Samples wrap around in case of overflow." +msgstr "" + +#: ../Doc/library/audioop.rst:81 +msgid "" +"\"Byteswap\" all samples in a fragment and returns the modified fragment. " +"Converts big-endian samples to little-endian and vice versa." +msgstr "" + +#: ../Doc/library/audioop.rst:89 +msgid "" +"Return the number of zero crossings in the fragment passed as an argument." +msgstr "" + +#: ../Doc/library/audioop.rst:94 +msgid "" +"Return a factor *F* such that ``rms(add(fragment, mul(reference, -F)))`` is " +"minimal, i.e., return the factor with which you should multiply *reference* " +"to make it match as well as possible to *fragment*. The fragments should " +"both contain 2-byte samples." +msgstr "" + +#: ../Doc/library/audioop.rst:99 +msgid "The time taken by this routine is proportional to ``len(fragment)``." +msgstr "" + +#: ../Doc/library/audioop.rst:104 +msgid "" +"Try to match *reference* as well as possible to a portion of *fragment* " +"(which should be the longer fragment). This is (conceptually) done by " +"taking slices out of *fragment*, using :func:`findfactor` to compute the " +"best match, and minimizing the result. The fragments should both contain 2-" +"byte samples. Return a tuple ``(offset, factor)`` where *offset* is the " +"(integer) offset into *fragment* where the optimal match started and " +"*factor* is the (floating-point) factor as per :func:`findfactor`." +msgstr "" + +#: ../Doc/library/audioop.rst:115 +msgid "" +"Search *fragment* for a slice of length *length* samples (not bytes!) with " +"maximum energy, i.e., return *i* for which ``rms(fragment[i*2:(i" +"+length)*2])`` is maximal. The fragments should both contain 2-byte samples." +msgstr "" + +#: ../Doc/library/audioop.rst:119 +msgid "The routine takes time proportional to ``len(fragment)``." +msgstr "" + +#: ../Doc/library/audioop.rst:124 +msgid "Return the value of sample *index* from the fragment." +msgstr "" + +#: ../Doc/library/audioop.rst:129 +msgid "" +"Convert samples to 4 bit Intel/DVI ADPCM encoding. ADPCM coding is an " +"adaptive coding scheme, whereby each 4 bit number is the difference between " +"one sample and the next, divided by a (varying) step. The Intel/DVI ADPCM " +"algorithm has been selected for use by the IMA, so it may well become a " +"standard." +msgstr "" + +#: ../Doc/library/audioop.rst:134 +msgid "" +"*state* is a tuple containing the state of the coder. The coder returns a " +"tuple ``(adpcmfrag, newstate)``, and the *newstate* should be passed to the " +"next call of :func:`lin2adpcm`. In the initial call, ``None`` can be passed " +"as the state. *adpcmfrag* is the ADPCM coded fragment packed 2 4-bit values " +"per byte." +msgstr "" + +#: ../Doc/library/audioop.rst:142 +msgid "" +"Convert samples in the audio fragment to a-LAW encoding and return this as a " +"bytes object. a-LAW is an audio encoding format whereby you get a dynamic " +"range of about 13 bits using only 8 bit samples. It is used by the Sun " +"audio hardware, among others." +msgstr "" + +#: ../Doc/library/audioop.rst:150 +msgid "Convert samples between 1-, 2-, 3- and 4-byte formats." +msgstr "" + +#: ../Doc/library/audioop.rst:154 +msgid "" +"In some audio formats, such as .WAV files, 16, 24 and 32 bit samples are " +"signed, but 8 bit samples are unsigned. So when converting to 8 bit wide " +"samples for these formats, you need to also add 128 to the result::" +msgstr "" + +#: ../Doc/library/audioop.rst:161 +msgid "" +"The same, in reverse, has to be applied when converting from 8 to 16, 24 or " +"32 bit width samples." +msgstr "" + +#: ../Doc/library/audioop.rst:167 +msgid "" +"Convert samples in the audio fragment to u-LAW encoding and return this as a " +"bytes object. u-LAW is an audio encoding format whereby you get a dynamic " +"range of about 14 bits using only 8 bit samples. It is used by the Sun " +"audio hardware, among others." +msgstr "" + +#: ../Doc/library/audioop.rst:175 +msgid "" +"Return the maximum of the *absolute value* of all samples in a fragment." +msgstr "" + +#: ../Doc/library/audioop.rst:180 +msgid "Return the maximum peak-peak value in the sound fragment." +msgstr "" + +#: ../Doc/library/audioop.rst:185 +msgid "" +"Return a tuple consisting of the minimum and maximum values of all samples " +"in the sound fragment." +msgstr "" + +#: ../Doc/library/audioop.rst:191 +msgid "" +"Return a fragment that has all samples in the original fragment multiplied " +"by the floating-point value *factor*. Samples are truncated in case of " +"overflow." +msgstr "" + +#: ../Doc/library/audioop.rst:197 +msgid "Convert the frame rate of the input fragment." +msgstr "" + +#: ../Doc/library/audioop.rst:199 +msgid "" +"*state* is a tuple containing the state of the converter. The converter " +"returns a tuple ``(newfragment, newstate)``, and *newstate* should be passed " +"to the next call of :func:`ratecv`. The initial call should pass ``None`` " +"as the state." +msgstr "" + +#: ../Doc/library/audioop.rst:203 +msgid "" +"The *weightA* and *weightB* arguments are parameters for a simple digital " +"filter and default to ``1`` and ``0`` respectively." +msgstr "" + +#: ../Doc/library/audioop.rst:209 +msgid "Reverse the samples in a fragment and returns the modified fragment." +msgstr "" + +#: ../Doc/library/audioop.rst:214 +msgid "" +"Return the root-mean-square of the fragment, i.e. ``sqrt(sum(S_i^2)/n)``." +msgstr "" + +#: ../Doc/library/audioop.rst:216 +msgid "This is a measure of the power in an audio signal." +msgstr "C'est une mesure de la puissance dans un signal audio." + +#: ../Doc/library/audioop.rst:221 +msgid "" +"Convert a stereo fragment to a mono fragment. The left channel is " +"multiplied by *lfactor* and the right channel by *rfactor* before adding the " +"two channels to give a mono signal." +msgstr "" + +#: ../Doc/library/audioop.rst:228 +msgid "" +"Generate a stereo fragment from a mono fragment. Each pair of samples in " +"the stereo fragment are computed from the mono sample, whereby left channel " +"samples are multiplied by *lfactor* and right channel samples by *rfactor*." +msgstr "" + +#: ../Doc/library/audioop.rst:235 +msgid "" +"Convert sound fragments in u-LAW encoding to linearly encoded sound " +"fragments. u-LAW encoding always uses 8 bits samples, so *width* refers only " +"to the sample width of the output fragment here." +msgstr "" + +#: ../Doc/library/audioop.rst:239 +msgid "" +"Note that operations such as :func:`.mul` or :func:`.max` make no " +"distinction between mono and stereo fragments, i.e. all samples are treated " +"equal. If this is a problem the stereo fragment should be split into two " +"mono fragments first and recombined later. Here is an example of how to do " +"that::" +msgstr "" + +#: ../Doc/library/audioop.rst:253 +msgid "" +"If you use the ADPCM coder to build network packets and you want your " +"protocol to be stateless (i.e. to be able to tolerate packet loss) you " +"should not only transmit the data but also the state. Note that you should " +"send the *initial* state (the one you passed to :func:`lin2adpcm`) along to " +"the decoder, not the final state (as returned by the coder). If you want to " +"use :class:`struct.Struct` to store the state in binary you can code the " +"first element (the predicted value) in 16 bits and the second (the delta " +"index) in 8." +msgstr "" + +#: ../Doc/library/audioop.rst:261 +msgid "" +"The ADPCM coders have never been tried against other ADPCM coders, only " +"against themselves. It could well be that I misinterpreted the standards in " +"which case they will not be interoperable with the respective standards." +msgstr "" + +#: ../Doc/library/audioop.rst:265 +msgid "" +"The :func:`find\\*` routines might look a bit funny at first sight. They are " +"primarily meant to do echo cancellation. A reasonably fast way to do this " +"is to pick the most energetic piece of the output sample, locate that in the " +"input sample and subtract the whole output sample from the input sample::" +msgstr "" diff --git a/library/base64.po b/library/base64.po new file mode 100644 index 000000000..93ff72b67 --- /dev/null +++ b/library/base64.po @@ -0,0 +1,492 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" +"PO-Revision-Date: 2019-08-20 15:51+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/library/base64.rst:2 +msgid ":mod:`base64` --- Base16, Base32, Base64, Base85 Data Encodings" +msgstr ":mod:`base64` — Encodages base16, base32, base64 et base85" + +#: ../Doc/library/base64.rst:8 +msgid "**Source code:** :source:`Lib/base64.py`" +msgstr "**Code source :** :source:`Lib/base64.py`" + +#: ../Doc/library/base64.rst:16 +msgid "" +"This module provides functions for encoding binary data to printable ASCII " +"characters and decoding such encodings back to binary data. It provides " +"encoding and decoding functions for the encodings specified in :rfc:`3548`, " +"which defines the Base16, Base32, and Base64 algorithms, and for the de-" +"facto standard Ascii85 and Base85 encodings." +msgstr "" +"Ce module fournit des fonctions permettant de coder des données binaires en " +"caractères ASCII affichables ainsi que de décoder ces caractères vers des " +"données binaires en retour. Il fournit des fonctions d'encodage et de " +"décodage pour les codages spécifiés par la :rfc:`3548` qui définit les " +"algorithmes base16, base32 et base64, ainsi que les encodages standards *de " +"facto* Ascii85 et base85." + +#: ../Doc/library/base64.rst:22 +msgid "" +"The :rfc:`3548` encodings are suitable for encoding binary data so that it " +"can safely sent by email, used as parts of URLs, or included as part of an " +"HTTP POST request. The encoding algorithm is not the same as the :program:" +"`uuencode` program." +msgstr "" +"Les encodages définis par la :rfc:`3548` sont adaptés au codage des données " +"binaires pour leur transfert par courriel, comme éléments d'une URL ou d'une " +"requête HTTP POST. L'algorithme d'encodage ne doit pas être confondu avec le " +"programme :program:`uuencode`." + +#: ../Doc/library/base64.rst:27 +msgid "" +"There are two interfaces provided by this module. The modern interface " +"supports encoding :term:`bytes-like objects ` to ASCII :" +"class:`bytes`, and decoding :term:`bytes-like objects ` " +"or strings containing ASCII to :class:`bytes`. Both base-64 alphabets " +"defined in :rfc:`3548` (normal, and URL- and filesystem-safe) are supported." +msgstr "" +"Ce module présente deux interfaces. L'interface moderne gère l'encodage d':" +"term:`objets octet-compatibles ` en :class:`bytes` ASCII " +"ainsi que le décodage d':term:`objets octet-compatibles ` " +"ou de chaînes de caractères contenant de l'ASCII en :class:`bytes`. Les deux " +"alphabets de l'algorithme base64 définis par la :rfc:`3548` (normal et sûr " +"pour les systèmes de fichiers ou URL) sont gérés." + +#: ../Doc/library/base64.rst:33 +msgid "" +"The legacy interface does not support decoding from strings, but it does " +"provide functions for encoding and decoding to and from :term:`file objects " +"`. It only supports the Base64 standard alphabet, and it adds " +"newlines every 76 characters as per :rfc:`2045`. Note that if you are " +"looking for :rfc:`2045` support you probably want to be looking at the :mod:" +"`email` package instead." +msgstr "" +"L'interface historique ne permet pas le décodage des chaînes de caractères " +"mais fournit des fonctions permettant d'encoder et décoder depuis et vers " +"des :term:`objets fichiers `. Elle ne gère que l'alphabet " +"base64 standard et ajoute une nouvelle ligne tous les 76 caractères, comme " +"spécifié par la :rfc:`2045`. Notez que le paquet :mod:`email` est " +"probablement ce que vous cherchez si vous souhaitez une implémentation de " +"la :rfc:`2045`." + +#: ../Doc/library/base64.rst:41 +msgid "" +"ASCII-only Unicode strings are now accepted by the decoding functions of the " +"modern interface." +msgstr "" +"Les chaînes de caractères Unicode contenant uniquement des caractères ASCII " +"sont désormais acceptées par les fonctions de décodage de l'interface " +"moderne." + +#: ../Doc/library/base64.rst:45 +msgid "" +"Any :term:`bytes-like objects ` are now accepted by all " +"encoding and decoding functions in this module. Ascii85/Base85 support " +"added." +msgstr "" +"Tous les :term:`objets octet-compatibles ` sont désormais " +"acceptés par l'ensemble des fonctions d'encodage et de décodage de ce " +"module. La gestion de Ascii85/base85 a été ajoutée." + +#: ../Doc/library/base64.rst:49 +msgid "The modern interface provides:" +msgstr "L'interface moderne propose :" + +#: ../Doc/library/base64.rst:53 +msgid "" +"Encode the :term:`bytes-like object` *s* using Base64 and return the " +"encoded :class:`bytes`." +msgstr "" +"Encode un :term:`objet octet-compatible ` *s* en " +"utilisant l'algorithme base64 et renvoie les :class:`bytes` encodés." + +#: ../Doc/library/base64.rst:56 +msgid "" +"Optional *altchars* must be a :term:`bytes-like object` of at least length 2 " +"(additional characters are ignored) which specifies an alternative alphabet " +"for the ``+`` and ``/`` characters. This allows an application to e.g. " +"generate URL or filesystem safe Base64 strings. The default is ``None``, " +"for which the standard Base64 alphabet is used." +msgstr "" +"L'option *altchars* doit être un :term:`bytes-like object` de longueur au " +"moins 2 (les caractères additionnels sont ignorés) qui spécifie un alphabet " +"alternatif pour les délimiteurs ``+`` et ``/``. Cela permet de générer des " +"chaînes de caractères base64 pouvant être utilisées pour une URL ou dans un " +"système de fichiers. La valeur par défaut est ``None``, auquel cas " +"l'alphabet standard base64 est utilisé." + +#: ../Doc/library/base64.rst:65 +msgid "" +"Decode the Base64 encoded :term:`bytes-like object` or ASCII string *s* and " +"return the decoded :class:`bytes`." +msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodée en base64 et renvoie les :class:`bytes` " +"décodés." + +#: ../Doc/library/base64.rst:68 +msgid "" +"Optional *altchars* must be a :term:`bytes-like object` or ASCII string of " +"at least length 2 (additional characters are ignored) which specifies the " +"alternative alphabet used instead of the ``+`` and ``/`` characters." +msgstr "" +"L'option *altchars* doit être un :term:`bytes-like object` de longueur au " +"moins égale à 2 (les caractères additionnels sont ignorés) qui spécifie un " +"alphabet alternatif pour les délimiteurs ``+`` et ``/``." + +#: ../Doc/library/base64.rst:72 +msgid "" +"A :exc:`binascii.Error` exception is raised if *s* is incorrectly padded." +msgstr "" +"Une exception :exc:`binascii.Error` est levée si *s* n'est pas remplie à une " +"longueur attendue." + +#: ../Doc/library/base64.rst:75 +msgid "" +"If *validate* is ``False`` (the default), characters that are neither in the " +"normal base-64 alphabet nor the alternative alphabet are discarded prior to " +"the padding check. If *validate* is ``True``, these non-alphabet characters " +"in the input result in a :exc:`binascii.Error`." +msgstr "" +"Si *validate* est ``False`` (par défaut), les caractères qui ne sont ni dans " +"l'alphabet base64 normal, ni dans l'alphabet alternatif, sont ignorés avant " +"la vérification de la longueur du remplissage. Si *validate* est ``True``, " +"les caractères hors de l'alphabet de l'entrée produisent une :exc:`binascii." +"Error`." + +#: ../Doc/library/base64.rst:84 +msgid "" +"Encode :term:`bytes-like object` *s* using the standard Base64 alphabet and " +"return the encoded :class:`bytes`." +msgstr "" +"Encode un :term:`objet octet-compatible ` *s* en " +"utilisant l'alphabet standard base64 et renvoie les :class:`bytes` encodés." + +#: ../Doc/library/base64.rst:90 +msgid "" +"Decode :term:`bytes-like object` or ASCII string *s* using the standard " +"Base64 alphabet and return the decoded :class:`bytes`." +msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* utilisant l'alphabet base64 standard et renvoie les :" +"class:`bytes` décodés." + +#: ../Doc/library/base64.rst:96 +msgid "" +"Encode :term:`bytes-like object` *s* using the URL- and filesystem-safe " +"alphabet, which substitutes ``-`` instead of ``+`` and ``_`` instead of ``/" +"`` in the standard Base64 alphabet, and return the encoded :class:`bytes`. " +"The result can still contain ``=``." +msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"un alphabet sûr pour les URL et systèmes de fichiers qui substitue ``-`` et " +"``_`` à ``+`` et ``/`` dans l'alphabet standard base64 et renvoie les :class:" +"`bytes` encodés." + +#: ../Doc/library/base64.rst:105 +msgid "" +"Decode :term:`bytes-like object` or ASCII string *s* using the URL- and " +"filesystem-safe alphabet, which substitutes ``-`` instead of ``+`` and ``_`` " +"instead of ``/`` in the standard Base64 alphabet, and return the decoded :" +"class:`bytes`." +msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* utilisant un alphabet sûr pour les URL et systèmes " +"de fichiers qui substitue ``-`` et ``_`` à ``+`` et ``/`` dans l'alphabet " +"standard base64 et renvoie les :class:`bytes` décodés." + +#: ../Doc/library/base64.rst:114 +msgid "" +"Encode the :term:`bytes-like object` *s* using Base32 and return the " +"encoded :class:`bytes`." +msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme base32 et renvoie les :class:`bytes` encodés." + +#: ../Doc/library/base64.rst:120 +msgid "" +"Decode the Base32 encoded :term:`bytes-like object` or ASCII string *s* and " +"return the decoded :class:`bytes`." +msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodé en base32 et renvoie les :class:`bytes` " +"décodés." + +#: ../Doc/library/base64.rst:123 ../Doc/library/base64.rst:150 +msgid "" +"Optional *casefold* is a flag specifying whether a lowercase alphabet is " +"acceptable as input. For security purposes, the default is ``False``." +msgstr "" +"L'option *casefold* est un drapeau spécifiant si l'utilisation d'un alphabet " +"en minuscules est acceptable comme entrée. Pour des raisons de sécurité, " +"cette option est à ``False`` par défaut." + +#: ../Doc/library/base64.rst:127 +msgid "" +":rfc:`3548` allows for optional mapping of the digit 0 (zero) to the letter " +"O (oh), and for optional mapping of the digit 1 (one) to either the letter I " +"(eye) or letter L (el). The optional argument *map01* when not ``None``, " +"specifies which letter the digit 1 should be mapped to (when *map01* is not " +"``None``, the digit 0 is always mapped to the letter O). For security " +"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:134 ../Doc/library/base64.rst:154 +msgid "" +"A :exc:`binascii.Error` is raised if *s* is incorrectly padded or if there " +"are non-alphabet characters present in the input." +msgstr "" +"Une exception :exc:`binascii.Error` est levée si *s* n'est pas remplie à une " +"longueur attendue ou si elle contient des caractères hors de l'alphabet." + +#: ../Doc/library/base64.rst:141 +msgid "" +"Encode the :term:`bytes-like object` *s* using Base16 and return the " +"encoded :class:`bytes`." +msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme base16 et renvoie les :class:`bytes` encodés." + +#: ../Doc/library/base64.rst:147 +msgid "" +"Decode the Base16 encoded :term:`bytes-like object` or ASCII string *s* and " +"return the decoded :class:`bytes`." +msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodé en base16 et renvoie les :class:`bytes` " +"décodés." + +#: ../Doc/library/base64.rst:161 +msgid "" +"Encode the :term:`bytes-like object` *b* using Ascii85 and return the " +"encoded :class:`bytes`." +msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme Ascii85 et renvoie les :class:`bytes` encodés." + +#: ../Doc/library/base64.rst:164 +msgid "" +"*foldspaces* is an optional flag that uses the special short sequence 'y' " +"instead of 4 consecutive spaces (ASCII 0x20) as supported by 'btoa'. This " +"feature is not supported by the \"standard\" Ascii85 encoding." +msgstr "" +"L'option *foldspaces* permet d'utiliser la séquence spéciale 'y' à la place " +"de quatre espaces consécutives (ASCII ``0x20``) comme pris en charge par " +"*btoa*. Cette fonctionnalité n'est pas gérée par l'encodage « standard » " +"Ascii85." + +#: ../Doc/library/base64.rst:168 +msgid "" +"*wrapcol* controls whether the output should have newline (``b'\\n'``) " +"characters added to it. If this is non-zero, each output line will be at " +"most this many characters long." +msgstr "" +"*wrapcol* contrôle l'ajout de caractères de saut de ligne (``b'\\n'``) à la " +"sortie. Chaque ligne de sortie contient au maximum *wrapcol* caractères si " +"cette option diffère de zéro." + +#: ../Doc/library/base64.rst:172 +msgid "" +"*pad* controls whether the input is padded to a multiple of 4 before " +"encoding. Note that the ``btoa`` implementation always pads." +msgstr "" +"*pad* spécifie l'ajout de caractères de remplissage (*padding* en anglais) à " +"l'entrée jusqu'à ce que sa longueur soit un multiple de 4 avant encodage. " +"Notez que l'implémentation ``btoa`` effectue systématiquement ce remplissage." + +#: ../Doc/library/base64.rst:175 +msgid "" +"*adobe* controls whether the encoded byte sequence is framed with ``<~`` and " +"``~>``, which is used by the Adobe implementation." +msgstr "" +"*adobe* contrôle si oui ou non la séquence encodée d'octets est encadrée par " +"``<~`` et ``~>`` comme utilisé dans l'implémentation Adobe." + +#: ../Doc/library/base64.rst:183 +msgid "" +"Decode the Ascii85 encoded :term:`bytes-like object` or ASCII string *b* and " +"return the decoded :class:`bytes`." +msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodé en Ascii85 et renvoie les :class:`bytes` " +"décodés." + +#: ../Doc/library/base64.rst:186 +msgid "" +"*foldspaces* is a flag that specifies whether the 'y' short sequence should " +"be accepted as shorthand for 4 consecutive spaces (ASCII 0x20). This feature " +"is not supported by the \"standard\" Ascii85 encoding." +msgstr "" +"L'option *foldspaces* permet d'utiliser la séquence spéciale 'y' à la place " +"de quatre espaces consécutives (ASCII `0x20`) comme pris en charge par " +"*btoa*. Cette fonctionnalité n'est pas gérée par l'encodage « standard » " +"Ascii85." + +#: ../Doc/library/base64.rst:190 +msgid "" +"*adobe* controls whether the input sequence is in Adobe Ascii85 format (i.e. " +"is framed with <~ and ~>)." +msgstr "" +"*adobe* indique si la séquence d'entrée utilise le format Adobe Ascii85 " +"(c'est-à-dire utilise l'encadrement par ``<~`` et ``~>``)." + +#: ../Doc/library/base64.rst:193 +msgid "" +"*ignorechars* should be a :term:`bytes-like object` or ASCII string " +"containing characters to ignore from the input. This should only contain " +"whitespace characters, and by default contains all whitespace characters in " +"ASCII." +msgstr "" +"*ignorechars* doit être un :term:`bytes-like object` ou une chaîne ASCII " +"contenant des caractères à ignorer dans l'entrée. Il ne doit contenir que " +"des caractères d'espacement et contient par défaut l'ensemble des caractères " +"d'espacement de l'alphabet ASCII." + +#: ../Doc/library/base64.rst:203 +msgid "" +"Encode the :term:`bytes-like object` *b* using base85 (as used in e.g. git-" +"style binary diffs) and return the encoded :class:`bytes`." +msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme base85 (tel qu'utilisé par exemple par le programme *git-diff* " +"sur des données binaires) et renvoie les :class:`bytes` encodés." + +#: ../Doc/library/base64.rst:206 +msgid "" +"If *pad* is true, the input is padded with ``b'\\0'`` so its length is a " +"multiple of 4 bytes before encoding." +msgstr "" +"Si *pad* est vrai, des caractères de remplissage ``b'``0'`` (*padding* en " +"anglais) sont ajoutés à l'entrée jusqu'à ce que sa longueur soit un multiple " +"de 4 octets avant encodage." + +#: ../Doc/library/base64.rst:214 +msgid "" +"Decode the base85-encoded :term:`bytes-like object` or ASCII string *b* and " +"return the decoded :class:`bytes`. Padding is implicitly removed, if " +"necessary." +msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *b* encodé en base85 et renvoie les :class:`bytes` " +"décodés. Les caractères de remplissage sont implicitement retirés si " +"nécessaire." + +#: ../Doc/library/base64.rst:221 +msgid "The legacy interface:" +msgstr "L'interface historique :" + +#: ../Doc/library/base64.rst:225 +msgid "" +"Decode the contents of the binary *input* file and write the resulting " +"binary data to the *output* file. *input* and *output* must be :term:`file " +"objects `. *input* will be read until ``input.readline()`` " +"returns an empty bytes object." +msgstr "" +"Décode le contenu d'un fichier binaire *input* et écrit les données binaires " +"résultantes dans le fichier *output*. *input* et *output* doivent être des :" +"term:`objets fichiers `. *input* est lu jusqu'à ce que ``input." +"readline()`` renvoie un objet *bytes* vide." + +#: ../Doc/library/base64.rst:233 +msgid "" +"Decode the :term:`bytes-like object` *s*, which must contain one or more " +"lines of base64 encoded data, and return the decoded :class:`bytes`." +msgstr "" +"Décode un :term:`objet octet-compatible ` *s* devant " +"contenir une ou plusieurs lignes de données encodées en base64 et renvoie " +"les :class:`bytes` décodés." + +#: ../Doc/library/base64.rst:240 +msgid "Deprecated alias of :func:`decodebytes`." +msgstr "Alias obsolète de :func:`decodebytes`." + +#: ../Doc/library/base64.rst:247 +msgid "" +"Encode the contents of the binary *input* file and write the resulting " +"base64 encoded data to the *output* file. *input* and *output* must be :term:" +"`file objects `. *input* will be read until ``input.read()`` " +"returns an empty bytes object. :func:`encode` inserts a newline character " +"(``b'\\n'``) after every 76 bytes of the output, as well as ensuring that " +"the output always ends with a newline, as per :rfc:`2045` (MIME)." +msgstr "" +"Encode le contenu du fichier binaire *input* et écrit les données encodées " +"en base64 résultantes dans le fichier *output. *input* et *output* doivent " +"être des :term:`objets fichiers `. *input* est lu jusqu'à ce " +"que ``input.readline()`` renvoie un objet *bytes* vide. :func:`encode` " +"insère un caractère de saut de ligne (``b'\\n'``) tous les 76 octets de " +"sortie et assure que celle-ci se termine par une nouvelle ligne, comme " +"spécifié par la :rfc:`2045` (MIME)." + +#: ../Doc/library/base64.rst:257 +msgid "" +"Encode the :term:`bytes-like object` *s*, which can contain arbitrary binary " +"data, and return :class:`bytes` containing the base64-encoded data, with " +"newlines (``b'\\n'``) inserted after every 76 bytes of output, and ensuring " +"that there is a trailing newline, as per :rfc:`2045` (MIME)." +msgstr "" +"Encode un :term:`objet octet-compatible ` *s* pouvant " +"contenir des données binaires arbitraires et renvoie les :class:`bytes` " +"contenant les données encodées en base64. Un caractère de saut de ligne " +"(``b'\\n'``) est inséré tous les 76 octets de sortie et celle-ci se termine " +"par une nouvelle ligne, comme spécifié par la :rfc:`2045` (MIME)." + +#: ../Doc/library/base64.rst:266 +msgid "Deprecated alias of :func:`encodebytes`." +msgstr "Alias obsolète de :func:`encodebytes`." + +#: ../Doc/library/base64.rst:271 +msgid "An example usage of the module:" +msgstr "Un exemple d'utilisation du module :" + +#: ../Doc/library/base64.rst:285 +msgid "Module :mod:`binascii`" +msgstr "Module :mod:`binascii`" + +#: ../Doc/library/base64.rst:285 +msgid "" +"Support module containing ASCII-to-binary and binary-to-ASCII conversions." +msgstr "" +"Module secondaire contenant les conversions ASCII vers binaire et binaire " +"vers ASCII." + +#: ../Doc/library/base64.rst:288 +msgid "" +":rfc:`1521` - MIME (Multipurpose Internet Mail Extensions) Part One: " +"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:288 +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." + +#~ msgid "``encodestring`` is a deprecated alias." +#~ msgstr "``encodestring`` est un alias obsolète." diff --git a/library/bdb.po b/library/bdb.po new file mode 100644 index 000000000..ed9a1043e --- /dev/null +++ b/library/bdb.po @@ -0,0 +1,519 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/bdb.rst:2 +msgid ":mod:`bdb` --- Debugger framework" +msgstr ":mod:`bdb` — Framework de débogage" + +#: ../Doc/library/bdb.rst:7 +msgid "**Source code:** :source:`Lib/bdb.py`" +msgstr "**Code source :** :source:`Lib/bdb.py`" + +#: ../Doc/library/bdb.rst:11 +msgid "" +"The :mod:`bdb` module handles basic debugger functions, like setting " +"breakpoints or managing execution via the debugger." +msgstr "" + +#: ../Doc/library/bdb.rst:14 +msgid "The following exception is defined:" +msgstr "L'exception suivante est définie :" + +#: ../Doc/library/bdb.rst:18 +msgid "Exception raised by the :class:`Bdb` class for quitting the debugger." +msgstr "" + +#: ../Doc/library/bdb.rst:21 +msgid "The :mod:`bdb` module also defines two classes:" +msgstr "Le module :mod:`bdb` définis deux classes :" + +#: ../Doc/library/bdb.rst:25 +msgid "" +"This class implements temporary breakpoints, ignore counts, disabling and " +"(re-)enabling, and conditionals." +msgstr "" + +#: ../Doc/library/bdb.rst:28 +msgid "" +"Breakpoints are indexed by number through a list called :attr:`bpbynumber` " +"and by ``(file, line)`` pairs through :attr:`bplist`. The former points to " +"a single instance of class :class:`Breakpoint`. The latter points to a list " +"of such instances since there may be more than one breakpoint per line." +msgstr "" + +#: ../Doc/library/bdb.rst:33 +msgid "" +"When creating a breakpoint, its associated filename should be in canonical " +"form. If a *funcname* is defined, a breakpoint hit will be counted when the " +"first line of that function is executed. A conditional breakpoint always " +"counts a hit." +msgstr "" + +#: ../Doc/library/bdb.rst:38 +msgid ":class:`Breakpoint` instances have the following methods:" +msgstr "" + +#: ../Doc/library/bdb.rst:42 +msgid "" +"Delete the breakpoint from the list associated to a file/line. If it is the " +"last breakpoint in that position, it also deletes the entry for the file/" +"line." +msgstr "" + +#: ../Doc/library/bdb.rst:49 +msgid "Mark the breakpoint as enabled." +msgstr "Active le point d'arrêt." + +#: ../Doc/library/bdb.rst:54 +msgid "Mark the breakpoint as disabled." +msgstr "Désactive le point d'arrêt." + +#: ../Doc/library/bdb.rst:59 +msgid "" +"Return a string with all the information about the breakpoint, nicely " +"formatted:" +msgstr "" + +#: ../Doc/library/bdb.rst:62 +msgid "The breakpoint number." +msgstr "Le numéro du point d'arrêt." + +#: ../Doc/library/bdb.rst:63 +msgid "If it is temporary or not." +msgstr "S'il est temporaire ou non." + +#: ../Doc/library/bdb.rst:64 +msgid "Its file,line position." +msgstr "" + +#: ../Doc/library/bdb.rst:65 +msgid "The condition that causes a break." +msgstr "" + +#: ../Doc/library/bdb.rst:66 +msgid "If it must be ignored the next N times." +msgstr "" + +#: ../Doc/library/bdb.rst:67 +msgid "The breakpoint hit count." +msgstr "" + +#: ../Doc/library/bdb.rst:73 +msgid "" +"Print the output of :meth:`bpformat` to the file *out*, or if it is " +"``None``, to standard output." +msgstr "" + +#: ../Doc/library/bdb.rst:79 +msgid "The :class:`Bdb` class acts as a generic Python debugger base class." +msgstr "" + +#: ../Doc/library/bdb.rst:81 +msgid "" +"This class takes care of the details of the trace facility; a derived class " +"should implement user interaction. The standard debugger class (:class:`pdb." +"Pdb`) is an example." +msgstr "" + +#: ../Doc/library/bdb.rst:85 +msgid "" +"The *skip* argument, if given, must be an iterable of glob-style module name " +"patterns. The debugger will not step into frames that originate in a module " +"that matches one of these patterns. Whether a frame is considered to " +"originate in a certain module is determined by the ``__name__`` in the frame " +"globals." +msgstr "" + +#: ../Doc/library/bdb.rst:91 +msgid "The *skip* argument." +msgstr "L'argument *skip*." + +#: ../Doc/library/bdb.rst:94 +msgid "" +"The following methods of :class:`Bdb` normally don't need to be overridden." +msgstr "" + +#: ../Doc/library/bdb.rst:98 +msgid "" +"Auxiliary method for getting a filename in a canonical form, that is, as a " +"case-normalized (on case-insensitive filesystems) absolute path, stripped of " +"surrounding angle brackets." +msgstr "" + +#: ../Doc/library/bdb.rst:104 +msgid "" +"Set the :attr:`botframe`, :attr:`stopframe`, :attr:`returnframe` and :attr:" +"`quitting` attributes with values ready to start debugging." +msgstr "" + +#: ../Doc/library/bdb.rst:109 +msgid "" +"This function is installed as the trace function of debugged frames. Its " +"return value is the new trace function (in most cases, that is, itself)." +msgstr "" + +#: ../Doc/library/bdb.rst:112 +msgid "" +"The default implementation decides how to dispatch a frame, depending on the " +"type of event (passed as a string) that is about to be executed. *event* can " +"be one of the following:" +msgstr "" + +#: ../Doc/library/bdb.rst:116 +msgid "``\"line\"``: A new line of code is going to be executed." +msgstr "" + +#: ../Doc/library/bdb.rst:117 +msgid "" +"``\"call\"``: A function is about to be called, or another code block " +"entered." +msgstr "" + +#: ../Doc/library/bdb.rst:119 +msgid "``\"return\"``: A function or other code block is about to return." +msgstr "" + +#: ../Doc/library/bdb.rst:120 +msgid "``\"exception\"``: An exception has occurred." +msgstr "``\"exception\"`` : Une exception est survenue." + +#: ../Doc/library/bdb.rst:121 +msgid "``\"c_call\"``: A C function is about to be called." +msgstr "``\"c_call\"`` : Une fonction C est sur le point d'être appelée." + +#: ../Doc/library/bdb.rst:122 +msgid "``\"c_return\"``: A C function has returned." +msgstr "``\"c_return\"`` : Une fonction C s'est terminée." + +#: ../Doc/library/bdb.rst:123 +msgid "``\"c_exception\"``: A C function has raised an exception." +msgstr "" + +#: ../Doc/library/bdb.rst:125 +msgid "" +"For the Python events, specialized functions (see below) are called. For " +"the C events, no action is taken." +msgstr "" + +#: ../Doc/library/bdb.rst:128 +msgid "The *arg* parameter depends on the previous event." +msgstr "Le paramètre *arg* dépend de l'événement précédent." + +#: ../Doc/library/bdb.rst:130 +msgid "" +"See the documentation for :func:`sys.settrace` for more information on the " +"trace function. For more information on code and frame objects, refer to :" +"ref:`types`." +msgstr "" + +#: ../Doc/library/bdb.rst:136 +msgid "" +"If the debugger should stop on the current line, invoke the :meth:" +"`user_line` method (which should be overridden in subclasses). Raise a :exc:" +"`BdbQuit` exception if the :attr:`Bdb.quitting` flag is set (which can be " +"set from :meth:`user_line`). Return a reference to the :meth:" +"`trace_dispatch` method for further tracing in that scope." +msgstr "" + +#: ../Doc/library/bdb.rst:144 +msgid "" +"If the debugger should stop on this function call, invoke the :meth:" +"`user_call` method (which should be overridden in subclasses). Raise a :exc:" +"`BdbQuit` exception if the :attr:`Bdb.quitting` flag is set (which can be " +"set from :meth:`user_call`). Return a reference to the :meth:" +"`trace_dispatch` method for further tracing in that scope." +msgstr "" + +#: ../Doc/library/bdb.rst:152 +msgid "" +"If the debugger should stop on this function return, invoke the :meth:" +"`user_return` method (which should be overridden in subclasses). Raise a :" +"exc:`BdbQuit` exception if the :attr:`Bdb.quitting` flag is set (which can " +"be set from :meth:`user_return`). Return a reference to the :meth:" +"`trace_dispatch` method for further tracing in that scope." +msgstr "" + +#: ../Doc/library/bdb.rst:160 +msgid "" +"If the debugger should stop at this exception, invokes the :meth:" +"`user_exception` method (which should be overridden in subclasses). Raise a :" +"exc:`BdbQuit` exception if the :attr:`Bdb.quitting` flag is set (which can " +"be set from :meth:`user_exception`). Return a reference to the :meth:" +"`trace_dispatch` method for further tracing in that scope." +msgstr "" + +#: ../Doc/library/bdb.rst:166 +msgid "" +"Normally derived classes don't override the following methods, but they may " +"if they want to redefine the definition of stopping and breakpoints." +msgstr "" + +#: ../Doc/library/bdb.rst:171 +msgid "" +"This method checks if the *frame* is somewhere below :attr:`botframe` in the " +"call stack. :attr:`botframe` is the frame in which debugging started." +msgstr "" + +#: ../Doc/library/bdb.rst:176 +msgid "" +"This method checks if there is a breakpoint in the filename and line " +"belonging to *frame* or, at least, in the current function. If the " +"breakpoint is a temporary one, this method deletes it." +msgstr "" + +#: ../Doc/library/bdb.rst:182 +msgid "" +"This method checks if there is a breakpoint in the filename of the current " +"frame." +msgstr "" + +#: ../Doc/library/bdb.rst:185 +msgid "" +"Derived classes should override these methods to gain control over debugger " +"operation." +msgstr "" + +#: ../Doc/library/bdb.rst:190 +msgid "" +"This method is called from :meth:`dispatch_call` when there is the " +"possibility that a break might be necessary anywhere inside the called " +"function." +msgstr "" + +#: ../Doc/library/bdb.rst:196 +msgid "" +"This method is called from :meth:`dispatch_line` when either :meth:" +"`stop_here` or :meth:`break_here` yields ``True``." +msgstr "" + +#: ../Doc/library/bdb.rst:201 +msgid "" +"This method is called from :meth:`dispatch_return` when :meth:`stop_here` " +"yields ``True``." +msgstr "" + +#: ../Doc/library/bdb.rst:206 +msgid "" +"This method is called from :meth:`dispatch_exception` when :meth:`stop_here` " +"yields ``True``." +msgstr "" + +#: ../Doc/library/bdb.rst:211 +msgid "Handle how a breakpoint must be removed when it is a temporary one." +msgstr "" + +#: ../Doc/library/bdb.rst:213 +msgid "This method must be implemented by derived classes." +msgstr "" + +#: ../Doc/library/bdb.rst:216 +msgid "" +"Derived classes and clients can call the following methods to affect the " +"stepping state." +msgstr "" + +#: ../Doc/library/bdb.rst:221 +msgid "Stop after one line of code." +msgstr "Arrête après une ligne de code." + +#: ../Doc/library/bdb.rst:225 +msgid "Stop on the next line in or below the given frame." +msgstr "" + +#: ../Doc/library/bdb.rst:229 +msgid "Stop when returning from the given frame." +msgstr "" + +#: ../Doc/library/bdb.rst:233 +msgid "" +"Stop when the line with the line no greater than the current one is reached " +"or when returning from current frame." +msgstr "" + +#: ../Doc/library/bdb.rst:238 +msgid "" +"Start debugging from *frame*. If *frame* is not specified, debugging starts " +"from caller's frame." +msgstr "" + +#: ../Doc/library/bdb.rst:243 +msgid "" +"Stop only at breakpoints or when finished. If there are no breakpoints, set " +"the system trace function to ``None``." +msgstr "" + +#: ../Doc/library/bdb.rst:248 +msgid "" +"Set the :attr:`quitting` attribute to ``True``. This raises :exc:`BdbQuit` " +"in the next call to one of the :meth:`dispatch_\\*` methods." +msgstr "" + +#: ../Doc/library/bdb.rst:252 +msgid "" +"Derived classes and clients can call the following methods to manipulate " +"breakpoints. These methods return a string containing an error message if " +"something went wrong, or ``None`` if all is well." +msgstr "" + +#: ../Doc/library/bdb.rst:258 +msgid "" +"Set a new breakpoint. If the *lineno* line doesn't exist for the *filename* " +"passed as argument, return an error message. The *filename* should be in " +"canonical form, as described in the :meth:`canonic` method." +msgstr "" + +#: ../Doc/library/bdb.rst:264 +msgid "" +"Delete the breakpoints in *filename* and *lineno*. If none were set, an " +"error message is returned." +msgstr "" + +#: ../Doc/library/bdb.rst:269 +msgid "" +"Delete the breakpoint which has the index *arg* in the :attr:`Breakpoint." +"bpbynumber`. If *arg* is not numeric or out of range, return an error " +"message." +msgstr "" + +#: ../Doc/library/bdb.rst:275 +msgid "" +"Delete all breakpoints in *filename*. If none were set, an error message is " +"returned." +msgstr "" + +#: ../Doc/library/bdb.rst:280 +msgid "Delete all existing breakpoints." +msgstr "Supprime tous les points d'arrêt définis." + +#: ../Doc/library/bdb.rst:284 +msgid "" +"Return a breakpoint specified by the given number. If *arg* is a string, it " +"will be converted to a number. If *arg* is a non-numeric string, if the " +"given breakpoint never existed or has been deleted, a :exc:`ValueError` is " +"raised." +msgstr "" + +#: ../Doc/library/bdb.rst:293 +msgid "Check if there is a breakpoint for *lineno* of *filename*." +msgstr "" + +#: ../Doc/library/bdb.rst:297 +msgid "" +"Return all breakpoints for *lineno* in *filename*, or an empty list if none " +"are set." +msgstr "" + +#: ../Doc/library/bdb.rst:302 +msgid "Return all breakpoints in *filename*, or an empty list if none are set." +msgstr "" + +#: ../Doc/library/bdb.rst:306 +msgid "Return all breakpoints that are set." +msgstr "Donne tous les points d'arrêt définis." + +#: ../Doc/library/bdb.rst:309 +msgid "" +"Derived classes and clients can call the following methods to get a data " +"structure representing a stack trace." +msgstr "" + +#: ../Doc/library/bdb.rst:314 +msgid "" +"Get a list of records for a frame and all higher (calling) and lower frames, " +"and the size of the higher part." +msgstr "" + +#: ../Doc/library/bdb.rst:319 +msgid "" +"Return a string with information about a stack entry, identified by a " +"``(frame, lineno)`` tuple:" +msgstr "" + +#: ../Doc/library/bdb.rst:322 +msgid "The canonical form of the filename which contains the frame." +msgstr "" + +#: ../Doc/library/bdb.rst:323 +msgid "The function name, or ``\"\"``." +msgstr "Le nom de la fonction, ou ``\"\"``." + +#: ../Doc/library/bdb.rst:324 +msgid "The input arguments." +msgstr "Les arguments donnés." + +#: ../Doc/library/bdb.rst:325 +msgid "The return value." +msgstr "Le résultat." + +#: ../Doc/library/bdb.rst:326 +msgid "The line of code (if it exists)." +msgstr "La ligne de code (si elle existe)." + +#: ../Doc/library/bdb.rst:329 +msgid "" +"The following two methods can be called by clients to use a debugger to " +"debug a :term:`statement`, given as a string." +msgstr "" + +#: ../Doc/library/bdb.rst:334 +msgid "" +"Debug a statement executed via the :func:`exec` function. *globals* " +"defaults to :attr:`__main__.__dict__`, *locals* defaults to *globals*." +msgstr "" + +#: ../Doc/library/bdb.rst:339 +msgid "" +"Debug an expression executed via the :func:`eval` function. *globals* and " +"*locals* have the same meaning as in :meth:`run`." +msgstr "" + +#: ../Doc/library/bdb.rst:344 +msgid "For backwards compatibility. Calls the :meth:`run` method." +msgstr "" + +#: ../Doc/library/bdb.rst:348 +msgid "Debug a single function call, and return its result." +msgstr "" + +#: ../Doc/library/bdb.rst:351 +msgid "Finally, the module defines the following functions:" +msgstr "" + +#: ../Doc/library/bdb.rst:355 +msgid "" +"Check whether we should break here, depending on the way the breakpoint *b* " +"was set." +msgstr "" + +#: ../Doc/library/bdb.rst:358 +msgid "" +"If it was set via line number, it checks if ``b.line`` is the same as the " +"one in the frame also passed as argument. If the breakpoint was set via " +"function name, we have to check we are in the right frame (the right " +"function) and if we are in its first executable line." +msgstr "" + +#: ../Doc/library/bdb.rst:365 +msgid "" +"Determine if there is an effective (active) breakpoint at this line of code. " +"Return a tuple of the breakpoint and a boolean that indicates if it is ok to " +"delete a temporary breakpoint. Return ``(None, None)`` if there is no " +"matching breakpoint." +msgstr "" + +#: ../Doc/library/bdb.rst:372 +msgid "Start debugging with a :class:`Bdb` instance from caller's frame." +msgstr "" diff --git a/library/binary.po b/library/binary.po new file mode 100644 index 000000000..5ce73d0e9 --- /dev/null +++ b/library/binary.po @@ -0,0 +1,49 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-11-07 23:13+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/binary.rst:5 +msgid "Binary Data Services" +msgstr "Services autour des Données Binaires" + +#: ../Doc/library/binary.rst:7 +msgid "" +"The modules described in this chapter provide some basic services operations " +"for manipulation of binary data. Other operations on binary data, " +"specifically in relation to file formats and network protocols, are " +"described in the relevant sections." +msgstr "" +"Les modules décrits dans ce chapitre fournissent des services élémentaires " +"pour manipuler des données binaires. Les autres manipulations sur les " +"données binaires, particulièrement celles en relation avec les formats de " +"fichier et les protocoles réseaux sont décrits dans leurs propres chapitres." + +#: ../Doc/library/binary.rst:12 +msgid "" +"Some libraries described under :ref:`textservices` also work with either " +"ASCII-compatible binary formats (for example, :mod:`re`) or all binary data " +"(for example, :mod:`difflib`)." +msgstr "" +"Certaines bibliothèques décrites dans :ref:`textservices` fonctionnent aussi " +"avec soit des formats binaires compatibles ASCII (comme le module :mod:`re`) " +"soit toutes les données binaires (comme le module :mod:`difflib`)." + +#: ../Doc/library/binary.rst:16 +msgid "" +"In addition, see the documentation for Python's built-in binary data types " +"in :ref:`binaryseq`." +msgstr "" +"En complément, consultez la documentation des types natifs binaires dans :" +"ref:`binaryseq`." diff --git a/library/binascii.po b/library/binascii.po new file mode 100644 index 000000000..2c0bf0f8b --- /dev/null +++ b/library/binascii.po @@ -0,0 +1,315 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-03 16:57+0100\n" +"PO-Revision-Date: 2019-02-25 22:48+0100\n" +"Last-Translator: Florent Bartoli \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/binascii.rst:2 +msgid ":mod:`binascii` --- Convert between binary and ASCII" +msgstr ":mod:`binascii` --- Conversion entre binaire et ASCII" + +#: ../Doc/library/binascii.rst:15 +msgid "" +"The :mod:`binascii` module contains a number of methods to convert between " +"binary and various ASCII-encoded binary representations. Normally, you will " +"not use these functions directly but use wrapper modules like :mod:`uu`, :" +"mod:`base64`, or :mod:`binhex` instead. The :mod:`binascii` module contains " +"low-level functions written in C for greater speed that are used by the " +"higher-level modules." +msgstr "" +"Le module :mod:`binascii` contient des méthodes pour convertir entre binaire " +"et diverses représentations binaires encodées en ASCII. Normalement, vous " +"n’allez pas utiliser ces fonctions directement mais vous utiliserez des " +"modules d’encapsulage comme :mod:`uu`, :mod:`base64`, or :mod:`binhex` à la " +"place. Le module :mod:`binascii` contient des fonctions bas-niveau écrites " +"en C plus rapides qui sont utilisées par des modules haut-niveau." + +#: ../Doc/library/binascii.rst:24 +msgid "" +"``a2b_*`` functions accept Unicode strings containing only ASCII characters. " +"Other functions only accept :term:`bytes-like objects ` " +"(such as :class:`bytes`, :class:`bytearray` and other objects that support " +"the buffer protocol)." +msgstr "" +"La fonction ``a2b_*`` accepte des chaînes de caractères contenant seulement " +"des caractères ASCII. D’autres fonctions acceptent seulement des objets :" +"term:`bytes et similaire ` (tel que :class:`bytes`, :" +"class:`bytearray` et autres objets qui supportent le protocole tampon)." + +#: ../Doc/library/binascii.rst:29 +msgid "ASCII-only unicode strings are now accepted by the ``a2b_*`` functions." +msgstr "" +"Les chaines de caractères *unicode* seulement composées de caractères ASCII " +"sont désormais acceptées par les fonctions ``a2b_*``." + +#: ../Doc/library/binascii.rst:33 +msgid "The :mod:`binascii` module defines the following functions:" +msgstr "Le module :mod:`binascii` définit les fonctions suivantes :" + +#: ../Doc/library/binascii.rst:38 +msgid "" +"Convert a single line of uuencoded data back to binary and return the binary " +"data. Lines normally contain 45 (binary) bytes, except for the last line. " +"Line data may be followed by whitespace." +msgstr "" +"Convertit une seule ligne de donnée *uuencoded* en binaire et renvoie la " +"donnée binaire. Les lignes contiennent normalement 45 octets (binaire), sauf " +"pour la dernière ligne. Il se peut que la ligne de donnée soit suivie d’un " +"espace blanc." + +#: ../Doc/library/binascii.rst:45 +msgid "" +"Convert binary data to a line of ASCII characters, the return value is the " +"converted line, including a newline char. The length of *data* should be at " +"most 45. If *backtick* is true, zeros are represented by ``'`'`` instead of " +"spaces." +msgstr "" +"Convertit les données binaires en une ligne de caractères ASCII, la valeur " +"renvoyée est la ligne convertie incluant un caractère de nouvelle ligne. La " +"longueur de *data* doit être au maximum de 45. Si *backtick* est vraie, les " +"zéros sont représentés par ``'`'`` plutôt que par des espaces." + +#: ../Doc/library/binascii.rst:49 +msgid "Added the *backtick* parameter." +msgstr "Ajout du paramètre *backtick*." + +#: ../Doc/library/binascii.rst:55 +msgid "" +"Convert a block of base64 data back to binary and return the binary data. " +"More than one line may be passed at a time." +msgstr "" +"Convertit un bloc de donnée en *base64* en binaire et renvoie la donnée " +"binaire. Plus d’une ligne peut être passé à la fois." + +#: ../Doc/library/binascii.rst:61 +msgid "" +"Convert binary data to a line of ASCII characters in base64 coding. The " +"return value is the converted line, including a newline char if *newline* is " +"true. The output of this function conforms to :rfc:`3548`." +msgstr "" +"Convertit les données binaires en une ligne de caractères ASCII en codage " +"base 64. La valeur de renvoyée et la ligne convertie, incluant un caractère " +"de nouvelle ligne si *newline* est vraie. La sortie de cette fonction se " +"conforme à :rfc:`3548`." + +#: ../Doc/library/binascii.rst:65 +msgid "Added the *newline* parameter." +msgstr "Ajout du paramètre *newline*." + +#: ../Doc/library/binascii.rst:71 +msgid "" +"Convert a block of quoted-printable data back to binary and return the " +"binary data. More than one line may be passed at a time. If the optional " +"argument *header* is present and true, underscores will be decoded as spaces." +msgstr "" +"Convertit un bloc de données *quoted-printable* en binaire et renvoie les " +"données binaires. Plus d’une ligne peut être passée à la fois. Si l’argument " +"optionnel *header* est présent et vrai, les traits soulignés seront décodés " +"en espaces." + +#: ../Doc/library/binascii.rst:78 +msgid "" +"Convert binary data to a line(s) of ASCII characters in quoted-printable " +"encoding. The return value is the converted line(s). If the optional " +"argument *quotetabs* is present and true, all tabs and spaces will be " +"encoded. If the optional argument *istext* is present and true, newlines " +"are not encoded but trailing whitespace will be encoded. If the optional " +"argument *header* is present and true, spaces will be encoded as underscores " +"per :rfc:`1522`. If the optional argument *header* is present and false, " +"newline characters will be encoded as well; otherwise linefeed conversion " +"might corrupt the binary data stream." +msgstr "" +"Convertit les données binaires en ligne(s) de caractères ASCII en codage " +"imprimable entre guillemets. La valeur de retour est la\\les lignes(s) " +"convertie(s). Si l’argument optionnel *quotetabs* est présent et vrai, " +"toutes les tabulations et espaces seront encodés. Si l’argument optionnel " +"*istext* est présent et faux, les nouvelles lignes ne sont pas encodées mais " +"les espaces de fin de ligne le seront. Si l’argument optionnel *header* est " +"présent et vrai, les espaces vont être encodés comme de traits soulignés " +"selon :rfc:`1522`. Si l’argument optionnel *header* est présent et faux, les " +"caractères de nouvelle ligne seront également encodés ; sinon la conversion " +"de saut de ligne pourrait corrompre le flux de données binaire." + +#: ../Doc/library/binascii.rst:91 +msgid "" +"Convert binhex4 formatted ASCII data to binary, without doing RLE-" +"decompression. The string should contain a complete number of binary bytes, " +"or (in case of the last portion of the binhex4 data) have the remaining bits " +"zero." +msgstr "" +"Convertit un bloc de donnée ASCII au format *binhex4* en binaire, sans faire " +"de décompression RLE. La chaîne de caractères doit contenir un nombre " +"complet d’octet binaires ou (au cas où la dernière portion de donnée est au " +"format *binhex4*) avoir les bits restants à 0." + +#: ../Doc/library/binascii.rst:98 +msgid "" +"Perform RLE-decompression on the data, as per the binhex4 standard. The " +"algorithm uses ``0x90`` after a byte as a repeat indicator, followed by a " +"count. A count of ``0`` specifies a byte value of ``0x90``. The routine " +"returns the decompressed data, unless data input data ends in an orphaned " +"repeat indicator, in which case the :exc:`Incomplete` exception is raised." +msgstr "" +"Réalise une décompression RLE sur la donnée, d’après la norme *binhex4*. " +"L’algorithme utilise ``0x90`` après un octet comme un indicateur de " +"répétition, suivi d’un décompte. Un décompte de ``0`` définit une valeur " +"d’octet de ``0x90``. La routine renvoie la donnée décompressée, sauf si la " +"donnée entrante se finit sur un indicateur de répétition orphelin. Dans ce " +"cas l’exception :exc:`Incomplete` est levée." + +#: ../Doc/library/binascii.rst:104 +msgid "Accept only bytestring or bytearray objects as input." +msgstr "Accepte seulement des objets *bytestring* ou *bytearray* en entrée." + +#: ../Doc/library/binascii.rst:110 +msgid "Perform binhex4 style RLE-compression on *data* and return the result." +msgstr "" +"Réalise une compression RLE de type *binhex4* sur *data* et renvoie le " +"résultat." + +#: ../Doc/library/binascii.rst:115 +msgid "" +"Perform hexbin4 binary-to-ASCII translation and return the resulting string. " +"The argument should already be RLE-coded, and have a length divisible by 3 " +"(except possibly the last fragment)." +msgstr "" +"Réalise une traduction *hexbin4* de binaire à ASCII et renvoie la chaîne de " +"caractères résultante. L’argument doit être *RLE-coded*, et avoir une " +"longueur divisible par 3 (sauf, éventuellement, le dernier fragment)." + +#: ../Doc/library/binascii.rst:122 +msgid "" +"Compute a 16-bit CRC value of *data*, starting with *value* as the initial " +"CRC, and return the result. This uses the CRC-CCITT polynomial *x*:sup:`16` " +"+ *x*:sup:`12` + *x*:sup:`5` + 1, often represented as 0x1021. This CRC is " +"used in the binhex4 format." +msgstr "" +"Calcule une valeur en CRC 16-bit de *data*, commençant par *value* comme CRC " +"initial et renvoie le résultat. Ceci utilise le CRC-CCITT polynomial *x*:sup:" +"`16` + *x*:sup:`12` + *x*:sup:`5` + 1, souvent représenté comme *0x1021*. Ce " +"CRC est utilisé dans le format *binhex4*." + +#: ../Doc/library/binascii.rst:130 +msgid "" +"Compute CRC-32, the 32-bit checksum of *data*, starting with an initial CRC " +"of *value*. The default initial CRC is zero. The algorithm is consistent " +"with the ZIP file checksum. Since the algorithm is designed for use as a " +"checksum algorithm, it is not suitable for use as a general hash algorithm. " +"Use as follows::" +msgstr "" +"Calcule CRC-32, la somme de contrôle 32-bit de *data*, commençant par un CRC " +"initial de *value*. Le CRC initial par défaut est zéro. L’algorithme est " +"cohérent avec la somme de contrôle du fichier ZIP. Comme l’algorithme est " +"conçu pour être utilisé comme un algorithme de somme de contrôle, il ne " +"convient pas comme algorithme de hachage général. Utiliser comme suit ::" + +#: ../Doc/library/binascii.rst:142 +msgid "" +"The result is always unsigned. To generate the same numeric value across all " +"Python versions and platforms, use ``crc32(data) & 0xffffffff``." +msgstr "" +"Le résultat est toujours non signé. Pour générer la même valeur numérique " +"sur toutes les versions de Python et plateformes, utilisez ``crc32(data) & " +"0xffffffff``." + +#: ../Doc/library/binascii.rst:151 +msgid "" +"Return the hexadecimal representation of the binary *data*. Every byte of " +"*data* is converted into the corresponding 2-digit hex representation. The " +"returned bytes object is therefore twice as long as the length of *data*." +msgstr "" +"Renvoie la représentation hexadécimale du binaire *data*. Chaque octet de " +"*data* est converti en la représentation 2 chiffres correspondante. L’objet " +"octets renvoyé est donc deux fois plus long que la longueur de *data*." + +#: ../Doc/library/binascii.rst:155 +msgid "" +"Similar functionality (but returning a text string) is also conveniently " +"accessible using the :meth:`bytes.hex` method." +msgstr "" +"Fonctionnalité similaire est également commodément accessible en utilisant " +"la méthode :meth:`bytes.hex`." + +#: ../Doc/library/binascii.rst:161 +msgid "" +"Return the binary data represented by the hexadecimal string *hexstr*. This " +"function is the inverse of :func:`b2a_hex`. *hexstr* must contain an even " +"number of hexadecimal digits (which can be upper or lower case), otherwise " +"an :exc:`Error` exception is raised." +msgstr "" +"Renvoie la donnée binaire représentée par la chaîne de caractères " +"hexadécimale *hexstr*. Cette fonction est l’inverse de :func:`b2a_hex`. " +"*hexstr* doit contenir un nombre pair de chiffres hexadécimaux (qui peuvent " +"être en majuscule ou minuscule), sinon une exception :exc:`Error` est levée." + +#: ../Doc/library/binascii.rst:166 +msgid "" +"Similar functionality (accepting only text string arguments, but more " +"liberal towards whitespace) is also accessible using the :meth:`bytes." +"fromhex` class method." +msgstr "" +"Une fonctionnalité similaire (n’acceptant que les arguments de chaîne de " +"texte, mais plus libérale vis-à-vis des espaces blancs) est également " +"accessible en utilisant la méthode de classe :meth:`bytes.fromhex`." + +#: ../Doc/library/binascii.rst:172 +msgid "Exception raised on errors. These are usually programming errors." +msgstr "" +"Exception levée en cas d'erreurs. Ce sont typiquement des erreurs de " +"programmation." + +#: ../Doc/library/binascii.rst:177 +msgid "" +"Exception raised on incomplete data. These are usually not programming " +"errors, but may be handled by reading a little more data and trying again." +msgstr "" +"Exception levée par des données incomplète. Il ne s’agit généralement pas " +"d’erreurs de programmation, mais elles peuvent être traitées en lisant un " +"peu plus de données et en réessayant." + +#: ../Doc/library/binascii.rst:185 +msgid "Module :mod:`base64`" +msgstr "Module :mod:`base64`" + +#: ../Doc/library/binascii.rst:184 +msgid "" +"Support for RFC compliant base64-style encoding in base 16, 32, 64, and 85." +msgstr "" +"Support de l’encodage *base64-style* conforme RFC en base 16, 32, 64 et 85." + +#: ../Doc/library/binascii.rst:188 +msgid "Module :mod:`binhex`" +msgstr "Module :mod:`binhex`" + +#: ../Doc/library/binascii.rst:188 +msgid "Support for the binhex format used on the Macintosh." +msgstr "Support pour le format *binhex* utilisé sur Macintosh." + +#: ../Doc/library/binascii.rst:191 +msgid "Module :mod:`uu`" +msgstr "Module :mod:`uu`" + +#: ../Doc/library/binascii.rst:191 +msgid "Support for UU encoding used on Unix." +msgstr "Gestion de l'encodage UU utilisé sur Unix." + +#: ../Doc/library/binascii.rst:193 +msgid "Module :mod:`quopri`" +msgstr "Module :mod:`quopri`" + +#: ../Doc/library/binascii.rst:194 +msgid "Support for quoted-printable encoding used in MIME email messages." +msgstr "" +"Support de l’encodage *quote-printable* utilisé par les messages *email* " +"MIME." diff --git a/library/binhex.po b/library/binhex.po new file mode 100644 index 000000000..c15798401 --- /dev/null +++ b/library/binhex.po @@ -0,0 +1,108 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"PO-Revision-Date: 2018-07-29 23:42+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/binhex.rst:2 +msgid ":mod:`binhex` --- Encode and decode binhex4 files" +msgstr ":mod:`binhex` — Encode et décode les fichiers *binhex4*" + +#: ../Doc/library/binhex.rst:7 +msgid "**Source code:** :source:`Lib/binhex.py`" +msgstr "**Code source :** :source:`Lib/binhex.py`" + +#: ../Doc/library/binhex.rst:11 +msgid "" +"This module encodes and decodes files in binhex4 format, a format allowing " +"representation of Macintosh files in ASCII. Only the data fork is handled." +msgstr "" +"Ce module encode et décode les fichiers au format *binhex4*, un format " +"permettant la représentation de fichier Macintosh au format ASCII. Seulement " +"la fourchette de donnée est supportée." + +#: ../Doc/library/binhex.rst:14 +msgid "The :mod:`binhex` module defines the following functions:" +msgstr "Le module :mod:`binhex` définit les fonctions suivantes :" + +#: ../Doc/library/binhex.rst:19 +msgid "" +"Convert a binary file with filename *input* to binhex file *output*. The " +"*output* parameter can either be a filename or a file-like object (any " +"object supporting a :meth:`write` and :meth:`close` method)." +msgstr "" +"Convertit un fichier binaire avec comme nom *input* en fichier *binhex* " +"*output*. Le paramètre *output* peut être soit un nom de fichier, soit un " +"objet s’apparentant à un fichier (tout objet supportant les méthodes :meth:" +"`write` et :meth:`close`)." + +#: ../Doc/library/binhex.rst:26 +msgid "" +"Decode a binhex file *input*. *input* may be a filename or a file-like " +"object supporting :meth:`read` and :meth:`close` methods. The resulting file " +"is written to a file named *output*, unless the argument is ``None`` in " +"which case the output filename is read from the binhex file." +msgstr "" +"Décode un fichier *binhex* *input*. *input* peut être soit un nom de " +"fichier, soit un objet s’apparentant à un fichier supportant les méthodes :" +"meth:`write` et :meth:`close`. Le résultat est écrit dans un fichier nommé " +"*output*, sauf si l'argument est ``None``, dans ce cas le fichier de sortie " +"est lu depuis le fichier *binhex*." + +#: ../Doc/library/binhex.rst:31 +msgid "The following exception is also defined:" +msgstr "L'exception suivante est aussi définie :" + +#: ../Doc/library/binhex.rst:36 +msgid "" +"Exception raised when something can't be encoded using the binhex format " +"(for example, a filename is too long to fit in the filename field), or when " +"input is not properly encoded binhex data." +msgstr "" +"Exception levée quand quelque chose ne peut être encodé en utilisant le " +"format *binhex* (par exemple, un nom de fichier trop long pour rentrer dans " +"le champ *filename*) ou quand les données d'entrée ne sont pas encodées " +"correctement en *binhex*." + +#: ../Doc/library/binhex.rst:43 +msgid "Module :mod:`binascii`" +msgstr "Module :mod:`binascii`" + +#: ../Doc/library/binhex.rst:44 +msgid "" +"Support module containing ASCII-to-binary and binary-to-ASCII conversions." +msgstr "" +"Module secondaire contenant les conversions ASCII vers binaire et binaire " +"vers ASCII." + +#: ../Doc/library/binhex.rst:50 +msgid "Notes" +msgstr "Notes" + +#: ../Doc/library/binhex.rst:52 +msgid "" +"There is an alternative, more powerful interface to the coder and decoder, " +"see the source for details." +msgstr "" +"Il y a une alternative, une interface plus puissante pour le codeur et " +"décodeur, voir les sources pour les détails." + +#: ../Doc/library/binhex.rst:55 +msgid "" +"If you code or decode textfiles on non-Macintosh platforms they will still " +"use the old Macintosh newline convention (carriage-return as end of line)." +msgstr "" +"Si vous codez ou décodez sur des plateformes autres que Macintosh, elles " +"utiliseront l'ancienne convention Macintosh pour les retours à la ligne " +"(retour-chariot comme fin de ligne)." diff --git a/library/bisect.po b/library/bisect.po new file mode 100644 index 000000000..2e2ee1652 --- /dev/null +++ b/library/bisect.po @@ -0,0 +1,177 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-07-29 01:03+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/bisect.rst:2 +msgid ":mod:`bisect` --- Array bisection algorithm" +msgstr ":mod:`bisect` — Algorithme de bissection de listes" + +#: ../Doc/library/bisect.rst:10 +msgid "**Source code:** :source:`Lib/bisect.py`" +msgstr "**Code source :** :source:`Lib/bisect.py`" + +#: ../Doc/library/bisect.rst:14 +msgid "" +"This module provides support for maintaining a list in sorted order without " +"having to sort the list after each insertion. For long lists of items with " +"expensive comparison operations, this can be an improvement over the more " +"common approach. The module is called :mod:`bisect` because it uses a basic " +"bisection algorithm to do its work. The source code may be most useful as a " +"working example of the algorithm (the boundary conditions are already " +"right!)." +msgstr "" +"Ce module fournit des outils pour maintenir une liste triée sans avoir à la " +"trier à chaque insertion. Il pourrait être plus rapide que l'approche " +"classique pour de longues listes d'éléments dont les opérations de " +"comparaison sont lourdes. Le module se nomme :mod:`bisect` car il utilise " +"une approche simple par bissection. Si vous voulez un exemple de cet " +"algorithme, le mieux est d'aller lire le code source de ce module (les " +"conditions sur les limites y étant justes !)." + +#: ../Doc/library/bisect.rst:21 +msgid "The following functions are provided:" +msgstr "Les fonctions suivantes sont fournies :" + +#: ../Doc/library/bisect.rst:26 +msgid "" +"Locate the insertion point for *x* in *a* to maintain sorted order. The " +"parameters *lo* and *hi* may be used to specify a subset of the list which " +"should be considered; by default the entire list is used. If *x* is already " +"present in *a*, the insertion point will be before (to the left of) any " +"existing entries. The return value is suitable for use as the first " +"parameter to ``list.insert()`` assuming that *a* is already sorted." +msgstr "" +"Trouve le point d'insertion de *x* dans *a* permettant de conserver l'ordre. " +"Les paramètres *lo* et *hi* permettent de limiter les emplacements à " +"vérifier dans la liste, par défaut toute la liste est utilisée. Si *x* est " +"déjà présent dans *a*, le point d'insertion proposé sera avant (à gauche) de " +"l'entrée existante. Si *a* est déjà triée, la valeur renvoyée peut " +"directement être utilisée comme premier paramètre de ``list.insert()``." + +#: ../Doc/library/bisect.rst:33 +msgid "" +"The returned insertion point *i* partitions the array *a* into two halves so " +"that ``all(val < x for val in a[lo:i])`` for the left side and ``all(val >= " +"x for val in a[i:hi])`` for the right side." +msgstr "" +"Le point d'insertion renvoyé, *i*, coupe la liste *a* en deux moitiés telles " +"que, pour la moitié de gauche : ``all(val < x for val in a[lo:i])``, et pour " +"la partie de droite : ``all(val >= x for val in a[i:hi])``." + +#: ../Doc/library/bisect.rst:40 +msgid "" +"Similar to :func:`bisect_left`, but returns an insertion point which comes " +"after (to the right of) any existing entries of *x* in *a*." +msgstr "" +"Semblable à :func:`bisect_left`, mais renvoie un point d'insertion après (à " +"droite) d'une potentielle entrée existante valant *x* dans *a*." + +#: ../Doc/library/bisect.rst:43 +msgid "" +"The returned insertion point *i* partitions the array *a* into two halves so " +"that ``all(val <= x for val in a[lo:i])`` for the left side and ``all(val > " +"x for val in a[i:hi])`` for the right side." +msgstr "" +"Le point d'insertion renvoyé, *i*, coupe la liste *a* en deux moitiés telles " +"que, pour la moitié de gauche : ``all(val <= x for val in a[lo:i])`` et pour " +"la moitié de droite : ``all(val > x for val in a[i:hi])``." + +#: ../Doc/library/bisect.rst:49 +msgid "" +"Insert *x* in *a* in sorted order. This is equivalent to ``a.insert(bisect." +"bisect_left(a, x, lo, hi), x)`` assuming that *a* is already sorted. Keep " +"in mind that the O(log n) search is dominated by the slow O(n) insertion " +"step." +msgstr "" +"Insère *x* dans *a* en conservant le tri. C'est l'équivalent de ``a." +"insert(bisect.bisect_left(a, x, lo, hi), x)``, tant que *a* est déjà triée. " +"Gardez en tête que bien que la recherche ne coûte que O(log n), l'insertion " +"coûte O(n)." + +#: ../Doc/library/bisect.rst:57 +msgid "" +"Similar to :func:`insort_left`, but inserting *x* in *a* after any existing " +"entries of *x*." +msgstr "" +"Similaire à :func:`insort_left`, mais en insérant *x* dans *a* après une " +"potentielle entrée existante égale à *x*." + +#: ../Doc/library/bisect.rst:62 +msgid "" +"`SortedCollection recipe `_ that uses bisect to build a full-featured collection " +"class with straight-forward search methods and support for a key-function. " +"The keys are precomputed to save unnecessary calls to the key function " +"during searches." +msgstr "" +"`SortedCollection recipe `_ utilise le module *bisect* pour construire une classe " +"collection exposant des méthodes de recherches naturelles et gérant une " +"fonction clef. Les clefs sont pré-calculées pour économiser des appels " +"inutiles à la fonction clef durant les recherches." + +#: ../Doc/library/bisect.rst:70 +msgid "Searching Sorted Lists" +msgstr "Chercher dans des listes triées" + +#: ../Doc/library/bisect.rst:72 +msgid "" +"The above :func:`bisect` functions are useful for finding insertion points " +"but can be tricky or awkward to use for common searching tasks. The " +"following five functions show how to transform them into the standard " +"lookups for sorted lists::" +msgstr "" +"Les fonctions :func:`bisect` ci-dessus sont utiles pour insérer des " +"éléments, mais peuvent être étranges et peu naturelles à utiliser pour " +"rechercher des éléments. Les cinq fonctions suivantes montrent comment les " +"transformer en recherche plus classique pour les listes triées ::" + +#: ../Doc/library/bisect.rst:114 +msgid "Other Examples" +msgstr "Autres Exemples" + +#: ../Doc/library/bisect.rst:118 +msgid "" +"The :func:`bisect` function can be useful for numeric table lookups. This " +"example uses :func:`bisect` to look up a letter grade for an exam score " +"(say) based on a set of ordered numeric breakpoints: 90 and up is an 'A', 80 " +"to 89 is a 'B', and so on::" +msgstr "" +"La fonction :func:`bisect` peut être utile pour des recherches dans des " +"tableaux de nombres. Cet exemple utilise :func:`bisect` pour rechercher la " +"note (sous forme de lettre) correspondant à un note sous forme de points, en " +"se basant sur une échelle prédéfinie : plus de 90 vaut 'A', de 80 à 89 vaut " +"'B', etc… ::" + +#: ../Doc/library/bisect.rst:130 +msgid "" +"Unlike the :func:`sorted` function, it does not make sense for the :func:" +"`bisect` functions to have *key* or *reversed* arguments because that would " +"lead to an inefficient design (successive calls to bisect functions would " +"not \"remember\" all of the previous key lookups)." +msgstr "" +"Contrairement à la fonction :func:`sorted`, ça n'aurait pas de sens pour la " +"fonction :func:`bisect` d'avoir un paramètre *key* ou *reversed*, qui " +"conduiraient à une utilisation inefficace (des appels successifs à la " +"fonction *bisect* n'auraient aucun moyen de se \"souvenir\" des recherches " +"de clef précédentes)." + +#: ../Doc/library/bisect.rst:135 +msgid "" +"Instead, it is better to search a list of precomputed keys to find the index " +"of the record in question::" +msgstr "" +"Il est préférable d'utiliser une liste de clefs pré-calculée pour chercher " +"l'index de l'enregistrement en question ::" diff --git a/library/builtins.po b/library/builtins.po new file mode 100644 index 000000000..5a8579084 --- /dev/null +++ b/library/builtins.po @@ -0,0 +1,60 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-07-29 00:46+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/builtins.rst:2 +msgid ":mod:`builtins` --- Built-in objects" +msgstr ":mod:`builtins` — Objets natifs" + +#: ../Doc/library/builtins.rst:9 +msgid "" +"This module provides direct access to all 'built-in' identifiers of Python; " +"for example, ``builtins.open`` is the full name for the built-in function :" +"func:`open`. See :ref:`built-in-funcs` and :ref:`built-in-consts` for " +"documentation." +msgstr "" +"Ce module fournit un accès direct aux identifiants 'natifs' de Python; par " +"exemple, ``builtins.open`` est le nom complet pour la fonction native :func:" +"`open`. Voir :ref:`built-in-funcs` et :ref:`built-in-consts` pour plus de " +"documentation." + +#: ../Doc/library/builtins.rst:15 +msgid "" +"This module is not normally accessed explicitly by most applications, but " +"can be useful in modules that provide objects with the same name as a built-" +"in value, but in which the built-in of that name is also needed. For " +"example, in a module that wants to implement an :func:`open` function that " +"wraps the built-in :func:`open`, this module can be used directly::" +msgstr "" +"Ce module n'est normalement pas accédé explicitement par la plupart des " +"applications, mais peut être utile dans des modules qui exposent des objets " +"de même nom qu'une valeur native, mais pour qui le natif de même nom est " +"aussi nécessaire. Par exemple, dans un module qui voudrait implémenter une " +"fonction :func:`open` autour de la fonction native :func:`open`, ce module " +"peut être utilisé directement ::" + +#: ../Doc/library/builtins.rst:38 +msgid "" +"As an implementation detail, most modules have the name ``__builtins__`` " +"made available as part of their globals. The value of ``__builtins__`` is " +"normally either this module or the value of this module's :attr:`~object." +"__dict__` attribute. Since this is an implementation detail, it may not be " +"used by alternate implementations of Python." +msgstr "" +"Spécificité de l'implémentation: La plupart des modules ont ``__builtins__`` " +"dans leurs globales. La valeur de ``__builtins__`` est classiquement soit " +"ce module, soit la valeur de l'attribut :attr:`~object.__dict__` du module. " +"Puisque c'est une spécificité de CPython, ce n'est peut-être pas utilisé par " +"toutes les autres implémentations." diff --git a/library/bz2.po b/library/bz2.po new file mode 100644 index 000000000..d8d83a852 --- /dev/null +++ b/library/bz2.po @@ -0,0 +1,499 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-07-29 01:07+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/bz2.rst:2 +msgid ":mod:`bz2` --- Support for :program:`bzip2` compression" +msgstr ":mod:`bz2` — Prise en charge de la compression :program:`bzip2`" + +#: ../Doc/library/bz2.rst:12 +msgid "**Source code:** :source:`Lib/bz2.py`" +msgstr "**Code Source :** :source:`Lib/bz2.py`" + +#: ../Doc/library/bz2.rst:16 +msgid "" +"This module provides a comprehensive interface for compressing and " +"decompressing data using the bzip2 compression algorithm." +msgstr "" +"Ce module fournit une interface complète pour compresser et décompresser les " +"données en utilisant l'algorithme de compression *bzip2*." + +#: ../Doc/library/bz2.rst:19 +msgid "The :mod:`bz2` module contains:" +msgstr "Le module :mod:`bz2` contient :" + +#: ../Doc/library/bz2.rst:21 +msgid "" +"The :func:`.open` function and :class:`BZ2File` class for reading and " +"writing compressed files." +msgstr "" +"La fonction :func:`.open` et la classe :class:`BZ2File` pour lire et écrire " +"des fichiers compressés." + +#: ../Doc/library/bz2.rst:23 +msgid "" +"The :class:`BZ2Compressor` and :class:`BZ2Decompressor` classes for " +"incremental (de)compression." +msgstr "" +"Les classes :class:`BZ2Compressor` et :class:`BZ2Decompressor` pour la " +"(dé)compression incrémentielle." + +#: ../Doc/library/bz2.rst:25 +msgid "" +"The :func:`compress` and :func:`decompress` functions for one-shot " +"(de)compression." +msgstr "" +"Les fonctions :func:`compress` et :func:`decompress` pour la (dé)compression " +"en une seule fois." + +#: ../Doc/library/bz2.rst:28 +msgid "" +"All of the classes in this module may safely be accessed from multiple " +"threads." +msgstr "" +"Toutes les classes de ce module peuvent en toute sécurité être accédées " +"depuis de multiples fils d'exécution." + +#: ../Doc/library/bz2.rst:32 +msgid "(De)compression of files" +msgstr "(Dé)compression de fichiers" + +#: ../Doc/library/bz2.rst:36 +msgid "" +"Open a bzip2-compressed file in binary or text mode, returning a :term:`file " +"object`." +msgstr "" +"Ouvre un fichier compressé par *bzip2* en mode binaire ou texte, le " +"renvoyant en :term:`file object`." + +#: ../Doc/library/bz2.rst:39 +msgid "" +"As with the constructor for :class:`BZ2File`, the *filename* argument can be " +"an actual filename (a :class:`str` or :class:`bytes` object), or an existing " +"file object to read from or write to." +msgstr "" +"Tout comme avec le constructeur pour la classe :class:`BZ2File`, l'argument " +"*filename* peut être un nom de fichier réel (un objet :class:`str` ou :class:" +"`bytes`), ou un objet fichier existant à lire ou à écrire." + +#: ../Doc/library/bz2.rst:43 +msgid "" +"The *mode* argument can be any of ``'r'``, ``'rb'``, ``'w'``, ``'wb'``, " +"``'x'``, ``'xb'``, ``'a'`` or ``'ab'`` for binary mode, or ``'rt'``, " +"``'wt'``, ``'xt'``, or ``'at'`` for text mode. The default is ``'rb'``." +msgstr "" +"L'argument *mode* peut valoir ``'r'``, ``'rb'``, ``'w'``, ``'wb'``, ``'x'``, " +"``'xb'``, ``'a'`` ou ``'ab'`` pour le mode binaire, ou ``'rt'``, ``'wt'``, " +"``'xt'`` ou ``'at'`` pour le mode texte. Il vaut par défaut ``'rb'``." + +#: ../Doc/library/bz2.rst:47 +msgid "" +"The *compresslevel* argument is an integer from 1 to 9, as for the :class:" +"`BZ2File` constructor." +msgstr "" +"L'argument *compresslevel* est un entier de 1 à 9, comme pour le " +"constructeur :class:`BZ2File`." + +#: ../Doc/library/bz2.rst:50 +msgid "" +"For binary mode, this function is equivalent to the :class:`BZ2File` " +"constructor: ``BZ2File(filename, mode, compresslevel=compresslevel)``. In " +"this case, the *encoding*, *errors* and *newline* arguments must not be " +"provided." +msgstr "" +"Pour le mode binaire, cette fonction est équivalente au constructeur :class:" +"`BZ2File` : ``BZ2File(filename, mode, compresslevel=compresslevel)``. Dans " +"ce cas, les arguments *encoding*, *errors* et *newline* arguments ne doivent " +"pas être fournis." + +#: ../Doc/library/bz2.rst:55 +msgid "" +"For text mode, a :class:`BZ2File` object is created, and wrapped in an :" +"class:`io.TextIOWrapper` instance with the specified encoding, error " +"handling behavior, and line ending(s)." +msgstr "" +"Pour le mode texte, un objet :class:`BZ2File` est créé et encapsulé dans une " +"instance :class:`io.TextIOWrapper` avec l'encodage spécifié, le comportement " +"de gestion des erreurs et les fins de ligne." + +#: ../Doc/library/bz2.rst:61 ../Doc/library/bz2.rst:127 +msgid "The ``'x'`` (exclusive creation) mode was added." +msgstr "Le mode ``'x'`` (création exclusive) est ajouté." + +#: ../Doc/library/bz2.rst:64 ../Doc/library/bz2.rst:134 +msgid "Accepts a :term:`path-like object`." +msgstr "Accepte un :term:`path-like object`." + +#: ../Doc/library/bz2.rst:70 +msgid "Open a bzip2-compressed file in binary mode." +msgstr "Ouvre un fichier *bzip2* en mode binaire." + +#: ../Doc/library/bz2.rst:72 +msgid "" +"If *filename* is a :class:`str` or :class:`bytes` object, open the named " +"file directly. Otherwise, *filename* should be a :term:`file object`, which " +"will be used to read or write the compressed data." +msgstr "" +"Si *filename* est un objet :class:`str` ou :class:`bytes`, ouvre le nom de " +"fichier directement. Autrement, *filename* doit être un :term:`file object`, " +"qui est utilisé pour lire ou écrire les données compressées." + +#: ../Doc/library/bz2.rst:76 +msgid "" +"The *mode* argument can be either ``'r'`` for reading (default), ``'w'`` for " +"overwriting, ``'x'`` for exclusive creation, or ``'a'`` for appending. These " +"can equivalently be given as ``'rb'``, ``'wb'``, ``'xb'`` and ``'ab'`` " +"respectively." +msgstr "" +"L'argument *mode* peut être soit ``'r'`` pour lire (par défaut), ``'w'`` " +"pour écraser, ``'x'`` pour créer exclusivement, ou ``'a'`` pour ajouter. Ils " +"peuvent également être écrits respectivement comme ``'rb'``, ``'wb'``, " +"``'xb'`` et ``'ab'``." + +#: ../Doc/library/bz2.rst:81 +msgid "" +"If *filename* is a file object (rather than an actual file name), a mode of " +"``'w'`` does not truncate the file, and is instead equivalent to ``'a'``." +msgstr "" +"Si *filename* est un objet fichier (plutôt que le nom de fichier réel), le " +"mode ``'w'`` ne tronque pas le fichier, mais équivaut à ``'a'``." + +#: ../Doc/library/bz2.rst:84 +msgid "The *buffering* argument is ignored. Its use is deprecated." +msgstr "" + +#: ../Doc/library/bz2.rst:86 +msgid "" +"If *mode* is ``'w'`` or ``'a'``, *compresslevel* can be an integer between " +"``1`` and ``9`` specifying the level of compression: ``1`` produces the " +"least compression, and ``9`` (default) produces the most compression." +msgstr "" +"Si *mode* est ``'w'`` ou ``'a'``, *compresslevel* peut être un entier entre " +"``1`` et ``9`` spécifiant le niveau de compression : ``1`` utilise la " +"compression la moins forte, et ``9`` (par défaut) la compression la plus " +"forte." + +#: ../Doc/library/bz2.rst:90 +msgid "" +"If *mode* is ``'r'``, the input file may be the concatenation of multiple " +"compressed streams." +msgstr "" +"Si *mode* est ``'r'``, le fichier d'entrée peut être la concaténation de " +"plusieurs flux compressés." + +#: ../Doc/library/bz2.rst:93 +msgid "" +":class:`BZ2File` provides all of the members specified by the :class:`io." +"BufferedIOBase`, except for :meth:`detach` and :meth:`truncate`. Iteration " +"and the :keyword:`with` statement are supported." +msgstr "" +":class:`BZ2File` fournit tous les membres spécifiés par la classe :class:`io." +"BufferedIOBase`, excepté les méthodes :meth:`detach` et :meth:`truncate`. " +"L'itération et l'instruction :keyword:`with` sont prises en charge." + +#: ../Doc/library/bz2.rst:97 +msgid ":class:`BZ2File` also provides the following method:" +msgstr ":class:`BZ2File` fournit aussi la méthode suivante :" + +#: ../Doc/library/bz2.rst:101 +msgid "" +"Return buffered data without advancing the file position. At least one byte " +"of data will be returned (unless at EOF). The exact number of bytes returned " +"is unspecified." +msgstr "" +"Renvoie des données en mémoire tampon sans avancer la position du fichier. " +"Au moins un octet de donnée (sauf l'EOF) est renvoyé. Le nombre exact " +"d'octets renvoyés n'est pas spécifié." + +#: ../Doc/library/bz2.rst:105 +msgid "" +"While calling :meth:`peek` does not change the file position of the :class:" +"`BZ2File`, it may change the position of the underlying file object (e.g. if " +"the :class:`BZ2File` was constructed by passing a file object for " +"*filename*)." +msgstr "" +"Bien que l'appel à la méthode :meth:`peek` ne change pas la position du " +"fichier de la classe :class:`BZ2File`, il peut changer la position de " +"l'objet fichier sous-jacent (e.g. si la classe :class:`BZ2File` a été " +"construite en passant un objet fichier à *filename*)." + +#: ../Doc/library/bz2.rst:112 +msgid "Support for the :keyword:`with` statement was added." +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." + +#: ../Doc/library/bz2.rst:115 +msgid "" +"The :meth:`fileno`, :meth:`readable`, :meth:`seekable`, :meth:`writable`, :" +"meth:`read1` and :meth:`readinto` methods were added." +msgstr "" +"Les méthodes :meth:`fileno`, :meth:`readable`, :meth:`seekable`, :meth:" +"`writable`, :meth:`read1` et :meth:`readinto` ont été ajoutées." + +#: ../Doc/library/bz2.rst:119 +msgid "" +"Support was added for *filename* being a :term:`file object` instead of an " +"actual filename." +msgstr "" +"La gestion de *filename* comme :term:`file object` au lieu d'un nom de " +"fichier réel a été ajoutée." + +#: ../Doc/library/bz2.rst:123 +msgid "" +"The ``'a'`` (append) mode was added, along with support for reading multi-" +"stream files." +msgstr "" +"Le mode ``'a'`` (ajout) a été ajouté, avec la prise en charge de la lecture " +"des fichiers *multiflux*." + +#: ../Doc/library/bz2.rst:130 +msgid "" +"The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " +"``None``." +msgstr "" +"La méthode :meth:`~io.BufferedIOBase.read` accepte maintenant un argument " +"``None``." + +#: ../Doc/library/bz2.rst:139 +msgid "Incremental (de)compression" +msgstr "(Dé)compression incrémentielle" + +#: ../Doc/library/bz2.rst:143 +msgid "" +"Create a new compressor object. This object may be used to compress data " +"incrementally. For one-shot compression, use the :func:`compress` function " +"instead." +msgstr "" +"Crée un nouvel objet compresseur. Cet objet peut être utilisé pour " +"compresser les données de manière incrémentielle. Pour une compression en " +"une seule fois, utilisez à la place la fonction :func:`compress`." + +#: ../Doc/library/bz2.rst:147 ../Doc/library/bz2.rst:235 +msgid "" +"*compresslevel*, if given, must be an integer between ``1`` and ``9``. The " +"default is ``9``." +msgstr "" +"*compresslevel*, s'il est fourni, doit être un entier entre ``1`` et ``9``. " +"Sa valeur par défaut est ``9``." + +#: ../Doc/library/bz2.rst:152 +msgid "" +"Provide data to the compressor object. Returns a chunk of compressed data if " +"possible, or an empty byte string otherwise." +msgstr "" +"Fournit la donnée à l'objet compresseur. Renvoie un bloc de données " +"compressées si possible, ou autrement une chaîne d'octet vide." + +#: ../Doc/library/bz2.rst:155 +msgid "" +"When you have finished providing data to the compressor, call the :meth:" +"`flush` method to finish the compression process." +msgstr "" +"Quand vous avez fini de fournir des données au compresseur, appelez la " +"méthode :meth:`flush` pour finir le processus de compression." + +#: ../Doc/library/bz2.rst:161 +msgid "" +"Finish the compression process. Returns the compressed data left in internal " +"buffers." +msgstr "" +"Finit le processus de compression. Renvoie la donnée compressée restante " +"dans les tampons internes." + +#: ../Doc/library/bz2.rst:164 +msgid "" +"The compressor object may not be used after this method has been called." +msgstr "" +"L'objet compresseur ne peut pas être utilisé après que cette méthode a été " +"appelée." + +#: ../Doc/library/bz2.rst:169 +msgid "" +"Create a new decompressor object. This object may be used to decompress data " +"incrementally. For one-shot compression, use the :func:`decompress` function " +"instead." +msgstr "" +"Crée un nouvel objet décompresseur. Cet objet peut être utilisé pour " +"décompresser les données de manière incrémentielle. Pour une compression en " +"une seule fois, utilisez à la place la fonction :func:`decompress`." + +#: ../Doc/library/bz2.rst:174 +msgid "" +"This class does not transparently handle inputs containing multiple " +"compressed streams, unlike :func:`decompress` and :class:`BZ2File`. If you " +"need to decompress a multi-stream input with :class:`BZ2Decompressor`, you " +"must use a new decompressor for each stream." +msgstr "" +"Cette classe ne gère pas de manière transparente les entrées contenant " +"plusieurs flux compressés, à la différence de :func:`decompress` et :class:" +"`BZ2File`. Si vous avez besoin de décompresser une entrée *multiflux* avec " +"la classe :class:`BZ2Decompressor`, vous devez utiliser un nouveau " +"décompresseur pour chaque flux." + +#: ../Doc/library/bz2.rst:181 +msgid "" +"Decompress *data* (a :term:`bytes-like object`), returning uncompressed data " +"as bytes. Some of *data* may be buffered internally, for use in later calls " +"to :meth:`decompress`. The returned data should be concatenated with the " +"output of any previous calls to :meth:`decompress`." +msgstr "" +"Décompresse *data* (un :term:`bytes-like object`), renvoyant une donnée non " +"compressée en tant que chaîne d'octets. Certaines de ces *data* peuvent être " +"mises en interne en tampon, pour un usage lors d'appels ultérieurs par la " +"méthode :meth:`decompress`. La donnée renvoyée doit être concaténée avec la " +"sortie des appels précédents à la méthode :meth:`decompress`." + +#: ../Doc/library/bz2.rst:187 +msgid "" +"If *max_length* is nonnegative, returns at most *max_length* bytes of " +"decompressed data. If this limit is reached and further output can be " +"produced, the :attr:`~.needs_input` attribute will be set to ``False``. In " +"this case, the next call to :meth:`~.decompress` may provide *data* as " +"``b''`` to obtain more of the output." +msgstr "" +"Si *max_length* est positif, renvoie au plus *max_length* octets de données " +"compressées. Si la limite est atteinte et que d'autres sorties peuvent être " +"produites, l'attribut :attr:`~.needs_input` est positionné sur ``False``. " +"Dans ce cas, lors de l'appel suivant à la méthode :meth:`~.decompress`, vous " +"pouvez fournir ``b''`` dans *data* afin d'obtenir la suite de la sortie." + +#: ../Doc/library/bz2.rst:194 +msgid "" +"If all of the input data was decompressed and returned (either because this " +"was less than *max_length* bytes, or because *max_length* was negative), " +"the :attr:`~.needs_input` attribute will be set to ``True``." +msgstr "" +"Si toutes les données entrées ont été décompressées et renvoyées (soit parce " +"qu'il y avait moins de *max_length* octets, ou parce que *max_length* était " +"négatif), l'attribut :attr:`~.needs_input` sera configuré sur ``True``." + +#: ../Doc/library/bz2.rst:199 +msgid "" +"Attempting to decompress data after the end of stream is reached raises an " +"`EOFError`. Any data found after the end of the stream is ignored and saved " +"in the :attr:`~.unused_data` attribute." +msgstr "" +"Essayer de décompresser des données après que la fin du flux soit atteinte " +"lève une erreur `EOFError`. Toute donnée trouvée après la fin du flux est " +"ignorée et sauvegardée dans l'attribut :attr:`~.unused_data`." + +#: ../Doc/library/bz2.rst:203 +msgid "Added the *max_length* parameter." +msgstr "Ajout du paramètre *max_length*." + +#: ../Doc/library/bz2.rst:208 +msgid "``True`` if the end-of-stream marker has been reached." +msgstr "``True`` si le marqueur de fin de flux a été atteint." + +#: ../Doc/library/bz2.rst:215 +msgid "Data found after the end of the compressed stream." +msgstr "Donnée trouvée après la fin du flux compressé." + +#: ../Doc/library/bz2.rst:217 +msgid "" +"If this attribute is accessed before the end of the stream has been reached, " +"its value will be ``b''``." +msgstr "" +"Si l'attribut est accédé avant que la fin du flux ait été atteint, sa valeur " +"sera ``b''``." + +#: ../Doc/library/bz2.rst:222 +msgid "" +"``False`` if the :meth:`.decompress` method can provide more decompressed " +"data before requiring new uncompressed input." +msgstr "" +"``False`` si la méthode :meth:`.decompress` peut fournir plus de données " +"décompressées avant l'acquisition d'une nouvelle entrée non compressée." + +#: ../Doc/library/bz2.rst:229 +msgid "One-shot (de)compression" +msgstr "(Dé)compression en une fois" + +#: ../Doc/library/bz2.rst:233 +msgid "Compress *data*, a :term:`bytes-like object `." +msgstr "Compresse *data*, un :term:`bytes-like object `." + +#: ../Doc/library/bz2.rst:238 +msgid "For incremental compression, use a :class:`BZ2Compressor` instead." +msgstr "" +"Pour la compression incrémentielle, utilisez à la place la classe :class:" +"`BZ2Compressor`." + +#: ../Doc/library/bz2.rst:243 +msgid "Decompress *data*, a :term:`bytes-like object `." +msgstr "Décompresse *data*, un :term:`bytes-like object `." + +#: ../Doc/library/bz2.rst:245 +msgid "" +"If *data* is the concatenation of multiple compressed streams, decompress " +"all of the streams." +msgstr "" +"Si *data* est la concaténation de multiples flux compressés, décompresse " +"tous les flux." + +#: ../Doc/library/bz2.rst:248 +msgid "For incremental decompression, use a :class:`BZ2Decompressor` instead." +msgstr "" +"Pour une décompression incrémentielle, utilisez à la place la classe :class:" +"`BZ2Decompressor`." + +#: ../Doc/library/bz2.rst:250 +msgid "Support for multi-stream inputs was added." +msgstr "Prise en charge des entrées *multiflux*." + +#: ../Doc/library/bz2.rst:256 +msgid "Examples of usage" +msgstr "Exemples d'utilisation" + +#: ../Doc/library/bz2.rst:258 +msgid "Below are some examples of typical usage of the :mod:`bz2` module." +msgstr "" +"Ci-dessous, nous présentons quelques exemples typiques de l'utilisation du " +"module :mod:`bz2`." + +#: ../Doc/library/bz2.rst:260 +msgid "" +"Using :func:`compress` and :func:`decompress` to demonstrate round-trip " +"compression:" +msgstr "" +"Utilise les fonctions :func:`compress` et :func:`decompress` pour démontrer " +"une compression aller-retour :" + +#: ../Doc/library/bz2.rst:281 +msgid "Using :class:`BZ2Compressor` for incremental compression:" +msgstr "" +"Utilise la classe :class:`BZ2Compressor` pour une compression " +"incrémentielle :" + +#: ../Doc/library/bz2.rst:300 +msgid "" +"The example above uses a very \"nonrandom\" stream of data (a stream of `b\"z" +"\"` chunks). Random data tends to compress poorly, while ordered, " +"repetitive data usually yields a high compression ratio." +msgstr "" +"L'exemple ci-dessus utilise un flux de données vraiment pas aléatoire (un " +"flux de blocs de `b\"z\"`). Les données aléatoires ont tendance à mal se " +"compresser, alors que les données répétitives ou ordonnées donnent " +"généralement un taux de compression élevé." + +#: ../Doc/library/bz2.rst:304 +#, fuzzy +msgid "Writing and reading a bzip2-compressed file in binary mode:" +msgstr "Ouvre un fichier *bzip2* en mode binaire." + +#~ msgid "Compress *data*." +#~ msgstr "Compresse *data*." + +#~ msgid "Decompress *data*." +#~ msgstr "Décompresse *data*." diff --git a/library/calendar.po b/library/calendar.po new file mode 100644 index 000000000..32610fe7f --- /dev/null +++ b/library/calendar.po @@ -0,0 +1,607 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2019-03-20 08:32+0100\n" +"Last-Translator: Alicia BERRAHMA \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/calendar.rst:2 +msgid ":mod:`calendar` --- General calendar-related functions" +msgstr ":mod:`calendar` — Fonctions calendaires générales" + +#: ../Doc/library/calendar.rst:10 +msgid "**Source code:** :source:`Lib/calendar.py`" +msgstr "**Code source :** :source:`Lib/calendar.py`" + +#: ../Doc/library/calendar.rst:14 +msgid "" +"This module allows you to output calendars like the Unix :program:`cal` " +"program, and provides additional useful functions related to the calendar. " +"By default, these calendars have Monday as the first day of the week, and " +"Sunday as the last (the European convention). Use :func:`setfirstweekday` to " +"set the first day of the week to Sunday (6) or to any other weekday. " +"Parameters that specify dates are given as integers. For related " +"functionality, see also the :mod:`datetime` and :mod:`time` modules." +msgstr "" +"Ce module permet d'afficher un calendrier comme le fait le programme Unix :" +"program:`cal`, et il fournit des fonctions utiles relatives au calendrier. " +"Par défaut, ces calendriers ont le lundi comme premier jour de la semaine et " +"le dimanche comme dernier jour. Utilisez :func:`setfirstweekday` pour " +"définir le premier jour de la semaine à dimanche (6) ou à tout autre jour de " +"la semaine. Les paramètres pour spécifier les dates sont donnés sous forme " +"de nombres entiers. Voir aussi les modules :mod:`datetime` et :mod:`time`." + +#: ../Doc/library/calendar.rst:22 +msgid "" +"The functions and classes defined in this module use an idealized calendar, " +"the current Gregorian calendar extended indefinitely in both directions. " +"This matches the definition of the \"proleptic Gregorian\" calendar in " +"Dershowitz and Reingold's book \"Calendrical Calculations\", where it's the " +"base calendar for all computations. Zero and negative years are interpreted " +"as prescribed by the ISO 8601 standard. Year 0 is 1 BC, year -1 is 2 BC, " +"and so on." +msgstr "" +"Les fonctions et les classes définies dans ce module utilisent un calendrier " +"idéalisé, le calendrier grégorien actuel s'étendant indéfiniment dans les " +"deux sens. Cela correspond à la définition du calendrier grégorien " +"proleptique dans le livre de Dershowitz et Reingold « *Calendrical " +"Calculations* », œuvre dans lequel il est le calendrier de référence de tous " +"les calculs. Les années zéros et les années négatives sont interprétées " +"comme prescrit par la norme ISO 8601. L'année 0 est 1 avant JC, l'année `-1` " +"est 2 avant JC et ainsi de suite." + +#: ../Doc/library/calendar.rst:33 +msgid "" +"Creates a :class:`Calendar` object. *firstweekday* is an integer specifying " +"the first day of the week. ``0`` is Monday (the default), ``6`` is Sunday." +msgstr "" +"Crée un objet :class:`Calendar`. *firstweekday* est un entier spécifiant le " +"premier jour de la semaine, valant par défaut ``0`` (lundi), pouvant aller " +"jusqu'à ``6`` (dimanche)." + +#: ../Doc/library/calendar.rst:36 +msgid "" +"A :class:`Calendar` object provides several methods that can be used for " +"preparing the calendar data for formatting. This class doesn't do any " +"formatting itself. This is the job of subclasses." +msgstr "" +"L'objet :class:`Calendar` fournit plusieurs méthodes pouvant être utilisées " +"pour préparer les données du calendrier pour le formatage. Cette classe ne " +"fait pas de formatage elle-même. Il s'agit du travail des sous-classes." + +#: ../Doc/library/calendar.rst:41 +msgid ":class:`Calendar` instances have the following methods:" +msgstr "Les instances de :class:`Calendar` ont les méthodes suivantes :" + +#: ../Doc/library/calendar.rst:45 +msgid "" +"Return an iterator for the week day numbers that will be used for one week. " +"The first value from the iterator will be the same as the value of the :attr:" +"`firstweekday` property." +msgstr "" +"Renvoie un itérateur sur les numéros des jours d'une semaine. La première " +"valeur est donc la même que la valeur de la propriété :attr:`firstweekday`." + +#: ../Doc/library/calendar.rst:52 +msgid "" +"Return an iterator for the month *month* (1--12) in the year *year*. This " +"iterator will return all days (as :class:`datetime.date` objects) for the " +"month and all days before the start of the month or after the end of the " +"month that are required to get a complete week." +msgstr "" +"Renvoie un itérateur sur les jours du mois *month* (1 à 12) de l'année " +"*year*. Cet itérateur renvoie tous les jours du mois (sous forme d'instances " +"de :class:`datetime.date`) ainsi que tous les jours avant le début du mois " +"et après la fin du mois nécessaires pour obtenir des semaines complètes." + +#: ../Doc/library/calendar.rst:60 +msgid "" +"Return an iterator for the month *month* in the year *year* similar to :meth:" +"`itermonthdates`, but not restricted by the :class:`datetime.date` range. " +"Days returned will simply be day of the month numbers. For the days outside " +"of the specified month, the day number is ``0``." +msgstr "" +"Renvoie un itérateur sur les jours du mois *month* de l'année *year*, comme :" +"meth:`itermonthdates`, sans être limité par l'intervalle de :class:`datetime." +"date`. Les jours renvoyés sont simplement les numéros des jours du mois. " +"Pour les jours en dehors du mois spécifié, le numéro du jour est ``0``." + +#: ../Doc/library/calendar.rst:68 +msgid "" +"Return an iterator for the month *month* in the year *year* similar to :meth:" +"`itermonthdates`, but not restricted by the :class:`datetime.date` range. " +"Days returned will be tuples consisting of a day of the month number and a " +"week day number." +msgstr "" +"Renvoie un itérateur sur les jours du mois *month* de l'année *year* comme :" +"meth:`itermonthdates`, sans être limité par la plage :class:`datetime.date`. " +"Les jours renvoyés sont des paires composées du numéro du jour dans le mois " +"et du numéro du jour dans la semaine." + +#: ../Doc/library/calendar.rst:76 +msgid "" +"Return an iterator for the month *month* in the year *year* similar to :meth:" +"`itermonthdates`, but not restricted by the :class:`datetime.date` range. " +"Days returned will be tuples consisting of a year, a month and a day of the " +"month numbers." +msgstr "" +"Renvoie un itérateur sur les jours du *month* de l'année *year*, comme :meth:" +"`itermonthdates`, sans être limité par l'intervalle de :class:`datetime." +"date`. Les jours sont renvoyés sous forme de triplets composés du numéro de " +"l'année, du mois et du jour dans le mois." + +#: ../Doc/library/calendar.rst:86 +msgid "" +"Return an iterator for the month *month* in the year *year* similar to :meth:" +"`itermonthdates`, but not restricted by the :class:`datetime.date` range. " +"Days returned will be tuples consisting of a year, a month, a day of the " +"month, and a day of the week numbers." +msgstr "" +"Renvoie un itérateur sur les jours du mois *month* de l'année *year*, comme :" +"meth:`itermonthdates`, sans être limité par l'intervalle de :class:`datetime." +"date`. Le jours sont renvoyés sous forme de quadruplets contenant le numéro " +"de l'année, du mois, du jour du mois et du jour de la semaine." + +#: ../Doc/library/calendar.rst:96 +msgid "" +"Return a list of the weeks in the month *month* of the *year* as full " +"weeks. Weeks are lists of seven :class:`datetime.date` objects." +msgstr "" +"Renvoie la liste des semaines complètes du mois *month* de l'année *year*. " +"Les semaines sont des listes de sept objets :class:`datetime.date`." + +#: ../Doc/library/calendar.rst:102 +msgid "" +"Return a list of the weeks in the month *month* of the *year* as full " +"weeks. Weeks are lists of seven tuples of day numbers and weekday numbers." +msgstr "" +"Renvoie la liste des semaines complètes du mois *month* de l'année *year*. " +"Les semaines sont des listes de sept paires contenant le numéro du jour dans " +"le mois et du numéro du jour dans la semaine." + +#: ../Doc/library/calendar.rst:109 +msgid "" +"Return a list of the weeks in the month *month* of the *year* as full " +"weeks. Weeks are lists of seven day numbers." +msgstr "" +"Renvoie la liste des semaines complètes du mois *month* de l'année *year*. " +"Les semaines sont une liste de sept numéros de jours." + +#: ../Doc/library/calendar.rst:115 +msgid "" +"Return the data for the specified year ready for formatting. The return " +"value is a list of month rows. Each month row contains up to *width* months " +"(defaulting to 3). Each month contains between 4 and 6 weeks and each week " +"contains 1--7 days. Days are :class:`datetime.date` objects." +msgstr "" +"Renvoie ce qu'il faut pour afficher correctement une année. La valeur " +"renvoyée est une liste de lignes de mois. Chaque ligne mensuelle contient " +"jusqu'à *width* mois (avec une valeur par défaut à 3). Chaque mois contient " +"de 4 à 6 semaines et chaque semaine 1 à 7 jours. Les jours sont des objets :" +"class:`datetime.date`." + +#: ../Doc/library/calendar.rst:123 +msgid "" +"Return the data for the specified year ready for formatting (similar to :" +"meth:`yeardatescalendar`). Entries in the week lists are tuples of day " +"numbers and weekday numbers. Day numbers outside this month are zero." +msgstr "" +"Renvoie ce qu'il faut pour afficher correctement une année, (similaire à :" +"meth:`yeardatescalendar`). Les listes des semaines contiennent des paires " +"contenant le numéro du jour du mois et le numéro du jour de la semaine. Les " +"numéro des jours en dehors de ce mois sont à zéro." + +#: ../Doc/library/calendar.rst:130 +msgid "" +"Return the data for the specified year ready for formatting (similar to :" +"meth:`yeardatescalendar`). Entries in the week lists are day numbers. Day " +"numbers outside this month are zero." +msgstr "" +"Renvoie ce qu'il faut pour afficher correctement une année, (similaire à :" +"meth:`yeardatescalendar`). Les listes de semaines contiennent des numéros de " +"jours. Les numéros de jours en dehors de ce mois sont de zéro." + +#: ../Doc/library/calendar.rst:137 +msgid "This class can be used to generate plain text calendars." +msgstr "" +"Cette classe peut être utilisée pour générer des calendriers en texte brut." + +#: ../Doc/library/calendar.rst:139 +msgid ":class:`TextCalendar` instances have the following methods:" +msgstr "Les instances :class:`TextCalendar` exposent les méthodes suivantes :" + +#: ../Doc/library/calendar.rst:143 +msgid "" +"Return a month's calendar in a multi-line string. If *w* is provided, it " +"specifies the width of the date columns, which are centered. If *l* is " +"given, it specifies the number of lines that each week will use. Depends on " +"the first weekday as specified in the constructor or set by the :meth:" +"`setfirstweekday` method." +msgstr "" +"Donne le calendrier d'un mois dans une chaîne multi-ligne. Si *w* est " +"fourni, il spécifie la largeur des colonnes de date, qui sont centrées. Si " +"*l* est donné, il spécifie le nombre de lignes que chaque semaine utilisera. " +"Le résultat varie en fonction du premier jour de la semaine spécifié dans le " +"constructeur ou défini par la méthode :meth:`setfirstweekday`." + +#: ../Doc/library/calendar.rst:152 +msgid "Print a month's calendar as returned by :meth:`formatmonth`." +msgstr "" +"Affiche le calendrier d'un mois tel que renvoyé par :meth:`formatmonth`." + +#: ../Doc/library/calendar.rst:157 +msgid "" +"Return a *m*-column calendar for an entire year as a multi-line string. " +"Optional parameters *w*, *l*, and *c* are for date column width, lines per " +"week, and number of spaces between month columns, respectively. Depends on " +"the first weekday as specified in the constructor or set by the :meth:" +"`setfirstweekday` method. The earliest year for which a calendar can be " +"generated is platform-dependent." +msgstr "" +"Renvoie un calendrier de *m* colonnes pour une année entière sous forme de " +"chaîne multi-ligne. Les paramètres facultatifs *w*, *l* et *c* correspondent " +"respectivement à la largeur de la colonne date, les lignes par semaines, le " +"nombre d'espace entre les colonnes de mois. Le résultat varie en fonction du " +"premier jour de la semaine spécifié dans le constructeur ou défini par la " +"méthode :meth:`setfirstweekday`. La première année pour laquelle un " +"calendrier peut être généré, dépend de la plateforme." + +#: ../Doc/library/calendar.rst:167 +msgid "" +"Print the calendar for an entire year as returned by :meth:`formatyear`." +msgstr "" +"Affiche le calendrier pour une année entière comme renvoyé par :meth:" +"`formatyear`." + +#: ../Doc/library/calendar.rst:172 +msgid "This class can be used to generate HTML calendars." +msgstr "Cette classe peut être utilisée pour générer des calendriers HTML." + +#: ../Doc/library/calendar.rst:175 +msgid ":class:`!HTMLCalendar` instances have the following methods:" +msgstr "" +"Les instances de :class:`!HTMLCalendar` utilisent les méthodes suivantes :" + +#: ../Doc/library/calendar.rst:179 +msgid "" +"Return a month's calendar as an HTML table. If *withyear* is true the year " +"will be included in the header, otherwise just the month name will be used." +msgstr "" +"Renvoie le calendrier d'un mois sous la forme d'une table HTML. Si " +"*withyear* est vrai l'année sera inclue dans l'en-tête, sinon seul le nom du " +"mois sera utilisé." + +#: ../Doc/library/calendar.rst:186 +msgid "" +"Return a year's calendar as an HTML table. *width* (defaulting to 3) " +"specifies the number of months per row." +msgstr "" +"Renvoie le calendrier d'une année sous la forme d'une table HTML. *width* " +"(par défaut à 3) spécifie le nombre de mois par ligne." + +#: ../Doc/library/calendar.rst:192 +msgid "" +"Return a year's calendar as a complete HTML page. *width* (defaulting to 3) " +"specifies the number of months per row. *css* is the name for the cascading " +"style sheet to be used. :const:`None` can be passed if no style sheet should " +"be used. *encoding* specifies the encoding to be used for the output " +"(defaulting to the system default encoding)." +msgstr "" +"Renvoie le calendrier d'une année sous la forme d'une page HTML complète. " +"*width* (par défaut à 3) spécifie le nombre de mois par ligne. *css* est le " +"nom de la feuille de style en cascade à utiliser. :const:`None` peut être " +"passé si aucune feuille de style ne doit être utilisée. *encoding* spécifie " +"l'encodage à utiliser pour les données de sortie (par défaut l'encodage par " +"défaut du système)." + +#: ../Doc/library/calendar.rst:199 +msgid "" +":class:`!HTMLCalendar` has the following attributes you can override to " +"customize the CSS classes used by the calendar:" +msgstr "" +":class:`!HTMLCalendar` possède les attributs suivants que vous pouvez " +"surcharger pour personnaliser les classes CSS utilisées par le calendrier :" + +#: ../Doc/library/calendar.rst:204 +msgid "" +"A list of CSS classes used for each weekday. The default class list is::" +msgstr "" +"Une liste de classes CSS utilisées pour chaque jour de la semaine. La liste " +"par défaut de la classe est ::" + +#: ../Doc/library/calendar.rst:208 +msgid "more styles can be added for each day::" +msgstr "davantage de styles peuvent être ajoutés pour chaque jour ::" + +#: ../Doc/library/calendar.rst:212 +msgid "Note that the length of this list must be seven items." +msgstr "Notez que la longueur de cette liste doit être de sept éléments." + +#: ../Doc/library/calendar.rst:217 +msgid "The CSS class for a weekday occurring in the previous or coming month." +msgstr "" +"La classe CSS pour le jour de la semaine apparaissant dans le mois précédent " +"ou à venir." + +#: ../Doc/library/calendar.rst:224 +msgid "" +"A list of CSS classes used for weekday names in the header row. The default " +"is the same as :attr:`cssclasses`." +msgstr "" +"Une liste de classes CSS utilisées pour les noms des jours de la semaine " +"dans la ligne d'en-tête. Par défaut les mêmes que :attr:`cssclasses`." + +#: ../Doc/library/calendar.rst:232 +msgid "" +"The month's head CSS class (used by :meth:`formatmonthname`). The default " +"value is ``\"month\"``." +msgstr "" +"La classe CSS du mois en en-tête (utilisé par :meth:`formatmonthname`). La " +"valeur par défaut est ``\"month\"``." + +#: ../Doc/library/calendar.rst:240 +msgid "" +"The CSS class for the whole month's table (used by :meth:`formatmonth`). The " +"default value is ``\"month\"``." +msgstr "" +"La classe CSS pour la table du mois entière (utilisé par :meth:" +"`formatmonth`). La valeur par défaut est ``\"month\"``." + +#: ../Doc/library/calendar.rst:248 +msgid "" +"The CSS class for the whole year's table of tables (used by :meth:" +"`formatyear`). The default value is ``\"year\"``." +msgstr "" +"La classe CSS pour la table entière des tables de l'année (utilisé par :meth:" +"`formatyear`). La valeur par défaut est ``\"year\"``." + +#: ../Doc/library/calendar.rst:256 +msgid "" +"The CSS class for the table head for the whole year (used by :meth:" +"`formatyear`). The default value is ``\"year\"``." +msgstr "" +"La classe CSS pour l'en-tête de la table pour l'année entière (utilisé par :" +"meth:`formatyear`). La valeur par défaut est ``\"year\"``." + +#: ../Doc/library/calendar.rst:262 +msgid "" +"Note that although the naming for the above described class attributes is " +"singular (e.g. ``cssclass_month`` ``cssclass_noday``), one can replace the " +"single CSS class with a space separated list of CSS classes, for example::" +msgstr "" +"Notez que même si le nommage ci-dessus des attributs de classe est au " +"singulier (p. ex. ``cssclass_month`` ``cssclass_noday``), on peut remplacer " +"la seule classe CSS par une liste de classes CSS séparées par une espace, " +"par exemple ::" + +#: ../Doc/library/calendar.rst:268 +msgid "Here is an example how :class:`!HTMLCalendar` can be customized::" +msgstr "" +"Voici un exemple de comment peut être personnalisée :class:`!HTMLCalendar` ::" + +#: ../Doc/library/calendar.rst:280 +msgid "" +"This subclass of :class:`TextCalendar` can be passed a locale name in the " +"constructor and will return month and weekday names in the specified locale. " +"If this locale includes an encoding all strings containing month and weekday " +"names will be returned as unicode." +msgstr "" +"Le constructeur de cette sous-classe de :class:`TextCalendar` accepte un " +"paramètre régional *locale* : une langue au format ``\"fr_FR.UTF-8\"``, et " +"renvoie les noms de mois et de jours de la semaine traduits dans cette " +"langue. Si ce lieu possède un encodage, toutes les chaînes contenant des " +"noms de mois ou de jours de la semaine seront renvoyées en Unicode." + +#: ../Doc/library/calendar.rst:288 +msgid "" +"This subclass of :class:`HTMLCalendar` can be passed a locale name in the " +"constructor and will return month and weekday names in the specified locale. " +"If this locale includes an encoding all strings containing month and weekday " +"names will be returned as unicode." +msgstr "" +"Cette sous-classe de :class:`HTMLCalendar` peut recevoir un nom de lieu dans " +"le constructeur et renvoie les noms de mois et de jours de la semaine selon " +"le lieu spécifié. Si ce lieu possède un encodage, toutes les chaînes " +"contenant des noms de mois ou de jours de la semaine seront renvoyées en " +"Unicode." + +#: ../Doc/library/calendar.rst:295 +msgid "" +"The :meth:`formatweekday` and :meth:`formatmonthname` methods of these two " +"classes temporarily change the current locale to the given *locale*. " +"Because the current locale is a process-wide setting, they are not thread-" +"safe." +msgstr "" +"Les méthodes :meth:`formatweekday` et :meth:`formatmonthname` de ces deux " +"classes changent temporairement le paramètre régional courant pour le " +"paramètre donné via *locale* . Comme le paramètre régional est un réglage de " +"l'ensemble du processus, elles ne sont pas utilisables de manière sûre avec " +"les programmes à fils d'exécution multiples." + +#: ../Doc/library/calendar.rst:300 +msgid "For simple text calendars this module provides the following functions." +msgstr "" +"Pour les calendriers texte simples ce module fournit les fonctions suivantes." + +#: ../Doc/library/calendar.rst:304 +msgid "" +"Sets the weekday (``0`` is Monday, ``6`` is Sunday) to start each week. The " +"values :const:`MONDAY`, :const:`TUESDAY`, :const:`WEDNESDAY`, :const:" +"`THURSDAY`, :const:`FRIDAY`, :const:`SATURDAY`, and :const:`SUNDAY` are " +"provided for convenience. For example, to set the first weekday to Sunday::" +msgstr "" +"Fixe le jour de la semaine (``0`` pour lundi, ``6`` pour dimanche) qui " +"débute chaque semaine. Les valeurs :const:`MONDAY`, :const:`TUESDAY`, :const:" +"`WEDNESDAY`, :const:`THURSDAY`, :const:`FRIDAY`, :const:`SATURDAY`, et :" +"const:`SUNDAY` sont fournies par commodité. Par exemple, pour fixer le " +"premier jour de la semaine à dimanche ::" + +#: ../Doc/library/calendar.rst:315 +msgid "Returns the current setting for the weekday to start each week." +msgstr "" +"Renvoie le réglage courant pour le jour de la semaine débutant chaque " +"semaine." + +#: ../Doc/library/calendar.rst:320 +msgid "" +"Returns :const:`True` if *year* is a leap year, otherwise :const:`False`." +msgstr "" +"Renvoie :const:`True` si *year* est une année bissextile, sinon :const:" +"`False`." + +#: ../Doc/library/calendar.rst:325 +msgid "" +"Returns the number of leap years in the range from *y1* to *y2* (exclusive), " +"where *y1* and *y2* are years." +msgstr "" +"Renvoie le nombre d'années bissextiles dans la période de *y1* à *y2* (non " +"inclus), où *y1* et *y2* sont des années." + +#: ../Doc/library/calendar.rst:328 +msgid "This function works for ranges spanning a century change." +msgstr "" +"Cette fonction marche pour les périodes couvrant un changement de siècle." + +#: ../Doc/library/calendar.rst:333 +msgid "" +"Returns the day of the week (``0`` is Monday) for *year* (``1970``--...), " +"*month* (``1``--``12``), *day* (``1``--``31``)." +msgstr "" +"Renvoie le jour de la semaine (``0`` pour lundi) pour *year* (``1970``-- …), " +"*month* (``1``--``12``), *day* (``1``--``31``)." + +#: ../Doc/library/calendar.rst:339 +msgid "" +"Return a header containing abbreviated weekday names. *n* specifies the " +"width in characters for one weekday." +msgstr "" +"Renvoie un en-tête contenant les jours de la semaine en abrégé. *n* spécifie " +"la largeur en caractères pour un jour de la semaine." + +#: ../Doc/library/calendar.rst:345 +msgid "" +"Returns weekday of first day of the month and number of days in month, for " +"the specified *year* and *month*." +msgstr "" +"Renvoie le jour de la semaine correspondant au premier jour du mois et le " +"nombre de jours dans le mois, pour l'année *year* et le mois *month* " +"spécifiés." + +#: ../Doc/library/calendar.rst:351 +msgid "" +"Returns a matrix representing a month's calendar. Each row represents a " +"week; days outside of the month a represented by zeros. Each week begins " +"with Monday unless set by :func:`setfirstweekday`." +msgstr "" + +#: ../Doc/library/calendar.rst:358 +msgid "Prints a month's calendar as returned by :func:`month`." +msgstr "Affiche le calendrier d'un mois tel que renvoyé par :func:`month`." + +#: ../Doc/library/calendar.rst:363 +msgid "" +"Returns a month's calendar in a multi-line string using the :meth:" +"`formatmonth` of the :class:`TextCalendar` class." +msgstr "" +"Renvoie le calendrier d'un mois dans une chaîne multi-lignes en utilisant la " +"méthode :meth:`formatmonth` de la classe :class:`TextCalendar`." + +#: ../Doc/library/calendar.rst:369 +msgid "" +"Prints the calendar for an entire year as returned by :func:`calendar`." +msgstr "" +"Affiche le calendrier pour une année entière tel que renvoyé par :func:" +"`calendar`." + +#: ../Doc/library/calendar.rst:374 +msgid "" +"Returns a 3-column calendar for an entire year as a multi-line string using " +"the :meth:`formatyear` of the :class:`TextCalendar` class." +msgstr "" +"Renvoie un calendrier sur 3 colonnes pour une année entière dans une chaîne " +"multi-lignes en utilisant la méthode :meth:`formatyear` de la classe :class:" +"`TextCalendar`." + +#: ../Doc/library/calendar.rst:380 +msgid "" +"An unrelated but handy function that takes a time tuple such as returned by " +"the :func:`~time.gmtime` function in the :mod:`time` module, and returns the " +"corresponding Unix timestamp value, assuming an epoch of 1970, and the POSIX " +"encoding. In fact, :func:`time.gmtime` and :func:`timegm` are each others' " +"inverse." +msgstr "" +"Une fonction sans rapport mais pratique, qui prend un n-uplet temporel tel " +"que celui renvoyé par la fonction :func:`~time.gmtime` dans le module :mod:" +"`time`, et renvoie la valeur d'horodatage Unix (*timestamp* en anglais) " +"correspondante, en supposant une époque de 1970, et l'encodage POSIX. En " +"fait, :func:`time.gmtime` et :func:`timegm` sont l'inverse l'un de l'autre." + +#: ../Doc/library/calendar.rst:387 +msgid "The :mod:`calendar` module exports the following data attributes:" +msgstr "Le module :mod:`calendar` exporte les attributs suivants :" + +#: ../Doc/library/calendar.rst:391 +msgid "An array that represents the days of the week in the current locale." +msgstr "" +"Un tableau qui représente les jours de la semaine pour les paramètres " +"régionaux actifs." + +#: ../Doc/library/calendar.rst:396 +msgid "" +"An array that represents the abbreviated days of the week in the current " +"locale." +msgstr "" +"Un tableau qui représente les jours de la semaine en abrégé pour les " +"paramètres régionaux actifs." + +#: ../Doc/library/calendar.rst:401 +msgid "" +"An array that represents the months of the year in the current locale. This " +"follows normal convention of January being month number 1, so it has a " +"length of 13 and ``month_name[0]`` is the empty string." +msgstr "" +"Un tableau qui représente les mois de l'année pour les paramètres régionaux " +"actifs. Ceux-ci respectent la convention usuelle où janvier est le mois " +"numéro 1, donc il a une longueur de 13 et ``month_name[0]`` est la chaîne " +"vide." + +#: ../Doc/library/calendar.rst:408 +msgid "" +"An array that represents the abbreviated months of the year in the current " +"locale. This follows normal convention of January being month number 1, so " +"it has a length of 13 and ``month_abbr[0]`` is the empty string." +msgstr "" +"Un tableau qui représente les mois de l'année en abrégé pour les paramètres " +"régionaux actifs. Celui-ci respectent la convention usuelle où janvier est " +"le mois numéro 1, donc il a une longueur de 13 et ``month_name[0]`` est la " +"chaîne vide." + +#: ../Doc/library/calendar.rst:417 +msgid "Module :mod:`datetime`" +msgstr "Module :mod:`datetime`" + +#: ../Doc/library/calendar.rst:416 +msgid "" +"Object-oriented interface to dates and times with similar functionality to " +"the :mod:`time` module." +msgstr "" +"Interface orientée objet pour les dates et les heures avec des " +"fonctionnalités similaires au module :mod:`time`." + +#: ../Doc/library/calendar.rst:419 +msgid "Module :mod:`time`" +msgstr "Module :mod:`time`" + +#: ../Doc/library/calendar.rst:420 +msgid "Low-level time related functions." +msgstr "Fonctions bas niveau relatives au temps." diff --git a/library/cgi.po b/library/cgi.po new file mode 100644 index 000000000..4236bc894 --- /dev/null +++ b/library/cgi.po @@ -0,0 +1,659 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/cgi.rst:2 +msgid ":mod:`cgi` --- Common Gateway Interface support" +msgstr "" + +#: ../Doc/library/cgi.rst:7 +msgid "**Source code:** :source:`Lib/cgi.py`" +msgstr "**Code source :** :source:`Lib/cgi.py`" + +#: ../Doc/library/cgi.rst:19 +msgid "Support module for Common Gateway Interface (CGI) scripts." +msgstr "" + +#: ../Doc/library/cgi.rst:21 +msgid "" +"This module defines a number of utilities for use by CGI scripts written in " +"Python." +msgstr "" + +#: ../Doc/library/cgi.rst:26 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/library/cgi.rst:30 +msgid "" +"A CGI script is invoked by an HTTP server, usually to process user input " +"submitted through an HTML ``
`` or ```` element." +msgstr "" + +#: ../Doc/library/cgi.rst:33 +msgid "" +"Most often, CGI scripts live in the server's special :file:`cgi-bin` " +"directory. The HTTP server places all sorts of information about the request " +"(such as the client's hostname, the requested URL, the query string, and " +"lots of other goodies) in the script's shell environment, executes the " +"script, and sends the script's output back to the client." +msgstr "" + +#: ../Doc/library/cgi.rst:39 +msgid "" +"The script's input is connected to the client too, and sometimes the form " +"data is read this way; at other times the form data is passed via the " +"\"query string\" part of the URL. This module is intended to take care of " +"the different cases and provide a simpler interface to the Python script. " +"It also provides a number of utilities that help in debugging scripts, and " +"the latest addition is support for file uploads from a form (if your browser " +"supports it)." +msgstr "" + +#: ../Doc/library/cgi.rst:46 +msgid "" +"The output of a CGI script should consist of two sections, separated by a " +"blank line. The first section contains a number of headers, telling the " +"client what kind of data is following. Python code to generate a minimal " +"header section looks like this::" +msgstr "" + +#: ../Doc/library/cgi.rst:54 +msgid "" +"The second section is usually HTML, which allows the client software to " +"display nicely formatted text with header, in-line images, etc. Here's " +"Python code that prints a simple piece of HTML::" +msgstr "" + +#: ../Doc/library/cgi.rst:66 +msgid "Using the cgi module" +msgstr "" + +#: ../Doc/library/cgi.rst:68 +msgid "Begin by writing ``import cgi``." +msgstr "" + +#: ../Doc/library/cgi.rst:70 +msgid "When you write a new script, consider adding these lines::" +msgstr "" + +#: ../Doc/library/cgi.rst:75 +msgid "" +"This activates a special exception handler that will display detailed " +"reports in the Web browser if any errors occur. If you'd rather not show " +"the guts of your program to users of your script, you can have the reports " +"saved to files instead, with code like this::" +msgstr "" + +#: ../Doc/library/cgi.rst:83 +msgid "" +"It's very helpful to use this feature during script development. The reports " +"produced by :mod:`cgitb` provide information that can save you a lot of time " +"in tracking down bugs. You can always remove the ``cgitb`` line later when " +"you have tested your script and are confident that it works correctly." +msgstr "" + +#: ../Doc/library/cgi.rst:88 +msgid "" +"To get at submitted form data, use the :class:`FieldStorage` class. If the " +"form contains non-ASCII characters, use the *encoding* keyword parameter set " +"to the value of the encoding defined for the document. It is usually " +"contained in the META tag in the HEAD section of the HTML document or by " +"the :mailheader:`Content-Type` header). This reads the form contents from " +"the standard input or the environment (depending on the value of various " +"environment variables set according to the CGI standard). Since it may " +"consume standard input, it should be instantiated only once." +msgstr "" + +#: ../Doc/library/cgi.rst:97 +msgid "" +"The :class:`FieldStorage` instance can be indexed like a Python dictionary. " +"It allows membership testing with the :keyword:`in` operator, and also " +"supports the standard dictionary method :meth:`~dict.keys` and the built-in " +"function :func:`len`. Form fields containing empty strings are ignored and " +"do not appear in the dictionary; to keep such values, provide a true value " +"for the optional *keep_blank_values* keyword parameter when creating the :" +"class:`FieldStorage` instance." +msgstr "" + +#: ../Doc/library/cgi.rst:105 +msgid "" +"For instance, the following code (which assumes that the :mailheader:" +"`Content-Type` header and blank line have already been printed) checks that " +"the fields ``name`` and ``addr`` are both set to a non-empty string::" +msgstr "" + +#: ../Doc/library/cgi.rst:119 +msgid "" +"Here the fields, accessed through ``form[key]``, are themselves instances " +"of :class:`FieldStorage` (or :class:`MiniFieldStorage`, depending on the " +"form encoding). The :attr:`~FieldStorage.value` attribute of the instance " +"yields the string value of the field. The :meth:`~FieldStorage.getvalue` " +"method returns this string value directly; it also accepts an optional " +"second argument as a default to return if the requested key is not present." +msgstr "" + +#: ../Doc/library/cgi.rst:126 +msgid "" +"If the submitted form data contains more than one field with the same name, " +"the object retrieved by ``form[key]`` is not a :class:`FieldStorage` or :" +"class:`MiniFieldStorage` instance but a list of such instances. Similarly, " +"in this situation, ``form.getvalue(key)`` would return a list of strings. If " +"you expect this possibility (when your HTML form contains multiple fields " +"with the same name), use the :meth:`~FieldStorage.getlist` method, which " +"always returns a list of values (so that you do not need to special-case the " +"single item case). For example, this code concatenates any number of " +"username fields, separated by commas::" +msgstr "" + +#: ../Doc/library/cgi.rst:139 +msgid "" +"If a field represents an uploaded file, accessing the value via the :attr:" +"`~FieldStorage.value` attribute or the :meth:`~FieldStorage.getvalue` method " +"reads the entire file in memory as bytes. This may not be what you want. " +"You can test for an uploaded file by testing either the :attr:`~FieldStorage." +"filename` attribute or the :attr:`~FieldStorage.file` attribute. You can " +"then read the data from the :attr:`!file` attribute before it is " +"automatically closed as part of the garbage collection of the :class:" +"`FieldStorage` instance (the :func:`~io.RawIOBase.read` and :func:`~io." +"IOBase.readline` methods will return bytes)::" +msgstr "" + +#: ../Doc/library/cgi.rst:159 +msgid "" +":class:`FieldStorage` objects also support being used in a :keyword:`with` " +"statement, which will automatically close them when done." +msgstr "" + +#: ../Doc/library/cgi.rst:162 +msgid "" +"If an error is encountered when obtaining the contents of an uploaded file " +"(for example, when the user interrupts the form submission by clicking on a " +"Back or Cancel button) the :attr:`~FieldStorage.done` attribute of the " +"object for the field will be set to the value -1." +msgstr "" + +#: ../Doc/library/cgi.rst:167 +msgid "" +"The file upload draft standard entertains the possibility of uploading " +"multiple files from one field (using a recursive :mimetype:`multipart/\\*` " +"encoding). When this occurs, the item will be a dictionary-like :class:" +"`FieldStorage` item. This can be determined by testing its :attr:`!type` " +"attribute, which should be :mimetype:`multipart/form-data` (or perhaps " +"another MIME type matching :mimetype:`multipart/\\*`). In this case, it can " +"be iterated over recursively just like the top-level form object." +msgstr "" + +#: ../Doc/library/cgi.rst:175 +msgid "" +"When a form is submitted in the \"old\" format (as the query string or as a " +"single data part of type :mimetype:`application/x-www-form-urlencoded`), the " +"items will actually be instances of the class :class:`MiniFieldStorage`. In " +"this case, the :attr:`!list`, :attr:`!file`, and :attr:`filename` attributes " +"are always ``None``." +msgstr "" + +#: ../Doc/library/cgi.rst:180 +msgid "" +"A form submitted via POST that also has a query string will contain both :" +"class:`FieldStorage` and :class:`MiniFieldStorage` items." +msgstr "" + +#: ../Doc/library/cgi.rst:183 +msgid "" +"The :attr:`~FieldStorage.file` attribute is automatically closed upon the " +"garbage collection of the creating :class:`FieldStorage` instance." +msgstr "" + +#: ../Doc/library/cgi.rst:187 +msgid "" +"Added support for the context management protocol to the :class:" +"`FieldStorage` class." +msgstr "" + +#: ../Doc/library/cgi.rst:193 +msgid "Higher Level Interface" +msgstr "" + +#: ../Doc/library/cgi.rst:195 +msgid "" +"The previous section explains how to read CGI form data using the :class:" +"`FieldStorage` class. This section describes a higher level interface which " +"was added to this class to allow one to do it in a more readable and " +"intuitive way. The interface doesn't make the techniques described in " +"previous sections obsolete --- they are still useful to process file uploads " +"efficiently, for example." +msgstr "" + +#: ../Doc/library/cgi.rst:204 +msgid "" +"The interface consists of two simple methods. Using the methods you can " +"process form data in a generic way, without the need to worry whether only " +"one or more values were posted under one name." +msgstr "" + +#: ../Doc/library/cgi.rst:208 +msgid "" +"In the previous section, you learned to write following code anytime you " +"expected a user to post more than one value under one name::" +msgstr "" + +#: ../Doc/library/cgi.rst:217 +msgid "" +"This situation is common for example when a form contains a group of " +"multiple checkboxes with the same name::" +msgstr "" + +#: ../Doc/library/cgi.rst:223 +msgid "" +"In most situations, however, there's only one form control with a particular " +"name in a form and then you expect and need only one value associated with " +"this name. So you write a script containing for example this code::" +msgstr "" + +#: ../Doc/library/cgi.rst:229 +msgid "" +"The problem with the code is that you should never expect that a client will " +"provide valid input to your scripts. For example, if a curious user appends " +"another ``user=foo`` pair to the query string, then the script would crash, " +"because in this situation the ``getvalue(\"user\")`` method call returns a " +"list instead of a string. Calling the :meth:`~str.upper` method on a list " +"is not valid (since lists do not have a method of this name) and results in " +"an :exc:`AttributeError` exception." +msgstr "" + +#: ../Doc/library/cgi.rst:237 +msgid "" +"Therefore, the appropriate way to read form data values was to always use " +"the code which checks whether the obtained value is a single value or a list " +"of values. That's annoying and leads to less readable scripts." +msgstr "" + +#: ../Doc/library/cgi.rst:241 +msgid "" +"A more convenient approach is to use the methods :meth:`~FieldStorage." +"getfirst` and :meth:`~FieldStorage.getlist` provided by this higher level " +"interface." +msgstr "" + +#: ../Doc/library/cgi.rst:247 +msgid "" +"This method always returns only one value associated with form field *name*. " +"The method returns only the first value in case that more values were posted " +"under such name. Please note that the order in which the values are " +"received may vary from browser to browser and should not be counted on. " +"[#]_ If no such form field or value exists then the method returns the " +"value specified by the optional parameter *default*. This parameter " +"defaults to ``None`` if not specified." +msgstr "" + +#: ../Doc/library/cgi.rst:258 +msgid "" +"This method always returns a list of values associated with form field " +"*name*. The method returns an empty list if no such form field or value " +"exists for *name*. It returns a list consisting of one item if only one " +"such value exists." +msgstr "" + +#: ../Doc/library/cgi.rst:262 +msgid "Using these methods you can write nice compact code::" +msgstr "" + +#: ../Doc/library/cgi.rst:274 +msgid "Functions" +msgstr "Fonctions" + +#: ../Doc/library/cgi.rst:276 +msgid "" +"These are useful if you want more control, or if you want to employ some of " +"the algorithms implemented in this module in other circumstances." +msgstr "" + +#: ../Doc/library/cgi.rst:282 +msgid "" +"Parse a query in the environment or from a file (the file defaults to ``sys." +"stdin``). The *keep_blank_values* and *strict_parsing* parameters are " +"passed to :func:`urllib.parse.parse_qs` unchanged." +msgstr "" + +#: ../Doc/library/cgi.rst:289 +msgid "" +"This function is deprecated in this module. Use :func:`urllib.parse." +"parse_qs` instead. It is maintained here only for backward compatibility." +msgstr "" + +#: ../Doc/library/cgi.rst:295 +msgid "" +"This function is deprecated in this module. Use :func:`urllib.parse." +"parse_qsl` instead. It is maintained here only for backward compatibility." +msgstr "" + +#: ../Doc/library/cgi.rst:301 +msgid "" +"Parse input of type :mimetype:`multipart/form-data` (for file uploads). " +"Arguments are *fp* for the input file, *pdict* for a dictionary containing " +"other parameters in the :mailheader:`Content-Type` header, and *encoding*, " +"the request encoding." +msgstr "" + +#: ../Doc/library/cgi.rst:306 +msgid "" +"Returns a dictionary just like :func:`urllib.parse.parse_qs`: keys are the " +"field names, each value is a list of values for that field. For non-file " +"fields, the value is a list of strings." +msgstr "" + +#: ../Doc/library/cgi.rst:310 +msgid "" +"This is easy to use but not much good if you are expecting megabytes to be " +"uploaded --- in that case, use the :class:`FieldStorage` class instead which " +"is much more flexible." +msgstr "" + +#: ../Doc/library/cgi.rst:314 +msgid "" +"Added the *encoding* and *errors* parameters. For non-file fields, the " +"value is now a list of strings, not bytes." +msgstr "" + +#: ../Doc/library/cgi.rst:321 +msgid "" +"Parse a MIME header (such as :mailheader:`Content-Type`) into a main value " +"and a dictionary of parameters." +msgstr "" + +#: ../Doc/library/cgi.rst:327 +msgid "" +"Robust test CGI script, usable as main program. Writes minimal HTTP headers " +"and formats all information provided to the script in HTML form." +msgstr "" + +#: ../Doc/library/cgi.rst:333 +msgid "Format the shell environment in HTML." +msgstr "" + +#: ../Doc/library/cgi.rst:338 +msgid "Format a form in HTML." +msgstr "" + +#: ../Doc/library/cgi.rst:343 +msgid "Format the current directory in HTML." +msgstr "" + +#: ../Doc/library/cgi.rst:348 +msgid "Print a list of useful (used by CGI) environment variables in HTML." +msgstr "" + +#: ../Doc/library/cgi.rst:353 +msgid "" +"Convert the characters ``'&'``, ``'<'`` and ``'>'`` in string *s* to HTML-" +"safe sequences. Use this if you need to display text that might contain " +"such characters in HTML. If the optional flag *quote* is true, the " +"quotation mark character (``\"``) is also translated; this helps for " +"inclusion in an HTML attribute value delimited by double quotes, as in ````. Note that single quotes are never translated." +msgstr "" + +#: ../Doc/library/cgi.rst:360 +msgid "" +"This function is unsafe because *quote* is false by default, and therefore " +"deprecated. Use :func:`html.escape` instead." +msgstr "" + +#: ../Doc/library/cgi.rst:368 +msgid "Caring about security" +msgstr "" + +#: ../Doc/library/cgi.rst:372 +msgid "" +"There's one important rule: if you invoke an external program (via the :func:" +"`os.system` or :func:`os.popen` functions. or others with similar " +"functionality), make very sure you don't pass arbitrary strings received " +"from the client to the shell. This is a well-known security hole whereby " +"clever hackers anywhere on the Web can exploit a gullible CGI script to " +"invoke arbitrary shell commands. Even parts of the URL or field names " +"cannot be trusted, since the request doesn't have to come from your form!" +msgstr "" + +#: ../Doc/library/cgi.rst:380 +msgid "" +"To be on the safe side, if you must pass a string gotten from a form to a " +"shell command, you should make sure the string contains only alphanumeric " +"characters, dashes, underscores, and periods." +msgstr "" + +#: ../Doc/library/cgi.rst:386 +msgid "Installing your CGI script on a Unix system" +msgstr "" + +#: ../Doc/library/cgi.rst:388 +msgid "" +"Read the documentation for your HTTP server and check with your local system " +"administrator to find the directory where CGI scripts should be installed; " +"usually this is in a directory :file:`cgi-bin` in the server tree." +msgstr "" + +#: ../Doc/library/cgi.rst:392 +msgid "" +"Make sure that your script is readable and executable by \"others\"; the " +"Unix file mode should be ``0o755`` octal (use ``chmod 0755 filename``). " +"Make sure that the first line of the script contains ``#!`` starting in " +"column 1 followed by the pathname of the Python interpreter, for instance::" +msgstr "" + +#: ../Doc/library/cgi.rst:399 +msgid "" +"Make sure the Python interpreter exists and is executable by \"others\"." +msgstr "" + +#: ../Doc/library/cgi.rst:401 +msgid "" +"Make sure that any files your script needs to read or write are readable or " +"writable, respectively, by \"others\" --- their mode should be ``0o644`` for " +"readable and ``0o666`` for writable. This is because, for security reasons, " +"the HTTP server executes your script as user \"nobody\", without any special " +"privileges. It can only read (write, execute) files that everybody can read " +"(write, execute). The current directory at execution time is also different " +"(it is usually the server's cgi-bin directory) and the set of environment " +"variables is also different from what you get when you log in. In " +"particular, don't count on the shell's search path for executables (:envvar:" +"`PATH`) or the Python module search path (:envvar:`PYTHONPATH`) to be set to " +"anything interesting." +msgstr "" + +#: ../Doc/library/cgi.rst:412 +msgid "" +"If you need to load modules from a directory which is not on Python's " +"default module search path, you can change the path in your script, before " +"importing other modules. For example::" +msgstr "" + +#: ../Doc/library/cgi.rst:420 +msgid "(This way, the directory inserted last will be searched first!)" +msgstr "" + +#: ../Doc/library/cgi.rst:422 +msgid "" +"Instructions for non-Unix systems will vary; check your HTTP server's " +"documentation (it will usually have a section on CGI scripts)." +msgstr "" + +#: ../Doc/library/cgi.rst:427 +msgid "Testing your CGI script" +msgstr "" + +#: ../Doc/library/cgi.rst:429 +msgid "" +"Unfortunately, a CGI script will generally not run when you try it from the " +"command line, and a script that works perfectly from the command line may " +"fail mysteriously when run from the server. There's one reason why you " +"should still test your script from the command line: if it contains a syntax " +"error, the Python interpreter won't execute it at all, and the HTTP server " +"will most likely send a cryptic error to the client." +msgstr "" + +#: ../Doc/library/cgi.rst:436 +msgid "" +"Assuming your script has no syntax errors, yet it does not work, you have no " +"choice but to read the next section." +msgstr "" + +#: ../Doc/library/cgi.rst:441 +msgid "Debugging CGI scripts" +msgstr "" + +#: ../Doc/library/cgi.rst:445 +msgid "" +"First of all, check for trivial installation errors --- reading the section " +"above on installing your CGI script carefully can save you a lot of time. " +"If you wonder whether you have understood the installation procedure " +"correctly, try installing a copy of this module file (:file:`cgi.py`) as a " +"CGI script. When invoked as a script, the file will dump its environment " +"and the contents of the form in HTML form. Give it the right mode etc, and " +"send it a request. If it's installed in the standard :file:`cgi-bin` " +"directory, it should be possible to send it a request by entering a URL into " +"your browser of the form:" +msgstr "" + +#: ../Doc/library/cgi.rst:458 +msgid "" +"If this gives an error of type 404, the server cannot find the script -- " +"perhaps you need to install it in a different directory. If it gives " +"another error, there's an installation problem that you should fix before " +"trying to go any further. If you get a nicely formatted listing of the " +"environment and form content (in this example, the fields should be listed " +"as \"addr\" with value \"At Home\" and \"name\" with value \"Joe Blow\"), " +"the :file:`cgi.py` script has been installed correctly. If you follow the " +"same procedure for your own script, you should now be able to debug it." +msgstr "" + +#: ../Doc/library/cgi.rst:467 +msgid "" +"The next step could be to call the :mod:`cgi` module's :func:`test` function " +"from your script: replace its main code with the single statement ::" +msgstr "" + +#: ../Doc/library/cgi.rst:472 +msgid "" +"This should produce the same results as those gotten from installing the :" +"file:`cgi.py` file itself." +msgstr "" + +#: ../Doc/library/cgi.rst:475 +msgid "" +"When an ordinary Python script raises an unhandled exception (for whatever " +"reason: of a typo in a module name, a file that can't be opened, etc.), the " +"Python interpreter prints a nice traceback and exits. While the Python " +"interpreter will still do this when your CGI script raises an exception, " +"most likely the traceback will end up in one of the HTTP server's log files, " +"or be discarded altogether." +msgstr "" + +#: ../Doc/library/cgi.rst:482 +msgid "" +"Fortunately, once you have managed to get your script to execute *some* " +"code, you can easily send tracebacks to the Web browser using the :mod:" +"`cgitb` module. If you haven't done so already, just add the lines::" +msgstr "" + +#: ../Doc/library/cgi.rst:489 +msgid "" +"to the top of your script. Then try running it again; when a problem " +"occurs, you should see a detailed report that will likely make apparent the " +"cause of the crash." +msgstr "" + +#: ../Doc/library/cgi.rst:493 +msgid "" +"If you suspect that there may be a problem in importing the :mod:`cgitb` " +"module, you can use an even more robust approach (which only uses built-in " +"modules)::" +msgstr "" + +#: ../Doc/library/cgi.rst:502 +msgid "" +"This relies on the Python interpreter to print the traceback. The content " +"type of the output is set to plain text, which disables all HTML " +"processing. If your script works, the raw HTML will be displayed by your " +"client. If it raises an exception, most likely after the first two lines " +"have been printed, a traceback will be displayed. Because no HTML " +"interpretation is going on, the traceback will be readable." +msgstr "" + +#: ../Doc/library/cgi.rst:511 +msgid "Common problems and solutions" +msgstr "" + +#: ../Doc/library/cgi.rst:513 +msgid "" +"Most HTTP servers buffer the output from CGI scripts until the script is " +"completed. This means that it is not possible to display a progress report " +"on the client's display while the script is running." +msgstr "" + +#: ../Doc/library/cgi.rst:517 +msgid "Check the installation instructions above." +msgstr "" + +#: ../Doc/library/cgi.rst:519 +msgid "" +"Check the HTTP server's log files. (``tail -f logfile`` in a separate " +"window may be useful!)" +msgstr "" + +#: ../Doc/library/cgi.rst:522 +msgid "" +"Always check a script for syntax errors first, by doing something like " +"``python script.py``." +msgstr "" + +#: ../Doc/library/cgi.rst:525 +msgid "" +"If your script does not have any syntax errors, try adding ``import cgitb; " +"cgitb.enable()`` to the top of the script." +msgstr "" + +#: ../Doc/library/cgi.rst:528 +msgid "" +"When invoking external programs, make sure they can be found. Usually, this " +"means using absolute path names --- :envvar:`PATH` is usually not set to a " +"very useful value in a CGI script." +msgstr "" + +#: ../Doc/library/cgi.rst:532 +msgid "" +"When reading or writing external files, make sure they can be read or " +"written by the userid under which your CGI script will be running: this is " +"typically the userid under which the web server is running, or some " +"explicitly specified userid for a web server's ``suexec`` feature." +msgstr "" + +#: ../Doc/library/cgi.rst:537 +msgid "" +"Don't try to give a CGI script a set-uid mode. This doesn't work on most " +"systems, and is a security liability as well." +msgstr "" + +#: ../Doc/library/cgi.rst:541 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/cgi.rst:542 +msgid "" +"Note that some recent versions of the HTML specification do state what order " +"the field values should be supplied in, but knowing whether a request was " +"received from a conforming browser, or even from a browser at all, is " +"tedious and error-prone." +msgstr "" diff --git a/library/cgitb.po b/library/cgitb.po new file mode 100644 index 000000000..fef0663b1 --- /dev/null +++ b/library/cgitb.po @@ -0,0 +1,145 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-07-29 18:36+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.9\n" + +#: ../Doc/library/cgitb.rst:2 +msgid ":mod:`cgitb` --- Traceback manager for CGI scripts" +msgstr ":mod:`cgitb` — Gestionnaire d'exceptions pour les scripts CGI" + +#: ../Doc/library/cgitb.rst:10 +msgid "**Source code:** :source:`Lib/cgitb.py`" +msgstr "**Code source :** :source:`Lib/cgitb.py`" + +#: ../Doc/library/cgitb.rst:20 +msgid "" +"The :mod:`cgitb` module provides a special exception handler for Python " +"scripts. (Its name is a bit misleading. It was originally designed to " +"display extensive traceback information in HTML for CGI scripts. It was " +"later generalized to also display this information in plain text.) After " +"this module is activated, if an uncaught exception occurs, a detailed, " +"formatted report will be displayed. The report includes a traceback showing " +"excerpts of the source code for each level, as well as the values of the " +"arguments and local variables to currently running functions, to help you " +"debug the problem. Optionally, you can save this information to a file " +"instead of sending it to the browser." +msgstr "" +"Le module :mod:`cgitb` fournit un gestionnaire d'exceptions spécifique pour " +"les scripts Python. (Son nom est trompeur : Il a été conçu à l'origine pour " +"afficher des pile d'appels en HTML pour les scripts CGI, puis a été " +"généralisé par la suite pour afficher cette information en texte brut.) Une " +"fois ce module activé, si une exception remonte jusqu'à l'interpréteur, un " +"rapport détaillé sera affiché. Le rapport affiche la pile d'appels, montrant " +"des extraits de code pour chaque niveau, ainsi que les arguments et les " +"variables locales des fonctions appelantes pour vous aider à résoudre le " +"problème. Il est aussi possible de sauvegarder cette information dans un " +"fichier plutôt que de l'envoyer dans le navigateur." + +#: ../Doc/library/cgitb.rst:30 +msgid "To enable this feature, simply add this to the top of your CGI script::" +msgstr "" +"Pour activer cette fonctionnalité, ajoutez simplement ceci au début de votre " +"script CGI ::" + +#: ../Doc/library/cgitb.rst:35 +msgid "" +"The options to the :func:`enable` function control whether the report is " +"displayed in the browser and whether the report is logged to a file for " +"later analysis." +msgstr "" +"Les paramètres optionnels de la fonction :func:`enable` permettent de " +"choisir si le rapport est envoyé au navigateur ou si le rapport est écrit " +"dans un fichier pour analyse ultérieure." + +#: ../Doc/library/cgitb.rst:44 +msgid "" +"This function causes the :mod:`cgitb` module to take over the interpreter's " +"default handling for exceptions by setting the value of :attr:`sys." +"excepthook`." +msgstr "" +"Appeler cette fonction remplace le gestionnaire d'exceptions par défaut de " +"l'interpréteur par celui du module :mod:`cgitb`, en configurant :attr:`sys." +"excepthook`." + +#: ../Doc/library/cgitb.rst:47 +msgid "" +"The optional argument *display* defaults to ``1`` and can be set to ``0`` to " +"suppress sending the traceback to the browser. If the argument *logdir* is " +"present, the traceback reports are written to files. The value of *logdir* " +"should be a directory where these files will be placed. The optional " +"argument *context* is the number of lines of context to display around the " +"current line of source code in the traceback; this defaults to ``5``. If the " +"optional argument *format* is ``\"html\"``, the output is formatted as " +"HTML. Any other value forces plain text output. The default value is ``" +"\"html\"``." +msgstr "" +"Le paramètre optionnel *display* vaut ``1`` par défaut, et peut être mis à " +"``0`` pour désactiver l'envoi des piles d'appels au navigateur. Si " +"l'argument *logdir* est donné les piles d'appels seront écrites dans des " +"fichiers placés dans le dossier *logdir*. L'argument optionnel *context* est " +"le nombre de lignes de code à afficher autour de la ligne courante dans le " +"code source à chaque niveau de la pile d'appel, il vaut ``5`` par défaut. Si " +"l'argument optionnel *format* est ``\"html\"``, le rapport sera rédigé en " +"HTML. Le rapport sera écrit en texte brut pour toute autre valeur. La " +"valeur par défaut est ``\"html\"``." + +#: ../Doc/library/cgitb.rst:59 +msgid "" +"This function handles the exception described by *info* (a 3-tuple " +"containing the result of :func:`sys.exc_info`), formatting its traceback as " +"text and returning the result as a string. The optional argument *context* " +"is the number of lines of context to display around the current line of " +"source code in the traceback; this defaults to ``5``." +msgstr "" +"Cette fonction gère l’exception décrite par *info* (un triplet contenant le " +"résultat de :func:`sys.exc_info`), elle présente sa pile d’appels en texte " +"brut et renvois le résultat sous forme de chaîne de caractères. L’argument " +"facultatif *contexte* est le nombre de lignes de contexte à afficher autour " +"de la ligne courante du code source dans la pile d’appels ; la valeur par " +"défaut est ``5``." + +#: ../Doc/library/cgitb.rst:68 +msgid "" +"This function handles the exception described by *info* (a 3-tuple " +"containing the result of :func:`sys.exc_info`), formatting its traceback as " +"HTML and returning the result as a string. The optional argument *context* " +"is the number of lines of context to display around the current line of " +"source code in the traceback; this defaults to ``5``." +msgstr "" +"Cette fonction gère l’exception décrite par *info* (un triplet contenant le " +"résultat de :func:`sys.exc_info`), elle présente sa pile d’appels en HTML et " +"renvoie le résultat sous forme de chaîne de caractères. L’argument " +"facultatif *contexte* est le nombre de lignes de contexte à afficher autour " +"de la ligne courante du code source dans la pile d’appels ; la valeur par " +"défaut est ``5``." + +#: ../Doc/library/cgitb.rst:77 +msgid "" +"This function handles an exception using the default settings (that is, show " +"a report in the browser, but don't log to a file). This can be used when " +"you've caught an exception and want to report it using :mod:`cgitb`. The " +"optional *info* argument should be a 3-tuple containing an exception type, " +"exception value, and traceback object, exactly like the tuple returned by :" +"func:`sys.exc_info`. If the *info* argument is not supplied, the current " +"exception is obtained from :func:`sys.exc_info`." +msgstr "" +"Cette fonction gère les exceptions en utilisant la configuration par défaut " +"(c'est à dire envoyer un rapport HTML au navigateur sans l'enregistrer dans " +"un fichier). Il peut être utilisé lorsque vous avez attrapé une exception et " +"que vous en voulez un rapport généré par :mod:`cgitb`. L'argument optionnel " +"*info* doit être un *tuple* de trois éléments contenant le type de " +"l'exception, l'exception, et la pile d'appels, tel que le *tuple* renvoyé " +"par :func:`sys.exc_info`. Si l'argument *info* n'est pas donné, l'exception " +"courante est obtenue via :func:`sys.exc_info`." diff --git a/library/chunk.po b/library/chunk.po new file mode 100644 index 000000000..05c9d6f68 --- /dev/null +++ b/library/chunk.po @@ -0,0 +1,193 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/chunk.rst:2 +msgid ":mod:`chunk` --- Read IFF chunked data" +msgstr "" + +#: ../Doc/library/chunk.rst:10 +msgid "**Source code:** :source:`Lib/chunk.py`" +msgstr "" + +#: ../Doc/library/chunk.rst:21 +msgid "" +"This module provides an interface for reading files that use EA IFF 85 " +"chunks. [#]_ This format is used in at least the Audio Interchange File " +"Format (AIFF/AIFF-C) and the Real Media File Format (RMFF). The WAVE audio " +"file format is closely related and can also be read using this module." +msgstr "" + +#: ../Doc/library/chunk.rst:26 +msgid "A chunk has the following structure:" +msgstr "" + +#: ../Doc/library/chunk.rst:29 +msgid "Offset" +msgstr "" + +#: ../Doc/library/chunk.rst:29 +msgid "Length" +msgstr "" + +#: ../Doc/library/chunk.rst:29 +msgid "Contents" +msgstr "Sommaire" + +#: ../Doc/library/chunk.rst:31 +msgid "0" +msgstr "0" + +#: ../Doc/library/chunk.rst:31 ../Doc/library/chunk.rst:33 +msgid "4" +msgstr "4" + +#: ../Doc/library/chunk.rst:31 +msgid "Chunk ID" +msgstr "" + +#: ../Doc/library/chunk.rst:33 +msgid "Size of chunk in big-endian byte order, not including the header" +msgstr "" + +#: ../Doc/library/chunk.rst:37 +msgid "8" +msgstr "8" + +#: ../Doc/library/chunk.rst:37 +msgid "*n*" +msgstr "*n*" + +#: ../Doc/library/chunk.rst:37 +msgid "Data bytes, where *n* is the size given in the preceding field" +msgstr "" + +#: ../Doc/library/chunk.rst:41 +msgid "8 + *n*" +msgstr "8 + *n*" + +#: ../Doc/library/chunk.rst:41 +msgid "0 or 1" +msgstr "0 or 1" + +#: ../Doc/library/chunk.rst:41 +msgid "Pad byte needed if *n* is odd and chunk alignment is used" +msgstr "" + +#: ../Doc/library/chunk.rst:45 +msgid "The ID is a 4-byte string which identifies the type of chunk." +msgstr "" + +#: ../Doc/library/chunk.rst:47 +msgid "" +"The size field (a 32-bit value, encoded using big-endian byte order) gives " +"the size of the chunk data, not including the 8-byte header." +msgstr "" + +#: ../Doc/library/chunk.rst:50 +msgid "" +"Usually an IFF-type file consists of one or more chunks. The proposed usage " +"of the :class:`Chunk` class defined here is to instantiate an instance at " +"the start of each chunk and read from the instance until it reaches the end, " +"after which a new instance can be instantiated. At the end of the file, " +"creating a new instance will fail with an :exc:`EOFError` exception." +msgstr "" + +#: ../Doc/library/chunk.rst:59 +msgid "" +"Class which represents a chunk. The *file* argument is expected to be a " +"file-like object. An instance of this class is specifically allowed. The " +"only method that is needed is :meth:`~io.IOBase.read`. If the methods :meth:" +"`~io.IOBase.seek` and :meth:`~io.IOBase.tell` are present and don't raise an " +"exception, they are also used. If these methods are present and raise an " +"exception, they are expected to not have altered the object. If the " +"optional argument *align* is true, chunks are assumed to be aligned on 2-" +"byte boundaries. If *align* is false, no alignment is assumed. The default " +"value is true. If the optional argument *bigendian* is false, the chunk " +"size is assumed to be in little-endian order. This is needed for WAVE audio " +"files. The default value is true. If the optional argument *inclheader* is " +"true, the size given in the chunk header includes the size of the header. " +"The default value is false." +msgstr "" + +#: ../Doc/library/chunk.rst:73 +msgid "A :class:`Chunk` object supports the following methods:" +msgstr "" + +#: ../Doc/library/chunk.rst:78 +msgid "" +"Returns the name (ID) of the chunk. This is the first 4 bytes of the chunk." +msgstr "" + +#: ../Doc/library/chunk.rst:84 +msgid "Returns the size of the chunk." +msgstr "" + +#: ../Doc/library/chunk.rst:89 +msgid "" +"Close and skip to the end of the chunk. This does not close the underlying " +"file." +msgstr "" + +#: ../Doc/library/chunk.rst:92 +msgid "" +"The remaining methods will raise :exc:`OSError` if called after the :meth:" +"`close` method has been called. Before Python 3.3, they used to raise :exc:" +"`IOError`, now an alias of :exc:`OSError`." +msgstr "" + +#: ../Doc/library/chunk.rst:99 +msgid "Returns ``False``." +msgstr "" + +#: ../Doc/library/chunk.rst:104 +msgid "" +"Set the chunk's current position. The *whence* argument is optional and " +"defaults to ``0`` (absolute file positioning); other values are ``1`` (seek " +"relative to the current position) and ``2`` (seek relative to the file's " +"end). There is no return value. If the underlying file does not allow seek, " +"only forward seeks are allowed." +msgstr "" + +#: ../Doc/library/chunk.rst:113 +msgid "Return the current position into the chunk." +msgstr "" + +#: ../Doc/library/chunk.rst:118 +msgid "" +"Read at most *size* bytes from the chunk (less if the read hits the end of " +"the chunk before obtaining *size* bytes). If the *size* argument is " +"negative or omitted, read all data until the end of the chunk. An empty " +"bytes object is returned when the end of the chunk is encountered " +"immediately." +msgstr "" + +#: ../Doc/library/chunk.rst:127 +msgid "" +"Skip to the end of the chunk. All further calls to :meth:`read` for the " +"chunk will return ``b''``. If you are not interested in the contents of the " +"chunk, this method should be called so that the file points to the start of " +"the next chunk." +msgstr "" + +#: ../Doc/library/chunk.rst:134 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/chunk.rst:135 +msgid "" +"\"EA IFF 85\" Standard for Interchange Format Files, Jerry Morrison, " +"Electronic Arts, January 1985." +msgstr "" diff --git a/library/cmath.po b/library/cmath.po new file mode 100644 index 000000000..0a7d78cdf --- /dev/null +++ b/library/cmath.po @@ -0,0 +1,452 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-28 20:19+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" + +#: ../Doc/library/cmath.rst:2 +msgid ":mod:`cmath` --- Mathematical functions for complex numbers" +msgstr "Fonctions mathématiques pour nombres complexes — :mod:`cmath`" + +#: ../Doc/library/cmath.rst:9 +msgid "" +"This module provides access to mathematical functions for complex numbers. " +"The functions in this module accept integers, floating-point numbers or " +"complex numbers as arguments. They will also accept any Python object that " +"has either a :meth:`__complex__` or a :meth:`__float__` method: these " +"methods are used to convert the object to a complex or floating-point " +"number, respectively, and the function is then applied to the result of the " +"conversion." +msgstr "" +"Ce module fournit l'accès aux fonctions mathématiques pour les nombres " +"complexes. Les fonctions de ce module acceptent les entiers, les nombres " +"flottants ou les nombres complexes comme arguments. Elles acceptent " +"également tout objet Python ayant une méthode :meth:`__complex__` " +"(respectivement :meth:`__float__`) : cette méthode est utilisée pour " +"convertir l’objet en nombre complexe (respectivement un nombre flottant) et " +"la fonction est ensuite appliquée sur le résultat de la conversion." + +#: ../Doc/library/cmath.rst:18 +msgid "" +"On platforms with hardware and system-level support for signed zeros, " +"functions involving branch cuts are continuous on *both* sides of the branch " +"cut: the sign of the zero distinguishes one side of the branch cut from the " +"other. On platforms that do not support signed zeros the continuity is as " +"specified below." +msgstr "" +"Sur les plate-formes avec un support système et matériel des zéros signés, " +"les fonctions incluant une coupure complexe sont continues *de chaque* côté " +"de la coupure : le signe du zéro distingue les deux extrémités de la " +"coupure. Sur les plate-formes ne supportant pas les zéros signés, la " +"continuité est spécifiée en-dessous." + +#: ../Doc/library/cmath.rst:26 +msgid "Conversions to and from polar coordinates" +msgstr "Conversion vers et à partir de coordonnées polaires" + +#: ../Doc/library/cmath.rst:28 +msgid "" +"A Python complex number ``z`` is stored internally using *rectangular* or " +"*Cartesian* coordinates. It is completely determined by its *real part* ``z." +"real`` and its *imaginary part* ``z.imag``. In other words::" +msgstr "" +"Un nombre complexe Python ``z`` est stocké de manière interne en coordonnées " +"*cartésiennes*. Il est entièrement défini par sa *partie réelle* ``z.real`` " +"et sa *partie complexe* ``z.imag``. En d'autres termes ::" + +#: ../Doc/library/cmath.rst:35 +msgid "" +"*Polar coordinates* give an alternative way to represent a complex number. " +"In polar coordinates, a complex number *z* is defined by the modulus *r* and " +"the phase angle *phi*. The modulus *r* is the distance from *z* to the " +"origin, while the phase *phi* is the counterclockwise angle, measured in " +"radians, from the positive x-axis to the line segment that joins the origin " +"to *z*." +msgstr "" +"Les *coordonnées polaires* donnent une manière alternative de représenter un " +"nombre complexe. En coordonnées polaires, un nombre complexe *z* est défini " +"par son module *r* et par son argument (*angle de phase*) *phi*. Le module " +"*r* est la distance entre *z* et l'origine, alors que l'argument *phi* est " +"l'angle (dans le sens inverse des aiguilles d'une montre, ou sens " +"trigonométrique), mesuré en radians, à partir de l'axe X positif, et vers le " +"segment de droite joignant *z* à l'origine." + +#: ../Doc/library/cmath.rst:42 +msgid "" +"The following functions can be used to convert from the native rectangular " +"coordinates to polar coordinates and back." +msgstr "" +"Les fonctions suivantes peuvent être utilisées pour convertir à partir des " +"coordonnées rectangulaires natives vers les coordonnées polaires, et vice-" +"versa." + +#: ../Doc/library/cmath.rst:47 +msgid "" +"Return the phase of *x* (also known as the *argument* of *x*), as a float. " +"``phase(x)`` is equivalent to ``math.atan2(x.imag, x.real)``. The result " +"lies in the range [-\\ *π*, *π*], and the branch cut for this operation lies " +"along the negative real axis, continuous from above. On systems with " +"support for signed zeros (which includes most systems in current use), this " +"means that the sign of the result is the same as the sign of ``x.imag``, " +"even when ``x.imag`` is zero::" +msgstr "" +"Renvoie l'argument de *x*, dans un nombre flottant. ``phase(x)`` est " +"équivalent à ``math.atan2(x.imag, x.real)``. Le résultat se situe dans " +"l'intervalle [-\\ *π*, *π*], et la coupure par cette opération se situe sur " +"la partie négative de l'axe des réels, continue par au-dessus. Sur les " +"systèmes supportant les zéros signés (ce qui inclut la plupart des systèmes " +"utilisés actuellement), cela signifie que le signe du résultat est le même " +"que ``x.imag`` même quand ``x.imag`` vaut zéro ::" + +#: ../Doc/library/cmath.rst:64 +msgid "" +"The modulus (absolute value) of a complex number *x* can be computed using " +"the built-in :func:`abs` function. There is no separate :mod:`cmath` module " +"function for this operation." +msgstr "" +"Le module (valeur absolue) d'un nombre complexe *x* peut être calculé en " +"utilisant la primitive :func:`abs`. Il n'y a pas de fonction spéciale du " +"module :mod:`cmath` pour cette opération." + +#: ../Doc/library/cmath.rst:71 +msgid "" +"Return the representation of *x* in polar coordinates. Returns a pair ``(r, " +"phi)`` where *r* is the modulus of *x* and phi is the phase of *x*. " +"``polar(x)`` is equivalent to ``(abs(x), phase(x))``." +msgstr "" +"Renvoie la représentation de *x* en coordonnées polaires. Renvoie une paire " +"``(r, phi)`` où *r* est le module de *x* et phi est l'argument de *x*. " +"``polar(x)`` est équivalent à ``(abs(x), phase(x))``." + +#: ../Doc/library/cmath.rst:79 +msgid "" +"Return the complex number *x* with polar coordinates *r* and *phi*. " +"Equivalent to ``r * (math.cos(phi) + math.sin(phi)*1j)``." +msgstr "" +"Renvoie le nombre complexe *x* dont les coordonnées polaires sont *r* et " +"*phi*. Équivalent à ``r * (math.cos(phi) + math.sin(phi)*1j)``." + +#: ../Doc/library/cmath.rst:84 +msgid "Power and logarithmic functions" +msgstr "Fonctions logarithme et exponentielle" + +#: ../Doc/library/cmath.rst:88 +msgid "" +"Return *e* raised to the power *x*, where *e* is the base of natural " +"logarithms." +msgstr "" +"Renvoie *e* élevé à la puissance *x*, où *e* est la base des logarithmes " +"naturels." + +#: ../Doc/library/cmath.rst:94 +msgid "" +"Returns the logarithm of *x* to the given *base*. If the *base* is not " +"specified, returns the natural logarithm of *x*. There is one branch cut, " +"from 0 along the negative real axis to -∞, continuous from above." +msgstr "" +"Renvoie le logarithme de *x* dans la *base* précisée. Si la *base* n'est pas " +"spécifiée, le logarithme *naturel* (népérien) de *x* est renvoyé. Il y a une " +"coupure, partant de 0 sur l'axe réel négatif et vers ``-∞``, continue par au-" +"dessus." + +#: ../Doc/library/cmath.rst:101 +msgid "" +"Return the base-10 logarithm of *x*. This has the same branch cut as :func:" +"`log`." +msgstr "" +"Renvoie le logarithme en base 10 de *x*. Elle a la même coupure que :func:" +"`log`." + +#: ../Doc/library/cmath.rst:107 +msgid "" +"Return the square root of *x*. This has the same branch cut as :func:`log`." +msgstr "" +"Renvoie la racine carrée de *x*. Elle a la même coupure que :func:`log`." + +#: ../Doc/library/cmath.rst:111 +msgid "Trigonometric functions" +msgstr "Fonctions trigonométriques" + +#: ../Doc/library/cmath.rst:115 +msgid "" +"Return the arc cosine of *x*. There are two branch cuts: One extends right " +"from 1 along the real axis to ∞, continuous from below. The other extends " +"left from -1 along the real axis to -∞, continuous from above." +msgstr "" +"Renvoie l'arc cosinus de *x*. Il y a deux coupures : une allant de 1 sur " +"l'axe réel vers ∞, continue par en-dessous ; l'autre allant de ``-1`` sur " +"l'axe réel vers ``-∞``, continue par au-dessus." + +#: ../Doc/library/cmath.rst:122 +msgid "" +"Return the arc sine of *x*. This has the same branch cuts as :func:`acos`." +msgstr "" +"Renvoie l'arc sinus de *x*. Elle a les mêmes coupures que :func:`acos`." + +#: ../Doc/library/cmath.rst:127 +msgid "" +"Return the arc tangent of *x*. There are two branch cuts: One extends from " +"``1j`` along the imaginary axis to ``∞j``, continuous from the right. The " +"other extends from ``-1j`` along the imaginary axis to ``-∞j``, continuous " +"from the left." +msgstr "" +"Renvoie la tangente de *x*. l y a deux coupures : une allant de ``1j`` sur " +"l'axe imaginaire vers ``∞j``, continue par la droite ; l'autre allant de " +"``-1j`` sur l'axe imaginaire vers ``-∞j``, continue par la gauche." + +#: ../Doc/library/cmath.rst:135 +msgid "Return the cosine of *x*." +msgstr "Renvoie le cosinus de *x*." + +#: ../Doc/library/cmath.rst:140 +msgid "Return the sine of *x*." +msgstr "Renvoie le sinus de *x*." + +#: ../Doc/library/cmath.rst:145 +msgid "Return the tangent of *x*." +msgstr "Renvoie la tangente de *x*." + +#: ../Doc/library/cmath.rst:149 +msgid "Hyperbolic functions" +msgstr "Fonctions hyperboliques" + +#: ../Doc/library/cmath.rst:153 +msgid "" +"Return the inverse hyperbolic cosine of *x*. There is one branch cut, " +"extending left from 1 along the real axis to -∞, continuous from above." +msgstr "" +"Renvoie l'arc cosinus hyperbolique de *x*. Il y a une coupure, allant de 1 " +"sur l'axe réel vers ``-∞``, continue par au-dessus." + +#: ../Doc/library/cmath.rst:159 +msgid "" +"Return the inverse hyperbolic sine of *x*. There are two branch cuts: One " +"extends from ``1j`` along the imaginary axis to ``∞j``, continuous from the " +"right. The other extends from ``-1j`` along the imaginary axis to ``-∞j``, " +"continuous from the left." +msgstr "" +"Renvoie l'arc sinus hyperbolique de *x*. Il y a deux coupures : une allant " +"de ``1j`` sur l'axe imaginaire vers ``∞j``, continue par la droite ; l'autre " +"allant de ``-1j`` sur l'axe imaginaire vers ``∞j``, continue par la gauche." + +#: ../Doc/library/cmath.rst:167 +msgid "" +"Return the inverse hyperbolic tangent of *x*. There are two branch cuts: One " +"extends from ``1`` along the real axis to ``∞``, continuous from below. The " +"other extends from ``-1`` along the real axis to ``-∞``, continuous from " +"above." +msgstr "" +"Renvoie l'arc tangente hyperbolique de *x*. Il y a deux coupures : une " +"allant de ``1`` sur l'axe réel allant vers ``∞``, continue par en-dessous ; " +"l'autre allant de ``-1`` sur l'axe réel vers ``-∞``, continue par au-dessus." + +#: ../Doc/library/cmath.rst:175 +msgid "Return the hyperbolic cosine of *x*." +msgstr "Renvoie le cosinus hyperbolique de *x*." + +#: ../Doc/library/cmath.rst:180 +msgid "Return the hyperbolic sine of *x*." +msgstr "Renvoie le sinus hyperbolique de *x*." + +#: ../Doc/library/cmath.rst:185 +msgid "Return the hyperbolic tangent of *x*." +msgstr "Renvoie la tangente hyperbolique de *x*." + +#: ../Doc/library/cmath.rst:189 +msgid "Classification functions" +msgstr "Fonctions de classifications" + +#: ../Doc/library/cmath.rst:193 +msgid "" +"Return ``True`` if both the real and imaginary parts of *x* are finite, and " +"``False`` otherwise." +msgstr "" +"Renvoie ``True`` si la partie réelle *et* la partie imaginaire de *x* sont " +"finies, et ``False`` sinon." + +#: ../Doc/library/cmath.rst:201 +msgid "" +"Return ``True`` if either the real or the imaginary part of *x* is an " +"infinity, and ``False`` otherwise." +msgstr "" +"Renvoie ``True`` si soit la partie réelle *ou* la partie imaginaire de *x* " +"est infinie, et ``False`` sinon." + +#: ../Doc/library/cmath.rst:207 +msgid "" +"Return ``True`` if either the real or the imaginary part of *x* is a NaN, " +"and ``False`` otherwise." +msgstr "" +"Renvoie ``True`` si soit la partie réelle *ou* la partie imaginaire de *x* " +"est NaN, et ``False`` sinon." + +#: ../Doc/library/cmath.rst:213 +msgid "" +"Return ``True`` if the values *a* and *b* are close to each other and " +"``False`` otherwise." +msgstr "" +"Renvoie ``True`` si les valeurs *a* et *b* sont proches l'une de l'autre, et " +"``False`` sinon." + +#: ../Doc/library/cmath.rst:216 +msgid "" +"Whether or not two values are considered close is determined according to " +"given absolute and relative tolerances." +msgstr "" +"Déterminer si deux valeurs sont proches se fait à l'aide des tolérances " +"absolues et relatives données en paramètres." + +#: ../Doc/library/cmath.rst:219 +msgid "" +"*rel_tol* is the relative tolerance -- it is the maximum allowed difference " +"between *a* and *b*, relative to the larger absolute value of *a* or *b*. " +"For example, to set a tolerance of 5%, pass ``rel_tol=0.05``. The default " +"tolerance is ``1e-09``, which assures that the two values are the same " +"within about 9 decimal digits. *rel_tol* must be greater than zero." +msgstr "" +"*rel_tol* est la tolérance relative -- c'est la différence maximale permise " +"entre *a* et *b*, relativement à la plus grande valeur de *a* ou de *b*. Par " +"exemple, pour définir une tolérance de 5%,, précisez ``rel_tol=0.05``. La " +"tolérance par défaut est ``1e-09``, ce qui assure que deux valeurs sont les " +"mêmes à partir de la 9\\ :sup:`e` décimale. *rel_tol* doit être supérieur à " +"zéro." + +#: ../Doc/library/cmath.rst:225 +msgid "" +"*abs_tol* is the minimum absolute tolerance -- useful for comparisons near " +"zero. *abs_tol* must be at least zero." +msgstr "" +"*abs_tol* est la tolérance absolue minimale -- utile pour les comparaisons " +"proches de zéro. *abs_tol* doit valoir au moins zéro." + +#: ../Doc/library/cmath.rst:228 +msgid "" +"If no errors occur, the result will be: ``abs(a-b) <= max(rel_tol * " +"max(abs(a), abs(b)), abs_tol)``." +msgstr "" +"Si aucune erreur n'est rencontrée, le résultat sera : ``abs(a-b) <= " +"max(rel_tol * max(abs(a), abs(b)), abs_tol)``." + +#: ../Doc/library/cmath.rst:231 +msgid "" +"The IEEE 754 special values of ``NaN``, ``inf``, and ``-inf`` will be " +"handled according to IEEE rules. Specifically, ``NaN`` is not considered " +"close to any other value, including ``NaN``. ``inf`` and ``-inf`` are only " +"considered close to themselves." +msgstr "" +"Les valeurs spécifiques suivantes : ``NaN``, ``inf``, et ``-inf`` définies " +"dans la norme IEEE 754 seront manipulées selon les règles du standard IEEE. " +"En particulier, ``NaN`` n'est considéré proche d'aucune autre valeur, " +"``NaN`` inclus. ``inf`` et ``-inf`` ne sont considérés proches que d'eux-" +"mêmes." + +#: ../Doc/library/cmath.rst:240 +msgid ":pep:`485` -- A function for testing approximate equality" +msgstr ":pep:`485` -- Une fonction pour tester des égalités approximées" + +#: ../Doc/library/cmath.rst:244 +msgid "Constants" +msgstr "Constantes" + +#: ../Doc/library/cmath.rst:248 +msgid "The mathematical constant *π*, as a float." +msgstr "La constante mathématique *π*, en tant que flottant." + +#: ../Doc/library/cmath.rst:253 +msgid "The mathematical constant *e*, as a float." +msgstr "La constante mathématique *e*, en tant que flottant." + +#: ../Doc/library/cmath.rst:258 +msgid "The mathematical constant *τ*, as a float." +msgstr "La constante mathématique *τ*, sous forme de flottant." + +#: ../Doc/library/cmath.rst:265 +msgid "Floating-point positive infinity. Equivalent to ``float('inf')``." +msgstr "" +"Nombre à virgule flottante positif infini. Équivaut à ``float('inf')``." + +#: ../Doc/library/cmath.rst:272 +msgid "" +"Complex number with zero real part and positive infinity imaginary part. " +"Equivalent to ``complex(0.0, float('inf'))``." +msgstr "" +"Nombre complexe dont la partie réelle vaut zéro et la partie imaginaire un " +"infini positif. Équivalent à ``complex(0.0, float('inf'))``." + +#: ../Doc/library/cmath.rst:280 +msgid "" +"A floating-point \"not a number\" (NaN) value. Equivalent to " +"``float('nan')``." +msgstr "" +"Un nombre à virgule flottante *NaN* (*Not a number*). Équivalent à " +"``float('nan')``." + +#: ../Doc/library/cmath.rst:288 +msgid "" +"Complex number with zero real part and NaN imaginary part. Equivalent to " +"``complex(0.0, float('nan'))``." +msgstr "" +"Nombre complexe dont la partie réelle vaut zéro et la partie imaginaire vaut " +"un *NaN*. Équivalent à ``complex(0.0, float('nan'))``." + +#: ../Doc/library/cmath.rst:296 +msgid "" +"Note that the selection of functions is similar, but not identical, to that " +"in module :mod:`math`. The reason for having two modules is that some users " +"aren't interested in complex numbers, and perhaps don't even know what they " +"are. They would rather have ``math.sqrt(-1)`` raise an exception than " +"return a complex number. Also note that the functions defined in :mod:" +"`cmath` always return a complex number, even if the answer can be expressed " +"as a real number (in which case the complex number has an imaginary part of " +"zero)." +msgstr "" +"Notez que la sélection de fonctions est similaire, mais pas identique, à " +"celles du module :mod:`math`. La raison d'avoir deux modules est que " +"certains utilisateurs ne sont pas intéressés par les nombres complexes, et " +"peut-être ne savent même pas ce qu'ils sont. Ils préféreraient alors que " +"``math.sqrt(-1)`` lève une exception au lieu de renvoyer un nombre complexe. " +"Également, notez que les fonctions définies dans :mod:`cmath` renvoient " +"toujours un nombre complexe, même si le résultat peut être exprimé à l'aide " +"d'un nombre réel (en quel cas la partie imaginaire du complexe vaut zéro)." + +#: ../Doc/library/cmath.rst:304 +msgid "" +"A note on branch cuts: They are curves along which the given function fails " +"to be continuous. They are a necessary feature of many complex functions. " +"It is assumed that if you need to compute with complex functions, you will " +"understand about branch cuts. Consult almost any (not too elementary) book " +"on complex variables for enlightenment. For information of the proper " +"choice of branch cuts for numerical purposes, a good reference should be the " +"following:" +msgstr "" +"Une note sur les *coupures* : ce sont des courbes sur lesquelles la fonction " +"n'est pas continue. Ce sont des caractéristiques nécessaires de beaucoup de " +"fonctions complexes. Il est supposé que si vous avez besoin d'utiliser des " +"fonctions complexes, vous comprendrez ce que sont les coupures. Consultez " +"n'importe quel livre (pas trop élémentaire) sur les variables complexes pour " +"plus d'informations. Pour des informations sur les choix des coupures à des " +"fins numériques, voici une bonne référence :" + +#: ../Doc/library/cmath.rst:314 +msgid "" +"Kahan, W: Branch cuts for complex elementary functions; or, Much ado about " +"nothing's sign bit. In Iserles, A., and Powell, M. (eds.), The state of the " +"art in numerical analysis. Clarendon Press (1987) pp165--211." +msgstr "" +"Kahan, W: Branch cuts for complex elementary functions; or, Much ado about " +"nothing's sign bit. In Iserles, A., and Powell, M. (eds.), The state of the " +"art in numerical analysis. Clarendon Press (1987) pp165--211." + +#~ msgid "Return the exponential value ``e**x``." +#~ msgstr "Renvoie la valeur exponentielle ``e**x``." diff --git a/library/cmd.po b/library/cmd.po new file mode 100644 index 000000000..eda3caa3f --- /dev/null +++ b/library/cmd.po @@ -0,0 +1,445 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-07-29 23:43+0200\n" +"Last-Translator: Luka Peschke \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.3\n" + +#: ../Doc/library/cmd.rst:2 +msgid ":mod:`cmd` --- Support for line-oriented command interpreters" +msgstr ":mod:`cmd` — Interpréteurs en ligne de commande." + +#: ../Doc/library/cmd.rst:9 +msgid "**Source code:** :source:`Lib/cmd.py`" +msgstr "**Code source:** :source:`Lib/cmd.py`" + +#: ../Doc/library/cmd.rst:13 +msgid "" +"The :class:`Cmd` class provides a simple framework for writing line-oriented " +"command interpreters. These are often useful for test harnesses, " +"administrative tools, and prototypes that will later be wrapped in a more " +"sophisticated interface." +msgstr "" +"La :class:`Cmd` fournit une base simple permettant d'écrire des " +"interpréteurs en ligne de commande. Ceux-ci sont souvent utiles pour piloter " +"des tests, pour des outils administratifs, et pour des prototypes destinés à " +"être intégrés à une interface plus sophistiquée." + +#: ../Doc/library/cmd.rst:20 +msgid "" +"A :class:`Cmd` instance or subclass instance is a line-oriented interpreter " +"framework. There is no good reason to instantiate :class:`Cmd` itself; " +"rather, it's useful as a superclass of an interpreter class you define " +"yourself in order to inherit :class:`Cmd`'s methods and encapsulate action " +"methods." +msgstr "" +"Une instance de :class:`Cmd` ou d'une classe en héritant est un *framework* " +"orienté ligne de commande. Il n'y a pas de bonne raison d'instancier :class:" +"`Cmd` directement. Elle est plutôt utile en tant que classe mère d'une " +"classe-interprète que vous définirez afin d'hériter des méthodes de :class:" +"`Cmd` et d'encapsuler les opérations." + +#: ../Doc/library/cmd.rst:25 +msgid "" +"The optional argument *completekey* is the :mod:`readline` name of a " +"completion key; it defaults to :kbd:`Tab`. If *completekey* is not :const:" +"`None` and :mod:`readline` is available, command completion is done " +"automatically." +msgstr "" +"L'argument facultatif *completekey* est le nom :mod:`readline` d'une touche " +"de complétion. Si *completekey* ne vaut pas :const:`None` et que :mod:" +"`readline` est disponible, la complétion de commandes est faite " +"automatiquement." + +#: ../Doc/library/cmd.rst:29 +msgid "" +"The optional arguments *stdin* and *stdout* specify the input and output " +"file objects that the Cmd instance or subclass instance will use for input " +"and output. If not specified, they will default to :data:`sys.stdin` and :" +"data:`sys.stdout`." +msgstr "" +"Les arguments facultatifs *stdin* et *stdout* spécifient les objets-fichiers " +"de lecture et d'écriture que l'instance de Cmd ou d'une classe fille " +"utilisera comme entrée et sortie. Si ces arguments ne sont pas spécifiés, " +"ils prendront comme valeur par défaut :data:`sys.stdin` et :data:`sys." +"stdout`." + +#: ../Doc/library/cmd.rst:34 +msgid "" +"If you want a given *stdin* to be used, make sure to set the instance's :" +"attr:`use_rawinput` attribute to ``False``, otherwise *stdin* will be " +"ignored." +msgstr "" +"Si vous souhaitez qu'un *stdin* donné soit utilisé, assurez-vous que " +"l'attribut :attr:`use_rawinput` de l'instance vaille ``False``, faute de " +"quoi *stdin* sera ignoré." + +#: ../Doc/library/cmd.rst:42 +msgid "Cmd Objects" +msgstr "Objets Cmd" + +#: ../Doc/library/cmd.rst:44 +msgid "A :class:`Cmd` instance has the following methods:" +msgstr "Une instance de :class:`Cmd` possède les méthodes suivantes :" + +#: ../Doc/library/cmd.rst:49 +msgid "" +"Repeatedly issue a prompt, accept input, parse an initial prefix off the " +"received input, and dispatch to action methods, passing them the remainder " +"of the line as argument." +msgstr "" +"Affiche une invite de commande de manière répétée, accepte une entrée, " +"soustrait un préfixe initial de l'entrée reçue et envoie aux méthodes " +"d'opération la partie restante de l'entrée reçue." + +#: ../Doc/library/cmd.rst:53 +msgid "" +"The optional argument is a banner or intro string to be issued before the " +"first prompt (this overrides the :attr:`intro` class attribute)." +msgstr "" +"L'argument facultatif est une bannière ou chaîne de caractères " +"d'introduction à afficher avant la première invite de commande (il redéfinit " +"l'attribut de classe :attr:`intro`)." + +#: ../Doc/library/cmd.rst:56 +msgid "" +"If the :mod:`readline` module is loaded, input will automatically inherit :" +"program:`bash`\\ -like history-list editing (e.g. :kbd:`Control-P` scrolls " +"back to the last command, :kbd:`Control-N` forward to the next one, :kbd:" +"`Control-F` moves the cursor to the right non-destructively, :kbd:`Control-" +"B` moves the cursor to the left non-destructively, etc.)." +msgstr "" +"Si le module :mod:`readline` est chargé, l'entrée héritera automatiquement " +"d'une édition d'historique similaire à :program:`bash` (Par exemple, :kbd:" +"`Control-P` reviendra à la dernière commande, :kbd:`Control-N` avancera à la " +"suivante, :kbd:`Control-F` déplace le curseur vers la droite, :kbd:`Control-" +"B` déplace le curseur vers la gauche, etc...)." + +#: ../Doc/library/cmd.rst:62 +msgid "An end-of-file on input is passed back as the string ``'EOF'``." +msgstr "" +"Une caractère de fin de fichier est transmis via la chaîne de caractères " +"``'EOF'``." + +#: ../Doc/library/cmd.rst:68 +msgid "" +"An interpreter instance will recognize a command name ``foo`` if and only if " +"it has a method :meth:`do_foo`. As a special case, a line beginning with " +"the character ``'?'`` is dispatched to the method :meth:`do_help`. As " +"another special case, a line beginning with the character ``'!'`` is " +"dispatched to the method :meth:`do_shell` (if such a method is defined)." +msgstr "" +"Une instance d'un interpréteur reconnaîtra un nom de commande ``foo`` si et " +"seulement si celle-ci possède une méthode :meth:`do_foo`. Les lignes " +"commençant par le caractère ``'?'`` sont un cas particulier: elles sont " +"envoyées à la méthode :meth:`do_help`. Les lignes commençant par le " +"caractère ``'!'`` sont également un cas particulier: elles sont envoyées à " +"la méthode :meth:`do_shell` (si une telle méthode est définie)." + +#: ../Doc/library/cmd.rst:74 +msgid "" +"This method will return when the :meth:`postcmd` method returns a true " +"value. The *stop* argument to :meth:`postcmd` is the return value from the " +"command's corresponding :meth:`do_\\*` method." +msgstr "" +"Cette méthode ne s'arrêtera que lorsque :meth:`postcmd` renverra une valeur " +"vraie. L'argument *stop* de :meth:`postcmd` est la valeur de retour de la " +"méthode :meth:`do_\\*` correspondant à la commande." + +#: ../Doc/library/cmd.rst:78 +msgid "" +"If completion is enabled, completing commands will be done automatically, " +"and completing of commands args is done by calling :meth:`complete_foo` with " +"arguments *text*, *line*, *begidx*, and *endidx*. *text* is the string " +"prefix we are attempting to match: all returned matches must begin with it. " +"*line* is the current input line with leading whitespace removed, *begidx* " +"and *endidx* are the beginning and ending indexes of the prefix text, which " +"could be used to provide different completion depending upon which position " +"the argument is in." +msgstr "" +"Si la complétion est activée, la complétion de commandes sera faite " +"automatiquement; et la complétion d'arguments sera faite en appelant :meth:" +"`complete_foo` avec les arguments *text*, *line*, *begidx*, et *endidx*. " +"*text* est le préfixe que nous cherchons à faire coïncider: toutes les " +"valeurs renvoyées doivent commencer par ce préfixe. *line* est la ligne " +"d'entrée actuelle sans les espaces blancs de début. *begidx* et *endidx* " +"sont les index de début et de fin du préfixe, ils pourraient être utilisés " +"pour fournir différentes complétions en fonction de la position de " +"l'argument." + +#: ../Doc/library/cmd.rst:86 +msgid "" +"All subclasses of :class:`Cmd` inherit a predefined :meth:`do_help`. This " +"method, called with an argument ``'bar'``, invokes the corresponding method :" +"meth:`help_bar`, and if that is not present, prints the docstring of :meth:" +"`do_bar`, if available. With no argument, :meth:`do_help` lists all " +"available help topics (that is, all commands with corresponding :meth:`help_" +"\\*` methods or commands that have docstrings), and also lists any " +"undocumented commands." +msgstr "" +"Toutes les classes filles de :class:`Cmd` héritent d'une méthode :meth:" +"`do_help` prédéfinie. Cette méthode appellera la méthode :meth:`help_bar` " +"lorsqu'elle est appelée avec un argument ``'bar'``. Si celle-ci n'est pas " +"définie, elle affichera la *docstring* de :meth:`do_bar`, (si elle a une " +"*docstring*). Sans argument, :meth:`do_help` listera tous les sujets d'aide " +"(c'est à dire, toutes les commandes avec une méthode :meth:`help_\\\\*` " +"correspondante ou commande ayant une *docstring*, elle lisera aussi les " +"commandes non documentées." + +#: ../Doc/library/cmd.rst:97 +msgid "" +"Interpret the argument as though it had been typed in response to the " +"prompt. This may be overridden, but should not normally need to be; see the :" +"meth:`precmd` and :meth:`postcmd` methods for useful execution hooks. The " +"return value is a flag indicating whether interpretation of commands by the " +"interpreter should stop. If there is a :meth:`do_\\*` method for the " +"command *str*, the return value of that method is returned, otherwise the " +"return value from the :meth:`default` method is returned." +msgstr "" +"Interprète l'argument comme si il avait été entré en réponse à l'invite de " +"commande. Cette méthode peut être surchargée, mais ne devrait normalement " +"pas avoir besoin de l'être; voir les méthodes :meth:`precmd` et :meth:" +"`postcmd` pour altérer l'exécution d'une commande. La valeur de retour est " +"un *flag* indiquant si l'interprétation de commandes par l'interpréteur " +"devrait arrêter. S'il existe une méthode :meth:`do_\\*` pour la commande " +"*str*, la valeur de retour de cette méthode est renvoyée. Dans le cas " +"contraire, la valeur de retour de la méthode :meth:`default` est renvoyée." + +#: ../Doc/library/cmd.rst:108 +msgid "" +"Method called when an empty line is entered in response to the prompt. If " +"this method is not overridden, it repeats the last nonempty command entered." +msgstr "" +"Méthode appelée quand une ligne vide est entrée en réponse à l'invite de " +"commande. Si cette méthode n'est pas surchargée, elle répète la dernière " +"commande non-vide entrée." + +#: ../Doc/library/cmd.rst:114 +msgid "" +"Method called on an input line when the command prefix is not recognized. If " +"this method is not overridden, it prints an error message and returns." +msgstr "" +"Méthode appelée lorsque le préfixe de commande d'une ligne entrée n'est pas " +"reconnu. Si cette méthode n'est pas surchargée, elle affiche un message " +"d'erreur et s'arrête." + +#: ../Doc/library/cmd.rst:120 +msgid "" +"Method called to complete an input line when no command-specific :meth:" +"`complete_\\*` method is available. By default, it returns an empty list." +msgstr "" +"Méthode appelée pour compléter une ligne entrée quand aucune méthode :meth:" +"`complete_\\*` spécifique à la commande n'est disponible. Par défaut, elle " +"renvoie une liste vide." + +#: ../Doc/library/cmd.rst:126 +msgid "" +"Hook method executed just before the command line *line* is interpreted, but " +"after the input prompt is generated and issued. This method is a stub in :" +"class:`Cmd`; it exists to be overridden by subclasses. The return value is " +"used as the command which will be executed by the :meth:`onecmd` method; " +"the :meth:`precmd` implementation may re-write the command or simply return " +"*line* unchanged." +msgstr "" +"Méthode de rappel exécutée juste avant que la ligne de commande *line* ne " +"soit interprétée, mais après que l'invite de commande ait été généré et " +"affiché. Cette méthode existe afin d'être surchargée par des classes filles " +"de :class:`Cmd`. La valeur de retour est utilisée comme la commande qui sera " +"exécutée par la méthode :meth:`onecmd`. L'implémentation de :meth:`precmd` " +"peut réécrire la commande ou simplement renvoyer *line* sans modification." + +#: ../Doc/library/cmd.rst:136 +msgid "" +"Hook method executed just after a command dispatch is finished. This method " +"is a stub in :class:`Cmd`; it exists to be overridden by subclasses. *line* " +"is the command line which was executed, and *stop* is a flag which indicates " +"whether execution will be terminated after the call to :meth:`postcmd`; this " +"will be the return value of the :meth:`onecmd` method. The return value of " +"this method will be used as the new value for the internal flag which " +"corresponds to *stop*; returning false will cause interpretation to continue." +msgstr "" +"Méthode de rappel exécutée juste après qu'une commande ait été exécutée. " +"Cette méthode existe afin d'être surchargée par des classes filles de :class:" +"`Cmd`. *line est la ligne de commande ayant été exécutée et *stop* est un " +"*flag* indiquant si l'exécution sera terminée après un appel à :meth:" +"`postcmd`. *stop* sera la valeur de retour de :meth:`onecmd`. La valeur de " +"retour de cette méthode sera utilisée comme nouvelle valeur pour le *flag* " +"interne correspondant à *stop*. Renvoyer *False* permettra à " +"l'interprétation de continuer." + +#: ../Doc/library/cmd.rst:147 +msgid "" +"Hook method executed once when :meth:`cmdloop` is called. This method is a " +"stub in :class:`Cmd`; it exists to be overridden by subclasses." +msgstr "" +"Méthode de rappel exécutée une fois lorsque :meth:`cmdloop` est appelée. " +"Cette méthode existe afin d'être surchargée par des classes filles de :class:" +"`Cmd`." + +#: ../Doc/library/cmd.rst:153 +msgid "" +"Hook method executed once when :meth:`cmdloop` is about to return. This " +"method is a stub in :class:`Cmd`; it exists to be overridden by subclasses." +msgstr "" +"Méthode de rappel exécutée une fois lorsque :meth:`cmdloop` va s'arrêter. " +"Cette méthode existe afin d'être surchargée par des classes filles de :class:" +"`Cmd`." + +#: ../Doc/library/cmd.rst:157 +msgid "" +"Instances of :class:`Cmd` subclasses have some public instance variables:" +msgstr "" +"Les instances de classes filles de :class:`Cmd` possèdent des variables " +"d'instance publiques:" + +#: ../Doc/library/cmd.rst:161 +msgid "The prompt issued to solicit input." +msgstr "L'invite de commande affiché pour solliciter une entrée." + +#: ../Doc/library/cmd.rst:166 +msgid "The string of characters accepted for the command prefix." +msgstr "La chaîne de caractères acceptée en tant que préfixe de commande." + +#: ../Doc/library/cmd.rst:171 +msgid "The last nonempty command prefix seen." +msgstr "Le dernier préfixe de commande non-vide vu." + +#: ../Doc/library/cmd.rst:176 +msgid "" +"A list of queued input lines. The cmdqueue list is checked in :meth:" +"`cmdloop` when new input is needed; if it is nonempty, its elements will be " +"processed in order, as if entered at the prompt." +msgstr "" +"Une liste de lignes entrées en file. La liste *cmdqueue* est vérifiée dans :" +"meth:`cmdloop` lorsqu'une nouvelle entrée est nécessitée; si elle n'est pas " +"vide, ses éléments seront traités dans l'ordre, comme si ils avaient entrés " +"dans l'invite de commande." + +#: ../Doc/library/cmd.rst:183 +msgid "" +"A string to issue as an intro or banner. May be overridden by giving the :" +"meth:`cmdloop` method an argument." +msgstr "" +"Une chaîne de caractères à afficher en introduction ou bannière. Peut être " +"surchargée en passant un argument à la méthode :meth:`cmdloop`." + +#: ../Doc/library/cmd.rst:189 +msgid "" +"The header to issue if the help output has a section for documented commands." +msgstr "" +"L'en-tête à afficher si la sortie de l'aide possède une section pour les " +"commandes documentées." + +#: ../Doc/library/cmd.rst:194 +msgid "" +"The header to issue if the help output has a section for miscellaneous help " +"topics (that is, there are :meth:`help_\\*` methods without corresponding :" +"meth:`do_\\*` methods)." +msgstr "" +"L'en-tête à afficher si la sortie de l'aide possède une section pour divers " +"sujets (c'est-à-dire qu'il existe des méthodes :meth:`help_\\*` sans " +"méthodes :meth:`do_\\*` correspondantes)." + +#: ../Doc/library/cmd.rst:201 +msgid "" +"The header to issue if the help output has a section for undocumented " +"commands (that is, there are :meth:`do_\\*` methods without corresponding :" +"meth:`help_\\*` methods)." +msgstr "" +"L'en-tête à afficher si la sortie de l'aide possède une section pour les " +"commandes non documentées (c'est-à-dire qu'il existe des méthodes :meth:`dop_" +"\\*` sans méthodes :meth:`help_\\*` correspondantes)." + +#: ../Doc/library/cmd.rst:208 +msgid "" +"The character used to draw separator lines under the help-message headers. " +"If empty, no ruler line is drawn. It defaults to ``'='``." +msgstr "" +"Le caractère utilisé pour afficher des lignes de séparation sous les en-" +"têtes de messages d'aide. Si il est vide, aucune ligne de séparation n'est " +"affichée. Par défaut, ce caractère vaut ``'='``." + +#: ../Doc/library/cmd.rst:214 +msgid "" +"A flag, defaulting to true. If true, :meth:`cmdloop` uses :func:`input` to " +"display a prompt and read the next command; if false, :meth:`sys.stdout." +"write` and :meth:`sys.stdin.readline` are used. (This means that by " +"importing :mod:`readline`, on systems that support it, the interpreter will " +"automatically support :program:`Emacs`\\ -like line editing and command-" +"history keystrokes.)" +msgstr "" +"Un *flag*, valant *True* par défaut. Si ce *flag* est vrai, :meth:`cmdloop` " +"utilise :func:`input` pour afficher une invite de commande et lire la " +"prochaine commande; si il est faux, :meth:`sys.stdout.write` et :meth:`sys." +"stdin.readline` sont utilisées. (Cela signifie qu'en important :mod:" +"`readline` sur les systèmes qui le supportent, l'interpréteur va " +"automatiquement supporter une édition de ligne similaire à :program:`Emacs` " +"ainsi que des touches d'historique de commande)." + +#: ../Doc/library/cmd.rst:224 +msgid "Cmd Example" +msgstr "Exemple" + +#: ../Doc/library/cmd.rst:228 +msgid "" +"The :mod:`cmd` module is mainly useful for building custom shells that let a " +"user work with a program interactively." +msgstr "" +"Le module :mod:`cmd` est utile pour produire des invites de commande " +"permettant à l'utilisateur de travailler avec un programme de manière " +"interactive." + +#: ../Doc/library/cmd.rst:231 +msgid "" +"This section presents a simple example of how to build a shell around a few " +"of the commands in the :mod:`turtle` module." +msgstr "" +"Cette section présente un exemple simple de comment produire une invite de " +"commande autour de quelques commandes du module :mod:`turtle`." + +#: ../Doc/library/cmd.rst:234 +msgid "" +"Basic turtle commands such as :meth:`~turtle.forward` are added to a :class:" +"`Cmd` subclass with method named :meth:`do_forward`. The argument is " +"converted to a number and dispatched to the turtle module. The docstring is " +"used in the help utility provided by the shell." +msgstr "" +"Des commandes *turtle* basiques telles que :meth:`~turtle.forward` sont " +"ajoutées à une classe fille de :class:`Cmd` avec la méthode appelée :meth:" +"`do_forward`. L'argument est converti en nombre et envoyé au module " +"*turtle*. La *docstring* est utilisée dans l'utilitaire d'aide fourni par " +"l'invite de commande." + +#: ../Doc/library/cmd.rst:239 +msgid "" +"The example also includes a basic record and playback facility implemented " +"with the :meth:`~Cmd.precmd` method which is responsible for converting the " +"input to lowercase and writing the commands to a file. The :meth:" +"`do_playback` method reads the file and adds the recorded commands to the :" +"attr:`cmdqueue` for immediate playback::" +msgstr "" +"L'exemple inclut également un utilitaire d'enregistrement et de *playback* " +"implémenté avec la méthode :meth:`~Cmd.precmd`, qui est responsable du " +"passage de l'entrée en minuscules ainsi que d'écrire les commandes dans un " +"fichier. La méthode :meth:`do_playback` lit le fichier et ajoute les " +"commandes enregistrées à :attr:`cmdqueue` pour être rejouées immédiatement ::" + +#: ../Doc/library/cmd.rst:320 +msgid "" +"Here is a sample session with the turtle shell showing the help functions, " +"using blank lines to repeat commands, and the simple record and playback " +"facility:" +msgstr "" +"Voici une session d'exemple avec l'invite de commande *turtle*. Elle montre " +"les fonctions d'aide, utilise les lignes vides pour répéter des commandes et " +"montre l'utilitaire de *playback*:" diff --git a/library/code.po b/library/code.po new file mode 100644 index 000000000..bd5c28dd1 --- /dev/null +++ b/library/code.po @@ -0,0 +1,233 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/code.rst:2 +msgid ":mod:`code` --- Interpreter base classes" +msgstr "" + +#: ../Doc/library/code.rst:7 +msgid "**Source code:** :source:`Lib/code.py`" +msgstr "**Code source :** :source:`Lib/code.py`" + +#: ../Doc/library/code.rst:11 +msgid "" +"The ``code`` module provides facilities to implement read-eval-print loops " +"in Python. Two classes and convenience functions are included which can be " +"used to build applications which provide an interactive interpreter prompt." +msgstr "" + +#: ../Doc/library/code.rst:18 +msgid "" +"This class deals with parsing and interpreter state (the user's namespace); " +"it does not deal with input buffering or prompting or input file naming (the " +"filename is always passed in explicitly). The optional *locals* argument " +"specifies the dictionary in which code will be executed; it defaults to a " +"newly created dictionary with key ``'__name__'`` set to ``'__console__'`` " +"and key ``'__doc__'`` set to ``None``." +msgstr "" + +#: ../Doc/library/code.rst:28 +msgid "" +"Closely emulate the behavior of the interactive Python interpreter. This " +"class builds on :class:`InteractiveInterpreter` and adds prompting using the " +"familiar ``sys.ps1`` and ``sys.ps2``, and input buffering." +msgstr "" + +#: ../Doc/library/code.rst:35 +msgid "" +"Convenience function to run a read-eval-print loop. This creates a new " +"instance of :class:`InteractiveConsole` and sets *readfunc* to be used as " +"the :meth:`InteractiveConsole.raw_input` method, if provided. If *local* is " +"provided, it is passed to the :class:`InteractiveConsole` constructor for " +"use as the default namespace for the interpreter loop. The :meth:`interact` " +"method of the instance is then run with *banner* and *exitmsg* passed as the " +"banner and exit message to use, if provided. The console object is " +"discarded after use." +msgstr "" + +#: ../Doc/library/code.rst:44 +msgid "Added *exitmsg* parameter." +msgstr "" + +#: ../Doc/library/code.rst:50 +msgid "" +"This function is useful for programs that want to emulate Python's " +"interpreter main loop (a.k.a. the read-eval-print loop). The tricky part is " +"to determine when the user has entered an incomplete command that can be " +"completed by entering more text (as opposed to a complete command or a " +"syntax error). This function *almost* always makes the same decision as the " +"real interpreter main loop." +msgstr "" + +#: ../Doc/library/code.rst:57 +msgid "" +"*source* is the source string; *filename* is the optional filename from " +"which source was read, defaulting to ``''``; and *symbol* is the " +"optional grammar start symbol, which should be either ``'single'`` (the " +"default) or ``'eval'``." +msgstr "" + +#: ../Doc/library/code.rst:62 +msgid "" +"Returns a code object (the same as ``compile(source, filename, symbol)``) if " +"the command is complete and valid; ``None`` if the command is incomplete; " +"raises :exc:`SyntaxError` if the command is complete and contains a syntax " +"error, or raises :exc:`OverflowError` or :exc:`ValueError` if the command " +"contains an invalid literal." +msgstr "" + +#: ../Doc/library/code.rst:72 +msgid "Interactive Interpreter Objects" +msgstr "" + +#: ../Doc/library/code.rst:77 +msgid "" +"Compile and run some source in the interpreter. Arguments are the same as " +"for :func:`compile_command`; the default for *filename* is ``''``, " +"and for *symbol* is ``'single'``. One several things can happen:" +msgstr "" + +#: ../Doc/library/code.rst:81 +msgid "" +"The input is incorrect; :func:`compile_command` raised an exception (:exc:" +"`SyntaxError` or :exc:`OverflowError`). A syntax traceback will be printed " +"by calling the :meth:`showsyntaxerror` method. :meth:`runsource` returns " +"``False``." +msgstr "" + +#: ../Doc/library/code.rst:86 +msgid "" +"The input is incomplete, and more input is required; :func:`compile_command` " +"returned ``None``. :meth:`runsource` returns ``True``." +msgstr "" + +#: ../Doc/library/code.rst:89 +msgid "" +"The input is complete; :func:`compile_command` returned a code object. The " +"code is executed by calling the :meth:`runcode` (which also handles run-time " +"exceptions, except for :exc:`SystemExit`). :meth:`runsource` returns " +"``False``." +msgstr "" + +#: ../Doc/library/code.rst:93 +msgid "" +"The return value can be used to decide whether to use ``sys.ps1`` or ``sys." +"ps2`` to prompt the next line." +msgstr "" + +#: ../Doc/library/code.rst:99 +msgid "" +"Execute a code object. When an exception occurs, :meth:`showtraceback` is " +"called to display a traceback. All exceptions are caught except :exc:" +"`SystemExit`, which is allowed to propagate." +msgstr "" + +#: ../Doc/library/code.rst:103 +msgid "" +"A note about :exc:`KeyboardInterrupt`: this exception may occur elsewhere in " +"this code, and may not always be caught. The caller should be prepared to " +"deal with it." +msgstr "" + +#: ../Doc/library/code.rst:110 +msgid "" +"Display the syntax error that just occurred. This does not display a stack " +"trace because there isn't one for syntax errors. If *filename* is given, it " +"is stuffed into the exception instead of the default filename provided by " +"Python's parser, because it always uses ``''`` when reading from a " +"string. The output is written by the :meth:`write` method." +msgstr "" + +#: ../Doc/library/code.rst:119 +msgid "" +"Display the exception that just occurred. We remove the first stack item " +"because it is within the interpreter object implementation. The output is " +"written by the :meth:`write` method." +msgstr "" + +#: ../Doc/library/code.rst:123 +msgid "" +"The full chained traceback is displayed instead of just the primary " +"traceback." +msgstr "" + +#: ../Doc/library/code.rst:129 +msgid "" +"Write a string to the standard error stream (``sys.stderr``). Derived " +"classes should override this to provide the appropriate output handling as " +"needed." +msgstr "" + +#: ../Doc/library/code.rst:136 +msgid "Interactive Console Objects" +msgstr "" + +#: ../Doc/library/code.rst:138 +msgid "" +"The :class:`InteractiveConsole` class is a subclass of :class:" +"`InteractiveInterpreter`, and so offers all the methods of the interpreter " +"objects as well as the following additions." +msgstr "" + +#: ../Doc/library/code.rst:145 +msgid "" +"Closely emulate the interactive Python console. The optional *banner* " +"argument specify the banner to print before the first interaction; by " +"default it prints a banner similar to the one printed by the standard Python " +"interpreter, followed by the class name of the console object in parentheses " +"(so as not to confuse this with the real interpreter -- since it's so " +"close!)." +msgstr "" + +#: ../Doc/library/code.rst:151 +msgid "" +"The optional *exitmsg* argument specifies an exit message printed when " +"exiting. Pass the empty string to suppress the exit message. If *exitmsg* is " +"not given or ``None``, a default message is printed." +msgstr "" + +#: ../Doc/library/code.rst:155 +msgid "To suppress printing any banner, pass an empty string." +msgstr "" + +#: ../Doc/library/code.rst:158 +msgid "Print an exit message when exiting." +msgstr "" + +#: ../Doc/library/code.rst:164 +msgid "" +"Push a line of source text to the interpreter. The line should not have a " +"trailing newline; it may have internal newlines. The line is appended to a " +"buffer and the interpreter's :meth:`runsource` method is called with the " +"concatenated contents of the buffer as source. If this indicates that the " +"command was executed or invalid, the buffer is reset; otherwise, the command " +"is incomplete, and the buffer is left as it was after the line was " +"appended. The return value is ``True`` if more input is required, ``False`` " +"if the line was dealt with in some way (this is the same as :meth:" +"`runsource`)." +msgstr "" + +#: ../Doc/library/code.rst:176 +msgid "Remove any unhandled source text from the input buffer." +msgstr "" + +#: ../Doc/library/code.rst:181 +msgid "" +"Write a prompt and read a line. The returned line does not include the " +"trailing newline. When the user enters the EOF key sequence, :exc:" +"`EOFError` is raised. The base implementation reads from ``sys.stdin``; a " +"subclass may replace this with a different implementation." +msgstr "" diff --git a/library/codecs.po b/library/codecs.po new file mode 100644 index 000000000..7ae3c2e82 --- /dev/null +++ b/library/codecs.po @@ -0,0 +1,2811 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-11-29 21:18+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/codecs.rst:2 +msgid ":mod:`codecs` --- Codec registry and base classes" +msgstr ":mod:`codecs` — Registre des codecs et classes de base associées" + +#: ../Doc/library/codecs.rst:11 +msgid "**Source code:** :source:`Lib/codecs.py`" +msgstr "**Code source :** :source:`Lib/codecs.py`" + +#: ../Doc/library/codecs.rst:23 +msgid "" +"This module defines base classes for standard Python codecs (encoders and " +"decoders) and provides access to the internal Python codec registry, which " +"manages the codec and error handling lookup process. Most standard codecs " +"are :term:`text encodings `, which encode text to bytes, but " +"there are also codecs provided that encode text to text, and bytes to bytes. " +"Custom codecs may encode and decode between arbitrary types, but some module " +"features are restricted to use specifically with :term:`text encodings `, or with codecs that encode to :class:`bytes`." +msgstr "" +"Ce module définit les classes de base pour les codecs (encodeurs et " +"décodeurs) standards Python et fournit l'interface avec le registre des " +"codecs internes à Python, qui gère le processus de recherche de codecs et de " +"gestion des erreurs. La plupart des codecs sont des :term:`encodeurs de " +"texte `, qui encode du texte vers des séquences d'octets " +"(type *bytes* de Python) mais il existe aussi des codecs qui encodent du " +"texte vers du texte et des *bytes* vers des *bytes*. Les codecs " +"personnalisés peuvent encoder et décoder des types arbitraires, mais " +"l'utilisation de certaines fonctionnalités du module est restreinte aux :" +"term:`encodeurs de texte ` ou aux codecs qui encodent vers :" +"class:`bytes`." + +#: ../Doc/library/codecs.rst:33 +msgid "" +"The module defines the following functions for encoding and decoding with " +"any codec:" +msgstr "" +"Le module définit les fonctions suivantes pour encoder et décoder à l'aide " +"de n'importe quel codec :" + +#: ../Doc/library/codecs.rst:38 +msgid "Encodes *obj* using the codec registered for *encoding*." +msgstr "Encode *obj* en utilisant le codec enregistré pour *encoding*." + +#: ../Doc/library/codecs.rst:40 +msgid "" +"*Errors* may be given to set the desired error handling scheme. The default " +"error handler is ``'strict'`` meaning that encoding errors raise :exc:" +"`ValueError` (or a more codec specific subclass, such as :exc:" +"`UnicodeEncodeError`). Refer to :ref:`codec-base-classes` for more " +"information on codec error handling." +msgstr "" +"Vous pouvez spécifier *errors* pour définir la façon de gérer les erreurs. " +"Le gestionnaire d'erreurs par défaut est ``'strict'``, ce qui veut dire " +"qu'une erreur lors de l'encodage lève :exc:`ValueError` (ou une sous-classe " +"spécifique du codec, telle que :exc:`UnicodeEncodeError`). Référez-vous aux :" +"ref:`classes de base des codecs ` pour plus " +"d'informations sur la gestion des erreurs par les codecs." + +#: ../Doc/library/codecs.rst:48 +msgid "Decodes *obj* using the codec registered for *encoding*." +msgstr "Décode *obj* en utilisant le codec enregistré pour *encoding*." + +#: ../Doc/library/codecs.rst:50 +msgid "" +"*Errors* may be given to set the desired error handling scheme. The default " +"error handler is ``'strict'`` meaning that decoding errors raise :exc:" +"`ValueError` (or a more codec specific subclass, such as :exc:" +"`UnicodeDecodeError`). Refer to :ref:`codec-base-classes` for more " +"information on codec error handling." +msgstr "" +"Vous pouvez spécifier *errors* pour définir la façon de gérer les erreurs. " +"Le gestionnaire d'erreurs par défaut est ``'strict'``, ce qui veut dire " +"qu'une erreur lors du décodage lève :exc:`ValueError` (ou une sous-classe " +"spécifique du codec, telle que :exc:`UnicodeDecodeError`). Référez-vous aux :" +"ref:`classes de base des codecs ` pour plus " +"d'informations sur la gestion des erreurs par les codecs." + +#: ../Doc/library/codecs.rst:56 +msgid "The full details for each codec can also be looked up directly:" +msgstr "" +"Les détails complets de chaque codec peuvent être examinés directement :" + +#: ../Doc/library/codecs.rst:60 +msgid "" +"Looks up the codec info in the Python codec registry and returns a :class:" +"`CodecInfo` object as defined below." +msgstr "" +"Recherche les informations relatives au codec dans le registre des codecs de " +"Python et renvoie l'objet :class:`CodecInfo` tel que défini ci-dessous." + +#: ../Doc/library/codecs.rst:63 +msgid "" +"Encodings are first looked up in the registry's cache. If not found, the " +"list of registered search functions is scanned. If no :class:`CodecInfo` " +"object is found, a :exc:`LookupError` is raised. Otherwise, the :class:" +"`CodecInfo` object is stored in the cache and returned to the caller." +msgstr "" +"Les encodeurs sont recherchés en priorité dans le cache du registre. S'ils " +"n'y sont pas, la liste des fonctions de recherche enregistrées est passée en " +"revue. Si aucun objet :class:`CodecInfo` n'est trouvé, une :exc:" +"`LookupError` est levée. Sinon, l'objet :class:`CodecInfo` est mis en cache " +"et renvoyé vers l'appelant." + +#: ../Doc/library/codecs.rst:70 +msgid "" +"Codec details when looking up the codec registry. The constructor arguments " +"are stored in attributes of the same name:" +msgstr "" +"Les détails d'un codec trouvé dans le registre des codecs. Les arguments du " +"constructeur sont stockés dans les attributs éponymes :" + +#: ../Doc/library/codecs.rst:76 +msgid "The name of the encoding." +msgstr "Le nom de l'encodeur." + +#: ../Doc/library/codecs.rst:82 +msgid "" +"The stateless encoding and decoding functions. These must be functions or " +"methods which have the same interface as the :meth:`~Codec.encode` and :meth:" +"`~Codec.decode` methods of Codec instances (see :ref:`Codec Interface `). The functions or methods are expected to work in a stateless " +"mode." +msgstr "" +"Les fonctions d'encodage et de décodage. Ces fonctions ou méthodes doivent " +"avoir la même interface que les méthodes :meth:`~Codec.encode` et :meth:" +"`~Codec.decode` des instances de Codec (voir :ref:`Interface des codecs " +"`). Les fonctions et méthodes sont censées fonctionner sans " +"état interne." + +#: ../Doc/library/codecs.rst:92 +msgid "" +"Incremental encoder and decoder classes or factory functions. These have to " +"provide the interface defined by the base classes :class:" +"`IncrementalEncoder` and :class:`IncrementalDecoder`, respectively. " +"Incremental codecs can maintain state." +msgstr "" +"Classes d'encodeurs et de décodeurs incrémentaux ou fonctions usines. Elles " +"doivent avoir respectivement les mêmes interfaces que celles définies par " +"les classes de base :class:`IncrementalEncoder` et :class:" +"`IncrementalDecoder`. Les codecs incrémentaux peuvent conserver des états " +"internes." + +#: ../Doc/library/codecs.rst:101 +msgid "" +"Stream writer and reader classes or factory functions. These have to provide " +"the interface defined by the base classes :class:`StreamWriter` and :class:" +"`StreamReader`, respectively. Stream codecs can maintain state." +msgstr "" +"Classes d'écriture et de lecture de flux ou fonctions usines. Elles doivent " +"avoir les mêmes interfaces que celles définies par les classes de base :" +"class:`StreamWriter` et :class:`StreamReader`, respectivement. Les codecs de " +"flux peuvent conserver un état interne." + +#: ../Doc/library/codecs.rst:106 +msgid "" +"To simplify access to the various codec components, the module provides " +"these additional functions which use :func:`lookup` for the codec lookup:" +msgstr "" +"Pour simplifier l'accès aux différents composants du codec, le module " +"fournit les fonctions supplémentaires suivantes qui utilisent :func:`lookup` " +"pour la recherche du codec :" + +#: ../Doc/library/codecs.rst:111 +msgid "" +"Look up the codec for the given encoding and return its encoder function." +msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa fonction " +"d'encodage." + +#: ../Doc/library/codecs.rst:113 ../Doc/library/codecs.rst:120 +#: ../Doc/library/codecs.rst:146 ../Doc/library/codecs.rst:154 +msgid "Raises a :exc:`LookupError` in case the encoding cannot be found." +msgstr "Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé." + +#: ../Doc/library/codecs.rst:118 +msgid "" +"Look up the codec for the given encoding and return its decoder function." +msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa fonction de " +"décodage." + +#: ../Doc/library/codecs.rst:125 +msgid "" +"Look up the codec for the given encoding and return its incremental encoder " +"class or factory function." +msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe " +"d'encodage incrémental ou la fonction usine." + +#: ../Doc/library/codecs.rst:128 +msgid "" +"Raises a :exc:`LookupError` in case the encoding cannot be found or the " +"codec doesn't support an incremental encoder." +msgstr "" +"Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé ou si " +"le codec ne gère pas l'encodage incrémental." + +#: ../Doc/library/codecs.rst:134 +msgid "" +"Look up the codec for the given encoding and return its incremental decoder " +"class or factory function." +msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe de " +"décodage incrémental ou la fonction usine." + +#: ../Doc/library/codecs.rst:137 +msgid "" +"Raises a :exc:`LookupError` in case the encoding cannot be found or the " +"codec doesn't support an incremental decoder." +msgstr "" +"Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé ou si " +"le codec ne gère pas le décodage incrémental." + +#: ../Doc/library/codecs.rst:143 +msgid "" +"Look up the codec for the given encoding and return its :class:" +"`StreamReader` class or factory function." +msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe :class:" +"`StreamReader` ou la fonction usine." + +#: ../Doc/library/codecs.rst:151 +msgid "" +"Look up the codec for the given encoding and return its :class:" +"`StreamWriter` class or factory function." +msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe :class:" +"`StreamWriter` ou la fonction usine." + +#: ../Doc/library/codecs.rst:156 +msgid "" +"Custom codecs are made available by registering a suitable codec search " +"function:" +msgstr "" +"Les codecs personnalisés sont mis à disposition en enregistrant une fonction " +"de recherche de codecs adaptée :" + +#: ../Doc/library/codecs.rst:161 +msgid "" +"Register a codec search function. Search functions are expected to take one " +"argument, being the encoding name in all lower case letters, and return a :" +"class:`CodecInfo` object. In case a search function cannot find a given " +"encoding, it should return ``None``." +msgstr "" +"Enregistre une fonction de recherche de codec. Il convient qu'une fonction " +"de recherche prenne un argument, le nom de l'encodage écrit en lettres " +"minuscules, et renvoie un objet :class:`CodecInfo`. Si la fonction de " +"recherche ne trouve pas un encodage donné, il convient qu'elle renvoie `` " +"None``." + +#: ../Doc/library/codecs.rst:168 +msgid "" +"Search function registration is not currently reversible, which may cause " +"problems in some cases, such as unit testing or module reloading." +msgstr "" +"l'enregistrement d'une fonction de recherche n'est actuellement pas " +"réversible, ce qui peut entraîner des problèmes dans certains cas, par " +"exemple pour les tests unitaires ou le rechargement de module." + +#: ../Doc/library/codecs.rst:172 +msgid "" +"While the builtin :func:`open` and the associated :mod:`io` module are the " +"recommended approach for working with encoded text files, this module " +"provides additional utility functions and classes that allow the use of a " +"wider range of codecs when working with binary files:" +msgstr "" +"Alors qu'il est recommandé d'utiliser la fonction native :func:`open` et le " +"module associé :mod:`io` pour travailler avec des fichiers texte encodés, le " +"présent module fournit des fonctions et classes utilitaires supplémentaires " +"qui permettent l'utilisation d'une plus large gamme de codecs si vous " +"travaillez avec des fichiers binaires :" + +#: ../Doc/library/codecs.rst:179 +msgid "" +"Open an encoded file using the given *mode* and return an instance of :class:" +"`StreamReaderWriter`, providing transparent encoding/decoding. The default " +"file mode is ``'r'``, meaning to open the file in read mode." +msgstr "" +"Ouvre un fichier encodé en utilisant le *mode* donné et renvoie une instance " +"de :class:`StreamReaderWriter`, permettant un encodage-décodage transparent. " +"Le mode de fichier par défaut est ``'r'``, ce qui signifie que le fichier " +"est ouvert en lecture." + +#: ../Doc/library/codecs.rst:185 +msgid "" +"Underlying encoded files are always opened in binary mode. No automatic " +"conversion of ``'\\n'`` is done on reading and writing. The *mode* argument " +"may be any binary mode acceptable to the built-in :func:`open` function; the " +"``'b'`` is automatically added." +msgstr "" +"les fichiers encodés sous-jacents sont toujours ouverts en mode binaire. " +"Aucune conversion automatique de ``'\\n'`` n'est effectuée à la lecture ou à " +"l'écriture. L'argument *mode* peut être n'importe quel mode binaire " +"acceptable pour la fonction native :func:`open` ; le ``'b'`` est " +"automatiquement ajouté." + +#: ../Doc/library/codecs.rst:190 +msgid "" +"*encoding* specifies the encoding which is to be used for the file. Any " +"encoding that encodes to and decodes from bytes is allowed, and the data " +"types supported by the file methods depend on the codec used." +msgstr "" +"*encoding* spécifie l'encodage à utiliser pour le fichier. Tout encodage qui " +"encode et décode des octets (type *bytes*) est autorisé et les types de " +"données pris en charge par les méthodes relatives aux fichiers dépendent du " +"codec utilisé." + +#: ../Doc/library/codecs.rst:194 +msgid "" +"*errors* may be given to define the error handling. It defaults to " +"``'strict'`` which causes a :exc:`ValueError` to be raised in case an " +"encoding error occurs." +msgstr "" +"*errors* peut être spécifié pour définir la gestion des erreurs. La valeur " +"par défaut est ``'strict'``, ce qui lève une :exc:`ValueError` en cas " +"d'erreur lors du codage." + +#: ../Doc/library/codecs.rst:197 +msgid "" +"*buffering* has the same meaning as for the built-in :func:`open` function. " +"It defaults to line buffered." +msgstr "" + +#: ../Doc/library/codecs.rst:203 +msgid "" +"Return a :class:`StreamRecoder` instance, a wrapped version of *file* which " +"provides transparent transcoding. The original file is closed when the " +"wrapped version is closed." +msgstr "" +"Renvoie une instance de :class:`StreamRecoder`, version encapsulée de *file* " +"qui fournit un transcodage transparent. Le fichier original est fermé quand " +"la version encapsulée est fermée." + +#: ../Doc/library/codecs.rst:207 +msgid "" +"Data written to the wrapped file is decoded according to the given " +"*data_encoding* and then written to the original file as bytes using " +"*file_encoding*. Bytes read from the original file are decoded according to " +"*file_encoding*, and the result is encoded using *data_encoding*." +msgstr "" +"Les données écrites dans un fichier encapsulant sont décodées en fonction du " +"*data_encoding* spécifié puis écrites vers le fichier original en tant que " +"*bytes* en utilisant *file_encoding*. Les octets lus dans le fichier " +"original sont décodés conformément à *file_encoding* et le résultat est " +"encodé en utilisant *data_encoding*." + +#: ../Doc/library/codecs.rst:213 +msgid "If *file_encoding* is not given, it defaults to *data_encoding*." +msgstr "" +"Si *file_encoding* n'est pas spécifié, la valeur par défaut est " +"*data_encoding*." + +#: ../Doc/library/codecs.rst:215 +msgid "" +"*errors* may be given to define the error handling. It defaults to " +"``'strict'``, which causes :exc:`ValueError` to be raised in case an " +"encoding error occurs." +msgstr "" +"*errors* peut être spécifié pour définir la gestion des erreurs. La valeur " +"par défaut est ``'strict'``, ce qui lève une :exc:`ValueError` en cas " +"d'erreur lors du codage." + +#: ../Doc/library/codecs.rst:222 +msgid "" +"Uses an incremental encoder to iteratively encode the input provided by " +"*iterator*. This function is a :term:`generator`. The *errors* argument (as " +"well as any other keyword argument) is passed through to the incremental " +"encoder." +msgstr "" +"Utilise un encodeur incrémental pour encoder de manière itérative l'entrée " +"fournie par *iterator*. Cette fonction est un :term:`générateur " +"`. L'argument *errors* (ainsi que tout autre argument passé par " +"mot-clé) est transmis à l'encodeur incrémental." + +#: ../Doc/library/codecs.rst:227 +msgid "" +"This function requires that the codec accept text :class:`str` objects to " +"encode. Therefore it does not support bytes-to-bytes encoders such as " +"``base64_codec``." +msgstr "" +"Cette fonction nécessite que le codec accepte les objets texte (classe :" +"class:`str`) en entrée. Par conséquent, il ne prend pas en charge les " +"encodeurs *bytes* vers *bytes* tels que ``base64_codec``." + +#: ../Doc/library/codecs.rst:234 +msgid "" +"Uses an incremental decoder to iteratively decode the input provided by " +"*iterator*. This function is a :term:`generator`. The *errors* argument (as " +"well as any other keyword argument) is passed through to the incremental " +"decoder." +msgstr "" +"Utilise un décodeur incrémental pour décoder de manière itérative l'entrée " +"fournie par *iterator*. Cette fonction est un :term:`générateur`. L'argument " +"*errors* (ainsi que tout autre argument passé par mot-clé) est transmis au " +"décodeur incrémental." + +#: ../Doc/library/codecs.rst:239 +msgid "" +"This function requires that the codec accept :class:`bytes` objects to " +"decode. Therefore it does not support text-to-text encoders such as " +"``rot_13``, although ``rot_13`` may be used equivalently with :func:" +"`iterencode`." +msgstr "" +"Cette fonction requiert que le codec accepte les objets :class:`bytes` en " +"entrée. Par conséquent, elle ne prend pas en charge les encodeurs de texte " +"vers texte tels que ``rot_13``, bien que ``rot_13`` puisse être utilisé de " +"manière équivalente avec :func:`iterencode`." + +#: ../Doc/library/codecs.rst:245 +msgid "" +"The module also provides the following constants which are useful for " +"reading and writing to platform dependent files:" +msgstr "" +"Le module fournit également les constantes suivantes qui sont utiles pour " +"lire et écrire les fichiers dépendants de la plateforme :" + +#: ../Doc/library/codecs.rst:260 +msgid "" +"These constants define various byte sequences, being Unicode byte order " +"marks (BOMs) for several encodings. They are used in UTF-16 and UTF-32 data " +"streams to indicate the byte order used, and in UTF-8 as a Unicode " +"signature. :const:`BOM_UTF16` is either :const:`BOM_UTF16_BE` or :const:" +"`BOM_UTF16_LE` depending on the platform's native byte order, :const:`BOM` " +"is an alias for :const:`BOM_UTF16`, :const:`BOM_LE` for :const:" +"`BOM_UTF16_LE` and :const:`BOM_BE` for :const:`BOM_UTF16_BE`. The others " +"represent the BOM in UTF-8 and UTF-32 encodings." +msgstr "" +"Ces constantes définissent diverses séquences d'octets, les marques d'ordre " +"d'octets (BOM pour *byte order mark* en anglais) Unicode pour plusieurs " +"encodages. Elles sont utilisées dans les flux de données UTF-16 et UTF-32 " +"pour indiquer l'ordre des octets utilisé, et dans UTF-8 comme signature " +"Unicode. :const:`BOM_UTF16` vaut soit :const:`BOM_UTF16_BE`, soit :const:" +"`BOM_UTF16_LE` selon le boutisme natif de la plateforme, :const:`BOM` est un " +"alias pour :const:`BOM_UTF16`, :const:`BOM_LE` pour :const:`BOM_UTF16_LE` " +"et :const:`BOM_BE` pour :const:`BOM_UTF16_BE`. Les autres sont les marques " +"BOM dans les encodages UTF-8 et UTF-32." + +#: ../Doc/library/codecs.rst:274 +msgid "Codec Base Classes" +msgstr "Classes de base de codecs" + +#: ../Doc/library/codecs.rst:276 +msgid "" +"The :mod:`codecs` module defines a set of base classes which define the " +"interfaces for working with codec objects, and can also be used as the basis " +"for custom codec implementations." +msgstr "" +"Le module :mod:`codecs` définit un ensemble de classes de base qui " +"spécifient les interfaces pour travailler avec des objets codecs et qui " +"peuvent également être utilisées comme base pour des implémentations de " +"codecs personnalisés." + +#: ../Doc/library/codecs.rst:280 +msgid "" +"Each codec has to define four interfaces to make it usable as codec in " +"Python: stateless encoder, stateless decoder, stream reader and stream " +"writer. The stream reader and writers typically reuse the stateless encoder/" +"decoder to implement the file protocols. Codec authors also need to define " +"how the codec will handle encoding and decoding errors." +msgstr "" +"Chaque codec doit définir quatre interfaces pour être utilisable comme codec " +"en Python : codeur sans état, décodeur sans état, lecteur de flux et " +"écrivain de flux. Le lecteur et l'écrivain de flux réutilisent généralement " +"l'encodeur-décodeur sans état pour implémenter les protocoles de fichiers. " +"Les auteurs de codecs doivent également définir comment le codec gère les " +"erreurs d'encodage et de décodage." + +#: ../Doc/library/codecs.rst:291 +msgid "Error Handlers" +msgstr "Gestionnaires d'erreurs" + +#: ../Doc/library/codecs.rst:293 +msgid "" +"To simplify and standardize error handling, codecs may implement different " +"error handling schemes by accepting the *errors* string argument. The " +"following string values are defined and implemented by all standard Python " +"codecs:" +msgstr "" + +#: ../Doc/library/codecs.rst:301 ../Doc/library/codecs.rst:324 +#: ../Doc/library/codecs.rst:357 +msgid "Value" +msgstr "Valeur" + +#: ../Doc/library/codecs.rst:301 ../Doc/library/codecs.rst:324 +#: ../Doc/library/codecs.rst:357 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/codecs.rst:303 +msgid "``'strict'``" +msgstr "``'strict'``" + +#: ../Doc/library/codecs.rst:303 +msgid "" +"Raise :exc:`UnicodeError` (or a subclass); this is the default. Implemented " +"in :func:`strict_errors`." +msgstr "" + +#: ../Doc/library/codecs.rst:307 +msgid "``'ignore'``" +msgstr "``'ignore'``" + +#: ../Doc/library/codecs.rst:307 +msgid "" +"Ignore the malformed data and continue without further notice. Implemented " +"in :func:`ignore_errors`." +msgstr "" + +#: ../Doc/library/codecs.rst:312 +msgid "" +"The following error handlers are only applicable to :term:`text encodings " +"`:" +msgstr "" +"Les gestionnaires d'erreurs suivants ne s'appliquent que pour les :term:" +"`encodeurs de texte ` :" + +#: ../Doc/library/codecs.rst:326 +msgid "``'replace'``" +msgstr "``'replace'``" + +#: ../Doc/library/codecs.rst:326 +msgid "" +"Replace with a suitable replacement marker; Python will use the official ``U" +"+FFFD`` REPLACEMENT CHARACTER for the built-in codecs on decoding, and '?' " +"on encoding. Implemented in :func:`replace_errors`." +msgstr "" + +#: ../Doc/library/codecs.rst:333 +msgid "``'xmlcharrefreplace'``" +msgstr "``'xmlcharrefreplace'``" + +#: ../Doc/library/codecs.rst:333 +msgid "" +"Replace with the appropriate XML character reference (only for encoding). " +"Implemented in :func:`xmlcharrefreplace_errors`." +msgstr "" + +#: ../Doc/library/codecs.rst:337 +msgid "``'backslashreplace'``" +msgstr "``'backslashreplace'``" + +#: ../Doc/library/codecs.rst:337 +msgid "" +"Replace with backslashed escape sequences. Implemented in :func:" +"`backslashreplace_errors`." +msgstr "" +"Remplace avec une séquence échappée par des antislashs. Implémenté dans :" +"func:`backslashreplace_errors`." + +#: ../Doc/library/codecs.rst:341 +msgid "``'namereplace'``" +msgstr "``'namereplace'``" + +#: ../Doc/library/codecs.rst:341 +msgid "" +"Replace with ``\\N{...}`` escape sequences (only for encoding). Implemented " +"in :func:`namereplace_errors`." +msgstr "" + +#: ../Doc/library/codecs.rst:345 +msgid "``'surrogateescape'``" +msgstr "``'surrogateescape'``" + +#: ../Doc/library/codecs.rst:345 +msgid "" +"On decoding, replace byte with individual surrogate code ranging from ``U" +"+DC80`` to ``U+DCFF``. This code will then be turned back into the same " +"byte when the ``'surrogateescape'`` error handler is used when encoding the " +"data. (See :pep:`383` for more.)" +msgstr "" + +#: ../Doc/library/codecs.rst:354 +msgid "" +"In addition, the following error handler is specific to the given codecs:" +msgstr "" +"En plus, le gestionnaire d'erreurs suivant est spécifique aux codecs " +"suivants :" + +#: ../Doc/library/codecs.rst:357 +msgid "Codecs" +msgstr "Codecs" + +#: ../Doc/library/codecs.rst:359 +msgid "``'surrogatepass'``" +msgstr "``'surrogatepass'``" + +#: ../Doc/library/codecs.rst:359 +msgid "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" +msgstr "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" + +#: ../Doc/library/codecs.rst:359 +msgid "" +"Allow encoding and decoding of surrogate codes. These codecs normally treat " +"the presence of surrogates as an error." +msgstr "" + +#: ../Doc/library/codecs.rst:364 +msgid "The ``'surrogateescape'`` and ``'surrogatepass'`` error handlers." +msgstr "" +"les gestionnaires d'erreurs ``'surrogateescape'`` et ``'surrogatepass'``." + +#: ../Doc/library/codecs.rst:367 +msgid "" +"The ``'surrogatepass'`` error handlers now works with utf-16\\* and " +"utf-32\\* codecs." +msgstr "" +"le gestionnaire d'erreurs ``'surrogatepass'`` fonctionne maintenant avec les " +"codecs utf-16\\* et utf-32\\*." + +#: ../Doc/library/codecs.rst:370 +msgid "The ``'namereplace'`` error handler." +msgstr "le gestionnaire d'erreurs ``'namereplace'``." + +#: ../Doc/library/codecs.rst:373 +msgid "" +"The ``'backslashreplace'`` error handlers now works with decoding and " +"translating." +msgstr "" +"le gestionnaire d'erreurs ``'backslashreplace'`` fonctionne maintenant pour " +"le décodage et la traduction." + +#: ../Doc/library/codecs.rst:377 +msgid "" +"The set of allowed values can be extended by registering a new named error " +"handler:" +msgstr "" +"L'ensemble des valeurs autorisées peut être étendu en enregistrant un " +"nouveau gestionnaire d'erreurs nommé :" + +#: ../Doc/library/codecs.rst:382 +msgid "" +"Register the error handling function *error_handler* under the name *name*. " +"The *error_handler* argument will be called during encoding and decoding in " +"case of an error, when *name* is specified as the errors parameter." +msgstr "" + +#: ../Doc/library/codecs.rst:386 +msgid "" +"For encoding, *error_handler* will be called with a :exc:" +"`UnicodeEncodeError` instance, which contains information about the location " +"of the error. The error handler must either raise this or a different " +"exception, or return a tuple with a replacement for the unencodable part of " +"the input and a position where encoding should continue. The replacement may " +"be either :class:`str` or :class:`bytes`. If the replacement is bytes, the " +"encoder will simply copy them into the output buffer. If the replacement is " +"a string, the encoder will encode the replacement. Encoding continues on " +"original input at the specified position. Negative position values will be " +"treated as being relative to the end of the input string. If the resulting " +"position is out of bound an :exc:`IndexError` will be raised." +msgstr "" + +#: ../Doc/library/codecs.rst:398 +msgid "" +"Decoding and translating works similarly, except :exc:`UnicodeDecodeError` " +"or :exc:`UnicodeTranslateError` will be passed to the handler and that the " +"replacement from the error handler will be put into the output directly." +msgstr "" + +#: ../Doc/library/codecs.rst:403 +msgid "" +"Previously registered error handlers (including the standard error handlers) " +"can be looked up by name:" +msgstr "" + +#: ../Doc/library/codecs.rst:408 +msgid "Return the error handler previously registered under the name *name*." +msgstr "" + +#: ../Doc/library/codecs.rst:410 +msgid "Raises a :exc:`LookupError` in case the handler cannot be found." +msgstr "" + +#: ../Doc/library/codecs.rst:412 +msgid "" +"The following standard error handlers are also made available as module " +"level functions:" +msgstr "" + +#: ../Doc/library/codecs.rst:417 +msgid "" +"Implements the ``'strict'`` error handling: each encoding or decoding error " +"raises a :exc:`UnicodeError`." +msgstr "" + +#: ../Doc/library/codecs.rst:423 +msgid "" +"Implements the ``'replace'`` error handling (for :term:`text encodings ` only): substitutes ``'?'`` for encoding errors (to be encoded by " +"the codec), and ``'\\ufffd'`` (the Unicode replacement character) for " +"decoding errors." +msgstr "" + +#: ../Doc/library/codecs.rst:431 +msgid "" +"Implements the ``'ignore'`` error handling: malformed data is ignored and " +"encoding or decoding is continued without further notice." +msgstr "" + +#: ../Doc/library/codecs.rst:437 +msgid "" +"Implements the ``'xmlcharrefreplace'`` error handling (for encoding with :" +"term:`text encodings ` only): the unencodable character is " +"replaced by an appropriate XML character reference." +msgstr "" + +#: ../Doc/library/codecs.rst:444 +msgid "" +"Implements the ``'backslashreplace'`` error handling (for :term:`text " +"encodings ` only): malformed data is replaced by a " +"backslashed escape sequence." +msgstr "" + +#: ../Doc/library/codecs.rst:450 +msgid "" +"Implements the ``'namereplace'`` error handling (for encoding with :term:" +"`text encodings ` only): the unencodable character is " +"replaced by a ``\\N{...}`` escape sequence." +msgstr "" + +#: ../Doc/library/codecs.rst:460 +msgid "Stateless Encoding and Decoding" +msgstr "" + +#: ../Doc/library/codecs.rst:462 +msgid "" +"The base :class:`Codec` class defines these methods which also define the " +"function interfaces of the stateless encoder and decoder:" +msgstr "" + +#: ../Doc/library/codecs.rst:468 +msgid "" +"Encodes the object *input* and returns a tuple (output object, length " +"consumed). For instance, :term:`text encoding` converts a string object to a " +"bytes object using a particular character set encoding (e.g., ``cp1252`` or " +"``iso-8859-1``)." +msgstr "" + +#: ../Doc/library/codecs.rst:473 ../Doc/library/codecs.rst:495 +msgid "" +"The *errors* argument defines the error handling to apply. It defaults to " +"``'strict'`` handling." +msgstr "" + +#: ../Doc/library/codecs.rst:476 +msgid "" +"The method may not store state in the :class:`Codec` instance. Use :class:" +"`StreamWriter` for codecs which have to keep state in order to make encoding " +"efficient." +msgstr "" + +#: ../Doc/library/codecs.rst:480 +msgid "" +"The encoder must be able to handle zero length input and return an empty " +"object of the output object type in this situation." +msgstr "" + +#: ../Doc/library/codecs.rst:486 +msgid "" +"Decodes the object *input* and returns a tuple (output object, length " +"consumed). For instance, for a :term:`text encoding`, decoding converts a " +"bytes object encoded using a particular character set encoding to a string " +"object." +msgstr "" + +#: ../Doc/library/codecs.rst:491 +msgid "" +"For text encodings and bytes-to-bytes codecs, *input* must be a bytes object " +"or one which provides the read-only buffer interface -- for example, buffer " +"objects and memory mapped files." +msgstr "" + +#: ../Doc/library/codecs.rst:498 +msgid "" +"The method may not store state in the :class:`Codec` instance. Use :class:" +"`StreamReader` for codecs which have to keep state in order to make decoding " +"efficient." +msgstr "" + +#: ../Doc/library/codecs.rst:502 +msgid "" +"The decoder must be able to handle zero length input and return an empty " +"object of the output object type in this situation." +msgstr "" + +#: ../Doc/library/codecs.rst:507 +msgid "Incremental Encoding and Decoding" +msgstr "" + +#: ../Doc/library/codecs.rst:509 +msgid "" +"The :class:`IncrementalEncoder` and :class:`IncrementalDecoder` classes " +"provide the basic interface for incremental encoding and decoding. Encoding/" +"decoding the input isn't done with one call to the stateless encoder/decoder " +"function, but with multiple calls to the :meth:`~IncrementalEncoder.encode`/:" +"meth:`~IncrementalDecoder.decode` method of the incremental encoder/decoder. " +"The incremental encoder/decoder keeps track of the encoding/decoding process " +"during method calls." +msgstr "" + +#: ../Doc/library/codecs.rst:517 +msgid "" +"The joined output of calls to the :meth:`~IncrementalEncoder.encode`/:meth:" +"`~IncrementalDecoder.decode` method is the same as if all the single inputs " +"were joined into one, and this input was encoded/decoded with the stateless " +"encoder/decoder." +msgstr "" + +#: ../Doc/library/codecs.rst:526 +msgid "IncrementalEncoder Objects" +msgstr "" + +#: ../Doc/library/codecs.rst:528 +msgid "" +"The :class:`IncrementalEncoder` class is used for encoding an input in " +"multiple steps. It defines the following methods which every incremental " +"encoder must define in order to be compatible with the Python codec registry." +msgstr "" + +#: ../Doc/library/codecs.rst:535 +msgid "Constructor for an :class:`IncrementalEncoder` instance." +msgstr "" + +#: ../Doc/library/codecs.rst:537 +msgid "" +"All incremental encoders must provide this constructor interface. They are " +"free to add additional keyword arguments, but only the ones defined here are " +"used by the Python codec registry." +msgstr "" + +#: ../Doc/library/codecs.rst:541 +msgid "" +"The :class:`IncrementalEncoder` may implement different error handling " +"schemes by providing the *errors* keyword argument. See :ref:`error-" +"handlers` for possible values." +msgstr "" + +#: ../Doc/library/codecs.rst:545 +msgid "" +"The *errors* argument will be assigned to an attribute of the same name. " +"Assigning to this attribute makes it possible to switch between different " +"error handling strategies during the lifetime of the :class:" +"`IncrementalEncoder` object." +msgstr "" + +#: ../Doc/library/codecs.rst:553 +msgid "" +"Encodes *object* (taking the current state of the encoder into account) and " +"returns the resulting encoded object. If this is the last call to :meth:" +"`encode` *final* must be true (the default is false)." +msgstr "" + +#: ../Doc/library/codecs.rst:560 +msgid "" +"Reset the encoder to the initial state. The output is discarded: call ``." +"encode(object, final=True)``, passing an empty byte or text string if " +"necessary, to reset the encoder and to get the output." +msgstr "" + +#: ../Doc/library/codecs.rst:567 +msgid "" +"Return the current state of the encoder which must be an integer. The " +"implementation should make sure that ``0`` is the most common state. (States " +"that are more complicated than integers can be converted into an integer by " +"marshaling/pickling the state and encoding the bytes of the resulting string " +"into an integer)." +msgstr "" + +#: ../Doc/library/codecs.rst:576 +msgid "" +"Set the state of the encoder to *state*. *state* must be an encoder state " +"returned by :meth:`getstate`." +msgstr "" + +#: ../Doc/library/codecs.rst:583 +msgid "IncrementalDecoder Objects" +msgstr "" + +#: ../Doc/library/codecs.rst:585 +msgid "" +"The :class:`IncrementalDecoder` class is used for decoding an input in " +"multiple steps. It defines the following methods which every incremental " +"decoder must define in order to be compatible with the Python codec registry." +msgstr "" + +#: ../Doc/library/codecs.rst:592 +msgid "Constructor for an :class:`IncrementalDecoder` instance." +msgstr "" + +#: ../Doc/library/codecs.rst:594 +msgid "" +"All incremental decoders must provide this constructor interface. They are " +"free to add additional keyword arguments, but only the ones defined here are " +"used by the Python codec registry." +msgstr "" + +#: ../Doc/library/codecs.rst:598 +msgid "" +"The :class:`IncrementalDecoder` may implement different error handling " +"schemes by providing the *errors* keyword argument. See :ref:`error-" +"handlers` for possible values." +msgstr "" + +#: ../Doc/library/codecs.rst:602 +msgid "" +"The *errors* argument will be assigned to an attribute of the same name. " +"Assigning to this attribute makes it possible to switch between different " +"error handling strategies during the lifetime of the :class:" +"`IncrementalDecoder` object." +msgstr "" + +#: ../Doc/library/codecs.rst:610 +msgid "" +"Decodes *object* (taking the current state of the decoder into account) and " +"returns the resulting decoded object. If this is the last call to :meth:" +"`decode` *final* must be true (the default is false). If *final* is true the " +"decoder must decode the input completely and must flush all buffers. If this " +"isn't possible (e.g. because of incomplete byte sequences at the end of the " +"input) it must initiate error handling just like in the stateless case " +"(which might raise an exception)." +msgstr "" + +#: ../Doc/library/codecs.rst:621 +msgid "Reset the decoder to the initial state." +msgstr "" + +#: ../Doc/library/codecs.rst:626 +msgid "" +"Return the current state of the decoder. This must be a tuple with two " +"items, the first must be the buffer containing the still undecoded input. " +"The second must be an integer and can be additional state info. (The " +"implementation should make sure that ``0`` is the most common additional " +"state info.) If this additional state info is ``0`` it must be possible to " +"set the decoder to the state which has no input buffered and ``0`` as the " +"additional state info, so that feeding the previously buffered input to the " +"decoder returns it to the previous state without producing any output. " +"(Additional state info that is more complicated than integers can be " +"converted into an integer by marshaling/pickling the info and encoding the " +"bytes of the resulting string into an integer.)" +msgstr "" + +#: ../Doc/library/codecs.rst:641 +msgid "" +"Set the state of the decoder to *state*. *state* must be a decoder state " +"returned by :meth:`getstate`." +msgstr "" + +#: ../Doc/library/codecs.rst:646 +msgid "Stream Encoding and Decoding" +msgstr "" + +#: ../Doc/library/codecs.rst:649 +msgid "" +"The :class:`StreamWriter` and :class:`StreamReader` classes provide generic " +"working interfaces which can be used to implement new encoding submodules " +"very easily. See :mod:`encodings.utf_8` for an example of how this is done." +msgstr "" + +#: ../Doc/library/codecs.rst:657 +msgid "StreamWriter Objects" +msgstr "" + +#: ../Doc/library/codecs.rst:659 +msgid "" +"The :class:`StreamWriter` class is a subclass of :class:`Codec` and defines " +"the following methods which every stream writer must define in order to be " +"compatible with the Python codec registry." +msgstr "" + +#: ../Doc/library/codecs.rst:666 +msgid "Constructor for a :class:`StreamWriter` instance." +msgstr "" + +#: ../Doc/library/codecs.rst:668 +msgid "" +"All stream writers must provide this constructor interface. They are free to " +"add additional keyword arguments, but only the ones defined here are used by " +"the Python codec registry." +msgstr "" + +#: ../Doc/library/codecs.rst:672 +msgid "" +"The *stream* argument must be a file-like object open for writing text or " +"binary data, as appropriate for the specific codec." +msgstr "" + +#: ../Doc/library/codecs.rst:675 +msgid "" +"The :class:`StreamWriter` may implement different error handling schemes by " +"providing the *errors* keyword argument. See :ref:`error-handlers` for the " +"standard error handlers the underlying stream codec may support." +msgstr "" + +#: ../Doc/library/codecs.rst:679 +msgid "" +"The *errors* argument will be assigned to an attribute of the same name. " +"Assigning to this attribute makes it possible to switch between different " +"error handling strategies during the lifetime of the :class:`StreamWriter` " +"object." +msgstr "" + +#: ../Doc/library/codecs.rst:685 +msgid "Writes the object's contents encoded to the stream." +msgstr "" + +#: ../Doc/library/codecs.rst:690 +msgid "" +"Writes the concatenated list of strings to the stream (possibly by reusing " +"the :meth:`write` method). The standard bytes-to-bytes codecs do not support " +"this method." +msgstr "" + +#: ../Doc/library/codecs.rst:697 +msgid "Flushes and resets the codec buffers used for keeping state." +msgstr "" + +#: ../Doc/library/codecs.rst:699 +msgid "" +"Calling this method should ensure that the data on the output is put into a " +"clean state that allows appending of new fresh data without having to rescan " +"the whole stream to recover state." +msgstr "" + +#: ../Doc/library/codecs.rst:704 +msgid "" +"In addition to the above methods, the :class:`StreamWriter` must also " +"inherit all other methods and attributes from the underlying stream." +msgstr "" + +#: ../Doc/library/codecs.rst:711 +msgid "StreamReader Objects" +msgstr "" + +#: ../Doc/library/codecs.rst:713 +msgid "" +"The :class:`StreamReader` class is a subclass of :class:`Codec` and defines " +"the following methods which every stream reader must define in order to be " +"compatible with the Python codec registry." +msgstr "" + +#: ../Doc/library/codecs.rst:720 +msgid "Constructor for a :class:`StreamReader` instance." +msgstr "" + +#: ../Doc/library/codecs.rst:722 +msgid "" +"All stream readers must provide this constructor interface. They are free to " +"add additional keyword arguments, but only the ones defined here are used by " +"the Python codec registry." +msgstr "" + +#: ../Doc/library/codecs.rst:726 +msgid "" +"The *stream* argument must be a file-like object open for reading text or " +"binary data, as appropriate for the specific codec." +msgstr "" + +#: ../Doc/library/codecs.rst:729 +msgid "" +"The :class:`StreamReader` may implement different error handling schemes by " +"providing the *errors* keyword argument. See :ref:`error-handlers` for the " +"standard error handlers the underlying stream codec may support." +msgstr "" + +#: ../Doc/library/codecs.rst:733 +msgid "" +"The *errors* argument will be assigned to an attribute of the same name. " +"Assigning to this attribute makes it possible to switch between different " +"error handling strategies during the lifetime of the :class:`StreamReader` " +"object." +msgstr "" + +#: ../Doc/library/codecs.rst:737 +msgid "" +"The set of allowed values for the *errors* argument can be extended with :" +"func:`register_error`." +msgstr "" + +#: ../Doc/library/codecs.rst:743 +msgid "Decodes data from the stream and returns the resulting object." +msgstr "" + +#: ../Doc/library/codecs.rst:745 +msgid "" +"The *chars* argument indicates the number of decoded code points or bytes to " +"return. The :func:`read` method will never return more data than requested, " +"but it might return less, if there is not enough available." +msgstr "" + +#: ../Doc/library/codecs.rst:750 +msgid "" +"The *size* argument indicates the approximate maximum number of encoded " +"bytes or code points to read for decoding. The decoder can modify this " +"setting as appropriate. The default value -1 indicates to read and decode as " +"much as possible. This parameter is intended to prevent having to decode " +"huge files in one step." +msgstr "" + +#: ../Doc/library/codecs.rst:757 +msgid "" +"The *firstline* flag indicates that it would be sufficient to only return " +"the first line, if there are decoding errors on later lines." +msgstr "" + +#: ../Doc/library/codecs.rst:761 +msgid "" +"The method should use a greedy read strategy meaning that it should read as " +"much data as is allowed within the definition of the encoding and the given " +"size, e.g. if optional encoding endings or state markers are available on " +"the stream, these should be read too." +msgstr "" + +#: ../Doc/library/codecs.rst:769 +msgid "Read one line from the input stream and return the decoded data." +msgstr "" + +#: ../Doc/library/codecs.rst:771 +msgid "" +"*size*, if given, is passed as size argument to the stream's :meth:`read` " +"method." +msgstr "" + +#: ../Doc/library/codecs.rst:774 +msgid "" +"If *keepends* is false line-endings will be stripped from the lines returned." +msgstr "" + +#: ../Doc/library/codecs.rst:780 +msgid "" +"Read all lines available on the input stream and return them as a list of " +"lines." +msgstr "" + +#: ../Doc/library/codecs.rst:783 +msgid "" +"Line-endings are implemented using the codec's decoder method and are " +"included in the list entries if *keepends* is true." +msgstr "" + +#: ../Doc/library/codecs.rst:786 +msgid "" +"*sizehint*, if given, is passed as the *size* argument to the stream's :meth:" +"`read` method." +msgstr "" + +#: ../Doc/library/codecs.rst:792 +msgid "Resets the codec buffers used for keeping state." +msgstr "" + +#: ../Doc/library/codecs.rst:794 +msgid "" +"Note that no stream repositioning should take place. This method is " +"primarily intended to be able to recover from decoding errors." +msgstr "" + +#: ../Doc/library/codecs.rst:798 +msgid "" +"In addition to the above methods, the :class:`StreamReader` must also " +"inherit all other methods and attributes from the underlying stream." +msgstr "" + +#: ../Doc/library/codecs.rst:804 +msgid "StreamReaderWriter Objects" +msgstr "" + +#: ../Doc/library/codecs.rst:806 +msgid "" +"The :class:`StreamReaderWriter` is a convenience class that allows wrapping " +"streams which work in both read and write modes." +msgstr "" + +#: ../Doc/library/codecs.rst:809 ../Doc/library/codecs.rst:833 +msgid "" +"The design is such that one can use the factory functions returned by the :" +"func:`lookup` function to construct the instance." +msgstr "" + +#: ../Doc/library/codecs.rst:815 +msgid "" +"Creates a :class:`StreamReaderWriter` instance. *stream* must be a file-like " +"object. *Reader* and *Writer* must be factory functions or classes providing " +"the :class:`StreamReader` and :class:`StreamWriter` interface resp. Error " +"handling is done in the same way as defined for the stream readers and " +"writers." +msgstr "" + +#: ../Doc/library/codecs.rst:820 +msgid "" +":class:`StreamReaderWriter` instances define the combined interfaces of :" +"class:`StreamReader` and :class:`StreamWriter` classes. They inherit all " +"other methods and attributes from the underlying stream." +msgstr "" + +#: ../Doc/library/codecs.rst:828 +msgid "StreamRecoder Objects" +msgstr "" + +#: ../Doc/library/codecs.rst:830 +msgid "" +"The :class:`StreamRecoder` translates data from one encoding to another, " +"which is sometimes useful when dealing with different encoding environments." +msgstr "" + +#: ../Doc/library/codecs.rst:839 +msgid "" +"Creates a :class:`StreamRecoder` instance which implements a two-way " +"conversion: *encode* and *decode* work on the frontend — the data visible to " +"code calling :meth:`read` and :meth:`write`, while *Reader* and *Writer* " +"work on the backend — the data in *stream*." +msgstr "" + +#: ../Doc/library/codecs.rst:844 +msgid "" +"You can use these objects to do transparent transcodings from e.g. Latin-1 " +"to UTF-8 and back." +msgstr "" + +#: ../Doc/library/codecs.rst:847 +msgid "The *stream* argument must be a file-like object." +msgstr "" + +#: ../Doc/library/codecs.rst:849 +msgid "" +"The *encode* and *decode* arguments must adhere to the :class:`Codec` " +"interface. *Reader* and *Writer* must be factory functions or classes " +"providing objects of the :class:`StreamReader` and :class:`StreamWriter` " +"interface respectively." +msgstr "" + +#: ../Doc/library/codecs.rst:854 +msgid "" +"Error handling is done in the same way as defined for the stream readers and " +"writers." +msgstr "" + +#: ../Doc/library/codecs.rst:858 +msgid "" +":class:`StreamRecoder` instances define the combined interfaces of :class:" +"`StreamReader` and :class:`StreamWriter` classes. They inherit all other " +"methods and attributes from the underlying stream." +msgstr "" + +#: ../Doc/library/codecs.rst:866 +msgid "Encodings and Unicode" +msgstr "" + +#: ../Doc/library/codecs.rst:868 +msgid "" +"Strings are stored internally as sequences of code points in range ``0x0``--" +"``0x10FFFF``. (See :pep:`393` for more details about the implementation.) " +"Once a string object is used outside of CPU and memory, endianness and how " +"these arrays are stored as bytes become an issue. As with other codecs, " +"serialising a string into a sequence of bytes is known as *encoding*, and " +"recreating the string from the sequence of bytes is known as *decoding*. " +"There are a variety of different text serialisation codecs, which are " +"collectivity referred to as :term:`text encodings `." +msgstr "" + +#: ../Doc/library/codecs.rst:878 +msgid "" +"The simplest text encoding (called ``'latin-1'`` or ``'iso-8859-1'``) maps " +"the code points 0--255 to the bytes ``0x0``--``0xff``, which means that a " +"string object that contains code points above ``U+00FF`` can't be encoded " +"with this codec. Doing so will raise a :exc:`UnicodeEncodeError` that looks " +"like the following (although the details of the error message may differ): " +"``UnicodeEncodeError: 'latin-1' codec can't encode character '\\u1234' in " +"position 3: ordinal not in range(256)``." +msgstr "" + +#: ../Doc/library/codecs.rst:886 +msgid "" +"There's another group of encodings (the so called charmap encodings) that " +"choose a different subset of all Unicode code points and how these code " +"points are mapped to the bytes ``0x0``--``0xff``. To see how this is done " +"simply open e.g. :file:`encodings/cp1252.py` (which is an encoding that is " +"used primarily on Windows). There's a string constant with 256 characters " +"that shows you which character is mapped to which byte value." +msgstr "" + +#: ../Doc/library/codecs.rst:893 +msgid "" +"All of these encodings can only encode 256 of the 1114112 code points " +"defined in Unicode. A simple and straightforward way that can store each " +"Unicode code point, is to store each code point as four consecutive bytes. " +"There are two possibilities: store the bytes in big endian or in little " +"endian order. These two encodings are called ``UTF-32-BE`` and ``UTF-32-LE`` " +"respectively. Their disadvantage is that if e.g. you use ``UTF-32-BE`` on a " +"little endian machine you will always have to swap bytes on encoding and " +"decoding. ``UTF-32`` avoids this problem: bytes will always be in natural " +"endianness. When these bytes are read by a CPU with a different endianness, " +"then bytes have to be swapped though. To be able to detect the endianness of " +"a ``UTF-16`` or ``UTF-32`` byte sequence, there's the so called BOM (\"Byte " +"Order Mark\"). This is the Unicode character ``U+FEFF``. This character can " +"be prepended to every ``UTF-16`` or ``UTF-32`` byte sequence. The byte " +"swapped version of this character (``0xFFFE``) is an illegal character that " +"may not appear in a Unicode text. So when the first character in an " +"``UTF-16`` or ``UTF-32`` byte sequence appears to be a ``U+FFFE`` the bytes " +"have to be swapped on decoding. Unfortunately the character ``U+FEFF`` had a " +"second purpose as a ``ZERO WIDTH NO-BREAK SPACE``: a character that has no " +"width and doesn't allow a word to be split. It can e.g. be used to give " +"hints to a ligature algorithm. With Unicode 4.0 using ``U+FEFF`` as a ``ZERO " +"WIDTH NO-BREAK SPACE`` has been deprecated (with ``U+2060`` (``WORD " +"JOINER``) assuming this role). Nevertheless Unicode software still must be " +"able to handle ``U+FEFF`` in both roles: as a BOM it's a device to determine " +"the storage layout of the encoded bytes, and vanishes once the byte sequence " +"has been decoded into a string; as a ``ZERO WIDTH NO-BREAK SPACE`` it's a " +"normal character that will be decoded like any other." +msgstr "" + +#: ../Doc/library/codecs.rst:919 +msgid "" +"There's another encoding that is able to encoding the full range of Unicode " +"characters: UTF-8. UTF-8 is an 8-bit encoding, which means there are no " +"issues with byte order in UTF-8. Each byte in a UTF-8 byte sequence consists " +"of two parts: marker bits (the most significant bits) and payload bits. The " +"marker bits are a sequence of zero to four ``1`` bits followed by a ``0`` " +"bit. Unicode characters are encoded like this (with x being payload bits, " +"which when concatenated give the Unicode character):" +msgstr "" + +#: ../Doc/library/codecs.rst:928 +msgid "Range" +msgstr "*Range*" + +#: ../Doc/library/codecs.rst:928 +msgid "Encoding" +msgstr "" + +#: ../Doc/library/codecs.rst:930 +msgid "``U-00000000`` ... ``U-0000007F``" +msgstr "``U-00000000`` ... ``U-0000007F``" + +#: ../Doc/library/codecs.rst:930 +msgid "0xxxxxxx" +msgstr "0xxxxxxx" + +#: ../Doc/library/codecs.rst:932 +msgid "``U-00000080`` ... ``U-000007FF``" +msgstr "``U-00000080`` ... ``U-000007FF``" + +#: ../Doc/library/codecs.rst:932 +msgid "110xxxxx 10xxxxxx" +msgstr "110xxxxx 10xxxxxx" + +#: ../Doc/library/codecs.rst:934 +msgid "``U-00000800`` ... ``U-0000FFFF``" +msgstr "``U-00000800`` ... ``U-0000FFFF``" + +#: ../Doc/library/codecs.rst:934 +msgid "1110xxxx 10xxxxxx 10xxxxxx" +msgstr "1110xxxx 10xxxxxx 10xxxxxx" + +#: ../Doc/library/codecs.rst:936 +msgid "``U-00010000`` ... ``U-0010FFFF``" +msgstr "``U-00010000`` ... ``U-0010FFFF``" + +#: ../Doc/library/codecs.rst:936 +msgid "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" +msgstr "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" + +#: ../Doc/library/codecs.rst:939 +msgid "" +"The least significant bit of the Unicode character is the rightmost x bit." +msgstr "" + +#: ../Doc/library/codecs.rst:941 +msgid "" +"As UTF-8 is an 8-bit encoding no BOM is required and any ``U+FEFF`` " +"character in the decoded string (even if it's the first character) is " +"treated as a ``ZERO WIDTH NO-BREAK SPACE``." +msgstr "" + +#: ../Doc/library/codecs.rst:945 +msgid "" +"Without external information it's impossible to reliably determine which " +"encoding was used for encoding a string. Each charmap encoding can decode " +"any random byte sequence. However that's not possible with UTF-8, as UTF-8 " +"byte sequences have a structure that doesn't allow arbitrary byte sequences. " +"To increase the reliability with which a UTF-8 encoding can be detected, " +"Microsoft invented a variant of UTF-8 (that Python 2.5 calls ``\"utf-8-sig" +"\"``) for its Notepad program: Before any of the Unicode characters is " +"written to the file, a UTF-8 encoded BOM (which looks like this as a byte " +"sequence: ``0xef``, ``0xbb``, ``0xbf``) is written. As it's rather " +"improbable that any charmap encoded file starts with these byte values " +"(which would e.g. map to" +msgstr "" + +#: ../Doc/library/codecs.rst:0 +msgid "LATIN SMALL LETTER I WITH DIAERESIS" +msgstr "LATIN SMALL LETTER I WITH DIAERESIS" + +#: ../Doc/library/codecs.rst:0 +msgid "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" +msgstr "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" + +#: ../Doc/library/codecs.rst:0 +msgid "INVERTED QUESTION MARK" +msgstr "INVERTED QUESTION MARK" + +#: ../Doc/library/codecs.rst:961 +msgid "" +"in iso-8859-1), this increases the probability that a ``utf-8-sig`` encoding " +"can be correctly guessed from the byte sequence. So here the BOM is not used " +"to be able to determine the byte order used for generating the byte " +"sequence, but as a signature that helps in guessing the encoding. On " +"encoding the utf-8-sig codec will write ``0xef``, ``0xbb``, ``0xbf`` as the " +"first three bytes to the file. On decoding ``utf-8-sig`` will skip those " +"three bytes if they appear as the first three bytes in the file. In UTF-8, " +"the use of the BOM is discouraged and should generally be avoided." +msgstr "" + +#: ../Doc/library/codecs.rst:974 +msgid "Standard Encodings" +msgstr "" + +#: ../Doc/library/codecs.rst:976 +msgid "" +"Python comes with a number of codecs built-in, either implemented as C " +"functions or with dictionaries as mapping tables. The following table lists " +"the codecs by name, together with a few common aliases, and the languages " +"for which the encoding is likely used. Neither the list of aliases nor the " +"list of languages is meant to be exhaustive. Notice that spelling " +"alternatives that only differ in case or use a hyphen instead of an " +"underscore are also valid aliases; therefore, e.g. ``'utf-8'`` is a valid " +"alias for the ``'utf_8'`` codec." +msgstr "" + +#: ../Doc/library/codecs.rst:986 +msgid "" +"Some common encodings can bypass the codecs lookup machinery to improve " +"performance. These optimization opportunities are only recognized by " +"CPython for a limited set of (case insensitive) aliases: utf-8, utf8, " +"latin-1, latin1, iso-8859-1, iso8859-1, mbcs (Windows only), ascii, us-" +"ascii, utf-16, utf16, utf-32, utf32, and the same using underscores instead " +"of dashes. Using alternative aliases for these encodings may result in " +"slower execution." +msgstr "" + +#: ../Doc/library/codecs.rst:994 +msgid "Optimization opportunity recognized for us-ascii." +msgstr "" + +#: ../Doc/library/codecs.rst:997 +msgid "" +"Many of the character sets support the same languages. They vary in " +"individual characters (e.g. whether the EURO SIGN is supported or not), and " +"in the assignment of characters to code positions. For the European " +"languages in particular, the following variants typically exist:" +msgstr "" + +#: ../Doc/library/codecs.rst:1002 +msgid "an ISO 8859 codeset" +msgstr "" + +#: ../Doc/library/codecs.rst:1004 +msgid "" +"a Microsoft Windows code page, which is typically derived from an 8859 " +"codeset, but replaces control characters with additional graphic characters" +msgstr "" + +#: ../Doc/library/codecs.rst:1007 +msgid "an IBM EBCDIC code page" +msgstr "" + +#: ../Doc/library/codecs.rst:1009 +msgid "an IBM PC code page, which is ASCII compatible" +msgstr "" + +#: ../Doc/library/codecs.rst:1014 ../Doc/library/codecs.rst:1270 +#: ../Doc/library/codecs.rst:1343 ../Doc/library/codecs.rst:1398 +msgid "Codec" +msgstr "" + +#: ../Doc/library/codecs.rst:1014 ../Doc/library/codecs.rst:1270 +#: ../Doc/library/codecs.rst:1343 ../Doc/library/codecs.rst:1398 +msgid "Aliases" +msgstr "" + +#: ../Doc/library/codecs.rst:1014 +msgid "Languages" +msgstr "" + +#: ../Doc/library/codecs.rst:1016 +msgid "ascii" +msgstr "*ascii*" + +#: ../Doc/library/codecs.rst:1016 +msgid "646, us-ascii" +msgstr "*646*, *us-ascii*" + +#: ../Doc/library/codecs.rst:1016 ../Doc/library/codecs.rst:1022 +#: ../Doc/library/codecs.rst:1030 +msgid "English" +msgstr "Anglais" + +#: ../Doc/library/codecs.rst:1018 +msgid "big5" +msgstr "*big5*" + +#: ../Doc/library/codecs.rst:1018 +msgid "big5-tw, csbig5" +msgstr "*big5-tw*, *csbig5*" + +#: ../Doc/library/codecs.rst:1018 ../Doc/library/codecs.rst:1020 +#: ../Doc/library/codecs.rst:1078 +msgid "Traditional Chinese" +msgstr "Chinois Traditionnel" + +#: ../Doc/library/codecs.rst:1020 +msgid "big5hkscs" +msgstr "*big5hkscs*" + +#: ../Doc/library/codecs.rst:1020 +msgid "big5-hkscs, hkscs" +msgstr "*big5-hkscs*, *hkscs*" + +#: ../Doc/library/codecs.rst:1022 +msgid "cp037" +msgstr "*cp037*" + +#: ../Doc/library/codecs.rst:1022 +msgid "IBM037, IBM039" +msgstr "*IBM037*, *IBM039*" + +#: ../Doc/library/codecs.rst:1024 +msgid "cp273" +msgstr "*cp273*" + +#: ../Doc/library/codecs.rst:1024 +msgid "273, IBM273, csIBM273" +msgstr "*273*, *IBM273*, *csIBM273*" + +#: ../Doc/library/codecs.rst:1024 +msgid "German" +msgstr "Allemand" + +#: ../Doc/library/codecs.rst:1028 +msgid "cp424" +msgstr "*cp424*" + +#: ../Doc/library/codecs.rst:1028 +msgid "EBCDIC-CP-HE, IBM424" +msgstr "*EBCDIC-CP-HE*, *IBM424*" + +#: ../Doc/library/codecs.rst:1028 ../Doc/library/codecs.rst:1048 +#: ../Doc/library/codecs.rst:1058 ../Doc/library/codecs.rst:1101 +#: ../Doc/library/codecs.rst:1169 +msgid "Hebrew" +msgstr "Hébreux" + +#: ../Doc/library/codecs.rst:1030 +msgid "cp437" +msgstr "*cp437*" + +#: ../Doc/library/codecs.rst:1030 +msgid "437, IBM437" +msgstr "*437*, *IBM437*" + +#: ../Doc/library/codecs.rst:1032 +msgid "cp500" +msgstr "*cp500*" + +#: ../Doc/library/codecs.rst:1032 +msgid "EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500" +msgstr "*EBCDIC-CP-BE*, *EBCDIC-CP-CH*, *IBM500*" + +#: ../Doc/library/codecs.rst:1032 ../Doc/library/codecs.rst:1041 +#: ../Doc/library/codecs.rst:1052 ../Doc/library/codecs.rst:1088 +#: ../Doc/library/codecs.rst:1095 ../Doc/library/codecs.rst:1181 +#: ../Doc/library/codecs.rst:1208 +msgid "Western Europe" +msgstr "Europe de l'ouest" + +#: ../Doc/library/codecs.rst:1035 +msgid "cp720" +msgstr "*cp720*" + +#: ../Doc/library/codecs.rst:1035 ../Doc/library/codecs.rst:1062 +#: ../Doc/library/codecs.rst:1103 ../Doc/library/codecs.rst:1165 +msgid "Arabic" +msgstr "Arabe" + +#: ../Doc/library/codecs.rst:1037 +msgid "cp737" +msgstr "*cp737*" + +#: ../Doc/library/codecs.rst:1037 ../Doc/library/codecs.rst:1068 +#: ../Doc/library/codecs.rst:1072 ../Doc/library/codecs.rst:1097 +#: ../Doc/library/codecs.rst:1167 ../Doc/library/codecs.rst:1202 +msgid "Greek" +msgstr "Grec" + +#: ../Doc/library/codecs.rst:1039 +msgid "cp775" +msgstr "*cp775*" + +#: ../Doc/library/codecs.rst:1039 +msgid "IBM775" +msgstr "*IBM775*" + +#: ../Doc/library/codecs.rst:1039 ../Doc/library/codecs.rst:1105 +#: ../Doc/library/codecs.rst:1160 ../Doc/library/codecs.rst:1177 +msgid "Baltic languages" +msgstr "Langues Baltiques" + +#: ../Doc/library/codecs.rst:1041 +msgid "cp850" +msgstr "*cp850*" + +#: ../Doc/library/codecs.rst:1041 +msgid "850, IBM850" +msgstr "*850*, *IBM850*" + +#: ../Doc/library/codecs.rst:1043 +msgid "cp852" +msgstr "*cp852*" + +#: ../Doc/library/codecs.rst:1043 +msgid "852, IBM852" +msgstr "*852*, *IBM852*" + +#: ../Doc/library/codecs.rst:1043 ../Doc/library/codecs.rst:1090 +#: ../Doc/library/codecs.rst:1156 ../Doc/library/codecs.rst:1206 +msgid "Central and Eastern Europe" +msgstr "Europe centrale et Europe de l'Est" + +#: ../Doc/library/codecs.rst:1045 +msgid "cp855" +msgstr "*cp855*" + +#: ../Doc/library/codecs.rst:1045 +msgid "855, IBM855" +msgstr "*855*, *IBM855*" + +#: ../Doc/library/codecs.rst:1045 ../Doc/library/codecs.rst:1092 +#: ../Doc/library/codecs.rst:1162 ../Doc/library/codecs.rst:1199 +msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian" +msgstr "Bulgare, Biélorusse, Macédonien, Russe, Serbe" + +#: ../Doc/library/codecs.rst:1048 +msgid "cp856" +msgstr "*cp856*" + +#: ../Doc/library/codecs.rst:1050 +msgid "cp857" +msgstr "*cp857*" + +#: ../Doc/library/codecs.rst:1050 +msgid "857, IBM857" +msgstr "*857*, *IBM857*" + +#: ../Doc/library/codecs.rst:1050 ../Doc/library/codecs.rst:1082 +#: ../Doc/library/codecs.rst:1099 ../Doc/library/codecs.rst:1171 +#: ../Doc/library/codecs.rst:1210 +msgid "Turkish" +msgstr "Turc" + +#: ../Doc/library/codecs.rst:1052 +msgid "cp858" +msgstr "*cp858*" + +#: ../Doc/library/codecs.rst:1052 +msgid "858, IBM858" +msgstr "*858*, *IBM858*" + +#: ../Doc/library/codecs.rst:1054 +msgid "cp860" +msgstr "*cp860*" + +#: ../Doc/library/codecs.rst:1054 +msgid "860, IBM860" +msgstr "*860*, *IBM860*" + +#: ../Doc/library/codecs.rst:1054 +msgid "Portuguese" +msgstr "Portugais" + +#: ../Doc/library/codecs.rst:1056 +msgid "cp861" +msgstr "*cp861*" + +#: ../Doc/library/codecs.rst:1056 +msgid "861, CP-IS, IBM861" +msgstr "*861*, *CP-IS*, *IBM861*" + +#: ../Doc/library/codecs.rst:1056 ../Doc/library/codecs.rst:1204 +msgid "Icelandic" +msgstr "Islandais" + +#: ../Doc/library/codecs.rst:1058 +msgid "cp862" +msgstr "*cp862*" + +#: ../Doc/library/codecs.rst:1058 +msgid "862, IBM862" +msgstr "*862*, *IBM862*" + +#: ../Doc/library/codecs.rst:1060 +msgid "cp863" +msgstr "*cp863*" + +#: ../Doc/library/codecs.rst:1060 +msgid "863, IBM863" +msgstr "*863*, *IBM863*" + +#: ../Doc/library/codecs.rst:1060 +msgid "Canadian" +msgstr "Canadien" + +#: ../Doc/library/codecs.rst:1062 +msgid "cp864" +msgstr "*cp864*" + +#: ../Doc/library/codecs.rst:1062 +msgid "IBM864" +msgstr "*IBM864*" + +#: ../Doc/library/codecs.rst:1064 +msgid "cp865" +msgstr "*cp865*" + +#: ../Doc/library/codecs.rst:1064 +msgid "865, IBM865" +msgstr "*865*, *IBM865*" + +#: ../Doc/library/codecs.rst:1064 +msgid "Danish, Norwegian" +msgstr "" + +#: ../Doc/library/codecs.rst:1066 +msgid "cp866" +msgstr "*cp866*" + +#: ../Doc/library/codecs.rst:1066 +msgid "866, IBM866" +msgstr "*866*, *IBM866*" + +#: ../Doc/library/codecs.rst:1066 ../Doc/library/codecs.rst:1187 +msgid "Russian" +msgstr "Russe" + +#: ../Doc/library/codecs.rst:1068 +msgid "cp869" +msgstr "*cp869*" + +#: ../Doc/library/codecs.rst:1068 +msgid "869, CP-GR, IBM869" +msgstr "*869*, *CP-GR*, *IBM869*" + +#: ../Doc/library/codecs.rst:1070 +msgid "cp874" +msgstr "*cp874*" + +#: ../Doc/library/codecs.rst:1070 +msgid "Thai" +msgstr "" + +#: ../Doc/library/codecs.rst:1072 +msgid "cp875" +msgstr "*cp875*" + +#: ../Doc/library/codecs.rst:1074 +msgid "cp932" +msgstr "*cp932*" + +#: ../Doc/library/codecs.rst:1074 +msgid "932, ms932, mskanji, ms-kanji" +msgstr "*932*, *ms932*, *mskanji*, *ms-kanji*" + +#: ../Doc/library/codecs.rst:1074 ../Doc/library/codecs.rst:1114 +#: ../Doc/library/codecs.rst:1116 ../Doc/library/codecs.rst:1118 +#: ../Doc/library/codecs.rst:1135 ../Doc/library/codecs.rst:1138 +#: ../Doc/library/codecs.rst:1143 ../Doc/library/codecs.rst:1146 +#: ../Doc/library/codecs.rst:1148 ../Doc/library/codecs.rst:1215 +#: ../Doc/library/codecs.rst:1218 ../Doc/library/codecs.rst:1221 +msgid "Japanese" +msgstr "" + +#: ../Doc/library/codecs.rst:1076 +msgid "cp949" +msgstr "*cp949*" + +#: ../Doc/library/codecs.rst:1076 +msgid "949, ms949, uhc" +msgstr "*949*, *ms949*, *uhc*" + +#: ../Doc/library/codecs.rst:1076 ../Doc/library/codecs.rst:1120 +#: ../Doc/library/codecs.rst:1150 ../Doc/library/codecs.rst:1185 +msgid "Korean" +msgstr "" + +#: ../Doc/library/codecs.rst:1078 +msgid "cp950" +msgstr "*cp950*" + +#: ../Doc/library/codecs.rst:1078 +msgid "950, ms950" +msgstr "*950*, *ms950*" + +#: ../Doc/library/codecs.rst:1080 +msgid "cp1006" +msgstr "*cp1006*" + +#: ../Doc/library/codecs.rst:1080 +msgid "Urdu" +msgstr "" + +#: ../Doc/library/codecs.rst:1082 +msgid "cp1026" +msgstr "*cp1026*" + +#: ../Doc/library/codecs.rst:1082 +msgid "ibm1026" +msgstr "*ibm1026*" + +#: ../Doc/library/codecs.rst:1084 +msgid "cp1125" +msgstr "*cp1125*" + +#: ../Doc/library/codecs.rst:1084 +msgid "1125, ibm1125, cp866u, ruscii" +msgstr "*1125*, *ibm1125*, *cp866u*, *ruscii*" + +#: ../Doc/library/codecs.rst:1084 ../Doc/library/codecs.rst:1193 +msgid "Ukrainian" +msgstr "" + +#: ../Doc/library/codecs.rst:1088 +msgid "cp1140" +msgstr "*cp1140*" + +#: ../Doc/library/codecs.rst:1088 +msgid "ibm1140" +msgstr "*ibm1140*" + +#: ../Doc/library/codecs.rst:1090 +msgid "cp1250" +msgstr "*cp1250*" + +#: ../Doc/library/codecs.rst:1090 +msgid "windows-1250" +msgstr "*windows-1250*" + +#: ../Doc/library/codecs.rst:1092 +msgid "cp1251" +msgstr "*cp1251*" + +#: ../Doc/library/codecs.rst:1092 +msgid "windows-1251" +msgstr "*windows-1251*" + +#: ../Doc/library/codecs.rst:1095 +msgid "cp1252" +msgstr "*cp1252*" + +#: ../Doc/library/codecs.rst:1095 +msgid "windows-1252" +msgstr "*windows-1252*" + +#: ../Doc/library/codecs.rst:1097 +msgid "cp1253" +msgstr "*cp1253*" + +#: ../Doc/library/codecs.rst:1097 +msgid "windows-1253" +msgstr "*windows-1253*" + +#: ../Doc/library/codecs.rst:1099 +msgid "cp1254" +msgstr "*cp1254*" + +#: ../Doc/library/codecs.rst:1099 +msgid "windows-1254" +msgstr "*windows-1254*" + +#: ../Doc/library/codecs.rst:1101 +msgid "cp1255" +msgstr "*cp1255*" + +#: ../Doc/library/codecs.rst:1101 +msgid "windows-1255" +msgstr "*windows-1255*" + +#: ../Doc/library/codecs.rst:1103 +msgid "cp1256" +msgstr "*cp1256*" + +#: ../Doc/library/codecs.rst:1103 +msgid "windows-1256" +msgstr "*windows-1256*" + +#: ../Doc/library/codecs.rst:1105 +msgid "cp1257" +msgstr "*cp1257*" + +#: ../Doc/library/codecs.rst:1105 +msgid "windows-1257" +msgstr "*windows-1257*" + +#: ../Doc/library/codecs.rst:1107 +msgid "cp1258" +msgstr "*cp1258*" + +#: ../Doc/library/codecs.rst:1107 +msgid "windows-1258" +msgstr "*windows-1258*" + +#: ../Doc/library/codecs.rst:1107 +msgid "Vietnamese" +msgstr "" + +#: ../Doc/library/codecs.rst:1109 +msgid "cp65001" +msgstr "*cp65001*" + +#: ../Doc/library/codecs.rst:1109 +msgid "Windows only: Windows UTF-8 (``CP_UTF8``)" +msgstr "Windows uniquement : Windows UTF-8 (``CP_UTF8``)" + +#: ../Doc/library/codecs.rst:1114 +msgid "euc_jp" +msgstr "*euc_jp*" + +#: ../Doc/library/codecs.rst:1114 +msgid "eucjp, ujis, u-jis" +msgstr "*eucjp*, *ujis*, *u-jis*" + +#: ../Doc/library/codecs.rst:1116 +msgid "euc_jis_2004" +msgstr "*euc_jis_2004*" + +#: ../Doc/library/codecs.rst:1116 +msgid "jisx0213, eucjis2004" +msgstr "*jisx0213*, *eucjis2004*" + +#: ../Doc/library/codecs.rst:1118 +msgid "euc_jisx0213" +msgstr "*euc_jisx0213*" + +#: ../Doc/library/codecs.rst:1118 +msgid "eucjisx0213" +msgstr "*eucjisx0213*" + +#: ../Doc/library/codecs.rst:1120 +msgid "euc_kr" +msgstr "*euc_kr*" + +#: ../Doc/library/codecs.rst:1120 +msgid "euckr, korean, ksc5601, ks_c-5601, ks_c-5601-1987, ksx1001, ks_x-1001" +msgstr "" +"*euckr*, *korean*, *ksc5601*, *ks_c-5601*, *ks_c-5601-1987*, *ksx1001*, " +"*ks_x-1001*" + +#: ../Doc/library/codecs.rst:1124 +msgid "gb2312" +msgstr "*gb2312*" + +#: ../Doc/library/codecs.rst:1124 +msgid "" +"chinese, csiso58gb231280, euc-cn, euccn, eucgb2312-cn, gb2312-1980, " +"gb2312-80, iso-ir-58" +msgstr "" +"*chinese*, *csiso58gb231280*, *euc-cn*, *euccn*, *eucgb2312-cn*, " +"*gb2312-1980*, *gb2312-80*, *iso-ir-58*" + +#: ../Doc/library/codecs.rst:1124 ../Doc/library/codecs.rst:1133 +msgid "Simplified Chinese" +msgstr "" + +#: ../Doc/library/codecs.rst:1129 +msgid "gbk" +msgstr "*gbk*" + +#: ../Doc/library/codecs.rst:1129 +msgid "936, cp936, ms936" +msgstr "*936*, *cp936*, *ms936*" + +#: ../Doc/library/codecs.rst:1129 ../Doc/library/codecs.rst:1131 +msgid "Unified Chinese" +msgstr "" + +#: ../Doc/library/codecs.rst:1131 +msgid "gb18030" +msgstr "*gb18030*" + +#: ../Doc/library/codecs.rst:1131 +msgid "gb18030-2000" +msgstr "*gb18030-2000*" + +#: ../Doc/library/codecs.rst:1133 +msgid "hz" +msgstr "*hz*" + +#: ../Doc/library/codecs.rst:1133 +msgid "hzgb, hz-gb, hz-gb-2312" +msgstr "*hzgb*, *hz-gb*, *hz-gb-2312*" + +#: ../Doc/library/codecs.rst:1135 +msgid "iso2022_jp" +msgstr "*iso2022_jp*" + +#: ../Doc/library/codecs.rst:1135 +msgid "csiso2022jp, iso2022jp, iso-2022-jp" +msgstr "*csiso2022jp*, *iso2022jp*, *iso-2022-jp*" + +#: ../Doc/library/codecs.rst:1138 +msgid "iso2022_jp_1" +msgstr "*iso2022_jp_1*" + +#: ../Doc/library/codecs.rst:1138 +msgid "iso2022jp-1, iso-2022-jp-1" +msgstr "*iso2022jp-1*, *iso-2022-jp-1*" + +#: ../Doc/library/codecs.rst:1140 +msgid "iso2022_jp_2" +msgstr "*iso2022_jp_2*" + +#: ../Doc/library/codecs.rst:1140 +msgid "iso2022jp-2, iso-2022-jp-2" +msgstr "*iso2022jp-2*, *iso-2022-jp-2*" + +#: ../Doc/library/codecs.rst:1140 +msgid "Japanese, Korean, Simplified Chinese, Western Europe, Greek" +msgstr "" + +#: ../Doc/library/codecs.rst:1143 +msgid "iso2022_jp_2004" +msgstr "*iso2022_jp_2004*" + +#: ../Doc/library/codecs.rst:1143 +msgid "iso2022jp-2004, iso-2022-jp-2004" +msgstr "*iso2022jp-2004*, *iso-2022-jp-2004*" + +#: ../Doc/library/codecs.rst:1146 +msgid "iso2022_jp_3" +msgstr "*iso2022_jp_3*" + +#: ../Doc/library/codecs.rst:1146 +msgid "iso2022jp-3, iso-2022-jp-3" +msgstr "*iso2022jp-3*, *iso-2022-jp-3*" + +#: ../Doc/library/codecs.rst:1148 +msgid "iso2022_jp_ext" +msgstr "*iso2022_jp_ext*" + +#: ../Doc/library/codecs.rst:1148 +msgid "iso2022jp-ext, iso-2022-jp-ext" +msgstr "*iso2022jp-ext*, *iso-2022-jp-ext*" + +#: ../Doc/library/codecs.rst:1150 +msgid "iso2022_kr" +msgstr "*iso2022_kr*" + +#: ../Doc/library/codecs.rst:1150 +msgid "csiso2022kr, iso2022kr, iso-2022-kr" +msgstr "*csiso2022kr*, *iso2022kr*, *iso-2022-kr*" + +#: ../Doc/library/codecs.rst:1153 +msgid "latin_1" +msgstr "*latin_1*" + +#: ../Doc/library/codecs.rst:1153 +msgid "iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1" +msgstr "*iso-8859-1*, *iso8859-1*, *8859*, *cp819*, *latin*, *latin1*, *L1*" + +#: ../Doc/library/codecs.rst:1153 +msgid "West Europe" +msgstr "Europe de l'Ouest" + +#: ../Doc/library/codecs.rst:1156 +msgid "iso8859_2" +msgstr "*iso8859_2*" + +#: ../Doc/library/codecs.rst:1156 +msgid "iso-8859-2, latin2, L2" +msgstr "*iso-8859-2*, *latin2*, *L2*" + +#: ../Doc/library/codecs.rst:1158 +msgid "iso8859_3" +msgstr "*iso8859_3*" + +#: ../Doc/library/codecs.rst:1158 +msgid "iso-8859-3, latin3, L3" +msgstr "*iso-8859-3*, *latin3*, *L3*" + +#: ../Doc/library/codecs.rst:1158 +msgid "Esperanto, Maltese" +msgstr "" + +#: ../Doc/library/codecs.rst:1160 +msgid "iso8859_4" +msgstr "*iso8859_4*" + +#: ../Doc/library/codecs.rst:1160 +msgid "iso-8859-4, latin4, L4" +msgstr "*iso-8859-4*, *latin4*, *L4*" + +#: ../Doc/library/codecs.rst:1162 +msgid "iso8859_5" +msgstr "*iso8859_5*" + +#: ../Doc/library/codecs.rst:1162 +msgid "iso-8859-5, cyrillic" +msgstr "*iso-8859-5*, *cyrillic*" + +#: ../Doc/library/codecs.rst:1165 +msgid "iso8859_6" +msgstr "*iso8859_6*" + +#: ../Doc/library/codecs.rst:1165 +msgid "iso-8859-6, arabic" +msgstr "*iso-8859-6*, *arabic*" + +#: ../Doc/library/codecs.rst:1167 +msgid "iso8859_7" +msgstr "*iso8859_7*" + +#: ../Doc/library/codecs.rst:1167 +msgid "iso-8859-7, greek, greek8" +msgstr "*iso-8859-7*, *greek*, *greek8*" + +#: ../Doc/library/codecs.rst:1169 +msgid "iso8859_8" +msgstr "*iso8859_8*" + +#: ../Doc/library/codecs.rst:1169 +msgid "iso-8859-8, hebrew" +msgstr "*iso-8859-8*, *hebrew*" + +#: ../Doc/library/codecs.rst:1171 +msgid "iso8859_9" +msgstr "*iso8859_9*" + +#: ../Doc/library/codecs.rst:1171 +msgid "iso-8859-9, latin5, L5" +msgstr "*iso-8859-9*, *latin5*, *L5*" + +#: ../Doc/library/codecs.rst:1173 +msgid "iso8859_10" +msgstr "*iso8859_10*" + +#: ../Doc/library/codecs.rst:1173 +msgid "iso-8859-10, latin6, L6" +msgstr "*iso-8859-10*, *latin6*, *L6*" + +#: ../Doc/library/codecs.rst:1173 +msgid "Nordic languages" +msgstr "" + +#: ../Doc/library/codecs.rst:1175 +msgid "iso8859_11" +msgstr "*iso8859_11*" + +#: ../Doc/library/codecs.rst:1175 +msgid "iso-8859-11, thai" +msgstr "*iso-8859-11*, *thai*" + +#: ../Doc/library/codecs.rst:1175 +msgid "Thai languages" +msgstr "" + +#: ../Doc/library/codecs.rst:1177 +msgid "iso8859_13" +msgstr "*iso8859_13*" + +#: ../Doc/library/codecs.rst:1177 +msgid "iso-8859-13, latin7, L7" +msgstr "*iso-8859-13*, *latin7*, *L7*" + +#: ../Doc/library/codecs.rst:1179 +msgid "iso8859_14" +msgstr "*iso8859_14*" + +#: ../Doc/library/codecs.rst:1179 +msgid "iso-8859-14, latin8, L8" +msgstr "*iso-8859-14*, *latin8*, *L8*" + +#: ../Doc/library/codecs.rst:1179 +msgid "Celtic languages" +msgstr "" + +#: ../Doc/library/codecs.rst:1181 +msgid "iso8859_15" +msgstr "*iso8859_15*" + +#: ../Doc/library/codecs.rst:1181 +msgid "iso-8859-15, latin9, L9" +msgstr "*iso-8859-15*, *latin9*, *L9*" + +#: ../Doc/library/codecs.rst:1183 +msgid "iso8859_16" +msgstr "*iso8859_16*" + +#: ../Doc/library/codecs.rst:1183 +msgid "iso-8859-16, latin10, L10" +msgstr "*iso-8859-16*, *latin10*, *L10*" + +#: ../Doc/library/codecs.rst:1183 +msgid "South-Eastern Europe" +msgstr "" + +#: ../Doc/library/codecs.rst:1185 +msgid "johab" +msgstr "*johab*" + +#: ../Doc/library/codecs.rst:1185 +msgid "cp1361, ms1361" +msgstr "*cp1361*, *ms1361*" + +#: ../Doc/library/codecs.rst:1187 +msgid "koi8_r" +msgstr "*koi8_r*" + +#: ../Doc/library/codecs.rst:1189 +msgid "koi8_t" +msgstr "*koi8_t*" + +#: ../Doc/library/codecs.rst:1189 +msgid "Tajik" +msgstr "*Tajik*" + +#: ../Doc/library/codecs.rst:1193 +msgid "koi8_u" +msgstr "*koi8_u*" + +#: ../Doc/library/codecs.rst:1195 +msgid "kz1048" +msgstr "*kz1048*" + +#: ../Doc/library/codecs.rst:1195 +msgid "kz_1048, strk1048_2002, rk1048" +msgstr "*kz_1048*, *strk1048_2002*, *rk1048*" + +#: ../Doc/library/codecs.rst:1195 ../Doc/library/codecs.rst:1212 +msgid "Kazakh" +msgstr "" + +#: ../Doc/library/codecs.rst:1199 +msgid "mac_cyrillic" +msgstr "*mac_cyrillic*" + +#: ../Doc/library/codecs.rst:1199 +msgid "maccyrillic" +msgstr "*maccyrillic*" + +#: ../Doc/library/codecs.rst:1202 +msgid "mac_greek" +msgstr "*mac_greek*" + +#: ../Doc/library/codecs.rst:1202 +msgid "macgreek" +msgstr "*macgreek*" + +#: ../Doc/library/codecs.rst:1204 +msgid "mac_iceland" +msgstr "*mac_iceland*" + +#: ../Doc/library/codecs.rst:1204 +msgid "maciceland" +msgstr "*maciceland*" + +#: ../Doc/library/codecs.rst:1206 +msgid "mac_latin2" +msgstr "*mac_latin2*" + +#: ../Doc/library/codecs.rst:1206 +msgid "maclatin2, maccentraleurope" +msgstr "*maclatin2*, *maccentraleurope*" + +#: ../Doc/library/codecs.rst:1208 +msgid "mac_roman" +msgstr "*mac_roman*" + +#: ../Doc/library/codecs.rst:1208 +msgid "macroman, macintosh" +msgstr "*macroman*, *macintosh*" + +#: ../Doc/library/codecs.rst:1210 +msgid "mac_turkish" +msgstr "*mac_turkish*" + +#: ../Doc/library/codecs.rst:1210 +msgid "macturkish" +msgstr "*macturkish*" + +#: ../Doc/library/codecs.rst:1212 +msgid "ptcp154" +msgstr "*ptcp154*" + +#: ../Doc/library/codecs.rst:1212 +msgid "csptcp154, pt154, cp154, cyrillic-asian" +msgstr "*csptcp154*, *pt154*, *cp154*, *cyrillic-asian*" + +#: ../Doc/library/codecs.rst:1215 +msgid "shift_jis" +msgstr "*shift_jis*" + +#: ../Doc/library/codecs.rst:1215 +msgid "csshiftjis, shiftjis, sjis, s_jis" +msgstr "*csshiftjis*, *shiftjis*, *sjis*, *s_jis*" + +#: ../Doc/library/codecs.rst:1218 +msgid "shift_jis_2004" +msgstr "*shift_jis_2004*" + +#: ../Doc/library/codecs.rst:1218 +msgid "shiftjis2004, sjis_2004, sjis2004" +msgstr "*shiftjis2004*, *sjis_2004*, *sjis2004*" + +#: ../Doc/library/codecs.rst:1221 +msgid "shift_jisx0213" +msgstr "*shift_jisx0213*" + +#: ../Doc/library/codecs.rst:1221 +msgid "shiftjisx0213, sjisx0213, s_jisx0213" +msgstr "*shiftjisx0213*, *sjisx0213*, *s_jisx0213*" + +#: ../Doc/library/codecs.rst:1224 +msgid "utf_32" +msgstr "*utf_32*" + +#: ../Doc/library/codecs.rst:1224 +msgid "U32, utf32" +msgstr "*U32*, *utf32*" + +#: ../Doc/library/codecs.rst:1224 ../Doc/library/codecs.rst:1226 +#: ../Doc/library/codecs.rst:1228 ../Doc/library/codecs.rst:1230 +#: ../Doc/library/codecs.rst:1232 ../Doc/library/codecs.rst:1234 +#: ../Doc/library/codecs.rst:1236 ../Doc/library/codecs.rst:1238 +#: ../Doc/library/codecs.rst:1240 +msgid "all languages" +msgstr "" + +#: ../Doc/library/codecs.rst:1226 +msgid "utf_32_be" +msgstr "*utf_32_be*" + +#: ../Doc/library/codecs.rst:1226 +msgid "UTF-32BE" +msgstr "*UTF-32BE*" + +#: ../Doc/library/codecs.rst:1228 +msgid "utf_32_le" +msgstr "*utf_32_le*" + +#: ../Doc/library/codecs.rst:1228 +msgid "UTF-32LE" +msgstr "*UTF-32LE*" + +#: ../Doc/library/codecs.rst:1230 +msgid "utf_16" +msgstr "*utf_16*" + +#: ../Doc/library/codecs.rst:1230 +msgid "U16, utf16" +msgstr "*U16*, *utf16*" + +#: ../Doc/library/codecs.rst:1232 +msgid "utf_16_be" +msgstr "*utf_16_be*" + +#: ../Doc/library/codecs.rst:1232 +msgid "UTF-16BE" +msgstr "*UTF-16BE*" + +#: ../Doc/library/codecs.rst:1234 +msgid "utf_16_le" +msgstr "*utf_16_le*" + +#: ../Doc/library/codecs.rst:1234 +msgid "UTF-16LE" +msgstr "*UTF-16LE*" + +#: ../Doc/library/codecs.rst:1236 +msgid "utf_7" +msgstr "*utf_7*" + +#: ../Doc/library/codecs.rst:1236 +msgid "U7, unicode-1-1-utf-7" +msgstr "*U7*, *unicode-1-1-utf-7*" + +#: ../Doc/library/codecs.rst:1238 +msgid "utf_8" +msgstr "*utf_8*" + +#: ../Doc/library/codecs.rst:1238 +msgid "U8, UTF, utf8" +msgstr "*U8*, *UTF*, *utf8*" + +#: ../Doc/library/codecs.rst:1240 +msgid "utf_8_sig" +msgstr "*utf_8_sig*" + +#: ../Doc/library/codecs.rst:1243 +msgid "" +"The utf-16\\* and utf-32\\* encoders no longer allow surrogate code points " +"(``U+D800``--``U+DFFF``) to be encoded. The utf-32\\* decoders no longer " +"decode byte sequences that correspond to surrogate code points." +msgstr "" + +#: ../Doc/library/codecs.rst:1251 +msgid "Python Specific Encodings" +msgstr "" + +#: ../Doc/library/codecs.rst:1253 +msgid "" +"A number of predefined codecs are specific to Python, so their codec names " +"have no meaning outside Python. These are listed in the tables below based " +"on the expected input and output types (note that while text encodings are " +"the most common use case for codecs, the underlying codec infrastructure " +"supports arbitrary data transforms rather than just text encodings). For " +"asymmetric codecs, the stated purpose describes the encoding direction." +msgstr "" + +#: ../Doc/library/codecs.rst:1261 +msgid "Text Encodings" +msgstr "" + +#: ../Doc/library/codecs.rst:1263 +msgid "" +"The following codecs provide :class:`str` to :class:`bytes` encoding and :" +"term:`bytes-like object` to :class:`str` decoding, similar to the Unicode " +"text encodings." +msgstr "" + +#: ../Doc/library/codecs.rst:1270 ../Doc/library/codecs.rst:1343 +#: ../Doc/library/codecs.rst:1398 +msgid "Purpose" +msgstr "Objectif" + +#: ../Doc/library/codecs.rst:1272 +msgid "idna" +msgstr "idna" + +#: ../Doc/library/codecs.rst:1272 +msgid "" +"Implements :rfc:`3490`, see also :mod:`encodings.idna`. Only " +"``errors='strict'`` is supported." +msgstr "" + +#: ../Doc/library/codecs.rst:1278 +msgid "mbcs" +msgstr "mbcs" + +#: ../Doc/library/codecs.rst:1278 +msgid "ansi, dbcs" +msgstr "" + +#: ../Doc/library/codecs.rst:1278 +msgid "Windows only: Encode operand according to the ANSI codepage (CP_ACP)" +msgstr "" + +#: ../Doc/library/codecs.rst:1282 +msgid "oem" +msgstr "" + +#: ../Doc/library/codecs.rst:1282 +msgid "Windows only: Encode operand according to the OEM codepage (CP_OEMCP)" +msgstr "" + +#: ../Doc/library/codecs.rst:1288 +msgid "palmos" +msgstr "palmos" + +#: ../Doc/library/codecs.rst:1288 +msgid "Encoding of PalmOS 3.5" +msgstr "" + +#: ../Doc/library/codecs.rst:1290 +msgid "punycode" +msgstr "punycode" + +#: ../Doc/library/codecs.rst:1290 +msgid "Implements :rfc:`3492`. Stateful codecs are not supported." +msgstr "" + +#: ../Doc/library/codecs.rst:1294 +msgid "raw_unicode_escape" +msgstr "raw_unicode_escape" + +#: ../Doc/library/codecs.rst:1294 +msgid "" +"Latin-1 encoding with ``\\uXXXX`` and ``\\UXXXXXXXX`` for other code points. " +"Existing backslashes are not escaped in any way. It is used in the Python " +"pickle protocol." +msgstr "" + +#: ../Doc/library/codecs.rst:1303 +msgid "undefined" +msgstr "undefined" + +#: ../Doc/library/codecs.rst:1303 +msgid "" +"Raise an exception for all conversions, even empty strings. The error " +"handler is ignored." +msgstr "" + +#: ../Doc/library/codecs.rst:1308 +msgid "unicode_escape" +msgstr "unicode_escape" + +#: ../Doc/library/codecs.rst:1308 +msgid "" +"Encoding suitable as the contents of a Unicode literal in ASCII-encoded " +"Python source code, except that quotes are not escaped. Decodes from Latin-1 " +"source code. Beware that Python source code actually uses UTF-8 by default." +msgstr "" + +#: ../Doc/library/codecs.rst:1319 +msgid "unicode_internal" +msgstr "unicode_internal" + +#: ../Doc/library/codecs.rst:1319 +msgid "" +"Return the internal representation of the operand. Stateful codecs are not " +"supported." +msgstr "" + +#: ../Doc/library/codecs.rst:1324 +msgid "This representation is obsoleted by :pep:`393`." +msgstr "" + +#: ../Doc/library/codecs.rst:1333 +msgid "Binary Transforms" +msgstr "" + +#: ../Doc/library/codecs.rst:1335 +msgid "" +"The following codecs provide binary transforms: :term:`bytes-like object` " +"to :class:`bytes` mappings. They are not supported by :meth:`bytes.decode` " +"(which only produces :class:`str` output)." +msgstr "" + +#: ../Doc/library/codecs.rst:1343 +msgid "Encoder / decoder" +msgstr "" + +#: ../Doc/library/codecs.rst:1345 +msgid "base64_codec [#b64]_" +msgstr "base64_codec [#b64]_" + +#: ../Doc/library/codecs.rst:1345 +msgid "base64, base_64" +msgstr "base64, base_64" + +#: ../Doc/library/codecs.rst:1345 +msgid "" +"Convert operand to multiline MIME base64 (the result always includes a " +"trailing ``'\\n'``)" +msgstr "" + +#: ../Doc/library/codecs.rst:1350 +msgid "" +"accepts any :term:`bytes-like object` as input for encoding and decoding" +msgstr "" + +#: ../Doc/library/codecs.rst:1345 +msgid ":meth:`base64.encodebytes` / :meth:`base64.decodebytes`" +msgstr "" + +#: ../Doc/library/codecs.rst:1356 +msgid "bz2_codec" +msgstr "bz2_codec" + +#: ../Doc/library/codecs.rst:1356 +msgid "bz2" +msgstr "bz2" + +#: ../Doc/library/codecs.rst:1356 +msgid "Compress the operand using bz2" +msgstr "" + +#: ../Doc/library/codecs.rst:1356 +msgid ":meth:`bz2.compress` / :meth:`bz2.decompress`" +msgstr "" + +#: ../Doc/library/codecs.rst:1359 +msgid "hex_codec" +msgstr "hex_codec" + +#: ../Doc/library/codecs.rst:1359 +msgid "hex" +msgstr "hex" + +#: ../Doc/library/codecs.rst:1359 +msgid "Convert operand to hexadecimal representation, with two digits per byte" +msgstr "" + +#: ../Doc/library/codecs.rst:1359 +msgid ":meth:`binascii.b2a_hex` / :meth:`binascii.a2b_hex`" +msgstr "" + +#: ../Doc/library/codecs.rst:1364 +msgid "quopri_codec" +msgstr "quopri_codec" + +#: ../Doc/library/codecs.rst:1364 +msgid "quopri, quotedprintable, quoted_printable" +msgstr "" + +#: ../Doc/library/codecs.rst:1364 +msgid "Convert operand to MIME quoted printable" +msgstr "" + +#: ../Doc/library/codecs.rst:1364 +msgid ":meth:`quopri.encode` with ``quotetabs=True`` / :meth:`quopri.decode`" +msgstr "" + +#: ../Doc/library/codecs.rst:1368 +msgid "uu_codec" +msgstr "uu_codec" + +#: ../Doc/library/codecs.rst:1368 +msgid "uu" +msgstr "uu" + +#: ../Doc/library/codecs.rst:1368 +msgid "Convert the operand using uuencode" +msgstr "" + +#: ../Doc/library/codecs.rst:1368 +msgid ":meth:`uu.encode` / :meth:`uu.decode`" +msgstr "" + +#: ../Doc/library/codecs.rst:1371 +msgid "zlib_codec" +msgstr "zlib_codec" + +#: ../Doc/library/codecs.rst:1371 +msgid "zip, zlib" +msgstr "zip, zlib" + +#: ../Doc/library/codecs.rst:1371 +msgid "Compress the operand using gzip" +msgstr "" + +#: ../Doc/library/codecs.rst:1371 +msgid ":meth:`zlib.compress` / :meth:`zlib.decompress`" +msgstr ":meth:`zlib.compress` / :meth:`zlib.decompress`" + +#: ../Doc/library/codecs.rst:1375 +msgid "" +"In addition to :term:`bytes-like objects `, " +"``'base64_codec'`` also accepts ASCII-only instances of :class:`str` for " +"decoding" +msgstr "" + +#: ../Doc/library/codecs.rst:1379 +msgid "Restoration of the binary transforms." +msgstr "" + +#: ../Doc/library/codecs.rst:1382 +msgid "Restoration of the aliases for the binary transforms." +msgstr "" + +#: ../Doc/library/codecs.rst:1389 +msgid "Text Transforms" +msgstr "" + +#: ../Doc/library/codecs.rst:1391 +msgid "" +"The following codec provides a text transform: a :class:`str` to :class:" +"`str` mapping. It is not supported by :meth:`str.encode` (which only " +"produces :class:`bytes` output)." +msgstr "" + +#: ../Doc/library/codecs.rst:1400 +msgid "rot_13" +msgstr "rot_13" + +#: ../Doc/library/codecs.rst:1400 +msgid "rot13" +msgstr "rot13" + +#: ../Doc/library/codecs.rst:1400 +msgid "Returns the Caesar-cypher encryption of the operand" +msgstr "" + +#: ../Doc/library/codecs.rst:1404 +msgid "Restoration of the ``rot_13`` text transform." +msgstr "" + +#: ../Doc/library/codecs.rst:1407 +msgid "Restoration of the ``rot13`` alias." +msgstr "" + +#: ../Doc/library/codecs.rst:1412 +msgid "" +":mod:`encodings.idna` --- Internationalized Domain Names in Applications" +msgstr "" + +#: ../Doc/library/codecs.rst:1418 +msgid "" +"This module implements :rfc:`3490` (Internationalized Domain Names in " +"Applications) and :rfc:`3492` (Nameprep: A Stringprep Profile for " +"Internationalized Domain Names (IDN)). It builds upon the ``punycode`` " +"encoding and :mod:`stringprep`." +msgstr "" + +#: ../Doc/library/codecs.rst:1423 +msgid "" +"These RFCs together define a protocol to support non-ASCII characters in " +"domain names. A domain name containing non-ASCII characters (such as ``www." +"Alliancefrançaise.nu``) is converted into an ASCII-compatible encoding (ACE, " +"such as ``www.xn--alliancefranaise-npb.nu``). The ACE form of the domain " +"name is then used in all places where arbitrary characters are not allowed " +"by the protocol, such as DNS queries, HTTP :mailheader:`Host` fields, and so " +"on. This conversion is carried out in the application; if possible invisible " +"to the user: The application should transparently convert Unicode domain " +"labels to IDNA on the wire, and convert back ACE labels to Unicode before " +"presenting them to the user." +msgstr "" + +#: ../Doc/library/codecs.rst:1434 +msgid "" +"Python supports this conversion in several ways: the ``idna`` codec " +"performs conversion between Unicode and ACE, separating an input string into " +"labels based on the separator characters defined in :rfc:`section 3.1 of RFC " +"3490 <3490#section-3.1>` and converting each label to ACE as required, and " +"conversely separating an input byte string into labels based on the ``.`` " +"separator and converting any ACE labels found into unicode. Furthermore, " +"the :mod:`socket` module transparently converts Unicode host names to ACE, " +"so that applications need not be concerned about converting host names " +"themselves when they pass them to the socket module. On top of that, modules " +"that have host names as function parameters, such as :mod:`http.client` and :" +"mod:`ftplib`, accept Unicode host names (:mod:`http.client` then also " +"transparently sends an IDNA hostname in the :mailheader:`Host` field if it " +"sends that field at all)." +msgstr "" + +#: ../Doc/library/codecs.rst:1447 +msgid "" +"When receiving host names from the wire (such as in reverse name lookup), no " +"automatic conversion to Unicode is performed: Applications wishing to " +"present such host names to the user should decode them to Unicode." +msgstr "" + +#: ../Doc/library/codecs.rst:1451 +msgid "" +"The module :mod:`encodings.idna` also implements the nameprep procedure, " +"which performs certain normalizations on host names, to achieve case-" +"insensitivity of international domain names, and to unify similar " +"characters. The nameprep functions can be used directly if desired." +msgstr "" + +#: ../Doc/library/codecs.rst:1459 +msgid "" +"Return the nameprepped version of *label*. The implementation currently " +"assumes query strings, so ``AllowUnassigned`` is true." +msgstr "" + +#: ../Doc/library/codecs.rst:1465 +msgid "" +"Convert a label to ASCII, as specified in :rfc:`3490`. ``UseSTD3ASCIIRules`` " +"is assumed to be false." +msgstr "" + +#: ../Doc/library/codecs.rst:1471 +msgid "Convert a label to Unicode, as specified in :rfc:`3490`." +msgstr "" + +#: ../Doc/library/codecs.rst:1475 +msgid ":mod:`encodings.mbcs` --- Windows ANSI codepage" +msgstr "" + +#: ../Doc/library/codecs.rst:1480 +msgid "Encode operand according to the ANSI codepage (CP_ACP)." +msgstr "" + +#: ../Doc/library/codecs.rst:1483 +msgid ":ref:`Availability `: Windows only." +msgstr ":ref:`Disponibilité ` : Windows uniquement." + +#: ../Doc/library/codecs.rst:1484 +msgid "Support any error handler." +msgstr "" + +#: ../Doc/library/codecs.rst:1487 +msgid "" +"Before 3.2, the *errors* argument was ignored; ``'replace'`` was always used " +"to encode, and ``'ignore'`` to decode." +msgstr "" + +#: ../Doc/library/codecs.rst:1493 +msgid ":mod:`encodings.utf_8_sig` --- UTF-8 codec with BOM signature" +msgstr "" + +#: ../Doc/library/codecs.rst:1499 +msgid "" +"This module implements a variant of the UTF-8 codec: On encoding a UTF-8 " +"encoded BOM will be prepended to the UTF-8 encoded bytes. For the stateful " +"encoder this is only done once (on the first write to the byte stream). For " +"decoding an optional UTF-8 encoded BOM at the start of the data will be " +"skipped." +msgstr "" diff --git a/library/codeop.po b/library/codeop.po new file mode 100644 index 000000000..d2f4cca13 --- /dev/null +++ b/library/codeop.po @@ -0,0 +1,146 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/codeop.rst:2 +msgid ":mod:`codeop` --- Compile Python code" +msgstr ":mod:`codeop` — Compilation de code Python" + +#: ../Doc/library/codeop.rst:10 +msgid "**Source code:** :source:`Lib/codeop.py`" +msgstr "**Code source :** :source:`Lib/codeop.py`" + +#: ../Doc/library/codeop.rst:14 +msgid "" +"The :mod:`codeop` module provides utilities upon which the Python read-eval-" +"print loop can be emulated, as is done in the :mod:`code` module. As a " +"result, you probably don't want to use the module directly; if you want to " +"include such a loop in your program you probably want to use the :mod:`code` " +"module instead." +msgstr "" +"Le module :mod:`codeop` fournit des outils permettant d'émuler une boucle de " +"lecture-évaluation-affichage (en anglais *read-eval-print-loop* ou REPL), " +"comme dans le module :mod:`code`. Par conséquent, ce module n'est pas " +"destiné à être utilisé directement ; pour inclure un REPL dans un programme, " +"il est préférable d'utiliser le module :mod:`code`." + +#: ../Doc/library/codeop.rst:20 +msgid "There are two parts to this job:" +msgstr "Cette tâche se divise en deux parties :" + +#: ../Doc/library/codeop.rst:22 +msgid "" +"Being able to tell if a line of input completes a Python statement: in " +"short, telling whether to print '``>>>``' or '``...``' next." +msgstr "" +"Pouvoir affirmer qu'une ligne d'entrée est une instruction complète, ou " +"achève une instruction : en bref, savoir s'il faut afficher « ``>>>`` » ou " +"« ``...`` » à sa suite." + +#: ../Doc/library/codeop.rst:25 +msgid "" +"Remembering which future statements the user has entered, so subsequent " +"input can be compiled with these in effect." +msgstr "" +"Conserver les instructions déjà entrées par l'utilisateur, afin que les " +"entrées suivantes puissent êtres compilées avec elles." + +#: ../Doc/library/codeop.rst:28 +msgid "" +"The :mod:`codeop` module provides a way of doing each of these things, and a " +"way of doing them both." +msgstr "" +"Le module :mod:`codeop` fournit un moyen d'effectuer ces deux parties, " +"individuellement ou simultanément." + +#: ../Doc/library/codeop.rst:31 +msgid "To do just the former:" +msgstr "Pour ne faire que la première partie :" + +#: ../Doc/library/codeop.rst:35 +msgid "" +"Tries to compile *source*, which should be a string of Python code and " +"return a code object if *source* is valid Python code. In that case, the " +"filename attribute of the code object will be *filename*, which defaults to " +"``''``. Returns ``None`` if *source* is *not* valid Python code, but " +"is a prefix of valid Python code." +msgstr "" +"Essaye de compiler *source*, qui doit être une chaîne de caractères " +"représentant du code Python valide et renvoie un objet code le cas échéant. " +"Dans ce cas, l'attribut de nom de fichier de l'objet code renvoyé sera " +"*filename* (``''`` par défaut). Renvoie ``None`` si *source* n'est " +"*pas* du code Python valide, mais un *début* de code Python valide." + +#: ../Doc/library/codeop.rst:41 +msgid "" +"If there is a problem with *source*, an exception will be raised. :exc:" +"`SyntaxError` is raised if there is invalid Python syntax, and :exc:" +"`OverflowError` or :exc:`ValueError` if there is an invalid literal." +msgstr "" +"En cas de problème avec *source*, une exception est levée ; :exc:" +"`SyntaxError` si la syntaxe Python est incorrecte, et :exc:`OverflowError` " +"ou :exc:`ValueError` si un littéral invalide est rencontré." + +#: ../Doc/library/codeop.rst:45 +msgid "" +"The *symbol* argument determines whether *source* is compiled as a statement " +"(``'single'``, the default) or as an :term:`expression` (``'eval'``). Any " +"other value will cause :exc:`ValueError` to be raised." +msgstr "" +"L'argument *symbol* détermine si *source* est compilée comme une instruction " +"(``'single'``, par défaut) ou comme une :term:`expression` (``'eval'``). " +"Toute autre valeur lèvera :exc:`ValueError`." + +#: ../Doc/library/codeop.rst:51 +msgid "" +"It is possible (but not likely) that the parser stops parsing with a " +"successful outcome before reaching the end of the source; in this case, " +"trailing symbols may be ignored instead of causing an error. For example, a " +"backslash followed by two newlines may be followed by arbitrary garbage. " +"This will be fixed once the API for the parser is better." +msgstr "" +"Il est possible (quoique improbable) que l'analyseur s'arrête avant " +"d'atteindre la fin du code source ; dans ce cas, les symboles venant après " +"peuvent être ignorés au lieu de provoquer une erreur. Par exemple, une barre " +"oblique inverse suivie de deux retours à la ligne peut être suivie par de la " +"mémoire non-initialisée. Ceci sera corrigé quand l'interface de l'analyseur " +"aura été améliorée." + +#: ../Doc/library/codeop.rst:60 +msgid "" +"Instances of this class have :meth:`__call__` methods identical in signature " +"to the built-in function :func:`compile`, but with the difference that if " +"the instance compiles program text containing a :mod:`__future__` statement, " +"the instance 'remembers' and compiles all subsequent program texts with the " +"statement in force." +msgstr "" +"Les instances de cette classe ont des méthodes :meth:`__call__` de signature " +"identique à la fonction native :func:`compile`, à la différence près que si " +"l'instance compile du code source contenant une instruction :mod:" +"`__future__`, l'instance s'en « souviendra » et compilera tous les codes " +"sources suivants avec cette instruction activée." + +#: ../Doc/library/codeop.rst:69 +msgid "" +"Instances of this class have :meth:`__call__` methods identical in signature " +"to :func:`compile_command`; the difference is that if the instance compiles " +"program text containing a ``__future__`` statement, the instance 'remembers' " +"and compiles all subsequent program texts with the statement in force." +msgstr "" +"Les instances de cette classe ont des méthodes :meth:`__call__` de signature " +"identique à la fonction :func:`compile_command`, à la différence près que si " +"l'instance compile du code source contenant une instruction ``__future__``, " +"l'instance s'en « souviendra » et compilera tous les codes sources suivants " +"avec cette instruction activée." diff --git a/library/collections.abc.po b/library/collections.abc.po new file mode 100644 index 000000000..3ce72723f --- /dev/null +++ b/library/collections.abc.po @@ -0,0 +1,612 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-09-27 15:04+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.9\n" + +#: ../Doc/library/collections.abc.rst:2 +msgid ":mod:`collections.abc` --- Abstract Base Classes for Containers" +msgstr "" +":mod:`collections.abc` --- Classes de base abstraites pour les conteneurs" + +#: ../Doc/library/collections.abc.rst:10 +msgid "Formerly, this module was part of the :mod:`collections` module." +msgstr "Auparavant, ce module faisait partie du module :mod:`collections`." + +#: ../Doc/library/collections.abc.rst:13 +msgid "**Source code:** :source:`Lib/_collections_abc.py`" +msgstr "**Code source :** :source:`Lib/_collections_abc.py`" + +#: ../Doc/library/collections.abc.rst:23 +msgid "" +"This module provides :term:`abstract base classes ` " +"that can be used to test whether a class provides a particular interface; " +"for example, whether it is hashable or whether it is a mapping." +msgstr "" +"Ce module fournit :term:`des classes de base abstraites ` qui peuvent être utilisées pour vérifier si une classe fournit une " +"interface particulière (par exemple, savoir s'il s'agit d'un hachable ou " +"d'une table de correspondance)." + +#: ../Doc/library/collections.abc.rst:31 +msgid "Collections Abstract Base Classes" +msgstr "Classes de base abstraites de collections" + +#: ../Doc/library/collections.abc.rst:33 +msgid "" +"The collections module offers the following :term:`ABCs `:" +msgstr "" +"Le module collections apporte les :term:`ABC ` " +"suivantes :" + +#: ../Doc/library/collections.abc.rst:38 +msgid "ABC" +msgstr "ABC" + +#: ../Doc/library/collections.abc.rst:38 +msgid "Inherits from" +msgstr "Hérite de" + +#: ../Doc/library/collections.abc.rst:38 +msgid "Abstract Methods" +msgstr "Méthodes abstraites" + +#: ../Doc/library/collections.abc.rst:38 +msgid "Mixin Methods" +msgstr "Méthodes *mixin*" + +#: ../Doc/library/collections.abc.rst:40 +msgid ":class:`Container`" +msgstr ":class:`Container`" + +#: ../Doc/library/collections.abc.rst:40 +msgid "``__contains__``" +msgstr "``__contains__``" + +#: ../Doc/library/collections.abc.rst:41 +msgid ":class:`Hashable`" +msgstr ":class:`Hashable`" + +#: ../Doc/library/collections.abc.rst:41 +msgid "``__hash__``" +msgstr "``__hash__``" + +#: ../Doc/library/collections.abc.rst:42 ../Doc/library/collections.abc.rst:43 +#: ../Doc/library/collections.abc.rst:44 +msgid ":class:`Iterable`" +msgstr ":class:`Iterable`" + +#: ../Doc/library/collections.abc.rst:42 ../Doc/library/collections.abc.rst:43 +msgid "``__iter__``" +msgstr "``__iter__``" + +#: ../Doc/library/collections.abc.rst:43 ../Doc/library/collections.abc.rst:45 +msgid ":class:`Iterator`" +msgstr ":class:`Iterator`" + +#: ../Doc/library/collections.abc.rst:43 +msgid "``__next__``" +msgstr "``__next__``" + +#: ../Doc/library/collections.abc.rst:44 +msgid ":class:`Reversible`" +msgstr ":class:`Reversible`" + +#: ../Doc/library/collections.abc.rst:44 +msgid "``__reversed__``" +msgstr "``__reversed__``" + +#: ../Doc/library/collections.abc.rst:45 +msgid ":class:`Generator`" +msgstr ":class:`Generator`" + +#: ../Doc/library/collections.abc.rst:45 ../Doc/library/collections.abc.rst:93 +msgid "``send``, ``throw``" +msgstr "``send``, ``throw``" + +#: ../Doc/library/collections.abc.rst:45 +msgid "``close``, ``__iter__``, ``__next__``" +msgstr "``close``, ``__iter__``, ``__next__``" + +#: ../Doc/library/collections.abc.rst:46 ../Doc/library/collections.abc.rst:85 +msgid ":class:`Sized`" +msgstr ":class:`Sized`" + +#: ../Doc/library/collections.abc.rst:46 ../Doc/library/collections.abc.rst:85 +msgid "``__len__``" +msgstr "``__len__``" + +#: ../Doc/library/collections.abc.rst:47 +msgid ":class:`Callable`" +msgstr ":class:`Callable`" + +#: ../Doc/library/collections.abc.rst:47 +msgid "``__call__``" +msgstr "``__call__``" + +#: ../Doc/library/collections.abc.rst:48 ../Doc/library/collections.abc.rst:64 +#: ../Doc/library/collections.abc.rst:74 +msgid ":class:`Collection`" +msgstr ":class:`Collection`" + +#: ../Doc/library/collections.abc.rst:48 +msgid ":class:`Sized`, :class:`Iterable`, :class:`Container`" +msgstr ":class:`Sized`, :class:`Iterable`, :class:`Container`" + +#: ../Doc/library/collections.abc.rst:48 ../Doc/library/collections.abc.rst:64 +msgid "``__contains__``, ``__iter__``, ``__len__``" +msgstr "``__contains__``, ``__iter__``, ``__len__``" + +#: ../Doc/library/collections.abc.rst:52 ../Doc/library/collections.abc.rst:55 +#: ../Doc/library/collections.abc.rst:61 +msgid ":class:`Sequence`" +msgstr ":class:`Sequence`" + +#: ../Doc/library/collections.abc.rst:52 +msgid ":class:`Reversible`, :class:`Collection`" +msgstr ":class:`Reversible`, :class:`Collection`" + +#: ../Doc/library/collections.abc.rst:52 ../Doc/library/collections.abc.rst:61 +msgid "``__getitem__``, ``__len__``" +msgstr "``__getitem__``, ``__len__``" + +#: ../Doc/library/collections.abc.rst:52 +msgid "" +"``__contains__``, ``__iter__``, ``__reversed__``, ``index``, and ``count``" +msgstr "" +"``__contains__``, ``__iter__``, ``__reversed__``, ``index`` et ``count``" + +#: ../Doc/library/collections.abc.rst:55 +msgid ":class:`MutableSequence`" +msgstr ":class:`MutableSequence`" + +#: ../Doc/library/collections.abc.rst:55 +msgid "" +"``__getitem__``, ``__setitem__``, ``__delitem__``, ``__len__``, ``insert``" +msgstr "" +"``__getitem__``, ``__setitem__``, ``__delitem__``, ``__len__``, ``insert``" + +#: ../Doc/library/collections.abc.rst:55 +msgid "" +"Inherited :class:`Sequence` methods and ``append``, ``reverse``, ``extend``, " +"``pop``, ``remove``, and ``__iadd__``" +msgstr "" +"Méthodes héritées de :class:`Sequence`, et ``append``, ``reverse``, " +"``extend``, ``pop``, ``remove`` et ``__iadd__``" + +#: ../Doc/library/collections.abc.rst:61 +msgid ":class:`ByteString`" +msgstr ":class:`ByteString`" + +#: ../Doc/library/collections.abc.rst:61 +msgid "Inherited :class:`Sequence` methods" +msgstr "Méthodes héritées de :class:`Sequence`" + +#: ../Doc/library/collections.abc.rst:64 ../Doc/library/collections.abc.rst:68 +msgid ":class:`Set`" +msgstr ":class:`Set`" + +#: ../Doc/library/collections.abc.rst:64 +msgid "" +"``__le__``, ``__lt__``, ``__eq__``, ``__ne__``, ``__gt__``, ``__ge__``, " +"``__and__``, ``__or__``, ``__sub__``, ``__xor__``, and ``isdisjoint``" +msgstr "" +"``__le__``, ``__lt__``, ``__eq__``, ``__ne__``, ``__gt__``, ``__ge__``, " +"``__and__``, ``__or__``, ``__sub__``, ``__xor__`` et ``isdisjoint``" + +#: ../Doc/library/collections.abc.rst:68 +msgid ":class:`MutableSet`" +msgstr ":class:`MutableSet`" + +#: ../Doc/library/collections.abc.rst:68 +msgid "``__contains__``, ``__iter__``, ``__len__``, ``add``, ``discard``" +msgstr "``__contains__``, ``__iter__``, ``__len__``, ``add``, ``discard``" + +#: ../Doc/library/collections.abc.rst:68 +msgid "" +"Inherited :class:`Set` methods and ``clear``, ``pop``, ``remove``, " +"``__ior__``, ``__iand__``, ``__ixor__``, and ``__isub__``" +msgstr "" +"Méthodes héritées de :class:`Set`, et ``clear``, ``pop``, ``remove``, " +"``__ior__``, ``__iand__``, ``__ixor__`` et ``__isub__``" + +#: ../Doc/library/collections.abc.rst:74 ../Doc/library/collections.abc.rst:78 +msgid ":class:`Mapping`" +msgstr ":class:`Mapping`" + +#: ../Doc/library/collections.abc.rst:74 +msgid "``__getitem__``, ``__iter__``, ``__len__``" +msgstr "``__getitem__``, ``__iter__``, ``__len__``" + +#: ../Doc/library/collections.abc.rst:74 +msgid "" +"``__contains__``, ``keys``, ``items``, ``values``, ``get``, ``__eq__``, and " +"``__ne__``" +msgstr "" +"``__contains__``, ``keys``, ``items``, ``values``, ``get``, ``__eq__`` et " +"``__ne__``" + +#: ../Doc/library/collections.abc.rst:78 +msgid ":class:`MutableMapping`" +msgstr ":class:`MutableMapping`" + +#: ../Doc/library/collections.abc.rst:78 +msgid "" +"``__getitem__``, ``__setitem__``, ``__delitem__``, ``__iter__``, ``__len__``" +msgstr "" +"``__getitem__``, ``__setitem__``, ``__delitem__``, ``__iter__``, ``__len__``" + +#: ../Doc/library/collections.abc.rst:78 +msgid "" +"Inherited :class:`Mapping` methods and ``pop``, ``popitem``, ``clear``, " +"``update``, and ``setdefault``" +msgstr "" +"Méthodes héritées de :class:`Mapping`, et ``pop``, ``popitem``, ``clear``, " +"``update`` et ``setdefault``" + +#: ../Doc/library/collections.abc.rst:85 +msgid ":class:`MappingView`" +msgstr ":class:`MappingView`" + +#: ../Doc/library/collections.abc.rst:86 +msgid ":class:`ItemsView`" +msgstr ":class:`ItemsView`" + +#: ../Doc/library/collections.abc.rst:86 ../Doc/library/collections.abc.rst:88 +msgid ":class:`MappingView`, :class:`Set`" +msgstr ":class:`MappingView`, :class:`Set`" + +#: ../Doc/library/collections.abc.rst:86 ../Doc/library/collections.abc.rst:88 +#: ../Doc/library/collections.abc.rst:90 +msgid "``__contains__``, ``__iter__``" +msgstr "``__contains__``, ``__iter__``" + +#: ../Doc/library/collections.abc.rst:88 +msgid ":class:`KeysView`" +msgstr ":class:`KeysView`" + +#: ../Doc/library/collections.abc.rst:90 +msgid ":class:`ValuesView`" +msgstr ":class:`ValuesView`" + +#: ../Doc/library/collections.abc.rst:90 +msgid ":class:`MappingView`, :class:`Collection`" +msgstr ":class:`MappingView`, :class:`Collection`" + +#: ../Doc/library/collections.abc.rst:92 ../Doc/library/collections.abc.rst:93 +msgid ":class:`Awaitable`" +msgstr ":class:`Awaitable`" + +#: ../Doc/library/collections.abc.rst:92 +msgid "``__await__``" +msgstr "``__await__``" + +#: ../Doc/library/collections.abc.rst:93 +msgid ":class:`Coroutine`" +msgstr ":class:`Coroutine`" + +#: ../Doc/library/collections.abc.rst:93 +msgid "``close``" +msgstr "``close``" + +#: ../Doc/library/collections.abc.rst:94 ../Doc/library/collections.abc.rst:95 +msgid ":class:`AsyncIterable`" +msgstr ":class:`AsyncIterable`" + +#: ../Doc/library/collections.abc.rst:94 ../Doc/library/collections.abc.rst:95 +msgid "``__aiter__``" +msgstr "``__aiter__``" + +#: ../Doc/library/collections.abc.rst:95 ../Doc/library/collections.abc.rst:96 +msgid ":class:`AsyncIterator`" +msgstr ":class:`AsyncIterator`" + +#: ../Doc/library/collections.abc.rst:95 +msgid "``__anext__``" +msgstr "``__anext__``" + +#: ../Doc/library/collections.abc.rst:96 +msgid ":class:`AsyncGenerator`" +msgstr ":class:`AsyncGenerator`" + +#: ../Doc/library/collections.abc.rst:96 +msgid "``asend``, ``athrow``" +msgstr "``asend``, ``athrow``" + +#: ../Doc/library/collections.abc.rst:96 +msgid "``aclose``, ``__aiter__``, ``__anext__``" +msgstr "``aclose``, ``__aiter__``, ``__anext__``" + +#: ../Doc/library/collections.abc.rst:105 +msgid "" +"ABCs for classes that provide respectively the methods :meth:" +"`__contains__`, :meth:`__hash__`, :meth:`__len__`, and :meth:`__call__`." +msgstr "" +"ABC pour les classes qui définissent respectivement les méthodes :meth:" +"`__contains__`, :meth:`__hash__`, :meth:`__len__` et :meth:`__call__`." + +#: ../Doc/library/collections.abc.rst:110 +msgid "ABC for classes that provide the :meth:`__iter__` method." +msgstr "ABC pour les classes qui définissent la méthode :meth:`__iter__`." + +#: ../Doc/library/collections.abc.rst:112 +msgid "" +"Checking ``isinstance(obj, Iterable)`` detects classes that are registered " +"as :class:`Iterable` or that have an :meth:`__iter__` method, but it does " +"not detect classes that iterate with the :meth:`__getitem__` method. The " +"only reliable way to determine whether an object is :term:`iterable` is to " +"call ``iter(obj)``." +msgstr "" +"Évaluer ``isinstance(obj, Iterable)`` détecte les classes qui sont " +"enregistrées comme :class:`Iterable` ou qui possèdent une méthode :meth:" +"`__iter__`, mais ne détecte pas les classes qui itèrent avec la méthode :" +"meth:`__getitem__`. Le seul moyen fiable de déterminer si un objet est :term:" +"`itérable ` est d'appeler ``iter(obj)``." + +#: ../Doc/library/collections.abc.rst:120 +msgid "ABC for sized iterable container classes." +msgstr "ABC pour les classes de conteneurs itérables et *sized*." + +#: ../Doc/library/collections.abc.rst:126 +msgid "" +"ABC for classes that provide the :meth:`~iterator.__iter__` and :meth:" +"`~iterator.__next__` methods. See also the definition of :term:`iterator`." +msgstr "" +"ABC pour les classes qui définissent les méthodes :meth:`~iterator.__iter__` " +"et :meth:`~iterator.__next__`. Voir aussi la définition d':term:`itérateur " +"`." + +#: ../Doc/library/collections.abc.rst:132 +msgid "" +"ABC for iterable classes that also provide the :meth:`__reversed__` method." +msgstr "" +"ABC pour les classes d'itérables qui implémentent également la méthode :meth:" +"`__reversed__`." + +#: ../Doc/library/collections.abc.rst:139 +msgid "" +"ABC for generator classes that implement the protocol defined in :pep:`342` " +"that extends iterators with the :meth:`~generator.send`, :meth:`~generator." +"throw` and :meth:`~generator.close` methods. See also the definition of :" +"term:`generator`." +msgstr "" +"ABC pour les classes de générateurs qui implémentent le protocole défini " +"dans la :pep:`342` qui étend les itérateurs avec les méthodes :meth:" +"`~generator.send`, :meth:`~generator.throw` et :meth:`~generator.close`. " +"Voir aussi la définition de :term:`générateur `." + +#: ../Doc/library/collections.abc.rst:150 +msgid "ABCs for read-only and mutable :term:`sequences `." +msgstr "ABC pour les :term:`séquences ` immuables et muables." + +#: ../Doc/library/collections.abc.rst:152 +msgid "" +"Implementation note: Some of the mixin methods, such as :meth:`__iter__`, :" +"meth:`__reversed__` and :meth:`index`, make repeated calls to the " +"underlying :meth:`__getitem__` method. Consequently, if :meth:`__getitem__` " +"is implemented with constant access speed, the mixin methods will have " +"linear performance; however, if the underlying method is linear (as it would " +"be with a linked list), the mixins will have quadratic performance and will " +"likely need to be overridden." +msgstr "" +"Note pour l'implémentation : quelques méthodes *mixin*, comme :meth:" +"`__iter__`, :meth:`__reversed__` et :meth:`index`, font des appels répétés à " +"la méthode sous-jacente :meth:`__getitem__`. Ainsi, si :meth:`__getitem__` " +"est implémentée avec une vitesse d'accès constante, les méthodes *mixin* " +"auront une performance linéaire ; cependant, si elle est linéaire, les " +"*mixin* auront une performance quadratique, il serait alors judicieux de les " +"surcharger." + +#: ../Doc/library/collections.abc.rst:161 +msgid "The index() method added support for *stop* and *start* arguments." +msgstr "" +"La méthode index() a ajouté le support des arguments *start* et *stop*." + +#: ../Doc/library/collections.abc.rst:168 +msgid "ABCs for read-only and mutable sets." +msgstr "ABC pour les ensembles immuables et muables." + +#: ../Doc/library/collections.abc.rst:173 +msgid "ABCs for read-only and mutable :term:`mappings `." +msgstr "" +"ABC pour les :term:`tables de correspondances ` immuables et " +"muables." + +#: ../Doc/library/collections.abc.rst:180 +msgid "" +"ABCs for mapping, items, keys, and values :term:`views `." +msgstr "" +"ABC pour les :term:`vues` de *mappings* (tableaux de " +"correspondances), d'éléments, de clés et de valeurs." + +#: ../Doc/library/collections.abc.rst:184 +msgid "" +"ABC for :term:`awaitable` objects, which can be used in :keyword:`await` " +"expressions. Custom implementations must provide the :meth:`__await__` " +"method." +msgstr "" +"ABC pour les objets :term:`awaitables `, qui peuvent être " +"utilisés dans les expressions :keyword:`await`. Les implémentations " +"personnalisées doivent définir la méthode :meth:`__await__`." + +#: ../Doc/library/collections.abc.rst:188 +msgid "" +":term:`Coroutine` objects and instances of the :class:`~collections.abc." +"Coroutine` ABC are all instances of this ABC." +msgstr "" +"Les objets :term:`coroutines ` et les instances de l'ABC :class:" +"`~collections.abc.Coroutine` sont tous des instances de cette ABC." + +#: ../Doc/library/collections.abc.rst:192 +msgid "" +"In CPython, generator-based coroutines (generators decorated with :func:" +"`types.coroutine` or :func:`asyncio.coroutine`) are *awaitables*, even " +"though they do not have an :meth:`__await__` method. Using " +"``isinstance(gencoro, Awaitable)`` for them will return ``False``. Use :func:" +"`inspect.isawaitable` to detect them." +msgstr "" +"En CPython, les coroutines basées sur les générateurs (les générateurs " +"décorés avec :func:`types.coroutine` ou :func:`asyncio.coroutine`) sont " +"*awaitables*, bien qu'elles n'aient pas de méthode :meth:`__await__`. " +"Évaluer ``isinstance(gencoro, Awaitable)`` où ``gencoro`` est un générateur " +"décoré va renvoyer ``False``. Utilisez :func:`inspect.isawaitable` pour les " +"détecter." + +#: ../Doc/library/collections.abc.rst:202 +msgid "" +"ABC for coroutine compatible classes. These implement the following " +"methods, defined in :ref:`coroutine-objects`: :meth:`~coroutine.send`, :meth:" +"`~coroutine.throw`, and :meth:`~coroutine.close`. Custom implementations " +"must also implement :meth:`__await__`. All :class:`Coroutine` instances are " +"also instances of :class:`Awaitable`. See also the definition of :term:" +"`coroutine`." +msgstr "" +"ABC pour les classes compatibles avec les coroutines. Elles implémentent les " +"méthodes suivantes, définies dans :ref:`coroutine-objects` : :meth:" +"`~coroutine.send`, :meth:`~coroutine.throw` et :meth:`~coroutine.close`. Les " +"implémentations personnalisées doivent également fournir :meth:`__await__`. " +"Toutes les instances de :class:`Coroutine` sont également des instances de :" +"class:`Awaitable`. Voir aussi la définition de :term:`coroutine`." + +#: ../Doc/library/collections.abc.rst:210 +msgid "" +"In CPython, generator-based coroutines (generators decorated with :func:" +"`types.coroutine` or :func:`asyncio.coroutine`) are *awaitables*, even " +"though they do not have an :meth:`__await__` method. Using " +"``isinstance(gencoro, Coroutine)`` for them will return ``False``. Use :func:" +"`inspect.isawaitable` to detect them." +msgstr "" +"En CPython, les coroutines basées sur les générateurs (les générateurs " +"décorés avec :func:`types.coroutine` ou :func:`asyncio.coroutine`) sont " +"*awaitables*, bien qu'elles n'aient pas de méthode :meth:`__await__`. " +"Évaluer ``isinstance(gencoro, Corourine)`` où ``gencoro`` est un générateur " +"décoré va renvoyer ``False``. Utilisez :func:`inspect.isawaitable` pour les " +"détecter." + +#: ../Doc/library/collections.abc.rst:220 +msgid "" +"ABC for classes that provide ``__aiter__`` method. See also the definition " +"of :term:`asynchronous iterable`." +msgstr "" +"ABC pour les classes qui définissent la méthode ``__aiter__``. Voir aussi la " +"définition d':term:`itérable asynchrone `." + +#: ../Doc/library/collections.abc.rst:227 +msgid "" +"ABC for classes that provide ``__aiter__`` and ``__anext__`` methods. See " +"also the definition of :term:`asynchronous iterator`." +msgstr "" +"ABC pour les classes qui définissent les méthodes ``__aiter__`` et " +"``__anext__``. Voir aussi la définition d':term:`itérateur asynchrone " +"`." + +#: ../Doc/library/collections.abc.rst:234 +msgid "" +"ABC for asynchronous generator classes that implement the protocol defined " +"in :pep:`525` and :pep:`492`." +msgstr "" +"ABC pour les classes de générateurs asynchrones qui implémentent le " +"protocole défini dans la :pep:`525` et dans la :pep:`492`." + +#: ../Doc/library/collections.abc.rst:240 +msgid "" +"These ABCs allow us to ask classes or instances if they provide particular " +"functionality, for example::" +msgstr "" +"Ces ABC permettent de demander à des classes ou à des instances si elles " +"fournissent des fonctionnalités particulières, par exemple ::" + +#: ../Doc/library/collections.abc.rst:247 +msgid "" +"Several of the ABCs are also useful as mixins that make it easier to develop " +"classes supporting container APIs. For example, to write a class supporting " +"the full :class:`Set` API, it is only necessary to supply the three " +"underlying abstract methods: :meth:`__contains__`, :meth:`__iter__`, and :" +"meth:`__len__`. The ABC supplies the remaining methods such as :meth:" +"`__and__` and :meth:`isdisjoint`::" +msgstr "" +"Une partie des ABC sont également utiles en tant que *mixins* : cela rend " +"plus facile le développement de classes qui gèrent des API de conteneurs. " +"Par exemple, pour écrire une classe qui gère l'API entière de :class:`Set`, " +"il est uniquement nécessaire de fournir les trois méthodes sous-jacentes " +"abstraites :meth:`__contains__`, :meth:`__iter__` et :meth:`__len__`. L'ABC " +"apporte les méthodes restantes, comme :meth:`__and__` et :meth:" +"`isdisjoint` ::" + +#: ../Doc/library/collections.abc.rst:276 +msgid "Notes on using :class:`Set` and :class:`MutableSet` as a mixin:" +msgstr "" +"Notes à propos de l'utilisation de :class:`Set` et :class:`MutableSet` comme " +"*mixin* :" + +#: ../Doc/library/collections.abc.rst:279 +msgid "" +"Since some set operations create new sets, the default mixin methods need a " +"way to create new instances from an iterable. The class constructor is " +"assumed to have a signature in the form ``ClassName(iterable)``. That " +"assumption is factored-out to an internal classmethod called :meth:" +"`_from_iterable` which calls ``cls(iterable)`` to produce a new set. If the :" +"class:`Set` mixin is being used in a class with a different constructor " +"signature, you will need to override :meth:`_from_iterable` with a " +"classmethod that can construct new instances from an iterable argument." +msgstr "" +"Comme une partie des opérations sur les ensembles créent de nouveaux " +"ensembles, les méthodes *mixins* par défaut ont besoin d'un moyen de créer " +"de nouvelles instances à partir d'un itérable. Le constructeur de classe est " +"supposé avoir une signature de la forme ``ClassName(iterable)``. Cette " +"supposition est faite par une méthode de classe interne appelée :meth:" +"`_from_iterable` qui appelle ``cls(iterable)`` pour construire un nouvel " +"ensemble. Si le :class:`Set` *mixin* est utilisé dans une classe avec un " +"constructeur de signature différente, vous devrez surcharger :meth:" +"`_from_iterable` avec une méthode de classe qui peut construire de nouvelles " +"instances à partir d'un argument itérable." + +#: ../Doc/library/collections.abc.rst:290 +msgid "" +"To override the comparisons (presumably for speed, as the semantics are " +"fixed), redefine :meth:`__le__` and :meth:`__ge__`, then the other " +"operations will automatically follow suit." +msgstr "" +"Pour surcharger les comparaisons (a priori pour la rapidité, puisque la " +"sémantique est fixe), il faut redéfinir :meth:`__le__` et :meth:`__ge__`, " +"puis les autres opérations seront automatiquement adaptées." + +#: ../Doc/library/collections.abc.rst:295 +msgid "" +"The :class:`Set` mixin provides a :meth:`_hash` method to compute a hash " +"value for the set; however, :meth:`__hash__` is not defined because not all " +"sets are hashable or immutable. To add set hashability using mixins, " +"inherit from both :meth:`Set` and :meth:`Hashable`, then define ``__hash__ = " +"Set._hash``." +msgstr "" +"La classe *mixin* :class:`Set` apporte une méthode :meth:`_hash` pour " +"calculer une valeur de hachage pour l'ensemble ; cependant :meth:`__hash__` " +"n'est pas défini car tous les ensembles ne sont pas hachables ou immuables. " +"Pour rendre un ensemble hachable en utilisant les *mixins*, héritez de :meth:" +"`Set` et de :meth:`Hashable`, puis définissez ``__hash__ = Set._hash``." + +#: ../Doc/library/collections.abc.rst:303 +msgid "" +"`OrderedSet recipe `_ for an " +"example built on :class:`MutableSet`." +msgstr "" +"`OrderedSet recipe `_ pour un " +"exemple construit sur :class:`MutableSet`." + +#: ../Doc/library/collections.abc.rst:306 +msgid "For more about ABCs, see the :mod:`abc` module and :pep:`3119`." +msgstr "" +"Pour plus d'informations à propos des ABC, voir le module :mod:`abc` et la :" +"pep:`3119`." diff --git a/library/collections.po b/library/collections.po new file mode 100644 index 000000000..7008e910b --- /dev/null +++ b/library/collections.po @@ -0,0 +1,1803 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2019-04-11 19:52+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/collections.rst:2 +msgid ":mod:`collections` --- Container datatypes" +msgstr ":mod:`collections` — Types de données de conteneurs" + +#: ../Doc/library/collections.rst:10 +msgid "**Source code:** :source:`Lib/collections/__init__.py`" +msgstr "**Code source :** :source:`Lib/collections/__init__.py`" + +#: ../Doc/library/collections.rst:20 +msgid "" +"This module implements specialized container datatypes providing " +"alternatives to Python's general purpose built-in containers, :class:" +"`dict`, :class:`list`, :class:`set`, and :class:`tuple`." +msgstr "" +"Ce module implémente des types de données de conteneurs spécialisés qui " +"apportent des alternatives aux conteneurs natifs de Python plus généraux :" +"class:`dict`, :class:`list`, :class:`set` et :class:`tuple`." + +#: ../Doc/library/collections.rst:25 +msgid ":func:`namedtuple`" +msgstr ":func:`namedtuple`" + +#: ../Doc/library/collections.rst:25 +msgid "factory function for creating tuple subclasses with named fields" +msgstr "" +"fonction permettant de créer des sous-classes de ``tuple`` avec des champs " +"nommés" + +#: ../Doc/library/collections.rst:26 +msgid ":class:`deque`" +msgstr ":class:`deque`" + +#: ../Doc/library/collections.rst:26 +msgid "list-like container with fast appends and pops on either end" +msgstr "" +"conteneur se comportant comme une liste avec des ajouts et retraits rapides " +"à chaque extrémité" + +#: ../Doc/library/collections.rst:27 +msgid ":class:`ChainMap`" +msgstr ":class:`ChainMap`" + +#: ../Doc/library/collections.rst:27 +msgid "dict-like class for creating a single view of multiple mappings" +msgstr "" +"classe semblable aux dictionnaires qui crée une unique vue à partir de " +"plusieurs dictionnaires" + +#: ../Doc/library/collections.rst:28 +msgid ":class:`Counter`" +msgstr ":class:`Counter`" + +#: ../Doc/library/collections.rst:28 +msgid "dict subclass for counting hashable objects" +msgstr "sous-classe de ``dict`` pour compter des objets hachables" + +#: ../Doc/library/collections.rst:29 +msgid ":class:`OrderedDict`" +msgstr ":class:`OrderedDict`" + +#: ../Doc/library/collections.rst:29 +msgid "dict subclass that remembers the order entries were added" +msgstr "" +"sous-classe de ``dict`` qui garde en mémoire l'ordre dans lequel les entrées " +"ont été ajoutées" + +#: ../Doc/library/collections.rst:30 +msgid ":class:`defaultdict`" +msgstr ":class:`defaultdict`" + +#: ../Doc/library/collections.rst:30 +msgid "dict subclass that calls a factory function to supply missing values" +msgstr "" +"sous-classe de ``dict`` qui appelle une fonction de fabrication en cas de " +"valeur manquante" + +#: ../Doc/library/collections.rst:31 +msgid ":class:`UserDict`" +msgstr ":class:`UserDict`" + +#: ../Doc/library/collections.rst:31 +msgid "wrapper around dictionary objects for easier dict subclassing" +msgstr "" +"surcouche autour des objets dictionnaires pour faciliter l'héritage de " +"``dict``" + +#: ../Doc/library/collections.rst:32 +msgid ":class:`UserList`" +msgstr ":class:`UserList`" + +#: ../Doc/library/collections.rst:32 +msgid "wrapper around list objects for easier list subclassing" +msgstr "" +"surcouche autour des objets listes pour faciliter l'héritage de ``list``" + +#: ../Doc/library/collections.rst:33 +msgid ":class:`UserString`" +msgstr ":class:`UserString`" + +#: ../Doc/library/collections.rst:33 +msgid "wrapper around string objects for easier string subclassing" +msgstr "" +"surcouche autour des objets chaînes de caractères pour faciliter l'héritage " +"de ``str``" + +#: ../Doc/library/collections.rst:36 +msgid "" +"Moved :ref:`collections-abstract-base-classes` to the :mod:`collections.abc` " +"module. For backwards compatibility, they continue to be visible in this " +"module through Python 3.7. Subsequently, they will be removed entirely." +msgstr "" +"Les :ref:`collections-abstract-base-classes` ont été déplacées vers le " +"module :mod:`collections.abc`. Pour assurer la rétrocompatibilité, elles " +"sont toujours disponibles dans ce module en Python 3.7 mais seront ensuite " +"totalement supprimées." + +#: ../Doc/library/collections.rst:43 +msgid ":class:`ChainMap` objects" +msgstr "Objets :class:`ChainMap`" + +#: ../Doc/library/collections.rst:47 +msgid "" +"A :class:`ChainMap` class is provided for quickly linking a number of " +"mappings so they can be treated as a single unit. It is often much faster " +"than creating a new dictionary and running multiple :meth:`~dict.update` " +"calls." +msgstr "" +"Le module fournit une classe :class:`ChainMap` afin de réunir rapidement " +"plusieurs dictionnaires en une unique entité. Cela est souvent plus rapide " +"que de créer un nouveau dictionnaire et d'effectuer plusieurs appels de :" +"meth:`~dict.update`." + +#: ../Doc/library/collections.rst:51 +msgid "" +"The class can be used to simulate nested scopes and is useful in templating." +msgstr "" +"Cette classe peut être utilisée pour simuler des portées imbriquées, elle " +"est aussi utile pour le *templating*." + +#: ../Doc/library/collections.rst:55 +msgid "" +"A :class:`ChainMap` groups multiple dicts or other mappings together to " +"create a single, updateable view. If no *maps* are specified, a single " +"empty dictionary is provided so that a new chain always has at least one " +"mapping." +msgstr "" +"Un objet :class:`ChainMap` regroupe plusieurs dictionnaires (ou autres " +"tableaux de correspondance) en une vue que l'on peut mettre à jour. Si le " +"paramètre *maps* est vide, un dictionnaire vide est fourni de telle manière " +"qu'une nouvelle chaîne possède toujours au moins un dictionnaire." + +#: ../Doc/library/collections.rst:59 +msgid "" +"The underlying mappings are stored in a list. That list is public and can " +"be accessed or updated using the *maps* attribute. There is no other state." +msgstr "" +"Les dictionnaires sous-jacents sont stockés dans une liste. Celle-ci est " +"publique et peut être consultée ou mise à jour via l'attribut *maps*. Il n'y " +"a pas d'autre état." + +#: ../Doc/library/collections.rst:62 +msgid "" +"Lookups search the underlying mappings successively until a key is found. " +"In contrast, writes, updates, and deletions only operate on the first " +"mapping." +msgstr "" +"Les recherches s'effectuent successivement dans chaque dictionnaire jusqu'à " +"la première clé correspondante. En revanche, les écritures, mises à jour et " +"suppressions n'affectent que le premier dictionnaire." + +#: ../Doc/library/collections.rst:65 +msgid "" +"A :class:`ChainMap` incorporates the underlying mappings by reference. So, " +"if one of the underlying mappings gets updated, those changes will be " +"reflected in :class:`ChainMap`." +msgstr "" +"Un objet :class:`ChainMap` incorpore les dictionnaires sous-jacents par leur " +"référence. Ainsi, si l'un d'eux est modifié, les changements affectent " +"également la :class:`ChainMap`." + +#: ../Doc/library/collections.rst:69 +msgid "" +"All of the usual dictionary methods are supported. In addition, there is a " +"*maps* attribute, a method for creating new subcontexts, and a property for " +"accessing all but the first mapping:" +msgstr "" +"Toutes les méthodes usuelles des dictionnaires sont gérées. De plus, cette " +"classe fournit un attribut *maps*, une méthode pour créer de nouveaux sous-" +"contextes et une propriété pour accéder à tous les dictionnaires sous-" +"jacents excepté le premier :" + +#: ../Doc/library/collections.rst:75 +msgid "" +"A user updateable list of mappings. The list is ordered from first-searched " +"to last-searched. It is the only stored state and can be modified to change " +"which mappings are searched. The list should always contain at least one " +"mapping." +msgstr "" +"Liste de dictionnaires éditable par l'utilisateur et classée selon l'ordre " +"de recherche. Il s'agit de l'unique état stocké et elle peut être modifiée " +"pour changer l'ordre de recherche. La liste doit toujours contenir au moins " +"un dictionnaire." + +#: ../Doc/library/collections.rst:82 +msgid "" +"Returns a new :class:`ChainMap` containing a new map followed by all of the " +"maps in the current instance. If ``m`` is specified, it becomes the new map " +"at the front of the list of mappings; if not specified, an empty dict is " +"used, so that a call to ``d.new_child()`` is equivalent to: ``ChainMap({}, " +"*d.maps)``. This method is used for creating subcontexts that can be " +"updated without altering values in any of the parent mappings." +msgstr "" +"Renvoie un nouvel objet :class:`ChainMap` contenant un nouveau dictionnaire " +"suivi par tous les autres de l'instance actuelle. Si ``m`` est spécifié, il " +"devient le nouveau dictionnaire au début de la liste ; sinon, un " +"dictionnaire vide est utilisé, de telle manière qu'appeler ``d.new_child()`` " +"équivaut à appeler ``ChainMap({}, *d.maps)``. Cette méthode est utile pour " +"créer des sous-contextes qui peuvent être mis à jour sans altérer les " +"valeurs dans les dictionnaires parents." + +#: ../Doc/library/collections.rst:90 +msgid "The optional ``m`` parameter was added." +msgstr "Ajout du paramètre optionnel ``m``." + +#: ../Doc/library/collections.rst:95 +msgid "" +"Property returning a new :class:`ChainMap` containing all of the maps in the " +"current instance except the first one. This is useful for skipping the " +"first map in the search. Use cases are similar to those for the :keyword:" +"`nonlocal` keyword used in :term:`nested scopes `. The use " +"cases also parallel those for the built-in :func:`super` function. A " +"reference to ``d.parents`` is equivalent to: ``ChainMap(*d.maps[1:])``." +msgstr "" +"Propriété qui renvoie un nouvel objet :class:`ChainMap` contenant tous les " +"dictionnaires de l'instance actuelle hormis le premier. Cette propriété est " +"utile pour ignorer le premier dictionnaire dans les recherches ; son " +"utilisation rappelle le mot-clé :keyword:`nonlocal` (utilisé pour les :term:" +"`portées imbriquées `), ou bien la fonction native :func:" +"`super`. Une référence à ``d.parents`` est équivalente à : ``ChainMap(*d." +"maps[1:])``." + +#: ../Doc/library/collections.rst:103 +msgid "" +"Note, the iteration order of a :class:`ChainMap()` is determined by scanning " +"the mappings last to first::" +msgstr "" +"Notez que l'itération de :class:`ChainMap()` se fait en parcourant les " +"tableaux de correspondances du dernier jusqu'au premier ::" + +#: ../Doc/library/collections.rst:111 +msgid "" +"This gives the same ordering as a series of :meth:`dict.update` calls " +"starting with the last mapping::" +msgstr "" +"Cela produit le même ordre qu'une suite d'appels à :meth:`dict.update` en " +"commençant par le dernier tableau de correspondances ::" + +#: ../Doc/library/collections.rst:121 +msgid "" +"The `MultiContext class `_ in the Enthought `CodeTools package " +"`_ has options to support writing to " +"any mapping in the chain." +msgstr "" +"La `classe MultiContext `_ dans le `package CodeTools `_ d'Enthought possède des options pour gérer " +"l'écriture dans n'importe quel dictionnaire de la chaîne." + +#: ../Doc/library/collections.rst:127 +msgid "" +"Django's `Context class `_ for templating is a read-only chain of mappings. It " +"also features pushing and popping of contexts similar to the :meth:" +"`~collections.ChainMap.new_child` method and the :attr:`~collections." +"ChainMap.parents` property." +msgstr "" +"La `classe de contexte de Django `_ pour la création de modèles est une " +"chaîne de dictionnaires en lecture seule. Elle comporte également des " +"fonctionnalités d'ajouts et de retraits de contextes similaires à la " +"méthode :meth:`~collections.ChainMap.new_child` et à la propriété :attr:" +"`~collections.ChainMap.parents`." + +#: ../Doc/library/collections.rst:134 +msgid "" +"The `Nested Contexts recipe `_ " +"has options to control whether writes and other mutations apply only to the " +"first mapping or to any mapping in the chain." +msgstr "" +"`Le Cas pratique des contextes imbriqués `_ a des options pour contrôler si les écritures et autres " +"mutations ne s'appliquent qu'au premier ou à un autre dictionnaire de la " +"chaîne." + +#: ../Doc/library/collections.rst:139 +msgid "" +"A `greatly simplified read-only version of Chainmap `_." +msgstr "" +"Une `version grandement simplifiée de Chainmap en lecture seule `_." + +#: ../Doc/library/collections.rst:144 +msgid ":class:`ChainMap` Examples and Recipes" +msgstr "Exemples et cas pratiques utilisant :class:`ChainMap`" + +#: ../Doc/library/collections.rst:146 +msgid "This section shows various approaches to working with chained maps." +msgstr "" +"Cette partie montre diverses approches afin de travailler avec les " +"dictionnaires chaînés." + +#: ../Doc/library/collections.rst:149 +msgid "Example of simulating Python's internal lookup chain::" +msgstr "Exemple 1 : simulation de la chaîne de recherche interne de Python ::" + +#: ../Doc/library/collections.rst:154 +msgid "" +"Example of letting user specified command-line arguments take precedence " +"over environment variables which in turn take precedence over default " +"values::" +msgstr "" +"Exemple 2 : spécification d'une hiérarchie pour les options : ligne de " +"commande, variable d'environnement, valeurs par défaut ::" + +#: ../Doc/library/collections.rst:171 +msgid "" +"Example patterns for using the :class:`ChainMap` class to simulate nested " +"contexts::" +msgstr "" +"Exemple 3 : modèles pour simuler des contexte imbriqués avec la classe :" +"class:`ChainMap` ::" + +#: ../Doc/library/collections.rst:190 +msgid "" +"The :class:`ChainMap` class only makes updates (writes and deletions) to the " +"first mapping in the chain while lookups will search the full chain. " +"However, if deep writes and deletions are desired, it is easy to make a " +"subclass that updates keys found deeper in the chain::" +msgstr "" +"La classe :class:`ChainMap` ne met à jour (écriture et suppression) que le " +"premier dictionnaire de la chaîne, alors qu'une recherche inspecte toute la " +"chaîne. Cependant, si l'on veut effectuer des écritures ou suppressions en " +"profondeur, on peut facilement faire une sous-classe qui met à jour les clés " +"trouvées de la chaîne en profondeur ::" + +#: ../Doc/library/collections.rst:221 +msgid ":class:`Counter` objects" +msgstr "Objets :class:`Counter`" + +#: ../Doc/library/collections.rst:223 +msgid "" +"A counter tool is provided to support convenient and rapid tallies. For " +"example::" +msgstr "" +"Ce module fournit un outil pour effectuer rapidement et facilement des " +"dénombrements. Par exemple ::" + +#: ../Doc/library/collections.rst:242 +msgid "" +"A :class:`Counter` is a :class:`dict` subclass for counting hashable " +"objects. It is a collection where elements are stored as dictionary keys and " +"their counts are stored as dictionary values. Counts are allowed to be any " +"integer value including zero or negative counts. The :class:`Counter` class " +"is similar to bags or multisets in other languages." +msgstr "" +"La classe :class:`Counter` est une sous-classe de :class:`dict` qui permet " +"le dénombrement d'objets hachables. Il s'agit d'une collection dans laquelle " +"les éléments sont stockés comme des clés de dictionnaire et leurs nombres " +"d’occurrences respectifs comme leurs valeurs. Ceux-ci peuvent être des " +"entiers relatifs (positifs, négatifs ou nuls). La classe :class:`Counter` " +"est similaire aux sacs ou aux multiensembles dans d'autres langages." + +#: ../Doc/library/collections.rst:248 +msgid "" +"Elements are counted from an *iterable* or initialized from another " +"*mapping* (or counter):" +msgstr "" +"Les éléments sont comptés à partir d'un itérable ou initialisés à partir " +"d'un autre dictionnaire (ou compteur) :" + +#: ../Doc/library/collections.rst:256 +msgid "" +"Counter objects have a dictionary interface except that they return a zero " +"count for missing items instead of raising a :exc:`KeyError`:" +msgstr "" +"Les objets Counter ont une interface de dictionnaire, à l'exception près " +"qu'ils renvoient zéro au lieu de lever une exception :exc:`KeyError` pour " +"des éléments manquants :" + +#: ../Doc/library/collections.rst:263 +msgid "" +"Setting a count to zero does not remove an element from a counter. Use " +"``del`` to remove it entirely:" +msgstr "" +"Mettre un comptage à zéro pour un élément ne le retire pas de l'objet " +"Counter. Il faut utiliser ``del`` pour le supprimer complètement :" + +#: ../Doc/library/collections.rst:272 +msgid "" +"Counter objects support three methods beyond those available for all " +"dictionaries:" +msgstr "" +"En plus des méthodes disponibles pour tous les dictionnaires, les objets " +"compteurs gèrent trois méthodes supplémentaires :" + +#: ../Doc/library/collections.rst:277 +msgid "" +"Return an iterator over elements repeating each as many times as its count. " +"Elements are returned in arbitrary order. If an element's count is less " +"than one, :meth:`elements` will ignore it." +msgstr "" +"Renvoie un itérateur sur chaque élément en le répétant autant de fois que la " +"valeur du compteur associé. Les éléments sont renvoyés dans un ordre " +"arbitraire. Si le comptage d'un élément est strictement inférieur à 1, " +"alors :meth:`elements` l'ignore." + +#: ../Doc/library/collections.rst:287 +msgid "" +"Return a list of the *n* most common elements and their counts from the most " +"common to the least. If *n* is omitted or ``None``, :meth:`most_common` " +"returns *all* elements in the counter. Elements with equal counts are " +"ordered arbitrarily:" +msgstr "" +"Renvoie une liste des *n* éléments les plus nombreux et leur valeur " +"respective dans l'ordre décroissant. Si *n* n'est pas fourni ou vaut " +"``None``, :meth:`most_common` renvoie *tous* les éléments du compteur. Les " +"éléments qui ont le même nombre d'occurrences sont ordonnés de manière " +"arbitraire :" + +#: ../Doc/library/collections.rst:297 +msgid "" +"Elements are subtracted from an *iterable* or from another *mapping* (or " +"counter). Like :meth:`dict.update` but subtracts counts instead of " +"replacing them. Both inputs and outputs may be zero or negative." +msgstr "" +"Les éléments sont soustraits à partir d'un itérable ou d'un autre " +"dictionnaire (ou compteur). Cette méthode se comporte comme :meth:`dict." +"update` mais soustrait les nombres d'occurrences au lieu de les remplacer. " +"Les entrées et sorties peuvent être négatives ou nulles." + +#: ../Doc/library/collections.rst:309 +msgid "" +"The usual dictionary methods are available for :class:`Counter` objects " +"except for two which work differently for counters." +msgstr "" +"Les méthodes usuelles des dictionnaires sont disponibles pour les objets :" +"class:`Counter` à l'exception de deux méthodes qui fonctionnent différemment " +"pour les compteurs." + +#: ../Doc/library/collections.rst:314 +msgid "This class method is not implemented for :class:`Counter` objects." +msgstr "" +"Cette méthode de classe n'est pas implémentée pour les objets :class:" +"`Counter`." + +#: ../Doc/library/collections.rst:318 +msgid "" +"Elements are counted from an *iterable* or added-in from another *mapping* " +"(or counter). Like :meth:`dict.update` but adds counts instead of replacing " +"them. Also, the *iterable* is expected to be a sequence of elements, not a " +"sequence of ``(key, value)`` pairs." +msgstr "" +"Les éléments sont comptés à partir d'un itérable ou ajoutés d'un autre " +"dictionnaire (ou compteur). Cette méthode se comporte comme :meth:`dict." +"update` mais additionne les nombres d'occurrences au lieu de les remplacer. " +"De plus, l'itérable doit être une séquence d'éléments et non une séquence de " +"paires ``(clé, valeur)``." + +#: ../Doc/library/collections.rst:323 +msgid "Common patterns for working with :class:`Counter` objects::" +msgstr "Opérations usuelles sur les objets :class:`Counter` ::" + +#: ../Doc/library/collections.rst:335 +msgid "" +"Several mathematical operations are provided for combining :class:`Counter` " +"objects to produce multisets (counters that have counts greater than zero). " +"Addition and subtraction combine counters by adding or subtracting the " +"counts of corresponding elements. Intersection and union return the minimum " +"and maximum of corresponding counts. Each operation can accept inputs with " +"signed counts, but the output will exclude results with counts of zero or " +"less." +msgstr "" +"Quelques opérations mathématiques sont fournies pour combiner des objets :" +"class:`Counter` afin de créer des multiensembles (des compteurs dont les " +"dénombrements des éléments sont strictement supérieurs à zéro). Les " +"additions et soustractions combinent les compteurs en ajoutant ou " +"retranchant les nombres d'occurrences des éléments correspondants. Les " +"intersections et unions renvoient les minimums et maximums des comptages " +"correspondants. Chaque opération peut accepter des entrées avec des " +"comptages relatifs, mais la sortie exclut les résultats avec des comptages " +"négatifs ou nuls." + +#: ../Doc/library/collections.rst:353 +msgid "" +"Unary addition and subtraction are shortcuts for adding an empty counter or " +"subtracting from an empty counter." +msgstr "" +"L'addition et la soustraction unaires (avec un seul terme) sont des " +"raccourcis pour respectivement additionner un compteur avec un compteur vide " +"ou et pour retrancher un compteur d'un compteur vide." + +#: ../Doc/library/collections.rst:362 +msgid "" +"Added support for unary plus, unary minus, and in-place multiset operations." +msgstr "" +"Ajout de la gestion des additions et soustractions unaires, et des " +"remplacements dans les multiensembles." + +#: ../Doc/library/collections.rst:367 +msgid "" +"Counters were primarily designed to work with positive integers to represent " +"running counts; however, care was taken to not unnecessarily preclude use " +"cases needing other types or negative values. To help with those use cases, " +"this section documents the minimum range and type restrictions." +msgstr "" +"Les compteurs ont été conçus essentiellement pour fonctionner avec des " +"entiers naturels pour représenter les dénombrements en cours ; cependant, " +"les cas d'utilisation nécessitant d'autres types ou des valeurs négatives " +"n'ont pas été écartés. Pour vous aider dans ces cas particuliers, cette " +"section documente la plage minimale et les restrictions de type." + +#: ../Doc/library/collections.rst:372 +msgid "" +"The :class:`Counter` class itself is a dictionary subclass with no " +"restrictions on its keys and values. The values are intended to be numbers " +"representing counts, but you *could* store anything in the value field." +msgstr "" +"La classe :class:`Counter` est elle-même une sous-classe de dictionnaire " +"sans restriction particulière sur ces clés ou valeurs. Les valeurs ont " +"vocation à être des nombres représentants des comptages, mais il est " +"*possible* de stocker n'importe quel type de valeur." + +#: ../Doc/library/collections.rst:376 +msgid "" +"The :meth:`~Counter.most_common` method requires only that the values be " +"orderable." +msgstr "" +"La méthode :meth:`~Counter.most_common` exige uniquement que les valeurs " +"soient ordonnables." + +#: ../Doc/library/collections.rst:378 +msgid "" +"For in-place operations such as ``c[key] += 1``, the value type need only " +"support addition and subtraction. So fractions, floats, and decimals would " +"work and negative values are supported. The same is also true for :meth:" +"`~Counter.update` and :meth:`~Counter.subtract` which allow negative and " +"zero values for both inputs and outputs." +msgstr "" +"Les opérations de remplacement telles que ``c[key] += 1`` exigent une valeur " +"dont le type gère l'addition et la soustraction. Cela inclut donc les " +"fractions, les flottants et les décimaux, y compris négatifs. Il en va de " +"même pour :meth:`~Counter.update` et :meth:`~Cointer.substract` qui " +"acceptent des valeurs négatives ou nulles dans les entrées et sorties." + +#: ../Doc/library/collections.rst:384 +msgid "" +"The multiset methods are designed only for use cases with positive values. " +"The inputs may be negative or zero, but only outputs with positive values " +"are created. There are no type restrictions, but the value type needs to " +"support addition, subtraction, and comparison." +msgstr "" +"Les méthodes de multiensembles sont uniquement conçues pour les cas " +"d'utilisation avec des valeurs positives. Les entrées peuvent contenir des " +"valeurs négatives ou nulles, mais seules les sorties avec des valeurs " +"positives sont créées. Il n'y a pas de restriction de type, mais les types " +"des valeurs doivent gérer l'addition, la soustraction et la comparaison." + +#: ../Doc/library/collections.rst:389 +msgid "" +"The :meth:`~Counter.elements` method requires integer counts. It ignores " +"zero and negative counts." +msgstr "" +"La méthode :meth:`~Counter.elements` exige des valeurs entières et ignore " +"les valeurs négatives ou nulles." + +#: ../Doc/library/collections.rst:394 +msgid "" +"`Bag class `_ in Smalltalk." +msgstr "" +"`Bag class `_ dans Smalltalk." + +#: ../Doc/library/collections.rst:397 +msgid "" +"Wikipedia entry for `Multisets `_." +msgstr "" +"L'article Wikipédia sur les `multiensembles `_ sur Wikipédia (ou `l'article en anglais `_)." + +#: ../Doc/library/collections.rst:399 +msgid "" +"`C++ multisets `_ tutorial with examples." +msgstr "" +"Des guides et exemples à propos des `multiensembles en C++ `_." + +#: ../Doc/library/collections.rst:402 +msgid "" +"For mathematical operations on multisets and their use cases, see *Knuth, " +"Donald. The Art of Computer Programming Volume II, Section 4.6.3, Exercise " +"19*." +msgstr "" +"Pour les opérations mathématiques sur les multiensembles et leurs " +"applications, voir *Knuth, Donald. The Art of Computer Programming Volume " +"II, Section 4.6.3, Exercise 19*." + +#: ../Doc/library/collections.rst:406 +msgid "" +"To enumerate all distinct multisets of a given size over a given set of " +"elements, see :func:`itertools.combinations_with_replacement`::" +msgstr "" +"Pour lister tous les multiensembles distincts de même taille parmi un " +"ensemble donné d'éléments, voir :func:`itertools." +"combinations_with_replacement` ::" + +#: ../Doc/library/collections.rst:413 +msgid ":class:`deque` objects" +msgstr "Objets :class:`deque`" + +#: ../Doc/library/collections.rst:417 +msgid "" +"Returns a new deque object initialized left-to-right (using :meth:`append`) " +"with data from *iterable*. If *iterable* is not specified, the new deque is " +"empty." +msgstr "" +"Renvoie un nouvel objet *deque* initialisé de gauche à droite (en utilisant :" +"meth:`append`) avec les données d'*iterable*. Si *iterable* n'est pas " +"spécifié, alors la nouvelle *deque* est vide." + +#: ../Doc/library/collections.rst:420 +msgid "" +"Deques are a generalization of stacks and queues (the name is pronounced " +"\"deck\" and is short for \"double-ended queue\"). Deques support thread-" +"safe, memory efficient appends and pops from either side of the deque with " +"approximately the same O(1) performance in either direction." +msgstr "" +"Les *deques* sont une généralisation des piles et des files (*deque* se " +"prononce \"*dèque*\" et est l'abréviation de l'anglais *double-ended " +"queue*) : il est possible d'ajouter et retirer des éléments par les deux " +"bouts des *deques*. Celles-ci gèrent des ajouts et des retraits utilisables " +"par de multiples fils d'exécution (*thread-safe*) et efficients du point de " +"vue de la mémoire des deux côtés de la *deque*, avec approximativement la " +"même performance en *O(1)* dans les deux sens." + +#: ../Doc/library/collections.rst:425 +msgid "" +"Though :class:`list` objects support similar operations, they are optimized " +"for fast fixed-length operations and incur O(n) memory movement costs for " +"``pop(0)`` and ``insert(0, v)`` operations which change both the size and " +"position of the underlying data representation." +msgstr "" +"Bien que les les objets :class:`list` gèrent des opérations similaires, ils " +"sont optimisés pour des opérations qui ne changent pas la taille de la " +"liste. Les opérations ``pop(0)`` et ``insert(0, v)`` qui changent la taille " +"et la position de la représentation des données sous-jacentes entraînent des " +"coûts de déplacement de mémoire en *O(n)*." + +#: ../Doc/library/collections.rst:431 +msgid "" +"If *maxlen* is not specified or is ``None``, deques may grow to an arbitrary " +"length. Otherwise, the deque is bounded to the specified maximum length. " +"Once a bounded length deque is full, when new items are added, a " +"corresponding number of items are discarded from the opposite end. Bounded " +"length deques provide functionality similar to the ``tail`` filter in Unix. " +"They are also useful for tracking transactions and other pools of data where " +"only the most recent activity is of interest." +msgstr "" +"Si *maxlen* n'est pas spécifié ou vaut *None*, les *deques* peuvent " +"atteindre une taille arbitraire. Sinon, la *deque* est limitée par cette " +"taille maximale. Une fois que celle-ci est atteinte, un ajout d'un ou " +"plusieurs éléments engendre la suppression du nombre correspondant " +"d'éléments à l'autre extrémité de la *deque*. Les *deques* à longueur " +"limitée apportent des fonctionnalités similaire au filtre ``tail`` d'Unix. " +"Elles sont aussi utiles pour le suivi de transactions et autres lots de " +"données où seule l'activité récente est intéressante." + +#: ../Doc/library/collections.rst:440 +msgid "Deque objects support the following methods:" +msgstr "Les objets *deques* gèrent les méthodes suivantes :" + +#: ../Doc/library/collections.rst:444 +msgid "Add *x* to the right side of the deque." +msgstr "Ajoute *x* à l'extrémité droite de la *deque*." + +#: ../Doc/library/collections.rst:449 +msgid "Add *x* to the left side of the deque." +msgstr "Ajoute *x* à l'extrémité gauche de la *deque*." + +#: ../Doc/library/collections.rst:454 +msgid "Remove all elements from the deque leaving it with length 0." +msgstr "" +"Supprime tous les éléments de la *deque* et la laisse avec une longueur de 0." + +#: ../Doc/library/collections.rst:459 +msgid "Create a shallow copy of the deque." +msgstr "Crée une copie superficielle de la *deque*." + +#: ../Doc/library/collections.rst:466 +msgid "Count the number of deque elements equal to *x*." +msgstr "Compte le nombre d'éléments de la *deque* égaux à *x*." + +#: ../Doc/library/collections.rst:473 +msgid "" +"Extend the right side of the deque by appending elements from the iterable " +"argument." +msgstr "" +"Étend la *deque* en ajoutant les éléments de l'itérable en argument à son " +"extrémité droite." + +#: ../Doc/library/collections.rst:479 +msgid "" +"Extend the left side of the deque by appending elements from *iterable*. " +"Note, the series of left appends results in reversing the order of elements " +"in the iterable argument." +msgstr "" +"Étend la *deque* en ajoutant les éléments d'*iterable* à son extrémité " +"gauche. Dans ce cas, notez que la série d'ajouts inverse l'ordre des " +"éléments de l'argument itérable." + +#: ../Doc/library/collections.rst:486 +msgid "" +"Return the position of *x* in the deque (at or after index *start* and " +"before index *stop*). Returns the first match or raises :exc:`ValueError` " +"if not found." +msgstr "" +"Renvoie la position de *x* dans la *deque* (à partir de *start* inclus et " +"jusqu'à *stop* exclus). Renvoie la première correspondance ou lève :exc:" +"`ValueError` si aucune n'est trouvée." + +#: ../Doc/library/collections.rst:495 +msgid "Insert *x* into the deque at position *i*." +msgstr "Insère *x* dans la *deque* à la position *i*." + +#: ../Doc/library/collections.rst:497 +msgid "" +"If the insertion would cause a bounded deque to grow beyond *maxlen*, an :" +"exc:`IndexError` is raised." +msgstr "" +"Si une insertion provoque un dépassement de la taille limitée d'une *deque*, " +"alors elle lève une exception :exc:`IndexError`." + +#: ../Doc/library/collections.rst:505 +msgid "" +"Remove and return an element from the right side of the deque. If no " +"elements are present, raises an :exc:`IndexError`." +msgstr "" +"Retire et renvoie un élément de l'extrémité droite de la *deque*. S'il n'y a " +"aucun élément, lève une exception :exc:`IndexError`." + +#: ../Doc/library/collections.rst:511 +msgid "" +"Remove and return an element from the left side of the deque. If no elements " +"are present, raises an :exc:`IndexError`." +msgstr "" +"Retire et renvoie un élément de l'extrémité gauche de la *deque*. S'il n'y a " +"aucun élément, lève une exception :exc:`IndexError`." + +#: ../Doc/library/collections.rst:517 +msgid "" +"Remove the first occurrence of *value*. If not found, raises a :exc:" +"`ValueError`." +msgstr "" +"Supprime la première occurrence de *value*. Si aucune occurrence n'est " +"trouvée, lève une exception :exc:`ValueError`." + +#: ../Doc/library/collections.rst:523 +msgid "Reverse the elements of the deque in-place and then return ``None``." +msgstr "" +"Inverse le sens des éléments de la *deque* sans créer de copie et renvoie " +"``None``." + +#: ../Doc/library/collections.rst:530 +msgid "" +"Rotate the deque *n* steps to the right. If *n* is negative, rotate to the " +"left." +msgstr "" +"Décale les éléments de la *deque* de *n* places vers la droite (le dernier " +"élément revient au début). Si *n* est négatif, décale vers la gauche." + +#: ../Doc/library/collections.rst:533 +msgid "" +"When the deque is not empty, rotating one step to the right is equivalent to " +"``d.appendleft(d.pop())``, and rotating one step to the left is equivalent " +"to ``d.append(d.popleft())``." +msgstr "" +"Quand la *deque* n'est pas vide, un décalage d'une place vers la droite " +"équivaut à ``d.appendleft(d.pop())`` et un décalage d'une place vers la " +"gauche est équivalent à ``d.append(d.popleft())``." + +#: ../Doc/library/collections.rst:538 +msgid "Deque objects also provide one read-only attribute:" +msgstr "" +"Les objets *deques* fournissent également un attribut en lecture seule :" + +#: ../Doc/library/collections.rst:542 +msgid "Maximum size of a deque or ``None`` if unbounded." +msgstr "La taille maximale d'une *deque*, ou ``None`` si illimitée." + +#: ../Doc/library/collections.rst:547 +msgid "" +"In addition to the above, deques support iteration, pickling, ``len(d)``, " +"``reversed(d)``, ``copy.copy(d)``, ``copy.deepcopy(d)``, membership testing " +"with the :keyword:`in` operator, and subscript references such as " +"``d[-1]``. Indexed access is O(1) at both ends but slows to O(n) in the " +"middle. For fast random access, use lists instead." +msgstr "" +"En plus des méthodes précédentes, les *deques* gèrent l'itération, la " +"sérialisation, ``len(d)``, ``reversed(d)``, ``copy.copy(d)``, ``copy." +"deepcopy(d)``, le test d'appartenance avec l'opérateur :keyword:`in`, et les " +"références en indice comme ``d[-1]``. L'accès par indice est en *O(1)* aux " +"extrémités mais en *O(n)* au milieu. Pour des accès aléatoires rapides, il " +"est préférable d'utiliser des listes." + +#: ../Doc/library/collections.rst:553 +msgid "" +"Starting in version 3.5, deques support ``__add__()``, ``__mul__()``, and " +"``__imul__()``." +msgstr "" +"Depuis la version 3.5, les *deques* gèrent ``__add__()``, ``__mul__()`` et " +"``__imul__()``." + +#: ../Doc/library/collections.rst:556 +msgid "Example:" +msgstr "Exemple :" + +#: ../Doc/library/collections.rst:613 +msgid ":class:`deque` Recipes" +msgstr "Cas pratiques utilisant :class:`deque`" + +#: ../Doc/library/collections.rst:615 +msgid "This section shows various approaches to working with deques." +msgstr "" +"Cette partie montre diverses approches afin de travailler avec les *deques*." + +#: ../Doc/library/collections.rst:617 +msgid "" +"Bounded length deques provide functionality similar to the ``tail`` filter " +"in Unix::" +msgstr "" +"Les *deques* à taille limitée apportent une fonctionnalité similaire au " +"filtre ``tail`` d'Unix ::" + +#: ../Doc/library/collections.rst:625 +msgid "" +"Another approach to using deques is to maintain a sequence of recently added " +"elements by appending to the right and popping to the left::" +msgstr "" +"Une autre approche d'utilisation des *deques* est de maintenir une séquence " +"d'éléments récemment ajoutés en les ajoutant à droite et en retirant les " +"anciens par la gauche ::" + +#: ../Doc/library/collections.rst:640 +msgid "" +"A `round-robin scheduler `_ can be implemented with input iterators stored in a :" +"class:`deque`. Values are yielded from the active iterator in position " +"zero. If that iterator is exhausted, it can be removed with :meth:`~deque." +"popleft`; otherwise, it can be cycled back to the end with the :meth:`~deque." +"rotate` method::" +msgstr "" +"Un `ordonnancement en round-robin `_ peut être implémenté avec des entrées itérateurs " +"stockées dans une :class:`deque`. Les valeurs sont produites par l'itérateur " +"actif en position zéro. Si cet itérateur est épuisé, il peut être retiré " +"avec la méthode :meth:`~deque.popleft` ; ou bien il peut être remis à la fin " +"avec la méthode :meth:`~ deque.rotate` ::" + +#: ../Doc/library/collections.rst:659 +msgid "" +"The :meth:`~deque.rotate` method provides a way to implement :class:`deque` " +"slicing and deletion. For example, a pure Python implementation of ``del " +"d[n]`` relies on the ``rotate()`` method to position elements to be popped::" +msgstr "" +"La méthode :meth:`~deque.rotate` apporte une façon d'implémenter la " +"sélection d'intervalle (*slicing*) et les suppressions pour les :class:" +"`deques`. Par exemple, une implémentation de ``del d[n]`` en Python pur " +"utilise la méthode ``rotate()`` pour mettre en position les éléments à " +"éjecter ::" + +#: ../Doc/library/collections.rst:668 +msgid "" +"To implement :class:`deque` slicing, use a similar approach applying :meth:" +"`~deque.rotate` to bring a target element to the left side of the deque. " +"Remove old entries with :meth:`~deque.popleft`, add new entries with :meth:" +"`~deque.extend`, and then reverse the rotation. With minor variations on " +"that approach, it is easy to implement Forth style stack manipulations such " +"as ``dup``, ``drop``, ``swap``, ``over``, ``pick``, ``rot``, and ``roll``." +msgstr "" +"Pour implémenter le *slicing* pour les :class:`deques `, il est " +"possible d'utiliser une approche similaire en appliquant :meth:`~deque." +"rotate` afin d'apporter un élément cible à l'extrémité gauche de la *deque*. " +"On éjecte les anciennes entrées avec :meth:`~deque.popleft` et on ajoute les " +"nouvelles avec :meth:`~deque.extend`, puis on inverse la rotation. Il est " +"aisé d'implémenter les manipulations des piles inspirées du Forth telles que " +"``dup``, ``drop``, ``swap``, ``over``, ``pick``, ``rot`` et ``roll``." + +#: ../Doc/library/collections.rst:678 +msgid ":class:`defaultdict` objects" +msgstr "Objets :class:`defaultdict`" + +#: ../Doc/library/collections.rst:682 +msgid "" +"Returns a new dictionary-like object. :class:`defaultdict` is a subclass of " +"the built-in :class:`dict` class. It overrides one method and adds one " +"writable instance variable. The remaining functionality is the same as for " +"the :class:`dict` class and is not documented here." +msgstr "" +"Renvoie un nouvel objet qui se comporte comme un dictionnaire. :class:" +"`defaultdict` est une sous-classe de la la classe native :class:`dict`. Elle " +"surcharge une méthode et ajoute une variable d'instance modifiable. Les " +"autres fonctionnalités sont les mêmes que celles des objets :class:`dict` et " +"ne sont pas documentées ici." + +#: ../Doc/library/collections.rst:687 +msgid "" +"The first argument provides the initial value for the :attr:" +"`default_factory` attribute; it defaults to ``None``. All remaining " +"arguments are treated the same as if they were passed to the :class:`dict` " +"constructor, including keyword arguments." +msgstr "" +"Le premier argument fournit la valeur initiale de l'attribut :attr:" +"`default_factory` qui doit être un objet appelable sans paramètre ou " +"``None``, sa valeur par défaut. Tous les autres arguments sont traités comme " +"si on les passait au constructeur de :class:`dict`, y compris les arguments " +"nommés." + +#: ../Doc/library/collections.rst:693 +msgid "" +":class:`defaultdict` objects support the following method in addition to the " +"standard :class:`dict` operations:" +msgstr "" +"En plus des opérations usuelles de :class:`dict`, les objets :class:" +"`defaultdict` gèrent les méthodes supplémentaires suivantes :" + +#: ../Doc/library/collections.rst:698 +msgid "" +"If the :attr:`default_factory` attribute is ``None``, this raises a :exc:" +"`KeyError` exception with the *key* as argument." +msgstr "" +"Si l'attribut :attr:`default_factory` est ``None``, lève une exception :exc:" +"`KeyError` avec *key* comme argument." + +#: ../Doc/library/collections.rst:701 +msgid "" +"If :attr:`default_factory` is not ``None``, it is called without arguments " +"to provide a default value for the given *key*, this value is inserted in " +"the dictionary for the *key*, and returned." +msgstr "" +"Si :attr:`default_fatory`` ne vaut pas ``None``, cet attribut est appelé " +"sans argument pour fournir une valeur par défaut pour la *key* demandée. " +"Cette valeur est insérée dans le dictionnaire avec pour clé *key* et est " +"renvoyée." + +#: ../Doc/library/collections.rst:705 +msgid "" +"If calling :attr:`default_factory` raises an exception this exception is " +"propagated unchanged." +msgstr "" +"Si appeler :attr:`default_factory` lève une exception, celle-ci est " +"transmise inchangée." + +#: ../Doc/library/collections.rst:708 +msgid "" +"This method is called by the :meth:`__getitem__` method of the :class:`dict` " +"class when the requested key is not found; whatever it returns or raises is " +"then returned or raised by :meth:`__getitem__`." +msgstr "" +"Cette méthode est appelée par la méthode :meth:`__getitem__` de la classe :" +"class:`dict` lorsque la clé demandée n'est pas trouvée. Ce qu'elle renvoie " +"ou lève est alors renvoyé ou levé par :meth:`__getitem__`." + +#: ../Doc/library/collections.rst:712 +msgid "" +"Note that :meth:`__missing__` is *not* called for any operations besides :" +"meth:`__getitem__`. This means that :meth:`get` will, like normal " +"dictionaries, return ``None`` as a default rather than using :attr:" +"`default_factory`." +msgstr "" +"Remarquez que :meth:`__missing__` n'est *pas* appelée pour les opérations " +"autres que :meth:`__getitem__`. Cela signifie que :meth:`get` renvoie " +"``None`` comme les dictionnaires natifs dans les cas triviaux et n'utilise " +"pas :attr:`default_factory`." + +#: ../Doc/library/collections.rst:718 +msgid ":class:`defaultdict` objects support the following instance variable:" +msgstr "Les objets :class:`defaultdict` gèrent la variable d'instance :" + +#: ../Doc/library/collections.rst:723 +msgid "" +"This attribute is used by the :meth:`__missing__` method; it is initialized " +"from the first argument to the constructor, if present, or to ``None``, if " +"absent." +msgstr "" +"Cet attribut est utilisé par la méthode :meth:`__missing__` ; il est " +"initialisé par le premier argument passé au constructeur, s'il est spécifié, " +"sinon par ``None``." + +#: ../Doc/library/collections.rst:729 +msgid ":class:`defaultdict` Examples" +msgstr "Exemples utilisant :class:`defaultdict`" + +#: ../Doc/library/collections.rst:731 +msgid "" +"Using :class:`list` as the :attr:`~defaultdict.default_factory`, it is easy " +"to group a sequence of key-value pairs into a dictionary of lists:" +msgstr "" +"Utiliser :class:`list` comme :attr:`~defaultdict.default_factory` facilite " +"le regroupement d'une séquence de paires clé-valeur en un dictionnaire de " +"listes :" + +#: ../Doc/library/collections.rst:742 +msgid "" +"When each key is encountered for the first time, it is not already in the " +"mapping; so an entry is automatically created using the :attr:`~defaultdict." +"default_factory` function which returns an empty :class:`list`. The :meth:" +"`list.append` operation then attaches the value to the new list. When keys " +"are encountered again, the look-up proceeds normally (returning the list for " +"that key) and the :meth:`list.append` operation adds another value to the " +"list. This technique is simpler and faster than an equivalent technique " +"using :meth:`dict.setdefault`:" +msgstr "" +"Lorsque chaque clé est rencontrée pour la première fois, elle n'est pas " +"encore présente dans le dictionnaire, donc une entrée est automatiquement " +"créée grâce à la fonction :attr:`~defaultdict.default_factory` qui renvoie " +"un objet :class:`list` vide. L'opération :meth:`list.append` ajoute la " +"valeur à la nouvelle liste. Quand les clés sont à nouveau rencontrées, la " +"recherche se déroule correctement (elle renvoie la liste de cette clé) et " +"l'opération :meth:`list.append` ajoute une autre valeur à la liste. Cette " +"technique est plus simple et plus rapide qu'une technique équivalente " +"utilisant :meth:`dict.setdefault` :" + +#: ../Doc/library/collections.rst:757 +msgid "" +"Setting the :attr:`~defaultdict.default_factory` to :class:`int` makes the :" +"class:`defaultdict` useful for counting (like a bag or multiset in other " +"languages):" +msgstr "" +"Utiliser :class:`int` comme :attr:`~defaultdict.default_factory` rend la " +"classe :class:`defaultdict` pratique pour le comptage (comme un sac ou multi-" +"ensemble dans d'autres langages) :" + +#: ../Doc/library/collections.rst:769 +msgid "" +"When a letter is first encountered, it is missing from the mapping, so the :" +"attr:`~defaultdict.default_factory` function calls :func:`int` to supply a " +"default count of zero. The increment operation then builds up the count for " +"each letter." +msgstr "" +"Quand une lettre est rencontrée pour la première fois, elle n'est pas dans " +"le dictionnaire, donc la fonction :attr:`~defaultdict.default_factory` " +"appelle :func:`int` pour mettre un nouveau compteur à zéro. L'incrémentation " +"augmente ensuite le comptage pour chaque lettre." + +#: ../Doc/library/collections.rst:773 +msgid "" +"The function :func:`int` which always returns zero is just a special case of " +"constant functions. A faster and more flexible way to create constant " +"functions is to use a lambda function which can supply any constant value " +"(not just zero):" +msgstr "" +"La fonction :func:`int` qui retourne toujours zéro est simplement une " +"fonction constante particulière. Un moyen plus flexible et rapide de créer " +"une fonction constante est d'utiliser une fonction lambda qui peut fournir " +"n'importe quelle valeur constante (pas seulement zéro) :" + +#: ../Doc/library/collections.rst:785 +msgid "" +"Setting the :attr:`~defaultdict.default_factory` to :class:`set` makes the :" +"class:`defaultdict` useful for building a dictionary of sets:" +msgstr "" +"Utiliser :class:`set` comme :attr:`~defaultdict.default_factory` rend la " +"classe :class:`defaultdict` pratique pour créer un dictionnaire d'ensembles :" + +#: ../Doc/library/collections.rst:798 +msgid ":func:`namedtuple` Factory Function for Tuples with Named Fields" +msgstr "" +":func:`namedtuple`: fonction de construction pour *n-uplets* (*tuples*) avec " +"des champs nommés" + +#: ../Doc/library/collections.rst:800 +msgid "" +"Named tuples assign meaning to each position in a tuple and allow for more " +"readable, self-documenting code. They can be used wherever regular tuples " +"are used, and they add the ability to access fields by name instead of " +"position index." +msgstr "" +"Les tuples nommés assignent une signification à chacun de leur élément, ce " +"qui rend le code plus lisible et explicite. Ils peuvent être utilisés " +"partout où les tuples natifs sont utilisés, et ils ajoutent la possibilité " +"d'accéder à leurs champs grâce à leur nom au lieu de leur index de position." + +#: ../Doc/library/collections.rst:806 +msgid "" +"Returns a new tuple subclass named *typename*. The new subclass is used to " +"create tuple-like objects that have fields accessible by attribute lookup as " +"well as being indexable and iterable. Instances of the subclass also have a " +"helpful docstring (with typename and field_names) and a helpful :meth:" +"`__repr__` method which lists the tuple contents in a ``name=value`` format." +msgstr "" +"Renvoie une nouvelle sous-classe de ``tuple`` appelée *typename*. Elle est " +"utilisée pour créer des objets se comportant comme les *tuples* qui ont des " +"champs accessibles par recherche d'attribut en plus d'être indexables et " +"itérables. Les instances de cette sous-classe possèdent aussi une " +"*docstring* explicite (avec *type_name* et les *field_names*) et une " +"méthode :meth:`__repr__` pratique qui liste le contenu du tuple au format " +"``nom=valeur``." + +#: ../Doc/library/collections.rst:812 +msgid "" +"The *field_names* are a sequence of strings such as ``['x', 'y']``. " +"Alternatively, *field_names* can be a single string with each fieldname " +"separated by whitespace and/or commas, for example ``'x y'`` or ``'x, y'``." +msgstr "" +"*field_names* peut être une séquence de chaînes de caractères telle que " +"``['x', 'y']`` ou bien une unique chaîne de caractères où les noms de champs " +"sont séparés par un espace et/ou une virgule, par exemple ``'x y'`` ou ``'x, " +"y'``." + +#: ../Doc/library/collections.rst:816 +msgid "" +"Any valid Python identifier may be used for a fieldname except for names " +"starting with an underscore. Valid identifiers consist of letters, digits, " +"and underscores but do not start with a digit or underscore and cannot be a :" +"mod:`keyword` such as *class*, *for*, *return*, *global*, *pass*, or *raise*." +msgstr "" +"N'importe quel identifiant Python peut être utilisé pour un nom de champ " +"hormis ceux commençant par un tiret bas. Les identifiants valides peuvent " +"contenir des lettres, des chiffres (sauf en première position) et des tirets " +"bas (sauf en première position). Un identifiant ne peut pas être un :mod:" +"`keyword` tel que ``class``, ``for``, ``return``, ``global``, ``pass`` ou " +"``raise``." + +#: ../Doc/library/collections.rst:822 +msgid "" +"If *rename* is true, invalid fieldnames are automatically replaced with " +"positional names. For example, ``['abc', 'def', 'ghi', 'abc']`` is " +"converted to ``['abc', '_1', 'ghi', '_3']``, eliminating the keyword ``def`` " +"and the duplicate fieldname ``abc``." +msgstr "" +"Si *rename* vaut ``True``, alors les noms de champs invalides sont " +"automatiquement renommés en noms positionnels. Par exemple, ``['abc', 'def', " +"'ghi', 'abc']`` est converti en ``['abc, '_1', 'ghi', '_3']`` afin " +"d'éliminer le mot-clé ``def`` et le doublon de ``abc``." + +#: ../Doc/library/collections.rst:827 +msgid "" +"*defaults* can be ``None`` or an :term:`iterable` of default values. Since " +"fields with a default value must come after any fields without a default, " +"the *defaults* are applied to the rightmost parameters. For example, if the " +"fieldnames are ``['x', 'y', 'z']`` and the defaults are ``(1, 2)``, then " +"``x`` will be a required argument, ``y`` will default to ``1``, and ``z`` " +"will default to ``2``." +msgstr "" +"*defaults* peut être ``None`` ou un :term:`iterable` de valeurs par défaut. " +"Comme les champs avec une valeur par défaut doivent être définis après les " +"champs sans valeur par défaut, les *defaults* sont appliqués aux paramètres " +"les plus à droite. Par exemple, si les noms des champs sont ``['x', 'y', " +"'z']`` et les valeurs par défaut ``(1, 2)``, alors ``x`` est un argument " +"obligatoire tandis que ``y`` et ``y`` valent par défaut ``1`` et ``2``." + +#: ../Doc/library/collections.rst:834 +msgid "" +"If *module* is defined, the ``__module__`` attribute of the named tuple is " +"set to that value." +msgstr "" +"Si *module* est spécifié, alors il est assigné à l'attribut ``__module__`` " +"du tuple nommé." + +#: ../Doc/library/collections.rst:837 +msgid "" +"Named tuple instances do not have per-instance dictionaries, so they are " +"lightweight and require no more memory than regular tuples." +msgstr "" +"Les instances de tuples nommés n'ont pas de dictionnaires propres, elles " +"sont donc légères et ne requièrent pas plus de mémoire que les tuples natifs." + +#: ../Doc/library/collections.rst:840 +msgid "Added support for *rename*." +msgstr "Gestion de *rename*." + +#: ../Doc/library/collections.rst:843 +msgid "" +"The *verbose* and *rename* parameters became :ref:`keyword-only arguments " +"`." +msgstr "" +"Les paramètres *verbose* et *rename* deviennent des :ref:`arguments " +"obligatoirement nommés `." + +#: ../Doc/library/collections.rst:847 +msgid "Added the *module* parameter." +msgstr "Ajout du paramètre *module*." + +#: ../Doc/library/collections.rst:850 +msgid "Remove the *verbose* parameter and the :attr:`_source` attribute." +msgstr "Suppression du paramètre *verbose* et de l'attribut :attr:`_source`." + +#: ../Doc/library/collections.rst:853 +msgid "" +"Added the *defaults* parameter and the :attr:`_field_defaults` attribute." +msgstr "" +"Ajout du paramètre *defaults* et de l'attribut :attr:`_field_defaults`." + +#: ../Doc/library/collections.rst:873 +msgid "" +"Named tuples are especially useful for assigning field names to result " +"tuples returned by the :mod:`csv` or :mod:`sqlite3` modules::" +msgstr "" +"Les tuples nommés sont particulièrement utiles pour associer des noms de " +"champs à des tuples renvoyés par les modules :mod:`csv` ou :mod:`sqlite3` ::" + +#: ../Doc/library/collections.rst:889 +msgid "" +"In addition to the methods inherited from tuples, named tuples support three " +"additional methods and two attributes. To prevent conflicts with field " +"names, the method and attribute names start with an underscore." +msgstr "" +"En plus des méthodes héritées de ``tuple``, les tuples nommés implémentent " +"trois méthodes et deux attributs supplémentaires. Pour éviter les conflits " +"avec noms de champs, leurs noms commencent par un tiret bas." + +#: ../Doc/library/collections.rst:895 +msgid "" +"Class method that makes a new instance from an existing sequence or iterable." +msgstr "" +"Méthode de classe qui construit une nouvelle instance à partir d'une " +"séquence ou d'un itérable existant." + +#: ../Doc/library/collections.rst:905 +msgid "" +"Return a new :class:`dict` which maps field names to their corresponding " +"values:" +msgstr "" +"Renvoie un nouveau :class:`dict` qui associe chaque nom de champ à sa valeur " +"correspondante :" + +#: ../Doc/library/collections.rst:914 +msgid "Returns an :class:`OrderedDict` instead of a regular :class:`dict`." +msgstr "Renvoie un :class:`OrderedDict` au lieu d'un :class:`dict` natif." + +#: ../Doc/library/collections.rst:919 +msgid "" +"Return a new instance of the named tuple replacing specified fields with new " +"values::" +msgstr "" +"Renvoie une nouvelle instance du tuple nommé en remplaçant les champs " +"spécifiés par leurs nouvelles valeurs ::" + +#: ../Doc/library/collections.rst:931 +msgid "" +"Tuple of strings listing the field names. Useful for introspection and for " +"creating new named tuple types from existing named tuples." +msgstr "" +"Tuple de chaînes de caractères listant les noms de champs. Pratique pour " +"l'introspection et pour créer de nouveaux types de tuples nommés à partir " +"d'existants." + +#: ../Doc/library/collections.rst:946 +msgid "Dictionary mapping field names to default values." +msgstr "Dictionnaire qui assigne les valeurs par défaut aux noms des champs." + +#: ../Doc/library/collections.rst:956 +msgid "" +"To retrieve a field whose name is stored in a string, use the :func:" +"`getattr` function:" +msgstr "" +"Pour récupérer un champ dont le nom est une chaîne de caractères, utilisez " +"la fonction :func:`getattr` :" + +#: ../Doc/library/collections.rst:962 +msgid "" +"To convert a dictionary to a named tuple, use the ``**`` operator (as " +"described in :ref:`tut-unpacking-arguments`):" +msgstr "" +"Pour convertir un dictionnaire en tuple nommé, utilisez l'opérateur double-" +"étoile (comme expliqué dans :ref:`tut-unpacking-arguments`) :" + +#: ../Doc/library/collections.rst:969 +msgid "" +"Since a named tuple is a regular Python class, it is easy to add or change " +"functionality with a subclass. Here is how to add a calculated field and a " +"fixed-width print format:" +msgstr "" +"Il est aisé d'ajouter ou de modifier les fonctionnalités des tuples nommés " +"grâce à l'héritage puisqu'il s'agit de simples classes. Voici comment " +"ajouter un champ calculé avec une longueur fixe d'affichage :" + +#: ../Doc/library/collections.rst:988 +msgid "" +"The subclass shown above sets ``__slots__`` to an empty tuple. This helps " +"keep memory requirements low by preventing the creation of instance " +"dictionaries." +msgstr "" +"La sous-classe ci-dessus définit ``__slots__`` comme un tuple vide. Cela " +"permet de garder une emprunte mémoire faible en empêchant la création de " +"dictionnaire d'instance." + +#: ../Doc/library/collections.rst:991 +msgid "" +"Subclassing is not useful for adding new, stored fields. Instead, simply " +"create a new named tuple type from the :attr:`~somenamedtuple._fields` " +"attribute:" +msgstr "" +"L'héritage n'est pas pertinent pour ajouter de nouveaux champs. Il est " +"préférable de simplement créer un nouveau type de tuple nommé avec " +"l'attribut :attr:`~somenamedtuple._fields` :" + +#: ../Doc/library/collections.rst:996 +msgid "" +"Docstrings can be customized by making direct assignments to the ``__doc__`` " +"fields:" +msgstr "" +"Les *docstrings* peuvent être personnalisées en modifiant directement " +"l'attribut ``__doc__`` :" + +#: ../Doc/library/collections.rst:1005 +msgid "Property docstrings became writeable." +msgstr "La propriété devient éditable." + +#: ../Doc/library/collections.rst:1008 +msgid "" +"Default values can be implemented by using :meth:`~somenamedtuple._replace` " +"to customize a prototype instance:" +msgstr "" +"Les valeurs par défaut peuvent être implémentées en utilisant :meth:" +"`~somenamedtuple._replace` pour personnaliser une instance prototype :" + +#: ../Doc/library/collections.rst:1019 +msgid "" +"See :class:`typing.NamedTuple` for a way to add type hints for named " +"tuples. It also provides an elegant notation using the :keyword:`class` " +"keyword::" +msgstr "" +"Voir :meth:`typing.NamedTuple` pour un moyen d'ajouter des indications de " +"type pour les tuples nommés. Cela propose aussi une notation élégante " +"utilisant le mot-clé :keyword:`class` ::" + +#: ../Doc/library/collections.rst:1028 +msgid "" +"See :meth:`types.SimpleNamespace` for a mutable namespace based on an " +"underlying dictionary instead of a tuple." +msgstr "" +"Voir :meth:`types.SimpleNamespace` pour un espace de nommage muable basé sur " +"un dictionnaire sous-jacent à la place d'un tuple." + +#: ../Doc/library/collections.rst:1031 +msgid "" +"The :mod:`dataclasses` module provides a decorator and functions for " +"automatically adding generated special methods to user-defined classes." +msgstr "" +"Le module :mod:`dataclasses` fournit un décorateur et des fonctions pour " +"ajouter automatiquement des méthodes spéciales générées aux classes définies " +"par l’utilisateur." + +#: ../Doc/library/collections.rst:1036 +msgid ":class:`OrderedDict` objects" +msgstr "Objets :class:`OrderedDict`" + +#: ../Doc/library/collections.rst:1038 +msgid "" +"Ordered dictionaries are just like regular dictionaries but have some extra " +"capabilities relating to ordering operations. They have become less " +"important now that the built-in :class:`dict` class gained the ability to " +"remember insertion order (this new behavior became guaranteed in Python 3.7)." +msgstr "" +"Les dictionnaires ordonnés sont des dictionnaires comme les autres mais " +"possèdent des capacités supplémentaires pour s'ordonner. Ils sont maintenant " +"moins importants puisque la classe native :class:`dict` sait se souvenir de " +"l'ordre d'insertion (cette fonctionnalité a été garantie par Python 3.7)." + +#: ../Doc/library/collections.rst:1044 +msgid "Some differences from :class:`dict` still remain:" +msgstr "Quelques différences persistent vis-à-vis de :class:`dict` :" + +#: ../Doc/library/collections.rst:1046 +msgid "" +"The regular :class:`dict` was designed to be very good at mapping " +"operations. Tracking insertion order was secondary." +msgstr "" +"Les :class:`dict` classiques ont été conçus pour être performants dans les " +"opérations de correspondance. Garder une trace de l'ordre d'insertion était " +"secondaire." + +#: ../Doc/library/collections.rst:1049 +msgid "" +"The :class:`OrderedDict` was designed to be good at reordering operations. " +"Space efficiency, iteration speed, and the performance of update operations " +"were secondary." +msgstr "" +"Les :class:`OrderedDict` ont été conçus pour être performants dans les " +"opérations de ré-arrangement. L'occupation mémoire, la vitesse de parcours " +"et les performances de mise à jour étaient secondaires." + +#: ../Doc/library/collections.rst:1053 +msgid "" +"Algorithmically, :class:`OrderedDict` can handle frequent reordering " +"operations better than :class:`dict`. This makes it suitable for tracking " +"recent accesses (for example in an `LRU cache `_)." +msgstr "" +"Algorithmiquement, :class:`OrderedDict` gère mieux les ré-arrangements " +"fréquents que :class:`dict`. Ceci la rend adaptée pour suivre les accès les " +"plus récents (par exemple pour implémenter un `cache LRU `_ pour *Least " +"Recently Used* en anglais)." + +#: ../Doc/library/collections.rst:1058 +msgid "" +"The equality operation for :class:`OrderedDict` checks for matching order." +msgstr "" +"Le test d'égalité de :class:`OrderedDict` vérifie si l'ordre correspond." + +#: ../Doc/library/collections.rst:1060 +msgid "" +"The :meth:`popitem` method of :class:`OrderedDict` has a different " +"signature. It accepts an optional argument to specify which item is popped." +msgstr "" +"La méthode :meth:`popitem` de :class:`OrderedDict` possède une signature " +"différente. Elle accepte un argument optionnel pour spécifier quel élément " +"doit être enlevé." + +#: ../Doc/library/collections.rst:1063 +msgid "" +":class:`OrderedDict` has a :meth:`move_to_end` method to efficiently " +"reposition an element to an endpoint." +msgstr "" +":class:`OrderedDict` possède une méthode :meth:`move_to_end` pour déplacer " +"efficacement un élément à la fin." + +#: ../Doc/library/collections.rst:1066 +msgid "Until Python 3.8, :class:`dict` lacked a :meth:`__reversed__` method." +msgstr "" +"Avant Python 3.8, :class:`dict` n'a pas de méthode :meth:`__reversed__`." + +#: ../Doc/library/collections.rst:1071 +msgid "" +"Return an instance of a :class:`dict` subclass that has methods specialized " +"for rearranging dictionary order." +msgstr "" +"Renvoie une instance d'une sous-classe de :class:`dict` qui possède des " +"méthodes spécialisées pour redéfinir l'ordre du dictionnaire." + +#: ../Doc/library/collections.rst:1078 +msgid "" +"The :meth:`popitem` method for ordered dictionaries returns and removes a " +"(key, value) pair. The pairs are returned in :abbr:`LIFO (last-in, first-" +"out)` order if *last* is true or :abbr:`FIFO (first-in, first-out)` order if " +"false." +msgstr "" +"La méthode :meth:`popitem` pour les dictionnaires ordonnés retire et renvoie " +"une paire ``(clé, valeur)``. Les paires sont renvoyées comme pour une pile, " +"c'est-à-dire dernier entré, premier sorti (en anglais :abbr:`LIFO (last-in, " +"first-out)`) si *last* vaut ``True``. Si *last* vaut ``False``, alors les " +"paires sont renvoyées comme pour une file, c'est-à-dire premier entré, " +"premier sorti (en anglais :abbr:`FIFO (first-in, first-out)`)." + +#: ../Doc/library/collections.rst:1085 +msgid "" +"Move an existing *key* to either end of an ordered dictionary. The item is " +"moved to the right end if *last* is true (the default) or to the beginning " +"if *last* is false. Raises :exc:`KeyError` if the *key* does not exist::" +msgstr "" +"Déplace une clé *key* existante à l'une des deux extrémités du " +"dictionnaire : à droite si *last* vaut ``True`` (comportement par défaut) ou " +"à gauche sinon. Lève une exception :exc:`KeyError` si la clé *key* n'est pas " +"trouvée ::" + +#: ../Doc/library/collections.rst:1100 +msgid "" +"In addition to the usual mapping methods, ordered dictionaries also support " +"reverse iteration using :func:`reversed`." +msgstr "" +"En plus des méthodes usuelles des dictionnaires, les dictionnaires ordonnés " +"gèrent l'itération en sens inverse grâce à :func:`reversed`." + +#: ../Doc/library/collections.rst:1103 +msgid "" +"Equality tests between :class:`OrderedDict` objects are order-sensitive and " +"are implemented as ``list(od1.items())==list(od2.items())``. Equality tests " +"between :class:`OrderedDict` objects and other :class:`~collections.abc." +"Mapping` objects are order-insensitive like regular dictionaries. This " +"allows :class:`OrderedDict` objects to be substituted anywhere a regular " +"dictionary is used." +msgstr "" +"Les tests d'égalité entre deux objets :class:`OrderedDict` sont sensibles à " +"l'ordre et sont implémentés comme ceci : ``list(od1.items() == list(od2." +"items())``. Les tests d'égalité entre un objet :class:`OrderedDict` et un " +"objet :class:`~collections.abc.Mapping` ne sont pas sensibles à l'ordre " +"(comme les dictionnaires natifs). Cela permet substituer des objets :class:" +"`OrderedDict` partout où les dictionnaires natifs sont utilisés." + +#: ../Doc/library/collections.rst:1110 +msgid "" +"The items, keys, and values :term:`views ` of :class:" +"`OrderedDict` now support reverse iteration using :func:`reversed`." +msgstr "" +"Les :term:`vues ` d'éléments, de clés et de valeurs de :" +"class:`OrderedDict` gèrent maintenant l'itération en sens inverse en " +"utilisant :func:`reversed`." + +#: ../Doc/library/collections.rst:1114 +msgid "" +"With the acceptance of :pep:`468`, order is retained for keyword arguments " +"passed to the :class:`OrderedDict` constructor and its :meth:`update` method." +msgstr "" +"Suite à l'acceptation de la :pep:`468`, l'ordre des arguments nommés passés " +"au constructeur et à la méthode :meth:`update` de :class:`OrderedDict` est " +"conservé." + +#: ../Doc/library/collections.rst:1120 +msgid ":class:`OrderedDict` Examples and Recipes" +msgstr "Exemples et cas pratiques utilisant :class:`OrderDict`" + +#: ../Doc/library/collections.rst:1122 +msgid "" +"It is straightforward to create an ordered dictionary variant that remembers " +"the order the keys were *last* inserted. If a new entry overwrites an " +"existing entry, the original insertion position is changed and moved to the " +"end::" +msgstr "" +"Il est facile de créer une variante de dictionnaire ordonné qui retient " +"l'ordre dans lequel les clés ont été insérées *en dernier*. Si une nouvelle " +"entrée écrase une existante, la position d'insertion d'origine est modifiée " +"et déplacée à la fin ::" + +#: ../Doc/library/collections.rst:1134 +msgid "" +"An :class:`OrderedDict` would also be useful for implementing variants of :" +"func:`functools.lru_cache`::" +msgstr "" +"Un :class:`OrderedDict` peut aussi être utile pour implémenter des variantes " +"de :func:`functools.lru_cache` ::" + +#: ../Doc/library/collections.rst:1157 +msgid ":class:`UserDict` objects" +msgstr "Objets :class:`UserDict`" + +#: ../Doc/library/collections.rst:1159 +msgid "" +"The class, :class:`UserDict` acts as a wrapper around dictionary objects. " +"The need for this class has been partially supplanted by the ability to " +"subclass directly from :class:`dict`; however, this class can be easier to " +"work with because the underlying dictionary is accessible as an attribute." +msgstr "" +"La classe :class:`UserDict` se comporte comme une surcouche autour des " +"dictionnaires. L'utilité de cette classe est réduite car on peut maintenant " +"hériter directement de :class:`dict`. Cependant, il peut être plus facile de " +"travailler avec celle-ci car le dictionnaire sous-jacent est accessible " +"comme attribut." + +#: ../Doc/library/collections.rst:1167 +msgid "" +"Class that simulates a dictionary. The instance's contents are kept in a " +"regular dictionary, which is accessible via the :attr:`data` attribute of :" +"class:`UserDict` instances. If *initialdata* is provided, :attr:`data` is " +"initialized with its contents; note that a reference to *initialdata* will " +"not be kept, allowing it be used for other purposes." +msgstr "" +"Classe simulant un dictionnaire. Les instances de :class:`UserDict` " +"possèdent un attribut :attr:`data` où est stocké leur contenu sous forme de " +"dictionnaire natif. Si *initialdata* est spécifié, alors :attr:`data` est " +"initialisé avec son contenu. Remarquez qu'une référence vers *initialdata* " +"n'est pas conservée, ce qui permet de l'utiliser pour d'autres tâches." + +#: ../Doc/library/collections.rst:1173 +msgid "" +"In addition to supporting the methods and operations of mappings, :class:" +"`UserDict` instances provide the following attribute:" +msgstr "" +"En plus de gérer les méthodes et opérations des dictionnaires, les instance " +"de :class:`UserDict` fournissent l'attribut suivant :" + +#: ../Doc/library/collections.rst:1178 +msgid "" +"A real dictionary used to store the contents of the :class:`UserDict` class." +msgstr "" +"Un dictionnaire natif où est stocké le contenu de la classe :class:" +"`UserDict`." + +#: ../Doc/library/collections.rst:1184 +msgid ":class:`UserList` objects" +msgstr "Objets :class:`UserList`" + +#: ../Doc/library/collections.rst:1186 +msgid "" +"This class acts as a wrapper around list objects. It is a useful base class " +"for your own list-like classes which can inherit from them and override " +"existing methods or add new ones. In this way, one can add new behaviors to " +"lists." +msgstr "" +"Cette classe agit comme une surcouche autour des objets ``list``. C'est une " +"classe mère utile pour vos classes listes-compatibles qui peuvent en hériter " +"et surcharger les méthodes existantes ou en ajouter de nouvelles. Ainsi, on " +"peut ajouter de nouveaux comportements aux listes." + +#: ../Doc/library/collections.rst:1191 +msgid "" +"The need for this class has been partially supplanted by the ability to " +"subclass directly from :class:`list`; however, this class can be easier to " +"work with because the underlying list is accessible as an attribute." +msgstr "" +"L'utilité de cette classe a été partiellement réduite par la possibilité " +"d'hériter directement de :class:`list`. Cependant, il peut être plus facile " +"de travailler avec cette classe car la liste sous-jacente est accessible via " +"un attribut." + +#: ../Doc/library/collections.rst:1197 +msgid "" +"Class that simulates a list. The instance's contents are kept in a regular " +"list, which is accessible via the :attr:`data` attribute of :class:" +"`UserList` instances. The instance's contents are initially set to a copy " +"of *list*, defaulting to the empty list ``[]``. *list* can be any iterable, " +"for example a real Python list or a :class:`UserList` object." +msgstr "" +"Classe simulant une liste. Les instances de :class:`UserList` possèdent un " +"attribut :attr:`UserList` où est stocké leur contenu sous forme de liste " +"native. Il est initialement une copie de *list*, ou ``[]`` par défaut. " +"*list* peut être un itérable, par exemple une liste native ou un objet :" +"class:`UserList`." + +#: ../Doc/library/collections.rst:1203 +msgid "" +"In addition to supporting the methods and operations of mutable sequences, :" +"class:`UserList` instances provide the following attribute:" +msgstr "" +"En plus de gérer les méthodes et opérations des séquences muables, les " +"instances de :class:`UserList` possèdent l'attribut suivant :" + +#: ../Doc/library/collections.rst:1208 +msgid "" +"A real :class:`list` object used to store the contents of the :class:" +"`UserList` class." +msgstr "" +"Un objet :class:`list` natif utilisé pour stocker le contenu de la classe :" +"class:`UserList`." + +#: ../Doc/library/collections.rst:1211 +msgid "" +"**Subclassing requirements:** Subclasses of :class:`UserList` are expected " +"to offer a constructor which can be called with either no arguments or one " +"argument. List operations which return a new sequence attempt to create an " +"instance of the actual implementation class. To do so, it assumes that the " +"constructor can be called with a single parameter, which is a sequence " +"object used as a data source." +msgstr "" +"**Prérequis pour l'héritage :** Les sous-classe de :class:`UserList` doivent " +"implémenter un constructeur qui peut être appelé avec zéro ou un argument. " +"Les opérations sur les listes qui renvoient une nouvelle séquence essayent " +"de créer une instance de la classe courante. C'est pour cela que le " +"constructeur doit pouvoir être appelé avec un unique paramètre, un objet " +"séquence utilisé comme source de données." + +#: ../Doc/library/collections.rst:1218 +msgid "" +"If a derived class does not wish to comply with this requirement, all of the " +"special methods supported by this class will need to be overridden; please " +"consult the sources for information about the methods which need to be " +"provided in that case." +msgstr "" +"Si une classe fille ne remplit pas cette condition, toutes les méthodes " +"spéciales gérées par cette classe devront être implémentées à nouveau. Merci " +"de consulter les sources pour obtenir des informations sur les méthodes qui " +"doivent être fournies dans ce cas." + +#: ../Doc/library/collections.rst:1224 +msgid ":class:`UserString` objects" +msgstr "Objets :class:`UserString`" + +#: ../Doc/library/collections.rst:1226 +msgid "" +"The class, :class:`UserString` acts as a wrapper around string objects. The " +"need for this class has been partially supplanted by the ability to subclass " +"directly from :class:`str`; however, this class can be easier to work with " +"because the underlying string is accessible as an attribute." +msgstr "" +"La classe :class:`UserString` agit comme une surcouche autour des objets " +"``str``. L'utilité de cette classe a été partiellement réduite par la " +"possibilité d'hériter directement de :class:`str`. Cependant, il peut être " +"plus facile de travailler avec cette classe car la chaîne de caractère sous-" +"jacente est accessible via un attribut." + +#: ../Doc/library/collections.rst:1234 +msgid "" +"Class that simulates a string object. The instance's content is kept in a " +"regular string object, which is accessible via the :attr:`data` attribute " +"of :class:`UserString` instances. The instance's contents are initially set " +"to a copy of *seq*. The *seq* argument can be any object which can be " +"converted into a string using the built-in :func:`str` function." +msgstr "" +"Classe simulant une chaîne de caractères. Les instances de :class:" +"`UserString` possèdent un attribut :attr:`data` où est stocké leur contenu " +"sous forme de chaîne de caractères native. Le contenu de l'instance est " +"initialement une copie de *seq*, qui peut être n'importe quel objet " +"convertible en chaîne de caractère avec la fonction native :func:`str`." + +#: ../Doc/library/collections.rst:1241 +msgid "" +"In addition to supporting the methods and operations of strings, :class:" +"`UserString` instances provide the following attribute:" +msgstr "" +"En plus de gérer les méthodes et opérations sur les chaînes de caractères, " +"les instances de :class:`UserString` possèdent l'attribut suivant :" + +#: ../Doc/library/collections.rst:1246 +msgid "" +"A real :class:`str` object used to store the contents of the :class:" +"`UserString` class." +msgstr "" +"Un objet :class:`str` natif utilisé pour stocker le contenu de la classe :" +"class:`UserString`." + +#: ../Doc/library/collections.rst:1249 +msgid "" +"New methods ``__getnewargs__``, ``__rmod__``, ``casefold``, ``format_map``, " +"``isprintable``, and ``maketrans``." +msgstr "" +"Nouvelles méthodes ``__getnewargs__``, ``__rmod__``, ``casefold``, " +"``format_map``, ``isprintable`` et ``maketrans``." + +#~ msgid "" +#~ "`Recipe for named tuple abstract base class with a metaclass mix-in " +#~ "`_ by Jan Kaliszewski. Besides providing an :" +#~ "term:`abstract base class` for named tuples, it also supports an " +#~ "alternate :term:`metaclass`-based constructor that is convenient for use " +#~ "cases where named tuples are being subclassed." +#~ msgstr "" +#~ "`Cas pratique : classe de base abstraite de tuple nommé grâce à une " +#~ "métaclasse mixin `_ par Jan " +#~ "Kaliszewski. En plus de fournir une :term:`abstract base class` pour les " +#~ "tuples nommés, elle gère un constructeur de :term:`metaclass` pratique " +#~ "dans les cas où l'on hérite de tuples nommés." + +#~ msgid "" +#~ "Ordered dictionaries are just like regular dictionaries but they remember " +#~ "the order that items were inserted. When iterating over an ordered " +#~ "dictionary, the items are returned in the order their keys were first " +#~ "added." +#~ msgstr "" +#~ "En plus de se comporter comme des dictionnaires natifs, les dictionnaires " +#~ "ordonnés mémorisent l'ordre dans lequel les éléments ont été insérés. " +#~ "Quand on itère sur un dictionnaire ordonné, les éléments sont renvoyés " +#~ "dans l'ordre d'insertion des clés." + +#~ msgid "" +#~ "Return an instance of a dict subclass, supporting the usual :class:`dict` " +#~ "methods. An *OrderedDict* is a dict that remembers the order that keys " +#~ "were first inserted. If a new entry overwrites an existing entry, the " +#~ "original insertion position is left unchanged. Deleting an entry and " +#~ "reinserting it will move it to the end." +#~ msgstr "" +#~ "Renvoie une instance d'une sous-classe de ``dict`` qui gère les méthodes " +#~ "usuelles de :class:`dict`. Un objet *OrderedDict* est un dictionnaire qui " +#~ "mémorise l'ordre d'insertion des clés. Si une nouvelle entrée en écrase " +#~ "une autre, sa position reste inchangé. Si une entrée est supprimée puis " +#~ "réinsérée, elle est placée en dernière position." + +#~ msgid "" +#~ "Since an ordered dictionary remembers its insertion order, it can be used " +#~ "in conjunction with sorting to make a sorted dictionary::" +#~ msgstr "" +#~ "Puisqu'un dictionnaire ordonné mémorise l'ordre d'insertion de ses " +#~ "éléments, il peut être utilisé conjointement avec un classement pour " +#~ "créer un dictionnaire trié ::" + +#~ msgid "" +#~ "The new sorted dictionaries maintain their sort order when entries are " +#~ "deleted. But when new keys are added, the keys are appended to the end " +#~ "and the sort is not maintained." +#~ msgstr "" +#~ "Les nouveaux dictionnaires triés gardent leur classement quand des " +#~ "entrées sont supprimées, mais si de nouvelles clés sont ajoutées, celles-" +#~ "ci sont ajoutée à la fin et le classement est perdu." + +#~ msgid "" +#~ "An ordered dictionary can be combined with the :class:`Counter` class so " +#~ "that the counter remembers the order elements are first encountered::" +#~ msgstr "" +#~ "Un dictionnaire ordonné peut être combiné avec la classe :class:`Counter` " +#~ "afin de mémoriser l'ordre dans lequel les éléments ont été ajoutés pour " +#~ "la première fois ::" diff --git a/library/colorsys.po b/library/colorsys.po new file mode 100644 index 000000000..21bd2a53c --- /dev/null +++ b/library/colorsys.po @@ -0,0 +1,96 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-07-05 09:52+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.10\n" + +#: ../Doc/library/colorsys.rst:2 +msgid ":mod:`colorsys` --- Conversions between color systems" +msgstr ":mod:`colorsys` — Conversions entre les systèmes de couleurs" + +#: ../Doc/library/colorsys.rst:9 +msgid "**Source code:** :source:`Lib/colorsys.py`" +msgstr "**Code source :** :source:`Lib/colorsys.py`" + +#: ../Doc/library/colorsys.rst:13 +msgid "" +"The :mod:`colorsys` module defines bidirectional conversions of color values " +"between colors expressed in the RGB (Red Green Blue) color space used in " +"computer monitors and three other coordinate systems: YIQ, HLS (Hue " +"Lightness Saturation) and HSV (Hue Saturation Value). Coordinates in all of " +"these color spaces are floating point values. In the YIQ space, the Y " +"coordinate is between 0 and 1, but the I and Q coordinates can be positive " +"or negative. In all other spaces, the coordinates are all between 0 and 1." +msgstr "" +"Le module :mod:`colorsys` définit les conversions bidirectionnelles des " +"valeurs de couleur entre les couleurs exprimées dans l'espace colorimétrique " +"RVB (Rouge Vert Bleu) utilisé par les écrans d'ordinateur et trois autres " +"systèmes de coordonnées : YIQ, HLS (Hue Lightness Saturation) et HSV (Hue " +"Saturation Value). Les coordonnées dans tous ces espaces colorimétriques " +"sont des valeurs en virgule flottante. Dans l'espace YIQ, la coordonnée Y " +"est comprise entre 0 et 1, mais les coordonnées I et Q peuvent être " +"positives ou négatives. Dans tous les autres espaces, les coordonnées sont " +"toutes comprises entre 0 et 1." + +#: ../Doc/library/colorsys.rst:23 +msgid "" +"More information about color spaces can be found at http://poynton.ca/" +"ColorFAQ.html and https://www.cambridgeincolour.com/tutorials/color-spaces." +"htm." +msgstr "" +"Consultez http://poynton.ca/ColorFAQ.html et https://www.cambridgeincolour." +"com/tutorials/color-spaces.htm pour plus d'informations concernant les " +"espaces colorimétriques." + +#: ../Doc/library/colorsys.rst:27 +msgid "The :mod:`colorsys` module defines the following functions:" +msgstr "Le module :mod:`colorsys` définit les fonctions suivantes :" + +#: ../Doc/library/colorsys.rst:32 +msgid "Convert the color from RGB coordinates to YIQ coordinates." +msgstr "" +"Convertit la couleur des coordonnées RGB (RVB) vers les coordonnées YIQ." + +#: ../Doc/library/colorsys.rst:37 +msgid "Convert the color from YIQ coordinates to RGB coordinates." +msgstr "" +"Convertit la couleur des coordonnées YIQ vers les coordonnées RGB (RVB)." + +#: ../Doc/library/colorsys.rst:42 +msgid "Convert the color from RGB coordinates to HLS coordinates." +msgstr "" +"Convertit la couleur des coordonnées RGB (RVB) vers les coordonnées HLS " +"(TSV)." + +#: ../Doc/library/colorsys.rst:47 +msgid "Convert the color from HLS coordinates to RGB coordinates." +msgstr "" +"Convertit la couleur des coordonnées HLS (TSV) vers les coordonnées RGB " +"(RVB)." + +#: ../Doc/library/colorsys.rst:52 +msgid "Convert the color from RGB coordinates to HSV coordinates." +msgstr "" +"Convertit la couleur des coordonnées RGB (RVB) vers les coordonnées HSV " +"(TSV)." + +#: ../Doc/library/colorsys.rst:57 +msgid "Convert the color from HSV coordinates to RGB coordinates." +msgstr "" +"Convertit la couleur des coordonnées HSV (TSV) vers les coordonnées RGB " +"(RVB)." + +#: ../Doc/library/colorsys.rst:59 +msgid "Example::" +msgstr "Exemple ::" diff --git a/library/compileall.po b/library/compileall.po new file mode 100644 index 000000000..e4b841d36 --- /dev/null +++ b/library/compileall.po @@ -0,0 +1,401 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/compileall.rst:2 +msgid ":mod:`compileall` --- Byte-compile Python libraries" +msgstr "" +":mod:`compileall` — Génération du code intermédiaire des bibliothèques Python" + +#: ../Doc/library/compileall.rst:7 +msgid "**Source code:** :source:`Lib/compileall.py`" +msgstr "**Code source :** :source:`Lib/compileall.py`" + +#: ../Doc/library/compileall.rst:11 +msgid "" +"This module provides some utility functions to support installing Python " +"libraries. These functions compile Python source files in a directory tree. " +"This module can be used to create the cached byte-code files at library " +"installation time, which makes them available for use even by users who " +"don't have write permission to the library directories." +msgstr "" +"Ce module contient des fonctions qui facilitent l'installation de " +"bibliothèques Python. Elles compilent, sous forme de code intermédiaire " +"(*bytecode*), les fichiers source situés dans un dossier de votre choix. Ce " +"module est particulièrement utile pour générer les fichiers de code " +"intermédiaire lors de l'installation d'une bibliothèque, les rendant " +"disponibles même pour les utilisateurs qui n'ont pas les privilèges " +"d'écriture dans l'emplacement d'installation." + +#: ../Doc/library/compileall.rst:19 +msgid "Command-line use" +msgstr "Utilisation en ligne de commande" + +#: ../Doc/library/compileall.rst:21 +msgid "" +"This module can work as a script (using :program:`python -m compileall`) to " +"compile Python sources." +msgstr "" +"On peut se servir de ce module comme d'un script (avec :program:`python -m " +"compileall`) pour compiler les fichiers source Python." + +#: ../Doc/library/compileall.rst:29 +msgid "" +"Positional arguments are files to compile or directories that contain source " +"files, traversed recursively. If no argument is given, behave as if the " +"command line was ``-l ``." +msgstr "" +"Les arguments positionnels sont les fichiers à compiler. Ils peuvent aussi " +"être des dossiers, qui sont alors parcourus récursivement pour compiler tous " +"les fichiers de code :file:`.py` qu'ils contiennent. Lorsque le script ne " +"reçoit aucun argument, il fait comme s'il avait été appelé avec `-l `." + +#: ../Doc/library/compileall.rst:35 +msgid "" +"Do not recurse into subdirectories, only compile source code files directly " +"contained in the named or implied directories." +msgstr "" +"Compiler uniquement les fichiers situés directement dans les dossiers passés " +"en argument ou implicites, sans descendre récursivement dans les sous-" +"dossiers." + +#: ../Doc/library/compileall.rst:40 +msgid "Force rebuild even if timestamps are up-to-date." +msgstr "Forcer la recompilation même si les horodatages sont à jour." + +#: ../Doc/library/compileall.rst:44 +msgid "" +"Do not print the list of files compiled. If passed once, error messages will " +"still be printed. If passed twice (``-qq``), all output is suppressed." +msgstr "" +"Supprimer l'affichage des noms des fichiers compilés.Si cette option est " +"donnée une seule fois, les erreurs sont affichées malgré tout. Vous pouvez " +"les supprimer en passant l'option deux fois (c'est-à-dire avec ``-qq``)." + +#: ../Doc/library/compileall.rst:49 +msgid "" +"Directory prepended to the path to each file being compiled. This will " +"appear in compilation time tracebacks, and is also compiled in to the byte-" +"code file, where it will be used in tracebacks and other messages in cases " +"where the source file does not exist at the time the byte-code file is " +"executed." +msgstr "" +"Ce nom de dossier est ajouté en tête du chemin de chaque fichier compilé. Il " +"aura une influence sur les traces d'appels pour les erreurs levées lors de " +"la compilation, et sera reflété dans les fichiers de code intermédiaire, " +"pour utilisation dans les traces d'appels et autres messages si le fichier " +"source n'existe pas au moment de l'exécution." + +#: ../Doc/library/compileall.rst:57 +msgid "" +"regex is used to search the full path to each file considered for " +"compilation, and if the regex produces a match, the file is skipped." +msgstr "" +"Exclut tous les fichiers dont les noms correspondent à l'expression " +"régulière *regex*." + +#: ../Doc/library/compileall.rst:62 +msgid "" +"Read the file ``list`` and add each line that it contains to the list of " +"files and directories to compile. If ``list`` is ``-``, read lines from " +"``stdin``." +msgstr "" +"Ajoute chaque ligne du fichier *list* aux fichiers et dossiers à compiler. " +"*list* peut être ``-``, auquel cas le script lit l'entrée standard." + +#: ../Doc/library/compileall.rst:68 +msgid "" +"Write the byte-code files to their legacy locations and names, which may " +"overwrite byte-code files created by another version of Python. The default " +"is to write files to their :pep:`3147` locations and names, which allows " +"byte-code files from multiple versions of Python to coexist." +msgstr "" +"Utilise l'ancienne manière de nommer et placer les fichiers de code " +"intermédiaire, en écrasant éventuellement ceux générés par une autre version " +"de Python. Par défaut, les règles décrites dans la :pep:`3147` s'appliquent. " +"Elles permettent à différentes versions de l'interpréteur Python de " +"coexister en conservant chacune ses propres fichiers ``.pyc``." + +#: ../Doc/library/compileall.rst:75 +msgid "" +"Control the maximum recursion level for subdirectories. If this is given, " +"then ``-l`` option will not be taken into account. :program:`python -m " +"compileall -r 0` is equivalent to :program:`python -m compileall " +" -l`." +msgstr "" +"Règle le niveau de récursion maximal pour le parcours des sous-dossiers. " +"Lorsque cette option est fournie, ``-l`` est ignorée. :program:`python -m " +"compileall -r 0` revient au même que :program:`python -m " +"compileall -l`." + +#: ../Doc/library/compileall.rst:82 +msgid "" +"Use *N* workers to compile the files within the given directory. If ``0`` is " +"used, then the result of :func:`os.cpu_count()` will be used." +msgstr "" +"Effectue la compilation avec *N* processus parallèles. Si *N* vaut 0, autant " +"de processus sont créés que la machine dispose de processeurs (résultat de :" +"func:`os.cpu_count()`)." + +#: ../Doc/library/compileall.rst:88 +msgid "" +"Control how the generated byte-code files are invalidated at runtime. The " +"``timestamp`` value, means that ``.pyc`` files with the source timestamp and " +"size embedded will be generated. The ``checked-hash`` and ``unchecked-hash`` " +"values cause hash-based pycs to be generated. Hash-based pycs embed a hash " +"of the source file contents rather than a timestamp. See :ref:`pyc-" +"invalidation` for more information on how Python validates bytecode cache " +"files at runtime. The default is ``timestamp`` if the :envvar:" +"`SOURCE_DATE_EPOCH` environment variable is not set, and ``checked-hash`` if " +"the ``SOURCE_DATE_EPOCH`` environment variable is set." +msgstr "" +"Définit la manière dont les fichiers de code intermédiaire seront invalidés " +"au moment de l'exécution. Avec ``timestamp``, les fichiers ``.pyc`` générés " +"comportent l'horodatage de la source et sa taille. Avec ``checked-hash`` ou " +"``unchecked-hash``, ce seront des pyc utilisant le hachage, qui contiennent " +"une empreinte du code source plutôt qu'un horodatage. Voir :ref:`pyc-" +"invalidation` pour plus d'informations sur la manière dont Python valide les " +"fichiers de code intermédiaire conservés en cache lors de l'exécution. La " +"valeur par défaut est ``timestamp``. Cependant, si la variable " +"d'environnement :envvar:`SOURCE_DATE_EPOCH` a été réglée, elle devient " +"``checked-hash``." + +#: ../Doc/library/compileall.rst:99 +msgid "Added the ``-i``, ``-b`` and ``-h`` options." +msgstr "ajout des options ``-i``, ``-b`` et ``-h``." + +#: ../Doc/library/compileall.rst:102 +msgid "" +"Added the ``-j``, ``-r``, and ``-qq`` options. ``-q`` option was changed " +"to a multilevel value. ``-b`` will always produce a byte-code file ending " +"in ``.pyc``, never ``.pyo``." +msgstr "" +"ajout des options ``-j``, ``-r`` et ``-qq`` (l'option ``-q`` peut donc " +"prendre plusieurs niveaux). ``-b`` produit toujours un fichier de code " +"intermédiaire portant l'extension ``.pyc``, et jamais ``.pyo``." + +#: ../Doc/library/compileall.rst:107 +msgid "Added the ``--invalidation-mode`` option." +msgstr "ajout de l'option ``--invalidation-mode``." + +#: ../Doc/library/compileall.rst:111 +msgid "" +"There is no command-line option to control the optimization level used by " +"the :func:`compile` function, because the Python interpreter itself already " +"provides the option: :program:`python -O -m compileall`." +msgstr "" +"Il n'y a pas d'option en ligne de commande pour contrôler le niveau " +"d'optimisation utilisé par la fonction :func:`compile`. Il suffit en effet " +"d'utiliser l'option ``-O`` de l'interpréteur Python lui-même : :program:" +"`python -O -m compileall`." + +#: ../Doc/library/compileall.rst:116 +msgid "Public functions" +msgstr "Fonctions publiques" + +#: ../Doc/library/compileall.rst:120 +msgid "" +"Recursively descend the directory tree named by *dir*, compiling all :file:`." +"py` files along the way. Return a true value if all the files compiled " +"successfully, and a false value otherwise." +msgstr "" +"Parcourt récursivement le dossier *dir*, en compilant tous les fichiers :" +"file:`.py`. Renvoie une valeur vraie si tous les fichiers ont été compilés " +"sans erreur, et une valeur fausse dans le cas contraire." + +#: ../Doc/library/compileall.rst:124 +msgid "" +"The *maxlevels* parameter is used to limit the depth of the recursion; it " +"defaults to ``10``." +msgstr "" + +#: ../Doc/library/compileall.rst:127 +msgid "" +"If *ddir* is given, it is prepended to the path to each file being compiled " +"for use in compilation time tracebacks, and is also compiled in to the byte-" +"code file, where it will be used in tracebacks and other messages in cases " +"where the source file does not exist at the time the byte-code file is " +"executed." +msgstr "" +"Si *ddir* est fourni, il est ajouté en tête du chemin de chaque fichier " +"compilé, ce qui modifie l'affichage des traces d'appels pour les erreurs qui " +"seraient levées lors de la compilation. De plus, il se retrouve dans les " +"fichiers de code intermédiaire, pour utilisation dans les traces et autres " +"messages si le fichier source n'existe pas au moment de l'exécution." + +#: ../Doc/library/compileall.rst:133 +msgid "" +"If *force* is true, modules are re-compiled even if the timestamps are up to " +"date." +msgstr "" +"Si *force* est vrai, les modules sont recompilés même si leurs horodatages " +"sont à jour." + +#: ../Doc/library/compileall.rst:136 +msgid "" +"If *rx* is given, its search method is called on the complete path to each " +"file considered for compilation, and if it returns a true value, the file is " +"skipped." +msgstr "" + +#: ../Doc/library/compileall.rst:140 ../Doc/library/compileall.rst:197 +msgid "" +"If *quiet* is ``False`` or ``0`` (the default), the filenames and other " +"information are printed to standard out. Set to ``1``, only errors are " +"printed. Set to ``2``, all output is suppressed." +msgstr "" +"Si *quiet* est ``False`` ou bien ``0`` (la valeur par défaut), les noms de " +"fichiers et d'autres informations sont affichés sur la sortie standard. Avec " +"``1``, seules les erreurs sont affichées. Avec ``2``, aucune sortie n'est " +"émise." + +#: ../Doc/library/compileall.rst:144 ../Doc/library/compileall.rst:201 +msgid "" +"If *legacy* is true, byte-code files are written to their legacy locations " +"and names, which may overwrite byte-code files created by another version of " +"Python. The default is to write files to their :pep:`3147` locations and " +"names, which allows byte-code files from multiple versions of Python to " +"coexist." +msgstr "" +"Si *legacy* est vrai, les fichiers de code intermédiaire sont nommés et " +"placés selon l'ancienne méthode, en écrasant éventuellement ceux générés par " +"une autre version de Python. Par défaut, les règles décrites dans la :pep:" +"`3147` s'appliquent. Elles permettent à différentes versions de " +"l'interpréteur Python de coexister en conservant chacune ses propres " +"fichiers ``.pyc``." + +#: ../Doc/library/compileall.rst:150 ../Doc/library/compileall.rst:207 +msgid "" +"*optimize* specifies the optimization level for the compiler. It is passed " +"to the built-in :func:`compile` function." +msgstr "" + +#: ../Doc/library/compileall.rst:153 +msgid "" +"The argument *workers* specifies how many workers are used to compile files " +"in parallel. The default is to not use multiple workers. If the platform " +"can't use multiple workers and *workers* argument is given, then sequential " +"compilation will be used as a fallback. If *workers* is lower than ``0``, " +"a :exc:`ValueError` will be raised." +msgstr "" + +#: ../Doc/library/compileall.rst:159 ../Doc/library/compileall.rst:210 +msgid "" +"*invalidation_mode* should be a member of the :class:`py_compile." +"PycInvalidationMode` enum and controls how the generated pycs are " +"invalidated at runtime." +msgstr "" +"*invalidation_mode* doit être un membre de l'énumération :class:`py_compile." +"PycInvalidationMode` et détermine la manière dont les fichiers :file:`.pyc` " +"sont invalidés lorsque l'interpréteur tente de les utiliser." + +#: ../Doc/library/compileall.rst:163 ../Doc/library/compileall.rst:236 +msgid "Added the *legacy* and *optimize* parameter." +msgstr "ajout des paramètres *legacy* et *optimize*." + +#: ../Doc/library/compileall.rst:166 +msgid "Added the *workers* parameter." +msgstr "ajout du paramètre *workers*." + +#: ../Doc/library/compileall.rst:169 ../Doc/library/compileall.rst:216 +#: ../Doc/library/compileall.rst:239 +msgid "*quiet* parameter was changed to a multilevel value." +msgstr "le paramètre *quiet* peut prendre plusieurs niveaux." + +#: ../Doc/library/compileall.rst:172 ../Doc/library/compileall.rst:219 +#: ../Doc/library/compileall.rst:242 +msgid "" +"The *legacy* parameter only writes out ``.pyc`` files, not ``.pyo`` files no " +"matter what the value of *optimize* is." +msgstr "" +"Lorsque le paramètre *legacy* est vrai, des fichiers ``.pyc``, et jamais ``." +"pyo``, sont générés, quel que soit le niveau d'optimisation." + +#: ../Doc/library/compileall.rst:176 +msgid "Accepts a :term:`path-like object`." +msgstr "Accepte un :term:`path-like object`." + +#: ../Doc/library/compileall.rst:179 ../Doc/library/compileall.rst:223 +#: ../Doc/library/compileall.rst:246 +msgid "The *invalidation_mode* parameter was added." +msgstr "ajout du paramètre *invalidation_mode*." + +#: ../Doc/library/compileall.rst:184 +msgid "" +"Compile the file with path *fullname*. Return a true value if the file " +"compiled successfully, and a false value otherwise." +msgstr "" +"Compile le fichier dont le chemin est donné par *fullname*. Renvoie une " +"valeur vraie si et seulement si le fichier est compilé sans erreur." + +#: ../Doc/library/compileall.rst:187 +msgid "" +"If *ddir* is given, it is prepended to the path to the file being compiled " +"for use in compilation time tracebacks, and is also compiled in to the byte-" +"code file, where it will be used in tracebacks and other messages in cases " +"where the source file does not exist at the time the byte-code file is " +"executed." +msgstr "" +"Si *ddir* est fourni, il est ajouté en tête du chemin de chaque fichier " +"compilé, ce qui modifie l'affichage des traces pour les erreurs qui seraient " +"levées lors de la compilation. De plus, il se retrouve dans les fichiers de " +"code intermédiaire, pour utilisation dans les traces et autres messages si " +"le fichier source n'existe pas au moment de l'exécution." + +#: ../Doc/library/compileall.rst:193 +msgid "" +"If *rx* is given, its search method is passed the full path name to the file " +"being compiled, and if it returns a true value, the file is not compiled and " +"``True`` is returned." +msgstr "" + +#: ../Doc/library/compileall.rst:228 +msgid "" +"Byte-compile all the :file:`.py` files found along ``sys.path``. Return a " +"true value if all the files compiled successfully, and a false value " +"otherwise." +msgstr "" +"Compile tous les fichiers :file:`.py` contenus dans les dossiers de ``sys." +"path``. Renvoie une valeur vraie s'ils ont tous été compilés sans erreur, et " +"une valeur fausse dans le cas contraire." + +#: ../Doc/library/compileall.rst:231 +msgid "" +"If *skip_curdir* is true (the default), the current directory is not " +"included in the search. All other parameters are passed to the :func:" +"`compile_dir` function. Note that unlike the other compile functions, " +"``maxlevels`` defaults to ``0``." +msgstr "" +"Si *skip_curdir* est vrai (c'est le cas par défaut), le dossier courant est " +"exclu de la recherche. Les autres paramètres sont passés à :func:" +"`compile_dir`. Notez que contrairement aux autres fonctions de ce module, la " +"valeur par défaut de ``maxlevels`` est ``0``." + +#: ../Doc/library/compileall.rst:249 +msgid "" +"To force a recompile of all the :file:`.py` files in the :file:`Lib/` " +"subdirectory and all its subdirectories::" +msgstr "" +"Pour forcer la recompilation de tous les fichiers :file:`.py` dans le " +"dossier :file:`Lib/` et tous ses sous-dossiers ::" + +#: ../Doc/library/compileall.rst:266 +msgid "Module :mod:`py_compile`" +msgstr "Module :mod:`py_compile`" + +#: ../Doc/library/compileall.rst:267 +msgid "Byte-compile a single source file." +msgstr "Compiler un fichier source unique." diff --git a/library/concurrency.po b/library/concurrency.po new file mode 100644 index 000000000..59e1e2e93 --- /dev/null +++ b/library/concurrency.po @@ -0,0 +1,40 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2019-03-11 14:38+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/concurrency.rst:5 +msgid "Concurrent Execution" +msgstr "Exécution concourante" + +#: ../Doc/library/concurrency.rst:7 +msgid "" +"The modules described in this chapter provide support for concurrent " +"execution of code. The appropriate choice of tool will depend on the task to " +"be executed (CPU bound vs IO bound) and preferred style of development " +"(event driven cooperative multitasking vs preemptive multitasking). Here's " +"an overview:" +msgstr "" +"Les modules documentés dans ce chapitre fournissent des outils d'exécution " +"concourante de code. Le choix de l'outil approprié dépend de la tâche à " +"exécuter (limitée par le CPU (*CPU bound*), ou limitée la vitesse des " +"entrées-sorties (*IO bound*)) et du style de développement désiré " +"(coopération gérée par des évènements ou multitâche préemptif). En voici un " +"survol :" + +#: ../Doc/library/concurrency.rst:25 +msgid "The following are support modules for some of the above services:" +msgstr "" +"Les modules suivants servent de fondation pour certains services cités ci-" +"dessus." diff --git a/library/concurrent.futures.po b/library/concurrent.futures.po new file mode 100644 index 000000000..df8fcbb70 --- /dev/null +++ b/library/concurrent.futures.po @@ -0,0 +1,526 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/concurrent.futures.rst:2 +msgid ":mod:`concurrent.futures` --- Launching parallel tasks" +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:9 +msgid "" +"**Source code:** :source:`Lib/concurrent/futures/thread.py` and :source:`Lib/" +"concurrent/futures/process.py`" +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:14 +msgid "" +"The :mod:`concurrent.futures` module provides a high-level interface for " +"asynchronously executing callables." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:17 +msgid "" +"The asynchronous execution can be performed with threads, using :class:" +"`ThreadPoolExecutor`, or separate processes, using :class:" +"`ProcessPoolExecutor`. Both implement the same interface, which is defined " +"by the abstract :class:`Executor` class." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:24 +msgid "Executor Objects" +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:28 +msgid "" +"An abstract class that provides methods to execute calls asynchronously. It " +"should not be used directly, but through its concrete subclasses." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:33 +msgid "" +"Schedules the callable, *fn*, to be executed as ``fn(*args **kwargs)`` and " +"returns a :class:`Future` object representing the execution of the " +"callable. ::" +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:43 +msgid "Similar to :func:`map(func, *iterables) ` except:" +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:45 +msgid "the *iterables* are collected immediately rather than lazily;" +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:47 +msgid "" +"*func* is executed asynchronously and several calls to *func* may be made " +"concurrently." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:50 +msgid "" +"The returned iterator raises a :exc:`concurrent.futures.TimeoutError` if :" +"meth:`~iterator.__next__` is called and the result isn't available after " +"*timeout* seconds from the original call to :meth:`Executor.map`. *timeout* " +"can be an int or a float. If *timeout* is not specified or ``None``, there " +"is no limit to the wait time." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:56 +msgid "" +"If a *func* call raises an exception, then that exception will be raised " +"when its value is retrieved from the iterator." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:59 +msgid "" +"When using :class:`ProcessPoolExecutor`, this method chops *iterables* into " +"a number of chunks which it submits to the pool as separate tasks. The " +"(approximate) size of these chunks can be specified by setting *chunksize* " +"to a positive integer. For very long iterables, using a large value for " +"*chunksize* can significantly improve performance compared to the default " +"size of 1. With :class:`ThreadPoolExecutor`, *chunksize* has no effect." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:67 +msgid "Added the *chunksize* argument." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:72 +msgid "" +"Signal the executor that it should free any resources that it is using when " +"the currently pending futures are done executing. Calls to :meth:`Executor." +"submit` and :meth:`Executor.map` made after shutdown will raise :exc:" +"`RuntimeError`." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:77 +msgid "" +"If *wait* is ``True`` then this method will not return until all the pending " +"futures are done executing and the resources associated with the executor " +"have been freed. If *wait* is ``False`` then this method will return " +"immediately and the resources associated with the executor will be freed " +"when all pending futures are done executing. Regardless of the value of " +"*wait*, the entire Python program will not exit until all pending futures " +"are done executing." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:85 +msgid "" +"You can avoid having to call this method explicitly if you use the :keyword:" +"`with` statement, which will shutdown the :class:`Executor` (waiting as if :" +"meth:`Executor.shutdown` were called with *wait* set to ``True``)::" +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:99 +msgid "ThreadPoolExecutor" +msgstr "ThreadPoolExecutor" + +#: ../Doc/library/concurrent.futures.rst:101 +msgid "" +":class:`ThreadPoolExecutor` is an :class:`Executor` subclass that uses a " +"pool of threads to execute calls asynchronously." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:104 +msgid "" +"Deadlocks can occur when the callable associated with a :class:`Future` " +"waits on the results of another :class:`Future`. For example::" +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:123 +msgid "And::" +msgstr "Et ::" + +#: ../Doc/library/concurrent.futures.rst:137 +msgid "" +"An :class:`Executor` subclass that uses a pool of at most *max_workers* " +"threads to execute calls asynchronously." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:140 +msgid "" +"*initializer* is an optional callable that is called at the start of each " +"worker thread; *initargs* is a tuple of arguments passed to the " +"initializer. Should *initializer* raise an exception, all currently pending " +"jobs will raise a :exc:`~concurrent.futures.thread.BrokenThreadPool`, as " +"well as any attempt to submit more jobs to the pool." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:146 +msgid "" +"If *max_workers* is ``None`` or not given, it will default to the number of " +"processors on the machine, multiplied by ``5``, assuming that :class:" +"`ThreadPoolExecutor` is often used to overlap I/O instead of CPU work and " +"the number of workers should be higher than the number of workers for :class:" +"`ProcessPoolExecutor`." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:154 +msgid "" +"The *thread_name_prefix* argument was added to allow users to control the :" +"class:`threading.Thread` names for worker threads created by the pool for " +"easier debugging." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:159 +#: ../Doc/library/concurrent.futures.rst:243 +msgid "Added the *initializer* and *initargs* arguments." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:166 +msgid "ThreadPoolExecutor Example" +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:198 +msgid "ProcessPoolExecutor" +msgstr "ProcessPoolExecutor" + +#: ../Doc/library/concurrent.futures.rst:200 +msgid "" +"The :class:`ProcessPoolExecutor` class is an :class:`Executor` subclass that " +"uses a pool of processes to execute calls asynchronously. :class:" +"`ProcessPoolExecutor` uses the :mod:`multiprocessing` module, which allows " +"it to side-step the :term:`Global Interpreter Lock` but also means that only " +"picklable objects can be executed and returned." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:206 +msgid "" +"The ``__main__`` module must be importable by worker subprocesses. This " +"means that :class:`ProcessPoolExecutor` will not work in the interactive " +"interpreter." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:209 +msgid "" +"Calling :class:`Executor` or :class:`Future` methods from a callable " +"submitted to a :class:`ProcessPoolExecutor` will result in deadlock." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:214 +msgid "" +"An :class:`Executor` subclass that executes calls asynchronously using a " +"pool of at most *max_workers* processes. If *max_workers* is ``None`` or " +"not given, it will default to the number of processors on the machine. If " +"*max_workers* is lower or equal to ``0``, then a :exc:`ValueError` will be " +"raised. On Windows, *max_workers* must be equal or lower than ``61``. If it " +"is not then :exc:`ValueError` will be raised. If *max_workers* is ``None``, " +"then the default chosen will be at most ``61``, even if more processors are " +"available. *mp_context* can be a multiprocessing context or None. It will be " +"used to launch the workers. If *mp_context* is ``None`` or not given, the " +"default multiprocessing context is used." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:227 +msgid "" +"*initializer* is an optional callable that is called at the start of each " +"worker process; *initargs* is a tuple of arguments passed to the " +"initializer. Should *initializer* raise an exception, all currently pending " +"jobs will raise a :exc:`~concurrent.futures.process.BrokenProcessPool`, as " +"well any attempt to submit more jobs to the pool." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:233 +msgid "" +"When one of the worker processes terminates abruptly, a :exc:" +"`BrokenProcessPool` error is now raised. Previously, behaviour was " +"undefined but operations on the executor or its futures would often freeze " +"or deadlock." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:239 +msgid "" +"The *mp_context* argument was added to allow users to control the " +"start_method for worker processes created by the pool." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:249 +msgid "ProcessPoolExecutor Example" +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:283 +msgid "Future Objects" +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:285 +msgid "" +"The :class:`Future` class encapsulates the asynchronous execution of a " +"callable. :class:`Future` instances are created by :meth:`Executor.submit`." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:290 +msgid "" +"Encapsulates the asynchronous execution of a callable. :class:`Future` " +"instances are created by :meth:`Executor.submit` and should not be created " +"directly except for testing." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:296 +msgid "" +"Attempt to cancel the call. If the call is currently being executed or " +"finished running and cannot be cancelled then the method will return " +"``False``, otherwise the call will be cancelled and the method will return " +"``True``." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:303 +msgid "Return ``True`` if the call was successfully cancelled." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:307 +msgid "" +"Return ``True`` if the call is currently being executed and cannot be " +"cancelled." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:312 +msgid "" +"Return ``True`` if the call was successfully cancelled or finished running." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:317 +msgid "" +"Return the value returned by the call. If the call hasn't yet completed then " +"this method will wait up to *timeout* seconds. If the call hasn't completed " +"in *timeout* seconds, then a :exc:`concurrent.futures.TimeoutError` will be " +"raised. *timeout* can be an int or float. If *timeout* is not specified or " +"``None``, there is no limit to the wait time." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:324 +#: ../Doc/library/concurrent.futures.rst:338 +msgid "" +"If the future is cancelled before completing then :exc:`.CancelledError` " +"will be raised." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:327 +msgid "If the call raised, this method will raise the same exception." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:331 +msgid "" +"Return the exception raised by the call. If the call hasn't yet completed " +"then this method will wait up to *timeout* seconds. If the call hasn't " +"completed in *timeout* seconds, then a :exc:`concurrent.futures." +"TimeoutError` will be raised. *timeout* can be an int or float. If " +"*timeout* is not specified or ``None``, there is no limit to the wait time." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:341 +msgid "If the call completed without raising, ``None`` is returned." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:345 +msgid "" +"Attaches the callable *fn* to the future. *fn* will be called, with the " +"future as its only argument, when the future is cancelled or finishes " +"running." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:349 +msgid "" +"Added callables are called in the order that they were added and are always " +"called in a thread belonging to the process that added them. If the " +"callable raises an :exc:`Exception` subclass, it will be logged and " +"ignored. If the callable raises a :exc:`BaseException` subclass, the " +"behavior is undefined." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:355 +msgid "" +"If the future has already completed or been cancelled, *fn* will be called " +"immediately." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:358 +msgid "" +"The following :class:`Future` methods are meant for use in unit tests and :" +"class:`Executor` implementations." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:363 +msgid "" +"This method should only be called by :class:`Executor` implementations " +"before executing the work associated with the :class:`Future` and by unit " +"tests." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:367 +msgid "" +"If the method returns ``False`` then the :class:`Future` was cancelled, i." +"e. :meth:`Future.cancel` was called and returned `True`. Any threads " +"waiting on the :class:`Future` completing (i.e. through :func:`as_completed` " +"or :func:`wait`) will be woken up." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:372 +msgid "" +"If the method returns ``True`` then the :class:`Future` was not cancelled " +"and has been put in the running state, i.e. calls to :meth:`Future.running` " +"will return `True`." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:376 +msgid "" +"This method can only be called once and cannot be called after :meth:`Future." +"set_result` or :meth:`Future.set_exception` have been called." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:382 +msgid "" +"Sets the result of the work associated with the :class:`Future` to *result*." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:385 +#: ../Doc/library/concurrent.futures.rst:393 +msgid "" +"This method should only be used by :class:`Executor` implementations and " +"unit tests." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:390 +msgid "" +"Sets the result of the work associated with the :class:`Future` to the :" +"class:`Exception` *exception*." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:398 +msgid "Module Functions" +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:402 +msgid "" +"Wait for the :class:`Future` instances (possibly created by different :class:" +"`Executor` instances) given by *fs* to complete. Returns a named 2-tuple of " +"sets. The first set, named ``done``, contains the futures that completed " +"(finished or cancelled futures) before the wait completed. The second set, " +"named ``not_done``, contains the futures that did not complete (pending or " +"running futures)." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:409 +msgid "" +"*timeout* can be used to control the maximum number of seconds to wait " +"before returning. *timeout* can be an int or float. If *timeout* is not " +"specified or ``None``, there is no limit to the wait time." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:413 +msgid "" +"*return_when* indicates when this function should return. It must be one of " +"the following constants:" +msgstr "" +"*return_when* indique quand la fonction doit se terminer. Il peut prendre " +"les valeurs suivantes :" + +#: ../Doc/library/concurrent.futures.rst:419 +msgid "Constant" +msgstr "Constante" + +#: ../Doc/library/concurrent.futures.rst:419 +msgid "Description" +msgstr "Description" + +#: ../Doc/library/concurrent.futures.rst:421 +msgid ":const:`FIRST_COMPLETED`" +msgstr ":const:`FIRST_COMPLETED`" + +#: ../Doc/library/concurrent.futures.rst:421 +msgid "The function will return when any future finishes or is cancelled." +msgstr "" +"La fonction se termine lorsque n'importe quel futur se termine ou est annulé." + +#: ../Doc/library/concurrent.futures.rst:424 +msgid ":const:`FIRST_EXCEPTION`" +msgstr ":const:`FIRST_EXCEPTION`" + +#: ../Doc/library/concurrent.futures.rst:424 +msgid "" +"The function will return when any future finishes by raising an exception. " +"If no future raises an exception then it is equivalent to :const:" +"`ALL_COMPLETED`." +msgstr "" +"La fonction se termine lorsque n'importe quel futur se termine en levant une " +"exception. Si aucun *futur* ne lève d'exception, équivaut à :const:" +"`ALL_COMPLETED`." + +#: ../Doc/library/concurrent.futures.rst:430 +msgid ":const:`ALL_COMPLETED`" +msgstr ":const:`ALL_COMPLETED`" + +#: ../Doc/library/concurrent.futures.rst:430 +msgid "The function will return when all futures finish or are cancelled." +msgstr "" +"La fonction se termine lorsque les *futurs* sont tous finis ou annulés." + +#: ../Doc/library/concurrent.futures.rst:436 +msgid "" +"Returns an iterator over the :class:`Future` instances (possibly created by " +"different :class:`Executor` instances) given by *fs* that yields futures as " +"they complete (finished or cancelled futures). Any futures given by *fs* " +"that are duplicated will be returned once. Any futures that completed " +"before :func:`as_completed` is called will be yielded first. The returned " +"iterator raises a :exc:`concurrent.futures.TimeoutError` if :meth:`~iterator." +"__next__` is called and the result isn't available after *timeout* seconds " +"from the original call to :func:`as_completed`. *timeout* can be an int or " +"float. If *timeout* is not specified or ``None``, there is no limit to the " +"wait time." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:450 +msgid ":pep:`3148` -- futures - execute computations asynchronously" +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:450 +msgid "" +"The proposal which described this feature for inclusion in the Python " +"standard library." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:455 +msgid "Exception classes" +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:461 +msgid "Raised when a future is cancelled." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:465 +msgid "Raised when a future operation exceeds the given timeout." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:469 +msgid "" +"Derived from :exc:`RuntimeError`, this exception class is raised when an " +"executor is broken for some reason, and cannot be used to submit or execute " +"new tasks." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:479 +msgid "" +"Derived from :exc:`~concurrent.futures.BrokenExecutor`, this exception class " +"is raised when one of the workers of a :class:`ThreadPoolExecutor` has " +"failed initializing." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:489 +msgid "" +"Derived from :exc:`~concurrent.futures.BrokenExecutor` (formerly :exc:" +"`RuntimeError`), this exception class is raised when one of the workers of " +"a :class:`ProcessPoolExecutor` has terminated in a non-clean fashion (for " +"example, if it was killed from the outside)." +msgstr "" diff --git a/library/concurrent.po b/library/concurrent.po new file mode 100644 index 000000000..0d9fef59b --- /dev/null +++ b/library/concurrent.po @@ -0,0 +1,27 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-10-18 09:28+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/concurrent.rst:2 +msgid "The :mod:`concurrent` package" +msgstr "Le paquet :mod:`concurrent`" + +#: ../Doc/library/concurrent.rst:4 +msgid "Currently, there is only one module in this package:" +msgstr "Il n'y a actuellement qu'un module dans ce paquet :" + +#: ../Doc/library/concurrent.rst:6 +msgid ":mod:`concurrent.futures` -- Launching parallel tasks" +msgstr ":mod:`concurrent.futures` -- Lancer des tâches en parallèle" diff --git a/library/configparser.po b/library/configparser.po new file mode 100644 index 000000000..950f8a656 --- /dev/null +++ b/library/configparser.po @@ -0,0 +1,1370 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/configparser.rst:2 +msgid ":mod:`configparser` --- Configuration file parser" +msgstr ":mod:`configparser` — Lecture et écriture de fichiers de configuration" + +#: ../Doc/library/configparser.rst:14 +msgid "**Source code:** :source:`Lib/configparser.py`" +msgstr "**Code source :** :source:`Lib/configparser.py`" + +#: ../Doc/library/configparser.rst:24 +msgid "" +"This module provides the :class:`ConfigParser` class which implements a " +"basic configuration language which provides a structure similar to what's " +"found in Microsoft Windows INI files. You can use this to write Python " +"programs which can be customized by end users easily." +msgstr "" +"Ce module fournit la classe :class:`ConfigParser`. Cette classe implémente " +"un langage de configuration basique, proche de ce que l'on peut trouver dans " +"les fichiers *INI* de Microsoft Windows. Vous pouvez utiliser ce module pour " +"écrire des programmes Python qui sont facilement configurables par " +"l'utilisateur final." + +#: ../Doc/library/configparser.rst:31 +msgid "" +"This library does *not* interpret or write the value-type prefixes used in " +"the Windows Registry extended version of INI syntax." +msgstr "" +"Ce module *n'implémente pas* la version étendue de la syntaxe *INI* qui " +"permet de lire ou d'écrire des valeurs dans la base de registre Windows en " +"utilisant divers préfixes." + +#: ../Doc/library/configparser.rst:38 +msgid "Module :mod:`shlex`" +msgstr "Module :mod:`shlex`" + +#: ../Doc/library/configparser.rst:37 +msgid "" +"Support for creating Unix shell-like mini-languages which can be used as an " +"alternate format for application configuration files." +msgstr "" +"Ce module fournit les outils permettant de créer des mini-langages de " +"programmation ressemblant au shell Unix, qui peuvent être utilisés comme " +"alternative pour les fichiers de configuration d'une application." + +#: ../Doc/library/configparser.rst:41 +msgid "Module :mod:`json`" +msgstr "Module :mod:`json`" + +#: ../Doc/library/configparser.rst:41 +msgid "" +"The json module implements a subset of JavaScript syntax which can also be " +"used for this purpose." +msgstr "" +"Le module *json* implémente un sous-ensemble de la syntaxe JavaScript, qui " +"peut aussi être utilisée à cet effet." + +#: ../Doc/library/configparser.rst:51 +msgid "Quick Start" +msgstr "Premiers pas" + +#: ../Doc/library/configparser.rst:53 +msgid "Let's take a very basic configuration file that looks like this:" +msgstr "" +"Prenons pour exemple un fichier de configuration très simple ressemblant à " +"ceci :" + +#: ../Doc/library/configparser.rst:70 +msgid "" +"The structure of INI files is described `in the following section " +"<#supported-ini-file-structure>`_. Essentially, the file consists of " +"sections, each of which contains keys with values. :mod:`configparser` " +"classes can read and write such files. Let's start by creating the above " +"configuration file programmatically." +msgstr "" +"La structure des fichiers *INI* est décrite dans la `section suivante " +"<#supported-ini-file-structure>`_. En bref, chaque fichier est constitué de " +"sections, chacune des sections comprenant des clés associées à des valeurs. " +"Les classes du module :mod:`configparser` peuvent écrire et lire de tels " +"fichiers. Commençons par le code qui permet de générer le fichier ci-dessus." + +#: ../Doc/library/configparser.rst:94 +msgid "" +"As you can see, we can treat a config parser much like a dictionary. There " +"are differences, `outlined later <#mapping-protocol-access>`_, but the " +"behavior is very close to what you would expect from a dictionary." +msgstr "" +"Comme vous pouvez le voir, nous pouvons manipuler l'instance renvoyée par " +"l'analyse du fichier de configuration comme s'il s'agissait d'un " +"dictionnaire. Il y a des différences, comme `explicité ci-dessous <#mapping-" +"protocol-access>`_, mais le comportement de l'instance est très proche de ce " +"que vous pourriez attendre d'un dictionnaire." + +#: ../Doc/library/configparser.rst:98 +msgid "" +"Now that we have created and saved a configuration file, let's read it back " +"and explore the data it holds." +msgstr "" +"Nous venons de créer et sauvegarder un fichier de configuration. Voyons " +"maintenant comment nous pouvons le lire et accéder aux données qu'il " +"contient." + +#: ../Doc/library/configparser.rst:133 +msgid "" +"As we can see above, the API is pretty straightforward. The only bit of " +"magic involves the ``DEFAULT`` section which provides default values for all " +"other sections [1]_. Note also that keys in sections are case-insensitive " +"and stored in lowercase [1]_." +msgstr "" +"Comme vous le voyez, l'API est assez simple à utiliser. La seule partie un " +"peu magique concerne la section ``DEFAULT``, qui fournit les valeurs par " +"défaut pour toutes les autres sections [1]_. Notez également que les clés à " +"l’intérieur des sections ne sont pas sensibles à la casse et qu'elles sont " +"stockées en minuscules. [1]_." + +#: ../Doc/library/configparser.rst:140 +msgid "Supported Datatypes" +msgstr "Types de données prises en charge" + +#: ../Doc/library/configparser.rst:142 +msgid "" +"Config parsers do not guess datatypes of values in configuration files, " +"always storing them internally as strings. This means that if you need " +"other datatypes, you should convert on your own:" +msgstr "" +"Les lecteurs de configuration n'essayent jamais de deviner le type des " +"valeurs présentes dans les fichiers de configuration, et elles sont toujours " +"stockées en tant que chaînes de caractères. Ainsi, si vous avez besoin d'un " +"type différent, vous devez effectuer la conversion vous-même :" + +#: ../Doc/library/configparser.rst:153 +msgid "" +"Since this task is so common, config parsers provide a range of handy getter " +"methods to handle integers, floats and booleans. The last one is the most " +"interesting because simply passing the value to ``bool()`` would do no good " +"since ``bool('False')`` is still ``True``. This is why config parsers also " +"provide :meth:`~ConfigParser.getboolean`. This method is case-insensitive " +"and recognizes Boolean values from ``'yes'``/``'no'``, ``'on'``/``'off'``, " +"``'true'``/``'false'`` and ``'1'``/``'0'`` [1]_. For example:" +msgstr "" +"Puisque que cette tâche doit être fréquemment accomplie, les lecteurs de " +"configurations fournissent un ensemble d'accesseurs permettant de gérer les " +"entiers, les flottants et les booléens plus facilement. Le cas des booléens " +"est le plus pertinent. En effet, vous ne pouvez pas vous contenter " +"d'utiliser la fonction ``bool()`` directement puisque ``bool('False')`` " +"renvoie ``True``. C'est pourquoi les lecteurs fournissent également la " +"méthode :meth:`~ConfigParser.getboolean`. Cette méthode n'est pas sensible à " +"la casse et interprète correctement les valeurs booléennes associées aux " +"chaînes de caractères comme ``'yes'``-``'no'``, ``'on'``-``'off'``, " +"``'true'``-``'false'`` et ``'1'``-``'0'`` [1]_. Par exemple :" + +#: ../Doc/library/configparser.rst:170 +msgid "" +"Apart from :meth:`~ConfigParser.getboolean`, config parsers also provide " +"equivalent :meth:`~ConfigParser.getint` and :meth:`~ConfigParser.getfloat` " +"methods. You can register your own converters and customize the provided " +"ones. [1]_" +msgstr "" +"En plus de :meth:`~ConfigParser.getboolean`, les lecteurs de configurations " +"fournissent également des méthodes similaires comme :meth:`~ConfigParser." +"getint` et :meth:`~ConfigParser.getfloat`. Vous pouvez enregistrer vos " +"propres convertisseurs et personnaliser ceux déjà fournis. [1]_" + +#: ../Doc/library/configparser.rst:176 +msgid "Fallback Values" +msgstr "Valeurs de substitution" + +#: ../Doc/library/configparser.rst:178 +msgid "" +"As with a dictionary, you can use a section's :meth:`get` method to provide " +"fallback values:" +msgstr "" +"Comme pour un dictionnaire, vous pouvez utiliser la méthode :meth:`get` " +"d'une section en spécifiant une valeur de substitution :" + +#: ../Doc/library/configparser.rst:191 +msgid "" +"Please note that default values have precedence over fallback values. For " +"instance, in our example the ``'CompressionLevel'`` key was specified only " +"in the ``'DEFAULT'`` section. If we try to get it from the section " +"``'topsecret.server.com'``, we will always get the default, even if we " +"specify a fallback:" +msgstr "" +"Notez que les valeurs par défaut sont prioritaires par rapport aux valeurs " +"de substitution. Dans note exemple, la valeur de la clé ``CompressionLevel`` " +"était spécifiée uniquement dans la section ``DEFAULT``. Si nous essayons de " +"la récupérer depuis la section ``'topsecret.server.com'``, nous obtenons la " +"valeur par défaut, même en ayant spécifié une valeur de substitution :" + +#: ../Doc/library/configparser.rst:202 +msgid "" +"One more thing to be aware of is that the parser-level :meth:`get` method " +"provides a custom, more complex interface, maintained for backwards " +"compatibility. When using this method, a fallback value can be provided via " +"the ``fallback`` keyword-only argument:" +msgstr "" +"Il est important de savoir que la méthode :meth:`get` appelée au niveau de " +"l'analyseur fournit une interface particulière et plus complexe, qui est " +"maintenue pour des raisons de rétrocompatibilité. Vous pouvez fournir une " +"valeur de substitution via l'argument obligatoirement nommé ``fallback`` :" + +#: ../Doc/library/configparser.rst:213 +msgid "" +"The same ``fallback`` argument can be used with the :meth:`~ConfigParser." +"getint`, :meth:`~ConfigParser.getfloat` and :meth:`~ConfigParser.getboolean` " +"methods, for example:" +msgstr "" +"L'argument ``fallback`` peut être utilisé de la même façon avec les " +"méthodes :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat` et :" +"meth:`~ConfigParser.getboolean`. Par exemple :" + +#: ../Doc/library/configparser.rst:229 +msgid "Supported INI File Structure" +msgstr "Structure des fichiers *INI* prise en change" + +#: ../Doc/library/configparser.rst:231 +msgid "" +"A configuration file consists of sections, each led by a ``[section]`` " +"header, followed by key/value entries separated by a specific string (``=`` " +"or ``:`` by default [1]_). By default, section names are case sensitive but " +"keys are not [1]_. Leading and trailing whitespace is removed from keys and " +"values. Values can be omitted, in which case the key/value delimiter may " +"also be left out. Values can also span multiple lines, as long as they are " +"indented deeper than the first line of the value. Depending on the parser's " +"mode, blank lines may be treated as parts of multiline values or ignored." +msgstr "" +"Un fichier de configuration est constitué de sections. Chacune des sections " +"commence par un en-tête ``[section]``, suivi d'une liste de définitions clés-" +"valeurs séparées par une chaîne de caractères spécifique (``=`` ou ``:`` par " +"défaut [1]_). Par défaut, les noms des sections sont sensibles à la casse " +"mais pas les clés [1]_. Les caractères d'espacement en début et en fin des " +"clés et des valeurs sont supprimés. Les valeurs peuvent être absentes, " +"auquel cas il est possible d'omettre le délimiteur entre clé et valeur. Les " +"valeurs peuvent s'étendre sur plusieurs lignes, à partir du moment où les " +"lignes supplémentaires sont plus indentées que la première ligne. Les lignes " +"vides peuvent être considérées comme faisant partie des valeurs multi " +"lignes, en fonction de la configuration de l'analyseur." + +#: ../Doc/library/configparser.rst:240 +msgid "" +"Configuration files may include comments, prefixed by specific characters " +"(``#`` and ``;`` by default [1]_). Comments may appear on their own on an " +"otherwise empty line, possibly indented. [1]_" +msgstr "" +"Les fichiers de configuration peuvent contenir des commentaires, préfixés " +"par des caractères spécifiques (``#`` et ``;`` par défaut [1]_). Les " +"commentaires peuvent apparaître à l'emplacement d'une ligne vide, et peuvent " +"aussi être indentés. [1]_" + +#: ../Doc/library/configparser.rst:244 ../Doc/library/configparser.rst:307 +msgid "For example:" +msgstr "Par exemple :" + +#: ../Doc/library/configparser.rst:292 +msgid "Interpolation of values" +msgstr "Interpolation des valeurs" + +#: ../Doc/library/configparser.rst:294 +msgid "" +"On top of the core functionality, :class:`ConfigParser` supports " +"interpolation. This means values can be preprocessed before returning them " +"from ``get()`` calls." +msgstr "" +"La classe :class:`ConfigParser` prend en charge l’interpolation, en plus des " +"fonctionnalités de base. Cela signifie que les valeurs peuvent être traitées " +"avant d'être renvoyées par les appels aux méthodes ``get()``." + +#: ../Doc/library/configparser.rst:302 +msgid "" +"The default implementation used by :class:`ConfigParser`. It enables values " +"to contain format strings which refer to other values in the same section, " +"or values in the special default section [1]_. Additional default values " +"can be provided on initialization." +msgstr "" +"Implémentation par défaut utilisée par la classe :class:`ConfigParser`. " +"Celle-ci permet aux valeurs de contenir des chaînes de formatage se référant " +"à d'autres valeurs dans la même section, ou bien à des valeurs dans la " +"section spéciale par défaut [1]_. D'autres valeurs par défaut peuvent être " +"fournies au moment de l'initialisation de cette classe." + +#: ../Doc/library/configparser.rst:317 +msgid "" +"In the example above, :class:`ConfigParser` with *interpolation* set to " +"``BasicInterpolation()`` would resolve ``%(home_dir)s`` to the value of " +"``home_dir`` (``/Users`` in this case). ``%(my_dir)s`` in effect would " +"resolve to ``/Users/lumberjack``. All interpolations are done on demand so " +"keys used in the chain of references do not have to be specified in any " +"specific order in the configuration file." +msgstr "" +"Dans l'exemple ci-dessus, une classe :class:`Configparser` dont l'attribut " +"*interpolation* vaut ``BasicInterpolation()`` interprète la chaîne de " +"caractères ``%(home_dir)s`` en utilisant la valeur de la clé ``home_dir`` " +"(``/Users`` dans ce cas). ``%(my_dir)s`` est interprétée comme ``/Users/" +"lumberjack``. Les interpolations sont effectuées à la volée. Ainsi, les clés " +"utilisées comme référence à l’intérieur des chaînes de formatage peuvent " +"être définies dans le fichier de configuration dans n'importe quel ordre." + +#: ../Doc/library/configparser.rst:324 +msgid "" +"With ``interpolation`` set to ``None``, the parser would simply return ``" +"%(my_dir)s/Pictures`` as the value of ``my_pictures`` and ``%(home_dir)s/" +"lumberjack`` as the value of ``my_dir``." +msgstr "" +"Si l'attribut ``interpolation`` vaut ``None``, le lecteur renvoie ``" +"%(my_dir)s/Pictures`` comme valeur pour ``my_pictures`` et ``%(home_dir)s/" +"lumberjack`` comme valeur pour ``my_dir``." + +#: ../Doc/library/configparser.rst:332 +msgid "" +"An alternative handler for interpolation which implements a more advanced " +"syntax, used for instance in ``zc.buildout``. Extended interpolation is " +"using ``${section:option}`` to denote a value from a foreign section. " +"Interpolation can span multiple levels. For convenience, if the ``section:" +"`` part is omitted, interpolation defaults to the current section (and " +"possibly the default values from the special section)." +msgstr "" +"Autre façon de gérer l'interpolation en utilisant une syntaxe plus avancée, " +"utilisée par exemple par ``zc.buildout``. Cette syntaxe étendue utilise la " +"chaîne de formatage ``{section:option}}`` pour désigner une valeur " +"appartenant à une autre section. L'interpolation peut s'étendre sur " +"plusieurs niveaux. Par commodité, si la partie ``{section}`` est absente, " +"l'interpolation utilise la section courante par défaut (et, le cas échéant, " +"les valeurs de la section par défaut spéciale)." + +#: ../Doc/library/configparser.rst:339 +msgid "" +"For example, the configuration specified above with basic interpolation, " +"would look like this with extended interpolation:" +msgstr "" +"Voici comment transformer la configuration ci-dessus avec la syntaxe " +"d'interpolation étendue :" + +#: ../Doc/library/configparser.rst:349 +msgid "Values from other sections can be fetched as well:" +msgstr "" +"Vous pouvez également récupérer des valeurs appartenant aux autres sections :" + +#: ../Doc/library/configparser.rst:371 +msgid "Mapping Protocol Access" +msgstr "Protocole d'accès associatif" + +#: ../Doc/library/configparser.rst:375 +msgid "" +"Mapping protocol access is a generic name for functionality that enables " +"using custom objects as if they were dictionaries. In case of :mod:" +"`configparser`, the mapping interface implementation is using the " +"``parser['section']['option']`` notation." +msgstr "" +"Le terme « protocole d'accès associatif » est utilisé pour décrire la " +"fonctionnalité qui permet d'utiliser des objets personnalisés comme s'il " +"s'agissait de dictionnaires. Dans le cas du module :mod:`configparser`, " +"l’implémentation du protocole utilise la notation ``parser['section']" +"['option']``." + +#: ../Doc/library/configparser.rst:380 +msgid "" +"``parser['section']`` in particular returns a proxy for the section's data " +"in the parser. This means that the values are not copied but they are taken " +"from the original parser on demand. What's even more important is that when " +"values are changed on a section proxy, they are actually mutated in the " +"original parser." +msgstr "" +"En particulier, ``parser['section']`` renvoie un mandataire vers les données " +"de la section correspondantes dans l'analyseur. Cela signifie que les " +"valeurs ne sont pas copiées, mais prélevées depuis l'analyseur initial à la " +"demande. Plus important encore, lorsque les valeurs sont changées dans un " +"mandataire pour une section, elles sont en réalité changées dans l'analyseur " +"initial." + +#: ../Doc/library/configparser.rst:386 +msgid "" +":mod:`configparser` objects behave as close to actual dictionaries as " +"possible. The mapping interface is complete and adheres to the :class:" +"`~collections.abc.MutableMapping` ABC. However, there are a few differences " +"that should be taken into account:" +msgstr "" +"Les objets du module :mod:`configparser` se comportent le plus possible " +"comme des vrais dictionnaires. L'interface est complète et suit les " +"définitions fournies par la classe abstraite :class:`~collections.abc." +"MutableMapping`. Cependant, il faut prendre en compte un certain nombre de " +"différences :" + +#: ../Doc/library/configparser.rst:391 +msgid "" +"By default, all keys in sections are accessible in a case-insensitive manner " +"[1]_. E.g. ``for option in parser[\"section\"]`` yields only " +"``optionxform``'ed option key names. This means lowercased keys by " +"default. At the same time, for a section that holds the key ``'a'``, both " +"expressions return ``True``::" +msgstr "" +"Par défaut, toutes les clés des sections sont accessibles sans respect de la " +"casse [1]_. Par exemple, ``for option in parser[\"section\"]`` renvoie " +"uniquement les clés telles que transformées par la méthode ``optionxform``, " +"c'est-à-dire des clés transformées en minuscules. De même, pour une section " +"contenant la clé ``a``, les deux expressions suivantes renvoient ``True`` ::" + +#: ../Doc/library/configparser.rst:399 +msgid "" +"All sections include ``DEFAULTSECT`` values as well which means that ``." +"clear()`` on a section may not leave the section visibly empty. This is " +"because default values cannot be deleted from the section (because " +"technically they are not there). If they are overridden in the section, " +"deleting causes the default value to be visible again. Trying to delete a " +"default value causes a :exc:`KeyError`." +msgstr "" +"Toutes les sections incluent en plus les valeurs de la section " +"``DEFAULTSECT``. Cela signifie qu'appeler ``clear()`` sur une section ne la " +"fera pas forcément apparaître vide. En effet, les valeurs par défaut ne " +"peuvent pas être supprimées de la section (car, techniquement, elles n'y " +"sont pas présentes). Si vous détruisez une valeur par défaut qui a été " +"écrasée dans une section, alors la valeur par défaut sera de nouveau " +"visible. Essayer de détruire une valeur par défaut lève l'exception :exc:" +"`KeyError`." + +#: ../Doc/library/configparser.rst:406 +msgid "``DEFAULTSECT`` cannot be removed from the parser:" +msgstr "La section ``DEFAULTSECT`` ne peut pas être supprimée ::" + +#: ../Doc/library/configparser.rst:408 +msgid "trying to delete it raises :exc:`ValueError`," +msgstr "l'exception :exc:`ValueError` est levée si on essaye de la supprimer ;" + +#: ../Doc/library/configparser.rst:410 +msgid "``parser.clear()`` leaves it intact," +msgstr "appeler ``parser.clear()`` la laisse intacte ;" + +#: ../Doc/library/configparser.rst:412 +msgid "``parser.popitem()`` never returns it." +msgstr "appeler ```parser.popitem()`` ne la renvoie jamais." + +#: ../Doc/library/configparser.rst:414 +msgid "" +"``parser.get(section, option, **kwargs)`` - the second argument is **not** a " +"fallback value. Note however that the section-level ``get()`` methods are " +"compatible both with the mapping protocol and the classic configparser API." +msgstr "" +"Le deuxième argument de ``parser.get(section, option, **kwargs)`` n'est " +"**pas** une valeur de substitution. Notez cependant que les méthodes " +"``get()`` fournies par les sections sont compatibles à la fois avec le " +"protocole associatif et avec l'API classique de *configparser*." + +#: ../Doc/library/configparser.rst:418 +msgid "" +"``parser.items()`` is compatible with the mapping protocol (returns a list " +"of *section_name*, *section_proxy* pairs including the DEFAULTSECT). " +"However, this method can also be invoked with arguments: ``parser." +"items(section, raw, vars)``. The latter call returns a list of *option*, " +"*value* pairs for a specified ``section``, with all interpolations expanded " +"(unless ``raw=True`` is provided)." +msgstr "" +"La méthode ``parser.items()`` est compatible avec le protocole d'accès " +"associatif et renvoie une liste de paires *section_name*, *section_proxy*, " +"en incluant la section *DEFAULTSECT*. Cependant, cette méthode peut aussi " +"être appelée avec des arguments : ``parser.items(section, raw, vars)``. Dans " +"ce cas, la méthode renvoie une liste de paires *option*, *value* pour la " +"section spécifiée, en interprétant les interpolations (à moins d'utiliser " +"``raw=True``)." + +#: ../Doc/library/configparser.rst:425 +msgid "" +"The mapping protocol is implemented on top of the existing legacy API so " +"that subclasses overriding the original interface still should have mappings " +"working as expected." +msgstr "" +"Le protocole d'accès est implémenté au-dessus de l'ancienne API. Ainsi, les " +"sous-classes qui écrasent des méthodes de l'interface originale se " +"comportent correctement du point de vue du protocole d'accès." + +#: ../Doc/library/configparser.rst:431 +msgid "Customizing Parser Behaviour" +msgstr "Personnalisation du comportement de l'analyseur" + +#: ../Doc/library/configparser.rst:433 +msgid "" +"There are nearly as many INI format variants as there are applications using " +"it. :mod:`configparser` goes a long way to provide support for the largest " +"sensible set of INI styles available. The default functionality is mainly " +"dictated by historical background and it's very likely that you will want to " +"customize some of the features." +msgstr "" +"Il existe pratiquement autant de variations du format *INI* que " +"d'applications qui l'utilisent. Le module :mod:`configparser` fait son " +"possible pour gérer le plus grand nombre de variantes raisonnables du style " +"*INI*. Le comportement par défaut est principalement contraint par des " +"raisons historiques. De ce fait, il est très probable qu'il soit nécessaire " +"de personnaliser certaines des fonctionnalités de ce module." + +#: ../Doc/library/configparser.rst:439 +msgid "" +"The most common way to change the way a specific config parser works is to " +"use the :meth:`__init__` options:" +msgstr "" +"La méthode la plus fréquemment utilisée pour changer la façon dont se " +"comporte un analyseur est d’utiliser les options de la méthode :meth:" +"`__init__` :" + +#: ../Doc/library/configparser.rst:442 +msgid "*defaults*, default value: ``None``" +msgstr "*defaults*, valeur par défaut : ``None``" + +#: ../Doc/library/configparser.rst:444 +msgid "" +"This option accepts a dictionary of key-value pairs which will be initially " +"put in the ``DEFAULT`` section. This makes for an elegant way to support " +"concise configuration files that don't specify values which are the same as " +"the documented default." +msgstr "" +"Cette option accepte un dictionnaire de paires clé—valeurs qui seront " +"placées dans la section ``DEFAULT`` initialement. Ceci est une façon " +"élégante de prendre en charge des fichiers de configuration qui n'ont pas " +"besoin de spécifier de valeurs lorsque celles-ci sont identiques aux valeurs " +"par défaut documentées." + +#: ../Doc/library/configparser.rst:449 +msgid "" +"Hint: if you want to specify default values for a specific section, use :" +"meth:`read_dict` before you read the actual file." +msgstr "" +"Conseil : utilisez la méthode :meth:`read_dict` avant de lire le ficher de " +"configuration si vous voulez spécifier des valeurs par défaut pour une " +"section spécifique." + +#: ../Doc/library/configparser.rst:452 +msgid "*dict_type*, default value: :class:`collections.OrderedDict`" +msgstr "" + +#: ../Doc/library/configparser.rst:454 +msgid "" +"This option has a major impact on how the mapping protocol will behave and " +"how the written configuration files look. With the default ordered " +"dictionary, every section is stored in the order they were added to the " +"parser. Same goes for options within sections." +msgstr "" + +#: ../Doc/library/configparser.rst:459 +msgid "" +"An alternative dictionary type can be used for example to sort sections and " +"options on write-back. You can also use a regular dictionary for " +"performance reasons." +msgstr "" + +#: ../Doc/library/configparser.rst:463 +msgid "" +"Please note: there are ways to add a set of key-value pairs in a single " +"operation. When you use a regular dictionary in those operations, the order " +"of the keys will be ordered because dict preserves order from Python 3.7. " +"For example:" +msgstr "" + +#: ../Doc/library/configparser.rst:486 +msgid "*allow_no_value*, default value: ``False``" +msgstr "*allow_no_value*, valeur par défaut : ``False``" + +#: ../Doc/library/configparser.rst:488 +msgid "" +"Some configuration files are known to include settings without values, but " +"which otherwise conform to the syntax supported by :mod:`configparser`. The " +"*allow_no_value* parameter to the constructor can be used to indicate that " +"such values should be accepted:" +msgstr "" +"Certains fichiers de configurations sont connus pour contenir des options " +"sans valeur associée, tout en se conformant à la syntaxe prise en charge par " +"le module :mod:`configparser` par ailleurs. Pour indiquer que de telles " +"valeurs sont acceptables, utilisez le paramètre *allow_no_value* lors de la " +"construction de l'instance :" + +#: ../Doc/library/configparser.rst:523 +msgid "*delimiters*, default value: ``('=', ':')``" +msgstr "*delimiters*, valeur par défaut : ``('=', ':')``" + +#: ../Doc/library/configparser.rst:525 +msgid "" +"Delimiters are substrings that delimit keys from values within a section. " +"The first occurrence of a delimiting substring on a line is considered a " +"delimiter. This means values (but not keys) can contain the delimiters." +msgstr "" +"Chaînes de caractères qui séparent les clés des valeurs à l'intérieur d'une " +"section. La première occurrence d'une telle chaîne à l'intérieur d'une ligne " +"est considérée comme un délimiteur. Cela signifie que les valeurs peuvent " +"contenir certains des délimiteurs (mais pas les clés)." + +#: ../Doc/library/configparser.rst:529 +msgid "" +"See also the *space_around_delimiters* argument to :meth:`ConfigParser." +"write`." +msgstr "" +"Voir aussi l'argument *space_around_delimiters* de la méthode :meth:" +"`ConfigParser.write`." + +#: ../Doc/library/configparser.rst:532 +msgid "*comment_prefixes*, default value: ``('#', ';')``" +msgstr "" +"*comment_prefixes* (préfixes de commentaire) — valeur par défaut : ``('#', " +"';')``" + +#: ../Doc/library/configparser.rst:534 +msgid "*inline_comment_prefixes*, default value: ``None``" +msgstr "" +"*inline_comment_prefixes* (préfixes de commentaire en ligne) — valeur par " +"défaut : ``('#', ';')``" + +#: ../Doc/library/configparser.rst:536 +msgid "" +"Comment prefixes are strings that indicate the start of a valid comment " +"within a config file. *comment_prefixes* are used only on otherwise empty " +"lines (optionally indented) whereas *inline_comment_prefixes* can be used " +"after every valid value (e.g. section names, options and empty lines as " +"well). By default inline comments are disabled and ``'#'`` and ``';'`` are " +"used as prefixes for whole line comments." +msgstr "" +"Les préfixes de commentaire indiquent le début d'un commentaire valide au " +"sein d'un fichier de configuration. Ils ne peuvent être utilisés qu'à " +"l'emplacement d'une ligne vide (potentiellement indentée). En revanche, les " +"préfixes de commentaires en ligne peuvent être utilisés après n'importe " +"quelle valeur valide (comme les noms des sections, les options et les lignes " +"vides). Par défaut, les commentaires en ligne sont désactivés et les " +"préfixes utilisés pour les commentaires à l'emplacement d'une ligne vide " +"sont `'#'`` et ``';'``." + +#: ../Doc/library/configparser.rst:543 +msgid "" +"In previous versions of :mod:`configparser` behaviour matched " +"``comment_prefixes=('#',';')`` and ``inline_comment_prefixes=(';',)``." +msgstr "" +"Les précédentes versions du module :mod:`configparser` se comportent comme " +"en utilisant ``comment_prefixes=('#',';')`` et " +"``inline_comment_prefixes=(';',)``." + +#: ../Doc/library/configparser.rst:547 +msgid "" +"Please note that config parsers don't support escaping of comment prefixes " +"so using *inline_comment_prefixes* may prevent users from specifying option " +"values with characters used as comment prefixes. When in doubt, avoid " +"setting *inline_comment_prefixes*. In any circumstances, the only way of " +"storing comment prefix characters at the beginning of a line in multiline " +"values is to interpolate the prefix, for example::" +msgstr "" +"Notez que les analyseurs ne prennent pas en charge l'échappement des " +"préfixes de commentaires. Ainsi, l'utilisation de *inline_comment_prefixes* " +"peut empêcher les utilisateurs de spécifier des valeurs qui contiennent des " +"caractères utilisés comme préfixe de commentaire. Dans le doute, il est " +"recommandé de ne pas utiliser *inline_comment_prefixes*. Dans tous les cas, " +"la seule façon de stocker des préfixes de commentaires au début d'une valeur " +"multi lignes est d'interpoler ceux-ci, par exemple ::" + +#: ../Doc/library/configparser.rst:593 +msgid "*strict*, default value: ``True``" +msgstr "*scrict*, valeur par défaut : ``True``" + +#: ../Doc/library/configparser.rst:595 +msgid "" +"When set to ``True``, the parser will not allow for any section or option " +"duplicates while reading from a single source (using :meth:`read_file`, :" +"meth:`read_string` or :meth:`read_dict`). It is recommended to use strict " +"parsers in new applications." +msgstr "" +"Quand la valeur ``True`` est spécifiée, le parseur refuse toute section ou " +"option dupliquée lors de la lecture d'une source unique (lorsque :meth:" +"`read_file`, :meth:`read_string` ou :meth:`read_dict` sont utilisées). Il " +"est recommandé d'utiliser un mode de fonctionnement strict pour les " +"analyseurs employés par de nouvelles applications." + +#: ../Doc/library/configparser.rst:600 +msgid "" +"In previous versions of :mod:`configparser` behaviour matched " +"``strict=False``." +msgstr "" +"Les versions précédentes du module :mod:`configparser` se comportent comme " +"en utilisant ``strict=False``." + +#: ../Doc/library/configparser.rst:604 +msgid "*empty_lines_in_values*, default value: ``True``" +msgstr "*empty_lines_in_values*, valeur par défaut : ``True``" + +#: ../Doc/library/configparser.rst:606 +msgid "" +"In config parsers, values can span multiple lines as long as they are " +"indented more than the key that holds them. By default parsers also let " +"empty lines to be parts of values. At the same time, keys can be " +"arbitrarily indented themselves to improve readability. In consequence, " +"when configuration files get big and complex, it is easy for the user to " +"lose track of the file structure. Take for instance:" +msgstr "" +"Du point de vue des analyseurs, les valeurs peuvent s'étendre sur plusieurs " +"lignes à partir du moment où elles sont plus indentées que la clé qui les " +"contient. Par défaut les analyseurs autorisent les lignes vides à faire " +"partie de telles valeurs. Dans le même temps, les clés elles-mêmes peuvent " +"être indentées de façon à rendre le fichier plus lisible. En conséquence, il " +"est probable que l'utilisateur perde de vue la structure du fichier lorsque " +"celui-ci devient long et complexe. Prenez par exemple :" + +#: ../Doc/library/configparser.rst:621 +msgid "" +"This can be especially problematic for the user to see if she's using a " +"proportional font to edit the file. That is why when your application does " +"not need values with empty lines, you should consider disallowing them. " +"This will make empty lines split keys every time. In the example above, it " +"would produce two keys, ``key`` and ``this``." +msgstr "" +"Ceci est particulièrement problématique si l'utilisateur a configuré son " +"éditeur pour utiliser une police à chasse variable. C'est pourquoi il est " +"conseillé de ne pas prendre en charge les valeurs avec des lignes vides, à " +"moins que votre application en ait besoin. Dans ce cas, les lignes vides " +"sont toujours interprétées comme séparant des clés. Dans l'exemple ci-" +"dessus, cela produit deux clés : ``key`` et ``this``." + +#: ../Doc/library/configparser.rst:627 +msgid "" +"*default_section*, default value: ``configparser.DEFAULTSECT`` (that is: ``" +"\"DEFAULT\"``)" +msgstr "" +"*default_section*, valeur par défaut : ``configparser.DEFAULTSECT`` " +"(autrement dit : ``\"DEFAULT\"``)" + +#: ../Doc/library/configparser.rst:630 +msgid "" +"The convention of allowing a special section of default values for other " +"sections or interpolation purposes is a powerful concept of this library, " +"letting users create complex declarative configurations. This section is " +"normally called ``\"DEFAULT\"`` but this can be customized to point to any " +"other valid section name. Some typical values include: ``\"general\"`` or ``" +"\"common\"``. The name provided is used for recognizing default sections " +"when reading from any source and is used when writing configuration back to " +"a file. Its current value can be retrieved using the ``parser_instance." +"default_section`` attribute and may be modified at runtime (i.e. to convert " +"files from one format to another)." +msgstr "" + +#: ../Doc/library/configparser.rst:641 +msgid "*interpolation*, default value: ``configparser.BasicInterpolation``" +msgstr "" + +#: ../Doc/library/configparser.rst:643 +msgid "" +"Interpolation behaviour may be customized by providing a custom handler " +"through the *interpolation* argument. ``None`` can be used to turn off " +"interpolation completely, ``ExtendedInterpolation()`` provides a more " +"advanced variant inspired by ``zc.buildout``. More on the subject in the " +"`dedicated documentation section <#interpolation-of-values>`_. :class:" +"`RawConfigParser` has a default value of ``None``." +msgstr "" + +#: ../Doc/library/configparser.rst:650 +msgid "*converters*, default value: not set" +msgstr "" + +#: ../Doc/library/configparser.rst:652 +msgid "" +"Config parsers provide option value getters that perform type conversion. " +"By default :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat`, " +"and :meth:`~ConfigParser.getboolean` are implemented. Should other getters " +"be desirable, users may define them in a subclass or pass a dictionary where " +"each key is a name of the converter and each value is a callable " +"implementing said conversion. For instance, passing ``{'decimal': decimal." +"Decimal}`` would add :meth:`getdecimal` on both the parser object and all " +"section proxies. In other words, it will be possible to write both " +"``parser_instance.getdecimal('section', 'key', fallback=0)`` and " +"``parser_instance['section'].getdecimal('key', 0)``." +msgstr "" + +#: ../Doc/library/configparser.rst:663 +msgid "" +"If the converter needs to access the state of the parser, it can be " +"implemented as a method on a config parser subclass. If the name of this " +"method starts with ``get``, it will be available on all section proxies, in " +"the dict-compatible form (see the ``getdecimal()`` example above)." +msgstr "" + +#: ../Doc/library/configparser.rst:668 +msgid "" +"More advanced customization may be achieved by overriding default values of " +"these parser attributes. The defaults are defined on the classes, so they " +"may be overridden by subclasses or by attribute assignment." +msgstr "" + +#: ../Doc/library/configparser.rst:674 +msgid "" +"By default when using :meth:`~ConfigParser.getboolean`, config parsers " +"consider the following values ``True``: ``'1'``, ``'yes'``, ``'true'``, " +"``'on'`` and the following values ``False``: ``'0'``, ``'no'``, ``'false'``, " +"``'off'``. You can override this by specifying a custom dictionary of " +"strings and their Boolean outcomes. For example:" +msgstr "" +"Par défaut, la méthode :meth:`~ConfigParser.getboolean` considère les " +"valeurs suivantes comme vraies : `'1'``, ``'yes'``, ``'true'``, ``'on'``, et " +"les valeurs suivantes comme fausses : ``'0'``, ``'no'``, ``'false'``, " +"``'off'``. Vous pouvez changer ce comportement en spécifiant votre propre " +"dictionnaire associant des chaînes de caractères à des valeurs booléennes. " +"Par exemple :" + +#: ../Doc/library/configparser.rst:692 +msgid "" +"Other typical Boolean pairs include ``accept``/``reject`` or ``enabled``/" +"``disabled``." +msgstr "" + +#: ../Doc/library/configparser.rst:697 +msgid "" +"This method transforms option names on every read, get, or set operation. " +"The default converts the name to lowercase. This also means that when a " +"configuration file gets written, all keys will be lowercase. Override this " +"method if that's unsuitable. For example:" +msgstr "" + +#: ../Doc/library/configparser.rst:727 +msgid "" +"The optionxform function transforms option names to a canonical form. This " +"should be an idempotent function: if the name is already in canonical form, " +"it should be returned unchanged." +msgstr "" + +#: ../Doc/library/configparser.rst:734 +msgid "" +"A compiled regular expression used to parse section headers. The default " +"matches ``[section]`` to the name ``\"section\"``. Whitespace is considered " +"part of the section name, thus ``[ larch ]`` will be read as a section of " +"name ``\" larch \"``. Override this attribute if that's unsuitable. For " +"example:" +msgstr "" + +#: ../Doc/library/configparser.rst:762 +msgid "" +"While ConfigParser objects also use an ``OPTCRE`` attribute for recognizing " +"option lines, it's not recommended to override it because that would " +"interfere with constructor options *allow_no_value* and *delimiters*." +msgstr "" + +#: ../Doc/library/configparser.rst:768 +msgid "Legacy API Examples" +msgstr "" + +#: ../Doc/library/configparser.rst:770 +msgid "" +"Mainly because of backwards compatibility concerns, :mod:`configparser` " +"provides also a legacy API with explicit ``get``/``set`` methods. While " +"there are valid use cases for the methods outlined below, mapping protocol " +"access is preferred for new projects. The legacy API is at times more " +"advanced, low-level and downright counterintuitive." +msgstr "" + +#: ../Doc/library/configparser.rst:776 +msgid "An example of writing to a configuration file::" +msgstr "" + +#: ../Doc/library/configparser.rst:799 +msgid "An example of reading the configuration file again::" +msgstr "" + +#: ../Doc/library/configparser.rst:817 +msgid "To get interpolation, use :class:`ConfigParser`::" +msgstr "" + +#: ../Doc/library/configparser.rst:850 +msgid "" +"Default values are available in both types of ConfigParsers. They are used " +"in interpolation if an option used is not defined elsewhere. ::" +msgstr "" + +#: ../Doc/library/configparser.rst:868 +msgid "ConfigParser Objects" +msgstr "" + +#: ../Doc/library/configparser.rst:872 +msgid "" +"The main configuration parser. When *defaults* is given, it is initialized " +"into the dictionary of intrinsic defaults. When *dict_type* is given, it " +"will be used to create the dictionary objects for the list of sections, for " +"the options within a section, and for the default values." +msgstr "" + +#: ../Doc/library/configparser.rst:877 +msgid "" +"When *delimiters* is given, it is used as the set of substrings that divide " +"keys from values. When *comment_prefixes* is given, it will be used as the " +"set of substrings that prefix comments in otherwise empty lines. Comments " +"can be indented. When *inline_comment_prefixes* is given, it will be used " +"as the set of substrings that prefix comments in non-empty lines." +msgstr "" + +#: ../Doc/library/configparser.rst:883 +msgid "" +"When *strict* is ``True`` (the default), the parser won't allow for any " +"section or option duplicates while reading from a single source (file, " +"string or dictionary), raising :exc:`DuplicateSectionError` or :exc:" +"`DuplicateOptionError`. When *empty_lines_in_values* is ``False`` (default: " +"``True``), each empty line marks the end of an option. Otherwise, internal " +"empty lines of a multiline option are kept as part of the value. When " +"*allow_no_value* is ``True`` (default: ``False``), options without values " +"are accepted; the value held for these is ``None`` and they are serialized " +"without the trailing delimiter." +msgstr "" + +#: ../Doc/library/configparser.rst:893 +msgid "" +"When *default_section* is given, it specifies the name for the special " +"section holding default values for other sections and interpolation purposes " +"(normally named ``\"DEFAULT\"``). This value can be retrieved and changed " +"on runtime using the ``default_section`` instance attribute." +msgstr "" + +#: ../Doc/library/configparser.rst:898 +msgid "" +"Interpolation behaviour may be customized by providing a custom handler " +"through the *interpolation* argument. ``None`` can be used to turn off " +"interpolation completely, ``ExtendedInterpolation()`` provides a more " +"advanced variant inspired by ``zc.buildout``. More on the subject in the " +"`dedicated documentation section <#interpolation-of-values>`_." +msgstr "" + +#: ../Doc/library/configparser.rst:904 +msgid "" +"All option names used in interpolation will be passed through the :meth:" +"`optionxform` method just like any other option name reference. For " +"example, using the default implementation of :meth:`optionxform` (which " +"converts option names to lower case), the values ``foo %(bar)s`` and ``foo " +"%(BAR)s`` are equivalent." +msgstr "" + +#: ../Doc/library/configparser.rst:910 +msgid "" +"When *converters* is given, it should be a dictionary where each key " +"represents the name of a type converter and each value is a callable " +"implementing the conversion from string to the desired datatype. Every " +"converter gets its own corresponding :meth:`get*()` method on the parser " +"object and section proxies." +msgstr "" + +#: ../Doc/library/configparser.rst:916 +msgid "The default *dict_type* is :class:`collections.OrderedDict`." +msgstr "" + +#: ../Doc/library/configparser.rst:919 +msgid "" +"*allow_no_value*, *delimiters*, *comment_prefixes*, *strict*, " +"*empty_lines_in_values*, *default_section* and *interpolation* were added." +msgstr "" + +#: ../Doc/library/configparser.rst:924 +msgid "The *converters* argument was added." +msgstr "" + +#: ../Doc/library/configparser.rst:927 +msgid "" +"The *defaults* argument is read with :meth:`read_dict()`, providing " +"consistent behavior across the parser: non-string keys and values are " +"implicitly converted to strings." +msgstr "" + +#: ../Doc/library/configparser.rst:934 +msgid "Return a dictionary containing the instance-wide defaults." +msgstr "" + +#: ../Doc/library/configparser.rst:939 +msgid "" +"Return a list of the sections available; the *default section* is not " +"included in the list." +msgstr "" + +#: ../Doc/library/configparser.rst:945 +msgid "" +"Add a section named *section* to the instance. If a section by the given " +"name already exists, :exc:`DuplicateSectionError` is raised. If the " +"*default section* name is passed, :exc:`ValueError` is raised. The name of " +"the section must be a string; if not, :exc:`TypeError` is raised." +msgstr "" + +#: ../Doc/library/configparser.rst:950 +msgid "Non-string section names raise :exc:`TypeError`." +msgstr "" + +#: ../Doc/library/configparser.rst:956 +msgid "" +"Indicates whether the named *section* is present in the configuration. The " +"*default section* is not acknowledged." +msgstr "" + +#: ../Doc/library/configparser.rst:962 +msgid "Return a list of options available in the specified *section*." +msgstr "" + +#: ../Doc/library/configparser.rst:967 +msgid "" +"If the given *section* exists, and contains the given *option*, return :" +"const:`True`; otherwise return :const:`False`. If the specified *section* " +"is :const:`None` or an empty string, DEFAULT is assumed." +msgstr "" + +#: ../Doc/library/configparser.rst:974 +msgid "" +"Attempt to read and parse an iterable of filenames, returning a list of " +"filenames which were successfully parsed." +msgstr "" + +#: ../Doc/library/configparser.rst:977 +msgid "" +"If *filenames* is a string, a :class:`bytes` object or a :term:`path-like " +"object`, it is treated as a single filename. If a file named in *filenames* " +"cannot be opened, that file will be ignored. This is designed so that you " +"can specify an iterable of potential configuration file locations (for " +"example, the current directory, the user's home directory, and some system-" +"wide directory), and all existing configuration files in the iterable will " +"be read." +msgstr "" + +#: ../Doc/library/configparser.rst:986 +msgid "" +"If none of the named files exist, the :class:`ConfigParser` instance will " +"contain an empty dataset. An application which requires initial values to " +"be loaded from a file should load the required file or files using :meth:" +"`read_file` before calling :meth:`read` for any optional files::" +msgstr "" + +#: ../Doc/library/configparser.rst:999 +msgid "" +"The *encoding* parameter. Previously, all files were read using the default " +"encoding for :func:`open`." +msgstr "" + +#: ../Doc/library/configparser.rst:1003 +msgid "The *filenames* parameter accepts a :term:`path-like object`." +msgstr "" + +#: ../Doc/library/configparser.rst:1006 +msgid "The *filenames* parameter accepts a :class:`bytes` object." +msgstr "" + +#: ../Doc/library/configparser.rst:1012 +msgid "" +"Read and parse configuration data from *f* which must be an iterable " +"yielding Unicode strings (for example files opened in text mode)." +msgstr "" + +#: ../Doc/library/configparser.rst:1015 +msgid "" +"Optional argument *source* specifies the name of the file being read. If " +"not given and *f* has a :attr:`name` attribute, that is used for *source*; " +"the default is ``''``." +msgstr "" + +#: ../Doc/library/configparser.rst:1019 +msgid "Replaces :meth:`readfp`." +msgstr "" + +#: ../Doc/library/configparser.rst:1024 +msgid "Parse configuration data from a string." +msgstr "" + +#: ../Doc/library/configparser.rst:1026 +msgid "" +"Optional argument *source* specifies a context-specific name of the string " +"passed. If not given, ``''`` is used. This should commonly be a " +"filesystem path or a URL." +msgstr "" + +#: ../Doc/library/configparser.rst:1035 +msgid "" +"Load configuration from any object that provides a dict-like ``items()`` " +"method. Keys are section names, values are dictionaries with keys and " +"values that should be present in the section. If the used dictionary type " +"preserves order, sections and their keys will be added in order. Values are " +"automatically converted to strings." +msgstr "" + +#: ../Doc/library/configparser.rst:1041 +msgid "" +"Optional argument *source* specifies a context-specific name of the " +"dictionary passed. If not given, ```` is used." +msgstr "" + +#: ../Doc/library/configparser.rst:1044 +msgid "This method can be used to copy state between parsers." +msgstr "" + +#: ../Doc/library/configparser.rst:1051 +msgid "" +"Get an *option* value for the named *section*. If *vars* is provided, it " +"must be a dictionary. The *option* is looked up in *vars* (if provided), " +"*section*, and in *DEFAULTSECT* in that order. If the key is not found and " +"*fallback* is provided, it is used as a fallback value. ``None`` can be " +"provided as a *fallback* value." +msgstr "" + +#: ../Doc/library/configparser.rst:1057 +msgid "" +"All the ``'%'`` interpolations are expanded in the return values, unless the " +"*raw* argument is true. Values for interpolation keys are looked up in the " +"same manner as the option." +msgstr "" + +#: ../Doc/library/configparser.rst:1061 +msgid "" +"Arguments *raw*, *vars* and *fallback* are keyword only to protect users " +"from trying to use the third argument as the *fallback* fallback (especially " +"when using the mapping protocol)." +msgstr "" + +#: ../Doc/library/configparser.rst:1069 +msgid "" +"A convenience method which coerces the *option* in the specified *section* " +"to an integer. See :meth:`get` for explanation of *raw*, *vars* and " +"*fallback*." +msgstr "" + +#: ../Doc/library/configparser.rst:1076 +msgid "" +"A convenience method which coerces the *option* in the specified *section* " +"to a floating point number. See :meth:`get` for explanation of *raw*, " +"*vars* and *fallback*." +msgstr "" + +#: ../Doc/library/configparser.rst:1083 +msgid "" +"A convenience method which coerces the *option* in the specified *section* " +"to a Boolean value. Note that the accepted values for the option are " +"``'1'``, ``'yes'``, ``'true'``, and ``'on'``, which cause this method to " +"return ``True``, and ``'0'``, ``'no'``, ``'false'``, and ``'off'``, which " +"cause it to return ``False``. These string values are checked in a case-" +"insensitive manner. Any other value will cause it to raise :exc:" +"`ValueError`. See :meth:`get` for explanation of *raw*, *vars* and " +"*fallback*." +msgstr "" + +#: ../Doc/library/configparser.rst:1096 +msgid "" +"When *section* is not given, return a list of *section_name*, " +"*section_proxy* pairs, including DEFAULTSECT." +msgstr "" + +#: ../Doc/library/configparser.rst:1099 +msgid "" +"Otherwise, return a list of *name*, *value* pairs for the options in the " +"given *section*. Optional arguments have the same meaning as for the :meth:" +"`get` method." +msgstr "" + +#: ../Doc/library/configparser.rst:1106 +msgid "" +"If the given section exists, set the given option to the specified value; " +"otherwise raise :exc:`NoSectionError`. *option* and *value* must be " +"strings; if not, :exc:`TypeError` is raised." +msgstr "" + +#: ../Doc/library/configparser.rst:1113 +msgid "" +"Write a representation of the configuration to the specified :term:`file " +"object`, which must be opened in text mode (accepting strings). This " +"representation can be parsed by a future :meth:`read` call. If " +"*space_around_delimiters* is true, delimiters between keys and values are " +"surrounded by spaces." +msgstr "" + +#: ../Doc/library/configparser.rst:1122 +msgid "" +"Remove the specified *option* from the specified *section*. If the section " +"does not exist, raise :exc:`NoSectionError`. If the option existed to be " +"removed, return :const:`True`; otherwise return :const:`False`." +msgstr "" + +#: ../Doc/library/configparser.rst:1130 +msgid "" +"Remove the specified *section* from the configuration. If the section in " +"fact existed, return ``True``. Otherwise return ``False``." +msgstr "" + +#: ../Doc/library/configparser.rst:1136 +msgid "" +"Transforms the option name *option* as found in an input file or as passed " +"in by client code to the form that should be used in the internal " +"structures. The default implementation returns a lower-case version of " +"*option*; subclasses may override this or client code can set an attribute " +"of this name on instances to affect this behavior." +msgstr "" + +#: ../Doc/library/configparser.rst:1142 +msgid "" +"You don't need to subclass the parser to use this method, you can also set " +"it on an instance, to a function that takes a string argument and returns a " +"string. Setting it to ``str``, for example, would make option names case " +"sensitive::" +msgstr "" + +#: ../Doc/library/configparser.rst:1150 +msgid "" +"Note that when reading configuration files, whitespace around the option " +"names is stripped before :meth:`optionxform` is called." +msgstr "" + +#: ../Doc/library/configparser.rst:1156 +msgid "Use :meth:`read_file` instead." +msgstr "" + +#: ../Doc/library/configparser.rst:1159 +msgid "" +":meth:`readfp` now iterates on *fp* instead of calling ``fp.readline()``." +msgstr "" + +#: ../Doc/library/configparser.rst:1162 +msgid "" +"For existing code calling :meth:`readfp` with arguments which don't support " +"iteration, the following generator may be used as a wrapper around the file-" +"like object::" +msgstr "" + +#: ../Doc/library/configparser.rst:1172 +msgid "" +"Instead of ``parser.readfp(fp)`` use ``parser." +"read_file(readline_generator(fp))``." +msgstr "" + +#: ../Doc/library/configparser.rst:1178 +msgid "" +"The maximum depth for recursive interpolation for :meth:`get` when the *raw* " +"parameter is false. This is relevant only when the default *interpolation* " +"is used." +msgstr "" + +#: ../Doc/library/configparser.rst:1186 +msgid "RawConfigParser Objects" +msgstr "" + +#: ../Doc/library/configparser.rst:1196 +msgid "" +"Legacy variant of the :class:`ConfigParser`. It has interpolation disabled " +"by default and allows for non-string section names, option names, and values " +"via its unsafe ``add_section`` and ``set`` methods, as well as the legacy " +"``defaults=`` keyword argument handling." +msgstr "" + +#: ../Doc/library/configparser.rst:1202 +msgid "" +"Consider using :class:`ConfigParser` instead which checks types of the " +"values to be stored internally. If you don't want interpolation, you can " +"use ``ConfigParser(interpolation=None)``." +msgstr "" + +#: ../Doc/library/configparser.rst:1209 +msgid "" +"Add a section named *section* to the instance. If a section by the given " +"name already exists, :exc:`DuplicateSectionError` is raised. If the " +"*default section* name is passed, :exc:`ValueError` is raised." +msgstr "" + +#: ../Doc/library/configparser.rst:1213 +msgid "" +"Type of *section* is not checked which lets users create non-string named " +"sections. This behaviour is unsupported and may cause internal errors." +msgstr "" + +#: ../Doc/library/configparser.rst:1219 +msgid "" +"If the given section exists, set the given option to the specified value; " +"otherwise raise :exc:`NoSectionError`. While it is possible to use :class:" +"`RawConfigParser` (or :class:`ConfigParser` with *raw* parameters set to " +"true) for *internal* storage of non-string values, full functionality " +"(including interpolation and output to files) can only be achieved using " +"string values." +msgstr "" + +#: ../Doc/library/configparser.rst:1226 +msgid "" +"This method lets users assign non-string values to keys internally. This " +"behaviour is unsupported and will cause errors when attempting to write to a " +"file or get it in non-raw mode. **Use the mapping protocol API** which does " +"not allow such assignments to take place." +msgstr "" + +#: ../Doc/library/configparser.rst:1233 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/configparser.rst:1237 +msgid "Base class for all other :mod:`configparser` exceptions." +msgstr "" + +#: ../Doc/library/configparser.rst:1242 +msgid "Exception raised when a specified section is not found." +msgstr "" + +#: ../Doc/library/configparser.rst:1247 +msgid "" +"Exception raised if :meth:`add_section` is called with the name of a section " +"that is already present or in strict parsers when a section if found more " +"than once in a single input file, string or dictionary." +msgstr "" + +#: ../Doc/library/configparser.rst:1251 +msgid "" +"Optional ``source`` and ``lineno`` attributes and arguments to :meth:" +"`__init__` were added." +msgstr "" + +#: ../Doc/library/configparser.rst:1258 +msgid "" +"Exception raised by strict parsers if a single option appears twice during " +"reading from a single file, string or dictionary. This catches misspellings " +"and case sensitivity-related errors, e.g. a dictionary may have two keys " +"representing the same case-insensitive configuration key." +msgstr "" + +#: ../Doc/library/configparser.rst:1266 +msgid "" +"Exception raised when a specified option is not found in the specified " +"section." +msgstr "" + +#: ../Doc/library/configparser.rst:1272 +msgid "" +"Base class for exceptions raised when problems occur performing string " +"interpolation." +msgstr "" + +#: ../Doc/library/configparser.rst:1278 +msgid "" +"Exception raised when string interpolation cannot be completed because the " +"number of iterations exceeds :const:`MAX_INTERPOLATION_DEPTH`. Subclass of :" +"exc:`InterpolationError`." +msgstr "" + +#: ../Doc/library/configparser.rst:1285 +msgid "" +"Exception raised when an option referenced from a value does not exist. " +"Subclass of :exc:`InterpolationError`." +msgstr "" + +#: ../Doc/library/configparser.rst:1291 +msgid "" +"Exception raised when the source text into which substitutions are made does " +"not conform to the required syntax. Subclass of :exc:`InterpolationError`." +msgstr "" + +#: ../Doc/library/configparser.rst:1297 +msgid "" +"Exception raised when attempting to parse a file which has no section " +"headers." +msgstr "" + +#: ../Doc/library/configparser.rst:1303 +msgid "Exception raised when errors occur attempting to parse a file." +msgstr "" + +#: ../Doc/library/configparser.rst:1305 +msgid "" +"The ``filename`` attribute and :meth:`__init__` argument were renamed to " +"``source`` for consistency." +msgstr "" + +#: ../Doc/library/configparser.rst:1311 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/configparser.rst:1312 +msgid "" +"Config parsers allow for heavy customization. If you are interested in " +"changing the behaviour outlined by the footnote reference, consult the " +"`Customizing Parser Behaviour`_ section." +msgstr "" diff --git a/library/constants.po b/library/constants.po new file mode 100644 index 000000000..70de9f0ff --- /dev/null +++ b/library/constants.po @@ -0,0 +1,175 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-02-21 17:13+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/constants.rst:4 +msgid "Built-in Constants" +msgstr "Constantes natives" + +#: ../Doc/library/constants.rst:6 +msgid "A small number of constants live in the built-in namespace. They are:" +msgstr "" +"Un petit nombre de constantes existent dans le *namespace* natif. Elles " +"sont :" + +#: ../Doc/library/constants.rst:10 +msgid "" +"The false value of the :class:`bool` type. Assignments to ``False`` are " +"illegal and raise a :exc:`SyntaxError`." +msgstr "" +"La valeur fausse du type :class:`bool`. Les assignations à ``False`` ne sont " +"pas autorisées et lèvent une :exc:`SyntaxError`." + +#: ../Doc/library/constants.rst:16 +msgid "" +"The true value of the :class:`bool` type. Assignments to ``True`` are " +"illegal and raise a :exc:`SyntaxError`." +msgstr "" +"La valeur vraie du type :class:`bool`. Les assignations à ``True`` ne sont " +"pas autorisées et lèvent une :exc:`SyntaxError`." + +#: ../Doc/library/constants.rst:22 +msgid "" +"The sole value of the type ``NoneType``. ``None`` is frequently used to " +"represent the absence of a value, as when default arguments are not passed " +"to a function. Assignments to ``None`` are illegal and raise a :exc:" +"`SyntaxError`." +msgstr "" +"``None`` est l'unique valeur du type ``NoneType``. Elle est utilisée " +"fréquemment pour représenter l'absence de valeur, comme lorsque des " +"arguments par défaut ne sont pas passés à une fonction. Les assignations à " +"``None`` ne sont pas autorisées et lèvent une :exc:`SyntaxError`." + +#: ../Doc/library/constants.rst:29 +msgid "" +"Special value which should be returned by the binary special methods (e.g. :" +"meth:`__eq__`, :meth:`__lt__`, :meth:`__add__`, :meth:`__rsub__`, etc.) to " +"indicate that the operation is not implemented with respect to the other " +"type; may be returned by the in-place binary special methods (e.g. :meth:" +"`__imul__`, :meth:`__iand__`, etc.) for the same purpose. Its truth value is " +"true." +msgstr "" +"Valeur spéciale qui devrait être renvoyée par les méthodes magiques à deux " +"opérandes (e.g. :meth:`__eq__`, :meth:`__lt__`, :meth:`__add__`, :meth:" +"`__rsub__`, etc.) pour indiquer que l'opération n'est pas implémentée pour " +"l'autre type ; peut être renvoyé par les méthodes magiques augmentées à deux " +"opérandes (e.g. :meth:`__imul__`, :meth:`__iand__`, etc.) avec le même " +"objectif. Sa valeur booléenne est ``True``." + +#: ../Doc/library/constants.rst:38 +msgid "" +"When a binary (or in-place) method returns ``NotImplemented`` the " +"interpreter will try the reflected operation on the other type (or some " +"other fallback, depending on the operator). If all attempts return " +"``NotImplemented``, the interpreter will raise an appropriate exception. " +"Incorrectly returning ``NotImplemented`` will result in a misleading error " +"message or the ``NotImplemented`` value being returned to Python code." +msgstr "" +"Lorsqu'une méthode à deux opérandes renvoie ``NotImplemented``, " +"l'interpréteur essaye d'exécuter l'opération réfléchie sur l'autre type (il " +"existe d'autres mécanismes de *fallback*, en fonction de l'opérateur). Si " +"toutes les tentatives renvoient ``NotImplemented``, l'interpréteur lève une " +"exception appropriée. Renvoyer ``NotImplemented`` à tort donne lieu à un " +"message d'erreur peu clair ou au renvoi de la valeur ``NotImplemented`` pour " +"le code Python." + +#: ../Doc/library/constants.rst:45 +msgid "See :ref:`implementing-the-arithmetic-operations` for examples." +msgstr "Voir :ref:`implementing-the-arithmetic-operations` pour des exemples." + +#: ../Doc/library/constants.rst:49 +msgid "" +"``NotImplementedError`` and ``NotImplemented`` are not interchangeable, even " +"though they have similar names and purposes. See :exc:`NotImplementedError` " +"for details on when to use it." +msgstr "" +"``NotImplementedError`` et ``NotImplemented`` ne sont pas interchangeables, " +"même s'ils ont un nom et un objectif similaire. Voir :exc:" +"`NotImplementedError` pour savoir quand l'utiliser." + +#: ../Doc/library/constants.rst:57 +msgid "" +"The same as the ellipsis literal \"``...``\". Special value used mostly in " +"conjunction with extended slicing syntax for user-defined container data " +"types." +msgstr "" +"Identique au littéral *points de suspension* (\"``...``\"). Valeur spéciale " +"utilisée principalement de manière conjointe avec la syntaxe de découpage " +"(*slicing*) étendu pour les conteneurs personnalisés." + +#: ../Doc/library/constants.rst:63 +msgid "" +"This constant is true if Python was not started with an :option:`-O` option. " +"See also the :keyword:`assert` statement." +msgstr "" +"Cette constante est vraie si Python n'a pas été démarré avec une option :" +"option:`-O`. Voir aussi l'expression :keyword:`assert`." + +#: ../Doc/library/constants.rst:69 +msgid "" +"The names :data:`None`, :data:`False`, :data:`True` and :data:`__debug__` " +"cannot be reassigned (assignments to them, even as an attribute name, raise :" +"exc:`SyntaxError`), so they can be considered \"true\" constants." +msgstr "" +"Les noms :data:`None`, :data:`False`, :data:`True` et :data:`__debug__` ne " +"peuvent pas être réassignés (des assignations à ces noms, ou aux noms de " +"leurs attributs, lèvent une :exc:`SyntaxError`), donc ils peuvent être " +"considérés comme des \"vraies\" constantes." + +#: ../Doc/library/constants.rst:75 +msgid "Constants added by the :mod:`site` module" +msgstr "Constantes ajoutées par le module :mod:`site`" + +#: ../Doc/library/constants.rst:77 +msgid "" +"The :mod:`site` module (which is imported automatically during startup, " +"except if the :option:`-S` command-line option is given) adds several " +"constants to the built-in namespace. They are useful for the interactive " +"interpreter shell and should not be used in programs." +msgstr "" +"Le module :mod:`site` (qui est importé automatiquement au démarrage, sauf si " +"l'option de ligne de commande :option:`-S` est donnée ajoute un certain " +"nombre de constantes au *namespace* natif. Elles sont utiles pour " +"l'interpréteur interactif et ne devraient pas être utilisées par des " +"programmes." + +#: ../Doc/library/constants.rst:85 +msgid "" +"Objects that when printed, print a message like \"Use quit() or Ctrl-D (i.e. " +"EOF) to exit\", and when called, raise :exc:`SystemExit` with the specified " +"exit code." +msgstr "" +"Objets qui, lorsqu'ils sont représentés, affichent un message comme *\"Use " +"quit() or Ctrl-D (i.e. EOF) to exit\"*, et lorsqu'ils sont appelés, lèvent " +"un :exc:`SystemExit` avec le code de retour spécifié." + +#: ../Doc/library/constants.rst:92 +msgid "" +"Objects that when printed or called, print the text of copyright or credits, " +"respectively." +msgstr "" +"Objets qui, lorsqu'ils sont affichés ou appelés, affichent le copyright ou " +"les crédits, respectivement." + +#: ../Doc/library/constants.rst:97 +msgid "" +"Object that when printed, prints the message \"Type license() to see the " +"full license text\", and when called, displays the full license text in a " +"pager-like fashion (one screen at a time)." +msgstr "" +"Objet qui, lorsqu'il est affiché, affiche un message comme *\"Type license() " +"to see the full license text\"*, et lorsqu'il est appelé, affiche le texte " +"complet de la licence dans un style paginé (un écran à la fois)." diff --git a/library/contextlib.po b/library/contextlib.po new file mode 100644 index 000000000..cbc808c42 --- /dev/null +++ b/library/contextlib.po @@ -0,0 +1,1034 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2018-07-04 11:33+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/contextlib.rst:2 +msgid "" +":mod:`!contextlib` --- Utilities for :keyword:`!with`\\ -statement contexts" +msgstr "" +":mod:`!contextlib` — Utilitaires pour les contextes s'appuyant sur " +"l'instruction :keyword:`!with`" + +#: ../Doc/library/contextlib.rst:7 +msgid "**Source code:** :source:`Lib/contextlib.py`" +msgstr "**Code source :** :source:`Lib/contextlib.py`" + +#: ../Doc/library/contextlib.rst:11 +msgid "" +"This module provides utilities for common tasks involving the :keyword:" +"`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:17 +msgid "Utilities" +msgstr "Utilitaires" + +#: ../Doc/library/contextlib.rst:19 +msgid "Functions and classes provided:" +msgstr "Fonctions et classes fournies :" + +#: ../Doc/library/contextlib.rst:23 +msgid "" +"An :term:`abstract base class` for classes that implement :meth:`object." +"__enter__` and :meth:`object.__exit__`. A default implementation for :meth:" +"`object.__enter__` is provided which returns ``self`` while :meth:`object." +"__exit__` is an abstract method which by default returns ``None``. See also " +"the definition of :ref:`typecontextmanager`." +msgstr "" +":term:`Classe mère abstraite ` pour les classes qui " +"implémentent les méthodes :meth:`object.__enter__` et :meth:`object." +"__exit__`. Une implémentation par défaut de :meth:`object.__enter__` est " +"fournie, qui renvoie ``self``, et :meth:`object.__exit__` est une méthode " +"abstraite qui renvoie ``None`` par défaut. Voir aussi la définition de :ref:" +"`typecontextmanager`." + +#: ../Doc/library/contextlib.rst:34 +msgid "" +"An :term:`abstract base class` for classes that implement :meth:`object." +"__aenter__` and :meth:`object.__aexit__`. A default implementation for :meth:" +"`object.__aenter__` is provided which returns ``self`` while :meth:`object." +"__aexit__` is an abstract method which by default returns ``None``. See also " +"the definition of :ref:`async-context-managers`." +msgstr "" +":term:`Classe mère abstraite ` pour les classes qui " +"implémentent les méthodes :meth:`object.__aenter__` et :meth:`object." +"__aexit__`. Une implémentation par défaut de :meth:`object.__aenter__` est " +"fournie, qui renvoie ``self``, et :meth:`object.__aexit__` est une méthode " +"abstraite qui renvoie ``None`` par défaut. Voir aussi la définition de :ref:" +"`async-context-managers`." + +#: ../Doc/library/contextlib.rst:46 +msgid "" +"This function is a :term:`decorator` that can be used to define a factory " +"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:50 +msgid "" +"While many objects natively support use in with statements, sometimes a " +"resource needs to be managed that isn't a context manager in its own right, " +"and doesn't implement a ``close()`` method for use with ``contextlib." +"closing``" +msgstr "" +"Alors que de nombreux objets s'utilisent nativement dans des blocs *with*, " +"on trouve parfois des ressources qui nécessitent d'être gérées mais ne sont " +"pas des gestionnaires de contextes, et qui n'implémentent pas de méthode " +"``close()`` pour pouvoir être utilisées avec ``contextlib.closing``" + +#: ../Doc/library/contextlib.rst:54 +msgid "" +"An abstract example would be the following to ensure correct resource " +"management::" +msgstr "" +"L'exemple abstrait suivant présente comment assurer une gestion correcte des " +"ressources ::" + +#: ../Doc/library/contextlib.rst:73 +msgid "" +"The function being decorated must return a :term:`generator`-iterator when " +"called. This iterator must yield exactly one value, which will be bound to " +"the targets in the :keyword:`with` statement's :keyword:`!as` clause, if any." +msgstr "" +"La fonction à décorer doit renvoyer un :term:`générateur `-" +"itérateur quand elle est appelée. Ce générateur ne doit produire qu'une " +"seule valeur, qui est récupérée dans le bloc :keyword:`with` à l'aide de la " +"clause :keyword:`!as` si précisée." + +#: ../Doc/library/contextlib.rst:77 +msgid "" +"At the point where the generator yields, the block nested in the :keyword:" +"`with` statement is executed. The generator is then resumed after the block " +"is exited. If an unhandled exception occurs in the block, it is reraised " +"inside the generator at the point where the yield occurred. Thus, you can " +"use a :keyword:`try`...\\ :keyword:`except`...\\ :keyword:`finally` " +"statement to trap the error (if any), or ensure that some cleanup takes " +"place. If an exception is trapped merely in order to log it or to perform " +"some action (rather than to suppress it entirely), the generator must " +"reraise that exception. Otherwise the generator context manager will " +"indicate to the :keyword:`!with` statement that the exception has been " +"handled, and execution will resume with the statement immediately following " +"the :keyword:`!with` statement." +msgstr "" +"Au moment où le générateur produit une valeur, le bloc imbriqué sous " +"l'instruction :keyword:`with` est exécuté. Le générateur est ensuite repris " +"après la sortie du bloc. Si une exception non gérée survient dans le bloc, " +"elle est relayée dans le générateur au niveau de l'instruction *yield*. " +"Ainsi, vous pouvez utiliser les instructions :keyword:`try`…\\ :keyword:" +"`except`…\\ :keyword:`finally` pour attraper l'erreur (s'il y a), ou vous " +"assurer qu'un nettoyage a bien lieu. Si une exception est attrapée dans " +"l'unique but d'être journalisée ou d'effectuer une action particulière " +"(autre que supprimer entièrement l'exception), le générateur se doit de la " +"relayer. Autrement le générateur gestionnaire de contexte doit indiquer à " +"l'instruction :keyword:`!with` que l'exception a été gérée, et l'exécution " +"reprend sur l'instruction qui suit directement le bloc :keyword:`!with`." + +#: ../Doc/library/contextlib.rst:89 +msgid "" +":func:`contextmanager` uses :class:`ContextDecorator` so the context " +"managers it creates can be used as decorators as well as in :keyword:`with` " +"statements. When used as a decorator, a new generator instance is implicitly " +"created on each function call (this allows the otherwise \"one-shot\" " +"context managers created by :func:`contextmanager` to meet the requirement " +"that context managers support multiple invocations in order to be used as " +"decorators)." +msgstr "" +"Le décorateur :func:`contextmanager` utilise la classe :class:" +"`ContextDecorator` afin que les gestionnaires de contexte qu'il crée " +"puissent être utilisés aussi bien en tant que décorateurs qu'avec des " +"instructions :keyword:`with`. Quand vous l'utilisez comme décorateur, une " +"nouvelle instance du générateur est créée à chaque appel de la fonction " +"(cela permet aux gestionnaires de contexte à usage unique créés par :func:" +"`contextmanager` de remplir la condition de pouvoir être invoqués plusieurs " +"fois afin d'être utilisés comme décorateurs)." + +#: ../Doc/library/contextlib.rst:96 +msgid "Use of :class:`ContextDecorator`." +msgstr "Utilisation de la classe :class:`ContextDecorator`." + +#: ../Doc/library/contextlib.rst:102 +msgid "" +"Similar to :func:`~contextlib.contextmanager`, but creates an :ref:" +"`asynchronous context manager `." +msgstr "" +"Similaire à :func:`~contextlib.contextmanager`, mais crée un :ref:" +"`gestionnaire de contexte asynchrone `." + +#: ../Doc/library/contextlib.rst:105 +msgid "" +"This function is a :term:`decorator` that can be used to define a factory " +"function for :keyword:`async with` statement asynchronous context managers, " +"without needing to create a class or separate :meth:`__aenter__` and :meth:" +"`__aexit__` methods. It must be applied to an :term:`asynchronous generator` " +"function." +msgstr "" +"Cette fonction est un :term:`decorator` qui peut être utilisé pour définir " +"une fonction fabriquant des gestionnaires de contexte asynchrones à utiliser " +"avec :keyword:`async with`, sans nécessiter de créer une classe ou des " +"méthodes :meth:`__aenter__` et :meth:`__aexit__` séparées. Le décorateur " +"doit être appliqué à une fonction renvoyant un :term:`asynchronous " +"generator`." + +#: ../Doc/library/contextlib.rst:111 +msgid "A simple example::" +msgstr "Un exemple simple ::" + +#: ../Doc/library/contextlib.rst:132 +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:144 +msgid "And lets you write code like this::" +msgstr "Et cela vous permet d'écrire du code tel que ::" + +#: ../Doc/library/contextlib.rst:153 +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:161 +msgid "" +"Return a context manager that returns *enter_result* from ``__enter__``, but " +"otherwise does nothing. It is intended to be used as a stand-in for an " +"optional context manager, for example::" +msgstr "" +"Renvoie un gestionnaire de contexte dont la méthode ``__enter__`` renvoie " +"*enter_result*, mais ne fait rien d'autre. L'idée est de l'utiliser comme " +"remplaçant pour un gestionnaire de contexte optionnel, par exemple ::" + +#: ../Doc/library/contextlib.rst:175 +msgid "An example using *enter_result*::" +msgstr "Un exemple utilisant *enter_result* ::" + +#: ../Doc/library/contextlib.rst:193 +msgid "" +"Return a context manager that suppresses any of the specified exceptions if " +"they occur in the body of a with statement and then resumes execution with " +"the first statement following the end of the with statement." +msgstr "" +"Renvoie un gestionnaire de contexte qui supprime toutes les exceptions " +"spécifiées si elles surviennent dans le corps du bloc *with*, et reprend " +"l'exécution sur la première instruction qui suit la fin du bloc *with*." + +#: ../Doc/library/contextlib.rst:197 +msgid "" +"As with any other mechanism that completely suppresses exceptions, this " +"context manager should be used only to cover very specific errors where " +"silently continuing with program execution is known to be the right thing to " +"do." +msgstr "" +"Comme pour tous les mécanismes qui suppriment complètement les exceptions, " +"ce gestionnaire de contexte doit seulement être utilisé pour couvrir des cas " +"très spécifiques d'erreurs où il est certain que continuer silencieusement " +"l'exécution du programme est la bonne chose à faire." + +#: ../Doc/library/contextlib.rst:202 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/library/contextlib.rst:212 +msgid "This code is equivalent to::" +msgstr "Ce code est équivalent à ::" + +#: ../Doc/library/contextlib.rst:224 ../Doc/library/contextlib.rst:263 +#: ../Doc/library/contextlib.rst:273 +msgid "This context manager is :ref:`reentrant `." +msgstr "Ce gestionnaire de contexte est :ref:`réentrant `." + +#: ../Doc/library/contextlib.rst:231 +msgid "" +"Context manager for temporarily redirecting :data:`sys.stdout` to another " +"file or file-like object." +msgstr "" +"Gestionnaire de contexte servant à rediriger temporairement :data:`sys." +"stdout` vers un autre fichier ou objet fichier-compatible." + +#: ../Doc/library/contextlib.rst:234 +msgid "" +"This tool adds flexibility to existing functions or classes whose output is " +"hardwired to stdout." +msgstr "" +"Cet outil ajoute une certaine flexibilité aux fonctions ou classes " +"existantes dont la sortie est envoyée vers la sortie standard." + +#: ../Doc/library/contextlib.rst:237 +msgid "" +"For example, the output of :func:`help` normally is sent to *sys.stdout*. " +"You can capture that output in a string by redirecting the output to an :" +"class:`io.StringIO` object::" +msgstr "" +"Par exemple, la sortie de :func:`help` est normalement envoyée vers *sys." +"stdout*. Vous pouvez capturer cette sortie dans une chaîne de caractères en " +"la redirigeant vers un objet :class:`io.StringIO` ::" + +#: ../Doc/library/contextlib.rst:246 +msgid "" +"To send the output of :func:`help` to a file on disk, redirect the output to " +"a regular file::" +msgstr "" +"Pour envoyer la sortie de :func:`help` vers un fichier sur le disque, " +"redirigez-la sur un fichier normal ::" + +#: ../Doc/library/contextlib.rst:253 +msgid "To send the output of :func:`help` to *sys.stderr*::" +msgstr "Pour envoyer la sortie de :func:`help` sur *sys.stderr* ::" + +#: ../Doc/library/contextlib.rst:258 +msgid "" +"Note that the global side effect on :data:`sys.stdout` means that this " +"context manager is not suitable for use in library code and most threaded " +"applications. It also has no effect on the output of subprocesses. However, " +"it is still a useful approach for many utility scripts." +msgstr "" +"Notez que l'effet de bord global sur :data:`sys.stdout` signifie que ce " +"gestionnaire de contexte n'est pas adapté à une utilisation dans le code " +"d'une bibliothèque ni dans la plupart des applications à plusieurs fils " +"d'exécution. Aussi, cela n'a pas d'effet sur la sortie des sous-processus. " +"Cependant, cela reste une approche utile pour beaucoup de scripts " +"utilitaires." + +#: ../Doc/library/contextlib.rst:270 +msgid "" +"Similar to :func:`~contextlib.redirect_stdout` but redirecting :data:`sys." +"stderr` to another file or file-like object." +msgstr "" +"Similaire à :func:`~contextlib.redirect_stdout` mais redirige :data:`sys." +"stderr` vers un autre fichier ou objet fichier-compatible." + +#: ../Doc/library/contextlib.rst:280 +msgid "" +"A base class that enables a context manager to also be used as a decorator." +msgstr "" +"Une classe mère qui permet à un gestionnaire de contexte d'être aussi " +"utilisé comme décorateur." + +#: ../Doc/library/contextlib.rst:282 +msgid "" +"Context managers inheriting from ``ContextDecorator`` have to implement " +"``__enter__`` and ``__exit__`` as normal. ``__exit__`` retains its optional " +"exception handling even when used as a decorator." +msgstr "" +"Les gestionnaires de contexte héritant de ``ContextDecorator`` doivent " +"implémenter ``__enter__`` et ``__exit__`` comme habituellement. ``__exit__`` " +"conserve sa gestion optionnelle des exceptions même lors de l'utilisation en " +"décorateur." + +#: ../Doc/library/contextlib.rst:286 +msgid "" +"``ContextDecorator`` is used by :func:`contextmanager`, so you get this " +"functionality automatically." +msgstr "" +"``ContextDecorator`` est utilisé par :func:`contextmanager`, donc vous " +"bénéficiez automatiquement de cette fonctionnalité." + +#: ../Doc/library/contextlib.rst:289 +msgid "Example of ``ContextDecorator``::" +msgstr "Exemple de ``ContextDecorator`` ::" + +#: ../Doc/library/contextlib.rst:318 +msgid "" +"This change is just syntactic sugar for any construct of the following form::" +msgstr "" +"Ce changement est simplement un sucre syntaxique pour les constructions de " +"la forme suivante ::" + +#: ../Doc/library/contextlib.rst:324 +msgid "``ContextDecorator`` lets you instead write::" +msgstr "``ContextDecorator`` vous permet d'écrire à la place ::" + +#: ../Doc/library/contextlib.rst:330 +msgid "" +"It makes it clear that the ``cm`` applies to the whole function, rather than " +"just a piece of it (and saving an indentation level is nice, too)." +msgstr "" +"Cela éclaircit le fait que ``cm`` s'applique à la fonction entière, et pas " +"seulement à un morceau en particulier (et gagner un niveau d'indentation est " +"toujours appréciable)." + +#: ../Doc/library/contextlib.rst:333 +msgid "" +"Existing context managers that already have a base class can be extended by " +"using ``ContextDecorator`` as a mixin class::" +msgstr "" +"Les gestionnaires de contexte existants qui ont déjà une classe mère peuvent " +"être étendus en utilisant ``ContextDecorator`` comme une *mixin* ::" + +#: ../Doc/library/contextlib.rst:346 +msgid "" +"As the decorated function must be able to be called multiple times, the " +"underlying context manager must support use in multiple :keyword:`with` " +"statements. If this is not the case, then the original construct with the " +"explicit :keyword:`!with` statement inside the function should be used." +msgstr "" +"Comme la fonction décorée doit être capable d'être appelée plusieurs fois, " +"le gestionnaire de contexte sous-jacent doit permettre d'être utilisé dans " +"de multiples instructions :keyword:`with`. Si ce n'est pas le cas, alors la " +"construction d'origine avec de multiples instructions :keyword:`!with` au " +"sein de la fonction doit être utilisée." + +#: ../Doc/library/contextlib.rst:356 +msgid "" +"A context manager that is designed to make it easy to programmatically " +"combine other context managers and cleanup functions, especially those that " +"are optional or otherwise driven by input data." +msgstr "" +"Gestionnaire de contexte conçu pour simplifier le fait de combiner " +"programmatiquement d'autres gestionnaires de contexte et fonctions de " +"nettoyage, spécifiquement ceux qui sont optionnels ou pilotés par des " +"données d'entrée." + +#: ../Doc/library/contextlib.rst:360 +msgid "" +"For example, a set of files may easily be handled in a single with statement " +"as follows::" +msgstr "" +"Par exemple, un ensemble de fichiers peut facilement être géré dans une " +"unique instruction *with* comme suit ::" + +#: ../Doc/library/contextlib.rst:369 +msgid "" +"Each instance maintains a stack of registered callbacks that are called in " +"reverse order when the instance is closed (either explicitly or implicitly " +"at the end of a :keyword:`with` statement). Note that callbacks are *not* " +"invoked implicitly when the context stack instance is garbage collected." +msgstr "" +"Chaque instance maintient une pile de fonctions de rappels (*callbacks*) " +"enregistrées qui sont appelées en ordre inverse quand l'instance est fermée " +"(explicitement ou implicitement à la fin d'un bloc :keyword:`with`). Notez " +"que ces fonctions ne sont *pas* invoquées implicitement quand l'instance de " +"la pile de contextes est collectée par le ramasse-miettes." + +#: ../Doc/library/contextlib.rst:374 +msgid "" +"This stack model is used so that context managers that acquire their " +"resources in their ``__init__`` method (such as file objects) can be handled " +"correctly." +msgstr "" +"Ce modèle de pile est utilisé afin que les gestionnaires de contexte qui " +"acquièrent leurs ressources dans leur méthode ``__init__`` (tels que les " +"objets-fichiers) puissent être gérés correctement." + +#: ../Doc/library/contextlib.rst:378 +msgid "" +"Since registered callbacks are invoked in the reverse order of registration, " +"this ends up behaving as if multiple nested :keyword:`with` statements had " +"been used with the registered set of callbacks. This even extends to " +"exception handling - if an inner callback suppresses or replaces an " +"exception, then outer callbacks will be passed arguments based on that " +"updated state." +msgstr "" +"Comme les fonctions de rappel enregistrées sont invoquées dans l'ordre " +"inverse d'enregistrement, cela revient au même que si de multiples blocs :" +"keyword:`with` imbriqués avaient été utilisés avec l'ensemble de fonctions " +"enregistrées. Cela s'étend aussi à la gestion d'exceptions — si une fonction " +"de rappel intérieure supprime ou remplace une exception, alors les fonctions " +"extérieures reçoivent des arguments basés sur ce nouvel état." + +#: ../Doc/library/contextlib.rst:385 +msgid "" +"This is a relatively low level API that takes care of the details of " +"correctly unwinding the stack of exit callbacks. It provides a suitable " +"foundation for higher level context managers that manipulate the exit stack " +"in application specific ways." +msgstr "" +"C'est une *API* relativement bas-niveau qui s'occupe de dérouler " +"correctement la pile des appels de sortie. Elle fournit une base adaptée " +"pour des gestionnaires de contexte de plus haut niveau qui manipulent la " +"pile de sortie de manière spécifique à l'application." + +#: ../Doc/library/contextlib.rst:394 +msgid "" +"Enters a new context manager and adds its :meth:`__exit__` method to the " +"callback stack. The return value is the result of the context manager's own :" +"meth:`__enter__` method." +msgstr "" +"Entre dans un nouveau gestionnaire de contexte et ajoute sa méthode :meth:" +"`__exit__` à la pile d'appels. La valeur de retour est le résultat de la " +"méthode :meth:`__enter__` du gestionnaire de contexte donné." + +#: ../Doc/library/contextlib.rst:398 +msgid "" +"These context managers may suppress exceptions just as they normally would " +"if used directly as part of a :keyword:`with` statement." +msgstr "" +"Ces gestionnaires de contexte peuvent supprimer des exceptions comme ils le " +"feraient normalement s'ils étaient utilisés directement derrière une " +"instruction :keyword:`with`." + +#: ../Doc/library/contextlib.rst:403 +msgid "Adds a context manager's :meth:`__exit__` method to the callback stack." +msgstr "" +"Ajoute la méthode :meth:`__exit__` d'un gestionnaire de contexte à la pile " +"d'appels." + +#: ../Doc/library/contextlib.rst:405 +msgid "" +"As ``__enter__`` is *not* invoked, this method can be used to cover part of " +"an :meth:`__enter__` implementation with a context manager's own :meth:" +"`__exit__` method." +msgstr "" +"Comme ``__enter__`` n'est *pas* invoquée, cette méthode peut être utilisée " +"pour couvrir une partie de l'implémentation de :meth:`__enter__` avec la " +"propre méthode :meth:`__exit__` d'un gestionnaire de contexte." + +#: ../Doc/library/contextlib.rst:409 +msgid "" +"If passed an object that is not a context manager, this method assumes it is " +"a callback with the same signature as a context manager's :meth:`__exit__` " +"method and adds it directly to the callback stack." +msgstr "" +"Si l'argument passé n'est pas un gestionnaire de contexte, la méthode assume " +"qu'il s'agit d'une fonction de rappel avec la même signature que la méthode :" +"meth:`__exit__` des gestionnaires de contexte pour l'ajouter directement à " +"la pile d'appels." + +#: ../Doc/library/contextlib.rst:413 +msgid "" +"By returning true values, these callbacks can suppress exceptions the same " +"way context manager :meth:`__exit__` methods can." +msgstr "" +"En retournant des valeurs vraies, ces fonctions peuvent supprimer des " +"exceptions de la même manière que le peuvent les méthodes :meth:`__exit__` " +"des gestionnaires de contexte." + +#: ../Doc/library/contextlib.rst:416 +msgid "" +"The passed in object is returned from the function, allowing this method to " +"be used as a function decorator." +msgstr "" +"L'objet passé en paramètre est renvoyé par la fonction, ce qui permet à la " +"méthode d'être utilisée comme décorateur de fonction." + +#: ../Doc/library/contextlib.rst:421 +msgid "" +"Accepts an arbitrary callback function and arguments and adds it to the " +"callback stack." +msgstr "" +"Accepte une fonction arbitraire et ses arguments et les ajoute à la pile des " +"fonctions de rappel." + +#: ../Doc/library/contextlib.rst:424 +msgid "" +"Unlike the other methods, callbacks added this way cannot suppress " +"exceptions (as they are never passed the exception details)." +msgstr "" +"À la différence des autres méthodes, les fonctions de rappel ajoutées de " +"cette manière ne peuvent pas supprimer les exceptions (puisqu'elles ne " +"reçoivent jamais les détails de l'exception)." + +#: ../Doc/library/contextlib.rst:427 +msgid "" +"The passed in callback is returned from the function, allowing this method " +"to be used as a function decorator." +msgstr "" +"La fonction passée en paramètre est renvoyée par la méthode, ce qui permet à " +"la méthode d'être utilisée comme décorateur de fonction." + +#: ../Doc/library/contextlib.rst:432 +msgid "" +"Transfers the callback stack to a fresh :class:`ExitStack` instance and " +"returns it. No callbacks are invoked by this operation - instead, they will " +"now be invoked when the new stack is closed (either explicitly or implicitly " +"at the end of a :keyword:`with` statement)." +msgstr "" +"Transfère la pile d'appels à une nouvelle instance de :class:`ExitStack` et " +"la renvoie. Aucune fonction de rappel n'est invoquée par cette opération — à " +"la place, elles sont dorénavant invoquées quand la nouvelle pile sera close " +"(soit explicitement soit implicitement à la fin d'un bloc :keyword:`with`)." + +#: ../Doc/library/contextlib.rst:437 +msgid "" +"For example, a group of files can be opened as an \"all or nothing\" " +"operation as follows::" +msgstr "" +"Par exemple, un groupe de fichiers peut être ouvert comme une opération " +"« tout ou rien » comme suit ::" + +#: ../Doc/library/contextlib.rst:451 +msgid "" +"Immediately unwinds the callback stack, invoking callbacks in the reverse " +"order of registration. For any context managers and exit callbacks " +"registered, the arguments passed in will indicate that no exception occurred." +msgstr "" +"Déroule immédiatement la pile d'appels, invoquant les fonctions de rappel " +"dans l'ordre inverse d'enregistrement. Pour chaque gestionnaire de contexte " +"et fonction de sortie enregistré, les arguments passés indiqueront qu'aucune " +"exception n'est survenue." + +#: ../Doc/library/contextlib.rst:458 +msgid "" +"An :ref:`asynchronous context manager `, similar to :" +"class:`ExitStack`, that supports combining both synchronous and asynchronous " +"context managers, as well as having coroutines for cleanup logic." +msgstr "" +"Un :ref:`gestionnaire de contexte asynchrone `, " +"similaire à :class:`ExitStack`, apte à combiner à la fois des gestionnaires " +"de contexte synchrones et asynchrones, ainsi que la gestion de coroutines " +"pour la logique de nettoyage." + +#: ../Doc/library/contextlib.rst:463 +msgid "" +"The :meth:`close` method is not implemented, :meth:`aclose` must be used " +"instead." +msgstr "" +"La méthode :meth:`close` n'est pas implémentée, :meth:`aclose` doit plutôt " +"être utilisée." + +#: ../Doc/library/contextlib.rst:468 +msgid "" +"Similar to :meth:`enter_context` but expects an asynchronous context manager." +msgstr "" +"Similaire à :meth:`enter_context` mais attend un gestionnaire de contexte " +"asynchrone." + +#: ../Doc/library/contextlib.rst:473 +msgid "" +"Similar to :meth:`push` but expects either an asynchronous context manager " +"or a coroutine function." +msgstr "" +"Similaire à :meth:`push` mais attend soit un gestionnaire de contexte " +"asynchrone soit une fonction coroutine." + +#: ../Doc/library/contextlib.rst:478 +msgid "Similar to :meth:`callback` but expects a coroutine function." +msgstr "Similaire à :meth:`callback` mais attend une fonction coroutine." + +#: ../Doc/library/contextlib.rst:482 +msgid "Similar to :meth:`close` but properly handles awaitables." +msgstr "" +"Similaire à :meth:`close` mais gère correctement les tâches asynchrones." + +#: ../Doc/library/contextlib.rst:484 +msgid "Continuing the example for :func:`asynccontextmanager`::" +msgstr "En continuité de l'exemple de :func:`asynccontextmanager` ::" + +#: ../Doc/library/contextlib.rst:496 +msgid "Examples and Recipes" +msgstr "Exemples et Recettes" + +#: ../Doc/library/contextlib.rst:498 +msgid "" +"This section describes some examples and recipes for making effective use of " +"the tools provided by :mod:`contextlib`." +msgstr "" +"Cette section décrit quelques exemples et recettes pour décrire une " +"utilisation réelle des outils fournis par :mod:`contextlib`." + +#: ../Doc/library/contextlib.rst:503 +msgid "Supporting a variable number of context managers" +msgstr "Gérer un nombre variable de gestionnaires de contexte" + +#: ../Doc/library/contextlib.rst:505 +msgid "" +"The primary use case for :class:`ExitStack` is the one given in the class " +"documentation: supporting a variable number of context managers and other " +"cleanup operations in a single :keyword:`with` statement. The variability " +"may come from the number of context managers needed being driven by user " +"input (such as opening a user specified collection of files), or from some " +"of the context managers being optional::" +msgstr "" +"Le cas d'utilisation primaire de :class:`ExitStack` est celui décrit dans la " +"documentation de la classe : gérer un nombre variable de gestionnaires de " +"contexte et d'autres opérations de nettoyage en une unique instruction :" +"keyword:`with`. La variabilité peut venir du nombre de gestionnaires de " +"contexte voulus découlant d'une entrée de l'utilisateur (comme ouvrir une " +"collection spécifique de fichiers de l'utilisateur), ou de certains " +"gestionnaires de contexte qui peuvent être optionnels ::" + +#: ../Doc/library/contextlib.rst:520 +msgid "" +"As shown, :class:`ExitStack` also makes it quite easy to use :keyword:`with` " +"statements to manage arbitrary resources that don't natively support the " +"context management protocol." +msgstr "" +"Comme montré, :class:`ExitStack` rend aussi assez facile d'utiliser les " +"instructions :keyword:`with` pour gérer des ressources arbitraires qui ne " +"gèrent pas nativement le protocole des gestionnaires de contexte." + +#: ../Doc/library/contextlib.rst:526 +msgid "Catching exceptions from ``__enter__`` methods" +msgstr "Attraper des exceptions depuis les méthodes ``__enter__``" + +#: ../Doc/library/contextlib.rst:528 +msgid "" +"It is occasionally desirable to catch exceptions from an ``__enter__`` " +"method implementation, *without* inadvertently catching exceptions from the :" +"keyword:`with` statement body or the context manager's ``__exit__`` method. " +"By using :class:`ExitStack` the steps in the context management protocol can " +"be separated slightly in order to allow this::" +msgstr "" +"Il est occasionnellement souhaitable d'attraper les exceptions depuis " +"l'implémentation d'une méthode ``__enter__``, *sans* attraper par " +"inadvertance les exceptions du corps de l'instruction :keyword:`with` ou de " +"la méthode ``__exit__`` des gestionnaires de contexte. En utilisant :class:" +"`ExitStack`, les étapes du protocole des gestionnaires de contexte peuvent " +"être légèrement séparées pour permettre le code suivant ::" + +#: ../Doc/library/contextlib.rst:543 +msgid "" +"Actually needing to do this is likely to indicate that the underlying API " +"should be providing a direct resource management interface for use with :" +"keyword:`try`/:keyword:`except`/:keyword:`finally` statements, but not all " +"APIs are well designed in that regard. When a context manager is the only " +"resource management API provided, then :class:`ExitStack` can make it easier " +"to handle various situations that can't be handled directly in a :keyword:" +"`with` statement." +msgstr "" +"Avoir à faire cela est en fait surtout utile pour indiquer que l'*API* sous-" +"jacente devrait fournir une interface directe de gestion des ressources à " +"utiliser avec les instructions :keyword:`try`/:keyword:`except`/:keyword:" +"`finally`, mais que toutes les *API* ne sont pas bien conçues dans cet " +"objectif. Quand un gestionnaire de contexte est la seule *API* de gestion " +"des ressources fournie, alors :class:`ExitStack` peut rendre plus facile la " +"gestion de plusieurs situations qui ne peuvent pas être traitées directement " +"dans une instruction :keyword:`with`." + +#: ../Doc/library/contextlib.rst:553 +msgid "Cleaning up in an ``__enter__`` implementation" +msgstr "Nettoyer dans une méthode ``__enter__``" + +#: ../Doc/library/contextlib.rst:555 +msgid "" +"As noted in the documentation of :meth:`ExitStack.push`, this method can be " +"useful in cleaning up an already allocated resource if later steps in the :" +"meth:`__enter__` implementation fail." +msgstr "" +"Comme indiqué dans la documentation de :meth:`ExitStack.push`, cette méthode " +"peut être utile pour nettoyer une ressource déjà allouée si les dernières " +"étapes de l'implémentation de :meth:`__enter__` échouent." + +#: ../Doc/library/contextlib.rst:559 +msgid "" +"Here's an example of doing this for a context manager that accepts resource " +"acquisition and release functions, along with an optional validation " +"function, and maps them to the context management protocol::" +msgstr "" +"Voici un exemple de gestionnaire de contexte qui reçoit des fonctions " +"d'acquisition de ressources et de libération, avec une méthode de validation " +"optionnelle, et qui les adapte au protocole des gestionnaires de contexte ::" + +#: ../Doc/library/contextlib.rst:599 +msgid "Replacing any use of ``try-finally`` and flag variables" +msgstr "Remplacer un ``try-finally`` avec une option variable" + +#: ../Doc/library/contextlib.rst:601 +msgid "" +"A pattern you will sometimes see is a ``try-finally`` statement with a flag " +"variable to indicate whether or not the body of the ``finally`` clause " +"should be executed. In its simplest form (that can't already be handled just " +"by using an ``except`` clause instead), it looks something like this::" +msgstr "" +"Un modèle que vous rencontrerez parfois est un bloc ``try-finally`` avec une " +"option pour indiquer si le corps de la clause ``finally`` doit être exécuté " +"ou non. Dans sa forme la plus simple (qui ne peut pas déjà être gérée avec " +"juste une clause ``except``), cela ressemble à ::" + +#: ../Doc/library/contextlib.rst:615 +msgid "" +"As with any ``try`` statement based code, this can cause problems for " +"development and review, because the setup code and the cleanup code can end " +"up being separated by arbitrarily long sections of code." +msgstr "" +"Comme avec n'importe quel code basé sur une instruction ``try``, cela peut " +"poser problème pour le développement et la revue, parce que beaucoup de " +"codes d'installation et de nettoyage peuvent finir par être séparés par des " +"sections de code arbitrairement longues." + +#: ../Doc/library/contextlib.rst:619 +msgid "" +":class:`ExitStack` makes it possible to instead register a callback for " +"execution at the end of a ``with`` statement, and then later decide to skip " +"executing that callback::" +msgstr "" +":class:`ExitStack` rend possible de plutôt enregistrer une fonction de " +"rappel pour être exécutée à la fin d'une instruction ``with``, et décider " +"ensuite de passer l'exécution de cet appel ::" + +#: ../Doc/library/contextlib.rst:631 +msgid "" +"This allows the intended cleanup up behaviour to be made explicit up front, " +"rather than requiring a separate flag variable." +msgstr "" +"Cela permet de rendre explicite dès le départ le comportement de nettoyage " +"attendu, plutôt que de nécessiter une option séparée." + +#: ../Doc/library/contextlib.rst:634 +msgid "" +"If a particular application uses this pattern a lot, it can be simplified " +"even further by means of a small helper class::" +msgstr "" +"Si une application particulière utilise beaucoup ce modèle, cela peut-être " +"simplifié encore plus au moyen d'une petite classe d'aide ::" + +#: ../Doc/library/contextlib.rst:652 +msgid "" +"If the resource cleanup isn't already neatly bundled into a standalone " +"function, then it is still possible to use the decorator form of :meth:" +"`ExitStack.callback` to declare the resource cleanup in advance::" +msgstr "" +"Si le nettoyage de la ressource n'est pas déjà soigneusement embarqué dans " +"une fonction autonome, il est possible d'utiliser le décorateur :meth:" +"`ExitStack.callback` pour déclarer la fonction de nettoyage de ressource en " +"avance ::" + +#: ../Doc/library/contextlib.rst:667 +msgid "" +"Due to the way the decorator protocol works, a callback function declared " +"this way cannot take any parameters. Instead, any resources to be released " +"must be accessed as closure variables." +msgstr "" +"Dû au fonctionnement du protocole des décorateurs, une fonction déclarée " +"ainsi ne peut prendre aucun paramètre. À la place, les ressources à libérer " +"doivent être récupérées depuis l'extérieur comme des variables de fermeture " +"(*closure*)." + +#: ../Doc/library/contextlib.rst:673 +msgid "Using a context manager as a function decorator" +msgstr "" +"Utiliser un gestionnaire de contexte en tant que décorateur de fonction" + +#: ../Doc/library/contextlib.rst:675 +msgid "" +":class:`ContextDecorator` makes it possible to use a context manager in both " +"an ordinary ``with`` statement and also as a function decorator." +msgstr "" +":class:`ContextDecorator` rend possible l'utilisation d'un gestionnaire de " +"contexte à la fois ordinairement avec une instruction ``with`` ou comme un " +"décorateur de fonction." + +#: ../Doc/library/contextlib.rst:678 +msgid "" +"For example, it is sometimes useful to wrap functions or groups of " +"statements with a logger that can track the time of entry and time of exit. " +"Rather than writing both a function decorator and a context manager for the " +"task, inheriting from :class:`ContextDecorator` provides both capabilities " +"in a single definition::" +msgstr "" +"Par exemple, il est parfois utile d'emballer les fonctions ou blocs " +"d'instructions avec un journaliseur qui pourrait suivre le temps d'exécution " +"entre l'entrée et la sortie. Plutôt qu'écrire à la fois un décorateur et un " +"gestionnaire de contexte pour la même tâche, hériter de :class:" +"`ContextDecorator` fournit les deux fonctionnalités en une seule " +"définition ::" + +#: ../Doc/library/contextlib.rst:699 +msgid "Instances of this class can be used as both a context manager::" +msgstr "" +"Les instances de cette classe peuvent être utilisées comme gestionnaires de " +"contexte ::" + +#: ../Doc/library/contextlib.rst:705 +msgid "And also as a function decorator::" +msgstr "Et comme décorateurs de fonctions ::" + +#: ../Doc/library/contextlib.rst:712 +msgid "" +"Note that there is one additional limitation when using context managers as " +"function decorators: there's no way to access the return value of :meth:" +"`__enter__`. If that value is needed, then it is still necessary to use an " +"explicit ``with`` statement." +msgstr "" +"Notez qu'il y a une autre limitation en utilisant les gestionnaires de " +"contexte comme décorateurs : il n'y a aucune manière d'accéder à la valeur " +"de retour de :meth:`__enter__`. Si cette valeur est nécessaire, il faut " +"utiliser explicitement une instruction ``with``." + +#: ../Doc/library/contextlib.rst:720 +msgid ":pep:`343` - The \"with\" statement" +msgstr ":pep:`343` - The \"with\" statement" + +#: ../Doc/library/contextlib.rst:720 +msgid "" +"The specification, background, and examples for the Python :keyword:`with` " +"statement." +msgstr "" +"La spécification, les motivations et des exemples de l'instruction :keyword:" +"`with` en Python." + +#: ../Doc/library/contextlib.rst:726 +msgid "Single use, reusable and reentrant context managers" +msgstr "Gestionnaires de contexte à usage unique, réutilisables et réentrants" + +#: ../Doc/library/contextlib.rst:728 +msgid "" +"Most context managers are written in a way that means they can only be used " +"effectively in a :keyword:`with` statement once. These single use context " +"managers must be created afresh each time they're used - attempting to use " +"them a second time will trigger an exception or otherwise not work correctly." +msgstr "" +"La plupart des gestionnaires de contexte sont écrits d'une manière qui ne " +"leur permet que d'être utilisés une fois avec une instruction :keyword:" +"`with`. Ces gestionnaires de contexte à usage unique doivent être recréés " +"chaque fois qu'ils sont utilisés — tenter de les utiliser une seconde fois " +"lève une exception ou ne fonctionne pas correctement." + +#: ../Doc/library/contextlib.rst:734 +msgid "" +"This common limitation means that it is generally advisable to create " +"context managers directly in the header of the :keyword:`with` statement " +"where they are used (as shown in all of the usage examples above)." +msgstr "" +"Cette limitation commune signifie qu'il est généralement conseillé de créer " +"les gestionnaires de contexte directement dans l'en-tête du bloc :keyword:" +"`with` où ils sont utilisés (comme montré dans tous les exemples " +"d'utilisation au-dessus)." + +#: ../Doc/library/contextlib.rst:738 +msgid "" +"Files are an example of effectively single use context managers, since the " +"first :keyword:`with` statement will close the file, preventing any further " +"IO operations using that file object." +msgstr "" +"Les fichiers sont un exemple de gestionnaires de contexte étant " +"effectivement à usage unique, puisque la première instruction :keyword:" +"`with` ferme le fichier, empêchant d'autres opérations d'entrée/sortie " +"d'être exécutées sur ce fichier." + +#: ../Doc/library/contextlib.rst:742 +msgid "" +"Context managers created using :func:`contextmanager` are also single use " +"context managers, and will complain about the underlying generator failing " +"to yield if an attempt is made to use them a second time::" +msgstr "" +"Les gestionnaires de contexte créés avec :func:`contextmanager` sont aussi à " +"usage unique, et se plaindront du fait que le générateur sous-jacent ne " +"produise plus de valeur si vous essayez de les utiliser une seconde fois ::" + +#: ../Doc/library/contextlib.rst:770 +msgid "Reentrant context managers" +msgstr "Gestionnaires de contexte réentrants" + +#: ../Doc/library/contextlib.rst:772 +msgid "" +"More sophisticated context managers may be \"reentrant\". These context " +"managers can not only be used in multiple :keyword:`with` statements, but " +"may also be used *inside* a :keyword:`!with` statement that is already using " +"the same context manager." +msgstr "" +"Certains gestionnaires de contexte plus sophistiqués peuvent être " +"« réentrants ». Ces gestionnaires de contexte ne peuvent pas seulement être " +"utilisés avec plusieurs instructions :keyword:`with`, mais aussi *à " +"l'intérieur* d'une instruction :keyword:`!with` qui utilise déjà ce même " +"gestionnaire de contexte." + +#: ../Doc/library/contextlib.rst:777 +msgid "" +":class:`threading.RLock` is an example of a reentrant context manager, as " +"are :func:`suppress` and :func:`redirect_stdout`. Here's a very simple " +"example of reentrant use::" +msgstr "" +":class:`threading.RLock` est un exemple de gestionnaire de contexte " +"réentrant, comme le sont aussi :func:`suppress` et :func:`redirect_stdout`. " +"Voici un très simple exemple d'utilisation réentrante ::" + +#: ../Doc/library/contextlib.rst:796 +msgid "" +"Real world examples of reentrancy are more likely to involve multiple " +"functions calling each other and hence be far more complicated than this " +"example." +msgstr "" +"Les exemples plus réels de réentrance sont susceptibles d'invoquer plusieurs " +"fonctions s'entre-appelant, et donc être bien plus compliqués que cet " +"exemple." + +#: ../Doc/library/contextlib.rst:800 +msgid "" +"Note also that being reentrant is *not* the same thing as being thread " +"safe. :func:`redirect_stdout`, for example, is definitely not thread safe, " +"as it makes a global modification to the system state by binding :data:`sys." +"stdout` to a different stream." +msgstr "" +"Notez aussi qu'être réentrant ne signifie *pas* être *thread safe*. :func:" +"`redirect_stdout`, par exemple, n'est définitivement pas *thread safe*, " +"puisqu'il effectue des changements globaux sur l'état du système en " +"branchant :data:`sys.stdout` sur différents flux." + +#: ../Doc/library/contextlib.rst:809 +msgid "Reusable context managers" +msgstr "Gestionnaires de contexte réutilisables" + +#: ../Doc/library/contextlib.rst:811 +msgid "" +"Distinct from both single use and reentrant context managers are \"reusable" +"\" context managers (or, to be completely explicit, \"reusable, but not " +"reentrant\" context managers, since reentrant context managers are also " +"reusable). These context managers support being used multiple times, but " +"will fail (or otherwise not work correctly) if the specific context manager " +"instance has already been used in a containing with statement." +msgstr "" +"D'autres gestionnaires de contexte que ceux à usage unique et les réentrants " +"sont les gestionnaires de contexte « réutilisables » (ou, pour être plus " +"explicite, « réutilisables mais pas réentrants », puisque les gestionnaires " +"de contexte réentrants sont aussi réutilisables). Ces gestionnaires de " +"contexte sont conçus afin d'être utilisés plusieurs fois, mais échoueront " +"(ou ne fonctionnent pas correctement) si l'instance de gestionnaire de " +"contexte référencée a déjà été utilisée dans une instruction *with* " +"englobante." + +#: ../Doc/library/contextlib.rst:818 +msgid "" +":class:`threading.Lock` is an example of a reusable, but not reentrant, " +"context manager (for a reentrant lock, it is necessary to use :class:" +"`threading.RLock` instead)." +msgstr "" +":class:`threading.Lock` est un exemple de gestionnaire de contexte " +"réutilisable mais pas réentrant (pour un verrou réentrant, il faut à la " +"place utiliser :class:`threading.RLock`)." + +#: ../Doc/library/contextlib.rst:822 +msgid "" +"Another example of a reusable, but not reentrant, context manager is :class:" +"`ExitStack`, as it invokes *all* currently registered callbacks when leaving " +"any with statement, regardless of where those callbacks were added::" +msgstr "" +"Un autre exemple de gestionnaire de contexte réutilisable mais pas réentrant " +"est :class:`ExitStack`, puisqu'il invoque *toutes* les fonctions de rappel " +"actuellement enregistrées en quittant l'instruction *with*, sans regarder où " +"ces fonctions ont été ajoutées ::" + +#: ../Doc/library/contextlib.rst:853 +msgid "" +"As the output from the example shows, reusing a single stack object across " +"multiple with statements works correctly, but attempting to nest them will " +"cause the stack to be cleared at the end of the innermost with statement, " +"which is unlikely to be desirable behaviour." +msgstr "" +"Comme le montre la sortie de l'exemple, réutiliser une simple pile entre " +"plusieurs instructions *with* fonctionne correctement, mais essayer de les " +"imbriquer fait que la pile est vidée à la fin du *with* le plus imbriqué, ce " +"qui n'est probablement pas le comportement voulu." + +#: ../Doc/library/contextlib.rst:858 +msgid "" +"Using separate :class:`ExitStack` instances instead of reusing a single " +"instance avoids that problem::" +msgstr "" +"Pour éviter ce problème, utilisez des instances différentes de :class:" +"`ExitStack` plutôt qu'une seule instance ::" diff --git a/library/contextvars.po b/library/contextvars.po new file mode 100644 index 000000000..cd9b2f541 --- /dev/null +++ b/library/contextvars.po @@ -0,0 +1,332 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-08-03 17:52+0200\n" +"PO-Revision-Date: 2018-08-03 23:47+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/contextvars.rst:2 +msgid ":mod:`contextvars` --- Context Variables" +msgstr ":mod:`contextvars` — Variables de contexte" + +#: ../Doc/library/contextvars.rst:11 +msgid "" +"This module provides APIs to manage, store, and access context-local state. " +"The :class:`~contextvars.ContextVar` class is used to declare and work with " +"*Context Variables*. The :func:`~contextvars.copy_context` function and " +"the :class:`~contextvars.Context` class should be used to manage the current " +"context in asynchronous frameworks." +msgstr "" +"Ce module fournit des API pour gérer, stocker et accéder à l'état local de " +"contexte. La classe :class:`~contextvars.ContextVar` est utilisée pour " +"déclarer et travailler avec les *Variables de contexte*. La fonction :func:" +"`~contextvars.copy_context` et la classe :class:`~contextvars.Context` " +"doivent être utilisées pour la gestion du contexte actuel dans les " +"cadriciels asynchrones." + +#: ../Doc/library/contextvars.rst:17 +msgid "" +"Context managers that have state should use Context Variables instead of :" +"func:`threading.local()` to prevent their state from bleeding to other code " +"unexpectedly, when used in concurrent code." +msgstr "" +"Les gestionnaires de contexte, quand ils ont un état et quand ils sont " +"utilisés dans du code s'exécutant de manière concurrente, doivent utiliser " +"les variables de contexte au lieu de :func:`threading.local()` pour empêcher " +"que leur état ne perturbe un autre fil de manière inattendue." + +#: ../Doc/library/contextvars.rst:21 +msgid "See also :pep:`567` for additional details." +msgstr "Voir aussi :pep:`567` pour plus de détails." + +#: ../Doc/library/contextvars.rst:27 +msgid "Context Variables" +msgstr "Variables de contexte" + +#: ../Doc/library/contextvars.rst:31 +msgid "This class is used to declare a new Context Variable, e.g.::" +msgstr "" +"Cette classe est utilisée pour déclarer une nouvelle variable de contexte, " +"p. ex. ::" + +#: ../Doc/library/contextvars.rst:35 +msgid "" +"The required *name* parameter is used for introspection and debug purposes." +msgstr "" +"Le paramètre requis *name* est utilisé à des fins d'introspection et de " +"débogage." + +#: ../Doc/library/contextvars.rst:38 +msgid "" +"The optional keyword-only *default* parameter is returned by :meth:" +"`ContextVar.get` when no value for the variable is found in the current " +"context." +msgstr "" +"Le paramètre nommé *default* est renvoyé par :meth:`ContextVar.get` quand " +"aucune valeur n'est trouvée dans le contexte actuel pour la variable." + +#: ../Doc/library/contextvars.rst:42 +msgid "" +"**Important:** Context Variables should be created at the top module level " +"and never in closures. :class:`Context` objects hold strong references to " +"context variables which prevents context variables from being properly " +"garbage collected." +msgstr "" +"**Important :** les variables de contexte doivent être créées au plus haut " +"niveau du module et jamais dans des fermetures (*closures*). Les objets :" +"class:`Context` maintiennent des références fortes aux variables de contexte " +"ce qui empêche que les variables de contexte soient correctement nettoyées " +"par le ramasse-miette." + +#: ../Doc/library/contextvars.rst:49 +msgid "The name of the variable. This is a read-only property." +msgstr "Nom de la variable. Cette propriété est en lecture seule." + +#: ../Doc/library/contextvars.rst:55 +msgid "Return a value for the context variable for the current context." +msgstr "Renvoie la valeur de la variable de contexte pour le contexte actuel." + +#: ../Doc/library/contextvars.rst:57 +msgid "" +"If there is no value for the variable in the current context, the method " +"will:" +msgstr "" +"S'il n'y a pas de valeur pour la variable dans le contexte actuel, la " +"méthode :" + +#: ../Doc/library/contextvars.rst:60 +msgid "" +"return the value of the *default* argument of the method, if provided; or" +msgstr "" +"renvoie la valeur de l'argument *default* passé à la méthode, s'il a été " +"fourni ;" + +#: ../Doc/library/contextvars.rst:63 +msgid "" +"return the default value for the context variable, if it was created with " +"one; or" +msgstr "" +"ou renvoie la valeur par défaut de la variable de contexte, si elle a été " +"créée avec une valeur par défaut ;" + +#: ../Doc/library/contextvars.rst:66 +msgid "raise a :exc:`LookupError`." +msgstr "ou lève une erreur :exc:`LookupError`." + +#: ../Doc/library/contextvars.rst:70 +msgid "" +"Call to set a new value for the context variable in the current context." +msgstr "" +"Assigne une nouvelle valeur à la variable de contexte dans le contexte " +"actuel." + +#: ../Doc/library/contextvars.rst:73 +msgid "" +"The required *value* argument is the new value for the context variable." +msgstr "" +"L'argument requis *value* est la nouvelle valeur pour la variable de " +"contexte." + +#: ../Doc/library/contextvars.rst:76 +msgid "" +"Returns a :class:`~contextvars.Token` object that can be used to restore the " +"variable to its previous value via the :meth:`ContextVar.reset` method." +msgstr "" +"Renvoie un objet :class:`~contextvars.Token` qui peut être utilisé pour " +"rétablir la variable à sa valeur précédente par la méthode :meth:`ContextVar." +"reset`." + +#: ../Doc/library/contextvars.rst:82 +msgid "" +"Reset the context variable to the value it had before the :meth:`ContextVar." +"set` that created the *token* was used." +msgstr "" +"Réinitialise la variable de contexte à la valeur qu'elle avait avant l'appel " +"de :meth:`ContextVar.set` qui a créé le *token*." + +#: ../Doc/library/contextvars.rst:85 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/library/contextvars.rst:99 +msgid "" +"*Token* objects are returned by the :meth:`ContextVar.set` method. They can " +"be passed to the :meth:`ContextVar.reset` method to revert the value of the " +"variable to what it was before the corresponding *set*." +msgstr "" +"Les objets *Token* sont renvoyés par la méthode :meth:`ContextVar.set`. Ils " +"peuvent être passés à la méthode :meth:`ContextVar.reset` pour réaffecter la " +"valeur de la variable à ce qu'elle était avant le *set* correspondant." + +#: ../Doc/library/contextvars.rst:106 +msgid "" +"A read-only property. Points to the :class:`ContextVar` object that created " +"the token." +msgstr "" +"Propriété en lecture seule. Pointe vers l'objet :class:`ContextVar` qui a " +"créé le token." + +#: ../Doc/library/contextvars.rst:111 +msgid "" +"A read-only property. Set to the value the variable had before the :meth:" +"`ContextVar.set` method call that created the token. It points to :attr:" +"`Token.MISSING` is the variable was not set before the call." +msgstr "" +"Propriété en lecture seule. Sa valeur est celle que la variable avait avant " +"l'appel à la méthode :meth:`ContextVar.set` qui a créé le jeton. Elle pointe " +"à :attr:`Token.MISSING` si la variable n'est pas définie avant l'appel." + +#: ../Doc/library/contextvars.rst:118 +msgid "A marker object used by :attr:`Token.old_value`." +msgstr "Objet marqueur utilisé par :attr:`Token.old_value`." + +#: ../Doc/library/contextvars.rst:122 +msgid "Manual Context Management" +msgstr "Gestion de contexte manuelle" + +#: ../Doc/library/contextvars.rst:126 +msgid "Returns a copy of the current :class:`~contextvars.Context` object." +msgstr "Renvoie une copie de l'objet :class:`~contextvars.Context` actuel." + +#: ../Doc/library/contextvars.rst:128 +msgid "" +"The following snippet gets a copy of the current context and prints all " +"variables and their values that are set in it::" +msgstr "" +"Le fragment de code qui suit obtient une copie du contexte actuel et affiche " +"toutes les variables avec leurs valeurs définies dans ce contexte." + +#: ../Doc/library/contextvars.rst:134 +msgid "" +"The function has an O(1) complexity, i.e. works equally fast for contexts " +"with a few context variables and for contexts that have a lot of them." +msgstr "" +"La fonction a une complexité O(1), c.-à-d. qu'elle fonctionne aussi " +"rapidement pour des contextes avec peu de variables de contexte que pour des " +"contextes qui en ont beaucoup." + +#: ../Doc/library/contextvars.rst:141 +msgid "A mapping of :class:`ContextVars ` to their values." +msgstr "" +"Tableau associatif entre :class:`ContextVars ` et leurs valeurs." + +#: ../Doc/library/contextvars.rst:143 +msgid "" +"``Context()`` creates an empty context with no values in it. To get a copy " +"of the current context use the :func:`~contextvars.copy_context` function." +msgstr "" +"``Context()`` crée un contexte vide ne contenant aucune valeur. Pour obtenir " +"une copie du contexte actuel, utilisez la fonction :func:`~contextvars." +"copy_context`." + +#: ../Doc/library/contextvars.rst:147 +msgid "Context implements the :class:`collections.abc.Mapping` interface." +msgstr "*Context* implémente l'interface :class:`collections.abc.Mapping`." + +#: ../Doc/library/contextvars.rst:151 +msgid "" +"Execute ``callable(*args, **kwargs)`` code in the context object the *run* " +"method is called on. Return the result of the execution or propagate an " +"exception if one occurred." +msgstr "" +"Exécute le code ``callable(*args, **kwargs)`` dans le contexte défini par " +"l'objet. Renvoie le résultat de l'exécution ou propage une exception s'il y " +"en a une qui s'est produite." + +#: ../Doc/library/contextvars.rst:155 +msgid "" +"Any changes to any context variables that *callable* makes will be contained " +"in the context object::" +msgstr "" +"Tout changement apporté aux variables de contexte effectué par *callable* " +"sera contenu dans l'objet de contexte ::" + +#: ../Doc/library/contextvars.rst:184 +msgid "" +"The method raises a :exc:`RuntimeError` when called on the same context " +"object from more than one OS thread, or when called recursively." +msgstr "" +"La méthode lève une :exc:`RuntimeError` quand elle est appelée sur le même " +"objet de contexte depuis plus qu'un fil d'exécution ou quand elle est " +"appelée récursivement." + +#: ../Doc/library/contextvars.rst:190 +msgid "Return a shallow copy of the context object." +msgstr "Renvoie une copie de surface de l'objet de contexte." + +#: ../Doc/library/contextvars.rst:194 +msgid "" +"Return ``True`` if the *context* has a value for *var* set; return ``False`` " +"otherwise." +msgstr "" +"Renvoie ``True`` si le *context* a une valeur pour *var* ; sinon renvoie " +"``False``." + +#: ../Doc/library/contextvars.rst:199 +msgid "" +"Return the value of the *var* :class:`ContextVar` variable. If the variable " +"is not set in the context object, a :exc:`KeyError` is raised." +msgstr "" +"Renvoie la valeur de la variable :class:`ContextVar` *var*. Si la variable " +"n'est pas définie dans l'objet de contexte, une :exc:`KeyError` est levée." + +#: ../Doc/library/contextvars.rst:205 +msgid "" +"Return the value for *var* if *var* has the value in the context object. " +"Return *default* otherwise. If *default* is not given, return ``None``." +msgstr "" +"Renvoie la valeur de *var* si *var* possède une valeur dans l'objet de " +"contexte. Renvoie *default* sinon (ou ``None`` si *default* n'est pas donné)." + +#: ../Doc/library/contextvars.rst:211 +msgid "Return an iterator over the variables stored in the context object." +msgstr "" +"Renvoie un itérateur sur les variables stockées dans l'objet de contexte." + +#: ../Doc/library/contextvars.rst:216 +msgid "Return the number of variables set in the context object." +msgstr "Renvoie le nombre de variables définies dans l'objet de contexte." + +#: ../Doc/library/contextvars.rst:220 +msgid "Return a list of all variables in the context object." +msgstr "Renvoie une liste de toutes les variables dans l'objet de contexte." + +#: ../Doc/library/contextvars.rst:224 +msgid "Return a list of all variables' values in the context object." +msgstr "" +"Renvoie une liste de toutes les valeurs des variables dans l'objet de " +"contexte." + +#: ../Doc/library/contextvars.rst:229 +msgid "" +"Return a list of 2-tuples containing all variables and their values in the " +"context object." +msgstr "" +"Renvoie une liste de paires contenant toutes les variables et leurs valeurs " +"dans l'objet de contexte." + +#: ../Doc/library/contextvars.rst:234 +msgid "asyncio support" +msgstr "Gestion avec *asyncio*" + +#: ../Doc/library/contextvars.rst:236 +msgid "" +"Context variables are natively supported in :mod:`asyncio` and are ready to " +"be used without any extra configuration. For example, here is a simple echo " +"server, that uses a context variable to make the address of a remote client " +"available in the Task that handles that client::" +msgstr "" +":mod:`asyncio` gère nativement les variables de contexte et elles sont " +"prêtes à être utilisées sans configuration supplémentaire. Par exemple, " +"voici un serveur *echo* simple qui utilise une variable de contexte pour que " +"l’adresse d'un client distant soit disponible dans le *Task* qui gère ce " +"client ::" diff --git a/library/copy.po b/library/copy.po new file mode 100644 index 000000000..2510a0954 --- /dev/null +++ b/library/copy.po @@ -0,0 +1,197 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-02-21 17:18+0100\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/copy.rst:2 +msgid ":mod:`copy` --- Shallow and deep copy operations" +msgstr ":mod:`copy` — Opérations de copie superficielle et récursive" + +#: ../Doc/library/copy.rst:7 +msgid "**Source code:** :source:`Lib/copy.py`" +msgstr "**Code source :** :source:`Lib/copy.py`" + +#: ../Doc/library/copy.rst:11 +msgid "" +"Assignment statements in Python do not copy objects, they create bindings " +"between a target and an object. For collections that are mutable or contain " +"mutable items, a copy is sometimes needed so one can change one copy without " +"changing the other. This module provides generic shallow and deep copy " +"operations (explained below)." +msgstr "" +"Les instructions d'affectation en Python ne copient pas les objets, elles " +"créent des liens entre la cible et l'objet. Concernant les collections qui " +"sont muables ou contiennent des éléments muables, une copie est parfois " +"nécessaire, pour pouvoir modifier une copie sans modifier l'autre. Ce module " +"met à disposition des opérations de copie génériques superficielle et " +"récursive (comme expliqué ci-dessous)." + +#: ../Doc/library/copy.rst:18 +msgid "Interface summary:" +msgstr "Résumé de l'interface :" + +#: ../Doc/library/copy.rst:22 +msgid "Return a shallow copy of *x*." +msgstr "Renvoie une copie superficielle de *x*." + +#: ../Doc/library/copy.rst:27 +msgid "Return a deep copy of *x*." +msgstr "Renvoie une copie récursive de *x*." + +#: ../Doc/library/copy.rst:32 +msgid "Raised for module specific errors." +msgstr "Levée pour les erreurs spécifiques au module." + +#: ../Doc/library/copy.rst:35 +msgid "" +"The difference between shallow and deep copying is only relevant for " +"compound objects (objects that contain other objects, like lists or class " +"instances):" +msgstr "" +"La différence entre copie superficielle et récursive n'est pertinente que " +"pour les objets composés (objets contenant d'autres objets, comme des listes " +"ou des instances de classe) :" + +#: ../Doc/library/copy.rst:38 +msgid "" +"A *shallow copy* constructs a new compound object and then (to the extent " +"possible) inserts *references* into it to the objects found in the original." +msgstr "" +"Une *copie superficielle* construit un nouvel objet composé puis (dans la " +"mesure du possible) insère dans l'objet composé des *références* aux objets " +"trouvés dans l'original." + +#: ../Doc/library/copy.rst:41 +msgid "" +"A *deep copy* constructs a new compound object and then, recursively, " +"inserts *copies* into it of the objects found in the original." +msgstr "" +"Une *copie récursive (ou profonde)* construit un nouvel objet composé puis, " +"récursivement, insère dans l'objet composé des *copies* des objets trouvés " +"dans l'objet original." + +#: ../Doc/library/copy.rst:44 +msgid "" +"Two problems often exist with deep copy operations that don't exist with " +"shallow copy operations:" +msgstr "" +"On rencontre souvent deux problèmes avec les opérations de copie récursive " +"qui n'existent pas avec les opérations de copie superficielle :" + +#: ../Doc/library/copy.rst:47 +msgid "" +"Recursive objects (compound objects that, directly or indirectly, contain a " +"reference to themselves) may cause a recursive loop." +msgstr "" +"Les objets récursifs (objets composés qui, directement ou indirectement, " +"contiennent une référence à eux-mêmes) peuvent causer une boucle récursive." + +#: ../Doc/library/copy.rst:50 +msgid "" +"Because deep copy copies everything it may copy too much, such as data which " +"is intended to be shared between copies." +msgstr "" +"Comme une copie récursive copie tout, elle peut en copier trop, par exemple " +"des données qui sont destinées à être partagées entre différentes copies." + +#: ../Doc/library/copy.rst:53 +msgid "The :func:`deepcopy` function avoids these problems by:" +msgstr "La fonction :func:`deepcopy` évite ces problèmes en :" + +#: ../Doc/library/copy.rst:55 +msgid "" +"keeping a ``memo`` dictionary of objects already copied during the current " +"copying pass; and" +msgstr "" +"gardant en mémoire dans un dictionnaire ``memo`` les objets déjà copiés " +"durant la phase de copie actuelle ; et" + +#: ../Doc/library/copy.rst:58 +msgid "" +"letting user-defined classes override the copying operation or the set of " +"components copied." +msgstr "" +"laissant les classes créées par l'utilisateur écraser l'opération de copie " +"ou l'ensemble de composants copiés." + +#: ../Doc/library/copy.rst:61 +msgid "" +"This module does not copy types like module, method, stack trace, stack " +"frame, file, socket, window, array, or any similar types. It does \"copy\" " +"functions and classes (shallow and deeply), by returning the original object " +"unchanged; this is compatible with the way these are treated by the :mod:" +"`pickle` module." +msgstr "" +"Ce module ne copie pas les types tels que module, méthode, trace d'appels, " +"cadre de pile, fichier, socket, fenêtre, tableau, ou tout autre type " +"similaire. Il \"copie\" les fonctions et les classes (superficiellement et " +"récursivement), en retournant l'objet original inchangé ; c'est compatible " +"avec la manière dont ils sont traités par le module :mod:`pickle`." + +#: ../Doc/library/copy.rst:66 +msgid "" +"Shallow copies of dictionaries can be made using :meth:`dict.copy`, and of " +"lists by assigning a slice of the entire list, for example, ``copied_list = " +"original_list[:]``." +msgstr "" +"Les copies superficielles de dictionnaires peuvent être faites en utilisant :" +"meth:`dict.copy`, et de listes en affectant un ``slice`` de la liste, par " +"exemple, ``copied_list = original_list[:]``." + +#: ../Doc/library/copy.rst:72 +msgid "" +"Classes can use the same interfaces to control copying that they use to " +"control pickling. See the description of module :mod:`pickle` for " +"information on these methods. In fact, the :mod:`copy` module uses the " +"registered pickle functions from the :mod:`copyreg` module." +msgstr "" +"Les classes peuvent utiliser les mêmes interfaces de contrôle que celles " +"utilisées pour la sérialisation. Voir la description du module :mod:`pickle` " +"pour plus d'informations sur ces méthodes. En effet, le module :mod:`copy` " +"utilise les fonctions de sérialisation enregistrées à partir du module :mod:" +"`copyreg`." + +#: ../Doc/library/copy.rst:81 +msgid "" +"In order for a class to define its own copy implementation, it can define " +"special methods :meth:`__copy__` and :meth:`__deepcopy__`. The former is " +"called to implement the shallow copy operation; no additional arguments are " +"passed. The latter is called to implement the deep copy operation; it is " +"passed one argument, the ``memo`` dictionary. If the :meth:`__deepcopy__` " +"implementation needs to make a deep copy of a component, it should call the :" +"func:`deepcopy` function with the component as first argument and the memo " +"dictionary as second argument." +msgstr "" +"Afin qu'une classe définisse sa propre implémentation de copie, elle peut " +"définir les méthodes spéciales :meth:`__copy__` et :meth:`__deepcopy__`. La " +"première est appelée pour implémenter l'opération de copie superficielle ; " +"aucun argument supplémentaire n'est passé. La seconde est appelée pour " +"implémenter l'opération de copie récursive ; elle reçoit un argument, le " +"dictionnaire ``memo``. Si l'implémentation de :meth:`__deepcopy__` a besoin " +"de faire une copie récursive d'un composant, elle doit appeler la fonction :" +"func:`deepcopy` avec le composant comme premier argument et le dictionnaire " +"*memo* comme second argument." + +#: ../Doc/library/copy.rst:93 +msgid "Module :mod:`pickle`" +msgstr "Module :mod:`pickle`" + +#: ../Doc/library/copy.rst:93 +msgid "" +"Discussion of the special methods used to support object state retrieval and " +"restoration." +msgstr "" +"Discussion sur les méthodes spéciales utilisées pour gérer la récupération " +"et la restauration de l'état d'un objet." diff --git a/library/copyreg.po b/library/copyreg.po new file mode 100644 index 000000000..74644fd67 --- /dev/null +++ b/library/copyreg.po @@ -0,0 +1,97 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-11-23 15:14+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/library/copyreg.rst:2 +msgid ":mod:`copyreg` --- Register :mod:`pickle` support functions" +msgstr ":mod:`copyreg` — Enregistre les fonctions support de :mod:`pickle`" + +#: ../Doc/library/copyreg.rst:7 +msgid "**Source code:** :source:`Lib/copyreg.py`" +msgstr "**Code source :** :source:`Lib/copyreg.py`" + +#: ../Doc/library/copyreg.rst:15 +msgid "" +"The :mod:`copyreg` module offers a way to define functions used while " +"pickling specific objects. The :mod:`pickle` and :mod:`copy` modules use " +"those functions when pickling/copying those objects. The module provides " +"configuration information about object constructors which are not classes. " +"Such constructors may be factory functions or class instances." +msgstr "" +"Le module :mod:`copyreg` permet de définir des fonctions utilisées durant la " +"sérialisation avec *pickle* de certains objets. Les modules :mod:`pickle` " +"et :mod:`copy` utilisent ces fonctions lors d'une sérialisation ou d'une " +"copie de ces objets. Le module propose alors des informations de " +"configuration à propos de constructeurs d'objets qui ne sont pas des " +"classes. De tels constructeurs peuvent être des instances de classes ou des " +"fonctions." + +#: ../Doc/library/copyreg.rst:24 +msgid "" +"Declares *object* to be a valid constructor. If *object* is not callable " +"(and hence not valid as a constructor), raises :exc:`TypeError`." +msgstr "" +"Déclare *object* comme étant un constructeur valide. Si *object* n'est pas " +"appelable (et n'est donc pas un constructeur valide), l'erreur :exc:" +"`TypeError` est levée." + +#: ../Doc/library/copyreg.rst:30 +msgid "" +"Declares that *function* should be used as a \"reduction\" function for " +"objects of type *type*. *function* should return either a string or a tuple " +"containing two or three elements." +msgstr "" +"Déclare que *function* devrait être utilisée en tant que fonction de " +"*réduction* pour des objets de type *type*. *function* doit soit retourner " +"une chaîne de caractères soit un tuple qui contiens deux ou trois éléments." + +#: ../Doc/library/copyreg.rst:34 +msgid "" +"The optional *constructor* parameter, if provided, is a callable object " +"which can be used to reconstruct the object when called with the tuple of " +"arguments returned by *function* at pickling time. :exc:`TypeError` will be " +"raised if *object* is a class or *constructor* is not callable." +msgstr "" +"Le paramètre optionnel *contructor*, s'il est donné, est un objet appelable " +"qui peux être utilisé pour reconstruire l’objet lorsqu'il est appelé avec un " +"tuple d'arguments retournés par *function* durant la sérialisation avec " +"*pickle*. Une exception :exc:`TypeError` sera levée si *object* est une " +"classe ou si *constructor* n'est pas appelable." + +#: ../Doc/library/copyreg.rst:39 +msgid "" +"See the :mod:`pickle` module for more details on the interface expected of " +"*function* and *constructor*. Note that the :attr:`~pickle.Pickler." +"dispatch_table` attribute of a pickler object or subclass of :class:`pickle." +"Pickler` can also be used for declaring reduction functions." +msgstr "" +"Voir le module :mod:`pickle` pour plus de détails sur l'interface attendue " +"de *function* et *constructor*. Notez que l’attribut :attr:`~pickle.Pickler." +"dispatch_table` d'un objet ``pickler`` ou d'une sous-classe de :class:" +"`pickle.Pickler` peut aussi être utilisée pour déclarer des fonctions " +"réductrices." + +#: ../Doc/library/copyreg.rst:46 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/copyreg.rst:48 +msgid "" +"The example below would like to show how to register a pickle function and " +"how it will be used:" +msgstr "" +"L'exemple si-dessous essaye de démontrer comment enregistrer une fonction " +"*pickle* et comment elle sera utilisée :" diff --git a/library/crypt.po b/library/crypt.po new file mode 100644 index 000000000..c1270294c --- /dev/null +++ b/library/crypt.po @@ -0,0 +1,184 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/crypt.rst:2 +msgid ":mod:`crypt` --- Function to check Unix passwords" +msgstr "" + +#: ../Doc/library/crypt.rst:12 +msgid "**Source code:** :source:`Lib/crypt.py`" +msgstr "" + +#: ../Doc/library/crypt.rst:20 +msgid "" +"This module implements an interface to the :manpage:`crypt(3)` routine, " +"which is a one-way hash function based upon a modified DES algorithm; see " +"the Unix man page for further details. Possible uses include storing hashed " +"passwords so you can check passwords without storing the actual password, or " +"attempting to crack Unix passwords with a dictionary." +msgstr "" + +#: ../Doc/library/crypt.rst:28 +msgid "" +"Notice that the behavior of this module depends on the actual " +"implementation of the :manpage:`crypt(3)` routine in the running system. " +"Therefore, any extensions available on the current implementation will also " +"be available on this module." +msgstr "" + +#: ../Doc/library/crypt.rst:34 +msgid "Hashing Methods" +msgstr "" + +#: ../Doc/library/crypt.rst:38 +msgid "" +"The :mod:`crypt` module defines the list of hashing methods (not all methods " +"are available on all platforms):" +msgstr "" + +#: ../Doc/library/crypt.rst:43 +msgid "" +"A Modular Crypt Format method with 16 character salt and 86 character hash " +"based on the SHA-512 hash function. This is the strongest method." +msgstr "" + +#: ../Doc/library/crypt.rst:48 +msgid "" +"Another Modular Crypt Format method with 16 character salt and 43 character " +"hash based on the SHA-256 hash function." +msgstr "" + +#: ../Doc/library/crypt.rst:53 +msgid "" +"Another Modular Crypt Format method with 22 character salt and 31 character " +"hash based on the Blowfish cipher." +msgstr "" + +#: ../Doc/library/crypt.rst:60 +msgid "" +"Another Modular Crypt Format method with 8 character salt and 22 character " +"hash based on the MD5 hash function." +msgstr "" + +#: ../Doc/library/crypt.rst:65 +msgid "" +"The traditional method with a 2 character salt and 13 characters of hash. " +"This is the weakest method." +msgstr "" + +#: ../Doc/library/crypt.rst:70 +msgid "Module Attributes" +msgstr "" + +#: ../Doc/library/crypt.rst:76 +msgid "" +"A list of available password hashing algorithms, as ``crypt.METHOD_*`` " +"objects. This list is sorted from strongest to weakest." +msgstr "" + +#: ../Doc/library/crypt.rst:82 +msgid "Module Functions" +msgstr "" + +#: ../Doc/library/crypt.rst:84 +msgid "The :mod:`crypt` module defines the following functions:" +msgstr "" + +#: ../Doc/library/crypt.rst:88 +msgid "" +"*word* will usually be a user's password as typed at a prompt or in a " +"graphical interface. The optional *salt* is either a string as returned " +"from :func:`mksalt`, one of the ``crypt.METHOD_*`` values (though not all " +"may be available on all platforms), or a full encrypted password including " +"salt, as returned by this function. If *salt* is not provided, the " +"strongest method will be used (as returned by :func:`methods`)." +msgstr "" + +#: ../Doc/library/crypt.rst:96 +msgid "" +"Checking a password is usually done by passing the plain-text password as " +"*word* and the full results of a previous :func:`crypt` call, which should " +"be the same as the results of this call." +msgstr "" + +#: ../Doc/library/crypt.rst:100 +msgid "" +"*salt* (either a random 2 or 16 character string, possibly prefixed with ``" +"$digit$`` to indicate the method) which will be used to perturb the " +"encryption algorithm. The characters in *salt* must be in the set ``[./a-zA-" +"Z0-9]``, with the exception of Modular Crypt Format which prefixes a ``$digit" +"$``." +msgstr "" + +#: ../Doc/library/crypt.rst:106 +msgid "" +"Returns the hashed password as a string, which will be composed of " +"characters from the same alphabet as the salt." +msgstr "" + +#: ../Doc/library/crypt.rst:111 +msgid "" +"Since a few :manpage:`crypt(3)` extensions allow different values, with " +"different sizes in the *salt*, it is recommended to use the full crypted " +"password as salt when checking for a password." +msgstr "" + +#: ../Doc/library/crypt.rst:115 +msgid "Accept ``crypt.METHOD_*`` values in addition to strings for *salt*." +msgstr "" + +#: ../Doc/library/crypt.rst:121 +msgid "" +"Return a randomly generated salt of the specified method. If no *method* is " +"given, the strongest method available as returned by :func:`methods` is used." +msgstr "" + +#: ../Doc/library/crypt.rst:125 +msgid "" +"The return value is a string suitable for passing as the *salt* argument to :" +"func:`crypt`." +msgstr "" + +#: ../Doc/library/crypt.rst:128 +msgid "" +"*rounds* specifies the number of rounds for ``METHOD_SHA256``, " +"``METHOD_SHA512`` and ``METHOD_BLOWFISH``. For ``METHOD_SHA256`` and " +"``METHOD_SHA512`` it must be an integer between ``1000`` and " +"``999_999_999``, the default is ``5000``. For ``METHOD_BLOWFISH`` it must " +"be a power of two between ``16`` (2\\ :sup:`4`) and ``2_147_483_648`` (2\\ :" +"sup:`31`), the default is ``4096`` (2\\ :sup:`12`)." +msgstr "" + +#: ../Doc/library/crypt.rst:138 +msgid "Added the *rounds* parameter." +msgstr "" + +#: ../Doc/library/crypt.rst:143 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/crypt.rst:145 +msgid "" +"A simple example illustrating typical use (a constant-time comparison " +"operation is needed to limit exposure to timing attacks. :func:`hmac." +"compare_digest` is suitable for this purpose)::" +msgstr "" + +#: ../Doc/library/crypt.rst:165 +msgid "" +"To generate a hash of a password using the strongest available method and " +"check it against the original::" +msgstr "" diff --git a/library/crypto.po b/library/crypto.po new file mode 100644 index 000000000..c568fa0e9 --- /dev/null +++ b/library/crypto.po @@ -0,0 +1,31 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-02-15 00:42+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/crypto.rst:5 +msgid "Cryptographic Services" +msgstr "Service de cryptographie" + +#: ../Doc/library/crypto.rst:9 +msgid "" +"The modules described in this chapter implement various algorithms of a " +"cryptographic nature. They are available at the discretion of the " +"installation. On Unix systems, the :mod:`crypt` module may also be " +"available. Here's an overview:" +msgstr "" +"Les modules décrits dans ce chapitre mettent en œuvre divers algorithmes " +"cryptographiques. Ils peuvent, ou pas, être disponibles, en fonction de " +"l'installation Sur les systèmes Unix, le module :mod:`crypt` peut aussi être " +"disponible. Voici une vue d'ensemble:" diff --git a/library/csv.po b/library/csv.po new file mode 100644 index 000000000..aa672b40d --- /dev/null +++ b/library/csv.po @@ -0,0 +1,770 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2019-06-01 23:54+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.4\n" + +#: ../Doc/library/csv.rst:2 +msgid ":mod:`csv` --- CSV File Reading and Writing" +msgstr ":mod:`csv` — Lecture et écriture de fichiers CSV" + +#: ../Doc/library/csv.rst:9 +msgid "**Source code:** :source:`Lib/csv.py`" +msgstr "**Code source :** :source:`Lib/csv.py`" + +#: ../Doc/library/csv.rst:17 +msgid "" +"The so-called CSV (Comma Separated Values) format is the most common import " +"and export format for spreadsheets and databases. CSV format was used for " +"many years prior to attempts to describe the format in a standardized way " +"in :rfc:`4180`. The lack of a well-defined standard means that subtle " +"differences often exist in the data produced and consumed by different " +"applications. These differences can make it annoying to process CSV files " +"from multiple sources. Still, while the delimiters and quoting characters " +"vary, the overall format is similar enough that it is possible to write a " +"single module which can efficiently manipulate such data, hiding the details " +"of reading and writing the data from the programmer." +msgstr "" +"Le format CSV (*Comma Separated Values*, valeurs séparées par des virgules) " +"est le format le plus commun dans l'importation et l'exportation de feuilles " +"de calculs et de bases de données. Le format fut utilisé pendant des années " +"avant qu'aient lieu des tentatives de standardisation avec la :rfc:`4180`. " +"L'absence de format bien défini signifie que des différences subtiles " +"existent dans la production et la consommation de données par différentes " +"applications. Ces différences peuvent gêner lors du traitement de fichiers " +"CSV depuis des sources multiples. Cependant, bien que les séparateurs et " +"délimiteurs varient, le format global est suffisamment similaire pour qu'un " +"module unique puisse manipuler efficacement ces données, masquant au " +"programmeur les détails de lecture/écriture des données." + +#: ../Doc/library/csv.rst:28 +msgid "" +"The :mod:`csv` module implements classes to read and write tabular data in " +"CSV format. It allows programmers to say, \"write this data in the format " +"preferred by Excel,\" or \"read data from this file which was generated by " +"Excel,\" without knowing the precise details of the CSV format used by " +"Excel. Programmers can also describe the CSV formats understood by other " +"applications or define their own special-purpose CSV formats." +msgstr "" +"Le module :mod:`csv` implémente des classes pour lire et écrire des données " +"tabulaires au format CSV. Il vous permet de dire « écris ces données dans " +"le format préféré par Excel » ou « lis les données de ce fichier généré par " +"Excel », sans connaître les détails précis du format CSV utilisé par Excel. " +"Vous pouvez aussi décrire les formats CSV utilisés par d'autres application " +"ou définir vos propres spécialisations." + +#: ../Doc/library/csv.rst:35 +msgid "" +"The :mod:`csv` module's :class:`reader` and :class:`writer` objects read and " +"write sequences. Programmers can also read and write data in dictionary " +"form using the :class:`DictReader` and :class:`DictWriter` classes." +msgstr "" +"Les objets :class:`reader` et :class:`writer` du module :mod:`csv` lisent et " +"écrivent des séquences. Vous pouvez aussi lire/écrire les données dans un " +"dictionnaire en utilisant les classes :class:`DictReader` et :class:" +"`DictWriter`." + +#: ../Doc/library/csv.rst:41 +msgid ":pep:`305` - CSV File API" +msgstr ":pep:`305` ­— Interface des fichiers CSV" + +#: ../Doc/library/csv.rst:42 +msgid "The Python Enhancement Proposal which proposed this addition to Python." +msgstr "" +"La proposition d'amélioration de Python (PEP) qui a proposé cet ajout au " +"langage." + +#: ../Doc/library/csv.rst:48 +msgid "Module Contents" +msgstr "Contenu du module" + +#: ../Doc/library/csv.rst:50 +msgid "The :mod:`csv` module defines the following functions:" +msgstr "Le module :mod:`csv` définit les fonctions suivantes :" + +#: ../Doc/library/csv.rst:58 +msgid "" +"Return a reader object which will iterate over lines in the given *csvfile*. " +"*csvfile* can be any object which supports the :term:`iterator` protocol and " +"returns a string each time its :meth:`!__next__` method is called --- :term:" +"`file objects ` and list objects are both suitable. If " +"*csvfile* is a file object, it should be opened with ``newline=''``. [1]_ " +"An optional *dialect* parameter can be given which is used to define a set " +"of parameters specific to a particular CSV dialect. It may be an instance " +"of a subclass of the :class:`Dialect` class or one of the strings returned " +"by the :func:`list_dialects` function. The other optional *fmtparams* " +"keyword arguments can be given to override individual formatting parameters " +"in the current dialect. For full details about the dialect and formatting " +"parameters, see section :ref:`csv-fmt-params`." +msgstr "" +"Renvoie un objet lecteur, qui itérera sur les lignes de l'objet *csvfile* " +"donné. *csvfile* peut être n'importe quel objet supportant le protocole :" +"term:`itérateur ` et renvoyant une chaîne de caractères chaque " +"fois que sa méthode :meth:`!__next__` est appelée — les :term:`fichiers " +"objets ` et les listes sont tous deux valables. Si *csvfile* " +"est un fichier, il doit être ouvert avec ``newline=''``. [1]_ Un paramètre " +"*dialect* optionnel peut être fourni pour définir un ensemble de paramètres " +"spécifiques à un dialecte CSV particulier. Il peut s'agir d'une instance de " +"sous-classe de :class:`Dialect` ou de l'une des chaînes renvoyées par la " +"fonction :func:`list_dialects`. Les autres arguments nommés optionnels " +"(*fmtparams*) peuvent être spécifiés pour redéfinir des paramètres de " +"formatage particuliers dans le dialecte courant. Pour des détails complets " +"sur les dialectes et paramètres de formatage, voir la section :ref:`csv-fmt-" +"params`." + +#: ../Doc/library/csv.rst:71 +msgid "" +"Each row read from the csv file is returned as a list of strings. No " +"automatic data type conversion is performed unless the ``QUOTE_NONNUMERIC`` " +"format option is specified (in which case unquoted fields are transformed " +"into floats)." +msgstr "" +"Chaque ligne lue depuis le fichier CSV est renvoyée comme une liste de " +"chaînes de caractères. Aucune conversion automatique de type des données " +"n'est effectuée à moins que l'option de formatage ``QUOTE_NONNUMERIC`` soit " +"spécifiée (dans ce cas, les champs sans guillemets sont transformés en " +"nombres flottants)." + +#: ../Doc/library/csv.rst:75 ../Doc/library/csv.rst:105 +#: ../Doc/library/csv.rst:172 ../Doc/library/csv.rst:208 +msgid "A short usage example::" +msgstr "Un court exemple d'utilisation ::" + +#: ../Doc/library/csv.rst:88 +msgid "" +"Return a writer object responsible for converting the user's data into " +"delimited strings on the given file-like object. *csvfile* can be any " +"object with a :func:`write` method. If *csvfile* is a file object, it " +"should be opened with ``newline=''`` [1]_. An optional *dialect* parameter " +"can be given which is used to define a set of parameters specific to a " +"particular CSV dialect. It may be an instance of a subclass of the :class:" +"`Dialect` class or one of the strings returned by the :func:`list_dialects` " +"function. The other optional *fmtparams* keyword arguments can be given to " +"override individual formatting parameters in the current dialect. For full " +"details about the dialect and formatting parameters, see section :ref:`csv-" +"fmt-params`. To make it as easy as possible to interface with modules which " +"implement the DB API, the value :const:`None` is written as the empty " +"string. While this isn't a reversible transformation, it makes it easier to " +"dump SQL NULL data values to CSV files without preprocessing the data " +"returned from a ``cursor.fetch*`` call. All other non-string data are " +"stringified with :func:`str` before being written." +msgstr "" +"Renvoie un objet transcripteur responsable de convertir les données de " +"l'utilisateur en chaînes délimitées sur l'objet fichier-compatible donné. " +"*csvfile* peut être n'importe quel objet avec une méthode :func:`write`. Si " +"*csvfile* est un fichier, il doit être ouvert avec ``newline=''``. [1]_ Un " +"paramètre *dialect* optionnel peut être fourni pour définir un ensemble de " +"paramètres spécifiques à un dialecte CSV particulier. Il peut s'agir d'une " +"instance de sous-classe de :class:`Dialect` ou de l'une des chaînes " +"renvoyées par la fonction :func:`list_dialects`. Les autres arguments " +"nommés optionnels (*fmtparams*) peuvent être spécifiés pour redéfinir des " +"paramètres de formatage particuliers dans le dialecte courant. Pour des " +"détails complets sur les dialectes et paramètres de formatage, voir la " +"section :ref:`csv-fmt-params`. Pour faciliter au mieux l'interfaçage avec " +"d'autres modules implémentant l'interface *DB*, la valeur :const:`None` est " +"écrite comme une chaîne vide. Bien que ce ne soit pas une transformation " +"réversible, cela simplifie l'exportation de données SQL *NULL* vers des " +"fichiers CSV sans pré-traiter les données renvoyées par un appel à ``cursor." +"fetch*``. Toutes les autres données qui ne sont pas des chaînes de " +"caractères sont transformées en chaînes par un appel à :func:`str` avant " +"d'être écrites." + +#: ../Doc/library/csv.rst:117 +msgid "" +"Associate *dialect* with *name*. *name* must be a string. The dialect can " +"be specified either by passing a sub-class of :class:`Dialect`, or by " +"*fmtparams* keyword arguments, or both, with keyword arguments overriding " +"parameters of the dialect. For full details about the dialect and formatting " +"parameters, see section :ref:`csv-fmt-params`." +msgstr "" +"Associe *dialect* avec *name*. *name* doit être une chaîne de caractères. " +"Le dialecte peut être spécifié en passant une instance d'une sous-classe de :" +"class:`Dialect`, des arguments nommés *fmtparams*, ou les deux, avec les " +"arguments nommés redéfinissant les paramètres du dialecte. Pour des détails " +"complets sur les dialectes et paramètres de formatage, voir la section :ref:" +"`csv-fmt-params`." + +#: ../Doc/library/csv.rst:126 +msgid "" +"Delete the dialect associated with *name* from the dialect registry. An :" +"exc:`Error` is raised if *name* is not a registered dialect name." +msgstr "" +"Supprime le dialecte associé à *name* depuis le registre des dialectes. " +"Une :exc:`Error` est levée si *name* n'est pas un nom de dialecte enregistré." + +#: ../Doc/library/csv.rst:132 +msgid "" +"Return the dialect associated with *name*. An :exc:`Error` is raised if " +"*name* is not a registered dialect name. This function returns an " +"immutable :class:`Dialect`." +msgstr "" +"Renvoie le dialecte associé à *name*. Une :exc:`Error` est levée si *name* " +"n'est pas un nom de dialecte enregistré. Cette fonction renvoie un objet :" +"class:`Dialect` immuable." + +#: ../Doc/library/csv.rst:138 +msgid "Return the names of all registered dialects." +msgstr "Renvoie les noms de tous les dialectes enregistrés." + +#: ../Doc/library/csv.rst:143 +msgid "" +"Returns the current maximum field size allowed by the parser. If *new_limit* " +"is given, this becomes the new limit." +msgstr "" +"Renvoie la taille de champ maximale courante autorisée par l'analyseur. Si " +"*new_limit* est donnée, elle devient la nouvelle limite." + +#: ../Doc/library/csv.rst:147 +msgid "The :mod:`csv` module defines the following classes:" +msgstr "Le module :mod:`csv` définit les classes suivantes :" + +#: ../Doc/library/csv.rst:152 +msgid "" +"Create an object that operates like a regular reader but maps the " +"information in each row to an :mod:`OrderedDict ` " +"whose keys are given by the optional *fieldnames* parameter." +msgstr "" +"Crée un objet qui opère comme un lecteur ordinaire mais assemble les " +"informations de chaque ligne dans un :mod:`OrderedDict ` dont les clés sont données par le paramètre optionnel " +"*fieldnames*." + +#: ../Doc/library/csv.rst:156 +msgid "" +"The *fieldnames* parameter is a :term:`sequence`. If *fieldnames* is " +"omitted, the values in the first row of file *f* will be used as the " +"fieldnames. Regardless of how the fieldnames are determined, the ordered " +"dictionary preserves their original ordering." +msgstr "" +"Le paramètre *fieldnames* est une :term:`sequence`. Si *fieldnames* est " +"omis, les valeurs de la première ligne du fichier *f* seront utilisées comme " +"noms de champs. Sans se soucier de comment sont déterminés les noms de " +"champs, le dictionnaire ordonné préserve leur ordre original." + +#: ../Doc/library/csv.rst:161 +msgid "" +"If a row has more fields than fieldnames, the remaining data is put in a " +"list and stored with the fieldname specified by *restkey* (which defaults to " +"``None``). If a non-blank row has fewer fields than fieldnames, the missing " +"values are filled-in with ``None``." +msgstr "" +"Si une ligne a plus de champs que *fieldnames*, les données excédentaires " +"sont mises dans une liste stockée dans le champ spécifié par *restkey* " +"(``None`` par défaut). Si une ligne non-vide a moins de champs que " +"*fieldnames*, les valeurs manquantes sont mises à ``None``." + +#: ../Doc/library/csv.rst:166 +msgid "" +"All other optional or keyword arguments are passed to the underlying :class:" +"`reader` instance." +msgstr "" +"Tous les autres arguments optionnels ou nommés sont passés à l'instance :" +"class:`reader` sous-jacente." + +#: ../Doc/library/csv.rst:169 +msgid "Returned rows are now of type :class:`OrderedDict`." +msgstr "Les lignes renvoyées sont maintenant de type :class:`OrderedDict`." + +#: ../Doc/library/csv.rst:190 +msgid "" +"Create an object which operates like a regular writer but maps dictionaries " +"onto output rows. The *fieldnames* parameter is a :mod:`sequence " +"` of keys that identify the order in which values in the " +"dictionary passed to the :meth:`writerow` method are written to file *f*. " +"The optional *restval* parameter specifies the value to be written if the " +"dictionary is missing a key in *fieldnames*. If the dictionary passed to " +"the :meth:`writerow` method contains a key not found in *fieldnames*, the " +"optional *extrasaction* parameter indicates what action to take. If it is " +"set to ``'raise'``, the default value, a :exc:`ValueError` is raised. If it " +"is set to ``'ignore'``, extra values in the dictionary are ignored. Any " +"other optional or keyword arguments are passed to the underlying :class:" +"`writer` instance." +msgstr "" +"Crée un objet qui opère comme un transcripteur ordinaire mais qui produit " +"les lignes de sortie depuis des dictionnaires. Le paramètre *fieldnames* " +"est une :mod:`séquence ` de clés qui indique l'ordre dans " +"lequel les valeurs du dictionnaire passé à la méthode :meth:`writerow` " +"doivent être écrites vers le fichier *f*. Le paramètre optionnel *restval* " +"spécifie la valeur à écrire si une clé de *fieldnames* manque dans le " +"dictionnaire. Si le dictionnaire passé à :meth:`writerow` possède une clé " +"non présente dans *fieldnames*, le paramètre optionnel *extrasaction* " +"indique quelle action réaliser. S'il vaut ``'raise'``, sa valeur par défaut, " +"une :exc:`ValueError` est levée. S'il faut ``'ignore'``, les valeurs " +"excédentaires du dictionnaire sont ignorées. Les autres arguments optionnels " +"ou nommés sont passés à l'instance :class:`writer` sous-jacente." + +#: ../Doc/library/csv.rst:205 +msgid "" +"Note that unlike the :class:`DictReader` class, the *fieldnames* parameter " +"of the :class:`DictWriter` class is not optional." +msgstr "" +"Notez que contrairement à la classe :class:`DictReader`, le paramètre " +"*fieldnames* de :class:`DictWriter` n'est pas optionnel." + +#: ../Doc/library/csv.rst:224 +msgid "" +"The :class:`Dialect` class is a container class relied on primarily for its " +"attributes, which are used to define the parameters for a specific :class:" +"`reader` or :class:`writer` instance." +msgstr "" +"La classe :class:`Dialect` est une classe de conteneurs utilisée " +"principalement pour ses attributs, qui servent à définir des paramètres pour " +"des instances spécifiques de :class:`reader` ou :class:`writer`." + +#: ../Doc/library/csv.rst:231 +msgid "" +"The :class:`excel` class defines the usual properties of an Excel-generated " +"CSV file. It is registered with the dialect name ``'excel'``." +msgstr "" +"La classe :class:`excel` définit les propriétés usuelles d'un fichier CSV " +"généré par Excel. Elle est enregistrée avec le nom de dialecte ``'excel'``." + +#: ../Doc/library/csv.rst:237 +msgid "" +"The :class:`excel_tab` class defines the usual properties of an Excel-" +"generated TAB-delimited file. It is registered with the dialect name " +"``'excel-tab'``." +msgstr "" +"La classe :class:`excel_tab` définit les propriétés usuelles d'un fichier " +"CSV généré par Excel avec des tabulations comme séparateurs. Elle est " +"enregistrée avec le nom de dialecte ``'excel-tab'``." + +#: ../Doc/library/csv.rst:243 +msgid "" +"The :class:`unix_dialect` class defines the usual properties of a CSV file " +"generated on UNIX systems, i.e. using ``'\\n'`` as line terminator and " +"quoting all fields. It is registered with the dialect name ``'unix'``." +msgstr "" +"La classe :class:`unix_dialect` définit les propriétés usuelles d'un fichier " +"CSV généré sur un système Unix, c'est-à-dire utilisant ``'\\n'`` comme " +"marqueur de fin de ligne et délimitant tous les champs par des guillemets. " +"Elle est enregistrée avec le nom de dialecte ``'unix'``." + +#: ../Doc/library/csv.rst:252 +msgid "The :class:`Sniffer` class is used to deduce the format of a CSV file." +msgstr "" +"La classe :class:`Sniffer` est utilisée pour déduire le format d'un fichier " +"CSV." + +#: ../Doc/library/csv.rst:254 +msgid "The :class:`Sniffer` class provides two methods:" +msgstr "La classe :class:`Sniffer` fournit deux méthodes :" + +#: ../Doc/library/csv.rst:258 +msgid "" +"Analyze the given *sample* and return a :class:`Dialect` subclass reflecting " +"the parameters found. If the optional *delimiters* parameter is given, it " +"is interpreted as a string containing possible valid delimiter characters." +msgstr "" +"Analyse l'extrait donné (*sample*) et renvoie une sous-classe :class:" +"`Dialect` reflétant les paramètres trouvés. Si le paramètre optionnel " +"*delimiters* est donné, il est interprété comme une chaîne contenant tous " +"les caractères valides de séparation possibles." + +#: ../Doc/library/csv.rst:266 +msgid "" +"Analyze the sample text (presumed to be in CSV format) and return :const:" +"`True` if the first row appears to be a series of column headers." +msgstr "" +"Analyse l'extrait de texte (présumé être au format CSV) et renvoie :const:" +"`True` si la première ligne semble être une série d'en-têtes de colonnes." + +#: ../Doc/library/csv.rst:269 +msgid "An example for :class:`Sniffer` use::" +msgstr "Un exemple d'utilisation de :class:`Sniffer` ::" + +#: ../Doc/library/csv.rst:278 +msgid "The :mod:`csv` module defines the following constants:" +msgstr "Le module :mod:`csv` définit les constantes suivantes :" + +#: ../Doc/library/csv.rst:282 +msgid "Instructs :class:`writer` objects to quote all fields." +msgstr "" +"Indique aux objets :class:`writer` de délimiter tous les champs par des " +"guillemets." + +#: ../Doc/library/csv.rst:287 +msgid "" +"Instructs :class:`writer` objects to only quote those fields which contain " +"special characters such as *delimiter*, *quotechar* or any of the characters " +"in *lineterminator*." +msgstr "" +"Indique aux objets :class:`writer` de ne délimiter ainsi que les champs " +"contenant un caractère spécial comme *delimiter*, *quotechar* ou n'importe " +"quel caractère de *lineterminator*." + +#: ../Doc/library/csv.rst:294 +msgid "Instructs :class:`writer` objects to quote all non-numeric fields." +msgstr "" +"Indique aux objets :class:`writer` de délimiter ainsi tous les champs non-" +"numériques." + +#: ../Doc/library/csv.rst:296 +msgid "Instructs the reader to convert all non-quoted fields to type *float*." +msgstr "" +"Indique au lecteur de convertir tous les champs non délimités par des " +"guillemets vers des *float*." + +#: ../Doc/library/csv.rst:301 +msgid "" +"Instructs :class:`writer` objects to never quote fields. When the current " +"*delimiter* occurs in output data it is preceded by the current *escapechar* " +"character. If *escapechar* is not set, the writer will raise :exc:`Error` " +"if any characters that require escaping are encountered." +msgstr "" +"Indique aux objets :class:`writer` de ne jamais délimiter les champs par des " +"guillemets. Quand le *delimiter* courant apparaît dans les données, il est " +"précédé sur la sortie par un caractère *escapechar*. Si *escapechar* n'est " +"pas précisé, le transcripteur lèvera une :exc:`Error` si un caractère " +"nécessitant un échappement est rencontré." + +#: ../Doc/library/csv.rst:306 +msgid "" +"Instructs :class:`reader` to perform no special processing of quote " +"characters." +msgstr "" +"Indique au :class:`reader` de ne pas opérer de traitement spécial sur les " +"guillemets." + +#: ../Doc/library/csv.rst:308 +msgid "The :mod:`csv` module defines the following exception:" +msgstr "Le module :mod:`csv` définit les exceptions suivantes :" + +#: ../Doc/library/csv.rst:313 +msgid "Raised by any of the functions when an error is detected." +msgstr "Levée par les fonctions du module quand une erreur détectée." + +#: ../Doc/library/csv.rst:318 +msgid "Dialects and Formatting Parameters" +msgstr "Dialectes et paramètres de formatage" + +#: ../Doc/library/csv.rst:320 +msgid "" +"To make it easier to specify the format of input and output records, " +"specific formatting parameters are grouped together into dialects. A " +"dialect is a subclass of the :class:`Dialect` class having a set of specific " +"methods and a single :meth:`validate` method. When creating :class:`reader` " +"or :class:`writer` objects, the programmer can specify a string or a " +"subclass of the :class:`Dialect` class as the dialect parameter. In " +"addition to, or instead of, the *dialect* parameter, the programmer can also " +"specify individual formatting parameters, which have the same names as the " +"attributes defined below for the :class:`Dialect` class." +msgstr "" +"Pour faciliter la spécification du format des entrées et sorties, les " +"paramètres de formatage spécifiques sont regroupés en dialectes. Un " +"dialecte est une sous-classe de :class:`Dialect` avec un ensemble de " +"méthodes spécifiques et une méthode :meth:`validate`. Quand un objet :class:" +"`reader` ou :class:`writer` est créé, vous pouvez spécifier une chaîne ou " +"une sous-classe de :class:`Dialect` comme paramètre *dialect*. En plus du " +"paramètre *dialect*, ou à sa place, vous pouvez aussi préciser des " +"paramètres de formatage individuels, qui ont les mêmes noms que les " +"attributs de :class:`Dialect` définis ci-dessous." + +#: ../Doc/library/csv.rst:330 +msgid "Dialects support the following attributes:" +msgstr "Les dialectes supportent les attributs suivants :" + +#: ../Doc/library/csv.rst:335 +msgid "" +"A one-character string used to separate fields. It defaults to ``','``." +msgstr "" +"Une chaîne d'un seul caractère utilisée pour séparer les champs. Elle vaut " +"``','`` par défaut." + +#: ../Doc/library/csv.rst:340 +msgid "" +"Controls how instances of *quotechar* appearing inside a field should " +"themselves be quoted. When :const:`True`, the character is doubled. When :" +"const:`False`, the *escapechar* is used as a prefix to the *quotechar*. It " +"defaults to :const:`True`." +msgstr "" +"Contrôle comment les caractères *quotechar* dans le champ doivent être " +"retranscrits. Quand ce paramètre vaut :const:`True`, le caractère est " +"doublé. Quand il vaut :const:`False`, le caractère *escapechar* est utilisé " +"comme préfixe à *quotechar*. Il vaut :const:`True` par défaut." + +#: ../Doc/library/csv.rst:345 +msgid "" +"On output, if *doublequote* is :const:`False` and no *escapechar* is set, :" +"exc:`Error` is raised if a *quotechar* is found in a field." +msgstr "" +"En écriture, si *doublequote* vaut :const:`False` et qu'aucun *escapechar* " +"n'est précisé, une :exc:`Error` est levée si un *quotechar* est trouvé dans " +"le champ." + +#: ../Doc/library/csv.rst:351 +msgid "" +"A one-character string used by the writer to escape the *delimiter* if " +"*quoting* is set to :const:`QUOTE_NONE` and the *quotechar* if *doublequote* " +"is :const:`False`. On reading, the *escapechar* removes any special meaning " +"from the following character. It defaults to :const:`None`, which disables " +"escaping." +msgstr "" +"Une chaîne d'un seul caractère utilisée par le transcripteur pour échapper " +"*delimiter* si *quoting* vaut :const:`QUOTE_NONE`, et pour échapper " +"*quotechar* si *doublequote* vaut :const:`False`. À la lecture, *escapechar* " +"retire toute signification spéciale au caractère qui le suit. Elle vaut par " +"défaut :const:`None`, ce qui désactive l'échappement." + +#: ../Doc/library/csv.rst:359 +msgid "" +"The string used to terminate lines produced by the :class:`writer`. It " +"defaults to ``'\\r\\n'``." +msgstr "" +"La chaîne utilisée pour terminer les lignes produites par un :class:" +"`writer`. Elle vaut par défaut ``'\\r\\n'``." + +#: ../Doc/library/csv.rst:364 +msgid "" +"The :class:`reader` is hard-coded to recognise either ``'\\r'`` or ``'\\n'`` " +"as end-of-line, and ignores *lineterminator*. This behavior may change in " +"the future." +msgstr "" +"La classe :class:`reader` est codée en dur pour reconnaître ``'\\r'`` et " +"``'\\n'`` comme marqueurs de fin de ligne, et ignorer *lineterminator*. Ce " +"comportement pourrait changer dans le futur." + +#: ../Doc/library/csv.rst:371 +msgid "" +"A one-character string used to quote fields containing special characters, " +"such as the *delimiter* or *quotechar*, or which contain new-line " +"characters. It defaults to ``'\"'``." +msgstr "" +"Une chaîne d'un seul caractère utilisée pour délimiter les champs contenant " +"des caractères spéciaux, comme *delimiter* ou *quotechar*, ou contenant un " +"caractère de fin de ligne. Elle vaut ``'\"'`` par défaut." + +#: ../Doc/library/csv.rst:378 +msgid "" +"Controls when quotes should be generated by the writer and recognised by the " +"reader. It can take on any of the :const:`QUOTE_\\*` constants (see " +"section :ref:`csv-contents`) and defaults to :const:`QUOTE_MINIMAL`." +msgstr "" +"Contrôle quand les guillemets doivent être générés par le transcripteur et " +"reconnus par le lecteur. Il peut prendre comme valeur l'une des constantes :" +"const:`QUOTE_\\*` (voir la section :ref:`csv-contents`) et vaut par défaut :" +"const:`QUOTE_MINIMAL`." + +#: ../Doc/library/csv.rst:385 +msgid "" +"When :const:`True`, whitespace immediately following the *delimiter* is " +"ignored. The default is :const:`False`." +msgstr "" +"Quand il vaut :const:`True`, les espaces suivant directement *delimiter* " +"sont ignorés. Il vaut :const:`False` par défaut." + +#: ../Doc/library/csv.rst:391 +msgid "" +"When ``True``, raise exception :exc:`Error` on bad CSV input. The default is " +"``False``." +msgstr "" +"Quand il vaut ``True``, une exception :exc:`Error` est levée lors de " +"mauvaises entrées CSV. Il vaut ``False`` par défaut." + +#: ../Doc/library/csv.rst:395 +msgid "Reader Objects" +msgstr "Objets lecteurs" + +#: ../Doc/library/csv.rst:397 +msgid "" +"Reader objects (:class:`DictReader` instances and objects returned by the :" +"func:`reader` function) have the following public methods:" +msgstr "" +"Les objets lecteurs (instances de :class:`DictReader` ou objets renvoyés par " +"la fonction :func:`reader`) ont les méthodes publiques suivantes :" + +#: ../Doc/library/csv.rst:402 +msgid "" +"Return the next row of the reader's iterable object as a list (if the object " +"was returned from :func:`reader`) or a dict (if it is a :class:`DictReader` " +"instance), parsed according to the current dialect. Usually you should call " +"this as ``next(reader)``." +msgstr "" +"Renvoie la ligne suivante de l'objet itérable du lecteur en tant que liste " +"(si l'objet est renvoyé depuis :func:`reader`) ou dictionnaire (si l'objet " +"est un :class:`DictReader`), analysé suivant le dialecte courant. " +"Généralement, vous devez appeler la méthode à l'aide de ``next(reader)``." + +#: ../Doc/library/csv.rst:408 +msgid "Reader objects have the following public attributes:" +msgstr "Les objets lecteurs ont les attributs publics suivants :" + +#: ../Doc/library/csv.rst:412 +msgid "A read-only description of the dialect in use by the parser." +msgstr "Une description en lecture seule du dialecte utilisé par l'analyseur." + +#: ../Doc/library/csv.rst:417 +msgid "" +"The number of lines read from the source iterator. This is not the same as " +"the number of records returned, as records can span multiple lines." +msgstr "" +"Le nombre de lignes lues depuis l'itérateur source. Ce n'est pas équivalent " +"au nombre d'enregistrements renvoyés, puisque certains enregistrements " +"peuvent s'étendre sur plusieurs lignes." + +#: ../Doc/library/csv.rst:421 +msgid "DictReader objects have the following public attribute:" +msgstr "Les objets *DictReader* ont les attributs publics suivants :" + +#: ../Doc/library/csv.rst:425 +msgid "" +"If not passed as a parameter when creating the object, this attribute is " +"initialized upon first access or when the first record is read from the file." +msgstr "" +"S'il n'est pas passé comme paramètre à la création de l'objet, cet attribut " +"est initialisé lors du premier accès ou quand le premier enregistrement est " +"lu depuis le fichier." + +#: ../Doc/library/csv.rst:432 +msgid "Writer Objects" +msgstr "Objets transcripteurs" + +#: ../Doc/library/csv.rst:434 +msgid "" +":class:`Writer` objects (:class:`DictWriter` instances and objects returned " +"by the :func:`writer` function) have the following public methods. A *row* " +"must be an iterable of strings or numbers for :class:`Writer` objects and a " +"dictionary mapping fieldnames to strings or numbers (by passing them " +"through :func:`str` first) for :class:`DictWriter` objects. Note that " +"complex numbers are written out surrounded by parens. This may cause some " +"problems for other programs which read CSV files (assuming they support " +"complex numbers at all)." +msgstr "" +"Les objets :class:`Writer` (instances de :class:`DictWriter` ou objets " +"renvoyés par la fonction :func:`writer`) ont les méthodes publiques " +"suivantes. Une *row* doit être un itérable de chaînes de caractères ou de " +"nombres pour les objets :class:`Writer`, et un dictionnaire associant des " +"noms de champs à des chaînes ou des nombres (en les faisant d'abord passer " +"par :func:`str`) pour les objets :class:`DictWriter`. Notez que les nombres " +"complexes sont retranscrits entourés de parenthèses. Cela peut causer " +"quelques problèmes pour d'autres programmes qui liraient ces fichiers CSV " +"(en supposant qu'ils supportent les nombres complexes)." + +#: ../Doc/library/csv.rst:445 +msgid "" +"Write the *row* parameter to the writer's file object, formatted according " +"to the current dialect." +msgstr "" +"Écrit le paramètre *row* vers le fichier associé au transcripteur, formaté " +"selon le dialecte courant." + +#: ../Doc/library/csv.rst:448 +msgid "Added support of arbitrary iterables." +msgstr "Ajout du support d'itérables arbitraires." + +#: ../Doc/library/csv.rst:453 +msgid "" +"Write all elements in *rows* (an iterable of *row* objects as described " +"above) to the writer's file object, formatted according to the current " +"dialect." +msgstr "" +"Écrit tous les éléments de *rows* (itérable d'objets *row* comme décrits " +"précédemment) vers le fichier associé au transcripteur, formatés selon le " +"dialecte courant." + +#: ../Doc/library/csv.rst:457 +msgid "Writer objects have the following public attribute:" +msgstr "Les objets transcripteurs ont les attributs publics suivants :" + +#: ../Doc/library/csv.rst:462 +msgid "A read-only description of the dialect in use by the writer." +msgstr "" +"Une description en lecture seule du dialecte utilisé par le transcripteur." + +#: ../Doc/library/csv.rst:465 +msgid "DictWriter objects have the following public method:" +msgstr "Les objets *DictWriter* ont les attributs publics suivants :" + +#: ../Doc/library/csv.rst:470 +msgid "Write a row with the field names (as specified in the constructor)." +msgstr "" +"Écrit une ligne contenant les noms de champs (comme spécifiés au " +"constructeur)." + +#: ../Doc/library/csv.rst:478 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/csv.rst:480 +msgid "The simplest example of reading a CSV file::" +msgstr "Le plus simple exemple de lecture d'un fichier CSV ::" + +#: ../Doc/library/csv.rst:488 +msgid "Reading a file with an alternate format::" +msgstr "Lire un fichier avec un format alternatif ::" + +#: ../Doc/library/csv.rst:496 +msgid "The corresponding simplest possible writing example is::" +msgstr "Le plus simple exemple d'écriture correspondant est ::" + +#: ../Doc/library/csv.rst:503 +msgid "" +"Since :func:`open` is used to open a CSV file for reading, the file will by " +"default be decoded into unicode using the system default encoding (see :func:" +"`locale.getpreferredencoding`). To decode a file using a different " +"encoding, use the ``encoding`` argument of open::" +msgstr "" +"Puisque :func:`open` est utilisée pour ouvrir un fichier CSV en lecture, le " +"fichier sera par défaut décodé vers Unicode en utilisant l'encodage par " +"défaut (voir :func:`locale.getpreferredencoding`). Pour décoder un fichier " +"utilisant un encodage différent, utilisez l'argument ``encoding`` de " +"*open* ::" + +#: ../Doc/library/csv.rst:514 +msgid "" +"The same applies to writing in something other than the system default " +"encoding: specify the encoding argument when opening the output file." +msgstr "" +"La même chose s'applique lors de l'écriture dans un autre encodage que celui " +"par défaut du système : spécifiez l'encodage en argument lors de l'ouverture " +"du fichier de sortie." + +#: ../Doc/library/csv.rst:517 +msgid "Registering a new dialect::" +msgstr "Enregistrer un nouveau dialecte ::" + +#: ../Doc/library/csv.rst:524 +msgid "" +"A slightly more advanced use of the reader --- catching and reporting " +"errors::" +msgstr "" +"Un exemple d'utilisation un peu plus avancé du lecteur --- attrapant et " +"notifiant les erreurs ::" + +#: ../Doc/library/csv.rst:536 +msgid "" +"And while the module doesn't directly support parsing strings, it can easily " +"be done::" +msgstr "" +"Et bien que le module ne permette pas d'analyser directement des chaînes, " +"cela peut être fait facilement ::" + +#: ../Doc/library/csv.rst:545 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/csv.rst:546 +msgid "" +"If ``newline=''`` is not specified, newlines embedded inside quoted fields " +"will not be interpreted correctly, and on platforms that use ``\\r\\n`` " +"linendings on write an extra ``\\r`` will be added. It should always be " +"safe to specify ``newline=''``, since the csv module does its own (:term:" +"`universal `) newline handling." +msgstr "" +"Si ``newline=''`` n'est pas spécifié, les caractères de fin de ligne " +"embarqués dans des champs délimités par des guillemets ne seront pas " +"interprétés correctement, et sur les plateformes qui utilisent ``\\r\\n`` " +"comme marqueur de fin de ligne, un ``\\r`` sera ajouté. Vous devriez " +"toujours spécifier sans crainte ``newline=''``, puisque le module *csv* gère " +"lui-même les fins de lignes (:term:`universelles `)." diff --git a/library/ctypes.po b/library/ctypes.po new file mode 100644 index 000000000..9d03b9fb7 --- /dev/null +++ b/library/ctypes.po @@ -0,0 +1,3033 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-07-29 19:07+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/ctypes.rst:2 +msgid ":mod:`ctypes` --- A foreign function library for Python" +msgstr ":mod:`ctypes` — Bibliothèque Python d'appels à des fonctions externes" + +#: ../Doc/library/ctypes.rst:11 +msgid "" +":mod:`ctypes` is a foreign function library for Python. It provides C " +"compatible data types, and allows calling functions in DLLs or shared " +"libraries. It can be used to wrap these libraries in pure Python." +msgstr "" +":mod:`ctypes` est une bibliothèque d'appel à des fonctions externes en " +"python. Elle fournit des types de données compatibles avec le langage C et " +"permet d'appeler des fonctions depuis des DLL ou des bibliothèques " +"partagées, rendant ainsi possible l'interfaçage de ces bibliothèques avec du " +"pur code Python." + +#: ../Doc/library/ctypes.rst:19 +msgid "ctypes tutorial" +msgstr "Didacticiel de *ctypes*" + +#: ../Doc/library/ctypes.rst:21 +msgid "" +"Note: The code samples in this tutorial use :mod:`doctest` to make sure that " +"they actually work. Since some code samples behave differently under Linux, " +"Windows, or Mac OS X, they contain doctest directives in comments." +msgstr "" +"Remarque : Les exemples de code de ce didacticiel utilisent :mod:`doctest` " +"pour s'assurer de leur propre bon fonctionnement. Vu que certains de ces " +"exemples ont un comportement différent en Linux, Windows ou Mac OS X, ils " +"contiennent des directives *doctest* dans les commentaires." + +#: ../Doc/library/ctypes.rst:25 +msgid "" +"Note: Some code samples reference the ctypes :class:`c_int` type. On " +"platforms where ``sizeof(long) == sizeof(int)`` it is an alias to :class:" +"`c_long`. So, you should not be confused if :class:`c_long` is printed if " +"you would expect :class:`c_int` --- they are actually the same type." +msgstr "" +"Remarque : Le type :class:`c_int` du module apparaît dans certains de ces " +"exemples. Sur les plates-formes où ``sizeof(long) == sizeof(int)``, ce type " +"est un alias de :class:`c_long`. Ne soyez donc pas surpris si :class:" +"`c_long` s'affiche là où vous vous attendiez à :class:`c_int` — il s'agit " +"bien du même type." + +#: ../Doc/library/ctypes.rst:33 +msgid "Loading dynamic link libraries" +msgstr "Chargement des DLL" + +#: ../Doc/library/ctypes.rst:35 +msgid "" +":mod:`ctypes` exports the *cdll*, and on Windows *windll* and *oledll* " +"objects, for loading dynamic link libraries." +msgstr "" +":mod:`ctypes` fournit l'objet *cdll* pour charger des bibliothèques à liens " +"dynamiques (et les objets *windll* et *oledll* en Windows)." + +#: ../Doc/library/ctypes.rst:38 +msgid "" +"You load libraries by accessing them as attributes of these objects. *cdll* " +"loads libraries which export functions using the standard ``cdecl`` calling " +"convention, while *windll* libraries call functions using the ``stdcall`` " +"calling convention. *oledll* also uses the ``stdcall`` calling convention, " +"and assumes the functions return a Windows :c:type:`HRESULT` error code. The " +"error code is used to automatically raise an :class:`OSError` exception when " +"the function call fails." +msgstr "" +"Une bibliothèque se charge en y accédant comme un attribut de ces objets. " +"*cdll* charge les bibliothèques qui exportent des fonctions utilisant la " +"convention d'appel standard ``cdecl``, alors que les bibliothèques qui se " +"chargent avec *windll* utilisent la convention d'appel ``stdcall``. *oledll* " +"utilise elle aussi la convention ``stdcall`` et suppose que les fonctions " +"renvoient un code d'erreur :c:type:`HRESULT` de Windows. Ce code d'erreur " +"est utilisé pour lever automatiquement une :class:`OSError` quand l'appel de " +"la fonction échoue." + +#: ../Doc/library/ctypes.rst:46 +msgid "" +"Windows errors used to raise :exc:`WindowsError`, which is now an alias of :" +"exc:`OSError`." +msgstr "" +"En Windows, les erreurs levaient auparavant une :exc:`WindowsError`, qui est " +"maintenant un alias de :exc:`OSError`." + +#: ../Doc/library/ctypes.rst:51 +msgid "" +"Here are some examples for Windows. Note that ``msvcrt`` is the MS standard " +"C library containing most standard C functions, and uses the cdecl calling " +"convention::" +msgstr "" +"Voici quelques exemples Windows. ``msvcrt`` est la bibliothèque standard C " +"de Microsoft qui contient la plupart des fonctions standards C. Elle suit la " +"convention d'appel *cdecl* ::" + +#: ../Doc/library/ctypes.rst:63 +msgid "Windows appends the usual ``.dll`` file suffix automatically." +msgstr "Windows ajoute le suffixe habituel ``.dll`` automatiquement." + +#: ../Doc/library/ctypes.rst:66 +msgid "" +"Accessing the standard C library through ``cdll.msvcrt`` will use an " +"outdated version of the library that may be incompatible with the one being " +"used by Python. Where possible, use native Python functionality, or else " +"import and use the ``msvcrt`` module." +msgstr "" +"Accéder à la bibliothèque standard C par ``cdll.msvcrt`` utilise une version " +"obsolète de la bibliothèque qui peut avoir des problèmes de compatibilité " +"avec celle que Python utilise. Si possible, mieux vaut utiliser la " +"fonctionnalité native de Python, ou bien importer et utiliser le module " +"``msvcrt``." + +#: ../Doc/library/ctypes.rst:71 +msgid "" +"On Linux, it is required to specify the filename *including* the extension " +"to load a library, so attribute access can not be used to load libraries. " +"Either the :meth:`LoadLibrary` method of the dll loaders should be used, or " +"you should load the library by creating an instance of CDLL by calling the " +"constructor::" +msgstr "" +"Pour charger une bibliothèque en Linux, il faut passer le nom du fichier " +"*avec* son extension. Il est donc impossible de charger une bibliothèque en " +"accédant à un attribut. Il faut utiliser la méthode :meth:`LoadLibrary` des " +"chargeurs de DLL, ou bien charger la bibliothèque en créant une instance de " +"*CDLL* en appelant son constructeur ::" + +#: ../Doc/library/ctypes.rst:89 +msgid "Accessing functions from loaded dlls" +msgstr "Accès aux fonctions des DLL chargées" + +#: ../Doc/library/ctypes.rst:91 +msgid "Functions are accessed as attributes of dll objects::" +msgstr "Les fonctions sont alors des attributs des objets DLL ::" + +#: ../Doc/library/ctypes.rst:106 +msgid "" +"Note that win32 system dlls like ``kernel32`` and ``user32`` often export " +"ANSI as well as UNICODE versions of a function. The UNICODE version is " +"exported with an ``W`` appended to the name, while the ANSI version is " +"exported with an ``A`` appended to the name. The win32 ``GetModuleHandle`` " +"function, which returns a *module handle* for a given module name, has the " +"following C prototype, and a macro is used to expose one of them as " +"``GetModuleHandle`` depending on whether UNICODE is defined or not::" +msgstr "" +"Les DLL des systèmes *win32* comme ``kernel32`` et ``user32`` exportent " +"souvent une version ANSI et une version UNICODE d'une fonction. La version " +"UNICODE est exportée avec un ``W`` à la fin, et la version ANSI avec un " +"``A``. La fonction *win32* ``GetModuleHandle``, qui renvoie un *gestionnaire " +"de module* à partir de son nom, a le prototype C suivant (c'est une macro " +"qui décide d'exporter l'une ou l'autre à travers ``GetModuleHandle``, selon " +"qu'UNICODE est définie ou non) ::" + +#: ../Doc/library/ctypes.rst:119 +msgid "" +"*windll* does not try to select one of them by magic, you must access the " +"version you need by specifying ``GetModuleHandleA`` or ``GetModuleHandleW`` " +"explicitly, and then call it with bytes or string objects respectively." +msgstr "" +"*windll* n'en choisit pas une par magie, il faut accéder à la bonne en " +"écrivant explicitement ``GetModuleHandleA`` ou ``GetModuleHandleW`` et en " +"les appelant ensuite avec des objets octets ou avec des chaînes de " +"caractères, respectivement." + +#: ../Doc/library/ctypes.rst:123 +msgid "" +"Sometimes, dlls export functions with names which aren't valid Python " +"identifiers, like ``\"??2@YAPAXI@Z\"``. In this case you have to use :func:" +"`getattr` to retrieve the function::" +msgstr "" +"Les DLL exportent parfois des fonctions dont les noms ne sont pas des " +"identifiants Python valides, comme ``\"??2@YAPAXI@Z\"``. Dans ce cas, il " +"faut utiliser :func:`getattr` pour accéder à la fonction ::" + +#: ../Doc/library/ctypes.rst:131 +msgid "" +"On Windows, some dlls export functions not by name but by ordinal. These " +"functions can be accessed by indexing the dll object with the ordinal " +"number::" +msgstr "" +"Sous Windows, certaines DLL exportent des fonctions à travers un indice " +"plutôt qu'à travers un nom. On accède à une fonction en indiçant l'objet DLL " +"avec son index ::" + +#: ../Doc/library/ctypes.rst:148 +msgid "Calling functions" +msgstr "Appel de fonctions" + +#: ../Doc/library/ctypes.rst:150 +msgid "" +"You can call these functions like any other Python callable. This example " +"uses the ``time()`` function, which returns system time in seconds since the " +"Unix epoch, and the ``GetModuleHandleA()`` function, which returns a win32 " +"module handle." +msgstr "" +"Ces fonctions s'appellent comme n'importe quel appelable Python. Cet exemple " +"utilise la fonction ``time()``, qui renvoie le temps en secondes du système " +"depuis l'*epoch* Unix, et la fonction ``GetModuleHandleA()``, qui renvoie un " +"gestionnaire de module *win32*." + +#: ../Doc/library/ctypes.rst:155 +msgid "" +"This example calls both functions with a NULL pointer (``None`` should be " +"used as the NULL pointer)::" +msgstr "" + +#: ../Doc/library/ctypes.rst:166 +msgid "" +":mod:`ctypes` may raise a :exc:`ValueError` after calling the function, if " +"it detects that an invalid number of arguments were passed. This behavior " +"should not be relied upon. It is deprecated in 3.6.2, and will be removed " +"in 3.7." +msgstr "" + +#: ../Doc/library/ctypes.rst:171 +msgid "" +":exc:`ValueError` is raised when you call an ``stdcall`` function with the " +"``cdecl`` calling convention, or vice versa::" +msgstr "" +"Une :exc:`ValueError` est levée quand on appelle une fonction ``stdcall`` " +"avec la convention d'appel ``cdecl`` et vice-versa ::" + +#: ../Doc/library/ctypes.rst:186 +msgid "" +"To find out the correct calling convention you have to look into the C " +"header file or the documentation for the function you want to call." +msgstr "" +"Pour déterminer la convention d'appel, il faut consulter l'en-tête C ou la " +"documentation de la fonction à appeler." + +#: ../Doc/library/ctypes.rst:189 +msgid "" +"On Windows, :mod:`ctypes` uses win32 structured exception handling to " +"prevent crashes from general protection faults when functions are called " +"with invalid argument values::" +msgstr "" +"En Windows, :mod:`ctypes` tire profit de la gestion structurée des " +"exceptions (*structured exception handling*) *win32* pour empêcher les " +"plantages dus à des interruptions, afin de préserver la protection globale " +"(*general protection faults*) du système, lorsque des fonctions sont " +"appelées avec un nombre incorrect d'arguments ::" + +#: ../Doc/library/ctypes.rst:199 +msgid "" +"There are, however, enough ways to crash Python with :mod:`ctypes`, so you " +"should be careful anyway. The :mod:`faulthandler` module can be helpful in " +"debugging crashes (e.g. from segmentation faults produced by erroneous C " +"library calls)." +msgstr "" +"Cependant, il y a suffisamment de façons de faire planter Python avec :mod:" +"`ctypes`, donc il faut être prudent dans tous les cas. Le module :mod:" +"`faulthandler` est pratique pour déboguer les plantages (p. ex. dus à des " +"erreurs de segmentation produites par des appels erronés à la bibliothèque " +"C)." + +#: ../Doc/library/ctypes.rst:204 +msgid "" +"``None``, integers, bytes objects and (unicode) strings are the only native " +"Python objects that can directly be used as parameters in these function " +"calls. ``None`` is passed as a C ``NULL`` pointer, bytes objects and strings " +"are passed as pointer to the memory block that contains their data (:c:type:" +"`char *` or :c:type:`wchar_t *`). Python integers are passed as the " +"platforms default C :c:type:`int` type, their value is masked to fit into " +"the C type." +msgstr "" +"``None``, les entiers, les objets octets et les chaînes de caractères " +"(Unicode) sont les seuls types natifs de Python qui peuvent être directement " +"passés en paramètres de ces appels de fonctions. ``None`` est passé comme le " +"pointeur C ``NULL``, les objets octets et les chaînes de caractères sont " +"passés comme un pointeur sur le bloc mémoire qui contient la donnée (:c:type:" +"`char *` ou :c:type:`wchar_t *`). Les entiers Python sont passés comme le " +"type C :c:type:`int` par défaut de la plate-forme, un masque étant appliqué " +"pour qu'ils tiennent dans le type C." + +#: ../Doc/library/ctypes.rst:211 +msgid "" +"Before we move on calling functions with other parameter types, we have to " +"learn more about :mod:`ctypes` data types." +msgstr "" +"Avant de poursuivre sur l'appel de fonctions avec d'autres types de " +"paramètres, apprenons-en un peu plus sur les types de données de :mod:" +"`ctypes`." + +#: ../Doc/library/ctypes.rst:218 ../Doc/library/ctypes.rst:2066 +msgid "Fundamental data types" +msgstr "Types de données fondamentaux" + +#: ../Doc/library/ctypes.rst:220 +msgid ":mod:`ctypes` defines a number of primitive C compatible data types:" +msgstr "" +":mod:`ctypes` définit plusieurs types de donnée de base compatibles avec le " +"C :" + +#: ../Doc/library/ctypes.rst:223 +msgid "ctypes type" +msgstr "Types de *ctypes*" + +#: ../Doc/library/ctypes.rst:223 +msgid "C type" +msgstr "Type C" + +#: ../Doc/library/ctypes.rst:223 +msgid "Python type" +msgstr "Type Python" + +#: ../Doc/library/ctypes.rst:225 +msgid ":class:`c_bool`" +msgstr ":class:`c_bool`" + +#: ../Doc/library/ctypes.rst:225 +msgid ":c:type:`_Bool`" +msgstr ":c:type:`_Bool`" + +#: ../Doc/library/ctypes.rst:225 +msgid "bool (1)" +msgstr "*bool* (1)" + +#: ../Doc/library/ctypes.rst:227 +msgid ":class:`c_char`" +msgstr ":class:`c_char`" + +#: ../Doc/library/ctypes.rst:227 ../Doc/library/ctypes.rst:231 +msgid ":c:type:`char`" +msgstr ":c:type:`char`" + +#: ../Doc/library/ctypes.rst:227 +msgid "1-character bytes object" +msgstr "objet octet (*bytes*) de 1 caractère" + +#: ../Doc/library/ctypes.rst:229 +msgid ":class:`c_wchar`" +msgstr ":class:`c_wchar`" + +#: ../Doc/library/ctypes.rst:229 +msgid ":c:type:`wchar_t`" +msgstr ":c:type:`wchar_t`" + +#: ../Doc/library/ctypes.rst:229 +msgid "1-character string" +msgstr "chaîne de caractères (*string*) de longueur 1" + +#: ../Doc/library/ctypes.rst:231 +msgid ":class:`c_byte`" +msgstr ":class:`c_byte`" + +#: ../Doc/library/ctypes.rst:231 ../Doc/library/ctypes.rst:233 +#: ../Doc/library/ctypes.rst:235 ../Doc/library/ctypes.rst:237 +#: ../Doc/library/ctypes.rst:239 ../Doc/library/ctypes.rst:241 +#: ../Doc/library/ctypes.rst:243 ../Doc/library/ctypes.rst:245 +#: ../Doc/library/ctypes.rst:247 ../Doc/library/ctypes.rst:249 +#: ../Doc/library/ctypes.rst:252 ../Doc/library/ctypes.rst:254 +msgid "int" +msgstr "*int*" + +#: ../Doc/library/ctypes.rst:233 +msgid ":class:`c_ubyte`" +msgstr ":class:`c_ubyte`" + +#: ../Doc/library/ctypes.rst:233 +msgid ":c:type:`unsigned char`" +msgstr ":c:type:`unsigned char`" + +#: ../Doc/library/ctypes.rst:235 +msgid ":class:`c_short`" +msgstr ":class:`c_short`" + +#: ../Doc/library/ctypes.rst:235 +msgid ":c:type:`short`" +msgstr ":c:type:`short`" + +#: ../Doc/library/ctypes.rst:237 +msgid ":class:`c_ushort`" +msgstr ":class:`c_ushort`" + +#: ../Doc/library/ctypes.rst:237 +msgid ":c:type:`unsigned short`" +msgstr ":c:type:`unsigned short`" + +#: ../Doc/library/ctypes.rst:239 +msgid ":class:`c_int`" +msgstr ":class:`c_int`" + +#: ../Doc/library/ctypes.rst:239 +msgid ":c:type:`int`" +msgstr ":c:type:`int`" + +#: ../Doc/library/ctypes.rst:241 +msgid ":class:`c_uint`" +msgstr ":class:`c_uint`" + +#: ../Doc/library/ctypes.rst:241 +msgid ":c:type:`unsigned int`" +msgstr ":c:type:`unsigned int`" + +#: ../Doc/library/ctypes.rst:243 +msgid ":class:`c_long`" +msgstr ":class:`c_long`" + +#: ../Doc/library/ctypes.rst:243 +msgid ":c:type:`long`" +msgstr ":c:type:`long`" + +#: ../Doc/library/ctypes.rst:245 +msgid ":class:`c_ulong`" +msgstr ":class:`c_ulong`" + +#: ../Doc/library/ctypes.rst:245 +msgid ":c:type:`unsigned long`" +msgstr ":c:type:`unsigned long`" + +#: ../Doc/library/ctypes.rst:247 +msgid ":class:`c_longlong`" +msgstr ":class:`c_longlong`" + +#: ../Doc/library/ctypes.rst:247 +msgid ":c:type:`__int64` or :c:type:`long long`" +msgstr ":c:type:`__int64` ou :c:type:`long long`" + +#: ../Doc/library/ctypes.rst:249 +msgid ":class:`c_ulonglong`" +msgstr ":class:`c_ulonglong`" + +#: ../Doc/library/ctypes.rst:249 +msgid ":c:type:`unsigned __int64` or :c:type:`unsigned long long`" +msgstr ":c:type:`unsigned __int64` ou :c:type:`unsigned long long`" + +#: ../Doc/library/ctypes.rst:252 +msgid ":class:`c_size_t`" +msgstr ":class:`c_size_t`" + +#: ../Doc/library/ctypes.rst:252 +msgid ":c:type:`size_t`" +msgstr ":c:type:`size_t`" + +#: ../Doc/library/ctypes.rst:254 +msgid ":class:`c_ssize_t`" +msgstr ":class:`c_ssize_t`" + +#: ../Doc/library/ctypes.rst:254 +msgid ":c:type:`ssize_t` or :c:type:`Py_ssize_t`" +msgstr ":c:type:`ssize_t` ou :c:type:`Py_ssize_t`" + +#: ../Doc/library/ctypes.rst:257 +msgid ":class:`c_float`" +msgstr ":class:`c_float`" + +#: ../Doc/library/ctypes.rst:257 +msgid ":c:type:`float`" +msgstr ":c:type:`float`" + +#: ../Doc/library/ctypes.rst:257 ../Doc/library/ctypes.rst:259 +#: ../Doc/library/ctypes.rst:261 +msgid "float" +msgstr "*float*" + +#: ../Doc/library/ctypes.rst:259 +msgid ":class:`c_double`" +msgstr ":class:`c_double`" + +#: ../Doc/library/ctypes.rst:259 +msgid ":c:type:`double`" +msgstr ":c:type:`double`" + +#: ../Doc/library/ctypes.rst:261 +msgid ":class:`c_longdouble`" +msgstr ":class:`c_longdouble`" + +#: ../Doc/library/ctypes.rst:261 +msgid ":c:type:`long double`" +msgstr ":c:type:`long double`" + +#: ../Doc/library/ctypes.rst:263 +msgid ":class:`c_char_p`" +msgstr ":class:`c_char_p`" + +#: ../Doc/library/ctypes.rst:263 +msgid ":c:type:`char *` (NUL terminated)" +msgstr ":c:type:`char *` (terminé par NUL)" + +#: ../Doc/library/ctypes.rst:263 +msgid "bytes object or ``None``" +msgstr "objet octet (*bytes*) ou ``None``" + +#: ../Doc/library/ctypes.rst:265 +msgid ":class:`c_wchar_p`" +msgstr ":class:`c_wchar_p`" + +#: ../Doc/library/ctypes.rst:265 +msgid ":c:type:`wchar_t *` (NUL terminated)" +msgstr ":c:type:`wchar_t *` (terminé par NUL)" + +#: ../Doc/library/ctypes.rst:265 +msgid "string or ``None``" +msgstr "chaîne de caractères (*string*) ou ``None``" + +#: ../Doc/library/ctypes.rst:267 +msgid ":class:`c_void_p`" +msgstr ":class:`c_void_p`" + +#: ../Doc/library/ctypes.rst:267 +msgid ":c:type:`void *`" +msgstr ":c:type:`void *`" + +#: ../Doc/library/ctypes.rst:267 +msgid "int or ``None``" +msgstr "*int* ou ``None``" + +#: ../Doc/library/ctypes.rst:271 +msgid "The constructor accepts any object with a truth value." +msgstr "Le constructeur accepte n'importe quel objet convertible en booléen." + +#: ../Doc/library/ctypes.rst:273 +msgid "" +"All these types can be created by calling them with an optional initializer " +"of the correct type and value::" +msgstr "" +"Il est possible de créer chacun de ces types en les appelant avec une valeur " +"d'initialisation du bon type et avec une valeur cohérente ::" + +#: ../Doc/library/ctypes.rst:284 +msgid "" +"Since these types are mutable, their value can also be changed afterwards::" +msgstr "" +"Ces types étant des muables, leur valeur peut aussi être modifiée après " +"coup ::" + +#: ../Doc/library/ctypes.rst:296 +msgid "" +"Assigning a new value to instances of the pointer types :class:`c_char_p`, :" +"class:`c_wchar_p`, and :class:`c_void_p` changes the *memory location* they " +"point to, *not the contents* of the memory block (of course not, because " +"Python bytes objects are immutable)::" +msgstr "" +"Affecter une nouvelle valeur à une instance de type pointeur — :class:" +"`c_char_p`, :class:`c_wchar_p` et :class:`c_void_p` — change *la zone " +"mémoire* sur laquelle elle pointe, et non *le contenu* de ce bloc mémoire " +"(c'est logique parce que les objets octets sont immuables en Python) ::" + +#: ../Doc/library/ctypes.rst:316 +msgid "" +"You should be careful, however, not to pass them to functions expecting " +"pointers to mutable memory. If you need mutable memory blocks, ctypes has a :" +"func:`create_string_buffer` function which creates these in various ways. " +"The current memory block contents can be accessed (or changed) with the " +"``raw`` property; if you want to access it as NUL terminated string, use the " +"``value`` property::" +msgstr "" +"Cependant, prenez garde à ne pas en passer à des fonctions qui prennent en " +"paramètre des pointeurs sur de la mémoire modifiable. S'il vous faut de la " +"mémoire modifiable, *ctypes* fournit la fonction :func:" +"`create_string_buffer` qui en crée de plusieurs façons. L'attribut ``raw`` " +"permet d'accéder à (ou de modifier) un bloc mémoire ; l'attribut ``value`` " +"permet d'y accéder comme à une chaîne de caractères terminée par NUL ::" + +#: ../Doc/library/ctypes.rst:340 +msgid "" +"The :func:`create_string_buffer` function replaces the :func:`c_buffer` " +"function (which is still available as an alias), as well as the :func:" +"`c_string` function from earlier ctypes releases. To create a mutable " +"memory block containing unicode characters of the C type :c:type:`wchar_t` " +"use the :func:`create_unicode_buffer` function." +msgstr "" +"La fonction :func:`create_string_buffer` remplace les fonctions :func:" +"`c_buffer` (qui en reste un alias) et :func:`c_string` des versions " +"antérieures de *ctypes*. La fonction :func:`create_unicode_buffer` crée un " +"bloc mémoire modifiable contenant des caractères Unicode du type C :c:type:" +"`wchar_t`." + +#: ../Doc/library/ctypes.rst:350 +msgid "Calling functions, continued" +msgstr "Appel de fonctions, suite" + +#: ../Doc/library/ctypes.rst:352 +msgid "" +"Note that printf prints to the real standard output channel, *not* to :data:" +"`sys.stdout`, so these examples will only work at the console prompt, not " +"from within *IDLE* or *PythonWin*::" +msgstr "" +"*printf* utilise la vraie sortie standard, et non :data:`sys.stdout` ; les " +"exemples suivants ne fonctionnent donc que dans une invite de commande et " +"non depuis *IDLE* or *PythonWin* ::" + +#: ../Doc/library/ctypes.rst:372 +msgid "" +"As has been mentioned before, all Python types except integers, strings, and " +"bytes objects have to be wrapped in their corresponding :mod:`ctypes` type, " +"so that they can be converted to the required C data type::" +msgstr "" +"Comme mentionné plus haut, tous les types Python (les entiers, les chaînes " +"de caractères et les objets octet exceptés) doivent être encapsulés dans " +"leur type :mod:`ctypes` correspondant pour pouvoir être convertis dans le " +"type C requis ::" + +#: ../Doc/library/ctypes.rst:385 +msgid "Calling functions with your own custom data types" +msgstr "Appel de fonctions avec des types de données personnalisés" + +#: ../Doc/library/ctypes.rst:387 +msgid "" +"You can also customize :mod:`ctypes` argument conversion to allow instances " +"of your own classes be used as function arguments. :mod:`ctypes` looks for " +"an :attr:`_as_parameter_` attribute and uses this as the function argument. " +"Of course, it must be one of integer, string, or bytes::" +msgstr "" +"Il est possible de personnaliser la conversion des arguments effectuée par :" +"mod:`ctypes` pour permettre de passer en argument des instances de vos " +"propres classes. :mod:`ctypes` recherche un attribut :attr:`_as_parameter_` " +"et le prend comme argument à la fonction. Bien entendu, cet attribut doit " +"être un entier, une chaîne de caractères ou des octets ::" + +#: ../Doc/library/ctypes.rst:402 +msgid "" +"If you don't want to store the instance's data in the :attr:`_as_parameter_` " +"instance variable, you could define a :class:`property` which makes the " +"attribute available on request." +msgstr "" +"Si vous ne souhaitez pas stocker les données de l'instance dans la variable :" +"attr:`_as_parameter_` de l'instance, vous pouvez toujours définir une :class:" +"`propriété ` qui rend cet attribut disponible sur demande." + +#: ../Doc/library/ctypes.rst:410 +msgid "Specifying the required argument types (function prototypes)" +msgstr "Définition du type des arguments nécessaires (prototypes de fonction)" + +#: ../Doc/library/ctypes.rst:412 +msgid "" +"It is possible to specify the required argument types of functions exported " +"from DLLs by setting the :attr:`argtypes` attribute." +msgstr "" +"Il est possible de définir le type des arguments demandés par une fonction " +"exportée depuis une DLL en définissant son attribut :attr:`argtypes`." + +#: ../Doc/library/ctypes.rst:415 +msgid "" +":attr:`argtypes` must be a sequence of C data types (the ``printf`` function " +"is probably not a good example here, because it takes a variable number and " +"different types of parameters depending on the format string, on the other " +"hand this is quite handy to experiment with this feature)::" +msgstr "" +":attr:`argtypes` doit être une séquence de types de données C (la fonction " +"``printf`` n'est probablement pas le meilleur exemple pour l'illustrer, car " +"elle accepte un nombre variable d'arguments de types eux aussi variables, " +"selon la chaîne de formatage ; cela dit, elle se révèle pratique pour tester " +"cette fonctionnalité) ::" + +#: ../Doc/library/ctypes.rst:426 +msgid "" +"Specifying a format protects against incompatible argument types (just as a " +"prototype for a C function), and tries to convert the arguments to valid " +"types::" +msgstr "" +"Définir un format empêche de passer des arguments de type incompatible " +"(comme le fait le prototype d'une fonction C) et tente de convertir les " +"arguments en des types valides ::" + +#: ../Doc/library/ctypes.rst:438 +msgid "" +"If you have defined your own classes which you pass to function calls, you " +"have to implement a :meth:`from_param` class method for them to be able to " +"use them in the :attr:`argtypes` sequence. The :meth:`from_param` class " +"method receives the Python object passed to the function call, it should do " +"a typecheck or whatever is needed to make sure this object is acceptable, " +"and then return the object itself, its :attr:`_as_parameter_` attribute, or " +"whatever you want to pass as the C function argument in this case. Again, " +"the result should be an integer, string, bytes, a :mod:`ctypes` instance, or " +"an object with an :attr:`_as_parameter_` attribute." +msgstr "" +"Pour appeler une fonction avec votre propre classe définie dans la séquence :" +"attr:`argtypes`, il est nécessaire d'implémenter une méthode de classe :meth:" +"`from_param`. La méthode de classe :meth:`from_param` récupère l'objet " +"Python passé à la fonction et doit faire une vérification de type ou tout ce " +"qui est nécessaire pour s'assurer que l'objet est valide, puis renvoie " +"l'objet lui-même, son attribut :attr:`_as_parameter_`, ou tout ce que vous " +"voulez passer comme argument fonction C dans ce cas. Encore une fois, il " +"convient que le résultat soit un entier, une chaîne, des octets, une " +"instance :mod:`ctypes` ou un objet avec un attribut :attr:`_as_parameter_`." + +#: ../Doc/library/ctypes.rst:452 +msgid "Return types" +msgstr "Types de sortie" + +#: ../Doc/library/ctypes.rst:454 +msgid "" +"By default functions are assumed to return the C :c:type:`int` type. Other " +"return types can be specified by setting the :attr:`restype` attribute of " +"the function object." +msgstr "" +"Le module suppose que toutes les fonctions renvoient par défaut un :c:type:" +"`int` C. Pour préciser un autre type de sortie, il faut définir l'attribut :" +"attr:`restype` de l'objet encapsulant la fonction." + +#: ../Doc/library/ctypes.rst:458 +msgid "" +"Here is a more advanced example, it uses the ``strchr`` function, which " +"expects a string pointer and a char, and returns a pointer to a string::" +msgstr "" +"Voici un exemple plus poussé. Celui-ci utilise la fonction ``strchr``, qui " +"prend en paramètres un pointeur vers une chaîne et un caractère. Elle " +"renvoie un pointeur sur une chaîne de caractères ::" + +#: ../Doc/library/ctypes.rst:471 +msgid "" +"If you want to avoid the ``ord(\"x\")`` calls above, you can set the :attr:" +"`argtypes` attribute, and the second argument will be converted from a " +"single character Python bytes object into a C char::" +msgstr "" +"Pour économiser l'appel ``ord(\"x\")``, il est possible de définir " +"l'attribut :attr:`argtypes` ; le second argument, un objet octet à un seul " +"caractère, sera automatiquement converti en un caractère C ::" + +#: ../Doc/library/ctypes.rst:489 +msgid "" +"You can also use a callable Python object (a function or a class for " +"example) as the :attr:`restype` attribute, if the foreign function returns " +"an integer. The callable will be called with the *integer* the C function " +"returns, and the result of this call will be used as the result of your " +"function call. This is useful to check for error return values and " +"automatically raise an exception::" +msgstr "" +"Si la fonction à interfacer renvoie un entier, l'attribut :attr:`restype` " +"peut aussi être un appelable (une fonction ou une classe par exemple). Dans " +"ce cas, l'appelable sera appelé avec l'entier renvoyé par la fonction et le " +"résultat de cet appel sera le résultat final de l'appel à la fonction. C'est " +"pratique pour vérifier les codes d'erreurs des valeurs de retour et lever " +"automatiquement des exceptions ::" + +#: ../Doc/library/ctypes.rst:512 +msgid "" +"``WinError`` is a function which will call Windows ``FormatMessage()`` api " +"to get the string representation of an error code, and *returns* an " +"exception. ``WinError`` takes an optional error code parameter, if no one is " +"used, it calls :func:`GetLastError` to retrieve it." +msgstr "" +"``WinError`` appelle l'API Windows ``FormatMessage()`` pour obtenir une " +"représentation de la chaîne de caractères qui correspond au code d'erreur, " +"et *renvoie* une exception. ``WinError`` prend en paramètre — optionnel — le " +"code d'erreur. Si celui-ci n'est pas passé, elle appelle :func:" +"`GetLastError` pour le récupérer." + +#: ../Doc/library/ctypes.rst:517 +msgid "" +"Please note that a much more powerful error checking mechanism is available " +"through the :attr:`errcheck` attribute; see the reference manual for details." +msgstr "" +"Notez cependant que l'attribut :attr:`errcheck` permet de vérifier bien plus " +"efficacement les erreurs ; référez-vous au manuel de référence pour plus de " +"précisions." + +#: ../Doc/library/ctypes.rst:524 +msgid "Passing pointers (or: passing parameters by reference)" +msgstr "Passage de pointeurs (passage de paramètres par référence)" + +#: ../Doc/library/ctypes.rst:526 +msgid "" +"Sometimes a C api function expects a *pointer* to a data type as parameter, " +"probably to write into the corresponding location, or if the data is too " +"large to be passed by value. This is also known as *passing parameters by " +"reference*." +msgstr "" +"Il arrive qu'une fonction C du code à interfacer requière un *pointeur* vers " +"un certain type de donnée en paramètre, typiquement pour écrire à l'endroit " +"correspondant ou si la donnée est trop grande pour pouvoir être passée par " +"valeur. Ce mécanisme est appelé *passage de paramètres par référence*." + +#: ../Doc/library/ctypes.rst:530 +msgid "" +":mod:`ctypes` exports the :func:`byref` function which is used to pass " +"parameters by reference. The same effect can be achieved with the :func:" +"`pointer` function, although :func:`pointer` does a lot more work since it " +"constructs a real pointer object, so it is faster to use :func:`byref` if " +"you don't need the pointer object in Python itself::" +msgstr "" +":mod:`ctypes` contient la fonction :func:`byref` qui permet de passer des " +"paramètres par référence. La fonction :func:`pointer` a la même utilité, " +"mais fait plus de travail car :func:`pointer` construit un véritable objet " +"pointeur. Ainsi, si vous n'avez pas besoin de cet objet dans votre code " +"Python, utiliser :func:`byref` est plus performant ::" + +#: ../Doc/library/ctypes.rst:552 +msgid "Structures and unions" +msgstr "Structures et unions" + +#: ../Doc/library/ctypes.rst:554 +msgid "" +"Structures and unions must derive from the :class:`Structure` and :class:" +"`Union` base classes which are defined in the :mod:`ctypes` module. Each " +"subclass must define a :attr:`_fields_` attribute. :attr:`_fields_` must be " +"a list of *2-tuples*, containing a *field name* and a *field type*." +msgstr "" +"Les structures et les unions doivent hériter des classes de base :class:" +"`Structure` et :class:`Union` définies dans le module :mod:`ctypes`. Chaque " +"sous-classe doit définir un attribut :attr:`_fields_`. :attr:`_fields_` doit " +"être une liste de *paires*, contenant un *nom de champ* et un *type de " +"champ*." + +#: ../Doc/library/ctypes.rst:559 +msgid "" +"The field type must be a :mod:`ctypes` type like :class:`c_int`, or any " +"other derived :mod:`ctypes` type: structure, union, array, pointer." +msgstr "" +"Le type de champ doit être un type :mod:`ctypes` comme :class:`c_int` ou un " +"type :mod:`ctypes` dérivé : structure, union, tableau ou pointeur." + +#: ../Doc/library/ctypes.rst:562 +msgid "" +"Here is a simple example of a POINT structure, which contains two integers " +"named *x* and *y*, and also shows how to initialize a structure in the " +"constructor::" +msgstr "" +"Voici un exemple simple : une structure POINT qui contient deux entiers *x* " +"et *y* et qui montre également comment instancier une structure avec le " +"constructeur ::" + +#: ../Doc/library/ctypes.rst:582 +msgid "" +"You can, however, build much more complicated structures. A structure can " +"itself contain other structures by using a structure as a field type." +msgstr "" +"Il est bien entendu possible de créer des structures plus complexes. Une " +"structure peut elle-même contenir d'autres structures en prenant une " +"structure comme type de champ." + +#: ../Doc/library/ctypes.rst:585 +msgid "" +"Here is a RECT structure which contains two POINTs named *upperleft* and " +"*lowerright*::" +msgstr "" +"Voici une structure RECT qui contient deux POINTs *upperleft* et " +"*lowerright* ::" + +#: ../Doc/library/ctypes.rst:599 +msgid "" +"Nested structures can also be initialized in the constructor in several " +"ways::" +msgstr "" +"Une structure encapsulée peut être instanciée par un constructeur de " +"plusieurs façons ::" + +#: ../Doc/library/ctypes.rst:604 +msgid "" +"Field :term:`descriptor`\\s can be retrieved from the *class*, they are " +"useful for debugging because they can provide useful information::" +msgstr "" +"Il est possible de récupérer les :term:`descripteurs ` des " +"champs depuis la *classe*. Ils sont importants pour déboguer car ils " +"contiennent des informations utiles ::" + +#: ../Doc/library/ctypes.rst:618 +msgid "" +":mod:`ctypes` does not support passing unions or structures with bit-fields " +"to functions by value. While this may work on 32-bit x86, it's not " +"guaranteed by the library to work in the general case. Unions and " +"structures with bit-fields should always be passed to functions by pointer." +msgstr "" +":mod:`ctypes` ne prend pas en charge le passage par valeur des unions ou des " +"structures avec des champs de bits. Bien que cela puisse fonctionner sur des " +"architectures 32 bits avec un jeu d'instructions x86, ce n'est pas garanti " +"par la bibliothèque en général. Les unions et les structures avec des champs " +"de bits doivent toujours être passées par pointeur." + +#: ../Doc/library/ctypes.rst:624 +msgid "Structure/union alignment and byte order" +msgstr "Alignement et boutisme des structures et des unions" + +#: ../Doc/library/ctypes.rst:626 +msgid "" +"By default, Structure and Union fields are aligned in the same way the C " +"compiler does it. It is possible to override this behavior be specifying a :" +"attr:`_pack_` class attribute in the subclass definition. This must be set " +"to a positive integer and specifies the maximum alignment for the fields. " +"This is what ``#pragma pack(n)`` also does in MSVC." +msgstr "" + +#: ../Doc/library/ctypes.rst:632 +msgid "" +":mod:`ctypes` uses the native byte order for Structures and Unions. To " +"build structures with non-native byte order, you can use one of the :class:" +"`BigEndianStructure`, :class:`LittleEndianStructure`, :class:" +"`BigEndianUnion`, and :class:`LittleEndianUnion` base classes. These " +"classes cannot contain pointer fields." +msgstr "" +":mod:`ctypes` suit le boutisme natif pour les *Structure* et les *Union*. " +"Pour construire des structures avec un boutisme différent, utilisez les " +"classes de base :class:`BigEndianStructure`, :class:" +"`LittleEndianStructure`, :class:`BigEndianUnion` ou :class:" +"`LittleEndianUnion`. Ces classes ne peuvent pas avoir de champ pointeur." + +#: ../Doc/library/ctypes.rst:642 +msgid "Bit fields in structures and unions" +msgstr "Champs de bits dans les structures et les unions" + +#: ../Doc/library/ctypes.rst:644 +msgid "" +"It is possible to create structures and unions containing bit fields. Bit " +"fields are only possible for integer fields, the bit width is specified as " +"the third item in the :attr:`_fields_` tuples::" +msgstr "" +"Il est possible de créer des structures et des unions contenant des champs " +"de bits. Seuls les entiers peuvent être des champs de bits, le nombre de " +"bits est défini dans le troisième champ du n-uplet :attr:`_fields_` ::" + +#: ../Doc/library/ctypes.rst:662 +msgid "Arrays" +msgstr "Tableaux" + +#: ../Doc/library/ctypes.rst:664 +msgid "" +"Arrays are sequences, containing a fixed number of instances of the same " +"type." +msgstr "" +"Les tableaux sont des séquences qui contiennent un nombre fixe d'instances " +"du même type." + +#: ../Doc/library/ctypes.rst:666 +msgid "" +"The recommended way to create array types is by multiplying a data type with " +"a positive integer::" +msgstr "" +"La meilleure façon de créer des tableaux consiste à multiplier le type de " +"donnée par un entier positif ::" + +#: ../Doc/library/ctypes.rst:671 +msgid "" +"Here is an example of a somewhat artificial data type, a structure " +"containing 4 POINTs among other stuff::" +msgstr "" +"Voici un exemple — un peu artificiel — d'une structure contenant, entre " +"autres, 4 POINTs ::" + +#: ../Doc/library/ctypes.rst:687 +msgid "Instances are created in the usual way, by calling the class::" +msgstr "Comme d'habitude, on crée les instances en appelant la classe ::" + +#: ../Doc/library/ctypes.rst:693 +msgid "" +"The above code print a series of ``0 0`` lines, because the array contents " +"is initialized to zeros." +msgstr "" +"Le code précédent affiche une suite de ``0 0`` car le contenu du tableau est " +"initialisé avec des zéros." + +#: ../Doc/library/ctypes.rst:696 +msgid "Initializers of the correct type can also be specified::" +msgstr "Des valeurs d'initialisation du bon type peuvent être passées ::" + +#: ../Doc/library/ctypes.rst:712 +msgid "Pointers" +msgstr "Pointeurs" + +#: ../Doc/library/ctypes.rst:714 +msgid "" +"Pointer instances are created by calling the :func:`pointer` function on a :" +"mod:`ctypes` type::" +msgstr "" +"On crée une instance de pointeur en appelant la fonction :func:`pointer` sur " +"un type :mod:`ctypes` ::" + +#: ../Doc/library/ctypes.rst:722 +msgid "" +"Pointer instances have a :attr:`~_Pointer.contents` attribute which returns " +"the object to which the pointer points, the ``i`` object above::" +msgstr "" +"Les instances de pointeurs ont un attribut :attr:`~_Pointer.contents` qui " +"renvoie l'objet pointé (l'objet ``i`` ci-dessus) ::" + +#: ../Doc/library/ctypes.rst:729 +msgid "" +"Note that :mod:`ctypes` does not have OOR (original object return), it " +"constructs a new, equivalent object each time you retrieve an attribute::" +msgstr "" +"Attention, :mod:`ctypes` ne fait pas de ROI (retour de l'objet initial). Il " +"crée un nouvel objet à chaque fois qu'on accède à un attribut ::" + +#: ../Doc/library/ctypes.rst:738 +msgid "" +"Assigning another :class:`c_int` instance to the pointer's contents " +"attribute would cause the pointer to point to the memory location where this " +"is stored::" +msgstr "" +"Affecter une autre instance de :class:`c_int` à l'attribut *contents* du " +"pointeur fait pointer le pointeur vers l'adresse mémoire de cette nouvelle " +"instance ::" + +#: ../Doc/library/ctypes.rst:750 +msgid "Pointer instances can also be indexed with integers::" +msgstr "Il est possible d'indexer les pointeurs par des entiers ::" + +#: ../Doc/library/ctypes.rst:756 +msgid "Assigning to an integer index changes the pointed to value::" +msgstr "Affecter à travers un indice change la valeur pointée ::" + +#: ../Doc/library/ctypes.rst:765 +msgid "" +"It is also possible to use indexes different from 0, but you must know what " +"you're doing, just as in C: You can access or change arbitrary memory " +"locations. Generally you only use this feature if you receive a pointer from " +"a C function, and you *know* that the pointer actually points to an array " +"instead of a single item." +msgstr "" +"Si vous êtes sûr de vous, vous pouvez utiliser d'autres valeurs que 0, comme " +"en C : il est ainsi possible de modifier une zone mémoire de votre choix. De " +"manière générale cette fonctionnalité ne s'utilise que sur un pointeur " +"renvoyé par une fonction C, pointeur que vous *savez* pointer vers un " +"tableau et non sur un seul élément." + +#: ../Doc/library/ctypes.rst:771 +msgid "" +"Behind the scenes, the :func:`pointer` function does more than simply create " +"pointer instances, it has to create pointer *types* first. This is done with " +"the :func:`POINTER` function, which accepts any :mod:`ctypes` type, and " +"returns a new type::" +msgstr "" +"Sous le capot, la fonction :func:`pointer` fait plus que simplement créer " +"une instance de pointeur ; elle doit d'abord créer un type « pointeur " +"sur… ». Cela s'effectue avec la fonction :func:`POINTER`, qui prend en " +"paramètre n'importe quel type :mod:`ctypes` et renvoie un nouveau type ::" + +#: ../Doc/library/ctypes.rst:787 +msgid "" +"Calling the pointer type without an argument creates a ``NULL`` pointer. " +"``NULL`` pointers have a ``False`` boolean value::" +msgstr "" +"Appeler le pointeur sur type sans arguments crée un pointeur ``NULL``. Les " +"pointeurs ``NULL`` s'évaluent à ``False`` ::" + +#: ../Doc/library/ctypes.rst:795 +msgid "" +":mod:`ctypes` checks for ``NULL`` when dereferencing pointers (but " +"dereferencing invalid non-\\ ``NULL`` pointers would crash Python)::" +msgstr "" +":mod:`ctypes` vérifie que le pointeur n'est pas ``NULL`` quand il en " +"déréférence un (mais déréférencer des pointeurs non ``NULL`` invalides fait " +"planter Python) ::" + +#: ../Doc/library/ctypes.rst:814 +msgid "Type conversions" +msgstr "Conversions de type" + +#: ../Doc/library/ctypes.rst:816 +msgid "" +"Usually, ctypes does strict type checking. This means, if you have " +"``POINTER(c_int)`` in the :attr:`argtypes` list of a function or as the type " +"of a member field in a structure definition, only instances of exactly the " +"same type are accepted. There are some exceptions to this rule, where " +"ctypes accepts other objects. For example, you can pass compatible array " +"instances instead of pointer types. So, for ``POINTER(c_int)``, ctypes " +"accepts an array of c_int::" +msgstr "" +"En général, *ctypes* respecte un typage fort. Cela signifie que si un " +"``POINTER(c_int)`` est présent dans la liste des :attr:`argtypes` d'une " +"fonction ou est le type d'un attribut membre dans une définition de " +"structure, seules des instances de ce type seront valides. Cette règle " +"comporte quelques exceptions pour lesquelles *ctypes* accepte d'autres " +"objets. Par exemple il est possible de passer des instances de tableau à " +"place de pointeurs, s'ils sont compatibles. Dans le cas de " +"``POINTER(c_int)``, *ctypes* accepte des tableaux de *c_int* ::" + +#: ../Doc/library/ctypes.rst:837 +msgid "" +"In addition, if a function argument is explicitly declared to be a pointer " +"type (such as ``POINTER(c_int)``) in :attr:`argtypes`, an object of the " +"pointed type (``c_int`` in this case) can be passed to the function. ctypes " +"will apply the required :func:`byref` conversion in this case automatically." +msgstr "" +"De plus, si un paramètre de fonction est déclaré explicitement de type " +"pointeur (comme ``POINTER(c_int)``) dans les :attr:`argtypes`, il est aussi " +"possible de passer un objet du type pointé — ici, ``c_int`` — à la fonction. " +"*ctypes* appelle alors automatiquement la fonction de conversion :func:" +"`byref`." + +#: ../Doc/library/ctypes.rst:842 +msgid "To set a POINTER type field to ``NULL``, you can assign ``None``::" +msgstr "" +"Pour mettre un champ de type *POINTER* à ``NULL``, il faut lui affecter " +"``None`` ::" + +#: ../Doc/library/ctypes.rst:849 +msgid "" +"Sometimes you have instances of incompatible types. In C, you can cast one " +"type into another type. :mod:`ctypes` provides a :func:`cast` function " +"which can be used in the same way. The ``Bar`` structure defined above " +"accepts ``POINTER(c_int)`` pointers or :class:`c_int` arrays for its " +"``values`` field, but not instances of other types::" +msgstr "" +"Parfois il faut gérer des incompatibilités entre les types. En C, il est " +"possible de convertir un type en un autre. :mod:`ctypes` fournit la " +"fonction :func:`cast` qui permet la même chose. La structure ``Bar`` ci-" +"dessus accepte des pointeurs ``POINTER(c_int)`` ou des tableaux de :class:" +"`c_int` comme valeur pour le champ ``values``, mais pas des instances " +"d'autres types ::" + +#: ../Doc/library/ctypes.rst:861 +msgid "For these cases, the :func:`cast` function is handy." +msgstr "C'est là que la fonction :func:`cast` intervient." + +#: ../Doc/library/ctypes.rst:863 +msgid "" +"The :func:`cast` function can be used to cast a ctypes instance into a " +"pointer to a different ctypes data type. :func:`cast` takes two parameters, " +"a ctypes object that is or can be converted to a pointer of some kind, and a " +"ctypes pointer type. It returns an instance of the second argument, which " +"references the same memory block as the first argument::" +msgstr "" +"La fonction :func:`cast` permet de convertir une instance de *ctypes* en un " +"pointeur vers un type de données *ctypes* différent. :func:`cast` prend deux " +"paramètres : un objet *ctypes* qui est, ou qui peut être converti en, un " +"certain pointeur et un type pointeur de *ctypes*. Elle renvoie une instance " +"du second argument, qui pointe sur le même bloc mémoire que le premier " +"argument ::" + +#: ../Doc/library/ctypes.rst:874 +msgid "" +"So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` " +"the structure::" +msgstr "" +"Ainsi, la fonction :func:`cast` permet de remplir le champ ``values`` de la " +"structure ``Bar`` ::" + +#: ../Doc/library/ctypes.rst:887 +msgid "Incomplete Types" +msgstr "Types incomplets" + +#: ../Doc/library/ctypes.rst:889 +msgid "" +"*Incomplete Types* are structures, unions or arrays whose members are not " +"yet specified. In C, they are specified by forward declarations, which are " +"defined later::" +msgstr "" +"Un *type incomplet* est une structure, une union ou un tableau dont les " +"membres ne sont pas encore définis. C'est l'équivalent d'une déclaration " +"avancée en C, où la définition est fournie plus tard ::" + +#: ../Doc/library/ctypes.rst:900 +msgid "" +"The straightforward translation into ctypes code would be this, but it does " +"not work::" +msgstr "" +"Une traduction naïve, mais invalide, en code *ctypes* ressemblerait à ça ::" + +#: ../Doc/library/ctypes.rst:913 +msgid "" +"because the new ``class cell`` is not available in the class statement " +"itself. In :mod:`ctypes`, we can define the ``cell`` class and set the :attr:" +"`_fields_` attribute later, after the class statement::" +msgstr "" +"Cela ne fonctionne pas parce que la nouvelle ``class cell`` n'est pas " +"accessible dans la définition de la classe elle-même. Dans le module :mod:" +"`ctypes`, on définit la classe ``cell`` et on définira les :attr:`_fields_` " +"plus tard, après avoir défini la classe ::" + +#: ../Doc/library/ctypes.rst:925 +msgid "" +"Lets try it. We create two instances of ``cell``, and let them point to each " +"other, and finally follow the pointer chain a few times::" +msgstr "" + +#: ../Doc/library/ctypes.rst:946 +msgid "Callback functions" +msgstr "Fonctions de rappel" + +#: ../Doc/library/ctypes.rst:948 +msgid "" +":mod:`ctypes` allows creating C callable function pointers from Python " +"callables. These are sometimes called *callback functions*." +msgstr "" +":mod:`ctypes` permet de créer des pointeurs de fonctions appelables par des " +"appelables Python. On les appelle parfois *fonctions de rappel*." + +#: ../Doc/library/ctypes.rst:951 +msgid "" +"First, you must create a class for the callback function. The class knows " +"the calling convention, the return type, and the number and types of " +"arguments this function will receive." +msgstr "" +"Tout d'abord, il faut créer une classe pour la fonction de rappel. La classe " +"connaît la convention d'appel, le type de retour ainsi que le nombre et le " +"type de paramètres que la fonction accepte." + +#: ../Doc/library/ctypes.rst:955 +msgid "" +"The :func:`CFUNCTYPE` factory function creates types for callback functions " +"using the ``cdecl`` calling convention. On Windows, the :func:`WINFUNCTYPE` " +"factory function creates types for callback functions using the ``stdcall`` " +"calling convention." +msgstr "" +"La fabrique :func:`CFUNCTYPE` crée un type pour les fonctions de rappel qui " +"suivent la convention d'appel ``cdecl``. En Windows, c'est la fabrique :func:" +"`WINFUNCTYPE` qui crée un type pour les fonctions de rappel qui suivent la " +"convention d'appel ``stdcall``." + +#: ../Doc/library/ctypes.rst:960 +msgid "" +"Both of these factory functions are called with the result type as first " +"argument, and the callback functions expected argument types as the " +"remaining arguments." +msgstr "" +"Le premier paramètre de ces deux fonctions est le type de retour, et les " +"suivants sont les types des arguments qu'attend la fonction de rappel." + +#: ../Doc/library/ctypes.rst:964 +msgid "" +"I will present an example here which uses the standard C library's :c:func:" +"`qsort` function, that is used to sort items with the help of a callback " +"function. :c:func:`qsort` will be used to sort an array of integers::" +msgstr "" +"Intéressons-nous à un exemple tiré de la bibliothèque standard C : la " +"fonction :c:func:`qsort`. Celle-ci permet de classer des éléments par " +"l'emploi d'une fonction de rappel. Nous allons utiliser :c:func:`qsort` pour " +"ordonner un tableau d'entiers ::" + +#: ../Doc/library/ctypes.rst:974 +msgid "" +":func:`qsort` must be called with a pointer to the data to sort, the number " +"of items in the data array, the size of one item, and a pointer to the " +"comparison function, the callback. The callback will then be called with two " +"pointers to items, and it must return a negative integer if the first item " +"is smaller than the second, a zero if they are equal, and a positive integer " +"otherwise." +msgstr "" +":func:`qsort` doit être appelée avec un pointeur vers la donnée à ordonner, " +"le nombre d'éléments dans la donnée, la taille d'un élément et un pointeur " +"vers le comparateur, c-à-d la fonction de rappel. Cette fonction sera " +"invoquée avec deux pointeurs sur deux éléments et doit renvoyer un entier " +"négatif si le premier élément est plus petit que le second, zéro s'ils sont " +"égaux et un entier positif sinon." + +#: ../Doc/library/ctypes.rst:980 +msgid "" +"So our callback function receives pointers to integers, and must return an " +"integer. First we create the ``type`` for the callback function::" +msgstr "" +"Ainsi notre fonction de rappel reçoit des pointeurs vers des entiers et doit " +"renvoyer un entier. Créons d'abord le ``type`` pour la fonction de rappel ::" + +#: ../Doc/library/ctypes.rst:986 +msgid "" +"To get started, here is a simple callback that shows the values it gets " +"passed::" +msgstr "" +"Pour commencer, voici une fonction de rappel simple qui affiche les valeurs " +"qu'on lui passe ::" + +#: ../Doc/library/ctypes.rst:996 +msgid "The result::" +msgstr "Résultat ::" + +#: ../Doc/library/ctypes.rst:1006 +msgid "Now we can actually compare the two items and return a useful result::" +msgstr "" +"À présent, comparons pour de vrai les deux entiers et renvoyons un résultat " +"utile ::" + +#: ../Doc/library/ctypes.rst:1021 +msgid "As we can easily check, our array is sorted now::" +msgstr "" +"Et comme il est facile de le voir, notre tableau est désormais classé ::" + +#: ../Doc/library/ctypes.rst:1028 +msgid "" +"The function factories can be used as decorator factories, so we may as well " +"write::" +msgstr "" +"Ces fonctions peuvent aussi être utilisées comme des décorateurs ; il est " +"donc possible d'écrire ::" + +#: ../Doc/library/ctypes.rst:1046 +msgid "" +"Make sure you keep references to :func:`CFUNCTYPE` objects as long as they " +"are used from C code. :mod:`ctypes` doesn't, and if you don't, they may be " +"garbage collected, crashing your program when a callback is made." +msgstr "" +"Prenez garde à bien conserver une référence à un objet :func:`CFUNCTYPE` " +"tant que celui-ci est utilisé par le code C. :mod:`ctypes` ne le fait pas " +"tout seul et, si vous ne le faites pas, le ramasse-miette pourrait les " +"libérer, ce qui fera planter votre programme quand un appel sera fait." + +#: ../Doc/library/ctypes.rst:1050 +msgid "" +"Also, note that if the callback function is called in a thread created " +"outside of Python's control (e.g. by the foreign code that calls the " +"callback), ctypes creates a new dummy Python thread on every invocation. " +"This behavior is correct for most purposes, but it means that values stored " +"with :class:`threading.local` will *not* survive across different callbacks, " +"even when those calls are made from the same C thread." +msgstr "" +"Notez aussi que si la fonction de rappel est appelée dans un fil d'exécution " +"créé hors de Python (p. ex. par du code externe qui appelle la fonction de " +"rappel), *ctypes* crée un nouveau fil Python « creux » à chaque fois. Ce " +"comportement est acceptable pour la plupart des cas d'utilisation, mais cela " +"implique que les valeurs stockées avec :class:`threading.local` ne seront " +"*pas* persistantes d'un appel à l'autre, même si les appels proviennent du " +"même fil d'exécution C." + +#: ../Doc/library/ctypes.rst:1060 +msgid "Accessing values exported from dlls" +msgstr "Accès aux variables exportées depuis une DLL" + +#: ../Doc/library/ctypes.rst:1062 +msgid "" +"Some shared libraries not only export functions, they also export variables. " +"An example in the Python library itself is the :c:data:`Py_OptimizeFlag`, an " +"integer set to 0, 1, or 2, depending on the :option:`-O` or :option:`-OO` " +"flag given on startup." +msgstr "" +"Certaines bibliothèques ne se contentent pas d'exporter des fonctions, elles " +"exportent aussi des variables. Par exemple, la bibliothèque Python exporte :" +"c:data:`Py_OptimizeFlag`, un entier valant 0, 1, ou 2 selon que l'option :" +"option:`-O` ou :option:`-OO` soit donnée au démarrage." + +#: ../Doc/library/ctypes.rst:1067 +msgid "" +":mod:`ctypes` can access values like this with the :meth:`in_dll` class " +"methods of the type. *pythonapi* is a predefined symbol giving access to " +"the Python C api::" +msgstr "" +":mod:`ctypes` peut accéder à ce type de valeurs avec les méthodes de classe :" +"meth:`in_dll` du type considéré. *pythonapi* est un symbole prédéfini qui " +"donne accès à l'API C Python ::" + +#: ../Doc/library/ctypes.rst:1076 +msgid "" +"If the interpreter would have been started with :option:`-O`, the sample " +"would have printed ``c_long(1)``, or ``c_long(2)`` if :option:`-OO` would " +"have been specified." +msgstr "" +"Si l'interpréteur est lancé avec :option:`-O`, l'exemple affiche " +"``c_long(1)`` et ``c_long(2)`` avec :option:`-OO`." + +#: ../Doc/library/ctypes.rst:1080 +msgid "" +"An extended example which also demonstrates the use of pointers accesses " +"the :c:data:`PyImport_FrozenModules` pointer exported by Python." +msgstr "" +"Le pointeur :c:data:`PyImport_FrozenModules` exposé par Python est un autre " +"exemple complet de l'utilisation de pointeurs." + +#: ../Doc/library/ctypes.rst:1083 +msgid "Quoting the docs for that value:" +msgstr "Citons la documentation :" + +#: ../Doc/library/ctypes.rst:1085 +msgid "" +"This pointer is initialized to point to an array of :c:type:`struct _frozen` " +"records, terminated by one whose members are all *NULL* or zero. When a " +"frozen module is imported, it is searched in this table. Third-party code " +"could play tricks with this to provide a dynamically created collection of " +"frozen modules." +msgstr "" + +#: ../Doc/library/ctypes.rst:1090 +msgid "" +"So manipulating this pointer could even prove useful. To restrict the " +"example size, we show only how this table can be read with :mod:`ctypes`::" +msgstr "" +"Donc manipuler ce pointeur peut même se révéler utile. Pour limiter la " +"taille de l'exemple, nous nous bornons à montrer comment lire ce tableau " +"avec :mod:`ctypes` ::" + +#: ../Doc/library/ctypes.rst:1102 +msgid "" +"We have defined the :c:type:`struct _frozen` data type, so we can get the " +"pointer to the table::" +msgstr "" +"Le type de donnée :c:type:`struct _frozen` ayant été défini, nous pouvons " +"récupérer le pointeur vers le tableau ::" + +#: ../Doc/library/ctypes.rst:1109 +msgid "" +"Since ``table`` is a ``pointer`` to the array of ``struct_frozen`` records, " +"we can iterate over it, but we just have to make sure that our loop " +"terminates, because pointers have no size. Sooner or later it would probably " +"crash with an access violation or whatever, so it's better to break out of " +"the loop when we hit the NULL entry::" +msgstr "" + +#: ../Doc/library/ctypes.rst:1127 +msgid "" +"The fact that standard Python has a frozen module and a frozen package " +"(indicated by the negative size member) is not well known, it is only used " +"for testing. Try it out with ``import __hello__`` for example." +msgstr "" + +#: ../Doc/library/ctypes.rst:1135 +msgid "Surprises" +msgstr "Pièges" + +#: ../Doc/library/ctypes.rst:1137 +msgid "" +"There are some edges in :mod:`ctypes` where you might expect something other " +"than what actually happens." +msgstr "" +"Il y a quelques cas tordus dans :mod:`ctypes` où on peut s'attendre à un " +"résultat différent de la réalité." + +#: ../Doc/library/ctypes.rst:1140 +msgid "Consider the following example::" +msgstr "Examinons l'exemple suivant ::" + +#: ../Doc/library/ctypes.rst:1160 +msgid "" +"Hm. We certainly expected the last statement to print ``3 4 1 2``. What " +"happened? Here are the steps of the ``rc.a, rc.b = rc.b, rc.a`` line above::" +msgstr "" +"Diantre. On s'attendait certainement à ce que le dernier résultat affiche " +"``3 4 1 2``. Que s'est-il passé ? Les étapes de la ligne ``rc.a, rc.b = rc." +"b, rc.a`` ci-dessus sont les suivantes ::" + +#: ../Doc/library/ctypes.rst:1168 +msgid "" +"Note that ``temp0`` and ``temp1`` are objects still using the internal " +"buffer of the ``rc`` object above. So executing ``rc.a = temp0`` copies the " +"buffer contents of ``temp0`` into ``rc`` 's buffer. This, in turn, changes " +"the contents of ``temp1``. So, the last assignment ``rc.b = temp1``, doesn't " +"have the expected effect." +msgstr "" +"Les objets ``temp0`` et ``temp1`` utilisent encore le tampon interne de " +"l'objet ``rc`` ci-dessus. Donc exécuter ``rc.a = temp0`` copie le contenu du " +"tampon de ``temp0`` dans celui de ``rc``. Ce qui, par ricochet, modifie le " +"contenu de ``temp1``. Et donc, la dernière affectation, ``rc.b = temp1``, " +"n'a pas l'effet escompté." + +#: ../Doc/library/ctypes.rst:1174 +msgid "" +"Keep in mind that retrieving sub-objects from Structure, Unions, and Arrays " +"doesn't *copy* the sub-object, instead it retrieves a wrapper object " +"accessing the root-object's underlying buffer." +msgstr "" +"Gardez en tête qu'accéder au sous-objet depuis une *Structure*, une *Union* " +"ou un *Array* ne copie *pas* le sous-objet, mais crée un objet interface qui " +"accède au tampon sous-jacent de l'objet initial." + +#: ../Doc/library/ctypes.rst:1178 +msgid "" +"Another example that may behave different from what one would expect is " +"this::" +msgstr "" + +#: ../Doc/library/ctypes.rst:1188 +msgid "" +"Why is it printing ``False``? ctypes instances are objects containing a " +"memory block plus some :term:`descriptor`\\s accessing the contents of the " +"memory. Storing a Python object in the memory block does not store the " +"object itself, instead the ``contents`` of the object is stored. Accessing " +"the contents again constructs a new Python object each time!" +msgstr "" +"Pourquoi cela affiche-t'il ``False`` ? Les instances *ctypes* sont des " +"objets qui contiennent un bloc mémoire et des :term:`descriptor` qui donnent " +"accès au contenu du ce bloc. Stocker un objet Python dans le bloc mémoire ne " +"stocke pas l'objet même ; seuls ses ``contents`` le sont. Accéder au " +"``contents`` crée un nouvel objet Python à chaque fois !" + +#: ../Doc/library/ctypes.rst:1198 +msgid "Variable-sized data types" +msgstr "Types de données à taille flottante" + +#: ../Doc/library/ctypes.rst:1200 +msgid "" +":mod:`ctypes` provides some support for variable-sized arrays and structures." +msgstr "" +":mod:`ctypes` assure la prise en charge des tableaux et des structures à " +"taille flottante." + +#: ../Doc/library/ctypes.rst:1202 +msgid "" +"The :func:`resize` function can be used to resize the memory buffer of an " +"existing ctypes object. The function takes the object as first argument, " +"and the requested size in bytes as the second argument. The memory block " +"cannot be made smaller than the natural memory block specified by the " +"objects type, a :exc:`ValueError` is raised if this is tried::" +msgstr "" +"La fonction :func:`resize` permet de redimensionner la taille du tampon " +"mémoire d'un objet *ctypes* existant. Cette fonction prend l'objet comme " +"premier argument et la taille en octets désirée comme second. La taille du " +"tampon mémoire ne peut pas être inférieure à celle occupée par un objet " +"unitaire du type considéré. Une :exc:`ValueError` est levée si c'est le " +"cas ::" + +#: ../Doc/library/ctypes.rst:1222 +msgid "" +"This is nice and fine, but how would one access the additional elements " +"contained in this array? Since the type still only knows about 4 elements, " +"we get errors accessing other elements::" +msgstr "" +"Cela dit, comment accéder aux éléments supplémentaires contenus dans le " +"tableau ? Vu que le type ne connaît que 4 éléments, on obtient une erreur si " +"l'on accède aux suivants ::" + +#: ../Doc/library/ctypes.rst:1234 +msgid "" +"Another way to use variable-sized data types with :mod:`ctypes` is to use " +"the dynamic nature of Python, and (re-)define the data type after the " +"required size is already known, on a case by case basis." +msgstr "" +"Une autre approche pour utiliser des types de donnée à taille flottante " +"avec :mod:`ctypes` consiste à tirer profit de la nature intrinsèquement " +"dynamique de Python et de (re)définir le type de donnée une fois que la " +"taille demandée est connue, au cas-par-cas." + +#: ../Doc/library/ctypes.rst:1242 +msgid "ctypes reference" +msgstr "Référence du module" + +#: ../Doc/library/ctypes.rst:1248 +msgid "Finding shared libraries" +msgstr "Recherche de bibliothèques partagées" + +#: ../Doc/library/ctypes.rst:1250 +msgid "" +"When programming in a compiled language, shared libraries are accessed when " +"compiling/linking a program, and when the program is run." +msgstr "" +"Les langages compilés ont besoin d'accéder aux bibliothèques partagées au " +"moment de la compilation, de l'édition de liens et pendant l'exécution du " +"programme." + +#: ../Doc/library/ctypes.rst:1253 +msgid "" +"The purpose of the :func:`find_library` function is to locate a library in a " +"way similar to what the compiler or runtime loader does (on platforms with " +"several versions of a shared library the most recent should be loaded), " +"while the ctypes library loaders act like when a program is run, and call " +"the runtime loader directly." +msgstr "" +"Le but de la fonction :func:`find_library` est de trouver une bibliothèque " +"de la même façon que le ferait le compilateur ou le chargeur (sur les plates-" +"formes avec plusieurs versions de la même bibliothèque, la plus récente est " +"chargée), alors que les chargeurs de bibliothèques de *ctypes* se comportent " +"de la même façon qu'un programme qui s'exécute, et appellent directement le " +"chargeur." + +#: ../Doc/library/ctypes.rst:1259 +msgid "" +"The :mod:`ctypes.util` module provides a function which can help to " +"determine the library to load." +msgstr "" +"Le module :mod:`ctypes.util` fournit une fonction pour déterminer quelle " +"bibliothèque charger." + +#: ../Doc/library/ctypes.rst:1267 +msgid "" +"Try to find a library and return a pathname. *name* is the library name " +"without any prefix like *lib*, suffix like ``.so``, ``.dylib`` or version " +"number (this is the form used for the posix linker option :option:`!-l`). " +"If no library can be found, returns ``None``." +msgstr "" +"Tente de trouver une bibliothèque et en renvoie le chemin. *name* est le nom " +"de la bibliothèque sans préfixe — comme *lib* — ni suffixe — comme ``.so``, " +"``.dylib`` ou un numéro de version (c.-à-d. la même forme que l'option POSIX " +"de l'éditeur de lien :option:`!-l`). Si la fonction ne parvient pas à " +"trouver de bibliothèque, elle renvoie ``None``." + +#: ../Doc/library/ctypes.rst:1272 ../Doc/library/ctypes.rst:1860 +msgid "The exact functionality is system dependent." +msgstr "Le mode opératoire exact dépend du système." + +#: ../Doc/library/ctypes.rst:1274 +msgid "" +"On Linux, :func:`find_library` tries to run external programs (``/sbin/" +"ldconfig``, ``gcc``, ``objdump`` and ``ld``) to find the library file. It " +"returns the filename of the library file." +msgstr "" +"Sous Linux, :func:`find_library` essaye de lancer des programmes externes " +"(``/sbin/ldconfig``, ``gcc``, ``objdump`` et ``ld``) pour trouver la " +"bibliothèque. Elle renvoie le nom de la bibliothèque sur le disque." + +#: ../Doc/library/ctypes.rst:1278 +msgid "" +"On Linux, the value of the environment variable ``LD_LIBRARY_PATH`` is used " +"when searching for libraries, if a library cannot be found by any other " +"means." +msgstr "" +"Sous Linux, si les autres moyens échouent, la fonction utilise la variable " +"d'environnement ``LD_LIBRARY_PATH`` pour trouver la bibliothèque." + +#: ../Doc/library/ctypes.rst:1282 +msgid "Here are some examples::" +msgstr "Voici quelques exemples :" + +#: ../Doc/library/ctypes.rst:1293 +msgid "" +"On OS X, :func:`find_library` tries several predefined naming schemes and " +"paths to locate the library, and returns a full pathname if successful::" +msgstr "" +"Sous OS X, :func:`find_library` regarde dans des chemins et conventions de " +"chemins prédéfinies pour trouver la bibliothèque et en renvoie le chemin " +"complet si elle la trouve :" + +#: ../Doc/library/ctypes.rst:1307 +msgid "" +"On Windows, :func:`find_library` searches along the system search path, and " +"returns the full pathname, but since there is no predefined naming scheme a " +"call like ``find_library(\"c\")`` will fail and return ``None``." +msgstr "" +"Sous Windows, :func:`find_library` examine le chemin de recherche du système " +"et renvoie le chemin complet de la bibliothèque, mais comme il n'existe pas " +"de convention de nommage, des appels comme ``find_library(\"c\")`` échouent " +"et renvoient ``None``." + +#: ../Doc/library/ctypes.rst:1311 +msgid "" +"If wrapping a shared library with :mod:`ctypes`, it *may* be better to " +"determine the shared library name at development time, and hardcode that " +"into the wrapper module instead of using :func:`find_library` to locate the " +"library at runtime." +msgstr "" +"Si vous encapsulez une bibliothèque partagée avec :mod:`ctypes`, il est " +"*probablement* plus judicieux de déterminer le chemin de cette bibliothèque " +"lors du développement et de l'écrire en dur dans le module d'encapsulation, " +"plutôt que d'utiliser :func:`find_library` pour la trouver lors de " +"l'exécution." + +#: ../Doc/library/ctypes.rst:1319 +msgid "Loading shared libraries" +msgstr "Chargement des bibliothèques partagées" + +#: ../Doc/library/ctypes.rst:1321 +msgid "" +"There are several ways to load shared libraries into the Python process. " +"One way is to instantiate one of the following classes:" +msgstr "" +"Il y a plusieurs moyens de charger une bibliothèque partagée dans un " +"processus Python. L'un d'entre eux consiste à instancier une des classes " +"suivantes :" + +#: ../Doc/library/ctypes.rst:1327 +msgid "" +"Instances of this class represent loaded shared libraries. Functions in " +"these libraries use the standard C calling convention, and are assumed to " +"return :c:type:`int`." +msgstr "" +"Une instance de cette classe représente une bibliothèque partagée déjà " +"chargée. Les fonctions de cette bibliothèque utilisent la convention d'appel " +"C standard et doivent renvoyer un :c:type:`int`." + +#: ../Doc/library/ctypes.rst:1334 +msgid "" +"Windows only: Instances of this class represent loaded shared libraries, " +"functions in these libraries use the ``stdcall`` calling convention, and are " +"assumed to return the windows specific :class:`HRESULT` code. :class:" +"`HRESULT` values contain information specifying whether the function call " +"failed or succeeded, together with additional error code. If the return " +"value signals a failure, an :class:`OSError` is automatically raised." +msgstr "" +"En Windows seulement : une instance de cette classe représente une " +"bibliothèque partagée déjà chargée. Les fonctions de cette bibliothèque " +"utilisent la convention d'appel *stdcall*, et doivent renvoyer un code :" +"class:`HRESULT` (propre à Windows). Les valeurs de :class:`HRESULT` " +"contiennent des informations précisant si l'appel de la fonction a échoué ou " +"s'il a réussi, ainsi qu'un code d'erreur supplémentaire. Si la valeur de " +"retour signale un échec, une :class:`OSError` est levée automatiquement." + +#: ../Doc/library/ctypes.rst:1341 +msgid ":exc:`WindowsError` used to be raised." +msgstr ":exc:`WindowsError` était levée auparavant." + +#: ../Doc/library/ctypes.rst:1347 +msgid "" +"Windows only: Instances of this class represent loaded shared libraries, " +"functions in these libraries use the ``stdcall`` calling convention, and are " +"assumed to return :c:type:`int` by default." +msgstr "" +"En Windows seulement : une instance de cette classe représente une " +"bibliothèque partagée déjà chargée. Les fonctions de cette bibliothèque " +"utilisent la convention d'appel *stdcall* et doivent renvoyer par défaut un :" +"c:type:`int`." + +#: ../Doc/library/ctypes.rst:1351 +msgid "" +"On Windows CE only the standard calling convention is used, for convenience " +"the :class:`WinDLL` and :class:`OleDLL` use the standard calling convention " +"on this platform." +msgstr "" +"Sous Windows CE, seule la convention d'appel standard est utilisée. Pour des " +"raisons pratiques, :class:`WinDLL` et :class:`OleDLL` utilisent la " +"convention d'appel standard sur cette plate-forme." + +#: ../Doc/library/ctypes.rst:1355 +msgid "" +"The Python :term:`global interpreter lock` is released before calling any " +"function exported by these libraries, and reacquired afterwards." +msgstr "" +"Le :term:`verrou global de l'interpréteur ` Python " +"est relâché avant chaque appel d'une fonction exposée par ces bibliothèques " +"et ré-activé après." + +#: ../Doc/library/ctypes.rst:1361 +msgid "" +"Instances of this class behave like :class:`CDLL` instances, except that the " +"Python GIL is *not* released during the function call, and after the " +"function execution the Python error flag is checked. If the error flag is " +"set, a Python exception is raised." +msgstr "" +"Cette classe est identique à :class:`CDLL`, à ceci près que le GIL n'est " +"*pas* relâché pendant l'appel de la fonction, et, qu'au terme de l'appel, le " +"drapeau d'erreur Python est vérifié. Si celui-ci est activé, une exception " +"Python est levée." + +#: ../Doc/library/ctypes.rst:1366 +msgid "Thus, this is only useful to call Python C api functions directly." +msgstr "" +"Donc, cette classe ne sert qu'à appeler les fonctions de l'API C de Python." + +#: ../Doc/library/ctypes.rst:1368 +msgid "" +"All these classes can be instantiated by calling them with at least one " +"argument, the pathname of the shared library. If you have an existing " +"handle to an already loaded shared library, it can be passed as the " +"``handle`` named parameter, otherwise the underlying platforms ``dlopen`` or " +"``LoadLibrary`` function is used to load the library into the process, and " +"to get a handle to it." +msgstr "" +"Toutes ces classes peuvent être instanciées en les appelant avec le chemin " +"de la bibliothèque partagée comme unique argument. Il est aussi possible de " +"passer un lien vers une bibliothèque déjà chargée en utilisant le paramètre " +"``handle``. Sinon, les fonctions ``dlopen`` ou ``LoadLibrary`` de la plate-" +"forme sous-jacente permettent de charger la bibliothèque dans le processus, " +"et d'en obtenir un lien." + +#: ../Doc/library/ctypes.rst:1375 +msgid "" +"The *mode* parameter can be used to specify how the library is loaded. For " +"details, consult the :manpage:`dlopen(3)` manpage. On Windows, *mode* is " +"ignored. On posix systems, RTLD_NOW is always added, and is not " +"configurable." +msgstr "" +"Le mode de chargement de la bibliothèque est défini par le paramètre *mode*. " +"Pour plus de détails, référez-vous à l'entrée :manpage:`dlopen(3)` du " +"manuel. En Windows, *mode* est ignoré. Sur les systèmes POSIX, RTLD_NOW y " +"est toujours ajouté. Ceci n'est pas configurable." + +#: ../Doc/library/ctypes.rst:1380 +msgid "" +"The *use_errno* parameter, when set to true, enables a ctypes mechanism that " +"allows accessing the system :data:`errno` error number in a safe way. :mod:" +"`ctypes` maintains a thread-local copy of the systems :data:`errno` " +"variable; if you call foreign functions created with ``use_errno=True`` then " +"the :data:`errno` value before the function call is swapped with the ctypes " +"private copy, the same happens immediately after the function call." +msgstr "" +"Le paramètre *use_errno*, lorsque défini à vrai, active un mécanisme de " +"*ctypes* qui permet d'accéder au numéro d'erreur :data:`errno` du système de " +"manière sécurisée. :mod:`ctypes` maintient une copie de :data:`errno` du " +"système dans chaque fil d'exécution. Si vous appelez des fonctions externes " +"créées avec ``use_errno=True``, la valeur de :data:`errno` avant l'appel de " +"la fonction est échangée avec la copie privée de *ctypes*. La même chose se " +"produit juste après l'appel de la fonction." + +#: ../Doc/library/ctypes.rst:1387 +msgid "" +"The function :func:`ctypes.get_errno` returns the value of the ctypes " +"private copy, and the function :func:`ctypes.set_errno` changes the ctypes " +"private copy to a new value and returns the former value." +msgstr "" +"La fonction :func:`ctypes.get_errno` renvoie la valeur de la copie privée de " +"*ctypes*. La fonction :func:`ctypes.set_errno` affecte une nouvelle valeur à " +"la copie privée et renvoie l'ancienne valeur." + +#: ../Doc/library/ctypes.rst:1391 +msgid "" +"The *use_last_error* parameter, when set to true, enables the same mechanism " +"for the Windows error code which is managed by the :func:`GetLastError` and :" +"func:`SetLastError` Windows API functions; :func:`ctypes.get_last_error` " +"and :func:`ctypes.set_last_error` are used to request and change the ctypes " +"private copy of the windows error code." +msgstr "" +"Définir le paramètre *use_last_error* à vrai active le même mécanisme pour " +"le code d'erreur de Windows qui est géré par les fonctions :func:" +"`GetLastError` et :func:`SetLastError` de l'API Windows ; :func:`ctypes." +"get_last_error` et :func:`ctypes.set_last_error` servent à obtenir et " +"modifier la copie privée *ctypes* de ce code d'erreur." + +#: ../Doc/library/ctypes.rst:1400 +msgid "" +"Flag to use as *mode* parameter. On platforms where this flag is not " +"available, it is defined as the integer zero." +msgstr "" +"Valeur possible pour le paramètre *mode*. Vaut zéro sur les plates-formes où " +"ce drapeau n'est pas disponible." + +#: ../Doc/library/ctypes.rst:1407 +msgid "" +"Flag to use as *mode* parameter. On platforms where this is not available, " +"it is the same as *RTLD_GLOBAL*." +msgstr "" +"Valeur possible pour le paramètre *mode*. Vaut *RTLD_GLOBAL* sur les plates-" +"formes où ce drapeau n'est pas disponible." + +#: ../Doc/library/ctypes.rst:1414 +msgid "" +"The default mode which is used to load shared libraries. On OSX 10.3, this " +"is *RTLD_GLOBAL*, otherwise it is the same as *RTLD_LOCAL*." +msgstr "" +"Mode de chargement par défaut des bibliothèques partagées. Vaut " +"*RTLD_GLOBAL* sur OSX 10.3 et *RTLD_LOCAL* sur les autres systèmes " +"d'exploitation." + +#: ../Doc/library/ctypes.rst:1417 +msgid "" +"Instances of these classes have no public methods. Functions exported by " +"the shared library can be accessed as attributes or by index. Please note " +"that accessing the function through an attribute caches the result and " +"therefore accessing it repeatedly returns the same object each time. On the " +"other hand, accessing it through an index returns a new object each time::" +msgstr "" +"Les instances de ces classes n'ont pas de méthodes publiques ; on accède aux " +"fonctions de la bibliothèque partagée par attribut ou par indiçage. Notez " +"que les résultats des accès par attribut sont mis en cache, et donc des " +"accès consécutifs renvoient à chaque fois le même objet. Accéder à une " +"fonction par indice renvoie cependant chaque fois un nouvel objet :" + +#: ../Doc/library/ctypes.rst:1430 +msgid "" +"The following public attributes are available, their name starts with an " +"underscore to not clash with exported function names:" +msgstr "" +"Les attributs publics suivants sont disponibles, leur nom commence par un " +"tiret bas pour éviter les conflits avec les noms des fonctions exportées :" + +#: ../Doc/library/ctypes.rst:1436 +msgid "The system handle used to access the library." +msgstr "" + +#: ../Doc/library/ctypes.rst:1441 +msgid "The name of the library passed in the constructor." +msgstr "Nom de la bibliothèque donné au constructeur." + +#: ../Doc/library/ctypes.rst:1443 +msgid "" +"Shared libraries can also be loaded by using one of the prefabricated " +"objects, which are instances of the :class:`LibraryLoader` class, either by " +"calling the :meth:`LoadLibrary` method, or by retrieving the library as " +"attribute of the loader instance." +msgstr "" +"Il est possible de charger une bibliothèque partagée soit en utilisant une " +"instance de la classe :class:`LibraryLoader`, soit en appelant la méthode :" +"meth:`LoadLibrary`, soit en récupérant la bibliothèque comme attribut de " +"l'instance du chargeur." + +#: ../Doc/library/ctypes.rst:1451 +msgid "" +"Class which loads shared libraries. *dlltype* should be one of the :class:" +"`CDLL`, :class:`PyDLL`, :class:`WinDLL`, or :class:`OleDLL` types." +msgstr "" +"Classe pour charger une bibliothèque partagée. *dlltype* doit être de type :" +"class:`CDLL`, :class:`PyDLL`, :class:`WinDLL` ou :class:`OleDLL`." + +#: ../Doc/library/ctypes.rst:1454 +msgid "" +":meth:`__getattr__` has special behavior: It allows loading a shared library " +"by accessing it as attribute of a library loader instance. The result is " +"cached, so repeated attribute accesses return the same library each time." +msgstr "" +":meth:`__getattr__` a un comportement particulier : elle charge une " +"bibliothèque quand on accède à un attribut du chargeur. Le résultat est mis " +"en cache, donc des accès consécutifs renvoient la même bibliothèque à chaque " +"fois." + +#: ../Doc/library/ctypes.rst:1460 +msgid "" +"Load a shared library into the process and return it. This method always " +"returns a new instance of the library." +msgstr "" +"Charge une bibliothèque partagée dans le processus et la renvoie. Cette " +"méthode renvoie toujours une nouvelle instance de la bibliothèque." + +#: ../Doc/library/ctypes.rst:1464 +msgid "These prefabricated library loaders are available:" +msgstr "Plusieurs chargeurs sont fournis :" + +#: ../Doc/library/ctypes.rst:1469 +msgid "Creates :class:`CDLL` instances." +msgstr "Pour créer des instances de :class:`CDLL`." + +#: ../Doc/library/ctypes.rst:1475 +msgid "Windows only: Creates :class:`WinDLL` instances." +msgstr "Pour créer des instances de :class:`WinDLL` (uniquement en Windows)." + +#: ../Doc/library/ctypes.rst:1481 +msgid "Windows only: Creates :class:`OleDLL` instances." +msgstr "Pour créer des instances de :class:`OleDLL` (uniquement en Windows)." + +#: ../Doc/library/ctypes.rst:1487 +msgid "Creates :class:`PyDLL` instances." +msgstr "Pour créer des instances de :class:`PyDLL`." + +#: ../Doc/library/ctypes.rst:1490 +msgid "" +"For accessing the C Python api directly, a ready-to-use Python shared " +"library object is available:" +msgstr "Il existe un moyen rapide d'accéder directement à l'API C Python :" + +#: ../Doc/library/ctypes.rst:1496 +msgid "" +"An instance of :class:`PyDLL` that exposes Python C API functions as " +"attributes. Note that all these functions are assumed to return C :c:type:" +"`int`, which is of course not always the truth, so you have to assign the " +"correct :attr:`restype` attribute to use these functions." +msgstr "" +"Une instance de :class:`PyDLL` dont les attributs sont les fonctions " +"exportées par l'API C Python. Toutes ces fonctions sont supposées renvoyer " +"un :c:type:`int` C, ce qui n'est bien entendu pas toujours le cas. Il faut " +"donc définir vous-même le bon attribut :attr:`restype` pour pouvoir les " +"utiliser." + +#: ../Doc/library/ctypes.rst:1505 +msgid "Foreign functions" +msgstr "Fonctions externes" + +#: ../Doc/library/ctypes.rst:1507 +msgid "" +"As explained in the previous section, foreign functions can be accessed as " +"attributes of loaded shared libraries. The function objects created in this " +"way by default accept any number of arguments, accept any ctypes data " +"instances as arguments, and return the default result type specified by the " +"library loader. They are instances of a private class:" +msgstr "" +"Comme expliqué dans la section précédente, on peut accéder aux fonctions " +"externes au travers des attributs des bibliothèques partagées. Un objet " +"fonction créé de cette façon accepte par défaut un nombre quelconque " +"d'arguments qui peuvent être de n'importe quel type de données *ctypes*. Il " +"renvoie le type par défaut du chargeur de la bibliothèque. Ce sont des " +"instances de la classe privée :" + +#: ../Doc/library/ctypes.rst:1516 +msgid "Base class for C callable foreign functions." +msgstr "Classe de base pour les fonctions externes C." + +#: ../Doc/library/ctypes.rst:1518 +msgid "" +"Instances of foreign functions are also C compatible data types; they " +"represent C function pointers." +msgstr "" +"Une instance de fonction externe est également un type de donnée compatible " +"avec le C ; elle représente un pointeur vers une fonction." + +#: ../Doc/library/ctypes.rst:1521 +msgid "" +"This behavior can be customized by assigning to special attributes of the " +"foreign function object." +msgstr "" +"Son comportement peut-être personnalisé en réaffectant les attributs " +"spécifiques de l'objet représentant la fonction externe." + +#: ../Doc/library/ctypes.rst:1526 +msgid "" +"Assign a ctypes type to specify the result type of the foreign function. Use " +"``None`` for :c:type:`void`, a function not returning anything." +msgstr "" +"Fait correspondre le type de retour de la fonction externe à un type " +"*ctypes*. Dans le cas où la fonction ne renvoie rien (:c:type:`void`), " +"utilisez ``None``." + +#: ../Doc/library/ctypes.rst:1529 +msgid "" +"It is possible to assign a callable Python object that is not a ctypes type, " +"in this case the function is assumed to return a C :c:type:`int`, and the " +"callable will be called with this integer, allowing further processing or " +"error checking. Using this is deprecated, for more flexible post processing " +"or error checking use a ctypes data type as :attr:`restype` and assign a " +"callable to the :attr:`errcheck` attribute." +msgstr "" +"Il est aussi possible de passer n'importe quel un objet Python qui n'est pas " +"un type *ctypes* pourvu qu'il soit appelable. Dans ce cas, la fonction est " +"censée renvoyer un :c:type:`int` C et l'appelable sera appelé avec cet " +"entier, ce qui permet ainsi de faire des actions supplémentaires comme " +"vérifier un code d'erreur. Ce mécanisme est obsolète ; une façon plus souple " +"de faire des actions supplémentaires ou de la vérification consiste à " +"affecter un type *ctypes* à :attr:`restype` et à affecter un appelable à " +"l'attribut :attr:`errcheck`." + +#: ../Doc/library/ctypes.rst:1538 +msgid "" +"Assign a tuple of ctypes types to specify the argument types that the " +"function accepts. Functions using the ``stdcall`` calling convention can " +"only be called with the same number of arguments as the length of this " +"tuple; functions using the C calling convention accept additional, " +"unspecified arguments as well." +msgstr "" +"Fait correspondre le type des arguments que la fonction accepte avec un *n*-" +"uplet de types *ctypes*. Les fonctions qui utilisent la convention d'appel " +"``stdcall`` ne peuvent être appelées qu'avec le même nombre d'arguments que " +"la taille du *n*-uplet mais les fonctions qui utilisent la convention " +"d'appel C acceptent aussi des arguments additionnels non-définis." + +#: ../Doc/library/ctypes.rst:1544 +msgid "" +"When a foreign function is called, each actual argument is passed to the :" +"meth:`from_param` class method of the items in the :attr:`argtypes` tuple, " +"this method allows adapting the actual argument to an object that the " +"foreign function accepts. For example, a :class:`c_char_p` item in the :" +"attr:`argtypes` tuple will convert a string passed as argument into a bytes " +"object using ctypes conversion rules." +msgstr "" +"À l'appel d'une fonction externe, chaque argument est passé à la méthode de " +"classe :meth:`from_param` de l'élément correspondant dans le *n*-uplet des :" +"attr:`argtypes`. Cette méthode convertit l'argument initial en un objet que " +"la fonction externe peut comprendre. Par exemple, un :class:`c_char_p` dans " +"le *n*-uplet des :attr:`argtypes` va transformer la chaîne de caractères " +"passée en argument en un objet chaîne d'octets selon les règles de " +"conversion *ctypes*." + +#: ../Doc/library/ctypes.rst:1551 +msgid "" +"New: It is now possible to put items in argtypes which are not ctypes types, " +"but each item must have a :meth:`from_param` method which returns a value " +"usable as argument (integer, string, ctypes instance). This allows defining " +"adapters that can adapt custom objects as function parameters." +msgstr "" +"Nouveau : il est maintenant possible de mettre des objets qui ne sont pas " +"des types de *ctypes* dans les *argtypes*, mais ceux-ci doivent avoir une " +"méthode :meth:`from_param` renvoyant une valeur qui peut être utilisée comme " +"un argument (entier, chaîne de caractères ou instance *ctypes*). Ceci permet " +"de créer des adaptateurs qui convertissent des objets arbitraires en des " +"paramètres de fonction." + +#: ../Doc/library/ctypes.rst:1558 +msgid "" +"Assign a Python function or another callable to this attribute. The callable " +"will be called with three or more arguments:" +msgstr "" +"Définit une fonction Python ou tout autre appelable qui sera appelé avec " +"trois arguments ou plus :" + +#: ../Doc/library/ctypes.rst:1565 +msgid "" +"*result* is what the foreign function returns, as specified by the :attr:" +"`restype` attribute." +msgstr "" +"*result* est la valeur de retour de la fonction externe, comme défini par " +"l'attribut :attr:`restype`." + +#: ../Doc/library/ctypes.rst:1568 +msgid "" +"*func* is the foreign function object itself, this allows reusing the same " +"callable object to check or post process the results of several functions." +msgstr "" +"*func* est l'objet représentant la fonction externe elle-même. Cet accesseur " +"permet de réutiliser le même appelable pour vérifier le résultat de " +"plusieurs fonctions ou de faire des actions supplémentaires après leur " +"exécution." + +#: ../Doc/library/ctypes.rst:1572 +msgid "" +"*arguments* is a tuple containing the parameters originally passed to the " +"function call, this allows specializing the behavior on the arguments used." +msgstr "" +"*arguments* est le *n*-uplet qui contient les paramètres initiaux passés à " +"la fonction, ceci permet de spécialiser le comportement des arguments " +"utilisés." + +#: ../Doc/library/ctypes.rst:1576 +msgid "" +"The object that this function returns will be returned from the foreign " +"function call, but it can also check the result value and raise an exception " +"if the foreign function call failed." +msgstr "" +"L'objet renvoyé par cette fonction est celui renvoyé par l'appel de la " +"fonction externe, mais il peut aussi vérifier la valeur du résultat et lever " +"une exception si l'appel a échoué." + +#: ../Doc/library/ctypes.rst:1583 +msgid "" +"This exception is raised when a foreign function call cannot convert one of " +"the passed arguments." +msgstr "" +"Exception levée quand un appel à la fonction externe ne peut pas convertir " +"un des arguments qu'elle a reçus." + +#: ../Doc/library/ctypes.rst:1590 +msgid "Function prototypes" +msgstr "Prototypes de fonction" + +#: ../Doc/library/ctypes.rst:1592 +msgid "" +"Foreign functions can also be created by instantiating function prototypes. " +"Function prototypes are similar to function prototypes in C; they describe a " +"function (return type, argument types, calling convention) without defining " +"an implementation. The factory functions must be called with the desired " +"result type and the argument types of the function, and can be used as " +"decorator factories, and as such, be applied to functions through the " +"``@wrapper`` syntax. See :ref:`ctypes-callback-functions` for examples." +msgstr "" + +#: ../Doc/library/ctypes.rst:1603 +msgid "" +"The returned function prototype creates functions that use the standard C " +"calling convention. The function will release the GIL during the call. If " +"*use_errno* is set to true, the ctypes private copy of the system :data:" +"`errno` variable is exchanged with the real :data:`errno` value before and " +"after the call; *use_last_error* does the same for the Windows error code." +msgstr "" + +#: ../Doc/library/ctypes.rst:1613 +msgid "" +"Windows only: The returned function prototype creates functions that use the " +"``stdcall`` calling convention, except on Windows CE where :func:" +"`WINFUNCTYPE` is the same as :func:`CFUNCTYPE`. The function will release " +"the GIL during the call. *use_errno* and *use_last_error* have the same " +"meaning as above." +msgstr "" + +#: ../Doc/library/ctypes.rst:1622 +msgid "" +"The returned function prototype creates functions that use the Python " +"calling convention. The function will *not* release the GIL during the call." +msgstr "" + +#: ../Doc/library/ctypes.rst:1625 +msgid "" +"Function prototypes created by these factory functions can be instantiated " +"in different ways, depending on the type and number of the parameters in the " +"call:" +msgstr "" + +#: ../Doc/library/ctypes.rst:1633 +msgid "" +"Returns a foreign function at the specified address which must be an integer." +msgstr "" + +#: ../Doc/library/ctypes.rst:1640 +msgid "" +"Create a C callable function (a callback function) from a Python *callable*." +msgstr "" + +#: ../Doc/library/ctypes.rst:1647 +msgid "" +"Returns a foreign function exported by a shared library. *func_spec* must be " +"a 2-tuple ``(name_or_ordinal, library)``. The first item is the name of the " +"exported function as string, or the ordinal of the exported function as " +"small integer. The second item is the shared library instance." +msgstr "" + +#: ../Doc/library/ctypes.rst:1657 +msgid "" +"Returns a foreign function that will call a COM method. *vtbl_index* is the " +"index into the virtual function table, a small non-negative integer. *name* " +"is name of the COM method. *iid* is an optional pointer to the interface " +"identifier which is used in extended error reporting." +msgstr "" + +#: ../Doc/library/ctypes.rst:1662 +msgid "" +"COM methods use a special calling convention: They require a pointer to the " +"COM interface as first argument, in addition to those parameters that are " +"specified in the :attr:`argtypes` tuple." +msgstr "" + +#: ../Doc/library/ctypes.rst:1666 +msgid "" +"The optional *paramflags* parameter creates foreign function wrappers with " +"much more functionality than the features described above." +msgstr "" + +#: ../Doc/library/ctypes.rst:1669 +msgid "*paramflags* must be a tuple of the same length as :attr:`argtypes`." +msgstr "" + +#: ../Doc/library/ctypes.rst:1671 +msgid "" +"Each item in this tuple contains further information about a parameter, it " +"must be a tuple containing one, two, or three items." +msgstr "" + +#: ../Doc/library/ctypes.rst:1674 +msgid "" +"The first item is an integer containing a combination of direction flags for " +"the parameter:" +msgstr "" + +#: ../Doc/library/ctypes.rst:1678 +msgid "1" +msgstr "1" + +#: ../Doc/library/ctypes.rst:1678 +msgid "Specifies an input parameter to the function." +msgstr "" + +#: ../Doc/library/ctypes.rst:1681 +msgid "2" +msgstr "2" + +#: ../Doc/library/ctypes.rst:1681 +msgid "Output parameter. The foreign function fills in a value." +msgstr "" + +#: ../Doc/library/ctypes.rst:1684 +msgid "4" +msgstr "4" + +#: ../Doc/library/ctypes.rst:1684 +msgid "Input parameter which defaults to the integer zero." +msgstr "" + +#: ../Doc/library/ctypes.rst:1686 +msgid "" +"The optional second item is the parameter name as string. If this is " +"specified, the foreign function can be called with named parameters." +msgstr "" + +#: ../Doc/library/ctypes.rst:1689 +msgid "The optional third item is the default value for this parameter." +msgstr "" + +#: ../Doc/library/ctypes.rst:1691 +msgid "" +"This example demonstrates how to wrap the Windows ``MessageBoxW`` function " +"so that it supports default parameters and named arguments. The C " +"declaration from the windows header file is this::" +msgstr "" + +#: ../Doc/library/ctypes.rst:1702 ../Doc/library/ctypes.rst:1725 +msgid "Here is the wrapping with :mod:`ctypes`::" +msgstr "" + +#: ../Doc/library/ctypes.rst:1710 +msgid "The ``MessageBox`` foreign function can now be called in these ways::" +msgstr "" + +#: ../Doc/library/ctypes.rst:1716 +msgid "" +"A second example demonstrates output parameters. The win32 " +"``GetWindowRect`` function retrieves the dimensions of a specified window by " +"copying them into ``RECT`` structure that the caller has to supply. Here is " +"the C declaration::" +msgstr "" + +#: ../Doc/library/ctypes.rst:1734 +msgid "" +"Functions with output parameters will automatically return the output " +"parameter value if there is a single one, or a tuple containing the output " +"parameter values when there are more than one, so the GetWindowRect function " +"now returns a RECT instance, when called." +msgstr "" + +#: ../Doc/library/ctypes.rst:1739 +msgid "" +"Output parameters can be combined with the :attr:`errcheck` protocol to do " +"further output processing and error checking. The win32 ``GetWindowRect`` " +"api function returns a ``BOOL`` to signal success or failure, so this " +"function could do the error checking, and raises an exception when the api " +"call failed::" +msgstr "" + +#: ../Doc/library/ctypes.rst:1752 +msgid "" +"If the :attr:`errcheck` function returns the argument tuple it receives " +"unchanged, :mod:`ctypes` continues the normal processing it does on the " +"output parameters. If you want to return a tuple of window coordinates " +"instead of a ``RECT`` instance, you can retrieve the fields in the function " +"and return them instead, the normal processing will no longer take place::" +msgstr "" + +#: ../Doc/library/ctypes.rst:1771 +msgid "Utility functions" +msgstr "Fonctions utilitaires" + +#: ../Doc/library/ctypes.rst:1775 +msgid "" +"Returns the address of the memory buffer as integer. *obj* must be an " +"instance of a ctypes type." +msgstr "" + +#: ../Doc/library/ctypes.rst:1781 +msgid "" +"Returns the alignment requirements of a ctypes type. *obj_or_type* must be a " +"ctypes type or instance." +msgstr "" + +#: ../Doc/library/ctypes.rst:1787 +msgid "" +"Returns a light-weight pointer to *obj*, which must be an instance of a " +"ctypes type. *offset* defaults to zero, and must be an integer that will be " +"added to the internal pointer value." +msgstr "" + +#: ../Doc/library/ctypes.rst:1791 +msgid "``byref(obj, offset)`` corresponds to this C code::" +msgstr "" + +#: ../Doc/library/ctypes.rst:1795 +msgid "" +"The returned object can only be used as a foreign function call parameter. " +"It behaves similar to ``pointer(obj)``, but the construction is a lot faster." +msgstr "" + +#: ../Doc/library/ctypes.rst:1801 +msgid "" +"This function is similar to the cast operator in C. It returns a new " +"instance of *type* which points to the same memory block as *obj*. *type* " +"must be a pointer type, and *obj* must be an object that can be interpreted " +"as a pointer." +msgstr "" + +#: ../Doc/library/ctypes.rst:1809 +msgid "" +"This function creates a mutable character buffer. The returned object is a " +"ctypes array of :class:`c_char`." +msgstr "" + +#: ../Doc/library/ctypes.rst:1812 +msgid "" +"*init_or_size* must be an integer which specifies the size of the array, or " +"a bytes object which will be used to initialize the array items." +msgstr "" + +#: ../Doc/library/ctypes.rst:1815 +msgid "" +"If a bytes object is specified as first argument, the buffer is made one " +"item larger than its length so that the last element in the array is a NUL " +"termination character. An integer can be passed as second argument which " +"allows specifying the size of the array if the length of the bytes should " +"not be used." +msgstr "" + +#: ../Doc/library/ctypes.rst:1824 +msgid "" +"This function creates a mutable unicode character buffer. The returned " +"object is a ctypes array of :class:`c_wchar`." +msgstr "" + +#: ../Doc/library/ctypes.rst:1827 +msgid "" +"*init_or_size* must be an integer which specifies the size of the array, or " +"a string which will be used to initialize the array items." +msgstr "" + +#: ../Doc/library/ctypes.rst:1830 +msgid "" +"If a string is specified as first argument, the buffer is made one item " +"larger than the length of the string so that the last element in the array " +"is a NUL termination character. An integer can be passed as second argument " +"which allows specifying the size of the array if the length of the string " +"should not be used." +msgstr "" + +#: ../Doc/library/ctypes.rst:1840 +msgid "" +"Windows only: This function is a hook which allows implementing in-process " +"COM servers with ctypes. It is called from the DllCanUnloadNow function " +"that the _ctypes extension dll exports." +msgstr "" + +#: ../Doc/library/ctypes.rst:1847 +msgid "" +"Windows only: This function is a hook which allows implementing in-process " +"COM servers with ctypes. It is called from the DllGetClassObject function " +"that the ``_ctypes`` extension dll exports." +msgstr "" + +#: ../Doc/library/ctypes.rst:1855 +msgid "" +"Try to find a library and return a pathname. *name* is the library name " +"without any prefix like ``lib``, suffix like ``.so``, ``.dylib`` or version " +"number (this is the form used for the posix linker option :option:`!-l`). " +"If no library can be found, returns ``None``." +msgstr "" + +#: ../Doc/library/ctypes.rst:1866 +msgid "" +"Windows only: return the filename of the VC runtime library used by Python, " +"and by the extension modules. If the name of the library cannot be " +"determined, ``None`` is returned." +msgstr "" + +#: ../Doc/library/ctypes.rst:1870 +msgid "" +"If you need to free memory, for example, allocated by an extension module " +"with a call to the ``free(void *)``, it is important that you use the " +"function in the same library that allocated the memory." +msgstr "" + +#: ../Doc/library/ctypes.rst:1877 +msgid "" +"Windows only: Returns a textual description of the error code *code*. If no " +"error code is specified, the last error code is used by calling the Windows " +"api function GetLastError." +msgstr "" + +#: ../Doc/library/ctypes.rst:1884 +msgid "" +"Windows only: Returns the last error code set by Windows in the calling " +"thread. This function calls the Windows `GetLastError()` function directly, " +"it does not return the ctypes-private copy of the error code." +msgstr "" + +#: ../Doc/library/ctypes.rst:1890 +msgid "" +"Returns the current value of the ctypes-private copy of the system :data:" +"`errno` variable in the calling thread." +msgstr "" + +#: ../Doc/library/ctypes.rst:1895 +msgid "" +"Windows only: returns the current value of the ctypes-private copy of the " +"system :data:`LastError` variable in the calling thread." +msgstr "" + +#: ../Doc/library/ctypes.rst:1900 +msgid "" +"Same as the standard C memmove library function: copies *count* bytes from " +"*src* to *dst*. *dst* and *src* must be integers or ctypes instances that " +"can be converted to pointers." +msgstr "" + +#: ../Doc/library/ctypes.rst:1907 +msgid "" +"Same as the standard C memset library function: fills the memory block at " +"address *dst* with *count* bytes of value *c*. *dst* must be an integer " +"specifying an address, or a ctypes instance." +msgstr "" + +#: ../Doc/library/ctypes.rst:1914 +msgid "" +"This factory function creates and returns a new ctypes pointer type. Pointer " +"types are cached and reused internally, so calling this function repeatedly " +"is cheap. *type* must be a ctypes type." +msgstr "" + +#: ../Doc/library/ctypes.rst:1921 +msgid "" +"This function creates a new pointer instance, pointing to *obj*. The " +"returned object is of the type ``POINTER(type(obj))``." +msgstr "" + +#: ../Doc/library/ctypes.rst:1924 +msgid "" +"Note: If you just want to pass a pointer to an object to a foreign function " +"call, you should use ``byref(obj)`` which is much faster." +msgstr "" + +#: ../Doc/library/ctypes.rst:1930 +msgid "" +"This function resizes the internal memory buffer of *obj*, which must be an " +"instance of a ctypes type. It is not possible to make the buffer smaller " +"than the native size of the objects type, as given by ``sizeof(type(obj))``, " +"but it is possible to enlarge the buffer." +msgstr "" + +#: ../Doc/library/ctypes.rst:1938 +msgid "" +"Set the current value of the ctypes-private copy of the system :data:`errno` " +"variable in the calling thread to *value* and return the previous value." +msgstr "" + +#: ../Doc/library/ctypes.rst:1945 +msgid "" +"Windows only: set the current value of the ctypes-private copy of the " +"system :data:`LastError` variable in the calling thread to *value* and " +"return the previous value." +msgstr "" + +#: ../Doc/library/ctypes.rst:1953 +msgid "" +"Returns the size in bytes of a ctypes type or instance memory buffer. Does " +"the same as the C ``sizeof`` operator." +msgstr "" + +#: ../Doc/library/ctypes.rst:1959 +msgid "" +"This function returns the C string starting at memory address *address* as a " +"bytes object. If size is specified, it is used as size, otherwise the string " +"is assumed to be zero-terminated." +msgstr "" + +#: ../Doc/library/ctypes.rst:1966 +msgid "" +"Windows only: this function is probably the worst-named thing in ctypes. It " +"creates an instance of OSError. If *code* is not specified, " +"``GetLastError`` is called to determine the error code. If *descr* is not " +"specified, :func:`FormatError` is called to get a textual description of the " +"error." +msgstr "" + +#: ../Doc/library/ctypes.rst:1972 +msgid "An instance of :exc:`WindowsError` used to be created." +msgstr "" + +#: ../Doc/library/ctypes.rst:1978 +msgid "" +"This function returns the wide character string starting at memory address " +"*address* as a string. If *size* is specified, it is used as the number of " +"characters of the string, otherwise the string is assumed to be zero-" +"terminated." +msgstr "" + +#: ../Doc/library/ctypes.rst:1987 +msgid "Data types" +msgstr "Types de données" + +#: ../Doc/library/ctypes.rst:1992 +msgid "" +"This non-public class is the common base class of all ctypes data types. " +"Among other things, all ctypes type instances contain a memory block that " +"hold C compatible data; the address of the memory block is returned by the :" +"func:`addressof` helper function. Another instance variable is exposed as :" +"attr:`_objects`; this contains other Python objects that need to be kept " +"alive in case the memory block contains pointers." +msgstr "" + +#: ../Doc/library/ctypes.rst:1999 +msgid "" +"Common methods of ctypes data types, these are all class methods (to be " +"exact, they are methods of the :term:`metaclass`):" +msgstr "" + +#: ../Doc/library/ctypes.rst:2004 +msgid "" +"This method returns a ctypes instance that shares the buffer of the *source* " +"object. The *source* object must support the writeable buffer interface. " +"The optional *offset* parameter specifies an offset into the source buffer " +"in bytes; the default is zero. If the source buffer is not large enough a :" +"exc:`ValueError` is raised." +msgstr "" + +#: ../Doc/library/ctypes.rst:2013 +msgid "" +"This method creates a ctypes instance, copying the buffer from the *source* " +"object buffer which must be readable. The optional *offset* parameter " +"specifies an offset into the source buffer in bytes; the default is zero. " +"If the source buffer is not large enough a :exc:`ValueError` is raised." +msgstr "" + +#: ../Doc/library/ctypes.rst:2021 +msgid "" +"This method returns a ctypes type instance using the memory specified by " +"*address* which must be an integer." +msgstr "" + +#: ../Doc/library/ctypes.rst:2026 +msgid "" +"This method adapts *obj* to a ctypes type. It is called with the actual " +"object used in a foreign function call when the type is present in the " +"foreign function's :attr:`argtypes` tuple; it must return an object that can " +"be used as a function call parameter." +msgstr "" + +#: ../Doc/library/ctypes.rst:2031 +msgid "" +"All ctypes data types have a default implementation of this classmethod that " +"normally returns *obj* if that is an instance of the type. Some types " +"accept other objects as well." +msgstr "" + +#: ../Doc/library/ctypes.rst:2037 +msgid "" +"This method returns a ctypes type instance exported by a shared library. " +"*name* is the name of the symbol that exports the data, *library* is the " +"loaded shared library." +msgstr "" + +#: ../Doc/library/ctypes.rst:2041 +msgid "Common instance variables of ctypes data types:" +msgstr "" + +#: ../Doc/library/ctypes.rst:2045 +msgid "" +"Sometimes ctypes data instances do not own the memory block they contain, " +"instead they share part of the memory block of a base object. The :attr:" +"`_b_base_` read-only member is the root ctypes object that owns the memory " +"block." +msgstr "" + +#: ../Doc/library/ctypes.rst:2052 +msgid "" +"This read-only variable is true when the ctypes data instance has allocated " +"the memory block itself, false otherwise." +msgstr "" + +#: ../Doc/library/ctypes.rst:2057 +msgid "" +"This member is either ``None`` or a dictionary containing Python objects " +"that need to be kept alive so that the memory block contents is kept valid. " +"This object is only exposed for debugging; never modify the contents of this " +"dictionary." +msgstr "" + +#: ../Doc/library/ctypes.rst:2070 +msgid "" +"This non-public class is the base class of all fundamental ctypes data " +"types. It is mentioned here because it contains the common attributes of the " +"fundamental ctypes data types. :class:`_SimpleCData` is a subclass of :" +"class:`_CData`, so it inherits their methods and attributes. ctypes data " +"types that are not and do not contain pointers can now be pickled." +msgstr "" + +#: ../Doc/library/ctypes.rst:2076 +msgid "Instances have a single attribute:" +msgstr "" + +#: ../Doc/library/ctypes.rst:2080 +msgid "" +"This attribute contains the actual value of the instance. For integer and " +"pointer types, it is an integer, for character types, it is a single " +"character bytes object or string, for character pointer types it is a Python " +"bytes object or string." +msgstr "" + +#: ../Doc/library/ctypes.rst:2085 +msgid "" +"When the ``value`` attribute is retrieved from a ctypes instance, usually a " +"new object is returned each time. :mod:`ctypes` does *not* implement " +"original object return, always a new object is constructed. The same is " +"true for all other ctypes object instances." +msgstr "" + +#: ../Doc/library/ctypes.rst:2091 +msgid "" +"Fundamental data types, when returned as foreign function call results, or, " +"for example, by retrieving structure field members or array items, are " +"transparently converted to native Python types. In other words, if a " +"foreign function has a :attr:`restype` of :class:`c_char_p`, you will always " +"receive a Python bytes object, *not* a :class:`c_char_p` instance." +msgstr "" + +#: ../Doc/library/ctypes.rst:2099 +msgid "" +"Subclasses of fundamental data types do *not* inherit this behavior. So, if " +"a foreign functions :attr:`restype` is a subclass of :class:`c_void_p`, you " +"will receive an instance of this subclass from the function call. Of course, " +"you can get the value of the pointer by accessing the ``value`` attribute." +msgstr "" + +#: ../Doc/library/ctypes.rst:2104 +msgid "These are the fundamental ctypes data types:" +msgstr "" + +#: ../Doc/library/ctypes.rst:2108 +msgid "" +"Represents the C :c:type:`signed char` datatype, and interprets the value as " +"small integer. The constructor accepts an optional integer initializer; no " +"overflow checking is done." +msgstr "" + +#: ../Doc/library/ctypes.rst:2115 +msgid "" +"Represents the C :c:type:`char` datatype, and interprets the value as a " +"single character. The constructor accepts an optional string initializer, " +"the length of the string must be exactly one character." +msgstr "" + +#: ../Doc/library/ctypes.rst:2122 +msgid "" +"Represents the C :c:type:`char *` datatype when it points to a zero-" +"terminated string. For a general character pointer that may also point to " +"binary data, ``POINTER(c_char)`` must be used. The constructor accepts an " +"integer address, or a bytes object." +msgstr "" + +#: ../Doc/library/ctypes.rst:2130 +msgid "" +"Represents the C :c:type:`double` datatype. The constructor accepts an " +"optional float initializer." +msgstr "" + +#: ../Doc/library/ctypes.rst:2136 +msgid "" +"Represents the C :c:type:`long double` datatype. The constructor accepts an " +"optional float initializer. On platforms where ``sizeof(long double) == " +"sizeof(double)`` it is an alias to :class:`c_double`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2142 +msgid "" +"Represents the C :c:type:`float` datatype. The constructor accepts an " +"optional float initializer." +msgstr "" + +#: ../Doc/library/ctypes.rst:2148 +msgid "" +"Represents the C :c:type:`signed int` datatype. The constructor accepts an " +"optional integer initializer; no overflow checking is done. On platforms " +"where ``sizeof(int) == sizeof(long)`` it is an alias to :class:`c_long`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2155 +msgid "" +"Represents the C 8-bit :c:type:`signed int` datatype. Usually an alias for :" +"class:`c_byte`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2161 +msgid "" +"Represents the C 16-bit :c:type:`signed int` datatype. Usually an alias " +"for :class:`c_short`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2167 +msgid "" +"Represents the C 32-bit :c:type:`signed int` datatype. Usually an alias " +"for :class:`c_int`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2173 +msgid "" +"Represents the C 64-bit :c:type:`signed int` datatype. Usually an alias " +"for :class:`c_longlong`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2179 +msgid "" +"Represents the C :c:type:`signed long` datatype. The constructor accepts an " +"optional integer initializer; no overflow checking is done." +msgstr "" + +#: ../Doc/library/ctypes.rst:2185 +msgid "" +"Represents the C :c:type:`signed long long` datatype. The constructor " +"accepts an optional integer initializer; no overflow checking is done." +msgstr "" + +#: ../Doc/library/ctypes.rst:2191 +msgid "" +"Represents the C :c:type:`signed short` datatype. The constructor accepts " +"an optional integer initializer; no overflow checking is done." +msgstr "" + +#: ../Doc/library/ctypes.rst:2197 +msgid "Represents the C :c:type:`size_t` datatype." +msgstr "" + +#: ../Doc/library/ctypes.rst:2202 +msgid "Represents the C :c:type:`ssize_t` datatype." +msgstr "" + +#: ../Doc/library/ctypes.rst:2209 +msgid "" +"Represents the C :c:type:`unsigned char` datatype, it interprets the value " +"as small integer. The constructor accepts an optional integer initializer; " +"no overflow checking is done." +msgstr "" + +#: ../Doc/library/ctypes.rst:2216 +msgid "" +"Represents the C :c:type:`unsigned int` datatype. The constructor accepts " +"an optional integer initializer; no overflow checking is done. On platforms " +"where ``sizeof(int) == sizeof(long)`` it is an alias for :class:`c_ulong`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2223 +msgid "" +"Represents the C 8-bit :c:type:`unsigned int` datatype. Usually an alias " +"for :class:`c_ubyte`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2229 +msgid "" +"Represents the C 16-bit :c:type:`unsigned int` datatype. Usually an alias " +"for :class:`c_ushort`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2235 +msgid "" +"Represents the C 32-bit :c:type:`unsigned int` datatype. Usually an alias " +"for :class:`c_uint`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2241 +msgid "" +"Represents the C 64-bit :c:type:`unsigned int` datatype. Usually an alias " +"for :class:`c_ulonglong`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2247 +msgid "" +"Represents the C :c:type:`unsigned long` datatype. The constructor accepts " +"an optional integer initializer; no overflow checking is done." +msgstr "" + +#: ../Doc/library/ctypes.rst:2253 +msgid "" +"Represents the C :c:type:`unsigned long long` datatype. The constructor " +"accepts an optional integer initializer; no overflow checking is done." +msgstr "" + +#: ../Doc/library/ctypes.rst:2259 +msgid "" +"Represents the C :c:type:`unsigned short` datatype. The constructor accepts " +"an optional integer initializer; no overflow checking is done." +msgstr "" + +#: ../Doc/library/ctypes.rst:2265 +msgid "" +"Represents the C :c:type:`void *` type. The value is represented as " +"integer. The constructor accepts an optional integer initializer." +msgstr "" + +#: ../Doc/library/ctypes.rst:2271 +msgid "" +"Represents the C :c:type:`wchar_t` datatype, and interprets the value as a " +"single character unicode string. The constructor accepts an optional string " +"initializer, the length of the string must be exactly one character." +msgstr "" + +#: ../Doc/library/ctypes.rst:2278 +msgid "" +"Represents the C :c:type:`wchar_t *` datatype, which must be a pointer to a " +"zero-terminated wide character string. The constructor accepts an integer " +"address, or a string." +msgstr "" + +#: ../Doc/library/ctypes.rst:2285 +msgid "" +"Represent the C :c:type:`bool` datatype (more accurately, :c:type:`_Bool` " +"from C99). Its value can be ``True`` or ``False``, and the constructor " +"accepts any object that has a truth value." +msgstr "" + +#: ../Doc/library/ctypes.rst:2292 +msgid "" +"Windows only: Represents a :c:type:`HRESULT` value, which contains success " +"or error information for a function or method call." +msgstr "" + +#: ../Doc/library/ctypes.rst:2298 +msgid "" +"Represents the C :c:type:`PyObject *` datatype. Calling this without an " +"argument creates a ``NULL`` :c:type:`PyObject *` pointer." +msgstr "" + +#: ../Doc/library/ctypes.rst:2301 +msgid "" +"The :mod:`ctypes.wintypes` module provides quite some other Windows specific " +"data types, for example :c:type:`HWND`, :c:type:`WPARAM`, or :c:type:" +"`DWORD`. Some useful structures like :c:type:`MSG` or :c:type:`RECT` are " +"also defined." +msgstr "" + +#: ../Doc/library/ctypes.rst:2309 +msgid "Structured data types" +msgstr "Types de donnée dérivés de Structure" + +#: ../Doc/library/ctypes.rst:2314 +msgid "Abstract base class for unions in native byte order." +msgstr "" + +#: ../Doc/library/ctypes.rst:2319 +msgid "Abstract base class for structures in *big endian* byte order." +msgstr "" + +#: ../Doc/library/ctypes.rst:2324 +msgid "Abstract base class for structures in *little endian* byte order." +msgstr "" + +#: ../Doc/library/ctypes.rst:2326 +msgid "" +"Structures with non-native byte order cannot contain pointer type fields, or " +"any other data types containing pointer type fields." +msgstr "" + +#: ../Doc/library/ctypes.rst:2332 +msgid "Abstract base class for structures in *native* byte order." +msgstr "" + +#: ../Doc/library/ctypes.rst:2334 +msgid "" +"Concrete structure and union types must be created by subclassing one of " +"these types, and at least define a :attr:`_fields_` class variable. :mod:" +"`ctypes` will create :term:`descriptor`\\s which allow reading and writing " +"the fields by direct attribute accesses. These are the" +msgstr "" + +#: ../Doc/library/ctypes.rst:2342 +msgid "" +"A sequence defining the structure fields. The items must be 2-tuples or 3-" +"tuples. The first item is the name of the field, the second item specifies " +"the type of the field; it can be any ctypes data type." +msgstr "" + +#: ../Doc/library/ctypes.rst:2346 +msgid "" +"For integer type fields like :class:`c_int`, a third optional item can be " +"given. It must be a small positive integer defining the bit width of the " +"field." +msgstr "" + +#: ../Doc/library/ctypes.rst:2350 +msgid "" +"Field names must be unique within one structure or union. This is not " +"checked, only one field can be accessed when names are repeated." +msgstr "" + +#: ../Doc/library/ctypes.rst:2353 +msgid "" +"It is possible to define the :attr:`_fields_` class variable *after* the " +"class statement that defines the Structure subclass, this allows creating " +"data types that directly or indirectly reference themselves::" +msgstr "" + +#: ../Doc/library/ctypes.rst:2363 +msgid "" +"The :attr:`_fields_` class variable must, however, be defined before the " +"type is first used (an instance is created, :func:`sizeof` is called on it, " +"and so on). Later assignments to the :attr:`_fields_` class variable will " +"raise an AttributeError." +msgstr "" + +#: ../Doc/library/ctypes.rst:2368 +msgid "" +"It is possible to define sub-subclasses of structure types, they inherit the " +"fields of the base class plus the :attr:`_fields_` defined in the sub-" +"subclass, if any." +msgstr "" + +#: ../Doc/library/ctypes.rst:2375 +msgid "" +"An optional small integer that allows overriding the alignment of structure " +"fields in the instance. :attr:`_pack_` must already be defined when :attr:" +"`_fields_` is assigned, otherwise it will have no effect." +msgstr "" + +#: ../Doc/library/ctypes.rst:2382 +msgid "" +"An optional sequence that lists the names of unnamed (anonymous) fields. :" +"attr:`_anonymous_` must be already defined when :attr:`_fields_` is " +"assigned, otherwise it will have no effect." +msgstr "" + +#: ../Doc/library/ctypes.rst:2386 +msgid "" +"The fields listed in this variable must be structure or union type fields. :" +"mod:`ctypes` will create descriptors in the structure type that allows " +"accessing the nested fields directly, without the need to create the " +"structure or union field." +msgstr "" + +#: ../Doc/library/ctypes.rst:2391 +msgid "Here is an example type (Windows)::" +msgstr "" + +#: ../Doc/library/ctypes.rst:2404 +msgid "" +"The ``TYPEDESC`` structure describes a COM data type, the ``vt`` field " +"specifies which one of the union fields is valid. Since the ``u`` field is " +"defined as anonymous field, it is now possible to access the members " +"directly off the TYPEDESC instance. ``td.lptdesc`` and ``td.u.lptdesc`` are " +"equivalent, but the former is faster since it does not need to create a " +"temporary union instance::" +msgstr "" + +#: ../Doc/library/ctypes.rst:2416 +msgid "" +"It is possible to define sub-subclasses of structures, they inherit the " +"fields of the base class. If the subclass definition has a separate :attr:" +"`_fields_` variable, the fields specified in this are appended to the fields " +"of the base class." +msgstr "" + +#: ../Doc/library/ctypes.rst:2421 +msgid "" +"Structure and union constructors accept both positional and keyword " +"arguments. Positional arguments are used to initialize member fields in the " +"same order as they are appear in :attr:`_fields_`. Keyword arguments in the " +"constructor are interpreted as attribute assignments, so they will " +"initialize :attr:`_fields_` with the same name, or create new attributes for " +"names not present in :attr:`_fields_`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2432 +msgid "Arrays and pointers" +msgstr "Tableaux et pointeurs" + +#: ../Doc/library/ctypes.rst:2436 +msgid "Abstract base class for arrays." +msgstr "Classe de base abstraite pour les *arrays*." + +#: ../Doc/library/ctypes.rst:2438 +msgid "" +"The recommended way to create concrete array types is by multiplying any :" +"mod:`ctypes` data type with a positive integer. Alternatively, you can " +"subclass this type and define :attr:`_length_` and :attr:`_type_` class " +"variables. Array elements can be read and written using standard subscript " +"and slice accesses; for slice reads, the resulting object is *not* itself " +"an :class:`Array`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2448 +msgid "" +"A positive integer specifying the number of elements in the array. Out-of-" +"range subscripts result in an :exc:`IndexError`. Will be returned by :func:" +"`len`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2455 +msgid "Specifies the type of each element in the array." +msgstr "Spécifie le type de chaque élément de l'*array*." + +#: ../Doc/library/ctypes.rst:2458 +msgid "" +"Array subclass constructors accept positional arguments, used to initialize " +"the elements in order." +msgstr "" + +#: ../Doc/library/ctypes.rst:2464 +msgid "Private, abstract base class for pointers." +msgstr "" + +#: ../Doc/library/ctypes.rst:2466 +msgid "" +"Concrete pointer types are created by calling :func:`POINTER` with the type " +"that will be pointed to; this is done automatically by :func:`pointer`." +msgstr "" + +#: ../Doc/library/ctypes.rst:2470 +msgid "" +"If a pointer points to an array, its elements can be read and written using " +"standard subscript and slice accesses. Pointer objects have no size, so :" +"func:`len` will raise :exc:`TypeError`. Negative subscripts will read from " +"the memory *before* the pointer (as in C), and out-of-range subscripts will " +"probably crash with an access violation (if you're lucky)." +msgstr "" + +#: ../Doc/library/ctypes.rst:2480 +msgid "Specifies the type pointed to." +msgstr "" + +#: ../Doc/library/ctypes.rst:2484 +msgid "" +"Returns the object to which to pointer points. Assigning to this attribute " +"changes the pointer to point to the assigned object." +msgstr "" diff --git a/library/curses.ascii.po b/library/curses.ascii.po new file mode 100644 index 000000000..dfd62134d --- /dev/null +++ b/library/curses.ascii.po @@ -0,0 +1,464 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/curses.ascii.rst:2 +msgid ":mod:`curses.ascii` --- Utilities for ASCII characters" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:12 +msgid "" +"The :mod:`curses.ascii` module supplies name constants for ASCII characters " +"and functions to test membership in various ASCII character classes. The " +"constants supplied are names for control characters as follows:" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:17 +msgid "Name" +msgstr "Nom" + +#: ../Doc/library/curses.ascii.rst:17 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/curses.ascii.rst:19 +msgid ":const:`NUL`" +msgstr ":const:`NUL`" + +#: ../Doc/library/curses.ascii.rst:21 +msgid ":const:`SOH`" +msgstr ":const:`SOH`" + +#: ../Doc/library/curses.ascii.rst:21 +msgid "Start of heading, console interrupt" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:23 +msgid ":const:`STX`" +msgstr ":const:`STX`" + +#: ../Doc/library/curses.ascii.rst:23 +msgid "Start of text" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:25 +msgid ":const:`ETX`" +msgstr ":const:`ETX`" + +#: ../Doc/library/curses.ascii.rst:25 +msgid "End of text" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:27 +msgid ":const:`EOT`" +msgstr ":const:`EOT`" + +#: ../Doc/library/curses.ascii.rst:27 +msgid "End of transmission" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:29 +msgid ":const:`ENQ`" +msgstr ":const:`ENQ`" + +#: ../Doc/library/curses.ascii.rst:29 +msgid "Enquiry, goes with :const:`ACK` flow control" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:31 +msgid ":const:`ACK`" +msgstr ":const:`ACK`" + +#: ../Doc/library/curses.ascii.rst:31 +msgid "Acknowledgement" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:33 +msgid ":const:`BEL`" +msgstr ":const:`BEL`" + +#: ../Doc/library/curses.ascii.rst:33 +msgid "Bell" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:35 +msgid ":const:`BS`" +msgstr ":const:`BS`" + +#: ../Doc/library/curses.ascii.rst:35 +msgid "Backspace" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:37 +msgid ":const:`TAB`" +msgstr ":const:`TAB`" + +#: ../Doc/library/curses.ascii.rst:37 +msgid "Tab" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:39 +msgid ":const:`HT`" +msgstr ":const:`HT`" + +#: ../Doc/library/curses.ascii.rst:39 +msgid "Alias for :const:`TAB`: \"Horizontal tab\"" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:41 +msgid ":const:`LF`" +msgstr ":const:`LF`" + +#: ../Doc/library/curses.ascii.rst:41 +msgid "Line feed" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:43 +msgid ":const:`NL`" +msgstr ":const:`NL`" + +#: ../Doc/library/curses.ascii.rst:43 +msgid "Alias for :const:`LF`: \"New line\"" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:45 +msgid ":const:`VT`" +msgstr ":const:`VT`" + +#: ../Doc/library/curses.ascii.rst:45 +msgid "Vertical tab" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:47 +msgid ":const:`FF`" +msgstr ":const:`FF`" + +#: ../Doc/library/curses.ascii.rst:47 +msgid "Form feed" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:49 +msgid ":const:`CR`" +msgstr ":const:`CR`" + +#: ../Doc/library/curses.ascii.rst:49 +msgid "Carriage return" +msgstr "Retour chariot" + +#: ../Doc/library/curses.ascii.rst:51 +msgid ":const:`SO`" +msgstr ":const:`SO`" + +#: ../Doc/library/curses.ascii.rst:51 +msgid "Shift-out, begin alternate character set" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:53 +msgid ":const:`SI`" +msgstr ":const:`SI`" + +#: ../Doc/library/curses.ascii.rst:53 +msgid "Shift-in, resume default character set" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:55 +msgid ":const:`DLE`" +msgstr ":const:`DLE`" + +#: ../Doc/library/curses.ascii.rst:55 +msgid "Data-link escape" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:57 +msgid ":const:`DC1`" +msgstr ":const:`DC1`" + +#: ../Doc/library/curses.ascii.rst:57 +msgid "XON, for flow control" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:59 +msgid ":const:`DC2`" +msgstr ":const:`DC2`" + +#: ../Doc/library/curses.ascii.rst:59 +msgid "Device control 2, block-mode flow control" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:61 +msgid ":const:`DC3`" +msgstr ":const:`DC3`" + +#: ../Doc/library/curses.ascii.rst:61 +msgid "XOFF, for flow control" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:63 +msgid ":const:`DC4`" +msgstr ":const:`DC4`" + +#: ../Doc/library/curses.ascii.rst:63 +msgid "Device control 4" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:65 +msgid ":const:`NAK`" +msgstr ":const:`NAK`" + +#: ../Doc/library/curses.ascii.rst:65 +msgid "Negative acknowledgement" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:67 +msgid ":const:`SYN`" +msgstr ":const:`SYN`" + +#: ../Doc/library/curses.ascii.rst:67 +msgid "Synchronous idle" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:69 +msgid ":const:`ETB`" +msgstr ":const:`ETB`" + +#: ../Doc/library/curses.ascii.rst:69 +msgid "End transmission block" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:71 +msgid ":const:`CAN`" +msgstr ":const:`CAN`" + +#: ../Doc/library/curses.ascii.rst:71 +msgid "Cancel" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:73 +msgid ":const:`EM`" +msgstr ":const:`EM`" + +#: ../Doc/library/curses.ascii.rst:73 +msgid "End of medium" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:75 +msgid ":const:`SUB`" +msgstr ":const:`SUB`" + +#: ../Doc/library/curses.ascii.rst:75 +msgid "Substitute" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:77 +msgid ":const:`ESC`" +msgstr ":const:`ESC`" + +#: ../Doc/library/curses.ascii.rst:77 +msgid "Escape" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:79 +msgid ":const:`FS`" +msgstr ":const:`FS`" + +#: ../Doc/library/curses.ascii.rst:79 +msgid "File separator" +msgstr "Séparateur de fichiers" + +#: ../Doc/library/curses.ascii.rst:81 +msgid ":const:`GS`" +msgstr ":const:`GS`" + +#: ../Doc/library/curses.ascii.rst:81 +msgid "Group separator" +msgstr "Séparateur de groupe" + +#: ../Doc/library/curses.ascii.rst:83 +msgid ":const:`RS`" +msgstr ":const:`RS`" + +#: ../Doc/library/curses.ascii.rst:83 +msgid "Record separator, block-mode terminator" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:85 +msgid ":const:`US`" +msgstr ":const:`US`" + +#: ../Doc/library/curses.ascii.rst:85 +msgid "Unit separator" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:87 +msgid ":const:`SP`" +msgstr ":const:`SP`" + +#: ../Doc/library/curses.ascii.rst:87 +msgid "Space" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:89 +msgid ":const:`DEL`" +msgstr ":const:`DEL`" + +#: ../Doc/library/curses.ascii.rst:89 +msgid "Delete" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:92 +msgid "" +"Note that many of these have little practical significance in modern usage. " +"The mnemonics derive from teleprinter conventions that predate digital " +"computers." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:95 +msgid "" +"The module supplies the following functions, patterned on those in the " +"standard C library:" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:101 +msgid "" +"Checks for an ASCII alphanumeric character; it is equivalent to ``isalpha(c) " +"or isdigit(c)``." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:107 +msgid "" +"Checks for an ASCII alphabetic character; it is equivalent to ``isupper(c) " +"or islower(c)``." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:113 +msgid "Checks for a character value that fits in the 7-bit ASCII set." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:118 +msgid "Checks for an ASCII whitespace character; space or horizontal tab." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:123 +msgid "" +"Checks for an ASCII control character (in the range 0x00 to 0x1f or 0x7f)." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:128 +msgid "" +"Checks for an ASCII decimal digit, ``'0'`` through ``'9'``. This is " +"equivalent to ``c in string.digits``." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:134 +msgid "Checks for ASCII any printable character except space." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:139 +msgid "Checks for an ASCII lower-case character." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:144 +msgid "Checks for any ASCII printable character including space." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:149 +msgid "" +"Checks for any printable ASCII character which is not a space or an " +"alphanumeric character." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:155 +msgid "" +"Checks for ASCII white-space characters; space, line feed, carriage return, " +"form feed, horizontal tab, vertical tab." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:161 +msgid "Checks for an ASCII uppercase letter." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:166 +msgid "" +"Checks for an ASCII hexadecimal digit. This is equivalent to ``c in string." +"hexdigits``." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:172 +msgid "Checks for an ASCII control character (ordinal values 0 to 31)." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:177 +msgid "Checks for a non-ASCII character (ordinal values 0x80 and above)." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:179 +msgid "" +"These functions accept either integers or single-character strings; when the " +"argument is a string, it is first converted using the built-in function :" +"func:`ord`." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:182 +msgid "" +"Note that all these functions check ordinal bit values derived from the " +"character of the string you pass in; they do not actually know anything " +"about the host machine's character encoding." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:186 +msgid "" +"The following two functions take either a single-character string or integer " +"byte value; they return a value of the same type." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:192 +msgid "Return the ASCII value corresponding to the low 7 bits of *c*." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:197 +msgid "" +"Return the control character corresponding to the given character (the " +"character bit value is bitwise-anded with 0x1f)." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:203 +msgid "" +"Return the 8-bit character corresponding to the given ASCII character (the " +"character bit value is bitwise-ored with 0x80)." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:206 +msgid "" +"The following function takes either a single-character string or integer " +"value; it returns a string." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:216 +msgid "" +"Return a string representation of the ASCII character *c*. If *c* is " +"printable, this string is the character itself. If the character is a " +"control character (0x00--0x1f) the string consists of a caret (``'^'``) " +"followed by the corresponding uppercase letter. If the character is an ASCII " +"delete (0x7f) the string is ``'^?'``. If the character has its meta bit " +"(0x80) set, the meta bit is stripped, the preceding rules applied, and " +"``'!'`` prepended to the result." +msgstr "" + +#: ../Doc/library/curses.ascii.rst:226 +msgid "" +"A 33-element string array that contains the ASCII mnemonics for the thirty-" +"two ASCII control characters from 0 (NUL) to 0x1f (US), in order, plus the " +"mnemonic ``SP`` for the space character." +msgstr "" diff --git a/library/curses.panel.po b/library/curses.panel.po new file mode 100644 index 000000000..3becdf1cb --- /dev/null +++ b/library/curses.panel.po @@ -0,0 +1,126 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-01 07:43+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/curses.panel.rst:2 +msgid ":mod:`curses.panel` --- A panel stack extension for curses" +msgstr "" + +#: ../Doc/library/curses.panel.rst:11 +msgid "" +"Panels are windows with the added feature of depth, so they can be stacked " +"on top of each other, and only the visible portions of each window will be " +"displayed. Panels can be added, moved up or down in the stack, and removed." +msgstr "" + +#: ../Doc/library/curses.panel.rst:19 +msgid "Functions" +msgstr "Fonctions" + +#: ../Doc/library/curses.panel.rst:21 +msgid "The module :mod:`curses.panel` defines the following functions:" +msgstr "" + +#: ../Doc/library/curses.panel.rst:26 +msgid "Returns the bottom panel in the panel stack." +msgstr "" + +#: ../Doc/library/curses.panel.rst:31 +msgid "" +"Returns a panel object, associating it with the given window *win*. Be aware " +"that you need to keep the returned panel object referenced explicitly. If " +"you don't, the panel object is garbage collected and removed from the panel " +"stack." +msgstr "" + +#: ../Doc/library/curses.panel.rst:38 +msgid "Returns the top panel in the panel stack." +msgstr "" + +#: ../Doc/library/curses.panel.rst:43 +msgid "" +"Updates the virtual screen after changes in the panel stack. This does not " +"call :func:`curses.doupdate`, so you'll have to do this yourself." +msgstr "" + +#: ../Doc/library/curses.panel.rst:50 +msgid "Panel Objects" +msgstr "" + +#: ../Doc/library/curses.panel.rst:52 +msgid "" +"Panel objects, as returned by :func:`new_panel` above, are windows with a " +"stacking order. There's always a window associated with a panel which " +"determines the content, while the panel methods are responsible for the " +"window's depth in the panel stack." +msgstr "" + +#: ../Doc/library/curses.panel.rst:57 +msgid "Panel objects have the following methods:" +msgstr "" + +#: ../Doc/library/curses.panel.rst:62 +msgid "Returns the panel above the current panel." +msgstr "" + +#: ../Doc/library/curses.panel.rst:67 +msgid "Returns the panel below the current panel." +msgstr "" + +#: ../Doc/library/curses.panel.rst:72 +msgid "Push the panel to the bottom of the stack." +msgstr "" + +#: ../Doc/library/curses.panel.rst:77 +msgid "" +"Returns ``True`` if the panel is hidden (not visible), ``False`` otherwise." +msgstr "" + +#: ../Doc/library/curses.panel.rst:82 +msgid "" +"Hide the panel. This does not delete the object, it just makes the window on " +"screen invisible." +msgstr "" + +#: ../Doc/library/curses.panel.rst:88 +msgid "Move the panel to the screen coordinates ``(y, x)``." +msgstr "" + +#: ../Doc/library/curses.panel.rst:93 +msgid "Change the window associated with the panel to the window *win*." +msgstr "" + +#: ../Doc/library/curses.panel.rst:98 +msgid "" +"Set the panel's user pointer to *obj*. This is used to associate an " +"arbitrary piece of data with the panel, and can be any Python object." +msgstr "" + +#: ../Doc/library/curses.panel.rst:104 +msgid "Display the panel (which might have been hidden)." +msgstr "" + +#: ../Doc/library/curses.panel.rst:109 +msgid "Push panel to the top of the stack." +msgstr "" + +#: ../Doc/library/curses.panel.rst:114 +msgid "" +"Returns the user pointer for the panel. This might be any Python object." +msgstr "" + +#: ../Doc/library/curses.panel.rst:119 +msgid "Returns the window object associated with the panel." +msgstr "" diff --git a/library/curses.po b/library/curses.po new file mode 100644 index 000000000..70732c855 --- /dev/null +++ b/library/curses.po @@ -0,0 +1,3122 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-07-04 11:32+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/curses.rst:2 +msgid ":mod:`curses` --- Terminal handling for character-cell displays" +msgstr "" + +#: ../Doc/library/curses.rst:14 +msgid "" +"The :mod:`curses` module provides an interface to the curses library, the de-" +"facto standard for portable advanced terminal handling." +msgstr "" + +#: ../Doc/library/curses.rst:17 +msgid "" +"While curses is most widely used in the Unix environment, versions are " +"available for Windows, DOS, and possibly other systems as well. This " +"extension module is designed to match the API of ncurses, an open-source " +"curses library hosted on Linux and the BSD variants of Unix." +msgstr "" + +#: ../Doc/library/curses.rst:24 +msgid "" +"Whenever the documentation mentions a *character* it can be specified as an " +"integer, a one-character Unicode string or a one-byte byte string." +msgstr "" + +#: ../Doc/library/curses.rst:27 +msgid "" +"Whenever the documentation mentions a *character string* it can be specified " +"as a Unicode string or a byte string." +msgstr "" + +#: ../Doc/library/curses.rst:32 +msgid "" +"Since version 5.4, the ncurses library decides how to interpret non-ASCII " +"data using the ``nl_langinfo`` function. That means that you have to call :" +"func:`locale.setlocale` in the application and encode Unicode strings using " +"one of the system's available encodings. This example uses the system's " +"default encoding::" +msgstr "" + +#: ../Doc/library/curses.rst:42 +msgid "Then use *code* as the encoding for :meth:`str.encode` calls." +msgstr "" + +#: ../Doc/library/curses.rst:47 +msgid "Module :mod:`curses.ascii`" +msgstr "Module :mod:`curses.ascii`" + +#: ../Doc/library/curses.rst:47 +msgid "" +"Utilities for working with ASCII characters, regardless of your locale " +"settings." +msgstr "" + +#: ../Doc/library/curses.rst:50 +msgid "Module :mod:`curses.panel`" +msgstr "Module :mod:`curses.panel`" + +#: ../Doc/library/curses.rst:50 +msgid "A panel stack extension that adds depth to curses windows." +msgstr "" + +#: ../Doc/library/curses.rst:53 +msgid "Module :mod:`curses.textpad`" +msgstr "Module :mod:`curses.textpad`" + +#: ../Doc/library/curses.rst:53 +msgid "" +"Editable text widget for curses supporting :program:`Emacs`\\ -like " +"bindings." +msgstr "" + +#: ../Doc/library/curses.rst:57 +msgid ":ref:`curses-howto`" +msgstr ":ref:`curses-howto`" + +#: ../Doc/library/curses.rst:56 +msgid "" +"Tutorial material on using curses with Python, by Andrew Kuchling and Eric " +"Raymond." +msgstr "" + +#: ../Doc/library/curses.rst:59 +msgid "" +"The :source:`Tools/demo/` directory in the Python source distribution " +"contains some example programs using the curses bindings provided by this " +"module." +msgstr "" + +#: ../Doc/library/curses.rst:66 +msgid "Functions" +msgstr "Fonctions" + +#: ../Doc/library/curses.rst:68 +msgid "The module :mod:`curses` defines the following exception:" +msgstr "" + +#: ../Doc/library/curses.rst:73 +msgid "Exception raised when a curses library function returns an error." +msgstr "" + +#: ../Doc/library/curses.rst:77 +msgid "" +"Whenever *x* or *y* arguments to a function or a method are optional, they " +"default to the current cursor location. Whenever *attr* is optional, it " +"defaults to :const:`A_NORMAL`." +msgstr "" + +#: ../Doc/library/curses.rst:81 +msgid "The module :mod:`curses` defines the following functions:" +msgstr "" + +#: ../Doc/library/curses.rst:86 +msgid "" +"Return the output speed of the terminal in bits per second. On software " +"terminal emulators it will have a fixed high value. Included for historical " +"reasons; in former times, it was used to write output loops for time delays " +"and occasionally to change interfaces depending on the line speed." +msgstr "" + +#: ../Doc/library/curses.rst:94 +msgid "Emit a short attention sound." +msgstr "" + +#: ../Doc/library/curses.rst:99 +msgid "" +"Return ``True`` or ``False``, depending on whether the programmer can change " +"the colors displayed by the terminal." +msgstr "" + +#: ../Doc/library/curses.rst:105 +msgid "" +"Enter cbreak mode. In cbreak mode (sometimes called \"rare\" mode) normal " +"tty line buffering is turned off and characters are available to be read one " +"by one. However, unlike raw mode, special characters (interrupt, quit, " +"suspend, and flow control) retain their effects on the tty driver and " +"calling program. Calling first :func:`raw` then :func:`cbreak` leaves the " +"terminal in cbreak mode." +msgstr "" + +#: ../Doc/library/curses.rst:114 +msgid "" +"Return the intensity of the red, green, and blue (RGB) components in the " +"color *color_number*, which must be between ``0`` and :const:`COLORS`. " +"Return a 3-tuple, containing the R,G,B values for the given color, which " +"will be between ``0`` (no component) and ``1000`` (maximum amount of " +"component)." +msgstr "" + +#: ../Doc/library/curses.rst:122 +msgid "" +"Return the attribute value for displaying text in the specified color. This " +"attribute value can be combined with :const:`A_STANDOUT`, :const:" +"`A_REVERSE`, and the other :const:`A_\\*` attributes. :func:`pair_number` " +"is the counterpart to this function." +msgstr "" + +#: ../Doc/library/curses.rst:130 +msgid "" +"Set the cursor state. *visibility* can be set to ``0``, ``1``, or ``2``, " +"for invisible, normal, or very visible. If the terminal supports the " +"visibility requested, return the previous cursor state; otherwise raise an " +"exception. On many terminals, the \"visible\" mode is an underline cursor " +"and the \"very visible\" mode is a block cursor." +msgstr "" + +#: ../Doc/library/curses.rst:139 +msgid "" +"Save the current terminal mode as the \"program\" mode, the mode when the " +"running program is using curses. (Its counterpart is the \"shell\" mode, " +"for when the program is not in curses.) Subsequent calls to :func:" +"`reset_prog_mode` will restore this mode." +msgstr "" + +#: ../Doc/library/curses.rst:147 +msgid "" +"Save the current terminal mode as the \"shell\" mode, the mode when the " +"running program is not using curses. (Its counterpart is the \"program\" " +"mode, when the program is using curses capabilities.) Subsequent calls to :" +"func:`reset_shell_mode` will restore this mode." +msgstr "" + +#: ../Doc/library/curses.rst:155 +msgid "Insert an *ms* millisecond pause in output." +msgstr "" + +#: ../Doc/library/curses.rst:160 +msgid "" +"Update the physical screen. The curses library keeps two data structures, " +"one representing the current physical screen contents and a virtual screen " +"representing the desired next state. The :func:`doupdate` ground updates " +"the physical screen to match the virtual screen." +msgstr "" + +#: ../Doc/library/curses.rst:165 +msgid "" +"The virtual screen may be updated by a :meth:`~window.noutrefresh` call " +"after write operations such as :meth:`~window.addstr` have been performed on " +"a window. The normal :meth:`~window.refresh` call is simply :meth:`!" +"noutrefresh` followed by :func:`!doupdate`; if you have to update multiple " +"windows, you can speed performance and perhaps reduce screen flicker by " +"issuing :meth:`!noutrefresh` calls on all windows, followed by a single :" +"func:`!doupdate`." +msgstr "" + +#: ../Doc/library/curses.rst:175 +msgid "" +"Enter echo mode. In echo mode, each character input is echoed to the screen " +"as it is entered." +msgstr "" + +#: ../Doc/library/curses.rst:181 +msgid "De-initialize the library, and return terminal to normal status." +msgstr "" + +#: ../Doc/library/curses.rst:186 +msgid "" +"Return the user's current erase character as a one-byte bytes object. Under " +"Unix operating systems this is a property of the controlling tty of the " +"curses program, and is not set by the curses library itself." +msgstr "" + +#: ../Doc/library/curses.rst:193 +msgid "" +"The :func:`.filter` routine, if used, must be called before :func:`initscr` " +"is called. The effect is that, during those calls, :envvar:`LINES` is set " +"to ``1``; the capabilities ``clear``, ``cup``, ``cud``, ``cud1``, ``cuu1``, " +"``cuu``, ``vpa`` are disabled; and the ``home`` string is set to the value " +"of ``cr``. The effect is that the cursor is confined to the current line, " +"and so are screen updates. This may be used for enabling character-at-a-" +"time line editing without touching the rest of the screen." +msgstr "" + +#: ../Doc/library/curses.rst:203 +msgid "" +"Flash the screen. That is, change it to reverse-video and then change it " +"back in a short interval. Some people prefer such as 'visible bell' to the " +"audible attention signal produced by :func:`beep`." +msgstr "" + +#: ../Doc/library/curses.rst:210 +msgid "" +"Flush all input buffers. This throws away any typeahead that has been " +"typed by the user and has not yet been processed by the program." +msgstr "" + +#: ../Doc/library/curses.rst:216 +msgid "" +"After :meth:`~window.getch` returns :const:`KEY_MOUSE` to signal a mouse " +"event, this method should be call to retrieve the queued mouse event, " +"represented as a 5-tuple ``(id, x, y, z, bstate)``. *id* is an ID value used " +"to distinguish multiple devices, and *x*, *y*, *z* are the event's " +"coordinates. (*z* is currently unused.) *bstate* is an integer value whose " +"bits will be set to indicate the type of event, and will be the bitwise OR " +"of one or more of the following constants, where *n* is the button number " +"from 1 to 4: :const:`BUTTONn_PRESSED`, :const:`BUTTONn_RELEASED`, :const:" +"`BUTTONn_CLICKED`, :const:`BUTTONn_DOUBLE_CLICKED`, :const:" +"`BUTTONn_TRIPLE_CLICKED`, :const:`BUTTON_SHIFT`, :const:`BUTTON_CTRL`, :" +"const:`BUTTON_ALT`." +msgstr "" + +#: ../Doc/library/curses.rst:230 +msgid "" +"Return the current coordinates of the virtual screen cursor as a tuple ``(y, " +"x)``. If :meth:`leaveok ` is currently ``True``, then " +"return ``(-1, -1)``." +msgstr "" + +#: ../Doc/library/curses.rst:236 +msgid "" +"Read window related data stored in the file by an earlier :func:`putwin` " +"call. The routine then creates and initializes a new window using that data, " +"returning the new window object." +msgstr "" + +#: ../Doc/library/curses.rst:243 +msgid "" +"Return ``True`` if the terminal can display colors; otherwise, return " +"``False``." +msgstr "" + +#: ../Doc/library/curses.rst:248 +msgid "" +"Return ``True`` if the terminal has insert- and delete-character " +"capabilities. This function is included for historical reasons only, as all " +"modern software terminal emulators have such capabilities." +msgstr "" + +#: ../Doc/library/curses.rst:255 +msgid "" +"Return ``True`` if the terminal has insert- and delete-line capabilities, or " +"can simulate them using scrolling regions. This function is included for " +"historical reasons only, as all modern software terminal emulators have such " +"capabilities." +msgstr "" + +#: ../Doc/library/curses.rst:263 +msgid "" +"Take a key value *ch*, and return ``True`` if the current terminal type " +"recognizes a key with that value." +msgstr "" + +#: ../Doc/library/curses.rst:269 +msgid "" +"Used for half-delay mode, which is similar to cbreak mode in that characters " +"typed by the user are immediately available to the program. However, after " +"blocking for *tenths* tenths of seconds, raise an exception if nothing has " +"been typed. The value of *tenths* must be a number between ``1`` and " +"``255``. Use :func:`nocbreak` to leave half-delay mode." +msgstr "" + +#: ../Doc/library/curses.rst:278 +msgid "" +"Change the definition of a color, taking the number of the color to be " +"changed followed by three RGB values (for the amounts of red, green, and " +"blue components). The value of *color_number* must be between ``0`` and :" +"const:`COLORS`. Each of *r*, *g*, *b*, must be a value between ``0`` and " +"``1000``. When :func:`init_color` is used, all occurrences of that color on " +"the screen immediately change to the new definition. This function is a no-" +"op on most terminals; it is active only if :func:`can_change_color` returns " +"``True``." +msgstr "" + +#: ../Doc/library/curses.rst:289 +msgid "" +"Change the definition of a color-pair. It takes three arguments: the number " +"of the color-pair to be changed, the foreground color number, and the " +"background color number. The value of *pair_number* must be between ``1`` " +"and ``COLOR_PAIRS - 1`` (the ``0`` color pair is wired to white on black and " +"cannot be changed). The value of *fg* and *bg* arguments must be between " +"``0`` and :const:`COLORS`. If the color-pair was previously initialized, " +"the screen is refreshed and all occurrences of that color-pair are changed " +"to the new definition." +msgstr "" + +#: ../Doc/library/curses.rst:301 +msgid "" +"Initialize the library. Return a :ref:`window ` " +"object which represents the whole screen." +msgstr "" + +#: ../Doc/library/curses.rst:306 +msgid "" +"If there is an error opening the terminal, the underlying curses library may " +"cause the interpreter to exit." +msgstr "" + +#: ../Doc/library/curses.rst:312 +msgid "" +"Return ``True`` if :func:`resize_term` would modify the window structure, " +"``False`` otherwise." +msgstr "" + +#: ../Doc/library/curses.rst:318 +msgid "" +"Return ``True`` if :func:`endwin` has been called (that is, the curses " +"library has been deinitialized)." +msgstr "" + +#: ../Doc/library/curses.rst:324 +msgid "" +"Return the name of the key numbered *k* as a bytes object. The name of a " +"key generating printable ASCII character is the key's character. The name " +"of a control-key combination is a two-byte bytes object consisting of a " +"caret (``b'^'``) followed by the corresponding printable ASCII character. " +"The name of an alt-key combination (128--255) is a bytes object consisting " +"of the prefix ``b'M-'`` followed by the name of the corresponding ASCII " +"character." +msgstr "" + +#: ../Doc/library/curses.rst:334 +msgid "" +"Return the user's current line kill character as a one-byte bytes object. " +"Under Unix operating systems this is a property of the controlling tty of " +"the curses program, and is not set by the curses library itself." +msgstr "" + +#: ../Doc/library/curses.rst:341 +msgid "" +"Return a bytes object containing the terminfo long name field describing the " +"current terminal. The maximum length of a verbose description is 128 " +"characters. It is defined only after the call to :func:`initscr`." +msgstr "" + +#: ../Doc/library/curses.rst:348 +msgid "" +"If *flag* is ``True``, allow 8-bit characters to be input. If *flag* is " +"``False``, allow only 7-bit chars." +msgstr "" + +#: ../Doc/library/curses.rst:354 +msgid "" +"Set the maximum time in milliseconds that can elapse between press and " +"release events in order for them to be recognized as a click, and return the " +"previous interval value. The default value is 200 msec, or one fifth of a " +"second." +msgstr "" + +#: ../Doc/library/curses.rst:361 +msgid "" +"Set the mouse events to be reported, and return a tuple ``(availmask, " +"oldmask)``. *availmask* indicates which of the specified mouse events can " +"be reported; on complete failure it returns ``0``. *oldmask* is the " +"previous value of the given window's mouse event mask. If this function is " +"never called, no mouse events are ever reported." +msgstr "" + +#: ../Doc/library/curses.rst:370 +msgid "Sleep for *ms* milliseconds." +msgstr "" + +#: ../Doc/library/curses.rst:375 +msgid "" +"Create and return a pointer to a new pad data structure with the given " +"number of lines and columns. Return a pad as a window object." +msgstr "" + +#: ../Doc/library/curses.rst:378 +msgid "" +"A pad is like a window, except that it is not restricted by the screen size, " +"and is not necessarily associated with a particular part of the screen. " +"Pads can be used when a large window is needed, and only a part of the " +"window will be on the screen at one time. Automatic refreshes of pads (such " +"as from scrolling or echoing of input) do not occur. The :meth:`~window." +"refresh` and :meth:`~window.noutrefresh` methods of a pad require 6 " +"arguments to specify the part of the pad to be displayed and the location on " +"the screen to be used for the display. The arguments are *pminrow*, " +"*pmincol*, *sminrow*, *smincol*, *smaxrow*, *smaxcol*; the *p* arguments " +"refer to the upper left corner of the pad region to be displayed and the *s* " +"arguments define a clipping box on the screen within which the pad region is " +"to be displayed." +msgstr "" + +#: ../Doc/library/curses.rst:394 +msgid "" +"Return a new :ref:`window `, whose left-upper corner " +"is at ``(begin_y, begin_x)``, and whose height/width is *nlines*/*ncols*." +msgstr "" + +#: ../Doc/library/curses.rst:397 +msgid "" +"By default, the window will extend from the specified position to the lower " +"right corner of the screen." +msgstr "" + +#: ../Doc/library/curses.rst:403 +msgid "" +"Enter newline mode. This mode translates the return key into newline on " +"input, and translates newline into return and line-feed on output. Newline " +"mode is initially on." +msgstr "" + +#: ../Doc/library/curses.rst:410 +msgid "" +"Leave cbreak mode. Return to normal \"cooked\" mode with line buffering." +msgstr "" + +#: ../Doc/library/curses.rst:415 +msgid "Leave echo mode. Echoing of input characters is turned off." +msgstr "" + +#: ../Doc/library/curses.rst:420 +msgid "" +"Leave newline mode. Disable translation of return into newline on input, " +"and disable low-level translation of newline into newline/return on output " +"(but this does not change the behavior of ``addch('\\n')``, which always " +"does the equivalent of return and line feed on the virtual screen). With " +"translation off, curses can sometimes speed up vertical motion a little; " +"also, it will be able to detect the return key on input." +msgstr "" + +#: ../Doc/library/curses.rst:430 +msgid "" +"When the :func:`!noqiflush` routine is used, normal flush of input and " +"output queues associated with the ``INTR``, ``QUIT`` and ``SUSP`` characters " +"will not be done. You may want to call :func:`!noqiflush` in a signal " +"handler if you want output to continue as though the interrupt had not " +"occurred, after the handler exits." +msgstr "" + +#: ../Doc/library/curses.rst:438 +msgid "Leave raw mode. Return to normal \"cooked\" mode with line buffering." +msgstr "" + +#: ../Doc/library/curses.rst:443 +msgid "" +"Return a tuple ``(fg, bg)`` containing the colors for the requested color " +"pair. The value of *pair_number* must be between ``1`` and ``COLOR_PAIRS - " +"1``." +msgstr "" + +#: ../Doc/library/curses.rst:449 +msgid "" +"Return the number of the color-pair set by the attribute value *attr*. :func:" +"`color_pair` is the counterpart to this function." +msgstr "" + +#: ../Doc/library/curses.rst:455 +msgid "" +"Equivalent to ``tputs(str, 1, putchar)``; emit the value of a specified " +"terminfo capability for the current terminal. Note that the output of :func:" +"`putp` always goes to standard output." +msgstr "" + +#: ../Doc/library/curses.rst:462 +msgid "" +"If *flag* is ``False``, the effect is the same as calling :func:`noqiflush`. " +"If *flag* is ``True``, or no argument is provided, the queues will be " +"flushed when these control characters are read." +msgstr "" + +#: ../Doc/library/curses.rst:469 +msgid "" +"Enter raw mode. In raw mode, normal line buffering and processing of " +"interrupt, quit, suspend, and flow control keys are turned off; characters " +"are presented to curses input functions one by one." +msgstr "" + +#: ../Doc/library/curses.rst:476 +msgid "" +"Restore the terminal to \"program\" mode, as previously saved by :func:" +"`def_prog_mode`." +msgstr "" + +#: ../Doc/library/curses.rst:482 +msgid "" +"Restore the terminal to \"shell\" mode, as previously saved by :func:" +"`def_shell_mode`." +msgstr "" + +#: ../Doc/library/curses.rst:488 +msgid "" +"Restore the state of the terminal modes to what it was at the last call to :" +"func:`savetty`." +msgstr "" + +#: ../Doc/library/curses.rst:494 +msgid "" +"Backend function used by :func:`resizeterm`, performing most of the work; " +"when resizing the windows, :func:`resize_term` blank-fills the areas that " +"are extended. The calling application should fill in these areas with " +"appropriate data. The :func:`!resize_term` function attempts to resize all " +"windows. However, due to the calling convention of pads, it is not possible " +"to resize these without additional interaction with the application." +msgstr "" + +#: ../Doc/library/curses.rst:504 +msgid "" +"Resize the standard and current windows to the specified dimensions, and " +"adjusts other bookkeeping data used by the curses library that record the " +"window dimensions (in particular the SIGWINCH handler)." +msgstr "" + +#: ../Doc/library/curses.rst:511 +msgid "" +"Save the current state of the terminal modes in a buffer, usable by :func:" +"`resetty`." +msgstr "" + +#: ../Doc/library/curses.rst:517 +msgid "" +"Set the virtual screen cursor to *y*, *x*. If *y* and *x* are both ``-1``, " +"then :meth:`leaveok ` is set ``True``." +msgstr "" + +#: ../Doc/library/curses.rst:523 +msgid "" +"Initialize the terminal. *term* is a string giving the terminal name, or " +"``None``; if omitted or ``None``, the value of the :envvar:`TERM` " +"environment variable will be used. *fd* is the file descriptor to which any " +"initialization sequences will be sent; if not supplied or ``-1``, the file " +"descriptor for ``sys.stdout`` will be used." +msgstr "" + +#: ../Doc/library/curses.rst:532 +msgid "" +"Must be called if the programmer wants to use colors, and before any other " +"color manipulation routine is called. It is good practice to call this " +"routine right after :func:`initscr`." +msgstr "" + +#: ../Doc/library/curses.rst:536 +msgid "" +":func:`start_color` initializes eight basic colors (black, red, green, " +"yellow, blue, magenta, cyan, and white), and two global variables in the :" +"mod:`curses` module, :const:`COLORS` and :const:`COLOR_PAIRS`, containing " +"the maximum number of colors and color-pairs the terminal can support. It " +"also restores the colors on the terminal to the values they had when the " +"terminal was just turned on." +msgstr "" + +#: ../Doc/library/curses.rst:545 +msgid "" +"Return a logical OR of all video attributes supported by the terminal. This " +"information is useful when a curses program needs complete control over the " +"appearance of the screen." +msgstr "" + +#: ../Doc/library/curses.rst:552 +msgid "" +"Return the value of the environment variable :envvar:`TERM`, as a bytes " +"object, truncated to 14 characters." +msgstr "" + +#: ../Doc/library/curses.rst:558 +msgid "" +"Return the value of the Boolean capability corresponding to the terminfo " +"capability name *capname* as an integer. Return the value ``-1`` if " +"*capname* is not a Boolean capability, or ``0`` if it is canceled or absent " +"from the terminal description." +msgstr "" + +#: ../Doc/library/curses.rst:566 +msgid "" +"Return the value of the numeric capability corresponding to the terminfo " +"capability name *capname* as an integer. Return the value ``-2`` if " +"*capname* is not a numeric capability, or ``-1`` if it is canceled or absent " +"from the terminal description." +msgstr "" + +#: ../Doc/library/curses.rst:574 +msgid "" +"Return the value of the string capability corresponding to the terminfo " +"capability name *capname* as a bytes object. Return ``None`` if *capname* " +"is not a terminfo \"string capability\", or is canceled or absent from the " +"terminal description." +msgstr "" + +#: ../Doc/library/curses.rst:582 +msgid "" +"Instantiate the bytes object *str* with the supplied parameters, where *str* " +"should be a parameterized string obtained from the terminfo database. E.g. " +"``tparm(tigetstr(\"cup\"), 5, 3)`` could result in ``b'\\033[6;4H'``, the " +"exact result depending on terminal type." +msgstr "" + +#: ../Doc/library/curses.rst:590 +msgid "" +"Specify that the file descriptor *fd* be used for typeahead checking. If " +"*fd* is ``-1``, then no typeahead checking is done." +msgstr "" + +#: ../Doc/library/curses.rst:593 +msgid "" +"The curses library does \"line-breakout optimization\" by looking for " +"typeahead periodically while updating the screen. If input is found, and it " +"is coming from a tty, the current update is postponed until refresh or " +"doupdate is called again, allowing faster response to commands typed in " +"advance. This function allows specifying a different file descriptor for " +"typeahead checking." +msgstr "" + +#: ../Doc/library/curses.rst:602 +msgid "" +"Return a bytes object which is a printable representation of the character " +"*ch*. Control characters are represented as a caret followed by the " +"character, for example as ``b'^C'``. Printing characters are left as they " +"are." +msgstr "" + +#: ../Doc/library/curses.rst:609 +msgid "Push *ch* so the next :meth:`~window.getch` will return it." +msgstr "" + +#: ../Doc/library/curses.rst:613 +msgid "Only one *ch* can be pushed before :meth:`!getch` is called." +msgstr "" + +#: ../Doc/library/curses.rst:618 +msgid "" +"Update :envvar:`LINES` and :envvar:`COLS`. Useful for detecting manual " +"screen resize." +msgstr "" + +#: ../Doc/library/curses.rst:625 +msgid "Push *ch* so the next :meth:`~window.get_wch` will return it." +msgstr "" + +#: ../Doc/library/curses.rst:629 +msgid "Only one *ch* can be pushed before :meth:`!get_wch` is called." +msgstr "" + +#: ../Doc/library/curses.rst:636 +msgid "" +"Push a :const:`KEY_MOUSE` event onto the input queue, associating the given " +"state data with it." +msgstr "" + +#: ../Doc/library/curses.rst:642 +msgid "" +"If used, this function should be called before :func:`initscr` or newterm " +"are called. When *flag* is ``False``, the values of lines and columns " +"specified in the terminfo database will be used, even if environment " +"variables :envvar:`LINES` and :envvar:`COLUMNS` (used by default) are set, " +"or if curses is running in a window (in which case default behavior would be " +"to use the window size if :envvar:`LINES` and :envvar:`COLUMNS` are not set)." +msgstr "" + +#: ../Doc/library/curses.rst:652 +msgid "" +"Allow use of default values for colors on terminals supporting this feature. " +"Use this to support transparency in your application. The default color is " +"assigned to the color number ``-1``. After calling this function, " +"``init_pair(x, curses.COLOR_RED, -1)`` initializes, for instance, color pair " +"*x* to a red foreground color on the default background." +msgstr "" + +#: ../Doc/library/curses.rst:661 +msgid "" +"Initialize curses and call another callable object, *func*, which should be " +"the rest of your curses-using application. If the application raises an " +"exception, this function will restore the terminal to a sane state before re-" +"raising the exception and generating a traceback. The callable object " +"*func* is then passed the main window 'stdscr' as its first argument, " +"followed by any other arguments passed to :func:`!wrapper`. Before calling " +"*func*, :func:`!wrapper` turns on cbreak mode, turns off echo, enables the " +"terminal keypad, and initializes colors if the terminal has color support. " +"On exit (whether normally or by exception) it restores cooked mode, turns on " +"echo, and disables the terminal keypad." +msgstr "" + +#: ../Doc/library/curses.rst:675 +msgid "Window Objects" +msgstr "" + +#: ../Doc/library/curses.rst:677 +msgid "" +"Window objects, as returned by :func:`initscr` and :func:`newwin` above, " +"have the following methods and attributes:" +msgstr "" + +#: ../Doc/library/curses.rst:684 +msgid "" +"Paint character *ch* at ``(y, x)`` with attributes *attr*, overwriting any " +"character previously painter at that location. By default, the character " +"position and attributes are the current settings for the window object." +msgstr "" + +#: ../Doc/library/curses.rst:690 +msgid "" +"Writing outside the window, subwindow, or pad raises a :exc:`curses.error`. " +"Attempting to write to the lower right corner of a window, subwindow, or pad " +"will cause an exception to be raised after the character is printed." +msgstr "" + +#: ../Doc/library/curses.rst:698 +msgid "" +"Paint at most *n* characters of the character string *str* at ``(y, x)`` " +"with attributes *attr*, overwriting anything previously on the display." +msgstr "" + +#: ../Doc/library/curses.rst:706 +msgid "" +"Paint the character string *str* at ``(y, x)`` with attributes *attr*, " +"overwriting anything previously on the display." +msgstr "" + +#: ../Doc/library/curses.rst:711 +msgid "" +"Writing outside the window, subwindow, or pad raises :exc:`curses.error`. " +"Attempting to write to the lower right corner of a window, subwindow, or pad " +"will cause an exception to be raised after the string is printed." +msgstr "" + +#: ../Doc/library/curses.rst:718 +msgid "" +"Remove attribute *attr* from the \"background\" set applied to all writes to " +"the current window." +msgstr "" + +#: ../Doc/library/curses.rst:724 +msgid "" +"Add attribute *attr* from the \"background\" set applied to all writes to " +"the current window." +msgstr "" + +#: ../Doc/library/curses.rst:730 +msgid "" +"Set the \"background\" set of attributes to *attr*. This set is initially " +"``0`` (no attributes)." +msgstr "" + +#: ../Doc/library/curses.rst:736 +msgid "" +"Set the background property of the window to the character *ch*, with " +"attributes *attr*. The change is then applied to every character position " +"in that window:" +msgstr "" + +#: ../Doc/library/curses.rst:740 +msgid "" +"The attribute of every character in the window is changed to the new " +"background attribute." +msgstr "" + +#: ../Doc/library/curses.rst:743 +msgid "" +"Wherever the former background character appears, it is changed to the new " +"background character." +msgstr "" + +#: ../Doc/library/curses.rst:749 +msgid "" +"Set the window's background. A window's background consists of a character " +"and any combination of attributes. The attribute part of the background is " +"combined (OR'ed) with all non-blank characters that are written into the " +"window. Both the character and attribute parts of the background are " +"combined with the blank characters. The background becomes a property of " +"the character and moves with the character through any scrolling and insert/" +"delete line/character operations." +msgstr "" + +#: ../Doc/library/curses.rst:759 +msgid "" +"Draw a border around the edges of the window. Each parameter specifies the " +"character to use for a specific part of the border; see the table below for " +"more details." +msgstr "" + +#: ../Doc/library/curses.rst:765 +msgid "" +"A ``0`` value for any parameter will cause the default character to be used " +"for that parameter. Keyword parameters can *not* be used. The defaults are " +"listed in this table:" +msgstr "" + +#: ../Doc/library/curses.rst:770 +msgid "Parameter" +msgstr "Paramètre" + +#: ../Doc/library/curses.rst:770 +msgid "Description" +msgstr "Description" + +#: ../Doc/library/curses.rst:770 +msgid "Default value" +msgstr "Valeur par défaut" + +#: ../Doc/library/curses.rst:772 +msgid "*ls*" +msgstr "*ls*" + +#: ../Doc/library/curses.rst:772 +msgid "Left side" +msgstr "" + +#: ../Doc/library/curses.rst:772 ../Doc/library/curses.rst:774 +msgid ":const:`ACS_VLINE`" +msgstr ":const:`ACS_VLINE`" + +#: ../Doc/library/curses.rst:774 +msgid "*rs*" +msgstr "*rs*" + +#: ../Doc/library/curses.rst:774 +msgid "Right side" +msgstr "" + +#: ../Doc/library/curses.rst:776 +msgid "*ts*" +msgstr "*ts*" + +#: ../Doc/library/curses.rst:776 +msgid "Top" +msgstr "" + +#: ../Doc/library/curses.rst:776 ../Doc/library/curses.rst:778 +msgid ":const:`ACS_HLINE`" +msgstr ":const:`ACS_HLINE`" + +#: ../Doc/library/curses.rst:778 +msgid "*bs*" +msgstr "*bs*" + +#: ../Doc/library/curses.rst:778 +msgid "Bottom" +msgstr "" + +#: ../Doc/library/curses.rst:780 +msgid "*tl*" +msgstr "*tl*" + +#: ../Doc/library/curses.rst:780 +msgid "Upper-left corner" +msgstr "" + +#: ../Doc/library/curses.rst:780 +msgid ":const:`ACS_ULCORNER`" +msgstr ":const:`ACS_ULCORNER`" + +#: ../Doc/library/curses.rst:782 +msgid "*tr*" +msgstr "" + +#: ../Doc/library/curses.rst:782 +msgid "Upper-right corner" +msgstr "" + +#: ../Doc/library/curses.rst:782 +msgid ":const:`ACS_URCORNER`" +msgstr ":const:`ACS_URCORNER`" + +#: ../Doc/library/curses.rst:784 +msgid "*bl*" +msgstr "" + +#: ../Doc/library/curses.rst:784 +msgid "Bottom-left corner" +msgstr "" + +#: ../Doc/library/curses.rst:784 +msgid ":const:`ACS_LLCORNER`" +msgstr ":const:`ACS_LLCORNER`" + +#: ../Doc/library/curses.rst:786 +msgid "*br*" +msgstr "" + +#: ../Doc/library/curses.rst:786 +msgid "Bottom-right corner" +msgstr "" + +#: ../Doc/library/curses.rst:786 +msgid ":const:`ACS_LRCORNER`" +msgstr ":const:`ACS_LRCORNER`" + +#: ../Doc/library/curses.rst:792 +msgid "" +"Similar to :meth:`border`, but both *ls* and *rs* are *vertch* and both *ts* " +"and *bs* are *horch*. The default corner characters are always used by this " +"function." +msgstr "" + +#: ../Doc/library/curses.rst:801 +msgid "" +"Set the attributes of *num* characters at the current cursor position, or at " +"position ``(y, x)`` if supplied. If *num* is not given or is ``-1``, the " +"attribute will be set on all the characters to the end of the line. This " +"function moves cursor to position ``(y, x)`` if supplied. The changed line " +"will be touched using the :meth:`touchline` method so that the contents will " +"be redisplayed by the next window refresh." +msgstr "" + +#: ../Doc/library/curses.rst:811 +msgid "" +"Like :meth:`erase`, but also cause the whole window to be repainted upon " +"next call to :meth:`refresh`." +msgstr "" + +#: ../Doc/library/curses.rst:817 +msgid "" +"If *flag* is ``True``, the next call to :meth:`refresh` will clear the " +"window completely." +msgstr "" + +#: ../Doc/library/curses.rst:823 +msgid "" +"Erase from cursor to the end of the window: all lines below the cursor are " +"deleted, and then the equivalent of :meth:`clrtoeol` is performed." +msgstr "" + +#: ../Doc/library/curses.rst:829 +msgid "Erase from cursor to the end of the line." +msgstr "" + +#: ../Doc/library/curses.rst:834 +msgid "" +"Update the current cursor position of all the ancestors of the window to " +"reflect the current cursor position of the window." +msgstr "" + +#: ../Doc/library/curses.rst:840 +msgid "Delete any character at ``(y, x)``." +msgstr "" + +#: ../Doc/library/curses.rst:845 +msgid "" +"Delete the line under the cursor. All following lines are moved up by one " +"line." +msgstr "" + +#: ../Doc/library/curses.rst:851 +msgid "" +"An abbreviation for \"derive window\", :meth:`derwin` is the same as " +"calling :meth:`subwin`, except that *begin_y* and *begin_x* are relative to " +"the origin of the window, rather than relative to the entire screen. Return " +"a window object for the derived window." +msgstr "" + +#: ../Doc/library/curses.rst:859 +msgid "" +"Add character *ch* with attribute *attr*, and immediately call :meth:" +"`refresh` on the window." +msgstr "" + +#: ../Doc/library/curses.rst:865 +msgid "" +"Test whether the given pair of screen-relative character-cell coordinates " +"are enclosed by the given window, returning ``True`` or ``False``. It is " +"useful for determining what subset of the screen windows enclose the " +"location of a mouse event." +msgstr "" + +#: ../Doc/library/curses.rst:873 +msgid "" +"Encoding used to encode method arguments (Unicode strings and characters). " +"The encoding attribute is inherited from the parent window when a subwindow " +"is created, for example with :meth:`window.subwin`. By default, the locale " +"encoding is used (see :func:`locale.getpreferredencoding`)." +msgstr "" + +#: ../Doc/library/curses.rst:883 +msgid "Clear the window." +msgstr "" + +#: ../Doc/library/curses.rst:888 +msgid "Return a tuple ``(y, x)`` of co-ordinates of upper-left corner." +msgstr "" + +#: ../Doc/library/curses.rst:893 +msgid "Return the given window's current background character/attribute pair." +msgstr "" + +#: ../Doc/library/curses.rst:898 +msgid "" +"Get a character. Note that the integer returned does *not* have to be in " +"ASCII range: function keys, keypad keys and so on are represented by numbers " +"higher than 255. In no-delay mode, return ``-1`` if there is no input, " +"otherwise wait until a key is pressed." +msgstr "" + +#: ../Doc/library/curses.rst:906 +msgid "" +"Get a wide character. Return a character for most keys, or an integer for " +"function keys, keypad keys, and other special keys. In no-delay mode, raise " +"an exception if there is no input." +msgstr "" + +#: ../Doc/library/curses.rst:915 +msgid "" +"Get a character, returning a string instead of an integer, as :meth:`getch` " +"does. Function keys, keypad keys and other special keys return a multibyte " +"string containing the key name. In no-delay mode, raise an exception if " +"there is no input." +msgstr "" + +#: ../Doc/library/curses.rst:923 +msgid "Return a tuple ``(y, x)`` of the height and width of the window." +msgstr "" + +#: ../Doc/library/curses.rst:928 +msgid "" +"Return the beginning coordinates of this window relative to its parent " +"window as a tuple ``(y, x)``. Return ``(-1, -1)`` if this window has no " +"parent." +msgstr "" + +#: ../Doc/library/curses.rst:938 +msgid "" +"Read a bytes object from the user, with primitive line editing capacity." +msgstr "" + +#: ../Doc/library/curses.rst:943 +msgid "" +"Return a tuple ``(y, x)`` of current cursor position relative to the " +"window's upper-left corner." +msgstr "" + +#: ../Doc/library/curses.rst:950 +msgid "" +"Display a horizontal line starting at ``(y, x)`` with length *n* consisting " +"of the character *ch*." +msgstr "" + +#: ../Doc/library/curses.rst:956 +msgid "" +"If *flag* is ``False``, curses no longer considers using the hardware insert/" +"delete character feature of the terminal; if *flag* is ``True``, use of " +"character insertion and deletion is enabled. When curses is first " +"initialized, use of character insert/delete is enabled by default." +msgstr "" + +#: ../Doc/library/curses.rst:964 +msgid "" +"If *flag* is ``True``, :mod:`curses` will try and use hardware line editing " +"facilities. Otherwise, line insertion/deletion are disabled." +msgstr "" + +#: ../Doc/library/curses.rst:970 +msgid "" +"If *flag* is ``True``, any change in the window image automatically causes " +"the window to be refreshed; you no longer have to call :meth:`refresh` " +"yourself. However, it may degrade performance considerably, due to repeated " +"calls to wrefresh. This option is disabled by default." +msgstr "" + +#: ../Doc/library/curses.rst:978 +msgid "" +"Return the character at the given position in the window. The bottom 8 bits " +"are the character proper, and upper bits are the attributes." +msgstr "" + +#: ../Doc/library/curses.rst:985 +msgid "" +"Paint character *ch* at ``(y, x)`` with attributes *attr*, moving the line " +"from position *x* right by one character." +msgstr "" + +#: ../Doc/library/curses.rst:991 +msgid "" +"Insert *nlines* lines into the specified window above the current line. The " +"*nlines* bottom lines are lost. For negative *nlines*, delete *nlines* " +"lines starting with the one under the cursor, and move the remaining lines " +"up. The bottom *nlines* lines are cleared. The current cursor position " +"remains the same." +msgstr "" + +#: ../Doc/library/curses.rst:1000 +msgid "" +"Insert a blank line under the cursor. All following lines are moved down by " +"one line." +msgstr "" + +#: ../Doc/library/curses.rst:1007 +msgid "" +"Insert a character string (as many characters as will fit on the line) " +"before the character under the cursor, up to *n* characters. If *n* is " +"zero or negative, the entire string is inserted. All characters to the right " +"of the cursor are shifted right, with the rightmost characters on the line " +"being lost. The cursor position does not change (after moving to *y*, *x*, " +"if specified)." +msgstr "" + +#: ../Doc/library/curses.rst:1017 +msgid "" +"Insert a character string (as many characters as will fit on the line) " +"before the character under the cursor. All characters to the right of the " +"cursor are shifted right, with the rightmost characters on the line being " +"lost. The cursor position does not change (after moving to *y*, *x*, if " +"specified)." +msgstr "" + +#: ../Doc/library/curses.rst:1026 +msgid "" +"Return a bytes object of characters, extracted from the window starting at " +"the current cursor position, or at *y*, *x* if specified. Attributes are " +"stripped from the characters. If *n* is specified, :meth:`instr` returns a " +"string at most *n* characters long (exclusive of the trailing NUL)." +msgstr "" + +#: ../Doc/library/curses.rst:1034 +msgid "" +"Return ``True`` if the specified line was modified since the last call to :" +"meth:`refresh`; otherwise return ``False``. Raise a :exc:`curses.error` " +"exception if *line* is not valid for the given window." +msgstr "" + +#: ../Doc/library/curses.rst:1041 +msgid "" +"Return ``True`` if the specified window was modified since the last call to :" +"meth:`refresh`; otherwise return ``False``." +msgstr "" + +#: ../Doc/library/curses.rst:1047 +msgid "" +"If *flag* is ``True``, escape sequences generated by some keys (keypad, " +"function keys) will be interpreted by :mod:`curses`. If *flag* is ``False``, " +"escape sequences will be left as is in the input stream." +msgstr "" + +#: ../Doc/library/curses.rst:1054 +msgid "" +"If *flag* is ``True``, cursor is left where it is on update, instead of " +"being at \"cursor position.\" This reduces cursor movement where possible. " +"If possible the cursor will be made invisible." +msgstr "" + +#: ../Doc/library/curses.rst:1058 +msgid "" +"If *flag* is ``False``, cursor will always be at \"cursor position\" after " +"an update." +msgstr "" + +#: ../Doc/library/curses.rst:1063 +msgid "Move cursor to ``(new_y, new_x)``." +msgstr "" + +#: ../Doc/library/curses.rst:1068 +msgid "" +"Move the window inside its parent window. The screen-relative parameters of " +"the window are not changed. This routine is used to display different parts " +"of the parent window at the same physical position on the screen." +msgstr "" + +#: ../Doc/library/curses.rst:1075 +msgid "Move the window so its upper-left corner is at ``(new_y, new_x)``." +msgstr "" + +#: ../Doc/library/curses.rst:1080 +msgid "If *flag* is ``True``, :meth:`getch` will be non-blocking." +msgstr "" + +#: ../Doc/library/curses.rst:1085 +msgid "If *flag* is ``True``, escape sequences will not be timed out." +msgstr "" + +#: ../Doc/library/curses.rst:1087 +msgid "" +"If *flag* is ``False``, after a few milliseconds, an escape sequence will " +"not be interpreted, and will be left in the input stream as is." +msgstr "" + +#: ../Doc/library/curses.rst:1093 +msgid "" +"Mark for refresh but wait. This function updates the data structure " +"representing the desired state of the window, but does not force an update " +"of the physical screen. To accomplish that, call :func:`doupdate`." +msgstr "" + +#: ../Doc/library/curses.rst:1100 +msgid "" +"Overlay the window on top of *destwin*. The windows need not be the same " +"size, only the overlapping region is copied. This copy is non-destructive, " +"which means that the current background character does not overwrite the old " +"contents of *destwin*." +msgstr "" + +#: ../Doc/library/curses.rst:1105 +msgid "" +"To get fine-grained control over the copied region, the second form of :meth:" +"`overlay` can be used. *sminrow* and *smincol* are the upper-left " +"coordinates of the source window, and the other variables mark a rectangle " +"in the destination window." +msgstr "" + +#: ../Doc/library/curses.rst:1113 +msgid "" +"Overwrite the window on top of *destwin*. The windows need not be the same " +"size, in which case only the overlapping region is copied. This copy is " +"destructive, which means that the current background character overwrites " +"the old contents of *destwin*." +msgstr "" + +#: ../Doc/library/curses.rst:1118 +msgid "" +"To get fine-grained control over the copied region, the second form of :meth:" +"`overwrite` can be used. *sminrow* and *smincol* are the upper-left " +"coordinates of the source window, the other variables mark a rectangle in " +"the destination window." +msgstr "" + +#: ../Doc/library/curses.rst:1126 +msgid "" +"Write all data associated with the window into the provided file object. " +"This information can be later retrieved using the :func:`getwin` function." +msgstr "" + +#: ../Doc/library/curses.rst:1132 +msgid "" +"Indicate that the *num* screen lines, starting at line *beg*, are corrupted " +"and should be completely redrawn on the next :meth:`refresh` call." +msgstr "" + +#: ../Doc/library/curses.rst:1138 +msgid "" +"Touch the entire window, causing it to be completely redrawn on the next :" +"meth:`refresh` call." +msgstr "" + +#: ../Doc/library/curses.rst:1144 +msgid "" +"Update the display immediately (sync actual screen with previous drawing/" +"deleting methods)." +msgstr "" + +#: ../Doc/library/curses.rst:1147 +msgid "" +"The 6 optional arguments can only be specified when the window is a pad " +"created with :func:`newpad`. The additional parameters are needed to " +"indicate what part of the pad and screen are involved. *pminrow* and " +"*pmincol* specify the upper left-hand corner of the rectangle to be " +"displayed in the pad. *sminrow*, *smincol*, *smaxrow*, and *smaxcol* " +"specify the edges of the rectangle to be displayed on the screen. The lower " +"right-hand corner of the rectangle to be displayed in the pad is calculated " +"from the screen coordinates, since the rectangles must be the same size. " +"Both rectangles must be entirely contained within their respective " +"structures. Negative values of *pminrow*, *pmincol*, *sminrow*, or " +"*smincol* are treated as if they were zero." +msgstr "" + +#: ../Doc/library/curses.rst:1161 +msgid "" +"Reallocate storage for a curses window to adjust its dimensions to the " +"specified values. If either dimension is larger than the current values, " +"the window's data is filled with blanks that have the current background " +"rendition (as set by :meth:`bkgdset`) merged into them." +msgstr "" + +#: ../Doc/library/curses.rst:1169 +msgid "Scroll the screen or scrolling region upward by *lines* lines." +msgstr "" + +#: ../Doc/library/curses.rst:1174 +msgid "" +"Control what happens when the cursor of a window is moved off the edge of " +"the window or scrolling region, either as a result of a newline action on " +"the bottom line, or typing the last character of the last line. If *flag* " +"is ``False``, the cursor is left on the bottom line. If *flag* is ``True``, " +"the window is scrolled up one line. Note that in order to get the physical " +"scrolling effect on the terminal, it is also necessary to call :meth:`idlok`." +msgstr "" + +#: ../Doc/library/curses.rst:1184 +msgid "" +"Set the scrolling region from line *top* to line *bottom*. All scrolling " +"actions will take place in this region." +msgstr "" + +#: ../Doc/library/curses.rst:1190 +msgid "" +"Turn off the standout attribute. On some terminals this has the side effect " +"of turning off all attributes." +msgstr "" + +#: ../Doc/library/curses.rst:1196 +msgid "Turn on attribute *A_STANDOUT*." +msgstr "" + +#: ../Doc/library/curses.rst:1202 ../Doc/library/curses.rst:1209 +msgid "" +"Return a sub-window, whose upper-left corner is at ``(begin_y, begin_x)``, " +"and whose width/height is *ncols*/*nlines*." +msgstr "" + +#: ../Doc/library/curses.rst:1212 +msgid "" +"By default, the sub-window will extend from the specified position to the " +"lower right corner of the window." +msgstr "" + +#: ../Doc/library/curses.rst:1218 +msgid "" +"Touch each location in the window that has been touched in any of its " +"ancestor windows. This routine is called by :meth:`refresh`, so it should " +"almost never be necessary to call it manually." +msgstr "" + +#: ../Doc/library/curses.rst:1225 +msgid "" +"If *flag* is ``True``, then :meth:`syncup` is called automatically whenever " +"there is a change in the window." +msgstr "" + +#: ../Doc/library/curses.rst:1231 +msgid "" +"Touch all locations in ancestors of the window that have been changed in " +"the window." +msgstr "" + +#: ../Doc/library/curses.rst:1237 +msgid "" +"Set blocking or non-blocking read behavior for the window. If *delay* is " +"negative, blocking read is used (which will wait indefinitely for input). " +"If *delay* is zero, then non-blocking read is used, and :meth:`getch` will " +"return ``-1`` if no input is waiting. If *delay* is positive, then :meth:" +"`getch` will block for *delay* milliseconds, and return ``-1`` if there is " +"still no input at the end of that time." +msgstr "" + +#: ../Doc/library/curses.rst:1247 +msgid "" +"Pretend *count* lines have been changed, starting with line *start*. If " +"*changed* is supplied, it specifies whether the affected lines are marked as " +"having been changed (*changed*\\ ``=True``) or unchanged (*changed*\\ " +"``=False``)." +msgstr "" + +#: ../Doc/library/curses.rst:1254 +msgid "" +"Pretend the whole window has been changed, for purposes of drawing " +"optimizations." +msgstr "" + +#: ../Doc/library/curses.rst:1260 +msgid "" +"Mark all lines in the window as unchanged since the last call to :meth:" +"`refresh`." +msgstr "" + +#: ../Doc/library/curses.rst:1267 +msgid "" +"Display a vertical line starting at ``(y, x)`` with length *n* consisting of " +"the character *ch*." +msgstr "" + +#: ../Doc/library/curses.rst:1272 +msgid "Constants" +msgstr "Constantes" + +#: ../Doc/library/curses.rst:1274 +msgid "The :mod:`curses` module defines the following data members:" +msgstr "" + +#: ../Doc/library/curses.rst:1279 +msgid "" +"Some curses routines that return an integer, such as :func:`getch`, " +"return :const:`ERR` upon failure." +msgstr "" + +#: ../Doc/library/curses.rst:1285 +msgid "" +"Some curses routines that return an integer, such as :func:`napms`, " +"return :const:`OK` upon success." +msgstr "" + +#: ../Doc/library/curses.rst:1291 +msgid "" +"A bytes object representing the current version of the module. Also " +"available as :const:`__version__`." +msgstr "" + +#: ../Doc/library/curses.rst:1294 +msgid "" +"Some constants are available to specify character cell attributes. The exact " +"constants available are system dependent." +msgstr "" + +#: ../Doc/library/curses.rst:1298 +msgid "Attribute" +msgstr "Attribut" + +#: ../Doc/library/curses.rst:1298 ../Doc/library/curses.rst:1346 +#: ../Doc/library/curses.rst:1590 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/curses.rst:1300 +msgid "``A_ALTCHARSET``" +msgstr "``A_ALTCHARSET``" + +#: ../Doc/library/curses.rst:1300 +msgid "Alternate character set mode" +msgstr "" + +#: ../Doc/library/curses.rst:1302 +msgid "``A_BLINK``" +msgstr "``A_BLINK``" + +#: ../Doc/library/curses.rst:1302 +msgid "Blink mode" +msgstr "" + +#: ../Doc/library/curses.rst:1304 +msgid "``A_BOLD``" +msgstr "``A_BOLD``" + +#: ../Doc/library/curses.rst:1304 +msgid "Bold mode" +msgstr "" + +#: ../Doc/library/curses.rst:1306 +msgid "``A_DIM``" +msgstr "``A_DIM``" + +#: ../Doc/library/curses.rst:1306 +msgid "Dim mode" +msgstr "" + +#: ../Doc/library/curses.rst:1308 +msgid "``A_INVIS``" +msgstr "``A_INVIS``" + +#: ../Doc/library/curses.rst:1308 +msgid "Invisible or blank mode" +msgstr "" + +#: ../Doc/library/curses.rst:1310 +msgid "``A_ITALIC``" +msgstr "``A_ITALIC``" + +#: ../Doc/library/curses.rst:1310 +msgid "Italic mode" +msgstr "" + +#: ../Doc/library/curses.rst:1312 +msgid "``A_NORMAL``" +msgstr "``A_NORMAL``" + +#: ../Doc/library/curses.rst:1312 +msgid "Normal attribute" +msgstr "Attribut normal" + +#: ../Doc/library/curses.rst:1314 +msgid "``A_PROTECT``" +msgstr "``A_PROTECT``" + +#: ../Doc/library/curses.rst:1314 +msgid "Protected mode" +msgstr "" + +#: ../Doc/library/curses.rst:1316 +msgid "``A_REVERSE``" +msgstr "``A_REVERSE``" + +#: ../Doc/library/curses.rst:1316 +msgid "Reverse background and foreground colors" +msgstr "" + +#: ../Doc/library/curses.rst:1319 +msgid "``A_STANDOUT``" +msgstr "``A_STANDOUT``" + +#: ../Doc/library/curses.rst:1319 +msgid "Standout mode" +msgstr "" + +#: ../Doc/library/curses.rst:1321 +msgid "``A_UNDERLINE``" +msgstr "``A_UNDERLINE``" + +#: ../Doc/library/curses.rst:1321 +msgid "Underline mode" +msgstr "" + +#: ../Doc/library/curses.rst:1323 +msgid "``A_HORIZONTAL``" +msgstr "``A_HORIZONTAL``" + +#: ../Doc/library/curses.rst:1323 +msgid "Horizontal highlight" +msgstr "" + +#: ../Doc/library/curses.rst:1325 +msgid "``A_LEFT``" +msgstr "``A_LEFT``" + +#: ../Doc/library/curses.rst:1325 +msgid "Left highlight" +msgstr "" + +#: ../Doc/library/curses.rst:1327 +msgid "``A_LOW``" +msgstr "``A_LOW``" + +#: ../Doc/library/curses.rst:1327 +msgid "Low highlight" +msgstr "" + +#: ../Doc/library/curses.rst:1329 +msgid "``A_RIGHT``" +msgstr "``A_RIGHT``" + +#: ../Doc/library/curses.rst:1329 +msgid "Right highlight" +msgstr "" + +#: ../Doc/library/curses.rst:1331 +msgid "``A_TOP``" +msgstr "``A_TOP``" + +#: ../Doc/library/curses.rst:1331 +msgid "Top highlight" +msgstr "" + +#: ../Doc/library/curses.rst:1333 +msgid "``A_VERTICAL``" +msgstr "``A_VERTICAL``" + +#: ../Doc/library/curses.rst:1333 +msgid "Vertical highlight" +msgstr "" + +#: ../Doc/library/curses.rst:1335 ../Doc/library/curses.rst:1351 +msgid "``A_CHARTEXT``" +msgstr "``A_CHARTEXT``" + +#: ../Doc/library/curses.rst:1335 ../Doc/library/curses.rst:1351 +msgid "Bit-mask to extract a character" +msgstr "" + +#: ../Doc/library/curses.rst:1339 +msgid "``A_ITALIC`` was added." +msgstr "" + +#: ../Doc/library/curses.rst:1342 +msgid "" +"Several constants are available to extract corresponding attributes returned " +"by some methods." +msgstr "" + +#: ../Doc/library/curses.rst:1346 +msgid "Bit-mask" +msgstr "" + +#: ../Doc/library/curses.rst:1348 +msgid "``A_ATTRIBUTES``" +msgstr "``A_ATTRIBUTES``" + +#: ../Doc/library/curses.rst:1348 +msgid "Bit-mask to extract attributes" +msgstr "" + +#: ../Doc/library/curses.rst:1354 +msgid "``A_COLOR``" +msgstr "``A_COLOR``" + +#: ../Doc/library/curses.rst:1354 +msgid "Bit-mask to extract color-pair field information" +msgstr "" + +#: ../Doc/library/curses.rst:1358 +msgid "" +"Keys are referred to by integer constants with names starting with " +"``KEY_``. The exact keycaps available are system dependent." +msgstr "" + +#: ../Doc/library/curses.rst:1364 +msgid "Key constant" +msgstr "" + +#: ../Doc/library/curses.rst:1364 +msgid "Key" +msgstr "Clé" + +#: ../Doc/library/curses.rst:1366 +msgid "``KEY_MIN``" +msgstr "``KEY_MIN``" + +#: ../Doc/library/curses.rst:1366 +msgid "Minimum key value" +msgstr "" + +#: ../Doc/library/curses.rst:1368 +msgid "``KEY_BREAK``" +msgstr "``KEY_BREAK``" + +#: ../Doc/library/curses.rst:1368 +msgid "Break key (unreliable)" +msgstr "" + +#: ../Doc/library/curses.rst:1370 +msgid "``KEY_DOWN``" +msgstr "``KEY_DOWN``" + +#: ../Doc/library/curses.rst:1370 +msgid "Down-arrow" +msgstr "" + +#: ../Doc/library/curses.rst:1372 +msgid "``KEY_UP``" +msgstr "``KEY_UP``" + +#: ../Doc/library/curses.rst:1372 +msgid "Up-arrow" +msgstr "" + +#: ../Doc/library/curses.rst:1374 +msgid "``KEY_LEFT``" +msgstr "``KEY_LEFT``" + +#: ../Doc/library/curses.rst:1374 +msgid "Left-arrow" +msgstr "" + +#: ../Doc/library/curses.rst:1376 +msgid "``KEY_RIGHT``" +msgstr "``KEY_RIGHT``" + +#: ../Doc/library/curses.rst:1376 +msgid "Right-arrow" +msgstr "" + +#: ../Doc/library/curses.rst:1378 +msgid "``KEY_HOME``" +msgstr "``KEY_HOME``" + +#: ../Doc/library/curses.rst:1378 +msgid "Home key (upward+left arrow)" +msgstr "" + +#: ../Doc/library/curses.rst:1380 +msgid "``KEY_BACKSPACE``" +msgstr "``KEY_BACKSPACE``" + +#: ../Doc/library/curses.rst:1380 +msgid "Backspace (unreliable)" +msgstr "" + +#: ../Doc/library/curses.rst:1382 +msgid "``KEY_F0``" +msgstr "``KEY_F0``" + +#: ../Doc/library/curses.rst:1382 +msgid "Function keys. Up to 64 function keys are supported." +msgstr "" + +#: ../Doc/library/curses.rst:1385 +msgid "``KEY_Fn``" +msgstr "``KEY_Fn``" + +#: ../Doc/library/curses.rst:1385 +msgid "Value of function key *n*" +msgstr "" + +#: ../Doc/library/curses.rst:1387 +msgid "``KEY_DL``" +msgstr "``KEY_DL``" + +#: ../Doc/library/curses.rst:1387 +msgid "Delete line" +msgstr "" + +#: ../Doc/library/curses.rst:1389 +msgid "``KEY_IL``" +msgstr "``KEY_IL``" + +#: ../Doc/library/curses.rst:1389 +msgid "Insert line" +msgstr "" + +#: ../Doc/library/curses.rst:1391 +msgid "``KEY_DC``" +msgstr "``KEY_DC``" + +#: ../Doc/library/curses.rst:1391 +msgid "Delete character" +msgstr "" + +#: ../Doc/library/curses.rst:1393 +msgid "``KEY_IC``" +msgstr "``KEY_IC``" + +#: ../Doc/library/curses.rst:1393 +msgid "Insert char or enter insert mode" +msgstr "" + +#: ../Doc/library/curses.rst:1395 +msgid "``KEY_EIC``" +msgstr "``KEY_EIC``" + +#: ../Doc/library/curses.rst:1395 +msgid "Exit insert char mode" +msgstr "" + +#: ../Doc/library/curses.rst:1397 +msgid "``KEY_CLEAR``" +msgstr "``KEY_CLEAR``" + +#: ../Doc/library/curses.rst:1397 +msgid "Clear screen" +msgstr "" + +#: ../Doc/library/curses.rst:1399 +msgid "``KEY_EOS``" +msgstr "``KEY_EOS``" + +#: ../Doc/library/curses.rst:1399 +msgid "Clear to end of screen" +msgstr "" + +#: ../Doc/library/curses.rst:1401 +msgid "``KEY_EOL``" +msgstr "``KEY_EOL``" + +#: ../Doc/library/curses.rst:1401 +msgid "Clear to end of line" +msgstr "" + +#: ../Doc/library/curses.rst:1403 +msgid "``KEY_SF``" +msgstr "``KEY_SF``" + +#: ../Doc/library/curses.rst:1403 +msgid "Scroll 1 line forward" +msgstr "" + +#: ../Doc/library/curses.rst:1405 +msgid "``KEY_SR``" +msgstr "``KEY_SR``" + +#: ../Doc/library/curses.rst:1405 +msgid "Scroll 1 line backward (reverse)" +msgstr "" + +#: ../Doc/library/curses.rst:1407 +msgid "``KEY_NPAGE``" +msgstr "``KEY_NPAGE``" + +#: ../Doc/library/curses.rst:1407 +msgid "Next page" +msgstr "" + +#: ../Doc/library/curses.rst:1409 +msgid "``KEY_PPAGE``" +msgstr "``KEY_PPAGE``" + +#: ../Doc/library/curses.rst:1409 +msgid "Previous page" +msgstr "" + +#: ../Doc/library/curses.rst:1411 +msgid "``KEY_STAB``" +msgstr "``KEY_STAB``" + +#: ../Doc/library/curses.rst:1411 +msgid "Set tab" +msgstr "" + +#: ../Doc/library/curses.rst:1413 +msgid "``KEY_CTAB``" +msgstr "``KEY_CTAB``" + +#: ../Doc/library/curses.rst:1413 +msgid "Clear tab" +msgstr "" + +#: ../Doc/library/curses.rst:1415 +msgid "``KEY_CATAB``" +msgstr "``KEY_CATAB``" + +#: ../Doc/library/curses.rst:1415 +msgid "Clear all tabs" +msgstr "" + +#: ../Doc/library/curses.rst:1417 +msgid "``KEY_ENTER``" +msgstr "``KEY_ENTER``" + +#: ../Doc/library/curses.rst:1417 +msgid "Enter or send (unreliable)" +msgstr "" + +#: ../Doc/library/curses.rst:1419 +msgid "``KEY_SRESET``" +msgstr "``KEY_SRESET``" + +#: ../Doc/library/curses.rst:1419 +msgid "Soft (partial) reset (unreliable)" +msgstr "" + +#: ../Doc/library/curses.rst:1421 +msgid "``KEY_RESET``" +msgstr "``KEY_RESET``" + +#: ../Doc/library/curses.rst:1421 +msgid "Reset or hard reset (unreliable)" +msgstr "" + +#: ../Doc/library/curses.rst:1423 +msgid "``KEY_PRINT``" +msgstr "``KEY_PRINT``" + +#: ../Doc/library/curses.rst:1423 +msgid "Print" +msgstr "" + +#: ../Doc/library/curses.rst:1425 +msgid "``KEY_LL``" +msgstr "``KEY_LL``" + +#: ../Doc/library/curses.rst:1425 +msgid "Home down or bottom (lower left)" +msgstr "" + +#: ../Doc/library/curses.rst:1427 +msgid "``KEY_A1``" +msgstr "``KEY_A1``" + +#: ../Doc/library/curses.rst:1427 +msgid "Upper left of keypad" +msgstr "" + +#: ../Doc/library/curses.rst:1429 +msgid "``KEY_A3``" +msgstr "``KEY_A3``" + +#: ../Doc/library/curses.rst:1429 +msgid "Upper right of keypad" +msgstr "" + +#: ../Doc/library/curses.rst:1431 +msgid "``KEY_B2``" +msgstr "``KEY_B2``" + +#: ../Doc/library/curses.rst:1431 +msgid "Center of keypad" +msgstr "" + +#: ../Doc/library/curses.rst:1433 +msgid "``KEY_C1``" +msgstr "``KEY_C1``" + +#: ../Doc/library/curses.rst:1433 +msgid "Lower left of keypad" +msgstr "" + +#: ../Doc/library/curses.rst:1435 +msgid "``KEY_C3``" +msgstr "``KEY_C3``" + +#: ../Doc/library/curses.rst:1435 +msgid "Lower right of keypad" +msgstr "" + +#: ../Doc/library/curses.rst:1437 +msgid "``KEY_BTAB``" +msgstr "``KEY_BTAB``" + +#: ../Doc/library/curses.rst:1437 +msgid "Back tab" +msgstr "" + +#: ../Doc/library/curses.rst:1439 +msgid "``KEY_BEG``" +msgstr "``KEY_BEG``" + +#: ../Doc/library/curses.rst:1439 +msgid "Beg (beginning)" +msgstr "" + +#: ../Doc/library/curses.rst:1441 +msgid "``KEY_CANCEL``" +msgstr "``KEY_CANCEL``" + +#: ../Doc/library/curses.rst:1441 +msgid "Cancel" +msgstr "" + +#: ../Doc/library/curses.rst:1443 +msgid "``KEY_CLOSE``" +msgstr "``KEY_CLOSE``" + +#: ../Doc/library/curses.rst:1443 +msgid "Close" +msgstr "*Close*" + +#: ../Doc/library/curses.rst:1445 +msgid "``KEY_COMMAND``" +msgstr "``KEY_COMMAND``" + +#: ../Doc/library/curses.rst:1445 +msgid "Cmd (command)" +msgstr "" + +#: ../Doc/library/curses.rst:1447 +msgid "``KEY_COPY``" +msgstr "``KEY_COPY``" + +#: ../Doc/library/curses.rst:1447 +msgid "Copy" +msgstr "*Copy*" + +#: ../Doc/library/curses.rst:1449 +msgid "``KEY_CREATE``" +msgstr "``KEY_CREATE``" + +#: ../Doc/library/curses.rst:1449 +msgid "Create" +msgstr "" + +#: ../Doc/library/curses.rst:1451 +msgid "``KEY_END``" +msgstr "``KEY_END``" + +#: ../Doc/library/curses.rst:1451 +msgid "End" +msgstr "" + +#: ../Doc/library/curses.rst:1453 +msgid "``KEY_EXIT``" +msgstr "``KEY_EXIT``" + +#: ../Doc/library/curses.rst:1453 +msgid "Exit" +msgstr "*Exit*" + +#: ../Doc/library/curses.rst:1455 +msgid "``KEY_FIND``" +msgstr "``KEY_FIND``" + +#: ../Doc/library/curses.rst:1455 +msgid "Find" +msgstr "" + +#: ../Doc/library/curses.rst:1457 +msgid "``KEY_HELP``" +msgstr "``KEY_HELP``" + +#: ../Doc/library/curses.rst:1457 +msgid "Help" +msgstr "" + +#: ../Doc/library/curses.rst:1459 +msgid "``KEY_MARK``" +msgstr "``KEY_MARK``" + +#: ../Doc/library/curses.rst:1459 +msgid "Mark" +msgstr "" + +#: ../Doc/library/curses.rst:1461 +msgid "``KEY_MESSAGE``" +msgstr "``KEY_MESSAGE``" + +#: ../Doc/library/curses.rst:1461 +msgid "Message" +msgstr "" + +#: ../Doc/library/curses.rst:1463 +msgid "``KEY_MOVE``" +msgstr "``KEY_MOVE``" + +#: ../Doc/library/curses.rst:1463 +msgid "Move" +msgstr "" + +#: ../Doc/library/curses.rst:1465 +msgid "``KEY_NEXT``" +msgstr "``KEY_NEXT``" + +#: ../Doc/library/curses.rst:1465 +msgid "Next" +msgstr "" + +#: ../Doc/library/curses.rst:1467 +msgid "``KEY_OPEN``" +msgstr "``KEY_OPEN``" + +#: ../Doc/library/curses.rst:1467 +msgid "Open" +msgstr "" + +#: ../Doc/library/curses.rst:1469 +msgid "``KEY_OPTIONS``" +msgstr "``KEY_OPTIONS``" + +#: ../Doc/library/curses.rst:1469 +msgid "Options" +msgstr "Options" + +#: ../Doc/library/curses.rst:1471 +msgid "``KEY_PREVIOUS``" +msgstr "``KEY_PREVIOUS``" + +#: ../Doc/library/curses.rst:1471 +msgid "Prev (previous)" +msgstr "" + +#: ../Doc/library/curses.rst:1473 +msgid "``KEY_REDO``" +msgstr "``KEY_REDO``" + +#: ../Doc/library/curses.rst:1473 +msgid "Redo" +msgstr "*Redo*" + +#: ../Doc/library/curses.rst:1475 +msgid "``KEY_REFERENCE``" +msgstr "``KEY_REFERENCE``" + +#: ../Doc/library/curses.rst:1475 +msgid "Ref (reference)" +msgstr "" + +#: ../Doc/library/curses.rst:1477 +msgid "``KEY_REFRESH``" +msgstr "``KEY_REFRESH``" + +#: ../Doc/library/curses.rst:1477 +msgid "Refresh" +msgstr "" + +#: ../Doc/library/curses.rst:1479 +msgid "``KEY_REPLACE``" +msgstr "``KEY_REPLACE``" + +#: ../Doc/library/curses.rst:1479 +msgid "Replace" +msgstr "" + +#: ../Doc/library/curses.rst:1481 +msgid "``KEY_RESTART``" +msgstr "``KEY_RESTART``" + +#: ../Doc/library/curses.rst:1481 +msgid "Restart" +msgstr "" + +#: ../Doc/library/curses.rst:1483 +msgid "``KEY_RESUME``" +msgstr "``KEY_RESUME``" + +#: ../Doc/library/curses.rst:1483 +msgid "Resume" +msgstr "" + +#: ../Doc/library/curses.rst:1485 +msgid "``KEY_SAVE``" +msgstr "``KEY_SAVE``" + +#: ../Doc/library/curses.rst:1485 +msgid "Save" +msgstr "*Save*" + +#: ../Doc/library/curses.rst:1487 +msgid "``KEY_SBEG``" +msgstr "``KEY_SBEG``" + +#: ../Doc/library/curses.rst:1487 +msgid "Shifted Beg (beginning)" +msgstr "" + +#: ../Doc/library/curses.rst:1489 +msgid "``KEY_SCANCEL``" +msgstr "``KEY_SCANCEL``" + +#: ../Doc/library/curses.rst:1489 +msgid "Shifted Cancel" +msgstr "" + +#: ../Doc/library/curses.rst:1491 +msgid "``KEY_SCOMMAND``" +msgstr "``KEY_SCOMMAND``" + +#: ../Doc/library/curses.rst:1491 +msgid "Shifted Command" +msgstr "" + +#: ../Doc/library/curses.rst:1493 +msgid "``KEY_SCOPY``" +msgstr "``KEY_SCOPY``" + +#: ../Doc/library/curses.rst:1493 +msgid "Shifted Copy" +msgstr "" + +#: ../Doc/library/curses.rst:1495 +msgid "``KEY_SCREATE``" +msgstr "``KEY_SCREATE``" + +#: ../Doc/library/curses.rst:1495 +msgid "Shifted Create" +msgstr "" + +#: ../Doc/library/curses.rst:1497 +msgid "``KEY_SDC``" +msgstr "``KEY_SDC``" + +#: ../Doc/library/curses.rst:1497 +msgid "Shifted Delete char" +msgstr "" + +#: ../Doc/library/curses.rst:1499 +msgid "``KEY_SDL``" +msgstr "``KEY_SDL``" + +#: ../Doc/library/curses.rst:1499 +msgid "Shifted Delete line" +msgstr "" + +#: ../Doc/library/curses.rst:1501 +msgid "``KEY_SELECT``" +msgstr "``KEY_SELECT``" + +#: ../Doc/library/curses.rst:1501 +msgid "Select" +msgstr "" + +#: ../Doc/library/curses.rst:1503 +msgid "``KEY_SEND``" +msgstr "``KEY_SEND``" + +#: ../Doc/library/curses.rst:1503 +msgid "Shifted End" +msgstr "" + +#: ../Doc/library/curses.rst:1505 +msgid "``KEY_SEOL``" +msgstr "``KEY_SEOL``" + +#: ../Doc/library/curses.rst:1505 +msgid "Shifted Clear line" +msgstr "" + +#: ../Doc/library/curses.rst:1507 +msgid "``KEY_SEXIT``" +msgstr "``KEY_SEXIT``" + +#: ../Doc/library/curses.rst:1507 +msgid "Shifted Exit" +msgstr "" + +#: ../Doc/library/curses.rst:1509 +msgid "``KEY_SFIND``" +msgstr "``KEY_SFIND``" + +#: ../Doc/library/curses.rst:1509 +msgid "Shifted Find" +msgstr "" + +#: ../Doc/library/curses.rst:1511 +msgid "``KEY_SHELP``" +msgstr "``KEY_SHELP``" + +#: ../Doc/library/curses.rst:1511 +msgid "Shifted Help" +msgstr "" + +#: ../Doc/library/curses.rst:1513 +msgid "``KEY_SHOME``" +msgstr "``KEY_SHOME``" + +#: ../Doc/library/curses.rst:1513 +msgid "Shifted Home" +msgstr "" + +#: ../Doc/library/curses.rst:1515 +msgid "``KEY_SIC``" +msgstr "``KEY_SIC``" + +#: ../Doc/library/curses.rst:1515 +msgid "Shifted Input" +msgstr "" + +#: ../Doc/library/curses.rst:1517 +msgid "``KEY_SLEFT``" +msgstr "``KEY_SLEFT``" + +#: ../Doc/library/curses.rst:1517 +msgid "Shifted Left arrow" +msgstr "" + +#: ../Doc/library/curses.rst:1519 +msgid "``KEY_SMESSAGE``" +msgstr "``KEY_SMESSAGE``" + +#: ../Doc/library/curses.rst:1519 +msgid "Shifted Message" +msgstr "" + +#: ../Doc/library/curses.rst:1521 +msgid "``KEY_SMOVE``" +msgstr "``KEY_SMOVE``" + +#: ../Doc/library/curses.rst:1521 +msgid "Shifted Move" +msgstr "" + +#: ../Doc/library/curses.rst:1523 +msgid "``KEY_SNEXT``" +msgstr "``KEY_SNEXT``" + +#: ../Doc/library/curses.rst:1523 +msgid "Shifted Next" +msgstr "" + +#: ../Doc/library/curses.rst:1525 +msgid "``KEY_SOPTIONS``" +msgstr "``KEY_SOPTIONS``" + +#: ../Doc/library/curses.rst:1525 +msgid "Shifted Options" +msgstr "" + +#: ../Doc/library/curses.rst:1527 +msgid "``KEY_SPREVIOUS``" +msgstr "``KEY_SPREVIOUS``" + +#: ../Doc/library/curses.rst:1527 +msgid "Shifted Prev" +msgstr "" + +#: ../Doc/library/curses.rst:1529 +msgid "``KEY_SPRINT``" +msgstr "``KEY_SPRINT``" + +#: ../Doc/library/curses.rst:1529 +msgid "Shifted Print" +msgstr "" + +#: ../Doc/library/curses.rst:1531 +msgid "``KEY_SREDO``" +msgstr "``KEY_SREDO``" + +#: ../Doc/library/curses.rst:1531 +msgid "Shifted Redo" +msgstr "" + +#: ../Doc/library/curses.rst:1533 +msgid "``KEY_SREPLACE``" +msgstr "``KEY_SREPLACE``" + +#: ../Doc/library/curses.rst:1533 +msgid "Shifted Replace" +msgstr "" + +#: ../Doc/library/curses.rst:1535 +msgid "``KEY_SRIGHT``" +msgstr "``KEY_SRIGHT``" + +#: ../Doc/library/curses.rst:1535 +msgid "Shifted Right arrow" +msgstr "" + +#: ../Doc/library/curses.rst:1537 +msgid "``KEY_SRSUME``" +msgstr "``KEY_SRSUME``" + +#: ../Doc/library/curses.rst:1537 +msgid "Shifted Resume" +msgstr "" + +#: ../Doc/library/curses.rst:1539 +msgid "``KEY_SSAVE``" +msgstr "``KEY_SSAVE``" + +#: ../Doc/library/curses.rst:1539 +msgid "Shifted Save" +msgstr "" + +#: ../Doc/library/curses.rst:1541 +msgid "``KEY_SSUSPEND``" +msgstr "``KEY_SSUSPEND``" + +#: ../Doc/library/curses.rst:1541 +msgid "Shifted Suspend" +msgstr "" + +#: ../Doc/library/curses.rst:1543 +msgid "``KEY_SUNDO``" +msgstr "``KEY_SUNDO``" + +#: ../Doc/library/curses.rst:1543 +msgid "Shifted Undo" +msgstr "" + +#: ../Doc/library/curses.rst:1545 +msgid "``KEY_SUSPEND``" +msgstr "``KEY_SUSPEND``" + +#: ../Doc/library/curses.rst:1545 +msgid "Suspend" +msgstr "" + +#: ../Doc/library/curses.rst:1547 +msgid "``KEY_UNDO``" +msgstr "``KEY_UNDO``" + +#: ../Doc/library/curses.rst:1547 +msgid "Undo" +msgstr "*Undo*" + +#: ../Doc/library/curses.rst:1549 +msgid "``KEY_MOUSE``" +msgstr "``KEY_MOUSE``" + +#: ../Doc/library/curses.rst:1549 +msgid "Mouse event has occurred" +msgstr "" + +#: ../Doc/library/curses.rst:1551 +msgid "``KEY_RESIZE``" +msgstr "``KEY_RESIZE``" + +#: ../Doc/library/curses.rst:1551 +msgid "Terminal resize event" +msgstr "" + +#: ../Doc/library/curses.rst:1553 +msgid "``KEY_MAX``" +msgstr "``KEY_MAX``" + +#: ../Doc/library/curses.rst:1553 +msgid "Maximum key value" +msgstr "" + +#: ../Doc/library/curses.rst:1556 +msgid "" +"On VT100s and their software emulations, such as X terminal emulators, there " +"are normally at least four function keys (:const:`KEY_F1`, :const:`KEY_F2`, :" +"const:`KEY_F3`, :const:`KEY_F4`) available, and the arrow keys mapped to :" +"const:`KEY_UP`, :const:`KEY_DOWN`, :const:`KEY_LEFT` and :const:`KEY_RIGHT` " +"in the obvious way. If your machine has a PC keyboard, it is safe to expect " +"arrow keys and twelve function keys (older PC keyboards may have only ten " +"function keys); also, the following keypad mappings are standard:" +msgstr "" + +#: ../Doc/library/curses.rst:1565 +msgid "Keycap" +msgstr "" + +#: ../Doc/library/curses.rst:1565 ../Doc/library/curses.rst:1682 +#: ../Doc/library/curses.rst:1806 +msgid "Constant" +msgstr "Constante" + +#: ../Doc/library/curses.rst:1567 +msgid ":kbd:`Insert`" +msgstr ":kbd:`Insert`" + +#: ../Doc/library/curses.rst:1567 +msgid "KEY_IC" +msgstr "" + +#: ../Doc/library/curses.rst:1569 +msgid ":kbd:`Delete`" +msgstr ":kbd:`Delete`" + +#: ../Doc/library/curses.rst:1569 +msgid "KEY_DC" +msgstr "" + +#: ../Doc/library/curses.rst:1571 +msgid ":kbd:`Home`" +msgstr ":kbd:`Home`" + +#: ../Doc/library/curses.rst:1571 +msgid "KEY_HOME" +msgstr "KEY_HOME" + +#: ../Doc/library/curses.rst:1573 +msgid ":kbd:`End`" +msgstr ":kbd:`End`" + +#: ../Doc/library/curses.rst:1573 +msgid "KEY_END" +msgstr "KEY_END" + +#: ../Doc/library/curses.rst:1575 +msgid ":kbd:`Page Up`" +msgstr ":kbd:`Page Up`" + +#: ../Doc/library/curses.rst:1575 +msgid "KEY_PPAGE" +msgstr "KEY_PPAGE" + +#: ../Doc/library/curses.rst:1577 +msgid ":kbd:`Page Down`" +msgstr ":kbd:`Page Down`" + +#: ../Doc/library/curses.rst:1577 +msgid "KEY_NPAGE" +msgstr "KEY_NPAGE" + +#: ../Doc/library/curses.rst:1580 +msgid "" +"The following table lists characters from the alternate character set. These " +"are inherited from the VT100 terminal, and will generally be available on " +"software emulations such as X terminals. When there is no graphic " +"available, curses falls back on a crude printable ASCII approximation." +msgstr "" + +#: ../Doc/library/curses.rst:1587 +msgid "These are available only after :func:`initscr` has been called." +msgstr "" + +#: ../Doc/library/curses.rst:1590 +msgid "ACS code" +msgstr "" + +#: ../Doc/library/curses.rst:1592 +msgid "``ACS_BBSS``" +msgstr "``ACS_BBSS``" + +#: ../Doc/library/curses.rst:1592 +msgid "alternate name for upper right corner" +msgstr "" + +#: ../Doc/library/curses.rst:1594 +msgid "``ACS_BLOCK``" +msgstr "``ACS_BLOCK``" + +#: ../Doc/library/curses.rst:1594 +msgid "solid square block" +msgstr "" + +#: ../Doc/library/curses.rst:1596 +msgid "``ACS_BOARD``" +msgstr "``ACS_BOARD``" + +#: ../Doc/library/curses.rst:1596 +msgid "board of squares" +msgstr "" + +#: ../Doc/library/curses.rst:1598 +msgid "``ACS_BSBS``" +msgstr "``ACS_BSBS``" + +#: ../Doc/library/curses.rst:1598 +msgid "alternate name for horizontal line" +msgstr "" + +#: ../Doc/library/curses.rst:1600 +msgid "``ACS_BSSB``" +msgstr "``ACS_BSSB``" + +#: ../Doc/library/curses.rst:1600 +msgid "alternate name for upper left corner" +msgstr "" + +#: ../Doc/library/curses.rst:1602 +msgid "``ACS_BSSS``" +msgstr "``ACS_BSSS``" + +#: ../Doc/library/curses.rst:1602 +msgid "alternate name for top tee" +msgstr "" + +#: ../Doc/library/curses.rst:1604 +msgid "``ACS_BTEE``" +msgstr "``ACS_BTEE``" + +#: ../Doc/library/curses.rst:1604 +msgid "bottom tee" +msgstr "" + +#: ../Doc/library/curses.rst:1606 +msgid "``ACS_BULLET``" +msgstr "``ACS_BULLET``" + +#: ../Doc/library/curses.rst:1606 +msgid "bullet" +msgstr "" + +#: ../Doc/library/curses.rst:1608 +msgid "``ACS_CKBOARD``" +msgstr "``ACS_CKBOARD``" + +#: ../Doc/library/curses.rst:1608 +msgid "checker board (stipple)" +msgstr "" + +#: ../Doc/library/curses.rst:1610 +msgid "``ACS_DARROW``" +msgstr "``ACS_DARROW``" + +#: ../Doc/library/curses.rst:1610 +msgid "arrow pointing down" +msgstr "" + +#: ../Doc/library/curses.rst:1612 +msgid "``ACS_DEGREE``" +msgstr "``ACS_DEGREE``" + +#: ../Doc/library/curses.rst:1612 +msgid "degree symbol" +msgstr "" + +#: ../Doc/library/curses.rst:1614 +msgid "``ACS_DIAMOND``" +msgstr "``ACS_DIAMOND``" + +#: ../Doc/library/curses.rst:1614 +msgid "diamond" +msgstr "" + +#: ../Doc/library/curses.rst:1616 +msgid "``ACS_GEQUAL``" +msgstr "``ACS_GEQUAL``" + +#: ../Doc/library/curses.rst:1616 +msgid "greater-than-or-equal-to" +msgstr "" + +#: ../Doc/library/curses.rst:1618 +msgid "``ACS_HLINE``" +msgstr "``ACS_HLINE``" + +#: ../Doc/library/curses.rst:1618 +msgid "horizontal line" +msgstr "" + +#: ../Doc/library/curses.rst:1620 +msgid "``ACS_LANTERN``" +msgstr "``ACS_LANTERN``" + +#: ../Doc/library/curses.rst:1620 +msgid "lantern symbol" +msgstr "" + +#: ../Doc/library/curses.rst:1622 +msgid "``ACS_LARROW``" +msgstr "``ACS_LARROW``" + +#: ../Doc/library/curses.rst:1622 +msgid "left arrow" +msgstr "" + +#: ../Doc/library/curses.rst:1624 +msgid "``ACS_LEQUAL``" +msgstr "``ACS_LEQUAL``" + +#: ../Doc/library/curses.rst:1624 +msgid "less-than-or-equal-to" +msgstr "" + +#: ../Doc/library/curses.rst:1626 +msgid "``ACS_LLCORNER``" +msgstr "``ACS_LLCORNER``" + +#: ../Doc/library/curses.rst:1626 +msgid "lower left-hand corner" +msgstr "" + +#: ../Doc/library/curses.rst:1628 +msgid "``ACS_LRCORNER``" +msgstr "``ACS_LRCORNER``" + +#: ../Doc/library/curses.rst:1628 +msgid "lower right-hand corner" +msgstr "" + +#: ../Doc/library/curses.rst:1630 +msgid "``ACS_LTEE``" +msgstr "``ACS_LTEE``" + +#: ../Doc/library/curses.rst:1630 +msgid "left tee" +msgstr "" + +#: ../Doc/library/curses.rst:1632 +msgid "``ACS_NEQUAL``" +msgstr "``ACS_NEQUAL``" + +#: ../Doc/library/curses.rst:1632 +msgid "not-equal sign" +msgstr "" + +#: ../Doc/library/curses.rst:1634 +msgid "``ACS_PI``" +msgstr "``ACS_PI``" + +#: ../Doc/library/curses.rst:1634 +msgid "letter pi" +msgstr "" + +#: ../Doc/library/curses.rst:1636 +msgid "``ACS_PLMINUS``" +msgstr "``ACS_PLMINUS``" + +#: ../Doc/library/curses.rst:1636 +msgid "plus-or-minus sign" +msgstr "" + +#: ../Doc/library/curses.rst:1638 +msgid "``ACS_PLUS``" +msgstr "``ACS_PLUS``" + +#: ../Doc/library/curses.rst:1638 +msgid "big plus sign" +msgstr "" + +#: ../Doc/library/curses.rst:1640 +msgid "``ACS_RARROW``" +msgstr "``ACS_RARROW``" + +#: ../Doc/library/curses.rst:1640 +msgid "right arrow" +msgstr "" + +#: ../Doc/library/curses.rst:1642 +msgid "``ACS_RTEE``" +msgstr "``ACS_RTEE``" + +#: ../Doc/library/curses.rst:1642 +msgid "right tee" +msgstr "" + +#: ../Doc/library/curses.rst:1644 +msgid "``ACS_S1``" +msgstr "``ACS_S1``" + +#: ../Doc/library/curses.rst:1644 +msgid "scan line 1" +msgstr "" + +#: ../Doc/library/curses.rst:1646 +msgid "``ACS_S3``" +msgstr "``ACS_S3``" + +#: ../Doc/library/curses.rst:1646 +msgid "scan line 3" +msgstr "" + +#: ../Doc/library/curses.rst:1648 +msgid "``ACS_S7``" +msgstr "``ACS_S7``" + +#: ../Doc/library/curses.rst:1648 +msgid "scan line 7" +msgstr "" + +#: ../Doc/library/curses.rst:1650 +msgid "``ACS_S9``" +msgstr "``ACS_S9``" + +#: ../Doc/library/curses.rst:1650 +msgid "scan line 9" +msgstr "" + +#: ../Doc/library/curses.rst:1652 +msgid "``ACS_SBBS``" +msgstr "``ACS_SBBS``" + +#: ../Doc/library/curses.rst:1652 +msgid "alternate name for lower right corner" +msgstr "" + +#: ../Doc/library/curses.rst:1654 +msgid "``ACS_SBSB``" +msgstr "``ACS_SBSB``" + +#: ../Doc/library/curses.rst:1654 +msgid "alternate name for vertical line" +msgstr "" + +#: ../Doc/library/curses.rst:1656 +msgid "``ACS_SBSS``" +msgstr "``ACS_SBSS``" + +#: ../Doc/library/curses.rst:1656 +msgid "alternate name for right tee" +msgstr "" + +#: ../Doc/library/curses.rst:1658 +msgid "``ACS_SSBB``" +msgstr "``ACS_SSBB``" + +#: ../Doc/library/curses.rst:1658 +msgid "alternate name for lower left corner" +msgstr "" + +#: ../Doc/library/curses.rst:1660 +msgid "``ACS_SSBS``" +msgstr "``ACS_SSBS``" + +#: ../Doc/library/curses.rst:1660 +msgid "alternate name for bottom tee" +msgstr "" + +#: ../Doc/library/curses.rst:1662 +msgid "``ACS_SSSB``" +msgstr "``ACS_SSSB``" + +#: ../Doc/library/curses.rst:1662 +msgid "alternate name for left tee" +msgstr "" + +#: ../Doc/library/curses.rst:1664 +msgid "``ACS_SSSS``" +msgstr "``ACS_SSSS``" + +#: ../Doc/library/curses.rst:1664 +msgid "alternate name for crossover or big plus" +msgstr "" + +#: ../Doc/library/curses.rst:1666 +msgid "``ACS_STERLING``" +msgstr "``ACS_STERLING``" + +#: ../Doc/library/curses.rst:1666 +msgid "pound sterling" +msgstr "" + +#: ../Doc/library/curses.rst:1668 +msgid "``ACS_TTEE``" +msgstr "``ACS_TTEE``" + +#: ../Doc/library/curses.rst:1668 +msgid "top tee" +msgstr "" + +#: ../Doc/library/curses.rst:1670 +msgid "``ACS_UARROW``" +msgstr "``ACS_UARROW``" + +#: ../Doc/library/curses.rst:1670 +msgid "up arrow" +msgstr "" + +#: ../Doc/library/curses.rst:1672 +msgid "``ACS_ULCORNER``" +msgstr "``ACS_ULCORNER``" + +#: ../Doc/library/curses.rst:1672 +msgid "upper left corner" +msgstr "" + +#: ../Doc/library/curses.rst:1674 +msgid "``ACS_URCORNER``" +msgstr "``ACS_URCORNER``" + +#: ../Doc/library/curses.rst:1674 +msgid "upper right corner" +msgstr "" + +#: ../Doc/library/curses.rst:1676 +msgid "``ACS_VLINE``" +msgstr "``ACS_VLINE``" + +#: ../Doc/library/curses.rst:1676 +msgid "vertical line" +msgstr "" + +#: ../Doc/library/curses.rst:1679 +msgid "The following table lists the predefined colors:" +msgstr "" + +#: ../Doc/library/curses.rst:1682 +msgid "Color" +msgstr "" + +#: ../Doc/library/curses.rst:1684 +msgid "``COLOR_BLACK``" +msgstr "``COLOR_BLACK``" + +#: ../Doc/library/curses.rst:1684 +msgid "Black" +msgstr "" + +#: ../Doc/library/curses.rst:1686 +msgid "``COLOR_BLUE``" +msgstr "``COLOR_BLUE``" + +#: ../Doc/library/curses.rst:1686 +msgid "Blue" +msgstr "" + +#: ../Doc/library/curses.rst:1688 +msgid "``COLOR_CYAN``" +msgstr "``COLOR_CYAN``" + +#: ../Doc/library/curses.rst:1688 +msgid "Cyan (light greenish blue)" +msgstr "" + +#: ../Doc/library/curses.rst:1690 +msgid "``COLOR_GREEN``" +msgstr "``COLOR_GREEN``" + +#: ../Doc/library/curses.rst:1690 +msgid "Green" +msgstr "" + +#: ../Doc/library/curses.rst:1692 +msgid "``COLOR_MAGENTA``" +msgstr "``COLOR_MAGENTA``" + +#: ../Doc/library/curses.rst:1692 +msgid "Magenta (purplish red)" +msgstr "" + +#: ../Doc/library/curses.rst:1694 +msgid "``COLOR_RED``" +msgstr "``COLOR_RED``" + +#: ../Doc/library/curses.rst:1694 +msgid "Red" +msgstr "" + +#: ../Doc/library/curses.rst:1696 +msgid "``COLOR_WHITE``" +msgstr "``COLOR_WHITE``" + +#: ../Doc/library/curses.rst:1696 +msgid "White" +msgstr "" + +#: ../Doc/library/curses.rst:1698 +msgid "``COLOR_YELLOW``" +msgstr "``COLOR_YELLOW``" + +#: ../Doc/library/curses.rst:1698 +msgid "Yellow" +msgstr "" + +#: ../Doc/library/curses.rst:1703 +msgid ":mod:`curses.textpad` --- Text input widget for curses programs" +msgstr "" + +#: ../Doc/library/curses.rst:1711 +msgid "" +"The :mod:`curses.textpad` module provides a :class:`Textbox` class that " +"handles elementary text editing in a curses window, supporting a set of " +"keybindings resembling those of Emacs (thus, also of Netscape Navigator, " +"BBedit 6.x, FrameMaker, and many other programs). The module also provides " +"a rectangle-drawing function useful for framing text boxes or for other " +"purposes." +msgstr "" + +#: ../Doc/library/curses.rst:1717 +msgid "The module :mod:`curses.textpad` defines the following function:" +msgstr "" + +#: ../Doc/library/curses.rst:1722 +msgid "" +"Draw a rectangle. The first argument must be a window object; the remaining " +"arguments are coordinates relative to that window. The second and third " +"arguments are the y and x coordinates of the upper left hand corner of the " +"rectangle to be drawn; the fourth and fifth arguments are the y and x " +"coordinates of the lower right hand corner. The rectangle will be drawn " +"using VT100/IBM PC forms characters on terminals that make this possible " +"(including xterm and most other software terminal emulators). Otherwise it " +"will be drawn with ASCII dashes, vertical bars, and plus signs." +msgstr "" + +#: ../Doc/library/curses.rst:1735 +msgid "Textbox objects" +msgstr "" + +#: ../Doc/library/curses.rst:1737 +msgid "You can instantiate a :class:`Textbox` object as follows:" +msgstr "" + +#: ../Doc/library/curses.rst:1742 +msgid "" +"Return a textbox widget object. The *win* argument should be a curses :ref:" +"`window ` object in which the textbox is to be " +"contained. The edit cursor of the textbox is initially located at the upper " +"left hand corner of the containing window, with coordinates ``(0, 0)``. The " +"instance's :attr:`stripspaces` flag is initially on." +msgstr "" + +#: ../Doc/library/curses.rst:1748 +msgid ":class:`Textbox` objects have the following methods:" +msgstr "" + +#: ../Doc/library/curses.rst:1753 +msgid "" +"This is the entry point you will normally use. It accepts editing " +"keystrokes until one of the termination keystrokes is entered. If " +"*validator* is supplied, it must be a function. It will be called for each " +"keystroke entered with the keystroke as a parameter; command dispatch is " +"done on the result. This method returns the window contents as a string; " +"whether blanks in the window are included is affected by the :attr:" +"`stripspaces` attribute." +msgstr "" + +#: ../Doc/library/curses.rst:1764 +msgid "" +"Process a single command keystroke. Here are the supported special " +"keystrokes:" +msgstr "" + +#: ../Doc/library/curses.rst:1768 ../Doc/library/curses.rst:1806 +msgid "Keystroke" +msgstr "" + +#: ../Doc/library/curses.rst:1768 +msgid "Action" +msgstr "Action" + +#: ../Doc/library/curses.rst:1770 +msgid ":kbd:`Control-A`" +msgstr ":kbd:`Control-A`" + +#: ../Doc/library/curses.rst:1770 +msgid "Go to left edge of window." +msgstr "" + +#: ../Doc/library/curses.rst:1772 ../Doc/library/curses.rst:1808 +msgid ":kbd:`Control-B`" +msgstr ":kbd:`Control-B`" + +#: ../Doc/library/curses.rst:1772 +msgid "Cursor left, wrapping to previous line if appropriate." +msgstr "" + +#: ../Doc/library/curses.rst:1775 +msgid ":kbd:`Control-D`" +msgstr ":kbd:`Control-D`" + +#: ../Doc/library/curses.rst:1775 +msgid "Delete character under cursor." +msgstr "" + +#: ../Doc/library/curses.rst:1777 +msgid ":kbd:`Control-E`" +msgstr ":kbd:`Control-E`" + +#: ../Doc/library/curses.rst:1777 +msgid "Go to right edge (stripspaces off) or end of line (stripspaces on)." +msgstr "" + +#: ../Doc/library/curses.rst:1780 ../Doc/library/curses.rst:1810 +msgid ":kbd:`Control-F`" +msgstr ":kbd:`Control-F`" + +#: ../Doc/library/curses.rst:1780 +msgid "Cursor right, wrapping to next line when appropriate." +msgstr "" + +#: ../Doc/library/curses.rst:1783 +msgid ":kbd:`Control-G`" +msgstr ":kbd:`Control-G`" + +#: ../Doc/library/curses.rst:1783 +msgid "Terminate, returning the window contents." +msgstr "" + +#: ../Doc/library/curses.rst:1785 +msgid ":kbd:`Control-H`" +msgstr ":kbd:`Control-H`" + +#: ../Doc/library/curses.rst:1785 +msgid "Delete character backward." +msgstr "" + +#: ../Doc/library/curses.rst:1787 +msgid ":kbd:`Control-J`" +msgstr ":kbd:`Control-J`" + +#: ../Doc/library/curses.rst:1787 +msgid "Terminate if the window is 1 line, otherwise insert newline." +msgstr "" + +#: ../Doc/library/curses.rst:1790 +msgid ":kbd:`Control-K`" +msgstr ":kbd:`Control-K`" + +#: ../Doc/library/curses.rst:1790 +msgid "If line is blank, delete it, otherwise clear to end of line." +msgstr "" + +#: ../Doc/library/curses.rst:1793 +msgid ":kbd:`Control-L`" +msgstr ":kbd:`Control-L`" + +#: ../Doc/library/curses.rst:1793 +msgid "Refresh screen." +msgstr "" + +#: ../Doc/library/curses.rst:1795 ../Doc/library/curses.rst:1814 +msgid ":kbd:`Control-N`" +msgstr ":kbd:`Control-N`" + +#: ../Doc/library/curses.rst:1795 +msgid "Cursor down; move down one line." +msgstr "" + +#: ../Doc/library/curses.rst:1797 +msgid ":kbd:`Control-O`" +msgstr ":kbd:`Control-O`" + +#: ../Doc/library/curses.rst:1797 +msgid "Insert a blank line at cursor location." +msgstr "" + +#: ../Doc/library/curses.rst:1799 ../Doc/library/curses.rst:1812 +msgid ":kbd:`Control-P`" +msgstr ":kbd:`Control-P`" + +#: ../Doc/library/curses.rst:1799 +msgid "Cursor up; move up one line." +msgstr "" + +#: ../Doc/library/curses.rst:1802 +msgid "" +"Move operations do nothing if the cursor is at an edge where the movement is " +"not possible. The following synonyms are supported where possible:" +msgstr "" + +#: ../Doc/library/curses.rst:1808 +msgid ":const:`KEY_LEFT`" +msgstr ":const:`KEY_LEFT`" + +#: ../Doc/library/curses.rst:1810 +msgid ":const:`KEY_RIGHT`" +msgstr ":const:`KEY_RIGHT`" + +#: ../Doc/library/curses.rst:1812 +msgid ":const:`KEY_UP`" +msgstr ":const:`KEY_UP`" + +#: ../Doc/library/curses.rst:1814 +msgid ":const:`KEY_DOWN`" +msgstr ":const:`KEY_DOWN`" + +#: ../Doc/library/curses.rst:1816 +msgid ":const:`KEY_BACKSPACE`" +msgstr ":const:`KEY_BACKSPACE`" + +#: ../Doc/library/curses.rst:1816 +msgid ":kbd:`Control-h`" +msgstr ":kbd:`Control-h`" + +#: ../Doc/library/curses.rst:1819 +msgid "" +"All other keystrokes are treated as a command to insert the given character " +"and move right (with line wrapping)." +msgstr "" + +#: ../Doc/library/curses.rst:1825 +msgid "" +"Return the window contents as a string; whether blanks in the window are " +"included is affected by the :attr:`stripspaces` member." +msgstr "" + +#: ../Doc/library/curses.rst:1831 +msgid "" +"This attribute is a flag which controls the interpretation of blanks in the " +"window. When it is on, trailing blanks on each line are ignored; any cursor " +"motion that would land the cursor on a trailing blank goes to the end of " +"that line instead, and trailing blanks are stripped when the window contents " +"are gathered." +msgstr "" diff --git a/library/custominterp.po b/library/custominterp.po new file mode 100644 index 000000000..2d1c4795e --- /dev/null +++ b/library/custominterp.po @@ -0,0 +1,38 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-07-29 19:08+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/custominterp.rst:5 +msgid "Custom Python Interpreters" +msgstr "Interpréteurs Python personnalisés" + +#: ../Doc/library/custominterp.rst:7 +msgid "" +"The modules described in this chapter allow writing interfaces similar to " +"Python's interactive interpreter. If you want a Python interpreter that " +"supports some special feature in addition to the Python language, you should " +"look at the :mod:`code` module. (The :mod:`codeop` module is lower-level, " +"used to support compiling a possibly-incomplete chunk of Python code.)" +msgstr "" +"Les modules décrits dans ce chapitre permettent d'écrire des interfaces " +"similaires à l'interpréteur interactif de Python. Si vous voulez un " +"interpréteur Python qui gère quelques fonctionnalités supplémentaires, vous " +"devriez regarder le module :mod:`code`. (Le module :mod:`codeop` est un " +"module de plus bas niveau permettant de compiler des morceaux, pas forcément " +"complets, de Python.)" + +#: ../Doc/library/custominterp.rst:13 +msgid "The full list of modules described in this chapter is:" +msgstr "La liste complète des modules décrits dans ce chapitre est :" diff --git a/library/dataclasses.po b/library/dataclasses.po new file mode 100644 index 000000000..2394e2f3b --- /dev/null +++ b/library/dataclasses.po @@ -0,0 +1,747 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-24 14:22+0100\n" +"PO-Revision-Date: 2018-12-24 14:53+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.1.1\n" + +#: ../Doc/library/dataclasses.rst:2 +msgid ":mod:`dataclasses` --- Data Classes" +msgstr ":mod:`dataclasses` — Classes de Données" + +#: ../Doc/library/dataclasses.rst:10 +msgid "**Source code:** :source:`Lib/dataclasses.py`" +msgstr "**Code source :** :source:`Lib/dataclasses.py`" + +#: ../Doc/library/dataclasses.rst:14 +msgid "" +"This module provides a decorator and functions for automatically adding " +"generated :term:`special method`\\s such as :meth:`__init__` and :meth:" +"`__repr__` to user-defined classes. It was originally described in :pep:" +"`557`." +msgstr "" +"Ce module fournit un décorateur et des fonctions pour générer " +"automatiquement les :term:`méthodes spéciales ` comme :meth:" +"`__init__` et :meth:`__repr__` dans les *Classes de Données* définies par " +"l’utilisateur. Ces classes ont été décrites dans la :pep:`557`." + +#: ../Doc/library/dataclasses.rst:19 +msgid "" +"The member variables to use in these generated methods are defined using :" +"pep:`526` type annotations. For example this code::" +msgstr "" +"Les variables membres à utiliser dans ces méthodes générées sont définies en " +"utilisant les annotations de type :pep:`526`. Par exemple, ce code ::" + +#: ../Doc/library/dataclasses.rst:32 +msgid "Will add, among other things, a :meth:`__init__` that looks like::" +msgstr "" +"Ajoute, entre autres choses, une méthode :meth:`__init__` qui ressemble à ::" + +#: ../Doc/library/dataclasses.rst:39 +msgid "" +"Note that this method is automatically added to the class: it is not " +"directly specified in the ``InventoryItem`` definition shown above." +msgstr "" +"Il est important de noter que cette méthode est ajoutée automatiquement dans " +"la classe : elle n’est pas à écrire dans la définition de ``InventoryItem`` " +"ci-dessus." + +#: ../Doc/library/dataclasses.rst:45 +msgid "Module-level decorators, classes, and functions" +msgstr "Décorateurs, classes et fonctions au niveau du module" + +#: ../Doc/library/dataclasses.rst:49 +msgid "" +"This function is a :term:`decorator` that is used to add generated :term:" +"`special method`\\s to classes, as described below." +msgstr "" +"Cette fonction est un :term:`décorateur` qui est utilisé pour ajouter les :" +"term:`méthodes spéciales ` générées aux classes, comme " +"décrit ci-dessous." + +#: ../Doc/library/dataclasses.rst:52 +msgid "" +"The :func:`dataclass` decorator examines the class to find ``field``\\s. A " +"``field`` is defined as class variable that has a :term:`type annotation " +"`. With two exceptions described below, nothing in :" +"func:`dataclass` examines the type specified in the variable annotation." +msgstr "" +"Le décorateur :func:`dataclass` examine la classe pour trouver des ``champs``" +"\\s. Un ``champ`` est défini comme une variable de classe qui possède une :" +"term:`annotation de type `. À deux exceptions près " +"décrites plus bas, il n’y a rien dans :func:`dataclass` qui examine le type " +"spécifié dans l’annotation de variable." + +#: ../Doc/library/dataclasses.rst:58 +msgid "" +"The order of the fields in all of the generated methods is the order in " +"which they appear in the class definition." +msgstr "" +"L’ordre des paramètres des méthodes générées est celui d’apparition des " +"champs dans la définition de la classe." + +#: ../Doc/library/dataclasses.rst:61 +msgid "" +"The :func:`dataclass` decorator will add various \"dunder\" methods to the " +"class, described below. If any of the added methods already exist on the " +"class, the behavior depends on the parameter, as documented below. The " +"decorator returns the same class that is called on; no new class is created." +msgstr "" +"Le décorateur :func:`dataclass` ajoute diverses méthodes « spéciales » à la " +"classe, décrites ci-après. Si l’une des méthodes ajoutées existe déjà dans " +"la classe, le comportement dépend des paramètres, comme documenté ci-" +"dessous. Le décorateur renvoie la classe sur laquelle il est appelé ; il n’y " +"a pas de nouvelle classe créée." + +#: ../Doc/library/dataclasses.rst:67 +msgid "" +"If :func:`dataclass` is used just as a simple decorator with no parameters, " +"it acts as if it has the default values documented in this signature. That " +"is, these three uses of :func:`dataclass` are equivalent::" +msgstr "" +"Si :func:`dataclass` est utilisé comme simple décorateur sans paramètres, il " +"se comporte comme si on l’avait appelé avec les valeurs par défaut présentes " +"en signature. Ainsi, les trois usages suivants de :func:`dataclass` sont " +"équivalents ::" + +#: ../Doc/library/dataclasses.rst:84 +msgid "The parameters to :func:`dataclass` are:" +msgstr "Les paramètres de :func:`dataclass` sont :" + +#: ../Doc/library/dataclasses.rst:86 +msgid "" +"``init``: If true (the default), a :meth:`__init__` method will be generated." +msgstr "" +"``init``: Si vrai (par défaut), une méthode :meth:`__init__` est générée." + +#: ../Doc/library/dataclasses.rst:89 +msgid "" +"If the class already defines :meth:`__init__`, this parameter is ignored." +msgstr "" +"Si la classe définit déjà une méthode :meth:`__init__`, ce paramètre est " +"ignoré." + +#: ../Doc/library/dataclasses.rst:92 +msgid "" +"``repr``: If true (the default), a :meth:`__repr__` method will be " +"generated. The generated repr string will have the class name and the name " +"and repr of each field, in the order they are defined in the class. Fields " +"that are marked as being excluded from the repr are not included. For " +"example: ``InventoryItem(name='widget', unit_price=3.0, " +"quantity_on_hand=10)``." +msgstr "" +"``repr``: Si vrai (par défaut), une méthode :meth:`__repr__` sera générée. " +"La chaîne de représentation comportera le nom de la classe et le nom ainsi " +"que la représentation de chaque champ, suivant leur ordre de définition. " +"Les champs marqués comme exclus (voir ``Field`` ci-dessous) de la " +"représentation ne sont pas inclus. Par exemple : " +"``InventoryItem(name='widget', unit_price=3.0, quantity_on_hand=10)``." + +#: ../Doc/library/dataclasses.rst:99 +msgid "" +"If the class already defines :meth:`__repr__`, this parameter is ignored." +msgstr "" +"Si la classe définit déjà une méthode :meth:`__repr__`, ce paramètre est " +"ignoré." + +#: ../Doc/library/dataclasses.rst:102 +msgid "" +"``eq``: If true (the default), an :meth:`__eq__` method will be generated. " +"This method compares the class as if it were a tuple of its fields, in " +"order. Both instances in the comparison must be of the identical type." +msgstr "" +"``eq``: Si vrai (par défaut), une méthode :meth:`__eq__` est générée. Cette " +"méthode permet de comparer les instances de la classe comme s’il s’agissait " +"d’un tuple de ses champs, dans l’ordre. Les deux instances dans la " +"comparaison doivent être de même type." + +#: ../Doc/library/dataclasses.rst:107 +msgid "If the class already defines :meth:`__eq__`, this parameter is ignored." +msgstr "" +"Si la classe définit déjà une méthode :meth:`__eq__`, ce paramètre est " +"ignoré." + +#: ../Doc/library/dataclasses.rst:110 +msgid "" +"``order``: If true (the default is ``False``), :meth:`__lt__`, :meth:" +"`__le__`, :meth:`__gt__`, and :meth:`__ge__` methods will be generated. " +"These compare the class as if it were a tuple of its fields, in order. Both " +"instances in the comparison must be of the identical type. If ``order`` is " +"true and ``eq`` is false, a :exc:`ValueError` is raised." +msgstr "" +"``order``: Si vrai (``False`` par défaut), les méthodes :meth:`__lt__`, :" +"meth:`__le__`, :meth:`__gt__`, et :meth:`__ge__` sont générées. Elles " +"permettent de comparer les instances de la classe en les considérant comme " +"des tuples, dans l’ordre de définition des champs. Chaque instance dans la " +"comparaison doit être de même type. Si ``order`` est vrai mais que ``eq`` " +"est faux, une :exc:`ValueError` est levée." + +#: ../Doc/library/dataclasses.rst:117 +msgid "" +"If the class already defines any of :meth:`__lt__`, :meth:`__le__`, :meth:" +"`__gt__`, or :meth:`__ge__`, then :exc:`TypeError` is raised." +msgstr "" +"Si la classe définit déjà l’une des méthodes :meth:`__lt__`, :meth:" +"`__le__`, :meth:`__gt__`, ou :meth:`__ge__`, alors une :exc:`TypeError` est " +"levée." + +#: ../Doc/library/dataclasses.rst:121 +msgid "" +"``unsafe_hash``: If ``False`` (the default), a :meth:`__hash__` method is " +"generated according to how ``eq`` and ``frozen`` are set." +msgstr "" +"``unsafe_hash``: Si ``False`` (par défaut), une méthode :meth:`__hash__` est " +"générée et son comportement dépend des valeurs de ``eq`` et ``frozen``." + +#: ../Doc/library/dataclasses.rst:124 +msgid "" +":meth:`__hash__` is used by built-in :meth:`hash()`, and when objects are " +"added to hashed collections such as dictionaries and sets. Having a :meth:" +"`__hash__` implies that instances of the class are immutable. Mutability is " +"a complicated property that depends on the programmer's intent, the " +"existence and behavior of :meth:`__eq__`, and the values of the ``eq`` and " +"``frozen`` flags in the :func:`dataclass` decorator." +msgstr "" +":meth:`__hash__` est utilisée par la fonction native :meth:`hash()`, ainsi " +"que lorsqu’un objet est inséré dans une collection utilisant du hachage, tel " +"qu’un dictionnaire ou un ensemble. Avoir une méthode :meth:`__hash__` " +"implique que les instances de la classe sont immuables. La muabilité est une " +"propriété complexe qui dépends des intentions du programmeur, de l’existence " +"et du comportement de la méthode :meth:`__eq__`, et des valeurs des options " +"``eq`` et ``frozen`` dans l’appel au décorateur :func:`dataclass`." + +#: ../Doc/library/dataclasses.rst:131 +msgid "" +"By default, :func:`dataclass` will not implicitly add a :meth:`__hash__` " +"method unless it is safe to do so. Neither will it add or change an " +"existing explicitly defined :meth:`__hash__` method. Setting the class " +"attribute ``__hash__ = None`` has a specific meaning to Python, as described " +"in the :meth:`__hash__` documentation." +msgstr "" +"Par défaut, :func:`dataclass` n’ajoute pas de méthode implicite :meth:" +"`__hash__`, sauf s’il n’existe aucun risque sous-jacent. Il n’ajoute ou ne " +"modifie pas non plus la méthode :meth:`__hash__` si elle a est définie " +"explicitement. Définir l’attribut de classe ``__hash__ = None`` a une " +"signification particulière en Python, comme précisé dans la documentation " +"de :meth:`__hash__`." + +#: ../Doc/library/dataclasses.rst:137 +msgid "" +"If :meth:`__hash__` is not explicit defined, or if it is set to ``None``, " +"then :func:`dataclass` *may* add an implicit :meth:`__hash__` method. " +"Although not recommended, you can force :func:`dataclass` to create a :meth:" +"`__hash__` method with ``unsafe_hash=True``. This might be the case if your " +"class is logically immutable but can nonetheless be mutated. This is a " +"specialized use case and should be considered carefully." +msgstr "" +"Si :meth:`__hash__` n’est pas défini explicitement, ou s’il a pour valeur " +"``None``, alors :func:`dataclass` *peut* ajouter une méthode :meth:" +"`__hash__` implicite. Bien que ce ne soit pas recommandé,, vous pouvez " +"forcer :func:`dataclass` à créer une méthode :meth:`__hash__` en utilisant " +"``unsafe_hash=True``. Cela pourrait être nécessaire si votre classe est " +"logiquement immuable mais qu’une mutation est tout de même possible. C’est " +"un cas très particulier qui doit être considéré avec la plus grande prudence." + +#: ../Doc/library/dataclasses.rst:144 +msgid "" +"Here are the rules governing implicit creation of a :meth:`__hash__` " +"method. Note that you cannot both have an explicit :meth:`__hash__` method " +"in your dataclass and set ``unsafe_hash=True``; this will result in a :exc:" +"`TypeError`." +msgstr "" +"Ce sont les règles autour de la création implicite de la méthode :meth:" +"`__hash__`. Il faut noter que vous ne pouvez pas avoir à la fois une " +"méthode :meth:`__hash__` explicite dans votre *dataclass* et définir " +"``unsafe_hash=True``; cela lèvera une :exc:`TypeError`." + +#: ../Doc/library/dataclasses.rst:149 +msgid "" +"If ``eq`` and ``frozen`` are both true, by default :func:`dataclass` will " +"generate a :meth:`__hash__` method for you. If ``eq`` is true and " +"``frozen`` is false, :meth:`__hash__` will be set to ``None``, marking it " +"unhashable (which it is, since it is mutable). If ``eq`` is false, :meth:" +"`__hash__` will be left untouched meaning the :meth:`__hash__` method of the " +"superclass will be used (if the superclass is :class:`object`, this means it " +"will fall back to id-based hashing)." +msgstr "" +"Si ``eq`` et ``frozen`` sont tous deux vrais, :func:`dataclass` génère par " +"défaut une méthode :meth:`__hash__` pour vous. Si ``eq`` est vrai mais que " +"``frozen`` est faux, :meth:`__hash__` est prends la valeur ``None``, " +"marquant la classe comme non-hachable (et c’est le cas, puisqu’elle est " +"modifiable). Si ``eq`` est faux, la méthode :meth:`__hash__` est laissée " +"intacte, ce qui veut dire que la méthode :meth:`__hash__` de la classe " +"parente sera utilisée (si la classe parente est :class:`object`, le " +"comportement est un hachage basé sur les id)." + +#: ../Doc/library/dataclasses.rst:157 +msgid "" +"``frozen``: If true (the default is False), assigning to fields will " +"generate an exception. This emulates read-only frozen instances. If :meth:" +"`__setattr__` or :meth:`__delattr__` is defined in the class, then :exc:" +"`TypeError` is raised. See the discussion below." +msgstr "" +"``frozen``: Si vrai (faux par défaut), assigner une valeur à un champ lèvera " +"une exception. Cela simule le comportement des instances figées en lecture " +"seule. Si la méthode :meth:`__setattr__` ou :meth:`__delattr__` est définie " +"sur la classe, alors une :exc:`TypeError` est levée. Voir la discussion ci-" +"dessous." + +#: ../Doc/library/dataclasses.rst:162 +msgid "" +"``field``\\s may optionally specify a default value, using normal Python " +"syntax::" +msgstr "" +"Les ``field``\\s peuvent éventuellement spécifier une valeur par défaut, en " +"utilisant la syntaxe Python normale ::" + +#: ../Doc/library/dataclasses.rst:170 +msgid "" +"In this example, both ``a`` and ``b`` will be included in the added :meth:" +"`__init__` method, which will be defined as::" +msgstr "" +"Dans cet exemple, ``a`` et ``b`` sont tous deux inclus dans la signature de " +"la méthode générée :meth:`__init__`, qui est définie comme suit ::" + +#: ../Doc/library/dataclasses.rst:175 +msgid "" +":exc:`TypeError` will be raised if a field without a default value follows a " +"field with a default value. This is true either when this occurs in a " +"single class, or as a result of class inheritance." +msgstr "" +"Une :exc:`TypeError` est levée si un champ sans valeur par défaut est défini " +"après un champ avec une valeur par défaut. C’est le cas que ce soit dans " +"une seule classe, mais également si c’est le résultat d’un héritage de " +"classes." + +#: ../Doc/library/dataclasses.rst:181 +msgid "" +"For common and simple use cases, no other functionality is required. There " +"are, however, some dataclass features that require additional per-field " +"information. To satisfy this need for additional information, you can " +"replace the default field value with a call to the provided :func:`field` " +"function. For example::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:194 +msgid "" +"As shown above, the ``MISSING`` value is a sentinel object used to detect if " +"the ``default`` and ``default_factory`` parameters are provided. This " +"sentinel is used because ``None`` is a valid value for ``default``. No code " +"should directly use the ``MISSING`` value." +msgstr "" + +#: ../Doc/library/dataclasses.rst:200 +msgid "The parameters to :func:`field` are:" +msgstr "" + +#: ../Doc/library/dataclasses.rst:202 +msgid "" +"``default``: If provided, this will be the default value for this field. " +"This is needed because the :meth:`field` call itself replaces the normal " +"position of the default value." +msgstr "" + +#: ../Doc/library/dataclasses.rst:206 +msgid "" +"``default_factory``: If provided, it must be a zero-argument callable that " +"will be called when a default value is needed for this field. Among other " +"purposes, this can be used to specify fields with mutable default values, as " +"discussed below. It is an error to specify both ``default`` and " +"``default_factory``." +msgstr "" + +#: ../Doc/library/dataclasses.rst:212 +msgid "" +"``init``: If true (the default), this field is included as a parameter to " +"the generated :meth:`__init__` method." +msgstr "" + +#: ../Doc/library/dataclasses.rst:215 +msgid "" +"``repr``: If true (the default), this field is included in the string " +"returned by the generated :meth:`__repr__` method." +msgstr "" + +#: ../Doc/library/dataclasses.rst:218 +msgid "" +"``compare``: If true (the default), this field is included in the generated " +"equality and comparison methods (:meth:`__eq__`, :meth:`__gt__`, et al.)." +msgstr "" + +#: ../Doc/library/dataclasses.rst:222 +msgid "" +"``hash``: This can be a bool or ``None``. If true, this field is included " +"in the generated :meth:`__hash__` method. If ``None`` (the default), use " +"the value of ``compare``: this would normally be the expected behavior. A " +"field should be considered in the hash if it's used for comparisons. " +"Setting this value to anything other than ``None`` is discouraged." +msgstr "" + +#: ../Doc/library/dataclasses.rst:229 +msgid "" +"One possible reason to set ``hash=False`` but ``compare=True`` would be if a " +"field is expensive to compute a hash value for, that field is needed for " +"equality testing, and there are other fields that contribute to the type's " +"hash value. Even if a field is excluded from the hash, it will still be " +"used for comparisons." +msgstr "" + +#: ../Doc/library/dataclasses.rst:235 +msgid "" +"``metadata``: This can be a mapping or None. None is treated as an empty " +"dict. This value is wrapped in :func:`~types.MappingProxyType` to make it " +"read-only, and exposed on the :class:`Field` object. It is not used at all " +"by Data Classes, and is provided as a third-party extension mechanism. " +"Multiple third-parties can each have their own key, to use as a namespace in " +"the metadata." +msgstr "" + +#: ../Doc/library/dataclasses.rst:243 +msgid "" +"If the default value of a field is specified by a call to :func:`field()`, " +"then the class attribute for this field will be replaced by the specified " +"``default`` value. If no ``default`` is provided, then the class attribute " +"will be deleted. The intent is that after the :func:`dataclass` decorator " +"runs, the class attributes will all contain the default values for the " +"fields, just as if the default value itself were specified. For example, " +"after::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:259 +msgid "" +"The class attribute ``C.z`` will be ``10``, the class attribute ``C.t`` will " +"be ``20``, and the class attributes ``C.x`` and ``C.y`` will not be set." +msgstr "" + +#: ../Doc/library/dataclasses.rst:265 +msgid "" +":class:`Field` objects describe each defined field. These objects are " +"created internally, and are returned by the :func:`fields` module-level " +"method (see below). Users should never instantiate a :class:`Field` object " +"directly. Its documented attributes are:" +msgstr "" + +#: ../Doc/library/dataclasses.rst:270 +msgid "``name``: The name of the field." +msgstr "" + +#: ../Doc/library/dataclasses.rst:272 +msgid "``type``: The type of the field." +msgstr "" + +#: ../Doc/library/dataclasses.rst:274 +msgid "" +"``default``, ``default_factory``, ``init``, ``repr``, ``hash``, ``compare``, " +"and ``metadata`` have the identical meaning and values as they do in the :" +"func:`field` declaration." +msgstr "" + +#: ../Doc/library/dataclasses.rst:278 +msgid "" +"Other attributes may exist, but they are private and must not be inspected " +"or relied on." +msgstr "" + +#: ../Doc/library/dataclasses.rst:283 +msgid "" +"Returns a tuple of :class:`Field` objects that define the fields for this " +"dataclass. Accepts either a dataclass, or an instance of a dataclass. " +"Raises :exc:`TypeError` if not passed a dataclass or instance of one. Does " +"not return pseudo-fields which are ``ClassVar`` or ``InitVar``." +msgstr "" + +#: ../Doc/library/dataclasses.rst:290 +msgid "" +"Converts the dataclass ``instance`` to a dict (by using the factory function " +"``dict_factory``). Each dataclass is converted to a dict of its fields, as " +"``name: value`` pairs. dataclasses, dicts, lists, and tuples are recursed " +"into. For example::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:310 ../Doc/library/dataclasses.rst:324 +msgid "Raises :exc:`TypeError` if ``instance`` is not a dataclass instance." +msgstr "" + +#: ../Doc/library/dataclasses.rst:314 +msgid "" +"Converts the dataclass ``instance`` to a tuple (by using the factory " +"function ``tuple_factory``). Each dataclass is converted to a tuple of its " +"field values. dataclasses, dicts, lists, and tuples are recursed into." +msgstr "" + +#: ../Doc/library/dataclasses.rst:319 +msgid "Continuing from the previous example::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:328 +msgid "" +"Creates a new dataclass with name ``cls_name``, fields as defined in " +"``fields``, base classes as given in ``bases``, and initialized with a " +"namespace as given in ``namespace``. ``fields`` is an iterable whose " +"elements are each either ``name``, ``(name, type)``, or ``(name, type, " +"Field)``. If just ``name`` is supplied, ``typing.Any`` is used for " +"``type``. The values of ``init``, ``repr``, ``eq``, ``order``, " +"``unsafe_hash``, and ``frozen`` have the same meaning as they do in :func:" +"`dataclass`." +msgstr "" + +#: ../Doc/library/dataclasses.rst:337 +msgid "" +"This function is not strictly required, because any Python mechanism for " +"creating a new class with ``__annotations__`` can then apply the :func:" +"`dataclass` function to convert that class to a dataclass. This function is " +"provided as a convenience. For example::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:349 +msgid "Is equivalent to::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:362 +msgid "" +"Creates a new object of the same type of ``instance``, replacing fields with " +"values from ``changes``. If ``instance`` is not a Data Class, raises :exc:" +"`TypeError`. If values in ``changes`` do not specify fields, raises :exc:" +"`TypeError`." +msgstr "" + +#: ../Doc/library/dataclasses.rst:367 +msgid "" +"The newly returned object is created by calling the :meth:`__init__` method " +"of the dataclass. This ensures that :meth:`__post_init__`, if present, is " +"also called." +msgstr "" + +#: ../Doc/library/dataclasses.rst:371 +msgid "" +"Init-only variables without default values, if any exist, must be specified " +"on the call to :func:`replace` so that they can be passed to :meth:" +"`__init__` and :meth:`__post_init__`." +msgstr "" + +#: ../Doc/library/dataclasses.rst:375 +msgid "" +"It is an error for ``changes`` to contain any fields that are defined as " +"having ``init=False``. A :exc:`ValueError` will be raised in this case." +msgstr "" + +#: ../Doc/library/dataclasses.rst:379 +msgid "" +"Be forewarned about how ``init=False`` fields work during a call to :func:" +"`replace`. They are not copied from the source object, but rather are " +"initialized in :meth:`__post_init__`, if they're initialized at all. It is " +"expected that ``init=False`` fields will be rarely and judiciously used. If " +"they are used, it might be wise to have alternate class constructors, or " +"perhaps a custom ``replace()`` (or similarly named) method which handles " +"instance copying." +msgstr "" + +#: ../Doc/library/dataclasses.rst:390 +msgid "" +"Returns True if its parameter is a dataclass or an instance of one, " +"otherwise returns False." +msgstr "" + +#: ../Doc/library/dataclasses.rst:393 +msgid "" +"If you need to know if a class is an instance of a dataclass (and not a " +"dataclass itself), then add a further check for ``not isinstance(obj, " +"type)``::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:401 +msgid "Post-init processing" +msgstr "" + +#: ../Doc/library/dataclasses.rst:403 +msgid "" +"The generated :meth:`__init__` code will call a method named :meth:" +"`__post_init__`, if :meth:`__post_init__` is defined on the class. It will " +"normally be called as ``self.__post_init__()``. However, if any ``InitVar`` " +"fields are defined, they will also be passed to :meth:`__post_init__` in the " +"order they were defined in the class. If no :meth:`__init__` method is " +"generated, then :meth:`__post_init__` will not automatically be called." +msgstr "" + +#: ../Doc/library/dataclasses.rst:411 +msgid "" +"Among other uses, this allows for initializing field values that depend on " +"one or more other fields. For example::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:423 +msgid "" +"See the section below on init-only variables for ways to pass parameters to :" +"meth:`__post_init__`. Also see the warning about how :func:`replace` " +"handles ``init=False`` fields." +msgstr "" + +#: ../Doc/library/dataclasses.rst:428 +msgid "Class variables" +msgstr "" + +#: ../Doc/library/dataclasses.rst:430 +msgid "" +"One of two places where :func:`dataclass` actually inspects the type of a " +"field is to determine if a field is a class variable as defined in :pep:" +"`526`. It does this by checking if the type of the field is ``typing." +"ClassVar``. If a field is a ``ClassVar``, it is excluded from consideration " +"as a field and is ignored by the dataclass mechanisms. Such ``ClassVar`` " +"pseudo-fields are not returned by the module-level :func:`fields` function." +msgstr "" + +#: ../Doc/library/dataclasses.rst:439 +msgid "Init-only variables" +msgstr "" + +#: ../Doc/library/dataclasses.rst:441 +msgid "" +"The other place where :func:`dataclass` inspects a type annotation is to " +"determine if a field is an init-only variable. It does this by seeing if " +"the type of a field is of type ``dataclasses.InitVar``. If a field is an " +"``InitVar``, it is considered a pseudo-field called an init-only field. As " +"it is not a true field, it is not returned by the module-level :func:" +"`fields` function. Init-only fields are added as parameters to the " +"generated :meth:`__init__` method, and are passed to the optional :meth:" +"`__post_init__` method. They are not otherwise used by dataclasses." +msgstr "" + +#: ../Doc/library/dataclasses.rst:451 +msgid "" +"For example, suppose a field will be initialized from a database, if a value " +"is not provided when creating the class::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:466 +msgid "" +"In this case, :func:`fields` will return :class:`Field` objects for ``i`` " +"and ``j``, but not for ``database``." +msgstr "" + +#: ../Doc/library/dataclasses.rst:470 +msgid "Frozen instances" +msgstr "" + +#: ../Doc/library/dataclasses.rst:472 +msgid "" +"It is not possible to create truly immutable Python objects. However, by " +"passing ``frozen=True`` to the :meth:`dataclass` decorator you can emulate " +"immutability. In that case, dataclasses will add :meth:`__setattr__` and :" +"meth:`__delattr__` methods to the class. These methods will raise a :exc:" +"`FrozenInstanceError` when invoked." +msgstr "" + +#: ../Doc/library/dataclasses.rst:478 +msgid "" +"There is a tiny performance penalty when using ``frozen=True``: :meth:" +"`__init__` cannot use simple assignment to initialize fields, and must use :" +"meth:`object.__setattr__`." +msgstr "" + +#: ../Doc/library/dataclasses.rst:483 +msgid "Inheritance" +msgstr "Héritage" + +#: ../Doc/library/dataclasses.rst:485 +msgid "" +"When the dataclass is being created by the :meth:`dataclass` decorator, it " +"looks through all of the class's base classes in reverse MRO (that is, " +"starting at :class:`object`) and, for each dataclass that it finds, adds the " +"fields from that base class to an ordered mapping of fields. After all of " +"the base class fields are added, it adds its own fields to the ordered " +"mapping. All of the generated methods will use this combined, calculated " +"ordered mapping of fields. Because the fields are in insertion order, " +"derived classes override base classes. An example::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:505 +msgid "" +"The final list of fields is, in order, ``x``, ``y``, ``z``. The final type " +"of ``x`` is ``int``, as specified in class ``C``." +msgstr "" + +#: ../Doc/library/dataclasses.rst:508 +msgid "The generated :meth:`__init__` method for ``C`` will look like::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:513 +msgid "Default factory functions" +msgstr "" + +#: ../Doc/library/dataclasses.rst:515 +msgid "" +"If a :func:`field` specifies a ``default_factory``, it is called with zero " +"arguments when a default value for the field is needed. For example, to " +"create a new instance of a list, use::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:521 +msgid "" +"If a field is excluded from :meth:`__init__` (using ``init=False``) and the " +"field also specifies ``default_factory``, then the default factory function " +"will always be called from the generated :meth:`__init__` function. This " +"happens because there is no other way to give the field an initial value." +msgstr "" + +#: ../Doc/library/dataclasses.rst:528 +msgid "Mutable default values" +msgstr "" + +#: ../Doc/library/dataclasses.rst:530 +msgid "" +"Python stores default member variable values in class attributes. Consider " +"this example, not using dataclasses::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:545 +msgid "" +"Note that the two instances of class ``C`` share the same class variable " +"``x``, as expected." +msgstr "" + +#: ../Doc/library/dataclasses.rst:548 +msgid "Using dataclasses, *if* this code was valid::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:556 +msgid "it would generate code similar to::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:567 +msgid "" +"This has the same issue as the original example using class ``C``. That is, " +"two instances of class ``D`` that do not specify a value for ``x`` when " +"creating a class instance will share the same copy of ``x``. Because " +"dataclasses just use normal Python class creation they also share this " +"behavior. There is no general way for Data Classes to detect this " +"condition. Instead, dataclasses will raise a :exc:`TypeError` if it detects " +"a default parameter of type ``list``, ``dict``, or ``set``. This is a " +"partial solution, but it does protect against many common errors." +msgstr "" + +#: ../Doc/library/dataclasses.rst:577 +msgid "" +"Using default factory functions is a way to create new instances of mutable " +"types as default values for fields::" +msgstr "" + +#: ../Doc/library/dataclasses.rst:587 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/dataclasses.rst:591 +msgid "" +"Raised when an implicitly defined :meth:`__setattr__` or :meth:`__delattr__` " +"is called on a dataclass which was defined with ``frozen=True``." +msgstr "" diff --git a/library/datatypes.po b/library/datatypes.po new file mode 100644 index 000000000..1f048bbdd --- /dev/null +++ b/library/datatypes.po @@ -0,0 +1,45 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-28 11:37+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/datatypes.rst:5 +msgid "Data Types" +msgstr "Types de données" + +#: ../Doc/library/datatypes.rst:7 +msgid "" +"The modules described in this chapter provide a variety of specialized data " +"types such as dates and times, fixed-type arrays, heap queues, synchronized " +"queues, and sets." +msgstr "" +"Les modules documentés dans ce chapitre fournissent une gamme de types de " +"données spécialisés tel que les dates et les heures, les listes à type " +"prédéfini, les *heap queue*, les queues synchronisées, et les ensembles." + +#: ../Doc/library/datatypes.rst:11 +msgid "" +"Python also provides some built-in data types, in particular, :class:" +"`dict`, :class:`list`, :class:`set` and :class:`frozenset`, and :class:" +"`tuple`. The :class:`str` class is used to hold Unicode strings, and the :" +"class:`bytes` class is used to hold binary data." +msgstr "" +"Python fournit aussi quelques types natifs, typiquement :class:`dict`, :" +"class:`list`, :class:`set`, :class:`frozenset`, et :class:`tuple`. La " +"classe :class:`str` est utilisée pour stocker des chaînes Unicode, et la " +"classe :class:`bytes` des données binaires." + +#: ../Doc/library/datatypes.rst:16 +msgid "The following modules are documented in this chapter:" +msgstr "Les modules suivants sont documentés dans ce chapitre :" diff --git a/library/datetime.po b/library/datetime.po new file mode 100644 index 000000000..8a40b2139 --- /dev/null +++ b/library/datetime.po @@ -0,0 +1,3662 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"PO-Revision-Date: 2019-08-21 00:28+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/datetime.rst:2 +msgid ":mod:`datetime` --- Basic date and time types" +msgstr ":mod:`datetime` — Types de base pour la date et l'heure" + +#: ../Doc/library/datetime.rst:11 +msgid "**Source code:** :source:`Lib/datetime.py`" +msgstr "**Code source :** :source:`Lib/datetime.py`" + +#: ../Doc/library/datetime.rst:17 +msgid "" +"The :mod:`datetime` module supplies classes for manipulating dates and times " +"in both simple and complex ways. While date and time arithmetic is " +"supported, the focus of the implementation is on efficient attribute " +"extraction for output formatting and manipulation. For related " +"functionality, see also the :mod:`time` and :mod:`calendar` modules." +msgstr "" +"Le module :mod:`datetime` fournit des classes pour manipuler de façon simple " +"ou plus complexe des dates et des heures. Bien que les calculs de date et " +"d'heure sont gérés, l'implémentation est essentiellement tournée vers " +"l'efficacité pour extraire des attributs pour les manipuler et les formater " +"pour l'affichage. Pour d'autres fonctionnalités associées, voir aussi les " +"modules :mod:`time` et :mod:`calendar`." + +#: ../Doc/library/datetime.rst:23 +msgid "There are two kinds of date and time objects: \"naive\" and \"aware\"." +msgstr "" +"Il y a deux sortes d'objets *date* et *time* : les \"naïfs\" et les \"avisés" +"\"." + +#: ../Doc/library/datetime.rst:25 +msgid "" +"An aware object has sufficient knowledge of applicable algorithmic and " +"political time adjustments, such as time zone and daylight saving time " +"information, to locate itself relative to other aware objects. An aware " +"object is used to represent a specific moment in time that is not open to " +"interpretation [#]_." +msgstr "" +"Un objet avisé possède suffisamment de connaissance des règles à appliquer " +"et des politiques d'ajustement de l'heure comme les informations sur les " +"fuseaux horaires et l'heure d'été pour se situer de façon relative par " +"rapport à d'autres objets avisés. Un objet avisé est utilisé pour représenté " +"un moment précis de l'histoire qui n'est pas ouvert à l'interprétation [#]_." + +#: ../Doc/library/datetime.rst:31 +msgid "" +"A naive object does not contain enough information to unambiguously locate " +"itself relative to other date/time objects. Whether a naive object " +"represents Coordinated Universal Time (UTC), local time, or time in some " +"other timezone is purely up to the program, just like it is up to the " +"program whether a particular number represents metres, miles, or mass. " +"Naive objects are easy to understand and to work with, at the cost of " +"ignoring some aspects of reality." +msgstr "" +"Un objet naïf ne comporte pas assez d'informations pour se situer sans " +"ambiguïté par rapport à d'autres objets *date/time*. Le fait qu'un objet " +"naïf représente un Temps universel coordonné (UTC), une heure locale ou une " +"heure dans un autre fuseau horaire dépend complètement du programme, tout " +"comme un nombre peut représenter une longueur, un poids ou une distance pour " +"le programme. Les objets naïfs sont simples à comprendre et il est aisé de " +"travailler avec, au prix de négliger certains aspects de la réalité." + +#: ../Doc/library/datetime.rst:38 +msgid "" +"For applications requiring aware objects, :class:`.datetime` and :class:`." +"time` objects have an optional time zone information attribute, :attr:`!" +"tzinfo`, that can be set to an instance of a subclass of the abstract :class:" +"`tzinfo` class. These :class:`tzinfo` objects capture information about the " +"offset from UTC time, the time zone name, and whether Daylight Saving Time " +"is in effect. Note that only one concrete :class:`tzinfo` class, the :class:" +"`timezone` class, is supplied by the :mod:`datetime` module. The :class:" +"`timezone` class can represent simple timezones with fixed offset from UTC, " +"such as UTC itself or North American EST and EDT timezones. Supporting " +"timezones at deeper levels of detail is up to the application. The rules " +"for time adjustment across the world are more political than rational, " +"change frequently, and there is no standard suitable for every application " +"aside from UTC." +msgstr "" +"Pour les applications qui nécessitent des objets avisés, les objets :class:`." +"datetime` et :class:`.time` ont un attribut optionnel d'information sur le " +"fuseau horaire, :attr:`!tzinfo`, qui peut être réglé sur une instance d'une " +"sous-classe de la classe abstraite :class:`tzinfo`. Ces objets :class:" +"`tzinfo` capturent l'information à propos du décalage avec le temps UTC, le " +"nom du fuseau horaire, et si l'heure d'été est effective. Notez qu'une " +"seule classe concrète :class:`tzinfo`, la classe :class:`timezone`, est " +"proposée par le module :mod:`datetime`. La classe :class:`timezone` " +"représente des fuseaux horaires simples avec un décalage fixe par rapport à " +"UTC, comme UTC lui-même ou les fuseaux EST et EDT d'Amérique du Nord. Gérer " +"des fuseaux horaires d'un niveau de détails plus avancé est à la charge de " +"l'application. Les règles d'ajustement du temps à travers le monde sont " +"plus politiques que rationnelles, changent fréquemment, et il n'y a pas de " +"standard qui vaille pour toute application, en dehors d'UTC." + +#: ../Doc/library/datetime.rst:51 +msgid "The :mod:`datetime` module exports the following constants:" +msgstr "Le module :mod:`datetime` exporte les constantes suivantes :" + +#: ../Doc/library/datetime.rst:55 +msgid "" +"The smallest year number allowed in a :class:`date` or :class:`.datetime` " +"object. :const:`MINYEAR` is ``1``." +msgstr "" +"Le numéro d'année le plus petit autorisé dans un objet :class:`date` ou :" +"class:`datetime`. :const:`MINYEAR` vaut ``1``." + +#: ../Doc/library/datetime.rst:61 +msgid "" +"The largest year number allowed in a :class:`date` or :class:`.datetime` " +"object. :const:`MAXYEAR` is ``9999``." +msgstr "" +"Le numéro d'année le plus grand autorisé dans un objet :class:`date` ou :" +"class:`datetime`. :const:`MAXYEAR` vaut ``9999``." + +#: ../Doc/library/datetime.rst:68 +msgid "Module :mod:`calendar`" +msgstr "Module :mod:`calendar`" + +#: ../Doc/library/datetime.rst:68 +msgid "General calendar related functions." +msgstr "Fonctions génériques associées au calendrier." + +#: ../Doc/library/datetime.rst:70 +msgid "Module :mod:`time`" +msgstr "Module :mod:`time`" + +#: ../Doc/library/datetime.rst:71 +msgid "Time access and conversions." +msgstr "Accès au données d'horaires et aux conversions associées." + +#: ../Doc/library/datetime.rst:75 +msgid "Available Types" +msgstr "Types disponibles" + +#: ../Doc/library/datetime.rst:80 +msgid "" +"An idealized naive date, assuming the current Gregorian calendar always was, " +"and always will be, in effect. Attributes: :attr:`year`, :attr:`month`, and :" +"attr:`day`." +msgstr "" +"Une date naïve idéalisée, en supposant que le calendrier Grégorien actuel a " +"toujours existé et qu'il existera toujours. Attributs : :attr:`year`, :attr:" +"`month` et :attr:`day`." + +#: ../Doc/library/datetime.rst:88 +msgid "" +"An idealized time, independent of any particular day, assuming that every " +"day has exactly 24\\*60\\*60 seconds (there is no notion of \"leap seconds\" " +"here). Attributes: :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:" +"`microsecond`, and :attr:`.tzinfo`." +msgstr "" +"Un temps idéalisé, indépendant d'une date particulière, en supposant qu'une " +"journée est composée d'exactement 24\\*60\\*60 secondes (il n'y a pas ici de " +"notion de \"seconde bissextile\"). Attributs : :attr:`hour`, :attr:" +"`minute`, :attr:`second`, :attr:`microsecond` et :attr:`tzinfo`." + +#: ../Doc/library/datetime.rst:97 +msgid "" +"A combination of a date and a time. Attributes: :attr:`year`, :attr:" +"`month`, :attr:`day`, :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:" +"`microsecond`, and :attr:`.tzinfo`." +msgstr "" +"Une combinaison d'une date et d'une heure. Attributs : :attr:`year`, :attr:" +"`month`, :attr:`day`, :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:" +"`microsecond`, et :attr:`tzinfo`." + +#: ../Doc/library/datetime.rst:105 +msgid "" +"A duration expressing the difference between two :class:`date`, :class:`." +"time`, or :class:`.datetime` instances to microsecond resolution." +msgstr "" +"Une durée qui exprime la différence entre deux instances de :class:`date`, :" +"class:`time` ou :class:`datetime` en microsecondes." + +#: ../Doc/library/datetime.rst:112 +msgid "" +"An abstract base class for time zone information objects. These are used by " +"the :class:`.datetime` and :class:`.time` classes to provide a customizable " +"notion of time adjustment (for example, to account for time zone and/or " +"daylight saving time)." +msgstr "" +"Une classe de base abstraite pour les objets portants des informations sur " +"les fuseaux horaires. Ceux-ci sont utilisés par les classes :class:`." +"datetime` et :class:`.time` pour donner une notion personnalisable " +"d'ajustement d'horaire (par exemple la prise en compte d'un fuseau horaire " +"et/ou de l'heure d'été)." + +#: ../Doc/library/datetime.rst:120 +msgid "" +"A class that implements the :class:`tzinfo` abstract base class as a fixed " +"offset from the UTC." +msgstr "" +"Une classe qui implémente la classe de base abstraite :class:`tzinfo` en " +"tant qu'offset fixe par rapport au temps UTC." + +#: ../Doc/library/datetime.rst:126 +msgid "Objects of these types are immutable." +msgstr "Les objets issus de ces types sont immuables." + +#: ../Doc/library/datetime.rst:128 +msgid "Objects of the :class:`date` type are always naive." +msgstr "Les objets de type :class:`date` sont toujours naïfs." + +#: ../Doc/library/datetime.rst:130 +msgid "" +"An object of type :class:`.time` or :class:`.datetime` may be naive or " +"aware. A :class:`.datetime` object *d* is aware if ``d.tzinfo`` is not " +"``None`` and ``d.tzinfo.utcoffset(d)`` does not return ``None``. If ``d." +"tzinfo`` is ``None``, or if ``d.tzinfo`` is not ``None`` but ``d.tzinfo." +"utcoffset(d)`` returns ``None``, *d* is naive. A :class:`.time` object *t* " +"is aware if ``t.tzinfo`` is not ``None`` and ``t.tzinfo.utcoffset(None)`` " +"does not return ``None``. Otherwise, *t* is naive." +msgstr "" +"Un objet de type :class:`.time` ou :class:`.datetime` peut être naïf ou " +"avisé. Un objet :class:`.datetime` *d* est avisé si ``d.tzinfo`` ne vaut pas " +"``None`` et que ``d.tzinfo.utcoffset(d)`` ne renvoie pas ``None``. Si ``d." +"tzinfo`` vaut ``None`` ou que ``d.tzinfo`` ne vaut pas ``None`` mais que ``d." +"tzinfo.utcoffset(d)`` renvoie ``None``, alors *d* est naïf. Un objet :class:" +"`.time` *t* est avisé si ``t.tzinfo`` ne vaut pas ``None`` et que ``t.tzinfo." +"utcoffset(None)`` ne renvoie pas ``None``. Sinon, *t* est naïf." + +#: ../Doc/library/datetime.rst:138 +msgid "" +"The distinction between naive and aware doesn't apply to :class:`timedelta` " +"objects." +msgstr "" +"La distinction entre naïf et avisé ne s'applique pas aux objets de type :" +"class:`timedelta`." + +#: ../Doc/library/datetime.rst:141 +msgid "Subclass relationships::" +msgstr "Relations entre les sous-classes ::" + +#: ../Doc/library/datetime.rst:155 +msgid ":class:`timedelta` Objects" +msgstr "Objets :class:`timedelta`" + +#: ../Doc/library/datetime.rst:157 +msgid "" +"A :class:`timedelta` object represents a duration, the difference between " +"two dates or times." +msgstr "" +"Un objet :class:`timedelta` représente une durée, c'est-à-dire la différence " +"entre deux dates ou heures." + +#: ../Doc/library/datetime.rst:162 +msgid "" +"All arguments are optional and default to ``0``. Arguments may be integers " +"or floats, and may be positive or negative." +msgstr "" +"Tous les paramètres sont optionnels et ont ``0`` comme valeur par défaut. " +"Les paramètres peuvent être des entiers ou des flottants et ils peuvent être " +"positifs ou négatifs." + +#: ../Doc/library/datetime.rst:165 +msgid "" +"Only *days*, *seconds* and *microseconds* are stored internally. Arguments " +"are converted to those units:" +msgstr "" +"Seuls les *jours*, les *secondes* et les *microsecondes* sont stockés en " +"interne. Tous les paramètres sont convertis dans ces unités :" + +#: ../Doc/library/datetime.rst:168 +msgid "A millisecond is converted to 1000 microseconds." +msgstr "Une milliseconde est convertie en 1000 microsecondes." + +#: ../Doc/library/datetime.rst:169 +msgid "A minute is converted to 60 seconds." +msgstr "Une minute est convertie en 60 secondes." + +#: ../Doc/library/datetime.rst:170 +msgid "An hour is converted to 3600 seconds." +msgstr "Une heure est convertie en 3600 secondes." + +#: ../Doc/library/datetime.rst:171 +msgid "A week is converted to 7 days." +msgstr "Une semaine est convertie en 7 jours." + +#: ../Doc/library/datetime.rst:173 +msgid "" +"and days, seconds and microseconds are then normalized so that the " +"representation is unique, with" +msgstr "" +"et ensuite les jours, secondes et microsecondes sont normalisés pour que la " +"représentation soit unique avec" + +#: ../Doc/library/datetime.rst:176 +msgid "``0 <= microseconds < 1000000``" +msgstr "``0 <= microseconds < 1000000``" + +#: ../Doc/library/datetime.rst:177 +msgid "``0 <= seconds < 3600*24`` (the number of seconds in one day)" +msgstr "``0 <= secondes < 3600*24`` (le nombre de secondes dans une journée)" + +#: ../Doc/library/datetime.rst:178 +msgid "``-999999999 <= days <= 999999999``" +msgstr "``-999999999 <= days <= 999999999``" + +#: ../Doc/library/datetime.rst:180 +msgid "" +"If any argument is a float and there are fractional microseconds, the " +"fractional microseconds left over from all arguments are combined and their " +"sum is rounded to the nearest microsecond using round-half-to-even " +"tiebreaker. If no argument is a float, the conversion and normalization " +"processes are exact (no information is lost)." +msgstr "" +"Si l'un des arguments est un flottant et qu'il y a des microsecondes " +"décimales, les microsecondes décimales laissées par les arguments sont " +"combinées et leur somme est arrondie à la microseconde la plus proche (en " +"arrondissant les demis vers le nombre pair). Si aucun argument n'est " +"flottant, les processus de conversion et de normalisation seront exacts (pas " +"d'informations perdues)." + +#: ../Doc/library/datetime.rst:187 +msgid "" +"If the normalized value of days lies outside the indicated range, :exc:" +"`OverflowError` is raised." +msgstr "" +"Si la valeur normalisée des jours déborde de l'intervalle indiqué, une :exc:" +"`OverflowError` est levée." + +#: ../Doc/library/datetime.rst:190 +msgid "" +"Note that normalization of negative values may be surprising at first. For " +"example," +msgstr "" +"Notez que la normalisation de valeurs négatives peut être surprenante au " +"premier abord. Par exemple," + +#: ../Doc/library/datetime.rst:199 +msgid "Class attributes are:" +msgstr "Les attributs de la classe sont :" + +#: ../Doc/library/datetime.rst:203 +msgid "The most negative :class:`timedelta` object, ``timedelta(-999999999)``." +msgstr "L'objet :class:`timedelta` le plus négatif, ``timedelta(-999999999)``." + +#: ../Doc/library/datetime.rst:208 +msgid "" +"The most positive :class:`timedelta` object, ``timedelta(days=999999999, " +"hours=23, minutes=59, seconds=59, microseconds=999999)``." +msgstr "" +"L'objet :class:`timedelta` le plus positif, ``timedelta(days=999999999, " +"hours=23, minutes=59, seconds=59, microseconds=999999)``." + +#: ../Doc/library/datetime.rst:214 +msgid "" +"The smallest possible difference between non-equal :class:`timedelta` " +"objects, ``timedelta(microseconds=1)``." +msgstr "" +"La plus petite différence entre des objets :class:`timedelta` non égaux, " +"``timedelta(microseconds=1)``." + +#: ../Doc/library/datetime.rst:217 +msgid "" +"Note that, because of normalization, ``timedelta.max`` > ``-timedelta.min``. " +"``-timedelta.max`` is not representable as a :class:`timedelta` object." +msgstr "" +"Il est à noter, du fait de la normalisation, que ``timedelta.max`` > ``-" +"timedelta.min``. ``-timedelta.max`` n'est pas représentable sous la forme " +"d'un objet :class:`timedelta`." + +#: ../Doc/library/datetime.rst:220 ../Doc/library/datetime.rst:480 +#: ../Doc/library/datetime.rst:888 ../Doc/library/datetime.rst:1457 +msgid "Instance attributes (read-only):" +msgstr "Attributs de l'instance (en lecture seule) :" + +#: ../Doc/library/datetime.rst:223 +msgid "Attribute" +msgstr "Attribut" + +#: ../Doc/library/datetime.rst:223 +msgid "Value" +msgstr "Valeur" + +#: ../Doc/library/datetime.rst:225 +msgid "``days``" +msgstr "``days``" + +#: ../Doc/library/datetime.rst:225 +msgid "Between -999999999 and 999999999 inclusive" +msgstr "Entre -999999999 et 999999999 inclus" + +#: ../Doc/library/datetime.rst:227 +msgid "``seconds``" +msgstr "``seconds``" + +#: ../Doc/library/datetime.rst:227 +msgid "Between 0 and 86399 inclusive" +msgstr "Entre 0 et 86399 inclus" + +#: ../Doc/library/datetime.rst:229 +msgid "``microseconds``" +msgstr "``microseconds``" + +#: ../Doc/library/datetime.rst:229 +msgid "Between 0 and 999999 inclusive" +msgstr "Entre 0 et 999999 inclus" + +#: ../Doc/library/datetime.rst:232 ../Doc/library/datetime.rst:497 +#: ../Doc/library/datetime.rst:941 ../Doc/library/datetime.rst:1496 +msgid "Supported operations:" +msgstr "Opérations gérées :" + +#: ../Doc/library/datetime.rst:237 ../Doc/library/datetime.rst:500 +#: ../Doc/library/datetime.rst:944 +msgid "Operation" +msgstr "Opération" + +#: ../Doc/library/datetime.rst:237 ../Doc/library/datetime.rst:500 +#: ../Doc/library/datetime.rst:944 +msgid "Result" +msgstr "Résultat" + +#: ../Doc/library/datetime.rst:239 +msgid "``t1 = t2 + t3``" +msgstr "``t1 = t2 + t3``" + +#: ../Doc/library/datetime.rst:239 +msgid "" +"Sum of *t2* and *t3*. Afterwards *t1*-*t2* == *t3* and *t1*-*t3* == *t2* are " +"true. (1)" +msgstr "" +"Somme de *t2* et *t3*. Ensuite ``t1 - t2 == t3`` et ``t1 - t3 == t2`` sont " +"des expressions vraies. (1)" + +#: ../Doc/library/datetime.rst:242 +msgid "``t1 = t2 - t3``" +msgstr "``t1 = t2 - t3``" + +#: ../Doc/library/datetime.rst:242 +msgid "" +"Difference of *t2* and *t3*. Afterwards *t1* == *t2* - *t3* and *t2* == *t1* " +"+ *t3* are true. (1)(6)" +msgstr "" +"Différence entre *t2* et *t3*. Ensuite ``t1 == t2 - t3`` et ``t2 == t1 + " +"t3`` sont des expressions vraies. (1)(6)" + +#: ../Doc/library/datetime.rst:246 +msgid "``t1 = t2 * i or t1 = i * t2``" +msgstr "``t1 = t2 * i or t1 = i * t2``" + +#: ../Doc/library/datetime.rst:246 +msgid "" +"Delta multiplied by an integer. Afterwards *t1* // i == *t2* is true, " +"provided ``i != 0``." +msgstr "" +"Delta multiplié par un entier. Ensuite *t1* // i == *t2* est vrai, en " +"admettant que ``i != 0``." + +#: ../Doc/library/datetime.rst:250 +msgid "In general, *t1* \\* i == *t1* \\* (i-1) + *t1* is true. (1)" +msgstr "De manière générale, *t1* \\* i == *t1* \\* (i-1) + *t1* est vrai. (1)" + +#: ../Doc/library/datetime.rst:253 +msgid "``t1 = t2 * f or t1 = f * t2``" +msgstr "``t1 = t2 * f or t1 = f * t2``" + +#: ../Doc/library/datetime.rst:253 +msgid "" +"Delta multiplied by a float. The result is rounded to the nearest multiple " +"of timedelta.resolution using round-half-to-even." +msgstr "" +"Delta multiplié par un flottant. Le résultat est arrondi au multiple le plus " +"proche de ``timedelta.resolution`` en utilisant la règle de l'arrondi au " +"pair le plus proche." + +#: ../Doc/library/datetime.rst:257 +msgid "``f = t2 / t3``" +msgstr "``f = t2 / t3``" + +#: ../Doc/library/datetime.rst:257 +msgid "" +"Division (3) of overall duration *t2* by interval unit *t3*. Returns a :" +"class:`float` object." +msgstr "" +"Division (3) de la durée totale *t2* par l'unité d'intervalle *t3*. Renvoie " +"un objet :class:`float`." + +#: ../Doc/library/datetime.rst:261 +msgid "``t1 = t2 / f or t1 = t2 / i``" +msgstr "``t1 = t2 / f or t1 = t2 / i``" + +#: ../Doc/library/datetime.rst:261 +msgid "" +"Delta divided by a float or an int. The result is rounded to the nearest " +"multiple of timedelta.resolution using round-half-to-even." +msgstr "" +"Delta divisé par un flottant ou un entier. Le résultat est arrondi au " +"multiple le plus proche de ``timedelta.resolution`` en utilisant la règle de " +"l'arrondi au pair le plus proche." + +#: ../Doc/library/datetime.rst:265 +msgid "``t1 = t2 // i`` or ``t1 = t2 // t3``" +msgstr "``t1 = t2 // i`` or ``t1 = t2 // t3``" + +#: ../Doc/library/datetime.rst:265 +msgid "" +"The floor is computed and the remainder (if any) is thrown away. In the " +"second case, an integer is returned. (3)" +msgstr "" +"Le quotient est calculé et le reste (s'il y en a un) est ignoré. Dans le " +"second cas, un entier est renvoyé. (3)" + +#: ../Doc/library/datetime.rst:269 +msgid "``t1 = t2 % t3``" +msgstr "``t1 = t2 % t3``" + +#: ../Doc/library/datetime.rst:269 +msgid "The remainder is computed as a :class:`timedelta` object. (3)" +msgstr "Le reste est calculé comme un objet de type :class:`timedelta`. (3)" + +#: ../Doc/library/datetime.rst:272 +msgid "``q, r = divmod(t1, t2)``" +msgstr "``q, r = divmod(t1, t2)``" + +#: ../Doc/library/datetime.rst:272 +msgid "" +"Computes the quotient and the remainder: ``q = t1 // t2`` (3) and ``r = t1 % " +"t2``. q is an integer and r is a :class:`timedelta` object." +msgstr "" +"Calcule le quotient et le reste : ``q = t1 // t2`` (3) et ``r = t1 % t2``. q " +"est un entier et r est un objet :class:`timedelta`." + +#: ../Doc/library/datetime.rst:277 +msgid "``+t1``" +msgstr "``+t1``" + +#: ../Doc/library/datetime.rst:277 +msgid "Returns a :class:`timedelta` object with the same value. (2)" +msgstr "Renvoie un objet :class:`timedelta` avec la même valeur. (2)" + +#: ../Doc/library/datetime.rst:280 +msgid "``-t1``" +msgstr "``-t1``" + +#: ../Doc/library/datetime.rst:280 +msgid "" +"equivalent to :class:`timedelta`\\ (-*t1.days*, -*t1.seconds*, -*t1." +"microseconds*), and to *t1*\\* -1. (1)(4)" +msgstr "" +"équivalent à :class:`timedelta`\\ (*-t1.days*, *-t1.seconds*, *-t1." +"microseconds*), et à ``t1 * -1``. (1)(4)" + +#: ../Doc/library/datetime.rst:285 +msgid "``abs(t)``" +msgstr "``abs(t)``" + +#: ../Doc/library/datetime.rst:285 +msgid "" +"equivalent to +\\ *t* when ``t.days >= 0``, and to -*t* when ``t.days < 0``. " +"(2)" +msgstr "" +"équivalent à ``+t`` quand ``t.days >= 0``, et à ``-t`` quand ``t.days < 0``. " +"(2)" + +#: ../Doc/library/datetime.rst:288 +msgid "``str(t)``" +msgstr "``str(t)``" + +#: ../Doc/library/datetime.rst:288 +msgid "" +"Returns a string in the form ``[D day[s], ][H]H:MM:SS[.UUUUUU]``, where D is " +"negative for negative ``t``. (5)" +msgstr "" +"Renvoie une chaîne de la forme ``[D day[s], ][H]H:MM:SS[.UUUUUU]``, où D est " +"négatif pour ``t`` négatif. (5)" + +#: ../Doc/library/datetime.rst:292 +msgid "``repr(t)``" +msgstr "``repr(t)``" + +#: ../Doc/library/datetime.rst:292 +msgid "" +"Returns a string representation of the :class:`timedelta` object as a " +"constructor call with canonical attribute values." +msgstr "" +"Renvoie une chaîne de la forme objet :class:`timedelta` comme un appel " +"construit avec des valeurs d'attributs canoniques." + +#: ../Doc/library/datetime.rst:298 ../Doc/library/datetime.rst:514 +#: ../Doc/library/datetime.rst:2190 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/library/datetime.rst:301 +msgid "This is exact, but may overflow." +msgstr "Ceci est exact, mais peut provoquer un débordement." + +#: ../Doc/library/datetime.rst:304 +msgid "This is exact, and cannot overflow." +msgstr "Ceci est exact, et ne peut pas provoquer un débordement." + +#: ../Doc/library/datetime.rst:307 +msgid "Division by 0 raises :exc:`ZeroDivisionError`." +msgstr "Une division par 0 provoque :exc:`ZeroDivisionError`." + +#: ../Doc/library/datetime.rst:310 +msgid "-*timedelta.max* is not representable as a :class:`timedelta` object." +msgstr "" +"*-timedelta.max* n'est pas représentable avec un objet :class:`timedelta`." + +#: ../Doc/library/datetime.rst:313 +msgid "" +"String representations of :class:`timedelta` objects are normalized " +"similarly to their internal representation. This leads to somewhat unusual " +"results for negative timedeltas. For example:" +msgstr "" +"La représentation en chaîne de caractères des objets :class:`timedelta` est " +"normalisée similairement à leur représentation interne. Cela amène à des " +"résultats inhabituels pour des *timedeltas* négatifs. Par exemple :" + +#: ../Doc/library/datetime.rst:323 +msgid "" +"The expression ``t2 - t3`` will always be equal to the expression ``t2 + (-" +"t3)`` except when t3 is equal to ``timedelta.max``; in that case the former " +"will produce a result while the latter will overflow." +msgstr "" +"L'expression ``t2 - t3`` est toujours égale à l'expression ``t2 + (-t3)`` " +"sauf si *t3* vaut ``timedelta.max` ; dans ce cas, la première expression " +"produit une valeur alors que la seconde lève une ``OverflowError``." + +#: ../Doc/library/datetime.rst:327 +msgid "" +"In addition to the operations listed above :class:`timedelta` objects " +"support certain additions and subtractions with :class:`date` and :class:`." +"datetime` objects (see below)." +msgstr "" +"En plus des opérations listées ci-dessus, les objets :class:`timedelta` " +"implémentent certaines additions et soustractions avec des objets :class:" +"`date` et :class:`datetime` (voir ci-dessous)." + +#: ../Doc/library/datetime.rst:331 +msgid "" +"Floor division and true division of a :class:`timedelta` object by another :" +"class:`timedelta` object are now supported, as are remainder operations and " +"the :func:`divmod` function. True division and multiplication of a :class:" +"`timedelta` object by a :class:`float` object are now supported." +msgstr "" +"La division entière et la vraie division d'un objet :class:`timedelta` par " +"un autre :class:`timedelta` sont maintenant gérées, comme le sont les " +"opérations de reste euclidien et la fonction :func:`divmod`. La vraie " +"division et la multiplication d'un objet :class:`timedelta` par un :class:" +"`float` sont maintenant implémentées." + +#: ../Doc/library/datetime.rst:338 +msgid "" +"Comparisons of :class:`timedelta` objects are supported with the :class:" +"`timedelta` object representing the smaller duration considered to be the " +"smaller timedelta. In order to stop mixed-type comparisons from falling back " +"to the default comparison by object address, when a :class:`timedelta` " +"object is compared to an object of a different type, :exc:`TypeError` is " +"raised unless the comparison is ``==`` or ``!=``. The latter cases return :" +"const:`False` or :const:`True`, respectively." +msgstr "" +"Les comparaisons entre objets :class:`timedelta` sont maintenant gérées avec " +"le :class:`timedelta` représentant la plus courte durée considéré comme le " +"plus petit. Afin d'empêcher les comparaisons de types mixtes de retomber sur " +"la comparaison par défaut par l'adresse de l'objet, quand un objet :class:" +"`timedelta` est comparé à un objet de type différent, une :exc:`TypeError` " +"est levée à moins que la comparaison soit ``==`` ou ``!=``. Ces derniers " +"cas renvoient respectivement :const:`False` et :const:`True`." + +#: ../Doc/library/datetime.rst:346 +msgid "" +":class:`timedelta` objects are :term:`hashable` (usable as dictionary keys), " +"support efficient pickling, and in Boolean contexts, a :class:`timedelta` " +"object is considered to be true if and only if it isn't equal to " +"``timedelta(0)``." +msgstr "" +"Les objets :class:`timedelta` sont :term:`hashable` (utilisables comme clés " +"de dictionnaires), implémentent le protocole *pickle* et, dans un contexte " +"booléen, un :class:`timedelta` est considéré vrai si et seulement si il " +"n'est pas égal à ``timedelta(0)``." + +#: ../Doc/library/datetime.rst:350 ../Doc/library/datetime.rst:544 +#: ../Doc/library/datetime.rst:1018 ../Doc/library/datetime.rst:1546 +msgid "Instance methods:" +msgstr "Méthodes de l'instance :" + +#: ../Doc/library/datetime.rst:354 +msgid "" +"Return the total number of seconds contained in the duration. Equivalent to " +"``td / timedelta(seconds=1)``. For interval units other than seconds, use " +"the division form directly (e.g. ``td / timedelta(microseconds=1)``)." +msgstr "" +"Renvoie le nombre total de secondes contenues dans la durée. Équivalent à " +"``td / timedelta(seconds=1)``. Pour un intervalle dont l'unité n'est pas la " +"seconde, utilisez directement la division (par exemple, ``td / " +"timedelta(microseconds=1)``)." + +#: ../Doc/library/datetime.rst:358 +msgid "" +"Note that for very large time intervals (greater than 270 years on most " +"platforms) this method will lose microsecond accuracy." +msgstr "" +"Notez que pour des intervalles de temps très larges (supérieurs à 270 ans " +"sur la plupart des plateformes), cette méthode perdra la précision des " +"microsecondes." + +#: ../Doc/library/datetime.rst:364 +msgid "Example usage:" +msgstr "Exemple d'utilisation :" + +#: ../Doc/library/datetime.rst:390 +msgid ":class:`date` Objects" +msgstr "Objets :class:`date`" + +#: ../Doc/library/datetime.rst:392 +msgid "" +"A :class:`date` object represents a date (year, month and day) in an " +"idealized calendar, the current Gregorian calendar indefinitely extended in " +"both directions. January 1 of year 1 is called day number 1, January 2 of " +"year 1 is called day number 2, and so on. This matches the definition of " +"the \"proleptic Gregorian\" calendar in Dershowitz and Reingold's book " +"Calendrical Calculations, where it's the base calendar for all " +"computations. See the book for algorithms for converting between proleptic " +"Gregorian ordinals and many other calendar systems." +msgstr "" +"Un objet :class:`date` représente une date (année, mois et jour) dans un " +"calendrier idéal, l'actuel calendrier grégorien étendu indéfiniment dans les " +"deux directions. Le 1er janvier de l'an 1 est appelé le jour numéro 1, le 2 " +"janvier de l'an 1 est appelé le jour numéro 2, et ainsi de suite. Cela " +"correspond à la définition du calendrier « grégorien proleptique » dans le " +"livre *Calendrical Calculations* de Dershowitz et Reingold, où il est la " +"base de tous les calculs. Référez-vous au livre pour les algorithmes de " +"conversion entre calendriers grégorien proleptique et les autres systèmes." + +#: ../Doc/library/datetime.rst:404 +msgid "" +"All arguments are required. Arguments may be integers, in the following " +"ranges:" +msgstr "" +"Tous les arguments sont requis. Les arguments peuvent être des entiers, " +"dans les intervalles suivant :" + +#: ../Doc/library/datetime.rst:407 +msgid "``MINYEAR <= year <= MAXYEAR``" +msgstr "``MINYEAR <= year <= MAXYEAR``" + +#: ../Doc/library/datetime.rst:408 +msgid "``1 <= month <= 12``" +msgstr "``1 <= month <= 12``" + +#: ../Doc/library/datetime.rst:409 +msgid "``1 <= day <= number of days in the given month and year``" +msgstr "``1 <= day <= nombre de jours dans le mois et l'année donnés``" + +#: ../Doc/library/datetime.rst:411 ../Doc/library/datetime.rst:722 +msgid "" +"If an argument outside those ranges is given, :exc:`ValueError` is raised." +msgstr "" +"Si un argument est donné en dehors de ces intervalles, une :exc:`valueError` " +"est levée." + +#: ../Doc/library/datetime.rst:414 ../Doc/library/datetime.rst:727 +msgid "Other constructors, all class methods:" +msgstr "Autres constructeurs, méthodes de classe :" + +#: ../Doc/library/datetime.rst:418 +msgid "" +"Return the current local date. This is equivalent to ``date." +"fromtimestamp(time.time())``." +msgstr "" +"Renvoie la date locale courante. Cela est équivalent à ``date." +"fromtimestamp(time.time())``." + +#: ../Doc/library/datetime.rst:424 +msgid "" +"Return the local date corresponding to the POSIX timestamp, such as is " +"returned by :func:`time.time`. This may raise :exc:`OverflowError`, if the " +"timestamp is out of the range of values supported by the platform C :c:func:" +"`localtime` function, and :exc:`OSError` on :c:func:`localtime` failure. " +"It's common for this to be restricted to years from 1970 through 2038. Note " +"that on non-POSIX systems that include leap seconds in their notion of a " +"timestamp, leap seconds are ignored by :meth:`fromtimestamp`." +msgstr "" +"Renvoie la date locale correspondant à l'horodatage (*timestamp* en anglais) " +"*POSIX*, tel que renvoyé par :func:`time.time`. Elle peut lever une :exc:" +"`OverflowError`, si l'horodatage est en dehors des bornes gérées par la " +"fonction C :c:func:`localtime` de la plateforme, et une :exc:`OSError` en " +"cas d'échec de :c:func:`localtime`. Il est commun d'être restreint aux " +"années entre 1970 et 2038. Notez que sur les systèmes non *POSIX* qui " +"incluent les secondes de décalage dans leur notion d'horodatage, ces " +"secondes sont ignorées par :meth:`fromtimestamp`." + +#: ../Doc/library/datetime.rst:432 +msgid "" +"Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " +"out of the range of values supported by the platform C :c:func:`localtime` " +"function. Raise :exc:`OSError` instead of :exc:`ValueError` on :c:func:" +"`localtime` failure." +msgstr "" +"Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si " +"l'horodatage (*timestamp* en anglais) est en dehors des bornes gérées par la " +"fonction C :c:func:`localtime` de la plateforme. Lève une :exc:`OSError` " +"plutôt qu'une :exc:`ValueError` en cas d'échec de :c:func:`localtime`." + +#: ../Doc/library/datetime.rst:441 +msgid "" +"Return the date corresponding to the proleptic Gregorian ordinal, where " +"January 1 of year 1 has ordinal 1. :exc:`ValueError` is raised unless ``1 " +"<= ordinal <= date.max.toordinal()``. For any date *d*, ``date.fromordinal(d." +"toordinal()) == d``." +msgstr "" +"Renvoie la date correspondant à l'ordinal grégorien proleptique, où le 1er " +"janvier de l'an 1 a l'ordinal 1. :exc:`ValueError` est levée à moins que " +"``1 <= ordinal <= date.max.toordinal()``. Pour toute date *d*, ``date." +"fromordinal(d.toordinal()) == d``." + +#: ../Doc/library/datetime.rst:449 +msgid "" +"Return a :class:`date` corresponding to a *date_string* in the format " +"emitted by :meth:`date.isoformat`. Specifically, this function supports " +"strings in the format(s) ``YYYY-MM-DD``." +msgstr "" +"Renvoie une :class:`date` correspondant à *date_string* dans le format émis " +"par :meth:`date.isoformat`. Spécifiquement, cette fonction gère des chaînes " +"dans le(s) format(s) ``YYYY-MM-DD``." + +#: ../Doc/library/datetime.rst:455 +msgid "" +"This does not support parsing arbitrary ISO 8601 strings - it is only " +"intended as the inverse operation of :meth:`date.isoformat`." +msgstr "" +"Ceci n'implémente pas l'analyse de chaînes ISO 8601 arbitraires, ceci est " +"seulement destiné à réaliser l'opération inverse de :meth:`date.isoformat`." + +#: ../Doc/library/datetime.rst:462 ../Doc/library/datetime.rst:868 +#: ../Doc/library/datetime.rst:1437 ../Doc/library/datetime.rst:2007 +msgid "Class attributes:" +msgstr "Attributs de la classe :" + +#: ../Doc/library/datetime.rst:466 +msgid "The earliest representable date, ``date(MINYEAR, 1, 1)``." +msgstr "La plus vieille date représentable, ``date(MINYEAR, 1, 1)``." + +#: ../Doc/library/datetime.rst:471 +msgid "The latest representable date, ``date(MAXYEAR, 12, 31)``." +msgstr "La dernière date représentable, ``date(MAXYEAR, 12, 31)``." + +#: ../Doc/library/datetime.rst:476 +msgid "" +"The smallest possible difference between non-equal date objects, " +"``timedelta(days=1)``." +msgstr "" +"La plus petite différence possible entre deux objets dates non-égaux, " +"``timedelta(days=1)``." + +#: ../Doc/library/datetime.rst:484 ../Doc/library/datetime.rst:892 +msgid "Between :const:`MINYEAR` and :const:`MAXYEAR` inclusive." +msgstr "Entre :const:`MINYEAR` et :const:`MAXYEAR` inclus." + +#: ../Doc/library/datetime.rst:489 ../Doc/library/datetime.rst:897 +msgid "Between 1 and 12 inclusive." +msgstr "Entre 1 et 12 inclus." + +#: ../Doc/library/datetime.rst:494 ../Doc/library/datetime.rst:902 +msgid "Between 1 and the number of days in the given month of the given year." +msgstr "Entre 1 et le nombre de jours du mois donné de l'année donnée." + +#: ../Doc/library/datetime.rst:502 +msgid "``date2 = date1 + timedelta``" +msgstr "``date2 = date1 + timedelta``" + +#: ../Doc/library/datetime.rst:502 +msgid "*date2* is ``timedelta.days`` days removed from *date1*. (1)" +msgstr "" +"*date2* est décalée de ``timedelta.days`` jours par rapport à *date1*. (1)" + +#: ../Doc/library/datetime.rst:505 +msgid "``date2 = date1 - timedelta``" +msgstr "``date2 = date1 - timedelta``" + +#: ../Doc/library/datetime.rst:505 +msgid "Computes *date2* such that ``date2 + timedelta == date1``. (2)" +msgstr "Calcule *date2* de façon à avoir ``date2 + timedelta == date1``. (2)" + +#: ../Doc/library/datetime.rst:508 +msgid "``timedelta = date1 - date2``" +msgstr "``timedelta = date1 - date2``" + +#: ../Doc/library/datetime.rst:508 ../Doc/library/datetime.rst:950 +msgid "\\(3)" +msgstr "\\(3)" + +#: ../Doc/library/datetime.rst:510 +msgid "``date1 < date2``" +msgstr "``date1 < date2``" + +#: ../Doc/library/datetime.rst:510 +msgid "" +"*date1* is considered less than *date2* when *date1* precedes *date2* in " +"time. (4)" +msgstr "" +"*date1* est considérée comme inférieure à *date2* quand *date1* précède " +"*date2* dans le temps. (4)" + +#: ../Doc/library/datetime.rst:517 +msgid "" +"*date2* is moved forward in time if ``timedelta.days > 0``, or backward if " +"``timedelta.days < 0``. Afterward ``date2 - date1 == timedelta.days``. " +"``timedelta.seconds`` and ``timedelta.microseconds`` are ignored. :exc:" +"`OverflowError` is raised if ``date2.year`` would be smaller than :const:" +"`MINYEAR` or larger than :const:`MAXYEAR`." +msgstr "" +"*date2* est déplacée en avant dans le temps si ``timedelta.days > 0``, ou en " +"arrière si ``timedelta.days < 0``. Après quoi ``date2 - date1 == timedelta." +"days``. ``timedelta.seconds`` et ``timedelta.microseconds`` sont ignorés. " +"Une :exc:`OverflowError` est levée si ``date2.year`` devait être inférieure " +"à :const:`MINYEAR` ou supérieure à :const:`MAXYEAR`." + +#: ../Doc/library/datetime.rst:524 +msgid "``timedelta.seconds`` and ``timedelta.microseconds`` are ignored." +msgstr "``timedelta.seconds`` et ``timedelta.microseconds`` sont ignorés." + +#: ../Doc/library/datetime.rst:527 +msgid "" +"This is exact, and cannot overflow. timedelta.seconds and timedelta." +"microseconds are 0, and date2 + timedelta == date1 after." +msgstr "" +"Cela est exact, et ne peut pas dépasser les bornes. ``timedelta.seconds`` " +"et ``timedelta.microseconds`` valent ``0``, et ``date2 + timedelta == " +"date1`` après cela." + +#: ../Doc/library/datetime.rst:531 +msgid "" +"In other words, ``date1 < date2`` if and only if ``date1.toordinal() < date2." +"toordinal()``. Date comparison raises :exc:`TypeError` if the other " +"comparand isn't also a :class:`date` object. However, ``NotImplemented`` is " +"returned instead if the other comparand has a :meth:`timetuple` attribute. " +"This hook gives other kinds of date objects a chance at implementing mixed-" +"type comparison. If not, when a :class:`date` object is compared to an " +"object of a different type, :exc:`TypeError` is raised unless the comparison " +"is ``==`` or ``!=``. The latter cases return :const:`False` or :const:" +"`True`, respectively." +msgstr "" +"En d'autres termes, ``date1 < date2`` si et seulement si ``date1.toordinal() " +"< date2.toordinal()``. La comparaison de dates lève une :exc:`TypeError` si " +"l'autre opérande n'est pas un objet :class:`date`. Cependant, " +"``NotImplemented`` est renvoyé à la place si l'autre opérande a un attribut :" +"meth:`timetuple`. Cela permet à d'autres types d'objets dates d'avoir une " +"chance d'implémenter une comparaison entre types différents. Sinon, quand un " +"objet :class:`date` est comparé à un objet d'un type différent, une :exc:" +"`TypeError` est levée à moins que la comparaison soit ``==`` ou ``!=``. Ces " +"derniers cas renvoient respectivement :const:`False` et :const:`True`." + +#: ../Doc/library/datetime.rst:541 +msgid "" +"Dates can be used as dictionary keys. In Boolean contexts, all :class:`date` " +"objects are considered to be true." +msgstr "" +"Les dates peuvent être utilisées en tant que clés de dictionnaires. Dans un " +"contexte booléen, tous les objets :class:`date` sont considérés comme vrais." + +#: ../Doc/library/datetime.rst:548 +msgid "" +"Return a date with the same value, except for those parameters given new " +"values by whichever keyword arguments are specified. For example, if ``d == " +"date(2002, 12, 31)``, then ``d.replace(day=26) == date(2002, 12, 26)``." +msgstr "" +"Renvoie une date avec la même valeur, excepté pour les valeurs spécifiées " +"par arguments nommés. Par exemple, si ``d == date(2002, 12, 31)``, alors " +"``d.replace(day=26) == date(2002, 12, 26)``." + +#: ../Doc/library/datetime.rst:555 +msgid "" +"Return a :class:`time.struct_time` such as returned by :func:`time." +"localtime`. The hours, minutes and seconds are 0, and the DST flag is -1. " +"``d.timetuple()`` is equivalent to ``time.struct_time((d.year, d.month, d." +"day, 0, 0, 0, d.weekday(), yday, -1))``, where ``yday = d.toordinal() - " +"date(d.year, 1, 1).toordinal() + 1`` is the day number within the current " +"year starting with ``1`` for January 1st." +msgstr "" +"Renvoie une :class:`time.struct_time` telle que renvoyée par :func:`time." +"localtime`. Les heures, minutes et secondes valent 0, et le *flag* *DST* " +"(heure d'été) est ``-1``. ``d.timetuple()`` est équivalent à ``time." +"struct_time((d.year, d.month, d.day, 0, 0, 0, d.weekday(), yday, -1))``, où " +"``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` est le numéro " +"du jour dans l'année courante, commençant avec ``1`` pour le 1er janvier." + +#: ../Doc/library/datetime.rst:565 +msgid "" +"Return the proleptic Gregorian ordinal of the date, where January 1 of year " +"1 has ordinal 1. For any :class:`date` object *d*, ``date.fromordinal(d." +"toordinal()) == d``." +msgstr "" +"Renvoie l'ordinal grégorien proleptique de la date, où le 1er janvier de " +"l'an 1 a l'ordinal 1. Pour tout objet :class:`date` *d*, ``date." +"fromordinal(d.toordinal()) == d``." + +#: ../Doc/library/datetime.rst:572 +msgid "" +"Return the day of the week as an integer, where Monday is 0 and Sunday is 6. " +"For example, ``date(2002, 12, 4).weekday() == 2``, a Wednesday. See also :" +"meth:`isoweekday`." +msgstr "" +"Renvoie le jour de la semaine sous forme de nombre, où lundi vaut 0 et " +"dimanche vaut 6. Par exemple, ``date(2002, 12, 4).weekday() == 2``, un " +"mercredi. Voir aussi :meth:`isoweekday`." + +#: ../Doc/library/datetime.rst:579 +msgid "" +"Return the day of the week as an integer, where Monday is 1 and Sunday is 7. " +"For example, ``date(2002, 12, 4).isoweekday() == 3``, a Wednesday. See also :" +"meth:`weekday`, :meth:`isocalendar`." +msgstr "" +"Renvoie le jour de la semaine sous forme de nombre, où lundi vaut 1 et " +"dimanche vaut 7. Par exemple, ``date(2002, 12, 4).isoweekday() == 3``, un " +"mercredi. Voir aussi :meth:`weekday`, :meth:`isocalendar`." + +#: ../Doc/library/datetime.rst:586 +msgid "Return a 3-tuple, (ISO year, ISO week number, ISO weekday)." +msgstr "" +"Renvoie un *tuple* de 3 éléments, (année ISO, numéro de semaine ISO, jour de " +"la semaine ISO)." + +#: ../Doc/library/datetime.rst:588 +msgid "" +"The ISO calendar is a widely used variant of the Gregorian calendar. See " +"https://www.staff.science.uu.nl/~gent0113/calendar/isocalendar.htm for a " +"good explanation." +msgstr "" +"Le calendrier ISO est une variante largement utilisée du calendrier " +"grégorien. Voir https://www.staff.science.uu.nl/~gent0113/calendar/" +"isocalendar.htm pour une bonne explication." + +#: ../Doc/library/datetime.rst:592 +msgid "" +"The ISO year consists of 52 or 53 full weeks, and where a week starts on a " +"Monday and ends on a Sunday. The first week of an ISO year is the first " +"(Gregorian) calendar week of a year containing a Thursday. This is called " +"week number 1, and the ISO year of that Thursday is the same as its " +"Gregorian year." +msgstr "" +"Une année ISO est composée de 52 ou 53 semaines pleines, où chaque semaine " +"débute un lundi et se termine un dimanche. La première semaine d'une année " +"ISO est la première semaine calendaire (grégorienne) de l'année comportant " +"un jeudi. Elle est appelée la semaine numéro 1, et l'année ISO de ce " +"mercredi est la même que son année grégorienne." + +#: ../Doc/library/datetime.rst:597 +msgid "" +"For example, 2004 begins on a Thursday, so the first week of ISO year 2004 " +"begins on Monday, 29 Dec 2003 and ends on Sunday, 4 Jan 2004, so that " +"``date(2003, 12, 29).isocalendar() == (2004, 1, 1)`` and ``date(2004, 1, 4)." +"isocalendar() == (2004, 1, 7)``." +msgstr "" +"Par exemple, l'année 2004 débute un jeudi, donc la première semaine de " +"l'année ISO 2004 débute le lundi 29 décembre 2003 et se termine le dimanche " +"4 janvier 2004, ainsi ``date(2003, 12, 29).isocalendar() == (2004, 1, 1)`` " +"et ``date(2004, 1, 4).isocalendar() == (2004, 1, 7)``." + +#: ../Doc/library/datetime.rst:605 +msgid "" +"Return a string representing the date in ISO 8601 format, 'YYYY-MM-DD'. For " +"example, ``date(2002, 12, 4).isoformat() == '2002-12-04'``." +msgstr "" +"Renvoie une chaîne de caractères représentant la date au format ISO 8601, " +"\"YYYY-MM-DD\". Par exemple, ``date(2002, 12, 4).isoformat() == " +"'2002-12-04'``." + +#: ../Doc/library/datetime.rst:611 +msgid "For a date *d*, ``str(d)`` is equivalent to ``d.isoformat()``." +msgstr "Pour une date *d*, ``str(d)`` est équivalent à ``d.isoformat()``." + +#: ../Doc/library/datetime.rst:616 +msgid "" +"Return a string representing the date, for example ``date(2002, 12, 4)." +"ctime() == 'Wed Dec 4 00:00:00 2002'``. ``d.ctime()`` is equivalent to " +"``time.ctime(time.mktime(d.timetuple()))`` on platforms where the native C :" +"c:func:`ctime` function (which :func:`time.ctime` invokes, but which :meth:" +"`date.ctime` does not invoke) conforms to the C standard." +msgstr "" +"Renvoie une chaîne de caractères représentant la date, par exemple " +"``date(2002, 12, 4).ctime() == 'Wed Dec 4 00:00:00 2002'``. ``d.ctime()`` " +"est équivalent à ``time.ctime(time.mktime(d.timetuple()))`` sur les " +"plateformes où la fonction C native :c:func:`ctime` (que :func:`time.ctime` " +"invoque, mais pas :meth:`date.ctime`) est conforme au standard C." + +#: ../Doc/library/datetime.rst:625 +msgid "" +"Return a string representing the date, controlled by an explicit format " +"string. Format codes referring to hours, minutes or seconds will see 0 " +"values. For a complete list of formatting directives, see :ref:`strftime-" +"strptime-behavior`." +msgstr "" +"Renvoie une chaîne de caractères représentant la date, contrôlée par une " +"chaîne de formatage explicite. Les codes de formatage se référant aux " +"heures, minutes ou secondes auront pour valeur 0. Pour une liste complète " +"des directives de formatage, voir :ref:`strftime-strptime-behavior`." + +#: ../Doc/library/datetime.rst:633 +msgid "" +"Same as :meth:`.date.strftime`. This makes it possible to specify a format " +"string for a :class:`.date` object in :ref:`formatted string literals ` and when using :meth:`str.format`. For a complete list of " +"formatting directives, see :ref:`strftime-strptime-behavior`." +msgstr "" +"Identique à :meth:`.date.strftime`. Cela permet de spécifier une chaîne de " +"formatage pour un objet :class:`.date` dans une :ref:`chaîne de formatage " +"littérale ` et à l'utilisation de :meth:`str.format`. Pour une " +"liste complète des directives de formatage, voir :ref:`strftime-strptime-" +"behavior`." + +#: ../Doc/library/datetime.rst:640 +msgid "Example of counting days to an event::" +msgstr "Exemple de décompte des jours avant un évènement ::" + +#: ../Doc/library/datetime.rst:658 +msgid "Example of working with :class:`date`:" +msgstr "Exemple d'utilisation de la classe :class:`date` :" + +#: ../Doc/library/datetime.rst:697 +msgid ":class:`.datetime` Objects" +msgstr "Objets :class:`.datetime`" + +#: ../Doc/library/datetime.rst:699 +msgid "" +"A :class:`.datetime` object is a single object containing all the " +"information from a :class:`date` object and a :class:`.time` object. Like " +"a :class:`date` object, :class:`.datetime` assumes the current Gregorian " +"calendar extended in both directions; like a time object, :class:`.datetime` " +"assumes there are exactly 3600\\*24 seconds in every day." +msgstr "" +"Un objet :class:`.datetime` est un objet comportant toutes les informations " +"d'un objet :class:`date` et d'un objet :class:`.time`. Comme un objet :class:" +"`date`, un objet :class:`.datetime` utilise l'actuel calendrier Grégorien " +"étendu vers le passé et le futur ; comme un objet ``time``, un objet :class:" +"`.datetime` suppose qu'il y a exactement 3600\\*24 secondes chaque jour." + +#: ../Doc/library/datetime.rst:705 +msgid "Constructor:" +msgstr "Constructeur :" + +#: ../Doc/library/datetime.rst:709 +msgid "" +"The year, month and day arguments are required. *tzinfo* may be ``None``, " +"or an instance of a :class:`tzinfo` subclass. The remaining arguments may " +"be integers, in the following ranges:" +msgstr "" +"Les arguments *year*, *month* et *day* sont requis. *tzinfo* peut être " +"``None``, ou une instance d'une sous-classe de :class:`tzinfo`. Les " +"arguments restant doivent être des nombres, dans les intervalles suivants :" + +#: ../Doc/library/datetime.rst:713 +msgid "``MINYEAR <= year <= MAXYEAR``," +msgstr "``MINYEAR <= year <= MAXYEAR``," + +#: ../Doc/library/datetime.rst:714 +msgid "``1 <= month <= 12``," +msgstr "``1 <= month <= 12``," + +#: ../Doc/library/datetime.rst:715 +msgid "``1 <= day <= number of days in the given month and year``," +msgstr "``1 <= day <= nombre de jours dans le mois donné de l'année donnée``," + +#: ../Doc/library/datetime.rst:716 ../Doc/library/datetime.rst:1428 +msgid "``0 <= hour < 24``," +msgstr "``0 <= hour < 24``," + +#: ../Doc/library/datetime.rst:717 ../Doc/library/datetime.rst:1429 +msgid "``0 <= minute < 60``," +msgstr "``0 <= minute < 60``," + +#: ../Doc/library/datetime.rst:718 ../Doc/library/datetime.rst:1430 +msgid "``0 <= second < 60``," +msgstr "``0 <= second < 60``," + +#: ../Doc/library/datetime.rst:719 ../Doc/library/datetime.rst:1431 +msgid "``0 <= microsecond < 1000000``," +msgstr "``0 <= microsecond < 1000000``," + +#: ../Doc/library/datetime.rst:720 ../Doc/library/datetime.rst:1432 +msgid "``fold in [0, 1]``." +msgstr "``fold in [0, 1]``." + +#: ../Doc/library/datetime.rst:724 ../Doc/library/datetime.rst:1052 +#: ../Doc/library/datetime.rst:1556 +msgid "Added the ``fold`` argument." +msgstr "Ajout de l'argument ``fold``." + +#: ../Doc/library/datetime.rst:731 +msgid "" +"Return the current local datetime, with :attr:`.tzinfo` ``None``. This is " +"equivalent to ``datetime.fromtimestamp(time.time())``. See also :meth:" +"`now`, :meth:`fromtimestamp`." +msgstr "" +"Renvoie le *datetime* local courant, avec :attr:`.tzinfo` à ``None``. Cela " +"est équivalent à ``datetime.fromtimestamp(time.time())``. Voir aussi :meth:" +"`now`, :meth:`fromtimestamp`." + +#: ../Doc/library/datetime.rst:738 +msgid "" +"Return the current local date and time. If optional argument *tz* is " +"``None`` or not specified, this is like :meth:`today`, but, if possible, " +"supplies more precision than can be gotten from going through a :func:`time." +"time` timestamp (for example, this may be possible on platforms supplying " +"the C :c:func:`gettimeofday` function)." +msgstr "" +"Renvoie la date et l'heure courantes locales. Si l'argument optionnel *tz* " +"est ``None`` ou n'est pas spécifié, la méthode est similaire à :meth:" +"`today`, mais, si possible, apporte plus de précisions que ce qui peut être " +"trouvé à travers un horodatage :func:`time.time` (par exemple, cela peut " +"être possible sur des plateformes fournissant la fonction C :c:func:" +"`gettimeofday`)." + +#: ../Doc/library/datetime.rst:744 +msgid "" +"If *tz* is not ``None``, it must be an instance of a :class:`tzinfo` " +"subclass, and the current date and time are converted to *tz*’s time zone. " +"In this case the result is equivalent to ``tz.fromutc(datetime.utcnow()." +"replace(tzinfo=tz))``. See also :meth:`today`, :meth:`utcnow`." +msgstr "" +"Si *tz* n'est pas ``None``, il doit être une instance d'une sous-classe :" +"class:`tzinfo`, et la date et l'heure courantes sont converties vers le " +"fuseau horaire *tz*. Dans ce cas le résultat est équivalent à ``tz." +"fromutc(datetime.utcnow().replace(tzinfo=tz))``. Voir aussi :meth:`today`, :" +"meth:`utcnow`." + +#: ../Doc/library/datetime.rst:752 +msgid "" +"Return the current UTC date and time, with :attr:`.tzinfo` ``None``. This is " +"like :meth:`now`, but returns the current UTC date and time, as a naive :" +"class:`.datetime` object. An aware current UTC datetime can be obtained by " +"calling ``datetime.now(timezone.utc)``. See also :meth:`now`." +msgstr "" +"Renvoie la date et l'heure UTC courantes, avec :attr:`.tzinfo` à ``None``. " +"C'est semblable à :meth:`now`, mais renvoie la date et l'heure UTC " +"courantes, comme un objet :class:`.datetime` naïf. Un *datetime* UTC " +"courant avisé peut être obtenu en appelant ``datetime.now(timezone.utc)``. " +"Voir aussi :meth:`now`." + +#: ../Doc/library/datetime.rst:759 +msgid "" +"Return the local date and time corresponding to the POSIX timestamp, such as " +"is returned by :func:`time.time`. If optional argument *tz* is ``None`` or " +"not specified, the timestamp is converted to the platform's local date and " +"time, and the returned :class:`.datetime` object is naive." +msgstr "" +"Renvoie la date et l'heure locales correspondant à l'horodatage (*timestamp* " +"en anglais) *POSIX*, comme renvoyé par :func:`time.time`. Si l'argument " +"optionnel *tz* est ``None`` ou n'est pas spécifié, l'horodatage est converti " +"vers la date et l'heure locales de la plateforme, et l'objet :class:`." +"datetime` renvoyé est naïf." + +#: ../Doc/library/datetime.rst:764 +msgid "" +"If *tz* is not ``None``, it must be an instance of a :class:`tzinfo` " +"subclass, and the timestamp is converted to *tz*’s time zone. In this case " +"the result is equivalent to ``tz.fromutc(datetime." +"utcfromtimestamp(timestamp).replace(tzinfo=tz))``." +msgstr "" +"Si *tz* n'est pas ``None``, il doit être une instance d'une sous-classe :" +"class:`tzinfo`, et l'horodatage (*timestamp* en anglais) est converti vers " +"le fuseau horaire *tz*. Dans ce cas le résultat est équivalent à ``tz." +"fromutc(datetime.utcfromtimestamp(timestamp).replace(tzinfo=tz))``." + +#: ../Doc/library/datetime.rst:769 +msgid "" +":meth:`fromtimestamp` may raise :exc:`OverflowError`, if the timestamp is " +"out of the range of values supported by the platform C :c:func:`localtime` " +"or :c:func:`gmtime` functions, and :exc:`OSError` on :c:func:`localtime` or :" +"c:func:`gmtime` failure. It's common for this to be restricted to years in " +"1970 through 2038. Note that on non-POSIX systems that include leap seconds " +"in their notion of a timestamp, leap seconds are ignored by :meth:" +"`fromtimestamp`, and then it's possible to have two timestamps differing by " +"a second that yield identical :class:`.datetime` objects. See also :meth:" +"`utcfromtimestamp`." +msgstr "" +":meth:`fromtimestamp` peut lever une :exc:`OverflowError`, si l'horodatage " +"est en dehors de l'intervalle de valeurs gérées par les fonctions C :c:func:" +"`localtime` ou :c:func:`gmtime` de la plateforme, et une :exc:`OSError` en " +"cas d'échec de :c:func:`localtime` ou :c:func:`gmtime`. Il est courant " +"d'être restreint aux années de 1970 à 2038. Notez que sur les systèmes non " +"*POSIX* qui incluent les secondes intercalaires dans leur notion " +"d'horodatage, les secondes intercalaires sont ignorées par :meth:" +"`fromtimestamp`, et il est alors possible d'avoir deux horodatages différant " +"d'une seconde produisant un objet :class:`.datetime` identique. Voir aussi :" +"meth:`utcfromtimestamp`." + +#: ../Doc/library/datetime.rst:779 +msgid "" +"Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " +"out of the range of values supported by the platform C :c:func:`localtime` " +"or :c:func:`gmtime` functions. Raise :exc:`OSError` instead of :exc:" +"`ValueError` on :c:func:`localtime` or :c:func:`gmtime` failure." +msgstr "" +"Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si " +"l'horodatage est en dehors de l'intervalle de valeurs gérées par les " +"fonctions C :c:func:`localtime` ou :c:func:`gmtime` de la plateforme. Lève " +"une :exc:`OSError` plutôt qu'une :exc:`ValueError` en cas d'échec de :c:func:" +"`localtime` ou :c:func:`gmtime`." + +#: ../Doc/library/datetime.rst:786 +msgid ":meth:`fromtimestamp` may return instances with :attr:`.fold` set to 1." +msgstr "" +":meth:`fromtimestamp` peut renvoyer des instances avec l'attribut :attr:`." +"fold` à 1." + +#: ../Doc/library/datetime.rst:791 +msgid "" +"Return the UTC :class:`.datetime` corresponding to the POSIX timestamp, " +"with :attr:`.tzinfo` ``None``. This may raise :exc:`OverflowError`, if the " +"timestamp is out of the range of values supported by the platform C :c:func:" +"`gmtime` function, and :exc:`OSError` on :c:func:`gmtime` failure. It's " +"common for this to be restricted to years in 1970 through 2038." +msgstr "" +"Renvoie le :class:`.datetime` UTC correspondant à l'horodatage (*timestamp* " +"en anglais) *POSIX*, avec :attr:`.tzinfo` à ``None``. Cela peut lever une :" +"exc:`OverflowError`, si l'horodatage est en dehors de l'intervalle de " +"valeurs gérées par la fonction C :c:func:`gmtime` de la plateforme, et une :" +"exc:`OSError` en cas d'échec de :c:func:`gmtime`. Il est courant d'être " +"restreint aux années de 1970 à 2038." + +#: ../Doc/library/datetime.rst:797 +msgid "To get an aware :class:`.datetime` object, call :meth:`fromtimestamp`::" +msgstr "" +"Pour obtenir un objet :class:`.datetime` avisé, appelez :meth:" +"`fromtimestamp` ::" + +#: ../Doc/library/datetime.rst:801 +msgid "" +"On the POSIX compliant platforms, it is equivalent to the following " +"expression::" +msgstr "" +"Sur les plateformes respectant *POSIX*, cela est équivalent à l'expression " +"suivante ::" + +#: ../Doc/library/datetime.rst:806 +msgid "" +"except the latter formula always supports the full years range: between :" +"const:`MINYEAR` and :const:`MAXYEAR` inclusive." +msgstr "" +"excepté que la dernière formule gère l'intervalle complet des années entre :" +"const:`MINYEAR` et :const:`MAXYEAR` incluses." + +#: ../Doc/library/datetime.rst:809 +msgid "" +"Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " +"out of the range of values supported by the platform C :c:func:`gmtime` " +"function. Raise :exc:`OSError` instead of :exc:`ValueError` on :c:func:" +"`gmtime` failure." +msgstr "" +"Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si " +"l'horodatage est en dehors de l'intervalle de valeurs gérées par la fonction " +"C :c:func:`gmtime` de la plateforme. Lève une :exc:`OSError` plutôt qu'une :" +"exc:`ValueError` en cas d'échec de :c:func:`gmtime`." + +#: ../Doc/library/datetime.rst:818 +msgid "" +"Return the :class:`.datetime` corresponding to the proleptic Gregorian " +"ordinal, where January 1 of year 1 has ordinal 1. :exc:`ValueError` is " +"raised unless ``1 <= ordinal <= datetime.max.toordinal()``. The hour, " +"minute, second and microsecond of the result are all 0, and :attr:`.tzinfo` " +"is ``None``." +msgstr "" +"Renvoie le :class:`.datetime` correspondant à l'ordinal du calendrier " +"grégorien proleptique, où le 1er janvier de l'an 1 a l'ordinal 1. Une :exc:" +"`ValueError` est levée à moins que ``1 <= ordinal <= datetime.max." +"toordinal()``. Les heures, minutes, secondes et microsecondes du résultat " +"valent toutes 0, et :attr:`.tzinfo` est ``None``." + +#: ../Doc/library/datetime.rst:826 +msgid "" +"Return a new :class:`.datetime` object whose date components are equal to " +"the given :class:`date` object's, and whose time components are equal to the " +"given :class:`.time` object's. If the *tzinfo* argument is provided, its " +"value is used to set the :attr:`.tzinfo` attribute of the result, otherwise " +"the :attr:`~.time.tzinfo` attribute of the *time* argument is used." +msgstr "" +"Renvoie un nouvel objet :class:`.datetime` dont les composants de date sont " +"égaux à ceux de l'objet :class:`date` donné, et donc les composants de temps " +"sont égaux à ceux de l'objet :class:`time` donné. Si l'argument *tzinfo* " +"est fourni, sa valeur est utilisée pour initialiser l'attribut :attr:`." +"tzinfo` du résultat, autrement l'attribut :attr:`~.time.tzinfo` de " +"l'argument *time* est utilisé." + +#: ../Doc/library/datetime.rst:833 +msgid "" +"For any :class:`.datetime` object *d*, ``d == datetime.combine(d.date(), d." +"time(), d.tzinfo)``. If date is a :class:`.datetime` object, its time " +"components and :attr:`.tzinfo` attributes are ignored." +msgstr "" +"Pour tout objet :class:`.datetime` *d*`, ``d == datetime.combine(d.date(), d." +"time(), d.tzinfo)``. Si *date* est un objet :class:`.datetime`, ses " +"composants de temps et attributs :attr:`.tzinfo` sont ignorés." + +#: ../Doc/library/datetime.rst:838 +msgid "Added the *tzinfo* argument." +msgstr "Ajout de l'argument *tzinfo*." + +#: ../Doc/library/datetime.rst:844 +msgid "" +"Return a :class:`datetime` corresponding to a *date_string* in one of the " +"formats emitted by :meth:`date.isoformat` and :meth:`datetime.isoformat`. " +"Specifically, this function supports strings in the format(s) ``YYYY-MM-" +"DD[*HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]]``, where ``*`` can match " +"any single character." +msgstr "" +"Renvoie une :class:`datetime` correspondant à *date_string* dans un des " +"formats émis par :meth:`date.isoformat` et :meth:`datetime.isoformat`. Plus " +"spécifiquement, cette fonction supporte des chaînes dans les format(s) " +"``YYYY-MM-DD[*HH[:MM[:SS[.mmm[mmm]]]][+HH:MM[:SS[.ffffff]]]]``, où ``*`` " +"peut égaler n'importe quel caractère." + +#: ../Doc/library/datetime.rst:852 +msgid "" +"This does not support parsing arbitrary ISO 8601 strings - it is only " +"intended as the inverse operation of :meth:`datetime.isoformat`." +msgstr "" +"Elle ne gère pas l'analyse de chaînes ISO 8601 arbitraires, elle est " +"seulement destinée à être utilisée comme opération inverse de :meth:" +"`datetime.isoformat`." + +#: ../Doc/library/datetime.rst:859 +msgid "" +"Return a :class:`.datetime` corresponding to *date_string*, parsed according " +"to *format*. This is equivalent to ``datetime(*(time.strptime(date_string, " +"format)[0:6]))``. :exc:`ValueError` is raised if the date_string and format " +"can't be parsed by :func:`time.strptime` or if it returns a value which " +"isn't a time tuple. For a complete list of formatting directives, see :ref:" +"`strftime-strptime-behavior`." +msgstr "" +"Renvoie un :class:`.datetime` correspondant à la chaîne *date_string*, " +"analysée conformément à *format*. Cela est équivalent à ``datetime(*(time." +"strptime(date_string, format)[0:6]))``. Une :exc:`ValueError` est levée si " +"*date_string* et *format* ne peuvent être analysée par :func:`time.strptime` " +"ou si elle renvoie une valeur qui n'est pas un *tuple-temps*. Pour une liste " +"complète des directives de formatage, voir :ref:`strftime-strptime-behavior`." + +#: ../Doc/library/datetime.rst:872 +msgid "" +"The earliest representable :class:`.datetime`, ``datetime(MINYEAR, 1, 1, " +"tzinfo=None)``." +msgstr "" +"Le plus ancien :class:`.datetime` représentable, ``datetime(MINYEAR, 1, 1, " +"tzinfo=None)``." + +#: ../Doc/library/datetime.rst:878 +msgid "" +"The latest representable :class:`.datetime`, ``datetime(MAXYEAR, 12, 31, 23, " +"59, 59, 999999, tzinfo=None)``." +msgstr "" +"Le dernier :class:`.datetime` représentable, ``datetime(MAXYEAR, 12, 31, 23, " +"59, 59, 999999, tzinfo=None)``." + +#: ../Doc/library/datetime.rst:884 +msgid "" +"The smallest possible difference between non-equal :class:`.datetime` " +"objects, ``timedelta(microseconds=1)``." +msgstr "" +"La plus petite différence possible entre deux objets :class:`.datetime` non-" +"égaux, ``timedelta(microseconds=1)``." + +#: ../Doc/library/datetime.rst:907 ../Doc/library/datetime.rst:1461 +msgid "In ``range(24)``." +msgstr "Dans ``range(24)``." + +#: ../Doc/library/datetime.rst:912 ../Doc/library/datetime.rst:917 +#: ../Doc/library/datetime.rst:1466 ../Doc/library/datetime.rst:1471 +msgid "In ``range(60)``." +msgstr "Dans ``range(60)``." + +#: ../Doc/library/datetime.rst:922 ../Doc/library/datetime.rst:1476 +msgid "In ``range(1000000)``." +msgstr "Dans ``range(1000000)``." + +#: ../Doc/library/datetime.rst:927 +msgid "" +"The object passed as the *tzinfo* argument to the :class:`.datetime` " +"constructor, or ``None`` if none was passed." +msgstr "" +"L'objet passé en tant que paramètre *tzinfo* du constructeur de la classe :" +"class:`.datetime` ou ``None`` si aucun n'a été donné." + +#: ../Doc/library/datetime.rst:933 ../Doc/library/datetime.rst:1487 +msgid "" +"In ``[0, 1]``. Used to disambiguate wall times during a repeated interval. " +"(A repeated interval occurs when clocks are rolled back at the end of " +"daylight saving time or when the UTC offset for the current zone is " +"decreased for political reasons.) The value 0 (1) represents the earlier " +"(later) of the two moments with the same wall time representation." +msgstr "" +"``0`` ou ``1``. Utilisé pour désambiguïser les heures dans un intervalle " +"répété. (Un intervalle répété apparaît quand l'horloge est retardée à la " +"fin de l'heure d'été ou quand le décalage UTC du fuseau courant et " +"décrémenté pour des raisons politiques.) La valeur 0 (1) représente le plus " +"ancien (récent) des deux moments représentés par la même heure." + +#: ../Doc/library/datetime.rst:946 +msgid "``datetime2 = datetime1 + timedelta``" +msgstr "``datetime2 = datetime1 + timedelta``" + +#: ../Doc/library/datetime.rst:946 ../Doc/library/datetime.rst:2065 +#: ../Doc/library/datetime.rst:2070 ../Doc/library/datetime.rst:2082 +#: ../Doc/library/datetime.rst:2087 ../Doc/library/datetime.rst:2147 +#: ../Doc/library/datetime.rst:2152 ../Doc/library/datetime.rst:2156 +msgid "\\(1)" +msgstr "\\(1)" + +#: ../Doc/library/datetime.rst:948 +msgid "``datetime2 = datetime1 - timedelta``" +msgstr "``datetime2 = datetime1 - timedelta``" + +#: ../Doc/library/datetime.rst:948 ../Doc/library/datetime.rst:2098 +msgid "\\(2)" +msgstr "\\(2)" + +#: ../Doc/library/datetime.rst:950 +msgid "``timedelta = datetime1 - datetime2``" +msgstr "``timedelta = datetime1 - datetime2``" + +#: ../Doc/library/datetime.rst:952 +msgid "``datetime1 < datetime2``" +msgstr "``datetime1 < datetime2``" + +#: ../Doc/library/datetime.rst:952 +msgid "Compares :class:`.datetime` to :class:`.datetime`. (4)" +msgstr "Compare :class:`.datetime` à :class:`.datetime`. (4)" + +#: ../Doc/library/datetime.rst:957 +msgid "" +"datetime2 is a duration of timedelta removed from datetime1, moving forward " +"in time if ``timedelta.days`` > 0, or backward if ``timedelta.days`` < 0. " +"The result has the same :attr:`~.datetime.tzinfo` attribute as the input " +"datetime, and datetime2 - datetime1 == timedelta after. :exc:`OverflowError` " +"is raised if datetime2.year would be smaller than :const:`MINYEAR` or larger " +"than :const:`MAXYEAR`. Note that no time zone adjustments are done even if " +"the input is an aware object." +msgstr "" +"*datetime2* est décalé d'une durée *timedelta* par rapport à *datetime1*, en " +"avant dans le temps si ``timedelta.days > 0``, ou en arrière si ``timedelta." +"days < 0``. Le résultat a le même attribut :attr:`~.datetime.tzinfo` que le " +"*datetime* d'entrée, et *datetime2 - datetime1 == timedelta* après " +"l'opération. Une :exc:`OverflowError` est levée si *datetime2.year* devait " +"être inférieure à :const:`MINYEAR` ou supérieure à :const:`MAXYEAR`. Notez " +"qu'aucun ajustement de fuseau horaire n'est réalisé même si l'entrée est " +"avisée." + +#: ../Doc/library/datetime.rst:966 +msgid "" +"Computes the datetime2 such that datetime2 + timedelta == datetime1. As for " +"addition, the result has the same :attr:`~.datetime.tzinfo` attribute as the " +"input datetime, and no time zone adjustments are done even if the input is " +"aware." +msgstr "" +"Calcule *datetime2* tel que ``datetime2 + timedelta == datetime1``. Comme " +"pour l'addition, le résultat a le même attribut :attr:`~.datetime.tzinfo` " +"que le *datetime* d'entrée, et aucun ajustement de fuseau horaire n'est " +"réalisé même si l'entrée est avisée." + +#: ../Doc/library/datetime.rst:971 +msgid "" +"Subtraction of a :class:`.datetime` from a :class:`.datetime` is defined " +"only if both operands are naive, or if both are aware. If one is aware and " +"the other is naive, :exc:`TypeError` is raised." +msgstr "" +"La soustraction d'un :class:`.datetime` à un autre :class:`.datetime` n'est " +"définie que si les deux opérandes sont naïfs, ou s'ils sont les deux " +"avisés. Si l'un est avisé et que l'autre est naïf, une :exc:`TypeError` est " +"levée." + +#: ../Doc/library/datetime.rst:975 +msgid "" +"If both are naive, or both are aware and have the same :attr:`~.datetime." +"tzinfo` attribute, the :attr:`~.datetime.tzinfo` attributes are ignored, and " +"the result is a :class:`timedelta` object *t* such that ``datetime2 + t == " +"datetime1``. No time zone adjustments are done in this case." +msgstr "" +"Si les deux sont naïfs, ou que les deux sont avisés et ont le même attribut :" +"attr:`~.datetime.tzinfo`, les attributs :attr:`~.datetime.tzinfo` sont " +"ignorés, et le résultat est un objet :class:`timedelta` *t* tel que " +"``datetime2 + t == datetime1``. Aucun ajustement de fuseau horaire n'a lieu " +"dans ce cas." + +#: ../Doc/library/datetime.rst:980 +msgid "" +"If both are aware and have different :attr:`~.datetime.tzinfo` attributes, " +"``a-b`` acts as if *a* and *b* were first converted to naive UTC datetimes " +"first. The result is ``(a.replace(tzinfo=None) - a.utcoffset()) - (b." +"replace(tzinfo=None) - b.utcoffset())`` except that the implementation never " +"overflows." +msgstr "" +"Si les deux sont avisés mais ont des attributs :attr:`~.datetime.tzinfo` " +"différents, ``a-b`` agit comme si *a* et *b* étaient premièrement convertis " +"vers des *datetimes* UTC naïfs. Le résultat est ``(a.replace(tzinfo=None) - " +"a.utcoffset()) - (b.replace(tzinfo=None) - b.utcoffset())`` à l'exception " +"que l'implémentation ne produit jamais de débordement." + +#: ../Doc/library/datetime.rst:986 +msgid "" +"*datetime1* is considered less than *datetime2* when *datetime1* precedes " +"*datetime2* in time." +msgstr "" +"*datetime1* est considéré inférieur à *datetime2* quand il le précède dans " +"le temps." + +#: ../Doc/library/datetime.rst:989 +msgid "" +"If one comparand is naive and the other is aware, :exc:`TypeError` is raised " +"if an order comparison is attempted. For equality comparisons, naive " +"instances are never equal to aware instances." +msgstr "" +"Si un opérande est naïf et l'autre avisé, une :exc:`TypeError` est levée si " +"une comparaison d'ordre est attendue. Pour les comparaisons d'égalité, les " +"instances naïves ne sont jamais égales aux instances avisées." + +#: ../Doc/library/datetime.rst:993 +msgid "" +"If both comparands are aware, and have the same :attr:`~.datetime.tzinfo` " +"attribute, the common :attr:`~.datetime.tzinfo` attribute is ignored and the " +"base datetimes are compared. If both comparands are aware and have " +"different :attr:`~.datetime.tzinfo` attributes, the comparands are first " +"adjusted by subtracting their UTC offsets (obtained from ``self." +"utcoffset()``)." +msgstr "" +"Si les deux opérandes sont avisés, et ont le même attribut :attr:`~.datetime." +"tzinfo`, l'attribut commun :attr:`~.datetime.tzinfo` est ignoré et les " +"*datetimes* de base sont comparés. Si les deux opérandes sont avisés et ont " +"des attributs :attr:`~.datetime.tzinfo` différents, les opérandes sont " +"premièrement ajustés en soustrayant leurs décalages UTC (obtenus depuis " +"``self.utcoffset()``)." + +#: ../Doc/library/datetime.rst:999 +msgid "" +"Equality comparisons between naive and aware :class:`.datetime` instances " +"don't raise :exc:`TypeError`." +msgstr "" +"Les comparaisons d'égalité entre des instances :class:`.datetime` naïves et " +"avisées ne lèvent pas de :exc:`TypeError`." + +#: ../Doc/library/datetime.rst:1005 +msgid "" +"In order to stop comparison from falling back to the default scheme of " +"comparing object addresses, datetime comparison normally raises :exc:" +"`TypeError` if the other comparand isn't also a :class:`.datetime` object. " +"However, ``NotImplemented`` is returned instead if the other comparand has " +"a :meth:`timetuple` attribute. This hook gives other kinds of date objects " +"a chance at implementing mixed-type comparison. If not, when a :class:`." +"datetime` object is compared to an object of a different type, :exc:" +"`TypeError` is raised unless the comparison is ``==`` or ``!=``. The latter " +"cases return :const:`False` or :const:`True`, respectively." +msgstr "" +"Afin d'empêcher la comparaison de retomber sur le schéma par défaut de " +"comparaison des adresses des objets, la comparaison *datetime* lève " +"normalement une :exc:`TypeError` si l'autre opérande n'est pas aussi un " +"objet :class:`.datetime`. Cependant, ``NotImplemented`` est renvoyé à la " +"place si l'autre opérande a un attribut :meth:`timetuple`. Cela permet à " +"d'autres types d'objets dates d'implémenter la comparaison entre types " +"mixtes. Sinon, quand un objet :class:`.datetime` est comparé à un objet " +"d'un type différent, une :exc:`TypeError` est levée à moins que la " +"comparaison soit ``==`` ou ``!=``. Ces derniers cas renvoient " +"respectivement :const:`False` et :const:`True`." + +#: ../Doc/library/datetime.rst:1015 +msgid "" +":class:`.datetime` objects can be used as dictionary keys. In Boolean " +"contexts, all :class:`.datetime` objects are considered to be true." +msgstr "" +"Les objets :class:`.datetime` peuvent être utilisés comme clés de " +"dictionnaires. Dans les contextes booléens, tous les objets :class:`." +"datetime` sont considérés vrais." + +#: ../Doc/library/datetime.rst:1022 +msgid "Return :class:`date` object with same year, month and day." +msgstr "Renvoie un objet :class:`date` avec les mêmes année, mois et jour." + +#: ../Doc/library/datetime.rst:1027 +msgid "" +"Return :class:`.time` object with same hour, minute, second, microsecond and " +"fold. :attr:`.tzinfo` is ``None``. See also method :meth:`timetz`." +msgstr "" +"Renvoie un objet :class:`.time` avec les mêmes heure, minute, seconde, " +"microseconde et *fold*. :attr:`.tzinfo` est ``None``. Voir aussi la " +"méthode :meth:`timetz`." + +#: ../Doc/library/datetime.rst:1030 ../Doc/library/datetime.rst:1039 +msgid "The fold value is copied to the returned :class:`.time` object." +msgstr "La valeur *fold* est copiée vers l'objet :class:`.time` renvoyé." + +#: ../Doc/library/datetime.rst:1036 +msgid "" +"Return :class:`.time` object with same hour, minute, second, microsecond, " +"fold, and tzinfo attributes. See also method :meth:`time`." +msgstr "" +"Renvoie un objet :class:`.time` avec les mêmes attributs heure, minute, " +"seconde, microseconde, *fold* et *tzinfo*. Voir aussi la méthode :meth:" +"`time`." + +#: ../Doc/library/datetime.rst:1047 +msgid "" +"Return a datetime with the same attributes, except for those attributes " +"given new values by whichever keyword arguments are specified. Note that " +"``tzinfo=None`` can be specified to create a naive datetime from an aware " +"datetime with no conversion of date and time data." +msgstr "" +"Renvoie un *datetime* avec les mêmes attributs, exceptés ceux dont de " +"nouvelles valeurs sont données par les arguments nommés correspondant. " +"Notez que ``tzinfo=None`` peut être spécifié pour créer un *datetime* naïf " +"depuis un *datetime* avisé sans conversion de la date ou de l'heure." + +#: ../Doc/library/datetime.rst:1058 +msgid "" +"Return a :class:`.datetime` object with new :attr:`.tzinfo` attribute *tz*, " +"adjusting the date and time data so the result is the same UTC time as " +"*self*, but in *tz*'s local time." +msgstr "" +"Renvoie un objet :class:`.datetime` avec un nouvel attribut :attr:`.tzinfo` " +"valant *tz*, ajustant la date et l'heure pour que le résultat soit le même " +"temps UTC que *self*, mais dans le temps local au fuseau *tz*." + +#: ../Doc/library/datetime.rst:1062 +msgid "" +"If provided, *tz* must be an instance of a :class:`tzinfo` subclass, and " +"its :meth:`utcoffset` and :meth:`dst` methods must not return ``None``. If " +"*self* is naive, it is presumed to represent time in the system timezone." +msgstr "" +"Si fourni, *tz* doit être une instance d'une sous-classe :class:`tzinfo`, et " +"ses méthodes :meth:`utcoffset` et :meth:`dst` ne doivent pas renvoyer " +"``None``. Si *self* est naïf, Python considère que le temps est exprimé " +"dans le fuseau horaire du système." + +#: ../Doc/library/datetime.rst:1066 +msgid "" +"If called without arguments (or with ``tz=None``) the system local timezone " +"is assumed for the target timezone. The ``.tzinfo`` attribute of the " +"converted datetime instance will be set to an instance of :class:`timezone` " +"with the zone name and offset obtained from the OS." +msgstr "" +"Si appelé sans arguments (ou si ``tz=None``) le fuseau horaire local du " +"système est utilisé comme fuseau horaire cible. L'attribut ``.tzinfo`` de " +"l'instance *datetime* convertie aura pour valeur une instance de :class:" +"`timezone` avec le nom de fuseau et le décalage obtenus depuis l'OS." + +#: ../Doc/library/datetime.rst:1071 +msgid "" +"If ``self.tzinfo`` is *tz*, ``self.astimezone(tz)`` is equal to *self*: no " +"adjustment of date or time data is performed. Else the result is local time " +"in the timezone *tz*, representing the same UTC time as *self*: after " +"``astz = dt.astimezone(tz)``, ``astz - astz.utcoffset()`` will have the same " +"date and time data as ``dt - dt.utcoffset()``." +msgstr "" +"Si ``self.tzinfo`` est *tz*, ``self.astimezone(tz)`` est égal à *self* : " +"aucun ajustement de date ou d'heure n'est réalisé. Sinon le résultat est le " +"temps local dans le fuseau *tz* représentant le même temps UTC que *self* : " +"après ``astz = dt.astimezone(tz)``, ``astz - astz.utcoffset()`` aura les " +"mêmes données de date et d'heure que ``dt - dt.utcoffset()``." + +#: ../Doc/library/datetime.rst:1077 +msgid "" +"If you merely want to attach a time zone object *tz* to a datetime *dt* " +"without adjustment of date and time data, use ``dt.replace(tzinfo=tz)``. If " +"you merely want to remove the time zone object from an aware datetime *dt* " +"without conversion of date and time data, use ``dt.replace(tzinfo=None)``." +msgstr "" +"Si vous voulez seulement associer un fuseau horaire *tz* à un *datetime* " +"*dt* sans ajustement des données de date et d'heure, utilisez ``dt." +"replace(tzinfo=tz)``. Si vous voulez seulement supprimer le fuseau horaire " +"d'un *datetime* *dt* avisé sans conversion des données de date et d'heure, " +"utilisez ``dt.replace(tzinfo=None)``." + +#: ../Doc/library/datetime.rst:1082 +msgid "" +"Note that the default :meth:`tzinfo.fromutc` method can be overridden in a :" +"class:`tzinfo` subclass to affect the result returned by :meth:`astimezone`. " +"Ignoring error cases, :meth:`astimezone` acts like::" +msgstr "" +"Notez que la méthode par défaut :meth:`tzinfo.fromutc` peut être redéfinie " +"dans une sous-classe :class:`tzinfo` pour affecter le résultat renvoyé par :" +"meth:`astimezone`. En ignorant les cas d'erreurs, :meth:`astimezone` se " +"comporte comme ::" + +#: ../Doc/library/datetime.rst:1094 +msgid "*tz* now can be omitted." +msgstr "*tz* peut maintenant être omis." + +#: ../Doc/library/datetime.rst:1097 +msgid "" +"The :meth:`astimezone` method can now be called on naive instances that are " +"presumed to represent system local time." +msgstr "" +"La méthode :meth:`astimezone` peut maintenant être appelée sur des instances " +"naïves qui sont supposées représenter un temps local au système." + +#: ../Doc/library/datetime.rst:1104 +msgid "" +"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." +"utcoffset(self)``, and raises an exception if the latter doesn't return " +"``None`` or a :class:`timedelta` object with magnitude less than one day." +msgstr "" +"Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie ``self." +"tzinfo.utcoffset(self)``, et lève une exception si l'expression précédente " +"ne renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " +"inférieure à un jour." + +#: ../Doc/library/datetime.rst:1108 ../Doc/library/datetime.rst:1628 +#: ../Doc/library/datetime.rst:1728 ../Doc/library/datetime.rst:1969 +#: ../Doc/library/datetime.rst:1980 ../Doc/library/datetime.rst:2246 +msgid "The UTC offset is not restricted to a whole number of minutes." +msgstr "Le décalage UTC peut aussi être autre chose qu'un ensemble de minutes." + +#: ../Doc/library/datetime.rst:1114 +msgid "" +"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." +"dst(self)``, and raises an exception if the latter doesn't return ``None`` " +"or a :class:`timedelta` object with magnitude less than one day." +msgstr "" +"Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie ``self." +"tzinfo.dst(self)``, et lève une exception si l'expression précédente ne " +"renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " +"inférieure à un jour." + +#: ../Doc/library/datetime.rst:1118 ../Doc/library/datetime.rst:1638 +#: ../Doc/library/datetime.rst:1780 +msgid "The DST offset is not restricted to a whole number of minutes." +msgstr "Le décalage DST n'est pas restreint à des minutes entières." + +#: ../Doc/library/datetime.rst:1124 +msgid "" +"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." +"tzname(self)``, raises an exception if the latter doesn't return ``None`` or " +"a string object," +msgstr "" +"Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie ``self." +"tzinfo.tzname(self)``, lève une exception si l'expression précédente ne " +"renvoie pas ``None`` ou une chaîne de caractères," + +#: ../Doc/library/datetime.rst:1131 +msgid "" +"Return a :class:`time.struct_time` such as returned by :func:`time." +"localtime`. ``d.timetuple()`` is equivalent to ``time.struct_time((d.year, d." +"month, d.day, d.hour, d.minute, d.second, d.weekday(), yday, dst))``, where " +"``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the day " +"number within the current year starting with ``1`` for January 1st. The :" +"attr:`tm_isdst` flag of the result is set according to the :meth:`dst` " +"method: :attr:`.tzinfo` is ``None`` or :meth:`dst` returns ``None``, :attr:" +"`tm_isdst` is set to ``-1``; else if :meth:`dst` returns a non-zero value, :" +"attr:`tm_isdst` is set to ``1``; else :attr:`tm_isdst` is set to ``0``." +msgstr "" +"Renvoie un :class:`time.struct_time` comme renvoyé par :func:`time." +"localtime`. ``d.timetuple()`` est équivalent à ``time.struct_time((d.year, d." +"month, d.day, d.hour, d.minute, d.second, d.weekday(), yday, dst))``, où " +"``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` est le numéro " +"de jour dans l'année courante commençant avec ``1`` pour le 1er janvier. " +"L'option :attr:`tm_isdist` du résultat est attribuée selon la méthode :meth:" +"`dst` : si :attr:`.tzinfo` est ``None`` ou que :meth:`dst` renvoie " +"``None``, :attr:`tm_isdst` est mise à ``-1`` ; sinon, si :meth:`dst` renvoie " +"une valeur non-nulle, :attr:`tm_isdst` est mise à ``1`` ; sinon :attr:" +"`tm_isdst` est mise à ``0``." + +#: ../Doc/library/datetime.rst:1144 +msgid "" +"If :class:`.datetime` instance *d* is naive, this is the same as ``d." +"timetuple()`` except that :attr:`tm_isdst` is forced to 0 regardless of what " +"``d.dst()`` returns. DST is never in effect for a UTC time." +msgstr "" +"Si l'instance de :class:`.datetime` *d* est naïve, cela est équivalent à ``d." +"timetuple()``, excepté que :attr:`tm_isdst` est forcé à 0 sans tenir compte " +"de ce que renvoie ``d.dst()``. L'heure d'été n'est jamais effective pour un " +"temps UTC." + +#: ../Doc/library/datetime.rst:1148 +msgid "" +"If *d* is aware, *d* is normalized to UTC time, by subtracting ``d." +"utcoffset()``, and a :class:`time.struct_time` for the normalized time is " +"returned. :attr:`tm_isdst` is forced to 0. Note that an :exc:" +"`OverflowError` may be raised if *d*.year was ``MINYEAR`` or ``MAXYEAR`` and " +"UTC adjustment spills over a year boundary." +msgstr "" +"Si *d* est avisé, il est normalisé vers un temps UTC, en lui soustrayant ``d." +"utcoffset()``, et un :class:`time.struct_time` est renvoyé pour le temps " +"normalisé. :attr:`tm_isdst` est forcé à 0. Notez qu'une :exc:" +"`OverflowError` peut être levée si *d.year* vaut ``MINYEAR``ou ``MAXYEAR`` " +"et que l'ajustement UTC fait dépasser les bornes." + +#: ../Doc/library/datetime.rst:1158 +msgid "" +"Return the proleptic Gregorian ordinal of the date. The same as ``self." +"date().toordinal()``." +msgstr "" +"Renvoie l'ordinal du calendrier géorgien proleptique de cette date. " +"Identique à ``self.date().toordinal()``." + +#: ../Doc/library/datetime.rst:1163 +msgid "" +"Return POSIX timestamp corresponding to the :class:`.datetime` instance. " +"The return value is a :class:`float` similar to that returned by :func:`time." +"time`." +msgstr "" +"Renvoie l'horodatage (*timestamp* en anglais) *POSIX* correspondant à " +"l'instance :class:`.datetime`. La valeur renvoyée est un :class:`float` " +"similaire à ceux renvoyés par :func:`time.time`." + +#: ../Doc/library/datetime.rst:1167 +msgid "" +"Naive :class:`.datetime` instances are assumed to represent local time and " +"this method relies on the platform C :c:func:`mktime` function to perform " +"the conversion. Since :class:`.datetime` supports wider range of values " +"than :c:func:`mktime` on many platforms, this method may raise :exc:" +"`OverflowError` for times far in the past or far in the future." +msgstr "" +"Les instances naïves de :class:`.datetime` sont supposées représenter un " +"temps local et cette méthode se base sur la fonction C :c:func:`mktime` de " +"la plateforme pour opérer la conversion. Comme :class:`.datetime` gère un " +"intervalle de valeurs plus large que :c:func:`mktime` sur beaucoup de " +"plateformes, cette méthode peut lever une :exc:`OverflowError` pour les " +"temps trop éloignés dans le passé ou le futur." + +#: ../Doc/library/datetime.rst:1174 +msgid "" +"For aware :class:`.datetime` instances, the return value is computed as::" +msgstr "" +"Pour les instances :class:`.datetime` avisées, la valeur renvoyée est " +"calculée comme suit ::" + +#: ../Doc/library/datetime.rst:1181 +msgid "" +"The :meth:`timestamp` method uses the :attr:`.fold` attribute to " +"disambiguate the times during a repeated interval." +msgstr "" +"La méthode :meth:`timestamp` utilise l'attribut :attr:`.fold` pour " +"désambiguïser le temps dans un intervalle répété." + +#: ../Doc/library/datetime.rst:1187 +msgid "" +"There is no method to obtain the POSIX timestamp directly from a naive :" +"class:`.datetime` instance representing UTC time. If your application uses " +"this convention and your system timezone is not set to UTC, you can obtain " +"the POSIX timestamp by supplying ``tzinfo=timezone.utc``::" +msgstr "" +"Il n'y a pas de méthode pour obtenir l'horodatage (*timestamp* en anglais) " +"*POSIX* directement depuis une instance :class:`.datetime` naïve " +"représentant un temps UTC. Si votre application utilise cette convention et " +"que le fuseau horaire de votre système est UTC, vous pouvez obtenir " +"l'horodatage *POSIX* en fournissant ``tzinfo=timezone.utc`` : ::" + +#: ../Doc/library/datetime.rst:1195 +msgid "or by calculating the timestamp directly::" +msgstr "ou en calculant l'horodatage (*timestamp* en anglais) directement ::" + +#: ../Doc/library/datetime.rst:1201 +msgid "" +"Return the day of the week as an integer, where Monday is 0 and Sunday is 6. " +"The same as ``self.date().weekday()``. See also :meth:`isoweekday`." +msgstr "" +"Renvoie le jour de la semaine sous forme de nombre, où lundi vaut 0 et " +"dimanche vaut 6. Identique à ``self.date().weekday()``. Voir aussi :meth:" +"`isoweekday`." + +#: ../Doc/library/datetime.rst:1207 +msgid "" +"Return the day of the week as an integer, where Monday is 1 and Sunday is 7. " +"The same as ``self.date().isoweekday()``. See also :meth:`weekday`, :meth:" +"`isocalendar`." +msgstr "" +"Renvoie le jour de la semaine sous forme de nombre, où lundi vaut 1 et " +"dimanche vaut 7. Identique à ``self.date().isoweekday()``. Voir aussi :meth:" +"`weekday`, :meth:`isocalendar`." + +#: ../Doc/library/datetime.rst:1214 +msgid "" +"Return a 3-tuple, (ISO year, ISO week number, ISO weekday). The same as " +"``self.date().isocalendar()``." +msgstr "" +"Renvoie un *tuple* de 3 éléments, (année ISO, numéro de semaine ISO, jour de " +"la semaine ISO). Identique à ``self.date().isocalendar()``." + +#: ../Doc/library/datetime.rst:1220 +msgid "" +"Return a string representing the date and time in ISO 8601 format, YYYY-MM-" +"DDTHH:MM:SS.ffffff or, if :attr:`microsecond` is 0, YYYY-MM-DDTHH:MM:SS" +msgstr "" +"Renvoie une chaîne représentant la date et l'heure au format ISO 8601, *YYYY-" +"MM-DDTHH:MM:SS.ffffff* ou, si :attr:`microsecond` vaut 0, *YYYY-MM-DDTHH:MM:" +"SS*" + +#: ../Doc/library/datetime.rst:1224 +msgid "" +"If :meth:`utcoffset` does not return ``None``, a string is appended, giving " +"the UTC offset: YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]] or, if :attr:" +"`microsecond` is 0 YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]." +msgstr "" +"Si :meth:`utcoffset` ne renvoie pas ``None``, une chaîne est ajoutée, " +"donnant le décalage UTC : *YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]* " +"ou, si :attr:`microsecond` vaut 0, *YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]*." + +#: ../Doc/library/datetime.rst:1229 +msgid "" +"The optional argument *sep* (default ``'T'``) is a one-character separator, " +"placed between the date and time portions of the result. For example," +msgstr "" +"L'argument optionnel *sep* (valant par défaut ``'T'``) est un séparateur " +"d'un caractère, placé entre les portions du résultat correspondant à la date " +"et à l'heure. Par exemple," + +#: ../Doc/library/datetime.rst:1239 ../Doc/library/datetime.rst:1567 +msgid "" +"The optional argument *timespec* specifies the number of additional " +"components of the time to include (the default is ``'auto'``). It can be one " +"of the following:" +msgstr "" +"L'argument optionnel *timespec* spécifie le nombre de composants " +"additionnels de temps à inclure (par défaut ``'auto'``). Il peut valoir " +"l'une des valeurs suivantes :" + +#: ../Doc/library/datetime.rst:1243 ../Doc/library/datetime.rst:1571 +msgid "" +"``'auto'``: Same as ``'seconds'`` if :attr:`microsecond` is 0, same as " +"``'microseconds'`` otherwise." +msgstr "" +"``'auto'`` : Identique à ``'seconds'`` si :attr:`microsecond` vaut 0, à " +"``'microseconds'`` sinon." + +#: ../Doc/library/datetime.rst:1245 ../Doc/library/datetime.rst:1573 +msgid "``'hours'``: Include the :attr:`hour` in the two-digit HH format." +msgstr "``'hours'`` : Inclut :attr:`hour` au format à deux chiffres HH." + +#: ../Doc/library/datetime.rst:1246 ../Doc/library/datetime.rst:1574 +msgid "``'minutes'``: Include :attr:`hour` and :attr:`minute` in HH:MM format." +msgstr "``'minutes'`` : Inclut :attr:`hour` et :attr:`minute` au format HH:MM." + +#: ../Doc/library/datetime.rst:1247 ../Doc/library/datetime.rst:1575 +msgid "" +"``'seconds'``: Include :attr:`hour`, :attr:`minute`, and :attr:`second` in " +"HH:MM:SS format." +msgstr "" +"``'seconds'`` : Inclut :attr:`hour`, :attr:`minute` et :attr:`second` au " +"format ``HH:MM:SS``." + +#: ../Doc/library/datetime.rst:1249 ../Doc/library/datetime.rst:1577 +msgid "" +"``'milliseconds'``: Include full time, but truncate fractional second part " +"to milliseconds. HH:MM:SS.sss format." +msgstr "" +"``'milliseconds'`` : Inclut le temps complet, mais tronque la partie " +"fractionnaire des millisecondes, au format ``HH:MM:SS.sss``." + +#: ../Doc/library/datetime.rst:1251 ../Doc/library/datetime.rst:1579 +msgid "``'microseconds'``: Include full time in HH:MM:SS.ffffff format." +msgstr "" +"``'microseconds'`` : Inclut le temps complet, au format ``HH:MM:SS.ffffff``." + +#: ../Doc/library/datetime.rst:1255 ../Doc/library/datetime.rst:1583 +msgid "Excluded time components are truncated, not rounded." +msgstr "Les composants de temps exclus sont tronqués et non arrondis." + +#: ../Doc/library/datetime.rst:1257 ../Doc/library/datetime.rst:1585 +msgid ":exc:`ValueError` will be raised on an invalid *timespec* argument." +msgstr "" +"Une :exc:`ValueError` sera levée en cas d'argument *timespec* invalide." + +#: ../Doc/library/datetime.rst:1267 ../Doc/library/datetime.rst:1597 +msgid "Added the *timespec* argument." +msgstr "Ajout de l'argument *timespec*." + +#: ../Doc/library/datetime.rst:1273 +msgid "" +"For a :class:`.datetime` instance *d*, ``str(d)`` is equivalent to ``d." +"isoformat(' ')``." +msgstr "" +"Pour une instance *d* de :class:`.datetime`, ``str(d)`` est équivalent à ``d." +"isoformat(' ')``." + +#: ../Doc/library/datetime.rst:1279 +msgid "" +"Return a string representing the date and time, for example ``datetime(2002, " +"12, 4, 20, 30, 40).ctime() == 'Wed Dec 4 20:30:40 2002'``. ``d.ctime()`` is " +"equivalent to ``time.ctime(time.mktime(d.timetuple()))`` on platforms where " +"the native C :c:func:`ctime` function (which :func:`time.ctime` invokes, but " +"which :meth:`datetime.ctime` does not invoke) conforms to the C standard." +msgstr "" +"Renvoie une chaîne représentant la date et l'heure, par exemple " +"``datetime(2002, 12, 4, 20, 30, 40).ctime() == 'Wed Dec 4 20:30:40 2002'``. " +"``d.ctime()`` est équivalent à ``time.ctime(time.mktime(d.timetuple()))`` " +"sur les plateformes où la fonction C native :c:func:`ctime` (invoquée par :" +"func:`time.ctime` mais pas par :meth:`datetime.ctime`) est conforme au " +"standard C." + +#: ../Doc/library/datetime.rst:1288 +msgid "" +"Return a string representing the date and time, controlled by an explicit " +"format string. For a complete list of formatting directives, see :ref:" +"`strftime-strptime-behavior`." +msgstr "" +"Renvoie une chaîne représentant la date et l'heure, contrôlée par une chaîne " +"de format explicite. Pour une liste complète des directives de formatage, " +"voir :ref:`strftime-strptime-behavior`." + +#: ../Doc/library/datetime.rst:1295 +msgid "" +"Same as :meth:`.datetime.strftime`. This makes it possible to specify a " +"format string for a :class:`.datetime` object in :ref:`formatted string " +"literals ` and when using :meth:`str.format`. For a complete " +"list of formatting directives, see :ref:`strftime-strptime-behavior`." +msgstr "" +"Identique à :meth:`.datetime.strftime`. Cela permet de spécifier une chaîne " +"de format pour un objet :class:`.datetime` dans une :ref:`chaîne de " +"formatage littérale ` et en utilisant :meth:`str.format`. Pour " +"une liste complète des directives de formatage, voir :ref:`strftime-strptime-" +"behavior`." + +#: ../Doc/library/datetime.rst:1302 +msgid "Examples of working with datetime objects:" +msgstr "Exemples d'utilisation des objets *datetime* :" + +#: ../Doc/library/datetime.rst:1349 +msgid "Using datetime with tzinfo:" +msgstr "Utilisation de *datetime* avec *tzinfo* :" + +#: ../Doc/library/datetime.rst:1417 +msgid ":class:`.time` Objects" +msgstr "Objets :class:`.time`" + +#: ../Doc/library/datetime.rst:1419 +msgid "" +"A time object represents a (local) time of day, independent of any " +"particular day, and subject to adjustment via a :class:`tzinfo` object." +msgstr "" +"Un objet *time* représente une heure (locale) du jour, indépendante de tout " +"jour particulier, et sujette à des ajustements par un objet :class:`tzinfo`." + +#: ../Doc/library/datetime.rst:1424 +msgid "" +"All arguments are optional. *tzinfo* may be ``None``, or an instance of a :" +"class:`tzinfo` subclass. The remaining arguments may be integers, in the " +"following ranges:" +msgstr "" +"Tous les arguments sont optionnels. *tzinfo* peut être ``None`` ou une " +"instance d'une sous-classe :class:`tzinfo`. Les autres arguments doivent " +"être des nombres entiers, dans les intervalles suivants :" + +#: ../Doc/library/datetime.rst:1434 +msgid "" +"If an argument outside those ranges is given, :exc:`ValueError` is raised. " +"All default to ``0`` except *tzinfo*, which defaults to :const:`None`." +msgstr "" +"Si un argument est fourni en dehors de ces bornes, une :exc:`ValueError` est " +"levée. Ils valent tous ``0`` par défaut, à l'exception de *tzinfo* qui " +"vaut :const:`None`." + +#: ../Doc/library/datetime.rst:1442 +msgid "The earliest representable :class:`.time`, ``time(0, 0, 0, 0)``." +msgstr "" +"Le plus petit objet :class:`.time` représentable, ``time(0, 0, 0, 0)``." + +#: ../Doc/library/datetime.rst:1447 +msgid "The latest representable :class:`.time`, ``time(23, 59, 59, 999999)``." +msgstr "" +"Le plus grand objet :class:`.time` représentable, ``time(23, 59, 59, " +"999999)``." + +#: ../Doc/library/datetime.rst:1452 +msgid "" +"The smallest possible difference between non-equal :class:`.time` objects, " +"``timedelta(microseconds=1)``, although note that arithmetic on :class:`." +"time` objects is not supported." +msgstr "" +"La plus petite différence possible entre deux objets :class:`.time` non-" +"égaux, ``timedelta(microseconds=1)``, notez cependant que les objets :class:" +"`.time` n'implémentent pas d'opérations arithmétiques." + +#: ../Doc/library/datetime.rst:1481 +msgid "" +"The object passed as the tzinfo argument to the :class:`.time` constructor, " +"or ``None`` if none was passed." +msgstr "" +"L'objet passé comme argument *tzinfo* au constructeur de :class:`.time`, ou " +"``None`` si aucune valeur n'a été passée." + +#: ../Doc/library/datetime.rst:1498 +msgid "" +"comparison of :class:`.time` to :class:`.time`, where *a* is considered less " +"than *b* when *a* precedes *b* in time. If one comparand is naive and the " +"other is aware, :exc:`TypeError` is raised if an order comparison is " +"attempted. For equality comparisons, naive instances are never equal to " +"aware instances." +msgstr "" +"comparaison d'un :class:`.time` avec un autre :class:`.time`, où *a* est " +"considéré inférieur à *b* s'il le précède dans le temps. Si un opérande est " +"naïf et l'autre avisé, et qu'une relation d'ordre est attendue, une :exc:" +"`TypeError` est levée. Pour les égalités, les instances naïves ne sont " +"jamais égales aux instances avisées." + +#: ../Doc/library/datetime.rst:1503 +msgid "" +"If both comparands are aware, and have the same :attr:`~time.tzinfo` " +"attribute, the common :attr:`~time.tzinfo` attribute is ignored and the base " +"times are compared. If both comparands are aware and have different :attr:" +"`~time.tzinfo` attributes, the comparands are first adjusted by subtracting " +"their UTC offsets (obtained from ``self.utcoffset()``). In order to stop " +"mixed-type comparisons from falling back to the default comparison by object " +"address, when a :class:`.time` object is compared to an object of a " +"different type, :exc:`TypeError` is raised unless the comparison is ``==`` " +"or ``!=``. The latter cases return :const:`False` or :const:`True`, " +"respectively." +msgstr "" +"Si les deux opérandes sont avisés, et ont le même attribut :attr:`~time." +"tzinfo`, l'attribut commun :attr:`~time.tzinfo` est ignoré et les temps de " +"base sont comparés. Si les deux opérandes sont avisés et ont des attributs :" +"attr:`~time.tzinfo` différents, ils sont d'abord ajustés en leur soustrayant " +"leurs décalages UTC (obtenus à l'aide de ``self.utcoffset()``). Afin " +"d'empêcher les comparaisons de types mixtes de retomber sur la comparaison " +"par défaut par l'adresse de l'objet, quand un objet :class:`.time` est " +"comparé à un objet de type différent, une :exc:`TypeError` est levée à moins " +"que la comparaison soit ``==`` ou ``!=``. Ces derniers cas renvoient " +"respectivement :const:`False` et :const:`True`." + +#: ../Doc/library/datetime.rst:1513 +msgid "" +"Equality comparisons between naive and aware :class:`~datetime.time` " +"instances don't raise :exc:`TypeError`." +msgstr "" +"Les comparaisons d'égalité entre instances de :class:`~datetime.time` naïves " +"et avisées ne lèvent pas de :exc:`TypeError`." + +#: ../Doc/library/datetime.rst:1517 +msgid "hash, use as dict key" +msgstr "hachage, utilisation comme clef de dictionnaire" + +#: ../Doc/library/datetime.rst:1519 +msgid "efficient pickling" +msgstr "sérialisation (*pickling*) efficace" + +#: ../Doc/library/datetime.rst:1521 +msgid "" +"In boolean contexts, a :class:`.time` object is always considered to be true." +msgstr "" +"Dans un contexte booléen, un objet :class:`.time` est toujours considéré " +"comme vrai." + +#: ../Doc/library/datetime.rst:1523 +msgid "" +"Before Python 3.5, a :class:`.time` object was considered to be false if it " +"represented midnight in UTC. This behavior was considered obscure and error-" +"prone and has been removed in Python 3.5. See :issue:`13936` for full " +"details." +msgstr "" +"Avant Python 3.5, un objet :class:`.time` était considéré comme faux s'il " +"représentait minuit en UTC. Ce comportement était considéré comme obscur et " +"propice aux erreurs, il a été supprimé en Python 3.5. Voir :issue:`13936` " +"pour les détails complets." + +#: ../Doc/library/datetime.rst:1530 +msgid "Other constructor:" +msgstr "Autre constructeur :" + +#: ../Doc/library/datetime.rst:1534 +msgid "" +"Return a :class:`time` corresponding to a *time_string* in one of the " +"formats emitted by :meth:`time.isoformat`. Specifically, this function " +"supports strings in the format(s) ``HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[." +"ffffff]]]``." +msgstr "" +"Renvoie une :class:`time` correspondant à *time_string* dans l'un des " +"formats émis par :meth:`time.isoformat`. Plus spécifiquement, cette fonction " +"est compatible avec des chaînes dans le(s) format(s) ``HH[:MM[:SS[." +"fff[fff]]]][+HH:MM[:SS[.ffffff]]]``." + +#: ../Doc/library/datetime.rst:1540 +msgid "" +"This does not support parsing arbitrary ISO 8601 strings - it is only " +"intended as the inverse operation of :meth:`time.isoformat`." +msgstr "" +"Ceci ne gère pas l'analyse arbitraire de chaînes ISO 8601, ceci est " +"seulement destiné à l'opération inverse de :meth:`time.isoformat`." + +#: ../Doc/library/datetime.rst:1551 +msgid "" +"Return a :class:`.time` with the same value, except for those attributes " +"given new values by whichever keyword arguments are specified. Note that " +"``tzinfo=None`` can be specified to create a naive :class:`.time` from an " +"aware :class:`.time`, without conversion of the time data." +msgstr "" +"Renvoie un objet :class:`.time` avec la même valeur, à l'exception des " +"attributs dont une nouvelle valeur est spécifiée par les arguments nommés. " +"Notez que ``tzinfo=None`` peut être spécifié pour créer une instance :class:" +"`.time` naïve à partir d'une instance :class:`.time` avisée, sans conversion " +"des données de temps." + +#: ../Doc/library/datetime.rst:1562 +msgid "" +"Return a string representing the time in ISO 8601 format, HH:MM:SS.ffffff " +"or, if :attr:`microsecond` is 0, HH:MM:SS If :meth:`utcoffset` does not " +"return ``None``, a string is appended, giving the UTC offset: HH:MM:SS.ffffff" +"+HH:MM[:SS[.ffffff]] or, if self.microsecond is 0, HH:MM:SS+HH:MM[:SS[." +"ffffff]]." +msgstr "" +"Renvoie une chaîne représentant l'heure au format ISO 8601, ``HH:MM:SS." +"ffffff`` ou, si :attr:`microsecond` vaut 0, ``HH:MM:SS`` Si :meth:" +"`utcoffset` ne renvoie pas ``None``, une chaîne est ajoutée, donnant le " +"décalage UTC : ``HH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]`` ou, si ``self." +"microsecond`` vaut 0, ``HH:MM:SS+HH:MM[:SS[.ffffff]]``." + +#: ../Doc/library/datetime.rst:1603 +msgid "For a time *t*, ``str(t)`` is equivalent to ``t.isoformat()``." +msgstr "Pour un temps *t*, ``str(t)`` est équivalent à ``t.isoformat()``." + +#: ../Doc/library/datetime.rst:1608 +msgid "" +"Return a string representing the time, controlled by an explicit format " +"string. For a complete list of formatting directives, see :ref:`strftime-" +"strptime-behavior`." +msgstr "" +"Renvoie une chaîne de caractères représentant la date, contrôlée par une " +"chaîne de formatage explicite. Pour une liste complète des directives de " +"formatage, voir :ref:`strftime-strptime-behavior`." + +#: ../Doc/library/datetime.rst:1615 +msgid "" +"Same as :meth:`.time.strftime`. This makes it possible to specify a format " +"string for a :class:`.time` object in :ref:`formatted string literals ` and when using :meth:`str.format`. For a complete list of " +"formatting directives, see :ref:`strftime-strptime-behavior`." +msgstr "" +"Identique à :meth:`.time.strftime`. Cela permet de spécifier une chaîne de " +"formatage pour un objet :class:`.time` dans une :ref:`chaîne de formatage " +"littérale ` et à l'utilisation de :meth:`str.format`. Pour une " +"liste complète des directives de formatage, voir :ref:`strftime-strptime-" +"behavior`." + +#: ../Doc/library/datetime.rst:1624 +msgid "" +"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." +"utcoffset(None)``, and raises an exception if the latter doesn't return " +"``None`` or a :class:`timedelta` object with magnitude less than one day." +msgstr "" +"Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie ``self." +"tzinfo.utcoffset(None)``, et lève une exception si l'expression précédente " +"ne renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " +"inférieure à un jour." + +#: ../Doc/library/datetime.rst:1634 +msgid "" +"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." +"dst(None)``, and raises an exception if the latter doesn't return ``None``, " +"or a :class:`timedelta` object with magnitude less than one day." +msgstr "" +"Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie ``self." +"tzinfo.dst(None)``, et lève une exception si l'expression précédente ne " +"renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " +"inférieure à un jour." + +#: ../Doc/library/datetime.rst:1643 +msgid "" +"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." +"tzname(None)``, or raises an exception if the latter doesn't return ``None`` " +"or a string object." +msgstr "" +"Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie ``self." +"tzinfo.tzname(None)``, et lève une exception si l'expression précédente ne " +"renvoie pas ``None`` ou une chaîne de caractères." + +#: ../Doc/library/datetime.rst:1647 +msgid "Example:" +msgstr "Exemple :" + +#: ../Doc/library/datetime.rst:1678 +msgid ":class:`tzinfo` Objects" +msgstr "Objets :class:`tzinfo`" + +#: ../Doc/library/datetime.rst:1682 +msgid "" +"This is an abstract base class, meaning that this class should not be " +"instantiated directly. You need to derive a concrete subclass, and (at " +"least) supply implementations of the standard :class:`tzinfo` methods needed " +"by the :class:`.datetime` methods you use. The :mod:`datetime` module " +"supplies a simple concrete subclass of :class:`tzinfo`, :class:`timezone`, " +"which can represent timezones with fixed offset from UTC such as UTC itself " +"or North American EST and EDT." +msgstr "" +"Cette classe est une classe abstraite, signifiant qu'elle ne doit pas être " +"instanciée directement. Vous devez en dériver une sous-classe concrète, et " +"(au minimum) fournir des implémentations aux méthodes standard :class:" +"`tzinfo` requises par les méthodes de :class:`.datetime` que vous utilisez. " +"Le module :mod:`datetime` fournit une simple sous-classe concrète de :class:" +"`tzinfo`, :class:`timezone`, qui peut peut représenter des fuseaux horaires " +"avec des décalages fixes par rapport à UTC, tels qu'UTC lui-même ou les nord-" +"américains EST et EDT." + +#: ../Doc/library/datetime.rst:1690 +msgid "" +"An instance of (a concrete subclass of) :class:`tzinfo` can be passed to the " +"constructors for :class:`.datetime` and :class:`.time` objects. The latter " +"objects view their attributes as being in local time, and the :class:" +"`tzinfo` object supports methods revealing offset of local time from UTC, " +"the name of the time zone, and DST offset, all relative to a date or time " +"object passed to them." +msgstr "" +"Une instance (d'une sous-classe concrète) de :class:`tzinfo` peut être " +"passée aux constructeurs des objets :class:`.datetime` et :class:`.time`. " +"Les objets en question voient leurs attributs comme étant en temps local, et " +"l'objet :class:`.tzinfo` contient des méthodes pour obtenir le décalage du " +"temps local par rapport à UTC, le nom du fuseau horaire, le décalage d'heure " +"d'été, tous relatifs à un objet de date ou d'heure qui leur est passé." + +#: ../Doc/library/datetime.rst:1696 +msgid "" +"Special requirement for pickling: A :class:`tzinfo` subclass must have an :" +"meth:`__init__` method that can be called with no arguments, else it can be " +"pickled but possibly not unpickled again. This is a technical requirement " +"that may be relaxed in the future." +msgstr "" +"Prérequis spécifique au *picklng* : Une sous-classe :class:`tzinfo` doit " +"avoir une méthode :meth:`__init__` qui peut être appelée sans arguments, " +"sans quoi un objet sérialisé ne pourrait pas toujours être désérialisé. " +"C'est un prérequis technique qui pourrait être assoupli dans le futur." + +#: ../Doc/library/datetime.rst:1701 +msgid "" +"A concrete subclass of :class:`tzinfo` may need to implement the following " +"methods. Exactly which methods are needed depends on the uses made of " +"aware :mod:`datetime` objects. If in doubt, simply implement all of them." +msgstr "" +"Une sous-classe concrète de :class:`tzinfo` peut devoir implémenter les " +"méthodes suivantes. Les méthodes réellement nécessaires dépendent de " +"l'utilisation qui est faite des objets :mod:`datetime` avisés. Dans le " +"doute, implémentez-les toutes." + +#: ../Doc/library/datetime.rst:1708 +msgid "" +"Return offset of local time from UTC, as a :class:`timedelta` object that is " +"positive east of UTC. If local time is west of UTC, this should be " +"negative. Note that this is intended to be the total offset from UTC; for " +"example, if a :class:`tzinfo` object represents both time zone and DST " +"adjustments, :meth:`utcoffset` should return their sum. If the UTC offset " +"isn't known, return ``None``. Else the value returned must be a :class:" +"`timedelta` object strictly between ``-timedelta(hours=24)`` and " +"``timedelta(hours=24)`` (the magnitude of the offset must be less than one " +"day). Most implementations of :meth:`utcoffset` will probably look like one " +"of these two::" +msgstr "" +"Renvoie le décalage entre le temps local et UTC, comme un objet :class:" +"`timedelta` qui est positif à l'est d'UTC. Si le temps local se situe à " +"l'ouest d'UTC, le décalage doit être négatif. Notez que cela est prévu pour " +"être le décalage total par rapport à UTC ; par exemple, si un objet :class:" +"`tzinfo` représente à la fois un fuseau horaire et son ajustement à l'heure " +"d'été, :meth:`utcoffset` devrait renvoyer leur somme. Si le décalage UTC " +"n'est pas connu, renvoie ``None``. Sinon, la valeur renvoyée doit être un " +"objet :class:`timedelta` compris strictement entre ``-timedelta(hours=24)`` " +"et ``timedelta(hours=24)`` (la magnitude du décalage doit être inférieure à " +"un jour). La plupart des implémentations de :meth:`utcoffset` ressembleront " +"probablement à l'une des deux suivantes : ::" + +#: ../Doc/library/datetime.rst:1722 +msgid "" +"If :meth:`utcoffset` does not return ``None``, :meth:`dst` should not return " +"``None`` either." +msgstr "" +"Si :meth:`utcoffset` ne renvoie pas ``None``, :meth:`dst` ne doit pas non " +"plus renvoyer ``None``." + +#: ../Doc/library/datetime.rst:1725 +msgid "" +"The default implementation of :meth:`utcoffset` raises :exc:" +"`NotImplementedError`." +msgstr "" +"L'implémentation par défaut de :meth:`utcoffset` lève une :exc:" +"`NotImplementedError`." + +#: ../Doc/library/datetime.rst:1734 +msgid "" +"Return the daylight saving time (DST) adjustment, as a :class:`timedelta` " +"object or ``None`` if DST information isn't known. Return ``timedelta(0)`` " +"if DST is not in effect. If DST is in effect, return the offset as a :class:" +"`timedelta` object (see :meth:`utcoffset` for details). Note that DST " +"offset, if applicable, has already been added to the UTC offset returned by :" +"meth:`utcoffset`, so there's no need to consult :meth:`dst` unless you're " +"interested in obtaining DST info separately. For example, :meth:`datetime." +"timetuple` calls its :attr:`~.datetime.tzinfo` attribute's :meth:`dst` " +"method to determine how the :attr:`tm_isdst` flag should be set, and :meth:" +"`tzinfo.fromutc` calls :meth:`dst` to account for DST changes when crossing " +"time zones." +msgstr "" +"Renvoie l'ajustement d'heure d'été (DST, *daylight saving time*), comme un " +"objet :class:`timedelta` ou ``None`` si l'information n'est pas connue. " +"Renvoie ``timedelta(0)`` si l'heure d'été n'est pas effective. Si elle est " +"effective, renvoie un décalage sous forme d'un objet :class:`timedelta` " +"(voir :meth:`utcoffset` pour les détails). Notez que ce décalage, si " +"applicable, est déjà compris dans le décalage UTC renvoyé par :meth:" +"`utcoffset`, il n'est donc pas nécessaire de faire appel à :meth:`dst` à " +"moins que vous ne souhaitiez obtenir les informations séparément. Par " +"exemple, :meth:`datetime.timetuple` appelle la méthode :meth:`dst` de son " +"attribut :attr:`~.datetime.tzinfo` pour déterminer si l'option :attr:" +"`tm_isdst` doit être activée, et :meth:`tzinfo.fromutc` fait appel à :meth:" +"`dst` pour tenir compte des heures d'été quand elle traverse des fuseaux " +"horaires." + +#: ../Doc/library/datetime.rst:1746 +msgid "" +"An instance *tz* of a :class:`tzinfo` subclass that models both standard and " +"daylight times must be consistent in this sense:" +msgstr "" +"Une instance *tz* d'une sous-classe :class:`tzinfo` convenant à la fois pour " +"une heure standard et une heure d'été doit être cohérente :" + +#: ../Doc/library/datetime.rst:1749 +msgid "``tz.utcoffset(dt) - tz.dst(dt)``" +msgstr "``tz.utcoffset(dt) - tz.dst(dt)``" + +#: ../Doc/library/datetime.rst:1751 +msgid "" +"must return the same result for every :class:`.datetime` *dt* with ``dt." +"tzinfo == tz`` For sane :class:`tzinfo` subclasses, this expression yields " +"the time zone's \"standard offset\", which should not depend on the date or " +"the time, but only on geographic location. The implementation of :meth:" +"`datetime.astimezone` relies on this, but cannot detect violations; it's the " +"programmer's responsibility to ensure it. If a :class:`tzinfo` subclass " +"cannot guarantee this, it may be able to override the default implementation " +"of :meth:`tzinfo.fromutc` to work correctly with :meth:`astimezone` " +"regardless." +msgstr "" +"doit renvoyer le même résultat pour tout objet :class:`.datetime` *dt* avec " +"``dt.tzinfo == tz`` Pour les sous-classes saines de :class:`tzinfo`, cette " +"expression calcule le « décalage standard » du fuseau horaire, qui ne doit " +"pas dépendre de la date ou de l'heure, mais seulement de la position " +"géographique. L'implémentation de :meth:`datetime.astimezone` se base là-" +"dessus, mais ne peut pas détecter les violations ; il est de la " +"responsabilité du programmeur de l'assurer. Si une sous-classe :class:" +"`tzinfo` ne le garantit pas, il doit être possible de redéfinir " +"l'implémentation par défaut de :meth:`tzinfo.fromutc` pour tout de même " +"fonctionner correctement avec :meth:`astimezone`." + +#: ../Doc/library/datetime.rst:1760 +msgid "" +"Most implementations of :meth:`dst` will probably look like one of these " +"two::" +msgstr "" +"La plupart des implémentations de :meth:`dst` ressembleront probablement à " +"l'une des deux suivantes ::" + +#: ../Doc/library/datetime.rst:1766 +msgid "or ::" +msgstr "ou ::" + +#: ../Doc/library/datetime.rst:1778 +msgid "" +"The default implementation of :meth:`dst` raises :exc:`NotImplementedError`." +msgstr "" +"L'implémentation par défaut de :meth:`dst` lève une :exc:" +"`NotImplementedError`." + +#: ../Doc/library/datetime.rst:1786 +msgid "" +"Return the time zone name corresponding to the :class:`.datetime` object " +"*dt*, as a string. Nothing about string names is defined by the :mod:" +"`datetime` module, and there's no requirement that it mean anything in " +"particular. For example, \"GMT\", \"UTC\", \"-500\", \"-5:00\", \"EDT\", " +"\"US/Eastern\", \"America/New York\" are all valid replies. Return ``None`` " +"if a string name isn't known. Note that this is a method rather than a " +"fixed string primarily because some :class:`tzinfo` subclasses will wish to " +"return different names depending on the specific value of *dt* passed, " +"especially if the :class:`tzinfo` class is accounting for daylight time." +msgstr "" +"Renvoie le nom du fuseau horaire correspondant à l'objet :class:`.datetime` " +"*dt*, sous forme d'une chaîne de caractères. rien n'est défini sur les noms " +"par le module :mod:`datetime`, et il n'est pas nécessaire que ces noms " +"signifient quelque chose en particulier. Par exemple, « *GMT* », « *UTC* », " +"« *-500* », « *-5:00* », « *EDT* », « *US/Eastern* » et « *America/New " +"York* » sont toutes des valeurs de retour valides. Renvoie ``None`` si un " +"nom est inconnu. Notez qu'il s'agit d'une méthode et non d'une chaîne fixée " +"en amont, parce que les sous-classes de :class:`tzinfo` peuvent souhaiter " +"renvoyer des noms différents en fonction de valeurs de *dt* spécifiques, en " +"particulier si la classe :class:`tzinfo` tient compte de l'heure d'été." + +#: ../Doc/library/datetime.rst:1796 +msgid "" +"The default implementation of :meth:`tzname` raises :exc:" +"`NotImplementedError`." +msgstr "" +"L'implémentation par défaut de :meth:`tzname` lève une :exc:" +"`NotImplementedError`." + +#: ../Doc/library/datetime.rst:1799 +msgid "" +"These methods are called by a :class:`.datetime` or :class:`.time` object, " +"in response to their methods of the same names. A :class:`.datetime` object " +"passes itself as the argument, and a :class:`.time` object passes ``None`` " +"as the argument. A :class:`tzinfo` subclass's methods should therefore be " +"prepared to accept a *dt* argument of ``None``, or of class :class:`." +"datetime`." +msgstr "" +"Ces méthodes sont appelées par les objets :class:`.datetime` et :class:`." +"time`, en réponse à leurs méthodes aux mêmes noms. Un objet :class:`." +"datetime` se passe lui-même en tant qu'argument, et un objet :class:`.time` " +"passe ``None``. Les méthodes des sous-classes :class:`tzinfo` doivent alors " +"être prêtes à recevoir un argument ``None`` pour *dt*, ou une instance de :" +"class:`.datetime`." + +#: ../Doc/library/datetime.rst:1805 +msgid "" +"When ``None`` is passed, it's up to the class designer to decide the best " +"response. For example, returning ``None`` is appropriate if the class " +"wishes to say that time objects don't participate in the :class:`tzinfo` " +"protocols. It may be more useful for ``utcoffset(None)`` to return the " +"standard UTC offset, as there is no other convention for discovering the " +"standard offset." +msgstr "" +"Quand ``None`` est passé, il est de la responsabilité du *designer* de la " +"classe de choisir la meilleure réponse. Par exemple, renvoyer ``None`` est " +"approprié si la classe souhaite signaler que les objets de temps ne " +"participent pas au protocole :class:`tzinfo`. Il peut être plus utile pour " +"``utcoffset(None)`` de renvoyer le décalage UTC standard, comme il n'existe " +"aucune autre convention pour obtenir ce décalage." + +#: ../Doc/library/datetime.rst:1811 +msgid "" +"When a :class:`.datetime` object is passed in response to a :class:`." +"datetime` method, ``dt.tzinfo`` is the same object as *self*. :class:" +"`tzinfo` methods can rely on this, unless user code calls :class:`tzinfo` " +"methods directly. The intent is that the :class:`tzinfo` methods interpret " +"*dt* as being in local time, and not need worry about objects in other " +"timezones." +msgstr "" +"Quand un objet :class:`.datetime` est passé en réponse à une méthode de :" +"class:`.datetime`, ``dt.tzinfo`` est le même objet que *self*. Les méthodes " +"de :class:`tzinfo` peuvent se baser là-dessus, à moins que le code " +"utilisateur appelle directement des méthodes de :class:`tzinfo`. " +"L'intention est que les méthodes de :class:`tzinfo` interprètent *dt* comme " +"étant le temps local, et n'aient pas à se soucier des objets dans d'autres " +"fuseaux horaires." + +#: ../Doc/library/datetime.rst:1817 +msgid "" +"There is one more :class:`tzinfo` method that a subclass may wish to " +"override:" +msgstr "" +"Il y a une dernière méthode de :class:`tzinfo` que les sous-classes peuvent " +"vouloir redéfinir :" + +#: ../Doc/library/datetime.rst:1822 +msgid "" +"This is called from the default :class:`datetime.astimezone()` " +"implementation. When called from that, ``dt.tzinfo`` is *self*, and *dt*'s " +"date and time data are to be viewed as expressing a UTC time. The purpose " +"of :meth:`fromutc` is to adjust the date and time data, returning an " +"equivalent datetime in *self*'s local time." +msgstr "" +"Elle est appelée par l'implémentation par défaut de :class:`datetime." +"astimezone()`. Quand appelée depuis cette méthode, ``dt.tzinfo`` est " +"*self*, et les données de date et d'heure de *dt* sont vues comme exprimant " +"un temps UTC. Le rôle de :meth:`fromutc` est d'ajuster les données de date " +"et d'heure, renvoyant un objet *datetime* équivalent à *self*, dans le temps " +"local." + +#: ../Doc/library/datetime.rst:1828 +msgid "" +"Most :class:`tzinfo` subclasses should be able to inherit the default :meth:" +"`fromutc` implementation without problems. It's strong enough to handle " +"fixed-offset time zones, and time zones accounting for both standard and " +"daylight time, and the latter even if the DST transition times differ in " +"different years. An example of a time zone the default :meth:`fromutc` " +"implementation may not handle correctly in all cases is one where the " +"standard offset (from UTC) depends on the specific date and time passed, " +"which can happen for political reasons. The default implementations of :meth:" +"`astimezone` and :meth:`fromutc` may not produce the result you want if the " +"result is one of the hours straddling the moment the standard offset changes." +msgstr "" +"La plupart des sous-classes :class:`tzinfo` doivent être en mesure d'hériter " +"sans problème de l'implémentation par défaut de :meth:`fromutc`. Elle est " +"suffisamment robuste pour gérer les fuseaux horaires à décalage fixe, et les " +"fuseaux représentant à la fois des heures standards et d'été, et ce même si " +"le décalage de l'heure d'été est différent suivant les années. Un exemple " +"de fuseau horaire qui ne serait pas géré correctement dans tous les cas par " +"l'implémentation par défaut de :meth:`fromutc` en est un où le décalage " +"standard (par rapport à UTC) dépend de valeurs spécifiques de date et " +"d'heure passées, ce qui peut arriver pour des raisons politiques. Les " +"implémentations par défaut de :meth:`astimezone` et :meth:`fromutc` peuvent " +"ne pas produire les résultats attendus si le résultat est l'une des heures " +"affectées par le changement d'heure." + +#: ../Doc/library/datetime.rst:1839 +msgid "" +"Skipping code for error cases, the default :meth:`fromutc` implementation " +"acts like::" +msgstr "" +"En omettant le code des cas d'erreurs, l'implémentation par défaut de :meth:" +"`fromutc` se comporte comme suit ::" + +#: ../Doc/library/datetime.rst:1857 +msgid "" +"In the following :download:`tzinfo_examples.py <../includes/tzinfo_examples." +"py>` file there are some examples of :class:`tzinfo` classes:" +msgstr "" +"Dans le fichier :download:`tzinfo_examples.py <../includes/tzinfo_examples." +"py>` il y a des exemples de :class:`tzinfo` classes:" + +#: ../Doc/library/datetime.rst:1863 +msgid "" +"Note that there are unavoidable subtleties twice per year in a :class:" +"`tzinfo` subclass accounting for both standard and daylight time, at the DST " +"transition points. For concreteness, consider US Eastern (UTC -0500), where " +"EDT begins the minute after 1:59 (EST) on the second Sunday in March, and " +"ends the minute after 1:59 (EDT) on the first Sunday in November::" +msgstr "" +"Notez que, deux fois par an, on rencontre des subtilités inévitables dans " +"les sous-classes de :class:`tzinfo` représentant à la fois des heures " +"standard et d'été, au passage de l'une à l'autre. Concrètement, considérez " +"le fuseau de l'est des États-Unis (UTC -0500), où EDT (heure d'été) débute à " +"la minute qui suit 1:59 (EST) le second dimanche de mars, et se termine à la " +"minute qui suit 1:59 (EDT) le premier dimanche de novembre : ::" + +#: ../Doc/library/datetime.rst:1877 +msgid "" +"When DST starts (the \"start\" line), the local wall clock leaps from 1:59 " +"to 3:00. A wall time of the form 2:MM doesn't really make sense on that " +"day, so ``astimezone(Eastern)`` won't deliver a result with ``hour == 2`` on " +"the day DST begins. For example, at the Spring forward transition of 2016, " +"we get" +msgstr "" +"Quand l'heure d'été débute (la ligne « *start* »), l'horloge locale passe de " +"1:59 à 3:00. Une heure de la forme 2:MM n'a pas vraiment de sens ce jour " +"là, donc ``astimezone(Eastern)`` ne délivrera pas de résultat avec ``hour " +"== 2`` pour le jour où débute l'heure d'été. Par exemple, lors de la " +"transition du printemps 2016, nous obtenons" + +#: ../Doc/library/datetime.rst:1896 +msgid "" +"When DST ends (the \"end\" line), there's a potentially worse problem: " +"there's an hour that can't be spelled unambiguously in local wall time: the " +"last hour of daylight time. In Eastern, that's times of the form 5:MM UTC " +"on the day daylight time ends. The local wall clock leaps from 1:59 " +"(daylight time) back to 1:00 (standard time) again. Local times of the form " +"1:MM are ambiguous. :meth:`astimezone` mimics the local clock's behavior by " +"mapping two adjacent UTC hours into the same local hour then. In the " +"Eastern example, UTC times of the form 5:MM and 6:MM both map to 1:MM when " +"converted to Eastern, but earlier times have the :attr:`~datetime.fold` " +"attribute set to 0 and the later times have it set to 1. For example, at the " +"Fall back transition of 2016, we get" +msgstr "" +"Quand l'heure d'été se termine (la ligne « *end* »), il y a potentiellement " +"un problème pire que cela : il y a une heure qui ne peut pas être exprimée " +"sans ambiguïté en temps local : la dernière heure de l'heure d'été. Dans " +"l'est des États-Unis, l'heure d'été se termine sur les heures de la forme 5:" +"MM UTC. L'horloge locale passe de 1:59 (heure d'été) à 1:00 (heure " +"standard) à nouveau. Les heures locales de la forme 1:MM sont ambiguës. :" +"meth:`astimezone` imite le comportement des horloges locales en associant " +"deux heures UTC adjacentes à la même heure locale. Dans notre exemple, les " +"temps UTC de la forme 5:MM et 6:MM sont tous deux associés à 1:MM quand " +"convertis vers ce fuseau, mais les heures les plus anciennes ont l'attribut :" +"attr:`~datetime.fold` à 0 et les plus récentes l'ont à 1. Par exemple, lors " +"de la transition de l'automne 2016, nous obtenons" + +#: ../Doc/library/datetime.rst:1918 +msgid "" +"Note that the :class:`datetime` instances that differ only by the value of " +"the :attr:`~datetime.fold` attribute are considered equal in comparisons." +msgstr "" +"Notez que deux instances :class:`datetime` qui ne diffèrent que par la " +"valeur de leur attribut :attr:`~datetime.fold` sont considérées égales dans " +"les comparaisons." + +#: ../Doc/library/datetime.rst:1921 +msgid "" +"Applications that can't bear wall-time ambiguities should explicitly check " +"the value of the :attr:`~datetime.fold` attribute or avoid using hybrid :" +"class:`tzinfo` subclasses; there are no ambiguities when using :class:" +"`timezone`, or any other fixed-offset :class:`tzinfo` subclass (such as a " +"class representing only EST (fixed offset -5 hours), or only EDT (fixed " +"offset -4 hours))." +msgstr "" +"Les applications qui ne peuvent pas gérer ces ambiguïtés doivent vérifier " +"explicitement la valeur de l'attribut :attr:`~datetime.fold` ou éviter " +"d'utiliser des sous-classes :class:`tzinfo` hybrides ; il n'y a aucune " +"ambiguïté lors de l'utilisation de la classe :class:`timezone`, ou toute " +"autre sous-classe de :class:`tzinfo` à décalage fixe (comme une classe " +"représentant uniquement le fuseau EST (de décalage fixe *-5h*) ou uniquement " +"EDT (*-4h*))." + +#: ../Doc/library/datetime.rst:1934 +msgid "`dateutil.tz `_" +msgstr "`dateutil.tz `_" + +#: ../Doc/library/datetime.rst:1930 +msgid "" +"The standard library has :class:`timezone` class for handling arbitrary " +"fixed offsets from UTC and :attr:`timezone.utc` as UTC timezone instance." +msgstr "" +"La bibliothèque standard contient la classe :class:`timezone` pour gérer des " +"décalages fixes par rapport à UTC et :attr:`timezone.utc` comme instance du " +"fuseau horaire UTC." + +#: ../Doc/library/datetime.rst:1933 +msgid "" +"*dateutil.tz* library brings the *IANA timezone database* (also known as the " +"Olson database) to Python and its usage is recommended." +msgstr "" +"La bibliothèque *dateutils.tz* apporte à Python la *base de données de " +"fuseaux horaires IANA* (*IANA timezone database*, aussi appelée base de " +"données Olson) , et son utilisation est recommandée." + +#: ../Doc/library/datetime.rst:1940 +msgid "`IANA timezone database `_" +msgstr "" +"`Base de données des fuseaux horaires de l'IANA `_" + +#: ../Doc/library/datetime.rst:1937 +msgid "" +"The Time Zone Database (often called tz, tzdata or zoneinfo) contains code " +"and data that represent the history of local time for many representative " +"locations around the globe. It is updated periodically to reflect changes " +"made by political bodies to time zone boundaries, UTC offsets, and daylight-" +"saving rules." +msgstr "" +"La *Time Zone Database* (souvent appelée *tz*, *tzdata* ou *zoneinfo*) " +"contient les codes et les données représentant l'historique du temps local " +"pour un grand nombre d'emplacements représentatifs autour du globe. Elle est " +"mise à jour périodiquement, pour refléter les changements opérés par des " +"politiques sur les bornes du fuseau, les décalages UTC, et les règles de " +"passage à l'heure d'été." + +#: ../Doc/library/datetime.rst:1947 +msgid ":class:`timezone` Objects" +msgstr "Objets :class:`timezone`" + +#: ../Doc/library/datetime.rst:1949 +msgid "" +"The :class:`timezone` class is a subclass of :class:`tzinfo`, each instance " +"of which represents a timezone defined by a fixed offset from UTC. Note " +"that objects of this class cannot be used to represent timezone information " +"in the locations where different offsets are used in different days of the " +"year or where historical changes have been made to civil time." +msgstr "" +"La classe :class:`timezone` est une sous-classe de :class:`tzinfo`, où " +"chaque instance représente un fuseau horaire défini par un décalage fixe par " +"rapport à UTC. Notez que les que les objets de cette classe ne peuvent pas " +"être utilisés pour représenter les informations de fuseaux horaires dans des " +"emplacements où plusieurs décalages sont utilisés au cours de l'année ou où " +"des changements historiques ont été opérés sur le temps civil." + +#: ../Doc/library/datetime.rst:1959 +msgid "" +"The *offset* argument must be specified as a :class:`timedelta` object " +"representing the difference between the local time and UTC. It must be " +"strictly between ``-timedelta(hours=24)`` and ``timedelta(hours=24)``, " +"otherwise :exc:`ValueError` is raised." +msgstr "" +"L'argument *offset* doit être spécifié comme un objet :class:`timedelta` " +"représentant la différence entre le temps local et UTC. Il doit être " +"strictement compris entre ``-timedelta(hours=24)`` et " +"``timedelta(hours=24)``, autrement une :exc:`ValueError` est levée." + +#: ../Doc/library/datetime.rst:1964 +msgid "" +"The *name* argument is optional. If specified it must be a string that will " +"be used as the value returned by the :meth:`datetime.tzname` method." +msgstr "" +"L'argument *name* est optionnel. Si spécifié, il doit être une chaîne de " +"caractères qui sera utilisée comme valeur de retour de la méthode :meth:" +"`datetime.tzname`." + +#: ../Doc/library/datetime.rst:1975 +msgid "" +"Return the fixed value specified when the :class:`timezone` instance is " +"constructed. The *dt* argument is ignored. The return value is a :class:" +"`timedelta` instance equal to the difference between the local time and UTC." +msgstr "" +"Renvoie la valeur fixe spécifiée à la création de l'instance de :class:" +"`timezone`. L'argument *dt* est ignoré. La valeur de retour est une " +"instance :class:`timedelta` égale à la différence entre le temps local et " +"UTC." + +#: ../Doc/library/datetime.rst:1985 +msgid "" +"Return the fixed value specified when the :class:`timezone` instance is " +"constructed. If *name* is not provided in the constructor, the name " +"returned by ``tzname(dt)`` is generated from the value of the ``offset`` as " +"follows. If *offset* is ``timedelta(0)``, the name is \"UTC\", otherwise it " +"is a string 'UTC±HH:MM', where ± is the sign of ``offset``, HH and MM are " +"two digits of ``offset.hours`` and ``offset.minutes`` respectively." +msgstr "" +"Renvoie la valeur fixe spécifiée à la création de l'instance de :class:" +"`timezone`. Si *name* n'est pas fourni au constructeur, le nom renvoyé par " +"``tzname(dt)`` est généré comme suit à partir de la valeur de ``offset``. " +"Si *offset* vaut ``timedelta(0)``, le nom sera « UTC », autrement le nom " +"sera une chaîne de la forme \"UTC±HH:MM\", où ± est le signe d'``offset``, " +"et HH et MM sont respectivement les représentations à deux chiffres de " +"``offset.hours`` et ``offset.minutes``." + +#: ../Doc/library/datetime.rst:1993 +msgid "" +"Name generated from ``offset=timedelta(0)`` is now plain 'UTC', not 'UTC" +"+00:00'." +msgstr "" +"Le nom généré à partir de ``offset=timedelta(0)`` est maintenant \"UTC\" " +"plutôt que \"UTC+00:00\"." + +#: ../Doc/library/datetime.rst:2000 +msgid "Always returns ``None``." +msgstr "Renvoie toujours ``None``." + +#: ../Doc/library/datetime.rst:2004 +msgid "" +"Return ``dt + offset``. The *dt* argument must be an aware :class:`." +"datetime` instance, with ``tzinfo`` set to ``self``." +msgstr "" +"Renvoie ``dt + offset``. L'argument *dt* doit être une instance avisée de :" +"class:`datetime`, avec ``tzinfo`` valant ``self``." + +#: ../Doc/library/datetime.rst:2011 +msgid "The UTC timezone, ``timezone(timedelta(0))``." +msgstr "Le fuseau horaire UTC, ``timezone(timedelta(0))``." + +#: ../Doc/library/datetime.rst:2020 +msgid ":meth:`strftime` and :meth:`strptime` Behavior" +msgstr "Comportement de :meth:`strftime` et :meth:`strptime`" + +#: ../Doc/library/datetime.rst:2022 +msgid "" +":class:`date`, :class:`.datetime`, and :class:`.time` objects all support a " +"``strftime(format)`` method, to create a string representing the time under " +"the control of an explicit format string. Broadly speaking, ``d." +"strftime(fmt)`` acts like the :mod:`time` module's ``time.strftime(fmt, d." +"timetuple())`` although not all objects support a :meth:`timetuple` method." +msgstr "" +"Les objets :class:`date`, :class:`.datetime` et :class:`.time` comportent " +"tous une méthode ``strftime(format)``, pour créer une représentation du " +"temps sous forme d'une chaîne de caractères, contrôlée par une chaîne de " +"formatage explicite. Grossièrement, ``d.strftime(fmt)`` se comporte comme " +"la fonction ``time.strftime(fmt, d.timetuple())`` du module :mod:`time`, " +"bien que tous les objets ne comportent pas de méthode :meth:`timetuple`." + +#: ../Doc/library/datetime.rst:2028 +msgid "" +"Conversely, the :meth:`datetime.strptime` class method creates a :class:`." +"datetime` object from a string representing a date and time and a " +"corresponding format string. ``datetime.strptime(date_string, format)`` is " +"equivalent to ``datetime(*(time.strptime(date_string, format)[0:6]))``, " +"except when the format includes sub-second components or timezone offset " +"information, which are supported in ``datetime.strptime`` but are discarded " +"by ``time.strptime``." +msgstr "" +"Inversement, la méthode de classe :meth:`datetime.strptime` crée un objet :" +"class:`.datetime` à partir d'une représentation de date et heure et d'une " +"chaîne de formatage correspondante. ``datetime.strptime(date_string, " +"format)`` est équivalent à ``datetime(*(time.strptime(date_string, format)" +"[0:6]))``, sauf quand le format inclut une composante en-dessous de la " +"seconde ou une information de fuseau horaire ; ces composantes sont gérées " +"par ``datetime.strptime`` mais sont ignorées par ``time.strptime``." + +#: ../Doc/library/datetime.rst:2035 +msgid "" +"For :class:`.time` objects, the format codes for year, month, and day should " +"not be used, as time objects have no such values. If they're used anyway, " +"``1900`` is substituted for the year, and ``1`` for the month and day." +msgstr "" +"Pour les objets :class:`.time`, les codes de formatage pour l'année, le mois " +"et le jour ne devraient pas être utilisés, puisque les objets de temps ne " +"possèdent pas de telles valeurs. S'ils sont tout de même utilisés, ``1900`` " +"est substitué à l'année, et ``1`` au mois et au jour." + +#: ../Doc/library/datetime.rst:2039 +msgid "" +"For :class:`date` objects, the format codes for hours, minutes, seconds, and " +"microseconds should not be used, as :class:`date` objects have no such " +"values. If they're used anyway, ``0`` is substituted for them." +msgstr "" +"Pour les objets :class:`date`, les codes de formatage pour les heures, " +"minutes, secondes et microsecondes ne devraient pas être utilisés, puisque " +"les objets :class:`date` ne possèdent pas de telles valeurs. S'ils sont " +"tous de même utilisés, ils sont substitués par ``0``." + +#: ../Doc/library/datetime.rst:2043 +msgid "" +"For the :meth:`datetime.strptime` class method, the default value is " +"``1900-01-01T00:00:00.000``: any components not specified in the format " +"string will be pulled from the default value. [#]_" +msgstr "" +"Pour la méthode :meth:`datetime.strptime`, la valeur par défaut est " +"``1900-01-01T00:00:00.000`` : tous les composants non spécifiés dans la " +"chaîne de formatage seront retirés de la valeur par défaut. [#]_" + +#: ../Doc/library/datetime.rst:2046 +msgid "" +"The full set of format codes supported varies across platforms, because " +"Python calls the platform C library's :func:`strftime` function, and " +"platform variations are common. To see the full set of format codes " +"supported on your platform, consult the :manpage:`strftime(3)` documentation." +msgstr "" +"L'ensemble complet des codes de formatage implémentés varie selon les " +"plateformes, parce que Python appelle la fonction :func:`strftime` de la " +"bibliothèque C de la plateforme, et les variations sont courantes. Pour " +"voir un ensemble complet des codes de formatage implémentés par votre " +"plateforme, consultez la documentation de :manpage:`strftime(3)`." + +#: ../Doc/library/datetime.rst:2051 +msgid "" +"For the same reason, handling of format strings containing Unicode code " +"points that can't be represented in the charset of the current locale is " +"also platform-dependent. On some platforms such code points are preserved " +"intact in the output, while on others ``strftime`` may raise :exc:" +"`UnicodeError` or return an empty string instead." +msgstr "" +"Pour la même raison, la gestion des chaînes contenant des caractères (ou " +"points) Unicode qui ne peuvent pas être représentés dans la *locale* " +"actuelle dépend aussi de la plateforme. Sur certaines plateformes, ces " +"caractères sont conservés tels quels dans la sortie, alors que sur d'autres " +"plateformes ``strftime`` lève une :exc:`UnicodeError` ou renvoie une chaîne " +"vide." + +#: ../Doc/library/datetime.rst:2057 +msgid "" +"The following is a list of all the format codes that the C standard (1989 " +"version) requires, and these work on all platforms with a standard C " +"implementation. Note that the 1999 version of the C standard added " +"additional format codes." +msgstr "" +"La liste suivante est la liste de tous les codes de formatage requis par le " +"standard C (version 1989), ils fonctionnent sur toutes les plateformes " +"possédant une implémentation de C standard. Notez que la version 1999 du " +"standard C a ajouté des codes de formatage additionnels." + +#: ../Doc/library/datetime.rst:2063 ../Doc/library/datetime.rst:2170 +msgid "Directive" +msgstr "Directive" + +#: ../Doc/library/datetime.rst:2063 ../Doc/library/datetime.rst:2170 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/datetime.rst:2063 ../Doc/library/datetime.rst:2170 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/datetime.rst:2063 ../Doc/library/datetime.rst:2170 +msgid "Notes" +msgstr "Notes" + +#: ../Doc/library/datetime.rst:2065 +msgid "``%a``" +msgstr "``%a``" + +#: ../Doc/library/datetime.rst:2065 +msgid "Weekday as locale's abbreviated name." +msgstr "Jour de la semaine abrégé dans la langue locale." + +#: ../Doc/library/datetime.rst:0 +msgid "Sun, Mon, ..., Sat (en_US);" +msgstr "Sun, Mon, ..., Sat (en_US);" + +#: ../Doc/library/datetime.rst:0 +msgid "So, Mo, ..., Sa (de_DE)" +msgstr "Lu, Ma, ..., Di (*fr_FR*)" + +#: ../Doc/library/datetime.rst:2070 +msgid "``%A``" +msgstr "``%A``" + +#: ../Doc/library/datetime.rst:2070 +msgid "Weekday as locale's full name." +msgstr "Jour de la semaine complet dans la langue locale." + +#: ../Doc/library/datetime.rst:0 +msgid "Sunday, Monday, ..., Saturday (en_US);" +msgstr "*Sunday*, *Monday*, ..., *Saturday* (*en_US*);" + +#: ../Doc/library/datetime.rst:0 +msgid "Sonntag, Montag, ..., Samstag (de_DE)" +msgstr "Lundi, Mardi, ..., Dimanche (*fr_FR*)" + +#: ../Doc/library/datetime.rst:2075 +msgid "``%w``" +msgstr "``%w``" + +#: ../Doc/library/datetime.rst:2075 +msgid "Weekday as a decimal number, where 0 is Sunday and 6 is Saturday." +msgstr "" +"Jour de la semaine en chiffre, avec 0 pour le dimanche et 6 pour le samedi." + +#: ../Doc/library/datetime.rst:2075 +msgid "0, 1, ..., 6" +msgstr "0, 1, ..., 6" + +#: ../Doc/library/datetime.rst:2079 +msgid "``%d``" +msgstr "``%d``" + +#: ../Doc/library/datetime.rst:2079 +msgid "Day of the month as a zero-padded decimal number." +msgstr "Jour du mois sur deux chiffres." + +#: ../Doc/library/datetime.rst:2079 +msgid "01, 02, ..., 31" +msgstr "01, 02, ..., 31" + +#: ../Doc/library/datetime.rst:2079 ../Doc/library/datetime.rst:2092 +#: ../Doc/library/datetime.rst:2095 ../Doc/library/datetime.rst:2101 +#: ../Doc/library/datetime.rst:2104 ../Doc/library/datetime.rst:2110 +#: ../Doc/library/datetime.rst:2128 +msgid "\\(9)" +msgstr "\\(9)" + +#: ../Doc/library/datetime.rst:2082 +msgid "``%b``" +msgstr "``%b``" + +#: ../Doc/library/datetime.rst:2082 +msgid "Month as locale's abbreviated name." +msgstr "Nom du mois abrégé dans la langue locale." + +#: ../Doc/library/datetime.rst:0 +msgid "Jan, Feb, ..., Dec (en_US);" +msgstr "Jan, Feb, ..., Dec (*en_US*);" + +#: ../Doc/library/datetime.rst:0 +msgid "Jan, Feb, ..., Dez (de_DE)" +msgstr "janv., févr., ..., déc. (*fr_FR*)" + +#: ../Doc/library/datetime.rst:2087 +msgid "``%B``" +msgstr "``%B``" + +#: ../Doc/library/datetime.rst:2087 +msgid "Month as locale's full name." +msgstr "Nom complet du mois dans la langue locale." + +#: ../Doc/library/datetime.rst:0 +msgid "January, February, ..., December (en_US);" +msgstr "*January*, *February*, ..., *December* (*en_US*);" + +#: ../Doc/library/datetime.rst:0 +msgid "Januar, Februar, ..., Dezember (de_DE)" +msgstr "janvier, février, ..., décembre (*fr_FR*)" + +#: ../Doc/library/datetime.rst:2092 +msgid "``%m``" +msgstr "``%m``" + +#: ../Doc/library/datetime.rst:2092 +msgid "Month as a zero-padded decimal number." +msgstr "Numéro du mois sur deux chiffres." + +#: ../Doc/library/datetime.rst:2092 ../Doc/library/datetime.rst:2104 +msgid "01, 02, ..., 12" +msgstr "01, 02, ..., 12" + +#: ../Doc/library/datetime.rst:2095 +msgid "``%y``" +msgstr "``%y``" + +#: ../Doc/library/datetime.rst:2095 +msgid "Year without century as a zero-padded decimal number." +msgstr "Année sur deux chiffres (sans le siècle)." + +#: ../Doc/library/datetime.rst:2095 +msgid "00, 01, ..., 99" +msgstr "00, 01, ..., 99" + +#: ../Doc/library/datetime.rst:2098 +msgid "``%Y``" +msgstr "``%Y``" + +#: ../Doc/library/datetime.rst:2098 +msgid "Year with century as a decimal number." +msgstr "Année complète sur quatre chiffres." + +#: ../Doc/library/datetime.rst:2098 ../Doc/library/datetime.rst:2172 +msgid "0001, 0002, ..., 2013, 2014, ..., 9998, 9999" +msgstr "0001, 0002, ..., 2013, 2014, ..., 9998, 9999" + +#: ../Doc/library/datetime.rst:2101 +msgid "``%H``" +msgstr "``%H``" + +#: ../Doc/library/datetime.rst:2101 +msgid "Hour (24-hour clock) as a zero-padded decimal number." +msgstr "Heure à deux chiffres de 00 à 23." + +#: ../Doc/library/datetime.rst:2101 +msgid "00, 01, ..., 23" +msgstr "00, 01, ..., 23" + +#: ../Doc/library/datetime.rst:2104 +msgid "``%I``" +msgstr "``%I``" + +#: ../Doc/library/datetime.rst:2104 +msgid "Hour (12-hour clock) as a zero-padded decimal number." +msgstr "Heure à deux chiffres pour les horloges 12h (01 à 12)." + +#: ../Doc/library/datetime.rst:2107 +msgid "``%p``" +msgstr "``%p``" + +#: ../Doc/library/datetime.rst:2107 +msgid "Locale's equivalent of either AM or PM." +msgstr "Équivalent local à AM/PM." + +#: ../Doc/library/datetime.rst:0 +msgid "AM, PM (en_US);" +msgstr "AM, PM (en_US);" + +#: ../Doc/library/datetime.rst:0 +msgid "am, pm (de_DE)" +msgstr "am, pm (de_DE)" + +#: ../Doc/library/datetime.rst:2107 +msgid "\\(1), \\(3)" +msgstr "\\(1), \\(3)" + +#: ../Doc/library/datetime.rst:2110 +msgid "``%M``" +msgstr "``%M``" + +#: ../Doc/library/datetime.rst:2110 +msgid "Minute as a zero-padded decimal number." +msgstr "Minutes sur deux chiffres." + +#: ../Doc/library/datetime.rst:2110 ../Doc/library/datetime.rst:2113 +msgid "00, 01, ..., 59" +msgstr "00, 01, ..., 59" + +#: ../Doc/library/datetime.rst:2113 +msgid "``%S``" +msgstr "``%S``" + +#: ../Doc/library/datetime.rst:2113 +msgid "Second as a zero-padded decimal number." +msgstr "Secondes sur deux chiffres." + +#: ../Doc/library/datetime.rst:2113 +msgid "\\(4), \\(9)" +msgstr "\\(4), \\(9)" + +#: ../Doc/library/datetime.rst:2116 +msgid "``%f``" +msgstr "``%f``" + +#: ../Doc/library/datetime.rst:2116 +msgid "Microsecond as a decimal number, zero-padded on the left." +msgstr "Microsecondes sur 6 chiffres." + +#: ../Doc/library/datetime.rst:2116 +msgid "000000, 000001, ..., 999999" +msgstr "000000, 000001, ..., 999999" + +#: ../Doc/library/datetime.rst:2116 +msgid "\\(5)" +msgstr "\\(5)" + +#: ../Doc/library/datetime.rst:2120 ../Doc/library/datetime.rst:2244 +msgid "``%z``" +msgstr "``%z``" + +#: ../Doc/library/datetime.rst:2120 +msgid "" +"UTC offset in the form ±HHMM[SS[.ffffff]] (empty string if the object is " +"naive)." +msgstr "" +"Décalage UTC sous la forme ``±HHMM[SS[.ffffff]]`` (chaîne vide si l'instance " +"est naïve)." + +#: ../Doc/library/datetime.rst:2120 +msgid "(empty), +0000, -0400, +1030, +063415, -030712.345216" +msgstr "(vide), +0000, -0400, +1030, +063415, -030712.345216" + +#: ../Doc/library/datetime.rst:2120 +msgid "\\(6)" +msgstr "\\(6)" + +#: ../Doc/library/datetime.rst:2125 ../Doc/library/datetime.rst:2259 +msgid "``%Z``" +msgstr "``%Z``" + +#: ../Doc/library/datetime.rst:2125 +msgid "Time zone name (empty string if the object is naive)." +msgstr "Nom du fuseau horaire (chaîne vide si l'instance est naïve)." + +#: ../Doc/library/datetime.rst:2125 +msgid "(empty), UTC, EST, CST" +msgstr "(vide), UTC, EST, CST" + +#: ../Doc/library/datetime.rst:2128 +msgid "``%j``" +msgstr "``%j``" + +#: ../Doc/library/datetime.rst:2128 +msgid "Day of the year as a zero-padded decimal number." +msgstr "Numéro du jour dans l'année sur trois chiffres." + +#: ../Doc/library/datetime.rst:2128 +msgid "001, 002, ..., 366" +msgstr "001, 002, ..., 366" + +#: ../Doc/library/datetime.rst:2131 +msgid "``%U``" +msgstr "``%U``" + +#: ../Doc/library/datetime.rst:2131 +msgid "" +"Week number of the year (Sunday as the first day of the week) as a zero " +"padded decimal number. All days in a new year preceding the first Sunday are " +"considered to be in week 0." +msgstr "" +"Numéro de la semaine à deux chiffres (où dimanche est considéré comme le " +"premier jour de la semaine). Tous les jours de l'année précédent le premier " +"dimanche sont considérés comme appartenant à la semaine 0." + +#: ../Doc/library/datetime.rst:2131 ../Doc/library/datetime.rst:2139 +msgid "00, 01, ..., 53" +msgstr "00, 01, ..., 53" + +#: ../Doc/library/datetime.rst:2131 ../Doc/library/datetime.rst:2139 +msgid "\\(7), \\(9)" +msgstr "\\(7), \\(9)" + +#: ../Doc/library/datetime.rst:2139 +msgid "``%W``" +msgstr "``%W``" + +#: ../Doc/library/datetime.rst:2139 +msgid "" +"Week number of the year (Monday as the first day of the week) as a decimal " +"number. All days in a new year preceding the first Monday are considered to " +"be in week 0." +msgstr "" +"Numéro de la semaine à deux chiffres (où lundi est considéré comme le " +"premier jour de la semaine). Tous les jours de l'année précédent le premier " +"lundi sont considérés comme appartenant à la semaine 0." + +#: ../Doc/library/datetime.rst:2147 +msgid "``%c``" +msgstr "``%c``" + +#: ../Doc/library/datetime.rst:2147 +msgid "Locale's appropriate date and time representation." +msgstr "Représentation locale de la date et de l'heure." + +#: ../Doc/library/datetime.rst:0 +msgid "Tue Aug 16 21:30:00 1988 (en_US);" +msgstr "Tue Aug 16 21:30:00 1988 (*en_US*);" + +#: ../Doc/library/datetime.rst:0 +msgid "Di 16 Aug 21:30:00 1988 (de_DE)" +msgstr "mar. 16 août 1988 21:30:00 (*fr_FR*)" + +#: ../Doc/library/datetime.rst:2152 +msgid "``%x``" +msgstr "``%x``" + +#: ../Doc/library/datetime.rst:2152 +msgid "Locale's appropriate date representation." +msgstr "Représentation locale de la date." + +#: ../Doc/library/datetime.rst:0 +msgid "08/16/88 (None);" +msgstr "08/16/88 (None);" + +#: ../Doc/library/datetime.rst:0 +msgid "08/16/1988 (en_US);" +msgstr "08/16/1988 (*en_US*);" + +#: ../Doc/library/datetime.rst:0 +msgid "16.08.1988 (de_DE)" +msgstr "16/08/1988 (*fr_FR*)" + +#: ../Doc/library/datetime.rst:2156 +msgid "``%X``" +msgstr "``%X``" + +#: ../Doc/library/datetime.rst:2156 +msgid "Locale's appropriate time representation." +msgstr "Représentation locale de l'heure." + +#: ../Doc/library/datetime.rst:0 +msgid "21:30:00 (en_US);" +msgstr "21:30:00 (*en_US*) ;" + +#: ../Doc/library/datetime.rst:0 +msgid "21:30:00 (de_DE)" +msgstr "21:30:00 (*fr_FR*)" + +#: ../Doc/library/datetime.rst:2159 +msgid "``%%``" +msgstr "``%%``" + +#: ../Doc/library/datetime.rst:2159 +msgid "A literal ``'%'`` character." +msgstr "Un caractère ``'%'`` littéral." + +#: ../Doc/library/datetime.rst:2159 +msgid "%" +msgstr "%" + +#: ../Doc/library/datetime.rst:2162 +msgid "" +"Several additional directives not required by the C89 standard are included " +"for convenience. These parameters all correspond to ISO 8601 date values. " +"These may not be available on all platforms when used with the :meth:" +"`strftime` method. The ISO 8601 year and ISO 8601 week directives are not " +"interchangeable with the year and week number directives above. Calling :" +"meth:`strptime` with incomplete or ambiguous ISO 8601 directives will raise " +"a :exc:`ValueError`." +msgstr "" +"Plusieurs directives additionnelles non requises par le standard *C89* sont " +"incluses par commodité. Ces paramètres correspondent tous aux valeurs de " +"dates ISO 8601. Ils peuvent ne pas être disponibles sur toutes les " +"plateformes quand utilisés avec la méthode :meth:`strftime`. Les directives " +"ISO 8601 d'année et de semaine ne sont pas interchangeables avec les " +"directives d'année et de semaine précédentes. Appeler :meth:`strptime` avec " +"des directives ISO 8601 incomplètes ou ambiguës lèvera une :exc:`ValueError`." + +#: ../Doc/library/datetime.rst:2172 +msgid "``%G``" +msgstr "``%G``" + +#: ../Doc/library/datetime.rst:2172 +msgid "" +"ISO 8601 year with century representing the year that contains the greater " +"part of the ISO week (``%V``)." +msgstr "" +"Année complète ISO 8601 représentant l'année contenant la plus grande partie " +"de la semaine ISO (``%V``)." + +#: ../Doc/library/datetime.rst:2172 +msgid "\\(8)" +msgstr "\\(8)" + +#: ../Doc/library/datetime.rst:2177 +msgid "``%u``" +msgstr "``%u``" + +#: ../Doc/library/datetime.rst:2177 +msgid "ISO 8601 weekday as a decimal number where 1 is Monday." +msgstr "Jour de la semaine ISO 8601 où 1 correspond au lundi." + +#: ../Doc/library/datetime.rst:2177 +msgid "1, 2, ..., 7" +msgstr "1, 2, ..., 7" + +#: ../Doc/library/datetime.rst:2180 +msgid "``%V``" +msgstr "``%V``" + +#: ../Doc/library/datetime.rst:2180 +msgid "" +"ISO 8601 week as a decimal number with Monday as the first day of the week. " +"Week 01 is the week containing Jan 4." +msgstr "" +"Numéro de la semaine ISO 8601, avec lundi étant le premier jour de la " +"semaine. La semaine 01 est la semaine contenant le 4 janvier." + +#: ../Doc/library/datetime.rst:2180 +msgid "01, 02, ..., 53" +msgstr "01, 02, ..., 53" + +#: ../Doc/library/datetime.rst:2180 +msgid "\\(8), \\(9)" +msgstr "\\(8), \\(9)" + +#: ../Doc/library/datetime.rst:2187 +msgid "``%G``, ``%u`` and ``%V`` were added." +msgstr "``%G``, ``%u`` et ``%V`` ont été ajoutés." + +#: ../Doc/library/datetime.rst:2193 +msgid "" +"Because the format depends on the current locale, care should be taken when " +"making assumptions about the output value. Field orderings will vary (for " +"example, \"month/day/year\" versus \"day/month/year\"), and the output may " +"contain Unicode characters encoded using the locale's default encoding (for " +"example, if the current locale is ``ja_JP``, the default encoding could be " +"any one of ``eucJP``, ``SJIS``, or ``utf-8``; use :meth:`locale.getlocale` " +"to determine the current locale's encoding)." +msgstr "" +"Comme le format dépend de la locale courante, les assomptions sur la valeur " +"de retour doivent être prises soigneusement. L'ordre des champs variera (par " +"exemple, « mois/jour/année » versus « année/mois/jour »), et le retour " +"pourrait contenir des caractères Unicode encodés en utilisant l'encodage par " +"défaut de la locale (par exemple, si la locale courante est ``ja_JP``, " +"l'encodage par défaut pourrait être ``eucJP``, ``SJIS`` ou ``utf-8`` ; " +"utilisez :meth:`locale.getlocale` pour déterminer l'encodage de la locale " +"courante)." + +#: ../Doc/library/datetime.rst:2202 +msgid "" +"The :meth:`strptime` method can parse years in the full [1, 9999] range, but " +"years < 1000 must be zero-filled to 4-digit width." +msgstr "" +"La méthode :meth:`strptime` peut analyser toutes les années de l'intervalle " +"[1, 9999], mais toutes les années < 1000 doivent être représentées sur " +"quatre chiffres." + +#: ../Doc/library/datetime.rst:2205 +msgid "" +"In previous versions, :meth:`strftime` method was restricted to years >= " +"1900." +msgstr "" +"Dans les versions précédentes, la méthode :meth:`strftime` était limitée aux " +"années >= 1900." + +#: ../Doc/library/datetime.rst:2209 +msgid "" +"In version 3.2, :meth:`strftime` method was restricted to years >= 1000." +msgstr "" +"En version 3.2, la méthode :meth:`strftime` était limitée aux années >= 1000." + +#: ../Doc/library/datetime.rst:2214 +msgid "" +"When used with the :meth:`strptime` method, the ``%p`` directive only " +"affects the output hour field if the ``%I`` directive is used to parse the " +"hour." +msgstr "" +"Quand utilisée avec la méthode :meth:`strptime`, la directive ``%p`` " +"n'affecte l'heure extraite que si la directive ``%I`` est utilisée pour " +"analyser l'heure." + +#: ../Doc/library/datetime.rst:2218 +msgid "" +"Unlike the :mod:`time` module, the :mod:`datetime` module does not support " +"leap seconds." +msgstr "" +"À l'inverse du module :mod:`time`, le module :mod:`datetime` ne gère pas les " +"secondes intercalaires." + +#: ../Doc/library/datetime.rst:2222 +msgid "" +"When used with the :meth:`strptime` method, the ``%f`` directive accepts " +"from one to six digits and zero pads on the right. ``%f`` is an extension " +"to the set of format characters in the C standard (but implemented " +"separately in datetime objects, and therefore always available)." +msgstr "" +"Quand utilisée avec la méthode :meth:`strptime`, la directive ``%f`` accepte " +"un nombre de 1 à 6 chiffres, où des zéros seront ajoutés à droite jusqu'à " +"former un nombre de 6 chiffres. ``%f`` est une extension de l'ensemble des " +"caractères de formatage du standard C (mais implémentée séparément dans les " +"objets *datetime*, la rendant ainsi toujours disponible)." + +#: ../Doc/library/datetime.rst:2229 +msgid "" +"For a naive object, the ``%z`` and ``%Z`` format codes are replaced by empty " +"strings." +msgstr "" +"Pour les objets naïfs, les codes de formatage ``%z`` et ``%Z`` sont " +"remplacés par des chaînes vides." + +#: ../Doc/library/datetime.rst:2232 +msgid "For an aware object:" +msgstr "Pour un objet avisé :" + +#: ../Doc/library/datetime.rst:2235 +msgid "" +":meth:`utcoffset` is transformed into a string of the form ±HHMM[SS[." +"ffffff]], where HH is a 2-digit string giving the number of UTC offset " +"hours, MM is a 2-digit string giving the number of UTC offset minutes, SS is " +"a 2-digit string giving the number of UTC offset seconds and ffffff is a 6-" +"digit string giving the number of UTC offset microseconds. The ffffff part " +"is omitted when the offset is a whole number of seconds and both the ffffff " +"and the SS part is omitted when the offset is a whole number of minutes. " +"For example, if :meth:`utcoffset` returns ``timedelta(hours=-3, " +"minutes=-30)``, ``%z`` is replaced with the string ``'-0330'``." +msgstr "" +"Le résultat de :meth:`utcoffset` est transformé en une chaîne sous la forme " +"``±HHMM[SS[.uuuuuu]]``, où ``HH`` est une chaîne de deux chiffres donnant le " +"nombre d'heures du décalage UTC, où ``MM`` est une chaîne de deux chiffres " +"donnant le nombre de minutes du décalage UTC, où ``SS`` est une chaîne de " +"deux chiffres donnant le nombre de secondes du décalage UTC et où ``ffffff`` " +"est une chaîne de six chiffres donnant le nombre en micro-secondes du " +"décalage UTC. Par exemple, si :meth:`utcoffset` renvoie " +"``timedelta(hours=-3, minutes=-30)``, ``%z`` est remplacé par la chaîne " +"`'-0330'``." + +#: ../Doc/library/datetime.rst:2249 +msgid "" +"When the ``%z`` directive is provided to the :meth:`strptime` method, the " +"UTC offsets can have a colon as a separator between hours, minutes and " +"seconds. For example, ``'+01:00:00'`` will be parsed as an offset of one " +"hour. In addition, providing ``'Z'`` is identical to ``'+00:00'``." +msgstr "" +"Quand la directive ``%z`` est soumise à la méthode :meth:`strptime`, le " +"décalage UTC peut avoir une colonne comme séparateur entre les heures, " +"minutes et secondes. Par exemple, ``'+01:00:00'``, est analysé comme un " +"décalage d'une heure. Par ailleurs, ``'Z'`` est identique à ``'+00:00'``." + +#: ../Doc/library/datetime.rst:2257 +msgid "" +"If :meth:`tzname` returns ``None``, ``%Z`` is replaced by an empty string. " +"Otherwise ``%Z`` is replaced by the returned value, which must be a string." +msgstr "" +"Si :meth:`tzname` renvoie ``None``, ``%Z`` est remplacé par une chaîne " +"vide. Autrement ``%Z`` est remplacé par la valeur renvoyée, qui doit être " +"une chaîne." + +#: ../Doc/library/datetime.rst:2261 +msgid "" +"When the ``%z`` directive is provided to the :meth:`strptime` method, an " +"aware :class:`.datetime` object will be produced. The ``tzinfo`` of the " +"result will be set to a :class:`timezone` instance." +msgstr "" +"Quand la directive ``%z`` est fournie à la méthode :meth:`strptime`, un " +"objet :class:`.datetime` avisé est construit. L'attribut ``tzinfo`` du " +"résultat aura pour valeur une instance de :class:`timezone`." + +#: ../Doc/library/datetime.rst:2267 +msgid "" +"When used with the :meth:`strptime` method, ``%U`` and ``%W`` are only used " +"in calculations when the day of the week and the calendar year (``%Y``) are " +"specified." +msgstr "" +"Quand ces directives sont utilisées avec la méthode :meth:`strptime`, ``%U`` " +"et ``%W`` ne sont utilisées dans les calculs que si le jour de la semaine et " +"l'année calendaire (``%Y``) sont spécifiés." + +#: ../Doc/library/datetime.rst:2272 +msgid "" +"Similar to ``%U`` and ``%W``, ``%V`` is only used in calculations when the " +"day of the week and the ISO year (``%G``) are specified in a :meth:" +"`strptime` format string. Also note that ``%G`` and ``%Y`` are not " +"interchangeable." +msgstr "" +"De façon similaire à ``%U`` et ``%W``, ``%v`` n'est utilisé dans les calculs " +"que lorsque le jour de la semaine et l'année ISO (``%G``) sont spécifiés " +"dans la chaîne de formatage :meth:`strptime`. Notez aussi que ``%G`` et ``" +"%Y`` ne sont pas interchangeables." + +#: ../Doc/library/datetime.rst:2278 +msgid "" +"When used with the :meth:`strptime` method, the leading zero is optional " +"for formats ``%d``, ``%m``, ``%H``, ``%I``, ``%M``, ``%S``, ``%J``, ``%U``, " +"``%W``, and ``%V``. Format ``%y`` does require a leading zero." +msgstr "" +"Quand cette directive est utilisée avec la méthode :meth:`strptime`, le zéro " +"d'entête est optionnel pour les formats ``%d``, ``%m``, ``%H``, ``%I``, ``" +"%M``, ``%S``, ``%J``, ``%U``, ``%W`` et ``%V``. Le format ``%y`` requiert un " +"zéro en entête." + +#: ../Doc/library/datetime.rst:2283 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/datetime.rst:2284 +msgid "If, that is, we ignore the effects of Relativity" +msgstr "Si on ignore les effets de la Relativité" + +#: ../Doc/library/datetime.rst:2285 +msgid "" +"Passing ``datetime.strptime('Feb 29', '%b %d')`` will fail since ``1900`` is " +"not a leap year." +msgstr "" +"Passer ``datetime.strptime(‘Feb 29’, ‘%b %d’)`` ne marchera pas car ``1900`` " +"n’est pas une année bissextile." + +#~ msgid "\\(4)" +#~ msgstr "\\(4)" + +#~ msgid "\\(7)" +#~ msgstr "\\(7)" diff --git a/library/dbm.po b/library/dbm.po new file mode 100644 index 000000000..2c46608ff --- /dev/null +++ b/library/dbm.po @@ -0,0 +1,445 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/dbm.rst:2 +msgid ":mod:`dbm` --- Interfaces to Unix \"databases\"" +msgstr "" + +#: ../Doc/library/dbm.rst:7 +msgid "**Source code:** :source:`Lib/dbm/__init__.py`" +msgstr "" + +#: ../Doc/library/dbm.rst:11 +msgid "" +":mod:`dbm` is a generic interface to variants of the DBM database --- :mod:" +"`dbm.gnu` or :mod:`dbm.ndbm`. If none of these modules is installed, the " +"slow-but-simple implementation in module :mod:`dbm.dumb` will be used. " +"There is a `third party interface `_ to the Oracle Berkeley DB." +msgstr "" + +#: ../Doc/library/dbm.rst:20 +msgid "" +"A tuple containing the exceptions that can be raised by each of the " +"supported modules, with a unique exception also named :exc:`dbm.error` as " +"the first item --- the latter is used when :exc:`dbm.error` is raised." +msgstr "" + +#: ../Doc/library/dbm.rst:27 +msgid "" +"This function attempts to guess which of the several simple database modules " +"available --- :mod:`dbm.gnu`, :mod:`dbm.ndbm` or :mod:`dbm.dumb` --- should " +"be used to open a given file." +msgstr "" + +#: ../Doc/library/dbm.rst:31 +msgid "" +"Returns one of the following values: ``None`` if the file can't be opened " +"because it's unreadable or doesn't exist; the empty string (``''``) if the " +"file's format can't be guessed; or a string containing the required module " +"name, such as ``'dbm.ndbm'`` or ``'dbm.gnu'``." +msgstr "" + +#: ../Doc/library/dbm.rst:39 +msgid "Open the database file *file* and return a corresponding object." +msgstr "" + +#: ../Doc/library/dbm.rst:41 +msgid "" +"If the database file already exists, the :func:`whichdb` function is used to " +"determine its type and the appropriate module is used; if it does not exist, " +"the first module listed above that can be imported is used." +msgstr "" + +#: ../Doc/library/dbm.rst:45 ../Doc/library/dbm.rst:157 +msgid "The optional *flag* argument can be:" +msgstr "" + +#: ../Doc/library/dbm.rst:48 ../Doc/library/dbm.rst:160 +#: ../Doc/library/dbm.rst:179 ../Doc/library/dbm.rst:275 +msgid "Value" +msgstr "Valeur" + +#: ../Doc/library/dbm.rst:48 ../Doc/library/dbm.rst:160 +#: ../Doc/library/dbm.rst:179 ../Doc/library/dbm.rst:275 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/dbm.rst:50 ../Doc/library/dbm.rst:162 +#: ../Doc/library/dbm.rst:277 +msgid "``'r'``" +msgstr "``'r'``" + +#: ../Doc/library/dbm.rst:50 ../Doc/library/dbm.rst:162 +#: ../Doc/library/dbm.rst:277 +msgid "Open existing database for reading only (default)" +msgstr "" + +#: ../Doc/library/dbm.rst:53 ../Doc/library/dbm.rst:165 +#: ../Doc/library/dbm.rst:280 +msgid "``'w'``" +msgstr "``'w'``" + +#: ../Doc/library/dbm.rst:53 ../Doc/library/dbm.rst:165 +#: ../Doc/library/dbm.rst:280 +msgid "Open existing database for reading and writing" +msgstr "" + +#: ../Doc/library/dbm.rst:56 ../Doc/library/dbm.rst:168 +#: ../Doc/library/dbm.rst:283 +msgid "``'c'``" +msgstr "``'c'``" + +#: ../Doc/library/dbm.rst:56 ../Doc/library/dbm.rst:168 +#: ../Doc/library/dbm.rst:283 +msgid "Open database for reading and writing, creating it if it doesn't exist" +msgstr "" + +#: ../Doc/library/dbm.rst:59 ../Doc/library/dbm.rst:171 +#: ../Doc/library/dbm.rst:286 +msgid "``'n'``" +msgstr "``'n'``" + +#: ../Doc/library/dbm.rst:59 ../Doc/library/dbm.rst:171 +#: ../Doc/library/dbm.rst:286 +msgid "Always create a new, empty database, open for reading and writing" +msgstr "" + +#: ../Doc/library/dbm.rst:63 ../Doc/library/dbm.rst:290 +#: ../Doc/library/dbm.rst:346 +msgid "" +"The optional *mode* argument is the Unix mode of the file, used only when " +"the database has to be created. It defaults to octal ``0o666`` (and will be " +"modified by the prevailing umask)." +msgstr "" + +#: ../Doc/library/dbm.rst:68 +msgid "" +"The object returned by :func:`.open` supports the same basic functionality " +"as dictionaries; keys and their corresponding values can be stored, " +"retrieved, and deleted, and the :keyword:`in` operator and the :meth:`keys` " +"method are available, as well as :meth:`get` and :meth:`setdefault`." +msgstr "" + +#: ../Doc/library/dbm.rst:73 +msgid "" +":meth:`get` and :meth:`setdefault` are now available in all database modules." +msgstr "" + +#: ../Doc/library/dbm.rst:76 +msgid "" +"Key and values are always stored as bytes. This means that when strings are " +"used they are implicitly converted to the default encoding before being " +"stored." +msgstr "" + +#: ../Doc/library/dbm.rst:80 +msgid "" +"These objects also support being used in a :keyword:`with` statement, which " +"will automatically close them when done." +msgstr "" + +#: ../Doc/library/dbm.rst:83 +msgid "" +"Added native support for the context management protocol to the objects " +"returned by :func:`.open`." +msgstr "" + +#: ../Doc/library/dbm.rst:87 +msgid "" +"The following example records some hostnames and a corresponding title, and " +"then prints out the contents of the database::" +msgstr "" + +#: ../Doc/library/dbm.rst:117 +msgid "Module :mod:`shelve`" +msgstr "" + +#: ../Doc/library/dbm.rst:118 +msgid "Persistence module which stores non-string data." +msgstr "" + +#: ../Doc/library/dbm.rst:121 +msgid "The individual submodules are described in the following sections." +msgstr "" + +#: ../Doc/library/dbm.rst:125 +msgid ":mod:`dbm.gnu` --- GNU's reinterpretation of dbm" +msgstr "" + +#: ../Doc/library/dbm.rst:131 +msgid "**Source code:** :source:`Lib/dbm/gnu.py`" +msgstr "" + +#: ../Doc/library/dbm.rst:135 +msgid "" +"This module is quite similar to the :mod:`dbm` module, but uses the GNU " +"library ``gdbm`` instead to provide some additional functionality. Please " +"note that the file formats created by :mod:`dbm.gnu` and :mod:`dbm.ndbm` are " +"incompatible." +msgstr "" + +#: ../Doc/library/dbm.rst:139 +msgid "" +"The :mod:`dbm.gnu` module provides an interface to the GNU DBM library. " +"``dbm.gnu.gdbm`` objects behave like mappings (dictionaries), except that " +"keys and values are always converted to bytes before storing. Printing a " +"``gdbm`` object doesn't print the keys and values, and the :meth:`items` " +"and :meth:`values` methods are not supported." +msgstr "" + +#: ../Doc/library/dbm.rst:148 +msgid "" +"Raised on :mod:`dbm.gnu`-specific errors, such as I/O errors. :exc:" +"`KeyError` is raised for general mapping errors like specifying an incorrect " +"key." +msgstr "" + +#: ../Doc/library/dbm.rst:154 +msgid "" +"Open a ``gdbm`` database and return a :class:`gdbm` object. The *filename* " +"argument is the name of the database file." +msgstr "" + +#: ../Doc/library/dbm.rst:175 +msgid "" +"The following additional characters may be appended to the flag to control " +"how the database is opened:" +msgstr "" + +#: ../Doc/library/dbm.rst:181 +msgid "``'f'``" +msgstr "``'f'``" + +#: ../Doc/library/dbm.rst:181 +msgid "" +"Open the database in fast mode. Writes to the database will not be " +"synchronized." +msgstr "" + +#: ../Doc/library/dbm.rst:184 +msgid "``'s'``" +msgstr "``'s'``" + +#: ../Doc/library/dbm.rst:184 +msgid "" +"Synchronized mode. This will cause changes to the database to be immediately " +"written to the file." +msgstr "" + +#: ../Doc/library/dbm.rst:188 +msgid "``'u'``" +msgstr "``'u'``" + +#: ../Doc/library/dbm.rst:188 +msgid "Do not lock database." +msgstr "" + +#: ../Doc/library/dbm.rst:191 +msgid "" +"Not all flags are valid for all versions of ``gdbm``. The module constant :" +"const:`open_flags` is a string of supported flag characters. The exception :" +"exc:`error` is raised if an invalid flag is specified." +msgstr "" + +#: ../Doc/library/dbm.rst:195 +msgid "" +"The optional *mode* argument is the Unix mode of the file, used only when " +"the database has to be created. It defaults to octal ``0o666``." +msgstr "" + +#: ../Doc/library/dbm.rst:198 +msgid "" +"In addition to the dictionary-like methods, ``gdbm`` objects have the " +"following methods:" +msgstr "" + +#: ../Doc/library/dbm.rst:203 +msgid "" +"It's possible to loop over every key in the database using this method and " +"the :meth:`nextkey` method. The traversal is ordered by ``gdbm``'s internal " +"hash values, and won't be sorted by the key values. This method returns the " +"starting key." +msgstr "" + +#: ../Doc/library/dbm.rst:210 +msgid "" +"Returns the key that follows *key* in the traversal. The following code " +"prints every key in the database ``db``, without having to create a list in " +"memory that contains them all::" +msgstr "" + +#: ../Doc/library/dbm.rst:221 +msgid "" +"If you have carried out a lot of deletions and would like to shrink the " +"space used by the ``gdbm`` file, this routine will reorganize the database. " +"``gdbm`` objects will not shorten the length of a database file except by " +"using this reorganization; otherwise, deleted file space will be kept and " +"reused as new (key, value) pairs are added." +msgstr "" + +#: ../Doc/library/dbm.rst:229 +msgid "" +"When the database has been opened in fast mode, this method forces any " +"unwritten data to be written to the disk." +msgstr "" + +#: ../Doc/library/dbm.rst:234 +msgid "Close the ``gdbm`` database." +msgstr "" + +#: ../Doc/library/dbm.rst:237 +msgid ":mod:`dbm.ndbm` --- Interface based on ndbm" +msgstr "" + +#: ../Doc/library/dbm.rst:243 +msgid "**Source code:** :source:`Lib/dbm/ndbm.py`" +msgstr "" + +#: ../Doc/library/dbm.rst:247 +msgid "" +"The :mod:`dbm.ndbm` module provides an interface to the Unix \"(n)dbm\" " +"library. Dbm objects behave like mappings (dictionaries), except that keys " +"and values are always stored as bytes. Printing a ``dbm`` object doesn't " +"print the keys and values, and the :meth:`items` and :meth:`values` methods " +"are not supported." +msgstr "" + +#: ../Doc/library/dbm.rst:252 +msgid "" +"This module can be used with the \"classic\" ndbm interface or the GNU GDBM " +"compatibility interface. On Unix, the :program:`configure` script will " +"attempt to locate the appropriate header file to simplify building this " +"module." +msgstr "" + +#: ../Doc/library/dbm.rst:258 +msgid "" +"Raised on :mod:`dbm.ndbm`-specific errors, such as I/O errors. :exc:" +"`KeyError` is raised for general mapping errors like specifying an incorrect " +"key." +msgstr "" + +#: ../Doc/library/dbm.rst:264 +msgid "Name of the ``ndbm`` implementation library used." +msgstr "" + +#: ../Doc/library/dbm.rst:269 +msgid "" +"Open a dbm database and return a ``ndbm`` object. The *filename* argument " +"is the name of the database file (without the :file:`.dir` or :file:`.pag` " +"extensions)." +msgstr "" + +#: ../Doc/library/dbm.rst:272 +msgid "The optional *flag* argument must be one of these values:" +msgstr "" + +#: ../Doc/library/dbm.rst:294 +msgid "" +"In addition to the dictionary-like methods, ``ndbm`` objects provide the " +"following method:" +msgstr "" + +#: ../Doc/library/dbm.rst:299 +msgid "Close the ``ndbm`` database." +msgstr "" + +#: ../Doc/library/dbm.rst:303 +msgid ":mod:`dbm.dumb` --- Portable DBM implementation" +msgstr "" + +#: ../Doc/library/dbm.rst:308 +msgid "**Source code:** :source:`Lib/dbm/dumb.py`" +msgstr "" + +#: ../Doc/library/dbm.rst:314 +msgid "" +"The :mod:`dbm.dumb` module is intended as a last resort fallback for the :" +"mod:`dbm` module when a more robust module is not available. The :mod:`dbm." +"dumb` module is not written for speed and is not nearly as heavily used as " +"the other database modules." +msgstr "" + +#: ../Doc/library/dbm.rst:321 +msgid "" +"The :mod:`dbm.dumb` module provides a persistent dictionary-like interface " +"which is written entirely in Python. Unlike other modules such as :mod:`dbm." +"gnu` no external library is required. As with other persistent mappings, " +"the keys and values are always stored as bytes." +msgstr "" + +#: ../Doc/library/dbm.rst:326 +msgid "The module defines the following:" +msgstr "Le module définit :" + +#: ../Doc/library/dbm.rst:331 +msgid "" +"Raised on :mod:`dbm.dumb`-specific errors, such as I/O errors. :exc:" +"`KeyError` is raised for general mapping errors like specifying an incorrect " +"key." +msgstr "" + +#: ../Doc/library/dbm.rst:337 +msgid "" +"Open a ``dumbdbm`` database and return a dumbdbm object. The *filename* " +"argument is the basename of the database file (without any specific " +"extensions). When a dumbdbm database is created, files with :file:`.dat` " +"and :file:`.dir` extensions are created." +msgstr "" + +#: ../Doc/library/dbm.rst:342 +msgid "" +"The optional *flag* argument supports only the semantics of ``'c'`` and " +"``'n'`` values. Other values will default to database being always opened " +"for update, and will be created if it does not exist." +msgstr "" + +#: ../Doc/library/dbm.rst:351 +msgid "" +"It is possible to crash the Python interpreter when loading a database with " +"a sufficiently large/complex entry due to stack depth limitations in " +"Python's AST compiler." +msgstr "" + +#: ../Doc/library/dbm.rst:355 +msgid "" +":func:`.open` always creates a new database when the flag has the value " +"``'n'``." +msgstr "" + +#: ../Doc/library/dbm.rst:362 +msgid "" +"Creating database in ``'r'`` and ``'w'`` modes. Modifying database in " +"``'r'`` mode." +msgstr "" + +#: ../Doc/library/dbm.rst:363 +msgid "" +"In addition to the methods provided by the :class:`collections.abc." +"MutableMapping` class, :class:`dumbdbm` objects provide the following " +"methods:" +msgstr "" + +#: ../Doc/library/dbm.rst:369 +msgid "" +"Synchronize the on-disk directory and data files. This method is called by " +"the :meth:`Shelve.sync` method." +msgstr "" + +#: ../Doc/library/dbm.rst:374 +msgid "Close the ``dumbdbm`` database." +msgstr "" diff --git a/library/debug.po b/library/debug.po new file mode 100644 index 000000000..433723a62 --- /dev/null +++ b/library/debug.po @@ -0,0 +1,32 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-28 11:49+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/debug.rst:3 +msgid "Debugging and Profiling" +msgstr "Débogueur et instrumentation" + +#: ../Doc/library/debug.rst:5 +msgid "" +"These libraries help you with Python development: the debugger enables you " +"to step through code, analyze stack frames and set breakpoints etc., and the " +"profilers run code and give you a detailed breakdown of execution times, " +"allowing you to identify bottlenecks in your programs." +msgstr "" +"Ces bibliothèques sont là pour vous aider lors du développement en Python : " +"Le débogueur vous permet d'avancer pas à pas dans le code, d'analyser la " +"pile d'appel, de placer des points d'arrêts, … Les outils d'instrumentation " +"exécutent du code et vous donnent un rapport détaillé du temps d'exécution, " +"vous permettant d'identifier les goulots d'étranglement dans vos programmes." diff --git a/library/decimal.po b/library/decimal.po new file mode 100644 index 000000000..090d5b1cc --- /dev/null +++ b/library/decimal.po @@ -0,0 +1,2148 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2018-10-07 18:55+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/decimal.rst:2 +msgid ":mod:`decimal` --- Decimal fixed point and floating point arithmetic" +msgstr ":mod:`decimal` — Arithmétique décimale en virgule fixe et flottante" + +#: ../Doc/library/decimal.rst:15 +msgid "**Source code:** :source:`Lib/decimal.py`" +msgstr "**Code source :** :source:`Lib/decimal.py`" + +#: ../Doc/library/decimal.rst:33 +msgid "" +"The :mod:`decimal` module provides support for fast correctly-rounded " +"decimal floating point arithmetic. It offers several advantages over the :" +"class:`float` datatype:" +msgstr "" +"Le module :mod:`decimal` fournit une arithmétique en virgule flottante " +"rapide et produisant des arrondis mathématiquement corrects. Il possède " +"plusieurs avantages en comparaison au type :class:`float` :" + +#: ../Doc/library/decimal.rst:37 +msgid "" +"Decimal \"is based on a floating-point model which was designed with people " +"in mind, and necessarily has a paramount guiding principle -- computers must " +"provide an arithmetic that works in the same way as the arithmetic that " +"people learn at school.\" -- excerpt from the decimal arithmetic " +"specification." +msgstr "" +"Le module ``decimal`` « est basé sur un modèle en virgule flottante conçu " +"pour les humains, qui suit ce principe directeur : l'ordinateur doit fournir " +"un modèle de calcul qui fonctionne de la même manière que le calcul qu'on " +"apprend à l'école » -- extrait (traduit) de la spécification de " +"l'arithmétique décimale." + +#: ../Doc/library/decimal.rst:42 +msgid "" +"Decimal numbers can be represented exactly. In contrast, numbers like :" +"const:`1.1` and :const:`2.2` do not have exact representations in binary " +"floating point. End users typically would not expect ``1.1 + 2.2`` to " +"display as :const:`3.3000000000000003` as it does with binary floating point." +msgstr "" +"Les nombres décimaux peuvent être représentés exactement en base décimale " +"flottante. En revanche, des nombres tels que :const:`1.1` ou :const:`1.2` " +"n'ont pas de représentation exacte en base binaire flottante. L'utilisateur " +"final ne s'attend typiquement pas à obtenir :const:`3.3000000000000003` " +"lorsqu'il saisit ``1.1 + 2.2``, ce qui se passe en arithmétique binaire à " +"virgule flottante." + +#: ../Doc/library/decimal.rst:47 +msgid "" +"The exactness carries over into arithmetic. In decimal floating point, " +"``0.1 + 0.1 + 0.1 - 0.3`` is exactly equal to zero. In binary floating " +"point, the result is :const:`5.5511151231257827e-017`. While near to zero, " +"the differences prevent reliable equality testing and differences can " +"accumulate. For this reason, decimal is preferred in accounting applications " +"which have strict equality invariants." +msgstr "" +"Ces inexactitudes ont des conséquences en arithmétique. En base décimale à " +"virgule flottante, ``0.1 + 0.1 + 0.1 - 0.3`` est exactement égal à zéro. En " +"virgule flottante binaire, l'ordinateur l'évalue à :const:" +"`5.5511151231257827e-017`. Bien que très proche de zéro, cette différence " +"induit des erreurs lors des tests d'égalité, erreurs qui peuvent " +"s'accumuler. Pour ces raisons ``decimal`` est le module utilisé pour des " +"applications comptables ayant des contraintes strictes de fiabilité." + +#: ../Doc/library/decimal.rst:54 +msgid "" +"The decimal module incorporates a notion of significant places so that " +"``1.30 + 1.20`` is :const:`2.50`. The trailing zero is kept to indicate " +"significance. This is the customary presentation for monetary applications. " +"For multiplication, the \"schoolbook\" approach uses all the figures in the " +"multiplicands. For instance, ``1.3 * 1.2`` gives :const:`1.56` while ``1.30 " +"* 1.20`` gives :const:`1.5600`." +msgstr "" +"Le module ``decimal`` incorpore la notion de chiffres significatifs, tels " +"que ``1.30 + 1.20`` est égal à :const:`2.50`. Le dernier zéro n'est conservé " +"que pour respecter le nombre de chiffres significatifs. C'est également " +"l'affichage préféré pour représenter des sommes d'argent. Pour la " +"multiplication, l'approche « scolaire » utilise tout les chiffres présents " +"dans les facteurs. Par exemple, ``1.3 * 1.2`` donnerait :const:`1.56` tandis " +"que ``1.30 * 1.20`` donnerait :const:`1.5600`." + +#: ../Doc/library/decimal.rst:61 +msgid "" +"Unlike hardware based binary floating point, the decimal module has a user " +"alterable precision (defaulting to 28 places) which can be as large as " +"needed for a given problem:" +msgstr "" +"Contrairement à l'arithmétique en virgule flottante binaire, le module " +"``decimal`` possède un paramètre de précision ajustable (par défaut à 28 " +"chiffres significatifs) qui peut être aussi élevée que nécessaire pour un " +"problème donné :" + +#: ../Doc/library/decimal.rst:73 +msgid "" +"Both binary and decimal floating point are implemented in terms of published " +"standards. While the built-in float type exposes only a modest portion of " +"its capabilities, the decimal module exposes all required parts of the " +"standard. When needed, the programmer has full control over rounding and " +"signal handling. This includes an option to enforce exact arithmetic by " +"using exceptions to block any inexact operations." +msgstr "" +"L'arithmétique binaire et décimale en virgule flottante sont implémentées " +"selon des standards publiés. Alors que le type ``float`` n'expose qu'une " +"faible portion de ses capacités, le module ``decimal`` expose tous les " +"composants nécessaires du standard. Lorsque nécessaire, le développeur a un " +"contrôle total de la gestion de signal et de l'arrondi. Cela inclut la " +"possibilité de forcer une arithmétique exacte en utilisant des exceptions " +"pour bloquer toute opération inexacte." + +#: ../Doc/library/decimal.rst:80 +msgid "" +"The decimal module was designed to support \"without prejudice, both exact " +"unrounded decimal arithmetic (sometimes called fixed-point arithmetic) and " +"rounded floating-point arithmetic.\" -- excerpt from the decimal arithmetic " +"specification." +msgstr "" +"Le module ``decimal`` a été conçu pour gérer « sans préjugé, à la fois une " +"arithmétique décimale non-arrondie (aussi appelée arithmétique en virgule " +"fixe) et à la fois une arithmétique en virgule flottante. » (extrait traduit " +"de la spécification de l'arithmétique décimale)." + +#: ../Doc/library/decimal.rst:85 +msgid "" +"The module design is centered around three concepts: the decimal number, " +"the context for arithmetic, and signals." +msgstr "" +"Le module est conçu autour de trois concepts : le nombre décimal, le " +"contexte arithmétique et les signaux." + +#: ../Doc/library/decimal.rst:88 +msgid "" +"A decimal number is immutable. It has a sign, coefficient digits, and an " +"exponent. To preserve significance, the coefficient digits do not truncate " +"trailing zeros. Decimals also include special values such as :const:" +"`Infinity`, :const:`-Infinity`, and :const:`NaN`. The standard also " +"differentiates :const:`-0` from :const:`+0`." +msgstr "" +"Un ``Decimal`` est immuable. Il a un signe, un coefficient, et un exposant. " +"Pour préserver le nombre de chiffres significatifs, les zéros en fin de " +"chaîne ne sont pas tronqués. Les décimaux incluent aussi des valeurs " +"spéciales telles que :const:`Infinity`, :const:`-Infinity`, et :const:`NaN`. " +"Le standard fait également la différence entre :const:`-0` et :const:`+0`." + +#: ../Doc/library/decimal.rst:94 +msgid "" +"The context for arithmetic is an environment specifying precision, rounding " +"rules, limits on exponents, flags indicating the results of operations, and " +"trap enablers which determine whether signals are treated as exceptions. " +"Rounding options include :const:`ROUND_CEILING`, :const:`ROUND_DOWN`, :const:" +"`ROUND_FLOOR`, :const:`ROUND_HALF_DOWN`, :const:`ROUND_HALF_EVEN`, :const:" +"`ROUND_HALF_UP`, :const:`ROUND_UP`, and :const:`ROUND_05UP`." +msgstr "" +"Le contexte de l'arithmétique est un environnement qui permet de configurer " +"une précision, une règle pour l'arrondi, des limites sur l'exposant, des " +"options indiquant le résultat des opérations et si les signaux (remontés " +"lors d'opérations illégales) sont traités comme des exceptions Python. Les " +"options d'arrondi incluent :const:`ROUND_CEILING`, :const:`ROUND_DOWN`, :" +"const:`ROUND_FLOOR`, :const:`ROUND_HALF_DOWN`, :const:`ROUND_HALF_EVEN`, :" +"const:`ROUND_HALF_UP`, :const:`ROUND_UP`, et :const:`ROUND_05UP`." + +#: ../Doc/library/decimal.rst:101 +msgid "" +"Signals are groups of exceptional conditions arising during the course of " +"computation. Depending on the needs of the application, signals may be " +"ignored, considered as informational, or treated as exceptions. The signals " +"in the decimal module are: :const:`Clamped`, :const:`InvalidOperation`, :" +"const:`DivisionByZero`, :const:`Inexact`, :const:`Rounded`, :const:" +"`Subnormal`, :const:`Overflow`, :const:`Underflow` and :const:" +"`FloatOperation`." +msgstr "" +"Les signaux sont des groupes de conditions exceptionnelles qui surviennent " +"durant le calcul. Selon les besoins de l'application, les signaux peuvent " +"être ignorés, considérés comme de l'information, ou bien traités comme des " +"exceptions. Les signaux dans le module ``decimal`` sont : :const:`Clamped`, :" +"const:`InvalidOperation`, :const:`DivisionByZero`, :const:`Inexact`, :const:" +"`Rounded`, :const:`Subnormal`, :const:`Overflow`, :const:`Underflow` et :" +"const:`FloatOperation`." + +#: ../Doc/library/decimal.rst:108 +msgid "" +"For each signal there is a flag and a trap enabler. When a signal is " +"encountered, its flag is set to one, then, if the trap enabler is set to " +"one, an exception is raised. Flags are sticky, so the user needs to reset " +"them before monitoring a calculation." +msgstr "" +"Chaque signal est configurable indépendamment. Quand une opération illégale " +"survient, le signal est mis à ``1``, puis s'il est configuré pour, une " +"exception est levée. La mise à ``1`` est persistante, l'utilisateur doit " +"donc les remettre à zéro avant de commencer un calcul qu'il souhaite " +"surveiller." + +#: ../Doc/library/decimal.rst:116 +msgid "" +"IBM's General Decimal Arithmetic Specification, `The General Decimal " +"Arithmetic Specification `_." +msgstr "" +"La spécification d'IBM sur l'arithmétique décimale : `The General Decimal " +"Arithmetic Specification `_." + +#: ../Doc/library/decimal.rst:125 +msgid "Quick-start Tutorial" +msgstr "Introduction pratique" + +#: ../Doc/library/decimal.rst:127 +msgid "" +"The usual start to using decimals is importing the module, viewing the " +"current context with :func:`getcontext` and, if necessary, setting new " +"values for precision, rounding, or enabled traps::" +msgstr "" +"Commençons par importer le module, regarder le contexte actuel avec :func:" +"`getcontext`, et si nécessaire configurer la précision, l'arrondi, et la " +"gestion des signaux ::" + +#: ../Doc/library/decimal.rst:139 +msgid "" +"Decimal instances can be constructed from integers, strings, floats, or " +"tuples. Construction from an integer or a float performs an exact conversion " +"of the value of that integer or float. Decimal numbers include special " +"values such as :const:`NaN` which stands for \"Not a number\", positive and " +"negative :const:`Infinity`, and :const:`-0`::" +msgstr "" +"Les instances de ``Decimal`` peuvent être construites avec des ``int``, des " +"``str``, des ``floats`` ou des ``tuples``. La construction depuis un entier " +"ou un ``float`` effectue la conversion exacte de cet entier ou de ce " +"``float``. Les nombres décimaux incluent des valeurs spéciales telles que :" +"const:`NaN` qui signifie en anglais « *Not a number* », en français « pas un " +"nombre », des :const:`Infinity` positifs ou négatifs et :const:`-0` ::" + +#: ../Doc/library/decimal.rst:163 +msgid "" +"If the :exc:`FloatOperation` signal is trapped, accidental mixing of " +"decimals and floats in constructors or ordering comparisons raises an " +"exception::" +msgstr "" +"Si un signal :exc:`FloatOperation` est détecté, un mélange accidentel " +"d'objets ``Decimal`` et de ``float`` dans les constructeurs ou des " +"opérations de comparaisons, une exception est levée ::" + +#: ../Doc/library/decimal.rst:182 +msgid "" +"The significance of a new Decimal is determined solely by the number of " +"digits input. Context precision and rounding only come into play during " +"arithmetic operations." +msgstr "" +"Le nombre de chiffres significatifs d'un nouvel objet ``Decimal`` est " +"déterminé entièrement par le nombre de chiffres saisis. La précision et les " +"règles d'arrondis n'interviennent que lors d'opérations arithmétiques." + +#: ../Doc/library/decimal.rst:199 +msgid "" +"If the internal limits of the C version are exceeded, constructing a decimal " +"raises :class:`InvalidOperation`::" +msgstr "" +"Si les limites internes de la version en C sont dépassées, la construction " +"d'un objet décimal lève l'exception :class:`InvalidOperation` ::" + +#: ../Doc/library/decimal.rst:209 +msgid "" +"Decimals interact well with much of the rest of Python. Here is a small " +"decimal floating point flying circus:" +msgstr "" +"Les objets ``Decimal`` interagissent très bien avec le reste de Python. " +"Voici quelques exemple d'opérations avec des décimaux :" + +#: ../Doc/library/decimal.rst:241 +msgid "And some mathematical functions are also available to Decimal:" +msgstr "" +"Et certaines fonctions mathématiques sont également disponibles sur des " +"instances de ``Decimal`` :" + +#: ../Doc/library/decimal.rst:253 +msgid "" +"The :meth:`quantize` method rounds a number to a fixed exponent. This " +"method is useful for monetary applications that often round results to a " +"fixed number of places:" +msgstr "" +"La méthode :meth:`quantize` arrondit un nombre à un exposant fixe. Cette " +"méthode est utile pour des applications monétaires qui arrondissent souvent " +"un résultat à un nombre de chiffres significatifs exact :" + +#: ../Doc/library/decimal.rst:262 +msgid "" +"As shown above, the :func:`getcontext` function accesses the current context " +"and allows the settings to be changed. This approach meets the needs of " +"most applications." +msgstr "" +"Comme montré plus haut, la fonction :func:`getcontext` accède au contexte " +"actuel et permet de modifier les paramètres. Cette approche répond aux " +"besoins de la plupart des applications." + +#: ../Doc/library/decimal.rst:266 +msgid "" +"For more advanced work, it may be useful to create alternate contexts using " +"the Context() constructor. To make an alternate active, use the :func:" +"`setcontext` function." +msgstr "" +"Pour un travail plus avancé, il peut être utile de créer des contextes " +"alternatifs en utilisant le constructeur de ``Context``. Pour activer cet " +"objet ``Context``, utilisez la fonction :func:`setcontext`." + +#: ../Doc/library/decimal.rst:270 +msgid "" +"In accordance with the standard, the :mod:`decimal` module provides two " +"ready to use standard contexts, :const:`BasicContext` and :const:" +"`ExtendedContext`. The former is especially useful for debugging because " +"many of the traps are enabled:" +msgstr "" +"En accord avec le standard, le module :mod:`decimal` fournit des objets " +"Context standards, :const:`BasicContext` et :const:`ExtendedContext`. Le " +"premier est particulièrement utile pour le débogage car beaucoup des pièges " +"sont activés dans cet objet." + +#: ../Doc/library/decimal.rst:299 +msgid "" +"Contexts also have signal flags for monitoring exceptional conditions " +"encountered during computations. The flags remain set until explicitly " +"cleared, so it is best to clear the flags before each set of monitored " +"computations by using the :meth:`clear_flags` method. ::" +msgstr "" +"Les objets ``Context`` ont aussi des options pour détecter des opérations " +"illégales lors des calculs. Ces options restent activées jusqu'à ce qu'elles " +"soit remises à zéro de manière explicite. Il convient donc de remettre à " +"zéro ces options avant chaque inspection de chaque calcul, avec la méthode :" +"meth:`clear_flags`. ::" + +#: ../Doc/library/decimal.rst:312 +msgid "" +"The *flags* entry shows that the rational approximation to :const:`Pi` was " +"rounded (digits beyond the context precision were thrown away) and that the " +"result is inexact (some of the discarded digits were non-zero)." +msgstr "" +"Les options montrent que l'approximation de :const:`Pi` par une fraction a " +"été arrondie (les chiffres au delà de la précision spécifiée par l'objet " +"Context ont été tronqués) et que le résultat est différent (certains des " +"chiffres tronqués étaient différents de zéro)." + +#: ../Doc/library/decimal.rst:316 +msgid "" +"Individual traps are set using the dictionary in the :attr:`traps` field of " +"a context:" +msgstr "" +"L'activation des pièges se fait en utilisant un dictionnaire dans " +"l'attribut :attr:`traps` de l'objet Context :" + +#: ../Doc/library/decimal.rst:331 +msgid "" +"Most programs adjust the current context only once, at the beginning of the " +"program. And, in many applications, data is converted to :class:`Decimal` " +"with a single cast inside a loop. With context set and decimals created, " +"the bulk of the program manipulates the data no differently than with other " +"Python numeric types." +msgstr "" +"La plupart des applications n'ajustent l'objet ``Context`` qu'une seule " +"fois, au démarrage. Et, dans beaucoup d'applications, les données sont " +"convertie une fois pour toutes en :class:`Decimal`. Une fois le ``Context`` " +"initialisé, et les objets ``Decimal`` créés, l'essentiel du programme " +"manipule la donnée de la même manière qu'avec les autres types numériques " +"Python." + +#: ../Doc/library/decimal.rst:343 +msgid "Decimal objects" +msgstr "Les objets Decimal" + +#: ../Doc/library/decimal.rst:348 +msgid "Construct a new :class:`Decimal` object based from *value*." +msgstr "Construire un nouvel objet :class:`Decimal` à partir de *value*." + +#: ../Doc/library/decimal.rst:350 +msgid "" +"*value* can be an integer, string, tuple, :class:`float`, or another :class:" +"`Decimal` object. If no *value* is given, returns ``Decimal('0')``. If " +"*value* is a string, it should conform to the decimal numeric string syntax " +"after leading and trailing whitespace characters, as well as underscores " +"throughout, are removed::" +msgstr "" +"*value* peut être un entier, une chaîne de caractères, un tuple, :class:" +"`float`, ou une autre instance de :class:`Decimal`. Si *value* n'est pas " +"fourni, le constructeur renvoie ``Decimal('0')``. Si *value* est une chaîne " +"de caractère, elle doit correspondre à la syntaxe décimale en dehors des " +"espaces de début et de fin, ou des tirets bas, qui sont enlevés ::" + +#: ../Doc/library/decimal.rst:366 +msgid "" +"Other Unicode decimal digits are also permitted where ``digit`` appears " +"above. These include decimal digits from various other alphabets (for " +"example, Arabic-Indic and Devanāgarī digits) along with the fullwidth digits " +"``'\\uff10'`` through ``'\\uff19'``." +msgstr "" +"Les chiffres codés en Unicode sont aussi autorisés, là ou ``digit`` " +"apparaît. Cela inclut des chiffres décimaux venant d'autres alphabets (par " +"exemple les chiffres indo-arabes ou Devanagari) ainsi que les chiffres de " +"pleine largeur ``'\\uff10'`` jusqu'à ``'\\uff19'``." + +#: ../Doc/library/decimal.rst:371 +msgid "" +"If *value* is a :class:`tuple`, it should have three components, a sign (:" +"const:`0` for positive or :const:`1` for negative), a :class:`tuple` of " +"digits, and an integer exponent. For example, ``Decimal((0, (1, 4, 1, 4), " +"-3))`` returns ``Decimal('1.414')``." +msgstr "" +"Si *value* est un :class:`tuple`, il doit avoir 3 éléments, le signe (:const:" +"`0` pour positif ou :const:`1` pour négatif), un :class:`tuple` de chiffres, " +"et un entier représentant l'exposant. Par exemple, ``Decimal((0, (1, 4, 1, " +"4), -3))`` construit l'objet ``Decimal('1.414')``." + +#: ../Doc/library/decimal.rst:376 +msgid "" +"If *value* is a :class:`float`, the binary floating point value is " +"losslessly converted to its exact decimal equivalent. This conversion can " +"often require 53 or more digits of precision. For example, " +"``Decimal(float('1.1'))`` converts to " +"``Decimal('1.100000000000000088817841970012523233890533447265625')``." +msgstr "" +"Si *value* est un :class:`float`, la valeur en binaire flottant est " +"convertie exactement à son équivalent décimal. Cette conversion peut parfois " +"nécessiter 53 chiffres significatifs ou plus. Par exemple, " +"``Decimal(float('1.1'))`` devient " +"``Decimal('1.100000000000000088817841970012523233890533447265625')``." + +#: ../Doc/library/decimal.rst:382 +msgid "" +"The *context* precision does not affect how many digits are stored. That is " +"determined exclusively by the number of digits in *value*. For example, " +"``Decimal('3.00000')`` records all five zeros even if the context precision " +"is only three." +msgstr "" +"La précision spécifiée dans Context n'affecte pas le nombre de chiffres " +"stockés. Cette valeur est déterminée exclusivement par le nombre de chiffres " +"dans *value*. Par exemple, ``Decimal('3.00000')`` enregistre les 5 zéros " +"même si la précision du contexte est de 3." + +#: ../Doc/library/decimal.rst:387 +msgid "" +"The purpose of the *context* argument is determining what to do if *value* " +"is a malformed string. If the context traps :const:`InvalidOperation`, an " +"exception is raised; otherwise, the constructor returns a new Decimal with " +"the value of :const:`NaN`." +msgstr "" +"L'objectif de l'argument *context* est de déterminer ce que Python doit " +"faire si *value* est une chaîne avec un mauvais format. Si l'option :const:" +"`InvalidOperation` est activée, une exception est levée, sinon le " +"constructeur renvoie un objet ``Decimal`` avec la valeur :const:`NaN`." + +#: ../Doc/library/decimal.rst:392 +msgid "Once constructed, :class:`Decimal` objects are immutable." +msgstr "Une fois construit, les objets :class:`Decimal` sont immuables." + +#: ../Doc/library/decimal.rst:394 +msgid "" +"The argument to the constructor is now permitted to be a :class:`float` " +"instance." +msgstr "" +"L'argument du constructeur peut désormais être un objet :class:`float`." + +#: ../Doc/library/decimal.rst:398 +msgid "" +":class:`float` arguments raise an exception if the :exc:`FloatOperation` " +"trap is set. By default the trap is off." +msgstr "" +"Un argument :class:`float` lève une exception si l'option :exc:" +"`FloatOperation` est activé. Par défaut l'option ne l'est pas." + +#: ../Doc/library/decimal.rst:402 +msgid "" +"Underscores are allowed for grouping, as with integral and floating-point " +"literals in code." +msgstr "" +"Les tirets bas sont autorisés pour regrouper, tout comme pour l'arithmétique " +"en virgule fixe et flottante." + +#: ../Doc/library/decimal.rst:406 +msgid "" +"Decimal floating point objects share many properties with the other built-in " +"numeric types such as :class:`float` and :class:`int`. All of the usual " +"math operations and special methods apply. Likewise, decimal objects can be " +"copied, pickled, printed, used as dictionary keys, used as set elements, " +"compared, sorted, and coerced to another type (such as :class:`float` or :" +"class:`int`)." +msgstr "" +"Les objets ``Decimal`` partagent beaucoup de propriétés avec les autres " +"types numériques natifs tels que :class:`float` et :class:`int`. Toutes les " +"opérations mathématiques et méthodes sont conservées. De même les objets " +"``Decimal`` peuvent être copiés, sérialisés via le module ``pickle``, " +"affichés, utilisés comme clé de dictionnaire, éléments d'ensembles, " +"comparés, classés, et convertis vers un autre type (tel que :class:`float` " +"ou :class:`int`)." + +#: ../Doc/library/decimal.rst:413 +msgid "" +"There are some small differences between arithmetic on Decimal objects and " +"arithmetic on integers and floats. When the remainder operator ``%`` is " +"applied to Decimal objects, the sign of the result is the sign of the " +"*dividend* rather than the sign of the divisor::" +msgstr "" +"Il existe quelques différences mineures entre l'arithmétique entre les " +"objets décimaux et l'arithmétique avec les entiers et les ``float``. Quand " +"l'opérateur modulo ``%`` est appliqué sur des objets décimaux, le signe du " +"résultat est le signe du *dividend* plutôt que le signe du diviseur ::" + +#: ../Doc/library/decimal.rst:423 +msgid "" +"The integer division operator ``//`` behaves analogously, returning the " +"integer part of the true quotient (truncating towards zero) rather than its " +"floor, so as to preserve the usual identity ``x == (x // y) * y + x % y``::" +msgstr "" +"L'opérateur division entière, ``//`` se comporte de la même manière, " +"retournant la partie entière du quotient, plutôt que son arrondi, de manière " +"à préserver l'identité d'Euclide ``x == (x // y) * y + x % y`` ::" + +#: ../Doc/library/decimal.rst:432 +msgid "" +"The ``%`` and ``//`` operators implement the ``remainder`` and ``divide-" +"integer`` operations (respectively) as described in the specification." +msgstr "" +"Les opérateurs ``//`` et ``%`` implémentent la division entière et le reste " +"(ou modulo), respectivement, tel que décrit dans la spécification." + +#: ../Doc/library/decimal.rst:436 +msgid "" +"Decimal objects cannot generally be combined with floats or instances of :" +"class:`fractions.Fraction` in arithmetic operations: an attempt to add a :" +"class:`Decimal` to a :class:`float`, for example, will raise a :exc:" +"`TypeError`. However, it is possible to use Python's comparison operators " +"to compare a :class:`Decimal` instance ``x`` with another number ``y``. " +"This avoids confusing results when doing equality comparisons between " +"numbers of different types." +msgstr "" +"Les objets ``Decimal`` ne peuvent généralement pas être combinés avec des " +"``float`` ou des objets :class:`fractions.Fraction` lors d'opérations " +"arithmétiques : tout addition entre un :class:`Decimal` avec un :class:" +"`float`, par exemple, lève une exception :exc:`TypeError`. Cependant, il est " +"possible d'utiliser les opérateurs de comparaison entre instances de :class:" +"`Decimal` avec les autres types numériques. Cela évite d'avoir des résultats " +"absurdes lors des tests d'égalité entre différents types." + +#: ../Doc/library/decimal.rst:444 +msgid "" +"Mixed-type comparisons between :class:`Decimal` instances and other numeric " +"types are now fully supported." +msgstr "" +"Les comparaisons inter-types entre :class:`Decimal` et les autres types " +"numériques sont désormais intégralement gérés." + +#: ../Doc/library/decimal.rst:448 +msgid "" +"In addition to the standard numeric properties, decimal floating point " +"objects also have a number of specialized methods:" +msgstr "" + +#: ../Doc/library/decimal.rst:454 +msgid "" +"Return the adjusted exponent after shifting out the coefficient's rightmost " +"digits until only the lead digit remains: ``Decimal('321e+5').adjusted()`` " +"returns seven. Used for determining the position of the most significant " +"digit with respect to the decimal point." +msgstr "" + +#: ../Doc/library/decimal.rst:461 +msgid "" +"Return a pair ``(n, d)`` of integers that represent the given :class:" +"`Decimal` instance as a fraction, in lowest terms and with a positive " +"denominator::" +msgstr "" + +#: ../Doc/library/decimal.rst:468 +msgid "" +"The conversion is exact. Raise OverflowError on infinities and ValueError " +"on NaNs." +msgstr "" +"La conversion est exacte. Lève une ``OverflowError`` sur l'infini et " +"``ValueError`` sur les ``Nan``'s." + +#: ../Doc/library/decimal.rst:475 +msgid "" +"Return a :term:`named tuple` representation of the number: " +"``DecimalTuple(sign, digits, exponent)``." +msgstr "" + +#: ../Doc/library/decimal.rst:481 +msgid "" +"Return the canonical encoding of the argument. Currently, the encoding of " +"a :class:`Decimal` instance is always canonical, so this operation returns " +"its argument unchanged." +msgstr "" + +#: ../Doc/library/decimal.rst:487 +msgid "" +"Compare the values of two Decimal instances. :meth:`compare` returns a " +"Decimal instance, and if either operand is a NaN then the result is a NaN::" +msgstr "" + +#: ../Doc/library/decimal.rst:498 +msgid "" +"This operation is identical to the :meth:`compare` method, except that all " +"NaNs signal. That is, if neither operand is a signaling NaN then any quiet " +"NaN operand is treated as though it were a signaling NaN." +msgstr "" + +#: ../Doc/library/decimal.rst:504 +msgid "" +"Compare two operands using their abstract representation rather than their " +"numerical value. Similar to the :meth:`compare` method, but the result " +"gives a total ordering on :class:`Decimal` instances. Two :class:`Decimal` " +"instances with the same numeric value but different representations compare " +"unequal in this ordering:" +msgstr "" + +#: ../Doc/library/decimal.rst:513 +msgid "" +"Quiet and signaling NaNs are also included in the total ordering. The " +"result of this function is ``Decimal('0')`` if both operands have the same " +"representation, ``Decimal('-1')`` if the first operand is lower in the total " +"order than the second, and ``Decimal('1')`` if the first operand is higher " +"in the total order than the second operand. See the specification for " +"details of the total order." +msgstr "" + +#: ../Doc/library/decimal.rst:520 ../Doc/library/decimal.rst:531 +#: ../Doc/library/decimal.rst:559 ../Doc/library/decimal.rst:834 +msgid "" +"This operation is unaffected by context and is quiet: no flags are changed " +"and no rounding is performed. As an exception, the C version may raise " +"InvalidOperation if the second operand cannot be converted exactly." +msgstr "" + +#: ../Doc/library/decimal.rst:526 +msgid "" +"Compare two operands using their abstract representation rather than their " +"value as in :meth:`compare_total`, but ignoring the sign of each operand. " +"``x.compare_total_mag(y)`` is equivalent to ``x.copy_abs().compare_total(y." +"copy_abs())``." +msgstr "" + +#: ../Doc/library/decimal.rst:537 +msgid "" +"Just returns self, this method is only to comply with the Decimal " +"Specification." +msgstr "" + +#: ../Doc/library/decimal.rst:542 +msgid "" +"Return the absolute value of the argument. This operation is unaffected by " +"the context and is quiet: no flags are changed and no rounding is performed." +msgstr "" + +#: ../Doc/library/decimal.rst:548 +msgid "" +"Return the negation of the argument. This operation is unaffected by the " +"context and is quiet: no flags are changed and no rounding is performed." +msgstr "" + +#: ../Doc/library/decimal.rst:553 +msgid "" +"Return a copy of the first operand with the sign set to be the same as the " +"sign of the second operand. For example:" +msgstr "" + +#: ../Doc/library/decimal.rst:565 +msgid "" +"Return the value of the (natural) exponential function ``e**x`` at the given " +"number. The result is correctly rounded using the :const:`ROUND_HALF_EVEN` " +"rounding mode." +msgstr "" + +#: ../Doc/library/decimal.rst:576 +msgid "Classmethod that converts a float to a decimal number, exactly." +msgstr "" + +#: ../Doc/library/decimal.rst:578 +msgid "" +"Note `Decimal.from_float(0.1)` is not the same as `Decimal('0.1')`. Since " +"0.1 is not exactly representable in binary floating point, the value is " +"stored as the nearest representable value which is `0x1.999999999999ap-4`. " +"That equivalent value in decimal is " +"`0.1000000000000000055511151231257827021181583404541015625`." +msgstr "" + +#: ../Doc/library/decimal.rst:584 +msgid "" +"From Python 3.2 onwards, a :class:`Decimal` instance can also be constructed " +"directly from a :class:`float`." +msgstr "" + +#: ../Doc/library/decimal.rst:602 +msgid "" +"Fused multiply-add. Return self*other+third with no rounding of the " +"intermediate product self*other." +msgstr "" + +#: ../Doc/library/decimal.rst:610 +msgid "" +"Return :const:`True` if the argument is canonical and :const:`False` " +"otherwise. Currently, a :class:`Decimal` instance is always canonical, so " +"this operation always returns :const:`True`." +msgstr "" + +#: ../Doc/library/decimal.rst:616 +msgid "" +"Return :const:`True` if the argument is a finite number, and :const:`False` " +"if the argument is an infinity or a NaN." +msgstr "" + +#: ../Doc/library/decimal.rst:621 +msgid "" +"Return :const:`True` if the argument is either positive or negative infinity " +"and :const:`False` otherwise." +msgstr "" + +#: ../Doc/library/decimal.rst:626 +msgid "" +"Return :const:`True` if the argument is a (quiet or signaling) NaN and :" +"const:`False` otherwise." +msgstr "" + +#: ../Doc/library/decimal.rst:631 +msgid "" +"Return :const:`True` if the argument is a *normal* finite number. Return :" +"const:`False` if the argument is zero, subnormal, infinite or a NaN." +msgstr "" + +#: ../Doc/library/decimal.rst:636 +msgid "" +"Return :const:`True` if the argument is a quiet NaN, and :const:`False` " +"otherwise." +msgstr "" + +#: ../Doc/library/decimal.rst:641 +msgid "" +"Return :const:`True` if the argument has a negative sign and :const:`False` " +"otherwise. Note that zeros and NaNs can both carry signs." +msgstr "" + +#: ../Doc/library/decimal.rst:646 +msgid "" +"Return :const:`True` if the argument is a signaling NaN and :const:`False` " +"otherwise." +msgstr "" + +#: ../Doc/library/decimal.rst:651 +msgid "" +"Return :const:`True` if the argument is subnormal, and :const:`False` " +"otherwise." +msgstr "" + +#: ../Doc/library/decimal.rst:656 +msgid "" +"Return :const:`True` if the argument is a (positive or negative) zero and :" +"const:`False` otherwise." +msgstr "" + +#: ../Doc/library/decimal.rst:661 +msgid "" +"Return the natural (base e) logarithm of the operand. The result is " +"correctly rounded using the :const:`ROUND_HALF_EVEN` rounding mode." +msgstr "" + +#: ../Doc/library/decimal.rst:666 +msgid "" +"Return the base ten logarithm of the operand. The result is correctly " +"rounded using the :const:`ROUND_HALF_EVEN` rounding mode." +msgstr "" + +#: ../Doc/library/decimal.rst:671 +msgid "" +"For a nonzero number, return the adjusted exponent of its operand as a :" +"class:`Decimal` instance. If the operand is a zero then ``Decimal('-" +"Infinity')`` is returned and the :const:`DivisionByZero` flag is raised. If " +"the operand is an infinity then ``Decimal('Infinity')`` is returned." +msgstr "" + +#: ../Doc/library/decimal.rst:679 +msgid "" +":meth:`logical_and` is a logical operation which takes two *logical " +"operands* (see :ref:`logical_operands_label`). The result is the digit-wise " +"``and`` of the two operands." +msgstr "" + +#: ../Doc/library/decimal.rst:685 +msgid "" +":meth:`logical_invert` is a logical operation. The result is the digit-wise " +"inversion of the operand." +msgstr "" + +#: ../Doc/library/decimal.rst:690 +msgid "" +":meth:`logical_or` is a logical operation which takes two *logical operands* " +"(see :ref:`logical_operands_label`). The result is the digit-wise ``or`` of " +"the two operands." +msgstr "" + +#: ../Doc/library/decimal.rst:696 +msgid "" +":meth:`logical_xor` is a logical operation which takes two *logical " +"operands* (see :ref:`logical_operands_label`). The result is the digit-wise " +"exclusive or of the two operands." +msgstr "" + +#: ../Doc/library/decimal.rst:702 +msgid "" +"Like ``max(self, other)`` except that the context rounding rule is applied " +"before returning and that :const:`NaN` values are either signaled or ignored " +"(depending on the context and whether they are signaling or quiet)." +msgstr "" + +#: ../Doc/library/decimal.rst:709 +msgid "" +"Similar to the :meth:`.max` method, but the comparison is done using the " +"absolute values of the operands." +msgstr "" + +#: ../Doc/library/decimal.rst:714 +msgid "" +"Like ``min(self, other)`` except that the context rounding rule is applied " +"before returning and that :const:`NaN` values are either signaled or ignored " +"(depending on the context and whether they are signaling or quiet)." +msgstr "" + +#: ../Doc/library/decimal.rst:721 +msgid "" +"Similar to the :meth:`.min` method, but the comparison is done using the " +"absolute values of the operands." +msgstr "" + +#: ../Doc/library/decimal.rst:726 +msgid "" +"Return the largest number representable in the given context (or in the " +"current thread's context if no context is given) that is smaller than the " +"given operand." +msgstr "" + +#: ../Doc/library/decimal.rst:732 +msgid "" +"Return the smallest number representable in the given context (or in the " +"current thread's context if no context is given) that is larger than the " +"given operand." +msgstr "" + +#: ../Doc/library/decimal.rst:738 +msgid "" +"If the two operands are unequal, return the number closest to the first " +"operand in the direction of the second operand. If both operands are " +"numerically equal, return a copy of the first operand with the sign set to " +"be the same as the sign of the second operand." +msgstr "" + +#: ../Doc/library/decimal.rst:745 +msgid "" +"Normalize the number by stripping the rightmost trailing zeros and " +"converting any result equal to :const:`Decimal('0')` to :const:" +"`Decimal('0e0')`. Used for producing canonical values for attributes of an " +"equivalence class. For example, ``Decimal('32.100')`` and " +"``Decimal('0.321000e+2')`` both normalize to the equivalent value " +"``Decimal('32.1')``." +msgstr "" + +#: ../Doc/library/decimal.rst:754 +msgid "" +"Return a string describing the *class* of the operand. The returned value " +"is one of the following ten strings." +msgstr "" + +#: ../Doc/library/decimal.rst:757 +msgid "``\"-Infinity\"``, indicating that the operand is negative infinity." +msgstr "" + +#: ../Doc/library/decimal.rst:758 +msgid "" +"``\"-Normal\"``, indicating that the operand is a negative normal number." +msgstr "" + +#: ../Doc/library/decimal.rst:759 +msgid "" +"``\"-Subnormal\"``, indicating that the operand is negative and subnormal." +msgstr "" + +#: ../Doc/library/decimal.rst:760 +msgid "``\"-Zero\"``, indicating that the operand is a negative zero." +msgstr "" + +#: ../Doc/library/decimal.rst:761 +msgid "``\"+Zero\"``, indicating that the operand is a positive zero." +msgstr "" + +#: ../Doc/library/decimal.rst:762 +msgid "" +"``\"+Subnormal\"``, indicating that the operand is positive and subnormal." +msgstr "" + +#: ../Doc/library/decimal.rst:763 +msgid "" +"``\"+Normal\"``, indicating that the operand is a positive normal number." +msgstr "" + +#: ../Doc/library/decimal.rst:764 +msgid "``\"+Infinity\"``, indicating that the operand is positive infinity." +msgstr "" + +#: ../Doc/library/decimal.rst:765 +msgid "``\"NaN\"``, indicating that the operand is a quiet NaN (Not a Number)." +msgstr "" + +#: ../Doc/library/decimal.rst:766 +msgid "``\"sNaN\"``, indicating that the operand is a signaling NaN." +msgstr "" + +#: ../Doc/library/decimal.rst:770 +msgid "" +"Return a value equal to the first operand after rounding and having the " +"exponent of the second operand." +msgstr "" + +#: ../Doc/library/decimal.rst:776 +msgid "" +"Unlike other operations, if the length of the coefficient after the quantize " +"operation would be greater than precision, then an :const:`InvalidOperation` " +"is signaled. This guarantees that, unless there is an error condition, the " +"quantized exponent is always equal to that of the right-hand operand." +msgstr "" + +#: ../Doc/library/decimal.rst:782 +msgid "" +"Also unlike other operations, quantize never signals Underflow, even if the " +"result is subnormal and inexact." +msgstr "" + +#: ../Doc/library/decimal.rst:785 +msgid "" +"If the exponent of the second operand is larger than that of the first then " +"rounding may be necessary. In this case, the rounding mode is determined by " +"the ``rounding`` argument if given, else by the given ``context`` argument; " +"if neither argument is given the rounding mode of the current thread's " +"context is used." +msgstr "" + +#: ../Doc/library/decimal.rst:791 +msgid "" +"An error is returned whenever the resulting exponent is greater than :attr:" +"`Emax` or less than :attr:`Etiny`." +msgstr "" + +#: ../Doc/library/decimal.rst:796 +msgid "" +"Return ``Decimal(10)``, the radix (base) in which the :class:`Decimal` class " +"does all its arithmetic. Included for compatibility with the specification." +msgstr "" + +#: ../Doc/library/decimal.rst:802 +msgid "" +"Return the remainder from dividing *self* by *other*. This differs from " +"``self % other`` in that the sign of the remainder is chosen so as to " +"minimize its absolute value. More precisely, the return value is ``self - n " +"* other`` where ``n`` is the integer nearest to the exact value of ``self / " +"other``, and if two integers are equally near then the even one is chosen." +msgstr "" + +#: ../Doc/library/decimal.rst:809 +msgid "If the result is zero then its sign will be the sign of *self*." +msgstr "" + +#: ../Doc/library/decimal.rst:820 +msgid "" +"Return the result of rotating the digits of the first operand by an amount " +"specified by the second operand. The second operand must be an integer in " +"the range -precision through precision. The absolute value of the second " +"operand gives the number of places to rotate. If the second operand is " +"positive then rotation is to the left; otherwise rotation is to the right. " +"The coefficient of the first operand is padded on the left with zeros to " +"length precision if necessary. The sign and exponent of the first operand " +"are unchanged." +msgstr "" + +#: ../Doc/library/decimal.rst:831 +msgid "" +"Test whether self and other have the same exponent or whether both are :" +"const:`NaN`." +msgstr "" + +#: ../Doc/library/decimal.rst:840 +msgid "" +"Return the first operand with exponent adjusted by the second. Equivalently, " +"return the first operand multiplied by ``10**other``. The second operand " +"must be an integer." +msgstr "" + +#: ../Doc/library/decimal.rst:846 +msgid "" +"Return the result of shifting the digits of the first operand by an amount " +"specified by the second operand. The second operand must be an integer in " +"the range -precision through precision. The absolute value of the second " +"operand gives the number of places to shift. If the second operand is " +"positive then the shift is to the left; otherwise the shift is to the " +"right. Digits shifted into the coefficient are zeros. The sign and " +"exponent of the first operand are unchanged." +msgstr "" + +#: ../Doc/library/decimal.rst:856 +msgid "Return the square root of the argument to full precision." +msgstr "" + +#: ../Doc/library/decimal.rst:861 ../Doc/library/decimal.rst:1437 +msgid "" +"Convert to a string, using engineering notation if an exponent is needed." +msgstr "" + +#: ../Doc/library/decimal.rst:863 ../Doc/library/decimal.rst:1439 +msgid "" +"Engineering notation has an exponent which is a multiple of 3. This can " +"leave up to 3 digits to the left of the decimal place and may require the " +"addition of either one or two trailing zeros." +msgstr "" + +#: ../Doc/library/decimal.rst:867 +msgid "" +"For example, this converts ``Decimal('123E+1')`` to ``Decimal('1.23E+3')``." +msgstr "" + +#: ../Doc/library/decimal.rst:871 +msgid "" +"Identical to the :meth:`to_integral_value` method. The ``to_integral`` name " +"has been kept for compatibility with older versions." +msgstr "" + +#: ../Doc/library/decimal.rst:876 +msgid "" +"Round to the nearest integer, signaling :const:`Inexact` or :const:`Rounded` " +"as appropriate if rounding occurs. The rounding mode is determined by the " +"``rounding`` parameter if given, else by the given ``context``. If neither " +"parameter is given then the rounding mode of the current context is used." +msgstr "" + +#: ../Doc/library/decimal.rst:884 +msgid "" +"Round to the nearest integer without signaling :const:`Inexact` or :const:" +"`Rounded`. If given, applies *rounding*; otherwise, uses the rounding " +"method in either the supplied *context* or the current context." +msgstr "" + +#: ../Doc/library/decimal.rst:892 +msgid "Logical operands" +msgstr "" + +#: ../Doc/library/decimal.rst:894 +msgid "" +"The :meth:`logical_and`, :meth:`logical_invert`, :meth:`logical_or`, and :" +"meth:`logical_xor` methods expect their arguments to be *logical operands*. " +"A *logical operand* is a :class:`Decimal` instance whose exponent and sign " +"are both zero, and whose digits are all either :const:`0` or :const:`1`." +msgstr "" + +#: ../Doc/library/decimal.rst:906 +msgid "Context objects" +msgstr "" + +#: ../Doc/library/decimal.rst:908 +msgid "" +"Contexts are environments for arithmetic operations. They govern precision, " +"set rules for rounding, determine which signals are treated as exceptions, " +"and limit the range for exponents." +msgstr "" + +#: ../Doc/library/decimal.rst:912 +msgid "" +"Each thread has its own current context which is accessed or changed using " +"the :func:`getcontext` and :func:`setcontext` functions:" +msgstr "" + +#: ../Doc/library/decimal.rst:918 +msgid "Return the current context for the active thread." +msgstr "" + +#: ../Doc/library/decimal.rst:923 +msgid "Set the current context for the active thread to *c*." +msgstr "" + +#: ../Doc/library/decimal.rst:925 +msgid "" +"You can also use the :keyword:`with` statement and the :func:`localcontext` " +"function to temporarily change the active context." +msgstr "" + +#: ../Doc/library/decimal.rst:930 +msgid "" +"Return a context manager that will set the current context for the active " +"thread to a copy of *ctx* on entry to the with-statement and restore the " +"previous context when exiting the with-statement. If no context is " +"specified, a copy of the current context is used." +msgstr "" + +#: ../Doc/library/decimal.rst:935 +msgid "" +"For example, the following code sets the current decimal precision to 42 " +"places, performs a calculation, and then automatically restores the previous " +"context::" +msgstr "" + +#: ../Doc/library/decimal.rst:945 +msgid "" +"New contexts can also be created using the :class:`Context` constructor " +"described below. In addition, the module provides three pre-made contexts:" +msgstr "" + +#: ../Doc/library/decimal.rst:951 +msgid "" +"This is a standard context defined by the General Decimal Arithmetic " +"Specification. Precision is set to nine. Rounding is set to :const:" +"`ROUND_HALF_UP`. All flags are cleared. All traps are enabled (treated as " +"exceptions) except :const:`Inexact`, :const:`Rounded`, and :const:" +"`Subnormal`." +msgstr "" + +#: ../Doc/library/decimal.rst:957 +msgid "" +"Because many of the traps are enabled, this context is useful for debugging." +msgstr "" + +#: ../Doc/library/decimal.rst:962 +msgid "" +"This is a standard context defined by the General Decimal Arithmetic " +"Specification. Precision is set to nine. Rounding is set to :const:" +"`ROUND_HALF_EVEN`. All flags are cleared. No traps are enabled (so that " +"exceptions are not raised during computations)." +msgstr "" + +#: ../Doc/library/decimal.rst:967 +msgid "" +"Because the traps are disabled, this context is useful for applications that " +"prefer to have result value of :const:`NaN` or :const:`Infinity` instead of " +"raising exceptions. This allows an application to complete a run in the " +"presence of conditions that would otherwise halt the program." +msgstr "" + +#: ../Doc/library/decimal.rst:975 +msgid "" +"This context is used by the :class:`Context` constructor as a prototype for " +"new contexts. Changing a field (such a precision) has the effect of " +"changing the default for new contexts created by the :class:`Context` " +"constructor." +msgstr "" + +#: ../Doc/library/decimal.rst:979 +msgid "" +"This context is most useful in multi-threaded environments. Changing one of " +"the fields before threads are started has the effect of setting system-wide " +"defaults. Changing the fields after threads have started is not recommended " +"as it would require thread synchronization to prevent race conditions." +msgstr "" + +#: ../Doc/library/decimal.rst:984 +msgid "" +"In single threaded environments, it is preferable to not use this context at " +"all. Instead, simply create contexts explicitly as described below." +msgstr "" + +#: ../Doc/library/decimal.rst:987 +msgid "" +"The default values are :attr:`prec`\\ =\\ :const:`28`, :attr:`rounding`\\ =" +"\\ :const:`ROUND_HALF_EVEN`, and enabled traps for :class:`Overflow`, :class:" +"`InvalidOperation`, and :class:`DivisionByZero`." +msgstr "" + +#: ../Doc/library/decimal.rst:992 +msgid "" +"In addition to the three supplied contexts, new contexts can be created with " +"the :class:`Context` constructor." +msgstr "" + +#: ../Doc/library/decimal.rst:998 +msgid "" +"Creates a new context. If a field is not specified or is :const:`None`, the " +"default values are copied from the :const:`DefaultContext`. If the *flags* " +"field is not specified or is :const:`None`, all flags are cleared." +msgstr "" + +#: ../Doc/library/decimal.rst:1002 +msgid "" +"*prec* is an integer in the range [:const:`1`, :const:`MAX_PREC`] that sets " +"the precision for arithmetic operations in the context." +msgstr "" + +#: ../Doc/library/decimal.rst:1005 +msgid "" +"The *rounding* option is one of the constants listed in the section " +"`Rounding Modes`_." +msgstr "" + +#: ../Doc/library/decimal.rst:1008 +msgid "" +"The *traps* and *flags* fields list any signals to be set. Generally, new " +"contexts should only set traps and leave the flags clear." +msgstr "" + +#: ../Doc/library/decimal.rst:1011 +msgid "" +"The *Emin* and *Emax* fields are integers specifying the outer limits " +"allowable for exponents. *Emin* must be in the range [:const:`MIN_EMIN`, :" +"const:`0`], *Emax* in the range [:const:`0`, :const:`MAX_EMAX`]." +msgstr "" + +#: ../Doc/library/decimal.rst:1015 +msgid "" +"The *capitals* field is either :const:`0` or :const:`1` (the default). If " +"set to :const:`1`, exponents are printed with a capital :const:`E`; " +"otherwise, a lowercase :const:`e` is used: :const:`Decimal('6.02e+23')`." +msgstr "" + +#: ../Doc/library/decimal.rst:1019 +msgid "" +"The *clamp* field is either :const:`0` (the default) or :const:`1`. If set " +"to :const:`1`, the exponent ``e`` of a :class:`Decimal` instance " +"representable in this context is strictly limited to the range ``Emin - prec " +"+ 1 <= e <= Emax - prec + 1``. If *clamp* is :const:`0` then a weaker " +"condition holds: the adjusted exponent of the :class:`Decimal` instance is " +"at most ``Emax``. When *clamp* is :const:`1`, a large normal number will, " +"where possible, have its exponent reduced and a corresponding number of " +"zeros added to its coefficient, in order to fit the exponent constraints; " +"this preserves the value of the number but loses information about " +"significant trailing zeros. For example::" +msgstr "" + +#: ../Doc/library/decimal.rst:1034 +msgid "" +"A *clamp* value of :const:`1` allows compatibility with the fixed-width " +"decimal interchange formats specified in IEEE 754." +msgstr "" + +#: ../Doc/library/decimal.rst:1037 +msgid "" +"The :class:`Context` class defines several general purpose methods as well " +"as a large number of methods for doing arithmetic directly in a given " +"context. In addition, for each of the :class:`Decimal` methods described " +"above (with the exception of the :meth:`adjusted` and :meth:`as_tuple` " +"methods) there is a corresponding :class:`Context` method. For example, for " +"a :class:`Context` instance ``C`` and :class:`Decimal` instance ``x``, ``C." +"exp(x)`` is equivalent to ``x.exp(context=C)``. Each :class:`Context` " +"method accepts a Python integer (an instance of :class:`int`) anywhere that " +"a Decimal instance is accepted." +msgstr "" + +#: ../Doc/library/decimal.rst:1050 +msgid "Resets all of the flags to :const:`0`." +msgstr "" + +#: ../Doc/library/decimal.rst:1054 +msgid "Resets all of the traps to :const:`0`." +msgstr "" + +#: ../Doc/library/decimal.rst:1060 +msgid "Return a duplicate of the context." +msgstr "" + +#: ../Doc/library/decimal.rst:1064 +msgid "Return a copy of the Decimal instance num." +msgstr "" + +#: ../Doc/library/decimal.rst:1068 +msgid "" +"Creates a new Decimal instance from *num* but using *self* as context. " +"Unlike the :class:`Decimal` constructor, the context precision, rounding " +"method, flags, and traps are applied to the conversion." +msgstr "" + +#: ../Doc/library/decimal.rst:1072 +msgid "" +"This is useful because constants are often given to a greater precision than " +"is needed by the application. Another benefit is that rounding immediately " +"eliminates unintended effects from digits beyond the current precision. In " +"the following example, using unrounded inputs means that adding zero to a " +"sum can change the result:" +msgstr "" + +#: ../Doc/library/decimal.rst:1086 +msgid "" +"This method implements the to-number operation of the IBM specification. If " +"the argument is a string, no leading or trailing whitespace or underscores " +"are permitted." +msgstr "" + +#: ../Doc/library/decimal.rst:1092 +msgid "" +"Creates a new Decimal instance from a float *f* but rounding using *self* as " +"the context. Unlike the :meth:`Decimal.from_float` class method, the " +"context precision, rounding method, flags, and traps are applied to the " +"conversion." +msgstr "" + +#: ../Doc/library/decimal.rst:1112 +msgid "" +"Returns a value equal to ``Emin - prec + 1`` which is the minimum exponent " +"value for subnormal results. When underflow occurs, the exponent is set to :" +"const:`Etiny`." +msgstr "" + +#: ../Doc/library/decimal.rst:1118 +msgid "Returns a value equal to ``Emax - prec + 1``." +msgstr "" + +#: ../Doc/library/decimal.rst:1120 +msgid "" +"The usual approach to working with decimals is to create :class:`Decimal` " +"instances and then apply arithmetic operations which take place within the " +"current context for the active thread. An alternative approach is to use " +"context methods for calculating within a specific context. The methods are " +"similar to those for the :class:`Decimal` class and are only briefly " +"recounted here." +msgstr "" + +#: ../Doc/library/decimal.rst:1130 +msgid "Returns the absolute value of *x*." +msgstr "Renvoie la valeur absolue de *x*." + +#: ../Doc/library/decimal.rst:1135 +msgid "Return the sum of *x* and *y*." +msgstr "" + +#: ../Doc/library/decimal.rst:1140 +msgid "Returns the same Decimal object *x*." +msgstr "" + +#: ../Doc/library/decimal.rst:1145 +msgid "Compares *x* and *y* numerically." +msgstr "" + +#: ../Doc/library/decimal.rst:1150 +msgid "Compares the values of the two operands numerically." +msgstr "" + +#: ../Doc/library/decimal.rst:1155 +msgid "Compares two operands using their abstract representation." +msgstr "" + +#: ../Doc/library/decimal.rst:1160 +msgid "" +"Compares two operands using their abstract representation, ignoring sign." +msgstr "" + +#: ../Doc/library/decimal.rst:1165 +msgid "Returns a copy of *x* with the sign set to 0." +msgstr "" + +#: ../Doc/library/decimal.rst:1170 +msgid "Returns a copy of *x* with the sign inverted." +msgstr "" + +#: ../Doc/library/decimal.rst:1175 +msgid "Copies the sign from *y* to *x*." +msgstr "" + +#: ../Doc/library/decimal.rst:1180 +msgid "Return *x* divided by *y*." +msgstr "" + +#: ../Doc/library/decimal.rst:1185 +msgid "Return *x* divided by *y*, truncated to an integer." +msgstr "" + +#: ../Doc/library/decimal.rst:1190 +msgid "Divides two numbers and returns the integer part of the result." +msgstr "" + +#: ../Doc/library/decimal.rst:1195 +msgid "Returns `e ** x`." +msgstr "" + +#: ../Doc/library/decimal.rst:1200 +msgid "Returns *x* multiplied by *y*, plus *z*." +msgstr "" + +#: ../Doc/library/decimal.rst:1205 +msgid "Returns ``True`` if *x* is canonical; otherwise returns ``False``." +msgstr "" + +#: ../Doc/library/decimal.rst:1210 +msgid "Returns ``True`` if *x* is finite; otherwise returns ``False``." +msgstr "" + +#: ../Doc/library/decimal.rst:1215 +msgid "Returns ``True`` if *x* is infinite; otherwise returns ``False``." +msgstr "" + +#: ../Doc/library/decimal.rst:1220 +msgid "Returns ``True`` if *x* is a qNaN or sNaN; otherwise returns ``False``." +msgstr "" + +#: ../Doc/library/decimal.rst:1225 +msgid "" +"Returns ``True`` if *x* is a normal number; otherwise returns ``False``." +msgstr "" + +#: ../Doc/library/decimal.rst:1230 +msgid "Returns ``True`` if *x* is a quiet NaN; otherwise returns ``False``." +msgstr "" + +#: ../Doc/library/decimal.rst:1235 +msgid "Returns ``True`` if *x* is negative; otherwise returns ``False``." +msgstr "" + +#: ../Doc/library/decimal.rst:1240 +msgid "" +"Returns ``True`` if *x* is a signaling NaN; otherwise returns ``False``." +msgstr "" + +#: ../Doc/library/decimal.rst:1245 +msgid "Returns ``True`` if *x* is subnormal; otherwise returns ``False``." +msgstr "" + +#: ../Doc/library/decimal.rst:1250 +msgid "Returns ``True`` if *x* is a zero; otherwise returns ``False``." +msgstr "" + +#: ../Doc/library/decimal.rst:1255 +msgid "Returns the natural (base e) logarithm of *x*." +msgstr "" + +#: ../Doc/library/decimal.rst:1260 +msgid "Returns the base 10 logarithm of *x*." +msgstr "" + +#: ../Doc/library/decimal.rst:1265 +msgid "Returns the exponent of the magnitude of the operand's MSD." +msgstr "" + +#: ../Doc/library/decimal.rst:1270 +msgid "Applies the logical operation *and* between each operand's digits." +msgstr "" + +#: ../Doc/library/decimal.rst:1275 +msgid "Invert all the digits in *x*." +msgstr "" + +#: ../Doc/library/decimal.rst:1280 +msgid "Applies the logical operation *or* between each operand's digits." +msgstr "" + +#: ../Doc/library/decimal.rst:1285 +msgid "Applies the logical operation *xor* between each operand's digits." +msgstr "" + +#: ../Doc/library/decimal.rst:1290 +msgid "Compares two values numerically and returns the maximum." +msgstr "" + +#: ../Doc/library/decimal.rst:1295 ../Doc/library/decimal.rst:1305 +msgid "Compares the values numerically with their sign ignored." +msgstr "" + +#: ../Doc/library/decimal.rst:1300 +msgid "Compares two values numerically and returns the minimum." +msgstr "" + +#: ../Doc/library/decimal.rst:1310 +msgid "Minus corresponds to the unary prefix minus operator in Python." +msgstr "" + +#: ../Doc/library/decimal.rst:1315 +msgid "Return the product of *x* and *y*." +msgstr "" + +#: ../Doc/library/decimal.rst:1320 +msgid "Returns the largest representable number smaller than *x*." +msgstr "" + +#: ../Doc/library/decimal.rst:1325 +msgid "Returns the smallest representable number larger than *x*." +msgstr "" + +#: ../Doc/library/decimal.rst:1330 +msgid "Returns the number closest to *x*, in direction towards *y*." +msgstr "" + +#: ../Doc/library/decimal.rst:1335 +msgid "Reduces *x* to its simplest form." +msgstr "" + +#: ../Doc/library/decimal.rst:1340 +msgid "Returns an indication of the class of *x*." +msgstr "" + +#: ../Doc/library/decimal.rst:1345 +msgid "" +"Plus corresponds to the unary prefix plus operator in Python. This " +"operation applies the context precision and rounding, so it is *not* an " +"identity operation." +msgstr "" + +#: ../Doc/library/decimal.rst:1352 +msgid "Return ``x`` to the power of ``y``, reduced modulo ``modulo`` if given." +msgstr "" + +#: ../Doc/library/decimal.rst:1354 +msgid "" +"With two arguments, compute ``x**y``. If ``x`` is negative then ``y`` must " +"be integral. The result will be inexact unless ``y`` is integral and the " +"result is finite and can be expressed exactly in 'precision' digits. The " +"rounding mode of the context is used. Results are always correctly-rounded " +"in the Python version." +msgstr "" + +#: ../Doc/library/decimal.rst:1360 +msgid "" +"The C module computes :meth:`power` in terms of the correctly-rounded :meth:" +"`exp` and :meth:`ln` functions. The result is well-defined but only \"almost " +"always correctly-rounded\"." +msgstr "" + +#: ../Doc/library/decimal.rst:1365 +msgid "" +"With three arguments, compute ``(x**y) % modulo``. For the three argument " +"form, the following restrictions on the arguments hold:" +msgstr "" + +#: ../Doc/library/decimal.rst:1368 +msgid "all three arguments must be integral" +msgstr "" + +#: ../Doc/library/decimal.rst:1369 +msgid "``y`` must be nonnegative" +msgstr "" + +#: ../Doc/library/decimal.rst:1370 +msgid "at least one of ``x`` or ``y`` must be nonzero" +msgstr "" + +#: ../Doc/library/decimal.rst:1371 +msgid "``modulo`` must be nonzero and have at most 'precision' digits" +msgstr "" + +#: ../Doc/library/decimal.rst:1373 +msgid "" +"The value resulting from ``Context.power(x, y, modulo)`` is equal to the " +"value that would be obtained by computing ``(x**y) % modulo`` with unbounded " +"precision, but is computed more efficiently. The exponent of the result is " +"zero, regardless of the exponents of ``x``, ``y`` and ``modulo``. The " +"result is always exact." +msgstr "" + +#: ../Doc/library/decimal.rst:1383 +msgid "Returns a value equal to *x* (rounded), having the exponent of *y*." +msgstr "" + +#: ../Doc/library/decimal.rst:1388 +msgid "Just returns 10, as this is Decimal, :)" +msgstr "" + +#: ../Doc/library/decimal.rst:1393 +msgid "Returns the remainder from integer division." +msgstr "" + +#: ../Doc/library/decimal.rst:1395 +msgid "" +"The sign of the result, if non-zero, is the same as that of the original " +"dividend." +msgstr "" + +#: ../Doc/library/decimal.rst:1401 +msgid "" +"Returns ``x - y * n``, where *n* is the integer nearest the exact value of " +"``x / y`` (if the result is 0 then its sign will be the sign of *x*)." +msgstr "" + +#: ../Doc/library/decimal.rst:1407 +msgid "Returns a rotated copy of *x*, *y* times." +msgstr "" + +#: ../Doc/library/decimal.rst:1412 +msgid "Returns ``True`` if the two operands have the same exponent." +msgstr "" + +#: ../Doc/library/decimal.rst:1417 +msgid "Returns the first operand after adding the second value its exp." +msgstr "" + +#: ../Doc/library/decimal.rst:1422 +msgid "Returns a shifted copy of *x*, *y* times." +msgstr "" + +#: ../Doc/library/decimal.rst:1427 +msgid "Square root of a non-negative number to context precision." +msgstr "" + +#: ../Doc/library/decimal.rst:1432 +msgid "Return the difference between *x* and *y*." +msgstr "" + +#: ../Doc/library/decimal.rst:1446 +msgid "Rounds to an integer." +msgstr "" + +#: ../Doc/library/decimal.rst:1451 +msgid "Converts a number to a string using scientific notation." +msgstr "" + +#: ../Doc/library/decimal.rst:1458 +msgid "Constants" +msgstr "Constantes" + +#: ../Doc/library/decimal.rst:1460 +msgid "" +"The constants in this section are only relevant for the C module. They are " +"also included in the pure Python version for compatibility." +msgstr "" + +#: ../Doc/library/decimal.rst:1464 +msgid "32-bit" +msgstr "32-bit" + +#: ../Doc/library/decimal.rst:1464 +msgid "64-bit" +msgstr "64-bit" + +#: ../Doc/library/decimal.rst:1466 ../Doc/library/decimal.rst:1468 +msgid ":const:`425000000`" +msgstr ":const:`425000000`" + +#: ../Doc/library/decimal.rst:1466 ../Doc/library/decimal.rst:1468 +msgid ":const:`999999999999999999`" +msgstr ":const:`999999999999999999`" + +#: ../Doc/library/decimal.rst:1470 +msgid ":const:`-425000000`" +msgstr ":const:`-425000000`" + +#: ../Doc/library/decimal.rst:1470 +msgid ":const:`-999999999999999999`" +msgstr ":const:`-999999999999999999`" + +#: ../Doc/library/decimal.rst:1472 +msgid ":const:`-849999999`" +msgstr ":const:`-849999999`" + +#: ../Doc/library/decimal.rst:1472 +msgid ":const:`-1999999999999999997`" +msgstr ":const:`-1999999999999999997`" + +#: ../Doc/library/decimal.rst:1478 +msgid "" +"The default value is ``True``. If Python is compiled without threads, the C " +"version automatically disables the expensive thread local context machinery. " +"In this case, the value is ``False``." +msgstr "" + +#: ../Doc/library/decimal.rst:1483 +msgid "Rounding modes" +msgstr "" + +#: ../Doc/library/decimal.rst:1487 +msgid "Round towards :const:`Infinity`." +msgstr "" + +#: ../Doc/library/decimal.rst:1491 +msgid "Round towards zero." +msgstr "" + +#: ../Doc/library/decimal.rst:1495 +msgid "Round towards :const:`-Infinity`." +msgstr "" + +#: ../Doc/library/decimal.rst:1499 +msgid "Round to nearest with ties going towards zero." +msgstr "" + +#: ../Doc/library/decimal.rst:1503 +msgid "Round to nearest with ties going to nearest even integer." +msgstr "" + +#: ../Doc/library/decimal.rst:1507 +msgid "Round to nearest with ties going away from zero." +msgstr "" + +#: ../Doc/library/decimal.rst:1511 +msgid "Round away from zero." +msgstr "" + +#: ../Doc/library/decimal.rst:1515 +msgid "" +"Round away from zero if last digit after rounding towards zero would have " +"been 0 or 5; otherwise round towards zero." +msgstr "" + +#: ../Doc/library/decimal.rst:1522 +msgid "Signals" +msgstr "" + +#: ../Doc/library/decimal.rst:1524 +msgid "" +"Signals represent conditions that arise during computation. Each corresponds " +"to one context flag and one context trap enabler." +msgstr "" + +#: ../Doc/library/decimal.rst:1527 +msgid "" +"The context flag is set whenever the condition is encountered. After the " +"computation, flags may be checked for informational purposes (for instance, " +"to determine whether a computation was exact). After checking the flags, be " +"sure to clear all flags before starting the next computation." +msgstr "" + +#: ../Doc/library/decimal.rst:1532 +msgid "" +"If the context's trap enabler is set for the signal, then the condition " +"causes a Python exception to be raised. For example, if the :class:" +"`DivisionByZero` trap is set, then a :exc:`DivisionByZero` exception is " +"raised upon encountering the condition." +msgstr "" + +#: ../Doc/library/decimal.rst:1540 +msgid "Altered an exponent to fit representation constraints." +msgstr "" + +#: ../Doc/library/decimal.rst:1542 +msgid "" +"Typically, clamping occurs when an exponent falls outside the context's :" +"attr:`Emin` and :attr:`Emax` limits. If possible, the exponent is reduced " +"to fit by adding zeros to the coefficient." +msgstr "" + +#: ../Doc/library/decimal.rst:1549 +msgid "Base class for other signals and a subclass of :exc:`ArithmeticError`." +msgstr "" + +#: ../Doc/library/decimal.rst:1554 +msgid "Signals the division of a non-infinite number by zero." +msgstr "" + +#: ../Doc/library/decimal.rst:1556 +msgid "" +"Can occur with division, modulo division, or when raising a number to a " +"negative power. If this signal is not trapped, returns :const:`Infinity` " +"or :const:`-Infinity` with the sign determined by the inputs to the " +"calculation." +msgstr "" + +#: ../Doc/library/decimal.rst:1563 +msgid "Indicates that rounding occurred and the result is not exact." +msgstr "" + +#: ../Doc/library/decimal.rst:1565 +msgid "" +"Signals when non-zero digits were discarded during rounding. The rounded " +"result is returned. The signal flag or trap is used to detect when results " +"are inexact." +msgstr "" + +#: ../Doc/library/decimal.rst:1572 +msgid "An invalid operation was performed." +msgstr "" + +#: ../Doc/library/decimal.rst:1574 +msgid "" +"Indicates that an operation was requested that does not make sense. If not " +"trapped, returns :const:`NaN`. Possible causes include::" +msgstr "" + +#: ../Doc/library/decimal.rst:1590 +msgid "Numerical overflow." +msgstr "" + +#: ../Doc/library/decimal.rst:1592 +msgid "" +"Indicates the exponent is larger than :attr:`Emax` after rounding has " +"occurred. If not trapped, the result depends on the rounding mode, either " +"pulling inward to the largest representable finite number or rounding " +"outward to :const:`Infinity`. In either case, :class:`Inexact` and :class:" +"`Rounded` are also signaled." +msgstr "" + +#: ../Doc/library/decimal.rst:1601 +msgid "Rounding occurred though possibly no information was lost." +msgstr "" + +#: ../Doc/library/decimal.rst:1603 +msgid "" +"Signaled whenever rounding discards digits; even if those digits are zero " +"(such as rounding :const:`5.00` to :const:`5.0`). If not trapped, returns " +"the result unchanged. This signal is used to detect loss of significant " +"digits." +msgstr "" + +#: ../Doc/library/decimal.rst:1611 +msgid "Exponent was lower than :attr:`Emin` prior to rounding." +msgstr "" + +#: ../Doc/library/decimal.rst:1613 +msgid "" +"Occurs when an operation result is subnormal (the exponent is too small). If " +"not trapped, returns the result unchanged." +msgstr "" + +#: ../Doc/library/decimal.rst:1619 +msgid "Numerical underflow with result rounded to zero." +msgstr "" + +#: ../Doc/library/decimal.rst:1621 +msgid "" +"Occurs when a subnormal result is pushed to zero by rounding. :class:" +"`Inexact` and :class:`Subnormal` are also signaled." +msgstr "" + +#: ../Doc/library/decimal.rst:1627 +msgid "Enable stricter semantics for mixing floats and Decimals." +msgstr "" + +#: ../Doc/library/decimal.rst:1629 +msgid "" +"If the signal is not trapped (default), mixing floats and Decimals is " +"permitted in the :class:`~decimal.Decimal` constructor, :meth:`~decimal." +"Context.create_decimal` and all comparison operators. Both conversion and " +"comparisons are exact. Any occurrence of a mixed operation is silently " +"recorded by setting :exc:`FloatOperation` in the context flags. Explicit " +"conversions with :meth:`~decimal.Decimal.from_float` or :meth:`~decimal." +"Context.create_decimal_from_float` do not set the flag." +msgstr "" + +#: ../Doc/library/decimal.rst:1637 +msgid "" +"Otherwise (the signal is trapped), only equality comparisons and explicit " +"conversions are silent. All other mixed operations raise :exc:" +"`FloatOperation`." +msgstr "" + +#: ../Doc/library/decimal.rst:1641 +msgid "The following table summarizes the hierarchy of signals::" +msgstr "" + +#: ../Doc/library/decimal.rst:1662 +msgid "Floating Point Notes" +msgstr "" + +#: ../Doc/library/decimal.rst:1666 +msgid "Mitigating round-off error with increased precision" +msgstr "" + +#: ../Doc/library/decimal.rst:1668 +msgid "" +"The use of decimal floating point eliminates decimal representation error " +"(making it possible to represent :const:`0.1` exactly); however, some " +"operations can still incur round-off error when non-zero digits exceed the " +"fixed precision." +msgstr "" + +#: ../Doc/library/decimal.rst:1672 +msgid "" +"The effects of round-off error can be amplified by the addition or " +"subtraction of nearly offsetting quantities resulting in loss of " +"significance. Knuth provides two instructive examples where rounded " +"floating point arithmetic with insufficient precision causes the breakdown " +"of the associative and distributive properties of addition:" +msgstr "" + +#: ../Doc/library/decimal.rst:1696 +msgid "" +"The :mod:`decimal` module makes it possible to restore the identities by " +"expanding the precision sufficiently to avoid loss of significance:" +msgstr "" + +#: ../Doc/library/decimal.rst:1716 +msgid "Special values" +msgstr "" + +#: ../Doc/library/decimal.rst:1718 +msgid "" +"The number system for the :mod:`decimal` module provides special values " +"including :const:`NaN`, :const:`sNaN`, :const:`-Infinity`, :const:" +"`Infinity`, and two zeros, :const:`+0` and :const:`-0`." +msgstr "" + +#: ../Doc/library/decimal.rst:1722 +msgid "" +"Infinities can be constructed directly with: ``Decimal('Infinity')``. Also, " +"they can arise from dividing by zero when the :exc:`DivisionByZero` signal " +"is not trapped. Likewise, when the :exc:`Overflow` signal is not trapped, " +"infinity can result from rounding beyond the limits of the largest " +"representable number." +msgstr "" + +#: ../Doc/library/decimal.rst:1727 +msgid "" +"The infinities are signed (affine) and can be used in arithmetic operations " +"where they get treated as very large, indeterminate numbers. For instance, " +"adding a constant to infinity gives another infinite result." +msgstr "" + +#: ../Doc/library/decimal.rst:1731 +msgid "" +"Some operations are indeterminate and return :const:`NaN`, or if the :exc:" +"`InvalidOperation` signal is trapped, raise an exception. For example, " +"``0/0`` returns :const:`NaN` which means \"not a number\". This variety of :" +"const:`NaN` is quiet and, once created, will flow through other computations " +"always resulting in another :const:`NaN`. This behavior can be useful for a " +"series of computations that occasionally have missing inputs --- it allows " +"the calculation to proceed while flagging specific results as invalid." +msgstr "" + +#: ../Doc/library/decimal.rst:1739 +msgid "" +"A variant is :const:`sNaN` which signals rather than remaining quiet after " +"every operation. This is a useful return value when an invalid result needs " +"to interrupt a calculation for special handling." +msgstr "" + +#: ../Doc/library/decimal.rst:1743 +msgid "" +"The behavior of Python's comparison operators can be a little surprising " +"where a :const:`NaN` is involved. A test for equality where one of the " +"operands is a quiet or signaling :const:`NaN` always returns :const:`False` " +"(even when doing ``Decimal('NaN')==Decimal('NaN')``), while a test for " +"inequality always returns :const:`True`. An attempt to compare two Decimals " +"using any of the ``<``, ``<=``, ``>`` or ``>=`` operators will raise the :" +"exc:`InvalidOperation` signal if either operand is a :const:`NaN`, and " +"return :const:`False` if this signal is not trapped. Note that the General " +"Decimal Arithmetic specification does not specify the behavior of direct " +"comparisons; these rules for comparisons involving a :const:`NaN` were taken " +"from the IEEE 854 standard (see Table 3 in section 5.7). To ensure strict " +"standards-compliance, use the :meth:`compare` and :meth:`compare-signal` " +"methods instead." +msgstr "" + +#: ../Doc/library/decimal.rst:1756 +msgid "" +"The signed zeros can result from calculations that underflow. They keep the " +"sign that would have resulted if the calculation had been carried out to " +"greater precision. Since their magnitude is zero, both positive and " +"negative zeros are treated as equal and their sign is informational." +msgstr "" + +#: ../Doc/library/decimal.rst:1761 +msgid "" +"In addition to the two signed zeros which are distinct yet equal, there are " +"various representations of zero with differing precisions yet equivalent in " +"value. This takes a bit of getting used to. For an eye accustomed to " +"normalized floating point representations, it is not immediately obvious " +"that the following calculation returns a value equal to zero:" +msgstr "" + +#: ../Doc/library/decimal.rst:1776 +msgid "Working with threads" +msgstr "" + +#: ../Doc/library/decimal.rst:1778 +msgid "" +"The :func:`getcontext` function accesses a different :class:`Context` object " +"for each thread. Having separate thread contexts means that threads may " +"make changes (such as ``getcontext().prec=10``) without interfering with " +"other threads." +msgstr "" + +#: ../Doc/library/decimal.rst:1782 +msgid "" +"Likewise, the :func:`setcontext` function automatically assigns its target " +"to the current thread." +msgstr "" + +#: ../Doc/library/decimal.rst:1785 +msgid "" +"If :func:`setcontext` has not been called before :func:`getcontext`, then :" +"func:`getcontext` will automatically create a new context for use in the " +"current thread." +msgstr "" + +#: ../Doc/library/decimal.rst:1789 +msgid "" +"The new context is copied from a prototype context called *DefaultContext*. " +"To control the defaults so that each thread will use the same values " +"throughout the application, directly modify the *DefaultContext* object. " +"This should be done *before* any threads are started so that there won't be " +"a race condition between threads calling :func:`getcontext`. For example::" +msgstr "" + +#: ../Doc/library/decimal.rst:1814 +msgid "Recipes" +msgstr "Cas pratiques" + +#: ../Doc/library/decimal.rst:1816 +msgid "" +"Here are a few recipes that serve as utility functions and that demonstrate " +"ways to work with the :class:`Decimal` class::" +msgstr "" + +#: ../Doc/library/decimal.rst:1971 +msgid "Decimal FAQ" +msgstr "FAQ *decimal*" + +#: ../Doc/library/decimal.rst:1973 +msgid "" +"Q. It is cumbersome to type ``decimal.Decimal('1234.5')``. Is there a way " +"to minimize typing when using the interactive interpreter?" +msgstr "" +"Q. C'est fastidieux de taper ``decimal.Decimal('1234.5')``. Y a-t-il un " +"moyen de réduire la frappe quand on utilise l'interpréteur interactif ?" + +#: ../Doc/library/decimal.rst:1976 +msgid "A. Some users abbreviate the constructor to just a single letter:" +msgstr "" +"R. Certains utilisateurs abrègent le constructeur en une seule lettre :" + +#: ../Doc/library/decimal.rst:1982 +msgid "" +"Q. In a fixed-point application with two decimal places, some inputs have " +"many places and need to be rounded. Others are not supposed to have excess " +"digits and need to be validated. What methods should be used?" +msgstr "" + +#: ../Doc/library/decimal.rst:1986 +msgid "" +"A. The :meth:`quantize` method rounds to a fixed number of decimal places. " +"If the :const:`Inexact` trap is set, it is also useful for validation:" +msgstr "" + +#: ../Doc/library/decimal.rst:2004 +msgid "" +"Q. Once I have valid two place inputs, how do I maintain that invariant " +"throughout an application?" +msgstr "" + +#: ../Doc/library/decimal.rst:2007 +msgid "" +"A. Some operations like addition, subtraction, and multiplication by an " +"integer will automatically preserve fixed point. Others operations, like " +"division and non-integer multiplication, will change the number of decimal " +"places and need to be followed-up with a :meth:`quantize` step:" +msgstr "" + +#: ../Doc/library/decimal.rst:2025 +msgid "" +"In developing fixed-point applications, it is convenient to define functions " +"to handle the :meth:`quantize` step:" +msgstr "" + +#: ../Doc/library/decimal.rst:2038 +msgid "" +"Q. There are many ways to express the same value. The numbers :const:" +"`200`, :const:`200.000`, :const:`2E2`, and :const:`.02E+4` all have the same " +"value at various precisions. Is there a way to transform them to a single " +"recognizable canonical value?" +msgstr "" + +#: ../Doc/library/decimal.rst:2043 +msgid "" +"A. The :meth:`normalize` method maps all equivalent values to a single " +"representative:" +msgstr "" + +#: ../Doc/library/decimal.rst:2050 +msgid "" +"Q. Some decimal values always print with exponential notation. Is there a " +"way to get a non-exponential representation?" +msgstr "" + +#: ../Doc/library/decimal.rst:2053 +msgid "" +"A. For some values, exponential notation is the only way to express the " +"number of significant places in the coefficient. For example, expressing :" +"const:`5.0E+3` as :const:`5000` keeps the value constant but cannot show the " +"original's two-place significance." +msgstr "" + +#: ../Doc/library/decimal.rst:2058 +msgid "" +"If an application does not care about tracking significance, it is easy to " +"remove the exponent and trailing zeroes, losing significance, but keeping " +"the value unchanged:" +msgstr "" + +#: ../Doc/library/decimal.rst:2068 +msgid "Q. Is there a way to convert a regular float to a :class:`Decimal`?" +msgstr "" + +#: ../Doc/library/decimal.rst:2070 +msgid "" +"A. Yes, any binary floating point number can be exactly expressed as a " +"Decimal though an exact conversion may take more precision than intuition " +"would suggest:" +msgstr "" + +#: ../Doc/library/decimal.rst:2079 +msgid "" +"Q. Within a complex calculation, how can I make sure that I haven't gotten a " +"spurious result because of insufficient precision or rounding anomalies." +msgstr "" + +#: ../Doc/library/decimal.rst:2082 +msgid "" +"A. The decimal module makes it easy to test results. A best practice is to " +"re-run calculations using greater precision and with various rounding modes. " +"Widely differing results indicate insufficient precision, rounding mode " +"issues, ill-conditioned inputs, or a numerically unstable algorithm." +msgstr "" + +#: ../Doc/library/decimal.rst:2087 +msgid "" +"Q. I noticed that context precision is applied to the results of operations " +"but not to the inputs. Is there anything to watch out for when mixing " +"values of different precisions?" +msgstr "" + +#: ../Doc/library/decimal.rst:2091 +msgid "" +"A. Yes. The principle is that all values are considered to be exact and so " +"is the arithmetic on those values. Only the results are rounded. The " +"advantage for inputs is that \"what you type is what you get\". A " +"disadvantage is that the results can look odd if you forget that the inputs " +"haven't been rounded:" +msgstr "" + +#: ../Doc/library/decimal.rst:2104 +msgid "" +"The solution is either to increase precision or to force rounding of inputs " +"using the unary plus operation:" +msgstr "" + +#: ../Doc/library/decimal.rst:2113 +msgid "" +"Alternatively, inputs can be rounded upon creation using the :meth:`Context." +"create_decimal` method:" +msgstr "" + +#: ../Doc/library/decimal.rst:2119 +msgid "Q. Is the CPython implementation fast for large numbers?" +msgstr "" + +#: ../Doc/library/decimal.rst:2121 +msgid "" +"A. Yes. In the CPython and PyPy3 implementations, the C/CFFI versions of " +"the decimal module integrate the high speed `libmpdec `_ library for arbitrary precision " +"correctly-rounded decimal floating point arithmetic. ``libmpdec`` uses " +"`Karatsuba multiplication `_ for medium-sized numbers and the `Number Theoretic " +"Transform `_ for very " +"large numbers. However, to realize this performance gain, the context needs " +"to be set for unrounded calculations." +msgstr "" diff --git a/library/development.po b/library/development.po new file mode 100644 index 000000000..04f593dc6 --- /dev/null +++ b/library/development.po @@ -0,0 +1,49 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-09-29 15:32+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/development.rst:5 +msgid "Development Tools" +msgstr "Outils de développement" + +#: ../Doc/library/development.rst:7 +msgid "" +"The modules described in this chapter help you write software. For example, " +"the :mod:`pydoc` module takes a module and generates documentation based on " +"the module's contents. The :mod:`doctest` and :mod:`unittest` modules " +"contains frameworks for writing unit tests that automatically exercise code " +"and verify that the expected output is produced. :program:`2to3` can " +"translate Python 2.x source code into valid Python 3.x code." +msgstr "" +"Les modules décrits dans ce chapitre vous aident à écrire des logiciels. " +"Par exemple, le module :mod:`pydoc` prend un module et génère de la " +"documentation basée sur son contenu. Les modules :mod:`doctest` et :mod:" +"`unittest` contiennent des cades applicatifs pour écrire des tests unitaires " +"qui permettent de valider automatiquement le code en vérifiant que chaque " +"résultat attendu est produit. Le programme :program:`2to3` peut traduire du " +"code Python 2.x en Python 3.x." + +#: ../Doc/library/development.rst:14 +msgid "The list of modules described in this chapter is:" +msgstr "La liste des modules documentés dans ce chapitre est :" + +#: ../Doc/library/development.rst:28 +msgid "" +"See also the Python development mode: the :option:`-X` ``dev`` option and :" +"envvar:`PYTHONDEVMODE` environment variable." +msgstr "" +"Regardez aussi le \"mode développement\" de Python : l'option :option:`-X` " +"``dev`` et la variable d'environnement :envvar:`PYTHONDEVMODE`." diff --git a/library/difflib.po b/library/difflib.po new file mode 100644 index 000000000..777976d55 --- /dev/null +++ b/library/difflib.po @@ -0,0 +1,904 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/difflib.rst:2 +msgid ":mod:`difflib` --- Helpers for computing deltas" +msgstr ":mod:`difflib` — Utilitaires pour le calcul des deltas" + +#: ../Doc/library/difflib.rst:11 +msgid "**Source code:** :source:`Lib/difflib.py`" +msgstr "**Code source:** :source:`Lib/difflib.py`" + +#: ../Doc/library/difflib.rst:20 +msgid "" +"This module provides classes and functions for comparing sequences. It can " +"be used for example, for comparing files, and can produce difference " +"information in various formats, including HTML and context and unified " +"diffs. For comparing directories and files, see also, the :mod:`filecmp` " +"module." +msgstr "" + +#: ../Doc/library/difflib.rst:28 +msgid "" +"This is a flexible class for comparing pairs of sequences of any type, so " +"long as the sequence elements are :term:`hashable`. The basic algorithm " +"predates, and is a little fancier than, an algorithm published in the late " +"1980's by Ratcliff and Obershelp under the hyperbolic name \"gestalt pattern " +"matching.\" The idea is to find the longest contiguous matching subsequence " +"that contains no \"junk\" elements; these \"junk\" elements are ones that " +"are uninteresting in some sense, such as blank lines or whitespace. " +"(Handling junk is an extension to the Ratcliff and Obershelp algorithm.) The " +"same idea is then applied recursively to the pieces of the sequences to the " +"left and to the right of the matching subsequence. This does not yield " +"minimal edit sequences, but does tend to yield matches that \"look right\" " +"to people." +msgstr "" +"C'est une classe flexible permettant de comparer des séquences deux à deux " +"de n'importe quel type, tant que les éléments des séquences sont :term:" +"`hachables `. L'algorithme de base est antérieur, et un peu plus " +"sophistiqué, à un algorithme publié à la fin des années 1980 par Ratcliff et " +"Obershelp sous le nom hyperbolique de *gestalt pattern matching*. L'idée est " +"de trouver la plus longue sous-séquence d'appariement contiguë qui ne " +"contient pas d'éléments « indésirables » ; ces éléments « indésirables » " +"sont ceux qui sont inintéressants dans un certain sens, comme les lignes " +"blanches ou les espaces. (Le traitement des éléments indésirables est une " +"extension de l'algorithme de Ratcliff et Obershelp). La même idée est " +"ensuite appliquée récursivement aux morceaux des séquences à gauche et à " +"droite de la sous-séquence correspondante. Cela ne donne pas des séquences " +"de montage minimales, mais tend à donner des correspondances qui « semblent " +"correctes » pour les gens." + +#: ../Doc/library/difflib.rst:40 +msgid "" +"**Timing:** The basic Ratcliff-Obershelp algorithm is cubic time in the " +"worst case and quadratic time in the expected case. :class:`SequenceMatcher` " +"is quadratic time for the worst case and has expected-case behavior " +"dependent in a complicated way on how many elements the sequences have in " +"common; best case time is linear." +msgstr "" +"**Compléxité temporelle :** l'algorithme de base de Ratcliff-Obershelp est " +"de complexité cubique dans le pire cas et de complexité quadratique dans le " +"cas attendu. :class:`SequenceMatcher` est de complexité quadratique pour le " +"pire cas et son comportement dans le cas attendu dépend de façon complexe du " +"nombre d'éléments que les séquences ont en commun ; le temps dans le " +"meilleur cas est linéaire." + +#: ../Doc/library/difflib.rst:46 +msgid "" +"**Automatic junk heuristic:** :class:`SequenceMatcher` supports a heuristic " +"that automatically treats certain sequence items as junk. The heuristic " +"counts how many times each individual item appears in the sequence. If an " +"item's duplicates (after the first one) account for more than 1% of the " +"sequence and the sequence is at least 200 items long, this item is marked as " +"\"popular\" and is treated as junk for the purpose of sequence matching. " +"This heuristic can be turned off by setting the ``autojunk`` argument to " +"``False`` when creating the :class:`SequenceMatcher`." +msgstr "" +"**Heuristique automatique des indésirables:** :class:`SequenceMatcher` " +"utilise une heuristique qui traite automatiquement certains éléments de la " +"séquence comme indésirables. L'heuristique compte combien de fois chaque " +"élément individuel apparaît dans la séquence. Si les doublons d'un élément " +"(après le premier) représentent plus de 1 % de la séquence et que la " +"séquence compte au moins 200 éléments, cet élément est marqué comme " +"« populaire » et est traité comme indésirable aux fins de la comparaison des " +"séquences. Cette heuristique peut être désactivée en réglant l'argument " +"``autojunk`` sur ``False`` lors de la création de la classe :class:" +"`SequenceMatcher`." + +#: ../Doc/library/difflib.rst:54 ../Doc/library/difflib.rst:383 +msgid "The *autojunk* parameter." +msgstr "Le paramètre *autojunk*." + +#: ../Doc/library/difflib.rst:60 +msgid "" +"This is a class for comparing sequences of lines of text, and producing " +"human-readable differences or deltas. Differ uses :class:`SequenceMatcher` " +"both to compare sequences of lines, and to compare sequences of characters " +"within similar (near-matching) lines." +msgstr "" +"Il s'agit d'une classe permettant de comparer des séquences de lignes de " +"texte et de produire des différences ou deltas humainement lisibles. " +"*Differ* utilise :class:`SequenceMatcher` à la fois pour comparer des " +"séquences de lignes, et pour comparer des séquences de caractères dans des " +"lignes similaires (quasi-correspondantes)." + +#: ../Doc/library/difflib.rst:65 +msgid "Each line of a :class:`Differ` delta begins with a two-letter code:" +msgstr "" +"Chaque ligne d'un delta :class:`Differ` commence par un code de deux " +"lettres :" + +#: ../Doc/library/difflib.rst:68 +msgid "Code" +msgstr "Code" + +#: ../Doc/library/difflib.rst:68 ../Doc/library/difflib.rst:490 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/difflib.rst:70 +msgid "``'- '``" +msgstr "``'- '``" + +#: ../Doc/library/difflib.rst:70 +msgid "line unique to sequence 1" +msgstr "ligne n'appartenant qu'à la séquence 1" + +#: ../Doc/library/difflib.rst:72 +msgid "``'+ '``" +msgstr "``'+ '``" + +#: ../Doc/library/difflib.rst:72 +msgid "line unique to sequence 2" +msgstr "ligne n'appartenant qu'à la séquence 2" + +#: ../Doc/library/difflib.rst:74 +msgid "``' '``" +msgstr "``' '``" + +#: ../Doc/library/difflib.rst:74 +msgid "line common to both sequences" +msgstr "ligne commune aux deux séquences" + +#: ../Doc/library/difflib.rst:76 +msgid "``'? '``" +msgstr "``'? '``" + +#: ../Doc/library/difflib.rst:76 +msgid "line not present in either input sequence" +msgstr "ligne non présente dans l'une ou l'autre des séquences d'entrée" + +#: ../Doc/library/difflib.rst:79 +msgid "" +"Lines beginning with '``?``' attempt to guide the eye to intraline " +"differences, and were not present in either input sequence. These lines can " +"be confusing if the sequences contain tab characters." +msgstr "" +"Les lignes commençant par ``'?'`` tentent de guider l'œil vers les " +"différences intralignes, et n'étaient présentes dans aucune des séquences " +"d'entrée. Ces lignes peuvent être déroutantes si les séquences contiennent " +"des caractères de tabulation." + +#: ../Doc/library/difflib.rst:86 +msgid "" +"This class can be used to create an HTML table (or a complete HTML file " +"containing the table) showing a side by side, line by line comparison of " +"text with inter-line and intra-line change highlights. The table can be " +"generated in either full or contextual difference mode." +msgstr "" +"Cette classe peut être utilisée pour créer un tableau HTML (ou un fichier " +"HTML complet contenant le tableau) montrant une comparaison côte à côte, " +"ligne par ligne, du texte avec les changements inter-lignes et intralignes. " +"Le tableau peut être généré en mode de différence complet ou contextuel." + +#: ../Doc/library/difflib.rst:91 +msgid "The constructor for this class is:" +msgstr "Le constructeur pour cette classe est :" + +#: ../Doc/library/difflib.rst:96 +msgid "Initializes instance of :class:`HtmlDiff`." +msgstr "Initialise l'instance de :class:`HtmlDiff`." + +#: ../Doc/library/difflib.rst:98 +msgid "" +"*tabsize* is an optional keyword argument to specify tab stop spacing and " +"defaults to ``8``." +msgstr "" +"*tabsize* est un mot-clé optionnel pour spécifier l'espacement des " +"tabulations et sa valeur par défaut est ``8``." + +#: ../Doc/library/difflib.rst:101 +msgid "" +"*wrapcolumn* is an optional keyword to specify column number where lines are " +"broken and wrapped, defaults to ``None`` where lines are not wrapped." +msgstr "" +"*wrapcolumn* est un mot-clé optionnel pour spécifier le numéro de la colonne " +"où les lignes sont coupées pour être ré-agencées, la valeur par défaut est " +"``None`` lorsque les lignes ne sont pas ré-agencées." + +#: ../Doc/library/difflib.rst:104 +msgid "" +"*linejunk* and *charjunk* are optional keyword arguments passed into :func:" +"`ndiff` (used by :class:`HtmlDiff` to generate the side by side HTML " +"differences). See :func:`ndiff` documentation for argument default values " +"and descriptions." +msgstr "" +"*linejunk* et *charjunk* sont des arguments de mots-clés optionnels passés " +"dans :func:`ndiff` (utilisés par :class:`HtmlDiff` pour générer les " +"différences HTML côte à côte). Voir la documentation de :func:`ndiff` pour " +"les valeurs par défaut des arguments et les descriptions." + +#: ../Doc/library/difflib.rst:108 +msgid "The following methods are public:" +msgstr "Les méthodes suivantes sont publiques :" + +#: ../Doc/library/difflib.rst:113 +msgid "" +"Compares *fromlines* and *tolines* (lists of strings) and returns a string " +"which is a complete HTML file containing a table showing line by line " +"differences with inter-line and intra-line changes highlighted." +msgstr "" +"Compare *fromlines* et *tolines* (listes de chaînes de caractères) et " +"renvoie une chaîne de caractères qui est un fichier HTML complet contenant " +"un tableau montrant les différences ligne par ligne avec les changements " +"inter-lignes et intralignes mis en évidence." + +#: ../Doc/library/difflib.rst:117 +msgid "" +"*fromdesc* and *todesc* are optional keyword arguments to specify from/to " +"file column header strings (both default to an empty string)." +msgstr "" +"*fromdesc* et *todesc* sont des arguments mot-clé optionnels pour spécifier " +"les chaînes d'en-tête des colonnes *from/to* du fichier (les deux sont des " +"chaînes vides par défaut)." + +#: ../Doc/library/difflib.rst:120 +msgid "" +"*context* and *numlines* are both optional keyword arguments. Set *context* " +"to ``True`` when contextual differences are to be shown, else the default is " +"``False`` to show the full files. *numlines* defaults to ``5``. When " +"*context* is ``True`` *numlines* controls the number of context lines which " +"surround the difference highlights. When *context* is ``False`` *numlines* " +"controls the number of lines which are shown before a difference highlight " +"when using the \"next\" hyperlinks (setting to zero would cause the \"next\" " +"hyperlinks to place the next difference highlight at the top of the browser " +"without any leading context)." +msgstr "" +"*context* et *numlines* sont tous deux des arguments mots-clés facultatifs. " +"Mettre *context* à ``True`` lorsque les différences contextuelles doivent " +"être affichées, sinon la valeur par défaut est ``False`` pour afficher les " +"fichiers complets. Les *numlines* ont pour valeur par défaut ``5``. Lorsque " +"*context* est `True``, *numlines* contrôle le nombre de lignes de contexte " +"qui entourent les différences mise en évidence. Lorsque *context* est " +"``False``, *numlines* contrôle le nombre de lignes qui sont affichées avant " +"un surlignage de différence lors de l'utilisation des hyperliens " +"« suivants » (un réglage à zéro ferait en sorte que les hyperliens " +"« suivants » placeraient le surlignage de différence suivant en haut du " +"navigateur sans aucun contexte introductif)." + +#: ../Doc/library/difflib.rst:130 +msgid "" +"*charset* keyword-only argument was added. The default charset of HTML " +"document changed from ``'ISO-8859-1'`` to ``'utf-8'``." +msgstr "" +"l'argument mot-clé *charset* a été ajouté. Le jeu de caractères par défaut " +"du document HTML est passé de ``'ISO-8859-1'`` à ``'utf-8'``." + +#: ../Doc/library/difflib.rst:136 +msgid "" +"Compares *fromlines* and *tolines* (lists of strings) and returns a string " +"which is a complete HTML table showing line by line differences with inter-" +"line and intra-line changes highlighted." +msgstr "" +"Compare *fromlines* et *tolines* (listes de chaînes) et renvoie une chaîne " +"qui est un tableau HTML complet montrant les différences ligne par ligne " +"avec les changements inter-lignes et intralignes mis en évidence." + +#: ../Doc/library/difflib.rst:140 +msgid "" +"The arguments for this method are the same as those for the :meth:" +"`make_file` method." +msgstr "" +"Les arguments pour cette méthode sont les mêmes que ceux de la méthode :meth:" +"`make_file`." + +#: ../Doc/library/difflib.rst:143 +msgid "" +":file:`Tools/scripts/diff.py` is a command-line front-end to this class and " +"contains a good example of its use." +msgstr "" +":file:`Tools/scripts/diff.py` est un frontal en ligne de commande de cette " +"classe et contient un bon exemple de son utilisation." + +#: ../Doc/library/difflib.rst:149 +msgid "" +"Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` " +"generating the delta lines) in context diff format." +msgstr "" +"Compare *a* et *b* (listes de chaînes de caractères) ; renvoie un delta (un :" +"term:`generateur ` générant les lignes delta) dans un format de " +"différence de contexte." + +#: ../Doc/library/difflib.rst:152 +msgid "" +"Context diffs are a compact way of showing just the lines that have changed " +"plus a few lines of context. The changes are shown in a before/after " +"style. The number of context lines is set by *n* which defaults to three." +msgstr "" + +#: ../Doc/library/difflib.rst:156 +msgid "" +"By default, the diff control lines (those with ``***`` or ``---``) are " +"created with a trailing newline. This is helpful so that inputs created " +"from :func:`io.IOBase.readlines` result in diffs that are suitable for use " +"with :func:`io.IOBase.writelines` since both the inputs and outputs have " +"trailing newlines." +msgstr "" +"Par défaut, les lignes de contrôle de la différence (celles avec ``***`` ou " +"``---``) sont créées avec un saut de ligne à la fin. Ceci est utile pour que " +"les entrées créées à partir de :func:`io.IOBase.readlines` résultent en des " +"différences qui peuvent être utilisées avec :func:`io.IOBase.writelines` " +"puisque les entrées et les sorties ont des nouvelles lignes de fin." + +#: ../Doc/library/difflib.rst:162 ../Doc/library/difflib.rst:293 +msgid "" +"For inputs that do not have trailing newlines, set the *lineterm* argument " +"to ``\"\"`` so that the output will be uniformly newline free." +msgstr "" +"Pour les entrées qui n'ont pas de retour à la ligne, mettre l'argument " +"*lineterm* à ``\"\"`` afin que la sortie soit uniformément sans retour à la " +"ligne." + +#: ../Doc/library/difflib.rst:165 ../Doc/library/difflib.rst:296 +msgid "" +"The context diff format normally has a header for filenames and modification " +"times. Any or all of these may be specified using strings for *fromfile*, " +"*tofile*, *fromfiledate*, and *tofiledate*. The modification times are " +"normally expressed in the ISO 8601 format. If not specified, the strings " +"default to blanks." +msgstr "" +"Le format de contexte de différence comporte normalement un en-tête pour les " +"noms de fichiers et les heures de modification. Tout ou partie de ces " +"éléments peuvent être spécifiés en utilisant les chaînes de caractères " +"*fromfile*, *tofile*, *fromfiledate* et *tofiledate*. Les heures de " +"modification sont normalement exprimées dans le format ISO 8601. Si elles ne " +"sont pas spécifiées, les chaînes de caractères sont par défaut vierges." + +#: ../Doc/library/difflib.rst:188 ../Doc/library/difflib.rst:317 +msgid "See :ref:`difflib-interface` for a more detailed example." +msgstr "" +"Voir :ref:`une interface de ligne de commandes pour difflib ` pour un exemple plus détaillé." + +#: ../Doc/library/difflib.rst:193 +msgid "" +"Return a list of the best \"good enough\" matches. *word* is a sequence for " +"which close matches are desired (typically a string), and *possibilities* is " +"a list of sequences against which to match *word* (typically a list of " +"strings)." +msgstr "" + +#: ../Doc/library/difflib.rst:197 +msgid "" +"Optional argument *n* (default ``3``) is the maximum number of close matches " +"to return; *n* must be greater than ``0``." +msgstr "" + +#: ../Doc/library/difflib.rst:200 +msgid "" +"Optional argument *cutoff* (default ``0.6``) is a float in the range [0, 1]. " +"Possibilities that don't score at least that similar to *word* are ignored." +msgstr "" + +#: ../Doc/library/difflib.rst:203 +msgid "" +"The best (no more than *n*) matches among the possibilities are returned in " +"a list, sorted by similarity score, most similar first." +msgstr "" + +#: ../Doc/library/difflib.rst:219 +msgid "" +"Compare *a* and *b* (lists of strings); return a :class:`Differ`\\ -style " +"delta (a :term:`generator` generating the delta lines)." +msgstr "" + +#: ../Doc/library/difflib.rst:222 +msgid "" +"Optional keyword parameters *linejunk* and *charjunk* are filtering " +"functions (or ``None``):" +msgstr "" + +#: ../Doc/library/difflib.rst:225 +msgid "" +"*linejunk*: A function that accepts a single string argument, and returns " +"true if the string is junk, or false if not. The default is ``None``. There " +"is also a module-level function :func:`IS_LINE_JUNK`, which filters out " +"lines without visible characters, except for at most one pound character " +"(``'#'``) -- however the underlying :class:`SequenceMatcher` class does a " +"dynamic analysis of which lines are so frequent as to constitute noise, and " +"this usually works better than using this function." +msgstr "" + +#: ../Doc/library/difflib.rst:233 +msgid "" +"*charjunk*: A function that accepts a character (a string of length 1), and " +"returns if the character is junk, or false if not. The default is module-" +"level function :func:`IS_CHARACTER_JUNK`, which filters out whitespace " +"characters (a blank or tab; it's a bad idea to include newline in this!)." +msgstr "" + +#: ../Doc/library/difflib.rst:238 +msgid "" +":file:`Tools/scripts/ndiff.py` is a command-line front-end to this function." +msgstr "" + +#: ../Doc/library/difflib.rst:256 +msgid "Return one of the two sequences that generated a delta." +msgstr "" + +#: ../Doc/library/difflib.rst:258 +msgid "" +"Given a *sequence* produced by :meth:`Differ.compare` or :func:`ndiff`, " +"extract lines originating from file 1 or 2 (parameter *which*), stripping " +"off line prefixes." +msgstr "" + +#: ../Doc/library/difflib.rst:262 +msgid "Example:" +msgstr "Exemple :" + +#: ../Doc/library/difflib.rst:279 +msgid "" +"Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` " +"generating the delta lines) in unified diff format." +msgstr "" + +#: ../Doc/library/difflib.rst:282 +msgid "" +"Unified diffs are a compact way of showing just the lines that have changed " +"plus a few lines of context. The changes are shown in an inline style " +"(instead of separate before/after blocks). The number of context lines is " +"set by *n* which defaults to three." +msgstr "" + +#: ../Doc/library/difflib.rst:287 +msgid "" +"By default, the diff control lines (those with ``---``, ``+++``, or ``@@``) " +"are created with a trailing newline. This is helpful so that inputs created " +"from :func:`io.IOBase.readlines` result in diffs that are suitable for use " +"with :func:`io.IOBase.writelines` since both the inputs and outputs have " +"trailing newlines." +msgstr "" + +#: ../Doc/library/difflib.rst:321 +msgid "" +"Compare *a* and *b* (lists of bytes objects) using *dfunc*; yield a sequence " +"of delta lines (also bytes) in the format returned by *dfunc*. *dfunc* must " +"be a callable, typically either :func:`unified_diff` or :func:`context_diff`." +msgstr "" + +#: ../Doc/library/difflib.rst:326 +msgid "" +"Allows you to compare data with unknown or inconsistent encoding. All inputs " +"except *n* must be bytes objects, not str. Works by losslessly converting " +"all inputs (except *n*) to str, and calling ``dfunc(a, b, fromfile, tofile, " +"fromfiledate, tofiledate, n, lineterm)``. The output of *dfunc* is then " +"converted back to bytes, so the delta lines that you receive have the same " +"unknown/inconsistent encodings as *a* and *b*." +msgstr "" + +#: ../Doc/library/difflib.rst:337 +msgid "" +"Return true for ignorable lines. The line *line* is ignorable if *line* is " +"blank or contains a single ``'#'``, otherwise it is not ignorable. Used as " +"a default for parameter *linejunk* in :func:`ndiff` in older versions." +msgstr "" + +#: ../Doc/library/difflib.rst:344 +msgid "" +"Return true for ignorable characters. The character *ch* is ignorable if " +"*ch* is a space or tab, otherwise it is not ignorable. Used as a default " +"for parameter *charjunk* in :func:`ndiff`." +msgstr "" + +#: ../Doc/library/difflib.rst:352 +msgid "" +"`Pattern Matching: The Gestalt Approach `_" +msgstr "" + +#: ../Doc/library/difflib.rst:352 +msgid "" +"Discussion of a similar algorithm by John W. Ratcliff and D. E. Metzener. " +"This was published in `Dr. Dobb's Journal `_ in " +"July, 1988." +msgstr "" + +#: ../Doc/library/difflib.rst:359 +msgid "SequenceMatcher Objects" +msgstr "" + +#: ../Doc/library/difflib.rst:361 +msgid "The :class:`SequenceMatcher` class has this constructor:" +msgstr "" + +#: ../Doc/library/difflib.rst:366 +msgid "" +"Optional argument *isjunk* must be ``None`` (the default) or a one-argument " +"function that takes a sequence element and returns true if and only if the " +"element is \"junk\" and should be ignored. Passing ``None`` for *isjunk* is " +"equivalent to passing ``lambda x: 0``; in other words, no elements are " +"ignored. For example, pass::" +msgstr "" + +#: ../Doc/library/difflib.rst:374 +msgid "" +"if you're comparing lines as sequences of characters, and don't want to " +"synch up on blanks or hard tabs." +msgstr "" + +#: ../Doc/library/difflib.rst:377 +msgid "" +"The optional arguments *a* and *b* are sequences to be compared; both " +"default to empty strings. The elements of both sequences must be :term:" +"`hashable`." +msgstr "" + +#: ../Doc/library/difflib.rst:380 +msgid "" +"The optional argument *autojunk* can be used to disable the automatic junk " +"heuristic." +msgstr "" + +#: ../Doc/library/difflib.rst:386 +msgid "" +"SequenceMatcher objects get three data attributes: *bjunk* is the set of " +"elements of *b* for which *isjunk* is ``True``; *bpopular* is the set of non-" +"junk elements considered popular by the heuristic (if it is not disabled); " +"*b2j* is a dict mapping the remaining elements of *b* to a list of positions " +"where they occur. All three are reset whenever *b* is reset with :meth:" +"`set_seqs` or :meth:`set_seq2`." +msgstr "" + +#: ../Doc/library/difflib.rst:393 +msgid "The *bjunk* and *bpopular* attributes." +msgstr "" + +#: ../Doc/library/difflib.rst:396 +msgid ":class:`SequenceMatcher` objects have the following methods:" +msgstr "" + +#: ../Doc/library/difflib.rst:400 +msgid "Set the two sequences to be compared." +msgstr "" + +#: ../Doc/library/difflib.rst:402 +msgid "" +":class:`SequenceMatcher` computes and caches detailed information about the " +"second sequence, so if you want to compare one sequence against many " +"sequences, use :meth:`set_seq2` to set the commonly used sequence once and " +"call :meth:`set_seq1` repeatedly, once for each of the other sequences." +msgstr "" + +#: ../Doc/library/difflib.rst:410 +msgid "" +"Set the first sequence to be compared. The second sequence to be compared " +"is not changed." +msgstr "" + +#: ../Doc/library/difflib.rst:416 +msgid "" +"Set the second sequence to be compared. The first sequence to be compared " +"is not changed." +msgstr "" + +#: ../Doc/library/difflib.rst:422 +msgid "Find longest matching block in ``a[alo:ahi]`` and ``b[blo:bhi]``." +msgstr "" + +#: ../Doc/library/difflib.rst:424 +msgid "" +"If *isjunk* was omitted or ``None``, :meth:`find_longest_match` returns " +"``(i, j, k)`` such that ``a[i:i+k]`` is equal to ``b[j:j+k]``, where ``alo " +"<= i <= i+k <= ahi`` and ``blo <= j <= j+k <= bhi``. For all ``(i', j', " +"k')`` meeting those conditions, the additional conditions ``k >= k'``, ``i " +"<= i'``, and if ``i == i'``, ``j <= j'`` are also met. In other words, of " +"all maximal matching blocks, return one that starts earliest in *a*, and of " +"all those maximal matching blocks that start earliest in *a*, return the one " +"that starts earliest in *b*." +msgstr "" + +#: ../Doc/library/difflib.rst:437 +msgid "" +"If *isjunk* was provided, first the longest matching block is determined as " +"above, but with the additional restriction that no junk element appears in " +"the block. Then that block is extended as far as possible by matching " +"(only) junk elements on both sides. So the resulting block never matches on " +"junk except as identical junk happens to be adjacent to an interesting match." +msgstr "" + +#: ../Doc/library/difflib.rst:444 +msgid "" +"Here's the same example as before, but considering blanks to be junk. That " +"prevents ``' abcd'`` from matching the ``' abcd'`` at the tail end of the " +"second sequence directly. Instead only the ``'abcd'`` can match, and " +"matches the leftmost ``'abcd'`` in the second sequence:" +msgstr "" + +#: ../Doc/library/difflib.rst:453 +msgid "If no blocks match, this returns ``(alo, blo, 0)``." +msgstr "" + +#: ../Doc/library/difflib.rst:455 +msgid "This method returns a :term:`named tuple` ``Match(a, b, size)``." +msgstr "" + +#: ../Doc/library/difflib.rst:460 +msgid "" +"Return list of triples describing non-overlapping matching subsequences. " +"Each triple is of the form ``(i, j, n)``, and means that ``a[i:i+n] == b[j:j" +"+n]``. The triples are monotonically increasing in *i* and *j*." +msgstr "" + +#: ../Doc/library/difflib.rst:465 +msgid "" +"The last triple is a dummy, and has the value ``(len(a), len(b), 0)``. It " +"is the only triple with ``n == 0``. If ``(i, j, n)`` and ``(i', j', n')`` " +"are adjacent triples in the list, and the second is not the last triple in " +"the list, then ``i+n < i'`` or ``j+n < j'``; in other words, adjacent " +"triples always describe non-adjacent equal blocks." +msgstr "" + +#: ../Doc/library/difflib.rst:482 +msgid "" +"Return list of 5-tuples describing how to turn *a* into *b*. Each tuple is " +"of the form ``(tag, i1, i2, j1, j2)``. The first tuple has ``i1 == j1 == " +"0``, and remaining tuples have *i1* equal to the *i2* from the preceding " +"tuple, and, likewise, *j1* equal to the previous *j2*." +msgstr "" + +#: ../Doc/library/difflib.rst:487 +msgid "The *tag* values are strings, with these meanings:" +msgstr "" + +#: ../Doc/library/difflib.rst:490 +msgid "Value" +msgstr "Valeur" + +#: ../Doc/library/difflib.rst:492 +msgid "``'replace'``" +msgstr "``'replace'``" + +#: ../Doc/library/difflib.rst:492 +msgid "``a[i1:i2]`` should be replaced by ``b[j1:j2]``." +msgstr "" + +#: ../Doc/library/difflib.rst:495 +msgid "``'delete'``" +msgstr "``'delete'``" + +#: ../Doc/library/difflib.rst:495 +msgid "``a[i1:i2]`` should be deleted. Note that ``j1 == j2`` in this case." +msgstr "" + +#: ../Doc/library/difflib.rst:498 +msgid "``'insert'``" +msgstr "``'insert'``" + +#: ../Doc/library/difflib.rst:498 +msgid "" +"``b[j1:j2]`` should be inserted at ``a[i1:i1]``. Note that ``i1 == i2`` in " +"this case." +msgstr "" + +#: ../Doc/library/difflib.rst:502 +msgid "``'equal'``" +msgstr "``'equal'``" + +#: ../Doc/library/difflib.rst:502 +msgid "``a[i1:i2] == b[j1:j2]`` (the sub-sequences are equal)." +msgstr "" + +#: ../Doc/library/difflib.rst:506 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/library/difflib.rst:523 +msgid "Return a :term:`generator` of groups with up to *n* lines of context." +msgstr "" + +#: ../Doc/library/difflib.rst:525 +msgid "" +"Starting with the groups returned by :meth:`get_opcodes`, this method splits " +"out smaller change clusters and eliminates intervening ranges which have no " +"changes." +msgstr "" + +#: ../Doc/library/difflib.rst:529 +msgid "The groups are returned in the same format as :meth:`get_opcodes`." +msgstr "" + +#: ../Doc/library/difflib.rst:534 +msgid "" +"Return a measure of the sequences' similarity as a float in the range [0, 1]." +msgstr "" + +#: ../Doc/library/difflib.rst:537 +msgid "" +"Where T is the total number of elements in both sequences, and M is the " +"number of matches, this is 2.0\\*M / T. Note that this is ``1.0`` if the " +"sequences are identical, and ``0.0`` if they have nothing in common." +msgstr "" + +#: ../Doc/library/difflib.rst:541 +msgid "" +"This is expensive to compute if :meth:`get_matching_blocks` or :meth:" +"`get_opcodes` hasn't already been called, in which case you may want to try :" +"meth:`quick_ratio` or :meth:`real_quick_ratio` first to get an upper bound." +msgstr "" + +#: ../Doc/library/difflib.rst:549 +msgid "Return an upper bound on :meth:`ratio` relatively quickly." +msgstr "" + +#: ../Doc/library/difflib.rst:554 +msgid "Return an upper bound on :meth:`ratio` very quickly." +msgstr "" + +#: ../Doc/library/difflib.rst:557 +msgid "" +"The three methods that return the ratio of matching to total characters can " +"give different results due to differing levels of approximation, although :" +"meth:`quick_ratio` and :meth:`real_quick_ratio` are always at least as large " +"as :meth:`ratio`:" +msgstr "" + +#: ../Doc/library/difflib.rst:574 +msgid "SequenceMatcher Examples" +msgstr "" + +#: ../Doc/library/difflib.rst:576 +msgid "This example compares two strings, considering blanks to be \"junk\":" +msgstr "" + +#: ../Doc/library/difflib.rst:582 +msgid "" +":meth:`ratio` returns a float in [0, 1], measuring the similarity of the " +"sequences. As a rule of thumb, a :meth:`ratio` value over 0.6 means the " +"sequences are close matches:" +msgstr "" + +#: ../Doc/library/difflib.rst:589 +msgid "" +"If you're only interested in where the sequences match, :meth:" +"`get_matching_blocks` is handy:" +msgstr "" + +#: ../Doc/library/difflib.rst:598 +msgid "" +"Note that the last tuple returned by :meth:`get_matching_blocks` is always a " +"dummy, ``(len(a), len(b), 0)``, and this is the only case in which the last " +"tuple element (number of elements matched) is ``0``." +msgstr "" + +#: ../Doc/library/difflib.rst:602 +msgid "" +"If you want to know how to change the first sequence into the second, use :" +"meth:`get_opcodes`:" +msgstr "" + +#: ../Doc/library/difflib.rst:613 +msgid "" +"The :func:`get_close_matches` function in this module which shows how simple " +"code building on :class:`SequenceMatcher` can be used to do useful work." +msgstr "" + +#: ../Doc/library/difflib.rst:617 +msgid "" +"`Simple version control recipe `_ for a small application built with :class:`SequenceMatcher`." +msgstr "" + +#: ../Doc/library/difflib.rst:625 +msgid "Differ Objects" +msgstr "" + +#: ../Doc/library/difflib.rst:627 +msgid "" +"Note that :class:`Differ`\\ -generated deltas make no claim to be " +"**minimal** diffs. To the contrary, minimal diffs are often counter-" +"intuitive, because they synch up anywhere possible, sometimes accidental " +"matches 100 pages apart. Restricting synch points to contiguous matches " +"preserves some notion of locality, at the occasional cost of producing a " +"longer diff." +msgstr "" + +#: ../Doc/library/difflib.rst:633 +msgid "The :class:`Differ` class has this constructor:" +msgstr "" + +#: ../Doc/library/difflib.rst:638 +msgid "" +"Optional keyword parameters *linejunk* and *charjunk* are for filter " +"functions (or ``None``):" +msgstr "" + +#: ../Doc/library/difflib.rst:641 +msgid "" +"*linejunk*: A function that accepts a single string argument, and returns " +"true if the string is junk. The default is ``None``, meaning that no line " +"is considered junk." +msgstr "" + +#: ../Doc/library/difflib.rst:645 +msgid "" +"*charjunk*: A function that accepts a single character argument (a string of " +"length 1), and returns true if the character is junk. The default is " +"``None``, meaning that no character is considered junk." +msgstr "" + +#: ../Doc/library/difflib.rst:649 +msgid "" +"These junk-filtering functions speed up matching to find differences and do " +"not cause any differing lines or characters to be ignored. Read the " +"description of the :meth:`~SequenceMatcher.find_longest_match` method's " +"*isjunk* parameter for an explanation." +msgstr "" + +#: ../Doc/library/difflib.rst:655 +msgid "" +":class:`Differ` objects are used (deltas generated) via a single method:" +msgstr "" + +#: ../Doc/library/difflib.rst:660 +msgid "" +"Compare two sequences of lines, and generate the delta (a sequence of lines)." +msgstr "" + +#: ../Doc/library/difflib.rst:662 +msgid "" +"Each sequence must contain individual single-line strings ending with " +"newlines. Such sequences can be obtained from the :meth:`~io.IOBase." +"readlines` method of file-like objects. The delta generated also consists " +"of newline-terminated strings, ready to be printed as-is via the :meth:`~io." +"IOBase.writelines` method of a file-like object." +msgstr "" + +#: ../Doc/library/difflib.rst:673 +msgid "Differ Example" +msgstr "" + +#: ../Doc/library/difflib.rst:675 +msgid "" +"This example compares two texts. First we set up the texts, sequences of " +"individual single-line strings ending with newlines (such sequences can also " +"be obtained from the :meth:`~io.BaseIO.readlines` method of file-like " +"objects):" +msgstr "" + +#: ../Doc/library/difflib.rst:694 +msgid "Next we instantiate a Differ object:" +msgstr "" + +#: ../Doc/library/difflib.rst:698 +msgid "" +"Note that when instantiating a :class:`Differ` object we may pass functions " +"to filter out line and character \"junk.\" See the :meth:`Differ` " +"constructor for details." +msgstr "" + +#: ../Doc/library/difflib.rst:702 +msgid "Finally, we compare the two:" +msgstr "" + +#: ../Doc/library/difflib.rst:706 +msgid "``result`` is a list of strings, so let's pretty-print it:" +msgstr "" + +#: ../Doc/library/difflib.rst:721 +msgid "As a single multi-line string it looks like this:" +msgstr "" + +#: ../Doc/library/difflib.rst:740 +msgid "A command-line interface to difflib" +msgstr "" + +#: ../Doc/library/difflib.rst:742 +msgid "" +"This example shows how to use difflib to create a ``diff``-like utility. It " +"is also contained in the Python source distribution, as :file:`Tools/scripts/" +"diff.py`." +msgstr "" diff --git a/library/dis.po b/library/dis.po new file mode 100644 index 000000000..1141b4328 --- /dev/null +++ b/library/dis.po @@ -0,0 +1,1347 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2019-07-18 21:03+0200\n" +"Last-Translator: Aya Keddam \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/dis.rst:2 +msgid ":mod:`dis` --- Disassembler for Python bytecode" +msgstr ":mod:`dis` – Désassembleur pour le code intermédiaire de Python" + +#: ../Doc/library/dis.rst:7 +msgid "**Source code:** :source:`Lib/dis.py`" +msgstr "**Code source :** :source:`Lib/dis.py`" + +#: ../Doc/library/dis.rst:11 +msgid "" +"The :mod:`dis` module supports the analysis of CPython :term:`bytecode` by " +"disassembling it. The CPython bytecode which this module takes as an input " +"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 "" +"Bytecode is an implementation detail of the CPython interpreter. No " +"guarantees are made that bytecode will not be added, removed, or changed " +"between versions of Python. Use of this module should not be considered to " +"work across Python VMs or Python releases." +msgstr "" +"Le code intermédiaire est un détail d'implémentation de l'interpréteur " +"CPython. Il n'y a pas de garantie que le code intermédiaire sera ajouté, " +"retiré, ou modifié dans les différentes versions de Python. L'utilisation de " +"cette bibliothèque ne fonctionne pas nécessairement sur les machines " +"virtuelles Python ni les différentes versions de Python." + +#: ../Doc/library/dis.rst:23 +msgid "" +"Use 2 bytes for each instruction. Previously the number of bytes varied by " +"instruction." +msgstr "" +"Utilisez 2 bits pour chaque instruction. Avant, le nombre de bits variait " +"par instruction." + +#: ../Doc/library/dis.rst:28 +msgid "Example: Given the function :func:`myfunc`::" +msgstr "Exemple : Etant donné la fonction :func:`myfunc` ::" + +#: ../Doc/library/dis.rst:33 +msgid "" +"the following command can be used to display the disassembly of :func:" +"`myfunc`::" +msgstr "" +"la commande suivante peut-être utilisé pour afficher le désassemblage de :" +"func:`myfunc` ::" + +#: ../Doc/library/dis.rst:42 +msgid "(The \"2\" is a line number)." +msgstr "(Le \"2\" est un numéro de ligne)." + +#: ../Doc/library/dis.rst:45 +msgid "Bytecode analysis" +msgstr "Analyse du code intermédiaire" + +#: ../Doc/library/dis.rst:49 +msgid "" +"The bytecode analysis API allows pieces of Python code to be wrapped in a :" +"class:`Bytecode` object that provides easy access to details of the compiled " +"code." +msgstr "" +"L'analyse de l'*API* code intermédiaire permet de rassembler des blocs de " +"code en Python dans une classe :class:`Bytecode`, qui permet un accès facile " +"aux détails du code compilé." + +#: ../Doc/library/dis.rst:56 +msgid "" +"Analyse the bytecode corresponding to a function, generator, asynchronous " +"generator, coroutine, method, string of source code, or a code object (as " +"returned by :func:`compile`)." +msgstr "" +"Analyse le code intermédiaire correspondant à une fonction, un générateur, " +"un générateur asynchrone, une coroutine, une méthode, une chaîne de " +"caractères du code source, ou bien une classe (comme retourne la fonction :" +"func:`compile`)." + +#: ../Doc/library/dis.rst:60 +msgid "" +"This is a convenience wrapper around many of the functions listed below, " +"most notably :func:`get_instructions`, as iterating over a :class:`Bytecode` " +"instance yields the bytecode operations as :class:`Instruction` instances." +msgstr "" +"Ceci est *wrapper* sur plusieurs fonctions de la liste ci-dessous, " +"notamment :func:`get_instructions`, étant donné qu'une itération sur une " +"instance de la classe :class:`Bytecode` rend les opérations du code " +"intermédiaire des instances de :class:`Instruction`." + +#: ../Doc/library/dis.rst:64 ../Doc/library/dis.rst:225 +msgid "" +"If *first_line* is not ``None``, it indicates the line number that should be " +"reported for the first source line in the disassembled code. Otherwise, the " +"source line information (if any) is taken directly from the disassembled " +"code object." +msgstr "" +"Si *first_line* ne vaut pas ``None``, elle indique le nombre de la ligne qui " +"doit être considérée comme première ligne source dans le code désassemblé. " +"Autrement, les informations sur la ligne source sont prises directement à " +"partir de la classe du code désassemblé." + +#: ../Doc/library/dis.rst:69 +msgid "" +"If *current_offset* is not ``None``, it refers to an instruction offset in " +"the disassembled code. Setting this means :meth:`.dis` will display a " +"\"current instruction\" marker against the specified opcode." +msgstr "" +"Si la valeur de *current_offset* est différente de ``None``, c'est une " +"référence à un offset d'une instruction dans le code désassemblé. Cela veut " +"dire que :meth:`.dis` va générer un marqueur de \" l'instruction en cours\" " +"contre le code d'opération donné." + +#: ../Doc/library/dis.rst:75 +msgid "" +"Construct a :class:`Bytecode` instance from the given traceback, setting " +"*current_offset* to the instruction responsible for the exception." +msgstr "" +"Construisez une instance :class:`Bytecode` à partir de la trace d'appel, en " +"mettant *current_offet* à l'instruction responsable de l'exception." + +#: ../Doc/library/dis.rst:80 +msgid "The compiled code object." +msgstr "Le code compilé objet." + +#: ../Doc/library/dis.rst:84 +msgid "The first source line of the code object (if available)" +msgstr "La première ligne source du code objet (si disponible)" + +#: ../Doc/library/dis.rst:88 +msgid "" +"Return a formatted view of the bytecode operations (the same as printed by :" +"func:`dis.dis`, but returned as a multi-line string)." +msgstr "" +"Retourne une vue formatée des opérations du code intermédiaire (la même que " +"celle envoyée par :func:`dis.dis`, mais comme une chaîne de caractères de " +"plusieurs lignes )." + +#: ../Doc/library/dis.rst:93 +msgid "" +"Return a formatted multi-line string with detailed information about the " +"code object, like :func:`code_info`." +msgstr "" +"Retourne une chaîne de caractères de plusieurs lignes formatée avec des " +"informations détaillées sur l'objet code comme :func:`code_info`." + +#: ../Doc/library/dis.rst:96 ../Doc/library/dis.rst:130 +#: ../Doc/library/dis.rst:176 +msgid "This can now handle coroutine and asynchronous generator objects." +msgstr "" +"Cette version supporte la coroutine et les objets générateurs asynchrones." + +#: ../Doc/library/dis.rst:99 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/dis.rst:112 +msgid "Analysis functions" +msgstr "Analyse de fonctions" + +#: ../Doc/library/dis.rst:114 +msgid "" +"The :mod:`dis` module also defines the following analysis functions that " +"convert the input directly to the desired output. They can be useful if only " +"a single operation is being performed, so the intermediate analysis object " +"isn't useful:" +msgstr "" +"La bibliothèque :mod:`dis` comprend également l'analyse des fonctions " +"suivantes, qui envoient l'entrée directement à la sortie souhaitée. Elles " +"peuvent être utiles si il n'y a qu'une seule opération à effectuer, la " +"représentation intermédiaire objet n'étant donc pas utile dans ce cas:" + +#: ../Doc/library/dis.rst:120 +msgid "" +"Return a formatted multi-line string with detailed code object information " +"for the supplied function, generator, asynchronous generator, coroutine, " +"method, source code string or code object." +msgstr "" +"Retourne une chaîne de caractères de plusieurs lignes formatée avec des " +"informations détaillées sur l'objet code pour les fonctions données, les " +"générateurs asynchrone, coroutine, la méthode, la chaine de caractères du " +"code source ou objet." + +#: ../Doc/library/dis.rst:124 +msgid "" +"Note that the exact contents of code info strings are highly implementation " +"dependent and they may change arbitrarily across Python VMs or Python " +"releases." +msgstr "" +"Il est à noter que le contenu exact des chaînes de caractères figurant dans " +"les informations du code dépendent fortement sur l'implémentation, et " +"peuvent changer arbitrairement sous machines virtuelles Python ou les " +"versions de Python." + +#: ../Doc/library/dis.rst:136 +msgid "" +"Print detailed code object information for the supplied function, method, " +"source code string or code object to *file* (or ``sys.stdout`` if *file* is " +"not specified)." +msgstr "" +"Affiche des informations détaillées sur le code de la fonction fournie, la " +"méthode, la chaîne de caractère du code source ou du code objet à *file* (ou " +"bien ``sys.stdout`` si *file* n'est pas spécifié)." + +#: ../Doc/library/dis.rst:140 +msgid "" +"This is a convenient shorthand for ``print(code_info(x), file=file)``, " +"intended for interactive exploration at the interpreter prompt." +msgstr "" +"Ceci est un raccourci convenable de ``print(code_info(x), file=file)``, " +"principalement fait pour l'exploration interactive sur l'invite de " +"l'interpréteur." + +#: ../Doc/library/dis.rst:145 ../Doc/library/dis.rst:170 +#: ../Doc/library/dis.rst:189 ../Doc/library/dis.rst:213 +msgid "Added *file* parameter." +msgstr "Ajout du paramètre *file*." + +#: ../Doc/library/dis.rst:151 +msgid "" +"Disassemble the *x* object. *x* can denote either a module, a class, a " +"method, a function, a generator, an asynchronous generator, a coroutine, a " +"code object, a string of source code or a byte sequence of raw bytecode. For " +"a module, it disassembles all functions. For a class, it disassembles all " +"methods (including class and static methods). For a code object or sequence " +"of raw bytecode, it prints one line per bytecode instruction. It also " +"recursively disassembles nested code objects (the code of comprehensions, " +"generator expressions and nested functions, and the code used for building " +"nested classes). Strings are first compiled to code objects with the :func:" +"`compile` built-in function before being disassembled. If no object is " +"provided, this function disassembles the last traceback." +msgstr "" +"Désassemble l'objet *x*. *x* peut être une bibliothèque , une classe, une " +"méthode, une fonction, un générateur, un générateur asynchrone, une " +"coroutine, un code objet, une chaine de caractères du coude source ou une " +"séquence de bits du code intermédiaire brut. Pour une bibliothèque , elle " +"désassemble toutes les fonctions. Pour une classe, elle désassemble toutes " +"les méthodes (y compris les classes et méthodes statiques). Pour un code " +"objet ou une séquence de code intermédiaire brut, elle affiche une ligne par " +"instruction code intermédiaire. Aussi, elle désassemble les codes objets " +"internes récursivement (le code en compréhension, les expressions des " +"générateurs et les fonctions imbriquées, et le code utilisé pour la " +"construction des classes internes). Les chaînes de caractères sont d'abord " +"compilées pour coder des objets avec les fonctions intégrées de :func:" +"`compile` avant qu'elles ne soient désassemblées. Si aucun objet n'est " +"fourni, cette fonction désassemble les dernières traces d'appel." + +#: ../Doc/library/dis.rst:164 ../Doc/library/dis.rst:186 +#: ../Doc/library/dis.rst:210 +msgid "" +"The disassembly is written as text to the supplied *file* argument if " +"provided and to ``sys.stdout`` otherwise." +msgstr "" +"Le désassemblage est envoyé sous forme de texte à l'argument du fichier " +"*file* si il est fourni, et à ``sys.stdout`` sinon." + +#: ../Doc/library/dis.rst:167 +msgid "" +"The maximal depth of recursion is limited by *depth* unless it is ``None``. " +"``depth=0`` means no recursion." +msgstr "" +"La profondeur maximale de récursion est limitée par *depth* sauf si elle " +"correspond à ``None``. ``depth=0`` indique qu'il n'y a pas de récursion." + +#: ../Doc/library/dis.rst:173 +msgid "Implemented recursive disassembling and added *depth* parameter." +msgstr "" +"Le désassemblage récursif a été implémenté, et le paramètre *depth* a été " +"ajouté." + +#: ../Doc/library/dis.rst:182 +msgid "" +"Disassemble the top-of-stack function of a traceback, using the last " +"traceback if none was passed. The instruction causing the exception is " +"indicated." +msgstr "" +"Désassemble la fonction du haut de la pile des traces d'appels, en utilisant " +"la dernière trace d'appels si rien n'a été envoyé. L'instruction à l'origine " +"de l'exception est indiquée." + +#: ../Doc/library/dis.rst:196 +msgid "" +"Disassemble a code object, indicating the last instruction if *lasti* was " +"provided. The output is divided in the following columns:" +msgstr "" +"Désassemble un code objet, en indiquant la dernière instruction si *lasti* " +"est fournie. La sortie est répartie sur les colonnes suivantes :" + +#: ../Doc/library/dis.rst:199 +msgid "the line number, for the first instruction of each line" +msgstr "le numéro de ligne, pour la première instruction de chaque ligne" + +#: ../Doc/library/dis.rst:200 +msgid "the current instruction, indicated as ``-->``," +msgstr "l'instruction en cours, indiquée par ``-->``," + +#: ../Doc/library/dis.rst:201 +msgid "a labelled instruction, indicated with ``>>``," +msgstr "une instruction libellée, indiquée par ``> >``," + +#: ../Doc/library/dis.rst:202 +msgid "the address of the instruction," +msgstr "l'adresse de l'instruction," + +#: ../Doc/library/dis.rst:203 +msgid "the operation code name," +msgstr "le nom de le code d'opération," + +#: ../Doc/library/dis.rst:204 +msgid "operation parameters, and" +msgstr "paramètres de l'opération, et" + +#: ../Doc/library/dis.rst:205 +msgid "interpretation of the parameters in parentheses." +msgstr "interprétation des paramètres entre parenthèses." + +#: ../Doc/library/dis.rst:207 +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:219 +msgid "" +"Return an iterator over the instructions in the supplied function, method, " +"source code string or code object." +msgstr "" +"Retourne un itérateur sur les instructions dans la fonction fournie, la " +"méthode, les chaînes de caractères du code source ou objet." + +#: ../Doc/library/dis.rst:222 +msgid "" +"The iterator generates a series of :class:`Instruction` named tuples giving " +"the details of each operation in the supplied code." +msgstr "" +"Cet itérateur génère une série de n-uplets de :class:`Instruction` qui " +"donnent les détails de chacune des opérations dans le code fourni." + +#: ../Doc/library/dis.rst:235 +msgid "" +"This generator function uses the ``co_firstlineno`` and ``co_lnotab`` " +"attributes of the code object *code* to find the offsets which are starts of " +"lines in the source code. They are generated as ``(offset, lineno)`` pairs. " +"See :source:`Objects/lnotab_notes.txt` for the ``co_lnotab`` format and how " +"to decode it." +msgstr "" + +#: ../Doc/library/dis.rst:241 +msgid "Line numbers can be decreasing. Before, they were always increasing." +msgstr "" +"Les numéros de lignes peuvent être décroissants. Avant, ils étaient toujours " +"croissants." + +#: ../Doc/library/dis.rst:247 +msgid "" +"Detect all offsets in the code object *code* which are jump targets, and " +"return a list of these offsets." +msgstr "" + +#: ../Doc/library/dis.rst:253 +msgid "Compute the stack effect of *opcode* with argument *oparg*." +msgstr "" + +#: ../Doc/library/dis.rst:260 +msgid "Python Bytecode Instructions" +msgstr "Les instructions du code intermédiaire en Python" + +#: ../Doc/library/dis.rst:262 +msgid "" +"The :func:`get_instructions` function and :class:`Bytecode` class provide " +"details of bytecode instructions as :class:`Instruction` instances:" +msgstr "" +"La fonction :func:`get_instructions` et la méthode :class:`Bytecode` fournit " +"des détails sur le code intermédiaire des instructions comme :class:" +"`Instruction` instances:" + +#: ../Doc/library/dis.rst:267 +msgid "Details for a bytecode operation" +msgstr "Détails sur le code intermédiaire de l'opération" + +#: ../Doc/library/dis.rst:271 +msgid "" +"numeric code for operation, corresponding to the opcode values listed below " +"and the bytecode values in the :ref:`opcode_collections`." +msgstr "" +"code numérique pour l'opération, correspondant aux valeurs de l'*opcode* ci-" +"dessous et les valeurs du code intermédiaire dans la :ref:" +"`opcode_collections`." + +#: ../Doc/library/dis.rst:277 +msgid "human readable name for operation" +msgstr "nom lisible/compréhensible de l'opération" + +#: ../Doc/library/dis.rst:282 +msgid "numeric argument to operation (if any), otherwise ``None``" +msgstr "le cas échéant, argument numérique de l'opération sinon ``None``" + +#: ../Doc/library/dis.rst:287 +msgid "resolved arg value (if known), otherwise same as arg" +msgstr "" + +#: ../Doc/library/dis.rst:292 +msgid "human readable description of operation argument" +msgstr "" + +#: ../Doc/library/dis.rst:297 +msgid "start index of operation within bytecode sequence" +msgstr "" + +#: ../Doc/library/dis.rst:302 +msgid "line started by this opcode (if any), otherwise ``None``" +msgstr "" + +#: ../Doc/library/dis.rst:307 +msgid "``True`` if other code jumps to here, otherwise ``False``" +msgstr "" + +#: ../Doc/library/dis.rst:312 +msgid "" +"The Python compiler currently generates the following bytecode instructions." +msgstr "" + +#: ../Doc/library/dis.rst:315 +msgid "**General instructions**" +msgstr "" + +#: ../Doc/library/dis.rst:319 +msgid "Do nothing code. Used as a placeholder by the bytecode optimizer." +msgstr "" + +#: ../Doc/library/dis.rst:324 +msgid "Removes the top-of-stack (TOS) item." +msgstr "" + +#: ../Doc/library/dis.rst:329 +msgid "Swaps the two top-most stack items." +msgstr "" + +#: ../Doc/library/dis.rst:334 +msgid "" +"Lifts second and third stack item one position up, moves top down to " +"position three." +msgstr "" + +#: ../Doc/library/dis.rst:340 +msgid "Duplicates the reference on top of the stack." +msgstr "" + +#: ../Doc/library/dis.rst:347 +msgid "" +"Duplicates the two references on top of the stack, leaving them in the same " +"order." +msgstr "" + +#: ../Doc/library/dis.rst:353 +msgid "**Unary operations**" +msgstr "" + +#: ../Doc/library/dis.rst:355 +msgid "" +"Unary operations take the top of the stack, apply the operation, and push " +"the result back on the stack." +msgstr "" + +#: ../Doc/library/dis.rst:360 +msgid "Implements ``TOS = +TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:365 +msgid "Implements ``TOS = -TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:370 +msgid "Implements ``TOS = not TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:375 +msgid "Implements ``TOS = ~TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:380 +msgid "Implements ``TOS = iter(TOS)``." +msgstr "" + +#: ../Doc/library/dis.rst:385 +msgid "" +"If ``TOS`` is a :term:`generator iterator` or :term:`coroutine` object it is " +"left as is. Otherwise, implements ``TOS = iter(TOS)``." +msgstr "" + +#: ../Doc/library/dis.rst:391 +msgid "**Binary operations**" +msgstr "" + +#: ../Doc/library/dis.rst:393 +msgid "" +"Binary operations remove the top of the stack (TOS) and the second top-most " +"stack item (TOS1) from the stack. They perform the operation, and put the " +"result back on the stack." +msgstr "" + +#: ../Doc/library/dis.rst:399 +msgid "Implements ``TOS = TOS1 ** TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:404 +msgid "Implements ``TOS = TOS1 * TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:409 +msgid "Implements ``TOS = TOS1 @ TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:416 +msgid "Implements ``TOS = TOS1 // TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:421 +msgid "Implements ``TOS = TOS1 / TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:426 +msgid "Implements ``TOS = TOS1 % TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:431 +msgid "Implements ``TOS = TOS1 + TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:436 +msgid "Implements ``TOS = TOS1 - TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:441 +msgid "Implements ``TOS = TOS1[TOS]``." +msgstr "" + +#: ../Doc/library/dis.rst:446 +msgid "Implements ``TOS = TOS1 << TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:451 +msgid "Implements ``TOS = TOS1 >> TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:456 +msgid "Implements ``TOS = TOS1 & TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:461 +msgid "Implements ``TOS = TOS1 ^ TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:466 +msgid "Implements ``TOS = TOS1 | TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:469 +msgid "**In-place operations**" +msgstr "" + +#: ../Doc/library/dis.rst:471 +msgid "" +"In-place operations are like binary operations, in that they remove TOS and " +"TOS1, and push the result back on the stack, but the operation is done in-" +"place when TOS1 supports it, and the resulting TOS may be (but does not have " +"to be) the original TOS1." +msgstr "" + +#: ../Doc/library/dis.rst:478 +msgid "Implements in-place ``TOS = TOS1 ** TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:483 +msgid "Implements in-place ``TOS = TOS1 * TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:488 +msgid "Implements in-place ``TOS = TOS1 @ TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:495 +msgid "Implements in-place ``TOS = TOS1 // TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:500 +msgid "Implements in-place ``TOS = TOS1 / TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:505 +msgid "Implements in-place ``TOS = TOS1 % TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:510 +msgid "Implements in-place ``TOS = TOS1 + TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:515 +msgid "Implements in-place ``TOS = TOS1 - TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:520 +msgid "Implements in-place ``TOS = TOS1 << TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:525 +msgid "Implements in-place ``TOS = TOS1 >> TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:530 +msgid "Implements in-place ``TOS = TOS1 & TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:535 +msgid "Implements in-place ``TOS = TOS1 ^ TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:540 +msgid "Implements in-place ``TOS = TOS1 | TOS``." +msgstr "" + +#: ../Doc/library/dis.rst:545 +msgid "Implements ``TOS1[TOS] = TOS2``." +msgstr "" + +#: ../Doc/library/dis.rst:550 +msgid "Implements ``del TOS1[TOS]``." +msgstr "" + +#: ../Doc/library/dis.rst:553 +msgid "**Coroutine opcodes**" +msgstr "" + +#: ../Doc/library/dis.rst:557 +msgid "" +"Implements ``TOS = get_awaitable(TOS)``, where ``get_awaitable(o)`` returns " +"``o`` if ``o`` is a coroutine object or a generator object with the " +"CO_ITERABLE_COROUTINE flag, or resolves ``o.__await__``." +msgstr "" + +#: ../Doc/library/dis.rst:567 +msgid "Implements ``TOS = TOS.__aiter__()``." +msgstr "" + +#: ../Doc/library/dis.rst:570 +msgid "Returning awaitable objects from ``__aiter__`` is no longer supported." +msgstr "" + +#: ../Doc/library/dis.rst:577 +msgid "" +"Implements ``PUSH(get_awaitable(TOS.__anext__()))``. See ``GET_AWAITABLE`` " +"for details about ``get_awaitable``" +msgstr "" + +#: ../Doc/library/dis.rst:585 +msgid "" +"Resolves ``__aenter__`` and ``__aexit__`` from the object on top of the " +"stack. Pushes ``__aexit__`` and result of ``__aenter__()`` to the stack." +msgstr "" + +#: ../Doc/library/dis.rst:593 +msgid "Creates a new frame object." +msgstr "" + +#: ../Doc/library/dis.rst:599 +msgid "**Miscellaneous opcodes**" +msgstr "" + +#: ../Doc/library/dis.rst:603 +msgid "" +"Implements the expression statement for the interactive mode. TOS is " +"removed from the stack and printed. In non-interactive mode, an expression " +"statement is terminated with :opcode:`POP_TOP`." +msgstr "" + +#: ../Doc/library/dis.rst:610 +msgid "Terminates a loop due to a :keyword:`break` statement." +msgstr "" + +#: ../Doc/library/dis.rst:615 +msgid "" +"Continues a loop due to a :keyword:`continue` statement. *target* is the " +"address to jump to (which should be a :opcode:`FOR_ITER` instruction)." +msgstr "" + +#: ../Doc/library/dis.rst:621 +msgid "" +"Calls ``set.add(TOS1[-i], TOS)``. Used to implement set comprehensions." +msgstr "" + +#: ../Doc/library/dis.rst:626 +msgid "" +"Calls ``list.append(TOS[-i], TOS)``. Used to implement list comprehensions." +msgstr "" + +#: ../Doc/library/dis.rst:631 +msgid "" +"Calls ``dict.setitem(TOS1[-i], TOS, TOS1)``. Used to implement dict " +"comprehensions." +msgstr "" + +#: ../Doc/library/dis.rst:636 +msgid "" +"For all of the :opcode:`SET_ADD`, :opcode:`LIST_APPEND` and :opcode:" +"`MAP_ADD` instructions, while the added value or key/value pair is popped " +"off, the container object remains on the stack so that it is available for " +"further iterations of the loop." +msgstr "" + +#: ../Doc/library/dis.rst:644 +msgid "Returns with TOS to the caller of the function." +msgstr "" + +#: ../Doc/library/dis.rst:649 +msgid "Pops TOS and yields it from a :term:`generator`." +msgstr "" + +#: ../Doc/library/dis.rst:654 +msgid "Pops TOS and delegates to it as a subiterator from a :term:`generator`." +msgstr "" + +#: ../Doc/library/dis.rst:661 +msgid "" +"Checks whether ``__annotations__`` is defined in ``locals()``, if not it is " +"set up to an empty ``dict``. This opcode is only emitted if a class or " +"module body contains :term:`variable annotations ` " +"statically." +msgstr "" + +#: ../Doc/library/dis.rst:671 +msgid "" +"Loads all symbols not starting with ``'_'`` directly from the module TOS to " +"the local namespace. The module is popped after loading all names. This " +"opcode implements ``from module import *``." +msgstr "" + +#: ../Doc/library/dis.rst:678 +msgid "" +"Removes one block from the block stack. Per frame, there is a stack of " +"blocks, denoting nested loops, try statements, and such." +msgstr "" + +#: ../Doc/library/dis.rst:684 +msgid "" +"Removes one block from the block stack. The popped block must be an " +"exception handler block, as implicitly created when entering an except " +"handler. In addition to popping extraneous values from the frame stack, the " +"last three popped values are used to restore the exception state." +msgstr "" + +#: ../Doc/library/dis.rst:692 +msgid "" +"Terminates a :keyword:`finally` clause. The interpreter recalls whether the " +"exception has to be re-raised, or whether the function returns, and " +"continues with the outer-next block." +msgstr "" + +#: ../Doc/library/dis.rst:699 +msgid "" +"Pushes :func:`builtins.__build_class__` onto the stack. It is later called " +"by :opcode:`CALL_FUNCTION` to construct a class." +msgstr "" + +#: ../Doc/library/dis.rst:705 +msgid "" +"This opcode performs several operations before a with block starts. First, " +"it loads :meth:`~object.__exit__` from the context manager and pushes it " +"onto the stack for later use by :opcode:`WITH_CLEANUP`. Then, :meth:" +"`~object.__enter__` is called, and a finally block pointing to *delta* is " +"pushed. Finally, the result of calling the enter method is pushed onto the " +"stack. The next opcode will either ignore it (:opcode:`POP_TOP`), or store " +"it in (a) variable(s) (:opcode:`STORE_FAST`, :opcode:`STORE_NAME`, or :" +"opcode:`UNPACK_SEQUENCE`)." +msgstr "" + +#: ../Doc/library/dis.rst:719 +msgid "" +"Cleans up the stack when a :keyword:`with` statement block exits. TOS is " +"the context manager's :meth:`__exit__` bound method. Below TOS are 1--3 " +"values indicating how/why the finally clause was entered:" +msgstr "" + +#: ../Doc/library/dis.rst:723 +msgid "SECOND = ``None``" +msgstr "" + +#: ../Doc/library/dis.rst:724 +msgid "(SECOND, THIRD) = (``WHY_{RETURN,CONTINUE}``), retval" +msgstr "" + +#: ../Doc/library/dis.rst:725 +msgid "SECOND = ``WHY_*``; no retval below it" +msgstr "" + +#: ../Doc/library/dis.rst:726 +msgid "(SECOND, THIRD, FOURTH) = exc_info()" +msgstr "" + +#: ../Doc/library/dis.rst:728 +msgid "" +"In the last case, ``TOS(SECOND, THIRD, FOURTH)`` is called, otherwise " +"``TOS(None, None, None)``. Pushes SECOND and result of the call to the " +"stack." +msgstr "" + +#: ../Doc/library/dis.rst:735 +msgid "Pops exception type and result of 'exit' function call from the stack." +msgstr "" + +#: ../Doc/library/dis.rst:737 +msgid "" +"If the stack represents an exception, *and* the function call returns a " +"'true' value, this information is \"zapped\" and replaced with a single " +"``WHY_SILENCED`` to prevent :opcode:`END_FINALLY` from re-raising the " +"exception. (But non-local gotos will still be resumed.)" +msgstr "" + +#: ../Doc/library/dis.rst:745 +msgid "All of the following opcodes use their arguments." +msgstr "" + +#: ../Doc/library/dis.rst:749 +msgid "" +"Implements ``name = TOS``. *namei* is the index of *name* in the attribute :" +"attr:`co_names` of the code object. The compiler tries to use :opcode:" +"`STORE_FAST` or :opcode:`STORE_GLOBAL` if possible." +msgstr "" + +#: ../Doc/library/dis.rst:756 +msgid "" +"Implements ``del name``, where *namei* is the index into :attr:`co_names` " +"attribute of the code object." +msgstr "" + +#: ../Doc/library/dis.rst:762 +msgid "" +"Unpacks TOS into *count* individual values, which are put onto the stack " +"right-to-left." +msgstr "" + +#: ../Doc/library/dis.rst:768 +msgid "" +"Implements assignment with a starred target: Unpacks an iterable in TOS into " +"individual values, where the total number of values can be smaller than the " +"number of items in the iterable: one of the new values will be a list of all " +"leftover items." +msgstr "" + +#: ../Doc/library/dis.rst:773 +msgid "" +"The low byte of *counts* is the number of values before the list value, the " +"high byte of *counts* the number of values after it. The resulting values " +"are put onto the stack right-to-left." +msgstr "" + +#: ../Doc/library/dis.rst:780 +msgid "" +"Implements ``TOS.name = TOS1``, where *namei* is the index of name in :attr:" +"`co_names`." +msgstr "" + +#: ../Doc/library/dis.rst:786 +msgid "" +"Implements ``del TOS.name``, using *namei* as index into :attr:`co_names`." +msgstr "" + +#: ../Doc/library/dis.rst:791 +msgid "Works as :opcode:`STORE_NAME`, but stores the name as a global." +msgstr "" + +#: ../Doc/library/dis.rst:796 +msgid "Works as :opcode:`DELETE_NAME`, but deletes a global name." +msgstr "" + +#: ../Doc/library/dis.rst:801 +msgid "Pushes ``co_consts[consti]`` onto the stack." +msgstr "" + +#: ../Doc/library/dis.rst:806 +msgid "Pushes the value associated with ``co_names[namei]`` onto the stack." +msgstr "" + +#: ../Doc/library/dis.rst:811 +msgid "" +"Creates a tuple consuming *count* items from the stack, and pushes the " +"resulting tuple onto the stack." +msgstr "" + +#: ../Doc/library/dis.rst:817 +msgid "Works as :opcode:`BUILD_TUPLE`, but creates a list." +msgstr "" + +#: ../Doc/library/dis.rst:822 +msgid "Works as :opcode:`BUILD_TUPLE`, but creates a set." +msgstr "" + +#: ../Doc/library/dis.rst:827 +msgid "" +"Pushes a new dictionary object onto the stack. Pops ``2 * count`` items so " +"that the dictionary holds *count* entries: ``{..., TOS3: TOS2, TOS1: TOS}``." +msgstr "" + +#: ../Doc/library/dis.rst:831 +msgid "" +"The dictionary is created from stack items instead of creating an empty " +"dictionary pre-sized to hold *count* items." +msgstr "" + +#: ../Doc/library/dis.rst:838 +msgid "" +"The version of :opcode:`BUILD_MAP` specialized for constant keys. *count* " +"values are consumed from the stack. The top element on the stack contains a " +"tuple of keys." +msgstr "" + +#: ../Doc/library/dis.rst:847 +msgid "" +"Concatenates *count* strings from the stack and pushes the resulting string " +"onto the stack." +msgstr "" + +#: ../Doc/library/dis.rst:855 +msgid "" +"Pops *count* iterables from the stack, joins them in a single tuple, and " +"pushes the result. Implements iterable unpacking in tuple displays ``(*x, " +"*y, *z)``." +msgstr "" + +#: ../Doc/library/dis.rst:864 +msgid "" +"This is similar to :opcode:`BUILD_TUPLE_UNPACK`, but is used for ``f(*x, *y, " +"*z)`` call syntax. The stack item at position ``count + 1`` should be the " +"corresponding callable ``f``." +msgstr "" + +#: ../Doc/library/dis.rst:873 +msgid "" +"This is similar to :opcode:`BUILD_TUPLE_UNPACK`, but pushes a list instead " +"of tuple. Implements iterable unpacking in list displays ``[*x, *y, *z]``." +msgstr "" + +#: ../Doc/library/dis.rst:882 +msgid "" +"This is similar to :opcode:`BUILD_TUPLE_UNPACK`, but pushes a set instead of " +"tuple. Implements iterable unpacking in set displays ``{*x, *y, *z}``." +msgstr "" + +#: ../Doc/library/dis.rst:891 +msgid "" +"Pops *count* mappings from the stack, merges them into a single dictionary, " +"and pushes the result. Implements dictionary unpacking in dictionary " +"displays ``{**x, **y, **z}``." +msgstr "" + +#: ../Doc/library/dis.rst:900 +msgid "" +"This is similar to :opcode:`BUILD_MAP_UNPACK`, but is used for ``f(**x, **y, " +"**z)`` call syntax. The stack item at position ``count + 2`` should be the " +"corresponding callable ``f``." +msgstr "" + +#: ../Doc/library/dis.rst:905 +msgid "" +"The position of the callable is determined by adding 2 to the opcode " +"argument instead of encoding it in the second byte of the argument." +msgstr "" + +#: ../Doc/library/dis.rst:912 +msgid "Replaces TOS with ``getattr(TOS, co_names[namei])``." +msgstr "" + +#: ../Doc/library/dis.rst:917 +msgid "" +"Performs a Boolean operation. The operation name can be found in " +"``cmp_op[opname]``." +msgstr "" + +#: ../Doc/library/dis.rst:923 +msgid "" +"Imports the module ``co_names[namei]``. TOS and TOS1 are popped and provide " +"the *fromlist* and *level* arguments of :func:`__import__`. The module " +"object is pushed onto the stack. The current namespace is not affected: for " +"a proper import statement, a subsequent :opcode:`STORE_FAST` instruction " +"modifies the namespace." +msgstr "" + +#: ../Doc/library/dis.rst:932 +msgid "" +"Loads the attribute ``co_names[namei]`` from the module found in TOS. The " +"resulting object is pushed onto the stack, to be subsequently stored by a :" +"opcode:`STORE_FAST` instruction." +msgstr "" + +#: ../Doc/library/dis.rst:939 +msgid "Increments bytecode counter by *delta*." +msgstr "" + +#: ../Doc/library/dis.rst:944 +msgid "If TOS is true, sets the bytecode counter to *target*. TOS is popped." +msgstr "" + +#: ../Doc/library/dis.rst:951 +msgid "If TOS is false, sets the bytecode counter to *target*. TOS is popped." +msgstr "" + +#: ../Doc/library/dis.rst:958 +msgid "" +"If TOS is true, sets the bytecode counter to *target* and leaves TOS on the " +"stack. Otherwise (TOS is false), TOS is popped." +msgstr "" + +#: ../Doc/library/dis.rst:966 +msgid "" +"If TOS is false, sets the bytecode counter to *target* and leaves TOS on the " +"stack. Otherwise (TOS is true), TOS is popped." +msgstr "" + +#: ../Doc/library/dis.rst:974 +msgid "Set bytecode counter to *target*." +msgstr "" + +#: ../Doc/library/dis.rst:979 +msgid "" +"TOS is an :term:`iterator`. Call its :meth:`~iterator.__next__` method. If " +"this yields a new value, push it on the stack (leaving the iterator below " +"it). If the iterator indicates it is exhausted TOS is popped, and the byte " +"code counter is incremented by *delta*." +msgstr "" + +#: ../Doc/library/dis.rst:987 +msgid "Loads the global named ``co_names[namei]`` onto the stack." +msgstr "" + +#: ../Doc/library/dis.rst:992 +msgid "" +"Pushes a block for a loop onto the block stack. The block spans from the " +"current instruction with a size of *delta* bytes." +msgstr "" + +#: ../Doc/library/dis.rst:998 +msgid "" +"Pushes a try block from a try-except clause onto the block stack. *delta* " +"points to the first except block." +msgstr "" + +#: ../Doc/library/dis.rst:1004 +msgid "" +"Pushes a try block from a try-except clause onto the block stack. *delta* " +"points to the finally block." +msgstr "" + +#: ../Doc/library/dis.rst:1010 +msgid "" +"Pushes a reference to the local ``co_varnames[var_num]`` onto the stack." +msgstr "" + +#: ../Doc/library/dis.rst:1015 +msgid "Stores TOS into the local ``co_varnames[var_num]``." +msgstr "" + +#: ../Doc/library/dis.rst:1020 +msgid "Deletes local ``co_varnames[var_num]``." +msgstr "" + +#: ../Doc/library/dis.rst:1025 +msgid "" +"Pushes a reference to the cell contained in slot *i* of the cell and free " +"variable storage. The name of the variable is ``co_cellvars[i]`` if *i* is " +"less than the length of *co_cellvars*. Otherwise it is ``co_freevars[i - " +"len(co_cellvars)]``." +msgstr "" + +#: ../Doc/library/dis.rst:1033 +msgid "" +"Loads the cell contained in slot *i* of the cell and free variable storage. " +"Pushes a reference to the object the cell contains on the stack." +msgstr "" + +#: ../Doc/library/dis.rst:1039 +msgid "" +"Much like :opcode:`LOAD_DEREF` but first checks the locals dictionary before " +"consulting the cell. This is used for loading free variables in class " +"bodies." +msgstr "" + +#: ../Doc/library/dis.rst:1048 +msgid "" +"Stores TOS into the cell contained in slot *i* of the cell and free variable " +"storage." +msgstr "" + +#: ../Doc/library/dis.rst:1054 +msgid "" +"Empties the cell contained in slot *i* of the cell and free variable " +"storage. Used by the :keyword:`del` statement." +msgstr "" + +#: ../Doc/library/dis.rst:1062 +msgid "" +"Raises an exception. *argc* indicates the number of arguments to the raise " +"statement, ranging from 0 to 3. The handler will find the traceback as " +"TOS2, the parameter as TOS1, and the exception as TOS." +msgstr "" + +#: ../Doc/library/dis.rst:1069 +msgid "" +"Calls a callable object with positional arguments. *argc* indicates the " +"number of positional arguments. The top of the stack contains positional " +"arguments, with the right-most argument on top. Below the arguments is a " +"callable object to call. ``CALL_FUNCTION`` pops all arguments and the " +"callable object off the stack, calls the callable object with those " +"arguments, and pushes the return value returned by the callable object." +msgstr "" + +#: ../Doc/library/dis.rst:1077 +msgid "This opcode is used only for calls with positional arguments." +msgstr "" + +#: ../Doc/library/dis.rst:1083 +msgid "" +"Calls a callable object with positional (if any) and keyword arguments. " +"*argc* indicates the total number of positional and keyword arguments. The " +"top element on the stack contains a tuple of keyword argument names. Below " +"that are keyword arguments in the order corresponding to the tuple. Below " +"that are positional arguments, with the right-most parameter on top. Below " +"the arguments is a callable object to call. ``CALL_FUNCTION_KW`` pops all " +"arguments and the callable object off the stack, calls the callable object " +"with those arguments, and pushes the return value returned by the callable " +"object." +msgstr "" + +#: ../Doc/library/dis.rst:1093 +msgid "" +"Keyword arguments are packed in a tuple instead of a dictionary, *argc* " +"indicates the total number of arguments." +msgstr "" + +#: ../Doc/library/dis.rst:1100 +msgid "" +"Calls a callable object with variable set of positional and keyword " +"arguments. If the lowest bit of *flags* is set, the top of the stack " +"contains a mapping object containing additional keyword arguments. Below " +"that is an iterable object containing positional arguments and a callable " +"object to call. :opcode:`BUILD_MAP_UNPACK_WITH_CALL` and :opcode:" +"`BUILD_TUPLE_UNPACK_WITH_CALL` can be used for merging multiple mapping " +"objects and iterables containing arguments. Before the callable is called, " +"the mapping object and iterable object are each \"unpacked\" and their " +"contents passed in as keyword and positional arguments respectively. " +"``CALL_FUNCTION_EX`` pops all arguments and the callable object off the " +"stack, calls the callable object with those arguments, and pushes the return " +"value returned by the callable object." +msgstr "" + +#: ../Doc/library/dis.rst:1119 +msgid "" +"Loads a method named ``co_names[namei]`` from TOS object. TOS is popped and " +"method and TOS are pushed when interpreter can call unbound method directly. " +"TOS will be used as the first argument (``self``) by :opcode:`CALL_METHOD`. " +"Otherwise, ``NULL`` and method is pushed (method is bound method or " +"something else)." +msgstr "" + +#: ../Doc/library/dis.rst:1130 +msgid "" +"Calls a method. *argc* is number of positional arguments. Keyword arguments " +"are not supported. This opcode is designed to be used with :opcode:" +"`LOAD_METHOD`. Positional arguments are on top of the stack. Below them, " +"two items described in :opcode:`LOAD_METHOD` on the stack. All of them are " +"popped and return value is pushed." +msgstr "" + +#: ../Doc/library/dis.rst:1141 +msgid "" +"Pushes a new function object on the stack. From bottom to top, the consumed " +"stack must consist of values if the argument carries a specified flag value" +msgstr "" + +#: ../Doc/library/dis.rst:1144 +msgid "" +"``0x01`` a tuple of default values for positional-only and positional-or-" +"keyword parameters in positional order" +msgstr "" + +#: ../Doc/library/dis.rst:1146 +msgid "``0x02`` a dictionary of keyword-only parameters' default values" +msgstr "" + +#: ../Doc/library/dis.rst:1147 +msgid "``0x04`` an annotation dictionary" +msgstr "" + +#: ../Doc/library/dis.rst:1148 +msgid "``0x08`` a tuple containing cells for free variables, making a closure" +msgstr "" + +#: ../Doc/library/dis.rst:1149 +msgid "the code associated with the function (at TOS1)" +msgstr "" + +#: ../Doc/library/dis.rst:1150 +msgid "the :term:`qualified name` of the function (at TOS)" +msgstr "" + +#: ../Doc/library/dis.rst:1157 +msgid "" +"Pushes a slice object on the stack. *argc* must be 2 or 3. If it is 2, " +"``slice(TOS1, TOS)`` is pushed; if it is 3, ``slice(TOS2, TOS1, TOS)`` is " +"pushed. See the :func:`slice` built-in function for more information." +msgstr "" + +#: ../Doc/library/dis.rst:1164 +msgid "" +"Prefixes any opcode which has an argument too big to fit into the default " +"two bytes. *ext* holds two additional bytes which, taken together with the " +"subsequent opcode's argument, comprise a four-byte argument, *ext* being the " +"two most-significant bytes." +msgstr "" + +#: ../Doc/library/dis.rst:1172 +msgid "" +"Used for implementing formatted literal strings (f-strings). Pops an " +"optional *fmt_spec* from the stack, then a required *value*. *flags* is " +"interpreted as follows:" +msgstr "" + +#: ../Doc/library/dis.rst:1176 +msgid "``(flags & 0x03) == 0x00``: *value* is formatted as-is." +msgstr "" + +#: ../Doc/library/dis.rst:1177 +msgid "" +"``(flags & 0x03) == 0x01``: call :func:`str` on *value* before formatting it." +msgstr "" + +#: ../Doc/library/dis.rst:1179 +msgid "" +"``(flags & 0x03) == 0x02``: call :func:`repr` on *value* before formatting " +"it." +msgstr "" + +#: ../Doc/library/dis.rst:1181 +msgid "" +"``(flags & 0x03) == 0x03``: call :func:`ascii` on *value* before formatting " +"it." +msgstr "" + +#: ../Doc/library/dis.rst:1183 +msgid "" +"``(flags & 0x04) == 0x04``: pop *fmt_spec* from the stack and use it, else " +"use an empty *fmt_spec*." +msgstr "" + +#: ../Doc/library/dis.rst:1186 +msgid "" +"Formatting is performed using :c:func:`PyObject_Format`. The result is " +"pushed on the stack." +msgstr "" + +#: ../Doc/library/dis.rst:1194 +msgid "" +"This is not really an opcode. It identifies the dividing line between " +"opcodes which don't use their argument and those that do (``< " +"HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively)." +msgstr "" + +#: ../Doc/library/dis.rst:1198 +msgid "" +"Now every instruction has an argument, but opcodes ``< HAVE_ARGUMENT`` " +"ignore it. Before, only opcodes ``>= HAVE_ARGUMENT`` had an argument." +msgstr "" + +#: ../Doc/library/dis.rst:1206 +msgid "Opcode collections" +msgstr "" + +#: ../Doc/library/dis.rst:1208 +msgid "" +"These collections are provided for automatic introspection of bytecode " +"instructions:" +msgstr "" + +#: ../Doc/library/dis.rst:1213 +msgid "Sequence of operation names, indexable using the bytecode." +msgstr "" + +#: ../Doc/library/dis.rst:1218 +msgid "Dictionary mapping operation names to bytecodes." +msgstr "" + +#: ../Doc/library/dis.rst:1223 +msgid "Sequence of all compare operation names." +msgstr "" + +#: ../Doc/library/dis.rst:1228 +msgid "Sequence of bytecodes that access a constant." +msgstr "" + +#: ../Doc/library/dis.rst:1233 +msgid "" +"Sequence of bytecodes that access a free variable (note that 'free' in this " +"context refers to names in the current scope that are referenced by inner " +"scopes or names in outer scopes that are referenced from this scope. It " +"does *not* include references to global or builtin scopes)." +msgstr "" + +#: ../Doc/library/dis.rst:1241 +msgid "Sequence of bytecodes that access an attribute by name." +msgstr "" + +#: ../Doc/library/dis.rst:1246 +msgid "Sequence of bytecodes that have a relative jump target." +msgstr "" + +#: ../Doc/library/dis.rst:1251 +msgid "Sequence of bytecodes that have an absolute jump target." +msgstr "" + +#: ../Doc/library/dis.rst:1256 +msgid "Sequence of bytecodes that access a local variable." +msgstr "" + +#: ../Doc/library/dis.rst:1261 +msgid "Sequence of bytecodes of Boolean operations." +msgstr "" diff --git a/library/distribution.po b/library/distribution.po new file mode 100644 index 000000000..50f97b18d --- /dev/null +++ b/library/distribution.po @@ -0,0 +1,31 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: 2018-06-10 15:33+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/distribution.rst:3 +msgid "Software Packaging and Distribution" +msgstr "Paquets et distribution de paquets logiciels" + +#: ../Doc/library/distribution.rst:5 +msgid "" +"These libraries help you with publishing and installing Python software. " +"While these modules are designed to work in conjunction with the `Python " +"Package Index `__, they can also be used with a local " +"index server, or without any index server at all." +msgstr "" +"Ces bibliothèques vous aident lors de la publication et l'installation de " +"logiciels Python. Bien que ces modules sont conçus pour fonctionner avec le " +"`Python Package Index `__, ils peuvent aussi être utilisés " +"avec un serveur local, ou sans serveur." diff --git a/library/distutils.po b/library/distutils.po new file mode 100644 index 000000000..e1ca8f516 --- /dev/null +++ b/library/distutils.po @@ -0,0 +1,114 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-28 12:38+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.10\n" + +#: ../Doc/library/distutils.rst:2 +msgid ":mod:`distutils` --- Building and installing Python modules" +msgstr ":mod:`distutils` — Création et installation des modules Python" + +#: ../Doc/library/distutils.rst:12 +msgid "" +"The :mod:`distutils` package provides support for building and installing " +"additional modules into a Python installation. The new modules may be " +"either 100%-pure Python, or may be extension modules written in C, or may be " +"collections of Python packages which include modules coded in both Python " +"and C." +msgstr "" +"Le package :mod:`distutils` fournit le support pour la création et " +"l'installation de modules supplémentaires dans une installation Python. Les " +"nouveaux modules peuvent être soit en Python pur à 100%, soit des modules " +"d'extension écrits en C, soit des collections de paquets Python qui incluent " +"des modules codés en C et en Python." + +#: ../Doc/library/distutils.rst:17 +msgid "" +"Most Python users will *not* want to use this module directly, but instead " +"use the cross-version tools maintained by the Python Packaging Authority. In " +"particular, `setuptools `__ is " +"an enhanced alternative to :mod:`distutils` that provides:" +msgstr "" +"La plupart des utilisateurs de Python ne voudront *pas* utiliser ce module " +"directement, mais plutôt les outils cross-version maintenus par la *Python " +"Packaging Authority*. En particulier, `setuptools `__ est une alternative améliorée à :mod:" +"`distutils` qui fournit :" + +#: ../Doc/library/distutils.rst:23 +msgid "support for declaring project dependencies" +msgstr "support pour la déclaration des dépendances de projets" + +#: ../Doc/library/distutils.rst:24 +msgid "" +"additional mechanisms for configuring which files to include in source " +"releases (including plugins for integration with version control systems)" +msgstr "" +"mécanismes supplémentaires pour configurer quels fichiers inclure dans les " +"distributions source (y compris les extensions pour l'intégration avec les " +"systèmes de contrôle de version)" + +#: ../Doc/library/distutils.rst:26 +msgid "" +"the ability to declare project \"entry points\", which can be used as the " +"basis for application plugin systems" +msgstr "" +"la possibilité de déclarer les \"points d'entrée\" du projet, qui peuvent " +"être utilisés comme base pour les systèmes d'extensions" + +#: ../Doc/library/distutils.rst:28 +msgid "" +"the ability to automatically generate Windows command line executables at " +"installation time rather than needing to prebuild them" +msgstr "" +"la possibilité de générer automatiquement des exécutables en ligne de " +"commande Windows au moment de l'installation plutôt que de devoir les pré-" +"construire" + +#: ../Doc/library/distutils.rst:30 +msgid "consistent behaviour across all supported Python versions" +msgstr "comportement cohérent entre toutes les versions Python supportées" + +#: ../Doc/library/distutils.rst:32 +msgid "" +"The recommended `pip `__ installer runs all ``setup." +"py`` scripts with ``setuptools``, even if the script itself only imports " +"``distutils``. Refer to the `Python Packaging User Guide `_ for more information." +msgstr "" +"Le programme d'installation recommandé `pip `__ " +"exécute tous les scripts ``setup. py`` avec ``setuptools``, même si le " +"script lui-même n'importe que ``distutils``. Pour plus d'informations, " +"reportez-vous au `Python Packaging User Guide `_." + +#: ../Doc/library/distutils.rst:38 +msgid "" +"For the benefits of packaging tool authors and users seeking a deeper " +"understanding of the details of the current packaging and distribution " +"system, the legacy :mod:`distutils` based user documentation and API " +"reference remain available:" +msgstr "" +"À destination des auteurs et utilisateurs d'outils d'empaquetage cherchant " +"une compréhension plus approfondie des détails du système actuel de création " +"de paquets et de leur distribution, la documentation utilisateur historique " +"de :mod:`distutils` la référence de son API restent disponibles :" + +#: ../Doc/library/distutils.rst:43 +msgid ":ref:`install-index`" +msgstr ":ref:`install-index`" + +#: ../Doc/library/distutils.rst:44 +msgid ":ref:`distutils-index`" +msgstr ":ref:`distutils-index`" diff --git a/library/doctest.po b/library/doctest.po new file mode 100644 index 000000000..28769bdf2 --- /dev/null +++ b/library/doctest.po @@ -0,0 +1,2057 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/doctest.rst:4 +msgid ":mod:`doctest` --- Test interactive Python examples" +msgstr "" + +#: ../Doc/library/doctest.rst:14 +msgid "**Source code:** :source:`Lib/doctest.py`" +msgstr "" + +#: ../Doc/library/doctest.rst:18 +msgid "" +"The :mod:`doctest` module searches for pieces of text that look like " +"interactive Python sessions, and then executes those sessions to verify that " +"they work exactly as shown. There are several common ways to use doctest:" +msgstr "" + +#: ../Doc/library/doctest.rst:22 +msgid "" +"To check that a module's docstrings are up-to-date by verifying that all " +"interactive examples still work as documented." +msgstr "" + +#: ../Doc/library/doctest.rst:25 +msgid "" +"To perform regression testing by verifying that interactive examples from a " +"test file or a test object work as expected." +msgstr "" + +#: ../Doc/library/doctest.rst:28 +msgid "" +"To write tutorial documentation for a package, liberally illustrated with " +"input-output examples. Depending on whether the examples or the expository " +"text are emphasized, this has the flavor of \"literate testing\" or " +"\"executable documentation\"." +msgstr "" + +#: ../Doc/library/doctest.rst:33 +msgid "Here's a complete but small example module::" +msgstr "" + +#: ../Doc/library/doctest.rst:90 +msgid "" +"If you run :file:`example.py` directly from the command line, :mod:`doctest` " +"works its magic:" +msgstr "" + +#: ../Doc/library/doctest.rst:98 +msgid "" +"There's no output! That's normal, and it means all the examples worked. " +"Pass ``-v`` to the script, and :mod:`doctest` prints a detailed log of what " +"it's trying, and prints a summary at the end:" +msgstr "" + +#: ../Doc/library/doctest.rst:116 +msgid "And so on, eventually ending with:" +msgstr "" + +#: ../Doc/library/doctest.rst:135 +msgid "" +"That's all you need to know to start making productive use of :mod:" +"`doctest`! Jump in. The following sections provide full details. Note that " +"there are many examples of doctests in the standard Python test suite and " +"libraries. Especially useful examples can be found in the standard test " +"file :file:`Lib/test/test_doctest.py`." +msgstr "" + +#: ../Doc/library/doctest.rst:145 +msgid "Simple Usage: Checking Examples in Docstrings" +msgstr "" + +#: ../Doc/library/doctest.rst:147 +msgid "" +"The simplest way to start using doctest (but not necessarily the way you'll " +"continue to do it) is to end each module :mod:`M` with::" +msgstr "" + +#: ../Doc/library/doctest.rst:154 +msgid ":mod:`doctest` then examines docstrings in module :mod:`M`." +msgstr "" + +#: ../Doc/library/doctest.rst:156 +msgid "" +"Running the module as a script causes the examples in the docstrings to get " +"executed and verified::" +msgstr "" + +#: ../Doc/library/doctest.rst:161 +msgid "" +"This won't display anything unless an example fails, in which case the " +"failing example(s) and the cause(s) of the failure(s) are printed to stdout, " +"and the final line of output is ``***Test Failed*** N failures.``, where *N* " +"is the number of examples that failed." +msgstr "" + +#: ../Doc/library/doctest.rst:166 +msgid "Run it with the ``-v`` switch instead::" +msgstr "" + +#: ../Doc/library/doctest.rst:170 +msgid "" +"and a detailed report of all examples tried is printed to standard output, " +"along with assorted summaries at the end." +msgstr "" + +#: ../Doc/library/doctest.rst:173 +msgid "" +"You can force verbose mode by passing ``verbose=True`` to :func:`testmod`, " +"or prohibit it by passing ``verbose=False``. In either of those cases, " +"``sys.argv`` is not examined by :func:`testmod` (so passing ``-v`` or not " +"has no effect)." +msgstr "" + +#: ../Doc/library/doctest.rst:178 +msgid "" +"There is also a command line shortcut for running :func:`testmod`. You can " +"instruct the Python interpreter to run the doctest module directly from the " +"standard library and pass the module name(s) on the command line::" +msgstr "" + +#: ../Doc/library/doctest.rst:184 +msgid "" +"This will import :file:`example.py` as a standalone module and run :func:" +"`testmod` on it. Note that this may not work correctly if the file is part " +"of a package and imports other submodules from that package." +msgstr "" + +#: ../Doc/library/doctest.rst:188 +msgid "" +"For more information on :func:`testmod`, see section :ref:`doctest-basic-" +"api`." +msgstr "" + +#: ../Doc/library/doctest.rst:194 +msgid "Simple Usage: Checking Examples in a Text File" +msgstr "" + +#: ../Doc/library/doctest.rst:196 +msgid "" +"Another simple application of doctest is testing interactive examples in a " +"text file. This can be done with the :func:`testfile` function::" +msgstr "" + +#: ../Doc/library/doctest.rst:202 +msgid "" +"That short script executes and verifies any interactive Python examples " +"contained in the file :file:`example.txt`. The file content is treated as " +"if it were a single giant docstring; the file doesn't need to contain a " +"Python program! For example, perhaps :file:`example.txt` contains this:" +msgstr "" + +#: ../Doc/library/doctest.rst:225 +msgid "" +"Running ``doctest.testfile(\"example.txt\")`` then finds the error in this " +"documentation::" +msgstr "" + +#: ../Doc/library/doctest.rst:236 +msgid "" +"As with :func:`testmod`, :func:`testfile` won't display anything unless an " +"example fails. If an example does fail, then the failing example(s) and the " +"cause(s) of the failure(s) are printed to stdout, using the same format as :" +"func:`testmod`." +msgstr "" + +#: ../Doc/library/doctest.rst:241 +msgid "" +"By default, :func:`testfile` looks for files in the calling module's " +"directory. See section :ref:`doctest-basic-api` for a description of the " +"optional arguments that can be used to tell it to look for files in other " +"locations." +msgstr "" + +#: ../Doc/library/doctest.rst:245 +msgid "" +"Like :func:`testmod`, :func:`testfile`'s verbosity can be set with the ``-" +"v`` command-line switch or with the optional keyword argument *verbose*." +msgstr "" + +#: ../Doc/library/doctest.rst:249 +msgid "" +"There is also a command line shortcut for running :func:`testfile`. You can " +"instruct the Python interpreter to run the doctest module directly from the " +"standard library and pass the file name(s) on the command line::" +msgstr "" + +#: ../Doc/library/doctest.rst:255 +msgid "" +"Because the file name does not end with :file:`.py`, :mod:`doctest` infers " +"that it must be run with :func:`testfile`, not :func:`testmod`." +msgstr "" + +#: ../Doc/library/doctest.rst:258 +msgid "" +"For more information on :func:`testfile`, see section :ref:`doctest-basic-" +"api`." +msgstr "" + +#: ../Doc/library/doctest.rst:264 +msgid "How It Works" +msgstr "" + +#: ../Doc/library/doctest.rst:266 +msgid "" +"This section examines in detail how doctest works: which docstrings it looks " +"at, how it finds interactive examples, what execution context it uses, how " +"it handles exceptions, and how option flags can be used to control its " +"behavior. This is the information that you need to know to write doctest " +"examples; for information about actually running doctest on these examples, " +"see the following sections." +msgstr "" + +#: ../Doc/library/doctest.rst:277 +msgid "Which Docstrings Are Examined?" +msgstr "" + +#: ../Doc/library/doctest.rst:279 +msgid "" +"The module docstring, and all function, class and method docstrings are " +"searched. Objects imported into the module are not searched." +msgstr "" + +#: ../Doc/library/doctest.rst:282 +msgid "" +"In addition, if ``M.__test__`` exists and \"is true\", it must be a dict, " +"and each entry maps a (string) name to a function object, class object, or " +"string. Function and class object docstrings found from ``M.__test__`` are " +"searched, and strings are treated as if they were docstrings. In output, a " +"key ``K`` in ``M.__test__`` appears with name ::" +msgstr "" + +#: ../Doc/library/doctest.rst:290 +msgid "" +"Any classes found are recursively searched similarly, to test docstrings in " +"their contained methods and nested classes." +msgstr "" + +#: ../Doc/library/doctest.rst:301 +msgid "How are Docstring Examples Recognized?" +msgstr "" + +#: ../Doc/library/doctest.rst:303 +msgid "" +"In most cases a copy-and-paste of an interactive console session works fine, " +"but doctest isn't trying to do an exact emulation of any specific Python " +"shell." +msgstr "" + +#: ../Doc/library/doctest.rst:328 +msgid "" +"Any expected output must immediately follow the final ``'>>> '`` or ``'... " +"'`` line containing the code, and the expected output (if any) extends to " +"the next ``'>>> '`` or all-whitespace line." +msgstr "" + +#: ../Doc/library/doctest.rst:332 +msgid "The fine print:" +msgstr "" + +#: ../Doc/library/doctest.rst:334 +msgid "" +"Expected output cannot contain an all-whitespace line, since such a line is " +"taken to signal the end of expected output. If expected output does contain " +"a blank line, put ```` in your doctest example each place a blank " +"line is expected." +msgstr "" + +#: ../Doc/library/doctest.rst:339 +msgid "" +"All hard tab characters are expanded to spaces, using 8-column tab stops. " +"Tabs in output generated by the tested code are not modified. Because any " +"hard tabs in the sample output *are* expanded, this means that if the code " +"output includes hard tabs, the only way the doctest can pass is if the :" +"const:`NORMALIZE_WHITESPACE` option or :ref:`directive ` " +"is in effect. Alternatively, the test can be rewritten to capture the output " +"and compare it to an expected value as part of the test. This handling of " +"tabs in the source was arrived at through trial and error, and has proven to " +"be the least error prone way of handling them. It is possible to use a " +"different algorithm for handling tabs by writing a custom :class:" +"`DocTestParser` class." +msgstr "" + +#: ../Doc/library/doctest.rst:351 +msgid "" +"Output to stdout is captured, but not output to stderr (exception tracebacks " +"are captured via a different means)." +msgstr "" + +#: ../Doc/library/doctest.rst:354 +msgid "" +"If you continue a line via backslashing in an interactive session, or for " +"any other reason use a backslash, you should use a raw docstring, which will " +"preserve your backslashes exactly as you type them::" +msgstr "" + +#: ../Doc/library/doctest.rst:363 +msgid "" +"Otherwise, the backslash will be interpreted as part of the string. For " +"example, the ``\\n`` above would be interpreted as a newline character. " +"Alternatively, you can double each backslash in the doctest version (and not " +"use a raw string)::" +msgstr "" + +#: ../Doc/library/doctest.rst:372 +msgid "The starting column doesn't matter::" +msgstr "" + +#: ../Doc/library/doctest.rst:379 +msgid "" +"and as many leading whitespace characters are stripped from the expected " +"output as appeared in the initial ``'>>> '`` line that started the example." +msgstr "" + +#: ../Doc/library/doctest.rst:386 +msgid "What's the Execution Context?" +msgstr "" + +#: ../Doc/library/doctest.rst:388 +msgid "" +"By default, each time :mod:`doctest` finds a docstring to test, it uses a " +"*shallow copy* of :mod:`M`'s globals, so that running tests doesn't change " +"the module's real globals, and so that one test in :mod:`M` can't leave " +"behind crumbs that accidentally allow another test to work. This means " +"examples can freely use any names defined at top-level in :mod:`M`, and " +"names defined earlier in the docstring being run. Examples cannot see names " +"defined in other docstrings." +msgstr "" + +#: ../Doc/library/doctest.rst:396 +msgid "" +"You can force use of your own dict as the execution context by passing " +"``globs=your_dict`` to :func:`testmod` or :func:`testfile` instead." +msgstr "" + +#: ../Doc/library/doctest.rst:403 +msgid "What About Exceptions?" +msgstr "" + +#: ../Doc/library/doctest.rst:405 +msgid "" +"No problem, provided that the traceback is the only output produced by the " +"example: just paste in the traceback. [#]_ Since tracebacks contain details " +"that are likely to change rapidly (for example, exact file paths and line " +"numbers), this is one case where doctest works hard to be flexible in what " +"it accepts." +msgstr "" + +#: ../Doc/library/doctest.rst:411 +msgid "Simple example::" +msgstr "" + +#: ../Doc/library/doctest.rst:418 +msgid "" +"That doctest succeeds if :exc:`ValueError` is raised, with the ``list." +"remove(x): x not in list`` detail as shown." +msgstr "" + +#: ../Doc/library/doctest.rst:421 +msgid "" +"The expected output for an exception must start with a traceback header, " +"which may be either of the following two lines, indented the same as the " +"first line of the example::" +msgstr "" + +#: ../Doc/library/doctest.rst:428 +msgid "" +"The traceback header is followed by an optional traceback stack, whose " +"contents are ignored by doctest. The traceback stack is typically omitted, " +"or copied verbatim from an interactive session." +msgstr "" + +#: ../Doc/library/doctest.rst:432 +msgid "" +"The traceback stack is followed by the most interesting part: the line(s) " +"containing the exception type and detail. This is usually the last line of " +"a traceback, but can extend across multiple lines if the exception has a " +"multi-line detail::" +msgstr "" + +#: ../Doc/library/doctest.rst:444 +msgid "" +"The last three lines (starting with :exc:`ValueError`) are compared against " +"the exception's type and detail, and the rest are ignored." +msgstr "" + +#: ../Doc/library/doctest.rst:447 +msgid "" +"Best practice is to omit the traceback stack, unless it adds significant " +"documentation value to the example. So the last example is probably better " +"as::" +msgstr "" + +#: ../Doc/library/doctest.rst:457 +msgid "" +"Note that tracebacks are treated very specially. In particular, in the " +"rewritten example, the use of ``...`` is independent of doctest's :const:" +"`ELLIPSIS` option. The ellipsis in that example could be left out, or could " +"just as well be three (or three hundred) commas or digits, or an indented " +"transcript of a Monty Python skit." +msgstr "" + +#: ../Doc/library/doctest.rst:463 +msgid "Some details you should read once, but won't need to remember:" +msgstr "" + +#: ../Doc/library/doctest.rst:465 +msgid "" +"Doctest can't guess whether your expected output came from an exception " +"traceback or from ordinary printing. So, e.g., an example that expects " +"``ValueError: 42 is prime`` will pass whether :exc:`ValueError` is actually " +"raised or if the example merely prints that traceback text. In practice, " +"ordinary output rarely begins with a traceback header line, so this doesn't " +"create real problems." +msgstr "" + +#: ../Doc/library/doctest.rst:472 +msgid "" +"Each line of the traceback stack (if present) must be indented further than " +"the first line of the example, *or* start with a non-alphanumeric character. " +"The first line following the traceback header indented the same and starting " +"with an alphanumeric is taken to be the start of the exception detail. Of " +"course this does the right thing for genuine tracebacks." +msgstr "" + +#: ../Doc/library/doctest.rst:478 +msgid "" +"When the :const:`IGNORE_EXCEPTION_DETAIL` doctest option is specified, " +"everything following the leftmost colon and any module information in the " +"exception name is ignored." +msgstr "" + +#: ../Doc/library/doctest.rst:482 +msgid "" +"The interactive shell omits the traceback header line for some :exc:" +"`SyntaxError`\\ s. But doctest uses the traceback header line to " +"distinguish exceptions from non-exceptions. So in the rare case where you " +"need to test a :exc:`SyntaxError` that omits the traceback header, you will " +"need to manually add the traceback header line to your test example." +msgstr "" + +#: ../Doc/library/doctest.rst:490 +msgid "" +"For some :exc:`SyntaxError`\\ s, Python displays the character position of " +"the syntax error, using a ``^`` marker::" +msgstr "" + +#: ../Doc/library/doctest.rst:499 +msgid "" +"Since the lines showing the position of the error come before the exception " +"type and detail, they are not checked by doctest. For example, the " +"following test would pass, even though it puts the ``^`` marker in the wrong " +"location::" +msgstr "" + +#: ../Doc/library/doctest.rst:515 +msgid "Option Flags" +msgstr "" + +#: ../Doc/library/doctest.rst:517 +msgid "" +"A number of option flags control various aspects of doctest's behavior. " +"Symbolic names for the flags are supplied as module constants, which can be :" +"ref:`bitwise ORed ` together and passed to various functions. The " +"names can also be used in :ref:`doctest directives `, " +"and may be passed to the doctest command line interface via the ``-o`` " +"option." +msgstr "" + +#: ../Doc/library/doctest.rst:523 +msgid "The ``-o`` command line option." +msgstr "" + +#: ../Doc/library/doctest.rst:526 +msgid "" +"The first group of options define test semantics, controlling aspects of how " +"doctest decides whether actual output matches an example's expected output:" +msgstr "" + +#: ../Doc/library/doctest.rst:532 +msgid "" +"By default, if an expected output block contains just ``1``, an actual " +"output block containing just ``1`` or just ``True`` is considered to be a " +"match, and similarly for ``0`` versus ``False``. When :const:" +"`DONT_ACCEPT_TRUE_FOR_1` is specified, neither substitution is allowed. The " +"default behavior caters to that Python changed the return type of many " +"functions from integer to boolean; doctests expecting \"little integer\" " +"output still work in these cases. This option will probably go away, but " +"not for several years." +msgstr "" + +#: ../Doc/library/doctest.rst:544 +msgid "" +"By default, if an expected output block contains a line containing only the " +"string ````, then that line will match a blank line in the actual " +"output. Because a genuinely blank line delimits the expected output, this " +"is the only way to communicate that a blank line is expected. When :const:" +"`DONT_ACCEPT_BLANKLINE` is specified, this substitution is not allowed." +msgstr "" + +#: ../Doc/library/doctest.rst:553 +msgid "" +"When specified, all sequences of whitespace (blanks and newlines) are " +"treated as equal. Any sequence of whitespace within the expected output " +"will match any sequence of whitespace within the actual output. By default, " +"whitespace must match exactly. :const:`NORMALIZE_WHITESPACE` is especially " +"useful when a line of expected output is very long, and you want to wrap it " +"across multiple lines in your source." +msgstr "" + +#: ../Doc/library/doctest.rst:564 +msgid "" +"When specified, an ellipsis marker (``...``) in the expected output can " +"match any substring in the actual output. This includes substrings that " +"span line boundaries, and empty substrings, so it's best to keep usage of " +"this simple. Complicated uses can lead to the same kinds of \"oops, it " +"matched too much!\" surprises that ``.*`` is prone to in regular expressions." +msgstr "" + +#: ../Doc/library/doctest.rst:573 +msgid "" +"When specified, an example that expects an exception passes if an exception " +"of the expected type is raised, even if the exception detail does not " +"match. For example, an example expecting ``ValueError: 42`` will pass if " +"the actual exception raised is ``ValueError: 3*14``, but will fail, e.g., " +"if :exc:`TypeError` is raised." +msgstr "" + +#: ../Doc/library/doctest.rst:579 +msgid "" +"It will also ignore the module name used in Python 3 doctest reports. Hence " +"both of these variations will work with the flag specified, regardless of " +"whether the test is run under Python 2.7 or Python 3.2 (or later versions)::" +msgstr "" + +#: ../Doc/library/doctest.rst:591 +msgid "" +"Note that :const:`ELLIPSIS` can also be used to ignore the details of the " +"exception message, but such a test may still fail based on whether or not " +"the module details are printed as part of the exception name. Using :const:" +"`IGNORE_EXCEPTION_DETAIL` and the details from Python 2.3 is also the only " +"clear way to write a doctest that doesn't care about the exception detail " +"yet continues to pass under Python 2.3 or earlier (those releases do not " +"support :ref:`doctest directives ` and ignore them as " +"irrelevant comments). For example::" +msgstr "" + +#: ../Doc/library/doctest.rst:605 +msgid "" +"passes under Python 2.3 and later Python versions with the flag specified, " +"even though the detail changed in Python 2.4 to say \"does not\" instead of " +"\"doesn't\"." +msgstr "" + +#: ../Doc/library/doctest.rst:609 +msgid "" +":const:`IGNORE_EXCEPTION_DETAIL` now also ignores any information relating " +"to the module containing the exception under test." +msgstr "" + +#: ../Doc/library/doctest.rst:616 +msgid "" +"When specified, do not run the example at all. This can be useful in " +"contexts where doctest examples serve as both documentation and test cases, " +"and an example should be included for documentation purposes, but should not " +"be checked. E.g., the example's output might be random; or the example " +"might depend on resources which would be unavailable to the test driver." +msgstr "" + +#: ../Doc/library/doctest.rst:622 +msgid "" +"The SKIP flag can also be used for temporarily \"commenting out\" examples." +msgstr "" + +#: ../Doc/library/doctest.rst:627 +msgid "A bitmask or'ing together all the comparison flags above." +msgstr "" + +#: ../Doc/library/doctest.rst:629 +msgid "The second group of options controls how test failures are reported:" +msgstr "" + +#: ../Doc/library/doctest.rst:634 +msgid "" +"When specified, failures that involve multi-line expected and actual outputs " +"are displayed using a unified diff." +msgstr "" + +#: ../Doc/library/doctest.rst:640 +msgid "" +"When specified, failures that involve multi-line expected and actual outputs " +"will be displayed using a context diff." +msgstr "" + +#: ../Doc/library/doctest.rst:646 +msgid "" +"When specified, differences are computed by ``difflib.Differ``, using the " +"same algorithm as the popular :file:`ndiff.py` utility. This is the only " +"method that marks differences within lines as well as across lines. For " +"example, if a line of expected output contains digit ``1`` where actual " +"output contains letter ``l``, a line is inserted with a caret marking the " +"mismatching column positions." +msgstr "" + +#: ../Doc/library/doctest.rst:655 +msgid "" +"When specified, display the first failing example in each doctest, but " +"suppress output for all remaining examples. This will prevent doctest from " +"reporting correct examples that break because of earlier failures; but it " +"might also hide incorrect examples that fail independently of the first " +"failure. When :const:`REPORT_ONLY_FIRST_FAILURE` is specified, the " +"remaining examples are still run, and still count towards the total number " +"of failures reported; only the output is suppressed." +msgstr "" + +#: ../Doc/library/doctest.rst:666 +msgid "" +"When specified, exit after the first failing example and don't attempt to " +"run the remaining examples. Thus, the number of failures reported will be at " +"most 1. This flag may be useful during debugging, since examples after the " +"first failure won't even produce debugging output." +msgstr "" + +#: ../Doc/library/doctest.rst:671 +msgid "" +"The doctest command line accepts the option ``-f`` as a shorthand for ``-o " +"FAIL_FAST``." +msgstr "" + +#: ../Doc/library/doctest.rst:679 +msgid "A bitmask or'ing together all the reporting flags above." +msgstr "" + +#: ../Doc/library/doctest.rst:682 +msgid "" +"There is also a way to register new option flag names, though this isn't " +"useful unless you intend to extend :mod:`doctest` internals via subclassing:" +msgstr "" + +#: ../Doc/library/doctest.rst:688 +msgid "" +"Create a new option flag with a given name, and return the new flag's " +"integer value. :func:`register_optionflag` can be used when subclassing :" +"class:`OutputChecker` or :class:`DocTestRunner` to create new options that " +"are supported by your subclasses. :func:`register_optionflag` should always " +"be called using the following idiom::" +msgstr "" + +#: ../Doc/library/doctest.rst:704 +msgid "Directives" +msgstr "" + +#: ../Doc/library/doctest.rst:706 +msgid "" +"Doctest directives may be used to modify the :ref:`option flags ` for an individual example. Doctest directives are special Python " +"comments following an example's source code:" +msgstr "" + +#: ../Doc/library/doctest.rst:717 +msgid "" +"Whitespace is not allowed between the ``+`` or ``-`` and the directive " +"option name. The directive option name can be any of the option flag names " +"explained above." +msgstr "" + +#: ../Doc/library/doctest.rst:721 +msgid "" +"An example's doctest directives modify doctest's behavior for that single " +"example. Use ``+`` to enable the named behavior, or ``-`` to disable it." +msgstr "" + +#: ../Doc/library/doctest.rst:724 +msgid "For example, this test passes::" +msgstr "" + +#: ../Doc/library/doctest.rst:730 +msgid "" +"Without the directive it would fail, both because the actual output doesn't " +"have two blanks before the single-digit list elements, and because the " +"actual output is on a single line. This test also passes, and also requires " +"a directive to do so::" +msgstr "" + +#: ../Doc/library/doctest.rst:738 +msgid "" +"Multiple directives can be used on a single physical line, separated by " +"commas::" +msgstr "" + +#: ../Doc/library/doctest.rst:744 +msgid "" +"If multiple directive comments are used for a single example, then they are " +"combined::" +msgstr "" + +#: ../Doc/library/doctest.rst:751 +msgid "" +"As the previous example shows, you can add ``...`` lines to your example " +"containing only directives. This can be useful when an example is too long " +"for a directive to comfortably fit on the same line::" +msgstr "" + +#: ../Doc/library/doctest.rst:759 +msgid "" +"Note that since all options are disabled by default, and directives apply " +"only to the example they appear in, enabling options (via ``+`` in a " +"directive) is usually the only meaningful choice. However, option flags can " +"also be passed to functions that run doctests, establishing different " +"defaults. In such cases, disabling an option via ``-`` in a directive can " +"be useful." +msgstr "" + +#: ../Doc/library/doctest.rst:769 +msgid "Warnings" +msgstr "Avertissements" + +#: ../Doc/library/doctest.rst:771 +msgid "" +":mod:`doctest` is serious about requiring exact matches in expected output. " +"If even a single character doesn't match, the test fails. This will " +"probably surprise you a few times, as you learn exactly what Python does and " +"doesn't guarantee about output. For example, when printing a set, Python " +"doesn't guarantee that the element is printed in any particular order, so a " +"test like ::" +msgstr "" + +#: ../Doc/library/doctest.rst:780 +msgid "is vulnerable! One workaround is to do ::" +msgstr "" + +#: ../Doc/library/doctest.rst:785 +msgid "instead. Another is to do ::" +msgstr "" + +#: ../Doc/library/doctest.rst:793 +msgid "" +"Before Python 3.6, when printing a dict, Python did not guarantee that the " +"key-value pairs was printed in any particular order." +msgstr "" + +#: ../Doc/library/doctest.rst:796 +msgid "There are others, but you get the idea." +msgstr "" + +#: ../Doc/library/doctest.rst:798 +msgid "" +"Another bad idea is to print things that embed an object address, like ::" +msgstr "" + +#: ../Doc/library/doctest.rst:806 +msgid "" +"The :const:`ELLIPSIS` directive gives a nice approach for the last example::" +msgstr "" + +#: ../Doc/library/doctest.rst:811 +msgid "" +"Floating-point numbers are also subject to small output variations across " +"platforms, because Python defers to the platform C library for float " +"formatting, and C libraries vary widely in quality here. ::" +msgstr "" + +#: ../Doc/library/doctest.rst:822 +msgid "" +"Numbers of the form ``I/2.**J`` are safe across all platforms, and I often " +"contrive doctest examples to produce numbers of that form::" +msgstr "" + +#: ../Doc/library/doctest.rst:828 +msgid "" +"Simple fractions are also easier for people to understand, and that makes " +"for better documentation." +msgstr "" + +#: ../Doc/library/doctest.rst:835 +msgid "Basic API" +msgstr "" + +#: ../Doc/library/doctest.rst:837 +msgid "" +"The functions :func:`testmod` and :func:`testfile` provide a simple " +"interface to doctest that should be sufficient for most basic uses. For a " +"less formal introduction to these two functions, see sections :ref:`doctest-" +"simple-testmod` and :ref:`doctest-simple-testfile`." +msgstr "" + +#: ../Doc/library/doctest.rst:845 +msgid "" +"All arguments except *filename* are optional, and should be specified in " +"keyword form." +msgstr "" + +#: ../Doc/library/doctest.rst:848 +msgid "" +"Test examples in the file named *filename*. Return ``(failure_count, " +"test_count)``." +msgstr "" + +#: ../Doc/library/doctest.rst:851 +msgid "" +"Optional argument *module_relative* specifies how the filename should be " +"interpreted:" +msgstr "" + +#: ../Doc/library/doctest.rst:854 +msgid "" +"If *module_relative* is ``True`` (the default), then *filename* specifies an " +"OS-independent module-relative path. By default, this path is relative to " +"the calling module's directory; but if the *package* argument is specified, " +"then it is relative to that package. To ensure OS-independence, *filename* " +"should use ``/`` characters to separate path segments, and may not be an " +"absolute path (i.e., it may not begin with ``/``)." +msgstr "" + +#: ../Doc/library/doctest.rst:861 +msgid "" +"If *module_relative* is ``False``, then *filename* specifies an OS-specific " +"path. The path may be absolute or relative; relative paths are resolved " +"with respect to the current working directory." +msgstr "" + +#: ../Doc/library/doctest.rst:865 +msgid "" +"Optional argument *name* gives the name of the test; by default, or if " +"``None``, ``os.path.basename(filename)`` is used." +msgstr "" + +#: ../Doc/library/doctest.rst:868 +msgid "" +"Optional argument *package* is a Python package or the name of a Python " +"package whose directory should be used as the base directory for a module-" +"relative filename. If no package is specified, then the calling module's " +"directory is used as the base directory for module-relative filenames. It " +"is an error to specify *package* if *module_relative* is ``False``." +msgstr "" + +#: ../Doc/library/doctest.rst:874 +msgid "" +"Optional argument *globs* gives a dict to be used as the globals when " +"executing examples. A new shallow copy of this dict is created for the " +"doctest, so its examples start with a clean slate. By default, or if " +"``None``, a new empty dict is used." +msgstr "" + +#: ../Doc/library/doctest.rst:879 +msgid "" +"Optional argument *extraglobs* gives a dict merged into the globals used to " +"execute examples. This works like :meth:`dict.update`: if *globs* and " +"*extraglobs* have a common key, the associated value in *extraglobs* appears " +"in the combined dict. By default, or if ``None``, no extra globals are " +"used. This is an advanced feature that allows parameterization of " +"doctests. For example, a doctest can be written for a base class, using a " +"generic name for the class, then reused to test any number of subclasses by " +"passing an *extraglobs* dict mapping the generic name to the subclass to be " +"tested." +msgstr "" + +#: ../Doc/library/doctest.rst:888 +msgid "" +"Optional argument *verbose* prints lots of stuff if true, and prints only " +"failures if false; by default, or if ``None``, it's true if and only if ``'-" +"v'`` is in ``sys.argv``." +msgstr "" + +#: ../Doc/library/doctest.rst:892 +msgid "" +"Optional argument *report* prints a summary at the end when true, else " +"prints nothing at the end. In verbose mode, the summary is detailed, else " +"the summary is very brief (in fact, empty if all tests passed)." +msgstr "" + +#: ../Doc/library/doctest.rst:896 +msgid "" +"Optional argument *optionflags* (default value 0) takes the :ref:`bitwise OR " +"` of option flags. See section :ref:`doctest-options`." +msgstr "" + +#: ../Doc/library/doctest.rst:900 +msgid "" +"Optional argument *raise_on_error* defaults to false. If true, an exception " +"is raised upon the first failure or unexpected exception in an example. " +"This allows failures to be post-mortem debugged. Default behavior is to " +"continue running examples." +msgstr "" + +#: ../Doc/library/doctest.rst:905 ../Doc/library/doctest.rst:1045 +msgid "" +"Optional argument *parser* specifies a :class:`DocTestParser` (or subclass) " +"that should be used to extract tests from the files. It defaults to a " +"normal parser (i.e., ``DocTestParser()``)." +msgstr "" + +#: ../Doc/library/doctest.rst:909 ../Doc/library/doctest.rst:1049 +msgid "" +"Optional argument *encoding* specifies an encoding that should be used to " +"convert the file to unicode." +msgstr "" + +#: ../Doc/library/doctest.rst:915 +msgid "" +"All arguments are optional, and all except for *m* should be specified in " +"keyword form." +msgstr "" + +#: ../Doc/library/doctest.rst:918 +msgid "" +"Test examples in docstrings in functions and classes reachable from module " +"*m* (or module :mod:`__main__` if *m* is not supplied or is ``None``), " +"starting with ``m.__doc__``." +msgstr "" + +#: ../Doc/library/doctest.rst:922 +msgid "" +"Also test examples reachable from dict ``m.__test__``, if it exists and is " +"not ``None``. ``m.__test__`` maps names (strings) to functions, classes and " +"strings; function and class docstrings are searched for examples; strings " +"are searched directly, as if they were docstrings." +msgstr "" + +#: ../Doc/library/doctest.rst:927 +msgid "" +"Only docstrings attached to objects belonging to module *m* are searched." +msgstr "" + +#: ../Doc/library/doctest.rst:929 +msgid "Return ``(failure_count, test_count)``." +msgstr "" + +#: ../Doc/library/doctest.rst:931 +msgid "" +"Optional argument *name* gives the name of the module; by default, or if " +"``None``, ``m.__name__`` is used." +msgstr "" + +#: ../Doc/library/doctest.rst:934 +msgid "" +"Optional argument *exclude_empty* defaults to false. If true, objects for " +"which no doctests are found are excluded from consideration. The default is " +"a backward compatibility hack, so that code still using :meth:`doctest." +"master.summarize` in conjunction with :func:`testmod` continues to get " +"output for objects with no tests. The *exclude_empty* argument to the newer :" +"class:`DocTestFinder` constructor defaults to true." +msgstr "" + +#: ../Doc/library/doctest.rst:941 +msgid "" +"Optional arguments *extraglobs*, *verbose*, *report*, *optionflags*, " +"*raise_on_error*, and *globs* are the same as for function :func:`testfile` " +"above, except that *globs* defaults to ``m.__dict__``." +msgstr "" + +#: ../Doc/library/doctest.rst:948 +msgid "" +"Test examples associated with object *f*; for example, *f* may be a string, " +"a module, a function, or a class object." +msgstr "" + +#: ../Doc/library/doctest.rst:951 +msgid "" +"A shallow copy of dictionary argument *globs* is used for the execution " +"context." +msgstr "" + +#: ../Doc/library/doctest.rst:953 +msgid "" +"Optional argument *name* is used in failure messages, and defaults to ``" +"\"NoName\"``." +msgstr "" + +#: ../Doc/library/doctest.rst:956 +msgid "" +"If optional argument *verbose* is true, output is generated even if there " +"are no failures. By default, output is generated only in case of an example " +"failure." +msgstr "" + +#: ../Doc/library/doctest.rst:959 +msgid "" +"Optional argument *compileflags* gives the set of flags that should be used " +"by the Python compiler when running the examples. By default, or if " +"``None``, flags are deduced corresponding to the set of future features " +"found in *globs*." +msgstr "" + +#: ../Doc/library/doctest.rst:963 +msgid "" +"Optional argument *optionflags* works as for function :func:`testfile` above." +msgstr "" + +#: ../Doc/library/doctest.rst:969 +msgid "Unittest API" +msgstr "" + +#: ../Doc/library/doctest.rst:971 +msgid "" +"As your collection of doctest'ed modules grows, you'll want a way to run all " +"their doctests systematically. :mod:`doctest` provides two functions that " +"can be used to create :mod:`unittest` test suites from modules and text " +"files containing doctests. To integrate with :mod:`unittest` test " +"discovery, include a :func:`load_tests` function in your test module::" +msgstr "" + +#: ../Doc/library/doctest.rst:985 +msgid "" +"There are two main functions for creating :class:`unittest.TestSuite` " +"instances from text files and modules with doctests:" +msgstr "" + +#: ../Doc/library/doctest.rst:991 +msgid "" +"Convert doctest tests from one or more text files to a :class:`unittest." +"TestSuite`." +msgstr "" + +#: ../Doc/library/doctest.rst:994 +msgid "" +"The returned :class:`unittest.TestSuite` is to be run by the unittest " +"framework and runs the interactive examples in each file. If an example in " +"any file fails, then the synthesized unit test fails, and a :exc:" +"`failureException` exception is raised showing the name of the file " +"containing the test and a (sometimes approximate) line number." +msgstr "" + +#: ../Doc/library/doctest.rst:1000 +msgid "Pass one or more paths (as strings) to text files to be examined." +msgstr "" + +#: ../Doc/library/doctest.rst:1002 +msgid "Options may be provided as keyword arguments:" +msgstr "" + +#: ../Doc/library/doctest.rst:1004 +msgid "" +"Optional argument *module_relative* specifies how the filenames in *paths* " +"should be interpreted:" +msgstr "" + +#: ../Doc/library/doctest.rst:1007 +msgid "" +"If *module_relative* is ``True`` (the default), then each filename in " +"*paths* specifies an OS-independent module-relative path. By default, this " +"path is relative to the calling module's directory; but if the *package* " +"argument is specified, then it is relative to that package. To ensure OS-" +"independence, each filename should use ``/`` characters to separate path " +"segments, and may not be an absolute path (i.e., it may not begin with ``/" +"``)." +msgstr "" + +#: ../Doc/library/doctest.rst:1015 +msgid "" +"If *module_relative* is ``False``, then each filename in *paths* specifies " +"an OS-specific path. The path may be absolute or relative; relative paths " +"are resolved with respect to the current working directory." +msgstr "" + +#: ../Doc/library/doctest.rst:1019 +msgid "" +"Optional argument *package* is a Python package or the name of a Python " +"package whose directory should be used as the base directory for module-" +"relative filenames in *paths*. If no package is specified, then the calling " +"module's directory is used as the base directory for module-relative " +"filenames. It is an error to specify *package* if *module_relative* is " +"``False``." +msgstr "" + +#: ../Doc/library/doctest.rst:1026 +msgid "" +"Optional argument *setUp* specifies a set-up function for the test suite. " +"This is called before running the tests in each file. The *setUp* function " +"will be passed a :class:`DocTest` object. The setUp function can access the " +"test globals as the *globs* attribute of the test passed." +msgstr "" + +#: ../Doc/library/doctest.rst:1031 +msgid "" +"Optional argument *tearDown* specifies a tear-down function for the test " +"suite. This is called after running the tests in each file. The *tearDown* " +"function will be passed a :class:`DocTest` object. The setUp function can " +"access the test globals as the *globs* attribute of the test passed." +msgstr "" + +#: ../Doc/library/doctest.rst:1036 ../Doc/library/doctest.rst:1070 +msgid "" +"Optional argument *globs* is a dictionary containing the initial global " +"variables for the tests. A new copy of this dictionary is created for each " +"test. By default, *globs* is a new empty dictionary." +msgstr "" + +#: ../Doc/library/doctest.rst:1040 +msgid "" +"Optional argument *optionflags* specifies the default doctest options for " +"the tests, created by or-ing together individual option flags. See section :" +"ref:`doctest-options`. See function :func:`set_unittest_reportflags` below " +"for a better way to set reporting options." +msgstr "" + +#: ../Doc/library/doctest.rst:1052 +msgid "" +"The global ``__file__`` is added to the globals provided to doctests loaded " +"from a text file using :func:`DocFileSuite`." +msgstr "" + +#: ../Doc/library/doctest.rst:1058 +msgid "Convert doctest tests for a module to a :class:`unittest.TestSuite`." +msgstr "" + +#: ../Doc/library/doctest.rst:1060 +msgid "" +"The returned :class:`unittest.TestSuite` is to be run by the unittest " +"framework and runs each doctest in the module. If any of the doctests fail, " +"then the synthesized unit test fails, and a :exc:`failureException` " +"exception is raised showing the name of the file containing the test and a " +"(sometimes approximate) line number." +msgstr "" + +#: ../Doc/library/doctest.rst:1066 +msgid "" +"Optional argument *module* provides the module to be tested. It can be a " +"module object or a (possibly dotted) module name. If not specified, the " +"module calling this function is used." +msgstr "" + +#: ../Doc/library/doctest.rst:1074 +msgid "" +"Optional argument *extraglobs* specifies an extra set of global variables, " +"which is merged into *globs*. By default, no extra globals are used." +msgstr "" + +#: ../Doc/library/doctest.rst:1077 +msgid "" +"Optional argument *test_finder* is the :class:`DocTestFinder` object (or a " +"drop-in replacement) that is used to extract doctests from the module." +msgstr "" + +#: ../Doc/library/doctest.rst:1080 +msgid "" +"Optional arguments *setUp*, *tearDown*, and *optionflags* are the same as " +"for function :func:`DocFileSuite` above." +msgstr "" + +#: ../Doc/library/doctest.rst:1083 +msgid "This function uses the same search technique as :func:`testmod`." +msgstr "" + +#: ../Doc/library/doctest.rst:1085 +msgid "" +":func:`DocTestSuite` returns an empty :class:`unittest.TestSuite` if " +"*module* contains no docstrings instead of raising :exc:`ValueError`." +msgstr "" + +#: ../Doc/library/doctest.rst:1090 +msgid "" +"Under the covers, :func:`DocTestSuite` creates a :class:`unittest.TestSuite` " +"out of :class:`doctest.DocTestCase` instances, and :class:`DocTestCase` is a " +"subclass of :class:`unittest.TestCase`. :class:`DocTestCase` isn't " +"documented here (it's an internal detail), but studying its code can answer " +"questions about the exact details of :mod:`unittest` integration." +msgstr "" + +#: ../Doc/library/doctest.rst:1096 +msgid "" +"Similarly, :func:`DocFileSuite` creates a :class:`unittest.TestSuite` out " +"of :class:`doctest.DocFileCase` instances, and :class:`DocFileCase` is a " +"subclass of :class:`DocTestCase`." +msgstr "" + +#: ../Doc/library/doctest.rst:1100 +msgid "" +"So both ways of creating a :class:`unittest.TestSuite` run instances of :" +"class:`DocTestCase`. This is important for a subtle reason: when you run :" +"mod:`doctest` functions yourself, you can control the :mod:`doctest` options " +"in use directly, by passing option flags to :mod:`doctest` functions. " +"However, if you're writing a :mod:`unittest` framework, :mod:`unittest` " +"ultimately controls when and how tests get run. The framework author " +"typically wants to control :mod:`doctest` reporting options (perhaps, e.g., " +"specified by command line options), but there's no way to pass options " +"through :mod:`unittest` to :mod:`doctest` test runners." +msgstr "" + +#: ../Doc/library/doctest.rst:1110 +msgid "" +"For this reason, :mod:`doctest` also supports a notion of :mod:`doctest` " +"reporting flags specific to :mod:`unittest` support, via this function:" +msgstr "" + +#: ../Doc/library/doctest.rst:1116 +msgid "Set the :mod:`doctest` reporting flags to use." +msgstr "" + +#: ../Doc/library/doctest.rst:1118 +msgid "" +"Argument *flags* takes the :ref:`bitwise OR ` of option flags. See " +"section :ref:`doctest-options`. Only \"reporting flags\" can be used." +msgstr "" + +#: ../Doc/library/doctest.rst:1121 +msgid "" +"This is a module-global setting, and affects all future doctests run by " +"module :mod:`unittest`: the :meth:`runTest` method of :class:`DocTestCase` " +"looks at the option flags specified for the test case when the :class:" +"`DocTestCase` instance was constructed. If no reporting flags were " +"specified (which is the typical and expected case), :mod:`doctest`'s :mod:" +"`unittest` reporting flags are :ref:`bitwise ORed ` into the option " +"flags, and the option flags so augmented are passed to the :class:" +"`DocTestRunner` instance created to run the doctest. If any reporting flags " +"were specified when the :class:`DocTestCase` instance was constructed, :mod:" +"`doctest`'s :mod:`unittest` reporting flags are ignored." +msgstr "" + +#: ../Doc/library/doctest.rst:1132 +msgid "" +"The value of the :mod:`unittest` reporting flags in effect before the " +"function was called is returned by the function." +msgstr "" + +#: ../Doc/library/doctest.rst:1139 +msgid "Advanced API" +msgstr "" + +#: ../Doc/library/doctest.rst:1141 +msgid "" +"The basic API is a simple wrapper that's intended to make doctest easy to " +"use. It is fairly flexible, and should meet most users' needs; however, if " +"you require more fine-grained control over testing, or wish to extend " +"doctest's capabilities, then you should use the advanced API." +msgstr "" + +#: ../Doc/library/doctest.rst:1146 +msgid "" +"The advanced API revolves around two container classes, which are used to " +"store the interactive examples extracted from doctest cases:" +msgstr "" + +#: ../Doc/library/doctest.rst:1149 +msgid "" +":class:`Example`: A single Python :term:`statement`, paired with its " +"expected output." +msgstr "" + +#: ../Doc/library/doctest.rst:1152 +msgid "" +":class:`DocTest`: A collection of :class:`Example`\\ s, typically extracted " +"from a single docstring or text file." +msgstr "" + +#: ../Doc/library/doctest.rst:1155 +msgid "" +"Additional processing classes are defined to find, parse, and run, and check " +"doctest examples:" +msgstr "" + +#: ../Doc/library/doctest.rst:1158 +msgid "" +":class:`DocTestFinder`: Finds all docstrings in a given module, and uses a :" +"class:`DocTestParser` to create a :class:`DocTest` from every docstring that " +"contains interactive examples." +msgstr "" + +#: ../Doc/library/doctest.rst:1162 +msgid "" +":class:`DocTestParser`: Creates a :class:`DocTest` object from a string " +"(such as an object's docstring)." +msgstr "" + +#: ../Doc/library/doctest.rst:1165 +msgid "" +":class:`DocTestRunner`: Executes the examples in a :class:`DocTest`, and " +"uses an :class:`OutputChecker` to verify their output." +msgstr "" + +#: ../Doc/library/doctest.rst:1168 +msgid "" +":class:`OutputChecker`: Compares the actual output from a doctest example " +"with the expected output, and decides whether they match." +msgstr "" + +#: ../Doc/library/doctest.rst:1171 +msgid "" +"The relationships among these processing classes are summarized in the " +"following diagram::" +msgstr "" + +#: ../Doc/library/doctest.rst:1187 +msgid "DocTest Objects" +msgstr "" + +#: ../Doc/library/doctest.rst:1192 +msgid "" +"A collection of doctest examples that should be run in a single namespace. " +"The constructor arguments are used to initialize the attributes of the same " +"names." +msgstr "" + +#: ../Doc/library/doctest.rst:1196 +msgid "" +":class:`DocTest` defines the following attributes. They are initialized by " +"the constructor, and should not be modified directly." +msgstr "" + +#: ../Doc/library/doctest.rst:1202 +msgid "" +"A list of :class:`Example` objects encoding the individual interactive " +"Python examples that should be run by this test." +msgstr "" + +#: ../Doc/library/doctest.rst:1208 +msgid "" +"The namespace (aka globals) that the examples should be run in. This is a " +"dictionary mapping names to values. Any changes to the namespace made by " +"the examples (such as binding new variables) will be reflected in :attr:" +"`globs` after the test is run." +msgstr "" + +#: ../Doc/library/doctest.rst:1216 +msgid "" +"A string name identifying the :class:`DocTest`. Typically, this is the name " +"of the object or file that the test was extracted from." +msgstr "" + +#: ../Doc/library/doctest.rst:1222 +msgid "" +"The name of the file that this :class:`DocTest` was extracted from; or " +"``None`` if the filename is unknown, or if the :class:`DocTest` was not " +"extracted from a file." +msgstr "" + +#: ../Doc/library/doctest.rst:1229 +msgid "" +"The line number within :attr:`filename` where this :class:`DocTest` begins, " +"or ``None`` if the line number is unavailable. This line number is zero-" +"based with respect to the beginning of the file." +msgstr "" + +#: ../Doc/library/doctest.rst:1236 +msgid "" +"The string that the test was extracted from, or ``None`` if the string is " +"unavailable, or if the test was not extracted from a string." +msgstr "" + +#: ../Doc/library/doctest.rst:1243 +msgid "Example Objects" +msgstr "" + +#: ../Doc/library/doctest.rst:1248 +msgid "" +"A single interactive example, consisting of a Python statement and its " +"expected output. The constructor arguments are used to initialize the " +"attributes of the same names." +msgstr "" + +#: ../Doc/library/doctest.rst:1253 +msgid "" +":class:`Example` defines the following attributes. They are initialized by " +"the constructor, and should not be modified directly." +msgstr "" + +#: ../Doc/library/doctest.rst:1259 +msgid "" +"A string containing the example's source code. This source code consists of " +"a single Python statement, and always ends with a newline; the constructor " +"adds a newline when necessary." +msgstr "" + +#: ../Doc/library/doctest.rst:1266 +msgid "" +"The expected output from running the example's source code (either from " +"stdout, or a traceback in case of exception). :attr:`want` ends with a " +"newline unless no output is expected, in which case it's an empty string. " +"The constructor adds a newline when necessary." +msgstr "" + +#: ../Doc/library/doctest.rst:1274 +msgid "" +"The exception message generated by the example, if the example is expected " +"to generate an exception; or ``None`` if it is not expected to generate an " +"exception. This exception message is compared against the return value of :" +"func:`traceback.format_exception_only`. :attr:`exc_msg` ends with a newline " +"unless it's ``None``. The constructor adds a newline if needed." +msgstr "" + +#: ../Doc/library/doctest.rst:1283 +msgid "" +"The line number within the string containing this example where the example " +"begins. This line number is zero-based with respect to the beginning of the " +"containing string." +msgstr "" + +#: ../Doc/library/doctest.rst:1290 +msgid "" +"The example's indentation in the containing string, i.e., the number of " +"space characters that precede the example's first prompt." +msgstr "" + +#: ../Doc/library/doctest.rst:1296 +msgid "" +"A dictionary mapping from option flags to ``True`` or ``False``, which is " +"used to override default options for this example. Any option flags not " +"contained in this dictionary are left at their default value (as specified " +"by the :class:`DocTestRunner`'s :attr:`optionflags`). By default, no options " +"are set." +msgstr "" + +#: ../Doc/library/doctest.rst:1305 +msgid "DocTestFinder objects" +msgstr "" + +#: ../Doc/library/doctest.rst:1310 +msgid "" +"A processing class used to extract the :class:`DocTest`\\ s that are " +"relevant to a given object, from its docstring and the docstrings of its " +"contained objects. :class:`DocTest`\\ s can be extracted from modules, " +"classes, functions, methods, staticmethods, classmethods, and properties." +msgstr "" + +#: ../Doc/library/doctest.rst:1315 +msgid "" +"The optional argument *verbose* can be used to display the objects searched " +"by the finder. It defaults to ``False`` (no output)." +msgstr "" + +#: ../Doc/library/doctest.rst:1318 +msgid "" +"The optional argument *parser* specifies the :class:`DocTestParser` object " +"(or a drop-in replacement) that is used to extract doctests from docstrings." +msgstr "" + +#: ../Doc/library/doctest.rst:1321 +msgid "" +"If the optional argument *recurse* is false, then :meth:`DocTestFinder.find` " +"will only examine the given object, and not any contained objects." +msgstr "" + +#: ../Doc/library/doctest.rst:1324 +msgid "" +"If the optional argument *exclude_empty* is false, then :meth:`DocTestFinder." +"find` will include tests for objects with empty docstrings." +msgstr "" + +#: ../Doc/library/doctest.rst:1328 +msgid ":class:`DocTestFinder` defines the following method:" +msgstr "" + +#: ../Doc/library/doctest.rst:1333 +msgid "" +"Return a list of the :class:`DocTest`\\ s that are defined by *obj*'s " +"docstring, or by any of its contained objects' docstrings." +msgstr "" + +#: ../Doc/library/doctest.rst:1336 +msgid "" +"The optional argument *name* specifies the object's name; this name will be " +"used to construct names for the returned :class:`DocTest`\\ s. If *name* is " +"not specified, then ``obj.__name__`` is used." +msgstr "" + +#: ../Doc/library/doctest.rst:1340 +msgid "" +"The optional parameter *module* is the module that contains the given " +"object. If the module is not specified or is ``None``, then the test finder " +"will attempt to automatically determine the correct module. The object's " +"module is used:" +msgstr "" + +#: ../Doc/library/doctest.rst:1344 +msgid "As a default namespace, if *globs* is not specified." +msgstr "" + +#: ../Doc/library/doctest.rst:1346 +msgid "" +"To prevent the DocTestFinder from extracting DocTests from objects that are " +"imported from other modules. (Contained objects with modules other than " +"*module* are ignored.)" +msgstr "" + +#: ../Doc/library/doctest.rst:1350 +msgid "To find the name of the file containing the object." +msgstr "" + +#: ../Doc/library/doctest.rst:1352 +msgid "To help find the line number of the object within its file." +msgstr "" + +#: ../Doc/library/doctest.rst:1354 +msgid "" +"If *module* is ``False``, no attempt to find the module will be made. This " +"is obscure, of use mostly in testing doctest itself: if *module* is " +"``False``, or is ``None`` but cannot be found automatically, then all " +"objects are considered to belong to the (non-existent) module, so all " +"contained objects will (recursively) be searched for doctests." +msgstr "" + +#: ../Doc/library/doctest.rst:1360 +msgid "" +"The globals for each :class:`DocTest` is formed by combining *globs* and " +"*extraglobs* (bindings in *extraglobs* override bindings in *globs*). A new " +"shallow copy of the globals dictionary is created for each :class:`DocTest`. " +"If *globs* is not specified, then it defaults to the module's *__dict__*, if " +"specified, or ``{}`` otherwise. If *extraglobs* is not specified, then it " +"defaults to ``{}``." +msgstr "" + +#: ../Doc/library/doctest.rst:1371 +msgid "DocTestParser objects" +msgstr "" + +#: ../Doc/library/doctest.rst:1376 +msgid "" +"A processing class used to extract interactive examples from a string, and " +"use them to create a :class:`DocTest` object." +msgstr "" + +#: ../Doc/library/doctest.rst:1380 ../Doc/library/doctest.rst:1448 +msgid ":class:`DocTestParser` defines the following methods:" +msgstr "" + +#: ../Doc/library/doctest.rst:1385 +msgid "" +"Extract all doctest examples from the given string, and collect them into a :" +"class:`DocTest` object." +msgstr "" + +#: ../Doc/library/doctest.rst:1388 +msgid "" +"*globs*, *name*, *filename*, and *lineno* are attributes for the new :class:" +"`DocTest` object. See the documentation for :class:`DocTest` for more " +"information." +msgstr "" + +#: ../Doc/library/doctest.rst:1395 +msgid "" +"Extract all doctest examples from the given string, and return them as a " +"list of :class:`Example` objects. Line numbers are 0-based. The optional " +"argument *name* is a name identifying this string, and is only used for " +"error messages." +msgstr "" + +#: ../Doc/library/doctest.rst:1402 +msgid "" +"Divide the given string into examples and intervening text, and return them " +"as a list of alternating :class:`Example`\\ s and strings. Line numbers for " +"the :class:`Example`\\ s are 0-based. The optional argument *name* is a " +"name identifying this string, and is only used for error messages." +msgstr "" + +#: ../Doc/library/doctest.rst:1411 +msgid "DocTestRunner objects" +msgstr "" + +#: ../Doc/library/doctest.rst:1416 +msgid "" +"A processing class used to execute and verify the interactive examples in a :" +"class:`DocTest`." +msgstr "" + +#: ../Doc/library/doctest.rst:1419 +msgid "" +"The comparison between expected outputs and actual outputs is done by an :" +"class:`OutputChecker`. This comparison may be customized with a number of " +"option flags; see section :ref:`doctest-options` for more information. If " +"the option flags are insufficient, then the comparison may also be " +"customized by passing a subclass of :class:`OutputChecker` to the " +"constructor." +msgstr "" + +#: ../Doc/library/doctest.rst:1425 +msgid "" +"The test runner's display output can be controlled in two ways. First, an " +"output function can be passed to :meth:`TestRunner.run`; this function will " +"be called with strings that should be displayed. It defaults to ``sys." +"stdout.write``. If capturing the output is not sufficient, then the display " +"output can be also customized by subclassing DocTestRunner, and overriding " +"the methods :meth:`report_start`, :meth:`report_success`, :meth:" +"`report_unexpected_exception`, and :meth:`report_failure`." +msgstr "" + +#: ../Doc/library/doctest.rst:1433 +msgid "" +"The optional keyword argument *checker* specifies the :class:`OutputChecker` " +"object (or drop-in replacement) that should be used to compare the expected " +"outputs to the actual outputs of doctest examples." +msgstr "" + +#: ../Doc/library/doctest.rst:1437 +msgid "" +"The optional keyword argument *verbose* controls the :class:" +"`DocTestRunner`'s verbosity. If *verbose* is ``True``, then information is " +"printed about each example, as it is run. If *verbose* is ``False``, then " +"only failures are printed. If *verbose* is unspecified, or ``None``, then " +"verbose output is used iff the command-line switch ``-v`` is used." +msgstr "" + +#: ../Doc/library/doctest.rst:1443 +msgid "" +"The optional keyword argument *optionflags* can be used to control how the " +"test runner compares expected output to actual output, and how it displays " +"failures. For more information, see section :ref:`doctest-options`." +msgstr "" + +#: ../Doc/library/doctest.rst:1453 +msgid "" +"Report that the test runner is about to process the given example. This " +"method is provided to allow subclasses of :class:`DocTestRunner` to " +"customize their output; it should not be called directly." +msgstr "" + +#: ../Doc/library/doctest.rst:1457 +msgid "" +"*example* is the example about to be processed. *test* is the test " +"*containing example*. *out* is the output function that was passed to :meth:" +"`DocTestRunner.run`." +msgstr "" + +#: ../Doc/library/doctest.rst:1464 +msgid "" +"Report that the given example ran successfully. This method is provided to " +"allow subclasses of :class:`DocTestRunner` to customize their output; it " +"should not be called directly." +msgstr "" + +#: ../Doc/library/doctest.rst:1468 ../Doc/library/doctest.rst:1479 +msgid "" +"*example* is the example about to be processed. *got* is the actual output " +"from the example. *test* is the test containing *example*. *out* is the " +"output function that was passed to :meth:`DocTestRunner.run`." +msgstr "" + +#: ../Doc/library/doctest.rst:1475 +msgid "" +"Report that the given example failed. This method is provided to allow " +"subclasses of :class:`DocTestRunner` to customize their output; it should " +"not be called directly." +msgstr "" + +#: ../Doc/library/doctest.rst:1486 +msgid "" +"Report that the given example raised an unexpected exception. This method is " +"provided to allow subclasses of :class:`DocTestRunner` to customize their " +"output; it should not be called directly." +msgstr "" + +#: ../Doc/library/doctest.rst:1490 +msgid "" +"*example* is the example about to be processed. *exc_info* is a tuple " +"containing information about the unexpected exception (as returned by :func:" +"`sys.exc_info`). *test* is the test containing *example*. *out* is the " +"output function that was passed to :meth:`DocTestRunner.run`." +msgstr "" + +#: ../Doc/library/doctest.rst:1498 +msgid "" +"Run the examples in *test* (a :class:`DocTest` object), and display the " +"results using the writer function *out*." +msgstr "" + +#: ../Doc/library/doctest.rst:1501 +msgid "" +"The examples are run in the namespace ``test.globs``. If *clear_globs* is " +"true (the default), then this namespace will be cleared after the test runs, " +"to help with garbage collection. If you would like to examine the namespace " +"after the test completes, then use *clear_globs=False*." +msgstr "" + +#: ../Doc/library/doctest.rst:1506 +msgid "" +"*compileflags* gives the set of flags that should be used by the Python " +"compiler when running the examples. If not specified, then it will default " +"to the set of future-import flags that apply to *globs*." +msgstr "" + +#: ../Doc/library/doctest.rst:1510 +msgid "" +"The output of each example is checked using the :class:`DocTestRunner`'s " +"output checker, and the results are formatted by the :meth:`DocTestRunner." +"report_\\*` methods." +msgstr "" + +#: ../Doc/library/doctest.rst:1517 +msgid "" +"Print a summary of all the test cases that have been run by this " +"DocTestRunner, and return a :term:`named tuple` ``TestResults(failed, " +"attempted)``." +msgstr "" + +#: ../Doc/library/doctest.rst:1520 +msgid "" +"The optional *verbose* argument controls how detailed the summary is. If " +"the verbosity is not specified, then the :class:`DocTestRunner`'s verbosity " +"is used." +msgstr "" + +#: ../Doc/library/doctest.rst:1527 +msgid "OutputChecker objects" +msgstr "" + +#: ../Doc/library/doctest.rst:1532 +msgid "" +"A class used to check the whether the actual output from a doctest example " +"matches the expected output. :class:`OutputChecker` defines two methods: :" +"meth:`check_output`, which compares a given pair of outputs, and returns " +"true if they match; and :meth:`output_difference`, which returns a string " +"describing the differences between two outputs." +msgstr "" + +#: ../Doc/library/doctest.rst:1539 +msgid ":class:`OutputChecker` defines the following methods:" +msgstr "" + +#: ../Doc/library/doctest.rst:1543 +msgid "" +"Return ``True`` iff the actual output from an example (*got*) matches the " +"expected output (*want*). These strings are always considered to match if " +"they are identical; but depending on what option flags the test runner is " +"using, several non-exact match types are also possible. See section :ref:" +"`doctest-options` for more information about option flags." +msgstr "" + +#: ../Doc/library/doctest.rst:1552 +msgid "" +"Return a string describing the differences between the expected output for a " +"given example (*example*) and the actual output (*got*). *optionflags* is " +"the set of option flags used to compare *want* and *got*." +msgstr "" + +#: ../Doc/library/doctest.rst:1560 +msgid "Debugging" +msgstr "" + +#: ../Doc/library/doctest.rst:1562 +msgid "Doctest provides several mechanisms for debugging doctest examples:" +msgstr "" + +#: ../Doc/library/doctest.rst:1564 +msgid "" +"Several functions convert doctests to executable Python programs, which can " +"be run under the Python debugger, :mod:`pdb`." +msgstr "" + +#: ../Doc/library/doctest.rst:1567 +msgid "" +"The :class:`DebugRunner` class is a subclass of :class:`DocTestRunner` that " +"raises an exception for the first failing example, containing information " +"about that example. This information can be used to perform post-mortem " +"debugging on the example." +msgstr "" + +#: ../Doc/library/doctest.rst:1572 +msgid "" +"The :mod:`unittest` cases generated by :func:`DocTestSuite` support the :" +"meth:`debug` method defined by :class:`unittest.TestCase`." +msgstr "" + +#: ../Doc/library/doctest.rst:1575 +msgid "" +"You can add a call to :func:`pdb.set_trace` in a doctest example, and you'll " +"drop into the Python debugger when that line is executed. Then you can " +"inspect current values of variables, and so on. For example, suppose :file:" +"`a.py` contains just this module docstring::" +msgstr "" + +#: ../Doc/library/doctest.rst:1590 +msgid "Then an interactive Python session may look like this::" +msgstr "" + +#: ../Doc/library/doctest.rst:1623 +msgid "" +"Functions that convert doctests to Python code, and possibly run the " +"synthesized code under the debugger:" +msgstr "" + +#: ../Doc/library/doctest.rst:1629 +msgid "Convert text with examples to a script." +msgstr "" + +#: ../Doc/library/doctest.rst:1631 +msgid "" +"Argument *s* is a string containing doctest examples. The string is " +"converted to a Python script, where doctest examples in *s* are converted to " +"regular code, and everything else is converted to Python comments. The " +"generated script is returned as a string. For example, ::" +msgstr "" + +#: ../Doc/library/doctest.rst:1646 +msgid "displays::" +msgstr "" + +#: ../Doc/library/doctest.rst:1656 +msgid "" +"This function is used internally by other functions (see below), but can " +"also be useful when you want to transform an interactive Python session into " +"a Python script." +msgstr "" + +#: ../Doc/library/doctest.rst:1663 +msgid "Convert the doctest for an object to a script." +msgstr "" + +#: ../Doc/library/doctest.rst:1665 +msgid "" +"Argument *module* is a module object, or dotted name of a module, containing " +"the object whose doctests are of interest. Argument *name* is the name " +"(within the module) of the object with the doctests of interest. The result " +"is a string, containing the object's docstring converted to a Python script, " +"as described for :func:`script_from_examples` above. For example, if " +"module :file:`a.py` contains a top-level function :func:`f`, then ::" +msgstr "" + +#: ../Doc/library/doctest.rst:1675 +msgid "" +"prints a script version of function :func:`f`'s docstring, with doctests " +"converted to code, and the rest placed in comments." +msgstr "" + +#: ../Doc/library/doctest.rst:1681 +msgid "Debug the doctests for an object." +msgstr "" + +#: ../Doc/library/doctest.rst:1683 +msgid "" +"The *module* and *name* arguments are the same as for function :func:" +"`testsource` above. The synthesized Python script for the named object's " +"docstring is written to a temporary file, and then that file is run under " +"the control of the Python debugger, :mod:`pdb`." +msgstr "" + +#: ../Doc/library/doctest.rst:1688 +msgid "" +"A shallow copy of ``module.__dict__`` is used for both local and global " +"execution context." +msgstr "" + +#: ../Doc/library/doctest.rst:1691 +msgid "" +"Optional argument *pm* controls whether post-mortem debugging is used. If " +"*pm* has a true value, the script file is run directly, and the debugger " +"gets involved only if the script terminates via raising an unhandled " +"exception. If it does, then post-mortem debugging is invoked, via :func:" +"`pdb.post_mortem`, passing the traceback object from the unhandled " +"exception. If *pm* is not specified, or is false, the script is run under " +"the debugger from the start, via passing an appropriate :func:`exec` call " +"to :func:`pdb.run`." +msgstr "" + +#: ../Doc/library/doctest.rst:1702 +msgid "Debug the doctests in a string." +msgstr "" + +#: ../Doc/library/doctest.rst:1704 +msgid "" +"This is like function :func:`debug` above, except that a string containing " +"doctest examples is specified directly, via the *src* argument." +msgstr "" + +#: ../Doc/library/doctest.rst:1707 +msgid "" +"Optional argument *pm* has the same meaning as in function :func:`debug` " +"above." +msgstr "" + +#: ../Doc/library/doctest.rst:1709 +msgid "" +"Optional argument *globs* gives a dictionary to use as both local and global " +"execution context. If not specified, or ``None``, an empty dictionary is " +"used. If specified, a shallow copy of the dictionary is used." +msgstr "" + +#: ../Doc/library/doctest.rst:1714 +msgid "" +"The :class:`DebugRunner` class, and the special exceptions it may raise, are " +"of most interest to testing framework authors, and will only be sketched " +"here. See the source code, and especially :class:`DebugRunner`'s docstring " +"(which is a doctest!) for more details:" +msgstr "" + +#: ../Doc/library/doctest.rst:1722 +msgid "" +"A subclass of :class:`DocTestRunner` that raises an exception as soon as a " +"failure is encountered. If an unexpected exception occurs, an :exc:" +"`UnexpectedException` exception is raised, containing the test, the example, " +"and the original exception. If the output doesn't match, then a :exc:" +"`DocTestFailure` exception is raised, containing the test, the example, and " +"the actual output." +msgstr "" + +#: ../Doc/library/doctest.rst:1729 +msgid "" +"For information about the constructor parameters and methods, see the " +"documentation for :class:`DocTestRunner` in section :ref:`doctest-advanced-" +"api`." +msgstr "" + +#: ../Doc/library/doctest.rst:1732 +msgid "" +"There are two exceptions that may be raised by :class:`DebugRunner` " +"instances:" +msgstr "" + +#: ../Doc/library/doctest.rst:1737 +msgid "" +"An exception raised by :class:`DocTestRunner` to signal that a doctest " +"example's actual output did not match its expected output. The constructor " +"arguments are used to initialize the attributes of the same names." +msgstr "" + +#: ../Doc/library/doctest.rst:1741 +msgid ":exc:`DocTestFailure` defines the following attributes:" +msgstr "" + +#: ../Doc/library/doctest.rst:1746 ../Doc/library/doctest.rst:1770 +msgid "The :class:`DocTest` object that was being run when the example failed." +msgstr "" + +#: ../Doc/library/doctest.rst:1751 ../Doc/library/doctest.rst:1775 +msgid "The :class:`Example` that failed." +msgstr "" + +#: ../Doc/library/doctest.rst:1756 +msgid "The example's actual output." +msgstr "" + +#: ../Doc/library/doctest.rst:1761 +msgid "" +"An exception raised by :class:`DocTestRunner` to signal that a doctest " +"example raised an unexpected exception. The constructor arguments are used " +"to initialize the attributes of the same names." +msgstr "" + +#: ../Doc/library/doctest.rst:1765 +msgid ":exc:`UnexpectedException` defines the following attributes:" +msgstr "" + +#: ../Doc/library/doctest.rst:1780 +msgid "" +"A tuple containing information about the unexpected exception, as returned " +"by :func:`sys.exc_info`." +msgstr "" + +#: ../Doc/library/doctest.rst:1787 +msgid "Soapbox" +msgstr "" + +#: ../Doc/library/doctest.rst:1789 +msgid "" +"As mentioned in the introduction, :mod:`doctest` has grown to have three " +"primary uses:" +msgstr "" + +#: ../Doc/library/doctest.rst:1792 +msgid "Checking examples in docstrings." +msgstr "" + +#: ../Doc/library/doctest.rst:1794 +msgid "Regression testing." +msgstr "" + +#: ../Doc/library/doctest.rst:1796 +msgid "Executable documentation / literate testing." +msgstr "" + +#: ../Doc/library/doctest.rst:1798 +msgid "" +"These uses have different requirements, and it is important to distinguish " +"them. In particular, filling your docstrings with obscure test cases makes " +"for bad documentation." +msgstr "" + +#: ../Doc/library/doctest.rst:1802 +msgid "" +"When writing a docstring, choose docstring examples with care. There's an " +"art to this that needs to be learned---it may not be natural at first. " +"Examples should add genuine value to the documentation. A good example can " +"often be worth many words. If done with care, the examples will be " +"invaluable for your users, and will pay back the time it takes to collect " +"them many times over as the years go by and things change. I'm still amazed " +"at how often one of my :mod:`doctest` examples stops working after a " +"\"harmless\" change." +msgstr "" + +#: ../Doc/library/doctest.rst:1810 +msgid "" +"Doctest also makes an excellent tool for regression testing, especially if " +"you don't skimp on explanatory text. By interleaving prose and examples, it " +"becomes much easier to keep track of what's actually being tested, and why. " +"When a test fails, good prose can make it much easier to figure out what the " +"problem is, and how it should be fixed. It's true that you could write " +"extensive comments in code-based testing, but few programmers do. Many have " +"found that using doctest approaches instead leads to much clearer tests. " +"Perhaps this is simply because doctest makes writing prose a little easier " +"than writing code, while writing comments in code is a little harder. I " +"think it goes deeper than just that: the natural attitude when writing a " +"doctest-based test is that you want to explain the fine points of your " +"software, and illustrate them with examples. This in turn naturally leads to " +"test files that start with the simplest features, and logically progress to " +"complications and edge cases. A coherent narrative is the result, instead " +"of a collection of isolated functions that test isolated bits of " +"functionality seemingly at random. It's a different attitude, and produces " +"different results, blurring the distinction between testing and explaining." +msgstr "" + +#: ../Doc/library/doctest.rst:1828 +msgid "" +"Regression testing is best confined to dedicated objects or files. There " +"are several options for organizing tests:" +msgstr "" + +#: ../Doc/library/doctest.rst:1831 +msgid "" +"Write text files containing test cases as interactive examples, and test the " +"files using :func:`testfile` or :func:`DocFileSuite`. This is recommended, " +"although is easiest to do for new projects, designed from the start to use " +"doctest." +msgstr "" + +#: ../Doc/library/doctest.rst:1836 +msgid "" +"Define functions named ``_regrtest_topic`` that consist of single " +"docstrings, containing test cases for the named topics. These functions can " +"be included in the same file as the module, or separated out into a separate " +"test file." +msgstr "" + +#: ../Doc/library/doctest.rst:1840 +msgid "" +"Define a ``__test__`` dictionary mapping from regression test topics to " +"docstrings containing test cases." +msgstr "" + +#: ../Doc/library/doctest.rst:1843 +msgid "" +"When you have placed your tests in a module, the module can itself be the " +"test runner. When a test fails, you can arrange for your test runner to re-" +"run only the failing doctest while you debug the problem. Here is a minimal " +"example of such a test runner::" +msgstr "" + +#: ../Doc/library/doctest.rst:1865 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/doctest.rst:1866 +msgid "" +"Examples containing both expected output and an exception are not supported. " +"Trying to guess where one ends and the other begins is too error-prone, and " +"that also makes for a confusing test." +msgstr "" diff --git a/library/dummy_threading.po b/library/dummy_threading.po new file mode 100644 index 000000000..a4e2593b2 --- /dev/null +++ b/library/dummy_threading.po @@ -0,0 +1,59 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-09-29 15:32+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/dummy_threading.rst:2 +msgid "" +":mod:`dummy_threading` --- Drop-in replacement for the :mod:`threading` " +"module" +msgstr "" +":mod:`dummy_threading` --- Module de substitution au module :mod:`threading`" + +#: ../Doc/library/dummy_threading.rst:7 +msgid "**Source code:** :source:`Lib/dummy_threading.py`" +msgstr "**Code source :** :source:`Lib/dummy_threading.py`" + +#: ../Doc/library/dummy_threading.rst:9 +msgid "" +"Python now always has threading enabled. Please use :mod:`threading` " +"instead." +msgstr "" +"Dorénavant, Python active toujours les fils d'exécution multiples. Utilisez :" +"mod:`threading` à la place." + +#: ../Doc/library/dummy_threading.rst:14 +msgid "" +"This module provides a duplicate interface to the :mod:`threading` module. " +"It was meant to be imported when the :mod:`_thread` module was not provided " +"on a platform." +msgstr "" +"Ce module fournit une imitation de l'interface du module :mod:`threading`. " +"Son but était d'être importé lorsque le module :mod:`_thread` n'était pas " +"fourni par la plateforme." + +#: ../Doc/library/dummy_threading.rst:18 +msgid "" +"Be careful to not use this module where deadlock might occur from a thread " +"being created that blocks waiting for another thread to be created. This " +"often occurs with blocking I/O." +msgstr "" +"Soyez prudent de ne pas utiliser ce module lorsqu'un interblocage " +"(*deadlock* en anglais) peut se produire à partir d'un fil d'exécution en " +"cours de création qui bloque en attentant qu'un autre fil d'exécution soit " +"créé. Cela se produit souvent avec des I/O bloquants." + +#~ msgid "Suggested usage is::" +#~ msgstr "Utilisation suggérée ::" diff --git a/library/email.charset.po b/library/email.charset.po new file mode 100644 index 000000000..327fa5794 --- /dev/null +++ b/library/email.charset.po @@ -0,0 +1,293 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/email.charset.rst:2 +msgid ":mod:`email.charset`: Representing character sets" +msgstr "" + +#: ../Doc/library/email.charset.rst:7 +msgid "**Source code:** :source:`Lib/email/charset.py`" +msgstr "" + +#: ../Doc/library/email.charset.rst:11 +msgid "" +"This module is part of the legacy (``Compat32``) email API. In the new API " +"only the aliases table is used." +msgstr "" + +#: ../Doc/library/email.charset.rst:14 +msgid "" +"The remaining text in this section is the original documentation of the " +"module." +msgstr "" +"Le texte restant de cette section est la documentation originale de ce " +"module." + +#: ../Doc/library/email.charset.rst:16 +msgid "" +"This module provides a class :class:`Charset` for representing character " +"sets and character set conversions in email messages, as well as a character " +"set registry and several convenience methods for manipulating this registry. " +"Instances of :class:`Charset` are used in several other modules within the :" +"mod:`email` package." +msgstr "" + +#: ../Doc/library/email.charset.rst:22 +msgid "Import this class from the :mod:`email.charset` module." +msgstr "" + +#: ../Doc/library/email.charset.rst:27 +msgid "Map character sets to their email properties." +msgstr "" + +#: ../Doc/library/email.charset.rst:29 +msgid "" +"This class provides information about the requirements imposed on email for " +"a specific character set. It also provides convenience routines for " +"converting between character sets, given the availability of the applicable " +"codecs. Given a character set, it will do its best to provide information " +"on how to use that character set in an email message in an RFC-compliant way." +msgstr "" + +#: ../Doc/library/email.charset.rst:35 +msgid "" +"Certain character sets must be encoded with quoted-printable or base64 when " +"used in email headers or bodies. Certain character sets must be converted " +"outright, and are not allowed in email." +msgstr "" + +#: ../Doc/library/email.charset.rst:39 +msgid "" +"Optional *input_charset* is as described below; it is always coerced to " +"lower case. After being alias normalized it is also used as a lookup into " +"the registry of character sets to find out the header encoding, body " +"encoding, and output conversion codec to be used for the character set. For " +"example, if *input_charset* is ``iso-8859-1``, then headers and bodies will " +"be encoded using quoted-printable and no output conversion codec is " +"necessary. If *input_charset* is ``euc-jp``, then headers will be encoded " +"with base64, bodies will not be encoded, but output text will be converted " +"from the ``euc-jp`` character set to the ``iso-2022-jp`` character set." +msgstr "" + +#: ../Doc/library/email.charset.rst:49 +msgid ":class:`Charset` instances have the following data attributes:" +msgstr "" + +#: ../Doc/library/email.charset.rst:53 +msgid "" +"The initial character set specified. Common aliases are converted to their " +"*official* email names (e.g. ``latin_1`` is converted to ``iso-8859-1``). " +"Defaults to 7-bit ``us-ascii``." +msgstr "" + +#: ../Doc/library/email.charset.rst:60 +msgid "" +"If the character set must be encoded before it can be used in an email " +"header, this attribute will be set to ``Charset.QP`` (for quoted-printable), " +"``Charset.BASE64`` (for base64 encoding), or ``Charset.SHORTEST`` for the " +"shortest of QP or BASE64 encoding. Otherwise, it will be ``None``." +msgstr "" + +#: ../Doc/library/email.charset.rst:69 +msgid "" +"Same as *header_encoding*, but describes the encoding for the mail message's " +"body, which indeed may be different than the header encoding. ``Charset." +"SHORTEST`` is not allowed for *body_encoding*." +msgstr "" + +#: ../Doc/library/email.charset.rst:76 +msgid "" +"Some character sets must be converted before they can be used in email " +"headers or bodies. If the *input_charset* is one of them, this attribute " +"will contain the name of the character set output will be converted to. " +"Otherwise, it will be ``None``." +msgstr "" + +#: ../Doc/library/email.charset.rst:84 +msgid "" +"The name of the Python codec used to convert the *input_charset* to " +"Unicode. If no conversion codec is necessary, this attribute will be " +"``None``." +msgstr "" + +#: ../Doc/library/email.charset.rst:91 +msgid "" +"The name of the Python codec used to convert Unicode to the " +"*output_charset*. If no conversion codec is necessary, this attribute will " +"have the same value as the *input_codec*." +msgstr "" + +#: ../Doc/library/email.charset.rst:96 +msgid ":class:`Charset` instances also have the following methods:" +msgstr "" + +#: ../Doc/library/email.charset.rst:100 +msgid "Return the content transfer encoding used for body encoding." +msgstr "" + +#: ../Doc/library/email.charset.rst:102 +msgid "" +"This is either the string ``quoted-printable`` or ``base64`` depending on " +"the encoding used, or it is a function, in which case you should call the " +"function with a single argument, the Message object being encoded. The " +"function should then set the :mailheader:`Content-Transfer-Encoding` header " +"itself to whatever is appropriate." +msgstr "" + +#: ../Doc/library/email.charset.rst:108 +msgid "" +"Returns the string ``quoted-printable`` if *body_encoding* is ``QP``, " +"returns the string ``base64`` if *body_encoding* is ``BASE64``, and returns " +"the string ``7bit`` otherwise." +msgstr "" + +#: ../Doc/library/email.charset.rst:148 +msgid "Return the output character set." +msgstr "" + +#: ../Doc/library/email.charset.rst:150 +msgid "" +"This is the *output_charset* attribute if that is not ``None``, otherwise it " +"is *input_charset*." +msgstr "" + +#: ../Doc/library/email.charset.rst:156 +msgid "Header-encode the string *string*." +msgstr "" + +#: ../Doc/library/email.charset.rst:158 +msgid "" +"The type of encoding (base64 or quoted-printable) will be based on the " +"*header_encoding* attribute." +msgstr "" + +#: ../Doc/library/email.charset.rst:164 +msgid "Header-encode a *string* by converting it first to bytes." +msgstr "" + +#: ../Doc/library/email.charset.rst:166 +msgid "" +"This is similar to :meth:`header_encode` except that the string is fit into " +"maximum line lengths as given by the argument *maxlengths*, which must be an " +"iterator: each element returned from this iterator will provide the next " +"maximum line length." +msgstr "" + +#: ../Doc/library/email.charset.rst:174 +msgid "Body-encode the string *string*." +msgstr "" + +#: ../Doc/library/email.charset.rst:176 +msgid "" +"The type of encoding (base64 or quoted-printable) will be based on the " +"*body_encoding* attribute." +msgstr "" + +#: ../Doc/library/email.charset.rst:179 +msgid "" +"The :class:`Charset` class also provides a number of methods to support " +"standard operations and built-in functions." +msgstr "" + +#: ../Doc/library/email.charset.rst:185 +msgid "" +"Returns *input_charset* as a string coerced to lower case. :meth:`__repr__` " +"is an alias for :meth:`__str__`." +msgstr "" + +#: ../Doc/library/email.charset.rst:191 +msgid "" +"This method allows you to compare two :class:`Charset` instances for " +"equality." +msgstr "" + +#: ../Doc/library/email.charset.rst:197 +msgid "" +"This method allows you to compare two :class:`Charset` instances for " +"inequality." +msgstr "" + +#: ../Doc/library/email.charset.rst:200 +msgid "" +"The :mod:`email.charset` module also provides the following functions for " +"adding new entries to the global character set, alias, and codec registries:" +msgstr "" + +#: ../Doc/library/email.charset.rst:206 +msgid "Add character properties to the global registry." +msgstr "" + +#: ../Doc/library/email.charset.rst:208 +msgid "" +"*charset* is the input character set, and must be the canonical name of a " +"character set." +msgstr "" + +#: ../Doc/library/email.charset.rst:211 +msgid "" +"Optional *header_enc* and *body_enc* is either ``Charset.QP`` for quoted-" +"printable, ``Charset.BASE64`` for base64 encoding, ``Charset.SHORTEST`` for " +"the shortest of quoted-printable or base64 encoding, or ``None`` for no " +"encoding. ``SHORTEST`` is only valid for *header_enc*. The default is " +"``None`` for no encoding." +msgstr "" + +#: ../Doc/library/email.charset.rst:217 +msgid "" +"Optional *output_charset* is the character set that the output should be in. " +"Conversions will proceed from input charset, to Unicode, to the output " +"charset when the method :meth:`Charset.convert` is called. The default is " +"to output in the same character set as the input." +msgstr "" + +#: ../Doc/library/email.charset.rst:222 +msgid "" +"Both *input_charset* and *output_charset* must have Unicode codec entries in " +"the module's character set-to-codec mapping; use :func:`add_codec` to add " +"codecs the module does not know about. See the :mod:`codecs` module's " +"documentation for more information." +msgstr "" + +#: ../Doc/library/email.charset.rst:227 +msgid "" +"The global character set registry is kept in the module global dictionary " +"``CHARSETS``." +msgstr "" + +#: ../Doc/library/email.charset.rst:233 +msgid "" +"Add a character set alias. *alias* is the alias name, e.g. ``latin-1``. " +"*canonical* is the character set's canonical name, e.g. ``iso-8859-1``." +msgstr "" + +#: ../Doc/library/email.charset.rst:236 +msgid "" +"The global charset alias registry is kept in the module global dictionary " +"``ALIASES``." +msgstr "" + +#: ../Doc/library/email.charset.rst:242 +msgid "" +"Add a codec that map characters in the given character set to and from " +"Unicode." +msgstr "" + +#: ../Doc/library/email.charset.rst:244 +msgid "" +"*charset* is the canonical name of a character set. *codecname* is the name " +"of a Python codec, as appropriate for the second argument to the :class:" +"`str`'s :meth:`~str.encode` method." +msgstr "" diff --git a/library/email.compat32-message.po b/library/email.compat32-message.po new file mode 100644 index 000000000..26d5420a7 --- /dev/null +++ b/library/email.compat32-message.po @@ -0,0 +1,823 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/email.compat32-message.rst:4 +msgid "" +":mod:`email.message.Message`: Representing an email message using the :data:" +"`~email.policy.compat32` API" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:12 +msgid "" +"The :class:`Message` class is very similar to the :class:`~email.message." +"EmailMessage` class, without the methods added by that class, and with the " +"default behavior of certain other methods being slightly different. We also " +"document here some methods that, while supported by the :class:`~email." +"message.EmailMessage` class, are not recommended unless you are dealing with " +"legacy code." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:19 +msgid "The philosophy and structure of the two classes is otherwise the same." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:21 +msgid "" +"This document describes the behavior under the default (for :class:" +"`Message`) policy :attr:`~email.policy.Compat32`. If you are going to use " +"another policy, you should be using the :class:`~email.message.EmailMessage` " +"class instead." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:25 +msgid "" +"An email message consists of *headers* and a *payload*. Headers must be :" +"rfc:`5233` style names and values, where the field name and value are " +"separated by a colon. The colon is not part of either the field name or the " +"field value. The payload may be a simple text message, or a binary object, " +"or a structured sequence of sub-messages each with their own set of headers " +"and their own payload. The latter type of payload is indicated by the " +"message having a MIME type such as :mimetype:`multipart/\\*` or :mimetype:" +"`message/rfc822`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:34 +msgid "" +"The conceptual model provided by a :class:`Message` object is that of an " +"ordered dictionary of headers with additional methods for accessing both " +"specialized information from the headers, for accessing the payload, for " +"generating a serialized version of the message, and for recursively walking " +"over the object tree. Note that duplicate headers are supported but special " +"methods must be used to access them." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:41 +msgid "" +"The :class:`Message` pseudo-dictionary is indexed by the header names, which " +"must be ASCII values. The values of the dictionary are strings that are " +"supposed to contain only ASCII characters; there is some special handling " +"for non-ASCII input, but it doesn't always produce the correct results. " +"Headers are stored and returned in case-preserving form, but field names are " +"matched case-insensitively. There may also be a single envelope header, " +"also known as the *Unix-From* header or the ``From_`` header. The *payload* " +"is either a string or bytes, in the case of simple message objects, or a " +"list of :class:`Message` objects, for MIME container documents (e.g. :" +"mimetype:`multipart/\\*` and :mimetype:`message/rfc822`)." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:52 +msgid "Here are the methods of the :class:`Message` class:" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:57 +msgid "" +"If *policy* is specified (it must be an instance of a :mod:`~email.policy` " +"class) use the rules it specifies to update and serialize the representation " +"of the message. If *policy* is not set, use the :class:`compat32 ` policy, which maintains backward compatibility with the " +"Python 3.2 version of the email package. For more information see the :mod:" +"`~email.policy` documentation." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:64 +msgid "The *policy* keyword argument was added." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:69 +msgid "" +"Return the entire message flattened as a string. When optional *unixfrom* " +"is true, the envelope header is included in the returned string. *unixfrom* " +"defaults to ``False``. For backward compatibility reasons, *maxheaderlen* " +"defaults to ``0``, so if you want a different value you must override it " +"explicitly (the value specified for *max_line_length* in the policy will be " +"ignored by this method). The *policy* argument may be used to override the " +"default policy obtained from the message instance. This can be used to " +"control some of the formatting produced by the method, since the specified " +"*policy* will be passed to the ``Generator``." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:79 +#: ../Doc/library/email.compat32-message.rst:121 +msgid "" +"Flattening the message may trigger changes to the :class:`Message` if " +"defaults need to be filled in to complete the transformation to a string " +"(for example, MIME boundaries may be generated or modified)." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:83 +msgid "" +"Note that this method is provided as a convenience and may not always format " +"the message the way you want. For example, by default it does not do the " +"mangling of lines that begin with ``From`` that is required by the unix mbox " +"format. For more flexibility, instantiate a :class:`~email.generator." +"Generator` instance and use its :meth:`~email.generator.Generator.flatten` " +"method directly. For example::" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:97 +msgid "" +"If the message object contains binary data that is not encoded according to " +"RFC standards, the non-compliant data will be replaced by unicode \"unknown " +"character\" code points. (See also :meth:`.as_bytes` and :class:`~email." +"generator.BytesGenerator`.)" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:102 +msgid "the *policy* keyword argument was added." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:107 +msgid "" +"Equivalent to :meth:`.as_string()`. Allows ``str(msg)`` to produce a string " +"containing the formatted message." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:113 +msgid "" +"Return the entire message flattened as a bytes object. When optional " +"*unixfrom* is true, the envelope header is included in the returned string. " +"*unixfrom* defaults to ``False``. The *policy* argument may be used to " +"override the default policy obtained from the message instance. This can be " +"used to control some of the formatting produced by the method, since the " +"specified *policy* will be passed to the ``BytesGenerator``." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:125 +msgid "" +"Note that this method is provided as a convenience and may not always format " +"the message the way you want. For example, by default it does not do the " +"mangling of lines that begin with ``From`` that is required by the unix mbox " +"format. For more flexibility, instantiate a :class:`~email.generator." +"BytesGenerator` instance and use its :meth:`~email.generator.BytesGenerator." +"flatten` method directly. For example::" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:145 +msgid "" +"Equivalent to :meth:`.as_bytes()`. Allows ``bytes(msg)`` to produce a bytes " +"object containing the formatted message." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:153 +msgid "" +"Return ``True`` if the message's payload is a list of sub-\\ :class:" +"`Message` objects, otherwise return ``False``. When :meth:`is_multipart` " +"returns ``False``, the payload should be a string object (which might be a " +"CTE encoded binary payload). (Note that :meth:`is_multipart` returning " +"``True`` does not necessarily mean that \"msg.get_content_maintype() == " +"'multipart'\" will return the ``True``. For example, ``is_multipart`` will " +"return ``True`` when the :class:`Message` is of type ``message/rfc822``.)" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:165 +msgid "" +"Set the message's envelope header to *unixfrom*, which should be a string." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:170 +msgid "" +"Return the message's envelope header. Defaults to ``None`` if the envelope " +"header was never set." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:176 +msgid "" +"Add the given *payload* to the current payload, which must be ``None`` or a " +"list of :class:`Message` objects before the call. After the call, the " +"payload will always be a list of :class:`Message` objects. If you want to " +"set the payload to a scalar object (e.g. a string), use :meth:`set_payload` " +"instead." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:182 +msgid "" +"This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " +"class its functionality is replaced by :meth:`~email.message.EmailMessage." +"set_content` and the related ``make`` and ``add`` methods." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:190 +msgid "" +"Return the current payload, which will be a list of :class:`Message` objects " +"when :meth:`is_multipart` is ``True``, or a string when :meth:`is_multipart` " +"is ``False``. If the payload is a list and you mutate the list object, you " +"modify the message's payload in place." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:195 +msgid "" +"With optional argument *i*, :meth:`get_payload` will return the *i*-th " +"element of the payload, counting from zero, if :meth:`is_multipart` is " +"``True``. An :exc:`IndexError` will be raised if *i* is less than 0 or " +"greater than or equal to the number of items in the payload. If the payload " +"is a string (i.e. :meth:`is_multipart` is ``False``) and *i* is given, a :" +"exc:`TypeError` is raised." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:202 +msgid "" +"Optional *decode* is a flag indicating whether the payload should be decoded " +"or not, according to the :mailheader:`Content-Transfer-Encoding` header. " +"When ``True`` and the message is not a multipart, the payload will be " +"decoded if this header's value is ``quoted-printable`` or ``base64``. If " +"some other encoding is used, or :mailheader:`Content-Transfer-Encoding` " +"header is missing, the payload is returned as-is (undecoded). In all cases " +"the returned value is binary data. If the message is a multipart and the " +"*decode* flag is ``True``, then ``None`` is returned. If the payload is " +"base64 and it was not perfectly formed (missing padding, characters outside " +"the base64 alphabet), then an appropriate defect will be added to the " +"message's defect property (:class:`~email.errors.InvalidBase64PaddingDefect` " +"or :class:`~email.errors.InvalidBase64CharactersDefect`, respectively)." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:216 +msgid "" +"When *decode* is ``False`` (the default) the body is returned as a string " +"without decoding the :mailheader:`Content-Transfer-Encoding`. However, for " +"a :mailheader:`Content-Transfer-Encoding` of 8bit, an attempt is made to " +"decode the original bytes using the ``charset`` specified by the :mailheader:" +"`Content-Type` header, using the ``replace`` error handler. If no " +"``charset`` is specified, or if the ``charset`` given is not recognized by " +"the email package, the body is decoded using the default ASCII charset." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:225 +msgid "" +"This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " +"class its functionality is replaced by :meth:`~email.message.EmailMessage." +"get_content` and :meth:`~email.message.EmailMessage.iter_parts`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:233 +msgid "" +"Set the entire message object's payload to *payload*. It is the client's " +"responsibility to ensure the payload invariants. Optional *charset* sets " +"the message's default character set; see :meth:`set_charset` for details." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:237 +msgid "" +"This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " +"class its functionality is replaced by :meth:`~email.message.EmailMessage." +"set_content`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:244 +msgid "" +"Set the character set of the payload to *charset*, which can either be a :" +"class:`~email.charset.Charset` instance (see :mod:`email.charset`), a string " +"naming a character set, or ``None``. If it is a string, it will be " +"converted to a :class:`~email.charset.Charset` instance. If *charset* is " +"``None``, the ``charset`` parameter will be removed from the :mailheader:" +"`Content-Type` header (the message will not be otherwise modified). " +"Anything else will generate a :exc:`TypeError`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:252 +msgid "" +"If there is no existing :mailheader:`MIME-Version` header one will be " +"added. If there is no existing :mailheader:`Content-Type` header, one will " +"be added with a value of :mimetype:`text/plain`. Whether the :mailheader:" +"`Content-Type` header already exists or not, its ``charset`` parameter will " +"be set to *charset.output_charset*. If *charset.input_charset* and " +"*charset.output_charset* differ, the payload will be re-encoded to the " +"*output_charset*. If there is no existing :mailheader:`Content-Transfer-" +"Encoding` header, then the payload will be transfer-encoded, if needed, " +"using the specified :class:`~email.charset.Charset`, and a header with the " +"appropriate value will be added. If a :mailheader:`Content-Transfer-" +"Encoding` header already exists, the payload is assumed to already be " +"correctly encoded using that :mailheader:`Content-Transfer-Encoding` and is " +"not modified." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:266 +msgid "" +"This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " +"class its functionality is replaced by the *charset* parameter of the :meth:" +"`email.emailmessage.EmailMessage.set_content` method." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:274 +msgid "" +"Return the :class:`~email.charset.Charset` instance associated with the " +"message's payload." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:277 +msgid "" +"This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " +"class it always returns ``None``." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:282 +msgid "" +"The following methods implement a mapping-like interface for accessing the " +"message's :rfc:`2822` headers. Note that there are some semantic " +"differences between these methods and a normal mapping (i.e. dictionary) " +"interface. For example, in a dictionary there are no duplicate keys, but " +"here there may be duplicate message headers. Also, in dictionaries there is " +"no guaranteed order to the keys returned by :meth:`keys`, but in a :class:" +"`Message` object, headers are always returned in the order they appeared in " +"the original message, or were added to the message later. Any header " +"deleted and then re-added are always appended to the end of the header list." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:292 +msgid "" +"These semantic differences are intentional and are biased toward maximal " +"convenience." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:295 +msgid "" +"Note that in all cases, any envelope header present in the message is not " +"included in the mapping interface." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:298 +msgid "" +"In a model generated from bytes, any header values that (in contravention of " +"the RFCs) contain non-ASCII bytes will, when retrieved through this " +"interface, be represented as :class:`~email.header.Header` objects with a " +"charset of `unknown-8bit`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:306 +msgid "Return the total number of headers, including duplicates." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:311 +msgid "" +"Return true if the message object has a field named *name*. Matching is done " +"case-insensitively and *name* should not include the trailing colon. Used " +"for the ``in`` operator, e.g.::" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:321 +msgid "" +"Return the value of the named header field. *name* should not include the " +"colon field separator. If the header is missing, ``None`` is returned; a :" +"exc:`KeyError` is never raised." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:325 +msgid "" +"Note that if the named field appears more than once in the message's " +"headers, exactly which of those field values will be returned is undefined. " +"Use the :meth:`get_all` method to get the values of all the extant named " +"headers." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:333 +msgid "" +"Add a header to the message with field name *name* and value *val*. The " +"field is appended to the end of the message's existing fields." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:336 +msgid "" +"Note that this does *not* overwrite or delete any existing header with the " +"same name. If you want to ensure that the new header is the only one " +"present in the message with field name *name*, delete the field first, e.g.::" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:346 +msgid "" +"Delete all occurrences of the field with name *name* from the message's " +"headers. No exception is raised if the named field isn't present in the " +"headers." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:353 +msgid "Return a list of all the message's header field names." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:358 +msgid "Return a list of all the message's field values." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:363 +msgid "" +"Return a list of 2-tuples containing all the message's field headers and " +"values." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:369 +msgid "" +"Return the value of the named header field. This is identical to :meth:" +"`__getitem__` except that optional *failobj* is returned if the named header " +"is missing (defaults to ``None``)." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:373 +msgid "Here are some additional useful methods:" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:378 +msgid "" +"Return a list of all the values for the field named *name*. If there are no " +"such named headers in the message, *failobj* is returned (defaults to " +"``None``)." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:385 +msgid "" +"Extended header setting. This method is similar to :meth:`__setitem__` " +"except that additional header parameters can be provided as keyword " +"arguments. *_name* is the header field to add and *_value* is the *primary* " +"value for the header." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:390 +msgid "" +"For each item in the keyword argument dictionary *_params*, the key is taken " +"as the parameter name, with underscores converted to dashes (since dashes " +"are illegal in Python identifiers). Normally, the parameter will be added " +"as ``key=\"value\"`` unless the value is ``None``, in which case only the " +"key will be added. If the value contains non-ASCII characters, it can be " +"specified as a three tuple in the format ``(CHARSET, LANGUAGE, VALUE)``, " +"where ``CHARSET`` is a string naming the charset to be used to encode the " +"value, ``LANGUAGE`` can usually be set to ``None`` or the empty string (see :" +"rfc:`2231` for other possibilities), and ``VALUE`` is the string value " +"containing non-ASCII code points. If a three tuple is not passed and the " +"value contains non-ASCII characters, it is automatically encoded in :rfc:" +"`2231` format using a ``CHARSET`` of ``utf-8`` and a ``LANGUAGE`` of " +"``None``." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:404 +msgid "Here's an example::" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:408 +msgid "This will add a header that looks like ::" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:412 +msgid "An example with non-ASCII characters::" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:417 +msgid "Which produces ::" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:424 +msgid "" +"Replace a header. Replace the first header found in the message that " +"matches *_name*, retaining header order and field name case. If no matching " +"header was found, a :exc:`KeyError` is raised." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:431 +msgid "" +"Return the message's content type. The returned string is coerced to lower " +"case of the form :mimetype:`maintype/subtype`. If there was no :mailheader:" +"`Content-Type` header in the message the default type as given by :meth:" +"`get_default_type` will be returned. Since according to :rfc:`2045`, " +"messages always have a default type, :meth:`get_content_type` will always " +"return a value." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:438 +msgid "" +":rfc:`2045` defines a message's default type to be :mimetype:`text/plain` " +"unless it appears inside a :mimetype:`multipart/digest` container, in which " +"case it would be :mimetype:`message/rfc822`. If the :mailheader:`Content-" +"Type` header has an invalid type specification, :rfc:`2045` mandates that " +"the default type be :mimetype:`text/plain`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:447 +msgid "" +"Return the message's main content type. This is the :mimetype:`maintype` " +"part of the string returned by :meth:`get_content_type`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:453 +msgid "" +"Return the message's sub-content type. This is the :mimetype:`subtype` part " +"of the string returned by :meth:`get_content_type`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:459 +msgid "" +"Return the default content type. Most messages have a default content type " +"of :mimetype:`text/plain`, except for messages that are subparts of :" +"mimetype:`multipart/digest` containers. Such subparts have a default " +"content type of :mimetype:`message/rfc822`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:467 +msgid "" +"Set the default content type. *ctype* should either be :mimetype:`text/" +"plain` or :mimetype:`message/rfc822`, although this is not enforced. The " +"default content type is not stored in the :mailheader:`Content-Type` header." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:475 +msgid "" +"Return the message's :mailheader:`Content-Type` parameters, as a list. The " +"elements of the returned list are 2-tuples of key/value pairs, as split on " +"the ``'='`` sign. The left hand side of the ``'='`` is the key, while the " +"right hand side is the value. If there is no ``'='`` sign in the parameter " +"the value is the empty string, otherwise the value is as described in :meth:" +"`get_param` and is unquoted if optional *unquote* is ``True`` (the default)." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:483 +msgid "" +"Optional *failobj* is the object to return if there is no :mailheader:" +"`Content-Type` header. Optional *header* is the header to search instead " +"of :mailheader:`Content-Type`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:487 +#: ../Doc/library/email.compat32-message.rst:525 +msgid "" +"This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " +"class its functionality is replaced by the *params* property of the " +"individual header objects returned by the header access methods." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:495 +msgid "" +"Return the value of the :mailheader:`Content-Type` header's parameter " +"*param* as a string. If the message has no :mailheader:`Content-Type` " +"header or if there is no such parameter, then *failobj* is returned " +"(defaults to ``None``)." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:500 +msgid "" +"Optional *header* if given, specifies the message header to use instead of :" +"mailheader:`Content-Type`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:503 +msgid "" +"Parameter keys are always compared case insensitively. The return value can " +"either be a string, or a 3-tuple if the parameter was :rfc:`2231` encoded. " +"When it's a 3-tuple, the elements of the value are of the form ``(CHARSET, " +"LANGUAGE, VALUE)``. Note that both ``CHARSET`` and ``LANGUAGE`` can be " +"``None``, in which case you should consider ``VALUE`` to be encoded in the " +"``us-ascii`` charset. You can usually ignore ``LANGUAGE``." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:511 +msgid "" +"If your application doesn't care whether the parameter was encoded as in :" +"rfc:`2231`, you can collapse the parameter value by calling :func:`email." +"utils.collapse_rfc2231_value`, passing in the return value from :meth:" +"`get_param`. This will return a suitably decoded Unicode string when the " +"value is a tuple, or the original string unquoted if it isn't. For example::" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:521 +msgid "" +"In any case, the parameter value (either the returned string, or the " +"``VALUE`` item in the 3-tuple) is always unquoted, unless *unquote* is set " +"to ``False``." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:534 +msgid "" +"Set a parameter in the :mailheader:`Content-Type` header. If the parameter " +"already exists in the header, its value will be replaced with *value*. If " +"the :mailheader:`Content-Type` header as not yet been defined for this " +"message, it will be set to :mimetype:`text/plain` and the new parameter " +"value will be appended as per :rfc:`2045`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:540 +msgid "" +"Optional *header* specifies an alternative header to :mailheader:`Content-" +"Type`, and all parameters will be quoted as necessary unless optional " +"*requote* is ``False`` (the default is ``True``)." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:544 +msgid "" +"If optional *charset* is specified, the parameter will be encoded according " +"to :rfc:`2231`. Optional *language* specifies the RFC 2231 language, " +"defaulting to the empty string. Both *charset* and *language* should be " +"strings." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:549 +msgid "" +"If *replace* is ``False`` (the default) the header is moved to the end of " +"the list of headers. If *replace* is ``True``, the header will be updated " +"in place." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:553 +msgid "``replace`` keyword was added." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:558 +msgid "" +"Remove the given parameter completely from the :mailheader:`Content-Type` " +"header. The header will be re-written in place without the parameter or its " +"value. All values will be quoted as necessary unless *requote* is ``False`` " +"(the default is ``True``). Optional *header* specifies an alternative to :" +"mailheader:`Content-Type`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:567 +msgid "" +"Set the main type and subtype for the :mailheader:`Content-Type` header. " +"*type* must be a string in the form :mimetype:`maintype/subtype`, otherwise " +"a :exc:`ValueError` is raised." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:571 +msgid "" +"This method replaces the :mailheader:`Content-Type` header, keeping all the " +"parameters in place. If *requote* is ``False``, this leaves the existing " +"header's quoting as is, otherwise the parameters will be quoted (the " +"default)." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:576 +msgid "" +"An alternative header can be specified in the *header* argument. When the :" +"mailheader:`Content-Type` header is set a :mailheader:`MIME-Version` header " +"is also added." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:580 +msgid "" +"This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " +"class its functionality is replaced by the ``make_`` and ``add_`` methods." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:587 +msgid "" +"Return the value of the ``filename`` parameter of the :mailheader:`Content-" +"Disposition` header of the message. If the header does not have a " +"``filename`` parameter, this method falls back to looking for the ``name`` " +"parameter on the :mailheader:`Content-Type` header. If neither is found, or " +"the header is missing, then *failobj* is returned. The returned string will " +"always be unquoted as per :func:`email.utils.unquote`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:598 +msgid "" +"Return the value of the ``boundary`` parameter of the :mailheader:`Content-" +"Type` header of the message, or *failobj* if either the header is missing, " +"or has no ``boundary`` parameter. The returned string will always be " +"unquoted as per :func:`email.utils.unquote`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:606 +msgid "" +"Set the ``boundary`` parameter of the :mailheader:`Content-Type` header to " +"*boundary*. :meth:`set_boundary` will always quote *boundary* if " +"necessary. A :exc:`~email.errors.HeaderParseError` is raised if the message " +"object has no :mailheader:`Content-Type` header." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:611 +msgid "" +"Note that using this method is subtly different than deleting the old :" +"mailheader:`Content-Type` header and adding a new one with the new boundary " +"via :meth:`add_header`, because :meth:`set_boundary` preserves the order of " +"the :mailheader:`Content-Type` header in the list of headers. However, it " +"does *not* preserve any continuation lines which may have been present in " +"the original :mailheader:`Content-Type` header." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:621 +msgid "" +"Return the ``charset`` parameter of the :mailheader:`Content-Type` header, " +"coerced to lower case. If there is no :mailheader:`Content-Type` header, or " +"if that header has no ``charset`` parameter, *failobj* is returned." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:625 +msgid "" +"Note that this method differs from :meth:`get_charset` which returns the :" +"class:`~email.charset.Charset` instance for the default encoding of the " +"message body." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:631 +msgid "" +"Return a list containing the character set names in the message. If the " +"message is a :mimetype:`multipart`, then the list will contain one element " +"for each subpart in the payload, otherwise, it will be a list of length 1." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:635 +msgid "" +"Each item in the list will be a string which is the value of the ``charset`` " +"parameter in the :mailheader:`Content-Type` header for the represented " +"subpart. However, if the subpart has no :mailheader:`Content-Type` header, " +"no ``charset`` parameter, or is not of the :mimetype:`text` main MIME type, " +"then that item in the returned list will be *failobj*." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:645 +msgid "" +"Return the lowercased value (without parameters) of the message's :" +"mailheader:`Content-Disposition` header if it has one, or ``None``. The " +"possible values for this method are *inline*, *attachment* or ``None`` if " +"the message follows :rfc:`2183`." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:654 +msgid "" +"The :meth:`walk` method is an all-purpose generator which can be used to " +"iterate over all the parts and subparts of a message object tree, in depth-" +"first traversal order. You will typically use :meth:`walk` as the iterator " +"in a ``for`` loop; each iteration returns the next subpart." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:659 +msgid "" +"Here's an example that prints the MIME type of every part of a multipart " +"message structure:" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:685 +msgid "" +"``walk`` iterates over the subparts of any part where :meth:`is_multipart` " +"returns ``True``, even though ``msg.get_content_maintype() == 'multipart'`` " +"may return ``False``. We can see this in our example by making use of the " +"``_structure`` debug helper function:" +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:712 +msgid "" +"Here the ``message`` parts are not ``multiparts``, but they do contain " +"subparts. ``is_multipart()`` returns ``True`` and ``walk`` descends into the " +"subparts." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:717 +msgid "" +":class:`Message` objects can also optionally contain two instance " +"attributes, which can be used when generating the plain text of a MIME " +"message." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:723 +msgid "" +"The format of a MIME document allows for some text between the blank line " +"following the headers, and the first multipart boundary string. Normally, " +"this text is never visible in a MIME-aware mail reader because it falls " +"outside the standard MIME armor. However, when viewing the raw text of the " +"message, or when viewing the message in a non-MIME aware reader, this text " +"can become visible." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:730 +msgid "" +"The *preamble* attribute contains this leading extra-armor text for MIME " +"documents. When the :class:`~email.parser.Parser` discovers some text after " +"the headers but before the first boundary string, it assigns this text to " +"the message's *preamble* attribute. When the :class:`~email.generator." +"Generator` is writing out the plain text representation of a MIME message, " +"and it finds the message has a *preamble* attribute, it will write this text " +"in the area between the headers and the first boundary. See :mod:`email." +"parser` and :mod:`email.generator` for details." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:740 +msgid "" +"Note that if the message object has no preamble, the *preamble* attribute " +"will be ``None``." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:746 +msgid "" +"The *epilogue* attribute acts the same way as the *preamble* attribute, " +"except that it contains text that appears between the last boundary and the " +"end of the message." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:750 +msgid "" +"You do not need to set the epilogue to the empty string in order for the :" +"class:`~email.generator.Generator` to print a newline at the end of the file." +msgstr "" + +#: ../Doc/library/email.compat32-message.rst:757 +msgid "" +"The *defects* attribute contains a list of all the problems found when " +"parsing this message. See :mod:`email.errors` for a detailed description of " +"the possible parsing defects." +msgstr "" diff --git a/library/email.contentmanager.po b/library/email.contentmanager.po new file mode 100644 index 000000000..20e324e95 --- /dev/null +++ b/library/email.contentmanager.po @@ -0,0 +1,278 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-17 10:39+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/email.contentmanager.rst:2 +msgid ":mod:`email.contentmanager`: Managing MIME Content" +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:10 +msgid "**Source code:** :source:`Lib/email/contentmanager.py`" +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:14 +msgid "[1]_" +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:19 +msgid "" +"Base class for content managers. Provides the standard registry mechanisms " +"to register converters between MIME content and other representations, as " +"well as the ``get_content`` and ``set_content`` dispatch methods." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:26 +msgid "" +"Look up a handler function based on the ``mimetype`` of *msg* (see next " +"paragraph), call it, passing through all arguments, and return the result of " +"the call. The expectation is that the handler will extract the payload from " +"*msg* and return an object that encodes information about the extracted data." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:32 +msgid "" +"To find the handler, look for the following keys in the registry, stopping " +"with the first one found:" +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:35 +msgid "the string representing the full MIME type (``maintype/subtype``)" +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:36 +msgid "the string representing the ``maintype``" +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:37 +msgid "the empty string" +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:39 +msgid "" +"If none of these keys produce a handler, raise a :exc:`KeyError` for the " +"full MIME type." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:45 +msgid "" +"If the ``maintype`` is ``multipart``, raise a :exc:`TypeError`; otherwise " +"look up a handler function based on the type of *obj* (see next paragraph), " +"call :meth:`~email.message.EmailMessage.clear_content` on the *msg*, and " +"call the handler function, passing through all arguments. The expectation " +"is that the handler will transform and store *obj* into *msg*, possibly " +"making other changes to *msg* as well, such as adding various MIME headers " +"to encode information needed to interpret the stored data." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:54 +msgid "" +"To find the handler, obtain the type of *obj* (``typ = type(obj)``), and " +"look for the following keys in the registry, stopping with the first one " +"found:" +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:58 +msgid "the type itself (``typ``)" +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:59 +msgid "" +"the type's fully qualified name (``typ.__module__ + '.' + typ." +"__qualname__``)." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:61 +msgid "the type's qualname (``typ.__qualname__``)" +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:62 +msgid "the type's name (``typ.__name__``)." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:64 +msgid "" +"If none of the above match, repeat all of the checks above for each of the " +"types in the :term:`MRO` (``typ.__mro__``). Finally, if no other key yields " +"a handler, check for a handler for the key ``None``. If there is no handler " +"for ``None``, raise a :exc:`KeyError` for the fully qualified name of the " +"type." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:70 +msgid "" +"Also add a :mailheader:`MIME-Version` header if one is not present (see " +"also :class:`.MIMEPart`)." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:76 +msgid "" +"Record the function *handler* as the handler for *key*. For the possible " +"values of *key*, see :meth:`get_content`." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:82 +msgid "" +"Record *handler* as the function to call when an object of a type matching " +"*typekey* is passed to :meth:`set_content`. For the possible values of " +"*typekey*, see :meth:`set_content`." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:88 +msgid "Content Manager Instances" +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:90 +msgid "" +"Currently the email package provides only one concrete content manager, :" +"data:`raw_data_manager`, although more may be added in the future. :data:" +"`raw_data_manager` is the :attr:`~email.policy.EmailPolicy.content_manager` " +"provided by :attr:`~email.policy.EmailPolicy` and its derivatives." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:99 +msgid "" +"This content manager provides only a minimum interface beyond that provided " +"by :class:`~email.message.Message` itself: it deals only with text, raw " +"byte strings, and :class:`~email.message.Message` objects. Nevertheless, it " +"provides significant advantages compared to the base API: ``get_content`` on " +"a text part will return a unicode string without the application needing to " +"manually decode it, ``set_content`` provides a rich set of options for " +"controlling the headers added to a part and controlling the content transfer " +"encoding, and it enables the use of the various ``add_`` methods, thereby " +"simplifying the creation of multipart messages." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:111 +msgid "" +"Return the payload of the part as either a string (for ``text`` parts), an :" +"class:`~email.message.EmailMessage` object (for ``message/rfc822`` parts), " +"or a ``bytes`` object (for all other non-multipart types). Raise a :exc:" +"`KeyError` if called on a ``multipart``. If the part is a ``text`` part and " +"*errors* is specified, use it as the error handler when decoding the payload " +"to unicode. The default error handler is ``replace``." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:130 +msgid "Add headers and payload to *msg*:" +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:132 +msgid "" +"Add a :mailheader:`Content-Type` header with a ``maintype/subtype`` value." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:135 +msgid "" +"For ``str``, set the MIME ``maintype`` to ``text``, and set the subtype to " +"*subtype* if it is specified, or ``plain`` if it is not." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:137 +msgid "" +"For ``bytes``, use the specified *maintype* and *subtype*, or raise a :exc:" +"`TypeError` if they are not specified." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:139 +msgid "" +"For :class:`~email.message.EmailMessage` objects, set the maintype to " +"``message``, and set the subtype to *subtype* if it is specified or " +"``rfc822`` if it is not. If *subtype* is ``partial``, raise an error " +"(``bytes`` objects must be used to construct ``message/partial`` parts)." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:145 +msgid "" +"If *charset* is provided (which is valid only for ``str``), encode the " +"string to bytes using the specified character set. The default is " +"``utf-8``. If the specified *charset* is a known alias for a standard MIME " +"charset name, use the standard charset instead." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:150 +msgid "" +"If *cte* is set, encode the payload using the specified content transfer " +"encoding, and set the :mailheader:`Content-Transfer-Encoding` header to that " +"value. Possible values for *cte* are ``quoted-printable``, ``base64``, " +"``7bit``, ``8bit``, and ``binary``. If the input cannot be encoded in the " +"specified encoding (for example, specifying a *cte* of ``7bit`` for an input " +"that contains non-ASCII values), raise a :exc:`ValueError`." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:158 +msgid "" +"For ``str`` objects, if *cte* is not set use heuristics to determine the " +"most compact encoding." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:160 +msgid "" +"For :class:`~email.message.EmailMessage`, per :rfc:`2046`, raise an error if " +"a *cte* of ``quoted-printable`` or ``base64`` is requested for *subtype* " +"``rfc822``, and for any *cte* other than ``7bit`` for *subtype* ``external-" +"body``. For ``message/rfc822``, use ``8bit`` if *cte* is not specified. " +"For all other values of *subtype*, use ``7bit``." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:167 +msgid "" +"A *cte* of ``binary`` does not actually work correctly yet. The " +"``EmailMessage`` object as modified by ``set_content`` is correct, but :" +"class:`~email.generator.BytesGenerator` does not serialize it correctly." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:172 +msgid "" +"If *disposition* is set, use it as the value of the :mailheader:`Content-" +"Disposition` header. If not specified, and *filename* is specified, add the " +"header with the value ``attachment``. If *disposition* is not specified and " +"*filename* is also not specified, do not add the header. The only valid " +"values for *disposition* are ``attachment`` and ``inline``." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:179 +msgid "" +"If *filename* is specified, use it as the value of the ``filename`` " +"parameter of the :mailheader:`Content-Disposition` header." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:182 +msgid "" +"If *cid* is specified, add a :mailheader:`Content-ID` header with *cid* as " +"its value." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:185 +msgid "" +"If *params* is specified, iterate its ``items`` method and use the resulting " +"``(key, value)`` pairs to set additional parameters on the :mailheader:" +"`Content-Type` header." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:189 +msgid "" +"If *headers* is specified and is a list of strings of the form ``headername: " +"headervalue`` or a list of ``header`` objects (distinguished from strings by " +"having a ``name`` attribute), add the headers to *msg*." +msgstr "" + +#: ../Doc/library/email.contentmanager.rst:196 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/email.contentmanager.rst:197 +msgid "" +"Originally added in 3.4 as a :term:`provisional module `" +msgstr "" diff --git a/library/email.encoders.po b/library/email.encoders.po new file mode 100644 index 000000000..bb891f321 --- /dev/null +++ b/library/email.encoders.po @@ -0,0 +1,155 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2018-10-05 09:50+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/library/email.encoders.rst:2 +msgid ":mod:`email.encoders`: Encoders" +msgstr ":mod:`email.encoders` : Encodeurs" + +#: ../Doc/library/email.encoders.rst:7 +msgid "**Source code:** :source:`Lib/email/encoders.py`" +msgstr "**Code source :** :source:`Lib/email/encoders.py`" + +#: ../Doc/library/email.encoders.rst:11 +msgid "" +"This module is part of the legacy (``Compat32``) email API. In the new API " +"the functionality is provided by the *cte* parameter of the :meth:`~email." +"message.EmailMessage.set_content` method." +msgstr "" +"Ce module fait partie du code patrimonial (``Compat32``) de l'API mail. Dans " +"la nouvelle API la fonctionnalité est fournie par le paramètre *cte* de la " +"méthode :meth:`~email.message.EmailMessage.set_content`." + +#: ../Doc/library/email.encoders.rst:15 +msgid "" +"This module is deprecated in Python 3. The functions provided here should " +"not be called explicitly since the :class:`~email.mime.text.MIMEText` class " +"sets the content type and CTE header using the *_subtype* and *_charset* " +"values passed during the instaniation of that class." +msgstr "" + +#: ../Doc/library/email.encoders.rst:20 +msgid "" +"The remaining text in this section is the original documentation of the " +"module." +msgstr "" +"Le texte restant de cette section est la documentation originale de ce " +"module." + +#: ../Doc/library/email.encoders.rst:22 +msgid "" +"When creating :class:`~email.message.Message` objects from scratch, you " +"often need to encode the payloads for transport through compliant mail " +"servers. This is especially true for :mimetype:`image/\\*` and :mimetype:" +"`text/\\*` type messages containing binary data." +msgstr "" +"Au moment de la création d'objets :class:`~email.message.Message` à la main, " +"il est souvent nécessaire d'encoder les charges utiles pour le transport à " +"travers des serveurs mail conformes. C'est particulièrement vrai pour les " +"messages de type :mimetype:`image/\\*` et :mimetype:`text/\\*` contenant des " +"données binaires." + +#: ../Doc/library/email.encoders.rst:27 +msgid "" +"The :mod:`email` package provides some convenient encodings in its :mod:" +"`encoders` module. These encoders are actually used by the :class:`~email." +"mime.audio.MIMEAudio` and :class:`~email.mime.image.MIMEImage` class " +"constructors to provide default encodings. All encoder functions take " +"exactly one argument, the message object to encode. They usually extract " +"the payload, encode it, and reset the payload to this newly encoded value. " +"They should also set the :mailheader:`Content-Transfer-Encoding` header as " +"appropriate." +msgstr "" +"Le paquet :mod:`email` fournit quelques encodeurs pratiques dans son " +"module :mod:`encoders`. Ces encodeurs sont d'ailleurs utilisés par les " +"constructeurs des classes :class:`~email.mime.audio.MIMEAudio` et :class:" +"`~email.mime.image.MIMEImage` afin de fournir des encodages par défaut. " +"Toutes les fonctions d'encodage prennent exactement un argument, l'objet " +"message à encoder. Généralement, elles extraient la charge utile, l'encode, " +"puis change la charge utile pour la nouvelle valeur encodée. Elles devraient " +"également assigner l'en-tête :mailheader:`Content-Transfer-Encoding` si " +"besoin." + +#: ../Doc/library/email.encoders.rst:35 +msgid "" +"Note that these functions are not meaningful for a multipart message. They " +"must be applied to individual subparts instead, and will raise a :exc:" +"`TypeError` if passed a message whose type is multipart." +msgstr "" +"À noter que ces fonctions n'ont pas de sens dans le cadre d'un message en " +"plusieurs parties. Elles doivent à la place être appliquées aux sous-parties " +"individuelles, et lèvent :exc:`TypeError` si on leur passe un message en " +"plusieurs parties." + +#: ../Doc/library/email.encoders.rst:39 +msgid "Here are the encoding functions provided:" +msgstr "Voici les fonctions d'encodages fournies :" + +#: ../Doc/library/email.encoders.rst:44 +msgid "" +"Encodes the payload into quoted-printable form and sets the :mailheader:" +"`Content-Transfer-Encoding` header to ``quoted-printable`` [#]_. This is a " +"good encoding to use when most of your payload is normal printable data, but " +"contains a few unprintable characters." +msgstr "" +"Encode la charge utile au format Quoted-Printable, et assigne ``quoted-" +"printable`` [#]_ à l'en-tête :mailheader:`Content-Transfer-Encoding`. C'est " +"un bon encodage à utiliser quand la majorité de la charge utile contient " +"essentiellement des données imprimables, à l'exceptions de quelques " +"caractères. " + +#: ../Doc/library/email.encoders.rst:52 +msgid "" +"Encodes the payload into base64 form and sets the :mailheader:`Content-" +"Transfer-Encoding` header to ``base64``. This is a good encoding to use " +"when most of your payload is unprintable data since it is a more compact " +"form than quoted-printable. The drawback of base64 encoding is that it " +"renders the text non-human readable." +msgstr "" +"Encode la charge utile au format *base64*, et assigne ``base64`` à l'en-" +"tête :mailheader:`Content-Transfer-Encoding`. C'est un bon encodage à " +"utiliser quand la majorité de la charge utile est non imprimable puisque " +"c'est une forme plus compacte que *quoted-printable*." + +#: ../Doc/library/email.encoders.rst:61 +msgid "" +"This doesn't actually modify the message's payload, but it does set the :" +"mailheader:`Content-Transfer-Encoding` header to either ``7bit`` or ``8bit`` " +"as appropriate, based on the payload data." +msgstr "" +"Ceci ne modifie pas effectivement la charge utile du message, mais va bien " +"en revanche assigner la valeur ``7bit`` ou ``8bit`` à l'en-tête :mailheader:" +"`Content-Transfer-Encoding` selon la nature de la charge utile." + +#: ../Doc/library/email.encoders.rst:68 +msgid "" +"This does nothing; it doesn't even set the :mailheader:`Content-Transfer-" +"Encoding` header." +msgstr "" +"Ceci ne fait rien; et ne va même pas changer la valeur de l'en-tête :" +"mailheader:`Content-Transfer-Encoding`." + +#: ../Doc/library/email.encoders.rst:72 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/email.encoders.rst:73 +msgid "" +"Note that encoding with :meth:`encode_quopri` also encodes all tabs and " +"space characters in the data." +msgstr "" +"À noter que l'encodage avec :meth:`encode_quopri` encode également tous les " +"caractères tabulation et espace." diff --git a/library/email.errors.po b/library/email.errors.po new file mode 100644 index 000000000..10e707678 --- /dev/null +++ b/library/email.errors.po @@ -0,0 +1,230 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-17 10:39+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/email.errors.rst:2 +msgid ":mod:`email.errors`: Exception and Defect classes" +msgstr ":mod:`email.errors` : exceptions et classes pour les anomalies" + +#: ../Doc/library/email.errors.rst:7 +msgid "**Source code:** :source:`Lib/email/errors.py`" +msgstr "**Code source :** :source:`Lib/email/errors.py`" + +#: ../Doc/library/email.errors.rst:11 +msgid "" +"The following exception classes are defined in the :mod:`email.errors` " +"module:" +msgstr "" +"Les classes d'exception suivantes sont définies dans le module :mod:`email." +"errors` :" + +#: ../Doc/library/email.errors.rst:16 +msgid "" +"This is the base class for all exceptions that the :mod:`email` package can " +"raise. It is derived from the standard :exc:`Exception` class and defines " +"no additional methods." +msgstr "" +"Exception de base, dont héritent toutes les exceptions du paquet :mod:" +"`email`. Cette classe hérite de la classe native :exc:`Exception` et ne " +"définit aucune méthode additionnelle." + +#: ../Doc/library/email.errors.rst:23 +msgid "" +"This is the base class for exceptions raised by the :class:`~email.parser." +"Parser` class. It is derived from :exc:`MessageError`. This class is also " +"used internally by the parser used by :mod:`~email.headerregistry`." +msgstr "" +"Exception de base pour les exceptions levées par la classe :class:`~email." +"parser.Parser`. Elle hérite de :exc:`MessageError`. Cette classe est aussi " +"utilisée en interne par l'analyseur de :mod:`~email.headerregistry`." + +#: ../Doc/library/email.errors.rst:31 +msgid "" +"Raised under some error conditions when parsing the :rfc:`5322` headers of a " +"message, this class is derived from :exc:`MessageParseError`. The :meth:" +"`~email.message.EmailMessage.set_boundary` method will raise this error if " +"the content type is unknown when the method is called. :class:`~email.header." +"Header` may raise this error for certain base64 decoding errors, and when an " +"attempt is made to create a header that appears to contain an embedded " +"header (that is, there is what is supposed to be a continuation line that " +"has no leading whitespace and looks like a header)." +msgstr "" +"Cette exception, dérivée de :exc:`MessageParseError`, est levée sous " +"différentes conditions lors de l'analyse des en-têtes :rfc:`5322` du " +"message. Lorsque la méthode :meth:`~email.message.EmailMessage." +"set_boundary` est invoquée, elle lève cette erreur si le type du contenu est " +"inconnu. La classe :class:`~email.header.Header` lève cette exception pour " +"certains types d'erreurs provenant du décodage base64. Elle la lève aussi " +"quand un en-tête est créé et qu'il semble contenir un en-tête imbriqué, " +"c'est-à-dire que la ligne qui suit ressemble à un en-tête et ne commence pas " +"par des caractères d'espacement." + +#: ../Doc/library/email.errors.rst:43 +msgid "Deprecated and no longer used." +msgstr "Obsolète, n'est plus utilisé." + +#: ../Doc/library/email.errors.rst:48 +msgid "" +"Raised when a payload is added to a :class:`~email.message.Message` object " +"using :meth:`add_payload`, but the payload is already a scalar and the " +"message's :mailheader:`Content-Type` main type is not either :mimetype:" +"`multipart` or missing. :exc:`MultipartConversionError` multiply inherits " +"from :exc:`MessageError` and the built-in :exc:`TypeError`." +msgstr "" +"Cette exception est levée quand le contenu, que la méthode :meth:" +"`add_payload` essaie d'ajouter à l'objet :class:`~email.message.Message`, " +"est déjà un scalaire et que le type principal du message :mailheader:" +"`Content-Type` est manquant ou différent de :mimetype:`multipart`. :exc:" +"`MultipartConversionError` hérite à la fois de :exc:`MessageError` et de :" +"exc:`TypeError`." + +#: ../Doc/library/email.errors.rst:54 +msgid "" +"Since :meth:`Message.add_payload` is deprecated, this exception is rarely " +"raised in practice. However the exception may also be raised if the :meth:" +"`~email.message.Message.attach` method is called on an instance of a class " +"derived from :class:`~email.mime.nonmultipart.MIMENonMultipart` (e.g. :class:" +"`~email.mime.image.MIMEImage`)." +msgstr "" +"Comme la méthode :meth:`Message.add_payload` est obsolète, cette exception " +"est rarement utilisée. Néanmoins, elle peut être levée si la méthode :meth:" +"`~email.message.Message.attach` est invoquée sur une instance de classe " +"dérivée de :class:`~email.mime.nonmultipart.MIMENonMultipart` (p. ex. :class:" +"`~email.mime.image.MIMEImage`)." + +#: ../Doc/library/email.errors.rst:62 +msgid "" +"Here is the list of the defects that the :class:`~email.parser.FeedParser` " +"can find while parsing messages. Note that the defects are added to the " +"message where the problem was found, so for example, if a message nested " +"inside a :mimetype:`multipart/alternative` had a malformed header, that " +"nested message object would have a defect, but the containing messages would " +"not." +msgstr "" +"Voici la liste des anomalies que peut identifier :class:`~email.parser." +"FeedParser` pendant l'analyse des messages. Notez que les anomalies sont " +"signalées à l'endroit où elles sont détectées : par exemple, dans le cas " +"d'une malformation de l'en-tête d'un message imbriqué dans un message de " +"type :mimetype:`multipart/alternative`, l'anomalie est signalée sur le " +"message imbriqué seulement." + +#: ../Doc/library/email.errors.rst:68 +msgid "" +"All defect classes are subclassed from :class:`email.errors.MessageDefect`." +msgstr "" +"Toutes les anomalies sont des sous-classes de :class:`email.errors." +"MessageDefect`." + +#: ../Doc/library/email.errors.rst:70 +msgid "" +":class:`NoBoundaryInMultipartDefect` -- A message claimed to be a multipart, " +"but had no :mimetype:`boundary` parameter." +msgstr "" +":class:`NoBoundaryInMultipartDefect` — Un message qui prétend être composite " +"(*multipart* en anglais), mais qui ne contient pas de séparateur :mimetype:" +"`boundary`." + +#: ../Doc/library/email.errors.rst:73 +msgid "" +":class:`StartBoundaryNotFoundDefect` -- The start boundary claimed in the :" +"mailheader:`Content-Type` header was never found." +msgstr "" +":class:`StartBoundaryNotFoundDefect` — Le message ne contient pas le " +"séparateur de départ indiqué dans le :mailheader:`Content-Type`." + +#: ../Doc/library/email.errors.rst:76 +msgid "" +":class:`CloseBoundaryNotFoundDefect` -- A start boundary was found, but no " +"corresponding close boundary was ever found." +msgstr "" +":class:`CloseBoundaryNotFoundDefect` — Le séparateur de départ a été trouvé, " +"mais pas le séparateur de fin correspondant." + +#: ../Doc/library/email.errors.rst:81 +msgid "" +":class:`FirstHeaderLineIsContinuationDefect` -- The message had a " +"continuation line as its first header line." +msgstr "" +":class:`FirstHeaderLineIsContinuationDefect` — La première ligne de l'en-" +"tête du message est une ligne de continuation." + +#: ../Doc/library/email.errors.rst:84 +msgid "" +":class:`MisplacedEnvelopeHeaderDefect` - A \"Unix From\" header was found in " +"the middle of a header block." +msgstr "" +":class:`MisplacedEnvelopeHeaderDefect` — Un en-tête *Unix From* est présent " +"à l'intérieur d'un bloc d'en-tête." + +#: ../Doc/library/email.errors.rst:87 +msgid "" +":class:`MissingHeaderBodySeparatorDefect` - A line was found while parsing " +"headers that had no leading white space but contained no ':'. Parsing " +"continues assuming that the line represents the first line of the body." +msgstr "" +":class:`MissingHeaderBodySeparatorDefect` — Une ligne d'en-tête ne contient " +"pas de caractères d'espacement au début et aucun « : ». L'analyse continue " +"en supposant qu'il s'agit donc de la première ligne du corps du message." + +#: ../Doc/library/email.errors.rst:93 +msgid "" +":class:`MalformedHeaderDefect` -- A header was found that was missing a " +"colon, or was otherwise malformed." +msgstr "" +":class:`MalformedHeaderDefect` -- Un en-tête est mal formé ou il manque un " +"« : »." + +#: ../Doc/library/email.errors.rst:96 +msgid "This defect has not been used for several Python versions." +msgstr "Cette anomalie est obsolète depuis plusieurs versions de Python." + +#: ../Doc/library/email.errors.rst:99 +msgid "" +":class:`MultipartInvariantViolationDefect` -- A message claimed to be a :" +"mimetype:`multipart`, but no subparts were found. Note that when a message " +"has this defect, its :meth:`~email.message.Message.is_multipart` method may " +"return false even though its content type claims to be :mimetype:`multipart`." +msgstr "" + +#: ../Doc/library/email.errors.rst:104 +msgid "" +":class:`InvalidBase64PaddingDefect` -- When decoding a block of base64 " +"encoded bytes, the padding was not correct. Enough padding is added to " +"perform the decode, but the resulting decoded bytes may be invalid." +msgstr "" +":class:`InvalidBase64PaddingDefect` — Remplissage incorrect d'un bloc " +"d'octets encodés en base64. Des caractères de remplissage ont été ajoutés " +"pour permettre le décodage, mais le résultat du décodage peut être invalide." + +#: ../Doc/library/email.errors.rst:108 +msgid "" +":class:`InvalidBase64CharactersDefect` -- When decoding a block of base64 " +"encoded bytes, characters outside the base64 alphabet were encountered. The " +"characters are ignored, but the resulting decoded bytes may be invalid." +msgstr "" +":class:`InvalidBase64CharactersDefect` — Des caractères n'appartenant pas à " +"l'alphabet base64 ont été rencontrés lors du décodage d'un bloc d'octets " +"encodés en base64. Les caractères ont été ignorés, mais le résultat du " +"décodage peut être invalide." + +#: ../Doc/library/email.errors.rst:112 +msgid "" +":class:`InvalidBase64LengthDefect` -- When decoding a block of base64 " +"encoded bytes, the number of non-padding base64 characters was invalid (1 " +"more than a multiple of 4). The encoded block was kept as-is." +msgstr "" +":class:`InvalidBase64LengthDefect` — Le nombre de caractères (autres que de " +"remplissage) d'un bloc d'octets encodés en base64 est invalide (1 de plus " +"qu'un multiple de 4). Le bloc encodé n'a pas été modifié." diff --git a/library/email.examples.po b/library/email.examples.po new file mode 100644 index 000000000..50eb37fed --- /dev/null +++ b/library/email.examples.po @@ -0,0 +1,104 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: 2018-09-28 13:01+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.5\n" + +#: ../Doc/library/email.examples.rst:4 +msgid ":mod:`email`: Examples" +msgstr ":mod:`email`: Exemples" + +#: ../Doc/library/email.examples.rst:6 +msgid "" +"Here are a few examples of how to use the :mod:`email` package to read, " +"write, and send simple email messages, as well as more complex MIME messages." +msgstr "" +"Cette page contient quelques exemples de l'utilisation du package :mod:" +"`email` pour lire, écrire, et envoyer de simples messages mail, ainsi que " +"des messages MIME plus complexes." + +#: ../Doc/library/email.examples.rst:9 +msgid "" +"First, let's see how to create and send a simple text message (both the text " +"content and the addresses may contain unicode characters):" +msgstr "" +"Premièrement, regardons comment créer et envoyer un message avec simplement " +"du texte (le contenu textuel et les adresses peuvent tous deux contenir des " +"caractères Unicodes) :" + +#: ../Doc/library/email.examples.rst:15 +msgid "" +"Parsing :rfc:`822` headers can easily be done by the using the classes from " +"the :mod:`~email.parser` module:" +msgstr "" +"Analyser des entêtes :rfc:`822` peut être aisément réalisé en utilisant les " +"classes du module :mod:`~email.parser` :" + +#: ../Doc/library/email.examples.rst:21 +msgid "" +"Here's an example of how to send a MIME message containing a bunch of family " +"pictures that may be residing in a directory:" +msgstr "" +"Voici un exemple de l'envoi d'un message MIME contenant une série de photos " +"de famille qui sont stockés ensemble dans un dossier :" + +#: ../Doc/library/email.examples.rst:27 +msgid "" +"Here's an example of how to send the entire contents of a directory as an " +"email message: [1]_" +msgstr "" +"Voici un exemple d'envoi du contenu d'un dossier entier en tant que message " +"mail : [1]_" + +#: ../Doc/library/email.examples.rst:33 +msgid "" +"Here's an example of how to unpack a MIME message like the one above, into a " +"directory of files:" +msgstr "" +"Voici un message de comment décomposer un message MIME comme celui ci dessus " +"en tant que fichiers dans un dossier :" + +#: ../Doc/library/email.examples.rst:39 +msgid "" +"Here's an example of how to create an HTML message with an alternative plain " +"text version. To make things a bit more interesting, we include a related " +"image in the html part, and we save a copy of what we are going to send to " +"disk, as well as sending it." +msgstr "" +"Voici un exemple de création d'un message HTML avec une version en texte " +"comme alternative. Pour rendre les choses un peu plus intéressantes, nous " +"incluons aussi une image dans la partie HTML, nous sauvons une copie du " +"message sur le disque, et nous l'envoyons." + +#: ../Doc/library/email.examples.rst:47 +msgid "" +"If we were sent the message from the last example, here is one way we could " +"process it:" +msgstr "" +"Si on nous avait envoyé le message de l'exemple précédent, voici la manière " +"avec laquelle nous pourrions le traiter :" + +#: ../Doc/library/email.examples.rst:52 +msgid "Up to the prompt, the output from the above is:" +msgstr "La sortie textuelle du code ci dessus est :" + +#: ../Doc/library/email.examples.rst:66 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/email.examples.rst:67 +msgid "" +"Thanks to Matthew Dixon Cowles for the original inspiration and examples." +msgstr "" +"Merci à Matthew Dixon Cowles pour l'inspiration originale et les exemples." diff --git a/library/email.generator.po b/library/email.generator.po new file mode 100644 index 000000000..f406f37ea --- /dev/null +++ b/library/email.generator.po @@ -0,0 +1,321 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/email.generator.rst:2 +msgid ":mod:`email.generator`: Generating MIME documents" +msgstr "" + +#: ../Doc/library/email.generator.rst:7 +msgid "**Source code:** :source:`Lib/email/generator.py`" +msgstr "" + +#: ../Doc/library/email.generator.rst:11 +msgid "" +"One of the most common tasks is to generate the flat (serialized) version of " +"the email message represented by a message object structure. You will need " +"to do this if you want to send your message via :meth:`smtplib.SMTP." +"sendmail` or the :mod:`nntplib` module, or print the message on the " +"console. Taking a message object structure and producing a serialized " +"representation is the job of the generator classes." +msgstr "" + +#: ../Doc/library/email.generator.rst:18 +msgid "" +"As with the :mod:`email.parser` module, you aren't limited to the " +"functionality of the bundled generator; you could write one from scratch " +"yourself. However the bundled generator knows how to generate most email in " +"a standards-compliant way, should handle MIME and non-MIME email messages " +"just fine, and is designed so that the bytes-oriented parsing and generation " +"operations are inverses, assuming the same non-transforming :mod:`~email." +"policy` is used for both. That is, parsing the serialized byte stream via " +"the :class:`~email.parser.BytesParser` class and then regenerating the " +"serialized byte stream using :class:`BytesGenerator` should produce output " +"identical to the input [#]_. (On the other hand, using the generator on an :" +"class:`~email.message.EmailMessage` constructed by program may result in " +"changes to the :class:`~email.message.EmailMessage` object as defaults are " +"filled in.)" +msgstr "" + +#: ../Doc/library/email.generator.rst:32 +msgid "" +"The :class:`Generator` class can be used to flatten a message into a text " +"(as opposed to binary) serialized representation, but since Unicode cannot " +"represent binary data directly, the message is of necessity transformed into " +"something that contains only ASCII characters, using the standard email RFC " +"Content Transfer Encoding techniques for encoding email messages for " +"transport over channels that are not \"8 bit clean\"." +msgstr "" + +#: ../Doc/library/email.generator.rst:43 +msgid "" +"Return a :class:`BytesGenerator` object that will write any message provided " +"to the :meth:`flatten` method, or any surrogateescape encoded text provided " +"to the :meth:`write` method, to the :term:`file-like object` *outfp*. " +"*outfp* must support a ``write`` method that accepts binary data." +msgstr "" + +#: ../Doc/library/email.generator.rst:48 ../Doc/library/email.generator.rst:149 +msgid "" +"If optional *mangle_from_* is ``True``, put a ``>`` character in front of " +"any line in the body that starts with the exact string ``\"From \"``, that " +"is ``From`` followed by a space at the beginning of a line. *mangle_from_* " +"defaults to the value of the :attr:`~email.policy.Policy.mangle_from_` " +"setting of the *policy* (which is ``True`` for the :data:`~email.policy." +"compat32` policy and ``False`` for all others). *mangle_from_* is intended " +"for use when messages are stored in unix mbox format (see :mod:`mailbox` and " +"`WHY THE CONTENT-LENGTH FORMAT IS BAD `_)." +msgstr "" + +#: ../Doc/library/email.generator.rst:58 ../Doc/library/email.generator.rst:159 +msgid "" +"If *maxheaderlen* is not ``None``, refold any header lines that are longer " +"than *maxheaderlen*, or if ``0``, do not rewrap any headers. If " +"*manheaderlen* is ``None`` (the default), wrap headers and other message " +"lines according to the *policy* settings." +msgstr "" + +#: ../Doc/library/email.generator.rst:63 ../Doc/library/email.generator.rst:164 +msgid "" +"If *policy* is specified, use that policy to control message generation. If " +"*policy* is ``None`` (the default), use the policy associated with the :" +"class:`~email.message.Message` or :class:`~email.message.EmailMessage` " +"object passed to ``flatten`` to control the message generation. See :mod:" +"`email.policy` for details on what *policy* controls." +msgstr "" + +#: ../Doc/library/email.generator.rst:71 ../Doc/library/email.generator.rst:170 +msgid "Added the *policy* keyword." +msgstr "" + +#: ../Doc/library/email.generator.rst:73 ../Doc/library/email.generator.rst:172 +msgid "" +"The default behavior of the *mangle_from_* and *maxheaderlen* parameters is " +"to follow the policy." +msgstr "" + +#: ../Doc/library/email.generator.rst:79 +msgid "" +"Print the textual representation of the message object structure rooted at " +"*msg* to the output file specified when the :class:`BytesGenerator` instance " +"was created." +msgstr "" + +#: ../Doc/library/email.generator.rst:83 +msgid "" +"If the :mod:`~email.policy` option :attr:`~email.policy.Policy.cte_type` is " +"``8bit`` (the default), copy any headers in the original parsed message that " +"have not been modified to the output with any bytes with the high bit set " +"reproduced as in the original, and preserve the non-ASCII :mailheader:" +"`Content-Transfer-Encoding` of any body parts that have them. If " +"``cte_type`` is ``7bit``, convert the bytes with the high bit set as needed " +"using an ASCII-compatible :mailheader:`Content-Transfer-Encoding`. That is, " +"transform parts with non-ASCII :mailheader:`Content-Transfer-Encoding` (:" +"mailheader:`Content-Transfer-Encoding: 8bit`) to an ASCII compatible :" +"mailheader:`Content-Transfer-Encoding`, and encode RFC-invalid non-ASCII " +"bytes in headers using the MIME ``unknown-8bit`` character set, thus " +"rendering them RFC-compliant." +msgstr "" + +#: ../Doc/library/email.generator.rst:100 +#: ../Doc/library/email.generator.rst:193 +msgid "" +"If *unixfrom* is ``True``, print the envelope header delimiter used by the " +"Unix mailbox format (see :mod:`mailbox`) before the first of the :rfc:`5322` " +"headers of the root message object. If the root object has no envelope " +"header, craft a standard one. The default is ``False``. Note that for " +"subparts, no envelope header is ever printed." +msgstr "" + +#: ../Doc/library/email.generator.rst:106 +#: ../Doc/library/email.generator.rst:199 +msgid "" +"If *linesep* is not ``None``, use it as the separator character between all " +"the lines of the flattened message. If *linesep* is ``None`` (the default), " +"use the value specified in the *policy*." +msgstr "" + +#: ../Doc/library/email.generator.rst:115 +msgid "" +"Return an independent clone of this :class:`BytesGenerator` instance with " +"the exact same option settings, and *fp* as the new *outfp*." +msgstr "" + +#: ../Doc/library/email.generator.rst:121 +msgid "" +"Encode *s* using the ``ASCII`` codec and the ``surrogateescape`` error " +"handler, and pass it to the *write* method of the *outfp* passed to the :" +"class:`BytesGenerator`'s constructor." +msgstr "" + +#: ../Doc/library/email.generator.rst:126 +msgid "" +"As a convenience, :class:`~email.message.EmailMessage` provides the methods :" +"meth:`~email.message.EmailMessage.as_bytes` and ``bytes(aMessage)`` (a.k.a. :" +"meth:`~email.message.EmailMessage.__bytes__`), which simplify the generation " +"of a serialized binary representation of a message object. For more detail, " +"see :mod:`email.message`." +msgstr "" + +#: ../Doc/library/email.generator.rst:133 +msgid "" +"Because strings cannot represent binary data, the :class:`Generator` class " +"must convert any binary data in any message it flattens to an ASCII " +"compatible format, by converting them to an ASCII compatible :mailheader:" +"`Content-Transfer_Encoding`. Using the terminology of the email RFCs, you " +"can think of this as :class:`Generator` serializing to an I/O stream that is " +"not \"8 bit clean\". In other words, most applications will want to be " +"using :class:`BytesGenerator`, and not :class:`Generator`." +msgstr "" + +#: ../Doc/library/email.generator.rst:144 +msgid "" +"Return a :class:`Generator` object that will write any message provided to " +"the :meth:`flatten` method, or any text provided to the :meth:`write` " +"method, to the :term:`file-like object` *outfp*. *outfp* must support a " +"``write`` method that accepts string data." +msgstr "" + +#: ../Doc/library/email.generator.rst:178 +msgid "" +"Print the textual representation of the message object structure rooted at " +"*msg* to the output file specified when the :class:`Generator` instance was " +"created." +msgstr "" + +#: ../Doc/library/email.generator.rst:182 +msgid "" +"If the :mod:`~email.policy` option :attr:`~email.policy.Policy.cte_type` is " +"``8bit``, generate the message as if the option were set to ``7bit``. (This " +"is required because strings cannot represent non-ASCII bytes.) Convert any " +"bytes with the high bit set as needed using an ASCII-compatible :mailheader:" +"`Content-Transfer-Encoding`. That is, transform parts with non-ASCII :" +"mailheader:`Content-Transfer-Encoding` (:mailheader:`Content-Transfer-" +"Encoding: 8bit`) to an ASCII compatible :mailheader:`Content-Transfer-" +"Encoding`, and encode RFC-invalid non-ASCII bytes in headers using the MIME " +"``unknown-8bit`` character set, thus rendering them RFC-compliant." +msgstr "" + +#: ../Doc/library/email.generator.rst:205 +msgid "" +"Added support for re-encoding ``8bit`` message bodies, and the *linesep* " +"argument." +msgstr "" + +#: ../Doc/library/email.generator.rst:212 +msgid "" +"Return an independent clone of this :class:`Generator` instance with the " +"exact same options, and *fp* as the new *outfp*." +msgstr "" + +#: ../Doc/library/email.generator.rst:218 +msgid "" +"Write *s* to the *write* method of the *outfp* passed to the :class:" +"`Generator`'s constructor. This provides just enough file-like API for :" +"class:`Generator` instances to be used in the :func:`print` function." +msgstr "" + +#: ../Doc/library/email.generator.rst:224 +msgid "" +"As a convenience, :class:`~email.message.EmailMessage` provides the methods :" +"meth:`~email.message.EmailMessage.as_string` and ``str(aMessage)`` (a.k.a. :" +"meth:`~email.message.EmailMessage.__str__`), which simplify the generation " +"of a formatted string representation of a message object. For more detail, " +"see :mod:`email.message`." +msgstr "" + +#: ../Doc/library/email.generator.rst:231 +msgid "" +"The :mod:`email.generator` module also provides a derived class, :class:" +"`DecodedGenerator`, which is like the :class:`Generator` base class, except " +"that non-\\ :mimetype:`text` parts are not serialized, but are instead " +"represented in the output stream by a string derived from a template filled " +"in with information about the part." +msgstr "" + +#: ../Doc/library/email.generator.rst:240 +msgid "" +"Act like :class:`Generator`, except that for any subpart of the message " +"passed to :meth:`Generator.flatten`, if the subpart is of main type :" +"mimetype:`text`, print the decoded payload of the subpart, and if the main " +"type is not :mimetype:`text`, instead of printing it fill in the string " +"*fmt* using information from the part and print the resulting filled-in " +"string." +msgstr "" + +#: ../Doc/library/email.generator.rst:247 +msgid "" +"To fill in *fmt*, execute ``fmt % part_info``, where ``part_info`` is a " +"dictionary composed of the following keys and values:" +msgstr "" + +#: ../Doc/library/email.generator.rst:250 +msgid "``type`` -- Full MIME type of the non-\\ :mimetype:`text` part" +msgstr "" + +#: ../Doc/library/email.generator.rst:252 +msgid "``maintype`` -- Main MIME type of the non-\\ :mimetype:`text` part" +msgstr "" + +#: ../Doc/library/email.generator.rst:254 +msgid "``subtype`` -- Sub-MIME type of the non-\\ :mimetype:`text` part" +msgstr "" + +#: ../Doc/library/email.generator.rst:256 +msgid "``filename`` -- Filename of the non-\\ :mimetype:`text` part" +msgstr "" + +#: ../Doc/library/email.generator.rst:258 +msgid "" +"``description`` -- Description associated with the non-\\ :mimetype:`text` " +"part" +msgstr "" + +#: ../Doc/library/email.generator.rst:260 +msgid "" +"``encoding`` -- Content transfer encoding of the non-\\ :mimetype:`text` part" +msgstr "" + +#: ../Doc/library/email.generator.rst:262 +msgid "If *fmt* is ``None``, use the following default *fmt*:" +msgstr "" + +#: ../Doc/library/email.generator.rst:264 +msgid "" +"\"[Non-text (%(type)s) part of message omitted, filename %(filename)s]\"" +msgstr "" + +#: ../Doc/library/email.generator.rst:266 +msgid "" +"Optional *_mangle_from_* and *maxheaderlen* are as with the :class:" +"`Generator` base class." +msgstr "" + +#: ../Doc/library/email.generator.rst:271 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/email.generator.rst:272 +msgid "" +"This statement assumes that you use the appropriate setting for " +"``unixfrom``, and that there are no :mod:`policy` settings calling for " +"automatic adjustments (for example, :attr:`~email.policy.Policy." +"refold_source` must be ``none``, which is *not* the default). It is also " +"not 100% true, since if the message does not conform to the RFC standards " +"occasionally information about the exact original text is lost during " +"parsing error recovery. It is a goal to fix these latter edge cases when " +"possible." +msgstr "" diff --git a/library/email.header.po b/library/email.header.po new file mode 100644 index 000000000..3b78d4670 --- /dev/null +++ b/library/email.header.po @@ -0,0 +1,286 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/email.header.rst:2 +msgid ":mod:`email.header`: Internationalized headers" +msgstr "" + +#: ../Doc/library/email.header.rst:7 +msgid "**Source code:** :source:`Lib/email/header.py`" +msgstr "" + +#: ../Doc/library/email.header.rst:11 +msgid "" +"This module is part of the legacy (``Compat32``) email API. In the current " +"API encoding and decoding of headers is handled transparently by the " +"dictionary-like API of the :class:`~email.message.EmailMessage` class. In " +"addition to uses in legacy code, this module can be useful in applications " +"that need to completely control the character sets used when encoding " +"headers." +msgstr "" + +#: ../Doc/library/email.header.rst:17 +msgid "" +"The remaining text in this section is the original documentation of the " +"module." +msgstr "" +"Le texte restant de cette section est la documentation originale de ce " +"module." + +#: ../Doc/library/email.header.rst:19 +msgid "" +":rfc:`2822` is the base standard that describes the format of email " +"messages. It derives from the older :rfc:`822` standard which came into " +"widespread use at a time when most email was composed of ASCII characters " +"only. :rfc:`2822` is a specification written assuming email contains only 7-" +"bit ASCII characters." +msgstr "" + +#: ../Doc/library/email.header.rst:24 +msgid "" +"Of course, as email has been deployed worldwide, it has become " +"internationalized, such that language specific character sets can now be " +"used in email messages. The base standard still requires email messages to " +"be transferred using only 7-bit ASCII characters, so a slew of RFCs have " +"been written describing how to encode email containing non-ASCII characters " +"into :rfc:`2822`\\ -compliant format. These RFCs include :rfc:`2045`, :rfc:" +"`2046`, :rfc:`2047`, and :rfc:`2231`. The :mod:`email` package supports " +"these standards in its :mod:`email.header` and :mod:`email.charset` modules." +msgstr "" + +#: ../Doc/library/email.header.rst:33 +msgid "" +"If you want to include non-ASCII characters in your email headers, say in " +"the :mailheader:`Subject` or :mailheader:`To` fields, you should use the :" +"class:`Header` class and assign the field in the :class:`~email.message." +"Message` object to an instance of :class:`Header` instead of using a string " +"for the header value. Import the :class:`Header` class from the :mod:`email." +"header` module. For example::" +msgstr "" + +#: ../Doc/library/email.header.rst:50 +msgid "" +"Notice here how we wanted the :mailheader:`Subject` field to contain a non-" +"ASCII character? We did this by creating a :class:`Header` instance and " +"passing in the character set that the byte string was encoded in. When the " +"subsequent :class:`~email.message.Message` instance was flattened, the :" +"mailheader:`Subject` field was properly :rfc:`2047` encoded. MIME-aware " +"mail readers would show this header using the embedded ISO-8859-1 character." +msgstr "" + +#: ../Doc/library/email.header.rst:57 +msgid "Here is the :class:`Header` class description:" +msgstr "" + +#: ../Doc/library/email.header.rst:62 +msgid "" +"Create a MIME-compliant header that can contain strings in different " +"character sets." +msgstr "" + +#: ../Doc/library/email.header.rst:65 +msgid "" +"Optional *s* is the initial header value. If ``None`` (the default), the " +"initial header value is not set. You can later append to the header with :" +"meth:`append` method calls. *s* may be an instance of :class:`bytes` or :" +"class:`str`, but see the :meth:`append` documentation for semantics." +msgstr "" + +#: ../Doc/library/email.header.rst:70 +msgid "" +"Optional *charset* serves two purposes: it has the same meaning as the " +"*charset* argument to the :meth:`append` method. It also sets the default " +"character set for all subsequent :meth:`append` calls that omit the " +"*charset* argument. If *charset* is not provided in the constructor (the " +"default), the ``us-ascii`` character set is used both as *s*'s initial " +"charset and as the default for subsequent :meth:`append` calls." +msgstr "" + +#: ../Doc/library/email.header.rst:77 +msgid "" +"The maximum line length can be specified explicitly via *maxlinelen*. For " +"splitting the first line to a shorter value (to account for the field header " +"which isn't included in *s*, e.g. :mailheader:`Subject`) pass in the name of " +"the field in *header_name*. The default *maxlinelen* is 76, and the default " +"value for *header_name* is ``None``, meaning it is not taken into account " +"for the first line of a long, split header." +msgstr "" + +#: ../Doc/library/email.header.rst:84 +msgid "" +"Optional *continuation_ws* must be :rfc:`2822`\\ -compliant folding " +"whitespace, and is usually either a space or a hard tab character. This " +"character will be prepended to continuation lines. *continuation_ws* " +"defaults to a single space character." +msgstr "" + +#: ../Doc/library/email.header.rst:89 +msgid "" +"Optional *errors* is passed straight through to the :meth:`append` method." +msgstr "" + +#: ../Doc/library/email.header.rst:94 +msgid "Append the string *s* to the MIME header." +msgstr "" + +#: ../Doc/library/email.header.rst:96 +msgid "" +"Optional *charset*, if given, should be a :class:`~email.charset.Charset` " +"instance (see :mod:`email.charset`) or the name of a character set, which " +"will be converted to a :class:`~email.charset.Charset` instance. A value of " +"``None`` (the default) means that the *charset* given in the constructor is " +"used." +msgstr "" + +#: ../Doc/library/email.header.rst:102 +msgid "" +"*s* may be an instance of :class:`bytes` or :class:`str`. If it is an " +"instance of :class:`bytes`, then *charset* is the encoding of that byte " +"string, and a :exc:`UnicodeError` will be raised if the string cannot be " +"decoded with that character set." +msgstr "" + +#: ../Doc/library/email.header.rst:107 +msgid "" +"If *s* is an instance of :class:`str`, then *charset* is a hint specifying " +"the character set of the characters in the string." +msgstr "" + +#: ../Doc/library/email.header.rst:110 +msgid "" +"In either case, when producing an :rfc:`2822`\\ -compliant header using :rfc:" +"`2047` rules, the string will be encoded using the output codec of the " +"charset. If the string cannot be encoded using the output codec, a " +"UnicodeError will be raised." +msgstr "" + +#: ../Doc/library/email.header.rst:115 +msgid "" +"Optional *errors* is passed as the errors argument to the decode call if *s* " +"is a byte string." +msgstr "" + +#: ../Doc/library/email.header.rst:121 +msgid "" +"Encode a message header into an RFC-compliant format, possibly wrapping long " +"lines and encapsulating non-ASCII parts in base64 or quoted-printable " +"encodings." +msgstr "" + +#: ../Doc/library/email.header.rst:125 +msgid "" +"Optional *splitchars* is a string containing characters which should be " +"given extra weight by the splitting algorithm during normal header " +"wrapping. This is in very rough support of :RFC:`2822`\\'s 'higher level " +"syntactic breaks': split points preceded by a splitchar are preferred " +"during line splitting, with the characters preferred in the order in which " +"they appear in the string. Space and tab may be included in the string to " +"indicate whether preference should be given to one over the other as a split " +"point when other split chars do not appear in the line being split. " +"Splitchars does not affect :RFC:`2047` encoded lines." +msgstr "" + +#: ../Doc/library/email.header.rst:135 +msgid "" +"*maxlinelen*, if given, overrides the instance's value for the maximum line " +"length." +msgstr "" + +#: ../Doc/library/email.header.rst:138 +msgid "" +"*linesep* specifies the characters used to separate the lines of the folded " +"header. It defaults to the most useful value for Python application code (``" +"\\n``), but ``\\r\\n`` can be specified in order to produce headers with RFC-" +"compliant line separators." +msgstr "" + +#: ../Doc/library/email.header.rst:143 +msgid "Added the *linesep* argument." +msgstr "" + +#: ../Doc/library/email.header.rst:147 +msgid "" +"The :class:`Header` class also provides a number of methods to support " +"standard operators and built-in functions." +msgstr "" + +#: ../Doc/library/email.header.rst:152 +msgid "" +"Returns an approximation of the :class:`Header` as a string, using an " +"unlimited line length. All pieces are converted to unicode using the " +"specified encoding and joined together appropriately. Any pieces with a " +"charset of ``'unknown-8bit'`` are decoded as ASCII using the ``'replace'`` " +"error handler." +msgstr "" + +#: ../Doc/library/email.header.rst:158 +msgid "Added handling for the ``'unknown-8bit'`` charset." +msgstr "" + +#: ../Doc/library/email.header.rst:164 +msgid "" +"This method allows you to compare two :class:`Header` instances for equality." +msgstr "" + +#: ../Doc/library/email.header.rst:170 +msgid "" +"This method allows you to compare two :class:`Header` instances for " +"inequality." +msgstr "" + +#: ../Doc/library/email.header.rst:173 +msgid "" +"The :mod:`email.header` module also provides the following convenient " +"functions." +msgstr "" + +#: ../Doc/library/email.header.rst:178 +msgid "" +"Decode a message header value without converting the character set. The " +"header value is in *header*." +msgstr "" + +#: ../Doc/library/email.header.rst:181 +msgid "" +"This function returns a list of ``(decoded_string, charset)`` pairs " +"containing each of the decoded parts of the header. *charset* is ``None`` " +"for non-encoded parts of the header, otherwise a lower case string " +"containing the name of the character set specified in the encoded string." +msgstr "" + +#: ../Doc/library/email.header.rst:186 +msgid "Here's an example::" +msgstr "" + +#: ../Doc/library/email.header.rst:195 +msgid "" +"Create a :class:`Header` instance from a sequence of pairs as returned by :" +"func:`decode_header`." +msgstr "" + +#: ../Doc/library/email.header.rst:198 +msgid "" +":func:`decode_header` takes a header value string and returns a sequence of " +"pairs of the format ``(decoded_string, charset)`` where *charset* is the " +"name of the character set." +msgstr "" + +#: ../Doc/library/email.header.rst:202 +msgid "" +"This function takes one of those sequence of pairs and returns a :class:" +"`Header` instance. Optional *maxlinelen*, *header_name*, and " +"*continuation_ws* are as in the :class:`Header` constructor." +msgstr "" diff --git a/library/email.headerregistry.po b/library/email.headerregistry.po new file mode 100644 index 000000000..67f10cd14 --- /dev/null +++ b/library/email.headerregistry.po @@ -0,0 +1,591 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-10-13 22:28+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/email.headerregistry.rst:2 +msgid ":mod:`email.headerregistry`: Custom Header Objects" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:10 +msgid "**Source code:** :source:`Lib/email/headerregistry.py`" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:14 +msgid "[1]_" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:16 +msgid "" +"Headers are represented by customized subclasses of :class:`str`. The " +"particular class used to represent a given header is determined by the :attr:" +"`~email.policy.EmailPolicy.header_factory` of the :mod:`~email.policy` in " +"effect when the headers are created. This section documents the particular " +"``header_factory`` implemented by the email package for handling :RFC:`5322` " +"compliant email messages, which not only provides customized header objects " +"for various header types, but also provides an extension mechanism for " +"applications to add their own custom header types." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:25 +msgid "" +"When using any of the policy objects derived from :data:`~email.policy." +"EmailPolicy`, all headers are produced by :class:`.HeaderRegistry` and have :" +"class:`.BaseHeader` as their last base class. Each header class has an " +"additional base class that is determined by the type of the header. For " +"example, many headers have the class :class:`.UnstructuredHeader` as their " +"other base class. The specialized second class for a header is determined " +"by the name of the header, using a lookup table stored in the :class:`." +"HeaderRegistry`. All of this is managed transparently for the typical " +"application program, but interfaces are provided for modifying the default " +"behavior for use by more complex applications." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:36 +msgid "" +"The sections below first document the header base classes and their " +"attributes, followed by the API for modifying the behavior of :class:`." +"HeaderRegistry`, and finally the support classes used to represent the data " +"parsed from structured headers." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:44 +msgid "" +"*name* and *value* are passed to ``BaseHeader`` from the :attr:`~email." +"policy.EmailPolicy.header_factory` call. The string value of any header " +"object is the *value* fully decoded to unicode." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:48 +msgid "This base class defines the following read-only properties:" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:53 +msgid "" +"The name of the header (the portion of the field before the ':'). This is " +"exactly the value passed in the :attr:`~email.policy.EmailPolicy." +"header_factory` call for *name*; that is, case is preserved." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:61 +msgid "" +"A tuple of :exc:`~email.errors.HeaderDefect` instances reporting any RFC " +"compliance problems found during parsing. The email package tries to be " +"complete about detecting compliance issues. See the :mod:`~email.errors` " +"module for a discussion of the types of defects that may be reported." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:69 +msgid "" +"The maximum number of headers of this type that can have the same ``name``. " +"A value of ``None`` means unlimited. The ``BaseHeader`` value for this " +"attribute is ``None``; it is expected that specialized header classes will " +"override this value as needed." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:74 +msgid "" +"``BaseHeader`` also provides the following method, which is called by the " +"email library code and should not in general be called by application " +"programs:" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:80 +msgid "" +"Return a string containing :attr:`~email.policy.Policy.linesep` characters " +"as required to correctly fold the header according to *policy*. A :attr:" +"`~email.policy.Policy.cte_type` of ``8bit`` will be treated as if it were " +"``7bit``, since headers may not contain arbitrary binary data. If :attr:" +"`~email.policy.EmailPolicy.utf8` is ``False``, non-ASCII data will be :rfc:" +"`2047` encoded." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:88 +msgid "" +"``BaseHeader`` by itself cannot be used to create a header object. It " +"defines a protocol that each specialized header cooperates with in order to " +"produce the header object. Specifically, ``BaseHeader`` requires that the " +"specialized class provide a :func:`classmethod` named ``parse``. This " +"method is called as follows::" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:96 +msgid "" +"``kwds`` is a dictionary containing one pre-initialized key, ``defects``. " +"``defects`` is an empty list. The parse method should append any detected " +"defects to this list. On return, the ``kwds`` dictionary *must* contain " +"values for at least the keys ``decoded`` and ``defects``. ``decoded`` " +"should be the string value for the header (that is, the header value fully " +"decoded to unicode). The parse method should assume that *string* may " +"contain content-transfer-encoded parts, but should correctly handle all " +"valid unicode characters as well so that it can parse un-encoded header " +"values." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:105 +msgid "" +"``BaseHeader``'s ``__new__`` then creates the header instance, and calls its " +"``init`` method. The specialized class only needs to provide an ``init`` " +"method if it wishes to set additional attributes beyond those provided by " +"``BaseHeader`` itself. Such an ``init`` method should look like this::" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:114 +msgid "" +"That is, anything extra that the specialized class puts in to the ``kwds`` " +"dictionary should be removed and handled, and the remaining contents of " +"``kw`` (and ``args``) passed to the ``BaseHeader`` ``init`` method." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:121 +msgid "" +"An \"unstructured\" header is the default type of header in :rfc:`5322`. Any " +"header that does not have a specified syntax is treated as unstructured. " +"The classic example of an unstructured header is the :mailheader:`Subject` " +"header." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:126 +msgid "" +"In :rfc:`5322`, an unstructured header is a run of arbitrary text in the " +"ASCII character set. :rfc:`2047`, however, has an :rfc:`5322` compatible " +"mechanism for encoding non-ASCII text as ASCII characters within a header " +"value. When a *value* containing encoded words is passed to the " +"constructor, the ``UnstructuredHeader`` parser converts such encoded words " +"into unicode, following the :rfc:`2047` rules for unstructured text. The " +"parser uses heuristics to attempt to decode certain non-compliant encoded " +"words. Defects are registered in such cases, as well as defects for issues " +"such as invalid characters within the encoded words or the non-encoded text." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:136 +msgid "This header type provides no additional attributes." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:141 +msgid "" +":rfc:`5322` specifies a very specific format for dates within email headers. " +"The ``DateHeader`` parser recognizes that date format, as well as " +"recognizing a number of variant forms that are sometimes found \"in the wild" +"\"." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:146 +#: ../Doc/library/email.headerregistry.rst:188 +msgid "This header type provides the following additional attributes:" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:150 +msgid "" +"If the header value can be recognized as a valid date of one form or " +"another, this attribute will contain a :class:`~datetime.datetime` instance " +"representing that date. If the timezone of the input date is specified as " +"``-0000`` (indicating it is in UTC but contains no information about the " +"source timezone), then :attr:`.datetime` will be a naive :class:`~datetime." +"datetime`. If a specific timezone offset is found (including `+0000`), " +"then :attr:`.datetime` will contain an aware ``datetime`` that uses :class:" +"`datetime.timezone` to record the timezone offset." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:160 +msgid "" +"The ``decoded`` value of the header is determined by formatting the " +"``datetime`` according to the :rfc:`5322` rules; that is, it is set to::" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:165 +msgid "" +"When creating a ``DateHeader``, *value* may be :class:`~datetime.datetime` " +"instance. This means, for example, that the following code is valid and " +"does what one would expect::" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:171 +msgid "" +"Because this is a naive ``datetime`` it will be interpreted as a UTC " +"timestamp, and the resulting value will have a timezone of ``-0000``. Much " +"more useful is to use the :func:`~email.utils.localtime` function from the :" +"mod:`~email.utils` module::" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:178 +msgid "" +"This example sets the date header to the current time and date using the " +"current timezone offset." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:184 +msgid "" +"Address headers are one of the most complex structured header types. The " +"``AddressHeader`` class provides a generic interface to any address header." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:193 +msgid "" +"A tuple of :class:`.Group` objects encoding the addresses and groups found " +"in the header value. Addresses that are not part of a group are represented " +"in this list as single-address ``Groups`` whose :attr:`~.Group.display_name` " +"is ``None``." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:201 +msgid "" +"A tuple of :class:`.Address` objects encoding all of the individual " +"addresses from the header value. If the header value contains any groups, " +"the individual addresses from the group are included in the list at the " +"point where the group occurs in the value (that is, the list of addresses is " +"\"flattened\" into a one dimensional list)." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:207 +msgid "" +"The ``decoded`` value of the header will have all encoded words decoded to " +"unicode. :class:`~encodings.idna` encoded domain names are also decoded to " +"unicode. The ``decoded`` value is set by :attr:`~str.join`\\ ing the :class:" +"`str` value of the elements of the ``groups`` attribute with ``', '``." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:213 +msgid "" +"A list of :class:`.Address` and :class:`.Group` objects in any combination " +"may be used to set the value of an address header. ``Group`` objects whose " +"``display_name`` is ``None`` will be interpreted as single addresses, which " +"allows an address list to be copied with groups intact by using the list " +"obtained from the ``groups`` attribute of the source header." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:222 +msgid "" +"A subclass of :class:`.AddressHeader` that adds one additional attribute:" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:228 +msgid "" +"The single address encoded by the header value. If the header value " +"actually contains more than one address (which would be a violation of the " +"RFC under the default :mod:`~email.policy`), accessing this attribute will " +"result in a :exc:`ValueError`." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:234 +msgid "" +"Many of the above classes also have a ``Unique`` variant (for example, " +"``UniqueUnstructuredHeader``). The only difference is that in the " +"``Unique`` variant, :attr:`~.BaseHeader.max_count` is set to 1." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:241 +msgid "" +"There is really only one valid value for the :mailheader:`MIME-Version` " +"header, and that is ``1.0``. For future proofing, this header class " +"supports other valid version numbers. If a version number has a valid value " +"per :rfc:`2045`, then the header object will have non-``None`` values for " +"the following attributes:" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:249 +msgid "" +"The version number as a string, with any whitespace and/or comments removed." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:254 +msgid "The major version number as an integer" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:258 +msgid "The minor version number as an integer" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:263 +msgid "" +"MIME headers all start with the prefix 'Content-'. Each specific header has " +"a certain value, described under the class for that header. Some can also " +"take a list of supplemental parameters, which have a common format. This " +"class serves as a base for all the MIME headers that take parameters." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:270 +msgid "A dictionary mapping parameter names to parameter values." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:275 +msgid "" +"A :class:`ParameterizedMIMEHeader` class that handles the :mailheader:" +"`Content-Type` header." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:280 +msgid "The content type string, in the form ``maintype/subtype``." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:289 +msgid "" +"A :class:`ParameterizedMIMEHeader` class that handles the :mailheader:" +"`Content-Disposition` header." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:294 +msgid "``inline`` and ``attachment`` are the only valid values in common use." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:299 +msgid "Handles the :mailheader:`Content-Transfer-Encoding` header." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:303 +msgid "" +"Valid values are ``7bit``, ``8bit``, ``base64``, and ``quoted-printable``. " +"See :rfc:`2045` for more information." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:312 +msgid "" +"This is the factory used by :class:`~email.policy.EmailPolicy` by default. " +"``HeaderRegistry`` builds the class used to create a header instance " +"dynamically, using *base_class* and a specialized class retrieved from a " +"registry that it holds. When a given header name does not appear in the " +"registry, the class specified by *default_class* is used as the specialized " +"class. When *use_default_map* is ``True`` (the default), the standard " +"mapping of header names to classes is copied in to the registry during " +"initialization. *base_class* is always the last class in the generated " +"class's ``__bases__`` list." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:322 +msgid "The default mappings are:" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:0 +msgid "subject" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:324 +msgid "UniqueUnstructuredHeader" +msgstr "UniqueUnstructuredHeader" + +#: ../Doc/library/email.headerregistry.rst:0 +msgid "date" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:325 +#: ../Doc/library/email.headerregistry.rst:327 +msgid "UniqueDateHeader" +msgstr "UniqueDateHeader" + +#: ../Doc/library/email.headerregistry.rst:0 +msgid "resent-date" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:326 +msgid "DateHeader" +msgstr "DateHeader" + +#: ../Doc/library/email.headerregistry.rst:0 +msgid "orig-date" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:0 +msgid "sender" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:328 +msgid "UniqueSingleAddressHeader" +msgstr "UniqueSingleAddressHeader" + +#: ../Doc/library/email.headerregistry.rst:0 +msgid "resent-sender" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:329 +msgid "SingleAddressHeader" +msgstr "SingleAddressHeader" + +#: ../Doc/library/email.headerregistry.rst:0 +msgid "to" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:330 +#: ../Doc/library/email.headerregistry.rst:332 +#: ../Doc/library/email.headerregistry.rst:334 +#: ../Doc/library/email.headerregistry.rst:336 +msgid "UniqueAddressHeader" +msgstr "UniqueAddressHeader" + +#: ../Doc/library/email.headerregistry.rst:0 +msgid "resent-to" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:331 +#: ../Doc/library/email.headerregistry.rst:333 +#: ../Doc/library/email.headerregistry.rst:335 +msgid "AddressHeader" +msgstr "AddressHeader" + +#: ../Doc/library/email.headerregistry.rst:0 +msgid "cc" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:0 +msgid "resent-cc" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:0 +msgid "from" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:0 +msgid "resent-from" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:0 +msgid "reply-to" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:338 +msgid "``HeaderRegistry`` has the following methods:" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:343 +msgid "" +"*name* is the name of the header to be mapped. It will be converted to " +"lower case in the registry. *cls* is the specialized class to be used, " +"along with *base_class*, to create the class used to instantiate headers " +"that match *name*." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:351 +msgid "Construct and return a class to handle creating a *name* header." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:356 +msgid "" +"Retrieves the specialized header associated with *name* from the registry " +"(using *default_class* if *name* does not appear in the registry) and " +"composes it with *base_class* to produce a class, calls the constructed " +"class's constructor, passing it the same argument list, and finally returns " +"the class instance created thereby." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:363 +msgid "" +"The following classes are the classes used to represent data parsed from " +"structured headers and can, in general, be used by an application program to " +"construct structured values to assign to specific headers." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:370 +msgid "" +"The class used to represent an email address. The general form of an " +"address is::" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:375 +msgid "or::" +msgstr "ou ::" + +#: ../Doc/library/email.headerregistry.rst:379 +msgid "" +"where each part must conform to specific syntax rules spelled out in :rfc:" +"`5322`." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:382 +msgid "" +"As a convenience *addr_spec* can be specified instead of *username* and " +"*domain*, in which case *username* and *domain* will be parsed from the " +"*addr_spec*. An *addr_spec* must be a properly RFC quoted string; if it is " +"not ``Address`` will raise an error. Unicode characters are allowed and " +"will be property encoded when serialized. However, per the RFCs, unicode is " +"*not* allowed in the username portion of the address." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:391 +msgid "" +"The display name portion of the address, if any, with all quoting removed. " +"If the address does not have a display name, this attribute will be an empty " +"string." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:397 +msgid "The ``username`` portion of the address, with all quoting removed." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:401 +msgid "The ``domain`` portion of the address." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:405 +msgid "" +"The ``username@domain`` portion of the address, correctly quoted for use as " +"a bare address (the second form shown above). This attribute is not mutable." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:411 +msgid "" +"The ``str`` value of the object is the address quoted according to :rfc:" +"`5322` rules, but with no Content Transfer Encoding of any non-ASCII " +"characters." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:415 +msgid "" +"To support SMTP (:rfc:`5321`), ``Address`` handles one special case: if " +"``username`` and ``domain`` are both the empty string (or ``None``), then " +"the string value of the ``Address`` is ``<>``." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:422 +msgid "" +"The class used to represent an address group. The general form of an " +"address group is::" +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:427 +msgid "" +"As a convenience for processing lists of addresses that consist of a mixture " +"of groups and single addresses, a ``Group`` may also be used to represent " +"single addresses that are not part of a group by setting *display_name* to " +"``None`` and providing a list of the single address as *addresses*." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:434 +msgid "" +"The ``display_name`` of the group. If it is ``None`` and there is exactly " +"one ``Address`` in ``addresses``, then the ``Group`` represents a single " +"address that is not in a group." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:440 +msgid "" +"A possibly empty tuple of :class:`.Address` objects representing the " +"addresses in the group." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:445 +msgid "" +"The ``str`` value of a ``Group`` is formatted according to :rfc:`5322`, but " +"with no Content Transfer Encoding of any non-ASCII characters. If " +"``display_name`` is none and there is a single ``Address`` in the " +"``addresses`` list, the ``str`` value will be the same as the ``str`` of " +"that single ``Address``." +msgstr "" + +#: ../Doc/library/email.headerregistry.rst:453 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/email.headerregistry.rst:454 +msgid "" +"Originally added in 3.3 as a :term:`provisional module `" +msgstr "" diff --git a/library/email.iterators.po b/library/email.iterators.po new file mode 100644 index 000000000..2eb4578f9 --- /dev/null +++ b/library/email.iterators.po @@ -0,0 +1,117 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-08 09:58+0100\n" +"PO-Revision-Date: 2019-06-20 19:13+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.5\n" + +#: ../Doc/library/email.iterators.rst:2 +msgid ":mod:`email.iterators`: Iterators" +msgstr ":mod:`email.iterators`: Itérateurs" + +#: ../Doc/library/email.iterators.rst:7 +msgid "**Source code:** :source:`Lib/email/iterators.py`" +msgstr "**Code source :** :source:`Lib/email/iterators.py`" + +#: ../Doc/library/email.iterators.rst:11 +msgid "" +"Iterating over a message object tree is fairly easy with the :meth:`Message." +"walk ` method. The :mod:`email.iterators` " +"module provides some useful higher level iterations over message object " +"trees." +msgstr "" +"Itérer sur l'arborescence d'un objet message est plutôt simple avec la " +"méthode :meth:`Message.walk `. Le module :mod:" +"`email.iterators` fournit des fonctionnalités d'itérations de plus haut " +"niveau sur les arbres d'objets messages." + +#: ../Doc/library/email.iterators.rst:19 +msgid "" +"This iterates over all the payloads in all the subparts of *msg*, returning " +"the string payloads line-by-line. It skips over all the subpart headers, " +"and it skips over any subpart with a payload that isn't a Python string. " +"This is somewhat equivalent to reading the flat text representation of the " +"message from a file using :meth:`~io.TextIOBase.readline`, skipping over all " +"the intervening headers." +msgstr "" +"Cette fonction permet d'itérer sur tous les contenus de tous les éléments de " +"*msg*, en retournant les contenus sous forme de chaînes de caractères ligne " +"par ligne. Il saute les entêtes des sous éléments, et tous les sous éléments " +"dont le contenu n'est pas une chaîne de caractères Python. C'est en quelque " +"sorte équivalent à une lecture plate d'une représentation textuelle du " +"message à partir d'un fichier en utilisant :meth:`~io.TextIOBase.readline`, " +"et en sautant toutes les entêtes intermédiaires." + +#: ../Doc/library/email.iterators.rst:26 +msgid "" +"Optional *decode* is passed through to :meth:`Message.get_payload `." +msgstr "" +"Le paramètre optionnel *decode* est transmis à la méthode :meth:`Message." +"get_payload `." + +#: ../Doc/library/email.iterators.rst:32 +msgid "" +"This iterates over all the subparts of *msg*, returning only those subparts " +"that match the MIME type specified by *maintype* and *subtype*." +msgstr "" +"Cette fonction permet d'itérer sur tous les sous éléments de *msg*, en " +"retournant seulement les sous éléments qui correspondent au type MIME " +"spécifié par *maintype* et *subtype*." + +#: ../Doc/library/email.iterators.rst:35 +msgid "" +"Note that *subtype* is optional; if omitted, then subpart MIME type matching " +"is done only with the main type. *maintype* is optional too; it defaults " +"to :mimetype:`text`." +msgstr "" +"Notez que le paramètre *subtype* est optionnel ; s'il n'est pas présent, " +"alors le type MIME du sous élément est seulement composé du type principal. " +"*maintype* est également optionnel ; sa valeur par défaut est :mimetype:" +"`text`." + +#: ../Doc/library/email.iterators.rst:39 +msgid "" +"Thus, by default :func:`typed_subpart_iterator` returns each subpart that " +"has a MIME type of :mimetype:`text/\\*`." +msgstr "" +"En conséquence, par défaut, :func:`typed_subpart_iterator` retourne chaque " +"sous élément qui a un type MIME de type :mimetype:`text/\\*`." + +#: ../Doc/library/email.iterators.rst:43 +msgid "" +"The following function has been added as a useful debugging tool. It should " +"*not* be considered part of the supported public interface for the package." +msgstr "" +"La fonction suivante a été ajouté en tant qu'un outil de débogage. Elle *ne " +"devrait pas* être considérée comme une interface publique supportée pour ce " +"paquet." + +#: ../Doc/library/email.iterators.rst:48 +msgid "" +"Prints an indented representation of the content types of the message object " +"structure. For example:" +msgstr "" +"Affiche une représentation indentée des types de contenu de la structure de " +"l'objet message. Par exemple :" + +#: ../Doc/library/email.iterators.rst:81 +msgid "" +"Optional *fp* is a file-like object to print the output to. It must be " +"suitable for Python's :func:`print` function. *level* is used internally. " +"*include_default*, if true, prints the default type as well." +msgstr "" +"Le paramètre optionnel *fp* est un objet fichier-compatible dans lequel on " +"peut écrire le flux de sortie. Il doit être approprié pour la fonction de " +"Python :func:`print`. *level* est utilisé en interne. *include_default*, si " +"vrai, affiche aussi le type par défaut." diff --git a/library/email.message.po b/library/email.message.po new file mode 100644 index 000000000..9947bcaca --- /dev/null +++ b/library/email.message.po @@ -0,0 +1,816 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/email.message.rst:2 +msgid ":mod:`email.message`: Representing an email message" +msgstr "" + +#: ../Doc/library/email.message.rst:10 +msgid "**Source code:** :source:`Lib/email/message.py`" +msgstr "" + +#: ../Doc/library/email.message.rst:14 +msgid "[1]_" +msgstr "" + +#: ../Doc/library/email.message.rst:16 +msgid "" +"The central class in the :mod:`email` package is the :class:`EmailMessage` " +"class, imported from the :mod:`email.message` module. It is the base class " +"for the :mod:`email` object model. :class:`EmailMessage` provides the core " +"functionality for setting and querying header fields, for accessing message " +"bodies, and for creating or modifying structured messages." +msgstr "" + +#: ../Doc/library/email.message.rst:22 +msgid "" +"An email message consists of *headers* and a *payload* (which is also " +"referred to as the *content*). Headers are :rfc:`5322` or :rfc:`6532` style " +"field names and values, where the field name and value are separated by a " +"colon. The colon is not part of either the field name or the field value. " +"The payload may be a simple text message, or a binary object, or a " +"structured sequence of sub-messages each with their own set of headers and " +"their own payload. The latter type of payload is indicated by the message " +"having a MIME type such as :mimetype:`multipart/\\*` or :mimetype:`message/" +"rfc822`." +msgstr "" + +#: ../Doc/library/email.message.rst:31 +msgid "" +"The conceptual model provided by an :class:`EmailMessage` object is that of " +"an ordered dictionary of headers coupled with a *payload* that represents " +"the :rfc:`5322` body of the message, which might be a list of sub-" +"``EmailMessage`` objects. In addition to the normal dictionary methods for " +"accessing the header names and values, there are methods for accessing " +"specialized information from the headers (for example the MIME content " +"type), for operating on the payload, for generating a serialized version of " +"the message, and for recursively walking over the object tree." +msgstr "" + +#: ../Doc/library/email.message.rst:40 +msgid "" +"The :class:`EmailMessage` dictionary-like interface is indexed by the header " +"names, which must be ASCII values. The values of the dictionary are strings " +"with some extra methods. Headers are stored and returned in case-preserving " +"form, but field names are matched case-insensitively. Unlike a real dict, " +"there is an ordering to the keys, and there can be duplicate keys. " +"Additional methods are provided for working with headers that have duplicate " +"keys." +msgstr "" + +#: ../Doc/library/email.message.rst:47 +msgid "" +"The *payload* is either a string or bytes object, in the case of simple " +"message objects, or a list of :class:`EmailMessage` objects, for MIME " +"container documents such as :mimetype:`multipart/\\*` and :mimetype:`message/" +"rfc822` message objects." +msgstr "" + +#: ../Doc/library/email.message.rst:55 +msgid "" +"If *policy* is specified use the rules it specifies to update and serialize " +"the representation of the message. If *policy* is not set, use the :class:" +"`~email.policy.default` policy, which follows the rules of the email RFCs " +"except for line endings (instead of the RFC mandated ``\\r\\n``, it uses the " +"Python standard ``\\n`` line endings). For more information see the :mod:" +"`~email.policy` documentation." +msgstr "" + +#: ../Doc/library/email.message.rst:64 +msgid "" +"Return the entire message flattened as a string. When optional *unixfrom* " +"is true, the envelope header is included in the returned string. *unixfrom* " +"defaults to ``False``. For backward compatibility with the base :class:" +"`~email.message.Message` class *maxheaderlen* is accepted, but defaults to " +"``None``, which means that by default the line length is controlled by the :" +"attr:`~email.policy.EmailPolicy.max_line_length` of the policy. The " +"*policy* argument may be used to override the default policy obtained from " +"the message instance. This can be used to control some of the formatting " +"produced by the method, since the specified *policy* will be passed to the :" +"class:`~email.generator.Generator`." +msgstr "" + +#: ../Doc/library/email.message.rst:76 ../Doc/library/email.message.rst:114 +msgid "" +"Flattening the message may trigger changes to the :class:`EmailMessage` if " +"defaults need to be filled in to complete the transformation to a string " +"(for example, MIME boundaries may be generated or modified)." +msgstr "" + +#: ../Doc/library/email.message.rst:80 +msgid "" +"Note that this method is provided as a convenience and may not be the most " +"useful way to serialize messages in your application, especially if you are " +"dealing with multiple messages. See :class:`email.generator.Generator` for " +"a more flexible API for serializing messages. Note also that this method is " +"restricted to producing messages serialized as \"7 bit clean\" when :attr:" +"`~email.policy.EmailPolicy.utf8` is ``False``, which is the default." +msgstr "" + +#: ../Doc/library/email.message.rst:88 +msgid "" +"the default behavior when *maxheaderlen* is not specified was changed from " +"defaulting to 0 to defaulting to the value of *max_line_length* from the " +"policy." +msgstr "" + +#: ../Doc/library/email.message.rst:95 +msgid "" +"Equivalent to ``as_string(policy=self.policy.clone(utf8=True))``. Allows " +"``str(msg)`` to produce a string containing the serialized message in a " +"readable format." +msgstr "" + +#: ../Doc/library/email.message.rst:99 +msgid "" +"the method was changed to use ``utf8=True``, thus producing an :rfc:`6531`-" +"like message representation, instead of being a direct alias for :meth:" +"`as_string`." +msgstr "" + +#: ../Doc/library/email.message.rst:106 +msgid "" +"Return the entire message flattened as a bytes object. When optional " +"*unixfrom* is true, the envelope header is included in the returned string. " +"*unixfrom* defaults to ``False``. The *policy* argument may be used to " +"override the default policy obtained from the message instance. This can be " +"used to control some of the formatting produced by the method, since the " +"specified *policy* will be passed to the :class:`~email.generator." +"BytesGenerator`." +msgstr "" + +#: ../Doc/library/email.message.rst:118 +msgid "" +"Note that this method is provided as a convenience and may not be the most " +"useful way to serialize messages in your application, especially if you are " +"dealing with multiple messages. See :class:`email.generator.BytesGenerator` " +"for a more flexible API for serializing messages." +msgstr "" + +#: ../Doc/library/email.message.rst:127 +msgid "" +"Equivalent to :meth:`.as_bytes()`. Allows ``bytes(msg)`` to produce a bytes " +"object containing the serialized message." +msgstr "" + +#: ../Doc/library/email.message.rst:133 +msgid "" +"Return ``True`` if the message's payload is a list of sub-\\ :class:" +"`EmailMessage` objects, otherwise return ``False``. When :meth:" +"`is_multipart` returns ``False``, the payload should be a string object " +"(which might be a CTE encoded binary payload). Note that :meth:" +"`is_multipart` returning ``True`` does not necessarily mean that \"msg." +"get_content_maintype() == 'multipart'\" will return the ``True``. For " +"example, ``is_multipart`` will return ``True`` when the :class:" +"`EmailMessage` is of type ``message/rfc822``." +msgstr "" + +#: ../Doc/library/email.message.rst:145 +msgid "" +"Set the message's envelope header to *unixfrom*, which should be a string. " +"(See :class:`~mailbox.mboxMessage` for a brief description of this header.)" +msgstr "" + +#: ../Doc/library/email.message.rst:152 +msgid "" +"Return the message's envelope header. Defaults to ``None`` if the envelope " +"header was never set." +msgstr "" + +#: ../Doc/library/email.message.rst:156 +msgid "" +"The following methods implement the mapping-like interface for accessing the " +"message's headers. Note that there are some semantic differences between " +"these methods and a normal mapping (i.e. dictionary) interface. For " +"example, in a dictionary there are no duplicate keys, but here there may be " +"duplicate message headers. Also, in dictionaries there is no guaranteed " +"order to the keys returned by :meth:`keys`, but in an :class:`EmailMessage` " +"object, headers are always returned in the order they appeared in the " +"original message, or in which they were added to the message later. Any " +"header deleted and then re-added is always appended to the end of the header " +"list." +msgstr "" + +#: ../Doc/library/email.message.rst:167 +msgid "" +"These semantic differences are intentional and are biased toward convenience " +"in the most common use cases." +msgstr "" + +#: ../Doc/library/email.message.rst:170 +msgid "" +"Note that in all cases, any envelope header present in the message is not " +"included in the mapping interface." +msgstr "" + +#: ../Doc/library/email.message.rst:176 +msgid "Return the total number of headers, including duplicates." +msgstr "" + +#: ../Doc/library/email.message.rst:181 +msgid "" +"Return true if the message object has a field named *name*. Matching is done " +"without regard to case and *name* does not include the trailing colon. Used " +"for the ``in`` operator. For example::" +msgstr "" + +#: ../Doc/library/email.message.rst:191 +msgid "" +"Return the value of the named header field. *name* does not include the " +"colon field separator. If the header is missing, ``None`` is returned; a :" +"exc:`KeyError` is never raised." +msgstr "" + +#: ../Doc/library/email.message.rst:195 +msgid "" +"Note that if the named field appears more than once in the message's " +"headers, exactly which of those field values will be returned is undefined. " +"Use the :meth:`get_all` method to get the values of all the extant headers " +"named *name*." +msgstr "" + +#: ../Doc/library/email.message.rst:200 +msgid "" +"Using the standard (non-``compat32``) policies, the returned value is an " +"instance of a subclass of :class:`email.headerregistry.BaseHeader`." +msgstr "" + +#: ../Doc/library/email.message.rst:206 +msgid "" +"Add a header to the message with field name *name* and value *val*. The " +"field is appended to the end of the message's existing headers." +msgstr "" + +#: ../Doc/library/email.message.rst:209 +msgid "" +"Note that this does *not* overwrite or delete any existing header with the " +"same name. If you want to ensure that the new header is the only one " +"present in the message with field name *name*, delete the field first, e.g.::" +msgstr "" + +#: ../Doc/library/email.message.rst:216 +msgid "" +"If the :mod:`policy` defines certain headers to be unique (as the standard " +"policies do), this method may raise a :exc:`ValueError` when an attempt is " +"made to assign a value to such a header when one already exists. This " +"behavior is intentional for consistency's sake, but do not depend on it as " +"we may choose to make such assignments do an automatic deletion of the " +"existing header in the future." +msgstr "" + +#: ../Doc/library/email.message.rst:226 +msgid "" +"Delete all occurrences of the field with name *name* from the message's " +"headers. No exception is raised if the named field isn't present in the " +"headers." +msgstr "" + +#: ../Doc/library/email.message.rst:233 +msgid "Return a list of all the message's header field names." +msgstr "" + +#: ../Doc/library/email.message.rst:238 +msgid "Return a list of all the message's field values." +msgstr "" + +#: ../Doc/library/email.message.rst:243 +msgid "" +"Return a list of 2-tuples containing all the message's field headers and " +"values." +msgstr "" + +#: ../Doc/library/email.message.rst:249 +msgid "" +"Return the value of the named header field. This is identical to :meth:" +"`__getitem__` except that optional *failobj* is returned if the named header " +"is missing (*failobj* defaults to ``None``)." +msgstr "" + +#: ../Doc/library/email.message.rst:254 +msgid "Here are some additional useful header related methods:" +msgstr "" + +#: ../Doc/library/email.message.rst:259 +msgid "" +"Return a list of all the values for the field named *name*. If there are no " +"such named headers in the message, *failobj* is returned (defaults to " +"``None``)." +msgstr "" + +#: ../Doc/library/email.message.rst:266 +msgid "" +"Extended header setting. This method is similar to :meth:`__setitem__` " +"except that additional header parameters can be provided as keyword " +"arguments. *_name* is the header field to add and *_value* is the *primary* " +"value for the header." +msgstr "" + +#: ../Doc/library/email.message.rst:271 +msgid "" +"For each item in the keyword argument dictionary *_params*, the key is taken " +"as the parameter name, with underscores converted to dashes (since dashes " +"are illegal in Python identifiers). Normally, the parameter will be added " +"as ``key=\"value\"`` unless the value is ``None``, in which case only the " +"key will be added." +msgstr "" + +#: ../Doc/library/email.message.rst:277 +msgid "" +"If the value contains non-ASCII characters, the charset and language may be " +"explicitly controlled by specifying the value as a three tuple in the format " +"``(CHARSET, LANGUAGE, VALUE)``, where ``CHARSET`` is a string naming the " +"charset to be used to encode the value, ``LANGUAGE`` can usually be set to " +"``None`` or the empty string (see :rfc:`2231` for other possibilities), and " +"``VALUE`` is the string value containing non-ASCII code points. If a three " +"tuple is not passed and the value contains non-ASCII characters, it is " +"automatically encoded in :rfc:`2231` format using a ``CHARSET`` of ``utf-8`` " +"and a ``LANGUAGE`` of ``None``." +msgstr "" + +#: ../Doc/library/email.message.rst:287 +msgid "Here is an example::" +msgstr "Voici un exemple ::" + +#: ../Doc/library/email.message.rst:291 +msgid "This will add a header that looks like ::" +msgstr "" + +#: ../Doc/library/email.message.rst:295 +msgid "An example of the extended interface with non-ASCII characters::" +msgstr "" + +#: ../Doc/library/email.message.rst:303 +msgid "" +"Replace a header. Replace the first header found in the message that " +"matches *_name*, retaining header order and field name case of the original " +"header. If no matching header is found, raise a :exc:`KeyError`." +msgstr "" + +#: ../Doc/library/email.message.rst:311 +msgid "" +"Return the message's content type, coerced to lower case of the form :" +"mimetype:`maintype/subtype`. If there is no :mailheader:`Content-Type` " +"header in the message return the value returned by :meth:" +"`get_default_type`. If the :mailheader:`Content-Type` header is invalid, " +"return ``text/plain``." +msgstr "" + +#: ../Doc/library/email.message.rst:317 +msgid "" +"(According to :rfc:`2045`, messages always have a default type, :meth:" +"`get_content_type` will always return a value. :rfc:`2045` defines a " +"message's default type to be :mimetype:`text/plain` unless it appears inside " +"a :mimetype:`multipart/digest` container, in which case it would be :" +"mimetype:`message/rfc822`. If the :mailheader:`Content-Type` header has an " +"invalid type specification, :rfc:`2045` mandates that the default type be :" +"mimetype:`text/plain`.)" +msgstr "" + +#: ../Doc/library/email.message.rst:328 +msgid "" +"Return the message's main content type. This is the :mimetype:`maintype` " +"part of the string returned by :meth:`get_content_type`." +msgstr "" + +#: ../Doc/library/email.message.rst:334 +msgid "" +"Return the message's sub-content type. This is the :mimetype:`subtype` part " +"of the string returned by :meth:`get_content_type`." +msgstr "" + +#: ../Doc/library/email.message.rst:340 +msgid "" +"Return the default content type. Most messages have a default content type " +"of :mimetype:`text/plain`, except for messages that are subparts of :" +"mimetype:`multipart/digest` containers. Such subparts have a default " +"content type of :mimetype:`message/rfc822`." +msgstr "" + +#: ../Doc/library/email.message.rst:348 +msgid "" +"Set the default content type. *ctype* should either be :mimetype:`text/" +"plain` or :mimetype:`message/rfc822`, although this is not enforced. The " +"default content type is not stored in the :mailheader:`Content-Type` header, " +"so it only affects the return value of the ``get_content_type`` methods when " +"no :mailheader:`Content-Type` header is present in the message." +msgstr "" + +#: ../Doc/library/email.message.rst:359 +msgid "" +"Set a parameter in the :mailheader:`Content-Type` header. If the parameter " +"already exists in the header, replace its value with *value*. When *header* " +"is ``Content-Type`` (the default) and the header does not yet exist in the " +"message, add it, set its value to :mimetype:`text/plain`, and append the new " +"parameter value. Optional *header* specifies an alternative header to :" +"mailheader:`Content-Type`." +msgstr "" + +#: ../Doc/library/email.message.rst:366 +msgid "" +"If the value contains non-ASCII characters, the charset and language may be " +"explicitly specified using the optional *charset* and *language* " +"parameters. Optional *language* specifies the :rfc:`2231` language, " +"defaulting to the empty string. Both *charset* and *language* should be " +"strings. The default is to use the ``utf8`` *charset* and ``None`` for the " +"*language*." +msgstr "" + +#: ../Doc/library/email.message.rst:373 +msgid "" +"If *replace* is ``False`` (the default) the header is moved to the end of " +"the list of headers. If *replace* is ``True``, the header will be updated " +"in place." +msgstr "" + +#: ../Doc/library/email.message.rst:377 ../Doc/library/email.message.rst:394 +msgid "" +"Use of the *requote* parameter with :class:`EmailMessage` objects is " +"deprecated." +msgstr "" + +#: ../Doc/library/email.message.rst:380 +msgid "" +"Note that existing parameter values of headers may be accessed through the :" +"attr:`~email.headerregistry.BaseHeader.params` attribute of the header value " +"(for example, ``msg['Content-Type'].params['charset']``)." +msgstr "" + +#: ../Doc/library/email.message.rst:384 +msgid "``replace`` keyword was added." +msgstr "" + +#: ../Doc/library/email.message.rst:389 +msgid "" +"Remove the given parameter completely from the :mailheader:`Content-Type` " +"header. The header will be re-written in place without the parameter or its " +"value. Optional *header* specifies an alternative to :mailheader:`Content-" +"Type`." +msgstr "" + +#: ../Doc/library/email.message.rst:400 +msgid "" +"Return the value of the ``filename`` parameter of the :mailheader:`Content-" +"Disposition` header of the message. If the header does not have a " +"``filename`` parameter, this method falls back to looking for the ``name`` " +"parameter on the :mailheader:`Content-Type` header. If neither is found, or " +"the header is missing, then *failobj* is returned. The returned string will " +"always be unquoted as per :func:`email.utils.unquote`." +msgstr "" + +#: ../Doc/library/email.message.rst:411 +msgid "" +"Return the value of the ``boundary`` parameter of the :mailheader:`Content-" +"Type` header of the message, or *failobj* if either the header is missing, " +"or has no ``boundary`` parameter. The returned string will always be " +"unquoted as per :func:`email.utils.unquote`." +msgstr "" + +#: ../Doc/library/email.message.rst:419 +msgid "" +"Set the ``boundary`` parameter of the :mailheader:`Content-Type` header to " +"*boundary*. :meth:`set_boundary` will always quote *boundary* if " +"necessary. A :exc:`~email.errors.HeaderParseError` is raised if the message " +"object has no :mailheader:`Content-Type` header." +msgstr "" + +#: ../Doc/library/email.message.rst:424 +msgid "" +"Note that using this method is subtly different from deleting the old :" +"mailheader:`Content-Type` header and adding a new one with the new boundary " +"via :meth:`add_header`, because :meth:`set_boundary` preserves the order of " +"the :mailheader:`Content-Type` header in the list of headers." +msgstr "" + +#: ../Doc/library/email.message.rst:433 +msgid "" +"Return the ``charset`` parameter of the :mailheader:`Content-Type` header, " +"coerced to lower case. If there is no :mailheader:`Content-Type` header, or " +"if that header has no ``charset`` parameter, *failobj* is returned." +msgstr "" + +#: ../Doc/library/email.message.rst:440 +msgid "" +"Return a list containing the character set names in the message. If the " +"message is a :mimetype:`multipart`, then the list will contain one element " +"for each subpart in the payload, otherwise, it will be a list of length 1." +msgstr "" + +#: ../Doc/library/email.message.rst:444 +msgid "" +"Each item in the list will be a string which is the value of the ``charset`` " +"parameter in the :mailheader:`Content-Type` header for the represented " +"subpart. If the subpart has no :mailheader:`Content-Type` header, no " +"``charset`` parameter, or is not of the :mimetype:`text` main MIME type, " +"then that item in the returned list will be *failobj*." +msgstr "" + +#: ../Doc/library/email.message.rst:453 +msgid "" +"Return ``True`` if there is a :mailheader:`Content-Disposition` header and " +"its (case insensitive) value is ``attachment``, ``False`` otherwise." +msgstr "" + +#: ../Doc/library/email.message.rst:456 +msgid "" +"is_attachment is now a method instead of a property, for consistency with :" +"meth:`~email.message.Message.is_multipart`." +msgstr "" + +#: ../Doc/library/email.message.rst:463 +msgid "" +"Return the lowercased value (without parameters) of the message's :" +"mailheader:`Content-Disposition` header if it has one, or ``None``. The " +"possible values for this method are *inline*, *attachment* or ``None`` if " +"the message follows :rfc:`2183`." +msgstr "" + +#: ../Doc/library/email.message.rst:471 +msgid "" +"The following methods relate to interrogating and manipulating the content " +"(payload) of the message." +msgstr "" + +#: ../Doc/library/email.message.rst:477 +msgid "" +"The :meth:`walk` method is an all-purpose generator which can be used to " +"iterate over all the parts and subparts of a message object tree, in depth-" +"first traversal order. You will typically use :meth:`walk` as the iterator " +"in a ``for`` loop; each iteration returns the next subpart." +msgstr "" + +#: ../Doc/library/email.message.rst:482 +msgid "" +"Here's an example that prints the MIME type of every part of a multipart " +"message structure:" +msgstr "" + +#: ../Doc/library/email.message.rst:504 +msgid "" +"``walk`` iterates over the subparts of any part where :meth:`is_multipart` " +"returns ``True``, even though ``msg.get_content_maintype() == 'multipart'`` " +"may return ``False``. We can see this in our example by making use of the " +"``_structure`` debug helper function:" +msgstr "" + +#: ../Doc/library/email.message.rst:531 +msgid "" +"Here the ``message`` parts are not ``multiparts``, but they do contain " +"subparts. ``is_multipart()`` returns ``True`` and ``walk`` descends into the " +"subparts." +msgstr "" + +#: ../Doc/library/email.message.rst:538 +msgid "" +"Return the MIME part that is the best candidate to be the \"body\" of the " +"message." +msgstr "" + +#: ../Doc/library/email.message.rst:541 +msgid "" +"*preferencelist* must be a sequence of strings from the set ``related``, " +"``html``, and ``plain``, and indicates the order of preference for the " +"content type of the part returned." +msgstr "" + +#: ../Doc/library/email.message.rst:545 +msgid "" +"Start looking for candidate matches with the object on which the " +"``get_body`` method is called." +msgstr "" + +#: ../Doc/library/email.message.rst:548 +msgid "" +"If ``related`` is not included in *preferencelist*, consider the root part " +"(or subpart of the root part) of any related encountered as a candidate if " +"the (sub-)part matches a preference." +msgstr "" + +#: ../Doc/library/email.message.rst:552 +msgid "" +"When encountering a ``multipart/related``, check the ``start`` parameter and " +"if a part with a matching :mailheader:`Content-ID` is found, consider only " +"it when looking for candidate matches. Otherwise consider only the first " +"(default root) part of the ``multipart/related``." +msgstr "" + +#: ../Doc/library/email.message.rst:557 +msgid "" +"If a part has a :mailheader:`Content-Disposition` header, only consider the " +"part a candidate match if the value of the header is ``inline``." +msgstr "" + +#: ../Doc/library/email.message.rst:560 +msgid "" +"If none of the candidates matches any of the preferences in " +"*preferencelist*, return ``None``." +msgstr "" + +#: ../Doc/library/email.message.rst:563 +msgid "" +"Notes: (1) For most applications the only *preferencelist* combinations that " +"really make sense are ``('plain',)``, ``('html', 'plain')``, and the default " +"``('related', 'html', 'plain')``. (2) Because matching starts with the " +"object on which ``get_body`` is called, calling ``get_body`` on a " +"``multipart/related`` will return the object itself unless *preferencelist* " +"has a non-default value. (3) Messages (or message parts) that do not specify " +"a :mailheader:`Content-Type` or whose :mailheader:`Content-Type` header is " +"invalid will be treated as if they are of type ``text/plain``, which may " +"occasionally cause ``get_body`` to return unexpected results." +msgstr "" + +#: ../Doc/library/email.message.rst:577 +msgid "" +"Return an iterator over all of the immediate sub-parts of the message that " +"are not candidate \"body\" parts. That is, skip the first occurrence of " +"each of ``text/plain``, ``text/html``, ``multipart/related``, or ``multipart/" +"alternative`` (unless they are explicitly marked as attachments via :" +"mailheader:`Content-Disposition: attachment`), and return all remaining " +"parts. When applied directly to a ``multipart/related``, return an iterator " +"over the all the related parts except the root part (ie: the part pointed to " +"by the ``start`` parameter, or the first part if there is no ``start`` " +"parameter or the ``start`` parameter doesn't match the :mailheader:`Content-" +"ID` of any of the parts). When applied directly to a ``multipart/" +"alternative`` or a non-``multipart``, return an empty iterator." +msgstr "" + +#: ../Doc/library/email.message.rst:593 +msgid "" +"Return an iterator over all of the immediate sub-parts of the message, which " +"will be empty for a non-``multipart``. (See also :meth:`~email.message." +"EmailMessage.walk`.)" +msgstr "" + +#: ../Doc/library/email.message.rst:600 +msgid "" +"Call the :meth:`~email.contentmanager.ContentManager.get_content` method of " +"the *content_manager*, passing self as the message object, and passing along " +"any other arguments or keywords as additional arguments. If " +"*content_manager* is not specified, use the ``content_manager`` specified by " +"the current :mod:`~email.policy`." +msgstr "" + +#: ../Doc/library/email.message.rst:609 +msgid "" +"Call the :meth:`~email.contentmanager.ContentManager.set_content` method of " +"the *content_manager*, passing self as the message object, and passing along " +"any other arguments or keywords as additional arguments. If " +"*content_manager* is not specified, use the ``content_manager`` specified by " +"the current :mod:`~email.policy`." +msgstr "" + +#: ../Doc/library/email.message.rst:618 +msgid "" +"Convert a non-``multipart`` message into a ``multipart/related`` message, " +"moving any existing :mailheader:`Content-` headers and payload into a (new) " +"first part of the ``multipart``. If *boundary* is specified, use it as the " +"boundary string in the multipart, otherwise leave the boundary to be " +"automatically created when it is needed (for example, when the message is " +"serialized)." +msgstr "" + +#: ../Doc/library/email.message.rst:628 +msgid "" +"Convert a non-``multipart`` or a ``multipart/related`` into a ``multipart/" +"alternative``, moving any existing :mailheader:`Content-` headers and " +"payload into a (new) first part of the ``multipart``. If *boundary* is " +"specified, use it as the boundary string in the multipart, otherwise leave " +"the boundary to be automatically created when it is needed (for example, " +"when the message is serialized)." +msgstr "" + +#: ../Doc/library/email.message.rst:638 +msgid "" +"Convert a non-``multipart``, a ``multipart/related``, or a ``multipart-" +"alternative`` into a ``multipart/mixed``, moving any existing :mailheader:" +"`Content-` headers and payload into a (new) first part of the " +"``multipart``. If *boundary* is specified, use it as the boundary string in " +"the multipart, otherwise leave the boundary to be automatically created when " +"it is needed (for example, when the message is serialized)." +msgstr "" + +#: ../Doc/library/email.message.rst:648 +msgid "" +"If the message is a ``multipart/related``, create a new message object, pass " +"all of the arguments to its :meth:`set_content` method, and :meth:`~email." +"message.Message.attach` it to the ``multipart``. If the message is a non-" +"``multipart``, call :meth:`make_related` and then proceed as above. If the " +"message is any other type of ``multipart``, raise a :exc:`TypeError`. If " +"*content_manager* is not specified, use the ``content_manager`` specified by " +"the current :mod:`~email.policy`. If the added part has no :mailheader:" +"`Content-Disposition` header, add one with the value ``inline``." +msgstr "" + +#: ../Doc/library/email.message.rst:661 +msgid "" +"If the message is a ``multipart/alternative``, create a new message object, " +"pass all of the arguments to its :meth:`set_content` method, and :meth:" +"`~email.message.Message.attach` it to the ``multipart``. If the message is " +"a non-``multipart`` or ``multipart/related``, call :meth:`make_alternative` " +"and then proceed as above. If the message is any other type of " +"``multipart``, raise a :exc:`TypeError`. If *content_manager* is not " +"specified, use the ``content_manager`` specified by the current :mod:`~email." +"policy`." +msgstr "" + +#: ../Doc/library/email.message.rst:673 +msgid "" +"If the message is a ``multipart/mixed``, create a new message object, pass " +"all of the arguments to its :meth:`set_content` method, and :meth:`~email." +"message.Message.attach` it to the ``multipart``. If the message is a non-" +"``multipart``, ``multipart/related``, or ``multipart/alternative``, call :" +"meth:`make_mixed` and then proceed as above. If *content_manager* is not " +"specified, use the ``content_manager`` specified by the current :mod:`~email." +"policy`. If the added part has no :mailheader:`Content-Disposition` header, " +"add one with the value ``attachment``. This method can be used both for " +"explicit attachments (:mailheader:`Content-Disposition: attachment`) and " +"``inline`` attachments (:mailheader:`Content-Disposition: inline`), by " +"passing appropriate options to the ``content_manager``." +msgstr "" + +#: ../Doc/library/email.message.rst:689 +msgid "Remove the payload and all of the headers." +msgstr "" + +#: ../Doc/library/email.message.rst:694 +msgid "" +"Remove the payload and all of the :exc:`Content-` headers, leaving all other " +"headers intact and in their original order." +msgstr "" + +#: ../Doc/library/email.message.rst:698 +msgid ":class:`EmailMessage` objects have the following instance attributes:" +msgstr "" + +#: ../Doc/library/email.message.rst:703 +msgid "" +"The format of a MIME document allows for some text between the blank line " +"following the headers, and the first multipart boundary string. Normally, " +"this text is never visible in a MIME-aware mail reader because it falls " +"outside the standard MIME armor. However, when viewing the raw text of the " +"message, or when viewing the message in a non-MIME aware reader, this text " +"can become visible." +msgstr "" + +#: ../Doc/library/email.message.rst:710 +msgid "" +"The *preamble* attribute contains this leading extra-armor text for MIME " +"documents. When the :class:`~email.parser.Parser` discovers some text after " +"the headers but before the first boundary string, it assigns this text to " +"the message's *preamble* attribute. When the :class:`~email.generator." +"Generator` is writing out the plain text representation of a MIME message, " +"and it finds the message has a *preamble* attribute, it will write this text " +"in the area between the headers and the first boundary. See :mod:`email." +"parser` and :mod:`email.generator` for details." +msgstr "" + +#: ../Doc/library/email.message.rst:720 +msgid "" +"Note that if the message object has no preamble, the *preamble* attribute " +"will be ``None``." +msgstr "" + +#: ../Doc/library/email.message.rst:726 +msgid "" +"The *epilogue* attribute acts the same way as the *preamble* attribute, " +"except that it contains text that appears between the last boundary and the " +"end of the message. As with the :attr:`~EmailMessage.preamble`, if there is " +"no epilog text this attribute will be ``None``." +msgstr "" + +#: ../Doc/library/email.message.rst:734 +msgid "" +"The *defects* attribute contains a list of all the problems found when " +"parsing this message. See :mod:`email.errors` for a detailed description of " +"the possible parsing defects." +msgstr "" + +#: ../Doc/library/email.message.rst:741 +msgid "" +"This class represents a subpart of a MIME message. It is identical to :" +"class:`EmailMessage`, except that no :mailheader:`MIME-Version` headers are " +"added when :meth:`~EmailMessage.set_content` is called, since sub-parts do " +"not need their own :mailheader:`MIME-Version` headers." +msgstr "" + +#: ../Doc/library/email.message.rst:748 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/email.message.rst:749 +msgid "" +"Originally added in 3.4 as a :term:`provisional module `. Docs for legacy message class moved to :ref:`compat32_message`." +msgstr "" diff --git a/library/email.mime.po b/library/email.mime.po new file mode 100644 index 000000000..c0dc9266c --- /dev/null +++ b/library/email.mime.po @@ -0,0 +1,298 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/email.mime.rst:2 +msgid ":mod:`email.mime`: Creating email and MIME objects from scratch" +msgstr "" + +#: ../Doc/library/email.mime.rst:7 +msgid "**Source code:** :source:`Lib/email/mime/`" +msgstr "" + +#: ../Doc/library/email.mime.rst:11 +msgid "" +"This module is part of the legacy (``Compat32``) email API. Its " +"functionality is partially replaced by the :mod:`~email.contentmanager` in " +"the new API, but in certain applications these classes may still be useful, " +"even in non-legacy code." +msgstr "" + +#: ../Doc/library/email.mime.rst:16 +msgid "" +"Ordinarily, you get a message object structure by passing a file or some " +"text to a parser, which parses the text and returns the root message " +"object. However you can also build a complete message structure from " +"scratch, or even individual :class:`~email.message.Message` objects by " +"hand. In fact, you can also take an existing structure and add new :class:" +"`~email.message.Message` objects, move them around, etc. This makes a very " +"convenient interface for slicing-and-dicing MIME messages." +msgstr "" + +#: ../Doc/library/email.mime.rst:24 +msgid "" +"You can create a new object structure by creating :class:`~email.message." +"Message` instances, adding attachments and all the appropriate headers " +"manually. For MIME messages though, the :mod:`email` package provides some " +"convenient subclasses to make things easier." +msgstr "" + +#: ../Doc/library/email.mime.rst:29 +msgid "Here are the classes:" +msgstr "" + +#: ../Doc/library/email.mime.rst:35 +msgid "Module: :mod:`email.mime.base`" +msgstr "Module : :mod:`email.mime.base`" + +#: ../Doc/library/email.mime.rst:37 +msgid "" +"This is the base class for all the MIME-specific subclasses of :class:" +"`~email.message.Message`. Ordinarily you won't create instances " +"specifically of :class:`MIMEBase`, although you could. :class:`MIMEBase` is " +"provided primarily as a convenient base class for more specific MIME-aware " +"subclasses." +msgstr "" + +#: ../Doc/library/email.mime.rst:43 +msgid "" +"*_maintype* is the :mailheader:`Content-Type` major type (e.g. :mimetype:" +"`text` or :mimetype:`image`), and *_subtype* is the :mailheader:`Content-" +"Type` minor type (e.g. :mimetype:`plain` or :mimetype:`gif`). *_params* is " +"a parameter key/value dictionary and is passed directly to :meth:`Message." +"add_header `." +msgstr "" + +#: ../Doc/library/email.mime.rst:49 +msgid "" +"If *policy* is specified, (defaults to the :class:`compat32 ` policy) it will be passed to :class:`~email.message.Message`." +msgstr "" + +#: ../Doc/library/email.mime.rst:53 +msgid "" +"The :class:`MIMEBase` class always adds a :mailheader:`Content-Type` header " +"(based on *_maintype*, *_subtype*, and *_params*), and a :mailheader:`MIME-" +"Version` header (always set to ``1.0``)." +msgstr "" + +#: ../Doc/library/email.mime.rst:57 ../Doc/library/email.mime.rst:104 +#: ../Doc/library/email.mime.rst:135 ../Doc/library/email.mime.rst:169 +#: ../Doc/library/email.mime.rst:204 ../Doc/library/email.mime.rst:224 +#: ../Doc/library/email.mime.rst:258 +msgid "Added *policy* keyword-only parameter." +msgstr "" + +#: ../Doc/library/email.mime.rst:65 +msgid "Module: :mod:`email.mime.nonmultipart`" +msgstr "Module : :mod:`email.mime.nonmultipart`" + +#: ../Doc/library/email.mime.rst:67 +msgid "" +"A subclass of :class:`~email.mime.base.MIMEBase`, this is an intermediate " +"base class for MIME messages that are not :mimetype:`multipart`. The " +"primary purpose of this class is to prevent the use of the :meth:`~email." +"message.Message.attach` method, which only makes sense for :mimetype:" +"`multipart` messages. If :meth:`~email.message.Message.attach` is called, " +"a :exc:`~email.errors.MultipartConversionError` exception is raised." +msgstr "" + +#: ../Doc/library/email.mime.rst:80 +msgid "Module: :mod:`email.mime.multipart`" +msgstr "Module : :mod:`email.mime.multipart`" + +#: ../Doc/library/email.mime.rst:82 +msgid "" +"A subclass of :class:`~email.mime.base.MIMEBase`, this is an intermediate " +"base class for MIME messages that are :mimetype:`multipart`. Optional " +"*_subtype* defaults to :mimetype:`mixed`, but can be used to specify the " +"subtype of the message. A :mailheader:`Content-Type` header of :mimetype:" +"`multipart/_subtype` will be added to the message object. A :mailheader:" +"`MIME-Version` header will also be added." +msgstr "" + +#: ../Doc/library/email.mime.rst:89 +msgid "" +"Optional *boundary* is the multipart boundary string. When ``None`` (the " +"default), the boundary is calculated when needed (for example, when the " +"message is serialized)." +msgstr "" + +#: ../Doc/library/email.mime.rst:93 +msgid "" +"*_subparts* is a sequence of initial subparts for the payload. It must be " +"possible to convert this sequence to a list. You can always attach new " +"subparts to the message by using the :meth:`Message.attach ` method." +msgstr "" + +#: ../Doc/library/email.mime.rst:98 ../Doc/library/email.mime.rst:131 +#: ../Doc/library/email.mime.rst:165 ../Doc/library/email.mime.rst:199 +#: ../Doc/library/email.mime.rst:222 ../Doc/library/email.mime.rst:253 +msgid "" +"Optional *policy* argument defaults to :class:`compat32 `." +msgstr "" + +#: ../Doc/library/email.mime.rst:100 +msgid "" +"Additional parameters for the :mailheader:`Content-Type` header are taken " +"from the keyword arguments, or passed into the *_params* argument, which is " +"a keyword dictionary." +msgstr "" + +#: ../Doc/library/email.mime.rst:113 +msgid "Module: :mod:`email.mime.application`" +msgstr "Module : :mod:`email.mime.application`" + +#: ../Doc/library/email.mime.rst:115 +msgid "" +"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, the :class:" +"`MIMEApplication` class is used to represent MIME message objects of major " +"type :mimetype:`application`. *_data* is a string containing the raw byte " +"data. Optional *_subtype* specifies the MIME subtype and defaults to :" +"mimetype:`octet-stream`." +msgstr "" + +#: ../Doc/library/email.mime.rst:121 +msgid "" +"Optional *_encoder* is a callable (i.e. function) which will perform the " +"actual encoding of the data for transport. This callable takes one " +"argument, which is the :class:`MIMEApplication` instance. It should use :" +"meth:`~email.message.Message.get_payload` and :meth:`~email.message.Message." +"set_payload` to change the payload to encoded form. It should also add any :" +"mailheader:`Content-Transfer-Encoding` or other headers to the message " +"object as necessary. The default encoding is base64. See the :mod:`email." +"encoders` module for a list of the built-in encoders." +msgstr "" + +#: ../Doc/library/email.mime.rst:133 ../Doc/library/email.mime.rst:167 +msgid "*_params* are passed straight through to the base class constructor." +msgstr "" + +#: ../Doc/library/email.mime.rst:144 +msgid "Module: :mod:`email.mime.audio`" +msgstr "Module : :mod:`email.mime.audio`" + +#: ../Doc/library/email.mime.rst:146 +msgid "" +"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, the :class:" +"`MIMEAudio` class is used to create MIME message objects of major type :" +"mimetype:`audio`. *_audiodata* is a string containing the raw audio data. " +"If this data can be decoded by the standard Python module :mod:`sndhdr`, " +"then the subtype will be automatically included in the :mailheader:`Content-" +"Type` header. Otherwise you can explicitly specify the audio subtype via the " +"*_subtype* argument. If the minor type could not be guessed and *_subtype* " +"was not given, then :exc:`TypeError` is raised." +msgstr "" + +#: ../Doc/library/email.mime.rst:155 +msgid "" +"Optional *_encoder* is a callable (i.e. function) which will perform the " +"actual encoding of the audio data for transport. This callable takes one " +"argument, which is the :class:`MIMEAudio` instance. It should use :meth:" +"`~email.message.Message.get_payload` and :meth:`~email.message.Message." +"set_payload` to change the payload to encoded form. It should also add any :" +"mailheader:`Content-Transfer-Encoding` or other headers to the message " +"object as necessary. The default encoding is base64. See the :mod:`email." +"encoders` module for a list of the built-in encoders." +msgstr "" + +#: ../Doc/library/email.mime.rst:178 +msgid "Module: :mod:`email.mime.image`" +msgstr "Module : :mod:`email.mime.image`" + +#: ../Doc/library/email.mime.rst:180 +msgid "" +"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, the :class:" +"`MIMEImage` class is used to create MIME message objects of major type :" +"mimetype:`image`. *_imagedata* is a string containing the raw image data. " +"If this data can be decoded by the standard Python module :mod:`imghdr`, " +"then the subtype will be automatically included in the :mailheader:`Content-" +"Type` header. Otherwise you can explicitly specify the image subtype via the " +"*_subtype* argument. If the minor type could not be guessed and *_subtype* " +"was not given, then :exc:`TypeError` is raised." +msgstr "" + +#: ../Doc/library/email.mime.rst:189 +msgid "" +"Optional *_encoder* is a callable (i.e. function) which will perform the " +"actual encoding of the image data for transport. This callable takes one " +"argument, which is the :class:`MIMEImage` instance. It should use :meth:" +"`~email.message.Message.get_payload` and :meth:`~email.message.Message." +"set_payload` to change the payload to encoded form. It should also add any :" +"mailheader:`Content-Transfer-Encoding` or other headers to the message " +"object as necessary. The default encoding is base64. See the :mod:`email." +"encoders` module for a list of the built-in encoders." +msgstr "" + +#: ../Doc/library/email.mime.rst:201 +msgid "" +"*_params* are passed straight through to the :class:`~email.mime.base." +"MIMEBase` constructor." +msgstr "" + +#: ../Doc/library/email.mime.rst:211 +msgid "Module: :mod:`email.mime.message`" +msgstr "Module : :mod:`email.mime.message`" + +#: ../Doc/library/email.mime.rst:213 +msgid "" +"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, the :class:" +"`MIMEMessage` class is used to create MIME objects of main type :mimetype:" +"`message`. *_msg* is used as the payload, and must be an instance of class :" +"class:`~email.message.Message` (or a subclass thereof), otherwise a :exc:" +"`TypeError` is raised." +msgstr "" + +#: ../Doc/library/email.mime.rst:219 +msgid "" +"Optional *_subtype* sets the subtype of the message; it defaults to :" +"mimetype:`rfc822`." +msgstr "" + +#: ../Doc/library/email.mime.rst:231 +msgid "Module: :mod:`email.mime.text`" +msgstr "Module : :mod:`email.mime.text`" + +#: ../Doc/library/email.mime.rst:233 +msgid "" +"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, the :class:" +"`MIMEText` class is used to create MIME objects of major type :mimetype:" +"`text`. *_text* is the string for the payload. *_subtype* is the minor type " +"and defaults to :mimetype:`plain`. *_charset* is the character set of the " +"text and is passed as an argument to the :class:`~email.mime.nonmultipart." +"MIMENonMultipart` constructor; it defaults to ``us-ascii`` if the string " +"contains only ``ascii`` code points, and ``utf-8`` otherwise. The " +"*_charset* parameter accepts either a string or a :class:`~email.charset." +"Charset` instance." +msgstr "" + +#: ../Doc/library/email.mime.rst:243 +msgid "" +"Unless the *_charset* argument is explicitly set to ``None``, the MIMEText " +"object created will have both a :mailheader:`Content-Type` header with a " +"``charset`` parameter, and a :mailheader:`Content-Transfer-Encoding` " +"header. This means that a subsequent ``set_payload`` call will not result " +"in an encoded payload, even if a charset is passed in the ``set_payload`` " +"command. You can \"reset\" this behavior by deleting the ``Content-Transfer-" +"Encoding`` header, after which a ``set_payload`` call will automatically " +"encode the new payload (and add a new :mailheader:`Content-Transfer-" +"Encoding` header)." +msgstr "" + +#: ../Doc/library/email.mime.rst:255 +msgid "*_charset* also accepts :class:`~email.charset.Charset` instances." +msgstr "" diff --git a/library/email.parser.po b/library/email.parser.po new file mode 100644 index 000000000..cf9c49181 --- /dev/null +++ b/library/email.parser.po @@ -0,0 +1,378 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-08 16:44+0200\n" +"Last-Translator: Mathieu Dupuy \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/email.parser.rst:2 +msgid ":mod:`email.parser`: Parsing email messages" +msgstr ":mod:`email.parser` : Analyser des e-mails" + +#: ../Doc/library/email.parser.rst:7 +msgid "**Source code:** :source:`Lib/email/parser.py`" +msgstr "**Code source :** :source:`Lib/email/parser.py`" + +#: ../Doc/library/email.parser.rst:11 +msgid "" +"Message object structures can be created in one of two ways: they can be " +"created from whole cloth by creating an :class:`~email.message.EmailMessage` " +"object, adding headers using the dictionary interface, and adding payload(s) " +"using :meth:`~email.message.EmailMessage.set_content` and related methods, " +"or they can be created by parsing a serialized representation of the email " +"message." +msgstr "" +"Les instances de messages peuvent être créées de deux façons : elles peuvent " +"être créées de toutes pièces en créant un objet :class:`~email.message." +"message.EmailMessage`, en ajoutant des en-têtes en utilisant l'interface de " +"dictionnaire, et en ajoutant un ou plusieurs corps de message en utilisant :" +"meth:`~email.message.message.EmailMessage.set_content` et les méthodes " +"associées, ou ils peuvent être créées en analysant une représentation " +"sérialisée de l'e-mail." + +#: ../Doc/library/email.parser.rst:18 +msgid "" +"The :mod:`email` package provides a standard parser that understands most " +"email document structures, including MIME documents. You can pass the " +"parser a bytes, string or file object, and the parser will return to you the " +"root :class:`~email.message.EmailMessage` instance of the object structure. " +"For simple, non-MIME messages the payload of this root object will likely be " +"a string containing the text of the message. For MIME messages, the root " +"object will return ``True`` from its :meth:`~email.message.EmailMessage." +"is_multipart` method, and the subparts can be accessed via the payload " +"manipulation methods, such as :meth:`~email.message.EmailMessage.get_body`, :" +"meth:`~email.message.EmailMessage.iter_parts`, and :meth:`~email.message." +"EmailMessage.walk`." +msgstr "" + +#: ../Doc/library/email.parser.rst:30 +msgid "" +"There are actually two parser interfaces available for use, the :class:" +"`Parser` API and the incremental :class:`FeedParser` API. The :class:" +"`Parser` API is most useful if you have the entire text of the message in " +"memory, or if the entire message lives in a file on the file system. :class:" +"`FeedParser` is more appropriate when you are reading the message from a " +"stream which might block waiting for more input (such as reading an email " +"message from a socket). The :class:`FeedParser` can consume and parse the " +"message incrementally, and only returns the root object when you close the " +"parser." +msgstr "" + +#: ../Doc/library/email.parser.rst:39 +msgid "" +"Note that the parser can be extended in limited ways, and of course you can " +"implement your own parser completely from scratch. All of the logic that " +"connects the :mod:`email` package's bundled parser and the :class:`~email." +"message.EmailMessage` class is embodied in the :mod:`policy` class, so a " +"custom parser can create message object trees any way it finds necessary by " +"implementing custom versions of the appropriate :mod:`policy` methods." +msgstr "" + +#: ../Doc/library/email.parser.rst:49 +msgid "FeedParser API" +msgstr "API *FeedParser*" + +#: ../Doc/library/email.parser.rst:51 +msgid "" +"The :class:`BytesFeedParser`, imported from the :mod:`email.feedparser` " +"module, provides an API that is conducive to incremental parsing of email " +"messages, such as would be necessary when reading the text of an email " +"message from a source that can block (such as a socket). The :class:" +"`BytesFeedParser` can of course be used to parse an email message fully " +"contained in a :term:`bytes-like object`, string, or file, but the :class:" +"`BytesParser` API may be more convenient for such use cases. The semantics " +"and results of the two parser APIs are identical." +msgstr "" + +#: ../Doc/library/email.parser.rst:60 +msgid "" +"The :class:`BytesFeedParser`'s API is simple; you create an instance, feed " +"it a bunch of bytes until there's no more to feed it, then close the parser " +"to retrieve the root message object. The :class:`BytesFeedParser` is " +"extremely accurate when parsing standards-compliant messages, and it does a " +"very good job of parsing non-compliant messages, providing information about " +"how a message was deemed broken. It will populate a message object's :attr:" +"`~email.message.EmailMessage.defects` attribute with a list of any problems " +"it found in a message. See the :mod:`email.errors` module for the list of " +"defects that it can find." +msgstr "" + +#: ../Doc/library/email.parser.rst:70 +msgid "Here is the API for the :class:`BytesFeedParser`:" +msgstr "Voici l’API pour :class:`BytesFeedParser` ::" + +#: ../Doc/library/email.parser.rst:75 +msgid "" +"Create a :class:`BytesFeedParser` instance. Optional *_factory* is a no-" +"argument callable; if not specified use the :attr:`~email.policy.Policy." +"message_factory` from the *policy*. Call *_factory* whenever a new message " +"object is needed." +msgstr "" + +#: ../Doc/library/email.parser.rst:80 +msgid "" +"If *policy* is specified use the rules it specifies to update the " +"representation of the message. If *policy* is not set, use the :class:" +"`compat32 ` policy, which maintains backward " +"compatibility with the Python 3.2 version of the email package and provides :" +"class:`~email.message.Message` as the default factory. All other policies " +"provide :class:`~email.message.EmailMessage` as the default *_factory*. For " +"more information on what else *policy* controls, see the :mod:`~email." +"policy` documentation." +msgstr "" + +#: ../Doc/library/email.parser.rst:89 ../Doc/library/email.parser.rst:145 +msgid "" +"Note: **The policy keyword should always be specified**; The default will " +"change to :data:`email.policy.default` in a future version of Python." +msgstr "" + +#: ../Doc/library/email.parser.rst:94 ../Doc/library/email.parser.rst:122 +msgid "Added the *policy* keyword." +msgstr "" + +#: ../Doc/library/email.parser.rst:95 +msgid "*_factory* defaults to the policy ``message_factory``." +msgstr "" + +#: ../Doc/library/email.parser.rst:100 +msgid "" +"Feed the parser some more data. *data* should be a :term:`bytes-like " +"object` containing one or more lines. The lines can be partial and the " +"parser will stitch such partial lines together properly. The lines can have " +"any of the three common line endings: carriage return, newline, or carriage " +"return and newline (they can even be mixed)." +msgstr "" + +#: ../Doc/library/email.parser.rst:109 +msgid "" +"Complete the parsing of all previously fed data and return the root message " +"object. It is undefined what happens if :meth:`~feed` is called after this " +"method has been called." +msgstr "" + +#: ../Doc/library/email.parser.rst:116 +msgid "" +"Works like :class:`BytesFeedParser` except that the input to the :meth:" +"`~BytesFeedParser.feed` method must be a string. This is of limited " +"utility, since the only way for such a message to be valid is for it to " +"contain only ASCII text or, if :attr:`~email.policy.Policy.utf8` is " +"``True``, no binary attachments." +msgstr "" + +#: ../Doc/library/email.parser.rst:126 +msgid "Parser API" +msgstr "API de *Parser*" + +#: ../Doc/library/email.parser.rst:128 +msgid "" +"The :class:`BytesParser` class, imported from the :mod:`email.parser` " +"module, provides an API that can be used to parse a message when the " +"complete contents of the message are available in a :term:`bytes-like " +"object` or file. The :mod:`email.parser` module also provides :class:" +"`Parser` for parsing strings, and header-only parsers, :class:" +"`BytesHeaderParser` and :class:`HeaderParser`, which can be used if you're " +"only interested in the headers of the message. :class:`BytesHeaderParser` " +"and :class:`HeaderParser` can be much faster in these situations, since they " +"do not attempt to parse the message body, instead setting the payload to the " +"raw body." +msgstr "" + +#: ../Doc/library/email.parser.rst:141 +msgid "" +"Create a :class:`BytesParser` instance. The *_class* and *policy* arguments " +"have the same meaning and semantics as the *_factory* and *policy* arguments " +"of :class:`BytesFeedParser`." +msgstr "" + +#: ../Doc/library/email.parser.rst:148 +msgid "" +"Removed the *strict* argument that was deprecated in 2.4. Added the " +"*policy* keyword." +msgstr "" + +#: ../Doc/library/email.parser.rst:151 ../Doc/library/email.parser.rst:200 +#: ../Doc/library/email.parser.rst:280 +msgid "*_class* defaults to the policy ``message_factory``." +msgstr "" + +#: ../Doc/library/email.parser.rst:156 +msgid "" +"Read all the data from the binary file-like object *fp*, parse the resulting " +"bytes, and return the message object. *fp* must support both the :meth:`~io." +"IOBase.readline` and the :meth:`~io.IOBase.read` methods." +msgstr "" + +#: ../Doc/library/email.parser.rst:161 +msgid "" +"The bytes contained in *fp* must be formatted as a block of :rfc:`5322` (or, " +"if :attr:`~email.policy.Policy.utf8` is ``True``, :rfc:`6532`) style headers " +"and header continuation lines, optionally preceded by an envelope header. " +"The header block is terminated either by the end of the data or by a blank " +"line. Following the header block is the body of the message (which may " +"contain MIME-encoded subparts, including subparts with a :mailheader:" +"`Content-Transfer-Encoding` of ``8bit``)." +msgstr "" + +#: ../Doc/library/email.parser.rst:169 +msgid "" +"Optional *headersonly* is a flag specifying whether to stop parsing after " +"reading the headers or not. The default is ``False``, meaning it parses the " +"entire contents of the file." +msgstr "" + +#: ../Doc/library/email.parser.rst:176 +msgid "" +"Similar to the :meth:`parse` method, except it takes a :term:`bytes-like " +"object` instead of a file-like object. Calling this method on a :term:" +"`bytes-like object` is equivalent to wrapping *bytes* in a :class:`~io." +"BytesIO` instance first and calling :meth:`parse`." +msgstr "" + +#: ../Doc/library/email.parser.rst:181 ../Doc/library/email.parser.rst:221 +msgid "Optional *headersonly* is as with the :meth:`parse` method." +msgstr "" + +#: ../Doc/library/email.parser.rst:188 +msgid "" +"Exactly like :class:`BytesParser`, except that *headersonly* defaults to " +"``True``." +msgstr "" + +#: ../Doc/library/email.parser.rst:196 +msgid "" +"This class is parallel to :class:`BytesParser`, but handles string input." +msgstr "" + +#: ../Doc/library/email.parser.rst:198 ../Doc/library/email.parser.rst:245 +#: ../Doc/library/email.parser.rst:258 ../Doc/library/email.parser.rst:268 +#: ../Doc/library/email.parser.rst:278 +msgid "Removed the *strict* argument. Added the *policy* keyword." +msgstr "" + +#: ../Doc/library/email.parser.rst:205 +msgid "" +"Read all the data from the text-mode file-like object *fp*, parse the " +"resulting text, and return the root message object. *fp* must support both " +"the :meth:`~io.TextIOBase.readline` and the :meth:`~io.TextIOBase.read` " +"methods on file-like objects." +msgstr "" + +#: ../Doc/library/email.parser.rst:210 +msgid "" +"Other than the text mode requirement, this method operates like :meth:" +"`BytesParser.parse`." +msgstr "" + +#: ../Doc/library/email.parser.rst:216 +msgid "" +"Similar to the :meth:`parse` method, except it takes a string object instead " +"of a file-like object. Calling this method on a string is equivalent to " +"wrapping *text* in a :class:`~io.StringIO` instance first and calling :meth:" +"`parse`." +msgstr "" + +#: ../Doc/library/email.parser.rst:226 +msgid "" +"Exactly like :class:`Parser`, except that *headersonly* defaults to ``True``." +msgstr "" + +#: ../Doc/library/email.parser.rst:230 +msgid "" +"Since creating a message object structure from a string or a file object is " +"such a common task, four functions are provided as a convenience. They are " +"available in the top-level :mod:`email` package namespace." +msgstr "" + +#: ../Doc/library/email.parser.rst:239 +msgid "" +"Return a message object structure from a :term:`bytes-like object`. This is " +"equivalent to ``BytesParser().parsebytes(s)``. Optional *_class* and " +"*policy* are interpreted as with the :class:`~email.parser.BytesParser` " +"class constructor." +msgstr "" + +#: ../Doc/library/email.parser.rst:252 +msgid "" +"Return a message object structure tree from an open binary :term:`file " +"object`. This is equivalent to ``BytesParser().parse(fp)``. *_class* and " +"*policy* are interpreted as with the :class:`~email.parser.BytesParser` " +"class constructor." +msgstr "" + +#: ../Doc/library/email.parser.rst:264 +msgid "" +"Return a message object structure from a string. This is equivalent to " +"``Parser().parsestr(s)``. *_class* and *policy* are interpreted as with " +"the :class:`~email.parser.Parser` class constructor." +msgstr "" + +#: ../Doc/library/email.parser.rst:274 +msgid "" +"Return a message object structure tree from an open :term:`file object`. " +"This is equivalent to ``Parser().parse(fp)``. *_class* and *policy* are " +"interpreted as with the :class:`~email.parser.Parser` class constructor." +msgstr "" + +#: ../Doc/library/email.parser.rst:283 +msgid "" +"Here's an example of how you might use :func:`message_from_bytes` at an " +"interactive Python prompt::" +msgstr "" + +#: ../Doc/library/email.parser.rst:291 +msgid "Additional notes" +msgstr "Notes complémentaires" + +#: ../Doc/library/email.parser.rst:293 +msgid "Here are some notes on the parsing semantics:" +msgstr "Voici des remarques sur la sémantique d'analyse ::" + +#: ../Doc/library/email.parser.rst:295 +msgid "" +"Most non-\\ :mimetype:`multipart` type messages are parsed as a single " +"message object with a string payload. These objects will return ``False`` " +"for :meth:`~email.message.EmailMessage.is_multipart`, and :meth:`~email." +"message.EmailMessage.iter_parts` will yield an empty list." +msgstr "" + +#: ../Doc/library/email.parser.rst:300 +msgid "" +"All :mimetype:`multipart` type messages will be parsed as a container " +"message object with a list of sub-message objects for their payload. The " +"outer container message will return ``True`` for :meth:`~email.message." +"EmailMessage.is_multipart`, and :meth:`~email.message.EmailMessage." +"iter_parts` will yield a list of subparts." +msgstr "" + +#: ../Doc/library/email.parser.rst:306 +msgid "" +"Most messages with a content type of :mimetype:`message/\\*` (such as :" +"mimetype:`message/delivery-status` and :mimetype:`message/rfc822`) will also " +"be parsed as container object containing a list payload of length 1. Their :" +"meth:`~email.message.EmailMessage.is_multipart` method will return ``True``. " +"The single element yielded by :meth:`~email.message.EmailMessage.iter_parts` " +"will be a sub-message object." +msgstr "" + +#: ../Doc/library/email.parser.rst:313 +msgid "" +"Some non-standards-compliant messages may not be internally consistent about " +"their :mimetype:`multipart`\\ -edness. Such messages may have a :mailheader:" +"`Content-Type` header of type :mimetype:`multipart`, but their :meth:`~email." +"message.EmailMessage.is_multipart` method may return ``False``. If such " +"messages were parsed with the :class:`~email.parser.FeedParser`, they will " +"have an instance of the :class:`~email.errors." +"MultipartInvariantViolationDefect` class in their *defects* attribute list. " +"See :mod:`email.errors` for details." +msgstr "" diff --git a/library/email.po b/library/email.po new file mode 100644 index 000000000..7f3f3eca9 --- /dev/null +++ b/library/email.po @@ -0,0 +1,287 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/email.rst:2 +msgid ":mod:`email` --- An email and MIME handling package" +msgstr ":mod:`email` — Un paquet de gestion des e-mails et MIME" + +#: ../Doc/library/email.rst:11 +msgid "**Source code:** :source:`Lib/email/__init__.py`" +msgstr "**Code source:** :source:`Lib/email/__init__.py`" + +#: ../Doc/library/email.rst:15 +msgid "" +"The :mod:`email` package is a library for managing email messages. It is " +"specifically *not* designed to do any sending of email messages to SMTP (:" +"rfc:`2821`), NNTP, or other servers; those are functions of modules such as :" +"mod:`smtplib` and :mod:`nntplib`. The :mod:`email` package attempts to be " +"as RFC-compliant as possible, supporting :rfc:`5233` and :rfc:`6532`, as " +"well as such MIME-related RFCs as :rfc:`2045`, :rfc:`2046`, :rfc:`2047`, :" +"rfc:`2183`, and :rfc:`2231`." +msgstr "" +"Le paquet :mod:`email` est une bibliothèque pour gérer les e-mails. Il est " +"spécifiquement conçu pour ne pas gérer les envois d'e-mails vers SMTP (:rfc:" +"`2821`), NNTP, ou autres serveurs ; ces fonctions sont du ressort " +"des modules comme :mod:`smtplib` et :mod:`nntplib`. Le paquet :mod:`email` " +"tente de respecter les RFC autant que possible, il gère :rfc:`5233` et :rfc:" +"`6532`, ainsi que les RFCs en rapport avec les MIME comme :rfc:`2045`, :rfc:" +"`2046`, :rfc:`2047`, :rfc:`2183`, et :rfc:`2231`." + +#: ../Doc/library/email.rst:23 +msgid "" +"The overall structure of the email package can be divided into three major " +"components, plus a fourth component that controls the behavior of the other " +"components." +msgstr "" +"Ce paquet peut être divisé entre trois composants majeurs, et un quatrième " +"composant qui contrôle le comportement des trois autres." + +#: ../Doc/library/email.rst:27 +msgid "" +"The central component of the package is an \"object model\" that represents " +"email messages. An application interacts with the package primarily through " +"the object model interface defined in the :mod:`~email.message` sub-module. " +"The application can use this API to ask questions about an existing email, " +"to construct a new email, or to add or remove email subcomponents that " +"themselves use the same object model interface. That is, following the " +"nature of email messages and their MIME subcomponents, the email object " +"model is a tree structure of objects that all provide the :class:`~email." +"message.EmailMessage` API." +msgstr "" +"Le composant central du paquet est un \"modèle d'objet\" qui représente les " +"messages. Une application interagit avec le paquet, dans un premier temps, à " +"travers l'interface de modèle d'objet définie dans le sous-module :mod:" +"`~email.message`. L'application peut utiliser cette API pour poser des " +"questions à propos d'un mail existant, pour créer un nouvel e-mail, ou " +"ajouter ou retirer des sous-composants d'e-mail qui utilisent la même " +"interface de modèle d'objet. Suivant la nature des messages et leurs sous-" +"composants MIME, le modèle d'objet d'e-mail est une structure arborescente " +"d'objets qui fournit tout à l'API de :class:`~email.message.EmailMessage`." + +#: ../Doc/library/email.rst:37 +msgid "" +"The other two major components of the package are the :mod:`~email.parser` " +"and the :mod:`~email.generator`. The parser takes the serialized version of " +"an email message (a stream of bytes) and converts it into a tree of :class:" +"`~email.message.EmailMessage` objects. The generator takes an :class:" +"`~email.message.EmailMessage` and turns it back into a serialized byte " +"stream. (The parser and generator also handle streams of text characters, " +"but this usage is discouraged as it is too easy to end up with messages that " +"are not valid in one way or another.)" +msgstr "" +"Les deux autres composants majeurs de ce paquet sont l'analyseur (:mod:" +"`~email.parser`) et le générateur (:mod:`~email.generator`). L'analyseur " +"prend la version sérialisée d'un e-mail (un flux d'octets) et le convertit " +"en une arborescence d'objets :class:`~email.message.EmailMessage`. Le " +"générateur prend un objet :class:`~email.message.EmailMessage` et le " +"retransforme en un flux d'octets sérialisé (l'analyseur et le générateur " +"gèrent aussi des suites de caractères textuels, mais cette utilisation est " +"déconseillée car il est très facile de finir avec des messages invalides " +"d'une manière ou d'une autre)." + +#: ../Doc/library/email.rst:46 +msgid "" +"The control component is the :mod:`~email.policy` module. Every :class:" +"`~email.message.EmailMessage`, every :mod:`~email.generator`, and every :mod:" +"`~email.parser` has an associated :mod:`~email.policy` object that controls " +"its behavior. Usually an application only needs to specify the policy when " +"an :class:`~email.message.EmailMessage` is created, either by directly " +"instantiating an :class:`~email.message.EmailMessage` to create a new " +"email, or by parsing an input stream using a :mod:`~email.parser`. But the " +"policy can be changed when the message is serialized using a :mod:`~email." +"generator`. This allows, for example, a generic email message to be parsed " +"from disk, but to serialize it using standard SMTP settings when sending it " +"to an email server." +msgstr "" +"Le composant de contrôle est le module :mod:`~email.policy`. Chaque :class:" +"`~email.message.EmailMessage`, chaque :mod:`~email.generator` et chaque :mod:" +"`~email.parser` possède un objet associé :mod:`~email.policy` qui contrôle " +"son comportement. Habituellement une application n'a besoin de spécifier la " +"politique que quand un :class:`~email.message.EmailMessage` est créé, soit " +"en instanciant directement un :class:`~email.message.EmailMessage` pour " +"créer un nouvel e-mail, soit lors de l'analyse d'un flux entrant en " +"utilisant un :mod:`~email.parser`. Mais la politique peut être changée quand " +"le message est sérialisé en utilisant un :mod:`~email.generator`. Cela " +"permet, par exemple, d'analyser un message e-mail générique du disque, puis " +"de le sérialiser en utilisant une configuration SMTP standard quand on " +"l'envoie vers un serveur d'e-mail." + +#: ../Doc/library/email.rst:58 +msgid "" +"The email package does its best to hide the details of the various governing " +"RFCs from the application. Conceptually the application should be able to " +"treat the email message as a structured tree of unicode text and binary " +"attachments, without having to worry about how these are represented when " +"serialized. In practice, however, it is often necessary to be aware of at " +"least some of the rules governing MIME messages and their structure, " +"specifically the names and nature of the MIME \"content types\" and how they " +"identify multipart documents. For the most part this knowledge should only " +"be required for more complex applications, and even then it should only be " +"the high level structure in question, and not the details of how those " +"structures are represented. Since MIME content types are used widely in " +"modern internet software (not just email), this will be a familiar concept " +"to many programmers." +msgstr "" +"Le paquet *email* fait son maximum pour cacher les détails des différentes " +"RFCs de référence à l'application. Conceptuellement, l'application doit être " +"capable de traiter l'e-mail comme une arborescence structurée de texte " +"Unicode et de pièces jointes binaires, sans avoir à se préoccuper de leur " +"représentation sérialisée. Dans la pratique, cependant, il est souvent " +"nécessaire d'être conscient d'au moins quelques règles relatives aux " +"messages MIME et à leur structure, en particulier les noms et natures des " +"\"types de contenus\" et comment ils identifient les documents à plusieurs " +"parties. Pour la plupart, cette connaissance devrait seulement être " +"nécessaire pour des applications plus complexes, et même là, il devrait être " +"question des structures de haut niveau et non des détails sur la manière " +"dont elles sont représentées. Comme les types de contenus MIME sont " +"couramment utilisés dans les logiciels internet modernes (et non uniquement " +"les e-mails), les développeurs sont généralement familiers de ce concept." + +#: ../Doc/library/email.rst:71 +msgid "" +"The following sections describe the functionality of the :mod:`email` " +"package. We start with the :mod:`~email.message` object model, which is the " +"primary interface an application will use, and follow that with the :mod:" +"`~email.parser` and :mod:`~email.generator` components. Then we cover the :" +"mod:`~email.policy` controls, which completes the treatment of the main " +"components of the library." +msgstr "" +"La section suivante décrit les fonctionnalités du paquet :mod:`email`. Nous " +"commençons avec le modèle d'objet :mod:`~email.message`, qui est la " +"principale interface qu'une application utilise, et continuons avec les " +"composants :mod:`~email.parser` et :mod:`~email.generator`. Ensuite, nous " +"couvrons les contrôles :mod:`~email.policy`, qui complètent le traitement " +"des principaux composants de la bibliothèque." + +#: ../Doc/library/email.rst:78 +msgid "" +"The next three sections cover the exceptions the package may raise and the " +"defects (non-compliance with the RFCs) that the :mod:`~email.parser` may " +"detect. Then we cover the :mod:`~email.headerregistry` and the :mod:`~email." +"contentmanager` sub-components, which provide tools for doing more detailed " +"manipulation of headers and payloads, respectively. Both of these " +"components contain features relevant to consuming and producing non-trivial " +"messages, but also document their extensibility APIs, which will be of " +"interest to advanced applications." +msgstr "" +"Les trois prochaines sections couvrent les exceptions que le paquet peut " +"rencontrer et les imperfections (non-respect des RFCs) que le module :mod:" +"`~email.parser` peut détecter. Ensuite nous couvrons les sous-composants :" +"mod:`~email.headerregistry` et :mod:`~email.contentmanager`, qui fournissent " +"des outils pour faire des manipulations plus détaillées des en-têtes et du " +"contenu, respectivement. Les deux composants contiennent des fonctionnalités " +"adaptées pour traiter et produire des messages qui sortent de l'ordinaire, " +"et elles documentent aussi leurs API pour pouvoir les étendre, ce qui ne " +"manquera pas d'intéresser les applications avancées." + +#: ../Doc/library/email.rst:87 +msgid "" +"Following those is a set of examples of using the fundamental parts of the " +"APIs covered in the preceding sections." +msgstr "" +"Ci-dessous se trouve un ensemble d'exemples d'utilisations des éléments " +"fondamentaux des API couvertes dans les sections précédentes." + +#: ../Doc/library/email.rst:90 +msgid "" +"The foregoing represent the modern (unicode friendly) API of the email " +"package. The remaining sections, starting with the :class:`~email.message." +"Message` class, cover the legacy :data:`~email.policy.compat32` API that " +"deals much more directly with the details of how email messages are " +"represented. The :data:`~email.policy.compat32` API does *not* hide the " +"details of the RFCs from the application, but for applications that need to " +"operate at that level, they can be useful tools. This documentation is also " +"relevant for applications that are still using the :mod:`~email.policy." +"compat32` API for backward compatibility reasons." +msgstr "" +"Ce que nous venons d'aborder constitue l'API moderne (compatible Unicode) du " +"paquet *email*. Les sections restantes, commençant par la classe :class:" +"`~email.message.Message`, couvrent l'API héritée :data:`~email.policy." +"compat32` qui traite beaucoup plus directement des détails sur la manière " +"dont les e-mails sont représentés. L'API :data:`~email.policy.compat32` ne " +"cache *pas* les détails des RFCs à l'application, mais pour les applications " +"qui requièrent d'opérer à ce niveau, elle peut être un outil pratique. Cette " +"documentation est aussi pertinente pour les applications qui utilisent " +"toujours l'API :mod:`~email.policy.compat32` pour des raisons de " +"rétrocompatibilité." + +#: ../Doc/library/email.rst:100 +msgid "" +"Docs reorganized and rewritten to promote the new :class:`~email.message." +"EmailMessage`/:class:`~email.policy.EmailPolicy` API." +msgstr "" +"Documents réorganisés et réécrits pour promouvoir la nouvelle API :class:" +"`~email.message.EmailMessage`/:class:`~email.policy.EmailPolicy`." + +#: ../Doc/library/email.rst:105 +msgid "Contents of the :mod:`email` package documentation:" +msgstr "Contenus de la documentation du paquet :mod:`email` :" + +#: ../Doc/library/email.rst:120 +msgid "Legacy API:" +msgstr "API héritée :" + +#: ../Doc/library/email.rst:136 +msgid "Module :mod:`smtplib`" +msgstr "Module :mod:`smtplib`" + +#: ../Doc/library/email.rst:136 +msgid "SMTP (Simple Mail Transport Protocol) client" +msgstr "Client SMTP (*Simple Mail Transport Protocol*)" + +#: ../Doc/library/email.rst:139 +msgid "Module :mod:`poplib`" +msgstr "Module :mod:`poplib`" + +#: ../Doc/library/email.rst:139 +msgid "POP (Post Office Protocol) client" +msgstr "Client POP (*Post Office Protocol*)" + +#: ../Doc/library/email.rst:142 +msgid "Module :mod:`imaplib`" +msgstr "Module :mod:`imaplib`" + +#: ../Doc/library/email.rst:142 +msgid "IMAP (Internet Message Access Protocol) client" +msgstr "Client IMAP (*Internet Message Access Protocol*)" + +#: ../Doc/library/email.rst:145 +msgid "Module :mod:`nntplib`" +msgstr "Module :mod:`nntplib`" + +#: ../Doc/library/email.rst:145 +msgid "NNTP (Net News Transport Protocol) client" +msgstr "Client NNTP (*Net News Transport Protocol*)" + +#: ../Doc/library/email.rst:149 +msgid "Module :mod:`mailbox`" +msgstr "Module :mod:`mailbox`" + +#: ../Doc/library/email.rst:148 +msgid "" +"Tools for creating, reading, and managing collections of messages on disk " +"using a variety standard formats." +msgstr "" +"Outils pour créer, lire et gérer des messages regroupés sur disque en " +"utilisant des formats standards variés." + +#: ../Doc/library/email.rst:151 +msgid "Module :mod:`smtpd`" +msgstr "Module :mod:`smtpd`" + +#: ../Doc/library/email.rst:152 +msgid "SMTP server framework (primarily useful for testing)" +msgstr "Cadriciel pour serveur SMTP (principalement utile pour tester)" diff --git a/library/email.policy.po b/library/email.policy.po new file mode 100644 index 000000000..0caa7673f --- /dev/null +++ b/library/email.policy.po @@ -0,0 +1,735 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/email.policy.rst:2 +msgid ":mod:`email.policy`: Policy Objects" +msgstr "" + +#: ../Doc/library/email.policy.rst:12 +msgid "**Source code:** :source:`Lib/email/policy.py`" +msgstr "" + +#: ../Doc/library/email.policy.rst:16 +msgid "" +"The :mod:`email` package's prime focus is the handling of email messages as " +"described by the various email and MIME RFCs. However, the general format " +"of email messages (a block of header fields each consisting of a name " +"followed by a colon followed by a value, the whole block followed by a blank " +"line and an arbitrary 'body'), is a format that has found utility outside of " +"the realm of email. Some of these uses conform fairly closely to the main " +"email RFCs, some do not. Even when working with email, there are times when " +"it is desirable to break strict compliance with the RFCs, such as generating " +"emails that interoperate with email servers that do not themselves follow " +"the standards, or that implement extensions you want to use in ways that " +"violate the standards." +msgstr "" + +#: ../Doc/library/email.policy.rst:28 +msgid "" +"Policy objects give the email package the flexibility to handle all these " +"disparate use cases." +msgstr "" + +#: ../Doc/library/email.policy.rst:31 +msgid "" +"A :class:`Policy` object encapsulates a set of attributes and methods that " +"control the behavior of various components of the email package during use. :" +"class:`Policy` instances can be passed to various classes and methods in the " +"email package to alter the default behavior. The settable values and their " +"defaults are described below." +msgstr "" + +#: ../Doc/library/email.policy.rst:37 +msgid "" +"There is a default policy used by all classes in the email package. For all " +"of the :mod:`~email.parser` classes and the related convenience functions, " +"and for the :class:`~email.message.Message` class, this is the :class:" +"`Compat32` policy, via its corresponding pre-defined instance :const:" +"`compat32`. This policy provides for complete backward compatibility (in " +"some cases, including bug compatibility) with the pre-Python3.3 version of " +"the email package." +msgstr "" + +#: ../Doc/library/email.policy.rst:44 +msgid "" +"This default value for the *policy* keyword to :class:`~email.message." +"EmailMessage` is the :class:`EmailPolicy` policy, via its pre-defined " +"instance :data:`~default`." +msgstr "" + +#: ../Doc/library/email.policy.rst:48 +msgid "" +"When a :class:`~email.message.Message` or :class:`~email.message." +"EmailMessage` object is created, it acquires a policy. If the message is " +"created by a :mod:`~email.parser`, a policy passed to the parser will be the " +"policy used by the message it creates. If the message is created by the " +"program, then the policy can be specified when it is created. When a " +"message is passed to a :mod:`~email.generator`, the generator uses the " +"policy from the message by default, but you can also pass a specific policy " +"to the generator that will override the one stored on the message object." +msgstr "" + +#: ../Doc/library/email.policy.rst:57 +msgid "" +"The default value for the *policy* keyword for the :mod:`email.parser` " +"classes and the parser convenience functions **will be changing** in a " +"future version of Python. Therefore you should **always specify explicitly " +"which policy you want to use** when calling any of the classes and functions " +"described in the :mod:`~email.parser` module." +msgstr "" + +#: ../Doc/library/email.policy.rst:63 +msgid "" +"The first part of this documentation covers the features of :class:`Policy`, " +"an :term:`abstract base class` that defines the features that are common to " +"all policy objects, including :const:`compat32`. This includes certain hook " +"methods that are called internally by the email package, which a custom " +"policy could override to obtain different behavior. The second part " +"describes the concrete classes :class:`EmailPolicy` and :class:`Compat32`, " +"which implement the hooks that provide the standard behavior and the " +"backward compatible behavior and features, respectively." +msgstr "" + +#: ../Doc/library/email.policy.rst:72 +msgid "" +":class:`Policy` instances are immutable, but they can be cloned, accepting " +"the same keyword arguments as the class constructor and returning a new :" +"class:`Policy` instance that is a copy of the original but with the " +"specified attributes values changed." +msgstr "" + +#: ../Doc/library/email.policy.rst:77 +msgid "" +"As an example, the following code could be used to read an email message " +"from a file on disk and pass it to the system ``sendmail`` program on a Unix " +"system:" +msgstr "" + +#: ../Doc/library/email.policy.rst:113 +msgid "" +"Here we are telling :class:`~email.generator.BytesGenerator` to use the RFC " +"correct line separator characters when creating the binary string to feed " +"into ``sendmail's`` ``stdin``, where the default policy would use ``\\n`` " +"line separators." +msgstr "" + +#: ../Doc/library/email.policy.rst:118 +msgid "" +"Some email package methods accept a *policy* keyword argument, allowing the " +"policy to be overridden for that method. For example, the following code " +"uses the :meth:`~email.message.Message.as_bytes` method of the *msg* object " +"from the previous example and writes the message to a file using the native " +"line separators for the platform on which it is running::" +msgstr "" + +#: ../Doc/library/email.policy.rst:129 +msgid "" +"Policy objects can also be combined using the addition operator, producing a " +"policy object whose settings are a combination of the non-default values of " +"the summed objects::" +msgstr "" + +#: ../Doc/library/email.policy.rst:137 +msgid "" +"This operation is not commutative; that is, the order in which the objects " +"are added matters. To illustrate::" +msgstr "" + +#: ../Doc/library/email.policy.rst:152 +msgid "" +"This is the :term:`abstract base class` for all policy classes. It provides " +"default implementations for a couple of trivial methods, as well as the " +"implementation of the immutability property, the :meth:`clone` method, and " +"the constructor semantics." +msgstr "" + +#: ../Doc/library/email.policy.rst:157 +msgid "" +"The constructor of a policy class can be passed various keyword arguments. " +"The arguments that may be specified are any non-method properties on this " +"class, plus any additional non-method properties on the concrete class. A " +"value specified in the constructor will override the default value for the " +"corresponding attribute." +msgstr "" + +#: ../Doc/library/email.policy.rst:163 +msgid "" +"This class defines the following properties, and thus values for the " +"following may be passed in the constructor of any policy class:" +msgstr "" + +#: ../Doc/library/email.policy.rst:169 +msgid "" +"The maximum length of any line in the serialized output, not counting the " +"end of line character(s). Default is 78, per :rfc:`5322`. A value of ``0`` " +"or :const:`None` indicates that no line wrapping should be done at all." +msgstr "" + +#: ../Doc/library/email.policy.rst:177 +msgid "" +"The string to be used to terminate lines in serialized output. The default " +"is ``\\n`` because that's the internal end-of-line discipline used by " +"Python, though ``\\r\\n`` is required by the RFCs." +msgstr "" + +#: ../Doc/library/email.policy.rst:184 +msgid "" +"Controls the type of Content Transfer Encodings that may be or are required " +"to be used. The possible values are:" +msgstr "" + +#: ../Doc/library/email.policy.rst:190 +msgid "``7bit``" +msgstr "``7bit``" + +#: ../Doc/library/email.policy.rst:190 +msgid "" +"all data must be \"7 bit clean\" (ASCII-only). This means that where " +"necessary data will be encoded using either quoted-printable or base64 " +"encoding." +msgstr "" + +#: ../Doc/library/email.policy.rst:194 +msgid "``8bit``" +msgstr "``8bit``" + +#: ../Doc/library/email.policy.rst:194 +msgid "" +"data is not constrained to be 7 bit clean. Data in headers is still " +"required to be ASCII-only and so will be encoded (see :meth:`fold_binary` " +"and :attr:`~EmailPolicy.utf8` below for exceptions), but body parts may use " +"the ``8bit`` CTE." +msgstr "" + +#: ../Doc/library/email.policy.rst:200 +msgid "" +"A ``cte_type`` value of ``8bit`` only works with ``BytesGenerator``, not " +"``Generator``, because strings cannot contain binary data. If a " +"``Generator`` is operating under a policy that specifies ``cte_type=8bit``, " +"it will act as if ``cte_type`` is ``7bit``." +msgstr "" + +#: ../Doc/library/email.policy.rst:208 +msgid "" +"If :const:`True`, any defects encountered will be raised as errors. If :" +"const:`False` (the default), defects will be passed to the :meth:" +"`register_defect` method." +msgstr "" + +#: ../Doc/library/email.policy.rst:215 +msgid "" +"If :const:`True`, lines starting with *\"From \"* in the body are escaped by " +"putting a ``>`` in front of them. This parameter is used when the message is " +"being serialized by a generator. Default: :const:`False`." +msgstr "" + +#: ../Doc/library/email.policy.rst:220 +msgid "The *mangle_from_* parameter." +msgstr "" + +#: ../Doc/library/email.policy.rst:226 +msgid "" +"A factory function for constructing a new empty message object. Used by the " +"parser when building messages. Defaults to ``None``, in which case :class:" +"`~email.message.Message` is used." +msgstr "" + +#: ../Doc/library/email.policy.rst:232 +msgid "" +"The following :class:`Policy` method is intended to be called by code using " +"the email library to create policy instances with custom settings:" +msgstr "" + +#: ../Doc/library/email.policy.rst:238 +msgid "" +"Return a new :class:`Policy` instance whose attributes have the same values " +"as the current instance, except where those attributes are given new values " +"by the keyword arguments." +msgstr "" + +#: ../Doc/library/email.policy.rst:243 +msgid "" +"The remaining :class:`Policy` methods are called by the email package code, " +"and are not intended to be called by an application using the email package. " +"A custom policy must implement all of these methods." +msgstr "" + +#: ../Doc/library/email.policy.rst:250 +msgid "" +"Handle a *defect* found on *obj*. When the email package calls this method, " +"*defect* will always be a subclass of :class:`~email.errors.Defect`." +msgstr "" + +#: ../Doc/library/email.policy.rst:254 +msgid "" +"The default implementation checks the :attr:`raise_on_defect` flag. If it " +"is ``True``, *defect* is raised as an exception. If it is ``False`` (the " +"default), *obj* and *defect* are passed to :meth:`register_defect`." +msgstr "" + +#: ../Doc/library/email.policy.rst:261 +msgid "" +"Register a *defect* on *obj*. In the email package, *defect* will always be " +"a subclass of :class:`~email.errors.Defect`." +msgstr "" + +#: ../Doc/library/email.policy.rst:264 +msgid "" +"The default implementation calls the ``append`` method of the ``defects`` " +"attribute of *obj*. When the email package calls :attr:`handle_defect`, " +"*obj* will normally have a ``defects`` attribute that has an ``append`` " +"method. Custom object types used with the email package (for example, " +"custom ``Message`` objects) should also provide such an attribute, otherwise " +"defects in parsed messages will raise unexpected errors." +msgstr "" + +#: ../Doc/library/email.policy.rst:274 +msgid "Return the maximum allowed number of headers named *name*." +msgstr "" + +#: ../Doc/library/email.policy.rst:276 +msgid "" +"Called when a header is added to an :class:`~email.message.EmailMessage` or :" +"class:`~email.message.Message` object. If the returned value is not ``0`` " +"or ``None``, and there are already a number of headers with the name *name* " +"greater than or equal to the value returned, a :exc:`ValueError` is raised." +msgstr "" + +#: ../Doc/library/email.policy.rst:282 +msgid "" +"Because the default behavior of ``Message.__setitem__`` is to append the " +"value to the list of headers, it is easy to create duplicate headers without " +"realizing it. This method allows certain headers to be limited in the " +"number of instances of that header that may be added to a ``Message`` " +"programmatically. (The limit is not observed by the parser, which will " +"faithfully produce as many headers as exist in the message being parsed.)" +msgstr "" + +#: ../Doc/library/email.policy.rst:290 +msgid "The default implementation returns ``None`` for all header names." +msgstr "" + +#: ../Doc/library/email.policy.rst:295 +msgid "" +"The email package calls this method with a list of strings, each string " +"ending with the line separation characters found in the source being " +"parsed. The first line includes the field header name and separator. All " +"whitespace in the source is preserved. The method should return the " +"``(name, value)`` tuple that is to be stored in the ``Message`` to represent " +"the parsed header." +msgstr "" + +#: ../Doc/library/email.policy.rst:302 +msgid "" +"If an implementation wishes to retain compatibility with the existing email " +"package policies, *name* should be the case preserved name (all characters " +"up to the '``:``' separator), while *value* should be the unfolded value " +"(all line separator characters removed, but whitespace kept intact), " +"stripped of leading whitespace." +msgstr "" + +#: ../Doc/library/email.policy.rst:308 +msgid "*sourcelines* may contain surrogateescaped binary data." +msgstr "" + +#: ../Doc/library/email.policy.rst:310 ../Doc/library/email.policy.rst:326 +#: ../Doc/library/email.policy.rst:342 +msgid "There is no default implementation" +msgstr "" + +#: ../Doc/library/email.policy.rst:315 +msgid "" +"The email package calls this method with the name and value provided by the " +"application program when the application program is modifying a ``Message`` " +"programmatically (as opposed to a ``Message`` created by a parser). The " +"method should return the ``(name, value)`` tuple that is to be stored in the " +"``Message`` to represent the header." +msgstr "" + +#: ../Doc/library/email.policy.rst:321 +msgid "" +"If an implementation wishes to retain compatibility with the existing email " +"package policies, the *name* and *value* should be strings or string " +"subclasses that do not change the content of the passed in arguments." +msgstr "" + +#: ../Doc/library/email.policy.rst:331 +msgid "" +"The email package calls this method with the *name* and *value* currently " +"stored in the ``Message`` when that header is requested by the application " +"program, and whatever the method returns is what is passed back to the " +"application as the value of the header being retrieved. Note that there may " +"be more than one header with the same name stored in the ``Message``; the " +"method is passed the specific name and value of the header destined to be " +"returned to the application." +msgstr "" + +#: ../Doc/library/email.policy.rst:339 +msgid "" +"*value* may contain surrogateescaped binary data. There should be no " +"surrogateescaped binary data in the value returned by the method." +msgstr "" + +#: ../Doc/library/email.policy.rst:347 +msgid "" +"The email package calls this method with the *name* and *value* currently " +"stored in the ``Message`` for a given header. The method should return a " +"string that represents that header \"folded\" correctly (according to the " +"policy settings) by composing the *name* with the *value* and inserting :" +"attr:`linesep` characters at the appropriate places. See :rfc:`5322` for a " +"discussion of the rules for folding email headers." +msgstr "" + +#: ../Doc/library/email.policy.rst:354 +msgid "" +"*value* may contain surrogateescaped binary data. There should be no " +"surrogateescaped binary data in the string returned by the method." +msgstr "" + +#: ../Doc/library/email.policy.rst:360 +msgid "" +"The same as :meth:`fold`, except that the returned value should be a bytes " +"object rather than a string." +msgstr "" + +#: ../Doc/library/email.policy.rst:363 +msgid "" +"*value* may contain surrogateescaped binary data. These could be converted " +"back into binary data in the returned bytes object." +msgstr "" + +#: ../Doc/library/email.policy.rst:370 +msgid "" +"This concrete :class:`Policy` provides behavior that is intended to be fully " +"compliant with the current email RFCs. These include (but are not limited " +"to) :rfc:`5322`, :rfc:`2047`, and the current MIME RFCs." +msgstr "" + +#: ../Doc/library/email.policy.rst:374 +msgid "" +"This policy adds new header parsing and folding algorithms. Instead of " +"simple strings, headers are ``str`` subclasses with attributes that depend " +"on the type of the field. The parsing and folding algorithm fully " +"implement :rfc:`2047` and :rfc:`5322`." +msgstr "" + +#: ../Doc/library/email.policy.rst:379 +msgid "" +"The default value for the :attr:`~email.policy.Policy.message_factory` " +"attribute is :class:`~email.message.EmailMessage`." +msgstr "" + +#: ../Doc/library/email.policy.rst:382 +msgid "" +"In addition to the settable attributes listed above that apply to all " +"policies, this policy adds the following additional attributes:" +msgstr "" + +#: ../Doc/library/email.policy.rst:385 +msgid "[1]_" +msgstr "" + +#: ../Doc/library/email.policy.rst:390 +msgid "" +"If ``False``, follow :rfc:`5322`, supporting non-ASCII characters in headers " +"by encoding them as \"encoded words\". If ``True``, follow :rfc:`6532` and " +"use ``utf-8`` encoding for headers. Messages formatted in this way may be " +"passed to SMTP servers that support the ``SMTPUTF8`` extension (:rfc:`6531`)." +msgstr "" + +#: ../Doc/library/email.policy.rst:399 +msgid "" +"If the value for a header in the ``Message`` object originated from a :mod:" +"`~email.parser` (as opposed to being set by a program), this attribute " +"indicates whether or not a generator should refold that value when " +"transforming the message back into serialized form. The possible values are:" +msgstr "" + +#: ../Doc/library/email.policy.rst:406 +msgid "``none``" +msgstr "``none``" + +#: ../Doc/library/email.policy.rst:406 +msgid "all source values use original folding" +msgstr "" + +#: ../Doc/library/email.policy.rst:408 +msgid "``long``" +msgstr "``long``" + +#: ../Doc/library/email.policy.rst:408 +msgid "" +"source values that have any line that is longer than ``max_line_length`` " +"will be refolded" +msgstr "" + +#: ../Doc/library/email.policy.rst:411 +msgid "``all``" +msgstr "``all``" + +#: ../Doc/library/email.policy.rst:411 +msgid "all values are refolded." +msgstr "" + +#: ../Doc/library/email.policy.rst:414 +msgid "The default is ``long``." +msgstr "" + +#: ../Doc/library/email.policy.rst:419 +msgid "" +"A callable that takes two arguments, ``name`` and ``value``, where ``name`` " +"is a header field name and ``value`` is an unfolded header field value, and " +"returns a string subclass that represents that header. A default " +"``header_factory`` (see :mod:`~email.headerregistry`) is provided that " +"supports custom parsing for the various address and date :RFC:`5322` header " +"field types, and the major MIME header field stypes. Support for additional " +"custom parsing will be added in the future." +msgstr "" + +#: ../Doc/library/email.policy.rst:430 +msgid "" +"An object with at least two methods: get_content and set_content. When the :" +"meth:`~email.message.EmailMessage.get_content` or :meth:`~email.message." +"EmailMessage.set_content` method of an :class:`~email.message.EmailMessage` " +"object is called, it calls the corresponding method of this object, passing " +"it the message object as its first argument, and any arguments or keywords " +"that were passed to it as additional arguments. By default " +"``content_manager`` is set to :data:`~email.contentmanager.raw_data_manager`." +msgstr "" + +#: ../Doc/library/email.policy.rst:442 ../Doc/library/email.policy.rst:600 +msgid "" +"The class provides the following concrete implementations of the abstract " +"methods of :class:`Policy`:" +msgstr "" + +#: ../Doc/library/email.policy.rst:448 +msgid "" +"Returns the value of the :attr:`~email.headerregistry.BaseHeader.max_count` " +"attribute of the specialized class used to represent the header with the " +"given name." +msgstr "" + +#: ../Doc/library/email.policy.rst:456 ../Doc/library/email.policy.rst:606 +msgid "" +"The name is parsed as everything up to the '``:``' and returned unmodified. " +"The value is determined by stripping leading whitespace off the remainder of " +"the first line, joining all subsequent lines together, and stripping any " +"trailing carriage return or linefeed characters." +msgstr "" + +#: ../Doc/library/email.policy.rst:464 +msgid "" +"The name is returned unchanged. If the input value has a ``name`` attribute " +"and it matches *name* ignoring case, the value is returned unchanged. " +"Otherwise the *name* and *value* are passed to ``header_factory``, and the " +"resulting header object is returned as the value. In this case a " +"``ValueError`` is raised if the input value contains CR or LF characters." +msgstr "" + +#: ../Doc/library/email.policy.rst:474 +msgid "" +"If the value has a ``name`` attribute, it is returned to unmodified. " +"Otherwise the *name*, and the *value* with any CR or LF characters removed, " +"are passed to the ``header_factory``, and the resulting header object is " +"returned. Any surrogateescaped bytes get turned into the unicode unknown-" +"character glyph." +msgstr "" + +#: ../Doc/library/email.policy.rst:483 +msgid "" +"Header folding is controlled by the :attr:`refold_source` policy setting. A " +"value is considered to be a 'source value' if and only if it does not have a " +"``name`` attribute (having a ``name`` attribute means it is a header object " +"of some sort). If a source value needs to be refolded according to the " +"policy, it is converted into a header object by passing the *name* and the " +"*value* with any CR and LF characters removed to the ``header_factory``. " +"Folding of a header object is done by calling its ``fold`` method with the " +"current policy." +msgstr "" + +#: ../Doc/library/email.policy.rst:492 +msgid "" +"Source values are split into lines using :meth:`~str.splitlines`. If the " +"value is not to be refolded, the lines are rejoined using the ``linesep`` " +"from the policy and returned. The exception is lines containing non-ascii " +"binary data. In that case the value is refolded regardless of the " +"``refold_source`` setting, which causes the binary data to be CTE encoded " +"using the ``unknown-8bit`` charset." +msgstr "" + +#: ../Doc/library/email.policy.rst:502 +msgid "" +"The same as :meth:`fold` if :attr:`~Policy.cte_type` is ``7bit``, except " +"that the returned value is bytes." +msgstr "" + +#: ../Doc/library/email.policy.rst:505 +msgid "" +"If :attr:`~Policy.cte_type` is ``8bit``, non-ASCII binary data is converted " +"back into bytes. Headers with binary data are not refolded, regardless of " +"the ``refold_header`` setting, since there is no way to know whether the " +"binary data consists of single byte characters or multibyte characters." +msgstr "" + +#: ../Doc/library/email.policy.rst:512 +msgid "" +"The following instances of :class:`EmailPolicy` provide defaults suitable " +"for specific application domains. Note that in the future the behavior of " +"these instances (in particular the ``HTTP`` instance) may be adjusted to " +"conform even more closely to the RFCs relevant to their domains." +msgstr "" + +#: ../Doc/library/email.policy.rst:520 +msgid "" +"An instance of ``EmailPolicy`` with all defaults unchanged. This policy " +"uses the standard Python ``\\n`` line endings rather than the RFC-correct ``" +"\\r\\n``." +msgstr "" + +#: ../Doc/library/email.policy.rst:527 +msgid "" +"Suitable for serializing messages in conformance with the email RFCs. Like " +"``default``, but with ``linesep`` set to ``\\r\\n``, which is RFC compliant." +msgstr "" + +#: ../Doc/library/email.policy.rst:534 +msgid "" +"The same as ``SMTP`` except that :attr:`~EmailPolicy.utf8` is ``True``. " +"Useful for serializing messages to a message store without using encoded " +"words in the headers. Should only be used for SMTP transmission if the " +"sender or recipient addresses have non-ASCII characters (the :meth:`smtplib." +"SMTP.send_message` method handles this automatically)." +msgstr "" + +#: ../Doc/library/email.policy.rst:543 +msgid "" +"Suitable for serializing headers with for use in HTTP traffic. Like " +"``SMTP`` except that ``max_line_length`` is set to ``None`` (unlimited)." +msgstr "" + +#: ../Doc/library/email.policy.rst:549 +msgid "" +"Convenience instance. The same as ``default`` except that " +"``raise_on_defect`` is set to ``True``. This allows any policy to be made " +"strict by writing::" +msgstr "" + +#: ../Doc/library/email.policy.rst:556 +msgid "" +"With all of these :class:`EmailPolicies <.EmailPolicy>`, the effective API " +"of the email package is changed from the Python 3.2 API in the following " +"ways:" +msgstr "" + +#: ../Doc/library/email.policy.rst:559 +msgid "" +"Setting a header on a :class:`~email.message.Message` results in that header " +"being parsed and a header object created." +msgstr "" + +#: ../Doc/library/email.policy.rst:562 +msgid "" +"Fetching a header value from a :class:`~email.message.Message` results in " +"that header being parsed and a header object created and returned." +msgstr "" + +#: ../Doc/library/email.policy.rst:566 +msgid "" +"Any header object, or any header that is refolded due to the policy " +"settings, is folded using an algorithm that fully implements the RFC folding " +"algorithms, including knowing where encoded words are required and allowed." +msgstr "" + +#: ../Doc/library/email.policy.rst:571 +msgid "" +"From the application view, this means that any header obtained through the :" +"class:`~email.message.EmailMessage` is a header object with extra " +"attributes, whose string value is the fully decoded unicode value of the " +"header. Likewise, a header may be assigned a new value, or a new header " +"created, using a unicode string, and the policy will take care of converting " +"the unicode string into the correct RFC encoded form." +msgstr "" + +#: ../Doc/library/email.policy.rst:578 +msgid "" +"The header objects and their attributes are described in :mod:`~email." +"headerregistry`." +msgstr "" + +#: ../Doc/library/email.policy.rst:585 +msgid "" +"This concrete :class:`Policy` is the backward compatibility policy. It " +"replicates the behavior of the email package in Python 3.2. The :mod:" +"`~email.policy` module also defines an instance of this class, :const:" +"`compat32`, that is used as the default policy. Thus the default behavior " +"of the email package is to maintain compatibility with Python 3.2." +msgstr "" + +#: ../Doc/library/email.policy.rst:591 +msgid "" +"The following attributes have values that are different from the :class:" +"`Policy` default:" +msgstr "" + +#: ../Doc/library/email.policy.rst:597 +msgid "The default is ``True``." +msgstr "" + +#: ../Doc/library/email.policy.rst:614 +msgid "The name and value are returned unmodified." +msgstr "" + +#: ../Doc/library/email.policy.rst:619 +msgid "" +"If the value contains binary data, it is converted into a :class:`~email." +"header.Header` object using the ``unknown-8bit`` charset. Otherwise it is " +"returned unmodified." +msgstr "" + +#: ../Doc/library/email.policy.rst:626 +msgid "" +"Headers are folded using the :class:`~email.header.Header` folding " +"algorithm, which preserves existing line breaks in the value, and wraps each " +"resulting line to the ``max_line_length``. Non-ASCII binary data are CTE " +"encoded using the ``unknown-8bit`` charset." +msgstr "" + +#: ../Doc/library/email.policy.rst:634 +msgid "" +"Headers are folded using the :class:`~email.header.Header` folding " +"algorithm, which preserves existing line breaks in the value, and wraps each " +"resulting line to the ``max_line_length``. If ``cte_type`` is ``7bit``, non-" +"ascii binary data is CTE encoded using the ``unknown-8bit`` charset. " +"Otherwise the original source header is used, with its existing line breaks " +"and any (RFC invalid) binary data it may contain." +msgstr "" + +#: ../Doc/library/email.policy.rst:644 +msgid "" +"An instance of :class:`Compat32`, providing backward compatibility with the " +"behavior of the email package in Python 3.2." +msgstr "" + +#: ../Doc/library/email.policy.rst:649 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/email.policy.rst:650 +msgid "" +"Originally added in 3.3 as a :term:`provisional feature `." +msgstr "" diff --git a/library/email.utils.po b/library/email.utils.po new file mode 100644 index 000000000..a133c9940 --- /dev/null +++ b/library/email.utils.po @@ -0,0 +1,243 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/email.utils.rst:2 +msgid ":mod:`email.utils`: Miscellaneous utilities" +msgstr "" + +#: ../Doc/library/email.utils.rst:7 +msgid "**Source code:** :source:`Lib/email/utils.py`" +msgstr "" + +#: ../Doc/library/email.utils.rst:11 +msgid "" +"There are a couple of useful utilities provided in the :mod:`email.utils` " +"module:" +msgstr "" + +#: ../Doc/library/email.utils.rst:16 +msgid "" +"Return local time as an aware datetime object. If called without arguments, " +"return current time. Otherwise *dt* argument should be a :class:`~datetime." +"datetime` instance, and it is converted to the local time zone according to " +"the system time zone database. If *dt* is naive (that is, ``dt.tzinfo`` is " +"``None``), it is assumed to be in local time. In this case, a positive or " +"zero value for *isdst* causes ``localtime`` to presume initially that summer " +"time (for example, Daylight Saving Time) is or is not (respectively) in " +"effect for the specified time. A negative value for *isdst* causes the " +"``localtime`` to attempt to divine whether summer time is in effect for the " +"specified time." +msgstr "" + +#: ../Doc/library/email.utils.rst:32 +msgid "" +"Returns a string suitable for an :rfc:`2822`\\ -compliant :mailheader:" +"`Message-ID` header. Optional *idstring* if given, is a string used to " +"strengthen the uniqueness of the message id. Optional *domain* if given " +"provides the portion of the msgid after the '@'. The default is the local " +"hostname. It is not normally necessary to override this default, but may be " +"useful certain cases, such as a constructing distributed system that uses a " +"consistent domain name across multiple hosts." +msgstr "" + +#: ../Doc/library/email.utils.rst:40 +msgid "Added the *domain* keyword." +msgstr "" + +#: ../Doc/library/email.utils.rst:44 +msgid "" +"The remaining functions are part of the legacy (``Compat32``) email API. " +"There is no need to directly use these with the new API, since the parsing " +"and formatting they provide is done automatically by the header parsing " +"machinery of the new API." +msgstr "" + +#: ../Doc/library/email.utils.rst:52 +msgid "" +"Return a new string with backslashes in *str* replaced by two backslashes, " +"and double quotes replaced by backslash-double quote." +msgstr "" + +#: ../Doc/library/email.utils.rst:58 +msgid "" +"Return a new string which is an *unquoted* version of *str*. If *str* ends " +"and begins with double quotes, they are stripped off. Likewise if *str* " +"ends and begins with angle brackets, they are stripped off." +msgstr "" + +#: ../Doc/library/email.utils.rst:65 +msgid "" +"Parse address -- which should be the value of some address-containing field " +"such as :mailheader:`To` or :mailheader:`Cc` -- into its constituent " +"*realname* and *email address* parts. Returns a tuple of that information, " +"unless the parse fails, in which case a 2-tuple of ``('', '')`` is returned." +msgstr "" + +#: ../Doc/library/email.utils.rst:73 +msgid "" +"The inverse of :meth:`parseaddr`, this takes a 2-tuple of the form " +"``(realname, email_address)`` and returns the string value suitable for a :" +"mailheader:`To` or :mailheader:`Cc` header. If the first element of *pair* " +"is false, then the second element is returned unmodified." +msgstr "" + +#: ../Doc/library/email.utils.rst:78 +msgid "" +"Optional *charset* is the character set that will be used in the :rfc:`2047` " +"encoding of the ``realname`` if the ``realname`` contains non-ASCII " +"characters. Can be an instance of :class:`str` or a :class:`~email.charset." +"Charset`. Defaults to ``utf-8``." +msgstr "" + +#: ../Doc/library/email.utils.rst:83 +msgid "Added the *charset* option." +msgstr "" + +#: ../Doc/library/email.utils.rst:89 +msgid "" +"This method returns a list of 2-tuples of the form returned by " +"``parseaddr()``. *fieldvalues* is a sequence of header field values as might " +"be returned by :meth:`Message.get_all `. " +"Here's a simple example that gets all the recipients of a message::" +msgstr "" + +#: ../Doc/library/email.utils.rst:105 +msgid "" +"Attempts to parse a date according to the rules in :rfc:`2822`. however, " +"some mailers don't follow that format as specified, so :func:`parsedate` " +"tries to guess correctly in such cases. *date* is a string containing an :" +"rfc:`2822` date, such as ``\"Mon, 20 Nov 1995 19:12:08 -0500\"``. If it " +"succeeds in parsing the date, :func:`parsedate` returns a 9-tuple that can " +"be passed directly to :func:`time.mktime`; otherwise ``None`` will be " +"returned. Note that indexes 6, 7, and 8 of the result tuple are not usable." +msgstr "" + +#: ../Doc/library/email.utils.rst:116 +msgid "" +"Performs the same function as :func:`parsedate`, but returns either ``None`` " +"or a 10-tuple; the first 9 elements make up a tuple that can be passed " +"directly to :func:`time.mktime`, and the tenth is the offset of the date's " +"timezone from UTC (which is the official term for Greenwich Mean Time) " +"[#]_. If the input string has no timezone, the last element of the tuple " +"returned is ``None``. Note that indexes 6, 7, and 8 of the result tuple are " +"not usable." +msgstr "" + +#: ../Doc/library/email.utils.rst:126 +msgid "" +"The inverse of :func:`format_datetime`. Performs the same function as :func:" +"`parsedate`, but on success returns a :mod:`~datetime.datetime`. If the " +"input date has a timezone of ``-0000``, the ``datetime`` will be a naive " +"``datetime``, and if the date is conforming to the RFCs it will represent a " +"time in UTC but with no indication of the actual source timezone of the " +"message the date comes from. If the input date has any other valid timezone " +"offset, the ``datetime`` will be an aware ``datetime`` with the " +"corresponding a :class:`~datetime.timezone` :class:`~datetime.tzinfo`." +msgstr "" + +#: ../Doc/library/email.utils.rst:140 +msgid "" +"Turn a 10-tuple as returned by :func:`parsedate_tz` into a UTC timestamp " +"(seconds since the Epoch). If the timezone item in the tuple is ``None``, " +"assume local time." +msgstr "" + +#: ../Doc/library/email.utils.rst:147 +msgid "Returns a date string as per :rfc:`2822`, e.g.::" +msgstr "" + +#: ../Doc/library/email.utils.rst:151 +msgid "" +"Optional *timeval* if given is a floating point time value as accepted by :" +"func:`time.gmtime` and :func:`time.localtime`, otherwise the current time is " +"used." +msgstr "" + +#: ../Doc/library/email.utils.rst:155 +msgid "" +"Optional *localtime* is a flag that when ``True``, interprets *timeval*, and " +"returns a date relative to the local timezone instead of UTC, properly " +"taking daylight savings time into account. The default is ``False`` meaning " +"UTC is used." +msgstr "" + +#: ../Doc/library/email.utils.rst:160 +msgid "" +"Optional *usegmt* is a flag that when ``True``, outputs a date string with " +"the timezone as an ascii string ``GMT``, rather than a numeric ``-0000``. " +"This is needed for some protocols (such as HTTP). This only applies when " +"*localtime* is ``False``. The default is ``False``." +msgstr "" + +#: ../Doc/library/email.utils.rst:168 +msgid "" +"Like ``formatdate``, but the input is a :mod:`datetime` instance. If it is " +"a naive datetime, it is assumed to be \"UTC with no information about the " +"source timezone\", and the conventional ``-0000`` is used for the timezone. " +"If it is an aware ``datetime``, then the numeric timezone offset is used. If " +"it is an aware timezone with offset zero, then *usegmt* may be set to " +"``True``, in which case the string ``GMT`` is used instead of the numeric " +"timezone offset. This provides a way to generate standards conformant HTTP " +"date headers." +msgstr "" + +#: ../Doc/library/email.utils.rst:182 +msgid "Decode the string *s* according to :rfc:`2231`." +msgstr "" + +#: ../Doc/library/email.utils.rst:187 +msgid "" +"Encode the string *s* according to :rfc:`2231`. Optional *charset* and " +"*language*, if given is the character set name and language name to use. If " +"neither is given, *s* is returned as-is. If *charset* is given but " +"*language* is not, the string is encoded using the empty string for " +"*language*." +msgstr "" + +#: ../Doc/library/email.utils.rst:195 +msgid "" +"When a header parameter is encoded in :rfc:`2231` format, :meth:`Message." +"get_param ` may return a 3-tuple containing " +"the character set, language, and value. :func:`collapse_rfc2231_value` " +"turns this into a unicode string. Optional *errors* is passed to the " +"*errors* argument of :class:`str`'s :func:`~str.encode` method; it defaults " +"to ``'replace'``. Optional *fallback_charset* specifies the character set " +"to use if the one in the :rfc:`2231` header is not known by Python; it " +"defaults to ``'us-ascii'``." +msgstr "" + +#: ../Doc/library/email.utils.rst:204 +msgid "" +"For convenience, if the *value* passed to :func:`collapse_rfc2231_value` is " +"not a tuple, it should be a string and it is returned unquoted." +msgstr "" + +#: ../Doc/library/email.utils.rst:210 +msgid "" +"Decode parameters list according to :rfc:`2231`. *params* is a sequence of " +"2-tuples containing elements of the form ``(content-type, string-value)``." +msgstr "" + +#: ../Doc/library/email.utils.rst:215 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/email.utils.rst:216 +msgid "" +"Note that the sign of the timezone offset is the opposite of the sign of the " +"``time.timezone`` variable for the same timezone; the latter variable " +"follows the POSIX standard while this module follows :rfc:`2822`." +msgstr "" diff --git a/library/ensurepip.po b/library/ensurepip.po new file mode 100644 index 000000000..9503162db --- /dev/null +++ b/library/ensurepip.po @@ -0,0 +1,209 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2017-08-10 00:59+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/ensurepip.rst:2 +msgid ":mod:`ensurepip` --- Bootstrapping the ``pip`` installer" +msgstr "" + +#: ../Doc/library/ensurepip.rst:12 +msgid "" +"The :mod:`ensurepip` package provides support for bootstrapping the ``pip`` " +"installer into an existing Python installation or virtual environment. This " +"bootstrapping approach reflects the fact that ``pip`` is an independent " +"project with its own release cycle, and the latest available stable version " +"is bundled with maintenance and feature releases of the CPython reference " +"interpreter." +msgstr "" + +#: ../Doc/library/ensurepip.rst:19 +msgid "" +"In most cases, end users of Python shouldn't need to invoke this module " +"directly (as ``pip`` should be bootstrapped by default), but it may be " +"needed if installing ``pip`` was skipped when installing Python (or when " +"creating a virtual environment) or after explicitly uninstalling ``pip``." +msgstr "" + +#: ../Doc/library/ensurepip.rst:27 +msgid "" +"This module *does not* access the internet. All of the components needed to " +"bootstrap ``pip`` are included as internal parts of the package." +msgstr "" + +#: ../Doc/library/ensurepip.rst:34 +msgid ":ref:`installing-index`" +msgstr ":ref:`installing-index`" + +#: ../Doc/library/ensurepip.rst:34 +msgid "The end user guide for installing Python packages" +msgstr "" + +#: ../Doc/library/ensurepip.rst:36 +msgid ":pep:`453`: Explicit bootstrapping of pip in Python installations" +msgstr "" + +#: ../Doc/library/ensurepip.rst:37 +msgid "The original rationale and specification for this module." +msgstr "" + +#: ../Doc/library/ensurepip.rst:41 +msgid "Command line interface" +msgstr "" + +#: ../Doc/library/ensurepip.rst:43 +msgid "" +"The command line interface is invoked using the interpreter's ``-m`` switch." +msgstr "" + +#: ../Doc/library/ensurepip.rst:45 +msgid "The simplest possible invocation is::" +msgstr "" + +#: ../Doc/library/ensurepip.rst:49 +msgid "" +"This invocation will install ``pip`` if it is not already installed, but " +"otherwise does nothing. To ensure the installed version of ``pip`` is at " +"least as recent as the one bundled with ``ensurepip``, pass the ``--" +"upgrade`` option::" +msgstr "" + +#: ../Doc/library/ensurepip.rst:56 +msgid "" +"By default, ``pip`` is installed into the current virtual environment (if " +"one is active) or into the system site packages (if there is no active " +"virtual environment). The installation location can be controlled through " +"two additional command line options:" +msgstr "" + +#: ../Doc/library/ensurepip.rst:61 +msgid "" +"``--root ``: Installs ``pip`` relative to the given root directory " +"rather than the root of the currently active virtual environment (if any) or " +"the default root for the current Python installation." +msgstr "" + +#: ../Doc/library/ensurepip.rst:64 +msgid "" +"``--user``: Installs ``pip`` into the user site packages directory rather " +"than globally for the current Python installation (this option is not " +"permitted inside an active virtual environment)." +msgstr "" + +#: ../Doc/library/ensurepip.rst:68 +msgid "" +"By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where X.Y " +"stands for the version of Python used to invoke ``ensurepip``). The scripts " +"installed can be controlled through two additional command line options:" +msgstr "" + +#: ../Doc/library/ensurepip.rst:73 +msgid "" +"``--altinstall``: if an alternate installation is requested, the ``pipX`` " +"script will *not* be installed." +msgstr "" + +#: ../Doc/library/ensurepip.rst:77 +msgid "``--default-pip``: if a \"default pip\" installation is requested, the" +msgstr "" + +#: ../Doc/library/ensurepip.rst:77 +msgid "" +"``pip`` script will be installed in addition to the two regular scripts." +msgstr "" + +#: ../Doc/library/ensurepip.rst:79 +msgid "" +"Providing both of the script selection options will trigger an exception." +msgstr "" + +#: ../Doc/library/ensurepip.rst:83 +msgid "Module API" +msgstr "" + +#: ../Doc/library/ensurepip.rst:85 +msgid ":mod:`ensurepip` exposes two functions for programmatic use:" +msgstr "" + +#: ../Doc/library/ensurepip.rst:89 +msgid "" +"Returns a string specifying the bundled version of pip that will be " +"installed when bootstrapping an environment." +msgstr "" + +#: ../Doc/library/ensurepip.rst:96 +msgid "Bootstraps ``pip`` into the current or designated environment." +msgstr "" + +#: ../Doc/library/ensurepip.rst:98 +msgid "" +"*root* specifies an alternative root directory to install relative to. If " +"*root* is ``None``, then installation uses the default install location for " +"the current environment." +msgstr "" + +#: ../Doc/library/ensurepip.rst:102 +msgid "" +"*upgrade* indicates whether or not to upgrade an existing installation of an " +"earlier version of ``pip`` to the bundled version." +msgstr "" + +#: ../Doc/library/ensurepip.rst:105 +msgid "" +"*user* indicates whether to use the user scheme rather than installing " +"globally." +msgstr "" + +#: ../Doc/library/ensurepip.rst:108 +msgid "" +"By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where X.Y " +"stands for the current version of Python)." +msgstr "" + +#: ../Doc/library/ensurepip.rst:111 +msgid "If *altinstall* is set, then ``pipX`` will *not* be installed." +msgstr "" + +#: ../Doc/library/ensurepip.rst:113 +msgid "" +"If *default_pip* is set, then ``pip`` will be installed in addition to the " +"two regular scripts." +msgstr "" + +#: ../Doc/library/ensurepip.rst:116 +msgid "" +"Setting both *altinstall* and *default_pip* will trigger :exc:`ValueError`." +msgstr "" + +#: ../Doc/library/ensurepip.rst:119 +msgid "" +"*verbosity* controls the level of output to :data:`sys.stdout` from the " +"bootstrapping operation." +msgstr "" + +#: ../Doc/library/ensurepip.rst:124 +msgid "" +"The bootstrapping process has side effects on both ``sys.path`` and ``os." +"environ``. Invoking the command line interface in a subprocess instead " +"allows these side effects to be avoided." +msgstr "" + +#: ../Doc/library/ensurepip.rst:130 +msgid "" +"The bootstrapping process may install additional modules required by " +"``pip``, but other software should not assume those dependencies will always " +"be present by default (as the dependencies may be removed in a future " +"version of ``pip``)." +msgstr "" diff --git a/library/enum.po b/library/enum.po new file mode 100644 index 000000000..7131f5378 --- /dev/null +++ b/library/enum.po @@ -0,0 +1,1290 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2019-07-26 19:08+0200\n" +"Last-Translator: Antoine Wecxsteen\n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/library/enum.rst:2 +msgid ":mod:`enum` --- Support for enumerations" +msgstr ":mod:`enum` — Énumerations" + +#: ../Doc/library/enum.rst:14 +msgid "**Source code:** :source:`Lib/enum.py`" +msgstr "**Code source :** :source:`Lib/enum.py`" + +#: ../Doc/library/enum.rst:18 +msgid "" +"An enumeration is a set of symbolic names (members) bound to unique, " +"constant values. Within an enumeration, the members can be compared by " +"identity, and the enumeration itself can be iterated over." +msgstr "" +"Une énumération est un ensemble de noms symboliques, appelés *membres*, liés " +"à des valeurs constantes et uniques. Au sein d'une énumération, les membres " +"peuvent être comparés entre eux et il est possible d'itérer sur " +"l'énumération elle-même." + +#: ../Doc/library/enum.rst:24 +msgid "Module Contents" +msgstr "Contenu du module" + +#: ../Doc/library/enum.rst:26 +msgid "" +"This module defines four enumeration classes that can be used to define " +"unique sets of names and values: :class:`Enum`, :class:`IntEnum`, :class:" +"`Flag`, and :class:`IntFlag`. It also defines one decorator, :func:" +"`unique`, and one helper, :class:`auto`." +msgstr "" +"Ce module définit quatre classes d'énumération qui permettent de définir des " +"ensembles uniques de noms et de valeurs : :class:`Enum`, :class:`IntEnum`, :" +"class:`Flag` et :class:`IntFlag`. Il fournit également un décorateur, :func:" +"`unique`, ainsi qu'une classe utilitaire, :class:`auto`." + +#: ../Doc/library/enum.rst:33 +msgid "" +"Base class for creating enumerated constants. See section `Functional API`_ " +"for an alternate construction syntax." +msgstr "" +"Classe de base pour créer une énumération de constantes. Voir la section " +"`API par fonction`_ pour une syntaxe alternative de construction." + +#: ../Doc/library/enum.rst:38 +msgid "" +"Base class for creating enumerated constants that are also subclasses of :" +"class:`int`." +msgstr "" +"Classe de base pour créer une énumération de constantes qui sont également " +"des sous-classes de :class:`int`." + +#: ../Doc/library/enum.rst:43 +msgid "" +"Base class for creating enumerated constants that can be combined using the " +"bitwise operators without losing their :class:`IntFlag` membership. :class:" +"`IntFlag` members are also subclasses of :class:`int`." +msgstr "" +"Classe de base pour créer une énumération de constantes pouvant être " +"combinées avec des opérateurs de comparaison bit-à-bit, sans perdre leur " +"qualité de :class:`IntFlag`. Les membres de :class:`IntFlag` sont aussi des " +"sous-classes de :class:`int`." + +#: ../Doc/library/enum.rst:49 +msgid "" +"Base class for creating enumerated constants that can be combined using the " +"bitwise operations without losing their :class:`Flag` membership." +msgstr "" +"Classe de base pour créer une énumération de constantes pouvant être " +"combinées avec des opérateurs de comparaison bit-à-bit, sans perdre leur " +"qualité de :class:`Flag`." + +#: ../Doc/library/enum.rst:54 +msgid "" +"Enum class decorator that ensures only one name is bound to any one value." +msgstr "" +"Décorateur de classe qui garantit qu'une valeur ne puisse être associée qu'à " +"un seul nom." + +#: ../Doc/library/enum.rst:58 +msgid "Instances are replaced with an appropriate value for Enum members." +msgstr "" +"Les instances de cette classe remplacent les membres d'une *Enum* par une " +"valeur appropriée." + +#: ../Doc/library/enum.rst:60 +msgid "``Flag``, ``IntFlag``, ``auto``" +msgstr "``Flag``, ``IntFlag``, ``auto``" + +#: ../Doc/library/enum.rst:64 +msgid "Creating an Enum" +msgstr "Création d'une *Enum*" + +#: ../Doc/library/enum.rst:66 +msgid "" +"Enumerations are created using the :keyword:`class` syntax, which makes them " +"easy to read and write. An alternative creation method is described in " +"`Functional API`_. To define an enumeration, subclass :class:`Enum` as " +"follows::" +msgstr "" +"Une énumération est créée comme une :keyword:`class`, ce qui la rend facile " +"à lire et à écrire. Une autre méthode de création est décrite dans `API par " +"fonction`_. Pour définir une énumération, il faut hériter de :class:`Enum` " +"de la manière suivante ::" + +#: ../Doc/library/enum.rst:78 +msgid "Enum member values" +msgstr "Valeurs des membres d'une *Enum*" + +#: ../Doc/library/enum.rst:80 +msgid "" +"Member values can be anything: :class:`int`, :class:`str`, etc.. If the " +"exact value is unimportant you may use :class:`auto` instances and an " +"appropriate value will be chosen for you. Care must be taken if you mix :" +"class:`auto` with other values." +msgstr "" +"La valeur d'un membre peut être de n'importe quel type : :class:`int`, :" +"class:`str`, etc. Si la valeur exacte n'a pas d'importance, utilisez des " +"instances de :class:`auto` et une valeur appropriée sera choisie pour vous. " +"Soyez vigilant si vous mélangez :class:`auto` avec d'autres valeurs." + +#: ../Doc/library/enum.rst:85 +msgid "Nomenclature" +msgstr "Nomenclature" + +#: ../Doc/library/enum.rst:87 +msgid "The class :class:`Color` is an *enumeration* (or *enum*)" +msgstr "La classe :class:`Color` est une *énumération* (ou un *enum*)." + +#: ../Doc/library/enum.rst:88 +msgid "" +"The attributes :attr:`Color.RED`, :attr:`Color.GREEN`, etc., are " +"*enumeration members* (or *enum members*) and are functionally constants." +msgstr "" +"Les attributs :attr:`Color.RED`, :attr:`Color.GREEN`, etc., sont les " +"*membres de l'énumération* (ou les *membres de l'enum*) et sont " +"fonctionnellement des constantes." + +#: ../Doc/library/enum.rst:90 +msgid "" +"The enum members have *names* and *values* (the name of :attr:`Color.RED` is " +"``RED``, the value of :attr:`Color.BLUE` is ``3``, etc.)" +msgstr "" +"Les membres de *l'enum* ont chacun un *nom* et une *valeur* ; le nom de :" +"attr:`Color.RED` est ``RED``, la valeur de :attr:`Color.BLUE` est ``3``, etc." + +#: ../Doc/library/enum.rst:96 +msgid "" +"Even though we use the :keyword:`class` syntax to create Enums, Enums are " +"not normal Python classes. See `How are Enums different?`_ for more details." +msgstr "" +"Même si on utilise la syntaxe en :keyword:`class` pour créer des " +"énumérations, les *Enums* ne sont pas des vraies classes Python. Voir `En " +"quoi les Enums sont différentes ?`_ pour plus de détails." + +#: ../Doc/library/enum.rst:100 +msgid "Enumeration members have human readable string representations::" +msgstr "" +"Les membres d'une énumération ont une représentation en chaîne de caractères " +"compréhensible par un humain ::" + +#: ../Doc/library/enum.rst:105 +msgid "...while their ``repr`` has more information::" +msgstr "… tandis que leur ``repr`` contient plus d'informations ::" + +#: ../Doc/library/enum.rst:110 +msgid "The *type* of an enumeration member is the enumeration it belongs to::" +msgstr "Le *type* d'un membre est l'énumération auquel ce membre appartient ::" + +#: ../Doc/library/enum.rst:118 +msgid "Enum members also have a property that contains just their item name::" +msgstr "Les membres ont également un attribut qui contient leur nom ::" + +#: ../Doc/library/enum.rst:123 +msgid "Enumerations support iteration, in definition order::" +msgstr "" +"Les énumérations sont itérables, l'ordre d'itération est celui dans lequel " +"les membres sont déclarés ::" + +#: ../Doc/library/enum.rst:139 +msgid "" +"Enumeration members are hashable, so they can be used in dictionaries and " +"sets::" +msgstr "" +"Les membres d'une énumération sont hachables, ils peuvent ainsi être " +"utilisés dans des dictionnaires ou des ensembles ::" + +#: ../Doc/library/enum.rst:149 +msgid "Programmatic access to enumeration members and their attributes" +msgstr "Accès dynamique aux membres et à leurs attributs" + +#: ../Doc/library/enum.rst:151 +msgid "" +"Sometimes it's useful to access members in enumerations programmatically (i." +"e. situations where ``Color.RED`` won't do because the exact color is not " +"known at program-writing time). ``Enum`` allows such access::" +msgstr "" +"Il est parfois utile de pouvoir accéder dynamiquement aux membres d'une " +"énumération (p. ex. dans des situations où il ne suffit pas d'utiliser " +"``Color.RED`` car la couleur précise n'est pas connue à l'écriture du " +"programme). ``Enum`` permet de tels accès ::" + +#: ../Doc/library/enum.rst:160 +msgid "If you want to access enum members by *name*, use item access::" +msgstr "" +"Pour accéder aux membres par leur *nom*, utilisez l'accès par indexation ::" + +#: ../Doc/library/enum.rst:167 +msgid "If you have an enum member and need its :attr:`name` or :attr:`value`::" +msgstr "Pour obtenir l'attribut :attr:`name` ou :attr:`value` d'un membre ::" + +#: ../Doc/library/enum.rst:177 +msgid "Duplicating enum members and values" +msgstr "Duplication de membres et de valeurs" + +#: ../Doc/library/enum.rst:179 +msgid "Having two enum members with the same name is invalid::" +msgstr "" +"Il n'est pas possible d'avoir deux membres du même nom dans un *enum* ::" + +#: ../Doc/library/enum.rst:189 +msgid "" +"However, two enum members are allowed to have the same value. Given two " +"members A and B with the same value (and A defined first), B is an alias to " +"A. By-value lookup of the value of A and B will return A. By-name lookup " +"of B will also return A::" +msgstr "" +"Cependant deux membres peuvent avoir la même valeur. Si deux membres A et B " +"ont la même valeur (et que A est défini en premier), B sera un alias de A. " +"Un accès par valeur avec la valeur commune à A et B renverra A. Un accès à B " +"par nom renverra aussi A ::" + +#: ../Doc/library/enum.rst:209 +msgid "" +"Attempting to create a member with the same name as an already defined " +"attribute (another member, a method, etc.) or attempting to create an " +"attribute with the same name as a member is not allowed." +msgstr "" +"Il est interdit de créer un membre avec le même nom qu'un attribut déjà " +"défini (un autre membre, une méthode, etc.) ou de créer un attribut avec le " +"nom d'un membre." + +#: ../Doc/library/enum.rst:215 +msgid "Ensuring unique enumeration values" +msgstr "Coercition d'unicité des valeurs d'une énumération" + +#: ../Doc/library/enum.rst:217 +msgid "" +"By default, enumerations allow multiple names as aliases for the same value. " +"When this behavior isn't desired, the following decorator can be used to " +"ensure each value is used only once in the enumeration:" +msgstr "" +"Par défaut, les énumérations autorisent les alias de nom pour une même " +"valeur. Quand ce comportement n'est pas désiré, il faut utiliser le " +"décorateur suivant pour s'assurer que chaque valeur n'est utilisée qu'une " +"seule fois au sein de l'énumération : ::" + +#: ../Doc/library/enum.rst:223 +msgid "" +"A :keyword:`class` decorator specifically for enumerations. It searches an " +"enumeration's :attr:`__members__` gathering any aliases it finds; if any are " +"found :exc:`ValueError` is raised with the details::" +msgstr "" +"Un décorateur de :keyword:`class` spécifique aux énumérations. Il examine " +"l'attribut :attr:`__members__` d'une énumération et recherche des alias ; " +"s'il en trouve, l'exception :exc:`ValueError` est levée avec des détails ::" + +#: ../Doc/library/enum.rst:241 +msgid "Using automatic values" +msgstr "Valeurs automatiques" + +#: ../Doc/library/enum.rst:243 +msgid "If the exact value is unimportant you can use :class:`auto`::" +msgstr "" +"Si la valeur exacte n'a pas d'importance, vous pouvez utiliser :class:" +"`auto` ::" + +#: ../Doc/library/enum.rst:254 +msgid "" +"The values are chosen by :func:`_generate_next_value_`, which can be " +"overridden::" +msgstr "" +"Les valeurs sont déterminées par :func:`_generate_next_value_`, qui peut " +"être redéfinie ::" + +#: ../Doc/library/enum.rst:272 +msgid "" +"The goal of the default :meth:`_generate_next_value_` methods is to provide " +"the next :class:`int` in sequence with the last :class:`int` provided, but " +"the way it does this is an implementation detail and may change." +msgstr "" +"La méthode par défaut :meth:`_generate_next_value_` doit fournir le :class:" +"`int` suivant de la séquence en fonction du dernier :class:`int` fourni, " +"mais la séquence générée dépend de l'implémentation Python." + +#: ../Doc/library/enum.rst:277 +msgid "Iteration" +msgstr "Itération" + +#: ../Doc/library/enum.rst:279 +msgid "Iterating over the members of an enum does not provide the aliases::" +msgstr "Itérer sur les membres d'une énumération ne parcourt pas les alias ::" + +#: ../Doc/library/enum.rst:284 +msgid "" +"The special attribute ``__members__`` is an ordered dictionary mapping names " +"to members. It includes all names defined in the enumeration, including the " +"aliases::" +msgstr "" +"L'attribut spécial ``__members__`` est un dictionnaire ordonné qui fait " +"correspondre les noms aux membres. Il inclut tous les noms définis dans " +"l'énumération, alias compris : ::" + +#: ../Doc/library/enum.rst:296 +msgid "" +"The ``__members__`` attribute can be used for detailed programmatic access " +"to the enumeration members. For example, finding all the aliases::" +msgstr "" +"L'attribut ``__members__`` peut servir à accéder dynamiquement aux membres " +"de l'énumération. Par exemple, pour trouver tous les alias ::" + +#: ../Doc/library/enum.rst:304 +msgid "Comparisons" +msgstr "Comparaisons" + +#: ../Doc/library/enum.rst:306 +msgid "Enumeration members are compared by identity::" +msgstr "Les membres d'une énumération sont comparés par identité ::" + +#: ../Doc/library/enum.rst:315 +msgid "" +"Ordered comparisons between enumeration values are *not* supported. Enum " +"members are not integers (but see `IntEnum`_ below)::" +msgstr "" +"Les comparaisons d'ordre entre les valeurs d'une énumération n'existent " +"*pas* ; les membres d'un *enum* ne sont pas des entiers (voir cependant " +"`IntEnum`_ ci-dessous) ::" + +#: ../Doc/library/enum.rst:323 +msgid "Equality comparisons are defined though::" +msgstr "A contrario, les comparaisons d'égalité existent ::" + +#: ../Doc/library/enum.rst:332 +msgid "" +"Comparisons against non-enumeration values will always compare not equal " +"(again, :class:`IntEnum` was explicitly designed to behave differently, see " +"below)::" +msgstr "" +"Les comparaisons avec des valeurs ne provenant pas d'énumérations sont " +"toujours fausses (ici encore, :class:`IntEnum` a été conçue pour fonctionner " +"différemment, voir ci-dessous) ::" + +#: ../Doc/library/enum.rst:341 +msgid "Allowed members and attributes of enumerations" +msgstr "Membres et attributs autorisés dans une énumération" + +#: ../Doc/library/enum.rst:343 +msgid "" +"The examples above use integers for enumeration values. Using integers is " +"short and handy (and provided by default by the `Functional API`_), but not " +"strictly enforced. In the vast majority of use-cases, one doesn't care what " +"the actual value of an enumeration is. But if the value *is* important, " +"enumerations can have arbitrary values." +msgstr "" +"Les exemples précédents utilisent des entiers pour énumérer les valeurs. " +"C'est un choix concis et pratique (et implémenté par défaut dans l'`API par " +"fonction`_), mais ce n'est pas une obligation. Dans la majorité des cas, il " +"importe peu de connaître la valeur réelle d'une énumération. Il est " +"toutefois possible de donner une valeur arbitraire aux énumérations, si " +"cette valeur est *vraiment* significative." + +#: ../Doc/library/enum.rst:349 +msgid "" +"Enumerations are Python classes, and can have methods and special methods as " +"usual. If we have this enumeration::" +msgstr "" +"Les énumérations sont des classes Python et peuvent donc avoir des méthodes " +"et des méthodes spéciales. L'énumération suivante ::" + +#: ../Doc/library/enum.rst:369 +msgid "Then::" +msgstr "amène ::" + +#: ../Doc/library/enum.rst:378 +msgid "" +"The rules for what is allowed are as follows: names that start and end with " +"a single underscore are reserved by enum and cannot be used; all other " +"attributes defined within an enumeration will become members of this " +"enumeration, with the exception of special methods (:meth:`__str__`, :meth:" +"`__add__`, etc.), descriptors (methods are also descriptors), and variable " +"names listed in :attr:`_ignore_`." +msgstr "" +"Les règles pour ce qui est autorisé sont les suivantes : les noms qui " +"commencent et finissent avec un seul tiret bas sont réservés par *enum* et " +"ne peuvent pas être utilisés ; tous les autres attributs définis dans " +"l'énumération en deviendront des membres, à l'exception des méthodes " +"spéciales (:meth:`__str__`, :meth:`__add__`, etc.), des descripteurs (les " +"méthodes sont aussi des descripteurs) et des noms de variable listés dans :" +"attr:`_ignore_`." + +#: ../Doc/library/enum.rst:385 +msgid "" +"Note: if your enumeration defines :meth:`__new__` and/or :meth:`__init__` " +"then whatever value(s) were given to the enum member will be passed into " +"those methods. See `Planet`_ for an example." +msgstr "" +"Remarque : si l'énumération définit :meth:`__new__` ou :meth:`__init__`, " +"alors la (ou les) valeur affectée au membre sera passée à ces méthodes. Voir " +"l'exemple de `Planet`_." + +#: ../Doc/library/enum.rst:391 +msgid "Restricted Enum subclassing" +msgstr "Restrictions sur l'héritage" + +#: ../Doc/library/enum.rst:393 +msgid "" +"A new :class:`Enum` class must have one base Enum class, up to one concrete " +"data type, and as many :class:`object`-based mixin classes as needed. The " +"order of these base classes is::" +msgstr "" +"Une nouvelle classe :class:`Enum` doit avoir une classe *Enum* de base, au " +"plus un type de données concret et autant de classes de mélange (basées sur :" +"class:`object`) que nécessaire. L'ordre de ces classes de base est le " +"suivant ::" + +#: ../Doc/library/enum.rst:400 +msgid "" +"Also, subclassing an enumeration is allowed only if the enumeration does not " +"define any members. So this is forbidden::" +msgstr "" +"Hériter d'une énumération n'est permis que si cette énumération ne définit " +"aucun membre. Le code suivant n'est pas autorisé ::" + +#: ../Doc/library/enum.rst:410 +msgid "But this is allowed::" +msgstr "Mais celui-ci est correct ::" + +#: ../Doc/library/enum.rst:421 +msgid "" +"Allowing subclassing of enums that define members would lead to a violation " +"of some important invariants of types and instances. On the other hand, it " +"makes sense to allow sharing some common behavior between a group of " +"enumerations. (See `OrderedEnum`_ for an example.)" +msgstr "" +"Autoriser l'héritage d'*enums* définissant des membres violerait des " +"invariants sur les types et les instances. D'un autre côté, il est logique " +"d'autoriser un groupe d'énumérations à partager un comportement commun (voir " +"par exemple `OrderedEnum`_)." + +#: ../Doc/library/enum.rst:428 +msgid "Pickling" +msgstr "Sérialisation" + +#: ../Doc/library/enum.rst:430 +msgid "Enumerations can be pickled and unpickled::" +msgstr "Les énumérations peuvent être sérialisées et déserialisées ::" + +#: ../Doc/library/enum.rst:437 +msgid "" +"The usual restrictions for pickling apply: picklable enums must be defined " +"in the top level of a module, since unpickling requires them to be " +"importable from that module." +msgstr "" +"Les restrictions habituelles de sérialisation s'appliquent : les *enums* à " +"sérialiser doivent être déclarés dans l'espace de nom de haut niveau du " +"module car la déserialisation nécessite que ces *enums* puissent être " +"importés depuis ce module." + +#: ../Doc/library/enum.rst:443 +msgid "" +"With pickle protocol version 4 it is possible to easily pickle enums nested " +"in other classes." +msgstr "" +"Depuis la version 4 du protocole de *pickle*, il est possible de sérialiser " +"facilement des *enums* imbriqués dans d'autres classes." + +#: ../Doc/library/enum.rst:446 +msgid "" +"It is possible to modify how Enum members are pickled/unpickled by defining :" +"meth:`__reduce_ex__` in the enumeration class." +msgstr "" +"Redéfinir la méthode :meth:`__reduce_ex__` permet de modifier la " +"sérialisation ou la dé-sérialisation des membres d'une énumération." + +#: ../Doc/library/enum.rst:451 +msgid "Functional API" +msgstr "API par fonction" + +#: ../Doc/library/enum.rst:453 +msgid "" +"The :class:`Enum` class is callable, providing the following functional API::" +msgstr "" +"La :class:`Enum` est appelable et implémente l'API par fonction suivante ::" + +#: ../Doc/library/enum.rst:465 +msgid "" +"The semantics of this API resemble :class:`~collections.namedtuple`. The " +"first argument of the call to :class:`Enum` is the name of the enumeration." +msgstr "" +"La sémantique de cette API est similaire à :class:`~collections.namedtuple`. " +"Le premier argument de l'appel à :class:`Enum` est le nom de l'énumération." + +#: ../Doc/library/enum.rst:468 +msgid "" +"The second argument is the *source* of enumeration member names. It can be " +"a whitespace-separated string of names, a sequence of names, a sequence of 2-" +"tuples with key/value pairs, or a mapping (e.g. dictionary) of names to " +"values. The last two options enable assigning arbitrary values to " +"enumerations; the others auto-assign increasing integers starting with 1 " +"(use the ``start`` parameter to specify a different starting value). A new " +"class derived from :class:`Enum` is returned. In other words, the above " +"assignment to :class:`Animal` is equivalent to::" +msgstr "" +"Le second argument est la *source* des noms des membres de l'énumération. Il " +"peut être une chaîne de caractères contenant les noms séparés par des " +"espaces, une séquence de noms, une séquence de couples clé / valeur ou un " +"dictionnaire (p. ex. un *dict*) de valeurs indexées par des noms. Les deux " +"dernières options permettent d'affecter des valeurs arbitraires aux " +"énumérations ; les autres affectent automatiquement des entiers en " +"commençant par 1 (le paramètre ``start`` permet de changer la valeur de " +"départ). Ceci renvoie une nouvelle classe dérivée de :class:`Enum`. En " +"d'autres termes, la déclaration de :class:`Animal` ci-dessus équivaut à ::" + +#: ../Doc/library/enum.rst:484 +msgid "" +"The reason for defaulting to ``1`` as the starting number and not ``0`` is " +"that ``0`` is ``False`` in a boolean sense, but enum members all evaluate to " +"``True``." +msgstr "" +"La valeur de départ par défaut est ``1`` et non ``0`` car ``0`` au sens " +"booléen vaut ``False`` alors que tous les membres d'une *enum* valent " +"``True``." + +#: ../Doc/library/enum.rst:488 +msgid "" +"Pickling enums created with the functional API can be tricky as frame stack " +"implementation details are used to try and figure out which module the " +"enumeration is being created in (e.g. it will fail if you use a utility " +"function in separate module, and also may not work on IronPython or Jython). " +"The solution is to specify the module name explicitly as follows::" +msgstr "" +"La sérialisation d'énumérations créées avec l'API en fonction peut être " +"source de problèmes, car celle-ci repose sur des détails d'implémentation de " +"l'affichage de la pile d'appel pour tenter de déterminer dans quel module " +"l'énumération est créée (p. ex. elle échouera avec les fonctions utilitaires " +"provenant d'un module séparé et peut ne pas fonctionner avec IronPython ou " +"Jython). La solution consiste à préciser explicitement le nom du module " +"comme ceci ::" + +#: ../Doc/library/enum.rst:498 +msgid "" +"If ``module`` is not supplied, and Enum cannot determine what it is, the new " +"Enum members will not be unpicklable; to keep errors closer to the source, " +"pickling will be disabled." +msgstr "" +"Si ``module`` n'est pas fourni et que *Enum* ne peut pas le deviner, les " +"nouveaux membres de *l'Enum* ne seront pas déserialisables ; pour garder les " +"erreurs au plus près de leur origine, la sérialisation sera désactivée." + +#: ../Doc/library/enum.rst:502 +msgid "" +"The new pickle protocol 4 also, in some circumstances, relies on :attr:" +"`~definition.__qualname__` being set to the location where pickle will be " +"able to find the class. For example, if the class was made available in " +"class SomeData in the global scope::" +msgstr "" +"Le nouveau protocole version 4 de *pickle* se base lui aussi, dans certains " +"cas, sur le fait que :attr:`~definition.__qualname__` pointe sur l'endroit " +"où *pickle* peut trouver la classe. Par exemple, si la classe était " +"disponible depuis la classe *SomeData* dans l'espace de nom de plus haut " +"niveau ::" + +#: ../Doc/library/enum.rst:509 +msgid "The complete signature is::" +msgstr "La signature complète est la suivante ::" + +#: ../Doc/library/enum.rst:0 +msgid "value" +msgstr "value" + +#: ../Doc/library/enum.rst:513 +msgid "What the new Enum class will record as its name." +msgstr "Le nom de la la nouvelle classe *Enum*." + +#: ../Doc/library/enum.rst:0 +msgid "names" +msgstr "names" + +#: ../Doc/library/enum.rst:515 +msgid "" +"The Enum members. This can be a whitespace or comma separated string " +"(values will start at 1 unless otherwise specified)::" +msgstr "" +"Les membres de l'énumération. Une chaîne de caractères séparés par des " +"espaces ou des virgules (la valeur de départ est fixée à 1, sauf si " +"spécifiée autrement) ::" + +#: ../Doc/library/enum.rst:520 +msgid "or an iterator of names::" +msgstr "ou un itérateur sur les noms ::" + +#: ../Doc/library/enum.rst:524 +msgid "or an iterator of (name, value) pairs::" +msgstr "ou un itérateur sur les tuples (nom, valeur) ::" + +#: ../Doc/library/enum.rst:528 +msgid "or a mapping::" +msgstr "ou une correspondance ::" + +#: ../Doc/library/enum.rst:0 +msgid "module" +msgstr "module" + +#: ../Doc/library/enum.rst:532 +msgid "name of module where new Enum class can be found." +msgstr "nom du module dans lequel la classe *Enum* se trouve." + +#: ../Doc/library/enum.rst:0 +msgid "qualname" +msgstr "qualname" + +#: ../Doc/library/enum.rst:534 +msgid "where in module new Enum class can be found." +msgstr "localisation de la nouvelle classe *Enum* dans le module." + +#: ../Doc/library/enum.rst:0 +msgid "type" +msgstr "type" + +#: ../Doc/library/enum.rst:536 +msgid "type to mix in to new Enum class." +msgstr "le type à mélanger dans la nouvelle classe *Enum*." + +#: ../Doc/library/enum.rst:0 +msgid "start" +msgstr "start" + +#: ../Doc/library/enum.rst:538 +msgid "number to start counting at if only names are passed in." +msgstr "index de départ si uniquement des noms sont passés." + +#: ../Doc/library/enum.rst:540 +msgid "The *start* parameter was added." +msgstr "Ajout du paramètre *start*." + +#: ../Doc/library/enum.rst:545 +msgid "Derived Enumerations" +msgstr "Énumérations dérivées" + +#: ../Doc/library/enum.rst:548 +msgid "IntEnum" +msgstr "IntEnum" + +#: ../Doc/library/enum.rst:550 +msgid "" +"The first variation of :class:`Enum` that is provided is also a subclass of :" +"class:`int`. Members of an :class:`IntEnum` can be compared to integers; by " +"extension, integer enumerations of different types can also be compared to " +"each other::" +msgstr "" +"La première version dérivée de :class:`Enum` qui existe est aussi une sous-" +"classe de :class:`int`. Les membres de :class:`IntEnum` peuvent être " +"comparés à des entiers et, par extension, les comparaisons entre des " +"énumérations entières de type différent sont possibles ::" + +#: ../Doc/library/enum.rst:571 +msgid "" +"However, they still can't be compared to standard :class:`Enum` " +"enumerations::" +msgstr "" +"Elles ne peuvent cependant toujours pas être comparées à des énumérations " +"standards de :class:`Enum` ::" + +#: ../Doc/library/enum.rst:584 +msgid "" +":class:`IntEnum` values behave like integers in other ways you'd expect::" +msgstr "" +"Les valeurs de :class:`IntEnum` se comportent comme des entiers, comme on " +"pouvait s'y attendre ::" + +#: ../Doc/library/enum.rst:595 +msgid "IntFlag" +msgstr "IntFlag" + +#: ../Doc/library/enum.rst:597 +msgid "" +"The next variation of :class:`Enum` provided, :class:`IntFlag`, is also " +"based on :class:`int`. The difference being :class:`IntFlag` members can be " +"combined using the bitwise operators (&, \\|, ^, ~) and the result is still " +"an :class:`IntFlag` member. However, as the name implies, :class:`IntFlag` " +"members also subclass :class:`int` and can be used wherever an :class:`int` " +"is used. Any operation on an :class:`IntFlag` member besides the bit-wise " +"operations will lose the :class:`IntFlag` membership." +msgstr "" +"La version dérivée suivante de :class:`Enum` est :class:`IntFlag`. Elle est " +"aussi basée sur :class:`int`, à la différence près que les membres de :class:" +"`IntFlag` peuvent être combinés en utilisant les opérateurs bit-à-bit (&, " +"\\|, ^, ~) et que le résultat reste un membre de :class:`IntFlag`. " +"Cependant, comme le nom l'indique, les membres d'une classe :class:`IntFlag` " +"héritent aussi de :class:`int` et peuvent être utilisés là où un :class:" +"`int` est utilisé. Toute opération sur un membre d'une classe :class:" +"`IntFlag`, autre qu'un opérateur bit-à-bit lui fait perdre sa qualité de :" +"class:`IntFlag`." + +#: ../Doc/library/enum.rst:607 +msgid "Sample :class:`IntFlag` class::" +msgstr "Exemple d'une classe :class:`IntFlag` ::" + +#: ../Doc/library/enum.rst:623 +msgid "It is also possible to name the combinations::" +msgstr "Il est aussi possible de nommer les combinaisons ::" + +#: ../Doc/library/enum.rst:635 +msgid "" +"Another important difference between :class:`IntFlag` and :class:`Enum` is " +"that if no flags are set (the value is 0), its boolean evaluation is :data:" +"`False`::" +msgstr "" +"Une autre différence importante entre :class:`IntFlag` et :class:`Enum` est " +"que, si aucune option n'est activée (la valeur vaut 0), son évaluation " +"booléenne est :data:`False` ::" + +#: ../Doc/library/enum.rst:643 +msgid "" +"Because :class:`IntFlag` members are also subclasses of :class:`int` they " +"can be combined with them::" +msgstr "" +"Comme les membres d'une classe :class:`IntFlag` héritent aussi de :class:" +"`int`, ils peuvent être combinés avec eux ::" + +#: ../Doc/library/enum.rst:651 +msgid "Flag" +msgstr "Option" + +#: ../Doc/library/enum.rst:653 +msgid "" +"The last variation is :class:`Flag`. Like :class:`IntFlag`, :class:`Flag` " +"members can be combined using the bitwise operators (&, \\|, ^, ~). Unlike :" +"class:`IntFlag`, they cannot be combined with, nor compared against, any " +"other :class:`Flag` enumeration, nor :class:`int`. While it is possible to " +"specify the values directly it is recommended to use :class:`auto` as the " +"value and let :class:`Flag` select an appropriate value." +msgstr "" +"La dernière version dérivée est la classe :class:`Flag`. Comme :class:" +"`IntFlag`, les membres d'une classe :class:`Flag` peuvent être combinés en " +"utilisant les opérateurs de comparaison bit-à-bit. Cependant, à la " +"différence de :class:`IntFlag`, ils ne peuvent ni être combinés, ni être " +"comparés avec une autre énumération :class:`Flag`, ni avec :class:`int`. " +"Bien qu'il soit possible de définir directement les valeurs, il est " +"recommandé d'utiliser :class:`auto` comme valeur et de laisser :class:`Flag` " +"choisir une valeur appropriée." + +#: ../Doc/library/enum.rst:662 +msgid "" +"Like :class:`IntFlag`, if a combination of :class:`Flag` members results in " +"no flags being set, the boolean evaluation is :data:`False`::" +msgstr "" +"Comme avec :class:`IntFlag`, si une combinaison de membres d'une classe :" +"class:`Flag` n'active aucune option, l'évaluation booléenne de la " +"comparaison est :data:`False` ::" + +#: ../Doc/library/enum.rst:676 +msgid "" +"Individual flags should have values that are powers of two (1, 2, 4, " +"8, ...), while combinations of flags won't::" +msgstr "" +"Les options de base doivent avoir des puissances de deux pour valeurs (1, 2, " +"4, 8, ...) mais pas les combinaisons ::" + +#: ../Doc/library/enum.rst:688 +msgid "" +"Giving a name to the \"no flags set\" condition does not change its boolean " +"value::" +msgstr "" +"Donner un nom à la valeur « aucune option activée » ne change pas sa valeur " +"booléenne ::" + +#: ../Doc/library/enum.rst:704 +msgid "" +"For the majority of new code, :class:`Enum` and :class:`Flag` are strongly " +"recommended, since :class:`IntEnum` and :class:`IntFlag` break some semantic " +"promises of an enumeration (by being comparable to integers, and thus by " +"transitivity to other unrelated enumerations). :class:`IntEnum` and :class:" +"`IntFlag` should be used only in cases where :class:`Enum` and :class:`Flag` " +"will not do; for example, when integer constants are replaced with " +"enumerations, or for interoperability with other systems." +msgstr "" +"Dans la plupart des cas, il est fortement recommandé d'utiliser :class:" +"`Enum` et :class:`Flag` pour écrire du code nouveau, car :class:`IntEnum` " +"et :class:`IntFlag` violent certains principes sémantiques d'une énumération " +"(en pouvant être comparées à des entiers et donc, par transitivité, à " +"d'autres énumérations). :class:`IntEnum` et :class:`IntFlag` ne doivent être " +"utilisées que dans les cas où :class:`Enum` et :class:`Flag` ne suffisent " +"pas ; par exemple quand des constantes entières sont remplacées par des " +"énumérations, ou pour l’interopérabilité avec d'autres systèmes." + +#: ../Doc/library/enum.rst:714 +msgid "Others" +msgstr "Autres" + +#: ../Doc/library/enum.rst:716 +msgid "" +"While :class:`IntEnum` is part of the :mod:`enum` module, it would be very " +"simple to implement independently::" +msgstr "" +"Bien que :class:`IntEnum` fasse partie du module :mod:`enum`, elle serait " +"très simple à implémenter hors de ce module ::" + +#: ../Doc/library/enum.rst:722 +msgid "" +"This demonstrates how similar derived enumerations can be defined; for " +"example a :class:`StrEnum` that mixes in :class:`str` instead of :class:" +"`int`." +msgstr "" +"Ceci montre comment définir des énumérations dérivées similaires ; par " +"exemple une classe :class:`StrEnum` qui dériverait de :class:`str` au lieu " +"de :class:`int`." + +#: ../Doc/library/enum.rst:725 +msgid "Some rules:" +msgstr "Quelques règles :" + +#: ../Doc/library/enum.rst:727 +msgid "" +"When subclassing :class:`Enum`, mix-in types must appear before :class:" +"`Enum` itself in the sequence of bases, as in the :class:`IntEnum` example " +"above." +msgstr "" +"Pour hériter de :class:`Enum`, les types de mélange doivent être placés " +"avant la classe :class:`Enum` elle-même dans la liste des classes de base, " +"comme dans l'exemple de :class:`IntEnum` ci-dessus." + +#: ../Doc/library/enum.rst:730 +msgid "" +"While :class:`Enum` can have members of any type, once you mix in an " +"additional type, all the members must have values of that type, e.g. :class:" +"`int` above. This restriction does not apply to mix-ins which only add " +"methods and don't specify another data type such as :class:`int` or :class:" +"`str`." +msgstr "" +"Même si une classe :class:`Enum` peut avoir des membres de n'importe quel " +"type, dès lors qu'un type de mélange est ajouté, tous les membres doivent " +"être de ce type, p. ex. :class:`int` ci-dessus. Cette restriction ne " +"s'applique pas aux types de mélange qui ne font qu'ajouter des méthodes et " +"ne définissent pas de type de données, tels :class:`int` ou :class:`str`. " + +#: ../Doc/library/enum.rst:735 +msgid "" +"When another data type is mixed in, the :attr:`value` attribute is *not the " +"same* as the enum member itself, although it is equivalent and will compare " +"equal." +msgstr "" +"Quand un autre type de données est mélangé, l'attribut :attr:`value` n'est " +"*pas* identique au membre de l'énumération lui-même, bien qu'ils soient " +"équivalents et égaux en comparaison." + +#: ../Doc/library/enum.rst:738 +msgid "" +"%-style formatting: `%s` and `%r` call the :class:`Enum` class's :meth:" +"`__str__` and :meth:`__repr__` respectively; other codes (such as `%i` or `" +"%h` for IntEnum) treat the enum member as its mixed-in type." +msgstr "" +"Formatage de style *%* : `%s` et `%r` appellent respectivement les méthodes :" +"meth:`__str__` et :meth:`__repr__` de la classe :class:`Enum` ; les autres " +"codes, comme `%i` ou `%h` pour *IntEnum*, s'appliquent au membre comme si " +"celui-ci était converti en son type de mélange." + +#: ../Doc/library/enum.rst:741 +msgid "" +":ref:`Formatted string literals `, :meth:`str.format`, and :func:" +"`format` will use the mixed-in type's :meth:`__format__`. If the :class:" +"`Enum` class's :func:`str` or :func:`repr` is desired, use the `!s` or `!r` " +"format codes." +msgstr "" +":ref:`Chaînes de caractères formatées littérales ` : :meth:`str." +"format` et :func:`format` appellent la méthode :meth:`__format__` du type de " +"mélange. Pour appeler les fonctions :func:`str` ou :func:`repr` de la " +"classe :class:`Enum`, il faut utiliser les codes de formatage `!s` ou `!r`." + +#: ../Doc/library/enum.rst:748 +msgid "Interesting examples" +msgstr "Exemples intéressants" + +#: ../Doc/library/enum.rst:750 +msgid "" +"While :class:`Enum`, :class:`IntEnum`, :class:`IntFlag`, and :class:`Flag` " +"are expected to cover the majority of use-cases, they cannot cover them " +"all. Here are recipes for some different types of enumerations that can be " +"used directly, or as examples for creating one's own." +msgstr "" +"Bien que :class:`Enum`, :class:`IntEnum`, :class:`IntFlag` et :class:`Flag` " +"soient conçues pour répondre à la majorité des besoins, elles ne peuvent " +"répondre à tous. Voici quelques recettes d'énumération qui peuvent être " +"réutilisées telles quelles, ou peuvent servir d'exemple pour développer vos " +"propres énumérations." + +#: ../Doc/library/enum.rst:757 +msgid "Omitting values" +msgstr "Omettre les valeurs" + +#: ../Doc/library/enum.rst:759 +msgid "" +"In many use-cases one doesn't care what the actual value of an enumeration " +"is. There are several ways to define this type of simple enumeration:" +msgstr "" +"Dans de nombreux cas, la valeur réelle de l'énumération n'a pas " +"d'importance. Il y a plusieurs façons de définir ce type d'énumération " +"simple :" + +#: ../Doc/library/enum.rst:762 +msgid "use instances of :class:`auto` for the value" +msgstr "affecter des instances de :class:`auto` aux valeurs" + +#: ../Doc/library/enum.rst:763 +msgid "use instances of :class:`object` as the value" +msgstr "affecter des instances de :class:`object` aux valeurs" + +#: ../Doc/library/enum.rst:764 +msgid "use a descriptive string as the value" +msgstr "affecter des chaînes de caractères aux valeurs pour les décrire" + +#: ../Doc/library/enum.rst:765 +msgid "" +"use a tuple as the value and a custom :meth:`__new__` to replace the tuple " +"with an :class:`int` value" +msgstr "" +"affecter un n-uplet aux valeurs et définir une méthode :meth:`__new__` pour " +"remplacer les n-uplets avec un :class:`int`" + +#: ../Doc/library/enum.rst:768 +msgid "" +"Using any of these methods signifies to the user that these values are not " +"important, and also enables one to add, remove, or reorder members without " +"having to renumber the remaining members." +msgstr "" +"Utiliser une de ces méthodes indique à l'utilisateur que les valeurs n'ont " +"pas d'importance. Cela permet aussi d'ajouter, de supprimer ou de ré-" +"ordonner les membres sans avoir à ré-énumérer les membres existants." + +#: ../Doc/library/enum.rst:772 +msgid "" +"Whichever method you choose, you should provide a :meth:`repr` that also " +"hides the (unimportant) value::" +msgstr "" +"Quelle que soit la méthode choisie, il faut fournir une méthode :meth:`repr` " +"qui masque les valeurs (pas importantes de toute façon) ::" + +#: ../Doc/library/enum.rst:782 +msgid "Using :class:`auto`" +msgstr "Avec :class:`auto`" + +#: ../Doc/library/enum.rst:784 +msgid "Using :class:`auto` would look like::" +msgstr "On utilise :class:`auto` de la manière suivante ::" + +#: ../Doc/library/enum.rst:796 +msgid "Using :class:`object`" +msgstr "Avec :class:`object`" + +#: ../Doc/library/enum.rst:798 +msgid "Using :class:`object` would look like::" +msgstr "On utilise :class:`object` de la manière suivante ::" + +#: ../Doc/library/enum.rst:810 +msgid "Using a descriptive string" +msgstr "Avec une chaîne de caractères de description" + +#: ../Doc/library/enum.rst:812 +msgid "Using a string as the value would look like::" +msgstr "On utilise une chaîne de caractères de la manière suivante ::" + +#: ../Doc/library/enum.rst:826 +msgid "Using a custom :meth:`__new__`" +msgstr "Avec une méthode ad-hoc :meth:`__new__`" + +#: ../Doc/library/enum.rst:828 +msgid "Using an auto-numbering :meth:`__new__` would look like::" +msgstr "" +"On utilise une méthode :meth:`__new__` d'énumération de la manière " +"suivante ::" + +#: ../Doc/library/enum.rst:850 +msgid "" +"The :meth:`__new__` method, if defined, is used during creation of the Enum " +"members; it is then replaced by Enum's :meth:`__new__` which is used after " +"class creation for lookup of existing members." +msgstr "" +"La méthode :meth:`__new__`, si définie, est appelée à la création des " +"membres de l'énumération ; elle est ensuite remplacée par la méthode :meth:" +"`__new__` de *Enum*, qui est utilisée après la création de la classe pour la " +"recherche des membres existants." + +#: ../Doc/library/enum.rst:856 +msgid "OrderedEnum" +msgstr "OrderedEnum" + +#: ../Doc/library/enum.rst:858 +msgid "" +"An ordered enumeration that is not based on :class:`IntEnum` and so " +"maintains the normal :class:`Enum` invariants (such as not being comparable " +"to other enumerations)::" +msgstr "" +"Une énumération ordonnée qui n'est pas basée sur :class:`IntEnum` et qui, " +"par conséquent, respecte les invariants classiques de :class:`Enum` (comme " +"par exemple l'impossibilité de pouvoir être comparée à d'autres " +"énumérations) ::" + +#: ../Doc/library/enum.rst:892 +msgid "DuplicateFreeEnum" +msgstr "DuplicateFreeEnum" + +#: ../Doc/library/enum.rst:894 +msgid "" +"Raises an error if a duplicate member name is found instead of creating an " +"alias::" +msgstr "" +"Lève une erreur si un membre est dupliqué, plutôt que de créer un alias ::" + +#: ../Doc/library/enum.rst:919 +msgid "" +"This is a useful example for subclassing Enum to add or change other " +"behaviors as well as disallowing aliases. If the only desired change is " +"disallowing aliases, the :func:`unique` decorator can be used instead." +msgstr "" +"Cet exemple d'héritage de *Enum* est intéressant pour ajouter ou modifier " +"des comportements comme interdire les alias. Si vous ne souhaitez " +"qu'interdire les alias, il suffit d'utiliser le décorateur :func:`unique`." + +#: ../Doc/library/enum.rst:925 +msgid "Planet" +msgstr "Planet" + +#: ../Doc/library/enum.rst:927 +msgid "" +"If :meth:`__new__` or :meth:`__init__` is defined the value of the enum " +"member will be passed to those methods::" +msgstr "" +"Si :meth:`__new__` ou :meth:`__init__` sont définies, la valeur du membre de " +"l'énumération sera passée à ces méthodes ::" + +#: ../Doc/library/enum.rst:955 +msgid "TimePeriod" +msgstr "TimePeriod" + +#: ../Doc/library/enum.rst:957 +msgid "An example to show the :attr:`_ignore_` attribute in use::" +msgstr "Exemple d'utilisation de l'attribut :attr:`_ignore_` ::" + +#: ../Doc/library/enum.rst:974 +msgid "How are Enums different?" +msgstr "En quoi les *Enums* sont différentes ?" + +#: ../Doc/library/enum.rst:976 +msgid "" +"Enums have a custom metaclass that affects many aspects of both derived Enum " +"classes and their instances (members)." +msgstr "" +"Les *enums* ont une métaclasse spéciale qui affecte de nombreux aspects des " +"classes dérivées de *Enum* et de leur instances (membres)." + +#: ../Doc/library/enum.rst:981 +msgid "Enum Classes" +msgstr "Classes *Enum*" + +#: ../Doc/library/enum.rst:983 +msgid "" +"The :class:`EnumMeta` metaclass is responsible for providing the :meth:" +"`__contains__`, :meth:`__dir__`, :meth:`__iter__` and other methods that " +"allow one to do things with an :class:`Enum` class that fail on a typical " +"class, such as `list(Color)` or `some_enum_var in Color`. :class:`EnumMeta` " +"is responsible for ensuring that various other methods on the final :class:" +"`Enum` class are correct (such as :meth:`__new__`, :meth:`__getnewargs__`, :" +"meth:`__str__` and :meth:`__repr__`)." +msgstr "" +"La métaclasse :class:`EnumMeta` se charge de fournir les méthodes :meth:" +"`__contains__`, :meth:`__dir__`, :meth:`__iter__` etc. qui permettent de " +"faire des opérations sur une classe :class:`Enum` qui ne fonctionneraient " +"pas sur une classe standard, comme `list(Color)` ou `some_enum_var in " +"Color`. :class:`EnumMeta` garantit que les autres méthodes de la classe " +"finale :class:`Enum` sont correctes (comme :meth:`__new__`, :meth:" +"`__getnewargs__`, :meth:`__str__` et :meth:`__repr__`)." + +#: ../Doc/library/enum.rst:993 +msgid "Enum Members (aka instances)" +msgstr "Membres d'Enum (c.-à-d. instances)" + +#: ../Doc/library/enum.rst:995 +msgid "" +"The most interesting thing about Enum members is that they are singletons. :" +"class:`EnumMeta` creates them all while it is creating the :class:`Enum` " +"class itself, and then puts a custom :meth:`__new__` in place to ensure that " +"no new ones are ever instantiated by returning only the existing member " +"instances." +msgstr "" +"Il est intéressant de souligner que les membres d'une *Enum* sont des " +"singletons. La classe :class:`EnumMeta` les crée tous au moment de la " +"création de la classe :class:`Enum` elle-même et implémente une méthode :" +"meth:`__new__` spécifique. Cette méthode renvoie toujours les instances de " +"membres déjà existantes pour être sûr de ne jamais en instancier de " +"nouvelles." + +#: ../Doc/library/enum.rst:1003 +msgid "Finer Points" +msgstr "Aspects approfondis" + +#: ../Doc/library/enum.rst:1006 +msgid "Supported ``__dunder__`` names" +msgstr "Noms de la forme ``__dunder__`` disponibles" + +#: ../Doc/library/enum.rst:1008 +msgid "" +":attr:`__members__` is an :class:`OrderedDict` of ``member_name``:``member`` " +"items. It is only available on the class." +msgstr "" +":attr:`__members__` est une :class:`OrderedDict` de correspondances " +"``nom_du_membre`` / ``membre``. Elle n'est disponible que depuis la classe." + +#: ../Doc/library/enum.rst:1011 +msgid "" +":meth:`__new__`, if specified, must create and return the enum members; it " +"is also a very good idea to set the member's :attr:`_value_` appropriately. " +"Once all the members are created it is no longer used." +msgstr "" +"La méthode :meth:`__new__`, si elle est définie, doit créer et renvoyer les " +"membres de l'énumération ; affecter correctement l'attribut :attr:`_value_` " +"du membre est également conseillé. Une fois que tous les membres ont été " +"créés, cette méthode n'est plus utilisée." + +#: ../Doc/library/enum.rst:1017 +msgid "Supported ``_sunder_`` names" +msgstr "Noms de la forme ``_sunder_`` disponibles" + +#: ../Doc/library/enum.rst:1019 +msgid "``_name_`` -- name of the member" +msgstr "``_name_`` -- nom du membre" + +#: ../Doc/library/enum.rst:1020 +msgid "" +"``_value_`` -- value of the member; can be set / modified in ``__new__``" +msgstr "" +"``_value_`` -- valeur du membre ; il est possible d'y accéder ou de la muer " +"dans ``__new__``" + +#: ../Doc/library/enum.rst:1022 +msgid "" +"``_missing_`` -- a lookup function used when a value is not found; may be " +"overridden" +msgstr "" +"``_missing_`` -- une fonction de recherche qui est appelée quand la valeur " +"n'est pas trouvée ; elle peut être redéfinie" + +#: ../Doc/library/enum.rst:1024 +msgid "" +"``_ignore_`` -- a list of names, either as a :func:`list` or a :func:`str`, " +"that will not be transformed into members, and will be removed from the " +"final class" +msgstr "" +"``_ignore_`` -- une liste de noms, sous la forme de :func:`list` ou de :func:" +"`str`, qui ne seront pas transformés en membres, et seront supprimés de la " +"classe résultante" + +#: ../Doc/library/enum.rst:1027 +msgid "" +"``_order_`` -- used in Python 2/3 code to ensure member order is consistent " +"(class attribute, removed during class creation)" +msgstr "" +"``_order_`` -- utilisé en Python 2 ou 3 pour s'assurer que l'ordre des " +"membres est cohérent (attribut de classe, supprimé durant la création de la " +"classe)" + +#: ../Doc/library/enum.rst:1029 +msgid "" +"``_generate_next_value_`` -- used by the `Functional API`_ and by :class:" +"`auto` to get an appropriate value for an enum member; may be overridden" +msgstr "" +"``_generate_next_value_`` -- utilisée par l' `API par fonction`_ et par :" +"class:`auto` pour obtenir une valeur appropriée à affecter à un membre de " +"*l'enum* ; elle peut être redéfinie" + +#: ../Doc/library/enum.rst:1033 +msgid "``_missing_``, ``_order_``, ``_generate_next_value_``" +msgstr "``_missing_``, ``_order_``, ``_generate_next_value_``" + +#: ../Doc/library/enum.rst:1034 +msgid "``_ignore_``" +msgstr "``_ignore_``" + +#: ../Doc/library/enum.rst:1036 +msgid "" +"To help keep Python 2 / Python 3 code in sync an :attr:`_order_` attribute " +"can be provided. It will be checked against the actual order of the " +"enumeration and raise an error if the two do not match::" +msgstr "" +"Pour faciliter la transition de Python 2 en Python 3, l'attribut :attr:" +"`_order_` peut être défini. Il sera comparé au véritable ordre de " +"l'énumération et lève une erreur si les deux ne correspondent pas ::" + +#: ../Doc/library/enum.rst:1052 +msgid "" +"In Python 2 code the :attr:`_order_` attribute is necessary as definition " +"order is lost before it can be recorded." +msgstr "" +"En Python 2, l'attribut :attr:`_order_` est indispensable car l'ordre de la " +"définition est perdu avant de pouvoir être enregistré." + +#: ../Doc/library/enum.rst:1056 +msgid "``Enum`` member type" +msgstr "Type des membres de ``Enum``" + +#: ../Doc/library/enum.rst:1058 +msgid "" +":class:`Enum` members are instances of their :class:`Enum` class, and are " +"normally accessed as ``EnumClass.member``. Under certain circumstances they " +"can also be accessed as ``EnumClass.member.member``, but you should never do " +"this as that lookup may fail or, worse, return something besides the :class:" +"`Enum` member you are looking for (this is another good reason to use all-" +"uppercase names for members)::" +msgstr "" +"Les membres de :class:`Enum` sont des instances de leur classe :class:" +"`Enum`. On y accède normalement par ``ClasseEnum.membre``. Dans certains " +"cas, on peut également y accéder par ``ClasseEnum.membre.membre``, mais ceci " +"est fortement déconseillé car cette indirection est susceptible d'échouer, " +"ou pire, de ne pas renvoyer le membre de la classe :class:`Enum` désiré " +"(c'est une autre bonne raison pour définir tous les noms des membres en " +"majuscules) ::" + +#: ../Doc/library/enum.rst:1079 +msgid "Boolean value of ``Enum`` classes and members" +msgstr "Valeur booléenne des classes ``Enum`` et de leurs membres" + +#: ../Doc/library/enum.rst:1081 +msgid "" +":class:`Enum` members that are mixed with non-:class:`Enum` types (such as :" +"class:`int`, :class:`str`, etc.) are evaluated according to the mixed-in " +"type's rules; otherwise, all members evaluate as :data:`True`. To make your " +"own Enum's boolean evaluation depend on the member's value add the following " +"to your class::" +msgstr "" +"Les membres d'une classe :class:`Enum` mélangée avec un type non dérivé de :" +"class:`Enum` (comme :class:`int`, :class:`str`, etc.) sont évalués selon les " +"règles du type de mélange. Sinon, tous les membres valent :data:`True`. Pour " +"faire dépendre l'évaluation booléenne de votre propre *Enum* de la valeur du " +"membre, il faut ajouter le code suivant à votre classe ::" + +#: ../Doc/library/enum.rst:1090 +msgid ":class:`Enum` classes always evaluate as :data:`True`." +msgstr "Les classes :class:`Enum` valent toujours :data:`True`." + +#: ../Doc/library/enum.rst:1094 +msgid "``Enum`` classes with methods" +msgstr "Classes ``Enum`` avec des méthodes" + +#: ../Doc/library/enum.rst:1096 +msgid "" +"If you give your :class:`Enum` subclass extra methods, like the `Planet`_ " +"class above, those methods will show up in a :func:`dir` of the member, but " +"not of the class::" +msgstr "" +"Si votre classe :class:`Enum` contient des méthodes supplémentaires, comme " +"la classe `Planet`_ ci-dessus, elles s'afficheront avec un appel à :func:" +"`dir` sur le membre, mais pas avec un appel sur la classe ::" + +#: ../Doc/library/enum.rst:1107 +msgid "Combining members of ``Flag``" +msgstr "Combinaison de membres de ``Flag``" + +#: ../Doc/library/enum.rst:1109 +msgid "" +"If a combination of Flag members is not named, the :func:`repr` will include " +"all named flags and all named combinations of flags that are in the value::" +msgstr "" +"Si une valeur issue de la combinaison de membres de *Flag* n'est pas " +"associée explicitement à un membre, la fonction :func:`repr` inclut tous les " +"membres et toutes les combinaisons de membres présents dans cette valeur ::" diff --git a/library/errno.po b/library/errno.po new file mode 100644 index 000000000..279c258f6 --- /dev/null +++ b/library/errno.po @@ -0,0 +1,555 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-06-10 15:48+0200\n" +"Last-Translator: Dylan Gouin \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/library/errno.rst:2 +msgid ":mod:`errno` --- Standard errno system symbols" +msgstr ":mod:`errno` — Symboles du système *errno* standard" + +#: ../Doc/library/errno.rst:9 +msgid "" +"This module makes available standard ``errno`` system symbols. The value of " +"each symbol is the corresponding integer value. The names and descriptions " +"are borrowed from :file:`linux/include/errno.h`, which should be pretty all-" +"inclusive." +msgstr "" +"Ce module met à disposition des symboles du système standard ``errno``. La " +"valeur de chaque symbole est la valeur entière correspondante. Les noms et " +"les descriptions sont empruntés à :file:`linux/include/errno.h`, qui devrait " +"être assez exhaustif." + +#: ../Doc/library/errno.rst:17 +msgid "" +"Dictionary providing a mapping from the errno value to the string name in " +"the underlying system. For instance, ``errno.errorcode[errno.EPERM]`` maps " +"to ``'EPERM'``." +msgstr "" +"Dictionnaire associant la valeur *errno* au nom de chaîne dans le système " +"sous-jacent. Par exemple, ``errno.errorcode[errno.EPERM]`` correspond à " +"``'EPERM'``." + +#: ../Doc/library/errno.rst:21 +msgid "" +"To translate a numeric error code to an error message, use :func:`os." +"strerror`." +msgstr "" +"Pour traduire un code d'erreur en message d'erreur, utilisez :func:`os." +"strerror`." + +#: ../Doc/library/errno.rst:23 +msgid "" +"Of the following list, symbols that are not used on the current platform are " +"not defined by the module. The specific list of defined symbols is " +"available as ``errno.errorcode.keys()``. Symbols available can include:" +msgstr "" +"De la liste suivante, les symboles qui ne sont pas utilisés dans la " +"plateforme actuelle ne sont pas définis par le module. La liste spécifique " +"des symboles définis est disponible comme ``errno.errorcode.keys()``. Les " +"symboles disponibles font partie de cette liste :" + +#: ../Doc/library/errno.rst:30 +msgid "Operation not permitted" +msgstr "Opération interdite" + +#: ../Doc/library/errno.rst:35 +msgid "No such file or directory" +msgstr "Fichier ou répertoire inexistant" + +#: ../Doc/library/errno.rst:40 +msgid "No such process" +msgstr "Processus inexistant" + +#: ../Doc/library/errno.rst:45 +msgid "Interrupted system call." +msgstr "Appel système interrompu" + +#: ../Doc/library/errno.rst:48 +msgid "This error is mapped to the exception :exc:`InterruptedError`." +msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." + +#: ../Doc/library/errno.rst:53 +msgid "I/O error" +msgstr "Erreur d'entrée-sortie" + +#: ../Doc/library/errno.rst:58 +msgid "No such device or address" +msgstr "Dispositif ou adresse inexistant" + +#: ../Doc/library/errno.rst:63 +msgid "Arg list too long" +msgstr "Liste d'arguments trop longue" + +#: ../Doc/library/errno.rst:68 +msgid "Exec format error" +msgstr "Erreur de format d'exécution" + +#: ../Doc/library/errno.rst:73 +msgid "Bad file number" +msgstr "Mauvais descripteur de fichier" + +#: ../Doc/library/errno.rst:78 +msgid "No child processes" +msgstr "Pas de processus fils" + +#: ../Doc/library/errno.rst:83 +msgid "Try again" +msgstr "Ressource temporairement indisponible (réessayez)" + +#: ../Doc/library/errno.rst:88 +msgid "Out of memory" +msgstr "Mémoire insuffisante" + +#: ../Doc/library/errno.rst:93 +msgid "Permission denied" +msgstr "Autorisation refusée" + +#: ../Doc/library/errno.rst:98 +msgid "Bad address" +msgstr "Mauvaise adresse" + +#: ../Doc/library/errno.rst:103 +msgid "Block device required" +msgstr "Dispositif de bloc requis" + +#: ../Doc/library/errno.rst:108 +msgid "Device or resource busy" +msgstr "Dispositif ou ressource occupé" + +#: ../Doc/library/errno.rst:113 +msgid "File exists" +msgstr "Fichier déjà existant" + +#: ../Doc/library/errno.rst:118 +msgid "Cross-device link" +msgstr "Lien inapproprié" + +#: ../Doc/library/errno.rst:123 +msgid "No such device" +msgstr "Dispositif inexistant" + +#: ../Doc/library/errno.rst:128 +msgid "Not a directory" +msgstr "Pas un répertoire" + +#: ../Doc/library/errno.rst:133 +msgid "Is a directory" +msgstr "Est un répertoire" + +#: ../Doc/library/errno.rst:138 +msgid "Invalid argument" +msgstr "Argument invalide" + +#: ../Doc/library/errno.rst:143 +msgid "File table overflow" +msgstr "Plus de descripteur de fichier disponible" + +#: ../Doc/library/errno.rst:148 +msgid "Too many open files" +msgstr "Trop de fichiers ouverts" + +#: ../Doc/library/errno.rst:153 +msgid "Not a typewriter" +msgstr "Opération de contrôle d'entrée-sortie invalide" + +#: ../Doc/library/errno.rst:158 +msgid "Text file busy" +msgstr "Fichier texte occupé" + +#: ../Doc/library/errno.rst:163 +msgid "File too large" +msgstr "Fichier trop grand" + +#: ../Doc/library/errno.rst:168 +msgid "No space left on device" +msgstr "Plus de place sur le dispositif" + +#: ../Doc/library/errno.rst:173 +msgid "Illegal seek" +msgstr "Recherche invalide" + +#: ../Doc/library/errno.rst:178 +msgid "Read-only file system" +msgstr "Système de fichiers en lecture seule" + +#: ../Doc/library/errno.rst:183 +msgid "Too many links" +msgstr "Trop de liens symboliques" + +#: ../Doc/library/errno.rst:188 +msgid "Broken pipe" +msgstr "Tube brisé" + +#: ../Doc/library/errno.rst:193 +msgid "Math argument out of domain of func" +msgstr "Argument mathématique hors du domaine de définition de la fonction" + +#: ../Doc/library/errno.rst:198 +msgid "Math result not representable" +msgstr "Résultat mathématique non représentable" + +#: ../Doc/library/errno.rst:203 +msgid "Resource deadlock would occur" +msgstr "Un interblocage se produirait sur cette ressource" + +#: ../Doc/library/errno.rst:208 +msgid "File name too long" +msgstr "Nom de fichier trop long" + +#: ../Doc/library/errno.rst:213 +msgid "No record locks available" +msgstr "Plus de verrou de fichier disponible" + +#: ../Doc/library/errno.rst:218 +msgid "Function not implemented" +msgstr "Fonction non implémentée" + +#: ../Doc/library/errno.rst:223 +msgid "Directory not empty" +msgstr "Dossier non vide" + +#: ../Doc/library/errno.rst:228 +msgid "Too many symbolic links encountered" +msgstr "Trop de liens symboliques trouvés" + +#: ../Doc/library/errno.rst:233 +msgid "Operation would block" +msgstr "L'opération bloquerait" + +#: ../Doc/library/errno.rst:238 +msgid "No message of desired type" +msgstr "Pas de message du type voulu" + +#: ../Doc/library/errno.rst:243 +msgid "Identifier removed" +msgstr "Identifiant supprimé" + +#: ../Doc/library/errno.rst:248 +msgid "Channel number out of range" +msgstr "Le numéro de canal est hors des limites" + +#: ../Doc/library/errno.rst:253 +msgid "Level 2 not synchronized" +msgstr "Le niveau 2 n'est pas synchronisé" + +#: ../Doc/library/errno.rst:258 +msgid "Level 3 halted" +msgstr "Niveau 3 stoppé" + +#: ../Doc/library/errno.rst:263 +msgid "Level 3 reset" +msgstr "Niveau 3 réinitialisé" + +#: ../Doc/library/errno.rst:268 +msgid "Link number out of range" +msgstr "Le numéro du lien est hors des limites" + +#: ../Doc/library/errno.rst:273 +msgid "Protocol driver not attached" +msgstr "Le pilote de protocole n'est pas attaché" + +#: ../Doc/library/errno.rst:278 +msgid "No CSI structure available" +msgstr "Pas de structure *CSI* disponible" + +#: ../Doc/library/errno.rst:283 +msgid "Level 2 halted" +msgstr "Niveau 2 stoppé" + +#: ../Doc/library/errno.rst:288 +msgid "Invalid exchange" +msgstr "Échange invalide" + +#: ../Doc/library/errno.rst:293 +msgid "Invalid request descriptor" +msgstr "Descripteur de requête invalide" + +#: ../Doc/library/errno.rst:298 +msgid "Exchange full" +msgstr "Échange complet" + +#: ../Doc/library/errno.rst:303 +msgid "No anode" +msgstr "Pas de *anode*" + +#: ../Doc/library/errno.rst:308 +msgid "Invalid request code" +msgstr "Code de requête invalide" + +#: ../Doc/library/errno.rst:313 +msgid "Invalid slot" +msgstr "*Slot* invalide" + +#: ../Doc/library/errno.rst:318 +msgid "File locking deadlock error" +msgstr "Interblocage lors du verrouillage de fichier" + +#: ../Doc/library/errno.rst:323 +msgid "Bad font file format" +msgstr "Mauvais format de fichier de police" + +#: ../Doc/library/errno.rst:328 +msgid "Device not a stream" +msgstr "Le périphérique n'est pas un flux" + +#: ../Doc/library/errno.rst:333 +msgid "No data available" +msgstr "Pas de donnée disponible" + +#: ../Doc/library/errno.rst:338 +msgid "Timer expired" +msgstr "Délai maximal atteint" + +#: ../Doc/library/errno.rst:343 +msgid "Out of streams resources" +msgstr "Pas assez de ressources de type flux" + +#: ../Doc/library/errno.rst:348 +msgid "Machine is not on the network" +msgstr "Machine hors réseau" + +#: ../Doc/library/errno.rst:353 +msgid "Package not installed" +msgstr "Paquet non installé" + +#: ../Doc/library/errno.rst:358 +msgid "Object is remote" +msgstr "L'objet est distant" + +#: ../Doc/library/errno.rst:363 +msgid "Link has been severed" +msgstr "Lien coupé" + +#: ../Doc/library/errno.rst:368 +msgid "Advertise error" +msgstr "Erreur d'annonce" + +#: ../Doc/library/errno.rst:373 +msgid "Srmount error" +msgstr "Erreur *Srmount*" + +#: ../Doc/library/errno.rst:378 +msgid "Communication error on send" +msgstr "Erreur de communication lors de l'envoi" + +#: ../Doc/library/errno.rst:383 +msgid "Protocol error" +msgstr "Erreur de protocole" + +#: ../Doc/library/errno.rst:388 +msgid "Multihop attempted" +msgstr "Transfert à sauts multiples essayé" + +#: ../Doc/library/errno.rst:393 +msgid "RFS specific error" +msgstr "erreur spécifique *RFS*" + +#: ../Doc/library/errno.rst:398 +msgid "Not a data message" +msgstr "Pas un message de données" + +#: ../Doc/library/errno.rst:403 +msgid "Value too large for defined data type" +msgstr "Valeur trop grande pour être stockée dans ce type de donnée" + +#: ../Doc/library/errno.rst:408 +msgid "Name not unique on network" +msgstr "Nom non-unique dans le réseau" + +#: ../Doc/library/errno.rst:413 +msgid "File descriptor in bad state" +msgstr "Descripteur de fichier en mauvais état" + +#: ../Doc/library/errno.rst:418 +msgid "Remote address changed" +msgstr "Adresse distante changée" + +#: ../Doc/library/errno.rst:423 +msgid "Can not access a needed shared library" +msgstr "Accès impossible à une bibliothèque partagée nécessaire" + +#: ../Doc/library/errno.rst:428 +msgid "Accessing a corrupted shared library" +msgstr "Accès à une bibliothèque partagée corrompue" + +#: ../Doc/library/errno.rst:433 +msgid ".lib section in a.out corrupted" +msgstr "Section *.lib* de *a.out* corrompue" + +#: ../Doc/library/errno.rst:438 +msgid "Attempting to link in too many shared libraries" +msgstr "Tentative de liaison entre trop de bibliothèques partagées" + +#: ../Doc/library/errno.rst:443 +msgid "Cannot exec a shared library directly" +msgstr "Impossible d'exécuter directement une bibliothèque partagée" + +#: ../Doc/library/errno.rst:448 +msgid "Illegal byte sequence" +msgstr "Séquence de *bytes* illégale" + +#: ../Doc/library/errno.rst:453 +msgid "Interrupted system call should be restarted" +msgstr "Appel système interrompu qui devrait être relancé" + +#: ../Doc/library/errno.rst:458 +msgid "Streams pipe error" +msgstr "Erreur d’enchaînement de flux" + +#: ../Doc/library/errno.rst:463 +msgid "Too many users" +msgstr "Trop d'utilisateurs" + +#: ../Doc/library/errno.rst:468 +msgid "Socket operation on non-socket" +msgstr "" +"Opération d'interface de connexion alors que ce n'est pas une interface de " +"connexion" + +#: ../Doc/library/errno.rst:473 +msgid "Destination address required" +msgstr "Adresse de destination obligatoire" + +#: ../Doc/library/errno.rst:478 +msgid "Message too long" +msgstr "Message trop long" + +#: ../Doc/library/errno.rst:483 +msgid "Protocol wrong type for socket" +msgstr "Mauvais type de protocole pour ce connecteur" + +#: ../Doc/library/errno.rst:488 +msgid "Protocol not available" +msgstr "Protocole pas disponible" + +#: ../Doc/library/errno.rst:493 +msgid "Protocol not supported" +msgstr "Protocole non géré" + +#: ../Doc/library/errno.rst:498 +msgid "Socket type not supported" +msgstr "Type de connecteur non géré" + +#: ../Doc/library/errno.rst:503 +msgid "Operation not supported on transport endpoint" +msgstr "Opération non gérée par cette fin de lien" + +#: ../Doc/library/errno.rst:508 +msgid "Protocol family not supported" +msgstr "Famille de protocole non gérée" + +#: ../Doc/library/errno.rst:513 +msgid "Address family not supported by protocol" +msgstr "Famille d'adresses non gérée par ce protocole" + +#: ../Doc/library/errno.rst:518 +msgid "Address already in use" +msgstr "Adresse déjà utilisée" + +#: ../Doc/library/errno.rst:523 +msgid "Cannot assign requested address" +msgstr "Impossible d'assigner l'adresse demandée" + +#: ../Doc/library/errno.rst:528 +msgid "Network is down" +msgstr "Le réseau est désactivé" + +#: ../Doc/library/errno.rst:533 +msgid "Network is unreachable" +msgstr "Réseau inaccessible" + +#: ../Doc/library/errno.rst:538 +msgid "Network dropped connection because of reset" +msgstr "Connexion annulée par le réseau" + +#: ../Doc/library/errno.rst:543 +msgid "Software caused connection abort" +msgstr "Connexion abandonnée" + +#: ../Doc/library/errno.rst:548 +msgid "Connection reset by peer" +msgstr "Connexion réinitialisée" + +#: ../Doc/library/errno.rst:553 +msgid "No buffer space available" +msgstr "Plus d'espace tampon disponible" + +#: ../Doc/library/errno.rst:558 +msgid "Transport endpoint is already connected" +msgstr "L'interface de connexion est déjà connectée" + +#: ../Doc/library/errno.rst:563 +msgid "Transport endpoint is not connected" +msgstr "L'interface de connexion n'est pas connectée" + +#: ../Doc/library/errno.rst:568 +msgid "Cannot send after transport endpoint shutdown" +msgstr "Impossible d'envoyer après l'arrêt du point final du transport" + +#: ../Doc/library/errno.rst:573 +msgid "Too many references: cannot splice" +msgstr "Trop de descripteurs : impossible d'effectuer la liaison" + +#: ../Doc/library/errno.rst:578 +msgid "Connection timed out" +msgstr "Délai maximal de connexion écoulé" + +#: ../Doc/library/errno.rst:583 +msgid "Connection refused" +msgstr "Connexion refusée" + +#: ../Doc/library/errno.rst:588 +msgid "Host is down" +msgstr "Hôte éteint" + +#: ../Doc/library/errno.rst:593 +msgid "No route to host" +msgstr "Pas de route vers l'hôte" + +#: ../Doc/library/errno.rst:598 +msgid "Operation already in progress" +msgstr "Connexion déjà en cours" + +#: ../Doc/library/errno.rst:603 +msgid "Operation now in progress" +msgstr "Opération en cours" + +#: ../Doc/library/errno.rst:608 +msgid "Stale NFS file handle" +msgstr "Descripteur de fichier NFS corrompu" + +#: ../Doc/library/errno.rst:613 +msgid "Structure needs cleaning" +msgstr "La structure a besoin d'être nettoyée" + +#: ../Doc/library/errno.rst:618 +msgid "Not a XENIX named type file" +msgstr "N'est pas un fichier nommé du type *XENIX*" + +#: ../Doc/library/errno.rst:623 +msgid "No XENIX semaphores available" +msgstr "Pas de sémaphore *XENIX* disponible" + +#: ../Doc/library/errno.rst:628 +msgid "Is a named type file" +msgstr "Est un fichier nommé" + +#: ../Doc/library/errno.rst:633 +msgid "Remote I/O error" +msgstr "Erreur d'entrées-sorties distante" + +#: ../Doc/library/errno.rst:638 +msgid "Quota exceeded" +msgstr "Quota dépassé" diff --git a/library/exceptions.po b/library/exceptions.po new file mode 100644 index 000000000..ba20b9683 --- /dev/null +++ b/library/exceptions.po @@ -0,0 +1,1234 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-10 15:49+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" + +#: ../Doc/library/exceptions.rst:4 +msgid "Built-in Exceptions" +msgstr "Exceptions natives" + +#: ../Doc/library/exceptions.rst:10 +msgid "" +"In Python, all exceptions must be instances of a class that derives from :" +"class:`BaseException`. In a :keyword:`try` statement with an :keyword:" +"`except` clause that mentions a particular class, that clause also handles " +"any exception classes derived from that class (but not exception classes " +"from which *it* is derived). Two exception classes that are not related via " +"subclassing are never equivalent, even if they have the same name." +msgstr "" +"En python, une exception est une instance d'une classe héritée de :class:" +"`BaseException`. Dans un bloc :keyword:`try`, la clause :keyword:`except` " +"traite non seulement la classe d'exception qu'elle mentionne, mais aussi " +"toutes les classes dérivées de cette classe (contrairement à ses classes " +"mères). Deux classes qui ne sont pas liées par héritage ne sont jamais " +"équivalentes, même si elles ont le même nom." + +#: ../Doc/library/exceptions.rst:19 +msgid "" +"The built-in exceptions listed below can be generated by the interpreter or " +"built-in functions. Except where mentioned, they have an \"associated value" +"\" indicating the detailed cause of the error. This may be a string or a " +"tuple of several items of information (e.g., an error code and a string " +"explaining the code). The associated value is usually passed as arguments " +"to the exception class's constructor." +msgstr "" +"Les exceptions natives présentes ci-dessous peuvent être levées par " +"l'interpréteur ou par les fonctions natives. Sauf mention contraire, une " +"\"valeur associée\" indique la cause de l'erreur. Cela peut être une chaîne " +"ou un *tuple* contenant plusieurs éléments d'information (e.g., un code " +"d'erreur ou un message explicatif). Cette valeur associée est généralement " +"donnée en argument du constructeur de la classe." + +#: ../Doc/library/exceptions.rst:26 +msgid "" +"User code can raise built-in exceptions. This can be used to test an " +"exception handler or to report an error condition \"just like\" the " +"situation in which the interpreter raises the same exception; but beware " +"that there is nothing to prevent user code from raising an inappropriate " +"error." +msgstr "" +"Du code utilisateur peut lever des exceptions natives. Cela peut être " +"utilisé pour tester un gestionnaire d'exception ou pour rapporter une " +"condition d'erreur \"comme si\" c'était l'interpréteur qui levait cette " +"exception ; mais attention car rien n'empêche du code utilisateur de lever " +"une erreur inappropriée." + +#: ../Doc/library/exceptions.rst:31 +msgid "" +"The built-in exception classes can be subclassed to define new exceptions; " +"programmers are encouraged to derive new exceptions from the :exc:" +"`Exception` class or one of its subclasses, and not from :exc:" +"`BaseException`. More information on defining exceptions is available in " +"the Python Tutorial under :ref:`tut-userexceptions`." +msgstr "" +"Les classes d'exception natives peuvent être héritées pour définir de " +"nouvelles exceptions ; les programmeurs sont encouragés à faire dériver les " +"nouvelles exceptions de la classe :exc:`Exception` ou d'une de ses sous-" +"classes, et non de :exc:`BaseException`. Plus d'informations sur la " +"définition des exceptions sont disponibles dans le Tutoriel Python sous :ref:" +"`tut-userexceptions`." + +#: ../Doc/library/exceptions.rst:37 +msgid "" +"When raising (or re-raising) an exception in an :keyword:`except` or :" +"keyword:`finally` clause :attr:`__context__` is automatically set to the " +"last exception caught; if the new exception is not handled the traceback " +"that is eventually displayed will include the originating exception(s) and " +"the final exception." +msgstr "" +"En levant (ou levant à nouveau) une exception dans une clause :keyword:" +"`except` ou :keyword:`finally`, :attr:`__context__` est automatiquement " +"assigné à la dernière exception capturée ; si la nouvelle exception n'est " +"pas gérée, la trace d'appels affichée inclut la ou les exception(s) " +"d'origine et l'exception finale." + +#: ../Doc/library/exceptions.rst:43 +msgid "" +"When raising a new exception (rather than using a bare ``raise`` to re-raise " +"the exception currently being handled), the implicit exception context can " +"be supplemented with an explicit cause by using :keyword:`from` with :" +"keyword:`raise`::" +msgstr "" +"En levant une nouvelle exception (plutôt que d'utiliser un simple ``raise`` " +"pour lever à nouveau l'exception en cours de traitement), le contexte " +"implicite d'exception peut être complété par une cause explicite en " +"utilisant :keyword:`from` avec :keyword:`raise` ::" + +#: ../Doc/library/exceptions.rst:50 +msgid "" +"The expression following :keyword:`from` must be an exception or ``None``. " +"It will be set as :attr:`__cause__` on the raised exception. Setting :attr:" +"`__cause__` also implicitly sets the :attr:`__suppress_context__` attribute " +"to ``True``, so that using ``raise new_exc from None`` effectively replaces " +"the old exception with the new one for display purposes (e.g. converting :" +"exc:`KeyError` to :exc:`AttributeError`), while leaving the old exception " +"available in :attr:`__context__` for introspection when debugging." +msgstr "" +"L'expression suivant :keyword:`from` doit être une exception ou ``None``. " +"Elle sera assignée en tant que :attr:`__cause__` dans l'exception levée. " +"Changer :attr:`__cause__` change aussi implicitement l'attribut :attr:" +"`__suppress_context__` à ``True``, de sorte que l'utilisation de ``raise " +"new_exc from None`` remplace bien l'ancienne exception avec la nouvelle à " +"des fins d'affichage (e.g., convertir :exc:`KeyError` en :exc:" +"`AttributeError`), tout en laissant l'ancienne exception disponible dans :" +"attr:`__context__` pour introspection lors du débogage." + +#: ../Doc/library/exceptions.rst:59 +msgid "" +"The default traceback display code shows these chained exceptions in " +"addition to the traceback for the exception itself. An explicitly chained " +"exception in :attr:`__cause__` is always shown when present. An implicitly " +"chained exception in :attr:`__context__` is shown only if :attr:`__cause__` " +"is :const:`None` and :attr:`__suppress_context__` is false." +msgstr "" +"Le code d'affichage par défaut de la trace d'appels montre ces exceptions " +"chaînées en plus de la trace de l'exception elle-même. Une exception chaînée " +"explicitement dans :attr:`__cause__` est toujours affichée si présente. Une " +"exception implicitement chaînée dans :attr:`__context__` n'est affichée que " +"si :attr:`__cause__` est :const:`None` et :attr:`__suppress_context__` est " +"faux." + +#: ../Doc/library/exceptions.rst:65 +msgid "" +"In either case, the exception itself is always shown after any chained " +"exceptions so that the final line of the traceback always shows the last " +"exception that was raised." +msgstr "" +"Dans les deux cas, l'exception elle-même est toujours affichée après toutes " +"les exceptions enchaînées, de sorte que la dernière ligne de la trace " +"d'appels montre toujours la dernière exception qui a été levée." + +#: ../Doc/library/exceptions.rst:71 +msgid "Base classes" +msgstr "Classes de base" + +#: ../Doc/library/exceptions.rst:73 +msgid "" +"The following exceptions are used mostly as base classes for other " +"exceptions." +msgstr "" +"Les exceptions suivantes sont utilisées principalement en tant que classes " +"de base pour d'autres exceptions." + +#: ../Doc/library/exceptions.rst:77 +msgid "" +"The base class for all built-in exceptions. It is not meant to be directly " +"inherited by user-defined classes (for that, use :exc:`Exception`). If :" +"func:`str` is called on an instance of this class, the representation of the " +"argument(s) to the instance are returned, or the empty string when there " +"were no arguments." +msgstr "" +"La classe de base pour toutes les exceptions natives. Elle n'est pas vouée à " +"être héritée directement par des classes utilisateur (pour cela, utilisez :" +"exc:`Exception`). Si :func:`str` est appelée sur une instance de cette " +"classe, la représentation du ou des argument(s) de l'instance est retournée, " +"ou la chaîne vide s'il n'y avait pas d'arguments." + +#: ../Doc/library/exceptions.rst:85 +msgid "" +"The tuple of arguments given to the exception constructor. Some built-in " +"exceptions (like :exc:`OSError`) expect a certain number of arguments and " +"assign a special meaning to the elements of this tuple, while others are " +"usually called only with a single string giving an error message." +msgstr "" +"Le *tuple* d'arguments donné au constructeur d'exception. Certaines " +"exceptions natives (comme :exc:`OSError`) attendent un certain nombre " +"d'arguments et attribuent une signification spéciale aux éléments de ce " +"*tuple*, alors que d'autres ne sont généralement appelées qu'avec une seule " +"chaîne de caractères rendant un message d'erreur." + +#: ../Doc/library/exceptions.rst:92 +msgid "" +"This method sets *tb* as the new traceback for the exception and returns the " +"exception object. It is usually used in exception handling code like this::" +msgstr "" +"Cette méthode définit *tb* en tant que nouvelle trace d'appels pour " +"l'exception et retourne l'objet exception. Elle est généralement utilisée " +"dans du code de gestion d'exceptions comme ceci ::" + +#: ../Doc/library/exceptions.rst:105 +msgid "" +"All built-in, non-system-exiting exceptions are derived from this class. " +"All user-defined exceptions should also be derived from this class." +msgstr "" +"Toutes les exceptions natives, qui n'entraînent pas une sortie du système " +"dérivent de cette classe. Toutes les exceptions définies par l'utilisateur " +"devraient également être dérivées de cette classe." + +#: ../Doc/library/exceptions.rst:111 +msgid "" +"The base class for those built-in exceptions that are raised for various " +"arithmetic errors: :exc:`OverflowError`, :exc:`ZeroDivisionError`, :exc:" +"`FloatingPointError`." +msgstr "" +"La classe de base pour les exceptions natives qui sont levées pour diverses " +"erreurs arithmétiques : :exc:`OverflowError`, :exc:`ZeroDivisionError`, :exc:" +"`FloatingPointError`." + +#: ../Doc/library/exceptions.rst:118 +msgid "" +"Raised when a :ref:`buffer ` related operation cannot be " +"performed." +msgstr "" +"Levée lorsqu'une opération liée à un :ref:`tampon ` ne peut " +"pas être exécutée." + +#: ../Doc/library/exceptions.rst:124 +msgid "" +"The base class for the exceptions that are raised when a key or index used " +"on a mapping or sequence is invalid: :exc:`IndexError`, :exc:`KeyError`. " +"This can be raised directly by :func:`codecs.lookup`." +msgstr "" +"La classe de base pour les exceptions qui sont levées lorsqu'une clé ou un " +"index utilisé sur un tableau de correspondances ou une séquence est " +"invalide : :exc:`IndexError`, :exc:`KeyError`. Peut être levée directement " +"par :func:`codecs.lookup`." + +#: ../Doc/library/exceptions.rst:130 +msgid "Concrete exceptions" +msgstr "Exceptions concrètes" + +#: ../Doc/library/exceptions.rst:132 +msgid "The following exceptions are the exceptions that are usually raised." +msgstr "Les exceptions suivantes sont celles qui sont habituellement levées." + +#: ../Doc/library/exceptions.rst:138 +msgid "Raised when an :keyword:`assert` statement fails." +msgstr "Levée lorsqu'une instruction :keyword:`assert` échoue." + +#: ../Doc/library/exceptions.rst:143 +msgid "" +"Raised when an attribute reference (see :ref:`attribute-references`) or " +"assignment fails. (When an object does not support attribute references or " +"attribute assignments at all, :exc:`TypeError` is raised.)" +msgstr "" +"Levée lorsqu'une référence ou une assignation d'attribut (voir :ref:" +"`attribute-references`) échoue. (Lorsqu'un objet ne supporte pas du tout la " +"référence ou l'assignation d'attribut, :exc:`TypeError` est levé.)" + +#: ../Doc/library/exceptions.rst:150 +msgid "" +"Raised when the :func:`input` function hits an end-of-file condition (EOF) " +"without reading any data. (N.B.: the :meth:`io.IOBase.read` and :meth:`io." +"IOBase.readline` methods return an empty string when they hit EOF.)" +msgstr "" +"Levée lorsque la fonction :func:`input` atteint une condition de fin de " +"fichier (EOF) sans lire aucune donnée. (N.B.: les méthodes :meth:`io.IOBase." +"read` et :meth:`io.IOBase.readline` retournent une chaîne vide lorsqu'elles " +"atteignent EOF.)" + +#: ../Doc/library/exceptions.rst:157 +msgid "Not currently used." +msgstr "N’est pas utilisé pour le moment." + +#: ../Doc/library/exceptions.rst:162 +msgid "" +"Raised when a :term:`generator` or :term:`coroutine` is closed; see :meth:" +"`generator.close` and :meth:`coroutine.close`. It directly inherits from :" +"exc:`BaseException` instead of :exc:`Exception` since it is technically not " +"an error." +msgstr "" +"Levée lorsqu'un :term:`generator` ou une :term:`coroutine` est fermé, voir :" +"meth:`generator.close` et :meth:`coroutine.close`. Elle hérite directement " +"de :exc:`BaseException` au lieu de :exc:`Exception` puisqu'il ne s'agit pas " +"techniquement d'une erreur." + +#: ../Doc/library/exceptions.rst:170 +msgid "" +"Raised when the :keyword:`import` statement has troubles trying to load a " +"module. Also raised when the \"from list\" in ``from ... import`` has a " +"name that cannot be found." +msgstr "" +"Levée lorsque l'instruction :keyword:`import` a des problèmes pour essayer " +"de charger un module. Également levée lorsque Python ne trouve pas un nom " +"dans ``from ... import``." + +#: ../Doc/library/exceptions.rst:174 +msgid "" +"The :attr:`name` and :attr:`path` attributes can be set using keyword-only " +"arguments to the constructor. When set they represent the name of the module " +"that was attempted to be imported and the path to any file which triggered " +"the exception, respectively." +msgstr "" +"Les attributs :attr:`name` et :attr:`path` peuvent être définis uniquement à " +"l'aide d'arguments mot-clef (*kwargs*) passés au constructeur. Lorsqu'ils " +"sont définis, ils représentent respectivement le nom du module qui a été " +"tenté d'être importé et le chemin d'accès au fichier qui a déclenché " +"l'exception." + +#: ../Doc/library/exceptions.rst:179 +msgid "Added the :attr:`name` and :attr:`path` attributes." +msgstr "Ajout des attributs :attr:`name` et :attr:`path`." + +#: ../Doc/library/exceptions.rst:184 +msgid "" +"A subclass of :exc:`ImportError` which is raised by :keyword:`import` when a " +"module could not be located. It is also raised when ``None`` is found in :" +"data:`sys.modules`." +msgstr "" +"Une sous-classe de :exc:`ImportError` qui est levée par :keyword:`import` " +"lorsqu'un module n'a pas pu être localisé. Elle est généralement levée quand " +"``None`` est trouvé dans :data:`sys.modules`." + +#: ../Doc/library/exceptions.rst:193 +msgid "" +"Raised when a sequence subscript is out of range. (Slice indices are " +"silently truncated to fall in the allowed range; if an index is not an " +"integer, :exc:`TypeError` is raised.)" +msgstr "" +"Levée lorsqu'un indice de séquence est hors de la plage. (Les indices de " +"tranches (*slices*) sont tronqués silencieusement pour tomber dans la plage " +"autorisée ; si un indice n'est pas un entier, :exc:`TypeError` est levée.)" + +#: ../Doc/library/exceptions.rst:202 +msgid "" +"Raised when a mapping (dictionary) key is not found in the set of existing " +"keys." +msgstr "" +"Levée lorsqu'une clef (de dictionnaire) n'est pas trouvée dans l'ensemble " +"des clefs existantes." + +#: ../Doc/library/exceptions.rst:209 +msgid "" +"Raised when the user hits the interrupt key (normally :kbd:`Control-C` or :" +"kbd:`Delete`). During execution, a check for interrupts is made regularly. " +"The exception inherits from :exc:`BaseException` so as to not be " +"accidentally caught by code that catches :exc:`Exception` and thus prevent " +"the interpreter from exiting." +msgstr "" +"Levée lorsque l'utilisateur appuie sur la touche d'interruption " +"(normalement :kbd:`Control-C` or :kbd:`Delete`). Pendant l'exécution, un " +"contrôle des interruptions est effectué régulièrement. L'exception hérite " +"de :exc:`BaseException` afin de ne pas être accidentellement capturée par du " +"code qui capture :exc:`Exception` et ainsi empêcher l'interpréteur de " +"quitter." + +#: ../Doc/library/exceptions.rst:218 +msgid "" +"Raised when an operation runs out of memory but the situation may still be " +"rescued (by deleting some objects). The associated value is a string " +"indicating what kind of (internal) operation ran out of memory. Note that " +"because of the underlying memory management architecture (C's :c:func:" +"`malloc` function), the interpreter may not always be able to completely " +"recover from this situation; it nevertheless raises an exception so that a " +"stack traceback can be printed, in case a run-away program was the cause." +msgstr "" +"Levée lorsqu'une opération est à court de mémoire mais que la situation peut " +"encore être rattrapée (en supprimant certains objets). La valeur associée " +"est une chaîne de caractères indiquant quel type d'opération (interne) est à " +"court de mémoire. À noter qu'en raison de l'architecture interne de gestion " +"de la mémoire (la fonction :c:func:`malloc` du C), l'interpréteur peut ne " +"pas toujours être capable de rattraper cette situation ; il lève néanmoins " +"une exception pour qu'une pile d'appels puisse être affichée, dans le cas où " +"un programme en cours d'exécution en était la cause." + +#: ../Doc/library/exceptions.rst:229 +msgid "" +"Raised when a local or global name is not found. This applies only to " +"unqualified names. The associated value is an error message that includes " +"the name that could not be found." +msgstr "" +"Levée lorsqu'un nom local ou global n'est pas trouvé. Ceci ne s'applique " +"qu'aux noms non qualifiés. La valeur associée est un message d'erreur qui " +"inclut le nom qui n'a pas pu être trouvé." + +#: ../Doc/library/exceptions.rst:236 +msgid "" +"This exception is derived from :exc:`RuntimeError`. In user defined base " +"classes, abstract methods should raise this exception when they require " +"derived classes to override the method, or while the class is being " +"developed to indicate that the real implementation still needs to be added." +msgstr "" +"Cette exception est dérivée de :exc:`RuntimeError`. Dans les classes de base " +"définies par l'utilisateur, les méthodes abstraites devraient lever cette " +"exception lorsqu'elles nécessitent des classes dérivées pour remplacer la " +"méthode, ou lorsque la classe est en cours de développement pour indiquer " +"que l'implémentation concrète doit encore être ajoutée." + +#: ../Doc/library/exceptions.rst:243 +msgid "" +"It should not be used to indicate that an operator or method is not meant to " +"be supported at all -- in that case either leave the operator / method " +"undefined or, if a subclass, set it to :data:`None`." +msgstr "" +"Elle ne devrait pas être utilisée pour indiquer qu'un opérateur ou qu'une " +"méthode n'est pas destiné à être pris en charge du tout -- dans ce cas, " +"laissez soit l'opérateur / la méthode non défini, soit, s'il s'agit d'une " +"sous-classe, assignez-le à :data:`None`." + +#: ../Doc/library/exceptions.rst:249 +msgid "" +"``NotImplementedError`` and ``NotImplemented`` are not interchangeable, even " +"though they have similar names and purposes. See :data:`NotImplemented` for " +"details on when to use it." +msgstr "" +"``NotImplementedError`` et ``NotImplemented`` ne sont pas interchangeables, " +"même s'ils ont des noms et des objectifs similaires. Voir :data:" +"`NotImplemented` pour des détails sur la façon de les utiliser." + +#: ../Doc/library/exceptions.rst:258 +msgid "" +"This exception is raised when a system function returns a system-related " +"error, including I/O failures such as \"file not found\" or \"disk full" +"\" (not for illegal argument types or other incidental errors)." +msgstr "" +"Cette exception est levée lorsqu'une fonction système retourne une erreur " +"liée au système, incluant les erreurs entrées-sorties telles que \"fichier " +"non trouvé\" ou \"disque plein\" (pas pour les types d'arguments illégaux ou " +"d'autres erreurs accidentelles)." + +#: ../Doc/library/exceptions.rst:262 +msgid "" +"The second form of the constructor sets the corresponding attributes, " +"described below. The attributes default to :const:`None` if not specified. " +"For backwards compatibility, if three arguments are passed, the :attr:" +"`~BaseException.args` attribute contains only a 2-tuple of the first two " +"constructor arguments." +msgstr "" +"La deuxième forme du constructeur définit les attributs correspondants, " +"décrits ci-dessous. Les attributs par défaut sont :const:`None` si non " +"spécifiés. Pour la rétrocompatibilité, si trois arguments sont passés, " +"l'attribut :attr:`~BaseException.args` contient seulement un *tuple* à deux " +"valeurs des deux premiers arguments du constructeur." + +#: ../Doc/library/exceptions.rst:268 +msgid "" +"The constructor often actually returns a subclass of :exc:`OSError`, as " +"described in `OS exceptions`_ below. The particular subclass depends on the " +"final :attr:`.errno` value. This behaviour only occurs when constructing :" +"exc:`OSError` directly or via an alias, and is not inherited when " +"subclassing." +msgstr "" +"Le constructeur retourne souvent une sous-classe d':exc:`OSError`, comme " +"décrit dans `OS exceptions`_ ci-dessous. La sous-classe particulière dépend " +"de la valeur finale d':attr:`.errno`. Ce comportement ne se produit que lors " +"de la construction d':exc:`OSError` directement ou via un alias, et n'est " +"pas hérité lors du sous-classement." + +#: ../Doc/library/exceptions.rst:276 +msgid "A numeric error code from the C variable :c:data:`errno`." +msgstr "Code d'erreur numérique de la variable C :c:data:`errno`." + +#: ../Doc/library/exceptions.rst:280 +msgid "" +"Under Windows, this gives you the native Windows error code. The :attr:`." +"errno` attribute is then an approximate translation, in POSIX terms, of that " +"native error code." +msgstr "" +"Sous Windows, cela donne le code d'erreur Windows natif. L'attribut :attr:`." +"errno` est alors une traduction approximative, en termes POSIX, de ce code " +"d'erreur natif." + +#: ../Doc/library/exceptions.rst:284 +msgid "" +"Under Windows, if the *winerror* constructor argument is an integer, the :" +"attr:`.errno` attribute is determined from the Windows error code, and the " +"*errno* argument is ignored. On other platforms, the *winerror* argument is " +"ignored, and the :attr:`winerror` attribute does not exist." +msgstr "" +"Sous Windows, si l'argument du constructeur *winerror* est un entier, " +"l'attribut :attr:`.errno` est déterminé à partir du code d'erreur Windows, " +"et l'argument *errno* est ignoré. Sur d'autres plateformes, l'argument " +"*winerror* est ignoré, et l'attribut :attr:`winerror` n'existe pas." + +#: ../Doc/library/exceptions.rst:292 +msgid "" +"The corresponding error message, as provided by the operating system. It is " +"formatted by the C functions :c:func:`perror` under POSIX, and :c:func:" +"`FormatMessage` under Windows." +msgstr "" +"Le message d'erreur correspondant, tel que fourni par le système " +"d'exploitation. Il est formaté par les fonctions C :c:func:`perror` sous " +"POSIX, et :c:func:`FormatMessage` sous Windows." + +#: ../Doc/library/exceptions.rst:300 +msgid "" +"For exceptions that involve a file system path (such as :func:`open` or :" +"func:`os.unlink`), :attr:`filename` is the file name passed to the function. " +"For functions that involve two file system paths (such as :func:`os." +"rename`), :attr:`filename2` corresponds to the second file name passed to " +"the function." +msgstr "" +"Pour les exceptions qui font référence à un chemin d'accès au système de " +"fichiers (comme :func:`open` ou :func:`os.unlink`), :attr:`filename` est le " +"nom du fichier transmis à la fonction. Pour les fonctions qui font référence " +"à deux chemins d'accès au système de fichiers (comme :func:`os.rename`), :" +"attr:`filename2` correspond au deuxième nom de fichier passé à la fonction." + +#: ../Doc/library/exceptions.rst:307 +msgid "" +":exc:`EnvironmentError`, :exc:`IOError`, :exc:`WindowsError`, :exc:`socket." +"error`, :exc:`select.error` and :exc:`mmap.error` have been merged into :exc:" +"`OSError`, and the constructor may return a subclass." +msgstr "" +":exc:`EnvironmentError`, :exc:`IOError`, :exc:`WindowsError`, :exc:`socket." +"error`, :exc:`select.error` et :exc:`mmap.error` ont fusionnées en :exc:" +"`OSError`, et le constructeur peut renvoyer une sous-classe." + +#: ../Doc/library/exceptions.rst:313 +msgid "" +"The :attr:`filename` attribute is now the original file name passed to the " +"function, instead of the name encoded to or decoded from the filesystem " +"encoding. Also, the *filename2* constructor argument and attribute was " +"added." +msgstr "" +"L'attribut :attr:`filename` est maintenant le nom du fichier originel passé " +"à la fonction, au lieu du nom encodé ou décodé à partir de l'encodage du " +"système de fichiers. De plus, l'argument du constructeur et attribut " +"*filename2* a été ajouté." + +#: ../Doc/library/exceptions.rst:322 +msgid "" +"Raised when the result of an arithmetic operation is too large to be " +"represented. This cannot occur for integers (which would rather raise :exc:" +"`MemoryError` than give up). However, for historical reasons, OverflowError " +"is sometimes raised for integers that are outside a required range. " +"Because of the lack of standardization of floating point exception handling " +"in C, most floating point operations are not checked." +msgstr "" +"Levée lorsque le résultat d'une opération arithmétique est trop grand pour " +"être représenté. Cela ne peut pas se produire pour les entiers (qui " +"préfèrent lever :exc:`MemoryError` plutôt que d'abandonner). Cependant, pour " +"des raisons historiques, OverflowError est parfois levée pour des entiers " +"qui sont en dehors d'une plage requise. En raison de l'absence de " +"normalisation de la gestion des exceptions de virgule flottante en C, la " +"plupart des opérations en virgule flottante ne sont pas vérifiées." + +#: ../Doc/library/exceptions.rst:332 +msgid "" +"This exception is derived from :exc:`RuntimeError`. It is raised when the " +"interpreter detects that the maximum recursion depth (see :func:`sys." +"getrecursionlimit`) is exceeded." +msgstr "" +"Cette exception est dérivée de :exc:`RuntimeError`. Elle est levée lorsque " +"l'interpréteur détecte que la profondeur de récursivité maximale (voir :func:" +"`sys.getrecursionlimit`) est dépassée." + +#: ../Doc/library/exceptions.rst:336 +msgid "Previously, a plain :exc:`RuntimeError` was raised." +msgstr "Auparavant, une simple :exc:`RuntimeError` était levée." + +#: ../Doc/library/exceptions.rst:342 +msgid "" +"This exception is raised when a weak reference proxy, created by the :func:" +"`weakref.proxy` function, is used to access an attribute of the referent " +"after it has been garbage collected. For more information on weak " +"references, see the :mod:`weakref` module." +msgstr "" +"Cette exception est levée lorsqu'un pointeur faible d'un objet proxy, créé " +"par la fonction :func:`weakref.proxy`, est utilisé pour accéder à un " +"attribut du référent après qu'il ait été récupéré par le ramasse-miettes. " +"Pour plus d'informations sur les pointeurs faibles, voir le module :mod:" +"`weakref`." + +#: ../Doc/library/exceptions.rst:350 +msgid "" +"Raised when an error is detected that doesn't fall in any of the other " +"categories. The associated value is a string indicating what precisely went " +"wrong." +msgstr "" +"Levée lorsqu'une erreur qui n'appartient à aucune des autres catégories est " +"détectée. La valeur associée est une chaîne de caractères indiquant " +"précisément ce qui s'est mal passé." + +#: ../Doc/library/exceptions.rst:357 +msgid "" +"Raised by built-in function :func:`next` and an :term:`iterator`\\'s :meth:" +"`~iterator.__next__` method to signal that there are no further items " +"produced by the iterator." +msgstr "" +"Levée par la fonction native :func:`next` et la méthode :meth:`~iterator." +"__next__` d'un :term:`iterator` (itérateur) pour signaler qu'il n'y a pas " +"d'autres éléments produits par l'itérateur." + +#: ../Doc/library/exceptions.rst:361 +msgid "" +"The exception object has a single attribute :attr:`value`, which is given as " +"an argument when constructing the exception, and defaults to :const:`None`." +msgstr "" +"L'objet exception a un unique attribut :attr:`value`, qui est donné en " +"argument lors de la construction de l'exception, et vaut :const:`None` par " +"défaut." + +#: ../Doc/library/exceptions.rst:365 +msgid "" +"When a :term:`generator` or :term:`coroutine` function returns, a new :exc:" +"`StopIteration` instance is raised, and the value returned by the function " +"is used as the :attr:`value` parameter to the constructor of the exception." +msgstr "" +"Lorsqu'une fonction de type :term:`generator` ou :term:`coroutine` retourne " +"une valeur, une nouvelle instance de :exc:`StopIteration` est levée, et la " +"valeur retournée par la fonction est passée au paramètre :attr:`value` du " +"constructeur de l'exception." + +#: ../Doc/library/exceptions.rst:370 +msgid "" +"If a generator code directly or indirectly raises :exc:`StopIteration`, it " +"is converted into a :exc:`RuntimeError` (retaining the :exc:`StopIteration` " +"as the new exception's cause)." +msgstr "" +"Si le code d'un générateur lève, directement ou indirectement, une :exc:" +"`StopIteration`, elle est convertie en :exc:`RuntimeError` (en conservant :" +"exc:`StopIteration` comme cause de la nouvelle exception)." + +#: ../Doc/library/exceptions.rst:374 +msgid "" +"Added ``value`` attribute and the ability for generator functions to use it " +"to return a value." +msgstr "" +"Ajout de l'attribut ``value`` et de la possibilité pour les fonctions de " +"générateur de l'utiliser pour retourner une valeur." + +#: ../Doc/library/exceptions.rst:378 +msgid "" +"Introduced the RuntimeError transformation via ``from __future__ import " +"generator_stop``, see :pep:`479`." +msgstr "" +"Introduit la transformation des erreurs RuntimeError via ``from __future__ " +"import generator_stop``, cf. :pep:`479`." + +#: ../Doc/library/exceptions.rst:382 +msgid "" +"Enable :pep:`479` for all code by default: a :exc:`StopIteration` error " +"raised in a generator is transformed into a :exc:`RuntimeError`." +msgstr "" +"Active :pep:`479` pour tout le code par défaut : quand une erreur :exc:" +"`StopIteration` est levée dans un générateur elle est transformée en une :" +"exc:`RuntimeError`." + +#: ../Doc/library/exceptions.rst:388 +msgid "" +"Must be raised by :meth:`__anext__` method of an :term:`asynchronous " +"iterator` object to stop the iteration." +msgstr "" +"Doit être levée par la méthode :meth:`__anext__` d'un objet :term:" +"`asynchronous iterator` pour arrêter l'itération." + +#: ../Doc/library/exceptions.rst:395 +msgid "" +"Raised when the parser encounters a syntax error. This may occur in an :" +"keyword:`import` statement, in a call to the built-in functions :func:`exec` " +"or :func:`eval`, or when reading the initial script or standard input (also " +"interactively)." +msgstr "" +"Levée lorsque l'analyseur syntaxique rencontre une erreur de syntaxe. Cela " +"peut se produire dans une instruction :keyword:`import`, dans un appel aux " +"fonctions natives :func:`exec` ou :func:`eval`, ou lors de la lecture du " +"script initial ou de l'entrée standard (également de manière interactive)." + +#: ../Doc/library/exceptions.rst:400 +msgid "" +"Instances of this class have attributes :attr:`filename`, :attr:`lineno`, :" +"attr:`offset` and :attr:`text` for easier access to the details. :func:" +"`str` of the exception instance returns only the message." +msgstr "" +"Les instances de cette classe ont des attributs :attr:`filename`, :attr:" +"`lineno`, :attr:`offset` et :attr:`text` pour accéder plus facilement aux " +"détails. La représentation :func:`str` de l'instance de l'exception retourne " +"seulement le message." + +#: ../Doc/library/exceptions.rst:407 +msgid "" +"Base class for syntax errors related to incorrect indentation. This is a " +"subclass of :exc:`SyntaxError`." +msgstr "" +"Classe de base pour les erreurs de syntaxe liées à une indentation " +"incorrecte. C'est une sous-classe de :exc:`SyntaxError`." + +#: ../Doc/library/exceptions.rst:413 +msgid "" +"Raised when indentation contains an inconsistent use of tabs and spaces. " +"This is a subclass of :exc:`IndentationError`." +msgstr "" +"Levée lorsqu'une indentation contient une utilisation incohérente des " +"tabulations et des espaces. C'est une sous-classe de :exc:`IndentationError`." + +#: ../Doc/library/exceptions.rst:419 +msgid "" +"Raised when the interpreter finds an internal error, but the situation does " +"not look so serious to cause it to abandon all hope. The associated value is " +"a string indicating what went wrong (in low-level terms)." +msgstr "" +"Levée lorsque l'interpréteur trouve une erreur interne, mais que la " +"situation ne semble pas si grave au point de lui faire abandonner tout " +"espoir. La valeur associée est une chaîne de caractères indiquant l'erreur " +"qui est survenue (en termes bas niveau)." + +#: ../Doc/library/exceptions.rst:423 +msgid "" +"You should report this to the author or maintainer of your Python " +"interpreter. Be sure to report the version of the Python interpreter (``sys." +"version``; it is also printed at the start of an interactive Python " +"session), the exact error message (the exception's associated value) and if " +"possible the source of the program that triggered the error." +msgstr "" +"Vous devriez le signaler à l'auteur ou au responsable de votre interpréteur " +"Python. Assurez-vous de signaler la version de l'interpréteur (``sys." +"version`` ; elle est également affichée au lancement d'une session " +"interactive), le message d'erreur exact (la valeur associée à l'exception) " +"et si possible le code source du programme qui a déclenché l'erreur." + +#: ../Doc/library/exceptions.rst:432 +msgid "" +"This exception is raised by the :func:`sys.exit` function. It inherits " +"from :exc:`BaseException` instead of :exc:`Exception` so that it is not " +"accidentally caught by code that catches :exc:`Exception`. This allows the " +"exception to properly propagate up and cause the interpreter to exit. When " +"it is not handled, the Python interpreter exits; no stack traceback is " +"printed. The constructor accepts the same optional argument passed to :func:" +"`sys.exit`. If the value is an integer, it specifies the system exit status " +"(passed to C's :c:func:`exit` function); if it is ``None``, the exit status " +"is zero; if it has another type (such as a string), the object's value is " +"printed and the exit status is one." +msgstr "" +"Cette exception est levée par la fonction :func:`sys.exit`. Elle hérite de :" +"exc:`BaseException` au lieu d':exc:`Exception` pour ne pas qu'elle soit " +"accidentellement capturée par du code qui capture :exc:`Exception`. Cela " +"permet à l'exception de se propager correctement et de faire quitter " +"l'interpréteur. Lorsqu'elle n'est pas gérée, l'interpréteur Python quitte ; " +"aucune trace d'appels n'est affichée. Le constructeur accepte le même " +"argument optionnel passé à :func:`sys.exit`. Si la valeur est un entier, " +"elle spécifie l'état de sortie du système (passé à la fonction C :c:func:" +"`exit`) ; si elle est ``None``, l'état de sortie est zéro ; si elle a un " +"autre type (comme une chaîne de caractères), la valeur de l'objet est " +"affichée et l'état de sortie est un." + +#: ../Doc/library/exceptions.rst:443 +msgid "" +"A call to :func:`sys.exit` is translated into an exception so that clean-up " +"handlers (:keyword:`finally` clauses of :keyword:`try` statements) can be " +"executed, and so that a debugger can execute a script without running the " +"risk of losing control. The :func:`os._exit` function can be used if it is " +"absolutely positively necessary to exit immediately (for example, in the " +"child process after a call to :func:`os.fork`)." +msgstr "" +"Un appel à :func:`sys.exit` est traduit en une exception pour que les " +"gestionnaires de nettoyage (les clauses :keyword:`finally` des instructions :" +"keyword:`try`) puissent être exécutés, et pour qu'un débogueur puisse " +"exécuter un script sans courir le risque de perdre le contrôle. La fonction :" +"func:`os._exit` peut être utilisée s'il est absolument nécessaire de sortir " +"immédiatement (par exemple, dans le processus enfant après un appel à :func:" +"`os.fork`)." + +#: ../Doc/library/exceptions.rst:452 +msgid "" +"The exit status or error message that is passed to the constructor. " +"(Defaults to ``None``.)" +msgstr "" +"L'état de sortie ou le message d'erreur passé au constructeur. (``None`` par " +"défaut.)" + +#: ../Doc/library/exceptions.rst:458 +msgid "" +"Raised when an operation or function is applied to an object of " +"inappropriate type. The associated value is a string giving details about " +"the type mismatch." +msgstr "" +"Levée lorsqu'une opération ou fonction est appliquée à un objet d'un type " +"inapproprié. La valeur associée est une chaîne de caractères donnant des " +"détails sur le type d'inadéquation." + +#: ../Doc/library/exceptions.rst:461 +msgid "" +"This exception may be raised by user code to indicate that an attempted " +"operation on an object is not supported, and is not meant to be. If an " +"object is meant to support a given operation but has not yet provided an " +"implementation, :exc:`NotImplementedError` is the proper exception to raise." +msgstr "" +"Cette exception peut être levée par du code utilisateur pour indiquer qu'une " +"tentative d'opération sur un objet n'est pas prise en charge, et n'est pas " +"censée l'être. Si un objet est destiné à prendre en charge une opération " +"donnée mais n'a pas encore fourni une implémentation, lever :exc:" +"`NotImplementedError` est plus approprié." + +#: ../Doc/library/exceptions.rst:466 +msgid "" +"Passing arguments of the wrong type (e.g. passing a :class:`list` when an :" +"class:`int` is expected) should result in a :exc:`TypeError`, but passing " +"arguments with the wrong value (e.g. a number outside expected boundaries) " +"should result in a :exc:`ValueError`." +msgstr "" +"Le passage d'arguments du mauvais type (e.g. passer une :class:`list` quand " +"un :class:`int` est attendu) devrait résulter en un :exc:`TypeError`, mais " +"le passage d'arguments avec la mauvaise valeur (e.g. un nombre en dehors des " +"limites attendues) devrait résulter en une :exc:`ValueError`." + +#: ../Doc/library/exceptions.rst:473 +msgid "" +"Raised when a reference is made to a local variable in a function or method, " +"but no value has been bound to that variable. This is a subclass of :exc:" +"`NameError`." +msgstr "" +"Levée lorsqu'une référence est faite à une variable locale dans une fonction " +"ou une méthode, mais qu'aucune valeur n'a été liée à cette variable. C'est " +"une sous-classe de :exc:`NameError`." + +#: ../Doc/library/exceptions.rst:480 +msgid "" +"Raised when a Unicode-related encoding or decoding error occurs. It is a " +"subclass of :exc:`ValueError`." +msgstr "" +"Levée lorsqu'une erreur d'encodage ou de décodage liée à Unicode se produit. " +"C'est une sous-classe de :exc:`ValueError`." + +#: ../Doc/library/exceptions.rst:483 +msgid "" +":exc:`UnicodeError` has attributes that describe the encoding or decoding " +"error. For example, ``err.object[err.start:err.end]`` gives the particular " +"invalid input that the codec failed on." +msgstr "" +":exc:`UnicodeError` a des attributs qui décrivent l'erreur d'encodage ou de " +"décodage. Par exemple, ``err.object[err.start:err.end]`` donne l'entrée " +"particulière invalide sur laquelle le codec a échoué." + +#: ../Doc/library/exceptions.rst:489 +msgid "The name of the encoding that raised the error." +msgstr "Le nom de l'encodage qui a provoqué l'erreur." + +#: ../Doc/library/exceptions.rst:493 +msgid "A string describing the specific codec error." +msgstr "Une chaîne de caractères décrivant l'erreur de codec spécifique." + +#: ../Doc/library/exceptions.rst:497 +msgid "The object the codec was attempting to encode or decode." +msgstr "L'objet que le codec essayait d'encoder ou de décoder." + +#: ../Doc/library/exceptions.rst:501 +msgid "The first index of invalid data in :attr:`object`." +msgstr "Le premier index des données invalides dans :attr:`object`." + +#: ../Doc/library/exceptions.rst:505 +msgid "The index after the last invalid data in :attr:`object`." +msgstr "L'index après la dernière donnée invalide dans :attr:`object`." + +#: ../Doc/library/exceptions.rst:510 +msgid "" +"Raised when a Unicode-related error occurs during encoding. It is a " +"subclass of :exc:`UnicodeError`." +msgstr "" +"Levée lorsqu'une erreur liée à Unicode se produit durant l'encodage. C'est " +"une sous-classe d':exc:`UnicodeError`." + +#: ../Doc/library/exceptions.rst:516 +msgid "" +"Raised when a Unicode-related error occurs during decoding. It is a " +"subclass of :exc:`UnicodeError`." +msgstr "" +"Levée lorsqu'une erreur liée à Unicode se produit durant le décodage. C'est " +"une sous-classe d':exc:`UnicodeError`." + +#: ../Doc/library/exceptions.rst:522 +msgid "" +"Raised when a Unicode-related error occurs during translating. It is a " +"subclass of :exc:`UnicodeError`." +msgstr "" +"Levée lorsqu'une erreur liée à Unicode se produit durant la traduction. " +"C'est une sous-classe d':exc:`UnicodeError`." + +#: ../Doc/library/exceptions.rst:528 +msgid "" +"Raised when an operation or function receives an argument that has the right " +"type but an inappropriate value, and the situation is not described by a " +"more precise exception such as :exc:`IndexError`." +msgstr "" +"Levée lorsqu'une opération ou fonction native reçoit un argument qui possède " +"le bon type mais une valeur inappropriée, et que la situation n'est pas " +"décrite par une exception plus précise telle que :exc:`IndexError`." + +#: ../Doc/library/exceptions.rst:535 +msgid "" +"Raised when the second argument of a division or modulo operation is zero. " +"The associated value is a string indicating the type of the operands and the " +"operation." +msgstr "" +"Levée lorsque le second argument d'une opération de division ou d'un modulo " +"est zéro. La valeur associée est une chaîne indiquant le type des opérandes " +"et de l'opération." + +#: ../Doc/library/exceptions.rst:540 +msgid "" +"The following exceptions are kept for compatibility with previous versions; " +"starting from Python 3.3, they are aliases of :exc:`OSError`." +msgstr "" +"Les exceptions suivantes sont conservées pour la compatibilité avec les " +"anciennes versions ; depuis Python 3.3, ce sont des alias d':exc:`OSError`." + +#: ../Doc/library/exceptions.rst:549 +msgid "Only available on Windows." +msgstr "Seulement disponible sous Windows." + +#: ../Doc/library/exceptions.rst:553 +msgid "OS exceptions" +msgstr "Exceptions système" + +#: ../Doc/library/exceptions.rst:555 +msgid "" +"The following exceptions are subclasses of :exc:`OSError`, they get raised " +"depending on the system error code." +msgstr "" +"Les exceptions suivantes sont des sous-classes d':exc:`OSError`, elles sont " +"levées en fonction du code d'erreur système." + +#: ../Doc/library/exceptions.rst:560 +msgid "" +"Raised when an operation would block on an object (e.g. socket) set for non-" +"blocking operation. Corresponds to :c:data:`errno` ``EAGAIN``, ``EALREADY``, " +"``EWOULDBLOCK`` and ``EINPROGRESS``." +msgstr "" +"Levée lorsqu'une opération bloque sur un objet (par exemple un connecteur) " +"configuré pour une opération non-bloquante. Correspond à :c:data:`errno` " +"``EAGAIN``, ``EALREADY``, ``EWOULDBLOCK`` et ``EINPROGRESS``." + +#: ../Doc/library/exceptions.rst:565 +msgid "" +"In addition to those of :exc:`OSError`, :exc:`BlockingIOError` can have one " +"more attribute:" +msgstr "" +"En plus de ceux de :exc:`OSError`, :exc:`BlockingIOError` peut avoir un " +"attribut de plus :" + +#: ../Doc/library/exceptions.rst:570 +msgid "" +"An integer containing the number of characters written to the stream before " +"it blocked. This attribute is available when using the buffered I/O classes " +"from the :mod:`io` module." +msgstr "" +"Un nombre entier contenant le nombre de caractères écrits dans le flux avant " +"qu'il ne soit bloqué. Cet attribut est disponible lors de l'utilisation des " +"classes tampon entrées-sorties du module :mod:`io`." + +#: ../Doc/library/exceptions.rst:576 +msgid "" +"Raised when an operation on a child process failed. Corresponds to :c:data:" +"`errno` ``ECHILD``." +msgstr "" +"Levée lorsqu'une opération sur un processus enfant a échoué. Correspond à :c:" +"data:`errno` ``ECHILD``." + +#: ../Doc/library/exceptions.rst:581 +msgid "A base class for connection-related issues." +msgstr "Une classe de base pour les problèmes de connexion." + +#: ../Doc/library/exceptions.rst:583 +msgid "" +"Subclasses are :exc:`BrokenPipeError`, :exc:`ConnectionAbortedError`, :exc:" +"`ConnectionRefusedError` and :exc:`ConnectionResetError`." +msgstr "" +"Les sous-classes sont :exc:`BrokenPipeError`, :exc:" +"`ConnectionAbortedError`, :exc:`ConnectionRefusedError` et :exc:" +"`ConnectionResetError`." + +#: ../Doc/library/exceptions.rst:588 +msgid "" +"A subclass of :exc:`ConnectionError`, raised when trying to write on a pipe " +"while the other end has been closed, or trying to write on a socket which " +"has been shutdown for writing. Corresponds to :c:data:`errno` ``EPIPE`` and " +"``ESHUTDOWN``." +msgstr "" +"Une sous-classe de :exc:`ConnectionError`, levé en essayant d'écrire sur un " +"*pipe* alors que l'autre extrémité a été fermée, ou en essayant d'écrire sur " +"un connecteur (*socket* en anglais) qui a été fermé pour l'écriture. " +"Correspond à :c:data:`errno` ``EPIPE`` et ``ESHUTDOWN``." + +#: ../Doc/library/exceptions.rst:595 +msgid "" +"A subclass of :exc:`ConnectionError`, raised when a connection attempt is " +"aborted by the peer. Corresponds to :c:data:`errno` ``ECONNABORTED``." +msgstr "" +"Une sous-classe de :exc:`ConnectionError`, levée lorsqu'une tentative de " +"connexion est interrompue par le pair. Correspond à :c:data:`errno` " +"``ECONNABORTED``." + +#: ../Doc/library/exceptions.rst:601 +msgid "" +"A subclass of :exc:`ConnectionError`, raised when a connection attempt is " +"refused by the peer. Corresponds to :c:data:`errno` ``ECONNREFUSED``." +msgstr "" +"Une sous-classe de :exc:`ConnectionError`, levée lorsqu'une tentative de " +"connexion est refusée par le pair. Correspond à :c:data:`errno` " +"``ECONNREFUSED``." + +#: ../Doc/library/exceptions.rst:607 +msgid "" +"A subclass of :exc:`ConnectionError`, raised when a connection is reset by " +"the peer. Corresponds to :c:data:`errno` ``ECONNRESET``." +msgstr "" +"Une sous-classe de :exc:`ConnectionError`, levée lorsqu'une connexion est " +"réinitialisée par le pair. Correspond à :c:data:`errno` ``ECONNRESET``." + +#: ../Doc/library/exceptions.rst:613 +msgid "" +"Raised when trying to create a file or directory which already exists. " +"Corresponds to :c:data:`errno` ``EEXIST``." +msgstr "" +"Levée en essayant de créer un fichier ou un répertoire qui existe déjà. " +"Correspond à :c:data:`errno` ``EEXIST``." + +#: ../Doc/library/exceptions.rst:618 +msgid "" +"Raised when a file or directory is requested but doesn't exist. Corresponds " +"to :c:data:`errno` ``ENOENT``." +msgstr "" +"Levée lorsqu'un fichier ou répertoire est demandé mais n'existe pas. " +"Correspond à :c:data:`errno` ``ENOENT``." + +#: ../Doc/library/exceptions.rst:623 +msgid "" +"Raised when a system call is interrupted by an incoming signal. Corresponds " +"to :c:data:`errno` :py:data:`~errno.EINTR`." +msgstr "" +"Levée lorsqu'un appel système est interrompu par un signal entrant. " +"Correspond à :c:data:`errno` :py:data:`~errno.EINTR`." + +#: ../Doc/library/exceptions.rst:626 +msgid "" +"Python now retries system calls when a syscall is interrupted by a signal, " +"except if the signal handler raises an exception (see :pep:`475` for the " +"rationale), instead of raising :exc:`InterruptedError`." +msgstr "" +"Python relance maintenant les appels système lorsqu'ils sont interrompus par " +"un signal, sauf si le gestionnaire de signal lève une exception (voir :pep:" +"`475` pour les raisons), au lieu de lever :exc:`InterruptedError`." + +#: ../Doc/library/exceptions.rst:633 +msgid "" +"Raised when a file operation (such as :func:`os.remove`) is requested on a " +"directory. Corresponds to :c:data:`errno` ``EISDIR``." +msgstr "" +"Levée lorsqu'une opération sur un fichier (comme :func:`os.remove`) est " +"demandée sur un répertoire. Correspond à :c:data:`errno` ``EISDIR``." + +#: ../Doc/library/exceptions.rst:639 +msgid "" +"Raised when a directory operation (such as :func:`os.listdir`) is requested " +"on something which is not a directory. Corresponds to :c:data:`errno` " +"``ENOTDIR``." +msgstr "" +"Levée lorsqu'une opération sur un répertoire (comme :func:`os.listdir`) est " +"demandée sur autre chose qu'un répertoire. Correspond à :c:data:`errno` " +"``ENOTDIR``." + +#: ../Doc/library/exceptions.rst:645 +msgid "" +"Raised when trying to run an operation without the adequate access rights - " +"for example filesystem permissions. Corresponds to :c:data:`errno` " +"``EACCES`` and ``EPERM``." +msgstr "" +"Levée lorsqu'on essaye d'exécuter une opération sans les droits d'accès " +"adéquats — par exemple les permissions du système de fichiers. Correspond à :" +"c:data:`errno` ``EACCES`` et ``EPERM``." + +#: ../Doc/library/exceptions.rst:651 +msgid "" +"Raised when a given process doesn't exist. Corresponds to :c:data:`errno` " +"``ESRCH``." +msgstr "" +"Levée lorsqu'un processus donné n'existe pas. Correspond à :c:data:`errno` " +"``ESRCH``." + +#: ../Doc/library/exceptions.rst:656 +msgid "" +"Raised when a system function timed out at the system level. Corresponds to :" +"c:data:`errno` ``ETIMEDOUT``." +msgstr "" +"Levée lorsqu'une fonction système a expiré au niveau système. Correspond à :" +"c:data:`errno` ``ETIMEDOUT``." + +#: ../Doc/library/exceptions.rst:659 +msgid "All the above :exc:`OSError` subclasses were added." +msgstr "Toutes les sous-classes d':exc:`OSError` ci-dessus ont été ajoutées." + +#: ../Doc/library/exceptions.rst:665 +msgid ":pep:`3151` - Reworking the OS and IO exception hierarchy" +msgstr ":pep:`3151` -- Refonte de la hiérarchie des exceptions système et IO" + +#: ../Doc/library/exceptions.rst:671 +msgid "Warnings" +msgstr "Avertissements" + +#: ../Doc/library/exceptions.rst:673 +msgid "" +"The following exceptions are used as warning categories; see the :ref:" +"`warning-categories` documentation for more details." +msgstr "" +"Les exceptions suivantes sont utilisées comme catégories d'avertissement ; " +"voir :mod:`warning-categories` pour plus d'informations." + +#: ../Doc/library/exceptions.rst:678 +msgid "Base class for warning categories." +msgstr "Classe de base pour les catégories d'avertissement." + +#: ../Doc/library/exceptions.rst:683 +msgid "Base class for warnings generated by user code." +msgstr "" +"Classe de base pour les avertissements générés par du code utilisateur." + +#: ../Doc/library/exceptions.rst:688 +msgid "" +"Base class for warnings about deprecated features when those warnings are " +"intended for other Python developers." +msgstr "" +"Classe de base pour les avertissements sur les fonctionnalités obsolètes, " +"lorsque ces avertissements sont destinés aux autres développeurs Python." + +#: ../Doc/library/exceptions.rst:694 +msgid "" +"Base class for warnings about features which are obsolete and expected to be " +"deprecated in the future, but are not deprecated at the moment." +msgstr "" +"Classe de base pour les avertissements d'obsolescence programmée. Ils " +"indiquent que la fonctionnalité peut encore être utilisée actuellement, mais " +"qu'elle sera supprimée dans le futur." + +#: ../Doc/library/exceptions.rst:698 +msgid "" +"This class is rarely used as emitting a warning about a possible upcoming " +"deprecation is unusual, and :exc:`DeprecationWarning` is preferred for " +"already active deprecations." +msgstr "" +"Cette classe est rarement utilisée car émettre un avertissement à propos " +"d’une obsolescence à venir est inhabituel, et :exc:`DeprecationWarning` est " +"préféré pour les obsolescences actuelles." + +#: ../Doc/library/exceptions.rst:705 +msgid "Base class for warnings about dubious syntax." +msgstr "Classe de base pour les avertissements sur de la syntaxe douteuse." + +#: ../Doc/library/exceptions.rst:710 +msgid "Base class for warnings about dubious runtime behavior." +msgstr "" +"Classe de base pour les avertissements sur les comportements d'exécution " +"douteux." + +#: ../Doc/library/exceptions.rst:715 +msgid "" +"Base class for warnings about deprecated features when those warnings are " +"intended for end users of applications that are written in Python." +msgstr "" +"Classe de base pour les avertissements à propos de fonctionnalités qui " +"seront obsolètes dans le futur quand ces avertissements destinés aux " +"utilisateurs finaux des applications écrites en Python." + +#: ../Doc/library/exceptions.rst:721 +msgid "Base class for warnings about probable mistakes in module imports." +msgstr "" +"Classe de base pour les avertissements sur des erreurs probables dans les " +"importations de modules." + +#: ../Doc/library/exceptions.rst:726 +msgid "Base class for warnings related to Unicode." +msgstr "Classe de base pour les avertissements liés à l'Unicode." + +#: ../Doc/library/exceptions.rst:731 +msgid "" +"Base class for warnings related to :class:`bytes` and :class:`bytearray`." +msgstr "" +"Classe de base pour les avertissements liés à :class:`bytes` et :class:" +"`bytearray`." + +#: ../Doc/library/exceptions.rst:736 +msgid "" +"Base class for warnings related to resource usage. Ignored by the default " +"warning filters." +msgstr "" +"Classe de base pour les avertissements liés à l'utilisation de ressources. " +"Ignorée par les filtres d’avertissements par défaut." + +#: ../Doc/library/exceptions.rst:744 +msgid "Exception hierarchy" +msgstr "Hiérarchie des exceptions" + +#: ../Doc/library/exceptions.rst:746 +msgid "The class hierarchy for built-in exceptions is:" +msgstr "La hiérarchie de classes pour les exceptions natives est la suivante :" + +#~ msgid "" +#~ "PendingDeprecationWarning was introduced as an \"ignored by default\" " +#~ "version of DeprecationWarning. But :exc:`DeprecationWarning` is also " +#~ "ignored by default since Python 2.7 and 3.2. There is not much difference " +#~ "between PendingDeprecationWarning and DeprecationWarning nowadays. " +#~ "DeprecationWarning is recommended in general." +#~ msgstr "" +#~ "*PendingDeprecationWarning* a été introduit en tant qu’une version de " +#~ "*DeprecationWarning* ignorée par défaut. Mais :exc:`DeprecationWarning` " +#~ "est aussi ignorée par défaut depuis Python 2.7 et 3.2. Il n’y a pas " +#~ "beaucoup de différence entre *PendingDeprecationWarning* et " +#~ "*DeprecationWarning* de nos jours. *DeprecationWarning* est recommandé en " +#~ "général." + +#~ msgid "" +#~ "Raised when a floating point operation fails. This exception is always " +#~ "defined, but can only be raised when Python is configured with the ``--" +#~ "with-fpectl`` option, or the :const:`WANT_SIGFPE_HANDLER` symbol is " +#~ "defined in the :file:`pyconfig.h` file." +#~ msgstr "" +#~ "Levée lorsqu'une opération en virgule flottante échoue. Cette exception " +#~ "est toujours définie, mais ne peut être levée que lorsque Python est " +#~ "configuré avec l'option ``--with-fpectl``, ou que le symbole :const:" +#~ "`WANT_SIGFPE_HANDLER` est défini dans le fichier :file:`pyconfig.h`." + +#~ msgid "Introduced the RuntimeError transformation." +#~ msgstr "Introduction de la transformation RuntimeError." + +#~ msgid "Base class for warnings about deprecated features." +#~ msgstr "" +#~ "Classe de base pour les avertissements sur les fonctionnalités obsolètes." + +#~ msgid "" +#~ "Base class for warnings about constructs that will change semantically in " +#~ "the future." +#~ msgstr "" +#~ "Classe de base pour les avertissements sur les constructions qui " +#~ "changeront sémantiquement dans le futur." diff --git a/library/faulthandler.po b/library/faulthandler.po new file mode 100644 index 000000000..4f08c50be --- /dev/null +++ b/library/faulthandler.po @@ -0,0 +1,213 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-29 00:24+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/faulthandler.rst:2 +msgid ":mod:`faulthandler` --- Dump the Python traceback" +msgstr "" + +#: ../Doc/library/faulthandler.rst:11 +msgid "" +"This module contains functions to dump Python tracebacks explicitly, on a " +"fault, after a timeout, or on a user signal. Call :func:`faulthandler." +"enable` to install fault handlers for the :const:`SIGSEGV`, :const:" +"`SIGFPE`, :const:`SIGABRT`, :const:`SIGBUS`, and :const:`SIGILL` signals. " +"You can also enable them at startup by setting the :envvar:" +"`PYTHONFAULTHANDLER` environment variable or by using the :option:`-X` " +"``faulthandler`` command line option." +msgstr "" + +#: ../Doc/library/faulthandler.rst:18 +msgid "" +"The fault handler is compatible with system fault handlers like Apport or " +"the Windows fault handler. The module uses an alternative stack for signal " +"handlers if the :c:func:`sigaltstack` function is available. This allows it " +"to dump the traceback even on a stack overflow." +msgstr "" + +#: ../Doc/library/faulthandler.rst:23 +msgid "" +"The fault handler is called on catastrophic cases and therefore can only use " +"signal-safe functions (e.g. it cannot allocate memory on the heap). Because " +"of this limitation traceback dumping is minimal compared to normal Python " +"tracebacks:" +msgstr "" + +#: ../Doc/library/faulthandler.rst:28 +msgid "" +"Only ASCII is supported. The ``backslashreplace`` error handler is used on " +"encoding." +msgstr "" + +#: ../Doc/library/faulthandler.rst:30 +msgid "Each string is limited to 500 characters." +msgstr "" + +#: ../Doc/library/faulthandler.rst:31 +msgid "" +"Only the filename, the function name and the line number are displayed. (no " +"source code)" +msgstr "" + +#: ../Doc/library/faulthandler.rst:33 +msgid "It is limited to 100 frames and 100 threads." +msgstr "" + +#: ../Doc/library/faulthandler.rst:34 +msgid "The order is reversed: the most recent call is shown first." +msgstr "" + +#: ../Doc/library/faulthandler.rst:36 +msgid "" +"By default, the Python traceback is written to :data:`sys.stderr`. To see " +"tracebacks, applications must be run in the terminal. A log file can " +"alternatively be passed to :func:`faulthandler.enable`." +msgstr "" + +#: ../Doc/library/faulthandler.rst:40 +msgid "" +"The module is implemented in C, so tracebacks can be dumped on a crash or " +"when Python is deadlocked." +msgstr "" + +#: ../Doc/library/faulthandler.rst:45 +msgid "Dumping the traceback" +msgstr "" + +#: ../Doc/library/faulthandler.rst:49 +msgid "" +"Dump the tracebacks of all threads into *file*. If *all_threads* is " +"``False``, dump only the current thread." +msgstr "" + +#: ../Doc/library/faulthandler.rst:52 ../Doc/library/faulthandler.rst:70 +#: ../Doc/library/faulthandler.rst:106 ../Doc/library/faulthandler.rst:128 +msgid "Added support for passing file descriptor to this function." +msgstr "" + +#: ../Doc/library/faulthandler.rst:57 +msgid "Fault handler state" +msgstr "" + +#: ../Doc/library/faulthandler.rst:61 +msgid "" +"Enable the fault handler: install handlers for the :const:`SIGSEGV`, :const:" +"`SIGFPE`, :const:`SIGABRT`, :const:`SIGBUS` and :const:`SIGILL` signals to " +"dump the Python traceback. If *all_threads* is ``True``, produce tracebacks " +"for every running thread. Otherwise, dump only the current thread." +msgstr "" + +#: ../Doc/library/faulthandler.rst:67 +msgid "" +"The *file* must be kept open until the fault handler is disabled: see :ref:" +"`issue with file descriptors `." +msgstr "" + +#: ../Doc/library/faulthandler.rst:73 +msgid "On Windows, a handler for Windows exception is also installed." +msgstr "" + +#: ../Doc/library/faulthandler.rst:78 +msgid "" +"Disable the fault handler: uninstall the signal handlers installed by :func:" +"`enable`." +msgstr "" + +#: ../Doc/library/faulthandler.rst:83 +msgid "Check if the fault handler is enabled." +msgstr "" + +#: ../Doc/library/faulthandler.rst:87 +msgid "Dumping the tracebacks after a timeout" +msgstr "" + +#: ../Doc/library/faulthandler.rst:91 +msgid "" +"Dump the tracebacks of all threads, after a timeout of *timeout* seconds, or " +"every *timeout* seconds if *repeat* is ``True``. If *exit* is ``True``, " +"call :c:func:`_exit` with status=1 after dumping the tracebacks. (Note :c:" +"func:`_exit` exits the process immediately, which means it doesn't do any " +"cleanup like flushing file buffers.) If the function is called twice, the " +"new call replaces previous parameters and resets the timeout. The timer has " +"a sub-second resolution." +msgstr "" + +#: ../Doc/library/faulthandler.rst:99 +msgid "" +"The *file* must be kept open until the traceback is dumped or :func:" +"`cancel_dump_traceback_later` is called: see :ref:`issue with file " +"descriptors `." +msgstr "" + +#: ../Doc/library/faulthandler.rst:103 +msgid "" +"This function is implemented using a watchdog thread and therefore is not " +"available if Python is compiled with threads disabled." +msgstr "" + +#: ../Doc/library/faulthandler.rst:111 +msgid "Cancel the last call to :func:`dump_traceback_later`." +msgstr "" + +#: ../Doc/library/faulthandler.rst:115 +msgid "Dumping the traceback on a user signal" +msgstr "" + +#: ../Doc/library/faulthandler.rst:119 +msgid "" +"Register a user signal: install a handler for the *signum* signal to dump " +"the traceback of all threads, or of the current thread if *all_threads* is " +"``False``, into *file*. Call the previous handler if chain is ``True``." +msgstr "" + +#: ../Doc/library/faulthandler.rst:123 +msgid "" +"The *file* must be kept open until the signal is unregistered by :func:" +"`unregister`: see :ref:`issue with file descriptors `." +msgstr "" + +#: ../Doc/library/faulthandler.rst:126 ../Doc/library/faulthandler.rst:137 +msgid "Not available on Windows." +msgstr "" + +#: ../Doc/library/faulthandler.rst:133 +msgid "" +"Unregister a user signal: uninstall the handler of the *signum* signal " +"installed by :func:`register`. Return ``True`` if the signal was registered, " +"``False`` otherwise." +msgstr "" + +#: ../Doc/library/faulthandler.rst:143 +msgid "Issue with file descriptors" +msgstr "" + +#: ../Doc/library/faulthandler.rst:145 +msgid "" +":func:`enable`, :func:`dump_traceback_later` and :func:`register` keep the " +"file descriptor of their *file* argument. If the file is closed and its file " +"descriptor is reused by a new file, or if :func:`os.dup2` is used to replace " +"the file descriptor, the traceback will be written into a different file. " +"Call these functions again each time that the file is replaced." +msgstr "" + +#: ../Doc/library/faulthandler.rst:153 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/faulthandler.rst:155 +msgid "" +"Example of a segmentation fault on Linux with and without enabling the fault " +"handler:" +msgstr "" diff --git a/library/fcntl.po b/library/fcntl.po new file mode 100644 index 000000000..8c18b4018 --- /dev/null +++ b/library/fcntl.po @@ -0,0 +1,223 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"PO-Revision-Date: 2017-08-10 00:59+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/fcntl.rst:2 +msgid ":mod:`fcntl` --- The ``fcntl`` and ``ioctl`` system calls" +msgstr "" + +#: ../Doc/library/fcntl.rst:16 +msgid "" +"This module performs file control and I/O control on file descriptors. It is " +"an interface to the :c:func:`fcntl` and :c:func:`ioctl` Unix routines. For " +"a complete description of these calls, see :manpage:`fcntl(2)` and :manpage:" +"`ioctl(2)` Unix manual pages." +msgstr "" + +#: ../Doc/library/fcntl.rst:21 +msgid "" +"All functions in this module take a file descriptor *fd* as their first " +"argument. This can be an integer file descriptor, such as returned by ``sys." +"stdin.fileno()``, or an :class:`io.IOBase` object, such as ``sys.stdin`` " +"itself, which provides a :meth:`~io.IOBase.fileno` that returns a genuine " +"file descriptor." +msgstr "" + +#: ../Doc/library/fcntl.rst:27 +msgid "" +"Operations in this module used to raise an :exc:`IOError` where they now " +"raise an :exc:`OSError`." +msgstr "" + +#: ../Doc/library/fcntl.rst:32 +msgid "The module defines the following functions:" +msgstr "Le module définit les fonctions suivantes :" + +#: ../Doc/library/fcntl.rst:37 +msgid "" +"Perform the operation *cmd* on file descriptor *fd* (file objects providing " +"a :meth:`~io.IOBase.fileno` method are accepted as well). The values used " +"for *cmd* are operating system dependent, and are available as constants in " +"the :mod:`fcntl` module, using the same names as used in the relevant C " +"header files. The argument *arg* can either be an integer value, or a :class:" +"`bytes` object. With an integer value, the return value of this function is " +"the integer return value of the C :c:func:`fcntl` call. When the argument " +"is bytes it represents a binary structure, e.g. created by :func:`struct." +"pack`. The binary data is copied to a buffer whose address is passed to the " +"C :c:func:`fcntl` call. The return value after a successful call is the " +"contents of the buffer, converted to a :class:`bytes` object. The length of " +"the returned object will be the same as the length of the *arg* argument. " +"This is limited to 1024 bytes. If the information returned in the buffer by " +"the operating system is larger than 1024 bytes, this is most likely to " +"result in a segmentation violation or a more subtle data corruption." +msgstr "" + +#: ../Doc/library/fcntl.rst:54 +msgid "If the :c:func:`fcntl` fails, an :exc:`OSError` is raised." +msgstr "" + +#: ../Doc/library/fcntl.rst:59 +msgid "" +"This function is identical to the :func:`~fcntl.fcntl` function, except that " +"the argument handling is even more complicated." +msgstr "" + +#: ../Doc/library/fcntl.rst:62 +msgid "" +"The *request* parameter is limited to values that can fit in 32-bits. " +"Additional constants of interest for use as the *request* argument can be " +"found in the :mod:`termios` module, under the same names as used in the " +"relevant C header files." +msgstr "" + +#: ../Doc/library/fcntl.rst:67 +msgid "" +"The parameter *arg* can be one of an integer, an object supporting the read-" +"only buffer interface (like :class:`bytes`) or an object supporting the read-" +"write buffer interface (like :class:`bytearray`)." +msgstr "" + +#: ../Doc/library/fcntl.rst:71 +msgid "" +"In all but the last case, behaviour is as for the :func:`~fcntl.fcntl` " +"function." +msgstr "" + +#: ../Doc/library/fcntl.rst:74 +msgid "" +"If a mutable buffer is passed, then the behaviour is determined by the value " +"of the *mutate_flag* parameter." +msgstr "" + +#: ../Doc/library/fcntl.rst:77 +msgid "" +"If it is false, the buffer's mutability is ignored and behaviour is as for a " +"read-only buffer, except that the 1024 byte limit mentioned above is avoided " +"-- so long as the buffer you pass is at least as long as what the operating " +"system wants to put there, things should work." +msgstr "" + +#: ../Doc/library/fcntl.rst:82 +msgid "" +"If *mutate_flag* is true (the default), then the buffer is (in effect) " +"passed to the underlying :func:`ioctl` system call, the latter's return code " +"is passed back to the calling Python, and the buffer's new contents reflect " +"the action of the :func:`ioctl`. This is a slight simplification, because " +"if the supplied buffer is less than 1024 bytes long it is first copied into " +"a static buffer 1024 bytes long which is then passed to :func:`ioctl` and " +"copied back into the supplied buffer." +msgstr "" + +#: ../Doc/library/fcntl.rst:90 +msgid "If the :c:func:`ioctl` fails, an :exc:`OSError` exception is raised." +msgstr "" + +#: ../Doc/library/fcntl.rst:92 +msgid "An example::" +msgstr "Un exemple ::" + +#: ../Doc/library/fcntl.rst:108 +msgid "" +"Perform the lock operation *operation* on file descriptor *fd* (file objects " +"providing a :meth:`~io.IOBase.fileno` method are accepted as well). See the " +"Unix manual :manpage:`flock(2)` for details. (On some systems, this " +"function is emulated using :c:func:`fcntl`.)" +msgstr "" + +#: ../Doc/library/fcntl.rst:113 +msgid "If the :c:func:`flock` fails, an :exc:`OSError` exception is raised." +msgstr "" + +#: ../Doc/library/fcntl.rst:118 +msgid "" +"This is essentially a wrapper around the :func:`~fcntl.fcntl` locking calls. " +"*fd* is the file descriptor of the file to lock or unlock, and *cmd* is one " +"of the following values:" +msgstr "" + +#: ../Doc/library/fcntl.rst:122 +msgid ":const:`LOCK_UN` -- unlock" +msgstr "" + +#: ../Doc/library/fcntl.rst:123 +msgid ":const:`LOCK_SH` -- acquire a shared lock" +msgstr "" + +#: ../Doc/library/fcntl.rst:124 +msgid ":const:`LOCK_EX` -- acquire an exclusive lock" +msgstr "" + +#: ../Doc/library/fcntl.rst:126 +msgid "" +"When *cmd* is :const:`LOCK_SH` or :const:`LOCK_EX`, it can also be bitwise " +"ORed with :const:`LOCK_NB` to avoid blocking on lock acquisition. If :const:" +"`LOCK_NB` is used and the lock cannot be acquired, an :exc:`OSError` will be " +"raised and the exception will have an *errno* attribute set to :const:" +"`EACCES` or :const:`EAGAIN` (depending on the operating system; for " +"portability, check for both values). On at least some systems, :const:" +"`LOCK_EX` can only be used if the file descriptor refers to a file opened " +"for writing." +msgstr "" + +#: ../Doc/library/fcntl.rst:135 +msgid "" +"*len* is the number of bytes to lock, *start* is the byte offset at which " +"the lock starts, relative to *whence*, and *whence* is as with :func:`io." +"IOBase.seek`, specifically:" +msgstr "" + +#: ../Doc/library/fcntl.rst:139 +msgid ":const:`0` -- relative to the start of the file (:data:`os.SEEK_SET`)" +msgstr "" + +#: ../Doc/library/fcntl.rst:140 +msgid "" +":const:`1` -- relative to the current buffer position (:data:`os.SEEK_CUR`)" +msgstr "" + +#: ../Doc/library/fcntl.rst:141 +msgid ":const:`2` -- relative to the end of the file (:data:`os.SEEK_END`)" +msgstr "" + +#: ../Doc/library/fcntl.rst:143 +msgid "" +"The default for *start* is 0, which means to start at the beginning of the " +"file. The default for *len* is 0 which means to lock to the end of the " +"file. The default for *whence* is also 0." +msgstr "" + +#: ../Doc/library/fcntl.rst:147 +msgid "Examples (all on a SVR4 compliant system)::" +msgstr "" + +#: ../Doc/library/fcntl.rst:157 +msgid "" +"Note that in the first example the return value variable *rv* will hold an " +"integer value; in the second example it will hold a :class:`bytes` object. " +"The structure lay-out for the *lockdata* variable is system dependent --- " +"therefore using the :func:`flock` call may be better." +msgstr "" + +#: ../Doc/library/fcntl.rst:168 +msgid "Module :mod:`os`" +msgstr "Module :mod:`os`" + +#: ../Doc/library/fcntl.rst:166 +msgid "" +"If the locking flags :data:`~os.O_SHLOCK` and :data:`~os.O_EXLOCK` are " +"present in the :mod:`os` module (on BSD only), the :func:`os.open` function " +"provides an alternative to the :func:`lockf` and :func:`flock` functions." +msgstr "" diff --git a/library/filecmp.po b/library/filecmp.po new file mode 100644 index 000000000..07eaad4f7 --- /dev/null +++ b/library/filecmp.po @@ -0,0 +1,281 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-07 11:17+0200\n" +"PO-Revision-Date: 2019-05-23 20:39+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/filecmp.rst:2 +msgid ":mod:`filecmp` --- File and Directory Comparisons" +msgstr ":mod:`filecmp` – Comparaisons de fichiers et de répertoires" + +#: ../Doc/library/filecmp.rst:9 +msgid "**Source code:** :source:`Lib/filecmp.py`" +msgstr "**Code source :** :source:`Lib/filecmp.py`" + +#: ../Doc/library/filecmp.rst:13 +msgid "" +"The :mod:`filecmp` module defines functions to compare files and " +"directories, with various optional time/correctness trade-offs. For " +"comparing files, see also the :mod:`difflib` module." +msgstr "" +"Le module :mod:`filecmp` définit les fonctions permettant de comparer les " +"fichiers et les répertoires, avec différents compromis optionnels durée / " +"exactitude. Pour comparer des fichiers, voir aussi le module :mod:`difflib`." + +#: ../Doc/library/filecmp.rst:17 +msgid "The :mod:`filecmp` module defines the following functions:" +msgstr "Le module :mod:`filecmp` définit les fonctions suivantes :" + +#: ../Doc/library/filecmp.rst:22 +msgid "" +"Compare the files named *f1* and *f2*, returning ``True`` if they seem " +"equal, ``False`` otherwise." +msgstr "" +"Compare les fichiers nommés *f1* et *f2* , renvoie ``True`` s’ils semblent " +"égaux, ``False`` sinon." + +#: ../Doc/library/filecmp.rst:25 +msgid "" +"If *shallow* is true, files with identical :func:`os.stat` signatures are " +"taken to be equal. Otherwise, the contents of the files are compared." +msgstr "" +"Si *shallow* est vrai, les fichiers avec des signatures :func:`os.stat()` " +"identiques sont considérés comme égaux. Sinon, le contenu des fichiers est " +"comparé." + +#: ../Doc/library/filecmp.rst:28 +msgid "" +"Note that no external programs are called from this function, giving it " +"portability and efficiency." +msgstr "" +"Notez qu'aucun programme externe n'est appelé à partir de cette fonction, ce " +"qui lui confère des qualités de portabilité et d'efficacité." + +#: ../Doc/library/filecmp.rst:31 +msgid "" +"This function uses a cache for past comparisons and the results, with cache " +"entries invalidated if the :func:`os.stat` information for the file " +"changes. The entire cache may be cleared using :func:`clear_cache`." +msgstr "" +"Cette fonction utilise un cache pour les comparaisons antérieures et les " +"résultats, les entrées du cache étant invalidées si les informations :func:" +"`os.stat()` du fichier sont modifiées. La totalité du cache peut être " +"effacée avec :func:`clear_cache()`." + +#: ../Doc/library/filecmp.rst:38 +msgid "" +"Compare the files in the two directories *dir1* and *dir2* whose names are " +"given by *common*." +msgstr "" +"Compare les fichiers des deux répertoires *dir1* et *dir2* dont les noms " +"sont donnés par *common*." + +#: ../Doc/library/filecmp.rst:41 +msgid "" +"Returns three lists of file names: *match*, *mismatch*, *errors*. *match* " +"contains the list of files that match, *mismatch* contains the names of " +"those that don't, and *errors* lists the names of files which could not be " +"compared. Files are listed in *errors* if they don't exist in one of the " +"directories, the user lacks permission to read them or if the comparison " +"could not be done for some other reason." +msgstr "" +"Renvoie trois listes de noms de fichiers : *match* , *mismatch*, *errors*. " +"*match* contient la liste des fichiers qui correspondent, *mismatch* " +"contient les noms de ceux qui ne correspondent pas et *errors* répertorie " +"les noms des fichiers qui n'ont pas pu être comparés. Les fichiers sont " +"répertoriés dans *errors* s'ils n'existent pas dans l'un des répertoires, si " +"l'utilisateur ne dispose pas de l'autorisation nécessaire pour les lire ou " +"si la comparaison n'a pas pu être effectuée pour une autre raison." + +#: ../Doc/library/filecmp.rst:48 +msgid "" +"The *shallow* parameter has the same meaning and default value as for :func:" +"`filecmp.cmp`." +msgstr "" +"Le paramètre *shallow* a la même signification et la même valeur par défaut " +"que pour :func:`filecmp.cmp`." + +#: ../Doc/library/filecmp.rst:51 +msgid "" +"For example, ``cmpfiles('a', 'b', ['c', 'd/e'])`` will compare ``a/c`` with " +"``b/c`` and ``a/d/e`` with ``b/d/e``. ``'c'`` and ``'d/e'`` will each be in " +"one of the three returned lists." +msgstr "" +"Par exemple, ``cmpfiles('a', 'b', ['c', 'd/e'])`` compare ``a/c`` et ``b/" +"c`` et ``a/d/e`` avec ``b/d/e``. ``'c'`` et ``'d/e'`` seront chacun dans " +"l'une des trois listes renvoyées." + +#: ../Doc/library/filecmp.rst:58 +msgid "" +"Clear the filecmp cache. This may be useful if a file is compared so quickly " +"after it is modified that it is within the mtime resolution of the " +"underlying filesystem." +msgstr "" +"Efface le cache *filecmp*. Cela peut être utile si un fichier est comparé " +"juste après avoir été modifié (dans un délai inférieur à la résolution " +"*mtime* du système de fichiers sous-jacent)." + +#: ../Doc/library/filecmp.rst:68 +msgid "The :class:`dircmp` class" +msgstr "La classe :class:`dircmp`" + +#: ../Doc/library/filecmp.rst:72 +msgid "" +"Construct a new directory comparison object, to compare the directories *a* " +"and *b*. *ignore* is a list of names to ignore, and defaults to :attr:" +"`filecmp.DEFAULT_IGNORES`. *hide* is a list of names to hide, and defaults " +"to ``[os.curdir, os.pardir]``." +msgstr "" +"Construit un nouvel objet de comparaison de répertoires, pour comparer les " +"répertoires *a* et *b*. *ignore* est une liste de noms à ignorer, par défaut " +"à :attr:`filecmp.DEFAULT_IGNORES`. *hide* est une liste de noms à cacher, " +"par défaut à ``[os.curdir, os.pardir]``." + +#: ../Doc/library/filecmp.rst:77 +msgid "" +"The :class:`dircmp` class compares files by doing *shallow* comparisons as " +"described for :func:`filecmp.cmp`." +msgstr "" +"La classe :class:`dircmp` compare les fichiers en faisant des comparaisons " +"*superficielles* comme décrit pour :func:`filecmp.cmp`." + +#: ../Doc/library/filecmp.rst:80 +msgid "The :class:`dircmp` class provides the following methods:" +msgstr "La classe :class:`dircmp` fournit les méthodes suivantes :" + +#: ../Doc/library/filecmp.rst:84 +msgid "Print (to :data:`sys.stdout`) a comparison between *a* and *b*." +msgstr "Affiche (sur :data:`sys.stdout`) une comparaison entre *a* et *b*." + +#: ../Doc/library/filecmp.rst:88 +msgid "" +"Print a comparison between *a* and *b* and common immediate subdirectories." +msgstr "" +"Affiche une comparaison entre *a* et *b* et les sous-répertoires immédiats " +"communs." + +#: ../Doc/library/filecmp.rst:93 +msgid "" +"Print a comparison between *a* and *b* and common subdirectories " +"(recursively)." +msgstr "" +"Affiche une comparaison entre a et b et les sous-répertoires communs " +"(récursivement)." + +#: ../Doc/library/filecmp.rst:96 +msgid "" +"The :class:`dircmp` class offers a number of interesting attributes that may " +"be used to get various bits of information about the directory trees being " +"compared." +msgstr "" +"La classe :class:`dircmp` offre un certain nombre d'attributs intéressants " +"qui peuvent être utilisés pour obtenir diverses informations sur les " +"arborescences de répertoires comparées." + +#: ../Doc/library/filecmp.rst:100 +msgid "" +"Note that via :meth:`__getattr__` hooks, all attributes are computed lazily, " +"so there is no speed penalty if only those attributes which are lightweight " +"to compute are used." +msgstr "" +"Notez que, via les points d'ancrage :meth:`__getattr__`, tous les attributs " +"sont calculés de manière paresseuse. Il n'y a donc pas de pénalité en " +"vitesse si seuls les attributs rapides à calculer sont utilisés." + +#: ../Doc/library/filecmp.rst:107 +msgid "The directory *a*." +msgstr "Le répertoire *a*." + +#: ../Doc/library/filecmp.rst:112 +msgid "The directory *b*." +msgstr "Le répertoire *b*." + +#: ../Doc/library/filecmp.rst:117 +msgid "Files and subdirectories in *a*, filtered by *hide* and *ignore*." +msgstr "" +"Fichiers et sous-répertoires dans *a* , filtrés par *hide* et *ignore*." + +#: ../Doc/library/filecmp.rst:122 +msgid "Files and subdirectories in *b*, filtered by *hide* and *ignore*." +msgstr "" +"Fichiers et sous-répertoires dans *b* , filtrés par *hide* et *ignore*." + +#: ../Doc/library/filecmp.rst:127 +msgid "Files and subdirectories in both *a* and *b*." +msgstr "Fichiers et sous-répertoires à la fois dans *a* et *b*." + +#: ../Doc/library/filecmp.rst:132 +msgid "Files and subdirectories only in *a*." +msgstr "Fichiers et sous-répertoires uniquement dans *a*." + +#: ../Doc/library/filecmp.rst:137 +msgid "Files and subdirectories only in *b*." +msgstr "Fichiers et sous-répertoires uniquement dans *b*." + +#: ../Doc/library/filecmp.rst:142 +msgid "Subdirectories in both *a* and *b*." +msgstr "Sous-répertoires à la fois dans *a* et *b*." + +#: ../Doc/library/filecmp.rst:147 +msgid "Files in both *a* and *b*." +msgstr "Fichiers à la fois dans *a* et *b*." + +#: ../Doc/library/filecmp.rst:152 +msgid "" +"Names in both *a* and *b*, such that the type differs between the " +"directories, or names for which :func:`os.stat` reports an error." +msgstr "" +"Noms dans *a* et *b* , tels que le type diffère entre les répertoires, ou " +"noms pour lesquels :func:`os.stat` signale une erreur." + +#: ../Doc/library/filecmp.rst:158 +msgid "" +"Files which are identical in both *a* and *b*, using the class's file " +"comparison operator." +msgstr "" +"Fichiers identiques dans *a* et *b*, en utilisant l'opérateur de comparaison " +"de fichiers de la classe." + +#: ../Doc/library/filecmp.rst:164 +msgid "" +"Files which are in both *a* and *b*, whose contents differ according to the " +"class's file comparison operator." +msgstr "" +"Fichiers figurant à la fois dans *a* et dans *b* , dont le contenu diffère " +"en fonction de l'opérateur de comparaison de fichiers de la classe." + +#: ../Doc/library/filecmp.rst:170 +msgid "Files which are in both *a* and *b*, but could not be compared." +msgstr "" +"Fichiers à la fois dans *a* et dans *b* , mais ne pouvant pas être comparés." + +#: ../Doc/library/filecmp.rst:175 +msgid "" +"A dictionary mapping names in :attr:`common_dirs` to :class:`dircmp` objects." +msgstr "" +"Un dictionnaire faisant correspondre les noms dans :attr:`common_dirs` vers " +"des objets :class:`dircmp`." + +#: ../Doc/library/filecmp.rst:182 +msgid "List of directories ignored by :class:`dircmp` by default." +msgstr "Liste des répertoires ignorés par défaut par :class:`dircmp`." + +#: ../Doc/library/filecmp.rst:185 +msgid "" +"Here is a simplified example of using the ``subdirs`` attribute to search " +"recursively through two directories to show common different files::" +msgstr "" +"Voici un exemple simplifié d'utilisation de l'attribut ``subdirs`` pour " +"effectuer une recherche récursive dans deux répertoires afin d'afficher des " +"fichiers communs différents ::" diff --git a/library/fileformats.po b/library/fileformats.po new file mode 100644 index 000000000..601452a29 --- /dev/null +++ b/library/fileformats.po @@ -0,0 +1,27 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-09-24 21:35+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/fileformats.rst:5 +msgid "File Formats" +msgstr "Formats de fichiers" + +#: ../Doc/library/fileformats.rst:7 +msgid "" +"The modules described in this chapter parse various miscellaneous file " +"formats that aren't markup languages and are not related to e-mail." +msgstr "" +"Les modules décrits dans ce chapitre lisent divers formats de fichier qui ne " +"sont ni des langages balisés ni relatifs aux e-mails." diff --git a/library/fileinput.po b/library/fileinput.po new file mode 100644 index 000000000..b01370953 --- /dev/null +++ b/library/fileinput.po @@ -0,0 +1,261 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/fileinput.rst:2 +msgid ":mod:`fileinput` --- Iterate over lines from multiple input streams" +msgstr "" + +#: ../Doc/library/fileinput.rst:10 +msgid "**Source code:** :source:`Lib/fileinput.py`" +msgstr "**Code source :** :source:`Lib/fileinput.py`" + +#: ../Doc/library/fileinput.rst:14 +msgid "" +"This module implements a helper class and functions to quickly write a loop " +"over standard input or a list of files. If you just want to read or write " +"one file see :func:`open`." +msgstr "" + +#: ../Doc/library/fileinput.rst:18 +msgid "The typical use is::" +msgstr "" + +#: ../Doc/library/fileinput.rst:24 +msgid "" +"This iterates over the lines of all files listed in ``sys.argv[1:]``, " +"defaulting to ``sys.stdin`` if the list is empty. If a filename is ``'-'``, " +"it is also replaced by ``sys.stdin`` and the optional arguments *mode* and " +"*openhook* are ignored. To specify an alternative list of filenames, pass " +"it as the first argument to :func:`.input`. A single file name is also " +"allowed." +msgstr "" + +#: ../Doc/library/fileinput.rst:30 +msgid "" +"All files are opened in text mode by default, but you can override this by " +"specifying the *mode* parameter in the call to :func:`.input` or :class:" +"`FileInput`. If an I/O error occurs during opening or reading a file, :exc:" +"`OSError` is raised." +msgstr "" + +#: ../Doc/library/fileinput.rst:35 +msgid ":exc:`IOError` used to be raised; it is now an alias of :exc:`OSError`." +msgstr "" + +#: ../Doc/library/fileinput.rst:38 +msgid "" +"If ``sys.stdin`` is used more than once, the second and further use will " +"return no lines, except perhaps for interactive use, or if it has been " +"explicitly reset (e.g. using ``sys.stdin.seek(0)``)." +msgstr "" + +#: ../Doc/library/fileinput.rst:42 +msgid "" +"Empty files are opened and immediately closed; the only time their presence " +"in the list of filenames is noticeable at all is when the last file opened " +"is empty." +msgstr "" + +#: ../Doc/library/fileinput.rst:46 +msgid "" +"Lines are returned with any newlines intact, which means that the last line " +"in a file may not have one." +msgstr "" + +#: ../Doc/library/fileinput.rst:49 +msgid "" +"You can control how files are opened by providing an opening hook via the " +"*openhook* parameter to :func:`fileinput.input` or :class:`FileInput()`. The " +"hook must be a function that takes two arguments, *filename* and *mode*, and " +"returns an accordingly opened file-like object. Two useful hooks are already " +"provided by this module." +msgstr "" + +#: ../Doc/library/fileinput.rst:55 +msgid "The following function is the primary interface of this module:" +msgstr "" + +#: ../Doc/library/fileinput.rst:60 +msgid "" +"Create an instance of the :class:`FileInput` class. The instance will be " +"used as global state for the functions of this module, and is also returned " +"to use during iteration. The parameters to this function will be passed " +"along to the constructor of the :class:`FileInput` class." +msgstr "" + +#: ../Doc/library/fileinput.rst:65 +msgid "" +"The :class:`FileInput` instance can be used as a context manager in the :" +"keyword:`with` statement. In this example, *input* is closed after the :" +"keyword:`!with` statement is exited, even if an exception occurs::" +msgstr "" + +#: ../Doc/library/fileinput.rst:73 ../Doc/library/fileinput.rst:164 +msgid "Can be used as a context manager." +msgstr "" + +#: ../Doc/library/fileinput.rst:77 ../Doc/library/fileinput.rst:171 +msgid "The *bufsize* parameter." +msgstr "" + +#: ../Doc/library/fileinput.rst:79 +msgid "" +"The following functions use the global state created by :func:`fileinput." +"input`; if there is no active state, :exc:`RuntimeError` is raised." +msgstr "" + +#: ../Doc/library/fileinput.rst:85 +msgid "" +"Return the name of the file currently being read. Before the first line has " +"been read, returns ``None``." +msgstr "" + +#: ../Doc/library/fileinput.rst:91 +msgid "" +"Return the integer \"file descriptor\" for the current file. When no file is " +"opened (before the first line and between files), returns ``-1``." +msgstr "" + +#: ../Doc/library/fileinput.rst:97 +msgid "" +"Return the cumulative line number of the line that has just been read. " +"Before the first line has been read, returns ``0``. After the last line of " +"the last file has been read, returns the line number of that line." +msgstr "" + +#: ../Doc/library/fileinput.rst:104 +msgid "" +"Return the line number in the current file. Before the first line has been " +"read, returns ``0``. After the last line of the last file has been read, " +"returns the line number of that line within the file." +msgstr "" + +#: ../Doc/library/fileinput.rst:111 +msgid "" +"Returns true if the line just read is the first line of its file, otherwise " +"returns false." +msgstr "" + +#: ../Doc/library/fileinput.rst:117 +msgid "" +"Returns true if the last line was read from ``sys.stdin``, otherwise returns " +"false." +msgstr "" + +#: ../Doc/library/fileinput.rst:123 +msgid "" +"Close the current file so that the next iteration will read the first line " +"from the next file (if any); lines not read from the file will not count " +"towards the cumulative line count. The filename is not changed until after " +"the first line of the next file has been read. Before the first line has " +"been read, this function has no effect; it cannot be used to skip the first " +"file. After the last line of the last file has been read, this function has " +"no effect." +msgstr "" + +#: ../Doc/library/fileinput.rst:133 +msgid "Close the sequence." +msgstr "" + +#: ../Doc/library/fileinput.rst:135 +msgid "" +"The class which implements the sequence behavior provided by the module is " +"available for subclassing as well:" +msgstr "" + +#: ../Doc/library/fileinput.rst:141 +msgid "" +"Class :class:`FileInput` is the implementation; its methods :meth:" +"`filename`, :meth:`fileno`, :meth:`lineno`, :meth:`filelineno`, :meth:" +"`isfirstline`, :meth:`isstdin`, :meth:`nextfile` and :meth:`close` " +"correspond to the functions of the same name in the module. In addition it " +"has a :meth:`~io.TextIOBase.readline` method which returns the next input " +"line, and a :meth:`__getitem__` method which implements the sequence " +"behavior. The sequence must be accessed in strictly sequential order; random " +"access and :meth:`~io.TextIOBase.readline` cannot be mixed." +msgstr "" + +#: ../Doc/library/fileinput.rst:150 +msgid "" +"With *mode* you can specify which file mode will be passed to :func:`open`. " +"It must be one of ``'r'``, ``'rU'``, ``'U'`` and ``'rb'``." +msgstr "" + +#: ../Doc/library/fileinput.rst:153 +msgid "" +"The *openhook*, when given, must be a function that takes two arguments, " +"*filename* and *mode*, and returns an accordingly opened file-like object. " +"You cannot use *inplace* and *openhook* together." +msgstr "" + +#: ../Doc/library/fileinput.rst:157 +msgid "" +"A :class:`FileInput` instance can be used as a context manager in the :" +"keyword:`with` statement. In this example, *input* is closed after the :" +"keyword:`!with` statement is exited, even if an exception occurs::" +msgstr "" + +#: ../Doc/library/fileinput.rst:167 +msgid "The ``'rU'`` and ``'U'`` modes." +msgstr "" + +#: ../Doc/library/fileinput.rst:174 +msgid "" +"**Optional in-place filtering:** if the keyword argument ``inplace=True`` is " +"passed to :func:`fileinput.input` or to the :class:`FileInput` constructor, " +"the file is moved to a backup file and standard output is directed to the " +"input file (if a file of the same name as the backup file already exists, it " +"will be replaced silently). This makes it possible to write a filter that " +"rewrites its input file in place. If the *backup* parameter is given " +"(typically as ``backup='.'``), it specifies the extension " +"for the backup file, and the backup file remains around; by default, the " +"extension is ``'.bak'`` and it is deleted when the output file is closed. " +"In-place filtering is disabled when standard input is read." +msgstr "" + +#: ../Doc/library/fileinput.rst:186 +msgid "The two following opening hooks are provided by this module:" +msgstr "" + +#: ../Doc/library/fileinput.rst:190 +msgid "" +"Transparently opens files compressed with gzip and bzip2 (recognized by the " +"extensions ``'.gz'`` and ``'.bz2'``) using the :mod:`gzip` and :mod:`bz2` " +"modules. If the filename extension is not ``'.gz'`` or ``'.bz2'``, the file " +"is opened normally (ie, using :func:`open` without any decompression)." +msgstr "" + +#: ../Doc/library/fileinput.rst:195 +msgid "" +"Usage example: ``fi = fileinput.FileInput(openhook=fileinput." +"hook_compressed)``" +msgstr "" + +#: ../Doc/library/fileinput.rst:200 +msgid "" +"Returns a hook which opens each file with :func:`open`, using the given " +"*encoding* and *errors* to read the file." +msgstr "" + +#: ../Doc/library/fileinput.rst:203 +msgid "" +"Usage example: ``fi = fileinput.FileInput(openhook=fileinput." +"hook_encoded(\"utf-8\", \"surrogateescape\"))``" +msgstr "" + +#: ../Doc/library/fileinput.rst:207 +msgid "Added the optional *errors* parameter." +msgstr "" diff --git a/library/filesys.po b/library/filesys.po new file mode 100644 index 000000000..e3906acb1 --- /dev/null +++ b/library/filesys.po @@ -0,0 +1,67 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"PO-Revision-Date: 2018-09-28 11:33+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/filesys.rst:5 +msgid "File and Directory Access" +msgstr "Accès aux Fichiers et aux Dossiers" + +#: ../Doc/library/filesys.rst:7 +msgid "" +"The modules described in this chapter deal with disk files and directories. " +"For example, there are modules for reading the properties of files, " +"manipulating paths in a portable way, and creating temporary files. The " +"full list of modules in this chapter is:" +msgstr "" +"Les modules décrits dans ce chapitre servent à accéder aux fichiers et aux " +"dossiers. Des modules, par exemple, pour lire les propriétés des fichiers, " +"manipuler des chemins de manière portable, et créer des fichiers " +"temporaires. La liste exhaustive des modules de ce chapitre est :" + +#: ../Doc/library/filesys.rst:32 +msgid "Module :mod:`os`" +msgstr "Module :mod:`os`" + +#: ../Doc/library/filesys.rst:31 +msgid "" +"Operating system interfaces, including functions to work with files at a " +"lower level than Python :term:`file objects `." +msgstr "" +"Interfaces du système d'exploitation, incluant des fonctions pour travailler " +"avec des fichiers dans un niveau plus bas que les :term:`objets fichiers " +"` de Python." + +#: ../Doc/library/filesys.rst:36 +msgid "Module :mod:`io`" +msgstr "Module :mod:`io`" + +#: ../Doc/library/filesys.rst:35 +msgid "" +"Python's built-in I/O library, including both abstract classes and some " +"concrete classes such as file I/O." +msgstr "" +"Bibliothèque d'entrées/sorties native de Python, incluant des classes " +"abstraites et concrètes tel que les I/O sur les fichiers." + +#: ../Doc/library/filesys.rst:38 +msgid "Built-in function :func:`open`" +msgstr "Fonction native :func:`open`" + +#: ../Doc/library/filesys.rst:39 +msgid "The standard way to open files for reading and writing with Python." +msgstr "" +"Le moyen classique pour ouvrir des fichiers pour les lire ou y écrire avec " +"Python." diff --git a/library/fnmatch.po b/library/fnmatch.po new file mode 100644 index 000000000..6ae9a020f --- /dev/null +++ b/library/fnmatch.po @@ -0,0 +1,160 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-02-21 17:34+0100\n" +"Last-Translator: Julien VITARD \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/fnmatch.rst:2 +msgid ":mod:`fnmatch` --- Unix filename pattern matching" +msgstr ":mod:`fnmatch` — Filtrage par motif des noms de fichiers Unix" + +#: ../Doc/library/fnmatch.rst:7 +msgid "**Source code:** :source:`Lib/fnmatch.py`" +msgstr "**Code source :** :source:`Lib/fnmatch.py`" + +#: ../Doc/library/fnmatch.rst:15 +msgid "" +"This module provides support for Unix shell-style wildcards, which are *not* " +"the same as regular expressions (which are documented in the :mod:`re` " +"module). The special characters used in shell-style wildcards are:" +msgstr "" +"Ce module fournit la gestion des caractères de remplacement de style shell " +"Unix, qui ne sont *pas* identiques à ceux utilisés dans les expressions " +"régulières (documentés dans le module :mod:`re`). Les caractères spéciaux " +"utilisés comme caractères de remplacement de style shell sont :" + +#: ../Doc/library/fnmatch.rst:27 +msgid "Pattern" +msgstr "Motif" + +#: ../Doc/library/fnmatch.rst:27 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/fnmatch.rst:29 +msgid "``*``" +msgstr "``*``" + +#: ../Doc/library/fnmatch.rst:29 +msgid "matches everything" +msgstr "reconnaît n'importe quoi" + +#: ../Doc/library/fnmatch.rst:31 +msgid "``?``" +msgstr "``?``" + +#: ../Doc/library/fnmatch.rst:31 +msgid "matches any single character" +msgstr "reconnaît n'importe quel caractère unique" + +#: ../Doc/library/fnmatch.rst:33 +msgid "``[seq]``" +msgstr "``[seq]``" + +#: ../Doc/library/fnmatch.rst:33 +msgid "matches any character in *seq*" +msgstr "reconnaît n'importe quel caractère dans *seq*" + +#: ../Doc/library/fnmatch.rst:35 +msgid "``[!seq]``" +msgstr "``[!seq]``" + +#: ../Doc/library/fnmatch.rst:35 +msgid "matches any character not in *seq*" +msgstr "reconnaît n'importe quel caractère qui n'est pas dans *seq*" + +#: ../Doc/library/fnmatch.rst:38 +msgid "" +"For a literal match, wrap the meta-characters in brackets. For example, " +"``'[?]'`` matches the character ``'?'``." +msgstr "" +"Pour une correspondance littérale, il faut entourer le métacaractère par des " +"crochets. Par exemple, ``'[?]'`` reconnaît le caractère ``'?'``." + +#: ../Doc/library/fnmatch.rst:43 +msgid "" +"Note that the filename separator (``'/'`` on Unix) is *not* special to this " +"module. See module :mod:`glob` for pathname expansion (:mod:`glob` uses :" +"func:`.filter` to match pathname segments). Similarly, filenames starting " +"with a period are not special for this module, and are matched by the ``*`` " +"and ``?`` patterns." +msgstr "" +"Notons que le séparateur de nom de fichiers (``'/'`` sous Unix) n'est *pas* " +"traité de manière spéciale par ce module. Voir le module :mod:`glob` pour la " +"recherche de chemins (:mod:`glob` utilise :func:`.filter` pour reconnaître " +"les composants d'un chemin). De la même manière, les noms de fichiers " +"commençant par un point ne sont pas traités de manière spéciale par ce " +"module, et sont reconnus par les motifs ``*`` et ``?``." + +#: ../Doc/library/fnmatch.rst:52 +msgid "" +"Test whether the *filename* string matches the *pattern* string, returning :" +"const:`True` or :const:`False`. Both parameters are case-normalized using :" +"func:`os.path.normcase`. :func:`fnmatchcase` can be used to perform a case-" +"sensitive comparison, regardless of whether that's standard for the " +"operating system." +msgstr "" +"Teste si la chaîne de caractères *filename* correspond au motif *pattern*, " +"en renvoyant :const:`True` ou :const:`False`. La casse de chacun des " +"paramètres peut être normalisée en utilisant :func:`os.path.normcase`. :func:" +"`fnmatchcase` peut être utilisée pour réaliser une comparaison sensible à la " +"casse, indépendamment du système d'exploitation." + +#: ../Doc/library/fnmatch.rst:58 +msgid "" +"This example will print all file names in the current directory with the " +"extension ``.txt``::" +msgstr "" +"Cet exemple affiche tous les noms de fichiers du répertoire courant ayant " +"pour extension ``.txt`` ::" + +#: ../Doc/library/fnmatch.rst:71 +msgid "" +"Test whether *filename* matches *pattern*, returning :const:`True` or :const:" +"`False`; the comparison is case-sensitive and does not apply :func:`os.path." +"normcase`." +msgstr "" +"Teste si *filename* correspond au motif *pattern*, en renvoyant :const:" +"`True` ou :const:`False` ; la comparaison est sensible à la casse et " +"n'utilise pas la fonction :func:`os.path.normcase`." + +#: ../Doc/library/fnmatch.rst:78 +msgid "" +"Return the subset of the list of *names* that match *pattern*. It is the " +"same as ``[n for n in names if fnmatch(n, pattern)]``, but implemented more " +"efficiently." +msgstr "" +"Renvoie un sous-ensemble de la liste *names* correspondant au motif " +"*pattern*. Similaire à ``[n for n in names if fnmatch(n, pattern)]``, mais " +"implémenté plus efficacement." + +#: ../Doc/library/fnmatch.rst:84 +msgid "" +"Return the shell-style *pattern* converted to a regular expression for using " +"with :func:`re.match`." +msgstr "" +"Renvoie le motif *pattern*, de style shell, converti en une expression " +"régulière utilisable avec :func:`re.match`." + +#: ../Doc/library/fnmatch.rst:87 +msgid "Example:" +msgstr "Exemple :" + +#: ../Doc/library/fnmatch.rst:101 +msgid "Module :mod:`glob`" +msgstr "Module :mod:`glob`" + +#: ../Doc/library/fnmatch.rst:102 +msgid "Unix shell-style path expansion." +msgstr "Recherche de chemins de style shell Unix" diff --git a/library/formatter.po b/library/formatter.po new file mode 100644 index 000000000..d8d91cb8c --- /dev/null +++ b/library/formatter.po @@ -0,0 +1,381 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/formatter.rst:2 +msgid ":mod:`formatter` --- Generic output formatting" +msgstr "" + +#: ../Doc/library/formatter.rst:8 +msgid "Due to lack of usage, the formatter module has been deprecated." +msgstr "" + +#: ../Doc/library/formatter.rst:13 +msgid "" +"This module supports two interface definitions, each with multiple " +"implementations: The *formatter* interface, and the *writer* interface which " +"is required by the formatter interface." +msgstr "" + +#: ../Doc/library/formatter.rst:17 +msgid "" +"Formatter objects transform an abstract flow of formatting events into " +"specific output events on writer objects. Formatters manage several stack " +"structures to allow various properties of a writer object to be changed and " +"restored; writers need not be able to handle relative changes nor any sort " +"of \"change back\" operation. Specific writer properties which may be " +"controlled via formatter objects are horizontal alignment, font, and left " +"margin indentations. A mechanism is provided which supports providing " +"arbitrary, non-exclusive style settings to a writer as well. Additional " +"interfaces facilitate formatting events which are not reversible, such as " +"paragraph separation." +msgstr "" + +#: ../Doc/library/formatter.rst:27 +msgid "" +"Writer objects encapsulate device interfaces. Abstract devices, such as " +"file formats, are supported as well as physical devices. The provided " +"implementations all work with abstract devices. The interface makes " +"available mechanisms for setting the properties which formatter objects " +"manage and inserting data into the output." +msgstr "" + +#: ../Doc/library/formatter.rst:37 +msgid "The Formatter Interface" +msgstr "" + +#: ../Doc/library/formatter.rst:39 +msgid "" +"Interfaces to create formatters are dependent on the specific formatter " +"class being instantiated. The interfaces described below are the required " +"interfaces which all formatters must support once initialized." +msgstr "" + +#: ../Doc/library/formatter.rst:43 +msgid "One data element is defined at the module level:" +msgstr "" + +#: ../Doc/library/formatter.rst:48 +msgid "" +"Value which can be used in the font specification passed to the " +"``push_font()`` method described below, or as the new value to any other " +"``push_property()`` method. Pushing the ``AS_IS`` value allows the " +"corresponding ``pop_property()`` method to be called without having to track " +"whether the property was changed." +msgstr "" + +#: ../Doc/library/formatter.rst:53 +msgid "The following attributes are defined for formatter instance objects:" +msgstr "" + +#: ../Doc/library/formatter.rst:58 +msgid "The writer instance with which the formatter interacts." +msgstr "" + +#: ../Doc/library/formatter.rst:63 +msgid "" +"Close any open paragraphs and insert at least *blanklines* before the next " +"paragraph." +msgstr "" + +#: ../Doc/library/formatter.rst:69 +msgid "" +"Add a hard line break if one does not already exist. This does not break " +"the logical paragraph." +msgstr "" + +#: ../Doc/library/formatter.rst:75 +msgid "" +"Insert a horizontal rule in the output. A hard break is inserted if there " +"is data in the current paragraph, but the logical paragraph is not broken. " +"The arguments and keywords are passed on to the writer's :meth:" +"`send_line_break` method." +msgstr "" + +#: ../Doc/library/formatter.rst:83 +msgid "" +"Provide data which should be formatted with collapsed whitespace. Whitespace " +"from preceding and successive calls to :meth:`add_flowing_data` is " +"considered as well when the whitespace collapse is performed. The data " +"which is passed to this method is expected to be word-wrapped by the output " +"device. Note that any word-wrapping still must be performed by the writer " +"object due to the need to rely on device and font information." +msgstr "" + +#: ../Doc/library/formatter.rst:93 +msgid "" +"Provide data which should be passed to the writer unchanged. Whitespace, " +"including newline and tab characters, are considered legal in the value of " +"*data*." +msgstr "" + +#: ../Doc/library/formatter.rst:100 +msgid "" +"Insert a label which should be placed to the left of the current left " +"margin. This should be used for constructing bulleted or numbered lists. If " +"the *format* value is a string, it is interpreted as a format specification " +"for *counter*, which should be an integer. The result of this formatting " +"becomes the value of the label; if *format* is not a string it is used as " +"the label value directly. The label value is passed as the only argument to " +"the writer's :meth:`send_label_data` method. Interpretation of non-string " +"label values is dependent on the associated writer." +msgstr "" + +#: ../Doc/library/formatter.rst:109 +msgid "" +"Format specifications are strings which, in combination with a counter " +"value, are used to compute label values. Each character in the format " +"string is copied to the label value, with some characters recognized to " +"indicate a transform on the counter value. Specifically, the character " +"``'1'`` represents the counter value formatter as an Arabic number, the " +"characters ``'A'`` and ``'a'`` represent alphabetic representations of the " +"counter value in upper and lower case, respectively, and ``'I'`` and ``'i'`` " +"represent the counter value in Roman numerals, in upper and lower case. " +"Note that the alphabetic and roman transforms require that the counter value " +"be greater than zero." +msgstr "" + +#: ../Doc/library/formatter.rst:122 +msgid "" +"Send any pending whitespace buffered from a previous call to :meth:" +"`add_flowing_data` to the associated writer object. This should be called " +"before any direct manipulation of the writer object." +msgstr "" + +#: ../Doc/library/formatter.rst:129 +msgid "" +"Push a new alignment setting onto the alignment stack. This may be :const:" +"`AS_IS` if no change is desired. If the alignment value is changed from the " +"previous setting, the writer's :meth:`new_alignment` method is called with " +"the *align* value." +msgstr "" + +#: ../Doc/library/formatter.rst:137 +msgid "Restore the previous alignment." +msgstr "" + +#: ../Doc/library/formatter.rst:142 +msgid "" +"Change some or all font properties of the writer object. Properties which " +"are not set to :const:`AS_IS` are set to the values passed in while others " +"are maintained at their current settings. The writer's :meth:`new_font` " +"method is called with the fully resolved font specification." +msgstr "" + +#: ../Doc/library/formatter.rst:150 +msgid "Restore the previous font." +msgstr "" + +#: ../Doc/library/formatter.rst:155 +msgid "" +"Increase the number of left margin indentations by one, associating the " +"logical tag *margin* with the new indentation. The initial margin level is " +"``0``. Changed values of the logical tag must be true values; false values " +"other than :const:`AS_IS` are not sufficient to change the margin." +msgstr "" + +#: ../Doc/library/formatter.rst:163 +msgid "Restore the previous margin." +msgstr "" + +#: ../Doc/library/formatter.rst:168 +msgid "" +"Push any number of arbitrary style specifications. All styles are pushed " +"onto the styles stack in order. A tuple representing the entire stack, " +"including :const:`AS_IS` values, is passed to the writer's :meth:" +"`new_styles` method." +msgstr "" + +#: ../Doc/library/formatter.rst:175 +msgid "" +"Pop the last *n* style specifications passed to :meth:`push_style`. A tuple " +"representing the revised stack, including :const:`AS_IS` values, is passed " +"to the writer's :meth:`new_styles` method." +msgstr "" + +#: ../Doc/library/formatter.rst:182 +msgid "Set the spacing style for the writer." +msgstr "" + +#: ../Doc/library/formatter.rst:187 +msgid "" +"Inform the formatter that data has been added to the current paragraph out-" +"of-band. This should be used when the writer has been manipulated " +"directly. The optional *flag* argument can be set to false if the writer " +"manipulations produced a hard line break at the end of the output." +msgstr "" + +#: ../Doc/library/formatter.rst:196 +msgid "Formatter Implementations" +msgstr "" + +#: ../Doc/library/formatter.rst:198 +msgid "" +"Two implementations of formatter objects are provided by this module. Most " +"applications may use one of these classes without modification or " +"subclassing." +msgstr "" + +#: ../Doc/library/formatter.rst:204 +msgid "" +"A formatter which does nothing. If *writer* is omitted, a :class:" +"`NullWriter` instance is created. No methods of the writer are called by :" +"class:`NullFormatter` instances. Implementations should inherit from this " +"class if implementing a writer interface but don't need to inherit any " +"implementation." +msgstr "" + +#: ../Doc/library/formatter.rst:213 +msgid "" +"The standard formatter. This implementation has demonstrated wide " +"applicability to many writers, and may be used directly in most " +"circumstances. It has been used to implement a full-featured World Wide Web " +"browser." +msgstr "" + +#: ../Doc/library/formatter.rst:221 +msgid "The Writer Interface" +msgstr "" + +#: ../Doc/library/formatter.rst:223 +msgid "" +"Interfaces to create writers are dependent on the specific writer class " +"being instantiated. The interfaces described below are the required " +"interfaces which all writers must support once initialized. Note that while " +"most applications can use the :class:`AbstractFormatter` class as a " +"formatter, the writer must typically be provided by the application." +msgstr "" + +#: ../Doc/library/formatter.rst:232 +msgid "Flush any buffered output or device control events." +msgstr "" + +#: ../Doc/library/formatter.rst:237 +msgid "" +"Set the alignment style. The *align* value can be any object, but by " +"convention is a string or ``None``, where ``None`` indicates that the " +"writer's \"preferred\" alignment should be used. Conventional *align* values " +"are ``'left'``, ``'center'``, ``'right'``, and ``'justify'``." +msgstr "" + +#: ../Doc/library/formatter.rst:245 +msgid "" +"Set the font style. The value of *font* will be ``None``, indicating that " +"the device's default font should be used, or a tuple of the form ``(size, " +"italic, bold, teletype)``. Size will be a string indicating the size of " +"font that should be used; specific strings and their interpretation must be " +"defined by the application. The *italic*, *bold*, and *teletype* values are " +"Boolean values specifying which of those font attributes should be used." +msgstr "" + +#: ../Doc/library/formatter.rst:255 +msgid "" +"Set the margin level to the integer *level* and the logical tag to *margin*. " +"Interpretation of the logical tag is at the writer's discretion; the only " +"restriction on the value of the logical tag is that it not be a false value " +"for non-zero values of *level*." +msgstr "" + +#: ../Doc/library/formatter.rst:263 +msgid "Set the spacing style to *spacing*." +msgstr "" + +#: ../Doc/library/formatter.rst:268 +msgid "" +"Set additional styles. The *styles* value is a tuple of arbitrary values; " +"the value :const:`AS_IS` should be ignored. The *styles* tuple may be " +"interpreted either as a set or as a stack depending on the requirements of " +"the application and writer implementation." +msgstr "" + +#: ../Doc/library/formatter.rst:276 +msgid "Break the current line." +msgstr "" + +#: ../Doc/library/formatter.rst:281 +msgid "" +"Produce a paragraph separation of at least *blankline* blank lines, or the " +"equivalent. The *blankline* value will be an integer. Note that the " +"implementation will receive a call to :meth:`send_line_break` before this " +"call if a line break is needed; this method should not include ending the " +"last line of the paragraph. It is only responsible for vertical spacing " +"between paragraphs." +msgstr "" + +#: ../Doc/library/formatter.rst:291 +msgid "" +"Display a horizontal rule on the output device. The arguments to this " +"method are entirely application- and writer-specific, and should be " +"interpreted with care. The method implementation may assume that a line " +"break has already been issued via :meth:`send_line_break`." +msgstr "" + +#: ../Doc/library/formatter.rst:299 +msgid "" +"Output character data which may be word-wrapped and re-flowed as needed. " +"Within any sequence of calls to this method, the writer may assume that " +"spans of multiple whitespace characters have been collapsed to single space " +"characters." +msgstr "" + +#: ../Doc/library/formatter.rst:306 +msgid "" +"Output character data which has already been formatted for display. " +"Generally, this should be interpreted to mean that line breaks indicated by " +"newline characters should be preserved and no new line breaks should be " +"introduced. The data may contain embedded newline and tab characters, " +"unlike data provided to the :meth:`send_formatted_data` interface." +msgstr "" + +#: ../Doc/library/formatter.rst:315 +msgid "" +"Set *data* to the left of the current left margin, if possible. The value of " +"*data* is not restricted; treatment of non-string values is entirely " +"application- and writer-dependent. This method will only be called at the " +"beginning of a line." +msgstr "" + +#: ../Doc/library/formatter.rst:324 +msgid "Writer Implementations" +msgstr "" + +#: ../Doc/library/formatter.rst:326 +msgid "" +"Three implementations of the writer object interface are provided as " +"examples by this module. Most applications will need to derive new writer " +"classes from the :class:`NullWriter` class." +msgstr "" + +#: ../Doc/library/formatter.rst:333 +msgid "" +"A writer which only provides the interface definition; no actions are taken " +"on any methods. This should be the base class for all writers which do not " +"need to inherit any implementation methods." +msgstr "" + +#: ../Doc/library/formatter.rst:340 +msgid "" +"A writer which can be used in debugging formatters, but not much else. Each " +"method simply announces itself by printing its name and arguments on " +"standard output." +msgstr "" + +#: ../Doc/library/formatter.rst:347 +msgid "" +"Simple writer class which writes output on the :term:`file object` passed in " +"as *file* or, if *file* is omitted, on standard output. The output is " +"simply word-wrapped to the number of columns specified by *maxcol*. This " +"class is suitable for reflowing a sequence of paragraphs." +msgstr "" diff --git a/library/fractions.po b/library/fractions.po new file mode 100644 index 000000000..40e4f2e23 --- /dev/null +++ b/library/fractions.po @@ -0,0 +1,224 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"PO-Revision-Date: 2018-09-28 11:32+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.10\n" + +#: ../Doc/library/fractions.rst:2 +msgid ":mod:`fractions` --- Rational numbers" +msgstr ":mod:`fractions` — Nombres rationnels" + +#: ../Doc/library/fractions.rst:10 +msgid "**Source code:** :source:`Lib/fractions.py`" +msgstr "**Code source :** :source:`Lib/fractions.py`" + +#: ../Doc/library/fractions.rst:14 +msgid "" +"The :mod:`fractions` module provides support for rational number arithmetic." +msgstr "" +"Le module :mod:`fractions` fournit un support de l'arithmétique des nombres " +"rationnels." + +#: ../Doc/library/fractions.rst:17 +msgid "" +"A Fraction instance can be constructed from a pair of integers, from another " +"rational number, or from a string." +msgstr "" +"Une instance de *Fraction* peut être construite depuis une paire d'entiers, " +"depuis un autre nombre rationnel, ou depuis une chaîne de caractères." + +#: ../Doc/library/fractions.rst:26 +msgid "" +"The first version requires that *numerator* and *denominator* are instances " +"of :class:`numbers.Rational` and returns a new :class:`Fraction` instance " +"with value ``numerator/denominator``. If *denominator* is :const:`0`, it " +"raises a :exc:`ZeroDivisionError`. The second version requires that " +"*other_fraction* is an instance of :class:`numbers.Rational` and returns a :" +"class:`Fraction` instance with the same value. The next two versions accept " +"either a :class:`float` or a :class:`decimal.Decimal` instance, and return " +"a :class:`Fraction` instance with exactly the same value. Note that due to " +"the usual issues with binary floating-point (see :ref:`tut-fp-issues`), the " +"argument to ``Fraction(1.1)`` is not exactly equal to 11/10, and so " +"``Fraction(1.1)`` does *not* return ``Fraction(11, 10)`` as one might " +"expect. (But see the documentation for the :meth:`limit_denominator` method " +"below.) The last version of the constructor expects a string or unicode " +"instance. The usual form for this instance is::" +msgstr "" +"La première version demande que *numerator* et *denominator* soient des " +"instance de :class:`numbers.Rational` et renvoie une instance de :class:" +"`Fraction` valant ``numerator/denominator``. Si *denominator* vaut :const:" +"`0`, une :exc:`ZeroDivisionError` est levée. La seconde version demande que " +"*other_fraction* soit une instance de :class:`numbers.Rational` et renvoie " +"une instance de :class:`Fraction` avec la même valeur. Les deux versions " +"suivantes acceptent un :class:`float` ou une instance de :class:`decimal." +"Decimal`, et renvoient une instance de :class:`Fraction` avec exactement la " +"même valeur. Notez que les problèmes usuels des virgules flottantes " +"binaires (voir :ref:`tut-fp-issues`) font que ``Fraction(1.1)`` n'est pas " +"exactement égal à 11/10, et donc ``Fraction(1.1)`` ne renvoie *pas* " +"``Fraction(11, 10)`` comme on pourrait le penser. (Mais référez-vous à la " +"documentation de la méthode :meth:`limit_denominator` ci-dessous.) La " +"dernière version du constructeur attend une chaîne de caractères ou Unicode. " +"La représentation habituelle de cette forme est ::" + +#: ../Doc/library/fractions.rst:43 +msgid "" +"where the optional ``sign`` may be either '+' or '-' and ``numerator`` and " +"``denominator`` (if present) are strings of decimal digits. In addition, " +"any string that represents a finite value and is accepted by the :class:" +"`float` constructor is also accepted by the :class:`Fraction` constructor. " +"In either form the input string may also have leading and/or trailing " +"whitespace. Here are some examples::" +msgstr "" +"où le ``sign`` optionnel peut être soit `+` soit `-`, et ``numerator`` et " +"``denominator`` (si présent) sont des chaînes de chiffres décimaux. De " +"plus, toute chaîne qui représente une valeur finie et acceptée par le " +"constructeur de :class:`float` est aussi acceptée par celui de :class:" +"`Fraction`. Dans ces deux formes, la chaîne d'entrée peut aussi contenir " +"des espaces en début ou en fin de chaîne. Voici quelques exemples ::" + +#: ../Doc/library/fractions.rst:77 +msgid "" +"The :class:`Fraction` class inherits from the abstract base class :class:" +"`numbers.Rational`, and implements all of the methods and operations from " +"that class. :class:`Fraction` instances are hashable, and should be treated " +"as immutable. In addition, :class:`Fraction` has the following properties " +"and methods:" +msgstr "" +"La classe :class:`Fraction` hérite de la classe abstraite :class:`numbers." +"Rational`, et implémente toutes les méthodes et opérations de cette classe. " +"Les instances de :class:`Fraction` sont hachables, et doivent être traitées " +"comme immuables. En plus de cela, :class:`Fraction` possède les propriétés " +"et méthodes suivantes :" + +#: ../Doc/library/fractions.rst:83 +msgid "" +"The :class:`Fraction` constructor now accepts :class:`float` and :class:" +"`decimal.Decimal` instances." +msgstr "" +"Le constructeur de :class:`Fraction` accepte maintenant des instances de :" +"class:`float` et :class:`decimal.Decimal`." + +#: ../Doc/library/fractions.rst:90 +msgid "Numerator of the Fraction in lowest term." +msgstr "Numérateur de la fraction irréductible." + +#: ../Doc/library/fractions.rst:94 +msgid "Denominator of the Fraction in lowest term." +msgstr "Dénominateur de la fraction irréductible." + +#: ../Doc/library/fractions.rst:99 +msgid "" +"This class method constructs a :class:`Fraction` representing the exact " +"value of *flt*, which must be a :class:`float`. Beware that ``Fraction." +"from_float(0.3)`` is not the same value as ``Fraction(3, 10)``." +msgstr "" +"Cette méthode de classe construit un objet :class:`Fraction` représentant la " +"valeur exacte de *flt*, qui doit être de type :class:`float`. Attention, " +"``Fraction.from_float(0.3)`` n'est pas la même valeur que ``Fraction(3, " +"10)``." + +#: ../Doc/library/fractions.rst:105 +msgid "" +"From Python 3.2 onwards, you can also construct a :class:`Fraction` instance " +"directly from a :class:`float`." +msgstr "" +"Depuis Python 3.2, vous pouvez aussi construire une instance de :class:" +"`Fraction` directement depuis un :class:`float`." + +#: ../Doc/library/fractions.rst:111 +msgid "" +"This class method constructs a :class:`Fraction` representing the exact " +"value of *dec*, which must be a :class:`decimal.Decimal` instance." +msgstr "" +"Cette méthode de classe construit un objet :class:`Fraction` représentant la " +"valeur exacte de *dec*, qui doit être de type :class:`decimal.Decimal`." + +#: ../Doc/library/fractions.rst:116 +msgid "" +"From Python 3.2 onwards, you can also construct a :class:`Fraction` instance " +"directly from a :class:`decimal.Decimal` instance." +msgstr "" +"Depuis Python 3.2, vous pouvez aussi construire une instance de :class:" +"`Fraction` directement depuis une instance de :class:`decimal.Decimal`." + +#: ../Doc/library/fractions.rst:123 +msgid "" +"Finds and returns the closest :class:`Fraction` to ``self`` that has " +"denominator at most max_denominator. This method is useful for finding " +"rational approximations to a given floating-point number:" +msgstr "" +"Trouve et renvoie la :class:`Fraction` la plus proche de ``self`` qui a au " +"plus *max_denominator* comme dénominateur. Cette méthode est utile pour " +"trouver des approximations rationnelles de nombres flottants donnés :" + +#: ../Doc/library/fractions.rst:131 +msgid "or for recovering a rational number that's represented as a float:" +msgstr "ou pour retrouver un nombre rationnel représenté par un flottant :" + +#: ../Doc/library/fractions.rst:144 +msgid "" +"Returns the greatest :class:`int` ``<= self``. This method can also be " +"accessed through the :func:`math.floor` function:" +msgstr "" +"Renvoie le plus grand :class:`int` ``<= self``. Cette méthode peut aussi " +"être utilisée à travers la fonction :func:`math.floor`." + +#: ../Doc/library/fractions.rst:154 +msgid "" +"Returns the least :class:`int` ``>= self``. This method can also be " +"accessed through the :func:`math.ceil` function." +msgstr "" +"Renvoie le plus petit :class:`int` ``>= self``. Cette méthode peut aussi " +"être utilisée à travers la fonction :func:`math.ceil`." + +#: ../Doc/library/fractions.rst:161 +msgid "" +"The first version returns the nearest :class:`int` to ``self``, rounding " +"half to even. The second version rounds ``self`` to the nearest multiple of " +"``Fraction(1, 10**ndigits)`` (logically, if ``ndigits`` is negative), again " +"rounding half toward even. This method can also be accessed through the :" +"func:`round` function." +msgstr "" +"La première version renvoie l':class:`int` le plus proche de ``self``, " +"arrondissant les demis au nombre pair le plus proche. La seconde version " +"arrondit ``self`` au plus proche multiple de ``Fraction(1, 10**ndigits)`` " +"(logiquement, si ``ndigits`` est négatif), arrondissant toujours les demis " +"au nombre pair le plus proche. Cette méthode peut aussi être utilisée à via " +"la fonction :func:`round`." + +#: ../Doc/library/fractions.rst:170 +msgid "" +"Return the greatest common divisor of the integers *a* and *b*. If either " +"*a* or *b* is nonzero, then the absolute value of ``gcd(a, b)`` is the " +"largest integer that divides both *a* and *b*. ``gcd(a,b)`` has the same " +"sign as *b* if *b* is nonzero; otherwise it takes the sign of *a*. ``gcd(0, " +"0)`` returns ``0``." +msgstr "" +"Renvoie le plus grand diviseur commun (PGCD) des entiers *a* et *b*. Si *a* " +"et *b* sont tous deux non nuls, alors la valeur absolue de ``gcd(a, b)`` est " +"le plus grand entier qui divise à la fois *a* et *b*. ``gcd(a,b)`` a le " +"même signe que *b* si *b* n'est pas nul ; autrement il prend le signe de " +"*a*. ``gcd(0, 0)`` renvoie ``0``." + +#: ../Doc/library/fractions.rst:176 +msgid "Use :func:`math.gcd` instead." +msgstr "Utilisez plutôt :func:`math.gcd`." + +#: ../Doc/library/fractions.rst:182 +msgid "Module :mod:`numbers`" +msgstr "Module :mod:`numbers`" + +#: ../Doc/library/fractions.rst:183 +msgid "The abstract base classes making up the numeric tower." +msgstr "Les classes abstraites représentant la hiérarchie des nombres." diff --git a/library/frameworks.po b/library/frameworks.po new file mode 100644 index 000000000..57ffc85b9 --- /dev/null +++ b/library/frameworks.po @@ -0,0 +1,33 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-11-07 22:57+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/frameworks.rst:5 +msgid "Program Frameworks" +msgstr "*Frameworks* d'applications" + +#: ../Doc/library/frameworks.rst:7 +msgid "" +"The modules described in this chapter are frameworks that will largely " +"dictate the structure of your program. Currently the modules described " +"here are all oriented toward writing command-line interfaces." +msgstr "" +"Les modules décrits dans ce chapitre sont des *frameworks* qui encadreront " +"la structure de vos programmes. Actuellement tous les modules décrits ici " +"sont destinés à écrire des interfaces en ligne de commande." + +#: ../Doc/library/frameworks.rst:11 +msgid "The full list of modules described in this chapter is:" +msgstr "La liste complète des modules décrits dans ce chapitre est :" diff --git a/library/ftplib.po b/library/ftplib.po new file mode 100644 index 000000000..eef2d4fcf --- /dev/null +++ b/library/ftplib.po @@ -0,0 +1,433 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/ftplib.rst:2 +msgid ":mod:`ftplib` --- FTP protocol client" +msgstr "" + +#: ../Doc/library/ftplib.rst:7 +msgid "**Source code:** :source:`Lib/ftplib.py`" +msgstr "**Code source :** :source:`Lib/ftplib.py`" + +#: ../Doc/library/ftplib.rst:15 +msgid "" +"This module defines the class :class:`FTP` and a few related items. The :" +"class:`FTP` class implements the client side of the FTP protocol. You can " +"use this to write Python programs that perform a variety of automated FTP " +"jobs, such as mirroring other FTP servers. It is also used by the module :" +"mod:`urllib.request` to handle URLs that use FTP. For more information on " +"FTP (File Transfer Protocol), see Internet :rfc:`959`." +msgstr "" + +#: ../Doc/library/ftplib.rst:22 +msgid "Here's a sample session using the :mod:`ftplib` module::" +msgstr "" + +#: ../Doc/library/ftplib.rst:41 +msgid "The module defines the following items:" +msgstr "Le module définit les éléments suivants :" + +#: ../Doc/library/ftplib.rst:45 +msgid "" +"Return a new instance of the :class:`FTP` class. When *host* is given, the " +"method call ``connect(host)`` is made. When *user* is given, additionally " +"the method call ``login(user, passwd, acct)`` is made (where *passwd* and " +"*acct* default to the empty string when not given). The optional *timeout* " +"parameter specifies a timeout in seconds for blocking operations like the " +"connection attempt (if is not specified, the global default timeout setting " +"will be used). *source_address* is a 2-tuple ``(host, port)`` for the socket " +"to bind to as its source address before connecting." +msgstr "" + +#: ../Doc/library/ftplib.rst:54 +msgid "The :class:`FTP` class supports the :keyword:`with` statement, e.g.:" +msgstr "" + +#: ../Doc/library/ftplib.rst:68 +msgid "Support for the :keyword:`with` statement was added." +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." + +#: ../Doc/library/ftplib.rst:71 ../Doc/library/ftplib.rst:92 +#: ../Doc/library/ftplib.rst:193 +msgid "*source_address* parameter was added." +msgstr "" + +#: ../Doc/library/ftplib.rst:77 +msgid "" +"A :class:`FTP` subclass which adds TLS support to FTP as described in :rfc:" +"`4217`. Connect as usual to port 21 implicitly securing the FTP control " +"connection before authenticating. Securing the data connection requires the " +"user to explicitly ask for it by calling the :meth:`prot_p` method. " +"*context* is a :class:`ssl.SSLContext` object which allows bundling SSL " +"configuration options, certificates and private keys into a single " +"(potentially long-lived) structure. Please read :ref:`ssl-security` for " +"best practices." +msgstr "" + +#: ../Doc/library/ftplib.rst:86 +msgid "" +"*keyfile* and *certfile* are a legacy alternative to *context* -- they can " +"point to PEM-formatted private key and certificate chain files " +"(respectively) for the SSL connection." +msgstr "" + +#: ../Doc/library/ftplib.rst:95 +msgid "" +"The class now supports hostname check with :attr:`ssl.SSLContext." +"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +msgstr "" + +#: ../Doc/library/ftplib.rst:102 +msgid "" +"*keyfile* and *certfile* are deprecated in favor of *context*. Please use :" +"meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." +"create_default_context` select the system's trusted CA certificates for you." +msgstr "" + +#: ../Doc/library/ftplib.rst:107 +msgid "Here's a sample session using the :class:`FTP_TLS` class::" +msgstr "" + +#: ../Doc/library/ftplib.rst:120 +msgid "Exception raised when an unexpected reply is received from the server." +msgstr "" + +#: ../Doc/library/ftplib.rst:125 +msgid "" +"Exception raised when an error code signifying a temporary error (response " +"codes in the range 400--499) is received." +msgstr "" + +#: ../Doc/library/ftplib.rst:131 +msgid "" +"Exception raised when an error code signifying a permanent error (response " +"codes in the range 500--599) is received." +msgstr "" + +#: ../Doc/library/ftplib.rst:137 +msgid "" +"Exception raised when a reply is received from the server that does not fit " +"the response specifications of the File Transfer Protocol, i.e. begin with a " +"digit in the range 1--5." +msgstr "" + +#: ../Doc/library/ftplib.rst:144 +msgid "" +"The set of all exceptions (as a tuple) that methods of :class:`FTP` " +"instances may raise as a result of problems with the FTP connection (as " +"opposed to programming errors made by the caller). This set includes the " +"four exceptions listed above as well as :exc:`OSError`." +msgstr "" + +#: ../Doc/library/ftplib.rst:154 +msgid "Module :mod:`netrc`" +msgstr "" + +#: ../Doc/library/ftplib.rst:153 +msgid "" +"Parser for the :file:`.netrc` file format. The file :file:`.netrc` is " +"typically used by FTP clients to load user authentication information before " +"prompting the user." +msgstr "" + +#: ../Doc/library/ftplib.rst:161 +msgid "FTP Objects" +msgstr "" + +#: ../Doc/library/ftplib.rst:163 +msgid "" +"Several methods are available in two flavors: one for handling text files " +"and another for binary files. These are named for the command which is used " +"followed by ``lines`` for the text version or ``binary`` for the binary " +"version." +msgstr "" + +#: ../Doc/library/ftplib.rst:167 +msgid ":class:`FTP` instances have the following methods:" +msgstr "" + +#: ../Doc/library/ftplib.rst:172 +msgid "" +"Set the instance's debugging level. This controls the amount of debugging " +"output printed. The default, ``0``, produces no debugging output. A value " +"of ``1`` produces a moderate amount of debugging output, generally a single " +"line per request. A value of ``2`` or higher produces the maximum amount of " +"debugging output, logging each line sent and received on the control " +"connection." +msgstr "" + +#: ../Doc/library/ftplib.rst:181 +msgid "" +"Connect to the given host and port. The default port number is ``21``, as " +"specified by the FTP protocol specification. It is rarely needed to specify " +"a different port number. This function should be called only once for each " +"instance; it should not be called at all if a host was given when the " +"instance was created. All other methods can only be used after a connection " +"has been made. The optional *timeout* parameter specifies a timeout in " +"seconds for the connection attempt. If no *timeout* is passed, the global " +"default timeout setting will be used. *source_address* is a 2-tuple ``(host, " +"port)`` for the socket to bind to as its source address before connecting." +msgstr "" + +#: ../Doc/library/ftplib.rst:199 +msgid "" +"Return the welcome message sent by the server in reply to the initial " +"connection. (This message sometimes contains disclaimers or help " +"information that may be relevant to the user.)" +msgstr "" + +#: ../Doc/library/ftplib.rst:206 +msgid "" +"Log in as the given *user*. The *passwd* and *acct* parameters are optional " +"and default to the empty string. If no *user* is specified, it defaults to " +"``'anonymous'``. If *user* is ``'anonymous'``, the default *passwd* is " +"``'anonymous@'``. This function should be called only once for each " +"instance, after a connection has been established; it should not be called " +"at all if a host and user were given when the instance was created. Most " +"FTP commands are only allowed after the client has logged in. The *acct* " +"parameter supplies \"accounting information\"; few systems implement this." +msgstr "" + +#: ../Doc/library/ftplib.rst:218 +msgid "" +"Abort a file transfer that is in progress. Using this does not always work, " +"but it's worth a try." +msgstr "" + +#: ../Doc/library/ftplib.rst:224 +msgid "" +"Send a simple command string to the server and return the response string." +msgstr "" + +#: ../Doc/library/ftplib.rst:229 +msgid "" +"Send a simple command string to the server and handle the response. Return " +"nothing if a response code corresponding to success (codes in the range " +"200--299) is received. Raise :exc:`error_reply` otherwise." +msgstr "" + +#: ../Doc/library/ftplib.rst:236 +msgid "" +"Retrieve a file in binary transfer mode. *cmd* should be an appropriate " +"``RETR`` command: ``'RETR filename'``. The *callback* function is called for " +"each block of data received, with a single bytes argument giving the data " +"block. The optional *blocksize* argument specifies the maximum chunk size to " +"read on the low-level socket object created to do the actual transfer (which " +"will also be the largest size of the data blocks passed to *callback*). A " +"reasonable default is chosen. *rest* means the same thing as in the :meth:" +"`transfercmd` method." +msgstr "" + +#: ../Doc/library/ftplib.rst:248 +msgid "" +"Retrieve a file or directory listing in ASCII transfer mode. *cmd* should " +"be an appropriate ``RETR`` command (see :meth:`retrbinary`) or a command " +"such as ``LIST`` or ``NLST`` (usually just the string ``'LIST'``). ``LIST`` " +"retrieves a list of files and information about those files. ``NLST`` " +"retrieves a list of file names. The *callback* function is called for each " +"line with a string argument containing the line with the trailing CRLF " +"stripped. The default *callback* prints the line to ``sys.stdout``." +msgstr "" + +#: ../Doc/library/ftplib.rst:260 +msgid "" +"Enable \"passive\" mode if *val* is true, otherwise disable passive mode. " +"Passive mode is on by default." +msgstr "" + +#: ../Doc/library/ftplib.rst:266 +msgid "" +"Store a file in binary transfer mode. *cmd* should be an appropriate " +"``STOR`` command: ``\"STOR filename\"``. *fp* is a :term:`file object` " +"(opened in binary mode) which is read until EOF using its :meth:`~io.IOBase." +"read` method in blocks of size *blocksize* to provide the data to be stored. " +"The *blocksize* argument defaults to 8192. *callback* is an optional single " +"parameter callable that is called on each block of data after it is sent. " +"*rest* means the same thing as in the :meth:`transfercmd` method." +msgstr "" + +#: ../Doc/library/ftplib.rst:274 +msgid "*rest* parameter added." +msgstr "" + +#: ../Doc/library/ftplib.rst:280 +msgid "" +"Store a file in ASCII transfer mode. *cmd* should be an appropriate " +"``STOR`` command (see :meth:`storbinary`). Lines are read until EOF from " +"the :term:`file object` *fp* (opened in binary mode) using its :meth:`~io." +"IOBase.readline` method to provide the data to be stored. *callback* is an " +"optional single parameter callable that is called on each line after it is " +"sent." +msgstr "" + +#: ../Doc/library/ftplib.rst:289 +msgid "" +"Initiate a transfer over the data connection. If the transfer is active, " +"send an ``EPRT`` or ``PORT`` command and the transfer command specified by " +"*cmd*, and accept the connection. If the server is passive, send an " +"``EPSV`` or ``PASV`` command, connect to it, and start the transfer " +"command. Either way, return the socket for the connection." +msgstr "" + +#: ../Doc/library/ftplib.rst:295 +msgid "" +"If optional *rest* is given, a ``REST`` command is sent to the server, " +"passing *rest* as an argument. *rest* is usually a byte offset into the " +"requested file, telling the server to restart sending the file's bytes at " +"the requested offset, skipping over the initial bytes. Note however that :" +"rfc:`959` requires only that *rest* be a string containing characters in the " +"printable range from ASCII code 33 to ASCII code 126. The :meth:" +"`transfercmd` method, therefore, converts *rest* to a string, but no check " +"is performed on the string's contents. If the server does not recognize the " +"``REST`` command, an :exc:`error_reply` exception will be raised. If this " +"happens, simply call :meth:`transfercmd` without a *rest* argument." +msgstr "" + +#: ../Doc/library/ftplib.rst:309 +msgid "" +"Like :meth:`transfercmd`, but returns a tuple of the data connection and the " +"expected size of the data. If the expected size could not be computed, " +"``None`` will be returned as the expected size. *cmd* and *rest* means the " +"same thing as in :meth:`transfercmd`." +msgstr "" + +#: ../Doc/library/ftplib.rst:317 +msgid "" +"List a directory in a standardized format by using ``MLSD`` command (:rfc:" +"`3659`). If *path* is omitted the current directory is assumed. *facts* is " +"a list of strings representing the type of information desired (e.g. " +"``[\"type\", \"size\", \"perm\"]``). Return a generator object yielding a " +"tuple of two elements for every file found in path. First element is the " +"file name, the second one is a dictionary containing facts about the file " +"name. Content of this dictionary might be limited by the *facts* argument " +"but server is not guaranteed to return all requested facts." +msgstr "" + +#: ../Doc/library/ftplib.rst:331 +msgid "" +"Return a list of file names as returned by the ``NLST`` command. The " +"optional *argument* is a directory to list (default is the current server " +"directory). Multiple arguments can be used to pass non-standard options to " +"the ``NLST`` command." +msgstr "" + +#: ../Doc/library/ftplib.rst:336 ../Doc/library/ftplib.rst:348 +msgid "If your server supports the command, :meth:`mlsd` offers a better API." +msgstr "" + +#: ../Doc/library/ftplib.rst:341 +msgid "" +"Produce a directory listing as returned by the ``LIST`` command, printing it " +"to standard output. The optional *argument* is a directory to list (default " +"is the current server directory). Multiple arguments can be used to pass " +"non-standard options to the ``LIST`` command. If the last argument is a " +"function, it is used as a *callback* function as for :meth:`retrlines`; the " +"default prints to ``sys.stdout``. This method returns ``None``." +msgstr "" + +#: ../Doc/library/ftplib.rst:353 +msgid "Rename file *fromname* on the server to *toname*." +msgstr "" + +#: ../Doc/library/ftplib.rst:358 +msgid "" +"Remove the file named *filename* from the server. If successful, returns " +"the text of the response, otherwise raises :exc:`error_perm` on permission " +"errors or :exc:`error_reply` on other errors." +msgstr "" + +#: ../Doc/library/ftplib.rst:365 +msgid "Set the current directory on the server." +msgstr "" + +#: ../Doc/library/ftplib.rst:370 +msgid "Create a new directory on the server." +msgstr "" + +#: ../Doc/library/ftplib.rst:375 +msgid "Return the pathname of the current directory on the server." +msgstr "" + +#: ../Doc/library/ftplib.rst:380 +msgid "Remove the directory named *dirname* on the server." +msgstr "" + +#: ../Doc/library/ftplib.rst:385 +msgid "" +"Request the size of the file named *filename* on the server. On success, " +"the size of the file is returned as an integer, otherwise ``None`` is " +"returned. Note that the ``SIZE`` command is not standardized, but is " +"supported by many common server implementations." +msgstr "" + +#: ../Doc/library/ftplib.rst:393 +msgid "" +"Send a ``QUIT`` command to the server and close the connection. This is the " +"\"polite\" way to close a connection, but it may raise an exception if the " +"server responds with an error to the ``QUIT`` command. This implies a call " +"to the :meth:`close` method which renders the :class:`FTP` instance useless " +"for subsequent calls (see below)." +msgstr "" + +#: ../Doc/library/ftplib.rst:402 +msgid "" +"Close the connection unilaterally. This should not be applied to an already " +"closed connection such as after a successful call to :meth:`~FTP.quit`. " +"After this call the :class:`FTP` instance should not be used any more (after " +"a call to :meth:`close` or :meth:`~FTP.quit` you cannot reopen the " +"connection by issuing another :meth:`login` method)." +msgstr "" + +#: ../Doc/library/ftplib.rst:410 +msgid "FTP_TLS Objects" +msgstr "" + +#: ../Doc/library/ftplib.rst:412 +msgid "" +":class:`FTP_TLS` class inherits from :class:`FTP`, defining these additional " +"objects:" +msgstr "" + +#: ../Doc/library/ftplib.rst:416 +msgid "The SSL version to use (defaults to :attr:`ssl.PROTOCOL_SSLv23`)." +msgstr "" + +#: ../Doc/library/ftplib.rst:420 +msgid "" +"Set up a secure control connection by using TLS or SSL, depending on what is " +"specified in the :attr:`ssl_version` attribute." +msgstr "" + +#: ../Doc/library/ftplib.rst:423 +msgid "" +"The method now supports hostname check with :attr:`ssl.SSLContext." +"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +msgstr "" + +#: ../Doc/library/ftplib.rst:430 +msgid "" +"Revert control channel back to plaintext. This can be useful to take " +"advantage of firewalls that know how to handle NAT with non-secure FTP " +"without opening fixed ports." +msgstr "" + +#: ../Doc/library/ftplib.rst:438 +msgid "Set up secure data connection." +msgstr "" + +#: ../Doc/library/ftplib.rst:442 +msgid "Set up clear text data connection." +msgstr "" diff --git a/library/functional.po b/library/functional.po new file mode 100644 index 000000000..5355c961a --- /dev/null +++ b/library/functional.po @@ -0,0 +1,32 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-02-15 00:43+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/functional.rst:3 +msgid "Functional Programming Modules" +msgstr "Modules de programmation fonctionnelle" + +#: ../Doc/library/functional.rst:5 +msgid "" +"The modules described in this chapter provide functions and classes that " +"support a functional programming style, and general operations on callables." +msgstr "" +"Les modules décrits dans ce chapitre fournissent des fonctions et des " +"classes permettant d'adopter un style fonctionnel, ainsi que des " +"manipulations sur des appelables." + +#: ../Doc/library/functional.rst:8 +msgid "The following modules are documented in this chapter:" +msgstr "Les modules suivants sont documentés dans ce chapitre :" diff --git a/library/functions.po b/library/functions.po new file mode 100644 index 000000000..01b537ca8 --- /dev/null +++ b/library/functions.po @@ -0,0 +1,3139 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2019-06-01 23:07+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/functions.rst:5 ../Doc/library/functions.rst:11 +msgid "Built-in Functions" +msgstr "Fonctions natives" + +#: ../Doc/library/functions.rst:7 +msgid "" +"The Python interpreter has a number of functions and types built into it " +"that are always available. They are listed here in alphabetical order." +msgstr "" +"L'interpréteur Python propose quelques fonctions et types natifs qui sont " +"toujours disponibles. Ils sont listés ici par ordre alphabétique." + +#: ../Doc/library/functions.rst:13 +msgid ":func:`abs`" +msgstr ":func:`abs`" + +#: ../Doc/library/functions.rst:13 +msgid ":func:`delattr`" +msgstr ":func:`delattr`" + +#: ../Doc/library/functions.rst:13 +msgid ":func:`hash`" +msgstr ":func:`hash`" + +#: ../Doc/library/functions.rst:13 +msgid "|func-memoryview|_" +msgstr "|func-memoryview|_" + +#: ../Doc/library/functions.rst:13 +msgid "|func-set|_" +msgstr "|func-set|_" + +#: ../Doc/library/functions.rst:14 +msgid ":func:`all`" +msgstr ":func:`all`" + +#: ../Doc/library/functions.rst:14 +msgid "|func-dict|_" +msgstr "|func-dict|_" + +#: ../Doc/library/functions.rst:14 +msgid ":func:`help`" +msgstr ":func:`help`" + +#: ../Doc/library/functions.rst:14 +msgid ":func:`min`" +msgstr ":func:`min`" + +#: ../Doc/library/functions.rst:14 +msgid ":func:`setattr`" +msgstr ":func:`setattr`" + +#: ../Doc/library/functions.rst:15 +msgid ":func:`any`" +msgstr ":func:`any`" + +#: ../Doc/library/functions.rst:15 +msgid ":func:`dir`" +msgstr ":func:`dir`" + +#: ../Doc/library/functions.rst:15 +msgid ":func:`hex`" +msgstr ":func:`hex`" + +#: ../Doc/library/functions.rst:15 +msgid ":func:`next`" +msgstr ":func:`next`" + +#: ../Doc/library/functions.rst:15 +msgid ":func:`slice`" +msgstr ":func:`slice`" + +#: ../Doc/library/functions.rst:16 +msgid ":func:`ascii`" +msgstr ":func:`ascii`" + +#: ../Doc/library/functions.rst:16 +msgid ":func:`divmod`" +msgstr ":func:`divmod`" + +#: ../Doc/library/functions.rst:16 +msgid ":func:`id`" +msgstr ":func:`id`" + +#: ../Doc/library/functions.rst:16 +msgid ":func:`object`" +msgstr ":func:`object`" + +#: ../Doc/library/functions.rst:16 +msgid ":func:`sorted`" +msgstr ":func:`sorted`" + +#: ../Doc/library/functions.rst:17 +msgid ":func:`bin`" +msgstr ":func:`bin`" + +#: ../Doc/library/functions.rst:17 +msgid ":func:`enumerate`" +msgstr ":func:`enumerate`" + +#: ../Doc/library/functions.rst:17 +msgid ":func:`input`" +msgstr ":func:`input`" + +#: ../Doc/library/functions.rst:17 +msgid ":func:`oct`" +msgstr ":func:`oct`" + +#: ../Doc/library/functions.rst:17 +msgid ":func:`staticmethod`" +msgstr ":func:`staticmethod`" + +#: ../Doc/library/functions.rst:18 +msgid ":func:`bool`" +msgstr ":func:`bool`" + +#: ../Doc/library/functions.rst:18 +msgid ":func:`eval`" +msgstr ":func:`eval`" + +#: ../Doc/library/functions.rst:18 +msgid ":func:`int`" +msgstr ":func:`int`" + +#: ../Doc/library/functions.rst:18 +msgid ":func:`open`" +msgstr ":func:`open`" + +#: ../Doc/library/functions.rst:18 +msgid "|func-str|_" +msgstr "|func-str|_" + +#: ../Doc/library/functions.rst:19 +msgid ":func:`breakpoint`" +msgstr ":func:`breakpoint`" + +#: ../Doc/library/functions.rst:19 +msgid ":func:`exec`" +msgstr ":func:`exec`" + +#: ../Doc/library/functions.rst:19 +msgid ":func:`isinstance`" +msgstr ":func:`isinstance`" + +#: ../Doc/library/functions.rst:19 +msgid ":func:`ord`" +msgstr ":func:`ord`" + +#: ../Doc/library/functions.rst:19 +msgid ":func:`sum`" +msgstr ":func:`sum`" + +#: ../Doc/library/functions.rst:20 +msgid "|func-bytearray|_" +msgstr "|func-bytearray|_" + +#: ../Doc/library/functions.rst:20 +msgid ":func:`filter`" +msgstr ":func:`filter`" + +#: ../Doc/library/functions.rst:20 +msgid ":func:`issubclass`" +msgstr ":func:`issubclass`" + +#: ../Doc/library/functions.rst:20 +msgid ":func:`pow`" +msgstr ":func:`pow`" + +#: ../Doc/library/functions.rst:20 +msgid ":func:`super`" +msgstr ":func:`super`" + +#: ../Doc/library/functions.rst:21 +msgid "|func-bytes|_" +msgstr "|func-bytes|_" + +#: ../Doc/library/functions.rst:21 +msgid ":func:`float`" +msgstr ":func:`float`" + +#: ../Doc/library/functions.rst:21 +msgid ":func:`iter`" +msgstr ":func:`iter`" + +#: ../Doc/library/functions.rst:21 +msgid ":func:`print`" +msgstr ":func:`print`" + +#: ../Doc/library/functions.rst:21 +msgid "|func-tuple|_" +msgstr "|func-tuple|_" + +#: ../Doc/library/functions.rst:22 +msgid ":func:`callable`" +msgstr ":func:`callable`" + +#: ../Doc/library/functions.rst:22 +msgid ":func:`format`" +msgstr ":func:`format`" + +#: ../Doc/library/functions.rst:22 +msgid ":func:`len`" +msgstr ":func:`len`" + +#: ../Doc/library/functions.rst:22 +msgid ":func:`property`" +msgstr ":func:`property`" + +#: ../Doc/library/functions.rst:22 +msgid ":func:`type`" +msgstr ":func:`type`" + +#: ../Doc/library/functions.rst:23 +msgid ":func:`chr`" +msgstr ":func:`chr`" + +#: ../Doc/library/functions.rst:23 +msgid "|func-frozenset|_" +msgstr "|func-frozenset|_" + +#: ../Doc/library/functions.rst:23 +msgid "|func-list|_" +msgstr "|func-list|_" + +#: ../Doc/library/functions.rst:23 +msgid "|func-range|_" +msgstr "|func-range|_" + +#: ../Doc/library/functions.rst:23 +msgid ":func:`vars`" +msgstr ":func:`vars`" + +#: ../Doc/library/functions.rst:24 +msgid ":func:`classmethod`" +msgstr ":func:`classmethod`" + +#: ../Doc/library/functions.rst:24 +msgid ":func:`getattr`" +msgstr ":func:`getattr`" + +#: ../Doc/library/functions.rst:24 +msgid ":func:`locals`" +msgstr ":func:`locals`" + +#: ../Doc/library/functions.rst:24 +msgid ":func:`repr`" +msgstr ":func:`repr`" + +#: ../Doc/library/functions.rst:24 +msgid ":func:`zip`" +msgstr ":func:`zip`" + +#: ../Doc/library/functions.rst:25 +msgid ":func:`compile`" +msgstr ":func:`compile`" + +#: ../Doc/library/functions.rst:25 +msgid ":func:`globals`" +msgstr ":func:`globals`" + +#: ../Doc/library/functions.rst:25 +msgid ":func:`map`" +msgstr ":func:`map`" + +#: ../Doc/library/functions.rst:25 +msgid ":func:`reversed`" +msgstr ":func:`reversed`" + +#: ../Doc/library/functions.rst:25 +msgid ":func:`__import__`" +msgstr ":func:`__import__`" + +#: ../Doc/library/functions.rst:26 +msgid ":func:`complex`" +msgstr ":func:`complex`" + +#: ../Doc/library/functions.rst:26 +msgid ":func:`hasattr`" +msgstr ":func:`hasattr`" + +#: ../Doc/library/functions.rst:26 +msgid ":func:`max`" +msgstr ":func:`max`" + +#: ../Doc/library/functions.rst:26 +msgid ":func:`round`" +msgstr ":func:`round`" + +#: ../Doc/library/functions.rst:45 +msgid "" +"Return the absolute value of a number. The argument may be an integer or a " +"floating point number. If the argument is a complex number, its magnitude " +"is returned." +msgstr "" +"Donne la valeur absolue d'un nombre. L'argument peut être un nombre entier " +"ou un nombre à virgule flottante. Si l'argument est un nombre complexe, son " +"`module `_ est " +"donné." + +#: ../Doc/library/functions.rst:52 +msgid "" +"Return ``True`` if all elements of the *iterable* are true (or if the " +"iterable is empty). Equivalent to::" +msgstr "" +"Donne ``True`` si tous les éléments de *iterable* sont vrais (ou s'il est " +"vide), équivaut à ::" + +#: ../Doc/library/functions.rst:64 +msgid "" +"Return ``True`` if any element of the *iterable* is true. If the iterable " +"is empty, return ``False``. Equivalent to::" +msgstr "" +"Donne ``True`` si au moins un élément de *iterable* est vrai. Faux est aussi " +"donné dans le cas où *iterable* est vide, équivaut à ::" + +#: ../Doc/library/functions.rst:76 +msgid "" +"As :func:`repr`, return a string containing a printable representation of an " +"object, but escape the non-ASCII characters in the string returned by :func:" +"`repr` using ``\\x``, ``\\u`` or ``\\U`` escapes. This generates a string " +"similar to that returned by :func:`repr` in Python 2." +msgstr "" +"Donne, tout comme :func:`repr`, une chaîne contenant une représentation " +"affichable d'un objet, en transformant les caractères non ASCII donnés par :" +"func:`repr` en utilisant des séquences d'échappement ``\\x``, ``\\u`` ou ``" +"\\U``. Cela génère une chaîne similaire à ce que renvoie :func:`repr` dans " +"Python 2." + +#: ../Doc/library/functions.rst:84 +msgid "" +"Convert an integer number to a binary string prefixed with \"0b\". The " +"result is a valid Python expression. If *x* is not a Python :class:`int` " +"object, it has to define an :meth:`__index__` method that returns an " +"integer. Some examples:" +msgstr "" +"Convertit un nombre entier en binaire dans une chaîne avec le préfixe " +"``0b``. Le résultat est une expression Python valide. Si *x* n'est pas un :" +"class:`int`, il doit définir une méthode :meth:`__index__` donnant un nombre " +"entier, voici quelques exemples :" + +#: ../Doc/library/functions.rst:94 +msgid "" +"If prefix \"0b\" is desired or not, you can use either of the following ways." +msgstr "" +"Que le préfixe ``0b`` soit souhaité ou non, vous pouvez utiliser les moyens " +"suivants." + +#: ../Doc/library/functions.rst:101 ../Doc/library/functions.rst:703 +#: ../Doc/library/functions.rst:963 +msgid "See also :func:`format` for more information." +msgstr "Voir aussi :func:`format` pour plus d'information." + +#: ../Doc/library/functions.rst:106 +msgid "" +"Return a Boolean value, i.e. one of ``True`` or ``False``. *x* is converted " +"using the standard :ref:`truth testing procedure `. If *x* is false " +"or omitted, this returns ``False``; otherwise it returns ``True``. The :" +"class:`bool` class is a subclass of :class:`int` (see :ref:`typesnumeric`). " +"It cannot be subclassed further. Its only instances are ``False`` and " +"``True`` (see :ref:`bltin-boolean-values`)." +msgstr "" +"Donne une valeur booléenne, c'est à dire soit ``True``, soit ``False``. *x* " +"est converti en utilisant la :ref:`procédure standard d'évaluation de valeur " +"de vérité`. Si *x* est faux, ou omis, elle donne ``False``, sinon, " +"elle donne ``True``. La classe :class:`bool` hérite de la classe :class:" +"`int` (voir :ref:`typesnumeric`). Il n'est pas possible d'en hériter. Ses " +"seules instances sont ``False`` et ``True`` (voir :ref:`bltin-boolean-" +"values`)." + +#: ../Doc/library/functions.rst:115 ../Doc/library/functions.rst:581 +#: ../Doc/library/functions.rst:774 +msgid "*x* is now a positional-only parameter." +msgstr "*x* est désormais un argument exclusivement optionnel." + +#: ../Doc/library/functions.rst:120 +msgid "" +"This function drops you into the debugger at the call site. Specifically, " +"it calls :func:`sys.breakpointhook`, passing ``args`` and ``kws`` straight " +"through. By default, ``sys.breakpointhook()`` calls :func:`pdb.set_trace()` " +"expecting no arguments. In this case, it is purely a convenience function " +"so you don't have to explicitly import :mod:`pdb` or type as much code to " +"enter the debugger. However, :func:`sys.breakpointhook` can be set to some " +"other function and :func:`breakpoint` will automatically call that, allowing " +"you to drop into the debugger of choice." +msgstr "" +"Cette fonction vous place dans le débogueur lorsqu'elle est appelée. Plus " +"précisément, elle appelle :func:`sys.breakpointhook`, en lui passant les " +"arguments ``args`` et ``kws``. Par défaut, ``sys.breakpointhook()`` " +"appelle :func:`pdb.set_trace()` qui n'attend aucun argument. Dans ce cas, " +"c'est purement une fonction de commodité donc vous n'avez pas à importer " +"explicitement :mod:`pdb` ou à taper plus de code pour entrer dans le " +"débogueur. Cependant, :func:`sys.breakpointhook` peut-être paramétré pour " +"une autre fonction et :func:`breakpoint` l'appellera automatiquement, vous " +"permettant ainsi de basculer dans le débogueur de votre choix." + +#: ../Doc/library/functions.rst:136 +msgid "" +"Return a new array of bytes. The :class:`bytearray` class is a mutable " +"sequence of integers in the range 0 <= x < 256. It has most of the usual " +"methods of mutable sequences, described in :ref:`typesseq-mutable`, as well " +"as most methods that the :class:`bytes` type has, see :ref:`bytes-methods`." +msgstr "" +"Donne un nouveau tableau d'octets. La classe :class:`bytearray` est une " +"séquence muable de nombre entiers dans l'intervalle 0 <= x < 256. Il possède " +"la plupart des méthodes des séquences variables, décrites dans :ref:" +"`typesseq-mutable`, ainsi que la plupart des méthodes de la classe :class:" +"`bytes`, voir :ref:`bytes-methods`." + +#: ../Doc/library/functions.rst:141 +msgid "" +"The optional *source* parameter can be used to initialize the array in a few " +"different ways:" +msgstr "" +"Le paramètre optionnel *source* peut être utilisé pour initialiser l'*array* " +"de quelques manières différentes :" + +#: ../Doc/library/functions.rst:144 +msgid "" +"If it is a *string*, you must also give the *encoding* (and optionally, " +"*errors*) parameters; :func:`bytearray` then converts the string to bytes " +"using :meth:`str.encode`." +msgstr "" +"Si c'est une *chaîne*, vous devez aussi donner les paramètre *encoding* pour " +"l'encodage (et éventuellement *errors*). La fonction :func:`bytearray` " +"convertit ensuite la chaîne en *bytes* via la méthode :meth:`str.encode`." + +#: ../Doc/library/functions.rst:148 +msgid "" +"If it is an *integer*, the array will have that size and will be initialized " +"with null bytes." +msgstr "" +"Si c'est un *entier*, l'*array* aura cette taille et sera initialisé de " +"*null bytes*." + +#: ../Doc/library/functions.rst:151 +msgid "" +"If it is an object conforming to the *buffer* interface, a read-only buffer " +"of the object will be used to initialize the bytes array." +msgstr "" +"Si c'est un objet conforme à l'interface *buffer*, un *buffer* en lecture " +"seule de l'objet sera utilisé pour initialiser l'*array*." + +#: ../Doc/library/functions.rst:154 +msgid "" +"If it is an *iterable*, it must be an iterable of integers in the range ``0 " +"<= x < 256``, which are used as the initial contents of the array." +msgstr "" +"Si c'est un *itérable*, il doit itérer sur des nombres entier dans " +"l'intervalle ``0 <= x < 256``, qui seront utilisés pour initialiser le " +"contenu de l'*array*." + +#: ../Doc/library/functions.rst:157 +msgid "Without an argument, an array of size 0 is created." +msgstr "Sans argument, un *array* de taille vide est crée." + +#: ../Doc/library/functions.rst:159 +msgid "See also :ref:`binaryseq` and :ref:`typebytearray`." +msgstr "Voir :ref:`binaryseq` et :ref:`typebytearray`." + +#: ../Doc/library/functions.rst:166 +msgid "" +"Return a new \"bytes\" object, which is an immutable sequence of integers in " +"the range ``0 <= x < 256``. :class:`bytes` is an immutable version of :" +"class:`bytearray` -- it has the same non-mutating methods and the same " +"indexing and slicing behavior." +msgstr "" +"Donne un nouvel objet *bytes*, qui est une séquence immuable de nombre " +"entiers dans l'intervalle ``0 <= x <= 256``. Les :class:`bytes` est une " +"version immuable de :class:`bytearray` -- avec les mêmes méthodes d'accès, " +"et le même comportement lors de l'indexation ou la découpe." + +#: ../Doc/library/functions.rst:171 +msgid "" +"Accordingly, constructor arguments are interpreted as for :func:`bytearray`." +msgstr "" +"En conséquence, les arguments du constructeur sont les mêmes que pour :func:" +"`bytearray`." + +#: ../Doc/library/functions.rst:173 +msgid "Bytes objects can also be created with literals, see :ref:`strings`." +msgstr "" +"Les objets *bytes* peuvent aussi être créés à partir de littéraux, voir :ref:" +"`strings`." + +#: ../Doc/library/functions.rst:175 +msgid "See also :ref:`binaryseq`, :ref:`typebytes`, and :ref:`bytes-methods`." +msgstr "" +"Voir aussi :ref:`binaryseq`, :ref:`typebytes`, et :ref:`bytes-methods`." + +#: ../Doc/library/functions.rst:180 +msgid "" +"Return :const:`True` if the *object* argument appears callable, :const:" +"`False` if not. If this returns true, it is still possible that a call " +"fails, but if it is false, calling *object* will never succeed. Note that " +"classes are callable (calling a class returns a new instance); instances are " +"callable if their class has a :meth:`__call__` method." +msgstr "" +"Donne :const:`True` si l'argument *object* semble être appelable, sinon :" +"const:`False`. Lorsqu'elle donne vrai, il reste une éventualité pour qu'un " +"appel échoue, cependant, lorsqu'elle donne faux, il ne sera jamais possible " +"d'appeler *object*. Notez que les classes sont appelables (appeler une " +"classe donne une nouvelle instance). Les instances sont appelables si leur " +"classe définit une méthode :meth:`__call__`." + +#: ../Doc/library/functions.rst:186 +msgid "" +"This function was first removed in Python 3.0 and then brought back in " +"Python 3.2." +msgstr "" +"Cette fonction à d'abord été supprimée avec Python 3.0 puis elle à été " +"remise dans Python 3.2." + +#: ../Doc/library/functions.rst:193 +msgid "" +"Return the string representing a character whose Unicode code point is the " +"integer *i*. For example, ``chr(97)`` returns the string ``'a'``, while " +"``chr(8364)`` returns the string ``'€'``. This is the inverse of :func:`ord`." +msgstr "" +"Renvoie la chaîne représentant un caractère dont le code de caractère " +"Unicode est le nombre entier *i*. Par exemple, ``chr(97)`` renvoie la chaîne " +"de caractères ``'a'``, tandis que ``chr(8364)`` renvoie ``'€'``. Il s'agit " +"de l'inverse de :func:`ord`." + +#: ../Doc/library/functions.rst:197 +msgid "" +"The valid range for the argument is from 0 through 1,114,111 (0x10FFFF in " +"base 16). :exc:`ValueError` will be raised if *i* is outside that range." +msgstr "" +"L'intervalle valide pour cet argument est de ``0`` à ``1114111`` " +"(``0x10FFFF`` en base 16). Une exception :exc:`ValueError` sera levée si *i* " +"est en dehors de l'intervalle." + +#: ../Doc/library/functions.rst:203 +msgid "Transform a method into a class method." +msgstr "Transforme une méthode en méthode de classe." + +#: ../Doc/library/functions.rst:205 +msgid "" +"A class method receives the class as implicit first argument, just like an " +"instance method receives the instance. To declare a class method, use this " +"idiom::" +msgstr "" +"Une méthode de classe reçoit implicitement la classe en premier argument, " +"tout comme une méthode d'instance reçoit l'instance. Voici comment déclarer " +"une méthode de classe ::" + +#: ../Doc/library/functions.rst:213 +msgid "" +"The ``@classmethod`` form is a function :term:`decorator` -- see :ref:" +"`function` for details." +msgstr "" +"La forme ``@classmethod`` est un :term:`decorator` de fonction — consultez :" +"ref:`function` pour plus de détails." + +#: ../Doc/library/functions.rst:216 +msgid "" +"A class method can be called either on the class (such as ``C.f()``) or on " +"an instance (such as ``C().f()``). The instance is ignored except for its " +"class. If a class method is called for a derived class, the derived class " +"object is passed as the implied first argument." +msgstr "" +"Elle peut être appelée soit sur la classe (comme ``C.f()``) ou sur une " +"instance (comme ``C().f()``). L'instance est ignorée, sauf pour déterminer " +"sa classe. Si la méthode est appelée sur une instance de classe fille, c'est " +"la classe fille qui sera donnée en premier argument implicite." + +#: ../Doc/library/functions.rst:221 +msgid "" +"Class methods are different than C++ or Java static methods. If you want " +"those, see :func:`staticmethod`." +msgstr "" +"Les méthodes de classe sont différentes des méthodes statiques du C++ ou du " +"Java. Si c'est elles sont vous avez besoin, regardez du côté de :func:" +"`staticmethod`." + +#: ../Doc/library/functions.rst:224 +msgid "For more information on class methods, see :ref:`types`." +msgstr "" +"Pour plus d'informations sur les méthodes de classe, consultez :ref:`types`." + +#: ../Doc/library/functions.rst:229 +msgid "" +"Compile the *source* into a code or AST object. Code objects can be " +"executed by :func:`exec` or :func:`eval`. *source* can either be a normal " +"string, a byte string, or an AST object. Refer to the :mod:`ast` module " +"documentation for information on how to work with AST objects." +msgstr "" +"Compile *source* en un objet code ou objet AST. Les objets code peuvent être " +"exécutés par :func:`exec` ou :func:`eval`. *source* peut soit être une " +"chaîne, un objet *bytes*, ou un objet AST. Consultez la documentation du " +"module :mod:`ast` pour des informations sur la manipulation d'objets AST." + +#: ../Doc/library/functions.rst:234 +msgid "" +"The *filename* argument should give the file from which the code was read; " +"pass some recognizable value if it wasn't read from a file (``''`` " +"is commonly used)." +msgstr "" +"L'argument *filename* doit nommer le fichier duquel le code à été lu. Donnez " +"quelque chose de reconnaissable lorsqu'il n'a pas été lu depuis un fichier " +"(typiquement ``\"\"``)." + +#: ../Doc/library/functions.rst:238 +msgid "" +"The *mode* argument specifies what kind of code must be compiled; it can be " +"``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if " +"it consists of a single expression, or ``'single'`` if it consists of a " +"single interactive statement (in the latter case, expression statements that " +"evaluate to something other than ``None`` will be printed)." +msgstr "" +"L'argument *mode* indique quel type de code doit être compilé : ``'exec'`` " +"si source est une suite d'instructions, ``'eval'`` pour une seule " +"expression, ou ``'single'`` si il ne contient qu'une instruction interactive " +"(dans ce dernier cas, les résultats d'expressions donnant autre chose que " +"``None`` seront affichés)." + +#: ../Doc/library/functions.rst:244 +msgid "" +"The optional arguments *flags* and *dont_inherit* control which :ref:`future " +"statements ` affect the compilation of *source*. If neither is " +"present (or both are zero) the code is compiled with those future statements " +"that are in effect in the code that is calling :func:`compile`. If the " +"*flags* argument is given and *dont_inherit* is not (or is zero) then the " +"future statements specified by the *flags* argument are used in addition to " +"those that would be used anyway. If *dont_inherit* is a non-zero integer " +"then the *flags* argument is it -- the future statements in effect around " +"the call to compile are ignored." +msgstr "" +"Les arguments optionnels *flags* et *dont_inherit* contrôlent quelle :ref:" +"`instructions future ` affecte la compilation de *source*. Si aucun " +"des deux n'est présent (ou que les deux sont à 0) le code est compilé avec " +"les mêmes instructions *future* que le code appelant :func:`compile`. Si " +"l'argument *flags* est fourni mais que *dont_inherit* ne l'est pas (ou vaut " +"0), alors les instructions *futures* utilisées seront celles spécifiées par " +"*flags* en plus de celles qui auraient été utilisées. Si *dont_inherit* est " +"un entier différent de zéro, *flags* est utilisé seul -- les instructions " +"futures déclarées autour de l'appel à *compile* sont ignorées." + +#: ../Doc/library/functions.rst:254 +msgid "" +"Future statements are specified by bits which can be bitwise ORed together " +"to specify multiple statements. The bitfield required to specify a given " +"feature can be found as the :attr:`~__future__._Feature.compiler_flag` " +"attribute on the :class:`~__future__._Feature` instance in the :mod:" +"`__future__` module." +msgstr "" +"Les instructions futures sont spécifiées par des bits, il est ainsi possible " +"d'en spécifier plusieurs en les combinant avec un *ou* binaire. Les bits " +"requis pour spécifier une certaine fonctionnalité se trouvent dans " +"l'attribut :attr:`~__future__._Feature.compiler_flag` de la classe :class:" +"`~__future__.Feature` du module :mod:`__future__`." + +#: ../Doc/library/functions.rst:259 +msgid "" +"The argument *optimize* specifies the optimization level of the compiler; " +"the default value of ``-1`` selects the optimization level of the " +"interpreter as given by :option:`-O` options. Explicit levels are ``0`` (no " +"optimization; ``__debug__`` is true), ``1`` (asserts are removed, " +"``__debug__`` is false) or ``2`` (docstrings are removed too)." +msgstr "" +"L'argument *optimize* indique le niveau d'optimisation du compilateur. La " +"valeur par défaut est ``-1`` qui prend le niveau d'optimisation de " +"l'interpréteur tel que reçu via l'option :option:`-O`. Les niveau explicites " +"sont : ``0`` (pas d'optimisation, ``__debug__`` est ``True``), ``1`` (les " +"``assert`` sont supprimés, ``__debug__`` est ``False``) ou ``2`` (les " +"*docstrings* sont également supprimés)." + +#: ../Doc/library/functions.rst:265 +msgid "" +"This function raises :exc:`SyntaxError` if the compiled source is invalid, " +"and :exc:`ValueError` if the source contains null bytes." +msgstr "" +"Cette fonction lève une :exc:`SyntaxError` si la source n'est pas valide, " +"et :exc:`ValueError` si la source contient des octets *null*." + +#: ../Doc/library/functions.rst:268 +msgid "" +"If you want to parse Python code into its AST representation, see :func:`ast." +"parse`." +msgstr "" +"Si vous voulez transformer du code Python en sa représentation AST, voyez :" +"func:`ast.parse`." + +#: ../Doc/library/functions.rst:273 +msgid "" +"When compiling a string with multi-line code in ``'single'`` or ``'eval'`` " +"mode, input must be terminated by at least one newline character. This is " +"to facilitate detection of incomplete and complete statements in the :mod:" +"`code` module." +msgstr "" +"Lors de la compilation d'une chaîne de plusieurs lignes de code avec les " +"modes ``'single'`` ou ``'eval'``, celle-ci doit être terminée d'au moins un " +"retour à la ligne. Cela permet de faciliter la distinction entre les " +"instructions complètes et incomplètes dans le module :mod:`code`." + +#: ../Doc/library/functions.rst:280 +msgid "" +"It is possible to crash the Python interpreter with a sufficiently large/" +"complex string when compiling to an AST object due to stack depth " +"limitations in Python's AST compiler." +msgstr "" +"Il est possible de faire planter l'interpréteur Python avec des chaînes " +"suffisamment grandes ou complexes lors de la compilation d'un objet AST à " +"cause de la limitation de la profondeur de la pile d'appels." + +#: ../Doc/library/functions.rst:284 +msgid "" +"Allowed use of Windows and Mac newlines. Also input in ``'exec'`` mode does " +"not have to end in a newline anymore. Added the *optimize* parameter." +msgstr "" +"Autorise l'utilisation de retours à la ligne Mac et Windows. Aussi, la " +"chaîne donnée à ``'exec'`` n'a plus besoin de terminer par un retour à la " +"ligne. Ajout du paramètre *optimize*." + +#: ../Doc/library/functions.rst:288 +msgid "" +"Previously, :exc:`TypeError` was raised when null bytes were encountered in " +"*source*." +msgstr "" +"Précédemment, l'exception :exc:`TypeError` était levée quand un caractère " +"nul était rencontré dans *source*." + +#: ../Doc/library/functions.rst:295 +msgid "" +"Return a complex number with the value *real* + *imag*\\*1j or convert a " +"string or number to a complex number. If the first parameter is a string, " +"it will be interpreted as a complex number and the function must be called " +"without a second parameter. The second parameter can never be a string. " +"Each argument may be any numeric type (including complex). If *imag* is " +"omitted, it defaults to zero and the constructor serves as a numeric " +"conversion like :class:`int` and :class:`float`. If both arguments are " +"omitted, returns ``0j``." +msgstr "" +"Donne un nombre complexe de valeur ``real + imag\\*1j``, ou convertit une " +"chaîne ou un nombre en nombre complexe. Si le premier paramètre est une " +"chaîne, il sera interprété comme un nombre complexe et la fonction doit être " +"appelée dans second paramètre. Le second paramètre ne peut jamais être une " +"chaîne. Chaque argument peut être de n'importe quel type numérique (même " +"complexe). Si *imag* est omis, sa valeur par défaut est zéro, le " +"constructeur effectue alors une simple conversion numérique comme le font :" +"class:`int` ou :class:`float`. Si aucun argument n'est fourni, donne ``0j``." + +#: ../Doc/library/functions.rst:306 +msgid "" +"When converting from a string, the string must not contain whitespace around " +"the central ``+`` or ``-`` operator. For example, ``complex('1+2j')`` is " +"fine, but ``complex('1 + 2j')`` raises :exc:`ValueError`." +msgstr "" +"Lors de la conversion depuis une chaîne, elle ne doit pas contenir d'espaces " +"autour des opérateurs binaires ``+`` ou ``-``. Par exemple " +"``complex('1+2j')`` est bon, mais ``complex('1 + 2j')`` lève une :exc:" +"`ValueError`." + +#: ../Doc/library/functions.rst:311 +msgid "The complex type is described in :ref:`typesnumeric`." +msgstr "Le type complexe est décrit dans :ref:`typesnumeric`." + +#: ../Doc/library/functions.rst:313 ../Doc/library/functions.rst:578 +#: ../Doc/library/functions.rst:771 +msgid "Grouping digits with underscores as in code literals is allowed." +msgstr "" +"Les chiffres peuvent être groupés avec des tirets bas comme dans les " +"expressions littérales." + +#: ../Doc/library/functions.rst:319 +msgid "" +"This is a relative of :func:`setattr`. The arguments are an object and a " +"string. The string must be the name of one of the object's attributes. The " +"function deletes the named attribute, provided the object allows it. For " +"example, ``delattr(x, 'foobar')`` is equivalent to ``del x.foobar``." +msgstr "" +"C'est un cousin de :func:`setattr`. Les arguments sont un objet et une " +"chaîne. La chaîne doit être le nom de l'un des attributs de l'objet. La " +"fonction supprime l'attribut nommé, si l'objet l'y autorise. Par exemple " +"``delattr(x, 'foobar')`` est l'équivalent de ``del x.foobar``." + +#: ../Doc/library/functions.rst:331 +msgid "" +"Create a new dictionary. The :class:`dict` object is the dictionary class. " +"See :class:`dict` and :ref:`typesmapping` for documentation about this class." +msgstr "" +"Créé un nouveau dictionnaire. L'objet :class:`dict` est la classe du " +"dictionnaire. Voir :class:`dict` et :ref:`typesmapping` pour vous documenter " +"sur cette classe." + +#: ../Doc/library/functions.rst:334 +msgid "" +"For other containers see the built-in :class:`list`, :class:`set`, and :" +"class:`tuple` classes, as well as the :mod:`collections` module." +msgstr "" +"Pour les autres conteneurs, voir les classes natives :class:`list`, :class:" +"`set`, et :class:`typle`. ainsi que le module :mod:`collections`." + +#: ../Doc/library/functions.rst:340 +msgid "" +"Without arguments, return the list of names in the current local scope. " +"With an argument, attempt to return a list of valid attributes for that " +"object." +msgstr "" +"Sans arguments, elle donne la liste des noms dans l'espace de nommage local. " +"Avec un argument, elle essaye de donner une liste d'attributs valides pour " +"cet objet." + +#: ../Doc/library/functions.rst:343 +msgid "" +"If the object has a method named :meth:`__dir__`, this method will be called " +"and must return the list of attributes. This allows objects that implement a " +"custom :func:`__getattr__` or :func:`__getattribute__` function to customize " +"the way :func:`dir` reports their attributes." +msgstr "" +"Si l'objet à une méthode :meth:`__dir__`, elle est appelée et doit donner " +"une liste d'attributs. Cela permet aux objets implémentant :func:" +"`__getattr__` ou :func:`__getattribute__` de personnaliser ce que donnera :" +"func:`dir`." + +#: ../Doc/library/functions.rst:348 +msgid "" +"If the object does not provide :meth:`__dir__`, the function tries its best " +"to gather information from the object's :attr:`~object.__dict__` attribute, " +"if defined, and from its type object. The resulting list is not necessarily " +"complete, and may be inaccurate when the object has a custom :func:" +"`__getattr__`." +msgstr "" +"Si l'objet ne fournit pas de méthode :meth:`__dir__`, la fonction fait de " +"son mieux en rassemblant les informations de l'attribut :attr:`~object." +"__dict__` de l'objet, si défini, et depuis son type. La liste résultante " +"n'est pas nécessairement complète, et peut être inadaptée quand l'objet a " +"un :func:`__getattr__` personnalisé." + +#: ../Doc/library/functions.rst:353 +msgid "" +"The default :func:`dir` mechanism behaves differently with different types " +"of objects, as it attempts to produce the most relevant, rather than " +"complete, information:" +msgstr "" +"Le mécanisme par défaut de :func:`dir` se comporte différemment avec " +"différents types d'objets, car elle préfère donner une information " +"pertinente plutôt qu'exhaustive :" + +#: ../Doc/library/functions.rst:357 +msgid "" +"If the object is a module object, the list contains the names of the " +"module's attributes." +msgstr "" +"Si l'objet est un module, la liste contiendra les noms des attributs du " +"module." + +#: ../Doc/library/functions.rst:360 +msgid "" +"If the object is a type or class object, the list contains the names of its " +"attributes, and recursively of the attributes of its bases." +msgstr "" +"Si l'objet est un type ou une classe, la liste contiendra les noms de ses " +"attributs, et récursivement, des attributs de ses parents." + +#: ../Doc/library/functions.rst:363 +msgid "" +"Otherwise, the list contains the object's attributes' names, the names of " +"its class's attributes, and recursively of the attributes of its class's " +"base classes." +msgstr "" +"Autrement, la liste contient les noms des attributs de l'objet, le nom des " +"attributs de la classe, et récursivement des attributs des parents de la " +"classe." + +#: ../Doc/library/functions.rst:367 +msgid "The resulting list is sorted alphabetically. For example:" +msgstr "La liste donnée est triée par ordre alphabétique, par exemple :" + +#: ../Doc/library/functions.rst:386 +msgid "" +"Because :func:`dir` is supplied primarily as a convenience for use at an " +"interactive prompt, it tries to supply an interesting set of names more than " +"it tries to supply a rigorously or consistently defined set of names, and " +"its detailed behavior may change across releases. For example, metaclass " +"attributes are not in the result list when the argument is a class." +msgstr "" +"Étant donné que :func:`dir` est d'abord fournie pour son côté pratique en " +"mode interactif, elle a tendance à fournir un jeu intéressant de noms plutôt " +"qu'un ensemble consistant et rigoureusement défini, son comportement peut " +"aussi changer d'une version à l'autre. Par exemple, les attributs de méta-" +"classes ne sont pas données lorsque l'argument est une classe." + +#: ../Doc/library/functions.rst:396 +msgid "" +"Take two (non complex) numbers as arguments and return a pair of numbers " +"consisting of their quotient and remainder when using integer division. " +"With mixed operand types, the rules for binary arithmetic operators apply. " +"For integers, the result is the same as ``(a // b, a % b)``. For floating " +"point numbers the result is ``(q, a % b)``, where *q* is usually ``math." +"floor(a / b)`` but may be 1 less than that. In any case ``q * b + a % b`` " +"is very close to *a*, if ``a % b`` is non-zero it has the same sign as *b*, " +"and ``0 <= abs(a % b) < abs(b)``." +msgstr "" +"Prend deux nombres (non complexes) et donne leur quotient et reste de leur " +"division entière sous forme d'une paire de nombres. Avec des opérandes de " +"types différents, les règles des opérateurs binaires s'appliquent. Pour deux " +"entiers le résultat est le même que ``(a // b, a % b)``. Pour des nombres à " +"virgule flottante le résultat est ``(q, a % b)``, où *q* est généralement " +"``math.floor(a / b)`` mais peut valoir un de moins. Dans tous les cas ``q * " +"b + a % b`` est très proche de *a*. Si ``a % b`` est différent de zéro, il a " +"le même signe que *b*, et ``0 <= abs(a % b) < abs(b)``." + +#: ../Doc/library/functions.rst:408 +msgid "" +"Return an enumerate object. *iterable* must be a sequence, an :term:" +"`iterator`, or some other object which supports iteration. The :meth:" +"`~iterator.__next__` method of the iterator returned by :func:`enumerate` " +"returns a tuple containing a count (from *start* which defaults to 0) and " +"the values obtained from iterating over *iterable*." +msgstr "" +"Donne un objet énumérant. *iterable* doit être une séquence, un :term:" +"`iterator`, ou tout autre objet supportant l'itération. La méthode :meth:" +"`~iterator.__next__` de l'itérateur donné par :func:`enumerate` donne un " +"tuple contenant un compte (démarrant à *start*, 0 par défaut) et les valeurs " +"obtenues de l'itération sur *iterable*." + +#: ../Doc/library/functions.rst:420 +msgid "Equivalent to::" +msgstr "Équivalent à ::" + +#: ../Doc/library/functions.rst:431 +msgid "" +"The arguments are a string and optional globals and locals. If provided, " +"*globals* must be a dictionary. If provided, *locals* can be any mapping " +"object." +msgstr "" +"Les arguments sont : une chaîne, et optionnellement des locales et des " +"globales. S'il est fourni, *globals* doit être un dictionnaire. S'il est " +"fourni, *locals* peut être n'importe quel objet *mapping*." + +#: ../Doc/library/functions.rst:435 +msgid "" +"The *expression* argument is parsed and evaluated as a Python expression " +"(technically speaking, a condition list) using the *globals* and *locals* " +"dictionaries as global and local namespace. If the *globals* dictionary is " +"present and does not contain a value for the key ``__builtins__``, a " +"reference to the dictionary of the built-in module :mod:`builtins` is " +"inserted under that key before *expression* is parsed. This means that " +"*expression* normally has full access to the standard :mod:`builtins` module " +"and restricted environments are propagated. If the *locals* dictionary is " +"omitted it defaults to the *globals* dictionary. If both dictionaries are " +"omitted, the expression is executed in the environment where :func:`eval` is " +"called. The return value is the result of the evaluated expression. Syntax " +"errors are reported as exceptions. Example:" +msgstr "" +"L'argument *expression* est analysé et évalué comme une expression Python " +"(techniquement, une *condition list*) en utilisant les dictionnaires " +"*globals* et *locals* comme espaces de nommage globaux et locaux. Si le " +"dictionnaire *globals* est présent mais ne contient pas de valeur pour la " +"clé ``'__builtins__'``, une référence au dictionnaire du module :mod:" +"`builtins` y est inséré avant qu'*expression* ne soit évalué. Cela signifie " +"qu'*expression* à normalement un accès complet à tout le module :mod:" +"`builtins`, et que les environnements restreints sont propagés. Si le " +"dictionnaire *locals* est omis, sa valeur par défaut est le dictionnaire " +"*globals*. Si les deux dictionnaires sont omis, l'expression est exécutée " +"dans l'environnement où :func:`eval` est appelé. La valeur donnée par *eval* " +"est le résultat de l'expression évaluée. Les erreurs de syntaxe sont " +"rapportées via des exceptions. Exemple :" + +#: ../Doc/library/functions.rst:452 +msgid "" +"This function can also be used to execute arbitrary code objects (such as " +"those created by :func:`compile`). In this case pass a code object instead " +"of a string. If the code object has been compiled with ``'exec'`` as the " +"*mode* argument, :func:`eval`\\'s return value will be ``None``." +msgstr "" +"Cette fonction peut aussi être utilisée pour exécuter n'importe quel objet " +"code (tel que ceux créés par :func:`compile`). Dans ce cas, donnez un objet " +"code plutôt qu'une chaîne. Si l'objet code à été compilé avec ``'exec'`` en " +"argument pour *mode*, :func:`eval` donnera ``None``." + +#: ../Doc/library/functions.rst:457 +msgid "" +"Hints: dynamic execution of statements is supported by the :func:`exec` " +"function. The :func:`globals` and :func:`locals` functions returns the " +"current global and local dictionary, respectively, which may be useful to " +"pass around for use by :func:`eval` or :func:`exec`." +msgstr "" +"Conseils : L'exécution dynamique d'instructions est gérée par la fonction :" +"func:`exec`. Les fonctions :func:`globals` et :func:`locals` donnent " +"respectivement les dictionnaires globaux et locaux, qui peuvent être utiles " +"lors de l'usage de :func:`eval` et :func:`exec`." + +#: ../Doc/library/functions.rst:462 +msgid "" +"See :func:`ast.literal_eval` for a function that can safely evaluate strings " +"with expressions containing only literals." +msgstr "" +"Utilisez :func:`ast.literal_eval` si vous avez besoin d'une fonction qui " +"peut évaluer en toute sécurité des chaînes avec des expressions ne contenant " +"que des valeurs littérales." + +#: ../Doc/library/functions.rst:469 +msgid "" +"This function supports dynamic execution of Python code. *object* must be " +"either a string or a code object. If it is a string, the string is parsed " +"as a suite of Python statements which is then executed (unless a syntax " +"error occurs). [#]_ If it is a code object, it is simply executed. In all " +"cases, the code that's executed is expected to be valid as file input (see " +"the section \"File input\" in the Reference Manual). Be aware that the :" +"keyword:`return` and :keyword:`yield` statements may not be used outside of " +"function definitions even within the context of code passed to the :func:" +"`exec` function. The return value is ``None``." +msgstr "" +"Cette fonction permet l'exécution dynamique de code Python. *object* doit " +"être soit une chaîne soit un objet code. Si c'est une chaîne, elle est " +"d'abord analysée en une suite d'instructions Python qui sont ensuite " +"exécutés (sauf erreur de syntaxe). [#]_ Si c'est un objet code, il est " +"simplement exécuté. dans tous les cas, le code fourni doit être valide selon " +"les mêmes critères que s'il était un script dans un fichier (voir la section " +"\"File Input\" dans le manuel). Gardez en tête que les mots clefs :keyword:" +"`return` et :keyword:`yield` ne peuvent pas être utilisés en dehors d'une " +"fonction, même dans du code passé à :func:`exec`. La fonction donne ``None``." + +#: ../Doc/library/functions.rst:479 +msgid "" +"In all cases, if the optional parts are omitted, the code is executed in the " +"current scope. If only *globals* is provided, it must be a dictionary, " +"which will be used for both the global and the local variables. If " +"*globals* and *locals* are given, they are used for the global and local " +"variables, respectively. If provided, *locals* can be any mapping object. " +"Remember that at module level, globals and locals are the same dictionary. " +"If exec gets two separate objects as *globals* and *locals*, the code will " +"be executed as if it were embedded in a class definition." +msgstr "" +"Dans tous les cas, si les arguments optionnels sont omis, le code est " +"exécuté dans le contexte actuel. Si seul *globals* est fourni, il doit être " +"un dictionnaire qui sera utilisé pour les globales et les locales. Si les " +"deux sont fournis, ils sont utilisés respectivement pour les variables " +"globales et locales. *locales* peut être n'importe quel objet ``mapping``. " +"Souvenez vous qu'au niveau d'un module, les dictionnaires des locales et des " +"globales ne sont qu'un. Si ``exec`` reçoit deux objets distincts dans " +"*globals* et *locals*, le code sera exécuté comme s'il était inclus dans une " +"définition de classe." + +#: ../Doc/library/functions.rst:488 +msgid "" +"If the *globals* dictionary does not contain a value for the key " +"``__builtins__``, a reference to the dictionary of the built-in module :mod:" +"`builtins` is inserted under that key. That way you can control what " +"builtins are available to the executed code by inserting your own " +"``__builtins__`` dictionary into *globals* before passing it to :func:`exec`." +msgstr "" +"Si le dictionnaire *globals* ne contient pas de valeur pour la clef " +"``__builtins__``, une référence au dictionnaire du module :mod:`builtins` y " +"est inséré. Cela vous permet de contrôler quelles fonctions natives sont " +"exposées au code exécuté en insérant votre propre dictionnaire " +"``__builtins__`` dans *globals* avant de le donner à :func:`exec`." + +#: ../Doc/library/functions.rst:496 +msgid "" +"The built-in functions :func:`globals` and :func:`locals` return the current " +"global and local dictionary, respectively, which may be useful to pass " +"around for use as the second and third argument to :func:`exec`." +msgstr "" +"Les fonctions natives :func:`globals` et :func:`locals` donnent " +"respectivement les dictionnaires globaux et locaux, qui peuvent être utiles " +"en deuxième et troisième argument de :func:`exec`." + +#: ../Doc/library/functions.rst:502 +msgid "" +"The default *locals* act as described for function :func:`locals` below: " +"modifications to the default *locals* dictionary should not be attempted. " +"Pass an explicit *locals* dictionary if you need to see effects of the code " +"on *locals* after function :func:`exec` returns." +msgstr "" +"La valeur par défaut pour *locals* se comporte comme la fonction :func:" +"`locals`: Il est déconseillé de modifier le dictionnaire *locals* par " +"défaut. Donnez un dictionnaire explicitement à *locals* si vous désirez " +"observer l'effet du code sur les variables locales, après que :func:`exec` " +"soit terminée." + +#: ../Doc/library/functions.rst:510 +msgid "" +"Construct an iterator from those elements of *iterable* for which *function* " +"returns true. *iterable* may be either a sequence, a container which " +"supports iteration, or an iterator. If *function* is ``None``, the identity " +"function is assumed, that is, all elements of *iterable* that are false are " +"removed." +msgstr "" +"Construit un itérateur depuis les éléments d'*iterable* pour lesquels " +"*function* donne vrai. *iterable* peut aussi bien être une séquence, un " +"conteneur qui supporte l'itération, ou un itérateur. Si *function* est " +"``None``, la fonction identité est prise, c'est à dire que tous les éléments " +"faux d'*iterable* sont supprimés." + +#: ../Doc/library/functions.rst:516 +msgid "" +"Note that ``filter(function, iterable)`` is equivalent to the generator " +"expression ``(item for item in iterable if function(item))`` if function is " +"not ``None`` and ``(item for item in iterable if item)`` if function is " +"``None``." +msgstr "" +"Notez que ``filter(fonction, iterable)`` est l'équivalent du générateur " +"``(item for item in iterable if fonction(item))`` si *fonction* n'est pas " +"``None`` et de ``(item for item in iterable if item)`` si *function* est " +"``None``." + +#: ../Doc/library/functions.rst:521 +msgid "" +"See :func:`itertools.filterfalse` for the complementary function that " +"returns elements of *iterable* for which *function* returns false." +msgstr "" +"Voir :func:`itertools.filterfalse` pour la fonction complémentaire qui donne " +"les éléments d'*iterable* pour lesquels *fonction* donne ``False``." + +#: ../Doc/library/functions.rst:531 +msgid "Return a floating point number constructed from a number or string *x*." +msgstr "" +"Donne un nombre a virgule flottante depuis un nombre ou une chaîne *x*." + +#: ../Doc/library/functions.rst:533 +msgid "" +"If the argument is a string, it should contain a decimal number, optionally " +"preceded by a sign, and optionally embedded in whitespace. The optional " +"sign may be ``'+'`` or ``'-'``; a ``'+'`` sign has no effect on the value " +"produced. The argument may also be a string representing a NaN (not-a-" +"number), or a positive or negative infinity. More precisely, the input must " +"conform to the following grammar after leading and trailing whitespace " +"characters are removed:" +msgstr "" +"Si l'argument est une chaîne, elle devrait contenir un nombre décimal, " +"éventuellement précédé d'un signe, et pouvant être entouré d'espaces. Le " +"signe optionnel peut être ``'+'`` ou ``'-'``. Un signe ``'+'`` n'a pas " +"d'effet sur la valeur produite. L'argument peut aussi être une chaîne " +"représentant un NaN (*Not-a-Number*), l'infini positif, ou l'infini négatif. " +"Plus précisément, l'argument doit se conformer à la grammaire suivante, " +"après que les espaces en début et fin de chaîne aient été retirés :" + +#: ../Doc/library/functions.rst:548 +msgid "" +"Here ``floatnumber`` is the form of a Python floating-point literal, " +"described in :ref:`floating`. Case is not significant, so, for example, " +"\"inf\", \"Inf\", \"INFINITY\" and \"iNfINity\" are all acceptable spellings " +"for positive infinity." +msgstr "" +"Ici ``floatnumber`` est un nombre a virgule flottante littéral Python, " +"décrit dans :ref:`floating`. La casse n'y est pas significative, donc, par " +"exemple, ``\"inf\"``, ``\" Inf\"``, ``\"INFINITY\"``, et ``\" iNfiNity\"`` " +"sont tous des orthographes valides pour un infini positif." + +#: ../Doc/library/functions.rst:553 +msgid "" +"Otherwise, if the argument is an integer or a floating point number, a " +"floating point number with the same value (within Python's floating point " +"precision) is returned. If the argument is outside the range of a Python " +"float, an :exc:`OverflowError` will be raised." +msgstr "" +"Autrement, si l'argument est un entier ou un nombre à virgule flottante, un " +"nombre à virgule flottante de même valeur (en accord avec la précision des " +"nombres à virgule flottante de Python) est donné. Si l'argument est en " +"dehors de l'intervalle d'un nombre a virgule flottante pour Python, :exc:" +"`OverflowError` est levée." + +#: ../Doc/library/functions.rst:558 +msgid "" +"For a general Python object ``x``, ``float(x)`` delegates to ``x." +"__float__()``." +msgstr "" +"Pour un objet Python ``x``, ``float(x)`` est délégué à ``x.__float__()``." + +#: ../Doc/library/functions.rst:561 +msgid "If no argument is given, ``0.0`` is returned." +msgstr "Dans argument, ``0.0`` est donné." + +#: ../Doc/library/functions.rst:563 +msgid "Examples::" +msgstr "Exemples ::" + +#: ../Doc/library/functions.rst:576 +msgid "The float type is described in :ref:`typesnumeric`." +msgstr "Le type *float* est décrit dans :ref:`typesnumeric`." + +#: ../Doc/library/functions.rst:591 +msgid "" +"Convert a *value* to a \"formatted\" representation, as controlled by " +"*format_spec*. The interpretation of *format_spec* will depend on the type " +"of the *value* argument, however there is a standard formatting syntax that " +"is used by most built-in types: :ref:`formatspec`." +msgstr "" +"Convertit une valeur en sa représentation \"formatée\", tel que décrit par " +"*format_spec*. L'interprétation de *format_spec* dépend du type de la " +"valeur, cependant il existe une syntaxe standard utilisée par la plupart des " +"types natifs : :ref:`formatspec`." + +#: ../Doc/library/functions.rst:596 +msgid "" +"The default *format_spec* is an empty string which usually gives the same " +"effect as calling :func:`str(value) `." +msgstr "" +"Par défaut, *format_spec* est une chaîne vide qui généralement donne le même " +"effet qu'appeler :func:`str(value) `." + +#: ../Doc/library/functions.rst:599 +msgid "" +"A call to ``format(value, format_spec)`` is translated to ``type(value)." +"__format__(value, format_spec)`` which bypasses the instance dictionary when " +"searching for the value's :meth:`__format__` method. A :exc:`TypeError` " +"exception is raised if the method search reaches :mod:`object` and the " +"*format_spec* is non-empty, or if either the *format_spec* or the return " +"value are not strings." +msgstr "" +"Un appel à ``format(value, format_spec)`` est transformé en ``type(value)." +"__format__(value, format_spec)``, qui contourne le dictionnaire de " +"l'instance lors de la recherche de la méthode :meth:`__fornat__`. Une " +"exception :exc:`TypeError` est levée si la recherche de la méthode atteint :" +"mod:`object` et que *format_spec* n'est pas vide, ou si soit *format_spec* " +"soit la le résultat ne sont pas des chaînes." + +#: ../Doc/library/functions.rst:606 +msgid "" +"``object().__format__(format_spec)`` raises :exc:`TypeError` if " +"*format_spec* is not an empty string." +msgstr "" +"``object().__format__(format_spec)`` lève :exc:`TypeError` si *format_spec* " +"n'est pas une chaîne vide." + +#: ../Doc/library/functions.rst:615 +msgid "" +"Return a new :class:`frozenset` object, optionally with elements taken from " +"*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and :" +"ref:`types-set` for documentation about this class." +msgstr "" +"Donne un nouveau :class:`frozenset`, dont les objets sont éventuellement " +"tirés d'*iterable*. ``frozenset`` est une classe native. Voir :class:" +"`frozenset` et :ref:`types-set` pour leurs documentation." + +#: ../Doc/library/functions.rst:619 +msgid "" +"For other containers see the built-in :class:`set`, :class:`list`, :class:" +"`tuple`, and :class:`dict` classes, as well as the :mod:`collections` module." +msgstr "" +"Pour d'autres conteneurs, voyez les classes natives :class:`set`, :class:" +"`list`, :class:`tuple`, et :class:`dict`, ainsi que le module :mod:" +"`collections`." + +#: ../Doc/library/functions.rst:626 +msgid "" +"Return the value of the named attribute of *object*. *name* must be a " +"string. If the string is the name of one of the object's attributes, the " +"result is the value of that attribute. For example, ``getattr(x, " +"'foobar')`` is equivalent to ``x.foobar``. If the named attribute does not " +"exist, *default* is returned if provided, otherwise :exc:`AttributeError` is " +"raised." +msgstr "" +"Donne la valeur de l'attribut nommé *name* de l'objet *object*. *name* doit " +"être une chaîne. Si la chaîne est le nom d'un des attributs de l'objet, le " +"résultat est la valeur de cet attribut. Par exemple, ``getattr(x, " +"'foobar')`` est équivalent à ``x.foobar``. Si l'attribut n'existe pas, et " +"que *default* est fourni, il est renvoyé, sinon l'exception :exc:" +"`AttributeError` est levée." + +#: ../Doc/library/functions.rst:635 +msgid "" +"Return a dictionary representing the current global symbol table. This is " +"always the dictionary of the current module (inside a function or method, " +"this is the module where it is defined, not the module from which it is " +"called)." +msgstr "" +"Donne une représentation de la table de symboles globaux sous forme d'un " +"dictionnaire. C'est toujours le dictionnaire du module courant (dans une " +"fonction ou méthode, c'est le module où elle est définie, et non le module " +"d'où elle est appelée)." + +#: ../Doc/library/functions.rst:642 +msgid "" +"The arguments are an object and a string. The result is ``True`` if the " +"string is the name of one of the object's attributes, ``False`` if not. " +"(This is implemented by calling ``getattr(object, name)`` and seeing whether " +"it raises an :exc:`AttributeError` or not.)" +msgstr "" +"Les arguments sont : un objet et une chaîne. Le résultat est ``True`` si la " +"chaîne est le nom d'un des attributs de l'objet, sinon ``False``. " +"(L'implémentation appelle ``getattr(object, name)`` et regarde si une " +"exception :exc:`AttributeError` à été levée.)" + +#: ../Doc/library/functions.rst:650 +msgid "" +"Return the hash value of the object (if it has one). Hash values are " +"integers. They are used to quickly compare dictionary keys during a " +"dictionary lookup. Numeric values that compare equal have the same hash " +"value (even if they are of different types, as is the case for 1 and 1.0)." +msgstr "" +"Donne la valeur de *hash* d'un objet (s'il en a une). Les valeurs de *hash* " +"sont des entiers. Elles sont utilisées pour comparer rapidement des clefs de " +"dictionnaire lors de leur recherche. Les valeurs numériques égales ont le " +"même *hash* (même si leurs types sont différents, comme pour ``1`` et " +"``1.0``)." + +#: ../Doc/library/functions.rst:657 +msgid "" +"For objects with custom :meth:`__hash__` methods, note that :func:`hash` " +"truncates the return value based on the bit width of the host machine. See :" +"meth:`__hash__` for details." +msgstr "" +"Pour les objets dont la méthode :meth:`__hash__` est implémentée, notez que :" +"func:`hash` tronque la valeur donnée en fonction du nombre de bits de la " +"machine hôte. Voir :meth:`__hash__` pour plus d'informations." + +#: ../Doc/library/functions.rst:663 +msgid "" +"Invoke the built-in help system. (This function is intended for interactive " +"use.) If no argument is given, the interactive help system starts on the " +"interpreter console. If the argument is a string, then the string is looked " +"up as the name of a module, function, class, method, keyword, or " +"documentation topic, and a help page is printed on the console. If the " +"argument is any other kind of object, a help page on the object is generated." +msgstr "" +"Invoque le système d'aide natif. (Cette fonction est destinée à l'usage en " +"mode interactif.) Soi aucun argument n'est fourni, le système d'aide démarre " +"dans l'interpréteur. Si l'argument est une chaîne, un module, une fonction, " +"une classe, une méthode, un mot clef, ou un sujet de documentation pourtant " +"ce nom est recherché, et une page d'aide est affichée sur la console. Si " +"l'argument est d'un autre type, une page d'aide sur cet objet est générée." + +#: ../Doc/library/functions.rst:670 +msgid "" +"Note that if a slash(/) appears in the parameter list of a function, when " +"invoking :func:`help`, it means that the parameters prior to the slash are " +"positional-only. For more info, see :ref:`the FAQ entry on positional-only " +"parameters `." +msgstr "" +"Notez que si une barre oblique (/) apparaît dans la liste des paramètres " +"d'une fonction, lorsque vous appelez :func:`help`, cela signifie que les " +"paramètres placés avant la barre oblique sont uniquement positionnels. Pour " +"plus d'informations, voir :ref:`La FAQ sur les arguments positionels `." + +#: ../Doc/library/functions.rst:675 +msgid "" +"This function is added to the built-in namespace by the :mod:`site` module." +msgstr "" +"Cette fonction est ajoutée à l'espace de nommage natif par le module :mod:" +"`site`." + +#: ../Doc/library/functions.rst:677 +msgid "" +"Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures " +"for callables are now more comprehensive and consistent." +msgstr "" +"Les changements aux modules :mod:`pydoc` et :mod:`inspect` rendent les " +"signatures des appelables plus compréhensible et cohérente." + +#: ../Doc/library/functions.rst:684 +msgid "" +"Convert an integer number to a lowercase hexadecimal string prefixed with " +"\"0x\". If *x* is not a Python :class:`int` object, it has to define an :" +"meth:`__index__` method that returns an integer. Some examples:" +msgstr "" +"Convertit un entier en chaîne hexadécimale préfixée de ``0x``. Si *x* n'est " +"pas un :class:`int`, il doit définir une méthode :meth:`__index__` qui " +"renvoie un entier. Quelques exemples :" + +#: ../Doc/library/functions.rst:693 +msgid "" +"If you want to convert an integer number to an uppercase or lower " +"hexadecimal string with prefix or not, you can use either of the following " +"ways:" +msgstr "" +"Si vous voulez convertir un nombre entier en chaîne hexadécimale, en " +"majuscule ou non, préfixée ou non, vous pouvez utiliser les moyens suivants :" + +#: ../Doc/library/functions.rst:705 +msgid "" +"See also :func:`int` for converting a hexadecimal string to an integer using " +"a base of 16." +msgstr "" +"Voir aussi :func:`int` pour convertir une chaîne hexadécimale en un entier " +"en lui spécifiant 16 comme base." + +#: ../Doc/library/functions.rst:710 +msgid "" +"To obtain a hexadecimal string representation for a float, use the :meth:" +"`float.hex` method." +msgstr "" +"Pour obtenir une représentation hexadécimale sous forme de chaîne d'un " +"nombre à virgule flottante, utilisez la méthode :meth:`float.hex`." + +#: ../Doc/library/functions.rst:716 +msgid "" +"Return the \"identity\" of an object. This is an integer which is " +"guaranteed to be unique and constant for this object during its lifetime. " +"Two objects with non-overlapping lifetimes may have the same :func:`id` " +"value." +msgstr "" +"Donne l'\"identité\" d'un objet. C'est un nombre entier garanti unique et " +"constant pour cet objet durant sa durée de vie. Deux objets sont les durées " +"de vie ne se chevauchent pas peuvent partager le même :func:`id`." + +#: ../Doc/library/functions.rst:726 +msgid "" +"If the *prompt* argument is present, it is written to standard output " +"without a trailing newline. The function then reads a line from input, " +"converts it to a string (stripping a trailing newline), and returns that. " +"When EOF is read, :exc:`EOFError` is raised. Example::" +msgstr "" +"Si l'argument *prompt* est donné, il est écrit sur la sortie standard sans " +"le retour à la ligne final. La fonction lis ensuite une ligne sur l'entrée " +"standard et la convertit en chaîne (supprimant le retour à la ligne final) " +"quelle donne. Lorsque EOF est lu, :exc:`EOFError` est levée. Exemple ::" + +#: ../Doc/library/functions.rst:736 +msgid "" +"If the :mod:`readline` module was loaded, then :func:`input` will use it to " +"provide elaborate line editing and history features." +msgstr "" +"Si le module :mod:`readline` est chargé, :func:`input` l'utilisera pour " +"fournir des fonctionnalités d'édition et d'historique élaborées." + +#: ../Doc/library/functions.rst:743 +msgid "" +"Return an integer object constructed from a number or string *x*, or return " +"``0`` if no arguments are given. If *x* defines :meth:`__int__`, ``int(x)`` " +"returns ``x.__int__()``. If *x* defines :meth:`__trunc__`, it returns ``x." +"__trunc__()``. For floating point numbers, this truncates towards zero." +msgstr "" +"Donne un entier construit depuis un nombre ou une chaîne *x*, ou ``0`` si " +"aucun argument n'est fourni. Si *x* définit une méthode :meth:`__int__`, " +"``int(x)`` renvoie ``x.__int__()``. Si *x* définit :meth:`__trunc__`, " +"``int(x)`` renvoie ``x.__trunc__()``. Les nombres à virgule flottante sont " +"tronqués vers zéro." + +#: ../Doc/library/functions.rst:749 +msgid "" +"If *x* is not a number or if *base* is given, then *x* must be a string, :" +"class:`bytes`, or :class:`bytearray` instance representing an :ref:`integer " +"literal ` in radix *base*. Optionally, the literal can be " +"preceded by ``+`` or ``-`` (with no space in between) and surrounded by " +"whitespace. A base-n literal consists of the digits 0 to n-1, with ``a`` to " +"``z`` (or ``A`` to ``Z``) having values 10 to 35. The default *base* is 10. " +"The allowed values are 0 and 2--36. Base-2, -8, and -16 literals can be " +"optionally prefixed with ``0b``/``0B``, ``0o``/``0O``, or ``0x``/``0X``, as " +"with integer literals in code. Base 0 means to interpret exactly as a code " +"literal, so that the actual base is 2, 8, 10, or 16, and so that " +"``int('010', 0)`` is not legal, while ``int('010')`` is, as well as " +"``int('010', 8)``." +msgstr "" +"Si *x* n'est pas un nombre ou si *base* est fourni, alors *x* doit être une " +"chaîne, un :class:`bytes`, ou un :class:`bytearray` représentant un :ref:" +"`entier littéral ` de base *base*. Le littéral peut être précédé " +"d'un ``+`` ou d'un ``-`` (sans être séparés par un espace), et peut être " +"entouré d'espaces. Un littéral de base *n* est composé des symboles de 0 à " +"n-1 où ``a`` jusqu'à ``z`` (ou ``A`` à ``Z``) représentent les valeurs de 10 " +"à 35. La *base* par défaut est 10. Les valeurs autorisées pour *base* sont 0 " +"et 2--36. Les littéraux en base 2, 8, et 16 peuvent être préfixés avec " +"``0b``/``0B``, ``0o``/``0O``, ou ``0x``/``0X`` tout comme les littéraux dans " +"le code. Fournir 0 comme *base* demande d'interpréter exactement comme un " +"littéral dans Python, donc la base sera 2, 8, 10, ou 16, ainsi ``int('010', " +"0)`` n'est pas légal, alors que ``int('010')`` l'est tout comme ``int('010', " +"8)``." + +#: ../Doc/library/functions.rst:762 +msgid "The integer type is described in :ref:`typesnumeric`." +msgstr "Le type des entiers est décrit dans :ref:`typesnumeric`." + +#: ../Doc/library/functions.rst:764 +msgid "" +"If *base* is not an instance of :class:`int` and the *base* object has a :" +"meth:`base.__index__ ` method, that method is called to " +"obtain an integer for the base. Previous versions used :meth:`base.__int__ " +"` instead of :meth:`base.__index__ `." +msgstr "" +"Si *base* n'est pas une instance d':class:`int` et que *base* a une méthode :" +"meth:`base.__index__ `, cette méthode est appelée pour " +"obtenir un entier pour cette base. Les versions précédentes utilisaient :" +"meth:`base.__int__ ` au lieu de :meth:`base.__index__ " +"`." + +#: ../Doc/library/functions.rst:780 +msgid "" +"Return true if the *object* argument is an instance of the *classinfo* " +"argument, or of a (direct, indirect or :term:`virtual `) subclass thereof. If *object* is not an object of the given type, " +"the function always returns false. If *classinfo* is a tuple of type objects " +"(or recursively, other such tuples), return true if *object* is an instance " +"of any of the types. If *classinfo* is not a type or tuple of types and such " +"tuples, a :exc:`TypeError` exception is raised." +msgstr "" +"Donne ``True`` si *object* est une instance de *classinfo*, ou d'une de ses " +"classes filles, directe, indirecte, ou :term:`virtuelle `. Si *object* n'est pas un objet du type donné, la fonction donne " +"toujours ``False``. Si *classinfo* est un *tuple* de types (ou " +"récursivement, d'autres *tuples*), donne ``True`` si *object* est une " +"instance de n'importe quel de ces types. Si *classinfo* n'est ni un type ni " +"un *tuple* de types (et récursivement), une exception :exc:`TypeError` est " +"levée." + +#: ../Doc/library/functions.rst:792 +msgid "" +"Return true if *class* is a subclass (direct, indirect or :term:`virtual " +"`) of *classinfo*. A class is considered a subclass of " +"itself. *classinfo* may be a tuple of class objects, in which case every " +"entry in *classinfo* will be checked. In any other case, a :exc:`TypeError` " +"exception is raised." +msgstr "" +"Donne ``True`` si *class* est une classe fille (directe, indirecte, ou :term:" +"`virtual `) de *classinfo*. Une classe est considérée " +"sous-classe d'elle même. *classinfo* peut être un tuple de classes, dans ce " +"cas la vérification sera faite pour chaque classe de *classinfo*. Dans tous " +"les autres cas, :exc:`TypeError` est levée." + +#: ../Doc/library/functions.rst:801 +msgid "" +"Return an :term:`iterator` object. The first argument is interpreted very " +"differently depending on the presence of the second argument. Without a " +"second argument, *object* must be a collection object which supports the " +"iteration protocol (the :meth:`__iter__` method), or it must support the " +"sequence protocol (the :meth:`__getitem__` method with integer arguments " +"starting at ``0``). If it does not support either of those protocols, :exc:" +"`TypeError` is raised. If the second argument, *sentinel*, is given, then " +"*object* must be a callable object. The iterator created in this case will " +"call *object* with no arguments for each call to its :meth:`~iterator." +"__next__` method; if the value returned is equal to *sentinel*, :exc:" +"`StopIteration` will be raised, otherwise the value will be returned." +msgstr "" +"Donne un objet :term:`iterator`. Le premier argument est interprété très " +"différemment en fonction de la présence du second argument. Sans second " +"argument, *object* doit être une collection d'objets supportant le protocole " +"d'itération (la méthode :meth:`__iter__`), ou supportant le protocole des " +"séquences (la méthode :meth:`getitem`, avec des nombres entiers commençant " +"par ``0`` comme argument). S'il ne supporte aucun de ces protocoles, :exc:" +"`TypeError` est levée. Si le second argument *sentinel* est fourni, *objet* " +"doit être appelable. L'itérateur créé dans ce cas appellera *object* dans " +"argument à chaque appel de :meth:`~iterator.__next__`, si la valeur reçue " +"est égale à *sentinel* :exc:`StopIteration` est levée, autrement la valeur " +"est donnée." + +#: ../Doc/library/functions.rst:814 +msgid "See also :ref:`typeiter`." +msgstr "Voir aussi :ref:`typeiter`." + +#: ../Doc/library/functions.rst:816 +msgid "" +"One useful application of the second form of :func:`iter` is to build a " +"block-reader. For example, reading fixed-width blocks from a binary database " +"file until the end of file is reached::" +msgstr "" +"Une autre application utile de la deuxième forme de :func:`iter` est de " +"construire un lecteur par blocs. Par exemple, lire des blocs de taille fixe " +"d'une base de donnée binaire jusqu'à ce que la fin soit atteinte ::" + +#: ../Doc/library/functions.rst:828 +msgid "" +"Return the length (the number of items) of an object. The argument may be a " +"sequence (such as a string, bytes, tuple, list, or range) or a collection " +"(such as a dictionary, set, or frozen set)." +msgstr "" +"Donne la longueur (nombre d'éléments) d'un objet. L'argument peut être une " +"séquence (tel qu'une chaîne, un objet ``bytes``, ``tuple``, ``list`` ou " +"``range``) ou une collection (tel qu'un ``dict``, ``set`` ou ``frozenset``)." + +#: ../Doc/library/functions.rst:837 +msgid "" +"Rather than being a function, :class:`list` is actually a mutable sequence " +"type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." +msgstr "" +"Plutôt qu'être une fonction, :class:`list` est en fait un type de séquence " +"variable, tel que documenté dans :ref:`typesseq-list` et :ref:`typesseq`." + +#: ../Doc/library/functions.rst:843 +msgid "" +"Update and return a dictionary representing the current local symbol table. " +"Free variables are returned by :func:`locals` when it is called in function " +"blocks, but not in class blocks. Note that at the module level, :func:" +"`locals` and :func:`globals` are the same dictionary." +msgstr "" +"Met à jour et donne un dictionnaire représentant la table des symboles " +"locaux. Les variables libres sont données par :func:`locals` lorsqu'elle est " +"appelée dans le corps d'une fonction, mais pas dans le corps d'une classe. " +"Notez qu’au niveau d’un module, :func:`locals` :func:`globals` sont le même " +"dictionnaire." + +#: ../Doc/library/functions.rst:849 +msgid "" +"The contents of this dictionary should not be modified; changes may not " +"affect the values of local and free variables used by the interpreter." +msgstr "" +"Le contenu de ce dictionnaire ne devrait pas être modifié, les changements " +"peuvent ne pas affecter les valeurs des variables locales ou libres " +"utilisées par l'interpréteur." + +#: ../Doc/library/functions.rst:854 +msgid "" +"Return an iterator that applies *function* to every item of *iterable*, " +"yielding the results. If additional *iterable* arguments are passed, " +"*function* must take that many arguments and is applied to the items from " +"all iterables in parallel. With multiple iterables, the iterator stops when " +"the shortest iterable is exhausted. For cases where the function inputs are " +"already arranged into argument tuples, see :func:`itertools.starmap`\\." +msgstr "" +"Donne un itérateur appliquant *function* à chaque élément de *iterable*, et " +"donnant ses résultats au fur et à mesure avec ``yield``. Si d'autres " +"*iterable* sont fournis, *function* doit prendre autant d'arguments, et sera " +"appelée avec les éléments de tous les itérables en parallèle. Avec plusieurs " +"itérables, l'itération s'arrête avec l'itérable le plus court. Pour les cas " +"où les arguments seraient déjà rangés sous forme de tuples, voir :func:" +"`itertools.starmap`." + +#: ../Doc/library/functions.rst:865 +msgid "" +"Return the largest item in an iterable or the largest of two or more " +"arguments." +msgstr "" +"Donne l'élément le plus grand dans un itérable, ou l'argument le plus grand " +"parmi au moins deux arguments." + +#: ../Doc/library/functions.rst:868 +msgid "" +"If one positional argument is provided, it should be an :term:`iterable`. " +"The largest item in the iterable is returned. If two or more positional " +"arguments are provided, the largest of the positional arguments is returned." +msgstr "" +"Si un seul argument positionnel est fourni, il doit être :term:`iterable`. " +"Le plus grand élément de l'itérable est donné. Si au moins deux arguments " +"positionnels sont fournis, l'argument le plus grand sera donné." + +#: ../Doc/library/functions.rst:873 ../Doc/library/functions.rst:907 +msgid "" +"There are two optional keyword-only arguments. The *key* argument specifies " +"a one-argument ordering function like that used for :meth:`list.sort`. The " +"*default* argument specifies an object to return if the provided iterable is " +"empty. If the iterable is empty and *default* is not provided, a :exc:" +"`ValueError` is raised." +msgstr "" +"Elle accepte deux arguments par mot clef optionnels. L'argument *key* " +"spécifie une fonction à un argument permettant de trier comme pour :meth:" +"`list.sort`. L'argument *default* quant à lui fournit un objet à donner si " +"l'itérable fourni est vide. Si l'itérable est vide et que *default* n'est " +"pas fourni, :exc:`ValueError` est levée." + +#: ../Doc/library/functions.rst:879 +msgid "" +"If multiple items are maximal, the function returns the first one " +"encountered. This is consistent with other sort-stability preserving tools " +"such as ``sorted(iterable, key=keyfunc, reverse=True)[0]`` and ``heapq." +"nlargest(1, iterable, key=keyfunc)``." +msgstr "" +"Si plusieurs éléments représentent la plus grande valeur, le premier " +"rencontré est donné. C'est cohérent avec d'autres outils préservant une " +"stabilité lors du tri, tel que ``sorted(iterable, key=keyfunc, reverse=True)" +"[0]`` et ``heapq.nlargest(1, iterable, key=keyfunc)``." + +#: ../Doc/library/functions.rst:884 ../Doc/library/functions.rst:918 +msgid "The *default* keyword-only argument." +msgstr "L'argument exclusivement par mot clef *default*." + +#: ../Doc/library/functions.rst:892 +msgid "" +"Return a \"memory view\" object created from the given argument. See :ref:" +"`typememoryview` for more information." +msgstr "" +"Donne une \"vue mémoire\" (*memory view*) créée depuis l'argument. Voir :ref:" +"`typememoryview` pour plus d'informations." + +#: ../Doc/library/functions.rst:899 +msgid "" +"Return the smallest item in an iterable or the smallest of two or more " +"arguments." +msgstr "" +"Donne le plus petit élément d'un itérable ou le plus petit d'au moins deux " +"arguments." + +#: ../Doc/library/functions.rst:902 +msgid "" +"If one positional argument is provided, it should be an :term:`iterable`. " +"The smallest item in the iterable is returned. If two or more positional " +"arguments are provided, the smallest of the positional arguments is returned." +msgstr "" +"Si un seul argument est fourni, il doit être :term:`iterable`. Le plus petit " +"élément de l'itérable est donné. Si au moins deux arguments positionnels " +"sont fournis le plus petit argument positionnel est donné." + +#: ../Doc/library/functions.rst:913 +msgid "" +"If multiple items are minimal, the function returns the first one " +"encountered. This is consistent with other sort-stability preserving tools " +"such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1, " +"iterable, key=keyfunc)``." +msgstr "" +"Si plusieurs éléments sont minimaux, la fonction donne le premier. C'est " +"cohérent avec d'autres outils préservant une stabilité lors du tri, tel que " +"``sorted(iterable, key=keyfunc)[0]`` et ``heapq.nsmallest(1, iterable, " +"key=keyfunc)``." + +#: ../Doc/library/functions.rst:924 +msgid "" +"Retrieve the next item from the *iterator* by calling its :meth:`~iterator." +"__next__` method. If *default* is given, it is returned if the iterator is " +"exhausted, otherwise :exc:`StopIteration` is raised." +msgstr "" +"Donne l'élément suivant d'*iterator* en appelant sa méthode :meth:`~iterator." +"__next__`. Si *default* est fourni, il sera donné si l'itérateur est épuisé, " +"sinon :exc:`StopIteration` est levée." + +#: ../Doc/library/functions.rst:931 +msgid "" +"Return a new featureless object. :class:`object` is a base for all classes. " +"It has the methods that are common to all instances of Python classes. This " +"function does not accept any arguments." +msgstr "" +"Donne un objet vide. :class:`object` est la classe parente de toute les " +"classes. C'est elle qui porte les méthodes communes à toutes les instances " +"de classes en Python. Cette fonction n'accepte aucun argument." + +#: ../Doc/library/functions.rst:937 +msgid "" +":class:`object` does *not* have a :attr:`~object.__dict__`, so you can't " +"assign arbitrary attributes to an instance of the :class:`object` class." +msgstr "" +":class:`object` n'a *pas* d'attribut :attr:`~object.__dict__`, vous ne " +"pouvez donc pas assigner d'attributs arbitraire à une instance d':class:" +"`object`." + +#: ../Doc/library/functions.rst:943 +msgid "" +"Convert an integer number to an octal string prefixed with \"0o\". The " +"result is a valid Python expression. If *x* is not a Python :class:`int` " +"object, it has to define an :meth:`__index__` method that returns an " +"integer. For example:" +msgstr "" +"Convertit un entier en sa représentation octale dans une chaîne préfixée de " +"``0o``. Le résultat est une expression Python valide. Si *x* n'est pas un " +"objet :class:`int`, il doit définir une méthode :meth:`__index__` qui donne " +"un entier, par exemple :" + +#: ../Doc/library/functions.rst:953 +msgid "" +"If you want to convert an integer number to octal string either with prefix " +"\"0o\" or not, you can use either of the following ways." +msgstr "" +"Si vous voulez convertir un nombre entier en chaîne octale, avec ou sans le " +"préfixe ``0o``, vous pouvez utiliser les moyens suivants." + +#: ../Doc/library/functions.rst:970 +msgid "" +"Open *file* and return a corresponding :term:`file object`. If the file " +"cannot be opened, an :exc:`OSError` is raised." +msgstr "" +"Ouvre *file* et donne un :term:`file object` correspondant. Si le fichier ne " +"peut pas être ouvert, une :exc:`OSError` est levée." + +#: ../Doc/library/functions.rst:973 +msgid "" +"*file* is a :term:`path-like object` giving the pathname (absolute or " +"relative to the current working directory) of the file to be opened or an " +"integer file descriptor of the file to be wrapped. (If a file descriptor is " +"given, it is closed when the returned I/O object is closed, unless *closefd* " +"is set to ``False``.)" +msgstr "" +"*file* est un :term:`path-like object` donnant le chemin (absolu ou relatif " +"au répertoire courant) du fichier à ouvrir ou un nombre entier représentant " +"le descripteur de fichier à envelopper. (Si un descripteur de fichier est " +"donné, il sera fermé en même temps que l'objet *I/O* renvoyé, sauf si " +"*closefd* est mis à ``False``.)" + +#: ../Doc/library/functions.rst:979 +msgid "" +"*mode* is an optional string that specifies the mode in which the file is " +"opened. It defaults to ``'r'`` which means open for reading in text mode. " +"Other common values are ``'w'`` for writing (truncating the file if it " +"already exists), ``'x'`` for exclusive creation and ``'a'`` for appending " +"(which on *some* Unix systems, means that *all* writes append to the end of " +"the file regardless of the current seek position). In text mode, if " +"*encoding* is not specified the encoding used is platform dependent: " +"``locale.getpreferredencoding(False)`` is called to get the current locale " +"encoding. (For reading and writing raw bytes use binary mode and leave " +"*encoding* unspecified.) The available modes are:" +msgstr "" +"*mode* est une chaîne optionnelle permettant de spécifier dans quel mode le " +"fichier est ouvert. Par défaut, *mode* vaut ``'r'`` qui signifie \"ouvrir en " +"lecture pour du texte\". ``'w'`` est aussi une valeur classique, permettant " +"d'écrire (vidant le fichier s'il existe), ainsi que ``'x'`` permettant une " +"création exclusive et ``'a'`` pour ajouter à la fin du fichier (qui sur " +"certains systèmes Unix signifie que *toutes* les écritures seront des ajouts " +"en fin de fichier peu importe la position demandée). En mode texte, si " +"*encoding* n'est pas spécifié l'encodage utilisé est dépendant de la " +"plateforme : ``locale.getpreferredencoding(False)`` est appelée pour obtenir " +"l'encodage de la locale actuelle. (Pour lire et écrire des octets bruts, " +"utilisez le mode binaire en laissant *encoding* non spécifié.) Les modes " +"disponibles sont :" + +#: ../Doc/library/functions.rst:996 +msgid "Character" +msgstr "Caractère" + +#: ../Doc/library/functions.rst:996 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/functions.rst:998 +msgid "``'r'``" +msgstr "``'r'``" + +#: ../Doc/library/functions.rst:998 +msgid "open for reading (default)" +msgstr "ouvre en lecture (par défaut)" + +#: ../Doc/library/functions.rst:999 +msgid "``'w'``" +msgstr "``'w'``" + +#: ../Doc/library/functions.rst:999 +msgid "open for writing, truncating the file first" +msgstr "ouvre en écriture, tronquant le fichier" + +#: ../Doc/library/functions.rst:1000 +msgid "``'x'``" +msgstr "``'x'``" + +#: ../Doc/library/functions.rst:1000 +msgid "open for exclusive creation, failing if the file already exists" +msgstr "ouvre pour une création exclusive, échouant si le fichier existe déjà" + +#: ../Doc/library/functions.rst:1001 +msgid "``'a'``" +msgstr "``'a'``" + +#: ../Doc/library/functions.rst:1001 +msgid "open for writing, appending to the end of the file if it exists" +msgstr "ouvre en écriture, ajoutant à la fin du fichier s'il existe" + +#: ../Doc/library/functions.rst:1002 +msgid "``'b'``" +msgstr "``'b'``" + +#: ../Doc/library/functions.rst:1002 +msgid "binary mode" +msgstr "mode binaire" + +#: ../Doc/library/functions.rst:1003 +msgid "``'t'``" +msgstr "``'t'``" + +#: ../Doc/library/functions.rst:1003 +msgid "text mode (default)" +msgstr "mode texte (par défaut)" + +#: ../Doc/library/functions.rst:1004 +msgid "``'+'``" +msgstr "``'+'``" + +#: ../Doc/library/functions.rst:1004 +msgid "open a disk file for updating (reading and writing)" +msgstr "ouvre un fichier pour le modifier (lire et écrire)" + +#: ../Doc/library/functions.rst:1007 +msgid "" +"The default mode is ``'r'`` (open for reading text, synonym of ``'rt'``). " +"For binary read-write access, the mode ``'w+b'`` opens and truncates the " +"file to 0 bytes. ``'r+b'`` opens the file without truncation." +msgstr "" +"Les mode par défaut est ``'r'`` (ouvrir pour lire du texte, synonyme de " +"``'rt'``). Pour un accès en lecture écriture binaire, le mode ``'w+b'`` " +"ouvre et vide le fichier. ``'r+b'`` ouvre le fichier sans le vider." + +#: ../Doc/library/functions.rst:1011 +msgid "" +"As mentioned in the :ref:`io-overview`, Python distinguishes between binary " +"and text I/O. Files opened in binary mode (including ``'b'`` in the *mode* " +"argument) return contents as :class:`bytes` objects without any decoding. " +"In text mode (the default, or when ``'t'`` is included in the *mode* " +"argument), the contents of the file are returned as :class:`str`, the bytes " +"having been first decoded using a platform-dependent encoding or using the " +"specified *encoding* if given." +msgstr "" +"Tel que mentionné dans :ref:`io-overview`, Python fait la différence entre " +"les I/O binaire et texte. Les fichiers ouverts en mode binaire (avec ``'b'`` " +"dans *mode*) donnent leur contenu sous forme de :class:`bytes` sans " +"décodage. En mode texte (par défaut, ou lorsque ``'t'`` est dans le *mode*), " +"le contenu du fichier est donné sous forme de :class:`str`, les octets ayant " +"été décodés au préalable en utilisant un encodage déduit de l'environnement " +"ou *encoding* s'il est donné." + +#: ../Doc/library/functions.rst:1019 +msgid "" +"There is an additional mode character permitted, ``'U'``, which no longer " +"has any effect, and is considered deprecated. It previously enabled :term:" +"`universal newlines` in text mode, which became the default behaviour in " +"Python 3.0. Refer to the documentation of the :ref:`newline ` parameter for further details." +msgstr "" +"Il y a un mode « caractères » supplémentaire autorisé, ``’U’``, qui n'a plus " +"d'effet, et est considéré comme obsolète. Auparavant, il activait les :term:" +"`universal newlines` en mode texte, qui est devenu le comportement par " +"défaut dans Python 3.0. Référez-vous à la documentation du paramètre :ref:" +"`newline ` pour plus de détails." + +#: ../Doc/library/functions.rst:1027 +msgid "" +"Python doesn't depend on the underlying operating system's notion of text " +"files; all the processing is done by Python itself, and is therefore " +"platform-independent." +msgstr "" +"Python ne dépend pas de l'éventuelle notion de fichier texte du système sous-" +"jacent, tout le traitement est effectué par Python lui même, et est ainsi " +"indépendant de la plateforme." + +#: ../Doc/library/functions.rst:1031 +msgid "" +"*buffering* is an optional integer used to set the buffering policy. Pass 0 " +"to switch buffering off (only allowed in binary mode), 1 to select line " +"buffering (only usable in text mode), and an integer > 1 to indicate the " +"size in bytes of a fixed-size chunk buffer. When no *buffering* argument is " +"given, the default buffering policy works as follows:" +msgstr "" +"*buffering* est un entier optionnel permettant de configurer l'espace " +"tampon. Donnez 0 pour désactiver l'espace tampon (seulement autorisé en mode " +"binaire), 1 pour avoir un *buffer* travaillant ligne par ligne (seulement " +"disponible en mode texte), ou un entier supérieur à 1 pour donner la taille " +"en octets d'un tampon de taille fixe. Sans l'argument *buffering*, les " +"comportements par défaut sont les suivants :" + +#: ../Doc/library/functions.rst:1037 +msgid "" +"Binary files are buffered in fixed-size chunks; the size of the buffer is " +"chosen using a heuristic trying to determine the underlying device's \"block " +"size\" and falling back on :attr:`io.DEFAULT_BUFFER_SIZE`. On many systems, " +"the buffer will typically be 4096 or 8192 bytes long." +msgstr "" +"Les fichiers binaires sont les dans un tampon de taille fixe, dont la taille " +"est choisie par une heuristique essayant de déterminer la taille des blocs " +"du système sous-jacent, ou en utilisant par défaut :attr:`io." +"DEFAULT_BUFFER_SIZE`. Sur de nombreux systèmes, le tampon sera de 4096 ou " +"8192 octets." + +#: ../Doc/library/functions.rst:1042 +msgid "" +"\"Interactive\" text files (files for which :meth:`~io.IOBase.isatty` " +"returns ``True``) use line buffering. Other text files use the policy " +"described above for binary files." +msgstr "" +"Les fichiers texte \"interactifs\" (fichiers pour lesquels :meth:`io.IOBase." +"isatty` donne ``True``) utilisent un tampon par lignes. Les autres fichiers " +"texte sont traités comme les fichiers binaires." + +#: ../Doc/library/functions.rst:1046 +msgid "" +"*encoding* is the name of the encoding used to decode or encode the file. " +"This should only be used in text mode. The default encoding is platform " +"dependent (whatever :func:`locale.getpreferredencoding` returns), but any :" +"term:`text encoding` supported by Python can be used. See the :mod:`codecs` " +"module for the list of supported encodings." +msgstr "" +"*encoding* est le nom de l'encodage utilisé pour encoder ou décoder le " +"fichier. Il doit seulement être utilisé en mode texte. L'encodage par défaut " +"dépend de la plateforme (ce que :func:`locale.getpreferredencoding` donne), " +"mais n'importe quel :term:`text encoding` supporté par Python peut être " +"utilisé. Voir :mod:`codecs` pour une liste des encodages supportés." + +#: ../Doc/library/functions.rst:1053 +msgid "" +"*errors* is an optional string that specifies how encoding and decoding " +"errors are to be handled—this cannot be used in binary mode. A variety of " +"standard error handlers are available (listed under :ref:`error-handlers`), " +"though any error handling name that has been registered with :func:`codecs." +"register_error` is also valid. The standard names include:" +msgstr "" +"*errors* est une chaîne facultative spécifiant comment les erreurs " +"d'encodage et de décodages sont gérées, ce n'est pas utilisable en mode " +"binaire. Pléthore gestionnaires d'erreurs standards sont disponibles (listés " +"sous :ref:`error-handlers`), aussi, tout nom de gestionnaire d'erreur " +"enregistré avec :func:`codecs.register_error` est aussi un argument valide. " +"Les noms standards sont :" + +#: ../Doc/library/functions.rst:1061 +msgid "" +"``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding " +"error. The default value of ``None`` has the same effect." +msgstr "" +"``'strict'`` pour lever une :exc:`ValueError` si une erreur d'encodage est " +"rencontrée. La valeur par défaut, ``None``, a le même effet." + +#: ../Doc/library/functions.rst:1065 +msgid "" +"``'ignore'`` ignores errors. Note that ignoring encoding errors can lead to " +"data loss." +msgstr "" +"``'ignore'`` ignore les erreurs. Notez qu'ignorer les erreurs d'encodage " +"peut mener à des pertes de données." + +#: ../Doc/library/functions.rst:1068 +msgid "" +"``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted " +"where there is malformed data." +msgstr "" +"``'replace'`` insère un marqueur de substitution (tel que ``'?'``) en place " +"des données mal formées." + +#: ../Doc/library/functions.rst:1071 +msgid "" +"``'surrogateescape'`` will represent any incorrect bytes as code points in " +"the Unicode Private Use Area ranging from U+DC80 to U+DCFF. These private " +"code points will then be turned back into the same bytes when the " +"``surrogateescape`` error handler is used when writing data. This is useful " +"for processing files in an unknown encoding." +msgstr "" +"``'surrogateescape'`` représentera chaque octet incorrect par un code " +"caractère de la zone *Private Use Area* d'Unicode, de *U+DC80* à *U+DCFF*. " +"Ces codes caractères privés seront ensuite transformés dans les mêmes octets " +"erronés si le gestionnaire d'erreur ``surrogateescape`` est utilisé lors de " +"l'écriture de la donnée. C'est utile pour traiter des fichiers d'un encodage " +"inconnu." + +#: ../Doc/library/functions.rst:1078 +msgid "" +"``'xmlcharrefreplace'`` is only supported when writing to a file. Characters " +"not supported by the encoding are replaced with the appropriate XML " +"character reference ``&#nnn;``." +msgstr "" +"``'xmlcharrefreplace'`` est seulement supporté à l'écriture vers un fichier. " +"Les caractères non gérés par l'encodage sont remplacés par une référence de " +"caractère XML ``&#nnn;``." + +#: ../Doc/library/functions.rst:1082 +msgid "" +"``'backslashreplace'`` replaces malformed data by Python's backslashed " +"escape sequences." +msgstr "" +"``'backslashreplace'`` remplace les données mal formées par des séquences " +"d'échappement Python (utilisant des *backslash*)." + +#: ../Doc/library/functions.rst:1085 +msgid "" +"``'namereplace'`` (also only supported when writing) replaces unsupported " +"characters with ``\\N{...}`` escape sequences." +msgstr "" +"``'namereplace'`` (aussi supporté lors de l'écriture) remplace les " +"caractères non supportés par des séquences d'échappement ``\\N{...}``." + +#: ../Doc/library/functions.rst:1093 +msgid "" +"*newline* controls how :term:`universal newlines` mode works (it only " +"applies to text mode). It can be ``None``, ``''``, ``'\\n'``, ``'\\r'``, " +"and ``'\\r\\n'``. It works as follows:" +msgstr "" +"*newline* contrôle comment le mode :term:`universal newlines` fonctionne " +"(seulement en mode texte). Il eut être ``None``, ``''``, ``'\\n'``, " +"``'\\r'``, et ``'\\r\\n'``. Il fonctionne comme suit :" + +#: ../Doc/library/functions.rst:1097 +msgid "" +"When reading input from the stream, if *newline* is ``None``, universal " +"newlines mode is enabled. Lines in the input can end in ``'\\n'``, " +"``'\\r'``, or ``'\\r\\n'``, and these are translated into ``'\\n'`` before " +"being returned to the caller. If it is ``''``, universal newlines mode is " +"enabled, but line endings are returned to the caller untranslated. If it " +"has any of the other legal values, input lines are only terminated by the " +"given string, and the line ending is returned to the caller untranslated." +msgstr "" +"Lors de la lecture, si *newline* est ``None``, le mode *universal newlines* " +"est activé. Les lignes lues peuvent terminer par ``'\\n'``, ``'\\r'``, ou " +"``'\\r\\n'``, qui sont remplacés par ``'\\n'``, avant d'être données à " +"l'appelant. S'il vaut ``'*'``, le mode *universal newline* est activé mais " +"les fin de lignes ne sont pas remplacés. S'il a n'importe quel autre valeur " +"autorisée, les lignes sont seulement terminées par la chaîne donnée, qui est " +"rendue tel qu'elle." + +#: ../Doc/library/functions.rst:1105 +msgid "" +"When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " +"characters written are translated to the system default line separator, :" +"data:`os.linesep`. If *newline* is ``''`` or ``'\\n'``, no translation " +"takes place. If *newline* is any of the other legal values, any ``'\\n'`` " +"characters written are translated to the given string." +msgstr "" +"Lors de l'écriture, si *newline* est ``None``, chaque ``'\\n'`` est remplacé " +"par le séparateur de lignes par défaut du système :data:`os.linesep`. Si " +"*newline* est ``*`` ou ``'\\n'`` aucun remplacent n'est effectué. Si " +"*newline* est un autre caractère valide, chaque ``'\\n'`` sera remplacé par " +"la chaîne donnée." + +#: ../Doc/library/functions.rst:1111 +msgid "" +"If *closefd* is ``False`` and a file descriptor rather than a filename was " +"given, the underlying file descriptor will be kept open when the file is " +"closed. If a filename is given *closefd* must be ``True`` (the default) " +"otherwise an error will be raised." +msgstr "" +"Si *closefd* est ``False`` et qu'un descripteur de fichier est fourni plutôt " +"qu'un nom de fichier, le descripteur de fichier sera laissé ouvert lorsque " +"le fichier sera fermé. Si un nom de fichier est donné, *closefd* doit rester " +"``True`` (la valeur par défaut) sans quoi une erreur est levée." + +#: ../Doc/library/functions.rst:1116 +msgid "" +"A custom opener can be used by passing a callable as *opener*. The " +"underlying file descriptor for the file object is then obtained by calling " +"*opener* with (*file*, *flags*). *opener* must return an open file " +"descriptor (passing :mod:`os.open` as *opener* results in functionality " +"similar to passing ``None``)." +msgstr "" +"Un *opener* personnalisé peut être utilisé en fournissant un appelable comme " +"*opener*. Le descripteur de fichier de cet objet fichier sera alors obtenu " +"en appelant *opener* avec (*file*, *flags*). *opener* doit donner un " +"descripteur de fichier ouvert (fournir :mod:`os.open` en temps qu'*opener* " +"aura le même effet que donner ``None``)." + +#: ../Doc/library/functions.rst:1122 +msgid "The newly created file is :ref:`non-inheritable `." +msgstr "" +"Il n'est :ref:`pas possible d'hériter du fichier ` " +"nouvellement créé." + +#: ../Doc/library/functions.rst:1124 +msgid "" +"The following example uses the :ref:`dir_fd ` parameter of the :func:" +"`os.open` function to open a file relative to a given directory::" +msgstr "" +"L'exemple suivant utilise le paramètre :ref:`dir_fd ` de la " +"fonction :func:`os.open` pour ouvrir un fichier relatif au dossier courant ::" + +#: ../Doc/library/functions.rst:1137 +msgid "" +"The type of :term:`file object` returned by the :func:`open` function " +"depends on the mode. When :func:`open` is used to open a file in a text " +"mode (``'w'``, ``'r'``, ``'wt'``, ``'rt'``, etc.), it returns a subclass of :" +"class:`io.TextIOBase` (specifically :class:`io.TextIOWrapper`). When used " +"to open a file in a binary mode with buffering, the returned class is a " +"subclass of :class:`io.BufferedIOBase`. The exact class varies: in read " +"binary mode, it returns an :class:`io.BufferedReader`; in write binary and " +"append binary modes, it returns an :class:`io.BufferedWriter`, and in read/" +"write mode, it returns an :class:`io.BufferedRandom`. When buffering is " +"disabled, the raw stream, a subclass of :class:`io.RawIOBase`, :class:`io." +"FileIO`, is returned." +msgstr "" +"Le type de :term:`file object` donné par la fonction :func:`open` dépend du " +"mode. Lorsque :func:`open` est utilisé pour ouvrir un fichier en mode texte " +"(``w``, ``r``, ``wt``, ``rt``, etc.), il donne une classe fille de :class:" +"`io.TextIOBase` (spécifiquement : :class:`io.TextIOWrapper`). Lors de " +"l'ouverture d'un fichier en mode binaire avec tampon, la classe donnée sera " +"une fille de :class:`io.BufferedIOBase`. La classe exacte varie : en lecture " +"en mode binaire elle donne une :class:`io.BufferedReader`, en écriture et " +"ajout en mode binaire c'est une :class:`io.BufferedWriter`, et en lecture/" +"écriture, c'est une :class:`io.BufferedRandom`. Lorsque le tampon est " +"désactivé, le flux brut, une classe fille de :class:`io.RawIOBase`, :class:" +"`io.FileIO` est donnée." + +#: ../Doc/library/functions.rst:1158 +msgid "" +"See also the file handling modules, such as, :mod:`fileinput`, :mod:`io` " +"(where :func:`open` is declared), :mod:`os`, :mod:`os.path`, :mod:" +"`tempfile`, and :mod:`shutil`." +msgstr "" +"Consultez aussi les modules de gestion de fichiers tel que :mod:" +"`fileinput`, :mod:`io` (où :func:`open` est déclarée), :mod:`os`, :mod:`os." +"path`, :mod:`tmpfile`, et :mod:`shutil`." + +#: ../Doc/library/functions.rst:1165 +msgid "The *opener* parameter was added." +msgstr "Le paramètre *opener* a été ajouté." + +#: ../Doc/library/functions.rst:1166 +msgid "The ``'x'`` mode was added." +msgstr "Le mode ``'x'`` a été ajouté." + +#: ../Doc/library/functions.rst:1167 +msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." +msgstr "" +":exc:`IOError` était normalement levée, elle est maintenant un alias de :exc:" +"`OSError`." + +#: ../Doc/library/functions.rst:1168 +msgid "" +":exc:`FileExistsError` is now raised if the file opened in exclusive " +"creation mode (``'x'``) already exists." +msgstr "" +":exc:`FileExistsError` est maintenant levée si le fichier ouvert en mode " +"création exclusive (``'x'``) existe déjà." + +#: ../Doc/library/functions.rst:1174 +msgid "The file is now non-inheritable." +msgstr "Il n'est plus possible d'hériter de *file*." + +#: ../Doc/library/functions.rst:1178 +msgid "The ``'U'`` mode." +msgstr "Le mode ``'U'``." + +#: ../Doc/library/functions.rst:1183 +msgid "" +"If the system call is interrupted and the signal handler does not raise an " +"exception, the function now retries the system call instead of raising an :" +"exc:`InterruptedError` exception (see :pep:`475` for the rationale)." +msgstr "" +"Si l'appel système est interrompu et que le gestionnaire de signal ne lève " +"aucune exception, la fonction réessaye l'appel système au lieu de lever une :" +"exc:`InterruptedError` (voir la :pep:`475` à propos du raisonnement)." + +#: ../Doc/library/functions.rst:1186 +msgid "The ``'namereplace'`` error handler was added." +msgstr "Le gestionnaire d'erreurs ``'namereplace'`` a été ajouté." + +#: ../Doc/library/functions.rst:1191 +msgid "Support added to accept objects implementing :class:`os.PathLike`." +msgstr "Ajout du support des objets implémentant :class:`os.PathLike`." + +#: ../Doc/library/functions.rst:1192 +msgid "" +"On Windows, opening a console buffer may return a subclass of :class:`io." +"RawIOBase` other than :class:`io.FileIO`." +msgstr "" +"Sous Windows, ouvrir un *buffer* du terminal peut renvoyer une sous-classe " +"de :class:`io.RawIOBase` autre que :class:`io.FileIO`." + +#: ../Doc/library/functions.rst:1197 +msgid "" +"Given a string representing one Unicode character, return an integer " +"representing the Unicode code point of that character. For example, " +"``ord('a')`` returns the integer ``97`` and ``ord('€')`` (Euro sign) returns " +"``8364``. This is the inverse of :func:`chr`." +msgstr "" +"Renvoie le nombre entier représentant le code Unicode du caractère " +"représenté par la chaîne donnée. Par exemple, ``ord('a')`` renvoie le " +"nombre entier ``97`` et ``ord('€')`` (symbole Euro) renvoie ``8364``. Il " +"s'agit de l'inverse de :func:`chr`." + +#: ../Doc/library/functions.rst:1205 +msgid "" +"Return *x* to the power *y*; if *z* is present, return *x* to the power *y*, " +"modulo *z* (computed more efficiently than ``pow(x, y) % z``). The two-" +"argument form ``pow(x, y)`` is equivalent to using the power operator: " +"``x**y``." +msgstr "" +"Donne *x* puissance *y*, et si *z* est présent, donne *x* puissance *y* " +"modulo *z* (calculé de manière plus efficiente que ``pow(x, y) % z``). La " +"forme à deux arguments est équivalent à ``x**y``." + +#: ../Doc/library/functions.rst:1209 +msgid "" +"The arguments must have numeric types. With mixed operand types, the " +"coercion rules for binary arithmetic operators apply. For :class:`int` " +"operands, the result has the same type as the operands (after coercion) " +"unless the second argument is negative; in that case, all arguments are " +"converted to float and a float result is delivered. For example, ``10**2`` " +"returns ``100``, but ``10**-2`` returns ``0.01``. If the second argument is " +"negative, the third argument must be omitted. If *z* is present, *x* and " +"*y* must be of integer types, and *y* must be non-negative." +msgstr "" +"Les arguments doivent être de types numériques. Avec des opérandes de " +"différents types, les mêmes règles de coercition que celles des opérateurs " +"arithmétiques binaires s'appliquent. Pour des opérandes de type :class:" +"`int`, le résultat sera de même type que les opérandes (après coercition) " +"sauf si le second argument est négatif, dans ce cas, les arguments sont " +"convertis en ``float``, et le résultat sera un ``float`` aussi. Par exemple, " +"``10**2`` donne ``100``, alors que ``10**-2`` donne ``0.01``. Si le second " +"argument est négatif, le troisième doit être omis. Si *z* est fourni, *x* et " +"*y* doivent être des entiers et *y* positif." + +#: ../Doc/library/functions.rst:1221 +msgid "" +"Print *objects* to the text stream *file*, separated by *sep* and followed " +"by *end*. *sep*, *end*, *file* and *flush*, if present, must be given as " +"keyword arguments." +msgstr "" +"Écrit *objects* dans le flux texte *file*, séparés par *sep* et suivis de " +"*end*. *sep*, *end*, *file*, et *flush*, s'ils sont présents, doivent être " +"données par mot clef." + +#: ../Doc/library/functions.rst:1225 +msgid "" +"All non-keyword arguments are converted to strings like :func:`str` does and " +"written to the stream, separated by *sep* and followed by *end*. Both *sep* " +"and *end* must be strings; they can also be ``None``, which means to use the " +"default values. If no *objects* are given, :func:`print` will just write " +"*end*." +msgstr "" +"Tous les arguments positionnels sont convertis en chaîne comme le fait :func:" +"`str`, puis écrits sur le flux, séparés par *sep* et terminés par *end*. " +"*sep* et *end* doivent être des chaînes, ou ``None`` , indiquant de prendre " +"les valeurs par défaut. Si aucun *objects* n'est donné :func:`print` écris " +"seulement *end*." + +#: ../Doc/library/functions.rst:1231 +msgid "" +"The *file* argument must be an object with a ``write(string)`` method; if it " +"is not present or ``None``, :data:`sys.stdout` will be used. Since printed " +"arguments are converted to text strings, :func:`print` cannot be used with " +"binary mode file objects. For these, use ``file.write(...)`` instead." +msgstr "" +"L'argument *file* doit être un objet avec une méthode ``write(string)``; " +"s'il n'est pas fourni, ou vaut ``None``, :data:`sys.stdout` sera utilisé. " +"Puisque les arguments affichés sont convertis en chaîne, :func:`print` ne " +"peut pas être utilisé avec des fichiers ouverts en mode binaire. Pour ceux " +"ci utilisez plutôt ``file.write(...)``." + +#: ../Doc/library/functions.rst:1236 +msgid "" +"Whether output is buffered is usually determined by *file*, but if the " +"*flush* keyword argument is true, the stream is forcibly flushed." +msgstr "" +"Que la sortie utilise un *buffer* ou non est souvent décidé par *file*, mais " +"si l'argument *flush* est vrai, le tampon du flux est vidé explicitement." + +#: ../Doc/library/functions.rst:1239 +msgid "Added the *flush* keyword argument." +msgstr "Ajout de l'argument par mot clef *flush*." + +#: ../Doc/library/functions.rst:1245 +msgid "Return a property attribute." +msgstr "Donne un attribut propriété." + +#: ../Doc/library/functions.rst:1247 +msgid "" +"*fget* is a function for getting an attribute value. *fset* is a function " +"for setting an attribute value. *fdel* is a function for deleting an " +"attribute value. And *doc* creates a docstring for the attribute." +msgstr "" +"*fget* est une fonction permettant d'obtenir la valeur d'un attribut. *fset* " +"est une fonction pour en définir la valeur. *fdel* quand à elle permet de " +"supprimer la valeur d'un attribut, et *doc* créé une *docstring* pour " +"l'attribut." + +#: ../Doc/library/functions.rst:1251 +msgid "A typical use is to define a managed attribute ``x``::" +msgstr "Une utilisation typique : définir un attribut managé ``x`` ::" + +#: ../Doc/library/functions.rst:1268 +msgid "" +"If *c* is an instance of *C*, ``c.x`` will invoke the getter, ``c.x = " +"value`` will invoke the setter and ``del c.x`` the deleter." +msgstr "" +"Si *c* est une instance de *C*, ``c.x`` appellera le *getter*, ``c.x = " +"value`` invoquera le *setter*, et ``del x`` le *deleter*." + +#: ../Doc/library/functions.rst:1271 +msgid "" +"If given, *doc* will be the docstring of the property attribute. Otherwise, " +"the property will copy *fget*'s docstring (if it exists). This makes it " +"possible to create read-only properties easily using :func:`property` as a :" +"term:`decorator`::" +msgstr "" +"S'il est donné, *doc* sera la *docstring* de l'attribut. Autrement la " +"propriété copiera celle de *fget* (si elle existe). Cela rend possible la " +"création de propriétés en lecture seule en utilisant simplement :func:" +"`property` comme un :term:`decorator` ::" + +#: ../Doc/library/functions.rst:1284 +msgid "" +"The ``@property`` decorator turns the :meth:`voltage` method into a \"getter" +"\" for a read-only attribute with the same name, and it sets the docstring " +"for *voltage* to \"Get the current voltage.\"" +msgstr "" +"Le décorateur ``@property`` transforme la méthode :meth:`voltage` en un " +"*getter* d'un attribut du même nom, et donne *\"Get the current voltage\"* " +"comme *docstring* de *voltage*." + +#: ../Doc/library/functions.rst:1288 +msgid "" +"A property object has :attr:`~property.getter`, :attr:`~property.setter`, " +"and :attr:`~property.deleter` methods usable as decorators that create a " +"copy of the property with the corresponding accessor function set to the " +"decorated function. This is best explained with an example::" +msgstr "" +"Un objet propriété à les méthodes :attr:`~property.getter`, :attr:`~property." +"setter` et :attr:`~property.deleter` utilisables comme décorateurs créant " +"une copie de la propriété avec les accesseurs correspondants définis par la " +"fonction de décoration. C'est plus clair avec un exemple ::" + +#: ../Doc/library/functions.rst:1310 +msgid "" +"This code is exactly equivalent to the first example. Be sure to give the " +"additional functions the same name as the original property (``x`` in this " +"case.)" +msgstr "" +"Ce code est l'exact équivalent du premier exemple. Soyez attentifs à bien " +"donner aux fonctions additionnelles le même nom que la propriété (``x`` dans " +"ce cas.)" + +#: ../Doc/library/functions.rst:1314 +msgid "" +"The returned property object also has the attributes ``fget``, ``fset``, and " +"``fdel`` corresponding to the constructor arguments." +msgstr "" +"L'objet propriété donné à aussi les attributs ``fget``, ``fset`` et ``fdel`` " +"correspondant correspondants aux arguments du constructeur." + +#: ../Doc/library/functions.rst:1317 +msgid "The docstrings of property objects are now writeable." +msgstr "Les *docstrings* des objets propriété peuvent maintenant être écrits." + +#: ../Doc/library/functions.rst:1326 +msgid "" +"Rather than being a function, :class:`range` is actually an immutable " +"sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." +msgstr "" +"Plutôt qu'être une fonction, :class:`range` est en fait une séquence " +"immuable, tel que documenté dans :ref:`typesseq-range` et :ref:`typesseq`." + +#: ../Doc/library/functions.rst:1332 +msgid "" +"Return a string containing a printable representation of an object. For " +"many types, this function makes an attempt to return a string that would " +"yield an object with the same value when passed to :func:`eval`, otherwise " +"the representation is a string enclosed in angle brackets that contains the " +"name of the type of the object together with additional information often " +"including the name and address of the object. A class can control what this " +"function returns for its instances by defining a :meth:`__repr__` method." +msgstr "" +"Donne une chaîne contenant une représentation affichable de l'objet. Pour de " +"nombreux types, cette fonction essaye de donner une chaîne qui donnera à son " +"tour un objet de mène valeur lorsqu'elle est passée à :func:`eval`, sinon la " +"représentation sera une chaîne entourée de chevrons contenant le nom du type " +"et quelques informations supplémentaires souvent le nom et l'adresse de " +"l'objet. Une classe peut contrôler ce que cette fonction donne pour ses " +"instances en définissant une méthode :meth:`__repr__`." + +#: ../Doc/library/functions.rst:1343 +msgid "" +"Return a reverse :term:`iterator`. *seq* must be an object which has a :" +"meth:`__reversed__` method or supports the sequence protocol (the :meth:" +"`__len__` method and the :meth:`__getitem__` method with integer arguments " +"starting at ``0``)." +msgstr "" +"Donne un :term:`iterator` inversé. *seq* doit être un objet ayant une " +"méthode :meth:`__reverse__` ou supportant le protocole séquence (la méthode :" +"meth:`__len__` et la méthode :meth:`__getitem__` avec des arguments entiers " +"commençant à zéro)." + +#: ../Doc/library/functions.rst:1351 +msgid "" +"Return *number* rounded to *ndigits* precision after the decimal point. If " +"*ndigits* is omitted or is ``None``, it returns the nearest integer to its " +"input." +msgstr "" +"Renvoie *number* arrondi avec une précision de *ndigits* chiffres après la " +"virgule. Si *ndigits* est omis (ou est ``None``), l'entier le plus proche " +"est renvoyé." + +#: ../Doc/library/functions.rst:1355 +msgid "" +"For the built-in types supporting :func:`round`, values are rounded to the " +"closest multiple of 10 to the power minus *ndigits*; if two multiples are " +"equally close, rounding is done toward the even choice (so, for example, " +"both ``round(0.5)`` and ``round(-0.5)`` are ``0``, and ``round(1.5)`` is " +"``2``). Any integer value is valid for *ndigits* (positive, zero, or " +"negative). The return value is an integer if *ndigits* is omitted or " +"``None``. Otherwise the return value has the same type as *number*." +msgstr "" +"Pour les types natifs supportant :func:`round`, les valeurs sont arrondies " +"au multiple de 10 puissance moins *ndigits*, si deux multiples sont " +"équidistants, l'arrondi se fait vers la valeur paire (par exemple " +"``round(0.5)`` et ``round(-0.5)`` valent tous les deux ``0``, et " +"``round(1.5)`` vaut ``2``). *ndigits* accepte tout nombre entier (positif, " +"zéro, ou négatif). La valeur renvoyée est un entier si *ndigits* n'est pas " +"donné, (ou est ``None``). Sinon elle est du même type que *number*." + +#: ../Doc/library/functions.rst:1364 +msgid "" +"For a general Python object ``number``, ``round`` delegates to ``number." +"__round__``." +msgstr "" +"Pour tout autre objet Python ``number``, ``round`` délègue à ``number." +"__round__``." + +#: ../Doc/library/functions.rst:1369 +msgid "" +"The behavior of :func:`round` for floats can be surprising: for example, " +"``round(2.675, 2)`` gives ``2.67`` instead of the expected ``2.68``. This is " +"not a bug: it's a result of the fact that most decimal fractions can't be " +"represented exactly as a float. See :ref:`tut-fp-issues` for more " +"information." +msgstr "" +"Le comportement de :func:`round` avec les nombres à virgule flottante peut " +"être surprenant : par exemple ``round(2.675, 2)`` donne ``2.67`` au lieu de " +"``2.68``. Ce n'est pas un bug, mais dû au fait que la plupart des fractions " +"de décimaux ne peuvent pas être représentés exactement en nombre a virgule " +"flottante. Voir :ref:`tut-fp-issues` pour plus d'information." + +#: ../Doc/library/functions.rst:1380 +msgid "" +"Return a new :class:`set` object, optionally with elements taken from " +"*iterable*. ``set`` is a built-in class. See :class:`set` and :ref:`types-" +"set` for documentation about this class." +msgstr "" +"Donne un nouveau :class:`set`, dont les éléments peuvent être extraits " +"d'*iterable*. ``set`` est une classe native. Voir :class:`set` et :ref:" +"`types-set` pour la documentation de cette classe." + +#: ../Doc/library/functions.rst:1384 +msgid "" +"For other containers see the built-in :class:`frozenset`, :class:`list`, :" +"class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections` " +"module." +msgstr "" +"D'autres conteneurs existent, typiquement : :class:`frozenset`, :class:" +"`list`, :class:`tuple`, et :class:`dict`, ainsi que le module :mod:" +"`collections`." + +#: ../Doc/library/functions.rst:1391 +msgid "" +"This is the counterpart of :func:`getattr`. The arguments are an object, a " +"string and an arbitrary value. The string may name an existing attribute or " +"a new attribute. The function assigns the value to the attribute, provided " +"the object allows it. For example, ``setattr(x, 'foobar', 123)`` is " +"equivalent to ``x.foobar = 123``." +msgstr "" +"C'est le complément de :func:`getattr`. Les arguments sont : un objet, une " +"chaîne, et une valeur de type arbitraire. La chaîne peut nommer un attribut " +"existant ou un nouvel attribut. La fonction assigne la valeur à l'attribut, " +"si l'objet l'autorise. Par exemple, ``setattr(x, 'foobar', 123)`` équivaut à " +"``x.foobar = 123``." + +#: ../Doc/library/functions.rst:1403 +msgid "" +"Return a :term:`slice` object representing the set of indices specified by " +"``range(start, stop, step)``. The *start* and *step* arguments default to " +"``None``. Slice objects have read-only data attributes :attr:`~slice." +"start`, :attr:`~slice.stop` and :attr:`~slice.step` which merely return the " +"argument values (or their default). They have no other explicit " +"functionality; however they are used by Numerical Python and other third " +"party extensions. Slice objects are also generated when extended indexing " +"syntax is used. For example: ``a[start:stop:step]`` or ``a[start:stop, " +"i]``. See :func:`itertools.islice` for an alternate version that returns an " +"iterator." +msgstr "" +"Donne un objet :class:`slice` représentant un ensemble d'indices spécifiés " +"par ``range(start, stop, step)``. Les arguments *start* et *step* valent " +"``None`` par défaut. Les objets *slice* (tranches) ont les attributs " +"suivants en lecture seule : :attr:`~slice.start`, :attr:`~slice.stop`, et :" +"attr:`~slice.step` qui valent simplement les trois arguments (ou leurs " +"valeur par défaut). Ils n'ont pas d'autres fonctionnalité explicite, " +"cependant ils sont utilisés par *Numerical Python* et d'autres bibliothèques " +"tierces. Les objets *slice* sont aussi générés par la notation par indices " +"étendue. Par exemple ``a[start:stop:step]`` ou ``a[start:stop, i]``. Voir :" +"func:`itertools.islice` pour une version alternative donnant un itérateur." + +#: ../Doc/library/functions.rst:1416 +msgid "Return a new sorted list from the items in *iterable*." +msgstr "Donne une nouvelle liste triée depuis les éléments d'*iterable*." + +#: ../Doc/library/functions.rst:1418 +msgid "" +"Has two optional arguments which must be specified as keyword arguments." +msgstr "A deux arguments optionnels qui doivent être fournis par mot clef." + +#: ../Doc/library/functions.rst:1420 +msgid "" +"*key* specifies a function of one argument that is used to extract a " +"comparison key from each element in *iterable* (for example, ``key=str." +"lower``). The default value is ``None`` (compare the elements directly)." +msgstr "" +"*key* spécifie une fonction d'un argument utilisé pour extraire une clef de " +"comparaison de chaque élément de l'itérable (par exemple, ``key=str." +"lower``). La valeur par défaut est ``None`` (compare les éléments " +"directement)." + +#: ../Doc/library/functions.rst:1424 +msgid "" +"*reverse* is a boolean value. If set to ``True``, then the list elements " +"are sorted as if each comparison were reversed." +msgstr "" +"*reverse*, une valeur booléenne. Si elle est ``True``, la liste d'éléments " +"est triée comme si toutes les comparaisons étaient inversées." + +#: ../Doc/library/functions.rst:1427 +msgid "" +"Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a " +"*key* function." +msgstr "" +"Utilisez :func:`functools.cmp_to_key` pour convertir l'ancienne notation " +"*cmp* en une fonction *key*." + +#: ../Doc/library/functions.rst:1430 +msgid "" +"The built-in :func:`sorted` function is guaranteed to be stable. A sort is " +"stable if it guarantees not to change the relative order of elements that " +"compare equal --- this is helpful for sorting in multiple passes (for " +"example, sort by department, then by salary grade)." +msgstr "" +"La fonction native :func:`sorted` est garantie stable. Un tri est stable " +"s'il garantie de ne pas changer l'ordre relatif des éléments égaux entre " +"eux. C'est utile pour trier en plusieurs passes, par exemple par département " +"puis par salaire)." + +#: ../Doc/library/functions.rst:1435 +msgid "" +"For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." +msgstr "" +"Pour des exemples de tris et un bref tutoriel, consultez :ref:`sortinghowto`." + +#: ../Doc/library/functions.rst:1439 +msgid "Transform a method into a static method." +msgstr "Transforme une méthode en méthode statique." + +#: ../Doc/library/functions.rst:1441 +msgid "" +"A static method does not receive an implicit first argument. To declare a " +"static method, use this idiom::" +msgstr "" +"Une méthode statique ne reçoit pas de premier argument implicitement. Voilà " +"comment déclarer une méthode statique ::" + +#: ../Doc/library/functions.rst:1448 +msgid "" +"The ``@staticmethod`` form is a function :term:`decorator` -- see :ref:" +"`function` for details." +msgstr "" +"La forme ``@staticmethod`` est un :term:`decorator` de fonction. Consultez :" +"ref:`function` pour plus de détails." + +#: ../Doc/library/functions.rst:1451 +msgid "" +"A static method can be called either on the class (such as ``C.f()``) or on " +"an instance (such as ``C().f()``)." +msgstr "" +"Elle peut être appelée soit sur une classe (tel que ``C.f()``) ou sur une " +"instance (tel que ``C().f()``)." + +#: ../Doc/library/functions.rst:1454 +msgid "" +"Static methods in Python are similar to those found in Java or C++. Also " +"see :func:`classmethod` for a variant that is useful for creating alternate " +"class constructors." +msgstr "" +"Les méthodes statiques en Python sont similaires à celles trouvées en Java " +"ou en C++. Consultez :func:`classmethod` pour une variante utile pour créer " +"des constructeurs alternatifs." + +#: ../Doc/library/functions.rst:1458 +msgid "" +"Like all decorators, it is also possible to call ``staticmethod`` as a " +"regular function and do something with its result. This is needed in some " +"cases where you need a reference to a function from a class body and you " +"want to avoid the automatic transformation to instance method. For these " +"cases, use this idiom::" +msgstr "" +"Comme pour tous les décorateurs, il est possible d'appeler ``staticmethod`` " +"comme une simple fonction, et faire quelque chose de son résultat. Ça peut " +"être nécessaire dans le cas où vous voudriez une référence à la fonction " +"depuis le corps d'une classe, et souhaiteriez éviter sa transformation en " +"méthode d'instance. Pour ces cas, faites comme suit ::" + +#: ../Doc/library/functions.rst:1467 +msgid "For more information on static methods, see :ref:`types`." +msgstr "" +"Pour plus d'informations sur les méthodes statiques, consultez :ref:`types`." + +#: ../Doc/library/functions.rst:1478 +msgid "" +"Return a :class:`str` version of *object*. See :func:`str` for details." +msgstr "" +"Donne une version sous forme de :class:`str` d'*object*. Voir :func:`str` " +"pour plus de détails." + +#: ../Doc/library/functions.rst:1480 +msgid "" +"``str`` is the built-in string :term:`class`. For general information about " +"strings, see :ref:`textseq`." +msgstr "" +"``str`` est la :term:`class` native des chaînes de caractères. Pour des " +"informations générales à propos des chaînes, consultez :ref:`textseq`." + +#: ../Doc/library/functions.rst:1486 +msgid "" +"Sums *start* and the items of an *iterable* from left to right and returns " +"the total. *start* defaults to ``0``. The *iterable*'s items are normally " +"numbers, and the start value is not allowed to be a string." +msgstr "" +"Additionne *start* et les éléments d'*iterable* de gauche à droite et en " +"donne le total. *start* vaut ``0`` par défaut. Les éléments d'*iterable* " +"sont normalement des nombres, et la valeur de *start* ne peut pas être une " +"chaîne." + +#: ../Doc/library/functions.rst:1490 +msgid "" +"For some use cases, there are good alternatives to :func:`sum`. The " +"preferred, fast way to concatenate a sequence of strings is by calling ``''." +"join(sequence)``. To add floating point values with extended precision, " +"see :func:`math.fsum`\\. To concatenate a series of iterables, consider " +"using :func:`itertools.chain`." +msgstr "" +"Pour certains cas, il existe de bonnes alternatives à :func:`sum`. La bonne " +"méthode, et rapide, de concaténer une séquence de chaînes est d'appeler ``''." +"join(séquence)``. Pour additionner des nombres à virgule flottante avec une " +"meilleure précision, voir :func:`math.fsum`. Pour concaténer une série " +"d'itérables, utilisez plutôt :func:`itertools.chain`." + +#: ../Doc/library/functions.rst:1498 +msgid "" +"Return a proxy object that delegates method calls to a parent or sibling " +"class of *type*. This is useful for accessing inherited methods that have " +"been overridden in a class. The search order is same as that used by :func:" +"`getattr` except that the *type* itself is skipped." +msgstr "" +"Donne un objet mandataire (*proxy object* en anglais) déléguant les appels " +"de méthode à une classe parente ou sœur de type *type*. C'est utile pour " +"accéder à des méthodes héritées et substituées dans la classe. L'ordre de " +"recherche est le même que celui utilisé par :func:`getattr` sauf que *type* " +"lui même est sauté." + +#: ../Doc/library/functions.rst:1503 +msgid "" +"The :attr:`~class.__mro__` attribute of the *type* lists the method " +"resolution search order used by both :func:`getattr` and :func:`super`. The " +"attribute is dynamic and can change whenever the inheritance hierarchy is " +"updated." +msgstr "" +"L'attribut :attr:`~class.__mro__` de *type* liste l'ordre de recherche de la " +"méthode de résolution utilisée par :func:`getattr` et :func:`super`. " +"L'attribut est dynamique et peut changer lorsque la hiérarchie d'héritage " +"est modifiée." + +#: ../Doc/library/functions.rst:1508 +msgid "" +"If the second argument is omitted, the super object returned is unbound. If " +"the second argument is an object, ``isinstance(obj, type)`` must be true. " +"If the second argument is a type, ``issubclass(type2, type)`` must be true " +"(this is useful for classmethods)." +msgstr "" +"Si le second argument est omis, l'objet *super* obtenu n'est pas lié. Si le " +"second argument est un objet, ``isinstance(obj, type)`` doit être vrai. Si " +"le second argument est un type, ``issubclass(type2, type)`` doit être vrai " +"(c'est utile pour les méthodes de classe)." + +#: ../Doc/library/functions.rst:1513 +msgid "" +"There are two typical use cases for *super*. In a class hierarchy with " +"single inheritance, *super* can be used to refer to parent classes without " +"naming them explicitly, thus making the code more maintainable. This use " +"closely parallels the use of *super* in other programming languages." +msgstr "" +"Il existe deux autres cas d'usage typiques pour *super*. Dans une hiérarchie " +"de classes à héritage simple, *super* peut être utilisé pour obtenir la " +"classe parente sans avoir à la nommer explicitement, rendant le code plus " +"maintenable. Cet usage se rapproche de l'usage de *super* dans d'autres " +"langages de programmation." + +#: ../Doc/library/functions.rst:1518 +msgid "" +"The second use case is to support cooperative multiple inheritance in a " +"dynamic execution environment. This use case is unique to Python and is not " +"found in statically compiled languages or languages that only support single " +"inheritance. This makes it possible to implement \"diamond diagrams\" where " +"multiple base classes implement the same method. Good design dictates that " +"this method have the same calling signature in every case (because the order " +"of calls is determined at runtime, because that order adapts to changes in " +"the class hierarchy, and because that order can include sibling classes that " +"are unknown prior to runtime)." +msgstr "" +"Le second est la gestion d'héritage multiple coopératif dans un " +"environnement d'exécution dynamique. Cet usage est unique à Python, il ne se " +"retrouve ni dans les langages compilés statiquement, ni dans les langages ne " +"gérant que l'héritage simple. Cela rend possible d'implémenter un héritage " +"en diamant dans lequel plusieurs classes parentes implémentent la même " +"méthode. Une bonne conception implique que chaque méthode doit avoir la même " +"signature lors de leur appels dans tous les cas (parce que l'ordre des " +"appels est déterminée à l'exécution, parce que l'ordre s'adapte aux " +"changements dans la hiérarchie, et parce que l'ordre peut inclure des " +"classes sœurs inconnues avant l'exécution)." + +#: ../Doc/library/functions.rst:1528 +msgid "For both use cases, a typical superclass call looks like this::" +msgstr "" +"Dans tous les cas, un appel typique à une classe parente ressemble à ::" + +#: ../Doc/library/functions.rst:1535 +msgid "" +"Note that :func:`super` is implemented as part of the binding process for " +"explicit dotted attribute lookups such as ``super().__getitem__(name)``. It " +"does so by implementing its own :meth:`__getattribute__` method for " +"searching classes in a predictable order that supports cooperative multiple " +"inheritance. Accordingly, :func:`super` is undefined for implicit lookups " +"using statements or operators such as ``super()[name]``." +msgstr "" +"Notez que :func:`super` fait partie de l'implémentation du processus de " +"liaison de recherche d'attributs pointés explicitement tel que ``super()." +"__getitem__(name)``. Il le fait en implémentant sa propre méthode :meth:" +"`__getattribute__` pour rechercher les classes dans un ordre prévisible " +"supportant l'héritage multiple coopératif. En conséquence, :func:`super` " +"n'est pas défini pour les recherches implicites via des instructions ou des " +"opérateurs tel que ``super()[name]``." + +#: ../Doc/library/functions.rst:1542 +msgid "" +"Also note that, aside from the zero argument form, :func:`super` is not " +"limited to use inside methods. The two argument form specifies the " +"arguments exactly and makes the appropriate references. The zero argument " +"form only works inside a class definition, as the compiler fills in the " +"necessary details to correctly retrieve the class being defined, as well as " +"accessing the current instance for ordinary methods." +msgstr "" +"Notez aussi que, en dehors de sa forme sans arguments, la :func:`super` peut " +"être utilisée en dehors des méthodes. La forme à deux arguments est précise " +"et donne tous les arguments exactement, donnant les références appropriées. " +"La forme sans arguments fonctionne seulement à l'intérieur d'une définition " +"de classe, puisque c'est le compilateur qui donne les détails nécessaires à " +"propos de la classe en cours de définition, ainsi qu'accéder à l'instance " +"courante pour les méthodes ordinaires." + +#: ../Doc/library/functions.rst:1549 +msgid "" +"For practical suggestions on how to design cooperative classes using :func:" +"`super`, see `guide to using super() `_." +msgstr "" +"Pour des suggestions pratiques sur la conception de classes coopératives " +"utilisant :func:`super`, consultez `guide to using super() `_." + +#: ../Doc/library/functions.rst:1558 +msgid "" +"Rather than being a function, :class:`tuple` is actually an immutable " +"sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." +msgstr "" +"Plutôt qu'être une fonction, :class:`tuple` est en fait un type de séquence " +"immuable, tel que documenté dans :ref:`typesseq-tuple` et :ref:`typesseq`." + +#: ../Doc/library/functions.rst:1567 +msgid "" +"With one argument, return the type of an *object*. The return value is a " +"type object and generally the same object as returned by :attr:`object." +"__class__ `." +msgstr "" +"Avec un argument, donne le type d'*object*. La valeur donnée est un objet " +"type et généralement la même que la valeur de l'attribut :attr:`object." +"__class__ `." + +#: ../Doc/library/functions.rst:1571 +msgid "" +"The :func:`isinstance` built-in function is recommended for testing the type " +"of an object, because it takes subclasses into account." +msgstr "" +"La fonction native :func:`isinstance` est recommandée pour tester le type " +"d'un objet car elle prend en compte l'héritage." + +#: ../Doc/library/functions.rst:1575 +msgid "" +"With three arguments, return a new type object. This is essentially a " +"dynamic form of the :keyword:`class` statement. The *name* string is the " +"class name and becomes the :attr:`~definition.__name__` attribute; the " +"*bases* tuple itemizes the base classes and becomes the :attr:`~class." +"__bases__` attribute; and the *dict* dictionary is the namespace containing " +"definitions for class body and is copied to a standard dictionary to become " +"the :attr:`~object.__dict__` attribute. For example, the following two " +"statements create identical :class:`type` objects:" +msgstr "" +"Avec trois arguments, renvoie un nouveau type. C'est essentiellement une " +"forme dynamique de l'instruction :keyword:`class`. La chaîne *name* est le " +"nom de la classe et deviendra l'attribut :attr:`~definition.__name__` ; le " +"*tuple* *bases* contient les classes mères et deviendra l'attribut :attr:" +"`~class.__bases__` ; et le dictionnaire *dict* est l'espace de nommage " +"contenant les définitions du corps de la classe, il est copié vers un " +"dictionnaire standard pour devenir l'attribut :attr:`~object.__dict__`. Par " +"exemple, les deux instructions suivantes créent deux instances identiques " +"de :class:`type` :" + +#: ../Doc/library/functions.rst:1589 +msgid "See also :ref:`bltin-type-objects`." +msgstr "Voir aussi :ref:`bltin-type-objects`." + +#: ../Doc/library/functions.rst:1591 +msgid "" +"Subclasses of :class:`type` which don't override ``type.__new__`` may no " +"longer use the one-argument form to get the type of an object." +msgstr "" +"Les sous-classes de :class:`type` qui ne redéfinissent pas ``type.__new__`` " +"ne devraient plus utiliser la forme à un argument pour récupérer le type " +"d'un objet." + +#: ../Doc/library/functions.rst:1597 +msgid "" +"Return the :attr:`~object.__dict__` attribute for a module, class, instance, " +"or any other object with a :attr:`~object.__dict__` attribute." +msgstr "" +"Renvoie l'attribut :attr:`~object.__dict__` d'un module, d'une classe, d'une " +"instance ou de n'importe quel objet avec un attribut :attr:`~object." +"__dict__`." + +#: ../Doc/library/functions.rst:1600 +msgid "" +"Objects such as modules and instances have an updateable :attr:`~object." +"__dict__` attribute; however, other objects may have write restrictions on " +"their :attr:`~object.__dict__` attributes (for example, classes use a :class:" +"`types.MappingProxyType` to prevent direct dictionary updates)." +msgstr "" +"Les objets tels que les modules et les instances on un attribut :attr:" +"`~object.__dict__` modifiable ; Cependant, d'autres objets peuvent avoir des " +"restrictions en écriture sur leurs attributs :attr:`~object.__dict__` (par " +"exemple, les classes utilisent un :class:`types.MappingProxyType` pour " +"éviter les modifications directes du dictionnaire)." + +#: ../Doc/library/functions.rst:1605 +msgid "" +"Without an argument, :func:`vars` acts like :func:`locals`. Note, the " +"locals dictionary is only useful for reads since updates to the locals " +"dictionary are ignored." +msgstr "" +"Sans argument, :func:`vars` se comporte comme :func:`locals`. Notez que le " +"dictionnaire des variables locales n'est utile qu'en lecture, car ses " +"écritures sont ignorées." + +#: ../Doc/library/functions.rst:1612 +msgid "Make an iterator that aggregates elements from each of the iterables." +msgstr "Construit un itérateur agrégeant les éléments de tous les itérables." + +#: ../Doc/library/functions.rst:1614 +msgid "" +"Returns an iterator of tuples, where the *i*-th tuple contains the *i*-th " +"element from each of the argument sequences or iterables. The iterator " +"stops when the shortest input iterable is exhausted. With a single iterable " +"argument, it returns an iterator of 1-tuples. With no arguments, it returns " +"an empty iterator. Equivalent to::" +msgstr "" +"Donne un itérateur de tuples, où le *i*-ième tuple contiens le *i*-ième " +"élément de chacune des séquences ou itérables fournis. L'itérateur s'arrête " +"lorsque le plus petit itérable fourni est épuisé. Avec un seul argument " +"itérable, elle donne un itérateur sur des *tuples* d'un élément. Sans " +"arguments, elle donne un itérateur vide. Équivalent à ::" + +#: ../Doc/library/functions.rst:1633 +msgid "" +"The left-to-right evaluation order of the iterables is guaranteed. This " +"makes possible an idiom for clustering a data series into n-length groups " +"using ``zip(*[iter(s)]*n)``. This repeats the *same* iterator ``n`` times " +"so that each output tuple has the result of ``n`` calls to the iterator. " +"This has the effect of dividing the input into n-length chunks." +msgstr "" +"Il est garanti que les itérables soient évalués de gauche a droite. Cela " +"rend possible de grouper une séquence de données en groupes de taille *n* " +"via ``zip(*[iter(s)]*n)``. Cela duplique le *même* itérateur ``n`` fois tel " +"que le tuple obtenu contient le résultat de ``n`` appels à l'itérateur. Cela " +"a pour effet de diviser la séquence en morceaux de taille *n*." + +#: ../Doc/library/functions.rst:1639 +msgid "" +":func:`zip` should only be used with unequal length inputs when you don't " +"care about trailing, unmatched values from the longer iterables. If those " +"values are important, use :func:`itertools.zip_longest` instead." +msgstr "" +":func:`zip` ne devrait être utilisée avec des itérables de longueur " +"différente que lorsque les dernières données des itérables les plus longs " +"peuvent être ignorées. Si c'est valeurs sont importantes, utilisez plutôt :" +"func:`itertools.zip_longest`." + +#: ../Doc/library/functions.rst:1643 +msgid "" +":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " +"list::" +msgstr "" +":func:`zip` peut être utilisée conjointement avec l'opérateur ``*`` pour " +"dézipper une liste ::" + +#: ../Doc/library/functions.rst:1664 +msgid "" +"This is an advanced function that is not needed in everyday Python " +"programming, unlike :func:`importlib.import_module`." +msgstr "" +"C'est une fonction avancée qui n'est pas fréquemment nécessaire, " +"contrairement à :func:`importlib.import_module`." + +#: ../Doc/library/functions.rst:1667 +msgid "" +"This function is invoked by the :keyword:`import` statement. It can be " +"replaced (by importing the :mod:`builtins` module and assigning to " +"``builtins.__import__``) in order to change semantics of the :keyword:`!" +"import` statement, but doing so is **strongly** discouraged as it is usually " +"simpler to use import hooks (see :pep:`302`) to attain the same goals and " +"does not cause issues with code which assumes the default import " +"implementation is in use. Direct use of :func:`__import__` is also " +"discouraged in favor of :func:`importlib.import_module`." +msgstr "" +"Cette fonction est invoquée via l'instruction :keyword:`import`. Elle peut " +"être remplacée (en important le module :mod:`builtins` et en y remplaçant " +"``builtins.__import__``) afin de changer la sémantique de l'instruction :" +"keyword:`!import`, mais c'est extrêmement déconseillé car il est plus simple " +"d'utiliser des points d'entrées pour les importations (*import hooks*, voir " +"la :pep:`302`) pour le même résultat sans gêner du code s'attendant à " +"trouver l'implémentation par défaut. L'usage direct de :func:`__import__` " +"est aussi déconseillé en faveur de :func:`importlib.import_module`." + +#: ../Doc/library/functions.rst:1676 +msgid "" +"The function imports the module *name*, potentially using the given " +"*globals* and *locals* to determine how to interpret the name in a package " +"context. The *fromlist* gives the names of objects or submodules that should " +"be imported from the module given by *name*. The standard implementation " +"does not use its *locals* argument at all, and uses its *globals* only to " +"determine the package context of the :keyword:`import` statement." +msgstr "" +"La fonction importe le module *name*, utilisant potentiellement *globals* et " +"*locals* pour déterminer comment interpréter le nom dans le contexte d'un " +"paquet. *fromlist* donne le nom des objets ou sous-modules qui devraient " +"être importés du module *name*. L'implémentation standard n'utilise pas " +"l'argument *locals* et n'utilise *globals* que pour déterminer le contexte " +"du paquet de l'instruction :keyword:`import`." + +#: ../Doc/library/functions.rst:1683 +msgid "" +"*level* specifies whether to use absolute or relative imports. ``0`` (the " +"default) means only perform absolute imports. Positive values for *level* " +"indicate the number of parent directories to search relative to the " +"directory of the module calling :func:`__import__` (see :pep:`328` for the " +"details)." +msgstr "" +"*level* permet de choisir entre importation absolue ou relative. ``0`` (par " +"défaut) implique de n'effectuer que des importations absolues. Une valeur " +"positive indique le nombre de dossiers parents relativement au dossier du " +"module appelant :func:`__import__` (voir la :pep:`328`)." + +#: ../Doc/library/functions.rst:1689 +msgid "" +"When the *name* variable is of the form ``package.module``, normally, the " +"top-level package (the name up till the first dot) is returned, *not* the " +"module named by *name*. However, when a non-empty *fromlist* argument is " +"given, the module named by *name* is returned." +msgstr "" +"Lorsque la variable *name* est de la forme ``package.module``, normalement, " +"le paquet le plus haut (le nom jusqu'au premier point) est donné, et *pas* " +"le module nommé par *name*. Cependant, lorsqu'un argument *fromlist* est " +"fourni, le module nommé par *name* est donné." + +#: ../Doc/library/functions.rst:1694 +msgid "" +"For example, the statement ``import spam`` results in bytecode resembling " +"the following code::" +msgstr "" +"Par exemple, l'instruction ``import spam`` donne un code intermédiaire " +"(*bytecode* en anglais) ressemblant au code suivant ::" + +#: ../Doc/library/functions.rst:1699 +msgid "The statement ``import spam.ham`` results in this call::" +msgstr "L'instruction ``import ham.ham`` appelle ::" + +#: ../Doc/library/functions.rst:1703 +msgid "" +"Note how :func:`__import__` returns the toplevel module here because this is " +"the object that is bound to a name by the :keyword:`import` statement." +msgstr "" +"Notez comment :func:`__import__` donne le module le plus haut ici parce que " +"c'est l'objet lié à un nom par l'instruction :keyword:`import`." + +#: ../Doc/library/functions.rst:1706 +msgid "" +"On the other hand, the statement ``from spam.ham import eggs, sausage as " +"saus`` results in ::" +msgstr "" +"En revanche, l'instruction ``from spam.ham import eggs, sausage as saus`` " +"donne ::" + +#: ../Doc/library/functions.rst:1713 +msgid "" +"Here, the ``spam.ham`` module is returned from :func:`__import__`. From " +"this object, the names to import are retrieved and assigned to their " +"respective names." +msgstr "" +"Ici le module ``spam.ham`` est donné par :func:`__import__`. De cet objet, " +"les noms à importer sont récupérés et assignés à leurs noms respectifs." + +#: ../Doc/library/functions.rst:1717 +msgid "" +"If you simply want to import a module (potentially within a package) by " +"name, use :func:`importlib.import_module`." +msgstr "" +"Si vous voulez simplement importer un module (potentiellement dans un " +"paquet) par son nom, utilisez :func:`importlib.import_module`." + +#: ../Doc/library/functions.rst:1720 +msgid "" +"Negative values for *level* are no longer supported (which also changes the " +"default value to 0)." +msgstr "" +"Des valeurs négatives pour *level* ne sont plus gérées (ce qui change la " +"valeur par défaut pour 0)." + +#: ../Doc/library/functions.rst:1726 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/functions.rst:1727 +msgid "" +"Note that the parser only accepts the Unix-style end of line convention. If " +"you are reading the code from a file, make sure to use newline conversion " +"mode to convert Windows or Mac-style newlines." +msgstr "" +"Notez que l'analyseur n'accepte que des fin de lignes de style Unix. Si vous " +"lisez le code depuis un fichier, assurez-vous d'utiliser la conversion de " +"retours à la ligne pour convertir les fin de lignes Windows et Mac." + +#~ msgid "``'U'``" +#~ msgstr "``'U'``" + +#~ msgid ":term:`universal newlines` mode (deprecated)" +#~ msgstr "mode :term:`universal newlines` (obsolète)" + +#~ msgid "" +#~ "One useful application of the second form of :func:`iter` is to read " +#~ "lines of a file until a certain line is reached. The following example " +#~ "reads a file until the :meth:`~io.TextIOBase.readline` method returns an " +#~ "empty string::" +#~ msgstr "" +#~ "Une autre application utile de la deuxième forme de :func:`iter` est de " +#~ "lire les lignes d'un fichier jusqu'à ce qu'un certaine ligne soit " +#~ "atteinte. L'exemple suivant lis un fichier jusqu'à ce que :meth:`~io." +#~ "TextIOBase.readline` donne une ligne vide ::" + +#~ msgid "" +#~ "Deprecated since version 3.4, will be removed in version 4.0: The 'U' " +#~ "mode." +#~ msgstr "" +#~ "Déprécié depuis la version 3.4, sera supprimé dans la 4.0 : Le mode 'U'." + +#~ msgid "class C:" +#~ msgstr "class C:" + +#~ msgid "builtin_open = staticmethod(open)" +#~ msgstr "builtin_open = staticmethod(open)" + +#~ msgid "Return a class method for *function*." +#~ msgstr "Donne une méthode de classe pour *fonction*." + +#~ msgid "Return a static method for *function*." +#~ msgstr "Donne une méthode statique pour *function*." + +#~ msgid ":func:`bytes`" +#~ msgstr ":func:`bytes`" + +#~ msgid "" +#~ "If x is not a Python :class:`int` object, it has to define an __index__() " +#~ "method that returns an integer." +#~ msgstr "" +#~ "Si ``x`` n'est pas un objet Python :class:`int`, il doit définir une " +#~ "méthode ``__index__`` donnant un entier." diff --git a/library/functools.po b/library/functools.po new file mode 100644 index 000000000..080f4db19 --- /dev/null +++ b/library/functools.po @@ -0,0 +1,620 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: 2019-02-21 17:51+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/functools.rst:2 +msgid "" +":mod:`functools` --- Higher-order functions and operations on callable " +"objects" +msgstr "" +":mod:`functools` --- Fonctions de haut niveau et opérations sur des objets " +"appelables" + +#: ../Doc/library/functools.rst:13 +msgid "**Source code:** :source:`Lib/functools.py`" +msgstr "**Code source :** :source:`Lib/functools.py`" + +#: ../Doc/library/functools.rst:17 +msgid "" +"The :mod:`functools` module is for higher-order functions: functions that " +"act on or return other functions. In general, any callable object can be " +"treated as a function for the purposes of this module." +msgstr "" +"Le module :mod:`functools` est utilisé pour des fonctions de haut niveau : " +"des fonctions qui agissent sur ou revoient d'autres fonctions. En général, " +"tout objet appelable peut être utilisé comme une fonction pour les besoins " +"de ce module." + +#: ../Doc/library/functools.rst:21 +msgid "The :mod:`functools` module defines the following functions:" +msgstr "Le module :mod:`functools` définit les fonctions suivantes :" + +#: ../Doc/library/functools.rst:25 +msgid "" +"Transform an old-style comparison function to a :term:`key function`. Used " +"with tools that accept key functions (such as :func:`sorted`, :func:`min`, :" +"func:`max`, :func:`heapq.nlargest`, :func:`heapq.nsmallest`, :func:" +"`itertools.groupby`). This function is primarily used as a transition tool " +"for programs being converted from Python 2 which supported the use of " +"comparison functions." +msgstr "" +"Transforme une fonction de comparaison à l'ancienne en une :term:`fonction " +"clé`. Utilisé avec des outils qui acceptent des fonctions clef (comme :func:" +"`sorted`, :func:`min`, :func:`max`, :func:`heapq.nlargest`, :func:`heapq." +"nsmallest`, :func:`itertools.groupby`). Cette fonction est destinée au " +"portage de fonctions python 2 utilisant des fonctions de comparaison vers " +"Python 3." + +#: ../Doc/library/functools.rst:32 +msgid "" +"A comparison function is any callable that accept two arguments, compares " +"them, and returns a negative number for less-than, zero for equality, or a " +"positive number for greater-than. A key function is a callable that accepts " +"one argument and returns another value to be used as the sort key." +msgstr "" +"Une fonction de comparaison est un appelable qui prend deux arguments, les " +"compare, et renvoie un nombre négatif pour l'infériorité, zéro pour " +"l'égalité ou un nombre positif pour la supériorité. Une fonction de clé est " +"un appelable qui prend un argument et retourne une autre valeur qui sera " +"utilisée comme clé de tri." + +#: ../Doc/library/functools.rst:37 ../Doc/library/functools.rst:231 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/functools.rst:41 +msgid "" +"For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." +msgstr "" +"Pour des exemples de tris et un bref tutoriel, consultez :ref:`sortinghowto`." + +#: ../Doc/library/functools.rst:48 +msgid "" +"Decorator to wrap a function with a memoizing callable that saves up to the " +"*maxsize* most recent calls. It can save time when an expensive or I/O " +"bound function is periodically called with the same arguments." +msgstr "" +"Décorateur qui englobe une fonction avec un appelable mémoïsant qui " +"enregistre jusqu'à *maxsize* appels récents. Cela peut gagner du temps quand " +"une fonction coûteuse en ressources est souvent appelée avec les mêmes " +"arguments." + +#: ../Doc/library/functools.rst:52 +msgid "" +"Since a dictionary is used to cache results, the positional and keyword " +"arguments to the function must be hashable." +msgstr "" +"Comme un dictionnaire est utilisé pour mettre en cache les résultats, les " +"arguments positionnels et nommés de la fonction doivent être hachables." + +#: ../Doc/library/functools.rst:55 +msgid "" +"Distinct argument patterns may be considered to be distinct calls with " +"separate cache entries. For example, `f(a=1, b=2)` and `f(b=2, a=1)` differ " +"in their keyword argument order and may have two separate cache entries." +msgstr "" +"Des agencements différents des arguments peuvent être considérés comme des " +"appels différents avec chacun leur propre entrée dans le cache. Par exemple, " +"`f(a=1, b=2)` et `f(b=2, a=1)` n'ont pas leurs arguments dans le même ordre, " +"ce qui peut conduire à des entrées séparées dans le cache." + +#: ../Doc/library/functools.rst:60 +msgid "" +"If *maxsize* is set to ``None``, the LRU feature is disabled and the cache " +"can grow without bound. The LRU feature performs best when *maxsize* is a " +"power-of-two." +msgstr "" +"Si *maxsize* est à ``None``, la fonctionnalité LRU est désactivée et le " +"cache peut grossir sans limite. La fonctionnalité LRU fonctionne mieux " +"quand *maxsize* est une puissance de deux." + +#: ../Doc/library/functools.rst:64 +msgid "" +"If *typed* is set to true, function arguments of different types will be " +"cached separately. For example, ``f(3)`` and ``f(3.0)`` will be treated as " +"distinct calls with distinct results." +msgstr "" +"Si *typed* est vrai, les arguments de différents types seront mis en cache " +"séparément. Par exemple, ``f(3)`` et ``f(3.0)`` seront considérés comme des " +"appels distincts avec des résultats distincts." + +#: ../Doc/library/functools.rst:68 +msgid "" +"To help measure the effectiveness of the cache and tune the *maxsize* " +"parameter, the wrapped function is instrumented with a :func:`cache_info` " +"function that returns a :term:`named tuple` showing *hits*, *misses*, " +"*maxsize* and *currsize*. In a multi-threaded environment, the hits and " +"misses are approximate." +msgstr "" +"Pour aider à mesurer l'efficacité du cache et ajuster le paramètre " +"*maxsize*, la fonction englobée est surveillée avec une fonction :func:" +"`cache_info` qui renvoie un :term:`named tuple` affichant les *hits*, " +"*misses*, *maxsize* et *currsize*. Dans un environnement *multithread*, les " +"succès et échecs d'appel du cache sont approximatifs." + +#: ../Doc/library/functools.rst:74 +msgid "" +"The decorator also provides a :func:`cache_clear` function for clearing or " +"invalidating the cache." +msgstr "" +"Le décorateur fournit également une fonction :func:`cache_clear` pour vider " +"ou invalider le cache." + +#: ../Doc/library/functools.rst:77 +msgid "" +"The original underlying function is accessible through the :attr:" +"`__wrapped__` attribute. This is useful for introspection, for bypassing " +"the cache, or for rewrapping the function with a different cache." +msgstr "" +"La fonction sous-jacente originale est accessible à travers l'attribut :attr:" +"`__wrapped__`. Ceci est utile pour l'introspection, pour outrepasser le " +"cache, ou pour ré-englober la fonction avec un cache différent." + +#: ../Doc/library/functools.rst:81 +msgid "" +"An `LRU (least recently used) cache `_ works best when the most recent calls are the " +"best predictors of upcoming calls (for example, the most popular articles on " +"a news server tend to change each day). The cache's size limit assures that " +"the cache does not grow without bound on long-running processes such as web " +"servers." +msgstr "" +"Un `cache LRU (*least recently used*) `_ " +"fonctionne très bien lorsque les appels récents sont les prochains appels " +"les plus probables (par exemple, les articles les plus lus d'un serveur " +"d'actualités ont tendance à ne changer que d'un jour à l'autre). La taille " +"limite du cache permet de s'assurer que le cache ne grossisse pas sans " +"limite sur les processus longs comme les serveurs web." + +#: ../Doc/library/functools.rst:88 +msgid "" +"In general, the LRU cache should only be used when you want to reuse " +"previously computed values. Accordingly, it doesn't make sense to cache " +"functions with side-effects, functions that need to create distinct mutable " +"objects on each call, or impure functions such as time() or random()." +msgstr "" +"En général, le cache LRU ne doit être utilisé que quand vous voulez ré-" +"utiliser les valeurs déjà calculées. Ainsi, cela n'a pas de sens de mettre " +"un cache sur une fonction qui a des effets de bord, qui doit créer un objet " +"mutable distinct à chaque appel ou des fonctions *impures* telles que ``!" +"time()`` ou ``!random()``." + +#: ../Doc/library/functools.rst:93 +msgid "Example of an LRU cache for static web content::" +msgstr "Exemple d'un cache LRU pour du contenu web statique ::" + +#: ../Doc/library/functools.rst:112 +msgid "" +"Example of efficiently computing `Fibonacci numbers `_ using a cache to implement a `dynamic " +"programming `_ technique::" +msgstr "" +"Exemple de calcul efficace de `la suite de Fibonacci `_ en utilisant un cache pour implémenter la " +"technique de `programmation dynamique `_ ::" + +#: ../Doc/library/functools.rst:132 +msgid "Added the *typed* option." +msgstr "L'option *typed* a été ajoutée." + +#: ../Doc/library/functools.rst:137 +msgid "" +"Given a class defining one or more rich comparison ordering methods, this " +"class decorator supplies the rest. This simplifies the effort involved in " +"specifying all of the possible rich comparison operations:" +msgstr "" +"A partir d'une classe définissant une ou plusieurs méthodes de comparaison " +"riches, ce décorateur de classe fournit le reste. Ceci simplifie l'effort à " +"fournir dans la spécification de toutes les opérations de comparaison riche :" + +#: ../Doc/library/functools.rst:141 +msgid "" +"The class must define one of :meth:`__lt__`, :meth:`__le__`, :meth:`__gt__`, " +"or :meth:`__ge__`. In addition, the class should supply an :meth:`__eq__` " +"method." +msgstr "" +"La classe doit définir au moins une de ces méthodes :meth:`__lt__`, :meth:" +"`__le__`, :meth:`__gt__`, or :meth:`__ge__`. De plus, la classe doit fournir " +"une méthode :meth:`__eq__`." + +#: ../Doc/library/functools.rst:145 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/library/functools.rst:165 +msgid "" +"While this decorator makes it easy to create well behaved totally ordered " +"types, it *does* come at the cost of slower execution and more complex stack " +"traces for the derived comparison methods. If performance benchmarking " +"indicates this is a bottleneck for a given application, implementing all six " +"rich comparison methods instead is likely to provide an easy speed boost." +msgstr "" +"Même si ce décorateur permet de créer des types ordonnables facilement, cela " +"vient avec un *coût* d'exécution et des traces d'exécution complexes pour " +"les méthodes de comparaison dérivées. Si des tests de performances le " +"révèlent comme un goulot d'étranglement, l'implémentation manuelle des six " +"méthodes de comparaison riches résoudra normalement vos problèmes de " +"rapidité." + +#: ../Doc/library/functools.rst:174 +msgid "" +"Returning NotImplemented from the underlying comparison function for " +"unrecognised types is now supported." +msgstr "" +"Retourner NotImplemented dans les fonction de comparaison sous-jacentes pour " +"les types non reconnus est maintenant supporté." + +#: ../Doc/library/functools.rst:180 +msgid "" +"Return a new :ref:`partial object` which when called will " +"behave like *func* called with the positional arguments *args* and keyword " +"arguments *keywords*. If more arguments are supplied to the call, they are " +"appended to *args*. If additional keyword arguments are supplied, they " +"extend and override *keywords*. Roughly equivalent to::" +msgstr "" +"Retourne un nouvel :ref:`objet partiel ` qui, quand il est " +"appelé, fonctionne comme *func* appelée avec les arguments positionnels " +"*args* et les arguments nommés *keywords*. Si plus d'arguments sont fournis " +"à l'appel, ils sont ajoutés à *args*. Si plus d'arguments nommés sont " +"fournis, ils étendent et surchargent *keywords*. À peu près équivalent à ::" + +#: ../Doc/library/functools.rst:197 +msgid "" +"The :func:`partial` is used for partial function application which \"freezes" +"\" some portion of a function's arguments and/or keywords resulting in a new " +"object with a simplified signature. For example, :func:`partial` can be " +"used to create a callable that behaves like the :func:`int` function where " +"the *base* argument defaults to two:" +msgstr "" +":func:`partial` est utilisé pour une application de fonction partielle qui " +"\"gèle\" une portion des arguments et/ou mots-clés d'une fonction donnant un " +"nouvel objet avec une signature simplifiée. Par exemple, :func:`partial` " +"peut être utilisé pour créer un appelable qui se comporte comme la fonction :" +"func:`int` ou l'argument *base* est deux par défaut :" + +#: ../Doc/library/functools.rst:212 +msgid "" +"Return a new :class:`partialmethod` descriptor which behaves like :class:" +"`partial` except that it is designed to be used as a method definition " +"rather than being directly callable." +msgstr "" +"Retourne un nouveau descripteur :class:`partialmethod` qui se comporte " +"comme :class:`partial` sauf qu'il est fait pour être utilisé comme une " +"définition de méthode plutôt que d'être appelé directement." + +#: ../Doc/library/functools.rst:216 +msgid "" +"*func* must be a :term:`descriptor` or a callable (objects which are both, " +"like normal functions, are handled as descriptors)." +msgstr "" +"*func* doit être un :term:`descriptor` ou un appelable (les objets qui sont " +"les deux, comme les fonction normales, sont gérés comme des descripteurs)." + +#: ../Doc/library/functools.rst:219 +msgid "" +"When *func* is a descriptor (such as a normal Python function, :func:" +"`classmethod`, :func:`staticmethod`, :func:`abstractmethod` or another " +"instance of :class:`partialmethod`), calls to ``__get__`` are delegated to " +"the underlying descriptor, and an appropriate :ref:`partial object` returned as the result." +msgstr "" +"Quand *func* est un descripteur (comme une fonction Python normale, :func:" +"`classmethod`, :func:`staticmethod`, :func:`abstractmethod` ou une autre " +"instance de :class:`partialmethod`), les appels à ``__get__`` sont délégués " +"au descripteur sous-jacent, et un :ref:`objet partiel ` " +"approprié est renvoyé comme résultat." + +#: ../Doc/library/functools.rst:225 +msgid "" +"When *func* is a non-descriptor callable, an appropriate bound method is " +"created dynamically. This behaves like a normal Python function when used as " +"a method: the *self* argument will be inserted as the first positional " +"argument, even before the *args* and *keywords* supplied to the :class:" +"`partialmethod` constructor." +msgstr "" +"Quand *func* est un appelable non-descripteur, une méthode liée appropriée " +"est crée dynamiquement. Elle se comporte comme une fonction Python normale " +"quand elle est utilisée comme méthode : l'argument *self* sera inséré comme " +"premier argument positionnel, avant les *args* et *keywords* fournis au " +"constructeur :class:`partialmethod`." + +#: ../Doc/library/functools.rst:256 +msgid "" +"Apply *function* of two arguments cumulatively to the items of *sequence*, " +"from left to right, so as to reduce the sequence to a single value. For " +"example, ``reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])`` calculates " +"``((((1+2)+3)+4)+5)``. The left argument, *x*, is the accumulated value and " +"the right argument, *y*, is the update value from the *sequence*. If the " +"optional *initializer* is present, it is placed before the items of the " +"sequence in the calculation, and serves as a default when the sequence is " +"empty. If *initializer* is not given and *sequence* contains only one item, " +"the first item is returned." +msgstr "" +"Applique *function* avec deux arguments cumulativement aux éléments de " +"*sequence*, de gauche à droite, pour réduire la séquence à une valeur " +"unique. Par exemple, ``reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])`` calcule " +"``((((1+2)+3)+4)+5)``. Le premier argument, *x*, et la valeur de cumul et le " +"deuxième, *y*, est la valeur de mise à jour depuis *sequence*. Si " +"l'argument optionnel *initializer* est présent, il est placé avant les " +"éléments de la séquence dans le calcul, et sert de valeur par défaut quand " +"la séquence est vide. Si *initializer* n'est pas renseigné et que " +"*sequence* ne contient qu'un élément, le premier élément est retourné." + +#: ../Doc/library/functools.rst:265 +msgid "Roughly equivalent to::" +msgstr "Sensiblement équivalent à ::" + +#: ../Doc/library/functools.rst:280 +msgid "" +"Transform a function into a :term:`single-dispatch ` :term:" +"`generic function`." +msgstr "" +"Transforme une fonction en une :term:`fonction générique ` :term:`single-dispatch `." + +#: ../Doc/library/functools.rst:283 +msgid "" +"To define a generic function, decorate it with the ``@singledispatch`` " +"decorator. Note that the dispatch happens on the type of the first argument, " +"create your function accordingly::" +msgstr "" +"Pour définir une fonction générique, il faut la décorer avec le décorateur " +"``@singledispatch``. Noter que la distribution est effectuée sur le type du " +"premier argument, donc la fonction doit être créée en conséquence ::" + +#: ../Doc/library/functools.rst:294 +msgid "" +"To add overloaded implementations to the function, use the :func:`register` " +"attribute of the generic function. It is a decorator. For functions " +"annotated with types, the decorator will infer the type of the first " +"argument automatically::" +msgstr "" +"Pour ajouter des surcharges d'implémentation à la fonction, utiliser " +"l'attribut :func:`register` de la fonction générique. C'est un décorateur. " +"Pour les fonctions annotées avec des types, le décorateur infère le type du " +"premier argument automatiquement ::" + +#: ../Doc/library/functools.rst:312 +msgid "" +"For code which doesn't use type annotations, the appropriate type argument " +"can be passed explicitly to the decorator itself::" +msgstr "" +"Pour le code qui n’utilise pas les indications de type, le type souhaité " +"peut être passé explicitement en argument au décorateur ::" + +#: ../Doc/library/functools.rst:323 +msgid "" +"To enable registering lambdas and pre-existing functions, the :func:" +"`register` attribute can be used in a functional form::" +msgstr "" +"Pour permettre l'enregistrement de *lambdas* et de fonctions pré-existantes, " +"l'attribut :func:`register` peut être utilisé sous forme fonctionnelle ::" + +#: ../Doc/library/functools.rst:331 +msgid "" +"The :func:`register` attribute returns the undecorated function which " +"enables decorator stacking, pickling, as well as creating unit tests for " +"each variant independently::" +msgstr "" +"L'attribut :func:`register` renvoie la fonction non décorée ce qui permet " +"d'empiler les décorateurs, la sérialisation, et la création de tests " +"unitaires pour chaque variante indépendamment ::" + +#: ../Doc/library/functools.rst:345 +msgid "" +"When called, the generic function dispatches on the type of the first " +"argument::" +msgstr "" +"Quand elle est appelée, la fonction générique distribue sur le type du " +"premier argument ::" + +#: ../Doc/library/functools.rst:365 +msgid "" +"Where there is no registered implementation for a specific type, its method " +"resolution order is used to find a more generic implementation. The original " +"function decorated with ``@singledispatch`` is registered for the base " +"``object`` type, which means it is used if no better implementation is found." +msgstr "" +"Quand il n'y a pas d'implémentation enregistrée pour un type spécifique, son " +"ordre de résolution de méthode est utilisé pour trouver une implémentation " +"plus générique. La fonction originale est décorée avec ``@singledispatch`` " +"est enregistrée pour le type d'``object``, et elle sera utilisée si aucune " +"implémentation n'est trouvée." + +#: ../Doc/library/functools.rst:371 +msgid "" +"To check which implementation will the generic function choose for a given " +"type, use the ``dispatch()`` attribute::" +msgstr "" +"Pour vérifier quelle implémentation la fonction générique choisira pour un " +"type donné, utiliser l'attribut ``dispatch()`` ::" + +#: ../Doc/library/functools.rst:379 +msgid "" +"To access all registered implementations, use the read-only ``registry`` " +"attribute::" +msgstr "" +"Pour accéder à toutes les implémentations enregistrées, utiliser l'attribut " +"en lecture seule ``registry`` ::" + +#: ../Doc/library/functools.rst:393 +msgid "The :func:`register` attribute supports using type annotations." +msgstr "" +"L’attribut :func:`register` gère l’utilisation des indications de type." + +#: ../Doc/library/functools.rst:399 +msgid "" +"Update a *wrapper* function to look like the *wrapped* function. The " +"optional arguments are tuples to specify which attributes of the original " +"function are assigned directly to the matching attributes on the wrapper " +"function and which attributes of the wrapper function are updated with the " +"corresponding attributes from the original function. The default values for " +"these arguments are the module level constants ``WRAPPER_ASSIGNMENTS`` " +"(which assigns to the wrapper function's ``__module__``, ``__name__``, " +"``__qualname__``, ``__annotations__`` and ``__doc__``, the documentation " +"string) and ``WRAPPER_UPDATES`` (which updates the wrapper function's " +"``__dict__``, i.e. the instance dictionary)." +msgstr "" +"Met à jour la fonction *wrapper* pour ressembler à la fonction *wrapped*. " +"Les arguments optionnels sont des tuples pour spécifier quels attributs de " +"la fonction originale sont assignés directement aux attributs correspondants " +"sur la fonction englobante et quels attributs de la fonction englobante sont " +"mis à jour avec les attributs de la fonction originale. Les valeurs par " +"défaut de ces arguments sont les constantes au niveau du module " +"``WRAPPER_ASSIGNMENTS`` (qui assigne ``__module__``, ``__name__``, " +"``__qualname__``, ``__annotations__`` et ``__doc__``, la chaîne de " +"documentation, depuis la fonction englobante) et ``WRAPPER_UPDATES`` (qui " +"met à jour le ``__dict__`` de la fonction englobante, c'est-à-dire le " +"dictionnaire de l'instance)." + +#: ../Doc/library/functools.rst:409 +msgid "" +"To allow access to the original function for introspection and other " +"purposes (e.g. bypassing a caching decorator such as :func:`lru_cache`), " +"this function automatically adds a ``__wrapped__`` attribute to the wrapper " +"that refers to the function being wrapped." +msgstr "" +"Pour autoriser l'accès à la fonction originale pour l'introspection ou à " +"d'autres fins (par ex. outrepasser l'accès à un décorateur de cache comme :" +"func:`lru_cache`), cette fonction ajoute automatiquement un attribut " +"``__wrapped__`` qui référence la fonction englobée." + +#: ../Doc/library/functools.rst:414 +msgid "" +"The main intended use for this function is in :term:`decorator` functions " +"which wrap the decorated function and return the wrapper. If the wrapper " +"function is not updated, the metadata of the returned function will reflect " +"the wrapper definition rather than the original function definition, which " +"is typically less than helpful." +msgstr "" +"La principale utilisation de cette fonction est dans les :term:`décorateurs " +"` qui renvoient une nouvelle fonction. Si la fonction crée n'est " +"pas mise à jour, ses métadonnées refléteront sa définition dans le " +"décorateur, au lieu de la définition originale, métadonnées souvent bien " +"moins utiles." + +#: ../Doc/library/functools.rst:420 +msgid "" +":func:`update_wrapper` may be used with callables other than functions. Any " +"attributes named in *assigned* or *updated* that are missing from the object " +"being wrapped are ignored (i.e. this function will not attempt to set them " +"on the wrapper function). :exc:`AttributeError` is still raised if the " +"wrapper function itself is missing any attributes named in *updated*." +msgstr "" +":func:`update_wrapper` peut être utilisé avec des appelables autres que des " +"fonctions. Tout attribut défini dans *assigned* ou *updated* qui ne sont pas " +"l'objet englobé sont ignorés (cette fonction n'essaiera pas de les définir " +"dans la fonction englobante). :exc:`AttributeError` est toujours levée si le " +"fonction englobante elle même a des attributs non existants dans *updated*." + +#: ../Doc/library/functools.rst:426 +msgid "Automatic addition of the ``__wrapped__`` attribute." +msgstr "Ajout automatique de l'attribut ``__wrapped__``." + +#: ../Doc/library/functools.rst:429 +msgid "Copying of the ``__annotations__`` attribute by default." +msgstr "Copie de l'attribut ``__annotations__`` par défaut." + +#: ../Doc/library/functools.rst:432 +msgid "Missing attributes no longer trigger an :exc:`AttributeError`." +msgstr "" +"Les attributs manquants ne lèvent plus d'exception :exc:`AttributeError`." + +#: ../Doc/library/functools.rst:435 +msgid "" +"The ``__wrapped__`` attribute now always refers to the wrapped function, " +"even if that function defined a ``__wrapped__`` attribute. (see :issue:" +"`17482`)" +msgstr "" +"L'attribut ``__wrapped__`` renvoie toujours la fonction englobée, même si " +"cette fonction définit un attribut ``__wrapped__``. (voir :issue:`17482`)" + +#: ../Doc/library/functools.rst:443 +msgid "" +"This is a convenience function for invoking :func:`update_wrapper` as a " +"function decorator when defining a wrapper function. It is equivalent to " +"``partial(update_wrapper, wrapped=wrapped, assigned=assigned, " +"updated=updated)``. For example::" +msgstr "" +"Ceci est une fonction d'aide pour appeler :func:`update_wrapper` comme " +"décorateur de fonction lors de la définition d'une fonction englobante. " +"C'est équivalent à ``partial(update_wrapper, wrapped=wrapped, " +"assigned=assigned, updated=updated)``. Par exemple ::" + +#: ../Doc/library/functools.rst:469 +msgid "" +"Without the use of this decorator factory, the name of the example function " +"would have been ``'wrapper'``, and the docstring of the original :func:" +"`example` would have been lost." +msgstr "" +"Sans l'utilisation de cette usine à décorateur, le nom de la fonction " +"d'exemple aurait été ``'wrapper'``, et la chaîne de documentation de la " +"fonction :func:`example` originale aurait été perdue." + +#: ../Doc/library/functools.rst:477 +msgid ":class:`partial` Objects" +msgstr "Objets :class:`partial`" + +#: ../Doc/library/functools.rst:479 +msgid "" +":class:`partial` objects are callable objects created by :func:`partial`. " +"They have three read-only attributes:" +msgstr "" +"Les objets :class:`partial` sont des objets appelables créés par :func:" +"`partial`. Ils ont trois attributs en lecture seule :" + +#: ../Doc/library/functools.rst:485 +msgid "" +"A callable object or function. Calls to the :class:`partial` object will be " +"forwarded to :attr:`func` with new arguments and keywords." +msgstr "" +"Un objet ou une fonction appelable. Les appels à l'objet :class:`partial` " +"seront transmis à :attr:`func` avec les nouveaux arguments et mots-clés." + +#: ../Doc/library/functools.rst:491 +msgid "" +"The leftmost positional arguments that will be prepended to the positional " +"arguments provided to a :class:`partial` object call." +msgstr "" +"Les arguments positionnels qui seront ajoutés avant les arguments fournis " +"lors de l'appel d'un objet :class:`partial`." + +#: ../Doc/library/functools.rst:497 +msgid "" +"The keyword arguments that will be supplied when the :class:`partial` object " +"is called." +msgstr "" +"Les arguments nommés qui seront fournis quand l'objet :class:`partial` est " +"appelé." + +#: ../Doc/library/functools.rst:500 +msgid "" +":class:`partial` objects are like :class:`function` objects in that they are " +"callable, weak referencable, and can have attributes. There are some " +"important differences. For instance, the :attr:`~definition.__name__` and :" +"attr:`__doc__` attributes are not created automatically. Also, :class:" +"`partial` objects defined in classes behave like static methods and do not " +"transform into bound methods during instance attribute look-up." +msgstr "" +"Les objets :class:`partial` sont comme des objets :class:`function` de par " +"le fait qu'il sont appelables, référençables, et peuvent avoir des " +"attributs. Il y a cependant des différences importantes. Par exemple, les " +"attributs :attr:`~definition.__name__` et :attr:`__doc__` ne sont pas créés " +"automatiquement. De plus, les objets :class:`partial` définis dans les " +"classes se comportent comme des méthodes statiques et ne se transforment pas " +"en méthodes liées durant la recherche d'attributs dans l'instance." diff --git a/library/gc.po b/library/gc.po new file mode 100644 index 000000000..ad74be279 --- /dev/null +++ b/library/gc.po @@ -0,0 +1,340 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/gc.rst:2 +msgid ":mod:`gc` --- Garbage Collector interface" +msgstr "" + +#: ../Doc/library/gc.rst:12 +msgid "" +"This module provides an interface to the optional garbage collector. It " +"provides the ability to disable the collector, tune the collection " +"frequency, and set debugging options. It also provides access to " +"unreachable objects that the collector found but cannot free. Since the " +"collector supplements the reference counting already used in Python, you can " +"disable the collector if you are sure your program does not create reference " +"cycles. Automatic collection can be disabled by calling ``gc.disable()``. " +"To debug a leaking program call ``gc.set_debug(gc.DEBUG_LEAK)``. Notice that " +"this includes ``gc.DEBUG_SAVEALL``, causing garbage-collected objects to be " +"saved in gc.garbage for inspection." +msgstr "" + +#: ../Doc/library/gc.rst:23 +msgid "The :mod:`gc` module provides the following functions:" +msgstr "" + +#: ../Doc/library/gc.rst:28 +msgid "Enable automatic garbage collection." +msgstr "" + +#: ../Doc/library/gc.rst:33 +msgid "Disable automatic garbage collection." +msgstr "" + +#: ../Doc/library/gc.rst:38 +msgid "Returns true if automatic collection is enabled." +msgstr "" + +#: ../Doc/library/gc.rst:43 +msgid "" +"With no arguments, run a full collection. The optional argument " +"*generation* may be an integer specifying which generation to collect (from " +"0 to 2). A :exc:`ValueError` is raised if the generation number is " +"invalid. The number of unreachable objects found is returned." +msgstr "" + +#: ../Doc/library/gc.rst:48 +msgid "" +"The free lists maintained for a number of built-in types are cleared " +"whenever a full collection or collection of the highest generation (2) is " +"run. Not all items in some free lists may be freed due to the particular " +"implementation, in particular :class:`float`." +msgstr "" + +#: ../Doc/library/gc.rst:56 +msgid "" +"Set the garbage collection debugging flags. Debugging information will be " +"written to ``sys.stderr``. See below for a list of debugging flags which " +"can be combined using bit operations to control debugging." +msgstr "" + +#: ../Doc/library/gc.rst:63 +msgid "Return the debugging flags currently set." +msgstr "" + +#: ../Doc/library/gc.rst:68 +msgid "" +"Returns a list of all objects tracked by the collector, excluding the list " +"returned." +msgstr "" + +#: ../Doc/library/gc.rst:74 +msgid "" +"Return a list of three per-generation dictionaries containing collection " +"statistics since interpreter start. The number of keys may change in the " +"future, but currently each dictionary will contain the following items:" +msgstr "" + +#: ../Doc/library/gc.rst:79 +msgid "``collections`` is the number of times this generation was collected;" +msgstr "" + +#: ../Doc/library/gc.rst:81 +msgid "" +"``collected`` is the total number of objects collected inside this " +"generation;" +msgstr "" + +#: ../Doc/library/gc.rst:84 +msgid "" +"``uncollectable`` is the total number of objects which were found to be " +"uncollectable (and were therefore moved to the :data:`garbage` list) inside " +"this generation." +msgstr "" + +#: ../Doc/library/gc.rst:93 +msgid "" +"Set the garbage collection thresholds (the collection frequency). Setting " +"*threshold0* to zero disables collection." +msgstr "" + +#: ../Doc/library/gc.rst:96 +msgid "" +"The GC classifies objects into three generations depending on how many " +"collection sweeps they have survived. New objects are placed in the " +"youngest generation (generation ``0``). If an object survives a collection " +"it is moved into the next older generation. Since generation ``2`` is the " +"oldest generation, objects in that generation remain there after a " +"collection. In order to decide when to run, the collector keeps track of " +"the number object allocations and deallocations since the last collection. " +"When the number of allocations minus the number of deallocations exceeds " +"*threshold0*, collection starts. Initially only generation ``0`` is " +"examined. If generation ``0`` has been examined more than *threshold1* " +"times since generation ``1`` has been examined, then generation ``1`` is " +"examined as well. Similarly, *threshold2* controls the number of " +"collections of generation ``1`` before collecting generation ``2``." +msgstr "" + +#: ../Doc/library/gc.rst:113 +msgid "" +"Return the current collection counts as a tuple of ``(count0, count1, " +"count2)``." +msgstr "" + +#: ../Doc/library/gc.rst:119 +msgid "" +"Return the current collection thresholds as a tuple of ``(threshold0, " +"threshold1, threshold2)``." +msgstr "" + +#: ../Doc/library/gc.rst:125 +msgid "" +"Return the list of objects that directly refer to any of objs. This function " +"will only locate those containers which support garbage collection; " +"extension types which do refer to other objects but do not support garbage " +"collection will not be found." +msgstr "" + +#: ../Doc/library/gc.rst:130 +msgid "" +"Note that objects which have already been dereferenced, but which live in " +"cycles and have not yet been collected by the garbage collector can be " +"listed among the resulting referrers. To get only currently live objects, " +"call :func:`collect` before calling :func:`get_referrers`." +msgstr "" + +#: ../Doc/library/gc.rst:135 +msgid "" +"Care must be taken when using objects returned by :func:`get_referrers` " +"because some of them could still be under construction and hence in a " +"temporarily invalid state. Avoid using :func:`get_referrers` for any purpose " +"other than debugging." +msgstr "" + +#: ../Doc/library/gc.rst:143 +msgid "" +"Return a list of objects directly referred to by any of the arguments. The " +"referents returned are those objects visited by the arguments' C-level :c:" +"member:`~PyTypeObject.tp_traverse` methods (if any), and may not be all " +"objects actually directly reachable. :c:member:`~PyTypeObject.tp_traverse` " +"methods are supported only by objects that support garbage collection, and " +"are only required to visit objects that may be involved in a cycle. So, for " +"example, if an integer is directly reachable from an argument, that integer " +"object may or may not appear in the result list." +msgstr "" + +#: ../Doc/library/gc.rst:154 +msgid "" +"Returns ``True`` if the object is currently tracked by the garbage " +"collector, ``False`` otherwise. As a general rule, instances of atomic " +"types aren't tracked and instances of non-atomic types (containers, user-" +"defined objects...) are. However, some type-specific optimizations can be " +"present in order to suppress the garbage collector footprint of simple " +"instances (e.g. dicts containing only atomic keys and values)::" +msgstr "" + +#: ../Doc/library/gc.rst:179 +msgid "" +"Freeze all the objects tracked by gc - move them to a permanent generation " +"and ignore all the future collections. This can be used before a POSIX " +"fork() call to make the gc copy-on-write friendly or to speed up collection. " +"Also collection before a POSIX fork() call may free pages for future " +"allocation which can cause copy-on-write too so it's advised to disable gc " +"in master process and freeze before fork and enable gc in child process." +msgstr "" + +#: ../Doc/library/gc.rst:191 +msgid "" +"Unfreeze the objects in the permanent generation, put them back into the " +"oldest generation." +msgstr "" + +#: ../Doc/library/gc.rst:199 +msgid "Return the number of objects in the permanent generation." +msgstr "" + +#: ../Doc/library/gc.rst:204 +msgid "" +"The following variables are provided for read-only access (you can mutate " +"the values but should not rebind them):" +msgstr "" + +#: ../Doc/library/gc.rst:209 +msgid "" +"A list of objects which the collector found to be unreachable but could not " +"be freed (uncollectable objects). Starting with Python 3.4, this list " +"should be empty most of the time, except when using instances of C extension " +"types with a non-NULL ``tp_del`` slot." +msgstr "" + +#: ../Doc/library/gc.rst:214 +msgid "" +"If :const:`DEBUG_SAVEALL` is set, then all unreachable objects will be added " +"to this list rather than freed." +msgstr "" + +#: ../Doc/library/gc.rst:217 +msgid "" +"If this list is non-empty at :term:`interpreter shutdown`, a :exc:" +"`ResourceWarning` is emitted, which is silent by default. If :const:" +"`DEBUG_UNCOLLECTABLE` is set, in addition all uncollectable objects are " +"printed." +msgstr "" + +#: ../Doc/library/gc.rst:223 +msgid "" +"Following :pep:`442`, objects with a :meth:`__del__` method don't end up in :" +"attr:`gc.garbage` anymore." +msgstr "" + +#: ../Doc/library/gc.rst:229 +msgid "" +"A list of callbacks that will be invoked by the garbage collector before and " +"after collection. The callbacks will be called with two arguments, *phase* " +"and *info*." +msgstr "" + +#: ../Doc/library/gc.rst:233 +msgid "*phase* can be one of two values:" +msgstr "" + +#: ../Doc/library/gc.rst:235 +msgid "\"start\": The garbage collection is about to start." +msgstr "" + +#: ../Doc/library/gc.rst:237 +msgid "\"stop\": The garbage collection has finished." +msgstr "" + +#: ../Doc/library/gc.rst:239 +msgid "" +"*info* is a dict providing more information for the callback. The following " +"keys are currently defined:" +msgstr "" + +#: ../Doc/library/gc.rst:242 +msgid "\"generation\": The oldest generation being collected." +msgstr "" + +#: ../Doc/library/gc.rst:244 +msgid "" +"\"collected\": When *phase* is \"stop\", the number of objects successfully " +"collected." +msgstr "" + +#: ../Doc/library/gc.rst:247 +msgid "" +"\"uncollectable\": When *phase* is \"stop\", the number of objects that " +"could not be collected and were put in :data:`garbage`." +msgstr "" + +#: ../Doc/library/gc.rst:250 +msgid "" +"Applications can add their own callbacks to this list. The primary use " +"cases are:" +msgstr "" + +#: ../Doc/library/gc.rst:253 +msgid "" +"Gathering statistics about garbage collection, such as how often various " +"generations are collected, and how long the collection takes." +msgstr "" + +#: ../Doc/library/gc.rst:257 +msgid "" +"Allowing applications to identify and clear their own uncollectable types " +"when they appear in :data:`garbage`." +msgstr "" + +#: ../Doc/library/gc.rst:263 +msgid "The following constants are provided for use with :func:`set_debug`:" +msgstr "" + +#: ../Doc/library/gc.rst:268 +msgid "" +"Print statistics during collection. This information can be useful when " +"tuning the collection frequency." +msgstr "" + +#: ../Doc/library/gc.rst:274 +msgid "Print information on collectable objects found." +msgstr "" + +#: ../Doc/library/gc.rst:279 +msgid "" +"Print information of uncollectable objects found (objects which are not " +"reachable but cannot be freed by the collector). These objects will be " +"added to the ``garbage`` list." +msgstr "" + +#: ../Doc/library/gc.rst:283 +msgid "" +"Also print the contents of the :data:`garbage` list at :term:`interpreter " +"shutdown`, if it isn't empty." +msgstr "" + +#: ../Doc/library/gc.rst:289 +msgid "" +"When set, all unreachable objects found will be appended to *garbage* rather " +"than being freed. This can be useful for debugging a leaking program." +msgstr "" + +#: ../Doc/library/gc.rst:295 +msgid "" +"The debugging flags necessary for the collector to print information about a " +"leaking program (equal to ``DEBUG_COLLECTABLE | DEBUG_UNCOLLECTABLE | " +"DEBUG_SAVEALL``)." +msgstr "" diff --git a/library/getopt.po b/library/getopt.po new file mode 100644 index 000000000..cfd98267a --- /dev/null +++ b/library/getopt.po @@ -0,0 +1,213 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"PO-Revision-Date: 2019-10-09 17:26+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" + +#: ../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`" +msgstr "**Code source :** :source:`Lib/getopt.py`" + +#: ../Doc/library/getopt.rst:12 +msgid "" +"The :mod:`getopt` module is a parser for command line options whose API is " +"designed to be familiar to users of the C :c:func:`getopt` function. Users " +"who are unfamiliar with the C :c:func:`getopt` function or who would like to " +"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 "" +"This module helps scripts to parse the command line arguments in ``sys." +"argv``. It supports the same conventions as the Unix :c:func:`getopt` " +"function (including the special meanings of arguments of the form '``-``' " +"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 "Ce module fournit deux fonctions et une exception :" + +#: ../Doc/library/getopt.rst:32 +msgid "" +"Parses command line options and parameter list. *args* is the argument list " +"to be parsed, without the leading reference to the running program. " +"Typically, this means ``sys.argv[1:]``. *shortopts* is the string of option " +"letters that the script wants to recognize, with options that require an " +"argument followed by a colon (``':'``; i.e., the same format that Unix :c:" +"func:`getopt` uses)." +msgstr "" +"Analyse les options de ligne de commande et la liste des paramètres. *args* " +"est la liste d’arguments à analyser, sans la référence principale au " +"programme en cours d’exécution. En général, cela signifie ``sys.argv[1:]`` " +"(donc que le premier argument contenant le nom du programme n’est pas dans " +"la liste). *shortopts* est la chaîne de lettres d’options que le script doit " +"reconnaître, avec des options qui requièrent un argument suivi d’un signe " +"deux-points (``:``, donc le même format que la version Unix de :c:func:" +"`getopt` utilise)." + +#: ../Doc/library/getopt.rst:40 +msgid "" +"Unlike GNU :c:func:`getopt`, after a non-option argument, all further " +"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 "" +"*longopts*, if specified, must be a list of strings with the names of the " +"long options which should be supported. The leading ``'--'`` characters " +"should not be included in the option name. Long options which require an " +"argument should be followed by an equal sign (``'='``). Optional arguments " +"are not supported. To accept only long options, *shortopts* should be an " +"empty string. Long options on the command line can be recognized so long as " +"they provide a prefix of the option name that matches exactly one of the " +"accepted options. For example, if *longopts* is ``['foo', 'frob']``, the " +"option ``--fo`` will match as ``--foo``, but ``--f`` will not match " +"uniquely, so :exc:`GetoptError` will be raised." +msgstr "" +"*longopts*, si spécifié, doit être une liste de chaînes avec les noms des " +"options longues qui doivent être prises en charge. Le premier ``'--'`` ne " +"dois pas figurer dans le nom de l’option. Les options longues qui requièrent " +"un argument doivent être suivies d’un signe égal (``'='``). Les arguments " +"facultatifs ne sont pas pris en charge. Pour accepter uniquement les options " +"longues, *shortopts* doit être une chaîne vide. Les options longues sur la " +"ligne de commande peuvent être reconnues tant qu’elles fournissent un " +"préfixe du nom de l’option qui correspond exactement à l’une des options " +"acceptées. Par exemple, si *longopts* est ``['foo', 'frob']``, l’option ``--" +"fo`` correspondra à ``--foo``, mais ``--f`` ne correspondra pas de façon " +"unique, donc :exc:`GetoptError` sera levé." + +#: ../Doc/library/getopt.rst:55 +msgid "" +"The return value consists of two elements: the first is a list of ``(option, " +"value)`` pairs; the second is the list of program arguments left after the " +"option list was stripped (this is a trailing slice of *args*). Each option-" +"and-value pair returned has the option as its first element, prefixed with a " +"hyphen for short options (e.g., ``'-x'``) or two hyphens for long options (e." +"g., ``'--long-option'``), and the option argument as its second element, or " +"an empty string if the option has no argument. The options occur in the " +"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 "" +"This function works like :func:`getopt`, except that GNU style scanning mode " +"is used by default. This means that option and non-option arguments may be " +"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 "" +"If the first character of the option string is ``'+'``, or if the " +"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:80 +msgid "" +"This is raised when an unrecognized option is found in the argument list or " +"when an option requiring an argument is given none. The argument to the " +"exception is a string indicating the cause of the error. For long options, " +"an argument given to an option which does not require one will also cause " +"this exception to be raised. The attributes :attr:`msg` and :attr:`opt` " +"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:91 +msgid "Alias for :exc:`GetoptError`; for backward compatibility." +msgstr "Alias pour :exc:`GetoptError` ; pour la rétrocompatibilité." + +#: ../Doc/library/getopt.rst:93 +msgid "An example using only Unix style options:" +msgstr "Un exemple utilisant uniquement les options de style UNIX :" + +#: ../Doc/library/getopt.rst:105 +msgid "Using long option names is equally easy:" +msgstr "L’utilisation de noms d’options longs est tout aussi simple :" + +#: ../Doc/library/getopt.rst:118 +msgid "In a script, typical usage is something like this::" +msgstr "Dans un script, l’utilisation typique ressemble à ceci ::" + +#: ../Doc/library/getopt.rst:147 +msgid "" +"Note that an equivalent command line interface could be produced with less " +"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:162 +msgid "Module :mod:`argparse`" +msgstr "Module :mod:`argparse`" + +#: ../Doc/library/getopt.rst:163 +msgid "Alternative command line option and argument parsing library." +msgstr "" +"Option de ligne de commande alternative et bibliothèque d’analyse " +"d’arguments." diff --git a/library/getpass.po b/library/getpass.po new file mode 100644 index 000000000..7bef8781e --- /dev/null +++ b/library/getpass.po @@ -0,0 +1,91 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-08 09:58+0100\n" +"PO-Revision-Date: 2018-09-28 12:39+0200\n" +"Last-Translator: Paquerette \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/getpass.rst:2 +msgid ":mod:`getpass` --- Portable password input" +msgstr "Saisie de mot de passe portable" + +#: ../Doc/library/getpass.rst:11 +msgid "**Source code:** :source:`Lib/getpass.py`" +msgstr "**Source code:** :source:`Lib/getpass.py`" + +#: ../Doc/library/getpass.rst:15 +msgid "The :mod:`getpass` module provides two functions:" +msgstr "Le module :mod:`getpass` fournit 2 fonctions:" + +#: ../Doc/library/getpass.rst:20 +msgid "" +"Prompt the user for a password without echoing. The user is prompted using " +"the string *prompt*, which defaults to ``'Password: '``. On Unix, the " +"prompt is written to the file-like object *stream* using the replace error " +"handler if needed. *stream* defaults to the controlling terminal (:file:`/" +"dev/tty`) or if that is unavailable to ``sys.stderr`` (this argument is " +"ignored on Windows)." +msgstr "" +"Affiche une demande de mot de passe sans renvoyer d'écho. L'utilisateur est " +"invité en utilisant la string *prompt*, avec en valeur par défaut " +"``'Password: '``. Avec Unix, l'invite est écrite dans l'objet fichier " +"*stream* en utilisant si besoin le *replace error handler*. *stream* sera " +"par défaut le terminal de contrôle (:file:`/dev/tty`), ou si celui ci n'est " +"pas disponible ce sera ``sys.stderr`` (cet argument sera ignoré sur Windows)." + +#: ../Doc/library/getpass.rst:27 +msgid "" +"If echo free input is unavailable getpass() falls back to printing a warning " +"message to *stream* and reading from ``sys.stdin`` and issuing a :exc:" +"`GetPassWarning`." +msgstr "" +"Si aucune saisie en mode sans affichage n'est disponible, ``getpass()`` se " +"résoudra à afficher un message d'avertissement vers *stream*, puis lire " +"l'entrée depuis ``sys.stdin``, en levant une :exc:`GetPassWarning`." + +#: ../Doc/library/getpass.rst:32 +msgid "" +"If you call getpass from within IDLE, the input may be done in the terminal " +"you launched IDLE from rather than the idle window itself." +msgstr "" +"Si vous appelez *getpass* depuis IDLE, la saisie peut être faite dans le " +"terminal depuis lequel IDLE a été lancé, plutôt que dans la fenêtre d'IDLE." + +#: ../Doc/library/getpass.rst:37 +msgid "A :exc:`UserWarning` subclass issued when password input may be echoed." +msgstr "" +"Une sous classe d'exception :exc:`UserWarning` est levée quand le mot de " +"passe saisi pourrait être affiché." + +#: ../Doc/library/getpass.rst:42 +msgid "Return the \"login name\" of the user." +msgstr "Renvoie le *login name* de l'utilisateur." + +#: ../Doc/library/getpass.rst:44 +msgid "" +"This function checks the environment variables :envvar:`LOGNAME`, :envvar:" +"`USER`, :envvar:`LNAME` and :envvar:`USERNAME`, in order, and returns the " +"value of the first one which is set to a non-empty string. If none are set, " +"the login name from the password database is returned on systems which " +"support the :mod:`pwd` module, otherwise, an exception is raised." +msgstr "" +"Cette fonction examine les variables d'environnement :envvar:`LOGNAME`, :" +"envvar:`USER`, :envvar:`LNAME` et :envvar:`USERNAME`, dans cet ordre, et " +"renvoie la valeur de la première qui a comme valeur une string non vide. Si " +"aucune des variables n'est renseignée, dans le cas de systèmes qui prennent " +"en charge le module :mod:`pwd`, le *login name* de la base de données des " +"mots de passes est renvoyé, pour les autres systèmes une exception est levée." + +#: ../Doc/library/getpass.rst:51 +msgid "" +"In general, this function should be preferred over :func:`os.getlogin()`." +msgstr "En général, préférez cette fonction à :func:`os.getlogin()`." diff --git a/library/gettext.po b/library/gettext.po new file mode 100644 index 000000000..05b8e3477 --- /dev/null +++ b/library/gettext.po @@ -0,0 +1,1100 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 23:30+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/gettext.rst:2 +msgid ":mod:`gettext` --- Multilingual internationalization services" +msgstr ":mod:`gettext` — Services d'internationalisation multilingue" + +#: ../Doc/library/gettext.rst:10 +msgid "**Source code:** :source:`Lib/gettext.py`" +msgstr "**Code source :** :source:`Lib/gettext.py`" + +#: ../Doc/library/gettext.rst:14 +msgid "" +"The :mod:`gettext` module provides internationalization (I18N) and " +"localization (L10N) services for your Python modules and applications. It " +"supports both the GNU :program:`gettext` message catalog API and a higher " +"level, class-based API that may be more appropriate for Python files. The " +"interface described below allows you to write your module and application " +"messages in one natural language, and provide a catalog of translated " +"messages for running under different natural languages." +msgstr "" +"Le module :mod:`gettext` fournit un service d'internationalisation (*I18N*) " +"et de localisation linguistique (*L10N*) pour vos modules et applications " +"Python. Il est compatible avec l'API du catalogue de messages GNU :program:" +"`gettext` et à un plus haut niveau, avec l'API basée sur les classes qui " +"serait peut-être plus adaptée aux fichiers Python. L'interface décrite ci-" +"dessous vous permet d'écrire les textes de vos modules et applications dans " +"une langue naturelle, puis de fournir un catalogue de traductions pour les " +"lancer ensuite dans d'autres langues naturelles." + +#: ../Doc/library/gettext.rst:22 +msgid "" +"Some hints on localizing your Python modules and applications are also given." +msgstr "" +"Quelques astuces sur la localisation de vos modules et applications Python " +"sont également données." + +#: ../Doc/library/gettext.rst:26 +msgid "GNU :program:`gettext` API" +msgstr "API GNU :program:`gettext`" + +#: ../Doc/library/gettext.rst:28 +msgid "" +"The :mod:`gettext` module defines the following API, which is very similar " +"to the GNU :program:`gettext` API. If you use this API you will affect the " +"translation of your entire application globally. Often this is what you " +"want if your application is monolingual, with the choice of language " +"dependent on the locale of your user. If you are localizing a Python " +"module, or if your application needs to switch languages on the fly, you " +"probably want to use the class-based API instead." +msgstr "" +"Le module :mod:`gettext` définit l'API suivante, qui est très proche de " +"l'API de GNU :program:`gettext`. Si vous utilisez cette API, cela affectera " +"la traduction de toute votre application. C'est souvent le comportement " +"attendu si votre application est monolingue, avec le choix de la langue qui " +"dépend des paramètres linguistiques de l'utilisateur. Si vous localisez un " +"module Python ou si votre application a besoin de changer de langue à la " +"volée, il est plus judicieux d'utiliser l'API basée sur des classes." + +#: ../Doc/library/gettext.rst:39 +msgid "" +"Bind the *domain* to the locale directory *localedir*. More concretely, :" +"mod:`gettext` will look for binary :file:`.mo` files for the given domain " +"using the path (on Unix): :file:`{localedir}/{language}/LC_MESSAGES/{domain}." +"mo`, where *languages* is searched for in the environment variables :envvar:" +"`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES`, and :envvar:`LANG` " +"respectively." +msgstr "" +"Lie *domain* au répertoire *localedir* des localisations. Plus " +"spécifiquement, :mod:`gettext` va chercher les fichiers binaires :file:`.mo` " +"pour un domaine donné, en utilisant le chemin suivant (sous Unix) : :file:" +"`{localedir}/{language}/LC_MESSAGES/{domain}.mo`, où *languages* est contenu " +"respectivement dans l'une des variables d'environnement suivantes : :envvar:" +"`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES` et :envvar:`LANG`." + +#: ../Doc/library/gettext.rst:45 +msgid "" +"If *localedir* is omitted or ``None``, then the current binding for *domain* " +"is returned. [#]_" +msgstr "" +"Si *localedir* n'est pas renseigné ou vaut ``None``, alors le lien actuel de " +"*domain* est renvoyé. [#]_" + +#: ../Doc/library/gettext.rst:51 +msgid "" +"Bind the *domain* to *codeset*, changing the encoding of byte strings " +"returned by the :func:`lgettext`, :func:`ldgettext`, :func:`lngettext` and :" +"func:`ldngettext` functions. If *codeset* is omitted, then the current " +"binding is returned." +msgstr "" +"Lie *domain* à *codeset*, en changeant l'encodage des chaînes d'octets " +"retournées par les fonctions :func:`lgettext`, :func:`ldgettext`, :func:" +"`lngettext` et :func:`ldngettext`. Si *codeset* n'est pas renseigné, alors " +"le lien actuel est renvoyé." + +#: ../Doc/library/gettext.rst:59 +msgid "" +"Change or query the current global domain. If *domain* is ``None``, then " +"the current global domain is returned, otherwise the global domain is set to " +"*domain*, which is returned." +msgstr "" +"Change ou interroge le domaine global actuel. Si *domain* vaut ``None``, " +"alors le domaine global actuel est renvoyé. Sinon, le domaine global est " +"positionné à *domain*, puis renvoyé." + +#: ../Doc/library/gettext.rst:67 +msgid "" +"Return the localized translation of *message*, based on the current global " +"domain, language, and locale directory. This function is usually aliased " +"as :func:`_` in the local namespace (see examples below)." +msgstr "" +"Renvoie la traduction localisée de *message*, en se basant sur le domaine " +"global actuel, la langue et le répertoire des localisations. Cette fonction " +"est typiquement renommée :func:`_` dans le namespace courant (voir les " +"exemples ci-dessous)." + +#: ../Doc/library/gettext.rst:74 +msgid "" +"Like :func:`.gettext`, but look the message up in the specified *domain*." +msgstr "" +"Comme :func:`gettext`, mais cherche le message dans le domaine spécifié." + +#: ../Doc/library/gettext.rst:79 +msgid "" +"Like :func:`.gettext`, but consider plural forms. If a translation is found, " +"apply the plural formula to *n*, and return the resulting message (some " +"languages have more than two plural forms). If no translation is found, " +"return *singular* if *n* is 1; return *plural* otherwise." +msgstr "" +"Comme :func:`gettext`, mais prend en compte les formes au pluriel. Si une " +"traduction a été trouvée, utilise la formule pour trouver le pluriel à *n* " +"et renvoie le message généré (quelques langues ont plus de deux formes au " +"pluriel). Si aucune traduction n'a été trouvée, renvoie *singular* si *n* " +"vaut 1, *plural* sinon." + +#: ../Doc/library/gettext.rst:84 +msgid "" +"The Plural formula is taken from the catalog header. It is a C or Python " +"expression that has a free variable *n*; the expression evaluates to the " +"index of the plural in the catalog. See `the GNU gettext documentation " +"`__ for the " +"precise syntax to be used in :file:`.po` files and the formulas for a " +"variety of languages." +msgstr "" +"La formule pour trouver le pluriel est récupérée dans l'entête du " +"catalogue. C'est une expression en C ou en Python qui a une variable libre " +"*n* et qui évalue l'index du pluriel dans le catalogue. Voir `la " +"documentation de GNU gettext `__ pour la syntaxe précise à utiliser dans les fichiers :file:" +"`.po` et pour les formules dans différents langues." + +#: ../Doc/library/gettext.rst:94 +msgid "" +"Like :func:`ngettext`, but look the message up in the specified *domain*." +msgstr "" +"Comme :func:`ngettext`, mais cherche le message dans le domaine spécifié." + +#: ../Doc/library/gettext.rst:102 +msgid "" +"Equivalent to the corresponding functions without the ``l`` prefix (:func:`." +"gettext`, :func:`dgettext`, :func:`ngettext` and :func:`dngettext`), but the " +"translation is returned as a byte string encoded in the preferred system " +"encoding if no other encoding was explicitly set with :func:" +"`bind_textdomain_codeset`." +msgstr "" +"Équivalent aux fonctions correspondantes non préfixées par ``l`` (:func:`." +"gettext`, :func:`dgettext`, :func:`ngettext` et :func:`dngettext`), mais la " +"traduction est retournée en tant que chaîne d'octets, encodée avec " +"l'encodage du système si aucun autre n'a été explicitement défini avec :func:" +"`bind_textdomain_codeset`." + +#: ../Doc/library/gettext.rst:110 +msgid "" +"These functions should be avoided in Python 3, because they return encoded " +"bytes. It's much better to use alternatives which return Unicode strings " +"instead, since most Python applications will want to manipulate human " +"readable text as strings instead of bytes. Further, it's possible that you " +"may get unexpected Unicode-related exceptions if there are encoding problems " +"with the translated strings. It is possible that the ``l*()`` functions " +"will be deprecated in future Python versions due to their inherent problems " +"and limitations." +msgstr "" +"Ces fonctions sont à éviter en Python 3 car elles renvoient des octets " +"encodés. Il est préférable d'utiliser des alternatives qui renvoient de " +"l'Unicode, puisque beaucoup d'applications Python voudront manipuler du " +"texte lisible par des humains plutôt que des octets. En outre, il est " +"possible que vous obteniez des exceptions non prévues liées à Unicode s'il y " +"a des soucis d'encodage avec les chaînes de caractères traduites. Il est " +"d'ailleurs probable que les fonctions ``l*()`` deviennent obsolètes dans les " +"versions futures de Python à cause de leurs problèmes et limitations " +"inhérents." + +#: ../Doc/library/gettext.rst:120 +msgid "" +"Note that GNU :program:`gettext` also defines a :func:`dcgettext` method, " +"but this was deemed not useful and so it is currently unimplemented." +msgstr "" +"Notez que GNU :program:`gettext` a aussi une méthode :func:`dcgettext`, mais " +"elle a été considérée comme inutile et donc actuellement marquée comme non " +"implémentée." + +#: ../Doc/library/gettext.rst:123 +msgid "Here's an example of typical usage for this API::" +msgstr "Voici un exemple classique d'utilisation de cette API ::" + +#: ../Doc/library/gettext.rst:134 +msgid "Class-based API" +msgstr "API basée sur les classes" + +#: ../Doc/library/gettext.rst:136 +msgid "" +"The class-based API of the :mod:`gettext` module gives you more flexibility " +"and greater convenience than the GNU :program:`gettext` API. It is the " +"recommended way of localizing your Python applications and modules. :mod:`!" +"gettext` defines a :class:`GNUTranslations` class which implements the " +"parsing of GNU :file:`.mo` format files, and has methods for returning " +"strings. Instances of this class can also install themselves in the built-in " +"namespace as the function :func:`_`." +msgstr "" +"L'API du module :mod:`gettext` basée sur les classes vous donne plus de " +"flexibilité et est plus pratique que l'API de GNU :program:`gettext`. Son " +"utilisation est recommandée pour localiser vos applications et modules " +"Python. :mod:`!gettext` définit une classe :class:`GNUTranslations` qui " +"analyse syntaxiquement les fichiers au format GNU :file:`.mo`, et qui " +"possède des méthodes pour renvoyer des chaînes de caractères. Les instances " +"de cette classe \"translations\" peuvent également s'installer dans l'espace " +"de nommage natif en tant que fonction :func:`_`." + +#: ../Doc/library/gettext.rst:146 +msgid "" +"This function implements the standard :file:`.mo` file search algorithm. It " +"takes a *domain*, identical to what :func:`textdomain` takes. Optional " +"*localedir* is as in :func:`bindtextdomain`. Optional *languages* is a list " +"of strings, where each string is a language code." +msgstr "" +"Cette fonction implémente l'algorithme standard de recherche de fichier :" +"file:`mo`. Il prend en entrée un *domain*, tout comme la fonction :func:" +"`textdomain`. Le paramètre optionnel *localedir* est le même que celui de :" +"func:`bindtextdomain`. Le paramètre optionnel *langages* est une liste de " +"chaînes de caractères correspondants au code d'une langue." + +#: ../Doc/library/gettext.rst:151 +msgid "" +"If *localedir* is not given, then the default system locale directory is " +"used. [#]_ If *languages* is not given, then the following environment " +"variables are searched: :envvar:`LANGUAGE`, :envvar:`LC_ALL`, :envvar:" +"`LC_MESSAGES`, and :envvar:`LANG`. The first one returning a non-empty " +"value is used for the *languages* variable. The environment variables should " +"contain a colon separated list of languages, which will be split on the " +"colon to produce the expected list of language code strings." +msgstr "" +"Si *localedir* n'est pas renseigné, alors le répertoire de la locale par " +"défaut du système est utilisé. [#]_ Si *languages* n'est pas renseigné, " +"alors les variables d'environnement suivantes sont utilisées : :envvar:" +"`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES` et :envvar:`LANG`. La " +"première à renvoyer une valeur non vide est alors utilisée pour " +"*languages*. Ces variables d'environnement doivent contenir une liste de " +"langues, séparées par des deux-points, qui sera utilisée pour générer la " +"liste des codes de langues attendue." + +#: ../Doc/library/gettext.rst:159 +msgid "" +":func:`find` then expands and normalizes the languages, and then iterates " +"through them, searching for an existing file built of these components:" +msgstr "" +"Recherche avec :func:`find`, découvre et normalise les langues, puis itère " +"sur la liste obtenue afin de trouver un fichier de traduction existant et " +"correspondant :" + +#: ../Doc/library/gettext.rst:162 +msgid ":file:`{localedir}/{language}/LC_MESSAGES/{domain}.mo`" +msgstr ":file:`{localedir}/{language}/LC_MESSAGES/{domain}.mo`" + +#: ../Doc/library/gettext.rst:164 +msgid "" +"The first such file name that exists is returned by :func:`find`. If no such " +"file is found, then ``None`` is returned. If *all* is given, it returns a " +"list of all file names, in the order in which they appear in the languages " +"list or the environment variables." +msgstr "" +"Le premier nom de fichier trouvé est renvoyé par :func:`find`. Si aucun " +"fichier n'a été trouvé, alors `None` est renvoyé. Si *all* est vrai, est " +"renvoyée la liste de tous les noms de fichiers, dans l'ordre dans lequel ils " +"apparaissent dans *languages* ou dans les variables d'environnement." + +#: ../Doc/library/gettext.rst:172 +msgid "" +"Return a :class:`*Translations` instance based on the *domain*, *localedir*, " +"and *languages*, which are first passed to :func:`find` to get a list of the " +"associated :file:`.mo` file paths. Instances with identical :file:`.mo` " +"file names are cached. The actual class instantiated is *class_* if " +"provided, otherwise :class:`GNUTranslations`. The class's constructor must " +"take a single :term:`file object` argument. If provided, *codeset* will " +"change the charset used to encode translated strings in the :meth:" +"`~NullTranslations.lgettext` and :meth:`~NullTranslations.lngettext` methods." +msgstr "" +"Renvoie une instance de la classe :class:`*Translations` en se basant sur " +"*domain*, *localedir* et *languages*, qui sont d'abord passés en argument " +"de :func:`find` afin d'obtenir une liste de chemin des fichiers :file:`.mo` " +"associés. Les instances avec des noms de fichiers :file:`.mo` identiques " +"sont mises en cache. La classe réellement instanciée est soit *class_* si " +"renseigné, soit une classe :class:`GNUTranslations`. Le constructeur de " +"cette classe doit prendre en argument un seul :term:`file object`. Si " +"renseigné, *codeset* modifiera le jeu de caractères utilisé pour encoder les " +"chaînes de caractères traduites, dans les méthodes :meth:`~NullTranslations." +"lgettext` et :meth:`~NullTranslations.lngettext`." + +#: ../Doc/library/gettext.rst:182 +msgid "" +"If multiple files are found, later files are used as fallbacks for earlier " +"ones. To allow setting the fallback, :func:`copy.copy` is used to clone each " +"translation object from the cache; the actual instance data is still shared " +"with the cache." +msgstr "" +"Si plusieurs fichiers ont été trouvés, les derniers sont utilisés comme " +"substitut des premiers. Pour rendre possible cette substitution, :func:" +"`copy.copy` est utilisé pour copier chaque objet traduit depuis le cache ; " +"les vraies données de l'instance étant toujours recopiées dans le cache." + +#: ../Doc/library/gettext.rst:187 +msgid "" +"If no :file:`.mo` file is found, this function raises :exc:`OSError` if " +"*fallback* is false (which is the default), and returns a :class:" +"`NullTranslations` instance if *fallback* is true." +msgstr "" +"Si aucun fichier :file:`.mo` n'a été trouvé, soit *fallback* vaut *False* " +"(valeur par défaut) et une exception :exc:`OSError` est levée, soit " +"*fallback* vaut *True* et une instance :class:`NullTranslations` est " +"renvoyée." + +#: ../Doc/library/gettext.rst:191 +msgid ":exc:`IOError` used to be raised instead of :exc:`OSError`." +msgstr "" +"Avant, c'était l'exception :exc:`IOError` qui était levée, au lieu de :exc:" +"`OSError`." + +#: ../Doc/library/gettext.rst:197 +msgid "" +"This installs the function :func:`_` in Python's builtins namespace, based " +"on *domain*, *localedir*, and *codeset* which are passed to the function :" +"func:`translation`." +msgstr "" +"Positionne la fonction :func:`_` dans l'espace de nommage natif de Python, " +"en se basant sur *domain*, *localedir* et *codeset*, qui sont passés en " +"argument de la fonction :func:`translation`." + +#: ../Doc/library/gettext.rst:201 +msgid "" +"For the *names* parameter, please see the description of the translation " +"object's :meth:`~NullTranslations.install` method." +msgstr "" +"Concernant le paramètre *names*, se référer à la description de la méthode :" +"meth:`~NullTranslations.install`." + +#: ../Doc/library/gettext.rst:204 +msgid "" +"As seen below, you usually mark the strings in your application that are " +"candidates for translation, by wrapping them in a call to the :func:`_` " +"function, like this::" +msgstr "" +"Habituellement, la fonction :func:`_` est appliquée aux chaînes de " +"caractères qui doivent être traduites comme suit ::" + +#: ../Doc/library/gettext.rst:210 +msgid "" +"For convenience, you want the :func:`_` function to be installed in Python's " +"builtins namespace, so it is easily accessible in all modules of your " +"application." +msgstr "" +"Pour plus de confort, il vaut mieux positionner la fonction :func:`_` dans " +"l'espace de nommage natif de Python pour la rendre plus accessible dans tous " +"les modules de votre application." + +#: ../Doc/library/gettext.rst:216 +msgid "The :class:`NullTranslations` class" +msgstr "La classe :class:`NullTranslations`" + +#: ../Doc/library/gettext.rst:218 +msgid "" +"Translation classes are what actually implement the translation of original " +"source file message strings to translated message strings. The base class " +"used by all translation classes is :class:`NullTranslations`; this provides " +"the basic interface you can use to write your own specialized translation " +"classes. Here are the methods of :class:`!NullTranslations`:" +msgstr "" +"Les classes de traduction implémentent le fait de passer d'une chaîne de " +"caractères du fichier original à traduire à la traduction de celle-ci. La " +"classe de base utilisée est :class:`NullTranslations`. C'est l'interface de " +"base à utiliser lorsque vous souhaitez écrire vos propres classes " +"spécifiques à la traduction. Voici les méthodes de :class:`!" +"NullTranslations` :" + +#: ../Doc/library/gettext.rst:227 +msgid "" +"Takes an optional :term:`file object` *fp*, which is ignored by the base " +"class. Initializes \"protected\" instance variables *_info* and *_charset* " +"which are set by derived classes, as well as *_fallback*, which is set " +"through :meth:`add_fallback`. It then calls ``self._parse(fp)`` if *fp* is " +"not ``None``." +msgstr "" +"Prend un paramètre optionnel un :term:`file object` *fp*, qui est ignoré par " +"la classe de base. Initialise les variables d'instance \"protégées\" " +"*_info* et *_chardet*, définies par des classes dérivées, tout comme " +"*_fallback* qui est définie au travers de :meth:`add_fallback`. Puis " +"appelle ``self._parse(fp)`` si *fp* ne vaut pas ``None``." + +#: ../Doc/library/gettext.rst:235 +msgid "" +"No-op in the base class, this method takes file object *fp*, and reads the " +"data from the file, initializing its message catalog. If you have an " +"unsupported message catalog file format, you should override this method to " +"parse your format." +msgstr "" +"Cette méthode, non exécutée dans la classe de base, prend en paramètre un " +"objet fichier *fp* et lit les données de ce dernier. Si vous avez un " +"catalogue de messages dont le format n'est pas pris en charge, vous devriez " +"surcharger cette méthode pour analyser votre format." + +#: ../Doc/library/gettext.rst:243 +msgid "" +"Add *fallback* as the fallback object for the current translation object. A " +"translation object should consult the fallback if it cannot provide a " +"translation for a given message." +msgstr "" +"Ajoute *fallback* comme objet de substitution pour l'objet de traduction " +"courant. Un objet de traduction devrait interroger cet objet de " +"substitution s'il ne peut fournir une traduction pour un message donné." + +#: ../Doc/library/gettext.rst:250 +msgid "" +"If a fallback has been set, forward :meth:`!gettext` to the fallback. " +"Otherwise, return *message*. Overridden in derived classes." +msgstr "" +"Si un objet de substitution a été défini, transmet :meth:`!gettext` à celui-" +"ci. Sinon, renvoie *message*. Surchargé dans les classes dérivées." + +#: ../Doc/library/gettext.rst:256 +msgid "" +"If a fallback has been set, forward :meth:`!ngettext` to the fallback. " +"Otherwise, return *singular* if *n* is 1; return *plural* otherwise. " +"Overridden in derived classes." +msgstr "" +"Si un objet de substitution a été défini, transmet :meth:`!ngettext` à celui-" +"ci. Sinon, renvoie *singular* si *n* vaut 1, *plural* sinon. Surchargé " +"dans les classes dérivées." + +#: ../Doc/library/gettext.rst:264 +msgid "" +"Equivalent to :meth:`.gettext` and :meth:`.ngettext`, but the translation is " +"returned as a byte string encoded in the preferred system encoding if no " +"encoding was explicitly set with :meth:`set_output_charset`. Overridden in " +"derived classes." +msgstr "" +"Équivalent de :meth:`.gettext` et :meth:`.ngettext`, mais la traduction est " +"renvoyée sous la forme d'une chaîne d'octets, encodée avec l'encodage du " +"système si aucun autre n'a été défini avec :meth:`set_output_charset`. " +"Surchargé dans les classes dérivées." + +#: ../Doc/library/gettext.rst:271 ../Doc/library/gettext.rst:393 +msgid "" +"These methods should be avoided in Python 3. See the warning for the :func:" +"`lgettext` function." +msgstr "" +"L'utilisation de ces méthodes doivent être évitée en Python 3. Voir " +"l'avertissement de la fonction :func:`lgettext`." + +#: ../Doc/library/gettext.rst:277 +msgid "" +"Return the \"protected\" :attr:`_info` variable, a dictionary containing the " +"metadata found in the message catalog file." +msgstr "" +"Renvoie l'attribut \"protégé\" :attr:`_info`, dictionnaire contenant les " +"métadonnées trouvées dans le fichier de catalogue de messages." + +#: ../Doc/library/gettext.rst:283 +msgid "Return the encoding of the message catalog file." +msgstr "Renvoie l'encodage du fichier du catalogue de messages." + +#: ../Doc/library/gettext.rst:288 +msgid "" +"Return the encoding used to return translated messages in :meth:`.lgettext` " +"and :meth:`.lngettext`." +msgstr "" +"Renvoie l'encodage utilisé par :meth:`.lgettext` et :meth:`.lngettext` pour " +"la traduction des messages." + +#: ../Doc/library/gettext.rst:294 +msgid "Change the encoding used to return translated messages." +msgstr "Modifie l'encodage utilisé pour la traduction des messages." + +#: ../Doc/library/gettext.rst:299 +msgid "" +"This method installs :meth:`.gettext` into the built-in namespace, binding " +"it to ``_``." +msgstr "" +"Cette méthode positionne :meth:`.gettext` dans l'espace de nommage natif, en " +"le liant à ``_``." + +#: ../Doc/library/gettext.rst:302 +msgid "" +"If the *names* parameter is given, it must be a sequence containing the " +"names of functions you want to install in the builtins namespace in addition " +"to :func:`_`. Supported names are ``'gettext'``, ``'ngettext'``, " +"``'lgettext'`` and ``'lngettext'``." +msgstr "" +"Si le paramètre *names* est renseigné, celui-ci doit être une séquence " +"contenant les noms des fonctions que vous souhaitez positionner dans " +"l'espace de nommage natif, en plus de :func:`_`. Les noms pris en charge " +"sont ``'gettext'``, ``'ngettext'``, ``'lgettext'`` et ``'lngettext'``." + +#: ../Doc/library/gettext.rst:307 +msgid "" +"Note that this is only one way, albeit the most convenient way, to make the :" +"func:`_` function available to your application. Because it affects the " +"entire application globally, and specifically the built-in namespace, " +"localized modules should never install :func:`_`. Instead, they should use " +"this code to make :func:`_` available to their module::" +msgstr "" +"Notez que ce n'est là qu'un moyen parmi d'autres, quoique le plus pratique, " +"pour rendre la fonction :func:`_` accessible à votre application. Puisque " +"cela affecte toute l'application, et plus particulièrement l'espace de " +"nommage natif, les modules localisés ne devraient jamais y positionner :func:" +"`_`. Au lieu de cela, ces derniers doivent plutôt utiliser le code suivant " +"pour rendre :func:`_` accessible par leurs modules ::" + +#: ../Doc/library/gettext.rst:317 +msgid "" +"This puts :func:`_` only in the module's global namespace and so only " +"affects calls within this module." +msgstr "" +"Cela met :func:`_` dans l'espace de nommage global du module uniquement et " +"donc n'affectera ses appels que dans ce module." + +#: ../Doc/library/gettext.rst:322 +msgid "The :class:`GNUTranslations` class" +msgstr "La classe :class:`GNUTranslations`" + +#: ../Doc/library/gettext.rst:324 +msgid "" +"The :mod:`gettext` module provides one additional class derived from :class:" +"`NullTranslations`: :class:`GNUTranslations`. This class overrides :meth:" +"`_parse` to enable reading GNU :program:`gettext` format :file:`.mo` files " +"in both big-endian and little-endian format." +msgstr "" +"Le module :mod:`gettext` fournit une classe supplémentaire qui hérite de :" +"class:`NullTranslations` : :class:`GNUTranslations`. Cette classe " +"surcharge :meth:`_parse` pour permettre de lire les fichiers GNU :program:" +"`gettext` :file:`.mo` au format petit et gros-boutiste." + +#: ../Doc/library/gettext.rst:329 +msgid "" +":class:`GNUTranslations` parses optional metadata out of the translation " +"catalog. It is convention with GNU :program:`gettext` to include metadata as " +"the translation for the empty string. This metadata is in :rfc:`822`\\ -" +"style ``key: value`` pairs, and should contain the ``Project-Id-Version`` " +"key. If the key ``Content-Type`` is found, then the ``charset`` property is " +"used to initialize the \"protected\" :attr:`_charset` instance variable, " +"defaulting to ``None`` if not found. If the charset encoding is specified, " +"then all message ids and message strings read from the catalog are converted " +"to Unicode using this encoding, else ASCII is assumed." +msgstr "" +":class:`GNUTranslations` analyse les métadonnées optionnelles du catalogue " +"de traduction. Il est d'usage avec GNU :program:`gettext` d'utiliser une " +"métadonnée pour traduire la chaîne vide. Cette métadonnée est un ensemble de " +"paires de la forme ``clef: valeur`` comme définie par la :rfc:`822`, et doit " +"contenir la clef ``Project-Id-Version``. Si la clef ``Content-Type`` est " +"trouvée dans une métadonnée, alors la propriété ``charset`` (jeu de " +"caractères) est utilisée pour initialiser la variable d'instance \"protégée" +"\" :attr:`_charset`, sinon cette dernière est positionnée à ``None``. Si " +"l'encodage du jeu de caractères est spécifié, tous les messages " +"(identifiants et chaînes de caractères) lus depuis le catalogue sont " +"convertis en chaînes Unicode via cet encodage, ou via l'encodage ASCII si " +"non renseigné." + +#: ../Doc/library/gettext.rst:339 +msgid "" +"Since message ids are read as Unicode strings too, all :meth:`*gettext` " +"methods will assume message ids as Unicode strings, not byte strings." +msgstr "" +"Et puisque les identifiants des messages sont également lus comme des " +"chaînes Unicode, toutes les méthodes :meth:`*gettext` les considéreront " +"ainsi, et pas comme des chaînes d'octets." + +#: ../Doc/library/gettext.rst:342 +msgid "" +"The entire set of key/value pairs are placed into a dictionary and set as " +"the \"protected\" :attr:`_info` instance variable." +msgstr "" +"La totalité des paires clef / valeur est insérée dans un dictionnaire et " +"représente la variable d'instance \"protégée\" :attr:`_info`." + +#: ../Doc/library/gettext.rst:345 +msgid "" +"If the :file:`.mo` file's magic number is invalid, the major version number " +"is unexpected, or if other problems occur while reading the file, " +"instantiating a :class:`GNUTranslations` class can raise :exc:`OSError`." +msgstr "" +"Si le nombre magique du fichier :file:`.mo` est invalide, le numéro de la " +"version majeure inattendu, ou si d'autres problèmes apparaissent durant la " +"lecture du fichier, instancier une classe :class:`GNUTranslations` peut " +"lever une exception :exc:`OSError`." + +#: ../Doc/library/gettext.rst:351 +msgid "" +"The following methods are overridden from the base class implementation:" +msgstr "" +"Les méthodes suivantes, provenant de l'implémentation de la classe de base, " +"ont été surchargée :" + +#: ../Doc/library/gettext.rst:355 +msgid "" +"Look up the *message* id in the catalog and return the corresponding message " +"string, as a Unicode string. If there is no entry in the catalog for the " +"*message* id, and a fallback has been set, the look up is forwarded to the " +"fallback's :meth:`~NullTranslations.gettext` method. Otherwise, the " +"*message* id is returned." +msgstr "" +"Recherche l'identifiant de *message* dans le catalogue et renvoie le message " +"de la chaîne de caractères correspondante comme une chaîne Unicode. Si " +"aucun identifiant n'a été trouvé pour *message* et qu'un substitut a été " +"défini, la recherche est transmise à la méthode :meth:`~NullTranslations." +"gettext` du substitut. Sinon, l'identifiant de *message* est renvoyé." + +#: ../Doc/library/gettext.rst:364 +msgid "" +"Do a plural-forms lookup of a message id. *singular* is used as the message " +"id for purposes of lookup in the catalog, while *n* is used to determine " +"which plural form to use. The returned message string is a Unicode string." +msgstr "" +"Effectue une recherche sur les formes plurielles de l'identifiant d'un " +"message. *singular* est utilisé pour la recherche de l'identifiant dans le " +"catalogue, alors que *n* permet de savoir quelle forme plurielle utiliser. " +"La chaîne de caractère du message renvoyée est une chaîne Unicode." + +#: ../Doc/library/gettext.rst:368 +msgid "" +"If the message id is not found in the catalog, and a fallback is specified, " +"the request is forwarded to the fallback's :meth:`~NullTranslations." +"ngettext` method. Otherwise, when *n* is 1 *singular* is returned, and " +"*plural* is returned in all other cases." +msgstr "" +"Si l'identifiant du message n'est pas trouvé dans le catalogue et qu'un " +"substitut a été spécifié, la requête est transmise à la méthode :meth:" +"`~NullTranslations.ngettext` du substitut. Sinon, est renvoyé *singular* " +"lorsque *n* vaut 1, *plural* dans tous les autres cas." + +#: ../Doc/library/gettext.rst:373 +msgid "Here is an example::" +msgstr "Voici un exemple ::" + +#: ../Doc/library/gettext.rst:386 +msgid "" +"Equivalent to :meth:`.gettext` and :meth:`.ngettext`, but the translation is " +"returned as a byte string encoded in the preferred system encoding if no " +"encoding was explicitly set with :meth:`~NullTranslations." +"set_output_charset`." +msgstr "" +"Équivalent de :meth:`.gettext` et :meth:`.ngettext`, mais la traduction est " +"renvoyée sous la forme d'une chaîne d'octets, encodée avec l'encodage du " +"système si aucun autre n'a été défini avec :meth:`~NullTranslations." +"set_output_charset`." + +#: ../Doc/library/gettext.rst:398 +msgid "Solaris message catalog support" +msgstr "Support du catalogue de message de Solaris" + +#: ../Doc/library/gettext.rst:400 +msgid "" +"The Solaris operating system defines its own binary :file:`.mo` file format, " +"but since no documentation can be found on this format, it is not supported " +"at this time." +msgstr "" +"Le système d'exploitation Solaris possède son propre format de fichier " +"binaire :file:`.mo`, mais pour l'heure, puisqu'on ne peut trouver de " +"documentation sur ce format, il n'est pas géré." + +#: ../Doc/library/gettext.rst:406 +msgid "The Catalog constructor" +msgstr "Le constructeur *Catalog*" + +#: ../Doc/library/gettext.rst:410 +msgid "" +"GNOME uses a version of the :mod:`gettext` module by James Henstridge, but " +"this version has a slightly different API. Its documented usage was::" +msgstr "" +"GNOME utilise une version du module :mod:`gettext` de James Henstridge, mais " +"qui a une API légèrement différente. D'après la documentation, elle " +"s'utilise ainsi ::" + +#: ../Doc/library/gettext.rst:418 +msgid "" +"For compatibility with this older module, the function :func:`Catalog` is an " +"alias for the :func:`translation` function described above." +msgstr "" +"Pour des raisons de compatibilité avec cet ancien module, la fonction :func:" +"`Catalog` est un alias de la fonction :func:`translation` décrite ci-dessous." + +#: ../Doc/library/gettext.rst:421 +msgid "" +"One difference between this module and Henstridge's: his catalog objects " +"supported access through a mapping API, but this appears to be unused and so " +"is not currently supported." +msgstr "" +"Une différence entre ce module et celui de Henstridge : les objets de son " +"catalogue étaient accessibles depuis un schéma de l'API, mais cela semblait " +"ne pas être utilisé et donc n'est pas pris en charge." + +#: ../Doc/library/gettext.rst:427 +msgid "Internationalizing your programs and modules" +msgstr "Internationaliser vos programmes et modules" + +#: ../Doc/library/gettext.rst:429 +msgid "" +"Internationalization (I18N) refers to the operation by which a program is " +"made aware of multiple languages. Localization (L10N) refers to the " +"adaptation of your program, once internationalized, to the local language " +"and cultural habits. In order to provide multilingual messages for your " +"Python programs, you need to take the following steps:" +msgstr "" +"L'internationalisation (*I18N*) consiste à permettre à un programme de " +"recevoir des traductions dans plusieurs langues. La localisation (*L10N*) " +"consiste à adapter un programme à la langue et aux habitudes culturelles " +"locales, une fois celui-ci internationalisé. Afin de fournir du texte " +"multilingue à votre programme Python, les étapes suivantes sont nécessaires :" + +#: ../Doc/library/gettext.rst:435 +msgid "" +"prepare your program or module by specially marking translatable strings" +msgstr "" +"préparer votre programme ou module en marquant spécifiquement les chaînes à " +"traduire" + +#: ../Doc/library/gettext.rst:437 +msgid "" +"run a suite of tools over your marked files to generate raw messages catalogs" +msgstr "" +"lancer une suite d'outils sur les fichiers contenant des chaînes à traduire " +"pour générer des catalogues de messages brut" + +#: ../Doc/library/gettext.rst:439 +msgid "create language-specific translations of the message catalogs" +msgstr "" +"créer les traductions spécifiques à une langue des catalogues de messages" + +#: ../Doc/library/gettext.rst:441 +msgid "" +"use the :mod:`gettext` module so that message strings are properly translated" +msgstr "" +"utiliser le module :mod:`gettext` pour que les chaînes de caractères soient " +"bien traduites" + +#: ../Doc/library/gettext.rst:443 +msgid "" +"In order to prepare your code for I18N, you need to look at all the strings " +"in your files. Any string that needs to be translated should be marked by " +"wrapping it in ``_('...')`` --- that is, a call to the function :func:`_`. " +"For example::" +msgstr "" +"Afin de préparer votre code à être traduit (*I18N*), vous devrez rechercher " +"toutes les chaînes de caractères de vos fichiers. À chaque chaîne de " +"caractères à traduire doit être appliqué le marqueur ``_('...')`` --- c'est-" +"à-dire en appelant la fonction :func:`_`. Par exemple ::" + +#: ../Doc/library/gettext.rst:452 +msgid "" +"In this example, the string ``'writing a log message'`` is marked as a " +"candidate for translation, while the strings ``'mylog.txt'`` and ``'w'`` are " +"not." +msgstr "" +"Dans cet exemple, la chaîne ``'writing a log message'`` est maquée comme " +"traduite, contrairement aux chaînes ``'mylog.txt'`` et ``'w'``." + +#: ../Doc/library/gettext.rst:455 +msgid "" +"There are a few tools to extract the strings meant for translation. The " +"original GNU :program:`gettext` only supported C or C++ source code but its " +"extended version :program:`xgettext` scans code written in a number of " +"languages, including Python, to find strings marked as translatable. `Babel " +"`__ is a Python internationalization library that " +"includes a :file:`pybabel` script to extract and compile message catalogs. " +"François Pinard's program called :program:`xpot` does a similar job and is " +"available as part of his `po-utils package `__." +msgstr "" +"Il existe quelques outils pour extraire les chaînes de caractères destinées " +"à la traduction. Le programme d'origine GNU :program:`gettext` ne prenait " +"en charge que les codes sources en C ou C++, mais sa version étendue :" +"program:`xgettext` peut lire du code écrit dans de nombreux langages, dont " +"le Python, afin de trouver les chaînes notées comme traduisibles. `Babel " +"`__ est une bibliothèque en Python " +"d'internationalisation, qui inclut un script :file:`pybabel` permettant " +"d'extraire et de compiler des catalogues de messages. Le programme de " +"François Pinard, nommé :program:`xpot`, fait de même et est disponible dans " +"son `paquet po-utils `__." + +#: ../Doc/library/gettext.rst:465 +msgid "" +"(Python also includes pure-Python versions of these programs, called :" +"program:`pygettext.py` and :program:`msgfmt.py`; some Python distributions " +"will install them for you. :program:`pygettext.py` is similar to :program:" +"`xgettext`, but only understands Python source code and cannot handle other " +"programming languages such as C or C++. :program:`pygettext.py` supports a " +"command-line interface similar to :program:`xgettext`; for details on its " +"use, run ``pygettext.py --help``. :program:`msgfmt.py` is binary compatible " +"with GNU :program:`msgfmt`. With these two programs, you may not need the " +"GNU :program:`gettext` package to internationalize your Python applications.)" +msgstr "" +"(Python inclut également des versions en Python de ces programmes, :program:" +"`pygettext.py` et :program:`msgfmt.py`, que certaines distributions Python " +"installeront pour vous. :program:`pygettext.py` est similaire à :program:" +"`xgettext`, mais ne comprend que le code source écrit en Python et ne peut " +"prendre en charge d'autres langages de programmation tels que le C ou C++. :" +"program:`pygettext.py` possède une interface en ligne de commande similaire " +"à celle de :program:`xgettext` --- pour plus de détails sur son utilisation, " +"exécuter ``pygettext.py --help``. :program:`msgfmt.py` est compatible avec " +"GNU :program:`msgfmt`. Avec ces deux programmes, vous ne devriez pas avoir " +"besoin du paquet GNU :program:`gettext` pour internationaliser vos " +"applications en Python.)" + +#: ../Doc/library/gettext.rst:477 +msgid "" +":program:`xgettext`, :program:`pygettext`, and similar tools generate :file:" +"`.po` files that are message catalogs. They are structured human-readable " +"files that contain every marked string in the source code, along with a " +"placeholder for the translated versions of these strings." +msgstr "" +":program:`xgettext`, :program:`pygettext` et d'autres outils similaires " +"génèrent des fichiers :file:`.po` représentant les catalogues de messages. " +"Il s'agit de fichiers structurés et lisibles par un être humain, qui " +"contiennent toutes les chaînes du code source marquées comme traduisible, " +"ainsi que leur traduction à utiliser." + +#: ../Doc/library/gettext.rst:483 +msgid "" +"Copies of these :file:`.po` files are then handed over to the individual " +"human translators who write translations for every supported natural " +"language. They send back the completed language-specific versions as a :" +"file:`.po` file that's compiled into a machine-readable :file:" +"`.mo` binary catalog file using the :program:`msgfmt` program. The :file:`." +"mo` files are used by the :mod:`gettext` module for the actual translation " +"processing at run-time." +msgstr "" +"Les copies de ces fichiers :file:`.po` sont ensuite remises à des êtres " +"humains qui traduisent le contenu pour chaque langue naturelle prise en " +"charge. Pour chacune des langues, ces derniers renvoient la version " +"complétée sous la forme d'un fichier :file:`.po` qui a été " +"compilé dans un fichier binaire :file:`.mo` représentant le catalogue " +"lisible par une machine à l'aide du programme :program:`msgfmt`. Les " +"fichiers :file:`.mo` sont utilisés par le module :mod:`gettext` pour la " +"traduction lors de l'exécution." + +#: ../Doc/library/gettext.rst:492 +msgid "" +"How you use the :mod:`gettext` module in your code depends on whether you " +"are internationalizing a single module or your entire application. The next " +"two sections will discuss each case." +msgstr "" +"La façon dont vous utilisez le module :mod:`gettext` dans votre code dépend " +"de si vous internationalisez un seul module ou l'ensemble de votre " +"application. Les deux sections suivantes traitent chacune des cas." + +#: ../Doc/library/gettext.rst:498 +msgid "Localizing your module" +msgstr "Localiser votre module" + +#: ../Doc/library/gettext.rst:500 +msgid "" +"If you are localizing your module, you must take care not to make global " +"changes, e.g. to the built-in namespace. You should not use the GNU :program:" +"`gettext` API but instead the class-based API." +msgstr "" +"Si vous localisez votre module, veillez à ne pas faire de changements " +"globaux, e.g. dans l'espace de nommage natif. Vous ne devriez pas utiliser " +"l’API GNU :program:`gettext` mais plutôt celle basée sur les classes." + +#: ../Doc/library/gettext.rst:504 +msgid "" +"Let's say your module is called \"spam\" and the module's various natural " +"language translation :file:`.mo` files reside in :file:`/usr/share/locale` " +"in GNU :program:`gettext` format. Here's what you would put at the top of " +"your module::" +msgstr "" +"Disons que votre module s'appelle \"spam\" et que les fichiers :file:`.mo` " +"de traduction dans les différentes langues naturelles soient dans :file:`/" +"usr/share/locale` au format GNU :program:`gettext`. Voici ce que vous " +"pouvez alors mettre en haut de votre module ::" + +#: ../Doc/library/gettext.rst:515 +msgid "Localizing your application" +msgstr "Localiser votre application" + +#: ../Doc/library/gettext.rst:517 +msgid "" +"If you are localizing your application, you can install the :func:`_` " +"function globally into the built-in namespace, usually in the main driver " +"file of your application. This will let all your application-specific files " +"just use ``_('...')`` without having to explicitly install it in each file." +msgstr "" +"Si vous localisez votre application, vous pouvez positionner la fonction :" +"func:`_` de manière globale dans l'espace de nommage natif, généralement " +"dans le fichier principal de votre application. Cela permettra à tous les " +"fichiers de votre application de n'utiliser que ``_('...')`` sans devoir le " +"redéfinir explicitement dans chaque fichier." + +#: ../Doc/library/gettext.rst:522 +msgid "" +"In the simple case then, you need only add the following bit of code to the " +"main driver file of your application::" +msgstr "" +"Dans ce cas, vous n'aurez à ajouter que le bout de code suivant au fichier " +"principal de votre application ::" + +#: ../Doc/library/gettext.rst:528 +msgid "" +"If you need to set the locale directory, you can pass it into the :func:" +"`install` function::" +msgstr "" +"Si vous avez besoin de définir le dossier des localisations, vous pouvez le " +"mettre en argument de la fonction :func:`install` ::" + +#: ../Doc/library/gettext.rst:536 +msgid "Changing languages on the fly" +msgstr "Changer de langue à la volée" + +#: ../Doc/library/gettext.rst:538 +msgid "" +"If your program needs to support many languages at the same time, you may " +"want to create multiple translation instances and then switch between them " +"explicitly, like so::" +msgstr "" +"Si votre programme a besoin de prendre en charge plusieurs langues en même " +"temps, vous pouvez créer plusieurs instances de traduction, puis basculer " +"entre elles de façon explicite, comme ceci ::" + +#: ../Doc/library/gettext.rst:559 +msgid "Deferred translations" +msgstr "Traductions différées" + +#: ../Doc/library/gettext.rst:561 +msgid "" +"In most coding situations, strings are translated where they are coded. " +"Occasionally however, you need to mark strings for translation, but defer " +"actual translation until later. A classic example is::" +msgstr "" +"Dans la plupart des cas, en programmation, les chaînes de caractères sont " +"traduites à l'endroit où on les écrit. Cependant, il peut arriver que vous " +"ayez besoin de traduire une chaîne de caractères un peu plus loin. Un " +"exemple classique est ::" + +#: ../Doc/library/gettext.rst:574 +msgid "" +"Here, you want to mark the strings in the ``animals`` list as being " +"translatable, but you don't actually want to translate them until they are " +"printed." +msgstr "" +"Ici, vous voulez marquer les chaînes de caractères de la liste ``animals`` " +"comme étant traduisibles, mais ne les traduire qu'au moment de les afficher." + +#: ../Doc/library/gettext.rst:578 +msgid "Here is one way you can handle this situation::" +msgstr "Voici un moyen de gérer ce cas ::" + +#: ../Doc/library/gettext.rst:594 +msgid "" +"This works because the dummy definition of :func:`_` simply returns the " +"string unchanged. And this dummy definition will temporarily override any " +"definition of :func:`_` in the built-in namespace (until the :keyword:`del` " +"command). Take care, though if you have a previous definition of :func:`_` " +"in the local namespace." +msgstr "" +"Cela fonctionne car la définition factice de :func:`_` renvoie simplement la " +"chaîne de caractères passée en entrée. Et cette définition factice va " +"temporairement outrepasser toute autre définition de :func:`_` dans l'espace " +"de nommage natif (jusqu'à l'utilisation de la commande :keyword:`del`). " +"Attention toutefois si vous avez déjà une autre définition de :func:`_` dans " +"l'espace de nommage local." + +#: ../Doc/library/gettext.rst:600 +msgid "" +"Note that the second use of :func:`_` will not identify \"a\" as being " +"translatable to the :program:`gettext` program, because the parameter is not " +"a string literal." +msgstr "" +"À noter qu'à la deuxième utilisation de :func:`_`, \"a\" ne sera pas vue " +"comme traduisible par le programme :program:`gettext` car ce n'est pas un " +"chaîne au sens propre." + +#: ../Doc/library/gettext.rst:604 +msgid "Another way to handle this is with the following example::" +msgstr "Voici une autre solution ::" + +#: ../Doc/library/gettext.rst:618 +msgid "" +"In this case, you are marking translatable strings with the function :func:" +"`N_`, which won't conflict with any definition of :func:`_`. However, you " +"will need to teach your message extraction program to look for translatable " +"strings marked with :func:`N_`. :program:`xgettext`, :program:`pygettext`, " +"``pybabel extract``, and :program:`xpot` all support this through the use of " +"the :option:`!-k` command-line switch. The choice of :func:`N_` here is " +"totally arbitrary; it could have just as easily been :func:" +"`MarkThisStringForTranslation`." +msgstr "" +"Dans ce cas, les chaînes à traduire sont identifiées avec la fonction :func:" +"`N_`, qui n'entre pas en conflit avec définition de :func:`_`. Cependant, " +"il faudra apprendre à votre programme d'extraction de messages à rechercher " +"les chaînes de caractères à traduire parmi celles ayant le marqueur :func:" +"`N_`. :program:`xgettext`, :program:`pygettext`, ``pybabel extract`` et :" +"program:`xpot` prennent tous en charge cela grâce à l'option en ligne de " +"commande :option:`!-k`. Le choix du nom :func:`N_` ici est totalement " +"arbitraire et aurait très bien pu être :func:`MarqueurDeTraduction`." + +#: ../Doc/library/gettext.rst:629 +msgid "Acknowledgements" +msgstr "Remerciements" + +#: ../Doc/library/gettext.rst:631 +msgid "" +"The following people contributed code, feedback, design suggestions, " +"previous implementations, and valuable experience to the creation of this " +"module:" +msgstr "" +"Les personnes suivantes ont contribué au code, ont fait des retours, ont " +"participé aux suggestions de conception et aux implémentations précédentes, " +"et ont partagé leur expérience précieuse pour la création de ce module :" + +#: ../Doc/library/gettext.rst:634 +msgid "Peter Funk" +msgstr "Peter Funk" + +#: ../Doc/library/gettext.rst:636 +msgid "James Henstridge" +msgstr "James Henstridge" + +#: ../Doc/library/gettext.rst:638 +msgid "Juan David Ibáñez Palomar" +msgstr "Juan David Ibáñez Palomar" + +#: ../Doc/library/gettext.rst:640 +msgid "Marc-André Lemburg" +msgstr "Marc-André Lemburg" + +#: ../Doc/library/gettext.rst:642 +msgid "Martin von Löwis" +msgstr "Martin von Löwis" + +#: ../Doc/library/gettext.rst:644 +msgid "François Pinard" +msgstr "François Pinard" + +#: ../Doc/library/gettext.rst:646 +msgid "Barry Warsaw" +msgstr "Barry Warsaw" + +#: ../Doc/library/gettext.rst:648 +msgid "Gustavo Niemeyer" +msgstr "Gustavo Niemeyer" + +#: ../Doc/library/gettext.rst:651 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/gettext.rst:652 +msgid "" +"The default locale directory is system dependent; for example, on RedHat " +"Linux it is :file:`/usr/share/locale`, but on Solaris it is :file:`/usr/lib/" +"locale`. The :mod:`gettext` module does not try to support these system " +"dependent defaults; instead its default is :file:`{sys.prefix}/share/locale` " +"(see :data:`sys.prefix`). For this reason, it is always best to call :func:" +"`bindtextdomain` with an explicit absolute path at the start of your " +"application." +msgstr "" +"Le dossier par défaut pour les localisations dépend du système : par " +"exemple, sur RedHat c'est :file:`/usr/share/locale`, mais sur Solaris c'est :" +"file:`/usr/lib/locale`. Le module :mod:`gettext` n'essaie pas de prendre en " +"charge ce paramètre système dépendant du système d'exploitation, mais " +"utilise le dossier :file:`{sys.prefix}/share/locale` (voir :data:`sys." +"prefix`). C'est pour cette raison qu'il est toujours préférable d'appeler :" +"func:`bindtextdomain` en donnant explicitement un chemin absolu au début de " +"votre application." + +#: ../Doc/library/gettext.rst:660 +msgid "See the footnote for :func:`bindtextdomain` above." +msgstr "Voir la note de :func:`bindtextdomain` ci-dessus." + +#~ msgid "Return the \"protected\" :attr:`_info` variable." +#~ msgstr "Renvoie la variable \"protégée\" :attr:`_info`." diff --git a/library/glob.po b/library/glob.po new file mode 100644 index 000000000..ca908b616 --- /dev/null +++ b/library/glob.po @@ -0,0 +1,158 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-09-28 12:40+0200\n" +"Last-Translator: Julien VITARD \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/glob.rst:2 +msgid ":mod:`glob` --- Unix style pathname pattern expansion" +msgstr "" +":mod:`glob` --- Recherche de chemins de style Unix selon certains motifs" + +#: ../Doc/library/glob.rst:7 +msgid "**Source code:** :source:`Lib/glob.py`" +msgstr "**Code source :** :source:`Lib/glob.py`" + +#: ../Doc/library/glob.rst:21 +msgid "" +"The :mod:`glob` module finds all the pathnames matching a specified pattern " +"according to the rules used by the Unix shell, although results are returned " +"in arbitrary order. No tilde expansion is done, but ``*``, ``?``, and " +"character ranges expressed with ``[]`` will be correctly matched. This is " +"done by using the :func:`os.scandir` and :func:`fnmatch.fnmatch` functions " +"in concert, and not by actually invoking a subshell. Note that unlike :func:" +"`fnmatch.fnmatch`, :mod:`glob` treats filenames beginning with a dot (``.``) " +"as special cases. (For tilde and shell variable expansion, use :func:`os." +"path.expanduser` and :func:`os.path.expandvars`.)" +msgstr "" +"Le module :mod:`glob` recherche tous les chemins correspondant à un motif " +"particulier selon les règles utilisées par le shell Unix, les résultats sont " +"renvoyés dans un ordre arbitraire. Aucun remplacement du tilde n'est " +"réalisé, mais les caractères ``*``, ``?``, et les caractères ``[]`` " +"exprimant un intervalle sont correctement renvoyés. Cette opération est " +"réalisée en utilisant les fonctions :func:`os.scandir` et :func:`fnmatch." +"fnmatch` de concert, et sans invoquer une sous-commande. Notons qu'à la " +"différence de :func:`fnmatch.fnmatch`, :mod:`glob` traite les noms de " +"fichiers commençant par un point (``.``) comme des cas spéciaux. (Pour " +"remplacer le tilde et les variables shell, nous vous conseillons d'utiliser " +"les fonctions :func:`os.path.expanduser` et :func:`os.path.expandvars`.)" + +#: ../Doc/library/glob.rst:31 +msgid "" +"For a literal match, wrap the meta-characters in brackets. For example, " +"``'[?]'`` matches the character ``'?'``." +msgstr "" +"Pour une correspondance littérale, il faut entourer le métacaractère par des " +"crochets. Par exemple, ``'[?]'`` reconnaît le caractère ``'?'``." + +#: ../Doc/library/glob.rst:36 +msgid "The :mod:`pathlib` module offers high-level path objects." +msgstr "" +"Le module :mod:`pathlib` offre une représentation objet de haut niveau des " +"chemins." + +#: ../Doc/library/glob.rst:41 +msgid "" +"Return a possibly-empty list of path names that match *pathname*, which must " +"be a string containing a path specification. *pathname* can be either " +"absolute (like :file:`/usr/src/Python-1.5/Makefile`) or relative (like :file:" +"`../../Tools/\\*/\\*.gif`), and can contain shell-style wildcards. Broken " +"symlinks are included in the results (as in the shell)." +msgstr "" +"Renvoie une liste, potentiellement vide, de chemins correspondant au motif " +"*pathname*, qui doit être une chaîne de caractères contenant la " +"spécification du chemin. *pathname* peut être soit absolu (comme :file:`/usr/" +"src/Python-1.5/Makefile`) soit relatif (comme :file:`../../Tools/\\*/\\*." +"gif`), et contenir un caractère de remplacement de style shell. Les liens " +"symboliques cassés sont aussi inclus dans les résultats (comme pour le " +"shell)." + +#: ../Doc/library/glob.rst:50 +msgid "" +"If *recursive* is true, the pattern \"``**``\" will match any files and zero " +"or more directories and subdirectories. If the pattern is followed by an " +"``os.sep``, only directories and subdirectories match." +msgstr "" +"Si *recursive* est vrai, le motif \"``**``\" reconnaît tous les fichiers et, " +"zéro ou plus répertoires et sous-répertoires. Si le motif est suivi par un " +"caractère de séparation ``os.sep``, seuls les répertoires et sous-" +"répertoires sont reconnus." + +#: ../Doc/library/glob.rst:55 +msgid "" +"Using the \"``**``\" pattern in large directory trees may consume an " +"inordinate amount of time." +msgstr "" +"Utiliser le motif \"``**``\" dans de grandes arborescences de dossier peut " +"consommer une quantité de temps démesurée." + +#: ../Doc/library/glob.rst:58 +msgid "Support for recursive globs using \"``**``\"." +msgstr "Gestion des chemins récursifs utilisant le motif \"``**``\"." + +#: ../Doc/library/glob.rst:64 +msgid "" +"Return an :term:`iterator` which yields the same values as :func:`glob` " +"without actually storing them all simultaneously." +msgstr "" +"Renvoie un :term:`iterator` qui produit les mêmes valeurs que :func:`glob`, " +"sans toutes les charger en mémoire simultanément." + +#: ../Doc/library/glob.rst:70 +msgid "" +"Escape all special characters (``'?'``, ``'*'`` and ``'['``). This is useful " +"if you want to match an arbitrary literal string that may have special " +"characters in it. Special characters in drive/UNC sharepoints are not " +"escaped, e.g. on Windows ``escape('//?/c:/Quo vadis?.txt')`` returns ``'//?/" +"c:/Quo vadis[?].txt'``." +msgstr "" +"Échappe tous les caractères spéciaux (``'?'``, ``'*'`` et ``'['``). Cela est " +"utile pour reconnaître une chaîne de caractère littérale arbitraire qui " +"contiendrait ce type de caractères. Les caractères spéciaux dans les disques " +"et répertoires partagés (chemins UNC) ne sont pas échappés, e.g. sous " +"Windows ``escape('//?/c:/Quo vadis?.txt')`` renvoie ``'//?/c:/Quo vadis[?]." +"txt'``." + +#: ../Doc/library/glob.rst:79 +msgid "" +"For example, consider a directory containing the following files: :file:`1." +"gif`, :file:`2.txt`, :file:`card.gif` and a subdirectory :file:`sub` which " +"contains only the file :file:`3.txt`. :func:`glob` will produce the " +"following results. Notice how any leading components of the path are " +"preserved. ::" +msgstr "" +"Par exemple, considérons un répertoire contenant les fichiers suivants : :" +"file:`1.gif`, :file:`2.txt`, :file:`card.gif` et un sous-répertoire :file:" +"`sub` contenant seulement le fichier :file:`3.txt`. :func:`glob` produit " +"les résultats suivants. Notons que les composantes principales des chemins " +"sont préservées. ::" + +#: ../Doc/library/glob.rst:97 +msgid "" +"If the directory contains files starting with ``.`` they won't be matched by " +"default. For example, consider a directory containing :file:`card.gif` and :" +"file:`.card.gif`::" +msgstr "" +"Si le répertoire contient des fichiers commençant par ``.``, ils ne sont pas " +"reconnus par défaut. Par exemple, considérons un répertoire contenant :file:" +"`card.gif` et :file:`.card.gif` ::" + +#: ../Doc/library/glob.rst:109 +msgid "Module :mod:`fnmatch`" +msgstr "Module :mod:`fnmatch`" + +#: ../Doc/library/glob.rst:110 +msgid "Shell-style filename (not path) expansion" +msgstr "" +"Recherche de noms de fichiers de style shell (ne concerne pas les chemins)" diff --git a/library/grp.po b/library/grp.po new file mode 100644 index 000000000..16e85e965 --- /dev/null +++ b/library/grp.po @@ -0,0 +1,145 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/grp.rst:2 +msgid ":mod:`grp` --- The group database" +msgstr "" + +#: ../Doc/library/grp.rst:10 +msgid "" +"This module provides access to the Unix group database. It is available on " +"all Unix versions." +msgstr "" + +#: ../Doc/library/grp.rst:13 +msgid "" +"Group database entries are reported as a tuple-like object, whose attributes " +"correspond to the members of the ``group`` structure (Attribute field below, " +"see ````):" +msgstr "" + +#: ../Doc/library/grp.rst:18 +msgid "Index" +msgstr "Index" + +#: ../Doc/library/grp.rst:18 +msgid "Attribute" +msgstr "Attribut" + +#: ../Doc/library/grp.rst:18 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/grp.rst:20 +msgid "0" +msgstr "0" + +#: ../Doc/library/grp.rst:20 +msgid "gr_name" +msgstr "gr_name" + +#: ../Doc/library/grp.rst:20 +msgid "the name of the group" +msgstr "" + +#: ../Doc/library/grp.rst:22 +msgid "1" +msgstr "1" + +#: ../Doc/library/grp.rst:22 +msgid "gr_passwd" +msgstr "gr_passwd" + +#: ../Doc/library/grp.rst:22 +msgid "the (encrypted) group password; often empty" +msgstr "" + +#: ../Doc/library/grp.rst:25 +msgid "2" +msgstr "2" + +#: ../Doc/library/grp.rst:25 +msgid "gr_gid" +msgstr "gr_gid" + +#: ../Doc/library/grp.rst:25 +msgid "the numerical group ID" +msgstr "" + +#: ../Doc/library/grp.rst:27 +msgid "3" +msgstr "3" + +#: ../Doc/library/grp.rst:27 +msgid "gr_mem" +msgstr "gr_mem" + +#: ../Doc/library/grp.rst:27 +msgid "all the group member's user names" +msgstr "" + +#: ../Doc/library/grp.rst:31 +msgid "" +"The gid is an integer, name and password are strings, and the member list is " +"a list of strings. (Note that most users are not explicitly listed as " +"members of the group they are in according to the password database. Check " +"both databases to get complete membership information. Also note that a " +"``gr_name`` that starts with a ``+`` or ``-`` is likely to be a YP/NIS " +"reference and may not be accessible via :func:`getgrnam` or :func:" +"`getgrgid`.)" +msgstr "" + +#: ../Doc/library/grp.rst:38 +msgid "It defines the following items:" +msgstr "" + +#: ../Doc/library/grp.rst:43 +msgid "" +"Return the group database entry for the given numeric group ID. :exc:" +"`KeyError` is raised if the entry asked for cannot be found." +msgstr "" + +#: ../Doc/library/grp.rst:46 +msgid "" +"Since Python 3.6 the support of non-integer arguments like floats or strings " +"in :func:`getgrgid` is deprecated." +msgstr "" + +#: ../Doc/library/grp.rst:52 +msgid "" +"Return the group database entry for the given group name. :exc:`KeyError` is " +"raised if the entry asked for cannot be found." +msgstr "" + +#: ../Doc/library/grp.rst:58 +msgid "Return a list of all available group entries, in arbitrary order." +msgstr "" + +#: ../Doc/library/grp.rst:64 +msgid "Module :mod:`pwd`" +msgstr "Module :mod:`pwd`" + +#: ../Doc/library/grp.rst:64 +msgid "An interface to the user database, similar to this." +msgstr "" + +#: ../Doc/library/grp.rst:66 +msgid "Module :mod:`spwd`" +msgstr "" + +#: ../Doc/library/grp.rst:67 +msgid "An interface to the shadow password database, similar to this." +msgstr "" diff --git a/library/gzip.po b/library/gzip.po new file mode 100644 index 000000000..94f295985 --- /dev/null +++ b/library/gzip.po @@ -0,0 +1,385 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-07 15:03+0200\n" +"Last-Translator: Lomanic \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/gzip.rst:2 +msgid ":mod:`gzip` --- Support for :program:`gzip` files" +msgstr ":mod:`gzip` — Support pour les fichiers :program:`gzip`" + +#: ../Doc/library/gzip.rst:7 +msgid "**Source code:** :source:`Lib/gzip.py`" +msgstr "**Code source :** :source:`Lib/gzip.py`" + +#: ../Doc/library/gzip.rst:11 +msgid "" +"This module provides a simple interface to compress and decompress files " +"just like the GNU programs :program:`gzip` and :program:`gunzip` would." +msgstr "" +"Ce module fournit une interface simple pour compresser et décompresser des " +"fichiers tout comme le font les programmes GNU :program:`gzip` et :program:" +"`gunzip`." + +#: ../Doc/library/gzip.rst:14 +msgid "The data compression is provided by the :mod:`zlib` module." +msgstr "La compression de données est fournie par le module :mod:`zlib`." + +#: ../Doc/library/gzip.rst:16 +msgid "" +"The :mod:`gzip` module provides the :class:`GzipFile` class, as well as the :" +"func:`.open`, :func:`compress` and :func:`decompress` convenience functions. " +"The :class:`GzipFile` class reads and writes :program:`gzip`\\ -format " +"files, automatically compressing or decompressing the data so that it looks " +"like an ordinary :term:`file object`." +msgstr "" +"Le module :mod:`gzip` fournit la classe :class:`GzipFile` ainsi que les " +"fonctions pratiques :func:`.open`, :func:`compress` et :func:`decompress`. " +"La classe :class:`GzipFile` lit et écrit des fichiers au format :program:" +"`gzip`, compressant et décompressant automatiquement les données pour " +"qu'elles aient l'apparence d'un objet :term:`file object` ordinaire." + +#: ../Doc/library/gzip.rst:22 +msgid "" +"Note that additional file formats which can be decompressed by the :program:" +"`gzip` and :program:`gunzip` programs, such as those produced by :program:" +"`compress` and :program:`pack`, are not supported by this module." +msgstr "" +"Notez que les formats de fichier supplémentaires qui peuvent être " +"décompressés par les programmes :program:`gzip` et :program:`gunzip`, comme " +"ceux produits par le programmes :program:`compress` et :program:`pack`, ne " +"sont pas gérés par ce module." + +#: ../Doc/library/gzip.rst:26 +msgid "The module defines the following items:" +msgstr "Le module définit les éléments suivants :" + +#: ../Doc/library/gzip.rst:31 +msgid "" +"Open a gzip-compressed file in binary or text mode, returning a :term:`file " +"object`." +msgstr "" +"Ouvre un fichier compressé en *gzip* en mode binaire ou texte, renvoie un " +"objet :term:`file object`." + +#: ../Doc/library/gzip.rst:34 +msgid "" +"The *filename* argument can be an actual filename (a :class:`str` or :class:" +"`bytes` object), or an existing file object to read from or write to." +msgstr "" +"L'argument *filename* peut être un nom de fichier (un objet :class:`str` ou :" +"class:`bytes`) ou un objet fichier existant que l'on peut lire, ou où l'on " +"peut écrire." + +#: ../Doc/library/gzip.rst:37 +msgid "" +"The *mode* argument can be any of ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, " +"``'w'``, ``'wb'``, ``'x'`` or ``'xb'`` for binary mode, or ``'rt'``, " +"``'at'``, ``'wt'``, or ``'xt'`` for text mode. The default is ``'rb'``." +msgstr "" +"L'argument *mode* peut-être ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, ``'w'``, " +"``'wb'``, ``'x'`` ou ``'xb'`` pour le mode binaire ou ``'rt'``, ``'at'``, " +"``'wt'``, ou ``'xt'`` pour le mode texte. Le mode par défaut est ``'rb'``." + +#: ../Doc/library/gzip.rst:41 +msgid "" +"The *compresslevel* argument is an integer from 0 to 9, as for the :class:" +"`GzipFile` constructor." +msgstr "" +"L'argument *compresslevel* est un entier de 0 à 9, comme pour le " +"constructeur de la classe :class:`GzipFile`." + +#: ../Doc/library/gzip.rst:44 +msgid "" +"For binary mode, this function is equivalent to the :class:`GzipFile` " +"constructor: ``GzipFile(filename, mode, compresslevel)``. In this case, the " +"*encoding*, *errors* and *newline* arguments must not be provided." +msgstr "" +"En mode binaire, cette fonction est équivalente au constructeur de la " +"classe :class:`GzipFile` : ``GzipFile(filename, mode, compresslevel)``. Dans " +"ce cas, les arguments *encoding*, *errors* et *newline* ne doivent pas être " +"fournis." + +#: ../Doc/library/gzip.rst:48 +msgid "" +"For text mode, a :class:`GzipFile` object is created, and wrapped in an :" +"class:`io.TextIOWrapper` instance with the specified encoding, error " +"handling behavior, and line ending(s)." +msgstr "" +"En mode texte, un objet :class:`GzipFile` est créé et empaqueté dans une " +"instance de :class:`io.TextIOWrapper` avec l'encodage, la gestion d'erreur " +"et les fins de ligne spécifiés." + +#: ../Doc/library/gzip.rst:52 +msgid "" +"Added support for *filename* being a file object, support for text mode, and " +"the *encoding*, *errors* and *newline* arguments." +msgstr "" +"Ajout de la prise en charge de *filename* en tant qu'objet *file*, du mode " +"texte et des arguments *encoding*, *errors* et *newline*." + +#: ../Doc/library/gzip.rst:56 +msgid "Added support for the ``'x'``, ``'xb'`` and ``'xt'`` modes." +msgstr "Ajout de la prise en charge des modes ``'x'``, ``'xb'`` et ``'xt'``." + +#: ../Doc/library/gzip.rst:59 ../Doc/library/gzip.rst:156 +msgid "Accepts a :term:`path-like object`." +msgstr "Accepte un :term:`path-like object`." + +#: ../Doc/library/gzip.rst:64 +msgid "" +"Constructor for the :class:`GzipFile` class, which simulates most of the " +"methods of a :term:`file object`, with the exception of the :meth:`truncate` " +"method. At least one of *fileobj* and *filename* must be given a non-" +"trivial value." +msgstr "" +"Constructeur de la classe :class:`GzipFile` qui simule la plupart des " +"méthodes d'un objet :term:`file object` à l'exception de la méthode :meth:" +"`truncate`. Au moins un des arguments *fileobj* et *filename* doit avoir une " +"valeur non triviale." + +#: ../Doc/library/gzip.rst:69 +msgid "" +"The new class instance is based on *fileobj*, which can be a regular file, " +"an :class:`io.BytesIO` object, or any other object which simulates a file. " +"It defaults to ``None``, in which case *filename* is opened to provide a " +"file object." +msgstr "" +"La nouvelle instance de classe est basée sur *fileobj* qui peut être un " +"fichier usuel, un objet :class:`io.BytesIO` ou tout autre objet qui simule " +"un fichier. *fileobj* est par défaut à *None*, dans ce cas *filename* est " +"ouvert afin de fournir un objet fichier." + +#: ../Doc/library/gzip.rst:74 +msgid "" +"When *fileobj* is not ``None``, the *filename* argument is only used to be " +"included in the :program:`gzip` file header, which may include the original " +"filename of the uncompressed file. It defaults to the filename of " +"*fileobj*, if discernible; otherwise, it defaults to the empty string, and " +"in this case the original filename is not included in the header." +msgstr "" +"Quand *fileobj* n'est pas à ``None``, l'argument *filename* est uniquement " +"utilisé pour être inclus dans l'entête du fichier :program:`gzip`, qui peut " +"inclure le nom original du fichier décompressé. Il est par défaut défini " +"avec le nom de fichier de *fileobj* s'il est discernable, sinon il est par " +"défaut défini à une chaîne de caractères vide et dans ce cas le nom du " +"fichier orignal n'est pas inclus dans l'entête." + +#: ../Doc/library/gzip.rst:80 +msgid "" +"The *mode* argument can be any of ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, " +"``'w'``, ``'wb'``, ``'x'``, or ``'xb'``, depending on whether the file will " +"be read or written. The default is the mode of *fileobj* if discernible; " +"otherwise, the default is ``'rb'``." +msgstr "" +"L'argument *mode* peut-être ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, ``'w'``, " +"``'wb'``, ``'x'``, ou ``'xb'``, selon que le fichier va être lu ou écrit. " +"Par défaut prend la valeur du mode de *fileobj* si discernable ; sinon, la " +"valeur par défaut est ``'rb'``." + +#: ../Doc/library/gzip.rst:85 +msgid "" +"Note that the file is always opened in binary mode. To open a compressed " +"file in text mode, use :func:`.open` (or wrap your :class:`GzipFile` with " +"an :class:`io.TextIOWrapper`)." +msgstr "" +"Notez que le fichier est toujours ouvert en mode binaire. Pour ouvrir un " +"fichier compressé en mode texte, utilisez la fonction :func:`.open` (ou " +"empaquetez votre classe :class:`GzipFile` avec un :class:`io.TextIOWrapper`)." + +#: ../Doc/library/gzip.rst:89 +msgid "" +"The *compresslevel* argument is an integer from ``0`` to ``9`` controlling " +"the level of compression; ``1`` is fastest and produces the least " +"compression, and ``9`` is slowest and produces the most compression. ``0`` " +"is no compression. The default is ``9``." +msgstr "" +"L'argument *compresslevel* est un entier de ``0`` à ``9`` contrôlant le " +"niveau de compression,``1`` est le plus rapide et produit la compression la " +"plus faible et ``9`` est le plus rapide et produit la compression la plus " +"élevée. ``0`` désactive la compression. Par défaut à ``9``." + +#: ../Doc/library/gzip.rst:94 +msgid "" +"The *mtime* argument is an optional numeric timestamp to be written to the " +"last modification time field in the stream when compressing. It should only " +"be provided in compression mode. If omitted or ``None``, the current time " +"is used. See the :attr:`mtime` attribute for more details." +msgstr "" +"L'argument *mtime* est un *timestamp* numérique optionnel à écrire dans le " +"champ de date de dernière modification du flux durant la compression. Il ne " +"doit être défini qu'en mode compression. S'il est omis ou ``None``, la date " +"courante est utilisée. Voir l'attribut :attr:`mtime` pour plus de détails." + +#: ../Doc/library/gzip.rst:99 +msgid "" +"Calling a :class:`GzipFile` object's :meth:`close` method does not close " +"*fileobj*, since you might wish to append more material after the compressed " +"data. This also allows you to pass an :class:`io.BytesIO` object opened for " +"writing as *fileobj*, and retrieve the resulting memory buffer using the :" +"class:`io.BytesIO` object's :meth:`~io.BytesIO.getvalue` method." +msgstr "" +"Appeler la méthode :meth:`close` d'un objet :class:`GzipFile` ne ferme pas " +"*fileobj*, puisque vous pourriez avoir besoin d'ajouter des informations " +"après les données compressées. Cela vous permet aussi de passer un objet :" +"class:`io.BytesIO` ouvert en écriture en tant que *fileobj* et récupérer le " +"tampon mémoire final en utilisant la méthode :meth:`~io.BytesIO.getvalue` de " +"l'objet :class:`io.BytesIO`." + +#: ../Doc/library/gzip.rst:105 +msgid "" +":class:`GzipFile` supports the :class:`io.BufferedIOBase` interface, " +"including iteration and the :keyword:`with` statement. Only the :meth:" +"`truncate` method isn't implemented." +msgstr "" +":La classe :class:`GzipFile` implémente l'interface :class:`io." +"BufferedIOBase`, incluant l'itération, la déclaration :keyword:`with`. La " +"méthode :meth:`truncate` est la seule non implémentée." + +#: ../Doc/library/gzip.rst:109 +msgid ":class:`GzipFile` also provides the following method and attribute:" +msgstr "" +"La classe :class:`GzipFile` fournit aussi la méthode et l'attribut suivant :" + +#: ../Doc/library/gzip.rst:113 +msgid "" +"Read *n* uncompressed bytes without advancing the file position. At most one " +"single read on the compressed stream is done to satisfy the call. The " +"number of bytes returned may be more or less than requested." +msgstr "" +"Lit *n* octets non compressés sans avancer la position dans le fichier. Au " +"plus une seule lecture sur le flux compressé est faite pour satisfaire " +"l'appel. Le nombre d'octets retournés peut être supérieur ou inférieur au " +"nombre demandé." + +#: ../Doc/library/gzip.rst:118 +msgid "" +"While calling :meth:`peek` does not change the file position of the :class:" +"`GzipFile`, it may change the position of the underlying file object (e.g. " +"if the :class:`GzipFile` was constructed with the *fileobj* parameter)." +msgstr "" +"Bien que l'appel à :meth:`peek` ne change pas la position dans le fichier de " +"l'objet :class:`GzipFile`, il peut changer la position de l'objet de fichier " +"sous-jacent (par exemple, si l'instance de :class:`GzipFile` a été " +"construite avec le paramètre *fileobj*)." + +#: ../Doc/library/gzip.rst:127 +msgid "" +"When decompressing, the value of the last modification time field in the " +"most recently read header may be read from this attribute, as an integer. " +"The initial value before reading any headers is ``None``." +msgstr "" +"Lors de la décompression, la valeur du champ de date de dernière " +"modification dans le dernier en-tête lu peut être lue à partir de cet " +"attribut, comme un entier. La valeur initiale avant lecture d'un en-tête est " +"``None``." + +#: ../Doc/library/gzip.rst:131 +msgid "" +"All :program:`gzip` compressed streams are required to contain this " +"timestamp field. Some programs, such as :program:`gunzip`\\ , make use of " +"the timestamp. The format is the same as the return value of :func:`time." +"time` and the :attr:`~os.stat_result.st_mtime` attribute of the object " +"returned by :func:`os.stat`." +msgstr "" +"Tous les flux compressés en :program:`gzip` doivent contenir ce champ " +"*timestamp*. Certains programmes, comme :program:`gunzip`\\ , utilisent ce " +"*timestamp*. Ce format est le même que la valeur retour de :func:`time.time` " +"et l'attribut :attr:`~os.stat_result.st_mtime` de l'objet retourné par :func:" +"`os.stat`." + +#: ../Doc/library/gzip.rst:137 +msgid "" +"Support for the :keyword:`with` statement was added, along with the *mtime* " +"constructor argument and :attr:`mtime` attribute." +msgstr "" +"Ajout de la prise en charge du mot-clef :keyword:`with`, ainsi que de " +"l'argument *mtime* du constructeur et de l'attribut :attr:`mtime`." + +#: ../Doc/library/gzip.rst:141 +msgid "Support for zero-padded and unseekable files was added." +msgstr "" +"Ajout de la prise en charge des fichiers non navigables ou commençant par " +"des octets nuls." + +#: ../Doc/library/gzip.rst:144 +msgid "The :meth:`io.BufferedIOBase.read1` method is now implemented." +msgstr "La méthode :meth:`io.BufferedIOBase.read1` est désormais implémentée." + +#: ../Doc/library/gzip.rst:147 +msgid "Added support for the ``'x'`` and ``'xb'`` modes." +msgstr "Ajout de la prise en charge des modes ``'x'`` et ``'xb'``." + +#: ../Doc/library/gzip.rst:150 +msgid "" +"Added support for writing arbitrary :term:`bytes-like objects `. The :meth:`~io.BufferedIOBase.read` method now accepts an argument " +"of ``None``." +msgstr "" +"Ajout de la prise en charge de l'écriture d'objets :term:`bytes-like objects " +"` arbitraires. La méthode :meth:`~io.BufferedIOBase.read` " +"accepte désormais un argument de valeur ``None``." + +#: ../Doc/library/gzip.rst:162 +msgid "" +"Compress the *data*, returning a :class:`bytes` object containing the " +"compressed data. *compresslevel* has the same meaning as in the :class:" +"`GzipFile` constructor above." +msgstr "" +"Compresse les données *data*, renvoie un objet :class:`bytes` contenant les " +"données compressées. L'argument *compresslevel* a la même signification que " +"dans le constructeur de la classe :class:`GzipFile` ci-dessus." + +#: ../Doc/library/gzip.rst:170 +msgid "" +"Decompress the *data*, returning a :class:`bytes` object containing the " +"uncompressed data." +msgstr "" +"Décompresse les données *data*, retourne un objet :class:`bytes` contenant " +"les données décompressées." + +#: ../Doc/library/gzip.rst:179 +msgid "Examples of usage" +msgstr "Exemples d'utilisation" + +#: ../Doc/library/gzip.rst:181 +msgid "Example of how to read a compressed file::" +msgstr "Exemple montrant comment lire un fichier compressé ::" + +#: ../Doc/library/gzip.rst:187 +msgid "Example of how to create a compressed GZIP file::" +msgstr "Exemple montrant comment créer un fichier GZIP ::" + +#: ../Doc/library/gzip.rst:194 +msgid "Example of how to GZIP compress an existing file::" +msgstr "" +"Exemple montrant comment compresser dans un GZIP un fichier existant ::" + +#: ../Doc/library/gzip.rst:202 +msgid "Example of how to GZIP compress a binary string::" +msgstr "" +"Exemple montrant comment compresser dans un GZIP un binaire dans une " +"chaîne ::" + +#: ../Doc/library/gzip.rst:211 +msgid "Module :mod:`zlib`" +msgstr "Module :mod:`zlib`" + +#: ../Doc/library/gzip.rst:211 +msgid "" +"The basic data compression module needed to support the :program:`gzip` file " +"format." +msgstr "" +"Le module de compression de données de base nécessaire pour gérer le format " +"de fichier :program:`gzip`." diff --git a/library/hashlib.po b/library/hashlib.po new file mode 100644 index 000000000..10d5bc5af --- /dev/null +++ b/library/hashlib.po @@ -0,0 +1,1088 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-03-26 17:49+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/hashlib.rst:2 +msgid ":mod:`hashlib` --- Secure hashes and message digests" +msgstr "" +":mod:`hashlib` --- Algorithmes de hachage sécurisés et synthèse de messages" + +#: ../Doc/library/hashlib.rst:10 +msgid "**Source code:** :source:`Lib/hashlib.py`" +msgstr "**Code source :** :source:`Lib/hashlib.py`" + +#: ../Doc/library/hashlib.rst:23 +msgid "" +"This module implements a common interface to many different secure hash and " +"message digest algorithms. Included are the FIPS secure hash algorithms " +"SHA1, SHA224, SHA256, SHA384, and SHA512 (defined in FIPS 180-2) as well as " +"RSA's MD5 algorithm (defined in Internet :rfc:`1321`). The terms \"secure " +"hash\" and \"message digest\" are interchangeable. Older algorithms were " +"called message digests. The modern term is secure hash." +msgstr "" +"Ce module implémente une interface commune à différents algorithmes de " +"hachage sécurisés et de synthèse de messages. Sont inclus les algorithmes " +"standards FIPS de hachage SHA1, SHA224, SHA256, SHA384, et SHA512 (définis " +"dans FIPS 180-2) ainsi que l'algorithme MD5 de RSA (défini par la :rfc:" +"`1321`). Les termes \"algorithmes de hachage sécurisé\" et \"algorithme de " +"synthèse de message\" sont interchangeables. Les anciens algorithmes étaient " +"appelés\" algorithmes de synthèse de messages\". Le terme moderne est " +"\"algorithme de hachage sécurisé\"." + +#: ../Doc/library/hashlib.rst:32 +msgid "" +"If you want the adler32 or crc32 hash functions, they are available in the :" +"mod:`zlib` module." +msgstr "" +"Si vous préférez utiliser les fonctions de hachage *adler32* ou *crc32*, " +"elles sont disponibles dans le module :mod:`zlib`." + +#: ../Doc/library/hashlib.rst:37 +msgid "" +"Some algorithms have known hash collision weaknesses, refer to the \"See also" +"\" section at the end." +msgstr "" +"Certains algorithmes ont des faiblesses connues relatives à la collision, se " +"référer à la section \"Voir aussi\" à la fin." + +#: ../Doc/library/hashlib.rst:44 +msgid "Hash algorithms" +msgstr "Algorithmes de hachage" + +#: ../Doc/library/hashlib.rst:46 +msgid "" +"There is one constructor method named for each type of :dfn:`hash`. All " +"return a hash object with the same simple interface. For example: use :func:" +"`sha256` to create a SHA-256 hash object. You can now feed this object with :" +"term:`bytes-like objects ` (normally :class:`bytes`) " +"using the :meth:`update` method. At any point you can ask it for the :dfn:" +"`digest` of the concatenation of the data fed to it so far using the :meth:" +"`digest` or :meth:`hexdigest` methods." +msgstr "" +"Il y a un constructeur nommé selon chaque type de :dfn:`hash`. Tous " +"retournent un objet haché avec la même interface. Par exemple : utilisez :" +"func:`sha256` pour créer un objet haché de type SHA-256. Vous pouvez " +"maintenant utiliser cet objet :term:`bytes-like objects ` " +"(normalement des :class:`bytes`) en utilisant la méthode :meth:`update`. À " +"tout moment vous pouvez demander le :dfn:`digest` de la concaténation des " +"données fournies en utilisant les méthodes :meth:`digest` ou :meth:" +"`hexdigest`." + +#: ../Doc/library/hashlib.rst:56 +msgid "" +"For better multithreading performance, the Python :term:`GIL` is released " +"for data larger than 2047 bytes at object creation or on update." +msgstr "" +"Pour de meilleures performances avec de multiples fils d'exécution, le :term:" +"`GIL` Python est relâché pour des données dont la taille est supérieure à " +"2047 octets lors de leur création ou leur mise à jour." + +#: ../Doc/library/hashlib.rst:61 +msgid "" +"Feeding string objects into :meth:`update` is not supported, as hashes work " +"on bytes, not on characters." +msgstr "" +"Fournir des objets chaînes de caractères à la méthode :meth:`update` n'est " +"pas implémenté, comme les fonctions de hachages travaillent sur des *bytes* " +"et pas sur des caractères." + +#: ../Doc/library/hashlib.rst:66 +msgid "" +"Constructors for hash algorithms that are always present in this module are :" +"func:`sha1`, :func:`sha224`, :func:`sha256`, :func:`sha384`, :func:" +"`sha512`, :func:`blake2b`, and :func:`blake2s`. :func:`md5` is normally " +"available as well, though it may be missing if you are using a rare \"FIPS " +"compliant\" build of Python. Additional algorithms may also be available " +"depending upon the OpenSSL library that Python uses on your platform. On " +"most platforms the :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :" +"func:`sha3_512`, :func:`shake_128`, :func:`shake_256` are also available." +msgstr "" +"Les constructeurs pour les algorithmes de hachage qui sont toujours présents " +"dans ce module sont :func:`sha1`, :func:`sha224`, :func:`sha256`, :func:" +"`sha384`, :func:`sha512`, :func:`blake2b`, et :func:`blake2s`. :func:`md5` " +"est normalement disponible aussi, mais il peut être manquant si vous " +"utilisez une forme rare de Python \"conforme FIPS\" . Des algorithmes " +"additionnels peuvent aussi être disponibles dépendant de la librairie " +"OpenSSL que Python utilise sur votre plate-forme. Sur la plupart des plates-" +"formes les fonctions :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :" +"func:`sha3_512`, :func:`shake_128`, :func:`shake_256` sont aussi disponibles." + +#: ../Doc/library/hashlib.rst:76 +msgid "" +"SHA3 (Keccak) and SHAKE constructors :func:`sha3_224`, :func:`sha3_256`, :" +"func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256`." +msgstr "" +"Les constructeurs SHA3 (Keccak) et SHAKE :func:`sha3_224`, :func:" +"`sha3_256`, :func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:" +"`shake_256`." + +#: ../Doc/library/hashlib.rst:80 +msgid ":func:`blake2b` and :func:`blake2s` were added." +msgstr "Les fonctions :func:`blake2b` et :func:`blake2s` ont été ajoutées." + +#: ../Doc/library/hashlib.rst:83 +msgid "" +"For example, to obtain the digest of the byte string ``b'Nobody inspects the " +"spammish repetition'``::" +msgstr "" +"Par exemple, pour obtenir l'empreinte de la chaîne ``b'Nobody inspects the " +"spammish repetition'`` ::" + +#: ../Doc/library/hashlib.rst:97 +msgid "More condensed:" +msgstr "En plus condensé ::" + +#: ../Doc/library/hashlib.rst:104 +msgid "" +"Is a generic constructor that takes the string *name* of the desired " +"algorithm as its first parameter. It also exists to allow access to the " +"above listed hashes as well as any other algorithms that your OpenSSL " +"library may offer. The named constructors are much faster than :func:`new` " +"and should be preferred." +msgstr "" +"Est un constructeur générique qui prend comme premier paramètre le nom de " +"l'algorithme désiré (*name*) . Il existe pour permettre l'accès aux " +"algorithmes listés ci-dessus ainsi qu'aux autres algorithmes que votre " +"librairie OpenSSL peut offrir. Les constructeurs nommés sont beaucoup plus " +"rapides que :func:`new` et doivent être privilégiés." + +#: ../Doc/library/hashlib.rst:110 +msgid "Using :func:`new` with an algorithm provided by OpenSSL:" +msgstr "En utilisant :func:`new` avec un algorithme fourni par OpenSSL ::" + +#: ../Doc/library/hashlib.rst:117 +msgid "Hashlib provides the following constant attributes:" +msgstr "*Hashlib* fournit les constantes suivantes ::" + +#: ../Doc/library/hashlib.rst:121 +msgid "" +"A set containing the names of the hash algorithms guaranteed to be supported " +"by this module on all platforms. Note that 'md5' is in this list despite " +"some upstream vendors offering an odd \"FIPS compliant\" Python build that " +"excludes it." +msgstr "" +"Un ensemble contenant les noms des algorithmes de hachage garantis d'être " +"implémentés par ce module sur toutes les plate-formes. Notez que *md5* est " +"dans cette liste malgré certains éditeurs qui offrent une implémentation " +"Python de la librairie compatible FIPS l'excluant." + +#: ../Doc/library/hashlib.rst:130 +msgid "" +"A set containing the names of the hash algorithms that are available in the " +"running Python interpreter. These names will be recognized when passed to :" +"func:`new`. :attr:`algorithms_guaranteed` will always be a subset. The " +"same algorithm may appear multiple times in this set under different names " +"(thanks to OpenSSL)." +msgstr "" +"Un ensemble contenant les noms des algorithmes de hachage disponibles dans " +"l'interpréteur Python. Ces noms sont reconnus lorsqu'ils sont passés à la " +"fonction :func:`new`. :attr:`algorithms_guaranteed` est toujours un sous-" +"ensemble. Le même algorithme peut apparaître plusieurs fois dans cet " +"ensemble sous un nom différent (grâce à OpenSSL)." + +#: ../Doc/library/hashlib.rst:138 +msgid "" +"The following values are provided as constant attributes of the hash objects " +"returned by the constructors:" +msgstr "" +"Les valeurs suivantes sont fournis en tant qu'attributs constants des objets " +"hachés retournés par les constructeurs ::" + +#: ../Doc/library/hashlib.rst:144 +msgid "The size of the resulting hash in bytes." +msgstr "La taille du *hash* résultant en octets." + +#: ../Doc/library/hashlib.rst:148 +msgid "The internal block size of the hash algorithm in bytes." +msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." + +#: ../Doc/library/hashlib.rst:150 +msgid "A hash object has the following attributes:" +msgstr "L'objet haché possède les attributs suivants ::" + +#: ../Doc/library/hashlib.rst:154 +msgid "" +"The canonical name of this hash, always lowercase and always suitable as a " +"parameter to :func:`new` to create another hash of this type." +msgstr "" +"Le nom canonique de cet objet haché, toujours en minuscule et toujours " +"transmissible à la fonction :func:`new` pour créer un autre objet haché de " +"ce type." + +#: ../Doc/library/hashlib.rst:157 +msgid "" +"The name attribute has been present in CPython since its inception, but " +"until Python 3.4 was not formally specified, so may not exist on some " +"platforms." +msgstr "" +"L'attribut *name* est présent dans CPython depuis sa création, mais n'était " +"pas spécifié formellement jusqu'à Python 3.4, il peut ne pas exister sur " +"certaines plate-formes." + +#: ../Doc/library/hashlib.rst:162 +msgid "A hash object has the following methods:" +msgstr "L'objet haché possède les méthodes suivantes ::" + +#: ../Doc/library/hashlib.rst:167 +msgid "" +"Update the hash object with the :term:`bytes-like object`. Repeated calls " +"are equivalent to a single call with the concatenation of all the arguments: " +"``m.update(a); m.update(b)`` is equivalent to ``m.update(a+b)``." +msgstr "" +"Met à jour l'objet haché avec :term:`bytes-like object`. Les appels répétés " +"sont équivalent à la concaténation de tous les arguments : ``m.update(a); m." +"update(b)`` est équivalent à ``m.update(a+b)``." + +#: ../Doc/library/hashlib.rst:172 +msgid "" +"The Python GIL is released to allow other threads to run while hash updates " +"on data larger than 2047 bytes is taking place when using hash algorithms " +"supplied by OpenSSL." +msgstr "" +"Le GIL Python est relâché pour permettre aux autres fils d'exécution de " +"tourner pendant que la fonction de hachage met à jour des données plus " +"larges que 2047 octets, lorsque les algorithmes fournis par OpenSSL sont " +"utilisés." + +#: ../Doc/library/hashlib.rst:180 +msgid "" +"Return the digest of the data passed to the :meth:`update` method so far. " +"This is a bytes object of size :attr:`digest_size` which may contain bytes " +"in the whole range from 0 to 255." +msgstr "" +"Renvoie le *digest* des données passées à la méthode :meth:`update`. C'est " +"un objet de type *bytes* de taille :attr:`digest_size` qui contient des " +"octets dans l'intervalle 0 à 255." + +#: ../Doc/library/hashlib.rst:187 ../Doc/library/hashlib.rst:215 +msgid "" +"Like :meth:`digest` except the digest is returned as a string object of " +"double length, containing only hexadecimal digits. This may be used to " +"exchange the value safely in email or other non-binary environments." +msgstr "" +"Comme la méthode :meth:`digest` sauf que le *digest* renvoyé est une chaîne " +"de caractères de longueur double, contenant seulement des chiffres " +"hexadécimaux. Cela peut être utilisé pour échanger sans risque des valeurs " +"dans les *e-mails* ou dans les environnements non binaires." + +#: ../Doc/library/hashlib.rst:194 +msgid "" +"Return a copy (\"clone\") of the hash object. This can be used to " +"efficiently compute the digests of data sharing a common initial substring." +msgstr "" +"Renvoie une copie (\"clone\") de l'objet haché. Cela peut être utilisé pour " +"calculer efficacement les *digests* de données partageant des sous-chaînes " +"communes." + +#: ../Doc/library/hashlib.rst:199 +msgid "SHAKE variable length digests" +msgstr "Synthèse de messages de taille variable SHAKE" + +#: ../Doc/library/hashlib.rst:201 +msgid "" +"The :func:`shake_128` and :func:`shake_256` algorithms provide variable " +"length digests with length_in_bits//2 up to 128 or 256 bits of security. As " +"such, their digest methods require a length. Maximum length is not limited " +"by the SHAKE algorithm." +msgstr "" +"Les algorithmes :func:`shake_128` et :func:`shake_256` fournissent des " +"messages de longueur variable avec des ``longueurs_en_bits // 2`` jusqu'à " +"128 ou 256 bits de sécurité. Leurs méthodes *digests* requièrent une " +"longueur. Les longueurs maximales ne sont pas limitées par l'algorithme " +"SHAKE." + +#: ../Doc/library/hashlib.rst:208 +msgid "" +"Return the digest of the data passed to the :meth:`update` method so far. " +"This is a bytes object of size *length* which may contain bytes in the whole " +"range from 0 to 255." +msgstr "" +"Renvoie le *digest* des données passées à la méthode :meth:`update`. C'est " +"un objet de type *bytes* de taille *length* qui contient des octets dans " +"l'intervalle 0 à 255." + +#: ../Doc/library/hashlib.rst:221 +msgid "Key derivation" +msgstr "Dérivation de clé" + +#: ../Doc/library/hashlib.rst:223 +msgid "" +"Key derivation and key stretching algorithms are designed for secure " +"password hashing. Naive algorithms such as ``sha1(password)`` are not " +"resistant against brute-force attacks. A good password hashing function must " +"be tunable, slow, and include a `salt `_." +msgstr "" +"Les algorithmes de dérivation de clés et d'étirement de clés sont conçus " +"pour le hachage sécurisé de mots de passe. Des algorithmes naïfs comme " +"``sha1(password)`` ne sont pas résistants aux attaques par force brute. Une " +"bonne fonction de hachage doit être paramétrable, lente, et inclure un `sel " +"`_." + +#: ../Doc/library/hashlib.rst:231 +msgid "" +"The function provides PKCS#5 password-based key derivation function 2. It " +"uses HMAC as pseudorandom function." +msgstr "" +"La fonction fournit une fonction de dérivation PKCS#5 (*Public Key " +"Cryptographic Standards #5 v2.0*). Elle utilise HMAC comme fonction de " +"pseudo-aléatoire." + +#: ../Doc/library/hashlib.rst:234 +msgid "" +"The string *hash_name* is the desired name of the hash digest algorithm for " +"HMAC, e.g. 'sha1' or 'sha256'. *password* and *salt* are interpreted as " +"buffers of bytes. Applications and libraries should limit *password* to a " +"sensible length (e.g. 1024). *salt* should be about 16 or more bytes from a " +"proper source, e.g. :func:`os.urandom`." +msgstr "" +"La chaîne de caractères *hash_name* est le nom de l'algorithme de hachage " +"désiré pour le HMAC, par exemple ``\"sha1\"`` ou ``\"sha256\"``. *password* " +"et *salt* sont interprétés comme des tampons d'octets. Les applications et " +"bibliothèques doivent limiter *password* à une longueur raisonnable (comme " +"``1024``). *salt* doit être de 16 octets ou plus provenant d'une source " +"correcte, e.g. :func:`os.urandom`." + +#: ../Doc/library/hashlib.rst:240 +msgid "" +"The number of *iterations* should be chosen based on the hash algorithm and " +"computing power. As of 2013, at least 100,000 iterations of SHA-256 are " +"suggested." +msgstr "" +"Le nombre d'*iterations* doit être choisi sur la base de l'algorithme de " +"hachage et de la puissance de calcul. En 2013, au moins 100000 itérations de " +"SHA-256 sont recommandées." + +#: ../Doc/library/hashlib.rst:244 +msgid "" +"*dklen* is the length of the derived key. If *dklen* is ``None`` then the " +"digest size of the hash algorithm *hash_name* is used, e.g. 64 for SHA-512." +msgstr "" +"*dklen* est la longueur de la clé dérivée. Si *dklen* vaut ``None`` alors la " +"taille du message de l'algorithme de hachage *hash_name* est utilisé, e.g. " +"64 pour SHA-512." + +#: ../Doc/library/hashlib.rst:256 +msgid "" +"A fast implementation of *pbkdf2_hmac* is available with OpenSSL. The " +"Python implementation uses an inline version of :mod:`hmac`. It is about " +"three times slower and doesn't release the GIL." +msgstr "" +"Une implémentation rapide de *pbkdf2_hmac* est disponible avec OpenSSL. " +"L'implémentation Python utilise une version anonyme de :mod:`hmac`. Elle est " +"trois fois plus lente et ne libère pas le GIL." + +#: ../Doc/library/hashlib.rst:262 +msgid "" +"The function provides scrypt password-based key derivation function as " +"defined in :rfc:`7914`." +msgstr "" +"La fonction fournit la fonction de dérivation de clé *scrypt* comme définie " +"dans :rfc:`7914`." + +#: ../Doc/library/hashlib.rst:265 +msgid "" +"*password* and *salt* must be :term:`bytes-like objects `. Applications and libraries should limit *password* to a sensible " +"length (e.g. 1024). *salt* should be about 16 or more bytes from a proper " +"source, e.g. :func:`os.urandom`." +msgstr "" +"*password* et *salt* doivent être des :term:`bytes-like objects `. Les applications et bibliothèques doivent limiter *password* à une " +"longueur raisonnable (e.g. 1024). *salt* doit être de 16 octets ou plus " +"provenant d'une source correcte, e.g. :func:`os.urandom`." + +#: ../Doc/library/hashlib.rst:270 +msgid "" +"*n* is the CPU/Memory cost factor, *r* the block size, *p* parallelization " +"factor and *maxmem* limits memory (OpenSSL 1.1.0 defaults to 32 MiB). " +"*dklen* is the length of the derived key." +msgstr "" +"*n* est le facteur de coût CPU/Mémoire, *r* la taille de bloc, *p* le " +"facteur de parallélisation et *maxmem* limite la mémoire (OpenSSL 1.1.0 " +"limite à 32 MB par défaut). *dklen* est la longueur de la clé dérivée." + +#: ../Doc/library/hashlib.rst:275 +msgid ":ref:`Availability `: OpenSSL 1.1+." +msgstr ":ref:`Disponibilité ` : OpenSSL 1.1+." + +#: ../Doc/library/hashlib.rst:280 +msgid "BLAKE2" +msgstr "BLAKE2" + +#: ../Doc/library/hashlib.rst:287 +msgid "" +"BLAKE2_ is a cryptographic hash function defined in :rfc:`7693` that comes " +"in two flavors:" +msgstr "" +"BLAKE2_ est une fonction de hachage cryptographique définie dans la :rfc:" +"`7693` et disponible en deux versions ::" + +#: ../Doc/library/hashlib.rst:290 +msgid "" +"**BLAKE2b**, optimized for 64-bit platforms and produces digests of any size " +"between 1 and 64 bytes," +msgstr "" +"**BLAKE2b**, optimisée pour les plates-formes 64-bit et produisant des " +"messages de toutes tailles entre 1 et 64 octets," + +#: ../Doc/library/hashlib.rst:293 +msgid "" +"**BLAKE2s**, optimized for 8- to 32-bit platforms and produces digests of " +"any size between 1 and 32 bytes." +msgstr "" +"**BLAKE2s**, optimisée pour les plates-formes de 8 à 32-bit et produisant " +"des messages de toutes tailles entre 1 et 32 octets." + +#: ../Doc/library/hashlib.rst:296 +msgid "" +"BLAKE2 supports **keyed mode** (a faster and simpler replacement for HMAC_), " +"**salted hashing**, **personalization**, and **tree hashing**." +msgstr "" +"BLAKE2 gère diverses fonctionnalités **keyed mode** (un remplacement plus " +"rapide et plus simple pour HMAC_), **salted hashing**, **personalization**, " +"et **tree hashing**." + +#: ../Doc/library/hashlib.rst:299 +msgid "" +"Hash objects from this module follow the API of standard library's :mod:" +"`hashlib` objects." +msgstr "" +"Les objets hachés de ce module suivent l'API des objets du module :mod:" +"`hashlib` de la librairie standard." + +#: ../Doc/library/hashlib.rst:304 +msgid "Creating hash objects" +msgstr "Création d'objets hachés" + +#: ../Doc/library/hashlib.rst:306 +msgid "New hash objects are created by calling constructor functions:" +msgstr "Les nouveaux objets hachés sont créés en appelant les constructeurs ::" + +#: ../Doc/library/hashlib.rst:318 +msgid "" +"These functions return the corresponding hash objects for calculating " +"BLAKE2b or BLAKE2s. They optionally take these general parameters:" +msgstr "" +"Ces fonctions produisent l'objet haché correspondant aux calculs de BLAKE2b " +"ou BLAKE2s. Elles prennent ces paramètres optionnels ::" + +#: ../Doc/library/hashlib.rst:321 +msgid "" +"*data*: initial chunk of data to hash, which must be :term:`bytes-like " +"object`. It can be passed only as positional argument." +msgstr "" +"*data*: morceau initial de données à hacher, qui doit être un objet de type :" +"term:`bytes-like object`. Il peut être passé comme argument positionnel." + +#: ../Doc/library/hashlib.rst:324 +msgid "*digest_size*: size of output digest in bytes." +msgstr "*digest_size*: taille en sortie du message en octets." + +#: ../Doc/library/hashlib.rst:326 +msgid "" +"*key*: key for keyed hashing (up to 64 bytes for BLAKE2b, up to 32 bytes for " +"BLAKE2s)." +msgstr "" +"*key*: clé pour les code d'authentification de message *keyed hashing* " +"(jusqu'à 64 octets pour BLAKE2b, jusqu'à 32 octets pour BLAKE2s)." + +#: ../Doc/library/hashlib.rst:329 +msgid "" +"*salt*: salt for randomized hashing (up to 16 bytes for BLAKE2b, up to 8 " +"bytes for BLAKE2s)." +msgstr "" +"*salt*: sel pour le hachage randomisé *randomized hashing* (jusqu'à 16 " +"octets pour BLAKE2b, jusqu'à 8 octets pour BLAKE2s)." + +#: ../Doc/library/hashlib.rst:332 +msgid "" +"*person*: personalization string (up to 16 bytes for BLAKE2b, up to 8 bytes " +"for BLAKE2s)." +msgstr "" +"*person*: chaîne de personnalisation (jusqu'à 16 octets pour BLAKE2b, " +"jusqu'à 8 octets pour BLAKE2s)." + +#: ../Doc/library/hashlib.rst:335 +msgid "The following table shows limits for general parameters (in bytes):" +msgstr "" +"Le tableau suivant présente les limites des paramètres généraux (en " +"octets) ::" + +#: ../Doc/library/hashlib.rst:338 +msgid "Hash" +msgstr "Hash" + +#: ../Doc/library/hashlib.rst:338 +msgid "digest_size" +msgstr "digest_size" + +#: ../Doc/library/hashlib.rst:338 +msgid "len(key)" +msgstr "len(key)" + +#: ../Doc/library/hashlib.rst:338 +msgid "len(salt)" +msgstr "len(salt)" + +#: ../Doc/library/hashlib.rst:338 +msgid "len(person)" +msgstr "len(person)" + +#: ../Doc/library/hashlib.rst:340 +msgid "BLAKE2b" +msgstr "BLAKE2b" + +#: ../Doc/library/hashlib.rst:340 +msgid "64" +msgstr "64" + +#: ../Doc/library/hashlib.rst:340 +msgid "16" +msgstr "16" + +#: ../Doc/library/hashlib.rst:341 +msgid "BLAKE2s" +msgstr "BLAKE2s" + +#: ../Doc/library/hashlib.rst:341 +msgid "32" +msgstr "32" + +#: ../Doc/library/hashlib.rst:341 +msgid "8" +msgstr "8" + +#: ../Doc/library/hashlib.rst:346 +msgid "" +"BLAKE2 specification defines constant lengths for salt and personalization " +"parameters, however, for convenience, this implementation accepts byte " +"strings of any size up to the specified length. If the length of the " +"parameter is less than specified, it is padded with zeros, thus, for " +"example, ``b'salt'`` and ``b'salt\\x00'`` is the same value. (This is not " +"the case for *key*.)" +msgstr "" +"Les spécifications de BLAKE2 définissent des longueurs constantes pour les " +"sel et chaînes de personnalisation, toutefois, par commodité, cette " +"implémentation accepte des chaînes *byte* de n'importe quelle taille jusqu'à " +"la longueur spécifiée. Si la longueur du paramètre est moindre par rapport à " +"celle spécifiée, il est complété par des zéros, ainsi, par exemple, " +"``b'salt'`` et ``b'salt\\x00'`` sont la même valeur (Ce n'est pas le cas " +"pour *key*.)" + +#: ../Doc/library/hashlib.rst:353 +msgid "These sizes are available as module `constants`_ described below." +msgstr "" +"Ces tailles sont disponibles comme `constants`_ du module et décrites ci-" +"dessous." + +#: ../Doc/library/hashlib.rst:355 +msgid "" +"Constructor functions also accept the following tree hashing parameters:" +msgstr "" +"Les fonctions constructeur acceptent aussi les paramètres suivants pour le " +"*tree hashing* ::" + +#: ../Doc/library/hashlib.rst:357 +msgid "*fanout*: fanout (0 to 255, 0 if unlimited, 1 in sequential mode)." +msgstr "*fanout*: *fanout* (0 à 255, 0 si illimité, 1 en mode séquentiel)." + +#: ../Doc/library/hashlib.rst:359 +msgid "" +"*depth*: maximal depth of tree (1 to 255, 255 if unlimited, 1 in sequential " +"mode)." +msgstr "" +"*depth*: profondeur maximale de l'arbre (1 à 255, 255 si illimité, 1 en mode " +"séquentiel)." + +#: ../Doc/library/hashlib.rst:362 +msgid "" +"*leaf_size*: maximal byte length of leaf (0 to 2**32-1, 0 if unlimited or in " +"sequential mode)." +msgstr "" +"*leaf_size*: taille maximale en octets d'une feuille (0 à 2**32-1, 0 si " +"illimité ou en mode séquentiel)." + +#: ../Doc/library/hashlib.rst:365 +msgid "" +"*node_offset*: node offset (0 to 2**64-1 for BLAKE2b, 0 to 2**48-1 for " +"BLAKE2s, 0 for the first, leftmost, leaf, or in sequential mode)." +msgstr "" +"*node_offset*: décalage de nœud (0 à 2**64-1 pour BLAKE2b, 0 à 2**48-1 pour " +"BLAKE2s, 0 pour la première feuille la plus à gauche, ou en mode séquentiel)." + +#: ../Doc/library/hashlib.rst:368 +msgid "" +"*node_depth*: node depth (0 to 255, 0 for leaves, or in sequential mode)." +msgstr "" +"*node_depth*: profondeur de nœuds (0 à 255, 0 pour les feuilles, ou en mode " +"séquentiel)." + +#: ../Doc/library/hashlib.rst:370 +msgid "" +"*inner_size*: inner digest size (0 to 64 for BLAKE2b, 0 to 32 for BLAKE2s, 0 " +"in sequential mode)." +msgstr "" +"*inner_size*: taille interne du message (0 à 64 pour BLAKE2b, 0 à 32 pour " +"BLAKE2s, 0 en mode séquentiel)." + +#: ../Doc/library/hashlib.rst:373 +msgid "" +"*last_node*: boolean indicating whether the processed node is the last one " +"(`False` for sequential mode)." +msgstr "" +"*last_node*: booléen indiquant si le nœud traité est le dernier (`False` " +"pour le mode séquentiel)." + +#: ../Doc/library/hashlib.rst:379 +msgid "" +"See section 2.10 in `BLAKE2 specification `_ for comprehensive review of tree hashing." +msgstr "" +"Voir section 2.10 dans `BLAKE2 specification `_ pour une approche compréhensive du *tree hashing*." + +#: ../Doc/library/hashlib.rst:385 +msgid "Constants" +msgstr "Constantes" + +#: ../Doc/library/hashlib.rst:390 +msgid "Salt length (maximum length accepted by constructors)." +msgstr "Longueur du sel (longueur maximale acceptée par les constructeurs)." + +#: ../Doc/library/hashlib.rst:396 +msgid "" +"Personalization string length (maximum length accepted by constructors)." +msgstr "" +"Longueur de la chaîne de personnalisation (longueur maximale acceptée par " +"les constructeurs)." + +#: ../Doc/library/hashlib.rst:402 +msgid "Maximum key size." +msgstr "Taille maximale de clé." + +#: ../Doc/library/hashlib.rst:408 +msgid "Maximum digest size that the hash function can output." +msgstr "Taille maximale du message que peut fournir la fonction de hachage." + +#: ../Doc/library/hashlib.rst:412 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/hashlib.rst:415 +msgid "Simple hashing" +msgstr "Hachage simple" + +#: ../Doc/library/hashlib.rst:417 +msgid "" +"To calculate hash of some data, you should first construct a hash object by " +"calling the appropriate constructor function (:func:`blake2b` or :func:" +"`blake2s`), then update it with the data by calling :meth:`update` on the " +"object, and, finally, get the digest out of the object by calling :meth:" +"`digest` (or :meth:`hexdigest` for hex-encoded string)." +msgstr "" +"Pour calculer les *hash* de certaines données, vous devez d'abord construire " +"un objet haché en appelant la fonction constructeur appropriée (:func:" +"`blake2b` or :func:`blake2s`), ensuite le mettre à jour avec les données en " +"appelant la méthode :meth:`update` sur l'objet, et, pour finir, récupérer " +"l'empreinte du message en appelant la méthode :meth:`digest` (ou :meth:" +"`hexdigest` pour les chaînes hexadécimales)." + +#: ../Doc/library/hashlib.rst:430 +msgid "" +"As a shortcut, you can pass the first chunk of data to update directly to " +"the constructor as the positional argument:" +msgstr "" +"Pour raccourcir, vous pouvez passer directement au constructeur, comme " +"argument positionnel, le premier morceau du message à mettre à jour ::" + +#: ../Doc/library/hashlib.rst:437 +msgid "" +"You can call :meth:`hash.update` as many times as you need to iteratively " +"update the hash:" +msgstr "" +"Vous pouvez appeler la méthode :meth:`hash.update` autant de fois que " +"nécessaire pour mettre à jour le *hash* de manière itérative ::" + +#: ../Doc/library/hashlib.rst:450 +msgid "Using different digest sizes" +msgstr "Usage de tailles d'empreintes différentes" + +#: ../Doc/library/hashlib.rst:452 +msgid "" +"BLAKE2 has configurable size of digests up to 64 bytes for BLAKE2b and up to " +"32 bytes for BLAKE2s. For example, to replace SHA-1 with BLAKE2b without " +"changing the size of output, we can tell BLAKE2b to produce 20-byte digests:" +msgstr "" +"BLAKE2 permet de configurer la taille des empreintes jusqu'à 64 octets pour " +"BLAKE2b et jusqu'à 32 octets pour BLAKE2s. Par exemple, pour remplacer SHA-1 " +"par BLAKE2b sans changer la taille de la sortie, nous pouvons dire à BLAKE2b " +"de produire une empreinte de 20 octets ::" + +#: ../Doc/library/hashlib.rst:466 +msgid "" +"Hash objects with different digest sizes have completely different outputs " +"(shorter hashes are *not* prefixes of longer hashes); BLAKE2b and BLAKE2s " +"produce different outputs even if the output length is the same:" +msgstr "" +"Les objets hachés avec différentes tailles d'empreintes ont des sorties " +"complètement différentes (les *hash* plus courts *ne sont pas* des préfixes " +"de *hash* plus longs); BLAKE2b et BLAKE2s produisent des sorties différentes " +"même si les longueurs des sorties sont les mêmes ::" + +#: ../Doc/library/hashlib.rst:482 +msgid "Keyed hashing" +msgstr "Code d'authentification de message" + +#: ../Doc/library/hashlib.rst:484 +msgid "" +"Keyed hashing can be used for authentication as a faster and simpler " +"replacement for `Hash-based message authentication code `_ (HMAC). BLAKE2 " +"can be securely used in prefix-MAC mode thanks to the indifferentiability " +"property inherited from BLAKE." +msgstr "" +"Le hachage avec clé (*keyed hashing* en anglais) est une alternative plus " +"simple et plus rapide à un `code d’authentification d’une empreinte " +"cryptographique de message avec clé `_ (HMAC). BLAKE2 peut être utilisé de " +"manière sécurisée dans le mode préfixe MAC grâce à la propriété " +"d'indifférentiabilité héritée de BLAKE." + +#: ../Doc/library/hashlib.rst:490 +msgid "" +"This example shows how to get a (hex-encoded) 128-bit authentication code " +"for message ``b'message data'`` with key ``b'pseudorandom key'``::" +msgstr "" +"Cet exemple montre comment obtenir un code d'authentification de message de " +"128-bit (en hexadécimal) pour un message ``b'message data'`` avec la clé " +"``b'pseudorandom key'`` ::" + +#: ../Doc/library/hashlib.rst:500 +msgid "" +"As a practical example, a web application can symmetrically sign cookies " +"sent to users and later verify them to make sure they weren't tampered with::" +msgstr "" +"Comme exemple pratique, une application web peut chiffrer symétriquement les " +"*cookies* envoyés aux utilisateurs et les vérifier plus tard pour être " +"certaine qu'ils n'aient pas été altérés ::" + +#: ../Doc/library/hashlib.rst:529 +msgid "" +"Even though there's a native keyed hashing mode, BLAKE2 can, of course, be " +"used in HMAC construction with :mod:`hmac` module::" +msgstr "" +"Même s'il possède en natif la création de code d'authentification de message " +"(MAC), BLAKE2 peut, bien sûr, être utilisé pour construire un HMAC en " +"combinaison du module :mod:`hmac` ::" + +#: ../Doc/library/hashlib.rst:540 +msgid "Randomized hashing" +msgstr "Hachage randomisé" + +#: ../Doc/library/hashlib.rst:542 +msgid "" +"By setting *salt* parameter users can introduce randomization to the hash " +"function. Randomized hashing is useful for protecting against collision " +"attacks on the hash function used in digital signatures." +msgstr "" +"En définissant le paramètre *salt* les utilisateurs peuvent introduire de " +"l'aléatoire dans la fonction de hachage. Le hachage randomisé est utile pour " +"se protéger des attaques par collisions sur les fonctions de hachage " +"utilisées dans les signatures numériques." + +#: ../Doc/library/hashlib.rst:546 +msgid "" +"Randomized hashing is designed for situations where one party, the message " +"preparer, generates all or part of a message to be signed by a second party, " +"the message signer. If the message preparer is able to find cryptographic " +"hash function collisions (i.e., two messages producing the same hash value), " +"then they might prepare meaningful versions of the message that would " +"produce the same hash value and digital signature, but with different " +"results (e.g., transferring $1,000,000 to an account, rather than $10). " +"Cryptographic hash functions have been designed with collision resistance as " +"a major goal, but the current concentration on attacking cryptographic hash " +"functions may result in a given cryptographic hash function providing less " +"collision resistance than expected. Randomized hashing offers the signer " +"additional protection by reducing the likelihood that a preparer can " +"generate two or more messages that ultimately yield the same hash value " +"during the digital signature generation process --- even if it is practical " +"to find collisions for the hash function. However, the use of randomized " +"hashing may reduce the amount of security provided by a digital signature " +"when all portions of the message are prepared by the signer." +msgstr "" +"Le hachage aléatoire est conçu pour les situations où une partie, le " +"préparateur du message, génère tout ou partie d'un message à signer par une " +"seconde partie, le signataire du message. Si le préparateur du message est " +"capable de trouver des collisions sur la fonction cryptographique de hachage " +"(i.e., deux messages produisant la même valeur une fois hachés), alors ils " +"peuvent préparer des versions significatives du message qui produiront les " +"mêmes *hachs* et même signature mais avec des résultats différents (e.g. " +"transférer 1000000$ sur un compte plutôt que 10$). Les fonctions " +"cryptographiques de hachage ont été conçues dans le but de résister aux " +"collisions, mais la concentration actuelle d'attaques sur les fonctions de " +"hachage peut avoir pour conséquence qu'une fonction de hachage donnée soit " +"moins résistante qu'attendu. Le hachage aléatoire offre au signataire une " +"protection supplémentaire en réduisant la probabilité que le préparateur " +"puisse générer deux messages ou plus qui renverront la même valeur haché " +"lors du processus de génération de la signature --- même s'il est pratique " +"de trouver des collisions sur la fonction de hachage. Toutefois, " +"l'utilisation du hachage aléatoire peut réduire le niveau de sécurité fourni " +"par une signature numérique lorsque tous les morceaux du message sont " +"préparés par le signataire." + +#: ../Doc/library/hashlib.rst:565 +msgid "" +"(`NIST SP-800-106 \"Randomized Hashing for Digital Signatures\" `_)" +msgstr "" +"(`NIST SP-800-106 \"Randomized Hashing for Digital Signatures\" `_, article en anglais)" + +#: ../Doc/library/hashlib.rst:568 +msgid "" +"In BLAKE2 the salt is processed as a one-time input to the hash function " +"during initialization, rather than as an input to each compression function." +msgstr "" +"Dans BLAKE2, le sel est passé une seule fois lors de l'initialisation de la " +"fonction de hachage, plutôt qu'à chaque appel d'une fonction de compression." + +#: ../Doc/library/hashlib.rst:573 +msgid "" +"*Salted hashing* (or just hashing) with BLAKE2 or any other general-purpose " +"cryptographic hash function, such as SHA-256, is not suitable for hashing " +"passwords. See `BLAKE2 FAQ `_ for more information." +msgstr "" +"*Salted hashing* (ou juste hachage) avec BLAKE2 ou toute autre fonction de " +"hachage générique, comme SHA-256, ne convient pas pour le chiffrement des " +"mots de passe. Voir `BLAKE2 FAQ `_ pour plus " +"d'informations." + +#: ../Doc/library/hashlib.rst:596 +msgid "Personalization" +msgstr "Personnalisation" + +#: ../Doc/library/hashlib.rst:598 +msgid "" +"Sometimes it is useful to force hash function to produce different digests " +"for the same input for different purposes. Quoting the authors of the Skein " +"hash function:" +msgstr "" +"Parfois il est utile de forcer une fonction de hachage à produire " +"différentes empreintes de message d'une même entrée pour différentes " +"utilisations. Pour citer les auteurs de la fonction de hachage Skein  ::" + +#: ../Doc/library/hashlib.rst:602 +msgid "" +"We recommend that all application designers seriously consider doing this; " +"we have seen many protocols where a hash that is computed in one part of the " +"protocol can be used in an entirely different part because two hash " +"computations were done on similar or related data, and the attacker can " +"force the application to make the hash inputs the same. Personalizing each " +"hash function used in the protocol summarily stops this type of attack." +msgstr "" +"Nous recommandons que tous les développeurs d'application considèrent " +"sérieusement de faire cela ; nous avons vu de nombreux protocoles où un " +"*hash* était calculé à un endroit du protocole pour être utilisé à un autre " +"endroit car deux calculs de *hash* étaient réalisés sur des données " +"similaires ou liées, et qu'un attaquant peut forcer une application à " +"prendre en entrée le même *hash*. Personnaliser chaque fonction de hachage " +"utilisée dans le protocole stoppe immédiatement ce genre d'attaque." + +#: ../Doc/library/hashlib.rst:609 +msgid "" +"(`The Skein Hash Function Family `_, p. 21)" +msgstr "" +"(`The Skein Hash Function Family `_, p. 21, article en anglais)" + +#: ../Doc/library/hashlib.rst:613 +msgid "BLAKE2 can be personalized by passing bytes to the *person* argument::" +msgstr "" +"BLAKE2 peut être personnalisé en passant des *bytes* à l'argument *person* ::" + +#: ../Doc/library/hashlib.rst:627 +msgid "" +"Personalization together with the keyed mode can also be used to derive " +"different keys from a single one." +msgstr "" +"La personnalisation et le *keyed mode* peuvent être utilisés ensemble pour " +"dériver différentes clés à partir d'une seule." + +#: ../Doc/library/hashlib.rst:641 +msgid "Tree mode" +msgstr "Mode Arbre" + +#: ../Doc/library/hashlib.rst:643 +msgid "Here's an example of hashing a minimal tree with two leaf nodes::" +msgstr "" +"L'exemple ci-dessous présente comment hacher un arbre minimal avec deux " +"nœuds terminaux ::" + +#: ../Doc/library/hashlib.rst:649 +msgid "" +"This example uses 64-byte internal digests, and returns the 32-byte final " +"digest::" +msgstr "" +"Cet exemple utilise en interne des empreintes de 64 octets, et produit " +"finalement des empreintes 32 octets ::" + +#: ../Doc/library/hashlib.rst:679 +msgid "Credits" +msgstr "Crédits" + +#: ../Doc/library/hashlib.rst:681 +msgid "" +"BLAKE2_ was designed by *Jean-Philippe Aumasson*, *Samuel Neves*, *Zooko " +"Wilcox-O'Hearn*, and *Christian Winnerlein* based on SHA-3_ finalist BLAKE_ " +"created by *Jean-Philippe Aumasson*, *Luca Henzen*, *Willi Meier*, and " +"*Raphael C.-W. Phan*." +msgstr "" +"BLAKE2_ a été conçu par *Jean-Philippe Aumasson*, *Samuel Neves*, *Zooko " +"Wilcox-O'Hearn*, et *Christian Winnerlein* basé sur SHA-3_ finaliste BLAKE_ " +"créé par *Jean-Philippe Aumasson*, *Luca Henzen*, *Willi Meier*, et *Raphael " +"C.-W. Phan*." + +#: ../Doc/library/hashlib.rst:686 +msgid "" +"It uses core algorithm from ChaCha_ cipher designed by *Daniel J. " +"Bernstein*." +msgstr "" +"Il utilise le cœur de l'algorithme de chiffrement de ChaCha_ conçu par " +"*Daniel J. Bernstein*." + +#: ../Doc/library/hashlib.rst:688 +msgid "" +"The stdlib implementation is based on pyblake2_ module. It was written by " +"*Dmitry Chestnykh* based on C implementation written by *Samuel Neves*. The " +"documentation was copied from pyblake2_ and written by *Dmitry Chestnykh*." +msgstr "" +"L'implémentation dans la librairie standard est basée sur le module " +"pyblake2_. Il a été écrit par *Dmitry Chestnykh* et basé sur " +"l'implémentation C écrite par *Samuel Neves*. La documentation a été copiée " +"depuis pyblake2_ et écrite par *Dmitry Chestnykh*." + +#: ../Doc/library/hashlib.rst:692 +msgid "The C code was partly rewritten for Python by *Christian Heimes*." +msgstr "" +"Le code C a été partiellement réécrit pour Python par *Christian Heimes*." + +#: ../Doc/library/hashlib.rst:694 +msgid "" +"The following public domain dedication applies for both C hash function " +"implementation, extension code, and this documentation:" +msgstr "" +"Le transfert dans le domaine publique s'applique pour l'implémentation C de " +"la fonction de hachage, ses extensions et cette documentation ::" + +#: ../Doc/library/hashlib.rst:697 +msgid "" +"To the extent possible under law, the author(s) have dedicated all copyright " +"and related and neighboring rights to this software to the public domain " +"worldwide. This software is distributed without any warranty." +msgstr "" +"Tout en restant dans les limites de la loi, le(s) auteur(s) a (ont) consacré " +"tous les droits d’auteur et droits connexes et voisins de ce logiciel au " +"domaine public dans le monde entier. Ce logiciel est distribué sans aucune " +"garantie." + +#: ../Doc/library/hashlib.rst:701 +msgid "" +"You should have received a copy of the CC0 Public Domain Dedication along " +"with this software. If not, see https://creativecommons.org/publicdomain/" +"zero/1.0/." +msgstr "" +"Vous devriez recevoir avec ce logiciel une copie de la licence *CC0 Public " +"Domain Dedication*. Sinon, voir https://creativecommons.org/publicdomain/" +"zero/1.0/." + +#: ../Doc/library/hashlib.rst:705 +msgid "" +"The following people have helped with development or contributed their " +"changes to the project and the public domain according to the Creative " +"Commons Public Domain Dedication 1.0 Universal:" +msgstr "" +"Les personnes suivantes ont aidé au développement ou contribué aux " +"modification du projet et au domaine public selon la licence Creative " +"Commons Public Domain Dedication 1.0 Universal ::" + +#: ../Doc/library/hashlib.rst:709 +msgid "*Alexandr Sokolovskiy*" +msgstr "*Alexandr Sokolovskiy*" + +#: ../Doc/library/hashlib.rst:723 +msgid "Module :mod:`hmac`" +msgstr "Module :mod:`hmac`" + +#: ../Doc/library/hashlib.rst:723 +msgid "A module to generate message authentication codes using hashes." +msgstr "" +"Un module pour générer des codes d'authentification utilisant des *hash*." + +#: ../Doc/library/hashlib.rst:726 +msgid "Module :mod:`base64`" +msgstr "Module :mod:`base64`" + +#: ../Doc/library/hashlib.rst:726 +msgid "Another way to encode binary hashes for non-binary environments." +msgstr "" +"Un autre moyen d'encoder des *hash* binaires dans des environnements non " +"binaires." + +#: ../Doc/library/hashlib.rst:729 +msgid "https://blake2.net" +msgstr "https://blake2.net" + +#: ../Doc/library/hashlib.rst:729 +msgid "Official BLAKE2 website." +msgstr "Site officiel de BLAKE2." + +#: ../Doc/library/hashlib.rst:732 +msgid "" +"https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/2002-08-01/" +"documents/fips180-2.pdf" +msgstr "" +"https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/2002-08-01/" +"documents/fips180-2.pdf" + +#: ../Doc/library/hashlib.rst:732 +msgid "The FIPS 180-2 publication on Secure Hash Algorithms." +msgstr "La publication FIPS 180-2 sur les algorithmes de hachage sécurisés." + +#: ../Doc/library/hashlib.rst:736 +msgid "" +"https://en.wikipedia.org/wiki/" +"Cryptographic_hash_function#Cryptographic_hash_algorithms" +msgstr "" +"https://en.wikipedia.org/wiki/" +"Cryptographic_hash_function#Cryptographic_hash_algorithms" + +#: ../Doc/library/hashlib.rst:735 +msgid "" +"Wikipedia article with information on which algorithms have known issues and " +"what that means regarding their use." +msgstr "" +"Article Wikipedia contenant les informations relatives aux algorithmes ayant " +"des problèmes et leur interprétation au regard de leur utilisation." + +#: ../Doc/library/hashlib.rst:738 +msgid "https://www.ietf.org/rfc/rfc2898.txt" +msgstr "https://www.ietf.org/rfc/rfc2898.txt" + +#: ../Doc/library/hashlib.rst:739 +msgid "PKCS #5: Password-Based Cryptography Specification Version 2.0" +msgstr "PKCS #5: Password-Based Cryptography Specification Version 2.0" diff --git a/library/heapq.po b/library/heapq.po new file mode 100644 index 000000000..eeab0342e --- /dev/null +++ b/library/heapq.po @@ -0,0 +1,565 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-07-05 09:53+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/heapq.rst:2 +msgid ":mod:`heapq` --- Heap queue algorithm" +msgstr ":mod:`heapq` — File de priorité basée sur un tas" + +#: ../Doc/library/heapq.rst:12 +msgid "**Source code:** :source:`Lib/heapq.py`" +msgstr "**Code source :** :source:`Lib/heapq.py`" + +#: ../Doc/library/heapq.rst:16 +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:19 +msgid "" +"Heaps are binary trees for which every parent node has a value less than or " +"equal to any of its children. This implementation uses arrays for which " +"``heap[k] <= heap[2*k+1]`` and ``heap[k] <= heap[2*k+2]`` for all *k*, " +"counting elements from zero. For the sake of comparison, non-existing " +"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:26 +msgid "" +"The API below differs from textbook heap algorithms in two aspects: (a) We " +"use zero-based indexing. This makes the relationship between the index for " +"a node and the indexes for its children slightly less obvious, but is more " +"suitable since Python uses zero-based indexing. (b) Our pop method returns " +"the smallest item, not the largest (called a \"min heap\" in textbooks; a " +"\"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:33 +msgid "" +"These two make it possible to view the heap as a regular Python list without " +"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 et ``heap.sort()`` " +"conserve l'invariant du tas !" + +#: ../Doc/library/heapq.rst:37 +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:40 +msgid "The following functions are provided:" +msgstr "Les fonctions suivantes sont fournies :" + +#: ../Doc/library/heapq.rst:45 +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:50 +msgid "" +"Pop and return the smallest item from the *heap*, maintaining the heap " +"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 "" +"Push *item* on the heap, then pop and return the smallest item from the " +"*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:64 +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:69 +msgid "" +"Pop and return the smallest item from the *heap*, and also push the new " +"*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:72 +msgid "" +"This one step operation is more efficient than a :func:`heappop` followed " +"by :func:`heappush` and can be more appropriate when using a fixed-size " +"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:77 +msgid "" +"The value returned may be larger than the *item* added. If that isn't " +"desired, consider using :func:`heappushpop` instead. Its push/pop " +"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:83 +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:88 +msgid "" +"Merge multiple sorted inputs into a single sorted output (for example, merge " +"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:92 +msgid "" +"Similar to ``sorted(itertools.chain(*iterables))`` but returns an iterable, " +"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:96 +msgid "" +"Has two optional arguments which must be specified as keyword arguments." +msgstr "A deux arguments optionnels qui doivent être fournis par mot clef." + +#: ../Doc/library/heapq.rst:98 +msgid "" +"*key* specifies a :term:`key function` of one argument that is used to " +"extract a comparison key from each input element. The default value is " +"``None`` (compare the elements directly)." +msgstr "" +"*key* spécifie une :term:`key function` d'un argument utilisée pour extraire " +"une clef de comparaison de chaque élément de la liste. La valeur par défaut " +"est ``None`` (compare les éléments directement)." + +#: ../Doc/library/heapq.rst:102 +msgid "" +"*reverse* is a boolean value. If set to ``True``, then the input elements " +"are merged as if each comparison were reversed. To achieve behavior similar " +"to ``sorted(itertools.chain(*iterables), reverse=True)``, all iterables must " +"be sorted from largest to smallest." +msgstr "" +"*reverse* est une valeur booléenne. Si elle est ``True``, la liste " +"d'éléments est fusionnée comme si toutes les comparaisons étaient inversées. " +"Pour obtenir un comportement similaire à ``sorted(itertools." +"chain(*iterables), reverse=True)``, tous les itérables doivent être classés " +"par ordre décroissant." + +#: ../Doc/library/heapq.rst:107 +msgid "Added the optional *key* and *reverse* parameters." +msgstr "Ajout des paramètres optionnels *key* et *reverse*." + +#: ../Doc/library/heapq.rst:113 +msgid "" +"Return a list with the *n* largest elements from the dataset defined by " +"*iterable*. *key*, if provided, specifies a function of one argument that " +"is used to extract a comparison key from each element in *iterable* (for " +"example, ``key=str.lower``). Equivalent to: ``sorted(iterable, key=key, " +"reverse=True)[:n]``." +msgstr "" +"Renvoie une liste contenant les *n* plus grands éléments du jeu de données " +"défini par *iterable*. Si l'option *key* est fournie, celle-ci spécifie une " +"fonction à un argument qui est utilisée pour extraire la clé de comparaison " +"de chaque élément dans *iterable* (par exemple, ``key=str.lower``). " +"Équivalent à : ``sorted(iterable, key=key, reverse=True)[:n]``." + +#: ../Doc/library/heapq.rst:122 +msgid "" +"Return a list with the *n* smallest elements from the dataset defined by " +"*iterable*. *key*, if provided, specifies a function of one argument that " +"is used to extract a comparison key from each element in *iterable* (for " +"example, ``key=str.lower``). Equivalent to: ``sorted(iterable, key=key)[:" +"n]``." +msgstr "" +"Renvoie une liste contenant les *n* plus petits éléments du jeu de données " +"défini par *iterable*. Si l'option *key* est fournie, celle-ci spécifie une " +"fonction à un argument qui est utilisée pour extraire la clé de comparaison " +"de chaque élément dans *iterable* (par exemple, ``key=str.lower``). " +"Équivalent à : ``sorted(iterable, key=key)[:n]``." + +#: ../Doc/library/heapq.rst:128 +msgid "" +"The latter two functions perform best for smaller values of *n*. For larger " +"values, it is more efficient to use the :func:`sorted` function. Also, when " +"``n==1``, it is more efficient to use the built-in :func:`min` and :func:" +"`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:136 +msgid "Basic Examples" +msgstr "Exemples simples" + +#: ../Doc/library/heapq.rst:138 +msgid "" +"A `heapsort `_ can be implemented by " +"pushing all values onto a heap and then popping off the smallest values one " +"at a time::" +msgstr "" +"Un `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:151 +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:154 +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:167 +msgid "Priority Queue Implementation Notes" +msgstr "Notes d'implémentation de la file de priorité" + +#: ../Doc/library/heapq.rst:169 +msgid "" +"A `priority queue `_ is common " +"use for a heap, and it presents several implementation challenges:" +msgstr "" +"Une `file de priorité `_ est une application courante des tas et présente plusieurs défis " +"d'implémentation :" + +#: ../Doc/library/heapq.rst:172 +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:175 +msgid "" +"Tuple comparison breaks for (priority, task) pairs if the priorities are " +"equal and the tasks do not have a default comparison order." +msgstr "" +"La comparaison des couples (priorité, tâche) échoue si les priorités sont " +"identiques et que les tâches n'ont pas de relation d'ordre par défaut." + +#: ../Doc/library/heapq.rst:178 +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:181 +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:184 +msgid "" +"A solution to the first two challenges is to store entries as 3-element list " +"including the priority, an entry count, and the task. The entry count " +"serves as a tie-breaker so that two tasks with the same priority are " +"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:190 +msgid "" +"Another solution to the problem of non-comparable tasks is to create a " +"wrapper class that ignores the task item and only compares the priority " +"field::" +msgstr "" +"Une autre solution au fait que les tâches ne possèdent pas de relation " +"d'ordre est de créer une classe d'encapsulation qui ignore l'élément tâche " +"et ne compare que le champ priorité ::" + +#: ../Doc/library/heapq.rst:201 +msgid "" +"The remaining challenges revolve around finding a pending task and making " +"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:205 +msgid "" +"Removing the entry or changing its priority is more difficult because it " +"would break the heap structure invariants. So, a possible solution is to " +"mark the entry as removed and add a new entry with the revised priority::" +msgstr "" +"Supprimer une entrée ou changer sa priorité est plus difficile puisque cela " +"romprait l'invariant de la structure de tas. Une solution possible est de " +"marquer l'entrée comme supprimée et d'ajouter une nouvelle entrée avec sa " +"priorité modifiée ::" + +#: ../Doc/library/heapq.rst:239 +msgid "Theory" +msgstr "Théorie" + +#: ../Doc/library/heapq.rst:241 +msgid "" +"Heaps are arrays for which ``a[k] <= a[2*k+1]`` and ``a[k] <= a[2*k+2]`` for " +"all *k*, counting elements from 0. For the sake of comparison, non-existing " +"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:246 +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:259 +msgid "" +"In the tree above, each cell *k* is topping ``2*k+1`` and ``2*k+2``. In a " +"usual binary tournament we see in sports, each cell is the winner over the " +"two cells it tops, and we can trace the winner down the tree to see all " +"opponents s/he had. However, in many computer applications of such " +"tournaments, we do not need to trace the history of a winner. To be more " +"memory efficient, when a winner is promoted, we try to replace it by " +"something else at a lower level, and the rule becomes that a cell and the " +"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:268 +msgid "" +"If this heap invariant is protected at all time, index 0 is clearly the " +"overall winner. The simplest algorithmic way to remove it and find the " +"\"next\" winner is to move some loser (let's say cell 30 in the diagram " +"above) into the 0 position, and then percolate this new 0 down the tree, " +"exchanging values, until the invariant is re-established. This is clearly " +"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:275 +msgid "" +"A nice feature of this sort is that you can efficiently insert new items " +"while the sort is going on, provided that the inserted items are not \"better" +"\" than the last 0'th element you extracted. This is especially useful in " +"simulation contexts, where the tree holds all incoming events, and the \"win" +"\" condition means the smallest scheduled time. When an event schedules " +"other events for execution, they are scheduled into the future, so they can " +"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 est 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:284 +msgid "" +"Various structures for implementing schedulers have been extensively " +"studied, and heaps are good for this, as they are reasonably speedy, the " +"speed is almost constant, and the worst case is not much different than the " +"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:290 +msgid "" +"Heaps are also very useful in big disk sorts. You most probably all know " +"that a big sort implies producing \"runs\" (which are pre-sorted sequences, " +"whose size is usually related to the amount of CPU memory), followed by a " +"merging passes for these runs, which merging is often very cleverly " +"organised [#]_. It is very important that the initial sort produces the " +"longest runs possible. Tournaments are a good way to achieve that. If, " +"using all the memory available to hold a tournament, you replace and " +"percolate items that happen to fit the current run, you'll produce runs " +"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:300 +msgid "" +"Moreover, if you output the 0'th item on disk and get an input which may not " +"fit in the current tournament (because the value \"wins\" over the last " +"output value), it cannot fit in the heap, so the size of the heap " +"decreases. The freed memory could be cleverly reused immediately for " +"progressively building a second heap, which grows at exactly the same rate " +"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:308 +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:312 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/heapq.rst:313 +msgid "" +"The disk balancing algorithms which are current, nowadays, are more annoying " +"than clever, and this is a consequence of the seeking capabilities of the " +"disks. On devices which cannot seek, like big tape drives, the story was " +"quite different, and one had to be very clever to ensure (far in advance) " +"that each tape movement will be the most effective possible (that is, will " +"best participate at \"progressing\" the merge). Some tapes were even able " +"to read backwards, and this was also used to avoid the rewinding time. " +"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 ! ☺" diff --git a/library/hmac.po b/library/hmac.po new file mode 100644 index 000000000..64e36be3f --- /dev/null +++ b/library/hmac.po @@ -0,0 +1,214 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/hmac.rst:2 +msgid ":mod:`hmac` --- Keyed-Hashing for Message Authentication" +msgstr "" +":mod:`hmac` — Authentification de messages par hachage en combinaison avec " +"une clé secrète" + +#: ../Doc/library/hmac.rst:10 +msgid "**Source code:** :source:`Lib/hmac.py`" +msgstr "**Code source :** :source:`Lib/hmac.py`" + +#: ../Doc/library/hmac.rst:14 +msgid "This module implements the HMAC algorithm as described by :rfc:`2104`." +msgstr "" +"Ce module implémente l'algorithme HMAC tel que décrit par la :rfc:`2104`." + +#: ../Doc/library/hmac.rst:19 +msgid "" +"Return a new hmac object. *key* is a bytes or bytearray object giving the " +"secret key. If *msg* is present, the method call ``update(msg)`` is made. " +"*digestmod* is the digest name, digest constructor or module for the HMAC " +"object to use. It supports any name suitable to :func:`hashlib.new` and " +"defaults to the :data:`hashlib.md5` constructor." +msgstr "" + +#: ../Doc/library/hmac.rst:25 +msgid "" +"Parameter *key* can be a bytes or bytearray object. Parameter *msg* can be " +"of any type supported by :mod:`hashlib`. Parameter *digestmod* can be the " +"name of a hash algorithm." +msgstr "" +"Le paramètre *key* peut être un *byte* ou un objet *bytearray*. Le paramètre " +"*msg* peut être de n'importe quel type pris en charge par :mod:`hashlib`. Le " +"paramètre *digestmod* peut être le nom d'un algorithme de hachage." + +#: ../Doc/library/hmac.rst:31 +msgid "MD5 as implicit default digest for *digestmod* is deprecated." +msgstr "" + +#: ../Doc/library/hmac.rst:36 +msgid "" +"Return digest of *msg* for given secret *key* and *digest*. The function is " +"equivalent to ``HMAC(key, msg, digest).digest()``, but uses an optimized C " +"or inline implementation, which is faster for messages that fit into memory. " +"The parameters *key*, *msg*, and *digest* have the same meaning as in :func:" +"`~hmac.new`." +msgstr "" +"Renvoie le code d'authentification de *msg*, pour la clé secrète *key* et à " +"l'algorithme *digest* donné. La fonction est équivalente à ``HMAC(key, msg, " +"digest).digest()``, mais elle utilise une implémentation optimisée en C ou " +"*inline*, qui est plus rapide pour les messages dont la taille leur permet " +"de tenir en mémoire vive. Les paramètres *key*, *msg* et *digest* ont la " +"même signification que pour :func:`~hmac.new`." + +#: ../Doc/library/hmac.rst:42 +msgid "" +"CPython implementation detail, the optimized C implementation is only used " +"when *digest* is a string and name of a digest algorithm, which is supported " +"by OpenSSL." +msgstr "" +"Détail d'implémentation CPython, l'implémentation C optimisée n'est utilisée " +"que lorsque le *digest* est une chaîne de caractères et le nom d'un " +"algorithme de hachage implémenté dans OpenSSL." + +#: ../Doc/library/hmac.rst:49 +msgid "An HMAC object has the following methods:" +msgstr "Un objet HMAC a les méthodes suivantes :" + +#: ../Doc/library/hmac.rst:53 +msgid "" +"Update the hmac object with *msg*. Repeated calls are equivalent to a " +"single call with the concatenation of all the arguments: ``m.update(a); m." +"update(b)`` is equivalent to ``m.update(a + b)``." +msgstr "" +"Met à jour l'objet HMAC avec *msg*. Des appels répétés sont équivalents à un " +"seul appel avec la concaténation de tous les arguments : ``m.update(a); m." +"update(b)`` est équivalent à ``m.update(a + b)``." + +#: ../Doc/library/hmac.rst:57 +msgid "Parameter *msg* can be of any type supported by :mod:`hashlib`." +msgstr "" +"Le paramètre *msg* peut être de n'importe quel type géré par :mod:`hashlib`." + +#: ../Doc/library/hmac.rst:63 +msgid "" +"Return the digest of the bytes passed to the :meth:`update` method so far. " +"This bytes object will be the same length as the *digest_size* of the digest " +"given to the constructor. It may contain non-ASCII bytes, including NUL " +"bytes." +msgstr "" +"Renvoie le condensat des octets passés à la méthode :meth:`update` jusque " +"là. L'objet *bytes* renvoyé sera de la même longueur que la *digest_size* de " +"la fonction de hachage donnée au constructeur. Il peut contenir des octets " +"qui ne sont pas dans la table ASCII, y compris des octets NUL." + +#: ../Doc/library/hmac.rst:70 +msgid "" +"When comparing the output of :meth:`digest` to an externally-supplied digest " +"during a verification routine, it is recommended to use the :func:" +"`compare_digest` function instead of the ``==`` operator to reduce the " +"vulnerability to timing attacks." +msgstr "" +"Si vous devez vérifier la sortie de :meth:`digest` avec un condensat obtenu " +"par ailleurs par un service extérieur durant une routine de vérification, il " +"est recommandé d'utiliser la fonction :func:`compare_digest` au lieu de " +"l'opérateur ``==`` afin de réduire la vulnérabilité aux attaques temporelles." + +#: ../Doc/library/hmac.rst:78 +msgid "" +"Like :meth:`digest` except the digest is returned as a string twice the " +"length containing only hexadecimal digits. This may be used to exchange the " +"value safely in email or other non-binary environments." +msgstr "" +"Comme :meth:`digest` sauf que ce condensat est renvoyé en tant que chaîne de " +"caractères de taille doublée contenant seulement des chiffres hexadécimaux. " +"Cela permet d’échanger le résultat sans problèmes par e-mail ou dans " +"d'autres environnements ne gérant pas les données binaires." + +#: ../Doc/library/hmac.rst:84 +msgid "" +"When comparing the output of :meth:`hexdigest` to an externally-supplied " +"digest during a verification routine, it is recommended to use the :func:" +"`compare_digest` function instead of the ``==`` operator to reduce the " +"vulnerability to timing attacks." +msgstr "" +"Si l'on compare la sortie de :meth:`hexdigest` avec celle d'un condensat " +"connu obtenu par un service extérieur durant une routine de vérification, il " +"est recommandé d'utiliser la fonction :func:`compare_digest` au lieu de " +"l'opérateur ``==`` afin de réduire la vulnérabilité aux attaques basées sur " +"les temps de réponse." + +#: ../Doc/library/hmac.rst:92 +msgid "" +"Return a copy (\"clone\") of the hmac object. This can be used to " +"efficiently compute the digests of strings that share a common initial " +"substring." +msgstr "" +"Renvoie une copie (un clone) de l'objet HMAC. C'est utile pour calculer de " +"manière efficace les empreintes cryptographiques de chaînes de caractères " +"qui ont en commun une sous-chaîne initiale." + +#: ../Doc/library/hmac.rst:96 +msgid "A hash object has the following attributes:" +msgstr "" +"Un objet *code d'authentification de message* (HMAC) possède les attributs " +"suivants :" + +#: ../Doc/library/hmac.rst:100 +msgid "The size of the resulting HMAC digest in bytes." +msgstr "" +"La taille du code d'authentification (c-à-d de l'empreinte cryptographique) " +"en octets." + +#: ../Doc/library/hmac.rst:104 +msgid "The internal block size of the hash algorithm in bytes." +msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." + +#: ../Doc/library/hmac.rst:110 +msgid "The canonical name of this HMAC, always lowercase, e.g. ``hmac-md5``." +msgstr "" +"Le nom canonique de ce HMAC, toujours en lettres minuscules, par exemple " +"``hmac-md5``." + +#: ../Doc/library/hmac.rst:115 +msgid "This module also provides the following helper function:" +msgstr "Ce module fournit également la fonction utilitaire suivante :" + +#: ../Doc/library/hmac.rst:119 +msgid "" +"Return ``a == b``. This function uses an approach designed to prevent " +"timing analysis by avoiding content-based short circuiting behaviour, making " +"it appropriate for cryptography. *a* and *b* must both be of the same type: " +"either :class:`str` (ASCII only, as e.g. returned by :meth:`HMAC." +"hexdigest`), or a :term:`bytes-like object`." +msgstr "" +"Renvoie ``a == b``. Cette fonction a été conçue pour prévenir les attaques " +"temporelles en évitant l'implémentation de courts-circuits basés sur le " +"contenu, ce qui la rend appropriée pour de la cryptographie. *a* et *b* " +"doivent être du même type : soit :class:`str` (caractères ASCII seulement, " +"comme retourné par :meth:`HMAC.hexdigest` par exemple), ou :term:`bytes-like " +"object`." + +#: ../Doc/library/hmac.rst:127 +msgid "" +"If *a* and *b* are of different lengths, or if an error occurs, a timing " +"attack could theoretically reveal information about the types and lengths of " +"*a* and *b*—but not their values." +msgstr "" +"Si *a* et *b* sont de longueurs différentes ou si une erreur se produit, une " +"attaque temporelle pourrait en théorie obtenir des informations sur les " +"types et longueurs de *a* et de *b*, mais pas sur leurs valeurs." + +#: ../Doc/library/hmac.rst:137 +msgid "Module :mod:`hashlib`" +msgstr "Module :mod:`hashlib`" + +#: ../Doc/library/hmac.rst:138 +msgid "The Python module providing secure hash functions." +msgstr "Le module Python fournissant des fonctions de hachage sécurisé." diff --git a/library/html.entities.po b/library/html.entities.po new file mode 100644 index 000000000..1fa137a26 --- /dev/null +++ b/library/html.entities.po @@ -0,0 +1,76 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-27 15:05+0200\n" +"Last-Translator: Bruno Inec \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/html.entities.rst:2 +msgid ":mod:`html.entities` --- Definitions of HTML general entities" +msgstr ":mod:`html.entities` — Définitions des entités HTML générales" + +#: ../Doc/library/html.entities.rst:9 +msgid "**Source code:** :source:`Lib/html/entities.py`" +msgstr "**Source code:** :source:`Lib/html/entities.py`" + +#: ../Doc/library/html.entities.rst:13 +msgid "" +"This module defines four dictionaries, :data:`html5`, :data:" +"`name2codepoint`, :data:`codepoint2name`, and :data:`entitydefs`." +msgstr "" +"Ce module définit quatre dictionnaires, :data:`html5`, :data:" +"`name2codepoint`, :data:`codepoint2name`, et :data:`entitydefs`." + +#: ../Doc/library/html.entities.rst:19 +msgid "" +"A dictionary that maps HTML5 named character references [#]_ to the " +"equivalent Unicode character(s), e.g. ``html5['gt;'] == '>'``. Note that the " +"trailing semicolon is included in the name (e.g. ``'gt;'``), however some of " +"the names are accepted by the standard even without the semicolon: in this " +"case the name is present with and without the ``';'``. See also :func:`html." +"unescape`." +msgstr "" +"Un dictionnaire qui fait correspondre les références de caractères nommés " +"HTML5 [#]_ aux caractères Unicode équivalents, e.g. ``html5['gt;'] == '>'``. " +"À noter que le point-virgule en fin de chaîne est inclus dans le nom (e.g. " +"``'gt;'``), toutefois certains noms sont acceptés par le standard même sans " +"le point-virgule: dans ce cas, le nom est présent à la fois avec et sans le " +"``;``. Voir aussi :func:`html.unescape()`." + +#: ../Doc/library/html.entities.rst:31 +msgid "" +"A dictionary mapping XHTML 1.0 entity definitions to their replacement text " +"in ISO Latin-1." +msgstr "" +"Un dictionnaire qui fait correspondre les définitions d'entités XHTML 1.0 " +"avec leur remplacement en ISO Latin-1." + +#: ../Doc/library/html.entities.rst:37 +msgid "A dictionary that maps HTML entity names to the Unicode code points." +msgstr "" +"Un dictionnaire qui fait correspondre les noms d'entités HTML avec les " +"points de code Unicode." + +#: ../Doc/library/html.entities.rst:42 +msgid "A dictionary that maps Unicode code points to HTML entity names." +msgstr "" +"Un dictionnaire qui fait correspondre les points de code Unicode avec les " +"noms d'entités HTML." + +#: ../Doc/library/html.entities.rst:46 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/html.entities.rst:47 +msgid "See https://www.w3.org/TR/html5/syntax.html#named-character-references" +msgstr "" +"Voir https://www.w3.org/TR/html5/syntax.html#named-character-references" diff --git a/library/html.parser.po b/library/html.parser.po new file mode 100644 index 000000000..a1a31e0f7 --- /dev/null +++ b/library/html.parser.po @@ -0,0 +1,301 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/html.parser.rst:2 +msgid ":mod:`html.parser` --- Simple HTML and XHTML parser" +msgstr "" + +#: ../Doc/library/html.parser.rst:7 +msgid "**Source code:** :source:`Lib/html/parser.py`" +msgstr "" + +#: ../Doc/library/html.parser.rst:15 +msgid "" +"This module defines a class :class:`HTMLParser` which serves as the basis " +"for parsing text files formatted in HTML (HyperText Mark-up Language) and " +"XHTML." +msgstr "" + +#: ../Doc/library/html.parser.rst:20 +msgid "Create a parser instance able to parse invalid markup." +msgstr "" + +#: ../Doc/library/html.parser.rst:22 +msgid "" +"If *convert_charrefs* is ``True`` (the default), all character references " +"(except the ones in ``script``/``style`` elements) are automatically " +"converted to the corresponding Unicode characters." +msgstr "" + +#: ../Doc/library/html.parser.rst:26 +msgid "" +"An :class:`.HTMLParser` instance is fed HTML data and calls handler methods " +"when start tags, end tags, text, comments, and other markup elements are " +"encountered. The user should subclass :class:`.HTMLParser` and override its " +"methods to implement the desired behavior." +msgstr "" + +#: ../Doc/library/html.parser.rst:31 +msgid "" +"This parser does not check that end tags match start tags or call the end-" +"tag handler for elements which are closed implicitly by closing an outer " +"element." +msgstr "" + +#: ../Doc/library/html.parser.rst:34 +msgid "*convert_charrefs* keyword argument added." +msgstr "" + +#: ../Doc/library/html.parser.rst:37 +msgid "The default value for argument *convert_charrefs* is now ``True``." +msgstr "" + +#: ../Doc/library/html.parser.rst:42 +msgid "Example HTML Parser Application" +msgstr "" + +#: ../Doc/library/html.parser.rst:44 +msgid "" +"As a basic example, below is a simple HTML parser that uses the :class:" +"`HTMLParser` class to print out start tags, end tags, and data as they are " +"encountered::" +msgstr "" + +#: ../Doc/library/html.parser.rst:64 +msgid "The output will then be:" +msgstr "" + +#: ../Doc/library/html.parser.rst:83 +msgid ":class:`.HTMLParser` Methods" +msgstr "" + +#: ../Doc/library/html.parser.rst:85 +msgid ":class:`HTMLParser` instances have the following methods:" +msgstr "" + +#: ../Doc/library/html.parser.rst:90 +msgid "" +"Feed some text to the parser. It is processed insofar as it consists of " +"complete elements; incomplete data is buffered until more data is fed or :" +"meth:`close` is called. *data* must be :class:`str`." +msgstr "" + +#: ../Doc/library/html.parser.rst:97 +msgid "" +"Force processing of all buffered data as if it were followed by an end-of-" +"file mark. This method may be redefined by a derived class to define " +"additional processing at the end of the input, but the redefined version " +"should always call the :class:`HTMLParser` base class method :meth:`close`." +msgstr "" + +#: ../Doc/library/html.parser.rst:105 +msgid "" +"Reset the instance. Loses all unprocessed data. This is called implicitly " +"at instantiation time." +msgstr "" + +#: ../Doc/library/html.parser.rst:111 +msgid "Return current line number and offset." +msgstr "" + +#: ../Doc/library/html.parser.rst:116 +msgid "" +"Return the text of the most recently opened start tag. This should not " +"normally be needed for structured processing, but may be useful in dealing " +"with HTML \"as deployed\" or for re-generating input with minimal changes " +"(whitespace between attributes can be preserved, etc.)." +msgstr "" + +#: ../Doc/library/html.parser.rst:122 +msgid "" +"The following methods are called when data or markup elements are " +"encountered and they are meant to be overridden in a subclass. The base " +"class implementations do nothing (except for :meth:`~HTMLParser." +"handle_startendtag`):" +msgstr "" + +#: ../Doc/library/html.parser.rst:129 +msgid "" +"This method is called to handle the start of a tag (e.g. ````)." +msgstr "" + +#: ../Doc/library/html.parser.rst:148 +msgid "The *tag* argument is the name of the tag converted to lower case." +msgstr "" + +#: ../Doc/library/html.parser.rst:153 +msgid "" +"Similar to :meth:`handle_starttag`, but called when the parser encounters an " +"XHTML-style empty tag (````). This method may be overridden by " +"subclasses which require this particular lexical information; the default " +"implementation simply calls :meth:`handle_starttag` and :meth:" +"`handle_endtag`." +msgstr "" + +#: ../Doc/library/html.parser.rst:161 +msgid "" +"This method is called to process arbitrary data (e.g. text nodes and the " +"content of ```` and ````)." +msgstr "" + +#: ../Doc/library/html.parser.rst:167 +msgid "" +"This method is called to process a named character reference of the form " +"``&name;`` (e.g. ``>``), where *name* is a general entity reference (e.g. " +"``'gt'``). This method is never called if *convert_charrefs* is ``True``." +msgstr "" + +#: ../Doc/library/html.parser.rst:175 +msgid "" +"This method is called to process decimal and hexadecimal numeric character " +"references of the form ``&#NNN;`` and ``&#xNNN;``. For example, the decimal " +"equivalent for ``>`` is ``>``, whereas the hexadecimal is ``>``; " +"in this case the method will receive ``'62'`` or ``'x3E'``. This method is " +"never called if *convert_charrefs* is ``True``." +msgstr "" + +#: ../Doc/library/html.parser.rst:184 +msgid "" +"This method is called when a comment is encountered (e.g. ```` will cause this method to be " +"called with the argument ``' comment '``." +msgstr "" + +#: ../Doc/library/html.parser.rst:189 +msgid "" +"The content of Internet Explorer conditional comments (condcoms) will also " +"be sent to this method, so, for ````, this method will receive ``'[if IE 9]>IE9-specific content``)." +msgstr "" + +#: ../Doc/library/html.parser.rst:199 +msgid "" +"The *decl* parameter will be the entire contents of the declaration inside " +"the ```` markup (e.g. ``'DOCTYPE html'``)." +msgstr "" + +#: ../Doc/library/html.parser.rst:205 +msgid "" +"Method called when a processing instruction is encountered. The *data* " +"parameter will contain the entire processing instruction. For example, for " +"the processing instruction ````, this method would be " +"called as ``handle_pi(\"proc color='red'\")``. It is intended to be " +"overridden by a derived class; the base class implementation does nothing." +msgstr "" + +#: ../Doc/library/html.parser.rst:213 +msgid "" +"The :class:`HTMLParser` class uses the SGML syntactic rules for processing " +"instructions. An XHTML processing instruction using the trailing ``'?'`` " +"will cause the ``'?'`` to be included in *data*." +msgstr "" + +#: ../Doc/library/html.parser.rst:220 +msgid "" +"This method is called when an unrecognized declaration is read by the parser." +msgstr "" + +#: ../Doc/library/html.parser.rst:222 +msgid "" +"The *data* parameter will be the entire contents of the declaration inside " +"the ```` markup. It is sometimes useful to be overridden by a " +"derived class. The base class implementation does nothing." +msgstr "" + +#: ../Doc/library/html.parser.rst:230 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/html.parser.rst:232 +msgid "" +"The following class implements a parser that will be used to illustrate more " +"examples::" +msgstr "" + +#: ../Doc/library/html.parser.rst:269 +msgid "Parsing a doctype::" +msgstr "" + +#: ../Doc/library/html.parser.rst:275 +msgid "Parsing an element with a few attributes and a title::" +msgstr "" + +#: ../Doc/library/html.parser.rst:287 +msgid "" +"The content of ``script`` and ``style`` elements is returned as is, without " +"further parsing::" +msgstr "" + +#: ../Doc/library/html.parser.rst:303 +msgid "Parsing comments::" +msgstr "" + +#: ../Doc/library/html.parser.rst:310 +msgid "" +"Parsing named and numeric character references and converting them to the " +"correct char (note: these 3 references are all equivalent to ``'>'``)::" +msgstr "" + +#: ../Doc/library/html.parser.rst:318 +msgid "" +"Feeding incomplete chunks to :meth:`~HTMLParser.feed` works, but :meth:" +"`~HTMLParser.handle_data` might be called more than once (unless " +"*convert_charrefs* is set to ``True``)::" +msgstr "" + +#: ../Doc/library/html.parser.rst:331 +msgid "Parsing invalid HTML (e.g. unquoted attributes) also works::" +msgstr "" diff --git a/library/html.po b/library/html.po new file mode 100644 index 000000000..1deff420b --- /dev/null +++ b/library/html.po @@ -0,0 +1,70 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-13 17:52+0200\n" +"Last-Translator: Bruno Inec \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/html.rst:2 +msgid ":mod:`html` --- HyperText Markup Language support" +msgstr ":mod:`html` — Support du HyperText Markup Language" + +#: ../Doc/library/html.rst:7 +msgid "**Source code:** :source:`Lib/html/__init__.py`" +msgstr "**Source code:** :source:`Lib/html/__init__.py`" + +#: ../Doc/library/html.rst:11 +msgid "This module defines utilities to manipulate HTML." +msgstr "Ce module définit des outils permettant la manipulation d'HTML." + +#: ../Doc/library/html.rst:15 +msgid "" +"Convert the characters ``&``, ``<`` and ``>`` in string *s* to HTML-safe " +"sequences. Use this if you need to display text that might contain such " +"characters in HTML. If the optional flag *quote* is true, the characters (``" +"\"``) and (``'``) are also translated; this helps for inclusion in an HTML " +"attribute value delimited by quotes, as in ````." +msgstr "" +"Convertit les caractères ``&``, ``<`` et ``>`` de la chaîne de caractères " +"*s* en séquences HTML valides. À utiliser si le texte à afficher pourrait " +"contenir de tels caractères dans le HTML. Si le paramètre optionnel *quote* " +"est vrai, les caractères (``\"``) et (``'``) sont également traduits; cela " +"est utile pour les inclusions dans des valeurs d'attributs HTML délimitées " +"par des guillemets, comme dans ````." + +#: ../Doc/library/html.rst:26 +msgid "" +"Convert all named and numeric character references (e.g. ``>``, ``>" +"``, ``>``) in the string *s* to the corresponding Unicode characters. " +"This function uses the rules defined by the HTML 5 standard for both valid " +"and invalid character references, and the :data:`list of HTML 5 named " +"character references `." +msgstr "" +"Convertit toutes les références de caractères nommés et numériques (e.g. " +"``>``, ``>``, ``>``) dans la chaîne de caractères *s* par les " +"caractères Unicode correspondants. Cette fonction utilise les règles " +"définies par le standard HTML 5 à la fois pour les caractères valides et les " +"caractères invalides, et la :data:`liste des références des caractères " +"nommés en HTML 5 `." + +#: ../Doc/library/html.rst:36 +msgid "Submodules in the ``html`` package are:" +msgstr "Les sous-modules dans le paquet ``html`` sont :" + +#: ../Doc/library/html.rst:38 +msgid ":mod:`html.parser` -- HTML/XHTML parser with lenient parsing mode" +msgstr "" +":mod:`html.parser` -- Parseur HTML/XHTML avec un mode de *parsing* tolérant" + +#: ../Doc/library/html.rst:39 +msgid ":mod:`html.entities` -- HTML entity definitions" +msgstr ":mod:`html.entities` -- Définitions d'entités HTML" diff --git a/library/http.client.po b/library/http.client.po new file mode 100644 index 000000000..30862a0ed --- /dev/null +++ b/library/http.client.po @@ -0,0 +1,536 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-24 14:22+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/http.client.rst:2 +msgid ":mod:`http.client` --- HTTP protocol client" +msgstr "" + +#: ../Doc/library/http.client.rst:7 +msgid "**Source code:** :source:`Lib/http/client.py`" +msgstr "**Code source :** :source:`Lib/http/client.py`" + +#: ../Doc/library/http.client.rst:17 +msgid "" +"This module defines classes which implement the client side of the HTTP and " +"HTTPS protocols. It is normally not used directly --- the module :mod:" +"`urllib.request` uses it to handle URLs that use HTTP and HTTPS." +msgstr "" + +#: ../Doc/library/http.client.rst:23 +msgid "" +"The `Requests package `_ is recommended " +"for a higher-level HTTP client interface." +msgstr "" + +#: ../Doc/library/http.client.rst:28 +msgid "" +"HTTPS support is only available if Python was compiled with SSL support " +"(through the :mod:`ssl` module)." +msgstr "" + +#: ../Doc/library/http.client.rst:31 +msgid "The module provides the following classes:" +msgstr "" + +#: ../Doc/library/http.client.rst:37 +msgid "" +"An :class:`HTTPConnection` instance represents one transaction with an HTTP " +"server. It should be instantiated passing it a host and optional port " +"number. If no port number is passed, the port is extracted from the host " +"string if it has the form ``host:port``, else the default HTTP port (80) is " +"used. If the optional *timeout* parameter is given, blocking operations " +"(like connection attempts) will timeout after that many seconds (if it is " +"not given, the global default timeout setting is used). The optional " +"*source_address* parameter may be a tuple of a (host, port) to use as the " +"source address the HTTP connection is made from. The optional *blocksize* " +"parameter sets the buffer size in bytes for sending a file-like message body." +msgstr "" + +#: ../Doc/library/http.client.rst:49 +msgid "" +"For example, the following calls all create instances that connect to the " +"server at the same host and port::" +msgstr "" + +#: ../Doc/library/http.client.rst:57 +msgid "*source_address* was added." +msgstr "" + +#: ../Doc/library/http.client.rst:60 +msgid "" +"The *strict* parameter was removed. HTTP 0.9-style \"Simple Responses\" are " +"not longer supported." +msgstr "" + +#: ../Doc/library/http.client.rst:64 +msgid "*blocksize* parameter was added." +msgstr "" + +#: ../Doc/library/http.client.rst:73 +msgid "" +"A subclass of :class:`HTTPConnection` that uses SSL for communication with " +"secure servers. Default port is ``443``. If *context* is specified, it " +"must be a :class:`ssl.SSLContext` instance describing the various SSL " +"options." +msgstr "" + +#: ../Doc/library/http.client.rst:78 +msgid "Please read :ref:`ssl-security` for more information on best practices." +msgstr "" + +#: ../Doc/library/http.client.rst:80 +msgid "*source_address*, *context* and *check_hostname* were added." +msgstr "" + +#: ../Doc/library/http.client.rst:83 +msgid "" +"This class now supports HTTPS virtual hosts if possible (that is, if :data:" +"`ssl.HAS_SNI` is true)." +msgstr "" + +#: ../Doc/library/http.client.rst:87 +msgid "" +"The *strict* parameter was removed. HTTP 0.9-style \"Simple Responses\" are " +"no longer supported." +msgstr "" + +#: ../Doc/library/http.client.rst:91 +msgid "" +"This class now performs all the necessary certificate and hostname checks by " +"default. To revert to the previous, unverified, behavior :func:`ssl." +"_create_unverified_context` can be passed to the *context* parameter." +msgstr "" + +#: ../Doc/library/http.client.rst:99 +msgid "" +"*key_file* and *cert_file* are deprecated in favor of *context*. Please use :" +"meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." +"create_default_context` select the system's trusted CA certificates for you." +msgstr "" + +#: ../Doc/library/http.client.rst:104 +msgid "" +"The *check_hostname* parameter is also deprecated; the :attr:`ssl.SSLContext." +"check_hostname` attribute of *context* should be used instead." +msgstr "" + +#: ../Doc/library/http.client.rst:111 +msgid "" +"Class whose instances are returned upon successful connection. Not " +"instantiated directly by user." +msgstr "" + +#: ../Doc/library/http.client.rst:114 +msgid "" +"The *strict* parameter was removed. HTTP 0.9 style \"Simple Responses\" are " +"no longer supported." +msgstr "" + +#: ../Doc/library/http.client.rst:119 +msgid "The following exceptions are raised as appropriate:" +msgstr "" + +#: ../Doc/library/http.client.rst:124 +msgid "" +"The base class of the other exceptions in this module. It is a subclass of :" +"exc:`Exception`." +msgstr "" + +#: ../Doc/library/http.client.rst:130 ../Doc/library/http.client.rst:141 +#: ../Doc/library/http.client.rst:146 ../Doc/library/http.client.rst:151 +#: ../Doc/library/http.client.rst:156 ../Doc/library/http.client.rst:161 +msgid "A subclass of :exc:`HTTPException`." +msgstr "" + +#: ../Doc/library/http.client.rst:135 +msgid "" +"A subclass of :exc:`HTTPException`, raised if a port is given and is either " +"non-numeric or empty." +msgstr "" + +#: ../Doc/library/http.client.rst:166 ../Doc/library/http.client.rst:171 +#: ../Doc/library/http.client.rst:176 +msgid "A subclass of :exc:`ImproperConnectionState`." +msgstr "" + +#: ../Doc/library/http.client.rst:181 +msgid "" +"A subclass of :exc:`HTTPException`. Raised if a server responds with a HTTP " +"status code that we don't understand." +msgstr "" + +#: ../Doc/library/http.client.rst:187 +msgid "" +"A subclass of :exc:`HTTPException`. Raised if an excessively long line is " +"received in the HTTP protocol from the server." +msgstr "" + +#: ../Doc/library/http.client.rst:193 +msgid "" +"A subclass of :exc:`ConnectionResetError` and :exc:`BadStatusLine`. Raised " +"by :meth:`HTTPConnection.getresponse` when the attempt to read the response " +"results in no data read from the connection, indicating that the remote end " +"has closed the connection." +msgstr "" + +#: ../Doc/library/http.client.rst:198 +msgid "Previously, :exc:`BadStatusLine`\\ ``('')`` was raised." +msgstr "" + +#: ../Doc/library/http.client.rst:202 +msgid "The constants defined in this module are:" +msgstr "Les constantes définies dans ce module sont :" + +#: ../Doc/library/http.client.rst:206 +msgid "The default port for the HTTP protocol (always ``80``)." +msgstr "" + +#: ../Doc/library/http.client.rst:210 +msgid "The default port for the HTTPS protocol (always ``443``)." +msgstr "" + +#: ../Doc/library/http.client.rst:214 +msgid "This dictionary maps the HTTP 1.1 status codes to the W3C names." +msgstr "" + +#: ../Doc/library/http.client.rst:216 +msgid "" +"Example: ``http.client.responses[http.client.NOT_FOUND]`` is ``'Not Found'``." +msgstr "" + +#: ../Doc/library/http.client.rst:218 +msgid "" +"See :ref:`http-status-codes` for a list of HTTP status codes that are " +"available in this module as constants." +msgstr "" + +#: ../Doc/library/http.client.rst:225 +msgid "HTTPConnection Objects" +msgstr "" + +#: ../Doc/library/http.client.rst:227 +msgid ":class:`HTTPConnection` instances have the following methods:" +msgstr "" + +#: ../Doc/library/http.client.rst:233 +msgid "" +"This will send a request to the server using the HTTP request method " +"*method* and the selector *url*." +msgstr "" + +#: ../Doc/library/http.client.rst:236 +msgid "" +"If *body* is specified, the specified data is sent after the headers are " +"finished. It may be a :class:`str`, a :term:`bytes-like object`, an open :" +"term:`file object`, or an iterable of :class:`bytes`. If *body* is a " +"string, it is encoded as ISO-8859-1, the default for HTTP. If it is a bytes-" +"like object, the bytes are sent as is. If it is a :term:`file object`, the " +"contents of the file is sent; this file object should support at least the " +"``read()`` method. If the file object is an instance of :class:`io." +"TextIOBase`, the data returned by the ``read()`` method will be encoded as " +"ISO-8859-1, otherwise the data returned by ``read()`` is sent as is. If " +"*body* is an iterable, the elements of the iterable are sent as is until the " +"iterable is exhausted." +msgstr "" + +#: ../Doc/library/http.client.rst:248 +msgid "" +"The *headers* argument should be a mapping of extra HTTP headers to send " +"with the request." +msgstr "" + +#: ../Doc/library/http.client.rst:251 +msgid "" +"If *headers* contains neither Content-Length nor Transfer-Encoding, but " +"there is a request body, one of those header fields will be added " +"automatically. If *body* is ``None``, the Content-Length header is set to " +"``0`` for methods that expect a body (``PUT``, ``POST``, and ``PATCH``). If " +"*body* is a string or a bytes-like object that is not also a :term:`file " +"`, the Content-Length header is set to its length. Any other " +"type of *body* (files and iterables in general) will be chunk-encoded, and " +"the Transfer-Encoding header will automatically be set instead of Content-" +"Length." +msgstr "" + +#: ../Doc/library/http.client.rst:263 +msgid "" +"The *encode_chunked* argument is only relevant if Transfer-Encoding is " +"specified in *headers*. If *encode_chunked* is ``False``, the " +"HTTPConnection object assumes that all encoding is handled by the calling " +"code. If it is ``True``, the body will be chunk-encoded." +msgstr "" + +#: ../Doc/library/http.client.rst:269 +msgid "" +"Chunked transfer encoding has been added to the HTTP protocol version 1.1. " +"Unless the HTTP server is known to handle HTTP 1.1, the caller must either " +"specify the Content-Length, or must pass a :class:`str` or bytes-like object " +"that is not also a file as the body representation." +msgstr "" + +#: ../Doc/library/http.client.rst:275 +msgid "*body* can now be an iterable." +msgstr "" + +#: ../Doc/library/http.client.rst:278 +msgid "" +"If neither Content-Length nor Transfer-Encoding are set in *headers*, file " +"and iterable *body* objects are now chunk-encoded. The *encode_chunked* " +"argument was added. No attempt is made to determine the Content-Length for " +"file objects." +msgstr "" + +#: ../Doc/library/http.client.rst:287 +msgid "" +"Should be called after a request is sent to get the response from the " +"server. Returns an :class:`HTTPResponse` instance." +msgstr "" + +#: ../Doc/library/http.client.rst:292 +msgid "" +"Note that you must have read the whole response before you can send a new " +"request to the server." +msgstr "" + +#: ../Doc/library/http.client.rst:295 +msgid "" +"If a :exc:`ConnectionError` or subclass is raised, the :class:" +"`HTTPConnection` object will be ready to reconnect when a new request is " +"sent." +msgstr "" + +#: ../Doc/library/http.client.rst:303 +msgid "" +"Set the debugging level. The default debug level is ``0``, meaning no " +"debugging output is printed. Any value greater than ``0`` will cause all " +"currently defined debug output to be printed to stdout. The ``debuglevel`` " +"is passed to any new :class:`HTTPResponse` objects that are created." +msgstr "" + +#: ../Doc/library/http.client.rst:313 +msgid "" +"Set the host and the port for HTTP Connect Tunnelling. This allows running " +"the connection through a proxy server." +msgstr "" + +#: ../Doc/library/http.client.rst:316 +msgid "" +"The host and port arguments specify the endpoint of the tunneled connection " +"(i.e. the address included in the CONNECT request, *not* the address of the " +"proxy server)." +msgstr "" + +#: ../Doc/library/http.client.rst:320 +msgid "" +"The headers argument should be a mapping of extra HTTP headers to send with " +"the CONNECT request." +msgstr "" + +#: ../Doc/library/http.client.rst:323 +msgid "" +"For example, to tunnel through a HTTPS proxy server running locally on port " +"8080, we would pass the address of the proxy to the :class:`HTTPSConnection` " +"constructor, and the address of the host that we eventually want to reach to " +"the :meth:`~HTTPConnection.set_tunnel` method::" +msgstr "" + +#: ../Doc/library/http.client.rst:338 +msgid "" +"Connect to the server specified when the object was created. By default, " +"this is called automatically when making a request if the client does not " +"already have a connection." +msgstr "" + +#: ../Doc/library/http.client.rst:345 +msgid "Close the connection to the server." +msgstr "" + +#: ../Doc/library/http.client.rst:350 +msgid "Buffer size in bytes for sending a file-like message body." +msgstr "" + +#: ../Doc/library/http.client.rst:355 +msgid "" +"As an alternative to using the :meth:`request` method described above, you " +"can also send your request step by step, by using the four functions below." +msgstr "" + +#: ../Doc/library/http.client.rst:362 +msgid "" +"This should be the first call after the connection to the server has been " +"made. It sends a line to the server consisting of the *method* string, the " +"*url* string, and the HTTP version (``HTTP/1.1``). To disable automatic " +"sending of ``Host:`` or ``Accept-Encoding:`` headers (for example to accept " +"additional content encodings), specify *skip_host* or *skip_accept_encoding* " +"with non-False values." +msgstr "" + +#: ../Doc/library/http.client.rst:372 +msgid "" +"Send an :rfc:`822`\\ -style header to the server. It sends a line to the " +"server consisting of the header, a colon and a space, and the first " +"argument. If more arguments are given, continuation lines are sent, each " +"consisting of a tab and an argument." +msgstr "" + +#: ../Doc/library/http.client.rst:380 +msgid "" +"Send a blank line to the server, signalling the end of the headers. The " +"optional *message_body* argument can be used to pass a message body " +"associated with the request." +msgstr "" + +#: ../Doc/library/http.client.rst:384 +msgid "" +"If *encode_chunked* is ``True``, the result of each iteration of " +"*message_body* will be chunk-encoded as specified in :rfc:`7230`, Section " +"3.3.1. How the data is encoded is dependent on the type of *message_body*. " +"If *message_body* implements the :ref:`buffer interface ` the " +"encoding will result in a single chunk. If *message_body* is a :class:" +"`collections.abc.Iterable`, each iteration of *message_body* will result in " +"a chunk. If *message_body* is a :term:`file object`, each call to ``." +"read()`` will result in a chunk. The method automatically signals the end of " +"the chunk-encoded data immediately after *message_body*." +msgstr "" + +#: ../Doc/library/http.client.rst:395 +msgid "" +"Due to the chunked encoding specification, empty chunks yielded by an " +"iterator body will be ignored by the chunk-encoder. This is to avoid " +"premature termination of the read of the request by the target server due to " +"malformed encoding." +msgstr "" + +#: ../Doc/library/http.client.rst:400 +msgid "Chunked encoding support. The *encode_chunked* parameter was added." +msgstr "" + +#: ../Doc/library/http.client.rst:407 +msgid "" +"Send data to the server. This should be used directly only after the :meth:" +"`endheaders` method has been called and before :meth:`getresponse` is called." +msgstr "" + +#: ../Doc/library/http.client.rst:415 +msgid "HTTPResponse Objects" +msgstr "" + +#: ../Doc/library/http.client.rst:417 +msgid "" +"An :class:`HTTPResponse` instance wraps the HTTP response from the server. " +"It provides access to the request headers and the entity body. The response " +"is an iterable object and can be used in a with statement." +msgstr "" + +#: ../Doc/library/http.client.rst:422 +msgid "" +"The :class:`io.BufferedIOBase` interface is now implemented and all of its " +"reader operations are supported." +msgstr "" + +#: ../Doc/library/http.client.rst:429 +msgid "Reads and returns the response body, or up to the next *amt* bytes." +msgstr "" + +#: ../Doc/library/http.client.rst:433 +msgid "" +"Reads up to the next len(b) bytes of the response body into the buffer *b*. " +"Returns the number of bytes read." +msgstr "" + +#: ../Doc/library/http.client.rst:440 +msgid "" +"Return the value of the header *name*, or *default* if there is no header " +"matching *name*. If there is more than one header with the name *name*, " +"return all of the values joined by ', '. If 'default' is any iterable other " +"than a single string, its elements are similarly returned joined by commas." +msgstr "" + +#: ../Doc/library/http.client.rst:447 +msgid "Return a list of (header, value) tuples." +msgstr "" + +#: ../Doc/library/http.client.rst:451 +msgid "Return the ``fileno`` of the underlying socket." +msgstr "" + +#: ../Doc/library/http.client.rst:455 +msgid "" +"A :class:`http.client.HTTPMessage` instance containing the response " +"headers. :class:`http.client.HTTPMessage` is a subclass of :class:`email." +"message.Message`." +msgstr "" + +#: ../Doc/library/http.client.rst:461 +msgid "" +"HTTP protocol version used by server. 10 for HTTP/1.0, 11 for HTTP/1.1." +msgstr "" + +#: ../Doc/library/http.client.rst:465 +msgid "Status code returned by server." +msgstr "" + +#: ../Doc/library/http.client.rst:469 +msgid "Reason phrase returned by server." +msgstr "" + +#: ../Doc/library/http.client.rst:473 +msgid "" +"A debugging hook. If :attr:`debuglevel` is greater than zero, messages will " +"be printed to stdout as the response is read and parsed." +msgstr "" + +#: ../Doc/library/http.client.rst:478 +msgid "Is ``True`` if the stream is closed." +msgstr "" + +#: ../Doc/library/http.client.rst:481 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/http.client.rst:483 +msgid "Here is an example session that uses the ``GET`` method::" +msgstr "" + +#: ../Doc/library/http.client.rst:508 +msgid "" +"Here is an example session that uses the ``HEAD`` method. Note that the " +"``HEAD`` method never returns any data. ::" +msgstr "" + +#: ../Doc/library/http.client.rst:523 +msgid "Here is an example session that shows how to ``POST`` requests::" +msgstr "" + +#: ../Doc/library/http.client.rst:539 +msgid "" +"Client side ``HTTP PUT`` requests are very similar to ``POST`` requests. The " +"difference lies only the server side where HTTP server will allow resources " +"to be created via ``PUT`` request. It should be noted that custom HTTP " +"methods +are also handled in :class:`urllib.request.Request` by sending the " +"appropriate +method attribute.Here is an example session that shows how to " +"do ``PUT`` request using http.client::" +msgstr "" + +#: ../Doc/library/http.client.rst:561 +msgid "HTTPMessage Objects" +msgstr "" + +#: ../Doc/library/http.client.rst:563 +msgid "" +"An :class:`http.client.HTTPMessage` instance holds the headers from an HTTP " +"response. It is implemented using the :class:`email.message.Message` class." +msgstr "" diff --git a/library/http.cookiejar.po b/library/http.cookiejar.po new file mode 100644 index 000000000..af8915874 --- /dev/null +++ b/library/http.cookiejar.po @@ -0,0 +1,918 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/http.cookiejar.rst:2 +msgid ":mod:`http.cookiejar` --- Cookie handling for HTTP clients" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:10 +msgid "**Source code:** :source:`Lib/http/cookiejar.py`" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:14 +msgid "" +"The :mod:`http.cookiejar` module defines classes for automatic handling of " +"HTTP cookies. It is useful for accessing web sites that require small " +"pieces of data -- :dfn:`cookies` -- to be set on the client machine by an " +"HTTP response from a web server, and then returned to the server in later " +"HTTP requests." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:19 +msgid "" +"Both the regular Netscape cookie protocol and the protocol defined by :rfc:" +"`2965` are handled. RFC 2965 handling is switched off by default. :rfc:" +"`2109` cookies are parsed as Netscape cookies and subsequently treated " +"either as Netscape or RFC 2965 cookies according to the 'policy' in effect. " +"Note that the great majority of cookies on the Internet are Netscape " +"cookies. :mod:`http.cookiejar` attempts to follow the de-facto Netscape " +"cookie protocol (which differs substantially from that set out in the " +"original Netscape specification), including taking note of the ``max-age`` " +"and ``port`` cookie-attributes introduced with RFC 2965." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:31 +msgid "" +"The various named parameters found in :mailheader:`Set-Cookie` and :" +"mailheader:`Set-Cookie2` headers (eg. ``domain`` and ``expires``) are " +"conventionally referred to as :dfn:`attributes`. To distinguish them from " +"Python attributes, the documentation for this module uses the term :dfn:" +"`cookie-attribute` instead." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:38 +msgid "The module defines the following exception:" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:43 +msgid "" +"Instances of :class:`FileCookieJar` raise this exception on failure to load " +"cookies from a file. :exc:`LoadError` is a subclass of :exc:`OSError`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:46 +msgid "" +"LoadError was made a subclass of :exc:`OSError` instead of :exc:`IOError`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:51 +msgid "The following classes are provided:" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:56 +msgid "*policy* is an object implementing the :class:`CookiePolicy` interface." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:58 +msgid "" +"The :class:`CookieJar` class stores HTTP cookies. It extracts cookies from " +"HTTP requests, and returns them in HTTP responses. :class:`CookieJar` " +"instances automatically expire contained cookies when necessary. Subclasses " +"are also responsible for storing and retrieving cookies from a file or " +"database." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:66 +msgid "" +"*policy* is an object implementing the :class:`CookiePolicy` interface. For " +"the other arguments, see the documentation for the corresponding attributes." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:69 +msgid "" +"A :class:`CookieJar` which can load cookies from, and perhaps save cookies " +"to, a file on disk. Cookies are **NOT** loaded from the named file until " +"either the :meth:`load` or :meth:`revert` method is called. Subclasses of " +"this class are documented in section :ref:`file-cookie-jar-classes`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:77 +msgid "" +"This class is responsible for deciding whether each cookie should be " +"accepted from / returned to the server." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:83 +msgid "" +"Constructor arguments should be passed as keyword arguments only. " +"*blocked_domains* is a sequence of domain names that we never accept cookies " +"from, nor return cookies to. *allowed_domains* if not :const:`None`, this is " +"a sequence of the only domains for which we accept and return cookies. For " +"all other arguments, see the documentation for :class:`CookiePolicy` and :" +"class:`DefaultCookiePolicy` objects." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:90 +msgid "" +":class:`DefaultCookiePolicy` implements the standard accept / reject rules " +"for Netscape and :rfc:`2965` cookies. By default, :rfc:`2109` cookies (ie. " +"cookies received in a :mailheader:`Set-Cookie` header with a version cookie-" +"attribute of 1) are treated according to the RFC 2965 rules. However, if " +"RFC 2965 handling is turned off or :attr:`rfc2109_as_netscape` is ``True``, " +"RFC 2109 cookies are 'downgraded' by the :class:`CookieJar` instance to " +"Netscape cookies, by setting the :attr:`version` attribute of the :class:" +"`Cookie` instance to 0. :class:`DefaultCookiePolicy` also provides some " +"parameters to allow some fine-tuning of policy." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:103 +msgid "" +"This class represents Netscape, :rfc:`2109` and :rfc:`2965` cookies. It is " +"not expected that users of :mod:`http.cookiejar` construct their own :class:" +"`Cookie` instances. Instead, if necessary, call :meth:`make_cookies` on a :" +"class:`CookieJar` instance." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:112 +msgid "Module :mod:`urllib.request`" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:112 +msgid "URL opening with automatic cookie handling." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:117 +msgid "Module :mod:`http.cookies`" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:115 +msgid "" +"HTTP cookie classes, principally useful for server-side code. The :mod:" +"`http.cookiejar` and :mod:`http.cookies` modules do not depend on each other." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:123 +msgid "https://curl.haxx.se/rfc/cookie_spec.html" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:120 +msgid "" +"The specification of the original Netscape cookie protocol. Though this is " +"still the dominant protocol, the 'Netscape cookie protocol' implemented by " +"all the major browsers (and :mod:`http.cookiejar`) only bears a passing " +"resemblance to the one sketched out in ``cookie_spec.html``." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:126 +msgid ":rfc:`2109` - HTTP State Management Mechanism" +msgstr ":rfc:`2109` - HTTP State Management Mechanism" + +#: ../Doc/library/http.cookiejar.rst:126 +msgid "Obsoleted by :rfc:`2965`. Uses :mailheader:`Set-Cookie` with version=1." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:130 +msgid ":rfc:`2965` - HTTP State Management Mechanism" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:129 +msgid "" +"The Netscape protocol with the bugs fixed. Uses :mailheader:`Set-Cookie2` " +"in place of :mailheader:`Set-Cookie`. Not widely used." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:133 +msgid "http://kristol.org/cookie/errata.html" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:133 +msgid "Unfinished errata to :rfc:`2965`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:135 +msgid ":rfc:`2964` - Use of HTTP State Management" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:140 +msgid "CookieJar and FileCookieJar Objects" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:142 +msgid "" +":class:`CookieJar` objects support the :term:`iterator` protocol for " +"iterating over contained :class:`Cookie` objects." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:145 +msgid ":class:`CookieJar` has the following methods:" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:150 +msgid "Add correct :mailheader:`Cookie` header to *request*." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:152 +msgid "" +"If policy allows (ie. the :attr:`rfc2965` and :attr:`hide_cookie2` " +"attributes of the :class:`CookieJar`'s :class:`CookiePolicy` instance are " +"true and false respectively), the :mailheader:`Cookie2` header is also added " +"when appropriate." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:156 +msgid "" +"The *request* object (usually a :class:`urllib.request..Request` instance) " +"must support the methods :meth:`get_full_url`, :meth:`get_host`, :meth:" +"`get_type`, :meth:`unverifiable`, :meth:`has_header`, :meth:`get_header`, :" +"meth:`header_items`, :meth:`add_unredirected_header` and :attr:" +"`origin_req_host` attribute as documented by :mod:`urllib.request`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:165 ../Doc/library/http.cookiejar.rst:191 +msgid "" +"*request* object needs :attr:`origin_req_host` attribute. Dependency on a " +"deprecated method :meth:`get_origin_req_host` has been removed." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:171 +msgid "" +"Extract cookies from HTTP *response* and store them in the :class:" +"`CookieJar`, where allowed by policy." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:174 +msgid "" +"The :class:`CookieJar` will look for allowable :mailheader:`Set-Cookie` and :" +"mailheader:`Set-Cookie2` headers in the *response* argument, and store " +"cookies as appropriate (subject to the :meth:`CookiePolicy.set_ok` method's " +"approval)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:178 +msgid "" +"The *response* object (usually the result of a call to :meth:`urllib.request." +"urlopen`, or similar) should support an :meth:`info` method, which returns " +"an :class:`email.message.Message` instance." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:182 +msgid "" +"The *request* object (usually a :class:`urllib.request.Request` instance) " +"must support the methods :meth:`get_full_url`, :meth:`get_host`, :meth:" +"`unverifiable`, and :attr:`origin_req_host` attribute, as documented by :mod:" +"`urllib.request`. The request is used to set default values for cookie-" +"attributes as well as for checking that the cookie is allowed to be set." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:196 +msgid "Set the :class:`CookiePolicy` instance to be used." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:201 +msgid "" +"Return sequence of :class:`Cookie` objects extracted from *response* object." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:203 +msgid "" +"See the documentation for :meth:`extract_cookies` for the interfaces " +"required of the *response* and *request* arguments." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:209 +msgid "Set a :class:`Cookie` if policy says it's OK to do so." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:214 +msgid "" +"Set a :class:`Cookie`, without checking with policy to see whether or not it " +"should be set." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:220 +msgid "Clear some cookies." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:222 +msgid "" +"If invoked without arguments, clear all cookies. If given a single " +"argument, only cookies belonging to that *domain* will be removed. If given " +"two arguments, cookies belonging to the specified *domain* and URL *path* " +"are removed. If given three arguments, then the cookie with the specified " +"*domain*, *path* and *name* is removed." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:228 +msgid "Raises :exc:`KeyError` if no matching cookie exists." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:233 +msgid "Discard all session cookies." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:235 +msgid "" +"Discards all contained cookies that have a true :attr:`discard` attribute " +"(usually because they had either no ``max-age`` or ``expires`` cookie-" +"attribute, or an explicit ``discard`` cookie-attribute). For interactive " +"browsers, the end of a session usually corresponds to closing the browser " +"window." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:240 +msgid "" +"Note that the :meth:`save` method won't save session cookies anyway, unless " +"you ask otherwise by passing a true *ignore_discard* argument." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:243 +msgid ":class:`FileCookieJar` implements the following additional methods:" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:248 +msgid "Save cookies to a file." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:250 +msgid "" +"This base class raises :exc:`NotImplementedError`. Subclasses may leave " +"this method unimplemented." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:253 +msgid "" +"*filename* is the name of file in which to save cookies. If *filename* is " +"not specified, :attr:`self.filename` is used (whose default is the value " +"passed to the constructor, if any); if :attr:`self.filename` is :const:" +"`None`, :exc:`ValueError` is raised." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:258 +msgid "" +"*ignore_discard*: save even cookies set to be discarded. *ignore_expires*: " +"save even cookies that have expired" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:261 +msgid "" +"The file is overwritten if it already exists, thus wiping all the cookies it " +"contains. Saved cookies can be restored later using the :meth:`load` or :" +"meth:`revert` methods." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:268 +msgid "Load cookies from a file." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:270 +msgid "Old cookies are kept unless overwritten by newly loaded ones." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:272 +msgid "Arguments are as for :meth:`save`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:274 +msgid "" +"The named file must be in the format understood by the class, or :exc:" +"`LoadError` will be raised. Also, :exc:`OSError` may be raised, for example " +"if the file does not exist." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:278 +msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." +msgstr "" +":exc:`IOError` était normalement levée, elle est maintenant un alias de :exc:" +"`OSError`." + +#: ../Doc/library/http.cookiejar.rst:284 +msgid "Clear all cookies and reload cookies from a saved file." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:286 +msgid "" +":meth:`revert` can raise the same exceptions as :meth:`load`. If there is a " +"failure, the object's state will not be altered." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:289 +msgid ":class:`FileCookieJar` instances have the following public attributes:" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:294 +msgid "" +"Filename of default file in which to keep cookies. This attribute may be " +"assigned to." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:300 +msgid "" +"If true, load cookies lazily from disk. This attribute should not be " +"assigned to. This is only a hint, since this only affects performance, not " +"behaviour (unless the cookies on disk are changing). A :class:`CookieJar` " +"object may ignore it. None of the :class:`FileCookieJar` classes included " +"in the standard library lazily loads cookies." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:310 +msgid "FileCookieJar subclasses and co-operation with web browsers" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:312 +msgid "" +"The following :class:`CookieJar` subclasses are provided for reading and " +"writing." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:317 +msgid "" +"A :class:`FileCookieJar` that can load from and save cookies to disk in the " +"Mozilla ``cookies.txt`` file format (which is also used by the Lynx and " +"Netscape browsers)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:323 +msgid "" +"This loses information about :rfc:`2965` cookies, and also about newer or " +"non-standard cookie-attributes such as ``port``." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:328 +msgid "" +"Back up your cookies before saving if you have cookies whose loss / " +"corruption would be inconvenient (there are some subtleties which may lead " +"to slight changes in the file over a load / save round-trip)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:332 +msgid "" +"Also note that cookies saved while Mozilla is running will get clobbered by " +"Mozilla." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:338 +msgid "" +"A :class:`FileCookieJar` that can load from and save cookies to disk in " +"format compatible with the libwww-perl library's ``Set-Cookie3`` file " +"format. This is convenient if you want to store cookies in a human-readable " +"file." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:346 +msgid "CookiePolicy Objects" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:348 +msgid "" +"Objects implementing the :class:`CookiePolicy` interface have the following " +"methods:" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:354 +msgid "" +"Return boolean value indicating whether cookie should be accepted from " +"server." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:356 +msgid "" +"*cookie* is a :class:`Cookie` instance. *request* is an object implementing " +"the interface defined by the documentation for :meth:`CookieJar." +"extract_cookies`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:363 +msgid "" +"Return boolean value indicating whether cookie should be returned to server." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:365 +msgid "" +"*cookie* is a :class:`Cookie` instance. *request* is an object implementing " +"the interface defined by the documentation for :meth:`CookieJar." +"add_cookie_header`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:372 +msgid "Return false if cookies should not be returned, given cookie domain." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:374 +msgid "" +"This method is an optimization. It removes the need for checking every " +"cookie with a particular domain (which might involve reading many files). " +"Returning true from :meth:`domain_return_ok` and :meth:`path_return_ok` " +"leaves all the work to :meth:`return_ok`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:379 +msgid "" +"If :meth:`domain_return_ok` returns true for the cookie domain, :meth:" +"`path_return_ok` is called for the cookie path. Otherwise, :meth:" +"`path_return_ok` and :meth:`return_ok` are never called for that cookie " +"domain. If :meth:`path_return_ok` returns true, :meth:`return_ok` is called " +"with the :class:`Cookie` object itself for a full check. Otherwise, :meth:" +"`return_ok` is never called for that cookie path." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:386 +msgid "" +"Note that :meth:`domain_return_ok` is called for every *cookie* domain, not " +"just for the *request* domain. For example, the function might be called " +"with both ``\".example.com\"`` and ``\"www.example.com\"`` if the request " +"domain is ``\"www.example.com\"``. The same goes for :meth:`path_return_ok`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:391 +msgid "The *request* argument is as documented for :meth:`return_ok`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:396 +msgid "Return false if cookies should not be returned, given cookie path." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:398 +msgid "See the documentation for :meth:`domain_return_ok`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:400 +msgid "" +"In addition to implementing the methods above, implementations of the :class:" +"`CookiePolicy` interface must also supply the following attributes, " +"indicating which protocols should be used, and how. All of these attributes " +"may be assigned to." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:408 +msgid "Implement Netscape protocol." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:413 +msgid "Implement :rfc:`2965` protocol." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:418 +msgid "" +"Don't add :mailheader:`Cookie2` header to requests (the presence of this " +"header indicates to the server that we understand :rfc:`2965` cookies)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:421 +msgid "" +"The most useful way to define a :class:`CookiePolicy` class is by " +"subclassing from :class:`DefaultCookiePolicy` and overriding some or all of " +"the methods above. :class:`CookiePolicy` itself may be used as a 'null " +"policy' to allow setting and receiving any and all cookies (this is unlikely " +"to be useful)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:430 +msgid "DefaultCookiePolicy Objects" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:432 +msgid "Implements the standard rules for accepting and returning cookies." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:434 +msgid "" +"Both :rfc:`2965` and Netscape cookies are covered. RFC 2965 handling is " +"switched off by default." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:437 +msgid "" +"The easiest way to provide your own policy is to override this class and " +"call its methods in your overridden implementations before adding your own " +"additional checks::" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:450 +msgid "" +"In addition to the features required to implement the :class:`CookiePolicy` " +"interface, this class allows you to block and allow domains from setting and " +"receiving cookies. There are also some strictness switches that allow you " +"to tighten up the rather loose Netscape protocol rules a little bit (at the " +"cost of blocking some benign cookies)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:456 +msgid "" +"A domain blacklist and whitelist is provided (both off by default). Only " +"domains not in the blacklist and present in the whitelist (if the whitelist " +"is active) participate in cookie setting and returning. Use the " +"*blocked_domains* constructor argument, and :meth:`blocked_domains` and :" +"meth:`set_blocked_domains` methods (and the corresponding argument and " +"methods for *allowed_domains*). If you set a whitelist, you can turn it off " +"again by setting it to :const:`None`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:464 +msgid "" +"Domains in block or allow lists that do not start with a dot must equal the " +"cookie domain to be matched. For example, ``\"example.com\"`` matches a " +"blacklist entry of ``\"example.com\"``, but ``\"www.example.com\"`` does " +"not. Domains that do start with a dot are matched by more specific domains " +"too. For example, both ``\"www.example.com\"`` and ``\"www.coyote.example.com" +"\"`` match ``\".example.com\"`` (but ``\"example.com\"`` itself does not). " +"IP addresses are an exception, and must match exactly. For example, if " +"blocked_domains contains ``\"192.168.1.2\"`` and ``\".168.1.2\"``, " +"192.168.1.2 is blocked, but 193.168.1.2 is not." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:473 +msgid "" +":class:`DefaultCookiePolicy` implements the following additional methods:" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:478 +msgid "Return the sequence of blocked domains (as a tuple)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:483 +msgid "Set the sequence of blocked domains." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:488 +msgid "" +"Return whether *domain* is on the blacklist for setting or receiving cookies." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:493 +msgid "Return :const:`None`, or the sequence of allowed domains (as a tuple)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:498 +msgid "Set the sequence of allowed domains, or :const:`None`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:503 +msgid "" +"Return whether *domain* is not on the whitelist for setting or receiving " +"cookies." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:506 +msgid "" +":class:`DefaultCookiePolicy` instances have the following attributes, which " +"are all initialised from the constructor arguments of the same name, and " +"which may all be assigned to." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:513 +msgid "" +"If true, request that the :class:`CookieJar` instance downgrade :rfc:`2109` " +"cookies (ie. cookies received in a :mailheader:`Set-Cookie` header with a " +"version cookie-attribute of 1) to Netscape cookies by setting the version " +"attribute of the :class:`Cookie` instance to 0. The default value is :const:" +"`None`, in which case RFC 2109 cookies are downgraded if and only if :rfc:" +"`2965` handling is turned off. Therefore, RFC 2109 cookies are downgraded " +"by default." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:521 +msgid "General strictness switches:" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:525 +msgid "" +"Don't allow sites to set two-component domains with country-code top-level " +"domains like ``.co.uk``, ``.gov.uk``, ``.co.nz``.etc. This is far from " +"perfect and isn't guaranteed to work!" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:530 +msgid ":rfc:`2965` protocol strictness switches:" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:534 +msgid "" +"Follow :rfc:`2965` rules on unverifiable transactions (usually, an " +"unverifiable transaction is one resulting from a redirect or a request for " +"an image hosted on another site). If this is false, cookies are *never* " +"blocked on the basis of verifiability" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:540 +msgid "Netscape protocol strictness switches:" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:544 +msgid "" +"Apply :rfc:`2965` rules on unverifiable transactions even to Netscape " +"cookies." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:549 +msgid "" +"Flags indicating how strict to be with domain-matching rules for Netscape " +"cookies. See below for acceptable values." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:555 +msgid "" +"Ignore cookies in Set-Cookie: headers that have names starting with ``'$'``." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:560 +msgid "Don't allow setting cookies whose path doesn't path-match request URI." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:562 +msgid "" +":attr:`strict_ns_domain` is a collection of flags. Its value is constructed " +"by or-ing together (for example, ``DomainStrictNoDots|" +"DomainStrictNonDomain`` means both flags are set)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:569 +msgid "" +"When setting cookies, the 'host prefix' must not contain a dot (eg. ``www." +"foo.bar.com`` can't set a cookie for ``.bar.com``, because ``www.foo`` " +"contains a dot)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:576 +msgid "" +"Cookies that did not explicitly specify a ``domain`` cookie-attribute can " +"only be returned to a domain equal to the domain that set the cookie (eg. " +"``spam.example.com`` won't be returned cookies from ``example.com`` that had " +"no ``domain`` cookie-attribute)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:584 +msgid "When setting cookies, require a full :rfc:`2965` domain-match." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:586 +msgid "" +"The following attributes are provided for convenience, and are the most " +"useful combinations of the above flags:" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:592 +msgid "" +"Equivalent to 0 (ie. all of the above Netscape domain strictness flags " +"switched off)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:598 +msgid "Equivalent to ``DomainStrictNoDots|DomainStrictNonDomain``." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:602 +msgid "Cookie Objects" +msgstr "Objets *Cookie*" + +#: ../Doc/library/http.cookiejar.rst:604 +msgid "" +":class:`Cookie` instances have Python attributes roughly corresponding to " +"the standard cookie-attributes specified in the various cookie standards. " +"The correspondence is not one-to-one, because there are complicated rules " +"for assigning default values, because the ``max-age`` and ``expires`` cookie-" +"attributes contain equivalent information, and because :rfc:`2109` cookies " +"may be 'downgraded' by :mod:`http.cookiejar` from version 1 to version 0 " +"(Netscape) cookies." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:612 +msgid "" +"Assignment to these attributes should not be necessary other than in rare " +"circumstances in a :class:`CookiePolicy` method. The class does not enforce " +"internal consistency, so you should know what you're doing if you do that." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:619 +msgid "" +"Integer or :const:`None`. Netscape cookies have :attr:`version` 0. :rfc:" +"`2965` and :rfc:`2109` cookies have a ``version`` cookie-attribute of 1. " +"However, note that :mod:`http.cookiejar` may 'downgrade' RFC 2109 cookies to " +"Netscape cookies, in which case :attr:`version` is 0." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:627 +msgid "Cookie name (a string)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:632 +msgid "Cookie value (a string), or :const:`None`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:637 +msgid "" +"String representing a port or a set of ports (eg. '80', or '80,8080'), or :" +"const:`None`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:643 +msgid "Cookie path (a string, eg. ``'/acme/rocket_launchers'``)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:648 +msgid "``True`` if cookie should only be returned over a secure connection." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:653 +msgid "" +"Integer expiry date in seconds since epoch, or :const:`None`. See also the :" +"meth:`is_expired` method." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:659 +msgid "``True`` if this is a session cookie." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:664 +msgid "" +"String comment from the server explaining the function of this cookie, or :" +"const:`None`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:670 +msgid "" +"URL linking to a comment from the server explaining the function of this " +"cookie, or :const:`None`." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:676 +msgid "" +"``True`` if this cookie was received as an :rfc:`2109` cookie (ie. the " +"cookie arrived in a :mailheader:`Set-Cookie` header, and the value of the " +"Version cookie-attribute in that header was 1). This attribute is provided " +"because :mod:`http.cookiejar` may 'downgrade' RFC 2109 cookies to Netscape " +"cookies, in which case :attr:`version` is 0." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:685 +msgid "" +"``True`` if a port or set of ports was explicitly specified by the server " +"(in the :mailheader:`Set-Cookie` / :mailheader:`Set-Cookie2` header)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:691 +msgid "``True`` if a domain was explicitly specified by the server." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:696 +msgid "" +"``True`` if the domain explicitly specified by the server began with a dot " +"(``'.'``)." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:699 +msgid "" +"Cookies may have additional non-standard cookie-attributes. These may be " +"accessed using the following methods:" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:705 +msgid "Return true if cookie has the named cookie-attribute." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:710 +msgid "" +"If cookie has the named cookie-attribute, return its value. Otherwise, " +"return *default*." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:716 +msgid "Set the value of the named cookie-attribute." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:718 +msgid "The :class:`Cookie` class also defines the following method:" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:723 +msgid "" +"``True`` if cookie has passed the time at which the server requested it " +"should expire. If *now* is given (in seconds since the epoch), return " +"whether the cookie has expired at the specified time." +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:729 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/http.cookiejar.rst:731 +msgid "" +"The first example shows the most common usage of :mod:`http.cookiejar`::" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:738 +msgid "" +"This example illustrates how to open a URL using your Netscape, Mozilla, or " +"Lynx cookies (assumes Unix/Netscape convention for location of the cookies " +"file)::" +msgstr "" + +#: ../Doc/library/http.cookiejar.rst:747 +msgid "" +"The next example illustrates the use of :class:`DefaultCookiePolicy`. Turn " +"on :rfc:`2965` cookies, be more strict about domains when setting and " +"returning Netscape cookies, and block some domains from setting cookies or " +"having them returned::" +msgstr "" diff --git a/library/http.cookies.po b/library/http.cookies.po new file mode 100644 index 000000000..47fd3aefe --- /dev/null +++ b/library/http.cookies.po @@ -0,0 +1,380 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 21:39+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/http.cookies.rst:2 +msgid ":mod:`http.cookies` --- HTTP state management" +msgstr ":mod:`http.cookies` — gestion d'état pour HTTP" + +#: ../Doc/library/http.cookies.rst:10 +msgid "**Source code:** :source:`Lib/http/cookies.py`" +msgstr "**Code source :** :source:`Lib/http/cookies.py`" + +#: ../Doc/library/http.cookies.rst:14 +msgid "" +"The :mod:`http.cookies` module defines classes for abstracting the concept " +"of cookies, an HTTP state management mechanism. It supports both simple " +"string-only cookies, and provides an abstraction for having any serializable " +"data-type as cookie value." +msgstr "" +"Le module :mod:`http.cookies` définit des classes abstrayant le concept de " +"témoin web (cookie), un mécanisme de gestion d'état pour HTTP. Il fournit " +"une abstraction gérant des données textuelles et tout type de données " +"sérialisable comme valeur de témoin." + +#: ../Doc/library/http.cookies.rst:19 +msgid "" +"The module formerly strictly applied the parsing rules described in the :rfc:" +"`2109` and :rfc:`2068` specifications. It has since been discovered that " +"MSIE 3.0x doesn't follow the character rules outlined in those specs and " +"also many current day browsers and servers have relaxed parsing rules when " +"comes to Cookie handling. As a result, the parsing rules used are a bit " +"less strict." +msgstr "" +"Auparavant, le module appliquait strictement les règles d'analyse décrites " +"dans les spécifications :rfc:`2109` et :rfc:`2068`. Entre temps, il a été " +"découvert que Internet Explorer 3.0 ne suit pas les règles liées aux " +"caractères précisées dans ces spécifications. De plus, plusieurs navigateurs " +"et serveurs dans leur versions récentes ont assoupli les règles d'analyse " +"quant à la gestion des témoins. En conséquence, les règles d'analyse " +"utilisées sont un peu moins strictes que les spécifications initiales." + +#: ../Doc/library/http.cookies.rst:25 +msgid "" +"The character set, :data:`string.ascii_letters`, :data:`string.digits` and " +"``!#$%&'*+-.^_`|~:`` denote the set of valid characters allowed by this " +"module in Cookie name (as :attr:`~Morsel.key`)." +msgstr "" +"Les jeux de caractères :data:`string.ascii_letters`, :data:`string.digits` " +"et ``!#$%&'*+-.^_`|~:`` définissent l'ensemble des caractères autorisés par " +"ce module pour le nom du témoin (comme :attr:`~Morsel.key`)." + +#: ../Doc/library/http.cookies.rst:29 +msgid "Allowed ':' as a valid Cookie name character." +msgstr "Ajouté « : » comme caractère autorisé pour les noms de témoin." + +#: ../Doc/library/http.cookies.rst:35 +msgid "" +"On encountering an invalid cookie, :exc:`CookieError` is raised, so if your " +"cookie data comes from a browser you should always prepare for invalid data " +"and catch :exc:`CookieError` on parsing." +msgstr "" +"Quand un témoin invalide est rencontré, l'exception :exc:`CookieError` est " +"levée. Si les données du témoin proviennent d'un navigateur il faut " +"impérativement gérer les données invalides en attrapant :exc:`CookieError`." + +#: ../Doc/library/http.cookies.rst:42 +msgid "" +"Exception failing because of :rfc:`2109` invalidity: incorrect attributes, " +"incorrect :mailheader:`Set-Cookie` header, etc." +msgstr "" +"Exception levée pour cause d'incompatibilité avec la :rfc:`2109`. Exemples : " +"attributs incorrects, en-tête ``Set-Cookie`` incorrect, etc." + +#: ../Doc/library/http.cookies.rst:48 +msgid "" +"This class is a dictionary-like object whose keys are strings and whose " +"values are :class:`Morsel` instances. Note that upon setting a key to a " +"value, the value is first converted to a :class:`Morsel` containing the key " +"and the value." +msgstr "" +"Cette classe définit un dictionnaire dont les clés sont des chaines de " +"caractères et dont les valeurs sont des instances de :class:`Morsel`. Notez " +"qu'à l'assignation d'une valeur à une clé, la valeur est transformée en :" +"class:`Morsel` contenant la clé et la valeur." + +#: ../Doc/library/http.cookies.rst:52 +msgid "If *input* is given, it is passed to the :meth:`load` method." +msgstr "" +"Si l'argument *input* est donné, il est passé à la méthode :meth:`load`." + +#: ../Doc/library/http.cookies.rst:57 +msgid "" +"This class derives from :class:`BaseCookie` and overrides :meth:" +"`value_decode` and :meth:`value_encode`. SimpleCookie supports strings as " +"cookie values. When setting the value, SimpleCookie calls the builtin :func:" +"`str()` to convert the value to a string. Values received from HTTP are kept " +"as strings." +msgstr "" +"Cette classe dérive de :class:`BaseCookie`. Elle surcharge les méthodes :" +"meth:`value_decode` et :meth:`value_encode`. **SimpleCookie** gère les " +"chaines de caractères pour spécifier des valeurs de cookies. Lorsque la " +"valeur est définie, **SimpleCookie** appelle la fonction native :func:" +"`str()` pour convertir la valeur en chaine de caractères. Les valeurs reçues " +"par HTTP sont gardées comme chaines." + +#: ../Doc/library/http.cookies.rst:66 +msgid "Module :mod:`http.cookiejar`" +msgstr "Module :mod:`http.cookiejar`" + +#: ../Doc/library/http.cookies.rst:65 +msgid "" +"HTTP cookie handling for web *clients*. The :mod:`http.cookiejar` and :mod:" +"`http.cookies` modules do not depend on each other." +msgstr "" +"Gestion de témoins HTTP pour *clients* web. Les modules :mod:`http." +"cookiejar` et :mod:`http.cookies` ne dépendent pas l'un de l'autre." + +#: ../Doc/library/http.cookies.rst:68 +msgid ":rfc:`2109` - HTTP State Management Mechanism" +msgstr ":rfc:`2109` - HTTP State Management Mechanism" + +#: ../Doc/library/http.cookies.rst:69 +msgid "This is the state management specification implemented by this module." +msgstr "Spécification de gestion d'états implantée par ce module." + +#: ../Doc/library/http.cookies.rst:75 +msgid "Cookie Objects" +msgstr "Objets *Cookie*" + +#: ../Doc/library/http.cookies.rst:80 +msgid "" +"Return a tuple ``(real_value, coded_value)`` from a string representation. " +"``real_value`` can be any type. This method does no decoding in :class:" +"`BaseCookie` --- it exists so it can be overridden." +msgstr "" +"Renvoie une paire ``(real_value, coded_value)`` depuis une représentation de " +"chaine. ``real_value`` peut être de n’importe quel type. Cette méthode ne " +"décode rien dans :class:`BaseCookie` – elle existe pour être surchargée." + +#: ../Doc/library/http.cookies.rst:87 +msgid "" +"Return a tuple ``(real_value, coded_value)``. *val* can be any type, but " +"``coded_value`` will always be converted to a string. This method does no " +"encoding in :class:`BaseCookie` --- it exists so it can be overridden." +msgstr "" +"Renvoie une paire ``(real_value, coded_value)``. *val* peut être de " +"n’importe quel type, mais ``coded_value`` est toujours converti en chaine de " +"caractères. Cette méthode n’encode pas dans :class:`BaseCookie` – elle " +"existe pour être surchargée." + +#: ../Doc/library/http.cookies.rst:92 +msgid "" +"In general, it should be the case that :meth:`value_encode` and :meth:" +"`value_decode` are inverses on the range of *value_decode*." +msgstr "" +"Généralement, les méthodes :meth:`value_encode` et :meth:`value_decode` " +"doivent être inverses l'une de l'autre, c'est-à-dire qu'en envoyant la " +"sortie de l'un dans l'entrée de l'autre la valeur finale doit être égale à " +"la valeur initiale." + +#: ../Doc/library/http.cookies.rst:98 +msgid "" +"Return a string representation suitable to be sent as HTTP headers. *attrs* " +"and *header* are sent to each :class:`Morsel`'s :meth:`output` method. *sep* " +"is used to join the headers together, and is by default the combination " +"``'\\r\\n'`` (CRLF)." +msgstr "" +"Renvoie une représentation textuelle compatible avec les en-têtes HTTP. " +"*attrs et *header* sont envoyés à la méthode :meth:`output` de chaque " +"classe :class:`Morsel`. *sep* est le séparateur à utiliser pour joindre les " +"valeurs d'en-têtes. Sa valeur par défaut est ``'\\r\\n'`` (CRLF)." + +#: ../Doc/library/http.cookies.rst:106 +msgid "" +"Return an embeddable JavaScript snippet, which, if run on a browser which " +"supports JavaScript, will act the same as if the HTTP headers was sent." +msgstr "" +"Renvoie un extrait de code JavaScript qui, lorsque exécuté par un navigateur " +"qui supporte le JavaScript, va fonctionner de la même manière que si les en-" +"têtes HTTP avaient été envoyés." + +#: ../Doc/library/http.cookies.rst:109 ../Doc/library/http.cookies.rst:197 +#: ../Doc/library/http.cookies.rst:205 +msgid "The meaning for *attrs* is the same as in :meth:`output`." +msgstr "*attrs* a la même signification que dans la méthode :meth:`output`." + +#: ../Doc/library/http.cookies.rst:114 +msgid "" +"If *rawdata* is a string, parse it as an ``HTTP_COOKIE`` and add the values " +"found there as :class:`Morsel`\\ s. If it is a dictionary, it is equivalent " +"to::" +msgstr "" +"Si *rawdata* est une chaine de caractères, l'analyser comme étant un " +"``HTTP_COOKIE`` et ajouter les valeurs trouvées en tant que :class:`Morsel`" +"\\ s. S'il s'agit d'un dictionnaire, cela est équivalent à ::" + +#: ../Doc/library/http.cookies.rst:124 +msgid "Morsel Objects" +msgstr "Objets *Morsel*" + +#: ../Doc/library/http.cookies.rst:129 +msgid "Abstract a key/value pair, which has some :rfc:`2109` attributes." +msgstr "" +"Abstraction de paire clé / valeur, accompagnée d'attributs provenant de la " +"spécification :rfc:`2109`." + +#: ../Doc/library/http.cookies.rst:131 +msgid "" +"Morsels are dictionary-like objects, whose set of keys is constant --- the " +"valid :rfc:`2109` attributes, which are" +msgstr "" +"Les objets *Morsel* sont des objets compatibles dictionnaire, dont " +"l'ensemble des clés est fixe et égal aux attributs :rfc:`2109` valides, qui " +"sont" + +#: ../Doc/library/http.cookies.rst:134 +msgid "``expires``" +msgstr "``expires``" + +#: ../Doc/library/http.cookies.rst:135 +msgid "``path``" +msgstr "``path``" + +#: ../Doc/library/http.cookies.rst:136 +msgid "``comment``" +msgstr "``comment``" + +#: ../Doc/library/http.cookies.rst:137 +msgid "``domain``" +msgstr "``domain``" + +#: ../Doc/library/http.cookies.rst:138 +msgid "``max-age``" +msgstr "``max-age``" + +#: ../Doc/library/http.cookies.rst:139 +msgid "``secure``" +msgstr "``secure``" + +#: ../Doc/library/http.cookies.rst:140 +msgid "``version``" +msgstr "``version``" + +#: ../Doc/library/http.cookies.rst:141 +msgid "``httponly``" +msgstr "``httponly``" + +#: ../Doc/library/http.cookies.rst:143 +msgid "" +"The attribute :attr:`httponly` specifies that the cookie is only transferred " +"in HTTP requests, and is not accessible through JavaScript. This is intended " +"to mitigate some forms of cross-site scripting." +msgstr "" +"L'attribut :attr:`httponly` spécifie que le témoin transféré dans les " +"requêtes HTTP n'est pas accessible par le biais de JavaScript. Il s'agit " +"d'une contremesure à certaines attaques de scripts inter-sites (*XSS*)." + +#: ../Doc/library/http.cookies.rst:147 +msgid "The keys are case-insensitive and their default value is ``''``." +msgstr "" +"Les clés ne sont pas sensibles à la casse, leur valeur par défaut est ``''``." + +#: ../Doc/library/http.cookies.rst:149 +msgid "" +":meth:`~Morsel.__eq__` now takes :attr:`~Morsel.key` and :attr:`~Morsel." +"value` into account." +msgstr "" +"Dorénavant, :meth:`~Morsel.__eq__` prend en compte :attr:`~Morsel.key` et :" +"attr:`~Morsel.value`." + +#: ../Doc/library/http.cookies.rst:153 +msgid "" +"Attributes :attr:`~Morsel.key`, :attr:`~Morsel.value` and :attr:`~Morsel." +"coded_value` are read-only. Use :meth:`~Morsel.set` for setting them." +msgstr "" +"Les attributs :attr:`~Morsel.key`, :attr:`~Morsel.value` et :attr:`~Morsel." +"coded_value` sont en lecture seule. Utilisez :meth:`~Morsel.set` pour les " +"assigner." + +#: ../Doc/library/http.cookies.rst:161 +msgid "The value of the cookie." +msgstr "La valeur du témoin." + +#: ../Doc/library/http.cookies.rst:166 +msgid "The encoded value of the cookie --- this is what should be sent." +msgstr "La valeur codée du témoin. C'est celle qui doit être transférée." + +#: ../Doc/library/http.cookies.rst:171 +msgid "The name of the cookie." +msgstr "Le nom du témoin." + +#: ../Doc/library/http.cookies.rst:176 +msgid "Set the *key*, *value* and *coded_value* attributes." +msgstr "Assigne les attributs *key*, *value* et *coded_value*." + +#: ../Doc/library/http.cookies.rst:181 +msgid "Whether *K* is a member of the set of keys of a :class:`Morsel`." +msgstr "Renvoie si *K* est membre des clés d'un :class:`Morsel`." + +#: ../Doc/library/http.cookies.rst:186 +msgid "" +"Return a string representation of the Morsel, suitable to be sent as an HTTP " +"header. By default, all the attributes are included, unless *attrs* is " +"given, in which case it should be a list of attributes to use. *header* is " +"by default ``\"Set-Cookie:\"``." +msgstr "" +"Renvoie une représentation textuelle du *Morsel* compatible avec les en-" +"têtes HTTP. Par défaut, tous les attributs sont inclus, à moins que *attrs* " +"ne soit renseigné. Dans ce cas la valeur doit être une liste d'attributs à " +"utiliser. Par défaut, *header* a la valeur ``\"Set-Cookie:\"``." + +#: ../Doc/library/http.cookies.rst:194 +msgid "" +"Return an embeddable JavaScript snippet, which, if run on a browser which " +"supports JavaScript, will act the same as if the HTTP header was sent." +msgstr "" +"Renvoie un extrait de code JavaScript qui, lorsque exécuté par un navigateur " +"qui supporte le JavaScript, va fonctionner de la même manière que si les en-" +"têtes HTTP avaient été envoyés." + +#: ../Doc/library/http.cookies.rst:202 +msgid "" +"Return a string representing the Morsel, without any surrounding HTTP or " +"JavaScript." +msgstr "" +"Renvoie une chaine de caractères représentant le *Morsel*, nettoyé de son " +"contexte HTTP ou JavaScript." + +#: ../Doc/library/http.cookies.rst:210 +msgid "" +"Update the values in the Morsel dictionary with the values in the dictionary " +"*values*. Raise an error if any of the keys in the *values* dict is not a " +"valid :rfc:`2109` attribute." +msgstr "" +"Met à jour les valeurs du dictionnaire du *Morsel* avec les valeurs " +"provenant du dictionnaire *values*. Lève une erreur si une des clés n'est " +"pas un attribut :rfc:`2109` valide." + +#: ../Doc/library/http.cookies.rst:214 +msgid "an error is raised for invalid keys." +msgstr "une erreur est levée pour les clés invalides." + +#: ../Doc/library/http.cookies.rst:220 +msgid "Return a shallow copy of the Morsel object." +msgstr "Renvoie une copie superficielle de l'objet *Morsel*." + +#: ../Doc/library/http.cookies.rst:222 +msgid "return a Morsel object instead of a dict." +msgstr "renvoie un objet *Morsel* au lieu d'un ``dict``." + +#: ../Doc/library/http.cookies.rst:228 +msgid "" +"Raise an error if key is not a valid :rfc:`2109` attribute, otherwise behave " +"the same as :meth:`dict.setdefault`." +msgstr "" +"Lève une erreur si la clé n'est pas un attribut :rfc:`2109` valide, sinon " +"fonctionne de la même manière que :meth:`dict.setdefault`." + +#: ../Doc/library/http.cookies.rst:235 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/http.cookies.rst:237 +msgid "" +"The following example demonstrates how to use the :mod:`http.cookies` module." +msgstr "" +"L'exemple suivant montre comment utiliser le module :mod:`http.cookies`." diff --git a/library/http.po b/library/http.po new file mode 100644 index 000000000..206d2dc93 --- /dev/null +++ b/library/http.po @@ -0,0 +1,819 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2018-09-27 11:39+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.1.1\n" + +#: ../Doc/library/http.rst:2 +msgid ":mod:`http` --- HTTP modules" +msgstr ":mod:`http` — modules HTTP" + +#: ../Doc/library/http.rst:7 +msgid "**Source code:** :source:`Lib/http/__init__.py`" +msgstr "**Code source :** :source:`Lib/http/__init__.py`" + +#: ../Doc/library/http.rst:15 +msgid "" +":mod:`http` is a package that collects several modules for working with the " +"HyperText Transfer Protocol:" +msgstr "" +":mod:`http` est un paquet qui rassemble plusieurs modules servant à " +"travailler avec le protocole HTTP (*HyperText Transfer Procotol*) :" + +#: ../Doc/library/http.rst:18 +msgid "" +":mod:`http.client` is a low-level HTTP protocol client; for high-level URL " +"opening use :mod:`urllib.request`" +msgstr "" +"Le module :mod:`http.client` est un client HTTP bas niveau. Pour accéder à " +"des ressources web, utiliser le module haut niveau :mod:`urllib.request`" + +#: ../Doc/library/http.rst:20 +msgid "" +":mod:`http.server` contains basic HTTP server classes based on :mod:" +"`socketserver`" +msgstr "" +"Le module :mod:`http.server` contient des classes serveur HTTP basiques " +"basées sur :mod:`socketserver`" + +#: ../Doc/library/http.rst:21 +msgid "" +":mod:`http.cookies` has utilities for implementing state management with " +"cookies" +msgstr "" +"Le module :mod:`http.cookies` contient des utilitaires liés à la gestion " +"d'état HTTP via les cookies" + +#: ../Doc/library/http.rst:22 +msgid ":mod:`http.cookiejar` provides persistence of cookies" +msgstr "" +"Le module :mod:`http.cookiejar` fournit un mécanisme de persistance des " +"cookies" + +#: ../Doc/library/http.rst:24 +msgid "" +":mod:`http` is also a module that defines a number of HTTP status codes and " +"associated messages through the :class:`http.HTTPStatus` enum:" +msgstr "" +":mod:`http` est aussi un module qui définit une liste de codes d'état HTTP " +"et les messages associés par le biais de l'énumération :class:`http." +"HTTPStatus` :" + +#: ../Doc/library/http.rst:31 +msgid "" +"A subclass of :class:`enum.IntEnum` that defines a set of HTTP status codes, " +"reason phrases and long descriptions written in English." +msgstr "" +"Sous-classe de :class:`enum.IntEnum` qui définit un ensemble de codes d'état " +"HTTP, messages explicatifs et descriptions complètes écrites en anglais." + +#: ../Doc/library/http.rst:34 +msgid "Usage::" +msgstr "Utilisation ::" + +#: ../Doc/library/http.rst:53 +msgid "HTTP status codes" +msgstr "Codes d'état HTTP" + +#: ../Doc/library/http.rst:55 +msgid "" +"Supported, `IANA-registered `_ status codes available in :class:`http." +"HTTPStatus` are:" +msgstr "" +"Les codes d'état disponibles (`enregistrés auprès de l'IANA `_) dans :" +"class:`http.HTTPStatus` sont :" + +#: ../Doc/library/http.rst:60 +msgid "Code" +msgstr "Code" + +#: ../Doc/library/http.rst:60 +msgid "Enum Name" +msgstr "Message" + +#: ../Doc/library/http.rst:60 +msgid "Details" +msgstr "Détails" + +#: ../Doc/library/http.rst:62 +msgid "``100``" +msgstr "``100``" + +#: ../Doc/library/http.rst:62 +msgid "``CONTINUE``" +msgstr "``CONTINUE``" + +#: ../Doc/library/http.rst:62 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.2.1" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.2.1" + +#: ../Doc/library/http.rst:63 +msgid "``101``" +msgstr "``101``" + +#: ../Doc/library/http.rst:63 +msgid "``SWITCHING_PROTOCOLS``" +msgstr "``SWITCHING_PROTOCOLS``" + +#: ../Doc/library/http.rst:63 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.2.2" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.2.2" + +#: ../Doc/library/http.rst:64 +msgid "``102``" +msgstr "``102``" + +#: ../Doc/library/http.rst:64 +msgid "``PROCESSING``" +msgstr "``PROCESSING``" + +#: ../Doc/library/http.rst:64 +msgid "WebDAV :rfc:`2518`, Section 10.1" +msgstr "*WebDAV* :rfc:`2518`, Section 10.1" + +#: ../Doc/library/http.rst:65 +msgid "``200``" +msgstr "``200``" + +#: ../Doc/library/http.rst:65 +msgid "``OK``" +msgstr "``OK``" + +#: ../Doc/library/http.rst:65 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.3.1" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.3.1" + +#: ../Doc/library/http.rst:66 +msgid "``201``" +msgstr "``201``" + +#: ../Doc/library/http.rst:66 +msgid "``CREATED``" +msgstr "``CREATED``" + +#: ../Doc/library/http.rst:66 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.3.2" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.3.2" + +#: ../Doc/library/http.rst:67 +msgid "``202``" +msgstr "``202``" + +#: ../Doc/library/http.rst:67 +msgid "``ACCEPTED``" +msgstr "``ACCEPTED``" + +#: ../Doc/library/http.rst:67 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.3.3" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.3.3" + +#: ../Doc/library/http.rst:68 +msgid "``203``" +msgstr "``203``" + +#: ../Doc/library/http.rst:68 +msgid "``NON_AUTHORITATIVE_INFORMATION``" +msgstr "``NON_AUTHORITATIVE_INFORMATION``" + +#: ../Doc/library/http.rst:68 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.3.4" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.3.4" + +#: ../Doc/library/http.rst:69 +msgid "``204``" +msgstr "``204``" + +#: ../Doc/library/http.rst:69 +msgid "``NO_CONTENT``" +msgstr "``NO_CONTENT``" + +#: ../Doc/library/http.rst:69 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.3.5" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.3.5" + +#: ../Doc/library/http.rst:70 +msgid "``205``" +msgstr "``205``" + +#: ../Doc/library/http.rst:70 +msgid "``RESET_CONTENT``" +msgstr "``RESET_CONTENT``" + +#: ../Doc/library/http.rst:70 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.3.6" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.3.6" + +#: ../Doc/library/http.rst:71 +msgid "``206``" +msgstr "``206``" + +#: ../Doc/library/http.rst:71 +msgid "``PARTIAL_CONTENT``" +msgstr "``PARTIAL_CONTENT``" + +#: ../Doc/library/http.rst:71 +msgid "HTTP/1.1 :rfc:`7233`, Section 4.1" +msgstr "HTTP/1.1 :rfc:`7233`, Section 4.1" + +#: ../Doc/library/http.rst:72 +msgid "``207``" +msgstr "``207``" + +#: ../Doc/library/http.rst:72 +msgid "``MULTI_STATUS``" +msgstr "``MULTI_STATUS``" + +#: ../Doc/library/http.rst:72 +msgid "WebDAV :rfc:`4918`, Section 11.1" +msgstr "*WebDAV* :rfc:`4918`, Section 11.1" + +#: ../Doc/library/http.rst:73 +msgid "``208``" +msgstr "``208``" + +#: ../Doc/library/http.rst:73 +msgid "``ALREADY_REPORTED``" +msgstr "``ALREADY_REPORTED``" + +#: ../Doc/library/http.rst:73 +msgid "WebDAV Binding Extensions :rfc:`5842`, Section 7.1 (Experimental)" +msgstr "*WebDAV* Binding Extensions :rfc:`5842`, Section 7.1 (Expérimental)" + +#: ../Doc/library/http.rst:74 +msgid "``226``" +msgstr "``226``" + +#: ../Doc/library/http.rst:74 +msgid "``IM_USED``" +msgstr "``IM_USED``" + +#: ../Doc/library/http.rst:74 +msgid "Delta Encoding in HTTP :rfc:`3229`, Section 10.4.1" +msgstr "Delta Encoding in HTTP :rfc:`3229`, Section 10.4.1" + +#: ../Doc/library/http.rst:75 +msgid "``300``" +msgstr "``300``" + +#: ../Doc/library/http.rst:75 +msgid "``MULTIPLE_CHOICES``" +msgstr "``MULTIPLE_CHOICES``" + +#: ../Doc/library/http.rst:75 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.4.1" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.4.1" + +#: ../Doc/library/http.rst:76 +msgid "``301``" +msgstr "``301``" + +#: ../Doc/library/http.rst:76 +msgid "``MOVED_PERMANENTLY``" +msgstr "``MOVED_PERMANENTLY``" + +#: ../Doc/library/http.rst:76 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.4.2" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.4.2" + +#: ../Doc/library/http.rst:77 +msgid "``302``" +msgstr "``302``" + +#: ../Doc/library/http.rst:77 +msgid "``FOUND``" +msgstr "``FOUND``" + +#: ../Doc/library/http.rst:77 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.4.3" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.4.3" + +#: ../Doc/library/http.rst:78 +msgid "``303``" +msgstr "``303``" + +#: ../Doc/library/http.rst:78 +msgid "``SEE_OTHER``" +msgstr "``SEE_OTHER``" + +#: ../Doc/library/http.rst:78 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.4.4" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.4.4" + +#: ../Doc/library/http.rst:79 +msgid "``304``" +msgstr "``304``" + +#: ../Doc/library/http.rst:79 +msgid "``NOT_MODIFIED``" +msgstr "``NOT_MODIFIED``" + +#: ../Doc/library/http.rst:79 +msgid "HTTP/1.1 :rfc:`7232`, Section 4.1" +msgstr "HTTP/1.1 :rfc:`7232`, Section 4.1" + +#: ../Doc/library/http.rst:80 +msgid "``305``" +msgstr "``305``" + +#: ../Doc/library/http.rst:80 +msgid "``USE_PROXY``" +msgstr "``USE_PROXY``" + +#: ../Doc/library/http.rst:80 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.4.5" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.4.5" + +#: ../Doc/library/http.rst:81 +msgid "``307``" +msgstr "``307``" + +#: ../Doc/library/http.rst:81 +msgid "``TEMPORARY_REDIRECT``" +msgstr "``TEMPORARY_REDIRECT``" + +#: ../Doc/library/http.rst:81 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.4.7" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.4.7" + +#: ../Doc/library/http.rst:82 +msgid "``308``" +msgstr "``308``" + +#: ../Doc/library/http.rst:82 +msgid "``PERMANENT_REDIRECT``" +msgstr "``PERMANENT_REDIRECT``" + +#: ../Doc/library/http.rst:82 +msgid "Permanent Redirect :rfc:`7238`, Section 3 (Experimental)" +msgstr "Permanent Redirect :rfc:`7238`, Section 3 (Expérimental)" + +#: ../Doc/library/http.rst:83 +msgid "``400``" +msgstr "``400``" + +#: ../Doc/library/http.rst:83 +msgid "``BAD_REQUEST``" +msgstr "``BAD_REQUEST``" + +#: ../Doc/library/http.rst:83 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.1" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.1" + +#: ../Doc/library/http.rst:84 +msgid "``401``" +msgstr "``401``" + +#: ../Doc/library/http.rst:84 +msgid "``UNAUTHORIZED``" +msgstr "``UNAUTHORIZED``" + +#: ../Doc/library/http.rst:84 +msgid "HTTP/1.1 Authentication :rfc:`7235`, Section 3.1" +msgstr "HTTP/1.1 Authentication :rfc:`7235`, Section 3.1" + +#: ../Doc/library/http.rst:85 +msgid "``402``" +msgstr "``402``" + +#: ../Doc/library/http.rst:85 +msgid "``PAYMENT_REQUIRED``" +msgstr "``PAYMENT_REQUIRED``" + +#: ../Doc/library/http.rst:85 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.2" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.2" + +#: ../Doc/library/http.rst:86 +msgid "``403``" +msgstr "``403``" + +#: ../Doc/library/http.rst:86 +msgid "``FORBIDDEN``" +msgstr "``FORBIDDEN``" + +#: ../Doc/library/http.rst:86 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.3" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.3" + +#: ../Doc/library/http.rst:87 +msgid "``404``" +msgstr "``404``" + +#: ../Doc/library/http.rst:87 +msgid "``NOT_FOUND``" +msgstr "``NOT_FOUND``" + +#: ../Doc/library/http.rst:87 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.4" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.4" + +#: ../Doc/library/http.rst:88 +msgid "``405``" +msgstr "``405``" + +#: ../Doc/library/http.rst:88 +msgid "``METHOD_NOT_ALLOWED``" +msgstr "``METHOD_NOT_ALLOWED``" + +#: ../Doc/library/http.rst:88 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.5" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.5" + +#: ../Doc/library/http.rst:89 +msgid "``406``" +msgstr "``406``" + +#: ../Doc/library/http.rst:89 +msgid "``NOT_ACCEPTABLE``" +msgstr "``NOT_ACCEPTABLE``" + +#: ../Doc/library/http.rst:89 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.6" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.6" + +#: ../Doc/library/http.rst:90 +msgid "``407``" +msgstr "``407``" + +#: ../Doc/library/http.rst:90 +msgid "``PROXY_AUTHENTICATION_REQUIRED``" +msgstr "``PROXY_AUTHENTICATION_REQUIRED``" + +#: ../Doc/library/http.rst:90 +msgid "HTTP/1.1 Authentication :rfc:`7235`, Section 3.2" +msgstr "HTTP/1.1 Authentication :rfc:`7235`, Section 3.2" + +#: ../Doc/library/http.rst:91 +msgid "``408``" +msgstr "``408``" + +#: ../Doc/library/http.rst:91 +msgid "``REQUEST_TIMEOUT``" +msgstr "``REQUEST_TIMEOUT``" + +#: ../Doc/library/http.rst:91 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.7" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.7" + +#: ../Doc/library/http.rst:92 +msgid "``409``" +msgstr "``409``" + +#: ../Doc/library/http.rst:92 +msgid "``CONFLICT``" +msgstr "``CONFLICT``" + +#: ../Doc/library/http.rst:92 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.8" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.8" + +#: ../Doc/library/http.rst:93 +msgid "``410``" +msgstr "``410``" + +#: ../Doc/library/http.rst:93 +msgid "``GONE``" +msgstr "``GONE``" + +#: ../Doc/library/http.rst:93 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.9" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.9" + +#: ../Doc/library/http.rst:94 +msgid "``411``" +msgstr "``411``" + +#: ../Doc/library/http.rst:94 +msgid "``LENGTH_REQUIRED``" +msgstr "``LENGTH_REQUIRED``" + +#: ../Doc/library/http.rst:94 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.10" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.10" + +#: ../Doc/library/http.rst:95 +msgid "``412``" +msgstr "``412``" + +#: ../Doc/library/http.rst:95 +msgid "``PRECONDITION_FAILED``" +msgstr "``PRECONDITION_FAILED``" + +#: ../Doc/library/http.rst:95 +msgid "HTTP/1.1 :rfc:`7232`, Section 4.2" +msgstr "HTTP/1.1 :rfc:`7232`, Section 4.2" + +#: ../Doc/library/http.rst:96 +msgid "``413``" +msgstr "``413``" + +#: ../Doc/library/http.rst:96 +msgid "``REQUEST_ENTITY_TOO_LARGE``" +msgstr "``REQUEST_ENTITY_TOO_LARGE``" + +#: ../Doc/library/http.rst:96 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.11" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.11" + +#: ../Doc/library/http.rst:97 +msgid "``414``" +msgstr "``414``" + +#: ../Doc/library/http.rst:97 +msgid "``REQUEST_URI_TOO_LONG``" +msgstr "``REQUEST_URI_TOO_LONG``" + +#: ../Doc/library/http.rst:97 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.12" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.12" + +#: ../Doc/library/http.rst:98 +msgid "``415``" +msgstr "``415``" + +#: ../Doc/library/http.rst:98 +msgid "``UNSUPPORTED_MEDIA_TYPE``" +msgstr "``UNSUPPORTED_MEDIA_TYPE``" + +#: ../Doc/library/http.rst:98 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.13" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.13" + +#: ../Doc/library/http.rst:99 +msgid "``416``" +msgstr "``416``" + +#: ../Doc/library/http.rst:99 +msgid "``REQUESTED_RANGE_NOT_SATISFIABLE``" +msgstr "``REQUESTED_RANGE_NOT_SATISFIABLE``" + +#: ../Doc/library/http.rst:99 +msgid "HTTP/1.1 Range Requests :rfc:`7233`, Section 4.4" +msgstr "HTTP/1.1 Range Requests :rfc:`7233`, Section 4.4" + +#: ../Doc/library/http.rst:100 +msgid "``417``" +msgstr "``417``" + +#: ../Doc/library/http.rst:100 +msgid "``EXPECTATION_FAILED``" +msgstr "``EXPECTATION_FAILED``" + +#: ../Doc/library/http.rst:100 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.14" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.14" + +#: ../Doc/library/http.rst:101 +msgid "``421``" +msgstr "``421``" + +#: ../Doc/library/http.rst:101 +msgid "``MISDIRECTED_REQUEST``" +msgstr "``MISDIRECTED_REQUEST``" + +#: ../Doc/library/http.rst:101 +msgid "HTTP/2 :rfc:`7540`, Section 9.1.2" +msgstr "HTTP/2 :rfc:`7540`, Section 9.1.2" + +#: ../Doc/library/http.rst:102 +msgid "``422``" +msgstr "``422``" + +#: ../Doc/library/http.rst:102 +msgid "``UNPROCESSABLE_ENTITY``" +msgstr "``UNPROCESSABLE_ENTITY``" + +#: ../Doc/library/http.rst:102 +msgid "WebDAV :rfc:`4918`, Section 11.2" +msgstr "*WebDAV* :rfc:`4918`, Section 11.2" + +#: ../Doc/library/http.rst:103 +msgid "``423``" +msgstr "``423``" + +#: ../Doc/library/http.rst:103 +msgid "``LOCKED``" +msgstr "``LOCKED``" + +#: ../Doc/library/http.rst:103 +msgid "WebDAV :rfc:`4918`, Section 11.3" +msgstr "*WebDAV* :rfc:`4918`, Section 11.3" + +#: ../Doc/library/http.rst:104 +msgid "``424``" +msgstr "``424``" + +#: ../Doc/library/http.rst:104 +msgid "``FAILED_DEPENDENCY``" +msgstr "``FAILED_DEPENDENCY``" + +#: ../Doc/library/http.rst:104 +msgid "WebDAV :rfc:`4918`, Section 11.4" +msgstr "*WebDAV* :rfc:`4918`, Section 11.4" + +#: ../Doc/library/http.rst:105 +msgid "``426``" +msgstr "``426``" + +#: ../Doc/library/http.rst:105 +msgid "``UPGRADE_REQUIRED``" +msgstr "``UPGRADE_REQUIRED``" + +#: ../Doc/library/http.rst:105 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.15" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.5.15" + +#: ../Doc/library/http.rst:106 +msgid "``428``" +msgstr "``428``" + +#: ../Doc/library/http.rst:106 +msgid "``PRECONDITION_REQUIRED``" +msgstr "``PRECONDITION_REQUIRED``" + +#: ../Doc/library/http.rst:106 ../Doc/library/http.rst:107 +#: ../Doc/library/http.rst:108 +msgid "Additional HTTP Status Codes :rfc:`6585`" +msgstr "Additional HTTP Status Codes :rfc:`6585`" + +#: ../Doc/library/http.rst:107 +msgid "``429``" +msgstr "``429``" + +#: ../Doc/library/http.rst:107 +msgid "``TOO_MANY_REQUESTS``" +msgstr "``TOO_MANY_REQUESTS``" + +#: ../Doc/library/http.rst:108 +msgid "``431``" +msgstr "``431``" + +#: ../Doc/library/http.rst:108 +msgid "``REQUEST_HEADER_FIELDS_TOO_LARGE``" +msgstr "``REQUEST_HEADER_FIELDS_TOO_LARGE``" + +#: ../Doc/library/http.rst:109 +msgid "``500``" +msgstr "``500``" + +#: ../Doc/library/http.rst:109 +msgid "``INTERNAL_SERVER_ERROR``" +msgstr "``INTERNAL_SERVER_ERROR``" + +#: ../Doc/library/http.rst:109 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.6.1" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.6.1" + +#: ../Doc/library/http.rst:110 +msgid "``501``" +msgstr "``501``" + +#: ../Doc/library/http.rst:110 +msgid "``NOT_IMPLEMENTED``" +msgstr "``NOT_IMPLEMENTED``" + +#: ../Doc/library/http.rst:110 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.6.2" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.6.2" + +#: ../Doc/library/http.rst:111 +msgid "``502``" +msgstr "``502``" + +#: ../Doc/library/http.rst:111 +msgid "``BAD_GATEWAY``" +msgstr "``BAD_GATEWAY``" + +#: ../Doc/library/http.rst:111 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.6.3" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.6.3" + +#: ../Doc/library/http.rst:112 +msgid "``503``" +msgstr "``503``" + +#: ../Doc/library/http.rst:112 +msgid "``SERVICE_UNAVAILABLE``" +msgstr "``SERVICE_UNAVAILABLE``" + +#: ../Doc/library/http.rst:112 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.6.4" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.6.4" + +#: ../Doc/library/http.rst:113 +msgid "``504``" +msgstr "``504``" + +#: ../Doc/library/http.rst:113 +msgid "``GATEWAY_TIMEOUT``" +msgstr "``GATEWAY_TIMEOUT``" + +#: ../Doc/library/http.rst:113 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.6.5" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.6.5" + +#: ../Doc/library/http.rst:114 +msgid "``505``" +msgstr "``505``" + +#: ../Doc/library/http.rst:114 +msgid "``HTTP_VERSION_NOT_SUPPORTED``" +msgstr "``HTTP_VERSION_NOT_SUPPORTED``" + +#: ../Doc/library/http.rst:114 +msgid "HTTP/1.1 :rfc:`7231`, Section 6.6.6" +msgstr "HTTP/1.1 :rfc:`7231`, Section 6.6.6" + +#: ../Doc/library/http.rst:115 +msgid "``506``" +msgstr "``506``" + +#: ../Doc/library/http.rst:115 +msgid "``VARIANT_ALSO_NEGOTIATES``" +msgstr "``VARIANT_ALSO_NEGOTIATES``" + +#: ../Doc/library/http.rst:115 +msgid "" +"Transparent Content Negotiation in HTTP :rfc:`2295`, Section 8.1 " +"(Experimental)" +msgstr "" +"Transparent Content Negotiation in HTTP :rfc:`2295`, Section 8.1 " +"(Expérimental)" + +#: ../Doc/library/http.rst:116 +msgid "``507``" +msgstr "``507``" + +#: ../Doc/library/http.rst:116 +msgid "``INSUFFICIENT_STORAGE``" +msgstr "``INSUFFICIENT_STORAGE``" + +#: ../Doc/library/http.rst:116 +msgid "WebDAV :rfc:`4918`, Section 11.5" +msgstr "*WebDAV* :rfc:`4918`, Section 11.5" + +#: ../Doc/library/http.rst:117 +msgid "``508``" +msgstr "``508``" + +#: ../Doc/library/http.rst:117 +msgid "``LOOP_DETECTED``" +msgstr "``LOOP_DETECTED``" + +#: ../Doc/library/http.rst:117 +msgid "WebDAV Binding Extensions :rfc:`5842`, Section 7.2 (Experimental)" +msgstr "*WebDAV Binding Extensions* :rfc:`5842`, Section 7.2 (Expérimental)" + +#: ../Doc/library/http.rst:118 +msgid "``510``" +msgstr "``510``" + +#: ../Doc/library/http.rst:118 +msgid "``NOT_EXTENDED``" +msgstr "``NOT_EXTENDED``" + +#: ../Doc/library/http.rst:118 +msgid "An HTTP Extension Framework :rfc:`2774`, Section 7 (Experimental)" +msgstr "An HTTP Extension Framework :rfc:`2774`, Section 7 (Expérimental)" + +#: ../Doc/library/http.rst:119 +msgid "``511``" +msgstr "``511``" + +#: ../Doc/library/http.rst:119 +msgid "``NETWORK_AUTHENTICATION_REQUIRED``" +msgstr "``NETWORK_AUTHENTICATION_REQUIRED``" + +#: ../Doc/library/http.rst:119 +msgid "Additional HTTP Status Codes :rfc:`6585`, Section 6" +msgstr "Codes d'état HTTP supplémentaires :rfc:`6585`, Section 6" + +#: ../Doc/library/http.rst:122 +msgid "" +"In order to preserve backwards compatibility, enum values are also present " +"in the :mod:`http.client` module in the form of constants. The enum name is " +"equal to the constant name (i.e. ``http.HTTPStatus.OK`` is also available as " +"``http.client.OK``)." +msgstr "" +"Dans le but de préserver la compatibilité descendante, les valeurs " +"d'énumération sont aussi présentes dans le module :mod:`http.client` sous " +"forme de constantes. Les noms de valeurs de l'énumération sont accessibles " +"de deux manières : par exemple, le code HTTP 200 est accessible sous les " +"noms ``http.HTTPStatus.OK`` et ``http.client.OK``." + +#: ../Doc/library/http.rst:127 +msgid "Added ``421 MISDIRECTED_REQUEST`` status code." +msgstr "Ajouté le code d'état ``421 MISDIRECTED_REQUEST``." diff --git a/library/http.server.po b/library/http.server.po new file mode 100644 index 000000000..2375b78ca --- /dev/null +++ b/library/http.server.po @@ -0,0 +1,565 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/http.server.rst:2 +msgid ":mod:`http.server` --- HTTP servers" +msgstr "" + +#: ../Doc/library/http.server.rst:7 +msgid "**Source code:** :source:`Lib/http/server.py`" +msgstr "" + +#: ../Doc/library/http.server.rst:17 +msgid "" +"This module defines classes for implementing HTTP servers (Web servers)." +msgstr "" + +#: ../Doc/library/http.server.rst:21 +msgid "" +":mod:`http.server` is not recommended for production. It only implements " +"basic security checks." +msgstr "" + +#: ../Doc/library/http.server.rst:24 +msgid "" +"One class, :class:`HTTPServer`, is a :class:`socketserver.TCPServer` " +"subclass. It creates and listens at the HTTP socket, dispatching the " +"requests to a handler. Code to create and run the server looks like this::" +msgstr "" + +#: ../Doc/library/http.server.rst:36 +msgid "" +"This class builds on the :class:`~socketserver.TCPServer` class by storing " +"the server address as instance variables named :attr:`server_name` and :attr:" +"`server_port`. The server is accessible by the handler, typically through " +"the handler's :attr:`server` instance variable." +msgstr "" + +#: ../Doc/library/http.server.rst:43 +msgid "" +"This class is identical to HTTPServer but uses threads to handle requests by " +"using the :class:`~socketserver.ThreadingMixIn`. This is useful to handle " +"web browsers pre-opening sockets, on which :class:`HTTPServer` would wait " +"indefinitely." +msgstr "" + +#: ../Doc/library/http.server.rst:51 +msgid "" +"The :class:`HTTPServer` and :class:`ThreadingHTTPServer` must be given a " +"*RequestHandlerClass* on instantiation, of which this module provides three " +"different variants:" +msgstr "" + +#: ../Doc/library/http.server.rst:57 +msgid "" +"This class is used to handle the HTTP requests that arrive at the server. " +"By itself, it cannot respond to any actual HTTP requests; it must be " +"subclassed to handle each request method (e.g. GET or POST). :class:" +"`BaseHTTPRequestHandler` provides a number of class and instance variables, " +"and methods for use by subclasses." +msgstr "" + +#: ../Doc/library/http.server.rst:63 +msgid "" +"The handler will parse the request and the headers, then call a method " +"specific to the request type. The method name is constructed from the " +"request. For example, for the request method ``SPAM``, the :meth:`do_SPAM` " +"method will be called with no arguments. All of the relevant information is " +"stored in instance variables of the handler. Subclasses should not need to " +"override or extend the :meth:`__init__` method." +msgstr "" + +#: ../Doc/library/http.server.rst:70 +msgid ":class:`BaseHTTPRequestHandler` has the following instance variables:" +msgstr "" + +#: ../Doc/library/http.server.rst:74 +msgid "" +"Contains a tuple of the form ``(host, port)`` referring to the client's " +"address." +msgstr "" + +#: ../Doc/library/http.server.rst:79 +msgid "Contains the server instance." +msgstr "" + +#: ../Doc/library/http.server.rst:83 +msgid "" +"Boolean that should be set before :meth:`handle_one_request` returns, " +"indicating if another request may be expected, or if the connection should " +"be shut down." +msgstr "" + +#: ../Doc/library/http.server.rst:89 +msgid "" +"Contains the string representation of the HTTP request line. The terminating " +"CRLF is stripped. This attribute should be set by :meth:" +"`handle_one_request`. If no valid request line was processed, it should be " +"set to the empty string." +msgstr "" + +#: ../Doc/library/http.server.rst:96 +msgid "Contains the command (request type). For example, ``'GET'``." +msgstr "" + +#: ../Doc/library/http.server.rst:100 +msgid "Contains the request path." +msgstr "" + +#: ../Doc/library/http.server.rst:104 +msgid "" +"Contains the version string from the request. For example, ``'HTTP/1.0'``." +msgstr "" + +#: ../Doc/library/http.server.rst:108 +msgid "" +"Holds an instance of the class specified by the :attr:`MessageClass` class " +"variable. This instance parses and manages the headers in the HTTP request. " +"The :func:`~http.client.parse_headers` function from :mod:`http.client` is " +"used to parse the headers and it requires that the HTTP request provide a " +"valid :rfc:`2822` style header." +msgstr "" + +#: ../Doc/library/http.server.rst:116 +msgid "" +"An :class:`io.BufferedIOBase` input stream, ready to read from the start of " +"the optional input data." +msgstr "" + +#: ../Doc/library/http.server.rst:121 +msgid "" +"Contains the output stream for writing a response back to the client. Proper " +"adherence to the HTTP protocol must be used when writing to this stream in " +"order to achieve successful interoperation with HTTP clients." +msgstr "" + +#: ../Doc/library/http.server.rst:126 +msgid "This is an :class:`io.BufferedIOBase` stream." +msgstr "" + +#: ../Doc/library/http.server.rst:129 +msgid ":class:`BaseHTTPRequestHandler` has the following attributes:" +msgstr "" + +#: ../Doc/library/http.server.rst:133 +msgid "" +"Specifies the server software version. You may want to override this. The " +"format is multiple whitespace-separated strings, where each string is of the " +"form name[/version]. For example, ``'BaseHTTP/0.2'``." +msgstr "" + +#: ../Doc/library/http.server.rst:139 +msgid "" +"Contains the Python system version, in a form usable by the :attr:" +"`version_string` method and the :attr:`server_version` class variable. For " +"example, ``'Python/1.4'``." +msgstr "" + +#: ../Doc/library/http.server.rst:145 +msgid "" +"Specifies a format string that should be used by :meth:`send_error` method " +"for building an error response to the client. The string is filled by " +"default with variables from :attr:`responses` based on the status code that " +"passed to :meth:`send_error`." +msgstr "" + +#: ../Doc/library/http.server.rst:152 +msgid "" +"Specifies the Content-Type HTTP header of error responses sent to the " +"client. The default value is ``'text/html'``." +msgstr "" + +#: ../Doc/library/http.server.rst:157 +msgid "" +"This specifies the HTTP protocol version used in responses. If set to " +"``'HTTP/1.1'``, the server will permit HTTP persistent connections; however, " +"your server *must* then include an accurate ``Content-Length`` header " +"(using :meth:`send_header`) in all of its responses to clients. For " +"backwards compatibility, the setting defaults to ``'HTTP/1.0'``." +msgstr "" + +#: ../Doc/library/http.server.rst:165 +msgid "" +"Specifies an :class:`email.message.Message`\\ -like class to parse HTTP " +"headers. Typically, this is not overridden, and it defaults to :class:`http." +"client.HTTPMessage`." +msgstr "" + +#: ../Doc/library/http.server.rst:171 +msgid "" +"This attribute contains a mapping of error code integers to two-element " +"tuples containing a short and long message. For example, ``{code: " +"(shortmessage, longmessage)}``. The *shortmessage* is usually used as the " +"*message* key in an error response, and *longmessage* as the *explain* key. " +"It is used by :meth:`send_response_only` and :meth:`send_error` methods." +msgstr "" + +#: ../Doc/library/http.server.rst:177 +msgid "A :class:`BaseHTTPRequestHandler` instance has the following methods:" +msgstr "" + +#: ../Doc/library/http.server.rst:181 +msgid "" +"Calls :meth:`handle_one_request` once (or, if persistent connections are " +"enabled, multiple times) to handle incoming HTTP requests. You should never " +"need to override it; instead, implement appropriate :meth:`do_\\*` methods." +msgstr "" + +#: ../Doc/library/http.server.rst:188 +msgid "" +"This method will parse and dispatch the request to the appropriate :meth:`do_" +"\\*` method. You should never need to override it." +msgstr "" + +#: ../Doc/library/http.server.rst:193 +msgid "" +"When a HTTP/1.1 compliant server receives an ``Expect: 100-continue`` " +"request header it responds back with a ``100 Continue`` followed by ``200 " +"OK`` headers. This method can be overridden to raise an error if the server " +"does not want the client to continue. For e.g. server can chose to send " +"``417 Expectation Failed`` as a response header and ``return False``." +msgstr "" + +#: ../Doc/library/http.server.rst:204 +msgid "" +"Sends and logs a complete error reply to the client. The numeric *code* " +"specifies the HTTP error code, with *message* as an optional, short, human " +"readable description of the error. The *explain* argument can be used to " +"provide more detailed information about the error; it will be formatted " +"using the :attr:`error_message_format` attribute and emitted, after a " +"complete set of headers, as the response body. The :attr:`responses` " +"attribute holds the default values for *message* and *explain* that will be " +"used if no value is provided; for unknown codes the default value for both " +"is the string ``???``. The body will be empty if the method is HEAD or the " +"response code is one of the following: ``1xx``, ``204 No Content``, ``205 " +"Reset Content``, ``304 Not Modified``." +msgstr "" + +#: ../Doc/library/http.server.rst:216 +msgid "" +"The error response includes a Content-Length header. Added the *explain* " +"argument." +msgstr "" + +#: ../Doc/library/http.server.rst:222 +msgid "" +"Adds a response header to the headers buffer and logs the accepted request. " +"The HTTP response line is written to the internal buffer, followed by " +"*Server* and *Date* headers. The values for these two headers are picked up " +"from the :meth:`version_string` and :meth:`date_time_string` methods, " +"respectively. If the server does not intend to send any other headers using " +"the :meth:`send_header` method, then :meth:`send_response` should be " +"followed by an :meth:`end_headers` call." +msgstr "" + +#: ../Doc/library/http.server.rst:231 +msgid "" +"Headers are stored to an internal buffer and :meth:`end_headers` needs to be " +"called explicitly." +msgstr "" + +#: ../Doc/library/http.server.rst:237 +msgid "" +"Adds the HTTP header to an internal buffer which will be written to the " +"output stream when either :meth:`end_headers` or :meth:`flush_headers` is " +"invoked. *keyword* should specify the header keyword, with *value* " +"specifying its value. Note that, after the send_header calls are done, :meth:" +"`end_headers` MUST BE called in order to complete the operation." +msgstr "" + +#: ../Doc/library/http.server.rst:243 +msgid "Headers are stored in an internal buffer." +msgstr "" + +#: ../Doc/library/http.server.rst:248 +msgid "" +"Sends the response header only, used for the purposes when ``100 Continue`` " +"response is sent by the server to the client. The headers not buffered and " +"sent directly the output stream.If the *message* is not specified, the HTTP " +"message corresponding the response *code* is sent." +msgstr "" + +#: ../Doc/library/http.server.rst:257 +msgid "" +"Adds a blank line (indicating the end of the HTTP headers in the response) " +"to the headers buffer and calls :meth:`flush_headers()`." +msgstr "" + +#: ../Doc/library/http.server.rst:261 +msgid "The buffered headers are written to the output stream." +msgstr "" + +#: ../Doc/library/http.server.rst:266 +msgid "" +"Finally send the headers to the output stream and flush the internal headers " +"buffer." +msgstr "" + +#: ../Doc/library/http.server.rst:273 +msgid "" +"Logs an accepted (successful) request. *code* should specify the numeric " +"HTTP code associated with the response. If a size of the response is " +"available, then it should be passed as the *size* parameter." +msgstr "" + +#: ../Doc/library/http.server.rst:279 +msgid "" +"Logs an error when a request cannot be fulfilled. By default, it passes the " +"message to :meth:`log_message`, so it takes the same arguments (*format* and " +"additional values)." +msgstr "" + +#: ../Doc/library/http.server.rst:286 +msgid "" +"Logs an arbitrary message to ``sys.stderr``. This is typically overridden to " +"create custom error logging mechanisms. The *format* argument is a standard " +"printf-style format string, where the additional arguments to :meth:" +"`log_message` are applied as inputs to the formatting. The client ip address " +"and current date and time are prefixed to every message logged." +msgstr "" + +#: ../Doc/library/http.server.rst:294 +msgid "" +"Returns the server software's version string. This is a combination of the :" +"attr:`server_version` and :attr:`sys_version` attributes." +msgstr "" + +#: ../Doc/library/http.server.rst:299 +msgid "" +"Returns the date and time given by *timestamp* (which must be ``None`` or in " +"the format returned by :func:`time.time`), formatted for a message header. " +"If *timestamp* is omitted, it uses the current date and time." +msgstr "" + +#: ../Doc/library/http.server.rst:303 +msgid "The result looks like ``'Sun, 06 Nov 1994 08:49:37 GMT'``." +msgstr "" + +#: ../Doc/library/http.server.rst:307 +msgid "Returns the current date and time, formatted for logging." +msgstr "" + +#: ../Doc/library/http.server.rst:311 +msgid "Returns the client address." +msgstr "" + +#: ../Doc/library/http.server.rst:313 +msgid "" +"Previously, a name lookup was performed. To avoid name resolution delays, it " +"now always returns the IP address." +msgstr "" + +#: ../Doc/library/http.server.rst:320 +msgid "" +"This class serves files from the current directory and below, directly " +"mapping the directory structure to HTTP requests." +msgstr "" + +#: ../Doc/library/http.server.rst:323 +msgid "" +"A lot of the work, such as parsing the request, is done by the base class :" +"class:`BaseHTTPRequestHandler`. This class implements the :func:`do_GET` " +"and :func:`do_HEAD` functions." +msgstr "" + +#: ../Doc/library/http.server.rst:327 +msgid "" +"The following are defined as class-level attributes of :class:" +"`SimpleHTTPRequestHandler`:" +msgstr "" + +#: ../Doc/library/http.server.rst:332 +msgid "" +"This will be ``\"SimpleHTTP/\" + __version__``, where ``__version__`` is " +"defined at the module level." +msgstr "" + +#: ../Doc/library/http.server.rst:337 +msgid "" +"A dictionary mapping suffixes into MIME types. The default is signified by " +"an empty string, and is considered to be ``application/octet-stream``. The " +"mapping is used case-insensitively, and so should contain only lower-cased " +"keys." +msgstr "" + +#: ../Doc/library/http.server.rst:344 +msgid "" +"If not specified, the directory to serve is the current working directory." +msgstr "" + +#: ../Doc/library/http.server.rst:346 +msgid "" +"The :class:`SimpleHTTPRequestHandler` class defines the following methods:" +msgstr "" + +#: ../Doc/library/http.server.rst:350 +msgid "" +"This method serves the ``'HEAD'`` request type: it sends the headers it " +"would send for the equivalent ``GET`` request. See the :meth:`do_GET` method " +"for a more complete explanation of the possible headers." +msgstr "" + +#: ../Doc/library/http.server.rst:356 +msgid "" +"The request is mapped to a local file by interpreting the request as a path " +"relative to the current working directory." +msgstr "" + +#: ../Doc/library/http.server.rst:359 +msgid "" +"If the request was mapped to a directory, the directory is checked for a " +"file named ``index.html`` or ``index.htm`` (in that order). If found, the " +"file's contents are returned; otherwise a directory listing is generated by " +"calling the :meth:`list_directory` method. This method uses :func:`os." +"listdir` to scan the directory, and returns a ``404`` error response if the :" +"func:`~os.listdir` fails." +msgstr "" + +#: ../Doc/library/http.server.rst:366 +msgid "" +"If the request was mapped to a file, it is opened. Any :exc:`OSError` " +"exception in opening the requested file is mapped to a ``404``, ``'File not " +"found'`` error. If there was a ``'If-Modified-Since'`` header in the " +"request, and the file was not modified after this time, a ``304``, ``'Not " +"Modified'`` response is sent. Otherwise, the content type is guessed by " +"calling the :meth:`guess_type` method, which in turn uses the " +"*extensions_map* variable, and the file contents are returned." +msgstr "" + +#: ../Doc/library/http.server.rst:374 +msgid "" +"A ``'Content-type:'`` header with the guessed content type is output, " +"followed by a ``'Content-Length:'`` header with the file's size and a " +"``'Last-Modified:'`` header with the file's modification time." +msgstr "" + +#: ../Doc/library/http.server.rst:378 +msgid "" +"Then follows a blank line signifying the end of the headers, and then the " +"contents of the file are output. If the file's MIME type starts with ``text/" +"`` the file is opened in text mode; otherwise binary mode is used." +msgstr "" + +#: ../Doc/library/http.server.rst:382 +msgid "" +"For example usage, see the implementation of the :func:`test` function " +"invocation in the :mod:`http.server` module." +msgstr "" + +#: ../Doc/library/http.server.rst:385 +msgid "Support of the ``'If-Modified-Since'`` header." +msgstr "" + +#: ../Doc/library/http.server.rst:388 +msgid "" +"The :class:`SimpleHTTPRequestHandler` class can be used in the following " +"manner in order to create a very basic webserver serving files relative to " +"the current directory::" +msgstr "" + +#: ../Doc/library/http.server.rst:405 +msgid "" +":mod:`http.server` can also be invoked directly using the :option:`-m` " +"switch of the interpreter with a ``port number`` argument. Similar to the " +"previous example, this serves files relative to the current directory::" +msgstr "" + +#: ../Doc/library/http.server.rst:411 +msgid "" +"By default, server binds itself to all interfaces. The option ``-b/--bind`` " +"specifies a specific address to which it should bind. For example, the " +"following command causes the server to bind to localhost only::" +msgstr "" + +#: ../Doc/library/http.server.rst:417 +msgid "``--bind`` argument was introduced." +msgstr "" + +#: ../Doc/library/http.server.rst:420 +msgid "" +"By default, server uses the current directory. The option ``-d/--directory`` " +"specifies a directory to which it should serve the files. For example, the " +"following command uses a specific directory::" +msgstr "" + +#: ../Doc/library/http.server.rst:426 +msgid "``--directory`` specify alternate directory" +msgstr "" + +#: ../Doc/library/http.server.rst:431 +msgid "" +"This class is used to serve either files or output of CGI scripts from the " +"current directory and below. Note that mapping HTTP hierarchic structure to " +"local directory structure is exactly as in :class:`SimpleHTTPRequestHandler`." +msgstr "" + +#: ../Doc/library/http.server.rst:437 +msgid "" +"CGI scripts run by the :class:`CGIHTTPRequestHandler` class cannot execute " +"redirects (HTTP code 302), because code 200 (script output follows) is sent " +"prior to execution of the CGI script. This pre-empts the status code." +msgstr "" + +#: ../Doc/library/http.server.rst:442 +msgid "" +"The class will however, run the CGI script, instead of serving it as a file, " +"if it guesses it to be a CGI script. Only directory-based CGI are used --- " +"the other common server configuration is to treat special extensions as " +"denoting CGI scripts." +msgstr "" + +#: ../Doc/library/http.server.rst:447 +msgid "" +"The :func:`do_GET` and :func:`do_HEAD` functions are modified to run CGI " +"scripts and serve the output, instead of serving files, if the request leads " +"to somewhere below the ``cgi_directories`` path." +msgstr "" + +#: ../Doc/library/http.server.rst:451 +msgid "The :class:`CGIHTTPRequestHandler` defines the following data member:" +msgstr "" + +#: ../Doc/library/http.server.rst:455 +msgid "" +"This defaults to ``['/cgi-bin', '/htbin']`` and describes directories to " +"treat as containing CGI scripts." +msgstr "" + +#: ../Doc/library/http.server.rst:458 +msgid "The :class:`CGIHTTPRequestHandler` defines the following method:" +msgstr "" + +#: ../Doc/library/http.server.rst:462 +msgid "" +"This method serves the ``'POST'`` request type, only allowed for CGI " +"scripts. Error 501, \"Can only POST to CGI scripts\", is output when trying " +"to POST to a non-CGI url." +msgstr "" + +#: ../Doc/library/http.server.rst:466 +msgid "" +"Note that CGI scripts will be run with UID of user nobody, for security " +"reasons. Problems with the CGI script will be translated to error 403." +msgstr "" + +#: ../Doc/library/http.server.rst:469 +msgid "" +":class:`CGIHTTPRequestHandler` can be enabled in the command line by passing " +"the ``--cgi`` option::" +msgstr "" + +#~ msgid "Security Considerations" +#~ msgstr "Considérations de sécurité" diff --git a/library/i18n.po b/library/i18n.po new file mode 100644 index 000000000..7b29dab77 --- /dev/null +++ b/library/i18n.po @@ -0,0 +1,35 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-11-07 22:58+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/i18n.rst:5 +msgid "Internationalization" +msgstr "Internationalisation" + +#: ../Doc/library/i18n.rst:7 +msgid "" +"The modules described in this chapter help you write software that is " +"independent of language and locale by providing mechanisms for selecting a " +"language to be used in program messages or by tailoring output to match " +"local conventions." +msgstr "" +"Les modules décrits dans ce chapitre vous aident à rédiger des programmes " +"indépendants des langues et des cultures en fournissant des mécanismes pour " +"sélectionner une langue à utiliser dans les messages, ou en adaptant la " +"sortie aux conventions culturelles." + +#: ../Doc/library/i18n.rst:12 +msgid "The list of modules described in this chapter is:" +msgstr "La liste des modules documentés dans ce chapitre est :" diff --git a/library/idle.po b/library/idle.po new file mode 100644 index 000000000..ed9f75a75 --- /dev/null +++ b/library/idle.po @@ -0,0 +1,2028 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"PO-Revision-Date: 2019-07-02 11:42+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/idle.rst:4 +msgid "IDLE" +msgstr "*IDLE*" + +#: ../Doc/library/idle.rst:8 +msgid "**Source code:** :source:`Lib/idlelib/`" +msgstr "**Code source** : :source:`Lib/idlelib/`" + +#: ../Doc/library/idle.rst:17 +msgid "IDLE is Python's Integrated Development and Learning Environment." +msgstr "" +"*IDLE* est l'environnement de développement et d'apprentissage intégré de " +"Python (*Integrated Development and Learning Environment*)." + +#: ../Doc/library/idle.rst:19 +msgid "IDLE has the following features:" +msgstr "*IDLE* a les fonctionnalités suivantes :" + +#: ../Doc/library/idle.rst:21 +msgid "coded in 100% pure Python, using the :mod:`tkinter` GUI toolkit" +msgstr "" +"codé à 100% en pur Python, en utilisant l'outil d'interfaçage graphique :mod:" +"`tkinter`" + +#: ../Doc/library/idle.rst:23 +msgid "cross-platform: works mostly the same on Windows, Unix, and macOS" +msgstr "" +"multi-plateformes : fonctionne de la même manière sous Windows, *Unix* et " +"*macOS*" + +#: ../Doc/library/idle.rst:25 +msgid "" +"Python shell window (interactive interpreter) with colorizing of code input, " +"output, and error messages" +msgstr "" +"Console Python (interpréteur interactif) avec coloration du code entré, des " +"sorties et des messages d'erreur" + +#: ../Doc/library/idle.rst:28 +msgid "" +"multi-window text editor with multiple undo, Python colorizing, smart " +"indent, call tips, auto completion, and other features" +msgstr "" +"éditeur de texte multi-fenêtres avec annulations multiples, coloration " +"Python, indentation automatique, aide pour les appels de fonction, " +"*autocomplétion*, parmi d'autres fonctionnalités" + +#: ../Doc/library/idle.rst:31 +msgid "" +"search within any window, replace within editor windows, and search through " +"multiple files (grep)" +msgstr "" +"recherche dans n'importe quelle fenêtre, remplacement dans une fenêtre " +"d'édition et recherche dans des fichiers multiples (*grep*)" + +#: ../Doc/library/idle.rst:34 +msgid "" +"debugger with persistent breakpoints, stepping, and viewing of global and " +"local namespaces" +msgstr "" +"débogueur avec points d'arrêt persistants, pas-à-pas et visualisation des " +"espaces de nommage locaux et globaux" + +#: ../Doc/library/idle.rst:37 +msgid "configuration, browsers, and other dialogs" +msgstr "configuration, navigateur et d'autres fenêtres de dialogue" + +#: ../Doc/library/idle.rst:40 +msgid "Menus" +msgstr "Menus" + +#: ../Doc/library/idle.rst:42 +msgid "" +"IDLE has two main window types, the Shell window and the Editor window. It " +"is possible to have multiple editor windows simultaneously. On Windows and " +"Linux, each has its own top menu. Each menu documented below indicates " +"which window type it is associated with." +msgstr "" +"*IDLE* a deux principaux types de fenêtre, la fenêtre de console et la " +"fenêtre d'édition. Il est possible d'avoir de multiples fenêtres d'édition " +"ouvertes simultanément. Sous Windows et Linux, chacune a son propre menu. " +"Chaque menu documenté ci-dessous indique à quel type de fenêtre il est " +"associé." + +#: ../Doc/library/idle.rst:47 +msgid "" +"Output windows, such as used for Edit => Find in Files, are a subtype of " +"editor window. They currently have the same top menu but a different " +"default title and context menu." +msgstr "" +"Les fenêtre d'affichage, comme celles qui sont utilisées pour *Edit => Find " +"in Files*, sont un sous-type de fenêtre d'édition. Elles possèdent " +"actuellement le même menu principal mais un titre par défaut et un menu " +"contextuel différents." + +#: ../Doc/library/idle.rst:51 +msgid "" +"On macOS, there is one application menu. It dynamically changes according " +"to the window currently selected. It has an IDLE menu, and some entries " +"described below are moved around to conform to Apple guidelines." +msgstr "" +"Sous *macOS*, il y a un menu d'application. Il change dynamiquement en " +"fonction de la fenêtre active. Il a un menu *IDLE* et certaines entrées " +"décrites ci-dessous sont déplacées conformément aux directives d'Apple." + +#: ../Doc/library/idle.rst:56 +msgid "File menu (Shell and Editor)" +msgstr "Menu *File* (Console et Éditeur)" + +#: ../Doc/library/idle.rst:59 +msgid "New File" +msgstr "*New File*" + +#: ../Doc/library/idle.rst:59 +msgid "Create a new file editing window." +msgstr "Crée une nouvelle fenêtre d'édition." + +#: ../Doc/library/idle.rst:62 +msgid "Open..." +msgstr "*Open...*" + +#: ../Doc/library/idle.rst:62 +msgid "Open an existing file with an Open dialog." +msgstr "" +"Ouvre un fichier existant avec une fenêtre de dialogue pour l'ouverture." + +#: ../Doc/library/idle.rst:65 +msgid "Recent Files" +msgstr "*Recent Files*" + +#: ../Doc/library/idle.rst:65 +msgid "Open a list of recent files. Click one to open it." +msgstr "" +"Ouvre une liste des fichiers récents. Cliquez sur l'un d'eux pour l'ouvrir." + +#: ../Doc/library/idle.rst:68 +msgid "Open Module..." +msgstr "*Open Module...*" + +#: ../Doc/library/idle.rst:68 +msgid "Open an existing module (searches sys.path)." +msgstr "Ouvre un module existant (cherche dans *sys.path*)." + +#: ../Doc/library/idle.rst:76 +msgid "Class Browser" +msgstr "*Class Browser*" + +#: ../Doc/library/idle.rst:75 +msgid "" +"Show functions, classes, and methods in the current Editor file in a tree " +"structure. In the shell, open a module first." +msgstr "" +"Montre les fonctions, classes et méthodes dans une arborescence pour le " +"fichier en cours d'édition. Dans la console, ouvre d'abord un module." + +#: ../Doc/library/idle.rst:80 +msgid "Path Browser" +msgstr "*Path Browser*" + +#: ../Doc/library/idle.rst:79 +msgid "" +"Show sys.path directories, modules, functions, classes and methods in a tree " +"structure." +msgstr "" +"Affiche les dossiers de *sys.path*, les modules, fonctions, classes et " +"méthodes dans une arborescence." + +#: ../Doc/library/idle.rst:86 +msgid "Save" +msgstr "*Save*" + +#: ../Doc/library/idle.rst:83 +msgid "" +"Save the current window to the associated file, if there is one. Windows " +"that have been changed since being opened or last saved have a \\* before " +"and after the window title. If there is no associated file, do Save As " +"instead." +msgstr "" +"Enregistre la fenêtre active sous le fichier associé, s'il existe. Les " +"fenêtres qui ont été modifiées depuis leur ouverture ou leur dernier " +"enregistrement ont un \\* avant et après le titre de la fenêtre. S'il n'y a " +"aucun fichier associé, exécute *Save As* à la place." + +#: ../Doc/library/idle.rst:90 +msgid "Save As..." +msgstr "*Save As...*" + +#: ../Doc/library/idle.rst:89 +msgid "" +"Save the current window with a Save As dialog. The file saved becomes the " +"new associated file for the window." +msgstr "" +"Enregistre la fenêtre active avec une fenêtre de dialogue d'enregistrement. " +"Le fichier enregistré devient le nouveau fichier associé pour cette fenêtre." + +#: ../Doc/library/idle.rst:94 +msgid "Save Copy As..." +msgstr "*Save Copy As...*" + +#: ../Doc/library/idle.rst:93 +msgid "" +"Save the current window to different file without changing the associated " +"file." +msgstr "" +"Enregistre la fenêtre active sous un fichier différent sans changer le " +"fichier associé." + +#: ../Doc/library/idle.rst:97 +msgid "Print Window" +msgstr "*Print Window*" + +#: ../Doc/library/idle.rst:97 +msgid "Print the current window to the default printer." +msgstr "Imprime la fenêtre active avec l'imprimante par défaut." + +#: ../Doc/library/idle.rst:100 +msgid "Close" +msgstr "*Close*" + +#: ../Doc/library/idle.rst:100 +msgid "Close the current window (ask to save if unsaved)." +msgstr "Ferme la fenêtre active (demande à enregistrer si besoin)." + +#: ../Doc/library/idle.rst:103 +msgid "Exit" +msgstr "*Exit*" + +#: ../Doc/library/idle.rst:103 +msgid "Close all windows and quit IDLE (ask to save unsaved windows)." +msgstr "" +"Ferme toutes les fenêtres et quitte *IDLE* (demande à enregistrer les " +"fenêtres non sauvegardées)." + +#: ../Doc/library/idle.rst:106 +msgid "Edit menu (Shell and Editor)" +msgstr "Menu *Edit* (console et éditeur)" + +#: ../Doc/library/idle.rst:110 +msgid "Undo" +msgstr "*Undo*" + +#: ../Doc/library/idle.rst:109 +msgid "" +"Undo the last change to the current window. A maximum of 1000 changes may " +"be undone." +msgstr "" +"Annule le dernier changement dans la fenêtre active. Un maximum de 1000 " +"changements peut être annulé." + +#: ../Doc/library/idle.rst:113 +msgid "Redo" +msgstr "*Redo*" + +#: ../Doc/library/idle.rst:113 +msgid "Redo the last undone change to the current window." +msgstr "Ré-applique le dernier changement annulé dans la fenêtre active." + +#: ../Doc/library/idle.rst:116 ../Doc/library/idle.rst:353 +msgid "Cut" +msgstr "*Cut*" + +#: ../Doc/library/idle.rst:116 ../Doc/library/idle.rst:353 +msgid "" +"Copy selection into the system-wide clipboard; then delete the selection." +msgstr "" +"Copie la sélection dans le presse-papier global ; puis supprime la sélection." + +#: ../Doc/library/idle.rst:119 ../Doc/library/idle.rst:356 +msgid "Copy" +msgstr "*Copy*" + +#: ../Doc/library/idle.rst:119 ../Doc/library/idle.rst:356 +msgid "Copy selection into the system-wide clipboard." +msgstr "Copie la sélection dans le presse-papier global." + +#: ../Doc/library/idle.rst:122 ../Doc/library/idle.rst:359 +msgid "Paste" +msgstr "*Paste*" + +#: ../Doc/library/idle.rst:122 ../Doc/library/idle.rst:359 +msgid "Insert contents of the system-wide clipboard into the current window." +msgstr "Insère le contenu du presse-papier global dans la fenêtre active." + +#: ../Doc/library/idle.rst:124 +msgid "The clipboard functions are also available in context menus." +msgstr "" +"Les fonctions du presse-papier sont aussi disponibles dans les menus " +"contextuels." + +#: ../Doc/library/idle.rst:127 +msgid "Select All" +msgstr "*Select All*" + +#: ../Doc/library/idle.rst:127 +msgid "Select the entire contents of the current window." +msgstr "Sélectionne la totalité du contenu de la fenêtre active." + +#: ../Doc/library/idle.rst:130 +msgid "Find..." +msgstr "*Find...*" + +#: ../Doc/library/idle.rst:130 +msgid "Open a search dialog with many options" +msgstr "Ouvre une fenêtre de recherche avec de nombreuses options" + +#: ../Doc/library/idle.rst:133 +msgid "Find Again" +msgstr "*Find Again*" + +#: ../Doc/library/idle.rst:133 +msgid "Repeat the last search, if there is one." +msgstr "Répète la dernière recherche, s'il y en a une." + +#: ../Doc/library/idle.rst:136 +msgid "Find Selection" +msgstr "*Find Selection*" + +#: ../Doc/library/idle.rst:136 +msgid "Search for the currently selected string, if there is one." +msgstr "Cherche la chaîne sélectionnée, s'il y en a une." + +#: ../Doc/library/idle.rst:139 +msgid "Find in Files..." +msgstr "*Find in Files...*" + +#: ../Doc/library/idle.rst:139 +msgid "Open a file search dialog. Put results in a new output window." +msgstr "" +"Ouvre une fenêtre de recherche de fichiers. Présente les résultats dans une " +"nouvelle fenêtre d'affichage." + +#: ../Doc/library/idle.rst:142 +msgid "Replace..." +msgstr "*Replace...*" + +#: ../Doc/library/idle.rst:142 +msgid "Open a search-and-replace dialog." +msgstr "Ouvre une fenêtre de recherche et remplacement." + +#: ../Doc/library/idle.rst:145 +msgid "Go to Line" +msgstr "*Go to Line*" + +#: ../Doc/library/idle.rst:145 +msgid "Move cursor to the line number requested and make that line visible." +msgstr "" +"Déplace le curseur sur la ligne de numéro demandé et rend cette ligne " +"visible." + +#: ../Doc/library/idle.rst:149 +msgid "Show Completions" +msgstr "*Show Completions*" + +#: ../Doc/library/idle.rst:148 +msgid "" +"Open a scrollable list allowing selection of keywords and attributes. See :" +"ref:`Completions ` in the Editing and navigation section below." +msgstr "" +"Ouvre une liste navigable permettant la sélection de mots-clefs et " +"attributs. Reportez-vous à :ref:`Complétions ` dans la section " +"Édition et navigation ci-dessous." + +#: ../Doc/library/idle.rst:153 +msgid "Expand Word" +msgstr "*Expand Word*" + +#: ../Doc/library/idle.rst:152 +msgid "" +"Expand a prefix you have typed to match a full word in the same window; " +"repeat to get a different expansion." +msgstr "" +"Complète un préfixe que vous avez saisi pour correspondre à un mot complet " +"de la même fenêtre ; recommencez pour obtenir un autre complément." + +#: ../Doc/library/idle.rst:158 +msgid "Show call tip" +msgstr "*Show call tip*" + +#: ../Doc/library/idle.rst:156 +msgid "" +"After an unclosed parenthesis for a function, open a small window with " +"function parameter hints. See :ref:`Calltips ` in the Editing and " +"navigation section below." +msgstr "" +"Après une parenthèse ouverte pour une fonction, ouvre une petite fenêtre " +"avec des indications sur les paramètres de la fonction. Reportez-vous à :ref:" +"`Aides aux appels ` dans la section Édition et navigation ci-" +"dessous." + +#: ../Doc/library/idle.rst:161 +msgid "Show surrounding parens" +msgstr "*Show surrounding parens*" + +#: ../Doc/library/idle.rst:161 +msgid "Highlight the surrounding parenthesis." +msgstr "Surligne les parenthèses encadrantes." + +#: ../Doc/library/idle.rst:166 +msgid "Format menu (Editor window only)" +msgstr "Menu *Format* (fenêtre d'édition uniquement)" + +#: ../Doc/library/idle.rst:169 +msgid "Indent Region" +msgstr "*Indent Region*" + +#: ../Doc/library/idle.rst:169 +msgid "Shift selected lines right by the indent width (default 4 spaces)." +msgstr "" +"Décale les lignes sélectionnées vers la droite d'un niveau d'indentation (4 " +"espaces par défaut)." + +#: ../Doc/library/idle.rst:172 +msgid "Dedent Region" +msgstr "*Dedent Region*" + +#: ../Doc/library/idle.rst:172 +msgid "Shift selected lines left by the indent width (default 4 spaces)." +msgstr "" +"Décale les lignes sélectionnées vers la gauche d'un niveau d'indentation (4 " +"espaces par défaut)." + +#: ../Doc/library/idle.rst:175 +msgid "Comment Out Region" +msgstr "*Comment Out Region*" + +#: ../Doc/library/idle.rst:175 +msgid "Insert ## in front of selected lines." +msgstr "Insère ## devant les lignes sélectionnées." + +#: ../Doc/library/idle.rst:178 +msgid "Uncomment Region" +msgstr "*Uncomment Region*" + +#: ../Doc/library/idle.rst:178 +msgid "Remove leading # or ## from selected lines." +msgstr "Enlève les # ou ## au début des lignes sélectionnées." + +#: ../Doc/library/idle.rst:182 +msgid "Tabify Region" +msgstr "*Tabify Region*" + +#: ../Doc/library/idle.rst:181 +msgid "" +"Turn *leading* stretches of spaces into tabs. (Note: We recommend using 4 " +"space blocks to indent Python code.)" +msgstr "" +"Transforme les blocs d'espaces *au début des lignes* en tabulations. " +"(Note : Nous recommandons d'utiliser des blocs de 4 espaces pour indenter du " +"code Python.)" + +#: ../Doc/library/idle.rst:185 +msgid "Untabify Region" +msgstr "*Untabify Region*" + +#: ../Doc/library/idle.rst:185 +msgid "Turn *all* tabs into the correct number of spaces." +msgstr "Transforme *toutes* les tabulations en le bon nombre d'espaces." + +#: ../Doc/library/idle.rst:188 +msgid "Toggle Tabs" +msgstr "*Toggle Tabs*" + +#: ../Doc/library/idle.rst:188 +msgid "Open a dialog to switch between indenting with spaces and tabs." +msgstr "" +"Ouvre une boîte de dialogue permettant de passer des espaces aux tabulations " +"(et inversement) pour l'indentation." + +#: ../Doc/library/idle.rst:192 +msgid "New Indent Width" +msgstr "*New Indent Width*" + +#: ../Doc/library/idle.rst:191 +msgid "" +"Open a dialog to change indent width. The accepted default by the Python " +"community is 4 spaces." +msgstr "" +"Ouvre une boîte de dialogue pour changer la taille de l'indentation. La " +"valeur par défaut acceptée par la communauté Python est de 4 espaces." + +#: ../Doc/library/idle.rst:197 +msgid "Format Paragraph" +msgstr "*Format Paragraph*" + +#: ../Doc/library/idle.rst:195 +msgid "" +"Reformat the current blank-line-delimited paragraph in comment block or " +"multiline string or selected line in a string. All lines in the paragraph " +"will be formatted to less than N columns, where N defaults to 72." +msgstr "" +"Reformate le paragraphe actif, délimité par des lignes vides, en un bloc de " +"commentaires, ou la chaîne de caractères multi-lignes ou ligne sélectionnée " +"en chaîne de caractères. Toutes les lignes du paragraphe seront formatées à " +"moins de N colonnes, avec N valant 72 par défaut." + +#: ../Doc/library/idle.rst:202 +msgid "Strip trailing whitespace" +msgstr "*Strip trailing whitespace*" + +#: ../Doc/library/idle.rst:200 +msgid "" +"Remove trailing space and other whitespace characters after the last non-" +"whitespace character of a line by applying str.rstrip to each line, " +"including lines within multiline strings." +msgstr "" +"Enlève les espaces et autres caractères blancs après le dernier caractère " +"non blanc d'une ligne en appliquant *str.rstrip* à chaque ligne, y compris " +"les lignes avec des chaînes de caractère multi-lignes." + +#: ../Doc/library/idle.rst:208 +msgid "Run menu (Editor window only)" +msgstr "Menu *Run* (fenêtre d'édition uniquement)" + +#: ../Doc/library/idle.rst:213 +msgid "Python Shell" +msgstr "Console Python" + +#: ../Doc/library/idle.rst:213 +msgid "Open or wake up the Python Shell window." +msgstr "Ouvre ou active la fenêtre de console Python." + +#: ../Doc/library/idle.rst:222 +msgid "Check Module" +msgstr "*Check Module*" + +#: ../Doc/library/idle.rst:218 +msgid "" +"Check the syntax of the module currently open in the Editor window. If the " +"module has not been saved IDLE will either prompt the user to save or " +"autosave, as selected in the General tab of the Idle Settings dialog. If " +"there is a syntax error, the approximate location is indicated in the Editor " +"window." +msgstr "" +"Vérifie la syntaxe du module actuellement ouvert dans la fenêtre d'édition. " +"Si le module n'a pas été enregistré, *IDLE* va soit demander à enregistrer à " +"l'utilisateur, soit enregistrer automatiquement, selon l'option sélectionnée " +"dans l'onglet *General* de la fenêtre de configuration d'*IDLE*. S'il y a " +"une erreur de syntaxe, l'emplacement approximatif est indiqué dans la " +"fenêtre d'édition." + +#: ../Doc/library/idle.rst:233 +msgid "Run Module" +msgstr "*Run Module*" + +#: ../Doc/library/idle.rst:227 +msgid "" +"Do :ref:`Check Module `. If no error, restart the shell to " +"clean the environment, then execute the module. Output is displayed in the " +"Shell window. Note that output requires use of ``print`` or ``write``. When " +"execution is complete, the Shell retains focus and displays a prompt. At " +"this point, one may interactively explore the result of execution. This is " +"similar to executing a file with ``python -i file`` at a command line." +msgstr "" +"Applique :ref:`Check Module ` (ci-dessus). S'il n'y a pas " +"d'erreur, redémarre la console pour nettoyer l'environnement, puis exécute " +"le module. Les sorties sont affichées dans la fenêtre de console. Notez " +"qu'une sortie requiert l'utilisation de ``print`` ou ``write``. Quand " +"l'exécution est terminée, la console reste active et affiche une invite de " +"commande. À ce moment, vous pouvez explorer interactivement le résultat de " +"l'exécution. Ceci est similaire à l'exécution d'un fichier avec ``python -i " +"fichier`` sur un terminal." + +#: ../Doc/library/idle.rst:241 +msgid "Run... Customized" +msgstr "Run... Customized" + +#: ../Doc/library/idle.rst:238 +msgid "" +"Same as :ref:`Run Module `, but run the module with customized " +"settings. *Command Line Arguments* extend :data:`sys.argv` as if passed on " +"a command line. The module can be run in the Shell without restarting." +msgstr "" +"Similaire à :ref:`Run Module `, mais lance le module avec des " +"paramètres personnalisés. Les *Command Line Arguments* se rajoutent à :data:" +"`sys.argv` comme s'ils étaient passés par la ligne de commande. Le module " +"peut être lancé dans le terminal sans avoir à le redémarrer." + +#: ../Doc/library/idle.rst:244 +msgid "Shell menu (Shell window only)" +msgstr "Menu Shell (fenêtre de console uniquement)" + +#: ../Doc/library/idle.rst:247 +msgid "View Last Restart" +msgstr "*View Last Restart*" + +#: ../Doc/library/idle.rst:247 +msgid "Scroll the shell window to the last Shell restart." +msgstr "" +"Fait défiler la fenêtre de console jusqu'au dernier redémarrage de la " +"console." + +#: ../Doc/library/idle.rst:250 +msgid "Restart Shell" +msgstr "*Restart Shell*" + +#: ../Doc/library/idle.rst:250 +msgid "Restart the shell to clean the environment." +msgstr "Redémarre la console pour nettoyer l'environnement." + +#: ../Doc/library/idle.rst:253 +msgid "Previous History" +msgstr "*Previous History*" + +#: ../Doc/library/idle.rst:253 +msgid "" +"Cycle through earlier commands in history which match the current entry." +msgstr "" +"Parcours les commandes précédentes dans l'historique qui correspondent à " +"l'entrée actuelle." + +#: ../Doc/library/idle.rst:256 +msgid "Next History" +msgstr "*Next History*" + +#: ../Doc/library/idle.rst:256 +msgid "Cycle through later commands in history which match the current entry." +msgstr "" +"Parcours les commandes suivantes dans l'historique qui correspondent à " +"l'entrée actuelle." + +#: ../Doc/library/idle.rst:259 +msgid "Interrupt Execution" +msgstr "*Interrupt Execution*" + +#: ../Doc/library/idle.rst:259 +msgid "Stop a running program." +msgstr "Arrête un programme en cours d'exécution." + +#: ../Doc/library/idle.rst:262 +msgid "Debug menu (Shell window only)" +msgstr "Menu *Debug* (fenêtre de console uniquement)" + +#: ../Doc/library/idle.rst:269 +msgid "Go to File/Line" +msgstr "*Go to File/Line*" + +# Look on the current line. with the cursor, and the line above for a filename +# and line number. +# Il y a des erreurs d'anglais là-dedans... +#: ../Doc/library/idle.rst:265 +msgid "" +"Look on the current line. with the cursor, and the line above for a filename " +"and line number. If found, open the file if not already open, and show the " +"line. Use this to view source lines referenced in an exception traceback " +"and lines found by Find in Files. Also available in the context menu of the " +"Shell window and Output windows." +msgstr "" +"Cherche, sur la ligne active et la ligne en-dessous, un nom de fichier et un " +"numéro de ligne. Le cas échéant, ouvre le fichier s'il n'est pas encore " +"ouvert et montre la ligne. Utilisez ceci pour visualiser les lignes de code " +"source référencées dans un *traceback* d'exception et les lignes trouvées " +"par *Find in Files*. Également disponible dans le menu contextuel des " +"fenêtres de console et d'affichage." + +#: ../Doc/library/idle.rst:278 +msgid "Debugger (toggle)" +msgstr "*Debugger* ([dés]activer)" + +#: ../Doc/library/idle.rst:276 +msgid "" +"When activated, code entered in the Shell or run from an Editor will run " +"under the debugger. In the Editor, breakpoints can be set with the context " +"menu. This feature is still incomplete and somewhat experimental." +msgstr "" +"Quand cette fonctionnalité est activée, le code saisi dans la console ou " +"exécuté depuis un Éditeur s'exécutera avec le débogueur. Dans l'Éditeur, des " +"points d'arrêt peuvent être placés avec le menu contextuel. Cette " +"fonctionnalité est encore incomplète et plus ou moins expérimentale." + +#: ../Doc/library/idle.rst:282 +msgid "Stack Viewer" +msgstr "*Stack Viewer*" + +#: ../Doc/library/idle.rst:281 +msgid "" +"Show the stack traceback of the last exception in a tree widget, with access " +"to locals and globals." +msgstr "" +"Montre l'état de la pile au moment de la dernière erreur dans une " +"arborescence, avec accès aux variables locales et globales." + +#: ../Doc/library/idle.rst:285 +msgid "Auto-open Stack Viewer" +msgstr "*Auto-open Stack Viewer*" + +#: ../Doc/library/idle.rst:285 +msgid "" +"Toggle automatically opening the stack viewer on an unhandled exception." +msgstr "" +"Active ou désactive l'ouverture automatique de l'afficheur de pile après une " +"erreur non gérée." + +#: ../Doc/library/idle.rst:288 +msgid "Options menu (Shell and Editor)" +msgstr "Menu *Options* (console et éditeur)" + +#: ../Doc/library/idle.rst:296 +msgid "Configure IDLE" +msgstr "*Configure IDLE*" + +#: ../Doc/library/idle.rst:291 +msgid "" +"Open a configuration dialog and change preferences for the following: fonts, " +"indentation, keybindings, text color themes, startup windows and size, " +"additional help sources, and extensions. On macOS, open the configuration " +"dialog by selecting Preferences in the application menu. For more, see :ref:" +"`Setting preferences ` under Help and preferences." +msgstr "" +"Ouvre une fenêtre de configuration et change les préférences pour les " +"éléments suivants : police, indentation, raccourcis clavier, thème de " +"coloration du texte, taille et nature de la fenêtre au lancement, sources " +"d'aide additionnelles et extensions. Sous *macOS*, ouvrez la fenêtre de " +"configuration en sélectionnant *Preferences* dans le menu de l'application. " +"Pour plus de détails, référez-vous à :ref:`Paramètres ` dans " +"Aide et paramètres." + +#: ../Doc/library/idle.rst:301 +msgid "Show/Hide Code Context (Editor Window only)" +msgstr "*Show/Hide Code Context* (fenêtres d'édition uniquement)" + +#: ../Doc/library/idle.rst:299 +msgid "" +"Open a pane at the top of the edit window which shows the block context of " +"the code which has scrolled above the top of the window. See :ref:`Code " +"Context ` in the Editing and Navigation section below." +msgstr "" +"Fais passer la fenêtre de taille normale à maximale. La taille de départ par " +"défaut est de 40 lignes par 80 caractères, sauf changement dans l'onglet " +"*General* de la fenêtre de configuration d'*IDLE*. Consultez :ref:`Code " +"Context ` dans la section « Édition et navigation » ci-dessous." + +#: ../Doc/library/idle.rst:309 +msgid "Zoom/Restore Height" +msgstr "*Zoom/Restore Height*" + +#: ../Doc/library/idle.rst:304 +msgid "" +"Toggles the window between normal size and maximum height. The initial size " +"defaults to 40 lines by 80 chars unless changed on the General tab of the " +"Configure IDLE dialog. The maximum height for a screen is determined by " +"momentarily maximizing a window the first time one is zoomed on the screen. " +"Changing screen settings may invalidate the saved height. This toogle has " +"no effect when a window is maximized." +msgstr "" + +#: ../Doc/library/idle.rst:312 +msgid "Window menu (Shell and Editor)" +msgstr "Menu *Windows* (console et éditeur)" + +#: ../Doc/library/idle.rst:314 +msgid "" +"Lists the names of all open windows; select one to bring it to the " +"foreground (deiconifying it if necessary)." +msgstr "" +"Liste les noms de toutes les fenêtres ouvertes ; sélectionnez-en une pour " +"l'amener au premier plan (en l'ouvrant si nécessaire)." + +#: ../Doc/library/idle.rst:318 +msgid "Help menu (Shell and Editor)" +msgstr "Menu *Help* (console et éditeur)" + +#: ../Doc/library/idle.rst:321 +msgid "About IDLE" +msgstr "About *IDLE*" + +#: ../Doc/library/idle.rst:321 +msgid "Display version, copyright, license, credits, and more." +msgstr "" +"Affiche la version, les copyrights, la licence, les crédits, entre autres." + +#: ../Doc/library/idle.rst:325 +msgid "IDLE Help" +msgstr "*IDLE Help*" + +#: ../Doc/library/idle.rst:324 +msgid "" +"Display this IDLE document, detailing the menu options, basic editing and " +"navigation, and other tips." +msgstr "" +"Affiche ce document *IDLE*, qui détaille les options des menus, les bases de " +"l'édition et de la navigation ainsi que d'autres astuces." + +#: ../Doc/library/idle.rst:329 +msgid "Python Docs" +msgstr "*Python Docs*" + +#: ../Doc/library/idle.rst:328 +msgid "" +"Access local Python documentation, if installed, or start a web browser and " +"open docs.python.org showing the latest Python documentation." +msgstr "" +"Accède à la documentation Python locale, si installée, ou ouvre docs.python." +"org dans un navigateur pour afficher la documentation Python la plus récente." + +#: ../Doc/library/idle.rst:332 +msgid "Turtle Demo" +msgstr "*Turtle Demo*" + +#: ../Doc/library/idle.rst:332 +msgid "Run the turtledemo module with example Python code and turtle drawings." +msgstr "" +"Exécute le module *turtledemo* avec des exemples de code Python et de " +"dessins *turtle*." + +#: ../Doc/library/idle.rst:334 +msgid "" +"Additional help sources may be added here with the Configure IDLE dialog " +"under the General tab. See the :ref:`Help sources ` subsection " +"below for more on Help menu choices." +msgstr "" +"Des sources d'aide supplémentaires peuvent être ajoutées ici avec la fenêtre " +"de configuration d'*IDLE* dans l'onglet *General*. Référez-vous à la sous-" +"section :ref:`Sources d'aide ` ci-dessous pour plus de détails " +"sur les choix du menu d'aide." + +#: ../Doc/library/idle.rst:347 +msgid "Context Menus" +msgstr "Menus Contextuels" + +#: ../Doc/library/idle.rst:349 +msgid "" +"Open a context menu by right-clicking in a window (Control-click on macOS). " +"Context menus have the standard clipboard functions also on the Edit menu." +msgstr "" +"Vous pouvez ouvrir un menu contextuel par un clic droit dans une fenêtre " +"(Contrôle-clic sous *macOS*). Les menus contextuels ont les fonctions de " +"presse-papier standard, également disponibles dans le menu *Edit*." + +#: ../Doc/library/idle.rst:361 +msgid "" +"Editor windows also have breakpoint functions. Lines with a breakpoint set " +"are specially marked. Breakpoints only have an effect when running under " +"the debugger. Breakpoints for a file are saved in the user's .idlerc " +"directory." +msgstr "" +"Les fenêtres d'édition ont aussi des fonctions de points d'arrêt. Les lignes " +"avec un point d'arrêt activé sont marquées. Les points d'arrêt n'ont d'effet " +"que lorsque l'exécution se déroule sous débogueur. Les points d'arrêt pour " +"un fichier sont enregistrés dans le dossier *.idlerc* de l'utilisateur." + +#: ../Doc/library/idle.rst:366 +msgid "Set Breakpoint" +msgstr "*Set Breakpoint*" + +#: ../Doc/library/idle.rst:366 +msgid "Set a breakpoint on the current line." +msgstr "Place un point d'arrêt sur la ligne active." + +#: ../Doc/library/idle.rst:369 +msgid "Clear Breakpoint" +msgstr "*Clear Breakpoint*" + +#: ../Doc/library/idle.rst:369 +msgid "Clear the breakpoint on that line." +msgstr "Enlève le point d'arrêt sur cette ligne." + +#: ../Doc/library/idle.rst:371 +msgid "Shell and Output windows also have the following." +msgstr "" +"Les fenêtres de console et d'affichage disposent en plus des éléments " +"suivants." + +#: ../Doc/library/idle.rst:374 +msgid "Go to file/line" +msgstr "*Go to file/line*" + +#: ../Doc/library/idle.rst:374 +msgid "Same as in Debug menu." +msgstr "Même effet que dans le menu *Debug*." + +#: ../Doc/library/idle.rst:376 +msgid "" +"The Shell window also has an output squeezing facility explained in the " +"*Python Shell window* subsection below." +msgstr "" +"Les fenêtres de console ont également une fonction de réduction des sorties " +"détaillée dans la sous-section *fenêtre de console de Python* ci-dessous." + +#: ../Doc/library/idle.rst:382 +msgid "Squeeze" +msgstr "*Squeeze*" + +#: ../Doc/library/idle.rst:380 +msgid "" +"If the cursor is over an output line, squeeze all the output between the " +"code above and the prompt below down to a 'Squeezed text' label." +msgstr "" +"Si le curseur est sur une ligne d'affichage, compacte toute la sortie entre " +"le code au-dessus et l'invite en-dessous en un bouton *\"Squeezed text\"*." + +#: ../Doc/library/idle.rst:387 +msgid "Editing and navigation" +msgstr "Édition et navigation" + +#: ../Doc/library/idle.rst:390 +msgid "Editor windows" +msgstr "Fenêtre d'édition" + +#: ../Doc/library/idle.rst:392 +msgid "" +"IDLE may open editor windows when it starts, depending on settings and how " +"you start IDLE. Thereafter, use the File menu. There can be only one open " +"editor window for a given file." +msgstr "" +"*IDLE* peut ouvrir une fenêtre d'édition quand il démarre, selon les " +"paramètres et la manière dont vous démarrez *IDLE*. Ensuite, utilisez le " +"menu *File*. Il ne peut y avoir qu'une fenêtre d'édition pour un fichier " +"donné." + +#: ../Doc/library/idle.rst:396 +msgid "" +"The title bar contains the name of the file, the full path, and the version " +"of Python and IDLE running the window. The status bar contains the line " +"number ('Ln') and column number ('Col'). Line numbers start with 1; column " +"numbers with 0." +msgstr "" +"La barre de titre contient le nom du fichier, le chemin absolu et la version " +"de Python et d'*IDLE* s'exécutant dans la fenêtre. La barre de statut " +"contient le numéro de ligne (\"*Ln\"*) et le numéro de la colonne (\"*Col" +"\"*). Les numéros de ligne commencent à 1 ; les numéros de colonne " +"commencent à 0." + +#: ../Doc/library/idle.rst:401 +msgid "" +"IDLE assumes that files with a known .py* extension contain Python code and " +"that other files do not. Run Python code with the Run menu." +msgstr "" +"*IDLE* suppose que les fichiers avec une extension en *.py\\** reconnue " +"contiennent du code Python, mais pas les autres fichiers. Exécutez du code " +"Python avec le menu *Run*." + +#: ../Doc/library/idle.rst:405 +msgid "Key bindings" +msgstr "Raccourcis clavier" + +#: ../Doc/library/idle.rst:407 +msgid "" +"In this section, 'C' refers to the :kbd:`Control` key on Windows and Unix " +"and the :kbd:`Command` key on macOS." +msgstr "" +"Dans cette section, *\"C\"* renvoie à la touche :kbd:`Contrôle`sous Windows " +"et *Unix* et à la touche :kbd:`Commande` sous *macOS*." + +#: ../Doc/library/idle.rst:410 +msgid ":kbd:`Backspace` deletes to the left; :kbd:`Del` deletes to the right" +msgstr "" +":kbd:`Retour arrière` supprime à gauche ; :kbd:`Suppr` supprime à droite" + +#: ../Doc/library/idle.rst:412 +msgid "" +":kbd:`C-Backspace` delete word left; :kbd:`C-Del` delete word to the right" +msgstr "" +":kbd:`C-Retour arrière` supprime le mot à gauche ; :kbd:`C-Suppr` supprime " +"le mot à droite" + +#: ../Doc/library/idle.rst:414 +msgid "Arrow keys and :kbd:`Page Up`/:kbd:`Page Down` to move around" +msgstr "" +"Utilisez les touches flèche et :kbd:`Page Haut` / :kbd:`Page Bas` pour vous " +"déplacer" + +#: ../Doc/library/idle.rst:416 +msgid ":kbd:`C-LeftArrow` and :kbd:`C-RightArrow` moves by words" +msgstr "" +":kbd:`C-Flèche Gauche` et :kbd:`C-Flèche Droite` déplacent de mot en mot" + +#: ../Doc/library/idle.rst:418 +msgid ":kbd:`Home`/:kbd:`End` go to begin/end of line" +msgstr ":kbd:`Début`/:kbd:`Fin` vont au début / à la fin de la ligne" + +#: ../Doc/library/idle.rst:420 +msgid ":kbd:`C-Home`/:kbd:`C-End` go to begin/end of file" +msgstr ":kbd:`C-Début` / :kbd:`C-Fin` vont au début / à la fin du fichier" + +#: ../Doc/library/idle.rst:422 +msgid "Some useful Emacs bindings are inherited from Tcl/Tk:" +msgstr "Quelques raccourcis *Emacs* utiles sont hérités de *Tcl/Tk* :" + +#: ../Doc/library/idle.rst:424 +msgid ":kbd:`C-a` beginning of line" +msgstr ":kbd:`C-a` début de ligne" + +#: ../Doc/library/idle.rst:426 +msgid ":kbd:`C-e` end of line" +msgstr ":kbd:`C-e` fin de ligne" + +#: ../Doc/library/idle.rst:428 +msgid ":kbd:`C-k` kill line (but doesn't put it in clipboard)" +msgstr "" +":kbd:`C-k` supprime la ligne (mais ne la met pas dans le presse-papier)" + +#: ../Doc/library/idle.rst:430 +msgid ":kbd:`C-l` center window around the insertion point" +msgstr ":kbd:`C-l` centre la fenêtre autour du point d’insertion" + +#: ../Doc/library/idle.rst:432 +msgid "" +":kbd:`C-b` go backward one character without deleting (usually you can also " +"use the cursor key for this)" +msgstr "" +":kbd:`C-b` recule d'un caractère sans le supprimer (habituellement vous " +"pouvez également utiliser les touches flèches pour faire cela)" + +#: ../Doc/library/idle.rst:435 +msgid "" +":kbd:`C-f` go forward one character without deleting (usually you can also " +"use the cursor key for this)" +msgstr "" +":kbd:`C-f` avance d'un caractère sans le supprimer (habituellement vous " +"pouvez également utiliser les touches flèches pour faire cela)" + +#: ../Doc/library/idle.rst:438 +msgid "" +":kbd:`C-p` go up one line (usually you can also use the cursor key for this)" +msgstr "" +":kbd:`C-p` remonte d'une ligne (habituellement vous pouvez également " +"utiliser les touches flèches pour faire cela)" + +#: ../Doc/library/idle.rst:441 +msgid ":kbd:`C-d` delete next character" +msgstr ":kbd:`C-d` supprime le caractère suivant" + +#: ../Doc/library/idle.rst:443 +msgid "" +"Standard keybindings (like :kbd:`C-c` to copy and :kbd:`C-v` to paste) may " +"work. Keybindings are selected in the Configure IDLE dialog." +msgstr "" +"Les raccourcis clavier standards (comme :kbd:`C-c` pour copier et :kbd:`C-v` " +"pour coller) peuvent fonctionner. Les raccourcis clavier sont sélectionnés " +"dans la fenêtre de configuration d'*IDLE*." + +#: ../Doc/library/idle.rst:447 +msgid "Automatic indentation" +msgstr "Indentation automatique" + +#: ../Doc/library/idle.rst:449 +msgid "" +"After a block-opening statement, the next line is indented by 4 spaces (in " +"the Python Shell window by one tab). After certain keywords (break, return " +"etc.) the next line is dedented. In leading indentation, :kbd:`Backspace` " +"deletes up to 4 spaces if they are there. :kbd:`Tab` inserts spaces (in the " +"Python Shell window one tab), number depends on Indent width. Currently, " +"tabs are restricted to four spaces due to Tcl/Tk limitations." +msgstr "" +"Après une structure d'ouverture de bloc, la prochaine ligne est indentée de " +"4 espaces (dans la console Python d'une tabulation). Après certains mots-" +"clefs (*break*, *return* etc) la ligne suivante est *dédentée*. Dans une " +"indentation au début de la ligne, :kbd:`Retour arrière` supprime jusqu'à 4 " +"espaces s'il y en a. :kbd:`Tab` insère des espaces (dans la console, une " +"tabulation), en nombre dépendant de la configuration. Les tabulations sont " +"actuellement restreintes à quatre espaces à cause de limitations de *Tcl/Tk*." + +#: ../Doc/library/idle.rst:456 +msgid "" +"See also the indent/dedent region commands on the :ref:`Format menu `." +msgstr "" +"Cf. les commandes *indent/dedent region* dans le :ref:`menu *Format* `." + +#: ../Doc/library/idle.rst:463 +msgid "Completions" +msgstr "Complétions" + +#: ../Doc/library/idle.rst:465 +msgid "" +"Completions are supplied for functions, classes, and attributes of classes, " +"both built-in and user-defined. Completions are also provided for filenames." +msgstr "" +"Les complétions sont fournies pour les fonctions, classes et attributs de " +"classes incluses par défaut et celles définies par l'utilisateur. Les " +"complétions sont aussi fournies pour les noms de fichiers." + +#: ../Doc/library/idle.rst:469 +msgid "" +"The AutoCompleteWindow (ACW) will open after a predefined delay (default is " +"two seconds) after a '.' or (in a string) an os.sep is typed. If after one " +"of those characters (plus zero or more other characters) a tab is typed the " +"ACW will open immediately if a possible continuation is found." +msgstr "" +"La fenêtre d'auto-complétion (*ACW*, *AutoCompleteWindow*) s'ouvre après un " +"délai prédéfini (deux secondes par défaut) après qu'un *\"*.\"** ou (dans " +"une chaîne) un os.sep est saisi. Si, après un de ces caractères " +"(éventuellement suivi d'autres caractères), une tabulation est saisie, " +"l'**ACW** s'ouvre immédiatement si une complétion compatible est trouvée." + +#: ../Doc/library/idle.rst:474 +msgid "" +"If there is only one possible completion for the characters entered, a :kbd:" +"`Tab` will supply that completion without opening the ACW." +msgstr "" +"S'il n'y a qu'une seule complétion possible pour le caractère saisi, un :kbd:" +"`Tab` fournit cette complétion sans ouvrir l'*ACW*." + +#: ../Doc/library/idle.rst:477 +msgid "" +"'Show Completions' will force open a completions window, by default the :kbd:" +"`C-space` will open a completions window. In an empty string, this will " +"contain the files in the current directory. On a blank line, it will contain " +"the built-in and user-defined functions and classes in the current " +"namespaces, plus any modules imported. If some characters have been entered, " +"the ACW will attempt to be more specific." +msgstr "" +"*\"Show Completions\"* force l'ouverture d'une fenêtre de complétion, par " +"défaut :kbd:`C-espace` ouvre une fenêtre de complétion. Dans une chaîne " +"vide, cette fenêtre contient les fichiers du dossier actif. Sur une ligne " +"vide, elle contient les fonctions et classes intégrées par défaut et " +"définies par l'utilisateur de l'espace de nommage actif, plus tous les " +"modules importés. Si des caractères ont été saisis, l'*ACW* essaie d'être " +"plus spécifique." + +#: ../Doc/library/idle.rst:484 +msgid "" +"If a string of characters is typed, the ACW selection will jump to the entry " +"most closely matching those characters. Entering a :kbd:`tab` will cause " +"the longest non-ambiguous match to be entered in the Editor window or " +"Shell. Two :kbd:`tab` in a row will supply the current ACW selection, as " +"will return or a double click. Cursor keys, Page Up/Down, mouse selection, " +"and the scroll wheel all operate on the ACW." +msgstr "" +"Si une chaîne de caractère est saisie, la sélection de l'*ACW* va à l'entrée " +"la plus proche de ces caractères. Saisir un :kbd:`Tab` saisit la plus longue " +"correspondance non ambiguë dans la console ou l'éditeur. Deux :kbd:`Tab` à " +"la suite fournissent la sélection de l'*ACW*, de la même manière que la " +"touche *\"Entrée\"* ou un double-clic. Les touches flèches, Page Haut/Bas, " +"la sélection à la souris et la molette de la souris fonctionnent tous sur " +"l'*ACW*." + +#: ../Doc/library/idle.rst:491 +msgid "" +"\"Hidden\" attributes can be accessed by typing the beginning of hidden name " +"after a '.', e.g. '_'. This allows access to modules with ``__all__`` set, " +"or to class-private attributes." +msgstr "" +"Les attributs *\"cachés\"* peuvent être atteints en saisissant le début d'un " +"nom caché après un *\"*.\"**, e.g.\"**_\"**. Ceci permet l'accès aux modules " +"utilisant ``__all__`` ou aux attributs privés des classes." + +#: ../Doc/library/idle.rst:495 +msgid "Completions and the 'Expand Word' facility can save a lot of typing!" +msgstr "" +"Les complétions et la fonctionnalité *\"*Expand Word*\"* peuvent vous faire " +"économiser beaucoup de temps !" + +#: ../Doc/library/idle.rst:497 +msgid "" +"Completions are currently limited to those in the namespaces. Names in an " +"Editor window which are not via ``__main__`` and :data:`sys.modules` will " +"not be found. Run the module once with your imports to correct this " +"situation. Note that IDLE itself places quite a few modules in sys.modules, " +"so much can be found by default, e.g. the re module." +msgstr "" +"Les complétions sont actuellement limitées à ce qui est présent dans les " +"espaces de nommage. Les noms dans une fenêtre d'édition qui ne viennent pas " +"de ``__main__`` et :data:`sys.modules` ne sont pas trouvés. Exécutez votre " +"module avec vos importations pour corriger cette situation. Notez qu'*IDLE* " +"lui-même place quelques modules dans *sys.modules*, qui peuvent être donc " +"accédés par défaut, comme le module *re*." + +#: ../Doc/library/idle.rst:503 +msgid "" +"If you don't like the ACW popping up unbidden, simply make the delay longer " +"or disable the extension." +msgstr "" +"Si vous n'aimez pas que l'*ACW* s'affiche spontanément, vous pouvez " +"simplement augmenter le délai ou désactiver l'extension." + +#: ../Doc/library/idle.rst:509 +msgid "Calltips" +msgstr "Info-bulles" + +#: ../Doc/library/idle.rst:511 +msgid "" +"A calltip is shown when one types :kbd:`(` after the name of an *accessible* " +"function. A name expression may include dots and subscripts. A calltip " +"remains until it is clicked, the cursor is moved out of the argument area, " +"or :kbd:`)` is typed. When the cursor is in the argument part of a " +"definition, the menu or shortcut display a calltip." +msgstr "" +"Une info-bulle est affichée quand vous saisissez :kbd:`(` après le nom d'une " +"fonction *accessible*. Une expression de nom peut inclure des points et des " +"tirets bas.L'info-bulle reste affichée jusqu'à ce que vous cliquiez dessus, " +"que le curseur se déplace hors de la zone des arguments, ou que :kbd:`)` " +"soit saisi. Quand le curseur est dans la partie *\"arguments\"* de la " +"définition, le menu ou raccourci affiche une info-bulle." + +#: ../Doc/library/idle.rst:517 +msgid "" +"A calltip consists of the function signature and the first line of the " +"docstring. For builtins without an accessible signature, the calltip " +"consists of all lines up the fifth line or the first blank line. These " +"details may change." +msgstr "" +"Une info-bulle contient la signature de la fonction et la première ligne de " +"la *docstring*. Pour les fonctions incluses par défaut sans signature " +"accessible, l'info-bulle contient toutes les lignes jusqu'à la cinquième " +"ligne ou la première ligne vide. Ces détails sont sujets à changement." + +#: ../Doc/library/idle.rst:522 +msgid "" +"The set of *accessible* functions depends on what modules have been imported " +"into the user process, including those imported by Idle itself, and what " +"definitions have been run, all since the last restart." +msgstr "" +"L'ensemble des fonctions *accessibles* dépend des modules qui ont été " +"importés dans le processus utilisateur, y compris ceux importés par *IDLE* " +"lui-même et quelles définitions ont été exécutées, le tout depuis le dernier " +"redémarrage." + +#: ../Doc/library/idle.rst:526 +msgid "" +"For example, restart the Shell and enter ``itertools.count(``. A calltip " +"appears because Idle imports itertools into the user process for its own " +"use. (This could change.) Enter ``turtle.write(`` and nothing appears. " +"Idle does not import turtle. The menu or shortcut do nothing either. Enter " +"``import turtle`` and then ``turtle.write(`` will work." +msgstr "" +"Par exemple, redémarrez la console et saisissez ``itertools.count(``. Une " +"info-bulle s'affiche parce que *IDLE* importe *itertools* dans le processus " +"utilisateur pour son propre usage (ceci pourrait changer). Saisissez " +"``turtle.write(`` et rien ne s'affiche. *IDLE* n'importe pas *turtle*. Le " +"menu ou le raccourci ne font rien non plus. Saisir ``import *turtle`` puis " +"``turtle.write(`` fonctionnera." + +#: ../Doc/library/idle.rst:532 +msgid "" +"In an editor, import statements have no effect until one runs the file. One " +"might want to run a file after writing the import statements at the top, or " +"immediately run an existing file before editing." +msgstr "" +"Dans l'éditeur, les commandes d'importation n'ont pas d'effet jusqu'à ce que " +"le fichier soit exécuté. Vous pouvez exécuter un fichier après avoir écrit " +"les commandes d'importation au début, ou immédiatement exécuter un fichier " +"existant avant de l'éditer." + +#: ../Doc/library/idle.rst:539 +msgid "Code Context" +msgstr "Contexte du code" + +#: ../Doc/library/idle.rst:541 +msgid "" +"Within an editor window containing Python code, code context can be toggled " +"in order to show or hide a pane at the top of the window. When shown, this " +"pane freezes the opening lines for block code, such as those beginning with " +"``class``, ``def``, or ``if`` keywords, that would have otherwise scrolled " +"out of view. The size of the pane will be expanded and contracted as needed " +"to show the all current levels of context, up to the maximum number of lines " +"defined in the Configure IDLE dialog (which defaults to 15). If there are " +"no current context lines and the feature is toggled on, a single blank line " +"will display. Clicking on a line in the context pane will move that line to " +"the top of the editor." +msgstr "" +"Dans une fenêtre d'édition contenant du code Python, le contexte du code " +"peut être activé pour afficher ou cacher une zone en haut de la fenêtre. " +"Quand elle est affichée, cette zone gèle les lignes ouvrant le bloc de code, " +"comme celles qui commencent par les mots-clés ``class``, ``def`` ou ``if``, " +"qui auraient autrement été cachées plus haut dans le fichier. La taille de " +"cette zone varie automatiquement selon ce qui est nécessaire pour afficher " +"tous les niveaux de contexte, jusqu'à un nombre maximal de lignes défini " +"dans la fenêtre de configuration d'*IDLE* (valeur qui vaut 15 par défaut). " +"S'il n'y a pas de lignes de contexte et que cette fonctionnalité est " +"activée, une unique ligne vide est affichée. Un clic sur une ligne dans la " +"zone de contexte déplace cette ligne en haut de l'éditeur." + +#: ../Doc/library/idle.rst:552 +msgid "" +"The text and background colors for the context pane can be configured under " +"the Highlights tab in the Configure IDLE dialog." +msgstr "" +"Les couleurs de texte et du fond pour la zone de contexte peuvent être " +"configurées dans l'onglet *Highlights* de la fenêtre de configuration " +"d'*IDLE*." + +#: ../Doc/library/idle.rst:556 +msgid "Python Shell window" +msgstr "Fenêtre de console Python" + +#: ../Doc/library/idle.rst:558 +msgid "" +"With IDLE's Shell, one enters, edits, and recalls complete statements. Most " +"consoles and terminals only work with a single physical line at a time." +msgstr "" +"Avec la console d'*IDLE*, vous pouvez saisir, éditer et rappeler des " +"commandes entières. La plupart des consoles et des terminaux ne travaillent " +"qu'avec une seule ligne physique à la fois." + +#: ../Doc/library/idle.rst:561 +msgid "" +"When one pastes code into Shell, it is not compiled and possibly executed " +"until one hits :kbd:`Return`. One may edit pasted code first. If one pastes " +"more that one statement into Shell, the result will be a :exc:`SyntaxError` " +"when multiple statements are compiled as if they were one." +msgstr "" +"Quand du texte est collé dans la console, il n'est ni compilé, ni exécuté " +"jusqu'à la ce qu'on saisisse :kbd:`Entrée`. On peut éditer le code collé " +"d'abord. Si plus d'une commande est collée dans la console, une :exc:" +"`SyntaxError` est levée si plusieurs commandes sont compilées comme une " +"seule." + +#: ../Doc/library/idle.rst:566 +msgid "" +"The editing features described in previous subsections work when entering " +"code interactively. IDLE's Shell window also responds to the following keys." +msgstr "" +"Les fonctionnalités d'édition décrites dans les sous-sections suivantes " +"fonctionnent du code est saisi de façon interactive. La fenêtre de console " +"d'*IDLE* réagit également aux touches suivantes." + +#: ../Doc/library/idle.rst:569 +msgid ":kbd:`C-c` interrupts executing command" +msgstr ":kbd:`C-c` interrompt l'exécution de la commande" + +#: ../Doc/library/idle.rst:571 +msgid "" +":kbd:`C-d` sends end-of-file; closes window if typed at a ``>>>`` prompt" +msgstr "" +":kbd:`C-d` envoie fin-de-fichier (*EOF*) ; cela ferme la fenêtre s'il est " +"saisi à une invite ``>>>``" + +#: ../Doc/library/idle.rst:573 +msgid ":kbd:`Alt-/` (Expand word) is also useful to reduce typing" +msgstr "" +":kbd:`Alt-/` (Compléter le mot) est également utile pour réduire la quantité " +"de texte saisie" + +#: ../Doc/library/idle.rst:575 +msgid "Command history" +msgstr "Historique des commandes" + +#: ../Doc/library/idle.rst:577 +msgid "" +":kbd:`Alt-p` retrieves previous command matching what you have typed. On " +"macOS use :kbd:`C-p`." +msgstr "" +":kbd:`Alt-p` récupère la précédente commande qui correspond à ce que vous " +"avez saisi. Sous *macOS*, utilisez :kbd:`C-p`." + +#: ../Doc/library/idle.rst:580 +msgid ":kbd:`Alt-n` retrieves next. On macOS use :kbd:`C-n`." +msgstr ":kbd:`Alt-n` récupère la suivante. Sous *macOS*, utilisez :kbd:`C-n`." + +#: ../Doc/library/idle.rst:582 +msgid ":kbd:`Return` while on any previous command retrieves that command" +msgstr "" +":kbd:`Entrée` sur une des commandes précédentes récupère cette commande" + +#: ../Doc/library/idle.rst:585 +msgid "Text colors" +msgstr "Coloration du texte" + +#: ../Doc/library/idle.rst:587 +msgid "" +"Idle defaults to black on white text, but colors text with special meanings. " +"For the shell, these are shell output, shell error, user output, and user " +"error. For Python code, at the shell prompt or in an editor, these are " +"keywords, builtin class and function names, names following ``class`` and " +"``def``, strings, and comments. For any text window, these are the cursor " +"(when present), found text (when possible), and selected text." +msgstr "" +"*IDLE* affiche par défaut le texte en noir sur blanc mais colore le texte " +"qui possède une signification spéciale. Pour la console, ceci concerne les " +"sorties de la console et de l'utilisateur ainsi que les erreurs de " +"l'utilisateur. Pour le code Python, dans l'invite de commande de la console " +"ou sur un éditeur, ce sont les mots-clefs, noms de fonctions et de classes " +"incluses par défaut, les noms suivant ``class`` et ``def``, les chaînes de " +"caractères et les commentaires. Pour n'importe quelle fenêtre de texte, ce " +"sont le curseur (si présent), le texte trouvé (s'il y en a) et le texte " +"sélectionné." + +#: ../Doc/library/idle.rst:594 +msgid "" +"Text coloring is done in the background, so uncolorized text is occasionally " +"visible. To change the color scheme, use the Configure IDLE dialog " +"Highlighting tab. The marking of debugger breakpoint lines in the editor " +"and text in popups and dialogs is not user-configurable." +msgstr "" +"La coloration du texte est faite en arrière-plan, donc du texte non coloré " +"est parfois visible. Pour changer les couleurs, utilisez l'onglet " +"*Highlighting* de la fenêtre de configuration d'*IDLE*. Le marquage des " +"points d'arrêt du débogueur dans l'éditeur et du texte dans les dialogues " +"n'est pas configurable." + +#: ../Doc/library/idle.rst:601 +msgid "Startup and code execution" +msgstr "Démarrage et exécution du code" + +#: ../Doc/library/idle.rst:603 +msgid "" +"Upon startup with the ``-s`` option, IDLE will execute the file referenced " +"by the environment variables :envvar:`IDLESTARTUP` or :envvar:" +"`PYTHONSTARTUP`. IDLE first checks for ``IDLESTARTUP``; if ``IDLESTARTUP`` " +"is present the file referenced is run. If ``IDLESTARTUP`` is not present, " +"IDLE checks for ``PYTHONSTARTUP``. Files referenced by these environment " +"variables are convenient places to store functions that are used frequently " +"from the IDLE shell, or for executing import statements to import common " +"modules." +msgstr "" +"Quand il est démarré avec l'option ``-s``, *IDLE* exécutera le fichier " +"référencé par la variable d'environnement :envvar:`IDLE*STARTUP` ou :envvar:" +"`PYTHONSTARTUP`. *IDLE* cherche d'abord ``IDLESTARTUP`` ; si ``IDLESTARTUP`` " +"est présent, le fichier référencé est exécuté. Si ``IDLESTARTUP`` n'est pas " +"présent, alors *IDLE* cherche ``PYTHONSTARTUP``. Les fichiers référencés par " +"ces variables d'environnement sont de bons endroits pour stocker des " +"fonctions qui sont utilisées fréquemment depuis la console d'*IDLE* ou pour " +"exécuter des commandes d'importation des modules communs." + +#: ../Doc/library/idle.rst:611 +msgid "" +"In addition, ``Tk`` also loads a startup file if it is present. Note that " +"the Tk file is loaded unconditionally. This additional file is ``.Idle.py`` " +"and is looked for in the user's home directory. Statements in this file " +"will be executed in the Tk namespace, so this file is not useful for " +"importing functions to be used from IDLE's Python shell." +msgstr "" +"De plus, ``Tk`` charge lui aussi un fichier de démarrage s'il est présent. " +"Notez que le fichier de *Tk* est chargé sans condition. Ce fichier " +"additionnel est ``.Idle.py`` et est recherché dans le dossier personnel de " +"l'utilisateur. Les commandes dans ce fichier sont exécutées dans l'espace de " +"nommage de *Tk*, donc ce fichier n'est pas utile pour importer des fonctions " +"à utiliser depuis la console Python d'*IDLE*." + +#: ../Doc/library/idle.rst:618 +msgid "Command line usage" +msgstr "Utilisation de la ligne de commande" + +#: ../Doc/library/idle.rst:634 +msgid "If there are arguments:" +msgstr "S'il y a des arguments :" + +#: ../Doc/library/idle.rst:636 +msgid "" +"If ``-``, ``-c``, or ``r`` is used, all arguments are placed in ``sys." +"argv[1:...]`` and ``sys.argv[0]`` is set to ``''``, ``'-c'``, or ``'-r'``. " +"No editor window is opened, even if that is the default set in the Options " +"dialog." +msgstr "" +"Si ``-``, ``-c`` ou ``-r`` sont utilisés, tous les arguments sont placés " +"dans ``sys.argv[1:...]`` et ``sys.argv[0]`` est assigné à `''``, ``'-c'``, " +"ou ``'-r'``. Aucune fenêtre d'édition n'est ouverte, même si c'est le " +"comportement par défaut fixé dans la fenêtre d'options." + +#: ../Doc/library/idle.rst:641 +msgid "" +"Otherwise, arguments are files opened for editing and ``sys.argv`` reflects " +"the arguments passed to IDLE itself." +msgstr "" +"Sinon, les arguments sont des fichiers ouverts pour édition et ``sys.argv`` " +"reflète les arguments passés à *IDLE* lui-même." + +#: ../Doc/library/idle.rst:645 +msgid "Startup failure" +msgstr "Échec au démarrage" + +#: ../Doc/library/idle.rst:647 +msgid "" +"IDLE uses a socket to communicate between the IDLE GUI process and the user " +"code execution process. A connection must be established whenever the Shell " +"starts or restarts. (The latter is indicated by a divider line that says " +"'RESTART'). If the user process fails to connect to the GUI process, it " +"displays a ``Tk`` error box with a 'cannot connect' message that directs the " +"user here. It then exits." +msgstr "" +"*IDLE* utilise un connecteur (*socket* en anglais) pour communiquer entre le " +"processus d'interface graphique d'*IDLE* et le processus d'exécution de code " +"de l'utilisateur. Une connexion doit être établie quand la console démarre " +"ou redémarre (le redémarrage est indiqué par une ligne de division avec *" +"\"RESTART\"*). Si le processus utilisateur échoue à établir une connexion " +"avec le processus graphique, il affiche une fenêtre d'erreur ``Tk`` avec un " +"message *\"connexion impossible\"* qui redirige l'utilisateur ici. Ensuite, " +"il s'arrête." + +#: ../Doc/library/idle.rst:654 +msgid "" +"A common cause of failure is a user-written file with the same name as a " +"standard library module, such as *random.py* and *tkinter.py*. When such a " +"file is located in the same directory as a file that is about to be run, " +"IDLE cannot import the stdlib file. The current fix is to rename the user " +"file." +msgstr "" +"Une cause d'échec courant est un fichier écrit par l'utilisateur avec le " +"même nom qu'un module de la bibliothèque standard, comme *random.py* et " +"*tkinter.py*. Quand un fichier de ce genre est enregistré dans le même " +"répertoire qu'un fichier à exécuter, *IDLE* ne peut pas importer le fichier " +"standard. La solution actuelle consiste à renommer le fichier de " +"l'utilisateur." + +#: ../Doc/library/idle.rst:660 +msgid "" +"Though less common than in the past, an antivirus or firewall program may " +"stop the connection. If the program cannot be taught to allow the " +"connection, then it must be turned off for IDLE to work. It is safe to " +"allow this internal connection because no data is visible on external " +"ports. A similar problem is a network mis-configuration that blocks " +"connections." +msgstr "" +"Même si c'est plus rare qu'avant, un antivirus ou un pare-feu peuvent " +"interrompre la connexion. Si le programme ne peut pas être paramétré pour " +"autoriser la connexion, alors il doit être éteint pour qu'*IDLE* puisse " +"fonctionner. Cette connexion interne est sûre car aucune donnée n'est " +"visible depuis un port extérieur. Un problème similaire est une mauvaise " +"configuration du réseau qui bloque les connexions." + +#: ../Doc/library/idle.rst:667 +msgid "" +"Python installation issues occasionally stop IDLE: multiple versions can " +"clash, or a single installation might need admin access. If one undo the " +"clash, or cannot or does not want to run as admin, it might be easiest to " +"completely remove Python and start over." +msgstr "" +"Des problèmes d'installation de Python stoppent parfois *IDLE* : il peut y " +"avoir un conflit de versions ou bien l'installation peut nécessiter des " +"privilèges administrateurs. Si on corrige le conflit , ou qu'on ne peut ou " +"ne veut pas accorder de privilège, il peut être plus facile de désinstaller " +"complètement Python et de recommencer." + +#: ../Doc/library/idle.rst:672 +msgid "" +"A zombie pythonw.exe process could be a problem. On Windows, use Task " +"Manager to detect and stop one. Sometimes a restart initiated by a program " +"crash or Keyboard Interrupt (control-C) may fail to connect. Dismissing the " +"error box or Restart Shell on the Shell menu may fix a temporary problem." +msgstr "" +"Un processus *pythonw.exe* zombie peut être un problème. Sous Windows, " +"utilisez le Gestionnaire des Tâches pour en détecter puis en arrêter un. " +"Parfois, un redémarrage causé par un plantage ou une interruption clavier " +"(Ctrl-C) peut ne pas réussir à se connecter. Fermer la fenêtre d'erreur ou " +"redémarrer la console dans le menu Shell peut résoudre un problème " +"temporaire." + +# ... this can be prevented by never editing the files by hand, using the +# configuration dialog, under Options, instead Options. +# Qu'est-ce que ça veut dire ??? +#: ../Doc/library/idle.rst:677 +msgid "" +"When IDLE first starts, it attempts to read user configuration files in ~/." +"idlerc/ (~ is one's home directory). If there is a problem, an error " +"message should be displayed. Leaving aside random disk glitches, this can " +"be prevented by never editing the files by hand, using the configuration " +"dialog, under Options, instead Options. Once it happens, the solution may " +"be to delete one or more of the configuration files." +msgstr "" +"Quand *IDLE* démarre pour la première fois, il essaie de lire la " +"configuration de l'utilisateur dans les fichiers de *~/.idlerc* (~ est le " +"répertoire personnel de l'utilisateur). S'il y a un problème, un message " +"d'erreur devrait être affiché. Mis à part les erreurs aléatoires du disque " +"dur, ceci peut être évité en n'éditant jamais les fichiers directement, mais " +"en utilisant la fenêtre de configuration, dans Options. Quand cela arrive, " +"la solution peut être de supprimer un ou plusieurs des fichiers de " +"configuration." + +# Je suppose que c'est (``python -m idlelib)``, et pas (``python -m +# idlelib``)... +#: ../Doc/library/idle.rst:684 +msgid "" +"If IDLE quits with no message, and it was not started from a console, try " +"starting from a console (``python -m idlelib)`` and see if a message appears." +msgstr "" +"Si *IDLE* se ferme sans message et qu'il n'a pas été démarré depuis une " +"console, essayez de le démarrer depuis une console (``python -m idlelib``) " +"et regardez si un message apparaît." + +#: ../Doc/library/idle.rst:688 +msgid "Running user code" +msgstr "Exécuter le code de l'utilisateur" + +#: ../Doc/library/idle.rst:690 +msgid "" +"With rare exceptions, the result of executing Python code with IDLE is " +"intended to be the same as executing the same code by the default method, " +"directly with Python in a text-mode system console or terminal window. " +"However, the different interface and operation occasionally affect visible " +"results. For instance, ``sys.modules`` starts with more entries, and " +"``threading.activeCount()`` returns 2 instead of 1." +msgstr "" +"Sauf dans de rares cas, le résultat de l'exécution de code Python avec " +"*IDLE* est censé être le même que lors de l'exécution du même code via la " +"méthode par défaut, directement avec Python dans une console système en mode " +"texte ou dans une fenêtre de terminal. Cependant, les différentes interfaces " +"et opérations affectent parfois les résultats visibles. Par exemple, ``sys." +"modules`` démarre avec plus d'entrées et ``threading.activeCount()`` renvoie " +"2 plutôt que 1." + +#: ../Doc/library/idle.rst:697 +msgid "" +"By default, IDLE runs user code in a separate OS process rather than in the " +"user interface process that runs the shell and editor. In the execution " +"process, it replaces ``sys.stdin``, ``sys.stdout``, and ``sys.stderr`` with " +"objects that get input from and send output to the Shell window. The " +"original values stored in ``sys.__stdin__``, ``sys.__stdout__``, and ``sys." +"__stderr__`` are not touched, but may be ``None``." +msgstr "" +"Par défaut, *IDLE* exécute le code de l'utilisateur dans un processus " +"système séparé plutôt que dans le processus d'interface utilisateur qui " +"exécute la console et l'éditeur. Dans le processus d'exécution, il remplace " +"``sys.stdin``, ``sys.stdout`` et ``sys.stderr`` par des objets qui " +"récupèrent les entrées et envoient les sorties à la fenêtre de console. Les " +"valeurs originales stockées dans ``sys.__stdin__``, ``sys.__stdout__`` et " +"``sys.__stderr__`` ne sont pas touchées, mais peuvent être ``None``." + +#: ../Doc/library/idle.rst:704 +msgid "" +"When Shell has the focus, it controls the keyboard and screen. This is " +"normally transparent, but functions that directly access the keyboard and " +"screen will not work. These include system-specific functions that " +"determine whether a key has been pressed and if so, which." +msgstr "" +"Quand la console est au premier plan, elle contrôle le clavier et l'écran. " +"Ceci est normalement transparent, mais les fonctions qui accèdent " +"directement au clavier et à l'écran ne fonctionneront pas. Ceci inclut des " +"fonctions spécifiques du système qui déterminent si une touche a été pressée " +"et, le cas échéant, laquelle." + +#: ../Doc/library/idle.rst:709 +msgid "" +"IDLE's standard stream replacements are not inherited by subprocesses " +"created in the execution process, whether directly by user code or by " +"modules such as multiprocessing. If such subprocess use ``input`` from sys." +"stdin or ``print`` or ``write`` to sys.stdout or sys.stderr, IDLE should be " +"started in a command line window. The secondary subprocess will then be " +"attached to that window for input and output." +msgstr "" +"Les remplacements des flux standards par *IDLE* ne sont pas hérités par les " +"sous-processus créés dans le processus d'exécution, directement par le code " +"de l'utilisateur ou par des modules comme *multiprocessing*. Si de tels " +"modules utilisent ``input`` à partir de *sys.stdin* ou ``write`` à *sys." +"stdout* ou *sys.stderr*, *IDLE* doit être démarré dans une fenêtre de ligne " +"de commande. Le sous-processus secondaire sera ensuite attaché à cette " +"fenêtre pour les entrées et les sorties." + +#: ../Doc/library/idle.rst:716 +msgid "" +"If ``sys`` is reset by user code, such as with ``importlib.reload(sys)``, " +"IDLE's changes are lost and input from the keyboard and output to the screen " +"will not work correctly." +msgstr "" +"Si ``sys`` est réinitialisé par le code de l'utilisateur, comme avec " +"``importlib.reload(sys)``, les changements d'*IDLE* seront perdus et " +"l'entrée du clavier et la sortie à l'écran ne fonctionneront pas " +"correctement." + +#: ../Doc/library/idle.rst:720 +msgid "" +"When user code raises SystemExit either directly or by calling sys.exit, " +"IDLE returns to a Shell prompt instead of exiting." +msgstr "" +"Lorsque l'utilisateur lève `SystemExit` directement ou en appelant ``sys." +"exit``, IDLE revient au terminal IDLE au lieu de quitter." + +#: ../Doc/library/idle.rst:724 +msgid "User output in Shell" +msgstr "Sortie de l'utilisateur sur la console" + +#: ../Doc/library/idle.rst:726 +msgid "" +"When a program outputs text, the result is determined by the corresponding " +"output device. When IDLE executes user code, ``sys.stdout`` and ``sys." +"stderr`` are connected to the display area of IDLE's Shell. Some of its " +"features are inherited from the underlying Tk Text widget. Others are " +"programmed additions. Where it matters, Shell is designed for development " +"rather than production runs." +msgstr "" +"Quand un programme affiche du texte, le résultat est déterminé par le " +"support d'affichage correspondant. Quand *IDLE* exécute du code de " +"l'utilisateur, ``sys.stdout`` et ``sys.stderr`` sont connectées à la zone " +"d'affichage de la console d'*IDLE*. Certaines de ces fonctionnalités sont " +"héritées des widgets *Tk* sous-jacents. D'autres sont des additions " +"programmées. Quand cela importe, la console est conçue pour le développement " +"plutôt que l'exécution en production." + +#: ../Doc/library/idle.rst:733 +msgid "" +"For instance, Shell never throws away output. A program that sends " +"unlimited output to Shell will eventually fill memory, resulting in a memory " +"error. In contrast, some system text windows only keep the last n lines of " +"output. A Windows console, for instance, keeps a user-settable 1 to 9999 " +"lines, with 300 the default." +msgstr "" +"Par exemple, la console ne supprime jamais de sortie. Un programme qui écrit " +"à l'infini dans la console finira par remplir la mémoire, ce qui entraînera " +"un erreur mémoire. Par ailleurs, certains systèmes de fenêtres textuelles ne " +"conservent que les n dernières lignes de sortie. Une console Windows, par " +"exemple, conserve une quantité de lignes configurable entre 1 et 9999, avec " +"une valeur par défaut de 300." + +#: ../Doc/library/idle.rst:739 +msgid "" +"A Tk Text widget, and hence IDLE's Shell, displays characters (codepoints) " +"in the the BMP (Basic Multilingual Plane) subset of Unicode. Which " +"characters are displayed with a proper glyph and which with a replacement " +"box depends on the operating system and installed fonts. Tab characters " +"cause the following text to begin after the next tab stop. (They occur every " +"8 'characters'). Newline characters cause following text to appear on a new " +"line. Other control characters are ignored or displayed as a space, box, or " +"something else, depending on the operating system and font. (Moving the text " +"cursor through such output with arrow keys may exhibit some surprising " +"spacing behavior.)" +msgstr "" +"Un widget *Text* de *Tk* et donc la console d'*IDLE*, affiche des caractères " +"(points de code) dans le sous-ensemble *BMP* (*Basic Multilingual Plane*) " +"d'Unicode. Quels caractères sont affichés avec le bon glyphe et lesquels " +"sont affichés avec un caractère de remplacement dépend du système " +"d'exploitation et des polices installées. Les caractères de tabulation font " +"que le texte suivant commencera après le prochain taquet de tabulation (ils " +"sont placés tous les 8 *\"caractères\"*). Les caractères saut de ligne font " +"que le texte suivant apparaît sur une nouvelle ligne. D'autres caractères de " +"contrôle sont ignorés et affichés comme une espace, un carré, ou quelque " +"chose d'autre, selon le système d'exploitation et la police (déplacer le " +"curseur de texte sur une sortie de ce genre peut provoquer un comportement " +"surprenant du point de vue de l'espacement.)" + +#: ../Doc/library/idle.rst:757 +msgid "" +"The ``repr`` function is used for interactive echo of expression values. It " +"returns an altered version of the input string in which control codes, some " +"BMP codepoints, and all non-BMP codepoints are replaced with escape codes. " +"As demonstrated above, it allows one to identify the characters in a string, " +"regardless of how they are displayed." +msgstr "" +"La fonction ``repr`` est utilisée pour l'affichage interactif de la valeur " +"des expressions. Elle renvoie une version modifiée de la chaîne en entrée " +"dans laquelle les codes de contrôle, certains points de code *BMP* et tous " +"les points de code non *BMP* sont remplacés par des caractères " +"d'échappement. Comme montré ci-dessus, ceci permet d'identifier les " +"caractères dans une chaîne, quelle que soit la façon dont elle est affichée." + +#: ../Doc/library/idle.rst:763 +msgid "" +"Normal and error output are generally kept separate (on separate lines) from " +"code input and each other. They each get different highlight colors." +msgstr "" +"Les sorties standard et d'erreur sont généralement séparées (sur des lignes " +"séparées) de l'entrée de code et entre elles. Elles ont chacune une " +"coloration différente." + +#: ../Doc/library/idle.rst:766 +msgid "" +"For SyntaxError tracebacks, the normal '^' marking where the error was " +"detected is replaced by coloring the text with an error highlight. When code " +"run from a file causes other exceptions, one may right click on a traceback " +"line to jump to the corresponding line in an IDLE editor. The file will be " +"opened if necessary." +msgstr "" +"Pour les *traceback* de *SyntaxError*, le *\"^\"* habituel marquant " +"l'endroit où l'erreur a été détectée est remplacé par la coloration et le " +"surlignage du texte avec une erreur. Quand du code exécuté depuis un fichier " +"cause d'autres exceptions, un clic droit sur la ligne du *traceback* permet " +"d'accéder à la ligne correspondante dans un éditeur *IDLE*. Le fichier est " +"ouvert si nécessaire." + +#: ../Doc/library/idle.rst:772 +msgid "" +"Shell has a special facility for squeezing output lines down to a 'Squeezed " +"text' label. This is done automatically for output over N lines (N = 50 by " +"default). N can be changed in the PyShell section of the General page of the " +"Settings dialog. Output with fewer lines can be squeezed by right clicking " +"on the output. This can be useful lines long enough to slow down scrolling." +msgstr "" +"La console a une fonctionnalité spéciale pour réduire les lignes de sorties " +"à une étiquette *\"Squeezed text\"*. Ceci est fait automatiquement pour un " +"sortie de plus de N lignes (N = 50 par défaut). N peut être changé dans la " +"section *PyShell* de la page *General* de la fenêtre de configuration. Les " +"sorties avec moins de lignes peuvent être réduites par un clic droit sur la " +"sortie. Ceci peut être utile sur des lignes si longues qu'elles ralentissent " +"la navigation." + +#: ../Doc/library/idle.rst:780 +msgid "" +"Squeezed output is expanded in place by double-clicking the label. It can " +"also be sent to the clipboard or a separate view window by right-clicking " +"the label." +msgstr "" +"Les sorties réduites sont étendues sur place en double-cliquant sur " +"l'étiquette Elles peuvent aussi être envoyées au presse-papier ou sur un " +"fenêtre séparée par un clic-droit sur l'étiquette." + +#: ../Doc/library/idle.rst:785 +msgid "Developing tkinter applications" +msgstr "Développer des applications *tkinter*" + +#: ../Doc/library/idle.rst:787 +msgid "" +"IDLE is intentionally different from standard Python in order to facilitate " +"development of tkinter programs. Enter ``import tkinter as tk; root = tk." +"Tk()`` in standard Python and nothing appears. Enter the same in IDLE and a " +"tk window appears. In standard Python, one must also enter ``root." +"update()`` to see the window. IDLE does the equivalent in the background, " +"about 20 times a second, which is about every 50 milliseconds. Next enter " +"``b = tk.Button(root, text='button'); b.pack()``. Again, nothing visibly " +"changes in standard Python until one enters ``root.update()``." +msgstr "" +"*IDLE* est intentionnellement différent de Python standard dans le but de " +"faciliter le développement des programmes *tkinter*. Saisissez ``import " +"*tkinter* as tk; root = tk.Tk()`` avec Python standard, rien n'apparaît. " +"Saisissez la même chose dans *IDLE* et une fenêtre *tk* apparaît. En Python " +"standard, il faut également saisir ``root.update()`` pour voir la fenêtre. " +"*IDLE* fait un équivalent mais en arrière-plan, environ 20 fois par seconde, " +"soit environ toutes les 50 millisecondes. Ensuite, saisissez ``b = tk." +"Button(root, text='button'); b.pack()``. De la même manière, aucun " +"changement n'est visible en Python standard jusqu'à la saisie de ``root." +"update()``." + +#: ../Doc/library/idle.rst:796 +msgid "" +"Most tkinter programs run ``root.mainloop()``, which usually does not return " +"until the tk app is destroyed. If the program is run with ``python -i`` or " +"from an IDLE editor, a ``>>>`` shell prompt does not appear until " +"``mainloop()`` returns, at which time there is nothing left to interact with." +msgstr "" +"La plupart des programmes *tkinter* exécutent ``root.mainloop()``, qui " +"d'habitude ne renvoie pas jusqu'à ce que l'application *tk* soit détruite. " +"Si le programme est exécuté avec ``python -i``ou depuis un éditeur *IDLE*, " +"une invite de commande ``>>>`` n'apparaît pas tant que ``mainloop()`` ne " +"termine pas, c'est-à-dire quand il ne reste plus rien avec lequel interagir." + +#: ../Doc/library/idle.rst:802 +msgid "" +"When running a tkinter program from an IDLE editor, one can comment out the " +"mainloop call. One then gets a shell prompt immediately and can interact " +"with the live application. One just has to remember to re-enable the " +"mainloop call when running in standard Python." +msgstr "" +"Avec un programme *tkinter* exécuté depuis un éditeur *IDLE*, vous pouvez " +"immédiatement commenter l'appel à *mainloop*. On a alors accès à une invite " +"de commande et on peut interagir en direct avec l'application. Il faut juste " +"se rappeler de réactiver l'appel à *mainloop* lors de l'exécution en Python " +"standard." + +#: ../Doc/library/idle.rst:808 +msgid "Running without a subprocess" +msgstr "Exécution sans sous-processus" + +#: ../Doc/library/idle.rst:810 +msgid "" +"By default, IDLE executes user code in a separate subprocess via a socket, " +"which uses the internal loopback interface. This connection is not " +"externally visible and no data is sent to or received from the Internet. If " +"firewall software complains anyway, you can ignore it." +msgstr "" +"Par défaut *IDLE* exécute le code de l'utilisateur dans un sous-processus " +"séparé via un connecteur sur l'interface de la boucle locale. Cette " +"connexion n'est pas visible de l'extérieur et rien n'est envoyé ou reçu " +"d'Internet. Si un pare-feu s'en plaint quand même, vous pouvez l'ignorer." + +#: ../Doc/library/idle.rst:815 +msgid "" +"If the attempt to make the socket connection fails, Idle will notify you. " +"Such failures are sometimes transient, but if persistent, the problem may be " +"either a firewall blocking the connection or misconfiguration of a " +"particular system. Until the problem is fixed, one can run Idle with the -n " +"command line switch." +msgstr "" +"Si la tentative de connexion par le *socket* échoue, *IDLE* vous le notifie. " +"Ce genre d'échec est parfois temporaire, mais s'il persiste, le problème " +"peut soit venir d'un pare-feu qui bloque la connexion ou d'une mauvaise " +"configuration dans un système particulier. Jusqu'à ce que le problème soit " +"résolu, vous pouvez exécuter *IDLE* avec l'option *-n* de la ligne de " +"commande." + +#: ../Doc/library/idle.rst:821 +msgid "" +"If IDLE is started with the -n command line switch it will run in a single " +"process and will not create the subprocess which runs the RPC Python " +"execution server. This can be useful if Python cannot create the subprocess " +"or the RPC socket interface on your platform. However, in this mode user " +"code is not isolated from IDLE itself. Also, the environment is not " +"restarted when Run/Run Module (F5) is selected. If your code has been " +"modified, you must reload() the affected modules and re-import any specific " +"items (e.g. from foo import baz) if the changes are to take effect. For " +"these reasons, it is preferable to run IDLE with the default subprocess if " +"at all possible." +msgstr "" +"Si *IDLE* est démarré avec l'option *-n* de la ligne de commande, il " +"s'exécute dans un seul processus et ne crée pas de sous-processus pour " +"exécuter le serveur RPC d'exécution de Python. Ceci peut être utile si " +"Python ne peut pas créer de sous-processus ou de connecteur *RPC* sur votre " +"plateforme. Cependant, dans ce mode, le code de l'utilisateur n'est pas " +"isolé de *IDLE* lui-même. De plus, l'environnement n'est pas réinitialisé " +"quand *Run/Run Module* (`F5`) est sélectionné. Si votre code a été modifié, " +"vous devez *reload*() les modules affectés et ré-importer tous les éléments " +"spécifiques (e.g. *from foo import baz*) pour que les changements prennent " +"effet. Pour toutes ces raisons, il est préférable d'exécuter *IDLE* avec le " +"sous-processus par défaut si c'est possible." + +#: ../Doc/library/idle.rst:836 +msgid "Help and preferences" +msgstr "Aide et préférences" + +#: ../Doc/library/idle.rst:841 +msgid "Help sources" +msgstr "Sources d'aide" + +#: ../Doc/library/idle.rst:843 +msgid "" +"Help menu entry \"IDLE Help\" displays a formatted html version of the IDLE " +"chapter of the Library Reference. The result, in a read-only tkinter text " +"window, is close to what one sees in a web browser. Navigate through the " +"text with a mousewheel, the scrollbar, or up and down arrow keys held down. " +"Or click the TOC (Table of Contents) button and select a section header in " +"the opened box." +msgstr "" +"L'entrée du menu d'aide *\"IDLE Help\"* affiche une version *html* formatée " +"du chapitre sur *IDLE* de la *Library Reference*. Le résultat, dans une " +"fenêtre de texte *tkinter* en lecture-seule, est proche de ce qu'on voit " +"dans un navigateur. Naviguez dans le texte avec la molette de la souris, la " +"barre de défilement ou avec les touches directionnelles du clavier " +"enfoncées. Ou cliquez sur le bouton TOC (*Table of Contents* : sommaire) et " +"sélectionnez un titre de section dans l'espace ouvert." + +#: ../Doc/library/idle.rst:851 +msgid "" +"Help menu entry \"Python Docs\" opens the extensive sources of help, " +"including tutorials, available at docs.python.org/x.y, where 'x.y' is the " +"currently running Python version. If your system has an off-line copy of " +"the docs (this may be an installation option), that will be opened instead." +msgstr "" +"L'entrée du menu d'aide *\"Python Docs\"* ouvre les sources d'aide " +"détaillées, incluant des tutoriels, disponibles sur docs.python.org/x.y, " +"avec *\"x.y\"* la version de Python en cours d'exécution. Si votre système a " +"une copie locale de la documentation (ce peut être une option " +"d'installation), c'est elle qui est ouverte." + +#: ../Doc/library/idle.rst:857 +msgid "" +"Selected URLs can be added or removed from the help menu at any time using " +"the General tab of the Configure IDLE dialog ." +msgstr "" +"Les URI sélectionnés peuvent être ajoutés ou enlevés du menu d'aide à " +"n'importe quel moment en utilisant l'onglet *General* de la fenêtre de " +"configuration d'*IDLE*." + +#: ../Doc/library/idle.rst:863 +msgid "Setting preferences" +msgstr "Modifier les préférences" + +#: ../Doc/library/idle.rst:865 +msgid "" +"The font preferences, highlighting, keys, and general preferences can be " +"changed via Configure IDLE on the Option menu. Non-default user settings are " +"saved in a .idlerc directory in the user's home directory. Problems caused " +"by bad user configuration files are solved by editing or deleting one or " +"more of the files in .idlerc." +msgstr "" +"Les préférences de fontes, surlignage, touches et les préférences générales " +"peuvent peuvent être changées via *Configure *IDLE** dans le menu Option. " +"Les paramètres modifiés par l'utilisateur sont enregistrés dans un dossier *." +"idlerc* dans le dossier personnel de l'utilisateur. Les problèmes causés par " +"des fichiers de configuration de l'utilisateur corrompus sont résolus en " +"modifiant ou en supprimant un ou plusieurs fichiers dans *.idlerc*." + +#: ../Doc/library/idle.rst:871 +msgid "" +"On the Font tab, see the text sample for the effect of font face and size on " +"multiple characters in multiple languages. Edit the sample to add other " +"characters of personal interest. Use the sample to select monospaced " +"fonts. If particular characters have problems in Shell or an editor, add " +"them to the top of the sample and try changing first size and then font." +msgstr "" +"Dans l'onglet *Fonts*, regardez les échantillons de texte pour voir l'effet " +"de la police et de la taille sur de multiples caractères de multiples " +"langues. Éditez les échantillons pour ajouter d'autres caractères qui vous " +"intéressent. Utilisez les échantillons pour sélectionner les polices à " +"largeur constante. Si certains caractères posent des difficultés dans la " +"console ou l'éditeur, ajoutez-les en haut des échantillons et essayez de " +"changer d'abord la taille, puis la fonte." + +#: ../Doc/library/idle.rst:878 +msgid "" +"On the Highlights and Keys tab, select a built-in or custom color theme and " +"key set. To use a newer built-in color theme or key set with older IDLEs, " +"save it as a new custom theme or key set and it well be accessible to older " +"IDLEs." +msgstr "" +"Dans les onglets *Highlights* et *Keys*, sélectionnez un ensemble de " +"couleurs et de raccourcis pré-inclus ou personnalisé. Pour utiliser un " +"ensemble de couleurs et de raccourcis récent avec une version d'*IDLE* plus " +"ancienne, enregistrez-le en tant que nouveau thème ou ensemble de raccourcis " +"personnalisé ; il sera alors accessible aux *IDLE* plus anciens." + +#: ../Doc/library/idle.rst:884 +msgid "IDLE on macOS" +msgstr "*IDLE* sous *macOS*" + +# framework=>cadriciel ne pose pas de problème ? +#: ../Doc/library/idle.rst:886 +msgid "" +"Under System Preferences: Dock, one can set \"Prefer tabs when opening " +"documents\" to \"Always\". This setting is not compatible with the tk/" +"tkinter GUI framework used by IDLE, and it breaks a few IDLE features." +msgstr "" +"Dans *System Preferences: Dock*, on peut mettre *\"Prefer tabs when opening " +"documents\"* à la valeur *\"Always\"*. Ce paramètre n'est pas compatible " +"avec le cadriciel *tk/tkinter* utilisé par *IDLE* et il casse quelques " +"fonctionnalités d'*IDLE*." + +#: ../Doc/library/idle.rst:891 +msgid "Extensions" +msgstr "Extensions" + +#: ../Doc/library/idle.rst:893 +msgid "" +"IDLE contains an extension facility. Preferences for extensions can be " +"changed with the Extensions tab of the preferences dialog. See the beginning " +"of config-extensions.def in the idlelib directory for further information. " +"The only current default extension is zzdummy, an example also used for " +"testing." +msgstr "" +"*IDLE* inclut un outil d'extensions. Les préférences pour les extensions " +"peuvent être changées avec l'onglet Extensions de la fenêtre de préférences. " +"Lisez le début de *config-extensions.def* dans le dossier *idlelib* pour " +"plus d'informations. La seule extension actuellement utilisée par défaut est " +"*zzdummy*, un exemple également utilisé pour les tests." diff --git a/library/imaplib.po b/library/imaplib.po new file mode 100644 index 000000000..93f4cac96 --- /dev/null +++ b/library/imaplib.po @@ -0,0 +1,627 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/imaplib.rst:2 +msgid ":mod:`imaplib` --- IMAP4 protocol client" +msgstr "" + +#: ../Doc/library/imaplib.rst:14 +msgid "**Source code:** :source:`Lib/imaplib.py`" +msgstr "**Code source :** :source:`Lib/imaplib.py`" + +#: ../Doc/library/imaplib.rst:23 +msgid "" +"This module defines three classes, :class:`IMAP4`, :class:`IMAP4_SSL` and :" +"class:`IMAP4_stream`, which encapsulate a connection to an IMAP4 server and " +"implement a large subset of the IMAP4rev1 client protocol as defined in :rfc:" +"`2060`. It is backward compatible with IMAP4 (:rfc:`1730`) servers, but note " +"that the ``STATUS`` command is not supported in IMAP4." +msgstr "" + +#: ../Doc/library/imaplib.rst:29 +msgid "" +"Three classes are provided by the :mod:`imaplib` module, :class:`IMAP4` is " +"the base class:" +msgstr "" + +#: ../Doc/library/imaplib.rst:35 +msgid "" +"This class implements the actual IMAP4 protocol. The connection is created " +"and protocol version (IMAP4 or IMAP4rev1) is determined when the instance is " +"initialized. If *host* is not specified, ``''`` (the local host) is used. If " +"*port* is omitted, the standard IMAP4 port (143) is used." +msgstr "" + +#: ../Doc/library/imaplib.rst:40 +msgid "" +"The :class:`IMAP4` class supports the :keyword:`with` statement. When used " +"like this, the IMAP4 ``LOGOUT`` command is issued automatically when the :" +"keyword:`!with` statement exits. E.g.::" +msgstr "" + +#: ../Doc/library/imaplib.rst:50 +msgid "Support for the :keyword:`with` statement was added." +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." + +#: ../Doc/library/imaplib.rst:53 +msgid "Three exceptions are defined as attributes of the :class:`IMAP4` class:" +msgstr "" + +#: ../Doc/library/imaplib.rst:58 +msgid "" +"Exception raised on any errors. The reason for the exception is passed to " +"the constructor as a string." +msgstr "" + +#: ../Doc/library/imaplib.rst:64 +msgid "" +"IMAP4 server errors cause this exception to be raised. This is a sub-class " +"of :exc:`IMAP4.error`. Note that closing the instance and instantiating a " +"new one will usually allow recovery from this exception." +msgstr "" + +#: ../Doc/library/imaplib.rst:71 +msgid "" +"This exception is raised when a writable mailbox has its status changed by " +"the server. This is a sub-class of :exc:`IMAP4.error`. Some other client " +"now has write permission, and the mailbox will need to be re-opened to re-" +"obtain write permission." +msgstr "" + +#: ../Doc/library/imaplib.rst:77 +msgid "There's also a subclass for secure connections:" +msgstr "" + +#: ../Doc/library/imaplib.rst:83 +msgid "" +"This is a subclass derived from :class:`IMAP4` that connects over an SSL " +"encrypted socket (to use this class you need a socket module that was " +"compiled with SSL support). If *host* is not specified, ``''`` (the local " +"host) is used. If *port* is omitted, the standard IMAP4-over-SSL port (993) " +"is used. *ssl_context* is a :class:`ssl.SSLContext` object which allows " +"bundling SSL configuration options, certificates and private keys into a " +"single (potentially long-lived) structure. Please read :ref:`ssl-security` " +"for best practices." +msgstr "" + +#: ../Doc/library/imaplib.rst:92 +msgid "" +"*keyfile* and *certfile* are a legacy alternative to *ssl_context* - they " +"can point to PEM-formatted private key and certificate chain files for the " +"SSL connection. Note that the *keyfile*/*certfile* parameters are mutually " +"exclusive with *ssl_context*, a :class:`ValueError` is raised if *keyfile*/" +"*certfile* is provided along with *ssl_context*." +msgstr "" + +#: ../Doc/library/imaplib.rst:98 +msgid "*ssl_context* parameter added." +msgstr "" + +#: ../Doc/library/imaplib.rst:101 +msgid "" +"The class now supports hostname check with :attr:`ssl.SSLContext." +"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +msgstr "" + +#: ../Doc/library/imaplib.rst:108 +msgid "" +"*keyfile* and *certfile* are deprecated in favor of *ssl_context*. Please " +"use :meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." +"create_default_context` select the system's trusted CA certificates for you." +msgstr "" + +#: ../Doc/library/imaplib.rst:114 +msgid "The second subclass allows for connections created by a child process:" +msgstr "" + +#: ../Doc/library/imaplib.rst:119 +msgid "" +"This is a subclass derived from :class:`IMAP4` that connects to the ``stdin/" +"stdout`` file descriptors created by passing *command* to ``subprocess." +"Popen()``." +msgstr "" + +#: ../Doc/library/imaplib.rst:124 +msgid "The following utility functions are defined:" +msgstr "" + +#: ../Doc/library/imaplib.rst:129 +msgid "" +"Parse an IMAP4 ``INTERNALDATE`` string and return corresponding local time. " +"The return value is a :class:`time.struct_time` tuple or ``None`` if the " +"string has wrong format." +msgstr "" + +#: ../Doc/library/imaplib.rst:135 +msgid "" +"Converts an integer into a string representation using characters from the " +"set [``A`` .. ``P``]." +msgstr "" + +#: ../Doc/library/imaplib.rst:141 +msgid "Converts an IMAP4 ``FLAGS`` response to a tuple of individual flags." +msgstr "" + +#: ../Doc/library/imaplib.rst:146 +msgid "" +"Convert *date_time* to an IMAP4 ``INTERNALDATE`` representation. The return " +"value is a string in the form: ``\"DD-Mmm-YYYY HH:MM:SS +HHMM\"`` (including " +"double-quotes). The *date_time* argument can be a number (int or float) " +"representing seconds since epoch (as returned by :func:`time.time`), a 9-" +"tuple representing local time an instance of :class:`time.struct_time` (as " +"returned by :func:`time.localtime`), an aware instance of :class:`datetime." +"datetime`, or a double-quoted string. In the last case, it is assumed to " +"already be in the correct format." +msgstr "" + +#: ../Doc/library/imaplib.rst:156 +msgid "" +"Note that IMAP4 message numbers change as the mailbox changes; in " +"particular, after an ``EXPUNGE`` command performs deletions the remaining " +"messages are renumbered. So it is highly advisable to use UIDs instead, with " +"the UID command." +msgstr "" + +#: ../Doc/library/imaplib.rst:160 +msgid "" +"At the end of the module, there is a test section that contains a more " +"extensive example of usage." +msgstr "" + +#: ../Doc/library/imaplib.rst:166 +msgid "" +"Documents describing the protocol, and sources and binaries for servers " +"implementing it, can all be found at the University of Washington's *IMAP " +"Information Center* (https://www.washington.edu/imap/)." +msgstr "" + +#: ../Doc/library/imaplib.rst:174 +msgid "IMAP4 Objects" +msgstr "" + +#: ../Doc/library/imaplib.rst:176 +msgid "" +"All IMAP4rev1 commands are represented by methods of the same name, either " +"upper-case or lower-case." +msgstr "" + +#: ../Doc/library/imaplib.rst:179 +msgid "" +"All arguments to commands are converted to strings, except for " +"``AUTHENTICATE``, and the last argument to ``APPEND`` which is passed as an " +"IMAP4 literal. If necessary (the string contains IMAP4 protocol-sensitive " +"characters and isn't enclosed with either parentheses or double quotes) each " +"string is quoted. However, the *password* argument to the ``LOGIN`` command " +"is always quoted. If you want to avoid having an argument string quoted (eg: " +"the *flags* argument to ``STORE``) then enclose the string in parentheses " +"(eg: ``r'(\\Deleted)'``)." +msgstr "" + +#: ../Doc/library/imaplib.rst:187 +msgid "" +"Each command returns a tuple: ``(type, [data, ...])`` where *type* is " +"usually ``'OK'`` or ``'NO'``, and *data* is either the text from the command " +"response, or mandated results from the command. Each *data* is either a " +"string, or a tuple. If a tuple, then the first part is the header of the " +"response, and the second part contains the data (ie: 'literal' value)." +msgstr "" + +#: ../Doc/library/imaplib.rst:193 +msgid "" +"The *message_set* options to commands below is a string specifying one or " +"more messages to be acted upon. It may be a simple message number " +"(``'1'``), a range of message numbers (``'2:4'``), or a group of non-" +"contiguous ranges separated by commas (``'1:3,6:9'``). A range can contain " +"an asterisk to indicate an infinite upper bound (``'3:*'``)." +msgstr "" + +#: ../Doc/library/imaplib.rst:199 +msgid "An :class:`IMAP4` instance has the following methods:" +msgstr "" + +#: ../Doc/library/imaplib.rst:204 +msgid "Append *message* to named mailbox." +msgstr "" + +#: ../Doc/library/imaplib.rst:209 +msgid "Authenticate command --- requires response processing." +msgstr "" + +#: ../Doc/library/imaplib.rst:211 +msgid "" +"*mechanism* specifies which authentication mechanism is to be used - it " +"should appear in the instance variable ``capabilities`` in the form " +"``AUTH=mechanism``." +msgstr "" + +#: ../Doc/library/imaplib.rst:214 +msgid "*authobject* must be a callable object::" +msgstr "" + +#: ../Doc/library/imaplib.rst:218 +msgid "" +"It will be called to process server continuation responses; the *response* " +"argument it is passed will be ``bytes``. It should return ``bytes`` *data* " +"that will be base64 encoded and sent to the server. It should return " +"``None`` if the client abort response ``*`` should be sent instead." +msgstr "" + +#: ../Doc/library/imaplib.rst:223 +msgid "" +"string usernames and passwords are now encoded to ``utf-8`` instead of being " +"limited to ASCII." +msgstr "" + +#: ../Doc/library/imaplib.rst:230 +msgid "Checkpoint mailbox on server." +msgstr "" + +#: ../Doc/library/imaplib.rst:235 +msgid "" +"Close currently selected mailbox. Deleted messages are removed from writable " +"mailbox. This is the recommended command before ``LOGOUT``." +msgstr "" + +#: ../Doc/library/imaplib.rst:241 +msgid "Copy *message_set* messages onto end of *new_mailbox*." +msgstr "" + +#: ../Doc/library/imaplib.rst:246 +msgid "Create new mailbox named *mailbox*." +msgstr "" + +#: ../Doc/library/imaplib.rst:251 +msgid "Delete old mailbox named *mailbox*." +msgstr "" + +#: ../Doc/library/imaplib.rst:256 +msgid "Delete the ACLs (remove any rights) set for who on mailbox." +msgstr "" + +#: ../Doc/library/imaplib.rst:261 +msgid "" +"Enable *capability* (see :rfc:`5161`). Most capabilities do not need to be " +"enabled. Currently only the ``UTF8=ACCEPT`` capability is supported (see :" +"RFC:`6855`)." +msgstr "" + +#: ../Doc/library/imaplib.rst:265 +msgid "The :meth:`enable` method itself, and :RFC:`6855` support." +msgstr "" + +#: ../Doc/library/imaplib.rst:271 +msgid "" +"Permanently remove deleted items from selected mailbox. Generates an " +"``EXPUNGE`` response for each deleted message. Returned data contains a list " +"of ``EXPUNGE`` message numbers in order received." +msgstr "" + +#: ../Doc/library/imaplib.rst:278 +msgid "" +"Fetch (parts of) messages. *message_parts* should be a string of message " +"part names enclosed within parentheses, eg: ``\"(UID BODY[TEXT])\"``. " +"Returned data are tuples of message part envelope and data." +msgstr "" + +#: ../Doc/library/imaplib.rst:285 +msgid "" +"Get the ``ACL``\\ s for *mailbox*. The method is non-standard, but is " +"supported by the ``Cyrus`` server." +msgstr "" + +#: ../Doc/library/imaplib.rst:291 +msgid "" +"Retrieve the specified ``ANNOTATION``\\ s for *mailbox*. The method is non-" +"standard, but is supported by the ``Cyrus`` server." +msgstr "" + +#: ../Doc/library/imaplib.rst:297 +msgid "" +"Get the ``quota`` *root*'s resource usage and limits. This method is part of " +"the IMAP4 QUOTA extension defined in rfc2087." +msgstr "" + +#: ../Doc/library/imaplib.rst:303 +msgid "" +"Get the list of ``quota`` ``roots`` for the named *mailbox*. This method is " +"part of the IMAP4 QUOTA extension defined in rfc2087." +msgstr "" + +#: ../Doc/library/imaplib.rst:309 +msgid "" +"List mailbox names in *directory* matching *pattern*. *directory* defaults " +"to the top-level mail folder, and *pattern* defaults to match anything. " +"Returned data contains a list of ``LIST`` responses." +msgstr "" + +#: ../Doc/library/imaplib.rst:316 +msgid "" +"Identify the client using a plaintext password. The *password* will be " +"quoted." +msgstr "" + +#: ../Doc/library/imaplib.rst:321 +msgid "" +"Force use of ``CRAM-MD5`` authentication when identifying the client to " +"protect the password. Will only work if the server ``CAPABILITY`` response " +"includes the phrase ``AUTH=CRAM-MD5``." +msgstr "" + +#: ../Doc/library/imaplib.rst:328 +msgid "Shutdown connection to server. Returns server ``BYE`` response." +msgstr "" + +#: ../Doc/library/imaplib.rst:333 +msgid "" +"List subscribed mailbox names in directory matching pattern. *directory* " +"defaults to the top level directory and *pattern* defaults to match any " +"mailbox. Returned data are tuples of message part envelope and data." +msgstr "" + +#: ../Doc/library/imaplib.rst:340 +msgid "Show my ACLs for a mailbox (i.e. the rights that I have on mailbox)." +msgstr "" + +#: ../Doc/library/imaplib.rst:345 +msgid "Returns IMAP namespaces as defined in :rfc:`2342`." +msgstr "" + +#: ../Doc/library/imaplib.rst:350 +msgid "Send ``NOOP`` to server." +msgstr "" + +#: ../Doc/library/imaplib.rst:355 +msgid "" +"Opens socket to *port* at *host*. This method is implicitly called by the :" +"class:`IMAP4` constructor. The connection objects established by this " +"method will be used in the :meth:`IMAP4.read`, :meth:`IMAP4.readline`, :meth:" +"`IMAP4.send`, and :meth:`IMAP4.shutdown` methods. You may override this " +"method." +msgstr "" + +#: ../Doc/library/imaplib.rst:364 +msgid "" +"Fetch truncated part of a message. Returned data is a tuple of message part " +"envelope and data." +msgstr "" + +#: ../Doc/library/imaplib.rst:370 +msgid "" +"Assume authentication as *user*. Allows an authorised administrator to proxy " +"into any user's mailbox." +msgstr "" + +#: ../Doc/library/imaplib.rst:376 +msgid "" +"Reads *size* bytes from the remote server. You may override this method." +msgstr "" + +#: ../Doc/library/imaplib.rst:381 +msgid "Reads one line from the remote server. You may override this method." +msgstr "" + +#: ../Doc/library/imaplib.rst:386 +msgid "" +"Prompt server for an update. Returned data is ``None`` if no new messages, " +"else value of ``RECENT`` response." +msgstr "" + +#: ../Doc/library/imaplib.rst:392 +msgid "Rename mailbox named *oldmailbox* to *newmailbox*." +msgstr "" + +#: ../Doc/library/imaplib.rst:397 +msgid "" +"Return data for response *code* if received, or ``None``. Returns the given " +"code, instead of the usual type." +msgstr "" + +#: ../Doc/library/imaplib.rst:403 +msgid "" +"Search mailbox for matching messages. *charset* may be ``None``, in which " +"case no ``CHARSET`` will be specified in the request to the server. The " +"IMAP protocol requires that at least one criterion be specified; an " +"exception will be raised when the server returns an error. *charset* must " +"be ``None`` if the ``UTF8=ACCEPT`` capability was enabled using the :meth:" +"`enable` command." +msgstr "" + +#: ../Doc/library/imaplib.rst:410 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/imaplib.rst:421 +msgid "" +"Select a mailbox. Returned data is the count of messages in *mailbox* " +"(``EXISTS`` response). The default *mailbox* is ``'INBOX'``. If the " +"*readonly* flag is set, modifications to the mailbox are not allowed." +msgstr "" + +#: ../Doc/library/imaplib.rst:428 +msgid "Sends ``data`` to the remote server. You may override this method." +msgstr "" + +#: ../Doc/library/imaplib.rst:433 +msgid "" +"Set an ``ACL`` for *mailbox*. The method is non-standard, but is supported " +"by the ``Cyrus`` server." +msgstr "" + +#: ../Doc/library/imaplib.rst:439 +msgid "" +"Set ``ANNOTATION``\\ s for *mailbox*. The method is non-standard, but is " +"supported by the ``Cyrus`` server." +msgstr "" + +#: ../Doc/library/imaplib.rst:445 +msgid "" +"Set the ``quota`` *root*'s resource *limits*. This method is part of the " +"IMAP4 QUOTA extension defined in rfc2087." +msgstr "" + +#: ../Doc/library/imaplib.rst:451 +msgid "" +"Close connection established in ``open``. This method is implicitly called " +"by :meth:`IMAP4.logout`. You may override this method." +msgstr "" + +#: ../Doc/library/imaplib.rst:457 +msgid "Returns socket instance used to connect to server." +msgstr "" + +#: ../Doc/library/imaplib.rst:462 +msgid "" +"The ``sort`` command is a variant of ``search`` with sorting semantics for " +"the results. Returned data contains a space separated list of matching " +"message numbers." +msgstr "" + +#: ../Doc/library/imaplib.rst:466 +msgid "" +"Sort has two arguments before the *search_criterion* argument(s); a " +"parenthesized list of *sort_criteria*, and the searching *charset*. Note " +"that unlike ``search``, the searching *charset* argument is mandatory. " +"There is also a ``uid sort`` command which corresponds to ``sort`` the way " +"that ``uid search`` corresponds to ``search``. The ``sort`` command first " +"searches the mailbox for messages that match the given searching criteria " +"using the charset argument for the interpretation of strings in the " +"searching criteria. It then returns the numbers of matching messages." +msgstr "" + +#: ../Doc/library/imaplib.rst:475 ../Doc/library/imaplib.rst:546 +msgid "This is an ``IMAP4rev1`` extension command." +msgstr "" + +#: ../Doc/library/imaplib.rst:480 +msgid "" +"Send a ``STARTTLS`` command. The *ssl_context* argument is optional and " +"should be a :class:`ssl.SSLContext` object. This will enable encryption on " +"the IMAP connection. Please read :ref:`ssl-security` for best practices." +msgstr "" + +#: ../Doc/library/imaplib.rst:487 +msgid "" +"The method now supports hostname check with :attr:`ssl.SSLContext." +"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +msgstr "" + +#: ../Doc/library/imaplib.rst:495 +msgid "Request named status conditions for *mailbox*." +msgstr "" + +#: ../Doc/library/imaplib.rst:500 +msgid "" +"Alters flag dispositions for messages in mailbox. *command* is specified by " +"section 6.4.6 of :rfc:`2060` as being one of \"FLAGS\", \"+FLAGS\", or \"-" +"FLAGS\", optionally with a suffix of \".SILENT\"." +msgstr "" + +#: ../Doc/library/imaplib.rst:504 +msgid "For example, to set the delete flag on all messages::" +msgstr "" + +#: ../Doc/library/imaplib.rst:513 +msgid "" +"Creating flags containing ']' (for example: \"[test]\") violates :rfc:`3501` " +"(the IMAP protocol). However, imaplib has historically allowed creation of " +"such tags, and popular IMAP servers, such as Gmail, accept and produce such " +"flags. There are non-Python programs which also create such tags. Although " +"it is an RFC violation and IMAP clients and servers are supposed to be " +"strict, imaplib nonetheless continues to allow such tags to be created for " +"backward compatibility reasons, and as of Python 3.6, handles them if they " +"are sent from the server, since this improves real-world compatibility." +msgstr "" + +#: ../Doc/library/imaplib.rst:525 +msgid "Subscribe to new mailbox." +msgstr "" + +#: ../Doc/library/imaplib.rst:530 +msgid "" +"The ``thread`` command is a variant of ``search`` with threading semantics " +"for the results. Returned data contains a space separated list of thread " +"members." +msgstr "" + +#: ../Doc/library/imaplib.rst:533 +msgid "" +"Thread members consist of zero or more messages numbers, delimited by " +"spaces, indicating successive parent and child." +msgstr "" + +#: ../Doc/library/imaplib.rst:536 +msgid "" +"Thread has two arguments before the *search_criterion* argument(s); a " +"*threading_algorithm*, and the searching *charset*. Note that unlike " +"``search``, the searching *charset* argument is mandatory. There is also a " +"``uid thread`` command which corresponds to ``thread`` the way that ``uid " +"search`` corresponds to ``search``. The ``thread`` command first searches " +"the mailbox for messages that match the given searching criteria using the " +"charset argument for the interpretation of strings in the searching " +"criteria. It then returns the matching messages threaded according to the " +"specified threading algorithm." +msgstr "" + +#: ../Doc/library/imaplib.rst:551 +msgid "" +"Execute command args with messages identified by UID, rather than message " +"number. Returns response appropriate to command. At least one argument " +"must be supplied; if none are provided, the server will return an error and " +"an exception will be raised." +msgstr "" + +#: ../Doc/library/imaplib.rst:559 +msgid "Unsubscribe from old mailbox." +msgstr "" + +#: ../Doc/library/imaplib.rst:564 +msgid "" +"Allow simple extension commands notified by server in ``CAPABILITY`` " +"response." +msgstr "" + +#: ../Doc/library/imaplib.rst:567 +msgid "The following attributes are defined on instances of :class:`IMAP4`:" +msgstr "" + +#: ../Doc/library/imaplib.rst:571 +msgid "" +"The most recent supported protocol in the ``CAPABILITY`` response from the " +"server." +msgstr "" + +#: ../Doc/library/imaplib.rst:577 +msgid "" +"Integer value to control debugging output. The initialize value is taken " +"from the module variable ``Debug``. Values greater than three trace each " +"command." +msgstr "" + +#: ../Doc/library/imaplib.rst:583 +msgid "" +"Boolean value that is normally ``False``, but is set to ``True`` if an :meth:" +"`enable` command is successfully issued for the ``UTF8=ACCEPT`` capability." +msgstr "" + +#: ../Doc/library/imaplib.rst:593 +msgid "IMAP4 Example" +msgstr "" + +#: ../Doc/library/imaplib.rst:595 +msgid "" +"Here is a minimal example (without error checking) that opens a mailbox and " +"retrieves and prints all messages::" +msgstr "" diff --git a/library/imghdr.po b/library/imghdr.po new file mode 100644 index 000000000..bd3dc331f --- /dev/null +++ b/library/imghdr.po @@ -0,0 +1,189 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/imghdr.rst:2 +msgid ":mod:`imghdr` --- Determine the type of an image" +msgstr "" + +#: ../Doc/library/imghdr.rst:7 +msgid "**Source code:** :source:`Lib/imghdr.py`" +msgstr "**Code source :** :source:`Lib/imghdr.py`" + +#: ../Doc/library/imghdr.rst:11 +msgid "" +"The :mod:`imghdr` module determines the type of image contained in a file or " +"byte stream." +msgstr "" + +#: ../Doc/library/imghdr.rst:14 +msgid "The :mod:`imghdr` module defines the following function:" +msgstr "" + +#: ../Doc/library/imghdr.rst:19 +msgid "" +"Tests the image data contained in the file named by *filename*, and returns " +"a string describing the image type. If optional *h* is provided, the " +"*filename* is ignored and *h* is assumed to contain the byte stream to test." +msgstr "" + +#: ../Doc/library/imghdr.rst:23 +msgid "Accepts a :term:`path-like object`." +msgstr "Accepte un :term:`path-like object`." + +#: ../Doc/library/imghdr.rst:26 +msgid "" +"The following image types are recognized, as listed below with the return " +"value from :func:`what`:" +msgstr "" + +#: ../Doc/library/imghdr.rst:30 +msgid "Value" +msgstr "Valeur" + +#: ../Doc/library/imghdr.rst:30 +msgid "Image format" +msgstr "" + +#: ../Doc/library/imghdr.rst:32 +msgid "``'rgb'``" +msgstr "``'rgb'``" + +#: ../Doc/library/imghdr.rst:32 +msgid "SGI ImgLib Files" +msgstr "" + +#: ../Doc/library/imghdr.rst:34 +msgid "``'gif'``" +msgstr "``'gif'``" + +#: ../Doc/library/imghdr.rst:34 +msgid "GIF 87a and 89a Files" +msgstr "" + +#: ../Doc/library/imghdr.rst:36 +msgid "``'pbm'``" +msgstr "``'pbm'``" + +#: ../Doc/library/imghdr.rst:36 +msgid "Portable Bitmap Files" +msgstr "" + +#: ../Doc/library/imghdr.rst:38 +msgid "``'pgm'``" +msgstr "``'pgm'``" + +#: ../Doc/library/imghdr.rst:38 +msgid "Portable Graymap Files" +msgstr "" + +#: ../Doc/library/imghdr.rst:40 +msgid "``'ppm'``" +msgstr "``'ppm'``" + +#: ../Doc/library/imghdr.rst:40 +msgid "Portable Pixmap Files" +msgstr "" + +#: ../Doc/library/imghdr.rst:42 +msgid "``'tiff'``" +msgstr "``'tiff'``" + +#: ../Doc/library/imghdr.rst:42 +msgid "TIFF Files" +msgstr "" + +#: ../Doc/library/imghdr.rst:44 +msgid "``'rast'``" +msgstr "``'rast'``" + +#: ../Doc/library/imghdr.rst:44 +msgid "Sun Raster Files" +msgstr "" + +#: ../Doc/library/imghdr.rst:46 +msgid "``'xbm'``" +msgstr "``'xbm'``" + +#: ../Doc/library/imghdr.rst:46 +msgid "X Bitmap Files" +msgstr "" + +#: ../Doc/library/imghdr.rst:48 +msgid "``'jpeg'``" +msgstr "``'jpeg'``" + +#: ../Doc/library/imghdr.rst:48 +msgid "JPEG data in JFIF or Exif formats" +msgstr "" + +#: ../Doc/library/imghdr.rst:50 +msgid "``'bmp'``" +msgstr "``'bmp'``" + +#: ../Doc/library/imghdr.rst:50 +msgid "BMP files" +msgstr "" + +#: ../Doc/library/imghdr.rst:52 +msgid "``'png'``" +msgstr "``'png'``" + +#: ../Doc/library/imghdr.rst:52 +msgid "Portable Network Graphics" +msgstr "" + +#: ../Doc/library/imghdr.rst:54 +msgid "``'webp'``" +msgstr "``'webp'``" + +#: ../Doc/library/imghdr.rst:54 +msgid "WebP files" +msgstr "" + +#: ../Doc/library/imghdr.rst:56 +msgid "``'exr'``" +msgstr "``'exr'``" + +#: ../Doc/library/imghdr.rst:56 +msgid "OpenEXR Files" +msgstr "" + +#: ../Doc/library/imghdr.rst:59 +msgid "The *exr* and *webp* formats were added." +msgstr "" + +#: ../Doc/library/imghdr.rst:63 +msgid "" +"You can extend the list of file types :mod:`imghdr` can recognize by " +"appending to this variable:" +msgstr "" + +#: ../Doc/library/imghdr.rst:69 +msgid "" +"A list of functions performing the individual tests. Each function takes " +"two arguments: the byte-stream and an open file-like object. When :func:" +"`what` is called with a byte-stream, the file-like object will be ``None``." +msgstr "" + +#: ../Doc/library/imghdr.rst:73 +msgid "" +"The test function should return a string describing the image type if the " +"test succeeded, or ``None`` if it failed." +msgstr "" + +#: ../Doc/library/imghdr.rst:76 +msgid "Example::" +msgstr "Exemple ::" diff --git a/library/imp.po b/library/imp.po new file mode 100644 index 000000000..eb6e33f06 --- /dev/null +++ b/library/imp.po @@ -0,0 +1,459 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/imp.rst:2 +msgid ":mod:`imp` --- Access the :ref:`import ` internals" +msgstr "" + +#: ../Doc/library/imp.rst:8 +msgid "**Source code:** :source:`Lib/imp.py`" +msgstr "" + +#: ../Doc/library/imp.rst:10 +msgid "" +"The :mod:`imp` package is pending deprecation in favor of :mod:`importlib`." +msgstr "" + +#: ../Doc/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 "" + +#: ../Doc/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 "" + +#: ../Doc/library/imp.rst:28 +msgid "Use :attr:`importlib.util.MAGIC_NUMBER` instead." +msgstr "" + +#: ../Doc/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 "" + +#: ../Doc/library/imp.rst:43 +msgid "Use the constants defined on :mod:`importlib.machinery` instead." +msgstr "" + +#: ../Doc/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 "" + +#: ../Doc/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 "" + +#: ../Doc/library/imp.rst:61 +msgid "" +"If search is successful, the return value is a 3-element tuple ``(file, " +"pathname, description)``:" +msgstr "" + +#: ../Doc/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 "" + +#: ../Doc/library/imp.rst:69 +msgid "" +"If the module does not live in a file, the returned *file* is ``None``, " +"*pathname* is the empty string, 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 "" + +#: ../Doc/library/imp.rst:76 +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 "" + +#: ../Doc/library/imp.rst:79 +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 "" + +#: ../Doc/library/imp.rst:85 +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 "" + +#: ../Doc/library/imp.rst:95 +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 "" + +#: ../Doc/library/imp.rst:106 +msgid "" +"If the load is successful, the return value is the module object; otherwise, " +"an exception (usually :exc:`ImportError`) is raised." +msgstr "" + +#: ../Doc/library/imp.rst:109 +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 "" + +#: ../Doc/library/imp.rst:113 +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 "" + +#: ../Doc/library/imp.rst:127 +msgid "" +"Return a new empty module object called *name*. This object is *not* " +"inserted in ``sys.modules``." +msgstr "" + +#: ../Doc/library/imp.rst:130 +msgid "Use :func:`importlib.util.module_from_spec` instead." +msgstr "" + +#: ../Doc/library/imp.rst:136 +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 "" + +#: ../Doc/library/imp.rst:142 +msgid "When ``reload(module)`` is executed:" +msgstr "" + +#: ../Doc/library/imp.rst:144 +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 "" + +#: ../Doc/library/imp.rst:149 +msgid "" +"As with all other objects in Python the old objects are only reclaimed after " +"their reference counts drop to zero." +msgstr "" + +#: ../Doc/library/imp.rst:152 +msgid "" +"The names in the module namespace are updated to point to any new or changed " +"objects." +msgstr "" + +#: ../Doc/library/imp.rst:155 +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 "" + +#: ../Doc/library/imp.rst:159 +msgid "There are a number of other caveats:" +msgstr "" + +#: ../Doc/library/imp.rst:161 +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 "" + +#: ../Doc/library/imp.rst:174 +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 "" + +#: ../Doc/library/imp.rst:179 +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 "" + +#: ../Doc/library/imp.rst:185 +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 "" + +#: ../Doc/library/imp.rst:189 +msgid "" +"Relies on both ``__name__`` and ``__loader__`` being defined on the module " +"being reloaded instead of just ``__name__``." +msgstr "" + +#: ../Doc/library/imp.rst:193 +msgid "Use :func:`importlib.reload` instead." +msgstr "" + +#: ../Doc/library/imp.rst:197 +msgid "" +"The following functions are conveniences for handling :pep:`3147` byte-" +"compiled file paths." +msgstr "" + +#: ../Doc/library/imp.rst:204 +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 "" + +#: ../Doc/library/imp.rst:213 +msgid "*path* need not exist." +msgstr "" + +#: ../Doc/library/imp.rst:215 +msgid "" +"If :attr:`sys.implementation.cache_tag` is ``None``, then :exc:" +"`NotImplementedError` is raised." +msgstr "" + +#: ../Doc/library/imp.rst:219 +msgid "Use :func:`importlib.util.cache_from_source` instead." +msgstr "" + +#: ../Doc/library/imp.rst:222 +msgid "The *debug_override* parameter no longer creates a ``.pyo`` file." +msgstr "" + +#: ../Doc/library/imp.rst:228 +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 "" + +#: ../Doc/library/imp.rst:236 +msgid "" +"Raise :exc:`NotImplementedError` when :attr:`sys.implementation.cache_tag` " +"is not defined." +msgstr "" + +#: ../Doc/library/imp.rst:240 +msgid "Use :func:`importlib.util.source_from_cache` instead." +msgstr "" + +#: ../Doc/library/imp.rst:246 +msgid "" +"Return the :pep:`3147` magic tag string matching this version of Python's " +"magic number, as returned by :func:`get_magic`." +msgstr "" + +#: ../Doc/library/imp.rst:249 +msgid "" +"Use :attr:`sys.implementation.cache_tag` directly starting in Python 3.3." +msgstr "" + +#: ../Doc/library/imp.rst:254 +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 "" + +#: ../Doc/library/imp.rst:262 +msgid "" +"Return ``True`` if the global import lock is currently held, else ``False``. " +"On platforms without threads, always return ``False``." +msgstr "" + +#: ../Doc/library/imp.rst:265 +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 "" + +#: ../Doc/library/imp.rst:273 ../Doc/library/imp.rst:293 +#: ../Doc/library/imp.rst:306 +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 "" + +#: ../Doc/library/imp.rst:283 +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 "" + +#: ../Doc/library/imp.rst:287 +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 "" + +#: ../Doc/library/imp.rst:291 +msgid "On platforms without threads, this function does nothing." +msgstr "" + +#: ../Doc/library/imp.rst:303 +msgid "" +"Release the interpreter's global import lock. On platforms without threads, " +"this function does nothing." +msgstr "" + +#: ../Doc/library/imp.rst:314 +msgid "" +"The following constants with integer values, defined in this module, are " +"used to indicate the search result of :func:`find_module`." +msgstr "" + +#: ../Doc/library/imp.rst:320 +msgid "The module was found as a source file." +msgstr "" + +#: ../Doc/library/imp.rst:327 +msgid "The module was found as a compiled code object file." +msgstr "" + +#: ../Doc/library/imp.rst:334 +msgid "The module was found as dynamically loadable shared library." +msgstr "" + +#: ../Doc/library/imp.rst:341 +msgid "The module was found as a package directory." +msgstr "" + +#: ../Doc/library/imp.rst:348 +msgid "The module was found as a built-in module." +msgstr "" + +#: ../Doc/library/imp.rst:355 +msgid "The module was found as a frozen module." +msgstr "" + +#: ../Doc/library/imp.rst:362 +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 "" + +#: ../Doc/library/imp.rst:367 +msgid "Instances have only one method:" +msgstr "" + +#: ../Doc/library/imp.rst:371 +msgid "" +"This method always returns ``None``, indicating that the requested module " +"could not be found." +msgstr "" + +#: ../Doc/library/imp.rst:374 +msgid "" +"``None`` is inserted into ``sys.path_importer_cache`` instead of an instance " +"of :class:`NullImporter`." +msgstr "" + +#: ../Doc/library/imp.rst:378 +msgid "Insert ``None`` into ``sys.path_importer_cache`` instead." +msgstr "" + +#: ../Doc/library/imp.rst:385 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/imp.rst:387 +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 "" diff --git a/library/importlib.po b/library/importlib.po new file mode 100644 index 000000000..81455a8de --- /dev/null +++ b/library/importlib.po @@ -0,0 +1,1934 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2018-07-04 11:26+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/importlib.rst:2 +msgid ":mod:`!importlib` --- The implementation of :keyword:`!import`" +msgstr "" + +#: ../Doc/library/importlib.rst:12 +msgid "**Source code:** :source:`Lib/importlib/__init__.py`" +msgstr "" + +#: ../Doc/library/importlib.rst:17 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/library/importlib.rst:19 +msgid "" +"The purpose of the :mod:`importlib` package is two-fold. One is to provide " +"the implementation of the :keyword:`import` statement (and thus, by " +"extension, the :func:`__import__` function) in Python source code. This " +"provides an implementation of :keyword:`!import` which is portable to any " +"Python interpreter. This also provides an implementation which is easier to " +"comprehend than one implemented in a programming language other than Python." +msgstr "" + +#: ../Doc/library/importlib.rst:26 +msgid "" +"Two, the components to implement :keyword:`import` are exposed in this " +"package, making it easier for users to create their own custom objects " +"(known generically as an :term:`importer`) to participate in the import " +"process." +msgstr "" + +#: ../Doc/library/importlib.rst:33 +msgid ":ref:`import`" +msgstr ":ref:`import`" + +#: ../Doc/library/importlib.rst:33 +msgid "The language reference for the :keyword:`import` statement." +msgstr "" + +#: ../Doc/library/importlib.rst:38 +msgid "" +"`Packages specification `__" +msgstr "" + +#: ../Doc/library/importlib.rst:36 +msgid "" +"Original specification of packages. Some semantics have changed since the " +"writing of this document (e.g. redirecting based on ``None`` in :data:`sys." +"modules`)." +msgstr "" + +#: ../Doc/library/importlib.rst:41 +msgid "The :func:`.__import__` function" +msgstr "La fonction :func:`.__import__`" + +#: ../Doc/library/importlib.rst:41 +msgid "The :keyword:`import` statement is syntactic sugar for this function." +msgstr "" + +#: ../Doc/library/importlib.rst:44 +msgid ":pep:`235`" +msgstr ":pep:`235`" + +#: ../Doc/library/importlib.rst:44 +msgid "Import on Case-Insensitive Platforms" +msgstr "" + +#: ../Doc/library/importlib.rst:47 +msgid ":pep:`263`" +msgstr ":pep:`263`" + +#: ../Doc/library/importlib.rst:47 +msgid "Defining Python Source Code Encodings" +msgstr "" + +#: ../Doc/library/importlib.rst:50 +msgid ":pep:`302`" +msgstr ":pep:`302`" + +#: ../Doc/library/importlib.rst:50 +msgid "New Import Hooks" +msgstr "" + +#: ../Doc/library/importlib.rst:53 +msgid ":pep:`328`" +msgstr ":pep:`328`" + +#: ../Doc/library/importlib.rst:53 +msgid "Imports: Multi-Line and Absolute/Relative" +msgstr "" + +#: ../Doc/library/importlib.rst:56 +msgid ":pep:`366`" +msgstr ":pep:`366`" + +#: ../Doc/library/importlib.rst:56 +msgid "Main module explicit relative imports" +msgstr "" + +#: ../Doc/library/importlib.rst:59 +msgid ":pep:`420`" +msgstr ":pep:`420`" + +#: ../Doc/library/importlib.rst:59 +msgid "Implicit namespace packages" +msgstr "" + +#: ../Doc/library/importlib.rst:62 +msgid ":pep:`451`" +msgstr ":pep:`451`" + +#: ../Doc/library/importlib.rst:62 +msgid "A ModuleSpec Type for the Import System" +msgstr "" + +#: ../Doc/library/importlib.rst:65 +msgid ":pep:`488`" +msgstr ":pep:`488`" + +#: ../Doc/library/importlib.rst:65 +msgid "Elimination of PYO files" +msgstr "" + +#: ../Doc/library/importlib.rst:68 +msgid ":pep:`489`" +msgstr ":pep:`489`" + +#: ../Doc/library/importlib.rst:68 +msgid "Multi-phase extension module initialization" +msgstr "" + +#: ../Doc/library/importlib.rst:71 +msgid ":pep:`552`" +msgstr ":pep:`552`" + +#: ../Doc/library/importlib.rst:71 +msgid "Deterministic pycs" +msgstr "" + +#: ../Doc/library/importlib.rst:74 +msgid ":pep:`3120`" +msgstr ":pep:`3120`" + +#: ../Doc/library/importlib.rst:74 +msgid "Using UTF-8 as the Default Source Encoding" +msgstr "" + +#: ../Doc/library/importlib.rst:76 +msgid ":pep:`3147`" +msgstr ":pep:`3147`" + +#: ../Doc/library/importlib.rst:77 +msgid "PYC Repository Directories" +msgstr "" + +#: ../Doc/library/importlib.rst:81 +msgid "Functions" +msgstr "Fonctions" + +#: ../Doc/library/importlib.rst:85 +msgid "An implementation of the built-in :func:`__import__` function." +msgstr "" + +#: ../Doc/library/importlib.rst:88 +msgid "" +"Programmatic importing of modules should use :func:`import_module` instead " +"of this function." +msgstr "" + +#: ../Doc/library/importlib.rst:93 +msgid "" +"Import a module. The *name* argument specifies what module to import in " +"absolute or relative terms (e.g. either ``pkg.mod`` or ``..mod``). If the " +"name is specified in relative terms, then the *package* argument must be set " +"to the name of the package which is to act as the anchor for resolving the " +"package name (e.g. ``import_module('..mod', 'pkg.subpkg')`` will import " +"``pkg.mod``)." +msgstr "" + +#: ../Doc/library/importlib.rst:101 +msgid "" +"The :func:`import_module` function acts as a simplifying wrapper around :" +"func:`importlib.__import__`. This means all semantics of the function are " +"derived from :func:`importlib.__import__`. The most important difference " +"between these two functions is that :func:`import_module` returns the " +"specified package or module (e.g. ``pkg.mod``), while :func:`__import__` " +"returns the top-level package or module (e.g. ``pkg``)." +msgstr "" + +#: ../Doc/library/importlib.rst:108 +msgid "" +"If you are dynamically importing a module that was created since the " +"interpreter began execution (e.g., created a Python source file), you may " +"need to call :func:`invalidate_caches` in order for the new module to be " +"noticed by the import system." +msgstr "" + +#: ../Doc/library/importlib.rst:113 +msgid "Parent packages are automatically imported." +msgstr "" + +#: ../Doc/library/importlib.rst:118 +msgid "" +"Find the loader for a module, optionally within the specified *path*. If the " +"module is in :attr:`sys.modules`, then ``sys.modules[name].__loader__`` is " +"returned (unless the loader would be ``None`` or is not set, in which case :" +"exc:`ValueError` is raised). Otherwise a search using :attr:`sys.meta_path` " +"is done. ``None`` is returned if no loader is found." +msgstr "" + +#: ../Doc/library/importlib.rst:124 +msgid "" +"A dotted name does not have its parents implicitly imported as that requires " +"loading them and that may not be desired. To properly import a submodule you " +"will need to import all parent packages of the submodule and use the correct " +"argument to *path*." +msgstr "" + +#: ../Doc/library/importlib.rst:131 +msgid "" +"If ``__loader__`` is not set, raise :exc:`ValueError`, just like when the " +"attribute is set to ``None``." +msgstr "" + +#: ../Doc/library/importlib.rst:135 +msgid "Use :func:`importlib.util.find_spec` instead." +msgstr "" + +#: ../Doc/library/importlib.rst:140 +msgid "" +"Invalidate the internal caches of finders stored at :data:`sys.meta_path`. " +"If a finder implements ``invalidate_caches()`` then it will be called to " +"perform the invalidation. This function should be called if any modules are " +"created/installed while your program is running to guarantee all finders " +"will notice the new module's existence." +msgstr "" + +#: ../Doc/library/importlib.rst:150 +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 (which can be different if re-importing " +"causes a different object to be placed in :data:`sys.modules`)." +msgstr "" + +#: ../Doc/library/importlib.rst:157 +msgid "When :func:`reload` is executed:" +msgstr "" + +#: ../Doc/library/importlib.rst:159 +msgid "" +"Python module's code is recompiled and the module-level code re-executed, " +"defining a new set of objects which are bound to names in the module's " +"dictionary by reusing the :term:`loader` which originally loaded the " +"module. The ``init`` function of extension modules is not called a second " +"time." +msgstr "" + +#: ../Doc/library/importlib.rst:165 +msgid "" +"As with all other objects in Python the old objects are only reclaimed after " +"their reference counts drop to zero." +msgstr "" + +#: ../Doc/library/importlib.rst:168 +msgid "" +"The names in the module namespace are updated to point to any new or changed " +"objects." +msgstr "" + +#: ../Doc/library/importlib.rst:171 +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 "" + +#: ../Doc/library/importlib.rst:175 +msgid "There are a number of other caveats:" +msgstr "" + +#: ../Doc/library/importlib.rst:177 +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 "" + +#: ../Doc/library/importlib.rst:191 +msgid "" +"It is generally not very useful to reload built-in or dynamically loaded " +"modules. Reloading :mod:`sys`, :mod:`__main__`, :mod:`builtins` and other " +"key modules is not recommended. In many cases extension modules are not " +"designed to be initialized more than once, and may fail in arbitrary ways " +"when reloaded." +msgstr "" + +#: ../Doc/library/importlib.rst:197 +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 "" + +#: ../Doc/library/importlib.rst:203 +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 "" + +#: ../Doc/library/importlib.rst:209 +msgid "" +":exc:`ModuleNotFoundError` is raised when the module being reloaded lacks a :" +"class:`ModuleSpec`." +msgstr "" + +#: ../Doc/library/importlib.rst:215 +msgid ":mod:`importlib.abc` -- Abstract base classes related to import" +msgstr "" + +#: ../Doc/library/importlib.rst:220 +msgid "**Source code:** :source:`Lib/importlib/abc.py`" +msgstr "" + +#: ../Doc/library/importlib.rst:225 +msgid "" +"The :mod:`importlib.abc` module contains all of the core abstract base " +"classes used by :keyword:`import`. Some subclasses of the core abstract base " +"classes are also provided to help in implementing the core ABCs." +msgstr "" + +#: ../Doc/library/importlib.rst:229 +msgid "ABC hierarchy::" +msgstr "" + +#: ../Doc/library/importlib.rst:245 +msgid "An abstract base class representing a :term:`finder`." +msgstr "" + +#: ../Doc/library/importlib.rst:247 +msgid "Use :class:`MetaPathFinder` or :class:`PathEntryFinder` instead." +msgstr "" + +#: ../Doc/library/importlib.rst:252 +msgid "" +"An abstract method for finding a :term:`loader` for the specified module. " +"Originally specified in :pep:`302`, this method was meant for use in :data:" +"`sys.meta_path` and in the path-based import subsystem." +msgstr "" + +#: ../Doc/library/importlib.rst:256 +msgid "" +"Returns ``None`` when called instead of raising :exc:`NotImplementedError`." +msgstr "" + +#: ../Doc/library/importlib.rst:263 +msgid "" +"An abstract base class representing a :term:`meta path finder`. For " +"compatibility, this is a subclass of :class:`Finder`." +msgstr "" + +#: ../Doc/library/importlib.rst:270 +msgid "" +"An abstract method for finding a :term:`spec ` for the " +"specified module. If this is a top-level import, *path* will be ``None``. " +"Otherwise, this is a search for a subpackage or module and *path* will be " +"the value of :attr:`__path__` from the parent package. If a spec cannot be " +"found, ``None`` is returned. When passed in, ``target`` is a module object " +"that the finder may use to make a more educated guess about what spec to " +"return." +msgstr "" + +#: ../Doc/library/importlib.rst:282 +msgid "" +"A legacy method for finding a :term:`loader` for the specified module. If " +"this is a top-level import, *path* will be ``None``. Otherwise, this is a " +"search for a subpackage or module and *path* will be the value of :attr:" +"`__path__` from the parent package. If a loader cannot be found, ``None`` is " +"returned." +msgstr "" + +#: ../Doc/library/importlib.rst:288 +msgid "" +"If :meth:`find_spec` is defined, backwards-compatible functionality is " +"provided." +msgstr "" + +#: ../Doc/library/importlib.rst:291 +msgid "" +"Returns ``None`` when called instead of raising :exc:`NotImplementedError`. " +"Can use :meth:`find_spec` to provide functionality." +msgstr "" + +#: ../Doc/library/importlib.rst:296 ../Doc/library/importlib.rst:349 +#: ../Doc/library/importlib.rst:357 ../Doc/library/importlib.rst:1078 +msgid "Use :meth:`find_spec` instead." +msgstr "" + +#: ../Doc/library/importlib.rst:301 +msgid "" +"An optional method which, when called, should invalidate any internal cache " +"used by the finder. Used by :func:`importlib.invalidate_caches` when " +"invalidating the caches of all finders on :data:`sys.meta_path`." +msgstr "" + +#: ../Doc/library/importlib.rst:305 +msgid "Returns ``None`` when called instead of ``NotImplemented``." +msgstr "" + +#: ../Doc/library/importlib.rst:311 +msgid "" +"An abstract base class representing a :term:`path entry finder`. Though it " +"bears some similarities to :class:`MetaPathFinder`, ``PathEntryFinder`` is " +"meant for use only within the path-based import subsystem provided by :class:" +"`PathFinder`. This ABC is a subclass of :class:`Finder` for compatibility " +"reasons only." +msgstr "" + +#: ../Doc/library/importlib.rst:321 +msgid "" +"An abstract method for finding a :term:`spec ` for the " +"specified module. The finder will search for the module only within the :" +"term:`path entry` to which it is assigned. If a spec cannot be found, " +"``None`` is returned. When passed in, ``target`` is a module object that " +"the finder may use to make a more educated guess about what spec to return." +msgstr "" + +#: ../Doc/library/importlib.rst:332 +msgid "" +"A legacy method for finding a :term:`loader` for the specified module. " +"Returns a 2-tuple of ``(loader, portion)`` where ``portion`` is a sequence " +"of file system locations contributing to part of a namespace package. The " +"loader may be ``None`` while specifying ``portion`` to signify the " +"contribution of the file system locations to a namespace package. An empty " +"list can be used for ``portion`` to signify the loader is not part of a " +"namespace package. If ``loader`` is ``None`` and ``portion`` is the empty " +"list then no loader or location for a namespace package were found (i.e. " +"failure to find anything for the module)." +msgstr "" + +#: ../Doc/library/importlib.rst:342 +msgid "" +"If :meth:`find_spec` is defined then backwards-compatible functionality is " +"provided." +msgstr "" + +#: ../Doc/library/importlib.rst:345 +msgid "" +"Returns ``(None, [])`` instead of raising :exc:`NotImplementedError`. Uses :" +"meth:`find_spec` when available to provide functionality." +msgstr "" + +#: ../Doc/library/importlib.rst:354 +msgid "" +"A concrete implementation of :meth:`Finder.find_module` which is equivalent " +"to ``self.find_loader(fullname)[0]``." +msgstr "" + +#: ../Doc/library/importlib.rst:362 +msgid "" +"An optional method which, when called, should invalidate any internal cache " +"used by the finder. Used by :meth:`PathFinder.invalidate_caches` when " +"invalidating the caches of all cached finders." +msgstr "" + +#: ../Doc/library/importlib.rst:369 +msgid "" +"An abstract base class for a :term:`loader`. See :pep:`302` for the exact " +"definition for a loader." +msgstr "" + +#: ../Doc/library/importlib.rst:372 ../Doc/library/importlib.rst:832 +msgid "" +"Loaders that wish to support resource reading should implement a " +"``get_resource_reader(fullname)`` method as specified by :class:`importlib." +"abc.ResourceReader`." +msgstr "" + +#: ../Doc/library/importlib.rst:376 +msgid "Introduced the optional ``get_resource_reader()`` method." +msgstr "" + +#: ../Doc/library/importlib.rst:381 +msgid "" +"A method that returns the module object to use when importing a module. " +"This method may return ``None``, indicating that default module creation " +"semantics should take place." +msgstr "" + +#: ../Doc/library/importlib.rst:387 +msgid "" +"Starting in Python 3.6, this method will not be optional when :meth:" +"`exec_module` is defined." +msgstr "" + +#: ../Doc/library/importlib.rst:393 +msgid "" +"An abstract method that executes the module in its own namespace when a " +"module is imported or reloaded. The module should already be initialized " +"when ``exec_module()`` is called. When this method exists, :meth:`~importlib." +"abc.Loader.create_module` must be defined." +msgstr "" + +#: ../Doc/library/importlib.rst:400 +msgid ":meth:`~importlib.abc.Loader.create_module` must also be defined." +msgstr "" + +#: ../Doc/library/importlib.rst:405 +msgid "" +"A legacy method for loading a module. If the module cannot be loaded, :exc:" +"`ImportError` is raised, otherwise the loaded module is returned." +msgstr "" + +#: ../Doc/library/importlib.rst:409 +msgid "" +"If the requested module already exists in :data:`sys.modules`, that module " +"should be used and reloaded. Otherwise the loader should create a new module " +"and insert it into :data:`sys.modules` before any loading begins, to prevent " +"recursion from the import. If the loader inserted a module and the load " +"fails, it must be removed by the loader from :data:`sys.modules`; modules " +"already in :data:`sys.modules` before the loader began execution should be " +"left alone (see :func:`importlib.util.module_for_loader`)." +msgstr "" + +#: ../Doc/library/importlib.rst:418 +msgid "" +"The loader should set several attributes on the module. (Note that some of " +"these attributes can change when a module is reloaded):" +msgstr "" + +#: ../Doc/library/importlib.rst:423 +msgid ":attr:`__name__`" +msgstr "" + +#: ../Doc/library/importlib.rst:423 +msgid "The name of the module." +msgstr "" + +#: ../Doc/library/importlib.rst:427 +msgid ":attr:`__file__`" +msgstr "" + +#: ../Doc/library/importlib.rst:426 +msgid "" +"The path to where the module data is stored (not set for built-in modules)." +msgstr "" + +#: ../Doc/library/importlib.rst:431 +msgid ":attr:`__cached__`" +msgstr "" + +#: ../Doc/library/importlib.rst:430 +msgid "" +"The path to where a compiled version of the module is/should be stored (not " +"set when the attribute would be inappropriate)." +msgstr "" + +#: ../Doc/library/importlib.rst:435 +msgid ":attr:`__path__`" +msgstr "" + +#: ../Doc/library/importlib.rst:434 +msgid "" +"A list of strings specifying the search path within a package. This " +"attribute is not set on modules." +msgstr "" + +#: ../Doc/library/importlib.rst:441 +msgid ":attr:`__package__`" +msgstr "" + +#: ../Doc/library/importlib.rst:438 +msgid "" +"The parent package for the module/package. If the module is top-level then " +"it has a value of the empty string. The :func:`importlib.util." +"module_for_loader` decorator can handle the details for :attr:`__package__`." +msgstr "" + +#: ../Doc/library/importlib.rst:446 +msgid ":attr:`__loader__`" +msgstr "" + +#: ../Doc/library/importlib.rst:444 +msgid "" +"The loader used to load the module. The :func:`importlib.util." +"module_for_loader` decorator can handle the details for :attr:`__package__`." +msgstr "" + +#: ../Doc/library/importlib.rst:448 +msgid "" +"When :meth:`exec_module` is available then backwards-compatible " +"functionality is provided." +msgstr "" + +#: ../Doc/library/importlib.rst:451 +msgid "" +"Raise :exc:`ImportError` when called instead of :exc:`NotImplementedError`. " +"Functionality provided when :meth:`exec_module` is available." +msgstr "" + +#: ../Doc/library/importlib.rst:456 +msgid "" +"The recommended API for loading a module is :meth:`exec_module` (and :meth:" +"`create_module`). Loaders should implement it instead of load_module(). " +"The import machinery takes care of all the other responsibilities of " +"load_module() when exec_module() is implemented." +msgstr "" + +#: ../Doc/library/importlib.rst:465 +msgid "" +"A legacy method which when implemented calculates and returns the given " +"module's repr, as a string. The module type's default repr() will use the " +"result of this method as appropriate." +msgstr "" + +#: ../Doc/library/importlib.rst:471 +msgid "Made optional instead of an abstractmethod." +msgstr "" + +#: ../Doc/library/importlib.rst:474 +msgid "The import machinery now takes care of this automatically." +msgstr "" + +#: ../Doc/library/importlib.rst:480 +msgid "" +"An :term:`abstract base class` to provide the ability to read *resources*." +msgstr "" + +#: ../Doc/library/importlib.rst:483 +msgid "" +"From the perspective of this ABC, a *resource* is a binary artifact that is " +"shipped within a package. Typically this is something like a data file that " +"lives next to the ``__init__.py`` file of the package. The purpose of this " +"class is to help abstract out the accessing of such data files so that it " +"does not matter if the package and its data file(s) are stored in a e.g. zip " +"file versus on the file system." +msgstr "" + +#: ../Doc/library/importlib.rst:491 +msgid "" +"For any of methods of this class, a *resource* argument is expected to be a :" +"term:`path-like object` which represents conceptually just a file name. This " +"means that no subdirectory paths should be included in the *resource* " +"argument. This is because the location of the package the reader is for, " +"acts as the \"directory\". Hence the metaphor for directories and file names " +"is packages and resources, respectively. This is also why instances of this " +"class are expected to directly correlate to a specific package (instead of " +"potentially representing multiple packages or a module)." +msgstr "" + +#: ../Doc/library/importlib.rst:502 +msgid "" +"Loaders that wish to support resource reading are expected to provide a " +"method called ``get_resource_loader(fullname)`` which returns an object " +"implementing this ABC's interface. If the module specified by fullname is " +"not a package, this method should return :const:`None`. An object compatible " +"with this ABC should only be returned when the specified module is a package." +msgstr "" + +#: ../Doc/library/importlib.rst:513 +msgid "" +"Returns an opened, :term:`file-like object` for binary reading of the " +"*resource*." +msgstr "" + +#: ../Doc/library/importlib.rst:516 +msgid "If the resource cannot be found, :exc:`FileNotFoundError` is raised." +msgstr "" + +#: ../Doc/library/importlib.rst:521 +msgid "Returns the file system path to the *resource*." +msgstr "" + +#: ../Doc/library/importlib.rst:523 +msgid "" +"If the resource does not concretely exist on the file system, raise :exc:" +"`FileNotFoundError`." +msgstr "" + +#: ../Doc/library/importlib.rst:528 +msgid "" +"Returns ``True`` if the named *name* is considered a resource. :exc:" +"`FileNotFoundError` is raised if *name* does not exist." +msgstr "" + +#: ../Doc/library/importlib.rst:533 +msgid "" +"Returns an :term:`iterable` of strings over the contents of the package. Do " +"note that it is not required that all names returned by the iterator be " +"actual resources, e.g. it is acceptable to return names for which :meth:" +"`is_resource` would be false." +msgstr "" + +#: ../Doc/library/importlib.rst:539 +msgid "" +"Allowing non-resource names to be returned is to allow for situations where " +"how a package and its resources are stored are known a priori and the non-" +"resource names would be useful. For instance, returning subdirectory names " +"is allowed so that when it is known that the package and resources are " +"stored on the file system then those subdirectory names can be used directly." +msgstr "" + +#: ../Doc/library/importlib.rst:547 +msgid "The abstract method returns an iterable of no items." +msgstr "" + +#: ../Doc/library/importlib.rst:552 +msgid "" +"An abstract base class for a :term:`loader` which implements the optional :" +"pep:`302` protocol for loading arbitrary resources from the storage back-end." +msgstr "" + +#: ../Doc/library/importlib.rst:556 +msgid "" +"This ABC is deprecated in favour of supporting resource loading through :" +"class:`importlib.abc.ResourceReader`." +msgstr "" + +#: ../Doc/library/importlib.rst:562 +msgid "" +"An abstract method to return the bytes for the data located at *path*. " +"Loaders that have a file-like storage back-end that allows storing arbitrary " +"data can implement this abstract method to give direct access to the data " +"stored. :exc:`OSError` is to be raised if the *path* cannot be found. The " +"*path* is expected to be constructed using a module's :attr:`__file__` " +"attribute or an item from a package's :attr:`__path__`." +msgstr "" + +#: ../Doc/library/importlib.rst:570 +msgid "Raises :exc:`OSError` instead of :exc:`NotImplementedError`." +msgstr "" + +#: ../Doc/library/importlib.rst:576 +msgid "" +"An abstract base class for a :term:`loader` which implements the optional :" +"pep:`302` protocol for loaders that inspect modules." +msgstr "" + +#: ../Doc/library/importlib.rst:581 +msgid "" +"Return the code object for a module, or ``None`` if the module does not have " +"a code object (as would be the case, for example, for a built-in module). " +"Raise an :exc:`ImportError` if loader cannot find the requested module." +msgstr "" + +#: ../Doc/library/importlib.rst:587 +msgid "" +"While the method has a default implementation, it is suggested that it be " +"overridden if possible for performance." +msgstr "" + +#: ../Doc/library/importlib.rst:593 +msgid "No longer abstract and a concrete implementation is provided." +msgstr "" + +#: ../Doc/library/importlib.rst:598 +msgid "" +"An abstract method to return the source of a module. It is returned as a " +"text string using :term:`universal newlines`, translating all recognized " +"line separators into ``'\\n'`` characters. Returns ``None`` if no source is " +"available (e.g. a built-in module). Raises :exc:`ImportError` if the loader " +"cannot find the module specified." +msgstr "" + +#: ../Doc/library/importlib.rst:604 ../Doc/library/importlib.rst:613 +#: ../Doc/library/importlib.rst:663 +msgid "Raises :exc:`ImportError` instead of :exc:`NotImplementedError`." +msgstr "" + +#: ../Doc/library/importlib.rst:609 +msgid "" +"An abstract method to return a true value if the module is a package, a " +"false value otherwise. :exc:`ImportError` is raised if the :term:`loader` " +"cannot find the module." +msgstr "" + +#: ../Doc/library/importlib.rst:618 +msgid "Create a code object from Python source." +msgstr "" + +#: ../Doc/library/importlib.rst:620 +msgid "" +"The *data* argument can be whatever the :func:`compile` function supports (i." +"e. string or bytes). The *path* argument should be the \"path\" to where the " +"source code originated from, which can be an abstract concept (e.g. location " +"in a zip file)." +msgstr "" + +#: ../Doc/library/importlib.rst:625 +msgid "" +"With the subsequent code object one can execute it in a module by running " +"``exec(code, module.__dict__)``." +msgstr "" + +#: ../Doc/library/importlib.rst:630 +msgid "Made the method static." +msgstr "" + +#: ../Doc/library/importlib.rst:635 +msgid "Implementation of :meth:`Loader.exec_module`." +msgstr "" + +#: ../Doc/library/importlib.rst:641 +msgid "Implementation of :meth:`Loader.load_module`." +msgstr "" + +#: ../Doc/library/importlib.rst:643 +msgid "use :meth:`exec_module` instead." +msgstr "" + +#: ../Doc/library/importlib.rst:649 +msgid "" +"An abstract base class which inherits from :class:`InspectLoader` that, when " +"implemented, helps a module to be executed as a script. The ABC represents " +"an optional :pep:`302` protocol." +msgstr "" + +#: ../Doc/library/importlib.rst:655 +msgid "" +"An abstract method that is to return the value of :attr:`__file__` for the " +"specified module. If no path is available, :exc:`ImportError` is raised." +msgstr "" + +#: ../Doc/library/importlib.rst:659 +msgid "" +"If source code is available, then the method should return the path to the " +"source file, regardless of whether a bytecode was used to load the module." +msgstr "" + +#: ../Doc/library/importlib.rst:669 +msgid "" +"An abstract base class which inherits from :class:`ResourceLoader` and :" +"class:`ExecutionLoader`, providing concrete implementations of :meth:" +"`ResourceLoader.get_data` and :meth:`ExecutionLoader.get_filename`." +msgstr "" + +#: ../Doc/library/importlib.rst:673 +msgid "" +"The *fullname* argument is a fully resolved name of the module the loader is " +"to handle. The *path* argument is the path to the file for the module." +msgstr "" + +#: ../Doc/library/importlib.rst:680 +msgid "The name of the module the loader can handle." +msgstr "" + +#: ../Doc/library/importlib.rst:684 +msgid "Path to the file of the module." +msgstr "" + +#: ../Doc/library/importlib.rst:688 +msgid "Calls super's ``load_module()``." +msgstr "" + +#: ../Doc/library/importlib.rst:690 +msgid "Use :meth:`Loader.exec_module` instead." +msgstr "" + +#: ../Doc/library/importlib.rst:695 ../Doc/library/importlib.rst:1277 +msgid "Returns :attr:`path`." +msgstr "" + +#: ../Doc/library/importlib.rst:699 +msgid "Reads *path* as a binary file and returns the bytes from it." +msgstr "" + +#: ../Doc/library/importlib.rst:704 +msgid "" +"An abstract base class for implementing source (and optionally bytecode) " +"file loading. The class inherits from both :class:`ResourceLoader` and :" +"class:`ExecutionLoader`, requiring the implementation of:" +msgstr "" + +#: ../Doc/library/importlib.rst:708 +msgid ":meth:`ResourceLoader.get_data`" +msgstr "" + +#: ../Doc/library/importlib.rst:711 +msgid ":meth:`ExecutionLoader.get_filename`" +msgstr "" + +#: ../Doc/library/importlib.rst:710 +msgid "" +"Should only return the path to the source file; sourceless loading is not " +"supported." +msgstr "" + +#: ../Doc/library/importlib.rst:713 +msgid "" +"The abstract methods defined by this class are to add optional bytecode file " +"support. Not implementing these optional methods (or causing them to raise :" +"exc:`NotImplementedError`) causes the loader to only work with source code. " +"Implementing the methods allows the loader to work with source *and* " +"bytecode files; it does not allow for *sourceless* loading where only " +"bytecode is provided. Bytecode files are an optimization to speed up " +"loading by removing the parsing step of Python's compiler, and so no " +"bytecode-specific API is exposed." +msgstr "" + +#: ../Doc/library/importlib.rst:724 +msgid "" +"Optional abstract method which returns a :class:`dict` containing metadata " +"about the specified path. Supported dictionary keys are:" +msgstr "" + +#: ../Doc/library/importlib.rst:727 +msgid "" +"``'mtime'`` (mandatory): an integer or floating-point number representing " +"the modification time of the source code;" +msgstr "" + +#: ../Doc/library/importlib.rst:729 +msgid "``'size'`` (optional): the size in bytes of the source code." +msgstr "" + +#: ../Doc/library/importlib.rst:731 +msgid "" +"Any other keys in the dictionary are ignored, to allow for future " +"extensions. If the path cannot be handled, :exc:`OSError` is raised." +msgstr "" + +#: ../Doc/library/importlib.rst:736 ../Doc/library/importlib.rst:749 +msgid "Raise :exc:`OSError` instead of :exc:`NotImplementedError`." +msgstr "" + +#: ../Doc/library/importlib.rst:741 +msgid "" +"Optional abstract method which returns the modification time for the " +"specified path." +msgstr "" + +#: ../Doc/library/importlib.rst:744 +msgid "" +"This method is deprecated in favour of :meth:`path_stats`. You don't have " +"to implement it, but it is still available for compatibility purposes. " +"Raise :exc:`OSError` if the path cannot be handled." +msgstr "" + +#: ../Doc/library/importlib.rst:754 +msgid "" +"Optional abstract method which writes the specified bytes to a file path. " +"Any intermediate directories which do not exist are to be created " +"automatically." +msgstr "" + +#: ../Doc/library/importlib.rst:758 +msgid "" +"When writing to the path fails because the path is read-only (:attr:`errno." +"EACCES`/:exc:`PermissionError`), do not propagate the exception." +msgstr "" + +#: ../Doc/library/importlib.rst:762 +msgid "No longer raises :exc:`NotImplementedError` when called." +msgstr "" + +#: ../Doc/library/importlib.rst:767 +msgid "Concrete implementation of :meth:`InspectLoader.get_code`." +msgstr "" + +#: ../Doc/library/importlib.rst:771 +msgid "Concrete implementation of :meth:`Loader.exec_module`." +msgstr "" + +#: ../Doc/library/importlib.rst:777 +msgid "Concrete implementation of :meth:`Loader.load_module`." +msgstr "" + +#: ../Doc/library/importlib.rst:779 +msgid "Use :meth:`exec_module` instead." +msgstr "" + +#: ../Doc/library/importlib.rst:784 +msgid "Concrete implementation of :meth:`InspectLoader.get_source`." +msgstr "" + +#: ../Doc/library/importlib.rst:788 +msgid "" +"Concrete implementation of :meth:`InspectLoader.is_package`. A module is " +"determined to be a package if its file path (as provided by :meth:" +"`ExecutionLoader.get_filename`) is a file named ``__init__`` when the file " +"extension is removed **and** the module name itself does not end in " +"``__init__``." +msgstr "" + +#: ../Doc/library/importlib.rst:796 +msgid ":mod:`importlib.resources` -- Resources" +msgstr "" + +#: ../Doc/library/importlib.rst:801 +msgid "**Source code:** :source:`Lib/importlib/resources.py`" +msgstr "" + +#: ../Doc/library/importlib.rst:807 +msgid "" +"This module leverages Python's import system to provide access to " +"*resources* within *packages*. If you can import a package, you can access " +"resources within that package. Resources can be opened or read, in either " +"binary or text mode." +msgstr "" + +#: ../Doc/library/importlib.rst:812 +msgid "" +"Resources are roughly akin to files inside directories, though it's " +"important to keep in mind that this is just a metaphor. Resources and " +"packages **do not** have to exist as physical files and directories on the " +"file system." +msgstr "" + +#: ../Doc/library/importlib.rst:818 +msgid "" +"This module provides functionality similar to `pkg_resources `_ `Basic Resource " +"Access `_ without the performance overhead of that package. This " +"makes reading resources included in packages easier, with more stable and " +"consistent semantics." +msgstr "" + +#: ../Doc/library/importlib.rst:826 +msgid "" +"The standalone backport of this module provides more information on `using " +"importlib.resources `_ and `migrating from pkg_resources to importlib.resources " +"`_." +msgstr "" + +#: ../Doc/library/importlib.rst:836 +msgid "The following types are defined." +msgstr "" + +#: ../Doc/library/importlib.rst:840 +msgid "" +"The ``Package`` type is defined as ``Union[str, ModuleType]``. This means " +"that where the function describes accepting a ``Package``, you can pass in " +"either a string or a module. Module objects must have a resolvable " +"``__spec__.submodule_search_locations`` that is not ``None``." +msgstr "" + +#: ../Doc/library/importlib.rst:847 +msgid "" +"This type describes the resource names passed into the various functions in " +"this package. This is defined as ``Union[str, os.PathLike]``." +msgstr "" + +#: ../Doc/library/importlib.rst:851 +msgid "The following functions are available." +msgstr "" + +#: ../Doc/library/importlib.rst:855 +msgid "Open for binary reading the *resource* within *package*." +msgstr "" + +#: ../Doc/library/importlib.rst:857 +msgid "" +"*package* is either a name or a module object which conforms to the " +"``Package`` requirements. *resource* is the name of the resource to open " +"within *package*; it may not contain path separators and it may not have sub-" +"resources (i.e. it cannot be a directory). This function returns a ``typing." +"BinaryIO`` instance, a binary I/O stream open for reading." +msgstr "" + +#: ../Doc/library/importlib.rst:866 +msgid "" +"Open for text reading the *resource* within *package*. By default, the " +"resource is opened for reading as UTF-8." +msgstr "" + +#: ../Doc/library/importlib.rst:869 +msgid "" +"*package* is either a name or a module object which conforms to the " +"``Package`` requirements. *resource* is the name of the resource to open " +"within *package*; it may not contain path separators and it may not have sub-" +"resources (i.e. it cannot be a directory). *encoding* and *errors* have the " +"same meaning as with built-in :func:`open`." +msgstr "" + +#: ../Doc/library/importlib.rst:875 +msgid "" +"This function returns a ``typing.TextIO`` instance, a text I/O stream open " +"for reading." +msgstr "" + +#: ../Doc/library/importlib.rst:881 +msgid "" +"Read and return the contents of the *resource* within *package* as ``bytes``." +msgstr "" + +#: ../Doc/library/importlib.rst:884 +msgid "" +"*package* is either a name or a module object which conforms to the " +"``Package`` requirements. *resource* is the name of the resource to open " +"within *package*; it may not contain path separators and it may not have sub-" +"resources (i.e. it cannot be a directory). This function returns the " +"contents of the resource as :class:`bytes`." +msgstr "" + +#: ../Doc/library/importlib.rst:893 +msgid "" +"Read and return the contents of *resource* within *package* as a ``str``. By " +"default, the contents are read as strict UTF-8." +msgstr "" + +#: ../Doc/library/importlib.rst:896 +msgid "" +"*package* is either a name or a module object which conforms to the " +"``Package`` requirements. *resource* is the name of the resource to open " +"within *package*; it may not contain path separators and it may not have sub-" +"resources (i.e. it cannot be a directory). *encoding* and *errors* have the " +"same meaning as with built-in :func:`open`. This function returns the " +"contents of the resource as :class:`str`." +msgstr "" + +#: ../Doc/library/importlib.rst:906 +msgid "" +"Return the path to the *resource* as an actual file system path. This " +"function returns a context manager for use in a :keyword:`with` statement. " +"The context manager provides a :class:`pathlib.Path` object." +msgstr "" + +#: ../Doc/library/importlib.rst:910 +msgid "" +"Exiting the context manager cleans up any temporary file created when the " +"resource needs to be extracted from e.g. a zip file." +msgstr "" + +#: ../Doc/library/importlib.rst:913 +msgid "" +"*package* is either a name or a module object which conforms to the " +"``Package`` requirements. *resource* is the name of the resource to open " +"within *package*; it may not contain path separators and it may not have sub-" +"resources (i.e. it cannot be a directory)." +msgstr "" + +#: ../Doc/library/importlib.rst:921 +msgid "" +"Return ``True`` if there is a resource named *name* in the package, " +"otherwise ``False``. Remember that directories are *not* resources! " +"*package* is either a name or a module object which conforms to the " +"``Package`` requirements." +msgstr "" + +#: ../Doc/library/importlib.rst:929 +msgid "" +"Return an iterable over the named items within the package. The iterable " +"returns :class:`str` resources (e.g. files) and non-resources (e.g. " +"directories). The iterable does not recurse into subdirectories." +msgstr "" + +#: ../Doc/library/importlib.rst:933 +msgid "" +"*package* is either a name or a module object which conforms to the " +"``Package`` requirements." +msgstr "" + +#: ../Doc/library/importlib.rst:938 +msgid ":mod:`importlib.machinery` -- Importers and path hooks" +msgstr "" + +#: ../Doc/library/importlib.rst:943 +msgid "**Source code:** :source:`Lib/importlib/machinery.py`" +msgstr "" + +#: ../Doc/library/importlib.rst:947 +msgid "" +"This module contains the various objects that help :keyword:`import` find " +"and load modules." +msgstr "" + +#: ../Doc/library/importlib.rst:952 +msgid "" +"A list of strings representing the recognized file suffixes for source " +"modules." +msgstr "" + +#: ../Doc/library/importlib.rst:959 +msgid "" +"A list of strings representing the file suffixes for non-optimized bytecode " +"modules." +msgstr "" + +#: ../Doc/library/importlib.rst:964 ../Doc/library/importlib.rst:974 +msgid "Use :attr:`BYTECODE_SUFFIXES` instead." +msgstr "" + +#: ../Doc/library/importlib.rst:969 +msgid "" +"A list of strings representing the file suffixes for optimized bytecode " +"modules." +msgstr "" + +#: ../Doc/library/importlib.rst:979 +msgid "" +"A list of strings representing the recognized file suffixes for bytecode " +"modules (including the leading dot)." +msgstr "" + +#: ../Doc/library/importlib.rst:984 +msgid "The value is no longer dependent on ``__debug__``." +msgstr "" + +#: ../Doc/library/importlib.rst:989 +msgid "" +"A list of strings representing the recognized file suffixes for extension " +"modules." +msgstr "" + +#: ../Doc/library/importlib.rst:996 +msgid "" +"Returns a combined list of strings representing all file suffixes for " +"modules recognized by the standard import machinery. This is a helper for " +"code which simply needs to know if a filesystem path potentially refers to a " +"module without needing any details on the kind of module (for example, :func:" +"`inspect.getmodulename`)." +msgstr "" + +#: ../Doc/library/importlib.rst:1007 +msgid "" +"An :term:`importer` for built-in modules. All known built-in modules are " +"listed in :data:`sys.builtin_module_names`. This class implements the :class:" +"`importlib.abc.MetaPathFinder` and :class:`importlib.abc.InspectLoader` ABCs." +msgstr "" + +#: ../Doc/library/importlib.rst:1012 ../Doc/library/importlib.rst:1026 +#: ../Doc/library/importlib.rst:1035 ../Doc/library/importlib.rst:1050 +msgid "" +"Only class methods are defined by this class to alleviate the need for " +"instantiation." +msgstr "" + +#: ../Doc/library/importlib.rst:1015 +msgid "" +"As part of :pep:`489`, the builtin importer now implements :meth:`Loader." +"create_module` and :meth:`Loader.exec_module`" +msgstr "" + +#: ../Doc/library/importlib.rst:1022 +msgid "" +"An :term:`importer` for frozen modules. This class implements the :class:" +"`importlib.abc.MetaPathFinder` and :class:`importlib.abc.InspectLoader` ABCs." +msgstr "" + +#: ../Doc/library/importlib.rst:1032 +msgid "" +":term:`Finder` for modules declared in the Windows registry. This class " +"implements the :class:`importlib.abc.MetaPathFinder` ABC." +msgstr "" + +#: ../Doc/library/importlib.rst:1040 +msgid "" +"Use :mod:`site` configuration instead. Future versions of Python may not " +"enable this finder by default." +msgstr "" + +#: ../Doc/library/importlib.rst:1047 +msgid "" +"A :term:`Finder` for :data:`sys.path` and package ``__path__`` attributes. " +"This class implements the :class:`importlib.abc.MetaPathFinder` ABC." +msgstr "" + +#: ../Doc/library/importlib.rst:1055 +msgid "" +"Class method that attempts to find a :term:`spec ` for the " +"module specified by *fullname* on :data:`sys.path` or, if defined, on " +"*path*. For each path entry that is searched, :data:`sys." +"path_importer_cache` is checked. If a non-false object is found then it is " +"used as the :term:`path entry finder` to look for the module being searched " +"for. If no entry is found in :data:`sys.path_importer_cache`, then :data:" +"`sys.path_hooks` is searched for a finder for the path entry and, if found, " +"is stored in :data:`sys.path_importer_cache` along with being queried about " +"the module. If no finder is ever found then ``None`` is both stored in the " +"cache and returned." +msgstr "" + +#: ../Doc/library/importlib.rst:1069 +msgid "" +"If the current working directory -- represented by an empty string -- is no " +"longer valid then ``None`` is returned but no value is cached in :data:`sys." +"path_importer_cache`." +msgstr "" + +#: ../Doc/library/importlib.rst:1076 +msgid "A legacy wrapper around :meth:`find_spec`." +msgstr "" + +#: ../Doc/library/importlib.rst:1083 +msgid "" +"Calls :meth:`importlib.abc.PathEntryFinder.invalidate_caches` on all finders " +"stored in :data:`sys.path_importer_cache` that define the method. Otherwise " +"entries in :data:`sys.path_importer_cache` set to ``None`` are deleted." +msgstr "" + +#: ../Doc/library/importlib.rst:1088 +msgid "Entries of ``None`` in :data:`sys.path_importer_cache` are deleted." +msgstr "" + +#: ../Doc/library/importlib.rst:1091 +msgid "" +"Calls objects in :data:`sys.path_hooks` with the current working directory " +"for ``''`` (i.e. the empty string)." +msgstr "" + +#: ../Doc/library/importlib.rst:1098 +msgid "" +"A concrete implementation of :class:`importlib.abc.PathEntryFinder` which " +"caches results from the file system." +msgstr "" + +#: ../Doc/library/importlib.rst:1101 +msgid "" +"The *path* argument is the directory for which the finder is in charge of " +"searching." +msgstr "" + +#: ../Doc/library/importlib.rst:1104 +msgid "" +"The *loader_details* argument is a variable number of 2-item tuples each " +"containing a loader and a sequence of file suffixes the loader recognizes. " +"The loaders are expected to be callables which accept two arguments of the " +"module's name and the path to the file found." +msgstr "" + +#: ../Doc/library/importlib.rst:1109 +msgid "" +"The finder will cache the directory contents as necessary, making stat calls " +"for each module search to verify the cache is not outdated. Because cache " +"staleness relies upon the granularity of the operating system's state " +"information of the file system, there is a potential race condition of " +"searching for a module, creating a new file, and then searching for the " +"module the new file represents. If the operations happen fast enough to fit " +"within the granularity of stat calls, then the module search will fail. To " +"prevent this from happening, when you create a module dynamically, make sure " +"to call :func:`importlib.invalidate_caches`." +msgstr "" + +#: ../Doc/library/importlib.rst:1123 +msgid "The path the finder will search in." +msgstr "" + +#: ../Doc/library/importlib.rst:1127 +msgid "Attempt to find the spec to handle *fullname* within :attr:`path`." +msgstr "" + +#: ../Doc/library/importlib.rst:1133 +msgid "Attempt to find the loader to handle *fullname* within :attr:`path`." +msgstr "" + +#: ../Doc/library/importlib.rst:1137 +msgid "Clear out the internal cache." +msgstr "" + +#: ../Doc/library/importlib.rst:1141 +msgid "" +"A class method which returns a closure for use on :attr:`sys.path_hooks`. An " +"instance of :class:`FileFinder` is returned by the closure using the path " +"argument given to the closure directly and *loader_details* indirectly." +msgstr "" + +#: ../Doc/library/importlib.rst:1146 +msgid "" +"If the argument to the closure is not an existing directory, :exc:" +"`ImportError` is raised." +msgstr "" + +#: ../Doc/library/importlib.rst:1152 +msgid "" +"A concrete implementation of :class:`importlib.abc.SourceLoader` by " +"subclassing :class:`importlib.abc.FileLoader` and providing some concrete " +"implementations of other methods." +msgstr "" + +#: ../Doc/library/importlib.rst:1160 +msgid "The name of the module that this loader will handle." +msgstr "" + +#: ../Doc/library/importlib.rst:1164 +msgid "The path to the source file." +msgstr "" + +#: ../Doc/library/importlib.rst:1168 +msgid "Return true if :attr:`path` appears to be for a package." +msgstr "" + +#: ../Doc/library/importlib.rst:1172 +msgid "" +"Concrete implementation of :meth:`importlib.abc.SourceLoader.path_stats`." +msgstr "" + +#: ../Doc/library/importlib.rst:1176 +msgid "Concrete implementation of :meth:`importlib.abc.SourceLoader.set_data`." +msgstr "" + +#: ../Doc/library/importlib.rst:1180 ../Doc/library/importlib.rst:1223 +msgid "" +"Concrete implementation of :meth:`importlib.abc.Loader.load_module` where " +"specifying the name of the module to load is optional." +msgstr "" + +#: ../Doc/library/importlib.rst:1185 ../Doc/library/importlib.rst:1228 +msgid "Use :meth:`importlib.abc.Loader.exec_module` instead." +msgstr "" + +#: ../Doc/library/importlib.rst:1190 +msgid "" +"A concrete implementation of :class:`importlib.abc.FileLoader` which can " +"import bytecode files (i.e. no source code files exist)." +msgstr "" + +#: ../Doc/library/importlib.rst:1193 +msgid "" +"Please note that direct use of bytecode files (and thus not source code " +"files) inhibits your modules from being usable by all Python implementations " +"or new versions of Python which change the bytecode format." +msgstr "" + +#: ../Doc/library/importlib.rst:1202 +msgid "The name of the module the loader will handle." +msgstr "" + +#: ../Doc/library/importlib.rst:1206 +msgid "The path to the bytecode file." +msgstr "" + +#: ../Doc/library/importlib.rst:1210 +msgid "Determines if the module is a package based on :attr:`path`." +msgstr "" + +#: ../Doc/library/importlib.rst:1214 +msgid "Returns the code object for :attr:`name` created from :attr:`path`." +msgstr "" + +#: ../Doc/library/importlib.rst:1218 +msgid "" +"Returns ``None`` as bytecode files have no source when this loader is used." +msgstr "" + +#: ../Doc/library/importlib.rst:1233 +msgid "" +"A concrete implementation of :class:`importlib.abc.ExecutionLoader` for " +"extension modules." +msgstr "" + +#: ../Doc/library/importlib.rst:1236 +msgid "" +"The *fullname* argument specifies the name of the module the loader is to " +"support. The *path* argument is the path to the extension module's file." +msgstr "" + +#: ../Doc/library/importlib.rst:1243 +msgid "Name of the module the loader supports." +msgstr "" + +#: ../Doc/library/importlib.rst:1247 +msgid "Path to the extension module." +msgstr "" + +#: ../Doc/library/importlib.rst:1251 +msgid "" +"Creates the module object from the given specification in accordance with :" +"pep:`489`." +msgstr "" + +#: ../Doc/library/importlib.rst:1258 +msgid "Initializes the given module object in accordance with :pep:`489`." +msgstr "" + +#: ../Doc/library/importlib.rst:1264 +msgid "" +"Returns ``True`` if the file path points to a package's ``__init__`` module " +"based on :attr:`EXTENSION_SUFFIXES`." +msgstr "" + +#: ../Doc/library/importlib.rst:1269 +msgid "Returns ``None`` as extension modules lack a code object." +msgstr "" + +#: ../Doc/library/importlib.rst:1273 +msgid "Returns ``None`` as extension modules do not have source code." +msgstr "" + +#: ../Doc/library/importlib.rst:1284 +msgid "" +"A specification for a module's import-system-related state. This is " +"typically exposed as the module's ``__spec__`` attribute. In the " +"descriptions below, the names in parentheses give the corresponding " +"attribute available directly on the module object. E.g. ``module.__spec__." +"origin == module.__file__``. Note however that while the *values* are " +"usually equivalent, they can differ since there is no synchronization " +"between the two objects. Thus it is possible to update the module's " +"``__path__`` at runtime, and this will not be automatically reflected in " +"``__spec__.submodule_search_locations``." +msgstr "" + +#: ../Doc/library/importlib.rst:1298 +msgid "(``__name__``)" +msgstr "" + +#: ../Doc/library/importlib.rst:1300 +msgid "A string for the fully-qualified name of the module." +msgstr "" + +#: ../Doc/library/importlib.rst:1304 +msgid "(``__loader__``)" +msgstr "" + +#: ../Doc/library/importlib.rst:1306 +msgid "" +"The loader to use for loading. For namespace packages this should be set to " +"``None``." +msgstr "" + +#: ../Doc/library/importlib.rst:1311 +msgid "(``__file__``)" +msgstr "" + +#: ../Doc/library/importlib.rst:1313 +msgid "" +"Name of the place from which the module is loaded, e.g. \"builtin\" for " +"built-in modules and the filename for modules loaded from source. Normally " +"\"origin\" should be set, but it may be ``None`` (the default) which " +"indicates it is unspecified (e.g. for namespace packages)." +msgstr "" + +#: ../Doc/library/importlib.rst:1320 +msgid "(``__path__``)" +msgstr "" + +#: ../Doc/library/importlib.rst:1322 +msgid "" +"List of strings for where to find submodules, if a package (``None`` " +"otherwise)." +msgstr "" + +#: ../Doc/library/importlib.rst:1327 +msgid "" +"Container of extra module-specific data for use during loading (or ``None``)." +msgstr "" + +#: ../Doc/library/importlib.rst:1332 +msgid "(``__cached__``)" +msgstr "" + +#: ../Doc/library/importlib.rst:1334 +msgid "String for where the compiled module should be stored (or ``None``)." +msgstr "" + +#: ../Doc/library/importlib.rst:1338 +msgid "(``__package__``)" +msgstr "" + +#: ../Doc/library/importlib.rst:1340 +msgid "" +"(Read-only) Fully-qualified name of the package to which the module belongs " +"as a submodule (or ``None``)." +msgstr "" + +#: ../Doc/library/importlib.rst:1345 +msgid "" +"Boolean indicating whether or not the module's \"origin\" attribute refers " +"to a loadable location." +msgstr "" + +#: ../Doc/library/importlib.rst:1349 +msgid ":mod:`importlib.util` -- Utility code for importers" +msgstr "" + +#: ../Doc/library/importlib.rst:1355 +msgid "**Source code:** :source:`Lib/importlib/util.py`" +msgstr "" + +#: ../Doc/library/importlib.rst:1359 +msgid "" +"This module contains the various objects that help in the construction of " +"an :term:`importer`." +msgstr "" + +#: ../Doc/library/importlib.rst:1364 +msgid "" +"The bytes which represent the bytecode version number. If you need help with " +"loading/writing bytecode then consider :class:`importlib.abc.SourceLoader`." +msgstr "" + +#: ../Doc/library/importlib.rst:1371 +msgid "" +"Return the :pep:`3147`/:pep:`488` 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)." +msgstr "" + +#: ../Doc/library/importlib.rst:1378 +msgid "" +"The *optimization* parameter is used to specify the optimization level of " +"the bytecode file. An empty string represents no optimization, so ``/foo/bar/" +"baz.py`` with an *optimization* of ``''`` will result in a bytecode path of " +"``/foo/bar/__pycache__/baz.cpython-32.pyc``. ``None`` causes the interpter's " +"optimization level to be used. Any other value's string representation being " +"used, so ``/foo/bar/baz.py`` with an *optimization* of ``2`` will lead to " +"the bytecode path of ``/foo/bar/__pycache__/baz.cpython-32.opt-2.pyc``. The " +"string representation of *optimization* can only be alphanumeric, else :exc:" +"`ValueError` is raised." +msgstr "" + +#: ../Doc/library/importlib.rst:1388 +msgid "" +"The *debug_override* parameter is deprecated and can be used to override the " +"system's value for ``__debug__``. A ``True`` value is the equivalent of " +"setting *optimization* to the empty string. A ``False`` value is the same as " +"setting *optimization* to ``1``. If both *debug_override* an *optimization* " +"are not ``None`` then :exc:`TypeError` is raised." +msgstr "" + +#: ../Doc/library/importlib.rst:1396 +msgid "" +"The *optimization* parameter was added and the *debug_override* parameter " +"was deprecated." +msgstr "" + +#: ../Doc/library/importlib.rst:1400 ../Doc/library/importlib.rst:1416 +#: ../Doc/library/importlib.rst:1560 +msgid "Accepts a :term:`path-like object`." +msgstr "Accepte un :term:`path-like object`." + +#: ../Doc/library/importlib.rst:1406 +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` or :pep:`488` " +"format, a :exc:`ValueError` is raised. If :attr:`sys.implementation." +"cache_tag` is not defined, :exc:`NotImplementedError` is raised." +msgstr "" + +#: ../Doc/library/importlib.rst:1421 +msgid "" +"Decode the given bytes representing source code and return it as a string " +"with universal newlines (as required by :meth:`importlib.abc.InspectLoader." +"get_source`)." +msgstr "" + +#: ../Doc/library/importlib.rst:1429 +msgid "Resolve a relative module name to an absolute one." +msgstr "" + +#: ../Doc/library/importlib.rst:1431 +msgid "" +"If **name** has no leading dots, then **name** is simply returned. This " +"allows for usage such as ``importlib.util.resolve_name('sys', __package__)`` " +"without doing a check to see if the **package** argument is needed." +msgstr "" + +#: ../Doc/library/importlib.rst:1436 +msgid "" +":exc:`ValueError` is raised if **name** is a relative module name but " +"package is a false value (e.g. ``None`` or the empty string). :exc:" +"`ValueError` is also raised a relative name would escape its containing " +"package (e.g. requesting ``..bacon`` from within the ``spam`` package)." +msgstr "" + +#: ../Doc/library/importlib.rst:1445 +msgid "" +"Find the :term:`spec ` for a module, optionally relative to the " +"specified **package** name. If the module is in :attr:`sys.modules`, then " +"``sys.modules[name].__spec__`` is returned (unless the spec would be " +"``None`` or is not set, in which case :exc:`ValueError` is raised). " +"Otherwise a search using :attr:`sys.meta_path` is done. ``None`` is returned " +"if no spec is found." +msgstr "" + +#: ../Doc/library/importlib.rst:1452 +msgid "" +"If **name** is for a submodule (contains a dot), the parent module is " +"automatically imported." +msgstr "" + +#: ../Doc/library/importlib.rst:1455 +msgid "**name** and **package** work the same as for :func:`import_module`." +msgstr "" + +#: ../Doc/library/importlib.rst:1459 +msgid "" +"Raises :exc:`ModuleNotFoundError` instead of :exc:`AttributeError` if " +"**package** is in fact not a package (i.e. lacks a :attr:`__path__` " +"attribute)." +msgstr "" + +#: ../Doc/library/importlib.rst:1466 +msgid "" +"Create a new module based on **spec** and :meth:`spec.loader.create_module " +"`." +msgstr "" + +#: ../Doc/library/importlib.rst:1469 +msgid "" +"If :meth:`spec.loader.create_module ` " +"does not return ``None``, then any pre-existing attributes will not be " +"reset. Also, no :exc:`AttributeError` will be raised if triggered while " +"accessing **spec** or setting an attribute on the module." +msgstr "" + +#: ../Doc/library/importlib.rst:1474 +msgid "" +"This function is preferred over using :class:`types.ModuleType` to create a " +"new module as **spec** is used to set as many import-controlled attributes " +"on the module as possible." +msgstr "" + +#: ../Doc/library/importlib.rst:1482 +msgid "" +"A :term:`decorator` for :meth:`importlib.abc.Loader.load_module` to handle " +"selecting the proper module object to load with. The decorated method is " +"expected to have a call signature taking two positional arguments (e.g. " +"``load_module(self, module)``) for which the second argument will be the " +"module **object** to be used by the loader. Note that the decorator will not " +"work on static methods because of the assumption of two arguments." +msgstr "" + +#: ../Doc/library/importlib.rst:1491 +msgid "" +"The decorated method will take in the **name** of the module to be loaded as " +"expected for a :term:`loader`. If the module is not found in :data:`sys." +"modules` then a new one is constructed. Regardless of where the module came " +"from, :attr:`__loader__` set to **self** and :attr:`__package__` is set " +"based on what :meth:`importlib.abc.InspectLoader.is_package` returns (if " +"available). These attributes are set unconditionally to support reloading." +msgstr "" + +#: ../Doc/library/importlib.rst:1499 +msgid "" +"If an exception is raised by the decorated method and a module was added to :" +"data:`sys.modules`, then the module will be removed to prevent a partially " +"initialized module from being in left in :data:`sys.modules`. If the module " +"was already in :data:`sys.modules` then it is left alone." +msgstr "" + +#: ../Doc/library/importlib.rst:1504 +msgid "" +":attr:`__loader__` and :attr:`__package__` are automatically set (when " +"possible)." +msgstr "" + +#: ../Doc/library/importlib.rst:1508 +msgid "" +"Set :attr:`__name__`, :attr:`__loader__` :attr:`__package__` unconditionally " +"to support reloading." +msgstr "" + +#: ../Doc/library/importlib.rst:1512 +msgid "" +"The import machinery now directly performs all the functionality provided by " +"this function." +msgstr "" + +#: ../Doc/library/importlib.rst:1518 +msgid "" +"A :term:`decorator` for :meth:`importlib.abc.Loader.load_module` to set the :" +"attr:`__loader__` attribute on the returned module. If the attribute is " +"already set the decorator does nothing. It is assumed that the first " +"positional argument to the wrapped method (i.e. ``self``) is what :attr:" +"`__loader__` should be set to." +msgstr "" + +#: ../Doc/library/importlib.rst:1525 +msgid "" +"Set ``__loader__`` if set to ``None``, as if the attribute does not exist." +msgstr "" + +#: ../Doc/library/importlib.rst:1529 ../Doc/library/importlib.rst:1538 +msgid "The import machinery takes care of this automatically." +msgstr "" + +#: ../Doc/library/importlib.rst:1534 +msgid "" +"A :term:`decorator` for :meth:`importlib.abc.Loader.load_module` to set the :" +"attr:`__package__` attribute on the returned module. If :attr:`__package__` " +"is set and has a value other than ``None`` it will not be changed." +msgstr "" + +#: ../Doc/library/importlib.rst:1543 +msgid "" +"A factory function for creating a :class:`ModuleSpec` instance based on a " +"loader. The parameters have the same meaning as they do for ModuleSpec. " +"The function uses available :term:`loader` APIs, such as :meth:" +"`InspectLoader.is_package`, to fill in any missing information on the spec." +msgstr "" + +#: ../Doc/library/importlib.rst:1553 +msgid "" +"A factory function for creating a :class:`ModuleSpec` instance based on the " +"path to a file. Missing information will be filled in on the spec by making " +"use of loader APIs and by the implication that the module will be file-based." +msgstr "" + +#: ../Doc/library/importlib.rst:1565 +msgid "" +"Return the hash of *source_bytes* as bytes. A hash-based ``.pyc`` file " +"embeds the :func:`source_hash` of the corresponding source file's contents " +"in its header." +msgstr "" + +#: ../Doc/library/importlib.rst:1573 +msgid "" +"A class which postpones the execution of the loader of a module until the " +"module has an attribute accessed." +msgstr "" + +#: ../Doc/library/importlib.rst:1576 +msgid "" +"This class **only** works with loaders that define :meth:`~importlib.abc." +"Loader.exec_module` as control over what module type is used for the module " +"is required. For those same reasons, the loader's :meth:`~importlib.abc." +"Loader.create_module` method must return ``None`` or a type for which its " +"``__class__`` attribute can be mutated along with not using :term:`slots " +"<__slots__>`. Finally, modules which substitute the object placed into :attr:" +"`sys.modules` will not work as there is no way to properly replace the " +"module references throughout the interpreter safely; :exc:`ValueError` is " +"raised if such a substitution is detected." +msgstr "" + +#: ../Doc/library/importlib.rst:1587 +msgid "" +"For projects where startup time is critical, this class allows for " +"potentially minimizing the cost of loading a module if it is never used. For " +"projects where startup time is not essential then use of this class is " +"**heavily** discouraged due to error messages created during loading being " +"postponed and thus occurring out of context." +msgstr "" + +#: ../Doc/library/importlib.rst:1595 +msgid "" +"Began calling :meth:`~importlib.abc.Loader.create_module`, removing the " +"compatibility warning for :class:`importlib.machinery.BuiltinImporter` and :" +"class:`importlib.machinery.ExtensionFileLoader`." +msgstr "" + +#: ../Doc/library/importlib.rst:1602 +msgid "" +"A static method which returns a callable that creates a lazy loader. This is " +"meant to be used in situations where the loader is passed by class instead " +"of by instance. ::" +msgstr "" + +#: ../Doc/library/importlib.rst:1615 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/importlib.rst:1618 +msgid "Importing programmatically" +msgstr "" + +#: ../Doc/library/importlib.rst:1620 +msgid "" +"To programmatically import a module, use :func:`importlib.import_module`. ::" +msgstr "" + +#: ../Doc/library/importlib.rst:1629 +msgid "Checking if a module can be imported" +msgstr "" + +#: ../Doc/library/importlib.rst:1631 +msgid "" +"If you need to find out if a module can be imported without actually doing " +"the import, then you should use :func:`importlib.util.find_spec`. ::" +msgstr "" + +#: ../Doc/library/importlib.rst:1653 +msgid "Importing a source file directly" +msgstr "" + +#: ../Doc/library/importlib.rst:1655 +msgid "" +"To import a Python source file directly, use the following recipe (Python " +"3.5 and newer only)::" +msgstr "" + +#: ../Doc/library/importlib.rst:1675 +msgid "Setting up an importer" +msgstr "" + +#: ../Doc/library/importlib.rst:1677 +msgid "" +"For deep customizations of import, you typically want to implement an :term:" +"`importer`. This means managing both the :term:`finder` and :term:`loader` " +"side of things. For finders there are two flavours to choose from depending " +"on your needs: a :term:`meta path finder` or a :term:`path entry finder`. " +"The former is what you would put on :attr:`sys.meta_path` while the latter " +"is what you create using a :term:`path entry hook` on :attr:`sys.path_hooks` " +"which works with :attr:`sys.path` entries to potentially create a finder. " +"This example will show you how to register your own importers so that import " +"will use them (for creating an importer for yourself, read the documentation " +"for the appropriate classes defined within this package)::" +msgstr "" + +#: ../Doc/library/importlib.rst:1709 +msgid "Approximating :func:`importlib.import_module`" +msgstr "" + +#: ../Doc/library/importlib.rst:1711 +msgid "" +"Import itself is implemented in Python code, making it possible to expose " +"most of the import machinery through importlib. The following helps " +"illustrate the various APIs that importlib exposes by providing an " +"approximate implementation of :func:`importlib.import_module` (Python 3.4 " +"and newer for the importlib usage, Python 3.6 and newer for other parts of " +"the code). ::" +msgstr "" diff --git a/library/index.po b/library/index.po new file mode 100644 index 000000000..83f33cf91 --- /dev/null +++ b/library/index.po @@ -0,0 +1,82 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: 2018-09-28 14:32+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/index.rst:5 +msgid "The Python Standard Library" +msgstr "La bibliothèque standard" + +#: ../Doc/library/index.rst:7 +msgid "" +"While :ref:`reference-index` describes the exact syntax and semantics of the " +"Python language, this library reference manual describes the standard " +"library that is distributed with Python. It also describes some of the " +"optional components that are commonly included in Python distributions." +msgstr "" +"Alors que :ref:`reference-index` décrit exactement la syntaxe et la " +"sémantique du langage Python, ce manuel de référence de la Bibliothèque " +"décrit la bibliothèque standard distribuée avec Python. Il décrit aussi " +"certains composants optionnels typiquement inclus dans les distributions de " +"Python." + +#: ../Doc/library/index.rst:13 +msgid "" +"Python's standard library is very extensive, offering a wide range of " +"facilities as indicated by the long table of contents listed below. The " +"library contains built-in modules (written in C) that provide access to " +"system functionality such as file I/O that would otherwise be inaccessible " +"to Python programmers, as well as modules written in Python that provide " +"standardized solutions for many problems that occur in everyday programming. " +"Some of these modules are explicitly designed to encourage and enhance the " +"portability of Python programs by abstracting away platform-specifics into " +"platform-neutral APIs." +msgstr "" +"La bibliothèque standard de Python est très grande, elle offre un large " +"éventail d'outils comme le montre la longueur de la table des matières ci-" +"dessous. La bibliothèque contient des modules natifs (écrits en C) exposant " +"les fonctionnalités du système telles que les interactions avec les fichiers " +"qui autrement ne seraient pas accessibles aux développeurs Python, ainsi que " +"des modules écrits en Python exposant des solutions standardisées à de " +"nombreux problèmes du quotidien du développeur. Certains de ces modules sont " +"définis explicitement pour encourager et améliorer la portabilité des " +"programmes Python en abstrayant des spécificités sous-jacentes en API " +"neutres." + +#: ../Doc/library/index.rst:23 +msgid "" +"The Python installers for the Windows platform usually include the entire " +"standard library and often also include many additional components. For Unix-" +"like operating systems Python is normally provided as a collection of " +"packages, so it may be necessary to use the packaging tools provided with " +"the operating system to obtain some or all of the optional components." +msgstr "" +"Les installateurs de Python pour Windows incluent généralement la " +"bibliothèque standard en entier, et y ajoutent souvent d'autres composants. " +"Pour les systèmes d'exploitation Unix, Python est typiquement fourni sous " +"forme d'une collection de paquets, il peut donc être nécessaire d'utiliser " +"le gestionnaire de paquets fourni par le système d'exploitation pour obtenir " +"certains composants optionnels." + +#: ../Doc/library/index.rst:30 +msgid "" +"In addition to the standard library, there is a growing collection of " +"several thousand components (from individual programs and modules to " +"packages and entire application development frameworks), available from the " +"`Python Package Index `_." +msgstr "" +"Au delà de la bibliothèque standard, il existe une collection grandissante " +"de plusieurs milliers de composants (des programmes, des modules, ou des " +"*frameworks*), disponibles dans le `Python Package Index `_." diff --git a/library/inspect.po b/library/inspect.po new file mode 100644 index 000000000..78bad953d --- /dev/null +++ b/library/inspect.po @@ -0,0 +1,1681 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2017-05-27 19:55+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/inspect.rst:2 +msgid ":mod:`inspect` --- Inspect live objects" +msgstr "" + +#: ../Doc/library/inspect.rst:10 +msgid "**Source code:** :source:`Lib/inspect.py`" +msgstr "**Code source :** :source:`Lib/inspect.py`" + +#: ../Doc/library/inspect.rst:14 +msgid "" +"The :mod:`inspect` module provides several useful functions to help get " +"information about live objects such as modules, classes, methods, functions, " +"tracebacks, frame objects, and code objects. For example, it can help you " +"examine the contents of a class, retrieve the source code of a method, " +"extract and format the argument list for a function, or get all the " +"information you need to display a detailed traceback." +msgstr "" + +#: ../Doc/library/inspect.rst:21 +msgid "" +"There are four main kinds of services provided by this module: type " +"checking, getting source code, inspecting classes and functions, and " +"examining the interpreter stack." +msgstr "" + +#: ../Doc/library/inspect.rst:29 +msgid "Types and members" +msgstr "" + +#: ../Doc/library/inspect.rst:31 +msgid "" +"The :func:`getmembers` function retrieves the members of an object such as a " +"class or module. The functions whose names begin with \"is\" are mainly " +"provided as convenient choices for the second argument to :func:" +"`getmembers`. They also help you determine when you can expect to find the " +"following special attributes:" +msgstr "" + +#: ../Doc/library/inspect.rst:41 +msgid "Type" +msgstr "Type" + +#: ../Doc/library/inspect.rst:41 +msgid "Attribute" +msgstr "Attribut" + +#: ../Doc/library/inspect.rst:41 +msgid "Description" +msgstr "Description" + +#: ../Doc/library/inspect.rst:43 +msgid "module" +msgstr "module" + +#: ../Doc/library/inspect.rst:43 ../Doc/library/inspect.rst:48 +#: ../Doc/library/inspect.rst:58 ../Doc/library/inspect.rst:73 +#: ../Doc/library/inspect.rst:222 +msgid "__doc__" +msgstr "__doc__" + +#: ../Doc/library/inspect.rst:43 ../Doc/library/inspect.rst:48 +#: ../Doc/library/inspect.rst:58 ../Doc/library/inspect.rst:73 +#: ../Doc/library/inspect.rst:222 +msgid "documentation string" +msgstr "" + +#: ../Doc/library/inspect.rst:45 +msgid "__file__" +msgstr "__file__" + +#: ../Doc/library/inspect.rst:45 +msgid "filename (missing for built-in modules)" +msgstr "" + +#: ../Doc/library/inspect.rst:48 +msgid "class" +msgstr "classe" + +#: ../Doc/library/inspect.rst:50 ../Doc/library/inspect.rst:60 +#: ../Doc/library/inspect.rst:75 ../Doc/library/inspect.rst:191 +#: ../Doc/library/inspect.rst:205 ../Doc/library/inspect.rst:224 +msgid "__name__" +msgstr "__name__" + +#: ../Doc/library/inspect.rst:50 +msgid "name with which this class was defined" +msgstr "" + +#: ../Doc/library/inspect.rst:53 ../Doc/library/inspect.rst:63 +#: ../Doc/library/inspect.rst:78 ../Doc/library/inspect.rst:193 +#: ../Doc/library/inspect.rst:207 ../Doc/library/inspect.rst:227 +msgid "__qualname__" +msgstr "__qualname__" + +#: ../Doc/library/inspect.rst:53 ../Doc/library/inspect.rst:63 +#: ../Doc/library/inspect.rst:78 ../Doc/library/inspect.rst:193 +#: ../Doc/library/inspect.rst:207 ../Doc/library/inspect.rst:227 +msgid "qualified name" +msgstr "nom qualifié" + +#: ../Doc/library/inspect.rst:55 +msgid "__module__" +msgstr "__module__" + +#: ../Doc/library/inspect.rst:55 +msgid "name of module in which this class was defined" +msgstr "" + +#: ../Doc/library/inspect.rst:58 +msgid "method" +msgstr "méthode" + +#: ../Doc/library/inspect.rst:60 +msgid "name with which this method was defined" +msgstr "" + +#: ../Doc/library/inspect.rst:65 +msgid "__func__" +msgstr "__func__" + +#: ../Doc/library/inspect.rst:65 +msgid "function object containing implementation of method" +msgstr "" + +#: ../Doc/library/inspect.rst:69 ../Doc/library/inspect.rst:229 +msgid "__self__" +msgstr "__self__" + +#: ../Doc/library/inspect.rst:69 +msgid "instance to which this method is bound, or ``None``" +msgstr "" + +#: ../Doc/library/inspect.rst:73 +msgid "function" +msgstr "fonction" + +#: ../Doc/library/inspect.rst:75 +msgid "name with which this function was defined" +msgstr "" + +#: ../Doc/library/inspect.rst:80 +msgid "__code__" +msgstr "__code__" + +#: ../Doc/library/inspect.rst:80 +msgid "code object containing compiled function :term:`bytecode`" +msgstr "" + +#: ../Doc/library/inspect.rst:84 +msgid "__defaults__" +msgstr "__defaults__" + +#: ../Doc/library/inspect.rst:84 +msgid "tuple of any default values for positional or keyword parameters" +msgstr "" + +#: ../Doc/library/inspect.rst:88 +msgid "__kwdefaults__" +msgstr "__kwdefaults__" + +#: ../Doc/library/inspect.rst:88 +msgid "mapping of any default values for keyword-only parameters" +msgstr "" + +#: ../Doc/library/inspect.rst:92 +msgid "__globals__" +msgstr "__globals__" + +#: ../Doc/library/inspect.rst:92 +msgid "global namespace in which this function was defined" +msgstr "" + +#: ../Doc/library/inspect.rst:95 +msgid "__annotations__" +msgstr "__annotations__" + +#: ../Doc/library/inspect.rst:95 +msgid "" +"mapping of parameters names to annotations; ``\"return\"`` key is reserved " +"for return annotations." +msgstr "" + +#: ../Doc/library/inspect.rst:101 +msgid "traceback" +msgstr "traceback" + +#: ../Doc/library/inspect.rst:101 +msgid "tb_frame" +msgstr "tb_frame" + +#: ../Doc/library/inspect.rst:101 +msgid "frame object at this level" +msgstr "" + +#: ../Doc/library/inspect.rst:104 +msgid "tb_lasti" +msgstr "tb_lasti" + +#: ../Doc/library/inspect.rst:104 ../Doc/library/inspect.rst:126 +msgid "index of last attempted instruction in bytecode" +msgstr "" + +#: ../Doc/library/inspect.rst:107 +msgid "tb_lineno" +msgstr "tb_lineno" + +#: ../Doc/library/inspect.rst:107 ../Doc/library/inspect.rst:129 +msgid "current line number in Python source code" +msgstr "" + +#: ../Doc/library/inspect.rst:110 +msgid "tb_next" +msgstr "tb_next" + +#: ../Doc/library/inspect.rst:110 +msgid "next inner traceback object (called by this level)" +msgstr "" + +#: ../Doc/library/inspect.rst:114 ../Doc/library/inspect.rst:195 +#: ../Doc/library/inspect.rst:212 +msgid "frame" +msgstr "" + +#: ../Doc/library/inspect.rst:114 +msgid "f_back" +msgstr "f_back" + +#: ../Doc/library/inspect.rst:114 +msgid "next outer frame object (this frame's caller)" +msgstr "" + +#: ../Doc/library/inspect.rst:117 +msgid "f_builtins" +msgstr "f_builtins" + +#: ../Doc/library/inspect.rst:117 +msgid "builtins namespace seen by this frame" +msgstr "" + +#: ../Doc/library/inspect.rst:120 +msgid "f_code" +msgstr "f_code" + +#: ../Doc/library/inspect.rst:120 +msgid "code object being executed in this frame" +msgstr "" + +#: ../Doc/library/inspect.rst:123 +msgid "f_globals" +msgstr "f_globals" + +#: ../Doc/library/inspect.rst:123 +msgid "global namespace seen by this frame" +msgstr "" + +#: ../Doc/library/inspect.rst:126 +msgid "f_lasti" +msgstr "f_lasti" + +#: ../Doc/library/inspect.rst:129 +msgid "f_lineno" +msgstr "f_lineno" + +#: ../Doc/library/inspect.rst:132 +msgid "f_locals" +msgstr "f_locals" + +#: ../Doc/library/inspect.rst:132 +msgid "local namespace seen by this frame" +msgstr "" + +#: ../Doc/library/inspect.rst:135 +msgid "f_trace" +msgstr "f_trace" + +#: ../Doc/library/inspect.rst:135 +msgid "tracing function for this frame, or ``None``" +msgstr "" + +#: ../Doc/library/inspect.rst:138 ../Doc/library/inspect.rst:199 +#: ../Doc/library/inspect.rst:216 +msgid "code" +msgstr "" + +#: ../Doc/library/inspect.rst:138 +msgid "co_argcount" +msgstr "co_argcount" + +#: ../Doc/library/inspect.rst:138 +msgid "" +"number of arguments (not including keyword only arguments, \\* or \\*\\* " +"args)" +msgstr "" + +#: ../Doc/library/inspect.rst:143 +msgid "co_code" +msgstr "co_code" + +#: ../Doc/library/inspect.rst:143 +msgid "string of raw compiled bytecode" +msgstr "" + +#: ../Doc/library/inspect.rst:146 +msgid "co_cellvars" +msgstr "" + +#: ../Doc/library/inspect.rst:146 +msgid "tuple of names of cell variables (referenced by containing scopes)" +msgstr "" + +#: ../Doc/library/inspect.rst:150 +msgid "co_consts" +msgstr "co_consts" + +#: ../Doc/library/inspect.rst:150 +msgid "tuple of constants used in the bytecode" +msgstr "" + +#: ../Doc/library/inspect.rst:153 +msgid "co_filename" +msgstr "co_filename" + +#: ../Doc/library/inspect.rst:153 +msgid "name of file in which this code object was created" +msgstr "" + +#: ../Doc/library/inspect.rst:157 +msgid "co_firstlineno" +msgstr "co_firstlineno" + +#: ../Doc/library/inspect.rst:157 +msgid "number of first line in Python source code" +msgstr "" + +#: ../Doc/library/inspect.rst:160 +msgid "co_flags" +msgstr "co_flags" + +#: ../Doc/library/inspect.rst:160 +msgid "" +"bitmap of ``CO_*`` flags, read more :ref:`here `" +msgstr "" + +#: ../Doc/library/inspect.rst:164 +msgid "co_lnotab" +msgstr "co_lnotab" + +#: ../Doc/library/inspect.rst:164 +msgid "encoded mapping of line numbers to bytecode indices" +msgstr "" + +#: ../Doc/library/inspect.rst:168 +msgid "co_freevars" +msgstr "co_freevars" + +#: ../Doc/library/inspect.rst:168 +msgid "tuple of names of free variables (referenced via a function's closure)" +msgstr "" + +#: ../Doc/library/inspect.rst:172 +msgid "co_kwonlyargcount" +msgstr "co_kwonlyargcount" + +#: ../Doc/library/inspect.rst:172 +msgid "number of keyword only arguments (not including \\*\\* arg)" +msgstr "" + +#: ../Doc/library/inspect.rst:176 +msgid "co_name" +msgstr "co_name" + +#: ../Doc/library/inspect.rst:176 +msgid "name with which this code object was defined" +msgstr "" + +#: ../Doc/library/inspect.rst:179 +msgid "co_names" +msgstr "co_names" + +#: ../Doc/library/inspect.rst:179 +msgid "tuple of names of local variables" +msgstr "" + +#: ../Doc/library/inspect.rst:182 +msgid "co_nlocals" +msgstr "co_nlocals" + +#: ../Doc/library/inspect.rst:182 +msgid "number of local variables" +msgstr "" + +#: ../Doc/library/inspect.rst:184 +msgid "co_stacksize" +msgstr "co_stacksize" + +#: ../Doc/library/inspect.rst:184 +msgid "virtual machine stack space required" +msgstr "" + +#: ../Doc/library/inspect.rst:187 +msgid "co_varnames" +msgstr "co_varnames" + +#: ../Doc/library/inspect.rst:187 +msgid "tuple of names of arguments and local variables" +msgstr "" + +#: ../Doc/library/inspect.rst:191 +msgid "generator" +msgstr "générateur" + +#: ../Doc/library/inspect.rst:191 ../Doc/library/inspect.rst:205 +msgid "name" +msgstr "" + +#: ../Doc/library/inspect.rst:195 +msgid "gi_frame" +msgstr "gi_frame" + +#: ../Doc/library/inspect.rst:197 +msgid "gi_running" +msgstr "gi_running" + +#: ../Doc/library/inspect.rst:197 +msgid "is the generator running?" +msgstr "" + +#: ../Doc/library/inspect.rst:199 +msgid "gi_code" +msgstr "gi_code" + +#: ../Doc/library/inspect.rst:201 +msgid "gi_yieldfrom" +msgstr "gi_yieldfrom" + +#: ../Doc/library/inspect.rst:201 +msgid "object being iterated by ``yield from``, or ``None``" +msgstr "" + +#: ../Doc/library/inspect.rst:205 +msgid "coroutine" +msgstr "coroutine" + +#: ../Doc/library/inspect.rst:209 +msgid "cr_await" +msgstr "cr_await" + +#: ../Doc/library/inspect.rst:209 +msgid "object being awaited on, or ``None``" +msgstr "" + +#: ../Doc/library/inspect.rst:212 +msgid "cr_frame" +msgstr "cr_frame" + +#: ../Doc/library/inspect.rst:214 +msgid "cr_running" +msgstr "cr_running" + +#: ../Doc/library/inspect.rst:214 +msgid "is the coroutine running?" +msgstr "" + +#: ../Doc/library/inspect.rst:216 +msgid "cr_code" +msgstr "cr_code" + +#: ../Doc/library/inspect.rst:218 +msgid "cr_origin" +msgstr "" + +#: ../Doc/library/inspect.rst:218 +msgid "where coroutine was created, or ``None``. See |coroutine-origin-link|" +msgstr "" + +#: ../Doc/library/inspect.rst:222 +msgid "builtin" +msgstr "" + +#: ../Doc/library/inspect.rst:224 +msgid "original name of this function or method" +msgstr "" + +#: ../Doc/library/inspect.rst:229 +msgid "instance to which a method is bound, or ``None``" +msgstr "" + +#: ../Doc/library/inspect.rst:236 +msgid "Add ``__qualname__`` and ``gi_yieldfrom`` attributes to generators." +msgstr "" + +#: ../Doc/library/inspect.rst:238 +msgid "" +"The ``__name__`` attribute of generators is now set from the function name, " +"instead of the code name, and it can now be modified." +msgstr "" + +#: ../Doc/library/inspect.rst:243 +msgid "Add ``cr_origin`` attribute to coroutines." +msgstr "" + +#: ../Doc/library/inspect.rst:247 +msgid "" +"Return all the members of an object in a list of (name, value) pairs sorted " +"by name. If the optional *predicate* argument is supplied, only members for " +"which the predicate returns a true value are included." +msgstr "" + +#: ../Doc/library/inspect.rst:253 +msgid "" +":func:`getmembers` will only return class attributes defined in the " +"metaclass when the argument is a class and those attributes have been listed " +"in the metaclass' custom :meth:`__dir__`." +msgstr "" + +#: ../Doc/library/inspect.rst:260 +msgid "" +"Return the name of the module named by the file *path*, without including " +"the names of enclosing packages. The file extension is checked against all " +"of the entries in :func:`importlib.machinery.all_suffixes`. If it matches, " +"the final path component is returned with the extension removed. Otherwise, " +"``None`` is returned." +msgstr "" + +#: ../Doc/library/inspect.rst:266 +msgid "" +"Note that this function *only* returns a meaningful name for actual Python " +"modules - paths that potentially refer to Python packages will still return " +"``None``." +msgstr "" + +#: ../Doc/library/inspect.rst:270 +msgid "The function is based directly on :mod:`importlib`." +msgstr "" + +#: ../Doc/library/inspect.rst:276 +msgid "Return true if the object is a module." +msgstr "" + +#: ../Doc/library/inspect.rst:281 +msgid "" +"Return true if the object is a class, whether built-in or created in Python " +"code." +msgstr "" + +#: ../Doc/library/inspect.rst:287 +msgid "Return true if the object is a bound method written in Python." +msgstr "" + +#: ../Doc/library/inspect.rst:292 +msgid "" +"Return true if the object is a Python function, which includes functions " +"created by a :term:`lambda` expression." +msgstr "" + +#: ../Doc/library/inspect.rst:298 +msgid "Return true if the object is a Python generator function." +msgstr "" + +#: ../Doc/library/inspect.rst:303 +msgid "Return true if the object is a generator." +msgstr "" + +#: ../Doc/library/inspect.rst:308 +msgid "" +"Return true if the object is a :term:`coroutine function` (a function " +"defined with an :keyword:`async def` syntax)." +msgstr "" + +#: ../Doc/library/inspect.rst:316 +msgid "" +"Return true if the object is a :term:`coroutine` created by an :keyword:" +"`async def` function." +msgstr "" + +#: ../Doc/library/inspect.rst:324 +msgid "Return true if the object can be used in :keyword:`await` expression." +msgstr "" + +#: ../Doc/library/inspect.rst:326 +msgid "" +"Can also be used to distinguish generator-based coroutines from regular " +"generators::" +msgstr "" + +#: ../Doc/library/inspect.rst:343 +msgid "" +"Return true if the object is an :term:`asynchronous generator` function, for " +"example::" +msgstr "" + +#: ../Doc/library/inspect.rst:357 +msgid "" +"Return true if the object is an :term:`asynchronous generator iterator` " +"created by an :term:`asynchronous generator` function." +msgstr "" + +#: ../Doc/library/inspect.rst:364 +msgid "Return true if the object is a traceback." +msgstr "" + +#: ../Doc/library/inspect.rst:369 +msgid "Return true if the object is a frame." +msgstr "" + +#: ../Doc/library/inspect.rst:374 +msgid "Return true if the object is a code." +msgstr "" + +#: ../Doc/library/inspect.rst:379 +msgid "" +"Return true if the object is a built-in function or a bound built-in method." +msgstr "" + +#: ../Doc/library/inspect.rst:384 +msgid "" +"Return true if the object is a user-defined or built-in function or method." +msgstr "" + +#: ../Doc/library/inspect.rst:389 +msgid "Return true if the object is an abstract base class." +msgstr "" + +#: ../Doc/library/inspect.rst:394 +msgid "" +"Return true if the object is a method descriptor, but not if :func:" +"`ismethod`, :func:`isclass`, :func:`isfunction` or :func:`isbuiltin` are " +"true." +msgstr "" + +#: ../Doc/library/inspect.rst:398 +msgid "" +"This, for example, is true of ``int.__add__``. An object passing this test " +"has a :meth:`~object.__get__` method but not a :meth:`~object.__set__` " +"method, but beyond that the set of attributes varies. A :attr:`~definition." +"__name__` attribute is usually sensible, and :attr:`__doc__` often is." +msgstr "" + +#: ../Doc/library/inspect.rst:404 +msgid "" +"Methods implemented via descriptors that also pass one of the other tests " +"return false from the :func:`ismethoddescriptor` test, simply because the " +"other tests promise more -- you can, e.g., count on having the :attr:" +"`__func__` attribute (etc) when an object passes :func:`ismethod`." +msgstr "" + +#: ../Doc/library/inspect.rst:412 +msgid "Return true if the object is a data descriptor." +msgstr "" + +#: ../Doc/library/inspect.rst:414 +msgid "" +"Data descriptors have both a :attr:`~object.__get__` and a :attr:`~object." +"__set__` method. Examples are properties (defined in Python), getsets, and " +"members. The latter two are defined in C and there are more specific tests " +"available for those types, which is robust across Python implementations. " +"Typically, data descriptors will also have :attr:`~definition.__name__` and :" +"attr:`__doc__` attributes (properties, getsets, and members have both of " +"these attributes), but this is not guaranteed." +msgstr "" + +#: ../Doc/library/inspect.rst:425 +msgid "Return true if the object is a getset descriptor." +msgstr "" + +#: ../Doc/library/inspect.rst:429 +msgid "" +"getsets are attributes defined in extension modules via :c:type:" +"`PyGetSetDef` structures. For Python implementations without such types, " +"this method will always return ``False``." +msgstr "" + +#: ../Doc/library/inspect.rst:436 +msgid "Return true if the object is a member descriptor." +msgstr "" + +#: ../Doc/library/inspect.rst:440 +msgid "" +"Member descriptors are attributes defined in extension modules via :c:type:" +"`PyMemberDef` structures. For Python implementations without such types, " +"this method will always return ``False``." +msgstr "" + +#: ../Doc/library/inspect.rst:448 +msgid "Retrieving source code" +msgstr "" + +#: ../Doc/library/inspect.rst:452 +msgid "" +"Get the documentation string for an object, cleaned up with :func:" +"`cleandoc`. If the documentation string for an object is not provided and " +"the object is a class, a method, a property or a descriptor, retrieve the " +"documentation string from the inheritance hierarchy." +msgstr "" + +#: ../Doc/library/inspect.rst:457 +msgid "Documentation strings are now inherited if not overridden." +msgstr "" + +#: ../Doc/library/inspect.rst:463 +msgid "" +"Return in a single string any lines of comments immediately preceding the " +"object's source code (for a class, function, or method), or at the top of " +"the Python source file (if the object is a module). If the object's source " +"code is unavailable, return ``None``. This could happen if the object has " +"been defined in C or the interactive shell." +msgstr "" + +#: ../Doc/library/inspect.rst:472 +msgid "" +"Return the name of the (text or binary) file in which an object was defined. " +"This will fail with a :exc:`TypeError` if the object is a built-in module, " +"class, or function." +msgstr "" + +#: ../Doc/library/inspect.rst:479 +msgid "Try to guess which module an object was defined in." +msgstr "" + +#: ../Doc/library/inspect.rst:484 +msgid "" +"Return the name of the Python source file in which an object was defined. " +"This will fail with a :exc:`TypeError` if the object is a built-in module, " +"class, or function." +msgstr "" + +#: ../Doc/library/inspect.rst:491 +msgid "" +"Return a list of source lines and starting line number for an object. The " +"argument may be a module, class, method, function, traceback, frame, or code " +"object. The source code is returned as a list of the lines corresponding to " +"the object and the line number indicates where in the original source file " +"the first line of code was found. An :exc:`OSError` is raised if the source " +"code cannot be retrieved." +msgstr "" + +#: ../Doc/library/inspect.rst:498 ../Doc/library/inspect.rst:510 +msgid "" +":exc:`OSError` is raised instead of :exc:`IOError`, now an alias of the " +"former." +msgstr "" + +#: ../Doc/library/inspect.rst:505 +msgid "" +"Return the text of the source code for an object. The argument may be a " +"module, class, method, function, traceback, frame, or code object. The " +"source code is returned as a single string. An :exc:`OSError` is raised if " +"the source code cannot be retrieved." +msgstr "" + +#: ../Doc/library/inspect.rst:517 +msgid "" +"Clean up indentation from docstrings that are indented to line up with " +"blocks of code." +msgstr "" + +#: ../Doc/library/inspect.rst:520 +msgid "" +"All leading whitespace is removed from the first line. Any leading " +"whitespace that can be uniformly removed from the second line onwards is " +"removed. Empty lines at the beginning and end are subsequently removed. " +"Also, all tabs are expanded to spaces." +msgstr "" + +#: ../Doc/library/inspect.rst:529 +msgid "Introspecting callables with the Signature object" +msgstr "" + +#: ../Doc/library/inspect.rst:533 +msgid "" +"The Signature object represents the call signature of a callable object and " +"its return annotation. To retrieve a Signature object, use the :func:" +"`signature` function." +msgstr "" + +#: ../Doc/library/inspect.rst:539 +msgid "Return a :class:`Signature` object for the given ``callable``::" +msgstr "" + +#: ../Doc/library/inspect.rst:556 +msgid "" +"Accepts a wide range of Python callables, from plain functions and classes " +"to :func:`functools.partial` objects." +msgstr "" + +#: ../Doc/library/inspect.rst:559 +msgid "" +"Raises :exc:`ValueError` if no signature can be provided, and :exc:" +"`TypeError` if that type of object is not supported." +msgstr "" + +#: ../Doc/library/inspect.rst:562 +msgid "" +"A slash(/) in the signature of a function denotes that the parameters prior " +"to it are positional-only. For more info, see :ref:`the FAQ entry on " +"positional-only parameters `." +msgstr "" + +#: ../Doc/library/inspect.rst:566 +msgid "" +"``follow_wrapped`` parameter. Pass ``False`` to get a signature of " +"``callable`` specifically (``callable.__wrapped__`` will not be used to " +"unwrap decorated callables.)" +msgstr "" + +#: ../Doc/library/inspect.rst:573 +msgid "" +"Some callables may not be introspectable in certain implementations of " +"Python. For example, in CPython, some built-in functions defined in C " +"provide no metadata about their arguments." +msgstr "" + +#: ../Doc/library/inspect.rst:580 +msgid "" +"A Signature object represents the call signature of a function and its " +"return annotation. For each parameter accepted by the function it stores a :" +"class:`Parameter` object in its :attr:`parameters` collection." +msgstr "" + +#: ../Doc/library/inspect.rst:584 +msgid "" +"The optional *parameters* argument is a sequence of :class:`Parameter` " +"objects, which is validated to check that there are no parameters with " +"duplicate names, and that the parameters are in the right order, i.e. " +"positional-only first, then positional-or-keyword, and that parameters with " +"defaults follow parameters without defaults." +msgstr "" + +#: ../Doc/library/inspect.rst:590 +msgid "" +"The optional *return_annotation* argument, can be an arbitrary Python " +"object, is the \"return\" annotation of the callable." +msgstr "" + +#: ../Doc/library/inspect.rst:593 +msgid "" +"Signature objects are *immutable*. Use :meth:`Signature.replace` to make a " +"modified copy." +msgstr "" + +#: ../Doc/library/inspect.rst:596 +msgid "Signature objects are picklable and hashable." +msgstr "" + +#: ../Doc/library/inspect.rst:601 +msgid "A special class-level marker to specify absence of a return annotation." +msgstr "" + +#: ../Doc/library/inspect.rst:605 +msgid "" +"An ordered mapping of parameters' names to the corresponding :class:" +"`Parameter` objects. Parameters appear in strict definition order, " +"including keyword-only parameters." +msgstr "" + +#: ../Doc/library/inspect.rst:609 ../Doc/library/inspect.rst:931 +msgid "" +"Python only explicitly guaranteed that it preserved the declaration order of " +"keyword-only parameters as of version 3.7, although in practice this order " +"had always been preserved in Python 3." +msgstr "" + +#: ../Doc/library/inspect.rst:616 +msgid "" +"The \"return\" annotation for the callable. If the callable has no \"return" +"\" annotation, this attribute is set to :attr:`Signature.empty`." +msgstr "" + +#: ../Doc/library/inspect.rst:621 +msgid "" +"Create a mapping from positional and keyword arguments to parameters. " +"Returns :class:`BoundArguments` if ``*args`` and ``**kwargs`` match the " +"signature, or raises a :exc:`TypeError`." +msgstr "" + +#: ../Doc/library/inspect.rst:627 +msgid "" +"Works the same way as :meth:`Signature.bind`, but allows the omission of " +"some required arguments (mimics :func:`functools.partial` behavior.) " +"Returns :class:`BoundArguments`, or raises a :exc:`TypeError` if the passed " +"arguments do not match the signature." +msgstr "" + +#: ../Doc/library/inspect.rst:634 +msgid "" +"Create a new Signature instance based on the instance replace was invoked " +"on. It is possible to pass different ``parameters`` and/or " +"``return_annotation`` to override the corresponding properties of the base " +"signature. To remove return_annotation from the copied Signature, pass in :" +"attr:`Signature.empty`." +msgstr "" + +#: ../Doc/library/inspect.rst:651 +msgid "" +"Return a :class:`Signature` (or its subclass) object for a given callable " +"``obj``. Pass ``follow_wrapped=False`` to get a signature of ``obj`` " +"without unwrapping its ``__wrapped__`` chain." +msgstr "" + +#: ../Doc/library/inspect.rst:655 +msgid "This method simplifies subclassing of :class:`Signature`::" +msgstr "" + +#: ../Doc/library/inspect.rst:667 +msgid "" +"Parameter objects are *immutable*. Instead of modifying a Parameter object, " +"you can use :meth:`Parameter.replace` to create a modified copy." +msgstr "" + +#: ../Doc/library/inspect.rst:670 +msgid "Parameter objects are picklable and hashable." +msgstr "" + +#: ../Doc/library/inspect.rst:675 +msgid "" +"A special class-level marker to specify absence of default values and " +"annotations." +msgstr "" + +#: ../Doc/library/inspect.rst:680 +msgid "" +"The name of the parameter as a string. The name must be a valid Python " +"identifier." +msgstr "" + +#: ../Doc/library/inspect.rst:685 +msgid "" +"CPython generates implicit parameter names of the form ``.0`` on the code " +"objects used to implement comprehensions and generator expressions." +msgstr "" + +#: ../Doc/library/inspect.rst:689 +msgid "" +"These parameter names are exposed by this module as names like ``implicit0``." +msgstr "" + +#: ../Doc/library/inspect.rst:695 +msgid "" +"The default value for the parameter. If the parameter has no default value, " +"this attribute is set to :attr:`Parameter.empty`." +msgstr "" + +#: ../Doc/library/inspect.rst:700 +msgid "" +"The annotation for the parameter. If the parameter has no annotation, this " +"attribute is set to :attr:`Parameter.empty`." +msgstr "" + +#: ../Doc/library/inspect.rst:705 +msgid "" +"Describes how argument values are bound to the parameter. Possible values " +"(accessible via :class:`Parameter`, like ``Parameter.KEYWORD_ONLY``):" +msgstr "" + +#: ../Doc/library/inspect.rst:711 +msgid "Name" +msgstr "Nom" + +#: ../Doc/library/inspect.rst:711 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/inspect.rst:713 +msgid "*POSITIONAL_ONLY*" +msgstr "" + +#: ../Doc/library/inspect.rst:713 +msgid "Value must be supplied as a positional argument." +msgstr "" + +#: ../Doc/library/inspect.rst:716 +msgid "" +"Python has no explicit syntax for defining positional-only parameters, but " +"many built-in and extension module functions (especially those that accept " +"only one or two parameters) accept them." +msgstr "" + +#: ../Doc/library/inspect.rst:722 +msgid "*POSITIONAL_OR_KEYWORD*" +msgstr "" + +#: ../Doc/library/inspect.rst:722 +msgid "" +"Value may be supplied as either a keyword or positional argument (this is " +"the standard binding behaviour for functions implemented in Python.)" +msgstr "" + +#: ../Doc/library/inspect.rst:727 +msgid "*VAR_POSITIONAL*" +msgstr "" + +#: ../Doc/library/inspect.rst:727 +msgid "" +"A tuple of positional arguments that aren't bound to any other parameter. " +"This corresponds to a ``*args`` parameter in a Python function definition." +msgstr "" + +#: ../Doc/library/inspect.rst:732 +msgid "*KEYWORD_ONLY*" +msgstr "" + +#: ../Doc/library/inspect.rst:732 +msgid "" +"Value must be supplied as a keyword argument. Keyword only parameters are " +"those which appear after a ``*`` or ``*args`` entry in a Python function " +"definition." +msgstr "" + +#: ../Doc/library/inspect.rst:737 +msgid "*VAR_KEYWORD*" +msgstr "" + +#: ../Doc/library/inspect.rst:737 +msgid "" +"A dict of keyword arguments that aren't bound to any other parameter. This " +"corresponds to a ``**kwargs`` parameter in a Python function definition." +msgstr "" + +#: ../Doc/library/inspect.rst:743 +msgid "Example: print all keyword-only arguments without default values::" +msgstr "" + +#: ../Doc/library/inspect.rst:757 +msgid "" +"Create a new Parameter instance based on the instance replaced was invoked " +"on. To override a :class:`Parameter` attribute, pass the corresponding " +"argument. To remove a default value or/and an annotation from a Parameter, " +"pass :attr:`Parameter.empty`." +msgstr "" + +#: ../Doc/library/inspect.rst:775 +msgid "" +"In Python 3.3 Parameter objects were allowed to have ``name`` set to " +"``None`` if their ``kind`` was set to ``POSITIONAL_ONLY``. This is no longer " +"permitted." +msgstr "" + +#: ../Doc/library/inspect.rst:782 +msgid "" +"Result of a :meth:`Signature.bind` or :meth:`Signature.bind_partial` call. " +"Holds the mapping of arguments to the function's parameters." +msgstr "" + +#: ../Doc/library/inspect.rst:787 +msgid "" +"An ordered, mutable mapping (:class:`collections.OrderedDict`) of " +"parameters' names to arguments' values. Contains only explicitly bound " +"arguments. Changes in :attr:`arguments` will reflect in :attr:`args` and :" +"attr:`kwargs`." +msgstr "" + +#: ../Doc/library/inspect.rst:792 +msgid "" +"Should be used in conjunction with :attr:`Signature.parameters` for any " +"argument processing purposes." +msgstr "" + +#: ../Doc/library/inspect.rst:797 +msgid "" +"Arguments for which :meth:`Signature.bind` or :meth:`Signature.bind_partial` " +"relied on a default value are skipped. However, if needed, use :meth:" +"`BoundArguments.apply_defaults` to add them." +msgstr "" + +#: ../Doc/library/inspect.rst:804 +msgid "" +"A tuple of positional arguments values. Dynamically computed from the :attr:" +"`arguments` attribute." +msgstr "" + +#: ../Doc/library/inspect.rst:809 +msgid "" +"A dict of keyword arguments values. Dynamically computed from the :attr:" +"`arguments` attribute." +msgstr "" + +#: ../Doc/library/inspect.rst:814 +msgid "A reference to the parent :class:`Signature` object." +msgstr "" + +#: ../Doc/library/inspect.rst:818 +msgid "Set default values for missing arguments." +msgstr "" + +#: ../Doc/library/inspect.rst:820 +msgid "" +"For variable-positional arguments (``*args``) the default is an empty tuple." +msgstr "" + +#: ../Doc/library/inspect.rst:823 +msgid "" +"For variable-keyword arguments (``**kwargs``) the default is an empty dict." +msgstr "" + +#: ../Doc/library/inspect.rst:836 +msgid "" +"The :attr:`args` and :attr:`kwargs` properties can be used to invoke " +"functions::" +msgstr "" + +#: ../Doc/library/inspect.rst:849 +msgid ":pep:`362` - Function Signature Object." +msgstr "" + +#: ../Doc/library/inspect.rst:850 +msgid "The detailed specification, implementation details and examples." +msgstr "" + +#: ../Doc/library/inspect.rst:856 +msgid "Classes and functions" +msgstr "Classes et fonctions" + +#: ../Doc/library/inspect.rst:860 +msgid "" +"Arrange the given list of classes into a hierarchy of nested lists. Where a " +"nested list appears, it contains classes derived from the class whose entry " +"immediately precedes the list. Each entry is a 2-tuple containing a class " +"and a tuple of its base classes. If the *unique* argument is true, exactly " +"one entry appears in the returned structure for each class in the given " +"list. Otherwise, classes using multiple inheritance and their descendants " +"will appear multiple times." +msgstr "" + +#: ../Doc/library/inspect.rst:871 +msgid "" +"Get the names and default values of a Python function's parameters. A :term:" +"`named tuple` ``ArgSpec(args, varargs, keywords, defaults)`` is returned. " +"*args* is a list of the parameter names. *varargs* and *keywords* are the " +"names of the ``*`` and ``**`` parameters or ``None``. *defaults* is a tuple " +"of default argument values or ``None`` if there are no default arguments; if " +"this tuple has *n* elements, they correspond to the last *n* elements listed " +"in *args*." +msgstr "" + +#: ../Doc/library/inspect.rst:879 +msgid "" +"Use :func:`getfullargspec` for an updated API that is usually a drop-in " +"replacement, but also correctly handles function annotations and keyword-" +"only parameters." +msgstr "" + +#: ../Doc/library/inspect.rst:884 +msgid "" +"Alternatively, use :func:`signature` and :ref:`Signature Object `, which provide a more structured introspection API for " +"callables." +msgstr "" + +#: ../Doc/library/inspect.rst:891 +msgid "" +"Get the names and default values of a Python function's parameters. A :term:" +"`named tuple` is returned:" +msgstr "" + +#: ../Doc/library/inspect.rst:894 +msgid "" +"``FullArgSpec(args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, " +"annotations)``" +msgstr "" + +#: ../Doc/library/inspect.rst:897 +msgid "" +"*args* is a list of the positional parameter names. *varargs* is the name of " +"the ``*`` parameter or ``None`` if arbitrary positional arguments are not " +"accepted. *varkw* is the name of the ``**`` parameter or ``None`` if " +"arbitrary keyword arguments are not accepted. *defaults* is an *n*-tuple of " +"default argument values corresponding to the last *n* positional parameters, " +"or ``None`` if there are no such defaults defined. *kwonlyargs* is a list of " +"keyword-only parameter names in declaration order. *kwonlydefaults* is a " +"dictionary mapping parameter names from *kwonlyargs* to the default values " +"used if no argument is supplied. *annotations* is a dictionary mapping " +"parameter names to annotations. The special key ``\"return\"`` is used to " +"report the function return value annotation (if any)." +msgstr "" + +#: ../Doc/library/inspect.rst:912 +msgid "" +"Note that :func:`signature` and :ref:`Signature Object ` provide the recommended API for callable introspection, and support " +"additional behaviours (like positional-only arguments) that are sometimes " +"encountered in extension module APIs. This function is retained primarily " +"for use in code that needs to maintain compatibility with the Python 2 " +"``inspect`` module API." +msgstr "" + +#: ../Doc/library/inspect.rst:919 +msgid "" +"This function is now based on :func:`signature`, but still ignores " +"``__wrapped__`` attributes and includes the already bound first parameter in " +"the signature output for bound methods." +msgstr "" + +#: ../Doc/library/inspect.rst:924 +msgid "" +"This method was previously documented as deprecated in favour of :func:" +"`signature` in Python 3.5, but that decision has been reversed in order to " +"restore a clearly supported standard interface for single-source Python 2/3 " +"code migrating away from the legacy :func:`getargspec` API." +msgstr "" + +#: ../Doc/library/inspect.rst:939 +msgid "" +"Get information about arguments passed into a particular frame. A :term:" +"`named tuple` ``ArgInfo(args, varargs, keywords, locals)`` is returned. " +"*args* is a list of the argument names. *varargs* and *keywords* are the " +"names of the ``*`` and ``**`` arguments or ``None``. *locals* is the locals " +"dictionary of the given frame." +msgstr "" + +#: ../Doc/library/inspect.rst:946 ../Doc/library/inspect.rst:983 +msgid "This function was inadvertently marked as deprecated in Python 3.5." +msgstr "" + +#: ../Doc/library/inspect.rst:951 +msgid "" +"Format a pretty argument spec from the values returned by :func:" +"`getfullargspec`." +msgstr "" + +#: ../Doc/library/inspect.rst:954 +msgid "" +"The first seven arguments are (``args``, ``varargs``, ``varkw``, " +"``defaults``, ``kwonlyargs``, ``kwonlydefaults``, ``annotations``)." +msgstr "" + +#: ../Doc/library/inspect.rst:957 +msgid "" +"The other six arguments are functions that are called to turn argument " +"names, ``*`` argument name, ``**`` argument name, default values, return " +"annotation and individual annotations into strings, respectively." +msgstr "" + +#: ../Doc/library/inspect.rst:961 +msgid "For example:" +msgstr "Par exemple :" + +#: ../Doc/library/inspect.rst:970 +msgid "" +"Use :func:`signature` and :ref:`Signature Object `, which provide a better introspecting API for callables." +msgstr "" + +#: ../Doc/library/inspect.rst:978 +msgid "" +"Format a pretty argument spec from the four values returned by :func:" +"`getargvalues`. The format\\* arguments are the corresponding optional " +"formatting functions that are called to turn names and values into strings." +msgstr "" + +#: ../Doc/library/inspect.rst:988 +msgid "" +"Return a tuple of class cls's base classes, including cls, in method " +"resolution order. No class appears more than once in this tuple. Note that " +"the method resolution order depends on cls's type. Unless a very peculiar " +"user-defined metatype is in use, cls will be the first element of the tuple." +msgstr "" + +#: ../Doc/library/inspect.rst:996 +msgid "" +"Bind the *args* and *kwds* to the argument names of the Python function or " +"method *func*, as if it was called with them. For bound methods, bind also " +"the first argument (typically named ``self``) to the associated instance. A " +"dict is returned, mapping the argument names (including the names of the " +"``*`` and ``**`` arguments, if any) to their values from *args* and *kwds*. " +"In case of invoking *func* incorrectly, i.e. whenever ``func(*args, " +"**kwds)`` would raise an exception because of incompatible signature, an " +"exception of the same type and the same or similar message is raised. For " +"example::" +msgstr "" + +#: ../Doc/library/inspect.rst:1019 +msgid "Use :meth:`Signature.bind` and :meth:`Signature.bind_partial` instead." +msgstr "" + +#: ../Doc/library/inspect.rst:1025 +msgid "" +"Get the mapping of external name references in a Python function or method " +"*func* to their current values. A :term:`named tuple` " +"``ClosureVars(nonlocals, globals, builtins, unbound)`` is returned. " +"*nonlocals* maps referenced names to lexical closure variables, *globals* to " +"the function's module globals and *builtins* to the builtins visible from " +"the function body. *unbound* is the set of names referenced in the function " +"that could not be resolved at all given the current module globals and " +"builtins." +msgstr "" + +#: ../Doc/library/inspect.rst:1034 +msgid "" +":exc:`TypeError` is raised if *func* is not a Python function or method." +msgstr "" + +#: ../Doc/library/inspect.rst:1041 +msgid "" +"Get the object wrapped by *func*. It follows the chain of :attr:" +"`__wrapped__` attributes returning the last object in the chain." +msgstr "" + +#: ../Doc/library/inspect.rst:1044 +msgid "" +"*stop* is an optional callback accepting an object in the wrapper chain as " +"its sole argument that allows the unwrapping to be terminated early if the " +"callback returns a true value. If the callback never returns a true value, " +"the last object in the chain is returned as usual. For example, :func:" +"`signature` uses this to stop unwrapping if any object in the chain has a " +"``__signature__`` attribute defined." +msgstr "" + +#: ../Doc/library/inspect.rst:1051 +msgid ":exc:`ValueError` is raised if a cycle is encountered." +msgstr "" + +#: ../Doc/library/inspect.rst:1059 +msgid "The interpreter stack" +msgstr "" + +#: ../Doc/library/inspect.rst:1061 +msgid "" +"When the following functions return \"frame records,\" each record is a :" +"term:`named tuple` ``FrameInfo(frame, filename, lineno, function, " +"code_context, index)``. The tuple contains the frame object, the filename, " +"the line number of the current line, the function name, a list of lines of " +"context from the source code, and the index of the current line within that " +"list." +msgstr "" + +#: ../Doc/library/inspect.rst:1069 +msgid "Return a named tuple instead of a tuple." +msgstr "" + +#: ../Doc/library/inspect.rst:1074 +msgid "" +"Keeping references to frame objects, as found in the first element of the " +"frame records these functions return, can cause your program to create " +"reference cycles. Once a reference cycle has been created, the lifespan of " +"all objects which can be accessed from the objects which form the cycle can " +"become much longer even if Python's optional cycle detector is enabled. If " +"such cycles must be created, it is important to ensure they are explicitly " +"broken to avoid the delayed destruction of objects and increased memory " +"consumption which occurs." +msgstr "" + +#: ../Doc/library/inspect.rst:1082 +msgid "" +"Though the cycle detector will catch these, destruction of the frames (and " +"local variables) can be made deterministic by removing the cycle in a :" +"keyword:`finally` clause. This is also important if the cycle detector was " +"disabled when Python was compiled or using :func:`gc.disable`. For example::" +msgstr "" + +#: ../Doc/library/inspect.rst:1094 +msgid "" +"If you want to keep the frame around (for example to print a traceback " +"later), you can also break reference cycles by using the :meth:`frame.clear` " +"method." +msgstr "" + +#: ../Doc/library/inspect.rst:1098 +msgid "" +"The optional *context* argument supported by most of these functions " +"specifies the number of lines of context to return, which are centered " +"around the current line." +msgstr "" + +#: ../Doc/library/inspect.rst:1105 +msgid "" +"Get information about a frame or traceback object. A :term:`named tuple` " +"``Traceback(filename, lineno, function, code_context, index)`` is returned." +msgstr "" + +#: ../Doc/library/inspect.rst:1111 +msgid "" +"Get a list of frame records for a frame and all outer frames. These frames " +"represent the calls that lead to the creation of *frame*. The first entry in " +"the returned list represents *frame*; the last entry represents the " +"outermost call on *frame*'s stack." +msgstr "" + +#: ../Doc/library/inspect.rst:1116 ../Doc/library/inspect.rst:1129 +#: ../Doc/library/inspect.rst:1153 ../Doc/library/inspect.rst:1166 +msgid "" +"A list of :term:`named tuples ` ``FrameInfo(frame, filename, " +"lineno, function, code_context, index)`` is returned." +msgstr "" + +#: ../Doc/library/inspect.rst:1124 +msgid "" +"Get a list of frame records for a traceback's frame and all inner frames. " +"These frames represent calls made as a consequence of *frame*. The first " +"entry in the list represents *traceback*; the last entry represents where " +"the exception was raised." +msgstr "" + +#: ../Doc/library/inspect.rst:1137 +msgid "Return the frame object for the caller's stack frame." +msgstr "" + +#: ../Doc/library/inspect.rst:1141 +msgid "" +"This function relies on Python stack frame support in the interpreter, which " +"isn't guaranteed to exist in all implementations of Python. If running in " +"an implementation without Python stack frame support this function returns " +"``None``." +msgstr "" + +#: ../Doc/library/inspect.rst:1149 +msgid "" +"Return a list of frame records for the caller's stack. The first entry in " +"the returned list represents the caller; the last entry represents the " +"outermost call on the stack." +msgstr "" + +#: ../Doc/library/inspect.rst:1161 +msgid "" +"Return a list of frame records for the stack between the current frame and " +"the frame in which an exception currently being handled was raised in. The " +"first entry in the list represents the caller; the last entry represents " +"where the exception was raised." +msgstr "" + +#: ../Doc/library/inspect.rst:1173 +msgid "Fetching attributes statically" +msgstr "" + +#: ../Doc/library/inspect.rst:1175 +msgid "" +"Both :func:`getattr` and :func:`hasattr` can trigger code execution when " +"fetching or checking for the existence of attributes. Descriptors, like " +"properties, will be invoked and :meth:`__getattr__` and :meth:" +"`__getattribute__` may be called." +msgstr "" + +#: ../Doc/library/inspect.rst:1180 +msgid "" +"For cases where you want passive introspection, like documentation tools, " +"this can be inconvenient. :func:`getattr_static` has the same signature as :" +"func:`getattr` but avoids executing code when it fetches attributes." +msgstr "" + +#: ../Doc/library/inspect.rst:1186 +msgid "" +"Retrieve attributes without triggering dynamic lookup via the descriptor " +"protocol, :meth:`__getattr__` or :meth:`__getattribute__`." +msgstr "" + +#: ../Doc/library/inspect.rst:1189 +msgid "" +"Note: this function may not be able to retrieve all attributes that getattr " +"can fetch (like dynamically created attributes) and may find attributes that " +"getattr can't (like descriptors that raise AttributeError). It can also " +"return descriptors objects instead of instance members." +msgstr "" + +#: ../Doc/library/inspect.rst:1195 +msgid "" +"If the instance :attr:`~object.__dict__` is shadowed by another member (for " +"example a property) then this function will be unable to find instance " +"members." +msgstr "" + +#: ../Doc/library/inspect.rst:1201 +msgid "" +":func:`getattr_static` does not resolve descriptors, for example slot " +"descriptors or getset descriptors on objects implemented in C. The " +"descriptor object is returned instead of the underlying attribute." +msgstr "" + +#: ../Doc/library/inspect.rst:1205 +msgid "" +"You can handle these with code like the following. Note that for arbitrary " +"getset descriptors invoking these may trigger code execution::" +msgstr "" + +#: ../Doc/library/inspect.rst:1231 +msgid "Current State of Generators and Coroutines" +msgstr "" + +#: ../Doc/library/inspect.rst:1233 +msgid "" +"When implementing coroutine schedulers and for other advanced uses of " +"generators, it is useful to determine whether a generator is currently " +"executing, is waiting to start or resume or execution, or has already " +"terminated. :func:`getgeneratorstate` allows the current state of a " +"generator to be determined easily." +msgstr "" + +#: ../Doc/library/inspect.rst:1241 +msgid "Get current state of a generator-iterator." +msgstr "" + +#: ../Doc/library/inspect.rst:1247 ../Doc/library/inspect.rst:1262 +msgid "Possible states are:" +msgstr "" + +#: ../Doc/library/inspect.rst:1244 +msgid "GEN_CREATED: Waiting to start execution." +msgstr "" + +#: ../Doc/library/inspect.rst:1245 +msgid "GEN_RUNNING: Currently being executed by the interpreter." +msgstr "" + +#: ../Doc/library/inspect.rst:1246 +msgid "GEN_SUSPENDED: Currently suspended at a yield expression." +msgstr "" + +#: ../Doc/library/inspect.rst:1247 +msgid "GEN_CLOSED: Execution has completed." +msgstr "" + +#: ../Doc/library/inspect.rst:1253 +msgid "" +"Get current state of a coroutine object. The function is intended to be " +"used with coroutine objects created by :keyword:`async def` functions, but " +"will accept any coroutine-like object that has ``cr_running`` and " +"``cr_frame`` attributes." +msgstr "" + +#: ../Doc/library/inspect.rst:1259 +msgid "CORO_CREATED: Waiting to start execution." +msgstr "" + +#: ../Doc/library/inspect.rst:1260 +msgid "CORO_RUNNING: Currently being executed by the interpreter." +msgstr "" + +#: ../Doc/library/inspect.rst:1261 +msgid "CORO_SUSPENDED: Currently suspended at an await expression." +msgstr "" + +#: ../Doc/library/inspect.rst:1262 +msgid "CORO_CLOSED: Execution has completed." +msgstr "" + +#: ../Doc/library/inspect.rst:1266 +msgid "" +"The current internal state of the generator can also be queried. This is " +"mostly useful for testing purposes, to ensure that internal state is being " +"updated as expected:" +msgstr "" + +#: ../Doc/library/inspect.rst:1272 +msgid "" +"Get the mapping of live local variables in *generator* to their current " +"values. A dictionary is returned that maps from variable names to values. " +"This is the equivalent of calling :func:`locals` in the body of the " +"generator, and all the same caveats apply." +msgstr "" + +#: ../Doc/library/inspect.rst:1277 +msgid "" +"If *generator* is a :term:`generator` with no currently associated frame, " +"then an empty dictionary is returned. :exc:`TypeError` is raised if " +"*generator* is not a Python generator object." +msgstr "" + +#: ../Doc/library/inspect.rst:1283 +msgid "" +"This function relies on the generator exposing a Python stack frame for " +"introspection, which isn't guaranteed to be the case in all implementations " +"of Python. In such cases, this function will always return an empty " +"dictionary." +msgstr "" + +#: ../Doc/library/inspect.rst:1292 +msgid "" +"This function is analogous to :func:`~inspect.getgeneratorlocals`, but works " +"for coroutine objects created by :keyword:`async def` functions." +msgstr "" + +#: ../Doc/library/inspect.rst:1301 +msgid "Code Objects Bit Flags" +msgstr "" + +#: ../Doc/library/inspect.rst:1303 +msgid "" +"Python code objects have a ``co_flags`` attribute, which is a bitmap of the " +"following flags:" +msgstr "" + +#: ../Doc/library/inspect.rst:1308 +msgid "The code object is optimized, using fast locals." +msgstr "" + +#: ../Doc/library/inspect.rst:1312 +msgid "" +"If set, a new dict will be created for the frame's ``f_locals`` when the " +"code object is executed." +msgstr "" + +#: ../Doc/library/inspect.rst:1317 +msgid "The code object has a variable positional parameter (``*args``-like)." +msgstr "" + +#: ../Doc/library/inspect.rst:1321 +msgid "The code object has a variable keyword parameter (``**kwargs``-like)." +msgstr "" + +#: ../Doc/library/inspect.rst:1325 +msgid "The flag is set when the code object is a nested function." +msgstr "" + +#: ../Doc/library/inspect.rst:1329 +msgid "" +"The flag is set when the code object is a generator function, i.e. a " +"generator object is returned when the code object is executed." +msgstr "" + +#: ../Doc/library/inspect.rst:1334 +msgid "The flag is set if there are no free or cell variables." +msgstr "" + +#: ../Doc/library/inspect.rst:1338 +msgid "" +"The flag is set when the code object is a coroutine function. When the code " +"object is executed it returns a coroutine object. See :pep:`492` for more " +"details." +msgstr "" + +#: ../Doc/library/inspect.rst:1346 +msgid "" +"The flag is used to transform generators into generator-based coroutines. " +"Generator objects with this flag can be used in ``await`` expression, and " +"can ``yield from`` coroutine objects. See :pep:`492` for more details." +msgstr "" + +#: ../Doc/library/inspect.rst:1355 +msgid "" +"The flag is set when the code object is an asynchronous generator function. " +"When the code object is executed it returns an asynchronous generator " +"object. See :pep:`525` for more details." +msgstr "" + +#: ../Doc/library/inspect.rst:1362 +msgid "" +"The flags are specific to CPython, and may not be defined in other Python " +"implementations. Furthermore, the flags are an implementation detail, and " +"can be removed or deprecated in future Python releases. It's recommended to " +"use public APIs from the :mod:`inspect` module for any introspection needs." +msgstr "" + +#: ../Doc/library/inspect.rst:1372 +msgid "Command Line Interface" +msgstr "Interface en ligne de commande" + +#: ../Doc/library/inspect.rst:1374 +msgid "" +"The :mod:`inspect` module also provides a basic introspection capability " +"from the command line." +msgstr "" + +#: ../Doc/library/inspect.rst:1379 +msgid "" +"By default, accepts the name of a module and prints the source of that " +"module. A class or function within the module can be printed instead by " +"appended a colon and the qualified name of the target object." +msgstr "" + +#: ../Doc/library/inspect.rst:1385 +msgid "" +"Print information about the specified object rather than the source code" +msgstr "" + +#~ msgid "f_restricted" +#~ msgstr "f_restricted" diff --git a/library/internet.po b/library/internet.po new file mode 100644 index 000000000..d974af30d --- /dev/null +++ b/library/internet.po @@ -0,0 +1,33 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-28 13:13+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/internet.rst:5 +msgid "Internet Protocols and Support" +msgstr "Gestion des protocoles internet" + +#: ../Doc/library/internet.rst:14 +msgid "" +"The modules described in this chapter implement Internet protocols and " +"support for related technology. They are all implemented in Python. Most of " +"these modules require the presence of the system-dependent module :mod:" +"`socket`, which is currently supported on most popular platforms. Here is " +"an overview:" +msgstr "" +"Les modules documentés dans ce chapitre implémentent des protocoles relatifs " +"à Internet et à ses technologies relatives. Ils sont tous implémentés en " +"Python. La majorité de ces modules nécessitent la présence du module :mod:" +"`socket` lui même dépendant du système, mais fourni sur la plupart des " +"plateformes populaires. Voici une vue d'ensemble :" diff --git a/library/intro.po b/library/intro.po new file mode 100644 index 000000000..468193078 --- /dev/null +++ b/library/intro.po @@ -0,0 +1,144 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-02-27 11:44+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/intro.rst:5 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/library/intro.rst:7 +msgid "The \"Python library\" contains several different kinds of components." +msgstr "" +"La \"Bibliothèque Python\" contient divers composants dans différentes " +"catégories." + +#: ../Doc/library/intro.rst:9 +msgid "" +"It contains data types that would normally be considered part of the \"core" +"\" of a language, such as numbers and lists. For these types, the Python " +"language core defines the form of literals and places some constraints on " +"their semantics, but does not fully define the semantics. (On the other " +"hand, the language core does define syntactic properties like the spelling " +"and priorities of operators.)" +msgstr "" +"Elle contient des types de données qui seraient normalement considérés comme " +"\"fondamentaux\" au langage, tel que les nombres et les listes. Pour ces " +"types, le cœur du langage en définit les écritures littérales et impose " +"quelques contraintes sémantiques, sans les définir exhaustivement. " +"(Cependant le cœur du langage impose quelques propriétés comme l'orthographe " +"des attributs ou les caractéristiques des opérateurs.)" + +#: ../Doc/library/intro.rst:15 +msgid "" +"The library also contains built-in functions and exceptions --- objects that " +"can be used by all Python code without the need of an :keyword:`import` " +"statement. Some of these are defined by the core language, but many are not " +"essential for the core semantics and are only described here." +msgstr "" +"La bibliothèque contient aussi des fonctions et des exceptions natives, " +"pouvant être utilisées par tout code Python sans :keyword:`import`. " +"Certaines sont définies par le noyau de Python, bien qu'elles ne soient pas " +"toutes essentielles." + +#: ../Doc/library/intro.rst:20 +msgid "" +"The bulk of the library, however, consists of a collection of modules. There " +"are many ways to dissect this collection. Some modules are written in C and " +"built in to the Python interpreter; others are written in Python and " +"imported in source form. Some modules provide interfaces that are highly " +"specific to Python, like printing a stack trace; some provide interfaces " +"that are specific to particular operating systems, such as access to " +"specific hardware; others provide interfaces that are specific to a " +"particular application domain, like the World Wide Web. Some modules are " +"available in all versions and ports of Python; others are only available " +"when the underlying system supports or requires them; yet others are " +"available only when a particular configuration option was chosen at the time " +"when Python was compiled and installed." +msgstr "" +"La grande majorité de la bibliothèque consiste cependant en une collection " +"de modules. Cette collection peut être parcourue de différentes manières. " +"Certains modules sont rédigés en C et inclus dans l'interpréteur Python, " +"d'autres sont écrits en Python et leur source est importée. Certains modules " +"fournissent des interfaces extrêmement spécifiques à Python, tel que " +"l'affichage d'une pile d'appels, d'autres fournissent des interfaces " +"spécifiques à un système d'exploitation, comme l'accès à du matériel " +"spécifique. D'autres fournissent des interfaces spécifiques à un domaine " +"d'application, comme le *World Wide Web*. Certains modules sont disponibles " +"dans toutes les versions et implémentations de Python, d'autres ne sont " +"disponibles que si le système sous-jacent les gère ou en a besoin. Enfin, " +"d'autres ne sont disponibles que si Python à été compilé avec une certaine " +"option." + +#: ../Doc/library/intro.rst:32 +msgid "" +"This manual is organized \"from the inside out:\" it first describes the " +"built-in functions, data types and exceptions, and finally the modules, " +"grouped in chapters of related modules." +msgstr "" +"Cette documentation organise les modules \"de l'intérieur vers l'extérieur" +"\", documentant en premier les fonctions natives, les types de données et " +"exceptions, puis les modules, groupés par chapitre, par thématiques." + +#: ../Doc/library/intro.rst:36 +msgid "" +"This means that if you start reading this manual from the start, and skip to " +"the next chapter when you get bored, you will get a reasonable overview of " +"the available modules and application areas that are supported by the Python " +"library. Of course, you don't *have* to read it like a novel --- you can " +"also browse the table of contents (in front of the manual), or look for a " +"specific function, module or term in the index (in the back). And finally, " +"if you enjoy learning about random subjects, you choose a random page number " +"(see module :mod:`random`) and read a section or two. Regardless of the " +"order in which you read the sections of this manual, it helps to start with " +"chapter :ref:`built-in-funcs`, as the remainder of the manual assumes " +"familiarity with this material." +msgstr "" +"Ça signifie que si vous commencez à lire cette documentation du début, et " +"sautez au chapitre suivant lorsqu'elle vous ennuie, vous aurez un aperçu " +"global des modules et domaines couverts par cette bibliothèque. Bien sûr " +"vous n'avez pas à la lire comme un roman, vous pouvez simplement survoler la " +"table des matières (au début), ou chercher une fonction, un module, ou un " +"mot dans l'index (à la fin). Et si vous appréciez apprendre sur des sujets " +"au hasard, choisissez une page au hasard (avec le module :mod:`random`) et " +"lisez un chapitre ou deux. Peu importe l'ordre que vous adopterez, commencez " +"par le chapitre :ref:`built-in-funcs`, car les autres chapitres présument " +"que vous en avez une bonne connaissance." + +#: ../Doc/library/intro.rst:48 +msgid "Let the show begin!" +msgstr "Que le spectacle commence !" + +#: ../Doc/library/intro.rst:54 +msgid "Notes on availability" +msgstr "Notes sur la disponibilité" + +#: ../Doc/library/intro.rst:56 +msgid "" +"An \"Availability: Unix\" note means that this function is commonly found on " +"Unix systems. It does not make any claims about its existence on a specific " +"operating system." +msgstr "" +"Une note \"Disponibilité : Unix \" signifie que cette fonction est " +"communément implémentée dans les systèmes Unix. Une telle note ne prétend " +"pas l'existence de la fonction sur un système d'exploitation particulier." + +#: ../Doc/library/intro.rst:60 +msgid "" +"If not separately noted, all functions that claim \"Availability: Unix\" are " +"supported on Mac OS X, which builds on a Unix core." +msgstr "" +"Si ce n'est pas mentionné séparément, toutes les fonctions se réclamant " +"\"Disponibilité : Unix\" sont gérées sur Mac OS X, qui est basé sur Unix." diff --git a/library/io.po b/library/io.po new file mode 100644 index 000000000..1b869f532 --- /dev/null +++ b/library/io.po @@ -0,0 +1,1413 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2018-07-03 11:13+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/io.rst:2 +msgid ":mod:`io` --- Core tools for working with streams" +msgstr "" + +#: ../Doc/library/io.rst:15 +msgid "**Source code:** :source:`Lib/io.py`" +msgstr "" + +#: ../Doc/library/io.rst:22 +msgid "Overview" +msgstr "Aperçu" + +#: ../Doc/library/io.rst:27 +msgid "" +"The :mod:`io` module provides Python's main facilities for dealing with " +"various types of I/O. There are three main types of I/O: *text I/O*, " +"*binary I/O* and *raw I/O*. These are generic categories, and various " +"backing stores can be used for each of them. A concrete object belonging to " +"any of these categories is called a :term:`file object`. Other common terms " +"are *stream* and *file-like object*." +msgstr "" + +#: ../Doc/library/io.rst:34 +msgid "" +"Independent of its category, each concrete stream object will also have " +"various capabilities: it can be read-only, write-only, or read-write. It can " +"also allow arbitrary random access (seeking forwards or backwards to any " +"location), or only sequential access (for example in the case of a socket or " +"pipe)." +msgstr "" + +#: ../Doc/library/io.rst:40 +msgid "" +"All streams are careful about the type of data you give to them. For " +"example giving a :class:`str` object to the ``write()`` method of a binary " +"stream will raise a :exc:`TypeError`. So will giving a :class:`bytes` " +"object to the ``write()`` method of a text stream." +msgstr "" + +#: ../Doc/library/io.rst:45 +msgid "" +"Operations that used to raise :exc:`IOError` now raise :exc:`OSError`, " +"since :exc:`IOError` is now an alias of :exc:`OSError`." +msgstr "" + +#: ../Doc/library/io.rst:51 ../Doc/library/io.rst:755 +#: ../Doc/library/io.rst:1010 +msgid "Text I/O" +msgstr "" + +#: ../Doc/library/io.rst:53 +msgid "" +"Text I/O expects and produces :class:`str` objects. This means that " +"whenever the backing store is natively made of bytes (such as in the case of " +"a file), encoding and decoding of data is made transparently as well as " +"optional translation of platform-specific newline characters." +msgstr "" + +#: ../Doc/library/io.rst:58 +msgid "" +"The easiest way to create a text stream is with :meth:`open()`, optionally " +"specifying an encoding::" +msgstr "" + +#: ../Doc/library/io.rst:63 +msgid "" +"In-memory text streams are also available as :class:`StringIO` objects::" +msgstr "" + +#: ../Doc/library/io.rst:67 +msgid "" +"The text stream API is described in detail in the documentation of :class:" +"`TextIOBase`." +msgstr "" + +#: ../Doc/library/io.rst:72 ../Doc/library/io.rst:998 +msgid "Binary I/O" +msgstr "" + +#: ../Doc/library/io.rst:74 +msgid "" +"Binary I/O (also called *buffered I/O*) expects :term:`bytes-like objects " +"` and produces :class:`bytes` objects. No encoding, " +"decoding, or newline translation is performed. This category of streams can " +"be used for all kinds of non-text data, and also when manual control over " +"the handling of text data is desired." +msgstr "" + +#: ../Doc/library/io.rst:80 +msgid "" +"The easiest way to create a binary stream is with :meth:`open()` with " +"``'b'`` in the mode string::" +msgstr "" + +#: ../Doc/library/io.rst:85 +msgid "" +"In-memory binary streams are also available as :class:`BytesIO` objects::" +msgstr "" + +#: ../Doc/library/io.rst:89 +msgid "" +"The binary stream API is described in detail in the docs of :class:" +"`BufferedIOBase`." +msgstr "" + +#: ../Doc/library/io.rst:92 +msgid "" +"Other library modules may provide additional ways to create text or binary " +"streams. See :meth:`socket.socket.makefile` for example." +msgstr "" + +#: ../Doc/library/io.rst:97 +msgid "Raw I/O" +msgstr "" + +#: ../Doc/library/io.rst:99 +msgid "" +"Raw I/O (also called *unbuffered I/O*) is generally used as a low-level " +"building-block for binary and text streams; it is rarely useful to directly " +"manipulate a raw stream from user code. Nevertheless, you can create a raw " +"stream by opening a file in binary mode with buffering disabled::" +msgstr "" + +#: ../Doc/library/io.rst:106 +msgid "" +"The raw stream API is described in detail in the docs of :class:`RawIOBase`." +msgstr "" + +#: ../Doc/library/io.rst:110 +msgid "High-level Module Interface" +msgstr "" + +#: ../Doc/library/io.rst:114 +msgid "" +"An int containing the default buffer size used by the module's buffered I/O " +"classes. :func:`open` uses the file's blksize (as obtained by :func:`os." +"stat`) if possible." +msgstr "" + +#: ../Doc/library/io.rst:121 +msgid "This is an alias for the builtin :func:`open` function." +msgstr "" + +#: ../Doc/library/io.rst:126 +msgid "" +"This is a compatibility alias for the builtin :exc:`BlockingIOError` " +"exception." +msgstr "" + +#: ../Doc/library/io.rst:132 +msgid "" +"An exception inheriting :exc:`OSError` and :exc:`ValueError` that is raised " +"when an unsupported operation is called on a stream." +msgstr "" + +#: ../Doc/library/io.rst:137 +msgid "In-memory streams" +msgstr "" + +#: ../Doc/library/io.rst:139 +msgid "" +"It is also possible to use a :class:`str` or :term:`bytes-like object` as a " +"file for both reading and writing. For strings :class:`StringIO` can be " +"used like a file opened in text mode. :class:`BytesIO` can be used like a " +"file opened in binary mode. Both provide full read-write capabilities with " +"random access." +msgstr "" + +#: ../Doc/library/io.rst:149 +msgid ":mod:`sys`" +msgstr "" + +#: ../Doc/library/io.rst:149 +msgid "" +"contains the standard IO streams: :data:`sys.stdin`, :data:`sys.stdout`, " +"and :data:`sys.stderr`." +msgstr "" + +#: ../Doc/library/io.rst:154 +msgid "Class hierarchy" +msgstr "" + +#: ../Doc/library/io.rst:156 +msgid "" +"The implementation of I/O streams is organized as a hierarchy of classes. " +"First :term:`abstract base classes ` (ABCs), which are " +"used to specify the various categories of streams, then concrete classes " +"providing the standard stream implementations." +msgstr "" + +#: ../Doc/library/io.rst:163 +msgid "" +"The abstract base classes also provide default implementations of some " +"methods in order to help implementation of concrete stream classes. For " +"example, :class:`BufferedIOBase` provides unoptimized implementations of :" +"meth:`~IOBase.readinto` and :meth:`~IOBase.readline`." +msgstr "" + +#: ../Doc/library/io.rst:168 +msgid "" +"At the top of the I/O hierarchy is the abstract base class :class:`IOBase`. " +"It defines the basic interface to a stream. Note, however, that there is no " +"separation between reading and writing to streams; implementations are " +"allowed to raise :exc:`UnsupportedOperation` if they do not support a given " +"operation." +msgstr "" + +#: ../Doc/library/io.rst:173 +msgid "" +"The :class:`RawIOBase` ABC extends :class:`IOBase`. It deals with the " +"reading and writing of bytes to a stream. :class:`FileIO` subclasses :class:" +"`RawIOBase` to provide an interface to files in the machine's file system." +msgstr "" + +#: ../Doc/library/io.rst:177 +msgid "" +"The :class:`BufferedIOBase` ABC deals with buffering on a raw byte stream (:" +"class:`RawIOBase`). Its subclasses, :class:`BufferedWriter`, :class:" +"`BufferedReader`, and :class:`BufferedRWPair` buffer streams that are " +"readable, writable, and both readable and writable. :class:`BufferedRandom` " +"provides a buffered interface to random access streams. Another :class:" +"`BufferedIOBase` subclass, :class:`BytesIO`, is a stream of in-memory bytes." +msgstr "" + +#: ../Doc/library/io.rst:185 +msgid "" +"The :class:`TextIOBase` ABC, another subclass of :class:`IOBase`, deals with " +"streams whose bytes represent text, and handles encoding and decoding to and " +"from strings. :class:`TextIOWrapper`, which extends it, is a buffered text " +"interface to a buffered raw stream (:class:`BufferedIOBase`). Finally, :" +"class:`StringIO` is an in-memory stream for text." +msgstr "" + +#: ../Doc/library/io.rst:191 +msgid "" +"Argument names are not part of the specification, and only the arguments of :" +"func:`open` are intended to be used as keyword arguments." +msgstr "" + +#: ../Doc/library/io.rst:194 +msgid "" +"The following table summarizes the ABCs provided by the :mod:`io` module:" +msgstr "" + +#: ../Doc/library/io.rst:199 +msgid "ABC" +msgstr "ABC" + +#: ../Doc/library/io.rst:199 +msgid "Inherits" +msgstr "" + +#: ../Doc/library/io.rst:199 +msgid "Stub Methods" +msgstr "" + +#: ../Doc/library/io.rst:199 +msgid "Mixin Methods and Properties" +msgstr "" + +#: ../Doc/library/io.rst:201 ../Doc/library/io.rst:206 +#: ../Doc/library/io.rst:208 ../Doc/library/io.rst:210 +msgid ":class:`IOBase`" +msgstr "" + +#: ../Doc/library/io.rst:201 +msgid "``fileno``, ``seek``, and ``truncate``" +msgstr "``fileno``, ``seek``, et ``truncate``" + +#: ../Doc/library/io.rst:201 +msgid "" +"``close``, ``closed``, ``__enter__``, ``__exit__``, ``flush``, ``isatty``, " +"``__iter__``, ``__next__``, ``readable``, ``readline``, ``readlines``, " +"``seekable``, ``tell``, ``writable``, and ``writelines``" +msgstr "" + +#: ../Doc/library/io.rst:206 +msgid ":class:`RawIOBase`" +msgstr "" + +#: ../Doc/library/io.rst:206 +msgid "``readinto`` and ``write``" +msgstr "``readinto`` et ``write``" + +#: ../Doc/library/io.rst:206 +msgid "Inherited :class:`IOBase` methods, ``read``, and ``readall``" +msgstr "" + +#: ../Doc/library/io.rst:208 +msgid ":class:`BufferedIOBase`" +msgstr "" + +#: ../Doc/library/io.rst:208 +msgid "``detach``, ``read``, ``read1``, and ``write``" +msgstr "``detach``, ``read``, ``read1``, et ``write``" + +#: ../Doc/library/io.rst:208 +msgid "Inherited :class:`IOBase` methods, ``readinto``, and ``readinto1``" +msgstr "" + +#: ../Doc/library/io.rst:210 +msgid ":class:`TextIOBase`" +msgstr "" + +#: ../Doc/library/io.rst:210 +msgid "``detach``, ``read``, ``readline``, and ``write``" +msgstr "``detach``, ``read``, ``readline``, et ``write``" + +#: ../Doc/library/io.rst:210 +msgid "" +"Inherited :class:`IOBase` methods, ``encoding``, ``errors``, and ``newlines``" +msgstr "" + +#: ../Doc/library/io.rst:217 +msgid "I/O Base Classes" +msgstr "" + +#: ../Doc/library/io.rst:221 +msgid "" +"The abstract base class for all I/O classes, acting on streams of bytes. " +"There is no public constructor." +msgstr "" + +#: ../Doc/library/io.rst:224 +msgid "" +"This class provides empty abstract implementations for many methods that " +"derived classes can override selectively; the default implementations " +"represent a file that cannot be read, written or seeked." +msgstr "" + +#: ../Doc/library/io.rst:229 +msgid "" +"Even though :class:`IOBase` does not declare :meth:`read` or :meth:`write` " +"because their signatures will vary, implementations and clients should " +"consider those methods part of the interface. Also, implementations may " +"raise a :exc:`ValueError` (or :exc:`UnsupportedOperation`) when operations " +"they do not support are called." +msgstr "" + +#: ../Doc/library/io.rst:235 +msgid "" +"The basic type used for binary data read from or written to a file is :class:" +"`bytes`. Other :term:`bytes-like objects ` are accepted " +"as method arguments too. Text I/O classes work with :class:`str` data." +msgstr "" + +#: ../Doc/library/io.rst:239 +msgid "" +"Note that calling any method (even inquiries) on a closed stream is " +"undefined. Implementations may raise :exc:`ValueError` in this case." +msgstr "" + +#: ../Doc/library/io.rst:242 +msgid "" +":class:`IOBase` (and its subclasses) supports the iterator protocol, meaning " +"that an :class:`IOBase` object can be iterated over yielding the lines in a " +"stream. Lines are defined slightly differently depending on whether the " +"stream is a binary stream (yielding bytes), or a text stream (yielding " +"character strings). See :meth:`~IOBase.readline` below." +msgstr "" + +#: ../Doc/library/io.rst:248 +msgid "" +":class:`IOBase` is also a context manager and therefore supports the :" +"keyword:`with` statement. In this example, *file* is closed after the :" +"keyword:`!with` statement's suite is finished---even if an exception occurs::" +msgstr "" + +#: ../Doc/library/io.rst:255 +msgid ":class:`IOBase` provides these data attributes and methods:" +msgstr "" + +#: ../Doc/library/io.rst:259 +msgid "" +"Flush and close this stream. This method has no effect if the file is " +"already closed. Once the file is closed, any operation on the file (e.g. " +"reading or writing) will raise a :exc:`ValueError`." +msgstr "" + +#: ../Doc/library/io.rst:263 +msgid "" +"As a convenience, it is allowed to call this method more than once; only the " +"first call, however, will have an effect." +msgstr "" + +#: ../Doc/library/io.rst:268 +msgid "``True`` if the stream is closed." +msgstr "" + +#: ../Doc/library/io.rst:272 +msgid "" +"Return the underlying file descriptor (an integer) of the stream if it " +"exists. An :exc:`OSError` is raised if the IO object does not use a file " +"descriptor." +msgstr "" + +#: ../Doc/library/io.rst:278 +msgid "" +"Flush the write buffers of the stream if applicable. This does nothing for " +"read-only and non-blocking streams." +msgstr "" + +#: ../Doc/library/io.rst:283 +msgid "" +"Return ``True`` if the stream is interactive (i.e., connected to a terminal/" +"tty device)." +msgstr "" + +#: ../Doc/library/io.rst:288 +msgid "" +"Return ``True`` if the stream can be read from. If ``False``, :meth:`read` " +"will raise :exc:`OSError`." +msgstr "" + +#: ../Doc/library/io.rst:293 +msgid "" +"Read and return one line from the stream. If *size* is specified, at most " +"*size* bytes will be read." +msgstr "" + +#: ../Doc/library/io.rst:296 +msgid "" +"The line terminator is always ``b'\\n'`` for binary files; for text files, " +"the *newline* argument to :func:`open` can be used to select the line " +"terminator(s) recognized." +msgstr "" + +#: ../Doc/library/io.rst:302 +msgid "" +"Read and return a list of lines from the stream. *hint* can be specified to " +"control the number of lines read: no more lines will be read if the total " +"size (in bytes/characters) of all lines so far exceeds *hint*." +msgstr "" + +#: ../Doc/library/io.rst:306 +msgid "" +"Note that it's already possible to iterate on file objects using ``for line " +"in file: ...`` without calling ``file.readlines()``." +msgstr "" + +#: ../Doc/library/io.rst:311 +msgid "" +"Change the stream position to the given byte *offset*. *offset* is " +"interpreted relative to the position indicated by *whence*. The default " +"value for *whence* is :data:`SEEK_SET`. Values for *whence* are:" +msgstr "" + +#: ../Doc/library/io.rst:315 +msgid "" +":data:`SEEK_SET` or ``0`` -- start of the stream (the default); *offset* " +"should be zero or positive" +msgstr "" + +#: ../Doc/library/io.rst:317 +msgid "" +":data:`SEEK_CUR` or ``1`` -- current stream position; *offset* may be " +"negative" +msgstr "" + +#: ../Doc/library/io.rst:319 +msgid "" +":data:`SEEK_END` or ``2`` -- end of the stream; *offset* is usually negative" +msgstr "" + +#: ../Doc/library/io.rst:322 +msgid "Return the new absolute position." +msgstr "" + +#: ../Doc/library/io.rst:324 ../Doc/library/io.rst:831 +msgid "The ``SEEK_*`` constants." +msgstr "" + +#: ../Doc/library/io.rst:327 +msgid "" +"Some operating systems could support additional values, like :data:`os." +"SEEK_HOLE` or :data:`os.SEEK_DATA`. The valid values for a file could depend " +"on it being open in text or binary mode." +msgstr "" + +#: ../Doc/library/io.rst:334 +msgid "" +"Return ``True`` if the stream supports random access. If ``False``, :meth:" +"`seek`, :meth:`tell` and :meth:`truncate` will raise :exc:`OSError`." +msgstr "" + +#: ../Doc/library/io.rst:339 +msgid "Return the current stream position." +msgstr "" + +#: ../Doc/library/io.rst:343 +msgid "" +"Resize the stream to the given *size* in bytes (or the current position if " +"*size* is not specified). The current stream position isn't changed. This " +"resizing can extend or reduce the current file size. In case of extension, " +"the contents of the new file area depend on the platform (on most systems, " +"additional bytes are zero-filled). The new file size is returned." +msgstr "" + +#: ../Doc/library/io.rst:350 +msgid "Windows will now zero-fill files when extending." +msgstr "" + +#: ../Doc/library/io.rst:355 +msgid "" +"Return ``True`` if the stream supports writing. If ``False``, :meth:`write` " +"and :meth:`truncate` will raise :exc:`OSError`." +msgstr "" + +#: ../Doc/library/io.rst:360 +msgid "" +"Write a list of lines to the stream. Line separators are not added, so it " +"is usual for each of the lines provided to have a line separator at the end." +msgstr "" + +#: ../Doc/library/io.rst:366 +msgid "" +"Prepare for object destruction. :class:`IOBase` provides a default " +"implementation of this method that calls the instance's :meth:`~IOBase." +"close` method." +msgstr "" + +#: ../Doc/library/io.rst:373 +msgid "" +"Base class for raw binary I/O. It inherits :class:`IOBase`. There is no " +"public constructor." +msgstr "" + +#: ../Doc/library/io.rst:376 +msgid "" +"Raw binary I/O typically provides low-level access to an underlying OS " +"device or API, and does not try to encapsulate it in high-level primitives " +"(this is left to Buffered I/O and Text I/O, described later in this page)." +msgstr "" + +#: ../Doc/library/io.rst:380 +msgid "" +"In addition to the attributes and methods from :class:`IOBase`, :class:" +"`RawIOBase` provides the following methods:" +msgstr "" + +#: ../Doc/library/io.rst:385 +msgid "" +"Read up to *size* bytes from the object and return them. As a convenience, " +"if *size* is unspecified or -1, all bytes until EOF are returned. Otherwise, " +"only one system call is ever made. Fewer than *size* bytes may be returned " +"if the operating system call returns fewer than *size* bytes." +msgstr "" + +#: ../Doc/library/io.rst:390 +msgid "" +"If 0 bytes are returned, and *size* was not 0, this indicates end of file. " +"If the object is in non-blocking mode and no bytes are available, ``None`` " +"is returned." +msgstr "" + +#: ../Doc/library/io.rst:394 +msgid "" +"The default implementation defers to :meth:`readall` and :meth:`readinto`." +msgstr "" + +#: ../Doc/library/io.rst:399 +msgid "" +"Read and return all the bytes from the stream until EOF, using multiple " +"calls to the stream if necessary." +msgstr "" + +#: ../Doc/library/io.rst:404 +msgid "" +"Read bytes into a pre-allocated, writable :term:`bytes-like object` *b*, and " +"return the number of bytes read. For example, *b* might be a :class:" +"`bytearray`. If the object is in non-blocking mode and no bytes are " +"available, ``None`` is returned." +msgstr "" + +#: ../Doc/library/io.rst:412 +msgid "" +"Write the given :term:`bytes-like object`, *b*, to the underlying raw " +"stream, and return the number of bytes written. This can be less than the " +"length of *b* in bytes, depending on specifics of the underlying raw stream, " +"and especially if it is in non-blocking mode. ``None`` is returned if the " +"raw stream is set not to block and no single byte could be readily written " +"to it. The caller may release or mutate *b* after this method returns, so " +"the implementation should only access *b* during the method call." +msgstr "" + +#: ../Doc/library/io.rst:425 +msgid "" +"Base class for binary streams that support some kind of buffering. It " +"inherits :class:`IOBase`. There is no public constructor." +msgstr "" + +#: ../Doc/library/io.rst:428 +msgid "" +"The main difference with :class:`RawIOBase` is that methods :meth:`read`, :" +"meth:`readinto` and :meth:`write` will try (respectively) to read as much " +"input as requested or to consume all given output, at the expense of making " +"perhaps more than one system call." +msgstr "" + +#: ../Doc/library/io.rst:433 +msgid "" +"In addition, those methods can raise :exc:`BlockingIOError` if the " +"underlying raw stream is in non-blocking mode and cannot take or give enough " +"data; unlike their :class:`RawIOBase` counterparts, they will never return " +"``None``." +msgstr "" + +#: ../Doc/library/io.rst:438 +msgid "" +"Besides, the :meth:`read` method does not have a default implementation that " +"defers to :meth:`readinto`." +msgstr "" + +#: ../Doc/library/io.rst:441 +msgid "" +"A typical :class:`BufferedIOBase` implementation should not inherit from a :" +"class:`RawIOBase` implementation, but wrap one, like :class:`BufferedWriter` " +"and :class:`BufferedReader` do." +msgstr "" + +#: ../Doc/library/io.rst:445 +msgid "" +":class:`BufferedIOBase` provides or overrides these methods and attribute in " +"addition to those from :class:`IOBase`:" +msgstr "" + +#: ../Doc/library/io.rst:450 +msgid "" +"The underlying raw stream (a :class:`RawIOBase` instance) that :class:" +"`BufferedIOBase` deals with. This is not part of the :class:" +"`BufferedIOBase` API and may not exist on some implementations." +msgstr "" + +#: ../Doc/library/io.rst:456 +msgid "Separate the underlying raw stream from the buffer and return it." +msgstr "" + +#: ../Doc/library/io.rst:458 +msgid "" +"After the raw stream has been detached, the buffer is in an unusable state." +msgstr "" + +#: ../Doc/library/io.rst:461 +msgid "" +"Some buffers, like :class:`BytesIO`, do not have the concept of a single raw " +"stream to return from this method. They raise :exc:`UnsupportedOperation`." +msgstr "" + +#: ../Doc/library/io.rst:469 +msgid "" +"Read and return up to *size* bytes. If the argument is omitted, ``None``, " +"or negative, data is read and returned until EOF is reached. An empty :" +"class:`bytes` object is returned if the stream is already at EOF." +msgstr "" + +#: ../Doc/library/io.rst:473 +msgid "" +"If the argument is positive, and the underlying raw stream is not " +"interactive, multiple raw reads may be issued to satisfy the byte count " +"(unless EOF is reached first). But for interactive raw streams, at most one " +"raw read will be issued, and a short result does not imply that EOF is " +"imminent." +msgstr "" + +#: ../Doc/library/io.rst:479 ../Doc/library/io.rst:502 +#: ../Doc/library/io.rst:512 +msgid "" +"A :exc:`BlockingIOError` is raised if the underlying raw stream is in non " +"blocking-mode, and has no data available at the moment." +msgstr "" + +#: ../Doc/library/io.rst:484 +msgid "" +"Read and return up to *size* bytes, with at most one call to the underlying " +"raw stream's :meth:`~RawIOBase.read` (or :meth:`~RawIOBase.readinto`) " +"method. This can be useful if you are implementing your own buffering on " +"top of a :class:`BufferedIOBase` object." +msgstr "" + +#: ../Doc/library/io.rst:490 +msgid "" +"If *size* is ``-1`` (the default), an arbitrary number of bytes are returned " +"(more than zero unless EOF is reached)." +msgstr "" + +#: ../Doc/library/io.rst:495 +msgid "" +"Read bytes into a pre-allocated, writable :term:`bytes-like object` *b* and " +"return the number of bytes read. For example, *b* might be a :class:" +"`bytearray`." +msgstr "" + +#: ../Doc/library/io.rst:499 +msgid "" +"Like :meth:`read`, multiple reads may be issued to the underlying raw " +"stream, unless the latter is interactive." +msgstr "" + +#: ../Doc/library/io.rst:507 +msgid "" +"Read bytes into a pre-allocated, writable :term:`bytes-like object` *b*, " +"using at most one call to the underlying raw stream's :meth:`~RawIOBase." +"read` (or :meth:`~RawIOBase.readinto`) method. Return the number of bytes " +"read." +msgstr "" + +#: ../Doc/library/io.rst:519 +msgid "" +"Write the given :term:`bytes-like object`, *b*, and return the number of " +"bytes written (always equal to the length of *b* in bytes, since if the " +"write fails an :exc:`OSError` will be raised). Depending on the actual " +"implementation, these bytes may be readily written to the underlying stream, " +"or held in a buffer for performance and latency reasons." +msgstr "" + +#: ../Doc/library/io.rst:526 +msgid "" +"When in non-blocking mode, a :exc:`BlockingIOError` is raised if the data " +"needed to be written to the raw stream but it couldn't accept all the data " +"without blocking." +msgstr "" + +#: ../Doc/library/io.rst:530 +msgid "" +"The caller may release or mutate *b* after this method returns, so the " +"implementation should only access *b* during the method call." +msgstr "" + +#: ../Doc/library/io.rst:535 +msgid "Raw File I/O" +msgstr "" + +#: ../Doc/library/io.rst:539 +msgid "" +":class:`FileIO` represents an OS-level file containing bytes data. It " +"implements the :class:`RawIOBase` interface (and therefore the :class:" +"`IOBase` interface, too)." +msgstr "" + +#: ../Doc/library/io.rst:543 +msgid "The *name* can be one of two things:" +msgstr "" + +#: ../Doc/library/io.rst:545 +msgid "" +"a character string or :class:`bytes` object representing the path to the " +"file which will be opened. In this case closefd must be ``True`` (the " +"default) otherwise an error will be raised." +msgstr "" + +#: ../Doc/library/io.rst:548 +msgid "" +"an integer representing the number of an existing OS-level file descriptor " +"to which the resulting :class:`FileIO` object will give access. When the " +"FileIO object is closed this fd will be closed as well, unless *closefd* is " +"set to ``False``." +msgstr "" + +#: ../Doc/library/io.rst:553 +msgid "" +"The *mode* can be ``'r'``, ``'w'``, ``'x'`` or ``'a'`` for reading " +"(default), writing, exclusive creation or appending. The file will be " +"created if it doesn't exist when opened for writing or appending; it will be " +"truncated when opened for writing. :exc:`FileExistsError` will be raised if " +"it already exists when opened for creating. Opening a file for creating " +"implies writing, so this mode behaves in a similar way to ``'w'``. Add a " +"``'+'`` to the mode to allow simultaneous reading and writing." +msgstr "" + +#: ../Doc/library/io.rst:561 +msgid "" +"The :meth:`read` (when called with a positive argument), :meth:`readinto` " +"and :meth:`write` methods on this class will only make one system call." +msgstr "" + +#: ../Doc/library/io.rst:564 +msgid "" +"A custom opener can be used by passing a callable as *opener*. The " +"underlying file descriptor for the file object is then obtained by calling " +"*opener* with (*name*, *flags*). *opener* must return an open file " +"descriptor (passing :mod:`os.open` as *opener* results in functionality " +"similar to passing ``None``)." +msgstr "" +"Un *opener* personnalisé peut être utilisé en fournissant un appelable à " +"*opener*. Le descripteur de fichier de cet objet fichier sera alors obtenu " +"en appelant *opener* avec (*file*, *flags*). *opener* doit donner un " +"descripteur de fichier ouvert (fournir :mod:`os.open` en temps qu'*opener* " +"aura le même effet que donner ``None``)." + +#: ../Doc/library/io.rst:570 +msgid "The newly created file is :ref:`non-inheritable `." +msgstr "" +"Il n'est :ref:`pas possible d'hériter du fichier ` " +"nouvellement créé." + +#: ../Doc/library/io.rst:572 +msgid "" +"See the :func:`open` built-in function for examples on using the *opener* " +"parameter." +msgstr "" + +#: ../Doc/library/io.rst:575 +msgid "The *opener* parameter was added. The ``'x'`` mode was added." +msgstr "" + +#: ../Doc/library/io.rst:579 +msgid "The file is now non-inheritable." +msgstr "Il n'est plus possible d'hériter de *file*." + +#: ../Doc/library/io.rst:582 +msgid "" +"In addition to the attributes and methods from :class:`IOBase` and :class:" +"`RawIOBase`, :class:`FileIO` provides the following data attributes:" +msgstr "" + +#: ../Doc/library/io.rst:588 +msgid "The mode as given in the constructor." +msgstr "" + +#: ../Doc/library/io.rst:592 +msgid "" +"The file name. This is the file descriptor of the file when no name is " +"given in the constructor." +msgstr "" + +#: ../Doc/library/io.rst:597 +msgid "Buffered Streams" +msgstr "" + +#: ../Doc/library/io.rst:599 +msgid "" +"Buffered I/O streams provide a higher-level interface to an I/O device than " +"raw I/O does." +msgstr "" + +#: ../Doc/library/io.rst:604 +msgid "" +"A stream implementation using an in-memory bytes buffer. It inherits :class:" +"`BufferedIOBase`. The buffer is discarded when the :meth:`~IOBase.close` " +"method is called." +msgstr "" + +#: ../Doc/library/io.rst:608 +msgid "" +"The optional argument *initial_bytes* is a :term:`bytes-like object` that " +"contains initial data." +msgstr "" + +#: ../Doc/library/io.rst:611 +msgid "" +":class:`BytesIO` provides or overrides these methods in addition to those " +"from :class:`BufferedIOBase` and :class:`IOBase`:" +msgstr "" + +#: ../Doc/library/io.rst:616 +msgid "" +"Return a readable and writable view over the contents of the buffer without " +"copying them. Also, mutating the view will transparently update the " +"contents of the buffer::" +msgstr "" + +#: ../Doc/library/io.rst:627 +msgid "" +"As long as the view exists, the :class:`BytesIO` object cannot be resized or " +"closed." +msgstr "" + +#: ../Doc/library/io.rst:634 +msgid "Return :class:`bytes` containing the entire contents of the buffer." +msgstr "" + +#: ../Doc/library/io.rst:639 +msgid "In :class:`BytesIO`, this is the same as :meth:`~BufferedIOBase.read`." +msgstr "" + +#: ../Doc/library/io.rst:641 ../Doc/library/io.rst:682 +msgid "The *size* argument is now optional." +msgstr "" + +#: ../Doc/library/io.rst:646 +msgid "" +"In :class:`BytesIO`, this is the same as :meth:`~BufferedIOBase.readinto`." +msgstr "" + +#: ../Doc/library/io.rst:652 +msgid "" +"A buffer providing higher-level access to a readable, sequential :class:" +"`RawIOBase` object. It inherits :class:`BufferedIOBase`. When reading data " +"from this object, a larger amount of data may be requested from the " +"underlying raw stream, and kept in an internal buffer. The buffered data can " +"then be returned directly on subsequent reads." +msgstr "" + +#: ../Doc/library/io.rst:658 +msgid "" +"The constructor creates a :class:`BufferedReader` for the given readable " +"*raw* stream and *buffer_size*. If *buffer_size* is omitted, :data:" +"`DEFAULT_BUFFER_SIZE` is used." +msgstr "" + +#: ../Doc/library/io.rst:662 +msgid "" +":class:`BufferedReader` provides or overrides these methods in addition to " +"those from :class:`BufferedIOBase` and :class:`IOBase`:" +msgstr "" + +#: ../Doc/library/io.rst:667 +msgid "" +"Return bytes from the stream without advancing the position. At most one " +"single read on the raw stream is done to satisfy the call. The number of " +"bytes returned may be less or more than requested." +msgstr "" + +#: ../Doc/library/io.rst:673 +msgid "" +"Read and return *size* bytes, or if *size* is not given or negative, until " +"EOF or if the read call would block in non-blocking mode." +msgstr "" + +#: ../Doc/library/io.rst:678 +msgid "" +"Read and return up to *size* bytes with only one call on the raw stream. If " +"at least one byte is buffered, only buffered bytes are returned. Otherwise, " +"one raw stream read call is made." +msgstr "" + +#: ../Doc/library/io.rst:688 +msgid "" +"A buffer providing higher-level access to a writeable, sequential :class:" +"`RawIOBase` object. It inherits :class:`BufferedIOBase`. When writing to " +"this object, data is normally placed into an internal buffer. The buffer " +"will be written out to the underlying :class:`RawIOBase` object under " +"various conditions, including:" +msgstr "" + +#: ../Doc/library/io.rst:694 +msgid "when the buffer gets too small for all pending data;" +msgstr "" + +#: ../Doc/library/io.rst:695 +msgid "when :meth:`flush()` is called;" +msgstr "" + +#: ../Doc/library/io.rst:696 +msgid "" +"when a :meth:`seek()` is requested (for :class:`BufferedRandom` objects);" +msgstr "" + +#: ../Doc/library/io.rst:697 +msgid "when the :class:`BufferedWriter` object is closed or destroyed." +msgstr "" + +#: ../Doc/library/io.rst:699 +msgid "" +"The constructor creates a :class:`BufferedWriter` for the given writeable " +"*raw* stream. If the *buffer_size* is not given, it defaults to :data:" +"`DEFAULT_BUFFER_SIZE`." +msgstr "" + +#: ../Doc/library/io.rst:703 +msgid "" +":class:`BufferedWriter` provides or overrides these methods in addition to " +"those from :class:`BufferedIOBase` and :class:`IOBase`:" +msgstr "" + +#: ../Doc/library/io.rst:708 +msgid "" +"Force bytes held in the buffer into the raw stream. A :exc:" +"`BlockingIOError` should be raised if the raw stream blocks." +msgstr "" + +#: ../Doc/library/io.rst:713 +msgid "" +"Write the :term:`bytes-like object`, *b*, and return the number of bytes " +"written. When in non-blocking mode, a :exc:`BlockingIOError` is raised if " +"the buffer needs to be written out but the raw stream blocks." +msgstr "" + +#: ../Doc/library/io.rst:721 +msgid "" +"A buffered interface to random access streams. It inherits :class:" +"`BufferedReader` and :class:`BufferedWriter`, and further supports :meth:" +"`seek` and :meth:`tell` functionality." +msgstr "" + +#: ../Doc/library/io.rst:725 +msgid "" +"The constructor creates a reader and writer for a seekable raw stream, given " +"in the first argument. If the *buffer_size* is omitted it defaults to :data:" +"`DEFAULT_BUFFER_SIZE`." +msgstr "" + +#: ../Doc/library/io.rst:729 +msgid "" +":class:`BufferedRandom` is capable of anything :class:`BufferedReader` or :" +"class:`BufferedWriter` can do." +msgstr "" + +#: ../Doc/library/io.rst:735 +msgid "" +"A buffered I/O object combining two unidirectional :class:`RawIOBase` " +"objects -- one readable, the other writeable -- into a single bidirectional " +"endpoint. It inherits :class:`BufferedIOBase`." +msgstr "" + +#: ../Doc/library/io.rst:739 +msgid "" +"*reader* and *writer* are :class:`RawIOBase` objects that are readable and " +"writeable respectively. If the *buffer_size* is omitted it defaults to :" +"data:`DEFAULT_BUFFER_SIZE`." +msgstr "" + +#: ../Doc/library/io.rst:743 +msgid "" +":class:`BufferedRWPair` implements all of :class:`BufferedIOBase`\\'s " +"methods except for :meth:`~BufferedIOBase.detach`, which raises :exc:" +"`UnsupportedOperation`." +msgstr "" + +#: ../Doc/library/io.rst:749 +msgid "" +":class:`BufferedRWPair` does not attempt to synchronize accesses to its " +"underlying raw streams. You should not pass it the same object as reader " +"and writer; use :class:`BufferedRandom` instead." +msgstr "" + +#: ../Doc/library/io.rst:759 +msgid "" +"Base class for text streams. This class provides a character and line based " +"interface to stream I/O. It inherits :class:`IOBase`. There is no public " +"constructor." +msgstr "" + +#: ../Doc/library/io.rst:763 +msgid "" +":class:`TextIOBase` provides or overrides these data attributes and methods " +"in addition to those from :class:`IOBase`:" +msgstr "" + +#: ../Doc/library/io.rst:768 +msgid "" +"The name of the encoding used to decode the stream's bytes into strings, and " +"to encode strings into bytes." +msgstr "" + +#: ../Doc/library/io.rst:773 +msgid "The error setting of the decoder or encoder." +msgstr "" + +#: ../Doc/library/io.rst:777 +msgid "" +"A string, a tuple of strings, or ``None``, indicating the newlines " +"translated so far. Depending on the implementation and the initial " +"constructor flags, this may not be available." +msgstr "" + +#: ../Doc/library/io.rst:783 +msgid "" +"The underlying binary buffer (a :class:`BufferedIOBase` instance) that :" +"class:`TextIOBase` deals with. This is not part of the :class:`TextIOBase` " +"API and may not exist in some implementations." +msgstr "" + +#: ../Doc/library/io.rst:789 +msgid "" +"Separate the underlying binary buffer from the :class:`TextIOBase` and " +"return it." +msgstr "" + +#: ../Doc/library/io.rst:792 +msgid "" +"After the underlying buffer has been detached, the :class:`TextIOBase` is in " +"an unusable state." +msgstr "" + +#: ../Doc/library/io.rst:795 +msgid "" +"Some :class:`TextIOBase` implementations, like :class:`StringIO`, may not " +"have the concept of an underlying buffer and calling this method will raise :" +"exc:`UnsupportedOperation`." +msgstr "" + +#: ../Doc/library/io.rst:803 +msgid "" +"Read and return at most *size* characters from the stream as a single :class:" +"`str`. If *size* is negative or ``None``, reads until EOF." +msgstr "" + +#: ../Doc/library/io.rst:808 +msgid "" +"Read until newline or EOF and return a single ``str``. If the stream is " +"already at EOF, an empty string is returned." +msgstr "" + +#: ../Doc/library/io.rst:811 +msgid "If *size* is specified, at most *size* characters will be read." +msgstr "" + +#: ../Doc/library/io.rst:815 +msgid "" +"Change the stream position to the given *offset*. Behaviour depends on the " +"*whence* parameter. The default value for *whence* is :data:`SEEK_SET`." +msgstr "" + +#: ../Doc/library/io.rst:819 +msgid "" +":data:`SEEK_SET` or ``0``: seek from the start of the stream (the default); " +"*offset* must either be a number returned by :meth:`TextIOBase.tell`, or " +"zero. Any other *offset* value produces undefined behaviour." +msgstr "" + +#: ../Doc/library/io.rst:823 +msgid "" +":data:`SEEK_CUR` or ``1``: \"seek\" to the current position; *offset* must " +"be zero, which is a no-operation (all other values are unsupported)." +msgstr "" + +#: ../Doc/library/io.rst:826 +msgid "" +":data:`SEEK_END` or ``2``: seek to the end of the stream; *offset* must be " +"zero (all other values are unsupported)." +msgstr "" + +#: ../Doc/library/io.rst:829 +msgid "Return the new absolute position as an opaque number." +msgstr "" + +#: ../Doc/library/io.rst:836 +msgid "" +"Return the current stream position as an opaque number. The number does not " +"usually represent a number of bytes in the underlying binary storage." +msgstr "" + +#: ../Doc/library/io.rst:842 +msgid "" +"Write the string *s* to the stream and return the number of characters " +"written." +msgstr "" + +#: ../Doc/library/io.rst:849 +msgid "" +"A buffered text stream over a :class:`BufferedIOBase` binary stream. It " +"inherits :class:`TextIOBase`." +msgstr "" + +#: ../Doc/library/io.rst:852 +msgid "" +"*encoding* gives the name of the encoding that the stream will be decoded or " +"encoded with. It defaults to :func:`locale.getpreferredencoding(False) " +"`." +msgstr "" + +#: ../Doc/library/io.rst:856 +msgid "" +"*errors* is an optional string that specifies how encoding and decoding " +"errors are to be handled. Pass ``'strict'`` to raise a :exc:`ValueError` " +"exception if there is an encoding error (the default of ``None`` has the " +"same effect), or pass ``'ignore'`` to ignore errors. (Note that ignoring " +"encoding errors can lead to data loss.) ``'replace'`` causes a replacement " +"marker (such as ``'?'``) to be inserted where there is malformed data. " +"``'backslashreplace'`` causes malformed data to be replaced by a backslashed " +"escape sequence. When writing, ``'xmlcharrefreplace'`` (replace with the " +"appropriate XML character reference) or ``'namereplace'`` (replace with ``" +"\\N{...}`` escape sequences) can be used. Any other error handling name " +"that has been registered with :func:`codecs.register_error` is also valid." +msgstr "" + +#: ../Doc/library/io.rst:872 +msgid "" +"*newline* controls how line endings are handled. It can be ``None``, " +"``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as follows:" +msgstr "" + +#: ../Doc/library/io.rst:875 +msgid "" +"When reading input from the stream, if *newline* is ``None``, :term:" +"`universal newlines` mode is enabled. Lines in the input can end in " +"``'\\n'``, ``'\\r'``, or ``'\\r\\n'``, and these are translated into " +"``'\\n'`` before being returned to the caller. If it is ``''``, universal " +"newlines mode is enabled, but line endings are returned to the caller " +"untranslated. If it has any of the other legal values, input lines are only " +"terminated by the given string, and the line ending is returned to the " +"caller untranslated." +msgstr "" +"Lors de la lecture, si *newline* est ``None``, le mode :term:`universal " +"newlines` est activé. Les lignes lues peuvent terminer par ``'\\n'``, " +"``'\\r'``, ou ``'\\r\\n'``, qui sont remplacés par ``'\\n'``, avant d'être " +"données à l'appelant. S'il vaut ``''``, le mode *universal newline* est " +"activé mais les fin de lignes ne sont pas remplacés. S'il a n'importe quel " +"autre valeur autorisée, les lignes sont seulement terminées par la chaîne " +"donnée, qui est rendue tel qu'elle." + +#: ../Doc/library/io.rst:884 +msgid "" +"When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " +"characters written are translated to the system default line separator, :" +"data:`os.linesep`. If *newline* is ``''`` or ``'\\n'``, no translation " +"takes place. If *newline* is any of the other legal values, any ``'\\n'`` " +"characters written are translated to the given string." +msgstr "" +"Lors de l'écriture, si *newline* est ``None``, chaque ``'\\n'`` est remplacé " +"par le séparateur de lignes par défaut du système :data:`os.linesep`. Si " +"*newline* est ``*`` ou ``'\\n'`` aucun remplacent n'est effectué. Si " +"*newline* est un autre caractère valide, chaque ``'\\n'`` sera remplacé par " +"la chaîne donnée." + +#: ../Doc/library/io.rst:890 +msgid "" +"If *line_buffering* is ``True``, :meth:`flush` is implied when a call to " +"write contains a newline character or a carriage return." +msgstr "" + +#: ../Doc/library/io.rst:893 +msgid "" +"If *write_through* is ``True``, calls to :meth:`write` are guaranteed not to " +"be buffered: any data written on the :class:`TextIOWrapper` object is " +"immediately handled to its underlying binary *buffer*." +msgstr "" + +#: ../Doc/library/io.rst:897 +msgid "The *write_through* argument has been added." +msgstr "" + +#: ../Doc/library/io.rst:900 +msgid "" +"The default *encoding* is now ``locale.getpreferredencoding(False)`` instead " +"of ``locale.getpreferredencoding()``. Don't change temporary the locale " +"encoding using :func:`locale.setlocale`, use the current locale encoding " +"instead of the user preferred encoding." +msgstr "" + +#: ../Doc/library/io.rst:906 +msgid "" +":class:`TextIOWrapper` provides these members in addition to those of :class:" +"`TextIOBase` and its parents:" +msgstr "" + +#: ../Doc/library/io.rst:911 +msgid "Whether line buffering is enabled." +msgstr "" + +#: ../Doc/library/io.rst:915 +msgid "Whether writes are passed immediately to the underlying binary buffer." +msgstr "" + +#: ../Doc/library/io.rst:923 +msgid "" +"Reconfigure this text stream using new settings for *encoding*, *errors*, " +"*newline*, *line_buffering* and *write_through*." +msgstr "" + +#: ../Doc/library/io.rst:926 +msgid "" +"Parameters not specified keep current settings, except ``errors='strict`` is " +"used when *encoding* is specified but *errors* is not specified." +msgstr "" + +#: ../Doc/library/io.rst:930 +msgid "" +"It is not possible to change the encoding or newline if some data has " +"already been read from the stream. On the other hand, changing encoding " +"after write is possible." +msgstr "" + +#: ../Doc/library/io.rst:934 +msgid "" +"This method does an implicit stream flush before setting the new parameters." +msgstr "" + +#: ../Doc/library/io.rst:942 +msgid "" +"An in-memory stream for text I/O. The text buffer is discarded when the :" +"meth:`~IOBase.close` method is called." +msgstr "" + +#: ../Doc/library/io.rst:945 +msgid "" +"The initial value of the buffer can be set by providing *initial_value*. If " +"newline translation is enabled, newlines will be encoded as if by :meth:" +"`~TextIOBase.write`. The stream is positioned at the start of the buffer." +msgstr "" + +#: ../Doc/library/io.rst:950 +msgid "" +"The *newline* argument works like that of :class:`TextIOWrapper`. The " +"default is to consider only ``\\n`` characters as ends of lines and to do no " +"newline translation. If *newline* is set to ``None``, newlines are written " +"as ``\\n`` on all platforms, but universal newline decoding is still " +"performed when reading." +msgstr "" + +#: ../Doc/library/io.rst:956 +msgid "" +":class:`StringIO` provides this method in addition to those from :class:" +"`TextIOBase` and its parents:" +msgstr "" + +#: ../Doc/library/io.rst:961 +msgid "" +"Return a ``str`` containing the entire contents of the buffer. Newlines are " +"decoded as if by :meth:`~TextIOBase.read`, although the stream position is " +"not changed." +msgstr "" + +#: ../Doc/library/io.rst:965 +msgid "Example usage::" +msgstr "Exemple d'utilisation ::" + +#: ../Doc/library/io.rst:987 +msgid "" +"A helper codec that decodes newlines for :term:`universal newlines` mode. It " +"inherits :class:`codecs.IncrementalDecoder`." +msgstr "" + +#: ../Doc/library/io.rst:992 +msgid "Performance" +msgstr "Performances" + +#: ../Doc/library/io.rst:994 +msgid "" +"This section discusses the performance of the provided concrete I/O " +"implementations." +msgstr "" + +#: ../Doc/library/io.rst:1000 +msgid "" +"By reading and writing only large chunks of data even when the user asks for " +"a single byte, buffered I/O hides any inefficiency in calling and executing " +"the operating system's unbuffered I/O routines. The gain depends on the OS " +"and the kind of I/O which is performed. For example, on some modern OSes " +"such as Linux, unbuffered disk I/O can be as fast as buffered I/O. The " +"bottom line, however, is that buffered I/O offers predictable performance " +"regardless of the platform and the backing device. Therefore, it is almost " +"always preferable to use buffered I/O rather than unbuffered I/O for binary " +"data." +msgstr "" + +#: ../Doc/library/io.rst:1012 +msgid "" +"Text I/O over a binary storage (such as a file) is significantly slower than " +"binary I/O over the same storage, because it requires conversions between " +"unicode and binary data using a character codec. This can become noticeable " +"handling huge amounts of text data like large log files. Also, :meth:" +"`TextIOWrapper.tell` and :meth:`TextIOWrapper.seek` are both quite slow due " +"to the reconstruction algorithm used." +msgstr "" + +#: ../Doc/library/io.rst:1019 +msgid "" +":class:`StringIO`, however, is a native in-memory unicode container and will " +"exhibit similar speed to :class:`BytesIO`." +msgstr "" + +#: ../Doc/library/io.rst:1023 +msgid "Multi-threading" +msgstr "Fils d'exécution" + +#: ../Doc/library/io.rst:1025 +msgid "" +":class:`FileIO` objects are thread-safe to the extent that the operating " +"system calls (such as ``read(2)`` under Unix) they wrap are thread-safe too." +msgstr "" + +#: ../Doc/library/io.rst:1028 +msgid "" +"Binary buffered objects (instances of :class:`BufferedReader`, :class:" +"`BufferedWriter`, :class:`BufferedRandom` and :class:`BufferedRWPair`) " +"protect their internal structures using a lock; it is therefore safe to call " +"them from multiple threads at once." +msgstr "" + +#: ../Doc/library/io.rst:1033 +msgid ":class:`TextIOWrapper` objects are not thread-safe." +msgstr "" + +#: ../Doc/library/io.rst:1036 +msgid "Reentrancy" +msgstr "" + +#: ../Doc/library/io.rst:1038 +msgid "" +"Binary buffered objects (instances of :class:`BufferedReader`, :class:" +"`BufferedWriter`, :class:`BufferedRandom` and :class:`BufferedRWPair`) are " +"not reentrant. While reentrant calls will not happen in normal situations, " +"they can arise from doing I/O in a :mod:`signal` handler. If a thread tries " +"to re-enter a buffered object which it is already accessing, a :exc:" +"`RuntimeError` is raised. Note this doesn't prohibit a different thread " +"from entering the buffered object." +msgstr "" + +#: ../Doc/library/io.rst:1046 +msgid "" +"The above implicitly extends to text files, since the :func:`open()` " +"function will wrap a buffered object inside a :class:`TextIOWrapper`. This " +"includes standard streams and therefore affects the built-in function :func:" +"`print()` as well." +msgstr "" diff --git a/library/ipaddress.po b/library/ipaddress.po new file mode 100644 index 000000000..5f92dea99 --- /dev/null +++ b/library/ipaddress.po @@ -0,0 +1,867 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/ipaddress.rst:2 +msgid ":mod:`ipaddress` --- IPv4/IPv6 manipulation library" +msgstr "" + +#: ../Doc/library/ipaddress.rst:9 +msgid "**Source code:** :source:`Lib/ipaddress.py`" +msgstr "**Code source :** :source:`Lib/ipaddress.py`" + +#: ../Doc/library/ipaddress.rst:13 +msgid "" +":mod:`ipaddress` provides the capabilities to create, manipulate and operate " +"on IPv4 and IPv6 addresses and networks." +msgstr "" + +#: ../Doc/library/ipaddress.rst:16 +msgid "" +"The functions and classes in this module make it straightforward to handle " +"various tasks related to IP addresses, including checking whether or not two " +"hosts are on the same subnet, iterating over all hosts in a particular " +"subnet, checking whether or not a string represents a valid IP address or " +"network definition, and so on." +msgstr "" + +#: ../Doc/library/ipaddress.rst:22 +msgid "" +"This is the full module API reference—for an overview and introduction, see :" +"ref:`ipaddress-howto`." +msgstr "" + +#: ../Doc/library/ipaddress.rst:35 +msgid "Convenience factory functions" +msgstr "" + +#: ../Doc/library/ipaddress.rst:37 +msgid "" +"The :mod:`ipaddress` module provides factory functions to conveniently " +"create IP addresses, networks and interfaces:" +msgstr "" + +#: ../Doc/library/ipaddress.rst:42 +msgid "" +"Return an :class:`IPv4Address` or :class:`IPv6Address` object depending on " +"the IP address passed as argument. Either IPv4 or IPv6 addresses may be " +"supplied; integers less than 2**32 will be considered to be IPv4 by default. " +"A :exc:`ValueError` is raised if *address* does not represent a valid IPv4 " +"or IPv6 address." +msgstr "" + +#: ../Doc/library/ipaddress.rst:56 +msgid "" +"Return an :class:`IPv4Network` or :class:`IPv6Network` object depending on " +"the IP address passed as argument. *address* is a string or integer " +"representing the IP network. Either IPv4 or IPv6 networks may be supplied; " +"integers less than 2**32 will be considered to be IPv4 by default. *strict* " +"is passed to :class:`IPv4Network` or :class:`IPv6Network` constructor. A :" +"exc:`ValueError` is raised if *address* does not represent a valid IPv4 or " +"IPv6 address, or if the network has host bits set." +msgstr "" + +#: ../Doc/library/ipaddress.rst:70 +msgid "" +"Return an :class:`IPv4Interface` or :class:`IPv6Interface` object depending " +"on the IP address passed as argument. *address* is a string or integer " +"representing the IP address. Either IPv4 or IPv6 addresses may be supplied; " +"integers less than 2**32 will be considered to be IPv4 by default. A :exc:" +"`ValueError` is raised if *address* does not represent a valid IPv4 or IPv6 " +"address." +msgstr "" + +#: ../Doc/library/ipaddress.rst:77 +msgid "" +"One downside of these convenience functions is that the need to handle both " +"IPv4 and IPv6 formats means that error messages provide minimal information " +"on the precise error, as the functions don't know whether the IPv4 or IPv6 " +"format was intended. More detailed error reporting can be obtained by " +"calling the appropriate version specific class constructors directly." +msgstr "" + +#: ../Doc/library/ipaddress.rst:86 +msgid "IP Addresses" +msgstr "" + +#: ../Doc/library/ipaddress.rst:89 +msgid "Address objects" +msgstr "" + +#: ../Doc/library/ipaddress.rst:91 +msgid "" +"The :class:`IPv4Address` and :class:`IPv6Address` objects share a lot of " +"common attributes. Some attributes that are only meaningful for IPv6 " +"addresses are also implemented by :class:`IPv4Address` objects, in order to " +"make it easier to write code that handles both IP versions correctly. " +"Address objects are :term:`hashable`, so they can be used as keys in " +"dictionaries." +msgstr "" + +#: ../Doc/library/ipaddress.rst:99 +msgid "" +"Construct an IPv4 address. An :exc:`AddressValueError` is raised if " +"*address* is not a valid IPv4 address." +msgstr "" + +#: ../Doc/library/ipaddress.rst:102 +msgid "The following constitutes a valid IPv4 address:" +msgstr "" + +#: ../Doc/library/ipaddress.rst:104 +msgid "" +"A string in decimal-dot notation, consisting of four decimal integers in the " +"inclusive range 0--255, separated by dots (e.g. ``192.168.0.1``). Each " +"integer represents an octet (byte) in the address. Leading zeroes are " +"tolerated only for values less than 8 (as there is no ambiguity between the " +"decimal and octal interpretations of such strings)." +msgstr "" + +#: ../Doc/library/ipaddress.rst:109 +msgid "An integer that fits into 32 bits." +msgstr "" + +#: ../Doc/library/ipaddress.rst:110 +msgid "" +"An integer packed into a :class:`bytes` object of length 4 (most significant " +"octet first)." +msgstr "" + +#: ../Doc/library/ipaddress.rst:122 +msgid "The appropriate version number: ``4`` for IPv4, ``6`` for IPv6." +msgstr "" + +#: ../Doc/library/ipaddress.rst:126 +msgid "" +"The total number of bits in the address representation for this version: " +"``32`` for IPv4, ``128`` for IPv6." +msgstr "" + +#: ../Doc/library/ipaddress.rst:129 +msgid "" +"The prefix defines the number of leading bits in an address that are " +"compared to determine whether or not an address is part of a network." +msgstr "" + +#: ../Doc/library/ipaddress.rst:136 +msgid "" +"The string representation in dotted decimal notation. Leading zeroes are " +"never included in the representation." +msgstr "" + +#: ../Doc/library/ipaddress.rst:139 +msgid "" +"As IPv4 does not define a shorthand notation for addresses with octets set " +"to zero, these two attributes are always the same as ``str(addr)`` for IPv4 " +"addresses. Exposing these attributes makes it easier to write display code " +"that can handle both IPv4 and IPv6 addresses." +msgstr "" + +#: ../Doc/library/ipaddress.rst:146 +msgid "" +"The binary representation of this address - a :class:`bytes` object of the " +"appropriate length (most significant octet first). This is 4 bytes for IPv4 " +"and 16 bytes for IPv6." +msgstr "" + +#: ../Doc/library/ipaddress.rst:152 +msgid "The name of the reverse DNS PTR record for the IP address, e.g.::" +msgstr "" + +#: ../Doc/library/ipaddress.rst:159 +msgid "" +"This is the name that could be used for performing a PTR lookup, not the " +"resolved hostname itself." +msgstr "" + +#: ../Doc/library/ipaddress.rst:166 +msgid "" +"``True`` if the address is reserved for multicast use. See :RFC:`3171` (for " +"IPv4) or :RFC:`2373` (for IPv6)." +msgstr "" + +#: ../Doc/library/ipaddress.rst:171 +msgid "" +"``True`` if the address is allocated for private networks. See iana-ipv4-" +"special-registry_ (for IPv4) or iana-ipv6-special-registry_ (for IPv6)." +msgstr "" + +#: ../Doc/library/ipaddress.rst:177 +msgid "" +"``True`` if the address is allocated for public networks. See iana-ipv4-" +"special-registry_ (for IPv4) or iana-ipv6-special-registry_ (for IPv6)." +msgstr "" + +#: ../Doc/library/ipaddress.rst:185 +msgid "" +"``True`` if the address is unspecified. See :RFC:`5735` (for IPv4) or :RFC:" +"`2373` (for IPv6)." +msgstr "" + +#: ../Doc/library/ipaddress.rst:190 +msgid "``True`` if the address is otherwise IETF reserved." +msgstr "" + +#: ../Doc/library/ipaddress.rst:194 +msgid "" +"``True`` if this is a loopback address. See :RFC:`3330` (for IPv4) or :RFC:" +"`2373` (for IPv6)." +msgstr "" + +#: ../Doc/library/ipaddress.rst:199 +msgid "" +"``True`` if the address is reserved for link-local usage. See :RFC:`3927`." +msgstr "" + +#: ../Doc/library/ipaddress.rst:208 +msgid "" +"Construct an IPv6 address. An :exc:`AddressValueError` is raised if " +"*address* is not a valid IPv6 address." +msgstr "" + +#: ../Doc/library/ipaddress.rst:211 +msgid "The following constitutes a valid IPv6 address:" +msgstr "" + +#: ../Doc/library/ipaddress.rst:213 +msgid "" +"A string consisting of eight groups of four hexadecimal digits, each group " +"representing 16 bits. The groups are separated by colons. This describes an " +"*exploded* (longhand) notation. The string can also be *compressed* " +"(shorthand notation) by various means. See :RFC:`4291` for details. For " +"example, ``\"0000:0000:0000:0000:0000:0abc:0007:0def\"`` can be compressed " +"to ``\"::abc:7:def\"``." +msgstr "" + +#: ../Doc/library/ipaddress.rst:220 +msgid "An integer that fits into 128 bits." +msgstr "" + +#: ../Doc/library/ipaddress.rst:221 +msgid "" +"An integer packed into a :class:`bytes` object of length 16, big-endian." +msgstr "" + +#: ../Doc/library/ipaddress.rst:228 +msgid "" +"The short form of the address representation, with leading zeroes in groups " +"omitted and the longest sequence of groups consisting entirely of zeroes " +"collapsed to a single empty group." +msgstr "" + +#: ../Doc/library/ipaddress.rst:232 +msgid "This is also the value returned by ``str(addr)`` for IPv6 addresses." +msgstr "" + +#: ../Doc/library/ipaddress.rst:236 +msgid "" +"The long form of the address representation, with all leading zeroes and " +"groups consisting entirely of zeroes included." +msgstr "" + +#: ../Doc/library/ipaddress.rst:240 +msgid "" +"For the following attributes, see the corresponding documentation of the :" +"class:`IPv4Address` class:" +msgstr "" + +#: ../Doc/library/ipaddress.rst:255 +msgid "is_global" +msgstr "" + +#: ../Doc/library/ipaddress.rst:260 +msgid "" +"``True`` if the address is reserved for site-local usage. Note that the " +"site-local address space has been deprecated by :RFC:`3879`. Use :attr:" +"`~IPv4Address.is_private` to test if this address is in the space of unique " +"local addresses as defined by :RFC:`4193`." +msgstr "" + +#: ../Doc/library/ipaddress.rst:267 +msgid "" +"For addresses that appear to be IPv4 mapped addresses (starting with ``::" +"FFFF/96``), this property will report the embedded IPv4 address. For any " +"other address, this property will be ``None``." +msgstr "" + +#: ../Doc/library/ipaddress.rst:273 +msgid "" +"For addresses that appear to be 6to4 addresses (starting with " +"``2002::/16``) as defined by :RFC:`3056`, this property will report the " +"embedded IPv4 address. For any other address, this property will be " +"``None``." +msgstr "" + +#: ../Doc/library/ipaddress.rst:280 +msgid "" +"For addresses that appear to be Teredo addresses (starting with " +"``2001::/32``) as defined by :RFC:`4380`, this property will report the " +"embedded ``(server, client)`` IP address pair. For any other address, this " +"property will be ``None``." +msgstr "" + +#: ../Doc/library/ipaddress.rst:287 +msgid "Conversion to Strings and Integers" +msgstr "" + +#: ../Doc/library/ipaddress.rst:289 +msgid "" +"To interoperate with networking interfaces such as the socket module, " +"addresses must be converted to strings or integers. This is handled using " +"the :func:`str` and :func:`int` builtin functions::" +msgstr "" + +#: ../Doc/library/ipaddress.rst:304 ../Doc/library/ipaddress.rst:678 +#: ../Doc/library/ipaddress.rst:814 +msgid "Operators" +msgstr "Opérateurs" + +#: ../Doc/library/ipaddress.rst:306 +msgid "" +"Address objects support some operators. Unless stated otherwise, operators " +"can only be applied between compatible objects (i.e. IPv4 with IPv4, IPv6 " +"with IPv6)." +msgstr "" + +#: ../Doc/library/ipaddress.rst:312 +msgid "Comparison operators" +msgstr "" + +#: ../Doc/library/ipaddress.rst:314 +msgid "" +"Address objects can be compared with the usual set of comparison operators. " +"Some examples::" +msgstr "" + +#: ../Doc/library/ipaddress.rst:326 +msgid "Arithmetic operators" +msgstr "" + +#: ../Doc/library/ipaddress.rst:328 +msgid "" +"Integers can be added to or subtracted from address objects. Some examples::" +msgstr "" + +#: ../Doc/library/ipaddress.rst:341 +msgid "IP Network definitions" +msgstr "" + +#: ../Doc/library/ipaddress.rst:343 +msgid "" +"The :class:`IPv4Network` and :class:`IPv6Network` objects provide a " +"mechanism for defining and inspecting IP network definitions. A network " +"definition consists of a *mask* and a *network address*, and as such defines " +"a range of IP addresses that equal the network address when masked (binary " +"AND) with the mask. For example, a network definition with the mask " +"``255.255.255.0`` and the network address ``192.168.1.0`` consists of IP " +"addresses in the inclusive range ``192.168.1.0`` to ``192.168.1.255``." +msgstr "" + +#: ../Doc/library/ipaddress.rst:353 +msgid "Prefix, net mask and host mask" +msgstr "" + +#: ../Doc/library/ipaddress.rst:355 +msgid "" +"There are several equivalent ways to specify IP network masks. A *prefix* " +"``/`` is a notation that denotes how many high-order bits are set in " +"the network mask. A *net mask* is an IP address with some number of high-" +"order bits set. Thus the prefix ``/24`` is equivalent to the net mask " +"``255.255.255.0`` in IPv4, or ``ffff:ff00::`` in IPv6. In addition, a *host " +"mask* is the logical inverse of a *net mask*, and is sometimes used (for " +"example in Cisco access control lists) to denote a network mask. The host " +"mask equivalent to ``/24`` in IPv4 is ``0.0.0.255``." +msgstr "" + +#: ../Doc/library/ipaddress.rst:366 +msgid "Network objects" +msgstr "" + +#: ../Doc/library/ipaddress.rst:368 +msgid "" +"All attributes implemented by address objects are implemented by network " +"objects as well. In addition, network objects implement additional " +"attributes. All of these are common between :class:`IPv4Network` and :class:" +"`IPv6Network`, so to avoid duplication they are only documented for :class:" +"`IPv4Network`. Network objects are :term:`hashable`, so they can be used as " +"keys in dictionaries." +msgstr "" + +#: ../Doc/library/ipaddress.rst:377 +msgid "" +"Construct an IPv4 network definition. *address* can be one of the following:" +msgstr "" + +#: ../Doc/library/ipaddress.rst:379 +msgid "" +"A string consisting of an IP address and an optional mask, separated by a " +"slash (``/``). The IP address is the network address, and the mask can be " +"either a single number, which means it's a *prefix*, or a string " +"representation of an IPv4 address. If it's the latter, the mask is " +"interpreted as a *net mask* if it starts with a non-zero field, or as a " +"*host mask* if it starts with a zero field, with the single exception of an " +"all-zero mask which is treated as a *net mask*. If no mask is provided, " +"it's considered to be ``/32``." +msgstr "" + +#: ../Doc/library/ipaddress.rst:388 +msgid "" +"For example, the following *address* specifications are equivalent: " +"``192.168.1.0/24``, ``192.168.1.0/255.255.255.0`` and " +"``192.168.1.0/0.0.0.255``." +msgstr "" + +#: ../Doc/library/ipaddress.rst:392 +msgid "" +"An integer that fits into 32 bits. This is equivalent to a single-address " +"network, with the network address being *address* and the mask being ``/32``." +msgstr "" + +#: ../Doc/library/ipaddress.rst:396 +msgid "" +"An integer packed into a :class:`bytes` object of length 4, big-endian. The " +"interpretation is similar to an integer *address*." +msgstr "" + +#: ../Doc/library/ipaddress.rst:399 +msgid "" +"A two-tuple of an address description and a netmask, where the address " +"description is either a string, a 32-bits integer, a 4-bytes packed integer, " +"or an existing IPv4Address object; and the netmask is either an integer " +"representing the prefix length (e.g. ``24``) or a string representing the " +"prefix mask (e.g. ``255.255.255.0``)." +msgstr "" + +#: ../Doc/library/ipaddress.rst:405 +msgid "" +"An :exc:`AddressValueError` is raised if *address* is not a valid IPv4 " +"address. A :exc:`NetmaskValueError` is raised if the mask is not valid for " +"an IPv4 address." +msgstr "" + +#: ../Doc/library/ipaddress.rst:409 ../Doc/library/ipaddress.rst:626 +msgid "" +"If *strict* is ``True`` and host bits are set in the supplied address, then :" +"exc:`ValueError` is raised. Otherwise, the host bits are masked out to " +"determine the appropriate network address." +msgstr "" + +#: ../Doc/library/ipaddress.rst:413 +msgid "" +"Unless stated otherwise, all network methods accepting other network/address " +"objects will raise :exc:`TypeError` if the argument's IP version is " +"incompatible to ``self``." +msgstr "" + +#: ../Doc/library/ipaddress.rst:419 ../Doc/library/ipaddress.rst:632 +msgid "Added the two-tuple form for the *address* constructor parameter." +msgstr "" + +#: ../Doc/library/ipaddress.rst:424 +msgid "" +"Refer to the corresponding attribute documentation in :class:`IPv4Address`." +msgstr "" + +#: ../Doc/library/ipaddress.rst:434 +msgid "" +"These attributes are true for the network as a whole if they are true for " +"both the network address and the broadcast address." +msgstr "" + +#: ../Doc/library/ipaddress.rst:439 +msgid "" +"The network address for the network. The network address and the prefix " +"length together uniquely define a network." +msgstr "" + +#: ../Doc/library/ipaddress.rst:444 +msgid "" +"The broadcast address for the network. Packets sent to the broadcast address " +"should be received by every host on the network." +msgstr "" + +#: ../Doc/library/ipaddress.rst:449 +msgid "The host mask, as an :class:`IPv4Address` object." +msgstr "" + +#: ../Doc/library/ipaddress.rst:453 +msgid "The net mask, as an :class:`IPv4Address` object." +msgstr "" + +#: ../Doc/library/ipaddress.rst:459 +msgid "" +"A string representation of the network, with the mask in prefix notation." +msgstr "" + +#: ../Doc/library/ipaddress.rst:462 +msgid "" +"``with_prefixlen`` and ``compressed`` are always the same as " +"``str(network)``. ``exploded`` uses the exploded form the network address." +msgstr "" + +#: ../Doc/library/ipaddress.rst:468 +msgid "" +"A string representation of the network, with the mask in net mask notation." +msgstr "" + +#: ../Doc/library/ipaddress.rst:473 +msgid "" +"A string representation of the network, with the mask in host mask notation." +msgstr "" + +#: ../Doc/library/ipaddress.rst:478 +msgid "The total number of addresses in the network." +msgstr "" + +#: ../Doc/library/ipaddress.rst:482 +msgid "Length of the network prefix, in bits." +msgstr "" + +#: ../Doc/library/ipaddress.rst:486 +msgid "" +"Returns an iterator over the usable hosts in the network. The usable hosts " +"are all the IP addresses that belong to the network, except the network " +"address itself and the network broadcast address. For networks with a mask " +"length of 31, the network address and network broadcast address are also " +"included in the result." +msgstr "" + +#: ../Doc/library/ipaddress.rst:501 +msgid "" +"``True`` if this network is partly or wholly contained in *other* or *other* " +"is wholly contained in this network." +msgstr "" + +#: ../Doc/library/ipaddress.rst:506 +msgid "" +"Computes the network definitions resulting from removing the given *network* " +"from this one. Returns an iterator of network objects. Raises :exc:" +"`ValueError` if *network* is not completely contained in this network." +msgstr "" + +#: ../Doc/library/ipaddress.rst:519 +msgid "" +"The subnets that join to make the current network definition, depending on " +"the argument values. *prefixlen_diff* is the amount our prefix length " +"should be increased by. *new_prefix* is the desired new prefix of the " +"subnets; it must be larger than our prefix. One and only one of " +"*prefixlen_diff* and *new_prefix* must be set. Returns an iterator of " +"network objects." +msgstr "" + +#: ../Doc/library/ipaddress.rst:544 +msgid "" +"The supernet containing this network definition, depending on the argument " +"values. *prefixlen_diff* is the amount our prefix length should be " +"decreased by. *new_prefix* is the desired new prefix of the supernet; it " +"must be smaller than our prefix. One and only one of *prefixlen_diff* and " +"*new_prefix* must be set. Returns a single network object." +msgstr "" + +#: ../Doc/library/ipaddress.rst:560 +msgid "Returns *True* if this network is a subnet of *other*." +msgstr "" + +#: ../Doc/library/ipaddress.rst:571 +msgid "Returns *True* if this network is a supernet of *other*." +msgstr "" + +#: ../Doc/library/ipaddress.rst:582 +msgid "" +"Compare this network to *other*. In this comparison only the network " +"addresses are considered; host bits aren't. Returns either ``-1``, ``0`` or " +"``1``." +msgstr "" + +#: ../Doc/library/ipaddress.rst:593 +msgid "" +"It uses the same ordering and comparison algorithm as \"<\", \"==\", and \">" +"\"" +msgstr "" + +#: ../Doc/library/ipaddress.rst:599 +msgid "" +"Construct an IPv6 network definition. *address* can be one of the following:" +msgstr "" + +#: ../Doc/library/ipaddress.rst:601 +msgid "" +"A string consisting of an IP address and an optional prefix length, " +"separated by a slash (``/``). The IP address is the network address, and " +"the prefix length must be a single number, the *prefix*. If no prefix " +"length is provided, it's considered to be ``/128``." +msgstr "" + +#: ../Doc/library/ipaddress.rst:606 +msgid "" +"Note that currently expanded netmasks are not supported. That means ``2001:" +"db00::0/24`` is a valid argument while ``2001:db00::0/ffff:ff00::`` not." +msgstr "" + +#: ../Doc/library/ipaddress.rst:610 +msgid "" +"An integer that fits into 128 bits. This is equivalent to a single-address " +"network, with the network address being *address* and the mask being " +"``/128``." +msgstr "" + +#: ../Doc/library/ipaddress.rst:614 +msgid "" +"An integer packed into a :class:`bytes` object of length 16, big-endian. The " +"interpretation is similar to an integer *address*." +msgstr "" + +#: ../Doc/library/ipaddress.rst:617 +msgid "" +"A two-tuple of an address description and a netmask, where the address " +"description is either a string, a 128-bits integer, a 16-bytes packed " +"integer, or an existing IPv6Address object; and the netmask is an integer " +"representing the prefix length." +msgstr "" + +#: ../Doc/library/ipaddress.rst:622 +msgid "" +"An :exc:`AddressValueError` is raised if *address* is not a valid IPv6 " +"address. A :exc:`NetmaskValueError` is raised if the mask is not valid for " +"an IPv6 address." +msgstr "" + +#: ../Doc/library/ipaddress.rst:655 +msgid "" +"Returns an iterator over the usable hosts in the network. The usable hosts " +"are all the IP addresses that belong to the network, except the Subnet-" +"Router anycast address. For networks with a mask length of 127, the Subnet-" +"Router anycast address is also included in the result." +msgstr "" + +#: ../Doc/library/ipaddress.rst:668 +msgid "" +"Refer to the corresponding attribute documentation in :class:`IPv4Network`." +msgstr "" + +#: ../Doc/library/ipaddress.rst:673 +msgid "" +"These attribute is true for the network as a whole if it is true for both " +"the network address and the broadcast address." +msgstr "" + +#: ../Doc/library/ipaddress.rst:680 +msgid "" +"Network objects support some operators. Unless stated otherwise, operators " +"can only be applied between compatible objects (i.e. IPv4 with IPv4, IPv6 " +"with IPv6)." +msgstr "" + +#: ../Doc/library/ipaddress.rst:686 ../Doc/library/ipaddress.rst:822 +msgid "Logical operators" +msgstr "" + +#: ../Doc/library/ipaddress.rst:688 +msgid "" +"Network objects can be compared with the usual set of logical operators. " +"Network objects are ordered first by network address, then by net mask." +msgstr "" + +#: ../Doc/library/ipaddress.rst:693 +msgid "Iteration" +msgstr "Itération" + +#: ../Doc/library/ipaddress.rst:695 +msgid "" +"Network objects can be iterated to list all the addresses belonging to the " +"network. For iteration, *all* hosts are returned, including unusable hosts " +"(for usable hosts, use the :meth:`~IPv4Network.hosts` method). An example::" +msgstr "" + +#: ../Doc/library/ipaddress.rst:722 +msgid "Networks as containers of addresses" +msgstr "" + +#: ../Doc/library/ipaddress.rst:724 +msgid "Network objects can act as containers of addresses. Some examples::" +msgstr "" + +#: ../Doc/library/ipaddress.rst:737 +msgid "Interface objects" +msgstr "" + +#: ../Doc/library/ipaddress.rst:739 +msgid "" +"Interface objects are :term:`hashable`, so they can be used as keys in " +"dictionaries." +msgstr "" + +#: ../Doc/library/ipaddress.rst:744 +msgid "" +"Construct an IPv4 interface. The meaning of *address* is as in the " +"constructor of :class:`IPv4Network`, except that arbitrary host addresses " +"are always accepted." +msgstr "" + +#: ../Doc/library/ipaddress.rst:748 +msgid "" +":class:`IPv4Interface` is a subclass of :class:`IPv4Address`, so it inherits " +"all the attributes from that class. In addition, the following attributes " +"are available:" +msgstr "" + +#: ../Doc/library/ipaddress.rst:754 +msgid "The address (:class:`IPv4Address`) without network information." +msgstr "" + +#: ../Doc/library/ipaddress.rst:762 +msgid "The network (:class:`IPv4Network`) this interface belongs to." +msgstr "" + +#: ../Doc/library/ipaddress.rst:770 +msgid "" +"A string representation of the interface with the mask in prefix notation." +msgstr "" + +#: ../Doc/library/ipaddress.rst:778 +msgid "" +"A string representation of the interface with the network as a net mask." +msgstr "" + +#: ../Doc/library/ipaddress.rst:786 +msgid "" +"A string representation of the interface with the network as a host mask." +msgstr "" + +#: ../Doc/library/ipaddress.rst:795 +msgid "" +"Construct an IPv6 interface. The meaning of *address* is as in the " +"constructor of :class:`IPv6Network`, except that arbitrary host addresses " +"are always accepted." +msgstr "" + +#: ../Doc/library/ipaddress.rst:799 +msgid "" +":class:`IPv6Interface` is a subclass of :class:`IPv6Address`, so it inherits " +"all the attributes from that class. In addition, the following attributes " +"are available:" +msgstr "" + +#: ../Doc/library/ipaddress.rst:809 +msgid "" +"Refer to the corresponding attribute documentation in :class:`IPv4Interface`." +msgstr "" + +#: ../Doc/library/ipaddress.rst:816 +msgid "" +"Interface objects support some operators. Unless stated otherwise, " +"operators can only be applied between compatible objects (i.e. IPv4 with " +"IPv4, IPv6 with IPv6)." +msgstr "" + +#: ../Doc/library/ipaddress.rst:824 +msgid "" +"Interface objects can be compared with the usual set of logical operators." +msgstr "" + +#: ../Doc/library/ipaddress.rst:826 +msgid "" +"For equality comparison (``==`` and ``!=``), both the IP address and network " +"must be the same for the objects to be equal. An interface will not compare " +"equal to any address or network object." +msgstr "" + +#: ../Doc/library/ipaddress.rst:830 +msgid "" +"For ordering (``<``, ``>``, etc) the rules are different. Interface and " +"address objects with the same IP version can be compared, and the address " +"objects will always sort before the interface objects. Two interface " +"objects are first compared by their networks and, if those are the same, " +"then by their IP addresses." +msgstr "" + +#: ../Doc/library/ipaddress.rst:838 +msgid "Other Module Level Functions" +msgstr "" + +#: ../Doc/library/ipaddress.rst:840 +msgid "The module also provides the following module level functions:" +msgstr "" + +#: ../Doc/library/ipaddress.rst:844 +msgid "" +"Represent an address as 4 packed bytes in network (big-endian) order. " +"*address* is an integer representation of an IPv4 IP address. A :exc:" +"`ValueError` is raised if the integer is negative or too large to be an IPv4 " +"IP address." +msgstr "" + +#: ../Doc/library/ipaddress.rst:857 +msgid "" +"Represent an address as 16 packed bytes in network (big-endian) order. " +"*address* is an integer representation of an IPv6 IP address. A :exc:" +"`ValueError` is raised if the integer is negative or too large to be an IPv6 " +"IP address." +msgstr "" + +#: ../Doc/library/ipaddress.rst:865 +msgid "" +"Return an iterator of the summarized network range given the first and last " +"IP addresses. *first* is the first :class:`IPv4Address` or :class:" +"`IPv6Address` in the range and *last* is the last :class:`IPv4Address` or :" +"class:`IPv6Address` in the range. A :exc:`TypeError` is raised if *first* " +"or *last* are not IP addresses or are not of the same version. A :exc:" +"`ValueError` is raised if *last* is not greater than *first* or if *first* " +"address version is not 4 or 6." +msgstr "" + +#: ../Doc/library/ipaddress.rst:881 +msgid "" +"Return an iterator of the collapsed :class:`IPv4Network` or :class:" +"`IPv6Network` objects. *addresses* is an iterator of :class:`IPv4Network` " +"or :class:`IPv6Network` objects. A :exc:`TypeError` is raised if " +"*addresses* contains mixed version objects." +msgstr "" + +#: ../Doc/library/ipaddress.rst:894 +msgid "" +"Return a key suitable for sorting between networks and addresses. Address " +"and Network objects are not sortable by default; they're fundamentally " +"different, so the expression::" +msgstr "" + +#: ../Doc/library/ipaddress.rst:900 +msgid "" +"doesn't make sense. There are some times however, where you may wish to " +"have :mod:`ipaddress` sort these anyway. If you need to do this, you can " +"use this function as the *key* argument to :func:`sorted()`." +msgstr "" + +#: ../Doc/library/ipaddress.rst:904 +msgid "*obj* is either a network or address object." +msgstr "" + +#: ../Doc/library/ipaddress.rst:908 +msgid "Custom Exceptions" +msgstr "" + +#: ../Doc/library/ipaddress.rst:910 +msgid "" +"To support more specific error reporting from class constructors, the module " +"defines the following exceptions:" +msgstr "" + +#: ../Doc/library/ipaddress.rst:915 +msgid "Any value error related to the address." +msgstr "" + +#: ../Doc/library/ipaddress.rst:920 +msgid "Any value error related to the net mask." +msgstr "" diff --git a/library/ipc.po b/library/ipc.po new file mode 100644 index 000000000..fa887d0ed --- /dev/null +++ b/library/ipc.po @@ -0,0 +1,42 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-13 17:33+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/ipc.rst:5 +msgid "Networking and Interprocess Communication" +msgstr "Réseau et communication entre processus" + +#: ../Doc/library/ipc.rst:7 +msgid "" +"The modules described in this chapter provide mechanisms for networking and " +"inter-processes communication." +msgstr "" +"Les modules décrits dans ce chapitre fournissent différents mécanismes de " +"mise en réseau et de communication entre processus." + +#: ../Doc/library/ipc.rst:10 +msgid "" +"Some modules only work for two processes that are on the same machine, e.g. :" +"mod:`signal` and :mod:`mmap`. Other modules support networking protocols " +"that two or more processes can use to communicate across machines." +msgstr "" +"Certains de ces modules ne fonctionnent que pour deux processus sur une " +"seule machine, comme les modules :mod:`signal` et :mod:`mmap`. D'autres " +"gèrent des protocoles réseaux que deux processus, ou plus, peuvent utiliser " +"pour communiquer entre différentes machines." + +#: ../Doc/library/ipc.rst:14 +msgid "The list of modules described in this chapter is:" +msgstr "La liste des modules documentés dans ce chapitre est :" diff --git a/library/itertools.po b/library/itertools.po new file mode 100644 index 000000000..e235c72f1 --- /dev/null +++ b/library/itertools.po @@ -0,0 +1,972 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-09-28 14:32+0200\n" +"Last-Translator: Raphaël Gomès \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" + +#: ../Doc/library/itertools.rst:2 +msgid ":mod:`itertools` --- Functions creating iterators for efficient looping" +msgstr "" +":mod:`itertools` — Fonctions créant des itérateurs pour boucler efficacement" + +#: ../Doc/library/itertools.rst:16 +msgid "" +"This module implements a number of :term:`iterator` building blocks inspired " +"by constructs from APL, Haskell, and SML. Each has been recast in a form " +"suitable for Python." +msgstr "" +"Ce module implémente de nombreuses briques :term:`d'itérateurs ` " +"inspirées par des éléments de APL, Haskell et SML. Toutes ont été " +"retravaillées dans un format adapté à Python." + +#: ../Doc/library/itertools.rst:20 +msgid "" +"The module standardizes a core set of fast, memory efficient tools that are " +"useful by themselves or in combination. Together, they form an \"iterator " +"algebra\" making it possible to construct specialized tools succinctly and " +"efficiently in pure Python." +msgstr "" +"Ce module standardise un ensemble de base d'outils rapides et efficaces en " +"mémoire qui peuvent être utilisés individuellement ou en les combinant. " +"Ensemble, ils forment une « algèbre d'itérateurs » rendant possible la " +"construction rapide et efficace d'outils spécialisés en Python." + +#: ../Doc/library/itertools.rst:25 +msgid "" +"For instance, SML provides a tabulation tool: ``tabulate(f)`` which produces " +"a sequence ``f(0), f(1), ...``. The same effect can be achieved in Python " +"by combining :func:`map` and :func:`count` to form ``map(f, count())``." +msgstr "" +"Par exemple, SML fournit un outil de tabulation ``tabulate(f)`` qui produit " +"une séquence ``f(0), f(1), ...``. Le même résultat peut être obtenu en " +"Python en combinant :func:`map` et :func:`count` pour former ``map(f, " +"count())``." + +#: ../Doc/library/itertools.rst:29 +msgid "" +"These tools and their built-in counterparts also work well with the high-" +"speed functions in the :mod:`operator` module. For example, the " +"multiplication operator can be mapped across two vectors to form an " +"efficient dot-product: ``sum(map(operator.mul, vector1, vector2))``." +msgstr "" +"Ces outils et leurs équivalents natifs fonctionnent également bien avec les " +"fonctions optimisées du module :mod:`operator`. Par exemple, l'opérateur de " +"multiplication peut être appliqué à deux vecteurs pour créer un produit " +"scalaire efficace : ``sum(map(operator.mul, vecteur1, vecteur2))``." + +#: ../Doc/library/itertools.rst:35 +msgid "**Infinite iterators:**" +msgstr "**Itérateurs infinis :**" + +#: ../Doc/library/itertools.rst:38 ../Doc/library/itertools.rst:48 +#: ../Doc/library/itertools.rst:67 +msgid "Iterator" +msgstr "Itérateur" + +#: ../Doc/library/itertools.rst:38 ../Doc/library/itertools.rst:48 +#: ../Doc/library/itertools.rst:67 +msgid "Arguments" +msgstr "Arguments" + +#: ../Doc/library/itertools.rst:38 ../Doc/library/itertools.rst:48 +#: ../Doc/library/itertools.rst:67 +msgid "Results" +msgstr "Résultats" + +#: ../Doc/library/itertools.rst:38 ../Doc/library/itertools.rst:48 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/itertools.rst:40 +msgid ":func:`count`" +msgstr ":func:`count`" + +#: ../Doc/library/itertools.rst:40 +msgid "start, [step]" +msgstr "start, [step]" + +#: ../Doc/library/itertools.rst:40 +msgid "start, start+step, start+2*step, ..." +msgstr "start, start+step, start+2*step, ..." + +#: ../Doc/library/itertools.rst:40 +msgid "``count(10) --> 10 11 12 13 14 ...``" +msgstr "``count(10) --> 10 11 12 13 14 ...``" + +#: ../Doc/library/itertools.rst:41 +msgid ":func:`cycle`" +msgstr ":func:`cycle`" + +#: ../Doc/library/itertools.rst:41 +msgid "p" +msgstr "p" + +#: ../Doc/library/itertools.rst:41 +msgid "p0, p1, ... plast, p0, p1, ..." +msgstr "p0, p1, ... plast, p0, p1, ..." + +#: ../Doc/library/itertools.rst:41 +msgid "``cycle('ABCD') --> A B C D A B C D ...``" +msgstr "``cycle('ABCD') --> A B C D A B C D ...``" + +#: ../Doc/library/itertools.rst:42 +msgid ":func:`repeat`" +msgstr ":func:`repeat`" + +#: ../Doc/library/itertools.rst:42 +msgid "elem [,n]" +msgstr "elem [,n]" + +#: ../Doc/library/itertools.rst:42 +msgid "elem, elem, elem, ... endlessly or up to n times" +msgstr "*elem*, *elem*, *elem*, ... à l'infini ou jusqu'à n fois" + +#: ../Doc/library/itertools.rst:42 +msgid "``repeat(10, 3) --> 10 10 10``" +msgstr "``repeat(10, 3) --> 10 10 10``" + +#: ../Doc/library/itertools.rst:45 +msgid "**Iterators terminating on the shortest input sequence:**" +msgstr "**Itérateurs se terminant par la séquence d'entrée la plus courte :**" + +#: ../Doc/library/itertools.rst:50 +msgid ":func:`accumulate`" +msgstr ":func:`accumulate`" + +#: ../Doc/library/itertools.rst:50 +msgid "p [,func]" +msgstr "p [,func]" + +#: ../Doc/library/itertools.rst:50 +msgid "p0, p0+p1, p0+p1+p2, ..." +msgstr "p0, p0+p1, p0+p1+p2, ..." + +#: ../Doc/library/itertools.rst:50 +msgid "``accumulate([1,2,3,4,5]) --> 1 3 6 10 15``" +msgstr "``accumulate([1,2,3,4,5]) --> 1 3 6 10 15``" + +#: ../Doc/library/itertools.rst:51 +msgid ":func:`chain`" +msgstr ":func:`chain`" + +#: ../Doc/library/itertools.rst:51 ../Doc/library/itertools.rst:61 +msgid "p, q, ..." +msgstr "p, q, ..." + +#: ../Doc/library/itertools.rst:51 ../Doc/library/itertools.rst:52 +msgid "p0, p1, ... plast, q0, q1, ..." +msgstr "p0, p1, ... plast, q0, q1, ..." + +#: ../Doc/library/itertools.rst:51 +msgid "``chain('ABC', 'DEF') --> A B C D E F``" +msgstr "``chain('ABC', 'DEF') --> A B C D E F``" + +#: ../Doc/library/itertools.rst:52 +msgid ":func:`chain.from_iterable`" +msgstr ":func:`chain.from_iterable`" + +#: ../Doc/library/itertools.rst:52 +msgid "iterable" +msgstr "itérable" + +#: ../Doc/library/itertools.rst:52 +msgid "``chain.from_iterable(['ABC', 'DEF']) --> A B C D E F``" +msgstr "``chain.from_iterable(['ABC', 'DEF']) --> A B C D E F``" + +#: ../Doc/library/itertools.rst:53 +msgid ":func:`compress`" +msgstr ":func:`compress`" + +#: ../Doc/library/itertools.rst:53 +msgid "data, selectors" +msgstr "data, selectors" + +#: ../Doc/library/itertools.rst:53 +msgid "(d[0] if s[0]), (d[1] if s[1]), ..." +msgstr "(d[0] if s[0]), (d[1] if s[1]), ..." + +#: ../Doc/library/itertools.rst:53 +msgid "``compress('ABCDEF', [1,0,1,0,1,1]) --> A C E F``" +msgstr "``compress('ABCDEF', [1,0,1,0,1,1]) --> A C E F``" + +#: ../Doc/library/itertools.rst:54 +msgid ":func:`dropwhile`" +msgstr ":func:`dropwhile`" + +#: ../Doc/library/itertools.rst:54 ../Doc/library/itertools.rst:55 +#: ../Doc/library/itertools.rst:59 +msgid "pred, seq" +msgstr "pred, seq" + +#: ../Doc/library/itertools.rst:54 +msgid "seq[n], seq[n+1], starting when pred fails" +msgstr "``seq[n]``, ``seq[n+1]``, commençant quand *pred* échoue" + +#: ../Doc/library/itertools.rst:54 +msgid "``dropwhile(lambda x: x<5, [1,4,6,4,1]) --> 6 4 1``" +msgstr "``dropwhile(lambda x: x<5, [1,4,6,4,1]) --> 6 4 1``" + +#: ../Doc/library/itertools.rst:55 +msgid ":func:`filterfalse`" +msgstr ":func:`filterfalse`" + +#: ../Doc/library/itertools.rst:55 +msgid "elements of seq where pred(elem) is false" +msgstr "éléments de *seq* pour lesquels *pred(elem)* est faux" + +#: ../Doc/library/itertools.rst:55 +msgid "``filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8``" +msgstr "``filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8``" + +#: ../Doc/library/itertools.rst:56 +msgid ":func:`groupby`" +msgstr ":func:`groupby`" + +#: ../Doc/library/itertools.rst:56 +msgid "iterable[, key]" +msgstr "iterable[, key]" + +#: ../Doc/library/itertools.rst:56 +msgid "sub-iterators grouped by value of key(v)" +msgstr "sous-itérateurs groupés par la valeur de *key(v)*" + +#: ../Doc/library/itertools.rst:57 +msgid ":func:`islice`" +msgstr ":func:`islice`" + +#: ../Doc/library/itertools.rst:57 +msgid "seq, [start,] stop [, step]" +msgstr "seq, [start,] stop [, step]" + +#: ../Doc/library/itertools.rst:57 +msgid "elements from seq[start:stop:step]" +msgstr "éléments de ``seq[start:stop:step]``" + +#: ../Doc/library/itertools.rst:57 +msgid "``islice('ABCDEFG', 2, None) --> C D E F G``" +msgstr "``islice('ABCDEFG', 2, None) --> C D E F G``" + +#: ../Doc/library/itertools.rst:58 +msgid ":func:`starmap`" +msgstr ":func:`starmap`" + +#: ../Doc/library/itertools.rst:58 +msgid "func, seq" +msgstr "func, seq" + +#: ../Doc/library/itertools.rst:58 +msgid "func(\\*seq[0]), func(\\*seq[1]), ..." +msgstr "func(\\*seq[0]), func(\\*seq[1]), ..." + +#: ../Doc/library/itertools.rst:58 +msgid "``starmap(pow, [(2,5), (3,2), (10,3)]) --> 32 9 1000``" +msgstr "``starmap(pow, [(2,5), (3,2), (10,3)]) --> 32 9 1000``" + +#: ../Doc/library/itertools.rst:59 +msgid ":func:`takewhile`" +msgstr ":func:`takewhile`" + +#: ../Doc/library/itertools.rst:59 +msgid "seq[0], seq[1], until pred fails" +msgstr "``seq[0]``, ``seq[1]``, jusqu'à ce que *pred* échoue" + +#: ../Doc/library/itertools.rst:59 +msgid "``takewhile(lambda x: x<5, [1,4,6,4,1]) --> 1 4``" +msgstr "``takewhile(lambda x: x<5, [1,4,6,4,1]) --> 1 4``" + +#: ../Doc/library/itertools.rst:60 +msgid ":func:`tee`" +msgstr ":func:`tee`" + +#: ../Doc/library/itertools.rst:60 +msgid "it, n" +msgstr "it, n" + +#: ../Doc/library/itertools.rst:60 +msgid "it1, it2, ... itn splits one iterator into n" +msgstr "*it1*, *it2*, ... *itn* sépare un itérateur en *n*" + +#: ../Doc/library/itertools.rst:61 +msgid ":func:`zip_longest`" +msgstr ":func:`zip_longest`" + +#: ../Doc/library/itertools.rst:61 +msgid "(p[0], q[0]), (p[1], q[1]), ..." +msgstr "(p[0], q[0]), (p[1], q[1]), ..." + +#: ../Doc/library/itertools.rst:61 +msgid "``zip_longest('ABCD', 'xy', fillvalue='-') --> Ax By C- D-``" +msgstr "``zip_longest('ABCD', 'xy', fillvalue='-') --> Ax By C- D-``" + +#: ../Doc/library/itertools.rst:64 +msgid "**Combinatoric iterators:**" +msgstr "**Itérateurs combinatoires :**" + +#: ../Doc/library/itertools.rst:69 +msgid ":func:`product`" +msgstr ":func:`product`" + +#: ../Doc/library/itertools.rst:69 +msgid "p, q, ... [repeat=1]" +msgstr "p, q, ... [repeat=1]" + +#: ../Doc/library/itertools.rst:69 +msgid "cartesian product, equivalent to a nested for-loop" +msgstr "produit cartésien, équivalent à une boucle *for* imbriquée" + +#: ../Doc/library/itertools.rst:70 +msgid ":func:`permutations`" +msgstr ":func:`permutations`" + +#: ../Doc/library/itertools.rst:70 +msgid "p[, r]" +msgstr "p[, r]" + +#: ../Doc/library/itertools.rst:70 +msgid "r-length tuples, all possible orderings, no repeated elements" +msgstr "" +"n-uplets de longueur r, tous les ré-arrangements possibles, sans répétition " +"d'éléments" + +#: ../Doc/library/itertools.rst:71 +msgid ":func:`combinations`" +msgstr ":func:`combinations`" + +#: ../Doc/library/itertools.rst:71 ../Doc/library/itertools.rst:72 +msgid "p, r" +msgstr "p, r" + +#: ../Doc/library/itertools.rst:71 +msgid "r-length tuples, in sorted order, no repeated elements" +msgstr "n-uplets de longueur r, ordonnés, sans répétition d'éléments" + +#: ../Doc/library/itertools.rst:72 +msgid ":func:`combinations_with_replacement`" +msgstr ":func:`combinations_with_replacement`" + +#: ../Doc/library/itertools.rst:72 +msgid "r-length tuples, in sorted order, with repeated elements" +msgstr "n-uplets de longueur r, ordonnés, avec répétition d'éléments" + +#: ../Doc/library/itertools.rst:73 +msgid "``product('ABCD', repeat=2)``" +msgstr "``product('ABCD', repeat=2)``" + +#: ../Doc/library/itertools.rst:73 +msgid "``AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD``" +msgstr "``AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD``" + +#: ../Doc/library/itertools.rst:74 +msgid "``permutations('ABCD', 2)``" +msgstr "``permutations('ABCD', 2)``" + +#: ../Doc/library/itertools.rst:74 +msgid "``AB AC AD BA BC BD CA CB CD DA DB DC``" +msgstr "``AB AC AD BA BC BD CA CB CD DA DB DC``" + +#: ../Doc/library/itertools.rst:75 +msgid "``combinations('ABCD', 2)``" +msgstr "``combinations('ABCD', 2)``" + +#: ../Doc/library/itertools.rst:75 +msgid "``AB AC AD BC BD CD``" +msgstr "``AB AC AD BC BD CD``" + +#: ../Doc/library/itertools.rst:76 +msgid "``combinations_with_replacement('ABCD', 2)``" +msgstr "``combinations_with_replacement('ABCD', 2)``" + +#: ../Doc/library/itertools.rst:76 +msgid "``AA AB AC AD BB BC BD CC CD DD``" +msgstr "``AA AB AC AD BB BC BD CC CD DD``" + +#: ../Doc/library/itertools.rst:83 +msgid "Itertool functions" +msgstr "Fonctions d'*itertool*" + +#: ../Doc/library/itertools.rst:85 +msgid "" +"The following module functions all construct and return iterators. Some " +"provide streams of infinite length, so they should only be accessed by " +"functions or loops that truncate the stream." +msgstr "" +"Toutes les fonctions du module qui suivent construisent et renvoient des " +"itérateurs. Certaines produisent des flux de longueur infinie ; celles-ci ne " +"doivent donc être contrôlées que par des fonctions ou boucles qui " +"interrompent le flux." + +#: ../Doc/library/itertools.rst:91 +msgid "" +"Make an iterator that returns accumulated sums, or accumulated results of " +"other binary functions (specified via the optional *func* argument). If " +"*func* is supplied, it should be a function of two arguments. Elements of " +"the input *iterable* may be any type that can be accepted as arguments to " +"*func*. (For example, with the default operation of addition, elements may " +"be any addable type including :class:`~decimal.Decimal` or :class:" +"`~fractions.Fraction`.) If the input iterable is empty, the output iterable " +"will also be empty." +msgstr "" +"Créer un itérateur qui renvoie les sommes accumulées, ou les résultats " +"accumulés d'autres fonctions binaires (spécifiées par l'argument optionnel " +"*func*). Si *func* est renseigné, il doit être une fonction à deux " +"arguments. Les éléments de l'itérable d'entrée peuvent être de n'importe " +"quel type qui peuvent être acceptés comme arguments de *func*. (Par exemple, " +"avec l'opération par défaut d'addition, les éléments peuvent être de " +"n'importe quel type additionnable incluant :class:`~decimal.Decimal` ou :" +"class:`~fractions.Fraction`.) Si l'itérable d'entrée est vide, l'itérable de " +"sortie sera aussi vide." + +#: ../Doc/library/itertools.rst:101 ../Doc/library/itertools.rst:193 +#: ../Doc/library/itertools.rst:242 ../Doc/library/itertools.rst:478 +#: ../Doc/library/itertools.rst:557 ../Doc/library/itertools.rst:610 +msgid "Roughly equivalent to::" +msgstr "À peu près équivalent à ::" + +#: ../Doc/library/itertools.rst:117 +msgid "" +"There are a number of uses for the *func* argument. It can be set to :func:" +"`min` for a running minimum, :func:`max` for a running maximum, or :func:" +"`operator.mul` for a running product. Amortization tables can be built by " +"accumulating interest and applying payments. First-order `recurrence " +"relations `_ can be " +"modeled by supplying the initial value in the iterable and using only the " +"accumulated total in *func* argument::" +msgstr "" +"Il y a de nombreuses utilisations à l'argument *func*. Celui-ci peut être :" +"func:`min` pour calculer un minimum glissant, :func:`max` pour un maximum " +"glissant ou :func:`operator.mul` pour un produit glissant. Des tableaux de " +"remboursements peuvent être construits en ajoutant les intérêts et en " +"soustrayant les paiements. Des `suites par récurrence `_ de premier ordre peuvent " +"être modélisées en en passant la valeur initiale dans *iterable* et en " +"n'utilisant que le premier argument de *func*, qui contient le résultat des " +"évaluations précédentes ::" + +#: ../Doc/library/itertools.rst:147 +msgid "" +"See :func:`functools.reduce` for a similar function that returns only the " +"final accumulated value." +msgstr "" +"Voir :func:`functools.reduce` pour une fonction similaire qui ne renvoie que " +"la valeur accumulée finale." + +#: ../Doc/library/itertools.rst:152 +msgid "Added the optional *func* parameter." +msgstr "Ajout du paramètre optionnel *func*." + +#: ../Doc/library/itertools.rst:157 +msgid "" +"Make an iterator that returns elements from the first iterable until it is " +"exhausted, then proceeds to the next iterable, until all of the iterables " +"are exhausted. Used for treating consecutive sequences as a single " +"sequence. Roughly equivalent to::" +msgstr "" +"Crée un itérateur qui renvoie les éléments du premier itérable jusqu'à son " +"épuisement, puis continue avec l'itérable suivant jusqu'à ce que tous les " +"itérables soient épuisés. Utilisée pour traiter des séquences consécutives " +"comme une seule séquence. À peu près équivalent à ::" + +#: ../Doc/library/itertools.rst:171 +msgid "" +"Alternate constructor for :func:`chain`. Gets chained inputs from a single " +"iterable argument that is evaluated lazily. Roughly equivalent to::" +msgstr "" +"Constructeur alternatif pour :func:`chain`. Récupère des entrées chaînées " +"depuis un unique itérable passé en argument, qui est évalué de manière " +"paresseuse. À peu près équivalent à ::" + +#: ../Doc/library/itertools.rst:183 +msgid "Return *r* length subsequences of elements from the input *iterable*." +msgstr "Renvoie les combinaisons de longueur *r* de *iterable*." + +#: ../Doc/library/itertools.rst:185 ../Doc/library/itertools.rst:234 +msgid "" +"Combinations are emitted in lexicographic sort order. So, if the input " +"*iterable* is sorted, the combination tuples will be produced in sorted " +"order." +msgstr "" +"Les combinaisons sont produites dans l'ordre lexicographique. Ainsi, si " +"l'itérable *iterable* est ordonné, les n-uplets de combinaison produits le " +"sont aussi." + +#: ../Doc/library/itertools.rst:189 +msgid "" +"Elements are treated as unique based on their position, not on their value. " +"So if the input elements are unique, there will be no repeat values in each " +"combination." +msgstr "" +"Les éléments sont considérés comme uniques en fonction de leur position, et " +"non pas de leur valeur. Ainsi, si les éléments en entrée sont uniques, il " +"n'y aura pas de valeurs répétées dans chaque combinaison." + +#: ../Doc/library/itertools.rst:215 +msgid "" +"The code for :func:`combinations` can be also expressed as a subsequence of :" +"func:`permutations` after filtering entries where the elements are not in " +"sorted order (according to their position in the input pool)::" +msgstr "" +"Un appel à :func:`combinations` peut aussi être vu comme à un appel à :func:" +"`permutations` en excluant les sorties dans lesquelles les éléments ne sont " +"pas ordonnés (avec la même relation d'ordre que pour l'entrée) ::" + +#: ../Doc/library/itertools.rst:226 +msgid "" +"The number of items returned is ``n! / r! / (n-r)!`` when ``0 <= r <= n`` or " +"zero when ``r > n``." +msgstr "" +"Le nombre d'éléments renvoyés est ``n! / r! / (n-r)!`` quand ``0 <= r <= n`` " +"ou zéro quand ``r > n``." + +#: ../Doc/library/itertools.rst:231 +msgid "" +"Return *r* length subsequences of elements from the input *iterable* " +"allowing individual elements to be repeated more than once." +msgstr "" +"Renvoyer les sous-séquences de longueur *r* des éléments de l'itérable " +"*iterable* d'entrée, permettant aux éléments individuels d'être répétés plus " +"d'une fois." + +#: ../Doc/library/itertools.rst:238 +msgid "" +"Elements are treated as unique based on their position, not on their value. " +"So if the input elements are unique, the generated combinations will also be " +"unique." +msgstr "" +"Les éléments sont considérés comme uniques en fonction de leur position, et " +"non pas de leur valeur. Ainsi si les éléments d'entrée sont uniques, les " +"combinaisons générées seront aussi uniques." + +#: ../Doc/library/itertools.rst:261 +msgid "" +"The code for :func:`combinations_with_replacement` can be also expressed as " +"a subsequence of :func:`product` after filtering entries where the elements " +"are not in sorted order (according to their position in the input pool)::" +msgstr "" +"Un appel à :func:`combinations_with_replacement` peut aussi être vu comme un " +"appel à :func:`product` en excluant les sorties dans lesquelles les éléments " +"ne sont pas dans ordonnés (avec la même relation d'ordre que pour " +"l'entrée) ::" + +#: ../Doc/library/itertools.rst:272 +msgid "" +"The number of items returned is ``(n+r-1)! / r! / (n-1)!`` when ``n > 0``." +msgstr "" +"Le nombre d'éléments renvoyés est ``(n+r-1)! / r! / (n-1)!`` quand ``n > 0``." + +#: ../Doc/library/itertools.rst:279 +msgid "" +"Make an iterator that filters elements from *data* returning only those that " +"have a corresponding element in *selectors* that evaluates to ``True``. " +"Stops when either the *data* or *selectors* iterables has been exhausted. " +"Roughly equivalent to::" +msgstr "" +"Crée un itérateur qui filtre les éléments de *data*, en ne renvoyant que " +"ceux dont l'élément correspondant dans *selectors* s'évalue à ``True``. " +"S'arrête quand l'itérable *data* ou *selectors* a été épuisé. À peu près " +"équivalent à ::" + +#: ../Doc/library/itertools.rst:293 +msgid "" +"Make an iterator that returns evenly spaced values starting with number " +"*start*. Often used as an argument to :func:`map` to generate consecutive " +"data points. Also, used with :func:`zip` to add sequence numbers. Roughly " +"equivalent to::" +msgstr "" +"Crée un itérateur qui renvoie des valeurs espacées régulièrement, en " +"commençant par le nombre *start*. Souvent utilisé comme un argument de :func:" +"`map` pour générer des points de données consécutifs. Aussi utilisé avec :" +"func:`zip` pour ajouter des nombres de séquence. À peu près équivalent à ::" + +#: ../Doc/library/itertools.rst:305 +msgid "" +"When counting with floating point numbers, better accuracy can sometimes be " +"achieved by substituting multiplicative code such as: ``(start + step * i " +"for i in count())``." +msgstr "" +"Pour compter avec des nombres à virgule flottante, il est parfois préférable " +"d'utiliser le code : ``(start + step * i for i in count())`` pour obtenir " +"une meilleure précision." + +#: ../Doc/library/itertools.rst:309 +msgid "Added *step* argument and allowed non-integer arguments." +msgstr "" +"Ajout de l'argument *step* et ajout du support pour les arguments non-" +"entiers." + +#: ../Doc/library/itertools.rst:314 +msgid "" +"Make an iterator returning elements from the iterable and saving a copy of " +"each. When the iterable is exhausted, return elements from the saved copy. " +"Repeats indefinitely. Roughly equivalent to::" +msgstr "" +"Crée un itérateur qui renvoie les éléments de l'itérable en en sauvegardant " +"une copie. Quand l'itérable est épuisé, renvoie les éléments depuis la " +"sauvegarde. Répète à l'infini. À peu près équivalent à ::" + +#: ../Doc/library/itertools.rst:328 +msgid "" +"Note, this member of the toolkit may require significant auxiliary storage " +"(depending on the length of the iterable)." +msgstr "" +"Note, cette fonction peut avoir besoin d'un stockage auxiliaire important " +"(en fonction de la longueur de l'itérable)." + +#: ../Doc/library/itertools.rst:334 +msgid "" +"Make an iterator that drops elements from the iterable as long as the " +"predicate is true; afterwards, returns every element. Note, the iterator " +"does not produce *any* output until the predicate first becomes false, so it " +"may have a lengthy start-up time. Roughly equivalent to::" +msgstr "" +"Crée un itérateur qui saute les éléments de l'itérable tant que le prédicat " +"est vrai ; renvoie ensuite chaque élément. Notez que l'itérateur ne produit " +"*aucune* sortie avant que le prédicat ne devienne faux, il peut donc avoir " +"un temps de démarrage long. À peu près équivalent à ::" + +#: ../Doc/library/itertools.rst:351 +msgid "" +"Make an iterator that filters elements from iterable returning only those " +"for which the predicate is ``False``. If *predicate* is ``None``, return the " +"items that are false. Roughly equivalent to::" +msgstr "" +"Crée un itérateur qui filtre les éléments de *iterable*, ne renvoyant " +"seulement ceux pour lesquels le prédicat est ``False``. Si *predicate* vaut " +"``None``, renvoie les éléments qui sont faux. À peu près équivalent à ::" + +#: ../Doc/library/itertools.rst:366 +msgid "" +"Make an iterator that returns consecutive keys and groups from the " +"*iterable*. The *key* is a function computing a key value for each element. " +"If not specified or is ``None``, *key* defaults to an identity function and " +"returns the element unchanged. Generally, the iterable needs to already be " +"sorted on the same key function." +msgstr "" +"Crée un itérateur qui renvoie les clés et les groupes de l'itérable " +"*iterable*. La clé *key* est une fonction qui génère une clé pour chaque " +"élément. Si *key* n'est pas spécifiée ou est ``None``, elle vaut par défaut " +"une fonction d'identité qui renvoie l'élément sans le modifier. " +"Généralement, l'itérable a besoin d'avoir ses éléments déjà classés selon " +"cette même fonction de clé." + +#: ../Doc/library/itertools.rst:372 +msgid "" +"The operation of :func:`groupby` is similar to the ``uniq`` filter in Unix. " +"It generates a break or new group every time the value of the key function " +"changes (which is why it is usually necessary to have sorted the data using " +"the same key function). That behavior differs from SQL's GROUP BY which " +"aggregates common elements regardless of their input order." +msgstr "" +"L'opération de :func:`groupby` est similaire au filtre ``uniq`` dans Unix. " +"Elle génère un nouveau groupe à chaque fois que la valeur de la fonction " +"*key* change (ce pourquoi il est souvent nécessaire d'avoir trié les données " +"selon la même fonction de clé). Ce comportement est différent de celui de " +"GROUP BY de SQL qui agrège les éléments sans prendre compte de leur ordre " +"d'entrée." + +#: ../Doc/library/itertools.rst:378 +msgid "" +"The returned group is itself an iterator that shares the underlying iterable " +"with :func:`groupby`. Because the source is shared, when the :func:" +"`groupby` object is advanced, the previous group is no longer visible. So, " +"if that data is needed later, it should be stored as a list::" +msgstr "" +"Le groupe renvoyé est lui-même un itérateur qui partage l'itérable sous-" +"jacent avec :func:`groupby`. Puisque que la source est partagée, quand " +"l'objet :func:`groupby` est avancé, le groupe précédent n'est plus visible. " +"Ainsi, si cette donnée doit être utilisée plus tard, elle doit être stockée " +"comme une liste ::" + +#: ../Doc/library/itertools.rst:390 +msgid ":func:`groupby` is roughly equivalent to::" +msgstr ":func:`groupby` est à peu près équivalente à ::" + +#: ../Doc/library/itertools.rst:423 +msgid "" +"Make an iterator that returns selected elements from the iterable. If " +"*start* is non-zero, then elements from the iterable are skipped until start " +"is reached. Afterward, elements are returned consecutively unless *step* is " +"set higher than one which results in items being skipped. If *stop* is " +"``None``, then iteration continues until the iterator is exhausted, if at " +"all; otherwise, it stops at the specified position. Unlike regular " +"slicing, :func:`islice` does not support negative values for *start*, " +"*stop*, or *step*. Can be used to extract related fields from data where " +"the internal structure has been flattened (for example, a multi-line report " +"may list a name field on every third line). Roughly equivalent to::" +msgstr "" +"Crée un itérateur qui renvoie les élément sélectionnés de l'itérable. Si " +"*start* est différent de zéro, alors les éléments de l'itérable sont ignorés " +"jusqu'à ce que *start* soit atteint. Ensuite, les éléments sont renvoyés " +"consécutivement sauf si *step* est plus grand que 1, auquel cas certains " +"éléments seront ignorés. Si *stop* est ``None``, alors l'itération continue " +"jusqu'à ce que l'itérateur soit épuisé s'il ne l'est pas déjà ; sinon, il " +"s'arrête à la position spécifiée. À la différence des tranches standards, :" +"func:`slice` ne gère pas les valeurs négatives pour *start*, *stop* ou " +"*step*. Peut être utilisée pour extraire les champs consécutifs depuis des " +"données dont la structure interne a été aplatie (par exemple, un rapport " +"multi-lignes pourrait lister un nom de champ toutes les trois lignes). À peu " +"près similaire à ::" + +#: ../Doc/library/itertools.rst:458 +msgid "" +"If *start* is ``None``, then iteration starts at zero. If *step* is " +"``None``, then the step defaults to one." +msgstr "" +"Si *start* vaut ``None``, alors l'itération commence à zéro. Si *step* vaut " +"``None``, alors le pas est à 1 par défaut." + +#: ../Doc/library/itertools.rst:464 +msgid "" +"Return successive *r* length permutations of elements in the *iterable*." +msgstr "" +"Renvoie les arrangements successifs de longueur *r* des éléments de " +"*iterable*." + +#: ../Doc/library/itertools.rst:466 +msgid "" +"If *r* is not specified or is ``None``, then *r* defaults to the length of " +"the *iterable* and all possible full-length permutations are generated." +msgstr "" +"Si *r* n'est pas spécifié ou vaut ``None``, alors *r* a pour valeur la " +"longueur de *iterable* et toutes les permutations de longueur *r* possibles " +"sont générées." + +#: ../Doc/library/itertools.rst:470 +msgid "" +"Permutations are emitted in lexicographic sort order. So, if the input " +"*iterable* is sorted, the permutation tuples will be produced in sorted " +"order." +msgstr "" +"Les permutations sont émises dans l'ordre lexicographique. Ainsi, si " +"l'itérable d'entrée *iterable* est classé, les n-uplets de permutation sont " +"produits dans ce même ordre." + +#: ../Doc/library/itertools.rst:474 +msgid "" +"Elements are treated as unique based on their position, not on their value. " +"So if the input elements are unique, there will be no repeat values in each " +"permutation." +msgstr "" +"Les éléments sont considérés comme uniques en fonction de leur position, et " +"non pas de leur valeur. Ainsi, si l'élément est unique, il n'y aura pas de " +"valeurs répétées dans chaque permutation." + +#: ../Doc/library/itertools.rst:505 +msgid "" +"The code for :func:`permutations` can be also expressed as a subsequence of :" +"func:`product`, filtered to exclude entries with repeated elements (those " +"from the same position in the input pool)::" +msgstr "" +"Un appel à :func:`permutations` peut aussi être vu un appel à :func:" +"`product` en excluant les sorties avec des doublons (avec la même relation " +"d'ordre que pour l'entrée) ::" + +#: ../Doc/library/itertools.rst:517 +msgid "" +"The number of items returned is ``n! / (n-r)!`` when ``0 <= r <= n`` or zero " +"when ``r > n``." +msgstr "" +"Le nombre d'éléments renvoyés est ``n! / (n-r)!`` quand ``0 <= r <= n`` ou " +"zéro quand ``r > n``." + +#: ../Doc/library/itertools.rst:522 +msgid "Cartesian product of input iterables." +msgstr "Produit cartésien des itérables d'entrée." + +#: ../Doc/library/itertools.rst:524 +msgid "" +"Roughly equivalent to nested for-loops in a generator expression. For " +"example, ``product(A, B)`` returns the same as ``((x,y) for x in A for y in " +"B)``." +msgstr "" +"À peu près équivalent à des boucles *for* imbriquées dans une expression de " +"générateur. Par exemple ``product(A, B)`` renvoie la même chose que ``((x, " +"y) for x in A for y in B)``." + +#: ../Doc/library/itertools.rst:527 +msgid "" +"The nested loops cycle like an odometer with the rightmost element advancing " +"on every iteration. This pattern creates a lexicographic ordering so that " +"if the input's iterables are sorted, the product tuples are emitted in " +"sorted order." +msgstr "" +"Les boucles imbriquées tournent comme un compteur kilométrique avec " +"l'élément le plus à droite avançant à chaque itération. Ce motif défini un " +"ordre lexicographique afin que, si les éléments des itérables en l'entrée " +"sont ordonnés, les n-uplets produits le sont aussi." + +#: ../Doc/library/itertools.rst:532 +msgid "" +"To compute the product of an iterable with itself, specify the number of " +"repetitions with the optional *repeat* keyword argument. For example, " +"``product(A, repeat=4)`` means the same as ``product(A, A, A, A)``." +msgstr "" +"Pour générer le produit d'un itérable avec lui-même, spécifiez le nombre de " +"répétitions avec le paramètre nommé optionnel *repeat*. Par exemple, " +"``product(A, repeat=4)`` est équivalent à ``product(A, A, A, A)``." + +#: ../Doc/library/itertools.rst:536 +msgid "" +"This function is roughly equivalent to the following code, except that the " +"actual implementation does not build up intermediate results in memory::" +msgstr "" +"Cette fonction est à peu près équivalente au code suivant, à la différence " +"près que la vraie implémentation ne crée pas de résultats intermédiaires en " +"mémoire ::" + +#: ../Doc/library/itertools.rst:552 +msgid "" +"Make an iterator that returns *object* over and over again. Runs " +"indefinitely unless the *times* argument is specified. Used as argument to :" +"func:`map` for invariant parameters to the called function. Also used with :" +"func:`zip` to create an invariant part of a tuple record." +msgstr "" +"Crée un itérateur qui renvoie *object* à l'infini. S'exécute indéfiniment " +"sauf si l'argument *times* est spécifié. Utilisée comme argument de :func:" +"`map` pour les paramètres invariants de la fonction appelée. Aussi utilisée " +"avec :func:`zip` pour créer une partie invariante d'un n-uplet." + +#: ../Doc/library/itertools.rst:568 +msgid "" +"A common use for *repeat* is to supply a stream of constant values to *map* " +"or *zip*::" +msgstr "" +"Une utilisation courante de *repeat* est de fournir un flux constant de " +"valeurs à *map* ou *zip* ::" + +#: ../Doc/library/itertools.rst:576 +msgid "" +"Make an iterator that computes the function using arguments obtained from " +"the iterable. Used instead of :func:`map` when argument parameters are " +"already grouped in tuples from a single iterable (the data has been \"pre-" +"zipped\"). The difference between :func:`map` and :func:`starmap` parallels " +"the distinction between ``function(a,b)`` and ``function(*c)``. Roughly " +"equivalent to::" +msgstr "" +"Crée un itérateur qui exécute la fonction avec les arguments obtenus depuis " +"l'itérable. Utilisée à la place de :func:`map` quand les arguments sont déjà " +"groupés en n-uplets depuis un seul itérable — la donnée a déjà été « pré-" +"zippée ». La différence entre :func:`map` et :func:`starmap` est similaire à " +"la différence entre ``fonction(a,b)`` et ``fonction(*c)``. À peu près " +"équivalent à ::" + +#: ../Doc/library/itertools.rst:590 +msgid "" +"Make an iterator that returns elements from the iterable as long as the " +"predicate is true. Roughly equivalent to::" +msgstr "" +"Crée un itérateur qui renvoie les éléments d'un itérable tant que le " +"prédicat est vrai. À peu près équivalent à ::" + +#: ../Doc/library/itertools.rst:604 +msgid "Return *n* independent iterators from a single iterable." +msgstr "Renvoie *n* itérateurs indépendants depuis un unique itérable." + +#: ../Doc/library/itertools.rst:606 +msgid "" +"The following Python code helps explain what *tee* does (although the actual " +"implementation is more complex and uses only a single underlying :abbr:`FIFO " +"(first-in, first-out)` queue)." +msgstr "" +"Le code Python qui suit aide à expliquer ce que fait *tee*, bien que la " +"vraie implémentation soit plus complexe et n'utilise qu'une file :abbr:`FIFO " +"(premier entré, premier sorti ou *first-in, first-out* en anglais)`." + +#: ../Doc/library/itertools.rst:627 +msgid "" +"Once :func:`tee` has made a split, the original *iterable* should not be " +"used anywhere else; otherwise, the *iterable* could get advanced without the " +"tee objects being informed." +msgstr "" +"Une fois que :func:`tee` a créé un branchement, l'itérable *iterable* ne " +"doit être utilisé nulle part ailleurs ; sinon, *iterable* pourrait être " +"avancé sans que les objets tee ne soient informés." + +#: ../Doc/library/itertools.rst:631 +msgid "" +"This itertool may require significant auxiliary storage (depending on how " +"much temporary data needs to be stored). In general, if one iterator uses " +"most or all of the data before another iterator starts, it is faster to use :" +"func:`list` instead of :func:`tee`." +msgstr "" +"Cet outil peut avoir besoin d'un stockage auxiliaire important (en fonction " +"de la taille des données temporaires nécessaires). En général, si un " +"itérateur utilise la majorité ou toute la donnée avant qu'un autre itérateur " +"ne commence, il est plus rapide d'utiliser :func:`list` à la place de :func:" +"`tee`." + +#: ../Doc/library/itertools.rst:639 +msgid "" +"Make an iterator that aggregates elements from each of the iterables. If the " +"iterables are of uneven length, missing values are filled-in with " +"*fillvalue*. Iteration continues until the longest iterable is exhausted. " +"Roughly equivalent to::" +msgstr "" +"Crée un itérateur qui agrège les éléments de chacun des itérables. Si les " +"itérables sont de longueurs différentes, les valeurs manquantes sont " +"remplacées par *fillvalue*. L'itération continue jusqu'à ce que l'itérable " +"le plus long soit épuisé. À peu près équivalent à ::" + +#: ../Doc/library/itertools.rst:663 +msgid "" +"If one of the iterables is potentially infinite, then the :func:" +"`zip_longest` function should be wrapped with something that limits the " +"number of calls (for example :func:`islice` or :func:`takewhile`). If not " +"specified, *fillvalue* defaults to ``None``." +msgstr "" +"Si un des itérables est potentiellement infini, alors la fonction :func:" +"`zip_longest` doit être encapsulée dans un code qui limite le nombre " +"d'appels (par exemple, :func:`islice` ou :func:`takewhile`). Si *fillvalue* " +"n'est pas spécifié, il vaut ``None`` par défaut." + +#: ../Doc/library/itertools.rst:672 +msgid "Itertools Recipes" +msgstr "Recettes *itertools*" + +#: ../Doc/library/itertools.rst:674 +msgid "" +"This section shows recipes for creating an extended toolset using the " +"existing itertools as building blocks." +msgstr "" +"Cette section présente des recettes pour créer une vaste boîte à outils en " +"se servant des *itertools* existants comme des briques." + +#: ../Doc/library/itertools.rst:677 +msgid "" +"The extended tools offer the same high performance as the underlying " +"toolset. The superior memory performance is kept by processing elements one " +"at a time rather than bringing the whole iterable into memory all at once. " +"Code volume is kept small by linking the tools together in a functional " +"style which helps eliminate temporary variables. High speed is retained by " +"preferring \"vectorized\" building blocks over the use of for-loops and :" +"term:`generator`\\s which incur interpreter overhead." +msgstr "" +"Ces outils dérivés offrent la même bonne performance que les outils sous-" +"jacents. La performance mémoire supérieure est gardée en traitant les " +"éléments un à la fois plutôt que de charger tout l'itérable en mémoire en " +"même temps. Le volume de code reste bas grâce à un chaînage de style " +"fonctionnel qui aide à éliminer les variables temporaires. La grande vitesse " +"est gardée en préférant les briques « vectorisées » plutôt que les boucles " +"*for* et les :term:`générateurs ` qui engendrent un surcoût de " +"traitement." + +#: ../Doc/library/itertools.rst:899 +msgid "" +"Note, many of the above recipes can be optimized by replacing global lookups " +"with local variables defined as default values. For example, the " +"*dotproduct* recipe can be written as::" +msgstr "" +"Note, beaucoup des recettes ci-dessus peuvent être optimisées en replaçant " +"les recherches globales par des recherches locales avec des variables " +"locales définies comme des valeurs par défaut. Par exemple, la recette " +"*dotproduct* peut être écrite comme : ::" diff --git a/library/json.po b/library/json.po new file mode 100644 index 000000000..afccadb0a --- /dev/null +++ b/library/json.po @@ -0,0 +1,1053 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-09-28 14:21+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/json.rst:2 +msgid ":mod:`json` --- JSON encoder and decoder" +msgstr ":mod:`json` — Encodage et décodage JSON" + +#: ../Doc/library/json.rst:10 +msgid "**Source code:** :source:`Lib/json/__init__.py`" +msgstr "**Code source :** :source:`Lib/json/__init__.py`" + +#: ../Doc/library/json.rst:14 +msgid "" +"`JSON (JavaScript Object Notation) `_, specified by :rfc:" +"`7159` (which obsoletes :rfc:`4627`) and by `ECMA-404 `_, is a lightweight " +"data interchange format inspired by `JavaScript `_ object literal syntax (although it is not a strict subset " +"of JavaScript [#rfc-errata]_ )." +msgstr "" +"`JSON (JavaScript Object Notation) `_, spécifié par la :rfc:" +"`7159` (qui rend la :rfc:`4627` obsolète) et par le standard `ECMA-404 " +"`_, " +"est une interface légère d'échange de données inspirée par la syntaxe des " +"objets littéraux `JavaScript `_ " +"(bien que ce ne soit pas un sous-ensemble strict de Javascript [#rfc-" +"errata]_ )." + +#: ../Doc/library/json.rst:21 +msgid "" +":mod:`json` exposes an API familiar to users of the standard library :mod:" +"`marshal` and :mod:`pickle` modules." +msgstr "" +":mod:`json` expose une API familière aux utilisateurs des modules de la " +"bibliothèque standard :mod:`marshal` et :mod:`pickle`." + +#: ../Doc/library/json.rst:24 +msgid "Encoding basic Python object hierarchies::" +msgstr "Encodage d'objets Python basiques ::" + +#: ../Doc/library/json.rst:43 +msgid "Compact encoding::" +msgstr "Encodage compact ::" + +#: ../Doc/library/json.rst:49 +msgid "Pretty printing::" +msgstr "Affichage élégant ::" + +#: ../Doc/library/json.rst:58 +msgid "Decoding JSON::" +msgstr "Décodage JSON ::" + +#: ../Doc/library/json.rst:70 +msgid "Specializing JSON object decoding::" +msgstr "Spécialisation du décodage JSON pour un objet ::" + +#: ../Doc/library/json.rst:85 +msgid "Extending :class:`JSONEncoder`::" +msgstr "Étendre la classe :class:`JSONEncoder` ::" + +#: ../Doc/library/json.rst:103 +msgid "Using :mod:`json.tool` from the shell to validate and pretty-print:" +msgstr "" +"Utiliser :mod:`json.tool` depuis le *shell* pour valider et afficher " +"élégamment :" + +#: ../Doc/library/json.rst:114 +msgid "See :ref:`json-commandline` for detailed documentation." +msgstr "Voir :ref:`json-commandline` pour une documentation détaillée." + +#: ../Doc/library/json.rst:118 +msgid "" +"JSON is a subset of `YAML `_ 1.2. The JSON produced by " +"this module's default settings (in particular, the default *separators* " +"value) is also a subset of YAML 1.0 and 1.1. This module can thus also be " +"used as a YAML serializer." +msgstr "" +"JSON est un sous-ensemble de `YAML `_ 1.2. Le JSON " +"produit par les paramètres par défaut de ce module (en particulier, la " +"valeur par défaut de *separators*) est aussi un sous ensemble de YAML 1.0 et " +"1.1. Ce module peut alors aussi être utilisé comme sérialiseur YAML." + +#: ../Doc/library/json.rst:125 +msgid "Basic Usage" +msgstr "Utilisation basique" + +#: ../Doc/library/json.rst:132 +msgid "" +"Serialize *obj* as a JSON formatted stream to *fp* (a ``.write()``-" +"supporting :term:`file-like object`) using this :ref:`conversion table `." +msgstr "" +"Sérialise *obj* comme un flux JSON formaté vers *fp* (un :term:`file-like " +"object` gérant ``.write()``) utilisant cette :ref:`table de conversion `." + +#: ../Doc/library/json.rst:136 +msgid "" +"If *skipkeys* is true (default: ``False``), then dict keys that are not of a " +"basic type (:class:`str`, :class:`int`, :class:`float`, :class:`bool`, " +"``None``) will be skipped instead of raising a :exc:`TypeError`." +msgstr "" +"Si *skipkeys* est vrai (faux par défaut), alors les clefs de dictionnaires " +"qui ne sont pas de types basiques (:class:`str`, :class:`int`, :class:" +"`float`, :class:`bool`, ``None``) seront ignorées, elles provoquent " +"normalement la levée d'une :exc:`TypeError`." + +#: ../Doc/library/json.rst:140 +msgid "" +"The :mod:`json` module always produces :class:`str` objects, not :class:" +"`bytes` objects. Therefore, ``fp.write()`` must support :class:`str` input." +msgstr "" +"Le module :mod:`json` produit toujours des objets :class:`str`, et non des " +"objets :class:`bytes`. ``fp.write()`` doit ainsi supporter un objet :class:" +"`str` en entrée." + +#: ../Doc/library/json.rst:144 ../Doc/library/json.rst:416 +msgid "" +"If *ensure_ascii* is true (the default), the output is guaranteed to have " +"all incoming non-ASCII characters escaped. If *ensure_ascii* is false, " +"these characters will be output as-is." +msgstr "" +"Si *ensure_ascii* est vrai (par défaut), il est garanti que les caractères " +"non ASCII soient tous échappés sur la sortie. Si *ensure_ascii* est faux, " +"ces caractères seront écrits comme tels." + +#: ../Doc/library/json.rst:148 +msgid "" +"If *check_circular* is false (default: ``True``), then the circular " +"reference check for container types will be skipped and a circular reference " +"will result in an :exc:`OverflowError` (or worse)." +msgstr "" +"Si *check_circular* est faux (vrai par défaut), la vérification des " +"références circulaires pour les conteneurs sera ignorée, et une référence " +"circulaire résultera en une :exc:`OverflowError` (ou pire)." + +#: ../Doc/library/json.rst:152 +msgid "" +"If *allow_nan* is false (default: ``True``), then it will be a :exc:" +"`ValueError` to serialize out of range :class:`float` values (``nan``, " +"``inf``, ``-inf``) in strict compliance of the JSON specification. If " +"*allow_nan* is true, their JavaScript equivalents (``NaN``, ``Infinity``, ``-" +"Infinity``) will be used." +msgstr "" +"Si *allow_nan* est faux (vrai par défaut), une :exc:`ValueError` sera levée " +"lors de la sérialisation de valeurs :class:`float` extérieures aux bornes " +"(``nan``, ``inf``, ``-inf``), en respect strict de la spécification JSON. Si " +"*allow_nan* est vrai, leurs équivalents JavaScript (``NaN``, ``Infinity``, " +"``-Infinity``) seront utilisés." + +#: ../Doc/library/json.rst:158 ../Doc/library/json.rst:435 +msgid "" +"If *indent* is a non-negative integer or string, then JSON array elements " +"and object members will be pretty-printed with that indent level. An indent " +"level of 0, negative, or ``\"\"`` will only insert newlines. ``None`` (the " +"default) selects the most compact representation. Using a positive integer " +"indent indents that many spaces per level. If *indent* is a string (such as " +"``\"\\t\"``), that string is used to indent each level." +msgstr "" +"Si *indent* est un nombre entier positif ou une chaîne de caractères, les " +"éléments de tableaux et les membres d'objets JSON seront affichés élégamment " +"avec ce niveau d'indentation. Un niveau d'indentation de 0, négatif, ou ``" +"\"\"`` n'insérera que des retours à la ligne. ``None`` (la valeur par " +"défaut) choisit la représentation la plus compacte. Utiliser un entier " +"positif comme indentation indente d'autant d'espaces par niveau. Si " +"*indent* est une chaîne (telle que ``\"\\t\"``), cette chaîne est utilisée " +"pour indenter à chaque niveau." + +#: ../Doc/library/json.rst:165 ../Doc/library/json.rst:442 +msgid "Allow strings for *indent* in addition to integers." +msgstr "Autorise les chaînes en plus des nombres entiers pour *indent*." + +#: ../Doc/library/json.rst:168 ../Doc/library/json.rst:445 +msgid "" +"If specified, *separators* should be an ``(item_separator, key_separator)`` " +"tuple. The default is ``(', ', ': ')`` if *indent* is ``None`` and ``(',', " +"': ')`` otherwise. To get the most compact JSON representation, you should " +"specify ``(',', ':')`` to eliminate whitespace." +msgstr "" +"Si spécifié, *separators* doit être un *tuple* ``(item_separator, " +"key_separator)``. Sa valeur par défaut est ``(', ', ': ')`` si *indent* est " +"``None``, et ``(',', ': ')`` autrement. Pour obtenir la représentation JSON " +"la plus compacte possible, vous devriez spécifier ``(',', ':')`` pour " +"éliminer les espacements." + +#: ../Doc/library/json.rst:173 ../Doc/library/json.rst:450 +msgid "Use ``(',', ': ')`` as default if *indent* is not ``None``." +msgstr "Utilise ``(',', ': ')`` par défaut si *indent* n'est pas ``None``." + +#: ../Doc/library/json.rst:176 ../Doc/library/json.rst:453 +msgid "" +"If specified, *default* should be a function that gets called for objects " +"that can't otherwise be serialized. It should return a JSON encodable " +"version of the object or raise a :exc:`TypeError`. If not specified, :exc:" +"`TypeError` is raised." +msgstr "" +"Si spécifié, *default* doit être une fonction qui sera appelée pour les " +"objets qui ne peuvent être sérialisés autrement. Elle doit renvoyer une " +"représentation de l'objet sérialisable en JSON ou lever une :exc:" +"`TypeError`. Si non spécifié, une :exc:`TypeError` sera levée pour les " +"types non sérialisables." + +#: ../Doc/library/json.rst:181 +msgid "" +"If *sort_keys* is true (default: ``False``), then the output of dictionaries " +"will be sorted by key." +msgstr "" +"Si *sort_keys* est vrai (faux par défaut), les dictionnaires seront " +"retranscrits triés selon leurs clés." + +#: ../Doc/library/json.rst:184 +msgid "" +"To use a custom :class:`JSONEncoder` subclass (e.g. one that overrides the :" +"meth:`default` method to serialize additional types), specify it with the " +"*cls* kwarg; otherwise :class:`JSONEncoder` is used." +msgstr "" +"Pour utiliser une sous-classe :class:`JSONEncoder` personnalisée (p. ex. une " +"qui redéfinit la méthode :meth:`default` pour sérialiser des types " +"additionnels), spécifiez-la avec le paramètre nommé *cls* ; autrement, :" +"class:`JSONEncoder` est utilisée." + +#: ../Doc/library/json.rst:188 ../Doc/library/json.rst:261 +msgid "" +"All optional parameters are now :ref:`keyword-only `." +msgstr "" +"Tous les paramètres optionnels sont maintenant des :ref:`keyword-only " +"`." + +#: ../Doc/library/json.rst:193 +msgid "" +"Unlike :mod:`pickle` and :mod:`marshal`, JSON is not a framed protocol, so " +"trying to serialize multiple objects with repeated calls to :func:`dump` " +"using the same *fp* will result in an invalid JSON file." +msgstr "" +"À l'inverse de :mod:`pickle` et :mod:`marshal`, JSON n'est pas un protocole " +"par trames, donc essayer de sérialiser de multiples objets par des appels " +"répétés à :func:`dump` en utilisant le même *fp* résultera en un fichier " +"JSON invalide." + +#: ../Doc/library/json.rst:202 +msgid "" +"Serialize *obj* to a JSON formatted :class:`str` using this :ref:`conversion " +"table `. The arguments have the same meaning as in :func:" +"`dump`." +msgstr "" +"Sérialise *obj* vers un JSON formaté :class:`str`, en utilisant cette :ref:" +"`table de conversion `. Les arguments ont la même " +"signification que ceux de :func:`dump`." + +#: ../Doc/library/json.rst:208 +msgid "" +"Keys in key/value pairs of JSON are always of the type :class:`str`. When a " +"dictionary is converted into JSON, all the keys of the dictionary are " +"coerced to strings. As a result of this, if a dictionary is converted into " +"JSON and then back into a dictionary, the dictionary may not equal the " +"original one. That is, ``loads(dumps(x)) != x`` if x has non-string keys." +msgstr "" +"Les clés dans les couples JSON clé/valeur sont toujours de type :class:" +"`str`. Quand un dictionnaire est converti en JSON, toutes les clés du " +"dictionnaire sont transformées en chaînes de caractères. Ce qui fait que si " +"un dictionnaire est converti en JSON et reconverti en dictionnaire, le " +"résultat peut ne pas être égal à l'original. Ainsi, ``loads(dumps(x)) != x`` " +"si x contient des clés qui ne sont pas des chaînes." + +#: ../Doc/library/json.rst:217 +msgid "" +"Deserialize *fp* (a ``.read()``-supporting :term:`text file` or :term:" +"`binary file` containing a JSON document) to a Python object using this :ref:" +"`conversion table `." +msgstr "" +"Déserialise *fp* (un :term:`text file` ou un :term:`binary file` supportant " +"``.read()`` et contenant un document JSON) vers un objet Python en utilisant " +"cette :ref:`table de conversion `." + +#: ../Doc/library/json.rst:221 +msgid "" +"*object_hook* is an optional function that will be called with the result of " +"any object literal decoded (a :class:`dict`). The return value of " +"*object_hook* will be used instead of the :class:`dict`. This feature can " +"be used to implement custom decoders (e.g. `JSON-RPC `_ class hinting)." +msgstr "" +"*object_hook* est une fonction optionnelle qui sera appelée avec le résultat " +"de chaque objet littéral décodé (chaque :class:`dict`). La valeur de retour " +"de *object_hook* sera utilisée à la place du :class:`dict`. Cette " +"fonctionnalité peut être utilisée pour implémenter des décodeurs " +"personnalisés (p. ex. les *class hinting* de `JSON-RPC `_)." + +#: ../Doc/library/json.rst:227 +msgid "" +"*object_pairs_hook* is an optional function that will be called with the " +"result of any object literal decoded with an ordered list of pairs. The " +"return value of *object_pairs_hook* will be used instead of the :class:" +"`dict`. This feature can be used to implement custom decoders. If " +"*object_hook* is also defined, the *object_pairs_hook* takes priority." +msgstr "" +"*object_pairs_hook* est une fonction optionnelle qui sera appelé pour chaque " +"objet littéral décodé, avec une liste ordonnée de couples. La valeur de " +"retour de *object_pairs_hook* sera utilisée à la place du :class:`dict`. " +"Cette fonctionnalité peut être utilisée pour implémenter des décodeurs " +"personnalisés. *object_pairs_hook* prend la priorité sur *object_hook*, si " +"cette dernière est aussi définie." + +#: ../Doc/library/json.rst:233 ../Doc/library/json.rst:330 +msgid "Added support for *object_pairs_hook*." +msgstr "Ajout du support de *object_pairs_hook*." + +#: ../Doc/library/json.rst:236 ../Doc/library/json.rst:333 +msgid "" +"*parse_float*, if specified, will be called with the string of every JSON " +"float to be decoded. By default, this is equivalent to ``float(num_str)``. " +"This can be used to use another datatype or parser for JSON floats (e.g. :" +"class:`decimal.Decimal`)." +msgstr "" +"*parse_float*, si spécifiée, sera appelée pour chaque nombre réel JSON à " +"décoder sous forme d'une chaîne de caractères. Par défaut, elle est " +"équivalente à ``float(num_str)``. Cela peut servir à utiliser un autre type " +"de données ou un autre analyseur pour les nombres réels JSON (p. ex. :class:" +"`decimal.Decimal`)." + +#: ../Doc/library/json.rst:241 ../Doc/library/json.rst:338 +msgid "" +"*parse_int*, if specified, will be called with the string of every JSON int " +"to be decoded. By default, this is equivalent to ``int(num_str)``. This " +"can be used to use another datatype or parser for JSON integers (e.g. :class:" +"`float`)." +msgstr "" +"*parse_int*, si spécifiée, sera appelée pour chaque nombre entier JSON à " +"décoder sous forme d'une chaîne de caractères. Par défaut, elle est " +"équivalente à ``int(num_str)``. Cela peut servir à utiliser un autre type de " +"données ou un autre analyseur pour les nombres entiers JSON (p. ex. :class:" +"`float`)." + +#: ../Doc/library/json.rst:246 ../Doc/library/json.rst:343 +msgid "" +"*parse_constant*, if specified, will be called with one of the following " +"strings: ``'-Infinity'``, ``'Infinity'``, ``'NaN'``. This can be used to " +"raise an exception if invalid JSON numbers are encountered." +msgstr "" +"*parse_constant*, si spécifiée, sera appelée avec l'une des chaînes de " +"caractères suivantes : ``'-Infinity'``, ``'Infinity'`` ou ``'NaN'``. Cela " +"peut servir à lever une exception si des nombres JSON invalides sont " +"rencontrés." + +#: ../Doc/library/json.rst:251 +msgid "*parse_constant* doesn't get called on 'null', 'true', 'false' anymore." +msgstr "*parse_constant* n'est plus appelée pour *null*, *true* ou *false*." + +#: ../Doc/library/json.rst:254 +msgid "" +"To use a custom :class:`JSONDecoder` subclass, specify it with the ``cls`` " +"kwarg; otherwise :class:`JSONDecoder` is used. Additional keyword arguments " +"will be passed to the constructor of the class." +msgstr "" +"Pour utiliser une sous-classe :class:`JSONDecoder` personnalisée, spécifiez-" +"la avec l'argument nommé ``cls`` ; autrement, :class:`JSONDecoder` est " +"utilisée. Les arguments nommés additionnels seront passés au constructeur " +"de cette classe." + +#: ../Doc/library/json.rst:258 ../Doc/library/json.rst:277 +#: ../Doc/library/json.rst:353 +msgid "" +"If the data being deserialized is not a valid JSON document, a :exc:" +"`JSONDecodeError` will be raised." +msgstr "" +"Si les données à déserialiser ne sont pas un document JSON valide, une :exc:" +"`JSONDecodeError` sera levée." + +#: ../Doc/library/json.rst:264 +msgid "" +"*fp* can now be a :term:`binary file`. The input encoding should be UTF-8, " +"UTF-16 or UTF-32." +msgstr "" +"*fp* peut maintenant être un :class:`binary file`. Son encodage doit être " +"UTF-8, UTF-16 ou UTF-32." + +#: ../Doc/library/json.rst:270 +msgid "" +"Deserialize *s* (a :class:`str`, :class:`bytes` or :class:`bytearray` " +"instance containing a JSON document) to a Python object using this :ref:" +"`conversion table `." +msgstr "" +"Déserialise *s* (une instance de :class:`str`, :class:`bytes` ou :class:" +"`bytearray` contenant un document JSON) vers un objet Python en utilisant " +"cette :ref:`table de conversion `." + +#: ../Doc/library/json.rst:274 +msgid "" +"The other arguments have the same meaning as in :func:`load`, except " +"*encoding* which is ignored and deprecated." +msgstr "" +"Les autres arguments ont la même signification que pour :func:`load`, à " +"l'exception d'*encoding* qui est ignoré et obsolète." + +#: ../Doc/library/json.rst:280 +msgid "" +"*s* can now be of type :class:`bytes` or :class:`bytearray`. The input " +"encoding should be UTF-8, UTF-16 or UTF-32." +msgstr "" +"*s* peut maintenant être de type :class:`bytes` ou :class:`bytearray`. " +"L'encodage d'entrée doit être UTF-8, UTF-16 ou UTF-32." + +#: ../Doc/library/json.rst:286 +msgid "Encoders and Decoders" +msgstr "Encodeurs et décodeurs" + +#: ../Doc/library/json.rst:290 +msgid "Simple JSON decoder." +msgstr "Décodeur simple JSON." + +#: ../Doc/library/json.rst:292 +msgid "Performs the following translations in decoding by default:" +msgstr "Applique par défaut les conversions suivantes en décodant :" + +#: ../Doc/library/json.rst:297 ../Doc/library/json.rst:386 +msgid "JSON" +msgstr "JSON" + +#: ../Doc/library/json.rst:297 ../Doc/library/json.rst:386 +msgid "Python" +msgstr "Python" + +#: ../Doc/library/json.rst:299 ../Doc/library/json.rst:388 +msgid "object" +msgstr "objet" + +#: ../Doc/library/json.rst:299 ../Doc/library/json.rst:388 +msgid "dict" +msgstr "*dict*" + +#: ../Doc/library/json.rst:301 ../Doc/library/json.rst:390 +msgid "array" +msgstr "*array*" + +#: ../Doc/library/json.rst:301 +msgid "list" +msgstr "*list*" + +#: ../Doc/library/json.rst:303 ../Doc/library/json.rst:392 +msgid "string" +msgstr "*string*" + +#: ../Doc/library/json.rst:303 ../Doc/library/json.rst:392 +msgid "str" +msgstr "*str*" + +#: ../Doc/library/json.rst:305 +msgid "number (int)" +msgstr "*number* (nombre entier)" + +#: ../Doc/library/json.rst:305 +msgid "int" +msgstr "*int*" + +#: ../Doc/library/json.rst:307 +msgid "number (real)" +msgstr "*number* (nombre réel)" + +#: ../Doc/library/json.rst:307 +msgid "float" +msgstr "*float*" + +#: ../Doc/library/json.rst:309 ../Doc/library/json.rst:396 +msgid "true" +msgstr "*true*" + +#: ../Doc/library/json.rst:309 ../Doc/library/json.rst:396 +msgid "True" +msgstr "*True*" + +#: ../Doc/library/json.rst:311 ../Doc/library/json.rst:398 +msgid "false" +msgstr "*false*" + +#: ../Doc/library/json.rst:311 ../Doc/library/json.rst:398 +msgid "False" +msgstr "*False*" + +#: ../Doc/library/json.rst:313 ../Doc/library/json.rst:400 +msgid "null" +msgstr "*null*" + +#: ../Doc/library/json.rst:313 ../Doc/library/json.rst:400 +msgid "None" +msgstr "``None``" + +#: ../Doc/library/json.rst:316 +msgid "" +"It also understands ``NaN``, ``Infinity``, and ``-Infinity`` as their " +"corresponding ``float`` values, which is outside the JSON spec." +msgstr "" +"Les valeurs ``NaN``, ``Infinity`` et ``-Infinity`` sont aussi comprises " +"comme leurs valeurs ``float`` correspondantes, bien que ne faisant pas " +"partie de la spécification JSON." + +#: ../Doc/library/json.rst:319 +msgid "" +"*object_hook*, if specified, will be called with the result of every JSON " +"object decoded and its return value will be used in place of the given :" +"class:`dict`. This can be used to provide custom deserializations (e.g. to " +"support JSON-RPC class hinting)." +msgstr "" +"*object_hook*, si spécifiée, sera appelée avec le résultat de chaque objet " +"JSON décodé et sa valeur de retour sera utilisée à la place du :class:`dict` " +"donné. Cela peut être utilisé pour apporter des déserialisations " +"personnalisées (p. ex. pour supporter les *class hinting* de JSON-RPC)." + +#: ../Doc/library/json.rst:324 +msgid "" +"*object_pairs_hook*, if specified will be called with the result of every " +"JSON object decoded with an ordered list of pairs. The return value of " +"*object_pairs_hook* will be used instead of the :class:`dict`. This feature " +"can be used to implement custom decoders. If *object_hook* is also defined, " +"the *object_pairs_hook* takes priority." +msgstr "" +"*object_pairs_hook*, si spécifiée, sera appelée avec le résultat de chaque " +"objet JSON décodé avec une liste ordonnée de couples. Sa valeur de retour " +"sera utilisée à la place du :class:`dict`. Cette fonctionnalité peut être " +"utilisée pour implémenter des décodeurs personnalisés. *object_pairs_hook* " +"prend la priorité sur *object_hook*, si cette dernière est aussi définie." + +#: ../Doc/library/json.rst:348 +msgid "" +"If *strict* is false (``True`` is the default), then control characters will " +"be allowed inside strings. Control characters in this context are those " +"with character codes in the 0--31 range, including ``'\\t'`` (tab), " +"``'\\n'``, ``'\\r'`` and ``'\\0'``." +msgstr "" +"Si *strict* est faux (``True`` par défaut), alors les caractères de contrôle " +"seront autorisés à l'intérieur des chaînes. Les caractères de contrôle dans " +"ce contexte sont ceux dont les codes sont dans l'intervalle 0--31, incluant " +"``'\\t'`` (tabulation), ``'\\n'``, ``'\\r'`` et ``'\\0'``." + +#: ../Doc/library/json.rst:356 ../Doc/library/json.rst:458 +msgid "All parameters are now :ref:`keyword-only `." +msgstr "" +"Tous les paramètres sont maintenant des :ref:`keyword-only `." + +#: ../Doc/library/json.rst:361 +msgid "" +"Return the Python representation of *s* (a :class:`str` instance containing " +"a JSON document)." +msgstr "" +"Renvoie la représentation Python de *s* (une instance :class:`str` contenant " +"un document JSON)." + +#: ../Doc/library/json.rst:364 +msgid "" +":exc:`JSONDecodeError` will be raised if the given JSON document is not " +"valid." +msgstr "" +"Une :exc:`JSONDecodeError` sera levée si le document JSON donné n'est pas " +"valide." + +#: ../Doc/library/json.rst:369 +msgid "" +"Decode a JSON document from *s* (a :class:`str` beginning with a JSON " +"document) and return a 2-tuple of the Python representation and the index in " +"*s* where the document ended." +msgstr "" +"Décode en document JSON depuis *s* (une instance :class:`str` débutant par " +"un document JSON) et renvoie un *tuple* de 2 éléments contenant la " +"représentation Python de l'objet et l'index dans *s* où le document se " +"terminait." + +#: ../Doc/library/json.rst:373 +msgid "" +"This can be used to decode a JSON document from a string that may have " +"extraneous data at the end." +msgstr "" +"Elle peut être utilisée pour décoder un document JSON depuis une chaîne qui " +"peut contenir des données supplémentaires à la fin." + +#: ../Doc/library/json.rst:379 +msgid "Extensible JSON encoder for Python data structures." +msgstr "Encodeur JSON extensible pour les structures de données Python." + +#: ../Doc/library/json.rst:381 +msgid "Supports the following objects and types by default:" +msgstr "Supporte par défaut les objets et types suivants :" + +#: ../Doc/library/json.rst:390 +msgid "list, tuple" +msgstr "*list*, *tuple*" + +#: ../Doc/library/json.rst:394 +msgid "int, float, int- & float-derived Enums" +msgstr "*int*, *float*, et *Enums* dérivées d'*int* ou de *float*" + +#: ../Doc/library/json.rst:394 +msgid "number" +msgstr "*number*" + +#: ../Doc/library/json.rst:403 +msgid "Added support for int- and float-derived Enum classes." +msgstr "Ajout du support des classes *Enum* dérivées d'*int* ou de *float*." + +#: ../Doc/library/json.rst:406 +msgid "" +"To extend this to recognize other objects, subclass and implement a :meth:" +"`default` method with another method that returns a serializable object for " +"``o`` if possible, otherwise it should call the superclass implementation " +"(to raise :exc:`TypeError`)." +msgstr "" +"Pour l'étendre afin de reconnaître d'autres types d'objets, il suffit d'en " +"créer une sous-classe et d'implémenter une nouvelle méthode :meth:`default` " +"qui renverrait si possible un objet sérialisable pour ``o``, ou ferait appel " +"à l'implémentation de la classe mère (qui lèverait une :exc:`TypeError`)." + +#: ../Doc/library/json.rst:411 +msgid "" +"If *skipkeys* is false (the default), then it is a :exc:`TypeError` to " +"attempt encoding of keys that are not :class:`str`, :class:`int`, :class:" +"`float` or ``None``. If *skipkeys* is true, such items are simply skipped." +msgstr "" +"Si *skipkeys* est faux (par défaut), une :exc:`TypeError` sera levée lors de " +"l'encodage de clés autres que des :class:`str`, des :class:`int`, des :class:" +"`float` ou ``None``. Si *skipkeys* est vrai, ces éléments sont simplement " +"ignorés." + +#: ../Doc/library/json.rst:420 +msgid "" +"If *check_circular* is true (the default), then lists, dicts, and custom " +"encoded objects will be checked for circular references during encoding to " +"prevent an infinite recursion (which would cause an :exc:`OverflowError`). " +"Otherwise, no such check takes place." +msgstr "" +"Si *check_circular* est vrai (par défaut), une vérification aura lieu sur " +"les listes, dictionnaires et objets personnalisés, afin de détecter les " +"références circulaires et éviter les récursions infinies (qui causeraient " +"une :exc:`OverflowError`). Autrement, la vérification n'a pas lieu." + +#: ../Doc/library/json.rst:425 +msgid "" +"If *allow_nan* is true (the default), then ``NaN``, ``Infinity``, and ``-" +"Infinity`` will be encoded as such. This behavior is not JSON specification " +"compliant, but is consistent with most JavaScript based encoders and " +"decoders. Otherwise, it will be a :exc:`ValueError` to encode such floats." +msgstr "" +"Si *allow_nan* est vrai (par défaut), alors ``NaN``, ``Infinity`` et ``-" +"Infinity`` seront encodés comme tels. Ce comportement ne respecte pas la " +"spécification JSON, mais est cohérent avec le majorité des encodeurs/" +"décodeurs JavaScript. Autrement, une :exc:`ValueError` sera levée pour de " +"telles valeurs." + +#: ../Doc/library/json.rst:431 +msgid "" +"If *sort_keys* is true (default: ``False``), then the output of dictionaries " +"will be sorted by key; this is useful for regression tests to ensure that " +"JSON serializations can be compared on a day-to-day basis." +msgstr "" +"Si *sort_keys* est vrai (``False`` par défaut), alors les dictionnaires " +"seront triés par clés en sortie ; cela est utile lors de tests de régression " +"pour pouvoir comparer les sérialisations JSON au jour le jour." + +#: ../Doc/library/json.rst:464 +msgid "" +"Implement this method in a subclass such that it returns a serializable " +"object for *o*, or calls the base implementation (to raise a :exc:" +"`TypeError`)." +msgstr "" +"Implémentez cette méthode dans une sous-classe afin qu'elle renvoie un objet " +"sérialisable pour *o*, ou appelle l'implémentation de base (qui lèvera une :" +"exc:`TypeError`)." + +#: ../Doc/library/json.rst:468 +msgid "" +"For example, to support arbitrary iterators, you could implement default " +"like this::" +msgstr "" +"Par exemple, pour supporter des itérateurs arbitraires, vous pourriez " +"implémenter *default* comme cela ::" + +#: ../Doc/library/json.rst:484 +msgid "" +"Return a JSON string representation of a Python data structure, *o*. For " +"example::" +msgstr "" +"Renvoie une chaîne JSON représentant la structure de données Python *o*. " +"Par exemple ::" + +#: ../Doc/library/json.rst:493 +msgid "" +"Encode the given object, *o*, and yield each string representation as " +"available. For example::" +msgstr "" +"Encode l'objet *o* donné, et produit chaque chaîne représentant l'objet " +"selon disponibilité. Par exemple ::" + +#: ../Doc/library/json.rst:501 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/json.rst:505 +msgid "Subclass of :exc:`ValueError` with the following additional attributes:" +msgstr "" +"Sous-classe de :exc:`ValueError` avec les attributs additionnels suivants :" + +#: ../Doc/library/json.rst:509 +msgid "The unformatted error message." +msgstr "Le message d'erreur non formaté." + +#: ../Doc/library/json.rst:513 +msgid "The JSON document being parsed." +msgstr "Le document JSON actuellement traité." + +#: ../Doc/library/json.rst:517 +msgid "The start index of *doc* where parsing failed." +msgstr "L'index de *doc* à partir duquel l'analyse a échoué." + +#: ../Doc/library/json.rst:521 +msgid "The line corresponding to *pos*." +msgstr "La ligne correspondant à *pos*." + +#: ../Doc/library/json.rst:525 +msgid "The column corresponding to *pos*." +msgstr "La colonne correspondant à *pos*." + +#: ../Doc/library/json.rst:531 +msgid "Standard Compliance and Interoperability" +msgstr "Conformité au standard et Interopérabilité" + +#: ../Doc/library/json.rst:533 +msgid "" +"The JSON format is specified by :rfc:`7159` and by `ECMA-404 `_. This section " +"details this module's level of compliance with the RFC. For simplicity, :" +"class:`JSONEncoder` and :class:`JSONDecoder` subclasses, and parameters " +"other than those explicitly mentioned, are not considered." +msgstr "" +"Le format JSON est spécifié par la :rfc:`7159` et le standard `ECMA-404 " +"`_. " +"Cette section détaille la conformité à la RFC au niveau du module. Pour " +"faire simple, les sous-classes de :class:`JSONEncoder` et :class:" +"`JSONDecoder`, et les paramètres autres que ceux explicitement mentionnés ne " +"sont pas considérés." + +#: ../Doc/library/json.rst:539 +msgid "" +"This module does not comply with the RFC in a strict fashion, implementing " +"some extensions that are valid JavaScript but not valid JSON. In particular:" +msgstr "" +"Ce module ne se conforme pas strictement à la RFC, implémentant quelques " +"extensions qui sont valides en JavaScript mais pas en JSON. En particulier :" + +#: ../Doc/library/json.rst:542 +msgid "Infinite and NaN number values are accepted and output;" +msgstr "Les nombres infinis et *NaN* sont acceptés et retranscrits ;" + +#: ../Doc/library/json.rst:543 +msgid "" +"Repeated names within an object are accepted, and only the value of the last " +"name-value pair is used." +msgstr "" +"Les noms répétés au sein d'un objet sont acceptés, seule la valeur du " +"dernier couple nom/valeur sera utilisée." + +#: ../Doc/library/json.rst:546 +msgid "" +"Since the RFC permits RFC-compliant parsers to accept input texts that are " +"not RFC-compliant, this module's deserializer is technically RFC-compliant " +"under default settings." +msgstr "" +"Comme la RFC permet aux analyseurs conformes d'accepter des textes en entrée " +"non conformes, le déserialiseur de ce module avec ses paramètres par défaut " +"est techniquement conforme à la RFC." + +#: ../Doc/library/json.rst:551 +msgid "Character Encodings" +msgstr "Encodage des caractères" + +#: ../Doc/library/json.rst:553 +msgid "" +"The RFC requires that JSON be represented using either UTF-8, UTF-16, or " +"UTF-32, with UTF-8 being the recommended default for maximum " +"interoperability." +msgstr "" +"La RFC requiert que le JSON soit représenté en utilisant l'encodage UTF-8, " +"UTF-16 ou UTF-32, avec UTF-8 recommandé par défaut pour une interopérabilité " +"maximale." + +#: ../Doc/library/json.rst:556 +msgid "" +"As permitted, though not required, by the RFC, this module's serializer sets " +"*ensure_ascii=True* by default, thus escaping the output so that the " +"resulting strings only contain ASCII characters." +msgstr "" +"Comme cela est permis par la RFC, bien que non requis, le sérialiseur du " +"module active *ensure_ascii=True* par défaut, échappant ainsi la sortie de " +"façon à ce que les chaînes résultants ne contiennent que des caractères " +"ASCII." + +#: ../Doc/library/json.rst:560 +msgid "" +"Other than the *ensure_ascii* parameter, this module is defined strictly in " +"terms of conversion between Python objects and :class:`Unicode strings " +"`, and thus does not otherwise directly address the issue of character " +"encodings." +msgstr "" +"Outre le paramètre *ensure_ascii*, les conversions entre objets Python et :" +"class:`chaînes Unicode ` de ce module sont strictement définies, et ne " +"rencontrent donc pas directement le problème de l'encodage des caractères." + +#: ../Doc/library/json.rst:565 +msgid "" +"The RFC prohibits adding a byte order mark (BOM) to the start of a JSON " +"text, and this module's serializer does not add a BOM to its output. The RFC " +"permits, but does not require, JSON deserializers to ignore an initial BOM " +"in their input. This module's deserializer raises a :exc:`ValueError` when " +"an initial BOM is present." +msgstr "" +"La RFC interdit d'ajouter un *byte* marqueur d'ordre (BOM) au début du texte " +"JSON, et le sérialiseur de ce module n'ajoute pas de tel BOM. La RFC permet, " +"mais ne requiert pas, que les déserialiseurs JSON ignorent ces BOM. Le " +"déserialiseur de ce module lève une :exc:`ValueError` quand un BOM est " +"présent au début du fichier." + +#: ../Doc/library/json.rst:571 +msgid "" +"The RFC does not explicitly forbid JSON strings which contain byte sequences " +"that don't correspond to valid Unicode characters (e.g. unpaired UTF-16 " +"surrogates), but it does note that they may cause interoperability problems. " +"By default, this module accepts and outputs (when present in the original :" +"class:`str`) code points for such sequences." +msgstr "" +"La RFC n'interdit pas explicitement les chaînes JSON contenant des séquences " +"de *bytes* ne correspondant à aucun caractère Unicode valide (p. ex. les " +"*surrogates* UTF-16 sans correspondance), mais précise que cela peut causer " +"des problèmes d'interopérabilité. Par défaut, ce module accepte et " +"retranscrit (quand présents dans la :class:`str` originale) les *code " +"points* de telles séquences." + +#: ../Doc/library/json.rst:579 +msgid "Infinite and NaN Number Values" +msgstr "Valeurs numériques infinies et NaN" + +#: ../Doc/library/json.rst:581 +msgid "" +"The RFC does not permit the representation of infinite or NaN number values. " +"Despite that, by default, this module accepts and outputs ``Infinity``, ``-" +"Infinity``, and ``NaN`` as if they were valid JSON number literal values::" +msgstr "" +"La RFC ne permet pas la représentation des nombres infinis ou des *NaN*. " +"Néanmoins, par défaut, ce module accepte et retranscrit ``Infinity``, ``-" +"Infinity`` et ``NaN`` comme s'ils étaient des valeurs numériques littérales " +"JSON valides ::" + +#: ../Doc/library/json.rst:596 +msgid "" +"In the serializer, the *allow_nan* parameter can be used to alter this " +"behavior. In the deserializer, the *parse_constant* parameter can be used " +"to alter this behavior." +msgstr "" +"Dans le sérialiseur, le paramètre *allow_nan* peut être utilisé pour altérer " +"ce comportement. Dans le déserialiseur, le paramètre *parse_constant* peut " +"être utilisé pour altérer ce comportement." + +#: ../Doc/library/json.rst:602 +msgid "Repeated Names Within an Object" +msgstr "Noms répétés au sein d'un objet" + +#: ../Doc/library/json.rst:604 +msgid "" +"The RFC specifies that the names within a JSON object should be unique, but " +"does not mandate how repeated names in JSON objects should be handled. By " +"default, this module does not raise an exception; instead, it ignores all " +"but the last name-value pair for a given name::" +msgstr "" +"La RFC spécifie que les noms au sein d'un objet JSON doivent être uniques, " +"mais ne décrit pas comment les noms répétés doivent être gérés. Par défaut, " +"ce module ne lève pas d'exception ; à la place, il ignore tous les couples " +"nom/valeur sauf le dernier pour un nom donné ::" + +#: ../Doc/library/json.rst:613 +msgid "The *object_pairs_hook* parameter can be used to alter this behavior." +msgstr "" +"Le paramètre *object_pairs_hook* peut être utilisé pour altérer ce " +"comportement." + +#: ../Doc/library/json.rst:617 +msgid "Top-level Non-Object, Non-Array Values" +msgstr "Valeurs de plus haut niveau autres qu'objets ou tableaux" + +#: ../Doc/library/json.rst:619 +msgid "" +"The old version of JSON specified by the obsolete :rfc:`4627` required that " +"the top-level value of a JSON text must be either a JSON object or array " +"(Python :class:`dict` or :class:`list`), and could not be a JSON null, " +"boolean, number, or string value. :rfc:`7159` removed that restriction, and " +"this module does not and has never implemented that restriction in either " +"its serializer or its deserializer." +msgstr "" +"L'ancienne version de JSON spécifiée par l'obsolète :rfc:`4627` demandait à " +"ce que la valeur de plus haut niveau du texte JSON soit un objet ou un " +"tableau JSON (:class:`dict` ou :class:`list` Python), et ne soit pas *null*, " +"un nombre, ou une chaîne de caractères. La :rfc:`7159` a supprimé cette " +"restriction, jamais implémentée par ce module, que ce soit dans le " +"sérialiseur ou le déserialiseur." + +#: ../Doc/library/json.rst:626 +msgid "" +"Regardless, for maximum interoperability, you may wish to voluntarily adhere " +"to the restriction yourself." +msgstr "" +"Cependant, pour une interopérabilité maximale, vous pourriez volontairement " +"souhaiter adhérer à cette restriction par vous-même." + +#: ../Doc/library/json.rst:631 +msgid "Implementation Limitations" +msgstr "Limitations de l'implémentation" + +#: ../Doc/library/json.rst:633 +msgid "Some JSON deserializer implementations may set limits on:" +msgstr "" +"Certaines implémentations de déserialiseurs JSON peuvent avoir des limites " +"sur :" + +#: ../Doc/library/json.rst:635 +msgid "the size of accepted JSON texts" +msgstr "la taille des textes JSON acceptés ;" + +#: ../Doc/library/json.rst:636 +msgid "the maximum level of nesting of JSON objects and arrays" +msgstr "le niveau maximum d'objets et tableaux JSON imbriqués ;" + +#: ../Doc/library/json.rst:637 +msgid "the range and precision of JSON numbers" +msgstr "l'intervalle et la précision des nombres JSON ;" + +#: ../Doc/library/json.rst:638 +msgid "the content and maximum length of JSON strings" +msgstr "le contenu et la longueur maximale des chaînes JSON." + +#: ../Doc/library/json.rst:640 +msgid "" +"This module does not impose any such limits beyond those of the relevant " +"Python datatypes themselves or the Python interpreter itself." +msgstr "" +"Ce module n'impose pas de telles limites si ce n'est celles inhérentes aux " +"types de données Python ou à l'interpréteur." + +#: ../Doc/library/json.rst:643 +msgid "" +"When serializing to JSON, beware any such limitations in applications that " +"may consume your JSON. In particular, it is common for JSON numbers to be " +"deserialized into IEEE 754 double precision numbers and thus subject to that " +"representation's range and precision limitations. This is especially " +"relevant when serializing Python :class:`int` values of extremely large " +"magnitude, or when serializing instances of \"exotic\" numerical types such " +"as :class:`decimal.Decimal`." +msgstr "" +"Lors d'une sérialisation JSON, faites attention à ces limitations dans les " +"applications qui utiliseraient votre JSON. En particulier, il est commun " +"pour les nombres JSON d'être déserialisés vers des nombres IEEE 754 à " +"précision double, et donc sujets à l'intervalle et aux limitations sur la " +"précision de cette représentation. Cela est d'autant plus important lors de " +"la sérialisation de valeurs :class:`int` Python de forte magnitude, ou " +"d'instances de types numériques « exotiques » comme :class:`decimal.Decimal`." + +#: ../Doc/library/json.rst:656 +msgid "Command Line Interface" +msgstr "Interface en ligne de commande" + +#: ../Doc/library/json.rst:661 +msgid "**Source code:** :source:`Lib/json/tool.py`" +msgstr "**Code source :** :source:`Lib/json/tool.py`" + +#: ../Doc/library/json.rst:665 +msgid "" +"The :mod:`json.tool` module provides a simple command line interface to " +"validate and pretty-print JSON objects." +msgstr "" +"Le module :mod:`json.tool` fournit une simple interface en ligne de commande " +"pour valider et réécrire élégamment des objets JSON." + +#: ../Doc/library/json.rst:668 +msgid "" +"If the optional ``infile`` and ``outfile`` arguments are not specified, :" +"attr:`sys.stdin` and :attr:`sys.stdout` will be used respectively:" +msgstr "" +"Si les arguments optionnels ``infile`` et ``outfile`` ne sont pas " +"spécifiés, :attr:`sys.stdin` et :attr:`sys.stdout` seront utilisés " +"respectivement :" + +#: ../Doc/library/json.rst:680 +msgid "" +"The output is now in the same order as the input. Use the :option:`--sort-" +"keys` option to sort the output of dictionaries alphabetically by key." +msgstr "" +"La sortie conserve maintenant l'ordre des données de l'entrée. Utilisez " +"l'option :option:`--sort-keys` pour sortir des dictionnaires triés " +"alphabétiquement par clés." + +#: ../Doc/library/json.rst:687 +msgid "Command line options" +msgstr "Options de la ligne de commande" + +#: ../Doc/library/json.rst:691 +msgid "The JSON file to be validated or pretty-printed:" +msgstr "Le fichier JSON à valider ou réécrire élégamment :" + +#: ../Doc/library/json.rst:707 +msgid "If *infile* is not specified, read from :attr:`sys.stdin`." +msgstr "" +"Si *infile* n'est pas spécifié, lit le document depuis :attr:`sys.stdin`." + +#: ../Doc/library/json.rst:711 +msgid "" +"Write the output of the *infile* to the given *outfile*. Otherwise, write it " +"to :attr:`sys.stdout`." +msgstr "" +"Écrit la sortie générée par *infile* vers le fichier *outfile* donné. " +"Autrement, écrit sur :attr:`sys.stdout`." + +#: ../Doc/library/json.rst:716 +msgid "Sort the output of dictionaries alphabetically by key." +msgstr "Trie alphabétiquement les dictionnaires par clés." + +#: ../Doc/library/json.rst:722 +msgid "Show the help message." +msgstr "Affiche le message d'aide." + +#: ../Doc/library/json.rst:726 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/json.rst:727 +msgid "" +"As noted in `the errata for RFC 7159 `_, JSON permits literal U+2028 (LINE SEPARATOR) " +"and U+2029 (PARAGRAPH SEPARATOR) characters in strings, whereas JavaScript " +"(as of ECMAScript Edition 5.1) does not." +msgstr "" +"Comme noté dans `l'errata de la RFC 7159 `_, JSON autorise les caractères littéraux U+2028 " +"(*LINE SEPARATOR*) et U+2029 (*PARAGRAPH SEPARATOR*) dans les chaînes de " +"caractères, alors que Javascript (selon le standard ECMAScript édition 5.1) " +"ne le permet pas." diff --git a/library/keyword.po b/library/keyword.po new file mode 100644 index 000000000..2cc1c17fc --- /dev/null +++ b/library/keyword.po @@ -0,0 +1,46 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-10-19 08:07+0100\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.10\n" + +#: ../Doc/library/keyword.rst:2 +msgid ":mod:`keyword` --- Testing for Python keywords" +msgstr ":mod:`keyword` — Tester si des chaînes sont des mot-clés Python" + +#: ../Doc/library/keyword.rst:7 +msgid "**Source code:** :source:`Lib/keyword.py`" +msgstr "**Code source :** :source:`Lib/keyword.py`" + +#: ../Doc/library/keyword.rst:11 +msgid "" +"This module allows a Python program to determine if a string is a keyword." +msgstr "" +"Ce module permet à un programme Python de déterminer si une chaîne " +"représente un mot-clé." + +#: ../Doc/library/keyword.rst:16 +msgid "Return true if *s* is a Python keyword." +msgstr "Renvoie vrai si *s* est un mot-clé Python." + +#: ../Doc/library/keyword.rst:21 +msgid "" +"Sequence containing all the keywords defined for the interpreter. If any " +"keywords are defined to only be active when particular :mod:`__future__` " +"statements are in effect, these will be included as well." +msgstr "" +"Séquence contenant tous les mots-clés définis par l'interpréteur. Si " +"certains mots-clés sont définis pour être actifs seulement si des " +"instructions :mod:`__future__` particulières sont effectives, ils seront " +"tout de même inclus." diff --git a/library/language.po b/library/language.po new file mode 100644 index 000000000..cd7846ad1 --- /dev/null +++ b/library/language.po @@ -0,0 +1,33 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-27 15:08+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/language.rst:5 +msgid "Python Language Services" +msgstr "Services du Langage Python" + +#: ../Doc/library/language.rst:7 +msgid "" +"Python provides a number of modules to assist in working with the Python " +"language. These modules support tokenizing, parsing, syntax analysis, " +"bytecode disassembly, and various other facilities." +msgstr "" +"Python fournit quelques modules pour vous aider à travailler avec le langage " +"Python lui-même. Ces modules gèrent entre autres l'analyse lexicale, " +"l'analyse syntaxique, et le désassemblage de *bytecode*." + +#: ../Doc/library/language.rst:11 +msgid "These modules include:" +msgstr "Ces modules sont :" diff --git a/library/linecache.po b/library/linecache.po new file mode 100644 index 000000000..2a4bd5eab --- /dev/null +++ b/library/linecache.po @@ -0,0 +1,111 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-27 15:10+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/linecache.rst:2 +msgid ":mod:`linecache` --- Random access to text lines" +msgstr ":mod:`linecache` — Accès direct aux lignes d'un texte" + +#: ../Doc/library/linecache.rst:9 +msgid "**Source code:** :source:`Lib/linecache.py`" +msgstr "**Code source :** :source:`Lib/linecache.py`" + +#: ../Doc/library/linecache.rst:13 +msgid "" +"The :mod:`linecache` module allows one to get any line from a Python source " +"file, while attempting to optimize internally, using a cache, the common " +"case where many lines are read from a single file. This is used by the :mod:" +"`traceback` module to retrieve source lines for inclusion in the formatted " +"traceback." +msgstr "" +"Le module :mod:`linecache` permet d'obtenir n'importe quelle ligne d'un " +"fichier source Python. Le cas classique où de nombreuses lignes sont " +"accédées est optimisé en utilisant un cache interne. C'est utilisé par le " +"module :mod:`traceback` pour récupérer les lignes à afficher dans les piles " +"d'appels." + +#: ../Doc/library/linecache.rst:18 +msgid "" +"The :func:`tokenize.open` function is used to open files. This function " +"uses :func:`tokenize.detect_encoding` to get the encoding of the file; in " +"the absence of an encoding token, the file encoding defaults to UTF-8." +msgstr "" +"Les fichiers sont ouverts par la fonction :func:`tokenize.open`. Cette " +"fonction utilise :func:`tokenize.detect_encoding` pour obtenir l'encodage du " +"fichier. En l'absence d'un BOM et d'un cookie d'encodage, c'est l'encodage " +"UTF-8 qui sera utilisé." + +#: ../Doc/library/linecache.rst:22 +msgid "The :mod:`linecache` module defines the following functions:" +msgstr "Le module :mod:`linecache` définit les fonctions suivantes :" + +#: ../Doc/library/linecache.rst:27 +msgid "" +"Get line *lineno* from file named *filename*. This function will never raise " +"an exception --- it will return ``''`` on errors (the terminating newline " +"character will be included for lines that are found)." +msgstr "" +"Récupère la ligne *lineno* du fichier *filename*. Cette fonction ne lèvera " +"jamais d'exception, elle préfèrera renvoyer ``''`` en cas d'erreur (le " +"caractère de retour à la ligne sera inclus pour les lignes existantes)." + +#: ../Doc/library/linecache.rst:33 +msgid "" +"If a file named *filename* is not found, the function will look for it in " +"the module search path, ``sys.path``, after first checking for a :pep:`302` " +"``__loader__`` in *module_globals*, in case the module was imported from a " +"zipfile or other non-filesystem import source." +msgstr "" +"Si le fichier *filename* n'est pas trouvé, la fonction le cherchera dans les " +"chemins de recherche de modules, ``sys.path`, après avoir vérifié si un " +"``__loader__`` (de la :pep:`302`) se trouve dans *module_globals*, dans le " +"cas où le module a été importé depuis un fichier zip, ou une autre source " +"hors du système de fichier." + +#: ../Doc/library/linecache.rst:41 +msgid "" +"Clear the cache. Use this function if you no longer need lines from files " +"previously read using :func:`getline`." +msgstr "" +"Nettoie le cache. Utilisez cette fonction si vous n'avez plus besoin des " +"lignes des fichiers précédemment lus via :func:`getline`." + +#: ../Doc/library/linecache.rst:47 +msgid "" +"Check the cache for validity. Use this function if files in the cache may " +"have changed on disk, and you require the updated version. If *filename* is " +"omitted, it will check all the entries in the cache." +msgstr "" +"Vérifie la validité du cache. Utilisez cette fonction si les fichiers du " +"cache pourraient avoir changé sur le disque, et que vous en voudriez une " +"version à jour. Sans *filename*, toutes les entrées du cache seront " +"vérifiées." + +#: ../Doc/library/linecache.rst:53 +msgid "" +"Capture enough detail about a non-file-based module to permit getting its " +"lines later via :func:`getline` even if *module_globals* is ``None`` in the " +"later call. This avoids doing I/O until a line is actually needed, without " +"having to carry the module globals around indefinitely." +msgstr "" +"Récupère suffisamment d'informations sur un module situé hors du système de " +"fichiers pour récupérer ses lignes plus tard via :func:`getline`, même si " +"*module_globals* devient ``None``. Cela évite de lire le fichier avant " +"d'avoir besoin d'une ligne, tout en évitant de conserver les globales du " +"module indéfiniment." + +#: ../Doc/library/linecache.rst:60 +msgid "Example::" +msgstr "Exemple ::" diff --git a/library/locale.po b/library/locale.po new file mode 100644 index 000000000..ce59a7ae8 --- /dev/null +++ b/library/locale.po @@ -0,0 +1,1102 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/locale.rst:2 +msgid ":mod:`locale` --- Internationalization services" +msgstr ":mod:`locale` — Services d'internationalisation" + +#: ../Doc/library/locale.rst:10 +msgid "**Source code:** :source:`Lib/locale.py`" +msgstr "" + +#: ../Doc/library/locale.rst:14 +msgid "" +"The :mod:`locale` module opens access to the POSIX locale database and " +"functionality. The POSIX locale mechanism allows programmers to deal with " +"certain cultural issues in an application, without requiring the programmer " +"to know all the specifics of each country where the software is executed." +msgstr "" +"Le module :mod:`locale` donne accès à la base de données et aux " +"fonctionnalités des paramètres linguistiques définis par POSIX. Le mécanisme " +"des paramètres linguistiques de POSIX permet aux développeurs de faire face " +"à certaines problématiques culturelles dans une application, sans avoir à " +"connaître toutes les spécificités de chaque pays où le logiciel est exécuté." + +#: ../Doc/library/locale.rst:21 +msgid "" +"The :mod:`locale` module is implemented on top of the :mod:`_locale` module, " +"which in turn uses an ANSI C locale implementation if available." +msgstr "" +"Le module :mod:`locale` est implémenté au-dessus du module :mod:`_locale`, " +"qui lui-même utilise l'implémentation du paramètre régional ANSI C si " +"disponible." + +#: ../Doc/library/locale.rst:24 +msgid "The :mod:`locale` module defines the following exception and functions:" +msgstr "" +"Le module :mod:`locale` définit l'exception et les fonctions suivantes :" + +#: ../Doc/library/locale.rst:29 +msgid "" +"Exception raised when the locale passed to :func:`setlocale` is not " +"recognized." +msgstr "" +"Exception levée lorsque le paramètre régional passé en paramètre de :func:" +"`setlocale` n'est pas reconnu." + +#: ../Doc/library/locale.rst:35 +msgid "" +"If *locale* is given and not ``None``, :func:`setlocale` modifies the locale " +"setting for the *category*. The available categories are listed in the data " +"description below. *locale* may be a string, or an iterable of two strings " +"(language code and encoding). If it's an iterable, it's converted to a " +"locale name using the locale aliasing engine. An empty string specifies the " +"user's default settings. If the modification of the locale fails, the " +"exception :exc:`Error` is raised. If successful, the new locale setting is " +"returned." +msgstr "" +"Si *locale* ne vaut pas ``None``, :func:`setlocale` modifie le paramètre " +"régional pour la catégorie *category*. Les catégories disponibles sont " +"listées dans la description des données ci-dessous. *locale* peut être une " +"chaîne de caractères ou un itérable de deux chaînes de caractères (code de " +"la langue et encodage). Si c'est un itérable, il est converti en un nom de " +"paramètre régional à l'aide du moteur de normalisation fait pour. Si c'est " +"une chaîne vide, les paramètres par défaut de l'utilisateur sont utilisés. " +"Si la modification du paramètre régional échoue, l'exception :exc:`Error` " +"est levée. Si elle fonctionne, le nouveau paramètre est renvoyé." + +#: ../Doc/library/locale.rst:43 +msgid "" +"If *locale* is omitted or ``None``, the current setting for *category* is " +"returned." +msgstr "" +"Si *locale* est omis ou vaut ``None``, le paramètre actuel de *category* est " +"renvoyé." + +#: ../Doc/library/locale.rst:46 +msgid "" +":func:`setlocale` is not thread-safe on most systems. Applications typically " +"start with a call of ::" +msgstr "" +":func:`setlocale` n'est pas *thread-safe* sur la plupart des systèmes. Les " +"applications commencent généralement par un appel de : ::" + +#: ../Doc/library/locale.rst:52 +msgid "" +"This sets the locale for all categories to the user's default setting " +"(typically specified in the :envvar:`LANG` environment variable). If the " +"locale is not changed thereafter, using multithreading should not cause " +"problems." +msgstr "" +"Cela définit les paramètres régionaux dans toutes les catégories sur ceux " +"par défaut de l'utilisateur (habituellement spécifiés dans la variable " +"d'environnement :envvar:`LANG`). Si les paramètres régionaux ne sont pas " +"modifiés par la suite, l'utilisation de fils d'exécution ne devrait pas " +"poser de problèmes." + +#: ../Doc/library/locale.rst:59 +msgid "" +"Returns the database of the local conventions as a dictionary. This " +"dictionary has the following strings as keys:" +msgstr "" +"Renvoie la base de données des conventions locales sous forme de " +"dictionnaire. Ce dictionnaire a les chaînes de caractères suivantes comme " +"clés :" + +#: ../Doc/library/locale.rst:65 +msgid "Category" +msgstr "Catégorie" + +#: ../Doc/library/locale.rst:65 +msgid "Key" +msgstr "Clé" + +#: ../Doc/library/locale.rst:65 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/locale.rst:67 +msgid ":const:`LC_NUMERIC`" +msgstr ":const:`LC_NUMERIC`" + +#: ../Doc/library/locale.rst:67 +msgid "``'decimal_point'``" +msgstr "``'decimal_point'``" + +#: ../Doc/library/locale.rst:67 +msgid "Decimal point character." +msgstr "" +"Caractère du séparateur décimal (entre la partie entière et la partie " +"décimale)." + +#: ../Doc/library/locale.rst:69 +msgid "``'grouping'``" +msgstr "``'grouping'``" + +#: ../Doc/library/locale.rst:69 +msgid "" +"Sequence of numbers specifying which relative positions the " +"``'thousands_sep'`` is expected. If the sequence is terminated with :const:" +"`CHAR_MAX`, no further grouping is performed. If the sequence terminates " +"with a ``0``, the last group size is repeatedly used." +msgstr "" +"Séquence de nombres spécifiant les positions relatives attendues pour " +"``'thousands_sep'`` (séparateur de milliers). Si la séquence se termine " +"par :const:`CHAR_MAX`, aucun autre regroupement n'est effectué. Si la " +"séquence se termine par un ``0``, la dernière taille du groupe est utilisée " +"à plusieurs reprises." + +#: ../Doc/library/locale.rst:80 +msgid "``'thousands_sep'``" +msgstr "``'thousands_sep'``" + +#: ../Doc/library/locale.rst:80 +msgid "Character used between groups." +msgstr "Caractère utilisé entre les groupes (séparateur de milliers)." + +#: ../Doc/library/locale.rst:82 +msgid ":const:`LC_MONETARY`" +msgstr ":const:`LC_MONETARY`" + +#: ../Doc/library/locale.rst:82 +msgid "``'int_curr_symbol'``" +msgstr "``'int_curr_symbol'``" + +#: ../Doc/library/locale.rst:82 +msgid "International currency symbol." +msgstr "Symbole monétaire international." + +#: ../Doc/library/locale.rst:84 +msgid "``'currency_symbol'``" +msgstr "``'currency_symbol'``" + +#: ../Doc/library/locale.rst:84 +msgid "Local currency symbol." +msgstr "Symbole monétaire local." + +#: ../Doc/library/locale.rst:86 +msgid "``'p_cs_precedes/n_cs_precedes'``" +msgstr "``'p_cs_precedes/n_cs_precedes'``" + +#: ../Doc/library/locale.rst:86 +msgid "" +"Whether the currency symbol precedes the value (for positive resp. negative " +"values)." +msgstr "" +"Si le symbole monétaire précède ou non la valeur (pour les valeurs positives " +"et négatives, respectivement)." + +#: ../Doc/library/locale.rst:91 +msgid "``'p_sep_by_space/n_sep_by_space'``" +msgstr "``'p_sep_by_space/n_sep_by_space'``" + +#: ../Doc/library/locale.rst:91 +msgid "" +"Whether the currency symbol is separated from the value by a space (for " +"positive resp. negative values)." +msgstr "" +"Si le symbole monétaire est séparé de la valeur par une espace ou non (pour " +"les valeurs positives et négatives, respectivement)." + +#: ../Doc/library/locale.rst:96 +msgid "``'mon_decimal_point'``" +msgstr "``'mon_decimal_point'``" + +#: ../Doc/library/locale.rst:96 +msgid "Decimal point used for monetary values." +msgstr "" +"Séparateur décimal (entre la partie entière et la partie décimale) utilisé " +"pour les valeurs monétaires." + +#: ../Doc/library/locale.rst:99 +msgid "``'frac_digits'``" +msgstr "``'frac_digits'``" + +#: ../Doc/library/locale.rst:99 +msgid "" +"Number of fractional digits used in local formatting of monetary values." +msgstr "" +"Nombre de décimales utilisées dans le format local des valeurs monétaires." + +#: ../Doc/library/locale.rst:103 +msgid "``'int_frac_digits'``" +msgstr "``'int_frac_digits'``" + +#: ../Doc/library/locale.rst:103 +msgid "" +"Number of fractional digits used in international formatting of monetary " +"values." +msgstr "" +"Nombre de décimales utilisées dans le format international des valeurs " +"monétaires." + +#: ../Doc/library/locale.rst:107 +msgid "``'mon_thousands_sep'``" +msgstr "``'mon_thousands_sep'``" + +#: ../Doc/library/locale.rst:107 +msgid "Group separator used for monetary values." +msgstr "Séparateur de groupe utilisé pour les valeurs monétaires." + +#: ../Doc/library/locale.rst:110 +msgid "``'mon_grouping'``" +msgstr "``'mon_grouping'``" + +#: ../Doc/library/locale.rst:110 +msgid "Equivalent to ``'grouping'``, used for monetary values." +msgstr "Équivalent de ``'grouping'``, utilisé pour les valeurs monétaires." + +#: ../Doc/library/locale.rst:113 +msgid "``'positive_sign'``" +msgstr "``'positive_sign'``" + +#: ../Doc/library/locale.rst:113 +msgid "Symbol used to annotate a positive monetary value." +msgstr "Symbole utilisé pour indiquer qu'une valeur monétaire est positive." + +#: ../Doc/library/locale.rst:116 +msgid "``'negative_sign'``" +msgstr "``'negative_sign'``" + +#: ../Doc/library/locale.rst:116 +msgid "Symbol used to annotate a negative monetary value." +msgstr "Symbole utilisé pour indiquer qu'une valeur monétaire est négative." + +#: ../Doc/library/locale.rst:119 +msgid "``'p_sign_posn/n_sign_posn'``" +msgstr "``'p_sign_posn/n_sign_posn'``" + +#: ../Doc/library/locale.rst:119 +msgid "" +"The position of the sign (for positive resp. negative values), see below." +msgstr "" +"Position du signe (pour les valeurs positives et négatives, respectivement), " +"voir ci-dessous." + +#: ../Doc/library/locale.rst:124 +msgid "" +"All numeric values can be set to :const:`CHAR_MAX` to indicate that there is " +"no value specified in this locale." +msgstr "" +"Toutes les valeurs numériques peuvent être définies à :const:`CHAR_MAX` pour " +"indiquer qu'il n'y a pas de valeur spécifiée pour ces paramètres régionaux." + +#: ../Doc/library/locale.rst:127 +msgid "" +"The possible values for ``'p_sign_posn'`` and ``'n_sign_posn'`` are given " +"below." +msgstr "" +"Les valeurs possibles pour ``'p_sign_posn'`` et ``'n_sign_posn'`` sont " +"données ci-dessous." + +#: ../Doc/library/locale.rst:130 +msgid "Value" +msgstr "Valeur" + +#: ../Doc/library/locale.rst:130 +msgid "Explanation" +msgstr "Explication" + +#: ../Doc/library/locale.rst:132 +msgid "``0``" +msgstr "``0``" + +#: ../Doc/library/locale.rst:132 +msgid "Currency and value are surrounded by parentheses." +msgstr "Le symbole monétaire et la valeur sont entourés de parenthèses." + +#: ../Doc/library/locale.rst:135 +msgid "``1``" +msgstr "``1``" + +#: ../Doc/library/locale.rst:135 +msgid "The sign should precede the value and currency symbol." +msgstr "Le signe doit précéder la valeur et le symbole monétaire." + +#: ../Doc/library/locale.rst:138 +msgid "``2``" +msgstr "``2``" + +#: ../Doc/library/locale.rst:138 +msgid "The sign should follow the value and currency symbol." +msgstr "Le signe doit suivre la valeur et le symbole monétaire." + +#: ../Doc/library/locale.rst:141 +msgid "``3``" +msgstr "``3``" + +#: ../Doc/library/locale.rst:141 +msgid "The sign should immediately precede the value." +msgstr "Le signe doit précéder immédiatement la valeur." + +#: ../Doc/library/locale.rst:144 +msgid "``4``" +msgstr "``4``" + +#: ../Doc/library/locale.rst:144 +msgid "The sign should immediately follow the value." +msgstr "Le signe doit suivre immédiatement la valeur." + +#: ../Doc/library/locale.rst:147 +msgid "``CHAR_MAX``" +msgstr "``CHAR_MAX``" + +#: ../Doc/library/locale.rst:147 +msgid "Nothing is specified in this locale." +msgstr "Rien n'est spécifié dans ces paramètres régionaux." + +#: ../Doc/library/locale.rst:150 +msgid "" +"The function sets temporarily the ``LC_CTYPE`` locale to the ``LC_NUMERIC`` " +"locale or the ``LC_MONETARY`` locale if locales are different and numeric or " +"monetary strings are non-ASCII. This temporary change affects other threads." +msgstr "" + +#: ../Doc/library/locale.rst:154 +msgid "" +"The function now sets temporarily the ``LC_CTYPE`` locale to the " +"``LC_NUMERIC`` locale in some cases." +msgstr "" +"La fonction définit maintenant la valeur du paramètre ``LC_CTYPE`` à celle " +"du paramètre ``LC_NUMERIC`` temporairement dans certains cas." + +#: ../Doc/library/locale.rst:161 +msgid "" +"Return some locale-specific information as a string. This function is not " +"available on all systems, and the set of possible options might also vary " +"across platforms. The possible argument values are numbers, for which " +"symbolic constants are available in the locale module." +msgstr "" +"Renvoie quelques informations spécifiques aux paramètres régionaux sous " +"forme de chaîne. Cette fonction n'est pas disponible sur tous les systèmes " +"et l'ensemble des options possibles peut également varier d'une plateforme à " +"l'autre. Les valeurs possibles pour les arguments sont des nombres, pour " +"lesquels des constantes symboliques sont disponibles dans le module *locale*." + +#: ../Doc/library/locale.rst:166 +msgid "" +"The :func:`nl_langinfo` function accepts one of the following keys. Most " +"descriptions are taken from the corresponding description in the GNU C " +"library." +msgstr "" +"La fonction :func:`nl_langinfo` accepte l'une des clés suivantes. La " +"plupart des descriptions sont extraites des descriptions correspondantes " +"dans la bibliothèque GNU C." + +#: ../Doc/library/locale.rst:172 +msgid "" +"Get a string with the name of the character encoding used in the selected " +"locale." +msgstr "" +"Récupère une chaîne avec le nom de l'encodage des caractères utilisé par le " +"paramètre régional sélectionné." + +#: ../Doc/library/locale.rst:177 +msgid "" +"Get a string that can be used as a format string for :func:`time.strftime` " +"to represent date and time in a locale-specific way." +msgstr "" +"Récupère une chaîne qui peut être utilisée comme une chaîne de format par :" +"func:`time.strftime` afin de représenter la date et l'heure pour un " +"paramètre régional spécifique." + +#: ../Doc/library/locale.rst:182 +msgid "" +"Get a string that can be used as a format string for :func:`time.strftime` " +"to represent a date in a locale-specific way." +msgstr "" +"Récupère une chaîne qui peut être utilisée comme une chaîne de format par :" +"func:`time.strftime` afin de représenter une date pour un paramètre régional " +"spécifique." + +#: ../Doc/library/locale.rst:187 +msgid "" +"Get a string that can be used as a format string for :func:`time.strftime` " +"to represent a time in a locale-specific way." +msgstr "" +"Récupère une chaîne qui peut être utilisée comme une chaîne de format par :" +"func:`time.strftime` afin de représenter une heure pour un paramètre " +"régional spécifique." + +#: ../Doc/library/locale.rst:192 +msgid "" +"Get a format string for :func:`time.strftime` to represent time in the am/pm " +"format." +msgstr "" +"Récupère une chaîne de format pour :func:`time.strftime` afin de représenter " +"l'heure au format am / pm." + +#: ../Doc/library/locale.rst:197 +msgid "Get the name of the n-th day of the week." +msgstr "Récupère le nom du n-ième jour de la semaine." + +#: ../Doc/library/locale.rst:201 +msgid "" +"This follows the US convention of :const:`DAY_1` being Sunday, not the " +"international convention (ISO 8601) that Monday is the first day of the week." +msgstr "" +"Cela suit la convention américaine qui définit :const:`DAY_1` comme étant " +"dimanche, et non la convention internationale (ISO 8601) où lundi est le " +"premier jour de la semaine." + +#: ../Doc/library/locale.rst:207 +msgid "Get the abbreviated name of the n-th day of the week." +msgstr "Récupère l'abréviation du n-ième jour de la semaine." + +#: ../Doc/library/locale.rst:211 +msgid "Get the name of the n-th month." +msgstr "Récupère le nom du n-ième mois." + +#: ../Doc/library/locale.rst:215 +msgid "Get the abbreviated name of the n-th month." +msgstr "Récupère l'abréviation du n-ième mois." + +#: ../Doc/library/locale.rst:219 +msgid "Get the radix character (decimal dot, decimal comma, etc.)." +msgstr "" +"Récupère le caractère de séparation *radix* (point décimal, virgule " +"décimale, etc.)." + +#: ../Doc/library/locale.rst:223 +msgid "Get the separator character for thousands (groups of three digits)." +msgstr "" +"Récupère le caractère de séparation des milliers (groupes de 3 chiffres)." + +#: ../Doc/library/locale.rst:227 +msgid "" +"Get a regular expression that can be used with the regex function to " +"recognize a positive response to a yes/no question." +msgstr "" +"Récupère une expression régulière qui peut être utilisée par la fonction " +"*regex* pour reconnaître une réponse positive à une question fermée (oui / " +"non)." + +#: ../Doc/library/locale.rst:232 +msgid "" +"The expression is in the syntax suitable for the :c:func:`regex` function " +"from the C library, which might differ from the syntax used in :mod:`re`." +msgstr "" +"L'expression est dans une syntaxe adaptée à la fonction :c:func:`regex` de " +"la bibliothèque C, qui peut différer de la syntaxe utilisée par :mod:`re`." + +#: ../Doc/library/locale.rst:237 +msgid "" +"Get a regular expression that can be used with the regex(3) function to " +"recognize a negative response to a yes/no question." +msgstr "" +"Récupère une expression régulière qui peut être utilisée par la fonction " +"*regex(3)* pour reconnaître une réponse négative à une question fermée " +"(oui / non)." + +#: ../Doc/library/locale.rst:242 +msgid "" +"Get the currency symbol, preceded by \"-\" if the symbol should appear " +"before the value, \"+\" if the symbol should appear after the value, or \"." +"\" if the symbol should replace the radix character." +msgstr "" +"Récupère le symbole monétaire, précédé de « - » si le symbole doit " +"apparaître avant la valeur, « + » s'il doit apparaître après la valeur, ou " +"« . » s'il doit remplacer le caractère de séparation *radix*." + +#: ../Doc/library/locale.rst:248 +msgid "Get a string that represents the era used in the current locale." +msgstr "" +"Récupère une chaîne qui représente l'ère utilisée pour le paramètre régional " +"actuel." + +#: ../Doc/library/locale.rst:250 +msgid "" +"Most locales do not define this value. An example of a locale which does " +"define this value is the Japanese one. In Japan, the traditional " +"representation of dates includes the name of the era corresponding to the " +"then-emperor's reign." +msgstr "" +"La plupart des paramètres régionaux ne définissent pas cette valeur. Un " +"exemple de région qui définit bien cette valeur est le japonais. Au Japon, " +"la représentation traditionnelle des dates comprend le nom de l'ère " +"correspondant au règne de l'empereur de l'époque." + +#: ../Doc/library/locale.rst:255 +msgid "" +"Normally it should not be necessary to use this value directly. Specifying " +"the ``E`` modifier in their format strings causes the :func:`time.strftime` " +"function to use this information. The format of the returned string is not " +"specified, and therefore you should not assume knowledge of it on different " +"systems." +msgstr "" +"Normalement, il ne devrait pas être nécessaire d'utiliser cette valeur " +"directement. Spécifier le modificateur ``E`` dans leurs chaînes de format " +"provoque l'utilisation de cette information par la fonction :func:`time." +"strftime`. Le format de la chaîne renvoyée n'est pas spécifié, et vous ne " +"devez donc pas supposer en avoir connaissance sur des systèmes différents." + +#: ../Doc/library/locale.rst:263 +msgid "" +"Get a format string for :func:`time.strftime` to represent date and time in " +"a locale-specific era-based way." +msgstr "" +"Récupère la chaîne de format pour :func:`time.strftime` afin de représenter " +"la date et l'heure pour un paramètre régional spécifique basée sur une ère." + +#: ../Doc/library/locale.rst:268 +msgid "" +"Get a format string for :func:`time.strftime` to represent a date in a " +"locale-specific era-based way." +msgstr "" +"Récupère la chaîne de format pour :func:`time.strftime` afin de représenter " +"une date pour un paramètre régional spécifique basée sur une ère." + +#: ../Doc/library/locale.rst:273 +msgid "" +"Get a format string for :func:`time.strftime` to represent a time in a " +"locale-specific era-based way." +msgstr "" +"Récupère la chaîne de format pour :func:`time.strftime` afin de représenter " +"une heure pour un paramètre régional spécifique basée sur une ère." + +#: ../Doc/library/locale.rst:278 +msgid "" +"Get a representation of up to 100 values used to represent the values 0 to " +"99." +msgstr "" +"Récupère une représentation de 100 valeurs maximum utilisées pour " +"représenter les valeurs de 0 à 99." + +#: ../Doc/library/locale.rst:284 +msgid "" +"Tries to determine the default locale settings and returns them as a tuple " +"of the form ``(language code, encoding)``." +msgstr "" +"Tente de déterminer les paramètres régionaux par défaut, puis les renvoie " +"sous la forme d'un n-uplet ``(code de la langue, encodage)``." + +#: ../Doc/library/locale.rst:287 +msgid "" +"According to POSIX, a program which has not called ``setlocale(LC_ALL, '')`` " +"runs using the portable ``'C'`` locale. Calling ``setlocale(LC_ALL, '')`` " +"lets it use the default locale as defined by the :envvar:`LANG` variable. " +"Since we do not want to interfere with the current locale setting we thus " +"emulate the behavior in the way described above." +msgstr "" +"D'après POSIX, un programme qui n'a pas appelé ``setlocale(LC_ALL, '')`` " +"fonctionne en utilisant le paramètre régional portable ``'C'``. Appeler " +"``setlocale(LC_ALL, '')`` lui permet d'utiliser les paramètres régionaux par " +"défaut définis par la variable :envvar:`LANG`. Comme nous ne voulons pas " +"interférer avec les paramètres régionaux actuels, nous émulons donc le " +"comportement décrit ci-dessus." + +#: ../Doc/library/locale.rst:293 +msgid "" +"To maintain compatibility with other platforms, not only the :envvar:`LANG` " +"variable is tested, but a list of variables given as envvars parameter. The " +"first found to be defined will be used. *envvars* defaults to the search " +"path used in GNU gettext; it must always contain the variable name " +"``'LANG'``. The GNU gettext search path contains ``'LC_ALL'``, " +"``'LC_CTYPE'``, ``'LANG'`` and ``'LANGUAGE'``, in that order." +msgstr "" +"Afin de maintenir la compatibilité avec d'autres plateformes, non seulement " +"la variable :envvar:`LANG` est testée, mais c'est aussi le cas pour toute " +"une liste de variables passés en paramètre via *envvars*. La première " +"variable à être définie sera utilisée. *envvars* utilise par défaut le " +"chemin de recherche utilisé dans GNU *gettext* ; il doit toujours contenir " +"le nom de variable ``'LANG'``. Le chemin de recherche de GNU *gettext* " +"contient ``'LC_ALL'``, ``'LC_CTYPE'``, ``'LANG'`` et ``'LANGUAGE'``, dans " +"cet ordre." + +#: ../Doc/library/locale.rst:300 ../Doc/library/locale.rst:311 +msgid "" +"Except for the code ``'C'``, the language code corresponds to :rfc:`1766`. " +"*language code* and *encoding* may be ``None`` if their values cannot be " +"determined." +msgstr "" +"À l'exception du code ``'C'``, le code d'une langue correspond à la :rfc:" +"`1766`. Le *code de la langue* et l'*encodage* peuvent valoir ``None`` si " +"leur valeur ne peut être déterminée." + +#: ../Doc/library/locale.rst:307 +msgid "" +"Returns the current setting for the given locale category as sequence " +"containing *language code*, *encoding*. *category* may be one of the :const:" +"`LC_\\*` values except :const:`LC_ALL`. It defaults to :const:`LC_CTYPE`." +msgstr "" +"Renvoie les réglages actuels pour la catégorie de paramètres régionaux " +"donnée, sous la forme d'une séquence contenant le *code de la langue* et " +"l'*encodage*. La catégorie *category* peut être l'une des valeurs :const:`LC_" +"\\*` à l'exception de :const:`LC_ALL`. La valeur par défaut est :const:" +"`LC_CTYPE`." + +#: ../Doc/library/locale.rst:318 +msgid "" +"Return the encoding used for text data, according to user preferences. User " +"preferences are expressed differently on different systems, and might not be " +"available programmatically on some systems, so this function only returns a " +"guess." +msgstr "" +"Renvoie le codage utilisé pour les données textuelles, selon les préférences " +"de l'utilisateur. Les préférences de l'utilisateur sont exprimées " +"différemment selon les systèmes et peuvent ne pas être disponibles via les " +"interfaces de programmation sur certains systèmes. Cette fonction ne renvoie " +"donc qu'une supposition." + +#: ../Doc/library/locale.rst:323 +msgid "" +"On some systems, it is necessary to invoke :func:`setlocale` to obtain the " +"user preferences, so this function is not thread-safe. If invoking setlocale " +"is not necessary or desired, *do_setlocale* should be set to ``False``." +msgstr "" +"Sur certains systèmes, il est nécessaire d'invoquer :func:`setlocale` pour " +"obtenir les préférences de l'utilisateur, cette fonction n'est donc pas " +"utilisable sans protection dans les programmes à fils d'exécutions " +"multiples. Si l'appel de `setlocale` n'est pas nécessaire ou souhaité, " +"*do_setlocale* doit être réglé à ``False``." + +#: ../Doc/library/locale.rst:327 +msgid "" +"On Android or in the UTF-8 mode (:option:`-X` ``utf8`` option), always " +"return ``'UTF-8'``, the locale and the *do_setlocale* argument are ignored." +msgstr "" +"Sur Android ou dans le mode UTF-8 (avec l'option :option:`-X` ``utf8``), " +"renvoie toujours ``'UTF-8'``, la locale et l'argument *do_setlocale* sont " +"ignorés." + +#: ../Doc/library/locale.rst:330 +msgid "" +"The function now always returns ``UTF-8`` on Android or if the UTF-8 mode is " +"enabled." +msgstr "" +"La fonction renvoie maintenant toujours ``UTF-8`` sur Android ou si le mode " +"UTF-8 est activé." + +#: ../Doc/library/locale.rst:337 +msgid "" +"Returns a normalized locale code for the given locale name. The returned " +"locale code is formatted for use with :func:`setlocale`. If normalization " +"fails, the original name is returned unchanged." +msgstr "" +"Renvoie un code normalisé pour le nom du paramètre régional fourni. Ce code " +"renvoyé est structuré de façon à être utilisé avec :func:`setlocale`. Si la " +"normalisation échoue, le nom d'origine est renvoyé inchangé." + +#: ../Doc/library/locale.rst:341 +msgid "" +"If the given encoding is not known, the function defaults to the default " +"encoding for the locale code just like :func:`setlocale`." +msgstr "" +"Si l'encodage donné n'est pas connu, la fonction utilise l'encodage par " +"défaut pour le code du paramètre régional, tout comme :func:`setlocale`." + +#: ../Doc/library/locale.rst:347 +msgid "Sets the locale for *category* to the default setting." +msgstr "" +"Définit le paramètre régional de la catégorie *category* au réglage par " +"défaut." + +#: ../Doc/library/locale.rst:349 +msgid "" +"The default setting is determined by calling :func:`getdefaultlocale`. " +"*category* defaults to :const:`LC_ALL`." +msgstr "" +"Le réglage par défaut est déterminé en appelant :func:`getdefaultlocale`. La " +"catégorie *category* vaut par défaut :const:`LC_ALL`." + +#: ../Doc/library/locale.rst:355 +msgid "" +"Compares two strings according to the current :const:`LC_COLLATE` setting. " +"As any other compare function, returns a negative, or a positive value, or " +"``0``, depending on whether *string1* collates before or after *string2* or " +"is equal to it." +msgstr "" +"Compare deux chaînes en se basant sur le paramètre :const:`LC_COLLATE` " +"actuel. Comme toute autre fonction de comparaison, renvoie une valeur " +"négative, positive, ou ``0``, selon si *string1* est lexicographiquement " +"inférieure, supérieure, ou égale à *string2*." + +#: ../Doc/library/locale.rst:363 +msgid "" +"Transforms a string to one that can be used in locale-aware comparisons. " +"For example, ``strxfrm(s1) < strxfrm(s2)`` is equivalent to ``strcoll(s1, " +"s2) < 0``. This function can be used when the same string is compared " +"repeatedly, e.g. when collating a sequence of strings." +msgstr "" +"Transforme une chaîne de caractères en une chaîne qui peut être utilisée " +"dans les comparaisons sensibles aux paramètres régionaux. Par exemple, " +"``strxfrm(s1) < strxfrm(s2)`` est équivalent à ``strcoll(s1, s2) < 0``. " +"Cette fonction peut être utilisée lorsque la même chaîne est comparée de " +"façon répétitive, par exemple lors de l'assemblage d'une séquence de chaînes." + +#: ../Doc/library/locale.rst:372 +msgid "" +"Formats a number *val* according to the current :const:`LC_NUMERIC` setting. " +"The format follows the conventions of the ``%`` operator. For floating " +"point values, the decimal point is modified if appropriate. If *grouping* " +"is true, also takes the grouping into account." +msgstr "" +"Structure un nombre *val* en fonction du paramètre :const:`LC_NUMERIC` " +"actuel. Le format suit les conventions de l'opérateur ``%``. Pour les " +"valeurs à virgule flottante, le point décimal est modifié si nécessaire. Si " +"*grouping* est vrai, le regroupement est également pris en compte." + +#: ../Doc/library/locale.rst:377 +msgid "" +"If *monetary* is true, the conversion uses monetary thousands separator and " +"grouping strings." +msgstr "" +"Si *monetary* est vrai, la conversion utilise un séparateur des milliers " +"monétaire et des chaînes de regroupement." + +#: ../Doc/library/locale.rst:380 +msgid "" +"Processes formatting specifiers as in ``format % val``, but takes the " +"current locale settings into account." +msgstr "" +"Traite les marqueurs de structure en ``format % val``, mais en prenant en " +"compte les paramètres régionaux actuels." + +#: ../Doc/library/locale.rst:383 +msgid "The *monetary* keyword parameter was added." +msgstr "" + +#: ../Doc/library/locale.rst:389 +msgid "" +"Please note that this function works like :meth:`format_string` but will " +"only work for exactly one ``%char`` specifier. For example, ``'%f'`` and " +"``'%.0f'`` are both valid specifiers, but ``'%f KiB'`` is not." +msgstr "" + +#: ../Doc/library/locale.rst:393 +msgid "For whole format strings, use :func:`format_string`." +msgstr "" + +#: ../Doc/library/locale.rst:395 +msgid "Use :meth:`format_string` instead." +msgstr "" + +#: ../Doc/library/locale.rst:401 +msgid "" +"Formats a number *val* according to the current :const:`LC_MONETARY` " +"settings." +msgstr "" +"Structure un nombre *val* en fonction du paramètre :const:`LC_MONETARY` " +"actuel." + +#: ../Doc/library/locale.rst:403 +msgid "" +"The returned string includes the currency symbol if *symbol* is true, which " +"is the default. If *grouping* is true (which is not the default), grouping " +"is done with the value. If *international* is true (which is not the " +"default), the international currency symbol is used." +msgstr "" +"La chaîne renvoyée inclut le symbole monétaire si *symbol* est vrai, ce qui " +"est le cas par défaut. Si *grouping* est vrai (ce qui n'est pas le cas par " +"défaut), un regroupement est effectué avec la valeur. Si *international* est " +"vrai (ce qui n'est pas le cas par défaut), le symbole de la devise " +"internationale est utilisé." + +#: ../Doc/library/locale.rst:408 +msgid "" +"Note that this function will not work with the 'C' locale, so you have to " +"set a locale via :func:`setlocale` first." +msgstr "" +"Notez que cette fonction ne fonctionnera pas avec le paramètre régional 'C', " +"vous devez donc d'abord en définir un via :func:`setlocale`." + +#: ../Doc/library/locale.rst:414 +msgid "" +"Formats a floating point number using the same format as the built-in " +"function ``str(float)``, but takes the decimal point into account." +msgstr "" +"Structure un nombre flottant en utilisant le même format que la fonction " +"native ``str(float)``, mais en prenant en compte le point décimal." + +#: ../Doc/library/locale.rst:420 +msgid "" +"Converts a string into a normalized number string, following the :const:" +"`LC_NUMERIC` settings." +msgstr "" +"Convertit une chaîne de caractères en une chaîne de nombres normalisés, en " +"suivant les réglages :const:`LC_NUMERIC`." + +#: ../Doc/library/locale.rst:428 +msgid "" +"Converts a string to a floating point number, following the :const:" +"`LC_NUMERIC` settings." +msgstr "" +"Convertit une chaîne de caractères en nombre à virgule flottante, en suivant " +"les réglages :const:`LC_NUMERIC`." + +#: ../Doc/library/locale.rst:434 +msgid "" +"Converts a string to an integer, following the :const:`LC_NUMERIC` " +"conventions." +msgstr "" +"Convertit une chaîne de caractères en un entier, en suivant les réglages :" +"const:`LC_NUMERIC`." + +#: ../Doc/library/locale.rst:441 +msgid "" +"Locale category for the character type functions. Depending on the settings " +"of this category, the functions of module :mod:`string` dealing with case " +"change their behaviour." +msgstr "" +"Catégorie de paramètre régional pour les fonctions de type caractère. " +"Suivant les réglages de la catégorie, les fonctions du module :mod:`string` " +"gérant la casse peuvent changer leur comportement." + +#: ../Doc/library/locale.rst:448 +msgid "" +"Locale category for sorting strings. The functions :func:`strcoll` and :" +"func:`strxfrm` of the :mod:`locale` module are affected." +msgstr "" +"Catégorie de paramètre régional pour les tris de chaînes de caractères. Les " +"fonctions :func:`strcoll` et :func:`strxfrm` du module :mod:`locale` sont " +"concernées." + +#: ../Doc/library/locale.rst:454 +msgid "" +"Locale category for the formatting of time. The function :func:`time." +"strftime` follows these conventions." +msgstr "" +"Catégorie de paramètre régional pour la mise en forme de la date et de " +"l'heure. La fonction :func:`time.strftime` suit ces conventions." + +#: ../Doc/library/locale.rst:460 +msgid "" +"Locale category for formatting of monetary values. The available options " +"are available from the :func:`localeconv` function." +msgstr "" +"Catégorie de paramètre régional pour la mise en forme des valeurs " +"monétaires. Les options disponibles sont accessibles à partir de la " +"fonction :func:`localeconv`." + +#: ../Doc/library/locale.rst:466 +msgid "" +"Locale category for message display. Python currently does not support " +"application specific locale-aware messages. Messages displayed by the " +"operating system, like those returned by :func:`os.strerror` might be " +"affected by this category." +msgstr "" +"Catégorie de paramètre régional pour l'affichage de messages. Actuellement, " +"Python ne gère pas les messages spécifiques aux applications qui sont " +"sensibles aux paramètres régionaux. Les messages affichés par le système " +"d'exploitation, comme ceux renvoyés par :func:`os.strerror` peuvent être " +"affectés par cette catégorie." + +#: ../Doc/library/locale.rst:474 +msgid "" +"Locale category for formatting numbers. The functions :func:`.format`, :" +"func:`atoi`, :func:`atof` and :func:`.str` of the :mod:`locale` module are " +"affected by that category. All other numeric formatting operations are not " +"affected." +msgstr "" +"Catégorie de paramètre régional pour la mise en forme des nombres. Les " +"fonctions :func:`.format`, :func:`atoi`, :func:`atof` et :func:`.str` du " +"module :mod:`locale` sont affectées par cette catégorie. Toutes les autres " +"opérations de mise en forme des nombres ne sont pas affectées." + +#: ../Doc/library/locale.rst:482 +msgid "" +"Combination of all locale settings. If this flag is used when the locale is " +"changed, setting the locale for all categories is attempted. If that fails " +"for any category, no category is changed at all. When the locale is " +"retrieved using this flag, a string indicating the setting for all " +"categories is returned. This string can be later used to restore the " +"settings." +msgstr "" +"Combinaison de tous les paramètres régionaux. Si cette option est utilisée " +"lors du changement de paramètres régionaux, la définition de ces paramètres " +"pour toutes les catégories est tentée. Si cela échoue pour n'importe quelle " +"catégorie, aucune d'entre elles n'est modifiée. Lorsque les paramètres " +"régionaux sont récupérés à l'aide de cette option, une chaîne de caractères " +"indiquant le réglage pour toutes les catégories est renvoyée. Cette chaîne " +"peut alors être utilisée plus tard pour restaurer les paramètres d'origine." + +#: ../Doc/library/locale.rst:491 +msgid "" +"This is a symbolic constant used for different values returned by :func:" +"`localeconv`." +msgstr "" +"Ceci est une constante symbolique utilisée pour différentes valeurs " +"renvoyées par :func:`localeconv`." + +#: ../Doc/library/locale.rst:495 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/locale.rst:508 +msgid "Background, details, hints, tips and caveats" +msgstr "Contexte, détails, conseils, astuces et mises en garde" + +#: ../Doc/library/locale.rst:510 +msgid "" +"The C standard defines the locale as a program-wide property that may be " +"relatively expensive to change. On top of that, some implementation are " +"broken in such a way that frequent locale changes may cause core dumps. " +"This makes the locale somewhat painful to use correctly." +msgstr "" +"La norme C définie les paramètres régionaux comme une propriété à l'échelle " +"d'un programme, qui peut être relativement coûteuse à changer. En plus de " +"cela, certaines implémentations ne fonctionnent pas car des changements " +"fréquents de paramètres régionaux peuvent causer des *core dumps*. Cela " +"rend l'utilisation correcte de ces paramètres quelque peu pénible." + +#: ../Doc/library/locale.rst:515 +msgid "" +"Initially, when a program is started, the locale is the ``C`` locale, no " +"matter what the user's preferred locale is. There is one exception: the :" +"data:`LC_CTYPE` category is changed at startup to set the current locale " +"encoding to the user's preferred locale encoding. The program must " +"explicitly say that it wants the user's preferred locale settings for other " +"categories by calling ``setlocale(LC_ALL, '')``." +msgstr "" +"Initialement, lorsqu'un programme est démarré, les paramètres régionaux " +"``C`` sont utilisés, peu importe les réglages de l'utilisateur. Il y a " +"toutefois une exception : la catégorie :data:`LC_CTYPE` est modifiée au " +"démarrage pour définir l'encodage des paramètres régionaux actuels comme " +"celui défini par l'utilisateur. Le programme doit explicitement dire qu'il " +"veut utiliser les réglages de l'utilisateur pour les autres catégories, en " +"appelant ``setlocale(LC_ALL, '')``." + +#: ../Doc/library/locale.rst:522 +msgid "" +"It is generally a bad idea to call :func:`setlocale` in some library " +"routine, since as a side effect it affects the entire program. Saving and " +"restoring it is almost as bad: it is expensive and affects other threads " +"that happen to run before the settings have been restored." +msgstr "" +"C'est généralement une mauvaise idée d'appeler :func:`setlocale` dans une " +"routine de bibliothèque car cela a pour effet secondaire d'affecter le " +"programme entier. Sauvegarder et restaurer les paramètres est presque aussi " +"mauvais : c'est coûteux et cela affecte d'autres fils d'exécutions qui " +"s'exécutent avant que les paramètres n'aient été restaurés." + +#: ../Doc/library/locale.rst:527 +msgid "" +"If, when coding a module for general use, you need a locale independent " +"version of an operation that is affected by the locale (such as certain " +"formats used with :func:`time.strftime`), you will have to find a way to do " +"it without using the standard library routine. Even better is convincing " +"yourself that using locale settings is okay. Only as a last resort should " +"you document that your module is not compatible with non-\\ ``C`` locale " +"settings." +msgstr "" +"Si, lors du développement d'un module à usage général, vous avez besoin " +"d'une version indépendante des paramètres régionaux pour une opération y " +"étant sensible (comme c'est le cas pour certains formats utilisés avec :func:" +"`time.strftime`), vous devez trouver un moyen de le faire sans utiliser la " +"routine de la bibliothèque standard. Le mieux est encore de se convaincre " +"que l'usage des paramètres régionaux est une bonne chose. Ce n'est qu'en " +"dernier recours que vous devez documenter que votre module n'est pas " +"compatible avec les réglages du paramètre régional ``C``." + +#: ../Doc/library/locale.rst:534 +msgid "" +"The only way to perform numeric operations according to the locale is to use " +"the special functions defined by this module: :func:`atof`, :func:`atoi`, :" +"func:`.format`, :func:`.str`." +msgstr "" +"La seule façon d'effectuer des opérations numériques conformément aux " +"paramètres régionaux est d'utiliser les fonctions spéciales définies par ce " +"module : :func:`atof`, :func:`atoi`, :func:`.format`, :func:`.str`." + +#: ../Doc/library/locale.rst:538 +msgid "" +"There is no way to perform case conversions and character classifications " +"according to the locale. For (Unicode) text strings these are done " +"according to the character value only, while for byte strings, the " +"conversions and classifications are done according to the ASCII value of the " +"byte, and bytes whose high bit is set (i.e., non-ASCII bytes) are never " +"converted or considered part of a character class such as letter or " +"whitespace." +msgstr "" +"Il n'y a aucun moyen d'effectuer des conversions de casse et des " +"classifications de caractères en fonction des paramètres régionaux. Pour " +"les chaînes de caractères (Unicode), celles-ci se font uniquement en " +"fonction de la valeur du caractère, tandis que pour les chaînes d'octets, " +"les conversions et les classifications se font en fonction de la valeur " +"ASCII de l'octet, et les octets dont le bit de poids fort est à 1 (c'est-à-" +"dire les octets non ASCII) ne sont jamais convertis ou considérés comme " +"faisant partie d'une classe de caractères comme une lettre ou une espace." + +#: ../Doc/library/locale.rst:549 +msgid "For extension writers and programs that embed Python" +msgstr "Pour les auteurs d'extensions et les programmes qui intègrent Python" + +#: ../Doc/library/locale.rst:551 +msgid "" +"Extension modules should never call :func:`setlocale`, except to find out " +"what the current locale is. But since the return value can only be used " +"portably to restore it, that is not very useful (except perhaps to find out " +"whether or not the locale is ``C``)." +msgstr "" +"Les modules d'extensions ne devraient jamais appeler :func:`setlocale`, sauf " +"pour connaître le paramètre régional actuel. Mais comme la valeur renvoyée " +"ne peut être utilisée que pour le restaurer, ce n'est pas très utile (sauf " +"peut-être pour savoir si le paramètre régional est défini à ``C`` ou non)." + +#: ../Doc/library/locale.rst:556 +msgid "" +"When Python code uses the :mod:`locale` module to change the locale, this " +"also affects the embedding application. If the embedding application " +"doesn't want this to happen, it should remove the :mod:`_locale` extension " +"module (which does all the work) from the table of built-in modules in the :" +"file:`config.c` file, and make sure that the :mod:`_locale` module is not " +"accessible as a shared library." +msgstr "" +"Lorsque le code Python utilise le module :mod:`locale` pour changer le " +"paramètre régional, cela affecte également l'application intégrée. Si " +"l'application intégrée ne souhaite pas que cela se produise, elle doit " +"supprimer le module d'extension :mod:`_locale` (qui fait tout le travail) de " +"la table des modules natifs se trouvant dans le fichier :file:`config.c`, et " +"s'assurer que le module :mod:`_locale` n'est pas accessible en tant que " +"bibliothèque partagée." + +#: ../Doc/library/locale.rst:567 +msgid "Access to message catalogs" +msgstr "Accéder aux catalogues de messages" + +#: ../Doc/library/locale.rst:575 +msgid "" +"The locale module exposes the C library's gettext interface on systems that " +"provide this interface. It consists of the functions :func:`!gettext`, :" +"func:`!dgettext`, :func:`!dcgettext`, :func:`!textdomain`, :func:`!" +"bindtextdomain`, and :func:`!bind_textdomain_codeset`. These are similar to " +"the same functions in the :mod:`gettext` module, but use the C library's " +"binary format for message catalogs, and the C library's search algorithms " +"for locating message catalogs." +msgstr "" +"Le module *locale* expose l'interface *gettext* de la bibliothèque C sur les " +"systèmes qui fournissent cette interface. Il se compose des fonctions :func:" +"`!gettext`, :func:`!dgettext`, :func:`!dcgettext`, :func:`!textdomain`, :" +"func:`!bindtextdomain` et :func:`!bind_textdomain_codeset`. Elles sont " +"similaires aux fonctions du module :mod:`gettext`, mais utilisent le format " +"binaire de la bibliothèque C pour les catalogues de messages." + +#: ../Doc/library/locale.rst:582 +msgid "" +"Python applications should normally find no need to invoke these functions, " +"and should use :mod:`gettext` instead. A known exception to this rule are " +"applications that link with additional C libraries which internally invoke :" +"c:func:`gettext` or :c:func:`dcgettext`. For these applications, it may be " +"necessary to bind the text domain, so that the libraries can properly locate " +"their message catalogs." +msgstr "" +"Les applications Python ne devraient normalement pas avoir besoin de faire " +"appel à ces fonctions, mais devraient plutôt utiliser :mod:`gettext`. Une " +"exception connue pour cette règle concerne les applications qui sont liées " +"avec des bibliothèques C supplémentaires faisant appel à :c:func:`gettext` " +"ou :c:func:`dcgettext`. Pour ces applications, il peut être nécessaire de " +"lier le domaine du texte, afin que les bibliothèques puissent régionaliser " +"correctement leurs catalogues de messages." diff --git a/library/logging.config.po b/library/logging.config.po new file mode 100644 index 000000000..3e275727e --- /dev/null +++ b/library/logging.config.po @@ -0,0 +1,870 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/logging.config.rst:2 +msgid ":mod:`logging.config` --- Logging configuration" +msgstr "" + +#: ../Doc/library/logging.config.rst:10 +msgid "**Source code:** :source:`Lib/logging/config.py`" +msgstr "" + +#: ../Doc/library/logging.config.rst:14 +msgid "" +"This page contains only reference information. For tutorials, please see" +msgstr "" +"Cette page contient uniquement des informations de référence. Pour des " +"tutoriels, veuillez consulter" + +#: ../Doc/library/logging.config.rst:17 +msgid ":ref:`Basic Tutorial `" +msgstr ":ref:`Tutoriel basique `" + +#: ../Doc/library/logging.config.rst:18 +msgid ":ref:`Advanced Tutorial `" +msgstr ":ref:`Tutoriel avancé `" + +#: ../Doc/library/logging.config.rst:19 +msgid ":ref:`Logging Cookbook `" +msgstr ":ref:`Recettes pour la journalisation `" + +#: ../Doc/library/logging.config.rst:23 +msgid "This section describes the API for configuring the logging module." +msgstr "" + +#: ../Doc/library/logging.config.rst:28 +msgid "Configuration functions" +msgstr "" + +#: ../Doc/library/logging.config.rst:30 +msgid "" +"The following functions configure the logging module. They are located in " +"the :mod:`logging.config` module. Their use is optional --- you can " +"configure the logging module using these functions or by making calls to the " +"main API (defined in :mod:`logging` itself) and defining handlers which are " +"declared either in :mod:`logging` or :mod:`logging.handlers`." +msgstr "" + +#: ../Doc/library/logging.config.rst:38 +msgid "" +"Takes the logging configuration from a dictionary. The contents of this " +"dictionary are described in :ref:`logging-config-dictschema` below." +msgstr "" + +#: ../Doc/library/logging.config.rst:42 +msgid "" +"If an error is encountered during configuration, this function will raise a :" +"exc:`ValueError`, :exc:`TypeError`, :exc:`AttributeError` or :exc:" +"`ImportError` with a suitably descriptive message. The following is a " +"(possibly incomplete) list of conditions which will raise an error:" +msgstr "" + +#: ../Doc/library/logging.config.rst:48 +msgid "" +"A ``level`` which is not a string or which is a string not corresponding to " +"an actual logging level." +msgstr "" + +#: ../Doc/library/logging.config.rst:50 +msgid "A ``propagate`` value which is not a boolean." +msgstr "" + +#: ../Doc/library/logging.config.rst:51 +msgid "An id which does not have a corresponding destination." +msgstr "" + +#: ../Doc/library/logging.config.rst:52 +msgid "A non-existent handler id found during an incremental call." +msgstr "" + +#: ../Doc/library/logging.config.rst:53 +msgid "An invalid logger name." +msgstr "" + +#: ../Doc/library/logging.config.rst:54 +msgid "Inability to resolve to an internal or external object." +msgstr "" + +#: ../Doc/library/logging.config.rst:56 +msgid "" +"Parsing is performed by the :class:`DictConfigurator` class, whose " +"constructor is passed the dictionary used for configuration, and has a :meth:" +"`configure` method. The :mod:`logging.config` module has a callable " +"attribute :attr:`dictConfigClass` which is initially set to :class:" +"`DictConfigurator`. You can replace the value of :attr:`dictConfigClass` " +"with a suitable implementation of your own." +msgstr "" + +#: ../Doc/library/logging.config.rst:64 +msgid "" +":func:`dictConfig` calls :attr:`dictConfigClass` passing the specified " +"dictionary, and then calls the :meth:`configure` method on the returned " +"object to put the configuration into effect::" +msgstr "" + +#: ../Doc/library/logging.config.rst:71 +msgid "" +"For example, a subclass of :class:`DictConfigurator` could call " +"``DictConfigurator.__init__()`` in its own :meth:`__init__()`, then set up " +"custom prefixes which would be usable in the subsequent :meth:`configure` " +"call. :attr:`dictConfigClass` would be bound to this new subclass, and then :" +"func:`dictConfig` could be called exactly as in the default, uncustomized " +"state." +msgstr "" + +#: ../Doc/library/logging.config.rst:82 +msgid "" +"Reads the logging configuration from a :mod:`configparser`\\-format file. " +"The format of the file should be as described in :ref:`logging-config-" +"fileformat`. This function can be called several times from an application, " +"allowing an end user to select from various pre-canned configurations (if " +"the developer provides a mechanism to present the choices and load the " +"chosen configuration)." +msgstr "" + +#: ../Doc/library/logging.config.rst:0 +msgid "Parameters" +msgstr "Paramètres" + +#: ../Doc/library/logging.config.rst:90 +msgid "" +"A filename, or a file-like object, or an instance derived from :class:" +"`~configparser.RawConfigParser`. If a ``RawConfigParser``-derived instance " +"is passed, it is used as is. Otherwise, a :class:`~configparser." +"Configparser` is instantiated, and the configuration read by it from the " +"object passed in ``fname``. If that has a :meth:`readline` method, it is " +"assumed to be a file-like object and read using :meth:`~configparser." +"ConfigParser.read_file`; otherwise, it is assumed to be a filename and " +"passed to :meth:`~configparser.ConfigParser.read`." +msgstr "" + +#: ../Doc/library/logging.config.rst:102 +msgid "" +"Defaults to be passed to the ConfigParser can be specified in this argument." +msgstr "" + +#: ../Doc/library/logging.config.rst:105 +msgid "" +"If specified as ``False``, loggers which exist when this call is made are " +"left enabled. The default is ``True`` because this enables old behaviour in " +"a backward-compatible way. This behaviour is to disable any existing non-" +"root loggers unless they or their ancestors are explicitly named in the " +"logging configuration." +msgstr "" + +#: ../Doc/library/logging.config.rst:114 +msgid "" +"An instance of a subclass of :class:`~configparser.RawConfigParser` is now " +"accepted as a value for ``fname``. This facilitates:" +msgstr "" + +#: ../Doc/library/logging.config.rst:118 +msgid "" +"Use of a configuration file where logging configuration is just part of the " +"overall application configuration." +msgstr "" + +#: ../Doc/library/logging.config.rst:120 +msgid "" +"Use of a configuration read from a file, and then modified by the using " +"application (e.g. based on command-line parameters or other aspects of the " +"runtime environment) before being passed to ``fileConfig``." +msgstr "" + +#: ../Doc/library/logging.config.rst:126 +msgid "" +"Starts up a socket server on the specified port, and listens for new " +"configurations. If no port is specified, the module's default :const:" +"`DEFAULT_LOGGING_CONFIG_PORT` is used. Logging configurations will be sent " +"as a file suitable for processing by :func:`dictConfig` or :func:" +"`fileConfig`. Returns a :class:`~threading.Thread` instance on which you can " +"call :meth:`~threading.Thread.start` to start the server, and which you can :" +"meth:`~threading.Thread.join` when appropriate. To stop the server, call :" +"func:`stopListening`." +msgstr "" + +#: ../Doc/library/logging.config.rst:135 +msgid "" +"The ``verify`` argument, if specified, should be a callable which should " +"verify whether bytes received across the socket are valid and should be " +"processed. This could be done by encrypting and/or signing what is sent " +"across the socket, such that the ``verify`` callable can perform signature " +"verification and/or decryption. The ``verify`` callable is called with a " +"single argument - the bytes received across the socket - and should return " +"the bytes to be processed, or ``None`` to indicate that the bytes should be " +"discarded. The returned bytes could be the same as the passed in bytes (e.g. " +"when only verification is done), or they could be completely different " +"(perhaps if decryption were performed)." +msgstr "" + +#: ../Doc/library/logging.config.rst:146 +msgid "" +"To send a configuration to the socket, read in the configuration file and " +"send it to the socket as a sequence of bytes preceded by a four-byte length " +"string packed in binary using ``struct.pack('>L', n)``." +msgstr "" + +#: ../Doc/library/logging.config.rst:152 +msgid "" +"Because portions of the configuration are passed through :func:`eval`, use " +"of this function may open its users to a security risk. While the function " +"only binds to a socket on ``localhost``, and so does not accept connections " +"from remote machines, there are scenarios where untrusted code could be run " +"under the account of the process which calls :func:`listen`. Specifically, " +"if the process calling :func:`listen` runs on a multi-user machine where " +"users cannot trust each other, then a malicious user could arrange to run " +"essentially arbitrary code in a victim user's process, simply by connecting " +"to the victim's :func:`listen` socket and sending a configuration which runs " +"whatever code the attacker wants to have executed in the victim's process. " +"This is especially easy to do if the default port is used, but not hard even " +"if a different port is used). To avoid the risk of this happening, use the " +"``verify`` argument to :func:`listen` to prevent unrecognised configurations " +"from being applied." +msgstr "" + +#: ../Doc/library/logging.config.rst:168 +msgid "The ``verify`` argument was added." +msgstr "" + +#: ../Doc/library/logging.config.rst:173 +msgid "" +"If you want to send configurations to the listener which don't disable " +"existing loggers, you will need to use a JSON format for the configuration, " +"which will use :func:`dictConfig` for configuration. This method allows you " +"to specify ``disable_existing_loggers`` as ``False`` in the configuration " +"you send." +msgstr "" + +#: ../Doc/library/logging.config.rst:182 +msgid "" +"Stops the listening server which was created with a call to :func:`listen`. " +"This is typically called before calling :meth:`join` on the return value " +"from :func:`listen`." +msgstr "" + +#: ../Doc/library/logging.config.rst:190 +msgid "Configuration dictionary schema" +msgstr "" + +#: ../Doc/library/logging.config.rst:192 +msgid "" +"Describing a logging configuration requires listing the various objects to " +"create and the connections between them; for example, you may create a " +"handler named 'console' and then say that the logger named 'startup' will " +"send its messages to the 'console' handler. These objects aren't limited to " +"those provided by the :mod:`logging` module because you might write your own " +"formatter or handler class. The parameters to these classes may also need to " +"include external objects such as ``sys.stderr``. The syntax for describing " +"these objects and connections is defined in :ref:`logging-config-dict-" +"connections` below." +msgstr "" + +#: ../Doc/library/logging.config.rst:204 +msgid "Dictionary Schema Details" +msgstr "" + +#: ../Doc/library/logging.config.rst:206 +msgid "" +"The dictionary passed to :func:`dictConfig` must contain the following keys:" +msgstr "" + +#: ../Doc/library/logging.config.rst:209 +msgid "" +"*version* - to be set to an integer value representing the schema version. " +"The only valid value at present is 1, but having this key allows the schema " +"to evolve while still preserving backwards compatibility." +msgstr "" + +#: ../Doc/library/logging.config.rst:214 +msgid "" +"All other keys are optional, but if present they will be interpreted as " +"described below. In all cases below where a 'configuring dict' is " +"mentioned, it will be checked for the special ``'()'`` key to see if a " +"custom instantiation is required. If so, the mechanism described in :ref:" +"`logging-config-dict-userdef` below is used to create an instance; " +"otherwise, the context is used to determine what to instantiate." +msgstr "" + +#: ../Doc/library/logging.config.rst:221 +msgid "" +"*formatters* - the corresponding value will be a dict in which each key is a " +"formatter id and each value is a dict describing how to configure the " +"corresponding :class:`~logging.Formatter` instance." +msgstr "" + +#: ../Doc/library/logging.config.rst:225 +msgid "" +"The configuring dict is searched for keys ``format`` and ``datefmt`` (with " +"defaults of ``None``) and these are used to construct a :class:`~logging." +"Formatter` instance." +msgstr "" + +#: ../Doc/library/logging.config.rst:229 +msgid "" +"*filters* - the corresponding value will be a dict in which each key is a " +"filter id and each value is a dict describing how to configure the " +"corresponding Filter instance." +msgstr "" + +#: ../Doc/library/logging.config.rst:233 +msgid "" +"The configuring dict is searched for the key ``name`` (defaulting to the " +"empty string) and this is used to construct a :class:`logging.Filter` " +"instance." +msgstr "" + +#: ../Doc/library/logging.config.rst:237 +msgid "" +"*handlers* - the corresponding value will be a dict in which each key is a " +"handler id and each value is a dict describing how to configure the " +"corresponding Handler instance." +msgstr "" + +#: ../Doc/library/logging.config.rst:241 ../Doc/library/logging.config.rst:283 +msgid "The configuring dict is searched for the following keys:" +msgstr "" + +#: ../Doc/library/logging.config.rst:243 +msgid "" +"``class`` (mandatory). This is the fully qualified name of the handler " +"class." +msgstr "" + +#: ../Doc/library/logging.config.rst:246 +msgid "``level`` (optional). The level of the handler." +msgstr "" + +#: ../Doc/library/logging.config.rst:248 +msgid "``formatter`` (optional). The id of the formatter for this handler." +msgstr "" + +#: ../Doc/library/logging.config.rst:251 +msgid "``filters`` (optional). A list of ids of the filters for this handler." +msgstr "" + +#: ../Doc/library/logging.config.rst:254 +msgid "" +"All *other* keys are passed through as keyword arguments to the handler's " +"constructor. For example, given the snippet:" +msgstr "" + +#: ../Doc/library/logging.config.rst:273 +msgid "" +"the handler with id ``console`` is instantiated as a :class:`logging." +"StreamHandler`, using ``sys.stdout`` as the underlying stream. The handler " +"with id ``file`` is instantiated as a :class:`logging.handlers." +"RotatingFileHandler` with the keyword arguments ``filename='logconfig.log', " +"maxBytes=1024, backupCount=3``." +msgstr "" + +#: ../Doc/library/logging.config.rst:279 +msgid "" +"*loggers* - the corresponding value will be a dict in which each key is a " +"logger name and each value is a dict describing how to configure the " +"corresponding Logger instance." +msgstr "" + +#: ../Doc/library/logging.config.rst:285 +msgid "``level`` (optional). The level of the logger." +msgstr "" + +#: ../Doc/library/logging.config.rst:287 +msgid "``propagate`` (optional). The propagation setting of the logger." +msgstr "" + +#: ../Doc/library/logging.config.rst:289 +msgid "``filters`` (optional). A list of ids of the filters for this logger." +msgstr "" + +#: ../Doc/library/logging.config.rst:292 +msgid "" +"``handlers`` (optional). A list of ids of the handlers for this logger." +msgstr "" + +#: ../Doc/library/logging.config.rst:295 +msgid "" +"The specified loggers will be configured according to the level, " +"propagation, filters and handlers specified." +msgstr "" + +#: ../Doc/library/logging.config.rst:298 +msgid "" +"*root* - this will be the configuration for the root logger. Processing of " +"the configuration will be as for any logger, except that the ``propagate`` " +"setting will not be applicable." +msgstr "" + +#: ../Doc/library/logging.config.rst:302 +msgid "" +"*incremental* - whether the configuration is to be interpreted as " +"incremental to the existing configuration. This value defaults to " +"``False``, which means that the specified configuration replaces the " +"existing configuration with the same semantics as used by the existing :func:" +"`fileConfig` API." +msgstr "" + +#: ../Doc/library/logging.config.rst:308 +msgid "" +"If the specified value is ``True``, the configuration is processed as " +"described in the section on :ref:`logging-config-dict-incremental`." +msgstr "" + +#: ../Doc/library/logging.config.rst:311 +msgid "" +"*disable_existing_loggers* - whether any existing non-root loggers are to be " +"disabled. This setting mirrors the parameter of the same name in :func:" +"`fileConfig`. If absent, this parameter defaults to ``True``. This value is " +"ignored if *incremental* is ``True``." +msgstr "" + +#: ../Doc/library/logging.config.rst:319 +msgid "Incremental Configuration" +msgstr "" + +#: ../Doc/library/logging.config.rst:321 +msgid "" +"It is difficult to provide complete flexibility for incremental " +"configuration. For example, because objects such as filters and formatters " +"are anonymous, once a configuration is set up, it is not possible to refer " +"to such anonymous objects when augmenting a configuration." +msgstr "" + +#: ../Doc/library/logging.config.rst:327 +msgid "" +"Furthermore, there is not a compelling case for arbitrarily altering the " +"object graph of loggers, handlers, filters, formatters at run-time, once a " +"configuration is set up; the verbosity of loggers and handlers can be " +"controlled just by setting levels (and, in the case of loggers, propagation " +"flags). Changing the object graph arbitrarily in a safe way is problematic " +"in a multi-threaded environment; while not impossible, the benefits are not " +"worth the complexity it adds to the implementation." +msgstr "" + +#: ../Doc/library/logging.config.rst:336 +msgid "" +"Thus, when the ``incremental`` key of a configuration dict is present and is " +"``True``, the system will completely ignore any ``formatters`` and " +"``filters`` entries, and process only the ``level`` settings in the " +"``handlers`` entries, and the ``level`` and ``propagate`` settings in the " +"``loggers`` and ``root`` entries." +msgstr "" + +#: ../Doc/library/logging.config.rst:342 +msgid "" +"Using a value in the configuration dict lets configurations to be sent over " +"the wire as pickled dicts to a socket listener. Thus, the logging verbosity " +"of a long-running application can be altered over time with no need to stop " +"and restart the application." +msgstr "" + +#: ../Doc/library/logging.config.rst:350 +msgid "Object connections" +msgstr "" + +#: ../Doc/library/logging.config.rst:352 +msgid "" +"The schema describes a set of logging objects - loggers, handlers, " +"formatters, filters - which are connected to each other in an object graph. " +"Thus, the schema needs to represent connections between the objects. For " +"example, say that, once configured, a particular logger has attached to it a " +"particular handler. For the purposes of this discussion, we can say that " +"the logger represents the source, and the handler the destination, of a " +"connection between the two. Of course in the configured objects this is " +"represented by the logger holding a reference to the handler. In the " +"configuration dict, this is done by giving each destination object an id " +"which identifies it unambiguously, and then using the id in the source " +"object's configuration to indicate that a connection exists between the " +"source and the destination object with that id." +msgstr "" + +#: ../Doc/library/logging.config.rst:366 +msgid "So, for example, consider the following YAML snippet:" +msgstr "" + +#: ../Doc/library/logging.config.rst:387 +msgid "" +"(Note: YAML used here because it's a little more readable than the " +"equivalent Python source form for the dictionary.)" +msgstr "" + +#: ../Doc/library/logging.config.rst:390 +msgid "" +"The ids for loggers are the logger names which would be used " +"programmatically to obtain a reference to those loggers, e.g. ``foo.bar." +"baz``. The ids for Formatters and Filters can be any string value (such as " +"``brief``, ``precise`` above) and they are transient, in that they are only " +"meaningful for processing the configuration dictionary and used to determine " +"connections between objects, and are not persisted anywhere when the " +"configuration call is complete." +msgstr "" + +#: ../Doc/library/logging.config.rst:398 +msgid "" +"The above snippet indicates that logger named ``foo.bar.baz`` should have " +"two handlers attached to it, which are described by the handler ids ``h1`` " +"and ``h2``. The formatter for ``h1`` is that described by id ``brief``, and " +"the formatter for ``h2`` is that described by id ``precise``." +msgstr "" + +#: ../Doc/library/logging.config.rst:408 +msgid "User-defined objects" +msgstr "" + +#: ../Doc/library/logging.config.rst:410 +msgid "" +"The schema supports user-defined objects for handlers, filters and " +"formatters. (Loggers do not need to have different types for different " +"instances, so there is no support in this configuration schema for user-" +"defined logger classes.)" +msgstr "" + +#: ../Doc/library/logging.config.rst:415 +msgid "" +"Objects to be configured are described by dictionaries which detail their " +"configuration. In some places, the logging system will be able to infer " +"from the context how an object is to be instantiated, but when a user-" +"defined object is to be instantiated, the system will not know how to do " +"this. In order to provide complete flexibility for user-defined object " +"instantiation, the user needs to provide a 'factory' - a callable which is " +"called with a configuration dictionary and which returns the instantiated " +"object. This is signalled by an absolute import path to the factory being " +"made available under the special key ``'()'``. Here's a concrete example:" +msgstr "" + +#: ../Doc/library/logging.config.rst:441 +msgid "" +"The above YAML snippet defines three formatters. The first, with id " +"``brief``, is a standard :class:`logging.Formatter` instance with the " +"specified format string. The second, with id ``default``, has a longer " +"format and also defines the time format explicitly, and will result in a :" +"class:`logging.Formatter` initialized with those two format strings. Shown " +"in Python source form, the ``brief`` and ``default`` formatters have " +"configuration sub-dictionaries::" +msgstr "" + +#: ../Doc/library/logging.config.rst:453 +msgid "and::" +msgstr "et ::" + +#: ../Doc/library/logging.config.rst:460 +msgid "" +"respectively, and as these dictionaries do not contain the special key " +"``'()'``, the instantiation is inferred from the context: as a result, " +"standard :class:`logging.Formatter` instances are created. The " +"configuration sub-dictionary for the third formatter, with id ``custom``, " +"is::" +msgstr "" + +#: ../Doc/library/logging.config.rst:473 +msgid "" +"and this contains the special key ``'()'``, which means that user-defined " +"instantiation is wanted. In this case, the specified factory callable will " +"be used. If it is an actual callable it will be used directly - otherwise, " +"if you specify a string (as in the example) the actual callable will be " +"located using normal import mechanisms. The callable will be called with the " +"**remaining** items in the configuration sub-dictionary as keyword " +"arguments. In the above example, the formatter with id ``custom`` will be " +"assumed to be returned by the call::" +msgstr "" + +#: ../Doc/library/logging.config.rst:485 +msgid "" +"The key ``'()'`` has been used as the special key because it is not a valid " +"keyword parameter name, and so will not clash with the names of the keyword " +"arguments used in the call. The ``'()'`` also serves as a mnemonic that the " +"corresponding value is a callable." +msgstr "" + +#: ../Doc/library/logging.config.rst:494 +msgid "Access to external objects" +msgstr "" + +#: ../Doc/library/logging.config.rst:496 +msgid "" +"There are times where a configuration needs to refer to objects external to " +"the configuration, for example ``sys.stderr``. If the configuration dict is " +"constructed using Python code, this is straightforward, but a problem arises " +"when the configuration is provided via a text file (e.g. JSON, YAML). In a " +"text file, there is no standard way to distinguish ``sys.stderr`` from the " +"literal string ``'sys.stderr'``. To facilitate this distinction, the " +"configuration system looks for certain special prefixes in string values and " +"treat them specially. For example, if the literal string ``'ext://sys." +"stderr'`` is provided as a value in the configuration, then the ``ext://`` " +"will be stripped off and the remainder of the value processed using normal " +"import mechanisms." +msgstr "" + +#: ../Doc/library/logging.config.rst:509 +msgid "" +"The handling of such prefixes is done in a way analogous to protocol " +"handling: there is a generic mechanism to look for prefixes which match the " +"regular expression ``^(?P[a-z]+)://(?P.*)$`` whereby, if the " +"``prefix`` is recognised, the ``suffix`` is processed in a prefix-dependent " +"manner and the result of the processing replaces the string value. If the " +"prefix is not recognised, then the string value will be left as-is." +msgstr "" + +#: ../Doc/library/logging.config.rst:521 +msgid "Access to internal objects" +msgstr "" + +#: ../Doc/library/logging.config.rst:523 +msgid "" +"As well as external objects, there is sometimes also a need to refer to " +"objects in the configuration. This will be done implicitly by the " +"configuration system for things that it knows about. For example, the " +"string value ``'DEBUG'`` for a ``level`` in a logger or handler will " +"automatically be converted to the value ``logging.DEBUG``, and the " +"``handlers``, ``filters`` and ``formatter`` entries will take an object id " +"and resolve to the appropriate destination object." +msgstr "" + +#: ../Doc/library/logging.config.rst:531 +msgid "" +"However, a more generic mechanism is needed for user-defined objects which " +"are not known to the :mod:`logging` module. For example, consider :class:" +"`logging.handlers.MemoryHandler`, which takes a ``target`` argument which is " +"another handler to delegate to. Since the system already knows about this " +"class, then in the configuration, the given ``target`` just needs to be the " +"object id of the relevant target handler, and the system will resolve to the " +"handler from the id. If, however, a user defines a ``my.package.MyHandler`` " +"which has an ``alternate`` handler, the configuration system would not know " +"that the ``alternate`` referred to a handler. To cater for this, a generic " +"resolution system allows the user to specify:" +msgstr "" + +#: ../Doc/library/logging.config.rst:553 +msgid "" +"The literal string ``'cfg://handlers.file'`` will be resolved in an " +"analogous way to strings with the ``ext://`` prefix, but looking in the " +"configuration itself rather than the import namespace. The mechanism allows " +"access by dot or by index, in a similar way to that provided by ``str." +"format``. Thus, given the following snippet:" +msgstr "" + +#: ../Doc/library/logging.config.rst:571 +msgid "" +"in the configuration, the string ``'cfg://handlers'`` would resolve to the " +"dict with key ``handlers``, the string ``'cfg://handlers.email`` would " +"resolve to the dict with key ``email`` in the ``handlers`` dict, and so on. " +"The string ``'cfg://handlers.email.toaddrs[1]`` would resolve to ``'dev_team." +"domain.tld'`` and the string ``'cfg://handlers.email.toaddrs[0]'`` would " +"resolve to the value ``'support_team@domain.tld'``. The ``subject`` value " +"could be accessed using either ``'cfg://handlers.email.subject'`` or, " +"equivalently, ``'cfg://handlers.email[subject]'``. The latter form only " +"needs to be used if the key contains spaces or non-alphanumeric characters. " +"If an index value consists only of decimal digits, access will be attempted " +"using the corresponding integer value, falling back to the string value if " +"needed." +msgstr "" + +#: ../Doc/library/logging.config.rst:585 +msgid "" +"Given a string ``cfg://handlers.myhandler.mykey.123``, this will resolve to " +"``config_dict['handlers']['myhandler']['mykey']['123']``. If the string is " +"specified as ``cfg://handlers.myhandler.mykey[123]``, the system will " +"attempt to retrieve the value from ``config_dict['handlers']['myhandler']" +"['mykey'][123]``, and fall back to ``config_dict['handlers']['myhandler']" +"['mykey']['123']`` if that fails." +msgstr "" + +#: ../Doc/library/logging.config.rst:597 +msgid "Import resolution and custom importers" +msgstr "" + +#: ../Doc/library/logging.config.rst:599 +msgid "" +"Import resolution, by default, uses the builtin :func:`__import__` function " +"to do its importing. You may want to replace this with your own importing " +"mechanism: if so, you can replace the :attr:`importer` attribute of the :" +"class:`DictConfigurator` or its superclass, the :class:`BaseConfigurator` " +"class. However, you need to be careful because of the way functions are " +"accessed from classes via descriptors. If you are using a Python callable to " +"do your imports, and you want to define it at class level rather than " +"instance level, you need to wrap it with :func:`staticmethod`. For example::" +msgstr "" + +#: ../Doc/library/logging.config.rst:614 +msgid "" +"You don't need to wrap with :func:`staticmethod` if you're setting the " +"import callable on a configurator *instance*." +msgstr "" + +#: ../Doc/library/logging.config.rst:621 +msgid "Configuration file format" +msgstr "" + +#: ../Doc/library/logging.config.rst:623 +msgid "" +"The configuration file format understood by :func:`fileConfig` is based on :" +"mod:`configparser` functionality. The file must contain sections called " +"``[loggers]``, ``[handlers]`` and ``[formatters]`` which identify by name " +"the entities of each type which are defined in the file. For each such " +"entity, there is a separate section which identifies how that entity is " +"configured. Thus, for a logger named ``log01`` in the ``[loggers]`` " +"section, the relevant configuration details are held in a section " +"``[logger_log01]``. Similarly, a handler called ``hand01`` in the " +"``[handlers]`` section will have its configuration held in a section called " +"``[handler_hand01]``, while a formatter called ``form01`` in the " +"``[formatters]`` section will have its configuration specified in a section " +"called ``[formatter_form01]``. The root logger configuration must be " +"specified in a section called ``[logger_root]``." +msgstr "" + +#: ../Doc/library/logging.config.rst:638 +msgid "" +"The :func:`fileConfig` API is older than the :func:`dictConfig` API and does " +"not provide functionality to cover certain aspects of logging. For example, " +"you cannot configure :class:`~logging.Filter` objects, which provide for " +"filtering of messages beyond simple integer levels, using :func:" +"`fileConfig`. If you need to have instances of :class:`~logging.Filter` in " +"your logging configuration, you will need to use :func:`dictConfig`. Note " +"that future enhancements to configuration functionality will be added to :" +"func:`dictConfig`, so it's worth considering transitioning to this newer API " +"when it's convenient to do so." +msgstr "" + +#: ../Doc/library/logging.config.rst:648 +msgid "Examples of these sections in the file are given below." +msgstr "" + +#: ../Doc/library/logging.config.rst:661 +msgid "" +"The root logger must specify a level and a list of handlers. An example of a " +"root logger section is given below." +msgstr "" + +#: ../Doc/library/logging.config.rst:670 +msgid "" +"The ``level`` entry can be one of ``DEBUG, INFO, WARNING, ERROR, CRITICAL`` " +"or ``NOTSET``. For the root logger only, ``NOTSET`` means that all messages " +"will be logged. Level values are :func:`eval`\\ uated in the context of the " +"``logging`` package's namespace." +msgstr "" + +#: ../Doc/library/logging.config.rst:675 +msgid "" +"The ``handlers`` entry is a comma-separated list of handler names, which " +"must appear in the ``[handlers]`` section. These names must appear in the " +"``[handlers]`` section and have corresponding sections in the configuration " +"file." +msgstr "" + +#: ../Doc/library/logging.config.rst:680 +msgid "" +"For loggers other than the root logger, some additional information is " +"required. This is illustrated by the following example." +msgstr "" + +#: ../Doc/library/logging.config.rst:691 +msgid "" +"The ``level`` and ``handlers`` entries are interpreted as for the root " +"logger, except that if a non-root logger's level is specified as ``NOTSET``, " +"the system consults loggers higher up the hierarchy to determine the " +"effective level of the logger. The ``propagate`` entry is set to 1 to " +"indicate that messages must propagate to handlers higher up the logger " +"hierarchy from this logger, or 0 to indicate that messages are **not** " +"propagated to handlers up the hierarchy. The ``qualname`` entry is the " +"hierarchical channel name of the logger, that is to say the name used by the " +"application to get the logger." +msgstr "" + +#: ../Doc/library/logging.config.rst:700 +msgid "" +"Sections which specify handler configuration are exemplified by the " +"following." +msgstr "" + +#: ../Doc/library/logging.config.rst:710 +msgid "" +"The ``class`` entry indicates the handler's class (as determined by :func:" +"`eval` in the ``logging`` package's namespace). The ``level`` is interpreted " +"as for loggers, and ``NOTSET`` is taken to mean 'log everything'." +msgstr "" + +#: ../Doc/library/logging.config.rst:714 +msgid "" +"The ``formatter`` entry indicates the key name of the formatter for this " +"handler. If blank, a default formatter (``logging._defaultFormatter``) is " +"used. If a name is specified, it must appear in the ``[formatters]`` section " +"and have a corresponding section in the configuration file." +msgstr "" + +#: ../Doc/library/logging.config.rst:719 +msgid "" +"The ``args`` entry, when :func:`eval`\\ uated in the context of the " +"``logging`` package's namespace, is the list of arguments to the constructor " +"for the handler class. Refer to the constructors for the relevant handlers, " +"or to the examples below, to see how typical entries are constructed. If not " +"provided, it defaults to ``()``." +msgstr "" + +#: ../Doc/library/logging.config.rst:725 +msgid "" +"The optional ``kwargs`` entry, when :func:`eval`\\ uated in the context of " +"the ``logging`` package's namespace, is the keyword argument dict to the " +"constructor for the handler class. If not provided, it defaults to ``{}``." +msgstr "" + +#: ../Doc/library/logging.config.rst:782 +msgid "" +"Sections which specify formatter configuration are typified by the following." +msgstr "" + +#: ../Doc/library/logging.config.rst:791 +msgid "" +"The ``format`` entry is the overall format string, and the ``datefmt`` entry " +"is the :func:`strftime`\\ -compatible date/time format string. If empty, " +"the package substitutes something which is almost equivalent to specifying " +"the date format string ``'%Y-%m-%d %H:%M:%S'``. This format also specifies " +"milliseconds, which are appended to the result of using the above format " +"string, with a comma separator. An example time in this format is " +"``2003-01-23 00:29:50,411``." +msgstr "" + +#: ../Doc/library/logging.config.rst:798 +msgid "" +"The ``class`` entry is optional. It indicates the name of the formatter's " +"class (as a dotted module and class name.) This option is useful for " +"instantiating a :class:`~logging.Formatter` subclass. Subclasses of :class:" +"`~logging.Formatter` can present exception tracebacks in an expanded or " +"condensed format." +msgstr "" + +#: ../Doc/library/logging.config.rst:806 +msgid "" +"Due to the use of :func:`eval` as described above, there are potential " +"security risks which result from using the :func:`listen` to send and " +"receive configurations via sockets. The risks are limited to where multiple " +"users with no mutual trust run code on the same machine; see the :func:" +"`listen` documentation for more information." +msgstr "" + +#: ../Doc/library/logging.config.rst:815 +msgid "Module :mod:`logging`" +msgstr "Module :mod:`logging`" + +#: ../Doc/library/logging.config.rst:815 +msgid "API reference for the logging module." +msgstr "Référence d'API pour le module de journalisation." + +#: ../Doc/library/logging.config.rst:817 +msgid "Module :mod:`logging.handlers`" +msgstr "Module :mod:`logging.handlers`" + +#: ../Doc/library/logging.config.rst:818 +msgid "Useful handlers included with the logging module." +msgstr "Gestionnaires utiles inclus avec le module de journalisation." diff --git a/library/logging.handlers.po b/library/logging.handlers.po new file mode 100644 index 000000000..4da950d1c --- /dev/null +++ b/library/logging.handlers.po @@ -0,0 +1,1633 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/logging.handlers.rst:2 +msgid ":mod:`logging.handlers` --- Logging handlers" +msgstr ":mod:`logging.handlers` — Gestionnaires de journalisation" + +#: ../Doc/library/logging.handlers.rst:10 +msgid "**Source code:** :source:`Lib/logging/handlers.py`" +msgstr "**Code source :** :source:`Lib/logging/handlers.py`" + +#: ../Doc/library/logging.handlers.rst:14 +msgid "" +"This page contains only reference information. For tutorials, please see" +msgstr "" +"Cette page contient uniquement des informations de référence. Pour des " +"tutoriels, veuillez consulter" + +#: ../Doc/library/logging.handlers.rst:17 +msgid ":ref:`Basic Tutorial `" +msgstr ":ref:`Tutoriel basique `" + +#: ../Doc/library/logging.handlers.rst:18 +msgid ":ref:`Advanced Tutorial `" +msgstr ":ref:`Tutoriel avancé `" + +#: ../Doc/library/logging.handlers.rst:19 +msgid ":ref:`Logging Cookbook `" +msgstr ":ref:`Recettes pour la journalisation `" + +#: ../Doc/library/logging.handlers.rst:25 +msgid "" +"The following useful handlers are provided in the package. Note that three " +"of the handlers (:class:`StreamHandler`, :class:`FileHandler` and :class:" +"`NullHandler`) are actually defined in the :mod:`logging` module itself, but " +"have been documented here along with the other handlers." +msgstr "" +"Les gestionnaires suivants, très utiles, sont fournis dans le paquet. Notez " +"que trois des gestionnaires (:class:`StreamHandler`, :class:`FileHandler` " +"et :class:`NullHandler`) sont en réalité définis dans le module :mod:" +"`logging` lui-même, mais qu’ils sont documentés ici avec les autres " +"gestionnaires." + +#: ../Doc/library/logging.handlers.rst:33 +msgid "StreamHandler" +msgstr "Gestionnaire à flux — *StreamHandler*" + +#: ../Doc/library/logging.handlers.rst:35 +msgid "" +"The :class:`StreamHandler` class, located in the core :mod:`logging` " +"package, sends logging output to streams such as *sys.stdout*, *sys.stderr* " +"or any file-like object (or, more precisely, any object which supports :meth:" +"`write` and :meth:`flush` methods)." +msgstr "" +"La classe :class:`StreamHandler`, du paquet :mod:`logging`, envoie les " +"sorties de journalisation dans des flux tels que *sys.stdout*, *sys.stderr* " +"ou n’importe quel objet fichier-compatible (ou, plus précisément, tout objet " +"qui gère les méthodes :meth:`write` et :meth:`flush`)." + +#: ../Doc/library/logging.handlers.rst:43 +msgid "" +"Returns a new instance of the :class:`StreamHandler` class. If *stream* is " +"specified, the instance will use it for logging output; otherwise, *sys." +"stderr* will be used." +msgstr "" +"Renvoie une nouvelle instance de la classe :class:`StreamHandler`. Si " +"*stream* est spécifié, l’instance l’utilise pour les sorties de " +"journalisation ; autrement elle utilise *sys.stderr*." + +#: ../Doc/library/logging.handlers.rst:50 +msgid "" +"If a formatter is specified, it is used to format the record. The record is " +"then written to the stream with a terminator. If exception information is " +"present, it is formatted using :func:`traceback.print_exception` and " +"appended to the stream." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:58 +msgid "" +"Flushes the stream by calling its :meth:`flush` method. Note that the :meth:" +"`close` method is inherited from :class:`~logging.Handler` and so does no " +"output, so an explicit :meth:`flush` call may be needed at times." +msgstr "" +"Purge le flux en appelant sa méthode :meth:`flush`. Notez que la méthode :" +"meth:`close` est héritée de :class:`~logging.Handler` donc elle n'écrit " +"rien. Par conséquent, un appel explicite à :meth:`flush` peut parfois " +"s'avérer nécessaire." + +#: ../Doc/library/logging.handlers.rst:64 +msgid "" +"Sets the instance's stream to the specified value, if it is different. The " +"old stream is flushed before the new stream is set." +msgstr "" +"Définit le flux de l’instance à la valeur spécifiée, si elle est différente. " +"L’ancien flux est purgé avant que le nouveau flux ne soit établi." + +#: ../Doc/library/logging.handlers.rst:0 +msgid "Parameters" +msgstr "Paramètres" + +#: ../Doc/library/logging.handlers.rst:67 +msgid "The stream that the handler should use." +msgstr "Le flux que le gestionnaire doit utiliser." + +#: ../Doc/library/logging.handlers.rst:0 +msgid "Returns" +msgstr "Renvoie" + +#: ../Doc/library/logging.handlers.rst:69 +msgid "the old stream, if the stream was changed, or *None* if it wasn't." +msgstr "l’ancien flux, si le flux a été changé, ou *None* s’il ne l’a pas été." + +#: ../Doc/library/logging.handlers.rst:74 +msgid "" +"The ``StreamHandler`` class now has a ``terminator`` attribute, default " +"value ``'\\n'``, which is used as the terminator when writing a formatted " +"record to a stream. If you don't want this newline termination, you can set " +"the handler instance's ``terminator`` attribute to the empty string. In " +"earlier versions, the terminator was hardcoded as ``'\\n'``." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:85 +msgid "FileHandler" +msgstr "Gestionnaire à fichier — *FileHandler*" + +#: ../Doc/library/logging.handlers.rst:87 +msgid "" +"The :class:`FileHandler` class, located in the core :mod:`logging` package, " +"sends logging output to a disk file. It inherits the output functionality " +"from :class:`StreamHandler`." +msgstr "" +"La classe :class:`FileHandler`, du paquet :mod:`logging`, envoie les sorties " +"de journalisation dans un fichier. Elle hérite des fonctionnalités de sortie " +"de :class:`StreamHandler`." + +#: ../Doc/library/logging.handlers.rst:94 +msgid "" +"Returns a new instance of the :class:`FileHandler` class. The specified file " +"is opened and used as the stream for logging. If *mode* is not specified, :" +"const:`'a'` is used. If *encoding* is not ``None``, it is used to open the " +"file with that encoding. If *delay* is true, then file opening is deferred " +"until the first call to :meth:`emit`. By default, the file grows " +"indefinitely." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:100 +#: ../Doc/library/logging.handlers.rst:179 +#: ../Doc/library/logging.handlers.rst:310 +#: ../Doc/library/logging.handlers.rst:410 +msgid "" +"As well as string values, :class:`~pathlib.Path` objects are also accepted " +"for the *filename* argument." +msgstr "" +"L'argument *filename* accepte les objets :class:`~pathlib.Path` aussi bien " +"que les chaînes de caractères." + +#: ../Doc/library/logging.handlers.rst:106 +msgid "Closes the file." +msgstr "Ferme le fichier." + +#: ../Doc/library/logging.handlers.rst:111 +msgid "Outputs the record to the file." +msgstr "Écrit l’enregistrement dans le fichier." + +#: ../Doc/library/logging.handlers.rst:117 +msgid "NullHandler" +msgstr "Gestionnaire à puits sans fond — *NullHandler*" + +#: ../Doc/library/logging.handlers.rst:121 +msgid "" +"The :class:`NullHandler` class, located in the core :mod:`logging` package, " +"does not do any formatting or output. It is essentially a 'no-op' handler " +"for use by library developers." +msgstr "" +"La classe :class:`NullHandler`, située dans le paquet principal :mod:" +"`logging`, ne produit aucun formatage ni sortie. C’est essentiellement un " +"gestionnaire « fantôme » destiné aux développeurs de bibliothèques." + +#: ../Doc/library/logging.handlers.rst:127 +msgid "Returns a new instance of the :class:`NullHandler` class." +msgstr "Renvoie une nouvelle instance de la classe :class:`NullHandler`." + +#: ../Doc/library/logging.handlers.rst:131 +#: ../Doc/library/logging.handlers.rst:135 +msgid "This method does nothing." +msgstr "Cette méthode ne fait rien." + +#: ../Doc/library/logging.handlers.rst:139 +msgid "" +"This method returns ``None`` for the lock, since there is no underlying I/O " +"to which access needs to be serialized." +msgstr "" +"Cette méthode renvoie ``None`` pour le verrou, étant donné qu’il n’y a aucun " +"flux d'entrée-sortie sous-jacent dont l’accès doit être sérialisé." + +#: ../Doc/library/logging.handlers.rst:143 +msgid "" +"See :ref:`library-config` for more information on how to use :class:" +"`NullHandler`." +msgstr "" +"Voir :ref:`library-config` pour plus d’information sur l'utilisation de :" +"class:`NullHandler`." + +#: ../Doc/library/logging.handlers.rst:149 +msgid "WatchedFileHandler" +msgstr "Gestionnaire à fichier avec surveillance — *WatchedFileHandler*" + +#: ../Doc/library/logging.handlers.rst:153 +msgid "" +"The :class:`WatchedFileHandler` class, located in the :mod:`logging." +"handlers` module, is a :class:`FileHandler` which watches the file it is " +"logging to. If the file changes, it is closed and reopened using the file " +"name." +msgstr "" +"La classe :class:`WatchedFileHandler`, située dans le module :mod:`logging." +"handlers`, est un :class:`FileHandler` qui surveille le fichier dans lequel " +"il journalise. Si le fichier change, il est fermé et rouvert en utilisant le " +"nom du fichier." + +#: ../Doc/library/logging.handlers.rst:157 +msgid "" +"A file change can happen because of usage of programs such as *newsyslog* " +"and *logrotate* which perform log file rotation. This handler, intended for " +"use under Unix/Linux, watches the file to see if it has changed since the " +"last emit. (A file is deemed to have changed if its device or inode have " +"changed.) If the file has changed, the old file stream is closed, and the " +"file opened to get a new stream." +msgstr "" +"Un changement du fichier peut arriver à cause de l’utilisation de programmes " +"tels que *newsyslog* ou *logrotate* qui assurent le roulement des fichiers " +"de journalisation. Ce gestionnaire, destiné à une utilisation sous Unix/" +"Linux, surveille le fichier pour voir s’il a changé depuis la dernière " +"écriture (un fichier est réputé avoir changé si son nœud d’index ou le " +"périphérique auquel il est rattaché a changé). Si le fichier a changé, " +"l’ancien flux vers ce fichier est fermé, et le fichier est ouvert pour " +"établir un nouveau flux." + +#: ../Doc/library/logging.handlers.rst:164 +msgid "" +"This handler is not appropriate for use under Windows, because under Windows " +"open log files cannot be moved or renamed - logging opens the files with " +"exclusive locks - and so there is no need for such a handler. Furthermore, " +"*ST_INO* is not supported under Windows; :func:`~os.stat` always returns " +"zero for this value." +msgstr "" +"Ce gestionnaire n’est pas approprié pour une utilisation sous *Windows*, car " +"sous *Windows* les fichiers de journalisation ouverts ne peuvent être ni " +"déplacés, ni renommés — la journalisation ouvre les fichiers avec des " +"verrous exclusifs — de telle sorte qu’il n’y a pas besoin d’un tel " +"gestionnaire. En outre, *ST_INO* n’est pas géré par *Windows* ; :func:`~os." +"stat` renvoie toujours zéro pour cette valeur." + +#: ../Doc/library/logging.handlers.rst:173 +msgid "" +"Returns a new instance of the :class:`WatchedFileHandler` class. The " +"specified file is opened and used as the stream for logging. If *mode* is " +"not specified, :const:`'a'` is used. If *encoding* is not ``None``, it is " +"used to open the file with that encoding. If *delay* is true, then file " +"opening is deferred until the first call to :meth:`emit`. By default, the " +"file grows indefinitely." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:185 +msgid "" +"Checks to see if the file has changed. If it has, the existing stream is " +"flushed and closed and the file opened again, typically as a precursor to " +"outputting the record to the file." +msgstr "" +"Vérifie si le fichier a changé. Si c’est le cas, le flux existant est purgé " +"et fermé et le fichier est rouvert, généralement avant d'effectuer " +"l’écriture de l'enregistrement dans le fichier." + +#: ../Doc/library/logging.handlers.rst:194 +msgid "" +"Outputs the record to the file, but first calls :meth:`reopenIfNeeded` to " +"reopen the file if it has changed." +msgstr "" +"Écrit l’enregistrement dans le fichier, mais appelle d’abord :meth:" +"`reopenIfNeeded` pour rouvrir le fichier s’il a changé." + +#: ../Doc/library/logging.handlers.rst:200 +msgid "BaseRotatingHandler" +msgstr "Base des gestionnaires à roulement *BaseRotatingHandler*" + +#: ../Doc/library/logging.handlers.rst:202 +msgid "" +"The :class:`BaseRotatingHandler` class, located in the :mod:`logging." +"handlers` module, is the base class for the rotating file handlers, :class:" +"`RotatingFileHandler` and :class:`TimedRotatingFileHandler`. You should not " +"need to instantiate this class, but it has attributes and methods you may " +"need to override." +msgstr "" +"La classe :class:`BaseRotatingHandler`, située dans le module :mod:`logging." +"handlers`, est la classe de base pour les gestionnaires à roulement, :class:" +"`RotatingFileHandler` et :class:`TimedRotatingFileHandler`. Vous ne devez " +"pas initialiser cette classe, mais elle a des attributs et des méthodes que " +"vous devrez peut-être surcharger." + +#: ../Doc/library/logging.handlers.rst:210 +msgid "The parameters are as for :class:`FileHandler`. The attributes are:" +msgstr "" +"Les paramètres sont les mêmes que pour :class:`FileHandler`. Les attributs " +"sont :" + +#: ../Doc/library/logging.handlers.rst:214 +msgid "" +"If this attribute is set to a callable, the :meth:`rotation_filename` method " +"delegates to this callable. The parameters passed to the callable are those " +"passed to :meth:`rotation_filename`." +msgstr "" +"Si cet attribut est défini en tant qu’appelable, la méthode :meth:" +"`rotation_filename` se rapporte à cet appelable. Les paramètres passés à " +"l’appelable sont ceux passés à :meth:`rotation_filename`." + +#: ../Doc/library/logging.handlers.rst:218 +msgid "" +"The namer function is called quite a few times during rollover, so it should " +"be as simple and as fast as possible. It should also return the same output " +"every time for a given input, otherwise the rollover behaviour may not work " +"as expected." +msgstr "" +"La fonction *namer* est appelée pas mal de fois durant le roulement, de " +"telle sorte qu’elle doit être aussi simple et rapide que possible. Elle doit " +"aussi renvoyer toujours la même sortie pour une entrée donnée, autrement le " +"comportement du roulement pourrait être différent de celui attendu." + +#: ../Doc/library/logging.handlers.rst:228 +msgid "" +"If this attribute is set to a callable, the :meth:`rotate` method delegates " +"to this callable. The parameters passed to the callable are those passed " +"to :meth:`rotate`." +msgstr "" +"Si cet attribut est défini en tant qu’appelable, cet appelable se substitue " +"à la méthode :meth:`rotate`. Les paramètres passés à l’appelable sont ceux " +"passés à :meth:`rotate`." + +#: ../Doc/library/logging.handlers.rst:236 +msgid "Modify the filename of a log file when rotating." +msgstr "" +"Modifie le nom du fichier d’un fichier de journalisation lors du roulement." + +#: ../Doc/library/logging.handlers.rst:238 +msgid "This is provided so that a custom filename can be provided." +msgstr "Cette méthode sert à pouvoir produire un nom de fichier personnalisé." + +#: ../Doc/library/logging.handlers.rst:240 +msgid "" +"The default implementation calls the 'namer' attribute of the handler, if " +"it's callable, passing the default name to it. If the attribute isn't " +"callable (the default is ``None``), the name is returned unchanged." +msgstr "" +"L’implémentation par défaut appelle l’attribut *namer* du gestionnaire, si " +"c’est un appelable, lui passant le nom par défaut. Si l’attribut n’est pas " +"un appelable (le défaut est ``None``), le nom est renvoyé tel quel." + +#: ../Doc/library/logging.handlers.rst:244 +msgid "The default name for the log file." +msgstr "Le nom par défaut du fichier de journalisation." + +#: ../Doc/library/logging.handlers.rst:251 +msgid "When rotating, rotate the current log." +msgstr "Lors du roulement, effectue le roulement du journal courant." + +#: ../Doc/library/logging.handlers.rst:253 +msgid "" +"The default implementation calls the 'rotator' attribute of the handler, if " +"it's callable, passing the source and dest arguments to it. If the attribute " +"isn't callable (the default is ``None``), the source is simply renamed to " +"the destination." +msgstr "" +"L’implémentation par défaut appelle l’attribut *rotator* du gestionnaire, si " +"c’est un appelable, lui passant les arguments *source* et *dest*. Si " +"l’attribut n’est pas un appelable (le défaut est ``None``), le nom de la " +"source est simplement renommé avec la destination." + +#: ../Doc/library/logging.handlers.rst:258 +msgid "" +"The source filename. This is normally the base filename, e.g. 'test.log'." +msgstr "" +"Le nom du fichier source. Il s’agit normalement du nom du fichier, par " +"exemple ``\"test.log\"``." + +#: ../Doc/library/logging.handlers.rst:260 +msgid "" +"The destination filename. This is normally what the source is rotated to, e." +"g. 'test.log.1'." +msgstr "" +"Le nom du fichier de destination. Il s’agit normalement du nom donné à la " +"source après le roulement, par exemple ``\"test.log.1\"``." + +#: ../Doc/library/logging.handlers.rst:265 +msgid "" +"The reason the attributes exist is to save you having to subclass - you can " +"use the same callables for instances of :class:`RotatingFileHandler` and :" +"class:`TimedRotatingFileHandler`. If either the namer or rotator callable " +"raises an exception, this will be handled in the same way as any other " +"exception during an :meth:`emit` call, i.e. via the :meth:`handleError` " +"method of the handler." +msgstr "" +"La raison d’être de ces attributs est de vous épargner la création d’une " +"sous-classe — vous pouvez utiliser les mêmes appels pour des instances de :" +"class:`RotatingFileHandler` et :class:`TimedRotatingFileHandler`. Si le " +"*namer* ou le *rotator* appelable lève une exception, ce sera géré de la " +"même manière que n’importe quelle exception durant un appel :meth:`emit`, " +"c'est-à-dire par la méthode :meth:`handleError` du gestionnaire." + +#: ../Doc/library/logging.handlers.rst:272 +msgid "" +"If you need to make more significant changes to rotation processing, you can " +"override the methods." +msgstr "" +"Si vous avez besoin de faire d’importantes modifications au processus de " +"roulement, surchargez les méthodes." + +#: ../Doc/library/logging.handlers.rst:275 +msgid "For an example, see :ref:`cookbook-rotator-namer`." +msgstr "Pour un exemple, voir :ref:`cookbook-rotator-namer`." + +#: ../Doc/library/logging.handlers.rst:281 +msgid "RotatingFileHandler" +msgstr "Gestionnaire à roulement de fichiers — *RotatingFileHandler*" + +#: ../Doc/library/logging.handlers.rst:283 +msgid "" +"The :class:`RotatingFileHandler` class, located in the :mod:`logging." +"handlers` module, supports rotation of disk log files." +msgstr "" +"La classe :class:`RotatingFileHandler`, située dans le module :mod:`logging." +"handlers`, gère le roulement des fichiers de journalisation sur disque." + +#: ../Doc/library/logging.handlers.rst:289 +msgid "" +"Returns a new instance of the :class:`RotatingFileHandler` class. The " +"specified file is opened and used as the stream for logging. If *mode* is " +"not specified, ``'a'`` is used. If *encoding* is not ``None``, it is used " +"to open the file with that encoding. If *delay* is true, then file opening " +"is deferred until the first call to :meth:`emit`. By default, the file " +"grows indefinitely." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:295 +msgid "" +"You can use the *maxBytes* and *backupCount* values to allow the file to :" +"dfn:`rollover` at a predetermined size. When the size is about to be " +"exceeded, the file is closed and a new file is silently opened for output. " +"Rollover occurs whenever the current log file is nearly *maxBytes* in " +"length; but if either of *maxBytes* or *backupCount* is zero, rollover never " +"occurs, so you generally want to set *backupCount* to at least 1, and have a " +"non-zero *maxBytes*. When *backupCount* is non-zero, the system will save " +"old log files by appending the extensions '.1', '.2' etc., to the filename. " +"For example, with a *backupCount* of 5 and a base file name of :file:`app." +"log`, you would get :file:`app.log`, :file:`app.log.1`, :file:`app.log.2`, " +"up to :file:`app.log.5`. The file being written to is always :file:`app." +"log`. When this file is filled, it is closed and renamed to :file:`app." +"log.1`, and if files :file:`app.log.1`, :file:`app.log.2`, etc. exist, then " +"they are renamed to :file:`app.log.2`, :file:`app.log.3` etc. respectively." +msgstr "" +"Utilisez les valeurs *maxBytes* et *backupCount* pour autoriser le roulement " +"du fichier (:dfn:`rollover`) à une taille prédéterminée. Quand la taille " +"limite est sur le point d’être dépassée, le fichier est fermé et un nouveau " +"fichier est discrètement ouvert en tant que sortie. Un roulement se produit " +"dès que le fichier de journalisation actuel atteint presque une taille de " +"*maxBytes* ; si *maxBytes* ou *backupCount* est à 0, le roulement ne se " +"produit jamais, donc en temps normal il convient de définir *backupCount* à " +"au moins 1, et avoir une valeur de *maxBytes* non nulle. Quand *backupCount* " +"est non nul, le système sauvegarde les anciens fichiers de journalisation en " +"leur ajoutant au nom du fichier, les suffixes ``\".1\"``, ``\".2\"`` et " +"ainsi de suite. Par exemple, avec un *backupCount* de 5 et :file:`app.log` " +"comme radical du fichier, vous obtiendrez :file:`app.log`, :file:`app." +"log.1`, :file:`app.log.2`, jusqu’à :file:`app.log.5`. Le fichier dans lequel " +"on écrit est toujours :file:`app.log`. Quand ce fichier est rempli, il est " +"fermé et renommé en :file:`app.log.1`, et si les fichiers :file:`app." +"log.1`, :file:`app.log.2`, etc. existent, alors ils sont renommés " +"respectivement en :file:`app.log.2`, :file:`app.log.3` etc." + +#: ../Doc/library/logging.handlers.rst:316 +#: ../Doc/library/logging.handlers.rst:416 +msgid "Does a rollover, as described above." +msgstr "Effectue un roulement, comme décrit au-dessus." + +#: ../Doc/library/logging.handlers.rst:321 +msgid "" +"Outputs the record to the file, catering for rollover as described " +"previously." +msgstr "" +"Écrit l'enregistrement dans le fichier, effectuant un roulement au besoin " +"comme décrit précédemment." + +#: ../Doc/library/logging.handlers.rst:327 +msgid "TimedRotatingFileHandler" +msgstr "" +"Gestionnaire à roulement de fichiers périodique — *TimedRotatingFileHandler*" + +#: ../Doc/library/logging.handlers.rst:329 +msgid "" +"The :class:`TimedRotatingFileHandler` class, located in the :mod:`logging." +"handlers` module, supports rotation of disk log files at certain timed " +"intervals." +msgstr "" +"La classe :class:`TimedRotatingFileHandler`, située dans le module :mod:" +"`logging.handlers`, gère le roulement des fichiers de journalisation sur le " +"disque à un intervalle de temps spécifié." + +#: ../Doc/library/logging.handlers.rst:336 +msgid "" +"Returns a new instance of the :class:`TimedRotatingFileHandler` class. The " +"specified file is opened and used as the stream for logging. On rotating it " +"also sets the filename suffix. Rotating happens based on the product of " +"*when* and *interval*." +msgstr "" +"Renvoie une nouvelle instance de la classe :class:" +"`TimedRotatingFileHandler`. Le fichier spécifié est ouvert et utilisé en " +"tant que flux de sortie pour la journalisation. Au moment du roulement, il " +"met également à jour le suffixe du nom du fichier. Le roulement se produit " +"sur la base combinée de *when* et *interval*." + +#: ../Doc/library/logging.handlers.rst:341 +msgid "" +"You can use the *when* to specify the type of *interval*. The list of " +"possible values is below. Note that they are not case sensitive." +msgstr "" +"Utilisez le *when* pour spécifier le type de l’*interval*. La liste des " +"valeurs possibles est ci-dessous. Notez qu’elles sont sensibles à la casse." + +#: ../Doc/library/logging.handlers.rst:345 +msgid "Value" +msgstr "Valeur" + +#: ../Doc/library/logging.handlers.rst:345 +msgid "Type of interval" +msgstr "Type d’intervalle" + +#: ../Doc/library/logging.handlers.rst:345 +msgid "If/how *atTime* is used" +msgstr "Si/comment *atTime* est utilisé" + +#: ../Doc/library/logging.handlers.rst:347 +msgid "``'S'``" +msgstr "``'S'``" + +#: ../Doc/library/logging.handlers.rst:347 +msgid "Seconds" +msgstr "Secondes" + +#: ../Doc/library/logging.handlers.rst:347 +#: ../Doc/library/logging.handlers.rst:349 +#: ../Doc/library/logging.handlers.rst:351 +#: ../Doc/library/logging.handlers.rst:353 +msgid "Ignored" +msgstr "Ignoré" + +#: ../Doc/library/logging.handlers.rst:349 +msgid "``'M'``" +msgstr "``'M'``" + +#: ../Doc/library/logging.handlers.rst:349 +msgid "Minutes" +msgstr "Minutes" + +#: ../Doc/library/logging.handlers.rst:351 +msgid "``'H'``" +msgstr "``'H'``" + +#: ../Doc/library/logging.handlers.rst:351 +msgid "Hours" +msgstr "Heures" + +#: ../Doc/library/logging.handlers.rst:353 +msgid "``'D'``" +msgstr "``'D'``" + +#: ../Doc/library/logging.handlers.rst:353 +msgid "Days" +msgstr "Jours" + +#: ../Doc/library/logging.handlers.rst:355 +msgid "``'W0'-'W6'``" +msgstr "``'W0'-'W6'``" + +#: ../Doc/library/logging.handlers.rst:355 +msgid "Weekday (0=Monday)" +msgstr "Jour de la semaine (0=lundi)" + +#: ../Doc/library/logging.handlers.rst:355 +#: ../Doc/library/logging.handlers.rst:358 +msgid "Used to compute initial rollover time" +msgstr "Utilisé pour calculer le moment du roulement" + +#: ../Doc/library/logging.handlers.rst:358 +msgid "``'midnight'``" +msgstr "``'midnight'``" + +#: ../Doc/library/logging.handlers.rst:358 +msgid "Roll over at midnight, if *atTime* not specified, else at time *atTime*" +msgstr "" +"Roulement du fichier à minuit, si *atTime* n’est pas spécifié, sinon à " +"l’heure *atTime*" + +#: ../Doc/library/logging.handlers.rst:363 +msgid "" +"When using weekday-based rotation, specify 'W0' for Monday, 'W1' for " +"Tuesday, and so on up to 'W6' for Sunday. In this case, the value passed for " +"*interval* isn't used." +msgstr "" +"Lors de l’utilisation d’un roulement basé sur les jours de la semaine, " +"définir *W0* pour lundi, *W1* pour mardi, et ainsi de suite jusqu’à *W6* " +"pour dimanche. Dans ce cas, la valeur indiquée pour *interval* n’est pas " +"utilisée." + +#: ../Doc/library/logging.handlers.rst:367 +msgid "" +"The system will save old log files by appending extensions to the filename. " +"The extensions are date-and-time based, using the strftime format ``%Y-%m-%d_" +"%H-%M-%S`` or a leading portion thereof, depending on the rollover interval." +msgstr "" +"Le système sauvegarde les anciens fichiers de journalisation en ajoutant une " +"extension au nom du fichier. Les extensions sont basées sur la date et " +"l’heure, en utilisation le format *strftime* ``%Y-%m-%d_%H-%M-%S`` ou le " +"début de celui-ci, selon l’intervalle du roulement." + +#: ../Doc/library/logging.handlers.rst:372 +msgid "" +"When computing the next rollover time for the first time (when the handler " +"is created), the last modification time of an existing log file, or else the " +"current time, is used to compute when the next rotation will occur." +msgstr "" +"Lors du premier calcul du roulement suivant (quand le gestionnaire est " +"créé), la dernière date de modification d’un fichier de journalisation " +"existant, ou sinon la date actuelle, est utilisée pour calculer la date du " +"prochain roulement." + +#: ../Doc/library/logging.handlers.rst:376 +msgid "" +"If the *utc* argument is true, times in UTC will be used; otherwise local " +"time is used." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:379 +msgid "" +"If *backupCount* is nonzero, at most *backupCount* files will be kept, and " +"if more would be created when rollover occurs, the oldest one is deleted. " +"The deletion logic uses the interval to determine which files to delete, so " +"changing the interval may leave old files lying around." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:384 +msgid "" +"If *delay* is true, then file opening is deferred until the first call to :" +"meth:`emit`." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:387 +msgid "" +"If *atTime* is not ``None``, it must be a ``datetime.time`` instance which " +"specifies the time of day when rollover occurs, for the cases where rollover " +"is set to happen \"at midnight\" or \"on a particular weekday\". Note that " +"in these cases, the *atTime* value is effectively used to compute the " +"*initial* rollover, and subsequent rollovers would be calculated via the " +"normal interval calculation." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:394 +msgid "" +"Calculation of the initial rollover time is done when the handler is " +"initialised. Calculation of subsequent rollover times is done only when " +"rollover occurs, and rollover occurs only when emitting output. If this is " +"not kept in mind, it might lead to some confusion. For example, if an " +"interval of \"every minute\" is set, that does not mean you will always see " +"log files with times (in the filename) separated by a minute; if, during " +"application execution, logging output is generated more frequently than once " +"a minute, *then* you can expect to see log files with times separated by a " +"minute. If, on the other hand, logging messages are only output once every " +"five minutes (say), then there will be gaps in the file times corresponding " +"to the minutes where no output (and hence no rollover) occurred." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:407 +msgid "*atTime* parameter was added." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:420 +msgid "" +"Outputs the record to the file, catering for rollover as described above." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:426 +msgid "SocketHandler" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:428 +msgid "" +"The :class:`SocketHandler` class, located in the :mod:`logging.handlers` " +"module, sends logging output to a network socket. The base class uses a TCP " +"socket." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:434 +msgid "" +"Returns a new instance of the :class:`SocketHandler` class intended to " +"communicate with a remote machine whose address is given by *host* and " +"*port*." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:437 +msgid "" +"If ``port`` is specified as ``None``, a Unix domain socket is created using " +"the value in ``host`` - otherwise, a TCP socket is created." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:443 +msgid "Closes the socket." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:448 +msgid "" +"Pickles the record's attribute dictionary and writes it to the socket in " +"binary format. If there is an error with the socket, silently drops the " +"packet. If the connection was previously lost, re-establishes the " +"connection. To unpickle the record at the receiving end into a :class:" +"`~logging.LogRecord`, use the :func:`~logging.makeLogRecord` function." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:458 +msgid "" +"Handles an error which has occurred during :meth:`emit`. The most likely " +"cause is a lost connection. Closes the socket so that we can retry on the " +"next event." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:465 +msgid "" +"This is a factory method which allows subclasses to define the precise type " +"of socket they want. The default implementation creates a TCP socket (:const:" +"`socket.SOCK_STREAM`)." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:472 +msgid "" +"Pickles the record's attribute dictionary in binary format with a length " +"prefix, and returns it ready for transmission across the socket. The details " +"of this operation are equivalent to::" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:480 +msgid "" +"Note that pickles aren't completely secure. If you are concerned about " +"security, you may want to override this method to implement a more secure " +"mechanism. For example, you can sign pickles using HMAC and then verify them " +"on the receiving end, or alternatively you can disable unpickling of global " +"objects on the receiving end." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:489 +msgid "" +"Send a pickled byte-string *packet* to the socket. The format of the sent " +"byte-string is as described in the documentation for :meth:`~SocketHandler." +"makePickle`." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:493 +msgid "" +"This function allows for partial sends, which can happen when the network is " +"busy." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:499 +msgid "" +"Tries to create a socket; on failure, uses an exponential back-off " +"algorithm. On initial failure, the handler will drop the message it was " +"trying to send. When subsequent messages are handled by the same instance, " +"it will not try connecting until some time has passed. The default " +"parameters are such that the initial delay is one second, and if after that " +"delay the connection still can't be made, the handler will double the delay " +"each time up to a maximum of 30 seconds." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:507 +msgid "This behaviour is controlled by the following handler attributes:" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:509 +msgid "``retryStart`` (initial delay, defaulting to 1.0 seconds)." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:510 +msgid "``retryFactor`` (multiplier, defaulting to 2.0)." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:511 +msgid "``retryMax`` (maximum delay, defaulting to 30.0 seconds)." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:513 +msgid "" +"This means that if the remote listener starts up *after* the handler has " +"been used, you could lose messages (since the handler won't even attempt a " +"connection until the delay has elapsed, but just silently drop messages " +"during the delay period)." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:522 +msgid "DatagramHandler" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:524 +msgid "" +"The :class:`DatagramHandler` class, located in the :mod:`logging.handlers` " +"module, inherits from :class:`SocketHandler` to support sending logging " +"messages over UDP sockets." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:531 +msgid "" +"Returns a new instance of the :class:`DatagramHandler` class intended to " +"communicate with a remote machine whose address is given by *host* and " +"*port*." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:534 +msgid "" +"If ``port`` is specified as ``None``, a Unix domain socket is created using " +"the value in ``host`` - otherwise, a UDP socket is created." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:540 +msgid "" +"Pickles the record's attribute dictionary and writes it to the socket in " +"binary format. If there is an error with the socket, silently drops the " +"packet. To unpickle the record at the receiving end into a :class:`~logging." +"LogRecord`, use the :func:`~logging.makeLogRecord` function." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:549 +msgid "" +"The factory method of :class:`SocketHandler` is here overridden to create a " +"UDP socket (:const:`socket.SOCK_DGRAM`)." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:555 +msgid "" +"Send a pickled byte-string to a socket. The format of the sent byte-string " +"is as described in the documentation for :meth:`SocketHandler.makePickle`." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:562 +msgid "SysLogHandler" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:564 +msgid "" +"The :class:`SysLogHandler` class, located in the :mod:`logging.handlers` " +"module, supports sending logging messages to a remote or local Unix syslog." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:570 +msgid "" +"Returns a new instance of the :class:`SysLogHandler` class intended to " +"communicate with a remote Unix machine whose address is given by *address* " +"in the form of a ``(host, port)`` tuple. If *address* is not specified, " +"``('localhost', 514)`` is used. The address is used to open a socket. An " +"alternative to providing a ``(host, port)`` tuple is providing an address as " +"a string, for example '/dev/log'. In this case, a Unix domain socket is used " +"to send the message to the syslog. If *facility* is not specified, :const:" +"`LOG_USER` is used. The type of socket opened depends on the *socktype* " +"argument, which defaults to :const:`socket.SOCK_DGRAM` and thus opens a UDP " +"socket. To open a TCP socket (for use with the newer syslog daemons such as " +"rsyslog), specify a value of :const:`socket.SOCK_STREAM`." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:582 +msgid "" +"Note that if your server is not listening on UDP port 514, :class:" +"`SysLogHandler` may appear not to work. In that case, check what address you " +"should be using for a domain socket - it's system dependent. For example, on " +"Linux it's usually '/dev/log' but on OS/X it's '/var/run/syslog'. You'll " +"need to check your platform and use the appropriate address (you may need to " +"do this check at runtime if your application needs to run on several " +"platforms). On Windows, you pretty much have to use the UDP option." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:591 +msgid "*socktype* was added." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:597 +msgid "Closes the socket to the remote host." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:602 +msgid "" +"The record is formatted, and then sent to the syslog server. If exception " +"information is present, it is *not* sent to the server." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:605 +msgid "" +"(See: :issue:`12168`.) In earlier versions, the message sent to the syslog " +"daemons was always terminated with a NUL byte, because early versions of " +"these daemons expected a NUL terminated message - even though it's not in " +"the relevant specification (:rfc:`5424`). More recent versions of these " +"daemons don't expect the NUL byte but strip it off if it's there, and even " +"more recent daemons (which adhere more closely to RFC 5424) pass the NUL " +"byte on as part of the message." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:614 +msgid "" +"To enable easier handling of syslog messages in the face of all these " +"differing daemon behaviours, the appending of the NUL byte has been made " +"configurable, through the use of a class-level attribute, ``append_nul``. " +"This defaults to ``True`` (preserving the existing behaviour) but can be set " +"to ``False`` on a ``SysLogHandler`` instance in order for that instance to " +"*not* append the NUL terminator." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:621 +msgid "" +"(See: :issue:`12419`.) In earlier versions, there was no facility for an " +"\"ident\" or \"tag\" prefix to identify the source of the message. This can " +"now be specified using a class-level attribute, defaulting to ``\"\"`` to " +"preserve existing behaviour, but which can be overridden on a " +"``SysLogHandler`` instance in order for that instance to prepend the ident " +"to every message handled. Note that the provided ident must be text, not " +"bytes, and is prepended to the message exactly as is." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:632 +msgid "" +"Encodes the facility and priority into an integer. You can pass in strings " +"or integers - if strings are passed, internal mapping dictionaries are used " +"to convert them to integers." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:636 +msgid "" +"The symbolic ``LOG_`` values are defined in :class:`SysLogHandler` and " +"mirror the values defined in the ``sys/syslog.h`` header file." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:639 +msgid "**Priorities**" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:642 +#: ../Doc/library/logging.handlers.rst:664 +msgid "Name (string)" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:642 +#: ../Doc/library/logging.handlers.rst:664 +msgid "Symbolic value" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:644 +msgid "``alert``" +msgstr "``alert``" + +#: ../Doc/library/logging.handlers.rst:644 +msgid "LOG_ALERT" +msgstr "LOG_ALERT" + +#: ../Doc/library/logging.handlers.rst:646 +msgid "``crit`` or ``critical``" +msgstr "``crit`` ou ``critical``" + +#: ../Doc/library/logging.handlers.rst:646 +msgid "LOG_CRIT" +msgstr "LOG_CRIT" + +#: ../Doc/library/logging.handlers.rst:648 +msgid "``debug``" +msgstr "``debug``" + +#: ../Doc/library/logging.handlers.rst:648 +msgid "LOG_DEBUG" +msgstr "LOG_DEBUG" + +#: ../Doc/library/logging.handlers.rst:650 +msgid "``emerg`` or ``panic``" +msgstr "``emerg`` ou ``panic``" + +#: ../Doc/library/logging.handlers.rst:650 +msgid "LOG_EMERG" +msgstr "LOG_EMERG" + +#: ../Doc/library/logging.handlers.rst:652 +msgid "``err`` or ``error``" +msgstr "``err`` ou ``error``" + +#: ../Doc/library/logging.handlers.rst:652 +msgid "LOG_ERR" +msgstr "LOG_ERR" + +#: ../Doc/library/logging.handlers.rst:654 +msgid "``info``" +msgstr "``info``" + +#: ../Doc/library/logging.handlers.rst:654 +msgid "LOG_INFO" +msgstr "LOG_INFO" + +#: ../Doc/library/logging.handlers.rst:656 +msgid "``notice``" +msgstr "``notice``" + +#: ../Doc/library/logging.handlers.rst:656 +msgid "LOG_NOTICE" +msgstr "LOG_NOTICE" + +#: ../Doc/library/logging.handlers.rst:658 +msgid "``warn`` or ``warning``" +msgstr "``warn`` ou ``warning``" + +#: ../Doc/library/logging.handlers.rst:658 +msgid "LOG_WARNING" +msgstr "LOG_WARNING" + +#: ../Doc/library/logging.handlers.rst:661 +msgid "**Facilities**" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:666 +msgid "``auth``" +msgstr "``auth``" + +#: ../Doc/library/logging.handlers.rst:666 +msgid "LOG_AUTH" +msgstr "LOG_AUTH" + +#: ../Doc/library/logging.handlers.rst:668 +msgid "``authpriv``" +msgstr "``authpriv``" + +#: ../Doc/library/logging.handlers.rst:668 +msgid "LOG_AUTHPRIV" +msgstr "LOG_AUTHPRIV" + +#: ../Doc/library/logging.handlers.rst:670 +msgid "``cron``" +msgstr "``cron``" + +#: ../Doc/library/logging.handlers.rst:670 +msgid "LOG_CRON" +msgstr "LOG_CRON" + +#: ../Doc/library/logging.handlers.rst:672 +msgid "``daemon``" +msgstr "``daemon``" + +#: ../Doc/library/logging.handlers.rst:672 +msgid "LOG_DAEMON" +msgstr "LOG_DAEMON" + +#: ../Doc/library/logging.handlers.rst:674 +msgid "``ftp``" +msgstr "``ftp``" + +#: ../Doc/library/logging.handlers.rst:674 +msgid "LOG_FTP" +msgstr "LOG_FTP" + +#: ../Doc/library/logging.handlers.rst:676 +msgid "``kern``" +msgstr "``kern``" + +#: ../Doc/library/logging.handlers.rst:676 +msgid "LOG_KERN" +msgstr "LOG_KERN" + +#: ../Doc/library/logging.handlers.rst:678 +msgid "``lpr``" +msgstr "``lpr``" + +#: ../Doc/library/logging.handlers.rst:678 +msgid "LOG_LPR" +msgstr "LOG_LPR" + +#: ../Doc/library/logging.handlers.rst:680 +msgid "``mail``" +msgstr "``mail``" + +#: ../Doc/library/logging.handlers.rst:680 +msgid "LOG_MAIL" +msgstr "LOG_MAIL" + +#: ../Doc/library/logging.handlers.rst:682 +msgid "``news``" +msgstr "``news``" + +#: ../Doc/library/logging.handlers.rst:682 +msgid "LOG_NEWS" +msgstr "LOG_NEWS" + +#: ../Doc/library/logging.handlers.rst:684 +msgid "``syslog``" +msgstr "``syslog``" + +#: ../Doc/library/logging.handlers.rst:684 +msgid "LOG_SYSLOG" +msgstr "LOG_SYSLOG" + +#: ../Doc/library/logging.handlers.rst:686 +msgid "``user``" +msgstr "``user``" + +#: ../Doc/library/logging.handlers.rst:686 +msgid "LOG_USER" +msgstr "LOG_USER" + +#: ../Doc/library/logging.handlers.rst:688 +msgid "``uucp``" +msgstr "``uucp``" + +#: ../Doc/library/logging.handlers.rst:688 +msgid "LOG_UUCP" +msgstr "LOG_UUCP" + +#: ../Doc/library/logging.handlers.rst:690 +msgid "``local0``" +msgstr "``local0``" + +#: ../Doc/library/logging.handlers.rst:690 +msgid "LOG_LOCAL0" +msgstr "LOG_LOCAL0" + +#: ../Doc/library/logging.handlers.rst:692 +msgid "``local1``" +msgstr "``local1``" + +#: ../Doc/library/logging.handlers.rst:692 +msgid "LOG_LOCAL1" +msgstr "LOG_LOCAL1" + +#: ../Doc/library/logging.handlers.rst:694 +msgid "``local2``" +msgstr "``local2``" + +#: ../Doc/library/logging.handlers.rst:694 +msgid "LOG_LOCAL2" +msgstr "LOG_LOCAL2" + +#: ../Doc/library/logging.handlers.rst:696 +msgid "``local3``" +msgstr "``local3``" + +#: ../Doc/library/logging.handlers.rst:696 +msgid "LOG_LOCAL3" +msgstr "LOG_LOCAL3" + +#: ../Doc/library/logging.handlers.rst:698 +msgid "``local4``" +msgstr "``local4``" + +#: ../Doc/library/logging.handlers.rst:698 +msgid "LOG_LOCAL4" +msgstr "LOG_LOCAL4" + +#: ../Doc/library/logging.handlers.rst:700 +msgid "``local5``" +msgstr "``local5``" + +#: ../Doc/library/logging.handlers.rst:700 +msgid "LOG_LOCAL5" +msgstr "LOG_LOCAL5" + +#: ../Doc/library/logging.handlers.rst:702 +msgid "``local6``" +msgstr "``local6``" + +#: ../Doc/library/logging.handlers.rst:702 +msgid "LOG_LOCAL6" +msgstr "LOG_LOCAL6" + +#: ../Doc/library/logging.handlers.rst:704 +msgid "``local7``" +msgstr "``local7``" + +#: ../Doc/library/logging.handlers.rst:704 +msgid "LOG_LOCAL7" +msgstr "LOG_LOCAL7" + +#: ../Doc/library/logging.handlers.rst:709 +msgid "" +"Maps a logging level name to a syslog priority name. You may need to " +"override this if you are using custom levels, or if the default algorithm is " +"not suitable for your needs. The default algorithm maps ``DEBUG``, ``INFO``, " +"``WARNING``, ``ERROR`` and ``CRITICAL`` to the equivalent syslog names, and " +"all other level names to 'warning'." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:719 +msgid "NTEventLogHandler" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:721 +msgid "" +"The :class:`NTEventLogHandler` class, located in the :mod:`logging.handlers` " +"module, supports sending logging messages to a local Windows NT, Windows " +"2000 or Windows XP event log. Before you can use it, you need Mark Hammond's " +"Win32 extensions for Python installed." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:729 +msgid "" +"Returns a new instance of the :class:`NTEventLogHandler` class. The " +"*appname* is used to define the application name as it appears in the event " +"log. An appropriate registry entry is created using this name. The *dllname* " +"should give the fully qualified pathname of a .dll or .exe which contains " +"message definitions to hold in the log (if not specified, ``'win32service." +"pyd'`` is used - this is installed with the Win32 extensions and contains " +"some basic placeholder message definitions. Note that use of these " +"placeholders will make your event logs big, as the entire message source is " +"held in the log. If you want slimmer logs, you have to pass in the name of " +"your own .dll or .exe which contains the message definitions you want to use " +"in the event log). The *logtype* is one of ``'Application'``, ``'System'`` " +"or ``'Security'``, and defaults to ``'Application'``." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:745 +msgid "" +"At this point, you can remove the application name from the registry as a " +"source of event log entries. However, if you do this, you will not be able " +"to see the events as you intended in the Event Log Viewer - it needs to be " +"able to access the registry to get the .dll name. The current version does " +"not do this." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:754 +msgid "" +"Determines the message ID, event category and event type, and then logs the " +"message in the NT event log." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:760 +msgid "" +"Returns the event category for the record. Override this if you want to " +"specify your own categories. This version returns 0." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:766 +msgid "" +"Returns the event type for the record. Override this if you want to specify " +"your own types. This version does a mapping using the handler's typemap " +"attribute, which is set up in :meth:`__init__` to a dictionary which " +"contains mappings for :const:`DEBUG`, :const:`INFO`, :const:`WARNING`, :" +"const:`ERROR` and :const:`CRITICAL`. If you are using your own levels, you " +"will either need to override this method or place a suitable dictionary in " +"the handler's *typemap* attribute." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:777 +msgid "" +"Returns the message ID for the record. If you are using your own messages, " +"you could do this by having the *msg* passed to the logger being an ID " +"rather than a format string. Then, in here, you could use a dictionary " +"lookup to get the message ID. This version returns 1, which is the base " +"message ID in :file:`win32service.pyd`." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:786 +msgid "SMTPHandler" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:788 +msgid "" +"The :class:`SMTPHandler` class, located in the :mod:`logging.handlers` " +"module, supports sending logging messages to an email address via SMTP." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:794 +msgid "" +"Returns a new instance of the :class:`SMTPHandler` class. The instance is " +"initialized with the from and to addresses and subject line of the email. " +"The *toaddrs* should be a list of strings. To specify a non-standard SMTP " +"port, use the (host, port) tuple format for the *mailhost* argument. If you " +"use a string, the standard SMTP port is used. If your SMTP server requires " +"authentication, you can specify a (username, password) tuple for the " +"*credentials* argument." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:801 +msgid "" +"To specify the use of a secure protocol (TLS), pass in a tuple to the " +"*secure* argument. This will only be used when authentication credentials " +"are supplied. The tuple should be either an empty tuple, or a single-value " +"tuple with the name of a keyfile, or a 2-value tuple with the names of the " +"keyfile and certificate file. (This tuple is passed to the :meth:`smtplib." +"SMTP.starttls` method.)" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:808 +msgid "" +"A timeout can be specified for communication with the SMTP server using the " +"*timeout* argument." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:811 +msgid "The *timeout* argument was added." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:816 +msgid "Formats the record and sends it to the specified addressees." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:821 +msgid "" +"If you want to specify a subject line which is record-dependent, override " +"this method." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:827 +msgid "MemoryHandler" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:829 +msgid "" +"The :class:`MemoryHandler` class, located in the :mod:`logging.handlers` " +"module, supports buffering of logging records in memory, periodically " +"flushing them to a :dfn:`target` handler. Flushing occurs whenever the " +"buffer is full, or when an event of a certain severity or greater is seen." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:834 +msgid "" +":class:`MemoryHandler` is a subclass of the more general :class:" +"`BufferingHandler`, which is an abstract class. This buffers logging records " +"in memory. Whenever each record is added to the buffer, a check is made by " +"calling :meth:`shouldFlush` to see if the buffer should be flushed. If it " +"should, then :meth:`flush` is expected to do the flushing." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:843 +msgid "Initializes the handler with a buffer of the specified capacity." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:848 +msgid "" +"Appends the record to the buffer. If :meth:`shouldFlush` returns true, " +"calls :meth:`flush` to process the buffer." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:854 +msgid "" +"You can override this to implement custom flushing behavior. This version " +"just zaps the buffer to empty." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:860 +msgid "" +"Returns true if the buffer is up to capacity. This method can be overridden " +"to implement custom flushing strategies." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:866 +msgid "" +"Returns a new instance of the :class:`MemoryHandler` class. The instance is " +"initialized with a buffer size of *capacity*. If *flushLevel* is not " +"specified, :const:`ERROR` is used. If no *target* is specified, the target " +"will need to be set using :meth:`setTarget` before this handler does " +"anything useful. If *flushOnClose* is specified as ``False``, then the " +"buffer is *not* flushed when the handler is closed. If not specified or " +"specified as ``True``, the previous behaviour of flushing the buffer will " +"occur when the handler is closed." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:874 +msgid "The *flushOnClose* parameter was added." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:880 +msgid "Calls :meth:`flush`, sets the target to ``None`` and clears the buffer." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:886 +msgid "" +"For a :class:`MemoryHandler`, flushing means just sending the buffered " +"records to the target, if there is one. The buffer is also cleared when this " +"happens. Override if you want different behavior." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:893 +msgid "Sets the target handler for this handler." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:898 +msgid "Checks for buffer full or a record at the *flushLevel* or higher." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:904 +msgid "HTTPHandler" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:906 +msgid "" +"The :class:`HTTPHandler` class, located in the :mod:`logging.handlers` " +"module, supports sending logging messages to a Web server, using either " +"``GET`` or ``POST`` semantics." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:913 +msgid "" +"Returns a new instance of the :class:`HTTPHandler` class. The *host* can be " +"of the form ``host:port``, should you need to use a specific port number. " +"If no *method* is specified, ``GET`` is used. If *secure* is true, a HTTPS " +"connection will be used. The *context* parameter may be set to a :class:`ssl." +"SSLContext` instance to configure the SSL settings used for the HTTPS " +"connection. If *credentials* is specified, it should be a 2-tuple consisting " +"of userid and password, which will be placed in a HTTP 'Authorization' " +"header using Basic authentication. If you specify credentials, you should " +"also specify secure=True so that your userid and password are not passed in " +"cleartext across the wire." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:924 +msgid "The *context* parameter was added." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:929 +msgid "" +"Provides a dictionary, based on ``record``, which is to be URL-encoded and " +"sent to the web server. The default implementation just returns ``record." +"__dict__``. This method can be overridden if e.g. only a subset of :class:" +"`~logging.LogRecord` is to be sent to the web server, or if more specific " +"customization of what's sent to the server is required." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:937 +msgid "" +"Sends the record to the Web server as a URL-encoded dictionary. The :meth:" +"`mapLogRecord` method is used to convert the record to the dictionary to be " +"sent." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:941 +msgid "" +"Since preparing a record for sending it to a Web server is not the same as a " +"generic formatting operation, using :meth:`~logging.Handler.setFormatter` to " +"specify a :class:`~logging.Formatter` for a :class:`HTTPHandler` has no " +"effect. Instead of calling :meth:`~logging.Handler.format`, this handler " +"calls :meth:`mapLogRecord` and then :func:`urllib.parse.urlencode` to encode " +"the dictionary in a form suitable for sending to a Web server." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:954 +msgid "QueueHandler" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:958 +msgid "" +"The :class:`QueueHandler` class, located in the :mod:`logging.handlers` " +"module, supports sending logging messages to a queue, such as those " +"implemented in the :mod:`queue` or :mod:`multiprocessing` modules." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:962 +msgid "" +"Along with the :class:`QueueListener` class, :class:`QueueHandler` can be " +"used to let handlers do their work on a separate thread from the one which " +"does the logging. This is important in Web applications and also other " +"service applications where threads servicing clients need to respond as " +"quickly as possible, while any potentially slow operations (such as sending " +"an email via :class:`SMTPHandler`) are done on a separate thread." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:971 +msgid "" +"Returns a new instance of the :class:`QueueHandler` class. The instance is " +"initialized with the queue to send messages to. The queue can be any queue-" +"like object; it's used as-is by the :meth:`enqueue` method, which needs to " +"know how to send messages to it." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:979 +msgid "Enqueues the result of preparing the LogRecord." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:983 +msgid "" +"Prepares a record for queuing. The object returned by this method is " +"enqueued." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:986 +msgid "" +"The base implementation formats the record to merge the message, arguments, " +"and exception information, if present. It also removes unpickleable items " +"from the record in-place." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:990 +msgid "" +"You might want to override this method if you want to convert the record to " +"a dict or JSON string, or send a modified copy of the record while leaving " +"the original intact." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:996 +msgid "" +"Enqueues the record on the queue using ``put_nowait()``; you may want to " +"override this if you want to use blocking behaviour, or a timeout, or a " +"customized queue implementation." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1005 +msgid "QueueListener" +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1009 +msgid "" +"The :class:`QueueListener` class, located in the :mod:`logging.handlers` " +"module, supports receiving logging messages from a queue, such as those " +"implemented in the :mod:`queue` or :mod:`multiprocessing` modules. The " +"messages are received from a queue in an internal thread and passed, on the " +"same thread, to one or more handlers for processing. While :class:" +"`QueueListener` is not itself a handler, it is documented here because it " +"works hand-in-hand with :class:`QueueHandler`." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1017 +msgid "" +"Along with the :class:`QueueHandler` class, :class:`QueueListener` can be " +"used to let handlers do their work on a separate thread from the one which " +"does the logging. This is important in Web applications and also other " +"service applications where threads servicing clients need to respond as " +"quickly as possible, while any potentially slow operations (such as sending " +"an email via :class:`SMTPHandler`) are done on a separate thread." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1026 +msgid "" +"Returns a new instance of the :class:`QueueListener` class. The instance is " +"initialized with the queue to send messages to and a list of handlers which " +"will handle entries placed on the queue. The queue can be any queue-like " +"object; it's passed as-is to the :meth:`dequeue` method, which needs to know " +"how to get messages from it. If ``respect_handler_level`` is ``True``, a " +"handler's level is respected (compared with the level for the message) when " +"deciding whether to pass messages to that handler; otherwise, the behaviour " +"is as in previous Python versions - to always pass each message to each " +"handler." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1036 +msgid "The ``respect_handler_levels`` argument was added." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1041 +msgid "Dequeues a record and return it, optionally blocking." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1043 +msgid "" +"The base implementation uses ``get()``. You may want to override this method " +"if you want to use timeouts or work with custom queue implementations." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1049 +msgid "Prepare a record for handling." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1051 +msgid "" +"This implementation just returns the passed-in record. You may want to " +"override this method if you need to do any custom marshalling or " +"manipulation of the record before passing it to the handlers." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1057 +msgid "Handle a record." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1059 +msgid "" +"This just loops through the handlers offering them the record to handle. The " +"actual object passed to the handlers is that which is returned from :meth:" +"`prepare`." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1065 +msgid "Starts the listener." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1067 +msgid "" +"This starts up a background thread to monitor the queue for LogRecords to " +"process." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1072 +msgid "Stops the listener." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1074 +msgid "" +"This asks the thread to terminate, and then waits for it to do so. Note that " +"if you don't call this before your application exits, there may be some " +"records still left on the queue, which won't be processed." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1080 +msgid "" +"Writes a sentinel to the queue to tell the listener to quit. This " +"implementation uses ``put_nowait()``. You may want to override this method " +"if you want to use timeouts or work with custom queue implementations." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1091 +msgid "Module :mod:`logging`" +msgstr "Module :mod:`logging`" + +#: ../Doc/library/logging.handlers.rst:1091 +msgid "API reference for the logging module." +msgstr "Référence d'API pour le module de journalisation." + +#: ../Doc/library/logging.handlers.rst:1093 +msgid "Module :mod:`logging.config`" +msgstr "Module :mod:`logging.config`" + +#: ../Doc/library/logging.handlers.rst:1094 +msgid "Configuration API for the logging module." +msgstr "API de configuration pour le module de journalisation." diff --git a/library/logging.po b/library/logging.po new file mode 100644 index 000000000..b52217a30 --- /dev/null +++ b/library/logging.po @@ -0,0 +1,1949 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"PO-Revision-Date: 2018-07-05 11:54+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/logging.rst:2 +msgid ":mod:`logging` --- Logging facility for Python" +msgstr ":mod:`logging` — Fonctionnalités de journalisation pour Python" + +#: ../Doc/library/logging.rst:10 +msgid "**Source code:** :source:`Lib/logging/__init__.py`" +msgstr "**Code source :** :source:`Lib/logging/__init__.py`" + +#: ../Doc/library/logging.rst:16 +msgid "" +"This page contains the API reference information. For tutorial information " +"and discussion of more advanced topics, see" +msgstr "" +"Cette page contient les informations de référence de l’API. Pour des " +"tutoriels et des discussions sur des sujets plus avancés, voir" + +#: ../Doc/library/logging.rst:19 +msgid ":ref:`Basic Tutorial `" +msgstr ":ref:`Tutoriel basique `" + +#: ../Doc/library/logging.rst:20 +msgid ":ref:`Advanced Tutorial `" +msgstr ":ref:`Tutoriel avancé `" + +#: ../Doc/library/logging.rst:21 +msgid ":ref:`Logging Cookbook `" +msgstr ":ref:`Recettes pour la journalisation `" + +#: ../Doc/library/logging.rst:25 +msgid "" +"This module defines functions and classes which implement a flexible event " +"logging system for applications and libraries." +msgstr "" +"Ce module définit les fonctions et les classes qui mettent en œuvre un " +"système flexible d’enregistrement des événements pour les applications et " +"les bibliothèques." + +#: ../Doc/library/logging.rst:28 +msgid "" +"The key benefit of having the logging API provided by a standard library " +"module is that all Python modules can participate in logging, so your " +"application log can include your own messages integrated with messages from " +"third-party modules." +msgstr "" +"Le principal avantage de l’API de journalisation fournie par un module de " +"bibliothèque standard est que tous les modules Python peuvent participer à " +"la journalisation, de sorte que le journal de votre application peut inclure " +"vos propres messages intégrés aux messages de modules tiers." + +#: ../Doc/library/logging.rst:33 +msgid "" +"The module provides a lot of functionality and flexibility. If you are " +"unfamiliar with logging, the best way to get to grips with it is to see the " +"tutorials (see the links on the right)." +msgstr "" +"Le module offre beaucoup de fonctionnalités et de flexibilité. Si vous " +"n’êtes pas familiarisé avec la journalisation, la meilleure façon de vous y " +"familiariser est de consulter les tutoriels (voir les liens à droite)." + +#: ../Doc/library/logging.rst:37 +msgid "" +"The basic classes defined by the module, together with their functions, are " +"listed below." +msgstr "" +"Les classes de base définies par le module, ainsi que leurs fonctions, sont " +"énumérées ci-dessous." + +#: ../Doc/library/logging.rst:40 +msgid "Loggers expose the interface that application code directly uses." +msgstr "" +"Les enregistreurs (*loggers* en anglais) exposent l'interface que le code de " +"l'application utilise directement." + +#: ../Doc/library/logging.rst:41 +msgid "" +"Handlers send the log records (created by loggers) to the appropriate " +"destination." +msgstr "" +"Les gestionnaires (*handlers*) envoient les entrées de journal (créées par " +"les *loggers*) vers les destinations voulues." + +#: ../Doc/library/logging.rst:43 +msgid "" +"Filters provide a finer grained facility for determining which log records " +"to output." +msgstr "" +"Les filtres (*filters*) fournissent un moyen de choisir finement quelles " +"entrées de journal doivent être sorties." + +#: ../Doc/library/logging.rst:45 +msgid "Formatters specify the layout of log records in the final output." +msgstr "" +"Les formateurs (*formatters*) spécifient la structure de l'entrée de journal " +"dans la sortie finale." + +#: ../Doc/library/logging.rst:51 +msgid "Logger Objects" +msgstr "Objets Enregistreurs" + +#: ../Doc/library/logging.rst:53 +msgid "" +"Loggers have the following attributes and methods. Note that Loggers should " +"*NEVER* be instantiated directly, but always through the module-level " +"function ``logging.getLogger(name)``. Multiple calls to :func:`getLogger` " +"with the same name will always return a reference to the same Logger object." +msgstr "" +"Les enregistreurs ont les attributs et les méthodes suivants. Notez que les " +"enregistreurs ne doivent *JAMAIS* être instanciés directement, mais toujours " +"par la fonction au niveau du module ``logging.getLogger(name)``. Plusieurs " +"appels à :func:`getLogger` avec le même nom renvoient toujours une référence " +"au même objet enregistreur." + +#: ../Doc/library/logging.rst:58 +msgid "" +"The ``name`` is potentially a period-separated hierarchical value, like " +"``foo.bar.baz`` (though it could also be just plain ``foo``, for example). " +"Loggers that are further down in the hierarchical list are children of " +"loggers higher up in the list. For example, given a logger with a name of " +"``foo``, loggers with names of ``foo.bar``, ``foo.bar.baz``, and ``foo.bam`` " +"are all descendants of ``foo``. The logger name hierarchy is analogous to " +"the Python package hierarchy, and identical to it if you organise your " +"loggers on a per-module basis using the recommended construction ``logging." +"getLogger(__name__)``. That's because in a module, ``__name__`` is the " +"module's name in the Python package namespace." +msgstr "" +"Le nom ``name`` est potentiellement une valeur avec plusieurs niveaux de " +"hiérarchie, séparés par des points, comme ``truc.machin.bidule`` (bien qu’il " +"puisse aussi être simplement ``truc``, par exemple). Les enregistreurs qui " +"sont plus bas dans la liste hiérarchique sont les enfants des enregistreurs " +"plus haut dans la liste. Par exemple, pour un enregistreur nommé ``truc``, " +"les enregistreurs portant les noms ``truc.machin``, ``truc.machin.bidule`` " +"et ``truc.chose`` sont tous des descendants de ``truc``. La hiérarchie des " +"noms d’enregistreurs est analogue à la hiérarchie des paquets Python, et est " +"identique à celle-ci si vous organisez vos enregistreurs par module en " +"utilisant la construction recommandée ``logging.getLogger(__name__)``. " +"C’est ainsi parce que dans un module, ``__name__`` est le nom du module dans " +"l’espace de noms des paquets Python." + +#: ../Doc/library/logging.rst:74 +msgid "" +"If this attribute evaluates to true, events logged to this logger will be " +"passed to the handlers of higher level (ancestor) loggers, in addition to " +"any handlers attached to this logger. Messages are passed directly to the " +"ancestor loggers' handlers - neither the level nor filters of the ancestor " +"loggers in question are considered." +msgstr "" +"Si cet attribut est évalué comme vrai, les événements enregistrés dans cet " +"enregistreur seront transmis aux gestionnaires des enregistreurs de niveau " +"supérieur (parents), en plus des gestionnaires attachés à cet enregistreur. " +"Les messages sont transmis directement aux gestionnaires des enregistreurs " +"parents — ni le niveau ni les filtres des enregistreurs ancestraux en " +"question ne sont pris en compte." + +#: ../Doc/library/logging.rst:80 +msgid "" +"If this evaluates to false, logging messages are not passed to the handlers " +"of ancestor loggers." +msgstr "" +"S’il s’évalue comme faux, les messages de journalisation ne sont pas " +"transmis aux gestionnaires des enregistreurs parents." + +#: ../Doc/library/logging.rst:83 +msgid "The constructor sets this attribute to ``True``." +msgstr "Le constructeur fixe cet attribut à ``True``." + +#: ../Doc/library/logging.rst:85 +msgid "" +"If you attach a handler to a logger *and* one or more of its ancestors, it " +"may emit the same record multiple times. In general, you should not need to " +"attach a handler to more than one logger - if you just attach it to the " +"appropriate logger which is highest in the logger hierarchy, then it will " +"see all events logged by all descendant loggers, provided that their " +"propagate setting is left set to ``True``. A common scenario is to attach " +"handlers only to the root logger, and to let propagation take care of the " +"rest." +msgstr "" +"Si vous associez un gestionnaire à un enregistreur *et* à un ou plusieurs de " +"ses parents, il peut émettre le même enregistrement plusieurs fois. En " +"général, vous ne devriez pas avoir besoin d'attacher un gestionnaire à plus " +"d'un enregistreur — si vous l'attachez simplement à l'enregistreur approprié " +"qui est le plus haut dans la hiérarchie des enregistreurs, alors il voit " +"tous les événements enregistrés par tous les enregistreurs descendants, à " +"condition que leur paramètre de propagation soit laissé à ``True``. Un " +"scénario courant est d'attacher les gestionnaires uniquement à " +"l'enregistreur racine, et de laisser la propagation s'occuper du reste." + +#: ../Doc/library/logging.rst:96 +msgid "" +"Sets the threshold for this logger to *level*. Logging messages which are " +"less severe than *level* will be ignored; logging messages which have " +"severity *level* or higher will be emitted by whichever handler or handlers " +"service this logger, unless a handler's level has been set to a higher " +"severity level than *level*." +msgstr "" +"Fixe le seuil de cet enregistreur au niveau *level*. Les messages de " +"journalisation qui sont moins graves que *level* sont ignorés ; les messages " +"qui ont une gravité égale à *level* ou plus élevée sont émis par le ou les " +"gestionnaires de cet enregistreur, à moins que le niveau d'un gestionnaire " +"n'ait été fixé à un niveau de gravité plus élevé que *level*." + +#: ../Doc/library/logging.rst:101 +msgid "" +"When a logger is created, the level is set to :const:`NOTSET` (which causes " +"all messages to be processed when the logger is the root logger, or " +"delegation to the parent when the logger is a non-root logger). Note that " +"the root logger is created with level :const:`WARNING`." +msgstr "" +"Lorsqu'un enregistreur est créé, le niveau est fixé à :const:`NOTSET` (ce " +"qui entraîne le traitement de tous les messages lorsque l'enregistreur est " +"l'enregistreur racine, ou la délégation au parent lorsque l'enregistreur est " +"un enregistreur non racine). Notez que l'enregistreur racine est créé avec " +"le niveau :const:`WARNING`." + +#: ../Doc/library/logging.rst:106 +msgid "" +"The term 'delegation to the parent' means that if a logger has a level of " +"NOTSET, its chain of ancestor loggers is traversed until either an ancestor " +"with a level other than NOTSET is found, or the root is reached." +msgstr "" +"Le terme « délégation au parent » signifie que si un enregistreur a un " +"niveau de ``NOTSET``, sa chaîne d’enregistreurs parents est parcourue " +"jusqu'à ce qu'un parent ayant un niveau autre que ``NOTSET`` soit trouvé, ou " +"que la racine soit atteinte." + +#: ../Doc/library/logging.rst:110 +msgid "" +"If an ancestor is found with a level other than NOTSET, then that ancestor's " +"level is treated as the effective level of the logger where the ancestor " +"search began, and is used to determine how a logging event is handled." +msgstr "" +"Si un ancêtre est trouvé avec un niveau autre que NOTSET, alors le niveau de " +"ce parent est traité comme le niveau effectif de l'enregistreur où la " +"recherche de l'ancêtre a commencé, et est utilisé pour déterminer comment un " +"événement d'enregistrement est traité." + +#: ../Doc/library/logging.rst:114 +msgid "" +"If the root is reached, and it has a level of NOTSET, then all messages will " +"be processed. Otherwise, the root's level will be used as the effective " +"level." +msgstr "" +"Si la racine est atteinte, et qu'elle a un niveau de NOTSET, alors tous les " +"messages sont traités. Sinon, le niveau de la racine est utilisé comme " +"niveau effectif." + +#: ../Doc/library/logging.rst:117 ../Doc/library/logging.rst:407 +msgid "See :ref:`levels` for a list of levels." +msgstr "Voir :ref:`levels` pour la liste des niveaux." + +#: ../Doc/library/logging.rst:119 +msgid "" +"The *level* parameter now accepts a string representation of the level such " +"as 'INFO' as an alternative to the integer constants such as :const:`INFO`. " +"Note, however, that levels are internally stored as integers, and methods " +"such as e.g. :meth:`getEffectiveLevel` and :meth:`isEnabledFor` will return/" +"expect to be passed integers." +msgstr "" +"Le paramètre *level* accepte maintenant une représentation du niveau en " +"chaîne de caractères (comme ``'INFO'``) en alternative aux constantes " +"entières comme :const:`INFO`. Notez, cependant, que les niveaux sont stockés " +"en interne sous forme d'entiers, et des méthodes telles que :meth:" +"`getEffectiveLevel` et :meth:`isEnabledFor` renvoient/s'attendent à recevoir " +"des entiers." + +#: ../Doc/library/logging.rst:129 +msgid "" +"Indicates if a message of severity *lvl* would be processed by this logger. " +"This method checks first the module-level level set by ``logging." +"disable(lvl)`` and then the logger's effective level as determined by :meth:" +"`getEffectiveLevel`." +msgstr "" + +#: ../Doc/library/logging.rst:137 +msgid "" +"Indicates the effective level for this logger. If a value other than :const:" +"`NOTSET` has been set using :meth:`setLevel`, it is returned. Otherwise, the " +"hierarchy is traversed towards the root until a value other than :const:" +"`NOTSET` is found, and that value is returned. The value returned is an " +"integer, typically one of :const:`logging.DEBUG`, :const:`logging.INFO` etc." +msgstr "" +"Indique le niveau effectif pour cet enregistreur. Si une valeur autre que :" +"const:`NOTSET` a été définie en utilisant :meth:`setLevel`, elle est " +"renvoyée. Sinon, la hiérarchie est parcourue vers la racine jusqu'à ce " +"qu'une valeur autre que :const:`NOTSET` soit trouvée, et cette valeur est " +"renvoyée. La valeur renvoyée est un entier, généralement l'un de :const:" +"`logging.DEBUG`, :const:`logging.INFO`, etc." + +#: ../Doc/library/logging.rst:147 +msgid "" +"Returns a logger which is a descendant to this logger, as determined by the " +"suffix. Thus, ``logging.getLogger('abc').getChild('def.ghi')`` would return " +"the same logger as would be returned by ``logging.getLogger('abc.def." +"ghi')``. This is a convenience method, useful when the parent logger is " +"named using e.g. ``__name__`` rather than a literal string." +msgstr "" +"Renvoie un enregistreur qui est un enfant de cet enregistreur, tel que " +"déterminé par le suffixe. Ainsi, ``logging.getLogger('abc').getChild('def." +"ghi')`` renvoie le même enregistreur que celui renvoyé par ``logging." +"getLogger('abc.def.ghi')``. C'est une méthode de pure commodité, utile " +"lorsque l’enregistreur parent est nommé en utilisant par exemple " +"``__name__`` plutôt qu'une chaîne de caractères littérale." + +#: ../Doc/library/logging.rst:158 +msgid "" +"Logs a message with level :const:`DEBUG` on this logger. The *msg* is the " +"message format string, and the *args* are the arguments which are merged " +"into *msg* using the string formatting operator. (Note that this means that " +"you can use keywords in the format string, together with a single dictionary " +"argument.)" +msgstr "" + +#: ../Doc/library/logging.rst:163 +msgid "" +"There are three keyword arguments in *kwargs* which are inspected: " +"*exc_info*, *stack_info*, and *extra*." +msgstr "" + +#: ../Doc/library/logging.rst:166 +msgid "" +"If *exc_info* does not evaluate as false, it causes exception information to " +"be added to the logging message. If an exception tuple (in the format " +"returned by :func:`sys.exc_info`) or an exception instance is provided, it " +"is used; otherwise, :func:`sys.exc_info` is called to get the exception " +"information." +msgstr "" + +#: ../Doc/library/logging.rst:171 ../Doc/library/logging.rst:937 +msgid "" +"The second optional keyword argument is *stack_info*, which defaults to " +"``False``. If true, stack information is added to the logging message, " +"including the actual logging call. Note that this is not the same stack " +"information as that displayed through specifying *exc_info*: The former is " +"stack frames from the bottom of the stack up to the logging call in the " +"current thread, whereas the latter is information about stack frames which " +"have been unwound, following an exception, while searching for exception " +"handlers." +msgstr "" + +#: ../Doc/library/logging.rst:180 ../Doc/library/logging.rst:946 +msgid "" +"You can specify *stack_info* independently of *exc_info*, e.g. to just show " +"how you got to a certain point in your code, even when no exceptions were " +"raised. The stack frames are printed following a header line which says:" +msgstr "" + +#: ../Doc/library/logging.rst:188 ../Doc/library/logging.rst:954 +msgid "" +"This mimics the ``Traceback (most recent call last):`` which is used when " +"displaying exception frames." +msgstr "" + +#: ../Doc/library/logging.rst:191 +msgid "" +"The third keyword argument is *extra* which can be used to pass a dictionary " +"which is used to populate the __dict__ of the LogRecord created for the " +"logging event with user-defined attributes. These custom attributes can then " +"be used as you like. For example, they could be incorporated into logged " +"messages. For example::" +msgstr "" + +#: ../Doc/library/logging.rst:203 +msgid "would print something like" +msgstr "" + +#: ../Doc/library/logging.rst:209 ../Doc/library/logging.rst:974 +msgid "" +"The keys in the dictionary passed in *extra* should not clash with the keys " +"used by the logging system. (See the :class:`Formatter` documentation for " +"more information on which keys are used by the logging system.)" +msgstr "" + +#: ../Doc/library/logging.rst:213 ../Doc/library/logging.rst:978 +msgid "" +"If you choose to use these attributes in logged messages, you need to " +"exercise some care. In the above example, for instance, the :class:" +"`Formatter` has been set up with a format string which expects 'clientip' " +"and 'user' in the attribute dictionary of the LogRecord. If these are " +"missing, the message will not be logged because a string formatting " +"exception will occur. So in this case, you always need to pass the *extra* " +"dictionary with these keys." +msgstr "" + +#: ../Doc/library/logging.rst:220 ../Doc/library/logging.rst:985 +msgid "" +"While this might be annoying, this feature is intended for use in " +"specialized circumstances, such as multi-threaded servers where the same " +"code executes in many contexts, and interesting conditions which arise are " +"dependent on this context (such as remote client IP address and " +"authenticated user name, in the above example). In such circumstances, it is " +"likely that specialized :class:`Formatter`\\ s would be used with " +"particular :class:`Handler`\\ s." +msgstr "" + +#: ../Doc/library/logging.rst:227 ../Doc/library/logging.rst:992 +msgid "The *stack_info* parameter was added." +msgstr "" + +#: ../Doc/library/logging.rst:230 +msgid "The *exc_info* parameter can now accept exception instances." +msgstr "" + +#: ../Doc/library/logging.rst:236 +msgid "" +"Logs a message with level :const:`INFO` on this logger. The arguments are " +"interpreted as for :meth:`debug`." +msgstr "" + +#: ../Doc/library/logging.rst:242 +msgid "" +"Logs a message with level :const:`WARNING` on this logger. The arguments are " +"interpreted as for :meth:`debug`." +msgstr "" + +#: ../Doc/library/logging.rst:245 +msgid "" +"There is an obsolete method ``warn`` which is functionally identical to " +"``warning``. As ``warn`` is deprecated, please do not use it - use " +"``warning`` instead." +msgstr "" + +#: ../Doc/library/logging.rst:251 +msgid "" +"Logs a message with level :const:`ERROR` on this logger. The arguments are " +"interpreted as for :meth:`debug`." +msgstr "" + +#: ../Doc/library/logging.rst:257 +msgid "" +"Logs a message with level :const:`CRITICAL` on this logger. The arguments " +"are interpreted as for :meth:`debug`." +msgstr "" + +#: ../Doc/library/logging.rst:263 +msgid "" +"Logs a message with integer level *lvl* on this logger. The other arguments " +"are interpreted as for :meth:`debug`." +msgstr "" + +#: ../Doc/library/logging.rst:269 +msgid "" +"Logs a message with level :const:`ERROR` on this logger. The arguments are " +"interpreted as for :meth:`debug`. Exception info is added to the logging " +"message. This method should only be called from an exception handler." +msgstr "" + +#: ../Doc/library/logging.rst:276 +msgid "Adds the specified filter *filter* to this logger." +msgstr "" + +#: ../Doc/library/logging.rst:281 +msgid "Removes the specified filter *filter* from this logger." +msgstr "" + +#: ../Doc/library/logging.rst:286 +msgid "" +"Applies this logger's filters to the record and returns a true value if the " +"record is to be processed. The filters are consulted in turn, until one of " +"them returns a false value. If none of them return a false value, the record " +"will be processed (passed to handlers). If one returns a false value, no " +"further processing of the record occurs." +msgstr "" + +#: ../Doc/library/logging.rst:295 +msgid "Adds the specified handler *hdlr* to this logger." +msgstr "" + +#: ../Doc/library/logging.rst:300 +msgid "Removes the specified handler *hdlr* from this logger." +msgstr "" + +#: ../Doc/library/logging.rst:305 +msgid "" +"Finds the caller's source filename and line number. Returns the filename, " +"line number, function name and stack information as a 4-element tuple. The " +"stack information is returned as ``None`` unless *stack_info* is ``True``." +msgstr "" + +#: ../Doc/library/logging.rst:312 +msgid "" +"Handles a record by passing it to all handlers associated with this logger " +"and its ancestors (until a false value of *propagate* is found). This method " +"is used for unpickled records received from a socket, as well as those " +"created locally. Logger-level filtering is applied using :meth:`~Logger." +"filter`." +msgstr "" + +#: ../Doc/library/logging.rst:320 +msgid "" +"This is a factory method which can be overridden in subclasses to create " +"specialized :class:`LogRecord` instances." +msgstr "" + +#: ../Doc/library/logging.rst:325 +msgid "" +"Checks to see if this logger has any handlers configured. This is done by " +"looking for handlers in this logger and its parents in the logger hierarchy. " +"Returns ``True`` if a handler was found, else ``False``. The method stops " +"searching up the hierarchy whenever a logger with the 'propagate' attribute " +"set to false is found - that will be the last logger which is checked for " +"the existence of handlers." +msgstr "" + +#: ../Doc/library/logging.rst:334 +msgid "Loggers can now be pickled and unpickled." +msgstr "" + +#: ../Doc/library/logging.rst:340 +msgid "Logging Levels" +msgstr "Niveaux de journalisation" + +#: ../Doc/library/logging.rst:342 +msgid "" +"The numeric values of logging levels are given in the following table. These " +"are primarily of interest if you want to define your own levels, and need " +"them to have specific values relative to the predefined levels. If you " +"define a level with the same numeric value, it overwrites the predefined " +"value; the predefined name is lost." +msgstr "" +"Les valeurs numériques des niveaux de journalisation sont données dans le " +"tableau suivant. Celles-ci n'ont d'intérêt que si vous voulez définir vos " +"propres niveaux, avec des valeurs spécifiques par rapport aux niveaux " +"prédéfinis. Si vous définissez un niveau avec la même valeur numérique, il " +"écrase la valeur prédéfinie ; le nom prédéfini est perdu." + +#: ../Doc/library/logging.rst:349 +msgid "Level" +msgstr "Niveau" + +#: ../Doc/library/logging.rst:349 +msgid "Numeric value" +msgstr "Valeur numérique" + +#: ../Doc/library/logging.rst:351 +msgid "``CRITICAL``" +msgstr "``CRITICAL``" + +#: ../Doc/library/logging.rst:351 +msgid "50" +msgstr "50" + +#: ../Doc/library/logging.rst:353 +msgid "``ERROR``" +msgstr "``ERROR``" + +#: ../Doc/library/logging.rst:353 +msgid "40" +msgstr "40" + +#: ../Doc/library/logging.rst:355 +msgid "``WARNING``" +msgstr "``WARNING``" + +#: ../Doc/library/logging.rst:355 +msgid "30" +msgstr "30" + +#: ../Doc/library/logging.rst:357 +msgid "``INFO``" +msgstr "``INFO``" + +#: ../Doc/library/logging.rst:357 +msgid "20" +msgstr "20" + +#: ../Doc/library/logging.rst:359 +msgid "``DEBUG``" +msgstr "``DEBUG``" + +#: ../Doc/library/logging.rst:359 +msgid "10" +msgstr "10" + +#: ../Doc/library/logging.rst:361 +msgid "``NOTSET``" +msgstr "``NOTSET``" + +#: ../Doc/library/logging.rst:361 +msgid "0" +msgstr "0" + +#: ../Doc/library/logging.rst:368 +msgid "Handler Objects" +msgstr "" + +#: ../Doc/library/logging.rst:370 +msgid "" +"Handlers have the following attributes and methods. Note that :class:" +"`Handler` is never instantiated directly; this class acts as a base for more " +"useful subclasses. However, the :meth:`__init__` method in subclasses needs " +"to call :meth:`Handler.__init__`." +msgstr "" + +#: ../Doc/library/logging.rst:379 +msgid "" +"Initializes the :class:`Handler` instance by setting its level, setting the " +"list of filters to the empty list and creating a lock (using :meth:" +"`createLock`) for serializing access to an I/O mechanism." +msgstr "" + +#: ../Doc/library/logging.rst:386 +msgid "" +"Initializes a thread lock which can be used to serialize access to " +"underlying I/O functionality which may not be threadsafe." +msgstr "" + +#: ../Doc/library/logging.rst:392 +msgid "Acquires the thread lock created with :meth:`createLock`." +msgstr "" + +#: ../Doc/library/logging.rst:397 +msgid "Releases the thread lock acquired with :meth:`acquire`." +msgstr "" + +#: ../Doc/library/logging.rst:402 +msgid "" +"Sets the threshold for this handler to *level*. Logging messages which are " +"less severe than *level* will be ignored. When a handler is created, the " +"level is set to :const:`NOTSET` (which causes all messages to be processed)." +msgstr "" + +#: ../Doc/library/logging.rst:409 +msgid "" +"The *level* parameter now accepts a string representation of the level such " +"as 'INFO' as an alternative to the integer constants such as :const:`INFO`." +msgstr "" + +#: ../Doc/library/logging.rst:417 +msgid "Sets the :class:`Formatter` for this handler to *fmt*." +msgstr "" + +#: ../Doc/library/logging.rst:422 +msgid "Adds the specified filter *filter* to this handler." +msgstr "" + +#: ../Doc/library/logging.rst:427 +msgid "Removes the specified filter *filter* from this handler." +msgstr "" + +#: ../Doc/library/logging.rst:432 +msgid "" +"Applies this handler's filters to the record and returns a true value if the " +"record is to be processed. The filters are consulted in turn, until one of " +"them returns a false value. If none of them return a false value, the record " +"will be emitted. If one returns a false value, the handler will not emit the " +"record." +msgstr "" + +#: ../Doc/library/logging.rst:441 +msgid "" +"Ensure all logging output has been flushed. This version does nothing and is " +"intended to be implemented by subclasses." +msgstr "" + +#: ../Doc/library/logging.rst:447 +msgid "" +"Tidy up any resources used by the handler. This version does no output but " +"removes the handler from an internal list of handlers which is closed when :" +"func:`shutdown` is called. Subclasses should ensure that this gets called " +"from overridden :meth:`close` methods." +msgstr "" + +#: ../Doc/library/logging.rst:455 +msgid "" +"Conditionally emits the specified logging record, depending on filters which " +"may have been added to the handler. Wraps the actual emission of the record " +"with acquisition/release of the I/O thread lock." +msgstr "" + +#: ../Doc/library/logging.rst:462 +msgid "" +"This method should be called from handlers when an exception is encountered " +"during an :meth:`emit` call. If the module-level attribute " +"``raiseExceptions`` is ``False``, exceptions get silently ignored. This is " +"what is mostly wanted for a logging system - most users will not care about " +"errors in the logging system, they are more interested in application " +"errors. You could, however, replace this with a custom handler if you wish. " +"The specified record is the one which was being processed when the exception " +"occurred. (The default value of ``raiseExceptions`` is ``True``, as that is " +"more useful during development)." +msgstr "" + +#: ../Doc/library/logging.rst:475 +msgid "" +"Do formatting for a record - if a formatter is set, use it. Otherwise, use " +"the default formatter for the module." +msgstr "" + +#: ../Doc/library/logging.rst:481 +msgid "" +"Do whatever it takes to actually log the specified logging record. This " +"version is intended to be implemented by subclasses and so raises a :exc:" +"`NotImplementedError`." +msgstr "" + +#: ../Doc/library/logging.rst:485 +msgid "" +"For a list of handlers included as standard, see :mod:`logging.handlers`." +msgstr "" + +#: ../Doc/library/logging.rst:490 +msgid "Formatter Objects" +msgstr "" + +#: ../Doc/library/logging.rst:494 +msgid "" +":class:`Formatter` objects have the following attributes and methods. They " +"are responsible for converting a :class:`LogRecord` to (usually) a string " +"which can be interpreted by either a human or an external system. The base :" +"class:`Formatter` allows a formatting string to be specified. If none is " +"supplied, the default value of ``'%(message)s'`` is used, which just " +"includes the message in the logging call. To have additional items of " +"information in the formatted output (such as a timestamp), keep reading." +msgstr "" + +#: ../Doc/library/logging.rst:502 +msgid "" +"A Formatter can be initialized with a format string which makes use of " +"knowledge of the :class:`LogRecord` attributes - such as the default value " +"mentioned above making use of the fact that the user's message and arguments " +"are pre-formatted into a :class:`LogRecord`'s *message* attribute. This " +"format string contains standard Python %-style mapping keys. See section :" +"ref:`old-string-formatting` for more information on string formatting." +msgstr "" + +#: ../Doc/library/logging.rst:509 +msgid "" +"The useful mapping keys in a :class:`LogRecord` are given in the section on :" +"ref:`logrecord-attributes`." +msgstr "" + +#: ../Doc/library/logging.rst:515 +msgid "" +"Returns a new instance of the :class:`Formatter` class. The instance is " +"initialized with a format string for the message as a whole, as well as a " +"format string for the date/time portion of a message. If no *fmt* is " +"specified, ``'%(message)s'`` is used. If no *datefmt* is specified, a " +"format is used which is described in the :meth:`formatTime` documentation." +msgstr "" + +#: ../Doc/library/logging.rst:521 +msgid "" +"The *style* parameter can be one of '%', '{' or '$' and determines how the " +"format string will be merged with its data: using one of %-formatting, :meth:" +"`str.format` or :class:`string.Template`. See :ref:`formatting-styles` for " +"more information on using {- and $-formatting for log messages." +msgstr "" + +#: ../Doc/library/logging.rst:526 +msgid "The *style* parameter was added." +msgstr "" + +#: ../Doc/library/logging.rst:532 +msgid "" +"The record's attribute dictionary is used as the operand to a string " +"formatting operation. Returns the resulting string. Before formatting the " +"dictionary, a couple of preparatory steps are carried out. The *message* " +"attribute of the record is computed using *msg* % *args*. If the formatting " +"string contains ``'(asctime)'``, :meth:`formatTime` is called to format the " +"event time. If there is exception information, it is formatted using :meth:" +"`formatException` and appended to the message. Note that the formatted " +"exception information is cached in attribute *exc_text*. This is useful " +"because the exception information can be pickled and sent across the wire, " +"but you should be careful if you have more than one :class:`Formatter` " +"subclass which customizes the formatting of exception information. In this " +"case, you will have to clear the cached value after a formatter has done its " +"formatting, so that the next formatter to handle the event doesn't use the " +"cached value but recalculates it afresh." +msgstr "" + +#: ../Doc/library/logging.rst:548 +msgid "" +"If stack information is available, it's appended after the exception " +"information, using :meth:`formatStack` to transform it if necessary." +msgstr "" + +#: ../Doc/library/logging.rst:554 +msgid "" +"This method should be called from :meth:`format` by a formatter which wants " +"to make use of a formatted time. This method can be overridden in formatters " +"to provide for any specific requirement, but the basic behavior is as " +"follows: if *datefmt* (a string) is specified, it is used with :func:`time." +"strftime` to format the creation time of the record. Otherwise, the format " +"'%Y-%m-%d %H:%M:%S,uuu' is used, where the uuu part is a millisecond value " +"and the other letters are as per the :func:`time.strftime` documentation. " +"An example time in this format is ``2003-01-23 00:29:50,411``. The " +"resulting string is returned." +msgstr "" + +#: ../Doc/library/logging.rst:564 +msgid "" +"This function uses a user-configurable function to convert the creation time " +"to a tuple. By default, :func:`time.localtime` is used; to change this for a " +"particular formatter instance, set the ``converter`` attribute to a function " +"with the same signature as :func:`time.localtime` or :func:`time.gmtime`. To " +"change it for all formatters, for example if you want all logging times to " +"be shown in GMT, set the ``converter`` attribute in the ``Formatter`` class." +msgstr "" + +#: ../Doc/library/logging.rst:572 +msgid "" +"Previously, the default format was hard-coded as in this example: " +"``2010-09-06 22:38:15,292`` where the part before the comma is handled by a " +"strptime format string (``'%Y-%m-%d %H:%M:%S'``), and the part after the " +"comma is a millisecond value. Because strptime does not have a format " +"placeholder for milliseconds, the millisecond value is appended using " +"another format string, ``'%s,%03d'`` --- and both of these format strings " +"have been hardcoded into this method. With the change, these strings are " +"defined as class-level attributes which can be overridden at the instance " +"level when desired. The names of the attributes are ``default_time_format`` " +"(for the strptime format string) and ``default_msec_format`` (for appending " +"the millisecond value)." +msgstr "" + +#: ../Doc/library/logging.rst:587 +msgid "" +"Formats the specified exception information (a standard exception tuple as " +"returned by :func:`sys.exc_info`) as a string. This default implementation " +"just uses :func:`traceback.print_exception`. The resulting string is " +"returned." +msgstr "" + +#: ../Doc/library/logging.rst:594 +msgid "" +"Formats the specified stack information (a string as returned by :func:" +"`traceback.print_stack`, but with the last newline removed) as a string. " +"This default implementation just returns the input value." +msgstr "" + +#: ../Doc/library/logging.rst:601 +msgid "Filter Objects" +msgstr "" + +#: ../Doc/library/logging.rst:603 +msgid "" +"``Filters`` can be used by ``Handlers`` and ``Loggers`` for more " +"sophisticated filtering than is provided by levels. The base filter class " +"only allows events which are below a certain point in the logger hierarchy. " +"For example, a filter initialized with 'A.B' will allow events logged by " +"loggers 'A.B', 'A.B.C', 'A.B.C.D', 'A.B.D' etc. but not 'A.BB', 'B.A.B' etc. " +"If initialized with the empty string, all events are passed." +msgstr "" + +#: ../Doc/library/logging.rst:613 +msgid "" +"Returns an instance of the :class:`Filter` class. If *name* is specified, it " +"names a logger which, together with its children, will have its events " +"allowed through the filter. If *name* is the empty string, allows every " +"event." +msgstr "" + +#: ../Doc/library/logging.rst:620 +msgid "" +"Is the specified record to be logged? Returns zero for no, nonzero for yes. " +"If deemed appropriate, the record may be modified in-place by this method." +msgstr "" + +#: ../Doc/library/logging.rst:624 +msgid "" +"Note that filters attached to handlers are consulted before an event is " +"emitted by the handler, whereas filters attached to loggers are consulted " +"whenever an event is logged (using :meth:`debug`, :meth:`info`, etc.), " +"before sending an event to handlers. This means that events which have been " +"generated by descendant loggers will not be filtered by a logger's filter " +"setting, unless the filter has also been applied to those descendant loggers." +msgstr "" + +#: ../Doc/library/logging.rst:631 +msgid "" +"You don't actually need to subclass ``Filter``: you can pass any instance " +"which has a ``filter`` method with the same semantics." +msgstr "" + +#: ../Doc/library/logging.rst:634 +msgid "" +"You don't need to create specialized ``Filter`` classes, or use other " +"classes with a ``filter`` method: you can use a function (or other callable) " +"as a filter. The filtering logic will check to see if the filter object has " +"a ``filter`` attribute: if it does, it's assumed to be a ``Filter`` and its :" +"meth:`~Filter.filter` method is called. Otherwise, it's assumed to be a " +"callable and called with the record as the single parameter. The returned " +"value should conform to that returned by :meth:`~Filter.filter`." +msgstr "" + +#: ../Doc/library/logging.rst:644 +msgid "" +"Although filters are used primarily to filter records based on more " +"sophisticated criteria than levels, they get to see every record which is " +"processed by the handler or logger they're attached to: this can be useful " +"if you want to do things like counting how many records were processed by a " +"particular logger or handler, or adding, changing or removing attributes in " +"the LogRecord being processed. Obviously changing the LogRecord needs to be " +"done with some care, but it does allow the injection of contextual " +"information into logs (see :ref:`filters-contextual`)." +msgstr "" + +#: ../Doc/library/logging.rst:656 +msgid "LogRecord Objects" +msgstr "" + +#: ../Doc/library/logging.rst:658 +msgid "" +":class:`LogRecord` instances are created automatically by the :class:" +"`Logger` every time something is logged, and can be created manually via :" +"func:`makeLogRecord` (for example, from a pickled event received over the " +"wire)." +msgstr "" + +#: ../Doc/library/logging.rst:666 +msgid "Contains all the information pertinent to the event being logged." +msgstr "" + +#: ../Doc/library/logging.rst:668 +msgid "" +"The primary information is passed in :attr:`msg` and :attr:`args`, which are " +"combined using ``msg % args`` to create the :attr:`message` field of the " +"record." +msgstr "" + +#: ../Doc/library/logging.rst:0 +msgid "Parameters" +msgstr "Paramètres" + +#: ../Doc/library/logging.rst:672 +msgid "" +"The name of the logger used to log the event represented by this LogRecord. " +"Note that this name will always have this value, even though it may be " +"emitted by a handler attached to a different (ancestor) logger." +msgstr "" + +#: ../Doc/library/logging.rst:676 +msgid "" +"The numeric level of the logging event (one of DEBUG, INFO etc.) Note that " +"this is converted to *two* attributes of the LogRecord: ``levelno`` for the " +"numeric value and ``levelname`` for the corresponding level name." +msgstr "" + +#: ../Doc/library/logging.rst:680 +msgid "The full pathname of the source file where the logging call was made." +msgstr "" + +#: ../Doc/library/logging.rst:682 +msgid "The line number in the source file where the logging call was made." +msgstr "" + +#: ../Doc/library/logging.rst:684 +msgid "" +"The event description message, possibly a format string with placeholders " +"for variable data." +msgstr "" + +#: ../Doc/library/logging.rst:686 +msgid "" +"Variable data to merge into the *msg* argument to obtain the event " +"description." +msgstr "" + +#: ../Doc/library/logging.rst:688 +msgid "" +"An exception tuple with the current exception information, or ``None`` if no " +"exception information is available." +msgstr "" + +#: ../Doc/library/logging.rst:690 +msgid "" +"The name of the function or method from which the logging call was invoked." +msgstr "" + +#: ../Doc/library/logging.rst:692 +msgid "" +"A text string representing stack information from the base of the stack in " +"the current thread, up to the logging call." +msgstr "" + +#: ../Doc/library/logging.rst:697 +msgid "" +"Returns the message for this :class:`LogRecord` instance after merging any " +"user-supplied arguments with the message. If the user-supplied message " +"argument to the logging call is not a string, :func:`str` is called on it to " +"convert it to a string. This allows use of user-defined classes as messages, " +"whose ``__str__`` method can return the actual format string to be used." +msgstr "" + +#: ../Doc/library/logging.rst:704 +msgid "" +"The creation of a ``LogRecord`` has been made more configurable by providing " +"a factory which is used to create the record. The factory can be set using :" +"func:`getLogRecordFactory` and :func:`setLogRecordFactory` (see this for the " +"factory's signature)." +msgstr "" + +#: ../Doc/library/logging.rst:710 +msgid "" +"This functionality can be used to inject your own values into a LogRecord at " +"creation time. You can use the following pattern::" +msgstr "" + +#: ../Doc/library/logging.rst:722 +msgid "" +"With this pattern, multiple factories could be chained, and as long as they " +"don't overwrite each other's attributes or unintentionally overwrite the " +"standard attributes listed above, there should be no surprises." +msgstr "" + +#: ../Doc/library/logging.rst:731 +msgid "LogRecord attributes" +msgstr "" + +#: ../Doc/library/logging.rst:733 +msgid "" +"The LogRecord has a number of attributes, most of which are derived from the " +"parameters to the constructor. (Note that the names do not always correspond " +"exactly between the LogRecord constructor parameters and the LogRecord " +"attributes.) These attributes can be used to merge data from the record into " +"the format string. The following table lists (in alphabetical order) the " +"attribute names, their meanings and the corresponding placeholder in a %-" +"style format string." +msgstr "" + +#: ../Doc/library/logging.rst:741 +msgid "" +"If you are using {}-formatting (:func:`str.format`), you can use ``{attrname}" +"`` as the placeholder in the format string. If you are using $-formatting (:" +"class:`string.Template`), use the form ``${attrname}``. In both cases, of " +"course, replace ``attrname`` with the actual attribute name you want to use." +msgstr "" + +#: ../Doc/library/logging.rst:747 +msgid "" +"In the case of {}-formatting, you can specify formatting flags by placing " +"them after the attribute name, separated from it with a colon. For example: " +"a placeholder of ``{msecs:03d}`` would format a millisecond value of ``4`` " +"as ``004``. Refer to the :meth:`str.format` documentation for full details " +"on the options available to you." +msgstr "" + +#: ../Doc/library/logging.rst:754 +msgid "Attribute name" +msgstr "" + +#: ../Doc/library/logging.rst:754 ../Doc/library/logging.rst:1130 +msgid "Format" +msgstr "Format" + +#: ../Doc/library/logging.rst:754 ../Doc/library/logging.rst:1130 +msgid "Description" +msgstr "Description" + +#: ../Doc/library/logging.rst:756 ../Doc/library/logging.rst:0 +msgid "args" +msgstr "" + +#: ../Doc/library/logging.rst:756 ../Doc/library/logging.rst:770 +#: ../Doc/library/logging.rst:798 ../Doc/library/logging.rst:816 +msgid "You shouldn't need to format this yourself." +msgstr "" + +#: ../Doc/library/logging.rst:756 +msgid "" +"The tuple of arguments merged into ``msg`` to produce ``message``, or a dict " +"whose values are used for the merge (when there is only one argument, and it " +"is a dictionary)." +msgstr "" + +#: ../Doc/library/logging.rst:761 +msgid "asctime" +msgstr "" + +#: ../Doc/library/logging.rst:761 +msgid "``%(asctime)s``" +msgstr "``%(asctime)s``" + +#: ../Doc/library/logging.rst:761 +msgid "" +"Human-readable time when the :class:`LogRecord` was created. By default " +"this is of the form '2003-07-08 16:49:45,896' (the numbers after the comma " +"are millisecond portion of the time)." +msgstr "" + +#: ../Doc/library/logging.rst:767 +msgid "created" +msgstr "created" + +#: ../Doc/library/logging.rst:767 +msgid "``%(created)f``" +msgstr "``%(created)f``" + +#: ../Doc/library/logging.rst:767 +msgid "" +"Time when the :class:`LogRecord` was created (as returned by :func:`time." +"time`)." +msgstr "" + +#: ../Doc/library/logging.rst:770 ../Doc/library/logging.rst:0 +msgid "exc_info" +msgstr "exc_info" + +#: ../Doc/library/logging.rst:770 +msgid "" +"Exception tuple (à la ``sys.exc_info``) or, if no exception has occurred, " +"``None``." +msgstr "" + +#: ../Doc/library/logging.rst:773 +msgid "filename" +msgstr "filename" + +#: ../Doc/library/logging.rst:773 +msgid "``%(filename)s``" +msgstr "``%(filename)s``" + +#: ../Doc/library/logging.rst:773 +msgid "Filename portion of ``pathname``." +msgstr "" + +#: ../Doc/library/logging.rst:775 +msgid "funcName" +msgstr "funcName" + +#: ../Doc/library/logging.rst:775 +msgid "``%(funcName)s``" +msgstr "``%(funcName)s``" + +#: ../Doc/library/logging.rst:775 +msgid "Name of function containing the logging call." +msgstr "" + +#: ../Doc/library/logging.rst:777 +msgid "levelname" +msgstr "levelname" + +#: ../Doc/library/logging.rst:777 +msgid "``%(levelname)s``" +msgstr "``%(levelname)s``" + +#: ../Doc/library/logging.rst:777 +msgid "" +"Text logging level for the message (``'DEBUG'``, ``'INFO'``, ``'WARNING'``, " +"``'ERROR'``, ``'CRITICAL'``)." +msgstr "" + +#: ../Doc/library/logging.rst:781 +msgid "levelno" +msgstr "" + +#: ../Doc/library/logging.rst:781 +msgid "``%(levelno)s``" +msgstr "``%(levelno)s``" + +#: ../Doc/library/logging.rst:781 +msgid "" +"Numeric logging level for the message (:const:`DEBUG`, :const:`INFO`, :const:" +"`WARNING`, :const:`ERROR`, :const:`CRITICAL`)." +msgstr "" + +#: ../Doc/library/logging.rst:786 +msgid "lineno" +msgstr "lineno" + +#: ../Doc/library/logging.rst:786 +msgid "``%(lineno)d``" +msgstr "``%(lineno)d``" + +#: ../Doc/library/logging.rst:786 +msgid "Source line number where the logging call was issued (if available)." +msgstr "" + +#: ../Doc/library/logging.rst:789 +msgid "message" +msgstr "message" + +#: ../Doc/library/logging.rst:789 +msgid "``%(message)s``" +msgstr "``%(message)s``" + +#: ../Doc/library/logging.rst:789 +msgid "" +"The logged message, computed as ``msg % args``. This is set when :meth:" +"`Formatter.format` is invoked." +msgstr "" + +#: ../Doc/library/logging.rst:793 +msgid "module" +msgstr "module" + +#: ../Doc/library/logging.rst:793 +msgid "``%(module)s``" +msgstr "``%(module)s``" + +#: ../Doc/library/logging.rst:793 +msgid "Module (name portion of ``filename``)." +msgstr "" + +#: ../Doc/library/logging.rst:795 +msgid "msecs" +msgstr "msecs" + +#: ../Doc/library/logging.rst:795 +msgid "``%(msecs)d``" +msgstr "``%(msecs)d``" + +#: ../Doc/library/logging.rst:795 +msgid "" +"Millisecond portion of the time when the :class:`LogRecord` was created." +msgstr "" + +#: ../Doc/library/logging.rst:798 ../Doc/library/logging.rst:0 +msgid "msg" +msgstr "" + +#: ../Doc/library/logging.rst:798 +msgid "" +"The format string passed in the original logging call. Merged with ``args`` " +"to produce ``message``, or an arbitrary object (see :ref:`arbitrary-object-" +"messages`)." +msgstr "" + +#: ../Doc/library/logging.rst:803 ../Doc/library/logging.rst:0 +msgid "name" +msgstr "" + +#: ../Doc/library/logging.rst:803 +msgid "``%(name)s``" +msgstr "``%(name)s``" + +#: ../Doc/library/logging.rst:803 +msgid "Name of the logger used to log the call." +msgstr "" + +#: ../Doc/library/logging.rst:805 +msgid "pathname" +msgstr "pathname" + +#: ../Doc/library/logging.rst:805 +msgid "``%(pathname)s``" +msgstr "``%(pathname)s``" + +#: ../Doc/library/logging.rst:805 +msgid "" +"Full pathname of the source file where the logging call was issued (if " +"available)." +msgstr "" + +#: ../Doc/library/logging.rst:808 +msgid "process" +msgstr "process" + +#: ../Doc/library/logging.rst:808 +msgid "``%(process)d``" +msgstr "``%(process)d``" + +#: ../Doc/library/logging.rst:808 +msgid "Process ID (if available)." +msgstr "" + +#: ../Doc/library/logging.rst:810 +msgid "processName" +msgstr "processName" + +#: ../Doc/library/logging.rst:810 +msgid "``%(processName)s``" +msgstr "``%(processName)s``" + +#: ../Doc/library/logging.rst:810 +msgid "Process name (if available)." +msgstr "" + +#: ../Doc/library/logging.rst:812 +msgid "relativeCreated" +msgstr "relativeCreated" + +#: ../Doc/library/logging.rst:812 +msgid "``%(relativeCreated)d``" +msgstr "``%(relativeCreated)d``" + +#: ../Doc/library/logging.rst:812 +msgid "" +"Time in milliseconds when the LogRecord was created, relative to the time " +"the logging module was loaded." +msgstr "" + +#: ../Doc/library/logging.rst:816 +msgid "stack_info" +msgstr "" + +#: ../Doc/library/logging.rst:816 +msgid "" +"Stack frame information (where available) from the bottom of the stack in " +"the current thread, up to and including the stack frame of the logging call " +"which resulted in the creation of this record." +msgstr "" + +#: ../Doc/library/logging.rst:822 +msgid "thread" +msgstr "" + +#: ../Doc/library/logging.rst:822 +msgid "``%(thread)d``" +msgstr "``%(thread)d``" + +#: ../Doc/library/logging.rst:822 +msgid "Thread ID (if available)." +msgstr "" + +#: ../Doc/library/logging.rst:824 +msgid "threadName" +msgstr "" + +#: ../Doc/library/logging.rst:824 +msgid "``%(threadName)s``" +msgstr "``%(threadName)s``" + +#: ../Doc/library/logging.rst:824 +msgid "Thread name (if available)." +msgstr "" + +#: ../Doc/library/logging.rst:827 +msgid "*processName* was added." +msgstr "" + +#: ../Doc/library/logging.rst:834 +msgid "LoggerAdapter Objects" +msgstr "" + +#: ../Doc/library/logging.rst:836 +msgid "" +":class:`LoggerAdapter` instances are used to conveniently pass contextual " +"information into logging calls. For a usage example, see the section on :ref:" +"`adding contextual information to your logging output `." +msgstr "" + +#: ../Doc/library/logging.rst:842 +msgid "" +"Returns an instance of :class:`LoggerAdapter` initialized with an " +"underlying :class:`Logger` instance and a dict-like object." +msgstr "" + +#: ../Doc/library/logging.rst:847 +msgid "" +"Modifies the message and/or keyword arguments passed to a logging call in " +"order to insert contextual information. This implementation takes the object " +"passed as *extra* to the constructor and adds it to *kwargs* using key " +"'extra'. The return value is a (*msg*, *kwargs*) tuple which has the " +"(possibly modified) versions of the arguments passed in." +msgstr "" + +#: ../Doc/library/logging.rst:853 +msgid "" +"In addition to the above, :class:`LoggerAdapter` supports the following " +"methods of :class:`Logger`: :meth:`~Logger.debug`, :meth:`~Logger.info`, :" +"meth:`~Logger.warning`, :meth:`~Logger.error`, :meth:`~Logger.exception`, :" +"meth:`~Logger.critical`, :meth:`~Logger.log`, :meth:`~Logger.isEnabledFor`, :" +"meth:`~Logger.getEffectiveLevel`, :meth:`~Logger.setLevel` and :meth:" +"`~Logger.hasHandlers`. These methods have the same signatures as their " +"counterparts in :class:`Logger`, so you can use the two types of instances " +"interchangeably." +msgstr "" + +#: ../Doc/library/logging.rst:862 +msgid "" +"The :meth:`~Logger.isEnabledFor`, :meth:`~Logger.getEffectiveLevel`, :meth:" +"`~Logger.setLevel` and :meth:`~Logger.hasHandlers` methods were added to :" +"class:`LoggerAdapter`. These methods delegate to the underlying logger." +msgstr "" + +#: ../Doc/library/logging.rst:869 +msgid "Thread Safety" +msgstr "" + +#: ../Doc/library/logging.rst:871 +msgid "" +"The logging module is intended to be thread-safe without any special work " +"needing to be done by its clients. It achieves this though using threading " +"locks; there is one lock to serialize access to the module's shared data, " +"and each handler also creates a lock to serialize access to its underlying I/" +"O." +msgstr "" + +#: ../Doc/library/logging.rst:876 +msgid "" +"If you are implementing asynchronous signal handlers using the :mod:`signal` " +"module, you may not be able to use logging from within such handlers. This " +"is because lock implementations in the :mod:`threading` module are not " +"always re-entrant, and so cannot be invoked from such signal handlers." +msgstr "" + +#: ../Doc/library/logging.rst:883 +msgid "Module-Level Functions" +msgstr "Fonctions de niveau module" + +#: ../Doc/library/logging.rst:885 +msgid "" +"In addition to the classes described above, there are a number of module-" +"level functions." +msgstr "" + +#: ../Doc/library/logging.rst:891 +msgid "" +"Return a logger with the specified name or, if name is ``None``, return a " +"logger which is the root logger of the hierarchy. If specified, the name is " +"typically a dot-separated hierarchical name like *'a'*, *'a.b'* or *'a.b.c." +"d'*. Choice of these names is entirely up to the developer who is using " +"logging." +msgstr "" + +#: ../Doc/library/logging.rst:896 +msgid "" +"All calls to this function with a given name return the same logger " +"instance. This means that logger instances never need to be passed between " +"different parts of an application." +msgstr "" + +#: ../Doc/library/logging.rst:903 +msgid "" +"Return either the standard :class:`Logger` class, or the last class passed " +"to :func:`setLoggerClass`. This function may be called from within a new " +"class definition, to ensure that installing a customized :class:`Logger` " +"class will not undo customizations already applied by other code. For " +"example::" +msgstr "" + +#: ../Doc/library/logging.rst:914 +msgid "Return a callable which is used to create a :class:`LogRecord`." +msgstr "" + +#: ../Doc/library/logging.rst:916 +msgid "" +"This function has been provided, along with :func:`setLogRecordFactory`, to " +"allow developers more control over how the :class:`LogRecord` representing a " +"logging event is constructed." +msgstr "" + +#: ../Doc/library/logging.rst:921 +msgid "" +"See :func:`setLogRecordFactory` for more information about the how the " +"factory is called." +msgstr "" + +#: ../Doc/library/logging.rst:926 +msgid "" +"Logs a message with level :const:`DEBUG` on the root logger. The *msg* is " +"the message format string, and the *args* are the arguments which are merged " +"into *msg* using the string formatting operator. (Note that this means that " +"you can use keywords in the format string, together with a single dictionary " +"argument.)" +msgstr "" + +#: ../Doc/library/logging.rst:931 +msgid "" +"There are three keyword arguments in *kwargs* which are inspected: " +"*exc_info* which, if it does not evaluate as false, causes exception " +"information to be added to the logging message. If an exception tuple (in " +"the format returned by :func:`sys.exc_info`) or an exception instance is " +"provided, it is used; otherwise, :func:`sys.exc_info` is called to get the " +"exception information." +msgstr "" + +#: ../Doc/library/logging.rst:957 +msgid "" +"The third optional keyword argument is *extra* which can be used to pass a " +"dictionary which is used to populate the __dict__ of the LogRecord created " +"for the logging event with user-defined attributes. These custom attributes " +"can then be used as you like. For example, they could be incorporated into " +"logged messages. For example::" +msgstr "" + +#: ../Doc/library/logging.rst:968 +msgid "would print something like:" +msgstr "" + +#: ../Doc/library/logging.rst:997 +msgid "" +"Logs a message with level :const:`INFO` on the root logger. The arguments " +"are interpreted as for :func:`debug`." +msgstr "" + +#: ../Doc/library/logging.rst:1003 +msgid "" +"Logs a message with level :const:`WARNING` on the root logger. The arguments " +"are interpreted as for :func:`debug`." +msgstr "" + +#: ../Doc/library/logging.rst:1006 +msgid "" +"There is an obsolete function ``warn`` which is functionally identical to " +"``warning``. As ``warn`` is deprecated, please do not use it - use " +"``warning`` instead." +msgstr "" + +#: ../Doc/library/logging.rst:1013 +msgid "" +"Logs a message with level :const:`ERROR` on the root logger. The arguments " +"are interpreted as for :func:`debug`." +msgstr "" + +#: ../Doc/library/logging.rst:1019 +msgid "" +"Logs a message with level :const:`CRITICAL` on the root logger. The " +"arguments are interpreted as for :func:`debug`." +msgstr "" + +#: ../Doc/library/logging.rst:1025 +msgid "" +"Logs a message with level :const:`ERROR` on the root logger. The arguments " +"are interpreted as for :func:`debug`. Exception info is added to the logging " +"message. This function should only be called from an exception handler." +msgstr "" + +#: ../Doc/library/logging.rst:1031 +msgid "" +"Logs a message with level *level* on the root logger. The other arguments " +"are interpreted as for :func:`debug`." +msgstr "" + +#: ../Doc/library/logging.rst:1034 +msgid "" +"The above module-level convenience functions, which delegate to the root " +"logger, call :func:`basicConfig` to ensure that at least one handler is " +"available. Because of this, they should *not* be used in threads, in " +"versions of Python earlier than 2.7.1 and 3.2, unless at least one handler " +"has been added to the root logger *before* the threads are started. In " +"earlier versions of Python, due to a thread safety shortcoming in :func:" +"`basicConfig`, this can (under rare circumstances) lead to handlers being " +"added multiple times to the root logger, which can in turn lead to multiple " +"messages for the same event." +msgstr "" + +#: ../Doc/library/logging.rst:1046 +msgid "" +"Provides an overriding level *lvl* for all loggers which takes precedence " +"over the logger's own level. When the need arises to temporarily throttle " +"logging output down across the whole application, this function can be " +"useful. Its effect is to disable all logging calls of severity *lvl* and " +"below, so that if you call it with a value of INFO, then all INFO and DEBUG " +"events would be discarded, whereas those of severity WARNING and above would " +"be processed according to the logger's effective level. If ``logging." +"disable(logging.NOTSET)`` is called, it effectively removes this overriding " +"level, so that logging output again depends on the effective levels of " +"individual loggers." +msgstr "" + +#: ../Doc/library/logging.rst:1057 +msgid "" +"Note that if you have defined any custom logging level higher than " +"``CRITICAL`` (this is not recommended), you won't be able to rely on the " +"default value for the *lvl* parameter, but will have to explicitly supply a " +"suitable value." +msgstr "" + +#: ../Doc/library/logging.rst:1062 +msgid "" +"The *lvl* parameter was defaulted to level ``CRITICAL``. See Issue #28524 " +"for more information about this change." +msgstr "" + +#: ../Doc/library/logging.rst:1068 +msgid "" +"Associates level *lvl* with text *levelName* in an internal dictionary, " +"which is used to map numeric levels to a textual representation, for example " +"when a :class:`Formatter` formats a message. This function can also be used " +"to define your own levels. The only constraints are that all levels used " +"must be registered using this function, levels should be positive integers " +"and they should increase in increasing order of severity." +msgstr "" + +#: ../Doc/library/logging.rst:1075 +msgid "" +"If you are thinking of defining your own levels, please see the section on :" +"ref:`custom-levels`." +msgstr "" + +#: ../Doc/library/logging.rst:1080 +msgid "" +"Returns the textual representation of logging level *lvl*. If the level is " +"one of the predefined levels :const:`CRITICAL`, :const:`ERROR`, :const:" +"`WARNING`, :const:`INFO` or :const:`DEBUG` then you get the corresponding " +"string. If you have associated levels with names using :func:`addLevelName` " +"then the name you have associated with *lvl* is returned. If a numeric value " +"corresponding to one of the defined levels is passed in, the corresponding " +"string representation is returned. Otherwise, the string 'Level %s' % lvl is " +"returned." +msgstr "" + +#: ../Doc/library/logging.rst:1088 +msgid "" +"Levels are internally integers (as they need to be compared in the logging " +"logic). This function is used to convert between an integer level and the " +"level name displayed in the formatted log output by means of the ``" +"%(levelname)s`` format specifier (see :ref:`logrecord-attributes`)." +msgstr "" + +#: ../Doc/library/logging.rst:1093 +msgid "" +"In Python versions earlier than 3.4, this function could also be passed a " +"text level, and would return the corresponding numeric value of the level. " +"This undocumented behaviour was considered a mistake, and was removed in " +"Python 3.4, but reinstated in 3.4.2 due to retain backward compatibility." +msgstr "" + +#: ../Doc/library/logging.rst:1101 +msgid "" +"Creates and returns a new :class:`LogRecord` instance whose attributes are " +"defined by *attrdict*. This function is useful for taking a pickled :class:" +"`LogRecord` attribute dictionary, sent over a socket, and reconstituting it " +"as a :class:`LogRecord` instance at the receiving end." +msgstr "" + +#: ../Doc/library/logging.rst:1109 +msgid "" +"Does basic configuration for the logging system by creating a :class:" +"`StreamHandler` with a default :class:`Formatter` and adding it to the root " +"logger. The functions :func:`debug`, :func:`info`, :func:`warning`, :func:" +"`error` and :func:`critical` will call :func:`basicConfig` automatically if " +"no handlers are defined for the root logger." +msgstr "" + +#: ../Doc/library/logging.rst:1115 +msgid "" +"This function does nothing if the root logger already has handlers " +"configured for it." +msgstr "" + +#: ../Doc/library/logging.rst:1118 +msgid "" +"This function should be called from the main thread before other threads are " +"started. In versions of Python prior to 2.7.1 and 3.2, if this function is " +"called from multiple threads, it is possible (in rare circumstances) that a " +"handler will be added to the root logger more than once, leading to " +"unexpected results such as messages being duplicated in the log." +msgstr "" + +#: ../Doc/library/logging.rst:1125 +msgid "The following keyword arguments are supported." +msgstr "" + +#: ../Doc/library/logging.rst:1132 +msgid "*filename*" +msgstr "*filename*" + +#: ../Doc/library/logging.rst:1132 +msgid "" +"Specifies that a FileHandler be created, using the specified filename, " +"rather than a StreamHandler." +msgstr "" + +#: ../Doc/library/logging.rst:1136 +msgid "*filemode*" +msgstr "*filemode*" + +#: ../Doc/library/logging.rst:1136 +msgid "" +"If *filename* is specified, open the file in this :ref:`mode `. " +"Defaults to ``'a'``." +msgstr "" + +#: ../Doc/library/logging.rst:1140 +msgid "*format*" +msgstr "*format*" + +#: ../Doc/library/logging.rst:1140 +msgid "Use the specified format string for the handler." +msgstr "" + +#: ../Doc/library/logging.rst:1143 +msgid "*datefmt*" +msgstr "*datefmt*" + +#: ../Doc/library/logging.rst:1143 +msgid "" +"Use the specified date/time format, as accepted by :func:`time.strftime`." +msgstr "" + +#: ../Doc/library/logging.rst:1146 +msgid "*style*" +msgstr "*style*" + +#: ../Doc/library/logging.rst:1146 +msgid "" +"If *format* is specified, use this style for the format string. One of " +"``'%'``, ``'{'`` or ``'$'`` for :ref:`printf-style `, :meth:`str.format` or :class:`string.Template` respectively. " +"Defaults to ``'%'``." +msgstr "" + +#: ../Doc/library/logging.rst:1154 +msgid "*level*" +msgstr "*level*" + +#: ../Doc/library/logging.rst:1154 +msgid "Set the root logger level to the specified :ref:`level `." +msgstr "" + +#: ../Doc/library/logging.rst:1157 +msgid "*stream*" +msgstr "*stream*" + +#: ../Doc/library/logging.rst:1157 +msgid "" +"Use the specified stream to initialize the StreamHandler. Note that this " +"argument is incompatible with *filename* - if both are present, a " +"``ValueError`` is raised." +msgstr "" + +#: ../Doc/library/logging.rst:1162 +msgid "*handlers*" +msgstr "*handlers*" + +#: ../Doc/library/logging.rst:1162 +msgid "" +"If specified, this should be an iterable of already created handlers to add " +"to the root logger. Any handlers which don't already have a formatter set " +"will be assigned the default formatter created in this function. Note that " +"this argument is incompatible with *filename* or *stream* - if both are " +"present, a ``ValueError`` is raised." +msgstr "" + +#: ../Doc/library/logging.rst:1172 +msgid "The *style* argument was added." +msgstr "" + +#: ../Doc/library/logging.rst:1175 +msgid "" +"The *handlers* argument was added. Additional checks were added to catch " +"situations where incompatible arguments are specified (e.g. *handlers* " +"together with *stream* or *filename*, or *stream* together with *filename*)." +msgstr "" + +#: ../Doc/library/logging.rst:1183 +msgid "" +"Informs the logging system to perform an orderly shutdown by flushing and " +"closing all handlers. This should be called at application exit and no " +"further use of the logging system should be made after this call." +msgstr "" + +#: ../Doc/library/logging.rst:1190 +msgid "" +"Tells the logging system to use the class *klass* when instantiating a " +"logger. The class should define :meth:`__init__` such that only a name " +"argument is required, and the :meth:`__init__` should call :meth:`Logger." +"__init__`. This function is typically called before any loggers are " +"instantiated by applications which need to use custom logger behavior. After " +"this call, as at any other time, do not instantiate loggers directly using " +"the subclass: continue to use the :func:`logging.getLogger` API to get your " +"loggers." +msgstr "" + +#: ../Doc/library/logging.rst:1201 +msgid "Set a callable which is used to create a :class:`LogRecord`." +msgstr "" + +#: ../Doc/library/logging.rst:1203 +msgid "The factory callable to be used to instantiate a log record." +msgstr "" + +#: ../Doc/library/logging.rst:1205 +msgid "" +"This function has been provided, along with :func:`getLogRecordFactory`, to " +"allow developers more control over how the :class:`LogRecord` representing a " +"logging event is constructed." +msgstr "" + +#: ../Doc/library/logging.rst:1210 +msgid "The factory has the following signature:" +msgstr "" + +#: ../Doc/library/logging.rst:1212 +msgid "" +"``factory(name, level, fn, lno, msg, args, exc_info, func=None, sinfo=None, " +"**kwargs)``" +msgstr "" +"``factory(name, level, fn, lno, msg, args, exc_info, func=None, sinfo=None, " +"**kwargs)``" + +#: ../Doc/library/logging.rst:1214 +msgid "The logger name." +msgstr "" + +#: ../Doc/library/logging.rst:0 +msgid "level" +msgstr "level" + +#: ../Doc/library/logging.rst:1215 +msgid "The logging level (numeric)." +msgstr "" + +#: ../Doc/library/logging.rst:0 +msgid "fn" +msgstr "fn" + +#: ../Doc/library/logging.rst:1216 +msgid "The full pathname of the file where the logging call was made." +msgstr "" + +#: ../Doc/library/logging.rst:0 +msgid "lno" +msgstr "lno" + +#: ../Doc/library/logging.rst:1217 +msgid "The line number in the file where the logging call was made." +msgstr "" + +#: ../Doc/library/logging.rst:1218 +msgid "The logging message." +msgstr "" + +#: ../Doc/library/logging.rst:1219 +msgid "The arguments for the logging message." +msgstr "" + +#: ../Doc/library/logging.rst:1220 +msgid "An exception tuple, or ``None``." +msgstr "" + +#: ../Doc/library/logging.rst:0 +msgid "func" +msgstr "func" + +#: ../Doc/library/logging.rst:1221 +msgid "The name of the function or method which invoked the logging call." +msgstr "" + +#: ../Doc/library/logging.rst:0 +msgid "sinfo" +msgstr "sinfo" + +#: ../Doc/library/logging.rst:1223 +msgid "" +"A stack traceback such as is provided by :func:`traceback.print_stack`, " +"showing the call hierarchy." +msgstr "" + +#: ../Doc/library/logging.rst:0 +msgid "kwargs" +msgstr "" + +#: ../Doc/library/logging.rst:1225 +msgid "Additional keyword arguments." +msgstr "" + +#: ../Doc/library/logging.rst:1229 +msgid "Module-Level Attributes" +msgstr "" + +#: ../Doc/library/logging.rst:1233 +msgid "" +"A \"handler of last resort\" is available through this attribute. This is a :" +"class:`StreamHandler` writing to ``sys.stderr`` with a level of ``WARNING``, " +"and is used to handle logging events in the absence of any logging " +"configuration. The end result is to just print the message to ``sys." +"stderr``. This replaces the earlier error message saying that \"no handlers " +"could be found for logger XYZ\". If you need the earlier behaviour for some " +"reason, ``lastResort`` can be set to ``None``." +msgstr "" + +#: ../Doc/library/logging.rst:1244 +msgid "Integration with the warnings module" +msgstr "" + +#: ../Doc/library/logging.rst:1246 +msgid "" +"The :func:`captureWarnings` function can be used to integrate :mod:`logging` " +"with the :mod:`warnings` module." +msgstr "" + +#: ../Doc/library/logging.rst:1251 +msgid "" +"This function is used to turn the capture of warnings by logging on and off." +msgstr "" + +#: ../Doc/library/logging.rst:1254 +msgid "" +"If *capture* is ``True``, warnings issued by the :mod:`warnings` module will " +"be redirected to the logging system. Specifically, a warning will be " +"formatted using :func:`warnings.formatwarning` and the resulting string " +"logged to a logger named ``'py.warnings'`` with a severity of :const:" +"`WARNING`." +msgstr "" + +#: ../Doc/library/logging.rst:1259 +msgid "" +"If *capture* is ``False``, the redirection of warnings to the logging system " +"will stop, and warnings will be redirected to their original destinations (i." +"e. those in effect before ``captureWarnings(True)`` was called)." +msgstr "" + +#: ../Doc/library/logging.rst:1267 +msgid "Module :mod:`logging.config`" +msgstr "Module :mod:`logging.config`" + +#: ../Doc/library/logging.rst:1267 +msgid "Configuration API for the logging module." +msgstr "API de configuration pour le module de journalisation." + +#: ../Doc/library/logging.rst:1270 +msgid "Module :mod:`logging.handlers`" +msgstr "Module :mod:`logging.handlers`" + +#: ../Doc/library/logging.rst:1270 +msgid "Useful handlers included with the logging module." +msgstr "Gestionnaires utiles inclus avec le module de journalisation." + +#: ../Doc/library/logging.rst:1274 +msgid ":pep:`282` - A Logging System" +msgstr "" + +#: ../Doc/library/logging.rst:1273 +msgid "" +"The proposal which described this feature for inclusion in the Python " +"standard library." +msgstr "" + +#: ../Doc/library/logging.rst:1279 +msgid "" +"`Original Python logging package `_" +msgstr "" + +#: ../Doc/library/logging.rst:1277 +msgid "" +"This is the original source for the :mod:`logging` package. The version of " +"the package available from this site is suitable for use with Python 1.5.2, " +"2.1.x and 2.2.x, which do not include the :mod:`logging` package in the " +"standard library." +msgstr "" + +#~ msgid "``filename``" +#~ msgstr "``filename``" + +#~ msgid "``format``" +#~ msgstr "``format``" + +#~ msgid "``level``" +#~ msgstr "``level``" diff --git a/library/lzma.po b/library/lzma.po new file mode 100644 index 000000000..d63ddd544 --- /dev/null +++ b/library/lzma.po @@ -0,0 +1,830 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"PO-Revision-Date: 2018-08-14 00:17+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.0.5\n" + +#: ../Doc/library/lzma.rst:2 +msgid ":mod:`lzma` --- Compression using the LZMA algorithm" +msgstr ":mod:`lzma` — Compression via l'algorithme LZMA" + +#: ../Doc/library/lzma.rst:12 +msgid "**Source code:** :source:`Lib/lzma.py`" +msgstr "**Code source :** :source:`Lib/lzma.py`" + +#: ../Doc/library/lzma.rst:16 +msgid "" +"This module provides classes and convenience functions for compressing and " +"decompressing data using the LZMA compression algorithm. Also included is a " +"file interface supporting the ``.xz`` and legacy ``.lzma`` file formats used " +"by the :program:`xz` utility, as well as raw compressed streams." +msgstr "" +"Ce module fournit des classes et des fonctions utiles pour compresser et " +"décompresser des données en utilisant l'algorithme de compression LZMA. Ce " +"module inclut aussi aussi une interface prenant en charge les fichiers ``." +"xz`` et son format originel ``.lzma`` utilisés par l'utilitaire :program:" +"`xz`, ainsi que les flux bruts compressés." + +#: ../Doc/library/lzma.rst:21 +msgid "" +"The interface provided by this module is very similar to that of the :mod:" +"`bz2` module. However, note that :class:`LZMAFile` is *not* thread-safe, " +"unlike :class:`bz2.BZ2File`, so if you need to use a single :class:" +"`LZMAFile` instance from multiple threads, it is necessary to protect it " +"with a lock." +msgstr "" +"L'interface disponible par ce module ressemble en de nombreux points à celle " +"du module :mod:`bz2`. Cependant, notez que la :class:`LZMAFile` n'est pas " +"*thread-safe*, comme l'est la :class:`bz2.BZ2File`. Donc, si vous souhaitez " +"utiliser une seule instance de :class:`LZMAFile` pour plusieurs fils, il " +"sera alors nécessaire de la protéger avec un verrou (*lock*)." + +#: ../Doc/library/lzma.rst:29 +msgid "" +"This exception is raised when an error occurs during compression or " +"decompression, or while initializing the compressor/decompressor state." +msgstr "" +"Cette exception est levée dès lors qu'une erreur survient pendant la " +"compression ou la décompression, ou pendant l'initialisation de l'état de la " +"compression/décompression." + +#: ../Doc/library/lzma.rst:34 +msgid "Reading and writing compressed files" +msgstr "Lire et écrire des fichiers compressés" + +#: ../Doc/library/lzma.rst:38 +msgid "" +"Open an LZMA-compressed file in binary or text mode, returning a :term:`file " +"object`." +msgstr "" + +#: ../Doc/library/lzma.rst:41 +msgid "" +"The *filename* argument can be either an actual file name (given as a :class:" +"`str`, :class:`bytes` or :term:`path-like ` object), in " +"which case the named file is opened, or it can be an existing file object to " +"read from or write to." +msgstr "" +"L'argument *nom de fichier* peut être soit le nom d'un fichier à créer " +"(donné pour :class:`str`, :class:`bytes` ou un objet :term:`path-like `), dont le fichier nommé reste ouvert, ou soit un objet fichier " +"existant à lire ou à écrire." + +#: ../Doc/library/lzma.rst:46 +msgid "" +"The *mode* argument can be any of ``\"r\"``, ``\"rb\"``, ``\"w\"``, ``\"wb" +"\"``, ``\"x\"``, ``\"xb\"``, ``\"a\"`` or ``\"ab\"`` for binary mode, or ``" +"\"rt\"``, ``\"wt\"``, ``\"xt\"``, or ``\"at\"`` for text mode. The default " +"is ``\"rb\"``." +msgstr "" +"L'argument *mode* peut être n'importe quel argument suivant : ``\"r\"``, ``" +"\"rb\"``, ``\"w\"``, ``\"wb\"``, ``\"x\"``, ``\"xb\"``, ``\"a\"`` ou ``\"ab" +"\"`` pour le mode binaire, ou ``\"rt\"``, ``\"wt\"``, ``\"xt\"``, ou ``\"at" +"\"`` pour le mode texte. La valeur par défaut est ``\"rb\"``." + +#: ../Doc/library/lzma.rst:50 ../Doc/library/lzma.rst:95 +msgid "" +"When opening a file for reading, the *format* and *filters* arguments have " +"the same meanings as for :class:`LZMADecompressor`. In this case, the " +"*check* and *preset* arguments should not be used." +msgstr "" +"Quand un fichier est ouvert pour le lire, les arguments *format* et " +"*filters* ont les mêmes significations que pour la :class:" +"`LZMADecompressor`. Par conséquent, les arguments *check* et *preset* ne " +"devront pas être sollicités." + +#: ../Doc/library/lzma.rst:54 ../Doc/library/lzma.rst:99 +msgid "" +"When opening a file for writing, the *format*, *check*, *preset* and " +"*filters* arguments have the same meanings as for :class:`LZMACompressor`." +msgstr "" +"Dès ouverture d'un fichier pour l'écriture, les arguments *format*, *check*, " +"*preset* et *filters* ont le même sens que dans la :class:`LZMACompressor`." + +#: ../Doc/library/lzma.rst:57 +msgid "" +"For binary mode, this function is equivalent to the :class:`LZMAFile` " +"constructor: ``LZMAFile(filename, mode, ...)``. In this case, the " +"*encoding*, *errors* and *newline* arguments must not be provided." +msgstr "" +"Pour le mode binaire, cette fonction équivaut au constructeur de la :class:" +"`LZMAFile` : ``LZMAFile(filename, mode, ...)``. Dans ce cas précis, les " +"arguments *encoding*, *errors* et *newline* ne sont pas accessibles." + +#: ../Doc/library/lzma.rst:61 +msgid "" +"For text mode, a :class:`LZMAFile` object is created, and wrapped in an :" +"class:`io.TextIOWrapper` instance with the specified encoding, error " +"handling behavior, and line ending(s)." +msgstr "" + +#: ../Doc/library/lzma.rst:65 +msgid "Added support for the ``\"x\"``, ``\"xb\"`` and ``\"xt\"`` modes." +msgstr "Support ajouté pour les modes ``\"x\"``, ``\"xb\"`` et ``\"xt\"``." + +#: ../Doc/library/lzma.rst:68 ../Doc/library/lzma.rst:126 +msgid "Accepts a :term:`path-like object`." +msgstr "Accepte un :term:`path-like object`." + +#: ../Doc/library/lzma.rst:74 +msgid "Open an LZMA-compressed file in binary mode." +msgstr "Ouvre un fichier LZMA compressé en mode binaire." + +#: ../Doc/library/lzma.rst:76 +msgid "" +"An :class:`LZMAFile` can wrap an already-open :term:`file object`, or " +"operate directly on a named file. The *filename* argument specifies either " +"the file object to wrap, or the name of the file to open (as a :class:" +"`str`, :class:`bytes` or :term:`path-like ` object). When " +"wrapping an existing file object, the wrapped file will not be closed when " +"the :class:`LZMAFile` is closed." +msgstr "" +"An :class:`LZMAFile` can wrap an already-open :term:`file object`, or " +"operate directly on a named file. The *filename* argument specifies either " +"the file object to wrap, or the name of the file to open (as a :class:" +"`str`, :class:`bytes` or :term:`path-like ` object). When " +"wrapping an existing file object, the wrapped file will not be closed when " +"the :class:`LZMAFile` is closed." + +#: ../Doc/library/lzma.rst:83 +msgid "" +"The *mode* argument can be either ``\"r\"`` for reading (default), ``\"w\"`` " +"for overwriting, ``\"x\"`` for exclusive creation, or ``\"a\"`` for " +"appending. These can equivalently be given as ``\"rb\"``, ``\"wb\"``, ``\"xb" +"\"`` and ``\"ab\"`` respectively." +msgstr "" +"L'argument *mode* peut être soit ``\"r\"`` pour la lecture (défaut), ``\"w" +"\"`` pour la ré-écriture, ``\"x\"`` pour la création exclusive, ou ``\"a\"`` " +"pour l'insertion. Elles peuvent aussi être écrites de la façon suivante : ``" +"\"rb\"``, ``\"wb\"``, ``\"xb\"`` et ``\"ab\"`` respectivement." + +#: ../Doc/library/lzma.rst:88 +msgid "" +"If *filename* is a file object (rather than an actual file name), a mode of " +"``\"w\"`` does not truncate the file, and is instead equivalent to ``\"a\"``." +msgstr "" + +#: ../Doc/library/lzma.rst:91 +msgid "" +"When opening a file for reading, the input file may be the concatenation of " +"multiple separate compressed streams. These are transparently decoded as a " +"single logical stream." +msgstr "" +"Dès l'ouverture d'un fichier pour être lu, le fichier d'entrée peut être le " +"résultat d'une concaténation de plusieurs flux distincts et compressés. Ceux-" +"ci sont décodés de manière transparente en un seul flux logique." + +#: ../Doc/library/lzma.rst:102 +msgid "" +":class:`LZMAFile` supports all the members specified by :class:`io." +"BufferedIOBase`, except for :meth:`detach` and :meth:`truncate`. Iteration " +"and the :keyword:`with` statement are supported." +msgstr "" + +#: ../Doc/library/lzma.rst:106 +msgid "The following method is also provided:" +msgstr "Les méthodes suivantes sont aussi disponibles :" + +#: ../Doc/library/lzma.rst:110 +msgid "" +"Return buffered data without advancing the file position. At least one byte " +"of data will be returned, unless EOF has been reached. The exact number of " +"bytes returned is unspecified (the *size* argument is ignored)." +msgstr "" +"Renvoie la donnée en mémoire-tampon sans progression de la position du " +"fichier. Au moins un octet de donnée sera renvoyé, jusqu'à ce que l'EOF soit " +"atteinte. Le nombre exact d'octets renvoyés demeure indéterminé (l'argument " +"*taille* est ignoré). " + +#: ../Doc/library/lzma.rst:114 +msgid "" +"While calling :meth:`peek` does not change the file position of the :class:" +"`LZMAFile`, it may change the position of the underlying file object (e.g. " +"if the :class:`LZMAFile` was constructed by passing a file object for " +"*filename*)." +msgstr "" + +#: ../Doc/library/lzma.rst:119 +msgid "Added support for the ``\"x\"`` and ``\"xb\"`` modes." +msgstr "" + +#: ../Doc/library/lzma.rst:122 +msgid "" +"The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " +"``None``." +msgstr "" +"La méthode :meth:`~io.BufferedIOBase.read` accepte maintenant un argument " +"``None``." + +#: ../Doc/library/lzma.rst:131 +msgid "Compressing and decompressing data in memory" +msgstr "Compresser et décompresser une donnée en mémoire" + +#: ../Doc/library/lzma.rst:135 +msgid "" +"Create a compressor object, which can be used to compress data incrementally." +msgstr "" +"Créé un objet compresseur, qui peut être utilisé pour compresser " +"incrémentalement une donnée." + +#: ../Doc/library/lzma.rst:137 +msgid "" +"For a more convenient way of compressing a single chunk of data, see :func:" +"`compress`." +msgstr "" +"Pour une façon plus adaptée de compresser un seul extrait de donnée, voir :" +"func:`compress`." + +#: ../Doc/library/lzma.rst:140 +msgid "" +"The *format* argument specifies what container format should be used. " +"Possible values are:" +msgstr "" +"L'argument *format* définit quel format de conteneur sera mis en œuvre. Les " +"valeurs possibles sont :" + +#: ../Doc/library/lzma.rst:144 +msgid ":const:`FORMAT_XZ`: The ``.xz`` container format." +msgstr ":const:`FORMAT_XZ`: Le format du conteneur ``.xz``." + +#: ../Doc/library/lzma.rst:144 +msgid "This is the default format." +msgstr "C'est le format par défaut." + +#: ../Doc/library/lzma.rst:148 +msgid ":const:`FORMAT_ALONE`: The legacy ``.lzma`` container format." +msgstr ":const:`FORMAT_ALONE`: L'ancien format du conteneur ``.lzma``." + +#: ../Doc/library/lzma.rst:147 +msgid "" +"This format is more limited than ``.xz`` -- it does not support integrity " +"checks or multiple filters." +msgstr "" +"Ce format est davantage limité que ``.xz`` --il ne supporte pas les " +"vérifications d'intégrité ou les filtres multiples." + +#: ../Doc/library/lzma.rst:154 +msgid ":const:`FORMAT_RAW`: A raw data stream, not using any container format." +msgstr "" +":const:`FORMAT_RAW`: Un flux de données brut, n'utilisant aucun format de " +"conteneur." + +#: ../Doc/library/lzma.rst:151 +msgid "" +"This format specifier does not support integrity checks, and requires that " +"you always specify a custom filter chain (for both compression and " +"decompression). Additionally, data compressed in this manner cannot be " +"decompressed using :const:`FORMAT_AUTO` (see :class:`LZMADecompressor`)." +msgstr "" +"Ce format spécifique ne prend pas en charge les vérifications d'intégrité et " +"exige systématiquement la définition d'une chaîne de filtrage personnalisée " +"(à la fois pour la compression et la décompression). Par ailleurs, les " +"données compressées par ce biais ne peuvent pas être décompressées par " +"l'usage de :const:`FORMAT_AUTO` (voir : :class:`LZMADecompressor`)." + +#: ../Doc/library/lzma.rst:156 +msgid "" +"The *check* argument specifies the type of integrity check to include in the " +"compressed data. This check is used when decompressing, to ensure that the " +"data has not been corrupted. Possible values are:" +msgstr "" +"L'argument *check* détermine le type de vérification d'intégrité à exploiter " +"avec la donnée compressée. Cette vérification est déclenchée lors de la " +"décompression, pour garantir que la donnée n'a pas été corrompue. Les " +"valeurs possibles sont :" + +#: ../Doc/library/lzma.rst:160 +msgid "" +":const:`CHECK_NONE`: No integrity check. This is the default (and the only " +"acceptable value) for :const:`FORMAT_ALONE` and :const:`FORMAT_RAW`." +msgstr "" +":const:`CHECK_NONE`: Pas de vérification d'intégrité. C'est la valeur par " +"défaut (et la seule valeur acceptable) pour :const:`FORMAT_ALONE` et :const:" +"`FORMAT_RAW`." + +#: ../Doc/library/lzma.rst:164 +msgid ":const:`CHECK_CRC32`: 32-bit Cyclic Redundancy Check." +msgstr "" +":const:`CHECK_CRC32`: Vérification par Redondance Cyclique 32-bit (*Cyclic " +"Redundancy Check*)." + +#: ../Doc/library/lzma.rst:166 +msgid "" +":const:`CHECK_CRC64`: 64-bit Cyclic Redundancy Check. This is the default " +"for :const:`FORMAT_XZ`." +msgstr "" +":const:`CHECK_CRC64`: Vérification par Redondance Cyclique 64-bit (*Cyclic " +"Redundancy Check*). Valeur par défaut pour :const:`FORMAT_XZ`." + +#: ../Doc/library/lzma.rst:169 +msgid ":const:`CHECK_SHA256`: 256-bit Secure Hash Algorithm." +msgstr "" +":const:`CHECK_SHA256`: Algorithme de Hachage Sécurisé 256-bit (*Secure Hash " +"Algorithm*)." + +#: ../Doc/library/lzma.rst:171 +msgid "" +"If the specified check is not supported, an :class:`LZMAError` is raised." +msgstr "" +"Si le type de vérification n'est pas supporté par le système, une erreur de " +"type :class:`LZMAError` est levée." + +#: ../Doc/library/lzma.rst:173 +msgid "" +"The compression settings can be specified either as a preset compression " +"level (with the *preset* argument), or in detail as a custom filter chain " +"(with the *filters* argument)." +msgstr "" +"Les réglages de compression peuvent être définis soit comme un pré-réglage " +"de niveau de compression (avec l'argument *preset*) ; soit de façon " +"détaillée comme une chaîne particulière de filtres (avec l'argument " +"*filters*)." + +#: ../Doc/library/lzma.rst:177 +msgid "" +"The *preset* argument (if provided) should be an integer between ``0`` and " +"``9`` (inclusive), optionally OR-ed with the constant :const:" +"`PRESET_EXTREME`. If neither *preset* nor *filters* are given, the default " +"behavior is to use :const:`PRESET_DEFAULT` (preset level ``6``). Higher " +"presets produce smaller output, but make the compression process slower." +msgstr "" +"L'argument *preset* (s'il est fourni) doit être un entier compris entre `0`` " +"et ``9`` (inclus), éventuellement relié à OR avec la constante :const:" +"`PRESET_EXTREME`. Si aucun *preset* ni *filters* ne ont définis, le " +"comportement par défaut consiste à utiliser la :const:`PRESET_DEFAULT` " +"(niveau par défaut : ``6``). Des pré-réglages plus élevés entraîne une " +"sortie plus petite, mais rend le processus de compression plus lent." + +#: ../Doc/library/lzma.rst:186 +msgid "" +"In addition to being more CPU-intensive, compression with higher presets " +"also requires much more memory (and produces output that needs more memory " +"to decompress). With preset ``9`` for example, the overhead for an :class:" +"`LZMACompressor` object can be as high as 800 MiB. For this reason, it is " +"generally best to stick with the default preset." +msgstr "" +"En plus d'être plus gourmande en CPU, la compression avec des préréglages " +"plus élevés nécessite beaucoup plus de mémoire (et produit des résultats qui " +"nécessitent plus de mémoire pour décompresser). Par exemple, avec le " +"préréglage ``9``, l'objet d'une :class:`LZMACompressor` peut dépasser " +"largement les 800 Mo. Pour cette raison, il est généralement préférable de " +"respecter le préréglage par défaut." + +#: ../Doc/library/lzma.rst:192 +msgid "" +"The *filters* argument (if provided) should be a filter chain specifier. " +"See :ref:`filter-chain-specs` for details." +msgstr "" +"L'argument *filters* (s'il est défini) doit être un critère de la chaîne de " +"filtrage. Voir :ref:`filter-chain-specs` pour plus de précisions." + +#: ../Doc/library/lzma.rst:197 +msgid "" +"Compress *data* (a :class:`bytes` object), returning a :class:`bytes` object " +"containing compressed data for at least part of the input. Some of *data* " +"may be buffered internally, for use in later calls to :meth:`compress` and :" +"meth:`flush`. The returned data should be concatenated with the output of " +"any previous calls to :meth:`compress`." +msgstr "" +"Une *data* compressée (un objet :class:`bytes`), renvoie un objet :class:" +"`bytes` contenant une donnée compressée pour au moins une partie de " +"l'entrée. Certaine *data* peuvent être mise en tampon, pour être utiliser " +"lors de prochains appels par :meth:`compress` et :meth:`flush`. La donnée " +"renvoyée pourra être concaténée avec la sortie d'appels précédents vers la " +"méthode :meth:`compress`." + +#: ../Doc/library/lzma.rst:205 +msgid "" +"Finish the compression process, returning a :class:`bytes` object containing " +"any data stored in the compressor's internal buffers." +msgstr "" +"Conclut l'opération de compression, en renvoyant l'objet :class:`bytes` " +"constitué de toutes les données stockées dans les tampons interne du " +"compresseur." + +#: ../Doc/library/lzma.rst:208 +msgid "The compressor cannot be used after this method has been called." +msgstr "" + +#: ../Doc/library/lzma.rst:213 +msgid "" +"Create a decompressor object, which can be used to decompress data " +"incrementally." +msgstr "" +"Créé un objet de décompression, pour décompresser de façon incrémentale une " +"donnée." + +#: ../Doc/library/lzma.rst:216 +msgid "" +"For a more convenient way of decompressing an entire compressed stream at " +"once, see :func:`decompress`." +msgstr "" +"Pour un moyen plus pratique de décompresser un flux compressé complet en une " +"seule fois, voir :func:`decompress`." + +#: ../Doc/library/lzma.rst:219 +msgid "" +"The *format* argument specifies the container format that should be used. " +"The default is :const:`FORMAT_AUTO`, which can decompress both ``.xz`` and " +"``.lzma`` files. Other possible values are :const:`FORMAT_XZ`, :const:" +"`FORMAT_ALONE`, and :const:`FORMAT_RAW`." +msgstr "" +"L'argument *format* spécifie le format du conteneur à utiliser. La valeur " +"par défaut est :const:`FORMAT_AUTO` pouvant à la fois décompresser les " +"fichiers ``.xz`` et ``.lzma``. D'autres valeurs sont possibles comme :const:" +"`FORMAT_XZ`, :const:`FORMAT_ALONE`, et :const:`FORMAT_RAW`." + +#: ../Doc/library/lzma.rst:224 +msgid "" +"The *memlimit* argument specifies a limit (in bytes) on the amount of memory " +"that the decompressor can use. When this argument is used, decompression " +"will fail with an :class:`LZMAError` if it is not possible to decompress the " +"input within the given memory limit." +msgstr "" +"L'argument *memlimit* spécifie une limite (en octets) sur la quantité de " +"mémoire que le décompresseur peut utiliser. Lorsque cet argument est " +"utilisé, la décompression échouera avec une :class:`LZMAError` s'il n'est " +"pas possible de décompresser l'entrée dans la limite mémoire disponible." + +#: ../Doc/library/lzma.rst:229 +msgid "" +"The *filters* argument specifies the filter chain that was used to create " +"the stream being decompressed. This argument is required if *format* is :" +"const:`FORMAT_RAW`, but should not be used for other formats. See :ref:" +"`filter-chain-specs` for more information about filter chains." +msgstr "" +"L'argument *filters* spécifie la chaîne de filtrage utilisée pour créer le " +"flux décompressé. Cet argument est requis si *format* est :const:" +"`FORMAT_RAW`, mais ne doit pas être utilisé pour d'autres formats. Voir :ref:" +"`filter-chain-specs` pour plus d'informations sur les chaînes de filtrage." + +#: ../Doc/library/lzma.rst:235 +msgid "" +"This class does not transparently handle inputs containing multiple " +"compressed streams, unlike :func:`decompress` and :class:`LZMAFile`. To " +"decompress a multi-stream input with :class:`LZMADecompressor`, you must " +"create a new decompressor for each stream." +msgstr "" +"Cette classe ne gère pas de manière transparente les entrées contenant " +"plusieurs flux compressés, contrairement à :func:`decompress` et :class:" +"`LZMAFile`. Pour décompresser une entrée multi-flux avec :class:" +"`LZMADecompressor`, vous devez créer un nouveau décompresseur à chaque flux." + +#: ../Doc/library/lzma.rst:242 +msgid "" +"Decompress *data* (a :term:`bytes-like object`), returning uncompressed data " +"as bytes. Some of *data* may be buffered internally, for use in later calls " +"to :meth:`decompress`. The returned data should be concatenated with the " +"output of any previous calls to :meth:`decompress`." +msgstr "" +"Décompresse *data* (un :term:`bytes-like object`), renvoyant une donnée non " +"compressée en tant que chaîne d'octets. Certaines de ces *data* peuvent être " +"mises en interne en tampon, pour un usage lors d'appels ultérieurs par la " +"méthode :meth:`decompress`. La donnée renvoyée doit être concaténée avec la " +"sortie des appels précédents à la méthode :meth:`decompress`." + +#: ../Doc/library/lzma.rst:248 +msgid "" +"If *max_length* is nonnegative, returns at most *max_length* bytes of " +"decompressed data. If this limit is reached and further output can be " +"produced, the :attr:`~.needs_input` attribute will be set to ``False``. In " +"this case, the next call to :meth:`~.decompress` may provide *data* as " +"``b''`` to obtain more of the output." +msgstr "" +"Si *max_length* est positif, renvoie au plus *max_length* octets de données " +"compressées. Si la limite est atteinte et que d'autres sorties peuvent être " +"produites, l'attribut :attr:`~.needs_input` est positionné sur ``False``. " +"Dans ce cas, lors de l'appel suivant à la méthode :meth:`~.decompress`, vous " +"pouvez fournir ``b''`` dans *data* afin d'obtenir la suite de la sortie." + +#: ../Doc/library/lzma.rst:255 +msgid "" +"If all of the input data was decompressed and returned (either because this " +"was less than *max_length* bytes, or because *max_length* was negative), " +"the :attr:`~.needs_input` attribute will be set to ``True``." +msgstr "" +"Si toutes les données entrées ont été décompressées et renvoyées (soit parce " +"qu'il y avait moins de *max_length* octets, ou parce que *max_length* était " +"négatif), l'attribut :attr:`~.needs_input` sera configuré sur ``True``." + +#: ../Doc/library/lzma.rst:260 +msgid "" +"Attempting to decompress data after the end of stream is reached raises an " +"`EOFError`. Any data found after the end of the stream is ignored and saved " +"in the :attr:`~.unused_data` attribute." +msgstr "" +"Essayer de décompresser des données après que la fin du flux soit atteinte " +"lève une erreur `EOFError`. Toute donnée trouvée après la fin du flux est " +"ignorée et sauvegardée dans l'attribut :attr:`~.unused_data`." + +#: ../Doc/library/lzma.rst:264 +msgid "Added the *max_length* parameter." +msgstr "Ajout du paramètre *max_length*." + +#: ../Doc/library/lzma.rst:269 +msgid "" +"The ID of the integrity check used by the input stream. This may be :const:" +"`CHECK_UNKNOWN` until enough of the input has been decoded to determine what " +"integrity check it uses." +msgstr "" +"L'ID de la vérification d'intégrité exploité par le flux entrant. Il s'agit " +"de :const:`CHECK_UNKNOWN` tant que ce flux a été décodé pour déterminer quel " +"type de vérification d'intégrité à été utilisé." + +#: ../Doc/library/lzma.rst:275 +msgid "``True`` if the end-of-stream marker has been reached." +msgstr "``True`` si le marqueur de fin de flux a été atteint." + +#: ../Doc/library/lzma.rst:279 +msgid "Data found after the end of the compressed stream." +msgstr "Donnée trouvée après la fin du flux compressé." + +#: ../Doc/library/lzma.rst:281 +msgid "Before the end of the stream is reached, this will be ``b\"\"``." +msgstr "Avant d'atteindre la fin du flux, ce sera ``b\"\"``." + +#: ../Doc/library/lzma.rst:285 +msgid "" +"``False`` if the :meth:`.decompress` method can provide more decompressed " +"data before requiring new uncompressed input." +msgstr "" +"``False`` si la méthode :meth:`.decompress` peut fournir plus de données " +"décompressées avant l'acquisition d'une nouvelle entrée non compressée." + +#: ../Doc/library/lzma.rst:292 +msgid "" +"Compress *data* (a :class:`bytes` object), returning the compressed data as " +"a :class:`bytes` object." +msgstr "" +"*data* compressée (un objet :class:`bytes`), renvoyant une donnée compressée " +"comme un objet :class:`bytes`." + +#: ../Doc/library/lzma.rst:295 +msgid "" +"See :class:`LZMACompressor` above for a description of the *format*, " +"*check*, *preset* and *filters* arguments." +msgstr "" +"Voir :class:`LZMACompressor` ci-dessus pour une description des arguments " +"*format*, *check*, *preset* et *filters*." + +#: ../Doc/library/lzma.rst:301 +msgid "" +"Decompress *data* (a :class:`bytes` object), returning the uncompressed data " +"as a :class:`bytes` object." +msgstr "" +"Décompresse *data* (un objet :class:`bytes` ), et retourne la donnée " +"décompressée sous la forme d'un objet :class:`bytes`." + +#: ../Doc/library/lzma.rst:304 +msgid "" +"If *data* is the concatenation of multiple distinct compressed streams, " +"decompress all of these streams, and return the concatenation of the results." +msgstr "" +"Si *data* est le résultat de la concaténation de plusieurs flux compressés " +"et distincts , il les décompresse tous, et retourne les résultats concaténés." + +#: ../Doc/library/lzma.rst:307 +msgid "" +"See :class:`LZMADecompressor` above for a description of the *format*, " +"*memlimit* and *filters* arguments." +msgstr "" +"Voir :class:`LZMADecompressor` ci-dessus pour une description des arguments " +"*format*, *memlimit* et *filters*." + +#: ../Doc/library/lzma.rst:312 +msgid "Miscellaneous" +msgstr "Divers" + +#: ../Doc/library/lzma.rst:316 +msgid "Returns true if the given integrity check is supported on this system." +msgstr "" + +#: ../Doc/library/lzma.rst:318 +msgid "" +":const:`CHECK_NONE` and :const:`CHECK_CRC32` are always supported. :const:" +"`CHECK_CRC64` and :const:`CHECK_SHA256` may be unavailable if you are using " +"a version of :program:`liblzma` that was compiled with a limited feature set." +msgstr "" +":const:`CHECK_NONE` et :const:`CHECK_CRC32` sont toujours pris en charge. :" +"const:`CHECK_CRC64` et :const:`CHECK_SHA256` peuvent être indisponibles si " +"vous utilisez une version de :program:`liblzma` compilée avec des " +"possibilités restreintes." + +#: ../Doc/library/lzma.rst:327 +msgid "Specifying custom filter chains" +msgstr "Préciser des chaînes de filtre personnalisées" + +#: ../Doc/library/lzma.rst:329 +msgid "" +"A filter chain specifier is a sequence of dictionaries, where each " +"dictionary contains the ID and options for a single filter. Each dictionary " +"must contain the key ``\"id\"``, and may contain additional keys to specify " +"filter-dependent options. Valid filter IDs are as follows:" +msgstr "" +"Une chaîne de filtres est une séquence de dictionnaires, où chaque " +"dictionnaire contient l'ID et les options pour chaque filtre. Le moindre " +"dictionnaire contient la clé ``\"id\"`` et peut aussi contenir d'autres clés " +"pour préciser chaque options relative au filtre déclaré. Les ID valides des " +"filtres sont définies comme suit :" + +#: ../Doc/library/lzma.rst:336 +msgid "Compression filters:" +msgstr "Filtres de compression:" + +#: ../Doc/library/lzma.rst:335 +msgid ":const:`FILTER_LZMA1` (for use with :const:`FORMAT_ALONE`)" +msgstr ":const:`FILTER_LZMA1` (à utiliser avec :const:`FORMAT_ALONE`)" + +#: ../Doc/library/lzma.rst:336 +msgid "" +":const:`FILTER_LZMA2` (for use with :const:`FORMAT_XZ` and :const:" +"`FORMAT_RAW`)" +msgstr "" +":const:`FILTER_LZMA2` (à utiliser avec :const:`FORMAT_XZ` et :const:" +"`FORMAT_RAW`)" + +#: ../Doc/library/lzma.rst:339 +msgid "Delta filter:" +msgstr "Filtre Delta:" + +#: ../Doc/library/lzma.rst:339 +msgid ":const:`FILTER_DELTA`" +msgstr ":const:`FILTER_DELTA`" + +#: ../Doc/library/lzma.rst:347 +msgid "Branch-Call-Jump (BCJ) filters:" +msgstr "Filtres Branch-Call-Jump (BCJ):" + +#: ../Doc/library/lzma.rst:342 +msgid ":const:`FILTER_X86`" +msgstr ":const:`FILTER_X86`" + +#: ../Doc/library/lzma.rst:343 +msgid ":const:`FILTER_IA64`" +msgstr ":const:`FILTER_IA64`" + +#: ../Doc/library/lzma.rst:344 +msgid ":const:`FILTER_ARM`" +msgstr ":const:`FILTER_ARM`" + +#: ../Doc/library/lzma.rst:345 +msgid ":const:`FILTER_ARMTHUMB`" +msgstr ":const:`FILTER_ARMTHUMB`" + +#: ../Doc/library/lzma.rst:346 +msgid ":const:`FILTER_POWERPC`" +msgstr ":const:`FILTER_POWERPC`" + +#: ../Doc/library/lzma.rst:347 +msgid ":const:`FILTER_SPARC`" +msgstr ":const:`FILTER_SPARC`" + +#: ../Doc/library/lzma.rst:349 +msgid "" +"A filter chain can consist of up to 4 filters, and cannot be empty. The last " +"filter in the chain must be a compression filter, and any other filters must " +"be delta or BCJ filters." +msgstr "" +"Une chaîne de filtres peut contenir jusqu'à 4 filtres, et ne peut pas être " +"vide. Le dernier filtre de cette chaîne devra être un filtre de compression, " +"et tous les autres doivent être des filtres delta ou BCJ." + +#: ../Doc/library/lzma.rst:353 +msgid "" +"Compression filters support the following options (specified as additional " +"entries in the dictionary representing the filter):" +msgstr "" +"Les filtres de compression contiennent les options suivantes (définies comme " +"entrées additionnelles dans le dictionnaire qui représente le filtre) :" + +#: ../Doc/library/lzma.rst:356 +msgid "" +"``preset``: A compression preset to use as a source of default values for " +"options that are not specified explicitly." +msgstr "" +"``preset``: Un pré-réglage à exploiter comme une source de valeurs par " +"défaut pour les options qui ne sont pas explicitement définies." + +#: ../Doc/library/lzma.rst:358 +msgid "" +"``dict_size``: Dictionary size in bytes. This should be between 4 KiB and " +"1.5 GiB (inclusive)." +msgstr "" +"``dict_size``: La taille du dictionnaire en octets. Comprise entre 4 Ko et " +"1.5 Go (inclus)." + +#: ../Doc/library/lzma.rst:360 +msgid "``lc``: Number of literal context bits." +msgstr "``lc``: Nombre de bits dans le contexte littéral." + +#: ../Doc/library/lzma.rst:361 +msgid "" +"``lp``: Number of literal position bits. The sum ``lc + lp`` must be at most " +"4." +msgstr "" +"``lp``: Nombre de bits dans la position littérale. La somme ``lc + lp`` " +"devra être au moins 4." + +#: ../Doc/library/lzma.rst:363 +msgid "``pb``: Number of position bits; must be at most 4." +msgstr "``pb``: Nombre de bits à cette position ; au moins 4." + +#: ../Doc/library/lzma.rst:364 +msgid "``mode``: :const:`MODE_FAST` or :const:`MODE_NORMAL`." +msgstr "``mode``: :const:`MODE_FAST` ou :const:`MODE_NORMAL`." + +#: ../Doc/library/lzma.rst:365 +msgid "" +"``nice_len``: What should be considered a \"nice length\" for a match. This " +"should be 273 or less." +msgstr "" +"``nice_len``: Ce qui devra être pris en compte comme \"longueur appréciable" +"\" pour une recherche. Il devra être 273 ou moins." + +#: ../Doc/library/lzma.rst:367 +msgid "" +"``mf``: What match finder to use -- :const:`MF_HC3`, :const:`MF_HC4`, :const:" +"`MF_BT2`, :const:`MF_BT3`, or :const:`MF_BT4`." +msgstr "" +"``mf``: Quel type d'index de recherche à utiliser -- :const:`MF_HC3`, :const:" +"`MF_HC4`, :const:`MF_BT2`, :const:`MF_BT3`, ou :const:`MF_BT4`." + +#: ../Doc/library/lzma.rst:369 +msgid "" +"``depth``: Maximum search depth used by match finder. 0 (default) means to " +"select automatically based on other filter options." +msgstr "" +"``depth``: Profondeur maximum de la recherche, utilisée par l'index de " +"recherche. 0 (défaut) signifie une sélection automatique basée sur des " +"options de filtres différents." + +#: ../Doc/library/lzma.rst:372 +msgid "" +"The delta filter stores the differences between bytes, producing more " +"repetitive input for the compressor in certain circumstances. It supports " +"one option, ``dist``. This indicates the distance between bytes to be " +"subtracted. The default is 1, i.e. take the differences between adjacent " +"bytes." +msgstr "" +"Le filtre delta stocke les différences entre octets, induisant davantage " +"d'entrées répétitives pour le compresseur, selon les circonstances. Il " +"support une option, ``dist``. Ce paramètre définit la distance entre les " +"octets à soustraire. Par défaut : 1, soit la différence entre des octets " +"adjacents." + +#: ../Doc/library/lzma.rst:377 +msgid "" +"The BCJ filters are intended to be applied to machine code. They convert " +"relative branches, calls and jumps in the code to use absolute addressing, " +"with the aim of increasing the redundancy that can be exploited by the " +"compressor. These filters support one option, ``start_offset``. This " +"specifies the address that should be mapped to the beginning of the input " +"data. The default is 0." +msgstr "" +"Les filtres BCJ sont conçus pour être appliqués sur du langage machine. Ils " +"convertissent les branches relatives, les appels et les sauts dans le code à " +"des fins d'adressage strict, dans le but d'augmenter la redondance mise en " +"jeu par le compresseur. Ils ne supportent qu'une seule option : " +"``start_offset``, pour définir l'adresse où sera déclenché le début de la " +"donnée d'entrée. Par défaut : 0." + +#: ../Doc/library/lzma.rst:385 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/lzma.rst:387 +msgid "Reading in a compressed file::" +msgstr "Lire un fichier compressé::" + +#: ../Doc/library/lzma.rst:393 +msgid "Creating a compressed file::" +msgstr "Créer un fichier compressé::" + +#: ../Doc/library/lzma.rst:400 +msgid "Compressing data in memory::" +msgstr "Compresser des données en mémoire ::" + +#: ../Doc/library/lzma.rst:406 +msgid "Incremental compression::" +msgstr "Compression incrémentale ::" + +#: ../Doc/library/lzma.rst:417 +msgid "Writing compressed data to an already-open file::" +msgstr "Écrire des données compressées dans un fichier préalablement ouvert ::" + +#: ../Doc/library/lzma.rst:426 +msgid "Creating a compressed file using a custom filter chain::" +msgstr "" +"Créer un fichier compressé en utilisant une chaîne de filtre personnalisée ::" diff --git a/library/macpath.po b/library/macpath.po new file mode 100644 index 000000000..e93b4c7e3 --- /dev/null +++ b/library/macpath.po @@ -0,0 +1,46 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2017-11-08 00:19+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/macpath.rst:2 +msgid ":mod:`macpath` --- Mac OS 9 path manipulation functions" +msgstr ":mod:`macpath` — Fonctions de manipulation de chemins pour Mac OS 9" + +#: ../Doc/library/macpath.rst:7 +msgid "**Source code:** :source:`Lib/macpath.py`" +msgstr "**Code source:** :source:`Lib/macpath.py`" + +#: ../Doc/library/macpath.rst:13 +msgid "" +"This module is the Mac OS 9 (and earlier) implementation of the :mod:`os." +"path` module. It can be used to manipulate old-style Macintosh pathnames on " +"Mac OS X (or any other platform)." +msgstr "" +"Ce module est une implémentation du module :mod:`os.path` pour Mac OS 9 (ou " +"plus ancien). Il peut être utilisé pour manipuler des chemins dans l'ancien " +"style Macintosh sur Mac OS X (ou n'importe quelle autre plateforme)." + +#: ../Doc/library/macpath.rst:17 +msgid "" +"The following functions are available in this module: :func:`normcase`, :" +"func:`normpath`, :func:`isabs`, :func:`join`, :func:`split`, :func:`isdir`, :" +"func:`isfile`, :func:`walk`, :func:`exists`. For other functions available " +"in :mod:`os.path` dummy counterparts are available." +msgstr "" +"Les fonctions suivantes sont disponibles dans ce module : :func:`normcase`, :" +"func:`normpath`, :func:`isabs`, :func:`join`, :func:`split`, :func:`isdir`, :" +"func:`isfile`, :func:`walk`, :func:`exists`. Toutes les autres fonctions d':" +"mod:`os.path` sont aussi disponibles, mais vides, pour garder la " +"compatibilité." diff --git a/library/mailbox.po b/library/mailbox.po new file mode 100644 index 000000000..6eda96c21 --- /dev/null +++ b/library/mailbox.po @@ -0,0 +1,1919 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2019-02-26 15:35+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/mailbox.rst:2 +msgid ":mod:`mailbox` --- Manipulate mailboxes in various formats" +msgstr "" +":mod:`mailbox` — Manipuler les boîtes de courriels dans différents formats" + +#: ../Doc/library/mailbox.rst:10 +msgid "**Source code:** :source:`Lib/mailbox.py`" +msgstr "**Code source :** :source:`Lib/mailbox.py`" + +#: ../Doc/library/mailbox.rst:14 +msgid "" +"This module defines two classes, :class:`Mailbox` and :class:`Message`, for " +"accessing and manipulating on-disk mailboxes and the messages they contain. :" +"class:`Mailbox` offers a dictionary-like mapping from keys to messages. :" +"class:`Message` extends the :mod:`email.message` module's :class:`~email." +"message.Message` class with format-specific state and behavior. Supported " +"mailbox formats are Maildir, mbox, MH, Babyl, and MMDF." +msgstr "" +"Ce module définit deux classes, :class:`Mailbox` et :class:`Message`, pour " +"accéder et manipuler les boîtes de courriel sur le disque et les messages " +"qu'elles contiennent. :class:`Mailbox` offre une interface ressemblant aux " +"dictionnaires avec des clés et des messages. La classe :class:`Message` " +"étend le module :mod:`email.message` de la classe :class:`~email.message." +"Message` avec un état et un comportement spécifiques à son format. Les " +"formats de boîtes de courriel gérés sont *Maildir*, *mbox*, *MH*, *Babyl* et " +"*MMDF*." + +#: ../Doc/library/mailbox.rst:24 +msgid "Module :mod:`email`" +msgstr "Module :mod:`email`" + +#: ../Doc/library/mailbox.rst:25 +msgid "Represent and manipulate messages." +msgstr "Représente et manipule des messages." + +#: ../Doc/library/mailbox.rst:31 +msgid ":class:`Mailbox` objects" +msgstr "Objets :class:`Mailbox`" + +#: ../Doc/library/mailbox.rst:35 +msgid "A mailbox, which may be inspected and modified." +msgstr "Une boîte mail, qui peut être inspectée et modifiée." + +#: ../Doc/library/mailbox.rst:37 +msgid "" +"The :class:`Mailbox` class defines an interface and is not intended to be " +"instantiated. Instead, format-specific subclasses should inherit from :" +"class:`Mailbox` and your code should instantiate a particular subclass." +msgstr "" +"La classe :class:`Mailbox` définit une interface et n'est pas destinée à " +"être instanciée. Les sous-classes de format spécifique doivent plutôt " +"hériter de :class:`Mailbox` et votre code doit instancier une sous-classe " +"particulière." + +#: ../Doc/library/mailbox.rst:41 +msgid "" +"The :class:`Mailbox` interface is dictionary-like, with small keys " +"corresponding to messages. Keys are issued by the :class:`Mailbox` instance " +"with which they will be used and are only meaningful to that :class:" +"`Mailbox` instance. A key continues to identify a message even if the " +"corresponding message is modified, such as by replacing it with another " +"message." +msgstr "" +"L'interface :class:`Mailbox` est un compatible avec celle des dictionnaires, " +"avec de courtes clés correspondant aux messages. Les clés sont générées par " +"l'instance :class:`Mailbox` avec laquelle elles sont utilisées et n'ont de " +"sens que pour cette instance :class:`Mailbox`. Une clé continue d'identifier " +"un message même si le message correspondant est modifié ou remplacé par un " +"autre message." + +#: ../Doc/library/mailbox.rst:47 +msgid "" +"Messages may be added to a :class:`Mailbox` instance using the set-like " +"method :meth:`add` and removed using a ``del`` statement or the set-like " +"methods :meth:`remove` and :meth:`discard`." +msgstr "" +"Les messages peuvent être ajoutés à une instance :class:`Mailbox` en " +"utilisant la méthode :meth:`add` (comme pour les ensembles), et supprimés en " +"utilisant soit l'instruction ``del`` soit les méthodes :meth:`remove` et :" +"meth:`discard` (comme pour les ensembles)." + +#: ../Doc/library/mailbox.rst:51 +msgid "" +":class:`Mailbox` interface semantics differ from dictionary semantics in " +"some noteworthy ways. Each time a message is requested, a new representation " +"(typically a :class:`Message` instance) is generated based upon the current " +"state of the mailbox. Similarly, when a message is added to a :class:" +"`Mailbox` instance, the provided message representation's contents are " +"copied. In neither case is a reference to the message representation kept by " +"the :class:`Mailbox` instance." +msgstr "" +"La sémantique de l'interface :class:`Mailbox` diffère de la sémantique des " +"dictionnaires sur plusieurs aspects. À chaque fois qu'un message est " +"demandé, une nouvelle représentation (généralement une instance :class:" +"`Message`) est générée en se basant sur l'état actuel de la boîte mail. De " +"la même manière, lorsqu'un message est ajouté à l'instance :class:`Mailbox`, " +"le contenu de la représentation du message donné est copié. En aucun cas une " +"référence vers la représentation du message n'est gardée par l'instance :" +"class:`Mailbox`." + +#: ../Doc/library/mailbox.rst:59 +msgid "" +"The default :class:`Mailbox` iterator iterates over message representations, " +"not keys as the default dictionary iterator does. Moreover, modification of " +"a mailbox during iteration is safe and well-defined. Messages added to the " +"mailbox after an iterator is created will not be seen by the iterator. " +"Messages removed from the mailbox before the iterator yields them will be " +"silently skipped, though using a key from an iterator may result in a :exc:" +"`KeyError` exception if the corresponding message is subsequently removed." +msgstr "" +"L'itérateur par défaut de :class:`Mailbox` itère sur les représentations des " +"messages et pas sur les clés (comme le fait par défaut l'itérateur des " +"dictionnaires). De plus, les modifications sur une boîte mail durant " +"l'itération sont sûres et clairement définies. Les messages ajoutés à la " +"boîte mail après la création d'un itérateur ne sont pas vus par l'itérateur. " +"Les messages supprimés de la boîte mail avant que l'itérateur les traite " +"seront ignorés silencieusement. Toutefois, utiliser une clé depuis un " +"itérateur peut aboutir à une exception :exc:`KeyError` si le message " +"correspondant est supprimé par la suite." + +#: ../Doc/library/mailbox.rst:70 +msgid "" +"Be very cautious when modifying mailboxes that might be simultaneously " +"changed by some other process. The safest mailbox format to use for such " +"tasks is Maildir; try to avoid using single-file formats such as mbox for " +"concurrent writing. If you're modifying a mailbox, you *must* lock it by " +"calling the :meth:`lock` and :meth:`unlock` methods *before* reading any " +"messages in the file or making any changes by adding or deleting a message. " +"Failing to lock the mailbox runs the risk of losing messages or corrupting " +"the entire mailbox." +msgstr "" +"Soyez très prudent lorsque vous éditez des boîtes mail qui peuvent être " +"modifiées par d'autres processus. Le format de boîte mail le plus sûr à " +"utiliser pour ces tâches est *Maildir*, essayez d'éviter les formats à " +"fichier unique tels que *mbox* afin d'empêcher les écritures concurrentes. " +"Si vous modifiez une boîte mail, vous *devez* la verrouiller en appelant les " +"méthodes :meth:`lock` et :meth:`unlock` *avant* de lire les messages dans le " +"fichier ou d'y appliquer des changements en y ajoutant ou supprimant des " +"messages. Ne pas verrouiller la boîte mail vous fait prendre le risque de " +"perdre des messages ou de corrompre la boîte mail entière." + +#: ../Doc/library/mailbox.rst:79 +msgid ":class:`Mailbox` instances have the following methods:" +msgstr "Les instances :class:`Mailbox` contiennent les méthodes suivantes :" + +#: ../Doc/library/mailbox.rst:84 +msgid "" +"Add *message* to the mailbox and return the key that has been assigned to it." +msgstr "" +"Ajoute *message* à la boîte mail et renvoie la clé qui lui a été assigné." + +#: ../Doc/library/mailbox.rst:87 +msgid "" +"Parameter *message* may be a :class:`Message` instance, an :class:`email." +"message.Message` instance, a string, a byte string, or a file-like object " +"(which should be open in binary mode). If *message* is an instance of the " +"appropriate format-specific :class:`Message` subclass (e.g., if it's an :" +"class:`mboxMessage` instance and this is an :class:`mbox` instance), its " +"format-specific information is used. Otherwise, reasonable defaults for " +"format-specific information are used." +msgstr "" +"Le paramètre *message* peut être une instance :class:`Message`, une " +"instance :class:`email.message.Message`, une chaîne de caractères, une " +"séquence d'octets ou un objet fichier-compatible (qui doit être ouvert en " +"mode binaire). Si *message* est une instance de la sous-classe :class:" +"`Message` au format correspondant (par exemple s'il s'agit d'une instance :" +"class:`mboxMessage` et d'une instance :class:`mbox`), les informations " +"spécifiques à son format sont utilisées. Sinon, des valeurs par défaut " +"raisonnables pour son format sont utilisées." + +#: ../Doc/library/mailbox.rst:96 +msgid "Support for binary input was added." +msgstr "Ajout de la gestion des messages binaires." + +#: ../Doc/library/mailbox.rst:104 +msgid "Delete the message corresponding to *key* from the mailbox." +msgstr "Supprime le message correspondant à *key* dans la boîte mail." + +#: ../Doc/library/mailbox.rst:106 +msgid "" +"If no such message exists, a :exc:`KeyError` exception is raised if the " +"method was called as :meth:`remove` or :meth:`__delitem__` but no exception " +"is raised if the method was called as :meth:`discard`. The behavior of :meth:" +"`discard` may be preferred if the underlying mailbox format supports " +"concurrent modification by other processes." +msgstr "" +"Si ce message n'existe pas, une exception :exc:`KeyError` est levée si la " +"méthode a été appelée en tant que :meth:`remove` ou :meth:`__delitem__` mais " +"aucune exception n'est levée si la méthode a été appelée en tant que :meth:" +"`discard`. Vous préférerez sûrement le comportement de :meth:`discard` si le " +"format de boîte mail sous-jacent accepte la modification concurrente par les " +"autres processus." + +#: ../Doc/library/mailbox.rst:115 +msgid "" +"Replace the message corresponding to *key* with *message*. Raise a :exc:" +"`KeyError` exception if no message already corresponds to *key*." +msgstr "" +"Remplace le message correspondant à *key* par *message*. Lève une exception :" +"exc:`KeyError` s'il n'y a pas déjà de message correspondant à *key*." + +#: ../Doc/library/mailbox.rst:118 +msgid "" +"As with :meth:`add`, parameter *message* may be a :class:`Message` instance, " +"an :class:`email.message.Message` instance, a string, a byte string, or a " +"file-like object (which should be open in binary mode). If *message* is an " +"instance of the appropriate format-specific :class:`Message` subclass (e.g., " +"if it's an :class:`mboxMessage` instance and this is an :class:`mbox` " +"instance), its format-specific information is used. Otherwise, the format-" +"specific information of the message that currently corresponds to *key* is " +"left unchanged." +msgstr "" +"Comme pour :meth:`add`, le paramètre *message* peut être une instance :class:" +"`Message`, une instance :class:`email.message.Message`, une chaîne de " +"caractères, une chaîne d'octets ou un objet fichier-compatible (qui doit " +"être ouvert en mode binaire). Si *message* est une instance de la sous-" +"classe :class:`Message` au format correspondant (par exemple s'il s'agit " +"d'une instance :class:`mboxMessage` et d'une instance :class:`mbox`), les " +"informations spécifiques à son format sont utilisées. Sinon, les " +"informations spécifiques au format du message qui correspond à *key* ne sont " +"modifiées." + +#: ../Doc/library/mailbox.rst:132 +msgid "" +"Return an iterator over all keys if called as :meth:`iterkeys` or return a " +"list of keys if called as :meth:`keys`." +msgstr "" +"Renvoie un itérateur sur toutes les clés s'il est appelé en tant que :meth:" +"`iterkeys` ou renvoie une liste de clés s'il est appelé en tant que :meth:" +"`keys`." + +#: ../Doc/library/mailbox.rst:140 +msgid "" +"Return an iterator over representations of all messages if called as :meth:" +"`itervalues` or :meth:`__iter__` or return a list of such representations if " +"called as :meth:`values`. The messages are represented as instances of the " +"appropriate format-specific :class:`Message` subclass unless a custom " +"message factory was specified when the :class:`Mailbox` instance was " +"initialized." +msgstr "" +"Renvoie un itérateur sur les représentations de tous les messages s'il est " +"appelé en tant que :meth:`itervalues` ou :meth:`__iter__` et renvoie une " +"liste de ces représentations s'il est appelé en tant que :meth:`values`. Les " +"messages sont représentés en tant qu'instances de la sous-classe :class:" +"`Message` au format correspondant à moins qu'une fabrique de messages " +"personnalisée soit spécifiée lorsque l'instance :class:`Mailbox` a été " +"initialisée." + +#: ../Doc/library/mailbox.rst:149 +msgid "" +"The behavior of :meth:`__iter__` is unlike that of dictionaries, which " +"iterate over keys." +msgstr "" +"Le comportement de :meth:`__iter__` diffère de celui d'un dictionnaire, pour " +"lequel l'itération se fait sur ses clés." + +#: ../Doc/library/mailbox.rst:156 +msgid "" +"Return an iterator over (*key*, *message*) pairs, where *key* is a key and " +"*message* is a message representation, if called as :meth:`iteritems` or " +"return a list of such pairs if called as :meth:`items`. The messages are " +"represented as instances of the appropriate format-specific :class:`Message` " +"subclass unless a custom message factory was specified when the :class:" +"`Mailbox` instance was initialized." +msgstr "" +"Renvoie un itérateur sur les paires (*key*, *message*), où *key* est une clé " +"et *message* est la représentation d'un message, si appelée en tant que :" +"meth:`iteritems` ; ou renvoie une liste de paires semblables si appelée en " +"tant que :meth:`items`. Les messages sont représentés comme instances au " +"format approprié et spécifique d'une sous-classe de :class:`Message` à moins " +"qu'une moulinette personnalisée de message ait été spécifiée lors de " +"l'initialisation de l'instance :class:`Mailbox`." + +#: ../Doc/library/mailbox.rst:167 +msgid "" +"Return a representation of the message corresponding to *key*. If no such " +"message exists, *default* is returned if the method was called as :meth:" +"`get` and a :exc:`KeyError` exception is raised if the method was called as :" +"meth:`__getitem__`. The message is represented as an instance of the " +"appropriate format-specific :class:`Message` subclass unless a custom " +"message factory was specified when the :class:`Mailbox` instance was " +"initialized." +msgstr "" + +#: ../Doc/library/mailbox.rst:178 +msgid "" +"Return a representation of the message corresponding to *key* as an instance " +"of the appropriate format-specific :class:`Message` subclass, or raise a :" +"exc:`KeyError` exception if no such message exists." +msgstr "" + +#: ../Doc/library/mailbox.rst:185 +msgid "" +"Return a byte representation of the message corresponding to *key*, or raise " +"a :exc:`KeyError` exception if no such message exists." +msgstr "" + +#: ../Doc/library/mailbox.rst:193 +msgid "" +"Return a string representation of the message corresponding to *key*, or " +"raise a :exc:`KeyError` exception if no such message exists. The message is " +"processed through :class:`email.message.Message` to convert it to a 7bit " +"clean representation." +msgstr "" + +#: ../Doc/library/mailbox.rst:201 +msgid "" +"Return a file-like representation of the message corresponding to *key*, or " +"raise a :exc:`KeyError` exception if no such message exists. The file-like " +"object behaves as if open in binary mode. This file should be closed once " +"it is no longer needed." +msgstr "" + +#: ../Doc/library/mailbox.rst:206 +msgid "" +"The file object really is a binary file; previously it was incorrectly " +"returned in text mode. Also, the file-like object now supports the context " +"management protocol: you can use a :keyword:`with` statement to " +"automatically close it." +msgstr "" + +#: ../Doc/library/mailbox.rst:214 +msgid "" +"Unlike other representations of messages, file-like representations are not " +"necessarily independent of the :class:`Mailbox` instance that created them " +"or of the underlying mailbox. More specific documentation is provided by " +"each subclass." +msgstr "" + +#: ../Doc/library/mailbox.rst:222 +msgid "Return ``True`` if *key* corresponds to a message, ``False`` otherwise." +msgstr "" + +#: ../Doc/library/mailbox.rst:227 +msgid "Return a count of messages in the mailbox." +msgstr "" + +#: ../Doc/library/mailbox.rst:232 +msgid "Delete all messages from the mailbox." +msgstr "Supprime tous les messages de la boîte de courriel." + +#: ../Doc/library/mailbox.rst:237 +msgid "" +"Return a representation of the message corresponding to *key* and delete the " +"message. If no such message exists, return *default*. The message is " +"represented as an instance of the appropriate format-specific :class:" +"`Message` subclass unless a custom message factory was specified when the :" +"class:`Mailbox` instance was initialized." +msgstr "" + +#: ../Doc/library/mailbox.rst:246 +msgid "" +"Return an arbitrary (*key*, *message*) pair, where *key* is a key and " +"*message* is a message representation, and delete the corresponding message. " +"If the mailbox is empty, raise a :exc:`KeyError` exception. The message is " +"represented as an instance of the appropriate format-specific :class:" +"`Message` subclass unless a custom message factory was specified when the :" +"class:`Mailbox` instance was initialized." +msgstr "" + +#: ../Doc/library/mailbox.rst:256 +msgid "" +"Parameter *arg* should be a *key*-to-*message* mapping or an iterable of " +"(*key*, *message*) pairs. Updates the mailbox so that, for each given *key* " +"and *message*, the message corresponding to *key* is set to *message* as if " +"by using :meth:`__setitem__`. As with :meth:`__setitem__`, each *key* must " +"already correspond to a message in the mailbox or else a :exc:`KeyError` " +"exception will be raised, so in general it is incorrect for *arg* to be a :" +"class:`Mailbox` instance." +msgstr "" + +#: ../Doc/library/mailbox.rst:266 +msgid "Unlike with dictionaries, keyword arguments are not supported." +msgstr "" + +#: ../Doc/library/mailbox.rst:271 +msgid "" +"Write any pending changes to the filesystem. For some :class:`Mailbox` " +"subclasses, changes are always written immediately and :meth:`flush` does " +"nothing, but you should still make a habit of calling this method." +msgstr "" + +#: ../Doc/library/mailbox.rst:278 +msgid "" +"Acquire an exclusive advisory lock on the mailbox so that other processes " +"know not to modify it. An :exc:`ExternalClashError` is raised if the lock is " +"not available. The particular locking mechanisms used depend upon the " +"mailbox format. You should *always* lock the mailbox before making any " +"modifications to its contents." +msgstr "" + +#: ../Doc/library/mailbox.rst:287 +msgid "Release the lock on the mailbox, if any." +msgstr "" + +#: ../Doc/library/mailbox.rst:292 +msgid "" +"Flush the mailbox, unlock it if necessary, and close any open files. For " +"some :class:`Mailbox` subclasses, this method does nothing." +msgstr "" + +#: ../Doc/library/mailbox.rst:299 +msgid ":class:`Maildir`" +msgstr "" + +#: ../Doc/library/mailbox.rst:304 +msgid "" +"A subclass of :class:`Mailbox` for mailboxes in Maildir format. Parameter " +"*factory* is a callable object that accepts a file-like message " +"representation (which behaves as if opened in binary mode) and returns a " +"custom representation. If *factory* is ``None``, :class:`MaildirMessage` is " +"used as the default message representation. If *create* is ``True``, the " +"mailbox is created if it does not exist." +msgstr "" + +#: ../Doc/library/mailbox.rst:311 +msgid "" +"It is for historical reasons that *dirname* is named as such rather than " +"*path*." +msgstr "" + +#: ../Doc/library/mailbox.rst:313 +msgid "" +"Maildir is a directory-based mailbox format invented for the qmail mail " +"transfer agent and now widely supported by other programs. Messages in a " +"Maildir mailbox are stored in separate files within a common directory " +"structure. This design allows Maildir mailboxes to be accessed and modified " +"by multiple unrelated programs without data corruption, so file locking is " +"unnecessary." +msgstr "" + +#: ../Doc/library/mailbox.rst:320 +msgid "" +"Maildir mailboxes contain three subdirectories, namely: :file:`tmp`, :file:" +"`new`, and :file:`cur`. Messages are created momentarily in the :file:`tmp` " +"subdirectory and then moved to the :file:`new` subdirectory to finalize " +"delivery. A mail user agent may subsequently move the message to the :file:" +"`cur` subdirectory and store information about the state of the message in a " +"special \"info\" section appended to its file name." +msgstr "" + +#: ../Doc/library/mailbox.rst:327 +msgid "" +"Folders of the style introduced by the Courier mail transfer agent are also " +"supported. Any subdirectory of the main mailbox is considered a folder if " +"``'.'`` is the first character in its name. Folder names are represented by :" +"class:`Maildir` without the leading ``'.'``. Each folder is itself a Maildir " +"mailbox but should not contain other folders. Instead, a logical nesting is " +"indicated using ``'.'`` to delimit levels, e.g., \"Archived.2005.07\"." +msgstr "" + +#: ../Doc/library/mailbox.rst:336 +msgid "" +"The Maildir specification requires the use of a colon (``':'``) in certain " +"message file names. However, some operating systems do not permit this " +"character in file names, If you wish to use a Maildir-like format on such an " +"operating system, you should specify another character to use instead. The " +"exclamation point (``'!'``) is a popular choice. For example::" +msgstr "" + +#: ../Doc/library/mailbox.rst:346 +msgid "The :attr:`colon` attribute may also be set on a per-instance basis." +msgstr "" + +#: ../Doc/library/mailbox.rst:348 +msgid "" +":class:`Maildir` instances have all of the methods of :class:`Mailbox` in " +"addition to the following:" +msgstr "" + +#: ../Doc/library/mailbox.rst:354 ../Doc/library/mailbox.rst:532 +msgid "Return a list of the names of all folders." +msgstr "" + +#: ../Doc/library/mailbox.rst:359 +msgid "" +"Return a :class:`Maildir` instance representing the folder whose name is " +"*folder*. A :exc:`NoSuchMailboxError` exception is raised if the folder does " +"not exist." +msgstr "" + +#: ../Doc/library/mailbox.rst:366 +msgid "" +"Create a folder whose name is *folder* and return a :class:`Maildir` " +"instance representing it." +msgstr "" + +#: ../Doc/library/mailbox.rst:372 ../Doc/library/mailbox.rst:550 +msgid "" +"Delete the folder whose name is *folder*. If the folder contains any " +"messages, a :exc:`NotEmptyError` exception will be raised and the folder " +"will not be deleted." +msgstr "" + +#: ../Doc/library/mailbox.rst:379 +msgid "" +"Delete temporary files from the mailbox that have not been accessed in the " +"last 36 hours. The Maildir specification says that mail-reading programs " +"should do this occasionally." +msgstr "" + +#: ../Doc/library/mailbox.rst:383 +msgid "" +"Some :class:`Mailbox` methods implemented by :class:`Maildir` deserve " +"special remarks:" +msgstr "" + +#: ../Doc/library/mailbox.rst:393 +msgid "" +"These methods generate unique file names based upon the current process ID. " +"When using multiple threads, undetected name clashes may occur and cause " +"corruption of the mailbox unless threads are coordinated to avoid using " +"these methods to manipulate the same mailbox simultaneously." +msgstr "" + +#: ../Doc/library/mailbox.rst:401 +msgid "" +"All changes to Maildir mailboxes are immediately applied, so this method " +"does nothing." +msgstr "" + +#: ../Doc/library/mailbox.rst:408 +msgid "" +"Maildir mailboxes do not support (or require) locking, so these methods do " +"nothing." +msgstr "" + +#: ../Doc/library/mailbox.rst:414 +msgid "" +":class:`Maildir` instances do not keep any open files and the underlying " +"mailboxes do not support locking, so this method does nothing." +msgstr "" + +#: ../Doc/library/mailbox.rst:420 +msgid "" +"Depending upon the host platform, it may not be possible to modify or remove " +"the underlying message while the returned file remains open." +msgstr "" + +#: ../Doc/library/mailbox.rst:427 +msgid "" +"`maildir man page from qmail `_" +msgstr "" + +#: ../Doc/library/mailbox.rst:427 +msgid "The original specification of the format." +msgstr "" + +#: ../Doc/library/mailbox.rst:431 +msgid "`Using maildir format `_" +msgstr "" + +#: ../Doc/library/mailbox.rst:430 +msgid "" +"Notes on Maildir by its inventor. Includes an updated name-creation scheme " +"and details on \"info\" semantics." +msgstr "" + +#: ../Doc/library/mailbox.rst:434 +msgid "" +"`maildir man page from Courier `_" +msgstr "" + +#: ../Doc/library/mailbox.rst:434 +msgid "" +"Another specification of the format. Describes a common extension for " +"supporting folders." +msgstr "" + +#: ../Doc/library/mailbox.rst:441 +msgid ":class:`mbox`" +msgstr ":class:`mbox`" + +#: ../Doc/library/mailbox.rst:446 +msgid "" +"A subclass of :class:`Mailbox` for mailboxes in mbox format. Parameter " +"*factory* is a callable object that accepts a file-like message " +"representation (which behaves as if opened in binary mode) and returns a " +"custom representation. If *factory* is ``None``, :class:`mboxMessage` is " +"used as the default message representation. If *create* is ``True``, the " +"mailbox is created if it does not exist." +msgstr "" + +#: ../Doc/library/mailbox.rst:453 +msgid "" +"The mbox format is the classic format for storing mail on Unix systems. All " +"messages in an mbox mailbox are stored in a single file with the beginning " +"of each message indicated by a line whose first five characters are \"From " +"\"." +msgstr "" + +#: ../Doc/library/mailbox.rst:457 +msgid "" +"Several variations of the mbox format exist to address perceived " +"shortcomings in the original. In the interest of compatibility, :class:" +"`mbox` implements the original format, which is sometimes referred to as :" +"dfn:`mboxo`. This means that the :mailheader:`Content-Length` header, if " +"present, is ignored and that any occurrences of \"From \" at the beginning " +"of a line in a message body are transformed to \">From \" when storing the " +"message, although occurrences of \">From \" are not transformed to \"From \" " +"when reading the message." +msgstr "" + +#: ../Doc/library/mailbox.rst:465 +msgid "" +"Some :class:`Mailbox` methods implemented by :class:`mbox` deserve special " +"remarks:" +msgstr "" + +#: ../Doc/library/mailbox.rst:471 +msgid "" +"Using the file after calling :meth:`flush` or :meth:`close` on the :class:" +"`mbox` instance may yield unpredictable results or raise an exception." +msgstr "" + +#: ../Doc/library/mailbox.rst:479 ../Doc/library/mailbox.rst:691 +#: ../Doc/library/mailbox.rst:742 +msgid "" +"Three locking mechanisms are used---dot locking and, if available, the :c:" +"func:`flock` and :c:func:`lockf` system calls." +msgstr "" + +#: ../Doc/library/mailbox.rst:486 +msgid "`mbox man page from qmail `_" +msgstr "" + +#: ../Doc/library/mailbox.rst:486 +msgid "A specification of the format and its variations." +msgstr "" + +#: ../Doc/library/mailbox.rst:489 +msgid "" +"`mbox man page from tin `_" +msgstr "" + +#: ../Doc/library/mailbox.rst:489 +msgid "Another specification of the format, with details on locking." +msgstr "" + +#: ../Doc/library/mailbox.rst:492 +msgid "" +"`Configuring Netscape Mail on Unix: Why The Content-Length Format is Bad " +"`_" +msgstr "" + +#: ../Doc/library/mailbox.rst:492 +msgid "An argument for using the original mbox format rather than a variation." +msgstr "" + +#: ../Doc/library/mailbox.rst:494 +msgid "" +"`\"mbox\" is a family of several mutually incompatible mailbox formats " +"`_" +msgstr "" + +#: ../Doc/library/mailbox.rst:495 +msgid "A history of mbox variations." +msgstr "" + +#: ../Doc/library/mailbox.rst:501 +msgid ":class:`MH`" +msgstr ":class:`MH`" + +#: ../Doc/library/mailbox.rst:506 +msgid "" +"A subclass of :class:`Mailbox` for mailboxes in MH format. Parameter " +"*factory* is a callable object that accepts a file-like message " +"representation (which behaves as if opened in binary mode) and returns a " +"custom representation. If *factory* is ``None``, :class:`MHMessage` is used " +"as the default message representation. If *create* is ``True``, the mailbox " +"is created if it does not exist." +msgstr "" + +#: ../Doc/library/mailbox.rst:513 +msgid "" +"MH is a directory-based mailbox format invented for the MH Message Handling " +"System, a mail user agent. Each message in an MH mailbox resides in its own " +"file. An MH mailbox may contain other MH mailboxes (called :dfn:`folders`) " +"in addition to messages. Folders may be nested indefinitely. MH mailboxes " +"also support :dfn:`sequences`, which are named lists used to logically group " +"messages without moving them to sub-folders. Sequences are defined in a file " +"called :file:`.mh_sequences` in each folder." +msgstr "" + +#: ../Doc/library/mailbox.rst:521 +msgid "" +"The :class:`MH` class manipulates MH mailboxes, but it does not attempt to " +"emulate all of :program:`mh`'s behaviors. In particular, it does not modify " +"and is not affected by the :file:`context` or :file:`.mh_profile` files that " +"are used by :program:`mh` to store its state and configuration." +msgstr "" + +#: ../Doc/library/mailbox.rst:526 +msgid "" +":class:`MH` instances have all of the methods of :class:`Mailbox` in " +"addition to the following:" +msgstr "" + +#: ../Doc/library/mailbox.rst:537 +msgid "" +"Return an :class:`MH` instance representing the folder whose name is " +"*folder*. A :exc:`NoSuchMailboxError` exception is raised if the folder does " +"not exist." +msgstr "" + +#: ../Doc/library/mailbox.rst:544 +msgid "" +"Create a folder whose name is *folder* and return an :class:`MH` instance " +"representing it." +msgstr "" + +#: ../Doc/library/mailbox.rst:557 +msgid "" +"Return a dictionary of sequence names mapped to key lists. If there are no " +"sequences, the empty dictionary is returned." +msgstr "" + +#: ../Doc/library/mailbox.rst:563 +msgid "" +"Re-define the sequences that exist in the mailbox based upon *sequences*, a " +"dictionary of names mapped to key lists, like returned by :meth:" +"`get_sequences`." +msgstr "" + +#: ../Doc/library/mailbox.rst:570 +msgid "" +"Rename messages in the mailbox as necessary to eliminate gaps in numbering. " +"Entries in the sequences list are updated correspondingly." +msgstr "" + +#: ../Doc/library/mailbox.rst:575 +msgid "" +"Already-issued keys are invalidated by this operation and should not be " +"subsequently used." +msgstr "" + +#: ../Doc/library/mailbox.rst:578 +msgid "" +"Some :class:`Mailbox` methods implemented by :class:`MH` deserve special " +"remarks:" +msgstr "" + +#: ../Doc/library/mailbox.rst:586 +msgid "" +"These methods immediately delete the message. The MH convention of marking a " +"message for deletion by prepending a comma to its name is not used." +msgstr "" + +#: ../Doc/library/mailbox.rst:593 +msgid "" +"Three locking mechanisms are used---dot locking and, if available, the :c:" +"func:`flock` and :c:func:`lockf` system calls. For MH mailboxes, locking the " +"mailbox means locking the :file:`.mh_sequences` file and, only for the " +"duration of any operations that affect them, locking individual message " +"files." +msgstr "" + +#: ../Doc/library/mailbox.rst:602 +msgid "" +"Depending upon the host platform, it may not be possible to remove the " +"underlying message while the returned file remains open." +msgstr "" + +#: ../Doc/library/mailbox.rst:608 +msgid "" +"All changes to MH mailboxes are immediately applied, so this method does " +"nothing." +msgstr "" + +#: ../Doc/library/mailbox.rst:614 +msgid "" +":class:`MH` instances do not keep any open files, so this method is " +"equivalent to :meth:`unlock`." +msgstr "" + +#: ../Doc/library/mailbox.rst:621 +msgid "`nmh - Message Handling System `_" +msgstr "" + +#: ../Doc/library/mailbox.rst:621 +msgid "" +"Home page of :program:`nmh`, an updated version of the original :program:" +"`mh`." +msgstr "" + +#: ../Doc/library/mailbox.rst:624 +msgid "" +"`MH & nmh: Email for Users & Programmers `_" +msgstr "" + +#: ../Doc/library/mailbox.rst:624 +msgid "" +"A GPL-licensed book on :program:`mh` and :program:`nmh`, with some " +"information on the mailbox format." +msgstr "" + +#: ../Doc/library/mailbox.rst:631 +msgid ":class:`Babyl`" +msgstr "" + +#: ../Doc/library/mailbox.rst:636 +msgid "" +"A subclass of :class:`Mailbox` for mailboxes in Babyl format. Parameter " +"*factory* is a callable object that accepts a file-like message " +"representation (which behaves as if opened in binary mode) and returns a " +"custom representation. If *factory* is ``None``, :class:`BabylMessage` is " +"used as the default message representation. If *create* is ``True``, the " +"mailbox is created if it does not exist." +msgstr "" + +#: ../Doc/library/mailbox.rst:643 +msgid "" +"Babyl is a single-file mailbox format used by the Rmail mail user agent " +"included with Emacs. The beginning of a message is indicated by a line " +"containing the two characters Control-Underscore (``'\\037'``) and Control-L " +"(``'\\014'``). The end of a message is indicated by the start of the next " +"message or, in the case of the last message, a line containing a Control-" +"Underscore (``'\\037'``) character." +msgstr "" + +#: ../Doc/library/mailbox.rst:650 +msgid "" +"Messages in a Babyl mailbox have two sets of headers, original headers and " +"so-called visible headers. Visible headers are typically a subset of the " +"original headers that have been reformatted or abridged to be more " +"attractive. Each message in a Babyl mailbox also has an accompanying list " +"of :dfn:`labels`, or short strings that record extra information about the " +"message, and a list of all user-defined labels found in the mailbox is kept " +"in the Babyl options section." +msgstr "" + +#: ../Doc/library/mailbox.rst:658 +msgid "" +":class:`Babyl` instances have all of the methods of :class:`Mailbox` in " +"addition to the following:" +msgstr "" + +#: ../Doc/library/mailbox.rst:664 +msgid "" +"Return a list of the names of all user-defined labels used in the mailbox." +msgstr "" + +#: ../Doc/library/mailbox.rst:668 +msgid "" +"The actual messages are inspected to determine which labels exist in the " +"mailbox rather than consulting the list of labels in the Babyl options " +"section, but the Babyl section is updated whenever the mailbox is modified." +msgstr "" + +#: ../Doc/library/mailbox.rst:673 +msgid "" +"Some :class:`Mailbox` methods implemented by :class:`Babyl` deserve special " +"remarks:" +msgstr "" + +#: ../Doc/library/mailbox.rst:679 +msgid "" +"In Babyl mailboxes, the headers of a message are not stored contiguously " +"with the body of the message. To generate a file-like representation, the " +"headers and body are copied together into an :class:`io.BytesIO` instance, " +"which has an API identical to that of a file. As a result, the file-like " +"object is truly independent of the underlying mailbox but does not save " +"memory compared to a string representation." +msgstr "" + +#: ../Doc/library/mailbox.rst:698 +msgid "" +"`Format of Version 5 Babyl Files `_" +msgstr "" + +#: ../Doc/library/mailbox.rst:698 +msgid "A specification of the Babyl format." +msgstr "" + +#: ../Doc/library/mailbox.rst:700 +msgid "" +"`Reading Mail with Rmail `_" +msgstr "" + +#: ../Doc/library/mailbox.rst:701 +msgid "The Rmail manual, with some information on Babyl semantics." +msgstr "" + +#: ../Doc/library/mailbox.rst:707 +msgid ":class:`MMDF`" +msgstr ":class:`MMDF`" + +#: ../Doc/library/mailbox.rst:712 +msgid "" +"A subclass of :class:`Mailbox` for mailboxes in MMDF format. Parameter " +"*factory* is a callable object that accepts a file-like message " +"representation (which behaves as if opened in binary mode) and returns a " +"custom representation. If *factory* is ``None``, :class:`MMDFMessage` is " +"used as the default message representation. If *create* is ``True``, the " +"mailbox is created if it does not exist." +msgstr "" + +#: ../Doc/library/mailbox.rst:719 +msgid "" +"MMDF is a single-file mailbox format invented for the Multichannel " +"Memorandum Distribution Facility, a mail transfer agent. Each message is in " +"the same form as an mbox message but is bracketed before and after by lines " +"containing four Control-A (``'\\001'``) characters. As with the mbox format, " +"the beginning of each message is indicated by a line whose first five " +"characters are \"From \", but additional occurrences of \"From \" are not " +"transformed to \">From \" when storing messages because the extra message " +"separator lines prevent mistaking such occurrences for the starts of " +"subsequent messages." +msgstr "" + +#: ../Doc/library/mailbox.rst:728 +msgid "" +"Some :class:`Mailbox` methods implemented by :class:`MMDF` deserve special " +"remarks:" +msgstr "" + +#: ../Doc/library/mailbox.rst:734 +msgid "" +"Using the file after calling :meth:`flush` or :meth:`close` on the :class:" +"`MMDF` instance may yield unpredictable results or raise an exception." +msgstr "" + +#: ../Doc/library/mailbox.rst:749 +msgid "" +"`mmdf man page from tin `_" +msgstr "" + +#: ../Doc/library/mailbox.rst:749 +msgid "" +"A specification of MMDF format from the documentation of tin, a newsreader." +msgstr "" + +#: ../Doc/library/mailbox.rst:752 +msgid "`MMDF `_" +msgstr "" + +#: ../Doc/library/mailbox.rst:752 +msgid "" +"A Wikipedia article describing the Multichannel Memorandum Distribution " +"Facility." +msgstr "" + +#: ../Doc/library/mailbox.rst:759 +msgid ":class:`Message` objects" +msgstr "" + +#: ../Doc/library/mailbox.rst:764 +msgid "" +"A subclass of the :mod:`email.message` module's :class:`~email.message." +"Message`. Subclasses of :class:`mailbox.Message` add mailbox-format-specific " +"state and behavior." +msgstr "" + +#: ../Doc/library/mailbox.rst:768 +msgid "" +"If *message* is omitted, the new instance is created in a default, empty " +"state. If *message* is an :class:`email.message.Message` instance, its " +"contents are copied; furthermore, any format-specific information is " +"converted insofar as possible if *message* is a :class:`Message` instance. " +"If *message* is a string, a byte string, or a file, it should contain an :" +"rfc:`2822`\\ -compliant message, which is read and parsed. Files should be " +"open in binary mode, but text mode files are accepted for backward " +"compatibility." +msgstr "" + +#: ../Doc/library/mailbox.rst:777 +msgid "" +"The format-specific state and behaviors offered by subclasses vary, but in " +"general it is only the properties that are not specific to a particular " +"mailbox that are supported (although presumably the properties are specific " +"to a particular mailbox format). For example, file offsets for single-file " +"mailbox formats and file names for directory-based mailbox formats are not " +"retained, because they are only applicable to the original mailbox. But " +"state such as whether a message has been read by the user or marked as " +"important is retained, because it applies to the message itself." +msgstr "" + +#: ../Doc/library/mailbox.rst:786 +msgid "" +"There is no requirement that :class:`Message` instances be used to represent " +"messages retrieved using :class:`Mailbox` instances. In some situations, the " +"time and memory required to generate :class:`Message` representations might " +"not be acceptable. For such situations, :class:`Mailbox` instances also " +"offer string and file-like representations, and a custom message factory may " +"be specified when a :class:`Mailbox` instance is initialized." +msgstr "" + +#: ../Doc/library/mailbox.rst:797 +msgid ":class:`MaildirMessage`" +msgstr "" + +#: ../Doc/library/mailbox.rst:802 +msgid "" +"A message with Maildir-specific behaviors. Parameter *message* has the same " +"meaning as with the :class:`Message` constructor." +msgstr "" + +#: ../Doc/library/mailbox.rst:805 +msgid "" +"Typically, a mail user agent application moves all of the messages in the :" +"file:`new` subdirectory to the :file:`cur` subdirectory after the first time " +"the user opens and closes the mailbox, recording that the messages are old " +"whether or not they've actually been read. Each message in :file:`cur` has " +"an \"info\" section added to its file name to store information about its " +"state. (Some mail readers may also add an \"info\" section to messages in :" +"file:`new`.) The \"info\" section may take one of two forms: it may contain " +"\"2,\" followed by a list of standardized flags (e.g., \"2,FR\") or it may " +"contain \"1,\" followed by so-called experimental information. Standard " +"flags for Maildir messages are as follows:" +msgstr "" + +#: ../Doc/library/mailbox.rst:817 ../Doc/library/mailbox.rst:984 +#: ../Doc/library/mailbox.rst:1354 +msgid "Flag" +msgstr "Option" + +#: ../Doc/library/mailbox.rst:817 ../Doc/library/mailbox.rst:984 +#: ../Doc/library/mailbox.rst:1354 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/mailbox.rst:817 ../Doc/library/mailbox.rst:984 +#: ../Doc/library/mailbox.rst:1134 ../Doc/library/mailbox.rst:1221 +#: ../Doc/library/mailbox.rst:1354 +msgid "Explanation" +msgstr "Explication" + +#: ../Doc/library/mailbox.rst:819 ../Doc/library/mailbox.rst:990 +#: ../Doc/library/mailbox.rst:1360 +msgid "D" +msgstr "D" + +#: ../Doc/library/mailbox.rst:819 +msgid "Draft" +msgstr "" + +#: ../Doc/library/mailbox.rst:819 +msgid "Under composition" +msgstr "" + +#: ../Doc/library/mailbox.rst:821 ../Doc/library/mailbox.rst:992 +#: ../Doc/library/mailbox.rst:1362 +msgid "F" +msgstr "F" + +#: ../Doc/library/mailbox.rst:821 ../Doc/library/mailbox.rst:992 +#: ../Doc/library/mailbox.rst:1362 +msgid "Flagged" +msgstr "" + +#: ../Doc/library/mailbox.rst:821 ../Doc/library/mailbox.rst:992 +#: ../Doc/library/mailbox.rst:1140 ../Doc/library/mailbox.rst:1362 +msgid "Marked as important" +msgstr "" + +#: ../Doc/library/mailbox.rst:823 +msgid "P" +msgstr "P" + +#: ../Doc/library/mailbox.rst:823 +msgid "Passed" +msgstr "" + +#: ../Doc/library/mailbox.rst:823 +msgid "Forwarded, resent, or bounced" +msgstr "" + +#: ../Doc/library/mailbox.rst:825 ../Doc/library/mailbox.rst:986 +#: ../Doc/library/mailbox.rst:1356 +msgid "R" +msgstr "R" + +#: ../Doc/library/mailbox.rst:825 +msgid "Replied" +msgstr "" + +#: ../Doc/library/mailbox.rst:825 ../Doc/library/mailbox.rst:994 +#: ../Doc/library/mailbox.rst:1138 ../Doc/library/mailbox.rst:1229 +#: ../Doc/library/mailbox.rst:1364 +msgid "Replied to" +msgstr "" + +#: ../Doc/library/mailbox.rst:827 +msgid "S" +msgstr "S" + +#: ../Doc/library/mailbox.rst:827 +msgid "Seen" +msgstr "" + +#: ../Doc/library/mailbox.rst:827 ../Doc/library/mailbox.rst:986 +#: ../Doc/library/mailbox.rst:1356 +msgid "Read" +msgstr "" + +#: ../Doc/library/mailbox.rst:829 +msgid "T" +msgstr "T" + +#: ../Doc/library/mailbox.rst:829 +msgid "Trashed" +msgstr "" + +#: ../Doc/library/mailbox.rst:829 ../Doc/library/mailbox.rst:990 +#: ../Doc/library/mailbox.rst:1225 ../Doc/library/mailbox.rst:1360 +msgid "Marked for subsequent deletion" +msgstr "" + +#: ../Doc/library/mailbox.rst:832 +msgid ":class:`MaildirMessage` instances offer the following methods:" +msgstr "" + +#: ../Doc/library/mailbox.rst:837 +msgid "" +"Return either \"new\" (if the message should be stored in the :file:`new` " +"subdirectory) or \"cur\" (if the message should be stored in the :file:`cur` " +"subdirectory)." +msgstr "" + +#: ../Doc/library/mailbox.rst:843 +msgid "" +"A message is typically moved from :file:`new` to :file:`cur` after its " +"mailbox has been accessed, whether or not the message is has been read. A " +"message ``msg`` has been read if ``\"S\" in msg.get_flags()`` is ``True``." +msgstr "" + +#: ../Doc/library/mailbox.rst:851 +msgid "" +"Set the subdirectory the message should be stored in. Parameter *subdir* " +"must be either \"new\" or \"cur\"." +msgstr "" + +#: ../Doc/library/mailbox.rst:857 +msgid "" +"Return a string specifying the flags that are currently set. If the message " +"complies with the standard Maildir format, the result is the concatenation " +"in alphabetical order of zero or one occurrence of each of ``'D'``, ``'F'``, " +"``'P'``, ``'R'``, ``'S'``, and ``'T'``. The empty string is returned if no " +"flags are set or if \"info\" contains experimental semantics." +msgstr "" + +#: ../Doc/library/mailbox.rst:867 +msgid "Set the flags specified by *flags* and unset all others." +msgstr "" + +#: ../Doc/library/mailbox.rst:872 +msgid "" +"Set the flag(s) specified by *flag* without changing other flags. To add " +"more than one flag at a time, *flag* may be a string of more than one " +"character. The current \"info\" is overwritten whether or not it contains " +"experimental information rather than flags." +msgstr "" + +#: ../Doc/library/mailbox.rst:880 +msgid "" +"Unset the flag(s) specified by *flag* without changing other flags. To " +"remove more than one flag at a time, *flag* maybe a string of more than one " +"character. If \"info\" contains experimental information rather than flags, " +"the current \"info\" is not modified." +msgstr "" + +#: ../Doc/library/mailbox.rst:888 +msgid "" +"Return the delivery date of the message as a floating-point number " +"representing seconds since the epoch." +msgstr "" + +#: ../Doc/library/mailbox.rst:894 +msgid "" +"Set the delivery date of the message to *date*, a floating-point number " +"representing seconds since the epoch." +msgstr "" + +#: ../Doc/library/mailbox.rst:900 +msgid "" +"Return a string containing the \"info\" for a message. This is useful for " +"accessing and modifying \"info\" that is experimental (i.e., not a list of " +"flags)." +msgstr "" + +#: ../Doc/library/mailbox.rst:907 +msgid "Set \"info\" to *info*, which should be a string." +msgstr "" + +#: ../Doc/library/mailbox.rst:909 +msgid "" +"When a :class:`MaildirMessage` instance is created based upon an :class:" +"`mboxMessage` or :class:`MMDFMessage` instance, the :mailheader:`Status` " +"and :mailheader:`X-Status` headers are omitted and the following conversions " +"take place:" +msgstr "" + +#: ../Doc/library/mailbox.rst:915 ../Doc/library/mailbox.rst:933 +#: ../Doc/library/mailbox.rst:948 ../Doc/library/mailbox.rst:1055 +#: ../Doc/library/mailbox.rst:1072 ../Doc/library/mailbox.rst:1087 +#: ../Doc/library/mailbox.rst:1102 ../Doc/library/mailbox.rst:1169 +#: ../Doc/library/mailbox.rst:1184 ../Doc/library/mailbox.rst:1198 +#: ../Doc/library/mailbox.rst:1295 ../Doc/library/mailbox.rst:1312 +#: ../Doc/library/mailbox.rst:1326 ../Doc/library/mailbox.rst:1426 +#: ../Doc/library/mailbox.rst:1443 ../Doc/library/mailbox.rst:1458 +#: ../Doc/library/mailbox.rst:1474 +msgid "Resulting state" +msgstr "" + +#: ../Doc/library/mailbox.rst:915 ../Doc/library/mailbox.rst:1184 +#: ../Doc/library/mailbox.rst:1312 +msgid ":class:`mboxMessage` or :class:`MMDFMessage` state" +msgstr "" + +#: ../Doc/library/mailbox.rst:918 ../Doc/library/mailbox.rst:935 +#: ../Doc/library/mailbox.rst:950 ../Doc/library/mailbox.rst:1059 +#: ../Doc/library/mailbox.rst:1430 +msgid "\"cur\" subdirectory" +msgstr "" + +#: ../Doc/library/mailbox.rst:918 ../Doc/library/mailbox.rst:1059 +#: ../Doc/library/mailbox.rst:1076 ../Doc/library/mailbox.rst:1091 +#: ../Doc/library/mailbox.rst:1106 ../Doc/library/mailbox.rst:1430 +#: ../Doc/library/mailbox.rst:1447 ../Doc/library/mailbox.rst:1462 +#: ../Doc/library/mailbox.rst:1478 +msgid "O flag" +msgstr "" + +#: ../Doc/library/mailbox.rst:920 ../Doc/library/mailbox.rst:939 +#: ../Doc/library/mailbox.rst:1063 ../Doc/library/mailbox.rst:1078 +#: ../Doc/library/mailbox.rst:1110 ../Doc/library/mailbox.rst:1175 +#: ../Doc/library/mailbox.rst:1191 ../Doc/library/mailbox.rst:1434 +#: ../Doc/library/mailbox.rst:1449 ../Doc/library/mailbox.rst:1482 +msgid "F flag" +msgstr "" + +#: ../Doc/library/mailbox.rst:922 ../Doc/library/mailbox.rst:924 +#: ../Doc/library/mailbox.rst:941 ../Doc/library/mailbox.rst:956 +#: ../Doc/library/mailbox.rst:1057 ../Doc/library/mailbox.rst:1065 +#: ../Doc/library/mailbox.rst:1104 ../Doc/library/mailbox.rst:1173 +#: ../Doc/library/mailbox.rst:1301 ../Doc/library/mailbox.rst:1428 +#: ../Doc/library/mailbox.rst:1436 ../Doc/library/mailbox.rst:1476 +msgid "R flag" +msgstr "" + +#: ../Doc/library/mailbox.rst:922 ../Doc/library/mailbox.rst:1065 +#: ../Doc/library/mailbox.rst:1080 ../Doc/library/mailbox.rst:1095 +#: ../Doc/library/mailbox.rst:1112 ../Doc/library/mailbox.rst:1189 +#: ../Doc/library/mailbox.rst:1319 ../Doc/library/mailbox.rst:1436 +#: ../Doc/library/mailbox.rst:1451 ../Doc/library/mailbox.rst:1466 +#: ../Doc/library/mailbox.rst:1484 +msgid "A flag" +msgstr "" + +#: ../Doc/library/mailbox.rst:924 ../Doc/library/mailbox.rst:1057 +#: ../Doc/library/mailbox.rst:1428 +msgid "S flag" +msgstr "" + +#: ../Doc/library/mailbox.rst:926 ../Doc/library/mailbox.rst:958 +#: ../Doc/library/mailbox.rst:1061 ../Doc/library/mailbox.rst:1299 +#: ../Doc/library/mailbox.rst:1432 +msgid "T flag" +msgstr "" + +#: ../Doc/library/mailbox.rst:926 ../Doc/library/mailbox.rst:1061 +#: ../Doc/library/mailbox.rst:1093 ../Doc/library/mailbox.rst:1108 +#: ../Doc/library/mailbox.rst:1317 ../Doc/library/mailbox.rst:1432 +#: ../Doc/library/mailbox.rst:1464 ../Doc/library/mailbox.rst:1480 +msgid "D flag" +msgstr "" + +#: ../Doc/library/mailbox.rst:929 +msgid "" +"When a :class:`MaildirMessage` instance is created based upon an :class:" +"`MHMessage` instance, the following conversions take place:" +msgstr "" + +#: ../Doc/library/mailbox.rst:933 ../Doc/library/mailbox.rst:1072 +#: ../Doc/library/mailbox.rst:1326 ../Doc/library/mailbox.rst:1443 +msgid ":class:`MHMessage` state" +msgstr "" + +#: ../Doc/library/mailbox.rst:935 ../Doc/library/mailbox.rst:1076 +#: ../Doc/library/mailbox.rst:1171 ../Doc/library/mailbox.rst:1187 +#: ../Doc/library/mailbox.rst:1200 ../Doc/library/mailbox.rst:1328 +#: ../Doc/library/mailbox.rst:1447 +msgid "\"unseen\" sequence" +msgstr "" + +#: ../Doc/library/mailbox.rst:937 ../Doc/library/mailbox.rst:952 +msgid "\"cur\" subdirectory and S flag" +msgstr "" + +#: ../Doc/library/mailbox.rst:937 ../Doc/library/mailbox.rst:1074 +#: ../Doc/library/mailbox.rst:1445 +msgid "no \"unseen\" sequence" +msgstr "" + +#: ../Doc/library/mailbox.rst:939 ../Doc/library/mailbox.rst:1078 +#: ../Doc/library/mailbox.rst:1175 ../Doc/library/mailbox.rst:1191 +#: ../Doc/library/mailbox.rst:1449 +msgid "\"flagged\" sequence" +msgstr "" + +#: ../Doc/library/mailbox.rst:941 ../Doc/library/mailbox.rst:1080 +#: ../Doc/library/mailbox.rst:1173 ../Doc/library/mailbox.rst:1189 +#: ../Doc/library/mailbox.rst:1202 ../Doc/library/mailbox.rst:1330 +#: ../Doc/library/mailbox.rst:1451 +msgid "\"replied\" sequence" +msgstr "" + +#: ../Doc/library/mailbox.rst:944 +msgid "" +"When a :class:`MaildirMessage` instance is created based upon a :class:" +"`BabylMessage` instance, the following conversions take place:" +msgstr "" + +#: ../Doc/library/mailbox.rst:948 ../Doc/library/mailbox.rst:1087 +#: ../Doc/library/mailbox.rst:1198 ../Doc/library/mailbox.rst:1458 +msgid ":class:`BabylMessage` state" +msgstr "" + +#: ../Doc/library/mailbox.rst:950 ../Doc/library/mailbox.rst:1091 +#: ../Doc/library/mailbox.rst:1200 ../Doc/library/mailbox.rst:1297 +#: ../Doc/library/mailbox.rst:1315 ../Doc/library/mailbox.rst:1328 +#: ../Doc/library/mailbox.rst:1462 +msgid "\"unseen\" label" +msgstr "" + +#: ../Doc/library/mailbox.rst:952 ../Doc/library/mailbox.rst:1089 +#: ../Doc/library/mailbox.rst:1460 +msgid "no \"unseen\" label" +msgstr "" + +#: ../Doc/library/mailbox.rst:954 ../Doc/library/mailbox.rst:1303 +msgid "P flag" +msgstr "" + +#: ../Doc/library/mailbox.rst:954 +msgid "\"forwarded\" or \"resent\" label" +msgstr "" + +#: ../Doc/library/mailbox.rst:956 ../Doc/library/mailbox.rst:1095 +#: ../Doc/library/mailbox.rst:1202 ../Doc/library/mailbox.rst:1301 +#: ../Doc/library/mailbox.rst:1319 ../Doc/library/mailbox.rst:1330 +#: ../Doc/library/mailbox.rst:1466 +msgid "\"answered\" label" +msgstr "" + +#: ../Doc/library/mailbox.rst:958 ../Doc/library/mailbox.rst:1093 +#: ../Doc/library/mailbox.rst:1299 ../Doc/library/mailbox.rst:1317 +#: ../Doc/library/mailbox.rst:1464 +msgid "\"deleted\" label" +msgstr "" + +#: ../Doc/library/mailbox.rst:965 +msgid ":class:`mboxMessage`" +msgstr "" + +#: ../Doc/library/mailbox.rst:970 +msgid "" +"A message with mbox-specific behaviors. Parameter *message* has the same " +"meaning as with the :class:`Message` constructor." +msgstr "" + +#: ../Doc/library/mailbox.rst:973 +msgid "" +"Messages in an mbox mailbox are stored together in a single file. The " +"sender's envelope address and the time of delivery are typically stored in a " +"line beginning with \"From \" that is used to indicate the start of a " +"message, though there is considerable variation in the exact format of this " +"data among mbox implementations. Flags that indicate the state of the " +"message, such as whether it has been read or marked as important, are " +"typically stored in :mailheader:`Status` and :mailheader:`X-Status` headers." +msgstr "" + +#: ../Doc/library/mailbox.rst:981 +msgid "Conventional flags for mbox messages are as follows:" +msgstr "" + +#: ../Doc/library/mailbox.rst:988 ../Doc/library/mailbox.rst:1358 +msgid "O" +msgstr "O" + +#: ../Doc/library/mailbox.rst:988 ../Doc/library/mailbox.rst:1358 +msgid "Old" +msgstr "" + +#: ../Doc/library/mailbox.rst:988 ../Doc/library/mailbox.rst:1358 +msgid "Previously detected by MUA" +msgstr "" + +#: ../Doc/library/mailbox.rst:990 ../Doc/library/mailbox.rst:1360 +msgid "Deleted" +msgstr "" + +#: ../Doc/library/mailbox.rst:994 ../Doc/library/mailbox.rst:1364 +msgid "A" +msgstr "A" + +#: ../Doc/library/mailbox.rst:994 ../Doc/library/mailbox.rst:1364 +msgid "Answered" +msgstr "" + +#: ../Doc/library/mailbox.rst:997 ../Doc/library/mailbox.rst:1367 +msgid "" +"The \"R\" and \"O\" flags are stored in the :mailheader:`Status` header, and " +"the \"D\", \"F\", and \"A\" flags are stored in the :mailheader:`X-Status` " +"header. The flags and headers typically appear in the order mentioned." +msgstr "" + +#: ../Doc/library/mailbox.rst:1001 +msgid ":class:`mboxMessage` instances offer the following methods:" +msgstr "" + +#: ../Doc/library/mailbox.rst:1006 ../Doc/library/mailbox.rst:1377 +msgid "" +"Return a string representing the \"From \" line that marks the start of the " +"message in an mbox mailbox. The leading \"From \" and the trailing newline " +"are excluded." +msgstr "" + +#: ../Doc/library/mailbox.rst:1013 ../Doc/library/mailbox.rst:1384 +msgid "" +"Set the \"From \" line to *from_*, which should be specified without a " +"leading \"From \" or trailing newline. For convenience, *time_* may be " +"specified and will be formatted appropriately and appended to *from_*. If " +"*time_* is specified, it should be a :class:`time.struct_time` instance, a " +"tuple suitable for passing to :meth:`time.strftime`, or ``True`` (to use :" +"meth:`time.gmtime`)." +msgstr "" + +#: ../Doc/library/mailbox.rst:1023 ../Doc/library/mailbox.rst:1394 +msgid "" +"Return a string specifying the flags that are currently set. If the message " +"complies with the conventional format, the result is the concatenation in " +"the following order of zero or one occurrence of each of ``'R'``, ``'O'``, " +"``'D'``, ``'F'``, and ``'A'``." +msgstr "" + +#: ../Doc/library/mailbox.rst:1031 ../Doc/library/mailbox.rst:1402 +msgid "" +"Set the flags specified by *flags* and unset all others. Parameter *flags* " +"should be the concatenation in any order of zero or more occurrences of each " +"of ``'R'``, ``'O'``, ``'D'``, ``'F'``, and ``'A'``." +msgstr "" + +#: ../Doc/library/mailbox.rst:1038 ../Doc/library/mailbox.rst:1409 +msgid "" +"Set the flag(s) specified by *flag* without changing other flags. To add " +"more than one flag at a time, *flag* may be a string of more than one " +"character." +msgstr "" + +#: ../Doc/library/mailbox.rst:1045 ../Doc/library/mailbox.rst:1416 +msgid "" +"Unset the flag(s) specified by *flag* without changing other flags. To " +"remove more than one flag at a time, *flag* maybe a string of more than one " +"character." +msgstr "" + +#: ../Doc/library/mailbox.rst:1049 +msgid "" +"When an :class:`mboxMessage` instance is created based upon a :class:" +"`MaildirMessage` instance, a \"From \" line is generated based upon the :" +"class:`MaildirMessage` instance's delivery date, and the following " +"conversions take place:" +msgstr "" + +#: ../Doc/library/mailbox.rst:1055 ../Doc/library/mailbox.rst:1169 +#: ../Doc/library/mailbox.rst:1295 ../Doc/library/mailbox.rst:1426 +msgid ":class:`MaildirMessage` state" +msgstr "" + +#: ../Doc/library/mailbox.rst:1068 +msgid "" +"When an :class:`mboxMessage` instance is created based upon an :class:" +"`MHMessage` instance, the following conversions take place:" +msgstr "" + +#: ../Doc/library/mailbox.rst:1074 ../Doc/library/mailbox.rst:1089 +#: ../Doc/library/mailbox.rst:1445 ../Doc/library/mailbox.rst:1460 +msgid "R flag and O flag" +msgstr "" + +#: ../Doc/library/mailbox.rst:1083 +msgid "" +"When an :class:`mboxMessage` instance is created based upon a :class:" +"`BabylMessage` instance, the following conversions take place:" +msgstr "" + +#: ../Doc/library/mailbox.rst:1098 +msgid "" +"When a :class:`Message` instance is created based upon an :class:" +"`MMDFMessage` instance, the \"From \" line is copied and all flags directly " +"correspond:" +msgstr "" + +#: ../Doc/library/mailbox.rst:1102 +msgid ":class:`MMDFMessage` state" +msgstr "" + +#: ../Doc/library/mailbox.rst:1119 +msgid ":class:`MHMessage`" +msgstr "" + +#: ../Doc/library/mailbox.rst:1124 +msgid "" +"A message with MH-specific behaviors. Parameter *message* has the same " +"meaning as with the :class:`Message` constructor." +msgstr "" + +#: ../Doc/library/mailbox.rst:1127 +msgid "" +"MH messages do not support marks or flags in the traditional sense, but they " +"do support sequences, which are logical groupings of arbitrary messages. " +"Some mail reading programs (although not the standard :program:`mh` and :" +"program:`nmh`) use sequences in much the same way flags are used with other " +"formats, as follows:" +msgstr "" + +#: ../Doc/library/mailbox.rst:1134 +msgid "Sequence" +msgstr "Séquence" + +#: ../Doc/library/mailbox.rst:1136 ../Doc/library/mailbox.rst:1223 +msgid "unseen" +msgstr "" + +#: ../Doc/library/mailbox.rst:1136 ../Doc/library/mailbox.rst:1223 +msgid "Not read, but previously detected by MUA" +msgstr "" + +#: ../Doc/library/mailbox.rst:1138 +msgid "replied" +msgstr "" + +#: ../Doc/library/mailbox.rst:1140 +msgid "flagged" +msgstr "" + +#: ../Doc/library/mailbox.rst:1143 +msgid ":class:`MHMessage` instances offer the following methods:" +msgstr "" + +#: ../Doc/library/mailbox.rst:1148 +msgid "Return a list of the names of sequences that include this message." +msgstr "" + +#: ../Doc/library/mailbox.rst:1153 +msgid "Set the list of sequences that include this message." +msgstr "" + +#: ../Doc/library/mailbox.rst:1158 +msgid "Add *sequence* to the list of sequences that include this message." +msgstr "" + +#: ../Doc/library/mailbox.rst:1163 +msgid "Remove *sequence* from the list of sequences that include this message." +msgstr "" + +#: ../Doc/library/mailbox.rst:1165 +msgid "" +"When an :class:`MHMessage` instance is created based upon a :class:" +"`MaildirMessage` instance, the following conversions take place:" +msgstr "" + +#: ../Doc/library/mailbox.rst:1171 ../Doc/library/mailbox.rst:1297 +msgid "no S flag" +msgstr "" + +#: ../Doc/library/mailbox.rst:1178 +msgid "" +"When an :class:`MHMessage` instance is created based upon an :class:" +"`mboxMessage` or :class:`MMDFMessage` instance, the :mailheader:`Status` " +"and :mailheader:`X-Status` headers are omitted and the following conversions " +"take place:" +msgstr "" + +#: ../Doc/library/mailbox.rst:1187 ../Doc/library/mailbox.rst:1315 +msgid "no R flag" +msgstr "" + +#: ../Doc/library/mailbox.rst:1194 +msgid "" +"When an :class:`MHMessage` instance is created based upon a :class:" +"`BabylMessage` instance, the following conversions take place:" +msgstr "" + +#: ../Doc/library/mailbox.rst:1209 +msgid ":class:`BabylMessage`" +msgstr "" + +#: ../Doc/library/mailbox.rst:1214 +msgid "" +"A message with Babyl-specific behaviors. Parameter *message* has the same " +"meaning as with the :class:`Message` constructor." +msgstr "" + +#: ../Doc/library/mailbox.rst:1217 +msgid "" +"Certain message labels, called :dfn:`attributes`, are defined by convention " +"to have special meanings. The attributes are as follows:" +msgstr "" + +#: ../Doc/library/mailbox.rst:1221 +msgid "Label" +msgstr "" + +#: ../Doc/library/mailbox.rst:1225 +msgid "deleted" +msgstr "" + +#: ../Doc/library/mailbox.rst:1227 +msgid "filed" +msgstr "" + +#: ../Doc/library/mailbox.rst:1227 +msgid "Copied to another file or mailbox" +msgstr "" + +#: ../Doc/library/mailbox.rst:1229 +msgid "answered" +msgstr "" + +#: ../Doc/library/mailbox.rst:1231 +msgid "forwarded" +msgstr "" + +#: ../Doc/library/mailbox.rst:1231 +msgid "Forwarded" +msgstr "" + +#: ../Doc/library/mailbox.rst:1233 +msgid "edited" +msgstr "" + +#: ../Doc/library/mailbox.rst:1233 +msgid "Modified by the user" +msgstr "" + +#: ../Doc/library/mailbox.rst:1235 +msgid "resent" +msgstr "" + +#: ../Doc/library/mailbox.rst:1235 +msgid "Resent" +msgstr "" + +#: ../Doc/library/mailbox.rst:1238 +msgid "" +"By default, Rmail displays only visible headers. The :class:`BabylMessage` " +"class, though, uses the original headers because they are more complete. " +"Visible headers may be accessed explicitly if desired." +msgstr "" + +#: ../Doc/library/mailbox.rst:1242 +msgid ":class:`BabylMessage` instances offer the following methods:" +msgstr "" + +#: ../Doc/library/mailbox.rst:1247 +msgid "Return a list of labels on the message." +msgstr "" + +#: ../Doc/library/mailbox.rst:1252 +msgid "Set the list of labels on the message to *labels*." +msgstr "" + +#: ../Doc/library/mailbox.rst:1257 +msgid "Add *label* to the list of labels on the message." +msgstr "" + +#: ../Doc/library/mailbox.rst:1262 +msgid "Remove *label* from the list of labels on the message." +msgstr "" + +#: ../Doc/library/mailbox.rst:1267 +msgid "" +"Return an :class:`Message` instance whose headers are the message's visible " +"headers and whose body is empty." +msgstr "" + +#: ../Doc/library/mailbox.rst:1273 +msgid "" +"Set the message's visible headers to be the same as the headers in " +"*message*. Parameter *visible* should be a :class:`Message` instance, an :" +"class:`email.message.Message` instance, a string, or a file-like object " +"(which should be open in text mode)." +msgstr "" + +#: ../Doc/library/mailbox.rst:1281 +msgid "" +"When a :class:`BabylMessage` instance's original headers are modified, the " +"visible headers are not automatically modified to correspond. This method " +"updates the visible headers as follows: each visible header with a " +"corresponding original header is set to the value of the original header, " +"each visible header without a corresponding original header is removed, and " +"any of :mailheader:`Date`, :mailheader:`From`, :mailheader:`Reply-To`, :" +"mailheader:`To`, :mailheader:`CC`, and :mailheader:`Subject` that are " +"present in the original headers but not the visible headers are added to the " +"visible headers." +msgstr "" + +#: ../Doc/library/mailbox.rst:1291 +msgid "" +"When a :class:`BabylMessage` instance is created based upon a :class:" +"`MaildirMessage` instance, the following conversions take place:" +msgstr "" + +#: ../Doc/library/mailbox.rst:1303 +msgid "\"forwarded\" label" +msgstr "" + +#: ../Doc/library/mailbox.rst:1306 +msgid "" +"When a :class:`BabylMessage` instance is created based upon an :class:" +"`mboxMessage` or :class:`MMDFMessage` instance, the :mailheader:`Status` " +"and :mailheader:`X-Status` headers are omitted and the following conversions " +"take place:" +msgstr "" + +#: ../Doc/library/mailbox.rst:1322 +msgid "" +"When a :class:`BabylMessage` instance is created based upon an :class:" +"`MHMessage` instance, the following conversions take place:" +msgstr "" +"Lorsqu'une instance :class:`BabylMessage` est créée sur la base d'une " +"instance :class:`MHMessage`, les conversions suivantes sont faites :" + +#: ../Doc/library/mailbox.rst:1337 +msgid ":class:`MMDFMessage`" +msgstr ":class:`MMDFMessage`" + +#: ../Doc/library/mailbox.rst:1342 +msgid "" +"A message with MMDF-specific behaviors. Parameter *message* has the same " +"meaning as with the :class:`Message` constructor." +msgstr "" +"Un message avec des comportements spécifiques à *MMDF*. Le paramètre " +"*message* a le même sens que pour le constructeur de :class:`Message`." + +#: ../Doc/library/mailbox.rst:1345 +msgid "" +"As with message in an mbox mailbox, MMDF messages are stored with the " +"sender's address and the delivery date in an initial line beginning with " +"\"From \". Likewise, flags that indicate the state of the message are " +"typically stored in :mailheader:`Status` and :mailheader:`X-Status` headers." +msgstr "" +"Comme pour le message d'une boîte de courriel *mbox*, les messages *MMDF* " +"sont stockés avec l'adresse de l'expéditeur et la date d'expédition dans la " +"ligne initiale commençant avec « From ». De même, les options indiquant " +"l'état du message sont stockées dans les en-têtes :mailheader:`Status` et :" +"mailheader:`X-Status`." + +#: ../Doc/library/mailbox.rst:1350 +msgid "" +"Conventional flags for MMDF messages are identical to those of mbox message " +"and are as follows:" +msgstr "" +"Les options conventionnelles des messages *MMDF* sont identiques à celles de " +"message *mbox* et sont les suivantes :" + +#: ../Doc/library/mailbox.rst:1371 +msgid "" +":class:`MMDFMessage` instances offer the following methods, which are " +"identical to those offered by :class:`mboxMessage`:" +msgstr "" +"Les méthodes des instances :class:`MMDFMessage` sont identiques à celles de :" +"class:`mboxMessage` et sont les suivantes :" + +#: ../Doc/library/mailbox.rst:1420 +msgid "" +"When an :class:`MMDFMessage` instance is created based upon a :class:" +"`MaildirMessage` instance, a \"From \" line is generated based upon the :" +"class:`MaildirMessage` instance's delivery date, and the following " +"conversions take place:" +msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`MaildirMessage`, la ligne « From » est générée sur la base " +"de la date de remise de l'instance :class:`MaildirMessage` et les " +"conversions suivantes ont lieu :" + +#: ../Doc/library/mailbox.rst:1439 +msgid "" +"When an :class:`MMDFMessage` instance is created based upon an :class:" +"`MHMessage` instance, the following conversions take place:" +msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`MHMessage`, les conversions suivantes sont faites :" + +#: ../Doc/library/mailbox.rst:1454 +msgid "" +"When an :class:`MMDFMessage` instance is created based upon a :class:" +"`BabylMessage` instance, the following conversions take place:" +msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`BabylMessage`, les conversions suivantes sont faites :" + +#: ../Doc/library/mailbox.rst:1469 +msgid "" +"When an :class:`MMDFMessage` instance is created based upon an :class:" +"`mboxMessage` instance, the \"From \" line is copied and all flags directly " +"correspond:" +msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`mboxMessage`, la ligne « From » est copiée et toutes les " +"options ont une correspondance directe :" + +#: ../Doc/library/mailbox.rst:1474 +msgid ":class:`mboxMessage` state" +msgstr "état de :class:`mboxMessage`" + +#: ../Doc/library/mailbox.rst:1489 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/mailbox.rst:1491 +msgid "" +"The following exception classes are defined in the :mod:`mailbox` module:" +msgstr "" +"Les exceptions de classes suivantes sont définies dans le module :mod:" +"`mailbox` :" + +#: ../Doc/library/mailbox.rst:1496 +msgid "The based class for all other module-specific exceptions." +msgstr "" +"Classe de base pour toutes les autres exceptions spécifiques à ce module." + +#: ../Doc/library/mailbox.rst:1501 +msgid "" +"Raised when a mailbox is expected but is not found, such as when " +"instantiating a :class:`Mailbox` subclass with a path that does not exist " +"(and with the *create* parameter set to ``False``), or when opening a folder " +"that does not exist." +msgstr "" +"Levée lorsqu'une boîte de courriel est attendue mais introuvable, comme " +"quand on instancie une sous-classe :class:`Mailbox` avec un chemin qui " +"n'existe pas (et avec le paramètre *create* fixé à ``False``), ou quand on " +"ouvre un répertoire qui n'existe pas." + +#: ../Doc/library/mailbox.rst:1508 +msgid "" +"Raised when a mailbox is not empty but is expected to be, such as when " +"deleting a folder that contains messages." +msgstr "" +"Levée lorsqu'une boîte de courriel n'est pas vide mais devrait l'être, comme " +"lorsqu'on supprime un répertoire contenant des messages." + +#: ../Doc/library/mailbox.rst:1514 +msgid "" +"Raised when some mailbox-related condition beyond the control of the program " +"causes it to be unable to proceed, such as when failing to acquire a lock " +"that another program already holds a lock, or when a uniquely-generated file " +"name already exists." +msgstr "" +"Levée lorsqu'une condition liée à la boîte de courriel est hors de contrôle " +"du programme et l'empêche de se poursuivre, comme lors de l’échec " +"d'acquisition du verrou ou lorsqu'un nom de fichier censé être unique existe " +"déjà." + +#: ../Doc/library/mailbox.rst:1522 +msgid "" +"Raised when the data in a file cannot be parsed, such as when an :class:`MH` " +"instance attempts to read a corrupted :file:`.mh_sequences` file." +msgstr "" +"Levée lorsque la donnée dans le fichier ne peut être analysée, comme lorsque " +"l'instance de :class:`MH` tente de lire un fichier :file:`.mh_sequences` " +"corrompu." + +#: ../Doc/library/mailbox.rst:1529 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/mailbox.rst:1531 +msgid "" +"A simple example of printing the subjects of all messages in a mailbox that " +"seem interesting::" +msgstr "" +"Un exemple simple d'affichage de l'objet, qui semble pertinent, de tous les " +"messages d'une boîte de courriel ::" + +#: ../Doc/library/mailbox.rst:1540 +msgid "" +"To copy all mail from a Babyl mailbox to an MH mailbox, converting all of " +"the format-specific information that can be converted::" +msgstr "" +"Cet exemple copie tout le courriel d'une boite de courriel au format " +"*Babyl* vers une boite de courriel au format *MH*, convertissant toute " +"l'information qu'il est possible de convertir du premier format vers le " +"second ::" + +#: ../Doc/library/mailbox.rst:1551 +msgid "" +"This example sorts mail from several mailing lists into different mailboxes, " +"being careful to avoid mail corruption due to concurrent modification by " +"other programs, mail loss due to interruption of the program, or premature " +"termination due to malformed messages in the mailbox::" +msgstr "" +"Cet exemple trie le courriel en provenance de plusieurs listes de diffusion " +"vers différentes boîtes de courriel, tout en évitant une corruption à cause " +"de modifications concurrentielles par d'autres programmes, une perte due à " +"une interruption du programme ou un arrêt prématuré causé par des messages " +"mal structurés ::" diff --git a/library/mailcap.po b/library/mailcap.po new file mode 100644 index 000000000..d91bf38f1 --- /dev/null +++ b/library/mailcap.po @@ -0,0 +1,164 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-09-28 19:35+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.9\n" + +#: ../Doc/library/mailcap.rst:2 +msgid ":mod:`mailcap` --- Mailcap file handling" +msgstr ":mod:`mailcap` — Manipulation de fichiers Mailcap" + +#: ../Doc/library/mailcap.rst:7 +msgid "**Source code:** :source:`Lib/mailcap.py`" +msgstr "**Code source :** :source:`Lib/mailcap.py`" + +#: ../Doc/library/mailcap.rst:11 +msgid "" +"Mailcap files are used to configure how MIME-aware applications such as mail " +"readers and Web browsers react to files with different MIME types. (The name " +"\"mailcap\" is derived from the phrase \"mail capability\".) For example, a " +"mailcap file might contain a line like ``video/mpeg; xmpeg %s``. Then, if " +"the user encounters an email message or Web document with the MIME type :" +"mimetype:`video/mpeg`, ``%s`` will be replaced by a filename (usually one " +"belonging to a temporary file) and the :program:`xmpeg` program can be " +"automatically started to view the file." +msgstr "" +"Les fichiers *mailcap* sont utilisés pour configurer la façon dont les " +"applications compatibles avec MIME, comme les clients mails ou les " +"navigateurs, réagissent aux différents fichiers de types MIME. (Le nom " +"*mailcap* est une contraction de l’expression « *mail capability* ».) Par " +"exemple, un fichier *mailcap* peut contenir une ligne de type ``video/mpeg; " +"xmpeg %s``. Ensuite, si l’utilisateur récupère un message mail ou un " +"document web avec un type MIME :mimetype:`video/mpeg`, ``%s`` est remplacé " +"par un nom de fichier (généralement celui d’un fichier temporaire) et le " +"programme :program:`xmpeg` peut automatiquement débuter la lecture de ce " +"dernier." + +#: ../Doc/library/mailcap.rst:20 +msgid "" +"The mailcap format is documented in :rfc:`1524`, \"A User Agent " +"Configuration Mechanism For Multimedia Mail Format Information,\" but is not " +"an Internet standard. However, mailcap files are supported on most Unix " +"systems." +msgstr "" +"Le format *mailcap* est documenté dans la :rfc:`1524` « A User Agent " +"Configuration Mechanism For Multimedia Mail Format Information », mais n’est " +"pas un standard Internet. Cependant, la plupart des systèmes Unix savent " +"gérer les fichiers *mailcap*." + +#: ../Doc/library/mailcap.rst:27 +msgid "" +"Return a 2-tuple; the first element is a string containing the command line " +"to be executed (which can be passed to :func:`os.system`), and the second " +"element is the mailcap entry for a given MIME type. If no matching MIME " +"type can be found, ``(None, None)`` is returned." +msgstr "" +"Renvoie un tuple à deux éléments ; le premier élément est une chaîne de " +"caractères (string) contenant la ligne de commande à exécuter (qui peut être " +"passée à :func:`os.system`), et le second élément est l’entrée *mailcap* " +"pour un type de MIME donné. Si le type MIME n’est pas identifié, ``(None, " +"None)`` est renvoyé." + +#: ../Doc/library/mailcap.rst:32 +msgid "" +"*key* is the name of the field desired, which represents the type of " +"activity to be performed; the default value is 'view', since in the most " +"common case you simply want to view the body of the MIME-typed data. Other " +"possible values might be 'compose' and 'edit', if you wanted to create a new " +"body of the given MIME type or alter the existing body data. See :rfc:" +"`1524` for a complete list of these fields." +msgstr "" +"*key* est le nom de champ souhaité, qui représente le type d’action à " +"exécuter ; la valeur par défaut est ``'view'``, puisque dans la majorité des " +"cas le besoin consiste juste à lire le corps (body) de la donnée de type " +"MIME. Les autres valeurs possibles peuvent être ``'compose'`` et ``'edit'``, " +"si le besoin consiste à créer un nouveau corps de données (body) ou modifier " +"celui existant. Voir la :rfc:`1524` pour une liste complète des champs." + +#: ../Doc/library/mailcap.rst:39 +msgid "" +"*filename* is the filename to be substituted for ``%s`` in the command line; " +"the default value is ``'/dev/null'`` which is almost certainly not what you " +"want, so usually you'll override it by specifying a filename." +msgstr "" +"*filename* est le nom de fichier à remplacer pour ``%s`` en ligne de " +"commande ; la valeur par défaut est ``’/dev/null’`` qui n’est certainement " +"pas celle que vous attendez. Donc la plupart du temps, le nom de fichier " +"doit être indiqué." + +#: ../Doc/library/mailcap.rst:43 +msgid "" +"*plist* can be a list containing named parameters; the default value is " +"simply an empty list. Each entry in the list must be a string containing " +"the parameter name, an equals sign (``'='``), and the parameter's value. " +"Mailcap entries can contain named parameters like ``%{foo}``, which will be " +"replaced by the value of the parameter named 'foo'. For example, if the " +"command line ``showpartial %{id} %{number} %{total}`` was in a mailcap file, " +"and *plist* was set to ``['id=1', 'number=2', 'total=3']``, the resulting " +"command line would be ``'showpartial 1 2 3'``." +msgstr "" +"*plist* peut être une liste contenant des noms de paramètres ; la valeur par " +"défaut est une simple liste vide. Chaque entrée dans la liste doit être une " +"chaîne de caractères contenant le nom du paramètre, un signe égal (``’=‘``), " +"ainsi que la valeur du paramètre. Les entrées *mailcap* peuvent contenir des " +"noms de paramètres tels que ``%{foo}``, remplacé par la valeur du paramètre " +"nommé *foo*. Par exemple, si la ligne de commande ``showpartial %{id} " +"%{number} %{total}`` est un fichier *mailcap*, et *plist* configuré à " +"``[‘id=1’, ‘number=2’, ‘total=3’]``, la ligne de commande qui en résulte est " +"``’showpartial 1 2 3’``." + +#: ../Doc/library/mailcap.rst:52 +msgid "" +"In a mailcap file, the \"test\" field can optionally be specified to test " +"some external condition (such as the machine architecture, or the window " +"system in use) to determine whether or not the mailcap line applies. :func:" +"`findmatch` will automatically check such conditions and skip the entry if " +"the check fails." +msgstr "" +"Dans un fichier *mailcap*, le champ « test » peut être renseigné de façon " +"optionnelle afin de tester certaines conditions externes (comme " +"l’architecture machine, ou le gestionnaire de fenêtre utilisé) afin de " +"déterminer si la ligne *mailcap* est pertinente ou non. :func:`findmatch` " +"vérifie automatiquement ces conditions et ignore l’entrée si la vérification " +"échoue." + +#: ../Doc/library/mailcap.rst:60 +msgid "" +"Returns a dictionary mapping MIME types to a list of mailcap file entries. " +"This dictionary must be passed to the :func:`findmatch` function. An entry " +"is stored as a list of dictionaries, but it shouldn't be necessary to know " +"the details of this representation." +msgstr "" +"Renvoie un dictionnaire qui associe les types MIME à une liste d’entrées de " +"fichier *mailcap*. Ce dictionnaire doit être transmis à la fonction :func:" +"`findmatch`. Une entrée est enregistrée en tant qu’une liste de " +"dictionnaires, mais il n’est pas nécessaire de connaitre les détails de " +"cette représentation." + +#: ../Doc/library/mailcap.rst:65 +msgid "" +"The information is derived from all of the mailcap files found on the " +"system. Settings in the user's mailcap file :file:`$HOME/.mailcap` will " +"override settings in the system mailcap files :file:`/etc/mailcap`, :file:`/" +"usr/etc/mailcap`, and :file:`/usr/local/etc/mailcap`." +msgstr "" +"L’information provient de tous les fichiers *mailcap* trouvés dans le " +"système. Les configurations réalisées dans le fichier *mailcap* du " +"répertoire utilisateur :file:`$HOME/.mailcap` outrepasse les configurations " +"systèmes des fichiers *mailcap* :file:`/etc/mailcap`, :file:`/usr/etc/" +"mailcap`, et :file:`/usr/local/etc/mailcap`." + +#: ../Doc/library/mailcap.rst:70 +msgid "An example usage::" +msgstr "Un exemple d’utilisation ::" diff --git a/library/markup.po b/library/markup.po new file mode 100644 index 000000000..553c3ba44 --- /dev/null +++ b/library/markup.po @@ -0,0 +1,32 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-09-24 21:40+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/markup.rst:5 +msgid "Structured Markup Processing Tools" +msgstr "Outils de traitement de balises structurées" + +#: ../Doc/library/markup.rst:7 +msgid "" +"Python supports a variety of modules to work with various forms of " +"structured data markup. This includes modules to work with the Standard " +"Generalized Markup Language (SGML) and the Hypertext Markup Language (HTML), " +"and several interfaces for working with the Extensible Markup Language (XML)." +msgstr "" +"Python intègre une variété de modules pour fonctionner avec différentes " +"formes de données structurées et balisées, comme le SGML (*Standard " +"Generalized Markup Language*), le HTML (*Hypert Markup Language*), et " +"quelques interfaces pour travailler avec du XML (*eXtensible Markup " +"Language*)." diff --git a/library/marshal.po b/library/marshal.po new file mode 100644 index 000000000..229f34ac0 --- /dev/null +++ b/library/marshal.po @@ -0,0 +1,225 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/marshal.rst:2 +msgid ":mod:`marshal` --- Internal Python object serialization" +msgstr ":mod:`marshal` — Sérialisation interne des objets Python" + +#: ../Doc/library/marshal.rst:10 +msgid "" +"This module contains functions that can read and write Python values in a " +"binary format. The format is specific to Python, but independent of machine " +"architecture issues (e.g., you can write a Python value to a file on a PC, " +"transport the file to a Sun, and read it back there). Details of the format " +"are undocumented on purpose; it may change between Python versions (although " +"it rarely does). [#]_" +msgstr "" +"Ce module contient des fonctions permettant de lire et écrire des valeurs " +"Python au format binaire. Ce format est propre à Python, mais indépendant " +"de l'architecture de la machine (p. ex., vous pouvez écrire une valeur " +"Python dans un fichier sur un PC, envoyer le fichier vers une machine Sun et " +"la lire à nouveau). Les détails du format sont volontairement non " +"documentés ; il peut changer d'une version Python à l'autre (bien que ce " +"soit rarement le cas). [#]_" + +#: ../Doc/library/marshal.rst:21 +msgid "" +"This is not a general \"persistence\" module. For general persistence and " +"transfer of Python objects through RPC calls, see the modules :mod:`pickle` " +"and :mod:`shelve`. The :mod:`marshal` module exists mainly to support " +"reading and writing the \"pseudo-compiled\" code for Python modules of :file:" +"`.pyc` files. Therefore, the Python maintainers reserve the right to modify " +"the marshal format in backward incompatible ways should the need arise. If " +"you're serializing and de-serializing Python objects, use the :mod:`pickle` " +"module instead -- the performance is comparable, version independence is " +"guaranteed, and pickle supports a substantially wider range of objects than " +"marshal." +msgstr "" +"Ce module ne permet pas de « sérialiser » des objets de manière permanente. " +"Pour des questions de sérialisation en général ou de transfert d'objets " +"Python par des appels RPC, référez-vous aux modules :mod:`pickle` et :mod:" +"`shelve`. Le module :mod:`marshal` existe principalement pour permettre la " +"lecture et l'écriture de code « pseudo-compilé » pour les modules Python des " +"fichiers :file:`.pyc`. Par conséquent, les mainteneurs Python se réservent " +"le droit de modifier le format *marshal* en cassant la rétrocompatibilité si " +"besoin. Si vous sérialisez et dé-sérialisez des objets Python, utilisez " +"plutôt le module :mod:`pickle` — les performances sont comparables, " +"l'indépendance par rapport à la version est garantie, et *pickle* prend en " +"charge une gamme d'objets beaucoup plus large que *marshal*." + +#: ../Doc/library/marshal.rst:33 +msgid "" +"The :mod:`marshal` module is not intended to be secure against erroneous or " +"maliciously constructed data. Never unmarshal data received from an " +"untrusted or unauthenticated source." +msgstr "" +"N'utilisez pas le module :mod:`marshal` pour lire des données erronées ou " +"malveillantes. Ne démantelez jamais des données reçues d'une source non " +"fiable ou non authentifiée." + +#: ../Doc/library/marshal.rst:39 +msgid "" +"Not all Python object types are supported; in general, only objects whose " +"value is independent from a particular invocation of Python can be written " +"and read by this module. The following types are supported: booleans, " +"integers, floating point numbers, complex numbers, strings, bytes, " +"bytearrays, tuples, lists, sets, frozensets, dictionaries, and code objects, " +"where it should be understood that tuples, lists, sets, frozensets and " +"dictionaries are only supported as long as the values contained therein are " +"themselves supported. The singletons :const:`None`, :const:`Ellipsis` and :" +"exc:`StopIteration` can also be marshalled and unmarshalled. For format " +"*version* lower than 3, recursive lists, sets and dictionaries cannot be " +"written (see below)." +msgstr "" +"Tous les types d'objets Python ne sont pas pris en charge ; en général, " +"seuls les objets dont la valeur est indépendante d'une invocation " +"particulière de Python peuvent être écrits et lus par ce module. Les types " +"suivants sont pris en charge : booléens, entiers, nombres à virgule " +"flottante, nombres complexes, chaînes de caractères, octets, *bytearrays*, " +"*n*-uplets, listes, ensembles, ensembles figés, dictionnaires et objets, " +"étant entendu que les *n*-uplets, listes, ensembles, ensembles figés et " +"dictionnaires sont pris en charge si les valeurs qu'ils contiennent sont " +"elles-mêmes prises en charge. Les singletons :const:`None`, :const:" +"`Ellipsis` et :exc:`StopIteration` peuvent également être « pseudo-" +"compilés » et « dé-pseudo-compilés ». Pour le format des *versions* " +"inférieures à 3, les listes récursives, les ensembles et les dictionnaires " +"ne peuvent pas être écrits (voir ci-dessous)." + +#: ../Doc/library/marshal.rst:51 +msgid "" +"There are functions that read/write files as well as functions operating on " +"bytes-like objects." +msgstr "" +"Il existe des fonctions de lecture-écriture de fichiers ainsi que des " +"fonctions opérant sur des objets octet." + +#: ../Doc/library/marshal.rst:54 +msgid "The module defines these functions:" +msgstr "Le module définit ces fonctions :" + +#: ../Doc/library/marshal.rst:59 +msgid "" +"Write the value on the open file. The value must be a supported type. The " +"file must be a writeable :term:`binary file`." +msgstr "" +"Écrit la valeur sur le fichier ouvert. La valeur doit être un type pris en " +"charge. Le fichier doit être un :term:`fichier binaire` ouvert en écriture." + +#: ../Doc/library/marshal.rst:62 +msgid "" +"If the value has (or contains an object that has) an unsupported type, a :" +"exc:`ValueError` exception is raised --- but garbage data will also be " +"written to the file. The object will not be properly read back by :func:" +"`load`." +msgstr "" +"Si la valeur est (ou contient un objet qui est) d'un type non implémenté, " +"une exception :exc:`ValueError` est levée — mais le contenu de la mémoire " +"sera également écrit dans le fichier. L'objet ne sera pas correctement lu " +"par :func:`load`." + +#: ../Doc/library/marshal.rst:66 +msgid "" +"The *version* argument indicates the data format that ``dump`` should use " +"(see below)." +msgstr "" +"L'argument *version* indique le format de données que le ``dump`` doit " +"utiliser (voir ci-dessous)." + +#: ../Doc/library/marshal.rst:72 +msgid "" +"Read one value from the open file and return it. If no valid value is read " +"(e.g. because the data has a different Python version's incompatible marshal " +"format), raise :exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. The " +"file must be a readable :term:`binary file`." +msgstr "" +"Lit une valeur du fichier ouvert et la renvoie. Si aucune valeur valide " +"n'est lue (p. ex. parce que les données ont un format décompilé incompatible " +"avec une autre version de Python), :exc:`EOFError`, :exc:`ValueError` ou :" +"exc:`TypeError` est levée. Le fichier doit être un :term:`fichier binaire` " +"ouvert en lecture." + +#: ../Doc/library/marshal.rst:79 +msgid "" +"If an object containing an unsupported type was marshalled with :func:" +"`dump`, :func:`load` will substitute ``None`` for the unmarshallable type." +msgstr "" +"Si un objet contenant un type non pris en charge a été dé-compilé avec :func:" +"`dump`, :func:`load` remplacera le type non « dé-compilable » par ``None``." + +#: ../Doc/library/marshal.rst:85 +msgid "" +"Return the bytes object that would be written to a file by ``dump(value, " +"file)``. The value must be a supported type. Raise a :exc:`ValueError` " +"exception if value has (or contains an object that has) an unsupported type." +msgstr "" +"Renvoie les octets qui seraient écrits dans un fichier par ``dump(value, " +"file)``. La valeur doit être un type pris en charge. Lève une exception :" +"exc:`ValueError` si la valeur a (ou contient un objet qui a) un type qui " +"n'est pas pris en charge." + +#: ../Doc/library/marshal.rst:89 +msgid "" +"The *version* argument indicates the data format that ``dumps`` should use " +"(see below)." +msgstr "" +"L'argument *version* indique le format de données que ``dumps`` doivent " +"utiliser (voir ci-dessous)." + +#: ../Doc/library/marshal.rst:95 +msgid "" +"Convert the :term:`bytes-like object` to a value. If no valid value is " +"found, raise :exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. Extra " +"bytes in the input are ignored." +msgstr "" +"Convertit le :term:`bytes-like object` en une valeur. Si aucune valeur " +"valide n'est trouvée, :exc:`EOFError`, :exc:`ValueError` ou :exc:`TypeError` " +"est levée. Les octets supplémentaires de l'entrée sont ignorés." + +#: ../Doc/library/marshal.rst:100 +msgid "In addition, the following constants are defined:" +msgstr "De plus, les constantes suivantes sont définies :" + +#: ../Doc/library/marshal.rst:104 +msgid "" +"Indicates the format that the module uses. Version 0 is the historical " +"format, version 1 shares interned strings and version 2 uses a binary format " +"for floating point numbers. Version 3 adds support for object instancing and " +"recursion. The current version is 4." +msgstr "" +"Indique le format que le module utilise. La version 0 est le format " +"originel, la version 1 partage des chaînes de caractères internes et la " +"version 2 utilise un format binaire pour les nombres à virgule flottante. La " +"version 3 ajoute la prise en charge de l'instanciation et de la récursivité " +"des objets. La version actuelle est la 4." + +#: ../Doc/library/marshal.rst:112 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/marshal.rst:113 +msgid "" +"The name of this module stems from a bit of terminology used by the " +"designers of Modula-3 (amongst others), who use the term \"marshalling\" for " +"shipping of data around in a self-contained form. Strictly speaking, \"to " +"marshal\" means to convert some data from internal to external form (in an " +"RPC buffer for instance) and \"unmarshalling\" for the reverse process." +msgstr "" +"Le nom de ce module provient d'un peu de terminologie utilisée par les " +"concepteurs de Modula-3 (entre autres), qui utilisent le terme *marshalling* " +"pour l'envoi de données sous une forme autonome. À proprement parler, *to " +"marshal* signifie convertir certaines données d'une forme interne à une " +"forme externe (dans une mémoire tampon RPC par exemple) et *unmarshalling* " +"désigne le processus inverse." diff --git a/library/math.po b/library/math.po new file mode 100644 index 000000000..4a6332715 --- /dev/null +++ b/library/math.po @@ -0,0 +1,714 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-06-13 14:21+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/library/math.rst:2 +msgid ":mod:`math` --- Mathematical functions" +msgstr "Fonctions mathématiques — :mod:`math`" + +#: ../Doc/library/math.rst:13 +msgid "" +"This module provides access to the mathematical functions defined by the C " +"standard." +msgstr "" +"Ce module fournit l'accès aux fonctions mathématiques définies par la norme " +"C." + +#: ../Doc/library/math.rst:16 +msgid "" +"These functions cannot be used with complex numbers; use the functions of " +"the same name from the :mod:`cmath` module if you require support for " +"complex numbers. The distinction between functions which support complex " +"numbers and those which don't is made since most users do not want to learn " +"quite as much mathematics as required to understand complex numbers. " +"Receiving an exception instead of a complex result allows earlier detection " +"of the unexpected complex number used as a parameter, so that the programmer " +"can determine how and why it was generated in the first place." +msgstr "" +"Ces fonctions ne peuvent pas être utilisées avec les nombres complexes ; si " +"vous avez besoin de la prise en charge des nombres complexes, utilisez les " +"fonctions du même nom du module :mod:`cmath`. La séparation entre les " +"fonctions qui gèrent les nombres complexes et les autres vient du constat " +"que tous les utilisateurs ne souhaitent pas acquérir le niveau mathématique " +"nécessaire à la compréhension des nombres complexes. Recevoir une exception " +"plutôt qu'un nombre complexe en retour d'une fonction permet au programmeur " +"de déterminer immédiatement comment et pourquoi ce nombre a été généré, " +"avant que celui-ci ne soit passé involontairement en paramètre d'une autre " +"fonction. " + +#: ../Doc/library/math.rst:25 +msgid "" +"The following functions are provided by this module. Except when explicitly " +"noted otherwise, all return values are floats." +msgstr "" +"Les fonctions suivantes sont fournies dans ce module. Sauf mention contraire " +"explicite, toutes les valeurs de retour sont des flottants." + +#: ../Doc/library/math.rst:30 +msgid "Number-theoretic and representation functions" +msgstr "Fonctions arithmétiques et de représentation" + +#: ../Doc/library/math.rst:34 +msgid "" +"Return the ceiling of *x*, the smallest integer greater than or equal to " +"*x*. If *x* is not a float, delegates to ``x.__ceil__()``, which should " +"return an :class:`~numbers.Integral` value." +msgstr "" +"Renvoie la partie entière par excès de *x*, le plus petit entier supérieur " +"ou égal à *x*. Si *x* est un flottant, délègue à ``x.__ceil()__``, qui doit " +"renvoyer une valeur :class:`~numbers.Integral`." + +#: ../Doc/library/math.rst:41 +msgid "" +"Return a float with the magnitude (absolute value) of *x* but the sign of " +"*y*. On platforms that support signed zeros, ``copysign(1.0, -0.0)`` " +"returns *-1.0*." +msgstr "" +"Renvoie un flottant contenant la magnitude (valeur absolue) de *x* mais avec " +"le signe de *y*. Sur les plates-formes prenant en charge les zéros signés, " +"``copysign(1.0, -0.0)`` renvoie ``-1.0``." + +#: ../Doc/library/math.rst:48 +msgid "Return the absolute value of *x*." +msgstr "Renvoie la valeur absolue de *x*." + +#: ../Doc/library/math.rst:53 +msgid "" +"Return *x* factorial as an integer. Raises :exc:`ValueError` if *x* is not " +"integral or is negative." +msgstr "" +"Renvoie la factorielle de *x* sous forme d'entier. Lève une :exc:" +"`ValueError` si *x* n'est pas entier ou s'il est négatif." + +#: ../Doc/library/math.rst:59 +msgid "" +"Return the floor of *x*, the largest integer less than or equal to *x*. If " +"*x* is not a float, delegates to ``x.__floor__()``, which should return an :" +"class:`~numbers.Integral` value." +msgstr "" +"Renvoie la partie entière (par défaut) de *x*, le plus grand entier " +"inférieur ou égal à *x*. Si *x* n'est pas un flottant, délègue à ``x." +"__floor()__``, qui doit renvoyer une valeur :class:`~numbers.Integral`." + +#: ../Doc/library/math.rst:66 +msgid "" +"Return ``fmod(x, y)``, as defined by the platform C library. Note that the " +"Python expression ``x % y`` may not return the same result. The intent of " +"the C standard is that ``fmod(x, y)`` be exactly (mathematically; to " +"infinite precision) equal to ``x - n*y`` for some integer *n* such that the " +"result has the same sign as *x* and magnitude less than ``abs(y)``. " +"Python's ``x % y`` returns a result with the sign of *y* instead, and may " +"not be exactly computable for float arguments. For example, ``fmod(-1e-100, " +"1e100)`` is ``-1e-100``, but the result of Python's ``-1e-100 % 1e100`` is " +"``1e100-1e-100``, which cannot be represented exactly as a float, and rounds " +"to the surprising ``1e100``. For this reason, function :func:`fmod` is " +"generally preferred when working with floats, while Python's ``x % y`` is " +"preferred when working with integers." +msgstr "" +"Renvoie ``fmod(x, y)``, tel que défini par la bibliothèque C de la plate-" +"forme. Notez que l'expression Python ``x % y`` peut ne pas renvoyer le même " +"résultat. Le sens du standard C pour ``fmod(x, y)`` est d'être exactement " +"(mathématiquement, à une précision infinie) égal à ``x - n*y`` pour un " +"entier *n* tel que le résultat a le signe de *x* et une magnitude inférieure " +"à ``abs(y)``. L'expression Python ``x % y`` renvoie un résultat avec le " +"signe de *y*, et peut ne pas être calculable exactement pour des arguments " +"flottants. Par exemple : ``fmod(-1e-100, 1e100)`` est ``-1e-100``, mais le " +"résultat de l'expression Python ``-1e-100 % 1e100`` est ``1e100-1e-100``, " +"qui ne peut pas être représenté exactement par un flottant et donc qui est " +"arrondi à ``1e100``. Pour cette raison, la fonction :func:`fmod` est " +"généralement privilégiée quand des flottants sont manipulés, alors que " +"l'expression Python ``x % y`` est privilégiée quand des entiers sont " +"manipulés." + +#: ../Doc/library/math.rst:81 +msgid "" +"Return the mantissa and exponent of *x* as the pair ``(m, e)``. *m* is a " +"float and *e* is an integer such that ``x == m * 2**e`` exactly. If *x* is " +"zero, returns ``(0.0, 0)``, otherwise ``0.5 <= abs(m) < 1``. This is used " +"to \"pick apart\" the internal representation of a float in a portable way." +msgstr "" +"Renvoie la mantisse et l'exposant de *x* dans un couple ``(m, e)``. *m* est " +"un flottant et *e* est un entier tels que ``x == m * 2**e`` exactement. Si " +"*x* vaut zéro, renvoie ``(0, 0)``, sinon ``0.5 <= abs(m) < 1``. Ceci est " +"utilisé pour « extraire » la représentation interne d'un flottant de manière " +"portable." + +#: ../Doc/library/math.rst:89 +msgid "" +"Return an accurate floating point sum of values in the iterable. Avoids " +"loss of precision by tracking multiple intermediate partial sums::" +msgstr "" +"Renvoie une somme flottante exacte des valeurs dans l'itérable. Évite la " +"perte de précision en gardant plusieurs sommes partielles intermédiaires ::" + +#: ../Doc/library/math.rst:97 +msgid "" +"The algorithm's accuracy depends on IEEE-754 arithmetic guarantees and the " +"typical case where the rounding mode is half-even. On some non-Windows " +"builds, the underlying C library uses extended precision addition and may " +"occasionally double-round an intermediate sum causing it to be off in its " +"least significant bit." +msgstr "" +"La précision de cet algorithme dépend des garanties arithmétiques de " +"IEEE-754 et des cas standards où le mode d'arrondi est *half-even*. Sur " +"certaines versions non Windows, la bibliothèque C sous-jacente utilise une " +"addition par précision étendue et peut occasionnellement effectuer un double-" +"arrondi sur une somme intermédiaire causant la prise d'une mauvaise valeur " +"du bit de poids faible." + +#: ../Doc/library/math.rst:103 +msgid "" +"For further discussion and two alternative approaches, see the `ASPN " +"cookbook recipes for accurate floating point summation `_\\." +msgstr "" +"Pour de plus amples discussions et deux approches alternatives, voir `ASPN " +"cookbook recipes for accurate floating point summation `_\\." + +#: ../Doc/library/math.rst:110 +msgid "" +"Return the greatest common divisor of the integers *a* and *b*. If either " +"*a* or *b* is nonzero, then the value of ``gcd(a, b)`` is the largest " +"positive integer that divides both *a* and *b*. ``gcd(0, 0)`` returns ``0``." +msgstr "" +"Renvoie le plus grand diviseur commun des entiers *a* et *b*. Si *a* ou *b* " +"est différent de zéro, la valeur de ``gcd(a, b)`` est le plus grand entier " +"positif qui divise à la fois *a* et *b*. ``gcd(0, 0)`` renvoie ``0``." + +#: ../Doc/library/math.rst:120 +msgid "" +"Return ``True`` if the values *a* and *b* are close to each other and " +"``False`` otherwise." +msgstr "" +"Renvoie ``True`` si les valeurs *a* et *b* sont proches l'une de l'autre, et " +"``False`` sinon." + +#: ../Doc/library/math.rst:123 +msgid "" +"Whether or not two values are considered close is determined according to " +"given absolute and relative tolerances." +msgstr "" +"Déterminer si deux valeurs sont considérées comme « proches » se fait à " +"l'aide des tolérances absolues et relatives passées en paramètres." + +#: ../Doc/library/math.rst:126 +msgid "" +"*rel_tol* is the relative tolerance -- it is the maximum allowed difference " +"between *a* and *b*, relative to the larger absolute value of *a* or *b*. " +"For example, to set a tolerance of 5%, pass ``rel_tol=0.05``. The default " +"tolerance is ``1e-09``, which assures that the two values are the same " +"within about 9 decimal digits. *rel_tol* must be greater than zero." +msgstr "" +"*rel_tol* est la tolérance relative — c'est la différence maximale permise " +"entre *a* et *b*, relativement à la plus grande valeur de *a* ou de *b*. Par " +"exemple, pour définir une tolérance de 5%,, précisez ``rel_tol=0.05``. La " +"tolérance par défaut est ``1e-09``, ce qui assure que deux valeurs sont les " +"mêmes à partir de la 9\\ :sup:`e` décimale. *rel_tol* doit être supérieur à " +"zéro." + +#: ../Doc/library/math.rst:132 +msgid "" +"*abs_tol* is the minimum absolute tolerance -- useful for comparisons near " +"zero. *abs_tol* must be at least zero." +msgstr "" +"*abs_tol* est la tolérance absolue minimale — utile pour les comparaisons " +"proches de zéro. *abs_tol* doit valoir au moins zéro." + +#: ../Doc/library/math.rst:135 +msgid "" +"If no errors occur, the result will be: ``abs(a-b) <= max(rel_tol * " +"max(abs(a), abs(b)), abs_tol)``." +msgstr "" +"Si aucune erreur n'est rencontrée, le résultat sera : ``abs(a-b) <= " +"max(rel_tol * max(abs(a), abs(b)), abs_tol)``." + +#: ../Doc/library/math.rst:138 +msgid "" +"The IEEE 754 special values of ``NaN``, ``inf``, and ``-inf`` will be " +"handled according to IEEE rules. Specifically, ``NaN`` is not considered " +"close to any other value, including ``NaN``. ``inf`` and ``-inf`` are only " +"considered close to themselves." +msgstr "" +"Les valeurs spécifiques suivantes : ``NaN``, ``inf``, et ``-inf`` définies " +"dans la norme IEEE 754 seront manipulées selon les règles du standard IEEE. " +"En particulier, ``NaN`` n'est considéré proche d'aucune autre valeur, " +"``NaN`` inclus. ``inf`` et ``-inf`` ne sont considérées proches que d'elles-" +"mêmes." + +#: ../Doc/library/math.rst:147 +msgid ":pep:`485` -- A function for testing approximate equality" +msgstr ":pep:`485` — Une fonction pour tester des quasi-égalités" + +#: ../Doc/library/math.rst:152 +msgid "" +"Return ``True`` if *x* is neither an infinity nor a NaN, and ``False`` " +"otherwise. (Note that ``0.0`` *is* considered finite.)" +msgstr "" +"Renvoie ``True`` si *n* n'est ni infini, ni NaN, et ``False`` sinon. (Notez " +"que ``0.0`` *est* considéré comme fini.)" + +#: ../Doc/library/math.rst:160 +msgid "" +"Return ``True`` if *x* is a positive or negative infinity, and ``False`` " +"otherwise." +msgstr "" +"Renvoie ``True`` si *x* vaut l'infini positif ou négatif, et ``False`` sinon." + +#: ../Doc/library/math.rst:166 +msgid "" +"Return ``True`` if *x* is a NaN (not a number), and ``False`` otherwise." +msgstr "" +"Renvoie ``True`` si *x* est NaN (*Not a Number*, ou *Pas un Nombre* en " +"français), et ``False`` sinon." + +#: ../Doc/library/math.rst:171 +msgid "" +"Return ``x * (2**i)``. This is essentially the inverse of function :func:" +"`frexp`." +msgstr "" +"Renvoie ``x * (2**i)``. C'est essentiellement l'inverse de la fonction :func:" +"`frexp`." + +#: ../Doc/library/math.rst:177 +msgid "" +"Return the fractional and integer parts of *x*. Both results carry the sign " +"of *x* and are floats." +msgstr "" +"Renvoie les parties entière et fractionnelle de *x*. Les deux résultats ont " +"le signe de *x* et sont flottants." + +#: ../Doc/library/math.rst:183 +msgid "" +"Return the IEEE 754-style remainder of *x* with respect to *y*. For finite " +"*x* and finite nonzero *y*, this is the difference ``x - n*y``, where ``n`` " +"is the closest integer to the exact value of the quotient ``x / y``. If " +"``x / y`` is exactly halfway between two consecutive integers, the nearest " +"*even* integer is used for ``n``. The remainder ``r = remainder(x, y)`` " +"thus always satisfies ``abs(r) <= 0.5 * abs(y)``." +msgstr "" +"Renvoie le reste selon la norme IEEE 754 de *x* par rapport à *y*. Pour *x* " +"fini et *y* fini non nul, il s'agit de la différence ``x - n*y``, où ``n`` " +"est l'entier le plus proche de la valeur exacte du quotient ``x / y``. Si " +"``x / y`` est exactement à mi-chemin de deux entiers consécutifs, le plus " +"proche entier *pair* est utilisé pour ``n``. Ainsi, le reste ``r = " +"remainder(x, y)`` vérifie toujours ``abs(r) <= 0.5 * abs(y)``." + +#: ../Doc/library/math.rst:190 +msgid "" +"Special cases follow IEEE 754: in particular, ``remainder(x, math.inf)`` is " +"*x* for any finite *x*, and ``remainder(x, 0)`` and ``remainder(math.inf, " +"x)`` raise :exc:`ValueError` for any non-NaN *x*. If the result of the " +"remainder operation is zero, that zero will have the same sign as *x*." +msgstr "" +"Les cas spéciaux suivent la norme IEEE 754 : en particulier, ``remainder(x, " +"math.inf)`` vaut *x* pour tout *x* fini, et ``remainder(x, 0)`` et " +"``remainder(math.inf, x)`` lèvent :exc:`ValueError` pour tout *x* *non-NaN*. " +"Si le résultat de l'opération *remainder* est zéro, alors ce zéro aura le " +"même signe que *x*." + +#: ../Doc/library/math.rst:196 +msgid "" +"On platforms using IEEE 754 binary floating-point, the result of this " +"operation is always exactly representable: no rounding error is introduced." +msgstr "" +"Sur les plates-formes utilisant la norme IEEE 754 pour les nombres à virgule " +"flottante en binaire, le résultat de cette opération est toujours exactement " +"représentable : aucune erreur d'arrondi n'est introduite." + +#: ../Doc/library/math.rst:204 +msgid "" +"Return the :class:`~numbers.Real` value *x* truncated to an :class:`~numbers." +"Integral` (usually an integer). Delegates to :meth:`x.__trunc__() `." +msgstr "" +"Renvoie la valeur :class:`~numbers.Real` *x* tronquée en un :class:`~numbers." +"Integral` (habituellement un entier). Délègue à :meth:`x.__trunc__() `." + +#: ../Doc/library/math.rst:209 +msgid "" +"Note that :func:`frexp` and :func:`modf` have a different call/return " +"pattern than their C equivalents: they take a single argument and return a " +"pair of values, rather than returning their second return value through an " +"'output parameter' (there is no such thing in Python)." +msgstr "" +"Notez que les fonctions :func:`frexp` et :func:`modf` ont un système d'appel " +"différent de leur homologue C : elles prennent un seul argument et renvoient " +"une paire de valeurs au lieu de placer la seconde valeur de retour dans un " +"*paramètre de sortie* (cela n'existe pas en Python)." + +#: ../Doc/library/math.rst:214 +msgid "" +"For the :func:`ceil`, :func:`floor`, and :func:`modf` functions, note that " +"*all* floating-point numbers of sufficiently large magnitude are exact " +"integers. Python floats typically carry no more than 53 bits of precision " +"(the same as the platform C double type), in which case any float *x* with " +"``abs(x) >= 2**52`` necessarily has no fractional bits." +msgstr "" +"Pour les fonctions :func:`ceil`, :func:`floor`, et :func:`modf`, notez que " +"*tous* les nombres flottants de magnitude suffisamment grande sont des " +"entiers exacts. Les flottants de Python n'ont généralement pas plus de 53 " +"*bits* de précision (tels que le type C ``double`` de la plate-forme), en " +"quel cas tout flottant *x* tel que ``abs(x) >= 2**52`` n'a aucun *bit* " +"fractionnel." + +#: ../Doc/library/math.rst:222 +msgid "Power and logarithmic functions" +msgstr "Fonctions logarithme et exponentielle" + +#: ../Doc/library/math.rst:226 +msgid "" +"Return *e* raised to the power *x*, where *e* = 2.718281... is the base of " +"natural logarithms. This is usually more accurate than ``math.e ** x`` or " +"``pow(math.e, x)``." +msgstr "" +"Renvoie *e* à la puissance *x*, où *e* = 2.718281… est la base des " +"logarithmes naturels. Cela est en général plus précis que ``math.e ** x`` ou " +"``pow(math.e, x)``." + +#: ../Doc/library/math.rst:233 +msgid "" +"Return *e* raised to the power *x*, minus 1. Here *e* is the base of " +"natural logarithms. For small floats *x*, the subtraction in ``exp(x) - 1`` " +"can result in a `significant loss of precision `_\\; the :func:`expm1` function provides a way to " +"compute this quantity to full precision::" +msgstr "" +"Renvoie *e* à la puissance *x*, moins 1. Ici, *e* est la base des " +"logarithmes naturels. Pour de petits flottants *x*, la soustraction ``exp(x) " +"- 1`` peut résulter en une `perte significative de précision `_\\ ; la fonction :func:`expm1` " +"fournit un moyen de calculer cette quantité en précision complète ::" + +#: ../Doc/library/math.rst:250 +msgid "With one argument, return the natural logarithm of *x* (to base *e*)." +msgstr "Avec un argument, renvoie le logarithme naturel de *x* (en base *e*)." + +#: ../Doc/library/math.rst:252 +msgid "" +"With two arguments, return the logarithm of *x* to the given *base*, " +"calculated as ``log(x)/log(base)``." +msgstr "" +"Avec deux arguments, renvoie le logarithme de *x* en la *base* donnée, " +"calculé par ``log(x)/log(base)``." + +#: ../Doc/library/math.rst:258 +msgid "" +"Return the natural logarithm of *1+x* (base *e*). The result is calculated " +"in a way which is accurate for *x* near zero." +msgstr "" +"Renvoie le logarithme naturel de *1+x* (en base *e*). Le résultat est " +"calculé par un moyen qui reste exact pour *x* proche de zéro." + +#: ../Doc/library/math.rst:264 +msgid "" +"Return the base-2 logarithm of *x*. This is usually more accurate than " +"``log(x, 2)``." +msgstr "" +"Renvoie le logarithme en base 2 de *x*. C'est en général plus précis que " +"``log(x, 2)``." + +#: ../Doc/library/math.rst:271 +msgid "" +":meth:`int.bit_length` returns the number of bits necessary to represent an " +"integer in binary, excluding the sign and leading zeros." +msgstr "" +":meth:`int.bit_length` renvoie le nombre de bits nécessaires pour " +"représenter un entier en binaire, en excluant le signe et les zéros de début." + +#: ../Doc/library/math.rst:277 +msgid "" +"Return the base-10 logarithm of *x*. This is usually more accurate than " +"``log(x, 10)``." +msgstr "" +"Renvoie le logarithme de *x* en base 10. C'est habituellement plus exact que " +"``log(x, 10)``." + +#: ../Doc/library/math.rst:283 +msgid "" +"Return ``x`` raised to the power ``y``. Exceptional cases follow Annex 'F' " +"of the C99 standard as far as possible. In particular, ``pow(1.0, x)`` and " +"``pow(x, 0.0)`` always return ``1.0``, even when ``x`` is a zero or a NaN. " +"If both ``x`` and ``y`` are finite, ``x`` is negative, and ``y`` is not an " +"integer then ``pow(x, y)`` is undefined, and raises :exc:`ValueError`." +msgstr "" +"Renvoie ``x`` élevé à la puissance ``y``. Les cas exceptionnels suivent " +"l'annexe 'F' du standard C99 autant que possible. En particulier, ``pow(1.0, " +"x)`` et ``pow(x, 0.0)`` renvoient toujours ``1.0``, même si ``x`` est zéro " +"ou NaN. Si à la fois ``x`` *et* ``y`` sont finis, ``x`` est négatif et ``y`` " +"n'est pas entier, alors ``pow(x, y)`` est non défini et lève une :exc:" +"`ValueError`." + +#: ../Doc/library/math.rst:290 +msgid "" +"Unlike the built-in ``**`` operator, :func:`math.pow` converts both its " +"arguments to type :class:`float`. Use ``**`` or the built-in :func:`pow` " +"function for computing exact integer powers." +msgstr "" +"À l'inverse de l'opérateur interne ``**``, la fonction :func:`math.pow` " +"convertit ses deux arguments en :class:`float`. Utilisez ``**`` ou la " +"primitive :func:`pow` pour calculer des puissances exactes d'entiers." + +#: ../Doc/library/math.rst:297 +msgid "Return the square root of *x*." +msgstr "Renvoie la racine carrée de *x*." + +#: ../Doc/library/math.rst:301 +msgid "Trigonometric functions" +msgstr "Fonctions trigonométriques" + +#: ../Doc/library/math.rst:305 +msgid "Return the arc cosine of *x*, in radians." +msgstr "Renvoie l'arc cosinus de *x*, en radians." + +#: ../Doc/library/math.rst:310 +msgid "Return the arc sine of *x*, in radians." +msgstr "Renvoie l'arc sinus de *x*, en radians." + +#: ../Doc/library/math.rst:315 +msgid "Return the arc tangent of *x*, in radians." +msgstr "Renvoie l'arc tangente de *x*, en radians." + +#: ../Doc/library/math.rst:320 +msgid "" +"Return ``atan(y / x)``, in radians. The result is between ``-pi`` and " +"``pi``. The vector in the plane from the origin to point ``(x, y)`` makes " +"this angle with the positive X axis. The point of :func:`atan2` is that the " +"signs of both inputs are known to it, so it can compute the correct quadrant " +"for the angle. For example, ``atan(1)`` and ``atan2(1, 1)`` are both " +"``pi/4``, but ``atan2(-1, -1)`` is ``-3*pi/4``." +msgstr "" +"Renvoie ``atan(y / x)``, en radians. Le résultat est entre ``-pi`` et " +"``pi``. Le vecteur du plan allant de l'origine vers le point ``(x, y)`` " +"forme cet angle avec l'axe X positif. L'intérêt de :func:`atan2` est que le " +"signe des deux entrées est connu. Donc elle peut calculer le bon quadrant " +"pour l'angle. par exemple ``atan(1)`` et ``atan2(1, 1)`` donnent tous deux " +"``pi/4``, mais ``atan2(-1, -1)`` donne ``-3*pi/4``." + +#: ../Doc/library/math.rst:330 +msgid "Return the cosine of *x* radians." +msgstr "Renvoie le cosinus de *x* radians." + +#: ../Doc/library/math.rst:335 +msgid "" +"Return the Euclidean norm, ``sqrt(x*x + y*y)``. This is the length of the " +"vector from the origin to point ``(x, y)``." +msgstr "" +"Renvoie la norme euclidienne ``sqrt(x*x + y*y)``. C'est la longueur du " +"vecteur allant de l'origine au point ``(x, y)``." + +#: ../Doc/library/math.rst:341 +msgid "Return the sine of *x* radians." +msgstr "Renvoie le sinus de *x* radians." + +#: ../Doc/library/math.rst:346 +msgid "Return the tangent of *x* radians." +msgstr "Renvoie la tangente de *x* radians." + +#: ../Doc/library/math.rst:350 +msgid "Angular conversion" +msgstr "Conversion angulaire" + +#: ../Doc/library/math.rst:354 +msgid "Convert angle *x* from radians to degrees." +msgstr "Convertit l'angle *x* de radians en degrés." + +#: ../Doc/library/math.rst:359 +msgid "Convert angle *x* from degrees to radians." +msgstr "Convertit l'ange *x* de degrés en radians." + +#: ../Doc/library/math.rst:363 +msgid "Hyperbolic functions" +msgstr "Fonctions hyperboliques" + +#: ../Doc/library/math.rst:365 +msgid "" +"`Hyperbolic functions `_ " +"are analogs of trigonometric functions that are based on hyperbolas instead " +"of circles." +msgstr "" +"`Les fonctions hyperboliques `_ sont analogues à des fonctions trigonométriques qui " +"sont basées sur des hyperboles au lieu de cercles." + +#: ../Doc/library/math.rst:371 +msgid "Return the inverse hyperbolic cosine of *x*." +msgstr "Renvoie l'arc cosinus hyperbolique de *x*." + +#: ../Doc/library/math.rst:376 +msgid "Return the inverse hyperbolic sine of *x*." +msgstr "Renvoie l'arc sinus hyperbolique de *x*." + +#: ../Doc/library/math.rst:381 +msgid "Return the inverse hyperbolic tangent of *x*." +msgstr "Renvoie l'arc tangente hyperbolique de *x*." + +#: ../Doc/library/math.rst:386 +msgid "Return the hyperbolic cosine of *x*." +msgstr "Renvoie le cosinus hyperbolique de *x*." + +#: ../Doc/library/math.rst:391 +msgid "Return the hyperbolic sine of *x*." +msgstr "Renvoie le sinus hyperbolique de *x*." + +#: ../Doc/library/math.rst:396 +msgid "Return the hyperbolic tangent of *x*." +msgstr "Renvoie la tangente hyperbolique de *x*." + +#: ../Doc/library/math.rst:400 +msgid "Special functions" +msgstr "Fonctions spéciales" + +#: ../Doc/library/math.rst:404 +msgid "" +"Return the `error function `_ " +"at *x*." +msgstr "" +"Renvoie la `fonction d'erreur `_ en *x*." + +#: ../Doc/library/math.rst:407 +msgid "" +"The :func:`erf` function can be used to compute traditional statistical " +"functions such as the `cumulative standard normal distribution `_::" +msgstr "" +"La fonction :func:`erf` peut être utilisée pour calculer des fonctions " +"statistiques usuelles telles que la `répartition de la loi normale `_ ::" + +#: ../Doc/library/math.rst:420 +msgid "" +"Return the complementary error function at *x*. The `complementary error " +"function `_ is defined as " +"``1.0 - erf(x)``. It is used for large values of *x* where a subtraction " +"from one would cause a `loss of significance `_\\." +msgstr "" +"Renvoie la fonction d'erreur complémentaire en *x*. La `fonction d'erreur " +"complémentaire `_ est " +"définie par ``1.0 - erf(x)``. Elle est utilisée pour les grandes valeurs de " +"*x*, où la soustraction en partant de 1,0 entraînerait une `perte de " +"précision `_\\." + +#: ../Doc/library/math.rst:431 +msgid "" +"Return the `Gamma function `_ " +"at *x*." +msgstr "" +"Renvoie la `fonction Gamma `_ " +"en *x*." + +#: ../Doc/library/math.rst:439 +msgid "" +"Return the natural logarithm of the absolute value of the Gamma function at " +"*x*." +msgstr "" +"Renvoie le logarithme naturel de la valeur absolue de la fonction gamma en " +"*x*." + +#: ../Doc/library/math.rst:446 +msgid "Constants" +msgstr "Constantes" + +#: ../Doc/library/math.rst:450 +msgid "The mathematical constant *π* = 3.141592..., to available precision." +msgstr "La constante mathématique *π* = 3.141592…, à la précision disponible." + +#: ../Doc/library/math.rst:455 +msgid "The mathematical constant *e* = 2.718281..., to available precision." +msgstr "La constante mathématique *e* = 2.718281…, à la précision disponible." + +#: ../Doc/library/math.rst:460 +msgid "" +"The mathematical constant *τ* = 6.283185..., to available precision. Tau is " +"a circle constant equal to 2\\ *π*, the ratio of a circle's circumference to " +"its radius. To learn more about Tau, check out Vi Hart's video `Pi is " +"(still) Wrong `_, and start " +"celebrating `Tau day `_ by eating twice as much pie!" +msgstr "" +"La constante mathématique *τ* = 6.283185…, à la précision disponible. Tau " +"est une constante du cercle égale à 2 \\*π*, le rapport de la circonférence " +"d'un cercle à son rayon. Pour en apprendre plus sur Tau, regardez la vidéo " +"de Vi Hart, `Pi is (still) Wrong `_, et profitez-en pour célébrer le `Jour de Tau `_ en bavardant comme deux pies !" + +#: ../Doc/library/math.rst:471 +msgid "" +"A floating-point positive infinity. (For negative infinity, use ``-math." +"inf``.) Equivalent to the output of ``float('inf')``." +msgstr "" +"Un flottant positif infini. (Pour un infini négatif, utilisez ``-math." +"inf``.) Équivalent au résultat de ``float('inf')``." + +#: ../Doc/library/math.rst:479 +msgid "" +"A floating-point \"not a number\" (NaN) value. Equivalent to the output of " +"``float('nan')``." +msgstr "Un flottant valant NaN. Équivalent au résultat de ``float('nan')``." + +#: ../Doc/library/math.rst:487 +msgid "" +"The :mod:`math` module consists mostly of thin wrappers around the platform " +"C math library functions. Behavior in exceptional cases follows Annex F of " +"the C99 standard where appropriate. The current implementation will raise :" +"exc:`ValueError` for invalid operations like ``sqrt(-1.0)`` or ``log(0.0)`` " +"(where C99 Annex F recommends signaling invalid operation or divide-by-" +"zero), and :exc:`OverflowError` for results that overflow (for example, " +"``exp(1000.0)``). A NaN will not be returned from any of the functions " +"above unless one or more of the input arguments was a NaN; in that case, " +"most functions will return a NaN, but (again following C99 Annex F) there " +"are some exceptions to this rule, for example ``pow(float('nan'), 0.0)`` or " +"``hypot(float('nan'), float('inf'))``." +msgstr "" +"Le module :mod:`math` consiste majoritairement en un conteneur pour les " +"fonctions mathématiques de la bibliothèque C de la plate-forme. Le " +"comportement dans les cas spéciaux suit l'annexe 'F' du standard C99 quand " +"c'est approprié. L'implémentation actuelle lève une :exc:`ValueError` pour " +"les opérations invalides telles que ``sqrt(-1.0)`` ou ``log(0.0)`` (où le " +"standard C99 recommande de signaler que l'opération est invalide ou qu'il y " +"a division par zéro), et une :exc:`OverflowError` pour les résultats qui " +"débordent (par exemple ``exp(1000.0)``). *NaN* ne sera renvoyé pour aucune " +"des fonctions ci-dessus, sauf si au moins un des arguments de la fonction " +"vaut *NaN*. Dans ce cas, la plupart des fonctions renvoient *NaN*, mais (à " +"nouveau, selon l'annexe 'F' du standard C99) il y a quelques exceptions à " +"cette règle, par exemple ``pow(float('nan'), 0.0)`` ou ``hypot(float('nan'), " +"float('inf'))``." + +#: ../Doc/library/math.rst:499 +msgid "" +"Note that Python makes no effort to distinguish signaling NaNs from quiet " +"NaNs, and behavior for signaling NaNs remains unspecified. Typical behavior " +"is to treat all NaNs as though they were quiet." +msgstr "" +"Notez que Python ne fait aucun effort pour distinguer les NaNs signalétiques " +"des NaNs silencieux, et le comportement de signalement des NaNs reste non-" +"spécifié. Le comportement standard est de traiter tous les NaNs comme s'ils " +"étaient silencieux." + +#: ../Doc/library/math.rst:506 +msgid "Module :mod:`cmath`" +msgstr "Module :mod:`cmath`" + +#: ../Doc/library/math.rst:507 +msgid "Complex number versions of many of these functions." +msgstr "Version complexe de beaucoup de ces fonctions." + +#~ msgid "Return ``e**x``." +#~ msgstr "Renvoie ``e**x``." diff --git a/library/mimetypes.po b/library/mimetypes.po new file mode 100644 index 000000000..be9d366fd --- /dev/null +++ b/library/mimetypes.po @@ -0,0 +1,294 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/mimetypes.rst:2 +msgid ":mod:`mimetypes` --- Map filenames to MIME types" +msgstr "" + +#: ../Doc/library/mimetypes.rst:9 +msgid "**Source code:** :source:`Lib/mimetypes.py`" +msgstr "" + +#: ../Doc/library/mimetypes.rst:15 +msgid "" +"The :mod:`mimetypes` module converts between a filename or URL and the MIME " +"type associated with the filename extension. Conversions are provided from " +"filename to MIME type and from MIME type to filename extension; encodings " +"are not supported for the latter conversion." +msgstr "" + +#: ../Doc/library/mimetypes.rst:20 +msgid "" +"The module provides one class and a number of convenience functions. The " +"functions are the normal interface to this module, but some applications may " +"be interested in the class as well." +msgstr "" + +#: ../Doc/library/mimetypes.rst:24 +msgid "" +"The functions described below provide the primary interface for this " +"module. If the module has not been initialized, they will call :func:`init` " +"if they rely on the information :func:`init` sets up." +msgstr "" + +#: ../Doc/library/mimetypes.rst:33 +msgid "" +"Guess the type of a file based on its filename or URL, given by *url*. The " +"return value is a tuple ``(type, encoding)`` where *type* is ``None`` if the " +"type can't be guessed (missing or unknown suffix) or a string of the form " +"``'type/subtype'``, usable for a MIME :mailheader:`content-type` header." +msgstr "" + +#: ../Doc/library/mimetypes.rst:38 +msgid "" +"*encoding* is ``None`` for no encoding or the name of the program used to " +"encode (e.g. :program:`compress` or :program:`gzip`). The encoding is " +"suitable for use as a :mailheader:`Content-Encoding` header, **not** as a :" +"mailheader:`Content-Transfer-Encoding` header. The mappings are table " +"driven. Encoding suffixes are case sensitive; type suffixes are first tried " +"case sensitively, then case insensitively." +msgstr "" + +#: ../Doc/library/mimetypes.rst:45 +msgid "" +"The optional *strict* argument is a flag specifying whether the list of " +"known MIME types is limited to only the official types `registered with IANA " +"`_. When " +"*strict* is ``True`` (the default), only the IANA types are supported; when " +"*strict* is ``False``, some additional non-standard but commonly used MIME " +"types are also recognized." +msgstr "" + +#: ../Doc/library/mimetypes.rst:55 +msgid "" +"Guess the extensions for a file based on its MIME type, given by *type*. The " +"return value is a list of strings giving all possible filename extensions, " +"including the leading dot (``'.'``). The extensions are not guaranteed to " +"have been associated with any particular data stream, but would be mapped to " +"the MIME type *type* by :func:`guess_type`." +msgstr "" + +#: ../Doc/library/mimetypes.rst:61 ../Doc/library/mimetypes.rst:73 +msgid "" +"The optional *strict* argument has the same meaning as with the :func:" +"`guess_type` function." +msgstr "" + +#: ../Doc/library/mimetypes.rst:66 +msgid "" +"Guess the extension for a file based on its MIME type, given by *type*. The " +"return value is a string giving a filename extension, including the leading " +"dot (``'.'``). The extension is not guaranteed to have been associated with " +"any particular data stream, but would be mapped to the MIME type *type* by :" +"func:`guess_type`. If no extension can be guessed for *type*, ``None`` is " +"returned." +msgstr "" + +#: ../Doc/library/mimetypes.rst:75 +msgid "" +"Some additional functions and data items are available for controlling the " +"behavior of the module." +msgstr "" + +#: ../Doc/library/mimetypes.rst:81 +msgid "" +"Initialize the internal data structures. If given, *files* must be a " +"sequence of file names which should be used to augment the default type " +"map. If omitted, the file names to use are taken from :const:`knownfiles`; " +"on Windows, the current registry settings are loaded. Each file named in " +"*files* or :const:`knownfiles` takes precedence over those named before it. " +"Calling :func:`init` repeatedly is allowed." +msgstr "" + +#: ../Doc/library/mimetypes.rst:88 +msgid "" +"Specifying an empty list for *files* will prevent the system defaults from " +"being applied: only the well-known values will be present from a built-in " +"list." +msgstr "" + +#: ../Doc/library/mimetypes.rst:91 +msgid "Previously, Windows registry settings were ignored." +msgstr "" + +#: ../Doc/library/mimetypes.rst:97 +msgid "" +"Load the type map given in the file *filename*, if it exists. The type map " +"is returned as a dictionary mapping filename extensions, including the " +"leading dot (``'.'``), to strings of the form ``'type/subtype'``. If the " +"file *filename* does not exist or cannot be read, ``None`` is returned." +msgstr "" + +#: ../Doc/library/mimetypes.rst:105 +msgid "" +"Add a mapping from the MIME type *type* to the extension *ext*. When the " +"extension is already known, the new type will replace the old one. When the " +"type is already known the extension will be added to the list of known " +"extensions." +msgstr "" + +#: ../Doc/library/mimetypes.rst:109 +msgid "" +"When *strict* is ``True`` (the default), the mapping will be added to the " +"official MIME types, otherwise to the non-standard ones." +msgstr "" + +#: ../Doc/library/mimetypes.rst:115 +msgid "" +"Flag indicating whether or not the global data structures have been " +"initialized. This is set to ``True`` by :func:`init`." +msgstr "" + +#: ../Doc/library/mimetypes.rst:123 +msgid "" +"List of type map file names commonly installed. These files are typically " +"named :file:`mime.types` and are installed in different locations by " +"different packages." +msgstr "" + +#: ../Doc/library/mimetypes.rst:130 +msgid "" +"Dictionary mapping suffixes to suffixes. This is used to allow recognition " +"of encoded files for which the encoding and the type are indicated by the " +"same extension. For example, the :file:`.tgz` extension is mapped to :file:" +"`.tar.gz` to allow the encoding and type to be recognized separately." +msgstr "" + +#: ../Doc/library/mimetypes.rst:138 +msgid "Dictionary mapping filename extensions to encoding types." +msgstr "" + +#: ../Doc/library/mimetypes.rst:143 +msgid "Dictionary mapping filename extensions to MIME types." +msgstr "" + +#: ../Doc/library/mimetypes.rst:148 +msgid "" +"Dictionary mapping filename extensions to non-standard, but commonly found " +"MIME types." +msgstr "" + +#: ../Doc/library/mimetypes.rst:152 +msgid "An example usage of the module::" +msgstr "Un exemple d'utilisation du module ::" + +#: ../Doc/library/mimetypes.rst:169 +msgid "MimeTypes Objects" +msgstr "" + +#: ../Doc/library/mimetypes.rst:171 +msgid "" +"The :class:`MimeTypes` class may be useful for applications which may want " +"more than one MIME-type database; it provides an interface similar to the " +"one of the :mod:`mimetypes` module." +msgstr "" + +#: ../Doc/library/mimetypes.rst:178 +msgid "" +"This class represents a MIME-types database. By default, it provides access " +"to the same database as the rest of this module. The initial database is a " +"copy of that provided by the module, and may be extended by loading " +"additional :file:`mime.types`\\ -style files into the database using the :" +"meth:`read` or :meth:`readfp` methods. The mapping dictionaries may also be " +"cleared before loading additional data if the default data is not desired." +msgstr "" + +#: ../Doc/library/mimetypes.rst:185 +msgid "" +"The optional *filenames* parameter can be used to cause additional files to " +"be loaded \"on top\" of the default database." +msgstr "" + +#: ../Doc/library/mimetypes.rst:191 +msgid "" +"Dictionary mapping suffixes to suffixes. This is used to allow recognition " +"of encoded files for which the encoding and the type are indicated by the " +"same extension. For example, the :file:`.tgz` extension is mapped to :file:" +"`.tar.gz` to allow the encoding and type to be recognized separately. This " +"is initially a copy of the global :data:`suffix_map` defined in the module." +msgstr "" + +#: ../Doc/library/mimetypes.rst:200 +msgid "" +"Dictionary mapping filename extensions to encoding types. This is initially " +"a copy of the global :data:`encodings_map` defined in the module." +msgstr "" + +#: ../Doc/library/mimetypes.rst:206 +msgid "" +"Tuple containing two dictionaries, mapping filename extensions to MIME " +"types: the first dictionary is for the non-standards types and the second " +"one is for the standard types. They are initialized by :data:`common_types` " +"and :data:`types_map`." +msgstr "" + +#: ../Doc/library/mimetypes.rst:214 +msgid "" +"Tuple containing two dictionaries, mapping MIME types to a list of filename " +"extensions: the first dictionary is for the non-standards types and the " +"second one is for the standard types. They are initialized by :data:" +"`common_types` and :data:`types_map`." +msgstr "" + +#: ../Doc/library/mimetypes.rst:222 +msgid "" +"Similar to the :func:`guess_extension` function, using the tables stored as " +"part of the object." +msgstr "" + +#: ../Doc/library/mimetypes.rst:228 +msgid "" +"Similar to the :func:`guess_type` function, using the tables stored as part " +"of the object." +msgstr "" + +#: ../Doc/library/mimetypes.rst:234 +msgid "" +"Similar to the :func:`guess_all_extensions` function, using the tables " +"stored as part of the object." +msgstr "" + +#: ../Doc/library/mimetypes.rst:240 +msgid "" +"Load MIME information from a file named *filename*. This uses :meth:" +"`readfp` to parse the file." +msgstr "" + +#: ../Doc/library/mimetypes.rst:243 +msgid "" +"If *strict* is ``True``, information will be added to list of standard " +"types, else to the list of non-standard types." +msgstr "" + +#: ../Doc/library/mimetypes.rst:249 +msgid "" +"Load MIME type information from an open file *fp*. The file must have the " +"format of the standard :file:`mime.types` files." +msgstr "" + +#: ../Doc/library/mimetypes.rst:252 ../Doc/library/mimetypes.rst:262 +msgid "" +"If *strict* is ``True``, information will be added to the list of standard " +"types, else to the list of non-standard types." +msgstr "" + +#: ../Doc/library/mimetypes.rst:258 +msgid "Load MIME type information from the Windows registry." +msgstr "" + +#: ../Doc/library/mimetypes.rst:261 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." diff --git a/library/misc.po b/library/misc.po new file mode 100644 index 000000000..d0a155627 --- /dev/null +++ b/library/misc.po @@ -0,0 +1,27 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-02-15 00:44+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/misc.rst:5 +msgid "Miscellaneous Services" +msgstr "Services divers" + +#: ../Doc/library/misc.rst:7 +msgid "" +"The modules described in this chapter provide miscellaneous services that " +"are available in all Python versions. Here's an overview:" +msgstr "" +"Les modules documentés dans ce chapitre fournissent différents services " +"disponibles dans toutes les version de Python. En voici un aperçu :" diff --git a/library/mm.po b/library/mm.po new file mode 100644 index 000000000..fa8757ea0 --- /dev/null +++ b/library/mm.po @@ -0,0 +1,29 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-28 19:23+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/mm.rst:5 +msgid "Multimedia Services" +msgstr "Services multimédia" + +#: ../Doc/library/mm.rst:7 +msgid "" +"The modules described in this chapter implement various algorithms or " +"interfaces that are mainly useful for multimedia applications. They are " +"available at the discretion of the installation. Here's an overview:" +msgstr "" +"Les modules documentés dans ce chapitre implémentent divers algorithmes ou " +"interfaces principalement utiles pour les applications multimédia. Ils " +"peuvent ne pas être disponibles sur votre installation. En voici un aperçu :" diff --git a/library/mmap.po b/library/mmap.po new file mode 100644 index 000000000..37cfc0e35 --- /dev/null +++ b/library/mmap.po @@ -0,0 +1,308 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/mmap.rst:2 +msgid ":mod:`mmap` --- Memory-mapped file support" +msgstr "" + +#: ../Doc/library/mmap.rst:9 +msgid "" +"Memory-mapped file objects behave like both :class:`bytearray` and like :" +"term:`file objects `. You can use mmap objects in most places " +"where :class:`bytearray` are expected; for example, you can use the :mod:" +"`re` module to search through a memory-mapped file. You can also change a " +"single byte by doing ``obj[index] = 97``, or change a subsequence by " +"assigning to a slice: ``obj[i1:i2] = b'...'``. You can also read and write " +"data starting at the current file position, and :meth:`seek` through the " +"file to different positions." +msgstr "" + +#: ../Doc/library/mmap.rst:17 +msgid "" +"A memory-mapped file is created by the :class:`~mmap.mmap` constructor, " +"which is different on Unix and on Windows. In either case you must provide " +"a file descriptor for a file opened for update. If you wish to map an " +"existing Python file object, use its :meth:`fileno` method to obtain the " +"correct value for the *fileno* parameter. Otherwise, you can open the file " +"using the :func:`os.open` function, which returns a file descriptor directly " +"(the file still needs to be closed when done)." +msgstr "" + +#: ../Doc/library/mmap.rst:26 +msgid "" +"If you want to create a memory-mapping for a writable, buffered file, you " +"should :func:`~io.IOBase.flush` the file first. This is necessary to ensure " +"that local modifications to the buffers are actually available to the " +"mapping." +msgstr "" + +#: ../Doc/library/mmap.rst:31 +msgid "" +"For both the Unix and Windows versions of the constructor, *access* may be " +"specified as an optional keyword parameter. *access* accepts one of four " +"values: :const:`ACCESS_READ`, :const:`ACCESS_WRITE`, or :const:`ACCESS_COPY` " +"to specify read-only, write-through or copy-on-write memory respectively, " +"or :const:`ACCESS_DEFAULT` to defer to *prot*. *access* can be used on both " +"Unix and Windows. If *access* is not specified, Windows mmap returns a " +"write-through mapping. The initial memory values for all three access types " +"are taken from the specified file. Assignment to an :const:`ACCESS_READ` " +"memory map raises a :exc:`TypeError` exception. Assignment to an :const:" +"`ACCESS_WRITE` memory map affects both memory and the underlying file. " +"Assignment to an :const:`ACCESS_COPY` memory map affects memory but does not " +"update the underlying file." +msgstr "" + +#: ../Doc/library/mmap.rst:44 +msgid "Added :const:`ACCESS_DEFAULT` constant." +msgstr "" + +#: ../Doc/library/mmap.rst:47 +msgid "" +"To map anonymous memory, -1 should be passed as the fileno along with the " +"length." +msgstr "" + +#: ../Doc/library/mmap.rst:51 +msgid "" +"**(Windows version)** Maps *length* bytes from the file specified by the " +"file handle *fileno*, and creates a mmap object. If *length* is larger than " +"the current size of the file, the file is extended to contain *length* " +"bytes. If *length* is ``0``, the maximum length of the map is the current " +"size of the file, except that if the file is empty Windows raises an " +"exception (you cannot create an empty mapping on Windows)." +msgstr "" + +#: ../Doc/library/mmap.rst:58 +msgid "" +"*tagname*, if specified and not ``None``, is a string giving a tag name for " +"the mapping. Windows allows you to have many different mappings against the " +"same file. If you specify the name of an existing tag, that tag is opened, " +"otherwise a new tag of this name is created. If this parameter is omitted " +"or ``None``, the mapping is created without a name. Avoiding the use of the " +"tag parameter will assist in keeping your code portable between Unix and " +"Windows." +msgstr "" + +#: ../Doc/library/mmap.rst:66 +msgid "" +"*offset* may be specified as a non-negative integer offset. mmap references " +"will be relative to the offset from the beginning of the file. *offset* " +"defaults to 0. *offset* must be a multiple of the :const:" +"`ALLOCATIONGRANULARITY`." +msgstr "" + +#: ../Doc/library/mmap.rst:74 +msgid "" +"**(Unix version)** Maps *length* bytes from the file specified by the file " +"descriptor *fileno*, and returns a mmap object. If *length* is ``0``, the " +"maximum length of the map will be the current size of the file when :class:" +"`~mmap.mmap` is called." +msgstr "" + +#: ../Doc/library/mmap.rst:79 +msgid "" +"*flags* specifies the nature of the mapping. :const:`MAP_PRIVATE` creates a " +"private copy-on-write mapping, so changes to the contents of the mmap object " +"will be private to this process, and :const:`MAP_SHARED` creates a mapping " +"that's shared with all other processes mapping the same areas of the file. " +"The default value is :const:`MAP_SHARED`." +msgstr "" + +#: ../Doc/library/mmap.rst:85 +msgid "" +"*prot*, if specified, gives the desired memory protection; the two most " +"useful values are :const:`PROT_READ` and :const:`PROT_WRITE`, to specify " +"that the pages may be read or written. *prot* defaults to :const:`PROT_READ " +"\\| PROT_WRITE`." +msgstr "" + +#: ../Doc/library/mmap.rst:90 +msgid "" +"*access* may be specified in lieu of *flags* and *prot* as an optional " +"keyword parameter. It is an error to specify both *flags*, *prot* and " +"*access*. See the description of *access* above for information on how to " +"use this parameter." +msgstr "" + +#: ../Doc/library/mmap.rst:95 +msgid "" +"*offset* may be specified as a non-negative integer offset. mmap references " +"will be relative to the offset from the beginning of the file. *offset* " +"defaults to 0. *offset* must be a multiple of :const:`ALLOCATIONGRANULARITY` " +"which is equal to :const:`PAGESIZE` on Unix systems." +msgstr "" + +#: ../Doc/library/mmap.rst:100 +msgid "" +"To ensure validity of the created memory mapping the file specified by the " +"descriptor *fileno* is internally automatically synchronized with physical " +"backing store on Mac OS X and OpenVMS." +msgstr "" + +#: ../Doc/library/mmap.rst:104 +msgid "This example shows a simple way of using :class:`~mmap.mmap`::" +msgstr "" + +#: ../Doc/library/mmap.rst:129 +msgid "" +":class:`~mmap.mmap` can also be used as a context manager in a :keyword:" +"`with` statement::" +msgstr "" + +#: ../Doc/library/mmap.rst:137 +msgid "Context manager support." +msgstr "" + +#: ../Doc/library/mmap.rst:141 +msgid "" +"The next example demonstrates how to create an anonymous map and exchange " +"data between the parent and child processes::" +msgstr "" + +#: ../Doc/library/mmap.rst:159 +msgid "Memory-mapped file objects support the following methods:" +msgstr "" + +#: ../Doc/library/mmap.rst:163 +msgid "" +"Closes the mmap. Subsequent calls to other methods of the object will result " +"in a ValueError exception being raised. This will not close the open file." +msgstr "" + +#: ../Doc/library/mmap.rst:170 +msgid "``True`` if the file is closed." +msgstr "" + +#: ../Doc/library/mmap.rst:177 +msgid "" +"Returns the lowest index in the object where the subsequence *sub* is found, " +"such that *sub* is contained in the range [*start*, *end*]. Optional " +"arguments *start* and *end* are interpreted as in slice notation. Returns " +"``-1`` on failure." +msgstr "" + +#: ../Doc/library/mmap.rst:182 ../Doc/library/mmap.rst:246 +#: ../Doc/library/mmap.rst:278 +msgid "Writable :term:`bytes-like object` is now accepted." +msgstr "N'importe quel :term:`bytes-like object` est maintenant accepté." + +#: ../Doc/library/mmap.rst:188 +msgid "" +"Flushes changes made to the in-memory copy of a file back to disk. Without " +"use of this call there is no guarantee that changes are written back before " +"the object is destroyed. If *offset* and *size* are specified, only changes " +"to the given range of bytes will be flushed to disk; otherwise, the whole " +"extent of the mapping is flushed. *offset* must be a multiple of the :const:" +"`PAGESIZE` or :const:`ALLOCATIONGRANULARITY`." +msgstr "" + +#: ../Doc/library/mmap.rst:195 +msgid "" +"**(Windows version)** A nonzero value returned indicates success; zero " +"indicates failure." +msgstr "" + +#: ../Doc/library/mmap.rst:198 +msgid "" +"**(Unix version)** A zero value is returned to indicate success. An " +"exception is raised when the call failed." +msgstr "" + +#: ../Doc/library/mmap.rst:204 +msgid "" +"Copy the *count* bytes starting at offset *src* to the destination index " +"*dest*. If the mmap was created with :const:`ACCESS_READ`, then calls to " +"move will raise a :exc:`TypeError` exception." +msgstr "" + +#: ../Doc/library/mmap.rst:211 +msgid "" +"Return a :class:`bytes` containing up to *n* bytes starting from the current " +"file position. If the argument is omitted, ``None`` or negative, return all " +"bytes from the current file position to the end of the mapping. The file " +"position is updated to point after the bytes that were returned." +msgstr "" + +#: ../Doc/library/mmap.rst:217 +msgid "Argument can be omitted or ``None``." +msgstr "" + +#: ../Doc/library/mmap.rst:222 +msgid "" +"Returns a byte at the current file position as an integer, and advances the " +"file position by 1." +msgstr "" + +#: ../Doc/library/mmap.rst:228 +msgid "" +"Returns a single line, starting at the current file position and up to the " +"next newline." +msgstr "" + +#: ../Doc/library/mmap.rst:234 +msgid "" +"Resizes the map and the underlying file, if any. If the mmap was created " +"with :const:`ACCESS_READ` or :const:`ACCESS_COPY`, resizing the map will " +"raise a :exc:`TypeError` exception." +msgstr "" + +#: ../Doc/library/mmap.rst:241 +msgid "" +"Returns the highest index in the object where the subsequence *sub* is " +"found, such that *sub* is contained in the range [*start*, *end*]. Optional " +"arguments *start* and *end* are interpreted as in slice notation. Returns " +"``-1`` on failure." +msgstr "" + +#: ../Doc/library/mmap.rst:252 +msgid "" +"Set the file's current position. *whence* argument is optional and defaults " +"to ``os.SEEK_SET`` or ``0`` (absolute file positioning); other values are " +"``os.SEEK_CUR`` or ``1`` (seek relative to the current position) and ``os." +"SEEK_END`` or ``2`` (seek relative to the file's end)." +msgstr "" + +#: ../Doc/library/mmap.rst:260 +msgid "" +"Return the length of the file, which can be larger than the size of the " +"memory-mapped area." +msgstr "" + +#: ../Doc/library/mmap.rst:266 +msgid "Returns the current position of the file pointer." +msgstr "" + +#: ../Doc/library/mmap.rst:271 +msgid "" +"Write the bytes in *bytes* into memory at the current position of the file " +"pointer and return the number of bytes written (never less than " +"``len(bytes)``, since if the write fails, a :exc:`ValueError` will be " +"raised). The file position is updated to point after the bytes that were " +"written. If the mmap was created with :const:`ACCESS_READ`, then writing to " +"it will raise a :exc:`TypeError` exception." +msgstr "" + +#: ../Doc/library/mmap.rst:281 +msgid "The number of bytes written is now returned." +msgstr "" + +#: ../Doc/library/mmap.rst:287 +msgid "" +"Write the integer *byte* into memory at the current position of the file " +"pointer; the file position is advanced by ``1``. If the mmap was created " +"with :const:`ACCESS_READ`, then writing to it will raise a :exc:`TypeError` " +"exception." +msgstr "" diff --git a/library/modulefinder.po b/library/modulefinder.po new file mode 100644 index 000000000..eccedb6e9 --- /dev/null +++ b/library/modulefinder.po @@ -0,0 +1,112 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-09-28 19:23+0200\n" +"Last-Translator: Mickaël Bergem \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.9\n" + +#: ../Doc/library/modulefinder.rst:2 +msgid ":mod:`modulefinder` --- Find modules used by a script" +msgstr ":mod:`modulefinder` — Identifie les modules utilisés par un script" + +#: ../Doc/library/modulefinder.rst:9 +msgid "**Source code:** :source:`Lib/modulefinder.py`" +msgstr "**Code source :** :source:`Lib/modulefinder.py`" + +#: ../Doc/library/modulefinder.rst:13 +msgid "" +"This module provides a :class:`ModuleFinder` class that can be used to " +"determine the set of modules imported by a script. ``modulefinder.py`` can " +"also be run as a script, giving the filename of a Python script as its " +"argument, after which a report of the imported modules will be printed." +msgstr "" +"Ce module fournit une classe :class:`ModuleFinder` qui peut être utilisée " +"pour déterminer la liste des modules importés par un script. ``modulefinder." +"py`` peut aussi être utilisé en tant que script, en passant le nom du " +"fichier Python en argument, ce qui affichera un rapport sur les modules " +"importés." + +#: ../Doc/library/modulefinder.rst:21 +msgid "" +"Record that the package named *pkg_name* can be found in the specified " +"*path*." +msgstr "" +"Enregistre que le paquet *pkg_name* peut être trouvé au chemin *path* " +"spécifié." + +#: ../Doc/library/modulefinder.rst:26 +msgid "" +"Allows specifying that the module named *oldname* is in fact the package " +"named *newname*." +msgstr "" +"Permet de spécifier que le module nommé *oldname* est en réalité le paquet " +"nommé *newname*." + +#: ../Doc/library/modulefinder.rst:32 +msgid "" +"This class provides :meth:`run_script` and :meth:`report` methods to " +"determine the set of modules imported by a script. *path* can be a list of " +"directories to search for modules; if not specified, ``sys.path`` is used. " +"*debug* sets the debugging level; higher values make the class print " +"debugging messages about what it's doing. *excludes* is a list of module " +"names to exclude from the analysis. *replace_paths* is a list of ``(oldpath, " +"newpath)`` tuples that will be replaced in module paths." +msgstr "" +"Cette classe fournit les méthodes :meth:`run_script` et :meth:`report` pour " +"déterminer l'ensemble des modules importés par un script. *path* peut être " +"une liste de dossiers dans lesquels chercher les modules ; si non spécifié, " +"``sys.path`` est utilisé. *debug* définit le niveau de débogage ; des " +"valeurs plus élevées produisent plus de détails sur ce que fait la classe. " +"*excludes* est une liste de noms de modules à exclure de l'analyse. " +"*replace_paths* est une liste de tuples ``(oldpath, newpath)`` qui seront " +"remplacés dans les chemins des modules." + +#: ../Doc/library/modulefinder.rst:43 +msgid "" +"Print a report to standard output that lists the modules imported by the " +"script and their paths, as well as modules that are missing or seem to be " +"missing." +msgstr "" +"Affiche un rapport sur la sortie standard qui liste les modules importés par " +"le script et leurs chemins, ainsi que les modules manquants ou qui n'ont pas " +"été trouvés." + +#: ../Doc/library/modulefinder.rst:49 +msgid "" +"Analyze the contents of the *pathname* file, which must contain Python code." +msgstr "" +"Analyse le contenu du fichier *pathname*, qui doit contenir du code Python." + +#: ../Doc/library/modulefinder.rst:54 +msgid "" +"A dictionary mapping module names to modules. See :ref:`modulefinder-" +"example`." +msgstr "" +"Un dictionnaire de correspondance entre nom de modules et modules. Voir :ref:" +"`modulefinder-example`." + +#: ../Doc/library/modulefinder.rst:61 +msgid "Example usage of :class:`ModuleFinder`" +msgstr "Exemples d'utilisation de la classe :class:`ModuleFinder`" + +#: ../Doc/library/modulefinder.rst:63 +msgid "The script that is going to get analyzed later on (bacon.py)::" +msgstr "Le script qui sera analysé (*bacon.py*) ::" + +#: ../Doc/library/modulefinder.rst:78 +msgid "The script that will output the report of bacon.py::" +msgstr "Le script qui va afficher le rapport de *bacon.py* ::" + +#: ../Doc/library/modulefinder.rst:94 +msgid "Sample output (may vary depending on the architecture)::" +msgstr "Exemple de sortie (peut varier en fonction de l'architecture) ::" diff --git a/library/modules.po b/library/modules.po new file mode 100644 index 000000000..c1dbe924c --- /dev/null +++ b/library/modules.po @@ -0,0 +1,32 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-28 19:21+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/modules.rst:5 +msgid "Importing Modules" +msgstr "Importer des modules" + +#: ../Doc/library/modules.rst:7 +msgid "" +"The modules described in this chapter provide new ways to import other " +"Python modules and hooks for customizing the import process." +msgstr "" +"Les modules décrits dans ce chapitre fournissent de nouveaux moyens " +"d'importer d'autres modules Python, et des *hooks* pour personnaliser le " +"processus d'importation." + +#: ../Doc/library/modules.rst:10 +msgid "The full list of modules described in this chapter is:" +msgstr "La liste complète des modules décrits dans ce chapitre est :" diff --git a/library/msilib.po b/library/msilib.po new file mode 100644 index 000000000..242fbaca2 --- /dev/null +++ b/library/msilib.po @@ -0,0 +1,610 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/msilib.rst:2 +msgid ":mod:`msilib` --- Read and write Microsoft Installer files" +msgstr "" + +#: ../Doc/library/msilib.rst:11 +msgid "**Source code:** :source:`Lib/msilib/__init__.py`" +msgstr "" + +#: ../Doc/library/msilib.rst:17 +msgid "" +"The :mod:`msilib` supports the creation of Microsoft Installer (``.msi``) " +"files. Because these files often contain an embedded \"cabinet\" file (``." +"cab``), it also exposes an API to create CAB files. Support for reading ``." +"cab`` files is currently not implemented; read support for the ``.msi`` " +"database is possible." +msgstr "" + +#: ../Doc/library/msilib.rst:22 +msgid "" +"This package aims to provide complete access to all tables in an ``.msi`` " +"file, therefore, it is a fairly low-level API. Two primary applications of " +"this package are the :mod:`distutils` command ``bdist_msi``, and the " +"creation of Python installer package itself (although that currently uses a " +"different version of ``msilib``)." +msgstr "" + +#: ../Doc/library/msilib.rst:28 +msgid "" +"The package contents can be roughly split into four parts: low-level CAB " +"routines, low-level MSI routines, higher-level MSI routines, and standard " +"table structures." +msgstr "" + +#: ../Doc/library/msilib.rst:35 +msgid "" +"Create a new CAB file named *cabname*. *files* must be a list of tuples, " +"each containing the name of the file on disk, and the name of the file " +"inside the CAB file." +msgstr "" + +#: ../Doc/library/msilib.rst:39 +msgid "" +"The files are added to the CAB file in the order they appear in the list. " +"All files are added into a single CAB file, using the MSZIP compression " +"algorithm." +msgstr "" + +#: ../Doc/library/msilib.rst:42 +msgid "" +"Callbacks to Python for the various steps of MSI creation are currently not " +"exposed." +msgstr "" + +#: ../Doc/library/msilib.rst:48 +msgid "" +"Return the string representation of a new unique identifier. This wraps the " +"Windows API functions :c:func:`UuidCreate` and :c:func:`UuidToString`." +msgstr "" + +#: ../Doc/library/msilib.rst:54 +msgid "" +"Return a new database object by calling MsiOpenDatabase. *path* is the " +"file name of the MSI file; *persist* can be one of the constants " +"``MSIDBOPEN_CREATEDIRECT``, ``MSIDBOPEN_CREATE``, ``MSIDBOPEN_DIRECT``, " +"``MSIDBOPEN_READONLY``, or ``MSIDBOPEN_TRANSACT``, and may include the flag " +"``MSIDBOPEN_PATCHFILE``. See the Microsoft documentation for the meaning of " +"these flags; depending on the flags, an existing database is opened, or a " +"new one created." +msgstr "" + +#: ../Doc/library/msilib.rst:65 +msgid "" +"Return a new record object by calling :c:func:`MSICreateRecord`. *count* is " +"the number of fields of the record." +msgstr "" + +#: ../Doc/library/msilib.rst:71 +msgid "" +"Create and return a new database *name*, initialize it with *schema*, and " +"set the properties *ProductName*, *ProductCode*, *ProductVersion*, and " +"*Manufacturer*." +msgstr "" + +#: ../Doc/library/msilib.rst:75 +msgid "" +"*schema* must be a module object containing ``tables`` and " +"``_Validation_records`` attributes; typically, :mod:`msilib.schema` should " +"be used." +msgstr "" + +#: ../Doc/library/msilib.rst:79 +msgid "" +"The database will contain just the schema and the validation records when " +"this function returns." +msgstr "" + +#: ../Doc/library/msilib.rst:85 +msgid "Add all *records* to the table named *table* in *database*." +msgstr "" + +#: ../Doc/library/msilib.rst:87 +msgid "" +"The *table* argument must be one of the predefined tables in the MSI schema, " +"e.g. ``'Feature'``, ``'File'``, ``'Component'``, ``'Dialog'``, " +"``'Control'``, etc." +msgstr "" + +#: ../Doc/library/msilib.rst:91 +msgid "" +"*records* should be a list of tuples, each one containing all fields of a " +"record according to the schema of the table. For optional fields, ``None`` " +"can be passed." +msgstr "" + +#: ../Doc/library/msilib.rst:95 +msgid "Field values can be ints, strings, or instances of the Binary class." +msgstr "" + +#: ../Doc/library/msilib.rst:100 +msgid "" +"Represents entries in the Binary table; inserting such an object using :func:" +"`add_data` reads the file named *filename* into the table." +msgstr "" + +#: ../Doc/library/msilib.rst:106 +msgid "" +"Add all table content from *module* to *database*. *module* must contain an " +"attribute *tables* listing all tables for which content should be added, and " +"one attribute per table that has the actual content." +msgstr "" + +#: ../Doc/library/msilib.rst:110 +msgid "This is typically used to install the sequence tables." +msgstr "" + +#: ../Doc/library/msilib.rst:115 +msgid "" +"Add the file *path* into the ``_Stream`` table of *database*, with the " +"stream name *name*." +msgstr "" + +#: ../Doc/library/msilib.rst:121 +msgid "" +"Return a new UUID, in the format that MSI typically requires (i.e. in curly " +"braces, and with all hexdigits in upper-case)." +msgstr "" + +#: ../Doc/library/msilib.rst:127 +msgid "" +"`FCICreate `_ " +"`UuidCreate `_ `UuidToString `_" +msgstr "" + +#: ../Doc/library/msilib.rst:134 +msgid "Database Objects" +msgstr "" + +#: ../Doc/library/msilib.rst:139 +msgid "" +"Return a view object, by calling :c:func:`MSIDatabaseOpenView`. *sql* is the " +"SQL statement to execute." +msgstr "" + +#: ../Doc/library/msilib.rst:145 +msgid "" +"Commit the changes pending in the current transaction, by calling :c:func:" +"`MSIDatabaseCommit`." +msgstr "" + +#: ../Doc/library/msilib.rst:151 +msgid "" +"Return a new summary information object, by calling :c:func:" +"`MsiGetSummaryInformation`. *count* is the maximum number of updated values." +msgstr "" + +#: ../Doc/library/msilib.rst:157 +msgid "Close the database object, through :c:func:`MsiCloseHandle`." +msgstr "" + +#: ../Doc/library/msilib.rst:163 +msgid "" +"`MSIDatabaseOpenView `_ `MSIDatabaseCommit `_ `MSIGetSummaryInformation " +"`_ " +"`MsiCloseHandle `_" +msgstr "" + +#: ../Doc/library/msilib.rst:171 +msgid "View Objects" +msgstr "" + +#: ../Doc/library/msilib.rst:176 +msgid "" +"Execute the SQL query of the view, through :c:func:`MSIViewExecute`. If " +"*params* is not ``None``, it is a record describing actual values of the " +"parameter tokens in the query." +msgstr "" + +#: ../Doc/library/msilib.rst:183 +msgid "" +"Return a record describing the columns of the view, through calling :c:func:" +"`MsiViewGetColumnInfo`. *kind* can be either ``MSICOLINFO_NAMES`` or " +"``MSICOLINFO_TYPES``." +msgstr "" + +#: ../Doc/library/msilib.rst:190 +msgid "" +"Return a result record of the query, through calling :c:func:`MsiViewFetch`." +msgstr "" + +#: ../Doc/library/msilib.rst:195 +msgid "" +"Modify the view, by calling :c:func:`MsiViewModify`. *kind* can be one of " +"``MSIMODIFY_SEEK``, ``MSIMODIFY_REFRESH``, ``MSIMODIFY_INSERT``, " +"``MSIMODIFY_UPDATE``, ``MSIMODIFY_ASSIGN``, ``MSIMODIFY_REPLACE``, " +"``MSIMODIFY_MERGE``, ``MSIMODIFY_DELETE``, ``MSIMODIFY_INSERT_TEMPORARY``, " +"``MSIMODIFY_VALIDATE``, ``MSIMODIFY_VALIDATE_NEW``, " +"``MSIMODIFY_VALIDATE_FIELD``, or ``MSIMODIFY_VALIDATE_DELETE``." +msgstr "" + +#: ../Doc/library/msilib.rst:202 +msgid "*data* must be a record describing the new data." +msgstr "" + +#: ../Doc/library/msilib.rst:207 +msgid "Close the view, through :c:func:`MsiViewClose`." +msgstr "" + +#: ../Doc/library/msilib.rst:212 +msgid "" +"`MsiViewExecute `_ `MSIViewGetColumnInfo `_ `MsiViewFetch `_ `MsiViewModify " +"`_ " +"`MsiViewClose `_" +msgstr "" + +#: ../Doc/library/msilib.rst:221 +msgid "Summary Information Objects" +msgstr "" + +#: ../Doc/library/msilib.rst:226 +msgid "" +"Return a property of the summary, through :c:func:" +"`MsiSummaryInfoGetProperty`. *field* is the name of the property, and can be " +"one of the constants ``PID_CODEPAGE``, ``PID_TITLE``, ``PID_SUBJECT``, " +"``PID_AUTHOR``, ``PID_KEYWORDS``, ``PID_COMMENTS``, ``PID_TEMPLATE``, " +"``PID_LASTAUTHOR``, ``PID_REVNUMBER``, ``PID_LASTPRINTED``, " +"``PID_CREATE_DTM``, ``PID_LASTSAVE_DTM``, ``PID_PAGECOUNT``, " +"``PID_WORDCOUNT``, ``PID_CHARCOUNT``, ``PID_APPNAME``, or ``PID_SECURITY``." +msgstr "" + +#: ../Doc/library/msilib.rst:237 +msgid "" +"Return the number of summary properties, through :c:func:" +"`MsiSummaryInfoGetPropertyCount`." +msgstr "" + +#: ../Doc/library/msilib.rst:243 +msgid "" +"Set a property through :c:func:`MsiSummaryInfoSetProperty`. *field* can have " +"the same values as in :meth:`GetProperty`, *value* is the new value of the " +"property. Possible value types are integer and string." +msgstr "" + +#: ../Doc/library/msilib.rst:250 +msgid "" +"Write the modified properties to the summary information stream, using :c:" +"func:`MsiSummaryInfoPersist`." +msgstr "" + +#: ../Doc/library/msilib.rst:256 +msgid "" +"`MsiSummaryInfoGetProperty `_ `MsiSummaryInfoGetPropertyCount `_ " +"`MsiSummaryInfoSetProperty `_ `MsiSummaryInfoPersist `_" +msgstr "" + +#: ../Doc/library/msilib.rst:264 +msgid "Record Objects" +msgstr "" + +#: ../Doc/library/msilib.rst:269 +msgid "" +"Return the number of fields of the record, through :c:func:" +"`MsiRecordGetFieldCount`." +msgstr "" + +#: ../Doc/library/msilib.rst:275 +msgid "" +"Return the value of *field* as an integer where possible. *field* must be " +"an integer." +msgstr "" + +#: ../Doc/library/msilib.rst:281 +msgid "" +"Return the value of *field* as a string where possible. *field* must be an " +"integer." +msgstr "" + +#: ../Doc/library/msilib.rst:287 +msgid "" +"Set *field* to *value* through :c:func:`MsiRecordSetString`. *field* must be " +"an integer; *value* a string." +msgstr "" + +#: ../Doc/library/msilib.rst:293 +msgid "" +"Set *field* to the contents of the file named *value*, through :c:func:" +"`MsiRecordSetStream`. *field* must be an integer; *value* a string." +msgstr "" + +#: ../Doc/library/msilib.rst:299 +msgid "" +"Set *field* to *value* through :c:func:`MsiRecordSetInteger`. Both *field* " +"and *value* must be an integer." +msgstr "" + +#: ../Doc/library/msilib.rst:305 +msgid "" +"Set all fields of the record to 0, through :c:func:`MsiRecordClearData`." +msgstr "" + +#: ../Doc/library/msilib.rst:310 +msgid "" +"`MsiRecordGetFieldCount `_ `MsiRecordSetString `_ `MsiRecordSetStream `_ " +"`MsiRecordSetInteger `_ `MsiRecordClearData `_" +msgstr "" + +#: ../Doc/library/msilib.rst:319 +msgid "Errors" +msgstr "" + +#: ../Doc/library/msilib.rst:321 +msgid "" +"All wrappers around MSI functions raise :exc:`MSIError`; the string inside " +"the exception will contain more detail." +msgstr "" + +#: ../Doc/library/msilib.rst:328 +msgid "CAB Objects" +msgstr "" + +#: ../Doc/library/msilib.rst:333 +msgid "" +"The class :class:`CAB` represents a CAB file. During MSI construction, files " +"will be added simultaneously to the ``Files`` table, and to a CAB file. " +"Then, when all files have been added, the CAB file can be written, then " +"added to the MSI file." +msgstr "" + +#: ../Doc/library/msilib.rst:338 +msgid "*name* is the name of the CAB file in the MSI file." +msgstr "" + +#: ../Doc/library/msilib.rst:343 +msgid "" +"Add the file with the pathname *full* to the CAB file, under the name " +"*logical*. If there is already a file named *logical*, a new file name is " +"created." +msgstr "" + +#: ../Doc/library/msilib.rst:347 +msgid "" +"Return the index of the file in the CAB file, and the new name of the file " +"inside the CAB file." +msgstr "" + +#: ../Doc/library/msilib.rst:353 +msgid "" +"Generate a CAB file, add it as a stream to the MSI file, put it into the " +"``Media`` table, and remove the generated file from the disk." +msgstr "" + +#: ../Doc/library/msilib.rst:360 +msgid "Directory Objects" +msgstr "" + +#: ../Doc/library/msilib.rst:365 +msgid "" +"Create a new directory in the Directory table. There is a current component " +"at each point in time for the directory, which is either explicitly created " +"through :meth:`start_component`, or implicitly when files are added for the " +"first time. Files are added into the current component, and into the cab " +"file. To create a directory, a base directory object needs to be specified " +"(can be ``None``), the path to the physical directory, and a logical " +"directory name. *default* specifies the DefaultDir slot in the directory " +"table. *componentflags* specifies the default flags that new components get." +msgstr "" + +#: ../Doc/library/msilib.rst:377 +msgid "" +"Add an entry to the Component table, and make this component the current " +"component for this directory. If no component name is given, the directory " +"name is used. If no *feature* is given, the current feature is used. If no " +"*flags* are given, the directory's default flags are used. If no *keyfile* " +"is given, the KeyPath is left null in the Component table." +msgstr "" + +#: ../Doc/library/msilib.rst:386 +msgid "" +"Add a file to the current component of the directory, starting a new one if " +"there is no current component. By default, the file name in the source and " +"the file table will be identical. If the *src* file is specified, it is " +"interpreted relative to the current directory. Optionally, a *version* and a " +"*language* can be specified for the entry in the File table." +msgstr "" + +#: ../Doc/library/msilib.rst:395 +msgid "" +"Add a list of files to the current component as specified in the glob " +"pattern. Individual files can be excluded in the *exclude* list." +msgstr "" + +#: ../Doc/library/msilib.rst:401 +msgid "Remove ``.pyc`` files on uninstall." +msgstr "" + +#: ../Doc/library/msilib.rst:406 +msgid "" +"`Directory Table `_ `File Table `_ `Component Table `_ `FeatureComponents Table " +"`_" +msgstr "" + +#: ../Doc/library/msilib.rst:414 +msgid "Features" +msgstr "Caractéristiques" + +#: ../Doc/library/msilib.rst:419 +msgid "" +"Add a new record to the ``Feature`` table, using the values *id*, *parent." +"id*, *title*, *desc*, *display*, *level*, *directory*, and *attributes*. The " +"resulting feature object can be passed to the :meth:`start_component` method " +"of :class:`Directory`." +msgstr "" + +#: ../Doc/library/msilib.rst:427 +msgid "" +"Make this feature the current feature of :mod:`msilib`. New components are " +"automatically added to the default feature, unless a feature is explicitly " +"specified." +msgstr "" + +#: ../Doc/library/msilib.rst:434 +msgid "" +"`Feature Table `_" +msgstr "" + +#: ../Doc/library/msilib.rst:439 +msgid "GUI classes" +msgstr "" + +#: ../Doc/library/msilib.rst:441 +msgid "" +":mod:`msilib` provides several classes that wrap the GUI tables in an MSI " +"database. However, no standard user interface is provided; use :mod:" +"`~distutils.command.bdist_msi` to create MSI files with a user-interface for " +"installing Python packages." +msgstr "" + +#: ../Doc/library/msilib.rst:449 +msgid "" +"Base class of the dialog controls. *dlg* is the dialog object the control " +"belongs to, and *name* is the control's name." +msgstr "" + +#: ../Doc/library/msilib.rst:455 +msgid "Make an entry into the ``ControlEvent`` table for this control." +msgstr "" + +#: ../Doc/library/msilib.rst:460 +msgid "Make an entry into the ``EventMapping`` table for this control." +msgstr "" + +#: ../Doc/library/msilib.rst:465 +msgid "Make an entry into the ``ControlCondition`` table for this control." +msgstr "" + +#: ../Doc/library/msilib.rst:470 +msgid "" +"Create a radio button control named *name*. *property* is the installer " +"property that gets set when a radio button is selected." +msgstr "" + +#: ../Doc/library/msilib.rst:476 +msgid "" +"Add a radio button named *name* to the group, at the coordinates *x*, *y*, " +"*width*, *height*, and with the label *text*. If *value* is ``None``, it " +"defaults to *name*." +msgstr "" + +#: ../Doc/library/msilib.rst:483 +msgid "" +"Return a new :class:`Dialog` object. An entry in the ``Dialog`` table is " +"made, with the specified coordinates, dialog attributes, title, name of the " +"first, default, and cancel controls." +msgstr "" + +#: ../Doc/library/msilib.rst:490 +msgid "" +"Return a new :class:`Control` object. An entry in the ``Control`` table is " +"made with the specified parameters." +msgstr "" + +#: ../Doc/library/msilib.rst:493 +msgid "" +"This is a generic method; for specific types, specialized methods are " +"provided." +msgstr "" + +#: ../Doc/library/msilib.rst:499 +msgid "Add and return a ``Text`` control." +msgstr "" + +#: ../Doc/library/msilib.rst:504 +msgid "Add and return a ``Bitmap`` control." +msgstr "" + +#: ../Doc/library/msilib.rst:509 +msgid "Add and return a ``Line`` control." +msgstr "" + +#: ../Doc/library/msilib.rst:514 +msgid "Add and return a ``PushButton`` control." +msgstr "" + +#: ../Doc/library/msilib.rst:519 +msgid "Add and return a ``RadioButtonGroup`` control." +msgstr "" + +#: ../Doc/library/msilib.rst:524 +msgid "Add and return a ``CheckBox`` control." +msgstr "" + +#: ../Doc/library/msilib.rst:529 +msgid "" +"`Dialog Table `_ `Control Table `_ `Control Types `_ `ControlCondition Table " +"`_ " +"`ControlEvent Table `_ `EventMapping Table `_ `RadioButton Table `_" +msgstr "" + +#: ../Doc/library/msilib.rst:540 +msgid "Precomputed tables" +msgstr "" + +#: ../Doc/library/msilib.rst:542 +msgid "" +":mod:`msilib` provides a few subpackages that contain only schema and table " +"definitions. Currently, these definitions are based on MSI version 2.0." +msgstr "" + +#: ../Doc/library/msilib.rst:548 +msgid "" +"This is the standard MSI schema for MSI 2.0, with the *tables* variable " +"providing a list of table definitions, and *_Validation_records* providing " +"the data for MSI validation." +msgstr "" + +#: ../Doc/library/msilib.rst:555 +msgid "" +"This module contains table contents for the standard sequence tables: " +"*AdminExecuteSequence*, *AdminUISequence*, *AdvtExecuteSequence*, " +"*InstallExecuteSequence*, and *InstallUISequence*." +msgstr "" + +#: ../Doc/library/msilib.rst:562 +msgid "" +"This module contains definitions for the UIText and ActionText tables, for " +"the standard installer actions." +msgstr "" diff --git a/library/msvcrt.po b/library/msvcrt.po new file mode 100644 index 000000000..123ee0284 --- /dev/null +++ b/library/msvcrt.po @@ -0,0 +1,160 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/msvcrt.rst:2 +msgid ":mod:`msvcrt` --- Useful routines from the MS VC++ runtime" +msgstr "" + +#: ../Doc/library/msvcrt.rst:12 +msgid "" +"These functions provide access to some useful capabilities on Windows " +"platforms. Some higher-level modules use these functions to build the " +"Windows implementations of their services. For example, the :mod:`getpass` " +"module uses this in the implementation of the :func:`getpass` function." +msgstr "" + +#: ../Doc/library/msvcrt.rst:17 +msgid "" +"Further documentation on these functions can be found in the Platform API " +"documentation." +msgstr "" + +#: ../Doc/library/msvcrt.rst:20 +msgid "" +"The module implements both the normal and wide char variants of the console " +"I/O api. The normal API deals only with ASCII characters and is of limited " +"use for internationalized applications. The wide char API should be used " +"where ever possible." +msgstr "" + +#: ../Doc/library/msvcrt.rst:25 +msgid "" +"Operations in this module now raise :exc:`OSError` where :exc:`IOError` was " +"raised." +msgstr "" + +#: ../Doc/library/msvcrt.rst:33 +msgid "File Operations" +msgstr "" + +#: ../Doc/library/msvcrt.rst:38 +msgid "" +"Lock part of a file based on file descriptor *fd* from the C runtime. " +"Raises :exc:`OSError` on failure. The locked region of the file extends " +"from the current file position for *nbytes* bytes, and may continue beyond " +"the end of the file. *mode* must be one of the :const:`LK_\\*` constants " +"listed below. Multiple regions in a file may be locked at the same time, but " +"may not overlap. Adjacent regions are not merged; they must be unlocked " +"individually." +msgstr "" + +#: ../Doc/library/msvcrt.rst:49 +msgid "" +"Locks the specified bytes. If the bytes cannot be locked, the program " +"immediately tries again after 1 second. If, after 10 attempts, the bytes " +"cannot be locked, :exc:`OSError` is raised." +msgstr "" + +#: ../Doc/library/msvcrt.rst:57 +msgid "" +"Locks the specified bytes. If the bytes cannot be locked, :exc:`OSError` is " +"raised." +msgstr "" + +#: ../Doc/library/msvcrt.rst:63 +msgid "Unlocks the specified bytes, which must have been previously locked." +msgstr "" + +#: ../Doc/library/msvcrt.rst:68 +msgid "" +"Set the line-end translation mode for the file descriptor *fd*. To set it to " +"text mode, *flags* should be :const:`os.O_TEXT`; for binary, it should be :" +"const:`os.O_BINARY`." +msgstr "" + +#: ../Doc/library/msvcrt.rst:75 +msgid "" +"Create a C runtime file descriptor from the file handle *handle*. The " +"*flags* parameter should be a bitwise OR of :const:`os.O_APPEND`, :const:`os." +"O_RDONLY`, and :const:`os.O_TEXT`. The returned file descriptor may be used " +"as a parameter to :func:`os.fdopen` to create a file object." +msgstr "" + +#: ../Doc/library/msvcrt.rst:83 +msgid "" +"Return the file handle for the file descriptor *fd*. Raises :exc:`OSError` " +"if *fd* is not recognized." +msgstr "" + +#: ../Doc/library/msvcrt.rst:90 +msgid "Console I/O" +msgstr "" + +#: ../Doc/library/msvcrt.rst:95 +msgid "Return true if a keypress is waiting to be read." +msgstr "" + +#: ../Doc/library/msvcrt.rst:100 +msgid "" +"Read a keypress and return the resulting character as a byte string. Nothing " +"is echoed to the console. This call will block if a keypress is not already " +"available, but will not wait for :kbd:`Enter` to be pressed. If the pressed " +"key was a special function key, this will return ``'\\000'`` or ``'\\xe0'``; " +"the next call will return the keycode. The :kbd:`Control-C` keypress cannot " +"be read with this function." +msgstr "" + +#: ../Doc/library/msvcrt.rst:110 +msgid "Wide char variant of :func:`getch`, returning a Unicode value." +msgstr "" + +#: ../Doc/library/msvcrt.rst:115 +msgid "" +"Similar to :func:`getch`, but the keypress will be echoed if it represents " +"a printable character." +msgstr "" + +#: ../Doc/library/msvcrt.rst:121 +msgid "Wide char variant of :func:`getche`, returning a Unicode value." +msgstr "" + +#: ../Doc/library/msvcrt.rst:126 +msgid "Print the byte string *char* to the console without buffering." +msgstr "" + +#: ../Doc/library/msvcrt.rst:131 +msgid "Wide char variant of :func:`putch`, accepting a Unicode value." +msgstr "" + +#: ../Doc/library/msvcrt.rst:136 +msgid "" +"Cause the byte string *char* to be \"pushed back\" into the console buffer; " +"it will be the next character read by :func:`getch` or :func:`getche`." +msgstr "" + +#: ../Doc/library/msvcrt.rst:142 +msgid "Wide char variant of :func:`ungetch`, accepting a Unicode value." +msgstr "" + +#: ../Doc/library/msvcrt.rst:148 +msgid "Other Functions" +msgstr "" + +#: ../Doc/library/msvcrt.rst:153 +msgid "" +"Force the :c:func:`malloc` heap to clean itself up and return unused blocks " +"to the operating system. On failure, this raises :exc:`OSError`." +msgstr "" diff --git a/library/multiprocessing.po b/library/multiprocessing.po new file mode 100644 index 000000000..f4e4f85bb --- /dev/null +++ b/library/multiprocessing.po @@ -0,0 +1,4311 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-06-18 22:36+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/multiprocessing.rst:2 +msgid ":mod:`multiprocessing` --- Process-based parallelism" +msgstr ":mod:`multiprocessing` — Parallélisme par processus" + +#: ../Doc/library/multiprocessing.rst:7 +msgid "**Source code:** :source:`Lib/multiprocessing/`" +msgstr "**Code source :** :source:`Lib/multiprocessing/`" + +#: ../Doc/library/multiprocessing.rst:12 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/library/multiprocessing.rst:14 +msgid "" +":mod:`multiprocessing` is a package that supports spawning processes using " +"an API similar to the :mod:`threading` module. The :mod:`multiprocessing` " +"package offers both local and remote concurrency, effectively side-stepping " +"the :term:`Global Interpreter Lock` by using subprocesses instead of " +"threads. Due to this, the :mod:`multiprocessing` module allows the " +"programmer to fully leverage multiple processors on a given machine. It " +"runs on both Unix and Windows." +msgstr "" +":mod:`multiprocessing` est un paquet qui permet l'instanciation de processus " +"via la même API que le module :mod:`threading`. Le paquet :mod:" +"`multiprocessing` offre à la fois des possibilités de programmation " +"concurrente locale ou à distance, contournant les problèmes du :term:`Global " +"Interpreter Lock` en utilisant des processus plutôt que des fils " +"d'exécution. Ainsi, le module :mod:`multiprocessing` permet au développeur " +"de bénéficier entièrement des multiples processeurs sur une machine. Il " +"tourne à la fois sur les systèmes Unix et Windows." + +#: ../Doc/library/multiprocessing.rst:22 +msgid "" +"The :mod:`multiprocessing` module also introduces APIs which do not have " +"analogs in the :mod:`threading` module. A prime example of this is the :" +"class:`~multiprocessing.pool.Pool` object which offers a convenient means of " +"parallelizing the execution of a function across multiple input values, " +"distributing the input data across processes (data parallelism). The " +"following example demonstrates the common practice of defining such " +"functions in a module so that child processes can successfully import that " +"module. This basic example of data parallelism using :class:" +"`~multiprocessing.pool.Pool`, ::" +msgstr "" +"Le module :mod:`multiprocessing` introduit aussi des API sans analogues dans " +"le module :mod:`threading`. Un exemple est l'objet :class:`~multiprocessing." +"pool.Pool` qui offre une manière pratique de paralléliser l'exécution d'une " +"fonction sur de multiples valeurs d'entrée, distribuant ces valeurs entre " +"les processus (parallélisme de données). L'exemple suivant présente la " +"manière classique de définir une telle fonction dans un module afin que les " +"processus fils puissent importer ce module avec succès. L'exemple basique de " +"parallélisme de données utilise :class:`~multiprocessing.pool.Pool`, ::" + +#: ../Doc/library/multiprocessing.rst:40 +msgid "will print to standard output ::" +msgstr "affiche sur la sortie standard ::" + +#: ../Doc/library/multiprocessing.rst:46 +msgid "The :class:`Process` class" +msgstr "La classe :class:`Process`" + +#: ../Doc/library/multiprocessing.rst:48 +msgid "" +"In :mod:`multiprocessing`, processes are spawned by creating a :class:" +"`Process` object and then calling its :meth:`~Process.start` method. :class:" +"`Process` follows the API of :class:`threading.Thread`. A trivial example " +"of a multiprocess program is ::" +msgstr "" +"Dans le module :mod:`multiprocessing`, les processus sont instanciés en " +"créant un objet :class:`Process` et en appelant sa méthode :meth:`~Process." +"start`. La classe :class:`Process` suit la même API que :class:`threading." +"Thread`. Un exemple trivial d'un programme multi-processus est ::" + +#: ../Doc/library/multiprocessing.rst:63 +msgid "" +"To show the individual process IDs involved, here is an expanded example::" +msgstr "" +"Pour afficher les IDs des processus impliqués, voici un exemple plus " +"étoffé ::" + +#: ../Doc/library/multiprocessing.rst:84 +msgid "" +"For an explanation of why the ``if __name__ == '__main__'`` part is " +"necessary, see :ref:`multiprocessing-programming`." +msgstr "" +"La nécessité de la ligne ``if __name__ == '__main__'`` est expliquée par :" +"ref:`multiprocessing-programming`." + +#: ../Doc/library/multiprocessing.rst:90 +msgid "Contexts and start methods" +msgstr "Contextes et méthodes de démarrage" + +#: ../Doc/library/multiprocessing.rst:94 +msgid "" +"Depending on the platform, :mod:`multiprocessing` supports three ways to " +"start a process. These *start methods* are" +msgstr "" +"Suivant la plateforme, :mod:`multiprocessing` gère trois manières de " +"démarrer un processus. Ces *méthodes de démarrage* sont" + +#: ../Doc/library/multiprocessing.rst:105 +msgid "*spawn*" +msgstr "*spawn*" + +#: ../Doc/library/multiprocessing.rst:98 +msgid "" +"The parent process starts a fresh python interpreter process. The child " +"process will only inherit those resources necessary to run the process " +"objects :meth:`~Process.run` method. In particular, unnecessary file " +"descriptors and handles from the parent process will not be inherited. " +"Starting a process using this method is rather slow compared to using *fork* " +"or *forkserver*." +msgstr "" +"Le processus parent démarre un processus neuf avec un interpréteur Python. " +"Le processus fils hérite uniquement des ressources nécessaires pour exécuter " +"la méthode :meth:`~Process.run` de l'objet associé au processus. En " +"particulier, les descripteurs de fichiers superflus et gérés par le " +"processus parent ne sont pas hérités. Démarrer un processus en utilisant " +"cette méthode est plutôt lent par rapport à *fork* ou *forkserver*." + +#: ../Doc/library/multiprocessing.rst:105 +msgid "Available on Unix and Windows. The default on Windows." +msgstr "Disponible sur Unix et Windows. Par défaut sur Windows." + +#: ../Doc/library/multiprocessing.rst:114 +msgid "*fork*" +msgstr "*fork*" + +#: ../Doc/library/multiprocessing.rst:108 +msgid "" +"The parent process uses :func:`os.fork` to fork the Python interpreter. The " +"child process, when it begins, is effectively identical to the parent " +"process. All resources of the parent are inherited by the child process. " +"Note that safely forking a multithreaded process is problematic." +msgstr "" +"Le processus parent utilise :func:`os.fork` pour *forker* l'interpréteur " +"Python. Le processus fils, quand il démarre, est effectivement identique au " +"processus parent. Toutes les ressources du parent sont héritées par le fils. " +"Notez qu'il est problématique de *forker* sans danger un processus *multi-" +"threadé*." + +#: ../Doc/library/multiprocessing.rst:114 +msgid "Available on Unix only. The default on Unix." +msgstr "Disponible uniquement sous Unix. Par défaut sous Unix." + +#: ../Doc/library/multiprocessing.rst:125 +msgid "*forkserver*" +msgstr "*forkserver*" + +#: ../Doc/library/multiprocessing.rst:117 +msgid "" +"When the program starts and selects the *forkserver* start method, a server " +"process is started. From then on, whenever a new process is needed, the " +"parent process connects to the server and requests that it fork a new " +"process. The fork server process is single threaded so it is safe for it to " +"use :func:`os.fork`. No unnecessary resources are inherited." +msgstr "" +"Quand le programme démarre et choisit la méthode de démarrage *forkserver*, " +"un processus serveur est lancé. Dès lors, chaque fois qu'un nouveau " +"processus est nécessaire, le processus parent se connecte au serveur et lui " +"demande de *forker* un nouveau processus. Le processus serveur de *fork* " +"n'utilisant qu'un seul fil d'exécution, il peut utiliser :func:`os.fork` " +"sans danger. Les ressources superflues ne sont pas héritées." + +#: ../Doc/library/multiprocessing.rst:124 +msgid "" +"Available on Unix platforms which support passing file descriptors over Unix " +"pipes." +msgstr "" +"Disponible sur les plateformes Unix qui acceptent le passage de descripteurs " +"de fichiers à travers des tubes (*pipes*) Unix." + +#: ../Doc/library/multiprocessing.rst:127 +msgid "" +"*spawn* added on all unix platforms, and *forkserver* added for some unix " +"platforms. Child processes no longer inherit all of the parents inheritable " +"handles on Windows." +msgstr "" +"*spawn* ajouté à toutes les plateformes Unix, et *forkserver* ajouté à " +"certaines plateformes Unix. Les processus fils n'héritent plus de tous les " +"descripteurs héritables du parent sous Windows." + +#: ../Doc/library/multiprocessing.rst:133 +msgid "" +"On Unix using the *spawn* or *forkserver* start methods will also start a " +"*semaphore tracker* process which tracks the unlinked named semaphores " +"created by processes of the program. When all processes have exited the " +"semaphore tracker unlinks any remaining semaphores. Usually there should be " +"none, but if a process was killed by a signal there may be some \"leaked\" " +"semaphores. (Unlinking the named semaphores is a serious matter since the " +"system allows only a limited number, and they will not be automatically " +"unlinked until the next reboot.)" +msgstr "" +"Sous Unix, utiliser les méthodes de démarrage *spawn* ou *forkserver* " +"démarre aussi un processus *semaphore tracker* qui traque les sémaphores " +"nommés non libérés créés par les processus du programme. Quand tous les " +"processus sont terminés, le traqueur de sémaphores libère les sémaphores " +"restants. Généralement il ne devrait pas y en avoir, mais si un processus a " +"été tué par un signal, certains sémaphores ont pu « fuiter ». (Libérer les " +"sémaphores nommés est une affaire sérieuse puisque le système n'en autorise " +"qu'un certain nombre, et qu'ils ne seront pas automatiquement libérés avant " +"le prochain redémarrage.)" + +#: ../Doc/library/multiprocessing.rst:142 +msgid "" +"To select a start method you use the :func:`set_start_method` in the ``if " +"__name__ == '__main__'`` clause of the main module. For example::" +msgstr "" +"Pour sélectionner une méthode de démarrage, utilisez la fonction :func:" +"`set_start_method` dans la clause ``if __name__ == '__main__'`` du module " +"principal. Par exemple ::" + +#: ../Doc/library/multiprocessing.rst:159 +msgid "" +":func:`set_start_method` should not be used more than once in the program." +msgstr "" +":func:`set_start_method` ne doit pas être utilisée plus d'une fois dans le " +"programme." + +#: ../Doc/library/multiprocessing.rst:162 +msgid "" +"Alternatively, you can use :func:`get_context` to obtain a context object. " +"Context objects have the same API as the multiprocessing module, and allow " +"one to use multiple start methods in the same program. ::" +msgstr "" +"Alternativement, vous pouvez utiliser :func:`get_context` pour obtenir un " +"contexte. Les contextes ont la même API que le module *multiprocessing*, et " +"permettent l'utilisation de plusieurs méthodes de démarrage dans un même " +"programme. ::" + +#: ../Doc/library/multiprocessing.rst:180 +msgid "" +"Note that objects related to one context may not be compatible with " +"processes for a different context. In particular, locks created using the " +"*fork* context cannot be passed to processes started using the *spawn* or " +"*forkserver* start methods." +msgstr "" +"Notez que les objets relatifs à un contexte ne sont pas forcément " +"compatibles avec les processus d'un contexte différent. En particulier, les " +"verrous créés avec le contexte *fork* ne peuvent pas être passés aux " +"processus lancés avec les méthodes *spawn* ou *forkserver*." + +#: ../Doc/library/multiprocessing.rst:185 +msgid "" +"A library which wants to use a particular start method should probably use :" +"func:`get_context` to avoid interfering with the choice of the library user." +msgstr "" +"Une bibliothèque qui veut utiliser une méthode de démarrage particulière " +"devrait probablement faire appel à :func:`get_context` pour éviter " +"d'interférer avec le choix de l'utilisateur de la bibliothèque." + +#: ../Doc/library/multiprocessing.rst:191 +msgid "" +"The ``'spawn'`` and ``'forkserver'`` start methods cannot currently be used " +"with \"frozen\" executables (i.e., binaries produced by packages like " +"**PyInstaller** and **cx_Freeze**) on Unix. The ``'fork'`` start method does " +"work." +msgstr "" +"Les méthodes de démarrage ``’spawn’`` et ``’forkserver’`` ne peuvent pas " +"être utilisées avec des exécutables \"congelés\" (c'est-à-dire des binaires " +"produits par des paquets comme **PyInstaller** et **cx_Freeze**) sur Unix. " +"La méthode de démarrage ``’fork’`` fonctionne." + +#: ../Doc/library/multiprocessing.rst:198 +msgid "Exchanging objects between processes" +msgstr "Échange d'objets entre les processus" + +#: ../Doc/library/multiprocessing.rst:200 +msgid "" +":mod:`multiprocessing` supports two types of communication channel between " +"processes:" +msgstr "" +":mod:`multiprocessing` gère deux types de canaux de communication entre les " +"processus :" + +#: ../Doc/library/multiprocessing.rst:203 +msgid "**Queues**" +msgstr "**Queues**" + +#: ../Doc/library/multiprocessing.rst:205 +msgid "" +"The :class:`Queue` class is a near clone of :class:`queue.Queue`. For " +"example::" +msgstr "" +"La classe :class:`Queue` est un clone assez proche de :class:`queue.Queue`. " +"Par exemple ::" + +#: ../Doc/library/multiprocessing.rst:220 +msgid "Queues are thread and process safe." +msgstr "" +"Les queues peuvent être utilisées par plusieurs fils d'exécution ou " +"processus." + +#: ../Doc/library/multiprocessing.rst:222 +msgid "**Pipes**" +msgstr "**Tubes** (*pipes*)" + +#: ../Doc/library/multiprocessing.rst:224 +msgid "" +"The :func:`Pipe` function returns a pair of connection objects connected by " +"a pipe which by default is duplex (two-way). For example::" +msgstr "" +"La fonction :func:`Pipe` renvoie une paire d'objets de connexion connectés à " +"un tube qui est par défaut à double-sens. Par exemple ::" + +#: ../Doc/library/multiprocessing.rst:240 +msgid "" +"The two connection objects returned by :func:`Pipe` represent the two ends " +"of the pipe. Each connection object has :meth:`~Connection.send` and :meth:" +"`~Connection.recv` methods (among others). Note that data in a pipe may " +"become corrupted if two processes (or threads) try to read from or write to " +"the *same* end of the pipe at the same time. Of course there is no risk of " +"corruption from processes using different ends of the pipe at the same time." +msgstr "" +"Les deux objets de connexion renvoyés par :func:`Pipe` représentent les deux " +"bouts d'un tube. Chaque objet de connexion possède (entre autres) des " +"méthodes :meth:`~Connection.send` et :meth:`~Connection.recv`. Notez que les " +"données d'un tube peuvent être corrompues si deux processus (ou fils " +"d'exécution) essaient de lire ou d'écrire sur le même bout du tube en même " +"temps. Évidemment il n'y a pas de risque de corruption si les processus " +"utilisent deux bouts différents en même temps." + +#: ../Doc/library/multiprocessing.rst:250 +msgid "Synchronization between processes" +msgstr "Synchronisation entre processus" + +#: ../Doc/library/multiprocessing.rst:252 +msgid "" +":mod:`multiprocessing` contains equivalents of all the synchronization " +"primitives from :mod:`threading`. For instance one can use a lock to ensure " +"that only one process prints to standard output at a time::" +msgstr "" +":mod:`multiprocessing` contient des équivalents à toutes les primitives de " +"synchronisation de :mod:`threading`. Par exemple il est possible d'utiliser " +"un verrou pour s'assurer qu'un seul processus à la fois écrit sur la sortie " +"standard ::" + +#: ../Doc/library/multiprocessing.rst:271 +msgid "" +"Without using the lock output from the different processes is liable to get " +"all mixed up." +msgstr "" +"Sans le verrou, les sorties des différents processus risquent d'être " +"mélangées." + +#: ../Doc/library/multiprocessing.rst:276 +msgid "Sharing state between processes" +msgstr "Partager un état entre les processus" + +#: ../Doc/library/multiprocessing.rst:278 +msgid "" +"As mentioned above, when doing concurrent programming it is usually best to " +"avoid using shared state as far as possible. This is particularly true when " +"using multiple processes." +msgstr "" +"Comme mentionné plus haut, il est généralement préférable d'éviter autant " +"que possible d'utiliser des états partagés en programmation concurrente. " +"C'est particulièrement vrai quand plusieurs processus sont utilisés." + +#: ../Doc/library/multiprocessing.rst:282 +msgid "" +"However, if you really do need to use some shared data then :mod:" +"`multiprocessing` provides a couple of ways of doing so." +msgstr "" +"Cependant, si vous devez réellement partager des données, :mod:" +"`multiprocessing` permet de le faire de deux manières." + +#: ../Doc/library/multiprocessing.rst:285 +msgid "**Shared memory**" +msgstr "**Mémoire partagée**" + +#: ../Doc/library/multiprocessing.rst:287 +msgid "" +"Data can be stored in a shared memory map using :class:`Value` or :class:" +"`Array`. For example, the following code ::" +msgstr "" +"Les données peuvent être stockées dans une mémoire partagée en utilisant " +"des :class:`Value` ou des :class:`Array`. Par exemple, le code suivant ::" + +#: ../Doc/library/multiprocessing.rst:308 +#: ../Doc/library/multiprocessing.rst:354 +msgid "will print ::" +msgstr "affiche ::" + +#: ../Doc/library/multiprocessing.rst:313 +msgid "" +"The ``'d'`` and ``'i'`` arguments used when creating ``num`` and ``arr`` are " +"typecodes of the kind used by the :mod:`array` module: ``'d'`` indicates a " +"double precision float and ``'i'`` indicates a signed integer. These shared " +"objects will be process and thread-safe." +msgstr "" +"Les arguments ``'d'`` et ``'i'`` utilisés à la création des ``num`` et " +"`arr`` sont des codes de types tels qu'utilisés par le module :mod:`array` : " +"``'d'`` indique un flottant double-précision et ``'i'`` indique un entier " +"signé. Ces objets partagés seront sûr d'utilisation entre processus et fils " +"d'exécution." + +#: ../Doc/library/multiprocessing.rst:318 +msgid "" +"For more flexibility in using shared memory one can use the :mod:" +"`multiprocessing.sharedctypes` module which supports the creation of " +"arbitrary ctypes objects allocated from shared memory." +msgstr "" +"Pour plus de flexibilité dans l'utilisation de mémoire partagée, vous pouvez " +"utiliser le module :mod:`multiprocessing.sharedctypes` qui permet la " +"création d'objets arbitraires *ctypes* alloués depuis la mémoire partagée." + +#: ../Doc/library/multiprocessing.rst:322 +msgid "**Server process**" +msgstr "**Processus serveur**" + +#: ../Doc/library/multiprocessing.rst:324 +msgid "" +"A manager object returned by :func:`Manager` controls a server process which " +"holds Python objects and allows other processes to manipulate them using " +"proxies." +msgstr "" +"Un objet gestionnaire renvoyé par :func:`Manager` contrôle un processus " +"serveur qui détient les objets Python et autorise les autres processus à les " +"manipuler à l'aide de mandataires." + +#: ../Doc/library/multiprocessing.rst:328 +msgid "" +"A manager returned by :func:`Manager` will support types :class:`list`, :" +"class:`dict`, :class:`~managers.Namespace`, :class:`Lock`, :class:`RLock`, :" +"class:`Semaphore`, :class:`BoundedSemaphore`, :class:`Condition`, :class:" +"`Event`, :class:`Barrier`, :class:`Queue`, :class:`Value` and :class:" +"`Array`. For example, ::" +msgstr "" +"Un gestionnaire renvoyé par :func:`Manager` supportera les types :class:" +"`list`, :class:`dict`, :class:`~managers.Namespace`, :class:`Lock`, :class:" +"`RLock`, :class:`Semaphore`, :class:`BoundedSemaphore`, :class:`Condition`, :" +"class:`Event`, :class:`Barrier`, :class:`Queue`, :class:`Value` et :class:" +"`Array`. Par exemple, ::" + +#: ../Doc/library/multiprocessing.rst:359 +msgid "" +"Server process managers are more flexible than using shared memory objects " +"because they can be made to support arbitrary object types. Also, a single " +"manager can be shared by processes on different computers over a network. " +"They are, however, slower than using shared memory." +msgstr "" +"Les processus serveurs de gestionnaires sont plus flexibles que les mémoires " +"partagées parce qu'ils peuvent gérer des types d'objets arbitraires. Aussi, " +"un gestionnaire unique peut être partagé par les processus sur différentes " +"machines à travers le réseau. Cependant, ils sont plus lents que les " +"mémoires partagées." + +#: ../Doc/library/multiprocessing.rst:366 +msgid "Using a pool of workers" +msgstr "Utiliser un réservoir de *workers*" + +#: ../Doc/library/multiprocessing.rst:368 +msgid "" +"The :class:`~multiprocessing.pool.Pool` class represents a pool of worker " +"processes. It has methods which allows tasks to be offloaded to the worker " +"processes in a few different ways." +msgstr "" +"La classe :class:`~multiprocessing.pool.Pool` représente une *pool* de " +"processus de travail. Elle possède des méthodes qui permettent aux tâches " +"d'être déchargées vers les processus de travail de différentes manières." + +#: ../Doc/library/multiprocessing.rst:372 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/library/multiprocessing.rst:416 +msgid "" +"Note that the methods of a pool should only ever be used by the process " +"which created it." +msgstr "" +"Notez que les méthodes d'une *pool* ne devraient être utilisées que par le " +"processus qui l'a créée." + +#: ../Doc/library/multiprocessing.rst:421 +msgid "" +"Functionality within this package requires that the ``__main__`` module be " +"importable by the children. This is covered in :ref:`multiprocessing-" +"programming` however it is worth pointing out here. This means that some " +"examples, such as the :class:`multiprocessing.pool.Pool` examples will not " +"work in the interactive interpreter. For example::" +msgstr "" +"Fonctionnellement ce paquet exige que que le module ``__main__`` soit " +"importable par les fils. Cela est expliqué sur la page :ref:`multiprocessing-" +"programming`, il est cependant utile de le rappeler ici. Cela signifie que " +"certains exemples, comme les exemples utilisant :class:`multiprocessing.pool." +"Pool`, ne fonctionnent pas dans l'interpréteur interactif. Par exemple ::" + +#: ../Doc/library/multiprocessing.rst:443 +msgid "" +"(If you try this it will actually output three full tracebacks interleaved " +"in a semi-random fashion, and then you may have to stop the master process " +"somehow.)" +msgstr "" +"(Si vous essayez ce code, il affichera trois traces d'appels complètes " +"entrelacées de manière semi-aléatoire, et vous aurez alors à stopper le " +"processus maître.)" + +#: ../Doc/library/multiprocessing.rst:449 +msgid "Reference" +msgstr "Référence" + +#: ../Doc/library/multiprocessing.rst:451 +msgid "" +"The :mod:`multiprocessing` package mostly replicates the API of the :mod:" +"`threading` module." +msgstr "" +"Le paquet :mod:`multiprocessing` reproduit en grande partie l'API du module :" +"mod:`threading`." + +#: ../Doc/library/multiprocessing.rst:456 +msgid ":class:`Process` and exceptions" +msgstr ":class:`Process` et exceptions" + +#: ../Doc/library/multiprocessing.rst:461 +msgid "" +"Process objects represent activity that is run in a separate process. The :" +"class:`Process` class has equivalents of all the methods of :class:" +"`threading.Thread`." +msgstr "" +"Les objets *process* représentent une activité exécutée dans un processus " +"séparé. La classe :class:`Process` a des équivalents à toutes les méthodes " +"de :class:`threading.Thread`." + +#: ../Doc/library/multiprocessing.rst:465 +msgid "" +"The constructor should always be called with keyword arguments. *group* " +"should always be ``None``; it exists solely for compatibility with :class:" +"`threading.Thread`. *target* is the callable object to be invoked by the :" +"meth:`run()` method. It defaults to ``None``, meaning nothing is called. " +"*name* is the process name (see :attr:`name` for more details). *args* is " +"the argument tuple for the target invocation. *kwargs* is a dictionary of " +"keyword arguments for the target invocation. If provided, the keyword-only " +"*daemon* argument sets the process :attr:`daemon` flag to ``True`` or " +"``False``. If ``None`` (the default), this flag will be inherited from the " +"creating process." +msgstr "" +"Le constructeur doit toujours être appelé avec des arguments nommés. *group* " +"devrait toujours être ``None`` ; il existe uniquement pour la compatibilité " +"avec :class:`threading.Thread`. *target* est l'objet appelable qui est " +"invoqué par la méthode :meth:`run(). Il vaut ``None`` par défaut, signifiant " +"que rien n'est appelé. *name* est le nom du processus (voir :attr:`name` " +"pour plus de détails). *args* est le *tuple* d'arguments pour l'invocation " +"de la cible. *kwargs* est le dictionnaire des arguments nommés pour " +"l'invocation de la cible. S'il est fourni, l'argument nommé *daemon* met " +"l'option :attr:`daemon` du processus à ``True`` ou ``False``. S'il est " +"``None`` (par défaut), l'option est héritée par le processus créateur." + +#: ../Doc/library/multiprocessing.rst:476 +msgid "By default, no arguments are passed to *target*." +msgstr "Par défaut, aucun argument n'est passé à *target*." + +#: ../Doc/library/multiprocessing.rst:478 +msgid "" +"If a subclass overrides the constructor, it must make sure it invokes the " +"base class constructor (:meth:`Process.__init__`) before doing anything else " +"to the process." +msgstr "" +"Si une sous-classe redéfinit le constructeur, elle doit s'assurer d'invoquer " +"le constructeur de la classe de base (:meth:`Process.__init__`) avant de " +"faire autre chose du processus." + +#: ../Doc/library/multiprocessing.rst:482 +msgid "Added the *daemon* argument." +msgstr "Ajout de l'argument *daemon*." + +#: ../Doc/library/multiprocessing.rst:487 +msgid "Method representing the process's activity." +msgstr "Méthode représentant l'activité du processus." + +#: ../Doc/library/multiprocessing.rst:489 +msgid "" +"You may override this method in a subclass. The standard :meth:`run` method " +"invokes the callable object passed to the object's constructor as the target " +"argument, if any, with sequential and keyword arguments taken from the " +"*args* and *kwargs* arguments, respectively." +msgstr "" +"Vous pouvez redéfinir cette méthode dans une sous-classe. La méthode " +"standard :meth:`run` invoque l'objet appelable passé au constructeur comme " +"argument *target*, si fourni, avec les arguments séquentiels et nommés " +"respectivement pris depuis les paramètres *args* et *kwargs*." + +#: ../Doc/library/multiprocessing.rst:496 +msgid "Start the process's activity." +msgstr "Démarre l'activité du processus." + +#: ../Doc/library/multiprocessing.rst:498 +msgid "" +"This must be called at most once per process object. It arranges for the " +"object's :meth:`run` method to be invoked in a separate process." +msgstr "" +"Elle doit être appelée au plus une fois par objet processus. Elle s'arrange " +"pour que la méthode :meth:`run` de l'objet soit invoquée dans un processus " +"séparé." + +#: ../Doc/library/multiprocessing.rst:503 +msgid "" +"If the optional argument *timeout* is ``None`` (the default), the method " +"blocks until the process whose :meth:`join` method is called terminates. If " +"*timeout* is a positive number, it blocks at most *timeout* seconds. Note " +"that the method returns ``None`` if its process terminates or if the method " +"times out. Check the process's :attr:`exitcode` to determine if it " +"terminated." +msgstr "" +"Si l'argument optionnel *timeout* est ``None`` (par défaut), la méthode " +"bloque jusqu'à ce que le processus dont la méthode :meth:`join` a été " +"appelée se termine. Si *timeout* est un nombre positif, elle bloque au " +"maximum pendant *timeout* secondes. Notez que la méthode renvoie ``None`` si " +"le processus se termine ou si le temps d'exécution expire. Vérifiez " +"l'attribut :attr:`exitcode` du processus pour déterminer s'il s'est terminé." + +#: ../Doc/library/multiprocessing.rst:510 +msgid "A process can be joined many times." +msgstr "*join* peut être appelée plusieurs fois sur un même processus." + +#: ../Doc/library/multiprocessing.rst:512 +msgid "" +"A process cannot join itself because this would cause a deadlock. It is an " +"error to attempt to join a process before it has been started." +msgstr "" +"Un processus ne peut pas s'attendre lui-même car cela causerait un " +"interblocage. C'est une erreur d'essayer d'attendre un processus avant qu'il " +"ne soit démarré." + +#: ../Doc/library/multiprocessing.rst:517 +msgid "" +"The process's name. The name is a string used for identification purposes " +"only. It has no semantics. Multiple processes may be given the same name." +msgstr "" +"Le nom du processus. Le nom est une chaîne de caractères utilisée uniquement " +"pour l'identification du processus. Il n'a pas de sémantique. Plusieurs " +"processus peuvent avoir le même nom." + +#: ../Doc/library/multiprocessing.rst:521 +msgid "" +"The initial name is set by the constructor. If no explicit name is provided " +"to the constructor, a name of the form 'Process-N\\ :sub:`1`:N\\ :sub:" +"`2`:...:N\\ :sub:`k`' is constructed, where each N\\ :sub:`k` is the N-th " +"child of its parent." +msgstr "" +"Le nom initial est déterminé par le constructeur. Si aucun nom explicite " +"n'est fourni au constructeur, un nom de la forme « Process-N\\ :sub:`1`:N\\ :" +"sub:`2`:...:N\\ :sub:`k` » est construit, où chaque N\\ :sub:`k` est le N-" +"ième enfant de son parent." + +#: ../Doc/library/multiprocessing.rst:528 +msgid "Return whether the process is alive." +msgstr "Renvoie vrai si le processus est en vie, faux sinon." + +#: ../Doc/library/multiprocessing.rst:530 +msgid "" +"Roughly, a process object is alive from the moment the :meth:`start` method " +"returns until the child process terminates." +msgstr "" +"Grossièrement, un objet processus est en vie depuis le moment où la méthode :" +"meth:`start` finit de s'exécuter jusqu'à ce que le processus fils se termine." + +#: ../Doc/library/multiprocessing.rst:535 +msgid "" +"The process's daemon flag, a Boolean value. This must be set before :meth:" +"`start` is called." +msgstr "" +"L'option *daemon* du processus, une valeur booléenne. L'option doit être " +"réglée avant que la méthode :meth:`start` ne soit appelée." + +#: ../Doc/library/multiprocessing.rst:538 +msgid "The initial value is inherited from the creating process." +msgstr "La valeur initiale est héritée par le processus créateur." + +#: ../Doc/library/multiprocessing.rst:540 +msgid "" +"When a process exits, it attempts to terminate all of its daemonic child " +"processes." +msgstr "" +"Quand un processus se ferme, il tente de terminer tous ses processus enfants " +"*daemon*." + +#: ../Doc/library/multiprocessing.rst:543 +msgid "" +"Note that a daemonic process is not allowed to create child processes. " +"Otherwise a daemonic process would leave its children orphaned if it gets " +"terminated when its parent process exits. Additionally, these are **not** " +"Unix daemons or services, they are normal processes that will be terminated " +"(and not joined) if non-daemonic processes have exited." +msgstr "" +"Notez qu'un processus *daemon* n'est pas autorisé à créer des processus " +"fils. Sinon un processus *daemon* laisserait ses enfants orphelins lorsqu'il " +"se termine par la fermeture de son parent. De plus, ce **ne sont pas** des " +"*daemons* ou services Unix, ce sont des processus normaux qui seront " +"terminés (et non attendus) si un processus non *daemon* se ferme." + +#: ../Doc/library/multiprocessing.rst:549 +msgid "" +"In addition to the :class:`threading.Thread` API, :class:`Process` objects " +"also support the following attributes and methods:" +msgstr "" +"En plus de l'API :class:`threading.Thread`, les objets :class:`Process` " +"supportent aussi les attributs et méthodes suivants :" + +#: ../Doc/library/multiprocessing.rst:554 +msgid "" +"Return the process ID. Before the process is spawned, this will be ``None``." +msgstr "" +"Renvoie l'ID du processus. Avant que le processus ne soit lancé, la valeur " +"est ``None``." + +#: ../Doc/library/multiprocessing.rst:559 +msgid "" +"The child's exit code. This will be ``None`` if the process has not yet " +"terminated. A negative value *-N* indicates that the child was terminated " +"by signal *N*." +msgstr "" +"Le code de fermeture de l'enfant. La valeur est ``None`` si le processus ne " +"s'est pas encore terminé. Une valeur négative *-N* indique que le fils a été " +"terminé par un signal *N*." + +#: ../Doc/library/multiprocessing.rst:565 +msgid "The process's authentication key (a byte string)." +msgstr "La clé d'authentification du processus (une chaîne d'octets)." + +#: ../Doc/library/multiprocessing.rst:567 +msgid "" +"When :mod:`multiprocessing` is initialized the main process is assigned a " +"random string using :func:`os.urandom`." +msgstr "" +"Quand :mod:`multiprocessing` est initialisé, une chaîne aléatoire est " +"assignée au processus principal, en utilisant :func:`os.urandom`." + +#: ../Doc/library/multiprocessing.rst:570 +msgid "" +"When a :class:`Process` object is created, it will inherit the " +"authentication key of its parent process, although this may be changed by " +"setting :attr:`authkey` to another byte string." +msgstr "" +"Quand un objet :class:`Process` est créé, il hérité de la clé " +"d'authentification de son parent, bien que cela puisse être changé à l'aide " +"du paramètre :attr:`authkey` pour une autre chaîne d'octets." + +#: ../Doc/library/multiprocessing.rst:574 +msgid "See :ref:`multiprocessing-auth-keys`." +msgstr "Voir :ref:`multiprocessing-auth-keys`." + +#: ../Doc/library/multiprocessing.rst:578 +msgid "" +"A numeric handle of a system object which will become \"ready\" when the " +"process ends." +msgstr "" +"Un identifiant numérique de l'objet système qui devient « prêt » quand le " +"processus se termine." + +#: ../Doc/library/multiprocessing.rst:581 +msgid "" +"You can use this value if you want to wait on several events at once using :" +"func:`multiprocessing.connection.wait`. Otherwise calling :meth:`join()` is " +"simpler." +msgstr "" +"Vous pouvez utiliser cette valeur si vous voulez attendre plusieurs " +"événements à la fois en utilisant :func:`multiprocessing.connection.wait`. " +"Autrement appeler :meth:`join()` est plus simple." + +#: ../Doc/library/multiprocessing.rst:585 +msgid "" +"On Windows, this is an OS handle usable with the ``WaitForSingleObject`` and " +"``WaitForMultipleObjects`` family of API calls. On Unix, this is a file " +"descriptor usable with primitives from the :mod:`select` module." +msgstr "" +"Sous Windows, c'est un mécanisme de l'OS utilisable avec les familles " +"d'appels API ``WaitForSingleObject`` et ``WaitForMultipleObjects``. Sous " +"Unix, c'est un descripteur de fichier utilisable avec les primitives sur " +"module :mod:`select`." + +#: ../Doc/library/multiprocessing.rst:593 +msgid "" +"Terminate the process. On Unix this is done using the ``SIGTERM`` signal; " +"on Windows :c:func:`TerminateProcess` is used. Note that exit handlers and " +"finally clauses, etc., will not be executed." +msgstr "" +"Termine le processus. Sous Unix cela est réalisé à l'aide d'un signal " +"``SIGTERM``, sous Windows :c:func:`TerminateProcess` est utilisé. Notez que " +"les gestionnaires de sortie, les clauses `finally` etc. ne sont pas " +"exécutées." + +#: ../Doc/library/multiprocessing.rst:597 +msgid "" +"Note that descendant processes of the process will *not* be terminated -- " +"they will simply become orphaned." +msgstr "" +"Notez que les descendants du processus ne *seront pas* terminés -- ils " +"deviendront simplement orphelins." + +#: ../Doc/library/multiprocessing.rst:602 +msgid "" +"If this method is used when the associated process is using a pipe or queue " +"then the pipe or queue is liable to become corrupted and may become unusable " +"by other process. Similarly, if the process has acquired a lock or " +"semaphore etc. then terminating it is liable to cause other processes to " +"deadlock." +msgstr "" +"Si cette méthode est utilisée quand le processus associé utilise un tube ou " +"une queue, alors le tube ou la queue sont susceptibles d'être corrompus et " +"peuvent devenir inutilisables par les autres processus. De façon similaire, " +"si le processus a acquis un verrou, un sémaphore ou autre, alors le terminer " +"est susceptible de provoquer des blocages dans les autres processus." + +#: ../Doc/library/multiprocessing.rst:610 +msgid "Same as :meth:`terminate()` but using the ``SIGKILL`` signal on Unix." +msgstr "" +"Identique à :meth:`terminate()` mais utilisant le signal ``SIGKILL`` sous " +"Unix." + +#: ../Doc/library/multiprocessing.rst:616 +msgid "" +"Close the :class:`Process` object, releasing all resources associated with " +"it. :exc:`ValueError` is raised if the underlying process is still " +"running. Once :meth:`close` returns successfully, most other methods and " +"attributes of the :class:`Process` object will raise :exc:`ValueError`." +msgstr "" +"Ferme l'objet :class:`Process`, libérant toutes les ressources qui lui sont " +"associées. Une :exc:`ValueError` est levée si le processus sous-jacent " +"tourne toujours. Une fois que :meth:`close` se termine avec succès, la " +"plupart des autres méthodes et attributs des objets :class:`Process` " +"lèveront une :exc:`ValueError`." + +#: ../Doc/library/multiprocessing.rst:624 +msgid "" +"Note that the :meth:`start`, :meth:`join`, :meth:`is_alive`, :meth:" +"`terminate` and :attr:`exitcode` methods should only be called by the " +"process that created the process object." +msgstr "" +"Notez que les méthodes :meth:`start`, :meth:`join`, :meth:`is_alive`, :meth:" +"`terminate` et :attr:`exitcode` ne devraient être appelées que par le " +"processus ayant créé l'objet *process*." + +#: ../Doc/library/multiprocessing.rst:628 +msgid "Example usage of some of the methods of :class:`Process`:" +msgstr "Exemple d'utilisation de quelques méthodes de :class:`Process` :" + +#: ../Doc/library/multiprocessing.rst:648 +msgid "The base class of all :mod:`multiprocessing` exceptions." +msgstr "La classe de base de toutes les exceptions de :mod:`multiprocessing`." + +#: ../Doc/library/multiprocessing.rst:652 +msgid "" +"Exception raised by :meth:`Connection.recv_bytes_into()` when the supplied " +"buffer object is too small for the message read." +msgstr "" +"Exception levée par :meth:`Connection.recv_bytes_into()` quand l'objet " +"tampon fourni est trop petit pour le message à lire." + +#: ../Doc/library/multiprocessing.rst:655 +msgid "" +"If ``e`` is an instance of :exc:`BufferTooShort` then ``e.args[0]`` will " +"give the message as a byte string." +msgstr "" +"Si ``e`` est une instance de :exc:`BufferTooShort` alors ``e.args[0]`` " +"donnera un message sous forme d'une chaîne d'octets." + +#: ../Doc/library/multiprocessing.rst:660 +msgid "Raised when there is an authentication error." +msgstr "Levée quand il y a une erreur d'authentification." + +#: ../Doc/library/multiprocessing.rst:664 +msgid "Raised by methods with a timeout when the timeout expires." +msgstr "" +"Levée par les méthodes avec temps d'exécution limité, quand ce temps expire." + +#: ../Doc/library/multiprocessing.rst:667 +msgid "Pipes and Queues" +msgstr "Tubes (*pipes*) et Queues" + +#: ../Doc/library/multiprocessing.rst:669 +msgid "" +"When using multiple processes, one generally uses message passing for " +"communication between processes and avoids having to use any synchronization " +"primitives like locks." +msgstr "" +"Quand de multiples processus sont utilisés, de l'échange de messages est " +"souvent mis en place pour la communication entre processus et éviter d'avoir " +"à utiliser des primitives de synchronisation telles que des verrous." + +#: ../Doc/library/multiprocessing.rst:673 +msgid "" +"For passing messages one can use :func:`Pipe` (for a connection between two " +"processes) or a queue (which allows multiple producers and consumers)." +msgstr "" +"Pour échanger des messages vous pouvez utiliser un :func:`Pipe` (pour une " +"connexion entre deux processus) ou une queue (qui autorise de multiples " +"producteurs et consommateurs)." + +#: ../Doc/library/multiprocessing.rst:676 +msgid "" +"The :class:`Queue`, :class:`SimpleQueue` and :class:`JoinableQueue` types " +"are multi-producer, multi-consumer :abbr:`FIFO (first-in, first-out)` queues " +"modelled on the :class:`queue.Queue` class in the standard library. They " +"differ in that :class:`Queue` lacks the :meth:`~queue.Queue.task_done` and :" +"meth:`~queue.Queue.join` methods introduced into Python 2.5's :class:`queue." +"Queue` class." +msgstr "" +"Les types :class:`Queue`, :class:`SimpleQueue` et :class:`JoinableQueue` " +"sont des queues :abbr:`FIFO (first-in, first-out)` multi-producteurs et " +"multi-consommateurs modelées sur la classe :class:`queue.Queue` de la " +"bibliothèque standard. Elles diffèrent par l'absence dans :class:`Queue` des " +"méthodes :meth:`~queue.Queue.task_done` et :meth:`~queue.Queue.join` " +"introduites dans la classe :class:`queue.Queue` par Python 2.5." + +#: ../Doc/library/multiprocessing.rst:683 +msgid "" +"If you use :class:`JoinableQueue` then you **must** call :meth:" +"`JoinableQueue.task_done` for each task removed from the queue or else the " +"semaphore used to count the number of unfinished tasks may eventually " +"overflow, raising an exception." +msgstr "" +"Si vous utilisez :class:`JoinableQueue` alors vous **devez** appeler :meth:" +"`JoinableQueue.task_done` pour chaque tâche retirée de la queue, sans quoi " +"le sémaphore utilisé pour compter le nombre de tâches non accomplies pourra " +"éventuellement déborder, levant une exception." + +#: ../Doc/library/multiprocessing.rst:688 +msgid "" +"Note that one can also create a shared queue by using a manager object -- " +"see :ref:`multiprocessing-managers`." +msgstr "" +"Notez que vous pouvez aussi créer une queue partagée en utilisant un objet " +"gestionnaire -- voir :ref:`multiprocessing-managers`." + +#: ../Doc/library/multiprocessing.rst:693 +msgid "" +":mod:`multiprocessing` uses the usual :exc:`queue.Empty` and :exc:`queue." +"Full` exceptions to signal a timeout. They are not available in the :mod:" +"`multiprocessing` namespace so you need to import them from :mod:`queue`." +msgstr "" +":mod:`multiprocessing` utilise les exceptions habituelles :exc:`queue.Empty` " +"et :exc:`queue.Full` pour signaler un dépassement du temps maximal autorisé. " +"Elles ne sont pas disponibles dans l'espace de nommage :mod:" +"`multiprocessing` donc vous devez les importer depuis le module :mod:`queue`." + +#: ../Doc/library/multiprocessing.rst:700 +msgid "" +"When an object is put on a queue, the object is pickled and a background " +"thread later flushes the pickled data to an underlying pipe. This has some " +"consequences which are a little surprising, but should not cause any " +"practical difficulties -- if they really bother you then you can instead use " +"a queue created with a :ref:`manager `." +msgstr "" +"Quand un objet est placé dans une queue, l'objet est sérialisé par *pickle* " +"et un fil d'exécution en arrière-plan transmettra ensuite les données " +"sérialisées sur un tube sous-jacent. Cela a certaines conséquences qui " +"peuvent être un peu surprenantes, mais ne devrait causer aucune difficultés " +"pratiques -- si elles vous embêtent vraiment, alors vous pouvez à la place " +"utiliser une queue créée avec un :ref:`manager `." + +#: ../Doc/library/multiprocessing.rst:707 +msgid "" +"After putting an object on an empty queue there may be an infinitesimal " +"delay before the queue's :meth:`~Queue.empty` method returns :const:`False` " +"and :meth:`~Queue.get_nowait` can return without raising :exc:`queue.Empty`." +msgstr "" +"Après avoir placé un objet dans une queue vide il peut y avoir un délai " +"infinitésimal avant que la méthode :meth:`~Queue.empty` de la queue renvoie :" +"const:`False` et que :meth:`~Queue.get_nowait` renvoie une valeur sans lever " +"de :exc:`queue.Empty`." + +#: ../Doc/library/multiprocessing.rst:712 +msgid "" +"If multiple processes are enqueuing objects, it is possible for the objects " +"to be received at the other end out-of-order. However, objects enqueued by " +"the same process will always be in the expected order with respect to each " +"other." +msgstr "" +"Si plusieurs processus placent des objets dans la queue, il est possible " +"pour les objets d'être reçus de l'autre côté dans le désordre. Cependant, " +"les objets placés par un même processus seront toujours récupérés dans " +"l'ordre attendu." + +#: ../Doc/library/multiprocessing.rst:719 +msgid "" +"If a process is killed using :meth:`Process.terminate` or :func:`os.kill` " +"while it is trying to use a :class:`Queue`, then the data in the queue is " +"likely to become corrupted. This may cause any other process to get an " +"exception when it tries to use the queue later on." +msgstr "" +"Si un processus est tué à l'aide de :meth:`Process.terminate` ou :func:`os." +"kill` pendant qu'il tente d'utiliser une :class:`Queue`, alors les données " +"de la queue peuvent être corrompues. Cela peut par la suite causer des " +"levées d'exceptions dans les autres processus quand ils tenteront d'utiliser " +"la queue." + +#: ../Doc/library/multiprocessing.rst:726 +msgid "" +"As mentioned above, if a child process has put items on a queue (and it has " +"not used :meth:`JoinableQueue.cancel_join_thread `), then that process will not terminate until all " +"buffered items have been flushed to the pipe." +msgstr "" +"Comme mentionné plus haut, si un processus fils a placé des éléments dans la " +"queue (et qu'il n'a pas utilisé :meth:`JoinableQueue.cancel_join_thread " +"`), alors le processus ne se " +"terminera pas tant que les éléments placés dans le tampon n'auront pas été " +"transmis au tube." + +#: ../Doc/library/multiprocessing.rst:731 +msgid "" +"This means that if you try joining that process you may get a deadlock " +"unless you are sure that all items which have been put on the queue have " +"been consumed. Similarly, if the child process is non-daemonic then the " +"parent process may hang on exit when it tries to join all its non-daemonic " +"children." +msgstr "" +"Cela signifie que si vous essayez d'attendre ce processus vous pouvez " +"obtenir un interblocage, à moins que vous ne soyez sûr que tous les éléments " +"placés dans la queue ont été consommés. De même, si le processus fils n'est " +"pas un *daemon* alors le processus parent pourrait bloquer à la fermeture " +"quand il tentera d'attendre tous ses enfants non *daemons*." + +#: ../Doc/library/multiprocessing.rst:736 +msgid "" +"Note that a queue created using a manager does not have this issue. See :" +"ref:`multiprocessing-programming`." +msgstr "" +"Notez que la queue créée à l'aide d'un gestionnaire n'a pas ce problème. " +"Voir :ref:`multiprocessing-programming`." + +#: ../Doc/library/multiprocessing.rst:739 +msgid "" +"For an example of the usage of queues for interprocess communication see :" +"ref:`multiprocessing-examples`." +msgstr "" +"Pour un exemple d'utilisation de queues pour de la communication entre les " +"processus, voir :ref:`multiprocessing-examples`." + +#: ../Doc/library/multiprocessing.rst:745 +msgid "" +"Returns a pair ``(conn1, conn2)`` of :class:`~multiprocessing.connection." +"Connection` objects representing the ends of a pipe." +msgstr "" +"Renvoie une paire ``(conn1, conn2)`` d'objets :class:`~multiprocessing." +"connection.Connection` représentant les bouts d'un tube." + +#: ../Doc/library/multiprocessing.rst:749 +msgid "" +"If *duplex* is ``True`` (the default) then the pipe is bidirectional. If " +"*duplex* is ``False`` then the pipe is unidirectional: ``conn1`` can only be " +"used for receiving messages and ``conn2`` can only be used for sending " +"messages." +msgstr "" +"Si *duplex* vaut ``True`` (par défaut), alors le tube est bidirectionnel. Si " +"*duplex* vaut ``False`` il est unidirectionnel : ``conn1`` ne peut être " +"utilisé que pour recevoir des messages et ``conn2`` que pour en envoyer." + +#: ../Doc/library/multiprocessing.rst:757 +msgid "" +"Returns a process shared queue implemented using a pipe and a few locks/" +"semaphores. When a process first puts an item on the queue a feeder thread " +"is started which transfers objects from a buffer into the pipe." +msgstr "" +"Renvoie une queue partagée entre les processus utilisant un tube et quelques " +"verrous/sémaphores. Quand un processus place initialement un élément sur la " +"queue, un fil d'exécution *feeder* est démarré pour transférer les objets du " +"tampon vers le tube." + +#: ../Doc/library/multiprocessing.rst:761 +msgid "" +"The usual :exc:`queue.Empty` and :exc:`queue.Full` exceptions from the " +"standard library's :mod:`queue` module are raised to signal timeouts." +msgstr "" +"Les exceptions habituelles :exc:`queue.Empty` et :exc:`queue.Full` du " +"module :mod:`queue` de la bibliothèque standard sont levées pour signaler " +"les *timeouts*." + +#: ../Doc/library/multiprocessing.rst:764 +msgid "" +":class:`Queue` implements all the methods of :class:`queue.Queue` except " +"for :meth:`~queue.Queue.task_done` and :meth:`~queue.Queue.join`." +msgstr "" +":class:`Queue` implémente toutes les méthodes de :class:`queue.Queue` à " +"l'exception de :meth:`~queue.Queue.task_done` et :meth:`~queue.Queue.join`." + +#: ../Doc/library/multiprocessing.rst:769 +msgid "" +"Return the approximate size of the queue. Because of multithreading/" +"multiprocessing semantics, this number is not reliable." +msgstr "" +"Renvoie la taille approximative de la queue. Ce nombre n'est pas fiable en " +"raison des problématiques de *multithreading* et *multiprocessing*." + +#: ../Doc/library/multiprocessing.rst:772 +msgid "" +"Note that this may raise :exc:`NotImplementedError` on Unix platforms like " +"Mac OS X where ``sem_getvalue()`` is not implemented." +msgstr "" +"Notez que cela peut lever une :exc:`NotImplementedError` sous les " +"plateformes Unix telles que Mac OS X où ``sem_getvalue()`` n'est pas " +"implémentée." + +#: ../Doc/library/multiprocessing.rst:777 +msgid "" +"Return ``True`` if the queue is empty, ``False`` otherwise. Because of " +"multithreading/multiprocessing semantics, this is not reliable." +msgstr "" +"Renvoie ``True`` si la queue est vide, ``False`` sinon. Cette valeur n'est " +"pas fiable en raison des problématiques de *multithreading* et " +"*multiprocessing*." + +#: ../Doc/library/multiprocessing.rst:782 +msgid "" +"Return ``True`` if the queue is full, ``False`` otherwise. Because of " +"multithreading/multiprocessing semantics, this is not reliable." +msgstr "" +"Renvoie ``True`` si la queue est pleine, ``False`` sinon. Cette valeur n'est " +"pas fiable en raison des problématiques de *multithreading* et " +"*multiprocessing*." + +#: ../Doc/library/multiprocessing.rst:787 +msgid "" +"Put obj into the queue. If the optional argument *block* is ``True`` (the " +"default) and *timeout* is ``None`` (the default), block if necessary until a " +"free slot is available. If *timeout* is a positive number, it blocks at " +"most *timeout* seconds and raises the :exc:`queue.Full` exception if no free " +"slot was available within that time. Otherwise (*block* is ``False``), put " +"an item on the queue if a free slot is immediately available, else raise " +"the :exc:`queue.Full` exception (*timeout* is ignored in that case)." +msgstr "" +"Place *obj* dans la queue. Si l'argument optionnel *block* vaut ``True`` " +"(par défaut) est que *timeout* est ``None`` (par défaut), bloque jusqu'à ce " +"qu'un slot libre soit disponible. Si *timeout* est un nombre positif, la " +"méthode bloquera au maximum *timeout* secondes et lèvera une exception :exc:" +"`queue.Full` si aucun slot libre n'a été trouvé dans le temps imparti. " +"Autrement (*block* vaut ``False``), place un élément dans la queue si un " +"slot libre est immédiatement disponible, ou lève une exception :exc:`queue." +"Full` dans le cas contraire (*timeout* est ignoré dans ce cas)." + +#: ../Doc/library/multiprocessing.rst:798 +msgid "Equivalent to ``put(obj, False)``." +msgstr "Équivalent à ``put(obj, False)``." + +#: ../Doc/library/multiprocessing.rst:802 +msgid "" +"Remove and return an item from the queue. If optional args *block* is " +"``True`` (the default) and *timeout* is ``None`` (the default), block if " +"necessary until an item is available. If *timeout* is a positive number, it " +"blocks at most *timeout* seconds and raises the :exc:`queue.Empty` exception " +"if no item was available within that time. Otherwise (block is ``False``), " +"return an item if one is immediately available, else raise the :exc:`queue." +"Empty` exception (*timeout* is ignored in that case)." +msgstr "" +"Retire et renvoie un élément de la queue. Si l'argument optionnel *block* " +"vaut ``True`` (par défaut) et que *timeout* est ``None`` (par défaut), " +"bloque jusqu'à ce qu'un élément soit disponible. Si *timeout* (le délai " +"maximal autorisé) est un nombre positif, la méthode bloquera au maximum " +"*timeout* secondes et lèvera une exception :exc:`queue.Empty` si aucun " +"élément n'est disponible dans le temps imparti. Autrement (*block* vaut " +"``False``), renvoie un élément s'il est immédiatement disponible, ou lève " +"une exception :exc:`queue.Empty` dans le cas contraire (*timeout* est ignoré " +"dans ce cas)." + +#: ../Doc/library/multiprocessing.rst:812 +msgid "Equivalent to ``get(False)``." +msgstr "Équivalent à ``get(False)``." + +#: ../Doc/library/multiprocessing.rst:814 +msgid "" +":class:`multiprocessing.Queue` has a few additional methods not found in :" +"class:`queue.Queue`. These methods are usually unnecessary for most code:" +msgstr "" +":class:`multiprocessing.Queue` possède quelques méthodes additionnelles non " +"présentes dans :class:`queue.Queue`. Ces méthodes ne sont habituellement pas " +"nécessaires pour la plupart des codes :" + +#: ../Doc/library/multiprocessing.rst:820 +msgid "" +"Indicate that no more data will be put on this queue by the current " +"process. The background thread will quit once it has flushed all buffered " +"data to the pipe. This is called automatically when the queue is garbage " +"collected." +msgstr "" +"Indique que plus aucune donnée ne peut être placée sur la queue par le " +"processus courant. Le fil d'exécution en arrière-plan se terminera quand il " +"aura transféré toutes les données du tampon vers le tube. Elle est appelée " +"automatiquement quand la queue est collectée par le ramasse-miettes." + +#: ../Doc/library/multiprocessing.rst:827 +msgid "" +"Join the background thread. This can only be used after :meth:`close` has " +"been called. It blocks until the background thread exits, ensuring that all " +"data in the buffer has been flushed to the pipe." +msgstr "" +"Attend le fil d'exécution d'arrière-plan. Elle peut seulement être utilisée " +"une fois que :meth:`close` a été appelée. Elle bloque jusqu'à ce que le fil " +"d'arrière-plan se termine, assurant que toutes les données du tampon ont été " +"transmises au tube." + +#: ../Doc/library/multiprocessing.rst:831 +msgid "" +"By default if a process is not the creator of the queue then on exit it will " +"attempt to join the queue's background thread. The process can call :meth:" +"`cancel_join_thread` to make :meth:`join_thread` do nothing." +msgstr "" +"Par défaut si un processus n'est pas le créateur de la queue alors à la " +"fermeture elle essaiera d'attendre le fil d'exécution d'arrière-plan de la " +"queue. Le processus peut appeler :meth:`cancel_join_thread` pour que :meth:" +"`join_thread` ne fasse rien." + +#: ../Doc/library/multiprocessing.rst:837 +msgid "" +"Prevent :meth:`join_thread` from blocking. In particular, this prevents the " +"background thread from being joined automatically when the process exits -- " +"see :meth:`join_thread`." +msgstr "" +"Empêche :meth:`join_thread` de bloquer. En particulier, cela empêche le fil " +"d'arrière-plan d'être attendu automatiquement quand le processus se ferme -- " +"voir :meth:`join_thread`." + +#: ../Doc/library/multiprocessing.rst:841 +msgid "" +"A better name for this method might be ``allow_exit_without_flush()``. It " +"is likely to cause enqueued data to lost, and you almost certainly will not " +"need to use it. It is really only there if you need the current process to " +"exit immediately without waiting to flush enqueued data to the underlying " +"pipe, and you don't care about lost data." +msgstr "" +"Un meilleur nom pour cette méthode pourrait être " +"``allow_exit_without_flush()``. Cela peut provoquer des pertes de données " +"placées dans la queue, et vous ne devriez certainement pas avoir besoin de " +"l'utiliser. Elle n'est là que si vous souhaitez terminer immédiatement le " +"processus sans transférer les données du tampon, et que vous ne vous " +"inquiétez pas de perdre des données." + +#: ../Doc/library/multiprocessing.rst:850 +msgid "" +"This class's functionality requires a functioning shared semaphore " +"implementation on the host operating system. Without one, the functionality " +"in this class will be disabled, and attempts to instantiate a :class:`Queue` " +"will result in an :exc:`ImportError`. See :issue:`3770` for additional " +"information. The same holds true for any of the specialized queue types " +"listed below." +msgstr "" +"Le fonctionnement de cette classe requiert une implémentation de sémaphore " +"partagé sur le système d'exploitation hôte. Sans cela, la fonctionnalité " +"sera désactivée et la tentative d'instancier une :class:`Queue` lèvera une :" +"exc:`ImportError`. Voir :issue:`3770` pour plus d'informations. Cette " +"remarque reste valable pour les autres types de queues spécialisées définies " +"par la suite." + +#: ../Doc/library/multiprocessing.rst:859 +msgid "" +"It is a simplified :class:`Queue` type, very close to a locked :class:`Pipe`." +msgstr "" +"Un type de :class:`Queue` simplifié, très proche d'un :class:`Pipe` avec " +"verrou." + +#: ../Doc/library/multiprocessing.rst:863 +msgid "Return ``True`` if the queue is empty, ``False`` otherwise." +msgstr "Renvoie ``True`` si la queue est vide, ``False`` sinon." + +#: ../Doc/library/multiprocessing.rst:867 +msgid "Remove and return an item from the queue." +msgstr "Supprime et renvoie un élément de la queue." + +#: ../Doc/library/multiprocessing.rst:871 +msgid "Put *item* into the queue." +msgstr "Place *item* dans la queue." + +#: ../Doc/library/multiprocessing.rst:876 +msgid "" +":class:`JoinableQueue`, a :class:`Queue` subclass, is a queue which " +"additionally has :meth:`task_done` and :meth:`join` methods." +msgstr "" +":class:`JoinableQueue`, une sous-classe de :class:`Queue`, est une queue qui " +"ajoute des méthodes :meth:`task_done` et :meth:`join`." + +#: ../Doc/library/multiprocessing.rst:881 +msgid "" +"Indicate that a formerly enqueued task is complete. Used by queue " +"consumers. For each :meth:`~Queue.get` used to fetch a task, a subsequent " +"call to :meth:`task_done` tells the queue that the processing on the task is " +"complete." +msgstr "" +"Indique qu'une tâche précédemment placée dans la queue est complétée. " +"Utilisé par les consommateurs de la queue. Pour chaque :meth:`~Queue.get` " +"utilisé pour récupérer une tâche, un appel ultérieur à :meth:`task_done` " +"indique à la queue que le traitement de la tâche est terminé." + +#: ../Doc/library/multiprocessing.rst:886 +msgid "" +"If a :meth:`~queue.Queue.join` is currently blocking, it will resume when " +"all items have been processed (meaning that a :meth:`task_done` call was " +"received for every item that had been :meth:`~Queue.put` into the queue)." +msgstr "" +"Si un :meth:`~queue.Queue.join` est actuellement bloquant, il se débloquera " +"quand tous les éléments auront été traités (signifiant qu'un appel à :meth:" +"`task_done` a été reçu pour chaque élément ayant été placé via :meth:`~Queue." +"put` dans la queue)." + +#: ../Doc/library/multiprocessing.rst:890 +msgid "" +"Raises a :exc:`ValueError` if called more times than there were items placed " +"in the queue." +msgstr "" +"Lève une exception :exc:`ValueError` si appelée plus de fois qu'il y avait " +"d'éléments dans la file." + +#: ../Doc/library/multiprocessing.rst:896 +msgid "Block until all items in the queue have been gotten and processed." +msgstr "" +"Bloque jusqu'à ce que tous les éléments de la queue aient été récupérés et " +"traités." + +#: ../Doc/library/multiprocessing.rst:898 +msgid "" +"The count of unfinished tasks goes up whenever an item is added to the " +"queue. The count goes down whenever a consumer calls :meth:`task_done` to " +"indicate that the item was retrieved and all work on it is complete. When " +"the count of unfinished tasks drops to zero, :meth:`~queue.Queue.join` " +"unblocks." +msgstr "" +"Le compteur des tâches non accomplies augmente chaque fois qu'un élément est " +"ajouté à la queue. Le compteur redescend chaque fois qu'un consommateur " +"appelle :meth:`task_done` pour indiquer qu'un élément a été récupéré et que " +"tout le travail qui le concerne est complété. Quand le compteur des tâches " +"non accomplies atteint zéro, :meth:`~queue.Queue.join` est débloquée." + +#: ../Doc/library/multiprocessing.rst:906 +msgid "Miscellaneous" +msgstr "Divers" + +#: ../Doc/library/multiprocessing.rst:910 +msgid "Return list of all live children of the current process." +msgstr "Renvoie la liste de tous les enfants vivants du processus courant." + +#: ../Doc/library/multiprocessing.rst:912 +msgid "" +"Calling this has the side effect of \"joining\" any processes which have " +"already finished." +msgstr "" +"Appeler cette méthode provoque l'effet de bord d'attendre tout processus qui " +"n'a pas encore terminé." + +#: ../Doc/library/multiprocessing.rst:917 +msgid "Return the number of CPUs in the system." +msgstr "Renvoie le nombre de CPU sur le système." + +#: ../Doc/library/multiprocessing.rst:919 +msgid "" +"This number is not equivalent to the number of CPUs the current process can " +"use. The number of usable CPUs can be obtained with ``len(os." +"sched_getaffinity(0))``" +msgstr "" +"Ce nombre n'est pas équivalent au nombre de CPUs que le processus courant " +"peut utiliser. Le nombre de CPUs utilisables peut être obtenu avec ``len(os." +"sched_getaffinity(0))``" + +#: ../Doc/library/multiprocessing.rst:923 +msgid "May raise :exc:`NotImplementedError`." +msgstr "Peut lever une :exc:`NotImplementedError`." + +#: ../Doc/library/multiprocessing.rst:926 +msgid ":func:`os.cpu_count`" +msgstr ":func:`os.cpu_count`" + +#: ../Doc/library/multiprocessing.rst:930 +msgid "" +"Return the :class:`Process` object corresponding to the current process." +msgstr "Renvoie l'objet :class:`Process` correspondant au processus courant." + +#: ../Doc/library/multiprocessing.rst:932 +msgid "An analogue of :func:`threading.current_thread`." +msgstr "Un analogue à :func:`threading.current_thread`." + +#: ../Doc/library/multiprocessing.rst:936 +msgid "" +"Add support for when a program which uses :mod:`multiprocessing` has been " +"frozen to produce a Windows executable. (Has been tested with **py2exe**, " +"**PyInstaller** and **cx_Freeze**.)" +msgstr "" +"Ajoute le support des programmes utilisant :mod:`multiprocessing` qui ont " +"été gelés pour produire un exécutable Windows. (Testé avec **py2exe**, " +"**PyInstaller** et **cx_Freeze**.)" + +#: ../Doc/library/multiprocessing.rst:940 +msgid "" +"One needs to call this function straight after the ``if __name__ == " +"'__main__'`` line of the main module. For example::" +msgstr "" +"Cette fonction doit être appelée juste après la ligne ``if __name__ == " +"'__main__'`` du module principal. Par exemple ::" + +#: ../Doc/library/multiprocessing.rst:952 +msgid "" +"If the ``freeze_support()`` line is omitted then trying to run the frozen " +"executable will raise :exc:`RuntimeError`." +msgstr "" +"Si la ligne ``freeze_support()`` est omise, alors tenter de lancer " +"l'exécutable gelé lèvera une :exc:`RuntimeError`." + +#: ../Doc/library/multiprocessing.rst:955 +msgid "" +"Calling ``freeze_support()`` has no effect when invoked on any operating " +"system other than Windows. In addition, if the module is being run normally " +"by the Python interpreter on Windows (the program has not been frozen), then " +"``freeze_support()`` has no effect." +msgstr "" +"Appeler ``freeze_support()`` n'a pas d'effet quand elle est invoquée sur un " +"système d'exploitation autre que Windows. De plus, si le module est lancé " +"normalement par l'interpréteur Python sous Windows (le programme n'a pas été " +"gelé), alors ``freeze_support()`` n'a pas d'effet." + +#: ../Doc/library/multiprocessing.rst:962 +msgid "" +"Returns a list of the supported start methods, the first of which is the " +"default. The possible start methods are ``'fork'``, ``'spawn'`` and " +"``'forkserver'``. On Windows only ``'spawn'`` is available. On Unix " +"``'fork'`` and ``'spawn'`` are always supported, with ``'fork'`` being the " +"default." +msgstr "" +"Renvoie la liste des méthodes de démarrage supportées, la première étant " +"celle par défaut. Les méthodes de démarrage possibles sont ``'fork'``, " +"``'spawn'`` et ``'forkserver'``. Sous Windows seule ``'spawn'`` est " +"disponible. Sous Unix ``'fork'`` et ``'spawn'`` sont disponibles, ``'fork'`` " +"étant celle par défaut." + +#: ../Doc/library/multiprocessing.rst:972 +msgid "" +"Return a context object which has the same attributes as the :mod:" +"`multiprocessing` module." +msgstr "" +"Renvoie un contexte ayant les mêmes attributs que le module :mod:" +"`multiprocessing`." + +#: ../Doc/library/multiprocessing.rst:975 +msgid "" +"If *method* is ``None`` then the default context is returned. Otherwise " +"*method* should be ``'fork'``, ``'spawn'``, ``'forkserver'``. :exc:" +"`ValueError` is raised if the specified start method is not available." +msgstr "" +"Si *method* est ``None`` le contexte par défaut est renvoyé. Sinon *method* " +"doit valoir ``'fork'``, ``'spawn'`` ou ``'forkserver'``. Une :exc:" +"`ValueError` est levée si la méthode de démarrage spécifiée n'est pas " +"disponible." + +#: ../Doc/library/multiprocessing.rst:984 +msgid "Return the name of start method used for starting processes." +msgstr "" +"Renvoie le nom de la méthode de démarrage utilisée pour démarrer le " +"processus." + +#: ../Doc/library/multiprocessing.rst:986 +msgid "" +"If the start method has not been fixed and *allow_none* is false, then the " +"start method is fixed to the default and the name is returned. If the start " +"method has not been fixed and *allow_none* is true then ``None`` is returned." +msgstr "" +"Si le nom de la méthode n'a pas été fixé et que *allow_none* est faux, alors " +"la méthode de démarrage est réglée à celle par défaut et son nom est " +"renvoyé. Si la méthode n'a pas été fixée et que *allow_none* est vrai, " +"``None`` est renvoyé." + +#: ../Doc/library/multiprocessing.rst:991 +msgid "" +"The return value can be ``'fork'``, ``'spawn'``, ``'forkserver'`` or " +"``None``. ``'fork'`` is the default on Unix, while ``'spawn'`` is the " +"default on Windows." +msgstr "" +"La valeur de retour peut être ``'fork'``, ``'spawn'``, ``'forkserver'`` ou " +"``None``. ``'fork'`` est la valeur par défaut sous Unix, ``'spawn'`` est " +"celle sous Windows." + +#: ../Doc/library/multiprocessing.rst:999 +msgid "" +"Sets the path of the Python interpreter to use when starting a child " +"process. (By default :data:`sys.executable` is used). Embedders will " +"probably need to do some thing like ::" +msgstr "" +"Définit le chemin de l'interpréteur Python à utiliser pour démarrer un " +"processus fils. (Par défaut :data:`sys.executable` est utilisé). Les " +"intégrateurs devront probablement faire quelque chose comme ::" + +#: ../Doc/library/multiprocessing.rst:1005 +msgid "before they can create child processes." +msgstr "avant de pouvoir créer des processus fils." + +#: ../Doc/library/multiprocessing.rst:1007 +msgid "Now supported on Unix when the ``'spawn'`` start method is used." +msgstr "" +"Maintenant supporté sous Unix quand la méthode de démarrage ``'spawn'`` est " +"utilisée." + +#: ../Doc/library/multiprocessing.rst:1012 +msgid "" +"Set the method which should be used to start child processes. *method* can " +"be ``'fork'``, ``'spawn'`` or ``'forkserver'``." +msgstr "" +"Règle la méthode qui doit être utilisée pour démarrer un processus fils. " +"*method* peut être ``'fork'``, ``'spawn'`` ou ``'forkserver'``." + +#: ../Doc/library/multiprocessing.rst:1015 +msgid "" +"Note that this should be called at most once, and it should be protected " +"inside the ``if __name__ == '__main__'`` clause of the main module." +msgstr "" +"Notez que cette fonction ne devrait être appelée qu'une fois au plus, et " +"l'appel devrait être protégé à l'intérieur d'une clause ``if __name__ == " +"'__main__'`` dans le module principal." + +#: ../Doc/library/multiprocessing.rst:1023 +msgid "" +":mod:`multiprocessing` contains no analogues of :func:`threading." +"active_count`, :func:`threading.enumerate`, :func:`threading.settrace`, :" +"func:`threading.setprofile`, :class:`threading.Timer`, or :class:`threading." +"local`." +msgstr "" +":mod:`multiprocessing` ne contient pas d'analogues à :func:`threading." +"active_count`, :func:`threading.enumerate`, :func:`threading.settrace`, :" +"func:`threading.setprofile`, :class:`threading.Timer`, ou :class:`threading." +"local`." + +#: ../Doc/library/multiprocessing.rst:1030 +msgid "Connection Objects" +msgstr "Objets de connexions" + +#: ../Doc/library/multiprocessing.rst:1034 +msgid "" +"Connection objects allow the sending and receiving of picklable objects or " +"strings. They can be thought of as message oriented connected sockets." +msgstr "" +"Les objets de connexion autorisent l'envoi et la réception d'objets " +"sérialisables ou de chaînes de caractères. Ils peuvent être vus comme des " +"interfaces de connexion (*sockets*) connectées orientées messages." + +#: ../Doc/library/multiprocessing.rst:1037 +msgid "" +"Connection objects are usually created using :func:`Pipe ` -- see also :ref:`multiprocessing-listeners-clients`." +msgstr "" +"Les objets de connexion sont habituellement créés via :func:`Pipe " +"` -- voir aussi :ref:`multiprocessing-listeners-" +"clients`." + +#: ../Doc/library/multiprocessing.rst:1045 +msgid "" +"Send an object to the other end of the connection which should be read " +"using :meth:`recv`." +msgstr "" +"Envoie un objet sur l'autre bout de la connexion, qui devra être lu avec :" +"meth:`recv`." + +#: ../Doc/library/multiprocessing.rst:1048 +msgid "" +"The object must be picklable. Very large pickles (approximately 32 MiB+, " +"though it depends on the OS) may raise a :exc:`ValueError` exception." +msgstr "" +"L'objet doit être sérialisable. Les *pickles* très larges (approximativement " +"32 Mo+, bien que cela dépende de l'OS) pourront lever une exception :exc:" +"`ValueError`." + +#: ../Doc/library/multiprocessing.rst:1053 +msgid "" +"Return an object sent from the other end of the connection using :meth:" +"`send`. Blocks until there is something to receive. Raises :exc:`EOFError` " +"if there is nothing left to receive and the other end was closed." +msgstr "" +"Renvoie un objet envoyé depuis l'autre bout de la connexion en utilisant :" +"meth:`send`. Bloque jusqu'à ce que quelque chose soit reçu. Lève une :exc:" +"`EOFError` s'il n'y a plus rien à recevoir et que l'autre bout a été fermé." + +#: ../Doc/library/multiprocessing.rst:1060 +msgid "Return the file descriptor or handle used by the connection." +msgstr "" +"Renvoie le descripteur de fichier ou identifiant utilisé par la connexion." + +#: ../Doc/library/multiprocessing.rst:1064 +msgid "Close the connection." +msgstr "Ferme la connexion." + +#: ../Doc/library/multiprocessing.rst:1066 +msgid "This is called automatically when the connection is garbage collected." +msgstr "" +"Elle est appelée automatiquement quand la connexion est collectée par le " +"ramasse-miettes." + +#: ../Doc/library/multiprocessing.rst:1070 +msgid "Return whether there is any data available to be read." +msgstr "" +"Renvoie vrai ou faux selon si des données sont disponibles à la lecture." + +#: ../Doc/library/multiprocessing.rst:1072 +msgid "" +"If *timeout* is not specified then it will return immediately. If *timeout* " +"is a number then this specifies the maximum time in seconds to block. If " +"*timeout* is ``None`` then an infinite timeout is used." +msgstr "" +"Si *timeout* n'est pas spécifié la méthode renverra immédiatement. Si " +"*timeout* est un nombre alors il spécifie le temps maximum de blocage en " +"secondes. Si *timeout* est ``None``, un temps d'attente infini est utilisé." + +#: ../Doc/library/multiprocessing.rst:1076 +msgid "" +"Note that multiple connection objects may be polled at once by using :func:" +"`multiprocessing.connection.wait`." +msgstr "" +"Notez que plusieurs objets de connexions peuvent être attendus en même temps " +"à l'aide de :func:`multiprocessing.connection.wait`." + +#: ../Doc/library/multiprocessing.rst:1081 +msgid "Send byte data from a :term:`bytes-like object` as a complete message." +msgstr "" +"Envoie des données binaires depuis un :term:`bytes-like object` comme un " +"message complet." + +#: ../Doc/library/multiprocessing.rst:1083 +msgid "" +"If *offset* is given then data is read from that position in *buffer*. If " +"*size* is given then that many bytes will be read from buffer. Very large " +"buffers (approximately 32 MiB+, though it depends on the OS) may raise a :" +"exc:`ValueError` exception" +msgstr "" +"Si *offset* est fourni, les données sont lues depuis cette position dans le " +"tampon *buffer*. Si *size* est fourni, il indique le nombre d'octets qui " +"seront lus depuis *buffer*. Les tampons très larges (approximativement 32 MiB" +"+, bien que cela dépende de l'OS) pourront lever une exception :exc:" +"`ValueError`." + +#: ../Doc/library/multiprocessing.rst:1090 +msgid "" +"Return a complete message of byte data sent from the other end of the " +"connection as a string. Blocks until there is something to receive. Raises :" +"exc:`EOFError` if there is nothing left to receive and the other end has " +"closed." +msgstr "" +"Renvoie un message complet de données binaires envoyées depuis l'autre bout " +"de la connexion comme une chaîne de caractères. Bloque jusqu'à ce qu'il y " +"ait quelque chose à recevoir. Lève une :exc:`EOFError` s'il ne reste rien à " +"recevoir et que l'autre côté de la connexion a été fermé." + +#: ../Doc/library/multiprocessing.rst:1095 +msgid "" +"If *maxlength* is specified and the message is longer than *maxlength* then :" +"exc:`OSError` is raised and the connection will no longer be readable." +msgstr "" +"Si *maxlength* est précisé que que le message est plus long que *maxlength* " +"alors une :exc:`OSError` est levée et la connexion n'est plus lisible." + +#: ../Doc/library/multiprocessing.rst:1099 +msgid "" +"This function used to raise :exc:`IOError`, which is now an alias of :exc:" +"`OSError`." +msgstr "" +"Cette fonction levait auparavant une :exc:`IOError`, qui est maintenant un " +"alias pour :exc:`OSError`." + +#: ../Doc/library/multiprocessing.rst:1106 +msgid "" +"Read into *buffer* a complete message of byte data sent from the other end " +"of the connection and return the number of bytes in the message. Blocks " +"until there is something to receive. Raises :exc:`EOFError` if there is " +"nothing left to receive and the other end was closed." +msgstr "" +"Lit et stocke dans *buffer* un message complet de données binaires envoyées " +"depuis l'autre bout de la connexion et renvoie le nombre d'octets du " +"message. Bloque jusqu'à ce qu'il y ait quelque chose à recevoir. Lève une :" +"exc:`EOFError` s'il ne reste rien à recevoir et que l'autre côté de la " +"connexion a été fermé." + +#: ../Doc/library/multiprocessing.rst:1112 +msgid "" +"*buffer* must be a writable :term:`bytes-like object`. If *offset* is given " +"then the message will be written into the buffer from that position. Offset " +"must be a non-negative integer less than the length of *buffer* (in bytes)." +msgstr "" +"*buffer* doit être un :term:`bytes-like object` accessible en écriture. Si " +"*offset* est donné, le message sera écrit dans le tampon à partir de cette " +"position. *offset* doit être un entier positif, inférieur à la taille de " +"*buffer* (en octets)." + +#: ../Doc/library/multiprocessing.rst:1117 +msgid "" +"If the buffer is too short then a :exc:`BufferTooShort` exception is raised " +"and the complete message is available as ``e.args[0]`` where ``e`` is the " +"exception instance." +msgstr "" +"Si le tampon est trop petit une exception :exc:`BufferTooShort` est levée et " +"le message complet est accessible via ``e.args[0]`` où ``e`` est l'instance " +"de l'exception." + +#: ../Doc/library/multiprocessing.rst:1121 +msgid "" +"Connection objects themselves can now be transferred between processes " +"using :meth:`Connection.send` and :meth:`Connection.recv`." +msgstr "" +"Les objets de connexions eux-mêmes peuvent maintenant être transférés entre " +"les processus en utilisant :meth:`Connection.send` et :meth:`Connection." +"recv`." + +#: ../Doc/library/multiprocessing.rst:1125 +msgid "" +"Connection objects now support the context management protocol -- see :ref:" +"`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the " +"connection object, and :meth:`~contextmanager.__exit__` calls :meth:`close`." +msgstr "" +"Les objets de connexions supportent maintenant le protocole des " +"gestionnaires de contexte -- voir :ref:`typecontextmanager`. :meth:" +"`~contextmanager.__enter__` renvoie l'objet de connexion, et :meth:" +"`~contextmanager.__exit__` appelle :meth:`close`." + +#: ../Doc/library/multiprocessing.rst:1130 +msgid "For example:" +msgstr "Par exemple :" + +#: ../Doc/library/multiprocessing.rst:1154 +msgid "" +"The :meth:`Connection.recv` method automatically unpickles the data it " +"receives, which can be a security risk unless you can trust the process " +"which sent the message." +msgstr "" +"La méthode :meth:`Connection.recv` désérialise automatiquement les données " +"qu'elle reçoit, ce qui peut être un risque de sécurité à moins que vous ne " +"fassiez réellement confiance au processus émetteur du message." + +#: ../Doc/library/multiprocessing.rst:1158 +msgid "" +"Therefore, unless the connection object was produced using :func:`Pipe` you " +"should only use the :meth:`~Connection.recv` and :meth:`~Connection.send` " +"methods after performing some sort of authentication. See :ref:" +"`multiprocessing-auth-keys`." +msgstr "" +"Par conséquent, à moins que l'objet de connexion soit instancié par :func:" +"`Pipe`, vous ne devriez uniquement utiliser les méthodes :meth:`~Connection." +"recv` et :meth:`~Connection.send` après avoir effectué une quelconque forme " +"d'authentification. Voir :ref:`multiprocessing-auth-keys`." + +#: ../Doc/library/multiprocessing.rst:1165 +msgid "" +"If a process is killed while it is trying to read or write to a pipe then " +"the data in the pipe is likely to become corrupted, because it may become " +"impossible to be sure where the message boundaries lie." +msgstr "" +"Si un processus est tué pendant qu'il essaye de lire ou écrire sur le tube, " +"alors les données du tube ont des chances d'être corrompues, parce qu'il " +"devient impossible d'être sûr d'où se trouvent les bornes du message." + +#: ../Doc/library/multiprocessing.rst:1171 +msgid "Synchronization primitives" +msgstr "Primitives de synchronisation" + +#: ../Doc/library/multiprocessing.rst:1175 +msgid "" +"Generally synchronization primitives are not as necessary in a multiprocess " +"program as they are in a multithreaded program. See the documentation for :" +"mod:`threading` module." +msgstr "" +"Généralement les primitives de synchronisation ne sont pas nécessaire dans " +"un programme multi-processus comme elles le sont dans un programme multi-" +"fils d'exécution. Voir la documentation du module :mod:`threading`." + +#: ../Doc/library/multiprocessing.rst:1179 +msgid "" +"Note that one can also create synchronization primitives by using a manager " +"object -- see :ref:`multiprocessing-managers`." +msgstr "" +"Notez que vous pouvez aussi créer des primitives de synchronisation en " +"utilisant un objet gestionnaire -- voir :ref:`multiprocessing-managers`." + +#: ../Doc/library/multiprocessing.rst:1184 +msgid "A barrier object: a clone of :class:`threading.Barrier`." +msgstr "Un objet barrière : un clone de :class:`threading.Barrier`." + +#: ../Doc/library/multiprocessing.rst:1190 +msgid "" +"A bounded semaphore object: a close analog of :class:`threading." +"BoundedSemaphore`." +msgstr "" +"Un objet sémaphore lié : un analogue proche de :class:`threading." +"BoundedSemaphore`." + +#: ../Doc/library/multiprocessing.rst:1193 +#: ../Doc/library/multiprocessing.rst:1331 +msgid "" +"A solitary difference from its close analog exists: its ``acquire`` method's " +"first argument is named *block*, as is consistent with :meth:`Lock.acquire`." +msgstr "" +"Une seule différence existe avec son proche analogue : le premier argument " +"de sa méthode ``acquire`` est appelé *block*, pour la cohérence avec :meth:" +"`Lock.acquire`." + +#: ../Doc/library/multiprocessing.rst:1197 +msgid "" +"On Mac OS X, this is indistinguishable from :class:`Semaphore` because " +"``sem_getvalue()`` is not implemented on that platform." +msgstr "" +"Sur Mac OS X, elle n'est pas distinguable de la classe :class:`Semaphore` " +"parce que ``sem_getvalue()`` n'est pas implémentée sur cette plateforme." + +#: ../Doc/library/multiprocessing.rst:1202 +msgid "A condition variable: an alias for :class:`threading.Condition`." +msgstr "" +"Une variable conditionnelle : un alias pour :class:`threading.Condition`." + +#: ../Doc/library/multiprocessing.rst:1204 +msgid "" +"If *lock* is specified then it should be a :class:`Lock` or :class:`RLock` " +"object from :mod:`multiprocessing`." +msgstr "" +"Si *lock* est spécifié il doit être un objet :class:`Lock` ou :class:`RLock` " +"du module :mod:`multiprocessing`." + +#: ../Doc/library/multiprocessing.rst:1207 +#: ../Doc/library/multiprocessing.rst:1741 +msgid "The :meth:`~threading.Condition.wait_for` method was added." +msgstr "La méthode :meth:`~threading.Condition.wait_for` a été ajoutée." + +#: ../Doc/library/multiprocessing.rst:1212 +msgid "A clone of :class:`threading.Event`." +msgstr "Un clone de :class:`threading.Event`." + +#: ../Doc/library/multiprocessing.rst:1217 +msgid "" +"A non-recursive lock object: a close analog of :class:`threading.Lock`. Once " +"a process or thread has acquired a lock, subsequent attempts to acquire it " +"from any process or thread will block until it is released; any process or " +"thread may release it. The concepts and behaviors of :class:`threading." +"Lock` as it applies to threads are replicated here in :class:" +"`multiprocessing.Lock` as it applies to either processes or threads, except " +"as noted." +msgstr "" +"Un verrou non récursif : un analogue proche de :class:`threading.Lock`. Une " +"fois que le processus ou le fil d'exécution a acquis un verrou, les " +"tentatives suivantes d'acquisition depuis n'importe quel processus ou fil " +"d'exécution bloqueront jusqu'à ce qu'il soit libéré ; n'importe quel " +"processus ou fil peut le libérer. Les concepts et comportements de :class:" +"`threading.Lock` qui s'appliquent aux fils d'exécution sont répliqués ici " +"dans :class:`multiprocessing.Lock` et s'appliquent aux processus et aux fils " +"d'exécution, à l'exception de ce qui est indiqué." + +#: ../Doc/library/multiprocessing.rst:1225 +msgid "" +"Note that :class:`Lock` is actually a factory function which returns an " +"instance of ``multiprocessing.synchronize.Lock`` initialized with a default " +"context." +msgstr "" +"Notez que :class:`Lock` est en fait une fonction *factory* qui renvoie une " +"instance de ``multiprocessing.synchronize.Lock`` initialisée avec un " +"contexte par défaut." + +#: ../Doc/library/multiprocessing.rst:1229 +msgid "" +":class:`Lock` supports the :term:`context manager` protocol and thus may be " +"used in :keyword:`with` statements." +msgstr "" +":class:`Lock` supporte le protocole :term:`context manager` et peut ainsi " +"être utilisé avec une instruction :keyword:`with`." + +#: ../Doc/library/multiprocessing.rst:1234 +#: ../Doc/library/multiprocessing.rst:1285 +msgid "Acquire a lock, blocking or non-blocking." +msgstr "Acquiert un verrou, bloquant ou non bloquant." + +#: ../Doc/library/multiprocessing.rst:1236 +msgid "" +"With the *block* argument set to ``True`` (the default), the method call " +"will block until the lock is in an unlocked state, then set it to locked and " +"return ``True``. Note that the name of this first argument differs from " +"that in :meth:`threading.Lock.acquire`." +msgstr "" +"Avec l'argument *block* à ``True`` (par défaut), l'appel de méthode bloquera " +"jusqu'à ce que le verrou soit dans déverrouillé, puis le verrouillera avant " +"de renvoyer ``True``. Notez que le nom de ce premier argument diffère de " +"celui de :meth:`threading.Lock.acquire`." + +#: ../Doc/library/multiprocessing.rst:1241 +msgid "" +"With the *block* argument set to ``False``, the method call does not block. " +"If the lock is currently in a locked state, return ``False``; otherwise set " +"the lock to a locked state and return ``True``." +msgstr "" +"Avec l'argument *block* à ``False``, l'appel de méthode ne bloque pas. Si le " +"verrou est actuellement verrouillé, renvoie ``False`` ; autrement verrouille " +"le verrou et renvoie ``True``." + +#: ../Doc/library/multiprocessing.rst:1245 +msgid "" +"When invoked with a positive, floating-point value for *timeout*, block for " +"at most the number of seconds specified by *timeout* as long as the lock can " +"not be acquired. Invocations with a negative value for *timeout* are " +"equivalent to a *timeout* of zero. Invocations with a *timeout* value of " +"``None`` (the default) set the timeout period to infinite. Note that the " +"treatment of negative or ``None`` values for *timeout* differs from the " +"implemented behavior in :meth:`threading.Lock.acquire`. The *timeout* " +"argument has no practical implications if the *block* argument is set to " +"``False`` and is thus ignored. Returns ``True`` if the lock has been " +"acquired or ``False`` if the timeout period has elapsed." +msgstr "" +"Quand invoqué avec un nombre flottant positif comme *timeout*, bloque au " +"maximum pendant ce nombre spécifié de secondes, tant que le verrou ne peut " +"être acquis. Les invocations avec une valeur de *timeout* négatives sont " +"équivalents à zéro. Les invocations avec un *timeout* à ``None`` (par " +"défaut) correspondent à un délai d'attente infini. Notez que le traitement " +"des valeurs de *timeout* négatives et ``None`` diffère du comportement " +"implémenté dans :meth:`threading.Lock.acquire`. L'argument *timeout* n'a pas " +"d'implication pratique si l'argument *block* est mis ) ``False`` et est " +"alors ignoré. Renvoie ``True`` si le verrou a été acquis et ``False`` si le " +"temps de *timeout* a expiré." + +#: ../Doc/library/multiprocessing.rst:1260 +msgid "" +"Release a lock. This can be called from any process or thread, not only the " +"process or thread which originally acquired the lock." +msgstr "" +"Libère un verrou. Elle peut être appelée depuis n'importe quel processus ou " +"fil d'exécution, pas uniquement le processus ou le fil qui a acquis le " +"verrou à l'origine." + +#: ../Doc/library/multiprocessing.rst:1263 +msgid "" +"Behavior is the same as in :meth:`threading.Lock.release` except that when " +"invoked on an unlocked lock, a :exc:`ValueError` is raised." +msgstr "" +"Le comportement est le même que :meth:`threading.Lock.release` excepté que " +"lorsque la méthode est appelée sur un verrou déverrouillé, une :exc:" +"`ValueError` est levée." + +#: ../Doc/library/multiprocessing.rst:1269 +msgid "" +"A recursive lock object: a close analog of :class:`threading.RLock`. A " +"recursive lock must be released by the process or thread that acquired it. " +"Once a process or thread has acquired a recursive lock, the same process or " +"thread may acquire it again without blocking; that process or thread must " +"release it once for each time it has been acquired." +msgstr "" +"Un objet verrou récursif : un analogue proche de :class:`threading.RLock`. " +"Un verrou récursif doit être libéré par le processus ou le fil d'exécution " +"qui l'a acquis. Quand un processus ou un fil acquiert un verrou récursif, le " +"même processus/fil peut l'acquérir à nouveau sans bloquer ; le processus/fil " +"doit le libérer autant de fois qu'il l'acquiert." + +#: ../Doc/library/multiprocessing.rst:1275 +msgid "" +"Note that :class:`RLock` is actually a factory function which returns an " +"instance of ``multiprocessing.synchronize.RLock`` initialized with a default " +"context." +msgstr "" +"Notez que :class:`RLock` est en fait une fonction *factory* qui renvoie une " +"instance de ``multiprocessing.synchronize.RLock`` initialisée avec un " +"contexte par défaut." + +#: ../Doc/library/multiprocessing.rst:1279 +msgid "" +":class:`RLock` supports the :term:`context manager` protocol and thus may be " +"used in :keyword:`with` statements." +msgstr "" +":class:`RLock` supporte le protocole :term:`context manager` et peut ainsi " +"être utilisée avec une instruction :keyword:`with`." + +#: ../Doc/library/multiprocessing.rst:1287 +msgid "" +"When invoked with the *block* argument set to ``True``, block until the lock " +"is in an unlocked state (not owned by any process or thread) unless the lock " +"is already owned by the current process or thread. The current process or " +"thread then takes ownership of the lock (if it does not already have " +"ownership) and the recursion level inside the lock increments by one, " +"resulting in a return value of ``True``. Note that there are several " +"differences in this first argument's behavior compared to the implementation " +"of :meth:`threading.RLock.acquire`, starting with the name of the argument " +"itself." +msgstr "" +"Quand invoqué avec l'argument *block* à ``True``, bloque jusqu'à ce que le " +"verrou soit déverrouillé (n'appartenant à aucun processus ou fil " +"d'exécution) sauf s'il appartient déjà au processus ou fil d'exécution " +"courant. Le processus ou fil d'exécution courant prend la possession du " +"verrou (s'il ne l'a pas déjà) et incrémente d'un le niveau de récursion du " +"verrou, renvoyant ainsi ``True``. Notez qu'il y a plusieurs différences dans " +"le comportement de ce premier argument comparé à l'implémentation de :meth:" +"`threading.RLock.acquire`, à commencer par le nom de l'argument lui-même." + +#: ../Doc/library/multiprocessing.rst:1297 +msgid "" +"When invoked with the *block* argument set to ``False``, do not block. If " +"the lock has already been acquired (and thus is owned) by another process or " +"thread, the current process or thread does not take ownership and the " +"recursion level within the lock is not changed, resulting in a return value " +"of ``False``. If the lock is in an unlocked state, the current process or " +"thread takes ownership and the recursion level is incremented, resulting in " +"a return value of ``True``." +msgstr "" +"Quand invoqué avec l'argument *block* à ``False``, ne bloque pas. Si le " +"verrou est déjà acquis (et possédé) par un autre processus ou fil " +"d'exécution, le processus/fil courant n'en prend pas la possession et le " +"niveau de récursion n'est pas incrémenté, résultant en une valeur de retour " +"à ``False``. Si le verrou est déverrouillé, le processus/fil courant en " +"prend possession et incrémente son niveau de récursion, renvoyant ``True``." + +#: ../Doc/library/multiprocessing.rst:1305 +msgid "" +"Use and behaviors of the *timeout* argument are the same as in :meth:`Lock." +"acquire`. Note that some of these behaviors of *timeout* differ from the " +"implemented behaviors in :meth:`threading.RLock.acquire`." +msgstr "" +"L'usage et les comportements de l'argument *timeout* sont les mêmes que " +"pour :meth:`Lock.acquire`. Notez que certains de ces comportements diffèrent " +"par rapport à ceux implémentés par :meth:`threading.RLock.acquire`." + +#: ../Doc/library/multiprocessing.rst:1312 +msgid "" +"Release a lock, decrementing the recursion level. If after the decrement " +"the recursion level is zero, reset the lock to unlocked (not owned by any " +"process or thread) and if any other processes or threads are blocked waiting " +"for the lock to become unlocked, allow exactly one of them to proceed. If " +"after the decrement the recursion level is still nonzero, the lock remains " +"locked and owned by the calling process or thread." +msgstr "" +"Libère un verrou, décrémentant son niveau de récursion. Si après la " +"décrémentation le niveau de récursion est zéro, réinitialise le verrou à un " +"état déverrouillé (n'appartenant à aucun processus ou fil d'exécution) et si " +"des processus/fils attendent que le verrou se déverrouillé, autorise un seul " +"d'entre-eux à continuer. Si après cette décrémentation le niveau de " +"récursion est toujours strictement positif, le verrou reste verrouillé et " +"propriété du processus/fil appelant." + +#: ../Doc/library/multiprocessing.rst:1320 +msgid "" +"Only call this method when the calling process or thread owns the lock. An :" +"exc:`AssertionError` is raised if this method is called by a process or " +"thread other than the owner or if the lock is in an unlocked (unowned) " +"state. Note that the type of exception raised in this situation differs " +"from the implemented behavior in :meth:`threading.RLock.release`." +msgstr "" +"N'appelez cette méthode que si le processus ou fil d'exécution appelant est " +"propriétaire du verrou. Une :exc:`AssertionError` est levée si cette méthode " +"est appelée par un processus/fil autre que le propriétaire ou si le verrou " +"n'est pas verrouillé (possédé). Notez que le type d'exception levé dans " +"cette situation diffère du comportement de :meth:`threading.RLock.release`." + +#: ../Doc/library/multiprocessing.rst:1329 +msgid "A semaphore object: a close analog of :class:`threading.Semaphore`." +msgstr "Un objet sémaphore, proche analogue de :class:`threading.Semaphore`." + +#: ../Doc/library/multiprocessing.rst:1336 +msgid "" +"On Mac OS X, ``sem_timedwait`` is unsupported, so calling ``acquire()`` with " +"a timeout will emulate that function's behavior using a sleeping loop." +msgstr "" +"Sous Mac OS X, ``sem_timedwait`` n'est pas supporté, donc appeler " +"``acquire()`` avec un temps d'exécution limité émulera le comportement de " +"cette fonction en utilisant une boucle d'attente." + +#: ../Doc/library/multiprocessing.rst:1341 +msgid "" +"If the SIGINT signal generated by :kbd:`Ctrl-C` arrives while the main " +"thread is blocked by a call to :meth:`BoundedSemaphore.acquire`, :meth:`Lock." +"acquire`, :meth:`RLock.acquire`, :meth:`Semaphore.acquire`, :meth:`Condition." +"acquire` or :meth:`Condition.wait` then the call will be immediately " +"interrupted and :exc:`KeyboardInterrupt` will be raised." +msgstr "" +"Si le signal *SIGINT* généré par un :kbd:`Ctrl-C` survient pendant que le " +"fil d'exécution principal est bloqué par un appel à :meth:`BoundedSemaphore." +"acquire`, :meth:`Lock.acquire`, :meth:`RLock.acquire`, :meth:`Semaphore." +"acquire`, :meth:`Condition.acquire` ou :meth:`Condition.wait`, l'appel sera " +"immédiatement interrompu et une :exc:`KeyboardInterrupt` sera levée." + +#: ../Doc/library/multiprocessing.rst:1347 +msgid "" +"This differs from the behaviour of :mod:`threading` where SIGINT will be " +"ignored while the equivalent blocking calls are in progress." +msgstr "" +"Cela diffère du comportement de :mod:`threading` où le *SIGINT* est ignoré " +"tant que les appels bloquants sont en cours." + +#: ../Doc/library/multiprocessing.rst:1352 +msgid "" +"Some of this package's functionality requires a functioning shared semaphore " +"implementation on the host operating system. Without one, the :mod:" +"`multiprocessing.synchronize` module will be disabled, and attempts to " +"import it will result in an :exc:`ImportError`. See :issue:`3770` for " +"additional information." +msgstr "" +"Certaines des fonctionnalités de ce paquet requièrent une implémentation " +"fonctionnelle de sémaphores partagés sur le système hôte. Sans cela, le " +"module :mod:`multiprocessing.synchronize` sera désactivé, et les tentatives " +"de l'importer lèveront une :exc:`ImportError`. Voir :issue:`3770` pour plus " +"d'informations." + +#: ../Doc/library/multiprocessing.rst:1360 +msgid "Shared :mod:`ctypes` Objects" +msgstr "Objets :mod:`ctypes` partagés" + +#: ../Doc/library/multiprocessing.rst:1362 +msgid "" +"It is possible to create shared objects using shared memory which can be " +"inherited by child processes." +msgstr "" +"Il est possible de créer des objets partagés utilisant une mémoire partagée " +"pouvant être héritée par les processus enfants." + +#: ../Doc/library/multiprocessing.rst:1367 +msgid "" +"Return a :mod:`ctypes` object allocated from shared memory. By default the " +"return value is actually a synchronized wrapper for the object. The object " +"itself can be accessed via the *value* attribute of a :class:`Value`." +msgstr "" +"Renvoie un objet :mod:`ctypes` alloué depuis la mémoire partagée. Par défaut " +"la valeur de retour est en fait un *wrapper* synchronisé autour de l'objet. " +"L'objet en lui-même est accessible par l'attribut *value* de l'une :class:" +"`Value`." + +#: ../Doc/library/multiprocessing.rst:1371 +#: ../Doc/library/multiprocessing.rst:1458 +msgid "" +"*typecode_or_type* determines the type of the returned object: it is either " +"a ctypes type or a one character typecode of the kind used by the :mod:" +"`array` module. *\\*args* is passed on to the constructor for the type." +msgstr "" +"*typecode_or_type* détermine le type de l'objet renvoyé : il s'agit soit " +"d'un type *ctype* soit d'un caractère *typecode* tel qu'utilisé par le " +"module :mod:`array`. *\\*args* est passé au constructeur de ce type." + +#: ../Doc/library/multiprocessing.rst:1375 +msgid "" +"If *lock* is ``True`` (the default) then a new recursive lock object is " +"created to synchronize access to the value. If *lock* is a :class:`Lock` " +"or :class:`RLock` object then that will be used to synchronize access to the " +"value. If *lock* is ``False`` then access to the returned object will not " +"be automatically protected by a lock, so it will not necessarily be " +"\"process-safe\"." +msgstr "" +"Si *lock* vaut ``True`` (par défaut), alors un nouveau verrou récursif est " +"créé pour synchroniser l'accès à la valeur. Si *lock* est un objet :class:" +"`Lock` ou :class:`RLock` alors il sera utilisé pour synchroniser l'accès à " +"la valeur. Si *lock* vaut ``False``, l'accès à l'objet renvoyé ne sera pas " +"automatiquement protégé par un verrou, donc il ne sera pas forcément " +"« *process-safe* »." + +#: ../Doc/library/multiprocessing.rst:1382 +msgid "" +"Operations like ``+=`` which involve a read and write are not atomic. So " +"if, for instance, you want to atomically increment a shared value it is " +"insufficient to just do ::" +msgstr "" +"Les opérations telles que ``+=`` qui impliquent une lecture et une écriture " +"ne sont pas atomique. Ainsi si vous souhaitez par exemple réaliser une " +"incrémentation atomique sur une valeur partagée, vous ne pouvez pas " +"simplement faire ::" + +#: ../Doc/library/multiprocessing.rst:1388 +msgid "" +"Assuming the associated lock is recursive (which it is by default) you can " +"instead do ::" +msgstr "" +"En supposant que le verrou associé est récursif (ce qui est le cas par " +"défaut), vous pouvez à la place faire ::" + +#: ../Doc/library/multiprocessing.rst:1394 +#: ../Doc/library/multiprocessing.rst:1484 +#: ../Doc/library/multiprocessing.rst:1499 +msgid "Note that *lock* is a keyword-only argument." +msgstr "Notez que *lock* est un argument *keyword-only*." + +#: ../Doc/library/multiprocessing.rst:1398 +msgid "" +"Return a ctypes array allocated from shared memory. By default the return " +"value is actually a synchronized wrapper for the array." +msgstr "" +"Renvoie un tableau *ctypes* alloué depuis la mémoire partagée. Par défaut la " +"valeur de retour est en fait un *wrapper* synchronisé autour du tableau." + +#: ../Doc/library/multiprocessing.rst:1401 +msgid "" +"*typecode_or_type* determines the type of the elements of the returned " +"array: it is either a ctypes type or a one character typecode of the kind " +"used by the :mod:`array` module. If *size_or_initializer* is an integer, " +"then it determines the length of the array, and the array will be initially " +"zeroed. Otherwise, *size_or_initializer* is a sequence which is used to " +"initialize the array and whose length determines the length of the array." +msgstr "" +"*typecode_or_type* détermine le type des éléments du tableau renvoyé : il " +"s'agit soit d'un type *ctype* soit d'un caractère *typecode* tel qu'utilisé " +"par le module :mod:`array`. Si *size_or_initialize* est un entier, alors il " +"détermine la taille du tableau, et le tableau sera initialisé avec des " +"zéros. Autrement, *size*or_initializer* est une séquence qui sera utilisée " +"pour initialiser le tableau et dont la taille détermine celle du tableau." + +#: ../Doc/library/multiprocessing.rst:1408 +msgid "" +"If *lock* is ``True`` (the default) then a new lock object is created to " +"synchronize access to the value. If *lock* is a :class:`Lock` or :class:" +"`RLock` object then that will be used to synchronize access to the value. " +"If *lock* is ``False`` then access to the returned object will not be " +"automatically protected by a lock, so it will not necessarily be \"process-" +"safe\"." +msgstr "" +"Si *lock* vaut ``True`` (par défaut), alors un nouveau verrou est créé pour " +"synchroniser l'accès à la valeur. Si *lock* est un objet :class:`Lock` ou :" +"class:`RLock` alors il sera utilisé pour synchroniser l'accès à la valeur. " +"Si *lock* vaut ``False``, l'accès à l'objet renvoyé ne sera pas " +"automatiquement protégé par un verrou, donc il ne sera pas forcément " +"« *process-safe* »." + +#: ../Doc/library/multiprocessing.rst:1415 +msgid "Note that *lock* is a keyword only argument." +msgstr "Notez que *lock* est un argument *keyword-only*." + +#: ../Doc/library/multiprocessing.rst:1417 +msgid "" +"Note that an array of :data:`ctypes.c_char` has *value* and *raw* attributes " +"which allow one to use it to store and retrieve strings." +msgstr "" +"Notez qu'un tableau de :data:`ctypes.c_char` a ses attributs *value* et " +"*raw* qui permettent de l'utiliser pour stocker et récupérer des chaînes de " +"caractères." + +#: ../Doc/library/multiprocessing.rst:1422 +msgid "The :mod:`multiprocessing.sharedctypes` module" +msgstr "Le module :mod:`multiprocessing.sharedctypes`" + +#: ../Doc/library/multiprocessing.rst:1427 +msgid "" +"The :mod:`multiprocessing.sharedctypes` module provides functions for " +"allocating :mod:`ctypes` objects from shared memory which can be inherited " +"by child processes." +msgstr "" +"Le module :mod:`multiprocessing.sharedctypes` fournit des fonctions pour " +"allouer des objets :mod:`ctypes` depuis la mémoire partagée, qui peuvent " +"être hérités par les processus fils." + +#: ../Doc/library/multiprocessing.rst:1433 +msgid "" +"Although it is possible to store a pointer in shared memory remember that " +"this will refer to a location in the address space of a specific process. " +"However, the pointer is quite likely to be invalid in the context of a " +"second process and trying to dereference the pointer from the second process " +"may cause a crash." +msgstr "" +"Bien qu'il soit possible de stocker un pointeur en mémoire partagée, " +"rappelez-vous qu'un pointer référence un emplacement dans l'espace " +"d'adressage d'un processus particulier. Ainsi, ce pointeur a de fortes " +"chances d'être invalide dans le contexte d'un autre processus et " +"déréférencer le pointeur depuis ce second processus peut causer un plantage." + +#: ../Doc/library/multiprocessing.rst:1441 +msgid "Return a ctypes array allocated from shared memory." +msgstr "Renvoie un tableau *ctypes* alloué depuis la mémoire partagée." + +#: ../Doc/library/multiprocessing.rst:1443 +msgid "" +"*typecode_or_type* determines the type of the elements of the returned " +"array: it is either a ctypes type or a one character typecode of the kind " +"used by the :mod:`array` module. If *size_or_initializer* is an integer " +"then it determines the length of the array, and the array will be initially " +"zeroed. Otherwise *size_or_initializer* is a sequence which is used to " +"initialize the array and whose length determines the length of the array." +msgstr "" +"*typecode_or_type* détermine le type des éléments du tableau renvoyé : il " +"s'agit soit d'un type *ctype* soit d'un caractère codant le type des " +"éléments du tableau (*typecode*) tel qu'utilisé par le module :mod:`array`. " +"Si *size_or_initialize* est un entier, alors il détermine la taille du " +"tableau, et le tableau sera initialisé avec des zéros. Autrement, " +"*size_or_initializer* est une séquence qui sera utilisée pour initialiser le " +"tableau et dont la taille détermine celle du tableau." + +#: ../Doc/library/multiprocessing.rst:1450 +msgid "" +"Note that setting and getting an element is potentially non-atomic -- use :" +"func:`Array` instead to make sure that access is automatically synchronized " +"using a lock." +msgstr "" +"Notez que définir ou récupérer un élément est potentiellement non atomique " +"-- utilisez plutôt :func:`Array` pour vous assurer de synchroniser " +"automatiquement avec un verrou." + +#: ../Doc/library/multiprocessing.rst:1456 +msgid "Return a ctypes object allocated from shared memory." +msgstr "Renvoie un objet *ctypes* alloué depuis la mémoire partagée." + +#: ../Doc/library/multiprocessing.rst:1462 +msgid "" +"Note that setting and getting the value is potentially non-atomic -- use :" +"func:`Value` instead to make sure that access is automatically synchronized " +"using a lock." +msgstr "" +"Notez que définir ou récupérer un élément est potentiellement non atomique " +"-- utilisez plutôt :func:`Value` pour vous assurer de synchroniser " +"automatiquement avec un verrou." + +#: ../Doc/library/multiprocessing.rst:1466 +msgid "" +"Note that an array of :data:`ctypes.c_char` has ``value`` and ``raw`` " +"attributes which allow one to use it to store and retrieve strings -- see " +"documentation for :mod:`ctypes`." +msgstr "" +"Notez qu'un tableau de :data:`ctypes.c_char` a ses attributs *value* et " +"*raw* qui permettent de l'utiliser pour stocker et récupérer des chaînes de " +"caractères -- voir la documentation de :mod:`ctypes`." + +#: ../Doc/library/multiprocessing.rst:1472 +msgid "" +"The same as :func:`RawArray` except that depending on the value of *lock* a " +"process-safe synchronization wrapper may be returned instead of a raw ctypes " +"array." +msgstr "" +"Identique à :func:`RawArray` à l'exception que suivant la valeur de *lock* " +"un *wrapper* de synchronisation *process-safe* pourra être renvoyé à la " +"place d'un tableau *ctypes* brut." + +#: ../Doc/library/multiprocessing.rst:1476 +#: ../Doc/library/multiprocessing.rst:1492 +msgid "" +"If *lock* is ``True`` (the default) then a new lock object is created to " +"synchronize access to the value. If *lock* is a :class:`~multiprocessing." +"Lock` or :class:`~multiprocessing.RLock` object then that will be used to " +"synchronize access to the value. If *lock* is ``False`` then access to the " +"returned object will not be automatically protected by a lock, so it will " +"not necessarily be \"process-safe\"." +msgstr "" +"Si *lock* vaut ``True`` (par défaut), alors un nouveau verrou est créé pour " +"synchroniser l'accès à la valeur. Si *lock* est un objet :class:" +"`~multiprocessing.Lock` ou :class:`~multiprocessing.RLock` alors il sera " +"utilisé pour synchroniser l'accès à la valeur. Si *lock* vaut ``False``, " +"l'accès à l'objet renvoyé ne sera pas automatiquement protégé par un verrou, " +"donc il ne sera pas forcément « *process-safe* »." + +#: ../Doc/library/multiprocessing.rst:1488 +msgid "" +"The same as :func:`RawValue` except that depending on the value of *lock* a " +"process-safe synchronization wrapper may be returned instead of a raw ctypes " +"object." +msgstr "" +"Identique à :func:`RawValue` à l'exception que suivant la valeur de *lock* " +"un *wrapper* de synchronisation *process-safe* pourra être renvoyé à la " +"place d'un objet *ctypes* brut." + +#: ../Doc/library/multiprocessing.rst:1503 +msgid "" +"Return a ctypes object allocated from shared memory which is a copy of the " +"ctypes object *obj*." +msgstr "" +"Renvoie un objet *ctypes* alloué depuis la mémoire partagée, qui est une " +"copie de l'objet *ctypes* *obj*." + +#: ../Doc/library/multiprocessing.rst:1508 +msgid "" +"Return a process-safe wrapper object for a ctypes object which uses *lock* " +"to synchronize access. If *lock* is ``None`` (the default) then a :class:" +"`multiprocessing.RLock` object is created automatically." +msgstr "" +"Renvoie un *wrapper* *process-safe* autour de l'objet *ctypes* qui utilise " +"*lock* pour synchroniser l'accès. Si *lock* est ``None`` (par défaut), un " +"objet :class:`multiprocessing.RLock` est créé automatiquement." + +#: ../Doc/library/multiprocessing.rst:1512 +msgid "" +"A synchronized wrapper will have two methods in addition to those of the " +"object it wraps: :meth:`get_obj` returns the wrapped object and :meth:" +"`get_lock` returns the lock object used for synchronization." +msgstr "" +"Un *wrapper* synchronisé aura deux méthodes en plus de celles de l'objet " +"qu'il enveloppe : :meth:`get_obj` renvoie l'objet *wrappé* et :meth:" +"`get_lock` renvoie le verrou utilisé pour la synchronisation." + +#: ../Doc/library/multiprocessing.rst:1516 +msgid "" +"Note that accessing the ctypes object through the wrapper can be a lot " +"slower than accessing the raw ctypes object." +msgstr "" +"Notez qu'accéder à l'objet *ctypes* à travers le *wrapper* peut s'avérer " +"beaucoup plus lent qu'accéder directement à l'objet *ctypes* brut." + +#: ../Doc/library/multiprocessing.rst:1519 +msgid "Synchronized objects support the :term:`context manager` protocol." +msgstr "" +"Les objets synchronisés supportent le protocole :term:`context manager`." + +#: ../Doc/library/multiprocessing.rst:1523 +msgid "" +"The table below compares the syntax for creating shared ctypes objects from " +"shared memory with the normal ctypes syntax. (In the table ``MyStruct`` is " +"some subclass of :class:`ctypes.Structure`.)" +msgstr "" +"Le tableau ci-dessous compare la syntaxe de création des objets *ctypes* " +"partagés depuis une mémoire partagée avec la syntaxe normale *ctypes*. (Dans " +"le tableau, ``MyStruct`` est une sous-classe quelconque de :class:`ctypes." +"Structure`.)" + +#: ../Doc/library/multiprocessing.rst:1528 +msgid "ctypes" +msgstr "ctypes" + +#: ../Doc/library/multiprocessing.rst:1528 +msgid "sharedctypes using type" +msgstr "*sharedctypes* utilisant un type" + +#: ../Doc/library/multiprocessing.rst:1528 +msgid "sharedctypes using typecode" +msgstr "*sharedctypes* utilisant un *typecode*" + +#: ../Doc/library/multiprocessing.rst:1530 +msgid "c_double(2.4)" +msgstr "c_double(2.4)" + +#: ../Doc/library/multiprocessing.rst:1530 +msgid "RawValue(c_double, 2.4)" +msgstr "RawValue(c_double, 2.4)" + +#: ../Doc/library/multiprocessing.rst:1530 +msgid "RawValue('d', 2.4)" +msgstr "RawValue('d', 2.4)" + +#: ../Doc/library/multiprocessing.rst:1531 +msgid "MyStruct(4, 6)" +msgstr "MyStruct(4, 6)" + +#: ../Doc/library/multiprocessing.rst:1531 +msgid "RawValue(MyStruct, 4, 6)" +msgstr "RawValue(MyStruct, 4, 6)" + +#: ../Doc/library/multiprocessing.rst:1532 +msgid "(c_short * 7)()" +msgstr "(c_short * 7)()" + +#: ../Doc/library/multiprocessing.rst:1532 +msgid "RawArray(c_short, 7)" +msgstr "RawArray(c_short, 7)" + +#: ../Doc/library/multiprocessing.rst:1532 +msgid "RawArray('h', 7)" +msgstr "RawArray('h', 7)" + +#: ../Doc/library/multiprocessing.rst:1533 +msgid "(c_int * 3)(9, 2, 8)" +msgstr "(c_int * 3)(9, 2, 8)" + +#: ../Doc/library/multiprocessing.rst:1533 +msgid "RawArray(c_int, (9, 2, 8))" +msgstr "RawArray(c_int, (9, 2, 8))" + +#: ../Doc/library/multiprocessing.rst:1533 +msgid "RawArray('i', (9, 2, 8))" +msgstr "RawArray('i', (9, 2, 8))" + +#: ../Doc/library/multiprocessing.rst:1537 +msgid "" +"Below is an example where a number of ctypes objects are modified by a child " +"process::" +msgstr "" +"Ci-dessous un exemple où des objets *ctypes* sont modifiés par un processus " +"fils ::" + +#: ../Doc/library/multiprocessing.rst:1575 +msgid "The results printed are ::" +msgstr "Les résultats affichés sont ::" + +#: ../Doc/library/multiprocessing.rst:1588 +msgid "Managers" +msgstr "Gestionnaires" + +#: ../Doc/library/multiprocessing.rst:1590 +msgid "" +"Managers provide a way to create data which can be shared between different " +"processes, including sharing over a network between processes running on " +"different machines. A manager object controls a server process which manages " +"*shared objects*. Other processes can access the shared objects by using " +"proxies." +msgstr "" +"Les gestionnaires fournissent un moyen de créer des données qui peuvent être " +"partagées entre les différents processus, incluant le partage à travers le " +"réseau entre des processus tournant sur des machines différentes. Un objet " +"gestionnaire contrôle un processus serveur qui gère les *shared objects*. " +"Les autres processus peuvent accéder aux objets partagés à l'aide de " +"mandataires." + +#: ../Doc/library/multiprocessing.rst:1598 +msgid "" +"Returns a started :class:`~multiprocessing.managers.SyncManager` object " +"which can be used for sharing objects between processes. The returned " +"manager object corresponds to a spawned child process and has methods which " +"will create shared objects and return corresponding proxies." +msgstr "" +"Renvoie un objet :class:`~multiprocessing.managers.SyncManager` démarré qui " +"peut être utilisé pour partager des objets entre les processus. L'objet " +"gestionnaire renvoyé correspond à un processus enfant instancié et possède " +"des méthodes pour créer des objets partagés et renvoyer les mandataires " +"correspondants." + +#: ../Doc/library/multiprocessing.rst:1606 +msgid "" +"Manager processes will be shutdown as soon as they are garbage collected or " +"their parent process exits. The manager classes are defined in the :mod:" +"`multiprocessing.managers` module:" +msgstr "" +"Les processus gestionnaires seront arrêtés dès qu'ils seront collectés par " +"le ramasse-miettes ou que leur processus parent se terminera. Les classes " +"gestionnaires sont définies dans le module :mod:`multiprocessing.managers` :" + +#: ../Doc/library/multiprocessing.rst:1612 +msgid "Create a BaseManager object." +msgstr "Crée un objet *BaseManager*." + +#: ../Doc/library/multiprocessing.rst:1614 +msgid "" +"Once created one should call :meth:`start` or ``get_server()." +"serve_forever()`` to ensure that the manager object refers to a started " +"manager process." +msgstr "" +"Une fois créé il faut appeler :meth:`start` ou ``get_server()." +"serve_forever()`` pour assurer que l'objet gestionnaire référence un " +"processus gestionnaire démarré." + +#: ../Doc/library/multiprocessing.rst:1617 +msgid "" +"*address* is the address on which the manager process listens for new " +"connections. If *address* is ``None`` then an arbitrary one is chosen." +msgstr "" +"*address* est l'adresse sur laquelle le processus gestionnaire écoute pour " +"de nouvelles connexions. Si *address* est ``None``, une adresse arbitraire " +"est choisie." + +#: ../Doc/library/multiprocessing.rst:1620 +msgid "" +"*authkey* is the authentication key which will be used to check the validity " +"of incoming connections to the server process. If *authkey* is ``None`` " +"then ``current_process().authkey`` is used. Otherwise *authkey* is used and " +"it must be a byte string." +msgstr "" +"*authkey* est la clé d'authentification qui sera utilisée pour vérifier la " +"validité des connexions entrantes sur le processus serveur. Si *authkey* est " +"``None`` alors ``current_process().authkey`` est utilisée. Autrement " +"*authkey* est utilisée et doit être une chaîne d'octets." + +#: ../Doc/library/multiprocessing.rst:1627 +msgid "" +"Start a subprocess to start the manager. If *initializer* is not ``None`` " +"then the subprocess will call ``initializer(*initargs)`` when it starts." +msgstr "" +"Démarre un sous-processus pour démarrer le gestionnaire. Si *initializer* " +"n'est pas ``None`` alors le sous-processus appellera " +"``initializer(*initargs)`` quand il démarrera." + +#: ../Doc/library/multiprocessing.rst:1632 +msgid "" +"Returns a :class:`Server` object which represents the actual server under " +"the control of the Manager. The :class:`Server` object supports the :meth:" +"`serve_forever` method::" +msgstr "" +"Renvoie un objet :class:`Server` qui représente le serveur sous le contrôle " +"du gestionnaire. L'objet :class:`Server` supporte la méthode :meth:" +"`serve_forever` ::" + +#: ../Doc/library/multiprocessing.rst:1641 +msgid ":class:`Server` additionally has an :attr:`address` attribute." +msgstr ":class:`Server` possède en plus un attribut :attr:`address`." + +#: ../Doc/library/multiprocessing.rst:1645 +msgid "Connect a local manager object to a remote manager process::" +msgstr "" +"Connecte un objet gestionnaire local au processus gestionnaire distant ::" + +#: ../Doc/library/multiprocessing.rst:1653 +msgid "" +"Stop the process used by the manager. This is only available if :meth:" +"`start` has been used to start the server process." +msgstr "" +"Stoppe le processus utilisé par le gestionnaire. Cela est disponible " +"uniquement si :meth:`start` a été utilisée pour démarrer le processus " +"serveur." + +#: ../Doc/library/multiprocessing.rst:1656 +msgid "This can be called multiple times." +msgstr "Cette méthode peut être appelée plusieurs fois." + +#: ../Doc/library/multiprocessing.rst:1660 +msgid "" +"A classmethod which can be used for registering a type or callable with the " +"manager class." +msgstr "" +"Une méthode de classe qui peut être utilisée pour enregistrer un type ou un " +"appelable avec la classe gestionnaire." + +#: ../Doc/library/multiprocessing.rst:1663 +msgid "" +"*typeid* is a \"type identifier\" which is used to identify a particular " +"type of shared object. This must be a string." +msgstr "" +"*typeif* est un « *type identifier* » qui est utilisé pour identifier un " +"type particulier d'objet partagé. Cela doit être une chaîne de caractères." + +#: ../Doc/library/multiprocessing.rst:1666 +msgid "" +"*callable* is a callable used for creating objects for this type " +"identifier. If a manager instance will be connected to the server using " +"the :meth:`connect` method, or if the *create_method* argument is ``False`` " +"then this can be left as ``None``." +msgstr "" +"*callable* est un objet appelable utilisé pour créer les objets avec cet " +"identifiant de type. Si une instance de gestionnaire prévoit de se connecter " +"au serveur en utilisant sa méthode :meth:`connect` ou si l'argument " +"*create_method* vaut ``False`` alors cet argument peut être laissé à " +"``None``." + +#: ../Doc/library/multiprocessing.rst:1672 +msgid "" +"*proxytype* is a subclass of :class:`BaseProxy` which is used to create " +"proxies for shared objects with this *typeid*. If ``None`` then a proxy " +"class is created automatically." +msgstr "" +"*proxytype* est une sous-classe de :class:`BaseProxy` utilisée pour créer " +"des mandataires autour des objets partagés avec ce *typeid*. S'il est " +"``None``, une classe mandataire sera créée automatiquement." + +#: ../Doc/library/multiprocessing.rst:1676 +msgid "" +"*exposed* is used to specify a sequence of method names which proxies for " +"this typeid should be allowed to access using :meth:`BaseProxy." +"_callmethod`. (If *exposed* is ``None`` then :attr:`proxytype._exposed_` is " +"used instead if it exists.) In the case where no exposed list is specified, " +"all \"public methods\" of the shared object will be accessible. (Here a " +"\"public method\" means any attribute which has a :meth:`~object.__call__` " +"method and whose name does not begin with ``'_'``.)" +msgstr "" +"*exposed* est utilisé pour préciser une séquence de noms de méthodes dont " +"les mandataires pour ce *typeid* doivent être autorisés à accéder via :meth:" +"`BaseProxy._callmethod`. (Si *exposed* est ``None`` alors :attr:`proxytype." +"_exposed_` est utilisé à la place s'il existe.) Dans le cas où aucune liste " +"*exposed* n'est précisée, toutes les « méthodes publiques » de l'objet " +"partagé seront accessibles. (Ici une « méthode publique » signifie n'importe " +"quel attribut qui possède une méthode :meth:`~object.__call__` et dont le " +"nom ne commence pas par un ``'_'``.)" + +#: ../Doc/library/multiprocessing.rst:1685 +msgid "" +"*method_to_typeid* is a mapping used to specify the return type of those " +"exposed methods which should return a proxy. It maps method names to typeid " +"strings. (If *method_to_typeid* is ``None`` then :attr:`proxytype." +"_method_to_typeid_` is used instead if it exists.) If a method's name is " +"not a key of this mapping or if the mapping is ``None`` then the object " +"returned by the method will be copied by value." +msgstr "" +"*method_to_typeid* est un tableau associatif utilisé pour préciser le type " +"de retour de ces méthodes exposées qui doivent renvoyer un mandataire. Il " +"associé un nom de méthode à une chaîne de caractères *typeid*. (Si " +"*method_to_typeid* est ``None``, :attr:`proxytype._method_to_typeid_` est " +"utilisé à la place s'il existe). Si le nom d'une méthode n'est pas une clé " +"de ce tableau associatif ou si la valeur associée est ``None``, l'objet " +"renvoyé par la méthode sera une copie de la valeur." + +#: ../Doc/library/multiprocessing.rst:1692 +msgid "" +"*create_method* determines whether a method should be created with name " +"*typeid* which can be used to tell the server process to create a new shared " +"object and return a proxy for it. By default it is ``True``." +msgstr "" +"*create_method* détermine si une méthode devrait être créée avec le nom " +"*typeid*, qui peut être utilisée pour indiquer au processus serveur de créer " +"un nouvel objet partagé et d'en renvoyer un mandataire. a valeur par défaut " +"est ``True``." + +#: ../Doc/library/multiprocessing.rst:1696 +msgid ":class:`BaseManager` instances also have one read-only property:" +msgstr "" +"Les instances de :class:`BaseManager` ont aussi une propriété en lecture " +"seule :" + +#: ../Doc/library/multiprocessing.rst:1700 +msgid "The address used by the manager." +msgstr "L'adresse utilisée par le gestionnaire." + +#: ../Doc/library/multiprocessing.rst:1702 +msgid "" +"Manager objects support the context management protocol -- see :ref:" +"`typecontextmanager`. :meth:`~contextmanager.__enter__` starts the server " +"process (if it has not already started) and then returns the manager " +"object. :meth:`~contextmanager.__exit__` calls :meth:`shutdown`." +msgstr "" +"Les objets gestionnaires supportent le protocole des gestionnaires de " +"contexte -- voir :ref:`typecontextmanager`. :meth:`~contextmanager." +"__enter__` démarre le processus serveur (s'il n'a pas déjà été démarré) et " +"renvoie l'objet gestionnaire. :meth:`~contextmanager.__exit__` appelle :meth:" +"`shutdown`." + +#: ../Doc/library/multiprocessing.rst:1708 +msgid "" +"In previous versions :meth:`~contextmanager.__enter__` did not start the " +"manager's server process if it was not already started." +msgstr "" +"Dans les versions précédentes :meth:`~contextmanager.__enter__` ne démarrait " +"pas le processus serveur du gestionnaire s'il n'était pas déjà démarré." + +#: ../Doc/library/multiprocessing.rst:1713 +msgid "" +"A subclass of :class:`BaseManager` which can be used for the synchronization " +"of processes. Objects of this type are returned by :func:`multiprocessing." +"Manager`." +msgstr "" +"Une sous-classe de :class:`BaseManager` qui peut être utilisée pour la " +"synchronisation entre processus. Des objets de ce type sont renvoyés par :" +"func:`multiprocessing.Manager`." + +#: ../Doc/library/multiprocessing.rst:1717 +msgid "" +"Its methods create and return :ref:`multiprocessing-proxy_objects` for a " +"number of commonly used data types to be synchronized across processes. This " +"notably includes shared lists and dictionaries." +msgstr "" +"Ces méthodes créent et renvoient des :ref:`multiprocessing-proxy_objects` " +"pour un certain nombre de types de données communément utilisés pour être " +"synchronisés entre les processus. Elles incluent notamment des listes et " +"dictionnaires partagés." + +#: ../Doc/library/multiprocessing.rst:1723 +msgid "" +"Create a shared :class:`threading.Barrier` object and return a proxy for it." +msgstr "" +"Crée un objet :class:`threading.Barrier` partagé et renvoie un mandataire " +"pour cet objet." + +#: ../Doc/library/multiprocessing.rst:1730 +msgid "" +"Create a shared :class:`threading.BoundedSemaphore` object and return a " +"proxy for it." +msgstr "" +"Crée un objet :class:`threading.BoundedSemaphore` partagé et renvoie un " +"mandataire pour cet objet." + +#: ../Doc/library/multiprocessing.rst:1735 +msgid "" +"Create a shared :class:`threading.Condition` object and return a proxy for " +"it." +msgstr "" +"Crée un objet :class:`threading.Condition` partagé et renvoie un mandataire " +"pour cet objet." + +#: ../Doc/library/multiprocessing.rst:1738 +msgid "" +"If *lock* is supplied then it should be a proxy for a :class:`threading." +"Lock` or :class:`threading.RLock` object." +msgstr "" +"Si *lock* est fourni alors il doit être un mandataire pour un objet :class:" +"`threading.Lock` ou :class:`threading.RLock`." + +#: ../Doc/library/multiprocessing.rst:1746 +msgid "" +"Create a shared :class:`threading.Event` object and return a proxy for it." +msgstr "" +"Crée un objet :class:`threading.Event` partagé et renvoie un mandataire pour " +"cet objet." + +#: ../Doc/library/multiprocessing.rst:1750 +msgid "" +"Create a shared :class:`threading.Lock` object and return a proxy for it." +msgstr "" +"Crée un objet :class:`threading.Lock` partagé et renvoie un mandataire pour " +"cet objet." + +#: ../Doc/library/multiprocessing.rst:1754 +msgid "Create a shared :class:`Namespace` object and return a proxy for it." +msgstr "" +"Crée un objet :class:`Namespace` partagé et renvoie un mandataire pour cet " +"objet." + +#: ../Doc/library/multiprocessing.rst:1758 +msgid "Create a shared :class:`queue.Queue` object and return a proxy for it." +msgstr "" +"Crée un objet :class:`queue.Queue` partagé et renvoie un mandataire pour cet " +"objet." + +#: ../Doc/library/multiprocessing.rst:1762 +msgid "" +"Create a shared :class:`threading.RLock` object and return a proxy for it." +msgstr "" +"Crée un objet :class:`threading.RLock` partagé et renvoie un mandataire pour " +"cet objet." + +#: ../Doc/library/multiprocessing.rst:1766 +msgid "" +"Create a shared :class:`threading.Semaphore` object and return a proxy for " +"it." +msgstr "" +"Crée un objet :class:`threading.Semaphore` partagé et renvoie un mandataire " +"pour cet objet." + +#: ../Doc/library/multiprocessing.rst:1771 +msgid "Create an array and return a proxy for it." +msgstr "Crée un tableau et renvoie un mandataire pour cet objet." + +#: ../Doc/library/multiprocessing.rst:1775 +msgid "" +"Create an object with a writable ``value`` attribute and return a proxy for " +"it." +msgstr "" +"Crée un objet avec un attribut ``value`` accessible en écriture et renvoie " +"un mandataire pour cet objet." + +#: ../Doc/library/multiprocessing.rst:1782 +msgid "Create a shared :class:`dict` object and return a proxy for it." +msgstr "" +"Crée un objet :class:`dict` partagé et renvoie un mandataire pour cet objet." + +#: ../Doc/library/multiprocessing.rst:1787 +msgid "Create a shared :class:`list` object and return a proxy for it." +msgstr "" +"Crée un objet :class:`list` partagé et renvoie un mandataire pour cet objet." + +#: ../Doc/library/multiprocessing.rst:1789 +msgid "" +"Shared objects are capable of being nested. For example, a shared container " +"object such as a shared list can contain other shared objects which will all " +"be managed and synchronized by the :class:`SyncManager`." +msgstr "" +"Les objets partagés peuvent être imbriqués. Par exemple, un conteneur " +"partagé tel qu'une liste partagée peu contenir d'autres objets partagés qui " +"seront aussi gérés et synchronisés par le :class:`SyncManager`." + +#: ../Doc/library/multiprocessing.rst:1796 +msgid "A type that can register with :class:`SyncManager`." +msgstr "Un type qui peut être enregistré avec :class:`SyncManager`." + +#: ../Doc/library/multiprocessing.rst:1798 +msgid "" +"A namespace object has no public methods, but does have writable attributes. " +"Its representation shows the values of its attributes." +msgstr "" +"Un espace de nommage n'a pas de méthodes publiques, mais possède des " +"attributs accessibles en écriture. Sa représentation montre les valeurs de " +"ses attributs." + +#: ../Doc/library/multiprocessing.rst:1801 +msgid "" +"However, when using a proxy for a namespace object, an attribute beginning " +"with ``'_'`` will be an attribute of the proxy and not an attribute of the " +"referent:" +msgstr "" +"Cependant, en utilisant un mandataire pour un espace de nommage, un attribut " +"débutant par ``'_'`` est un attribut du mandataire et non de l'objet cible :" + +#: ../Doc/library/multiprocessing.rst:1817 +msgid "Customized managers" +msgstr "Gestionnaires personnalisés" + +#: ../Doc/library/multiprocessing.rst:1819 +msgid "" +"To create one's own manager, one creates a subclass of :class:`BaseManager` " +"and uses the :meth:`~BaseManager.register` classmethod to register new types " +"or callables with the manager class. For example::" +msgstr "" +"Pour créer son propre gestionnaire, il faut créer une sous-classe de :class:" +"`BaseManager` et utiliser la méthode de classe :meth:`~BaseManager.register` " +"pour enregistrer de nouveaux types ou *callables* au gestionnaire. Par " +"exemple ::" + +#: ../Doc/library/multiprocessing.rst:1844 +msgid "Using a remote manager" +msgstr "Utiliser un gestionnaire distant" + +#: ../Doc/library/multiprocessing.rst:1846 +msgid "" +"It is possible to run a manager server on one machine and have clients use " +"it from other machines (assuming that the firewalls involved allow it)." +msgstr "" +"Il est possible de lancer un serveur gestionnaire sur une machine et d'avoir " +"des clients l'utilisant sur d'autres machines (en supposant que les pare-" +"feus impliqués l'autorisent)." + +#: ../Doc/library/multiprocessing.rst:1849 +msgid "" +"Running the following commands creates a server for a single shared queue " +"which remote clients can access::" +msgstr "" +"Exécuter les commandes suivantes crée un serveur pour une simple queue " +"partagée à laquelle des clients distants peuvent accéder ::" + +#: ../Doc/library/multiprocessing.rst:1861 +msgid "One client can access the server as follows::" +msgstr "Un client peut accéder au serveur comme suit ::" + +#: ../Doc/library/multiprocessing.rst:1871 +msgid "Another client can also use it::" +msgstr "Un autre client peut aussi l'utiliser ::" + +#: ../Doc/library/multiprocessing.rst:1882 +msgid "" +"Local processes can also access that queue, using the code from above on the " +"client to access it remotely::" +msgstr "" +"Les processus locaux peuvent aussi accéder à cette queue, utilisant le code " +"précédent sur le client pour y accéder à distance ::" + +#: ../Doc/library/multiprocessing.rst:1907 +msgid "Proxy Objects" +msgstr "Objets mandataires" + +#: ../Doc/library/multiprocessing.rst:1909 +msgid "" +"A proxy is an object which *refers* to a shared object which lives " +"(presumably) in a different process. The shared object is said to be the " +"*referent* of the proxy. Multiple proxy objects may have the same referent." +msgstr "" +"Un mandataire est un objet qui *référence* un objet partagé appartenant " +"(supposément) à un processus différent. L'objet partagé est appelé le " +"*référent* du mandataire. Plusieurs mandataires peuvent avoir un même " +"référent." + +#: ../Doc/library/multiprocessing.rst:1913 +msgid "" +"A proxy object has methods which invoke corresponding methods of its " +"referent (although not every method of the referent will necessarily be " +"available through the proxy). In this way, a proxy can be used just like " +"its referent can:" +msgstr "" +"Un mandataire possède des méthodes qui appellent les méthodes " +"correspondantes du référent (bien que toutes les méthodes du référent ne " +"soient pas nécessairement accessibles à travers le mandataire). De cette " +"manière, un mandataire peut être utilisé comme le serait sont référent :" + +#: ../Doc/library/multiprocessing.rst:1931 +msgid "" +"Notice that applying :func:`str` to a proxy will return the representation " +"of the referent, whereas applying :func:`repr` will return the " +"representation of the proxy." +msgstr "" +"Notez qu'appliquer :func:`str` à un mandataire renvoie la représentation du " +"référent, alors que :func:`repr` renvoie celle du mandataire." + +#: ../Doc/library/multiprocessing.rst:1935 +msgid "" +"An important feature of proxy objects is that they are picklable so they can " +"be passed between processes. As such, a referent can contain :ref:" +"`multiprocessing-proxy_objects`. This permits nesting of these managed " +"lists, dicts, and other :ref:`multiprocessing-proxy_objects`:" +msgstr "" +"Une fonctionnalité importantes des objets mandataires est qu'ils sont " +"sérialisables et peuvent donc être échangés entre les processus. Ainsi, un " +"référent peut contenir des :ref:`multiprocessing-proxy_objects`. Cela permet " +"d'imbriquer des listes et dictionnaires gérés ainsi que d'autres :ref:" +"`multiprocessing-proxy_objects` :" + +#: ../Doc/library/multiprocessing.rst:1951 +msgid "Similarly, dict and list proxies may be nested inside one another::" +msgstr "" +"De même, les mandataires de listes et dictionnaires peuvent être imbriqués " +"dans d'autres ::" + +#: ../Doc/library/multiprocessing.rst:1964 +msgid "" +"If standard (non-proxy) :class:`list` or :class:`dict` objects are contained " +"in a referent, modifications to those mutable values will not be propagated " +"through the manager because the proxy has no way of knowing when the values " +"contained within are modified. However, storing a value in a container " +"proxy (which triggers a ``__setitem__`` on the proxy object) does propagate " +"through the manager and so to effectively modify such an item, one could re-" +"assign the modified value to the container proxy::" +msgstr "" +"Si des objets standards (non *proxyfiés*) :class:`list` ou :class:`dict` " +"sont contenus dans un référent, les modifications sur ces valeurs mutables " +"ne seront pas propagées à travers le gestionnaire parce que le mandataire " +"n'a aucun moyen de savoir quand les valeurs contenues sont modifiées. " +"Cependant, stocker une valeur dans un conteneur mandataire (qui déclenche un " +"appel à ``__setitem__`` sur le mandataire) propage bien la modification à " +"travers le gestionnaire et modifie effectivement l'élément, il est ainsi " +"possible de réassigner la valeur modifiée au conteneur mandataire ::" + +#: ../Doc/library/multiprocessing.rst:1983 +msgid "" +"This approach is perhaps less convenient than employing nested :ref:" +"`multiprocessing-proxy_objects` for most use cases but also demonstrates a " +"level of control over the synchronization." +msgstr "" +"Cette approche est peut-être moins pratique que d'utiliser des :ref:" +"`multiprocessing-proxy_objects` imbriqués pour la majorité des cas " +"d'utilisation, mais démontre aussi un certain niveau de contrôle sur la " +"synchronisation." + +#: ../Doc/library/multiprocessing.rst:1989 +msgid "" +"The proxy types in :mod:`multiprocessing` do nothing to support comparisons " +"by value. So, for instance, we have:" +msgstr "" +"Les types de mandataires de :mod:`multiprocessing` n'implémentent rien pour " +"la comparaison par valeurs. Par exemple, on a :" + +#: ../Doc/library/multiprocessing.rst:1997 +msgid "" +"One should just use a copy of the referent instead when making comparisons." +msgstr "" +"Il faut à la place simplement utiliser une copie du référent pour faire les " +"comparaisons." + +#: ../Doc/library/multiprocessing.rst:2001 +msgid "Proxy objects are instances of subclasses of :class:`BaseProxy`." +msgstr "" +"Les objets mandataires sont des instances de sous-classes de :class:" +"`BaseProxy`." + +#: ../Doc/library/multiprocessing.rst:2005 +msgid "Call and return the result of a method of the proxy's referent." +msgstr "" +"Appelle et renvoie le résultat d'une méthode du référent du mandataire." + +#: ../Doc/library/multiprocessing.rst:2007 +msgid "" +"If ``proxy`` is a proxy whose referent is ``obj`` then the expression ::" +msgstr "" +"Si ``proxy`` est un mandataire sont le référent est ``obj``, alors " +"l'expression ::" + +#: ../Doc/library/multiprocessing.rst:2011 +msgid "will evaluate the expression ::" +msgstr "s'évalue comme ::" + +#: ../Doc/library/multiprocessing.rst:2015 +msgid "in the manager's process." +msgstr "dans le processus du gestionnaire." + +#: ../Doc/library/multiprocessing.rst:2017 +msgid "" +"The returned value will be a copy of the result of the call or a proxy to a " +"new shared object -- see documentation for the *method_to_typeid* argument " +"of :meth:`BaseManager.register`." +msgstr "" +"La valeur renvoyée sera une copie du résultat de l'appel ou un mandataire " +"sur un nouvel objet partagé -- voir l'a documentation de l'argument " +"*method_to_typeid* de :meth:`BaseManager.register`." + +#: ../Doc/library/multiprocessing.rst:2021 +msgid "" +"If an exception is raised by the call, then is re-raised by :meth:" +"`_callmethod`. If some other exception is raised in the manager's process " +"then this is converted into a :exc:`RemoteError` exception and is raised by :" +"meth:`_callmethod`." +msgstr "" +"Si une exception est levée par l'appel, elle est relayée par :meth:" +"`_callmethod`. Si une autre exception est levée par le processus du " +"gestionnaire, elle est convertie en une :exc:`RemoteError` et est levée par :" +"meth:`_callmethod`." + +#: ../Doc/library/multiprocessing.rst:2026 +msgid "" +"Note in particular that an exception will be raised if *methodname* has not " +"been *exposed*." +msgstr "" +"Notez en particulier qu'une exception est levée si *methodname* n'est pas " +"*exposée*." + +#: ../Doc/library/multiprocessing.rst:2029 +msgid "An example of the usage of :meth:`_callmethod`:" +msgstr "Un exemple d'utilisation de :meth:`_callmethod` :" + +#: ../Doc/library/multiprocessing.rst:2045 +msgid "Return a copy of the referent." +msgstr "Renvoie une copie du référent." + +#: ../Doc/library/multiprocessing.rst:2047 +msgid "If the referent is unpicklable then this will raise an exception." +msgstr "Si le référent n'est pas sérialisable, une exception est levée." + +#: ../Doc/library/multiprocessing.rst:2051 +msgid "Return a representation of the proxy object." +msgstr "Renvoie la représentation de l'objet mandataire." + +#: ../Doc/library/multiprocessing.rst:2055 +msgid "Return the representation of the referent." +msgstr "Renvoie la représentation du référent." + +#: ../Doc/library/multiprocessing.rst:2059 +msgid "Cleanup" +msgstr "Nettoyage" + +#: ../Doc/library/multiprocessing.rst:2061 +msgid "" +"A proxy object uses a weakref callback so that when it gets garbage " +"collected it deregisters itself from the manager which owns its referent." +msgstr "" +"Un mandataire utilise un *callback* sous une référence faible de façon à ce " +"que quand il est collecté par le ramasse-miettes, il se désenregistre auprès " +"du gestionnaire qui possède le référent." + +#: ../Doc/library/multiprocessing.rst:2064 +msgid "" +"A shared object gets deleted from the manager process when there are no " +"longer any proxies referring to it." +msgstr "" +"Un objet partagé est supprimé par le processus gestionnaire quand plus aucun " +"mandataire ne le référence." + +#: ../Doc/library/multiprocessing.rst:2069 +msgid "Process Pools" +msgstr "Bassins de processus" + +#: ../Doc/library/multiprocessing.rst:2074 +msgid "" +"One can create a pool of processes which will carry out tasks submitted to " +"it with the :class:`Pool` class." +msgstr "" +"On peut créer un bassin de processus qui exécuteront les tâches qui lui " +"seront soumises avec la classe :class:`Pool`." + +#: ../Doc/library/multiprocessing.rst:2079 +msgid "" +"A process pool object which controls a pool of worker processes to which " +"jobs can be submitted. It supports asynchronous results with timeouts and " +"callbacks and has a parallel map implementation." +msgstr "" +"Un objet *process pool* qui contrôle un bassin de processus *workers* auquel " +"sont soumises des tâches. Il supporte les résultats asynchrones avec des " +"*timeouts* et des *callabacks* et possède une implémentation parallèle de " +"*map*." + +#: ../Doc/library/multiprocessing.rst:2083 +msgid "" +"*processes* is the number of worker processes to use. If *processes* is " +"``None`` then the number returned by :func:`os.cpu_count` is used." +msgstr "" +"*processes* est le nombre de processus *workers* à utiliser. Si *processes* " +"est ``None``, le nombre renvoyé par :func:`os.cpu_count` est utilisé." + +#: ../Doc/library/multiprocessing.rst:2086 +msgid "" +"If *initializer* is not ``None`` then each worker process will call " +"``initializer(*initargs)`` when it starts." +msgstr "" +"Si *initializer* n'est pas ``None``, chaque processus *worker* appellera " +"``initializer(*initargs)`` en démarrant." + +#: ../Doc/library/multiprocessing.rst:2089 +msgid "" +"*maxtasksperchild* is the number of tasks a worker process can complete " +"before it will exit and be replaced with a fresh worker process, to enable " +"unused resources to be freed. The default *maxtasksperchild* is ``None``, " +"which means worker processes will live as long as the pool." +msgstr "" +"*maxtasksperchild* est le nombre de tâches qu'un processus *worker* peut " +"accomplir avant de se fermer et d'être remplacé par un *worker* frais, pour " +"permettre aux ressources inutilisées d'être libérées. Par défaut " +"*maxtasksperchild* est ``None``, ce qui signifie que le *worker* vit aussi " +"longtemps que le bassin." + +#: ../Doc/library/multiprocessing.rst:2094 +msgid "" +"*context* can be used to specify the context used for starting the worker " +"processes. Usually a pool is created using the function :func:" +"`multiprocessing.Pool` or the :meth:`Pool` method of a context object. In " +"both cases *context* is set appropriately." +msgstr "" +"*context* peut être utilisé pour préciser le contexte utilisé pour démarrer " +"les processus *workers*. Habituellement un bassin est créé à l'aide de la " +"fonction :func:`multiprocessing.Pool` ou de la méthode :meth:`Pool` d'un " +"objet de contexte. Dans les deux cas *context* est réglé de façon appropriée." + +#: ../Doc/library/multiprocessing.rst:2100 +msgid "" +"Note that the methods of the pool object should only be called by the " +"process which created the pool." +msgstr "" +"Notez que les méthodes de l'objet *pool* ne doivent être appelées que par le " +"processus qui l'a créé." + +#: ../Doc/library/multiprocessing.rst:2103 +msgid "*maxtasksperchild*" +msgstr "*maxtasksperchild*" + +#: ../Doc/library/multiprocessing.rst:2106 +msgid "*context*" +msgstr "*context*" + +#: ../Doc/library/multiprocessing.rst:2111 +msgid "" +"Worker processes within a :class:`Pool` typically live for the complete " +"duration of the Pool's work queue. A frequent pattern found in other systems " +"(such as Apache, mod_wsgi, etc) to free resources held by workers is to " +"allow a worker within a pool to complete only a set amount of work before " +"being exiting, being cleaned up and a new process spawned to replace the old " +"one. The *maxtasksperchild* argument to the :class:`Pool` exposes this " +"ability to the end user." +msgstr "" +"Les processus *workers* à l'intérieur d'une :class:`Pool` vivent par défaut " +"aussi longtemps que la queue de travail du bassin. Un modèle fréquent chez " +"d'autres systèmes (tels qu'Apache, *mod_wsgi*, etc.) pour libérer les " +"ressources détenues par les *workers* est d'autoriser un *worker* dans le " +"bassin à accomplir seulement une certaine charge de travail avant de se " +"fermer, se retrouvant nettoyé et remplacé par un nouvelle processus " +"fraîchement lancé. L'argument *maxtasksperchild* de :class:`Pool` expose " +"cette fonctionnalité à l'utilisateur final." + +#: ../Doc/library/multiprocessing.rst:2121 +msgid "" +"Call *func* with arguments *args* and keyword arguments *kwds*. It blocks " +"until the result is ready. Given this blocks, :meth:`apply_async` is better " +"suited for performing work in parallel. Additionally, *func* is only " +"executed in one of the workers of the pool." +msgstr "" +"Appelle *func* avec les arguments *args* et les arguments nommés *kwds*. " +"Bloque jusqu'à ce que que le résultat soit prêt. En raison de ce blocage, :" +"meth:`apply_async` est préférable pour exécuter du travail en parallèle. De " +"plus, *func* est exécutée sur un seul des *workers* du bassin." + +#: ../Doc/library/multiprocessing.rst:2128 +msgid "A variant of the :meth:`apply` method which returns a result object." +msgstr "" +"Une variante de la méthode :meth:`apply` qui renvoie un objet résultat." + +#: ../Doc/library/multiprocessing.rst:2130 +#: ../Doc/library/multiprocessing.rst:2159 +msgid "" +"If *callback* is specified then it should be a callable which accepts a " +"single argument. When the result becomes ready *callback* is applied to it, " +"that is unless the call failed, in which case the *error_callback* is " +"applied instead." +msgstr "" +"Si *callback* est précisé alors ce doit être un objet appelable qui accepte " +"un seul argument. Quand le résultat est prêt, *callback* est appelé avec ce " +"résultat, si l'appel n'échoue pas auquel cas *error_callback* est appelé à " +"la place." + +#: ../Doc/library/multiprocessing.rst:2135 +#: ../Doc/library/multiprocessing.rst:2164 +msgid "" +"If *error_callback* is specified then it should be a callable which accepts " +"a single argument. If the target function fails, then the *error_callback* " +"is called with the exception instance." +msgstr "" +"Si *error_callback* est précisé alors ce doit être un objet appelable qui " +"accepte un seul argument. Si la fonction cible échoue, alors " +"*error_callback* est appelé avec l'instance de l'exception." + +#: ../Doc/library/multiprocessing.rst:2139 +#: ../Doc/library/multiprocessing.rst:2168 +msgid "" +"Callbacks should complete immediately since otherwise the thread which " +"handles the results will get blocked." +msgstr "" +"Les *callbacks* doivent se terminer immédiatement, autrement le fil " +"d'exécution qui gère les résultats se retrouverait bloqué." + +#: ../Doc/library/multiprocessing.rst:2144 +msgid "" +"A parallel equivalent of the :func:`map` built-in function (it supports only " +"one *iterable* argument though). It blocks until the result is ready." +msgstr "" +"Un équivalent parallèle à la fonction *built-in* :func:`map` (qui ne " +"supporte cependant qu'un *itérable* en argument). Elle bloque jusqu'à ce que " +"le résultat soit prêt." + +#: ../Doc/library/multiprocessing.rst:2147 +msgid "" +"This method chops the iterable into a number of chunks which it submits to " +"the process pool as separate tasks. The (approximate) size of these chunks " +"can be specified by setting *chunksize* to a positive integer." +msgstr "" +"La méthode découpe l'itérable en un nombre de morceaux qu'elle envoie au " +"bassin de processus comme des tâches séparées. La taille (approximative) de " +"ces morceaux peut être précisée en passant à *chunksize* un entier positif." + +#: ../Doc/library/multiprocessing.rst:2151 +msgid "" +"Note that it may cause high memory usage for very long iterables. Consider " +"using :meth:`imap` or :meth:`imap_unordered` with explicit *chunksize* " +"option for better efficiency." +msgstr "" +"Notez que cela peut entraîner une grosse consommation de mémoire pour les " +"itérables très longs. Envisagez d'utiliser :meth:`imap` ou :meth:" +"`imap_unordered` avec l'option *chunksize* explicite pour une meilleure " +"efficacité." + +#: ../Doc/library/multiprocessing.rst:2157 +msgid "A variant of the :meth:`.map` method which returns a result object." +msgstr "Une variante de la méthode :meth:`.map` qui renvoie un objet résultat." + +#: ../Doc/library/multiprocessing.rst:2173 +msgid "A lazier version of :meth:`.map`." +msgstr "Une version paresseuse de :meth:`map`." + +#: ../Doc/library/multiprocessing.rst:2175 +msgid "" +"The *chunksize* argument is the same as the one used by the :meth:`.map` " +"method. For very long iterables using a large value for *chunksize* can " +"make the job complete **much** faster than using the default value of ``1``." +msgstr "" +"L'argument *chunksize* est le même que celui utilisé par la méthode :meth:`." +"map`. Pour de très longs itérables, utiliser une grande valeur pour " +"*chunksize* peut faire s'exécuter la tâche **beaucoup** plus rapidement " +"qu'en utilisant la valeur par défaut de ``1``." + +#: ../Doc/library/multiprocessing.rst:2180 +msgid "" +"Also if *chunksize* is ``1`` then the :meth:`!next` method of the iterator " +"returned by the :meth:`imap` method has an optional *timeout* parameter: " +"``next(timeout)`` will raise :exc:`multiprocessing.TimeoutError` if the " +"result cannot be returned within *timeout* seconds." +msgstr "" +"Aussi, si *chucksize* vaut ``1`` alors la méthode :meth:`!next` de " +"l'itérateur renvoyé par :meth:`imap` prend un paramètre optionnel " +"*timeout* : ``next(timeout)`` lève une :exc:`multiprocessing.TimeoutError` " +"si le résultat ne peut pas être renvoyé avant *timeout* secondes." + +#: ../Doc/library/multiprocessing.rst:2187 +msgid "" +"The same as :meth:`imap` except that the ordering of the results from the " +"returned iterator should be considered arbitrary. (Only when there is only " +"one worker process is the order guaranteed to be \"correct\".)" +msgstr "" +"Identique à :meth:`imap` si ce n'est que l'ordre des résultats de " +"l'itérateur renvoyé doit être considéré comme arbitraire. (L'ordre n'est " +"garanti que quand il n'y a qu'un *worker*.)" + +#: ../Doc/library/multiprocessing.rst:2193 +msgid "" +"Like :meth:`map` except that the elements of the *iterable* are expected to " +"be iterables that are unpacked as arguments." +msgstr "" +"Semblable à :meth:`map` à l'exception que les éléments d'*iterable* doivent " +"être des itérables qui seront dépaquetés comme arguments pour la fonction." + +#: ../Doc/library/multiprocessing.rst:2196 +msgid "" +"Hence an *iterable* of ``[(1,2), (3, 4)]`` results in ``[func(1,2), " +"func(3,4)]``." +msgstr "" +"Par conséquent un *iterable* ``[(1,2), (3, 4)]`` donnera pour résultat " +"``[func(1,2), func(3,4)]``." + +#: ../Doc/library/multiprocessing.rst:2203 +msgid "" +"A combination of :meth:`starmap` and :meth:`map_async` that iterates over " +"*iterable* of iterables and calls *func* with the iterables unpacked. " +"Returns a result object." +msgstr "" +"Une combinaison de :meth:`starmap` et :meth:`map_async` qui itère sur " +"*iterable* (composé d'itérables) et appelle *func* pour chaque itérable " +"dépaqueté. Renvoie l'objet résultat." + +#: ../Doc/library/multiprocessing.rst:2211 +msgid "" +"Prevents any more tasks from being submitted to the pool. Once all the " +"tasks have been completed the worker processes will exit." +msgstr "" +"Empêche de nouvelles tâches d'être envoyées à la *pool*. Les processus " +"*workers* se terminent une fois que toutes les tâches ont été complétées." + +#: ../Doc/library/multiprocessing.rst:2216 +msgid "" +"Stops the worker processes immediately without completing outstanding work. " +"When the pool object is garbage collected :meth:`terminate` will be called " +"immediately." +msgstr "" +"Stoppe immédiatement les processus *workers* sans finaliser les travaux " +"courants. Quand l'objet *pool* est collecté par le ramasse-miettes, sa " +"méthode :meth:`terminate` est appelée immédiatement." + +#: ../Doc/library/multiprocessing.rst:2222 +msgid "" +"Wait for the worker processes to exit. One must call :meth:`close` or :meth:" +"`terminate` before using :meth:`join`." +msgstr "" +"Attend que les processus *workers* se terminent. Il est nécessaire " +"d'appeler :meth:`close` ou :meth:`terminate` avant d'utiliser :meth:`join`." + +#: ../Doc/library/multiprocessing.rst:2225 +msgid "" +"Pool objects now support the context management protocol -- see :ref:" +"`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the pool " +"object, and :meth:`~contextmanager.__exit__` calls :meth:`terminate`." +msgstr "" +"Les bassins de *workers* supportent maintenant le protocole des " +"gestionnaires de contexte -- voir :ref:`typecontextmanager`. :meth:" +"`~contextmanager.__enter__` renvoie l'objet *pool* et :meth:`~contextmanager." +"__exit__` appelle :meth:`terminate`." + +#: ../Doc/library/multiprocessing.rst:2233 +msgid "" +"The class of the result returned by :meth:`Pool.apply_async` and :meth:`Pool." +"map_async`." +msgstr "" +"La classe des résultats renvoyés par :meth:`Pool.apply_async` et :meth:`Pool." +"map_async`." + +#: ../Doc/library/multiprocessing.rst:2238 +msgid "" +"Return the result when it arrives. If *timeout* is not ``None`` and the " +"result does not arrive within *timeout* seconds then :exc:`multiprocessing." +"TimeoutError` is raised. If the remote call raised an exception then that " +"exception will be reraised by :meth:`get`." +msgstr "" +"Renvoie le résultat quand il arrive. Si *timeout* n'est pas ``None`` et que " +"le résultat n'arrive pas avant *timeout* secondes, une :exc:`multiprocessing." +"TimeoutError` est levée. Si l'appel distance lève une exception, alors elle " +"est relayée par :meth:`get`." + +#: ../Doc/library/multiprocessing.rst:2245 +msgid "Wait until the result is available or until *timeout* seconds pass." +msgstr "" +"Attend que le résultat soit disponible ou que *timeout* secondes s'écoulent." + +#: ../Doc/library/multiprocessing.rst:2249 +msgid "Return whether the call has completed." +msgstr "Renvoie ``True`` ou ``False`` suivant si la tâche est accomplie." + +#: ../Doc/library/multiprocessing.rst:2253 +msgid "" +"Return whether the call completed without raising an exception. Will raise :" +"exc:`AssertionError` if the result is not ready." +msgstr "" +"Renvoie ``True`` ou ``False`` suivant si la tâche est accomplie sans lever " +"d'exception. Lève une :exc:`AssertionError` si le résultat n'est pas prêt." + +#: ../Doc/library/multiprocessing.rst:2256 +msgid "The following example demonstrates the use of a pool::" +msgstr "" +"Les exemples suivants présentent l'utilisation d'un bassin de *workers* ::" + +#: ../Doc/library/multiprocessing.rst:2283 +msgid "Listeners and Clients" +msgstr "Auditeurs et Clients" + +#: ../Doc/library/multiprocessing.rst:2288 +msgid "" +"Usually message passing between processes is done using queues or by using :" +"class:`~Connection` objects returned by :func:`~multiprocessing.Pipe`." +msgstr "" +"Habituellement l'échange de messages entre processus est réalisé en " +"utilisant des queues ou des objets :class:`~Connection` renvoyés par :func:" +"`~multiprocessing.Pipe`." + +#: ../Doc/library/multiprocessing.rst:2292 +msgid "" +"However, the :mod:`multiprocessing.connection` module allows some extra " +"flexibility. It basically gives a high level message oriented API for " +"dealing with sockets or Windows named pipes. It also has support for " +"*digest authentication* using the :mod:`hmac` module, and for polling " +"multiple connections at the same time." +msgstr "" +"Cependant, le module :mod:`multiprocessing.connection` permet un peu plus de " +"flexibilité. Il fournit un message de plus haut-niveau orienté API pour " +"gérer des connecteurs ou des tubes nommés sous Windows. Il gère aussi " +"l'authentification par condensat (*digest authentication* en anglais) en " +"utilisant le module :mod:`hmac`, et pour interroger de multiples connexions " +"en même temps." + +#: ../Doc/library/multiprocessing.rst:2301 +msgid "" +"Send a randomly generated message to the other end of the connection and " +"wait for a reply." +msgstr "" +"Envoie un message généré aléatoirement à l'autre bout de la connexion et " +"attend une réponse." + +#: ../Doc/library/multiprocessing.rst:2304 +msgid "" +"If the reply matches the digest of the message using *authkey* as the key " +"then a welcome message is sent to the other end of the connection. " +"Otherwise :exc:`~multiprocessing.AuthenticationError` is raised." +msgstr "" +"Si la réponse correspond au condensat du message avec la clé *authkey*, " +"alors un message de bienvenue est envoyé à l'autre bout de la connexion. " +"Autrement, une :exc:`~multiprocessing.AuthenticationError` est levée." + +#: ../Doc/library/multiprocessing.rst:2310 +msgid "" +"Receive a message, calculate the digest of the message using *authkey* as " +"the key, and then send the digest back." +msgstr "" +"Reçoit un message, calcule le condensat du message en utilisant la clé " +"*authkey*, et envoie le condensat en réponse." + +#: ../Doc/library/multiprocessing.rst:2313 +msgid "" +"If a welcome message is not received, then :exc:`~multiprocessing." +"AuthenticationError` is raised." +msgstr "" +"Si un message de bienvenue n'est pas reçu, une :exc:`~multiprocessing." +"AuthenticationError` est levée." + +#: ../Doc/library/multiprocessing.rst:2318 +msgid "" +"Attempt to set up a connection to the listener which is using address " +"*address*, returning a :class:`~Connection`." +msgstr "" +"Essaie d'établir une connexion avec l'auditeur qui utilise l'adresse " +"*address*, renvoie une :class:`~Connection`." + +#: ../Doc/library/multiprocessing.rst:2321 +msgid "" +"The type of the connection is determined by *family* argument, but this can " +"generally be omitted since it can usually be inferred from the format of " +"*address*. (See :ref:`multiprocessing-address-formats`)" +msgstr "" +"Le type de la connexion est déterminé par l'argument *family*, mais il peut " +"généralement être omis puisqu'il peut être inféré depuis le format " +"d'*address*. (Voir :ref:`multiprocessing-address-formats`)" + +#: ../Doc/library/multiprocessing.rst:2325 +#: ../Doc/library/multiprocessing.rst:2360 +msgid "" +"If *authkey* is given and not None, it should be a byte string and will be " +"used as the secret key for an HMAC-based authentication challenge. No " +"authentication is done if *authkey* is None. :exc:`~multiprocessing." +"AuthenticationError` is raised if authentication fails. See :ref:" +"`multiprocessing-auth-keys`." +msgstr "" +"Si *authkey* est passée et n'est pas ``None``, elle doit être une chaîne " +"d'octets et sera utilisée comme clé secrète pour le défi d'authentification " +"basé sur HMAC. Aucune authentification n'est réalisée si *authkey* est " +"``None``. Une :exc:`~multiprocessing.AuthenticationError` est levée si " +"l'authentification échoue. Voir :ref:`multiprocessing-auth-keys`." + +#: ../Doc/library/multiprocessing.rst:2333 +msgid "" +"A wrapper for a bound socket or Windows named pipe which is 'listening' for " +"connections." +msgstr "" +"Une enveloppe autour d'un connecteur lié ou un tube nommé sous Windows qui " +"écoute pour des connexions." + +#: ../Doc/library/multiprocessing.rst:2336 +msgid "" +"*address* is the address to be used by the bound socket or named pipe of the " +"listener object." +msgstr "" +"*address* est l'adresse à utiliser par le connecteur lié ou le tube nommé de " +"l'objet auditeur." + +#: ../Doc/library/multiprocessing.rst:2341 +msgid "" +"If an address of '0.0.0.0' is used, the address will not be a connectable " +"end point on Windows. If you require a connectable end-point, you should use " +"'127.0.0.1'." +msgstr "" +"Si une adresse '0.0.0.0' est utilisée, l'adresse ne sera pas un point " +"d'accès connectable sous Windows. Si vous avez besoin d'un point d'accès " +"connectable, utilisez '127.0.0.1'." + +#: ../Doc/library/multiprocessing.rst:2345 +msgid "" +"*family* is the type of socket (or named pipe) to use. This can be one of " +"the strings ``'AF_INET'`` (for a TCP socket), ``'AF_UNIX'`` (for a Unix " +"domain socket) or ``'AF_PIPE'`` (for a Windows named pipe). Of these only " +"the first is guaranteed to be available. If *family* is ``None`` then the " +"family is inferred from the format of *address*. If *address* is also " +"``None`` then a default is chosen. This default is the family which is " +"assumed to be the fastest available. See :ref:`multiprocessing-address-" +"formats`. Note that if *family* is ``'AF_UNIX'`` and address is ``None`` " +"then the socket will be created in a private temporary directory created " +"using :func:`tempfile.mkstemp`." +msgstr "" +"*family* est le type de connecteur (ou tube nommé) à utiliser. Cela peut " +"être l'une des chaînes ``'AF_INET'`` (pour un connecteur TCP), ``'AF_UNIX'`` " +"(pour un connecteur Unix) ou ``'AF_PIPE'`` (pour un tube nommé sous " +"Windows). Seulement le premier d'entre eux est garanti d'être disponible. Si " +"*family* est ``None``, la famille est inférée depuis le format d'*address*. " +"Si *address* est aussi ``None``, la famille par défaut est utilisée. La " +"famille par défaut est supposée être la plus rapide disponible. Voir :ref:" +"`multiprocessing-address-formats`. Notez que si la *family* est " +"``'AF_UNIX'`` et qu'*address* est ``None``, le connecteur est créé dans un " +"répertoire temporaire privé créé avec :func:`tempfile.mkstemp`." + +#: ../Doc/library/multiprocessing.rst:2356 +msgid "" +"If the listener object uses a socket then *backlog* (1 by default) is passed " +"to the :meth:`~socket.socket.listen` method of the socket once it has been " +"bound." +msgstr "" +"Si l'objet auditeur utilise un connecteur alors *backlog* (1 par défaut) est " +"passé à la méthode :meth:`~socket.socket.listen` du connecteur une fois " +"qu'il a été lié." + +#: ../Doc/library/multiprocessing.rst:2368 +msgid "" +"Accept a connection on the bound socket or named pipe of the listener object " +"and return a :class:`~Connection` object. If authentication is attempted and " +"fails, then :exc:`~multiprocessing.AuthenticationError` is raised." +msgstr "" +"Accepte une connexion sur le connecteur lié ou le tube nommé de l'objet " +"auditeur et renvoie un objet :class:`~Connection`. Si la tentative " +"d'authentification échoue, une :exc:`~multiprocessing.AuthenticationError` " +"est levée." + +#: ../Doc/library/multiprocessing.rst:2375 +msgid "" +"Close the bound socket or named pipe of the listener object. This is called " +"automatically when the listener is garbage collected. However it is " +"advisable to call it explicitly." +msgstr "" +"Ferme le connecteur lié ou le tube nommé de l'objet auditeur. La méthode est " +"appelée automatiquement quand l'auditeur est collecté par le ramasse-" +"miettes. Il est cependant conseillé de l'appeler explicitement." + +#: ../Doc/library/multiprocessing.rst:2379 +msgid "Listener objects have the following read-only properties:" +msgstr "" +"Les objets auditeurs ont aussi les propriétés en lecture seule suivantes :" + +#: ../Doc/library/multiprocessing.rst:2383 +msgid "The address which is being used by the Listener object." +msgstr "L'adresse utilisée par l'objet auditeur." + +#: ../Doc/library/multiprocessing.rst:2387 +msgid "" +"The address from which the last accepted connection came. If this is " +"unavailable then it is ``None``." +msgstr "" +"L'adresse depuis laquelle a été établie la dernière connexion. ``None`` si " +"aucune n'est disponible." + +#: ../Doc/library/multiprocessing.rst:2390 +msgid "" +"Listener objects now support the context management protocol -- see :ref:" +"`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the " +"listener object, and :meth:`~contextmanager.__exit__` calls :meth:`close`." +msgstr "" +"Les objets auditeurs supportent maintenant le protocole des gestionnaires de " +"contexte -- voir :ref:`typecontextmanager`. :meth:`~contextmanager." +"__enter__` renvoie l'objet auditeur, et :meth:`~contextmanager.__exit__` " +"appelle :meth:`close`." + +#: ../Doc/library/multiprocessing.rst:2397 +msgid "" +"Wait till an object in *object_list* is ready. Returns the list of those " +"objects in *object_list* which are ready. If *timeout* is a float then the " +"call blocks for at most that many seconds. If *timeout* is ``None`` then it " +"will block for an unlimited period. A negative timeout is equivalent to a " +"zero timeout." +msgstr "" +"Attend qu'un objet d'*object_list* soit prêt. Renvoie la liste de ces objets " +"d'*object_list* qui sont prêts. Si *timeout* est un nombre flottant, l'appel " +"bloquera au maximum ce nombre de secondes. Si *timeout* est ``None``, " +"l'appelle bloquera pour une durée non limitée. Un *timeout* négatif est " +"équivalent à un *timeout* nul." + +#: ../Doc/library/multiprocessing.rst:2403 +msgid "" +"For both Unix and Windows, an object can appear in *object_list* if it is" +msgstr "" +"Pour Unix et Windows, un objet peut apparaître dans *object_list* s'il est" + +#: ../Doc/library/multiprocessing.rst:2406 +msgid "a readable :class:`~multiprocessing.connection.Connection` object;" +msgstr "" +"un objet :class:`~multiprocessing.connection.Connection` accessible en " +"lecture ;" + +#: ../Doc/library/multiprocessing.rst:2407 +msgid "a connected and readable :class:`socket.socket` object; or" +msgstr "un objet :class:`socket.socket` connecté et accessible en lecture ; ou" + +#: ../Doc/library/multiprocessing.rst:2408 +msgid "" +"the :attr:`~multiprocessing.Process.sentinel` attribute of a :class:" +"`~multiprocessing.Process` object." +msgstr "" +"l'attribut :attr:`~multiprocessing.Process.sentinel` d'un objet :class:" +"`~multiprocessing.Process`." + +#: ../Doc/library/multiprocessing.rst:2411 +msgid "" +"A connection or socket object is ready when there is data available to be " +"read from it, or the other end has been closed." +msgstr "" +"Une connexion (*socket* en anglais) est prête quand il y a des données " +"disponibles en lecture dessus, ou que l'autre bout a été fermé." + +#: ../Doc/library/multiprocessing.rst:2414 +msgid "" +"**Unix**: ``wait(object_list, timeout)`` almost equivalent ``select." +"select(object_list, [], [], timeout)``. The difference is that, if :func:" +"`select.select` is interrupted by a signal, it can raise :exc:`OSError` with " +"an error number of ``EINTR``, whereas :func:`wait` will not." +msgstr "" +"**Unix**: ``wait(object_list, timeout)`` est en grande partie équivalente à " +"``select.select(object_list, [], [], timeout)``. La différence est que, si :" +"func:`select.select` est interrompue par un signal, elle peut lever une :exc:" +"`OSError` avec un numéro d'erreur ``EINTR``, alors que :func:`wait` ne le " +"fera pas." + +#: ../Doc/library/multiprocessing.rst:2420 +msgid "" +"**Windows**: An item in *object_list* must either be an integer handle which " +"is waitable (according to the definition used by the documentation of the " +"Win32 function ``WaitForMultipleObjects()``) or it can be an object with a :" +"meth:`fileno` method which returns a socket handle or pipe handle. (Note " +"that pipe handles and socket handles are **not** waitable handles.)" +msgstr "" +"**Windows** : un élément d'*object_list* doit être soit un identifiant " +"*waitable* (en accord avec la définition utilisée par la documentation de la " +"fonction Win32 ``WaitForMultipleObjects()``), soit un objet avec une " +"méthode :meth:`fileno` qui renvoie un identifiant de connecteur ou de tube " +"(notez que les identifiants de tubes et de connecteurs **ne sont pas** des " +"identifiants *waitables*)." + +#: ../Doc/library/multiprocessing.rst:2430 +msgid "**Examples**" +msgstr "**Exemples**" + +#: ../Doc/library/multiprocessing.rst:2432 +msgid "" +"The following server code creates a listener which uses ``'secret " +"password'`` as an authentication key. It then waits for a connection and " +"sends some data to the client::" +msgstr "" +"Le code serveur suivant crée un auditeur qui utilise ``'secret password'`` " +"comme clé d'authentification. Il attend ensuite une connexion et envoie les " +"données au client ::" + +#: ../Doc/library/multiprocessing.rst:2451 +msgid "" +"The following code connects to the server and receives some data from the " +"server::" +msgstr "Le code suivant se connecte au serveur et en reçoit des données ::" + +#: ../Doc/library/multiprocessing.rst:2468 +msgid "" +"The following code uses :func:`~multiprocessing.connection.wait` to wait for " +"messages from multiple processes at once::" +msgstr "" +"Le code suivant utilise :func:`~multiprocessing.connection.wait` pour " +"attendre des messages depuis plusieurs processus à la fois ::" + +#: ../Doc/library/multiprocessing.rst:2507 +msgid "Address Formats" +msgstr "Formats d'adresses" + +#: ../Doc/library/multiprocessing.rst:2509 +msgid "" +"An ``'AF_INET'`` address is a tuple of the form ``(hostname, port)`` where " +"*hostname* is a string and *port* is an integer." +msgstr "" +"Une adresse ``'AF_INET'`` est un *tuple* de la forme ``(hostname, port)`` où " +"*hostname* est une chaîne et *port* un entier." + +#: ../Doc/library/multiprocessing.rst:2512 +msgid "" +"An ``'AF_UNIX'`` address is a string representing a filename on the " +"filesystem." +msgstr "" +"Une adresse ``'AF_UNIX'`` est une chaîne représentant un nom de fichier sur " +"le système de fichiers." + +#: ../Doc/library/multiprocessing.rst:2518 +msgid "An ``'AF_PIPE'`` address is a string of the form" +msgstr "Une adresse ``'AF_PIPE'`` est une chaîne de la forme" + +#: ../Doc/library/multiprocessing.rst:2516 +msgid "" +":samp:`r'\\\\\\\\.\\\\pipe\\\\{PipeName}'`. To use :func:`Client` to " +"connect to a named pipe on a remote computer called *ServerName* one should " +"use an address of the form :samp:`r'\\\\\\\\{ServerName}\\\\pipe\\" +"\\{PipeName}'` instead." +msgstr "" +":samp:`r'\\\\\\\\.\\\\pipe\\\\{PipeName}'`. Pour utiliser un :func:`Client` " +"pour se connecter à un tube nommé sur une machine distante appelée " +"*ServerName*, il faut plutôt utiliser une adresse de la forme :samp:`r'\\\\\\" +"\\{ServerName}\\\\pipe\\\\{PipeName}'`." + +#: ../Doc/library/multiprocessing.rst:2520 +msgid "" +"Note that any string beginning with two backslashes is assumed by default to " +"be an ``'AF_PIPE'`` address rather than an ``'AF_UNIX'`` address." +msgstr "" +"Notez que toute chaîne commençant par deux antislashs est considérée par " +"défaut comme l'adresse d'un ``'AF_PIPE'`` plutôt qu'une adresse " +"``'AF_UNIX'``." + +#: ../Doc/library/multiprocessing.rst:2527 +msgid "Authentication keys" +msgstr "Clés d'authentification" + +#: ../Doc/library/multiprocessing.rst:2529 +msgid "" +"When one uses :meth:`Connection.recv `, the data received " +"is automatically unpickled. Unfortunately unpickling data from an untrusted " +"source is a security risk. Therefore :class:`Listener` and :func:`Client` " +"use the :mod:`hmac` module to provide digest authentication." +msgstr "" +"Quand :meth:`Connection.recv ` est utilisée, les données " +"reçues sont automatiquement désérialisées par *pickle*. Malheureusement " +"désérialiser des données depuis une source non sûre constitue un risque de " +"sécurité. Par conséquent :class:`Listener` et :func:`Client` utilisent le " +"module :mod:`hmac` pour fournir une authentification par condensat." + +#: ../Doc/library/multiprocessing.rst:2535 +msgid "" +"An authentication key is a byte string which can be thought of as a " +"password: once a connection is established both ends will demand proof that " +"the other knows the authentication key. (Demonstrating that both ends are " +"using the same key does **not** involve sending the key over the connection.)" +msgstr "" +"Une clé d'authentification est une chaîne d'octets qui peut être vue comme " +"un mot de passe : quand une connexion est établie, les deux interlocuteurs " +"vont demander à l'autre une preuve qu'il connaît la clé d'authentification. " +"(Démontrer que les deux utilisent la même clé n'implique **pas** d'échanger " +"la clé sur la connexion.)" + +#: ../Doc/library/multiprocessing.rst:2541 +msgid "" +"If authentication is requested but no authentication key is specified then " +"the return value of ``current_process().authkey`` is used (see :class:" +"`~multiprocessing.Process`). This value will be automatically inherited by " +"any :class:`~multiprocessing.Process` object that the current process " +"creates. This means that (by default) all processes of a multi-process " +"program will share a single authentication key which can be used when " +"setting up connections between themselves." +msgstr "" +"Si l'authentification est requise et qu'aucune clé n'est spécifiée alors la " +"valeur de retour de ``current_process().authkey`` est utilisée (voir :class:" +"`~multiprocessing.Process`). Celle valeur est automatiquement héritée par " +"tout objet :class:`~multiprocessing.Process` créé par le processus courant. " +"Cela signifie que (par défaut) tous les processus d'un programme multi-" +"processus partageront une clé d'authentification unique qui peut être " +"utilisée pour mettre en place des connexions entre-eux." + +#: ../Doc/library/multiprocessing.rst:2549 +msgid "" +"Suitable authentication keys can also be generated by using :func:`os." +"urandom`." +msgstr "" +"Des clés d'authentification adaptées peuvent aussi être générées par :func:" +"`os.urandom`." + +#: ../Doc/library/multiprocessing.rst:2553 +msgid "Logging" +msgstr "Journalisation" + +#: ../Doc/library/multiprocessing.rst:2555 +msgid "" +"Some support for logging is available. Note, however, that the :mod:" +"`logging` package does not use process shared locks so it is possible " +"(depending on the handler type) for messages from different processes to get " +"mixed up." +msgstr "" +"Un certain support de la journalisation est disponible. Notez cependant que " +"le le paquet :mod:`logging` n'utilise pas de verrous partagés entre les " +"processus et il est donc possible (dépendant du type de gestionnaire) que " +"les messages de différents processus soient mélangés." + +#: ../Doc/library/multiprocessing.rst:2562 +msgid "" +"Returns the logger used by :mod:`multiprocessing`. If necessary, a new one " +"will be created." +msgstr "" +"Renvoie le journaliseur utilisé par :mod:`multiprocessing`. Si nécessaire, " +"un nouveau sera créé." + +#: ../Doc/library/multiprocessing.rst:2565 +msgid "" +"When first created the logger has level :data:`logging.NOTSET` and no " +"default handler. Messages sent to this logger will not by default propagate " +"to the root logger." +msgstr "" +"À sa première création le journaliseur a pour niveau :data:`logging.NOTSET` " +"et pas de gestionnaire par défaut. Les messages envoyés à ce journaliseur ne " +"seront pas propagés par défaut au journaliseur principal." + +#: ../Doc/library/multiprocessing.rst:2569 +msgid "" +"Note that on Windows child processes will only inherit the level of the " +"parent process's logger -- any other customization of the logger will not be " +"inherited." +msgstr "" +"Notez que sous Windows les processus fils n'hériteront que du niveau du " +"journaliseur du processus parent -- toute autre personnalisation du " +"journaliseur ne sera pas héritée." + +#: ../Doc/library/multiprocessing.rst:2576 +msgid "" +"This function performs a call to :func:`get_logger` but in addition to " +"returning the logger created by get_logger, it adds a handler which sends " +"output to :data:`sys.stderr` using format ``'[%(levelname)s/%(processName)s] " +"%(message)s'``." +msgstr "" +"Cette fonction effectue un appel à :func:`get_logger` mais en plus de " +"renvoyer le journaliseur créé par *get_logger*, elle ajoute un gestionnaire " +"qui envoie la sortie sur :data:`sys.stderr` en utilisant le format " +"``'[%(levelname)s/%(processName)s] %(message)s'``." + +#: ../Doc/library/multiprocessing.rst:2581 +msgid "Below is an example session with logging turned on::" +msgstr "" +"L'exemple ci-dessous présente une session avec la journalisation activée ::" + +#: ../Doc/library/multiprocessing.rst:2596 +msgid "For a full table of logging levels, see the :mod:`logging` module." +msgstr "" +"Pour un tableau complet des niveaux de journalisation, voir le module :mod:" +"`logging`." + +#: ../Doc/library/multiprocessing.rst:2600 +msgid "The :mod:`multiprocessing.dummy` module" +msgstr "Le module :mod:`multiprocessing.dummy`" + +#: ../Doc/library/multiprocessing.rst:2605 +msgid "" +":mod:`multiprocessing.dummy` replicates the API of :mod:`multiprocessing` " +"but is no more than a wrapper around the :mod:`threading` module." +msgstr "" +":mod:`multiprocessing.dummy` réplique toute l'API de :mod:`multiprocessing` " +"mais n'est rien de plus qu'un *wrapper* autour du module :mod:`threading`." + +#: ../Doc/library/multiprocessing.rst:2612 +msgid "Programming guidelines" +msgstr "Lignes directrices de programmation" + +#: ../Doc/library/multiprocessing.rst:2614 +msgid "" +"There are certain guidelines and idioms which should be adhered to when " +"using :mod:`multiprocessing`." +msgstr "" +"Il y a certaines lignes directrices et idiomes auxquels il faut adhérer en " +"utilisant :mod:`multiprocessing`." + +#: ../Doc/library/multiprocessing.rst:2619 +msgid "All start methods" +msgstr "Toutes les méthodes de démarrage" + +#: ../Doc/library/multiprocessing.rst:2621 +msgid "The following applies to all start methods." +msgstr "Les règles suivantes s'appliquent aux méthodes de démarrage." + +#: ../Doc/library/multiprocessing.rst:2623 +msgid "Avoid shared state" +msgstr "Éviter les états partagés" + +#: ../Doc/library/multiprocessing.rst:2625 +msgid "" +"As far as possible one should try to avoid shifting large amounts of data " +"between processes." +msgstr "" +"Autant que possible, vous devriez éviter de déplacer de larges données entre " +"les processus." + +#: ../Doc/library/multiprocessing.rst:2628 +msgid "" +"It is probably best to stick to using queues or pipes for communication " +"between processes rather than using the lower level synchronization " +"primitives." +msgstr "" +"Il est probablement meilleur de s'en tenir à l'utilisation de queues et " +"tubes pour la communication entre processus plutôt que d'utiliser des " +"primitives de synchronisation plus bas-niveau." + +#: ../Doc/library/multiprocessing.rst:2632 +msgid "Picklability" +msgstr "Sérialisation" + +#: ../Doc/library/multiprocessing.rst:2634 +msgid "Ensure that the arguments to the methods of proxies are picklable." +msgstr "" +"Assurez-vous que les arguments passés aux méthodes des mandataires soient " +"sérialisables (*pickables*)." + +#: ../Doc/library/multiprocessing.rst:2636 +msgid "Thread safety of proxies" +msgstr "Sûreté des mandataires à travers les fils d'exécution" + +#: ../Doc/library/multiprocessing.rst:2638 +msgid "" +"Do not use a proxy object from more than one thread unless you protect it " +"with a lock." +msgstr "" +"N'utilisez pas d'objet mandataire depuis plus d'un fil d'exécution à moins " +"que vous ne le protégiez avec un verrou." + +#: ../Doc/library/multiprocessing.rst:2641 +msgid "" +"(There is never a problem with different processes using the *same* proxy.)" +msgstr "" +"(Il n'y a jamais de problème avec plusieurs processus utilisant un *même* " +"mandataire.)" + +#: ../Doc/library/multiprocessing.rst:2643 +msgid "Joining zombie processes" +msgstr "Attendre les processus zombies" + +#: ../Doc/library/multiprocessing.rst:2645 +msgid "" +"On Unix when a process finishes but has not been joined it becomes a zombie. " +"There should never be very many because each time a new process starts (or :" +"func:`~multiprocessing.active_children` is called) all completed processes " +"which have not yet been joined will be joined. Also calling a finished " +"process's :meth:`Process.is_alive ` will " +"join the process. Even so it is probably good practice to explicitly join " +"all the processes that you start." +msgstr "" +"Sous Unix quand un processus se termine mais n'est pas attendu, il devient " +"un zombie. Il ne devrait jamais y en avoir beaucoup parce que chaque fois " +"qu'un nouveau processus démarre (ou que :func:`~multiprocessing." +"active_children` est appelée) tous les processus complétés qui n'ont pas été " +"attendus le seront. Aussi appeler la méthode :meth:`Process.is_alive " +"` d'un processus terminé attendra le " +"processus. Toutefois il est probablement une bonne pratique d'attendre " +"explicitement tous les processus que vous démarrez." + +#: ../Doc/library/multiprocessing.rst:2653 +msgid "Better to inherit than pickle/unpickle" +msgstr "Préférez hériter que sérialiser/désérialiser" + +#: ../Doc/library/multiprocessing.rst:2655 +msgid "" +"When using the *spawn* or *forkserver* start methods many types from :mod:" +"`multiprocessing` need to be picklable so that child processes can use " +"them. However, one should generally avoid sending shared objects to other " +"processes using pipes or queues. Instead you should arrange the program so " +"that a process which needs access to a shared resource created elsewhere can " +"inherit it from an ancestor process." +msgstr "" +"Quand vous utilisez les méthodes de démarrage *spawn* ou *forkserver*, de " +"nombreux types de :mod:`multiprocessing` nécessitent d'être sérialisées pour " +"que les processus enfants puissent les utiliser. Cependant, il faut " +"généralement éviter d'envoyer des objets partagés aux autres processus en " +"utilisant des tubes ou des queues. Vous devriez plutôt vous arranger pour " +"qu'un processus qui nécessite l'accès à une ressource partagée créée autre " +"part qu'il en hérite depuis un de ses processus ancêtres." + +#: ../Doc/library/multiprocessing.rst:2663 +msgid "Avoid terminating processes" +msgstr "Éviter de terminer les processus" + +#: ../Doc/library/multiprocessing.rst:2665 +msgid "" +"Using the :meth:`Process.terminate ` " +"method to stop a process is liable to cause any shared resources (such as " +"locks, semaphores, pipes and queues) currently being used by the process to " +"become broken or unavailable to other processes." +msgstr "" +"Utiliser la méthode :meth:`Process.terminate ` pour stopper un processus risque de casser ou de rendre " +"indisponible aux autres processus des ressources partagées (comme des " +"verrous, sémaphores, tubes et queues) actuellement utilisée par le processus." + +#: ../Doc/library/multiprocessing.rst:2671 +msgid "" +"Therefore it is probably best to only consider using :meth:`Process." +"terminate ` on processes which never use " +"any shared resources." +msgstr "" +"Il est donc probablement préférable de n'utiliser :meth:`Process.terminate " +"` que sur les processus qui n'utilisent " +"jamais de ressources partagées." + +#: ../Doc/library/multiprocessing.rst:2675 +msgid "Joining processes that use queues" +msgstr "Attendre les processus qui utilisent des queues" + +#: ../Doc/library/multiprocessing.rst:2677 +msgid "" +"Bear in mind that a process that has put items in a queue will wait before " +"terminating until all the buffered items are fed by the \"feeder\" thread to " +"the underlying pipe. (The child process can call the :meth:`Queue." +"cancel_join_thread ` method of the " +"queue to avoid this behaviour.)" +msgstr "" +"Gardez à l'esprit qu'un processus qui a placé des éléments dans une queue " +"attendra que tous les éléments mis en tampon soient consommés par le fil " +"d'exécution « consommateur » du tube sous-jacent avant de se terminer. (Le " +"processus enfant peut appeler la méthode :meth:`Queue.cancel_join_thread " +"` de la queue pour éviter ce " +"comportement.)" + +#: ../Doc/library/multiprocessing.rst:2683 +msgid "" +"This means that whenever you use a queue you need to make sure that all " +"items which have been put on the queue will eventually be removed before the " +"process is joined. Otherwise you cannot be sure that processes which have " +"put items on the queue will terminate. Remember also that non-daemonic " +"processes will be joined automatically." +msgstr "" +"Cela signifie que chaque fois que vous utilisez une queue vous devez vous " +"assurer que tous les éléments qui y ont été placés seront effectivement " +"supprimés avant que le processus ne soit attendu. Autrement vous ne pouvez " +"pas être sûr que les processus qui ont placé des éléments dans la queue se " +"termineront. Souvenez-vous aussi que tous les processus non *daemons* seront " +"attendus automatiquement." + +#: ../Doc/library/multiprocessing.rst:2689 +msgid "An example which will deadlock is the following::" +msgstr "L'exemple suivant provoquera un interblocage ::" + +#: ../Doc/library/multiprocessing.rst:2703 +msgid "" +"A fix here would be to swap the last two lines (or simply remove the ``p." +"join()`` line)." +msgstr "" +"Une solution ici serait d'intervertir les deux dernières lignes (ou " +"simplement supprimer la ligne ``p.join()``)." + +#: ../Doc/library/multiprocessing.rst:2706 +msgid "Explicitly pass resources to child processes" +msgstr "Passer explicitement les ressources aux processus fils" + +#: ../Doc/library/multiprocessing.rst:2708 +msgid "" +"On Unix using the *fork* start method, a child process can make use of a " +"shared resource created in a parent process using a global resource. " +"However, it is better to pass the object as an argument to the constructor " +"for the child process." +msgstr "" +"Sous Unix en utilisant la méthode de démarrage *fork*, un processus fils " +"peut utiliser une ressource partagée créée par un processus parent en " +"utilisant une ressource globale. Cependant, il est préférable de passer " +"l'objet en argument au constructeur du processus fils." + +#: ../Doc/library/multiprocessing.rst:2713 +msgid "" +"Apart from making the code (potentially) compatible with Windows and the " +"other start methods this also ensures that as long as the child process is " +"still alive the object will not be garbage collected in the parent process. " +"This might be important if some resource is freed when the object is garbage " +"collected in the parent process." +msgstr "" +"En plus de rendre le code (potentiellement) compatible avec Windows et les " +"autres méthodes de démarrage, cela assure aussi que tant que le processus " +"fils est en vie, l'objet ne sera pas collecté par le ramasse-miettes du " +"processus parent. Cela peut être important si certaines ressources sont " +"libérées quand l'objet est collecté par le ramasse-miettes du processus " +"parent." + +#: ../Doc/library/multiprocessing.rst:2720 +msgid "So for instance ::" +msgstr "Donc par exemple ::" + +#: ../Doc/library/multiprocessing.rst:2732 +msgid "should be rewritten as ::" +msgstr "devrait être réécrit comme ::" + +#: ../Doc/library/multiprocessing.rst:2744 +msgid "Beware of replacing :data:`sys.stdin` with a \"file like object\"" +msgstr "" +"Faire attention à remplacer :data:`sys.stdin` par un objet « *file-like* »" + +#: ../Doc/library/multiprocessing.rst:2746 +msgid ":mod:`multiprocessing` originally unconditionally called::" +msgstr "À l'origine, :mod:`multiprocessing` appelait inconditionnellement ::" + +#: ../Doc/library/multiprocessing.rst:2750 +msgid "" +"in the :meth:`multiprocessing.Process._bootstrap` method --- this resulted " +"in issues with processes-in-processes. This has been changed to::" +msgstr "" +"dans la méthode :meth:`multiprocessing.Process._bootstrap` --- cela " +"provoquait des problèmes avec les processus imbriqués. Cela peut être changé " +"en ::" + +#: ../Doc/library/multiprocessing.rst:2756 +msgid "" +"Which solves the fundamental issue of processes colliding with each other " +"resulting in a bad file descriptor error, but introduces a potential danger " +"to applications which replace :func:`sys.stdin` with a \"file-like object\" " +"with output buffering. This danger is that if multiple processes call :meth:" +"`~io.IOBase.close()` on this file-like object, it could result in the same " +"data being flushed to the object multiple times, resulting in corruption." +msgstr "" +"Qui résout le problème fondamental des collisions entre processus provoquant " +"des erreurs de mauvais descripteurs de fichiers, mais introduit un potentiel " +"danger pour les applications qui remplacent :func:`sys.stdin` avec un " +"« *file-like object* » ayant une sortie *bufferisée*. Ce danger est que si " +"plusieurs processus appellent :meth:`~io.IOBase.close()` sur cet objet *file-" +"like*, cela peut amener les données à être transmises à l'objet à plusieurs " +"reprises, résultant en une corruption." + +#: ../Doc/library/multiprocessing.rst:2763 +msgid "" +"If you write a file-like object and implement your own caching, you can make " +"it fork-safe by storing the pid whenever you append to the cache, and " +"discarding the cache when the pid changes. For example::" +msgstr "" +"Si vous écrivez un objet *file-like* et implémentez votre propre cache, vous " +"pouvez le rendre sûr pour les *forks* en stockant le *pid* chaque fois que " +"vous ajoutez des données au cache, et annulez le cache quand le *pip* " +"change. Par exemple ::" + +#: ../Doc/library/multiprocessing.rst:2775 +msgid "" +"For more information, see :issue:`5155`, :issue:`5313` and :issue:`5331`" +msgstr "" +"Pour plus d'informations, voir :issue:`5155`, :issue:`5313` et :issue:`5331`" + +#: ../Doc/library/multiprocessing.rst:2778 +msgid "The *spawn* and *forkserver* start methods" +msgstr "Les méthodes de démarrage *spawn* et *forkserver*" + +#: ../Doc/library/multiprocessing.rst:2780 +msgid "" +"There are a few extra restriction which don't apply to the *fork* start " +"method." +msgstr "" +"Certaines restrictions ne s'appliquent pas à la méthode de démarrage *fork*." + +#: ../Doc/library/multiprocessing.rst:2783 +msgid "More picklability" +msgstr "Plus de sérialisation" + +#: ../Doc/library/multiprocessing.rst:2785 +msgid "" +"Ensure that all arguments to :meth:`Process.__init__` are picklable. Also, " +"if you subclass :class:`~multiprocessing.Process` then make sure that " +"instances will be picklable when the :meth:`Process.start ` method is called." +msgstr "" +"Assurez-vous que tous les argument de :meth:`Process.__init__` sont " +"sérialisables avec *pickle*. Aussi, si vous héritez de :class:" +"`~multiprocessing.Process`, assurez-vous que toutes les instances sont " +"sérialisables quand la méthode :meth:`Process.start ` est appelée." + +#: ../Doc/library/multiprocessing.rst:2790 +msgid "Global variables" +msgstr "Variables globales" + +#: ../Doc/library/multiprocessing.rst:2792 +msgid "" +"Bear in mind that if code run in a child process tries to access a global " +"variable, then the value it sees (if any) may not be the same as the value " +"in the parent process at the time that :meth:`Process.start ` was called." +msgstr "" +"Gardez en tête que si le code exécuté dans un processus fils essaie " +"d'accéder à une variable globale, alors la valeur qu'il voit (s'il y en a " +"une) pourrait ne pas être la même que la valeur du processus parent au " +"moment même où :meth:`Process.start ` est " +"appelée." + +#: ../Doc/library/multiprocessing.rst:2797 +msgid "" +"However, global variables which are just module level constants cause no " +"problems." +msgstr "" +"Cependant, les variables globales qui sont juste des constantes de modules " +"ne posent pas de problèmes." + +#: ../Doc/library/multiprocessing.rst:2800 +msgid "Safe importing of main module" +msgstr "Importation sûre du module principal" + +#: ../Doc/library/multiprocessing.rst:2802 +msgid "" +"Make sure that the main module can be safely imported by a new Python " +"interpreter without causing unintended side effects (such a starting a new " +"process)." +msgstr "" +"Assurez-vous que le module principal peut être importé en toute sécurité par " +"un nouvel interpréteur Python sans causer d'effets de bord inattendus (comme " +"le démarrage d'un nouveau processus)." + +#: ../Doc/library/multiprocessing.rst:2806 +msgid "" +"For example, using the *spawn* or *forkserver* start method running the " +"following module would fail with a :exc:`RuntimeError`::" +msgstr "" +"Par exemple, utiliser la méthode de démarrage *spawn* ou *forkserver* pour " +"lancer le module suivant échouerait avec une :exc:`RuntimeError` ::" + +#: ../Doc/library/multiprocessing.rst:2818 +msgid "" +"Instead one should protect the \"entry point\" of the program by using ``if " +"__name__ == '__main__':`` as follows::" +msgstr "" +"Vous devriez plutôt protéger le « point d'entrée » du programme en utilisant " +"``if __name__ == '__main__':`` comme suit ::" + +#: ../Doc/library/multiprocessing.rst:2832 +msgid "" +"(The ``freeze_support()`` line can be omitted if the program will be run " +"normally instead of frozen.)" +msgstr "" +"(La ligne ``freeze_support()`` peut être omise si le programme est " +"uniquement lancé normalement et pas gelé.)" + +#: ../Doc/library/multiprocessing.rst:2835 +msgid "" +"This allows the newly spawned Python interpreter to safely import the module " +"and then run the module's ``foo()`` function." +msgstr "" +"Cela permet aux interpréteurs Python fraîchement instanciés d'importer en " +"toute sécurité le module et d'exécution ensuite la fonction ``foo()``." + +#: ../Doc/library/multiprocessing.rst:2838 +msgid "" +"Similar restrictions apply if a pool or manager is created in the main " +"module." +msgstr "" +"Des restrictions similaires s'appliquent si une *pool* ou un gestionnaire " +"est créé dans le module principal." + +#: ../Doc/library/multiprocessing.rst:2845 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/multiprocessing.rst:2847 +msgid "Demonstration of how to create and use customized managers and proxies:" +msgstr "" +"Démonstration de comment créer et utiliser des gestionnaires et mandataires " +"personnalisés :" + +#: ../Doc/library/multiprocessing.rst:2853 +msgid "Using :class:`~multiprocessing.pool.Pool`:" +msgstr "En utilisant :class:`~multiprocessing.pool.Pool` :" + +#: ../Doc/library/multiprocessing.rst:2859 +msgid "" +"An example showing how to use queues to feed tasks to a collection of worker " +"processes and collect the results:" +msgstr "" +"Un exemple montrant comment utiliser des queues pour alimenter en tâches une " +"collection de processus *workers* et collecter les résultats :" diff --git a/library/netdata.po b/library/netdata.po new file mode 100644 index 000000000..021cb4f32 --- /dev/null +++ b/library/netdata.po @@ -0,0 +1,27 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-09-24 22:55+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/netdata.rst:6 +msgid "Internet Data Handling" +msgstr "Traitement des données provenant d'Internet" + +#: ../Doc/library/netdata.rst:8 +msgid "" +"This chapter describes modules which support handling data formats commonly " +"used on the Internet." +msgstr "" +"Ce chapitre décrit les modules qui prennent en charge le traitement des " +"formats de données couramment utilisés sur Internet." diff --git a/library/netrc.po b/library/netrc.po new file mode 100644 index 000000000..192e3990e --- /dev/null +++ b/library/netrc.po @@ -0,0 +1,153 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2019-04-11 18:12+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/netrc.rst:3 +msgid ":mod:`netrc` --- netrc file processing" +msgstr ":mod:`netrc` — traitement de fichier *netrc*" + +#: ../Doc/library/netrc.rst:11 +msgid "**Source code:** :source:`Lib/netrc.py`" +msgstr "**Code source :** :source:`Lib/netrc.py`" + +#: ../Doc/library/netrc.rst:15 +msgid "" +"The :class:`~netrc.netrc` class parses and encapsulates the netrc file " +"format used by the Unix :program:`ftp` program and other FTP clients." +msgstr "" +"La classe :class:`netrc` analyse et encapsule le format de fichier *netrc* " +"utilisé par le programme Unix :program:`ftp` et d'autres clients FTP." + +#: ../Doc/library/netrc.rst:21 +msgid "" +"A :class:`~netrc.netrc` instance or subclass instance encapsulates data " +"from a netrc file. The initialization argument, if present, specifies the " +"file to parse. If no argument is given, the file :file:`.netrc` in the " +"user's home directory -- as determined by :func:`os.path.expanduser` -- will " +"be read. Otherwise, a :exc:`FileNotFoundError` exception will be raised. " +"Parse errors will raise :exc:`NetrcParseError` with diagnostic information " +"including the file name, line number, and terminating token. If no argument " +"is specified on a POSIX system, the presence of passwords in the :file:`." +"netrc` file will raise a :exc:`NetrcParseError` if the file ownership or " +"permissions are insecure (owned by a user other than the user running the " +"process, or accessible for read or write by any other user). This implements " +"security behavior equivalent to that of ftp and other programs that use :" +"file:`.netrc`." +msgstr "" +"Une instance de :class:`~netrc.netrc` ou une instance de sous-classe " +"encapsule les données à partir d'un fichier *netrc*. L'argument " +"d'initialisation, s'il est présent, précise le fichier à analyser. Si aucun " +"argument n'est donné, le fichier :file:`.netrc` dans le répertoire d’accueil " +"de l'utilisateur -- déterminé par :func:`os.path.expanduser` -- est lu. " +"Sinon, l'exception :exc:`FileNotFoundError` sera levée. Les erreurs " +"d'analyse lèveront :exc:`NetrcParseError` avec les informations de " +"diagnostic, y compris le nom de fichier, le numéro de ligne, et le lexème. " +"Si aucun argument n'est spécifié dans un système POSIX, la présence de mots " +"de passe dans le fichier :file:`.netrc` lèvera :exc:`NetrcParseError` si la " +"propriété du fichier ou les permissions ne sont pas sécurisées (propriété " +"d'un utilisateur autre que l'utilisateur exécutant le processus ou " +"accessible en lecture ou en écriture par n'importe quel autre utilisateur). " +"Le niveau de sécurité offert est ainsi équivalent à celui de ftp et d'autres " +"programmes utilisant :file:`netrc`." + +#: ../Doc/library/netrc.rst:35 +msgid "Added the POSIX permission check." +msgstr "Ajout de la vérification d'autorisations POSIX." + +#: ../Doc/library/netrc.rst:37 +msgid "" +":func:`os.path.expanduser` is used to find the location of the :file:`." +"netrc` file when *file* is not passed as argument." +msgstr "" +":func:`os.path.expanduser` est utilisée pour trouver l'emplacement du " +"fichier :file:`netrc` lorsque *file* n'est pas passé en tant qu'argument." + +#: ../Doc/library/netrc.rst:44 +msgid "" +"Exception raised by the :class:`~netrc.netrc` class when syntactical errors " +"are encountered in source text. Instances of this exception provide three " +"interesting attributes: :attr:`msg` is a textual explanation of the error, :" +"attr:`filename` is the name of the source file, and :attr:`lineno` gives the " +"line number on which the error was found." +msgstr "" +"Exception levée par la classe :class:`~netrc.netrc` lorsque des erreurs " +"syntaxiques sont rencontrées dans le texte source. Les instances de cette " +"exception fournissent trois attributs intéressants : :attr:`msg` est une " +"explication textuelle de l'erreur, :attr:`filename` est le nom du fichier " +"source et :attr:`lineno` donne le numéro de la ligne sur laquelle l'erreur a " +"été trouvée." + +#: ../Doc/library/netrc.rst:54 +msgid "netrc Objects" +msgstr "Objets *netrc*" + +#: ../Doc/library/netrc.rst:56 +msgid "A :class:`~netrc.netrc` instance has the following methods:" +msgstr "Une instance :class:`~netrc.netrc` a les méthodes suivantes :" + +#: ../Doc/library/netrc.rst:61 +msgid "" +"Return a 3-tuple ``(login, account, password)`` of authenticators for " +"*host*. If the netrc file did not contain an entry for the given host, " +"return the tuple associated with the 'default' entry. If neither matching " +"host nor default entry is available, return ``None``." +msgstr "" +"Renvoie un triplet ``(login, account, password)`` pour s'authentifier auprès " +"de l'hôte *host*. Si le fichier *netrc* ne contient pas d'entrée pour l'hôte " +"donné, renvoie le tuple associé à l'entrée par défaut. Si aucun hôte " +"correspondant ni aucune entrée par défaut n'est disponible, renvoie ``None``." + +#: ../Doc/library/netrc.rst:69 +msgid "" +"Dump the class data as a string in the format of a netrc file. (This " +"discards comments and may reorder the entries.)" +msgstr "" +"Déverse les données de la classe sous forme de chaîne dans le format d'un " +"fichier *netrc*. (Ceci ignore les commentaires et peut réorganiser les " +"entrées)." + +#: ../Doc/library/netrc.rst:72 +msgid "Instances of :class:`~netrc.netrc` have public instance variables:" +msgstr "" +"Les instances de :class:`~netrc.netrc` ont des variables d'instance " +"publiques :" + +#: ../Doc/library/netrc.rst:77 +msgid "" +"Dictionary mapping host names to ``(login, account, password)`` tuples. The " +"'default' entry, if any, is represented as a pseudo-host by that name." +msgstr "" +"Dictionnaire faisant correspondre les noms d'hôtes dans des tuples ``(login, " +"account, password)``. L'entrée par défaut, le cas échéant, est représentée " +"en tant que pseudo-hôte par ce nom." + +#: ../Doc/library/netrc.rst:83 +msgid "Dictionary mapping macro names to string lists." +msgstr "" +"Dictionnaire faisant correspondre les noms de macro en listes de chaînes." + +#: ../Doc/library/netrc.rst:87 +msgid "" +"Passwords are limited to a subset of the ASCII character set. All ASCII " +"punctuation is allowed in passwords, however, note that whitespace and non-" +"printable characters are not allowed in passwords. This is a limitation of " +"the way the .netrc file is parsed and may be removed in the future." +msgstr "" +"Les mots de passe sont limités à un sous-ensemble du jeu de caractères " +"ASCII. Toute ponctuation ASCII est autorisée dans les mots de passe, " +"cependant notez que les espaces et les caractères non imprimables ne sont " +"pas autorisés dans les mots de passe. C'est une limitation de la façon dont " +"le fichier *.netrc* est analysé et pourra être supprimée à l'avenir." diff --git a/library/nis.po b/library/nis.po new file mode 100644 index 000000000..827d76d8a --- /dev/null +++ b/library/nis.po @@ -0,0 +1,95 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-09-27 15:11+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/nis.rst:3 +msgid ":mod:`nis` --- Interface to Sun's NIS (Yellow Pages)" +msgstr ":mod:`nis` — Interface à Sun's NIS (pages jaunes)" + +#: ../Doc/library/nis.rst:14 +msgid "" +"The :mod:`nis` module gives a thin wrapper around the NIS library, useful " +"for central administration of several hosts." +msgstr "" +"Le module :mod:`nis` est une simple abstraction de la librairie NIS, utile " +"pour l'administration centralisée de plusieurs hôtes." + +#: ../Doc/library/nis.rst:17 +msgid "" +"Because NIS exists only on Unix systems, this module is only available for " +"Unix." +msgstr "" +"Du fait que NIS existe seulement sur les systèmes Unix, ce module est " +"seulement disponible pour Unix." + +#: ../Doc/library/nis.rst:19 +msgid "The :mod:`nis` module defines the following functions:" +msgstr "Le module :mod:`nis` définit les instructions suivantes :" + +#: ../Doc/library/nis.rst:24 +msgid "" +"Return the match for *key* in map *mapname*, or raise an error (:exc:`nis." +"error`) if there is none. Both should be strings, *key* is 8-bit clean. " +"Return value is an arbitrary array of bytes (may contain ``NULL`` and other " +"joys)." +msgstr "" +"Renvoie la valeur correspondante à *key* dans carte *mapname*, ou lève une " +"erreur (:exc:`nis.error`) s'il n'y en a pas. Toutes les deux doivent être " +"des chaînes, *key* doit être une chaîne ASCII. La valeur renvoyée est un " +"dictionnaire arbitraire d'octets (pourrait contenir ``NULL`` et autres " +"joyeusetés)." + +#: ../Doc/library/nis.rst:29 ../Doc/library/nis.rst:41 +msgid "Note that *mapname* is first checked if it is an alias to another name." +msgstr "" +"Notez que *mapname* est vérifié la première fois si c'est un alias d'un " +"autre nom." + +#: ../Doc/library/nis.rst:31 ../Doc/library/nis.rst:43 +#: ../Doc/library/nis.rst:51 +msgid "" +"The *domain* argument allows overriding the NIS domain used for the lookup. " +"If unspecified, lookup is in the default NIS domain." +msgstr "" +"L'argument *domain* permet de passer outre le domaine NIS utilisé pour les " +"recherches. Lorsqu'il n'est pas spécifié, recherche est dans le domaine NIS " +"défaut." + +#: ../Doc/library/nis.rst:37 +msgid "" +"Return a dictionary mapping *key* to *value* such that ``match(key, " +"mapname)==value``. Note that both keys and values of the dictionary are " +"arbitrary arrays of bytes." +msgstr "" +"Renvoie un dictionnaire qui associe *key* à *value* tel que ``match(key, " +"mapname)==value``. Notez que les clés comme les valeurs peuvent contenir des " +"séquences arbitraires d'octets." + +#: ../Doc/library/nis.rst:49 +msgid "Return a list of all valid maps." +msgstr "Renvoie la liste de toutes les correspondances valides." + +#: ../Doc/library/nis.rst:57 +msgid "Return the system default NIS domain." +msgstr "Renvoie le domaine NIS par défaut du système." + +#: ../Doc/library/nis.rst:60 +msgid "The :mod:`nis` module defines the following exception:" +msgstr "Le module :mod:`nis` définit les exceptions suivantes :" + +#: ../Doc/library/nis.rst:64 +msgid "An error raised when a NIS function returns an error code." +msgstr "Une erreur apparaît quand une fonction NIS renvoie un code d'erreur." diff --git a/library/nntplib.po b/library/nntplib.po new file mode 100644 index 000000000..600b8fbd9 --- /dev/null +++ b/library/nntplib.po @@ -0,0 +1,539 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-03 16:57+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/nntplib.rst:2 +msgid ":mod:`nntplib` --- NNTP protocol client" +msgstr "" + +#: ../Doc/library/nntplib.rst:7 +msgid "**Source code:** :source:`Lib/nntplib.py`" +msgstr "**Code source :** :source:`Lib/nntplib.py`" + +#: ../Doc/library/nntplib.rst:15 +msgid "" +"This module defines the class :class:`NNTP` which implements the client side " +"of the Network News Transfer Protocol. It can be used to implement a news " +"reader or poster, or automated news processors. It is compatible with :rfc:" +"`3977` as well as the older :rfc:`977` and :rfc:`2980`." +msgstr "" + +#: ../Doc/library/nntplib.rst:20 +msgid "" +"Here are two small examples of how it can be used. To list some statistics " +"about a newsgroup and print the subjects of the last 10 articles::" +msgstr "" + +#: ../Doc/library/nntplib.rst:44 +msgid "" +"To post an article from a binary file (this assumes that the article has " +"valid headers, and that you have right to post on the particular newsgroup)::" +msgstr "" + +#: ../Doc/library/nntplib.rst:54 +msgid "The module itself defines the following classes:" +msgstr "" + +#: ../Doc/library/nntplib.rst:59 +msgid "" +"Return a new :class:`NNTP` object, representing a connection to the NNTP " +"server running on host *host*, listening at port *port*. An optional " +"*timeout* can be specified for the socket connection. If the optional *user* " +"and *password* are provided, or if suitable credentials are present in :file:" +"`/.netrc` and the optional flag *usenetrc* is true, the ``AUTHINFO USER`` " +"and ``AUTHINFO PASS`` commands are used to identify and authenticate the " +"user to the server. If the optional flag *readermode* is true, then a " +"``mode reader`` command is sent before authentication is performed. Reader " +"mode is sometimes necessary if you are connecting to an NNTP server on the " +"local machine and intend to call reader-specific commands, such as " +"``group``. If you get unexpected :exc:`NNTPPermanentError`\\ s, you might " +"need to set *readermode*. The :class:`NNTP` class supports the :keyword:" +"`with` statement to unconditionally consume :exc:`OSError` exceptions and to " +"close the NNTP connection when done, e.g.:" +msgstr "" + +#: ../Doc/library/nntplib.rst:83 +msgid "*usenetrc* is now ``False`` by default." +msgstr "" + +#: ../Doc/library/nntplib.rst:86 +msgid "Support for the :keyword:`with` statement was added." +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." + +#: ../Doc/library/nntplib.rst:91 +msgid "" +"Return a new :class:`NNTP_SSL` object, representing an encrypted connection " +"to the NNTP server running on host *host*, listening at port *port*. :class:" +"`NNTP_SSL` objects have the same methods as :class:`NNTP` objects. If " +"*port* is omitted, port 563 (NNTPS) is used. *ssl_context* is also optional, " +"and is a :class:`~ssl.SSLContext` object. Please read :ref:`ssl-security` " +"for best practices. All other parameters behave the same as for :class:" +"`NNTP`." +msgstr "" + +#: ../Doc/library/nntplib.rst:99 +msgid "" +"Note that SSL-on-563 is discouraged per :rfc:`4642`, in favor of STARTTLS as " +"described below. However, some servers only support the former." +msgstr "" + +#: ../Doc/library/nntplib.rst:105 +msgid "" +"The class now supports hostname check with :attr:`ssl.SSLContext." +"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +msgstr "" + +#: ../Doc/library/nntplib.rst:112 +msgid "" +"Derived from the standard exception :exc:`Exception`, this is the base class " +"for all exceptions raised by the :mod:`nntplib` module. Instances of this " +"class have the following attribute:" +msgstr "" + +#: ../Doc/library/nntplib.rst:118 +msgid "The response of the server if available, as a :class:`str` object." +msgstr "" + +#: ../Doc/library/nntplib.rst:123 +msgid "Exception raised when an unexpected reply is received from the server." +msgstr "" + +#: ../Doc/library/nntplib.rst:128 +msgid "" +"Exception raised when a response code in the range 400--499 is received." +msgstr "" + +#: ../Doc/library/nntplib.rst:133 +msgid "" +"Exception raised when a response code in the range 500--599 is received." +msgstr "" + +#: ../Doc/library/nntplib.rst:138 +msgid "" +"Exception raised when a reply is received from the server that does not " +"begin with a digit in the range 1--5." +msgstr "" + +#: ../Doc/library/nntplib.rst:144 +msgid "Exception raised when there is some error in the response data." +msgstr "" + +#: ../Doc/library/nntplib.rst:150 +msgid "NNTP Objects" +msgstr "" + +#: ../Doc/library/nntplib.rst:152 +msgid "" +"When connected, :class:`NNTP` and :class:`NNTP_SSL` objects support the " +"following methods and attributes." +msgstr "" + +#: ../Doc/library/nntplib.rst:156 +msgid "Attributes" +msgstr "" + +#: ../Doc/library/nntplib.rst:160 +msgid "" +"An integer representing the version of the NNTP protocol supported by the " +"server. In practice, this should be ``2`` for servers advertising :rfc:" +"`3977` compliance and ``1`` for others." +msgstr "" + +#: ../Doc/library/nntplib.rst:168 +msgid "" +"A string describing the software name and version of the NNTP server, or :" +"const:`None` if not advertised by the server." +msgstr "" + +#: ../Doc/library/nntplib.rst:174 +msgid "Methods" +msgstr "Méthodes" + +#: ../Doc/library/nntplib.rst:176 +msgid "" +"The *response* that is returned as the first item in the return tuple of " +"almost all methods is the server's response: a string beginning with a three-" +"digit code. If the server's response indicates an error, the method raises " +"one of the above exceptions." +msgstr "" + +#: ../Doc/library/nntplib.rst:181 +msgid "" +"Many of the following methods take an optional keyword-only argument *file*. " +"When the *file* argument is supplied, it must be either a :term:`file " +"object` opened for binary writing, or the name of an on-disk file to be " +"written to. The method will then write any data returned by the server " +"(except for the response line and the terminating dot) to the file; any list " +"of lines, tuples or objects that the method normally returns will be empty." +msgstr "" + +#: ../Doc/library/nntplib.rst:188 +msgid "" +"Many of the following methods have been reworked and fixed, which makes them " +"incompatible with their 3.1 counterparts." +msgstr "" + +#: ../Doc/library/nntplib.rst:195 +msgid "" +"Send a ``QUIT`` command and close the connection. Once this method has been " +"called, no other methods of the NNTP object should be called." +msgstr "" + +#: ../Doc/library/nntplib.rst:201 +msgid "" +"Return the welcome message sent by the server in reply to the initial " +"connection. (This message sometimes contains disclaimers or help " +"information that may be relevant to the user.)" +msgstr "" + +#: ../Doc/library/nntplib.rst:208 +msgid "" +"Return the :rfc:`3977` capabilities advertised by the server, as a :class:" +"`dict` instance mapping capability names to (possibly empty) lists of " +"values. On legacy servers which don't understand the ``CAPABILITIES`` " +"command, an empty dictionary is returned instead." +msgstr "" + +#: ../Doc/library/nntplib.rst:222 +msgid "" +"Send ``AUTHINFO`` commands with the user name and password. If *user* and " +"*password* are ``None`` and *usenetrc* is true, credentials from ``~/." +"netrc`` will be used if possible." +msgstr "" + +#: ../Doc/library/nntplib.rst:226 +msgid "" +"Unless intentionally delayed, login is normally performed during the :class:" +"`NNTP` object initialization and separately calling this function is " +"unnecessary. To force authentication to be delayed, you must not set *user* " +"or *password* when creating the object, and must set *usenetrc* to False." +msgstr "" + +#: ../Doc/library/nntplib.rst:237 +msgid "" +"Send a ``STARTTLS`` command. This will enable encryption on the NNTP " +"connection. The *context* argument is optional and should be a :class:`ssl." +"SSLContext` object. Please read :ref:`ssl-security` for best practices." +msgstr "" + +#: ../Doc/library/nntplib.rst:242 +msgid "" +"Note that this may not be done after authentication information has been " +"transmitted, and authentication occurs by default if possible during a :" +"class:`NNTP` object initialization. See :meth:`NNTP.login` for information " +"on suppressing this behavior." +msgstr "" + +#: ../Doc/library/nntplib.rst:249 +msgid "" +"The method now supports hostname check with :attr:`ssl.SSLContext." +"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +msgstr "" + +#: ../Doc/library/nntplib.rst:256 +msgid "" +"Send a ``NEWGROUPS`` command. The *date* argument should be a :class:" +"`datetime.date` or :class:`datetime.datetime` object. Return a pair " +"``(response, groups)`` where *groups* is a list representing the groups that " +"are new since the given *date*. If *file* is supplied, though, then *groups* " +"will be empty." +msgstr "" + +#: ../Doc/library/nntplib.rst:272 +msgid "" +"Send a ``NEWNEWS`` command. Here, *group* is a group name or ``'*'``, and " +"*date* has the same meaning as for :meth:`newgroups`. Return a pair " +"``(response, articles)`` where *articles* is a list of message ids." +msgstr "" + +#: ../Doc/library/nntplib.rst:276 +msgid "This command is frequently disabled by NNTP server administrators." +msgstr "" + +#: ../Doc/library/nntplib.rst:281 +msgid "" +"Send a ``LIST`` or ``LIST ACTIVE`` command. Return a pair ``(response, " +"list)`` where *list* is a list of tuples representing all the groups " +"available from this NNTP server, optionally matching the pattern string " +"*group_pattern*. Each tuple has the form ``(group, last, first, flag)``, " +"where *group* is a group name, *last* and *first* are the last and first " +"article numbers, and *flag* usually takes one of these values:" +msgstr "" + +#: ../Doc/library/nntplib.rst:289 +msgid "``y``: Local postings and articles from peers are allowed." +msgstr "" + +#: ../Doc/library/nntplib.rst:290 +msgid "``m``: The group is moderated and all postings must be approved." +msgstr "" + +#: ../Doc/library/nntplib.rst:291 +msgid "``n``: No local postings are allowed, only articles from peers." +msgstr "" + +#: ../Doc/library/nntplib.rst:292 +msgid "``j``: Articles from peers are filed in the junk group instead." +msgstr "" + +#: ../Doc/library/nntplib.rst:293 +msgid "``x``: No local postings, and articles from peers are ignored." +msgstr "" + +#: ../Doc/library/nntplib.rst:294 +msgid "``=foo.bar``: Articles are filed in the ``foo.bar`` group instead." +msgstr "" + +#: ../Doc/library/nntplib.rst:296 +msgid "" +"If *flag* has another value, then the status of the newsgroup should be " +"considered unknown." +msgstr "" + +#: ../Doc/library/nntplib.rst:299 +msgid "" +"This command can return very large results, especially if *group_pattern* is " +"not specified. It is best to cache the results offline unless you really " +"need to refresh them." +msgstr "" + +#: ../Doc/library/nntplib.rst:303 +msgid "*group_pattern* was added." +msgstr "" + +#: ../Doc/library/nntplib.rst:309 +msgid "" +"Send a ``LIST NEWSGROUPS`` command, where *grouppattern* is a wildmat string " +"as specified in :rfc:`3977` (it's essentially the same as DOS or UNIX shell " +"wildcard strings). Return a pair ``(response, descriptions)``, where " +"*descriptions* is a dictionary mapping group names to textual descriptions." +msgstr "" + +#: ../Doc/library/nntplib.rst:323 +msgid "" +"Get a description for a single group *group*. If more than one group " +"matches (if 'group' is a real wildmat string), return the first match. If " +"no group matches, return an empty string." +msgstr "" + +#: ../Doc/library/nntplib.rst:327 +msgid "" +"This elides the response code from the server. If the response code is " +"needed, use :meth:`descriptions`." +msgstr "" + +#: ../Doc/library/nntplib.rst:333 +msgid "" +"Send a ``GROUP`` command, where *name* is the group name. The group is " +"selected as the current group, if it exists. Return a tuple ``(response, " +"count, first, last, name)`` where *count* is the (estimated) number of " +"articles in the group, *first* is the first article number in the group, " +"*last* is the last article number in the group, and *name* is the group name." +msgstr "" + +#: ../Doc/library/nntplib.rst:343 +msgid "" +"Send an ``OVER`` command, or an ``XOVER`` command on legacy servers. " +"*message_spec* can be either a string representing a message id, or a " +"``(first, last)`` tuple of numbers indicating a range of articles in the " +"current group, or a ``(first, None)`` tuple indicating a range of articles " +"starting from *first* to the last article in the current group, or :const:" +"`None` to select the current article in the current group." +msgstr "" + +#: ../Doc/library/nntplib.rst:350 +msgid "" +"Return a pair ``(response, overviews)``. *overviews* is a list of " +"``(article_number, overview)`` tuples, one for each article selected by " +"*message_spec*. Each *overview* is a dictionary with the same number of " +"items, but this number depends on the server. These items are either " +"message headers (the key is then the lower-cased header name) or metadata " +"items (the key is then the metadata name prepended with ``\":\"``). The " +"following items are guaranteed to be present by the NNTP specification:" +msgstr "" + +#: ../Doc/library/nntplib.rst:358 +msgid "" +"the ``subject``, ``from``, ``date``, ``message-id`` and ``references`` " +"headers" +msgstr "" + +#: ../Doc/library/nntplib.rst:360 +msgid "" +"the ``:bytes`` metadata: the number of bytes in the entire raw article " +"(including headers and body)" +msgstr "" + +#: ../Doc/library/nntplib.rst:362 +msgid "the ``:lines`` metadata: the number of lines in the article body" +msgstr "" + +#: ../Doc/library/nntplib.rst:364 +msgid "" +"The value of each item is either a string, or :const:`None` if not present." +msgstr "" + +#: ../Doc/library/nntplib.rst:366 +msgid "" +"It is advisable to use the :func:`decode_header` function on header values " +"when they may contain non-ASCII characters::" +msgstr "" + +#: ../Doc/library/nntplib.rst:386 +msgid "" +"Send a ``HELP`` command. Return a pair ``(response, list)`` where *list* is " +"a list of help strings." +msgstr "" + +#: ../Doc/library/nntplib.rst:392 +msgid "" +"Send a ``STAT`` command, where *message_spec* is either a message id " +"(enclosed in ``'<'`` and ``'>'``) or an article number in the current group. " +"If *message_spec* is omitted or :const:`None`, the current article in the " +"current group is considered. Return a triple ``(response, number, id)`` " +"where *number* is the article number and *id* is the message id." +msgstr "" + +#: ../Doc/library/nntplib.rst:406 +msgid "Send a ``NEXT`` command. Return as for :meth:`.stat`." +msgstr "" + +#: ../Doc/library/nntplib.rst:411 +msgid "Send a ``LAST`` command. Return as for :meth:`.stat`." +msgstr "" + +#: ../Doc/library/nntplib.rst:416 +msgid "" +"Send an ``ARTICLE`` command, where *message_spec* has the same meaning as " +"for :meth:`.stat`. Return a tuple ``(response, info)`` where *info* is a :" +"class:`~collections.namedtuple` with three attributes *number*, *message_id* " +"and *lines* (in that order). *number* is the article number in the group " +"(or 0 if the information is not available), *message_id* the message id as a " +"string, and *lines* a list of lines (without terminating newlines) " +"comprising the raw message including headers and body." +msgstr "" + +#: ../Doc/library/nntplib.rst:441 +msgid "" +"Same as :meth:`article()`, but sends a ``HEAD`` command. The *lines* " +"returned (or written to *file*) will only contain the message headers, not " +"the body." +msgstr "" + +#: ../Doc/library/nntplib.rst:448 +msgid "" +"Same as :meth:`article()`, but sends a ``BODY`` command. The *lines* " +"returned (or written to *file*) will only contain the message body, not the " +"headers." +msgstr "" + +#: ../Doc/library/nntplib.rst:455 +msgid "" +"Post an article using the ``POST`` command. The *data* argument is either " +"a :term:`file object` opened for binary reading, or any iterable of bytes " +"objects (representing raw lines of the article to be posted). It should " +"represent a well-formed news article, including the required headers. The :" +"meth:`post` method automatically escapes lines beginning with ``.`` and " +"appends the termination line." +msgstr "" + +#: ../Doc/library/nntplib.rst:462 +msgid "" +"If the method succeeds, the server's response is returned. If the server " +"refuses posting, a :class:`NNTPReplyError` is raised." +msgstr "" + +#: ../Doc/library/nntplib.rst:468 +msgid "" +"Send an ``IHAVE`` command. *message_id* is the id of the message to send to " +"the server (enclosed in ``'<'`` and ``'>'``). The *data* parameter and the " +"return value are the same as for :meth:`post()`." +msgstr "" + +#: ../Doc/library/nntplib.rst:475 +msgid "" +"Return a pair ``(response, date)``. *date* is a :class:`~datetime.datetime` " +"object containing the current date and time of the server." +msgstr "" + +#: ../Doc/library/nntplib.rst:481 +msgid "Send a ``SLAVE`` command. Return the server's *response*." +msgstr "" + +#: ../Doc/library/nntplib.rst:486 +msgid "" +"Set the instance's debugging level. This controls the amount of debugging " +"output printed. The default, ``0``, produces no debugging output. A value " +"of ``1`` produces a moderate amount of debugging output, generally a single " +"line per request or response. A value of ``2`` or higher produces the " +"maximum amount of debugging output, logging each line sent and received on " +"the connection (including message text)." +msgstr "" + +#: ../Doc/library/nntplib.rst:494 +msgid "" +"The following are optional NNTP extensions defined in :rfc:`2980`. Some of " +"them have been superseded by newer commands in :rfc:`3977`." +msgstr "" + +#: ../Doc/library/nntplib.rst:500 +msgid "" +"Send an ``XHDR`` command. The *hdr* argument is a header keyword, e.g. " +"``'subject'``. The *str* argument should have the form ``'first-last'`` " +"where *first* and *last* are the first and last article numbers to search. " +"Return a pair ``(response, list)``, where *list* is a list of pairs ``(id, " +"text)``, where *id* is an article number (as a string) and *text* is the " +"text of the requested header for that article. If the *file* parameter is " +"supplied, then the output of the ``XHDR`` command is stored in a file. If " +"*file* is a string, then the method will open a file with that name, write " +"to it then close it. If *file* is a :term:`file object`, then it will start " +"calling :meth:`write` on it to store the lines of the command output. If " +"*file* is supplied, then the returned *list* is an empty list." +msgstr "" + +#: ../Doc/library/nntplib.rst:515 +msgid "" +"Send an ``XOVER`` command. *start* and *end* are article numbers delimiting " +"the range of articles to select. The return value is the same of for :meth:" +"`over()`. It is recommended to use :meth:`over()` instead, since it will " +"automatically use the newer ``OVER`` command if available." +msgstr "" + +#: ../Doc/library/nntplib.rst:524 +msgid "" +"Return a pair ``(resp, path)``, where *path* is the directory path to the " +"article with message ID *id*. Most of the time, this extension is not " +"enabled by NNTP server administrators." +msgstr "" + +#: ../Doc/library/nntplib.rst:528 +msgid "The XPATH extension is not actively used." +msgstr "" + +#: ../Doc/library/nntplib.rst:550 +msgid "Utility functions" +msgstr "Fonctions utilitaires" + +#: ../Doc/library/nntplib.rst:552 +msgid "The module also defines the following utility function:" +msgstr "" + +#: ../Doc/library/nntplib.rst:557 +msgid "" +"Decode a header value, un-escaping any escaped non-ASCII characters. " +"*header_str* must be a :class:`str` object. The unescaped value is " +"returned. Using this function is recommended to display some headers in a " +"human readable form::" +msgstr "" diff --git a/library/numbers.po b/library/numbers.po new file mode 100644 index 000000000..6d57f351c --- /dev/null +++ b/library/numbers.po @@ -0,0 +1,263 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2019-05-30 23:41+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/numbers.rst:2 +msgid ":mod:`numbers` --- Numeric abstract base classes" +msgstr ":mod:`numbers` — Classes de base abstraites numériques" + +#: ../Doc/library/numbers.rst:7 +msgid "**Source code:** :source:`Lib/numbers.py`" +msgstr "**Code source :** :source:`Lib/numbers.py`" + +#: ../Doc/library/numbers.rst:11 +msgid "" +"The :mod:`numbers` module (:pep:`3141`) defines a hierarchy of numeric :term:" +"`abstract base classes ` which progressively define " +"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` 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:18 +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:23 +msgid "The numeric tower" +msgstr "La tour numérique" + +#: ../Doc/library/numbers.rst:27 +msgid "" +"Subclasses of this type describe complex numbers and include the operations " +"that work on the built-in :class:`complex` type. These are: conversions to :" +"class:`complex` and :class:`bool`, :attr:`.real`, :attr:`.imag`, ``+``, ``-" +"``, ``*``, ``/``, :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:35 +msgid "Abstract. Retrieves the real component of this number." +msgstr "Abstrait. Récupère la partie réelle de ce nombre." + +#: ../Doc/library/numbers.rst:39 +msgid "Abstract. Retrieves the imaginary component of this number." +msgstr "Abstrait. Retrouve la partie imaginaire de ce nombre." + +#: ../Doc/library/numbers.rst:43 +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:48 +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:51 +msgid "" +"In short, those are: a conversion to :class:`float`, :func:`math.trunc`, :" +"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:55 +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:61 +msgid "" +"Subtypes :class:`Real` and adds :attr:`~Rational.numerator` and :attr:" +"`~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:68 ../Doc/library/numbers.rst:72 +msgid "Abstract." +msgstr "Abstrait." + +#: ../Doc/library/numbers.rst:77 +msgid "" +"Subtypes :class:`Rational` and adds a conversion to :class:`int`. Provides " +"defaults for :func:`float`, :attr:`~Rational.numerator`, and :attr:" +"`~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:84 +msgid "Notes for type implementors" +msgstr "Notes pour implémenter des types" + +#: ../Doc/library/numbers.rst:86 +msgid "" +"Implementors should be careful to make equal numbers equal and hash them to " +"the same values. This may be subtle if there are two different extensions of " +"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:105 +msgid "Adding More Numeric ABCs" +msgstr "Ajouter plus d'ABC numériques" + +#: ../Doc/library/numbers.rst:107 +msgid "" +"There are, of course, more possible ABCs for numbers, and this would be a " +"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:119 +msgid "Implementing the arithmetic operations" +msgstr "Implémentation des opérations arithmétiques" + +#: ../Doc/library/numbers.rst:121 +msgid "" +"We want to implement the arithmetic operations so that mixed-mode operations " +"either call an implementation whose author knew about the types of both " +"arguments, or convert both to the nearest built in type and do the operation " +"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:152 +msgid "" +"There are 5 different cases for a mixed-type operation on subclasses of :" +"class:`Complex`. I'll refer to all of the above code that doesn't refer to " +"``MyIntegral`` and ``OtherTypeIKnowAbout`` as \"boilerplate\". ``a`` will be " +"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:159 +msgid "If ``A`` defines an :meth:`__add__` which accepts ``b``, all is well." +msgstr "Si ``A`` définit une :meth:`__add__` qui accepte ``b``, tout va bien." + +#: ../Doc/library/numbers.rst:161 +msgid "" +"If ``A`` falls back to the boilerplate code, and it were to return a value " +"from :meth:`__add__`, we'd miss the possibility that ``B`` defines a more " +"intelligent :meth:`__radd__`, so the boilerplate should return :const:" +"`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:167 +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:169 +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:172 +msgid "" +"If ``B <: A``, Python tries ``B.__radd__`` before ``A.__add__``. This is ok, " +"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:177 +msgid "" +"If ``A <: Complex`` and ``B <: Real`` without sharing any other knowledge, " +"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:182 +msgid "" +"Because most of the operations on any given type will be very similar, it " +"can be useful to define a helper function which generates the forward and " +"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 ::" diff --git a/library/numeric.po b/library/numeric.po new file mode 100644 index 000000000..a8a566123 --- /dev/null +++ b/library/numeric.po @@ -0,0 +1,40 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-02-15 00:45+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/numeric.rst:6 +msgid "Numeric and Mathematical Modules" +msgstr "Modules numériques et mathématiques" + +#: ../Doc/library/numeric.rst:8 +msgid "" +"The modules described in this chapter provide numeric and math-related " +"functions and data types. The :mod:`numbers` module defines an abstract " +"hierarchy of numeric types. The :mod:`math` and :mod:`cmath` modules contain " +"various mathematical functions for floating-point and complex numbers. The :" +"mod:`decimal` module supports exact representations of decimal numbers, " +"using arbitrary precision arithmetic." +msgstr "" +"Les modules documentés dans ce chapitre fournissent des fonctions et des " +"types autour des nombres et des mathématiques. Le module :mod:`numbers` " +"définit une hiérarchie abstraite des types numériques. Les modules :mod:" +"`math` et :mod:`cmath` contiennent des fonctions mathématiques pour les " +"nombres à virgule flottante ou les nombres complexes. Le module :mod:" +"`decimal` permet de représenter des nombres décimaux de manière exacte, et " +"utilise une arithmétique de précision arbitraire." + +#: ../Doc/library/numeric.rst:15 +msgid "The following modules are documented in this chapter:" +msgstr "Les modules suivants sont documentés dans ce chapitre :" diff --git a/library/operator.po b/library/operator.po new file mode 100644 index 000000000..ff24b8e55 --- /dev/null +++ b/library/operator.po @@ -0,0 +1,890 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2018-12-11 22:46+0100\n" +"Last-Translator: Antoine Wecxsteen\n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/library/operator.rst:2 +msgid ":mod:`operator` --- Standard operators as functions" +msgstr ":mod:`operator` — Opérateurs standards en tant que fonctions" + +#: ../Doc/library/operator.rst:9 +msgid "**Source code:** :source:`Lib/operator.py`" +msgstr "**Code source :** :source:`Lib/operator.py`" + +#: ../Doc/library/operator.rst:18 +msgid "" +"The :mod:`operator` module exports a set of efficient functions " +"corresponding to the intrinsic operators of Python. For example, ``operator." +"add(x, y)`` is equivalent to the expression ``x+y``. Many function names are " +"those used for special methods, without the double underscores. For " +"backward compatibility, many of these have a variant with the double " +"underscores kept. The variants without the double underscores are preferred " +"for clarity." +msgstr "" +"Le module :mod:`operator` fournit un ensemble de fonctions correspondant aux " +"opérateurs natifs de Python. Par exemple, ``operator.add(x, y)`` correspond " +"à l'expression ``x+y``. Les noms de la plupart de ces fonctions sont ceux " +"utilisés par les méthodes spéciales, sans les doubles tirets bas. Pour " +"assurer la rétrocompatibilité, la plupart de ces noms ont une variante " +"*avec* les doubles tirets bas ; la forme simple est cependant à privilégier " +"pour des raisons de clarté." + +#: ../Doc/library/operator.rst:25 +msgid "" +"The functions fall into categories that perform object comparisons, logical " +"operations, mathematical operations and sequence operations." +msgstr "" +"Les fonctions sont divisées en différentes catégories selon l'opération " +"effectuée : comparaison entre objets, opérations logiques, opérations " +"mathématiques ou opérations sur séquences." + +#: ../Doc/library/operator.rst:28 +msgid "" +"The object comparison functions are useful for all objects, and are named " +"after the rich comparison operators they support:" +msgstr "" +"Les fonctions de comparaison s'appliquent à tous les objets, et leur nom " +"vient des opérateurs de comparaison qu'elles implémentent :" + +#: ../Doc/library/operator.rst:45 +msgid "" +"Perform \"rich comparisons\" between *a* and *b*. Specifically, ``lt(a, b)`` " +"is equivalent to ``a < b``, ``le(a, b)`` is equivalent to ``a <= b``, " +"``eq(a, b)`` is equivalent to ``a == b``, ``ne(a, b)`` is equivalent to ``a !" +"= b``, ``gt(a, b)`` is equivalent to ``a > b`` and ``ge(a, b)`` is " +"equivalent to ``a >= b``. Note that these functions can return any value, " +"which may or may not be interpretable as a Boolean value. See :ref:" +"`comparisons` for more information about rich comparisons." +msgstr "" +"Effectue une « comparaison riche » entre *a* et *b*. Plus précisément, " +"``lt(a, b)`` équivaut à ``a < b``, ``le(a, b)`` équivaut à ``a <= b``, " +"``eq(a, b)`` équivaut à ``a == b``, ``ne(a, b)`` équivaut à ``a != b``, " +"``gt(a, b)`` équivaut à ``a > b`` et ``ge(a, b)`` équivaut à ``a >= b``. " +"Notez que ces fonctions peuvent renvoyer n'importe quelle valeur, " +"convertible ou non en booléen. Voir :ref:`comparisons` pour plus " +"d'informations sur les méthodes de comparaison riches." + +#: ../Doc/library/operator.rst:54 +msgid "" +"The logical operations are also generally applicable to all objects, and " +"support truth tests, identity tests, and boolean operations:" +msgstr "" +"En général, les opérations logiques s'appliquent aussi à tous les objets et " +"implémentent les tests de vérité, d'identité et les opérations booléennes :" + +#: ../Doc/library/operator.rst:61 +msgid "" +"Return the outcome of :keyword:`not` *obj*. (Note that there is no :meth:" +"`__not__` method for object instances; only the interpreter core defines " +"this operation. The result is affected by the :meth:`__bool__` and :meth:" +"`__len__` methods.)" +msgstr "" +"Renvoie le résultat de :keyword:`not` *obj*. (Notez qu'il n'existe pas de " +"méthode :meth:`__not__` pour les instances d'objet; seul le cœur de " +"l'interpréteur définit cette opération. Le résultat dépend des méthodes :" +"meth:`__bool__` et :meth:`__len__`.)" + +#: ../Doc/library/operator.rst:69 +msgid "" +"Return :const:`True` if *obj* is true, and :const:`False` otherwise. This " +"is equivalent to using the :class:`bool` constructor." +msgstr "" +"Renvoie :const:`True` si *obj* est vrai, et :const:`False` dans le cas " +"contraire. Équivaut à utiliser le constructeur de :class:`bool`." + +#: ../Doc/library/operator.rst:75 +msgid "Return ``a is b``. Tests object identity." +msgstr "" +"Renvoie ``a is b``. Vérifie si les deux paramètres sont le même objet." + +#: ../Doc/library/operator.rst:80 +msgid "Return ``a is not b``. Tests object identity." +msgstr "" +"Renvoie ``a is not b``. Vérifie si les deux paramètres sont deux objets " +"distincts." + +#: ../Doc/library/operator.rst:83 +msgid "The mathematical and bitwise operations are the most numerous:" +msgstr "Les opérations mathématiques ou bit à bit sont les plus nombreuses :" + +#: ../Doc/library/operator.rst:89 +msgid "Return the absolute value of *obj*." +msgstr "Renvoie la valeur absolue de *obj*." + +#: ../Doc/library/operator.rst:95 +msgid "Return ``a + b``, for *a* and *b* numbers." +msgstr "Renvoie ``a + b`` où *a* et *b* sont des nombres." + +#: ../Doc/library/operator.rst:101 +msgid "Return the bitwise and of *a* and *b*." +msgstr "Renvoie le *et* bit à bit de *a* et *b*." + +#: ../Doc/library/operator.rst:107 +msgid "Return ``a // b``." +msgstr "Renvoie ``a // b``." + +#: ../Doc/library/operator.rst:113 +msgid "Return *a* converted to an integer. Equivalent to ``a.__index__()``." +msgstr "Renvoie *a* converti en entier. Équivaut à ``a.__index__()``." + +#: ../Doc/library/operator.rst:121 +msgid "" +"Return the bitwise inverse of the number *obj*. This is equivalent to " +"``~obj``." +msgstr "Renvoie l'inverse bit à bit du nombre *obj*. Équivaut à ``~obj``." + +#: ../Doc/library/operator.rst:127 +msgid "Return *a* shifted left by *b*." +msgstr "Renvoie le décalage de *b* bits vers la gauche de *a*." + +#: ../Doc/library/operator.rst:133 +msgid "Return ``a % b``." +msgstr "Renvoie``a % b``." + +#: ../Doc/library/operator.rst:139 +msgid "Return ``a * b``, for *a* and *b* numbers." +msgstr "Renvoie ``a * b`` où *a* et *b* sont des nombres." + +#: ../Doc/library/operator.rst:145 +msgid "Return ``a @ b``." +msgstr "Renvoie ``a @ b``." + +#: ../Doc/library/operator.rst:153 +msgid "Return *obj* negated (``-obj``)." +msgstr "Renvoie l'opposé de *obj* (``-obj``)." + +#: ../Doc/library/operator.rst:159 +msgid "Return the bitwise or of *a* and *b*." +msgstr "Renvoie le *ou* bit à bit de *a* et *b*." + +#: ../Doc/library/operator.rst:165 +msgid "Return *obj* positive (``+obj``)." +msgstr "Renvoie la valeur positive de *obj* (``+obj``)." + +#: ../Doc/library/operator.rst:171 +msgid "Return ``a ** b``, for *a* and *b* numbers." +msgstr "Renvoie ``a ** b`` où *a* et *b* sont des nombres." + +#: ../Doc/library/operator.rst:177 +msgid "Return *a* shifted right by *b*." +msgstr "Renvoie le décalage de *b* bits vers la droite de *a*." + +#: ../Doc/library/operator.rst:183 +msgid "Return ``a - b``." +msgstr "Renvoie ``a - b``." + +#: ../Doc/library/operator.rst:189 +msgid "" +"Return ``a / b`` where 2/3 is .66 rather than 0. This is also known as " +"\"true\" division." +msgstr "" +"Renvoie ``a / b`` où 2/3 est 0.66 et non 0. Appelée aussi division « réelle " +"»." + +#: ../Doc/library/operator.rst:196 +msgid "Return the bitwise exclusive or of *a* and *b*." +msgstr "Renvoie le ou exclusif bit à bit de *a* et *b*." + +#: ../Doc/library/operator.rst:199 +msgid "" +"Operations which work with sequences (some of them with mappings too) " +"include:" +msgstr "" +"Les opérations sur séquences (et pour certaines, sur correspondances) sont :" + +#: ../Doc/library/operator.rst:204 +msgid "Return ``a + b`` for *a* and *b* sequences." +msgstr "Renvoie ``a + b`` où *a* et *b* sont des séquences." + +#: ../Doc/library/operator.rst:210 +msgid "Return the outcome of the test ``b in a``. Note the reversed operands." +msgstr "" +"Renvoie le résultat du test ``b in a``. Notez que les opérandes sont " +"inversées." + +#: ../Doc/library/operator.rst:215 +msgid "Return the number of occurrences of *b* in *a*." +msgstr "Renvoie le nombre d’occurrences de *b* dans *a*." + +#: ../Doc/library/operator.rst:221 +msgid "Remove the value of *a* at index *b*." +msgstr "Renvoie la valeur de *a* à l'indice *b*." + +#: ../Doc/library/operator.rst:227 +msgid "Return the value of *a* at index *b*." +msgstr "Renvoie la valeur de *a* à l'indice *b*." + +#: ../Doc/library/operator.rst:232 +msgid "Return the index of the first of occurrence of *b* in *a*." +msgstr "Renvoie l'indice de la première occurrence de *b* dans *a*." + +#: ../Doc/library/operator.rst:238 +msgid "Set the value of *a* at index *b* to *c*." +msgstr "Affecte *c* dans *a* à l'indice *b*." + +#: ../Doc/library/operator.rst:243 +msgid "" +"Return an estimated length for the object *o*. First try to return its " +"actual length, then an estimate using :meth:`object.__length_hint__`, and " +"finally return the default value." +msgstr "" +"Renvoie une estimation de la taille de l'objet *o*. Tente d'abord de " +"renvoyer la taille réelle, puis une estimation en appelant :meth:`object." +"__length_hint__`, ou sinon la valeur par défaut." + +#: ../Doc/library/operator.rst:249 +msgid "" +"The :mod:`operator` module also defines tools for generalized attribute and " +"item lookups. These are useful for making fast field extractors as " +"arguments for :func:`map`, :func:`sorted`, :meth:`itertools.groupby`, or " +"other functions that expect a function argument." +msgstr "" +"Le module :mod:`operator` définit aussi des fonctions pour la recherche " +"générique d'attributs ou d'objets. Elles sont particulièrement utiles pour " +"construire rapidement des accesseurs d'attributs à passer en paramètre à :" +"func:`map`, :func:`sorted`, :meth:`itertools.groupby` ou à toute autre " +"fonction prenant une fonction en paramètre." + +#: ../Doc/library/operator.rst:258 +msgid "" +"Return a callable object that fetches *attr* from its operand. If more than " +"one attribute is requested, returns a tuple of attributes. The attribute " +"names can also contain dots. For example:" +msgstr "" +"Renvoie un objet appelable qui récupère *attr* de son opérande. Si plus d'un " +"attribut est demandé, renvoie un n-uplet d'attributs. Les noms des attributs " +"peuvent aussi comporter des points. Par exemple :" + +#: ../Doc/library/operator.rst:262 +msgid "After ``f = attrgetter('name')``, the call ``f(b)`` returns ``b.name``." +msgstr "Avec ``f = attrgetter('name')``, l'appel ``f(b)`` renvoie ``b.name``." + +#: ../Doc/library/operator.rst:264 +msgid "" +"After ``f = attrgetter('name', 'date')``, the call ``f(b)`` returns ``(b." +"name, b.date)``." +msgstr "" +"Avec ``f = attrgetter('name', 'date')``, l'appel ``f(b)`` renvoie ``(b.name, " +"b.date)``." + +#: ../Doc/library/operator.rst:267 +msgid "" +"After ``f = attrgetter('name.first', 'name.last')``, the call ``f(b)`` " +"returns ``(b.name.first, b.name.last)``." +msgstr "" +"Après ``f = attrgetter('name.first', 'name.last')``, l'appel ``f(b)`` " +"renvoie ``(b.name.first, b.name.last)``." + +#: ../Doc/library/operator.rst:270 ../Doc/library/operator.rst:302 +#: ../Doc/library/operator.rst:351 +msgid "Equivalent to::" +msgstr "Équivalent à ::" + +#: ../Doc/library/operator.rst:293 +msgid "" +"Return a callable object that fetches *item* from its operand using the " +"operand's :meth:`__getitem__` method. If multiple items are specified, " +"returns a tuple of lookup values. For example:" +msgstr "" +"Renvoie un objet appelable qui récupère *item* de l'opérande en utilisant la " +"méthode :meth:`__getitem__`. Si plusieurs *item* sont passés en paramètre, " +"renvoie un n-uplet des valeurs récupérées. Par exemple :" + +#: ../Doc/library/operator.rst:297 +msgid "After ``f = itemgetter(2)``, the call ``f(r)`` returns ``r[2]``." +msgstr "Avec ``f = itemgetter(2)``, ``f(r)`` renvoie ``r[2]``." + +#: ../Doc/library/operator.rst:299 +msgid "" +"After ``g = itemgetter(2, 5, 3)``, the call ``g(r)`` returns ``(r[2], r[5], " +"r[3])``." +msgstr "" +"Avec ``g = itemgetter(2, 5, 3)``, ``g(r)`` renvoie ``(r[2], r[5], r[3])``." + +#: ../Doc/library/operator.rst:314 +msgid "" +"The items can be any type accepted by the operand's :meth:`__getitem__` " +"method. Dictionaries accept any hashable value. Lists, tuples, and strings " +"accept an index or a slice:" +msgstr "" +"Les *items* en entrée peuvent être de n'importe quel type tant que celui-ci " +"est géré par la méthode :meth:`__getitem__` de l'opérande. Les dictionnaires " +"acceptent toute valeur hachable. Les listes, n-uplets et chaînes de " +"caractères acceptent un index ou une tranche :" + +#: ../Doc/library/operator.rst:329 +msgid "" +"Example of using :func:`itemgetter` to retrieve specific fields from a tuple " +"record:" +msgstr "" +"Exemple d'utilisation de :func:`itemgetter` pour récupérer des champs " +"spécifiques d'un n-uplet :" + +#: ../Doc/library/operator.rst:342 +msgid "" +"Return a callable object that calls the method *name* on its operand. If " +"additional arguments and/or keyword arguments are given, they will be given " +"to the method as well. For example:" +msgstr "" +"Renvoie un objet appelable qui appelle la méthode *name* de son opérande. Si " +"des paramètres supplémentaires et/ou des paramètres nommés sont donnés, ils " +"seront aussi passés à la méthode. Par exemple :" + +#: ../Doc/library/operator.rst:346 +msgid "" +"After ``f = methodcaller('name')``, the call ``f(b)`` returns ``b.name()``." +msgstr "Avec ``f = methodcaller('name')``, ``f(b)`` renvoie ``b.name()``." + +#: ../Doc/library/operator.rst:348 +msgid "" +"After ``f = methodcaller('name', 'foo', bar=1)``, the call ``f(b)`` returns " +"``b.name('foo', bar=1)``." +msgstr "" +"Avec ``f = methodcaller('name', 'foo', bar=1)``, ``f(b)`` renvoie ``b." +"name('foo', bar=1)``." + +#: ../Doc/library/operator.rst:362 +msgid "Mapping Operators to Functions" +msgstr "Correspondances entre opérateurs et fonctions" + +#: ../Doc/library/operator.rst:364 +msgid "" +"This table shows how abstract operations correspond to operator symbols in " +"the Python syntax and the functions in the :mod:`operator` module." +msgstr "" +"Le tableau montre la correspondance entre les symboles des opérateurs Python " +"et les fonctions du module :mod:`operator`." + +#: ../Doc/library/operator.rst:368 +msgid "Operation" +msgstr "Opération" + +#: ../Doc/library/operator.rst:368 +msgid "Syntax" +msgstr "Syntaxe" + +#: ../Doc/library/operator.rst:368 +msgid "Function" +msgstr "Fonction" + +#: ../Doc/library/operator.rst:370 +msgid "Addition" +msgstr "Addition" + +#: ../Doc/library/operator.rst:370 +msgid "``a + b``" +msgstr "``a + b``" + +#: ../Doc/library/operator.rst:370 +msgid "``add(a, b)``" +msgstr "``add(a, b)``" + +#: ../Doc/library/operator.rst:372 +msgid "Concatenation" +msgstr "Concaténation" + +#: ../Doc/library/operator.rst:372 +msgid "``seq1 + seq2``" +msgstr "``seq1 + seq2``" + +#: ../Doc/library/operator.rst:372 +msgid "``concat(seq1, seq2)``" +msgstr "``concat(seq1, seq2)``" + +#: ../Doc/library/operator.rst:374 +msgid "Containment Test" +msgstr "Test d'inclusion" + +#: ../Doc/library/operator.rst:374 +msgid "``obj in seq``" +msgstr "``obj in seq``" + +#: ../Doc/library/operator.rst:374 +msgid "``contains(seq, obj)``" +msgstr "``contains(seq, obj)``" + +#: ../Doc/library/operator.rst:376 ../Doc/library/operator.rst:378 +msgid "Division" +msgstr "Division" + +#: ../Doc/library/operator.rst:376 +msgid "``a / b``" +msgstr "``a / b``" + +#: ../Doc/library/operator.rst:376 +msgid "``truediv(a, b)``" +msgstr "``truediv(a, b)``" + +#: ../Doc/library/operator.rst:378 +msgid "``a // b``" +msgstr "``a // b``" + +#: ../Doc/library/operator.rst:378 +msgid "``floordiv(a, b)``" +msgstr "``floordiv(a, b)``" + +#: ../Doc/library/operator.rst:380 +msgid "Bitwise And" +msgstr "*Et* bit à bit" + +#: ../Doc/library/operator.rst:380 +msgid "``a & b``" +msgstr "``a & b``" + +#: ../Doc/library/operator.rst:380 +msgid "``and_(a, b)``" +msgstr "``and_(a, b)``" + +#: ../Doc/library/operator.rst:382 +msgid "Bitwise Exclusive Or" +msgstr "*Ou exclusif* bit à bit" + +#: ../Doc/library/operator.rst:382 +msgid "``a ^ b``" +msgstr "``a ^ b``" + +#: ../Doc/library/operator.rst:382 +msgid "``xor(a, b)``" +msgstr "``xor(a, b)``" + +#: ../Doc/library/operator.rst:384 +msgid "Bitwise Inversion" +msgstr "Inversion bit à bit" + +#: ../Doc/library/operator.rst:384 +msgid "``~ a``" +msgstr "``~ a``" + +#: ../Doc/library/operator.rst:384 +msgid "``invert(a)``" +msgstr "``invert(a)``" + +#: ../Doc/library/operator.rst:386 +msgid "Bitwise Or" +msgstr "*Ou* bit à bit" + +#: ../Doc/library/operator.rst:386 +msgid "``a | b``" +msgstr "``a | b``" + +#: ../Doc/library/operator.rst:386 +msgid "``or_(a, b)``" +msgstr "``or_(a, b)``" + +#: ../Doc/library/operator.rst:388 +msgid "Exponentiation" +msgstr "Exponentiation" + +#: ../Doc/library/operator.rst:388 +msgid "``a ** b``" +msgstr "``a ** b``" + +#: ../Doc/library/operator.rst:388 +msgid "``pow(a, b)``" +msgstr "``pow(a, b)``" + +#: ../Doc/library/operator.rst:390 ../Doc/library/operator.rst:392 +msgid "Identity" +msgstr "Identité" + +#: ../Doc/library/operator.rst:390 +msgid "``a is b``" +msgstr "``a is b``" + +#: ../Doc/library/operator.rst:390 +msgid "``is_(a, b)``" +msgstr "``is_(a, b)``" + +#: ../Doc/library/operator.rst:392 +msgid "``a is not b``" +msgstr "``a is not b``" + +#: ../Doc/library/operator.rst:392 +msgid "``is_not(a, b)``" +msgstr "``is_not(a, b)``" + +#: ../Doc/library/operator.rst:394 +msgid "Indexed Assignment" +msgstr "Affectation par index" + +#: ../Doc/library/operator.rst:394 +msgid "``obj[k] = v``" +msgstr "``obj[k] = v``" + +#: ../Doc/library/operator.rst:394 +msgid "``setitem(obj, k, v)``" +msgstr "``setitem(obj, k, v)``" + +#: ../Doc/library/operator.rst:396 +msgid "Indexed Deletion" +msgstr "Suppression par index" + +#: ../Doc/library/operator.rst:396 +msgid "``del obj[k]``" +msgstr "``del obj[k]``" + +#: ../Doc/library/operator.rst:396 +msgid "``delitem(obj, k)``" +msgstr "``delitem(obj, k)``" + +#: ../Doc/library/operator.rst:398 +msgid "Indexing" +msgstr "Indexation" + +#: ../Doc/library/operator.rst:398 +msgid "``obj[k]``" +msgstr "``obj[k]``" + +#: ../Doc/library/operator.rst:398 +msgid "``getitem(obj, k)``" +msgstr "``getitem(obj, k)``" + +#: ../Doc/library/operator.rst:400 +msgid "Left Shift" +msgstr "Décalage bit à bit gauche" + +#: ../Doc/library/operator.rst:400 +msgid "``a << b``" +msgstr "``a << b``" + +#: ../Doc/library/operator.rst:400 +msgid "``lshift(a, b)``" +msgstr "``lshift(a, b)``" + +#: ../Doc/library/operator.rst:402 +msgid "Modulo" +msgstr "Modulo" + +#: ../Doc/library/operator.rst:402 +msgid "``a % b``" +msgstr "``a % b``" + +#: ../Doc/library/operator.rst:402 +msgid "``mod(a, b)``" +msgstr "``mod(a, b)``" + +#: ../Doc/library/operator.rst:404 +msgid "Multiplication" +msgstr "Multiplication" + +#: ../Doc/library/operator.rst:404 +msgid "``a * b``" +msgstr "``a * b``" + +#: ../Doc/library/operator.rst:404 +msgid "``mul(a, b)``" +msgstr "``mul(a, b)``" + +#: ../Doc/library/operator.rst:406 +msgid "Matrix Multiplication" +msgstr "Multiplication matricielle" + +#: ../Doc/library/operator.rst:406 +msgid "``a @ b``" +msgstr "``a @ b``" + +#: ../Doc/library/operator.rst:406 +msgid "``matmul(a, b)``" +msgstr "``matmul(a, b)``" + +#: ../Doc/library/operator.rst:408 +msgid "Negation (Arithmetic)" +msgstr "Opposé" + +#: ../Doc/library/operator.rst:408 +msgid "``- a``" +msgstr "``- a``" + +#: ../Doc/library/operator.rst:408 +msgid "``neg(a)``" +msgstr "``neg(a)``" + +#: ../Doc/library/operator.rst:410 +msgid "Negation (Logical)" +msgstr "Négation (logique)" + +#: ../Doc/library/operator.rst:410 +msgid "``not a``" +msgstr "``not a``" + +#: ../Doc/library/operator.rst:410 +msgid "``not_(a)``" +msgstr "``not_(a)``" + +#: ../Doc/library/operator.rst:412 +msgid "Positive" +msgstr "Valeur positive" + +#: ../Doc/library/operator.rst:412 +msgid "``+ a``" +msgstr "``+ a``" + +#: ../Doc/library/operator.rst:412 +msgid "``pos(a)``" +msgstr "``pos(a)``" + +#: ../Doc/library/operator.rst:414 +msgid "Right Shift" +msgstr "Décalage bit à bit droite" + +#: ../Doc/library/operator.rst:414 +msgid "``a >> b``" +msgstr "``a >> b``" + +#: ../Doc/library/operator.rst:414 +msgid "``rshift(a, b)``" +msgstr "``rshift(a, b)``" + +#: ../Doc/library/operator.rst:416 +msgid "Slice Assignment" +msgstr "Affectation par tranche" + +#: ../Doc/library/operator.rst:416 +msgid "``seq[i:j] = values``" +msgstr "``seq[i:j] = values``" + +#: ../Doc/library/operator.rst:416 +msgid "``setitem(seq, slice(i, j), values)``" +msgstr "``setitem(seq, slice(i, j), values)``" + +#: ../Doc/library/operator.rst:418 +msgid "Slice Deletion" +msgstr "Suppression par tranche" + +#: ../Doc/library/operator.rst:418 +msgid "``del seq[i:j]``" +msgstr "``del seq[i:j]``" + +#: ../Doc/library/operator.rst:418 +msgid "``delitem(seq, slice(i, j))``" +msgstr "``delitem(seq, slice(i, j))``" + +#: ../Doc/library/operator.rst:420 +msgid "Slicing" +msgstr "Tranche" + +#: ../Doc/library/operator.rst:420 +msgid "``seq[i:j]``" +msgstr "``seq[i:j]``" + +#: ../Doc/library/operator.rst:420 +msgid "``getitem(seq, slice(i, j))``" +msgstr "``getitem(seq, slice(i, j))``" + +#: ../Doc/library/operator.rst:422 +msgid "String Formatting" +msgstr "Formatage de chaînes de caractères" + +#: ../Doc/library/operator.rst:422 +msgid "``s % obj``" +msgstr "``s % obj``" + +#: ../Doc/library/operator.rst:422 +msgid "``mod(s, obj)``" +msgstr "``mod(s, obj)``" + +#: ../Doc/library/operator.rst:424 +msgid "Subtraction" +msgstr "Soustraction" + +#: ../Doc/library/operator.rst:424 +msgid "``a - b``" +msgstr "``a - b``" + +#: ../Doc/library/operator.rst:424 +msgid "``sub(a, b)``" +msgstr "``sub(a, b)``" + +#: ../Doc/library/operator.rst:426 +msgid "Truth Test" +msgstr "Test de véracité" + +#: ../Doc/library/operator.rst:426 +msgid "``obj``" +msgstr "``obj``" + +#: ../Doc/library/operator.rst:426 +msgid "``truth(obj)``" +msgstr "``truth(obj)``" + +#: ../Doc/library/operator.rst:428 ../Doc/library/operator.rst:430 +#: ../Doc/library/operator.rst:436 ../Doc/library/operator.rst:438 +msgid "Ordering" +msgstr "Ordre" + +#: ../Doc/library/operator.rst:428 +msgid "``a < b``" +msgstr "``a < b``" + +#: ../Doc/library/operator.rst:428 +msgid "``lt(a, b)``" +msgstr "``lt(a, b)``" + +#: ../Doc/library/operator.rst:430 +msgid "``a <= b``" +msgstr "``a <= b``" + +#: ../Doc/library/operator.rst:430 +msgid "``le(a, b)``" +msgstr "``le(a, b)``" + +#: ../Doc/library/operator.rst:432 +msgid "Equality" +msgstr "Égalité" + +#: ../Doc/library/operator.rst:432 +msgid "``a == b``" +msgstr "``a == b``" + +#: ../Doc/library/operator.rst:432 +msgid "``eq(a, b)``" +msgstr "``eq(a, b)``" + +#: ../Doc/library/operator.rst:434 +msgid "Difference" +msgstr "Inégalité" + +#: ../Doc/library/operator.rst:434 +msgid "``a != b``" +msgstr "``a != b``" + +#: ../Doc/library/operator.rst:434 +msgid "``ne(a, b)``" +msgstr "``ne(a, b)``" + +#: ../Doc/library/operator.rst:436 +msgid "``a >= b``" +msgstr "``a >= b``" + +#: ../Doc/library/operator.rst:436 +msgid "``ge(a, b)``" +msgstr "``ge(a, b)``" + +#: ../Doc/library/operator.rst:438 +msgid "``a > b``" +msgstr "``a > b``" + +#: ../Doc/library/operator.rst:438 +msgid "``gt(a, b)``" +msgstr "``gt(a, b)``" + +#: ../Doc/library/operator.rst:442 +msgid "In-place Operators" +msgstr "Opérateurs en-place" + +#: ../Doc/library/operator.rst:444 +msgid "" +"Many operations have an \"in-place\" version. Listed below are functions " +"providing a more primitive access to in-place operators than the usual " +"syntax does; for example, the :term:`statement` ``x += y`` is equivalent to " +"``x = operator.iadd(x, y)``. Another way to put it is to say that ``z = " +"operator.iadd(x, y)`` is equivalent to the compound statement ``z = x; z += " +"y``." +msgstr "" +"Beaucoup d'opérations ont une version travaillant « en-place ». Les " +"fonctions listées ci-dessous fournissent un accès plus direct aux opérateurs " +"en-place que la syntaxe Python habituelle ; par exemple, l'expression :term:" +"`statement` ``x += y`` équivaut à ``x = operator.iadd(x, y)``. Autrement " +"dit, l'expression ``z = operator.iadd(x, y)`` équivaut à l'expression " +"composée ``z = x; z += y``." + +#: ../Doc/library/operator.rst:451 +msgid "" +"In those examples, note that when an in-place method is called, the " +"computation and assignment are performed in two separate steps. The in-" +"place functions listed below only do the first step, calling the in-place " +"method. The second step, assignment, is not handled." +msgstr "" +"Dans ces exemples, notez que lorsqu'une méthode en-place est appelée, le " +"calcul et l'affectation sont effectués en deux étapes distinctes. Les " +"fonctions en-place de la liste ci-dessous ne font que la première, en " +"appelant la méthode en-place. La seconde étape, l'affectation, n'est pas " +"effectuée." + +#: ../Doc/library/operator.rst:456 +msgid "" +"For immutable targets such as strings, numbers, and tuples, the updated " +"value is computed, but not assigned back to the input variable:" +msgstr "" +"Pour des paramètres non-mutables comme les chaînes de caractères, les " +"nombres et les n-uplets, la nouvelle valeur est calculée, mais pas affectée " +"à la variable d'entrée:" + +#: ../Doc/library/operator.rst:465 +msgid "" +"For mutable targets such as lists and dictionaries, the in-place method will " +"perform the update, so no subsequent assignment is necessary:" +msgstr "" +"Pour des paramètres mutables comme les listes et les dictionnaires, la " +"méthode en-place modifiera la valeur, aucune affectation ultérieure n'est " +"nécessaire :" + +#: ../Doc/library/operator.rst:477 +msgid "``a = iadd(a, b)`` is equivalent to ``a += b``." +msgstr "``a = iadd(a, b)`` équivaut à ``a += b``." + +#: ../Doc/library/operator.rst:483 +msgid "``a = iand(a, b)`` is equivalent to ``a &= b``." +msgstr "``a = iand(a, b)`` équivaut à ``a &= b``." + +#: ../Doc/library/operator.rst:489 +msgid "" +"``a = iconcat(a, b)`` is equivalent to ``a += b`` for *a* and *b* sequences." +msgstr "" +"``a = iconcat(a, b)`` équivaut à ``a += b`` où *a* et *b* sont des séquences." + +#: ../Doc/library/operator.rst:495 +msgid "``a = ifloordiv(a, b)`` is equivalent to ``a //= b``." +msgstr "``a = ifloordiv(a, b)``équivaut à ``a //= b``." + +#: ../Doc/library/operator.rst:501 +msgid "``a = ilshift(a, b)`` is equivalent to ``a <<= b``." +msgstr "``a = ilshift(a, b)`` équivaut à ``a <<= b``." + +#: ../Doc/library/operator.rst:507 +msgid "``a = imod(a, b)`` is equivalent to ``a %= b``." +msgstr "``a = imod(a, b)`` équivaut à ``a %= b``." + +#: ../Doc/library/operator.rst:513 +msgid "``a = imul(a, b)`` is equivalent to ``a *= b``." +msgstr "``a = imul(a, b)`` équivaut à ``a *= b``." + +#: ../Doc/library/operator.rst:519 +msgid "``a = imatmul(a, b)`` is equivalent to ``a @= b``." +msgstr "``a = imatmul(a, b)`` équivaut à ``a @= b``." + +#: ../Doc/library/operator.rst:527 +msgid "``a = ior(a, b)`` is equivalent to ``a |= b``." +msgstr "``a = ior(a, b)`` équivaut à ``a |= b``." + +#: ../Doc/library/operator.rst:533 +msgid "``a = ipow(a, b)`` is equivalent to ``a **= b``." +msgstr "``a = ipow(a, b)`` équivaut à ``a **= b``." + +#: ../Doc/library/operator.rst:539 +msgid "``a = irshift(a, b)`` is equivalent to ``a >>= b``." +msgstr "``a = irshift(a, b)`` équivaut à ``a >>= b``." + +#: ../Doc/library/operator.rst:545 +msgid "``a = isub(a, b)`` is equivalent to ``a -= b``." +msgstr "``a = isub(a, b)`` équivaut à ``a -= b``." + +#: ../Doc/library/operator.rst:551 +msgid "``a = itruediv(a, b)`` is equivalent to ``a /= b``." +msgstr "``a = itruediv(a, b)`` équivaut à ``a /= b``." + +#: ../Doc/library/operator.rst:557 +msgid "``a = ixor(a, b)`` is equivalent to ``a ^= b``." +msgstr "``a = ixor(a, b)`` équivaut à ``a ^= b``." diff --git a/library/optparse.po b/library/optparse.po new file mode 100644 index 000000000..7a7c0f15d --- /dev/null +++ b/library/optparse.po @@ -0,0 +1,2434 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-07-03 10:48+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/optparse.rst:2 +msgid ":mod:`optparse` --- Parser for command line options" +msgstr "" + +#: ../Doc/library/optparse.rst:11 +msgid "**Source code:** :source:`Lib/optparse.py`" +msgstr "**Code source :** :source:`Lib/optparse.py`" + +#: ../Doc/library/optparse.rst:13 +msgid "" +"The :mod:`optparse` module is deprecated and will not be developed further; " +"development will continue with the :mod:`argparse` module." +msgstr "" + +#: ../Doc/library/optparse.rst:19 +msgid "" +":mod:`optparse` is a more convenient, flexible, and powerful library for " +"parsing command-line options than the old :mod:`getopt` module. :mod:" +"`optparse` uses a more declarative style of command-line parsing: you create " +"an instance of :class:`OptionParser`, populate it with options, and parse " +"the command line. :mod:`optparse` allows users to specify options in the " +"conventional GNU/POSIX syntax, and additionally generates usage and help " +"messages for you." +msgstr "" + +#: ../Doc/library/optparse.rst:26 +msgid "Here's an example of using :mod:`optparse` in a simple script::" +msgstr "" + +#: ../Doc/library/optparse.rst:39 +msgid "" +"With these few lines of code, users of your script can now do the \"usual " +"thing\" on the command-line, for example::" +msgstr "" + +#: ../Doc/library/optparse.rst:44 +msgid "" +"As it parses the command line, :mod:`optparse` sets attributes of the " +"``options`` object returned by :meth:`parse_args` based on user-supplied " +"command-line values. When :meth:`parse_args` returns from parsing this " +"command line, ``options.filename`` will be ``\"outfile\"`` and ``options." +"verbose`` will be ``False``. :mod:`optparse` supports both long and short " +"options, allows short options to be merged together, and allows options to " +"be associated with their arguments in a variety of ways. Thus, the " +"following command lines are all equivalent to the above example::" +msgstr "" + +#: ../Doc/library/optparse.rst:58 +msgid "Additionally, users can run one of ::" +msgstr "" + +#: ../Doc/library/optparse.rst:63 +msgid "" +"and :mod:`optparse` will print out a brief summary of your script's options:" +msgstr "" + +#: ../Doc/library/optparse.rst:74 +msgid "" +"where the value of *yourscript* is determined at runtime (normally from " +"``sys.argv[0]``)." +msgstr "" + +#: ../Doc/library/optparse.rst:81 +msgid "Background" +msgstr "" + +#: ../Doc/library/optparse.rst:83 +msgid "" +":mod:`optparse` was explicitly designed to encourage the creation of " +"programs with straightforward, conventional command-line interfaces. To " +"that end, it supports only the most common command-line syntax and semantics " +"conventionally used under Unix. If you are unfamiliar with these " +"conventions, read this section to acquaint yourself with them." +msgstr "" + +#: ../Doc/library/optparse.rst:93 +msgid "Terminology" +msgstr "" + +#: ../Doc/library/optparse.rst:104 +msgid "argument" +msgstr "argument" + +#: ../Doc/library/optparse.rst:96 +msgid "" +"a string entered on the command-line, and passed by the shell to ``execl()`` " +"or ``execv()``. In Python, arguments are elements of ``sys.argv[1:]`` " +"(``sys.argv[0]`` is the name of the program being executed). Unix shells " +"also use the term \"word\"." +msgstr "" + +#: ../Doc/library/optparse.rst:101 +msgid "" +"It is occasionally desirable to substitute an argument list other than ``sys." +"argv[1:]``, so you should read \"argument\" as \"an element of ``sys." +"argv[1:]``, or of some other list provided as a substitute for ``sys." +"argv[1:]``\"." +msgstr "" + +#: ../Doc/library/optparse.rst:134 +msgid "option" +msgstr "" + +#: ../Doc/library/optparse.rst:107 +msgid "" +"an argument used to supply extra information to guide or customize the " +"execution of a program. There are many different syntaxes for options; the " +"traditional Unix syntax is a hyphen (\"-\") followed by a single letter, e." +"g. ``-x`` or ``-F``. Also, traditional Unix syntax allows multiple options " +"to be merged into a single argument, e.g. ``-x -F`` is equivalent to ``-" +"xF``. The GNU project introduced ``--`` followed by a series of hyphen-" +"separated words, e.g. ``--file`` or ``--dry-run``. These are the only two " +"option syntaxes provided by :mod:`optparse`." +msgstr "" + +#: ../Doc/library/optparse.rst:116 +msgid "Some other option syntaxes that the world has seen include:" +msgstr "" + +#: ../Doc/library/optparse.rst:118 +msgid "" +"a hyphen followed by a few letters, e.g. ``-pf`` (this is *not* the same as " +"multiple options merged into a single argument)" +msgstr "" + +#: ../Doc/library/optparse.rst:121 +msgid "" +"a hyphen followed by a whole word, e.g. ``-file`` (this is technically " +"equivalent to the previous syntax, but they aren't usually seen in the same " +"program)" +msgstr "" + +#: ../Doc/library/optparse.rst:125 +msgid "" +"a plus sign followed by a single letter, or a few letters, or a word, e.g. ``" +"+f``, ``+rgb``" +msgstr "" + +#: ../Doc/library/optparse.rst:128 +msgid "" +"a slash followed by a letter, or a few letters, or a word, e.g. ``/f``, ``/" +"file``" +msgstr "" + +#: ../Doc/library/optparse.rst:131 +msgid "" +"These option syntaxes are not supported by :mod:`optparse`, and they never " +"will be. This is deliberate: the first three are non-standard on any " +"environment, and the last only makes sense if you're exclusively targeting " +"VMS, MS-DOS, and/or Windows." +msgstr "" + +#: ../Doc/library/optparse.rst:160 +msgid "option argument" +msgstr "" + +#: ../Doc/library/optparse.rst:137 +msgid "" +"an argument that follows an option, is closely associated with that option, " +"and is consumed from the argument list when that option is. With :mod:" +"`optparse`, option arguments may either be in a separate argument from their " +"option:" +msgstr "" + +#: ../Doc/library/optparse.rst:147 +msgid "or included in the same argument:" +msgstr "" + +#: ../Doc/library/optparse.rst:154 +msgid "" +"Typically, a given option either takes an argument or it doesn't. Lots of " +"people want an \"optional option arguments\" feature, meaning that some " +"options will take an argument if they see it, and won't if they don't. This " +"is somewhat controversial, because it makes parsing ambiguous: if ``-a`` " +"takes an optional argument and ``-b`` is another option entirely, how do we " +"interpret ``-ab``? Because of this ambiguity, :mod:`optparse` does not " +"support this feature." +msgstr "" + +#: ../Doc/library/optparse.rst:165 +msgid "positional argument" +msgstr "argument positionnel" + +#: ../Doc/library/optparse.rst:163 +msgid "" +"something leftover in the argument list after options have been parsed, i.e. " +"after options and their arguments have been parsed and removed from the " +"argument list." +msgstr "" + +#: ../Doc/library/optparse.rst:171 +msgid "required option" +msgstr "" + +#: ../Doc/library/optparse.rst:168 +msgid "" +"an option that must be supplied on the command-line; note that the phrase " +"\"required option\" is self-contradictory in English. :mod:`optparse` " +"doesn't prevent you from implementing required options, but doesn't give you " +"much help at it either." +msgstr "" + +#: ../Doc/library/optparse.rst:173 +msgid "For example, consider this hypothetical command-line::" +msgstr "" + +#: ../Doc/library/optparse.rst:177 +msgid "" +"``-v`` and ``--report`` are both options. Assuming that ``--report`` takes " +"one argument, ``report.txt`` is an option argument. ``foo`` and ``bar`` are " +"positional arguments." +msgstr "" + +#: ../Doc/library/optparse.rst:185 +msgid "What are options for?" +msgstr "" + +#: ../Doc/library/optparse.rst:187 +msgid "" +"Options are used to provide extra information to tune or customize the " +"execution of a program. In case it wasn't clear, options are usually " +"*optional*. A program should be able to run just fine with no options " +"whatsoever. (Pick a random program from the Unix or GNU toolsets. Can it " +"run without any options at all and still make sense? The main exceptions " +"are ``find``, ``tar``, and ``dd``\\ ---all of which are mutant oddballs that " +"have been rightly criticized for their non-standard syntax and confusing " +"interfaces.)" +msgstr "" + +#: ../Doc/library/optparse.rst:195 +msgid "" +"Lots of people want their programs to have \"required options\". Think " +"about it. If it's required, then it's *not optional*! If there is a piece " +"of information that your program absolutely requires in order to run " +"successfully, that's what positional arguments are for." +msgstr "" + +#: ../Doc/library/optparse.rst:200 +msgid "" +"As an example of good command-line interface design, consider the humble " +"``cp`` utility, for copying files. It doesn't make much sense to try to " +"copy files without supplying a destination and at least one source. Hence, " +"``cp`` fails if you run it with no arguments. However, it has a flexible, " +"useful syntax that does not require any options at all::" +msgstr "" + +#: ../Doc/library/optparse.rst:209 +msgid "" +"You can get pretty far with just that. Most ``cp`` implementations provide " +"a bunch of options to tweak exactly how the files are copied: you can " +"preserve mode and modification time, avoid following symlinks, ask before " +"clobbering existing files, etc. But none of this distracts from the core " +"mission of ``cp``, which is to copy either one file to another, or several " +"files to another directory." +msgstr "" + +#: ../Doc/library/optparse.rst:220 +msgid "What are positional arguments for?" +msgstr "" + +#: ../Doc/library/optparse.rst:222 +msgid "" +"Positional arguments are for those pieces of information that your program " +"absolutely, positively requires to run." +msgstr "" + +#: ../Doc/library/optparse.rst:225 +msgid "" +"A good user interface should have as few absolute requirements as possible. " +"If your program requires 17 distinct pieces of information in order to run " +"successfully, it doesn't much matter *how* you get that information from the " +"user---most people will give up and walk away before they successfully run " +"the program. This applies whether the user interface is a command-line, a " +"configuration file, or a GUI: if you make that many demands on your users, " +"most of them will simply give up." +msgstr "" + +#: ../Doc/library/optparse.rst:233 +msgid "" +"In short, try to minimize the amount of information that users are " +"absolutely required to supply---use sensible defaults whenever possible. Of " +"course, you also want to make your programs reasonably flexible. That's " +"what options are for. Again, it doesn't matter if they are entries in a " +"config file, widgets in the \"Preferences\" dialog of a GUI, or command-line " +"options---the more options you implement, the more flexible your program is, " +"and the more complicated its implementation becomes. Too much flexibility " +"has drawbacks as well, of course; too many options can overwhelm users and " +"make your code much harder to maintain." +msgstr "" + +#: ../Doc/library/optparse.rst:246 +msgid "Tutorial" +msgstr "Tutoriel" + +#: ../Doc/library/optparse.rst:248 +msgid "" +"While :mod:`optparse` is quite flexible and powerful, it's also " +"straightforward to use in most cases. This section covers the code patterns " +"that are common to any :mod:`optparse`\\ -based program." +msgstr "" + +#: ../Doc/library/optparse.rst:252 +msgid "" +"First, you need to import the OptionParser class; then, early in the main " +"program, create an OptionParser instance::" +msgstr "" + +#: ../Doc/library/optparse.rst:259 +msgid "Then you can start defining options. The basic syntax is::" +msgstr "" + +#: ../Doc/library/optparse.rst:264 +msgid "" +"Each option has one or more option strings, such as ``-f`` or ``--file``, " +"and several option attributes that tell :mod:`optparse` what to expect and " +"what to do when it encounters that option on the command line." +msgstr "" + +#: ../Doc/library/optparse.rst:268 +msgid "" +"Typically, each option will have one short option string and one long option " +"string, e.g.::" +msgstr "" + +#: ../Doc/library/optparse.rst:273 +msgid "" +"You're free to define as many short option strings and as many long option " +"strings as you like (including zero), as long as there is at least one " +"option string overall." +msgstr "" + +#: ../Doc/library/optparse.rst:277 +msgid "" +"The option strings passed to :meth:`OptionParser.add_option` are effectively " +"labels for the option defined by that call. For brevity, we will frequently " +"refer to *encountering an option* on the command line; in reality, :mod:" +"`optparse` encounters *option strings* and looks up options from them." +msgstr "" + +#: ../Doc/library/optparse.rst:283 +msgid "" +"Once all of your options are defined, instruct :mod:`optparse` to parse your " +"program's command line::" +msgstr "" + +#: ../Doc/library/optparse.rst:288 +msgid "" +"(If you like, you can pass a custom argument list to :meth:`parse_args`, but " +"that's rarely necessary: by default it uses ``sys.argv[1:]``.)" +msgstr "" + +#: ../Doc/library/optparse.rst:291 +msgid ":meth:`parse_args` returns two values:" +msgstr "" + +#: ../Doc/library/optparse.rst:293 +msgid "" +"``options``, an object containing values for all of your options---e.g. if " +"``--file`` takes a single string argument, then ``options.file`` will be the " +"filename supplied by the user, or ``None`` if the user did not supply that " +"option" +msgstr "" + +#: ../Doc/library/optparse.rst:298 +msgid "" +"``args``, the list of positional arguments leftover after parsing options" +msgstr "" + +#: ../Doc/library/optparse.rst:300 +msgid "" +"This tutorial section only covers the four most important option " +"attributes: :attr:`~Option.action`, :attr:`~Option.type`, :attr:`~Option." +"dest` (destination), and :attr:`~Option.help`. Of these, :attr:`~Option." +"action` is the most fundamental." +msgstr "" + +#: ../Doc/library/optparse.rst:309 +msgid "Understanding option actions" +msgstr "" + +#: ../Doc/library/optparse.rst:311 +msgid "" +"Actions tell :mod:`optparse` what to do when it encounters an option on the " +"command line. There is a fixed set of actions hard-coded into :mod:" +"`optparse`; adding new actions is an advanced topic covered in section :ref:" +"`optparse-extending-optparse`. Most actions tell :mod:`optparse` to store a " +"value in some variable---for example, take a string from the command line " +"and store it in an attribute of ``options``." +msgstr "" + +#: ../Doc/library/optparse.rst:318 +msgid "" +"If you don't specify an option action, :mod:`optparse` defaults to ``store``." +msgstr "" + +#: ../Doc/library/optparse.rst:324 +msgid "The store action" +msgstr "" + +#: ../Doc/library/optparse.rst:326 +msgid "" +"The most common option action is ``store``, which tells :mod:`optparse` to " +"take the next argument (or the remainder of the current argument), ensure " +"that it is of the correct type, and store it to your chosen destination." +msgstr "" + +#: ../Doc/library/optparse.rst:330 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/library/optparse.rst:335 +msgid "" +"Now let's make up a fake command line and ask :mod:`optparse` to parse it::" +msgstr "" + +#: ../Doc/library/optparse.rst:340 +msgid "" +"When :mod:`optparse` sees the option string ``-f``, it consumes the next " +"argument, ``foo.txt``, and stores it in ``options.filename``. So, after " +"this call to :meth:`parse_args`, ``options.filename`` is ``\"foo.txt\"``." +msgstr "" + +#: ../Doc/library/optparse.rst:344 +msgid "" +"Some other option types supported by :mod:`optparse` are ``int`` and " +"``float``. Here's an option that expects an integer argument::" +msgstr "" + +#: ../Doc/library/optparse.rst:349 +msgid "" +"Note that this option has no long option string, which is perfectly " +"acceptable. Also, there's no explicit action, since the default is ``store``." +msgstr "" + +#: ../Doc/library/optparse.rst:352 +msgid "" +"Let's parse another fake command-line. This time, we'll jam the option " +"argument right up against the option: since ``-n42`` (one argument) is " +"equivalent to ``-n 42`` (two arguments), the code ::" +msgstr "" + +#: ../Doc/library/optparse.rst:359 +msgid "will print ``42``." +msgstr "affichera ``42``." + +#: ../Doc/library/optparse.rst:361 +msgid "" +"If you don't specify a type, :mod:`optparse` assumes ``string``. Combined " +"with the fact that the default action is ``store``, that means our first " +"example can be a lot shorter::" +msgstr "" + +#: ../Doc/library/optparse.rst:367 +msgid "" +"If you don't supply a destination, :mod:`optparse` figures out a sensible " +"default from the option strings: if the first long option string is ``--foo-" +"bar``, then the default destination is ``foo_bar``. If there are no long " +"option strings, :mod:`optparse` looks at the first short option string: the " +"default destination for ``-f`` is ``f``." +msgstr "" + +#: ../Doc/library/optparse.rst:373 +msgid "" +":mod:`optparse` also includes the built-in ``complex`` type. Adding types " +"is covered in section :ref:`optparse-extending-optparse`." +msgstr "" + +#: ../Doc/library/optparse.rst:380 +msgid "Handling boolean (flag) options" +msgstr "" + +#: ../Doc/library/optparse.rst:382 +msgid "" +"Flag options---set a variable to true or false when a particular option is " +"seen---are quite common. :mod:`optparse` supports them with two separate " +"actions, ``store_true`` and ``store_false``. For example, you might have a " +"``verbose`` flag that is turned on with ``-v`` and off with ``-q``::" +msgstr "" + +#: ../Doc/library/optparse.rst:390 +msgid "" +"Here we have two different options with the same destination, which is " +"perfectly OK. (It just means you have to be a bit careful when setting " +"default values---see below.)" +msgstr "" + +#: ../Doc/library/optparse.rst:394 +msgid "" +"When :mod:`optparse` encounters ``-v`` on the command line, it sets " +"``options.verbose`` to ``True``; when it encounters ``-q``, ``options." +"verbose`` is set to ``False``." +msgstr "" + +#: ../Doc/library/optparse.rst:402 +msgid "Other actions" +msgstr "" + +#: ../Doc/library/optparse.rst:404 +msgid "Some other actions supported by :mod:`optparse` are:" +msgstr "" + +#: ../Doc/library/optparse.rst:407 ../Doc/library/optparse.rst:928 +msgid "``\"store_const\"``" +msgstr "``\"store_const\"``" + +#: ../Doc/library/optparse.rst:407 ../Doc/library/optparse.rst:928 +msgid "store a constant value" +msgstr "" + +#: ../Doc/library/optparse.rst:410 ../Doc/library/optparse.rst:937 +msgid "``\"append\"``" +msgstr "``\"append\"``" + +#: ../Doc/library/optparse.rst:410 ../Doc/library/optparse.rst:937 +msgid "append this option's argument to a list" +msgstr "" + +#: ../Doc/library/optparse.rst:413 ../Doc/library/optparse.rst:943 +msgid "``\"count\"``" +msgstr "``\"count\"``" + +#: ../Doc/library/optparse.rst:413 ../Doc/library/optparse.rst:943 +msgid "increment a counter by one" +msgstr "" + +#: ../Doc/library/optparse.rst:416 ../Doc/library/optparse.rst:946 +msgid "``\"callback\"``" +msgstr "``\"callback\"``" + +#: ../Doc/library/optparse.rst:416 ../Doc/library/optparse.rst:946 +msgid "call a specified function" +msgstr "" + +#: ../Doc/library/optparse.rst:418 +msgid "" +"These are covered in section :ref:`optparse-reference-guide`, Reference " +"Guide and section :ref:`optparse-option-callbacks`." +msgstr "" + +#: ../Doc/library/optparse.rst:425 +msgid "Default values" +msgstr "Valeurs par défaut" + +#: ../Doc/library/optparse.rst:427 +msgid "" +"All of the above examples involve setting some variable (the \"destination" +"\") when certain command-line options are seen. What happens if those " +"options are never seen? Since we didn't supply any defaults, they are all " +"set to ``None``. This is usually fine, but sometimes you want more " +"control. :mod:`optparse` lets you supply a default value for each " +"destination, which is assigned before the command line is parsed." +msgstr "" + +#: ../Doc/library/optparse.rst:434 +msgid "" +"First, consider the verbose/quiet example. If we want :mod:`optparse` to " +"set ``verbose`` to ``True`` unless ``-q`` is seen, then we can do this::" +msgstr "" + +#: ../Doc/library/optparse.rst:440 +msgid "" +"Since default values apply to the *destination* rather than to any " +"particular option, and these two options happen to have the same " +"destination, this is exactly equivalent::" +msgstr "" + +#: ../Doc/library/optparse.rst:447 +msgid "Consider this::" +msgstr "" + +#: ../Doc/library/optparse.rst:452 +msgid "" +"Again, the default value for ``verbose`` will be ``True``: the last default " +"value supplied for any particular destination is the one that counts." +msgstr "" + +#: ../Doc/library/optparse.rst:455 +msgid "" +"A clearer way to specify default values is the :meth:`set_defaults` method " +"of OptionParser, which you can call at any time before calling :meth:" +"`parse_args`::" +msgstr "" + +#: ../Doc/library/optparse.rst:462 +msgid "" +"As before, the last value specified for a given option destination is the " +"one that counts. For clarity, try to use one method or the other of setting " +"default values, not both." +msgstr "" + +#: ../Doc/library/optparse.rst:470 +msgid "Generating help" +msgstr "" + +#: ../Doc/library/optparse.rst:472 +msgid "" +":mod:`optparse`'s ability to generate help and usage text automatically is " +"useful for creating user-friendly command-line interfaces. All you have to " +"do is supply a :attr:`~Option.help` value for each option, and optionally a " +"short usage message for your whole program. Here's an OptionParser " +"populated with user-friendly (documented) options::" +msgstr "" + +#: ../Doc/library/optparse.rst:493 +msgid "" +"If :mod:`optparse` encounters either ``-h`` or ``--help`` on the command-" +"line, or if you just call :meth:`parser.print_help`, it prints the following " +"to standard output:" +msgstr "" + +#: ../Doc/library/optparse.rst:510 +msgid "" +"(If the help output is triggered by a help option, :mod:`optparse` exits " +"after printing the help text.)" +msgstr "" + +#: ../Doc/library/optparse.rst:513 +msgid "" +"There's a lot going on here to help :mod:`optparse` generate the best " +"possible help message:" +msgstr "" + +#: ../Doc/library/optparse.rst:516 +msgid "the script defines its own usage message::" +msgstr "" + +#: ../Doc/library/optparse.rst:520 +msgid "" +":mod:`optparse` expands ``%prog`` in the usage string to the name of the " +"current program, i.e. ``os.path.basename(sys.argv[0])``. The expanded " +"string is then printed before the detailed option help." +msgstr "" + +#: ../Doc/library/optparse.rst:524 +msgid "" +"If you don't supply a usage string, :mod:`optparse` uses a bland but " +"sensible default: ``\"Usage: %prog [options]\"``, which is fine if your " +"script doesn't take any positional arguments." +msgstr "" + +#: ../Doc/library/optparse.rst:528 +msgid "" +"every option defines a help string, and doesn't worry about line-wrapping---" +"\\ :mod:`optparse` takes care of wrapping lines and making the help output " +"look good." +msgstr "" + +#: ../Doc/library/optparse.rst:532 +msgid "" +"options that take a value indicate this fact in their automatically-" +"generated help message, e.g. for the \"mode\" option::" +msgstr "" + +#: ../Doc/library/optparse.rst:537 +msgid "" +"Here, \"MODE\" is called the meta-variable: it stands for the argument that " +"the user is expected to supply to ``-m``/``--mode``. By default, :mod:" +"`optparse` converts the destination variable name to uppercase and uses that " +"for the meta-variable. Sometimes, that's not what you want---for example, " +"the ``--filename`` option explicitly sets ``metavar=\"FILE\"``, resulting in " +"this automatically-generated option description::" +msgstr "" + +#: ../Doc/library/optparse.rst:546 +msgid "" +"This is important for more than just saving space, though: the manually " +"written help text uses the meta-variable ``FILE`` to clue the user in that " +"there's a connection between the semi-formal syntax ``-f FILE`` and the " +"informal semantic description \"write output to FILE\". This is a simple but " +"effective way to make your help text a lot clearer and more useful for end " +"users." +msgstr "" + +#: ../Doc/library/optparse.rst:552 +msgid "" +"options that have a default value can include ``%default`` in the help " +"string---\\ :mod:`optparse` will replace it with :func:`str` of the option's " +"default value. If an option has no default value (or the default value is " +"``None``), ``%default`` expands to ``none``." +msgstr "" + +#: ../Doc/library/optparse.rst:558 +msgid "Grouping Options" +msgstr "" + +#: ../Doc/library/optparse.rst:560 +msgid "" +"When dealing with many options, it is convenient to group these options for " +"better help output. An :class:`OptionParser` can contain several option " +"groups, each of which can contain several options." +msgstr "" + +#: ../Doc/library/optparse.rst:564 +msgid "An option group is obtained using the class :class:`OptionGroup`:" +msgstr "" + +#: ../Doc/library/optparse.rst:568 ../Doc/library/optparse.rst:1620 +msgid "where" +msgstr "" + +#: ../Doc/library/optparse.rst:570 +msgid "" +"parser is the :class:`OptionParser` instance the group will be inserted in to" +msgstr "" + +#: ../Doc/library/optparse.rst:572 +msgid "title is the group title" +msgstr "" + +#: ../Doc/library/optparse.rst:573 +msgid "description, optional, is a long description of the group" +msgstr "" + +#: ../Doc/library/optparse.rst:575 +msgid "" +":class:`OptionGroup` inherits from :class:`OptionContainer` (like :class:" +"`OptionParser`) and so the :meth:`add_option` method can be used to add an " +"option to the group." +msgstr "" + +#: ../Doc/library/optparse.rst:579 +msgid "" +"Once all the options are declared, using the :class:`OptionParser` method :" +"meth:`add_option_group` the group is added to the previously defined parser." +msgstr "" + +#: ../Doc/library/optparse.rst:582 +msgid "" +"Continuing with the parser defined in the previous section, adding an :class:" +"`OptionGroup` to a parser is easy::" +msgstr "" + +#: ../Doc/library/optparse.rst:591 +msgid "This would result in the following help output:" +msgstr "" + +#: ../Doc/library/optparse.rst:612 +msgid "" +"A bit more complete example might involve using more than one group: still " +"extending the previous example::" +msgstr "" + +#: ../Doc/library/optparse.rst:629 +msgid "that results in the following output:" +msgstr "" + +#: ../Doc/library/optparse.rst:655 +msgid "" +"Another interesting method, in particular when working programmatically with " +"option groups is:" +msgstr "" + +#: ../Doc/library/optparse.rst:660 +msgid "" +"Return the :class:`OptionGroup` to which the short or long option string " +"*opt_str* (e.g. ``'-o'`` or ``'--option'``) belongs. If there's no such :" +"class:`OptionGroup`, return ``None``." +msgstr "" + +#: ../Doc/library/optparse.rst:667 +msgid "Printing a version string" +msgstr "" + +#: ../Doc/library/optparse.rst:669 +msgid "" +"Similar to the brief usage string, :mod:`optparse` can also print a version " +"string for your program. You have to supply the string as the ``version`` " +"argument to OptionParser::" +msgstr "" + +#: ../Doc/library/optparse.rst:675 +msgid "" +"``%prog`` is expanded just like it is in ``usage``. Apart from that, " +"``version`` can contain anything you like. When you supply it, :mod:" +"`optparse` automatically adds a ``--version`` option to your parser. If it " +"encounters this option on the command line, it expands your ``version`` " +"string (by replacing ``%prog``), prints it to stdout, and exits." +msgstr "" + +#: ../Doc/library/optparse.rst:681 +msgid "For example, if your script is called ``/usr/bin/foo``:" +msgstr "" + +#: ../Doc/library/optparse.rst:688 +msgid "" +"The following two methods can be used to print and get the ``version`` " +"string:" +msgstr "" + +#: ../Doc/library/optparse.rst:692 +msgid "" +"Print the version message for the current program (``self.version``) to " +"*file* (default stdout). As with :meth:`print_usage`, any occurrence of ``" +"%prog`` in ``self.version`` is replaced with the name of the current " +"program. Does nothing if ``self.version`` is empty or undefined." +msgstr "" + +#: ../Doc/library/optparse.rst:699 +msgid "" +"Same as :meth:`print_version` but returns the version string instead of " +"printing it." +msgstr "" + +#: ../Doc/library/optparse.rst:706 +msgid "How :mod:`optparse` handles errors" +msgstr "" + +#: ../Doc/library/optparse.rst:708 +msgid "" +"There are two broad classes of errors that :mod:`optparse` has to worry " +"about: programmer errors and user errors. Programmer errors are usually " +"erroneous calls to :func:`OptionParser.add_option`, e.g. invalid option " +"strings, unknown option attributes, missing option attributes, etc. These " +"are dealt with in the usual way: raise an exception (either :exc:`optparse." +"OptionError` or :exc:`TypeError`) and let the program crash." +msgstr "" + +#: ../Doc/library/optparse.rst:715 +msgid "" +"Handling user errors is much more important, since they are guaranteed to " +"happen no matter how stable your code is. :mod:`optparse` can automatically " +"detect some user errors, such as bad option arguments (passing ``-n 4x`` " +"where ``-n`` takes an integer argument), missing arguments (``-n`` at the " +"end of the command line, where ``-n`` takes an argument of any type). Also, " +"you can call :func:`OptionParser.error` to signal an application-defined " +"error condition::" +msgstr "" + +#: ../Doc/library/optparse.rst:728 +msgid "" +"In either case, :mod:`optparse` handles the error the same way: it prints " +"the program's usage message and an error message to standard error and exits " +"with error status 2." +msgstr "" + +#: ../Doc/library/optparse.rst:732 +msgid "" +"Consider the first example above, where the user passes ``4x`` to an option " +"that takes an integer:" +msgstr "" + +#: ../Doc/library/optparse.rst:742 +msgid "Or, where the user fails to pass a value at all:" +msgstr "" + +#: ../Doc/library/optparse.rst:751 +msgid "" +":mod:`optparse`\\ -generated error messages take care always to mention the " +"option involved in the error; be sure to do the same when calling :func:" +"`OptionParser.error` from your application code." +msgstr "" + +#: ../Doc/library/optparse.rst:755 +msgid "" +"If :mod:`optparse`'s default error-handling behaviour does not suit your " +"needs, you'll need to subclass OptionParser and override its :meth:" +"`~OptionParser.exit` and/or :meth:`~OptionParser.error` methods." +msgstr "" + +#: ../Doc/library/optparse.rst:763 +msgid "Putting it all together" +msgstr "" + +#: ../Doc/library/optparse.rst:765 +msgid "Here's what :mod:`optparse`\\ -based scripts usually look like::" +msgstr "" + +#: ../Doc/library/optparse.rst:793 +msgid "Reference Guide" +msgstr "" + +#: ../Doc/library/optparse.rst:799 +msgid "Creating the parser" +msgstr "" + +#: ../Doc/library/optparse.rst:801 +msgid "" +"The first step in using :mod:`optparse` is to create an OptionParser " +"instance." +msgstr "" + +#: ../Doc/library/optparse.rst:805 +msgid "" +"The OptionParser constructor has no required arguments, but a number of " +"optional keyword arguments. You should always pass them as keyword " +"arguments, i.e. do not rely on the order in which the arguments are declared." +msgstr "" + +#: ../Doc/library/optparse.rst:814 +msgid "``usage`` (default: ``\"%prog [options]\"``)" +msgstr "" + +#: ../Doc/library/optparse.rst:810 +msgid "" +"The usage summary to print when your program is run incorrectly or with a " +"help option. When :mod:`optparse` prints the usage string, it expands ``" +"%prog`` to ``os.path.basename(sys.argv[0])`` (or to ``prog`` if you passed " +"that keyword argument). To suppress a usage message, pass the special " +"value :data:`optparse.SUPPRESS_USAGE`." +msgstr "" + +#: ../Doc/library/optparse.rst:821 +msgid "``option_list`` (default: ``[]``)" +msgstr "" + +#: ../Doc/library/optparse.rst:817 +msgid "" +"A list of Option objects to populate the parser with. The options in " +"``option_list`` are added after any options in ``standard_option_list`` (a " +"class attribute that may be set by OptionParser subclasses), but before any " +"version or help options. Deprecated; use :meth:`add_option` after creating " +"the parser instead." +msgstr "" + +#: ../Doc/library/optparse.rst:824 +msgid "``option_class`` (default: optparse.Option)" +msgstr "" + +#: ../Doc/library/optparse.rst:824 +msgid "Class to use when adding options to the parser in :meth:`add_option`." +msgstr "" + +#: ../Doc/library/optparse.rst:830 +msgid "``version`` (default: ``None``)" +msgstr "" + +#: ../Doc/library/optparse.rst:827 +msgid "" +"A version string to print when the user supplies a version option. If you " +"supply a true value for ``version``, :mod:`optparse` automatically adds a " +"version option with the single option string ``--version``. The substring ``" +"%prog`` is expanded the same as for ``usage``." +msgstr "" + +#: ../Doc/library/optparse.rst:835 +msgid "``conflict_handler`` (default: ``\"error\"``)" +msgstr "" + +#: ../Doc/library/optparse.rst:833 +msgid "" +"Specifies what to do when options with conflicting option strings are added " +"to the parser; see section :ref:`optparse-conflicts-between-options`." +msgstr "" + +#: ../Doc/library/optparse.rst:841 +msgid "``description`` (default: ``None``)" +msgstr "" + +#: ../Doc/library/optparse.rst:838 +msgid "" +"A paragraph of text giving a brief overview of your program. :mod:`optparse` " +"reformats this paragraph to fit the current terminal width and prints it " +"when the user requests help (after ``usage``, but before the list of " +"options)." +msgstr "" + +#: ../Doc/library/optparse.rst:846 +msgid "``formatter`` (default: a new :class:`IndentedHelpFormatter`)" +msgstr "" + +#: ../Doc/library/optparse.rst:844 +msgid "" +"An instance of optparse.HelpFormatter that will be used for printing help " +"text. :mod:`optparse` provides two concrete classes for this purpose: " +"IndentedHelpFormatter and TitledHelpFormatter." +msgstr "" + +#: ../Doc/library/optparse.rst:850 +msgid "``add_help_option`` (default: ``True``)" +msgstr "" + +#: ../Doc/library/optparse.rst:849 +msgid "" +"If true, :mod:`optparse` will add a help option (with option strings ``-h`` " +"and ``--help``) to the parser." +msgstr "" + +#: ../Doc/library/optparse.rst:854 +msgid "``prog``" +msgstr "``prog``" + +#: ../Doc/library/optparse.rst:853 +msgid "" +"The string to use when expanding ``%prog`` in ``usage`` and ``version`` " +"instead of ``os.path.basename(sys.argv[0])``." +msgstr "" + +#: ../Doc/library/optparse.rst:856 +msgid "``epilog`` (default: ``None``)" +msgstr "" + +#: ../Doc/library/optparse.rst:857 +msgid "A paragraph of help text to print after the option help." +msgstr "" + +#: ../Doc/library/optparse.rst:862 +msgid "Populating the parser" +msgstr "" + +#: ../Doc/library/optparse.rst:864 +msgid "" +"There are several ways to populate the parser with options. The preferred " +"way is by using :meth:`OptionParser.add_option`, as shown in section :ref:" +"`optparse-tutorial`. :meth:`add_option` can be called in one of two ways:" +msgstr "" + +#: ../Doc/library/optparse.rst:868 +msgid "pass it an Option instance (as returned by :func:`make_option`)" +msgstr "" + +#: ../Doc/library/optparse.rst:870 +msgid "" +"pass it any combination of positional and keyword arguments that are " +"acceptable to :func:`make_option` (i.e., to the Option constructor), and it " +"will create the Option instance for you" +msgstr "" + +#: ../Doc/library/optparse.rst:874 +msgid "" +"The other alternative is to pass a list of pre-constructed Option instances " +"to the OptionParser constructor, as in::" +msgstr "" + +#: ../Doc/library/optparse.rst:885 +msgid "" +"(:func:`make_option` is a factory function for creating Option instances; " +"currently it is an alias for the Option constructor. A future version of :" +"mod:`optparse` may split Option into several classes, and :func:" +"`make_option` will pick the right class to instantiate. Do not instantiate " +"Option directly.)" +msgstr "" + +#: ../Doc/library/optparse.rst:894 +msgid "Defining options" +msgstr "" + +#: ../Doc/library/optparse.rst:896 +msgid "" +"Each Option instance represents a set of synonymous command-line option " +"strings, e.g. ``-f`` and ``--file``. You can specify any number of short or " +"long option strings, but you must specify at least one overall option string." +msgstr "" + +#: ../Doc/library/optparse.rst:900 +msgid "" +"The canonical way to create an :class:`Option` instance is with the :meth:" +"`add_option` method of :class:`OptionParser`." +msgstr "" + +#: ../Doc/library/optparse.rst:906 +msgid "To define an option with only a short option string::" +msgstr "" + +#: ../Doc/library/optparse.rst:910 +msgid "And to define an option with only a long option string::" +msgstr "" + +#: ../Doc/library/optparse.rst:914 +msgid "" +"The keyword arguments define attributes of the new Option object. The most " +"important option attribute is :attr:`~Option.action`, and it largely " +"determines which other attributes are relevant or required. If you pass " +"irrelevant option attributes, or fail to pass required ones, :mod:`optparse` " +"raises an :exc:`OptionError` exception explaining your mistake." +msgstr "" + +#: ../Doc/library/optparse.rst:920 +msgid "" +"An option's *action* determines what :mod:`optparse` does when it encounters " +"this option on the command-line. The standard option actions hard-coded " +"into :mod:`optparse` are:" +msgstr "" + +#: ../Doc/library/optparse.rst:925 +msgid "``\"store\"``" +msgstr "``\"store\"``" + +#: ../Doc/library/optparse.rst:925 +msgid "store this option's argument (default)" +msgstr "" + +#: ../Doc/library/optparse.rst:931 +msgid "``\"store_true\"``" +msgstr "``\"store_true\"``" + +#: ../Doc/library/optparse.rst:931 +msgid "store a true value" +msgstr "" + +#: ../Doc/library/optparse.rst:934 +msgid "``\"store_false\"``" +msgstr "``\"store_false\"``" + +#: ../Doc/library/optparse.rst:934 +msgid "store a false value" +msgstr "" + +#: ../Doc/library/optparse.rst:940 +msgid "``\"append_const\"``" +msgstr "``\"append_const\"``" + +#: ../Doc/library/optparse.rst:940 +msgid "append a constant value to a list" +msgstr "" + +#: ../Doc/library/optparse.rst:949 ../Doc/library/optparse.rst:1226 +msgid "``\"help\"``" +msgstr "``\"help\"``" + +#: ../Doc/library/optparse.rst:949 +msgid "" +"print a usage message including all options and the documentation for them" +msgstr "" + +#: ../Doc/library/optparse.rst:951 +msgid "" +"(If you don't supply an action, the default is ``\"store\"``. For this " +"action, you may also supply :attr:`~Option.type` and :attr:`~Option.dest` " +"option attributes; see :ref:`optparse-standard-option-actions`.)" +msgstr "" + +#: ../Doc/library/optparse.rst:955 +msgid "" +"As you can see, most actions involve storing or updating a value somewhere. :" +"mod:`optparse` always creates a special object for this, conventionally " +"called ``options`` (it happens to be an instance of :class:`optparse." +"Values`). Option arguments (and various other values) are stored as " +"attributes of this object, according to the :attr:`~Option.dest` " +"(destination) option attribute." +msgstr "" + +#: ../Doc/library/optparse.rst:961 +msgid "For example, when you call ::" +msgstr "" + +#: ../Doc/library/optparse.rst:965 +msgid "" +"one of the first things :mod:`optparse` does is create the ``options`` " +"object::" +msgstr "" + +#: ../Doc/library/optparse.rst:969 +msgid "If one of the options in this parser is defined with ::" +msgstr "" + +#: ../Doc/library/optparse.rst:973 +msgid "and the command-line being parsed includes any of the following::" +msgstr "" + +#: ../Doc/library/optparse.rst:980 +msgid "" +"then :mod:`optparse`, on seeing this option, will do the equivalent of ::" +msgstr "" + +#: ../Doc/library/optparse.rst:984 +msgid "" +"The :attr:`~Option.type` and :attr:`~Option.dest` option attributes are " +"almost as important as :attr:`~Option.action`, but :attr:`~Option.action` is " +"the only one that makes sense for *all* options." +msgstr "" + +#: ../Doc/library/optparse.rst:992 +msgid "Option attributes" +msgstr "" + +#: ../Doc/library/optparse.rst:994 +msgid "" +"The following option attributes may be passed as keyword arguments to :meth:" +"`OptionParser.add_option`. If you pass an option attribute that is not " +"relevant to a particular option, or fail to pass a required option " +"attribute, :mod:`optparse` raises :exc:`OptionError`." +msgstr "" + +#: ../Doc/library/optparse.rst:1001 +msgid "(default: ``\"store\"``)" +msgstr "" + +#: ../Doc/library/optparse.rst:1003 +msgid "" +"Determines :mod:`optparse`'s behaviour when this option is seen on the " +"command line; the available options are documented :ref:`here `." +msgstr "" + +#: ../Doc/library/optparse.rst:1009 +msgid "(default: ``\"string\"``)" +msgstr "" + +#: ../Doc/library/optparse.rst:1011 +msgid "" +"The argument type expected by this option (e.g., ``\"string\"`` or ``\"int" +"\"``); the available option types are documented :ref:`here `." +msgstr "" + +#: ../Doc/library/optparse.rst:1017 ../Doc/library/optparse.rst:1067 +msgid "(default: derived from option strings)" +msgstr "" + +#: ../Doc/library/optparse.rst:1019 +msgid "" +"If the option's action implies writing or modifying a value somewhere, this " +"tells :mod:`optparse` where to write it: :attr:`~Option.dest` names an " +"attribute of the ``options`` object that :mod:`optparse` builds as it parses " +"the command line." +msgstr "" + +#: ../Doc/library/optparse.rst:1026 +msgid "" +"The value to use for this option's destination if the option is not seen on " +"the command line. See also :meth:`OptionParser.set_defaults`." +msgstr "" + +#: ../Doc/library/optparse.rst:1031 +msgid "(default: 1)" +msgstr "" + +#: ../Doc/library/optparse.rst:1033 +msgid "" +"How many arguments of type :attr:`~Option.type` should be consumed when this " +"option is seen. If > 1, :mod:`optparse` will store a tuple of values to :" +"attr:`~Option.dest`." +msgstr "" + +#: ../Doc/library/optparse.rst:1039 +msgid "For actions that store a constant value, the constant value to store." +msgstr "" + +#: ../Doc/library/optparse.rst:1043 +msgid "" +"For options of type ``\"choice\"``, the list of strings the user may choose " +"from." +msgstr "" + +#: ../Doc/library/optparse.rst:1048 +msgid "" +"For options with action ``\"callback\"``, the callable to call when this " +"option is seen. See section :ref:`optparse-option-callbacks` for detail on " +"the arguments passed to the callable." +msgstr "" + +#: ../Doc/library/optparse.rst:1055 +msgid "" +"Additional positional and keyword arguments to pass to ``callback`` after " +"the four standard callback arguments." +msgstr "" + +#: ../Doc/library/optparse.rst:1060 +msgid "" +"Help text to print for this option when listing all available options after " +"the user supplies a :attr:`~Option.help` option (such as ``--help``). If no " +"help text is supplied, the option will be listed without help text. To hide " +"this option, use the special value :data:`optparse.SUPPRESS_HELP`." +msgstr "" + +#: ../Doc/library/optparse.rst:1069 +msgid "" +"Stand-in for the option argument(s) to use when printing help text. See " +"section :ref:`optparse-tutorial` for an example." +msgstr "" + +#: ../Doc/library/optparse.rst:1076 +msgid "Standard option actions" +msgstr "" + +#: ../Doc/library/optparse.rst:1078 +msgid "" +"The various option actions all have slightly different requirements and " +"effects. Most actions have several relevant option attributes which you may " +"specify to guide :mod:`optparse`'s behaviour; a few have required " +"attributes, which you must specify for any option using that action." +msgstr "" + +#: ../Doc/library/optparse.rst:1083 +msgid "" +"``\"store\"`` [relevant: :attr:`~Option.type`, :attr:`~Option.dest`, :attr:" +"`~Option.nargs`, :attr:`~Option.choices`]" +msgstr "" + +#: ../Doc/library/optparse.rst:1086 +msgid "" +"The option must be followed by an argument, which is converted to a value " +"according to :attr:`~Option.type` and stored in :attr:`~Option.dest`. If :" +"attr:`~Option.nargs` > 1, multiple arguments will be consumed from the " +"command line; all will be converted according to :attr:`~Option.type` and " +"stored to :attr:`~Option.dest` as a tuple. See the :ref:`optparse-standard-" +"option-types` section." +msgstr "" + +#: ../Doc/library/optparse.rst:1093 +msgid "" +"If :attr:`~Option.choices` is supplied (a list or tuple of strings), the " +"type defaults to ``\"choice\"``." +msgstr "" + +#: ../Doc/library/optparse.rst:1096 +msgid "If :attr:`~Option.type` is not supplied, it defaults to ``\"string\"``." +msgstr "" + +#: ../Doc/library/optparse.rst:1098 +msgid "" +"If :attr:`~Option.dest` is not supplied, :mod:`optparse` derives a " +"destination from the first long option string (e.g., ``--foo-bar`` implies " +"``foo_bar``). If there are no long option strings, :mod:`optparse` derives a " +"destination from the first short option string (e.g., ``-f`` implies ``f``)." +msgstr "" + +#: ../Doc/library/optparse.rst:1103 ../Doc/library/optparse.rst:1123 +#: ../Doc/library/optparse.rst:1145 ../Doc/library/optparse.rst:1163 +#: ../Doc/library/optparse.rst:1202 ../Doc/library/optparse.rst:1240 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/optparse.rst:1108 +msgid "As it parses the command line ::" +msgstr "" + +#: ../Doc/library/optparse.rst:1112 +msgid ":mod:`optparse` will set ::" +msgstr "" + +#: ../Doc/library/optparse.rst:1118 +msgid "" +"``\"store_const\"`` [required: :attr:`~Option.const`; relevant: :attr:" +"`~Option.dest`]" +msgstr "" + +#: ../Doc/library/optparse.rst:1121 +msgid "The value :attr:`~Option.const` is stored in :attr:`~Option.dest`." +msgstr "" + +#: ../Doc/library/optparse.rst:1132 +msgid "If ``--noisy`` is seen, :mod:`optparse` will set ::" +msgstr "" + +#: ../Doc/library/optparse.rst:1136 +msgid "``\"store_true\"`` [relevant: :attr:`~Option.dest`]" +msgstr "" + +#: ../Doc/library/optparse.rst:1138 +msgid "" +"A special case of ``\"store_const\"`` that stores a true value to :attr:" +"`~Option.dest`." +msgstr "" + +#: ../Doc/library/optparse.rst:1141 +msgid "``\"store_false\"`` [relevant: :attr:`~Option.dest`]" +msgstr "" + +#: ../Doc/library/optparse.rst:1143 +msgid "Like ``\"store_true\"``, but stores a false value." +msgstr "" + +#: ../Doc/library/optparse.rst:1150 +msgid "" +"``\"append\"`` [relevant: :attr:`~Option.type`, :attr:`~Option.dest`, :attr:" +"`~Option.nargs`, :attr:`~Option.choices`]" +msgstr "" + +#: ../Doc/library/optparse.rst:1153 +msgid "" +"The option must be followed by an argument, which is appended to the list " +"in :attr:`~Option.dest`. If no default value for :attr:`~Option.dest` is " +"supplied, an empty list is automatically created when :mod:`optparse` first " +"encounters this option on the command-line. If :attr:`~Option.nargs` > 1, " +"multiple arguments are consumed, and a tuple of length :attr:`~Option.nargs` " +"is appended to :attr:`~Option.dest`." +msgstr "" + +#: ../Doc/library/optparse.rst:1160 +msgid "" +"The defaults for :attr:`~Option.type` and :attr:`~Option.dest` are the same " +"as for the ``\"store\"`` action." +msgstr "" + +#: ../Doc/library/optparse.rst:1167 +msgid "" +"If ``-t3`` is seen on the command-line, :mod:`optparse` does the equivalent " +"of::" +msgstr "" + +#: ../Doc/library/optparse.rst:1173 +msgid "If, a little later on, ``--tracks=4`` is seen, it does::" +msgstr "" + +#: ../Doc/library/optparse.rst:1177 +msgid "" +"The ``append`` action calls the ``append`` method on the current value of " +"the option. This means that any default value specified must have an " +"``append`` method. It also means that if the default value is non-empty, " +"the default elements will be present in the parsed value for the option, " +"with any values from the command line appended after those default values::" +msgstr "" + +#: ../Doc/library/optparse.rst:1188 +msgid "" +"``\"append_const\"`` [required: :attr:`~Option.const`; relevant: :attr:" +"`~Option.dest`]" +msgstr "" + +#: ../Doc/library/optparse.rst:1191 +msgid "" +"Like ``\"store_const\"``, but the value :attr:`~Option.const` is appended " +"to :attr:`~Option.dest`; as with ``\"append\"``, :attr:`~Option.dest` " +"defaults to ``None``, and an empty list is automatically created the first " +"time the option is encountered." +msgstr "" + +#: ../Doc/library/optparse.rst:1196 +msgid "``\"count\"`` [relevant: :attr:`~Option.dest`]" +msgstr "" + +#: ../Doc/library/optparse.rst:1198 +msgid "" +"Increment the integer stored at :attr:`~Option.dest`. If no default value " +"is supplied, :attr:`~Option.dest` is set to zero before being incremented " +"the first time." +msgstr "" + +#: ../Doc/library/optparse.rst:1206 +msgid "" +"The first time ``-v`` is seen on the command line, :mod:`optparse` does the " +"equivalent of::" +msgstr "" + +#: ../Doc/library/optparse.rst:1212 +msgid "Every subsequent occurrence of ``-v`` results in ::" +msgstr "" + +#: ../Doc/library/optparse.rst:1216 +msgid "" +"``\"callback\"`` [required: :attr:`~Option.callback`; relevant: :attr:" +"`~Option.type`, :attr:`~Option.nargs`, :attr:`~Option.callback_args`, :attr:" +"`~Option.callback_kwargs`]" +msgstr "" + +#: ../Doc/library/optparse.rst:1220 +msgid "" +"Call the function specified by :attr:`~Option.callback`, which is called " +"as ::" +msgstr "" + +#: ../Doc/library/optparse.rst:1224 +msgid "See section :ref:`optparse-option-callbacks` for more detail." +msgstr "" + +#: ../Doc/library/optparse.rst:1228 +msgid "" +"Prints a complete help message for all the options in the current option " +"parser. The help message is constructed from the ``usage`` string passed to " +"OptionParser's constructor and the :attr:`~Option.help` string passed to " +"every option." +msgstr "" + +#: ../Doc/library/optparse.rst:1233 +msgid "" +"If no :attr:`~Option.help` string is supplied for an option, it will still " +"be listed in the help message. To omit an option entirely, use the special " +"value :data:`optparse.SUPPRESS_HELP`." +msgstr "" + +#: ../Doc/library/optparse.rst:1237 +msgid "" +":mod:`optparse` automatically adds a :attr:`~Option.help` option to all " +"OptionParsers, so you do not normally need to create one." +msgstr "" + +#: ../Doc/library/optparse.rst:1255 +msgid "" +"If :mod:`optparse` sees either ``-h`` or ``--help`` on the command line, it " +"will print something like the following help message to stdout (assuming " +"``sys.argv[0]`` is ``\"foo.py\"``):" +msgstr "" + +#: ../Doc/library/optparse.rst:1268 +msgid "" +"After printing the help message, :mod:`optparse` terminates your process " +"with ``sys.exit(0)``." +msgstr "" + +#: ../Doc/library/optparse.rst:1271 +msgid "``\"version\"``" +msgstr "``\"version\"``" + +#: ../Doc/library/optparse.rst:1273 +msgid "" +"Prints the version number supplied to the OptionParser to stdout and exits. " +"The version number is actually formatted and printed by the " +"``print_version()`` method of OptionParser. Generally only relevant if the " +"``version`` argument is supplied to the OptionParser constructor. As with :" +"attr:`~Option.help` options, you will rarely create ``version`` options, " +"since :mod:`optparse` automatically adds them when needed." +msgstr "" + +#: ../Doc/library/optparse.rst:1284 +msgid "Standard option types" +msgstr "" + +#: ../Doc/library/optparse.rst:1286 +msgid "" +":mod:`optparse` has five built-in option types: ``\"string\"``, ``\"int\"``, " +"``\"choice\"``, ``\"float\"`` and ``\"complex\"``. If you need to add new " +"option types, see section :ref:`optparse-extending-optparse`." +msgstr "" + +#: ../Doc/library/optparse.rst:1290 +msgid "" +"Arguments to string options are not checked or converted in any way: the " +"text on the command line is stored in the destination (or passed to the " +"callback) as-is." +msgstr "" + +#: ../Doc/library/optparse.rst:1293 +msgid "Integer arguments (type ``\"int\"``) are parsed as follows:" +msgstr "" + +#: ../Doc/library/optparse.rst:1295 +msgid "if the number starts with ``0x``, it is parsed as a hexadecimal number" +msgstr "" + +#: ../Doc/library/optparse.rst:1297 +msgid "if the number starts with ``0``, it is parsed as an octal number" +msgstr "" + +#: ../Doc/library/optparse.rst:1299 +msgid "if the number starts with ``0b``, it is parsed as a binary number" +msgstr "" + +#: ../Doc/library/optparse.rst:1301 +msgid "otherwise, the number is parsed as a decimal number" +msgstr "" + +#: ../Doc/library/optparse.rst:1304 +msgid "" +"The conversion is done by calling :func:`int` with the appropriate base (2, " +"8, 10, or 16). If this fails, so will :mod:`optparse`, although with a more " +"useful error message." +msgstr "" + +#: ../Doc/library/optparse.rst:1308 +msgid "" +"``\"float\"`` and ``\"complex\"`` option arguments are converted directly " +"with :func:`float` and :func:`complex`, with similar error-handling." +msgstr "" + +#: ../Doc/library/optparse.rst:1311 +msgid "" +"``\"choice\"`` options are a subtype of ``\"string\"`` options. The :attr:" +"`~Option.choices` option attribute (a sequence of strings) defines the set " +"of allowed option arguments. :func:`optparse.check_choice` compares user-" +"supplied option arguments against this master list and raises :exc:" +"`OptionValueError` if an invalid string is given." +msgstr "" + +#: ../Doc/library/optparse.rst:1321 +msgid "Parsing arguments" +msgstr "Analyse des arguments" + +#: ../Doc/library/optparse.rst:1323 +msgid "" +"The whole point of creating and populating an OptionParser is to call its :" +"meth:`parse_args` method::" +msgstr "" + +#: ../Doc/library/optparse.rst:1328 +msgid "where the input parameters are" +msgstr "" + +#: ../Doc/library/optparse.rst:1331 ../Doc/library/optparse.rst:1345 +#: ../Doc/library/optparse.rst:1664 +msgid "``args``" +msgstr "``args``" + +#: ../Doc/library/optparse.rst:1331 +msgid "the list of arguments to process (default: ``sys.argv[1:]``)" +msgstr "" + +#: ../Doc/library/optparse.rst:1336 +msgid "``values``" +msgstr "``values``" + +#: ../Doc/library/optparse.rst:1334 +msgid "" +"an :class:`optparse.Values` object to store option arguments in (default: a " +"new instance of :class:`Values`) -- if you give an existing object, the " +"option defaults will not be initialized on it" +msgstr "" + +#: ../Doc/library/optparse.rst:1338 +msgid "and the return values are" +msgstr "" + +#: ../Doc/library/optparse.rst:1342 +msgid "``options``" +msgstr "``options``" + +#: ../Doc/library/optparse.rst:1341 +msgid "" +"the same object that was passed in as ``values``, or the optparse.Values " +"instance created by :mod:`optparse`" +msgstr "" + +#: ../Doc/library/optparse.rst:1345 +msgid "the leftover positional arguments after all options have been processed" +msgstr "" + +#: ../Doc/library/optparse.rst:1347 +msgid "" +"The most common usage is to supply neither keyword argument. If you supply " +"``values``, it will be modified with repeated :func:`setattr` calls (roughly " +"one for every option argument stored to an option destination) and returned " +"by :meth:`parse_args`." +msgstr "" + +#: ../Doc/library/optparse.rst:1352 +msgid "" +"If :meth:`parse_args` encounters any errors in the argument list, it calls " +"the OptionParser's :meth:`error` method with an appropriate end-user error " +"message. This ultimately terminates your process with an exit status of 2 " +"(the traditional Unix exit status for command-line errors)." +msgstr "" + +#: ../Doc/library/optparse.rst:1361 +msgid "Querying and manipulating your option parser" +msgstr "" + +#: ../Doc/library/optparse.rst:1363 +msgid "" +"The default behavior of the option parser can be customized slightly, and " +"you can also poke around your option parser and see what's there. " +"OptionParser provides several methods to help you out:" +msgstr "" + +#: ../Doc/library/optparse.rst:1369 +msgid "" +"Set parsing to stop on the first non-option. For example, if ``-a`` and ``-" +"b`` are both simple options that take no arguments, :mod:`optparse` normally " +"accepts this syntax::" +msgstr "" + +#: ../Doc/library/optparse.rst:1375 +msgid "and treats it as equivalent to ::" +msgstr "" + +#: ../Doc/library/optparse.rst:1379 +msgid "" +"To disable this feature, call :meth:`disable_interspersed_args`. This " +"restores traditional Unix syntax, where option parsing stops with the first " +"non-option argument." +msgstr "" + +#: ../Doc/library/optparse.rst:1383 +msgid "" +"Use this if you have a command processor which runs another command which " +"has options of its own and you want to make sure these options don't get " +"confused. For example, each command might have a different set of options." +msgstr "" + +#: ../Doc/library/optparse.rst:1389 +msgid "" +"Set parsing to not stop on the first non-option, allowing interspersing " +"switches with command arguments. This is the default behavior." +msgstr "" + +#: ../Doc/library/optparse.rst:1394 +msgid "" +"Returns the Option instance with the option string *opt_str*, or ``None`` if " +"no options have that option string." +msgstr "" + +#: ../Doc/library/optparse.rst:1399 +msgid "" +"Return true if the OptionParser has an option with option string *opt_str* " +"(e.g., ``-q`` or ``--verbose``)." +msgstr "" + +#: ../Doc/library/optparse.rst:1404 +msgid "" +"If the :class:`OptionParser` has an option corresponding to *opt_str*, that " +"option is removed. If that option provided any other option strings, all of " +"those option strings become invalid. If *opt_str* does not occur in any " +"option belonging to this :class:`OptionParser`, raises :exc:`ValueError`." +msgstr "" + +#: ../Doc/library/optparse.rst:1413 +msgid "Conflicts between options" +msgstr "" + +#: ../Doc/library/optparse.rst:1415 +msgid "" +"If you're not careful, it's easy to define options with conflicting option " +"strings::" +msgstr "" + +#: ../Doc/library/optparse.rst:1422 +msgid "" +"(This is particularly true if you've defined your own OptionParser subclass " +"with some standard options.)" +msgstr "" + +#: ../Doc/library/optparse.rst:1425 +msgid "" +"Every time you add an option, :mod:`optparse` checks for conflicts with " +"existing options. If it finds any, it invokes the current conflict-handling " +"mechanism. You can set the conflict-handling mechanism either in the " +"constructor::" +msgstr "" + +#: ../Doc/library/optparse.rst:1431 +msgid "or with a separate call::" +msgstr "" + +#: ../Doc/library/optparse.rst:1435 +msgid "The available conflict handlers are:" +msgstr "" + +#: ../Doc/library/optparse.rst:1439 +msgid "``\"error\"`` (default)" +msgstr "" + +#: ../Doc/library/optparse.rst:1438 +msgid "" +"assume option conflicts are a programming error and raise :exc:" +"`OptionConflictError`" +msgstr "" + +#: ../Doc/library/optparse.rst:1443 +msgid "``\"resolve\"``" +msgstr "``\"resolve\"``" + +#: ../Doc/library/optparse.rst:1442 +msgid "resolve option conflicts intelligently (see below)" +msgstr "" + +#: ../Doc/library/optparse.rst:1445 +msgid "" +"As an example, let's define an :class:`OptionParser` that resolves conflicts " +"intelligently and add conflicting options to it::" +msgstr "" + +#: ../Doc/library/optparse.rst:1452 +msgid "" +"At this point, :mod:`optparse` detects that a previously-added option is " +"already using the ``-n`` option string. Since ``conflict_handler`` is ``" +"\"resolve\"``, it resolves the situation by removing ``-n`` from the earlier " +"option's list of option strings. Now ``--dry-run`` is the only way for the " +"user to activate that option. If the user asks for help, the help message " +"will reflect that::" +msgstr "" + +#: ../Doc/library/optparse.rst:1463 +msgid "" +"It's possible to whittle away the option strings for a previously-added " +"option until there are none left, and the user has no way of invoking that " +"option from the command-line. In that case, :mod:`optparse` removes that " +"option completely, so it doesn't show up in help text or anywhere else. " +"Carrying on with our existing OptionParser::" +msgstr "" + +#: ../Doc/library/optparse.rst:1471 +msgid "" +"At this point, the original ``-n``/``--dry-run`` option is no longer " +"accessible, so :mod:`optparse` removes it, leaving this help text::" +msgstr "" + +#: ../Doc/library/optparse.rst:1483 +msgid "Cleanup" +msgstr "Nettoyage" + +#: ../Doc/library/optparse.rst:1485 +msgid "" +"OptionParser instances have several cyclic references. This should not be a " +"problem for Python's garbage collector, but you may wish to break the cyclic " +"references explicitly by calling :meth:`~OptionParser.destroy` on your " +"OptionParser once you are done with it. This is particularly useful in long-" +"running applications where large object graphs are reachable from your " +"OptionParser." +msgstr "" + +#: ../Doc/library/optparse.rst:1496 +msgid "Other methods" +msgstr "" + +#: ../Doc/library/optparse.rst:1498 +msgid "OptionParser supports several other public methods:" +msgstr "" + +#: ../Doc/library/optparse.rst:1502 +msgid "" +"Set the usage string according to the rules described above for the " +"``usage`` constructor keyword argument. Passing ``None`` sets the default " +"usage string; use :data:`optparse.SUPPRESS_USAGE` to suppress a usage " +"message." +msgstr "" + +#: ../Doc/library/optparse.rst:1508 +msgid "" +"Print the usage message for the current program (``self.usage``) to *file* " +"(default stdout). Any occurrence of the string ``%prog`` in ``self.usage`` " +"is replaced with the name of the current program. Does nothing if ``self." +"usage`` is empty or not defined." +msgstr "" + +#: ../Doc/library/optparse.rst:1515 +msgid "" +"Same as :meth:`print_usage` but returns the usage string instead of printing " +"it." +msgstr "" + +#: ../Doc/library/optparse.rst:1520 +msgid "" +"Set default values for several option destinations at once. Using :meth:" +"`set_defaults` is the preferred way to set default values for options, since " +"multiple options can share the same destination. For example, if several " +"\"mode\" options all set the same destination, any one of them can set the " +"default, and the last one wins::" +msgstr "" + +#: ../Doc/library/optparse.rst:1533 +msgid "To avoid this confusion, use :meth:`set_defaults`::" +msgstr "" + +#: ../Doc/library/optparse.rst:1545 +msgid "Option Callbacks" +msgstr "" + +#: ../Doc/library/optparse.rst:1547 +msgid "" +"When :mod:`optparse`'s built-in actions and types aren't quite enough for " +"your needs, you have two choices: extend :mod:`optparse` or define a " +"callback option. Extending :mod:`optparse` is more general, but overkill for " +"a lot of simple cases. Quite often a simple callback is all you need." +msgstr "" + +#: ../Doc/library/optparse.rst:1552 +msgid "There are two steps to defining a callback option:" +msgstr "" + +#: ../Doc/library/optparse.rst:1554 +msgid "define the option itself using the ``\"callback\"`` action" +msgstr "" + +#: ../Doc/library/optparse.rst:1556 +msgid "" +"write the callback; this is a function (or method) that takes at least four " +"arguments, as described below" +msgstr "" + +#: ../Doc/library/optparse.rst:1563 +msgid "Defining a callback option" +msgstr "" + +#: ../Doc/library/optparse.rst:1565 +msgid "" +"As always, the easiest way to define a callback option is by using the :meth:" +"`OptionParser.add_option` method. Apart from :attr:`~Option.action`, the " +"only option attribute you must specify is ``callback``, the function to " +"call::" +msgstr "" + +#: ../Doc/library/optparse.rst:1571 +msgid "" +"``callback`` is a function (or other callable object), so you must have " +"already defined ``my_callback()`` when you create this callback option. In " +"this simple case, :mod:`optparse` doesn't even know if ``-c`` takes any " +"arguments, which usually means that the option takes no arguments---the mere " +"presence of ``-c`` on the command-line is all it needs to know. In some " +"circumstances, though, you might want your callback to consume an arbitrary " +"number of command-line arguments. This is where writing callbacks gets " +"tricky; it's covered later in this section." +msgstr "" + +#: ../Doc/library/optparse.rst:1580 +msgid "" +":mod:`optparse` always passes four particular arguments to your callback, " +"and it will only pass additional arguments if you specify them via :attr:" +"`~Option.callback_args` and :attr:`~Option.callback_kwargs`. Thus, the " +"minimal callback function signature is::" +msgstr "" + +#: ../Doc/library/optparse.rst:1587 +msgid "The four arguments to a callback are described below." +msgstr "" + +#: ../Doc/library/optparse.rst:1589 +msgid "" +"There are several other option attributes that you can supply when you " +"define a callback option:" +msgstr "" + +#: ../Doc/library/optparse.rst:1596 +msgid ":attr:`~Option.type`" +msgstr "" + +#: ../Doc/library/optparse.rst:1593 +msgid "" +"has its usual meaning: as with the ``\"store\"`` or ``\"append\"`` actions, " +"it instructs :mod:`optparse` to consume one argument and convert it to :attr:" +"`~Option.type`. Rather than storing the converted value(s) anywhere, " +"though, :mod:`optparse` passes it to your callback function." +msgstr "" + +#: ../Doc/library/optparse.rst:1602 +msgid ":attr:`~Option.nargs`" +msgstr "" + +#: ../Doc/library/optparse.rst:1599 +msgid "" +"also has its usual meaning: if it is supplied and > 1, :mod:`optparse` will " +"consume :attr:`~Option.nargs` arguments, each of which must be convertible " +"to :attr:`~Option.type`. It then passes a tuple of converted values to your " +"callback." +msgstr "" + +#: ../Doc/library/optparse.rst:1605 +msgid ":attr:`~Option.callback_args`" +msgstr "" + +#: ../Doc/library/optparse.rst:1605 +msgid "a tuple of extra positional arguments to pass to the callback" +msgstr "" + +#: ../Doc/library/optparse.rst:1609 +msgid ":attr:`~Option.callback_kwargs`" +msgstr "" + +#: ../Doc/library/optparse.rst:1608 +msgid "a dictionary of extra keyword arguments to pass to the callback" +msgstr "" + +#: ../Doc/library/optparse.rst:1614 +msgid "How callbacks are called" +msgstr "" + +#: ../Doc/library/optparse.rst:1616 +msgid "All callbacks are called as follows::" +msgstr "" + +#: ../Doc/library/optparse.rst:1623 +msgid "``option``" +msgstr "``option``" + +#: ../Doc/library/optparse.rst:1623 +msgid "is the Option instance that's calling the callback" +msgstr "" + +#: ../Doc/library/optparse.rst:1630 +msgid "``opt_str``" +msgstr "``opt_str``" + +#: ../Doc/library/optparse.rst:1626 +msgid "" +"is the option string seen on the command-line that's triggering the " +"callback. (If an abbreviated long option was used, ``opt_str`` will be the " +"full, canonical option string---e.g. if the user puts ``--foo`` on the " +"command-line as an abbreviation for ``--foobar``, then ``opt_str`` will be ``" +"\"--foobar\"``.)" +msgstr "" + +#: ../Doc/library/optparse.rst:1637 +msgid "``value``" +msgstr "``value``" + +#: ../Doc/library/optparse.rst:1633 +msgid "" +"is the argument to this option seen on the command-line. :mod:`optparse` " +"will only expect an argument if :attr:`~Option.type` is set; the type of " +"``value`` will be the type implied by the option's type. If :attr:`~Option." +"type` for this option is ``None`` (no argument expected), then ``value`` " +"will be ``None``. If :attr:`~Option.nargs` > 1, ``value`` will be a tuple " +"of values of the appropriate type." +msgstr "" + +#: ../Doc/library/optparse.rst:1660 +msgid "``parser``" +msgstr "``parser``" + +#: ../Doc/library/optparse.rst:1640 +msgid "" +"is the OptionParser instance driving the whole thing, mainly useful because " +"you can access some other interesting data through its instance attributes:" +msgstr "" + +#: ../Doc/library/optparse.rst:1647 +msgid "``parser.largs``" +msgstr "``parser.largs``" + +#: ../Doc/library/optparse.rst:1644 +msgid "" +"the current list of leftover arguments, ie. arguments that have been " +"consumed but are neither options nor option arguments. Feel free to modify " +"``parser.largs``, e.g. by adding more arguments to it. (This list will " +"become ``args``, the second return value of :meth:`parse_args`.)" +msgstr "" + +#: ../Doc/library/optparse.rst:1653 +msgid "``parser.rargs``" +msgstr "``parser.rargs``" + +#: ../Doc/library/optparse.rst:1650 +msgid "" +"the current list of remaining arguments, ie. with ``opt_str`` and ``value`` " +"(if applicable) removed, and only the arguments following them still there. " +"Feel free to modify ``parser.rargs``, e.g. by consuming more arguments." +msgstr "" + +#: ../Doc/library/optparse.rst:1660 +msgid "``parser.values``" +msgstr "``parser.values``" + +#: ../Doc/library/optparse.rst:1656 +msgid "" +"the object where option values are by default stored (an instance of " +"optparse.OptionValues). This lets callbacks use the same mechanism as the " +"rest of :mod:`optparse` for storing option values; you don't need to mess " +"around with globals or closures. You can also access or modify the value(s) " +"of any options already encountered on the command-line." +msgstr "" + +#: ../Doc/library/optparse.rst:1663 +msgid "" +"is a tuple of arbitrary positional arguments supplied via the :attr:`~Option." +"callback_args` option attribute." +msgstr "" + +#: ../Doc/library/optparse.rst:1669 +msgid "``kwargs``" +msgstr "``kwargs``" + +#: ../Doc/library/optparse.rst:1667 +msgid "" +"is a dictionary of arbitrary keyword arguments supplied via :attr:`~Option." +"callback_kwargs`." +msgstr "" + +#: ../Doc/library/optparse.rst:1674 +msgid "Raising errors in a callback" +msgstr "" + +#: ../Doc/library/optparse.rst:1676 +msgid "" +"The callback function should raise :exc:`OptionValueError` if there are any " +"problems with the option or its argument(s). :mod:`optparse` catches this " +"and terminates the program, printing the error message you supply to " +"stderr. Your message should be clear, concise, accurate, and mention the " +"option at fault. Otherwise, the user will have a hard time figuring out what " +"they did wrong." +msgstr "" + +#: ../Doc/library/optparse.rst:1686 +msgid "Callback example 1: trivial callback" +msgstr "" + +#: ../Doc/library/optparse.rst:1688 +msgid "" +"Here's an example of a callback option that takes no arguments, and simply " +"records that the option was seen::" +msgstr "" + +#: ../Doc/library/optparse.rst:1696 +msgid "Of course, you could do that with the ``\"store_true\"`` action." +msgstr "" + +#: ../Doc/library/optparse.rst:1702 +msgid "Callback example 2: check option order" +msgstr "" + +#: ../Doc/library/optparse.rst:1704 +msgid "" +"Here's a slightly more interesting example: record the fact that ``-a`` is " +"seen, but blow up if it comes after ``-b`` in the command-line. ::" +msgstr "" + +#: ../Doc/library/optparse.rst:1719 +msgid "Callback example 3: check option order (generalized)" +msgstr "" + +#: ../Doc/library/optparse.rst:1721 +msgid "" +"If you want to re-use this callback for several similar options (set a flag, " +"but blow up if ``-b`` has already been seen), it needs a bit of work: the " +"error message and the flag that it sets must be generalized. ::" +msgstr "" + +#: ../Doc/library/optparse.rst:1738 +msgid "Callback example 4: check arbitrary condition" +msgstr "" + +#: ../Doc/library/optparse.rst:1740 +msgid "" +"Of course, you could put any condition in there---you're not limited to " +"checking the values of already-defined options. For example, if you have " +"options that should not be called when the moon is full, all you have to do " +"is this::" +msgstr "" + +#: ../Doc/library/optparse.rst:1753 +msgid "" +"(The definition of ``is_moon_full()`` is left as an exercise for the reader.)" +msgstr "" + +#: ../Doc/library/optparse.rst:1759 +msgid "Callback example 5: fixed arguments" +msgstr "" + +#: ../Doc/library/optparse.rst:1761 +msgid "" +"Things get slightly more interesting when you define callback options that " +"take a fixed number of arguments. Specifying that a callback option takes " +"arguments is similar to defining a ``\"store\"`` or ``\"append\"`` option: " +"if you define :attr:`~Option.type`, then the option takes one argument that " +"must be convertible to that type; if you further define :attr:`~Option." +"nargs`, then the option takes :attr:`~Option.nargs` arguments." +msgstr "" + +#: ../Doc/library/optparse.rst:1768 +msgid "" +"Here's an example that just emulates the standard ``\"store\"`` action::" +msgstr "" + +#: ../Doc/library/optparse.rst:1777 +msgid "" +"Note that :mod:`optparse` takes care of consuming 3 arguments and converting " +"them to integers for you; all you have to do is store them. (Or whatever; " +"obviously you don't need a callback for this example.)" +msgstr "" + +#: ../Doc/library/optparse.rst:1785 +msgid "Callback example 6: variable arguments" +msgstr "" + +#: ../Doc/library/optparse.rst:1787 +msgid "" +"Things get hairy when you want an option to take a variable number of " +"arguments. For this case, you must write a callback, as :mod:`optparse` " +"doesn't provide any built-in capabilities for it. And you have to deal with " +"certain intricacies of conventional Unix command-line parsing that :mod:" +"`optparse` normally handles for you. In particular, callbacks should " +"implement the conventional rules for bare ``--`` and ``-`` arguments:" +msgstr "" + +#: ../Doc/library/optparse.rst:1794 +msgid "either ``--`` or ``-`` can be option arguments" +msgstr "" + +#: ../Doc/library/optparse.rst:1796 +msgid "" +"bare ``--`` (if not the argument to some option): halt command-line " +"processing and discard the ``--``" +msgstr "" + +#: ../Doc/library/optparse.rst:1799 +msgid "" +"bare ``-`` (if not the argument to some option): halt command-line " +"processing but keep the ``-`` (append it to ``parser.largs``)" +msgstr "" + +#: ../Doc/library/optparse.rst:1802 +msgid "" +"If you want an option that takes a variable number of arguments, there are " +"several subtle, tricky issues to worry about. The exact implementation you " +"choose will be based on which trade-offs you're willing to make for your " +"application (which is why :mod:`optparse` doesn't support this sort of thing " +"directly)." +msgstr "" + +#: ../Doc/library/optparse.rst:1808 +msgid "" +"Nevertheless, here's a stab at a callback for an option with variable " +"arguments::" +msgstr "" + +#: ../Doc/library/optparse.rst:1842 +msgid "Extending :mod:`optparse`" +msgstr "" + +#: ../Doc/library/optparse.rst:1844 +msgid "" +"Since the two major controlling factors in how :mod:`optparse` interprets " +"command-line options are the action and type of each option, the most likely " +"direction of extension is to add new actions and new types." +msgstr "" + +#: ../Doc/library/optparse.rst:1852 +msgid "Adding new types" +msgstr "" + +#: ../Doc/library/optparse.rst:1854 +msgid "" +"To add new types, you need to define your own subclass of :mod:`optparse`'s :" +"class:`Option` class. This class has a couple of attributes that define :" +"mod:`optparse`'s types: :attr:`~Option.TYPES` and :attr:`~Option." +"TYPE_CHECKER`." +msgstr "" + +#: ../Doc/library/optparse.rst:1860 +msgid "" +"A tuple of type names; in your subclass, simply define a new tuple :attr:" +"`TYPES` that builds on the standard one." +msgstr "" + +#: ../Doc/library/optparse.rst:1865 +msgid "" +"A dictionary mapping type names to type-checking functions. A type-checking " +"function has the following signature::" +msgstr "" + +#: ../Doc/library/optparse.rst:1870 +msgid "" +"where ``option`` is an :class:`Option` instance, ``opt`` is an option string " +"(e.g., ``-f``), and ``value`` is the string from the command line that must " +"be checked and converted to your desired type. ``check_mytype()`` should " +"return an object of the hypothetical type ``mytype``. The value returned by " +"a type-checking function will wind up in the OptionValues instance returned " +"by :meth:`OptionParser.parse_args`, or be passed to a callback as the " +"``value`` parameter." +msgstr "" + +#: ../Doc/library/optparse.rst:1878 +msgid "" +"Your type-checking function should raise :exc:`OptionValueError` if it " +"encounters any problems. :exc:`OptionValueError` takes a single string " +"argument, which is passed as-is to :class:`OptionParser`'s :meth:`error` " +"method, which in turn prepends the program name and the string ``\"error:" +"\"`` and prints everything to stderr before terminating the process." +msgstr "" + +#: ../Doc/library/optparse.rst:1884 +msgid "" +"Here's a silly example that demonstrates adding a ``\"complex\"`` option " +"type to parse Python-style complex numbers on the command line. (This is " +"even sillier than it used to be, because :mod:`optparse` 1.3 added built-in " +"support for complex numbers, but never mind.)" +msgstr "" + +#: ../Doc/library/optparse.rst:1889 +msgid "First, the necessary imports::" +msgstr "" + +#: ../Doc/library/optparse.rst:1894 +msgid "" +"You need to define your type-checker first, since it's referred to later (in " +"the :attr:`~Option.TYPE_CHECKER` class attribute of your Option subclass)::" +msgstr "" + +#: ../Doc/library/optparse.rst:1904 +msgid "Finally, the Option subclass::" +msgstr "" + +#: ../Doc/library/optparse.rst:1911 +msgid "" +"(If we didn't make a :func:`copy` of :attr:`Option.TYPE_CHECKER`, we would " +"end up modifying the :attr:`~Option.TYPE_CHECKER` attribute of :mod:" +"`optparse`'s Option class. This being Python, nothing stops you from doing " +"that except good manners and common sense.)" +msgstr "" + +#: ../Doc/library/optparse.rst:1916 +msgid "" +"That's it! Now you can write a script that uses the new option type just " +"like any other :mod:`optparse`\\ -based script, except you have to instruct " +"your OptionParser to use MyOption instead of Option::" +msgstr "" + +#: ../Doc/library/optparse.rst:1923 +msgid "" +"Alternately, you can build your own option list and pass it to OptionParser; " +"if you don't use :meth:`add_option` in the above way, you don't need to tell " +"OptionParser which option class to use::" +msgstr "" + +#: ../Doc/library/optparse.rst:1934 +msgid "Adding new actions" +msgstr "" + +#: ../Doc/library/optparse.rst:1936 +msgid "" +"Adding new actions is a bit trickier, because you have to understand that :" +"mod:`optparse` has a couple of classifications for actions:" +msgstr "" + +#: ../Doc/library/optparse.rst:1942 +msgid "\"store\" actions" +msgstr "" + +#: ../Doc/library/optparse.rst:1940 +msgid "" +"actions that result in :mod:`optparse` storing a value to an attribute of " +"the current OptionValues instance; these options require a :attr:`~Option." +"dest` attribute to be supplied to the Option constructor." +msgstr "" + +#: ../Doc/library/optparse.rst:1948 +msgid "\"typed\" actions" +msgstr "" + +#: ../Doc/library/optparse.rst:1945 +msgid "" +"actions that take a value from the command line and expect it to be of a " +"certain type; or rather, a string that can be converted to a certain type. " +"These options require a :attr:`~Option.type` attribute to the Option " +"constructor." +msgstr "" + +#: ../Doc/library/optparse.rst:1950 +msgid "" +"These are overlapping sets: some default \"store\" actions are ``\"store" +"\"``, ``\"store_const\"``, ``\"append\"``, and ``\"count\"``, while the " +"default \"typed\" actions are ``\"store\"``, ``\"append\"``, and ``\"callback" +"\"``." +msgstr "" + +#: ../Doc/library/optparse.rst:1954 +msgid "" +"When you add an action, you need to categorize it by listing it in at least " +"one of the following class attributes of Option (all are lists of strings):" +msgstr "" + +#: ../Doc/library/optparse.rst:1959 +msgid "All actions must be listed in ACTIONS." +msgstr "" + +#: ../Doc/library/optparse.rst:1963 +msgid "\"store\" actions are additionally listed here." +msgstr "" + +#: ../Doc/library/optparse.rst:1967 +msgid "\"typed\" actions are additionally listed here." +msgstr "" + +#: ../Doc/library/optparse.rst:1971 +msgid "" +"Actions that always take a type (i.e. whose options always take a value) are " +"additionally listed here. The only effect of this is that :mod:`optparse` " +"assigns the default type, ``\"string\"``, to options with no explicit type " +"whose action is listed in :attr:`ALWAYS_TYPED_ACTIONS`." +msgstr "" + +#: ../Doc/library/optparse.rst:1976 +msgid "" +"In order to actually implement your new action, you must override Option's :" +"meth:`take_action` method and add a case that recognizes your action." +msgstr "" + +#: ../Doc/library/optparse.rst:1979 +msgid "" +"For example, let's add an ``\"extend\"`` action. This is similar to the " +"standard ``\"append\"`` action, but instead of taking a single value from " +"the command-line and appending it to an existing list, ``\"extend\"`` will " +"take multiple values in a single comma-delimited string, and extend an " +"existing list with them. That is, if ``--names`` is an ``\"extend\"`` " +"option of type ``\"string\"``, the command line ::" +msgstr "" + +#: ../Doc/library/optparse.rst:1988 +msgid "would result in a list ::" +msgstr "" + +#: ../Doc/library/optparse.rst:1992 +msgid "Again we define a subclass of Option::" +msgstr "" + +#: ../Doc/library/optparse.rst:2009 +msgid "Features of note:" +msgstr "" + +#: ../Doc/library/optparse.rst:2011 +msgid "" +"``\"extend\"`` both expects a value on the command-line and stores that " +"value somewhere, so it goes in both :attr:`~Option.STORE_ACTIONS` and :attr:" +"`~Option.TYPED_ACTIONS`." +msgstr "" + +#: ../Doc/library/optparse.rst:2015 +msgid "" +"to ensure that :mod:`optparse` assigns the default type of ``\"string\"`` to " +"``\"extend\"`` actions, we put the ``\"extend\"`` action in :attr:`~Option." +"ALWAYS_TYPED_ACTIONS` as well." +msgstr "" + +#: ../Doc/library/optparse.rst:2019 +msgid "" +":meth:`MyOption.take_action` implements just this one new action, and passes " +"control back to :meth:`Option.take_action` for the standard :mod:`optparse` " +"actions." +msgstr "" + +#: ../Doc/library/optparse.rst:2023 +msgid "" +"``values`` is an instance of the optparse_parser.Values class, which " +"provides the very useful :meth:`ensure_value` method. :meth:`ensure_value` " +"is essentially :func:`getattr` with a safety valve; it is called as ::" +msgstr "" + +#: ../Doc/library/optparse.rst:2029 +msgid "" +"If the ``attr`` attribute of ``values`` doesn't exist or is ``None``, then " +"ensure_value() first sets it to ``value``, and then returns 'value. This is " +"very handy for actions like ``\"extend\"``, ``\"append\"``, and ``\"count" +"\"``, all of which accumulate data in a variable and expect that variable to " +"be of a certain type (a list for the first two, an integer for the latter). " +"Using :meth:`ensure_value` means that scripts using your action don't have " +"to worry about setting a default value for the option destinations in " +"question; they can just leave the default as ``None`` and :meth:" +"`ensure_value` will take care of getting it right when it's needed." +msgstr "" + +#, fuzzy +#~ msgid "\"help\"" +#~ msgstr "``\"help\"``" + +#, fuzzy +#~ msgid "options" +#~ msgstr "``options``" + +#~ msgid "nargs" +#~ msgstr "nargs" diff --git a/library/os.path.po b/library/os.path.po new file mode 100644 index 000000000..462c69265 --- /dev/null +++ b/library/os.path.po @@ -0,0 +1,483 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 21:40+0200\n" +"Last-Translator: Paul Bourhis \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" + +#: ../Doc/library/os.path.rst:2 +msgid ":mod:`os.path` --- Common pathname manipulations" +msgstr ":mod:`os.path` — manipulation courante des chemins" + +#: ../Doc/library/os.path.rst:7 +msgid "" +"**Source code:** :source:`Lib/posixpath.py` (for POSIX), :source:`Lib/ntpath." +"py` (for Windows NT), and :source:`Lib/macpath.py` (for Macintosh)" +msgstr "" +"**Code source :** :source:`Lib/posixpath.py` (pour POSIX), :source:`Lib/" +"ntpath.py` (pour Windows NT), et :source:`Lib/macpath.py` (pour Macintosh)" + +#: ../Doc/library/os.path.rst:15 +msgid "" +"This module implements some useful functions on pathnames. To read or write " +"files see :func:`open`, and for accessing the filesystem see the :mod:`os` " +"module. The path parameters can be passed as either strings, or bytes. " +"Applications are encouraged to represent file names as (Unicode) character " +"strings. Unfortunately, some file names may not be representable as strings " +"on Unix, so applications that need to support arbitrary file names on Unix " +"should use bytes objects to represent path names. Vice versa, using bytes " +"objects cannot represent all file names on Windows (in the standard ``mbcs`` " +"encoding), hence Windows applications should use string objects to access " +"all files." +msgstr "" +"Ce module implémente certaines fonctions utiles sur le nom des chemins. Pour " +"lire ou écrire des fichiers, voir :func:`open`, et pour accéder au système " +"de fichier, voir le module :mod:`os`. Les paramètres de chemin d’accès " +"peuvent être passés sous forme de chaînes de caractères ou de chaîne " +"d'octets. Les programmes sont encouragés à représenter les noms de fichiers " +"en tant que chaînes de caractères Unicode. Malheureusement, certains noms de " +"fichiers peuvent ne pas être représentés sous forme de chaînes de caractères " +"sous UNIX, ainsi, les programmes qui doivent prendre en charge les noms de " +"fichiers arbitraires sur UNIX doivent utiliser des chaînes d'octets pour " +"représenter leurs chemins d’accès. Inversement, l’utilisation de chaîne " +"d'octets ne peut pas représenter tous les noms de fichiers sous Windows " +"(dans le codage ``mbcs`` standard), par conséquent les applications Windows " +"doivent utiliser des chaînes de caractères Unicode pour accéder à tous les " +"fichiers." + +#: ../Doc/library/os.path.rst:26 +msgid "" +"Unlike a unix shell, Python does not do any *automatic* path expansions. " +"Functions such as :func:`expanduser` and :func:`expandvars` can be invoked " +"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:33 +msgid "The :mod:`pathlib` module offers high-level path objects." +msgstr "" +"Le module :mod:`pathlib` offre une représentation objet de haut niveau des " +"chemins." + +#: ../Doc/library/os.path.rst:38 +msgid "" +"All of these functions accept either only bytes or only string objects as " +"their parameters. The result is an object of the same type, if a path or " +"file name is returned." +msgstr "" +"Toutes ces fonctions n'acceptent que des chaînes d'octets ou des chaînes de " +"caractères en tant que paramètres. Le résultat est un objet du même type si " +"un chemin ou un nom de fichier est renvoyé." + +#: ../Doc/library/os.path.rst:45 +msgid "" +"Since different operating systems have different path name conventions, " +"there are several versions of this module in the standard library. The :mod:" +"`os.path` module is always the path module suitable for the operating system " +"Python is running on, and therefore usable for local paths. However, you " +"can also import and use the individual modules if you want to manipulate a " +"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:53 +msgid ":mod:`posixpath` for UNIX-style paths" +msgstr ":mod:`posixpath` pour les chemins de type UNIX" + +#: ../Doc/library/os.path.rst:54 +msgid ":mod:`ntpath` for Windows paths" +msgstr ":mod:`ntpath` pour les chemins Windows" + +#: ../Doc/library/os.path.rst:55 +msgid ":mod:`macpath` for old-style MacOS paths" +msgstr ":mod:`macpath` pour l'ancienne forme des chemins MacOS" + +#: ../Doc/library/os.path.rst:60 +msgid "" +"Return a normalized absolutized version of the pathname *path*. On most " +"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:64 ../Doc/library/os.path.rst:77 +#: ../Doc/library/os.path.rst:116 ../Doc/library/os.path.rst:125 +#: ../Doc/library/os.path.rst:141 ../Doc/library/os.path.rst:151 +#: ../Doc/library/os.path.rst:177 ../Doc/library/os.path.rst:194 +#: ../Doc/library/os.path.rst:211 ../Doc/library/os.path.rst:223 +#: ../Doc/library/os.path.rst:232 ../Doc/library/os.path.rst:242 +#: ../Doc/library/os.path.rst:252 ../Doc/library/os.path.rst:262 +#: ../Doc/library/os.path.rst:272 ../Doc/library/os.path.rst:291 +#: ../Doc/library/os.path.rst:324 ../Doc/library/os.path.rst:336 +#: ../Doc/library/os.path.rst:345 ../Doc/library/os.path.rst:360 +#: ../Doc/library/os.path.rst:378 ../Doc/library/os.path.rst:391 +#: ../Doc/library/os.path.rst:407 ../Doc/library/os.path.rst:423 +#: ../Doc/library/os.path.rst:444 ../Doc/library/os.path.rst:455 +msgid "Accepts a :term:`path-like object`." +msgstr "Accepte un :term:`path-like object`." + +#: ../Doc/library/os.path.rst:70 +msgid "" +"Return the base name of pathname *path*. This is the second element of the " +"pair returned by passing *path* to the function :func:`split`. Note that " +"the result of this function is different from the Unix :program:`basename` " +"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:83 +msgid "" +"Return the longest common sub-path of each pathname in the sequence " +"*paths*. Raise :exc:`ValueError` if *paths* contains both absolute and " +"relative pathnames, or if *paths* is empty. Unlike :func:`commonprefix`, " +"this returns a valid path." +msgstr "" + +#: ../Doc/library/os.path.rst:89 ../Doc/library/os.path.rst:359 +#: ../Doc/library/os.path.rst:371 ../Doc/library/os.path.rst:387 +#: ../Doc/library/os.path.rst:403 +msgid ":ref:`Availability `: Unix, Windows." +msgstr ":ref:`Disponibilité ` : Unix, Windows." + +#: ../Doc/library/os.path.rst:92 +msgid "Accepts a sequence of :term:`path-like objects `." +msgstr "" + +#: ../Doc/library/os.path.rst:98 +msgid "" +"Return the longest path prefix (taken character-by-character) that is a " +"prefix of all paths in *list*. If *list* is empty, return the empty string " +"(``''``)." +msgstr "" + +#: ../Doc/library/os.path.rst:104 +msgid "" +"This function may return invalid paths because it works a character at a " +"time. To obtain a valid path, see :func:`commonpath`." +msgstr "" + +#: ../Doc/library/os.path.rst:122 +msgid "" +"Return the directory name of pathname *path*. This is the first element of " +"the pair returned by passing *path* to the function :func:`split`." +msgstr "" + +#: ../Doc/library/os.path.rst:131 +msgid "" +"Return ``True`` if *path* refers to an existing path or an open file " +"descriptor. Returns ``False`` for broken symbolic links. On some " +"platforms, this function may return ``False`` if permission is not granted " +"to execute :func:`os.stat` on the requested file, even if the *path* " +"physically exists." +msgstr "" + +#: ../Doc/library/os.path.rst:137 +msgid "" +"*path* can now be an integer: ``True`` is returned if it is an open file " +"descriptor, ``False`` otherwise." +msgstr "" + +#: ../Doc/library/os.path.rst:147 +msgid "" +"Return ``True`` if *path* refers to an existing path. Returns ``True`` for " +"broken symbolic links. Equivalent to :func:`exists` on platforms lacking :" +"func:`os.lstat`." +msgstr "" + +#: ../Doc/library/os.path.rst:159 +msgid "" +"On Unix and Windows, return the argument with an initial component of ``~`` " +"or ``~user`` replaced by that *user*'s home directory." +msgstr "" + +#: ../Doc/library/os.path.rst:164 +msgid "" +"On Unix, an initial ``~`` is replaced by the environment variable :envvar:" +"`HOME` if it is set; otherwise the current user's home directory is looked " +"up in the password directory through the built-in module :mod:`pwd`. An " +"initial ``~user`` is looked up directly in the password directory." +msgstr "" + +#: ../Doc/library/os.path.rst:169 +msgid "" +"On Windows, :envvar:`HOME` and :envvar:`USERPROFILE` will be used if set, " +"otherwise a combination of :envvar:`HOMEPATH` and :envvar:`HOMEDRIVE` will " +"be used. An initial ``~user`` is handled by stripping the last directory " +"component from the created user path derived above." +msgstr "" + +#: ../Doc/library/os.path.rst:174 +msgid "" +"If the expansion fails or if the path does not begin with a tilde, the path " +"is returned unchanged." +msgstr "" + +#: ../Doc/library/os.path.rst:186 +msgid "" +"Return the argument with environment variables expanded. Substrings of the " +"form ``$name`` or ``${name}`` are replaced by the value of environment " +"variable *name*. Malformed variable names and references to non-existing " +"variables are left unchanged." +msgstr "" + +#: ../Doc/library/os.path.rst:191 +msgid "" +"On Windows, ``%name%`` expansions are supported in addition to ``$name`` and " +"``${name}``." +msgstr "" + +#: ../Doc/library/os.path.rst:200 +msgid "" +"Return the time of last access of *path*. The return value is a floating " +"point number giving the number of seconds since the epoch (see the :mod:" +"`time` module). Raise :exc:`OSError` if the file does not exist or is " +"inaccessible." +msgstr "" + +#: ../Doc/library/os.path.rst:207 +msgid "" +"Return the time of last modification of *path*. The return value is a " +"floating point number giving the number of seconds since the epoch (see " +"the :mod:`time` module). Raise :exc:`OSError` if the file does not exist or " +"is inaccessible." +msgstr "" + +#: ../Doc/library/os.path.rst:217 +msgid "" +"Return the system's ctime which, on some systems (like Unix) is the time of " +"the last metadata change, and, on others (like Windows), is the creation " +"time for *path*. The return value is a number giving the number of seconds " +"since the epoch (see the :mod:`time` module). Raise :exc:`OSError` if the " +"file does not exist or is inaccessible." +msgstr "" + +#: ../Doc/library/os.path.rst:229 +msgid "" +"Return the size, in bytes, of *path*. Raise :exc:`OSError` if the file does " +"not exist or is inaccessible." +msgstr "" + +#: ../Doc/library/os.path.rst:238 +msgid "" +"Return ``True`` if *path* is an absolute pathname. On Unix, that means it " +"begins with a slash, on Windows that it begins with a (back)slash after " +"chopping off a potential drive letter." +msgstr "" + +#: ../Doc/library/os.path.rst:248 +msgid "" +"Return ``True`` if *path* is an :func:`existing ` regular file. This " +"follows symbolic links, so both :func:`islink` and :func:`isfile` can be " +"true for the same path." +msgstr "" + +#: ../Doc/library/os.path.rst:258 +msgid "" +"Return ``True`` if *path* is an :func:`existing ` directory. This " +"follows symbolic links, so both :func:`islink` and :func:`isdir` can be true " +"for the same path." +msgstr "" + +#: ../Doc/library/os.path.rst:268 +msgid "" +"Return ``True`` if *path* refers to an :func:`existing ` directory " +"entry that is a symbolic link. Always ``False`` if symbolic links are not " +"supported by the Python runtime." +msgstr "" + +#: ../Doc/library/os.path.rst:278 +msgid "" +"Return ``True`` if pathname *path* is a :dfn:`mount point`: a point in a " +"file system where a different file system has been mounted. On POSIX, the " +"function checks whether *path*'s parent, :file:`{path}/..`, is on a " +"different device than *path*, or whether :file:`{path}/..` and *path* point " +"to the same i-node on the same device --- this should detect mount points " +"for all Unix and POSIX variants. It is not able to reliably detect bind " +"mounts on the same filesystem. On Windows, a drive letter root and a share " +"UNC are always mount points, and for any other path ``GetVolumePathName`` is " +"called to see if it is different from the input path." +msgstr "" + +#: ../Doc/library/os.path.rst:288 +msgid "Support for detecting non-root mount points on Windows." +msgstr "" + +#: ../Doc/library/os.path.rst:297 +msgid "" +"Join one or more path components intelligently. The return value is the " +"concatenation of *path* and any members of *\\*paths* with exactly one " +"directory separator (``os.sep``) following each non-empty part except the " +"last, meaning that the result will only end in a separator if the last part " +"is empty. If a component is an absolute path, all previous components are " +"thrown away and joining continues from the absolute path component." +msgstr "" + +#: ../Doc/library/os.path.rst:305 +msgid "" +"On Windows, the drive letter is not reset when an absolute path component (e." +"g., ``r'\\foo'``) is encountered. If a component contains a drive letter, " +"all previous components are thrown away and the drive letter is reset. Note " +"that since there is a current directory for each drive, ``os.path.join(\"c:" +"\", \"foo\")`` represents a path relative to the current directory on drive :" +"file:`C:` (:file:`c:foo`), not :file:`c:\\\\foo`." +msgstr "" + +#: ../Doc/library/os.path.rst:312 +msgid "Accepts a :term:`path-like object` for *path* and *paths*." +msgstr "" + +#: ../Doc/library/os.path.rst:318 +msgid "" +"Normalize the case of a pathname. On Windows, convert all characters in the " +"pathname to lowercase, and also convert forward slashes to backward slashes. " +"On other operating systems, return the path unchanged. Raise a :exc:" +"`TypeError` if the type of *path* is not ``str`` or ``bytes`` (directly or " +"indirectly through the :class:`os.PathLike` interface)." +msgstr "" + +#: ../Doc/library/os.path.rst:330 +msgid "" +"Normalize a pathname by collapsing redundant separators and up-level " +"references so that ``A//B``, ``A/B/``, ``A/./B`` and ``A/foo/../B`` all " +"become ``A/B``. This string manipulation may change the meaning of a path " +"that contains symbolic links. On Windows, it converts forward slashes to " +"backward slashes. To normalize case, use :func:`normcase`." +msgstr "" + +#: ../Doc/library/os.path.rst:342 +msgid "" +"Return the canonical path of the specified filename, eliminating any " +"symbolic links encountered in the path (if they are supported by the " +"operating system)." +msgstr "" + +#: ../Doc/library/os.path.rst:351 +msgid "" +"Return a relative filepath to *path* either from the current directory or " +"from an optional *start* directory. This is a path computation: the " +"filesystem is not accessed to confirm the existence or nature of *path* or " +"*start*." +msgstr "" + +#: ../Doc/library/os.path.rst:356 +msgid "*start* defaults to :attr:`os.curdir`." +msgstr "" + +#: ../Doc/library/os.path.rst:366 +msgid "" +"Return ``True`` if both pathname arguments refer to the same file or " +"directory. This is determined by the device number and i-node number and " +"raises an exception if an :func:`os.stat` call on either pathname fails." +msgstr "" + +#: ../Doc/library/os.path.rst:372 ../Doc/library/os.path.rst:388 +#: ../Doc/library/os.path.rst:404 +msgid "Added Windows support." +msgstr "Prise en charge de Windows." + +#: ../Doc/library/os.path.rst:375 +msgid "Windows now uses the same implementation as all other platforms." +msgstr "" + +#: ../Doc/library/os.path.rst:384 +msgid "" +"Return ``True`` if the file descriptors *fp1* and *fp2* refer to the same " +"file." +msgstr "" + +#: ../Doc/library/os.path.rst:397 +msgid "" +"Return ``True`` if the stat tuples *stat1* and *stat2* refer to the same " +"file. These structures may have been returned by :func:`os.fstat`, :func:`os." +"lstat`, or :func:`os.stat`. This function implements the underlying " +"comparison used by :func:`samefile` and :func:`sameopenfile`." +msgstr "" + +#: ../Doc/library/os.path.rst:413 +msgid "" +"Split the pathname *path* into a pair, ``(head, tail)`` where *tail* is the " +"last pathname component and *head* is everything leading up to that. The " +"*tail* part will never contain a slash; if *path* ends in a slash, *tail* " +"will be empty. If there is no slash in *path*, *head* will be empty. If " +"*path* is empty, both *head* and *tail* are empty. Trailing slashes are " +"stripped from *head* unless it is the root (one or more slashes only). In " +"all cases, ``join(head, tail)`` returns a path to the same location as " +"*path* (but the strings may differ). Also see the functions :func:`dirname` " +"and :func:`basename`." +msgstr "" + +#: ../Doc/library/os.path.rst:429 +msgid "" +"Split the pathname *path* into a pair ``(drive, tail)`` where *drive* is " +"either a mount point or the empty string. On systems which do not use drive " +"specifications, *drive* will always be the empty string. In all cases, " +"``drive + tail`` will be the same as *path*." +msgstr "" + +#: ../Doc/library/os.path.rst:434 +msgid "" +"On Windows, splits a pathname into drive/UNC sharepoint and relative path." +msgstr "" + +#: ../Doc/library/os.path.rst:436 +msgid "" +"If the path contains a drive letter, drive will contain everything up to and " +"including the colon. e.g. ``splitdrive(\"c:/dir\")`` returns ``(\"c:\", \"/" +"dir\")``" +msgstr "" + +#: ../Doc/library/os.path.rst:440 +msgid "" +"If the path contains a UNC path, drive will contain the host name and share, " +"up to but not including the fourth separator. e.g. ``splitdrive(\"//host/" +"computer/dir\")`` returns ``(\"//host/computer\", \"/dir\")``" +msgstr "" + +#: ../Doc/library/os.path.rst:450 +msgid "" +"Split the pathname *path* into a pair ``(root, ext)`` such that ``root + " +"ext == path``, and *ext* is empty or begins with a period and contains at " +"most one period. Leading periods on the basename are ignored; ``splitext('." +"cshrc')`` returns ``('.cshrc', '')``." +msgstr "" + +#: ../Doc/library/os.path.rst:461 +msgid "" +"``True`` if arbitrary Unicode strings can be used as file names (within " +"limitations imposed by the file system)." +msgstr "" + +#~ msgid "Availability: Unix, Windows" +#~ msgstr "Disponibilité Unix, Windows" + +#~ msgid "Availability: Windows." +#~ msgstr "Disponibilité : Windows." diff --git a/library/os.po b/library/os.po new file mode 100644 index 000000000..7d159a392 --- /dev/null +++ b/library/os.po @@ -0,0 +1,6047 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-06-18 22:02+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/os.rst:2 +msgid ":mod:`os` --- Miscellaneous operating system interfaces" +msgstr ":mod:`os` — Diverses interfaces pour le système d'exploitation" + +#: ../Doc/library/os.rst:7 +msgid "**Source code:** :source:`Lib/os.py`" +msgstr "**Code source:** :source:`Lib/os.py`" + +#: ../Doc/library/os.rst:11 +msgid "" +"This module provides a portable way of using operating system dependent " +"functionality. If you just want to read or write a file see :func:`open`, " +"if you want to manipulate paths, see the :mod:`os.path` module, and if you " +"want to read all the lines in all the files on the command line see the :mod:" +"`fileinput` module. For creating temporary files and directories see the :" +"mod:`tempfile` module, and for high-level file and directory handling see " +"the :mod:`shutil` module." +msgstr "" +"Ce module fournit une manière portable d'utiliser les fonctionnalités " +"dépendantes du système d'exploitation. Si vous voulez uniquement lire ou " +"écrire dans un fichier, voir :func:`open`, si vous voulez manipuler des " +"chemins, voir le module :mod:`os.path`, et si vous voulez lire toutes les " +"lignes de tous les fichiers listés par l'invite de commande, voir le module :" +"mod:`fileinput`. Pour créer des fichiers temporaires, voir le module :mod:" +"`tempfile`, et pour une manipulation haut niveau des fichiers et dossiers, " +"voir le module :mod:`shutil`." + +#: ../Doc/library/os.rst:19 +msgid "Notes on the availability of these functions:" +msgstr "Notes sur la disponibilité de ces fonctions :" + +#: ../Doc/library/os.rst:21 +msgid "" +"The design of all built-in operating system dependent modules of Python is " +"such that as long as the same functionality is available, it uses the same " +"interface; for example, the function ``os.stat(path)`` returns stat " +"information about *path* in the same format (which happens to have " +"originated with the POSIX interface)." +msgstr "" +"La conception des modules natifs Python dépendants du système d'exploitation " +"est qu'une même fonctionnalité utilise une même interface. Par exemple, la " +"fonction ``os.stat(path)`` renvoie des informations sur les statistiques de " +"*path* dans le même format (qui est originaire de l'interface POSIX)." + +#: ../Doc/library/os.rst:27 +msgid "" +"Extensions peculiar to a particular operating system are also available " +"through the :mod:`os` module, but using them is of course a threat to " +"portability." +msgstr "" +"Les extensions propres à un certain système d'exploitation sont également " +"disponible par le module :mod:`os`, mais les utiliser est bien entendu une " +"menace pour la portabilité." + +#: ../Doc/library/os.rst:31 +msgid "" +"All functions accepting path or file names accept both bytes and string " +"objects, and result in an object of the same type, if a path or file name is " +"returned." +msgstr "" +"Toutes les fonctions acceptant les chemins ou noms de fichiers acceptent " +"aussi bien des *bytes* que des *string*, et si un chemin ou un nom de " +"fichier est renvoyé, il sera du même type." + +#: ../Doc/library/os.rst:38 +msgid "" +"All functions in this module raise :exc:`OSError` in the case of invalid or " +"inaccessible file names and paths, or other arguments that have the correct " +"type, but are not accepted by the operating system." +msgstr "" +"Toutes les fonctions de ce module lèvent une :exc:`OSError` dans le cas d'un " +"chemin ou nom de fichier invalide ou inaccessible, ou si d'autres arguments " +"sont de type correct mais non géré par le système d'exploitation." + +#: ../Doc/library/os.rst:44 +msgid "An alias for the built-in :exc:`OSError` exception." +msgstr "Un alias pour les exceptions natives :exc:`OSError`." + +#: ../Doc/library/os.rst:49 +msgid "" +"The name of the operating system dependent module imported. The following " +"names have currently been registered: ``'posix'``, ``'nt'``, ``'java'``." +msgstr "" +"Le nom du module importé dépendant du système d'exploitation. Les noms " +"suivants ont actuellement été enregistrés : ``'posix'``, ``'nt'``, " +"``'java'``." + +#: ../Doc/library/os.rst:54 +msgid "" +":attr:`sys.platform` has a finer granularity. :func:`os.uname` gives system-" +"dependent version information." +msgstr "" +":attr:`sys.platform` a une granularité plus fine. :func:`os.uname` donne des " +"informations de version dépendantes de système." + +#: ../Doc/library/os.rst:57 +msgid "" +"The :mod:`platform` module provides detailed checks for the system's " +"identity." +msgstr "" +"Le module :mod:`platform` fournit des vérifications détaillées pour " +"l'identité du système." + +#: ../Doc/library/os.rst:65 +msgid "File Names, Command Line Arguments, and Environment Variables" +msgstr "" +"Noms de fichiers, arguments en ligne de commande, et variables " +"d'environnement" + +#: ../Doc/library/os.rst:67 +msgid "" +"In Python, file names, command line arguments, and environment variables are " +"represented using the string type. On some systems, decoding these strings " +"to and from bytes is necessary before passing them to the operating system. " +"Python uses the file system encoding to perform this conversion (see :func:" +"`sys.getfilesystemencoding`)." +msgstr "" +"En Python, les noms de fichiers, les arguments en ligne de commandes, et les " +"variables d'environnement sont représentées en utilisant le type *string*. " +"Sur certains systèmes, décoder ces chaînes de caractères depuis et vers des " +"*bytes* est nécessaire avant de les passer au système d'exploitation. Python " +"utilise l'encodage du système de fichiers pour réaliser ces conversions " +"(voir :func:`sys.getfilesystemencoding`)." + +#: ../Doc/library/os.rst:73 +msgid "" +"On some systems, conversion using the file system encoding may fail. In this " +"case, Python uses the :ref:`surrogateescape encoding error handler " +"`, which means that undecodable bytes are replaced by a " +"Unicode character U+DCxx on decoding, and these are again translated to the " +"original byte on encoding." +msgstr "" +"Sur certains systèmes, les conversions utilisant l'encodage du système de " +"fichiers peut échouer. Dans ce cas, Python utilise le :ref:`surrogateescape " +"encoding error handler ` (le gestionnaire d'erreurs " +"d'encodage *surrogateescape*), ce qui veut dire que les bytes indécodables " +"sont replacés par un caractère Unicode U+DCxx au décodage, et ceux-ci sont " +"retraduits en le bon octet à l'encodage." + +#: ../Doc/library/os.rst:81 +msgid "" +"The file system encoding must guarantee to successfully decode all bytes " +"below 128. If the file system encoding fails to provide this guarantee, API " +"functions may raise UnicodeErrors." +msgstr "" +"L'encodage du système de fichiers doit garantir de pouvoir décoder " +"correctement tous les octets en dessous de 128. Si l'encodage du système de " +"fichiers ne peut garantir cela, les fonctions de l'API peuvent lever une " +"UnicodeError." + +#: ../Doc/library/os.rst:89 +msgid "Process Parameters" +msgstr "Paramètres de processus" + +#: ../Doc/library/os.rst:91 +msgid "" +"These functions and data items provide information and operate on the " +"current process and user." +msgstr "" +"Ces fonctions et valeurs fournissent des informations et agissent sur le " +"processus actuel et sur l'utilisateur." + +#: ../Doc/library/os.rst:97 +msgid "" +"Return the filename corresponding to the controlling terminal of the process." +msgstr "" +"Renvoie l'identifiant de fichier correspondant au terminal contrôlant le " +"processus." + +#: ../Doc/library/os.rst:99 ../Doc/library/os.rst:261 ../Doc/library/os.rst:270 +#: ../Doc/library/os.rst:279 ../Doc/library/os.rst:289 +#: ../Doc/library/os.rst:298 ../Doc/library/os.rst:333 +#: ../Doc/library/os.rst:341 ../Doc/library/os.rst:378 +#: ../Doc/library/os.rst:389 ../Doc/library/os.rst:399 +#: ../Doc/library/os.rst:409 ../Doc/library/os.rst:419 +#: ../Doc/library/os.rst:429 ../Doc/library/os.rst:458 +#: ../Doc/library/os.rst:465 ../Doc/library/os.rst:472 +#: ../Doc/library/os.rst:482 ../Doc/library/os.rst:493 +#: ../Doc/library/os.rst:502 ../Doc/library/os.rst:520 +#: ../Doc/library/os.rst:528 ../Doc/library/os.rst:536 +#: ../Doc/library/os.rst:545 ../Doc/library/os.rst:553 +#: ../Doc/library/os.rst:560 ../Doc/library/os.rst:567 +#: ../Doc/library/os.rst:576 ../Doc/library/os.rst:748 +#: ../Doc/library/os.rst:758 ../Doc/library/os.rst:767 +#: ../Doc/library/os.rst:789 ../Doc/library/os.rst:810 +#: ../Doc/library/os.rst:844 ../Doc/library/os.rst:862 +#: ../Doc/library/os.rst:874 ../Doc/library/os.rst:1042 +#: ../Doc/library/os.rst:1057 ../Doc/library/os.rst:1072 +#: ../Doc/library/os.rst:1085 ../Doc/library/os.rst:1153 +#: ../Doc/library/os.rst:1252 ../Doc/library/os.rst:1269 +#: ../Doc/library/os.rst:1281 ../Doc/library/os.rst:1299 +#: ../Doc/library/os.rst:1308 ../Doc/library/os.rst:1316 +#: ../Doc/library/os.rst:1325 ../Doc/library/os.rst:1361 +#: ../Doc/library/os.rst:1598 ../Doc/library/os.rst:1663 +#: ../Doc/library/os.rst:1677 ../Doc/library/os.rst:1688 +#: ../Doc/library/os.rst:1708 ../Doc/library/os.rst:1721 +#: ../Doc/library/os.rst:1732 ../Doc/library/os.rst:1904 +#: ../Doc/library/os.rst:1926 ../Doc/library/os.rst:1970 +#: ../Doc/library/os.rst:1981 ../Doc/library/os.rst:2589 +#: ../Doc/library/os.rst:2736 ../Doc/library/os.rst:2957 +#: ../Doc/library/os.rst:3167 ../Doc/library/os.rst:3175 +#: ../Doc/library/os.rst:3182 ../Doc/library/os.rst:3189 +#: ../Doc/library/os.rst:3196 ../Doc/library/os.rst:3203 +#: ../Doc/library/os.rst:3210 ../Doc/library/os.rst:3217 +#: ../Doc/library/os.rst:3225 ../Doc/library/os.rst:3233 +#: ../Doc/library/os.rst:3240 ../Doc/library/os.rst:3247 +#: ../Doc/library/os.rst:3256 ../Doc/library/os.rst:3264 +#: ../Doc/library/os.rst:3272 ../Doc/library/os.rst:3279 +#: ../Doc/library/os.rst:3286 ../Doc/library/os.rst:3301 +#: ../Doc/library/os.rst:3346 ../Doc/library/os.rst:3353 +#: ../Doc/library/os.rst:3361 ../Doc/library/os.rst:3417 +#: ../Doc/library/os.rst:3614 ../Doc/library/os.rst:3630 +#: ../Doc/library/os.rst:3641 ../Doc/library/os.rst:3652 +#: ../Doc/library/os.rst:3665 ../Doc/library/os.rst:3711 +#: ../Doc/library/os.rst:3722 ../Doc/library/os.rst:3730 +#: ../Doc/library/os.rst:3746 ../Doc/library/os.rst:3758 +#: ../Doc/library/os.rst:3766 ../Doc/library/os.rst:3774 +#: ../Doc/library/os.rst:3782 ../Doc/library/os.rst:3790 +#: ../Doc/library/os.rst:3798 ../Doc/library/os.rst:3805 +#: ../Doc/library/os.rst:3812 ../Doc/library/os.rst:3958 +#: ../Doc/library/os.rst:3967 ../Doc/library/os.rst:3988 +#: ../Doc/library/os.rst:3998 ../Doc/library/os.rst:4007 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." + +#: ../Doc/library/os.rst:104 +msgid "" +"A :term:`mapping` object representing the string environment. For example, " +"``environ['HOME']`` is the pathname of your home directory (on some " +"platforms), and is equivalent to ``getenv(\"HOME\")`` in C." +msgstr "" +"Un objet :term:`mapping` représentant les variables d'environnement. Par " +"exemple ``environ['HOME']`` est le chemin vers votre répertoire d’accueil " +"(sur certaines plate-formes), et est équivalent à ``getenv(\"HOME\")`` en C." + +#: ../Doc/library/os.rst:108 +msgid "" +"This mapping is captured the first time the :mod:`os` module is imported, " +"typically during Python startup as part of processing :file:`site.py`. " +"Changes to the environment made after this time are not reflected in ``os." +"environ``, except for changes made by modifying ``os.environ`` directly." +msgstr "" +"Ce *mapping* est capturé la première fois que le module :mod:`os` est " +"importé, typiquement pendant le démarrage de Python, lors de l'exécution de :" +"file:`site.py`. Les changements de l'environnement opérés après cette " +"capture ne sont pas répercutés dans ``os.environ``, à part les modifications " +"directes de ``os.environ``." + +#: ../Doc/library/os.rst:113 +msgid "" +"If the platform supports the :func:`putenv` function, this mapping may be " +"used to modify the environment as well as query the environment. :func:" +"`putenv` will be called automatically when the mapping is modified." +msgstr "" +"Si la plate-forme prend en charge la fonction :func:`putenv`, ce *mapping* " +"peut être utilisé pour modifier l'environnement autant que pour " +"l'interroger. :func:`putenv` sera appelée automatiquement quand le *mapping* " +"sera modifié." + +#: ../Doc/library/os.rst:117 +msgid "" +"On Unix, keys and values use :func:`sys.getfilesystemencoding` and " +"``'surrogateescape'`` error handler. Use :data:`environb` if you would like " +"to use a different encoding." +msgstr "" +"Sur Unix, les clefs et les valeurs utilisent :func:`sys." +"getfilesystemencoding` et le gestionnaire d'erreurs ``surrogateescape``. " +"Utilisez :data:`environb` si vous désirez utiliser un encodage différent." + +#: ../Doc/library/os.rst:123 +msgid "" +"Calling :func:`putenv` directly does not change ``os.environ``, so it's " +"better to modify ``os.environ``." +msgstr "" +"Appeler :func:`putenv` ne change pas directement ``os.environ``, donc il est " +"préférable de modifier ``os.environ``." + +#: ../Doc/library/os.rst:128 +msgid "" +"On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may " +"cause memory leaks. Refer to the system documentation for :c:func:`putenv`." +msgstr "" +"Sur certaines plate-formes, dont FreeBSD et Mac OS X, procéder à des " +"assignations sur ``environ`` peut causer des fuites de mémoire. Referez-vous " +"à la documentation système de :func:`putenv`." + +#: ../Doc/library/os.rst:132 +msgid "" +"If :func:`putenv` is not provided, a modified copy of this mapping may be " +"passed to the appropriate process-creation functions to cause child " +"processes to use a modified environment." +msgstr "" +"Si :func:`putenv` n'est pas fourni, une copie modifiée de ce dictionnaire " +"peut être passé aux fonctions appropriées de création de processus pour " +"forcer l'utilisation d'un environnement modifié pour le processus fils." + +#: ../Doc/library/os.rst:136 +msgid "" +"If the platform supports the :func:`unsetenv` function, you can delete items " +"in this mapping to unset environment variables. :func:`unsetenv` will be " +"called automatically when an item is deleted from ``os.environ``, and when " +"one of the :meth:`pop` or :meth:`clear` methods is called." +msgstr "" +"Si la plate-forme prend en charge la fonction :func:`unsetenv`, vous pouvez " +"supprimer des éléments de ce dictionnaire pour supprimer des variables " +"d'environnement. La fonction :func:`unsetenv` sera appelée automatiquement " +"quand un élément est supprimé de ``os.environ``, ou quand l'une des " +"méthodes :meth:`pop` ou :meth:`clear` est appelée." + +#: ../Doc/library/os.rst:144 +msgid "" +"Bytes version of :data:`environ`: a :term:`mapping` object representing the " +"environment as byte strings. :data:`environ` and :data:`environb` are " +"synchronized (modify :data:`environb` updates :data:`environ`, and vice " +"versa)." +msgstr "" +"Une version en *bytes* de :data:`environ` : un :term:`mapping` d'objets " +"représentant l'environnement par des chaîne de *bytes*. :data:`environ` et :" +"data:`environb` sont synchronisés (modifier :data:`environ` modifie :data:" +"`environb`, et vice-versa)." + +#: ../Doc/library/os.rst:149 +msgid "" +":data:`environb` is only available if :data:`supports_bytes_environ` is True." +msgstr "" +":data:`environb` n'est disponible que si :data:`supports_byte_environ` vaut " +"``True``." + +#: ../Doc/library/os.rst:160 +msgid "These functions are described in :ref:`os-file-dir`." +msgstr "Ces fonctions sont décrites dans :ref:`os-file-dir`." + +#: ../Doc/library/os.rst:165 +msgid "" +"Encode :term:`path-like ` *filename* to the filesystem " +"encoding with ``'surrogateescape'`` error handler, or ``'strict'`` on " +"Windows; return :class:`bytes` unchanged." +msgstr "" +"Encode le :term:`chemin-compatible ` *filename* vers " +"l'encodage du système de fichiers avec une gestion d'erreurs " +"``'surrogateescape'``, ou ``'strict'`` sous Windows ; renvoie un objet :" +"class:`bytes` inchangé." + +#: ../Doc/library/os.rst:169 +msgid ":func:`fsdecode` is the reverse function." +msgstr ":func:`fsdecode` est la fonction inverse." + +#: ../Doc/library/os.rst:173 ../Doc/library/os.rst:188 +msgid "" +"Support added to accept objects implementing the :class:`os.PathLike` " +"interface." +msgstr "" +"Ajout de la prise en charge des objets implémentant l'interface :class:`os." +"PathLike`." + +#: ../Doc/library/os.rst:180 +msgid "" +"Decode the :term:`path-like ` *filename* from the " +"filesystem encoding with ``'surrogateescape'`` error handler, or " +"``'strict'`` on Windows; return :class:`str` unchanged." +msgstr "" +"Encode le :term:`chemin-compatible ` *filename* depuis " +"l'encodage du système de fichiers avec une gestion d'erreurs " +"``'surrogateescape'``, ou ``'strict'`` sous Windows ; renvoie un objet :" +"class:`str` inchangé." + +#: ../Doc/library/os.rst:184 +msgid ":func:`fsencode` is the reverse function." +msgstr ":func:`fsencode` est la fonction inverse." + +#: ../Doc/library/os.rst:195 +msgid "Return the file system representation of the path." +msgstr "Renvoie la représentation par le système de fichiers du chemin." + +#: ../Doc/library/os.rst:197 +msgid "" +"If :class:`str` or :class:`bytes` is passed in, it is returned unchanged. " +"Otherwise :meth:`~os.PathLike.__fspath__` is called and its value is " +"returned as long as it is a :class:`str` or :class:`bytes` object. In all " +"other cases, :exc:`TypeError` is raised." +msgstr "" +"Si un objet :class:`str` ou :class:`bytes` est passé, il est renvoyé " +"inchangé. Autrement, :meth:`~os.PathLike.__fspath__` est appelée et sa " +"valeur renvoyée tant qu'elle est un objet :class:`str` ou :class:`bytes`. " +"Dans tous les autres cas, une :exc:`TypeError` est levée." + +#: ../Doc/library/os.rst:207 +msgid "" +"An :term:`abstract base class` for objects representing a file system path, " +"e.g. :class:`pathlib.PurePath`." +msgstr "" +"Une :term:`abstract base class` pour les objets représentant un chemin du " +"système de fichiers, comme :class:`pathlib.PurePath`." + +#: ../Doc/library/os.rst:214 +msgid "Return the file system path representation of the object." +msgstr "Renvoie la représentation du chemin du système de fichiers de l'objet." + +#: ../Doc/library/os.rst:216 +msgid "" +"The method should only return a :class:`str` or :class:`bytes` object, with " +"the preference being for :class:`str`." +msgstr "" +"La méthode ne devrait renvoyer que des objets :class:`str` ou :class:" +"`bytes`, avec une préférence pour les :class:`str`." + +#: ../Doc/library/os.rst:222 +msgid "" +"Return the value of the environment variable *key* if it exists, or " +"*default* if it doesn't. *key*, *default* and the result are str." +msgstr "" +"Renvoie la valeur de la variable d'environnement *key* si elle existe, ou " +"*default* si elle n'existe pas. *key*, *default*, et la valeur de retour " +"sont des *str*." + +#: ../Doc/library/os.rst:225 +msgid "" +"On Unix, keys and values are decoded with :func:`sys.getfilesystemencoding` " +"and ``'surrogateescape'`` error handler. Use :func:`os.getenvb` if you would " +"like to use a different encoding." +msgstr "" +"Sur Unix, les clefs et les valeurs sont décodées avec :func:`sys." +"getfilesystemencoding` et le gestionnaire d'erreurs ``surrogateescape``. " +"Utilisez :func:`os.getenvb` si vous voulez utiliser un encodage différent." + +#: ../Doc/library/os.rst:229 ../Doc/library/os.rst:442 +#: ../Doc/library/os.rst:645 +msgid ":ref:`Availability `: most flavors of Unix, Windows." +msgstr "" +":ref:`Disponibilité ` : la plupart des dérivés Unix, Windows." + +#: ../Doc/library/os.rst:234 +msgid "" +"Return the value of the environment variable *key* if it exists, or " +"*default* if it doesn't. *key*, *default* and the result are bytes." +msgstr "" +"Renvoie la valeur de la variable d'environnement *key* si elle existe, ou " +"*default* si elle n'existe pas. *key*, *default*, et la valeur de retour " +"sont des *bytes*." + +#: ../Doc/library/os.rst:237 +msgid "" +":func:`getenvb` is only available if :data:`supports_bytes_environ` is True." +msgstr "" +":func:`getenvb` n'est disponible que si :data:`supports_byte_environ` vaut " +"``True``." + +#: ../Doc/library/os.rst:241 +msgid ":ref:`Availability `: most flavors of Unix." +msgstr ":ref:`Disponibilité ` : la plupart des dérivés Unix." + +#: ../Doc/library/os.rst:247 +msgid "" +"Returns the list of directories that will be searched for a named " +"executable, similar to a shell, when launching a process. *env*, when " +"specified, should be an environment variable dictionary to lookup the PATH " +"in. By default, when *env* is ``None``, :data:`environ` is used." +msgstr "" +"Renvoie la liste des dossier qui seront parcouru pour trouver un exécutable, " +"similaire à un shell lorsque il lance un processus. *env*, quand spécifié, " +"doit être un dictionnaire de variable d'environnement afin d'y rechercher " +"le PATH. Par défaut quand *env* est ``None``, :data:`environ` est utilisé." + +#: ../Doc/library/os.rst:258 +msgid "" +"Return the effective group id of the current process. This corresponds to " +"the \"set id\" bit on the file being executed in the current process." +msgstr "" +"Renvoie l'identifiant du groupe effectif du processus actuel. Ça correspond " +"au bit \"*set id*\" du fichier qui s'exécute dans le processus actuel." + +#: ../Doc/library/os.rst:268 +msgid "Return the current process's effective user id." +msgstr "Renvoie l'identifiant de l'utilisateur effectif du processus actuel." + +#: ../Doc/library/os.rst:277 +msgid "Return the real group id of the current process." +msgstr "Renvoie l'identifiant de groupe réel du processus actuel." + +#: ../Doc/library/os.rst:284 +msgid "" +"Return list of group ids that *user* belongs to. If *group* is not in the " +"list, it is included; typically, *group* is specified as the group ID field " +"from the password record for *user*." +msgstr "" +"Renvoie la liste d'identifiants de groupes auxquels *user* appartient. Si " +"*group* n'est pas dans la liste, il y est inclus. Typiquement, *group* vaut " +"le *group ID* de l'enregistrement *passwd* de *user*." + +#: ../Doc/library/os.rst:295 +msgid "" +"Return list of supplemental group ids associated with the current process." +msgstr "" +"Renvoie une liste d'identifiants de groupes additionnels associés au " +"processus actuel." + +#: ../Doc/library/os.rst:301 +msgid "" +"On Mac OS X, :func:`getgroups` behavior differs somewhat from other Unix " +"platforms. If the Python interpreter was built with a deployment target of :" +"const:`10.5` or earlier, :func:`getgroups` returns the list of effective " +"group ids associated with the current user process; this list is limited to " +"a system-defined number of entries, typically 16, and may be modified by " +"calls to :func:`setgroups` if suitably privileged. If built with a " +"deployment target greater than :const:`10.5`, :func:`getgroups` returns the " +"current group access list for the user associated with the effective user id " +"of the process; the group access list may change over the lifetime of the " +"process, it is not affected by calls to :func:`setgroups`, and its length is " +"not limited to 16. The deployment target value, :const:" +"`MACOSX_DEPLOYMENT_TARGET`, can be obtained with :func:`sysconfig." +"get_config_var`." +msgstr "" +"Sur Mac OS X, le comportement de :func:`getgroups` diffère légèrement des " +"autres plate-formes Unix. Si l'interpréteur Python était compilé avec une " +"cible de déploiement de :const:`10.5` ou moins, :func:`getgroups` renverrait " +"la liste des identifiants de groupes effectifs associés au processus courant " +"de l'utilisateur ; le nombre d'éléments de cette liste est limité par le " +"système, typiquement 16, et peut être modifié par des appels à :func:" +"`setgroups` si les privilèges ont été convenablement assignés. Si compilé " +"avec une cible de déploiement supérieure à :const:`10.5`, la fonction :func:" +"`getgroups` renvoie la liste des accès du groupe actuel pour l'utilisateur " +"associé à l'identifiant utilisateur du processus ; la liste d'accès du " +"groupe peut changer durant la vie du processus, elle n'est pas affectée par " +"les appels à :func:`setgroups` et sa longueur n'est pas limitée à 16. La " +"valeur de la cible de déploiement, :const:`MACOSX_DEPLOYMENT_TARGET`, peut " +"être obtenue par la fonction :func:`sysconfig.get_config_var`." + +#: ../Doc/library/os.rst:318 +msgid "" +"Return the name of the user logged in on the controlling terminal of the " +"process. For most purposes, it is more useful to use :func:`getpass." +"getuser` since the latter checks the environment variables :envvar:`LOGNAME` " +"or :envvar:`USERNAME` to find out who the user is, and falls back to ``pwd." +"getpwuid(os.getuid())[0]`` to get the login name of the current real user id." +msgstr "" +"Renvoie le nom de l'utilisateur connecté sur le terminal contrôlant le " +"processus. Dans la plupart des cas, il est plus utile d'utiliser :func:" +"`getpass.getuser` puisque cette fonction consulte les variables " +"d'environnement :envvar:`LOGNAME` et :envvar:`USERNAME` pour savoir qui est " +"l'utilisateur, et se replie finalement sur ``pwd.getpwduid(os.getuid())[0]`` " +"pour avoir le nom de connexion lié à l'identifiant de l'utilisateur courant." + +#: ../Doc/library/os.rst:325 ../Doc/library/os.rst:360 +#: ../Doc/library/os.rst:822 ../Doc/library/os.rst:832 +#: ../Doc/library/os.rst:1018 ../Doc/library/os.rst:1387 +#: ../Doc/library/os.rst:1746 ../Doc/library/os.rst:2000 +#: ../Doc/library/os.rst:2719 ../Doc/library/os.rst:2748 +#: ../Doc/library/os.rst:3134 ../Doc/library/os.rst:3497 +#: ../Doc/library/os.rst:3508 ../Doc/library/os.rst:3576 +#: ../Doc/library/os.rst:3600 +msgid ":ref:`Availability `: Unix, Windows." +msgstr ":ref:`Disponibilité ` : Unix, Windows." + +#: ../Doc/library/os.rst:330 +msgid "" +"Return the process group id of the process with process id *pid*. If *pid* " +"is 0, the process group id of the current process is returned." +msgstr "" +"Renvoie l'identifiant de groupe de processus du processus de PID *pid*. Si " +"*pid* vaut 0, l'identifiant de groupe de processus du processus actuel est " +"renvoyé." + +#: ../Doc/library/os.rst:339 +msgid "Return the id of the current process group." +msgstr "Renvoie l'identifiant du groupe de processus actuel." + +#: ../Doc/library/os.rst:348 +msgid "Return the current process id." +msgstr "Renvoie l'identifiant du processus actuel." + +#: ../Doc/library/os.rst:355 +msgid "" +"Return the parent's process id. When the parent process has exited, on Unix " +"the id returned is the one of the init process (1), on Windows it is still " +"the same id, which may be already reused by another process." +msgstr "" +"Renvoie l'identifiant du processus parent. Quand le processus parent est " +"terminé, sur Unix, l'identifiant renvoyé est 1 pour le processus *init*, sur " +"Windows, c'est toujours le même id, qui peut déjà avoir été réutilisé par un " +"autre processus." + +#: ../Doc/library/os.rst:361 +msgid "Added support for Windows." +msgstr "Prise en charge sur Windows." + +#: ../Doc/library/os.rst:369 +msgid "" +"Get program scheduling priority. The value *which* is one of :const:" +"`PRIO_PROCESS`, :const:`PRIO_PGRP`, or :const:`PRIO_USER`, and *who* is " +"interpreted relative to *which* (a process identifier for :const:" +"`PRIO_PROCESS`, process group identifier for :const:`PRIO_PGRP`, and a user " +"ID for :const:`PRIO_USER`). A zero value for *who* denotes (respectively) " +"the calling process, the process group of the calling process, or the real " +"user ID of the calling process." +msgstr "" +"Récupère la priorité d'ordonnancement des programmes. La valeur *which* est " +"une des constantes suivantes : :const:`PRIO_PROCESS`, :const:`PRIO_PGRP`, " +"ou :const:`PRIO_USER`, et la valeur *who* est interprétée par rapport à " +"*which* (un id de processus pour :const:`PRIO_PROCESS`, un id de groupe de " +"processus pour :const:`PRIO_PGRP`, et un id d'utilisateur pour :const:" +"`PRIO_USER`). Une valeur nulle pour *who* dénote (respectivement) le " +"processus appelant, le groupe de processus du processus appelant, ou " +"l'identifiant d'utilisateur réel du processus appelant." + +#: ../Doc/library/os.rst:386 +msgid "" +"Parameters for the :func:`getpriority` and :func:`setpriority` functions." +msgstr "" +"Paramètres pour les fonctions :func:`getpriority` et :func:`setpriority`." + +#: ../Doc/library/os.rst:395 +msgid "" +"Return a tuple (ruid, euid, suid) denoting the current process's real, " +"effective, and saved user ids." +msgstr "" +"Renvoie un *tuple* (*ruid*, *euid*, *suid*) dénotant les identifiants de " +"l'utilisateur réel, effectif et sauvé du processus actuel." + +#: ../Doc/library/os.rst:405 +msgid "" +"Return a tuple (rgid, egid, sgid) denoting the current process's real, " +"effective, and saved group ids." +msgstr "" +"Renvoie un *tuple* (*rgid*, *egid*, *sgid*) dénotant les identifiants des " +"groupes de processus réel effectif, et sauvé du processus actuel." + +#: ../Doc/library/os.rst:417 +msgid "Return the current process's real user id." +msgstr "Renvoie l'identifiant réel du processus actuel." + +#: ../Doc/library/os.rst:424 +msgid "" +"Call the system initgroups() to initialize the group access list with all of " +"the groups of which the specified username is a member, plus the specified " +"group id." +msgstr "" +"Appelle la fonction système *initgroups* pour initialiser la liste des " +"groupes d'accès des groupes dont *username* est membre, plus le groupe " +"spécifié par *gid*." + +#: ../Doc/library/os.rst:437 +msgid "" +"Set the environment variable named *key* to the string *value*. Such " +"changes to the environment affect subprocesses started with :func:`os." +"system`, :func:`popen` or :func:`fork` and :func:`execv`." +msgstr "" +"Assigne la chaîne de caractères *value* à la variable d'environnement *key*. " +"De tels changements à l'environnement affectent les sous-processus lancés " +"par :func:`os.system`, :func:`popen` ou :func:`fork` et :func:`execv`." + +#: ../Doc/library/os.rst:445 +msgid "" +"On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may " +"cause memory leaks. Refer to the system documentation for putenv." +msgstr "" +"Sur certaines plate-formes, incluant FreeBSD et Mac OS X, assigner " +"``environ`` peut causer des fuites de mémoire. Referez-vous à la " +"documentation système de *putenv*." + +#: ../Doc/library/os.rst:448 +msgid "" +"When :func:`putenv` is supported, assignments to items in ``os.environ`` are " +"automatically translated into corresponding calls to :func:`putenv`; " +"however, calls to :func:`putenv` don't update ``os.environ``, so it is " +"actually preferable to assign to items of ``os.environ``." +msgstr "" +"Quand :func:`putenv` est géré, les assignations d'éléments dans ``os." +"environ`` sont automatiquement traduites en appels correspondants à :func:" +"`putenv`. Cependant, des appels à :func:`putenv` ne mettent pas ``os." +"environ`` à jour. Il est donc préférable d'assigner les éléments de ``os." +"environ``." + +#: ../Doc/library/os.rst:456 +msgid "Set the current process's effective group id." +msgstr "" +"Définit l'identifiant du groupe de processus effectif du processus actuel." + +#: ../Doc/library/os.rst:463 +msgid "Set the current process's effective user id." +msgstr "Définit l'identifiant de l'utilisateur effectif du processus actuel." + +#: ../Doc/library/os.rst:470 +msgid "Set the current process' group id." +msgstr "Définit l'identifiant du groupe de processus actuel." + +#: ../Doc/library/os.rst:477 +msgid "" +"Set the list of supplemental group ids associated with the current process " +"to *groups*. *groups* must be a sequence, and each element must be an " +"integer identifying a group. This operation is typically available only to " +"the superuser." +msgstr "" +"Place *groups* dans la liste d'identifiants de groupes additionnels " +"associée. *groups* doit être une séquence, et chaque élément doit être un " +"nombre entier identifiant un groupe. Cette opération est typiquement " +"disponible uniquement pour le super utilisateur." + +#: ../Doc/library/os.rst:483 +msgid "" +"On Mac OS X, the length of *groups* may not exceed the system-defined " +"maximum number of effective group ids, typically 16. See the documentation " +"for :func:`getgroups` for cases where it may not return the same group list " +"set by calling setgroups()." +msgstr "" +"Sur Mac OS X, la longueur de *groups* ne peut pas dépasser le nombre maximum " +"d'identifiants effectifs de groupes défini par le système, typiquement 16. " +"Voir la documentation de :func:`getgroups` pour les cas où *getgroups* ne " +"renvoie pas la même liste de groupes que celle définie par l'appel à " +"*setgroups*." + +#: ../Doc/library/os.rst:490 +msgid "" +"Call the system call :c:func:`setpgrp` or ``setpgrp(0, 0)`` depending on " +"which version is implemented (if any). See the Unix manual for the " +"semantics." +msgstr "" +"Produit l'appel système :c:func:`setpgrp` ou ``setpgrp(0, 0)`` selon la " +"version implémentée (s'il y en a une). Voir le manuel Unix pour la " +"sémantique de l'opération." + +#: ../Doc/library/os.rst:498 +msgid "" +"Call the system call :c:func:`setpgid` to set the process group id of the " +"process with id *pid* to the process group with id *pgrp*. See the Unix " +"manual for the semantics." +msgstr "" +"Produit l'appel système :c:func:`setpgid` pour placer l'identifiant du " +"groupe de processus contenant le processus d'identifiant *pid* dans le " +"groupe de processus d'identifiant *pgrp*. Voir le manuel Unix pour la " +"sémantique." + +#: ../Doc/library/os.rst:509 +msgid "" +"Set program scheduling priority. The value *which* is one of :const:" +"`PRIO_PROCESS`, :const:`PRIO_PGRP`, or :const:`PRIO_USER`, and *who* is " +"interpreted relative to *which* (a process identifier for :const:" +"`PRIO_PROCESS`, process group identifier for :const:`PRIO_PGRP`, and a user " +"ID for :const:`PRIO_USER`). A zero value for *who* denotes (respectively) " +"the calling process, the process group of the calling process, or the real " +"user ID of the calling process. *priority* is a value in the range -20 to " +"19. The default priority is 0; lower priorities cause more favorable " +"scheduling." +msgstr "" +"Définit la priorité d'ordonnancement des programmes. La valeur *which* est " +"une des constantes suivantes : :const:`PRIO_PROCESS`, :const:`PRIO_PGRP`, " +"ou :const:`PRIO_USER`, et *who* est interprété en fonction de *which* (un " +"PID pour :const:`PRIO_PROCESS`, un identifiant de groupe de processus pour :" +"const:`PRIO_PGRP`, et un identifiant d'utilisateur pour :const:`PRIO_USER`). " +"Une valeur nulle pour *who* dénote (respectivement) le processus appelant, " +"le groupe de processus du processus appelant, ou l'identifiant de " +"l'utilisateur réel du processus appelant. *priority* est une valeur comprise " +"entre ``-20`` et ``19``. La priorité par défaut est 0 ; les priorités plus " +"faibles amènent à un ordonnancement plus favorable." + +#: ../Doc/library/os.rst:526 +msgid "Set the current process's real and effective group ids." +msgstr "" +"Définit l'identifiant des groupes réel et effectif du processus actuel." + +#: ../Doc/library/os.rst:533 +msgid "Set the current process's real, effective, and saved group ids." +msgstr "" +"Définit l'identifiant des groupes réel, effectif et sauvé du processus " +"actuel." + +#: ../Doc/library/os.rst:542 +msgid "Set the current process's real, effective, and saved user ids." +msgstr "" +"Définit l'identifiant des utilisateurs réel, effectif et sauvé du processus " +"actuel." + +#: ../Doc/library/os.rst:551 +msgid "Set the current process's real and effective user ids." +msgstr "" +"Définit l'identifiant des utilisateurs réel et effectif du processus actuel." + +#: ../Doc/library/os.rst:558 +msgid "" +"Call the system call :c:func:`getsid`. See the Unix manual for the " +"semantics." +msgstr "" +"Produit l'appel système :c:func:`getsid`. Voir le manuel Unix pour la " +"sémantique." + +#: ../Doc/library/os.rst:565 +msgid "" +"Call the system call :c:func:`setsid`. See the Unix manual for the " +"semantics." +msgstr "" +"Produit l'appel système :c:func:`setsid`. Voir le manuel Unix pour la " +"sémantique." + +#: ../Doc/library/os.rst:574 +msgid "Set the current process's user id." +msgstr "Définit l'identifiant de l'utilisateur du processus actuel." + +#: ../Doc/library/os.rst:582 +msgid "" +"Return the error message corresponding to the error code in *code*. On " +"platforms where :c:func:`strerror` returns ``NULL`` when given an unknown " +"error number, :exc:`ValueError` is raised." +msgstr "" +"Renvoie le message d'erreur correspondant au code d'erreur *code*. Sur les " +"plate-formes où :c:func:`strerror` renvoie ``NULL`` quand un numéro d'erreur " +"inconnu est donné, une :exc:`ValueError` est levée." + +#: ../Doc/library/os.rst:589 +msgid "" +"``True`` if the native OS type of the environment is bytes (eg. ``False`` on " +"Windows)." +msgstr "" +"``True`` si le type natif de l'environnement du système d'exploitation est " +"*bytes* (par exemple : ``False`` sur Windows)." + +#: ../Doc/library/os.rst:597 +msgid "Set the current numeric umask and return the previous umask." +msgstr "Définit le *umask* actuel et renvoie la valeur précédente." + +#: ../Doc/library/os.rst:606 +msgid "" +"Returns information identifying the current operating system. The return " +"value is an object with five attributes:" +msgstr "" +"Renvoie des informations identifiant le système d'exploitation actuel. La " +"valeur de retour est un objet à cinq attributs :" + +#: ../Doc/library/os.rst:609 +msgid ":attr:`sysname` - operating system name" +msgstr ":attr:`sysname` — nom du système d'exploitation" + +#: ../Doc/library/os.rst:610 +msgid ":attr:`nodename` - name of machine on network (implementation-defined)" +msgstr "" +":attr:`noedname` — nom de la machine sur le réseau (dépendant de " +"l'implémentation)" + +#: ../Doc/library/os.rst:611 +msgid ":attr:`release` - operating system release" +msgstr ":attr:`release` — *release* du système d'exploitation" + +#: ../Doc/library/os.rst:612 +msgid ":attr:`version` - operating system version" +msgstr ":attr:`version` — version du système d'exploitation" + +#: ../Doc/library/os.rst:613 +msgid ":attr:`machine` - hardware identifier" +msgstr ":attr:`machine` — identifiant du matériel" + +#: ../Doc/library/os.rst:615 +msgid "" +"For backwards compatibility, this object is also iterable, behaving like a " +"five-tuple containing :attr:`sysname`, :attr:`nodename`, :attr:`release`, :" +"attr:`version`, and :attr:`machine` in that order." +msgstr "" +"Pour la rétrocompatibilité, cet objet est également itérable, se comportant " +"comme un quintuplet contenant :attr:`sysname`, :attr:`nodename`, :attr:" +"`release`, :attr:`version`, et :attr:`machine` dans cet ordre." + +#: ../Doc/library/os.rst:620 +msgid "" +"Some systems truncate :attr:`nodename` to 8 characters or to the leading " +"component; a better way to get the hostname is :func:`socket.gethostname` " +"or even ``socket.gethostbyaddr(socket.gethostname())``." +msgstr "" +"Certains systèmes tronquent :attr:`nodename` à 8 caractères ou à la " +"composante dominante. Un meilleur moyen de récupérer le nom de l'hôte est :" +"func:`socket.gethostname` ou encore ``socket.gethostbyaddre(socket." +"gethostname())``." + +#: ../Doc/library/os.rst:626 +msgid ":ref:`Availability `: recent flavors of Unix." +msgstr ":ref:`Disponibilité ` : dérivés récents de Unix." + +#: ../Doc/library/os.rst:627 ../Doc/library/os.rst:3601 +msgid "" +"Return type changed from a tuple to a tuple-like object with named " +"attributes." +msgstr "" +"Type de retour changé d'un *tuple* en un objet compatible avec le type " +"*tuple*, avec des attributs nommés." + +#: ../Doc/library/os.rst:636 +msgid "" +"Unset (delete) the environment variable named *key*. Such changes to the " +"environment affect subprocesses started with :func:`os.system`, :func:" +"`popen` or :func:`fork` and :func:`execv`." +msgstr "" +"Supprime la variable d'environnement appelée *key*. De tels changements à " +"l'environnement affectent les sous-processus lancés avec :func:`os.system`, :" +"func:`popen` ou :func:`fork` et :func:`execv`." + +#: ../Doc/library/os.rst:640 +msgid "" +"When :func:`unsetenv` is supported, deletion of items in ``os.environ`` is " +"automatically translated into a corresponding call to :func:`unsetenv`; " +"however, calls to :func:`unsetenv` don't update ``os.environ``, so it is " +"actually preferable to delete items of ``os.environ``." +msgstr "" +"Quand :func:`unsetenv` est gérée, la suppression d'éléments dans ``os." +"environ`` est automatiquement interprétée en un appel correspondant à :func:" +"`unsetenv`, mais les appels à :func:`unsetenv` ne mettent pas ``os.environ`` " +"à jour. Donc il est préférable de supprimer les éléments de ``os.environ``." + +#: ../Doc/library/os.rst:651 +msgid "File Object Creation" +msgstr "Création de fichiers objets" + +#: ../Doc/library/os.rst:653 +msgid "" +"This function creates new :term:`file objects `. (See also :" +"func:`~os.open` for opening file descriptors.)" +msgstr "" +"Cette fonction crée de nouveaux :term:`fichiers objets `. (Voir " +"aussi :func:`~os.open` pour ouvrir des descripteurs de fichiers)." + +#: ../Doc/library/os.rst:659 +msgid "" +"Return an open file object connected to the file descriptor *fd*. This is " +"an alias of the :func:`open` built-in function and accepts the same " +"arguments. The only difference is that the first argument of :func:`fdopen` " +"must always be an integer." +msgstr "" +"Renvoie un fichier objet ouvert connecté au descripteur de fichier *fd*. " +"C'est un alias de la primitive :func:`open` et accepte les mêmes arguments. " +"La seule différence est que le premier argument de :func:`fdopen` doit " +"toujours être un entier." + +#: ../Doc/library/os.rst:668 +msgid "File Descriptor Operations" +msgstr "Opérations sur les descripteurs de fichiers" + +#: ../Doc/library/os.rst:670 +msgid "" +"These functions operate on I/O streams referenced using file descriptors." +msgstr "" +"Ces fonctions opèrent sur des flux d'entrées/sorties référencés par des " +"descripteurs de fichiers." + +#: ../Doc/library/os.rst:672 +msgid "" +"File descriptors are small integers corresponding to a file that has been " +"opened by the current process. For example, standard input is usually file " +"descriptor 0, standard output is 1, and standard error is 2. Further files " +"opened by a process will then be assigned 3, 4, 5, and so forth. The name " +"\"file descriptor\" is slightly deceptive; on Unix platforms, sockets and " +"pipes are also referenced by file descriptors." +msgstr "" +"Les descripteurs de fichiers sont de petits entiers correspondant à un " +"fichier qui a été ouvert par le processus courant. Par exemple, l'entrée " +"standard est habituellement le descripteur de fichier 0, la sortie standard " +"est 1, et le flux standard d'erreur est 2. Les autres fichiers ouverts par " +"un processus vont se voir assigner 3, 4, 5, etc. Le nom \"descripteur de " +"fichier\" est légèrement trompeur : sur les plate-formes Unix, les " +"connecteurs (*socket* en anglais) et les tubes (*pipe* en anglais) sont " +"également référencés par des descripteurs." + +#: ../Doc/library/os.rst:679 +msgid "" +"The :meth:`~io.IOBase.fileno` method can be used to obtain the file " +"descriptor associated with a :term:`file object` when required. Note that " +"using the file descriptor directly will bypass the file object methods, " +"ignoring aspects such as internal buffering of data." +msgstr "" +"La méthode :meth:`~io.IOBase.fileno` peut être utilisée pour obtenir le " +"descripteur de fichier associé à un :term:`file object` quand nécessaire. " +"Notez qu'utiliser le descripteur directement outrepasse les méthodes du " +"fichier objet, ignorant donc des aspects tels que la mise en tampon interne " +"des données." + +#: ../Doc/library/os.rst:687 +msgid "Close file descriptor *fd*." +msgstr "Ferme le descripteur de fichier *fd*." + +#: ../Doc/library/os.rst:691 +msgid "" +"This function is intended for low-level I/O and must be applied to a file " +"descriptor as returned by :func:`os.open` or :func:`pipe`. To close a " +"\"file object\" returned by the built-in function :func:`open` or by :func:" +"`popen` or :func:`fdopen`, use its :meth:`~io.IOBase.close` method." +msgstr "" +"Cette fonction est destinée aux opérations d'entrées/sorties de bas niveau " +"et doit être appliquée à un descripteur de fichier comme ceux donnés par :" +"func:`os.open` ou :func:`pipe`. Pour fermer un \"fichier objet\" renvoyé par " +"la primitive :func:`open`, :func:`popen` ou :func:`fdopen`, il faut utiliser " +"sa méthode :meth:`~io.IOBase.close`." + +#: ../Doc/library/os.rst:699 +msgid "" +"Close all file descriptors from *fd_low* (inclusive) to *fd_high* " +"(exclusive), ignoring errors. Equivalent to (but much faster than)::" +msgstr "" +"Ferme tous les descripteurs de fichiers entre *fd_low* (inclus) jusque " +"*fd_high* (exclus), en ignorant les erreurs. Équivalent (mais beaucoup plus " +"rapide) à ::" + +#: ../Doc/library/os.rst:711 +msgid "" +"Return a string describing the encoding of the device associated with *fd* " +"if it is connected to a terminal; else return :const:`None`." +msgstr "" +"Renvoie une chaîne de caractères décrivant l'encodage du périphérique " +"associé à *fd* s'il est connecté à un terminal, sinon renvoie :const:`None`." + +#: ../Doc/library/os.rst:717 +msgid "" +"Return a duplicate of file descriptor *fd*. The new file descriptor is :ref:" +"`non-inheritable `." +msgstr "" +"Renvoie une copie du descripteur de fichier *fd*. Le nouveau descripteur de " +"fichier est :ref:`non-héritable `." + +#: ../Doc/library/os.rst:720 +msgid "" +"On Windows, when duplicating a standard stream (0: stdin, 1: stdout, 2: " +"stderr), the new file descriptor is :ref:`inheritable `." +msgstr "" +"Sur Windows, quand un flux standard est dupliqué (0 : *stdin*, 1 : *stdout*, " +"2 : *stderr*), le nouveau descripteur de fichier est :ref:`héritable " +"`." + +#: ../Doc/library/os.rst:724 ../Doc/library/os.rst:914 +msgid "The new file descriptor is now non-inheritable." +msgstr "Le nouveau descripteur de fichier est maintenant non-héritable." + +#: ../Doc/library/os.rst:730 +msgid "" +"Duplicate file descriptor *fd* to *fd2*, closing the latter first if " +"necessary. Return *fd2*. The new file descriptor is :ref:`inheritable " +"` by default or non-inheritable if *inheritable* is " +"``False``." +msgstr "" +"Copie le descripteur de fichier *fd* dans *fd2*, en fermant le second " +"d'abord si nécessaire. Renvoie *fd2*. Le nouveau descripteur de fichier est :" +"ref:`héritable ` par défaut, ou non-héritable si " +"*inheritable* vaut ``False``." + +#: ../Doc/library/os.rst:735 +msgid "Add the optional *inheritable* parameter." +msgstr "Ajout du paramètre optionnel *inheritable*." + +#: ../Doc/library/os.rst:738 +msgid "Return *fd2* on success. Previously, ``None`` was always returned." +msgstr "" +"Renvoie *fd2* en cas de succès. Auparavant, ``None`` était toujours renvoyé." + +#: ../Doc/library/os.rst:744 +msgid "" +"Change the mode of the file given by *fd* to the numeric *mode*. See the " +"docs for :func:`chmod` for possible values of *mode*. As of Python 3.3, " +"this is equivalent to ``os.chmod(fd, mode)``." +msgstr "" +"Change le mode du fichier donné par *fd* en la valeur numérique *mode*. Voir " +"la documentation de :func:`chmod` pour les valeurs possibles de *mode*. " +"Depuis Python 3.3, c'est équivalent à ``os.chmod(fd, mode)``." + +#: ../Doc/library/os.rst:753 +msgid "" +"Change the owner and group id of the file given by *fd* to the numeric *uid* " +"and *gid*. To leave one of the ids unchanged, set it to -1. See :func:" +"`chown`. As of Python 3.3, this is equivalent to ``os.chown(fd, uid, gid)``." +msgstr "" +"Change le propriétaire et l'identifiant de groupe du fichier donné par *fd* " +"en les valeurs numériques *uid* et *gid*. Pour laisser l'un des identifiants " +"inchangés, mettez-le à ``-1``. Voir :func:`chown`. Depuis Python 3.3, c'est " +"équivalent à ``os.chown(fd, uid, gid)``." + +#: ../Doc/library/os.rst:763 +msgid "" +"Force write of file with filedescriptor *fd* to disk. Does not force update " +"of metadata." +msgstr "" +"Force l'écriture du fichier ayant le descripteur *fd* sur le disque. Ne " +"force pas la mise à jour des méta-données." + +#: ../Doc/library/os.rst:769 +msgid "This function is not available on MacOS." +msgstr "Cette fonction n'est pas disponible sur MacOS." + +#: ../Doc/library/os.rst:774 +msgid "" +"Return system configuration information relevant to an open file. *name* " +"specifies the configuration value to retrieve; it may be a string which is " +"the name of a defined system value; these names are specified in a number of " +"standards (POSIX.1, Unix 95, Unix 98, and others). Some platforms define " +"additional names as well. The names known to the host operating system are " +"given in the ``pathconf_names`` dictionary. For configuration variables not " +"included in that mapping, passing an integer for *name* is also accepted." +msgstr "" +"Renvoie les informations de la configuration du système pour un fichier " +"ouvert. *name* spécifie la valeur de la configuration à récupérer, ça peut " +"être une chaîne de caractères avec le nom d'une valeur système définie ; ces " +"valeurs sont spécifiées dans certains standards (POSIX.1, Unix 95, Unix 98, " +"et d'autres). Certaines plate-formes définissent des noms additionnels " +"également. Les noms connus par le système d'exploitation sont donnés dans le " +"dictionnaire ``pathconf_names``. Pour les variables de configuration qui ne " +"sont pas inclues dans ce *mapping*, passer un entier pour *name* est " +"également accepté." + +#: ../Doc/library/os.rst:782 ../Doc/library/os.rst:1961 +msgid "" +"If *name* is a string and is not known, :exc:`ValueError` is raised. If a " +"specific value for *name* is not supported by the host system, even if it is " +"included in ``pathconf_names``, an :exc:`OSError` is raised with :const:" +"`errno.EINVAL` for the error number." +msgstr "" +"Si *name* est une chaîne de caractères et n'est pas connu, une :exc:" +"`ValueError` est levée. Si une valeur spécifique de *name* n'est pas gérée " +"par le système hôte, même si elle est incluse dans ``pathconf_names``, une :" +"exc:`OSError` est levée avec :const:`errno.EINVAL` pour code d'erreur." + +#: ../Doc/library/os.rst:787 +msgid "As of Python 3.3, this is equivalent to ``os.pathconf(fd, name)``." +msgstr "Depuis Python 3.3, c'est équivalent à ``os.pathconf(fd, name)``." + +#: ../Doc/library/os.rst:794 +msgid "" +"Get the status of the file descriptor *fd*. Return a :class:`stat_result` " +"object." +msgstr "" +"Récupère le statut du descripteur de fichier *fd*. Renvoie un objet :class:" +"`stat_result`." + +#: ../Doc/library/os.rst:797 +msgid "As of Python 3.3, this is equivalent to ``os.stat(fd)``." +msgstr "Depuis Python 3.3, c'est équivalent à ``os.stat(fd)``." + +#: ../Doc/library/os.rst:801 ../Doc/library/os.rst:1807 +msgid "The :func:`.stat` function." +msgstr "La fonction :func:`.stat`." + +#: ../Doc/library/os.rst:806 +msgid "" +"Return information about the filesystem containing the file associated with " +"file descriptor *fd*, like :func:`statvfs`. As of Python 3.3, this is " +"equivalent to ``os.statvfs(fd)``." +msgstr "" +"Renvoie des informations sur le système de fichier contenant le fichier " +"associé au descripteur *fd*, comme :func:`statvfs`. Depuis Python 3.3, c'est " +"équivalent à ``os.statvfs(fd)``." + +#: ../Doc/library/os.rst:815 +msgid "" +"Force write of file with filedescriptor *fd* to disk. On Unix, this calls " +"the native :c:func:`fsync` function; on Windows, the MS :c:func:`_commit` " +"function." +msgstr "" +"Force l'écriture du fichier ayant le descripteur *fd* sur le disque. Sur " +"Unix, cet appel appel la fonction native :c:func:`fsync`, sur Windows, la " +"fonction MS :c:func:`_commit`." + +#: ../Doc/library/os.rst:818 +msgid "" +"If you're starting with a buffered Python :term:`file object` *f*, first do " +"``f.flush()``, and then do ``os.fsync(f.fileno())``, to ensure that all " +"internal buffers associated with *f* are written to disk." +msgstr "" +"Si vous débutez avec un :term:`file object` Python mis en tampon *f*, " +"commencez par faire ``f.flush()`` et seulement ensuite ``os.fsync(f." +"fileno())`` pour être sûr que tous les tampons internes associés à *f* " +"soient écrits sur le disque." + +#: ../Doc/library/os.rst:827 +msgid "" +"Truncate the file corresponding to file descriptor *fd*, so that it is at " +"most *length* bytes in size. As of Python 3.3, this is equivalent to ``os." +"truncate(fd, length)``." +msgstr "" +"Tronque le fichier correspondant au descripteur *fd* pour qu'il soit maximum " +"long de *length* *bytes*. Depuis Python 3.3, c'est équivalent à ``os." +"truncate(fd, length)``." + +#: ../Doc/library/os.rst:833 ../Doc/library/os.rst:2751 +msgid "Added support for Windows" +msgstr "Prise en charge de Windows" + +#: ../Doc/library/os.rst:838 +msgid "" +"Get the blocking mode of the file descriptor: ``False`` if the :data:" +"`O_NONBLOCK` flag is set, ``True`` if the flag is cleared." +msgstr "" +"Récupère le mode bloquant du descripteur de fichier : ``False`` si " +"l'indicateur :data:`O_NONBLOCK` est mis, et ``True`` si l'indicateur est " +"effacé." + +#: ../Doc/library/os.rst:841 +msgid "See also :func:`set_blocking` and :meth:`socket.socket.setblocking`." +msgstr "" +"Voir également :func:`set_blocking` et :meth:`socket.socket.setblocking`." + +#: ../Doc/library/os.rst:849 +msgid "" +"Return ``True`` if the file descriptor *fd* is open and connected to a tty(-" +"like) device, else ``False``." +msgstr "" +"Renvoie ``True`` si le descripteur de fichier *fd* est ouvert et connecté à " +"un périphérique TTY (ou compatible), sinon ``False``." + +#: ../Doc/library/os.rst:855 +msgid "" +"Apply, test or remove a POSIX lock on an open file descriptor. *fd* is an " +"open file descriptor. *cmd* specifies the command to use - one of :data:" +"`F_LOCK`, :data:`F_TLOCK`, :data:`F_ULOCK` or :data:`F_TEST`. *len* " +"specifies the section of the file to lock." +msgstr "" +"Applique, teste, ou retire un verrou POSIX sur un descripteur de fichier " +"ouvert. *fd* est un descripteur de fichier ouvert. *cmd* spécifie la " +"commande à utiliser (une des valeurs suivantes : :data:`F_LOCK`, :data:" +"`F_TLOCK`, :data:`F_ULOCK`, ou :data:`F_TEST`). *len* spécifie la section du " +"fichier à verrouiller." + +#: ../Doc/library/os.rst:871 +msgid "Flags that specify what action :func:`lockf` will take." +msgstr "Indicateurs spécifiant quelle action :func:`lockf` va prendre." + +#: ../Doc/library/os.rst:880 +msgid "" +"Set the current position of file descriptor *fd* to position *pos*, modified " +"by *how*: :const:`SEEK_SET` or ``0`` to set the position relative to the " +"beginning of the file; :const:`SEEK_CUR` or ``1`` to set it relative to the " +"current position; :const:`SEEK_END` or ``2`` to set it relative to the end " +"of the file. Return the new cursor position in bytes, starting from the " +"beginning." +msgstr "" +"Place la position actuelle du descripteur de fichier *fd* à la position " +"*pos*, modifié par *how* : :const:`SEEK_SET` ou ``0`` pour placer la " +"position à partir du début du fichier, :const:`SEEK_CUR` ou ``1`` pour la " +"placer à partir de la position actuelle, et :const:`SEEK_END` ou ``2`` pour " +"la placer par rapport à la fin du fichier. Renvoie la nouvelle position du " +"curseur en bytes, à partir du début." + +#: ../Doc/library/os.rst:891 +msgid "" +"Parameters to the :func:`lseek` function. Their values are 0, 1, and 2, " +"respectively." +msgstr "" +"Paramètres de la fonction :func:`lseek`. Leur valeur est respectivement 0, " +"1, et 2." + +#: ../Doc/library/os.rst:894 +msgid "" +"Some operating systems could support additional values, like :data:`os." +"SEEK_HOLE` or :data:`os.SEEK_DATA`." +msgstr "" +"Certains systèmes d'exploitation pourraient gérer des valeurs additionnelles " +"telles que :data:`os.SEEK_HOLE` ou :data:`os.SEEK_DATA`." + +#: ../Doc/library/os.rst:901 +msgid "" +"Open the file *path* and set various flags according to *flags* and possibly " +"its mode according to *mode*. When computing *mode*, the current umask " +"value is first masked out. Return the file descriptor for the newly opened " +"file. The new file descriptor is :ref:`non-inheritable `." +msgstr "" +"Ouvre le fichier *path* et met certains indicateurs selon *flags* et " +"éventuellement son mode selon *mode*. Lors de l'évaluation de *code*, ce " +"*umask* actuel est d'abord masquée. Renvoie le descripteur de fichier du " +"fichier nouvellement ouvert. Le nouveau descripteur de fichier est :ref:`non-" +"héritable `." + +#: ../Doc/library/os.rst:906 +msgid "" +"For a description of the flag and mode values, see the C run-time " +"documentation; flag constants (like :const:`O_RDONLY` and :const:`O_WRONLY`) " +"are defined in the :mod:`os` module. In particular, on Windows adding :" +"const:`O_BINARY` is needed to open files in binary mode." +msgstr "" +"Pour une description des indicateurs et des valeurs des modes, voir la " +"documentation de la bibliothèque standard du C. Les constantes d'indicateurs " +"(telles que :const:`O_RDONLY` et :const:`O_WRONLY`) sont définies dans le " +"module :mod:`os`. En particulier, sur Windows, ajouter :const:`O_BINARY` est " +"nécessaire pour ouvrir des fichiers en binaire." + +#: ../Doc/library/os.rst:911 +msgid "" +"This function can support :ref:`paths relative to directory descriptors " +"` with the *dir_fd* parameter." +msgstr "" +"Cette fonction prend en charge des :ref:`chemins relatifs à des descripteurs " +"de répertoires ` avec le paramètre *dir_fd*." + +#: ../Doc/library/os.rst:919 +msgid "" +"This function is intended for low-level I/O. For normal usage, use the " +"built-in function :func:`open`, which returns a :term:`file object` with :" +"meth:`~file.read` and :meth:`~file.write` methods (and many more). To wrap " +"a file descriptor in a file object, use :func:`fdopen`." +msgstr "" +"Cette fonction est destinée aux E/S de bas-niveau. Pour un usage normal, " +"utilisez la primitive :func:`open` qui renvoie un :term:`file object` avec " +"les méthodes :meth:`~file.read` et :meth:`~file.write` (et plein d'autres). " +"Pour envelopper un descripteur de fichier dans un fichier objet, utilisez :" +"func:`fdopen`." + +#: ../Doc/library/os.rst:924 ../Doc/library/os.rst:1839 +#: ../Doc/library/os.rst:1905 ../Doc/library/os.rst:1927 +#: ../Doc/library/os.rst:2004 ../Doc/library/os.rst:2025 +msgid "The *dir_fd* argument." +msgstr "L'argument *dir_fd*." + +#: ../Doc/library/os.rst:927 ../Doc/library/os.rst:1219 +#: ../Doc/library/os.rst:1342 ../Doc/library/os.rst:3696 +msgid "" +"If the system call is interrupted and the signal handler does not raise an " +"exception, the function now retries the system call instead of raising an :" +"exc:`InterruptedError` exception (see :pep:`475` for the rationale)." +msgstr "" +"Si l'appel système est interrompu et que le gestionnaire de signal ne lève " +"aucune exception, la fonction réessaye l'appel système au lieu de lever une :" +"exc:`InterruptedError` (voir la :pep:`475` à propos du raisonnement)." + +#: ../Doc/library/os.rst:932 ../Doc/library/os.rst:1546 +#: ../Doc/library/os.rst:1573 ../Doc/library/os.rst:1602 +#: ../Doc/library/os.rst:1646 ../Doc/library/os.rst:1678 +#: ../Doc/library/os.rst:1709 ../Doc/library/os.rst:1722 +#: ../Doc/library/os.rst:1733 ../Doc/library/os.rst:1786 +#: ../Doc/library/os.rst:1842 ../Doc/library/os.rst:1881 +#: ../Doc/library/os.rst:1908 ../Doc/library/os.rst:1930 +#: ../Doc/library/os.rst:1971 ../Doc/library/os.rst:2007 +#: ../Doc/library/os.rst:2028 ../Doc/library/os.rst:2045 +#: ../Doc/library/os.rst:2116 ../Doc/library/os.rst:2373 +#: ../Doc/library/os.rst:2602 ../Doc/library/os.rst:2754 +#: ../Doc/library/os.rst:2768 ../Doc/library/os.rst:2808 +#: ../Doc/library/os.rst:2901 ../Doc/library/os.rst:2960 +#: ../Doc/library/os.rst:2998 ../Doc/library/os.rst:3139 +#: ../Doc/library/os.rst:3485 +msgid "Accepts a :term:`path-like object`." +msgstr "Accepte un :term:`path-like object`." + +#: ../Doc/library/os.rst:935 +msgid "" +"The following constants are options for the *flags* parameter to the :func:" +"`~os.open` function. They can be combined using the bitwise OR operator ``|" +"``. Some of them are not available on all platforms. For descriptions of " +"their availability and use, consult the :manpage:`open(2)` manual page on " +"Unix or `the MSDN `_ " +"on Windows." +msgstr "" +"Les constantes suivantes sont optionnelles pour le paramètre *flag* à la " +"fonction :func:`~os.open`. Elles peuvent être combinées en utilisant " +"l'opérateur bit-à-bit OR ``|``. certains ne sont pas disponibles sur toutes " +"les plate-formes. Pour une description sur leur disponibilité et leur usage, " +"consultez la page de manuel Unix :manpage:`open(2)` ou la `MSDN `_ sur Windows." + +#: ../Doc/library/os.rst:950 +msgid "The above constants are available on Unix and Windows." +msgstr "Les constantes ci-dessus sont disponibles sur Unix et Windows." + +#: ../Doc/library/os.rst:961 +msgid "The above constants are only available on Unix." +msgstr "Les constantes ci-dessus sont uniquement disponibles sur Unix." + +#: ../Doc/library/os.rst:963 +msgid "Add :data:`O_CLOEXEC` constant." +msgstr "Ajout de la constante :data:`O_CLOCEXEC`." + +#: ../Doc/library/os.rst:974 +msgid "The above constants are only available on Windows." +msgstr "Les constantes ci-dessus sont uniquement disponibles sur Windows." + +#: ../Doc/library/os.rst:987 +msgid "" +"The above constants are extensions and not present if they are not defined " +"by the C library." +msgstr "" +"Les constantes ci-dessus sont des extensions et ne sont pas présentes si " +"elles ne sont pas définies par la bibliothèque C." + +#: ../Doc/library/os.rst:990 +msgid "" +"Add :data:`O_PATH` on systems that support it. Add :data:`O_TMPFILE`, only " +"available on Linux Kernel 3.11 or newer." +msgstr "" +"Ajout de :data:`O_PATH` sur les systèmes qui le gèrent. Ajout de :data:" +"`O_TMPFILE`, uniquement disponible sur Linux Kernel 3.11 ou plus récent." + +#: ../Doc/library/os.rst:1000 +msgid "" +"Open a new pseudo-terminal pair. Return a pair of file descriptors " +"``(master, slave)`` for the pty and the tty, respectively. The new file " +"descriptors are :ref:`non-inheritable `. For a (slightly) " +"more portable approach, use the :mod:`pty` module." +msgstr "" +"Ouvre une nouvelle paire pseudo-terminal. Renvoie une paire de descripteurs " +"de fichiers ``(master, slave)`` pour le PTY et le TTY respectivement. Les " +"nouveaux descripteurs de fichiers sont :ref:`non-héritables " +"`. Pour une approche (légèrement) plus portable, utilisez le " +"module :mod:`pty`." + +#: ../Doc/library/os.rst:1006 ../Doc/library/os.rst:1032 +#: ../Doc/library/os.rst:3312 +msgid ":ref:`Availability `: some flavors of Unix." +msgstr ":ref:`Disponibilité ` : certains dérivés Unix." + +#: ../Doc/library/os.rst:1007 ../Doc/library/os.rst:1019 +msgid "The new file descriptors are now non-inheritable." +msgstr "Les nouveaux descripteurs de fichiers sont maintenant non-héritables." + +#: ../Doc/library/os.rst:1013 +msgid "" +"Create a pipe. Return a pair of file descriptors ``(r, w)`` usable for " +"reading and writing, respectively. The new file descriptor is :ref:`non-" +"inheritable `." +msgstr "" +"Crée un *pipe* (un tube). Renvoie une paire de descripteurs de fichiers " +"``(r, w)`` utilisables respectivement pour lire et pour écrire. Les nouveaux " +"descripteurs de fichiers sont :ref:`non-héritables `." + +#: ../Doc/library/os.rst:1025 +msgid "" +"Create a pipe with *flags* set atomically. *flags* can be constructed by " +"ORing together one or more of these values: :data:`O_NONBLOCK`, :data:" +"`O_CLOEXEC`. Return a pair of file descriptors ``(r, w)`` usable for reading " +"and writing, respectively." +msgstr "" +"Crée un *pipe* avec *flags* mis atomiquement. *flags* peut être construit en " +"appliquant l'opérateur ``|`` (OU) sur une ou plus de ces valeurs : :data:" +"`O_NONBLOCK`, :data:`O_CLOEXEC`. Renvoie une paire de descripteurs de " +"fichiers ``(r, w)`` utilisables respectivement pour lire et pour écrire." + +#: ../Doc/library/os.rst:1038 +msgid "" +"Ensures that enough disk space is allocated for the file specified by *fd* " +"starting from *offset* and continuing for *len* bytes." +msgstr "" +"Assure que suffisamment d'espace sur le disque est alloué pour le fichier " +"spécifié par *fd* partant de *offset* et continuant sur *len* bytes." + +#: ../Doc/library/os.rst:1048 +msgid "" +"Announces an intention to access data in a specific pattern thus allowing " +"the kernel to make optimizations. The advice applies to the region of the " +"file specified by *fd* starting at *offset* and continuing for *len* bytes. " +"*advice* is one of :data:`POSIX_FADV_NORMAL`, :data:" +"`POSIX_FADV_SEQUENTIAL`, :data:`POSIX_FADV_RANDOM`, :data:" +"`POSIX_FADV_NOREUSE`, :data:`POSIX_FADV_WILLNEED` or :data:" +"`POSIX_FADV_DONTNEED`." +msgstr "" +"Annonce une intention d'accéder à des données selon un motif spécifique, et " +"donc permettant au noyau de faire des optimisations. Le conseil *advice* " +"s'applique à la région spécifiée par *fd*, démarrant à *offset* et " +"continuant sur *len* bytes. *advice* est une des valeurs suivantes : :data:" +"`POSIX_FADV_NORMAL`, :data:`POSIX_FADV_SEQUENTIAL`, :data:" +"`POSIX_FADV_RANDOM`, :data:`POSIX_FADV_NOREUSE`, :data:" +"`POSIX_FADV_WILLNEED`, ou :data:`POSIX_FADV_DONTNEED`." + +#: ../Doc/library/os.rst:1068 +msgid "" +"Flags that can be used in *advice* in :func:`posix_fadvise` that specify the " +"access pattern that is likely to be used." +msgstr "" +"Indicateurs qui peuvent être utilisés dans *advice* dans la fonction :func:" +"`posix_fadvise` et qui spécifient le motif d'accès qui est censé être " +"utilisé." + +#: ../Doc/library/os.rst:1078 +msgid "" +"Read at most *n* bytes from file descriptor *fd* at a position of *offset*, " +"leaving the file offset unchanged." +msgstr "" +"Lit au maximum *n* octets depuis le descripteur de fichier *fd* à la " +"position *offset* sans modifier cette position." + +#: ../Doc/library/os.rst:1081 ../Doc/library/os.rst:1208 +msgid "" +"Return a bytestring containing the bytes read. If the end of the file " +"referred to by *fd* has been reached, an empty bytes object is returned." +msgstr "" +"Renvoie une chaîne d'octets contenant les octets lus, ou une chaîne d'octets " +"vide si la fin du fichier pointé par *fd* est atteinte." + +#: ../Doc/library/os.rst:1091 +msgid "" +"Read from a file descriptor *fd* at a position of *offset* into mutable :" +"term:`bytes-like objects ` *buffers*, leaving the file " +"offset unchanged. Transfer data into each buffer until it is full and then " +"move on to the next buffer in the sequence to hold the rest of the data." +msgstr "" +"Lit depuis un descripteur de fichier *fd*, à la position *offset* dans des :" +"term:`objets bytes-compatibles ` muables *buffers*, sans " +"modifier la position dans le fichier. Les données sont transférées dans " +"chaque tampon, jusqu'à ce qu'il soit plein, tour à tour." + +#: ../Doc/library/os.rst:1096 ../Doc/library/os.rst:1165 +msgid "" +"The flags argument contains a bitwise OR of zero or more of the following " +"flags:" +msgstr "" +"L'argument *flags* contient un OU logique bit-à-bit de zéro ou plusieurs des " +"indicateurs suivants :" + +#: ../Doc/library/os.rst:1099 +msgid ":data:`RWF_HIPRI`" +msgstr ":data:`RWF_HIPRI`" + +#: ../Doc/library/os.rst:1100 +msgid ":data:`RWF_NOWAIT`" +msgstr ":data:`RWF_NOWAIT`" + +#: ../Doc/library/os.rst:1102 ../Doc/library/os.rst:1292 +msgid "" +"Return the total number of bytes actually read which can be less than the " +"total capacity of all the objects." +msgstr "" +"Renvoie le nombre total d'octets réellement lus, qui peut être inférieur à " +"la capacité totale de tous les objets." + +#: ../Doc/library/os.rst:1105 ../Doc/library/os.rst:1173 +#: ../Doc/library/os.rst:1295 ../Doc/library/os.rst:1357 +msgid "" +"The operating system may set a limit (:func:`sysconf` value " +"``'SC_IOV_MAX'``) on the number of buffers that can be used." +msgstr "" +"Le système d'exploitation peut définir une limite (valeur :func:`sysconf` " +"``'SC_IOV_MAX'``) sur le nombre de mémoires tampons pouvant être utilisées." + +#: ../Doc/library/os.rst:1108 +msgid "Combine the functionality of :func:`os.readv` and :func:`os.pread`." +msgstr "Combine les fonctionnalités de :func:`os.readv` et :func:`os.pread`." + +#: ../Doc/library/os.rst:1112 +msgid "" +":ref:`Availability `: Linux 2.6.30 and newer, FreeBSD 6.0 and " +"newer, OpenBSD 2.7 and newer. Using flags requires Linux 4.6 or newer." +msgstr "" +":ref:`Disponibilité ` : Linux 2.6.30 et plus récent, FreeBSD " +"6.0 et plus récent, OpenBSD 2.7 et plus récent. L'utilisation de *flags* " +"requiert Linux 4.6 ou plus récent." + +#: ../Doc/library/os.rst:1118 +msgid "" +"Do not wait for data which is not immediately available. If this flag is " +"specified, the system call will return instantly if it would have to read " +"data from the backing storage or wait for a lock." +msgstr "" +"Ne pas attendre pour des données qui ne sont pas immédiatement disponibles. " +"Si cette option est spécifiée, l'appel système retourne instantanément s'il " +"doit lire les données du stockage sous-jacent ou attendre un verrou." + +#: ../Doc/library/os.rst:1122 +msgid "" +"If some data was successfully read, it will return the number of bytes read. " +"If no bytes were read, it will return ``-1`` and set errno to :data:`errno." +"EAGAIN`." +msgstr "" +"Si certaines données ont été lues avec succès, le nombre d'octets lus est " +"renvoyé. Si aucun octet n'a été lu, renvoie ``-1`` et affecte à *errno* la " +"valeur :data:`errno.EAGAIN`." + +#: ../Doc/library/os.rst:1127 +msgid ":ref:`Availability `: Linux 4.14 and newer." +msgstr ":ref:`Disponibilité ` : Linux 4.14 et ultérieures." + +#: ../Doc/library/os.rst:1133 +msgid "" +"High priority read/write. Allows block-based filesystems to use polling of " +"the device, which provides lower latency, but may use additional resources." +msgstr "" +"Lecture/écriture haute priorité. Permet aux systèmes de fichiers de type " +"bloc d'utiliser le *polling* du périphérique, qui fournit une latence " +"inférieure, mais peut utiliser des ressources supplémentaires." + +#: ../Doc/library/os.rst:1137 +msgid "" +"Currently, on Linux, this feature is usable only on a file descriptor opened " +"using the :data:`O_DIRECT` flag." +msgstr "" +"Actuellement, sous Linux, cette fonctionnalité est utilisable uniquement sur " +"un descripteur de fichier ouvert à l'aide de l'option :data:`O_DIRECT`." + +#: ../Doc/library/os.rst:1141 +msgid ":ref:`Availability `: Linux 4.6 and newer." +msgstr ":ref:`Disponibilité ` : Linux 4.6 et ultérieures." + +#: ../Doc/library/os.rst:1147 +msgid "" +"Write the bytestring in *str* to file descriptor *fd* at position of " +"*offset*, leaving the file offset unchanged." +msgstr "" +"Écrit la chaîne d'octets de *str* dans le descripteur de fichier *fd* à la " +"position *offset* en laissant la position dans le fichier inchangée." + +#: ../Doc/library/os.rst:1150 ../Doc/library/os.rst:1332 +msgid "Return the number of bytes actually written." +msgstr "Renvoie le nombre d'octets effectivement écrits." + +#: ../Doc/library/os.rst:1159 +msgid "" +"Write the *buffers* contents to file descriptor *fd* at a offset *offset*, " +"leaving the file offset unchanged. *buffers* must be a sequence of :term:" +"`bytes-like objects `. Buffers are processed in array " +"order. Entire contents of the first buffer is written before proceeding to " +"the second, and so on." +msgstr "" +"Écrit le contenu de *buffers* vers le descripteur de fichier *fd* à la " +"position *offset*, en laissant la position du fichier inchangée. *buffers* " +"doit être une séquence de :term:`objets bytes-compatibles `. Les tampons sont traités dans l'ordre du tableau. Le contenu " +"entier du premier tampon est écrit avant le traitement du second, etc." + +#: ../Doc/library/os.rst:1168 +msgid ":data:`RWF_DSYNC`" +msgstr ":data:`RWF_DSYNC`" + +#: ../Doc/library/os.rst:1169 +msgid ":data:`RWF_SYNC`" +msgstr ":data:`RWF_SYNC`" + +#: ../Doc/library/os.rst:1171 +msgid "Return the total number of bytes actually written." +msgstr "Renvoie le nombre total d'octets effectivement écrits." + +#: ../Doc/library/os.rst:1176 +msgid "Combine the functionality of :func:`os.writev` and :func:`os.pwrite`." +msgstr "" +"Combine les fonctionnalités de :func:`os. writev` et :func:`os. pwrite`." + +#: ../Doc/library/os.rst:1180 +msgid "" +":ref:`Availability `: Linux 2.6.30 and newer, FreeBSD 6.0 and " +"newer, OpenBSD 2.7 and newer. Using flags requires Linux 4.7 or newer." +msgstr "" +":ref:`Disponibilité ` : Linux 2.6.30 et plus récent, FreeBSD " +"6.0 et plus récent, OpenBSD 2.7 et plus récent. L'utilisation de *flags* " +"requiert Linux 4.6 ou plus récent." + +#: ../Doc/library/os.rst:1186 +msgid "" +"Provide a per-write equivalent of the :data:`O_DSYNC` ``open(2)`` flag. This " +"flag effect applies only to the data range written by the system call." +msgstr "" +"Fournit un équivalent par écriture de l'option :data:`O_DSYNC` de " +"``open(2)``. L' effet de cette option s'applique uniquement à la plage de " +"données écrite par l'appel système." + +#: ../Doc/library/os.rst:1190 ../Doc/library/os.rst:1200 +msgid ":ref:`Availability `: Linux 4.7 and newer." +msgstr ":ref:`Disponibilité ` : Linux 4.7 et ultérieures." + +#: ../Doc/library/os.rst:1196 +msgid "" +"Provide a per-write equivalent of the :data:`O_SYNC` ``open(2)`` flag. This " +"flag effect applies only to the data range written by the system call." +msgstr "" +"Fournit un équivalent par écriture de l'option :data:`O_SYNC` de " +"``open(2)``. L'effet de cette option s'applique uniquement à la plage de " +"données écrite par l'appel système." + +#: ../Doc/library/os.rst:1206 +msgid "Read at most *n* bytes from file descriptor *fd*." +msgstr "Lit au maximum *n* octets du descripteur de fichier *fd*." + +#: ../Doc/library/os.rst:1213 +msgid "" +"This function is intended for low-level I/O and must be applied to a file " +"descriptor as returned by :func:`os.open` or :func:`pipe`. To read a \"file " +"object\" returned by the built-in function :func:`open` or by :func:`popen` " +"or :func:`fdopen`, or :data:`sys.stdin`, use its :meth:`~file.read` or :meth:" +"`~file.readline` methods." +msgstr "" +"Cette fonction est destinée aux E/S bas niveau et doit être appliquée à un " +"descripteur de fichier comme renvoyé par :func:`os.open` ou :func:`pipe`. " +"Pour lire dans un \"fichier objet\" renvoyé par la primitive :func:`open`, :" +"func:`popen` ou :func:`fdopen`, ou par :data:`stdin`, utilisez sa méthode :" +"meth:`~file.read` ou :meth:`~file.readline`." + +#: ../Doc/library/os.rst:1228 +msgid "" +"Copy *count* bytes from file descriptor *in* to file descriptor *out* " +"starting at *offset*. Return the number of bytes sent. When EOF is reached " +"return 0." +msgstr "" +"Copie *count* bytes depuis un descripteur de fichier *in* dans un " +"descripteur de fichier *out* en démarrant à *offset*. Renvoie le nombre de " +"bytes envoyés. Quand EOF est atteint, renvoie 0." + +#: ../Doc/library/os.rst:1232 +msgid "" +"The first function notation is supported by all platforms that define :func:" +"`sendfile`." +msgstr "" +"La première notation de fonction est prise en charge par toutes les plate-" +"formes qui définissent :func:`sendfile`." + +#: ../Doc/library/os.rst:1235 +msgid "" +"On Linux, if *offset* is given as ``None``, the bytes are read from the " +"current position of *in* and the position of *in* is updated." +msgstr "" +"Sur Linux, si *offset* est donné par ``None``, les bytes sont lus depuis la " +"position actuelle de *in* et la position de *in* est mise à jour." + +#: ../Doc/library/os.rst:1238 +msgid "" +"The second case may be used on Mac OS X and FreeBSD where *headers* and " +"*trailers* are arbitrary sequences of buffers that are written before and " +"after the data from *in* is written. It returns the same as the first case." +msgstr "" +"Le second cas peut être utilisé sur Mac OS X et FreeBSD où *headers* et " +"*trailers* sont des séquences arbitraires de tampons qui sont écrites avant " +"et après que les données de *in* ne soient écrites. Renvoie la même chose " +"que le premier cas." + +#: ../Doc/library/os.rst:1242 +msgid "" +"On Mac OS X and FreeBSD, a value of 0 for *count* specifies to send until " +"the end of *in* is reached." +msgstr "" +"Sur Mac OS X et FreeBSD, une valeur de 0 pour *count* spécifié d'envoyer " +"jusqu'à ce que la fin de *in* ne soit atteinte." + +#: ../Doc/library/os.rst:1245 +msgid "" +"All platforms support sockets as *out* file descriptor, and some platforms " +"allow other types (e.g. regular file, pipe) as well." +msgstr "" +"Toutes les plate-formes gèrent les connecteurs comme des descripteurs de " +"fichier *out*, et certaines plate-formes autorisent d'autres types (par " +"exemple, un fichier normal ou un tube) également." + +#: ../Doc/library/os.rst:1248 +msgid "" +"Cross-platform applications should not use *headers*, *trailers* and *flags* " +"arguments." +msgstr "" +"Les applications multiplate-formes ne devraient pas utiliser les arguments " +"*headers*, *trailers*, et *flags*." + +#: ../Doc/library/os.rst:1255 +msgid "" +"For a higher-level wrapper of :func:`sendfile`, see :meth:`socket.socket." +"sendfile`." +msgstr "" +"Pour une interface de plus haut niveau de :func:`sendfile`, voir :meth:" +"`socket.socket.setfile`." + +#: ../Doc/library/os.rst:1263 +msgid "" +"Set the blocking mode of the specified file descriptor. Set the :data:" +"`O_NONBLOCK` flag if blocking is ``False``, clear the flag otherwise." +msgstr "" +"Définit le mode bloquant d'un descripteur de fichier spécifié. Assigne " +"l'indicateur :data:`O_NONBLOCK` si *blocking* vaut ``False``, efface " +"l'indicateur sinon." + +#: ../Doc/library/os.rst:1266 +msgid "See also :func:`get_blocking` and :meth:`socket.socket.setblocking`." +msgstr "Voir aussi :func:`get_blocking` et :meth:`socket;socket.setblocking`." + +#: ../Doc/library/os.rst:1277 +msgid "" +"Parameters to the :func:`sendfile` function, if the implementation supports " +"them." +msgstr "" +"Paramètres de la fonction :func:`sendfile`, si l'implémentation les gère." + +#: ../Doc/library/os.rst:1287 +msgid "" +"Read from a file descriptor *fd* into a number of mutable :term:`bytes-like " +"objects ` *buffers*. Transfer data into each buffer until " +"it is full and then move on to the next buffer in the sequence to hold the " +"rest of the data." +msgstr "" +"Lit depuis un descripteur de fichier *fd* dans une séquence d':term:`objets " +"bytes-compatibles ` muables : *buffers*. Les données sont " +"transférées dans chaque tampon, jusqu'à ce qu'il soit plein, tour à tour." + +#: ../Doc/library/os.rst:1305 +msgid "" +"Return the process group associated with the terminal given by *fd* (an open " +"file descriptor as returned by :func:`os.open`)." +msgstr "" +"Renvoie le groupe de processus associé au terminal donné par *fd* (un " +"descripteur de fichier ouvert comme renvoyé par :func:`os.open`)." + +#: ../Doc/library/os.rst:1313 +msgid "" +"Set the process group associated with the terminal given by *fd* (an open " +"file descriptor as returned by :func:`os.open`) to *pg*." +msgstr "" +"Place *pg* dans le groupe de processus associé au terminal donné par *fd* " +"(un descripteur de fichier ouvert comme renvoyé par :func:`os.open`)." + +#: ../Doc/library/os.rst:1321 +msgid "" +"Return a string which specifies the terminal device associated with file " +"descriptor *fd*. If *fd* is not associated with a terminal device, an " +"exception is raised." +msgstr "" +"Renvoie une chaîne de caractères spécifiant le périphérique terminal associé " +"au descripteur de fichier *fd*. Si *fd* n'est pas associé à un périphérique " +"terminal, une exception est levée." + +#: ../Doc/library/os.rst:1330 +msgid "Write the bytestring in *str* to file descriptor *fd*." +msgstr "Écrit la chaîne d'octets de *str* vers le descripteur de fichier *fd*." + +#: ../Doc/library/os.rst:1336 +msgid "" +"This function is intended for low-level I/O and must be applied to a file " +"descriptor as returned by :func:`os.open` or :func:`pipe`. To write a " +"\"file object\" returned by the built-in function :func:`open` or by :func:" +"`popen` or :func:`fdopen`, or :data:`sys.stdout` or :data:`sys.stderr`, use " +"its :meth:`~file.write` method." +msgstr "" +"Cette fonction est destinée aux entrées-sorties bas niveau et doit être " +"appliquée à un descripteur de fichier comme renvoyé par :func:`os.open` ou :" +"func:`pipe`. Pour écrire dans un \"fichier objet\" renvoyé par la primitive :" +"func:`open`, :func:`popen`, ou par :func:`fdopen`, ou par :data:`sys.stdout` " +"ou :data:`sys.stderr`, utilisez sa méthode :meth:`~file.write`." + +#: ../Doc/library/os.rst:1350 +msgid "" +"Write the contents of *buffers* to file descriptor *fd*. *buffers* must be a " +"sequence of :term:`bytes-like objects `. Buffers are " +"processed in array order. Entire contents of the first buffer is written " +"before proceeding to the second, and so on." +msgstr "" +"Écrit le contenu de *buffers* vers le descripteur de fichier *fd*. *buffers* " +"doit être une séquence d':term:`objets bytes-compatibles `. Les tampons sont traités dans l'ordre du tableau. Le contenu " +"entier du premier tampon est écrit avant le traitement du second, etc." + +#: ../Doc/library/os.rst:1355 +msgid "Returns the total number of bytes actually written." +msgstr "Renvoie le nombre total d'octets effectivement écrits." + +#: ../Doc/library/os.rst:1368 +msgid "Querying the size of a terminal" +msgstr "Demander la taille d'un terminal" + +#: ../Doc/library/os.rst:1374 +msgid "" +"Return the size of the terminal window as ``(columns, lines)``, tuple of " +"type :class:`terminal_size`." +msgstr "" +"Renvoie la taille du terminal comme un couple ``(columns, lines)`` de type :" +"class:`terminal_size`." + +#: ../Doc/library/os.rst:1377 +msgid "" +"The optional argument ``fd`` (default ``STDOUT_FILENO``, or standard output) " +"specifies which file descriptor should be queried." +msgstr "" +"L'argument optionnel ``fd`` (par défaut : ``STDOUT_FILENO``, ou la sortie " +"standard) spécifie le descripteur de fichier auquel la requête doit être " +"envoyée." + +#: ../Doc/library/os.rst:1380 +msgid "" +"If the file descriptor is not connected to a terminal, an :exc:`OSError` is " +"raised." +msgstr "" +"Si le descripteur de fichier n'est pas connecté à un terminal, une :exc:" +"`OSError` est levée." + +#: ../Doc/library/os.rst:1383 +msgid "" +":func:`shutil.get_terminal_size` is the high-level function which should " +"normally be used, ``os.get_terminal_size`` is the low-level implementation." +msgstr "" +":func:`shutil.get_terminal_size` est la fonction haut-niveau qui devrait " +"normalement être utilisée, ``os.get_terminal_size`` en est l'implémentation " +"bas-niveau." + +#: ../Doc/library/os.rst:1391 +msgid "" +"A subclass of tuple, holding ``(columns, lines)`` of the terminal window " +"size." +msgstr "" +"Une sous-classe de *tuple*, contenant ``(columns, lines)``, la taille du " +"terminal." + +#: ../Doc/library/os.rst:1395 +msgid "Width of the terminal window in characters." +msgstr "Longueur du terminal en caractères." + +#: ../Doc/library/os.rst:1399 +msgid "Height of the terminal window in characters." +msgstr "Hauteur du terminal en caractères." + +#: ../Doc/library/os.rst:1405 +msgid "Inheritance of File Descriptors" +msgstr "Héritage de descripteurs de fichiers" + +#: ../Doc/library/os.rst:1409 +msgid "" +"A file descriptor has an \"inheritable\" flag which indicates if the file " +"descriptor can be inherited by child processes. Since Python 3.4, file " +"descriptors created by Python are non-inheritable by default." +msgstr "" +"Un descripteur de fichier a un indicateur indiquant s'il peut être hérité " +"par les processus-fils. Depuis Python 3.4, les descripteurs de fichiers " +"créés par Python ne sont pas héritable par défaut." + +#: ../Doc/library/os.rst:1413 +msgid "" +"On UNIX, non-inheritable file descriptors are closed in child processes at " +"the execution of a new program, other file descriptors are inherited." +msgstr "" +"Sur UNIX, les descripteurs de fichiers non-héritables sont fermés dans les " +"processus-fils à l'exécution, les autres descripteurs sont hérités." + +#: ../Doc/library/os.rst:1416 +msgid "" +"On Windows, non-inheritable handles and file descriptors are closed in child " +"processes, except for standard streams (file descriptors 0, 1 and 2: stdin, " +"stdout and stderr), which are always inherited. Using :func:`spawn\\* " +"` functions, all inheritable handles and all inheritable file " +"descriptors are inherited. Using the :mod:`subprocess` module, all file " +"descriptors except standard streams are closed, and inheritable handles are " +"only inherited if the *close_fds* parameter is ``False``." +msgstr "" +"Sur Windows, les fichiers et identificateurs non-héritables sont fermés dans " +"les processus-fils, à part les flux standards (descripteurs 0, 1, et 2 : " +"*stdin*, *stdout* et *stderr*) qui sont toujours hérités. En utilisant les " +"fonctions :func:`spawn\\* `, tous les identificateurs héritables et " +"les descripteurs de fichiers héritables sont hérités. En utilisant le " +"module :mod:`subprocess`, tous les descripteurs de fichiers (à part les flux " +"standards) sont fermés, et les identificateurs héritables sont hérités " +"seulement si le paramètre *close_fds* vaut ``False``." + +#: ../Doc/library/os.rst:1426 +msgid "" +"Get the \"inheritable\" flag of the specified file descriptor (a boolean)." +msgstr "" +"Récupère le marqueur \"héritable\" (booléen) du descripteur de fichier " +"spécifié." + +#: ../Doc/library/os.rst:1430 +msgid "Set the \"inheritable\" flag of the specified file descriptor." +msgstr "Définit le marqueur \"héritable\" du descripteur de fichier spécifié." + +#: ../Doc/library/os.rst:1434 +msgid "Get the \"inheritable\" flag of the specified handle (a boolean)." +msgstr "" +"Récupère le marqueur \"héritable\" (booléen) de l'identificateur spécifié." + +#: ../Doc/library/os.rst:1436 ../Doc/library/os.rst:1442 +#: ../Doc/library/os.rst:3520 ../Doc/library/os.rst:3549 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." + +#: ../Doc/library/os.rst:1440 +msgid "Set the \"inheritable\" flag of the specified handle." +msgstr "Définit le marqueur \"héritable\" de l'identificateur spécifié." + +#: ../Doc/library/os.rst:1448 +msgid "Files and Directories" +msgstr "Fichiers et répertoires" + +#: ../Doc/library/os.rst:1450 +msgid "" +"On some Unix platforms, many of these functions support one or more of these " +"features:" +msgstr "" +"Sur certaines plate-formes Unix, beaucoup de ces fonctions gèrent une ou " +"plusieurs des fonctionnalités suivantes :" + +#: ../Doc/library/os.rst:1455 +msgid "" +"**specifying a file descriptor:** For some functions, the *path* argument " +"can be not only a string giving a path name, but also a file descriptor. " +"The function will then operate on the file referred to by the descriptor. " +"(For POSIX systems, Python will call the ``f...`` version of the function.)" +msgstr "" +"**spécifier un descripteur de fichier :** pour certaines fonctions, " +"l'argument *path* peut être non seulement une chaîne de caractères donnant " +"le chemin vers le fichier, mais également un descripteur de fichier. La " +"fonction opérera alors sur le fichier référencé par le descripteur. (Pour " +"les systèmes POSIX, Python appellera la version ``f...`` de la fonction.)" + +#: ../Doc/library/os.rst:1461 +msgid "" +"You can check whether or not *path* can be specified as a file descriptor on " +"your platform using :data:`os.supports_fd`. If it is unavailable, using it " +"will raise a :exc:`NotImplementedError`." +msgstr "" +"Vous pouvez vérifier si *path* peut être donné par un descripteur de fichier " +"sur votre plate-forme en utilisant :data:`os.supports_fd`. Si c'est " +"indisponible, l'utiliser lèvera une :exc:`NotImplementedError`." + +#: ../Doc/library/os.rst:1465 +msgid "" +"If the function also supports *dir_fd* or *follow_symlinks* arguments, it is " +"an error to specify one of those when supplying *path* as a file descriptor." +msgstr "" +"Si la fonction gère également les arguments *dir_fd* ou *follow_symlinks*, " +"spécifier l'un de ces arguments est une erreur quand *path* est donné en " +"tant que descripteur de fichier." + +#: ../Doc/library/os.rst:1470 +msgid "" +"**paths relative to directory descriptors:** If *dir_fd* is not ``None``, it " +"should be a file descriptor referring to a directory, and the path to " +"operate on should be relative; path will then be relative to that " +"directory. If the path is absolute, *dir_fd* is ignored. (For POSIX " +"systems, Python will call the ``...at`` or ``f...at`` version of the " +"function.)" +msgstr "" +"**Chemins relatifs vers des descripteurs de répertoires :** si *dir_fd* " +"n'est pas ``None``, il devrait être un descripteur de fichier référençant un " +"répertoire, et le chemin sur lequel opérer devrait être relatif. Le chemin " +"est donc relatif à ce répertoire. Si le chemin est absolu, *dir_fd* est " +"ignoré. (Pour les systèmes POSIX, Python appellera la version ``...at`` ou " +"``f...at`` de la fonction.)" + +#: ../Doc/library/os.rst:1476 +msgid "" +"You can check whether or not *dir_fd* is supported on your platform using :" +"data:`os.supports_dir_fd`. If it is unavailable, using it will raise a :exc:" +"`NotImplementedError`." +msgstr "" +"Vous pouvez vérifier si *dir_fd* est géré sur votre plate-forme en " +"utilisant :data:`os.supports_dir_fd`. Si c'est indisponible, l'utiliser " +"lèvera une :exc:`NotImplementedError`." + +#: ../Doc/library/os.rst:1482 +msgid "" +"**not following symlinks:** If *follow_symlinks* is ``False``, and the last " +"element of the path to operate on is a symbolic link, the function will " +"operate on the symbolic link itself instead of the file the link points to. " +"(For POSIX systems, Python will call the ``l...`` version of the function.)" +msgstr "" +"**Non-suivi des symlinks (liens symboliques) :** si *follow_symlinks* vaut " +"``False`` et le dernier élément du chemin sur lequel opérer est un lien " +"symbolique, la fonction opérera sur le lien symbolique et pas sur le fichier " +"pointé par le lien. (Pour les systèmes POSIX, Python appellera la version " +"``l...`` de la fonction.)" + +#: ../Doc/library/os.rst:1488 +msgid "" +"You can check whether or not *follow_symlinks* is supported on your platform " +"using :data:`os.supports_follow_symlinks`. If it is unavailable, using it " +"will raise a :exc:`NotImplementedError`." +msgstr "" +"Vous pouvez voir si *follow_symlinks* est géré sur votre plate-forme en " +"utilisant :data:`os.supports_follow_symlinks`. Si c'est indisponible, " +"l'utiliser lèvera une :exc:`NotImplementedError`." + +#: ../Doc/library/os.rst:1496 +msgid "" +"Use the real uid/gid to test for access to *path*. Note that most " +"operations will use the effective uid/gid, therefore this routine can be " +"used in a suid/sgid environment to test if the invoking user has the " +"specified access to *path*. *mode* should be :const:`F_OK` to test the " +"existence of *path*, or it can be the inclusive OR of one or more of :const:" +"`R_OK`, :const:`W_OK`, and :const:`X_OK` to test permissions. Return :const:" +"`True` if access is allowed, :const:`False` if not. See the Unix man page :" +"manpage:`access(2)` for more information." +msgstr "" +"Utilise l'*uid*/*gid* réel pour tester l'accès à *path*. Notez que la " +"plupart des opérations utiliseront l'*uid*/*gid* effectif, dès lors cette " +"méthode peut être utilisée dans un environnement *suid*/*sgid* pour tester " +"si l'utilisateur invoquant a les droits d'accès pour accéder à *path*. " +"*mode* devrait être :const:`F_OK` pour tester l'existence de *path*, ou il " +"peut être le OR (OU inclusif) d'une ou plusieurs des constantes suivantes : :" +"const:`R_OK`, :const:`W_OK`, et :const:`X_OK` pour tester les permissions. " +"Renvoie :const:`True` si l'accès est permis, et :const:`False` s'il ne l'est " +"pas. Voir la page de manuel Unix :manpage:`access(2)` pour plus " +"d'informations." + +#: ../Doc/library/os.rst:1505 +msgid "" +"This function can support specifying :ref:`paths relative to directory " +"descriptors ` and :ref:`not following symlinks `." +msgstr "" +"Cette fonction peut gérer la spécification de :ref:`chemins relatifs vers " +"des descripteurs de fichiers ` et :ref:`le suivi des liens " +"symboliques `." + +#: ../Doc/library/os.rst:1508 +msgid "" +"If *effective_ids* is ``True``, :func:`access` will perform its access " +"checks using the effective uid/gid instead of the real uid/gid. " +"*effective_ids* may not be supported on your platform; you can check whether " +"or not it is available using :data:`os.supports_effective_ids`. If it is " +"unavailable, using it will raise a :exc:`NotImplementedError`." +msgstr "" +"Si *effective_id* vaut ``True``, :func:`access` effectuera ses vérifications " +"d'accès en utilisant l'*uid*/*gid* effectif à la place de l'*uid*/*gid* " +"réel. *effective_ids* peut ne pas être géré sur votre plate-forme, vous " +"pouvez vérifier s'il est disponible en utilisant :data:`os." +"supports_effective_ids`. S'il est indisponible, l'utiliser lèvera une :exc:" +"`NotImplementedError`." + +#: ../Doc/library/os.rst:1516 +msgid "" +"Using :func:`access` to check if a user is authorized to e.g. open a file " +"before actually doing so using :func:`open` creates a security hole, because " +"the user might exploit the short time interval between checking and opening " +"the file to manipulate it. It's preferable to use :term:`EAFP` techniques. " +"For example::" +msgstr "" +"Utiliser :func:`access` pour vérifier si un utilisateur est autorisé (par " +"exemple) à ouvrir un fichier avant d'effectivement le faire en utilisant :" +"func:`open` crée une faille de sécurité : l'utilisateur peut exploiter le " +"court intervalle de temps entre la vérification et l'ouverture du fichier " +"pour le manipuler. Il est préférable d'utiliser les techniques :term:`EAFP`. " +"Par exemple ::" + +#: ../Doc/library/os.rst:1527 +msgid "is better written as::" +msgstr "est mieux écrit comme suit ::" + +#: ../Doc/library/os.rst:1539 +msgid "" +"I/O operations may fail even when :func:`access` indicates that they would " +"succeed, particularly for operations on network filesystems which may have " +"permissions semantics beyond the usual POSIX permission-bit model." +msgstr "" +"Les opérations d'entrées/sorties peuvent échouer même quand :func:`access` " +"indique qu'elles devraient réussir, particulièrement pour les opérations sur " +"les systèmes de fichiers réseaux qui peuvent avoir une sémantique de " +"permissions au-delà du modèle de bits de permission usuel POSIX." + +#: ../Doc/library/os.rst:1543 +msgid "Added the *dir_fd*, *effective_ids*, and *follow_symlinks* parameters." +msgstr "Paramètres *dir_fd*, *effective_ids*, et *follow_symlinks* ajoutés." + +#: ../Doc/library/os.rst:1555 +msgid "" +"Values to pass as the *mode* parameter of :func:`access` to test the " +"existence, readability, writability and executability of *path*, " +"respectively." +msgstr "" +"Valeurs à passer au paramètre *mode* de :func:`access` pour tester " +"respectivement l'existence, les droits de lecture, d'écriture et d'exécution." + +#: ../Doc/library/os.rst:1564 +msgid "Change the current working directory to *path*." +msgstr "Change le répertoire de travail actuel par *path*." + +#: ../Doc/library/os.rst:1566 +msgid "" +"This function can support :ref:`specifying a file descriptor `. " +"The descriptor must refer to an opened directory, not an open file." +msgstr "" +"Cette fonction prend en charge :ref:`la spécification d'un descripteur de " +"fichier `. Le descripteur doit référencer un répertoire ouvert, pas " +"un fichier ouvert." + +#: ../Doc/library/os.rst:1569 +msgid "" +"Added support for specifying *path* as a file descriptor on some platforms." +msgstr "" +"Prise en charge de la spécification de *path* par un descripteur de fichier " +"sur certaines plate-formes." + +#: ../Doc/library/os.rst:1579 +msgid "" +"Set the flags of *path* to the numeric *flags*. *flags* may take a " +"combination (bitwise OR) of the following values (as defined in the :mod:" +"`stat` module):" +msgstr "" +"Définit les marqueurs de *path* par la valeur numérique *flags*. *flags* " +"peut prendre une combinaison (OU bit-à-bit) des valeurs suivantes (comme " +"défini dans le module :mod:`stat`) :" + +#: ../Doc/library/os.rst:1582 +msgid ":data:`stat.UF_NODUMP`" +msgstr ":data:`stat.UF_NODUMP`" + +#: ../Doc/library/os.rst:1583 +msgid ":data:`stat.UF_IMMUTABLE`" +msgstr ":data:`stat.UF_IMMUTABLE`" + +#: ../Doc/library/os.rst:1584 +msgid ":data:`stat.UF_APPEND`" +msgstr ":data:`stat.UF_APPEND`" + +#: ../Doc/library/os.rst:1585 +msgid ":data:`stat.UF_OPAQUE`" +msgstr ":data:`stat.UF_OPAQUE`" + +#: ../Doc/library/os.rst:1586 +msgid ":data:`stat.UF_NOUNLINK`" +msgstr ":data:`stat.UF_NOUNLINK`" + +#: ../Doc/library/os.rst:1587 +msgid ":data:`stat.UF_COMPRESSED`" +msgstr ":data:`stat.UF_COMPRESSED`" + +#: ../Doc/library/os.rst:1588 +msgid ":data:`stat.UF_HIDDEN`" +msgstr ":data:`stat.UF_HIDDEN`" + +#: ../Doc/library/os.rst:1589 +msgid ":data:`stat.SF_ARCHIVED`" +msgstr ":data:`stat.SF_ARCHIVED`" + +#: ../Doc/library/os.rst:1590 +msgid ":data:`stat.SF_IMMUTABLE`" +msgstr ":data:`stat.SF_IMMUTABLE`" + +#: ../Doc/library/os.rst:1591 +msgid ":data:`stat.SF_APPEND`" +msgstr ":data:`stat.SF_APPEND`" + +#: ../Doc/library/os.rst:1592 +msgid ":data:`stat.SF_NOUNLINK`" +msgstr ":data:`stat.SF_NOUNLINK`" + +#: ../Doc/library/os.rst:1593 +msgid ":data:`stat.SF_SNAPSHOT`" +msgstr ":data:`stat.SF_SNAPSHOT`" + +#: ../Doc/library/os.rst:1595 +msgid "" +"This function can support :ref:`not following symlinks `." +msgstr "" +"Cette fonction prend en charge :ref:`le suivi des liens symboliques " +"`." + +#: ../Doc/library/os.rst:1599 +msgid "The *follow_symlinks* argument." +msgstr "L'argument *follow_symlinks*." + +#: ../Doc/library/os.rst:1608 +msgid "" +"Change the mode of *path* to the numeric *mode*. *mode* may take one of the " +"following values (as defined in the :mod:`stat` module) or bitwise ORed " +"combinations of them:" +msgstr "" +"Change le mode de *path* par la valeur numérique *mode*. *mode* peut prendre " +"une des valeurs suivantes (comme défini dans le module :mod:`stat`) ou une " +"combinaison (OU bit-à-bit) de ces valeurs :" + +#: ../Doc/library/os.rst:1612 +msgid ":data:`stat.S_ISUID`" +msgstr ":data:`stat.S_ISUID`" + +#: ../Doc/library/os.rst:1613 +msgid ":data:`stat.S_ISGID`" +msgstr ":data:`stat.S_ISGID`" + +#: ../Doc/library/os.rst:1614 +msgid ":data:`stat.S_ENFMT`" +msgstr ":data:`stat.S_ENFMT`" + +#: ../Doc/library/os.rst:1615 +msgid ":data:`stat.S_ISVTX`" +msgstr ":data:`stat.S_ISVTX`" + +#: ../Doc/library/os.rst:1616 +msgid ":data:`stat.S_IREAD`" +msgstr ":data:`stat.S_IREAD`" + +#: ../Doc/library/os.rst:1617 +msgid ":data:`stat.S_IWRITE`" +msgstr ":data:`stat.S_IWRITE`" + +#: ../Doc/library/os.rst:1618 +msgid ":data:`stat.S_IEXEC`" +msgstr ":data:`stat.S_IEXEC`" + +#: ../Doc/library/os.rst:1619 +msgid ":data:`stat.S_IRWXU`" +msgstr ":data:`stat.S_IRWXU`" + +#: ../Doc/library/os.rst:1620 +msgid ":data:`stat.S_IRUSR`" +msgstr ":data:`stat.S_IRUSR`" + +#: ../Doc/library/os.rst:1621 +msgid ":data:`stat.S_IWUSR`" +msgstr ":data:`stat.S_IWUSR`" + +#: ../Doc/library/os.rst:1622 +msgid ":data:`stat.S_IXUSR`" +msgstr ":data:`stat.S_IXUSR`" + +#: ../Doc/library/os.rst:1623 +msgid ":data:`stat.S_IRWXG`" +msgstr ":data:`stat.S_IRWXG`" + +#: ../Doc/library/os.rst:1624 +msgid ":data:`stat.S_IRGRP`" +msgstr ":data:`stat.S_IRGRP`" + +#: ../Doc/library/os.rst:1625 +msgid ":data:`stat.S_IWGRP`" +msgstr ":data:`stat.S_IWGRP`" + +#: ../Doc/library/os.rst:1626 +msgid ":data:`stat.S_IXGRP`" +msgstr ":data:`stat.S_IXGRP`" + +#: ../Doc/library/os.rst:1627 +msgid ":data:`stat.S_IRWXO`" +msgstr ":data:`stat.S_IRWXO`" + +#: ../Doc/library/os.rst:1628 +msgid ":data:`stat.S_IROTH`" +msgstr ":data:`stat.S_IROTH`" + +#: ../Doc/library/os.rst:1629 +msgid ":data:`stat.S_IWOTH`" +msgstr ":data:`stat.S_IWOTH`" + +#: ../Doc/library/os.rst:1630 +msgid ":data:`stat.S_IXOTH`" +msgstr ":data:`stat.S_IXOTH`" + +#: ../Doc/library/os.rst:1632 ../Doc/library/os.rst:1655 +#: ../Doc/library/os.rst:2800 +msgid "" +"This function can support :ref:`specifying a file descriptor `, :" +"ref:`paths relative to directory descriptors ` and :ref:`not " +"following symlinks `." +msgstr "" +"Cette fonction prend en charge :ref:`la spécification d'un descripteur de " +"fichier `, :ref:`les chemins relatifs à des descripteurs de " +"répertoires `, et :ref:`le non-suivi des liens symboliques " +"`." + +#: ../Doc/library/os.rst:1638 +msgid "" +"Although Windows supports :func:`chmod`, you can only set the file's read-" +"only flag with it (via the ``stat.S_IWRITE`` and ``stat.S_IREAD`` constants " +"or a corresponding integer value). All other bits are ignored." +msgstr "" +"Bien que Windows gère :func:`chmod`, vous ne pouvez y définir que le " +"marqueur de lecture-seule du fichier (via les constantes ``stat.S_IWRITE`` " +"et ``stat.S_IREAD`` ou une constante entière correspondante). Tous les " +"autres bits sont ignorés." + +#: ../Doc/library/os.rst:1642 +msgid "" +"Added support for specifying *path* as an open file descriptor, and the " +"*dir_fd* and *follow_symlinks* arguments." +msgstr "" +"Prise en charge de la spécification de *path* par un répertoire ouvert et " +"des arguments *dir_fd* et *follow_symlinks* ajoutés." + +#: ../Doc/library/os.rst:1652 +msgid "" +"Change the owner and group id of *path* to the numeric *uid* and *gid*. To " +"leave one of the ids unchanged, set it to -1." +msgstr "" +"Change l'identifiant du propriétaire et du groupe de *path* par les valeurs " +"numériques *uid* et *gid*. Pour laisser l'un de ces identifiants inchangé, " +"le définir à ``-1``." + +#: ../Doc/library/os.rst:1659 +msgid "" +"See :func:`shutil.chown` for a higher-level function that accepts names in " +"addition to numeric ids." +msgstr "" +"Voir :func:`shutil.chown` pour une fonction de plus haut-niveau qui accepte " +"des noms en plus des identifiants numériques." + +#: ../Doc/library/os.rst:1664 +msgid "" +"Added support for specifying an open file descriptor for *path*, and the " +"*dir_fd* and *follow_symlinks* arguments." +msgstr "" +"Prise en charge de la spécification de *path* par un descripteur de fichier " +"ouvert et des arguments *dir_fd* et *follow_symlinks* ajoutés." + +#: ../Doc/library/os.rst:1668 +msgid "Supports a :term:`path-like object`." +msgstr "Accepte un :term:`path-like object`." + +#: ../Doc/library/os.rst:1674 +msgid "Change the root directory of the current process to *path*." +msgstr "Change le répertoire racine du processus actuel par *path*." + +#: ../Doc/library/os.rst:1684 +msgid "" +"Change the current working directory to the directory represented by the " +"file descriptor *fd*. The descriptor must refer to an opened directory, not " +"an open file. As of Python 3.3, this is equivalent to ``os.chdir(fd)``." +msgstr "" +"Change le répertoire de travail actuel par le répertoire représenté par le " +"descripteur de fichier *fd*. Le descripteur doit référencer un répertoire " +"ouvert, pas un fichier ouvert. Depuis Python 3.3, c'est équivalent à ``os." +"chdir(fd)``." + +#: ../Doc/library/os.rst:1693 +msgid "Return a string representing the current working directory." +msgstr "" +"Renvoie une chaîne de caractères représentant le répertoire de travail " +"actuel." + +#: ../Doc/library/os.rst:1698 +msgid "Return a bytestring representing the current working directory." +msgstr "" +"Renvoie une chaîne de *bytes* représentant le répertoire de travail actuel." + +#: ../Doc/library/os.rst:1703 +msgid "" +"Set the flags of *path* to the numeric *flags*, like :func:`chflags`, but do " +"not follow symbolic links. As of Python 3.3, this is equivalent to ``os." +"chflags(path, flags, follow_symlinks=False)``." +msgstr "" +"Définit les marqueurs de *path* par la valeur numérique *flags*, comme :func:" +"`chflags`, mais ne suit pas les liens symboliques. Depuis Python 3.3, c'est " +"équivalent à ``os.chflags(path, flags, follow_symlinks=False)``." + +#: ../Doc/library/os.rst:1715 +msgid "" +"Change the mode of *path* to the numeric *mode*. If path is a symlink, this " +"affects the symlink rather than the target. See the docs for :func:`chmod` " +"for possible values of *mode*. As of Python 3.3, this is equivalent to ``os." +"chmod(path, mode, follow_symlinks=False)``." +msgstr "" +"Change le mode de *path* par la valeur numérique *mode*. Si *path* est un " +"lien symbolique, ça affecte le lien symbolique à la place de la cible. Voir " +"la documentation pour les valeurs possibles de *mode* pour :func:`chmod`. " +"Depuis Python 3.3, c'est équivalent à ``os.chmod(path, mode, " +"follow_symlinks=False)``." + +#: ../Doc/library/os.rst:1727 +msgid "" +"Change the owner and group id of *path* to the numeric *uid* and *gid*. " +"This function will not follow symbolic links. As of Python 3.3, this is " +"equivalent to ``os.chown(path, uid, gid, follow_symlinks=False)``." +msgstr "" +"Change les identifiants du propriétaire et du groupe de *path* par *uid* et " +"*gid*. Cette fonction ne suivra pas les liens symboliques. Depuis Python " +"3.3, c'est équivalent à ``os.chown(path, uid, gid, follow_symlinks=False)``." + +#: ../Doc/library/os.rst:1739 +msgid "Create a hard link pointing to *src* named *dst*." +msgstr "Crée un lien matériel appelé *dst* pointant sur *src*." + +#: ../Doc/library/os.rst:1741 +msgid "" +"This function can support specifying *src_dir_fd* and/or *dst_dir_fd* to " +"supply :ref:`paths relative to directory descriptors `, and :ref:" +"`not following symlinks `." +msgstr "" +"Cette fonction prend en charge la spécification *src_dir_fd* et/ou " +"*dst_dir_fd* pour préciser :ref:`des chemins relatifs à des descripteurs de " +"répertoires `, et :ref:`le non-suivi des liens symboliques " +"`." + +#: ../Doc/library/os.rst:1747 +msgid "Added Windows support." +msgstr "Prise en charge de Windows." + +#: ../Doc/library/os.rst:1750 +msgid "Added the *src_dir_fd*, *dst_dir_fd*, and *follow_symlinks* arguments." +msgstr "Arguments *src_dir_fd*, *dst_dir_fd*, et *follow_symlinks* ajoutés." + +#: ../Doc/library/os.rst:1753 ../Doc/library/os.rst:1815 +#: ../Doc/library/os.rst:2067 ../Doc/library/os.rst:2100 +#: ../Doc/library/os.rst:2727 +msgid "Accepts a :term:`path-like object` for *src* and *dst*." +msgstr "Accepte un :term:`path-like object` pour *src* et *dst*." + +#: ../Doc/library/os.rst:1759 +msgid "" +"Return a list containing the names of the entries in the directory given by " +"*path*. The list is in arbitrary order, and does not include the special " +"entries ``'.'`` and ``'..'`` even if they are present in the directory." +msgstr "" +"Renvoie une liste contenant le nom des entrées dans le répertoire donné par " +"*path*. La liste est dans un ordre arbitraire et n'inclut pas les entrées " +"spéciales ``'.'`` et ``'..'`` même si elles sont présentes dans le " +"répertoire." + +#: ../Doc/library/os.rst:1763 +msgid "" +"*path* may be a :term:`path-like object`. If *path* is of type ``bytes`` " +"(directly or indirectly through the :class:`PathLike` interface), the " +"filenames returned will also be of type ``bytes``; in all other " +"circumstances, they will be of type ``str``." +msgstr "" +"*path* peut être un :term:`path-like object`. Si *path* est de type " +"``bytes`` (directement ou indirectement à travers une interface :class:" +"`PathLike`), les noms de fichiers renvoyés seront aussi de type ``bytes`` ; " +"dans toutes les autres circonstances, ils seront de type ``str``." + +#: ../Doc/library/os.rst:1768 ../Doc/library/os.rst:2143 +msgid "" +"This function can also support :ref:`specifying a file descriptor " +"`; the file descriptor must refer to a directory." +msgstr "" +"Cette fonction peut également gérer :ref:`la spécification de descripteurs " +"de fichiers`. Le descripteur doit référencer un répertoire." + +#: ../Doc/library/os.rst:1772 +msgid "To encode ``str`` filenames to ``bytes``, use :func:`~os.fsencode`." +msgstr "" +"Pour encoder des noms de fichiers de type ``str`` en ``bytes``, utilisez la " +"fonction :func:`~os.encode`." + +#: ../Doc/library/os.rst:1776 +msgid "" +"The :func:`scandir` function returns directory entries along with file " +"attribute information, giving better performance for many common use cases." +msgstr "" +"La fonction :func:`scandir` renvoie les entrées du répertoire ainsi que " +"leurs attributs , offrant une meilleure performance pour beaucoup de cas " +"utilisés fréquemment." + +#: ../Doc/library/os.rst:1780 +msgid "The *path* parameter became optional." +msgstr "Le paramètre *path* est devenu optionnel." + +#: ../Doc/library/os.rst:1783 ../Doc/library/os.rst:2593 +msgid "Added support for specifying an open file descriptor for *path*." +msgstr "" +"Prise en charge de la spécification d'un descripteur de répertoire pour " +"*path* ajouté." + +#: ../Doc/library/os.rst:1792 +msgid "" +"Perform the equivalent of an :c:func:`lstat` system call on the given path. " +"Similar to :func:`~os.stat`, but does not follow symbolic links. Return a :" +"class:`stat_result` object." +msgstr "" +"Effectue l'équivalent d'un appel système :c:func:`lstat` sur le chemin " +"donné. Similaire à :func:`~os.stat` mais ne suit pas les liens symboliques. " +"Renvoie un objet de type :class:`stat_result`." + +#: ../Doc/library/os.rst:1796 +msgid "" +"On platforms that do not support symbolic links, this is an alias for :func:" +"`~os.stat`." +msgstr "" +"Sur les plate-formes qui ne gérant pas les liens symboliques, c'est un alias " +"pour :func:`~os.stat`." + +#: ../Doc/library/os.rst:1799 +msgid "" +"As of Python 3.3, this is equivalent to ``os.stat(path, dir_fd=dir_fd, " +"follow_symlinks=False)``." +msgstr "" +"Depuis Python 3.3, c'est équivalent à ``os.stat(path, dir_fd=dir_fd, " +"follow_symlinks=False)``." + +#: ../Doc/library/os.rst:1802 ../Doc/library/os.rst:1833 +#: ../Doc/library/os.rst:1894 ../Doc/library/os.rst:1922 +#: ../Doc/library/os.rst:1996 +msgid "" +"This function can also support :ref:`paths relative to directory descriptors " +"`." +msgstr "" +"Cette fonction peut également gérer :ref:`des chemins relatifs à des " +"descripteurs de répertoires `." + +#: ../Doc/library/os.rst:1809 ../Doc/library/os.rst:2001 +#: ../Doc/library/os.rst:2720 +msgid "Added support for Windows 6.0 (Vista) symbolic links." +msgstr "Prise en charge des les liens symboliques sur Windows 6.0 (Vista)." + +#: ../Doc/library/os.rst:1812 +msgid "Added the *dir_fd* parameter." +msgstr "Paramètre *dir_fd* ajouté." + +#: ../Doc/library/os.rst:1821 +msgid "Create a directory named *path* with numeric mode *mode*." +msgstr "" +"Crée un répertoire appelé *path* avec pour mode, la valeur numérique *mode*." + +#: ../Doc/library/os.rst:1823 +msgid "If the directory already exists, :exc:`FileExistsError` is raised." +msgstr "Si le répertoire existe déjà, :exc:`FileExistsError` est levée." + +#: ../Doc/library/os.rst:1827 +msgid "" +"On some systems, *mode* is ignored. Where it is used, the current umask " +"value is first masked out. If bits other than the last 9 (i.e. the last 3 " +"digits of the octal representation of the *mode*) are set, their meaning is " +"platform-dependent. On some platforms, they are ignored and you should " +"call :func:`chmod` explicitly to set them." +msgstr "" +"Sous certains systèmes, *mode* est ignoré. Quand il est utilisé, il lui est " +"premièrement appliqué le masque courant *umask*. Si des bits autres que les " +"9 derniers sont activés (i.e. les 3 derniers chiffres de la représentation " +"octale de *mode*), leur signification sera dépendante de la plate-forme. " +"Sous certaines plate-formes, ils seront ignorés et vous devrez appeler " +"explicitement :func:`chmod` pour les modifier." + +#: ../Doc/library/os.rst:1836 +msgid "" +"It is also possible to create temporary directories; see the :mod:`tempfile` " +"module's :func:`tempfile.mkdtemp` function." +msgstr "" +"Il est également possible de créer des répertoires temporaires, voir la " +"fonction :func:`tempfile.mkdtemp` du module :mod:`tempfile`." + +#: ../Doc/library/os.rst:1852 +msgid "" +"Recursive directory creation function. Like :func:`mkdir`, but makes all " +"intermediate-level directories needed to contain the leaf directory." +msgstr "" +"Fonction de création récursive de répertoires. Comme :func:`mkdir` mais crée " +"tous les répertoires de niveau intermédiaire nécessaires pour contenir le " +"répertoire \"feuille\"." + +#: ../Doc/library/os.rst:1855 +msgid "" +"The *mode* parameter is passed to :func:`mkdir` for creating the leaf " +"directory; see :ref:`the mkdir() description ` for how it is " +"interpreted. To set the file permission bits of any newly-created parent " +"directories you can set the umask before invoking :func:`makedirs`. The " +"file permission bits of existing parent directories are not changed." +msgstr "" +"Le paramètre *mode* est passé à :func:`mkdir` pour créer le répertoire " +"feuille ; reportez-vous à :ref:`la description de mkdir() ` " +"pour la manière dont il est interprété. Pour définir les bits de permissions " +"des répertoires intermédiaires nouvellement créés, vous pouvez définir la " +"valeur de *umask* avant d'invoquer :func:`makedirs`. Les bits de permissions " +"des répertoires intermédiaires déjà existants ne sont pas modifiés." + +#: ../Doc/library/os.rst:1861 +msgid "" +"If *exist_ok* is ``False`` (the default), an :exc:`OSError` is raised if the " +"target directory already exists." +msgstr "" +"Si *exist_ok* vaut ``False`` (valeur par défaut), une :exc:`OSError` est " +"levée si le répertoire cible existe déjà." + +#: ../Doc/library/os.rst:1866 +msgid "" +":func:`makedirs` will become confused if the path elements to create " +"include :data:`pardir` (eg. \"..\" on UNIX systems)." +msgstr "" +"Un appel à :func:`makedirs` est confus si les éléments du chemin à créer " +"contiennent :data:`pardir` (par exemple, \"..\" sur les systèmes UNIX)." + +#: ../Doc/library/os.rst:1869 +msgid "This function handles UNC paths correctly." +msgstr "Cette fonction gère les chemins UNC correctement." + +#: ../Doc/library/os.rst:1871 +msgid "The *exist_ok* parameter." +msgstr "Le paramètre *exist_ok*." + +#: ../Doc/library/os.rst:1876 +msgid "" +"Before Python 3.4.1, if *exist_ok* was ``True`` and the directory existed, :" +"func:`makedirs` would still raise an error if *mode* did not match the mode " +"of the existing directory. Since this behavior was impossible to implement " +"safely, it was removed in Python 3.4.1. See :issue:`21082`." +msgstr "" +"Avant Python 3.4.1, si *exist_ok* valait ``True`` et le répertoire à créer " +"existait, :func:`makedirs` aurait levé une erreur si *mode* n'était pas " +"équivalent au mode du répertoire existant. Puisque ce comportement n'était " +"pas possible ) implémenter de manière sécurisée, il a été retiré pour Python " +"3.4.1. Voir :issue:`21082`." + +#: ../Doc/library/os.rst:1884 +msgid "" +"The *mode* argument no longer affects the file permission bits of newly-" +"created intermediate-level directories." +msgstr "" +"L'argument *mode* n'affecte plus les bits d'autorisation de fichier des " +"répertoires intermédiaires créés." + +#: ../Doc/library/os.rst:1891 +msgid "" +"Create a FIFO (a named pipe) named *path* with numeric mode *mode*. The " +"current umask value is first masked out from the mode." +msgstr "" +"Crée un FIFO (*First In, First Out*, ou un tube (*pipe* en anglais) nommé) " +"appelé *path* avec le mode numérique *mode*. La valeur actuelle de *umask* " +"est d'abord masquée du mode." + +#: ../Doc/library/os.rst:1897 +msgid "" +"FIFOs are pipes that can be accessed like regular files. FIFOs exist until " +"they are deleted (for example with :func:`os.unlink`). Generally, FIFOs are " +"used as rendezvous between \"client\" and \"server\" type processes: the " +"server opens the FIFO for reading, and the client opens it for writing. " +"Note that :func:`mkfifo` doesn't open the FIFO --- it just creates the " +"rendezvous point." +msgstr "" +"Les FIFOs sont des tubes qui peuvent être accédés comme des fichiers " +"normaux. Les FIFOs existent jusqu'à ce qu'ils soient retirés (par exemple, à " +"l'aide de :func:`os.unlink`). Généralement, les FIFOs sont utilisé comme " +"communication entre des processus de type \"client\" et \"serveur\" : le " +"serveur ouvre le FIFO pour le lire, et le client l'ouvre pour écrire dedans. " +"Notez que :func:`mkfifo` n'ouvre pas le FIFO — il crée juste un point de " +"rendez-vous." + +#: ../Doc/library/os.rst:1914 +msgid "" +"Create a filesystem node (file, device special file or named pipe) named " +"*path*. *mode* specifies both the permissions to use and the type of node to " +"be created, being combined (bitwise OR) with one of ``stat.S_IFREG``, ``stat." +"S_IFCHR``, ``stat.S_IFBLK``, and ``stat.S_IFIFO`` (those constants are " +"available in :mod:`stat`). For ``stat.S_IFCHR`` and ``stat.S_IFBLK``, " +"*device* defines the newly created device special file (probably using :func:" +"`os.makedev`), otherwise it is ignored." +msgstr "" +"Crée un nœud du système de fichiers (fichier, périphérique, fichier spécial, " +"ou tuyau nommé) appelée *path*. *mode* spécifie à la fois les permissions à " +"utiliser et le type de nœud à créer, en étant combiné (OR bit-à-bit) avec " +"l'une des valeurs suivantes : ``stat.S_IFREG``, ``stat.S_IFCHR``, ``stat." +"S_IFBLK``, et ``stat.S_IFIFO`` (ces constantes sont disponibles dans le " +"module :mod:`stat`). Pour ``stat.S_IFCHR`` et ``stat.S_IFBLK``, *device* " +"définit le fichier spécial de périphérique tout juste créé (probablement en " +"utilisant :func:`os.makedev`), sinon, cet argument est ignoré." + +#: ../Doc/library/os.rst:1936 +msgid "" +"Extract the device major number from a raw device number (usually the :attr:" +"`st_dev` or :attr:`st_rdev` field from :c:type:`stat`)." +msgstr "" +"Extrait le nombre majeur de périphérique d'un nombre de périphérique brut " +"(habituellement le champ :attr:`st_dev` ou :attr:`st_rdev` de :c:type:" +"`stat`)." + +#: ../Doc/library/os.rst:1942 +msgid "" +"Extract the device minor number from a raw device number (usually the :attr:" +"`st_dev` or :attr:`st_rdev` field from :c:type:`stat`)." +msgstr "" +"Extrait le nombre mineur de périphérique d'un nombre de périphérique brut " +"(habituellement le champ :attr:`st_dev` ou :attr:`st_rdev` de :c:type:" +"`stat`)." + +#: ../Doc/library/os.rst:1948 +msgid "Compose a raw device number from the major and minor device numbers." +msgstr "" +"Compose un nombre de périphérique brut à partir des nombres de périphérique " +"mineur et majeur." + +#: ../Doc/library/os.rst:1953 +msgid "" +"Return system configuration information relevant to a named file. *name* " +"specifies the configuration value to retrieve; it may be a string which is " +"the name of a defined system value; these names are specified in a number of " +"standards (POSIX.1, Unix 95, Unix 98, and others). Some platforms define " +"additional names as well. The names known to the host operating system are " +"given in the ``pathconf_names`` dictionary. For configuration variables not " +"included in that mapping, passing an integer for *name* is also accepted." +msgstr "" +"Renvoie des informations sur la configurations relatives à un fichier " +"déterminé. *name* spécifie la valeur de configuration à récupérer ; ce peut " +"être une chaîne de caractères qui est le nom d'une valeur système " +"particulière. Ces noms sont spécifiés dans certains standards (POSIX.1, Unix " +"95, Unix 98, etc). Certaines plate-formes définissent des noms " +"supplémentaires également. Les noms connus du système d'exploitation hôte " +"sont donnés dans le dictionnaire ``pathconf_names``. Pour les variables de " +"configuration non incluses dans ce *mapping*, passer un entier pour *name* " +"est également accepté." + +#: ../Doc/library/os.rst:1966 ../Doc/library/os.rst:2586 +#: ../Doc/library/os.rst:2745 +msgid "" +"This function can support :ref:`specifying a file descriptor `." +msgstr "" +"Cette fonction prend en charge :ref:`la spécification d'un descripteur de " +"fichier `." + +#: ../Doc/library/os.rst:1977 +msgid "" +"Dictionary mapping names accepted by :func:`pathconf` and :func:`fpathconf` " +"to the integer values defined for those names by the host operating system. " +"This can be used to determine the set of names known to the system." +msgstr "" +"Dictionnaire liant les noms acceptés par les fonctions :func:`pathconf` et :" +"func:`fpathconf` aux valeurs entières définies pour ces noms par le système " +"d'exploitation hôte. Cette variable peut être utilisée pour déterminer " +"l'ensemble des noms connus du système d'exploitation." + +#: ../Doc/library/os.rst:1986 +msgid "" +"Return a string representing the path to which the symbolic link points. " +"The result may be either an absolute or relative pathname; if it is " +"relative, it may be converted to an absolute pathname using ``os.path." +"join(os.path.dirname(path), result)``." +msgstr "" +"Renvoie une chaîne de caractères représentant le chemin vers lequel le lien " +"symbolique pointe. Le résultat peut être soit un chemin relatif, soit un " +"chemin absolu. S'il est relatif, il peut être converti en chemin absolu en " +"utilisant ``os.path.join(os.path.dirname(path), result)``." + +#: ../Doc/library/os.rst:1991 +msgid "" +"If the *path* is a string object (directly or indirectly through a :class:" +"`PathLike` interface), the result will also be a string object, and the call " +"may raise a UnicodeDecodeError. If the *path* is a bytes object (direct or " +"indirectly), the result will be a bytes object." +msgstr "" +"Si *path* est une chaîne de caractères (directement ou indirectement à " +"travers une interface :class:`PathLike`), le résultat sera aussi une chaîne " +"de caractères, et l'appel pourra lever une UnicodeDecodeError. Si *path* est " +"une chaîne d'octets (directement ou indirectement), le résultat sera une " +"chaîne d'octets." + +#: ../Doc/library/os.rst:2013 +msgid "" +"Remove (delete) the file *path*. If *path* is a directory, :exc:`OSError` " +"is raised. Use :func:`rmdir` to remove directories." +msgstr "" +"Supprime (retire) le fichier représenté par *path*. Si *path* est un " +"répertoire, une :exc:`OSError` est levée. Utilisez la fonction :func:`rmdir` " +"pour supprimer un répertoire." + +#: ../Doc/library/os.rst:2016 ../Doc/library/os.rst:2110 +#: ../Doc/library/os.rst:2703 +msgid "" +"This function can support :ref:`paths relative to directory descriptors " +"`." +msgstr "" +"Cette fonction prend en charge :ref:`des chemins relatifs à des descripteurs " +"de répertories `." + +#: ../Doc/library/os.rst:2019 +msgid "" +"On Windows, attempting to remove a file that is in use causes an exception " +"to be raised; on Unix, the directory entry is removed but the storage " +"allocated to the file is not made available until the original file is no " +"longer in use." +msgstr "" +"Sur Windows, tenter de retirer un fichier en cours d'utilisation cause la " +"levée d'une exception, sur Unix, l'entrée du répertoire est supprimé mais " +"l'espace de stockage alloué au fichier ne sera pas disponible avant que le " +"fichier original ne soit plus utilisé." + +#: ../Doc/library/os.rst:2023 +msgid "This function is semantically identical to :func:`unlink`." +msgstr "La fonction est sémantiquement identique à :func:`unlink`." + +#: ../Doc/library/os.rst:2036 +msgid "" +"Remove directories recursively. Works like :func:`rmdir` except that, if " +"the leaf directory is successfully removed, :func:`removedirs` tries to " +"successively remove every parent directory mentioned in *path* until an " +"error is raised (which is ignored, because it generally means that a parent " +"directory is not empty). For example, ``os.removedirs('foo/bar/baz')`` will " +"first remove the directory ``'foo/bar/baz'``, and then remove ``'foo/bar'`` " +"and ``'foo'`` if they are empty. Raises :exc:`OSError` if the leaf directory " +"could not be successfully removed." +msgstr "" +"Supprime des répertoires récursivement. Fonctionne comme :func:`rmdir` si ce " +"n'est que si le répertoire feuille est retiré avec succès, :func:" +"`removedirs` essaye de supprimer successivement chaque répertoire parent " +"mentionné dans *path* jusqu'à ce qu'un erreur ne soit levée (ce qui est " +"ignoré car la signification générale en est qu'un répertoire parent n'est " +"pas vide). Par exemple, ``os.removedirs('foo/bar/baz')`` supprimera d'abord " +"le répertoire ``'foo/bar/baz'``, et ensuite supprimera ``'foo/bar'`` et puis " +"``'foo'`` s'ils sont vides. Lève une :exc:`OSError` si le répertoire feuille " +"n'a pas pu être supprimé avec succès." + +#: ../Doc/library/os.rst:2051 +msgid "" +"Rename the file or directory *src* to *dst*. If *dst* is a directory, :exc:" +"`OSError` will be raised. On Unix, if *dst* exists and is a file, it will " +"be replaced silently if the user has permission. The operation may fail on " +"some Unix flavors if *src* and *dst* are on different filesystems. If " +"successful, the renaming will be an atomic operation (this is a POSIX " +"requirement). On Windows, if *dst* already exists, :exc:`OSError` will be " +"raised even if it is a file." +msgstr "" +"Renomme le fichier ou le répertoire *src* en *dst*. Si *dst* est un " +"répertoire, une :exc:`OSError` est levée. Sur Unix, si *dst* existe, il sera " +"remplacé silencieusement si l'utilisateur en a la permission. L'opération " +"peut échouer sur certaines distributions Unix si *src* et *dst* sont sur des " +"systèmes de fichiers séparés. Si le renommage est effectué avec succès, il " +"est une opération atomique (nécessité POSIX). Sur Window, si *dst* existe " +"déjà, une :exc:`OSError` est levée même s'il est un fichier." + +#: ../Doc/library/os.rst:2059 ../Doc/library/os.rst:2095 +msgid "" +"This function can support specifying *src_dir_fd* and/or *dst_dir_fd* to " +"supply :ref:`paths relative to directory descriptors `." +msgstr "" +"Cette fonction prend en charge les spécifications *src_dir_fd* et/ou " +"*dst_dir_fd* pour fournir :ref:`des chemins relatifs à des descripteurs de " +"fichiers `." + +#: ../Doc/library/os.rst:2062 +msgid "" +"If you want cross-platform overwriting of the destination, use :func:" +"`replace`." +msgstr "" +"Si cous désirez un écrasement multiplate-forme de la destination, utilisez " +"la fonction :func:`replace`." + +#: ../Doc/library/os.rst:2064 +msgid "The *src_dir_fd* and *dst_dir_fd* arguments." +msgstr "Les arguments *src_dir_fd* et *dst_dir_fd*." + +#: ../Doc/library/os.rst:2073 +msgid "" +"Recursive directory or file renaming function. Works like :func:`rename`, " +"except creation of any intermediate directories needed to make the new " +"pathname good is attempted first. After the rename, directories " +"corresponding to rightmost path segments of the old name will be pruned away " +"using :func:`removedirs`." +msgstr "" +"Fonction récursive de renommage de fichiers ou répertoires. Fonctionne " +"comme :func:`rename`, si ce n'est que la création d'un répertoire " +"intermédiaire nécessaire pour rendre le nouveau chemin correct est essayé en " +"premier. Après le renommage, les répertoires correspondant aux segments de " +"chemin les plus à droite de l'ancien nom seront élagués en utilisant :func:" +"`removedirs`." + +#: ../Doc/library/os.rst:2080 +msgid "" +"This function can fail with the new directory structure made if you lack " +"permissions needed to remove the leaf directory or file." +msgstr "" +"Cette fonction peut échouer avec la nouvelle structure de dictionnaire " +"définie si vous n'avez pas les permissions nécessaires pour supprimer le " +"répertoire ou fichier feuille." + +#: ../Doc/library/os.rst:2083 +msgid "Accepts a :term:`path-like object` for *old* and *new*." +msgstr "Accepte un :term:`path-like object` pour *old* et *new*." + +#: ../Doc/library/os.rst:2089 +msgid "" +"Rename the file or directory *src* to *dst*. If *dst* is a directory, :exc:" +"`OSError` will be raised. If *dst* exists and is a file, it will be " +"replaced silently if the user has permission. The operation may fail if " +"*src* and *dst* are on different filesystems. If successful, the renaming " +"will be an atomic operation (this is a POSIX requirement)." +msgstr "" +"Renomme le fichier ou le répertoire *src* en *dst*. Si *dst* est un " +"répertoire, une :exc:`OSError` est levée. Si *dst* existe et est un fichier, " +"il sera remplacé silencieusement si l'utilisateur en a les permissions. " +"L'opération peut échouer si *src* et *dst* sont sur un système de fichiers " +"différent. Si le renommage est effectué avec succès, il est une opération " +"atomique (nécessité POSIX)." + +#: ../Doc/library/os.rst:2106 +msgid "" +"Remove (delete) the directory *path*. Only works when the directory is " +"empty, otherwise, :exc:`OSError` is raised. In order to remove whole " +"directory trees, :func:`shutil.rmtree` can be used." +msgstr "" +"Supprime (retire) le répertoire *path*. Ne fonctionne que lorsque le " +"répertoire est vide, sinon une :exc:`OSError` est levée. Afin de supprimer " +"toute la hiérarchie de dossier, la fonction :func:`shutil.rmtree` peut être " +"utilisée." + +#: ../Doc/library/os.rst:2113 ../Doc/library/os.rst:2765 +msgid "The *dir_fd* parameter." +msgstr "Le paramètre *dir_fd*." + +#: ../Doc/library/os.rst:2122 +msgid "" +"Return an iterator of :class:`os.DirEntry` objects corresponding to the " +"entries in the directory given by *path*. The entries are yielded in " +"arbitrary order, and the special entries ``'.'`` and ``'..'`` are not " +"included." +msgstr "" +"Renvoie un itérateur d'objets :class:`os.DirEntry` correspondant aux entrées " +"dans le répertoire indiqué par *path*. Les entrées sont produites dans un " +"ordre arbitraire, et les entrées spéciales ``'.'`` et ``'..'`` ne sont pas " +"incluses." + +#: ../Doc/library/os.rst:2127 +msgid "" +"Using :func:`scandir` instead of :func:`listdir` can significantly increase " +"the performance of code that also needs file type or file attribute " +"information, because :class:`os.DirEntry` objects expose this information if " +"the operating system provides it when scanning a directory. All :class:`os." +"DirEntry` methods may perform a system call, but :func:`~os.DirEntry.is_dir` " +"and :func:`~os.DirEntry.is_file` usually only require a system call for " +"symbolic links; :func:`os.DirEntry.stat` always requires a system call on " +"Unix but only requires one for symbolic links on Windows." +msgstr "" +"Utiliser :func:`scandir` plutôt que :func:`listdir` peut significativement " +"améliorer les performances des codes qui nécessitent aussi l'accès aux types " +"des fichiers ou à leurs attributs, puisque les objets :class:`os.DirEntry` " +"exposent ces informations si le système d'exploitation les fournit en " +"scannant le répertoire. Toutes les méthodes de :class:`os.DirEntry` peuvent " +"réaliser un appel système, mais :func:`~os.DirEntry.is_dir` et :func:`~os." +"DirEntry.is_file` n'en requièrent normalement un que pour les liens " +"symboliques ; :func:`os.DirEntry.stat` nécessite toujours un appel système " +"sous Unix, mais seulement pour les liens symboliques sous Windows." + +#: ../Doc/library/os.rst:2137 +msgid "" +"*path* may be a :term:`path-like object`. If *path* is of type ``bytes`` " +"(directly or indirectly through the :class:`PathLike` interface), the type " +"of the :attr:`~os.DirEntry.name` and :attr:`~os.DirEntry.path` attributes of " +"each :class:`os.DirEntry` will be ``bytes``; in all other circumstances, " +"they will be of type ``str``." +msgstr "" +"*path* peut être un :term:`path-like object`. Si *path* est de type " +"``bytes`` (directement ou indirectement à travers une interface :class:" +"`PathLike`), le type des attributs :attr:`~os.DirEntry.name` et :attr:`~os." +"DirEntry.path` de chaque :class:`os.DirEntry` sera ``bytes`` ; dans toutes " +"les autres circonstances, ils seront de type ``str``." + +#: ../Doc/library/os.rst:2146 +msgid "" +"The :func:`scandir` iterator supports the :term:`context manager` protocol " +"and has the following method:" +msgstr "" +"L'itérateur :func:`scandir` gère le protocole :term:`context manager` et " +"possède la méthode suivante :" + +#: ../Doc/library/os.rst:2151 +msgid "Close the iterator and free acquired resources." +msgstr "Ferme l'itérateur et libère les ressources acquises." + +#: ../Doc/library/os.rst:2153 +msgid "" +"This is called automatically when the iterator is exhausted or garbage " +"collected, or when an error happens during iterating. However it is " +"advisable to call it explicitly or use the :keyword:`with` statement." +msgstr "" +"Elle est appelée automatiquement quand l'itérateur est entièrement consommé " +"ou collecté par le ramasse-miettes, ou quand une erreur survient durant " +"l'itération. Il est cependant conseillé de l'appeler explicitement ou " +"d'utiliser l'instruction :keyword:`with`." + +#: ../Doc/library/os.rst:2160 +msgid "" +"The following example shows a simple use of :func:`scandir` to display all " +"the files (excluding directories) in the given *path* that don't start with " +"``'.'``. The ``entry.is_file()`` call will generally not make an additional " +"system call::" +msgstr "" +"L'exemple suivant montre une utilisation simple de :func:`scandir` pour " +"afficher tous les fichiers (à part les répertoires) dans le chemin donné par " +"*path* et ne débutant pas par ``'.'``. L'appel ``entry.is_file()`` ne va " +"généralement pas faire d'appel système supplémentaire ::" + +#: ../Doc/library/os.rst:2172 +msgid "" +"On Unix-based systems, :func:`scandir` uses the system's `opendir() `_ and " +"`readdir() `_ functions. On Windows, it uses the Win32 `FindFirstFileW " +"`_ and `FindNextFileW `_ functions." +msgstr "" +"Sur les systèmes inspirés de Unix, :func:`scandir` utilise les fonctions " +"système `opendir() `_ et `readdir() `_ Sur Windows, la fonction " +"utilise les fonctions Win32 `FindFirstFileW `_ et `FindNextFileW " +"`_." + +#: ../Doc/library/os.rst:2184 +msgid "" +"Added support for the :term:`context manager` protocol and the :func:" +"`~scandir.close()` method. If a :func:`scandir` iterator is neither " +"exhausted nor explicitly closed a :exc:`ResourceWarning` will be emitted in " +"its destructor." +msgstr "" +"Prise en charge du protocole :term:`context manager` et de la méthode :func:" +"`~scandir.close()`. Si un itérateur sur :func:`scandir` n'est ni " +"entièrement consommé ni explicitement fermé, un :exc:`ResourceWarning` sera " +"émis dans son destructeur." + +#: ../Doc/library/os.rst:2190 +msgid "The function accepts a :term:`path-like object`." +msgstr "La fonction accepte un :term:`path-like object`." + +#: ../Doc/library/os.rst:2192 +msgid "Added support for :ref:`file descriptors ` on Unix." +msgstr "" +"Ajout de la gestion des :ref:`descripteurs de fichiers ` sur Unix." + +#: ../Doc/library/os.rst:2198 +msgid "" +"Object yielded by :func:`scandir` to expose the file path and other file " +"attributes of a directory entry." +msgstr "" +"Objet donné par :func:`scandir` pour exposer le chemin du fichier et " +"d'autres attributs de fichier d'une entrée du répertoire." + +#: ../Doc/library/os.rst:2201 +msgid "" +":func:`scandir` will provide as much of this information as possible without " +"making additional system calls. When a ``stat()`` or ``lstat()`` system call " +"is made, the ``os.DirEntry`` object will cache the result." +msgstr "" +":func:`scandir` fournira autant d'informations que possible sans faire " +"d'appels système additionnels. Quand un appel système ``stat()`` ou " +"``lstat()`` est réalisé, l'objet ``os.DirEntry`` mettra le résultat en cache." + +#: ../Doc/library/os.rst:2205 +msgid "" +"``os.DirEntry`` instances are not intended to be stored in long-lived data " +"structures; if you know the file metadata has changed or if a long time has " +"elapsed since calling :func:`scandir`, call ``os.stat(entry.path)`` to fetch " +"up-to-date information." +msgstr "" +"Les instances ``os.DirEntry`` ne sont pas censées être stockées dans des " +"structures de données à longue durée de vie ; si vous savez que les " +"métadonnées du fichier ont changé ou si un certain temps s'est écoulé depuis " +"l'appel à :func:`scandir`, appelez ``os.stat(entry.path)`` pour mettre à " +"jour ces informations." + +#: ../Doc/library/os.rst:2210 +msgid "" +"Because the ``os.DirEntry`` methods can make operating system calls, they " +"may also raise :exc:`OSError`. If you need very fine-grained control over " +"errors, you can catch :exc:`OSError` when calling one of the ``os.DirEntry`` " +"methods and handle as appropriate." +msgstr "" +"Puisque les méthodes de ``os.DirEntry`` peuvent réaliser des appels système, " +"elles peuvent aussi lever des :exc:`OSError`. Si vous avez besoin d'un " +"contrôle fin des erreurs, vous pouvez attraper les :exc:`OSError` en " +"appelant les méthodes de ``os.DirEntry`` et les traiter comme il vous semble." + +#: ../Doc/library/os.rst:2215 +msgid "" +"To be directly usable as a :term:`path-like object`, ``os.DirEntry`` " +"implements the :class:`PathLike` interface." +msgstr "" +"Pour être directement utilisable comme un :term:`path-like object`, ``os." +"DirEntry`` implémente l'interface :class:`PathLike`." + +#: ../Doc/library/os.rst:2218 +msgid "Attributes and methods on a ``os.DirEntry`` instance are as follows:" +msgstr "" +"Les attributs et méthodes des instances de ``os.DirEntry`` sont les " +"suivants :" + +#: ../Doc/library/os.rst:2222 +msgid "" +"The entry's base filename, relative to the :func:`scandir` *path* argument." +msgstr "" +"Le nom de fichier de base de l'entrée, relatif à l'argument *path* de :func:" +"`scandir`." + +#: ../Doc/library/os.rst:2225 +msgid "" +"The :attr:`name` attribute will be ``bytes`` if the :func:`scandir` *path* " +"argument is of type ``bytes`` and ``str`` otherwise. Use :func:`~os." +"fsdecode` to decode byte filenames." +msgstr "" +"L'attribut :attr:`name` sera de type ``bytes`` si l'argument *path* de :func:" +"`scandir` est de type ``bytes``, sinon il sera de type ``str``. Utilisez :" +"func:`~os.fsdecode` pour décoder des noms de fichiers de types *byte*." + +#: ../Doc/library/os.rst:2231 +msgid "" +"The entry's full path name: equivalent to ``os.path.join(scandir_path, entry." +"name)`` where *scandir_path* is the :func:`scandir` *path* argument. The " +"path is only absolute if the :func:`scandir` *path* argument was absolute. " +"If the :func:`scandir` *path* argument was a :ref:`file descriptor " +"`, the :attr:`path` attribute is the same as the :attr:`name` " +"attribute." +msgstr "" +"Le nom entier de l'entrée : équivalent à ``os.path.join(scandir_path, entry." +"name)`` où *scandir_path* est l'argument *path* de :func:`scandir`. Le " +"chemin est absolu uniquement si l'argument *path* de :func:`scandir` était " +"absolu. Si l'argument *path* à la fonction :func:`scandir` est un :ref:" +"`descripteur de fichier ` l'attribut :attr:`path` sera égal à " +"l'attribut :attr:`name`." + +#: ../Doc/library/os.rst:2238 +msgid "" +"The :attr:`path` attribute will be ``bytes`` if the :func:`scandir` *path* " +"argument is of type ``bytes`` and ``str`` otherwise. Use :func:`~os." +"fsdecode` to decode byte filenames." +msgstr "" +"L'attribut :attr:`path` sera de type ``bytes`` si l'argument *path* de la " +"fonction :func:`scandir` est de type ``bytes``, sinon il sera de type " +"``str``. Utilisez :func:`~os.fsdecode` pour décoder des noms de fichiers de " +"type *bytes*." + +#: ../Doc/library/os.rst:2244 +msgid "Return the inode number of the entry." +msgstr "Renvoie le numéro d'*inode* de l'entrée." + +#: ../Doc/library/os.rst:2246 +msgid "" +"The result is cached on the ``os.DirEntry`` object. Use ``os.stat(entry." +"path, follow_symlinks=False).st_ino`` to fetch up-to-date information." +msgstr "" +"Le résultat est mis en cache dans l'objet ``os.DirEntry``. Utilisez ``os." +"stat(entry.path, follow_symlinks=False).st_ino`` pour obtenir l'information " +"à jour." + +#: ../Doc/library/os.rst:2250 +msgid "" +"On the first, uncached call, a system call is required on Windows but not on " +"Unix." +msgstr "" +"Au premier appel non mis en cache, un appel système est requis sur Windows, " +"mais pas sur Unix." + +#: ../Doc/library/os.rst:2255 +msgid "" +"Return ``True`` if this entry is a directory or a symbolic link pointing to " +"a directory; return ``False`` if the entry is or points to any other kind of " +"file, or if it doesn't exist anymore." +msgstr "" +"Renvoie ``True`` si cette entrée est un répertoire ou un lien symbolique " +"pointant vers un répertoire ; renvoie ``False`` si l'entrée est (ou pointe " +"vers) un autre type de fichier, ou s'il n'existe plus." + +#: ../Doc/library/os.rst:2259 +msgid "" +"If *follow_symlinks* is ``False``, return ``True`` only if this entry is a " +"directory (without following symlinks); return ``False`` if the entry is any " +"other kind of file or if it doesn't exist anymore." +msgstr "" +"Si *follow_symlinks* vaut ``False``, renvoie ``True`` uniquement si l'entrée " +"est un répertoire (sans suivre les liens symboliques) ; renvoie ``False`` si " +"l'entrée est n'importe quel autre type de fichier ou s'il n'existe plus." + +#: ../Doc/library/os.rst:2263 +msgid "" +"The result is cached on the ``os.DirEntry`` object, with a separate cache " +"for *follow_symlinks* ``True`` and ``False``. Call :func:`os.stat` along " +"with :func:`stat.S_ISDIR` to fetch up-to-date information." +msgstr "" +"Le résultat est mis en cache dans l'objet ``os.DirEntry``, avec un cache " +"séparé pour les valeurs ``True`` ou ``False`` de *follow_symlinks*. Appelez :" +"func:`os.stat` avec :func:`stat.S_ISDIR` pour obtenir l'information à jour." + +#: ../Doc/library/os.rst:2267 +msgid "" +"On the first, uncached call, no system call is required in most cases. " +"Specifically, for non-symlinks, neither Windows or Unix require a system " +"call, except on certain Unix file systems, such as network file systems, " +"that return ``dirent.d_type == DT_UNKNOWN``. If the entry is a symlink, a " +"system call will be required to follow the symlink unless *follow_symlinks* " +"is ``False``." +msgstr "" +"Au premier appel non mis en cache, aucun appel système n'est requis dans la " +"plupart du temps. Spécifiquement, sans les liens symboliques, ni Windows, ni " +"Unix ne requiert l'appel système, sauf sur certains systèmes de fichiers sur " +"Unix, comme les système de fichiers de réseau qui renvoient ``dirent.d_type " +"== DT_UNKNOWN``. Si l'entrée est un lien symbolique, un appel système sera " +"requis pour suivre le lien symbolique, à moins que *follow_symlinks* vaille " +"``False``." + +#: ../Doc/library/os.rst:2274 ../Doc/library/os.rst:2304 +msgid "" +"This method can raise :exc:`OSError`, such as :exc:`PermissionError`, but :" +"exc:`FileNotFoundError` is caught and not raised." +msgstr "" +"Cette méthode peut lever une :exc:`OSError` tout comme une :exc:" +"`PermissionError`, mais :exc:`FileNotFoundError` est attrapé et pas levé." + +#: ../Doc/library/os.rst:2279 +msgid "" +"Return ``True`` if this entry is a file or a symbolic link pointing to a " +"file; return ``False`` if the entry is or points to a directory or other non-" +"file entry, or if it doesn't exist anymore." +msgstr "" +"Renvoie ``True`` si l'entrée est un fichier ou un lien symbolique pointant " +"vers un fichier, renvoie ``False`` si l'entrée pointe est (ou pointe sur) " +"sur un dossier ou sur un répertoire ou autre entrée non-fichier, ou s'il " +"n'existe plus." + +#: ../Doc/library/os.rst:2283 +msgid "" +"If *follow_symlinks* is ``False``, return ``True`` only if this entry is a " +"file (without following symlinks); return ``False`` if the entry is a " +"directory or other non-file entry, or if it doesn't exist anymore." +msgstr "" +"Si *follow_symlinks* vaut ``False``, renvoie ``True`` uniquement si cette " +"entrée est un fichier (sans suivre les liens symboliques). Renvoie ``False`` " +"si l'entrée est un répertoire ou une autre entrée non-fichier, ou s'il " +"n'existe plus." + +#: ../Doc/library/os.rst:2287 +msgid "" +"The result is cached on the ``os.DirEntry`` object. Caching, system calls " +"made, and exceptions raised are as per :func:`~os.DirEntry.is_dir`." +msgstr "" +"Le résultat est mis en cache dans l'objet ``os.DirEntry``. La mise en cache, " +"les appels système réalisés, et les exceptions levées sont les mêmes que " +"pour :func:`~os.DirEntry.is_dir`." + +#: ../Doc/library/os.rst:2292 +msgid "" +"Return ``True`` if this entry is a symbolic link (even if broken); return " +"``False`` if the entry points to a directory or any kind of file, or if it " +"doesn't exist anymore." +msgstr "" +"Renvoie ``True`` si l'entrée est un lien symbolique (même cassé). Renvoie " +"``False`` si l'entrée pinte vers un répertoire ou tout autre type de " +"fichier, ou s'il n'existe plus." + +#: ../Doc/library/os.rst:2296 +msgid "" +"The result is cached on the ``os.DirEntry`` object. Call :func:`os.path." +"islink` to fetch up-to-date information." +msgstr "" +"Le résultat est mis en cache dans l'objet ``os.DirEntry``. Appelez :func:`os." +"path.islink` pour obtenir l'information à jour." + +#: ../Doc/library/os.rst:2299 +msgid "" +"On the first, uncached call, no system call is required in most cases. " +"Specifically, neither Windows or Unix require a system call, except on " +"certain Unix file systems, such as network file systems, that return " +"``dirent.d_type == DT_UNKNOWN``." +msgstr "" +"Au premier appel non mis en cache, aucun appel système n'est requis. " +"Spécifiquement, ni Windows ni Unix ne requiert d'appel système, excepté sur " +"certains systèmes de fichiers Unix qui renvoient ``dirent.d_type == " +"DT_UNKNOWN``." + +#: ../Doc/library/os.rst:2309 +msgid "" +"Return a :class:`stat_result` object for this entry. This method follows " +"symbolic links by default; to stat a symbolic link add the " +"``follow_symlinks=False`` argument." +msgstr "" +"Renvoie un objet de type :class:`stat.result` pour cette entrée. Cette " +"méthode suit les liens symboliques par défaut. Pour avoir les statistiques " +"sur un lien symbolique, ajouter l'argument ``follow_symlinks=False``." + +#: ../Doc/library/os.rst:2313 +msgid "" +"On Unix, this method always requires a system call. On Windows, it only " +"requires a system call if *follow_symlinks* is ``True`` and the entry is a " +"symbolic link." +msgstr "" +"Sur Unix, cette méthode requiert toujours un appel système. Sur Windows, " +"cela requiert uniquement un appel système si *follow_symlinks* vaut ``True`` " +"et l'entrée n'est pas un lien symbolique." + +#: ../Doc/library/os.rst:2317 +msgid "" +"On Windows, the ``st_ino``, ``st_dev`` and ``st_nlink`` attributes of the :" +"class:`stat_result` are always set to zero. Call :func:`os.stat` to get " +"these attributes." +msgstr "" +"Sur Windows, les attributs ``st_ino``, ``st_dev`` et ``st_nlink`` de la " +"classe :class:`stat_result` sont toujours définis à 0. Appelez la fonction :" +"func:`os.stat` pour avoir ces attributs." + +#: ../Doc/library/os.rst:2321 +msgid "" +"The result is cached on the ``os.DirEntry`` object, with a separate cache " +"for *follow_symlinks* ``True`` and ``False``. Call :func:`os.stat` to fetch " +"up-to-date information." +msgstr "" +"Le résultat est mis en cache dans l'objet ``os.DirEntry``, avec un cache " +"séparé pour les valeurs ``True`` ou ``False`` de *follow_symlinks*. Appelez :" +"func:`os.stat` pour obtenir l'information à jour." + +#: ../Doc/library/os.rst:2325 +msgid "" +"Note that there is a nice correspondence between several attributes and " +"methods of ``os.DirEntry`` and of :class:`pathlib.Path`. In particular, the " +"``name`` attribute has the same meaning, as do the ``is_dir()``, " +"``is_file()``, ``is_symlink()`` and ``stat()`` methods." +msgstr "" +"Notez qu'il y a une correspondance entre différents attributs et méthodes de " +"``os.DirEntry`` et :class:`pathlib.Path`. En particulier, l'attribut " +"``name`` a la même signification, ainsi que les méthodes ``is_dir()``, " +"``is_file()``, ``is_symlink()`` et ``stat()``." + +#: ../Doc/library/os.rst:2333 +msgid "" +"Added support for the :class:`~os.PathLike` interface. Added support for :" +"class:`bytes` paths on Windows." +msgstr "" +"Prise en charge de l'interface :class:`~os.PathLike`. Ajout du support des " +"chemins :class:`bytes` sous Windows." + +#: ../Doc/library/os.rst:2340 +msgid "" +"Get the status of a file or a file descriptor. Perform the equivalent of a :" +"c:func:`stat` system call on the given path. *path* may be specified as " +"either a string or bytes -- directly or indirectly through the :class:" +"`PathLike` interface -- or as an open file descriptor. Return a :class:" +"`stat_result` object." +msgstr "" +"Récupère le statut d'un fichier ou d'un descripteur de fichier. Réalise " +"l'équivalent d'un appel système :c:func:`stat` sur le chemin donné. *path* " +"peut être exprimé comme une chaîne de caractères ou d'octets -- directement " +"ou indirectement à travers une interface :class:`PathLike` -- ou comme un " +"descripteur de fichier ouvert. Renvoie un objet :class:`stat_result`." + +#: ../Doc/library/os.rst:2346 +msgid "" +"This function normally follows symlinks; to stat a symlink add the argument " +"``follow_symlinks=False``, or use :func:`lstat`." +msgstr "" +"Cette fonction suit normalement les liens symboliques. Pour récupérer les " +"informations d'un lien symbolique, ajoutez l'argument " +"``follow_symlinks=False`` ou utilisez la fonction :func:`lstat`." + +#: ../Doc/library/os.rst:2349 ../Doc/library/os.rst:2981 +#: ../Doc/library/os.rst:2995 ../Doc/library/os.rst:3009 +#: ../Doc/library/os.rst:3027 +msgid "" +"This function can support :ref:`specifying a file descriptor ` and :" +"ref:`not following symlinks `." +msgstr "" +"Cette fonction peut supporter la :ref:`spécification d'un descripteur de " +"fichier ` et :ref:`le non-suivi des liens symboliques " +"`." + +#: ../Doc/library/os.rst:2354 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/os.rst:2367 +msgid ":func:`fstat` and :func:`lstat` functions." +msgstr "les fonctions :func:`fstat` et :func:`lstat`." + +#: ../Doc/library/os.rst:2369 +msgid "" +"Added the *dir_fd* and *follow_symlinks* arguments, specifying a file " +"descriptor instead of a path." +msgstr "" +"Les arguments *dir_fd* et *follow_symlinks* ont été ajoutés, spécification " +"d'un descripteur de fichier à la place d'un chemin ajoutée également." + +#: ../Doc/library/os.rst:2379 +msgid "" +"Object whose attributes correspond roughly to the members of the :c:type:" +"`stat` structure. It is used for the result of :func:`os.stat`, :func:`os." +"fstat` and :func:`os.lstat`." +msgstr "" +"Objet dont les attributs correspondent globalement aux membres de la " +"structure :c:func:`stat`. Utilisé pour le résultat des fonctions :func:`os." +"stat`, :func:`os.fstat`, et :func:`os.lstat`." + +#: ../Doc/library/os.rst:2383 +msgid "Attributes:" +msgstr "Attributs :" + +#: ../Doc/library/os.rst:2387 +msgid "File mode: file type and file mode bits (permissions)." +msgstr "" +"Mode du fichier : type du fichier et bits de mode du fichier (permissions)." + +#: ../Doc/library/os.rst:2391 +msgid "" +"Platform dependent, but if non-zero, uniquely identifies the file for a " +"given value of ``st_dev``. Typically:" +msgstr "" +"Dépendant de la plateforme, mais lorsqu'il ne vaut pas zéro il identifie de " +"manière unique le fichier pour une certaine valeur de ``st_dev``. " +"Typiquement :" + +#: ../Doc/library/os.rst:2394 +msgid "the inode number on Unix," +msgstr "le numéro d'*inode* sur Unix," + +#: ../Doc/library/os.rst:2395 +msgid "" +"the `file index `_ on " +"Windows" +msgstr "" +"l’`index de fichier `_ " +"sur Windows" + +#: ../Doc/library/os.rst:2401 +msgid "Identifier of the device on which this file resides." +msgstr "Identifiant du périphérique sur lequel ce fichier se trouve." + +#: ../Doc/library/os.rst:2405 +msgid "Number of hard links." +msgstr "Nombre de liens matériels." + +#: ../Doc/library/os.rst:2409 +msgid "User identifier of the file owner." +msgstr "Identifiant d'utilisateur du propriétaire du fichier." + +#: ../Doc/library/os.rst:2413 +msgid "Group identifier of the file owner." +msgstr "Identifiant de groupe du propriétaire du fichier." + +#: ../Doc/library/os.rst:2417 +msgid "" +"Size of the file in bytes, if it is a regular file or a symbolic link. The " +"size of a symbolic link is the length of the pathname it contains, without a " +"terminating null byte." +msgstr "" +"Taille du fichier en *bytes* si c'est un fichier normal ou un lien " +"symbolique. La taille d'un lien symbolique est la longueur du nom de chemin " +"qu'il contient sans le byte nul final." + +#: ../Doc/library/os.rst:2421 +msgid "Timestamps:" +msgstr "Horodatages :" + +#: ../Doc/library/os.rst:2425 +msgid "Time of most recent access expressed in seconds." +msgstr "Moment de l'accès le plus récent, exprimé en secondes." + +#: ../Doc/library/os.rst:2429 +msgid "Time of most recent content modification expressed in seconds." +msgstr "" +"Moment de la modification de contenu la plus récente, exprimé en secondes." + +#: ../Doc/library/os.rst:2433 ../Doc/library/os.rst:2449 +msgid "Platform dependent:" +msgstr "Dépendant de la plate-forme :" + +#: ../Doc/library/os.rst:2435 ../Doc/library/os.rst:2451 +msgid "the time of most recent metadata change on Unix," +msgstr "le moment du changement de méta-données le plus récent sur Unix," + +#: ../Doc/library/os.rst:2436 +msgid "the time of creation on Windows, expressed in seconds." +msgstr "le moment de création sur Windows, exprimé en secondes." + +#: ../Doc/library/os.rst:2440 +msgid "Time of most recent access expressed in nanoseconds as an integer." +msgstr "" +"Moment de l'accès le plus récent, exprimé en nanosecondes, par un entier." + +#: ../Doc/library/os.rst:2444 +msgid "" +"Time of most recent content modification expressed in nanoseconds as an " +"integer." +msgstr "" +"Moment de la modification de contenu la plus récente, exprimé en " +"nanosecondes, par un entier." + +#: ../Doc/library/os.rst:2452 +msgid "" +"the time of creation on Windows, expressed in nanoseconds as an integer." +msgstr "" +"le moment de création sur Windows, exprimé en nanosecondes, par un entier." + +#: ../Doc/library/os.rst:2457 +msgid "" +"The exact meaning and resolution of the :attr:`st_atime`, :attr:`st_mtime`, " +"and :attr:`st_ctime` attributes depend on the operating system and the file " +"system. For example, on Windows systems using the FAT or FAT32 file " +"systems, :attr:`st_mtime` has 2-second resolution, and :attr:`st_atime` has " +"only 1-day resolution. See your operating system documentation for details." +msgstr "" +"La signification et la précision exacte des attributs :attr:`st_atime`, :" +"attr:`st_mtime`, et :attr:`st_ctime` dépendent du système d'exploitation et " +"du système de fichier. Par exemple sur les systèmes Windows qui utilisent un " +"système de fichier FAT ou FAT32, :attr:`st_mtime` a une précision de 2 " +"secondes, et :attr:`st_atime` a une précision de 1 jour. Regardez la " +"documentation de votre système d'exploitation pour plus de détails." + +#: ../Doc/library/os.rst:2464 +msgid "" +"Similarly, although :attr:`st_atime_ns`, :attr:`st_mtime_ns`, and :attr:" +"`st_ctime_ns` are always expressed in nanoseconds, many systems do not " +"provide nanosecond precision. On systems that do provide nanosecond " +"precision, the floating-point object used to store :attr:`st_atime`, :attr:" +"`st_mtime`, and :attr:`st_ctime` cannot preserve all of it, and as such will " +"be slightly inexact. If you need the exact timestamps you should always use :" +"attr:`st_atime_ns`, :attr:`st_mtime_ns`, and :attr:`st_ctime_ns`." +msgstr "" +"De manière similaire, bien que :attr:`st_atime_ns`, :attr:`st_mtime_ns`, et :" +"attr:`st_ctime_ns` soient toujours exprimés en nanosecondes, beaucoup de " +"systèmes ne fournissent pas une précision à la nanoseconde près.Sur les " +"systèmes qui fournissent une telle précision, l'objet à virgule flottante " +"utilisé pour stocker :attr:`st_atime`, :attr:`st_mtime`, et :attr:`st_ctime` " +"ne peut pas le contenir en entier, et donc sera légèrement inexact. Si vous " +"avez besoin d'horodatages exacts, vous devriez toujours utiliser :attr:" +"`st_atime_ns`, :attr:`st_mtime_ns`, et :attr:`st_ctime_ns`." + +#: ../Doc/library/os.rst:2473 +msgid "" +"On some Unix systems (such as Linux), the following attributes may also be " +"available:" +msgstr "" +"Sur certains systèmes Unix (tels que Linux), les attributs suivants peuvent " +"également être disponibles :" + +#: ../Doc/library/os.rst:2478 +msgid "" +"Number of 512-byte blocks allocated for file. This may be smaller than :attr:" +"`st_size`/512 when the file has holes." +msgstr "" +"Nombre de blocs de 512 *bytes* alloués pour le fichier. Cette valeur peut " +"être inférieure à :attr:`st_size`/512 quand le fichier a des trous." + +#: ../Doc/library/os.rst:2483 +msgid "" +"\"Preferred\" blocksize for efficient file system I/O. Writing to a file in " +"smaller chunks may cause an inefficient read-modify-rewrite." +msgstr "" +"Taille de bloc \"préférée\" pour des E/S efficaces avec le système de " +"fichiers. Écrire dans un fichier avec des blocs plus petits peut causer des " +"modifications (lecture-écriture-réécriture) inefficaces." + +#: ../Doc/library/os.rst:2488 +msgid "Type of device if an inode device." +msgstr "Type de périphérique si l'*inode* représente un périphérique." + +#: ../Doc/library/os.rst:2492 +msgid "User defined flags for file." +msgstr "Marqueurs définis par l'utilisateur pour le fichier." + +#: ../Doc/library/os.rst:2494 +msgid "" +"On other Unix systems (such as FreeBSD), the following attributes may be " +"available (but may be only filled out if root tries to use them):" +msgstr "" +"Sur d'autres systèmes Unix (tels que FreeBSD), les attributs suivants " +"peuvent être disponibles (mais peuvent être complétés uniquement lorsque le " +"super-utilisateur *root* tente de les utiliser) :" + +#: ../Doc/library/os.rst:2499 +msgid "File generation number." +msgstr "Nombre de génération de fichier." + +#: ../Doc/library/os.rst:2503 +msgid "Time of file creation." +msgstr "Moment de la création du fichier." + +#: ../Doc/library/os.rst:2505 +msgid "" +"On Solaris and derivatives, the following attributes may also be available:" +msgstr "" +"Sur les systèmes Solaris et dérivés, les attributs suivants peuvent " +"également être disponibles :" + +#: ../Doc/library/os.rst:2510 +msgid "" +"String that uniquely identifies the type of the filesystem that contains the " +"file." +msgstr "" +"Chaîne qui identifie de manière unique le type du système de fichiers qui " +"contient le fichier." + +#: ../Doc/library/os.rst:2513 +msgid "On Mac OS systems, the following attributes may also be available:" +msgstr "" +"Sur les systèmes Mac OS, les attributs suivants peuvent également être " +"disponibles :" + +#: ../Doc/library/os.rst:2517 +msgid "Real size of the file." +msgstr "Taillé réelle du fichier." + +#: ../Doc/library/os.rst:2521 +msgid "Creator of the file." +msgstr "Créateur du fichier." + +#: ../Doc/library/os.rst:2525 +msgid "File type." +msgstr "Type du fichier." + +#: ../Doc/library/os.rst:2527 +msgid "On Windows systems, the following attribute is also available:" +msgstr "" +"Sur les systèmes Windows, les attributs suivants sont également disponibles :" + +#: ../Doc/library/os.rst:2531 +msgid "" +"Windows file attributes: ``dwFileAttributes`` member of the " +"``BY_HANDLE_FILE_INFORMATION`` structure returned by :c:func:" +"`GetFileInformationByHandle`. See the ``FILE_ATTRIBUTE_*`` constants in the :" +"mod:`stat` module." +msgstr "" +"Attributs de fichiers Windows : membre ``dwFileAttributes`` de la structure " +"``BY_HANDLE_FILE_INFORMATION`` renvoyée par :c:func:" +"`GetileInformationByHandle`. Soir les constantes ``FILE_ATTRIBUTE_*`` du " +"module :mod:`stat`." + +#: ../Doc/library/os.rst:2536 +msgid "" +"The standard module :mod:`stat` defines functions and constants that are " +"useful for extracting information from a :c:type:`stat` structure. (On " +"Windows, some items are filled with dummy values.)" +msgstr "" +"Le module standard :mod:`stat` définit des fonctions et des constantes qui " +"sont utiles pour l'extraction d'informations d'une structure :c:type:`stat`. " +"(Sur Windows, certains éléments sont remplis avec des valeurs factices.)" + +#: ../Doc/library/os.rst:2540 +msgid "" +"For backward compatibility, a :class:`stat_result` instance is also " +"accessible as a tuple of at least 10 integers giving the most important (and " +"portable) members of the :c:type:`stat` structure, in the order :attr:" +"`st_mode`, :attr:`st_ino`, :attr:`st_dev`, :attr:`st_nlink`, :attr:" +"`st_uid`, :attr:`st_gid`, :attr:`st_size`, :attr:`st_atime`, :attr:" +"`st_mtime`, :attr:`st_ctime`. More items may be added at the end by some " +"implementations. For compatibility with older Python versions, accessing :" +"class:`stat_result` as a tuple always returns integers." +msgstr "" +"Pour des raisons de rétro-compatibilité, une instance du :class:" +"`stat_result` est également accessible comme un tuple d'au moins 10 valeurs " +"entières donnant les membres les plus importants (et portables) de la " +"structure :c:type:`stat`, dans l'ordre : :attr:`st_mode`, :attr:`st_ino`, :" +"attr:`st_dev`, :attr:`st_nlink`, :attr:`st_uid`, :attr:`st_gid`, :attr:" +"`st_size`, :attr:`st_atime`, :attr:`st_mtime`, :attr:`st_ctime`. Plus " +"d'éléments peuvent être ajoutés à la fin par certaines implémentations. Pour " +"une compatibilité avec les anciennes versions de Python, accéder à un " +"élément de type :class:`stat_result` comme un tuple donne toujours des " +"entiers." + +#: ../Doc/library/os.rst:2549 +msgid "" +"Added the :attr:`st_atime_ns`, :attr:`st_mtime_ns`, and :attr:`st_ctime_ns` " +"members." +msgstr "" +"Les attributs :attr:`st_atime_ns`, :attr:`st_mtime_ns`, et :attr:" +"`st_ctime_ns` ont été ajoutés." + +#: ../Doc/library/os.rst:2553 +msgid "Added the :attr:`st_file_attributes` member on Windows." +msgstr "L'attribut :attr:`st_file_attributes` a été ajouté sur Windows." + +#: ../Doc/library/os.rst:2556 +msgid "Windows now returns the file index as :attr:`st_ino` when available." +msgstr "" +"Windows renvoie maintenant l'index du fichier dans l'attribut :attr:" +"`st_ino`, lorsqu'il est disponible." + +#: ../Doc/library/os.rst:2560 +msgid "Added the :attr:`st_fstype` member to Solaris/derivatives." +msgstr "Ajout de l'attribut :attr:`st_fstype` sur Solaris et dérivés." + +#: ../Doc/library/os.rst:2565 +msgid "" +"Perform a :c:func:`statvfs` system call on the given path. The return value " +"is an object whose attributes describe the filesystem on the given path, and " +"correspond to the members of the :c:type:`statvfs` structure, namely: :attr:" +"`f_bsize`, :attr:`f_frsize`, :attr:`f_blocks`, :attr:`f_bfree`, :attr:" +"`f_bavail`, :attr:`f_files`, :attr:`f_ffree`, :attr:`f_favail`, :attr:" +"`f_flag`, :attr:`f_namemax`, :attr:`f_fsid`." +msgstr "" +"Exécute un appel système :c:func:`statvfs` sur le chemin donné par *path*. " +"La valeur de retour est un objet dont les attributs décrivent le système de " +"fichiers pour le chemin donné, et correspondent aux membres de la structure :" +"c:type:`statvfs`, c'est-à-dire : :attr:`f_bsize`, :attr:`f_frsize`, :attr:" +"`f_blocks`, :attr:`f_bfree`, :attr:`f_bavail`, :attr:`f_files`, :attr:" +"`f_ffree`, :attr:`f_favail`, :attr:`f_flag`, :attr:`f_namemax`, :attr:" +"`f_fsid`." + +#: ../Doc/library/os.rst:2572 +msgid "" +"Two module-level constants are defined for the :attr:`f_flag` attribute's " +"bit-flags: if :const:`ST_RDONLY` is set, the filesystem is mounted read-" +"only, and if :const:`ST_NOSUID` is set, the semantics of setuid/setgid bits " +"are disabled or not supported." +msgstr "" +"Deux constantes de module sont définies pour le champ-de-bits de l'attribut :" +"attr:`f_flag` : si :const:`SR_RDONLY` est activé, le système de fichiers est " +"monté en lecture-seule, et si :const:`ST_NOSUID` est activé, la sémantique " +"des bits de *setuid* / *getuid* est désactivée ou non gérée." + +#: ../Doc/library/os.rst:2577 +msgid "" +"Additional module-level constants are defined for GNU/glibc based systems. " +"These are :const:`ST_NODEV` (disallow access to device special files), :" +"const:`ST_NOEXEC` (disallow program execution), :const:`ST_SYNCHRONOUS` " +"(writes are synced at once), :const:`ST_MANDLOCK` (allow mandatory locks on " +"an FS), :const:`ST_WRITE` (write on file/directory/symlink), :const:" +"`ST_APPEND` (append-only file), :const:`ST_IMMUTABLE` (immutable file), :" +"const:`ST_NOATIME` (do not update access times), :const:`ST_NODIRATIME` (do " +"not update directory access times), :const:`ST_RELATIME` (update atime " +"relative to mtime/ctime)." +msgstr "" +"Des constantes de module supplémentaires sont définies pour les systèmes " +"basés sur GNU/glibc. Ces constantes sont :const:`ST_NODEV` (interdit l'accès " +"aux fichiers spéciaux du périphérique), :const:`ST_NOEXEC` (interdit " +"l'exécution de programmes), :const:`ST_SYNCHRONOUS` (les écritures sont " +"synchronisées en une fois), :const:`ST_MANDLOCK` (permet les verrous " +"impératifs sur un système de fichiers), :const:`ST_WRITE` (écrit sur les " +"fichiers/répertoires/liens symboliques), :const:`ST_APPEND` (fichiers en " +"ajout-seul), :const:`ST_IMMUTABLE` (fichiers immuables), :const:`ST_NOATIME` " +"(ne met pas à jour les moments d'accès), :const:`ST_NODIRATIME` (ne met pas " +"à jour les moments d'accès aux répertoires), :const:`ST_REALTIME` (Met " +"*atime* à jour relativement à *mtime* / *ctime*)." + +#: ../Doc/library/os.rst:2590 +msgid "The :const:`ST_RDONLY` and :const:`ST_NOSUID` constants were added." +msgstr "Ajout des constantes :const:`ST_RDONLY` et :const:`ST_NOSUID`." + +#: ../Doc/library/os.rst:2596 +msgid "" +"The :const:`ST_NODEV`, :const:`ST_NOEXEC`, :const:`ST_SYNCHRONOUS`, :const:" +"`ST_MANDLOCK`, :const:`ST_WRITE`, :const:`ST_APPEND`, :const:" +"`ST_IMMUTABLE`, :const:`ST_NOATIME`, :const:`ST_NODIRATIME`, and :const:" +"`ST_RELATIME` constants were added." +msgstr "" +"Ajout des constantes :const:`ST_NODEV`, :const:`ST_NOEXEC`, :const:" +"`ST_SYNCHRONOUS`, :const:`ST_MANDLOCK`, :const:`ST_WRITE`, :const:" +"`ST_APPEND`, :const:`ST_IMMUTABLE`, :const:`ST_NOATIME`, :const:" +"`ST_NODIRATIME`, et :const:`ST_RELATIME`." + +#: ../Doc/library/os.rst:2605 +msgid "Added :attr:`f_fsid`." +msgstr "Ajout de :attr:`f_fsid`." + +#: ../Doc/library/os.rst:2611 +msgid "" +"A :class:`~collections.abc.Set` object indicating which functions in the :" +"mod:`os` module permit use of their *dir_fd* parameter. Different platforms " +"provide different functionality, and an option that might work on one might " +"be unsupported on another. For consistency's sakes, functions that support " +"*dir_fd* always allow specifying the parameter, but will raise an exception " +"if the functionality is not actually available." +msgstr "" +"Un objet de type :class:`~collections.abc.Set` indiquant quels fonctions du " +"module :mod:`os` permettent l'utilisation du paramètre *dir_fd*. Des plate-" +"formes différentes fournissent des fonctionnalités différentes, et une " +"option qui peut fonctionner sur l'une peut ne pas être gérée sur une autre. " +"Pour des raisons de cohérence, les fonctions qui gèrent *dir_fd* permettent " +"toujours de spécifier le paramètre, mais lèvent une exception si la " +"fonctionnalité n'est pas réellement accessible." + +#: ../Doc/library/os.rst:2618 +msgid "" +"To check whether a particular function permits use of its *dir_fd* " +"parameter, use the ``in`` operator on ``supports_dir_fd``. As an example, " +"this expression determines whether the *dir_fd* parameter of :func:`os.stat` " +"is locally available::" +msgstr "" +"Pour vérifier si une fonction en particulier permet de l'utilisation de son " +"paramètre *dir_fd*, utilisez l'opérateur ``in`` sur ``supports_dir_fd``. Par " +"exemple, l'expression détermine si le paramètre *dir_fd* de la fonction :" +"func:`os.stat` est disponible ::" + +#: ../Doc/library/os.rst:2625 +msgid "" +"Currently *dir_fd* parameters only work on Unix platforms; none of them work " +"on Windows." +msgstr "" +"Actuellement, le paramètre *dir_fd* ne fonctionne que sur les plate-formes " +"Unix. Il ne fonctionne jamais sur Windows." + +#: ../Doc/library/os.rst:2633 +msgid "" +"A :class:`~collections.abc.Set` object indicating which functions in the :" +"mod:`os` module permit use of the *effective_ids* parameter for :func:`os." +"access`. If the local platform supports it, the collection will contain :" +"func:`os.access`, otherwise it will be empty." +msgstr "" +"Un objet de type :class:`collections.abc.Set` indiquant quelles fonction du " +"module :mod:`ps` permettent l'utilisation du paramètre *effective_ids* pour :" +"func:`os.access`. Si la plate-forme le gère, la collection contiendra :func:" +"`os.access`, sinon elle sera vide." + +#: ../Doc/library/os.rst:2638 +msgid "" +"To check whether you can use the *effective_ids* parameter for :func:`os." +"access`, use the ``in`` operator on ``supports_effective_ids``, like so::" +msgstr "" +"Pour vérifier si vous pouvez utiliser le paramètre *effective_ids* pour :" +"func:`os.access`, utilisez l'opérateur ``in`` sur " +"``supports_effective_ids``, comme tel ::" + +#: ../Doc/library/os.rst:2644 +msgid "" +"Currently *effective_ids* only works on Unix platforms; it does not work on " +"Windows." +msgstr "" +"Actuellement, *effective_ids* ne fonctionne que sur les plate-formes Unix, " +"ça ne fonctionne pas sur Windows." + +#: ../Doc/library/os.rst:2652 +msgid "" +"A :class:`~collections.abc.Set` object indicating which functions in the :" +"mod:`os` module permit specifying their *path* parameter as an open file " +"descriptor. Different platforms provide different functionality, and an " +"option that might work on one might be unsupported on another. For " +"consistency's sakes, functions that support *fd* always allow specifying the " +"parameter, but will raise an exception if the functionality is not actually " +"available." +msgstr "" +"Un objet de type :class:`~collections.abc.Set` indiquant quelles fonctions " +"du module :mod:`os` permettent de spécifier le paramètre de chemin *path* " +"par un descripteur de fichier ouvert. Différentes plate-formes fournissent " +"différentes fonctionnalités, et une option qui peut fonctionner sur l'une " +"peut ne pas être gérée sur une autre. Pour des raisons de cohérence, les " +"fonctions qui gèrent *fd* permettent toujours de spécifier le paramètre, " +"mais elles lèveront une exception si la fonctionnalité n'est pas réellement " +"disponible." + +#: ../Doc/library/os.rst:2660 +msgid "" +"To check whether a particular function permits specifying an open file " +"descriptor for its *path* parameter, use the ``in`` operator on " +"``supports_fd``. As an example, this expression determines whether :func:`os." +"chdir` accepts open file descriptors when called on your local platform::" +msgstr "" +"Pour vérifier si une fonction en particulier permet de spécifier un " +"descripteur de fichier ouvert pour son paramètre *path*, utilisez " +"l'opérateur ``in`` sur ``supports_fd``. Par exemple, cette expression " +"détermine si :func:`os.chdir` accepte un descripteur de fichier ouvert quand " +"appelée sur votre plate-forme actuelle ::" + +#: ../Doc/library/os.rst:2673 +msgid "" +"A :class:`~collections.abc.Set` object indicating which functions in the :" +"mod:`os` module permit use of their *follow_symlinks* parameter. Different " +"platforms provide different functionality, and an option that might work on " +"one might be unsupported on another. For consistency's sakes, functions " +"that support *follow_symlinks* always allow specifying the parameter, but " +"will raise an exception if the functionality is not actually available." +msgstr "" +"Un objet de type :class:`collections.abc.Set` indiquant quelles fonctions du " +"module :mod:`os` permettent d'utiliser leur paramètre *follow_symlinks*. " +"Différentes plate-formes fournissent des fonctionnalités différentes, et une " +"option qui fonctionne sur l'une peut ne pas fonctionner sur une autre. Pour " +"des raisons de cohérence, les fonctions qui gèrent *follow_symlinks* " +"permettent toujours de spécifier le paramètre, mais lèvent une exception si " +"la fonctionnalité n'est pas réellement disponible." + +#: ../Doc/library/os.rst:2680 +msgid "" +"To check whether a particular function permits use of its *follow_symlinks* " +"parameter, use the ``in`` operator on ``supports_follow_symlinks``. As an " +"example, this expression determines whether the *follow_symlinks* parameter " +"of :func:`os.stat` is locally available::" +msgstr "" +"Pour vérifier s une fonction en particulier permet l'utilisation du " +"paramètre *follow_symlinks*, utilisez l'opérateur ``in`` sur " +"``supports_follow_symlinks``. Par exemple, cette expression détermine si le " +"paramètre *follow_symlink* de :func:`os.stat` est disponible ::" + +#: ../Doc/library/os.rst:2692 +msgid "Create a symbolic link pointing to *src* named *dst*." +msgstr "Crée un lien symbolique pointant vers *src* et appelé *dst*." + +#: ../Doc/library/os.rst:2694 +msgid "" +"On Windows, a symlink represents either a file or a directory, and does not " +"morph to the target dynamically. If the target is present, the type of the " +"symlink will be created to match. Otherwise, the symlink will be created as " +"a directory if *target_is_directory* is ``True`` or a file symlink (the " +"default) otherwise. On non-Windows platforms, *target_is_directory* is " +"ignored." +msgstr "" +"Sur Windows, un lien symbolique représente soit lien vers un fichier, soit " +"lien vers un répertoire mais ne s'adapte pas dynamiquement au type de la " +"cible. Si la cible existe le lien sera crée du même type que sa cible. Dans " +"le cas où cible n'existe pas, si *target_is_directory* vaut ``True`` le lien " +"symbolique sera créé comme un répertoire, sinon comme un fichier (par " +"défaut). Sur les autres plateformes, *target_id_directory* est ignoré." + +#: ../Doc/library/os.rst:2700 +msgid "" +"Symbolic link support was introduced in Windows 6.0 (Vista). :func:" +"`symlink` will raise a :exc:`NotImplementedError` on Windows versions " +"earlier than 6.0." +msgstr "" +"Introduction de la prise en charge des liens symboliques dans Windows 6.0 " +"(Vista). :func:`symlink` lèvera une exception :exc:`NotImplementedError` sur " +"les versions de Windows inférieures à 6.0." + +#: ../Doc/library/os.rst:2708 +msgid "" +"On Windows, the *SeCreateSymbolicLinkPrivilege* is required in order to " +"successfully create symlinks. This privilege is not typically granted to " +"regular users but is available to accounts which can escalate privileges to " +"the administrator level. Either obtaining the privilege or running your " +"application as an administrator are ways to successfully create symlinks." +msgstr "" +"Sur Windows, le *SeCreateSymbolicLinkPrivilege* est requis pour créer des " +"liens symboliques avec succès. Ce privilège n'est pas typiquement garanti " +"aux utilisateurs réguliers mais est disponible aux comptes qui peuvent " +"escalader les privilèges jusqu'au niveau administrateur. Tant obtenir le " +"privilège que lancer votre application en administrateur sont des moyens de " +"créer des liens symboliques avec succès." + +#: ../Doc/library/os.rst:2715 +msgid "" +":exc:`OSError` is raised when the function is called by an unprivileged user." +msgstr "" +":exc:`OSError` est levée quand la fonction est appelée par un utilisateur " +"sans privilèges." + +#: ../Doc/library/os.rst:2723 +msgid "" +"Added the *dir_fd* argument, and now allow *target_is_directory* on non-" +"Windows platforms." +msgstr "" +"Ajout de l'argument *dir_fd* et maintenant, permission de " +"*target_is_directory* sur les plate-formes non Windows." + +#: ../Doc/library/os.rst:2733 +msgid "Force write of everything to disk." +msgstr "Force l'écriture de tout sur le disque." + +#: ../Doc/library/os.rst:2742 +msgid "" +"Truncate the file corresponding to *path*, so that it is at most *length* " +"bytes in size." +msgstr "" +"Tronque le fichier correspondant à *path*, afin qu'il soit au maximum long " +"de *length* bytes." + +#: ../Doc/library/os.rst:2760 +msgid "" +"Remove (delete) the file *path*. This function is semantically identical " +"to :func:`remove`; the ``unlink`` name is its traditional Unix name. Please " +"see the documentation for :func:`remove` for further information." +msgstr "" +"Supprime (retire) le fichier *path*. Cette fonction est sémantiquement " +"identique à :func:`remove`. Le nom ``unlink`` est un nom Unix traditionnel. " +"Veuillez voir la documentation de :func:`remove` pour plus d'informations." + +#: ../Doc/library/os.rst:2774 +msgid "Set the access and modified times of the file specified by *path*." +msgstr "" +"Voir les derniers moments d'accès et de modification du fichier spécifiés " +"par *path*." + +#: ../Doc/library/os.rst:2776 +msgid "" +":func:`utime` takes two optional parameters, *times* and *ns*. These specify " +"the times set on *path* and are used as follows:" +msgstr "" +"La fonction :func:`utime` prend deux paramètres optionnels, *times* et *ns*. " +"Ils spécifient le temps mis pour *path* et est utilisé comme suit :" + +#: ../Doc/library/os.rst:2779 +msgid "" +"If *ns* is specified, it must be a 2-tuple of the form ``(atime_ns, " +"mtime_ns)`` where each member is an int expressing nanoseconds." +msgstr "" +"Si *ns* est spécifié, ce doit être un couple de la forme ``(atime_ns, " +"mtime_ns)`` où chaque membre est un entier qui exprime des nanosecondes." + +#: ../Doc/library/os.rst:2782 +msgid "" +"If *times* is not ``None``, it must be a 2-tuple of the form ``(atime, " +"mtime)`` where each member is an int or float expressing seconds." +msgstr "" +"Si *times* ne vaut pas ``None``, ce doit être un couple de la forme " +"``(atime, mtime)`` où chaque membre est un entier ou une expression à " +"virgule flottante." + +#: ../Doc/library/os.rst:2785 +msgid "" +"If *times* is ``None`` and *ns* is unspecified, this is equivalent to " +"specifying ``ns=(atime_ns, mtime_ns)`` where both times are the current time." +msgstr "" +"Si *times* vaut ``None``, et *ns* est non-spécifié. C'est équivalent à " +"spécifier ``ns = (atime_ns, mtime_ns)`` où les deux moments sont le moment " +"actuel." + +#: ../Doc/library/os.rst:2789 +msgid "It is an error to specify tuples for both *times* and *ns*." +msgstr "Il est erroné de spécifier des tuples pour *times* et *ns* à la fois." + +#: ../Doc/library/os.rst:2791 +msgid "" +"Whether a directory can be given for *path* depends on whether the operating " +"system implements directories as files (for example, Windows does not). " +"Note that the exact times you set here may not be returned by a subsequent :" +"func:`~os.stat` call, depending on the resolution with which your operating " +"system records access and modification times; see :func:`~os.stat`. The " +"best way to preserve exact times is to use the *st_atime_ns* and " +"*st_mtime_ns* fields from the :func:`os.stat` result object with the *ns* " +"parameter to `utime`." +msgstr "" +"Le fait qu'un répertoire puisse être donné pour *path* dépend du fait que le " +"système d'exploitation implémente les répertoires comme des fichiers (par " +"exemple, Windows ne le fait pas). Notez que l'instant exact que vous " +"définissez ici peut ne pas être renvoyé lors d'un futur appel à :func:`~os." +"stat`, selon la précision avec laquelle votre système d'exploitation " +"mémorise les moments d'accès et de modification ; voir :func:`~os.stat`. Le " +"meilleur moyen de préserver des moments exacts est d'utiliser les champs " +"*st_atime_ns* et *st_mtime_ns* de l'objet résultat de la fonction :func:`os." +"stat` avec le paramètre *ns* valant `utime`." + +#: ../Doc/library/os.rst:2804 +msgid "" +"Added support for specifying an open file descriptor for *path*, and the " +"*dir_fd*, *follow_symlinks*, and *ns* parameters." +msgstr "" +"Prise en charge de la spécification d'un descripteur de fichier pour *path* " +"et les paramètres *dir_fd*, *follow_symlinks*, et *ns* ajoutés." + +#: ../Doc/library/os.rst:2818 +msgid "" +"Generate the file names in a directory tree by walking the tree either top-" +"down or bottom-up. For each directory in the tree rooted at directory *top* " +"(including *top* itself), it yields a 3-tuple ``(dirpath, dirnames, " +"filenames)``." +msgstr "" +"Génère les noms de fichier dans un arbre de répertoire en parcourant l'arbre " +"soit de bas-en-haut, soit de haut-en-bas. Pour chaque répertoire dans " +"l'arbre enraciné en le répertoire *rop* (incluant ledit répertoire *top*), " +"fournit un triplet ``(dirpath, dirnames, filenames)``." + +#: ../Doc/library/os.rst:2823 +msgid "" +"*dirpath* is a string, the path to the directory. *dirnames* is a list of " +"the names of the subdirectories in *dirpath* (excluding ``'.'`` and " +"``'..'``). *filenames* is a list of the names of the non-directory files in " +"*dirpath*. Note that the names in the lists contain no path components. To " +"get a full path (which begins with *top*) to a file or directory in " +"*dirpath*, do ``os.path.join(dirpath, name)``." +msgstr "" +"*dirpath* est une chaîne de caractères contenant le chemin vers le " +"répertoire. *dirnames* est une liste de noms de sous-répertoires dans " +"*dirpath* (en excluant ``'.'`` et ``'..'``). *filenames* est une liste de " +"fichiers (non-répertoires) dans *dirpath*. Notez que les noms dans la liste " +"ne contiennent aucune composante de chemin. Pour récupérer le chemin complet " +"(qui commence à *top*) vers un répertoire dans *dirpath*, faites ``os.path." +"join(dirpath, name)``." + +#: ../Doc/library/os.rst:2830 +msgid "" +"If optional argument *topdown* is ``True`` or not specified, the triple for " +"a directory is generated before the triples for any of its subdirectories " +"(directories are generated top-down). If *topdown* is ``False``, the triple " +"for a directory is generated after the triples for all of its subdirectories " +"(directories are generated bottom-up). No matter the value of *topdown*, the " +"list of subdirectories is retrieved before the tuples for the directory and " +"its subdirectories are generated." +msgstr "" +"Si l'argument optionnel *topdown* vaut ``True`` ou n'est pas spécifié, le " +"triplet pour un répertoire est généré avant les triplets de tous ses sous-" +"répertoires (les répertoires sont générés de haut-en-bas). Si *topdown* vaut " +"``False``, le triplet pour un répertoire est généré après les triplets de " +"tous ses sous-répertoires (les répertoires sont générés de bas-en-haut). Peu " +"importe la valeur de *topdown*, la liste des sous-répertoires est récupérée " +"avant que les tuples pour le répertoires et ses sous-répertoires ne soient " +"générés." + +#: ../Doc/library/os.rst:2838 +msgid "" +"When *topdown* is ``True``, the caller can modify the *dirnames* list in-" +"place (perhaps using :keyword:`del` or slice assignment), and :func:`walk` " +"will only recurse into the subdirectories whose names remain in *dirnames*; " +"this can be used to prune the search, impose a specific order of visiting, " +"or even to inform :func:`walk` about directories the caller creates or " +"renames before it resumes :func:`walk` again. Modifying *dirnames* when " +"*topdown* is ``False`` has no effect on the behavior of the walk, because in " +"bottom-up mode the directories in *dirnames* are generated before *dirpath* " +"itself is generated." +msgstr "" +"Quand *topdown* vaut ``True``, l'appelant peut modifier la liste *dirnames* " +"en place (par exemple en utilisant :keyword:`del` ou l'assignation par " +"*slicing* (par tranches)) et :func:`walk` ne fera sa récursion que dans les " +"sous-répertoires dont le nom reste dans *dirnames* ; cela peut être utilisé " +"pour élaguer la recherche, imposer un ordre particulier de visite, ou encore " +"pour informer :func:`walk` des répertoires créés par l'appelant ou renommés " +"avant qu'il quitte :func:`walk` à nouveau. Modifier *dirnames* quand " +"*topdown* vaut ``False`` n'a aucun effet dur le comportement du parcours " +"parce qu'en mode bas-en-haut, les répertoires dans *dirnames* sont générés " +"avant que *dirpath* ne soit lui-même généré." + +#: ../Doc/library/os.rst:2847 +msgid "" +"By default, errors from the :func:`scandir` call are ignored. If optional " +"argument *onerror* is specified, it should be a function; it will be called " +"with one argument, an :exc:`OSError` instance. It can report the error to " +"continue with the walk, or raise the exception to abort the walk. Note that " +"the filename is available as the ``filename`` attribute of the exception " +"object." +msgstr "" +"Par défaut, les erreurs d'un appel à :func:`scandir` sont ignorées. Si " +"l'argument optionnel *onerror* est spécifié, il doit être une fonction qui " +"sera appelée avec un seul argument, une instance de :exc:`OSError`. Elle " +"peut rapporter l'erreur et continuer le parcours, ou lever l'exception pour " +"avorter le parcours. Notez que le nom de fichier est disponible dans " +"l'attribut ``filename`` de l'objet exception." + +#: ../Doc/library/os.rst:2853 +msgid "" +"By default, :func:`walk` will not walk down into symbolic links that resolve " +"to directories. Set *followlinks* to ``True`` to visit directories pointed " +"to by symlinks, on systems that support them." +msgstr "" +"Par défaut, :func:`walk` ne parcourra pas les liens symboliques qui mènent à " +"un répertoire. Définissez *followlinks* avec ``True`` pour visiter les " +"répertoires pointés par des liens symboliques sur les systèmes qui le gère." + +#: ../Doc/library/os.rst:2859 +msgid "" +"Be aware that setting *followlinks* to ``True`` can lead to infinite " +"recursion if a link points to a parent directory of itself. :func:`walk` " +"does not keep track of the directories it visited already." +msgstr "" +"Soyez au courant que définir *followlinks* avec ``True`` peut mener à une " +"récursion infinie si un lien pointe vers un répertoire parent de lui-même. :" +"func:`walk` ne garde pas de trace des répertoires qu'il a déjà visité." + +#: ../Doc/library/os.rst:2865 +msgid "" +"If you pass a relative pathname, don't change the current working directory " +"between resumptions of :func:`walk`. :func:`walk` never changes the current " +"directory, and assumes that its caller doesn't either." +msgstr "" +"Si vous passez un chemin relatif, ne changer pas le répertoire de travail " +"actuel entre deux exécutions de :func:`walk`. :func:`walk` ne change jamais " +"le répertoire actuel, et suppose que l'appelant ne le fait pas non plus." + +#: ../Doc/library/os.rst:2869 ../Doc/library/os.rst:2928 +msgid "" +"This example displays the number of bytes taken by non-directory files in " +"each directory under the starting directory, except that it doesn't look " +"under any CVS subdirectory::" +msgstr "" +"Cet exemple affiche le nombre de bytes pris par des fichiers non-répertoires " +"dans chaque répertoire à partir du répertoire de départ, si ce n'est qu'il " +"ne cherche pas après un sous-répertoire CSV ::" + +#: ../Doc/library/os.rst:2882 +msgid "" +"In the next example (simple implementation of :func:`shutil.rmtree`), " +"walking the tree bottom-up is essential, :func:`rmdir` doesn't allow " +"deleting a directory before the directory is empty::" +msgstr "" +"Dans l'exemple suivant (simple implémentation d'un :func:`shutil.rmtree`), " +"parcourir l'arbre de bas-en-haut est essentiel : :func:`rmdir` ne permet pas " +"de supprimer un répertoire avant qu'un ne soit vide ::" + +#: ../Doc/library/os.rst:2897 +msgid "" +"This function now calls :func:`os.scandir` instead of :func:`os.listdir`, " +"making it faster by reducing the number of calls to :func:`os.stat`." +msgstr "" +"Cette fonction appelle maintenant :func:`os.scandir` au lieu de :func:`os." +"listdir`, ce qui la rend plus rapide en réduisant le nombre d'appels à :func:" +"`os.stat`." + +#: ../Doc/library/os.rst:2911 +msgid "" +"This behaves exactly like :func:`walk`, except that it yields a 4-tuple " +"``(dirpath, dirnames, filenames, dirfd)``, and it supports ``dir_fd``." +msgstr "" +"Se comporte exactement comme :func:`walk`, si ce n'est qu'il fournit un " +"quadruplet ``(dirpath, dirnames, filenames, dirfd)``, et gère ``dir_fd``." + +#: ../Doc/library/os.rst:2914 +msgid "" +"*dirpath*, *dirnames* and *filenames* are identical to :func:`walk` output, " +"and *dirfd* is a file descriptor referring to the directory *dirpath*." +msgstr "" +"*dirpath*, *dirnames* et *filenames* sont identiques à la sortie de :func:" +"`walk` et *dirfd* est un descripteur de fichier faisant référence au " +"répertoire *dirpath*." + +#: ../Doc/library/os.rst:2917 +msgid "" +"This function always supports :ref:`paths relative to directory descriptors " +"` and :ref:`not following symlinks `. Note however " +"that, unlike other functions, the :func:`fwalk` default value for " +"*follow_symlinks* is ``False``." +msgstr "" +"Cette fonction prend toujours en charge :ref:`les chemins relatifs à des " +"descripteurs de fichiers ` et :ref:`le non-suivi des liens " +"symboliques `. Notez cependant qu'à l'inverse des autres " +"fonctions, la valeur par défaut de *follow_symlinks* pour :func:`walk` est " +"``False``." + +#: ../Doc/library/os.rst:2924 +msgid "" +"Since :func:`fwalk` yields file descriptors, those are only valid until the " +"next iteration step, so you should duplicate them (e.g. with :func:`dup`) if " +"you want to keep them longer." +msgstr "" +"Puisque :func:`fwalk` fournit des descripteurs de fichiers, ils ne sont " +"valides que jusque la prochaine itération. Donc vous devriez les dupliquer " +"(par exemple avec :func:`dup`) si vous désirez les garder plus longtemps." + +#: ../Doc/library/os.rst:2941 +msgid "" +"In the next example, walking the tree bottom-up is essential: :func:`rmdir` " +"doesn't allow deleting a directory before the directory is empty::" +msgstr "" +"Dans le prochain exemple, parcourir l'arbre de bas-en-haut est essentiel : :" +"func:`rmdir` ne permet pas de supprimer un répertoire avant qu'il ne soit " +"vide ::" + +#: ../Doc/library/os.rst:2963 +msgid "Added support for :class:`bytes` paths." +msgstr "Ajout de la gestion des chemins de type :class:`bytes`." + +#: ../Doc/library/os.rst:2968 +msgid "Linux extended attributes" +msgstr "Attributs étendus pour Linux" + +#: ../Doc/library/os.rst:2972 +msgid "These functions are all available on Linux only." +msgstr "Toutes ces fonctions ne sont disponibles que sur Linux." + +#: ../Doc/library/os.rst:2976 +msgid "" +"Return the value of the extended filesystem attribute *attribute* for " +"*path*. *attribute* can be bytes or str (directly or indirectly through the :" +"class:`PathLike` interface). If it is str, it is encoded with the filesystem " +"encoding." +msgstr "" +"Renvoie la valeur de l'attribut étendu *attribute* du système de fichiers " +"pour le chemin *path*. *attribute* peut être une chaîne de caractères ou " +"d'octets (directement ou indirectement à travers une interface :class:" +"`PathLike`). Si c'est une chaîne de caractères, elle est encodée avec " +"l'encodage du système de fichiers." + +#: ../Doc/library/os.rst:2984 ../Doc/library/os.rst:3012 +#: ../Doc/library/os.rst:3035 +msgid "Accepts a :term:`path-like object` for *path* and *attribute*." +msgstr "Accepte un :term:`path-like object` pour *path* et *attribute*." + +#: ../Doc/library/os.rst:2990 +msgid "" +"Return a list of the extended filesystem attributes on *path*. The " +"attributes in the list are represented as strings decoded with the " +"filesystem encoding. If *path* is ``None``, :func:`listxattr` will examine " +"the current directory." +msgstr "" +"Renvoie une liste d'attributs du système de fichiers étendu pour *path*. Les " +"attributs dans le liste sont représentés par des chaînes de caractères et " +"sont décodés avec l'encodage du système de fichier. Si *path* vaut " +"``None``, :func:`listxattr` examinera le répertoire actuel." + +#: ../Doc/library/os.rst:3004 +msgid "" +"Removes the extended filesystem attribute *attribute* from *path*. " +"*attribute* should be bytes or str (directly or indirectly through the :" +"class:`PathLike` interface). If it is a string, it is encoded with the " +"filesystem encoding." +msgstr "" +"Supprime l'attribut étendu *attribute* du système de fichier pour le chemin " +"*path*. *attribute* devrait être une chaîne de caractères ou d'octets " +"(directement ou indirectement à travers une interface :class:`PathLike`). Si " +"c'est une chaîne de caractères, elle est encodée avec l'encodage du système " +"de fichiers." + +#: ../Doc/library/os.rst:3018 +msgid "" +"Set the extended filesystem attribute *attribute* on *path* to *value*. " +"*attribute* must be a bytes or str with no embedded NULs (directly or " +"indirectly through the :class:`PathLike` interface). If it is a str, it is " +"encoded with the filesystem encoding. *flags* may be :data:`XATTR_REPLACE` " +"or :data:`XATTR_CREATE`. If :data:`XATTR_REPLACE` is given and the attribute " +"does not exist, ``EEXISTS`` will be raised. If :data:`XATTR_CREATE` is given " +"and the attribute already exists, the attribute will not be created and " +"``ENODATA`` will be raised." +msgstr "" +"Règle l'attribut étendu *attribute* du système de fichier pour le chemin " +"*path* à *value*. *attribute* doit être une chaîne de caractères ou d'octets " +"sans caractères nuls (directement ou indirectement à travers une interface :" +"class:`PathLike`). Si c'est une chaîne de caractères, elle est encodée avec " +"l'encodage du système de fichiers. *flags* peut être :data:`XATTR_REPLACE` " +"ou :data:`XATTR_CREATE`. Si :data:`XATTR_REPLACE` est donné et que " +"l'attribut n'existe pas, ``EEXISTS`` sera levée. Si :data:`XATTR_CREATE` est " +"donné et que l'attribut existe déjà, l'attribut ne sera pas créé et " +"``ENODATA`` sera levée." + +#: ../Doc/library/os.rst:3032 +msgid "" +"A bug in Linux kernel versions less than 2.6.39 caused the flags argument to " +"be ignored on some filesystems." +msgstr "" +"Un bug des versions inférieures à 2.6.39 du noyau Linux faisait que les " +"marqueurs de *flags* étaient ignorés sur certains systèmes." + +#: ../Doc/library/os.rst:3041 +msgid "" +"The maximum size the value of an extended attribute can be. Currently, this " +"is 64 KiB on Linux." +msgstr "" +"La taille maximum que peut faire la valeur d'un attribut étendu. " +"Actuellement, c'est 64 KiB sur Lniux." + +#: ../Doc/library/os.rst:3047 +msgid "" +"This is a possible value for the flags argument in :func:`setxattr`. It " +"indicates the operation must create an attribute." +msgstr "" +"C'est une valeur possible pour l'argument *flags* de :func:`setxattr`. Elle " +"indique que l'opération doit créer un attribut." + +#: ../Doc/library/os.rst:3053 +msgid "" +"This is a possible value for the flags argument in :func:`setxattr`. It " +"indicates the operation must replace an existing attribute." +msgstr "" +"C'est une valeur possible pour l'argument *flags* de :func:`setxattr`.Elle " +"indique que l'opération doit remplacer un attribut existant." + +#: ../Doc/library/os.rst:3060 +msgid "Process Management" +msgstr "Gestion des processus" + +#: ../Doc/library/os.rst:3062 +msgid "These functions may be used to create and manage processes." +msgstr "" +"Ces fonctions peuvent être utilisées pour créer et gérer des processus." + +#: ../Doc/library/os.rst:3064 +msgid "" +"The various :func:`exec\\* ` functions take a list of arguments for " +"the new program loaded into the process. In each case, the first of these " +"arguments is passed to the new program as its own name rather than as an " +"argument a user may have typed on a command line. For the C programmer, " +"this is the ``argv[0]`` passed to a program's :c:func:`main`. For example, " +"``os.execv('/bin/echo', ['foo', 'bar'])`` will only print ``bar`` on " +"standard output; ``foo`` will seem to be ignored." +msgstr "" +"Les variantes des fonctions :func:`exec\\* ` prennent une liste " +"d'arguments pour le nouveau programme chargé dans le processus. Dans tous " +"les cas, le premier de ces arguments est passé au nouveau programme comme " +"son propre nom plutôt que comme un argument qu'un utilisateur peut avoir " +"tapé en ligne de commande. Pour les programmeurs C, c'est l'argument " +"``argv[0]`` qui est passé à la fonction :c:func:`main` du programme. Par " +"exemple, ``os.execv('/bin/echo/', ['foo', 'bar'])`` affichera uniquement " +"``bar`` sur la sortie standard ; ``foo`` semblera être ignoré." + +#: ../Doc/library/os.rst:3075 +msgid "" +"Generate a :const:`SIGABRT` signal to the current process. On Unix, the " +"default behavior is to produce a core dump; on Windows, the process " +"immediately returns an exit code of ``3``. Be aware that calling this " +"function will not call the Python signal handler registered for :const:" +"`SIGABRT` with :func:`signal.signal`." +msgstr "" +"Génère un signal :const:`SIGABRT` au processus actuel. Sur Linux, le " +"comportement par défaut est de produire un vidage système (*Core Dump*) ; " +"sur Windows, le processus renvoie immédiatement un code d'erreur ``3``. " +"Attention : appeler cette fonction n'appellera pas le gestionnaire de signal " +"Python enregistré par :const:`SIGABRT` à l'aide de :func:`signal.signal`." + +#: ../Doc/library/os.rst:3091 +msgid "" +"These functions all execute a new program, replacing the current process; " +"they do not return. On Unix, the new executable is loaded into the current " +"process, and will have the same process id as the caller. Errors will be " +"reported as :exc:`OSError` exceptions." +msgstr "" +"Ces fonctions exécutent toutes un nouveau programme, remplaçant le processus " +"actuel, elles ne renvoient pas. Sur Unix, le nouvel exécutable est chargé " +"dans le processus actuel, et aura le même identifiant de processus (PID) que " +"l'appelant. Les erreurs seront reportées par des exceptions :exc:`OSError`." + +#: ../Doc/library/os.rst:3096 +msgid "" +"The current process is replaced immediately. Open file objects and " +"descriptors are not flushed, so if there may be data buffered on these open " +"files, you should flush them using :func:`sys.stdout.flush` or :func:`os." +"fsync` before calling an :func:`exec\\* ` function." +msgstr "" +"Le processus actuel est remplacé immédiatement. Les fichiers objets et " +"descripteurs de fichiers ne sont pas purgés, donc s'il est possible que des " +"données aient été mises en tampon pour ces fichiers, vous devriez les purger " +"manuellement en utilisant :func:`sys.stdout.flush` ou :func:`os.fsync` avant " +"d'appeler une fonction :func:`exec\\* `." + +#: ../Doc/library/os.rst:3102 +msgid "" +"The \"l\" and \"v\" variants of the :func:`exec\\* ` functions differ " +"in how command-line arguments are passed. The \"l\" variants are perhaps " +"the easiest to work with if the number of parameters is fixed when the code " +"is written; the individual parameters simply become additional parameters to " +"the :func:`execl\\*` functions. The \"v\" variants are good when the number " +"of parameters is variable, with the arguments being passed in a list or " +"tuple as the *args* parameter. In either case, the arguments to the child " +"process should start with the name of the command being run, but this is not " +"enforced." +msgstr "" +"Les variantes \"l\" et \"v\" des fonctions :func:`exec\\* ` différent " +"sur la manière de passer les arguments de ligne de commande. Les variantes " +"\"l\" sont probablement les plus simples à utiliser si le nombre de " +"paramètres est fixé lors de l'écriture du code. Les paramètres individuels " +"deviennent alors des paramètres additionnels aux fonctions :func:`exec\\*`. " +"Les variantes \"v\" sont préférables quand le nombre de paramètres est " +"variable et qu'ils sont passés dans une liste ou un *tuple* dans le " +"paramètre *args*. Dans tous les cas, les arguments aux processus fils " +"devraient commencer avec le nom de la commande à lancer, mais ce n'est pas " +"obligatoire." + +#: ../Doc/library/os.rst:3111 +msgid "" +"The variants which include a \"p\" near the end (:func:`execlp`, :func:" +"`execlpe`, :func:`execvp`, and :func:`execvpe`) will use the :envvar:`PATH` " +"environment variable to locate the program *file*. When the environment is " +"being replaced (using one of the :func:`exec\\*e ` variants, " +"discussed in the next paragraph), the new environment is used as the source " +"of the :envvar:`PATH` variable. The other variants, :func:`execl`, :func:" +"`execle`, :func:`execv`, and :func:`execve`, will not use the :envvar:`PATH` " +"variable to locate the executable; *path* must contain an appropriate " +"absolute or relative path." +msgstr "" +"Les variantes qui incluent un \"p\"vers la fin (:func:`execlp`, :func:" +"`execlpe`, :func:`execvp`, et :func:`execvpe`) utiliseront la variable " +"d'environnement :envvar:`PATH` pour localiser le programme *file*. Quand " +"l'environnement est remplacé (en utilisant une des variantes :func:`exec\\*e " +"`, discutées dans le paragraphe suivant), le nouvel environnement est " +"utilisé comme source de la variable d'environnement :envvar:`PATH`. Les " +"autres variantes :func:`execl`, :func:`execle`, :func:`execv`, et :func:" +"`execve` n'utiliseront pas la variable d'environnement :envvar:`PATH` pour " +"localiser l'exécutable. *path* doit contenir un chemin absolue ou relatif " +"approprié." + +#: ../Doc/library/os.rst:3121 +msgid "" +"For :func:`execle`, :func:`execlpe`, :func:`execve`, and :func:`execvpe` " +"(note that these all end in \"e\"), the *env* parameter must be a mapping " +"which is used to define the environment variables for the new process (these " +"are used instead of the current process' environment); the functions :func:" +"`execl`, :func:`execlp`, :func:`execv`, and :func:`execvp` all cause the new " +"process to inherit the environment of the current process." +msgstr "" +"Pour les fonctions :func:`execle`, :func:`execlpe`, :func:`execve`, et :func:" +"`execvpe` (notez qu'elle finissent toutes par \"e\"), le paramètre *env* " +"doit être un *mapping* qui est utilisé pour définir les variables " +"d'environnement du nouveau processus (celles-ci sont utilisées à la place de " +"l'environnement du nouveau processus). Les fonctions :func:`execl`, :func:" +"`execlp`, :func:`execv`, et :func:`execvp` causent toutes un héritage de " +"l'environnement du processus actuel par le processus fils." + +#: ../Doc/library/os.rst:3128 +msgid "" +"For :func:`execve` on some platforms, *path* may also be specified as an " +"open file descriptor. This functionality may not be supported on your " +"platform; you can check whether or not it is available using :data:`os." +"supports_fd`. If it is unavailable, using it will raise a :exc:" +"`NotImplementedError`." +msgstr "" +"Pour :func:`execve`, sur certaines plate-formes, *path* peut également être " +"spécifié par un descripteur de fichier ouvert. Cette fonctionnalité peut ne " +"pas être gérée sur votre plate-forme. Vous pouvez vérifier si c'est " +"disponible en utilisant :data:`os._supports_fd`. Si c'est indisponible, " +"l'utiliser lèvera une :exc:`NotImplementedError`." + +#: ../Doc/library/os.rst:3135 +msgid "" +"Added support for specifying an open file descriptor for *path* for :func:" +"`execve`." +msgstr "" +"Prise en charge de la spécification d'un descripteur de fichier ouvert pour " +"*path* pour :func:`execve`." + +#: ../Doc/library/os.rst:3144 +msgid "" +"Exit the process with status *n*, without calling cleanup handlers, flushing " +"stdio buffers, etc." +msgstr "" +"Quitte le processus avec le statut *n*, sans appeler les gestionnaires de " +"nettoyage, sans purger les tampons des fichiers, etc." + +#: ../Doc/library/os.rst:3149 +msgid "" +"The standard way to exit is ``sys.exit(n)``. :func:`_exit` should normally " +"only be used in the child process after a :func:`fork`." +msgstr "" +"La méthode standard pour quitter est ``sys.exit(n)``. :func:`_exit` devrait " +"normalement être utilisé uniquement par le processus fils après un :func:" +"`fork`." + +#: ../Doc/library/os.rst:3152 +msgid "" +"The following exit codes are defined and can be used with :func:`_exit`, " +"although they are not required. These are typically used for system " +"programs written in Python, such as a mail server's external command " +"delivery program." +msgstr "" +"Les codes de sortie suivants sont définis et peuvent être utilisés avec :" +"func:`_exit`, mais ils ne sont pas nécessaires. Ils sont typiquement " +"utilisés pour les programmes systèmes écrits en Python, comme un programme " +"de gestion de l'exécution des commandes d'un serveur de mails." + +#: ../Doc/library/os.rst:3158 +msgid "" +"Some of these may not be available on all Unix platforms, since there is " +"some variation. These constants are defined where they are defined by the " +"underlying platform." +msgstr "" +"Certaines de ces valeurs peuvent ne pas être disponibles sur toutes les " +"plate-formes Unix étant donné qu'il en existe des variations. Ces constantes " +"sont définies là où elles sont définies par la plate-forme sous-jacente." + +#: ../Doc/library/os.rst:3165 +msgid "Exit code that means no error occurred." +msgstr "Code de sortie signifiant qu'aucune erreur n'est arrivée." + +#: ../Doc/library/os.rst:3172 +msgid "" +"Exit code that means the command was used incorrectly, such as when the " +"wrong number of arguments are given." +msgstr "" +"Code de sortie signifiant que les commandes n'ont pas été utilisées " +"correctement, comme quand le mauvais nombre d'arguments a été donné." + +#: ../Doc/library/os.rst:3180 +msgid "Exit code that means the input data was incorrect." +msgstr "" +"Code de sortie signifiant que les données en entrées étaient incorrectes." + +#: ../Doc/library/os.rst:3187 +msgid "Exit code that means an input file did not exist or was not readable." +msgstr "" +"Code de sortie signifiant qu'un des fichiers d'entrée n'existe pas ou n'est " +"pas lisible." + +#: ../Doc/library/os.rst:3194 +msgid "Exit code that means a specified user did not exist." +msgstr "Code de sortie signifiant qu'un utilisateur spécifié n'existe pas." + +#: ../Doc/library/os.rst:3201 +msgid "Exit code that means a specified host did not exist." +msgstr "Code de sortie signifiant qu'un hôte spécifié n'existe pas." + +#: ../Doc/library/os.rst:3208 +msgid "Exit code that means that a required service is unavailable." +msgstr "Code de sortie signifiant qu'un service requis n'est pas disponible." + +#: ../Doc/library/os.rst:3215 +msgid "Exit code that means an internal software error was detected." +msgstr "" +"Code de sortie signifiant qu'une erreur interne d'un programme a été " +"détectée." + +#: ../Doc/library/os.rst:3222 +msgid "" +"Exit code that means an operating system error was detected, such as the " +"inability to fork or create a pipe." +msgstr "" +"Code de sortie signifiant qu'une erreur du système d'exploitation a été " +"détectée, comme l'incapacité à réaliser un *fork* ou à créer un tuyau " +"(*pipe*)." + +#: ../Doc/library/os.rst:3230 +msgid "" +"Exit code that means some system file did not exist, could not be opened, or " +"had some other kind of error." +msgstr "" +"Code de sortie signifiant qu'un fichier n'existe pas, n'a pas pu être " +"ouvert, ou avait une autre erreur." + +#: ../Doc/library/os.rst:3238 +msgid "Exit code that means a user specified output file could not be created." +msgstr "" +"Code de sortie signifiant qu'un fichier spécifié par l'utilisateur n'a pas " +"pu être créé." + +#: ../Doc/library/os.rst:3245 +msgid "" +"Exit code that means that an error occurred while doing I/O on some file." +msgstr "" +"Code de sortie signifiant qu'une erreur est apparue pendant une E/S sur un " +"fichier." + +#: ../Doc/library/os.rst:3252 +msgid "" +"Exit code that means a temporary failure occurred. This indicates something " +"that may not really be an error, such as a network connection that couldn't " +"be made during a retryable operation." +msgstr "" +"Code de sortie signifiant qu'un échec temporaire est apparu. Cela indique " +"quelque chose qui pourrait ne pas être une erreur, comme une connexion au " +"réseau qui n'a pas pu être établie pendant une opération réessayable." + +#: ../Doc/library/os.rst:3261 +msgid "" +"Exit code that means that a protocol exchange was illegal, invalid, or not " +"understood." +msgstr "" +"Code de sortie signifiant qu'un protocole d'échange est illégal, invalide, " +"ou non-compris." + +#: ../Doc/library/os.rst:3269 +msgid "" +"Exit code that means that there were insufficient permissions to perform the " +"operation (but not intended for file system problems)." +msgstr "" +"Code de sortie signifiant qu'il manque certaines permissions pour réaliser " +"une opération (mais n'est pas destiné au problèmes de système de fichiers)." + +#: ../Doc/library/os.rst:3277 +msgid "Exit code that means that some kind of configuration error occurred." +msgstr "Code de sortie signifiant qu'une erreur de configuration est apparue." + +#: ../Doc/library/os.rst:3284 +msgid "Exit code that means something like \"an entry was not found\"." +msgstr "" +"Code de sortie signifiant quelque chose comme \"une entrée n'a pas été " +"trouvée\"." + +#: ../Doc/library/os.rst:3291 +msgid "" +"Fork a child process. Return ``0`` in the child and the child's process id " +"in the parent. If an error occurs :exc:`OSError` is raised." +msgstr "" +"*Fork* un processus fils. Renvoie ``0`` dans le processus fils et le PID du " +"processus fils dans le processus père. Si une erreur apparaît, une :exc:" +"`OSError` est levée." + +#: ../Doc/library/os.rst:3294 +msgid "" +"Note that some platforms including FreeBSD <= 6.3 and Cygwin have known " +"issues when using fork() from a thread." +msgstr "" +"Notez que certaines plate-formes (dont FreeBSD <= 6.3 et Cygwin) ont des " +"problèmes connus lors d'utilisation de *fork()* depuis un fil d'exécution." + +#: ../Doc/library/os.rst:3299 +msgid "See :mod:`ssl` for applications that use the SSL module with fork()." +msgstr "" +"Voit :mod:`ssl` pour les application qui utilisent le module SSL avec " +"*fork()*." + +#: ../Doc/library/os.rst:3306 +msgid "" +"Fork a child process, using a new pseudo-terminal as the child's controlling " +"terminal. Return a pair of ``(pid, fd)``, where *pid* is ``0`` in the child, " +"the new child's process id in the parent, and *fd* is the file descriptor of " +"the master end of the pseudo-terminal. For a more portable approach, use " +"the :mod:`pty` module. If an error occurs :exc:`OSError` is raised." +msgstr "" +"*Fork* un processus fils, en utilisant un nouveau pseudo-terminal comme " +"terminal contrôlant le fils. Renvoie une paire ``(pid, fd)`` où *pid* vaut " +"``0`` dans le fils et le PID du processus fils dans le parent, et *fd* est " +"le descripteur de fichier de la partie maître du pseudo-terminal. Pour une " +"approche plus portable, utilisez le module :mod:`pty`. Si une erreur " +"apparaît, une :exc:`OSError` est levée." + +#: ../Doc/library/os.rst:3321 +msgid "" +"Send signal *sig* to the process *pid*. Constants for the specific signals " +"available on the host platform are defined in the :mod:`signal` module." +msgstr "" +"Envoie le signal *sig* au processus *pid*. Les constantes pour les signaux " +"spécifiques à la plate-forme hôte sont définies dans le module :mod:`signal`." + +#: ../Doc/library/os.rst:3324 +msgid "" +"Windows: The :data:`signal.CTRL_C_EVENT` and :data:`signal.CTRL_BREAK_EVENT` " +"signals are special signals which can only be sent to console processes " +"which share a common console window, e.g., some subprocesses. Any other " +"value for *sig* will cause the process to be unconditionally killed by the " +"TerminateProcess API, and the exit code will be set to *sig*. The Windows " +"version of :func:`kill` additionally takes process handles to be killed." +msgstr "" +"Windows : les signaux :data:`signal.CTRL_C_EVENT` et :data:`signal." +"CTRL_BREAK_EVENT` sont des signaux spéciaux qui ne peuvent être envoyés " +"qu'aux processus consoles qui partagent une console commune (par exemple, " +"certains sous-processus). Toute autre valeur pour *sig* amènera le processus " +"a être tué sans condition par l'API TerminateProcess, et le code de retour " +"sera mis à *sig*. La version Windows de :func:`kill` prend en plus les " +"identificateurs de processus à tuer." + +#: ../Doc/library/os.rst:3332 +msgid "See also :func:`signal.pthread_kill`." +msgstr "Voir également :func:`signal.pthread_kill`." + +#: ../Doc/library/os.rst:3334 +msgid "Windows support." +msgstr "Prise en charge de Windows." + +#: ../Doc/library/os.rst:3344 +msgid "Send the signal *sig* to the process group *pgid*." +msgstr "Envoie le signal *sig* au groupe de processus *pgid*." + +#: ../Doc/library/os.rst:3351 +msgid "" +"Add *increment* to the process's \"niceness\". Return the new niceness." +msgstr "" +"Ajoute *increment* à la priorité du processus. Renvoie la nouvelle priorité." + +#: ../Doc/library/os.rst:3358 +msgid "" +"Lock program segments into memory. The value of *op* (defined in ````) determines which segments are locked." +msgstr "" +"Verrouille les segments du programme en mémoire. La valeur de *op* (définie " +"dans ````) détermine quels segments sont verrouillés." + +#: ../Doc/library/os.rst:3366 +msgid "" +"Open a pipe to or from command *cmd*. The return value is an open file " +"object connected to the pipe, which can be read or written depending on " +"whether *mode* is ``'r'`` (default) or ``'w'``. The *buffering* argument has " +"the same meaning as the corresponding argument to the built-in :func:`open` " +"function. The returned file object reads or writes text strings rather than " +"bytes." +msgstr "" +"Ouvre un tuyau vers ou depuis la commande *cmd*. La valeur de retour est un " +"fichier objet ouvert relié au tuyau qui peut être lu ou écrit selon la " +"valeur de *mode* qui est ``'r'`` (par défaut) ou ``'w'``. L'argument " +"*buffering* a le même sens que l'argument correspondant de la fonction :func:" +"`open`. L'objet fichier renvoyé écrit (ou lit) des chaînes de caractères et " +"non de bytes." + +#: ../Doc/library/os.rst:3373 +msgid "" +"The ``close`` method returns :const:`None` if the subprocess exited " +"successfully, or the subprocess's return code if there was an error. On " +"POSIX systems, if the return code is positive it represents the return value " +"of the process left-shifted by one byte. If the return code is negative, " +"the process was terminated by the signal given by the negated value of the " +"return code. (For example, the return value might be ``- signal.SIGKILL`` " +"if the subprocess was killed.) On Windows systems, the return value " +"contains the signed integer return code from the child process." +msgstr "" +"La méthode ``close`` renvoie :const:`None` si le sous-processus s'est " +"terminé avec succès, ou le code de retour du sous-processus s'il y a eu une " +"erreur. Sur les systèmes POSIX, si le code de retour est positif, il " +"représente la valeur de retour du processus décalée d'un byte sur la gauche. " +"Si le code de retour est négatif, le processus le processus s'est terminé " +"avec le signal donné par la négation de la valeur de retour. (Par exemple, " +"la valeur de retour pourrait être ``-signal.SIGKILL`` si le sous-processus a " +"été tué). Sur les systèmes Windows, la valeur de retour contient le code de " +"retour du processus fils dans un entier signé ." + +#: ../Doc/library/os.rst:3383 +msgid "" +"This is implemented using :class:`subprocess.Popen`; see that class's " +"documentation for more powerful ways to manage and communicate with " +"subprocesses." +msgstr "" +"Ceci est implémenté en utilisant :class:`subprocess.Popen`. Lisez la " +"documentation de cette classe pour des méthodes plus puissantes pour gérer " +"et communiquer avec des sous-processus." + +#: ../Doc/library/os.rst:3391 +msgid "" +"Register callables to be executed when a new child process is forked using :" +"func:`os.fork` or similar process cloning APIs. The parameters are optional " +"and keyword-only. Each specifies a different call point." +msgstr "" +"Enregistre des appelables (*callables*) à exécuter quand un nouveau " +"processus enfant est crée avec :func:`os.fork` ou des APIs similaires de " +"clonage de processus. Les paramètres sont optionnels et par mots-clé " +"uniquement. Chacun spécifie un point d'appel différent." + +#: ../Doc/library/os.rst:3396 +msgid "*before* is a function called before forking a child process." +msgstr "" +"*before* est une fonction appelée avant de *forker* un processus enfant." + +#: ../Doc/library/os.rst:3397 +msgid "" +"*after_in_parent* is a function called from the parent process after forking " +"a child process." +msgstr "" +"*after_in_parent* est une fonction appelée depuis le processus parent après " +"avoir *forké* un processus enfant." + +#: ../Doc/library/os.rst:3399 +msgid "*after_in_child* is a function called from the child process." +msgstr "*after_in_child* est une fonction appelée depuis le processus enfant." + +#: ../Doc/library/os.rst:3401 +msgid "" +"These calls are only made if control is expected to return to the Python " +"interpreter. A typical :mod:`subprocess` launch will not trigger them as " +"the child is not going to re-enter the interpreter." +msgstr "" +"Ces appels ne sont effectués que si le contrôle est censé retourner à " +"l'interpréteur Python. Un lancement de :mod:`subprocess` typique ne les " +"déclenchera pas, car l'enfant ne ré-entre pas dans l'interpréteur." + +#: ../Doc/library/os.rst:3405 +msgid "" +"Functions registered for execution before forking are called in reverse " +"registration order. Functions registered for execution after forking " +"(either in the parent or in the child) are called in registration order." +msgstr "" +"Les fonctions enregistrées pour l'exécution avant le *fork* sont appelées " +"dans l'ordre inverse à leur enregistrement. Les fonctions enregistrées pour " +"l'exécution après le *fork* (soit dans le parent ou dans l'enfant) sont " +"appelées dans l'ordre de leur enregistrement." + +#: ../Doc/library/os.rst:3410 +msgid "" +"Note that :c:func:`fork` calls made by third-party C code may not call those " +"functions, unless it explicitly calls :c:func:`PyOS_BeforeFork`, :c:func:" +"`PyOS_AfterFork_Parent` and :c:func:`PyOS_AfterFork_Child`." +msgstr "" +"Notez que les appels à :c:func:`fork` faits par du code C de modules tiers " +"peuvent ne pas appeler ces fonctions, à moins que ce code appelle " +"explicitement :c:func:`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` et :" +"c:func:`PyOS_AfterFork_Child`." + +#: ../Doc/library/os.rst:3414 +msgid "There is no way to unregister a function." +msgstr "Il n'y a aucun moyen d'annuler l'enregistrement d'une fonction." + +#: ../Doc/library/os.rst:3430 +msgid "Execute the program *path* in a new process." +msgstr "Exécute le programme *path* dans un nouveau processus." + +#: ../Doc/library/os.rst:3432 +msgid "" +"(Note that the :mod:`subprocess` module provides more powerful facilities " +"for spawning new processes and retrieving their results; using that module " +"is preferable to using these functions. Check especially the :ref:" +"`subprocess-replacements` section.)" +msgstr "" +"(Notez que le module :mod:`subprocess` fournit des outils plus puissants " +"pour générer de nouveaux processus et récupérer leur valeur de retour. Il " +"est préférable d'utiliser ce module que ces fonctions. Voyez surtout la " +"section :ref:`subprocess-replacements`.)" + +#: ../Doc/library/os.rst:3437 +msgid "" +"If *mode* is :const:`P_NOWAIT`, this function returns the process id of the " +"new process; if *mode* is :const:`P_WAIT`, returns the process's exit code " +"if it exits normally, or ``-signal``, where *signal* is the signal that " +"killed the process. On Windows, the process id will actually be the process " +"handle, so can be used with the :func:`waitpid` function." +msgstr "" +"Si *mode* vaut :const:`P_NOWAIT`, cette fonction renvoie le PID du nouveau " +"processus, et si *mode* vaut :const:`P_WAIT`, la fonction renvoie le code de " +"sortie du processus s'il se termine normalement, ou ``-signal`` où *signal* " +"est le signal qui a tué le processus. Sur Windows, le PID du processus sera " +"en fait l'identificateur du processus (*process handle*) et peut donc être " +"utilisé avec la fonction :func:`waitpid`." + +#: ../Doc/library/os.rst:3443 +msgid "" +"The \"l\" and \"v\" variants of the :func:`spawn\\* ` functions " +"differ in how command-line arguments are passed. The \"l\" variants are " +"perhaps the easiest to work with if the number of parameters is fixed when " +"the code is written; the individual parameters simply become additional " +"parameters to the :func:`spawnl\\*` functions. The \"v\" variants are good " +"when the number of parameters is variable, with the arguments being passed " +"in a list or tuple as the *args* parameter. In either case, the arguments " +"to the child process must start with the name of the command being run." +msgstr "" +"Les variantes \"l\" et \"v\" des fonctions :func:`spawn\\* ` " +"diffèrent sur la manière de passer les arguments de ligne de commande. Les " +"variantes \"l\" sont probablement les plus simples à utiliser si le nombre " +"de paramètres est fixé lors de l'écriture du code. Les paramètres " +"individuels deviennent alors des paramètres additionnels aux fonctions :func:" +"`spawn\\*`. Les variantes \"v\" sont préférables quand le nombre de " +"paramètres est variable et qu'ils sont passés dans une liste ou un *tuple* " +"dans le paramètre *args*. Dans tous les cas, les arguments aux processus " +"fils devraient commencer avec le nom de la commande à lancer, mais ce n'est " +"pas obligatoire." + +#: ../Doc/library/os.rst:3452 +msgid "" +"The variants which include a second \"p\" near the end (:func:`spawnlp`, :" +"func:`spawnlpe`, :func:`spawnvp`, and :func:`spawnvpe`) will use the :envvar:" +"`PATH` environment variable to locate the program *file*. When the " +"environment is being replaced (using one of the :func:`spawn\\*e ` " +"variants, discussed in the next paragraph), the new environment is used as " +"the source of the :envvar:`PATH` variable. The other variants, :func:" +"`spawnl`, :func:`spawnle`, :func:`spawnv`, and :func:`spawnve`, will not use " +"the :envvar:`PATH` variable to locate the executable; *path* must contain an " +"appropriate absolute or relative path." +msgstr "" +"Les variantes qui incluent un \"p\"vers la fin (:func:`spawnlp`, :func:" +"`spawnlpe`, :func:`spawnvp`, et :func:`spawnvpe`) utiliseront la variable " +"d'environnement :envvar:`PATH` pour localiser le programme *file*. Quand " +"l'environnement est remplacé (en utilisant une des variantes :func:`spawn" +"\\*e `, discutées dans le paragraphe suivant), le nouvel " +"environnement est utilisé comme source de la variable d'environnement :" +"envvar:`PATH`. Les autres variantes :func:`spawnl`, :func:`spawnle`, :func:" +"`spawnv`, et :func:`spawnve` n'utiliseront pas la variable d'environnement :" +"envvar:`PATH` pour localiser l'exécutable. *path* doit contenir un chemin " +"absolue ou relatif approprié." + +#: ../Doc/library/os.rst:3462 +msgid "" +"For :func:`spawnle`, :func:`spawnlpe`, :func:`spawnve`, and :func:`spawnvpe` " +"(note that these all end in \"e\"), the *env* parameter must be a mapping " +"which is used to define the environment variables for the new process (they " +"are used instead of the current process' environment); the functions :func:" +"`spawnl`, :func:`spawnlp`, :func:`spawnv`, and :func:`spawnvp` all cause the " +"new process to inherit the environment of the current process. Note that " +"keys and values in the *env* dictionary must be strings; invalid keys or " +"values will cause the function to fail, with a return value of ``127``." +msgstr "" +"Pour les fonctions :func:`spawnle`, :func:`spawnlpe`, :func:`spawnve`, et :" +"func:`spawnvpe` (notez qu'elles finissent toutes par \"e\"), le paramètre " +"*env* doit être un *mapping* qui est utilisé pour définir les variables " +"d'environnement du nouveau processus (celles-ci sont utilisées à la place de " +"l'environnement du nouveau processus). Les fonctions :func:`spawnl`, :func:" +"`spawnlp`, :func:`spawnv`, et :func:`spawnvp` causent toutes un héritage de " +"l'environnement du processus actuel par le processus fils. Notez que les " +"clefs et les valeurs du dictionnaire *env* doivent être des chaînes de " +"caractères. Des valeurs invalides pour les clefs ou les valeurs met la " +"fonction en échec et renvoie ``127``." + +#: ../Doc/library/os.rst:3471 +msgid "" +"As an example, the following calls to :func:`spawnlp` and :func:`spawnvpe` " +"are equivalent::" +msgstr "" +"Par exemple, les appels suivants à :func:`spawnlp` et :func:`spawnvpe` sont " +"équivalents ::" + +#: ../Doc/library/os.rst:3484 +msgid "" +":ref:`Availability `: Unix, Windows. :func:`spawnlp`, :func:" +"`spawnlpe`, :func:`spawnvp` and :func:`spawnvpe` are not available on " +"Windows. :func:`spawnle` and :func:`spawnve` are not thread-safe on " +"Windows; we advise you to use the :mod:`subprocess` module instead." +msgstr "" +":ref:`Disponibilité ` : Unix, Windows. :func:`spawnlp`, :func:" +"`spawnlpe`, :func:`spawnvp`, et :func:`spawnvpe` ne sont pas disponibles sur " +"Windows. :func:`spawnle` et :func:`spawnve` ne sont pas sécurisés pour les " +"appels concurrents (*thread-safe*) sur Windows, il est conseillé d'utiliser " +"le module :mod:`subprocess` à la place." + +#: ../Doc/library/os.rst:3492 +msgid "" +"Possible values for the *mode* parameter to the :func:`spawn\\* ` " +"family of functions. If either of these values is given, the :func:`spawn" +"\\*` functions will return as soon as the new process has been created, with " +"the process id as the return value." +msgstr "" +"Valeurs possibles pour le paramètre *mode* de la famille de fonctions :func:" +"`spawn\\* `. Si l'une de ces valeurs est donnée, les fonctions :func:" +"`spawn\\*` sortiront dès que le nouveau processus est créé, avec le PID du " +"processus comme valeur de retour." + +#: ../Doc/library/os.rst:3502 +msgid "" +"Possible value for the *mode* parameter to the :func:`spawn\\* ` " +"family of functions. If this is given as *mode*, the :func:`spawn\\*` " +"functions will not return until the new process has run to completion and " +"will return the exit code of the process the run is successful, or ``-" +"signal`` if a signal kills the process." +msgstr "" +"Valeur possible pour le paramètre *mode* de la famille de fonctions :func:" +"`spawn\\* `. Si *mode* est défini par cette valeur, les fonctions :" +"func:`spawn\\* ` ne se terminent pas tant que le nouveau processus " +"n'a pas été complété et renvoient le code de sortie du processus si " +"l'exécution est effectuée avec succès, ou ``-signal`` si un signal tue le " +"processus." + +#: ../Doc/library/os.rst:3514 +msgid "" +"Possible values for the *mode* parameter to the :func:`spawn\\* ` " +"family of functions. These are less portable than those listed above. :" +"const:`P_DETACH` is similar to :const:`P_NOWAIT`, but the new process is " +"detached from the console of the calling process. If :const:`P_OVERLAY` is " +"used, the current process will be replaced; the :func:`spawn\\* ` " +"function will not return." +msgstr "" +"Valeurs possibles pour le paramètre *mode* de la famille de fonctions :func:" +"`spawn\\* `. Ces valeurs sont moins portables que celles listées " +"plus haut. :const:`P_DETACH` est similaire à :const:`P_NOWAIT`, mais le " +"nouveau processus est détaché de la console du processus appelant. Si :const:" +"`P_OVERLAY` est utilisé, le processus actuel sera remplacé. La fonction :" +"func:`spawn\\* ` ne sort jamais." + +#: ../Doc/library/os.rst:3525 +msgid "Start a file with its associated application." +msgstr "Lance un fichier avec son application associée." + +#: ../Doc/library/os.rst:3527 +msgid "" +"When *operation* is not specified or ``'open'``, this acts like double-" +"clicking the file in Windows Explorer, or giving the file name as an " +"argument to the :program:`start` command from the interactive command shell: " +"the file is opened with whatever application (if any) its extension is " +"associated." +msgstr "" +"Quand *operation* n'est pas spécifié ou vaut ``'open'``, l'effet est le même " +"qu'un double clic sur le fichier dans Windows Explorer, ou que de passer le " +"nom du fichier en argument du programme :program:`start` depuis l'invite de " +"commande interactif : le fichier est ouvert avec l'application associée à " +"l'extension (s'il y en a une)." + +#: ../Doc/library/os.rst:3532 +msgid "" +"When another *operation* is given, it must be a \"command verb\" that " +"specifies what should be done with the file. Common verbs documented by " +"Microsoft are ``'print'`` and ``'edit'`` (to be used on files) as well as " +"``'explore'`` and ``'find'`` (to be used on directories)." +msgstr "" +"Quand une autre *operation* est donnée, ce doit être une \"commande-verbe\" " +"qui spécifie ce qui devrait être fait avec le fichier. Les verbes habituels " +"documentés par Microsoft sont ``'print'`` et ``'edit'`` (qui doivent être " +"utilisés sur des fichiers) ainsi que ``'explore'`` et ``'find'`` (qui " +"doivent être utilisés sur des répertoires)." + +#: ../Doc/library/os.rst:3537 +msgid "" +":func:`startfile` returns as soon as the associated application is launched. " +"There is no option to wait for the application to close, and no way to " +"retrieve the application's exit status. The *path* parameter is relative to " +"the current directory. If you want to use an absolute path, make sure the " +"first character is not a slash (``'/'``); the underlying Win32 :c:func:" +"`ShellExecute` function doesn't work if it is. Use the :func:`os.path." +"normpath` function to ensure that the path is properly encoded for Win32." +msgstr "" +":func:`startfile` termine dès que l'application associée est lancée.Il n'y a " +"aucune option permettant d'attendre que l'application ne se ferme et aucun " +"moyen de récupérer le statu de sortie de l'application. Le paramètre *path* " +"est relatif au répertoire actuel. Si vous voulez utiliser un chemin absolu, " +"assurez-vous que le premier caractère ne soit pas un slash (``'/'``). La " +"fonction Win32 :c:func:`ShellExecute` sous-jacente ne fonctionne pas sinon. " +"Utilisez la fonction :func:`os.path.normpath` pour vous assurer que le " +"chemin est encodé correctement pour Win32." + +#: ../Doc/library/os.rst:3545 +msgid "" +"To reduce interpreter startup overhead, the Win32 :c:func:`ShellExecute` " +"function is not resolved until this function is first called. If the " +"function cannot be resolved, :exc:`NotImplementedError` will be raised." +msgstr "" +"Pour réduire Pour réduire le temps système de démarrage de l'interpréteur, " +"la fonction Win32 :c:func:`ShellExecute` ne se finit pas tant que cette " +"fonction na pas été appelée. Si la fonction ne peut être interprétée, une :" +"exc:`NotImplementedError` est levée." + +#: ../Doc/library/os.rst:3554 +msgid "" +"Execute the command (a string) in a subshell. This is implemented by " +"calling the Standard C function :c:func:`system`, and has the same " +"limitations. Changes to :data:`sys.stdin`, etc. are not reflected in the " +"environment of the executed command. If *command* generates any output, it " +"will be sent to the interpreter standard output stream." +msgstr "" +"Exécute la commande (une chaîne de caractères) dans un sous-invite de " +"commandes. C'est implémenté en appelant la fonction standard C :c:func:" +"`system` et a les mêmes limitations. les changements sur :data:`sys.stdin`, " +"etc. ne sont pas reflétés dans l'environnement de la commande exécutée. Si " +"*command* génère une sortie, elle sera envoyée à l'interpréteur standard de " +"flux." + +#: ../Doc/library/os.rst:3560 +msgid "" +"On Unix, the return value is the exit status of the process encoded in the " +"format specified for :func:`wait`. Note that POSIX does not specify the " +"meaning of the return value of the C :c:func:`system` function, so the " +"return value of the Python function is system-dependent." +msgstr "" +"Sur Unix, la valeur de retour est le statut de sortie du processus encodé " +"dans le format spécifié pour :func:`wait`. Notez que POSIX ne spécifie pas " +"le sens de la valeur de retour de la fonction C :c:func:`system`, donc la " +"valeur de retour de la fonction Python est dépendante du système." + +#: ../Doc/library/os.rst:3565 +msgid "" +"On Windows, the return value is that returned by the system shell after " +"running *command*. The shell is given by the Windows environment variable :" +"envvar:`COMSPEC`: it is usually :program:`cmd.exe`, which returns the exit " +"status of the command run; on systems using a non-native shell, consult your " +"shell documentation." +msgstr "" +"Sur Windows, la valeur de retour est celle renvoyée par l'invite de commande " +"système après avoir lancé *command*. L'invite de commande est donné par la " +"variable d'environnement Windows :envvar:`COMSPEC`. Elle vaut " +"habituellement :program:`cmd.exe`, qui renvoie l'état de sortie de la " +"commande lancée. Sur les systèmes qui utilisent un invite de commande non-" +"natif, consultez la documentation propre à l'invite." + +#: ../Doc/library/os.rst:3571 +msgid "" +"The :mod:`subprocess` module provides more powerful facilities for spawning " +"new processes and retrieving their results; using that module is preferable " +"to using this function. See the :ref:`subprocess-replacements` section in " +"the :mod:`subprocess` documentation for some helpful recipes." +msgstr "" +"Le module :mod:`subprocess` fournit des outils plus puissants pour générer " +"de nouveaux processus et pour récupérer leur résultat. Il est préférable " +"d'utiliser ce module plutôt que d'utiliser cette fonction. Voir la section :" +"ref:`subprocess-replacements` de la documentation du module :mod:" +"`subprocess` pour des informations plus précises et utiles." + +#: ../Doc/library/os.rst:3581 +msgid "" +"Returns the current global process times. The return value is an object with " +"five attributes:" +msgstr "" +"Renvoie les temps globaux actuels d'exécution du processus. La valeur de " +"retour est un objet avec cinq attributs :" + +#: ../Doc/library/os.rst:3584 +msgid ":attr:`user` - user time" +msgstr ":attr:`user` — le temps utilisateur" + +#: ../Doc/library/os.rst:3585 +msgid ":attr:`system` - system time" +msgstr ":attr:`system` — le temps système" + +#: ../Doc/library/os.rst:3586 +msgid ":attr:`children_user` - user time of all child processes" +msgstr ":attr:`children_user` — temps utilisateur de tous les processus fils" + +#: ../Doc/library/os.rst:3587 +msgid ":attr:`children_system` - system time of all child processes" +msgstr ":attr:`children_system` — le temps système de tous les processus fils" + +#: ../Doc/library/os.rst:3588 +msgid ":attr:`elapsed` - elapsed real time since a fixed point in the past" +msgstr ":attr:`elapsed` — temps écoulé réel depuis un point fixé dans le passé" + +#: ../Doc/library/os.rst:3590 +msgid "" +"For backwards compatibility, this object also behaves like a five-tuple " +"containing :attr:`user`, :attr:`system`, :attr:`children_user`, :attr:" +"`children_system`, and :attr:`elapsed` in that order." +msgstr "" +"Pour des raisons de rétro-compatibilité, cet objet se comporte également " +"comme un *tuple* contenant :attr:`user`, :attr:`system`, :attr:" +"`children_user`, :attr:`children_system`, et :attr:`elapsed` dans cet ordre." + +#: ../Doc/library/os.rst:3594 +msgid "" +"See the Unix manual page :manpage:`times(2)` or the corresponding Windows " +"Platform API documentation. On Windows, only :attr:`user` and :attr:`system` " +"are known; the other attributes are zero." +msgstr "" +"Voir la page de manuel Unix :manpage:`times(2)` ou la documentation de l'API " +"Windows correspondante. Sur Windows, seuls :attr:`user` et :attr:`system` " +"sont connus. Les autres attributs sont nuls." + +#: ../Doc/library/os.rst:3608 +msgid "" +"Wait for completion of a child process, and return a tuple containing its " +"pid and exit status indication: a 16-bit number, whose low byte is the " +"signal number that killed the process, and whose high byte is the exit " +"status (if the signal number is zero); the high bit of the low byte is set " +"if a core file was produced." +msgstr "" +"Attend qu'un processus fils soit complété, et renvoie un *tuple* contenant " +"son PID et son état de sortie : un nombre de 16 bits dont le *byte* de poids " +"faible est le nombre correspondant au signal qui a tué le processus, et dont " +"le *byte* de poids fort est le statut de sortie (si la signal vaut ``0``). " +"Le bit de poids fort du *byte* de poids faible est mis à 1 si un (fichier " +"système) *core file* a été produit." + +#: ../Doc/library/os.rst:3618 +msgid "" +"Wait for the completion of one or more child processes. *idtype* can be :" +"data:`P_PID`, :data:`P_PGID` or :data:`P_ALL`. *id* specifies the pid to " +"wait on. *options* is constructed from the ORing of one or more of :data:" +"`WEXITED`, :data:`WSTOPPED` or :data:`WCONTINUED` and additionally may be " +"ORed with :data:`WNOHANG` or :data:`WNOWAIT`. The return value is an object " +"representing the data contained in the :c:type:`siginfo_t` structure, " +"namely: :attr:`si_pid`, :attr:`si_uid`, :attr:`si_signo`, :attr:" +"`si_status`, :attr:`si_code` or ``None`` if :data:`WNOHANG` is specified and " +"there are no children in a waitable state." +msgstr "" +"Attend qu'un ou plusieurs processus fils soient complétés. *idtypes* peut " +"être :data:`P_PID`, :data:`P_PGID`, ou :data:`P_ALL`. *id* spécifie le PID à " +"attendre. *options* est construit en combinant (avec le OR bit-à-bit) une ou " +"plusieurs des valeurs suivantes : :data:`WEXITED`, :data:`WSTOPPED`, ou :" +"data:`WCONTINUED` et peut additionnellement être combiné avec :data:" +"`WNOHANG` ou :data:`WNOWAIT`. La valeur de retour est un objet représentant " +"les données contenue dans la structure :c:type:`siginfo_t`, nommées :attr:" +"`si_pid`, :attr:`si_uid`, :attr:`si_signo`, :attr:`si_status`, :attr:" +"`si_code` ou ``None`` si :data:`WNOHANG` est spécifié et qu'il n'y a pas " +"d'enfant dans un état que l'on peut attendre." + +#: ../Doc/library/os.rst:3637 +msgid "" +"These are the possible values for *idtype* in :func:`waitid`. They affect " +"how *id* is interpreted." +msgstr "" +"Les valeurs possibles pour *idtypes* pour la fonction :func:`waitid`. Elles " +"affectent l'interprétation de *id*." + +#: ../Doc/library/os.rst:3648 +msgid "" +"Flags that can be used in *options* in :func:`waitid` that specify what " +"child signal to wait for." +msgstr "" +"Marqueurs qui peuvent être utilisés pour la fonction :func:`waitid` qui " +"spécifient quel signal attendre du fils." + +#: ../Doc/library/os.rst:3661 +msgid "" +"These are the possible values for :attr:`si_code` in the result returned by :" +"func:`waitid`." +msgstr "" +"Les valeurs possibles pour :attr:`si_code` dans le résultat renvoyé par :" +"func:`waitid`." + +#: ../Doc/library/os.rst:3671 +msgid "The details of this function differ on Unix and Windows." +msgstr "Les détails de cette fonction diffèrent sur Unix et Windows." + +#: ../Doc/library/os.rst:3673 +msgid "" +"On Unix: Wait for completion of a child process given by process id *pid*, " +"and return a tuple containing its process id and exit status indication " +"(encoded as for :func:`wait`). The semantics of the call are affected by " +"the value of the integer *options*, which should be ``0`` for normal " +"operation." +msgstr "" +"Sur Unix : attend qu'un processus fils donné par son id de processus *pid* " +"soit terminé, et renvoie un *tuple* contenant son PID et son statut de " +"sortie (encodé comme pour :func:`wait`). La sémantique de cet appel est " +"affecté par la valeur de l'argument entier *options*, qui devrait valoir " +"``0`` pour les opérations normales." + +#: ../Doc/library/os.rst:3678 +msgid "" +"If *pid* is greater than ``0``, :func:`waitpid` requests status information " +"for that specific process. If *pid* is ``0``, the request is for the status " +"of any child in the process group of the current process. If *pid* is " +"``-1``, the request pertains to any child of the current process. If *pid* " +"is less than ``-1``, status is requested for any process in the process " +"group ``-pid`` (the absolute value of *pid*)." +msgstr "" +"Si *pid* est plus grand que ``0``, :func:`waitpid` introduit une requête " +"pour des informations sur le statut du processus spécifié. Si *pid* vaut " +"``0``, la requête est pour le statut de tous les fils dans le groupe de " +"processus du processus actuel. Si *pid* vaut ``-1``, la requête concerne " +"tous les processus fils du processus actuel. Si *pid* est inférieur à " +"``-1``, une requête est faite pour le statut de chaque processus du groupe " +"de processus donné par ``-pid`` (la valeur absolue de *pid*)." + +#: ../Doc/library/os.rst:3685 +msgid "" +"An :exc:`OSError` is raised with the value of errno when the syscall returns " +"-1." +msgstr "" +"Une :exc:`OSError` est levée avec la valeur de *errno* quand l'appel système " +"renvoie ``-1``." + +#: ../Doc/library/os.rst:3688 +msgid "" +"On Windows: Wait for completion of a process given by process handle *pid*, " +"and return a tuple containing *pid*, and its exit status shifted left by 8 " +"bits (shifting makes cross-platform use of the function easier). A *pid* " +"less than or equal to ``0`` has no special meaning on Windows, and raises an " +"exception. The value of integer *options* has no effect. *pid* can refer to " +"any process whose id is known, not necessarily a child process. The :func:" +"`spawn\\* ` functions called with :const:`P_NOWAIT` return suitable " +"process handles." +msgstr "" +"Sur Windows : attend que qu'un processus donné par l'identificateur de " +"processus (*process handle*) *pid* soi complété, et renvoie un *tuple* " +"contenant *pid* et son statut de sortir décalé de 8 bits bers la gauche (le " +"décalage rend l'utilisation multiplate-forme plus facile). Un *pid* " +"inférieur ou égal à ``0`` n'a aucune signification particulière sur Windows, " +"et lève une exception. L'argument entier *options* n'a aucun effet. *pid* " +"peut faire référence à tout processus dont l'identifiant est connue pas " +"nécessairement un processus fils. Les fonctions :func:`spawn\\* ` " +"appelées avec :const:`P_NOWAIT` renvoient des identificateurs de processus " +"appropriés." + +#: ../Doc/library/os.rst:3704 +msgid "" +"Similar to :func:`waitpid`, except no process id argument is given and a 3-" +"element tuple containing the child's process id, exit status indication, and " +"resource usage information is returned. Refer to :mod:`resource`.\\ :func:" +"`~resource.getrusage` for details on resource usage information. The option " +"argument is the same as that provided to :func:`waitpid` and :func:`wait4`." +msgstr "" +"Similaire à la fonction :func:`waitpid`, si ce n'est que qu'aucun argument " +"*id* n'est donné, et qu'un triplet contenant l'identifiant du processus " +"fils, son statut de sortie, et une information sur l'utilisation des " +"ressources est renvoyé. Référez-vous à :mod:`resource`.\\ :func:`~resource." +"getrusage` pour des détails sur les informations d'utilisation des " +"ressources. L'argument *options* est le même que celui fourni à :func:" +"`waitpid` et :func:`wait4`." + +#: ../Doc/library/os.rst:3716 +msgid "" +"Similar to :func:`waitpid`, except a 3-element tuple, containing the child's " +"process id, exit status indication, and resource usage information is " +"returned. Refer to :mod:`resource`.\\ :func:`~resource.getrusage` for " +"details on resource usage information. The arguments to :func:`wait4` are " +"the same as those provided to :func:`waitpid`." +msgstr "" +"Similaire à :func:`waitpid`, si ce n'est qu'un triplet contenant " +"l'identifiant du processus fils, son statut de sortie, et des informations " +"d'utilisation des ressources est renvoyé. Référez-vous à :mod:`resource`.\\ :" +"func:`~resource.getrusage` pour des détails sur les informations " +"d'utilisation des ressources. Les arguments de :func:`wait4` sont les mêmes " +"que ceux fournis à :func:`waitpid`." + +#: ../Doc/library/os.rst:3727 +msgid "" +"The option for :func:`waitpid` to return immediately if no child process " +"status is available immediately. The function returns ``(0, 0)`` in this " +"case." +msgstr "" +"L'option de :func:`waitpid` pour terminer immédiatement si aucun statut de " +"processus fils n'est disponible dans l'immédiat. La fonction renvoie ``(0, " +"0)`` dans ce cas." + +#: ../Doc/library/os.rst:3735 +msgid "" +"This option causes child processes to be reported if they have been " +"continued from a job control stop since their status was last reported." +msgstr "" +"Cette option cause les processus fils à être reportés s'ils ont été " +"continués après un arrêt du *job control* depuis leurs derniers reports de " +"statuts." + +#: ../Doc/library/os.rst:3738 +msgid ":ref:`Availability `: some Unix systems." +msgstr ":ref:`Disponibilité ` : certains systèmes Unix." + +#: ../Doc/library/os.rst:3743 +msgid "" +"This option causes child processes to be reported if they have been stopped " +"but their current state has not been reported since they were stopped." +msgstr "" +"Cette option cause les processus fils à être reportés s'ils ont été stoppés " +"mais que leur état actuel n'a pas été reporté depuis qu'ils ont été stoppés." + +#: ../Doc/library/os.rst:3749 +msgid "" +"The following functions take a process status code as returned by :func:" +"`system`, :func:`wait`, or :func:`waitpid` as a parameter. They may be used " +"to determine the disposition of a process." +msgstr "" +"Les fonctions suivantes prennent un code de statu tel que renvoyé par :func:" +"`system`, :func:`wait`, ou :func:`waitpid` en paramètre. Ils peuvent être " +"utilisés pour déterminer la disposition d'un processus." + +#: ../Doc/library/os.rst:3755 +msgid "" +"Return ``True`` if a core dump was generated for the process, otherwise " +"return ``False``." +msgstr "" +"Renvoie ``True`` si un vidage système (*core dump*) a été généré pour le " +"processus, sinon, renvoie ``False``." + +#: ../Doc/library/os.rst:3763 +msgid "" +"Return ``True`` if the process has been continued from a job control stop, " +"otherwise return ``False``." +msgstr "" +"Renvoie ``True`` si le processus a été continué après un arrêt du *job " +"control*, renvoie ``False`` autrement." + +#: ../Doc/library/os.rst:3771 +msgid "" +"Return ``True`` if the process has been stopped, otherwise return ``False``." +msgstr "" +"Renvoie ``True`` si le processus a été arrête, sinon renvoie ``False``." + +#: ../Doc/library/os.rst:3779 +msgid "" +"Return ``True`` if the process exited due to a signal, otherwise return " +"``False``." +msgstr "" +"Renvoie ``True`` si le processus s'est terminé à cause d'un signal, sinon, " +"renvoie ``False``." + +#: ../Doc/library/os.rst:3787 +msgid "" +"Return ``True`` if the process exited using the :manpage:`exit(2)` system " +"call, otherwise return ``False``." +msgstr "" +"Renvoie ``True`` si le processus s'est terminé en faisant un appel système :" +"manpage:`exit(2)`, sinon, renvoie ``False``." + +#: ../Doc/library/os.rst:3795 +msgid "" +"If ``WIFEXITED(status)`` is true, return the integer parameter to the :" +"manpage:`exit(2)` system call. Otherwise, the return value is meaningless." +msgstr "" +"Si ``WIFEXITED(status)`` vaut ``True``, renvoie le paramètre entier de " +"l'appel système :manpage:`exit(2)`. Sinon, la valeur de retour n'a pas de " +"signification." + +#: ../Doc/library/os.rst:3803 +msgid "Return the signal which caused the process to stop." +msgstr "Renvoie le signal qui a causé l'arrêt du processus." + +#: ../Doc/library/os.rst:3810 +msgid "Return the signal which caused the process to exit." +msgstr "Renvoie le signal qui a amené le processus à quitter." + +#: ../Doc/library/os.rst:3816 +msgid "Interface to the scheduler" +msgstr "Interface pour l'ordonnanceur" + +#: ../Doc/library/os.rst:3818 +msgid "" +"These functions control how a process is allocated CPU time by the operating " +"system. They are only available on some Unix platforms. For more detailed " +"information, consult your Unix manpages." +msgstr "" +"Ces fonctions contrôlent un processus se voit allouer du temps de processus " +"par le système d'exploitation. Elles ne sont disponibles que sur certaines " +"plate-formes Unix. Pour des informations plus détaillées, consultez les " +"pages de manuels Unix." + +#: ../Doc/library/os.rst:3824 +msgid "" +"The following scheduling policies are exposed if they are supported by the " +"operating system." +msgstr "" +"Les polices d'ordonnancement suivantes sont exposées si elles sont gérées " +"par le système d'exploitation." + +#: ../Doc/library/os.rst:3829 +msgid "The default scheduling policy." +msgstr "La police d'ordonnancement par défaut." + +#: ../Doc/library/os.rst:3833 +msgid "" +"Scheduling policy for CPU-intensive processes that tries to preserve " +"interactivity on the rest of the computer." +msgstr "" +"Police d'ordonnancement pour les processus intensifs en utilisation du " +"processeur. Cette police essaye de préserver l'interactivité pour le reste " +"de l'ordinateur." + +#: ../Doc/library/os.rst:3838 +msgid "Scheduling policy for extremely low priority background tasks." +msgstr "" +"Police d'ordonnancement pour les tâches de fond avec une priorité " +"extrêmement faible." + +#: ../Doc/library/os.rst:3842 +msgid "Scheduling policy for sporadic server programs." +msgstr "Police d'ordonnancement pour des programmes serveurs sporadiques." + +#: ../Doc/library/os.rst:3846 +msgid "A First In First Out scheduling policy." +msgstr "Une police d'ordonnancement *FIFO* (dernier arrivé, premier servi)." + +#: ../Doc/library/os.rst:3850 +msgid "A round-robin scheduling policy." +msgstr "Une police d'ordonnancement *round-robin* (tourniquet)." + +#: ../Doc/library/os.rst:3854 +msgid "" +"This flag can be OR'ed with any other scheduling policy. When a process with " +"this flag set forks, its child's scheduling policy and priority are reset to " +"the default." +msgstr "" +"Cette option peut combiner différentes politiques d'ordonnancement avec un " +"OU bit-à-bit. Quand un processus avec cette option se dédouble, la politique " +"d'ordonnancement et la priorité du processus fils sont remises aux valeurs " +"par défaut." + +#: ../Doc/library/os.rst:3861 +msgid "" +"This class represents tunable scheduling parameters used in :func:" +"`sched_setparam`, :func:`sched_setscheduler`, and :func:`sched_getparam`. It " +"is immutable." +msgstr "" +"Cette classe représente des paramètres d'ordonnancement réglables utilisés " +"pour :func:`sched_setparam`, :func:`sched_setscheduler`, et :func:" +"`sched_getparam`. Un objet de ce type est immuable." + +#: ../Doc/library/os.rst:3865 +msgid "At the moment, there is only one possible parameter:" +msgstr "Pour le moment, il n'y a qu'un seul paramètre possible :" + +#: ../Doc/library/os.rst:3869 +msgid "The scheduling priority for a scheduling policy." +msgstr "La priorité d'ordonnancement pour une police d'ordonnancement." + +#: ../Doc/library/os.rst:3874 +msgid "" +"Get the minimum priority value for *policy*. *policy* is one of the " +"scheduling policy constants above." +msgstr "" +"Récupère la valeur minimum pour une priorité pour la police *policy*. " +"*policy* est une des constantes de police définies ci-dessus." + +#: ../Doc/library/os.rst:3880 +msgid "" +"Get the maximum priority value for *policy*. *policy* is one of the " +"scheduling policy constants above." +msgstr "" +"Récupère la valeur maximum pour une priorité pour la police *policy*. " +"*policy* est une des constantes de police définies ci-dessus." + +#: ../Doc/library/os.rst:3886 +msgid "" +"Set the scheduling policy for the process with PID *pid*. A *pid* of 0 means " +"the calling process. *policy* is one of the scheduling policy constants " +"above. *param* is a :class:`sched_param` instance." +msgstr "" +"Définit la police d'ordonnancement pour le processus de PID *pid*. Un *pid* " +"de ``0`` signifie le processus appelant. *policy* est une des constantes de " +"police définies ci-dessus. *param* est une instance de la classe :class:" +"`sched_param`." + +#: ../Doc/library/os.rst:3893 +msgid "" +"Return the scheduling policy for the process with PID *pid*. A *pid* of 0 " +"means the calling process. The result is one of the scheduling policy " +"constants above." +msgstr "" +"Renvoie la police d'ordonnancement pour le processus de PID *pid*. Un *pid* " +"de 0 signifie le processus appelant. Le résultat est une des constantes de " +"police définies ci-dessus." + +#: ../Doc/library/os.rst:3900 +msgid "" +"Set a scheduling parameters for the process with PID *pid*. A *pid* of 0 " +"means the calling process. *param* is a :class:`sched_param` instance." +msgstr "" +"Définit un paramètre d'ordonnancement pour le processus de PID *pid*. Un " +"*pid* de ``0`` signifie le processus appelant. *param* est une instance de :" +"class:`sched_param`." + +#: ../Doc/library/os.rst:3906 +msgid "" +"Return the scheduling parameters as a :class:`sched_param` instance for the " +"process with PID *pid*. A *pid* of 0 means the calling process." +msgstr "" +"Renvoie les paramètres d'ordonnancement dans une de :class:`sched_param` " +"pour le processus de PID *pid*. Un *pid* de ``0`` signifie le processus " +"appelant." + +#: ../Doc/library/os.rst:3912 +msgid "" +"Return the round-robin quantum in seconds for the process with PID *pid*. A " +"*pid* of 0 means the calling process." +msgstr "" +"Renvoie le quantum de temps du *round-robin* (en secondes) pour le processus " +"de PID *pid*. Un *pid* de ``0`` signifie le processus appelant." + +#: ../Doc/library/os.rst:3918 +msgid "Voluntarily relinquish the CPU." +msgstr "Abandonne volontairement le processeur." + +#: ../Doc/library/os.rst:3923 +msgid "" +"Restrict the process with PID *pid* (or the current process if zero) to a " +"set of CPUs. *mask* is an iterable of integers representing the set of CPUs " +"to which the process should be restricted." +msgstr "" +"Restreint le processus de PID *pid* (ou le processus actuel si *pid* vaut " +"``0``) à un ensemble de CPUs. *mask* est un itérable d'entiers représentant " +"l'ensemble de CPUs auquel le processus doit être restreint." + +#: ../Doc/library/os.rst:3930 +msgid "" +"Return the set of CPUs the process with PID *pid* (or the current process if " +"zero) is restricted to." +msgstr "" +"Renvoie l'ensemble de CPUs auquel le processus de PID *pid* (ou le processus " +"actuel si *pid* vaut ``0``) est restreint." + +#: ../Doc/library/os.rst:3937 +msgid "Miscellaneous System Information" +msgstr "Diverses informations sur le système" + +#: ../Doc/library/os.rst:3942 +msgid "" +"Return string-valued system configuration values. *name* specifies the " +"configuration value to retrieve; it may be a string which is the name of a " +"defined system value; these names are specified in a number of standards " +"(POSIX, Unix 95, Unix 98, and others). Some platforms define additional " +"names as well. The names known to the host operating system are given as the " +"keys of the ``confstr_names`` dictionary. For configuration variables not " +"included in that mapping, passing an integer for *name* is also accepted." +msgstr "" +"Renvoie les valeurs de configuration en chaînes de caractères. *name* " +"spécifie la valeur de configuration à récupérer. Ce peut être une chaîne de " +"caractères représentant le nom d'une valeur système définie dans un nombre " +"de standards (POSIX, Unix 95, Unix 98, et d'autres). Certaines plate-formes " +"définissent des noms supplémentaires également. Les noms connus par le " +"système d'exploitation hôte sont données dans les clefs du dictionnaire " +"``confstr_names``. Pour les variables de configuration qui ne sont pas " +"incluses dans ce *mapping*, passer un entier pour *name* est également " +"accepté." + +#: ../Doc/library/os.rst:3950 +msgid "" +"If the configuration value specified by *name* isn't defined, ``None`` is " +"returned." +msgstr "" +"Si la valeur de configuration spécifiée par *name* n'est pas définie, " +"``None`` est renvoyé." + +#: ../Doc/library/os.rst:3953 +msgid "" +"If *name* is a string and is not known, :exc:`ValueError` is raised. If a " +"specific value for *name* is not supported by the host system, even if it is " +"included in ``confstr_names``, an :exc:`OSError` is raised with :const:" +"`errno.EINVAL` for the error number." +msgstr "" +"Si *name* est une chaîne de caractères et n'est pas connue, une :exc:" +"`ValueError` est levée. Si une valeur spécifique pour *name* n'est pas gérée " +"par le système hôte, même si elle est incluse dans ``confstr_names``, une :" +"exc:`OSError` est levée avec :const:`errno.EINVAL` pour numéro d'erreur." + +#: ../Doc/library/os.rst:3963 +msgid "" +"Dictionary mapping names accepted by :func:`confstr` to the integer values " +"defined for those names by the host operating system. This can be used to " +"determine the set of names known to the system." +msgstr "" +"Dictionnaire liant les noms acceptés par :func:`confstr` aux valeurs " +"entières définies pour ces noms par le système d'exploitation hôte. Cela " +"peut être utilisé pour déterminer l'ensemble des noms connus du système." + +#: ../Doc/library/os.rst:3972 +msgid "" +"Return the number of CPUs in the system. Returns ``None`` if undetermined." +msgstr "" +"Renvoie le nombre de CPUs dans le système. Renvoie ``None`` si indéterminé." + +#: ../Doc/library/os.rst:3974 +msgid "" +"This number is not equivalent to the number of CPUs the current process can " +"use. The number of usable CPUs can be obtained with ``len(os." +"sched_getaffinity(0))``" +msgstr "" +"Ce nombre n'est pas équivalent au nombre de CPUs que le processus courant " +"peut utiliser. Le nombre de CPUs utilisables peut être obtenu avec ``len(os." +"sched_getaffinity(0))``" + +#: ../Doc/library/os.rst:3984 +msgid "" +"Return the number of processes in the system run queue averaged over the " +"last 1, 5, and 15 minutes or raises :exc:`OSError` if the load average was " +"unobtainable." +msgstr "" +"Renvoie le nombre de processus dans la file d'exécution du système en " +"moyenne dans les dernières 1, 5, et 15 minutes, ou lève une :exc:`OSError` " +"si la charge moyenne est impossible à récupérer." + +#: ../Doc/library/os.rst:3993 +msgid "" +"Return integer-valued system configuration values. If the configuration " +"value specified by *name* isn't defined, ``-1`` is returned. The comments " +"regarding the *name* parameter for :func:`confstr` apply here as well; the " +"dictionary that provides information on the known names is given by " +"``sysconf_names``." +msgstr "" +"Renvoie les valeurs de configuration en nombres entiers. Si la valeur de " +"configuration définie par *name* n'est pas spécifiée, ``-1`` est renvoyé. " +"Les commentaires concernant le paramètre *name* de :func:`confstr` " +"s'appliquent également ici, le dictionnaire qui fournit les informations sur " +"les noms connus est donné par ``sysconf_names``." + +#: ../Doc/library/os.rst:4003 +msgid "" +"Dictionary mapping names accepted by :func:`sysconf` to the integer values " +"defined for those names by the host operating system. This can be used to " +"determine the set of names known to the system." +msgstr "" +"Dictionnaire liant les noms acceptés par :func:`sysconf` aux valeurs " +"entières définies pour ces noms par le système d'exploitation hôte. Cela " +"peut être utilisé pour déterminer l'ensemble des noms connus du système." + +#: ../Doc/library/os.rst:4009 +msgid "" +"The following data values are used to support path manipulation operations. " +"These are defined for all platforms." +msgstr "" +"Les valeurs suivantes sont utilisées pour gérer les opérations de " +"manipulations de chemins. Elles sont définies pour toutes les plate-formes." + +#: ../Doc/library/os.rst:4012 +msgid "" +"Higher-level operations on pathnames are defined in the :mod:`os.path` " +"module." +msgstr "" +"Des opérations de plus haut niveau sur les chemins sont définies dans le " +"module :mod:`os.path`." + +#: ../Doc/library/os.rst:4018 +msgid "" +"The constant string used by the operating system to refer to the current " +"directory. This is ``'.'`` for Windows and POSIX. Also available via :mod:" +"`os.path`." +msgstr "" +"La chaîne de caractère constante utilisée par le système d'exploitation pour " +"référencer le répertoire actuel. Ça vaut ``'.'`` pour Windows et POSIX. " +"Également disponible par :mod:`os.path`." + +#: ../Doc/library/os.rst:4026 +msgid "" +"The constant string used by the operating system to refer to the parent " +"directory. This is ``'..'`` for Windows and POSIX. Also available via :mod:" +"`os.path`." +msgstr "" +"La chaîne de caractère constante utilisée par le système d'exploitation pour " +"référencer le répertoire parent. Ça vaut ``'..'`` pour Windows et POSIX. " +"Également disponible par :mod:`os.path`." + +#: ../Doc/library/os.rst:4035 +msgid "" +"The character used by the operating system to separate pathname components. " +"This is ``'/'`` for POSIX and ``'\\\\'`` for Windows. Note that knowing " +"this is not sufficient to be able to parse or concatenate pathnames --- use :" +"func:`os.path.split` and :func:`os.path.join` --- but it is occasionally " +"useful. Also available via :mod:`os.path`." +msgstr "" +"Le caractère utilisé par le système d'exploitation pour séparer les " +"composantes des chemins. C'est ``'/'`` pour POSIX, et ``'\\\\'`` pour " +"Windows. Notez que ce n'est pas suffisant pour pouvoir analyser ou " +"concaténer correctement des chemins (utilisez alors :func:`os.path.split` " +"et :func:`os.path.join`), mais ça peut s'avérer utile occasionnellement. " +"Également disponible par :mod:`os.path`." + +#: ../Doc/library/os.rst:4045 +msgid "" +"An alternative character used by the operating system to separate pathname " +"components, or ``None`` if only one separator character exists. This is set " +"to ``'/'`` on Windows systems where ``sep`` is a backslash. Also available " +"via :mod:`os.path`." +msgstr "" +"Un caractère alternatif utilisé par le système d'exploitation pour séparer " +"les composantes des chemins, ou ``None`` si un seul séparateur existe. Ça " +"vaut ``'/'`` sur Windows où ``sep`` est un antislash ``'\\'``. Également " +"disponible par :mod:`os.path`." + +#: ../Doc/library/os.rst:4054 +msgid "" +"The character which separates the base filename from the extension; for " +"example, the ``'.'`` in :file:`os.py`. Also available via :mod:`os.path`." +msgstr "" +"Le caractère qui sépare la base du nom d'un fichier et son extension. Par " +"exemple, le ``'.'`` de :file:`os.py`. Également disponible par :mod:`os." +"path`." + +#: ../Doc/library/os.rst:4062 +msgid "" +"The character conventionally used by the operating system to separate search " +"path components (as in :envvar:`PATH`), such as ``':'`` for POSIX or ``';'`` " +"for Windows. Also available via :mod:`os.path`." +msgstr "" +"Le caractère conventionnellement utilisé par le système d'exploitation pour " +"séparer la recherche des composantes de chemin (comme dans la variable " +"d'environnement :envvar:`PATH`). Cela vaut ``':'`` pour POSIX, ou ``';'`` " +"pour Windows. Également disponible par :mod:`os.path`." + +#: ../Doc/library/os.rst:4069 +msgid "" +"The default search path used by :func:`exec\\*p\\* ` and :func:`spawn" +"\\*p\\* ` if the environment doesn't have a ``'PATH'`` key. Also " +"available via :mod:`os.path`." +msgstr "" +"Le chemin de recherche par défaut utilisé par :func:`exec\\* ` et :" +"func:`spawn\\* ` si l'environnement n'a pas une clef ``'PATH'``. " +"Également disponible par :mod:`os.path`." + +#: ../Doc/library/os.rst:4076 +msgid "" +"The string used to separate (or, rather, terminate) lines on the current " +"platform. This may be a single character, such as ``'\\n'`` for POSIX, or " +"multiple characters, for example, ``'\\r\\n'`` for Windows. Do not use *os." +"linesep* as a line terminator when writing files opened in text mode (the " +"default); use a single ``'\\n'`` instead, on all platforms." +msgstr "" +"La chaîne de caractères utilisée pour séparer (ou plutôt pour terminer) les " +"lignes sur la plate-forme actuelle. Ce peut être un caractère unique (comme " +"``'\\n'`` pour POSIX,) ou plusieurs caractères (comme ``'\\r\\n'`` pour " +"Windows). N'utilisez pas *os.linesep* comme terminateur de ligne quand vous " +"écrivez dans un fichier ouvert en mode *texte* (par défaut). Utilisez un " +"unique ``'\\n'`` à la place, sur toutes les plate-formes." + +#: ../Doc/library/os.rst:4085 +msgid "" +"The file path of the null device. For example: ``'/dev/null'`` for POSIX, " +"``'nul'`` for Windows. Also available via :mod:`os.path`." +msgstr "" +"Le chemin de fichier du périphérique *null*. Par exemple : ``'/dev/null'`` " +"pour POSIX, ``'nul'`` pour Windows. Également disponible par :mod:`os.path`." + +#: ../Doc/library/os.rst:4096 +msgid "" +"Flags for use with the :func:`~sys.setdlopenflags` and :func:`~sys." +"getdlopenflags` functions. See the Unix manual page :manpage:`dlopen(3)` " +"for what the different flags mean." +msgstr "" +"Marqueurs à utiliser avec les fonctions :func:`~sys.setdlopenflags` et :func:" +"`~sys.getdlopenflags`. Voir les pages de manuel Unix :manpage:`dlopen(3)` " +"pour les différences de significations entre les marqueurs." + +#: ../Doc/library/os.rst:4104 +msgid "Random numbers" +msgstr "Nombres aléatoires" + +#: ../Doc/library/os.rst:4109 +msgid "" +"Get up to *size* random bytes. The function can return less bytes than " +"requested." +msgstr "" +"Obtient *size* octets aléatoires. La fonction renvoie éventuellement moins " +"d'octets que demandé." + +#: ../Doc/library/os.rst:4112 +msgid "" +"These bytes can be used to seed user-space random number generators or for " +"cryptographic purposes." +msgstr "" +"Ces octets peuvent être utilisés pour initialiser un générateur de nombres " +"aléatoires dans l'espace utilisateur ou pour des raisons cryptographiques." + +#: ../Doc/library/os.rst:4115 +msgid "" +"``getrandom()`` relies on entropy gathered from device drivers and other " +"sources of environmental noise. Unnecessarily reading large quantities of " +"data will have a negative impact on other users of the ``/dev/random`` and " +"``/dev/urandom`` devices." +msgstr "" +"``getrandom()`` se base sur l'entropie rassemblée depuis les pilotes des " +"périphériques et autres sources de bruits de l'environnement. La lecture de " +"grosses quantités de données aura un impact négatif sur les autres " +"utilisateurs des périphériques ``/dev/random`` et ``/dev/urandom``." + +#: ../Doc/library/os.rst:4120 +msgid "" +"The flags argument is a bit mask that can contain zero or more of the " +"following values ORed together: :py:data:`os.GRND_RANDOM` and :py:data:" +"`GRND_NONBLOCK`." +msgstr "" +"L'argument *flags* est un champ de bits qui peut contenir zéro ou plus des " +"valeurs suivantes combinées avec un OU bit-à-bit : :py:data:`os.GRND_RANDOM` " +"et :py:data:`GRND_NONBLOCK`." + +#: ../Doc/library/os.rst:4124 +msgid "" +"See also the `Linux getrandom() manual page `_." +msgstr "" +"Voir aussi la `page de manuel Linux pour getrandom() `_." + +#: ../Doc/library/os.rst:4128 +msgid ":ref:`Availability `: Linux 3.17 and newer." +msgstr ":ref:`Disponibilité ` : Linux 3.17 et ultérieures." + +#: ../Doc/library/os.rst:4133 +msgid "Return a string of *size* random bytes suitable for cryptographic use." +msgstr "" +"Renvoie une chaîne de *size* octets aléatoires utilisable dans un cadre " +"cryptographique." + +#: ../Doc/library/os.rst:4135 +msgid "" +"This function returns random bytes from an OS-specific randomness source. " +"The returned data should be unpredictable enough for cryptographic " +"applications, though its exact quality depends on the OS implementation." +msgstr "" +"Cette fonction renvoie des octets aléatoires depuis un source spécifique à " +"l'OS. Les données renvoyées sont censées être suffisamment imprévisibles " +"pour les applications cryptographiques, bien que la qualité dépende de " +"l'implémentation du système." + +#: ../Doc/library/os.rst:4139 +msgid "" +"On Linux, if the ``getrandom()`` syscall is available, it is used in " +"blocking mode: block until the system urandom entropy pool is initialized " +"(128 bits of entropy are collected by the kernel). See the :pep:`524` for " +"the rationale. On Linux, the :func:`getrandom` function can be used to get " +"random bytes in non-blocking mode (using the :data:`GRND_NONBLOCK` flag) or " +"to poll until the system urandom entropy pool is initialized." +msgstr "" +"Sous Linux, si l'appel système ``getrandom()`` est disponible, il est " +"utilisé en mode bloquant : il bloque jusqu'à ce que la réserve d'entropie " +"d'*urandom* soit initialisée (128 bits d'entropie sont collectés par le " +"noyau). Voir la :pep:`524` pour plus d'explications. Sous Linux, la " +"fonction :func:`getrandom` peut être utilisée pour obtenir des octets " +"aléatoires en mode non-bloquant (avec l'option :data:`GRND_NONBLOCK`) ou " +"attendre jusqu'à ce que la réserve d'entropie d'*urandom* soit initialisée." + +#: ../Doc/library/os.rst:4146 +msgid "" +"On a Unix-like system, random bytes are read from the ``/dev/urandom`` " +"device. If the ``/dev/urandom`` device is not available or not readable, " +"the :exc:`NotImplementedError` exception is raised." +msgstr "" +"Sur un système de type UNIX, les octets aléatoires sont lus depuis le " +"périphérique ``/dev/urandom``. Si le périphérique ``/dev/urandom`` n'est pas " +"disponible ou n'est pas lisible, l'exception :exc:`NotImplementedError` est " +"levée." + +#: ../Doc/library/os.rst:4150 +msgid "On Windows, it will use ``CryptGenRandom()``." +msgstr "Sous Windows, ``CryptGenRandom()`` est utilisée." + +#: ../Doc/library/os.rst:4153 +msgid "" +"The :mod:`secrets` module provides higher level functions. For an easy-to-" +"use interface to the random number generator provided by your platform, " +"please see :class:`random.SystemRandom`." +msgstr "" +"Le module :mod:`secrets` fournit des fonctions de plus haut niveau. Pour une " +"interface facile à utiliser du générateur de nombres aléatoires fourni par " +"votre plate-forme, veuillez regarder :class:`random.SystemRandom`." + +#: ../Doc/library/os.rst:4157 +msgid "" +"On Linux, ``getrandom()`` is now used in blocking mode to increase the " +"security." +msgstr "" +"Sous Linux, ``getrandom()`` est maintenant utilisé en mode bloquant pour " +"renforcer la sécurité." + +#: ../Doc/library/os.rst:4161 +msgid "" +"On Linux, if the ``getrandom()`` syscall blocks (the urandom entropy pool is " +"not initialized yet), fall back on reading ``/dev/urandom``." +msgstr "" +"Sous Linux, si l'appel système ``getrandom()`` bloque (la réserve d'entropie " +"d'*urandom* n'est pas encore initialisée), réalise à la place une lecture de " +"``/dev/urandom``." + +#: ../Doc/library/os.rst:4165 +msgid "" +"On Linux 3.17 and newer, the ``getrandom()`` syscall is now used when " +"available. On OpenBSD 5.6 and newer, the C ``getentropy()`` function is now " +"used. These functions avoid the usage of an internal file descriptor." +msgstr "" +"Sur Linux 3.17 et plus récent, l'appel système ``getrandom()`` est " +"maintenant utilisé quand il est disponible. Sur OpenBSD 5.6 et plus récent, " +"la fonction C ``getentropy()`` est utilisée. Ces fonctions évitent " +"l'utilisation interne d'un descripteur de fichier." + +#: ../Doc/library/os.rst:4173 +msgid "" +"By default, when reading from ``/dev/random``, :func:`getrandom` blocks if " +"no random bytes are available, and when reading from ``/dev/urandom``, it " +"blocks if the entropy pool has not yet been initialized." +msgstr "" +"Par défaut, quand elle lit depuis ``/dev/random``, :func:`getrandom` bloque " +"si aucun octet aléatoire n'est disponible, et quand elle lit depuis ``/dev/" +"urandom``, elle bloque si la réserve d'entropie n'a pas encore été " +"initialisée." + +#: ../Doc/library/os.rst:4177 +msgid "" +"If the :py:data:`GRND_NONBLOCK` flag is set, then :func:`getrandom` does not " +"block in these cases, but instead immediately raises :exc:`BlockingIOError`." +msgstr "" +"Si l'option :py:data:`GRND_NONBLOCK` est activée, :func:`getrandom` ne " +"bloque pas dans ces cas, mais lève immédiatement une :exc:`BlockingIOError`." + +#: ../Doc/library/os.rst:4184 +msgid "" +"If this bit is set, then random bytes are drawn from the ``/dev/" +"random`` pool instead of the ``/dev/urandom`` pool." +msgstr "" +"Si ce bit est activé, les octets aléatoires sont puisés depuis ``/dev/" +"random`` plutôt que ``/dev/urandom``." + +#~ msgid "" +#~ "An \"Availability: Unix\" note means that this function is commonly found " +#~ "on Unix systems. It does not make any claims about its existence on a " +#~ "specific operating system." +#~ msgstr "" +#~ "Une note \"Disponibilité : Unix \" signifie que cette fonction est " +#~ "communément implémentée dans les systèmes Unix. Une telle note ne prétend " +#~ "pas l'existence de la fonction sur un système d'exploitation particulier." + +#~ msgid "" +#~ "If not separately noted, all functions that claim \"Availability: Unix\" " +#~ "are supported on Mac OS X, which builds on a Unix core." +#~ msgstr "" +#~ "Si ce n'est pas mentionné séparément, toutes les fonctions se réclamant " +#~ "\"Disponibilité : Unix\" sont gérées sur Mac OS X, qui est basé sur Unix." + +#~ msgid "Availability: Unix" +#~ msgstr "Disponibilité : Unix" + +#~ msgid "Availability: Unix, Windows" +#~ msgstr "Disponibilité Unix, Windows" diff --git a/library/ossaudiodev.po b/library/ossaudiodev.po new file mode 100644 index 000000000..4065b3f66 --- /dev/null +++ b/library/ossaudiodev.po @@ -0,0 +1,564 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/ossaudiodev.rst:2 +msgid ":mod:`ossaudiodev` --- Access to OSS-compatible audio devices" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:10 +msgid "" +"This module allows you to access the OSS (Open Sound System) audio " +"interface. OSS is available for a wide range of open-source and commercial " +"Unices, and is the standard audio interface for Linux and recent versions of " +"FreeBSD." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:42 +msgid "" +"Operations in this module now raise :exc:`OSError` where :exc:`IOError` was " +"raised." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:50 +msgid "" +"`Open Sound System Programmer's Guide `_" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:50 +msgid "the official documentation for the OSS C API" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:52 +msgid "" +"The module defines a large number of constants supplied by the OSS device " +"driver; see ```` on either Linux or FreeBSD for a listing." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:55 +msgid ":mod:`ossaudiodev` defines the following variables and functions:" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:60 +msgid "" +"This exception is raised on certain errors. The argument is a string " +"describing what went wrong." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:63 +msgid "" +"(If :mod:`ossaudiodev` receives an error from a system call such as :c:func:" +"`open`, :c:func:`write`, or :c:func:`ioctl`, it raises :exc:`OSError`. " +"Errors detected directly by :mod:`ossaudiodev` result in :exc:" +"`OSSAudioError`.)" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:67 +msgid "" +"(For backwards compatibility, the exception class is also available as " +"``ossaudiodev.error``.)" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:74 +msgid "" +"Open an audio device and return an OSS audio device object. This object " +"supports many file-like methods, such as :meth:`read`, :meth:`write`, and :" +"meth:`fileno` (although there are subtle differences between conventional " +"Unix read/write semantics and those of OSS audio devices). It also supports " +"a number of audio-specific methods; see below for the complete list of " +"methods." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:80 +msgid "" +"*device* is the audio device filename to use. If it is not specified, this " +"module first looks in the environment variable :envvar:`AUDIODEV` for a " +"device to use. If not found, it falls back to :file:`/dev/dsp`." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:84 +msgid "" +"*mode* is one of ``'r'`` for read-only (record) access, ``'w'`` for write-" +"only (playback) access and ``'rw'`` for both. Since many sound cards only " +"allow one process to have the recorder or player open at a time, it is a " +"good idea to open the device only for the activity needed. Further, some " +"sound cards are half-duplex: they can be opened for reading or writing, but " +"not both at once." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:91 +msgid "" +"Note the unusual calling syntax: the *first* argument is optional, and the " +"second is required. This is a historical artifact for compatibility with " +"the older :mod:`linuxaudiodev` module which :mod:`ossaudiodev` supersedes." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:102 +msgid "" +"Open a mixer device and return an OSS mixer device object. *device* is the " +"mixer device filename to use. If it is not specified, this module first " +"looks in the environment variable :envvar:`MIXERDEV` for a device to use. " +"If not found, it falls back to :file:`/dev/mixer`." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:111 +msgid "Audio Device Objects" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:113 +msgid "" +"Before you can write to or read from an audio device, you must call three " +"methods in the correct order:" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:116 +msgid ":meth:`setfmt` to set the output format" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:118 +msgid ":meth:`channels` to set the number of channels" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:120 +msgid ":meth:`speed` to set the sample rate" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:122 +msgid "" +"Alternately, you can use the :meth:`setparameters` method to set all three " +"audio parameters at once. This is more convenient, but may not be as " +"flexible in all cases." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:126 +msgid "" +"The audio device objects returned by :func:`.open` define the following " +"methods and (read-only) attributes:" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:132 +msgid "" +"Explicitly close the audio device. When you are done writing to or reading " +"from an audio device, you should explicitly close it. A closed device " +"cannot be used again." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:139 +msgid "Return the file descriptor associated with the device." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:144 +msgid "" +"Read *size* bytes from the audio input and return them as a Python string. " +"Unlike most Unix device drivers, OSS audio devices in blocking mode (the " +"default) will block :func:`read` until the entire requested amount of data " +"is available." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:152 +msgid "" +"Write a :term:`bytes-like object` *data* to the audio device and return the " +"number of bytes written. If the audio device is in blocking mode (the " +"default), the entire data is always written (again, this is different from " +"usual Unix device semantics). If the device is in non-blocking mode, some " +"data may not be written---see :meth:`writeall`." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:158 ../Doc/library/ossaudiodev.rst:172 +msgid "Writable :term:`bytes-like object` is now accepted." +msgstr "N'importe quel :term:`bytes-like object` est maintenant accepté." + +#: ../Doc/library/ossaudiodev.rst:164 +msgid "" +"Write a :term:`bytes-like object` *data* to the audio device: waits until " +"the audio device is able to accept data, writes as much data as it will " +"accept, and repeats until *data* has been completely written. If the device " +"is in blocking mode (the default), this has the same effect as :meth:" +"`write`; :meth:`writeall` is only useful in non-blocking mode. Has no " +"return value, since the amount of data written is always equal to the amount " +"of data supplied." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:176 +msgid "" +"Audio device objects also support the context management protocol, i.e. they " +"can be used in a :keyword:`with` statement." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:181 +msgid "" +"The following methods each map to exactly one :c:func:`ioctl` system call. " +"The correspondence is obvious: for example, :meth:`setfmt` corresponds to " +"the ``SNDCTL_DSP_SETFMT`` ioctl, and :meth:`sync` to ``SNDCTL_DSP_SYNC`` " +"(this can be useful when consulting the OSS documentation). If the " +"underlying :c:func:`ioctl` fails, they all raise :exc:`OSError`." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:190 +msgid "" +"Put the device into non-blocking mode. Once in non-blocking mode, there is " +"no way to return it to blocking mode." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:196 +msgid "" +"Return a bitmask of the audio output formats supported by the soundcard. " +"Some of the formats supported by OSS are:" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:200 +msgid "Format" +msgstr "Format" + +#: ../Doc/library/ossaudiodev.rst:200 ../Doc/library/ossaudiodev.rst:254 +msgid "Description" +msgstr "Description" + +#: ../Doc/library/ossaudiodev.rst:202 +msgid ":const:`AFMT_MU_LAW`" +msgstr ":const:`AFMT_MU_LAW`" + +#: ../Doc/library/ossaudiodev.rst:202 +msgid "" +"a logarithmic encoding (used by Sun ``.au`` files and :file:`/dev/audio`)" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:205 +msgid ":const:`AFMT_A_LAW`" +msgstr ":const:`AFMT_A_LAW`" + +#: ../Doc/library/ossaudiodev.rst:205 +msgid "a logarithmic encoding" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:207 +msgid ":const:`AFMT_IMA_ADPCM`" +msgstr ":const:`AFMT_IMA_ADPCM`" + +#: ../Doc/library/ossaudiodev.rst:207 +msgid "" +"a 4:1 compressed format defined by the Interactive Multimedia Association" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:210 +msgid ":const:`AFMT_U8`" +msgstr ":const:`AFMT_U8`" + +#: ../Doc/library/ossaudiodev.rst:210 +msgid "Unsigned, 8-bit audio" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:212 +msgid ":const:`AFMT_S16_LE`" +msgstr ":const:`AFMT_S16_LE`" + +#: ../Doc/library/ossaudiodev.rst:212 +msgid "" +"Signed, 16-bit audio, little-endian byte order (as used by Intel processors)" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:215 +msgid ":const:`AFMT_S16_BE`" +msgstr ":const:`AFMT_S16_BE`" + +#: ../Doc/library/ossaudiodev.rst:215 +msgid "" +"Signed, 16-bit audio, big-endian byte order (as used by 68k, PowerPC, Sparc)" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:218 +msgid ":const:`AFMT_S8`" +msgstr ":const:`AFMT_S8`" + +#: ../Doc/library/ossaudiodev.rst:218 +msgid "Signed, 8 bit audio" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:220 +msgid ":const:`AFMT_U16_LE`" +msgstr ":const:`AFMT_U16_LE`" + +#: ../Doc/library/ossaudiodev.rst:220 +msgid "Unsigned, 16-bit little-endian audio" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:222 +msgid ":const:`AFMT_U16_BE`" +msgstr ":const:`AFMT_U16_BE`" + +#: ../Doc/library/ossaudiodev.rst:222 +msgid "Unsigned, 16-bit big-endian audio" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:225 +msgid "" +"Consult the OSS documentation for a full list of audio formats, and note " +"that most devices support only a subset of these formats. Some older " +"devices only support :const:`AFMT_U8`; the most common format used today is :" +"const:`AFMT_S16_LE`." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:233 +msgid "" +"Try to set the current audio format to *format*---see :meth:`getfmts` for a " +"list. Returns the audio format that the device was set to, which may not be " +"the requested format. May also be used to return the current audio format---" +"do this by passing an \"audio format\" of :const:`AFMT_QUERY`." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:241 +msgid "" +"Set the number of output channels to *nchannels*. A value of 1 indicates " +"monophonic sound, 2 stereophonic. Some devices may have more than 2 " +"channels, and some high-end devices may not support mono. Returns the number " +"of channels the device was set to." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:249 +msgid "" +"Try to set the audio sampling rate to *samplerate* samples per second. " +"Returns the rate actually set. Most sound devices don't support arbitrary " +"sampling rates. Common rates are:" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:254 +msgid "Rate" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:256 +msgid "8000" +msgstr "8000" + +#: ../Doc/library/ossaudiodev.rst:256 +msgid "default rate for :file:`/dev/audio`" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:258 +msgid "11025" +msgstr "11025" + +#: ../Doc/library/ossaudiodev.rst:258 +msgid "speech recording" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:260 +msgid "22050" +msgstr "22050" + +#: ../Doc/library/ossaudiodev.rst:262 +msgid "44100" +msgstr "44100" + +#: ../Doc/library/ossaudiodev.rst:262 +msgid "CD quality audio (at 16 bits/sample and 2 channels)" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:265 +msgid "96000" +msgstr "96000" + +#: ../Doc/library/ossaudiodev.rst:265 +msgid "DVD quality audio (at 24 bits/sample)" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:271 +msgid "" +"Wait until the sound device has played every byte in its buffer. (This " +"happens implicitly when the device is closed.) The OSS documentation " +"recommends closing and re-opening the device rather than using :meth:`sync`." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:278 +msgid "" +"Immediately stop playing or recording and return the device to a state where " +"it can accept commands. The OSS documentation recommends closing and re-" +"opening the device after calling :meth:`reset`." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:285 +msgid "" +"Tell the driver that there is likely to be a pause in the output, making it " +"possible for the device to handle the pause more intelligently. You might " +"use this after playing a spot sound effect, before waiting for user input, " +"or before doing disk I/O." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:290 +msgid "" +"The following convenience methods combine several ioctls, or one ioctl and " +"some simple calculations." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:296 +msgid "" +"Set the key audio sampling parameters---sample format, number of channels, " +"and sampling rate---in one method call. *format*, *nchannels*, and " +"*samplerate* should be as specified in the :meth:`setfmt`, :meth:`channels`, " +"and :meth:`speed` methods. If *strict* is true, :meth:`setparameters` " +"checks to see if each parameter was actually set to the requested value, and " +"raises :exc:`OSSAudioError` if not. Returns a tuple (*format*, *nchannels*, " +"*samplerate*) indicating the parameter values that were actually set by the " +"device driver (i.e., the same as the return values of :meth:`setfmt`, :meth:" +"`channels`, and :meth:`speed`)." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:306 +msgid "For example, ::" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:310 +msgid "is equivalent to ::" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:319 +msgid "Returns the size of the hardware buffer, in samples." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:324 +msgid "" +"Returns the number of samples that are in the hardware buffer yet to be " +"played." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:329 +msgid "" +"Returns the number of samples that could be queued into the hardware buffer " +"to be played without blocking." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:332 +msgid "Audio device objects also support several read-only attributes:" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:337 +msgid "Boolean indicating whether the device has been closed." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:342 +msgid "String containing the name of the device file." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:347 +msgid "The I/O mode for the file, either ``\"r\"``, ``\"rw\"``, or ``\"w\"``." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:353 +msgid "Mixer Device Objects" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:355 +msgid "The mixer object provides two file-like methods:" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:360 +msgid "" +"This method closes the open mixer device file. Any further attempts to use " +"the mixer after this file is closed will raise an :exc:`OSError`." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:366 +msgid "Returns the file handle number of the open mixer device file." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:368 +msgid "Mixer objects also support the context management protocol." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:372 +msgid "The remaining methods are specific to audio mixing:" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:377 +msgid "" +"This method returns a bitmask specifying the available mixer controls " +"(\"Control\" being a specific mixable \"channel\", such as :const:" +"`SOUND_MIXER_PCM` or :const:`SOUND_MIXER_SYNTH`). This bitmask indicates a " +"subset of all available mixer controls---the :const:`SOUND_MIXER_\\*` " +"constants defined at module level. To determine if, for example, the current " +"mixer object supports a PCM mixer, use the following Python code::" +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:389 +msgid "" +"For most purposes, the :const:`SOUND_MIXER_VOLUME` (master volume) and :" +"const:`SOUND_MIXER_PCM` controls should suffice---but code that uses the " +"mixer should be flexible when it comes to choosing mixer controls. On the " +"Gravis Ultrasound, for example, :const:`SOUND_MIXER_VOLUME` does not exist." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:397 +msgid "" +"Returns a bitmask indicating stereo mixer controls. If a bit is set, the " +"corresponding control is stereo; if it is unset, the control is either " +"monophonic or not supported by the mixer (use in combination with :meth:" +"`controls` to determine which)." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:402 +msgid "" +"See the code example for the :meth:`controls` function for an example of " +"getting data from a bitmask." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:408 +msgid "" +"Returns a bitmask specifying the mixer controls that may be used to record. " +"See the code example for :meth:`controls` for an example of reading from a " +"bitmask." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:414 +msgid "" +"Returns the volume of a given mixer control. The returned volume is a 2-" +"tuple ``(left_volume,right_volume)``. Volumes are specified as numbers from " +"0 (silent) to 100 (full volume). If the control is monophonic, a 2-tuple is " +"still returned, but both volumes are the same." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:419 +msgid "" +"Raises :exc:`OSSAudioError` if an invalid control is specified, or :exc:" +"`OSError` if an unsupported control is specified." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:425 +msgid "" +"Sets the volume for a given mixer control to ``(left,right)``. ``left`` and " +"``right`` must be ints and between 0 (silent) and 100 (full volume). On " +"success, the new volume is returned as a 2-tuple. Note that this may not be " +"exactly the same as the volume specified, because of the limited resolution " +"of some soundcard's mixers." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:431 +msgid "" +"Raises :exc:`OSSAudioError` if an invalid mixer control was specified, or if " +"the specified volumes were out-of-range." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:437 +msgid "" +"This method returns a bitmask indicating which control(s) are currently " +"being used as a recording source." +msgstr "" + +#: ../Doc/library/ossaudiodev.rst:443 +msgid "" +"Call this function to specify a recording source. Returns a bitmask " +"indicating the new recording source (or sources) if successful; raises :exc:" +"`OSError` if an invalid source was specified. To set the current recording " +"source to the microphone input::" +msgstr "" diff --git a/library/othergui.po b/library/othergui.po new file mode 100644 index 000000000..728d1bf41 --- /dev/null +++ b/library/othergui.po @@ -0,0 +1,140 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-13 17:51+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/library/othergui.rst:4 +msgid "Other Graphical User Interface Packages" +msgstr "Autres paquets d'interface graphique utilisateur" + +#: ../Doc/library/othergui.rst:6 +msgid "" +"Major cross-platform (Windows, Mac OS X, Unix-like) GUI toolkits are " +"available for Python:" +msgstr "" +"Des boîtes à outils multiplateformes (Windows, Mac OS X ou Unix et assimilé) " +"majeures sont disponibles pour Python :" + +#: ../Doc/library/othergui.rst:17 +msgid "`PyGObject `_" +msgstr "`PyGObject `_" + +#: ../Doc/library/othergui.rst:12 +msgid "" +"PyGObject provides introspection bindings for C libraries using `GObject " +"`_. One of these libraries is " +"the `GTK+ 3 `_ widget set. GTK+ comes with many more " +"widgets than Tkinter provides. An online `Python GTK+ 3 Tutorial `_ is available." +msgstr "" +"*PyGObject* fournit une surcouche introspective pour les bibliothèques C " +"utilisant `GObject `_. Une de " +"ces bibliothèques est la collection de composants graphiques `GTK+ 3 " +"`_" + +#: ../Doc/library/othergui.rst:24 +msgid "`PyGTK `_" +msgstr "`PyGTK `_" + +#: ../Doc/library/othergui.rst:20 +msgid "" +"PyGTK provides bindings for an older version of the library, GTK+ 2. It " +"provides an object oriented interface that is slightly higher level than the " +"C one. There are also bindings to `GNOME `_. An " +"online `tutorial `_ is " +"available." +msgstr "" +"*PyGTK* fournit une surcouche pour une version plus ancienne de la " +"bibliothèque, GTK+ 2. Cette dernière fournit une interface orientée objet " +"qui est légèrement plus haut niveau que son équivalent C. Il y a également " +"une surcouche pour `GNOME `_. Un `tutoriel `_ en ligne est disponible." + +#: ../Doc/library/othergui.rst:31 +msgid "`PyQt `_" +msgstr "`PyQt `_" + +#: ../Doc/library/othergui.rst:27 +msgid "" +"PyQt is a :program:`sip`\\ -wrapped binding to the Qt toolkit. Qt is an " +"extensive C++ GUI application development framework that is available for " +"Unix, Windows and Mac OS X. :program:`sip` is a tool for generating bindings " +"for C++ libraries as Python classes, and is specifically designed for Python." +msgstr "" +"*PyQt* est une surcouche de la boite à outils *Qt* basée sur :program:`sip`. " +"*Qt* est un *framework* complet de développement d'interface graphique en C+" +"+ , disponible pour Unix, Windows et Mac OS X. :program:`sip` est un outil " +"pour générer une surcouche de classes Python au dessus de bibliothèques C++, " +"et est spécifiquement conçu pour Python." + +#: ../Doc/library/othergui.rst:36 +msgid "`PySide `_" +msgstr "`PySide `_" + +#: ../Doc/library/othergui.rst:34 +msgid "" +"PySide is a newer binding to the Qt toolkit, provided by Nokia. Compared to " +"PyQt, its licensing scheme is friendlier to non-open source applications." +msgstr "" +"*PySide* est une nouvelle surcouche de la boîte à outils *Qt*, fournie par " +"Nokia. Comparée à *PyQT*, son système de licence est plus accommodant pour " +"les application non open source." + +#: ../Doc/library/othergui.rst:47 +msgid "`wxPython `_" +msgstr "`wxPython `_" + +#: ../Doc/library/othergui.rst:39 +msgid "" +"wxPython is a cross-platform GUI toolkit for Python that is built around the " +"popular `wxWidgets `_ (formerly wxWindows) C++ " +"toolkit. It provides a native look and feel for applications on Windows, " +"Mac OS X, and Unix systems by using each platform's native widgets where " +"ever possible, (GTK+ on Unix-like systems). In addition to an extensive set " +"of widgets, wxPython provides classes for online documentation and context " +"sensitive help, printing, HTML viewing, low-level device context drawing, " +"drag and drop, system clipboard access, an XML-based resource format and " +"more, including an ever growing library of user-contributed modules." +msgstr "" +"*wxPython* est une boîte à outils d'interface graphique multiplateforme pour " +"Python qui est construite autour de la populaire boîte à outils `wxWidgets " +"`_ (anciennement *wxWindows*). En plus d'un " +"ensemble de composants graphiques complet, *wxPython* fournit des classes " +"pour de la documentation en ligne, de l'aide contextuelle, de l'impression, " +"de la consultation de HTML, du rendu graphique bas niveau, du glisser-" +"déposer, l'accès au système de presse-papier, un DSL de description de " +"ressources en XML et même plus, y compris une collection de modules " +"contribués par la communauté qui grandit sans cesse. Elle fournit un aspect " +"et une expérience native pour les applications sur Windows, Mac OS X et " +"systèmes Unix en utilisant les composants natifs de chaque plateforme quand " +"cela est possible (GTK+ sur les systèmes Unix et assimilés). " + +#: ../Doc/library/othergui.rst:50 +msgid "" +"PyGTK, PyQt, and wxPython, all have a modern look and feel and more widgets " +"than Tkinter. In addition, there are many other GUI toolkits for Python, " +"both cross-platform, and platform-specific. See the `GUI Programming " +"`_ page in the Python Wiki for " +"a much more complete list, and also for links to documents where the " +"different GUI toolkits are compared." +msgstr "" +"*PyGTK*, *PyQt*, et *wxPython* fournissent tous un aspect et une expérience " +"moderne ainsi que plus de composants graphiques que Tkinter. De plus, il y a " +"de nombreuses autres boîtes à outils pour Python, que ce soit " +"multiplateformes ou spécifiques à une plateforme. Consultez la page sur la " +"`programmation d'interface graphique `_ du Wiki Python pour une liste bien plus complète, ainsi " +"que des liens vers des documents où les différentes boîtes à outils " +"graphiques sont comparées." diff --git a/library/parser.po b/library/parser.po new file mode 100644 index 000000000..eecbd1e10 --- /dev/null +++ b/library/parser.po @@ -0,0 +1,438 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-06-20 14:07+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/parser.rst:2 +msgid ":mod:`parser` --- Access Python parse trees" +msgstr ":mod:`parser` — Accès aux arbres syntaxiques" + +#: ../Doc/library/parser.rst:21 +msgid "" +"The :mod:`parser` module provides an interface to Python's internal parser " +"and byte-code compiler. The primary purpose for this interface is to allow " +"Python code to edit the parse tree of a Python expression and create " +"executable code from this. This is better than trying to parse and modify " +"an arbitrary Python code fragment as a string because parsing is performed " +"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:30 +msgid "" +"From Python 2.5 onward, it's much more convenient to cut in at the Abstract " +"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:34 +msgid "" +"There are a few things to note about this module which are important to " +"making use of the data structures created. This is not a tutorial on " +"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:39 +msgid "" +"Most importantly, a good understanding of the Python grammar processed by " +"the internal parser is required. For full information on the language " +"syntax, refer to :ref:`reference-index`. The parser itself is created from " +"a grammar specification defined in the file :file:`Grammar/Grammar` in the " +"standard Python distribution. The parse trees stored in the ST objects " +"created by this module are the actual output from the internal parser when " +"created by the :func:`expr` or :func:`suite` functions, described below. " +"The ST objects created by :func:`sequence2st` faithfully simulate those " +"structures. Be aware that the values of the sequences which are considered " +"\"correct\" will vary from one version of Python to another as the formal " +"grammar for the language is revised. However, transporting code from one " +"Python version to another as source text will always allow correct parse " +"trees to be created in the target version, with the only restriction being " +"that migrating to an older version of the interpreter will not support more " +"recent language constructs. The parse trees are not typically compatible " +"from one version to another, whereas source code has always been forward-" +"compatible." +msgstr "" +"Le prérequis le plus important est une bonne compréhension de la grammaire " +"Python utilisée par l'analyseur interne dont la syntaxe est documentée " +"exhaustivement dans :ref:`reference-index`. L'analyseur lui-même est généré " +"à partir d'une grammaire spécifiée dans le fichier :file:`Grammar/Grammar` " +"dans la distribution standard de Python. Les arbres syntaxiques stockés dans " +"les objets ST créés par les fonctions :func:`expr` ou :func:`suite` de ce " +"module sont directement le résultat de l'analyseur interne, alors que les " +"objets ST créés par :func:`sequence2st` simulent ces structures. N'oubliez " +"pas qu'une séquence considérée « correcte » dans une version de Python peut " +"ne pas l'être dans une autre, la grammaire de Python pouvant évoluer. " +"Cependant, déplacer du code source d'une version de Python à une autre sous " +"forme textuelle donnera toujours des arbres syntaxique corrects, à " +"l'exception qu'une version plus ancienne de l'interpréteur ne pourra pas " +"analyser les constructions récentes du langage. Les arbres syntaxiques quant " +"à eux ne sont généralement pas compatibles d'une version à l'autre, alors " +"que le code source a toujours conservé la compatibilité ascendante." + +#: ../Doc/library/parser.rst:56 +msgid "" +"Each element of the sequences returned by :func:`st2list` or :func:" +"`st2tuple` has a simple form. Sequences representing non-terminal elements " +"in the grammar always have a length greater than one. The first element is " +"an integer which identifies a production in the grammar. These integers are " +"given symbolic names in the C header file :file:`Include/graminit.h` and the " +"Python module :mod:`symbol`. Each additional element of the sequence " +"represents a component of the production as recognized in the input string: " +"these are always sequences which have the same form as the parent. An " +"important aspect of this structure which should be noted is that keywords " +"used to identify the parent node type, such as the keyword :keyword:`if` in " +"an :const:`if_stmt`, are included in the node tree without any special " +"treatment. For example, the :keyword:`!if` keyword is represented by the " +"tuple ``(1, 'if')``, where ``1`` is the numeric value associated with all :" +"const:`NAME` tokens, including variable and function names defined by the " +"user. In an alternate form returned when line number information is " +"requested, the same token might be represented as ``(1, 'if', 12)``, where " +"the ``12`` represents the line number at which the terminal symbol was found." +msgstr "" +"Chaque élément des séquences renvoyé par les fonctions :func:`st2list` ou :" +"func:`st2tuple` possède une forme simple. Les séquences représentant des " +"éléments non terminaux de la grammaire ont toujours une taille supérieure à " +"un. Le premier élément est un nombre entier représentant un élément de la " +"grammaire. Le fichier d'en-têtes C :file:`Include/graminit.h` et le module " +"Python :mod:`symbol` attribuent des noms symboliques à ces nombres. Les " +"éléments suivants représentent les composants, tels que reconnus dans la " +"chaîne analysée, de cet élément grammatical : ces séquences ont toujours la " +"même forme que leur parent. Notez que les mots clés utilisés pour identifier " +"le type du nœud parent, tel que :keyword:`if` dans un :const:`if_stmt` sont " +"inclus dans l'arbre du nœud sans traitement particulier. Par exemple, le mot " +"clé :keyword:`!if` est représenté par la paire ``(1, 'if')``, où ``1`` est " +"la valeur numérique pour les lexèmes :const:`NAME`, ce qui inclut les noms " +"de variables et de fonctions définis par l'utilisateur. Dans sa forme " +"alternative, renvoyée lorsque le numéro de la ligne est requis, le même " +"lexème peut être représenté : ``(1, 'if', 12)``, où ``12`` est le numéro de " +"la ligne sur laquelle le dernier symbole se trouve." + +#: ../Doc/library/parser.rst:73 +msgid "" +"Terminal elements are represented in much the same way, but without any " +"child elements and the addition of the source text which was identified. " +"The example of the :keyword:`if` keyword above is representative. The " +"various types of terminal symbols are defined in the C header file :file:" +"`Include/token.h` and the Python module :mod:`token`." +msgstr "" + +#: ../Doc/library/parser.rst:79 +msgid "" +"The ST objects are not required to support the functionality of this module, " +"but are provided for three purposes: to allow an application to amortize the " +"cost of processing complex parse trees, to provide a parse tree " +"representation which conserves memory space when compared to the Python list " +"or tuple representation, and to ease the creation of additional modules in C " +"which manipulate parse trees. A simple \"wrapper\" class may be created in " +"Python to hide the use of ST objects." +msgstr "" + +#: ../Doc/library/parser.rst:87 +msgid "" +"The :mod:`parser` module defines functions for a few distinct purposes. The " +"most important purposes are to create ST objects and to convert ST objects " +"to other representations such as parse trees and compiled code objects, but " +"there are also functions which serve to query the type of parse tree " +"represented by an ST object." +msgstr "" + +#: ../Doc/library/parser.rst:97 +msgid "Module :mod:`symbol`" +msgstr "" + +#: ../Doc/library/parser.rst:97 +msgid "Useful constants representing internal nodes of the parse tree." +msgstr "" + +#: ../Doc/library/parser.rst:100 +msgid "Module :mod:`token`" +msgstr "" + +#: ../Doc/library/parser.rst:100 +msgid "" +"Useful constants representing leaf nodes of the parse tree and functions for " +"testing node values." +msgstr "" + +#: ../Doc/library/parser.rst:107 +msgid "Creating ST Objects" +msgstr "" + +#: ../Doc/library/parser.rst:109 +msgid "" +"ST objects may be created from source code or from a parse tree. When " +"creating an ST object from source, different functions are used to create " +"the ``'eval'`` and ``'exec'`` forms." +msgstr "" + +#: ../Doc/library/parser.rst:116 +msgid "" +"The :func:`expr` function parses the parameter *source* as if it were an " +"input to ``compile(source, 'file.py', 'eval')``. If the parse succeeds, an " +"ST object is created to hold the internal parse tree representation, " +"otherwise an appropriate exception is raised." +msgstr "" + +#: ../Doc/library/parser.rst:124 +msgid "" +"The :func:`suite` function parses the parameter *source* as if it were an " +"input to ``compile(source, 'file.py', 'exec')``. If the parse succeeds, an " +"ST object is created to hold the internal parse tree representation, " +"otherwise an appropriate exception is raised." +msgstr "" + +#: ../Doc/library/parser.rst:132 +msgid "" +"This function accepts a parse tree represented as a sequence and builds an " +"internal representation if possible. If it can validate that the tree " +"conforms to the Python grammar and all nodes are valid node types in the " +"host version of Python, an ST object is created from the internal " +"representation and returned to the called. If there is a problem creating " +"the internal representation, or if the tree cannot be validated, a :exc:" +"`ParserError` exception is raised. An ST object created this way should not " +"be assumed to compile correctly; normal exceptions raised by compilation may " +"still be initiated when the ST object is passed to :func:`compilest`. This " +"may indicate problems not related to syntax (such as a :exc:`MemoryError` " +"exception), but may also be due to constructs such as the result of parsing " +"``del f(0)``, which escapes the Python parser but is checked by the bytecode " +"compiler." +msgstr "" + +#: ../Doc/library/parser.rst:145 +msgid "" +"Sequences representing terminal tokens may be represented as either two-" +"element lists of the form ``(1, 'name')`` or as three-element lists of the " +"form ``(1, 'name', 56)``. If the third element is present, it is assumed to " +"be a valid line number. The line number may be specified for any subset of " +"the terminal symbols in the input tree." +msgstr "" + +#: ../Doc/library/parser.rst:154 +msgid "" +"This is the same function as :func:`sequence2st`. This entry point is " +"maintained for backward compatibility." +msgstr "" + +#: ../Doc/library/parser.rst:161 +msgid "Converting ST Objects" +msgstr "" + +#: ../Doc/library/parser.rst:163 +msgid "" +"ST objects, regardless of the input used to create them, may be converted to " +"parse trees represented as list- or tuple- trees, or may be compiled into " +"executable code objects. Parse trees may be extracted with or without line " +"numbering information." +msgstr "" + +#: ../Doc/library/parser.rst:171 +msgid "" +"This function accepts an ST object from the caller in *st* and returns a " +"Python list representing the equivalent parse tree. The resulting list " +"representation can be used for inspection or the creation of a new parse " +"tree in list form. This function does not fail so long as memory is " +"available to build the list representation. If the parse tree will only be " +"used for inspection, :func:`st2tuple` should be used instead to reduce " +"memory consumption and fragmentation. When the list representation is " +"required, this function is significantly faster than retrieving a tuple " +"representation and converting that to nested lists." +msgstr "" + +#: ../Doc/library/parser.rst:181 +msgid "" +"If *line_info* is true, line number information will be included for all " +"terminal tokens as a third element of the list representing the token. Note " +"that the line number provided specifies the line on which the token *ends*. " +"This information is omitted if the flag is false or omitted." +msgstr "" + +#: ../Doc/library/parser.rst:189 +msgid "" +"This function accepts an ST object from the caller in *st* and returns a " +"Python tuple representing the equivalent parse tree. Other than returning a " +"tuple instead of a list, this function is identical to :func:`st2list`." +msgstr "" + +#: ../Doc/library/parser.rst:193 +msgid "" +"If *line_info* is true, line number information will be included for all " +"terminal tokens as a third element of the list representing the token. This " +"information is omitted if the flag is false or omitted." +msgstr "" + +#: ../Doc/library/parser.rst:204 +msgid "" +"The Python byte compiler can be invoked on an ST object to produce code " +"objects which can be used as part of a call to the built-in :func:`exec` or :" +"func:`eval` functions. This function provides the interface to the compiler, " +"passing the internal parse tree from *st* to the parser, using the source " +"file name specified by the *filename* parameter. The default value supplied " +"for *filename* indicates that the source was an ST object." +msgstr "" + +#: ../Doc/library/parser.rst:211 +msgid "" +"Compiling an ST object may result in exceptions related to compilation; an " +"example would be a :exc:`SyntaxError` caused by the parse tree for ``del " +"f(0)``: this statement is considered legal within the formal grammar for " +"Python but is not a legal language construct. The :exc:`SyntaxError` raised " +"for this condition is actually generated by the Python byte-compiler " +"normally, which is why it can be raised at this point by the :mod:`parser` " +"module. Most causes of compilation failure can be diagnosed " +"programmatically by inspection of the parse tree." +msgstr "" + +#: ../Doc/library/parser.rst:224 +msgid "Queries on ST Objects" +msgstr "" + +#: ../Doc/library/parser.rst:226 +msgid "" +"Two functions are provided which allow an application to determine if an ST " +"was created as an expression or a suite. Neither of these functions can be " +"used to determine if an ST was created from source code via :func:`expr` or :" +"func:`suite` or from a parse tree via :func:`sequence2st`." +msgstr "" + +#: ../Doc/library/parser.rst:236 +msgid "" +"When *st* represents an ``'eval'`` form, this function returns true, " +"otherwise it returns false. This is useful, since code objects normally " +"cannot be queried for this information using existing built-in functions. " +"Note that the code objects created by :func:`compilest` cannot be queried " +"like this either, and are identical to those created by the built-in :func:" +"`compile` function." +msgstr "" + +#: ../Doc/library/parser.rst:245 +msgid "" +"This function mirrors :func:`isexpr` in that it reports whether an ST object " +"represents an ``'exec'`` form, commonly known as a \"suite.\" It is not " +"safe to assume that this function is equivalent to ``not isexpr(st)``, as " +"additional syntactic fragments may be supported in the future." +msgstr "" + +#: ../Doc/library/parser.rst:254 +msgid "Exceptions and Error Handling" +msgstr "" + +#: ../Doc/library/parser.rst:256 +msgid "" +"The parser module defines a single exception, but may also pass other built-" +"in exceptions from other portions of the Python runtime environment. See " +"each function for information about the exceptions it can raise." +msgstr "" + +#: ../Doc/library/parser.rst:263 +msgid "" +"Exception raised when a failure occurs within the parser module. This is " +"generally produced for validation failures rather than the built-in :exc:" +"`SyntaxError` raised during normal parsing. The exception argument is either " +"a string describing the reason of the failure or a tuple containing a " +"sequence causing the failure from a parse tree passed to :func:`sequence2st` " +"and an explanatory string. Calls to :func:`sequence2st` need to be able to " +"handle either type of exception, while calls to other functions in the " +"module will only need to be aware of the simple string values." +msgstr "" + +#: ../Doc/library/parser.rst:272 +msgid "" +"Note that the functions :func:`compilest`, :func:`expr`, and :func:`suite` " +"may raise exceptions which are normally raised by the parsing and " +"compilation process. These include the built in exceptions :exc:" +"`MemoryError`, :exc:`OverflowError`, :exc:`SyntaxError`, and :exc:" +"`SystemError`. In these cases, these exceptions carry all the meaning " +"normally associated with them. Refer to the descriptions of each function " +"for detailed information." +msgstr "" + +#: ../Doc/library/parser.rst:283 +msgid "ST Objects" +msgstr "" + +#: ../Doc/library/parser.rst:285 +msgid "" +"Ordered and equality comparisons are supported between ST objects. Pickling " +"of ST objects (using the :mod:`pickle` module) is also supported." +msgstr "" + +#: ../Doc/library/parser.rst:291 +msgid "" +"The type of the objects returned by :func:`expr`, :func:`suite` and :func:" +"`sequence2st`." +msgstr "" + +#: ../Doc/library/parser.rst:294 +msgid "ST objects have the following methods:" +msgstr "" + +#: ../Doc/library/parser.rst:299 +msgid "Same as ``compilest(st, filename)``." +msgstr "" + +#: ../Doc/library/parser.rst:304 +msgid "Same as ``isexpr(st)``." +msgstr "" + +#: ../Doc/library/parser.rst:309 +msgid "Same as ``issuite(st)``." +msgstr "" + +#: ../Doc/library/parser.rst:314 +msgid "Same as ``st2list(st, line_info, col_info)``." +msgstr "" + +#: ../Doc/library/parser.rst:319 +msgid "Same as ``st2tuple(st, line_info, col_info)``." +msgstr "" + +#: ../Doc/library/parser.rst:323 +msgid "Example: Emulation of :func:`compile`" +msgstr "" + +#: ../Doc/library/parser.rst:325 +msgid "" +"While many useful operations may take place between parsing and bytecode " +"generation, the simplest operation is to do nothing. For this purpose, " +"using the :mod:`parser` module to produce an intermediate data structure is " +"equivalent to the code ::" +msgstr "" + +#: ../Doc/library/parser.rst:335 +msgid "" +"The equivalent operation using the :mod:`parser` module is somewhat longer, " +"and allows the intermediate internal parse tree to be retained as an ST " +"object::" +msgstr "" + +#: ../Doc/library/parser.rst:345 +msgid "" +"An application which needs both ST and code objects can package this code " +"into readily available functions::" +msgstr "" diff --git a/library/pathlib.po b/library/pathlib.po new file mode 100644 index 000000000..fe4967d43 --- /dev/null +++ b/library/pathlib.po @@ -0,0 +1,1205 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-18 21:54+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/pathlib.rst:3 +msgid ":mod:`pathlib` --- Object-oriented filesystem paths" +msgstr ":mod:`pathlib` — Chemins de système de fichiers orientés objet" + +#: ../Doc/library/pathlib.rst:10 +msgid "**Source code:** :source:`Lib/pathlib.py`" +msgstr "**Code source :** :source:`Lib/pathlib.py`" + +#: ../Doc/library/pathlib.rst:16 +msgid "" +"This module offers classes representing filesystem paths with semantics " +"appropriate for different operating systems. Path classes are divided " +"between :ref:`pure paths `, which provide purely computational " +"operations without I/O, and :ref:`concrete paths `, which " +"inherit from pure paths but also provide I/O operations." +msgstr "" +"Ce module offre des classes représentant le système de fichiers avec la " +"sémantique appropriée pour différents systèmes d'exploitation. Les classes " +"de chemins sont divisées en :ref:`chemins purs `, qui " +"fournissent purement du calcul sans entrées/sorties, et :ref:`chemins " +"concrets `, qui héritent des chemins purs et fournissent " +"également les opérations d'entrées/sorties." + +#: ../Doc/library/pathlib.rst:25 +msgid "" +"If you've never used this module before or just aren't sure which class is " +"right for your task, :class:`Path` is most likely what you need. It " +"instantiates a :ref:`concrete path ` for the platform the " +"code is running on." +msgstr "" +"Si vous n'avez jamais utilisé ce module précédemment, ou si vous n'êtes pas " +"sûr de quelle classe est faite pour votre tâche, :class:`Path` est très " +"certainement ce dont vous avez besoin. Elle instancie un :ref:`chemin " +"concret ` pour la plateforme sur laquelle s'exécute le code." + +#: ../Doc/library/pathlib.rst:29 +msgid "Pure paths are useful in some special cases; for example:" +msgstr "" +"Les chemins purs sont utiles dans certains cas particuliers ; par exemple :" + +#: ../Doc/library/pathlib.rst:31 +msgid "" +"If you want to manipulate Windows paths on a Unix machine (or vice versa). " +"You cannot instantiate a :class:`WindowsPath` when running on Unix, but you " +"can instantiate :class:`PureWindowsPath`." +msgstr "" +"Si vous voulez manipuler des chemins Windows sur une machine Unix (ou vice " +"versa). Vous ne pouvez pas instancier un :class:`WindowsPath` quand vous " +"êtes sous Unix, mais vous pouvez instancier :class:`PureWindowsPath`." + +#: ../Doc/library/pathlib.rst:34 +msgid "" +"You want to make sure that your code only manipulates paths without actually " +"accessing the OS. In this case, instantiating one of the pure classes may be " +"useful since those simply don't have any OS-accessing operations." +msgstr "" +"Vous voulez être sûr que votre code manipule des chemins sans réellement " +"accéder au système d'exploitation. Dans ce cas, instancier une de ces " +"classes pures peut être utile puisqu'elle ne possède tout simplement aucune " +"opération permettant d'accéder au système d'exploitation." + +#: ../Doc/library/pathlib.rst:39 +msgid ":pep:`428`: The pathlib module -- object-oriented filesystem paths." +msgstr "" +":pep:`428` : Le module *pathlib* -- chemins de système de fichiers orientés " +"objet." + +#: ../Doc/library/pathlib.rst:42 +msgid "" +"For low-level path manipulation on strings, you can also use the :mod:`os." +"path` module." +msgstr "" +"Pour de la manipulation de chemins bas-niveau avec des chaînes de " +"caractères, vous pouvez aussi utiliser le module :mod:`os.path`." + +#: ../Doc/library/pathlib.rst:47 +msgid "Basic use" +msgstr "Utilisation basique" + +#: ../Doc/library/pathlib.rst:49 +msgid "Importing the main class::" +msgstr "Importer la classe principale ::" + +#: ../Doc/library/pathlib.rst:53 +msgid "Listing subdirectories::" +msgstr "Lister les sous-dossiers ::" + +#: ../Doc/library/pathlib.rst:60 +msgid "Listing Python source files in this directory tree::" +msgstr "" +"Lister les fichiers source Python dans cette arborescence de dossiers ::" + +#: ../Doc/library/pathlib.rst:67 +msgid "Navigating inside a directory tree::" +msgstr "Naviguer à l'intérieur d'une arborescence de dossiers ::" + +#: ../Doc/library/pathlib.rst:76 +msgid "Querying path properties::" +msgstr "Récupérer les propriétés de chemin ::" + +#: ../Doc/library/pathlib.rst:83 +msgid "Opening a file::" +msgstr "Ouvrir un fichier ::" + +#: ../Doc/library/pathlib.rst:93 +msgid "Pure paths" +msgstr "Chemins purs" + +#: ../Doc/library/pathlib.rst:95 +msgid "" +"Pure path objects provide path-handling operations which don't actually " +"access a filesystem. There are three ways to access these classes, which we " +"also call *flavours*:" +msgstr "" +"Les objets chemins purs fournissent les opérations de gestion de chemin qui " +"n'accèdent pas réellement au système de fichiers. Il y a trois façons " +"d'accéder à ces classes que nous appelons aussi *familles* :" + +#: ../Doc/library/pathlib.rst:101 +msgid "" +"A generic class that represents the system's path flavour (instantiating it " +"creates either a :class:`PurePosixPath` or a :class:`PureWindowsPath`)::" +msgstr "" +"Une classe générique qui représente la famille de chemin du système " +"(l'instancier crée soit un :class:`PurePosixPath` soit un :class:" +"`PureWindowsPath`) ::" + +#: ../Doc/library/pathlib.rst:107 +msgid "" +"Each element of *pathsegments* can be either a string representing a path " +"segment, an object implementing the :class:`os.PathLike` interface which " +"returns a string, or another path object::" +msgstr "" +"Chaque élément de *pathsegments* peut soit être une chaîne de caractères " +"représentant un segment de chemin, un objet implémentant l'interface :class:" +"`os.PathLike` qui renvoie une chaîne de caractères, soit un autre objet " +"chemin ::" + +#: ../Doc/library/pathlib.rst:116 +msgid "When *pathsegments* is empty, the current directory is assumed::" +msgstr "Quand *pathsegments* est vide, le dossier courant est utilisé ::" + +#: ../Doc/library/pathlib.rst:121 +msgid "" +"When several absolute paths are given, the last is taken as an anchor " +"(mimicking :func:`os.path.join`'s behaviour)::" +msgstr "" +"Quand plusieurs chemins absolus sont fournis, le dernier est pris comme " +"ancre (recopiant le comportement de :func:`os.path.join`) ::" + +#: ../Doc/library/pathlib.rst:129 +msgid "" +"However, in a Windows path, changing the local root doesn't discard the " +"previous drive setting::" +msgstr "" +"Cependant, dans un chemin Windows, changer la racine locale ne supprime pas " +"la précédente configuration de lecteur ::" + +#: ../Doc/library/pathlib.rst:135 +msgid "" +"Spurious slashes and single dots are collapsed, but double dots (``'..'``) " +"are not, since this would change the meaning of a path in the face of " +"symbolic links::" +msgstr "" +"Les points et slashs malencontreux sont supprimés, mais les doubles points " +"(``'..'``) ne le sont pas, puisque cela changerait la signification du " +"chemin dans le cas de liens symboliques ::" + +#: ../Doc/library/pathlib.rst:146 +msgid "" +"(a naïve approach would make ``PurePosixPath('foo/../bar')`` equivalent to " +"``PurePosixPath('bar')``, which is wrong if ``foo`` is a symbolic link to " +"another directory)" +msgstr "" +"(une analyse naïve considérerait ``PurePosixPath('foo/../bar')`` équivalent " +"à ``PurePosixPath('bar')``, ce qui est faux si ``foo`` est un lien " +"symbolique vers un autre dossier)" + +#: ../Doc/library/pathlib.rst:150 +msgid "" +"Pure path objects implement the :class:`os.PathLike` interface, allowing " +"them to be used anywhere the interface is accepted." +msgstr "" +"Les objets chemins purs implémentent l'interface :class:`os.PathLike`, leur " +"permettant d'être utilisés n'importe où l'interface est acceptée." + +#: ../Doc/library/pathlib.rst:153 +msgid "Added support for the :class:`os.PathLike` interface." +msgstr "Ajout de la gestion de l'interface :class:`os.PathLike`." + +#: ../Doc/library/pathlib.rst:158 +msgid "" +"A subclass of :class:`PurePath`, this path flavour represents non-Windows " +"filesystem paths::" +msgstr "" +"Une sous-classe de :class:`PurePath`, cette famille de chemin représente les " +"chemins de systèmes de fichiers en dehors des chemins Windows ::" + +#: ../Doc/library/pathlib.rst:164 ../Doc/library/pathlib.rst:174 +#: ../Doc/library/pathlib.rst:595 ../Doc/library/pathlib.rst:605 +#: ../Doc/library/pathlib.rst:615 +msgid "*pathsegments* is specified similarly to :class:`PurePath`." +msgstr "*pathsegments* est spécifié de manière similaire à :class:`PurePath`." + +#: ../Doc/library/pathlib.rst:168 +msgid "" +"A subclass of :class:`PurePath`, this path flavour represents Windows " +"filesystem paths::" +msgstr "" +"Une sous-classe de :class:`PurePath`, cette famille de chemin représente les " +"chemins de systèmes de fichiers Windows ::" + +#: ../Doc/library/pathlib.rst:176 +msgid "" +"Regardless of the system you're running on, you can instantiate all of these " +"classes, since they don't provide any operation that does system calls." +msgstr "" +"Sans tenir compte du système sur lequel vous êtes, vous pouvez instancier " +"toutes ces classes, puisqu'elles ne fournissent aucune opération qui appelle " +"le système d'exploitation." + +#: ../Doc/library/pathlib.rst:181 +msgid "General properties" +msgstr "Propriétés générales" + +#: ../Doc/library/pathlib.rst:183 +msgid "" +"Paths are immutable and hashable. Paths of a same flavour are comparable " +"and orderable. These properties respect the flavour's case-folding " +"semantics::" +msgstr "" +"Les chemins sont immuables et hachables. Les chemins d'une même famille sont " +"comparables et ordonnables. Ces propriétés respectent l'ordre " +"lexicographique défini par la famille ::" + +#: ../Doc/library/pathlib.rst:196 +msgid "Paths of a different flavour compare unequal and cannot be ordered::" +msgstr "" +"Les chemins de différentes familles ne sont pas égaux et ne peuvent être " +"ordonnés ::" + +#: ../Doc/library/pathlib.rst:207 +msgid "Operators" +msgstr "Opérateurs" + +#: ../Doc/library/pathlib.rst:209 +msgid "" +"The slash operator helps create child paths, similarly to :func:`os.path." +"join`::" +msgstr "" +"L'opérateur slash aide à créer les chemins enfants, de manière similaire à :" +"func:`os.path.join` ::" + +#: ../Doc/library/pathlib.rst:220 +msgid "" +"A path object can be used anywhere an object implementing :class:`os." +"PathLike` is accepted::" +msgstr "" +"Un objet chemin peut être utilisé n'importe où un objet implémentant :class:" +"`os.PathLike` est accepté ::" + +#: ../Doc/library/pathlib.rst:228 +msgid "" +"The string representation of a path is the raw filesystem path itself (in " +"native form, e.g. with backslashes under Windows), which you can pass to any " +"function taking a file path as a string::" +msgstr "" +"La représentation d'un chemin en chaîne de caractères est celle du chemin " +"brut du système de fichiers lui-même (dans sa forme native, i.e. avec des " +"antislashs sous Windows), et que vous pouvez passer à n'importe quelle " +"fonction prenant un chemin en tant que chaîne de caractères ::" + +#: ../Doc/library/pathlib.rst:239 +msgid "" +"Similarly, calling :class:`bytes` on a path gives the raw filesystem path as " +"a bytes object, as encoded by :func:`os.fsencode`::" +msgstr "" +"De manière similaire, appeler :class:`bytes` sur un chemin donne le chemin " +"brut du système de fichiers en tant que bytes, tel qu'encodé par :func:`os." +"fsencode` ::" + +#: ../Doc/library/pathlib.rst:246 +msgid "" +"Calling :class:`bytes` is only recommended under Unix. Under Windows, the " +"unicode form is the canonical representation of filesystem paths." +msgstr "" +"Appeler :class:`bytes` est seulement recommandé sous Unix. Sous Windows, la " +"forme Unicode est la représentation canonique des chemins du système de " +"fichiers." + +#: ../Doc/library/pathlib.rst:251 +msgid "Accessing individual parts" +msgstr "Accéder aux parties individuelles" + +#: ../Doc/library/pathlib.rst:253 +msgid "" +"To access the individual \"parts\" (components) of a path, use the following " +"property:" +msgstr "" +"Pour accéder aux parties individuelles (composantes) d'un chemin, utilisez " +"les propriétés suivantes :" + +#: ../Doc/library/pathlib.rst:258 +msgid "A tuple giving access to the path's various components::" +msgstr "Un tuple donnant accès aux différentes composantes du chemin ::" + +#: ../Doc/library/pathlib.rst:268 +msgid "(note how the drive and local root are regrouped in a single part)" +msgstr "" +"(notez comme le lecteur et la racine locale sont regroupés en une seule " +"partie)" + +#: ../Doc/library/pathlib.rst:272 +msgid "Methods and properties" +msgstr "Méthodes et propriétés" + +#: ../Doc/library/pathlib.rst:278 +msgid "Pure paths provide the following methods and properties:" +msgstr "Les chemins purs fournissent les méthodes et propriétés suivantes :" + +#: ../Doc/library/pathlib.rst:282 +msgid "A string representing the drive letter or name, if any::" +msgstr "" +"Une chaîne représentant la lettre du lecteur ou le nom, s'il y en a un ::" + +#: ../Doc/library/pathlib.rst:291 +msgid "UNC shares are also considered drives::" +msgstr "Les partages UNC sont aussi considérés comme des lecteurs ::" + +#: ../Doc/library/pathlib.rst:298 +msgid "A string representing the (local or global) root, if any::" +msgstr "" +"Une chaîne de caractères représentant la racine (locale ou globale), s'il y " +"en a une ::" + +#: ../Doc/library/pathlib.rst:307 +msgid "UNC shares always have a root::" +msgstr "Les partages UNC ont toujours une racine ::" + +#: ../Doc/library/pathlib.rst:314 +msgid "The concatenation of the drive and root::" +msgstr "La concaténation du lecteur et de la racine ::" + +#: ../Doc/library/pathlib.rst:328 +msgid "" +"An immutable sequence providing access to the logical ancestors of the path::" +msgstr "" +"Une séquence immuable fournissant accès aux ancêtres logiques du chemin ::" + +#: ../Doc/library/pathlib.rst:342 +msgid "The logical parent of the path::" +msgstr "Le parent logique du chemin ::" + +#: ../Doc/library/pathlib.rst:348 +msgid "You cannot go past an anchor, or empty path::" +msgstr "Vous ne pouvez pas aller au-delà d'une ancre, ou d'un chemin vide ::" + +#: ../Doc/library/pathlib.rst:358 +msgid "This is a purely lexical operation, hence the following behaviour::" +msgstr "C'est une opération purement lexicale, d'où le comportement suivant ::" + +#: ../Doc/library/pathlib.rst:364 +msgid "" +"If you want to walk an arbitrary filesystem path upwards, it is recommended " +"to first call :meth:`Path.resolve` so as to resolve symlinks and eliminate `" +"\"..\"` components." +msgstr "" +"Si vous voulez parcourir un chemin arbitraire du système de fichiers, il est " +"recommandé de d'abord appeler :meth:`Path.resolve` de manière à résoudre les " +"liens symboliques et éliminer les composantes `\"..\"`." + +#: ../Doc/library/pathlib.rst:371 +msgid "" +"A string representing the final path component, excluding the drive and " +"root, if any::" +msgstr "" +"Une chaîne représentant la composante finale du chemin, en excluant le " +"lecteur et la racine, si présent ::" + +#: ../Doc/library/pathlib.rst:377 +msgid "UNC drive names are not considered::" +msgstr "Les noms de lecteur UNC ne sont pas pris en compte ::" + +#: ../Doc/library/pathlib.rst:387 +msgid "The file extension of the final component, if any::" +msgstr "L'extension du fichier de la composante finale, si présente ::" + +#: ../Doc/library/pathlib.rst:399 +msgid "A list of the path's file extensions::" +msgstr "Une liste des extensions du chemin de fichier ::" + +#: ../Doc/library/pathlib.rst:411 +msgid "The final path component, without its suffix::" +msgstr "La composante finale du chemin, sans son suffixe ::" + +#: ../Doc/library/pathlib.rst:423 +msgid "" +"Return a string representation of the path with forward slashes (``/``)::" +msgstr "" +"Renvoie une représentation en chaîne de caractères du chemin avec des slashs " +"(``/``) ::" + +#: ../Doc/library/pathlib.rst:434 +msgid "" +"Represent the path as a ``file`` URI. :exc:`ValueError` is raised if the " +"path isn't absolute." +msgstr "" +"Représente le chemin en tant qu'URI de fichier. :exc:`ValueError` est levée " +"si le chemin n'est pas absolu." + +#: ../Doc/library/pathlib.rst:447 +msgid "" +"Return whether the path is absolute or not. A path is considered absolute " +"if it has both a root and (if the flavour allows) a drive::" +msgstr "" +"Renvoie si le chemin est absolu ou non. Un chemin est considéré absolu s'il " +"a une racine et un lecteur (si la famille le permet) ::" + +#: ../Doc/library/pathlib.rst:467 +msgid "" +"With :class:`PureWindowsPath`, return ``True`` if the path is considered " +"reserved under Windows, ``False`` otherwise. With :class:`PurePosixPath`, " +"``False`` is always returned." +msgstr "" +"Avec :class:`PureWindowsPath`, renvoie ``True`` si le chemin est considéré " +"réservé sous Windows, ``False`` sinon. Avec :class:`PurePosixPath`, " +"``False`` est systématiquement renvoyé." + +#: ../Doc/library/pathlib.rst:476 +msgid "" +"File system calls on reserved paths can fail mysteriously or have unintended " +"effects." +msgstr "" +"Les appels au système de fichier sur des chemins réservés peuvent échouer " +"mystérieusement ou avoir des effets inattendus." + +#: ../Doc/library/pathlib.rst:482 +msgid "" +"Calling this method is equivalent to combining the path with each of the " +"*other* arguments in turn::" +msgstr "" +"Appeler cette méthode équivaut à combiner le chemin avec chacun des " +"arguments *other* ::" + +#: ../Doc/library/pathlib.rst:497 +msgid "" +"Match this path against the provided glob-style pattern. Return ``True`` if " +"matching is successful, ``False`` otherwise." +msgstr "" +"Fait correspondre ce chemin avec le motif (*glob pattern*) fourni. Renvoie " +"``True`` si la correspondance a réussi, ``False`` sinon." + +#: ../Doc/library/pathlib.rst:500 +msgid "" +"If *pattern* is relative, the path can be either relative or absolute, and " +"matching is done from the right::" +msgstr "" +"Si *pattern* est relatif, le chemin peut être soit relatif, soit absolu, et " +"la correspondance est faite à partir de la droite ::" + +#: ../Doc/library/pathlib.rst:510 +msgid "" +"If *pattern* is absolute, the path must be absolute, and the whole path must " +"match::" +msgstr "" +"Si *pattern* est absolu, le chemin doit être absolu, et la correspondance " +"doit être totale avec le chemin ::" + +#: ../Doc/library/pathlib.rst:518 +msgid "As with other methods, case-sensitivity is observed::" +msgstr "Comme avec les autres méthodes, la casse est prise en compte ::" + +#: ../Doc/library/pathlib.rst:526 +msgid "" +"Compute a version of this path relative to the path represented by *other*. " +"If it's impossible, ValueError is raised::" +msgstr "" +"Calcule une version du chemin en relatif au chemin représenté par *other*. " +"Si c'est impossible, ValueError est levée ::" + +#: ../Doc/library/pathlib.rst:544 +msgid "" +"Return a new path with the :attr:`name` changed. If the original path " +"doesn't have a name, ValueError is raised::" +msgstr "" +"Renvoie un nouveau chemin avec :attr:`name` changé. Si le chemin original " +"n'a pas de nom, ValueError est levée ::" + +#: ../Doc/library/pathlib.rst:561 +msgid "" +"Return a new path with the :attr:`suffix` changed. If the original path " +"doesn't have a suffix, the new *suffix* is appended instead. If the " +"*suffix* is an empty string, the original suffix is removed::" +msgstr "" +"Renvoie un nouveau chemin avec :attr:`suffix` changé. Si le chemin original " +"n'a pas de suffixe, le nouveau *suffix* est alors ajouté. Si *suffix* est " +"une chaîne vide, le suffixe d'origine est retiré ::" + +#: ../Doc/library/pathlib.rst:580 +msgid "Concrete paths" +msgstr "Chemins concrets" + +#: ../Doc/library/pathlib.rst:582 +msgid "" +"Concrete paths are subclasses of the pure path classes. In addition to " +"operations provided by the latter, they also provide methods to do system " +"calls on path objects. There are three ways to instantiate concrete paths:" +msgstr "" +"Les chemins concrets sont des sous-classes des chemins purs. En plus des " +"opérations fournies par ces derniers, ils fournissent aussi des méthodes " +"pour faire appel au système sur des objets chemin. Il y a trois façons " +"d'instancier des chemins concrets :" + +#: ../Doc/library/pathlib.rst:588 +msgid "" +"A subclass of :class:`PurePath`, this class represents concrete paths of the " +"system's path flavour (instantiating it creates either a :class:`PosixPath` " +"or a :class:`WindowsPath`)::" +msgstr "" +"Une sous-classe de :class:`PurePath`, cette classe représente les chemins " +"concrets d'une famille de chemins de système de fichiers (l'instancier créé " +"soit un :class:`PosixPath`, soit un :class:`WindowsPath`) ::" + +#: ../Doc/library/pathlib.rst:599 +msgid "" +"A subclass of :class:`Path` and :class:`PurePosixPath`, this class " +"represents concrete non-Windows filesystem paths::" +msgstr "" +"Une sous-classe de :class:`Path` et :class:`PurePosixPath`, cette classe " +"représente les chemins concrets de systèmes de fichiers non Windows ::" + +#: ../Doc/library/pathlib.rst:609 +msgid "" +"A subclass of :class:`Path` and :class:`PureWindowsPath`, this class " +"represents concrete Windows filesystem paths::" +msgstr "" +"Une sous-classe de :class:`Path` et :class:`PureWindowsPath`, cette classe " +"représente les chemins concrets de systèmes de fichiers Windows ::" + +#: ../Doc/library/pathlib.rst:617 +msgid "" +"You can only instantiate the class flavour that corresponds to your system " +"(allowing system calls on non-compatible path flavours could lead to bugs or " +"failures in your application)::" +msgstr "" +"Vous ne pouvez instancier la classe de la famille qui correspond à votre " +"système (permettre des appels au système pour des familles de chemins non " +"compatible pourrait mener à des bogues ou à des pannes de votre " +"application) ::" + +#: ../Doc/library/pathlib.rst:637 +msgid "Methods" +msgstr "Méthodes" + +#: ../Doc/library/pathlib.rst:639 +msgid "" +"Concrete paths provide the following methods in addition to pure paths " +"methods. Many of these methods can raise an :exc:`OSError` if a system call " +"fails (for example because the path doesn't exist):" +msgstr "" +"Les chemins concrets fournissent les méthodes suivantes en plus des méthodes " +"des chemins purs. Beaucoup de ces méthodes peuvent lever :exc:`OSError` si " +"un appel au système échoue (par exemple car le chemin n'existe pas) :" + +#: ../Doc/library/pathlib.rst:645 +msgid "" +"Return a new path object representing the current directory (as returned by :" +"func:`os.getcwd`)::" +msgstr "" +"Renvoie un nouveau chemin représentant le dossier courant (comme renvoyé " +"par :func:`os.getcwd`) ::" + +#: ../Doc/library/pathlib.rst:654 +msgid "" +"Return a new path object representing the user's home directory (as returned " +"by :func:`os.path.expanduser` with ``~`` construct)::" +msgstr "" +"Renvoie un nouveau chemin représentant le dossier d’accueil de l'utilisateur " +"(comme renvoyé par :func:`os.path.expanduser` avec la construction ``~`` ) ::" + +#: ../Doc/library/pathlib.rst:665 +msgid "" +"Return information about this path (similarly to :func:`os.stat`). The " +"result is looked up at each call to this method." +msgstr "" +"Renvoie les informations à propos de ce chemin (de manière similaire à :func:" +"`os.stat`). Le résultat est récupéré à chaque appel à cette méthode." + +#: ../Doc/library/pathlib.rst:679 +msgid "Change the file mode and permissions, like :func:`os.chmod`::" +msgstr "" +"Change le mode et les permissions du fichier, comme :func:`os.chmod` ::" + +#: ../Doc/library/pathlib.rst:691 +msgid "Whether the path points to an existing file or directory::" +msgstr "Si le chemin pointe sur un fichier ou dossier existant ::" + +#: ../Doc/library/pathlib.rst:703 +msgid "" +"If the path points to a symlink, :meth:`exists` returns whether the symlink " +"*points to* an existing file or directory." +msgstr "" +"Si le chemin pointe sur un lien symbolique, :meth:`exists` renvoie si le " +"lien symbolique *pointe vers* un fichier ou un dossier existant." + +#: ../Doc/library/pathlib.rst:709 +msgid "" +"Return a new path with expanded ``~`` and ``~user`` constructs, as returned " +"by :meth:`os.path.expanduser`::" +msgstr "" +"Renvoie un nouveau chemin avec les résolutions des constructions ``~`` et " +"``~user``, comme retourné par :meth:`os.path.expanduser` ::" + +#: ../Doc/library/pathlib.rst:721 +msgid "" +"Glob the given relative *pattern* in the directory represented by this path, " +"yielding all matching files (of any kind)::" +msgstr "" +"Globalise le *pattern* relatif fourni dans le dossier représenté par ce " +"chemin, donnant tous les fichiers correspondants (de n'importe quelle " +"sorte) ::" + +#: ../Doc/library/pathlib.rst:729 +msgid "" +"The \"``**``\" pattern means \"this directory and all subdirectories, " +"recursively\". In other words, it enables recursive globbing::" +msgstr "" +"Le motif \"``**``\" signifie que « ce dossier et ses sous-dossiers, " +"récursivement ». En d'autres mots, il active la récursivité de la " +"globalisation ::" + +#: ../Doc/library/pathlib.rst:740 +msgid "" +"Using the \"``**``\" pattern in large directory trees may consume an " +"inordinate amount of time." +msgstr "" +"Utiliser le motif \"``**``\" dans de grandes arborescences de dossier peut " +"consommer une quantité de temps démesurée." + +#: ../Doc/library/pathlib.rst:746 +msgid "" +"Return the name of the group owning the file. :exc:`KeyError` is raised if " +"the file's gid isn't found in the system database." +msgstr "" +"Renvoie le nom du groupe auquel appartient le fichier. :exc:`KeyError` est " +"levée si l'identifiant de groupe du fichier n'est pas trouvé dans la base de " +"données système." + +#: ../Doc/library/pathlib.rst:752 +msgid "" +"Return ``True`` if the path points to a directory (or a symbolic link " +"pointing to a directory), ``False`` if it points to another kind of file." +msgstr "" +"Renvoie ``True`` si le chemin pointe vers un dossier (ou un lien symbolique " +"pointant vers un dossier), ``False`` s'il pointe vers une autre sorte de " +"fichier." + +#: ../Doc/library/pathlib.rst:755 ../Doc/library/pathlib.rst:764 +#: ../Doc/library/pathlib.rst:793 ../Doc/library/pathlib.rst:802 +#: ../Doc/library/pathlib.rst:811 ../Doc/library/pathlib.rst:820 +msgid "" +"``False`` is also returned if the path doesn't exist or is a broken symlink; " +"other errors (such as permission errors) are propagated." +msgstr "" +"``False`` est aussi renvoyé si le chemin n'existe pas ou est un lien " +"symbolique cassé ; d'autres erreurs (telles que les erreurs de permission) " +"sont propagées." + +#: ../Doc/library/pathlib.rst:761 +msgid "" +"Return ``True`` if the path points to a regular file (or a symbolic link " +"pointing to a regular file), ``False`` if it points to another kind of file." +msgstr "" +"Renvoie ``True`` si le chemin pointe vers un fichier normal (ou un lien " +"symbolique pointe vers un fichier normal), ``False`` s'il pointe vers une " +"autre sorte de fichier." + +#: ../Doc/library/pathlib.rst:770 +msgid "" +"Return ``True`` if the path is a :dfn:`mount point`: a point in a file " +"system where a different file system has been mounted. On POSIX, the " +"function checks whether *path*'s parent, :file:`path/..`, is on a different " +"device than *path*, or whether :file:`path/..` and *path* point to the same " +"i-node on the same device --- this should detect mount points for all Unix " +"and POSIX variants. Not implemented on Windows." +msgstr "" +"Renvoie ``True`` si le chemin pointe vers un :dfn:`point de montage` : un " +"point dans le système de fichiers où un système de fichiers différent a été " +"monté. Sous POSIX, la fonction vérifie si le parent de *path*, :file:`path/.." +"`, se trouve sur un autre périphérique que *path*, ou si :file:`path/..` et " +"*path* pointe sur le même *i-node* sur le même périphérique --- ceci devrait " +"détecter tous les points de montage pour toutes les variantes Unix et POSIX. " +"Non implémenté sous Windows." + +#: ../Doc/library/pathlib.rst:782 +msgid "" +"Return ``True`` if the path points to a symbolic link, ``False`` otherwise." +msgstr "" +"Renvoie ``True`` si le chemin pointe sur un lien symbolique, ``False`` sinon." + +#: ../Doc/library/pathlib.rst:784 +msgid "" +"``False`` is also returned if the path doesn't exist; other errors (such as " +"permission errors) are propagated." +msgstr "" +"``False`` est aussi renvoyé si le chemin n'existe pas ; d'autres erreurs " +"(telles que les erreurs de permission) sont propagées." + +#: ../Doc/library/pathlib.rst:790 +msgid "" +"Return ``True`` if the path points to a Unix socket (or a symbolic link " +"pointing to a Unix socket), ``False`` if it points to another kind of file." +msgstr "" +"Renvoie ``True`` si le chemin pointe vers un connecteur Unix (ou un lien " +"symbolique pointant vers un connecteur Unix), ``False`` s'il pointe vers une " +"autre sorte de fichier." + +#: ../Doc/library/pathlib.rst:799 +msgid "" +"Return ``True`` if the path points to a FIFO (or a symbolic link pointing to " +"a FIFO), ``False`` if it points to another kind of file." +msgstr "" +"Renvoie ``True`` si le chemin pointe vers une FIFO (ou un lien symbolique " +"pointant vers une FIFO), ``False`` s'il pointe vers une autre sorte de " +"fichier." + +#: ../Doc/library/pathlib.rst:808 +msgid "" +"Return ``True`` if the path points to a block device (or a symbolic link " +"pointing to a block device), ``False`` if it points to another kind of file." +msgstr "" +"Renvoie ``True`` si le chemin pointe vers un périphérique (ou un lien " +"symbolique pointant vers un périphérique), ``False`` s'il pointe vers une " +"autre sorte de fichier." + +#: ../Doc/library/pathlib.rst:817 +msgid "" +"Return ``True`` if the path points to a character device (or a symbolic link " +"pointing to a character device), ``False`` if it points to another kind of " +"file." +msgstr "" +"Renvoie ``True`` si le chemin pointe vers un périphérique à caractères (ou " +"un lien symbolique pointant vers un périphérique à caractères), ``False`` " +"s'il pointe vers une autre sorte de fichier." + +#: ../Doc/library/pathlib.rst:826 +msgid "" +"When the path points to a directory, yield path objects of the directory " +"contents::" +msgstr "" +"Quand le chemin pointe vers un dossier, donne les chemins du contenu du " +"dossier ::" + +#: ../Doc/library/pathlib.rst:842 +msgid "" +"Like :meth:`Path.chmod` but, if the path points to a symbolic link, the " +"symbolic link's mode is changed rather than its target's." +msgstr "" +"Comme :meth:`Path.chmod`, mais, si le chemin pointe vers un lien symbolique, " +"le mode du lien symbolique est changé plutôt que celui de sa cible." + +#: ../Doc/library/pathlib.rst:848 +msgid "" +"Like :meth:`Path.stat` but, if the path points to a symbolic link, return " +"the symbolic link's information rather than its target's." +msgstr "" +"Comme :meth:`Path.stat`, mais, si le chemin pointe vers un lien symbolique, " +"renvoie les informations du lien symbolique plutôt que celui de sa cible." + +#: ../Doc/library/pathlib.rst:854 +msgid "" +"Create a new directory at this given path. If *mode* is given, it is " +"combined with the process' ``umask`` value to determine the file mode and " +"access flags. If the path already exists, :exc:`FileExistsError` is raised." +msgstr "" +"Créer un nouveau dossier au chemin fourni. Si *mode* est fourni, il est " +"combiné avec la valeur de l'``umask`` du processus pour déterminer le mode " +"de fichier et les droits d'accès. Si le chemin existe déjà, :exc:" +"`FileExistsError` est levée." + +#: ../Doc/library/pathlib.rst:859 +msgid "" +"If *parents* is true, any missing parents of this path are created as " +"needed; they are created with the default permissions without taking *mode* " +"into account (mimicking the POSIX ``mkdir -p`` command)." +msgstr "" +"Si *parents* est vrai, chaque parent de ce chemin est créé si besoin ; ils " +"sont créés avec les permissions par défaut sans prendre en compte *mode* " +"(reproduisant la commande POSIX ``mkdir -p``)." + +#: ../Doc/library/pathlib.rst:863 +msgid "" +"If *parents* is false (the default), a missing parent raises :exc:" +"`FileNotFoundError`." +msgstr "" +"Si *parents* est faux (valeur par défaut), un parent manquant lève :exc:" +"`FileNotFoundError`." + +#: ../Doc/library/pathlib.rst:866 +msgid "" +"If *exist_ok* is false (the default), :exc:`FileExistsError` is raised if " +"the target directory already exists." +msgstr "" +"Si *exist_ok* est faux (valeur par défaut), :exc:`FileExistsError` est levé " +"si le dossier cible existe déjà." + +#: ../Doc/library/pathlib.rst:869 +msgid "" +"If *exist_ok* is true, :exc:`FileExistsError` exceptions will be ignored " +"(same behavior as the POSIX ``mkdir -p`` command), but only if the last path " +"component is not an existing non-directory file." +msgstr "" +"If *exist_ok* est vrai, les exceptions :exc:`FileExistsError` seront " +"ignorées (même comportement que la commande POSIX ``mkdir -p``), mais " +"seulement si le dernier segment de chemin existe et n'est pas un dossier." + +#: ../Doc/library/pathlib.rst:873 +msgid "The *exist_ok* parameter was added." +msgstr "Le paramètre *exist_ok* a été ajouté." + +#: ../Doc/library/pathlib.rst:879 +msgid "" +"Open the file pointed to by the path, like the built-in :func:`open` " +"function does::" +msgstr "" +"Ouvre le fichier pointé par le chemin, comme la fonction native :func:`open` " +"le fait ::" + +#: ../Doc/library/pathlib.rst:891 +msgid "" +"Return the name of the user owning the file. :exc:`KeyError` is raised if " +"the file's uid isn't found in the system database." +msgstr "" +"Renvoie le nom de l'utilisateur auquel appartient le fichier. :exc:" +"`KeyError` est levée si l'identifiant utilisateur du fichier n'est pas " +"trouvé dans la base de données du système." + +#: ../Doc/library/pathlib.rst:897 +msgid "Return the binary contents of the pointed-to file as a bytes object::" +msgstr "Renvoie le contenu binaire du fichier pointé en tant que bytes ::" + +#: ../Doc/library/pathlib.rst:910 +msgid "Return the decoded contents of the pointed-to file as a string::" +msgstr "" +"Renvoie le contenu décodé du fichier pointé en tant que chaîne de " +"caractères ::" + +#: ../Doc/library/pathlib.rst:918 +msgid "" +"The file is opened and then closed. The optional parameters have the same " +"meaning as in :func:`open`." +msgstr "" +"Le fichier est ouvert, puis fermé. Les paramètres optionnels ont la même " +"signification que dans :func:`open`." + +#: ../Doc/library/pathlib.rst:926 +msgid "" +"Rename this file or directory to the given *target*. On Unix, if *target* " +"exists and is a file, it will be replaced silently if the user has " +"permission. *target* can be either a string or another path object::" +msgstr "" +"Renomme ce fichier ou dossier vers la cible *target* fournie. Sur Unix, si " +"*target* existe et que c'est un fichier, il sera remplacé silencieusement si " +"l'utilisateur a la permission. *target* peut être soit une chaîne de " +"caractères, soit un autre chemin ::" + +#: ../Doc/library/pathlib.rst:941 +msgid "" +"Rename this file or directory to the given *target*. If *target* points to " +"an existing file or directory, it will be unconditionally replaced." +msgstr "" +"Renomme ce fichier ou dossier vers la cible *target* fournie. Si *target* " +"pointe sur un fichier ou un dossier existant, il sera remplacé de manière " +"inconditionnelle." + +#: ../Doc/library/pathlib.rst:947 +msgid "" +"Make the path absolute, resolving any symlinks. A new path object is " +"returned::" +msgstr "" +"Rend le chemin absolu, résolvant les liens symboliques. Un nouveau chemin " +"est renvoyé ::" + +#: ../Doc/library/pathlib.rst:956 +msgid "" +"\"``..``\" components are also eliminated (this is the only method to do " +"so)::" +msgstr "" +"Les composantes \"``..``\" sont aussi éliminées (c'est la seule méthode pour " +"le faire) ::" + +#: ../Doc/library/pathlib.rst:962 +msgid "" +"If the path doesn't exist and *strict* is ``True``, :exc:`FileNotFoundError` " +"is raised. If *strict* is ``False``, the path is resolved as far as " +"possible and any remainder is appended without checking whether it exists. " +"If an infinite loop is encountered along the resolution path, :exc:" +"`RuntimeError` is raised." +msgstr "" +"Si le chemin n'existe pas et que *strict* est ``True``, :exc:" +"`FileNotFoundError` est levée. Si *strict* est ``False``, le chemin est " +"résolu aussi loin que possible et le reste potentiel est ajouté à la fin " +"sans vérifier s'il existe. Si une boucle infinie est rencontrée lors de la " +"résolution du chemin, :exc:`RuntimeError` est levée." + +#: ../Doc/library/pathlib.rst:968 +msgid "The *strict* argument (pre-3.6 behavior is strict)." +msgstr "L'argument *strict* (le comportement *pré-3.6* est strict)." + +#: ../Doc/library/pathlib.rst:973 +msgid "" +"This is like calling :func:`Path.glob` with \"``**/``\" added in front of " +"the given relative *pattern*::" +msgstr "" +"C'est similaire à appeler :func:`Path.glob` avec \"``**/``\" ajouté au début " +"du *pattern* relatif ::" + +#: ../Doc/library/pathlib.rst:986 +msgid "Remove this directory. The directory must be empty." +msgstr "Supprime ce dossier. Le dossier doit être vide." + +#: ../Doc/library/pathlib.rst:991 +msgid "" +"Return whether this path points to the same file as *other_path*, which can " +"be either a Path object, or a string. The semantics are similar to :func:" +"`os.path.samefile` and :func:`os.path.samestat`." +msgstr "" +"Renvoie si ce chemin pointe vers le même fichier que *other_path*, qui peut " +"être soit un chemin, soit une chaîne de caractères. La sémantique est " +"similaire à :func:`os.path.samefile` et :func:`os.path.samestat`." + +#: ../Doc/library/pathlib.rst:995 +msgid "" +"An :exc:`OSError` can be raised if either file cannot be accessed for some " +"reason." +msgstr "" +":exc:`OSError` peut être levée si l'un des fichiers ne peut être accédé pour " +"quelque raison." + +#: ../Doc/library/pathlib.rst:1012 +msgid "" +"Make this path a symbolic link to *target*. Under Windows, " +"*target_is_directory* must be true (default ``False``) if the link's target " +"is a directory. Under POSIX, *target_is_directory*'s value is ignored." +msgstr "" +"Fait de ce chemin un lien symbolique vers *target*. Sous Windows, " +"*target_is_directory* doit être vrai (la valeur par défaut étant ``False``) " +"si la cible du lien est un dossier. Sous POSIX, la valeur de " +"*target_is_directory* est ignorée." + +#: ../Doc/library/pathlib.rst:1028 +msgid "" +"The order of arguments (link, target) is the reverse of :func:`os.symlink`'s." +msgstr "" +"L'ordre des arguments (lien, cible) est l'opposé de ceux de :func:`os." +"symlink`." + +#: ../Doc/library/pathlib.rst:1034 +msgid "" +"Create a file at this given path. If *mode* is given, it is combined with " +"the process' ``umask`` value to determine the file mode and access flags. " +"If the file already exists, the function succeeds if *exist_ok* is true (and " +"its modification time is updated to the current time), otherwise :exc:" +"`FileExistsError` is raised." +msgstr "" +"Créer un fichier au chemin donné. Si *mode* est fourni, il est combiné avec " +"la valeur de l'``umask`` du processus pour déterminer le mode du fichier et " +"les drapeaux d'accès. Si le fichier existe déjà, la fonction réussit si " +"*exist_ok* est vrai (et si l'heure de modification est mise à jour avec " +"l'heure courante), sinon :exc:`FileExistsError` est levée." + +#: ../Doc/library/pathlib.rst:1043 +msgid "" +"Remove this file or symbolic link. If the path points to a directory, use :" +"func:`Path.rmdir` instead." +msgstr "" +"Supprime ce fichier ou lien symbolique. Si le chemin pointe vers un dossier, " +"utilisez :func:`Path.rmdir` à la place." + +#: ../Doc/library/pathlib.rst:1049 +msgid "" +"Open the file pointed to in bytes mode, write *data* to it, and close the " +"file::" +msgstr "" +"Ouvre le fichier pointé en mode binaire, écrit *data* dedans, et ferme le " +"fichier ::" + +#: ../Doc/library/pathlib.rst:1058 +msgid "An existing file of the same name is overwritten." +msgstr "Le fichier du même nom, s'il existe, est écrasé." + +#: ../Doc/library/pathlib.rst:1065 +msgid "" +"Open the file pointed to in text mode, write *data* to it, and close the " +"file::" +msgstr "" +"Ouvre le fichier pointé en mode texte, écrit *data* dedans, et ferme le " +"fichier ::" + +#: ../Doc/library/pathlib.rst:1077 +msgid "Correspondence to tools in the :mod:`os` module" +msgstr "Correspondance des outils du module :mod:`os`" + +#: ../Doc/library/pathlib.rst:1079 +msgid "" +"Below is a table mapping various :mod:`os` functions to their corresponding :" +"class:`PurePath`/:class:`Path` equivalent." +msgstr "" +"Ci-dessous se trouve un tableau associant diverses fonctions :mod:`os` à " +"leur équivalent :class:`PurePath` / :class:`Path` correspondant." + +#: ../Doc/library/pathlib.rst:1084 +msgid "" +"Although :func:`os.path.relpath` and :meth:`PurePath.relative_to` have some " +"overlapping use-cases, their semantics differ enough to warrant not " +"considering them equivalent." +msgstr "" +"Bien que :func:`os.path.relpath` et :meth:`PurePath.relative_to` aient des " +"cas d'utilisation qui se chevauchent, leur sémantique diffère suffisamment " +"pour ne pas les considérer comme équivalentes." + +#: ../Doc/library/pathlib.rst:1089 +msgid "os and os.path" +msgstr "*os* et *os.path*" + +#: ../Doc/library/pathlib.rst:1089 +msgid "pathlib" +msgstr "pathlib" + +#: ../Doc/library/pathlib.rst:1091 +msgid ":func:`os.path.abspath`" +msgstr ":func:`os.path.abspath`" + +#: ../Doc/library/pathlib.rst:1091 +msgid ":meth:`Path.resolve`" +msgstr ":meth:`Path.resolve`" + +#: ../Doc/library/pathlib.rst:1092 +msgid ":func:`os.chmod`" +msgstr ":func:`os.chmod`" + +#: ../Doc/library/pathlib.rst:1092 +msgid ":meth:`Path.chmod`" +msgstr ":meth:`Path.chmod`" + +#: ../Doc/library/pathlib.rst:1093 +msgid ":func:`os.mkdir`" +msgstr ":func:`os.mkdir`" + +#: ../Doc/library/pathlib.rst:1093 +msgid ":meth:`Path.mkdir`" +msgstr ":meth:`Path.mkdir`" + +#: ../Doc/library/pathlib.rst:1094 +msgid ":func:`os.rename`" +msgstr ":func:`os.rename`" + +#: ../Doc/library/pathlib.rst:1094 +msgid ":meth:`Path.rename`" +msgstr ":meth:`Path.rename`" + +#: ../Doc/library/pathlib.rst:1095 +msgid ":func:`os.replace`" +msgstr ":func:`os.replace`" + +#: ../Doc/library/pathlib.rst:1095 +msgid ":meth:`Path.replace`" +msgstr ":meth:`Path.replace`" + +#: ../Doc/library/pathlib.rst:1096 +msgid ":func:`os.rmdir`" +msgstr ":func:`os.rmdir`" + +#: ../Doc/library/pathlib.rst:1096 +msgid ":meth:`Path.rmdir`" +msgstr ":meth:`Path.rmdir`" + +#: ../Doc/library/pathlib.rst:1097 +msgid ":func:`os.remove`, :func:`os.unlink`" +msgstr ":func:`os.remove`, :func:`os.unlink`" + +#: ../Doc/library/pathlib.rst:1097 +msgid ":meth:`Path.unlink`" +msgstr ":meth:`Path.unlink`" + +#: ../Doc/library/pathlib.rst:1098 +msgid ":func:`os.getcwd`" +msgstr ":func:`os.getcwd`" + +#: ../Doc/library/pathlib.rst:1098 +msgid ":func:`Path.cwd`" +msgstr ":func:`Path.cwd`" + +#: ../Doc/library/pathlib.rst:1099 +msgid ":func:`os.path.exists`" +msgstr ":func:`os.path.exists`" + +#: ../Doc/library/pathlib.rst:1099 +msgid ":meth:`Path.exists`" +msgstr ":meth:`Path.exists`" + +#: ../Doc/library/pathlib.rst:1100 +msgid ":func:`os.path.expanduser`" +msgstr ":func:`os.path.expanduser`" + +#: ../Doc/library/pathlib.rst:1100 +msgid ":meth:`Path.expanduser` and :meth:`Path.home`" +msgstr ":meth:`Path.expanduser` et :meth:`Path.home`" + +#: ../Doc/library/pathlib.rst:1102 +msgid ":func:`os.path.isdir`" +msgstr ":func:`os.path.isdir`" + +#: ../Doc/library/pathlib.rst:1102 +msgid ":meth:`Path.is_dir`" +msgstr ":meth:`Path.is_dir`" + +#: ../Doc/library/pathlib.rst:1103 +msgid ":func:`os.path.isfile`" +msgstr ":func:`os.path.isfile`" + +#: ../Doc/library/pathlib.rst:1103 +msgid ":meth:`Path.is_file`" +msgstr ":meth:`Path.is_file`" + +#: ../Doc/library/pathlib.rst:1104 +msgid ":func:`os.path.islink`" +msgstr ":func:`os.path.islink`" + +#: ../Doc/library/pathlib.rst:1104 +msgid ":meth:`Path.is_symlink`" +msgstr ":meth:`Path.is_symlink`" + +#: ../Doc/library/pathlib.rst:1105 +msgid ":func:`os.stat`" +msgstr ":func:`os.stat`" + +#: ../Doc/library/pathlib.rst:1105 +msgid ":meth:`Path.stat`, :meth:`Path.owner`, :meth:`Path.group`" +msgstr ":meth:`Path.stat`, :meth:`Path.owner`, :meth:`Path.group`" + +#: ../Doc/library/pathlib.rst:1108 +msgid ":func:`os.path.isabs`" +msgstr ":func:`os.path.isabs`" + +#: ../Doc/library/pathlib.rst:1108 +msgid ":meth:`PurePath.is_absolute`" +msgstr ":meth:`PurePath.is_absolute`" + +#: ../Doc/library/pathlib.rst:1109 +msgid ":func:`os.path.join`" +msgstr ":func:`os.path.join`" + +#: ../Doc/library/pathlib.rst:1109 +msgid ":func:`PurePath.joinpath`" +msgstr ":func:`PurePath.joinpath`" + +#: ../Doc/library/pathlib.rst:1110 +msgid ":func:`os.path.basename`" +msgstr ":func:`os.path.basename`" + +#: ../Doc/library/pathlib.rst:1110 +msgid ":data:`PurePath.name`" +msgstr ":data:`PurePath.name`" + +#: ../Doc/library/pathlib.rst:1111 +msgid ":func:`os.path.dirname`" +msgstr ":func:`os.path.dirname`" + +#: ../Doc/library/pathlib.rst:1111 +msgid ":data:`PurePath.parent`" +msgstr ":data:`PurePath.parent`" + +#: ../Doc/library/pathlib.rst:1112 +msgid ":func:`os.path.samefile`" +msgstr ":func:`os.path.samefile`" + +#: ../Doc/library/pathlib.rst:1112 +msgid ":meth:`Path.samefile`" +msgstr ":meth:`Path.samefile`" + +#: ../Doc/library/pathlib.rst:1113 +msgid ":func:`os.path.splitext`" +msgstr ":func:`os.path.splitext`" + +#: ../Doc/library/pathlib.rst:1113 +msgid ":data:`PurePath.suffix`" +msgstr ":data:`PurePath.suffix`" diff --git a/library/pdb.po b/library/pdb.po new file mode 100644 index 000000000..502b1d369 --- /dev/null +++ b/library/pdb.po @@ -0,0 +1,879 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-06-08 15:18+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/pdb.rst:4 +msgid ":mod:`pdb` --- The Python Debugger" +msgstr ":mod:`pdb` — Le débogueur Python" + +#: ../Doc/library/pdb.rst:9 +msgid "**Source code:** :source:`Lib/pdb.py`" +msgstr "**Code source :** :source:`Lib/pdb.py`" + +#: ../Doc/library/pdb.rst:15 +msgid "" +"The module :mod:`pdb` defines an interactive source code debugger for Python " +"programs. It supports setting (conditional) breakpoints and single stepping " +"at the source line level, inspection of stack frames, source code listing, " +"and evaluation of arbitrary Python code in the context of any stack frame. " +"It also supports post-mortem debugging and can be called under program " +"control." +msgstr "" +"Le module :mod:`pdb` définit un débogueur de code source interactif pour les " +"programmes Python. Il supporte le paramétrage (conditionnel) de points " +"d'arrêt et l'exécution du code source ligne par ligne, l'inspection des " +"*frames* de la pile, la liste du code source, et l'évaluation arbitraire de " +"code Python dans le contexte de n'importe quelle *frame* de la pile. Il " +"supporte aussi le débogage post-mortem et peut être contrôlé depuis un " +"programme." + +#: ../Doc/library/pdb.rst:26 +msgid "" +"The debugger is extensible -- it is actually defined as the class :class:" +"`Pdb`. This is currently undocumented but easily understood by reading the " +"source. The extension interface uses the modules :mod:`bdb` and :mod:`cmd`." +msgstr "" +"Le débogueur est extensible -- Il est en réalité défini comme la classe :" +"class:`Pdb`. C'est actuellement non-documenté mais facilement compréhensible " +"en lisant le code source. L'interface d'extension utilise les modules :mod:" +"`bdb` et :mod:`cmd`." + +#: ../Doc/library/pdb.rst:30 +msgid "" +"The debugger's prompt is ``(Pdb)``. Typical usage to run a program under " +"control of the debugger is::" +msgstr "" +"L'invite du débogueur est ``(Pdb)``. L'usage typique pour exécuter un " +"programme sous le contrôle du débogueur est ::" + +#: ../Doc/library/pdb.rst:44 +msgid "" +"Tab-completion via the :mod:`readline` module is available for commands and " +"command arguments, e.g. the current global and local names are offered as " +"arguments of the ``p`` command." +msgstr "" +"La complétion via le module :mod:`readline' est disponible pour les " +"commandes et les arguments de commande, par exemple les noms *global* et " +"*local* sont proposés comme arguments de la commande ``p``." + +#: ../Doc/library/pdb.rst:49 +msgid "" +":file:`pdb.py` can also be invoked as a script to debug other scripts. For " +"example::" +msgstr "" +"Le fichier :file:`pdb.py` peut aussi être invoqué comme un script pour " +"déboguer d'autres scripts. Par exemple ::" + +#: ../Doc/library/pdb.rst:54 +msgid "" +"When invoked as a script, pdb will automatically enter post-mortem debugging " +"if the program being debugged exits abnormally. After post-mortem debugging " +"(or after normal exit of the program), pdb will restart the program. " +"Automatic restarting preserves pdb's state (such as breakpoints) and in most " +"cases is more useful than quitting the debugger upon program's exit." +msgstr "" +"Si le programme débogué se termine anormalement, *pdb* entrera en débogage " +"post-mortem. Après le débogage post-mortem (ou après une sortie normale du " +"programme), *pdb* redémarrera le programme. Le redémarrage automatique " +"préserve l'état de *pdb* (tels que les points d'arrêt) et dans la plupart " +"des cas est plus utile que de quitter le débogueur à la sortie du programme." + +#: ../Doc/library/pdb.rst:60 +msgid "" +":file:`pdb.py` now accepts a ``-c`` option that executes commands as if " +"given in a :file:`.pdbrc` file, see :ref:`debugger-commands`." +msgstr "" +"Le fichier :file:`pdb.py` accepte maintenant une option ``-c`` qui exécute " +"les commandes comme si elles provenaient d'un fichier :file:`.pdbrc`, voir :" +"ref:`debugger-commands`." + +#: ../Doc/library/pdb.rst:64 +msgid "" +":file:`pdb.py` now accepts a ``-m`` option that execute modules similar to " +"the way ``python3 -m`` does. As with a script, the debugger will pause " +"execution just before the first line of the module." +msgstr "" +":file:`pdb.py` accepte maintenant une option ``-m`` qui déclenche " +"l’exécution de modules de la même façon que ``python3 -m``. De la même " +"manière que dans un script, le débogueur va mettre en pause l’exécution " +"juste avant la première ligne du module." + +#: ../Doc/library/pdb.rst:70 +msgid "" +"The typical usage to break into the debugger from a running program is to " +"insert ::" +msgstr "" +"L'usage typique pour forcer le débogueur depuis un programme s'exécutant est " +"d'insérer ::" + +#: ../Doc/library/pdb.rst:75 +msgid "" +"at the location you want to break into the debugger. You can then step " +"through the code following this statement, and continue running without the " +"debugger using the :pdbcmd:`continue` command." +msgstr "" +"à l'endroit où vous voulez pénétrer dans le débogueur. Vous pouvez alors " +"parcourir le code suivant cette instruction, et continuer à exécuter sans le " +"débogueur en utilisant la commande :pdbcmd:`continue`." + +#: ../Doc/library/pdb.rst:79 +msgid "" +"The built-in :func:`breakpoint()`, when called with defaults, can be used " +"instead of ``import pdb; pdb.set_trace()``." +msgstr "" +"La fonction standard :func:`breakpoint()`, quand elle est appelée avec les " +"valeurs par défaut, peut être utilisée en lieu et place de ``import pdb; pdb." +"set_trace()``." + +#: ../Doc/library/pdb.rst:83 +msgid "The typical usage to inspect a crashed program is::" +msgstr "L'usage typique pour inspecter un programme planté ::" + +#: ../Doc/library/pdb.rst:101 +msgid "" +"The module defines the following functions; each enters the debugger in a " +"slightly different way:" +msgstr "" +"Le module définit les fonctions suivantes; chacune entre dans le débogueur " +"d'une manière légèrement différente:" + +#: ../Doc/library/pdb.rst:106 +msgid "" +"Execute the *statement* (given as a string or a code object) under debugger " +"control. The debugger prompt appears before any code is executed; you can " +"set breakpoints and type :pdbcmd:`continue`, or you can step through the " +"statement using :pdbcmd:`step` or :pdbcmd:`next` (all these commands are " +"explained below). The optional *globals* and *locals* arguments specify the " +"environment in which the code is executed; by default the dictionary of the " +"module :mod:`__main__` is used. (See the explanation of the built-in :func:" +"`exec` or :func:`eval` functions.)" +msgstr "" +"Exécute la *déclaration* (donnée sous forme de chaîne de caractères ou " +"d'objet code) sous le contrôle du débogueur. L'invite de débogage apparaît " +"avant l'exécution de tout code; vous pouvez définir des points d'arrêt et " +"taper :pdbcmd:`continue`, ou vous pouvez passer à travers l'instruction en " +"utilisant :pdbcmd:`step` ou :pdbcmd:`next` (toutes ces commandes sont " +"expliquées ci-dessous). Les arguments *globals* et *locals* optionnels " +"spécifient l'environnement dans lequel le code est exécuté; par défaut le " +"dictionnaire du module :mod:`__main__` est utilisé. (Voir l'explication des " +"fonctions natives :func:`exec` ou :func:`eval`.)" + +#: ../Doc/library/pdb.rst:118 +msgid "" +"Evaluate the *expression* (given as a string or a code object) under " +"debugger control. When :func:`runeval` returns, it returns the value of the " +"expression. Otherwise this function is similar to :func:`run`." +msgstr "" +"Évalue l'*expression* (donné comme une chaine de caractères ou un code " +"objet) sous le contrôle du débogueur. Quand la fonction :func:`runeval` " +"retourne, elle renvoie la valeur de l'expression. Autrement cette fonction " +"est similaire à la fonction :func:`run`." + +#: ../Doc/library/pdb.rst:125 +msgid "" +"Call the *function* (a function or method object, not a string) with the " +"given arguments. When :func:`runcall` returns, it returns whatever the " +"function call returned. The debugger prompt appears as soon as the function " +"is entered." +msgstr "" +"Appelle la *function* (une fonction ou une méthode, pas une chaine de " +"caractères) avec les arguments donnés. Quand :func:`runcall` revient, il " +"retourne ce que l'appel de fonctionne a renvoyé. L'invite de débogage " +"apparaît dès que la fonction est entrée." + +#: ../Doc/library/pdb.rst:133 +msgid "" +"Enter the debugger at the calling stack frame. This is useful to hard-code " +"a breakpoint at a given point in a program, even if the code is not " +"otherwise being debugged (e.g. when an assertion fails). If given, *header* " +"is printed to the console just before debugging begins." +msgstr "" +"Invoque le débogueur dans la cadre d'exécution appelant. C'est utile pour " +"coder en dur un point d'arrêt dans un programme, même si le code n'est pas " +"autrement débogué (par exemple, quand une assertion échoue). S'il est donné, " +"*header* est affiché sur la console juste avant que le débogage commence." + +#: ../Doc/library/pdb.rst:138 +msgid "The keyword-only argument *header*." +msgstr "L’argument *keyword-only* *header*." + +#: ../Doc/library/pdb.rst:144 +msgid "" +"Enter post-mortem debugging of the given *traceback* object. If no " +"*traceback* is given, it uses the one of the exception that is currently " +"being handled (an exception must be being handled if the default is to be " +"used)." +msgstr "" +"Entre le débogage post-mortem de l'objet *traceback* donné. Si aucun " +"*traceback* n'est donné, il utilise celui de l'exception en cours de " +"traitement (une exception doit être gérée si la valeur par défaut doit être " +"utilisée)." + +#: ../Doc/library/pdb.rst:152 +msgid "" +"Enter post-mortem debugging of the traceback found in :data:`sys." +"last_traceback`." +msgstr "" +"Entre le débogage post-mortem de la trace trouvé dans :data:`sys. " +"last_traceback`." + +#: ../Doc/library/pdb.rst:156 +msgid "" +"The ``run*`` functions and :func:`set_trace` are aliases for instantiating " +"the :class:`Pdb` class and calling the method of the same name. If you want " +"to access further features, you have to do this yourself:" +msgstr "" +"Les fonctions ``run*`` et :func:`set_trace` sont des alias pour instancier " +"la classe :class:`Pdb` et appeler la méthode du même nom. Si vous souhaitez " +"accéder à d'autres fonctionnalités, vous devez le faire vous-même ::" + +#: ../Doc/library/pdb.rst:163 +msgid ":class:`Pdb` is the debugger class." +msgstr "Le classe du débogueur est la classe :class:`Pdb`." + +#: ../Doc/library/pdb.rst:165 +msgid "" +"The *completekey*, *stdin* and *stdout* arguments are passed to the " +"underlying :class:`cmd.Cmd` class; see the description there." +msgstr "" +"Les arguments *completekey*, *stdin* et *stdout* sont transmis à la classe " +"sous-jacente :class:`cmd.Cmd`; voir la description ici." + +#: ../Doc/library/pdb.rst:168 +msgid "" +"The *skip* argument, if given, must be an iterable of glob-style module name " +"patterns. The debugger will not step into frames that originate in a module " +"that matches one of these patterns. [1]_" +msgstr "" +"L'argument *skip*, s'il est donné, doit être un itérable des noms de modules " +"de style *glob*. Le débogueur n'entrera pas dans les *frames* qui " +"proviennent d'un module qui correspond à l'un de ces motifs. [1]_" + +#: ../Doc/library/pdb.rst:172 +msgid "" +"By default, Pdb sets a handler for the SIGINT signal (which is sent when the " +"user presses :kbd:`Ctrl-C` on the console) when you give a ``continue`` " +"command. This allows you to break into the debugger again by pressing :kbd:" +"`Ctrl-C`. If you want Pdb not to touch the SIGINT handler, set *nosigint* " +"to true." +msgstr "" +"Par défaut, Pdb définit un gestionnaire pour le signal SIGINT (qui est " +"envoyé lorsque l'utilisateur appuie sur :kbd:`Ctrl-C` sur la console) " +"lorsque vous donnez une commande ``continue``. Ceci vous permet de pénétrer " +"à nouveau dans le débogueur en appuyant sur :kbd:`Ctrl-C`. Si vous voulez " +"que Pdb ne touche pas le gestionnaire SIGINT, assignez *nosigint* à *True*." + +#: ../Doc/library/pdb.rst:177 +msgid "" +"The *readrc* argument defaults to true and controls whether Pdb will load ." +"pdbrc files from the filesystem." +msgstr "" +"L'argument *readrc* vaut *True* par défaut et contrôle si Pdb chargera les " +"fichiers *.pdbrc* depuis le système de fichiers." + +#: ../Doc/library/pdb.rst:180 +msgid "Example call to enable tracing with *skip*::" +msgstr "Exemple d'appel pour activer le traçage avec *skip* ::" + +#: ../Doc/library/pdb.rst:184 +msgid "The *skip* argument." +msgstr "L'argument *skip*." + +#: ../Doc/library/pdb.rst:187 +msgid "" +"The *nosigint* argument. Previously, a SIGINT handler was never set by Pdb." +msgstr "" +"L'argument *nosigint*. Auparavant, un gestionnaire SIGINT n'était jamais " +"configuré par Pdb." + +#: ../Doc/library/pdb.rst:191 +msgid "The *readrc* argument." +msgstr "L'argument *readrc*." + +#: ../Doc/library/pdb.rst:199 +msgid "See the documentation for the functions explained above." +msgstr "Voir la documentation pour les fonctions expliquées ci-dessus." + +#: ../Doc/library/pdb.rst:205 +msgid "Debugger Commands" +msgstr "Commande du débogueur" + +#: ../Doc/library/pdb.rst:207 +msgid "" +"The commands recognized by the debugger are listed below. Most commands can " +"be abbreviated to one or two letters as indicated; e.g. ``h(elp)`` means " +"that either ``h`` or ``help`` can be used to enter the help command (but not " +"``he`` or ``hel``, nor ``H`` or ``Help`` or ``HELP``). Arguments to " +"commands must be separated by whitespace (spaces or tabs). Optional " +"arguments are enclosed in square brackets (``[]``) in the command syntax; " +"the square brackets must not be typed. Alternatives in the command syntax " +"are separated by a vertical bar (``|``)." +msgstr "" +"Les commandes reconnues par le débogueur sont listées. La plupart des " +"commandes peuvent être abrégées à une ou deux lettres comme indiquées; par " +"exemple. ``h(elp)`` signifie que soit ``h`` ou ``help`` peut être utilisée " +"pour entrer la commande *help* (mais pas ``he`` or ``hel``, ni ``H`` ou " +"``HELP``). Les arguments des commandes doivent être séparées par des espaces " +"(espaces ou tabulations). Les arguments optionnels sont entourés dans des " +"crochets (``[]``) dans la syntaxe de la commande; les crochets ne doivent " +"pas être insérés. Les alternatives dans la syntaxe de la commande sont " +"séparés par une barre verticale (``|``)." + +#: ../Doc/library/pdb.rst:216 +msgid "" +"Entering a blank line repeats the last command entered. Exception: if the " +"last command was a :pdbcmd:`list` command, the next 11 lines are listed." +msgstr "" +"Entrer une ligne vide répète la dernière commande entrée. Exception: si la " +"dernière commande était la commande :pdbcmd:`list`, les 11 prochaines lignes " +"sont affichées." + +#: ../Doc/library/pdb.rst:219 +msgid "" +"Commands that the debugger doesn't recognize are assumed to be Python " +"statements and are executed in the context of the program being debugged. " +"Python statements can also be prefixed with an exclamation point (``!``). " +"This is a powerful way to inspect the program being debugged; it is even " +"possible to change a variable or call a function. When an exception occurs " +"in such a statement, the exception name is printed but the debugger's state " +"is not changed." +msgstr "" +"Les commandes que le débogueur ne reconnaît pas sont supposées être des " +"instructions Python et sont exécutées dans le contexte du programme en cours " +"de débogage. Les instructions Python peuvent également être préfixées avec " +"un point d'exclamation (``!``). C'est une façon puissante d'inspecter le " +"programme en cours de débogage; il est même possible de changer une variable " +"ou d'appeler une fonction. Lorsqu'une exception se produit dans une telle " +"instruction, le nom de l'exception est affiché mais l'état du débogueur " +"n'est pas modifié." + +#: ../Doc/library/pdb.rst:227 +msgid "" +"The debugger supports :ref:`aliases `. Aliases can have " +"parameters which allows one a certain level of adaptability to the context " +"under examination." +msgstr "" +"Le débogueur supporte :ref:`aliases `. Les alias peuvent " +"avoir des paramètres qui permettent un certain niveau d'adaptabilité au " +"contexte étudié." + +#: ../Doc/library/pdb.rst:231 +msgid "" +"Multiple commands may be entered on a single line, separated by ``;;``. (A " +"single ``;`` is not used as it is the separator for multiple commands in a " +"line that is passed to the Python parser.) No intelligence is applied to " +"separating the commands; the input is split at the first ``;;`` pair, even " +"if it is in the middle of a quoted string." +msgstr "" +"Plusieurs commandes peuvent être saisies sur une seule ligne, séparées par " +"``;;``. (Un seul ``;`` n'est pas utilisé car il est le séparateur de " +"plusieurs commandes dans une ligne qui est passée à l'analyseur Python. " +"Aucune intelligence n'est appliquée pour séparer les commandes; l'entrée est " +"divisée à la première paire de ``;;`` paire, même si il est au milieu d'une " +"chaîne de caractères." + +#: ../Doc/library/pdb.rst:241 +msgid "" +"If a file :file:`.pdbrc` exists in the user's home directory or in the " +"current directory, it is read in and executed as if it had been typed at the " +"debugger prompt. This is particularly useful for aliases. If both files " +"exist, the one in the home directory is read first and aliases defined there " +"can be overridden by the local file." +msgstr "" +"Si un fichier :file:`.pdbrc` existe dans le répertoire d'accueil de " +"l'utilisateur ou dans le répertoire courant, il est lu et exécuté comme si " +"il avait été écrit dans l'invite du débogueur. C'est particulièrement utile " +"pour les alias. Si les deux fichiers existent, celui dans le répertoire " +"d’accueil de l’utilisateur est lu en premier et les alias définis dedans " +"peuvent être surchargés par le fichier local." + +#: ../Doc/library/pdb.rst:247 +msgid "" +":file:`.pdbrc` can now contain commands that continue debugging, such as :" +"pdbcmd:`continue` or :pdbcmd:`next`. Previously, these commands had no " +"effect." +msgstr "" +"Le fichier :file:`.pdbrc` peut maintenant contenir des commandes qui " +"continue le débogage, comme :pdbcmd:`continue` ou :pdbcmd:`next`. " +"Précédemment, ces commandes n'avaient aucun effet." + +#: ../Doc/library/pdb.rst:255 +msgid "" +"Without argument, print the list of available commands. With a *command* as " +"argument, print help about that command. ``help pdb`` displays the full " +"documentation (the docstring of the :mod:`pdb` module). Since the *command* " +"argument must be an identifier, ``help exec`` must be entered to get help on " +"the ``!`` command." +msgstr "" +"Sans argument, affiche la liste des commandes disponibles. Avec une " +"*commande* comme argument, affiche l'aide de cette commande. ``help pdb`` " +"affiche la documentation complète (la *docstring* du module :mod:`pdb`). " +"Puisque l'argument *command* doit être un identificateur, ``help exec`` doit " +"être entré pour obtenir de l'aide sur la commande ``!``." + +#: ../Doc/library/pdb.rst:263 +msgid "" +"Print a stack trace, with the most recent frame at the bottom. An arrow " +"indicates the current frame, which determines the context of most commands." +msgstr "" +"Affiche une trace de pile, avec la *frame* le plus récent en bas. Une flèche " +"indique le *frame* courant, qui détermine le contexte de la plupart des " +"commandes." + +#: ../Doc/library/pdb.rst:268 +msgid "" +"Move the current frame *count* (default one) levels down in the stack trace " +"(to a newer frame)." +msgstr "" +"Déplace le niveau de la *frame* courante *count* (par défaut un) vers le bas " +"dans la trace de pile (vers une *frame* plus récente)." + +#: ../Doc/library/pdb.rst:273 +msgid "" +"Move the current frame *count* (default one) levels up in the stack trace " +"(to an older frame)." +msgstr "" +"Déplace le niveau de la *frame* courante *count* (par défaut un) vers le " +"haut dans la trace de pile (vers une *frame* plus ancienne)." + +#: ../Doc/library/pdb.rst:278 +msgid "" +"With a *lineno* argument, set a break there in the current file. With a " +"*function* argument, set a break at the first executable statement within " +"that function. The line number may be prefixed with a filename and a colon, " +"to specify a breakpoint in another file (probably one that hasn't been " +"loaded yet). The file is searched on :data:`sys.path`. Note that each " +"breakpoint is assigned a number to which all the other breakpoint commands " +"refer." +msgstr "" +"Avec un argument *lineno*, définit une pause dans le fichier courant. Avec " +"un argument *function*, définit une pause à la première instruction " +"exécutable dans cette fonction. Le numéro de ligne peut être préfixé d'un " +"nom de fichier et d'un deux-points, pour spécifier un point d'arrêt dans un " +"autre fichier (probablement celui qui n'a pas encore été chargé). Le fichier " +"est recherché sur :data:`sys.path`. Notez que chaque point d'arrêt reçoit un " +"numéro auquel se réfèrent toutes les autres commandes de point d'arrêt." + +#: ../Doc/library/pdb.rst:285 +msgid "" +"If a second argument is present, it is an expression which must evaluate to " +"true before the breakpoint is honored." +msgstr "" +"Si un second argument est présent, c'est une expression qui doit évaluer à " +"*True* avant que le point d'arrêt ne soit honoré." + +#: ../Doc/library/pdb.rst:288 +msgid "" +"Without argument, list all breaks, including for each breakpoint, the number " +"of times that breakpoint has been hit, the current ignore count, and the " +"associated condition if any." +msgstr "" +"Sans argument, liste tous les arrêts, incluant pour chaque point d'arrêt, le " +"nombre de fois qu'un point d'arrêt a été atteint, le nombre de ignore, et la " +"condition associée le cas échéant." + +#: ../Doc/library/pdb.rst:294 +msgid "" +"Temporary breakpoint, which is removed automatically when it is first hit. " +"The arguments are the same as for :pdbcmd:`break`." +msgstr "" +"Point d'arrêt temporaire, qui est enlevé automatiquement au premier passage. " +"Les arguments sont les mêmes que pour :pdbcmd:`break`." + +#: ../Doc/library/pdb.rst:299 +msgid "" +"With a *filename:lineno* argument, clear all the breakpoints at this line. " +"With a space separated list of breakpoint numbers, clear those breakpoints. " +"Without argument, clear all breaks (but first ask confirmation)." +msgstr "" +"Avec un argument *filename:lineno*, efface tous les points d'arrêt sur cette " +"ligne. Avec une liste de numéros de points d'arrêt séparés par un espace, " +"efface ces points d'arrêt. Sans argument, efface tous les points d'arrêt " +"(mais demande d'abord confirmation)." + +#: ../Doc/library/pdb.rst:305 +msgid "" +"Disable the breakpoints given as a space separated list of breakpoint " +"numbers. Disabling a breakpoint means it cannot cause the program to stop " +"execution, but unlike clearing a breakpoint, it remains in the list of " +"breakpoints and can be (re-)enabled." +msgstr "" +"Désactive les points d'arrêt indiqués sous la forme d'une liste de numéros " +"de points d'arrêt séparés par un espace. Désactiver un point d'arrêt " +"signifie qu'il ne peut pas interrompre l'exécution du programme, mais à la " +"différence d'effacer un point d'arrêt, il reste dans la liste des points " +"d'arrêt et peut être (ré)activé." + +#: ../Doc/library/pdb.rst:312 +msgid "Enable the breakpoints specified." +msgstr "Active les points d'arrêt spécifiés." + +#: ../Doc/library/pdb.rst:316 +msgid "" +"Set the ignore count for the given breakpoint number. If count is omitted, " +"the ignore count is set to 0. A breakpoint becomes active when the ignore " +"count is zero. When non-zero, the count is decremented each time the " +"breakpoint is reached and the breakpoint is not disabled and any associated " +"condition evaluates to true." +msgstr "" +"Définit le nombre de fois où le point d'arrêt donné sera passé. Si le compte " +"est omis, le compte est mis à 0. Un point d'arrêt devient actif lorsque le " +"compte est nul. Lorsqu'il n'est pas nul, le comptage est diminué à chaque " +"fois que le point d'arrêt est atteint et que le point d'arrêt n'est pas " +"désactivé et que toute condition associée est évaluée comme vraie." + +#: ../Doc/library/pdb.rst:324 +msgid "" +"Set a new *condition* for the breakpoint, an expression which must evaluate " +"to true before the breakpoint is honored. If *condition* is absent, any " +"existing condition is removed; i.e., the breakpoint is made unconditional." +msgstr "" +"Définit une nouvelle *condition* pour le point d'arrêt, une expression qui " +"doit évaluer à *True* avant que le point d'arrêt ne soit honoré. Si " +"*condition* est absente, toute condition existante est supprimée, c'est-à-" +"dire que le point d'arrêt est rendu inconditionnel." + +#: ../Doc/library/pdb.rst:330 +msgid "" +"Specify a list of commands for breakpoint number *bpnumber*. The commands " +"themselves appear on the following lines. Type a line containing just " +"``end`` to terminate the commands. An example::" +msgstr "" +"Spécifie une liste de commandes pour le numéro du point d'arrêt *bpnumber*. " +"Les commandes elles-mêmes apparaissent sur les lignes suivantes. Tapez une " +"ligne contenant juste ``end`` pour terminer les commandes. Un exemple ::" + +#: ../Doc/library/pdb.rst:339 +msgid "" +"To remove all commands from a breakpoint, type ``commands`` and follow it " +"immediately with ``end``; that is, give no commands." +msgstr "" +"Pour supprimer toutes les commandes depuis un point d'arrêt, écrivez " +"``commands`` suivi immédiatement de ``end`` ; ceci supprime les commandes." + +#: ../Doc/library/pdb.rst:342 +msgid "" +"With no *bpnumber* argument, ``commands`` refers to the last breakpoint set." +msgstr "" +"Sans argument *bpnumber*, ``commands`` se réfère au dernier point d'arrêt " +"défini." + +#: ../Doc/library/pdb.rst:344 +msgid "" +"You can use breakpoint commands to start your program up again. Simply use " +"the :pdbcmd:`continue` command, or :pdbcmd:`step`, or any other command that " +"resumes execution." +msgstr "" +"Vous pouvez utiliser les commandes de point d'arrêt pour redémarrer votre " +"programme. Utilisez simplement la commande :pdbcmd:`continue`, ou :pdbcmd:" +"`step`, ou toute autre commande qui reprend l'exécution." + +#: ../Doc/library/pdb.rst:348 +msgid "" +"Specifying any command resuming execution (currently :pdbcmd:`continue`, :" +"pdbcmd:`step`, :pdbcmd:`next`, :pdbcmd:`return`, :pdbcmd:`jump`, :pdbcmd:" +"`quit` and their abbreviations) terminates the command list (as if that " +"command was immediately followed by end). This is because any time you " +"resume execution (even with a simple next or step), you may encounter " +"another breakpoint—which could have its own command list, leading to " +"ambiguities about which list to execute." +msgstr "" +"Entrer toute commande reprenant l'exécution (actuellement :pdbcmd:" +"`continue`, :pdbcmd:`step`, :pdbcmd:`next`, :pdbcmd:`return`, :pdbcmd:" +"`jump`, :pdbcmd:`quit` et leurs abréviations) termine la liste des commandes " +"(comme si cette commande était immédiatement suivie de la fin). C'est parce " +"que chaque fois que vous reprenez l'exécution (même avec un simple *next* ou " +"*step*), vous pouvez rencontrer un autre point d'arrêt -- qui pourrait avoir " +"sa propre liste de commandes, conduisant à des ambiguïtés sur la liste à " +"exécuter." + +#: ../Doc/library/pdb.rst:357 +msgid "" +"If you use the 'silent' command in the command list, the usual message about " +"stopping at a breakpoint is not printed. This may be desirable for " +"breakpoints that are to print a specific message and then continue. If none " +"of the other commands print anything, you see no sign that the breakpoint " +"was reached." +msgstr "" +"Si vous utilisez la commande 'silence' dans la liste des commandes, le " +"message habituel concernant l'arrêt à un point d'arrêt n'est pas affiché. " +"Ceci peut être souhaitable pour les points d'arrêt qui doivent afficher un " +"message spécifique et ensuite continuer. Si aucune des autres commandes " +"n'affiche quoi que ce soit, vous ne voyez aucun signe indiquant que le point " +"de rupture a été atteint." + +#: ../Doc/library/pdb.rst:364 +msgid "" +"Execute the current line, stop at the first possible occasion (either in a " +"function that is called or on the next line in the current function)." +msgstr "" +"Exécute la ligne en cours, s'arrête à la première occasion possible (soit " +"dans une fonction qui est appelée, soit sur la ligne suivante de la fonction " +"courante)." + +#: ../Doc/library/pdb.rst:369 +msgid "" +"Continue execution until the next line in the current function is reached or " +"it returns. (The difference between :pdbcmd:`next` and :pdbcmd:`step` is " +"that :pdbcmd:`step` stops inside a called function, while :pdbcmd:`next` " +"executes called functions at (nearly) full speed, only stopping at the next " +"line in the current function.)" +msgstr "" +"Continue l'exécution jusqu'à ce que la ligne suivante de la fonction en " +"cours soit atteinte ou qu'elle revienne. (La différence entre :pdbcmd:`next` " +"et :pdbcmd:`step` est que :pdbcmd:`step` s'arrête dans une fonction appelée, " +"tandis que :pdbcmd:`next` exécute les fonctions appelées à (presque) pleine " +"vitesse, ne s'arrêtant qu'à la ligne suivante dans la fonction courante.)" + +#: ../Doc/library/pdb.rst:377 +msgid "" +"Without argument, continue execution until the line with a number greater " +"than the current one is reached." +msgstr "" +"Sans argument, continue l'exécution jusqu'à ce que la ligne avec un nombre " +"supérieur au nombre actuel soit atteinte." + +#: ../Doc/library/pdb.rst:380 +msgid "" +"With a line number, continue execution until a line with a number greater or " +"equal to that is reached. In both cases, also stop when the current frame " +"returns." +msgstr "" +"Avec un numéro de ligne, continue l'exécution jusqu'à ce qu'une ligne avec " +"un numéro supérieur ou égal à celui-ci soit atteinte. Dans les deux cas, " +"arrête également lorsque la *frame* courante revient." + +#: ../Doc/library/pdb.rst:384 +msgid "Allow giving an explicit line number." +msgstr "Permet de donner un numéro de ligne explicite." + +#: ../Doc/library/pdb.rst:389 +msgid "Continue execution until the current function returns." +msgstr "Continue l'exécution jusqu'au retour de la fonction courante." + +#: ../Doc/library/pdb.rst:393 +msgid "Continue execution, only stop when a breakpoint is encountered." +msgstr "" +"Continue l'exécution, seulement s'arrête quand un point d'arrêt est " +"rencontré." + +#: ../Doc/library/pdb.rst:397 +msgid "" +"Set the next line that will be executed. Only available in the bottom-most " +"frame. This lets you jump back and execute code again, or jump forward to " +"skip code that you don't want to run." +msgstr "" +"Définit la prochaine ligne qui sera exécutée. Uniquement disponible dans la " +"*frame* inférieur. Cela vous permet de revenir en arrière et d'exécuter à " +"nouveau le code, ou de passer en avant pour sauter le code que vous ne " +"voulez pas exécuter." + +#: ../Doc/library/pdb.rst:401 +msgid "" +"It should be noted that not all jumps are allowed -- for instance it is not " +"possible to jump into the middle of a :keyword:`for` loop or out of a :" +"keyword:`finally` clause." +msgstr "" +"Il est à noter que tous les sauts ne sont pas autorisés -- par exemple, il " +"n'est pas possible de sauter au milieu d'une boucle :keyword:`for` ou en " +"dehors d'une clause :keyword:`finally`." + +#: ../Doc/library/pdb.rst:407 +msgid "" +"List source code for the current file. Without arguments, list 11 lines " +"around the current line or continue the previous listing. With ``.`` as " +"argument, list 11 lines around the current line. With one argument, list 11 " +"lines around at that line. With two arguments, list the given range; if the " +"second argument is less than the first, it is interpreted as a count." +msgstr "" +"Liste le code source du fichier courant. Sans arguments, liste 11 lignes " +"autour de la ligne courante ou continue le listing précédant. Avec " +"l'argument ``.``, liste 11 lignes autour de la ligne courante. Avec un " +"argument, liste les 11 lignes autour de cette ligne. Avec deux arguments, " +"liste la plage donnée; si le second argument est inférieur au premier, il " +"est interprété comme un compte." + +#: ../Doc/library/pdb.rst:413 +msgid "" +"The current line in the current frame is indicated by ``->``. If an " +"exception is being debugged, the line where the exception was originally " +"raised or propagated is indicated by ``>>``, if it differs from the current " +"line." +msgstr "" +"La ligne en cours dans l'image courante est indiquée par ``->``. Si une " +"exception est en cours de débogage, la ligne où l'exception a été " +"initialement levée ou propagée est indiquée par ``>>``, si elle diffère de " +"la ligne courante." + +#: ../Doc/library/pdb.rst:418 +msgid "The ``>>`` marker." +msgstr "Le marqueur ``>>``." + +#: ../Doc/library/pdb.rst:423 +msgid "" +"List all source code for the current function or frame. Interesting lines " +"are marked as for :pdbcmd:`list`." +msgstr "" +"Liste le code source de la fonction ou du bloc courant. Les lignes " +"intéressantes sont marquées comme pour :pdbcmd:`list`." + +#: ../Doc/library/pdb.rst:430 +msgid "Print the argument list of the current function." +msgstr "Affiche la liste d'arguments de la fonction courante." + +#: ../Doc/library/pdb.rst:434 +msgid "Evaluate the *expression* in the current context and print its value." +msgstr "Évalue l'*expression* dans le contexte courant et affiche sa valeur." + +#: ../Doc/library/pdb.rst:438 +msgid "" +"``print()`` can also be used, but is not a debugger command --- this " +"executes the Python :func:`print` function." +msgstr "" +"``print()`` peut aussi être utilisée, mais n'est pas une commande du " +"débogueur --- il exécute la fonction Python :func:`print`." + +#: ../Doc/library/pdb.rst:444 +msgid "" +"Like the :pdbcmd:`p` command, except the value of the expression is pretty-" +"printed using the :mod:`pprint` module." +msgstr "" +"Comme la commande :pdbcmd:`p`, sauf que la valeur de l'expression est " +"joliment affiché en utilisant le module :mod:`pprint`." + +#: ../Doc/library/pdb.rst:449 +msgid "Print the type of the *expression*." +msgstr "Affiche le type de l'*expression*." + +#: ../Doc/library/pdb.rst:453 +msgid "Try to get source code for the given object and display it." +msgstr "Essaie d'obtenir le code source pour l'objet donné et l'affiche." + +#: ../Doc/library/pdb.rst:459 +msgid "" +"Display the value of the expression if it changed, each time execution stops " +"in the current frame." +msgstr "" +"Affiche la valeur de l'expression si elle a changée, chaque fois que " +"l'exécution s'arrête dans la *frame* courante." + +#: ../Doc/library/pdb.rst:462 +msgid "Without expression, list all display expressions for the current frame." +msgstr "" +"Sans expression, liste toutes les expressions pour la *frame* courante." + +#: ../Doc/library/pdb.rst:468 +msgid "" +"Do not display the expression any more in the current frame. Without " +"expression, clear all display expressions for the current frame." +msgstr "" +"N'affiche plus l'expression dans la *frame* courante. Sans expression, " +"efface toutes les expressions d'affichage de la *frame* courante." + +#: ../Doc/library/pdb.rst:475 +msgid "" +"Start an interactive interpreter (using the :mod:`code` module) whose global " +"namespace contains all the (global and local) names found in the current " +"scope." +msgstr "" +"Démarre un interpréteur interactif (en utilisant le module :mod:`code`) dont " +"l'espace de nommage global contient tous les noms (*global* et *local*) " +"trouvés dans la portée courante." + +#: ../Doc/library/pdb.rst:485 +msgid "" +"Create an alias called *name* that executes *command*. The command must " +"*not* be enclosed in quotes. Replaceable parameters can be indicated by ``" +"%1``, ``%2``, and so on, while ``%*`` is replaced by all the parameters. If " +"no command is given, the current alias for *name* is shown. If no arguments " +"are given, all aliases are listed." +msgstr "" +"Créez un alias appelé *name* qui exécute *command*. La commande ne doit " +"*pas* être entourée de guillemets. Les paramètres remplaçables peuvent être " +"indiqués par ``%1``, ``%2`` et ainsi de suite, tandis que ``%*`` est " +"remplacé par tous les paramètres. Si aucune commande n'est donnée, l'alias " +"courant pour *name* est affiché. Si aucun argument n'est donné, tous les " +"alias sont listés." + +#: ../Doc/library/pdb.rst:491 +msgid "" +"Aliases may be nested and can contain anything that can be legally typed at " +"the pdb prompt. Note that internal pdb commands *can* be overridden by " +"aliases. Such a command is then hidden until the alias is removed. " +"Aliasing is recursively applied to the first word of the command line; all " +"other words in the line are left alone." +msgstr "" +"Les alias peuvent être imbriqués et peuvent contenir tout ce qui peut être " +"légalement tapé à l'invite *pdb*. Notez que les commandes *pdb* internes " +"*peuvent* être remplacées par des alias. Une telle commande est alors " +"masquée jusqu'à ce que l'alias soit supprimé. L'*aliasing* est appliqué " +"récursivement au premier mot de la ligne de commande; tous les autres mots " +"de la ligne sont laissés seuls." + +#: ../Doc/library/pdb.rst:497 +msgid "" +"As an example, here are two useful aliases (especially when placed in the :" +"file:`.pdbrc` file)::" +msgstr "" +"Comme un exemple, voici deux alias utiles (spécialement quand il est placé " +"dans le fichier :file:`.pdbrc`) ::" + +#: ../Doc/library/pdb.rst:507 +msgid "Delete the specified alias." +msgstr "Supprime l'alias spécifié." + +#: ../Doc/library/pdb.rst:511 +msgid "" +"Execute the (one-line) *statement* in the context of the current stack " +"frame. The exclamation point can be omitted unless the first word of the " +"statement resembles a debugger command. To set a global variable, you can " +"prefix the assignment command with a :keyword:`global` statement on the same " +"line, e.g.::" +msgstr "" +"Exécute l'instruction *statement* (une ligne) dans le contexte de la *frame* " +"de la pile courante. Le point d'exclamation peut être omis à moins que le " +"premier mot de l'instruction ne ressemble à une commande de débogueur. Pour " +"définir une variable globale, vous pouvez préfixer la commande d'assignation " +"avec une instruction :keyword:`global` sur la même ligne, par exemple ::" + +#: ../Doc/library/pdb.rst:523 +msgid "" +"Restart the debugged Python program. If an argument is supplied, it is " +"split with :mod:`shlex` and the result is used as the new :data:`sys.argv`. " +"History, breakpoints, actions and debugger options are preserved. :pdbcmd:" +"`restart` is an alias for :pdbcmd:`run`." +msgstr "" +"Redémarre le programme Python débogué. Si un argument est fourni, il est " +"splitté avec :mod:`shlex` et le résultat es utilisé comme le nouveau :data:" +"`sys.argv`. L'historique, les points d'arrêt, les actions et les options du " +"débogueur sont préservés. :pdbcmd:`restart` est un alias pour :pdbcmd:`run`." + +#: ../Doc/library/pdb.rst:530 +msgid "Quit from the debugger. The program being executed is aborted." +msgstr "Quitte le débogueur. Le programme exécuté est arrêté." + +#: ../Doc/library/pdb.rst:534 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/pdb.rst:535 +msgid "" +"Whether a frame is considered to originate in a certain module is determined " +"by the ``__name__`` in the frame globals." +msgstr "" +"La question de savoir si une *frame* est considérée comme provenant d'un " +"certain module est déterminée par le ``__name__`` dans les globales de la " +"*frame*." diff --git a/library/persistence.po b/library/persistence.po new file mode 100644 index 000000000..e3e089cba --- /dev/null +++ b/library/persistence.po @@ -0,0 +1,39 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-28 18:33+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/persistence.rst:5 +msgid "Data Persistence" +msgstr "Persistance des données" + +#: ../Doc/library/persistence.rst:7 +msgid "" +"The modules described in this chapter support storing Python data in a " +"persistent form on disk. The :mod:`pickle` and :mod:`marshal` modules can " +"turn many Python data types into a stream of bytes and then recreate the " +"objects from the bytes. The various DBM-related modules support a family of " +"hash-based file formats that store a mapping of strings to other strings." +msgstr "" +"Les modules décrits dans ce chapitre permettent de stocker des données " +"Python de manière persistante typiquement sur disque. Les modules :mod:" +"`pickle` et :mod:`marshal` peuvent transformer n'importe quel type Python en " +"une séquence d'octets, puis recréer les objets depuis ces octets. Les " +"différents modules du paquet *dbm* gèrent une catégorie de formats de " +"fichier basée sur des hach, stockant des correspondances entre chaînes de " +"caractères." + +#: ../Doc/library/persistence.rst:13 +msgid "The list of modules described in this chapter is:" +msgstr "La liste des modules documentés dans ce chapitre est :" diff --git a/library/pickle.po b/library/pickle.po new file mode 100644 index 000000000..9afa57065 --- /dev/null +++ b/library/pickle.po @@ -0,0 +1,1086 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-02-26 12:09+0100\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/library/pickle.rst:2 +msgid ":mod:`pickle` --- Python object serialization" +msgstr ":mod:`pickle` --- Module de sérialisation d'objets Python" + +#: ../Doc/library/pickle.rst:10 +msgid "**Source code:** :source:`Lib/pickle.py`" +msgstr "**Code source :** :source:`Lib/pickle.py`" + +#: ../Doc/library/pickle.rst:22 +msgid "" +"The :mod:`pickle` module implements binary protocols for serializing and de-" +"serializing a Python object structure. *\"Pickling\"* is the process " +"whereby a Python object hierarchy is converted into a byte stream, and *" +"\"unpickling\"* is the inverse operation, whereby a byte stream (from a :" +"term:`binary file` or :term:`bytes-like object`) is converted back into an " +"object hierarchy. Pickling (and unpickling) is alternatively known as " +"\"serialization\", \"marshalling,\" [#]_ or \"flattening\"; however, to " +"avoid confusion, the terms used here are \"pickling\" and \"unpickling\"." +msgstr "" +"Le module :mod:`pickle` implémente des protocoles binaires de sérialisation " +"et dé-sérialisation d'objets Python. Le *pickling* est le procédé par lequel " +"une hiérarchie d'objets Python est convertie en flux d'octets. *unpickling* " +"est l'opération inverse, par laquelle un flux d'octets (à partir d'un :term:" +"`binary file` ou :term:`bytes-like object`) est converti en hiérarchie " +"d'objets. *Pickling* (et *unpickling*) sont alternativement connus sous les " +"termes de \"sérialisation\", de \"*marshalling*\" [#]_ ou encore de " +"\"*flattening*\". Cependant pour éviter la confusion les termes utilisés ici " +"sont *pickling* et *unpickling*." + +#: ../Doc/library/pickle.rst:33 +msgid "" +"The :mod:`pickle` module is not secure against erroneous or maliciously " +"constructed data. Never unpickle data received from an untrusted or " +"unauthenticated source." +msgstr "" +"Le module :mod:`pickle` n'est pas sécurisé contre les données erronées et " +"malicieusement construites. Ne jamais *unpickle* la donnée reçue à partir " +"d'une source non fiable ou non authentifiée." + +#: ../Doc/library/pickle.rst:39 +msgid "Relationship to other Python modules" +msgstr "Relations aux autres modules python" + +#: ../Doc/library/pickle.rst:42 +msgid "Comparison with ``marshal``" +msgstr "Comparaison avec ``marshal``" + +#: ../Doc/library/pickle.rst:44 +msgid "" +"Python has a more primitive serialization module called :mod:`marshal`, but " +"in general :mod:`pickle` should always be the preferred way to serialize " +"Python objects. :mod:`marshal` exists primarily to support Python's :file:`." +"pyc` files." +msgstr "" +"Python possède un module de bas niveau en sérialisation appelé :mod:" +"`marshal`, mais en général il est préférable d'utiliser :mod:`pickle` pour " +"sérialiser des objets Python. :mod:`marshal` existe principalement pour " +"gérer les fichiers Python en :file:`.pyc`." + +#: ../Doc/library/pickle.rst:49 +msgid "" +"The :mod:`pickle` module differs from :mod:`marshal` in several significant " +"ways:" +msgstr "" +"Le module :mod:`pickle` diffère du module :mod:`marshal` sur plusieurs " +"aspects :" + +#: ../Doc/library/pickle.rst:51 +msgid "" +"The :mod:`pickle` module keeps track of the objects it has already " +"serialized, so that later references to the same object won't be serialized " +"again. :mod:`marshal` doesn't do this." +msgstr "" +"Le module :mod:`pickle` garde la trace des objets qu'il a déjà sérialisés, " +"pour faire en sorte que les prochaines références à cet objet ne soient pas " +"sérialisées à nouveau. :mod:`marshal` ne le fait pas." + +#: ../Doc/library/pickle.rst:55 +msgid "" +"This has implications both for recursive objects and object sharing. " +"Recursive objects are objects that contain references to themselves. These " +"are not handled by marshal, and in fact, attempting to marshal recursive " +"objects will crash your Python interpreter. Object sharing happens when " +"there are multiple references to the same object in different places in the " +"object hierarchy being serialized. :mod:`pickle` stores such objects only " +"once, and ensures that all other references point to the master copy. " +"Shared objects remain shared, which can be very important for mutable " +"objects." +msgstr "" +"Ça a des implications sur les objets partagés et les objets récursifs. Les " +"objets récursifs sont des objets qui contiennent des références à eux-mêmes. " +"Ceux-ci ne sont pas gérées par marshal : lui donner un objet récursif va le " +"faire planter. Un objet est partagé lorsque que plusieurs références " +"pointent dessus, depuis différents endroits dans la hiérarchie sérialisée. " +"Le module :mod:`pickle` repère ces partages et ne stocke ces objets qu'une " +"seule fois. Les objets partagés restent ainsi partagés, ce qui peut être " +"très important pour les objets muables." + +#: ../Doc/library/pickle.rst:64 +msgid "" +":mod:`marshal` cannot be used to serialize user-defined classes and their " +"instances. :mod:`pickle` can save and restore class instances " +"transparently, however the class definition must be importable and live in " +"the same module as when the object was stored." +msgstr "" +":mod:`marshal` ne peut être utilisé pour la sérialisation et l'instanciation " +"de classes définies par les utilisateurs. :mod:`pickle` peut sauvegarder et " +"restaurer les instances de classes de manière transparente. Cependant la " +"définition de classe doit être importable et lancée dans le même module et " +"de la même manière que lors de son importation." + +#: ../Doc/library/pickle.rst:69 +msgid "" +"The :mod:`marshal` serialization format is not guaranteed to be portable " +"across Python versions. Because its primary job in life is to support :file:" +"`.pyc` files, the Python implementers reserve the right to change the " +"serialization format in non-backwards compatible ways should the need arise. " +"The :mod:`pickle` serialization format is guaranteed to be backwards " +"compatible across Python releases provided a compatible pickle protocol is " +"chosen and pickling and unpickling code deals with Python 2 to Python 3 type " +"differences if your data is crossing that unique breaking change language " +"boundary." +msgstr "" + +#: ../Doc/library/pickle.rst:79 +msgid "Comparison with ``json``" +msgstr "" + +#: ../Doc/library/pickle.rst:81 +msgid "" +"There are fundamental differences between the pickle protocols and `JSON " +"(JavaScript Object Notation) `_:" +msgstr "" + +#: ../Doc/library/pickle.rst:84 +msgid "" +"JSON is a text serialization format (it outputs unicode text, although most " +"of the time it is then encoded to ``utf-8``), while pickle is a binary " +"serialization format;" +msgstr "" + +#: ../Doc/library/pickle.rst:88 +msgid "JSON is human-readable, while pickle is not;" +msgstr "" + +#: ../Doc/library/pickle.rst:90 +msgid "" +"JSON is interoperable and widely used outside of the Python ecosystem, while " +"pickle is Python-specific;" +msgstr "" + +#: ../Doc/library/pickle.rst:93 +msgid "" +"JSON, by default, can only represent a subset of the Python built-in types, " +"and no custom classes; pickle can represent an extremely large number of " +"Python types (many of them automatically, by clever usage of Python's " +"introspection facilities; complex cases can be tackled by implementing :ref:" +"`specific object APIs `)." +msgstr "" + +#: ../Doc/library/pickle.rst:100 +msgid "" +"The :mod:`json` module: a standard library module allowing JSON " +"serialization and deserialization." +msgstr "" + +#: ../Doc/library/pickle.rst:107 +msgid "Data stream format" +msgstr "" + +#: ../Doc/library/pickle.rst:112 +msgid "" +"The data format used by :mod:`pickle` is Python-specific. This has the " +"advantage that there are no restrictions imposed by external standards such " +"as JSON or XDR (which can't represent pointer sharing); however it means " +"that non-Python programs may not be able to reconstruct pickled Python " +"objects." +msgstr "" + +#: ../Doc/library/pickle.rst:117 +msgid "" +"By default, the :mod:`pickle` data format uses a relatively compact binary " +"representation. If you need optimal size characteristics, you can " +"efficiently :doc:`compress ` pickled data." +msgstr "" + +#: ../Doc/library/pickle.rst:121 +msgid "" +"The module :mod:`pickletools` contains tools for analyzing data streams " +"generated by :mod:`pickle`. :mod:`pickletools` source code has extensive " +"comments about opcodes used by pickle protocols." +msgstr "" + +#: ../Doc/library/pickle.rst:125 +msgid "" +"There are currently 5 different protocols which can be used for pickling. " +"The higher the protocol used, the more recent the version of Python needed " +"to read the pickle produced." +msgstr "" + +#: ../Doc/library/pickle.rst:129 +msgid "" +"Protocol version 0 is the original \"human-readable\" protocol and is " +"backwards compatible with earlier versions of Python." +msgstr "" + +#: ../Doc/library/pickle.rst:132 +msgid "" +"Protocol version 1 is an old binary format which is also compatible with " +"earlier versions of Python." +msgstr "" + +#: ../Doc/library/pickle.rst:135 +msgid "" +"Protocol version 2 was introduced in Python 2.3. It provides much more " +"efficient pickling of :term:`new-style class`\\es. Refer to :pep:`307` for " +"information about improvements brought by protocol 2." +msgstr "" + +#: ../Doc/library/pickle.rst:139 +msgid "" +"Protocol version 3 was added in Python 3.0. It has explicit support for :" +"class:`bytes` objects and cannot be unpickled by Python 2.x. This is the " +"default protocol, and the recommended protocol when compatibility with other " +"Python 3 versions is required." +msgstr "" + +#: ../Doc/library/pickle.rst:144 +msgid "" +"Protocol version 4 was added in Python 3.4. It adds support for very large " +"objects, pickling more kinds of objects, and some data format " +"optimizations. Refer to :pep:`3154` for information about improvements " +"brought by protocol 4." +msgstr "" + +#: ../Doc/library/pickle.rst:150 +msgid "" +"Serialization is a more primitive notion than persistence; although :mod:" +"`pickle` reads and writes file objects, it does not handle the issue of " +"naming persistent objects, nor the (even more complicated) issue of " +"concurrent access to persistent objects. The :mod:`pickle` module can " +"transform a complex object into a byte stream and it can transform the byte " +"stream into an object with the same internal structure. Perhaps the most " +"obvious thing to do with these byte streams is to write them onto a file, " +"but it is also conceivable to send them across a network or store them in a " +"database. The :mod:`shelve` module provides a simple interface to pickle " +"and unpickle objects on DBM-style database files." +msgstr "" + +#: ../Doc/library/pickle.rst:163 +msgid "Module Interface" +msgstr "" + +#: ../Doc/library/pickle.rst:165 +msgid "" +"To serialize an object hierarchy, you simply call the :func:`dumps` " +"function. Similarly, to de-serialize a data stream, you call the :func:" +"`loads` function. However, if you want more control over serialization and " +"de-serialization, you can create a :class:`Pickler` or an :class:`Unpickler` " +"object, respectively." +msgstr "" + +#: ../Doc/library/pickle.rst:170 +msgid "The :mod:`pickle` module provides the following constants:" +msgstr "" + +#: ../Doc/library/pickle.rst:175 +msgid "" +"An integer, the highest :ref:`protocol version ` " +"available. This value can be passed as a *protocol* value to functions :" +"func:`dump` and :func:`dumps` as well as the :class:`Pickler` constructor." +msgstr "" + +#: ../Doc/library/pickle.rst:182 +msgid "" +"An integer, the default :ref:`protocol version ` used for " +"pickling. May be less than :data:`HIGHEST_PROTOCOL`. Currently the default " +"protocol is 3, a new protocol designed for Python 3." +msgstr "" + +#: ../Doc/library/pickle.rst:187 +msgid "" +"The :mod:`pickle` module provides the following functions to make the " +"pickling process more convenient:" +msgstr "" + +#: ../Doc/library/pickle.rst:192 +msgid "" +"Write a pickled representation of *obj* to the open :term:`file object` " +"*file*. This is equivalent to ``Pickler(file, protocol).dump(obj)``." +msgstr "" + +#: ../Doc/library/pickle.rst:195 ../Doc/library/pickle.rst:297 +msgid "" +"The optional *protocol* argument, an integer, tells the pickler to use the " +"given protocol; supported protocols are 0 to :data:`HIGHEST_PROTOCOL`. If " +"not specified, the default is :data:`DEFAULT_PROTOCOL`. If a negative " +"number is specified, :data:`HIGHEST_PROTOCOL` is selected." +msgstr "" + +#: ../Doc/library/pickle.rst:200 ../Doc/library/pickle.rst:302 +msgid "" +"The *file* argument must have a write() method that accepts a single bytes " +"argument. It can thus be an on-disk file opened for binary writing, an :" +"class:`io.BytesIO` instance, or any other custom object that meets this " +"interface." +msgstr "" + +#: ../Doc/library/pickle.rst:205 ../Doc/library/pickle.rst:307 +msgid "" +"If *fix_imports* is true and *protocol* is less than 3, pickle will try to " +"map the new Python 3 names to the old module names used in Python 2, so that " +"the pickle data stream is readable with Python 2." +msgstr "" + +#: ../Doc/library/pickle.rst:211 +msgid "" +"Return the pickled representation of the object as a :class:`bytes` object, " +"instead of writing it to a file." +msgstr "" + +#: ../Doc/library/pickle.rst:214 +msgid "" +"Arguments *protocol* and *fix_imports* have the same meaning as in :func:" +"`dump`." +msgstr "" + +#: ../Doc/library/pickle.rst:219 +msgid "" +"Read a pickled object representation from the open :term:`file object` " +"*file* and return the reconstituted object hierarchy specified therein. This " +"is equivalent to ``Unpickler(file).load()``." +msgstr "" + +#: ../Doc/library/pickle.rst:223 ../Doc/library/pickle.rst:249 +msgid "" +"The protocol version of the pickle is detected automatically, so no protocol " +"argument is needed. Bytes past the pickled object's representation are " +"ignored." +msgstr "" + +#: ../Doc/library/pickle.rst:227 +msgid "" +"The argument *file* must have two methods, a read() method that takes an " +"integer argument, and a readline() method that requires no arguments. Both " +"methods should return bytes. Thus *file* can be an on-disk file opened for " +"binary reading, an :class:`io.BytesIO` object, or any other custom object " +"that meets this interface." +msgstr "" + +#: ../Doc/library/pickle.rst:233 ../Doc/library/pickle.rst:253 +msgid "" +"Optional keyword arguments are *fix_imports*, *encoding* and *errors*, which " +"are used to control compatibility support for pickle stream generated by " +"Python 2. If *fix_imports* is true, pickle will try to map the old Python 2 " +"names to the new names used in Python 3. The *encoding* and *errors* tell " +"pickle how to decode 8-bit string instances pickled by Python 2; these " +"default to 'ASCII' and 'strict', respectively. The *encoding* can be " +"'bytes' to read these 8-bit string instances as bytes objects. Using " +"``encoding='latin1'`` is required for unpickling NumPy arrays and instances " +"of :class:`~datetime.datetime`, :class:`~datetime.date` and :class:" +"`~datetime.time` pickled by Python 2." +msgstr "" + +#: ../Doc/library/pickle.rst:246 +msgid "" +"Read a pickled object hierarchy from a :class:`bytes` object and return the " +"reconstituted object hierarchy specified therein." +msgstr "" + +#: ../Doc/library/pickle.rst:265 +msgid "The :mod:`pickle` module defines three exceptions:" +msgstr "" + +#: ../Doc/library/pickle.rst:269 +msgid "" +"Common base class for the other pickling exceptions. It inherits :exc:" +"`Exception`." +msgstr "" + +#: ../Doc/library/pickle.rst:274 +msgid "" +"Error raised when an unpicklable object is encountered by :class:`Pickler`. " +"It inherits :exc:`PickleError`." +msgstr "" + +#: ../Doc/library/pickle.rst:277 +msgid "" +"Refer to :ref:`pickle-picklable` to learn what kinds of objects can be " +"pickled." +msgstr "" + +#: ../Doc/library/pickle.rst:282 +msgid "" +"Error raised when there is a problem unpickling an object, such as a data " +"corruption or a security violation. It inherits :exc:`PickleError`." +msgstr "" + +#: ../Doc/library/pickle.rst:285 +msgid "" +"Note that other exceptions may also be raised during unpickling, including " +"(but not necessarily limited to) AttributeError, EOFError, ImportError, and " +"IndexError." +msgstr "" + +#: ../Doc/library/pickle.rst:290 +msgid "" +"The :mod:`pickle` module exports two classes, :class:`Pickler` and :class:" +"`Unpickler`:" +msgstr "" + +#: ../Doc/library/pickle.rst:295 +msgid "This takes a binary file for writing a pickle data stream." +msgstr "" + +#: ../Doc/library/pickle.rst:313 +msgid "" +"Write a pickled representation of *obj* to the open file object given in the " +"constructor." +msgstr "" + +#: ../Doc/library/pickle.rst:318 +msgid "Do nothing by default. This exists so a subclass can override it." +msgstr "" + +#: ../Doc/library/pickle.rst:320 +msgid "" +"If :meth:`persistent_id` returns ``None``, *obj* is pickled as usual. Any " +"other value causes :class:`Pickler` to emit the returned value as a " +"persistent ID for *obj*. The meaning of this persistent ID should be " +"defined by :meth:`Unpickler.persistent_load`. Note that the value returned " +"by :meth:`persistent_id` cannot itself have a persistent ID." +msgstr "" + +#: ../Doc/library/pickle.rst:326 ../Doc/library/pickle.rst:397 +msgid "See :ref:`pickle-persistent` for details and examples of uses." +msgstr "" + +#: ../Doc/library/pickle.rst:330 +msgid "" +"A pickler object's dispatch table is a registry of *reduction functions* of " +"the kind which can be declared using :func:`copyreg.pickle`. It is a " +"mapping whose keys are classes and whose values are reduction functions. A " +"reduction function takes a single argument of the associated class and " +"should conform to the same interface as a :meth:`__reduce__` method." +msgstr "" + +#: ../Doc/library/pickle.rst:338 +msgid "" +"By default, a pickler object will not have a :attr:`dispatch_table` " +"attribute, and it will instead use the global dispatch table managed by the :" +"mod:`copyreg` module. However, to customize the pickling for a specific " +"pickler object one can set the :attr:`dispatch_table` attribute to a dict-" +"like object. Alternatively, if a subclass of :class:`Pickler` has a :attr:" +"`dispatch_table` attribute then this will be used as the default dispatch " +"table for instances of that class." +msgstr "" + +#: ../Doc/library/pickle.rst:347 +msgid "See :ref:`pickle-dispatch` for usage examples." +msgstr "" + +#: ../Doc/library/pickle.rst:353 +msgid "" +"Deprecated. Enable fast mode if set to a true value. The fast mode disables " +"the usage of memo, therefore speeding the pickling process by not generating " +"superfluous PUT opcodes. It should not be used with self-referential " +"objects, doing otherwise will cause :class:`Pickler` to recurse infinitely." +msgstr "" + +#: ../Doc/library/pickle.rst:359 +msgid "Use :func:`pickletools.optimize` if you need more compact pickles." +msgstr "" + +#: ../Doc/library/pickle.rst:364 +msgid "This takes a binary file for reading a pickle data stream." +msgstr "" + +#: ../Doc/library/pickle.rst:366 +msgid "" +"The protocol version of the pickle is detected automatically, so no protocol " +"argument is needed." +msgstr "" + +#: ../Doc/library/pickle.rst:369 +msgid "" +"The argument *file* must have two methods, a read() method that takes an " +"integer argument, and a readline() method that requires no arguments. Both " +"methods should return bytes. Thus *file* can be an on-disk file object " +"opened for binary reading, an :class:`io.BytesIO` object, or any other " +"custom object that meets this interface." +msgstr "" + +#: ../Doc/library/pickle.rst:375 +msgid "" +"Optional keyword arguments are *fix_imports*, *encoding* and *errors*, which " +"are used to control compatibility support for pickle stream generated by " +"Python 2. If *fix_imports* is true, pickle will try to map the old Python 2 " +"names to the new names used in Python 3. The *encoding* and *errors* tell " +"pickle how to decode 8-bit string instances pickled by Python 2; these " +"default to 'ASCII' and 'strict', respectively. The *encoding* can be " +"'bytes' to read these 8-bit string instances as bytes objects." +msgstr "" + +#: ../Doc/library/pickle.rst:385 +msgid "" +"Read a pickled object representation from the open file object given in the " +"constructor, and return the reconstituted object hierarchy specified " +"therein. Bytes past the pickled object's representation are ignored." +msgstr "" + +#: ../Doc/library/pickle.rst:391 +msgid "Raise an :exc:`UnpicklingError` by default." +msgstr "" + +#: ../Doc/library/pickle.rst:393 +msgid "" +"If defined, :meth:`persistent_load` should return the object specified by " +"the persistent ID *pid*. If an invalid persistent ID is encountered, an :" +"exc:`UnpicklingError` should be raised." +msgstr "" + +#: ../Doc/library/pickle.rst:401 +msgid "" +"Import *module* if necessary and return the object called *name* from it, " +"where the *module* and *name* arguments are :class:`str` objects. Note, " +"unlike its name suggests, :meth:`find_class` is also used for finding " +"functions." +msgstr "" + +#: ../Doc/library/pickle.rst:406 +msgid "" +"Subclasses may override this to gain control over what type of objects and " +"how they can be loaded, potentially reducing security risks. Refer to :ref:" +"`pickle-restrict` for details." +msgstr "" + +#: ../Doc/library/pickle.rst:414 +msgid "What can be pickled and unpickled?" +msgstr "" + +#: ../Doc/library/pickle.rst:416 +msgid "The following types can be pickled:" +msgstr "" + +#: ../Doc/library/pickle.rst:418 +msgid "``None``, ``True``, and ``False``" +msgstr "``None``, ``True``, and ``False``" + +#: ../Doc/library/pickle.rst:420 +msgid "integers, floating point numbers, complex numbers" +msgstr "" + +#: ../Doc/library/pickle.rst:422 +msgid "strings, bytes, bytearrays" +msgstr "" + +#: ../Doc/library/pickle.rst:424 +msgid "tuples, lists, sets, and dictionaries containing only picklable objects" +msgstr "" + +#: ../Doc/library/pickle.rst:426 +msgid "" +"functions defined at the top level of a module (using :keyword:`def`, not :" +"keyword:`lambda`)" +msgstr "" + +#: ../Doc/library/pickle.rst:429 +msgid "built-in functions defined at the top level of a module" +msgstr "" + +#: ../Doc/library/pickle.rst:431 +msgid "classes that are defined at the top level of a module" +msgstr "" + +#: ../Doc/library/pickle.rst:433 +msgid "" +"instances of such classes whose :attr:`~object.__dict__` or the result of " +"calling :meth:`__getstate__` is picklable (see section :ref:`pickle-inst` " +"for details)." +msgstr "" + +#: ../Doc/library/pickle.rst:437 +msgid "" +"Attempts to pickle unpicklable objects will raise the :exc:`PicklingError` " +"exception; when this happens, an unspecified number of bytes may have " +"already been written to the underlying file. Trying to pickle a highly " +"recursive data structure may exceed the maximum recursion depth, a :exc:" +"`RecursionError` will be raised in this case. You can carefully raise this " +"limit with :func:`sys.setrecursionlimit`." +msgstr "" + +#: ../Doc/library/pickle.rst:444 +msgid "" +"Note that functions (built-in and user-defined) are pickled by \"fully " +"qualified\" name reference, not by value. [#]_ This means that only the " +"function name is pickled, along with the name of the module the function is " +"defined in. Neither the function's code, nor any of its function attributes " +"are pickled. Thus the defining module must be importable in the unpickling " +"environment, and the module must contain the named object, otherwise an " +"exception will be raised. [#]_" +msgstr "" + +#: ../Doc/library/pickle.rst:451 +msgid "" +"Similarly, classes are pickled by named reference, so the same restrictions " +"in the unpickling environment apply. Note that none of the class's code or " +"data is pickled, so in the following example the class attribute ``attr`` is " +"not restored in the unpickling environment::" +msgstr "" + +#: ../Doc/library/pickle.rst:461 +msgid "" +"These restrictions are why picklable functions and classes must be defined " +"in the top level of a module." +msgstr "" + +#: ../Doc/library/pickle.rst:464 +msgid "" +"Similarly, when class instances are pickled, their class's code and data are " +"not pickled along with them. Only the instance data are pickled. This is " +"done on purpose, so you can fix bugs in a class or add methods to the class " +"and still load objects that were created with an earlier version of the " +"class. If you plan to have long-lived objects that will see many versions " +"of a class, it may be worthwhile to put a version number in the objects so " +"that suitable conversions can be made by the class's :meth:`__setstate__` " +"method." +msgstr "" + +#: ../Doc/library/pickle.rst:476 +msgid "Pickling Class Instances" +msgstr "" + +#: ../Doc/library/pickle.rst:480 +msgid "" +"In this section, we describe the general mechanisms available to you to " +"define, customize, and control how class instances are pickled and unpickled." +msgstr "" + +#: ../Doc/library/pickle.rst:483 +msgid "" +"In most cases, no additional code is needed to make instances picklable. By " +"default, pickle will retrieve the class and the attributes of an instance " +"via introspection. When a class instance is unpickled, its :meth:`__init__` " +"method is usually *not* invoked. The default behaviour first creates an " +"uninitialized instance and then restores the saved attributes. The " +"following code shows an implementation of this behaviour::" +msgstr "" + +#: ../Doc/library/pickle.rst:498 +msgid "" +"Classes can alter the default behaviour by providing one or several special " +"methods:" +msgstr "" + +#: ../Doc/library/pickle.rst:503 +msgid "" +"In protocols 2 and newer, classes that implements the :meth:" +"`__getnewargs_ex__` method can dictate the values passed to the :meth:" +"`__new__` method upon unpickling. The method must return a pair ``(args, " +"kwargs)`` where *args* is a tuple of positional arguments and *kwargs* a " +"dictionary of named arguments for constructing the object. Those will be " +"passed to the :meth:`__new__` method upon unpickling." +msgstr "" + +#: ../Doc/library/pickle.rst:511 +msgid "" +"You should implement this method if the :meth:`__new__` method of your class " +"requires keyword-only arguments. Otherwise, it is recommended for " +"compatibility to implement :meth:`__getnewargs__`." +msgstr "" + +#: ../Doc/library/pickle.rst:515 +msgid ":meth:`__getnewargs_ex__` is now used in protocols 2 and 3." +msgstr "" + +#: ../Doc/library/pickle.rst:521 +msgid "" +"This method serves a similar purpose as :meth:`__getnewargs_ex__`, but " +"supports only positional arguments. It must return a tuple of arguments " +"``args`` which will be passed to the :meth:`__new__` method upon unpickling." +msgstr "" + +#: ../Doc/library/pickle.rst:525 +msgid "" +":meth:`__getnewargs__` will not be called if :meth:`__getnewargs_ex__` is " +"defined." +msgstr "" + +#: ../Doc/library/pickle.rst:528 +msgid "" +"Before Python 3.6, :meth:`__getnewargs__` was called instead of :meth:" +"`__getnewargs_ex__` in protocols 2 and 3." +msgstr "" + +#: ../Doc/library/pickle.rst:535 +msgid "" +"Classes can further influence how their instances are pickled; if the class " +"defines the method :meth:`__getstate__`, it is called and the returned " +"object is pickled as the contents for the instance, instead of the contents " +"of the instance's dictionary. If the :meth:`__getstate__` method is absent, " +"the instance's :attr:`~object.__dict__` is pickled as usual." +msgstr "" + +#: ../Doc/library/pickle.rst:544 +msgid "" +"Upon unpickling, if the class defines :meth:`__setstate__`, it is called " +"with the unpickled state. In that case, there is no requirement for the " +"state object to be a dictionary. Otherwise, the pickled state must be a " +"dictionary and its items are assigned to the new instance's dictionary." +msgstr "" + +#: ../Doc/library/pickle.rst:551 +msgid "" +"If :meth:`__getstate__` returns a false value, the :meth:`__setstate__` " +"method will not be called upon unpickling." +msgstr "" + +#: ../Doc/library/pickle.rst:555 +msgid "" +"Refer to the section :ref:`pickle-state` for more information about how to " +"use the methods :meth:`__getstate__` and :meth:`__setstate__`." +msgstr "" + +#: ../Doc/library/pickle.rst:560 +msgid "" +"At unpickling time, some methods like :meth:`__getattr__`, :meth:" +"`__getattribute__`, or :meth:`__setattr__` may be called upon the instance. " +"In case those methods rely on some internal invariant being true, the type " +"should implement :meth:`__getnewargs__` or :meth:`__getnewargs_ex__` to " +"establish such an invariant; otherwise, neither :meth:`__new__` nor :meth:" +"`__init__` will be called." +msgstr "" + +#: ../Doc/library/pickle.rst:569 +msgid "" +"As we shall see, pickle does not use directly the methods described above. " +"In fact, these methods are part of the copy protocol which implements the :" +"meth:`__reduce__` special method. The copy protocol provides a unified " +"interface for retrieving the data necessary for pickling and copying " +"objects. [#]_" +msgstr "" + +#: ../Doc/library/pickle.rst:575 +msgid "" +"Although powerful, implementing :meth:`__reduce__` directly in your classes " +"is error prone. For this reason, class designers should use the high-level " +"interface (i.e., :meth:`__getnewargs_ex__`, :meth:`__getstate__` and :meth:" +"`__setstate__`) whenever possible. We will show, however, cases where " +"using :meth:`__reduce__` is the only option or leads to more efficient " +"pickling or both." +msgstr "" + +#: ../Doc/library/pickle.rst:584 +msgid "" +"The interface is currently defined as follows. The :meth:`__reduce__` " +"method takes no argument and shall return either a string or preferably a " +"tuple (the returned object is often referred to as the \"reduce value\")." +msgstr "" + +#: ../Doc/library/pickle.rst:588 +msgid "" +"If a string is returned, the string should be interpreted as the name of a " +"global variable. It should be the object's local name relative to its " +"module; the pickle module searches the module namespace to determine the " +"object's module. This behaviour is typically useful for singletons." +msgstr "" + +#: ../Doc/library/pickle.rst:593 +msgid "" +"When a tuple is returned, it must be between two and five items long. " +"Optional items can either be omitted, or ``None`` can be provided as their " +"value. The semantics of each item are in order:" +msgstr "" + +#: ../Doc/library/pickle.rst:599 +msgid "" +"A callable object that will be called to create the initial version of the " +"object." +msgstr "" + +#: ../Doc/library/pickle.rst:602 +msgid "" +"A tuple of arguments for the callable object. An empty tuple must be given " +"if the callable does not accept any argument." +msgstr "" + +#: ../Doc/library/pickle.rst:605 +msgid "" +"Optionally, the object's state, which will be passed to the object's :meth:" +"`__setstate__` method as previously described. If the object has no such " +"method then, the value must be a dictionary and it will be added to the " +"object's :attr:`~object.__dict__` attribute." +msgstr "" + +#: ../Doc/library/pickle.rst:610 +msgid "" +"Optionally, an iterator (and not a sequence) yielding successive items. " +"These items will be appended to the object either using ``obj.append(item)`` " +"or, in batch, using ``obj.extend(list_of_items)``. This is primarily used " +"for list subclasses, but may be used by other classes as long as they have :" +"meth:`append` and :meth:`extend` methods with the appropriate signature. " +"(Whether :meth:`append` or :meth:`extend` is used depends on which pickle " +"protocol version is used as well as the number of items to append, so both " +"must be supported.)" +msgstr "" + +#: ../Doc/library/pickle.rst:619 +msgid "" +"Optionally, an iterator (not a sequence) yielding successive key-value " +"pairs. These items will be stored to the object using ``obj[key] = " +"value``. This is primarily used for dictionary subclasses, but may be used " +"by other classes as long as they implement :meth:`__setitem__`." +msgstr "" + +#: ../Doc/library/pickle.rst:627 +msgid "" +"Alternatively, a :meth:`__reduce_ex__` method may be defined. The only " +"difference is this method should take a single integer argument, the " +"protocol version. When defined, pickle will prefer it over the :meth:" +"`__reduce__` method. In addition, :meth:`__reduce__` automatically becomes " +"a synonym for the extended version. The main use for this method is to " +"provide backwards-compatible reduce values for older Python releases." +msgstr "" + +#: ../Doc/library/pickle.rst:639 +msgid "Persistence of External Objects" +msgstr "" + +#: ../Doc/library/pickle.rst:645 +msgid "" +"For the benefit of object persistence, the :mod:`pickle` module supports the " +"notion of a reference to an object outside the pickled data stream. Such " +"objects are referenced by a persistent ID, which should be either a string " +"of alphanumeric characters (for protocol 0) [#]_ or just an arbitrary object " +"(for any newer protocol)." +msgstr "" + +#: ../Doc/library/pickle.rst:651 +msgid "" +"The resolution of such persistent IDs is not defined by the :mod:`pickle` " +"module; it will delegate this resolution to the user defined methods on the " +"pickler and unpickler, :meth:`~Pickler.persistent_id` and :meth:`~Unpickler." +"persistent_load` respectively." +msgstr "" + +#: ../Doc/library/pickle.rst:656 +msgid "" +"To pickle objects that have an external persistent id, the pickler must have " +"a custom :meth:`~Pickler.persistent_id` method that takes an object as an " +"argument and returns either ``None`` or the persistent id for that object. " +"When ``None`` is returned, the pickler simply pickles the object as normal. " +"When a persistent ID string is returned, the pickler will pickle that " +"object, along with a marker so that the unpickler will recognize it as a " +"persistent ID." +msgstr "" + +#: ../Doc/library/pickle.rst:663 +msgid "" +"To unpickle external objects, the unpickler must have a custom :meth:" +"`~Unpickler.persistent_load` method that takes a persistent ID object and " +"returns the referenced object." +msgstr "" + +#: ../Doc/library/pickle.rst:667 +msgid "" +"Here is a comprehensive example presenting how persistent ID can be used to " +"pickle external objects by reference." +msgstr "" + +#: ../Doc/library/pickle.rst:675 +msgid "Dispatch Tables" +msgstr "" + +#: ../Doc/library/pickle.rst:677 +msgid "" +"If one wants to customize pickling of some classes without disturbing any " +"other code which depends on pickling, then one can create a pickler with a " +"private dispatch table." +msgstr "" + +#: ../Doc/library/pickle.rst:681 +msgid "" +"The global dispatch table managed by the :mod:`copyreg` module is available " +"as :data:`copyreg.dispatch_table`. Therefore, one may choose to use a " +"modified copy of :data:`copyreg.dispatch_table` as a private dispatch table." +msgstr "" + +#: ../Doc/library/pickle.rst:686 +msgid "For example ::" +msgstr "Par exemple ::" + +#: ../Doc/library/pickle.rst:693 +msgid "" +"creates an instance of :class:`pickle.Pickler` with a private dispatch table " +"which handles the ``SomeClass`` class specially. Alternatively, the code ::" +msgstr "" + +#: ../Doc/library/pickle.rst:703 +msgid "" +"does the same, but all instances of ``MyPickler`` will by default share the " +"same dispatch table. The equivalent code using the :mod:`copyreg` module " +"is ::" +msgstr "" + +#: ../Doc/library/pickle.rst:714 +msgid "Handling Stateful Objects" +msgstr "" + +#: ../Doc/library/pickle.rst:720 +msgid "" +"Here's an example that shows how to modify pickling behavior for a class. " +"The :class:`TextReader` class opens a text file, and returns the line number " +"and line contents each time its :meth:`!readline` method is called. If a :" +"class:`TextReader` instance is pickled, all attributes *except* the file " +"object member are saved. When the instance is unpickled, the file is " +"reopened, and reading resumes from the last location. The :meth:" +"`__setstate__` and :meth:`__getstate__` methods are used to implement this " +"behavior. ::" +msgstr "" + +#: ../Doc/library/pickle.rst:766 +msgid "A sample usage might be something like this::" +msgstr "" + +#: ../Doc/library/pickle.rst:781 +msgid "Restricting Globals" +msgstr "" + +#: ../Doc/library/pickle.rst:786 +msgid "" +"By default, unpickling will import any class or function that it finds in " +"the pickle data. For many applications, this behaviour is unacceptable as " +"it permits the unpickler to import and invoke arbitrary code. Just consider " +"what this hand-crafted pickle data stream does when loaded::" +msgstr "" + +#: ../Doc/library/pickle.rst:796 +msgid "" +"In this example, the unpickler imports the :func:`os.system` function and " +"then apply the string argument \"echo hello world\". Although this example " +"is inoffensive, it is not difficult to imagine one that could damage your " +"system." +msgstr "" + +#: ../Doc/library/pickle.rst:800 +msgid "" +"For this reason, you may want to control what gets unpickled by customizing :" +"meth:`Unpickler.find_class`. Unlike its name suggests, :meth:`Unpickler." +"find_class` is called whenever a global (i.e., a class or a function) is " +"requested. Thus it is possible to either completely forbid globals or " +"restrict them to a safe subset." +msgstr "" + +#: ../Doc/library/pickle.rst:806 +msgid "" +"Here is an example of an unpickler allowing only few safe classes from the :" +"mod:`builtins` module to be loaded::" +msgstr "" + +#: ../Doc/library/pickle.rst:835 +msgid "A sample usage of our unpickler working has intended::" +msgstr "" + +#: ../Doc/library/pickle.rst:854 +msgid "" +"As our examples shows, you have to be careful with what you allow to be " +"unpickled. Therefore if security is a concern, you may want to consider " +"alternatives such as the marshalling API in :mod:`xmlrpc.client` or third-" +"party solutions." +msgstr "" + +#: ../Doc/library/pickle.rst:861 +msgid "Performance" +msgstr "Performances" + +#: ../Doc/library/pickle.rst:863 +msgid "" +"Recent versions of the pickle protocol (from protocol 2 and upwards) feature " +"efficient binary encodings for several common features and built-in types. " +"Also, the :mod:`pickle` module has a transparent optimizer written in C." +msgstr "" + +#: ../Doc/library/pickle.rst:871 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/pickle.rst:873 +msgid "" +"For the simplest code, use the :func:`dump` and :func:`load` functions. ::" +msgstr "" + +#: ../Doc/library/pickle.rst:889 +msgid "The following example reads the resulting pickled data. ::" +msgstr "" + +#: ../Doc/library/pickle.rst:906 +msgid "Module :mod:`copyreg`" +msgstr "" + +#: ../Doc/library/pickle.rst:906 +msgid "Pickle interface constructor registration for extension types." +msgstr "" + +#: ../Doc/library/pickle.rst:909 +msgid "Module :mod:`pickletools`" +msgstr "" + +#: ../Doc/library/pickle.rst:909 +msgid "Tools for working with and analyzing pickled data." +msgstr "" + +#: ../Doc/library/pickle.rst:912 +msgid "Module :mod:`shelve`" +msgstr "" + +#: ../Doc/library/pickle.rst:912 +msgid "Indexed databases of objects; uses :mod:`pickle`." +msgstr "" + +#: ../Doc/library/pickle.rst:915 +msgid "Module :mod:`copy`" +msgstr "" + +#: ../Doc/library/pickle.rst:915 +msgid "Shallow and deep object copying." +msgstr "" + +#: ../Doc/library/pickle.rst:917 +msgid "Module :mod:`marshal`" +msgstr "" + +#: ../Doc/library/pickle.rst:918 +msgid "High-performance serialization of built-in types." +msgstr "" + +#: ../Doc/library/pickle.rst:922 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/pickle.rst:923 +msgid "Don't confuse this with the :mod:`marshal` module" +msgstr "" + +#: ../Doc/library/pickle.rst:925 +msgid "" +"This is why :keyword:`lambda` functions cannot be pickled: all :keyword:`!" +"lambda` functions share the same name: ````." +msgstr "" + +#: ../Doc/library/pickle.rst:928 +msgid "" +"The exception raised will likely be an :exc:`ImportError` or an :exc:" +"`AttributeError` but it could be something else." +msgstr "" + +#: ../Doc/library/pickle.rst:931 +msgid "" +"The :mod:`copy` module uses this protocol for shallow and deep copying " +"operations." +msgstr "" + +#: ../Doc/library/pickle.rst:934 +msgid "" +"The limitation on alphanumeric characters is due to the fact the persistent " +"IDs, in protocol 0, are delimited by the newline character. Therefore if " +"any kind of newline characters occurs in persistent IDs, the resulting " +"pickle will become unreadable." +msgstr "" diff --git a/library/pickletools.po b/library/pickletools.po new file mode 100644 index 000000000..a8213e814 --- /dev/null +++ b/library/pickletools.po @@ -0,0 +1,115 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/pickletools.rst:2 +msgid ":mod:`pickletools` --- Tools for pickle developers" +msgstr "" + +#: ../Doc/library/pickletools.rst:8 +msgid "**Source code:** :source:`Lib/pickletools.py`" +msgstr "" + +#: ../Doc/library/pickletools.rst:13 +msgid "" +"This module contains various constants relating to the intimate details of " +"the :mod:`pickle` module, some lengthy comments about the implementation, " +"and a few useful functions for analyzing pickled data. The contents of this " +"module are useful for Python core developers who are working on the :mod:" +"`pickle`; ordinary users of the :mod:`pickle` module probably won't find " +"the :mod:`pickletools` module relevant." +msgstr "" + +#: ../Doc/library/pickletools.rst:21 +msgid "Command line usage" +msgstr "Utilisation de la ligne de commande" + +#: ../Doc/library/pickletools.rst:25 +msgid "" +"When invoked from the command line, ``python -m pickletools`` will " +"disassemble the contents of one or more pickle files. Note that if you want " +"to see the Python object stored in the pickle rather than the details of " +"pickle format, you may want to use ``-m pickle`` instead. However, when the " +"pickle file that you want to examine comes from an untrusted source, ``-m " +"pickletools`` is a safer option because it does not execute pickle bytecode." +msgstr "" + +#: ../Doc/library/pickletools.rst:33 +msgid "For example, with a tuple ``(1, 2)`` pickled in file ``x.pickle``:" +msgstr "" + +#: ../Doc/library/pickletools.rst:50 +msgid "Command line options" +msgstr "Options de la ligne de commande" + +#: ../Doc/library/pickletools.rst:56 +msgid "Annotate each line with a short opcode description." +msgstr "" + +#: ../Doc/library/pickletools.rst:60 +msgid "Name of a file where the output should be written." +msgstr "" + +#: ../Doc/library/pickletools.rst:64 +msgid "The number of blanks by which to indent a new MARK level." +msgstr "" + +#: ../Doc/library/pickletools.rst:68 +msgid "" +"When multiple objects are disassembled, preserve memo between disassemblies." +msgstr "" + +#: ../Doc/library/pickletools.rst:73 +msgid "" +"When more than one pickle file are specified, print given preamble before " +"each disassembly." +msgstr "" + +#: ../Doc/library/pickletools.rst:79 +msgid "Programmatic Interface" +msgstr "" + +#: ../Doc/library/pickletools.rst:84 +msgid "" +"Outputs a symbolic disassembly of the pickle to the file-like object *out*, " +"defaulting to ``sys.stdout``. *pickle* can be a string or a file-like " +"object. *memo* can be a Python dictionary that will be used as the pickle's " +"memo; it can be used to perform disassemblies across multiple pickles " +"created by the same pickler. Successive levels, indicated by ``MARK`` " +"opcodes in the stream, are indented by *indentlevel* spaces. If a nonzero " +"value is given to *annotate*, each opcode in the output is annotated with a " +"short description. The value of *annotate* is used as a hint for the column " +"where annotation should start." +msgstr "" + +#: ../Doc/library/pickletools.rst:95 +msgid "The *annotate* argument." +msgstr "" + +#: ../Doc/library/pickletools.rst:100 +msgid "" +"Provides an :term:`iterator` over all of the opcodes in a pickle, returning " +"a sequence of ``(opcode, arg, pos)`` triples. *opcode* is an instance of " +"an :class:`OpcodeInfo` class; *arg* is the decoded value, as a Python " +"object, of the opcode's argument; *pos* is the position at which this opcode " +"is located. *pickle* can be a string or a file-like object." +msgstr "" + +#: ../Doc/library/pickletools.rst:108 +msgid "" +"Returns a new equivalent pickle string after eliminating unused ``PUT`` " +"opcodes. The optimized pickle is shorter, takes less transmission time, " +"requires less storage space, and unpickles more efficiently." +msgstr "" diff --git a/library/pipes.po b/library/pipes.po new file mode 100644 index 000000000..3b82b2fe7 --- /dev/null +++ b/library/pipes.po @@ -0,0 +1,132 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-28 18:32+0200\n" +"Last-Translator: Bruno Inec \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/pipes.rst:2 +msgid ":mod:`pipes` --- Interface to shell pipelines" +msgstr ":mod:`pipes` — Interface au *pipelines* shell" + +#: ../Doc/library/pipes.rst:10 +msgid "**Source code:** :source:`Lib/pipes.py`" +msgstr "**Code source :** :source:`Lib/pipes.py`" + +#: ../Doc/library/pipes.rst:14 +msgid "" +"The :mod:`pipes` module defines a class to abstract the concept of a " +"*pipeline* --- a sequence of converters from one file to another." +msgstr "" +"Le module :mod:`pipes` définit une classe permettant d'abstraire le concept " +"de *pipeline* --- une séquence de convertisseurs d'un fichier vers un autre." + +#: ../Doc/library/pipes.rst:17 +msgid "" +"Because the module uses :program:`/bin/sh` command lines, a POSIX or " +"compatible shell for :func:`os.system` and :func:`os.popen` is required." +msgstr "" +"Du fait que le module utilise les lignes de commandes :program:`/bin/sh`, un " +"shell POSIX ou compatible est requis pour :func:`os.system` et :func:`os." +"popen`." + +#: ../Doc/library/pipes.rst:20 +msgid "The :mod:`pipes` module defines the following class:" +msgstr "Le module :mod:`pipes` définit la classe suivante :" + +#: ../Doc/library/pipes.rst:25 +msgid "An abstraction of a pipeline." +msgstr "Une abstraction d'un *pipeline*." + +#: ../Doc/library/pipes.rst:27 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/pipes.rst:42 +msgid "Template Objects" +msgstr "L'Objet *Template*" + +#: ../Doc/library/pipes.rst:44 +msgid "Template objects following methods:" +msgstr "Les méthodes de l'objet *Template* :" + +#: ../Doc/library/pipes.rst:49 +msgid "Restore a pipeline template to its initial state." +msgstr "Réinitialise un modèle de *pipeline* à son état initial." + +#: ../Doc/library/pipes.rst:54 +msgid "Return a new, equivalent, pipeline template." +msgstr "Renvoie un nouveau modèle de *pipeline*, équivalent." + +#: ../Doc/library/pipes.rst:59 +msgid "" +"If *flag* is true, turn debugging on. Otherwise, turn debugging off. When " +"debugging is on, commands to be executed are printed, and the shell is given " +"``set -x`` command to be more verbose." +msgstr "" +"Si *flag* est vrai, active le débogage. Sinon, le désactive. Quand le " +"débogage est actif, les commandes à exécuter seront affichée et le shell est " +"pourvu de la commande ``set -x`` afin d'être plus verbeux." + +#: ../Doc/library/pipes.rst:66 +msgid "" +"Append a new action at the end. The *cmd* variable must be a valid bourne " +"shell command. The *kind* variable consists of two letters." +msgstr "" +"Ajoute une nouvelle action à la fin. La variable *cmd* doit être une " +"commande *bourne shell* valide. La variable *kind* est composée de deux " +"lettres." + +#: ../Doc/library/pipes.rst:69 +msgid "" +"The first letter can be either of ``'-'`` (which means the command reads its " +"standard input), ``'f'`` (which means the commands reads a given file on the " +"command line) or ``'.'`` (which means the commands reads no input, and hence " +"must be first.)" +msgstr "" +"La première lettre peut soit être ``'-'`` (qui signifie que la commande lit " +"sa sortie standard), soit ``'f'`` (qui signifie que la commande lit un " +"fichier donné par la ligne de commande), soit ``'.'`` (qui signifie que la " +"commande ne lit pas d'entrée, et donc doit être la première.)" + +#: ../Doc/library/pipes.rst:74 +msgid "" +"Similarly, the second letter can be either of ``'-'`` (which means the " +"command writes to standard output), ``'f'`` (which means the command writes " +"a file on the command line) or ``'.'`` (which means the command does not " +"write anything, and hence must be last.)" +msgstr "" +"De même, la seconde lettre peut soit être ``'-'`` (qui signifie que la " +"commande écrit sur la sortie standard), soit ``'f'`` (qui signifie que la " +"commande écrit sur un fichier donné par la ligne de commande), soit ``'.'`` " +"(qui signifie que la commande n'écrit rien, et donc doit être la dernière.)" + +#: ../Doc/library/pipes.rst:82 +msgid "" +"Add a new action at the beginning. See :meth:`append` for explanations of " +"the arguments." +msgstr "" +"Ajoute une nouvelle action au début. Voir :meth:`append` pour plus " +"d'explications sur les arguments." + +#: ../Doc/library/pipes.rst:88 +msgid "" +"Return a file-like object, open to *file*, but read from or written to by " +"the pipeline. Note that only one of ``'r'``, ``'w'`` may be given." +msgstr "" +"Renvoie un objet `file-like`, ouvert à *file*, mais permettant d'écrire vers " +"le *pipeline* ou de lire depuis celui-ci. À noter que seulement un des deux " +"('r' ou 'w') peut être donné." + +#: ../Doc/library/pipes.rst:94 +msgid "Copy *infile* to *outfile* through the pipe." +msgstr "Copie *infile* vers *outfile* au travers du *pipe*." diff --git a/library/pkgutil.po b/library/pkgutil.po new file mode 100644 index 000000000..8bf71adf3 --- /dev/null +++ b/library/pkgutil.po @@ -0,0 +1,260 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/pkgutil.rst:2 +msgid ":mod:`pkgutil` --- Package extension utility" +msgstr "" + +#: ../Doc/library/pkgutil.rst:7 +msgid "**Source code:** :source:`Lib/pkgutil.py`" +msgstr "**Code source :** :source:`Lib/pkgutil.py`" + +#: ../Doc/library/pkgutil.rst:11 +msgid "" +"This module provides utilities for the import system, in particular package " +"support." +msgstr "" + +#: ../Doc/library/pkgutil.rst:16 +msgid "A namedtuple that holds a brief summary of a module's info." +msgstr "" + +#: ../Doc/library/pkgutil.rst:22 +msgid "" +"Extend the search path for the modules which comprise a package. Intended " +"use is to place the following code in a package's :file:`__init__.py`::" +msgstr "" + +#: ../Doc/library/pkgutil.rst:28 +msgid "" +"This will add to the package's ``__path__`` all subdirectories of " +"directories on ``sys.path`` named after the package. This is useful if one " +"wants to distribute different parts of a single logical package as multiple " +"directories." +msgstr "" + +#: ../Doc/library/pkgutil.rst:33 +msgid "" +"It also looks for :file:`\\*.pkg` files beginning where ``*`` matches the " +"*name* argument. This feature is similar to :file:`\\*.pth` files (see the :" +"mod:`site` module for more information), except that it doesn't special-case " +"lines starting with ``import``. A :file:`\\*.pkg` file is trusted at face " +"value: apart from checking for duplicates, all entries found in a :file:`\\*." +"pkg` file are added to the path, regardless of whether they exist on the " +"filesystem. (This is a feature.)" +msgstr "" + +#: ../Doc/library/pkgutil.rst:41 +msgid "" +"If the input path is not a list (as is the case for frozen packages) it is " +"returned unchanged. The input path is not modified; an extended copy is " +"returned. Items are only appended to the copy at the end." +msgstr "" + +#: ../Doc/library/pkgutil.rst:45 +msgid "" +"It is assumed that :data:`sys.path` is a sequence. Items of :data:`sys." +"path` that are not strings referring to existing directories are ignored. " +"Unicode items on :data:`sys.path` that cause errors when used as filenames " +"may cause this function to raise an exception (in line with :func:`os.path." +"isdir` behavior)." +msgstr "" + +#: ../Doc/library/pkgutil.rst:54 +msgid ":pep:`302` Finder that wraps Python's \"classic\" import algorithm." +msgstr "" + +#: ../Doc/library/pkgutil.rst:56 +msgid "" +"If *dirname* is a string, a :pep:`302` finder is created that searches that " +"directory. If *dirname* is ``None``, a :pep:`302` finder is created that " +"searches the current :data:`sys.path`, plus any modules that are frozen or " +"built-in." +msgstr "" + +#: ../Doc/library/pkgutil.rst:61 +msgid "" +"Note that :class:`ImpImporter` does not currently support being used by " +"placement on :data:`sys.meta_path`." +msgstr "" + +#: ../Doc/library/pkgutil.rst:64 ../Doc/library/pkgutil.rst:73 +msgid "" +"This emulation is no longer needed, as the standard import mechanism is now " +"fully PEP 302 compliant and available in :mod:`importlib`." +msgstr "" + +#: ../Doc/library/pkgutil.rst:71 +msgid ":term:`Loader` that wraps Python's \"classic\" import algorithm." +msgstr "" + +#: ../Doc/library/pkgutil.rst:80 +msgid "Retrieve a module :term:`loader` for the given *fullname*." +msgstr "" + +#: ../Doc/library/pkgutil.rst:82 +msgid "" +"This is a backwards compatibility wrapper around :func:`importlib.util." +"find_spec` that converts most failures to :exc:`ImportError` and only " +"returns the loader rather than the full :class:`ModuleSpec`." +msgstr "" + +#: ../Doc/library/pkgutil.rst:87 ../Doc/library/pkgutil.rst:104 +#: ../Doc/library/pkgutil.rst:119 ../Doc/library/pkgutil.rst:140 +#: ../Doc/library/pkgutil.rst:161 ../Doc/library/pkgutil.rst:200 +msgid "" +"Updated to be based directly on :mod:`importlib` rather than relying on the " +"package internal PEP 302 import emulation." +msgstr "" + +#: ../Doc/library/pkgutil.rst:91 ../Doc/library/pkgutil.rst:123 +msgid "Updated to be based on :pep:`451`" +msgstr "" + +#: ../Doc/library/pkgutil.rst:96 +msgid "Retrieve a :term:`finder` for the given *path_item*." +msgstr "" + +#: ../Doc/library/pkgutil.rst:98 +msgid "" +"The returned finder is cached in :data:`sys.path_importer_cache` if it was " +"newly created by a path hook." +msgstr "" + +#: ../Doc/library/pkgutil.rst:101 +msgid "" +"The cache (or part of it) can be cleared manually if a rescan of :data:`sys." +"path_hooks` is necessary." +msgstr "" + +#: ../Doc/library/pkgutil.rst:111 +msgid "Get a :term:`loader` object for *module_or_name*." +msgstr "" + +#: ../Doc/library/pkgutil.rst:113 +msgid "" +"If the module or package is accessible via the normal import mechanism, a " +"wrapper around the relevant part of that machinery is returned. Returns " +"``None`` if the module cannot be found or imported. If the named module is " +"not already imported, its containing package (if any) is imported, in order " +"to establish the package ``__path__``." +msgstr "" + +#: ../Doc/library/pkgutil.rst:129 +msgid "Yield :term:`finder` objects for the given module name." +msgstr "" + +#: ../Doc/library/pkgutil.rst:131 +msgid "" +"If fullname contains a '.', the finders will be for the package containing " +"fullname, otherwise they will be all registered top level finders (i.e. " +"those on both sys.meta_path and sys.path_hooks)." +msgstr "" + +#: ../Doc/library/pkgutil.rst:135 +msgid "" +"If the named module is in a package, that package is imported as a side " +"effect of invoking this function." +msgstr "" + +#: ../Doc/library/pkgutil.rst:138 +msgid "If no module name is specified, all top level finders are produced." +msgstr "" + +#: ../Doc/library/pkgutil.rst:147 +msgid "" +"Yields :class:`ModuleInfo` for all submodules on *path*, or, if *path* is " +"``None``, all top-level modules on ``sys.path``." +msgstr "" + +#: ../Doc/library/pkgutil.rst:150 ../Doc/library/pkgutil.rst:171 +msgid "" +"*path* should be either ``None`` or a list of paths to look for modules in." +msgstr "" + +#: ../Doc/library/pkgutil.rst:152 ../Doc/library/pkgutil.rst:173 +msgid "" +"*prefix* is a string to output on the front of every module name on output." +msgstr "" + +#: ../Doc/library/pkgutil.rst:156 ../Doc/library/pkgutil.rst:195 +msgid "" +"Only works for a :term:`finder` which defines an ``iter_modules()`` method. " +"This interface is non-standard, so the module also provides implementations " +"for :class:`importlib.machinery.FileFinder` and :class:`zipimport." +"zipimporter`." +msgstr "" + +#: ../Doc/library/pkgutil.rst:168 +msgid "" +"Yields :class:`ModuleInfo` for all modules recursively on *path*, or, if " +"*path* is ``None``, all accessible modules." +msgstr "" + +#: ../Doc/library/pkgutil.rst:175 +msgid "" +"Note that this function must import all *packages* (*not* all modules!) on " +"the given *path*, in order to access the ``__path__`` attribute to find " +"submodules." +msgstr "" + +#: ../Doc/library/pkgutil.rst:179 +msgid "" +"*onerror* is a function which gets called with one argument (the name of the " +"package which was being imported) if any exception occurs while trying to " +"import a package. If no *onerror* function is supplied, :exc:`ImportError`" +"\\s are caught and ignored, while all other exceptions are propagated, " +"terminating the search." +msgstr "" + +#: ../Doc/library/pkgutil.rst:185 +msgid "Examples::" +msgstr "Exemples ::" + +#: ../Doc/library/pkgutil.rst:207 +msgid "Get a resource from a package." +msgstr "" + +#: ../Doc/library/pkgutil.rst:209 +msgid "" +"This is a wrapper for the :term:`loader` :meth:`get_data ` API. The *package* argument should be the name of " +"a package, in standard module format (``foo.bar``). The *resource* argument " +"should be in the form of a relative filename, using ``/`` as the path " +"separator. The parent directory name ``..`` is not allowed, and nor is a " +"rooted name (starting with a ``/``)." +msgstr "" + +#: ../Doc/library/pkgutil.rst:216 +msgid "" +"The function returns a binary string that is the contents of the specified " +"resource." +msgstr "" + +#: ../Doc/library/pkgutil.rst:219 +msgid "" +"For packages located in the filesystem, which have already been imported, " +"this is the rough equivalent of::" +msgstr "" + +#: ../Doc/library/pkgutil.rst:225 +msgid "" +"If the package cannot be located or loaded, or it uses a :term:`loader` " +"which does not support :meth:`get_data `, then ``None`` is returned. In particular, the :term:`loader` " +"for :term:`namespace packages ` does not support :meth:" +"`get_data `." +msgstr "" diff --git a/library/platform.po b/library/platform.po new file mode 100644 index 000000000..ac46c1e6f --- /dev/null +++ b/library/platform.po @@ -0,0 +1,453 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/platform.rst:2 +msgid ":mod:`platform` --- Access to underlying platform's identifying data" +msgstr ":mod:`platform` — Accès aux données sous-jacentes de la plateforme" + +#: ../Doc/library/platform.rst:10 +msgid "**Source code:** :source:`Lib/platform.py`" +msgstr "**Code source :** :source:`Lib/platform.py`" + +#: ../Doc/library/platform.rst:16 +msgid "" +"Specific platforms listed alphabetically, with Linux included in the Unix " +"section." +msgstr "" +"Les spécificités des plateformes sont regroupées dans des sections triées " +"par ordre alphabétique. Linux est inclus dans la section Unix." + +#: ../Doc/library/platform.rst:21 +msgid "Cross Platform" +msgstr "Multi-plateforme" + +#: ../Doc/library/platform.rst:26 +msgid "" +"Queries the given executable (defaults to the Python interpreter binary) for " +"various architecture information." +msgstr "" +"Interroge l'exécutable fourni (par défaut l'interpréteur Python) sur les " +"informations de l'architecture." + +#: ../Doc/library/platform.rst:29 +msgid "" +"Returns a tuple ``(bits, linkage)`` which contain information about the bit " +"architecture and the linkage format used for the executable. Both values are " +"returned as strings." +msgstr "" +"Renvoie un *n*-uplet de ``(bits, linkage)`` qui contient de l'information " +"sur l'architecture binaire et le format de lien. Les deux valeurs sont des " +"chaînes de caractères." + +#: ../Doc/library/platform.rst:33 +msgid "" +"Values that cannot be determined are returned as given by the parameter " +"presets. If bits is given as ``''``, the ``sizeof(pointer)`` (or " +"``sizeof(long)`` on Python version < 1.5.2) is used as indicator for the " +"supported pointer size." +msgstr "" +"Lorsqu'une valeur ne peut être déterminée, la valeur passée en paramètre est " +"utilisée. Si la valeur passée à *bits* est ``''``, la valeur de " +"``sizeof(pointer)`` (ou ``sizeof(long)`` sur les versions Python antérieures " +"à 1.5.2) est utilisée comme indicateur de la taille de pointeur prise en " +"charge." + +#: ../Doc/library/platform.rst:38 +msgid "" +"The function relies on the system's :file:`file` command to do the actual " +"work. This is available on most if not all Unix platforms and some non-Unix " +"platforms and then only if the executable points to the Python interpreter. " +"Reasonable defaults are used when the above needs are not met." +msgstr "" +"La fonction dépend de la commande :file:`file` du système pour accomplir la " +"tâche. `file` est disponible sur quasiment toutes les plateformes Unix ainsi " +"que sur certaines plateformes hors de la famille Unix et l'exécutable doit " +"pointer vers l'interpréteur Python. Des valeurs par défaut raisonnables sont " +"utilisées lorsque les conditions précédentes ne sont pas atteintes." + +#: ../Doc/library/platform.rst:45 +msgid "" +"On Mac OS X (and perhaps other platforms), executable files may be universal " +"files containing multiple architectures." +msgstr "" +"Sur Mac OS X (ainsi que d'autres plateformes), les fichiers exécutables " +"peuvent être universels et contenir plusieurs architectures." + +#: ../Doc/library/platform.rst:48 +msgid "" +"To get at the \"64-bitness\" of the current interpreter, it is more reliable " +"to query the :attr:`sys.maxsize` attribute::" +msgstr "" +"Afin de déterminer si l'interpréteur courant est 64-bit, une méthode plus " +"fiable est d'interroger l'attribut :attr:`sys.maxsize` ::" + +#: ../Doc/library/platform.rst:56 +msgid "" +"Returns the machine type, e.g. ``'i386'``. An empty string is returned if " +"the value cannot be determined." +msgstr "" +"Renvoie le type de machine. Par exemple, ``'i386'``. Une chaîne de " +"caractères vide est renvoyée si la valeur ne peut être déterminée." + +#: ../Doc/library/platform.rst:62 +msgid "" +"Returns the computer's network name (may not be fully qualified!). An empty " +"string is returned if the value cannot be determined." +msgstr "" +"Renvoie le nom de l'ordinateur sur le réseau (pas forcément pleinement " +"qualifié). Une chaîne de caractères vide est renvoyée s'il ne peut pas être " +"déterminé." + +#: ../Doc/library/platform.rst:68 +msgid "" +"Returns a single string identifying the underlying platform with as much " +"useful information as possible." +msgstr "" +"Renvoie une chaîne de caractère identifiant la plateforme avec le plus " +"d'informations possible." + +#: ../Doc/library/platform.rst:71 +msgid "" +"The output is intended to be *human readable* rather than machine parseable. " +"It may look different on different platforms and this is intended." +msgstr "" +"La valeur renvoyée est destinée à la *lecture humaine* plutôt que " +"l'interprétation machine. Il est possible qu'elle soit différente selon la " +"plateforme et c'est voulu." + +#: ../Doc/library/platform.rst:74 +msgid "" +"If *aliased* is true, the function will use aliases for various platforms " +"that report system names which differ from their common names, for example " +"SunOS will be reported as Solaris. The :func:`system_alias` function is " +"used to implement this." +msgstr "" +"Si *aliased* est vrai, la fonction utilisera des alias pour certaines " +"plateformes qui utilisent des noms de système qui diffèrent de leurs noms " +"communs. Par exemple, SunOS sera reconnu comme Solaris. La fonction :func:" +"`system_alias` est utilisée pour l'implémentation." + +#: ../Doc/library/platform.rst:79 +msgid "" +"Setting *terse* to true causes the function to return only the absolute " +"minimum information needed to identify the platform." +msgstr "" +"Si *terse* est vrai, la fonction ne renverra que l'information nécessaire à " +"l'identification de la plateforme." + +#: ../Doc/library/platform.rst:85 +msgid "Returns the (real) processor name, e.g. ``'amdk6'``." +msgstr "Renvoie le (vrai) nom du processeur. Par exemple : ``'amdk6'``." + +#: ../Doc/library/platform.rst:87 +msgid "" +"An empty string is returned if the value cannot be determined. Note that " +"many platforms do not provide this information or simply return the same " +"value as for :func:`machine`. NetBSD does this." +msgstr "" +"Une chaîne de caractères vide est renvoyée si la valeur ne peut être " +"déterminée. Prenez note que plusieurs plateformes ne fournissent pas cette " +"information ou renvoient la même valeur que la fonction :func:`machine`. " +"NetBSD agit ainsi." + +#: ../Doc/library/platform.rst:94 +msgid "" +"Returns a tuple ``(buildno, builddate)`` stating the Python build number and " +"date as strings." +msgstr "" +"Renvoie une paire ``(buildno, builddate)`` de chaîne de caractères " +"identifiant la version et la date de compilation de Python." + +#: ../Doc/library/platform.rst:100 +msgid "Returns a string identifying the compiler used for compiling Python." +msgstr "" +"Renvoie une chaîne de caractères identifiant le compilateur utilisé pour " +"compiler Python." + +#: ../Doc/library/platform.rst:105 +msgid "Returns a string identifying the Python implementation SCM branch." +msgstr "" +"Renvoie la chaîne de caractères identifiant la branche du gestionnaire de " +"versions de l'implémentation Python." + +#: ../Doc/library/platform.rst:110 +msgid "" +"Returns a string identifying the Python implementation. Possible return " +"values are: 'CPython', 'IronPython', 'Jython', 'PyPy'." +msgstr "" +"Renvoie une chaîne de caractères identifiant l'implémentation de Python. Des " +"valeurs possibles sont : ``CPython``, ``IronPython``, ``Jython``, ``Pypy``." + +#: ../Doc/library/platform.rst:116 +msgid "Returns a string identifying the Python implementation SCM revision." +msgstr "" +"Renvoie la chaîne de caractères identifiant la révision du gestionnaire de " +"versions de l'implémentation Python." + +#: ../Doc/library/platform.rst:121 +msgid "Returns the Python version as string ``'major.minor.patchlevel'``." +msgstr "" +"Renvoie la version de Python comme une chaîne de caractères ``'major.minor." +"patchlevel'``." + +#: ../Doc/library/platform.rst:123 +msgid "" +"Note that unlike the Python ``sys.version``, the returned value will always " +"include the patchlevel (it defaults to 0)." +msgstr "" +"Prenez note que la valeur renvoyée inclut toujours le *patchlevel* (valeur " +"par défaut de 0) à la différence de ``sys.version``." + +#: ../Doc/library/platform.rst:129 +msgid "" +"Returns the Python version as tuple ``(major, minor, patchlevel)`` of " +"strings." +msgstr "" +"Renvoie la version de Python comme un triplet de chaînes de caractères " +"``(major, minor, patchlevel)``." + +#: ../Doc/library/platform.rst:131 +msgid "" +"Note that unlike the Python ``sys.version``, the returned value will always " +"include the patchlevel (it defaults to ``'0'``)." +msgstr "" +"Prenez note que la valeur renvoyée inclut toujours le *patchlevel* (valeur " +"par défaut de ``'0'``) à la différence de ``sys.version``." + +#: ../Doc/library/platform.rst:137 +msgid "" +"Returns the system's release, e.g. ``'2.2.0'`` or ``'NT'`` An empty string " +"is returned if the value cannot be determined." +msgstr "" +"Renvoie la version de déploiement du système, par exemple, ``'2.2.0'`` ou " +"``'NT'``. Une chaîne de caractères vide signifie qu'aucune valeur ne peut " +"être déterminée." + +#: ../Doc/library/platform.rst:143 +msgid "" +"Returns the system/OS name, e.g. ``'Linux'``, ``'Windows'``, or ``'Java'``. " +"An empty string is returned if the value cannot be determined." +msgstr "" + +#: ../Doc/library/platform.rst:149 +msgid "" +"Returns ``(system, release, version)`` aliased to common marketing names " +"used for some systems. It also does some reordering of the information in " +"some cases where it would otherwise cause confusion." +msgstr "" +"Renvoie ``(system, release, version)`` avec des alias pour les noms communs " +"de certains systèmes. Modifie aussi l'ordre de l'information pour éviter la " +"confusion." + +#: ../Doc/library/platform.rst:156 +msgid "" +"Returns the system's release version, e.g. ``'#3 on degas'``. An empty " +"string is returned if the value cannot be determined." +msgstr "" +"Renvoie la version de déploiement du système. Par exemple, ``'#3 on " +"degas'``. Une chaîne de caractères vide est renvoyée si aucune valeur ne " +"peut être déterminée." + +#: ../Doc/library/platform.rst:162 +msgid "" +"Fairly portable uname interface. Returns a :func:`~collections.namedtuple` " +"containing six attributes: :attr:`system`, :attr:`node`, :attr:`release`, :" +"attr:`version`, :attr:`machine`, and :attr:`processor`." +msgstr "" +"Interface de *uname* relativement portable. Renvoie un :func:`~collections." +"namedtuple` contenant six attributs : :attr:`system`, :attr:`node`, :attr:" +"`release`, :attr:`version`, :attr:`machine` et :attr:`processor`." + +#: ../Doc/library/platform.rst:166 +msgid "" +"Note that this adds a sixth attribute (:attr:`processor`) not present in " +"the :func:`os.uname` result. Also, the attribute names are different for " +"the first two attributes; :func:`os.uname` names them :attr:`sysname` and :" +"attr:`nodename`." +msgstr "" +"Prenez note qu'il y a un attribut supplémentaire (:attr:`processor`) par " +"rapport à la valeur de retour de :func:`os.uname`. De plus, les deux " +"premiers attributs changent de nom ; ils s'appellent :attr:`sysname` et :" +"attr:`nodename` pour la fonction :func:`os.uname`." + +#: ../Doc/library/platform.rst:171 +msgid "Entries which cannot be determined are set to ``''``." +msgstr "Les entrées qui ne peuvent pas être identifiées ont la valeur ``''``." + +#: ../Doc/library/platform.rst:173 +msgid "Result changed from a tuple to a namedtuple." +msgstr "Le type renvoyé passe d'un *tuple* à un *namedtuple*." + +#: ../Doc/library/platform.rst:178 +msgid "Java Platform" +msgstr "Plateforme Java" + +#: ../Doc/library/platform.rst:183 +msgid "Version interface for Jython." +msgstr "Version de l'interface pour Jython." + +#: ../Doc/library/platform.rst:185 +msgid "" +"Returns a tuple ``(release, vendor, vminfo, osinfo)`` with *vminfo* being a " +"tuple ``(vm_name, vm_release, vm_vendor)`` and *osinfo* being a tuple " +"``(os_name, os_version, os_arch)``. Values which cannot be determined are " +"set to the defaults given as parameters (which all default to ``''``)." +msgstr "" +"Renvoie un *n*-uplet ``(release, vendor, vminfo, osinfo)``. *vminfo* est un " +"triplet de valeur ``(vm_name, vm_release, vm_vendor)`` et *osinfo* est un " +"triplet de valeur ``(os_name, os_version, os_arch)``. Les valeurs " +"indéterminables ont la valeur des paramètres par défaut (valeur de ``''`` " +"par défaut)." + +#: ../Doc/library/platform.rst:192 +msgid "Windows Platform" +msgstr "Plateforme Windows" + +#: ../Doc/library/platform.rst:197 +msgid "" +"Get additional version information from the Windows Registry and return a " +"tuple ``(release, version, csd, ptype)`` referring to OS release, version " +"number, CSD level (service pack) and OS type (multi/single processor)." +msgstr "" +"Interroge le registre Windows pour de l'information supplémentaire et " +"renvoie un triplet de ``(release, version, csd, ptype)`` faisant référence " +"au numéro de version du SE, le numéro de version, le niveau de CSD (Service " +"Pack) et le type de SE (monoprocesseur ou multiprocesseur)." + +#: ../Doc/library/platform.rst:201 +msgid "" +"As a hint: *ptype* is ``'Uniprocessor Free'`` on single processor NT " +"machines and ``'Multiprocessor Free'`` on multi processor machines. The " +"*'Free'* refers to the OS version being free of debugging code. It could " +"also state *'Checked'* which means the OS version uses debugging code, i.e. " +"code that checks arguments, ranges, etc." +msgstr "" +"Astuce : *ptype* est ``'Uniprocessor Free'`` sur des machines NT ayant qu'un " +"seul processeur et ``'Multiprocessor Free'`` sur des machines ayant " +"plusieurs processeurs. La composante *'Free'* fait référence à l'absence de " +"code de débogage dans le SE. Au contraire, *'Checked'* indique que le SE " +"utilise du code de débogage pour valider les paramètres, etc." + +#: ../Doc/library/platform.rst:209 +msgid "" +"This function works best with Mark Hammond's :mod:`win32all` package " +"installed, but also on Python 2.3 and later (support for this was added in " +"Python 2.6). It obviously only runs on Win32 compatible platforms." +msgstr "" + +#: ../Doc/library/platform.rst:216 +msgid "Win95/98 specific" +msgstr "" + +#: ../Doc/library/platform.rst:220 +msgid "" +"Portable :func:`popen` interface. Find a working popen implementation " +"preferring :func:`win32pipe.popen`. On Windows NT, :func:`win32pipe.popen` " +"should work; on Windows 9x it hangs due to bugs in the MS C library." +msgstr "" + +#: ../Doc/library/platform.rst:224 +msgid "" +"This function is obsolete. Use the :mod:`subprocess` module. Check " +"especially the :ref:`subprocess-replacements` section." +msgstr "" + +#: ../Doc/library/platform.rst:230 +msgid "Mac OS Platform" +msgstr "Plateforme Mac OS" + +#: ../Doc/library/platform.rst:235 +msgid "" +"Get Mac OS version information and return it as tuple ``(release, " +"versioninfo, machine)`` with *versioninfo* being a tuple ``(version, " +"dev_stage, non_release_version)``." +msgstr "" +"Renvoie les informations de version de Mac OS avec un triplet de ``(release, " +"versioninfo, machine)``. *versioninfo* est un triplet de ``(version, " +"dev_stage, non_release_version)``." + +#: ../Doc/library/platform.rst:239 +msgid "" +"Entries which cannot be determined are set to ``''``. All tuple entries are " +"strings." +msgstr "" +"Les entrées qui ne peuvent pas être identifiées auront la valeur ``''``. Les " +"membres du *n*-uplet sont tous des chaînes de caractères." + +#: ../Doc/library/platform.rst:244 +msgid "Unix Platforms" +msgstr "Plateformes Unix" + +#: ../Doc/library/platform.rst:249 +msgid "This is another name for :func:`linux_distribution`." +msgstr "" + +#: ../Doc/library/platform.rst:252 ../Doc/library/platform.rst:271 +msgid "" +"See alternative like the `distro `_ package." +msgstr "" + +#: ../Doc/library/platform.rst:256 +msgid "Tries to determine the name of the Linux OS distribution name." +msgstr "" + +#: ../Doc/library/platform.rst:258 +msgid "" +"``supported_dists`` may be given to define the set of Linux distributions to " +"look for. It defaults to a list of currently supported Linux distributions " +"identified by their release file name." +msgstr "" + +#: ../Doc/library/platform.rst:262 +msgid "" +"If ``full_distribution_name`` is true (default), the full distribution read " +"from the OS is returned. Otherwise the short name taken from " +"``supported_dists`` is used." +msgstr "" + +#: ../Doc/library/platform.rst:266 +msgid "" +"Returns a tuple ``(distname,version,id)`` which defaults to the args given " +"as parameters. ``id`` is the item in parentheses after the version number. " +"It is usually the version codename." +msgstr "" + +#: ../Doc/library/platform.rst:275 +msgid "" +"Tries to determine the libc version against which the file executable " +"(defaults to the Python interpreter) is linked. Returns a tuple of strings " +"``(lib, version)`` which default to the given parameters in case the lookup " +"fails." +msgstr "" +"Tente d'identifier la version de la bibliothèque standard C à laquelle le " +"fichier exécutable (par défaut l'interpréteur Python) est lié. Renvoie une " +"paire de chaînes de caractères ``(lib, version)``. Les valeurs passées en " +"paramètre seront retournées si la recherche échoue." + +#: ../Doc/library/platform.rst:279 +msgid "" +"Note that this function has intimate knowledge of how different libc " +"versions add symbols to the executable is probably only usable for " +"executables compiled using :program:`gcc`." +msgstr "" +"Prenez note que cette fonction a une connaissance profonde des méthodes " +"utilisées par les versions de la bibliothèque standard C pour ajouter des " +"symboles au fichier exécutable. Elle n'est probablement utilisable qu'avec " +"des exécutables compilés avec :program:`gcc`." + +#: ../Doc/library/platform.rst:283 +msgid "The file is read and scanned in chunks of *chunksize* bytes." +msgstr "Le fichier est lu en blocs de *chunksize* octets." diff --git a/library/plistlib.po b/library/plistlib.po new file mode 100644 index 000000000..c70aee3bf --- /dev/null +++ b/library/plistlib.po @@ -0,0 +1,282 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/plistlib.rst:2 +msgid ":mod:`plistlib` --- Generate and parse Mac OS X ``.plist`` files" +msgstr "" + +#: ../Doc/library/plistlib.rst:11 +msgid "**Source code:** :source:`Lib/plistlib.py`" +msgstr "**Code source :** :source:`Lib/plistlib.py`" + +#: ../Doc/library/plistlib.rst:19 +msgid "" +"This module provides an interface for reading and writing the \"property list" +"\" files used mainly by Mac OS X and supports both binary and XML plist " +"files." +msgstr "" + +#: ../Doc/library/plistlib.rst:22 +msgid "" +"The property list (``.plist``) file format is a simple serialization " +"supporting basic object types, like dictionaries, lists, numbers and " +"strings. Usually the top level object is a dictionary." +msgstr "" + +#: ../Doc/library/plistlib.rst:26 +msgid "" +"To write out and to parse a plist file, use the :func:`dump` and :func:" +"`load` functions." +msgstr "" + +#: ../Doc/library/plistlib.rst:29 +msgid "" +"To work with plist data in bytes objects, use :func:`dumps` and :func:" +"`loads`." +msgstr "" + +#: ../Doc/library/plistlib.rst:32 +msgid "" +"Values can be strings, integers, floats, booleans, tuples, lists, " +"dictionaries (but only with string keys), :class:`Data`, :class:`bytes`, :" +"class:`bytesarray` or :class:`datetime.datetime` objects." +msgstr "" + +#: ../Doc/library/plistlib.rst:36 +msgid "New API, old API deprecated. Support for binary format plists added." +msgstr "" + +#: ../Doc/library/plistlib.rst:41 +msgid "" +"`PList manual page `_" +msgstr "" + +#: ../Doc/library/plistlib.rst:42 +msgid "Apple's documentation of the file format." +msgstr "" + +#: ../Doc/library/plistlib.rst:45 +msgid "This module defines the following functions:" +msgstr "Ce module définit les fonctions suivantes :" + +#: ../Doc/library/plistlib.rst:49 +msgid "" +"Read a plist file. *fp* should be a readable and binary file object. Return " +"the unpacked root object (which usually is a dictionary)." +msgstr "" + +#: ../Doc/library/plistlib.rst:53 +msgid "The *fmt* is the format of the file and the following values are valid:" +msgstr "" + +#: ../Doc/library/plistlib.rst:55 +msgid ":data:`None`: Autodetect the file format" +msgstr "" + +#: ../Doc/library/plistlib.rst:57 +msgid ":data:`FMT_XML`: XML file format" +msgstr "" + +#: ../Doc/library/plistlib.rst:59 +msgid ":data:`FMT_BINARY`: Binary plist format" +msgstr "" + +#: ../Doc/library/plistlib.rst:61 +msgid "" +"If *use_builtin_types* is true (the default) binary data will be returned as " +"instances of :class:`bytes`, otherwise it is returned as instances of :class:" +"`Data`." +msgstr "" + +#: ../Doc/library/plistlib.rst:65 +msgid "" +"The *dict_type* is the type used for dictionaries that are read from the " +"plist file." +msgstr "" + +#: ../Doc/library/plistlib.rst:68 +msgid "" +"XML data for the :data:`FMT_XML` format is parsed using the Expat parser " +"from :mod:`xml.parsers.expat` -- see its documentation for possible " +"exceptions on ill-formed XML. Unknown elements will simply be ignored by " +"the plist parser." +msgstr "" + +#: ../Doc/library/plistlib.rst:73 +msgid "" +"The parser for the binary format raises :exc:`InvalidFileException` when the " +"file cannot be parsed." +msgstr "" + +#: ../Doc/library/plistlib.rst:81 +msgid "" +"Load a plist from a bytes object. See :func:`load` for an explanation of the " +"keyword arguments." +msgstr "" + +#: ../Doc/library/plistlib.rst:89 +msgid "" +"Write *value* to a plist file. *Fp* should be a writable, binary file object." +msgstr "" + +#: ../Doc/library/plistlib.rst:92 +msgid "" +"The *fmt* argument specifies the format of the plist file and can be one of " +"the following values:" +msgstr "" + +#: ../Doc/library/plistlib.rst:95 +msgid ":data:`FMT_XML`: XML formatted plist file" +msgstr "" + +#: ../Doc/library/plistlib.rst:97 +msgid ":data:`FMT_BINARY`: Binary formatted plist file" +msgstr "" + +#: ../Doc/library/plistlib.rst:99 +msgid "" +"When *sort_keys* is true (the default) the keys for dictionaries will be " +"written to the plist in sorted order, otherwise they will be written in the " +"iteration order of the dictionary." +msgstr "" + +#: ../Doc/library/plistlib.rst:103 +msgid "" +"When *skipkeys* is false (the default) the function raises :exc:`TypeError` " +"when a key of a dictionary is not a string, otherwise such keys are skipped." +msgstr "" + +#: ../Doc/library/plistlib.rst:106 +msgid "" +"A :exc:`TypeError` will be raised if the object is of an unsupported type or " +"a container that contains objects of unsupported types." +msgstr "" + +#: ../Doc/library/plistlib.rst:109 +msgid "" +"An :exc:`OverflowError` will be raised for integer values that cannot be " +"represented in (binary) plist files." +msgstr "" + +#: ../Doc/library/plistlib.rst:117 +msgid "" +"Return *value* as a plist-formatted bytes object. See the documentation for :" +"func:`dump` for an explanation of the keyword arguments of this function." +msgstr "" + +#: ../Doc/library/plistlib.rst:123 +msgid "The following functions are deprecated:" +msgstr "" + +#: ../Doc/library/plistlib.rst:127 +msgid "" +"Read a plist file. *pathOrFile* may be either a file name or a (readable and " +"binary) file object. Returns the unpacked root object (which usually is a " +"dictionary)." +msgstr "" + +#: ../Doc/library/plistlib.rst:131 +msgid "" +"This function calls :func:`load` to do the actual work, see the " +"documentation of :func:`that function ` for an explanation of the " +"keyword arguments." +msgstr "" + +#: ../Doc/library/plistlib.rst:134 +msgid "Use :func:`load` instead." +msgstr "" + +#: ../Doc/library/plistlib.rst:136 ../Doc/library/plistlib.rst:157 +msgid "" +"Dict values in the result are now normal dicts. You no longer can use " +"attribute access to access items of these dictionaries." +msgstr "" + +#: ../Doc/library/plistlib.rst:143 +msgid "" +"Write *rootObject* to an XML plist file. *pathOrFile* may be either a file " +"name or a (writable and binary) file object" +msgstr "" + +#: ../Doc/library/plistlib.rst:146 +msgid "Use :func:`dump` instead." +msgstr "" + +#: ../Doc/library/plistlib.rst:151 +msgid "Read a plist data from a bytes object. Return the root object." +msgstr "" + +#: ../Doc/library/plistlib.rst:153 +msgid "See :func:`load` for a description of the keyword arguments." +msgstr "" + +#: ../Doc/library/plistlib.rst:155 +msgid "Use :func:`loads` instead." +msgstr "" + +#: ../Doc/library/plistlib.rst:164 +msgid "Return *rootObject* as an XML plist-formatted bytes object." +msgstr "" + +#: ../Doc/library/plistlib.rst:166 +msgid "Use :func:`dumps` instead." +msgstr "" + +#: ../Doc/library/plistlib.rst:169 +msgid "The following classes are available:" +msgstr "" + +#: ../Doc/library/plistlib.rst:173 +msgid "" +"Return a \"data\" wrapper object around the bytes object *data*. This is " +"used in functions converting from/to plists to represent the ```` type " +"available in plists." +msgstr "" + +#: ../Doc/library/plistlib.rst:177 +msgid "" +"It has one attribute, :attr:`data`, that can be used to retrieve the Python " +"bytes object stored in it." +msgstr "" + +#: ../Doc/library/plistlib.rst:180 +msgid "Use a :class:`bytes` object instead." +msgstr "" + +#: ../Doc/library/plistlib.rst:183 +msgid "The following constants are available:" +msgstr "" + +#: ../Doc/library/plistlib.rst:187 +msgid "The XML format for plist files." +msgstr "" + +#: ../Doc/library/plistlib.rst:194 +msgid "The binary format for plist files" +msgstr "" + +#: ../Doc/library/plistlib.rst:200 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/plistlib.rst:202 +msgid "Generating a plist::" +msgstr "" + +#: ../Doc/library/plistlib.rst:222 +msgid "Parsing a plist::" +msgstr "" diff --git a/library/poplib.po b/library/poplib.po new file mode 100644 index 000000000..6755595e7 --- /dev/null +++ b/library/poplib.po @@ -0,0 +1,289 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/poplib.rst:2 +msgid ":mod:`poplib` --- POP3 protocol client" +msgstr "" + +#: ../Doc/library/poplib.rst:10 +msgid "**Source code:** :source:`Lib/poplib.py`" +msgstr "**Code source :** :source:`Lib/poplib.py`" + +#: ../Doc/library/poplib.rst:16 +msgid "" +"This module defines a class, :class:`POP3`, which encapsulates a connection " +"to a POP3 server and implements the protocol as defined in :rfc:`1939`. The :" +"class:`POP3` class supports both the minimal and optional command sets from :" +"rfc:`1939`. The :class:`POP3` class also supports the ``STLS`` command " +"introduced in :rfc:`2595` to enable encrypted communication on an already " +"established connection." +msgstr "" + +#: ../Doc/library/poplib.rst:22 +msgid "" +"Additionally, this module provides a class :class:`POP3_SSL`, which provides " +"support for connecting to POP3 servers that use SSL as an underlying " +"protocol layer." +msgstr "" + +#: ../Doc/library/poplib.rst:26 +msgid "" +"Note that POP3, though widely supported, is obsolescent. The implementation " +"quality of POP3 servers varies widely, and too many are quite poor. If your " +"mailserver supports IMAP, you would be better off using the :class:`imaplib." +"IMAP4` class, as IMAP servers tend to be better implemented." +msgstr "" + +#: ../Doc/library/poplib.rst:31 +msgid "The :mod:`poplib` module provides two classes:" +msgstr "" + +#: ../Doc/library/poplib.rst:36 +msgid "" +"This class implements the actual POP3 protocol. The connection is created " +"when the instance is initialized. If *port* is omitted, the standard POP3 " +"port (110) is used. The optional *timeout* parameter specifies a timeout in " +"seconds for the connection attempt (if not specified, the global default " +"timeout setting will be used)." +msgstr "" + +#: ../Doc/library/poplib.rst:45 +msgid "" +"This is a subclass of :class:`POP3` that connects to the server over an SSL " +"encrypted socket. If *port* is not specified, 995, the standard POP3-over-" +"SSL port is used. *timeout* works as in the :class:`POP3` constructor. " +"*context* is an optional :class:`ssl.SSLContext` object which allows " +"bundling SSL configuration options, certificates and private keys into a " +"single (potentially long-lived) structure. Please read :ref:`ssl-security` " +"for best practices." +msgstr "" + +#: ../Doc/library/poplib.rst:53 +msgid "" +"*keyfile* and *certfile* are a legacy alternative to *context* - they can " +"point to PEM-formatted private key and certificate chain files, " +"respectively, for the SSL connection." +msgstr "" + +#: ../Doc/library/poplib.rst:57 +msgid "*context* parameter added." +msgstr "" + +#: ../Doc/library/poplib.rst:60 +msgid "" +"The class now supports hostname check with :attr:`ssl.SSLContext." +"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +msgstr "" + +#: ../Doc/library/poplib.rst:67 +msgid "" +"*keyfile* and *certfile* are deprecated in favor of *context*. Please use :" +"meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." +"create_default_context` select the system's trusted CA certificates for you." +msgstr "" + +#: ../Doc/library/poplib.rst:72 +msgid "One exception is defined as an attribute of the :mod:`poplib` module:" +msgstr "" + +#: ../Doc/library/poplib.rst:77 +msgid "" +"Exception raised on any errors from this module (errors from :mod:`socket` " +"module are not caught). The reason for the exception is passed to the " +"constructor as a string." +msgstr "" + +#: ../Doc/library/poplib.rst:85 +msgid "Module :mod:`imaplib`" +msgstr "Module :mod:`imaplib`" + +#: ../Doc/library/poplib.rst:85 +msgid "The standard Python IMAP module." +msgstr "" + +#: ../Doc/library/poplib.rst:89 +msgid "" +"`Frequently Asked Questions About Fetchmail `_" +msgstr "" + +#: ../Doc/library/poplib.rst:88 +msgid "" +"The FAQ for the :program:`fetchmail` POP/IMAP client collects information on " +"POP3 server variations and RFC noncompliance that may be useful if you need " +"to write an application based on the POP protocol." +msgstr "" + +#: ../Doc/library/poplib.rst:96 +msgid "POP3 Objects" +msgstr "" + +#: ../Doc/library/poplib.rst:98 +msgid "" +"All POP3 commands are represented by methods of the same name, in lower-" +"case; most return the response text sent by the server." +msgstr "" + +#: ../Doc/library/poplib.rst:101 +msgid "An :class:`POP3` instance has the following methods:" +msgstr "" + +#: ../Doc/library/poplib.rst:106 +msgid "" +"Set the instance's debugging level. This controls the amount of debugging " +"output printed. The default, ``0``, produces no debugging output. A value " +"of ``1`` produces a moderate amount of debugging output, generally a single " +"line per request. A value of ``2`` or higher produces the maximum amount of " +"debugging output, logging each line sent and received on the control " +"connection." +msgstr "" + +#: ../Doc/library/poplib.rst:115 +msgid "Returns the greeting string sent by the POP3 server." +msgstr "" + +#: ../Doc/library/poplib.rst:120 +msgid "" +"Query the server's capabilities as specified in :rfc:`2449`. Returns a " +"dictionary in the form ``{'name': ['param'...]}``." +msgstr "" + +#: ../Doc/library/poplib.rst:128 +msgid "" +"Send user command, response should indicate that a password is required." +msgstr "" + +#: ../Doc/library/poplib.rst:133 +msgid "" +"Send password, response includes message count and mailbox size. Note: the " +"mailbox on the server is locked until :meth:`~poplib.quit` is called." +msgstr "" + +#: ../Doc/library/poplib.rst:139 +msgid "Use the more secure APOP authentication to log into the POP3 server." +msgstr "" + +#: ../Doc/library/poplib.rst:144 +msgid "" +"Use RPOP authentication (similar to UNIX r-commands) to log into POP3 server." +msgstr "" + +#: ../Doc/library/poplib.rst:149 +msgid "" +"Get mailbox status. The result is a tuple of 2 integers: ``(message count, " +"mailbox size)``." +msgstr "" + +#: ../Doc/library/poplib.rst:155 +msgid "" +"Request message list, result is in the form ``(response, ['mesg_num " +"octets', ...], octets)``. If *which* is set, it is the message to list." +msgstr "" + +#: ../Doc/library/poplib.rst:161 +msgid "" +"Retrieve whole message number *which*, and set its seen flag. Result is in " +"form ``(response, ['line', ...], octets)``." +msgstr "" + +#: ../Doc/library/poplib.rst:167 +msgid "" +"Flag message number *which* for deletion. On most servers deletions are not " +"actually performed until QUIT (the major exception is Eudora QPOP, which " +"deliberately violates the RFCs by doing pending deletes on any disconnect)." +msgstr "" + +#: ../Doc/library/poplib.rst:174 +msgid "Remove any deletion marks for the mailbox." +msgstr "" + +#: ../Doc/library/poplib.rst:179 +msgid "Do nothing. Might be used as a keep-alive." +msgstr "" + +#: ../Doc/library/poplib.rst:184 +msgid "Signoff: commit changes, unlock mailbox, drop connection." +msgstr "" + +#: ../Doc/library/poplib.rst:189 +msgid "" +"Retrieves the message header plus *howmuch* lines of the message after the " +"header of message number *which*. Result is in form ``(response, " +"['line', ...], octets)``." +msgstr "" + +#: ../Doc/library/poplib.rst:193 +msgid "" +"The POP3 TOP command this method uses, unlike the RETR command, doesn't set " +"the message's seen flag; unfortunately, TOP is poorly specified in the RFCs " +"and is frequently broken in off-brand servers. Test this method by hand " +"against the POP3 servers you will use before trusting it." +msgstr "" + +#: ../Doc/library/poplib.rst:201 +msgid "" +"Return message digest (unique id) list. If *which* is specified, result " +"contains the unique id for that message in the form ``'response mesgnum " +"uid``, otherwise result is list ``(response, ['mesgnum uid', ...], octets)``." +msgstr "" + +#: ../Doc/library/poplib.rst:208 +msgid "" +"Try to switch to UTF-8 mode. Returns the server response if successful, " +"raises :class:`error_proto` if not. Specified in :RFC:`6856`." +msgstr "" + +#: ../Doc/library/poplib.rst:216 +msgid "" +"Start a TLS session on the active connection as specified in :rfc:`2595`. " +"This is only allowed before user authentication" +msgstr "" + +#: ../Doc/library/poplib.rst:219 +msgid "" +"*context* parameter is a :class:`ssl.SSLContext` object which allows " +"bundling SSL configuration options, certificates and private keys into a " +"single (potentially long-lived) structure. Please read :ref:`ssl-security` " +"for best practices." +msgstr "" + +#: ../Doc/library/poplib.rst:224 +msgid "" +"This method supports hostname checking via :attr:`ssl.SSLContext." +"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +msgstr "" + +#: ../Doc/library/poplib.rst:231 +msgid "" +"Instances of :class:`POP3_SSL` have no additional methods. The interface of " +"this subclass is identical to its parent." +msgstr "" + +#: ../Doc/library/poplib.rst:238 +msgid "POP3 Example" +msgstr "" + +#: ../Doc/library/poplib.rst:240 +msgid "" +"Here is a minimal example (without error checking) that opens a mailbox and " +"retrieves and prints all messages::" +msgstr "" + +#: ../Doc/library/poplib.rst:253 +msgid "" +"At the end of the module, there is a test section that contains a more " +"extensive example of usage." +msgstr "" diff --git a/library/posix.po b/library/posix.po new file mode 100644 index 000000000..52fe8823d --- /dev/null +++ b/library/posix.po @@ -0,0 +1,160 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2019-04-11 18:10+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/posix.rst:2 +msgid ":mod:`posix` --- The most common POSIX system calls" +msgstr ":mod:`posix` — Les appels système POSIX les plus courants" + +#: ../Doc/library/posix.rst:10 +msgid "" +"This module provides access to operating system functionality that is " +"standardized by the C Standard and the POSIX standard (a thinly disguised " +"Unix interface)." +msgstr "" +"Ce module permet d'accéder aux fonctionnalités du système d'exploitation " +"normalisés par le Standard C et le Standard POSIX (une interface Unix " +"habilement déguisée)." + +#: ../Doc/library/posix.rst:16 +msgid "" +"**Do not import this module directly.** Instead, import the module :mod:" +"`os`, which provides a *portable* version of this interface. On Unix, the :" +"mod:`os` module provides a superset of the :mod:`posix` interface. On non-" +"Unix operating systems the :mod:`posix` module is not available, but a " +"subset is always available through the :mod:`os` interface. Once :mod:`os` " +"is imported, there is *no* performance penalty in using it instead of :mod:" +"`posix`. In addition, :mod:`os` provides some additional functionality, " +"such as automatically calling :func:`~os.putenv` when an entry in ``os." +"environ`` is changed." +msgstr "" +"**Ne pas importer ce module directement.** À la place, importer le module :" +"mod:`os`, qui fournit une version *portable* de cette interface. Sous Unix, " +"le module :mod:`os` fournit un sur-ensemble de l'interface :mod:`posix`. " +"Sous les systèmes d'exploitation non Unix le module :mod:`posix` n'est pas " +"disponible, mais un sous ensemble est toujours disponible via l'interface :" +"mod:`os`. Une fois que :mod:`os` est importé, il n'y a aucune perte de " +"performance à l'utiliser à la place de :mod:`posix`. De plus, :mod:`os` " +"fournit des fonctionnalités supplémentaires, telles que l'appel automatique " +"de :func:`~os.putenv` lorsqu'une entrée dans ``os.environ`` est modifiée." + +#: ../Doc/library/posix.rst:25 +msgid "" +"Errors are reported as exceptions; the usual exceptions are given for type " +"errors, while errors reported by the system calls raise :exc:`OSError`." +msgstr "" +"Les erreurs sont signalées comme des exceptions; les exceptions habituelles " +"sont données pour les erreurs de type, tandis que les erreurs signalées par " +"les appels système lèvent une erreur :exc:`OSError`." + +#: ../Doc/library/posix.rst:32 +msgid "Large File Support" +msgstr "Prise en charge de gros fichiers" + +#: ../Doc/library/posix.rst:40 +msgid "" +"Several operating systems (including AIX, HP-UX, Irix and Solaris) provide " +"support for files that are larger than 2 GiB from a C programming model " +"where :c:type:`int` and :c:type:`long` are 32-bit values. This is typically " +"accomplished by defining the relevant size and offset types as 64-bit " +"values. Such files are sometimes referred to as :dfn:`large files`." +msgstr "" +"De nombreux systèmes d'exploitation (y compris AIX, HP-UX, Irix et Solaris) " +"prennent en charge les fichiers d'une taille supérieure à 2 Go malgré que le " +"compilateur C utilise des types :c:type:`int` et :c:type:`long` d'une " +"longueur de 32 bit. Ceci est généralement accompli en définissant un nouveau " +"type de 64 bit. Ces fichiers sont parfois appelés fichiers volumineux." + +#: ../Doc/library/posix.rst:46 +msgid "" +"Large file support is enabled in Python when the size of an :c:type:`off_t` " +"is larger than a :c:type:`long` and the :c:type:`long long` type is " +"available and is at least as large as an :c:type:`off_t`. It may be " +"necessary to configure and compile Python with certain compiler flags to " +"enable this mode. For example, it is enabled by default with recent versions " +"of Irix, but with Solaris 2.6 and 2.7 you need to do something like::" +msgstr "" +"La prise en charge des fichiers volumineux dans Python est activée lorsque " +"la taille de :c:type:`off_t` est supérieure à :c:type:`long` et que le type :" +"c:type:`long long` est disponible et est au moins aussi grand que :c:type:" +"`off_t`. Il peut-être nécessaire de configurer et compiler Python avec " +"certaines options pour activer ce mode. Par exemple, il est activé par " +"défaut avec les versions récentes d'Irix, mais avec Solaris 2.6 et 2.7 vous " +"avez besoin de faire quelque chose comme::" + +#: ../Doc/library/posix.rst:56 +msgid "On large-file-capable Linux systems, this might work::" +msgstr "" +"Sur les systèmes Linux capable de supporter les fichiers volumineux, cela " +"pourrait fonctionner ::" + +#: ../Doc/library/posix.rst:65 +msgid "Notable Module Contents" +msgstr "Contenu du Module" + +#: ../Doc/library/posix.rst:67 +msgid "" +"In addition to many functions described in the :mod:`os` module " +"documentation, :mod:`posix` defines the following data item:" +msgstr "" +"En plus des nombreuses fonctions décrites dans la documentation du module :" +"mod:`os`, :mod:`posix` possède les éléments suivants:" + +#: ../Doc/library/posix.rst:72 +msgid "" +"A dictionary representing the string environment at the time the interpreter " +"was started. Keys and values are bytes on Unix and str on Windows. For " +"example, ``environ[b'HOME']`` (``environ['HOME']`` on Windows) is the " +"pathname of your home directory, equivalent to ``getenv(\"HOME\")`` in C." +msgstr "" +"Un dictionnaire représentant les variables d'environnement au moment où " +"l'interpréteur à été lancé. Les clés et les valeurs sont des `bytes` sous " +"Unix et des `str` sous Windows. Par exemple, ``environ[b'HOME']`` " +"(``environ['HOME']`` dans Windows) est le chemin de votre dossier d’accueil, " +"équivalent à ``getenv(\"HOME\")`` en C." + +#: ../Doc/library/posix.rst:77 +msgid "" +"Modifying this dictionary does not affect the string environment passed on " +"by :func:`~os.execv`, :func:`~os.popen` or :func:`~os.system`; if you need " +"to change the environment, pass ``environ`` to :func:`~os.execve` or add " +"variable assignments and export statements to the command string for :func:" +"`~os.system` or :func:`~os.popen`." +msgstr "" +"Modifier ce dictionnaire n'affecte pas les variables d'environnements " +"fournis par :func:`~os.execv`, :func:`~os.popen` ou :func:`~os.system`; Si " +"vous avez besoin de changer l'environnement, passer le paramètre ``environ`` " +"à :func:`~os.execve` ou ajouter les assignations de variables et les " +"*export* à la commande à exécuter via :func:`~os.system` ou :func:`~os." +"popen`." + +#: ../Doc/library/posix.rst:83 +msgid "On Unix, keys and values are bytes." +msgstr "Sous Unix, les clés et les valeurs sont des octets." + +#: ../Doc/library/posix.rst:88 +msgid "" +"The :mod:`os` module provides an alternate implementation of ``environ`` " +"which updates the environment on modification. Note also that updating :data:" +"`os.environ` will render this dictionary obsolete. Use of the :mod:`os` " +"module version of this is recommended over direct access to the :mod:`posix` " +"module." +msgstr "" +"Le module :mod:`os` fournit une implémentation alternative à ``environ`` qui " +"met à jour l'environnement en cas de modification. Notez également que la " +"mise à jour de :data:`os.environ` rendra ce dictionnaire obsolète. Il est " +"recommandé d'utiliser le module :mod:`os` au lieu du module :mod:`posix` " +"dans ce cas-ci." diff --git a/library/pprint.po b/library/pprint.po new file mode 100644 index 000000000..8bb37f277 --- /dev/null +++ b/library/pprint.po @@ -0,0 +1,308 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: 2018-10-20 12:15+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.1.1\n" + +#: ../Doc/library/pprint.rst:2 +msgid ":mod:`pprint` --- Data pretty printer" +msgstr ":mod:`pprint` — L’affichage élégant de données" + +#: ../Doc/library/pprint.rst:10 +msgid "**Source code:** :source:`Lib/pprint.py`" +msgstr "**Code source :** :source:`Lib/pprint.py`" + +#: ../Doc/library/pprint.rst:14 +msgid "" +"The :mod:`pprint` module provides a capability to \"pretty-print\" arbitrary " +"Python data structures in a form which can be used as input to the " +"interpreter. If the formatted structures include objects which are not " +"fundamental Python types, the representation may not be loadable. This may " +"be the case if objects such as files, sockets or classes are included, as " +"well as many other objects which are not representable as Python literals." +msgstr "" +"Le module :mod:`pprint` permet « d’afficher élégamment » des structures de " +"données Python arbitraires sous une forme qui peut être utilisée ensuite " +"comme une entrée dans l’interpréteur. Si les structures formatées incluent " +"des objets qui ne sont pas des types Python fondamentaux, leurs " +"représentations peuvent ne pas être acceptables en tant que telles par " +"l’interpréteur. Cela peut être le cas si des objets tels que des fichiers, " +"des interfaces de connexion (*sockets* en anglais) ou des classes sont " +"inclus, c’est aussi valable pour beaucoup d’autres types d’objets qui ne " +"peuvent être représentés sous forme littérale en Python." + +#: ../Doc/library/pprint.rst:21 +msgid "" +"The formatted representation keeps objects on a single line if it can, and " +"breaks them onto multiple lines if they don't fit within the allowed width. " +"Construct :class:`PrettyPrinter` objects explicitly if you need to adjust " +"the width constraint." +msgstr "" +"L’affichage formaté affiche tant que possible les objets sur une seule " +"ligne, et les sépare sur plusieurs lignes s’ils dépassent la largeur " +"autorisée par l’interpréteur. Créez explicitement des objets :class:" +"`PrettyPrinter` si vous avez besoin de modifier les limites de largeur." + +#: ../Doc/library/pprint.rst:26 +msgid "Dictionaries are sorted by key before the display is computed." +msgstr "" +"Les dictionnaires sont classés par clés avant que l’affichage ne soit " +"calculé." + +#: ../Doc/library/pprint.rst:28 +msgid "The :mod:`pprint` module defines one class:" +msgstr "Le module :mod:`pprint` définit une seule classe : ::" + +#: ../Doc/library/pprint.rst:38 +msgid "" +"Construct a :class:`PrettyPrinter` instance. This constructor understands " +"several keyword parameters. An output stream may be set using the *stream* " +"keyword; the only method used on the stream object is the file protocol's :" +"meth:`write` method. If not specified, the :class:`PrettyPrinter` adopts " +"``sys.stdout``. The amount of indentation added for each recursive level is " +"specified by *indent*; the default is one. Other values can cause output to " +"look a little odd, but can make nesting easier to spot. The number of " +"levels which may be printed is controlled by *depth*; if the data structure " +"being printed is too deep, the next contained level is replaced by ``...``. " +"By default, there is no constraint on the depth of the objects being " +"formatted. The desired output width is constrained using the *width* " +"parameter; the default is 80 characters. If a structure cannot be formatted " +"within the constrained width, a best effort will be made. If *compact* is " +"false (the default) each item of a long sequence will be formatted on a " +"separate line. If *compact* is true, as many items as will fit within the " +"*width* will be formatted on each output line." +msgstr "" +"Crée une instance de :class:`PrettyPrinter`. Ce constructeur accepte " +"plusieurs paramètres nommés. Un flux de sortie peut être défini par le mot " +"clé *stream*; la seule méthode utilisée sur l’objet *stream* est la méthode :" +"meth:`write` du protocole de fichiers. Si rien n’est spécifié, la classe :" +"class:`PrettyPrinter` utilise ``sys.stdout``. La taille de l’indentation " +"ajoutée à chaque niveau récursif est spécifiée par *indent*; la valeur par " +"défaut vaut ``1`. D’autres valeurs pourraient donner des résultats " +"surprenants, mais peuvent aider à mieux visualiser les imbrications. Le " +"nombre de niveaux qui peuvent être affichés est contrôlé par *depth*; si la " +"structure de données est trop profonde, le niveau suivant est remplacé par " +"``…``. Par défaut il n’y a pas de contraintes sur la profondeur des objets " +"formatés. Vous pouvez limiter la largeur de la sortie à l’aide du paramètre " +"*width*; la valeur par défaut est de 80 caractères. Si une structure ne peut " +"pas être formatée dans les limites de la largeur contrainte, le module fait " +"au mieux. SI *compact* est initialisé à *False* (la valeur par défaut), " +"chaque élément d’une longue séquence est formaté sur une ligne séparée. Si " +"*compact* est initialisé à *True*, tous les éléments qui peuvent tenir dans " +"la largeur définie sont formatés sur chaque ligne de sortie." + +#: ../Doc/library/pprint.rst:55 ../Doc/library/pprint.rst:90 +#: ../Doc/library/pprint.rst:104 +msgid "Added the *compact* parameter." +msgstr "Ajout du paramètre *compact*." + +#: ../Doc/library/pprint.rst:82 +msgid "The :mod:`pprint` module also provides several shortcut functions:" +msgstr "" +"Le module :mod:`pprint` fournit aussi quelques fonctions de raccourcis ::" + +#: ../Doc/library/pprint.rst:86 +msgid "" +"Return the formatted representation of *object* as a string. *indent*, " +"*width*, *depth* and *compact* will be passed to the :class:`PrettyPrinter` " +"constructor as formatting parameters." +msgstr "" +"Renvoie une représentation formatée de *object* sous forme de chaine de " +"caractères. *indent*, *width*, *depth* et *compact* sont passés au " +"constructeur de :class:`PrettyPrinter` comme paramètres de formatage." + +#: ../Doc/library/pprint.rst:97 +msgid "" +"Prints the formatted representation of *object* on *stream*, followed by a " +"newline. If *stream* is ``None``, ``sys.stdout`` is used. This may be used " +"in the interactive interpreter instead of the :func:`print` function for " +"inspecting values (you can even reassign ``print = pprint.pprint`` for use " +"within a scope). *indent*, *width*, *depth* and *compact* will be passed to " +"the :class:`PrettyPrinter` constructor as formatting parameters." +msgstr "" +"Affiche la représentation formatée de *object* sur *stream*, suivie d’un " +"retour à la ligne. Si *stream* vaut ``None``, ``sys.stdout`` est alors " +"utilisé. Vous pouvez l’utiliser dans l’interpréteur interactif de Python au " +"lieu de la fonction :func:`print` pour inspecter les valeurs (vous pouvez " +"même réassigner ``print = pprint.pprint`` pour une utilisation au sein de sa " +"portée). *indent*, *width*, *depth* et *compact* sont passés au constructeur " +"de classe :class:`PrettyPrinter` comme paramètres de formatage." + +#: ../Doc/library/pprint.rst:123 +msgid "" +"Determine if the formatted representation of *object* is \"readable,\" or " +"can be used to reconstruct the value using :func:`eval`. This always " +"returns ``False`` for recursive objects." +msgstr "" +"Détermine si la représentation formatée de *object* est « lisible », ou s’il " +"peut être utilisé pour recomposer sa valeur en utilisant la fonction :func:" +"`eval`. Cela renvoie toujours ``False`` pour les objets récursifs." + +#: ../Doc/library/pprint.rst:133 +msgid "Determine if *object* requires a recursive representation." +msgstr "Détermine si *object* requiert une représentation récursive." + +#: ../Doc/library/pprint.rst:136 +msgid "One more support function is also defined:" +msgstr "Une dernière fonction de support est définie ainsi ::" + +#: ../Doc/library/pprint.rst:140 +msgid "" +"Return a string representation of *object*, protected against recursive data " +"structures. If the representation of *object* exposes a recursive entry, " +"the recursive reference will be represented as ````. The representation is not otherwise formatted." +msgstr "" +"Renvoie une représentation de *object* sous forme de chaîne de caractère, " +"celle-ci est protégée contre les structures de données récursives. Si la " +"représentation de *object* présente une entrée récursive, celle-ci sera " +"représentée telle que ````. Par " +"ailleurs, la représentation de l’objet n’est pas formatée." + +#: ../Doc/library/pprint.rst:152 +msgid "PrettyPrinter Objects" +msgstr "Les Objets PrettyPrinter" + +#: ../Doc/library/pprint.rst:154 +msgid ":class:`PrettyPrinter` instances have the following methods:" +msgstr "" +"Les instances de la classe :class:`PrettyPrinter` ont les méthodes " +"suivantes ::" + +#: ../Doc/library/pprint.rst:159 +msgid "" +"Return the formatted representation of *object*. This takes into account " +"the options passed to the :class:`PrettyPrinter` constructor." +msgstr "" +"Renvoie la représentation formatée de *object*. Cela prend en compte les " +"options passées au constructeur de la classe :class:`PrettyPrinter`." + +#: ../Doc/library/pprint.rst:165 +msgid "" +"Print the formatted representation of *object* on the configured stream, " +"followed by a newline." +msgstr "" +"Affiche sur le flux configuré la représentation formatée de *object*, suivie " +"d’une fin de ligne." + +#: ../Doc/library/pprint.rst:168 +msgid "" +"The following methods provide the implementations for the corresponding " +"functions of the same names. Using these methods on an instance is slightly " +"more efficient since new :class:`PrettyPrinter` objects don't need to be " +"created." +msgstr "" +"Les méthodes suivantes fournissent les implémentations pour les fonctions " +"correspondantes de mêmes noms. L’utilisation de ces méthodes sur une " +"instance est légèrement plus efficace, car les nouveaux objets :class:" +"`PrettyPrinter` n’ont pas besoin d’être créés." + +#: ../Doc/library/pprint.rst:178 +msgid "" +"Determine if the formatted representation of the object is \"readable,\" or " +"can be used to reconstruct the value using :func:`eval`. Note that this " +"returns ``False`` for recursive objects. If the *depth* parameter of the :" +"class:`PrettyPrinter` is set and the object is deeper than allowed, this " +"returns ``False``." +msgstr "" +"Détermine si la représentation formatée de *object* est « lisible », ou si " +"elle peut être utilisée pour recomposer sa valeur en utilisant la fonction :" +"func:`eval`. Cela renvoie toujours ``False`` pour les objets récursifs. Si " +"le paramètre *depth* de la classe :class:`PrettyPrinter` est initialisé et " +"que l’objet est plus « profond » que permis, cela renvoie ``False``." + +#: ../Doc/library/pprint.rst:187 +msgid "Determine if the object requires a recursive representation." +msgstr "Détermine si l’objet nécessite une représentation récursive." + +#: ../Doc/library/pprint.rst:189 +msgid "" +"This method is provided as a hook to allow subclasses to modify the way " +"objects are converted to strings. The default implementation uses the " +"internals of the :func:`saferepr` implementation." +msgstr "" +"Cette méthode est fournie sous forme de point d’entrée ou méthode (à " +"déclenchement) automatique (*hook* en anglais) pour permettre aux sous-" +"classes de modifier la façon dont les objets sont convertis en chaînes. " +"L’implémentation par défaut est celle de la fonction :func:`saferepr`." + +#: ../Doc/library/pprint.rst:196 +msgid "" +"Returns three values: the formatted version of *object* as a string, a flag " +"indicating whether the result is readable, and a flag indicating whether " +"recursion was detected. The first argument is the object to be presented. " +"The second is a dictionary which contains the :func:`id` of objects that are " +"part of the current presentation context (direct and indirect containers for " +"*object* that are affecting the presentation) as the keys; if an object " +"needs to be presented which is already represented in *context*, the third " +"return value should be ``True``. Recursive calls to the :meth:`.format` " +"method should add additional entries for containers to this dictionary. The " +"third argument, *maxlevels*, gives the requested limit to recursion; this " +"will be ``0`` if there is no requested limit. This argument should be " +"passed unmodified to recursive calls. The fourth argument, *level*, gives " +"the current level; recursive calls should be passed a value less than that " +"of the current call." +msgstr "" +"Renvoie trois valeurs : la version formatée de *object* sous forme de chaîne " +"de caractères, une option indiquant si le résultat est « lisible », et une " +"option indiquant si une récursion a été détectée. Le premier argument est " +"l’objet à représenter. Le deuxième est un dictionnaire qui contient l'\\ :" +"func:`id` des objets (conteneurs directs ou indirects de *objet* qui " +"affectent sa représentation) qui font partie du contexte de représentation " +"courant tel que les clés; si un objet doit être représenté, mais l’a déjà " +"été dans ce contexte, le troisième argument renvoie ``True``. Des appels " +"récursifs à la méthode :meth:`.format` doivent ajouter des entrés " +"additionnelles aux conteneurs de ce dictionnaire. Le troisième argument " +"*maxlevels*, donne la limite maximale de récursivité; la valeur par défaut " +"est ``0``. Cet argument doit être passé non modifié pour des appels non " +"récursifs. Le quatrième argument, *level*, donne le niveau de récursivité " +"courant; les appels récursifs doivent être passés à une valeur inférieure à " +"celle de l’appel courant." + +#: ../Doc/library/pprint.rst:214 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/pprint.rst:216 +msgid "" +"To demonstrate several uses of the :func:`pprint` function and its " +"parameters, let's fetch information about a project from `PyPI `_::" +msgstr "" +"Pour illustrer quelques cas pratiques de l’utilisation de la fonction :func:" +"`pprint` et de ses paramètres, allons chercher des informations sur un " +"projet `PyPI `_ ::" + +#: ../Doc/library/pprint.rst:225 +msgid "In its basic form, :func:`pprint` shows the whole object::" +msgstr "" +"Dans sa forme basique, la fonction :func:`pprint` affiche l’intégralité de " +"l’objet ::" + +#: ../Doc/library/pprint.rst:281 +msgid "" +"The result can be limited to a certain *depth* (ellipsis is used for deeper " +"contents)::" +msgstr "" +"Le résultat peut être limité à une certaine profondeur en initialisant " +"*depth*. ( ``…`` est utilisé pour des contenus plus « profonds ») ::" + +#: ../Doc/library/pprint.rst:327 +msgid "" +"Additionally, maximum character *width* can be suggested. If a long object " +"cannot be split, the specified width will be exceeded::" +msgstr "" +"De plus, une valeur maximale de caractères sur une ligne peut être définie " +"en initialisant le paramètre *width*. Si un long objet ne peut être scindé, " +"la valeur donnée à *width* sera outrepassée ::" diff --git a/library/profile.po b/library/profile.po new file mode 100644 index 000000000..a512cf3e2 --- /dev/null +++ b/library/profile.po @@ -0,0 +1,933 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-08-03 17:52+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/profile.rst:5 +msgid "The Python Profilers" +msgstr "" + +#: ../Doc/library/profile.rst:7 +msgid "**Source code:** :source:`Lib/profile.py` and :source:`Lib/pstats.py`" +msgstr "" + +#: ../Doc/library/profile.rst:14 +msgid "Introduction to the profilers" +msgstr "" + +#: ../Doc/library/profile.rst:20 +msgid "" +":mod:`cProfile` and :mod:`profile` provide :dfn:`deterministic profiling` of " +"Python programs. A :dfn:`profile` is a set of statistics that describes how " +"often and for how long various parts of the program executed. These " +"statistics can be formatted into reports via the :mod:`pstats` module." +msgstr "" + +#: ../Doc/library/profile.rst:25 +msgid "" +"The Python standard library provides two different implementations of the " +"same profiling interface:" +msgstr "" + +#: ../Doc/library/profile.rst:28 +msgid "" +":mod:`cProfile` is recommended for most users; it's a C extension with " +"reasonable overhead that makes it suitable for profiling long-running " +"programs. Based on :mod:`lsprof`, contributed by Brett Rosen and Ted " +"Czotter." +msgstr "" + +#: ../Doc/library/profile.rst:33 +msgid "" +":mod:`profile`, a pure Python module whose interface is imitated by :mod:" +"`cProfile`, but which adds significant overhead to profiled programs. If " +"you're trying to extend the profiler in some way, the task might be easier " +"with this module. Originally designed and written by Jim Roskind." +msgstr "" + +#: ../Doc/library/profile.rst:40 +msgid "" +"The profiler modules are designed to provide an execution profile for a " +"given program, not for benchmarking purposes (for that, there is :mod:" +"`timeit` for reasonably accurate results). This particularly applies to " +"benchmarking Python code against C code: the profilers introduce overhead " +"for Python code, but not for C-level functions, and so the C code would seem " +"faster than any Python one." +msgstr "" + +#: ../Doc/library/profile.rst:51 +msgid "Instant User's Manual" +msgstr "" + +#: ../Doc/library/profile.rst:53 +msgid "" +"This section is provided for users that \"don't want to read the manual.\" " +"It provides a very brief overview, and allows a user to rapidly perform " +"profiling on an existing application." +msgstr "" + +#: ../Doc/library/profile.rst:57 +msgid "To profile a function that takes a single argument, you can do::" +msgstr "" + +#: ../Doc/library/profile.rst:63 +msgid "" +"(Use :mod:`profile` instead of :mod:`cProfile` if the latter is not " +"available on your system.)" +msgstr "" + +#: ../Doc/library/profile.rst:66 +msgid "" +"The above action would run :func:`re.compile` and print profile results like " +"the following::" +msgstr "" + +#: ../Doc/library/profile.rst:82 +msgid "" +"The first line indicates that 197 calls were monitored. Of those calls, 192 " +"were :dfn:`primitive`, meaning that the call was not induced via recursion. " +"The next line: ``Ordered by: standard name``, indicates that the text string " +"in the far right column was used to sort the output. The column headings " +"include:" +msgstr "" + +#: ../Doc/library/profile.rst:88 +msgid "ncalls" +msgstr "" + +#: ../Doc/library/profile.rst:88 +msgid "for the number of calls." +msgstr "" + +#: ../Doc/library/profile.rst:92 +msgid "tottime" +msgstr "" + +#: ../Doc/library/profile.rst:91 +msgid "" +"for the total time spent in the given function (and excluding time made in " +"calls to sub-functions)" +msgstr "" + +#: ../Doc/library/profile.rst:95 ../Doc/library/profile.rst:102 +msgid "percall" +msgstr "" + +#: ../Doc/library/profile.rst:95 +msgid "is the quotient of ``tottime`` divided by ``ncalls``" +msgstr "" + +#: ../Doc/library/profile.rst:99 +msgid "cumtime" +msgstr "" + +#: ../Doc/library/profile.rst:98 +msgid "" +"is the cumulative time spent in this and all subfunctions (from invocation " +"till exit). This figure is accurate *even* for recursive functions." +msgstr "" + +#: ../Doc/library/profile.rst:102 +msgid "is the quotient of ``cumtime`` divided by primitive calls" +msgstr "" + +#: ../Doc/library/profile.rst:105 +msgid "filename:lineno(function)" +msgstr "" + +#: ../Doc/library/profile.rst:105 +msgid "provides the respective data of each function" +msgstr "" + +#: ../Doc/library/profile.rst:107 +msgid "" +"When there are two numbers in the first column (for example ``3/1``), it " +"means that the function recursed. The second value is the number of " +"primitive calls and the former is the total number of calls. Note that when " +"the function does not recurse, these two values are the same, and only the " +"single figure is printed." +msgstr "" + +#: ../Doc/library/profile.rst:113 +msgid "" +"Instead of printing the output at the end of the profile run, you can save " +"the results to a file by specifying a filename to the :func:`run` function::" +msgstr "" + +#: ../Doc/library/profile.rst:120 +msgid "" +"The :class:`pstats.Stats` class reads profile results from a file and " +"formats them in various ways." +msgstr "" + +#: ../Doc/library/profile.rst:123 +msgid "" +"The file :mod:`cProfile` can also be invoked as a script to profile another " +"script. For example::" +msgstr "" + +#: ../Doc/library/profile.rst:128 +msgid "``-o`` writes the profile results to a file instead of to stdout" +msgstr "" + +#: ../Doc/library/profile.rst:130 +msgid "" +"``-s`` specifies one of the :func:`~pstats.Stats.sort_stats` sort values to " +"sort the output by. This only applies when ``-o`` is not supplied." +msgstr "" + +#: ../Doc/library/profile.rst:133 +msgid "``-m`` specifies that a module is being profiled instead of a script." +msgstr "" + +#: ../Doc/library/profile.rst:135 +msgid "Added the ``-m`` option." +msgstr "" + +#: ../Doc/library/profile.rst:138 +msgid "" +"The :mod:`pstats` module's :class:`~pstats.Stats` class has a variety of " +"methods for manipulating and printing the data saved into a profile results " +"file::" +msgstr "" + +#: ../Doc/library/profile.rst:146 +msgid "" +"The :meth:`~pstats.Stats.strip_dirs` method removed the extraneous path from " +"all the module names. The :meth:`~pstats.Stats.sort_stats` method sorted all " +"the entries according to the standard module/line/name string that is " +"printed. The :meth:`~pstats.Stats.print_stats` method printed out all the " +"statistics. You might try the following sort calls::" +msgstr "" + +#: ../Doc/library/profile.rst:155 +msgid "" +"The first call will actually sort the list by function name, and the second " +"call will print out the statistics. The following are some interesting " +"calls to experiment with::" +msgstr "" + +#: ../Doc/library/profile.rst:161 +msgid "" +"This sorts the profile by cumulative time in a function, and then only " +"prints the ten most significant lines. If you want to understand what " +"algorithms are taking time, the above line is what you would use." +msgstr "" + +#: ../Doc/library/profile.rst:165 +msgid "" +"If you were looking to see what functions were looping a lot, and taking a " +"lot of time, you would do::" +msgstr "" + +#: ../Doc/library/profile.rst:170 +msgid "" +"to sort according to time spent within each function, and then print the " +"statistics for the top ten functions." +msgstr "" + +#: ../Doc/library/profile.rst:173 +msgid "You might also try::" +msgstr "" + +#: ../Doc/library/profile.rst:177 +msgid "" +"This will sort all the statistics by file name, and then print out " +"statistics for only the class init methods (since they are spelled with " +"``__init__`` in them). As one final example, you could try::" +msgstr "" + +#: ../Doc/library/profile.rst:183 +msgid "" +"This line sorts statistics with a primary key of time, and a secondary key " +"of cumulative time, and then prints out some of the statistics. To be " +"specific, the list is first culled down to 50% (re: ``.5``) of its original " +"size, then only lines containing ``init`` are maintained, and that sub-sub-" +"list is printed." +msgstr "" + +#: ../Doc/library/profile.rst:188 +msgid "" +"If you wondered what functions called the above functions, you could now " +"(``p`` is still sorted according to the last criteria) do::" +msgstr "" + +#: ../Doc/library/profile.rst:193 +msgid "and you would get a list of callers for each of the listed functions." +msgstr "" + +#: ../Doc/library/profile.rst:195 +msgid "" +"If you want more functionality, you're going to have to read the manual, or " +"guess what the following functions do::" +msgstr "" + +#: ../Doc/library/profile.rst:201 +msgid "" +"Invoked as a script, the :mod:`pstats` module is a statistics browser for " +"reading and examining profile dumps. It has a simple line-oriented " +"interface (implemented using :mod:`cmd`) and interactive help." +msgstr "" + +#: ../Doc/library/profile.rst:206 +msgid ":mod:`profile` and :mod:`cProfile` Module Reference" +msgstr "" + +#: ../Doc/library/profile.rst:212 +msgid "" +"Both the :mod:`profile` and :mod:`cProfile` modules provide the following " +"functions:" +msgstr "" + +#: ../Doc/library/profile.rst:217 +msgid "" +"This function takes a single argument that can be passed to the :func:`exec` " +"function, and an optional file name. In all cases this routine executes::" +msgstr "" + +#: ../Doc/library/profile.rst:222 +msgid "" +"and gathers profiling statistics from the execution. If no file name is " +"present, then this function automatically creates a :class:`~pstats.Stats` " +"instance and prints a simple profiling report. If the sort value is " +"specified, it is passed to this :class:`~pstats.Stats` instance to control " +"how the results are sorted." +msgstr "" + +#: ../Doc/library/profile.rst:230 +msgid "" +"This function is similar to :func:`run`, with added arguments to supply the " +"globals and locals dictionaries for the *command* string. This routine " +"executes::" +msgstr "" + +#: ../Doc/library/profile.rst:236 +msgid "and gathers profiling statistics as in the :func:`run` function above." +msgstr "" + +#: ../Doc/library/profile.rst:240 +msgid "" +"This class is normally only used if more precise control over profiling is " +"needed than what the :func:`cProfile.run` function provides." +msgstr "" + +#: ../Doc/library/profile.rst:243 +msgid "" +"A custom timer can be supplied for measuring how long code takes to run via " +"the *timer* argument. This must be a function that returns a single number " +"representing the current time. If the number is an integer, the *timeunit* " +"specifies a multiplier that specifies the duration of each unit of time. For " +"example, if the timer returns times measured in thousands of seconds, the " +"time unit would be ``.001``." +msgstr "" + +#: ../Doc/library/profile.rst:250 +msgid "" +"Directly using the :class:`Profile` class allows formatting profile results " +"without writing the profile data to a file::" +msgstr "" + +#: ../Doc/library/profile.rst:267 +msgid "Start collecting profiling data." +msgstr "" + +#: ../Doc/library/profile.rst:271 +msgid "Stop collecting profiling data." +msgstr "" + +#: ../Doc/library/profile.rst:275 +msgid "" +"Stop collecting profiling data and record the results internally as the " +"current profile." +msgstr "" + +#: ../Doc/library/profile.rst:280 +msgid "" +"Create a :class:`~pstats.Stats` object based on the current profile and " +"print the results to stdout." +msgstr "" + +#: ../Doc/library/profile.rst:285 +msgid "Write the results of the current profile to *filename*." +msgstr "" + +#: ../Doc/library/profile.rst:289 +msgid "Profile the cmd via :func:`exec`." +msgstr "" + +#: ../Doc/library/profile.rst:293 +msgid "" +"Profile the cmd via :func:`exec` with the specified global and local " +"environment." +msgstr "" + +#: ../Doc/library/profile.rst:298 +msgid "Profile ``func(*args, **kwargs)``" +msgstr "" + +#: ../Doc/library/profile.rst:300 +msgid "" +"Note that profiling will only work if the called command/function actually " +"returns. If the interpreter is terminated (e.g. via a :func:`sys.exit` call " +"during the called command/function execution) no profiling results will be " +"printed." +msgstr "" + +#: ../Doc/library/profile.rst:308 +msgid "The :class:`Stats` Class" +msgstr "" + +#: ../Doc/library/profile.rst:310 +msgid "" +"Analysis of the profiler data is done using the :class:`~pstats.Stats` class." +msgstr "" + +#: ../Doc/library/profile.rst:317 +msgid "" +"This class constructor creates an instance of a \"statistics object\" from a " +"*filename* (or list of filenames) or from a :class:`Profile` instance. " +"Output will be printed to the stream specified by *stream*." +msgstr "" + +#: ../Doc/library/profile.rst:321 +msgid "" +"The file selected by the above constructor must have been created by the " +"corresponding version of :mod:`profile` or :mod:`cProfile`. To be specific, " +"there is *no* file compatibility guaranteed with future versions of this " +"profiler, and there is no compatibility with files produced by other " +"profilers, or the same profiler run on a different operating system. If " +"several files are provided, all the statistics for identical functions will " +"be coalesced, so that an overall view of several processes can be considered " +"in a single report. If additional files need to be combined with data in an " +"existing :class:`~pstats.Stats` object, the :meth:`~pstats.Stats.add` method " +"can be used." +msgstr "" + +#: ../Doc/library/profile.rst:332 +msgid "" +"Instead of reading the profile data from a file, a :class:`cProfile.Profile` " +"or :class:`profile.Profile` object can be used as the profile data source." +msgstr "" + +#: ../Doc/library/profile.rst:335 +msgid ":class:`Stats` objects have the following methods:" +msgstr "" + +#: ../Doc/library/profile.rst:339 +msgid "" +"This method for the :class:`Stats` class removes all leading path " +"information from file names. It is very useful in reducing the size of the " +"printout to fit within (close to) 80 columns. This method modifies the " +"object, and the stripped information is lost. After performing a strip " +"operation, the object is considered to have its entries in a \"random\" " +"order, as it was just after object initialization and loading. If :meth:" +"`~pstats.Stats.strip_dirs` causes two function names to be indistinguishable " +"(they are on the same line of the same filename, and have the same function " +"name), then the statistics for these two entries are accumulated into a " +"single entry." +msgstr "" + +#: ../Doc/library/profile.rst:353 +msgid "" +"This method of the :class:`Stats` class accumulates additional profiling " +"information into the current profiling object. Its arguments should refer " +"to filenames created by the corresponding version of :func:`profile.run` or :" +"func:`cProfile.run`. Statistics for identically named (re: file, line, name) " +"functions are automatically accumulated into single function statistics." +msgstr "" + +#: ../Doc/library/profile.rst:363 +msgid "" +"Save the data loaded into the :class:`Stats` object to a file named " +"*filename*. The file is created if it does not exist, and is overwritten if " +"it already exists. This is equivalent to the method of the same name on " +"the :class:`profile.Profile` and :class:`cProfile.Profile` classes." +msgstr "" + +#: ../Doc/library/profile.rst:371 +msgid "" +"This method modifies the :class:`Stats` object by sorting it according to " +"the supplied criteria. The argument can be either a string or a SortKey " +"enum identifying the basis of a sort (example: ``'time'``, ``'name'``, " +"``SortKey.TIME`` or ``SortKey.NAME``). The SortKey enums argument have " +"advantage over the string argument in that it is more robust and less error " +"prone." +msgstr "" + +#: ../Doc/library/profile.rst:378 +msgid "" +"When more than one key is provided, then additional keys are used as " +"secondary criteria when there is equality in all keys selected before them. " +"For example, ``sort_stats(SortKey.NAME, SortKey.FILE)`` will sort all the " +"entries according to their function name, and resolve all ties (identical " +"function names) by sorting by file name." +msgstr "" + +#: ../Doc/library/profile.rst:384 +msgid "" +"For the string argument, abbreviations can be used for any key names, as " +"long as the abbreviation is unambiguous." +msgstr "" + +#: ../Doc/library/profile.rst:387 +msgid "The following are the valid string and SortKey:" +msgstr "" + +#: ../Doc/library/profile.rst:390 +msgid "Valid String Arg" +msgstr "" + +#: ../Doc/library/profile.rst:390 +msgid "Valid enum Arg" +msgstr "" + +#: ../Doc/library/profile.rst:390 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/profile.rst:392 +msgid "``'calls'``" +msgstr "``'calls'``" + +#: ../Doc/library/profile.rst:392 +msgid "SortKey.CALLS" +msgstr "" + +#: ../Doc/library/profile.rst:392 ../Doc/library/profile.rst:404 +msgid "call count" +msgstr "" + +#: ../Doc/library/profile.rst:394 +msgid "``'cumulative'``" +msgstr "``'cumulative'``" + +#: ../Doc/library/profile.rst:394 +msgid "SortKey.CUMULATIVE" +msgstr "" + +#: ../Doc/library/profile.rst:394 ../Doc/library/profile.rst:396 +msgid "cumulative time" +msgstr "" + +#: ../Doc/library/profile.rst:396 +msgid "``'cumtime'``" +msgstr "``'cumtime'``" + +#: ../Doc/library/profile.rst:396 ../Doc/library/profile.rst:398 +#: ../Doc/library/profile.rst:402 ../Doc/library/profile.rst:404 +#: ../Doc/library/profile.rst:418 +msgid "N/A" +msgstr "N/A" + +#: ../Doc/library/profile.rst:398 +msgid "``'file'``" +msgstr "``'file'``" + +#: ../Doc/library/profile.rst:398 ../Doc/library/profile.rst:400 +#: ../Doc/library/profile.rst:402 +msgid "file name" +msgstr "" + +#: ../Doc/library/profile.rst:400 +msgid "``'filename'``" +msgstr "``'filename'``" + +#: ../Doc/library/profile.rst:400 +msgid "SortKey.FILENAME" +msgstr "" + +#: ../Doc/library/profile.rst:402 +msgid "``'module'``" +msgstr "``'module'``" + +#: ../Doc/library/profile.rst:404 +msgid "``'ncalls'``" +msgstr "``'ncalls'``" + +#: ../Doc/library/profile.rst:406 +msgid "``'pcalls'``" +msgstr "``'pcalls'``" + +#: ../Doc/library/profile.rst:406 +msgid "SortKey.PCALLS" +msgstr "" + +#: ../Doc/library/profile.rst:406 +msgid "primitive call count" +msgstr "" + +#: ../Doc/library/profile.rst:408 +msgid "``'line'``" +msgstr "``'line'``" + +#: ../Doc/library/profile.rst:408 +msgid "SortKey.LINE" +msgstr "" + +#: ../Doc/library/profile.rst:408 +msgid "line number" +msgstr "" + +#: ../Doc/library/profile.rst:410 +msgid "``'name'``" +msgstr "``'name'``" + +#: ../Doc/library/profile.rst:410 +msgid "SortKey.NAME" +msgstr "" + +#: ../Doc/library/profile.rst:410 +msgid "function name" +msgstr "" + +#: ../Doc/library/profile.rst:412 +msgid "``'nfl'``" +msgstr "``'nfl'``" + +#: ../Doc/library/profile.rst:412 +msgid "SortKey.NFL" +msgstr "" + +#: ../Doc/library/profile.rst:412 +msgid "name/file/line" +msgstr "" + +#: ../Doc/library/profile.rst:414 +msgid "``'stdname'``" +msgstr "``'stdname'``" + +#: ../Doc/library/profile.rst:414 +msgid "SortKey.STDNAME" +msgstr "" + +#: ../Doc/library/profile.rst:414 +msgid "standard name" +msgstr "" + +#: ../Doc/library/profile.rst:416 +msgid "``'time'``" +msgstr "``'time'``" + +#: ../Doc/library/profile.rst:416 +msgid "SortKey.TIME" +msgstr "" + +#: ../Doc/library/profile.rst:416 ../Doc/library/profile.rst:418 +msgid "internal time" +msgstr "" + +#: ../Doc/library/profile.rst:418 +msgid "``'tottime'``" +msgstr "``'tottime'``" + +#: ../Doc/library/profile.rst:421 +msgid "" +"Note that all sorts on statistics are in descending order (placing most time " +"consuming items first), where as name, file, and line number searches are in " +"ascending order (alphabetical). The subtle distinction between ``SortKey." +"NFL`` and ``SortKey.STDNAME`` is that the standard name is a sort of the " +"name as printed, which means that the embedded line numbers get compared in " +"an odd way. For example, lines 3, 20, and 40 would (if the file names were " +"the same) appear in the string order 20, 3 and 40. In contrast, ``SortKey." +"NFL`` does a numeric compare of the line numbers. In fact, " +"``sort_stats(SortKey.NFL)`` is the same as ``sort_stats(SortKey.NAME, " +"SortKey.FILENAME, SortKey.LINE)``." +msgstr "" + +#: ../Doc/library/profile.rst:432 +msgid "" +"For backward-compatibility reasons, the numeric arguments ``-1``, ``0``, " +"``1``, and ``2`` are permitted. They are interpreted as ``'stdname'``, " +"``'calls'``, ``'time'``, and ``'cumulative'`` respectively. If this old " +"style format (numeric) is used, only one sort key (the numeric key) will be " +"used, and additional arguments will be silently ignored." +msgstr "" + +#: ../Doc/library/profile.rst:440 +msgid "Added the SortKey enum." +msgstr "" + +#: ../Doc/library/profile.rst:445 +msgid "" +"This method for the :class:`Stats` class reverses the ordering of the basic " +"list within the object. Note that by default ascending vs descending order " +"is properly selected based on the sort key of choice." +msgstr "" + +#: ../Doc/library/profile.rst:455 +msgid "" +"This method for the :class:`Stats` class prints out a report as described in " +"the :func:`profile.run` definition." +msgstr "" + +#: ../Doc/library/profile.rst:458 +msgid "" +"The order of the printing is based on the last :meth:`~pstats.Stats." +"sort_stats` operation done on the object (subject to caveats in :meth:" +"`~pstats.Stats.add` and :meth:`~pstats.Stats.strip_dirs`)." +msgstr "" + +#: ../Doc/library/profile.rst:463 +msgid "" +"The arguments provided (if any) can be used to limit the list down to the " +"significant entries. Initially, the list is taken to be the complete set of " +"profiled functions. Each restriction is either an integer (to select a " +"count of lines), or a decimal fraction between 0.0 and 1.0 inclusive (to " +"select a percentage of lines), or a string that will interpreted as a " +"regular expression (to pattern match the standard name that is printed). If " +"several restrictions are provided, then they are applied sequentially. For " +"example::" +msgstr "" + +#: ../Doc/library/profile.rst:474 +msgid "" +"would first limit the printing to first 10% of list, and then only print " +"functions that were part of filename :file:`.\\*foo:`. In contrast, the " +"command::" +msgstr "" + +#: ../Doc/library/profile.rst:480 +msgid "" +"would limit the list to all functions having file names :file:`.\\*foo:`, " +"and then proceed to only print the first 10% of them." +msgstr "" + +#: ../Doc/library/profile.rst:486 +msgid "" +"This method for the :class:`Stats` class prints a list of all functions that " +"called each function in the profiled database. The ordering is identical to " +"that provided by :meth:`~pstats.Stats.print_stats`, and the definition of " +"the restricting argument is also identical. Each caller is reported on its " +"own line. The format differs slightly depending on the profiler that " +"produced the stats:" +msgstr "" + +#: ../Doc/library/profile.rst:493 +msgid "" +"With :mod:`profile`, a number is shown in parentheses after each caller to " +"show how many times this specific call was made. For convenience, a second " +"non-parenthesized number repeats the cumulative time spent in the function " +"at the right." +msgstr "" + +#: ../Doc/library/profile.rst:498 +msgid "" +"With :mod:`cProfile`, each caller is preceded by three numbers: the number " +"of times this specific call was made, and the total and cumulative times " +"spent in the current function while it was invoked by this specific caller." +msgstr "" + +#: ../Doc/library/profile.rst:506 +msgid "" +"This method for the :class:`Stats` class prints a list of all function that " +"were called by the indicated function. Aside from this reversal of " +"direction of calls (re: called vs was called by), the arguments and ordering " +"are identical to the :meth:`~pstats.Stats.print_callers` method." +msgstr "" + +#: ../Doc/library/profile.rst:515 +msgid "What Is Deterministic Profiling?" +msgstr "" + +#: ../Doc/library/profile.rst:517 +msgid "" +":dfn:`Deterministic profiling` is meant to reflect the fact that all " +"*function call*, *function return*, and *exception* events are monitored, " +"and precise timings are made for the intervals between these events (during " +"which time the user's code is executing). In contrast, :dfn:`statistical " +"profiling` (which is not done by this module) randomly samples the effective " +"instruction pointer, and deduces where time is being spent. The latter " +"technique traditionally involves less overhead (as the code does not need to " +"be instrumented), but provides only relative indications of where time is " +"being spent." +msgstr "" + +#: ../Doc/library/profile.rst:526 +msgid "" +"In Python, since there is an interpreter active during execution, the " +"presence of instrumented code is not required to do deterministic " +"profiling. Python automatically provides a :dfn:`hook` (optional callback) " +"for each event. In addition, the interpreted nature of Python tends to add " +"so much overhead to execution, that deterministic profiling tends to only " +"add small processing overhead in typical applications. The result is that " +"deterministic profiling is not that expensive, yet provides extensive run " +"time statistics about the execution of a Python program." +msgstr "" + +#: ../Doc/library/profile.rst:535 +msgid "" +"Call count statistics can be used to identify bugs in code (surprising " +"counts), and to identify possible inline-expansion points (high call " +"counts). Internal time statistics can be used to identify \"hot loops\" " +"that should be carefully optimized. Cumulative time statistics should be " +"used to identify high level errors in the selection of algorithms. Note " +"that the unusual handling of cumulative times in this profiler allows " +"statistics for recursive implementations of algorithms to be directly " +"compared to iterative implementations." +msgstr "" + +#: ../Doc/library/profile.rst:548 +msgid "Limitations" +msgstr "" + +#: ../Doc/library/profile.rst:550 +msgid "" +"One limitation has to do with accuracy of timing information. There is a " +"fundamental problem with deterministic profilers involving accuracy. The " +"most obvious restriction is that the underlying \"clock\" is only ticking at " +"a rate (typically) of about .001 seconds. Hence no measurements will be " +"more accurate than the underlying clock. If enough measurements are taken, " +"then the \"error\" will tend to average out. Unfortunately, removing this " +"first error induces a second source of error." +msgstr "" + +#: ../Doc/library/profile.rst:558 +msgid "" +"The second problem is that it \"takes a while\" from when an event is " +"dispatched until the profiler's call to get the time actually *gets* the " +"state of the clock. Similarly, there is a certain lag when exiting the " +"profiler event handler from the time that the clock's value was obtained " +"(and then squirreled away), until the user's code is once again executing. " +"As a result, functions that are called many times, or call many functions, " +"will typically accumulate this error. The error that accumulates in this " +"fashion is typically less than the accuracy of the clock (less than one " +"clock tick), but it *can* accumulate and become very significant." +msgstr "" + +#: ../Doc/library/profile.rst:568 +msgid "" +"The problem is more important with :mod:`profile` than with the lower-" +"overhead :mod:`cProfile`. For this reason, :mod:`profile` provides a means " +"of calibrating itself for a given platform so that this error can be " +"probabilistically (on the average) removed. After the profiler is " +"calibrated, it will be more accurate (in a least square sense), but it will " +"sometimes produce negative numbers (when call counts are exceptionally low, " +"and the gods of probability work against you :-). ) Do *not* be alarmed by " +"negative numbers in the profile. They should *only* appear if you have " +"calibrated your profiler, and the results are actually better than without " +"calibration." +msgstr "" + +#: ../Doc/library/profile.rst:582 +msgid "Calibration" +msgstr "" + +#: ../Doc/library/profile.rst:584 +msgid "" +"The profiler of the :mod:`profile` module subtracts a constant from each " +"event handling time to compensate for the overhead of calling the time " +"function, and socking away the results. By default, the constant is 0. The " +"following procedure can be used to obtain a better constant for a given " +"platform (see :ref:`profile-limitations`). ::" +msgstr "" + +#: ../Doc/library/profile.rst:595 +msgid "" +"The method executes the number of Python calls given by the argument, " +"directly and again under the profiler, measuring the time for both. It then " +"computes the hidden overhead per profiler event, and returns that as a " +"float. For example, on a 1.8Ghz Intel Core i5 running Mac OS X, and using " +"Python's time.process_time() as the timer, the magical number is about " +"4.04e-6." +msgstr "" + +#: ../Doc/library/profile.rst:601 +msgid "" +"The object of this exercise is to get a fairly consistent result. If your " +"computer is *very* fast, or your timer function has poor resolution, you " +"might have to pass 100000, or even 1000000, to get consistent results." +msgstr "" + +#: ../Doc/library/profile.rst:605 +msgid "" +"When you have a consistent answer, there are three ways you can use it::" +msgstr "" + +#: ../Doc/library/profile.rst:619 +msgid "" +"If you have a choice, you are better off choosing a smaller constant, and " +"then your results will \"less often\" show up as negative in profile " +"statistics." +msgstr "" + +#: ../Doc/library/profile.rst:625 +msgid "Using a custom timer" +msgstr "" + +#: ../Doc/library/profile.rst:627 +msgid "" +"If you want to change how current time is determined (for example, to force " +"use of wall-clock time or elapsed process time), pass the timing function " +"you want to the :class:`Profile` class constructor::" +msgstr "" + +#: ../Doc/library/profile.rst:633 +msgid "" +"The resulting profiler will then call ``your_time_func``. Depending on " +"whether you are using :class:`profile.Profile` or :class:`cProfile.Profile`, " +"``your_time_func``'s return value will be interpreted differently:" +msgstr "" + +#: ../Doc/library/profile.rst:651 +msgid ":class:`profile.Profile`" +msgstr "" + +#: ../Doc/library/profile.rst:638 +msgid "" +"``your_time_func`` should return a single number, or a list of numbers whose " +"sum is the current time (like what :func:`os.times` returns). If the " +"function returns a single time number, or the list of returned numbers has " +"length 2, then you will get an especially fast version of the dispatch " +"routine." +msgstr "" + +#: ../Doc/library/profile.rst:644 +msgid "" +"Be warned that you should calibrate the profiler class for the timer " +"function that you choose (see :ref:`profile-calibration`). For most " +"machines, a timer that returns a lone integer value will provide the best " +"results in terms of low overhead during profiling. (:func:`os.times` is " +"*pretty* bad, as it returns a tuple of floating point values). If you want " +"to substitute a better timer in the cleanest fashion, derive a class and " +"hardwire a replacement dispatch method that best handles your timer call, " +"along with the appropriate calibration constant." +msgstr "" + +#: ../Doc/library/profile.rst:665 +msgid ":class:`cProfile.Profile`" +msgstr "" + +#: ../Doc/library/profile.rst:654 +msgid "" +"``your_time_func`` should return a single number. If it returns integers, " +"you can also invoke the class constructor with a second argument specifying " +"the real duration of one unit of time. For example, if " +"``your_integer_time_func`` returns times measured in thousands of seconds, " +"you would construct the :class:`Profile` instance as follows::" +msgstr "" + +#: ../Doc/library/profile.rst:662 +msgid "" +"As the :class:`cProfile.Profile` class cannot be calibrated, custom timer " +"functions should be used with care and should be as fast as possible. For " +"the best results with a custom timer, it might be necessary to hard-code it " +"in the C source of the internal :mod:`_lsprof` module." +msgstr "" + +#: ../Doc/library/profile.rst:667 +msgid "" +"Python 3.3 adds several new functions in :mod:`time` that can be used to " +"make precise measurements of process or wall-clock time. For example, see :" +"func:`time.perf_counter`." +msgstr "" diff --git a/library/pty.po b/library/pty.po new file mode 100644 index 000000000..99229e739 --- /dev/null +++ b/library/pty.po @@ -0,0 +1,170 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-09-28 19:18+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/pty.rst:2 +msgid ":mod:`pty` --- Pseudo-terminal utilities" +msgstr ":mod:`pty` — Outils de manipulation de pseudo-terminaux" + +#: ../Doc/library/pty.rst:11 +msgid "**Source code:** :source:`Lib/pty.py`" +msgstr "**Code source :** :source:`Lib/pty.py`" + +#: ../Doc/library/pty.rst:15 +msgid "" +"The :mod:`pty` module defines operations for handling the pseudo-terminal " +"concept: starting another process and being able to write to and read from " +"its controlling terminal programmatically." +msgstr "" +"Le module :mod:`pty` expose des fonctions de manipulation de pseudo-" +"terminaux, il permet d'écrire un programme capable de démarrer un autre " +"processus, d'écrire et de lire depuis son terminal." + +#: ../Doc/library/pty.rst:19 +msgid "" +"Because pseudo-terminal handling is highly platform dependent, there is code " +"to do it only for Linux. (The Linux code is supposed to work on other " +"platforms, but hasn't been tested yet.)" +msgstr "" +"La gestion de pseudo-terminaux étant très dépendante de la plateforme, ce " +"code ne gère que Linux. (Code supposé fonctionner sur d'autres plateformes, " +"mais sans avoir été testé)." + +#: ../Doc/library/pty.rst:23 +msgid "The :mod:`pty` module defines the following functions:" +msgstr "Le module :mod:`pty` expose les fonctions suivantes :" + +#: ../Doc/library/pty.rst:28 +msgid "" +"Fork. Connect the child's controlling terminal to a pseudo-terminal. Return " +"value is ``(pid, fd)``. Note that the child gets *pid* 0, and the *fd* is " +"*invalid*. The parent's return value is the *pid* of the child, and *fd* is " +"a file descriptor connected to the child's controlling terminal (and also to " +"the child's standard input and output)." +msgstr "" +"*Fork*. Connecte le terminal contrôlé par le fils à un pseudo-terminal. La " +"valeur renvoyée est ``(pid, fd)``. Notez que le fils obtient ``0`` comme " +"*pid* et un *fd* non valide. Le parent obtient le *pid* du fils, et *fd* un " +"descripteur de fichier connecté à un terminal contrôlé par le fils (et donc " +"à l'entrée et la sortie standard du fils)." + +#: ../Doc/library/pty.rst:37 +msgid "" +"Open a new pseudo-terminal pair, using :func:`os.openpty` if possible, or " +"emulation code for generic Unix systems. Return a pair of file descriptors " +"``(master, slave)``, for the master and the slave end, respectively." +msgstr "" +"Ouvre une nouvelle paire de pseudo-terminaux, en utilisant si possible :func:" +"`os.openpty`, ou du code émulant la fonctionnalité pour des systèmes Unix " +"génériques. Renvoie une paire de descripteurs de fichier ``(master, " +"slave)``, pour le maître et pour l'esclave respectivement." + +#: ../Doc/library/pty.rst:44 +msgid "" +"Spawn a process, and connect its controlling terminal with the current " +"process's standard io. This is often used to baffle programs which insist on " +"reading from the controlling terminal. It is expected that the process " +"spawned behind the pty will eventually terminate, and when it does *spawn* " +"will return." +msgstr "" +"Crée un nouveau processus et connecte son terminal aux entrées/sorties " +"standard du processus courant. C'est typiquement utilisé pour duper les " +"programmes insistant sur le fait de lire depuis leur terminal." + +#: ../Doc/library/pty.rst:50 +msgid "" +"The functions *master_read* and *stdin_read* are passed a file descriptor " +"which they should read from, and they should always return a byte string. In " +"order to force spawn to return before the child process exits an :exc:" +"`OSError` should be thrown." +msgstr "" +"Les fonctions `master_read` et `stdin_read` reçoivent un descripteur de " +"fichier qu'elles doivent lire, et elles doivent toujours renvoyer une chaîne " +"d'octets. Afin de forcer le *spawn* à faire un renvoi avant que le processus " +"enfant ne se termine, une exception :exc:`OSError` doit être levée." + +#: ../Doc/library/pty.rst:55 +msgid "" +"The default implementation for both functions will read and return up to " +"1024 bytes each time the function is called. The *master_read* callback is " +"passed the pseudoterminal’s master file descriptor to read output from the " +"child process, and *stdin_read* is passed file descriptor 0, to read from " +"the parent process's standard input." +msgstr "" +"L'implémentation par défaut pour les deux fonctions lit et renvoie jusqu'à " +"1024 octets à chaque appel de la fonction. La fonction de rappel " +"`master_read` reçoit le descripteur de fichier du pseudo-terminal maître " +"pour lire la sortie du processus enfant, et `stdin_read` reçoit le " +"descripteur de fichier 0, pour lire l'entrée standard du processus parent." + +#: ../Doc/library/pty.rst:61 +msgid "" +"Returning an empty byte string from either callback is interpreted as an end-" +"of-file (EOF) condition, and that callback will not be called after that. If " +"*stdin_read* signals EOF the controlling terminal can no longer communicate " +"with the parent process OR the child process. Unless the child process will " +"quit without any input, *spawn* will then loop forever. If *master_read* " +"signals EOF the same behavior results (on linux at least)." +msgstr "" +"Le renvoi d'une chaîne d'octets vide à partir de l'un ou l'autre des rappels " +"est interprété comme une condition de fin de fichier (EOF), et ce rappel ne " +"sera pas appelé après cela. Si *stdin_read* signale EOF, le terminal de " +"contrôle ne peut plus communiquer avec le processus parent OU le processus " +"enfant. À moins que le processus enfant ne quitte sans aucune entrée, " +"*spawn* sera lancé dans une boucle infinie. Si `master_read` indique la fin " +"de fichier, on aura le même comportement (sur Linux au moins)." + +#: ../Doc/library/pty.rst:68 +msgid "" +"If both callbacks signal EOF then *spawn* will probably never return, unless " +"*select* throws an error on your platform when passed three empty lists. " +"This is a bug, documented in `issue 26228 `_." +msgstr "" +"Si les deux fonctions de rappel indiquent la fin de fichier (*EOF*), alors " +"*spawn* ne fera probablement jamais de renvoi, à moins que *select* ne lance " +"une erreur sur votre plateforme lors du passage de trois listes vides. Il " +"s'agit d'un bogue, renseigné dans ``_." + +#: ../Doc/library/pty.rst:73 +msgid "" +":func:`spawn` now returns the status value from :func:`os.waitpid` on the " +"child process." +msgstr "" +":func:`spawn` renvoie maintenant la valeur renvoyée par :func:`os.waitpid` " +"sur le processus fils." + +#: ../Doc/library/pty.rst:78 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/pty.rst:82 +msgid "" +"The following program acts like the Unix command :manpage:`script(1)`, using " +"a pseudo-terminal to record all input and output of a terminal session in a " +"\"typescript\". ::" +msgstr "" +"Le programme suivant se comporte comme la commande Unix :manpage:" +"`script(1)`, utilisant un pseudo-terminal pour enregistrer toutes les " +"entrées et sorties d'une session dans un fichier *typescript*. ::" + +#~ msgid "" +#~ "The functions *master_read* and *stdin_read* should be functions which " +#~ "read from a file descriptor. The defaults try to read 1024 bytes each " +#~ "time they are called." +#~ msgstr "" +#~ "Les fonctions *master_read* et *stdin_read* doivent être des fonctions " +#~ "lisant sur un descripteur de fichier. Par défaut elles lisent 1024 octets " +#~ "à chaque fois qu'elles sont appelées." diff --git a/library/pwd.po b/library/pwd.po new file mode 100644 index 000000000..88bd5abb2 --- /dev/null +++ b/library/pwd.po @@ -0,0 +1,180 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-04-11 18:10+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/pwd.rst:2 +msgid ":mod:`pwd` --- The password database" +msgstr "" + +#: ../Doc/library/pwd.rst:10 +msgid "" +"This module provides access to the Unix user account and password database. " +"It is available on all Unix versions." +msgstr "" + +#: ../Doc/library/pwd.rst:13 +msgid "" +"Password database entries are reported as a tuple-like object, whose " +"attributes correspond to the members of the ``passwd`` structure (Attribute " +"field below, see ````):" +msgstr "" + +#: ../Doc/library/pwd.rst:18 +msgid "Index" +msgstr "Index" + +#: ../Doc/library/pwd.rst:18 +msgid "Attribute" +msgstr "Attribut" + +#: ../Doc/library/pwd.rst:18 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/pwd.rst:20 +msgid "0" +msgstr "0" + +#: ../Doc/library/pwd.rst:20 +msgid "``pw_name``" +msgstr "``pw_name``" + +#: ../Doc/library/pwd.rst:20 +msgid "Login name" +msgstr "Nom d’utilisateur" + +#: ../Doc/library/pwd.rst:22 +msgid "1" +msgstr "1" + +#: ../Doc/library/pwd.rst:22 +msgid "``pw_passwd``" +msgstr "``pw_passwd``" + +#: ../Doc/library/pwd.rst:22 +msgid "Optional encrypted password" +msgstr "" + +#: ../Doc/library/pwd.rst:24 +msgid "2" +msgstr "2" + +#: ../Doc/library/pwd.rst:24 +msgid "``pw_uid``" +msgstr "``pw_uid``" + +#: ../Doc/library/pwd.rst:24 +msgid "Numerical user ID" +msgstr "" + +#: ../Doc/library/pwd.rst:26 +msgid "3" +msgstr "3" + +#: ../Doc/library/pwd.rst:26 +msgid "``pw_gid``" +msgstr "``pw_gid``" + +#: ../Doc/library/pwd.rst:26 +msgid "Numerical group ID" +msgstr "" + +#: ../Doc/library/pwd.rst:28 +msgid "4" +msgstr "4" + +#: ../Doc/library/pwd.rst:28 +msgid "``pw_gecos``" +msgstr "``pw_gecos``" + +#: ../Doc/library/pwd.rst:28 +msgid "User name or comment field" +msgstr "" + +#: ../Doc/library/pwd.rst:30 +msgid "5" +msgstr "5" + +#: ../Doc/library/pwd.rst:30 +msgid "``pw_dir``" +msgstr "``pw_dir``" + +#: ../Doc/library/pwd.rst:30 +msgid "User home directory" +msgstr "Répertoire d’accueil de l’utilisateur" + +#: ../Doc/library/pwd.rst:32 +msgid "6" +msgstr "6" + +#: ../Doc/library/pwd.rst:32 +msgid "``pw_shell``" +msgstr "``pw_shell``" + +#: ../Doc/library/pwd.rst:32 +msgid "User command interpreter" +msgstr "" + +#: ../Doc/library/pwd.rst:35 +msgid "" +"The uid and gid items are integers, all others are strings. :exc:`KeyError` " +"is raised if the entry asked for cannot be found." +msgstr "" + +#: ../Doc/library/pwd.rst:42 +msgid "" +"In traditional Unix the field ``pw_passwd`` usually contains a password " +"encrypted with a DES derived algorithm (see module :mod:`crypt`). However " +"most modern unices use a so-called *shadow password* system. On those " +"unices the *pw_passwd* field only contains an asterisk (``'*'``) or the " +"letter ``'x'`` where the encrypted password is stored in a file :file:`/etc/" +"shadow` which is not world readable. Whether the *pw_passwd* field contains " +"anything useful is system-dependent. If available, the :mod:`spwd` module " +"should be used where access to the encrypted password is required." +msgstr "" + +#: ../Doc/library/pwd.rst:51 +msgid "It defines the following items:" +msgstr "" + +#: ../Doc/library/pwd.rst:56 +msgid "Return the password database entry for the given numeric user ID." +msgstr "" + +#: ../Doc/library/pwd.rst:61 +msgid "Return the password database entry for the given user name." +msgstr "" + +#: ../Doc/library/pwd.rst:66 +msgid "" +"Return a list of all available password database entries, in arbitrary order." +msgstr "" + +#: ../Doc/library/pwd.rst:72 +msgid "Module :mod:`grp`" +msgstr "Module :mod:`grp`" + +#: ../Doc/library/pwd.rst:72 +msgid "An interface to the group database, similar to this." +msgstr "Interface pour la base de données des groupes, similaire à celle-ci." + +#: ../Doc/library/pwd.rst:74 +msgid "Module :mod:`spwd`" +msgstr "" + +#: ../Doc/library/pwd.rst:75 +msgid "An interface to the shadow password database, similar to this." +msgstr "" diff --git a/library/py_compile.po b/library/py_compile.po new file mode 100644 index 000000000..6c0d0af20 --- /dev/null +++ b/library/py_compile.po @@ -0,0 +1,247 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/py_compile.rst:2 +msgid ":mod:`py_compile` --- Compile Python source files" +msgstr ":mod:`py_compile` — Compilation de sources Python" + +#: ../Doc/library/py_compile.rst:10 +msgid "**Source code:** :source:`Lib/py_compile.py`" +msgstr "**Code source :** :source:`Lib/py_compile.py`" + +#: ../Doc/library/py_compile.rst:16 +msgid "" +"The :mod:`py_compile` module provides a function to generate a byte-code " +"file from a source file, and another function used when the module source " +"file is invoked as a script." +msgstr "" +"Le module :mod:`py_compile` définit une fonction principale qui génère un " +"fichier de code intermédiaire à partir d'un fichier source. Il exporte " +"également la fonction qu'il exécute quand il est lancé en tant que script." + +#: ../Doc/library/py_compile.rst:20 +msgid "" +"Though not often needed, this function can be useful when installing modules " +"for shared use, especially if some of the users may not have permission to " +"write the byte-code cache files in the directory containing the source code." +msgstr "" +"Bien que ce module ne soit pas d'usage fréquent, il peut servir lors de " +"l'installation de bibliothèques partagées, notamment dans le cas où tous les " +"utilisateurs n'ont pas les privilèges d'écriture dans l'emplacement " +"d'installation." + +#: ../Doc/library/py_compile.rst:27 +msgid "" +"Exception raised when an error occurs while attempting to compile the file." +msgstr "Exception levée quand une erreur se produit à la compilation." + +#: ../Doc/library/py_compile.rst:32 +msgid "" +"Compile a source file to byte-code and write out the byte-code cache file. " +"The source code is loaded from the file named *file*. The byte-code is " +"written to *cfile*, which defaults to the :pep:`3147`/:pep:`488` path, " +"ending in ``.pyc``. For example, if *file* is ``/foo/bar/baz.py`` *cfile* " +"will default to ``/foo/bar/__pycache__/baz.cpython-32.pyc`` for Python 3.2. " +"If *dfile* is specified, it is used as the name of the source file in error " +"messages when instead of *file*. If *doraise* is true, a :exc:" +"`PyCompileError` is raised when an error is encountered while compiling " +"*file*. If *doraise* is false (the default), an error string is written to " +"``sys.stderr``, but no exception is raised. This function returns the path " +"to byte-compiled file, i.e. whatever *cfile* value was used." +msgstr "" + +#: ../Doc/library/py_compile.rst:45 +msgid "" +"If the path that *cfile* becomes (either explicitly specified or computed) " +"is a symlink or non-regular file, :exc:`FileExistsError` will be raised. " +"This is to act as a warning that import will turn those paths into regular " +"files if it is allowed to write byte-compiled files to those paths. This is " +"a side-effect of import using file renaming to place the final byte-compiled " +"file into place to prevent concurrent file writing issues." +msgstr "" +"Si le chemin de destination, explicité par *cfile* ou choisi " +"automatiquement, est un lien symbolique, ou n'est pas un véritable fichier, " +"une exception de type :exc:`FileExistsError` est levée. Ceci, dans le but de " +"vous avertir que le système d'importation changera ces chemins en fichiers " +"s'il est autorisé à y écrire des fichiers de code intermédiaire. En effet, " +"les importations passent par un renommage final du fichier de code " +"intermédiaire vers sa destination, afin d'éviter les problèmes liés à " +"l'écriture simultanée d'un même fichier par plusieurs processus." + +#: ../Doc/library/py_compile.rst:52 +msgid "" +"*optimize* controls the optimization level and is passed to the built-in :" +"func:`compile` function. The default of ``-1`` selects the optimization " +"level of the current interpreter." +msgstr "" +"*optimize* règle le niveau d'optimisation. Ce paramètre est passé " +"directement à la fonction native :func:`compile`. Avec la valeur par défaut " +"de ``-1``, le code intermédiaire hérite du niveau d'optimisation de " +"l'interpréteur courant." + +#: ../Doc/library/py_compile.rst:56 +msgid "" +"*invalidation_mode* should be a member of the :class:`PycInvalidationMode` " +"enum and controls how the generated bytecode cache is invalidated at " +"runtime. The default is :attr:`PycInvalidationMode.CHECKED_HASH` if the :" +"envvar:`SOURCE_DATE_EPOCH` environment variable is set, otherwise the " +"default is :attr:`PycInvalidationMode.TIMESTAMP`." +msgstr "" +"*invalidation_mode* précise la manière dont le code intermédiaire produit " +"est invalidé à son exécution. Il doit être un membre de l'énumération :class:" +"`PycInvalidationMode`. La valeur par défaut est :attr:`PycInvalidationMode." +"TIMESTAMP`. Elle passe toutefois à :attr:`PycInvalidationMode.CHECKED_HASH` " +"si la variable d'environnement :envvar:`SOURCE_DATE_EPOCH` est définie." + +#: ../Doc/library/py_compile.rst:62 +msgid "" +"Changed default value of *cfile* to be :PEP:`3147`-compliant. Previous " +"default was *file* + ``'c'`` (``'o'`` if optimization was enabled). Also " +"added the *optimize* parameter." +msgstr "" +"la méthode de choix de destination a changé au profit de celle décrite dans " +"la :pep:`3147`. Auparavant, le nom du fichier de code intermédiaire était " +"*file* + ``'c'`` (ou ``'o'`` lorsque les optimisations étaient actives). Le " +"paramètre *optimize* a été ajouté." + +#: ../Doc/library/py_compile.rst:67 +msgid "" +"Changed code to use :mod:`importlib` for the byte-code cache file writing. " +"This means file creation/writing semantics now match what :mod:`importlib` " +"does, e.g. permissions, write-and-move semantics, etc. Also added the caveat " +"that :exc:`FileExistsError` is raised if *cfile* is a symlink or non-regular " +"file." +msgstr "" +"le code a été modifié pour faire appel à :mod:`importlib` dans les " +"opérations d'écriture du code intermédiaire. Ce module se comporte donc " +"exactement comme :mod:`importlib` en ce qui concerne, par exemple, les " +"permissions, ou le renommage final qui garantit une opération atomique. :exc:" +"`FileExistsError` est désormais levée si la destination est un lien " +"symbolique ou n'est pas un véritable fichier." + +#: ../Doc/library/py_compile.rst:74 +msgid "" +"The *invalidation_mode* parameter was added as specified in :pep:`552`. If " +"the :envvar:`SOURCE_DATE_EPOCH` environment variable is set, " +"*invalidation_mode* will be forced to :attr:`PycInvalidationMode." +"CHECKED_HASH`." +msgstr "" +"le paramètre *invalidation_mode* a été ajouté comme requis par la :pep:" +"`552`. Si la variable d'environnement :envvar:`SOURCE_DATE_EPOCH` est " +"définie, *invalidation_mode* est ignoré, et :attr:`PycInvalidationMode." +"CHECKED_HASH` s'applique dans tous les cas." + +#: ../Doc/library/py_compile.rst:80 +msgid "" +"The :envvar:`SOURCE_DATE_EPOCH` environment variable no longer overrides the " +"value of the *invalidation_mode* argument, and determines its default value " +"instead." +msgstr "" +"La variable d'environnement :envvar:`SOURCE_DATE_EPOCH` n'a plus préséance " +"sur le paramètre *invalidation_mode*, mais détermine seulement le " +"comportement par défaut lorsque ce paramètre n'est pas passé." + +#: ../Doc/library/py_compile.rst:88 +msgid "" +"A enumeration of possible methods the interpreter can use to determine " +"whether a bytecode file is up to date with a source file. The ``.pyc`` file " +"indicates the desired invalidation mode in its header. See :ref:`pyc-" +"invalidation` for more information on how Python invalidates ``.pyc`` files " +"at runtime." +msgstr "" +"Énumération des méthodes que l'interpréteur est susceptible d'appliquer afin " +"de déterminer si un fichier de code intermédiaire est périmé par rapport à " +"sa source. Les fichiers ``.pyc`` portent le mode d'invalidation désiré dans " +"leur en-tête. Veuillez-vous référer à :ref:`pyc-invalidation` pour plus " +"d'informations sur la manière dont Python invalide les fichiers ``.pyc`` à " +"l'exécution." + +#: ../Doc/library/py_compile.rst:98 +msgid "" +"The ``.pyc`` file includes the timestamp and size of the source file, which " +"Python will compare against the metadata of the source file at runtime to " +"determine if the ``.pyc`` file needs to be regenerated." +msgstr "" +"Le fichier ``.pyc`` contient l'horodatage et la taille de la source. " +"L'interpréteur inspecte les métadonnées du fichier source au moment de " +"l'exécution, et régénère le fichier ``.pyc`` si elles ont changé." + +#: ../Doc/library/py_compile.rst:104 +msgid "" +"The ``.pyc`` file includes a hash of the source file content, which Python " +"will compare against the source at runtime to determine if the ``.pyc`` file " +"needs to be regenerated." +msgstr "" +"Le fichier ``.pyc`` porte une empreinte du code source. À l'exécution, elle " +"est recalculée à partir de la source éventuellement modifiée, et le fichier " +"``.pyc`` est régénéré si les deux empreintes sont différentes." + +#: ../Doc/library/py_compile.rst:110 +msgid "" +"Like :attr:`CHECKED_HASH`, the ``.pyc`` file includes a hash of the source " +"file content. However, Python will at runtime assume the ``.pyc`` file is up " +"to date and not validate the ``.pyc`` against the source file at all." +msgstr "" +"Le principe est le même que :attr:`CHECKED_HASH`, mais à l'exécution, " +"l'interpréteur considère systématiquement que le fichier ``.pyc`` est à " +"jour, sans regarder la source." + +#: ../Doc/library/py_compile.rst:114 +msgid "" +"This option is useful when the ``.pycs`` are kept up to date by some system " +"external to Python like a build system." +msgstr "" +"Cette option est utile lorsque les fichiers ``.pyc`` sont maintenus par un " +"outil externe, comme un système d'intégration." + +#: ../Doc/library/py_compile.rst:120 +msgid "" +"Compile several source files. The files named in *args* (or on the command " +"line, if *args* is ``None``) are compiled and the resulting byte-code is " +"cached in the normal manner. This function does not search a directory " +"structure to locate source files; it only compiles files named explicitly. " +"If ``'-'`` is the only parameter in args, the list of files is taken from " +"standard input." +msgstr "" +"Compile et met en cache tous les fichiers de la séquence *args*, ou ceux " +"passés comme arguments en ligne de commande si *args* est ``None``. Cette " +"fonction n'effectue aucune recherche des fichiers sources dans des dossiers. " +"Elle compile simplement les fichiers nommés un par un. Si ``'-'`` est le " +"seul paramètre dans *args*, la liste des fichiers est lue sur l'entrée " +"standard." + +#: ../Doc/library/py_compile.rst:127 +msgid "Added support for ``'-'``." +msgstr "prise en charge de ``'-'``." + +#: ../Doc/library/py_compile.rst:130 +msgid "" +"When this module is run as a script, the :func:`main` is used to compile all " +"the files named on the command line. The exit status is nonzero if one of " +"the files could not be compiled." +msgstr "" +"Lorsque ce module est exécuté en tant que script, la fonction :func:`main` " +"compile tous les fichiers passés comme arguments sur la ligne de commande. " +"Le code de retour vaut zéro si tous ont été compilés sans erreur." + +#: ../Doc/library/py_compile.rst:137 +msgid "Module :mod:`compileall`" +msgstr "Module :mod:`compileall`" + +#: ../Doc/library/py_compile.rst:138 +msgid "Utilities to compile all Python source files in a directory tree." +msgstr "" +"Utilitaires pour compiler des fichiers source Python dans une arborescence" diff --git a/library/pyclbr.po b/library/pyclbr.po new file mode 100644 index 000000000..cbe460127 --- /dev/null +++ b/library/pyclbr.po @@ -0,0 +1,143 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/pyclbr.rst:2 +msgid ":mod:`pyclbr` --- Python class browser support" +msgstr "" + +#: ../Doc/library/pyclbr.rst:9 +msgid "**Source code:** :source:`Lib/pyclbr.py`" +msgstr "**Code source :** :source:`Lib/pyclbr.py`" + +#: ../Doc/library/pyclbr.rst:13 +msgid "" +"The :mod:`pyclbr` module provides limited information about the functions, " +"classes, and methods defined in a Python-coded module. The information is " +"sufficient to implement a module browser. The information is extracted from " +"the Python source code rather than by importing the module, so this module " +"is safe to use with untrusted code. This restriction makes it impossible to " +"use this module with modules not implemented in Python, including all " +"standard and optional extension modules." +msgstr "" + +#: ../Doc/library/pyclbr.rst:25 +msgid "" +"Return a dictionary mapping module-level class names to class descriptors. " +"If possible, descriptors for imported base classes are included. Parameter " +"*module* is a string with the name of the module to read; it may be the name " +"of a module within a package. If given, *path* is a sequence of directory " +"paths prepended to ``sys.path``, which is used to locate the module source " +"code." +msgstr "" + +#: ../Doc/library/pyclbr.rst:35 +msgid "" +"Return a dictionary-based tree containing a function or class descriptors " +"for each function and class defined in the module with a ``def`` or " +"``class`` statement. The returned dictionary maps module-level function and " +"class names to their descriptors. Nested objects are entered into the " +"children dictionary of their parent. As with readmodule, *module* names the " +"module to be read and *path* is prepended to sys.path. If the module being " +"read is a package, the returned dictionary has a key ``'__path__'`` whose " +"value is a list containing the package search path." +msgstr "" + +#: ../Doc/library/pyclbr.rst:45 +msgid "" +"Descriptors for nested definitions. They are accessed through the new " +"children attribute. Each has a new parent attribute." +msgstr "" + +#: ../Doc/library/pyclbr.rst:49 +msgid "" +"The descriptors returned by these functions are instances of Function and " +"Class classes. Users are not expected to create instances of these classes." +msgstr "" + +#: ../Doc/library/pyclbr.rst:57 +msgid "Function Objects" +msgstr "Objets fonctions" + +#: ../Doc/library/pyclbr.rst:58 +msgid "" +"Class :class:`Function` instances describe functions defined by def " +"statements. They have the following attributes:" +msgstr "" + +#: ../Doc/library/pyclbr.rst:64 +msgid "Name of the file in which the function is defined." +msgstr "" + +#: ../Doc/library/pyclbr.rst:69 +msgid "The name of the module defining the function described." +msgstr "" + +#: ../Doc/library/pyclbr.rst:74 +msgid "The name of the function." +msgstr "" + +#: ../Doc/library/pyclbr.rst:79 ../Doc/library/pyclbr.rst:122 +msgid "The line number in the file where the definition starts." +msgstr "" + +#: ../Doc/library/pyclbr.rst:84 +msgid "For top-level functions, None. For nested functions, the parent." +msgstr "" + +#: ../Doc/library/pyclbr.rst:91 ../Doc/library/pyclbr.rst:134 +msgid "" +"A dictionary mapping names to descriptors for nested functions and classes." +msgstr "" + +#: ../Doc/library/pyclbr.rst:100 +msgid "Class Objects" +msgstr "Objets classes" + +#: ../Doc/library/pyclbr.rst:101 +msgid "" +"Class :class:`Class` instances describe classes defined by class " +"statements. They have the same attributes as Functions and two more." +msgstr "" + +#: ../Doc/library/pyclbr.rst:107 +msgid "Name of the file in which the class is defined." +msgstr "" + +#: ../Doc/library/pyclbr.rst:112 +msgid "The name of the module defining the class described." +msgstr "" + +#: ../Doc/library/pyclbr.rst:117 +msgid "The name of the class." +msgstr "" + +#: ../Doc/library/pyclbr.rst:127 +msgid "For top-level classes, None. For nested classes, the parent." +msgstr "" + +#: ../Doc/library/pyclbr.rst:142 +msgid "" +"A list of :class:`Class` objects which describe the immediate base classes " +"of the class being described. Classes which are named as superclasses but " +"which are not discoverable by :func:`readmodule_ex` are listed as a string " +"with the class name instead of as :class:`Class` objects." +msgstr "" + +#: ../Doc/library/pyclbr.rst:151 +msgid "" +"A dictionary mapping method names to line numbers. This can be derived from " +"the newer children dictionary, but remains for back-compatibility." +msgstr "" diff --git a/library/pydoc.po b/library/pydoc.po new file mode 100644 index 000000000..78175be6d --- /dev/null +++ b/library/pydoc.po @@ -0,0 +1,228 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2019-06-08 15:22+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.1.1\n" + +#: ../Doc/library/pydoc.rst:2 +msgid ":mod:`pydoc` --- Documentation generator and online help system" +msgstr ":mod:`pydoc` — Générateur de documentation et système d’aide en ligne" + +#: ../Doc/library/pydoc.rst:10 +msgid "**Source code:** :source:`Lib/pydoc.py`" +msgstr "**Code source :** :source:`Lib/pydoc.py`" + +#: ../Doc/library/pydoc.rst:19 +msgid "" +"The :mod:`pydoc` module automatically generates documentation from Python " +"modules. The documentation can be presented as pages of text on the " +"console, served to a Web browser, or saved to HTML files." +msgstr "" +"Le module :mod:`pydoc` génère automatiquement de la documentation à partir " +"de modules Python. La documentation peut se présenter sous forme de pages de " +"texte dans la console, rendue dans un navigateur web, ou sauvegardée dans " +"des fichiers HTML." + +#: ../Doc/library/pydoc.rst:23 +msgid "" +"For modules, classes, functions and methods, the displayed documentation is " +"derived from the docstring (i.e. the :attr:`__doc__` attribute) of the " +"object, and recursively of its documentable members. If there is no " +"docstring, :mod:`pydoc` tries to obtain a description from the block of " +"comment lines just above the definition of the class, function or method in " +"the source file, or at the top of the module (see :func:`inspect." +"getcomments`)." +msgstr "" +"Pour les modules, classes, fonctions et méthodes, la documentation affichée " +"est tirée de la *docstring* (c.à.d de l’attribut :attr:`__doc__`) de l’objet " +"et ce, de manière récursive pour les membres qui peuvent être documentés. " +"S’il n’y a pas de *docstring*, :mod:`pydoc` essaie d’obtenir une description " +"à partir du bloc de commentaires juste au-dessus de la définition de la " +"classe, fonction ou méthode du fichier source, ou en haut du module (voir :" +"func:`inspect.getcomments`)." + +#: ../Doc/library/pydoc.rst:30 +msgid "" +"The built-in function :func:`help` invokes the online help system in the " +"interactive interpreter, which uses :mod:`pydoc` to generate its " +"documentation as text on the console. The same text documentation can also " +"be viewed from outside the Python interpreter by running :program:`pydoc` as " +"a script at the operating system's command prompt. For example, running ::" +msgstr "" +"La fonction native :func:`help` appelle le système d’aide en ligne dans " +"l’interpréteur Python qui utilise :mod:`pydoc` pour générer sa documentation " +"sous forme textuelle dans la console. Cette même documentation peut aussi " +"être consultée à l’extérieur de l’interpréteur Python en lançant :program:" +"`pydoc` dans le terminal du système d’exploitation. Par exemple en lançant ::" + +#: ../Doc/library/pydoc.rst:38 +msgid "" +"at a shell prompt will display documentation on the :mod:`sys` module, in a " +"style similar to the manual pages shown by the Unix :program:`man` command. " +"The argument to :program:`pydoc` can be the name of a function, module, or " +"package, or a dotted reference to a class, method, or function within a " +"module or module in a package. If the argument to :program:`pydoc` looks " +"like a path (that is, it contains the path separator for your operating " +"system, such as a slash in Unix), and refers to an existing Python source " +"file, then documentation is produced for that file." +msgstr "" +"dans un terminal, cela affiche la documentation du module :mod:`sys` dans un " +"style similaire à la commande Unix :program:`man`. On peut passer comme " +"argument à :program:`pydoc` le nom d’une fonction, d’un module, d’un paquet, " +"ou une référence pointant vers une classe, une méthode, ou une fonction dans " +"un module ou dans un paquet. Si l’argument passé à :program:`pydoc` est un " +"chemin (c.à.d qu’il contient des séparateurs de chemin tels que la barre " +"oblique ``/`` dans Unix), et fait référence à un fichier source Python " +"existant, alors la documentation est générée pour ce fichier." + +#: ../Doc/library/pydoc.rst:49 +msgid "" +"In order to find objects and their documentation, :mod:`pydoc` imports the " +"module(s) to be documented. Therefore, any code on module level will be " +"executed on that occasion. Use an ``if __name__ == '__main__':`` guard to " +"only execute code when a file is invoked as a script and not just imported." +msgstr "" +"Afin de trouver des objets et leur documentation, :mod:`pydoc` importe le ou " +"les modules à documenter. Par conséquent tout code au niveau du module sera " +"exécuté à cette occasion. Utiliser ``if __name__ == ‘__main__’:`` évite " +"d’exécuter du code lorsqu’un fichier est appelé directement et non pas " +"importé." + +#: ../Doc/library/pydoc.rst:54 +msgid "" +"When printing output to the console, :program:`pydoc` attempts to paginate " +"the output for easier reading. If the :envvar:`PAGER` environment variable " +"is set, :program:`pydoc` will use its value as a pagination program." +msgstr "" +"Lorsque l’on affiche une sortie sur la console, :program:`pydoc` essaye de " +"créer une pagination pour faciliter la lecture. Si la variable " +"d’environnement :envvar:`PAGER` est configurée, :program:`pydoc` utilise sa " +"valeur comme programme de pagination." + +#: ../Doc/library/pydoc.rst:58 +msgid "" +"Specifying a ``-w`` flag before the argument will cause HTML documentation " +"to be written out to a file in the current directory, instead of displaying " +"text on the console." +msgstr "" +"Ajouter une option ``-w`` avant l’argument entraine l’enregistrement de la " +"documentation HTML générée dans un fichier du répertoire courant au lieu de " +"l’afficher dans la console." + +#: ../Doc/library/pydoc.rst:62 +msgid "" +"Specifying a ``-k`` flag before the argument will search the synopsis lines " +"of all available modules for the keyword given as the argument, again in a " +"manner similar to the Unix :program:`man` command. The synopsis line of a " +"module is the first line of its documentation string." +msgstr "" +"Ajouter une option ``-w`` avant l’argument cherche les lignes de résumé de " +"tous les modules disponibles pour le mot clé donné comme argument, ceci à la " +"manière de la commande Unix :program:`man`. Les lignes de résumé d’un module " +"sont les premières lignes de sa *docstring*." + +#: ../Doc/library/pydoc.rst:67 +msgid "" +"You can also use :program:`pydoc` to start an HTTP server on the local " +"machine that will serve documentation to visiting Web browsers. :program:" +"`pydoc -p 1234` will start a HTTP server on port 1234, allowing you to " +"browse the documentation at ``http://localhost:1234/`` in your preferred Web " +"browser. Specifying ``0`` as the port number will select an arbitrary unused " +"port." +msgstr "" +"Vous pouvez aussi utiliser :program:`pydoc` pour lancer un serveur HTTP sur " +"votre machine locale qui rendra la documentation consultable sur votre " +"navigateur Web. :program:`pydoc -p 1234` lancera un serveur HTTP sur le port " +"1234, permettant de consulter la documentation à l’adresse ``http://" +"localhost:1234/`` dans votre navigateur web préféré. En précisant ``0`` " +"comme numéro de port, un port non utilisé sera aléatoirement alloué." + +#: ../Doc/library/pydoc.rst:73 +msgid "" +":program:`pydoc -n ` will start the server listening at the given " +"hostname. By default the hostname is 'localhost' but if you want the server " +"to be reached from other machines, you may want to change the host name that " +"the server responds to. During development this is especially useful if you " +"want to run pydoc from within a container." +msgstr "" +":program:`pydoc -n ` démarre le serveur en écoutant sur le port " +"donné en argument. Par défaut le nom d’hôte est *localhost* mais si vous " +"voulez que le serveur soit joignable par d’autres machines, vous avez la " +"possibilité de changer le nom de l’hôte auquel le serveur répond. Dans le " +"développement, c’est particulièrement utile si vous souhaitez exécuter :" +"program:`pydoc` depuis un conteneur." + +#: ../Doc/library/pydoc.rst:79 +msgid "" +":program:`pydoc -b` will start the server and additionally open a web " +"browser to a module index page. Each served page has a navigation bar at " +"the top where you can *Get* help on an individual item, *Search* all modules " +"with a keyword in their synopsis line, and go to the *Module index*, " +"*Topics* and *Keywords* pages." +msgstr "" +":program:`pydoc -b` démarre le serveur et ouvrira en plus un navigateur web " +"vers une page d’index de module. Chaque page affichée a une barre de " +"navigation en haut où vous pouvez *Obtenir* de l’aide sur un élément " +"individuel, *Rechercher* tous les modules avec un mot-clé dans leur ligne de " +"résumé, et aller dans les pages *Index des modules*, *Thèmes* et *Mots clés*." + +#: ../Doc/library/pydoc.rst:85 +msgid "" +"When :program:`pydoc` generates documentation, it uses the current " +"environment and path to locate modules. Thus, invoking :program:`pydoc " +"spam` documents precisely the version of the module you would get if you " +"started the Python interpreter and typed ``import spam``." +msgstr "" +"Quand :program:`pydoc` génère de la documentation, il utilise " +"l’environnement et le chemin courant pour localiser les modules. Ainsi, en " +"invoquant les documents :program:`pydoc spam` en précisant la version du " +"module, vous obtenez le même résultat qu’en lançant l’interpréteur Python et " +"en tapant la commande ``import spam``." + +#: ../Doc/library/pydoc.rst:90 +msgid "" +"Module docs for core modules are assumed to reside in ``https://docs.python." +"org/X.Y/library/`` where ``X`` and ``Y`` are the major and minor version " +"numbers of the Python interpreter. This can be overridden by setting the :" +"envvar:`PYTHONDOCS` environment variable to a different URL or to a local " +"directory containing the Library Reference Manual pages." +msgstr "" +"La documentation des modules principaux est supposée être hébergée sur " +"``https://docs.python.org/X.Y/library/`` et ``https://docs.python.org/fr/X.Y/" +"library`` pour la version française, où ``X`` et ``Y`` sont les versions " +"respectivement majeures et mineures de l’interpréteur Python. Ces valeurs " +"peuvent être redéfinies en configurant la variable d’environnement :envvar:" +"`PYTHONDOCS` sur une URL différente ou un répertoire local contenant les " +"pages du manuel de la bibliothèque de référence." + +#: ../Doc/library/pydoc.rst:97 +msgid "Added the ``-b`` option." +msgstr "Ajout de l’option ``-b``." + +#: ../Doc/library/pydoc.rst:100 +msgid "The ``-g`` command line option was removed." +msgstr "Suppression de l’option ``-g``." + +#: ../Doc/library/pydoc.rst:103 +msgid "" +":mod:`pydoc` now uses :func:`inspect.signature` rather than :func:`inspect." +"getfullargspec` to extract signature information from callables." +msgstr "" +":mod:`pydoc` utilise à présent :func:`inspect.signature` plutôt que :func:" +"`inspect.getfullargspec` pour extraire les informations de signatures des " +"*callables*." + +#: ../Doc/library/pydoc.rst:108 +msgid "Added the ``-n`` option." +msgstr "Ajout de l’option ``-n``." diff --git a/library/pyexpat.po b/library/pyexpat.po new file mode 100644 index 000000000..b304388a3 --- /dev/null +++ b/library/pyexpat.po @@ -0,0 +1,812 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/pyexpat.rst:2 +msgid ":mod:`xml.parsers.expat` --- Fast XML parsing using Expat" +msgstr "" + +#: ../Doc/library/pyexpat.rst:21 +msgid "" +"The :mod:`pyexpat` module is not secure against maliciously constructed " +"data. If you need to parse untrusted or unauthenticated data see :ref:`xml-" +"vulnerabilities`." +msgstr "" + +#: ../Doc/library/pyexpat.rst:28 +msgid "" +"The :mod:`xml.parsers.expat` module is a Python interface to the Expat non-" +"validating XML parser. The module provides a single extension type, :class:" +"`xmlparser`, that represents the current state of an XML parser. After an :" +"class:`xmlparser` object has been created, various attributes of the object " +"can be set to handler functions. When an XML document is then fed to the " +"parser, the handler functions are called for the character data and markup " +"in the XML document." +msgstr "" + +#: ../Doc/library/pyexpat.rst:38 +msgid "" +"This module uses the :mod:`pyexpat` module to provide access to the Expat " +"parser. Direct use of the :mod:`pyexpat` module is deprecated." +msgstr "" + +#: ../Doc/library/pyexpat.rst:41 +msgid "This module provides one exception and one type object:" +msgstr "" + +#: ../Doc/library/pyexpat.rst:46 +msgid "" +"The exception raised when Expat reports an error. See section :ref:" +"`expaterror-objects` for more information on interpreting Expat errors." +msgstr "" + +#: ../Doc/library/pyexpat.rst:52 +msgid "Alias for :exc:`ExpatError`." +msgstr "" + +#: ../Doc/library/pyexpat.rst:57 +msgid "The type of the return values from the :func:`ParserCreate` function." +msgstr "" + +#: ../Doc/library/pyexpat.rst:59 +msgid "The :mod:`xml.parsers.expat` module contains two functions:" +msgstr "" + +#: ../Doc/library/pyexpat.rst:64 +msgid "Returns an explanatory string for a given error number *errno*." +msgstr "" + +#: ../Doc/library/pyexpat.rst:69 +msgid "" +"Creates and returns a new :class:`xmlparser` object. *encoding*, if " +"specified, must be a string naming the encoding used by the XML data. " +"Expat doesn't support as many encodings as Python does, and its repertoire " +"of encodings can't be extended; it supports UTF-8, UTF-16, ISO-8859-1 " +"(Latin1), and ASCII. If *encoding* [1]_ is given it will override the " +"implicit or explicit encoding of the document." +msgstr "" + +#: ../Doc/library/pyexpat.rst:76 +msgid "" +"Expat can optionally do XML namespace processing for you, enabled by " +"providing a value for *namespace_separator*. The value must be a one-" +"character string; a :exc:`ValueError` will be raised if the string has an " +"illegal length (``None`` is considered the same as omission). When " +"namespace processing is enabled, element type names and attribute names that " +"belong to a namespace will be expanded. The element name passed to the " +"element handlers :attr:`StartElementHandler` and :attr:`EndElementHandler` " +"will be the concatenation of the namespace URI, the namespace separator " +"character, and the local part of the name. If the namespace separator is a " +"zero byte (``chr(0)``) then the namespace URI and the local part will be " +"concatenated without any separator." +msgstr "" + +#: ../Doc/library/pyexpat.rst:88 +msgid "" +"For example, if *namespace_separator* is set to a space character (``' '``) " +"and the following document is parsed:" +msgstr "" + +#: ../Doc/library/pyexpat.rst:100 +msgid "" +":attr:`StartElementHandler` will receive the following strings for each " +"element::" +msgstr "" + +#: ../Doc/library/pyexpat.rst:107 +msgid "" +"Due to limitations in the ``Expat`` library used by :mod:`pyexpat`, the :" +"class:`xmlparser` instance returned can only be used to parse a single XML " +"document. Call ``ParserCreate`` for each document to provide unique parser " +"instances." +msgstr "" + +#: ../Doc/library/pyexpat.rst:115 +msgid "`The Expat XML Parser `_" +msgstr "" + +#: ../Doc/library/pyexpat.rst:116 +msgid "Home page of the Expat project." +msgstr "" + +#: ../Doc/library/pyexpat.rst:122 +msgid "XMLParser Objects" +msgstr "" + +#: ../Doc/library/pyexpat.rst:124 +msgid ":class:`xmlparser` objects have the following methods:" +msgstr "" + +#: ../Doc/library/pyexpat.rst:129 +msgid "" +"Parses the contents of the string *data*, calling the appropriate handler " +"functions to process the parsed data. *isfinal* must be true on the final " +"call to this method; it allows the parsing of a single file in fragments, " +"not the submission of multiple files. *data* can be the empty string at any " +"time." +msgstr "" + +#: ../Doc/library/pyexpat.rst:138 +msgid "" +"Parse XML data reading from the object *file*. *file* only needs to provide " +"the ``read(nbytes)`` method, returning the empty string when there's no more " +"data." +msgstr "" + +#: ../Doc/library/pyexpat.rst:145 +msgid "" +"Sets the base to be used for resolving relative URIs in system identifiers " +"in declarations. Resolving relative identifiers is left to the application: " +"this value will be passed through as the *base* argument to the :func:" +"`ExternalEntityRefHandler`, :func:`NotationDeclHandler`, and :func:" +"`UnparsedEntityDeclHandler` functions." +msgstr "" + +#: ../Doc/library/pyexpat.rst:154 +msgid "" +"Returns a string containing the base set by a previous call to :meth:" +"`SetBase`, or ``None`` if :meth:`SetBase` hasn't been called." +msgstr "" + +#: ../Doc/library/pyexpat.rst:160 +msgid "" +"Returns the input data that generated the current event as a string. The " +"data is in the encoding of the entity which contains the text. When called " +"while an event handler is not active, the return value is ``None``." +msgstr "" + +#: ../Doc/library/pyexpat.rst:167 +msgid "" +"Create a \"child\" parser which can be used to parse an external parsed " +"entity referred to by content parsed by the parent parser. The *context* " +"parameter should be the string passed to the :meth:" +"`ExternalEntityRefHandler` handler function, described below. The child " +"parser is created with the :attr:`ordered_attributes` and :attr:" +"`specified_attributes` set to the values of this parser." +msgstr "" + +#: ../Doc/library/pyexpat.rst:176 +msgid "" +"Control parsing of parameter entities (including the external DTD subset). " +"Possible *flag* values are :const:`XML_PARAM_ENTITY_PARSING_NEVER`, :const:" +"`XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE` and :const:" +"`XML_PARAM_ENTITY_PARSING_ALWAYS`. Return true if setting the flag was " +"successful." +msgstr "" + +#: ../Doc/library/pyexpat.rst:184 +msgid "" +"Calling this with a true value for *flag* (the default) will cause Expat to " +"call the :attr:`ExternalEntityRefHandler` with :const:`None` for all " +"arguments to allow an alternate DTD to be loaded. If the document does not " +"contain a document type declaration, the :attr:`ExternalEntityRefHandler` " +"will still be called, but the :attr:`StartDoctypeDeclHandler` and :attr:" +"`EndDoctypeDeclHandler` will not be called." +msgstr "" + +#: ../Doc/library/pyexpat.rst:191 +msgid "" +"Passing a false value for *flag* will cancel a previous call that passed a " +"true value, but otherwise has no effect." +msgstr "" + +#: ../Doc/library/pyexpat.rst:194 +msgid "" +"This method can only be called before the :meth:`Parse` or :meth:`ParseFile` " +"methods are called; calling it after either of those have been called " +"causes :exc:`ExpatError` to be raised with the :attr:`code` attribute set to " +"``errors.codes[errors.XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING]``." +msgstr "" + +#: ../Doc/library/pyexpat.rst:199 +msgid ":class:`xmlparser` objects have the following attributes:" +msgstr "" + +#: ../Doc/library/pyexpat.rst:204 +msgid "" +"The size of the buffer used when :attr:`buffer_text` is true. A new buffer " +"size can be set by assigning a new integer value to this attribute. When the " +"size is changed, the buffer will be flushed." +msgstr "" + +#: ../Doc/library/pyexpat.rst:212 +msgid "" +"Setting this to true causes the :class:`xmlparser` object to buffer textual " +"content returned by Expat to avoid multiple calls to the :meth:" +"`CharacterDataHandler` callback whenever possible. This can improve " +"performance substantially since Expat normally breaks character data into " +"chunks at every line ending. This attribute is false by default, and may be " +"changed at any time." +msgstr "" + +#: ../Doc/library/pyexpat.rst:222 +msgid "" +"If :attr:`buffer_text` is enabled, the number of bytes stored in the buffer. " +"These bytes represent UTF-8 encoded text. This attribute has no meaningful " +"interpretation when :attr:`buffer_text` is false." +msgstr "" + +#: ../Doc/library/pyexpat.rst:229 +msgid "" +"Setting this attribute to a non-zero integer causes the attributes to be " +"reported as a list rather than a dictionary. The attributes are presented " +"in the order found in the document text. For each attribute, two list " +"entries are presented: the attribute name and the attribute value. (Older " +"versions of this module also used this format.) By default, this attribute " +"is false; it may be changed at any time." +msgstr "" + +#: ../Doc/library/pyexpat.rst:239 +msgid "" +"If set to a non-zero integer, the parser will report only those attributes " +"which were specified in the document instance and not those which were " +"derived from attribute declarations. Applications which set this need to be " +"especially careful to use what additional information is available from the " +"declarations as needed to comply with the standards for the behavior of XML " +"processors. By default, this attribute is false; it may be changed at any " +"time." +msgstr "" + +#: ../Doc/library/pyexpat.rst:247 +msgid "" +"The following attributes contain values relating to the most recent error " +"encountered by an :class:`xmlparser` object, and will only have correct " +"values once a call to :meth:`Parse` or :meth:`ParseFile` has raised an :exc:" +"`xml.parsers.expat.ExpatError` exception." +msgstr "" + +#: ../Doc/library/pyexpat.rst:255 +msgid "Byte index at which an error occurred." +msgstr "" + +#: ../Doc/library/pyexpat.rst:260 +msgid "" +"Numeric code specifying the problem. This value can be passed to the :func:" +"`ErrorString` function, or compared to one of the constants defined in the " +"``errors`` object." +msgstr "" + +#: ../Doc/library/pyexpat.rst:267 +msgid "Column number at which an error occurred." +msgstr "" + +#: ../Doc/library/pyexpat.rst:272 +msgid "Line number at which an error occurred." +msgstr "" + +#: ../Doc/library/pyexpat.rst:274 +msgid "" +"The following attributes contain values relating to the current parse " +"location in an :class:`xmlparser` object. During a callback reporting a " +"parse event they indicate the location of the first of the sequence of " +"characters that generated the event. When called outside of a callback, the " +"position indicated will be just past the last parse event (regardless of " +"whether there was an associated callback)." +msgstr "" + +#: ../Doc/library/pyexpat.rst:284 +msgid "Current byte index in the parser input." +msgstr "" + +#: ../Doc/library/pyexpat.rst:289 +msgid "Current column number in the parser input." +msgstr "" + +#: ../Doc/library/pyexpat.rst:294 +msgid "Current line number in the parser input." +msgstr "" + +#: ../Doc/library/pyexpat.rst:296 +msgid "" +"Here is the list of handlers that can be set. To set a handler on an :class:" +"`xmlparser` object *o*, use ``o.handlername = func``. *handlername* must be " +"taken from the following list, and *func* must be a callable object " +"accepting the correct number of arguments. The arguments are all strings, " +"unless otherwise stated." +msgstr "" + +#: ../Doc/library/pyexpat.rst:305 +msgid "" +"Called when the XML declaration is parsed. The XML declaration is the " +"(optional) declaration of the applicable version of the XML recommendation, " +"the encoding of the document text, and an optional \"standalone\" " +"declaration. *version* and *encoding* will be strings, and *standalone* will " +"be ``1`` if the document is declared standalone, ``0`` if it is declared not " +"to be standalone, or ``-1`` if the standalone clause was omitted. This is " +"only available with Expat version 1.95.0 or newer." +msgstr "" + +#: ../Doc/library/pyexpat.rst:316 +msgid "" +"Called when Expat begins parsing the document type declaration (``'``." +msgstr "" + +#: ../Doc/library/pyexpat.rst:430 +msgid "" +"Called at the start of a CDATA section. This and :attr:" +"`EndCdataSectionHandler` are needed to be able to identify the syntactical " +"start and end for CDATA sections." +msgstr "" + +#: ../Doc/library/pyexpat.rst:437 +msgid "Called at the end of a CDATA section." +msgstr "" + +#: ../Doc/library/pyexpat.rst:442 +msgid "" +"Called for any characters in the XML document for which no applicable " +"handler has been specified. This means characters that are part of a " +"construct which could be reported, but for which no handler has been " +"supplied." +msgstr "" + +#: ../Doc/library/pyexpat.rst:449 +msgid "" +"This is the same as the :func:`DefaultHandler`, but doesn't inhibit " +"expansion of internal entities. The entity reference will not be passed to " +"the default handler." +msgstr "" + +#: ../Doc/library/pyexpat.rst:456 +msgid "" +"Called if the XML document hasn't been declared as being a standalone " +"document. This happens when there is an external subset or a reference to a " +"parameter entity, but the XML declaration does not set standalone to ``yes`` " +"in an XML declaration. If this handler returns ``0``, then the parser will " +"raise an :const:`XML_ERROR_NOT_STANDALONE` error. If this handler is not " +"set, no exception is raised by the parser for this condition." +msgstr "" + +#: ../Doc/library/pyexpat.rst:466 +msgid "" +"Called for references to external entities. *base* is the current base, as " +"set by a previous call to :meth:`SetBase`. The public and system " +"identifiers, *systemId* and *publicId*, are strings if given; if the public " +"identifier is not given, *publicId* will be ``None``. The *context* value " +"is opaque and should only be used as described below." +msgstr "" + +#: ../Doc/library/pyexpat.rst:472 +msgid "" +"For external entities to be parsed, this handler must be implemented. It is " +"responsible for creating the sub-parser using " +"``ExternalEntityParserCreate(context)``, initializing it with the " +"appropriate callbacks, and parsing the entity. This handler should return " +"an integer; if it returns ``0``, the parser will raise an :const:" +"`XML_ERROR_EXTERNAL_ENTITY_HANDLING` error, otherwise parsing will continue." +msgstr "" + +#: ../Doc/library/pyexpat.rst:480 +msgid "" +"If this handler is not provided, external entities are reported by the :attr:" +"`DefaultHandler` callback, if provided." +msgstr "" + +#: ../Doc/library/pyexpat.rst:487 +msgid "ExpatError Exceptions" +msgstr "" + +#: ../Doc/library/pyexpat.rst:492 +msgid ":exc:`ExpatError` exceptions have a number of interesting attributes:" +msgstr "" + +#: ../Doc/library/pyexpat.rst:497 +msgid "" +"Expat's internal error number for the specific error. The :data:`errors." +"messages ` dictionary maps these error " +"numbers to Expat's error messages. For example::" +msgstr "" + +#: ../Doc/library/pyexpat.rst:509 +msgid "" +"The :mod:`~xml.parsers.expat.errors` module also provides error message " +"constants and a dictionary :data:`~xml.parsers.expat.errors.codes` mapping " +"these messages back to the error codes, see below." +msgstr "" + +#: ../Doc/library/pyexpat.rst:516 +msgid "" +"Line number on which the error was detected. The first line is numbered " +"``1``." +msgstr "" + +#: ../Doc/library/pyexpat.rst:521 +msgid "" +"Character offset into the line where the error occurred. The first column " +"is numbered ``0``." +msgstr "" + +#: ../Doc/library/pyexpat.rst:528 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/pyexpat.rst:530 +msgid "" +"The following program defines three handlers that just print out their " +"arguments. ::" +msgstr "" + +#: ../Doc/library/pyexpat.rst:554 +msgid "The output from this program is::" +msgstr "" + +#: ../Doc/library/pyexpat.rst:571 +msgid "Content Model Descriptions" +msgstr "" + +#: ../Doc/library/pyexpat.rst:577 +msgid "" +"Content models are described using nested tuples. Each tuple contains four " +"values: the type, the quantifier, the name, and a tuple of children. " +"Children are simply additional content model descriptions." +msgstr "" + +#: ../Doc/library/pyexpat.rst:581 +msgid "" +"The values of the first two fields are constants defined in the :mod:`xml." +"parsers.expat.model` module. These constants can be collected in two " +"groups: the model type group and the quantifier group." +msgstr "" + +#: ../Doc/library/pyexpat.rst:585 +msgid "The constants in the model type group are:" +msgstr "" + +#: ../Doc/library/pyexpat.rst:591 +msgid "" +"The element named by the model name was declared to have a content model of " +"``ANY``." +msgstr "" + +#: ../Doc/library/pyexpat.rst:598 +msgid "" +"The named element allows a choice from a number of options; this is used for " +"content models such as ``(A | B | C)``." +msgstr "" + +#: ../Doc/library/pyexpat.rst:605 +msgid "Elements which are declared to be ``EMPTY`` have this model type." +msgstr "" + +#: ../Doc/library/pyexpat.rst:619 +msgid "" +"Models which represent a series of models which follow one after the other " +"are indicated with this model type. This is used for models such as ``(A, " +"B, C)``." +msgstr "" + +#: ../Doc/library/pyexpat.rst:622 +msgid "The constants in the quantifier group are:" +msgstr "" + +#: ../Doc/library/pyexpat.rst:628 +msgid "No modifier is given, so it can appear exactly once, as for ``A``." +msgstr "" + +#: ../Doc/library/pyexpat.rst:634 +msgid "The model is optional: it can appear once or not at all, as for ``A?``." +msgstr "" + +#: ../Doc/library/pyexpat.rst:640 +msgid "The model must occur one or more times (like ``A+``)." +msgstr "" + +#: ../Doc/library/pyexpat.rst:646 +msgid "The model must occur zero or more times, as for ``A*``." +msgstr "" + +#: ../Doc/library/pyexpat.rst:652 +msgid "Expat error constants" +msgstr "" + +#: ../Doc/library/pyexpat.rst:656 +msgid "" +"The following constants are provided in the :mod:`xml.parsers.expat.errors` " +"module. These constants are useful in interpreting some of the attributes " +"of the :exc:`ExpatError` exception objects raised when an error has " +"occurred. Since for backwards compatibility reasons, the constants' value is " +"the error *message* and not the numeric error *code*, you do this by " +"comparing its :attr:`code` attribute with :samp:`errors.codes[errors." +"XML_ERROR_{CONSTANT_NAME}]`." +msgstr "" + +#: ../Doc/library/pyexpat.rst:664 +msgid "The ``errors`` module has the following attributes:" +msgstr "" + +#: ../Doc/library/pyexpat.rst:668 +msgid "A dictionary mapping numeric error codes to their string descriptions." +msgstr "" + +#: ../Doc/library/pyexpat.rst:675 +msgid "A dictionary mapping string descriptions to their error codes." +msgstr "" + +#: ../Doc/library/pyexpat.rst:685 +msgid "" +"An entity reference in an attribute value referred to an external entity " +"instead of an internal entity." +msgstr "" + +#: ../Doc/library/pyexpat.rst:691 +msgid "" +"A character reference referred to a character which is illegal in XML (for " +"example, character ``0``, or '``�``')." +msgstr "" + +#: ../Doc/library/pyexpat.rst:697 +msgid "" +"An entity reference referred to an entity which was declared with a " +"notation, so cannot be parsed." +msgstr "" + +#: ../Doc/library/pyexpat.rst:703 +msgid "An attribute was used more than once in a start tag." +msgstr "" + +#: ../Doc/library/pyexpat.rst:711 +msgid "" +"Raised when an input byte could not properly be assigned to a character; for " +"example, a NUL byte (value ``0``) in a UTF-8 input stream." +msgstr "" + +#: ../Doc/library/pyexpat.rst:717 +msgid "Something other than whitespace occurred after the document element." +msgstr "" + +#: ../Doc/library/pyexpat.rst:722 +msgid "" +"An XML declaration was found somewhere other than the start of the input " +"data." +msgstr "" + +#: ../Doc/library/pyexpat.rst:727 +msgid "" +"The document contains no elements (XML requires all documents to contain " +"exactly one top-level element).." +msgstr "" + +#: ../Doc/library/pyexpat.rst:733 +msgid "Expat was not able to allocate memory internally." +msgstr "" + +#: ../Doc/library/pyexpat.rst:738 +msgid "A parameter entity reference was found where it was not allowed." +msgstr "" + +#: ../Doc/library/pyexpat.rst:743 +msgid "An incomplete character was found in the input." +msgstr "" + +#: ../Doc/library/pyexpat.rst:748 +msgid "" +"An entity reference contained another reference to the same entity; possibly " +"via a different name, and possibly indirectly." +msgstr "" + +#: ../Doc/library/pyexpat.rst:754 +msgid "Some unspecified syntax error was encountered." +msgstr "" + +#: ../Doc/library/pyexpat.rst:759 +msgid "An end tag did not match the innermost open start tag." +msgstr "" + +#: ../Doc/library/pyexpat.rst:764 +msgid "" +"Some token (such as a start tag) was not closed before the end of the stream " +"or the next token was encountered." +msgstr "" + +#: ../Doc/library/pyexpat.rst:770 +msgid "A reference was made to an entity which was not defined." +msgstr "" + +#: ../Doc/library/pyexpat.rst:775 +msgid "The document encoding is not supported by Expat." +msgstr "" + +#: ../Doc/library/pyexpat.rst:780 +msgid "A CDATA marked section was not closed." +msgstr "" + +#: ../Doc/library/pyexpat.rst:788 +msgid "" +"The parser determined that the document was not \"standalone\" though it " +"declared itself to be in the XML declaration, and the :attr:" +"`NotStandaloneHandler` was set and returned ``0``." +msgstr "" + +#: ../Doc/library/pyexpat.rst:801 +msgid "" +"An operation was requested that requires DTD support to be compiled in, but " +"Expat was configured without DTD support. This should never be reported by " +"a standard build of the :mod:`xml.parsers.expat` module." +msgstr "" + +#: ../Doc/library/pyexpat.rst:808 +msgid "" +"A behavioral change was requested after parsing started that can only be " +"changed before parsing has started. This is (currently) only raised by :" +"meth:`UseForeignDTD`." +msgstr "" + +#: ../Doc/library/pyexpat.rst:815 +msgid "An undeclared prefix was found when namespace processing was enabled." +msgstr "" + +#: ../Doc/library/pyexpat.rst:820 +msgid "" +"The document attempted to remove the namespace declaration associated with a " +"prefix." +msgstr "" + +#: ../Doc/library/pyexpat.rst:826 +msgid "A parameter entity contained incomplete markup." +msgstr "" + +#: ../Doc/library/pyexpat.rst:831 +msgid "The document contained no document element at all." +msgstr "" + +#: ../Doc/library/pyexpat.rst:836 +msgid "There was an error parsing a text declaration in an external entity." +msgstr "" + +#: ../Doc/library/pyexpat.rst:841 +msgid "Characters were found in the public id that are not allowed." +msgstr "" + +#: ../Doc/library/pyexpat.rst:846 +msgid "" +"The requested operation was made on a suspended parser, but isn't allowed. " +"This includes attempts to provide additional input or to stop the parser." +msgstr "" + +#: ../Doc/library/pyexpat.rst:852 +msgid "" +"An attempt to resume the parser was made when the parser had not been " +"suspended." +msgstr "" + +#: ../Doc/library/pyexpat.rst:857 +msgid "This should not be reported to Python applications." +msgstr "" + +#: ../Doc/library/pyexpat.rst:862 +msgid "" +"The requested operation was made on a parser which was finished parsing " +"input, but isn't allowed. This includes attempts to provide additional " +"input or to stop the parser." +msgstr "" + +#: ../Doc/library/pyexpat.rst:871 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/pyexpat.rst:872 +msgid "" +"The encoding string included in XML output should conform to the appropriate " +"standards. For example, \"UTF-8\" is valid, but \"UTF8\" is not. See https://" +"www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl and https://www.iana." +"org/assignments/character-sets/character-sets.xhtml." +msgstr "" diff --git a/library/python.po b/library/python.po new file mode 100644 index 000000000..9ba8f66ee --- /dev/null +++ b/library/python.po @@ -0,0 +1,29 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-28 18:31+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/python.rst:5 +msgid "Python Runtime Services" +msgstr "Environnement d'exécution Python" + +#: ../Doc/library/python.rst:7 +msgid "" +"The modules described in this chapter provide a wide range of services " +"related to the Python interpreter and its interaction with its environment. " +"Here's an overview:" +msgstr "" +"Les modules décrits dans ce chapitre fournissent une large collection de " +"services relatifs à l'interpréteur Python et son interaction avec son " +"environnement. En voici un survol :" diff --git a/library/queue.po b/library/queue.po new file mode 100644 index 000000000..d93252b29 --- /dev/null +++ b/library/queue.po @@ -0,0 +1,432 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2019-04-11 21:38+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/queue.rst:2 +msgid ":mod:`queue` --- A synchronized queue class" +msgstr ":mod:`queue` — File synchronisée" + +#: ../Doc/library/queue.rst:7 +msgid "**Source code:** :source:`Lib/queue.py`" +msgstr "**Code source :** :source:`Lib/queue.py`" + +#: ../Doc/library/queue.rst:11 +msgid "" +"The :mod:`queue` module implements multi-producer, multi-consumer queues. It " +"is especially useful in threaded programming when information must be " +"exchanged safely between multiple threads. The :class:`Queue` class in this " +"module implements all the required locking semantics. It depends on the " +"availability of thread support in Python; see the :mod:`threading` module." +msgstr "" +"Le module :mod:`queue` implémente des files multi-productrices et multi-" +"consommatrices. C'est particulièrement utile en programmation *multi-" +"thread*, lorsque les informations doivent être échangées sans risques entre " +"plusieurs *threads*. La classe :class:`Queue` de ce module implémente tout " +"le verrouillage nécessaire. Cela dépend de la disponibilité du support des " +"fils d'exécution en Python; voir le module :mod:`threading`." + +#: ../Doc/library/queue.rst:18 +msgid "" +"The module implements three types of queue, which differ only in the order " +"in which the entries are retrieved. In a :abbr:`FIFO (first-in, first-out)` " +"queue, the first tasks added are the first retrieved. In a :abbr:`LIFO (last-" +"in, first-out)` queue, the most recently added entry is the first retrieved " +"(operating like a stack). With a priority queue, the entries are kept " +"sorted (using the :mod:`heapq` module) and the lowest valued entry is " +"retrieved first." +msgstr "" +"Le module implémente trois types de files qui différent par l'ordre dans " +"lequel les éléments en sont extraits. Dans une file :abbr:`FIFO (first-in, " +"first-out)`, les premiers éléments ajoutés sont les premiers extraits. Dans " +"une file :abbr:`LIFO (last-in, first-out)`, le dernier élément ajouté est le " +"premier élément extrait (se comporte comme une pile). Avec une file de " +"priorité, les entrées restent triés (en utilisant le module :mod:`heapq`) " +"et l'élément ayant la valeur la plus faible est extrait en premier." + +#: ../Doc/library/queue.rst:26 +msgid "" +"Internally, those three types of queues use locks to temporarily block " +"competing threads; however, they are not designed to handle reentrancy " +"within a thread." +msgstr "" +"En interne, ces trois types de files utilisent des verrous pour bloquer " +"temporairement des fils d'exécution concurrents. Cependant, ils n'ont pas " +"été conçus pour être réentrants au sein d'un fil d'exécution." + +#: ../Doc/library/queue.rst:30 +msgid "" +"In addition, the module implements a \"simple\" :abbr:`FIFO (first-in, first-" +"out)` queue type, :class:`SimpleQueue`, whose specific implementation " +"provides additional guarantees in exchange for the smaller functionality." +msgstr "" +"Le module implémente aussi une :abbr:`FIFO (first-in, first-out)` basique, :" +"class:`SimpleQueue`, dont l’implémentation spécialisée fournit plus de " +"garanties au détriment des fonctionnalités." + +#: ../Doc/library/queue.rst:35 +msgid "The :mod:`queue` module defines the following classes and exceptions:" +msgstr "" +"Le module :mod:`queue` définit les classes et les exceptions suivantes :" + +#: ../Doc/library/queue.rst:39 +msgid "" +"Constructor for a :abbr:`FIFO (first-in, first-out)` queue. *maxsize* is an " +"integer that sets the upperbound limit on the number of items that can be " +"placed in the queue. Insertion will block once this size has been reached, " +"until queue items are consumed. If *maxsize* is less than or equal to zero, " +"the queue size is infinite." +msgstr "" +"Constructeur pour une file :abbr:`FIFO (first-in, first-out)`. *maxsize* est " +"un entier définissant le nombre maximal d'éléments pouvant être mis dans la " +"file. L'insertion sera bloquée lorsque cette borne supérieure sera atteinte, " +"jusqu'à ce que des éléments de la file soient consommés. Si *maxsize* est " +"inférieur ou égal à 0, la taille de la file sera infinie." + +#: ../Doc/library/queue.rst:47 +msgid "" +"Constructor for a :abbr:`LIFO (last-in, first-out)` queue. *maxsize* is an " +"integer that sets the upperbound limit on the number of items that can be " +"placed in the queue. Insertion will block once this size has been reached, " +"until queue items are consumed. If *maxsize* is less than or equal to zero, " +"the queue size is infinite." +msgstr "" +"Constructeur pour une file :abbr:`LIFO (last-in, first-out)`. *maxsize* est " +"un entier définissant le nombre maximal d'éléments pouvant être mis dans la " +"file. L'insertion sera bloquée lorsque cette borne supérieure sera atteinte, " +"jusqu'à ce que des éléments de la file soient consommés. Si *maxsize* est " +"inférieur ou égal à 0, la taille de la file sera infinie." + +#: ../Doc/library/queue.rst:56 +msgid "" +"Constructor for a priority queue. *maxsize* is an integer that sets the " +"upperbound limit on the number of items that can be placed in the queue. " +"Insertion will block once this size has been reached, until queue items are " +"consumed. If *maxsize* is less than or equal to zero, the queue size is " +"infinite." +msgstr "" +"Constructeur pour une file de priorité. *maxsize* est un entier définissant " +"le nombre maximal d'éléments pouvant être mis dans la file. L'insertion sera " +"bloquée lorsque cette borne supérieure sera atteinte, jusqu'à ce que des " +"éléments soient consommés. Si *maxsize* est inférieur ou égal à 0, la taille " +"de la file sera infinie." + +#: ../Doc/library/queue.rst:61 +msgid "" +"The lowest valued entries are retrieved first (the lowest valued entry is " +"the one returned by ``sorted(list(entries))[0]``). A typical pattern for " +"entries is a tuple in the form: ``(priority_number, data)``." +msgstr "" +"Les éléments de valeurs les plus faibles sont extraits en premier (l'élément " +"de valeur la plus faible est celui renvoyé par ``sorted(list(entries))" +"[0]``). Un cas typique est d'utiliser des tuple de la forme : " +"``(priority_number, data)``." + +#: ../Doc/library/queue.rst:65 +msgid "" +"If the *data* elements are not comparable, the data can be wrapped in a " +"class that ignores the data item and only compares the priority number::" +msgstr "" +"Si les éléments de *data* ne sont pas comparables, les données peuvent être " +"enveloppées dans une classe qui ignore l'élément de données et ne compare " +"que l'ordre de priorité ::" + +#: ../Doc/library/queue.rst:78 +msgid "" +"Constructor for an unbounded :abbr:`FIFO (first-in, first-out)` queue. " +"Simple queues lack advanced functionality such as task tracking." +msgstr "" +"Constructeur d'une file illimitée :abbr:`FIFO (first-in, first-out)`. Les " +"simples files d'attente ne possèdent pas de fonctionnalités avancées telles " +"que le suivi des tâches." + +#: ../Doc/library/queue.rst:86 +msgid "" +"Exception raised when non-blocking :meth:`~Queue.get` (or :meth:`~Queue." +"get_nowait`) is called on a :class:`Queue` object which is empty." +msgstr "" +"Exception levée lorsque la méthode non bloquante :meth:`~Queue.get` (ou :" +"meth:`~Queue.get_nowait`) est appelée sur l'objet :class:`Queue` vide." + +#: ../Doc/library/queue.rst:93 +msgid "" +"Exception raised when non-blocking :meth:`~Queue.put` (or :meth:`~Queue." +"put_nowait`) is called on a :class:`Queue` object which is full." +msgstr "" +"Exception levée lorsque la méthode non bloquante :meth:`~Queue.put` (ou :" +"meth:`~Queue.put_nowait`) est appelée sur un objet :class:`Queue` plein." + +#: ../Doc/library/queue.rst:101 +msgid "Queue Objects" +msgstr "Objets ``Queue``" + +#: ../Doc/library/queue.rst:103 +msgid "" +"Queue objects (:class:`Queue`, :class:`LifoQueue`, or :class:" +"`PriorityQueue`) provide the public methods described below." +msgstr "" +"Les objets *Queue* (:class:`Queue`, :class:`LifoQueue` ou :class:" +"`PriorityQueue`) fournissent les méthodes publiques décrites ci-dessous." + +#: ../Doc/library/queue.rst:109 +msgid "" +"Return the approximate size of the queue. Note, qsize() > 0 doesn't " +"guarantee that a subsequent get() will not block, nor will qsize() < maxsize " +"guarantee that put() will not block." +msgstr "" +"Renvoie la taille approximative de la file. Notez que ``qsize() > 0`` ne " +"garantit pas qu'un ``get()`` ultérieur ne sera pas bloquant et que ``qsize() " +"< maxsize`` ne garantit pas non plus qu'un ``put()`` ne sera pas bloquant." + +#: ../Doc/library/queue.rst:116 +msgid "" +"Return ``True`` if the queue is empty, ``False`` otherwise. If empty() " +"returns ``True`` it doesn't guarantee that a subsequent call to put() will " +"not block. Similarly, if empty() returns ``False`` it doesn't guarantee " +"that a subsequent call to get() will not block." +msgstr "" +"Renvoie ``True`` si la file est vide, ``False`` sinon. Si ``empty()`` " +"renvoie ``True``, cela ne garantit pas qu'un appel ultérieur à ``put()`` ne " +"sera pas bloquant. Similairement, si ``empty()`` renvoie ``False``, cela ne " +"garantit pas qu'un appel ultérieur à ``get()`` ne sera pas bloquant." + +#: ../Doc/library/queue.rst:124 +msgid "" +"Return ``True`` if the queue is full, ``False`` otherwise. If full() " +"returns ``True`` it doesn't guarantee that a subsequent call to get() will " +"not block. Similarly, if full() returns ``False`` it doesn't guarantee that " +"a subsequent call to put() will not block." +msgstr "" +"Renvoie ``True`` si la file est pleine, ``False`` sinon. Si ``full()`` " +"renvoie``True``, cela ne garantit pas qu'un appel ultérieur à ``get()`` ne " +"sera pas bloquant. Similairement, si ``full()`` retourne ``False``, cela ne " +"garantit pas qu'un appel ultérieur à ``put()`` ne sera pas bloquant." + +#: ../Doc/library/queue.rst:132 +msgid "" +"Put *item* into the queue. If optional args *block* is true and *timeout* is " +"``None`` (the default), block if necessary until a free slot is available. " +"If *timeout* is a positive number, it blocks at most *timeout* seconds and " +"raises the :exc:`Full` exception if no free slot was available within that " +"time. Otherwise (*block* is false), put an item on the queue if a free slot " +"is immediately available, else raise the :exc:`Full` exception (*timeout* is " +"ignored in that case)." +msgstr "" +"Met *item* dans la file. Si les arguments optionnels *block* et *timeout* " +"sont respectivement ``True`` et ``None`` (les valeurs par défaut), la " +"méthode bloque si nécessaire jusqu'à ce qu'un emplacement libre soit " +"disponible. Si *timeout* est un nombre positif, elle bloque au plus " +"*timeout* secondes et lève l'exception :exc:`Full` s'il n'y avait pas " +"d'emplacement libre pendant cette période de temps. Sinon (*block* est " +"``False``), elle met un élément dans la file s'il y a un emplacement libre " +"immédiatement disponible. Si ce n'est pas le cas, elle lève l'exception :exc:" +"`Full` (*timeout* est ignoré dans ce cas)." + +#: ../Doc/library/queue.rst:143 +msgid "Equivalent to ``put(item, False)``." +msgstr "Équivalent à ``put(item, False)``." + +#: ../Doc/library/queue.rst:148 +msgid "" +"Remove and return an item from the queue. If optional args *block* is true " +"and *timeout* is ``None`` (the default), block if necessary until an item is " +"available. If *timeout* is a positive number, it blocks at most *timeout* " +"seconds and raises the :exc:`Empty` exception if no item was available " +"within that time. Otherwise (*block* is false), return an item if one is " +"immediately available, else raise the :exc:`Empty` exception (*timeout* is " +"ignored in that case)." +msgstr "" +"Retire et renvoie un élément de la file. Si les arguments optionnels *block* " +"et *timeout* valent respectivement ``True`` et ``None`` (les valeurs par " +"défaut), la méthode bloque si nécessaire jusqu'à ce qu'un élément soit " +"disponible. Si *timeout* est un entier positif, elle bloque au plus " +"*timeout* secondes et lève l'exception :exc:`Empty` s'il n'y avait pas " +"d'élément disponible pendant cette période de temps. Sinon (*block* vaut " +"``False``), elle renvoie un élément s'il y en a un immédiatement disponible. " +"Si ce n'est pas le cas, elle lève l'exception :exc:`Empty` (*timeout* est " +"ignoré dans ce cas)." + +#: ../Doc/library/queue.rst:155 +msgid "" +"Prior to 3.0 on POSIX systems, and for all versions on Windows, if *block* " +"is true and *timeout* is ``None``, this operation goes into an " +"uninterruptible wait on an underlying lock. This means that no exceptions " +"can occur, and in particular a SIGINT will not trigger a :exc:" +"`KeyboardInterrupt`." +msgstr "" +"Avant Python 3.0 sur les systèmes POSIX, et pour toutes les versions sur " +"Windows, si *block* est vrai et *timeout* vaut ``None``, cette opération " +"rentre dans une attente ininterruptible sous un verrou. Cela veut dire " +"qu'aucune exception ne peut arriver et, en particulier, un *SIGINT* ne " +"déclenchera pas de :exc:`KeyboardInterrupt`." + +#: ../Doc/library/queue.rst:163 ../Doc/library/queue.rst:274 +msgid "Equivalent to ``get(False)``." +msgstr "Équivalent à ``get(False)``." + +#: ../Doc/library/queue.rst:165 +msgid "" +"Two methods are offered to support tracking whether enqueued tasks have been " +"fully processed by daemon consumer threads." +msgstr "" +"Deux méthodes sont proposées afin de savoir si les tâches mises dans la file " +"ont été entièrement traitées par les fils d'exécution consommateurs du démon." + +#: ../Doc/library/queue.rst:171 +msgid "" +"Indicate that a formerly enqueued task is complete. Used by queue consumer " +"threads. For each :meth:`get` used to fetch a task, a subsequent call to :" +"meth:`task_done` tells the queue that the processing on the task is complete." +msgstr "" +"Indique qu'une tâche précédemment mise dans la file est terminée. Utilisé " +"par les fils d'exécution consommateurs de la file. Pour chaque appel à :meth:" +"`get` effectué afin de récupérer une tâche, un appel ultérieur à :meth:" +"`task_done` informe la file que le traitement de la tâche est terminé." + +#: ../Doc/library/queue.rst:175 +msgid "" +"If a :meth:`join` is currently blocking, it will resume when all items have " +"been processed (meaning that a :meth:`task_done` call was received for every " +"item that had been :meth:`put` into the queue)." +msgstr "" +"Si un :meth:`join` est actuellement bloquant, on reprendra lorsque tous les " +"éléments auront été traités (ce qui signifie qu'un appel à :meth:`task_done` " +"a été effectué pour chaque élément qui a été :meth:`put` dans la file)." + +#: ../Doc/library/queue.rst:179 +msgid "" +"Raises a :exc:`ValueError` if called more times than there were items placed " +"in the queue." +msgstr "" +"Lève une exception :exc:`ValueError` si appelée plus de fois qu'il y avait " +"d'éléments dans la file." + +#: ../Doc/library/queue.rst:185 +msgid "Blocks until all items in the queue have been gotten and processed." +msgstr "" +"Bloque jusqu'à ce que tous les éléments de la file aient été obtenus et " +"traités." + +#: ../Doc/library/queue.rst:187 +msgid "" +"The count of unfinished tasks goes up whenever an item is added to the " +"queue. The count goes down whenever a consumer thread calls :meth:" +"`task_done` to indicate that the item was retrieved and all work on it is " +"complete. When the count of unfinished tasks drops to zero, :meth:`join` " +"unblocks." +msgstr "" +"Le nombre de tâches inachevées augmente chaque fois qu'un élément est ajouté " +"à la file. Ce nombre diminue chaque fois qu'un fil d'exécution consommateur " +"appelle :meth:`task_done` pour indiquer que l'élément a été extrait et que " +"tout le travail à effectuer dessus est terminé. Lorsque le nombre de tâches " +"non terminées devient nul, :meth:`join` débloque." + +#: ../Doc/library/queue.rst:193 +msgid "Example of how to wait for enqueued tasks to be completed::" +msgstr "" +"Exemple montrant comment attendre que les tâches mises dans la file soient " +"terminées ::" + +#: ../Doc/library/queue.rst:224 +msgid "SimpleQueue Objects" +msgstr "Objets ``SimpleQueue``" + +#: ../Doc/library/queue.rst:226 +msgid "" +":class:`SimpleQueue` objects provide the public methods described below." +msgstr "" +"Les objets :class:`SimpleQueue` fournissent les méthodes publiques décrites " +"ci-dessous." + +#: ../Doc/library/queue.rst:230 +msgid "" +"Return the approximate size of the queue. Note, qsize() > 0 doesn't " +"guarantee that a subsequent get() will not block." +msgstr "" +"Renvoie la taille approximative de la file. Notez que ``qsize() > 0`` ne " +"garantit pas qu'un ``get()`` ultérieur ne soit pas bloquant." + +#: ../Doc/library/queue.rst:236 +msgid "" +"Return ``True`` if the queue is empty, ``False`` otherwise. If empty() " +"returns ``False`` it doesn't guarantee that a subsequent call to get() will " +"not block." +msgstr "" +"Renvoie ``True`` si la file est vide, ``False`` sinon. Si ``empty()`` " +"renvoie ``False``, cela ne garantit pas qu'un appel ultérieur à ``get()`` ne " +"soit pas bloquant." + +#: ../Doc/library/queue.rst:243 +msgid "" +"Put *item* into the queue. The method never blocks and always succeeds " +"(except for potential low-level errors such as failure to allocate memory). " +"The optional args *block* and *timeout* are ignored and only provided for " +"compatibility with :meth:`Queue.put`." +msgstr "" +"Met *item* dans la file. La méthode ne bloque jamais et aboutit toujours " +"(sauf en cas de potentielles erreurs de bas niveau, telles qu'un échec " +"d'allocation de mémoire). Les arguments optionnels *block* et *timeout* sont " +"ignorés et fournis uniquement pour la compatibilité avec :meth:`Queue.put`." + +#: ../Doc/library/queue.rst:258 +msgid "" +"Equivalent to ``put(item)``, provided for compatibility with :meth:`Queue." +"put_nowait`." +msgstr "" +"Équivalent de ``put(item)``, fourni pour la compatibilité avec :meth:`Queue." +"put_nowait`." + +#: ../Doc/library/queue.rst:264 +msgid "" +"Remove and return an item from the queue. If optional args *block* is true " +"and *timeout* is ``None`` (the default), block if necessary until an item is " +"available. If *timeout* is a positive number, it blocks at most *timeout* " +"seconds and raises the :exc:`Empty` exception if no item was available " +"within that time. Otherwise (*block* is false), return an item if one is " +"immediately available, else raise the :exc:`Empty` exception (*timeout* is " +"ignored in that case)." +msgstr "" +"Retire et renvoie un élément de la file. Si les arguments optionnels *block* " +"et *timeout* valent respectivement ``True`` et ``None`` (les valeurs par " +"défaut), la méthode bloque si nécessaire jusqu'à ce qu'un élément soit " +"disponible. Si *timeout* est un entier positif, elle bloque au plus " +"*timeout* secondes et lève l'exception :exc:`Empty` s'il n'y avait pas " +"d'élément disponible pendant cette période de temps. Sinon (*block* vaut " +"``False``), elle renvoie un élément s'il y en a un immédiatement disponible. " +"Si ce n'est pas le cas, elle lève l'exception :exc:`Empty` (*timeout* est " +"ignoré dans ce cas)." + +#: ../Doc/library/queue.rst:281 +msgid "Class :class:`multiprocessing.Queue`" +msgstr "Classe :class:`multiprocessing.Queue`" + +#: ../Doc/library/queue.rst:280 +msgid "" +"A queue class for use in a multi-processing (rather than multi-threading) " +"context." +msgstr "" +"Une file à utiliser dans un contexte multi-processus (plutôt que *multi-" +"thread*)." + +#: ../Doc/library/queue.rst:283 +msgid "" +":class:`collections.deque` is an alternative implementation of unbounded " +"queues with fast atomic :meth:`~collections.deque.append` and :meth:" +"`~collections.deque.popleft` operations that do not require locking." +msgstr "" +":class:`collections.deque` est une implémentation alternative de file non " +"bornée avec des méthodes :meth:`~collections.deque.append` et :meth:" +"`~collections.deque.popleft` rapides et atomiques ne nécessitant pas de " +"verrouillage." diff --git a/library/quopri.po b/library/quopri.po new file mode 100644 index 000000000..5516eb43c --- /dev/null +++ b/library/quopri.po @@ -0,0 +1,107 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-08 09:58+0100\n" +"PO-Revision-Date: 2018-09-27 15:13+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/quopri.rst:2 +msgid ":mod:`quopri` --- Encode and decode MIME quoted-printable data" +msgstr ":mod:`quopri` — Encode et décode des données *MIME quoted-printable*" + +#: ../Doc/library/quopri.rst:7 +msgid "**Source code:** :source:`Lib/quopri.py`" +msgstr "**Code source :** :source:`Lib/quopri.py`" + +#: ../Doc/library/quopri.rst:15 +msgid "" +"This module performs quoted-printable transport encoding and decoding, as " +"defined in :rfc:`1521`: \"MIME (Multipurpose Internet Mail Extensions) Part " +"One: Mechanisms for Specifying and Describing the Format of Internet Message " +"Bodies\". The quoted-printable encoding is designed for data where there are " +"relatively few nonprintable characters; the base64 encoding scheme available " +"via the :mod:`base64` module is more compact if there are many such " +"characters, as when sending a graphics file." +msgstr "" +"Ce module effectue des encodages et décodages de transport *quoted-" +"printable*, tel que définis dans la :rfc:`1521` : \"*MIME (Multipurpose " +"Internet Mail Extensions) Part One Mechanisms for Specifying and Describing " +"the Format of Internet Message Bodies*\". L'encodage *quoted-printable* est " +"adapté aux données dans lesquelles peu de données ne sont pas affichables. " +"L'encodage *base64* disponible dans le module :mod:`base64` est plus compact " +"dans les cas où ces caractères sont nombreux, typiquement pour encoder des " +"images." + +#: ../Doc/library/quopri.rst:25 +msgid "" +"Decode the contents of the *input* file and write the resulting decoded " +"binary data to the *output* file. *input* and *output* must be :term:`binary " +"file objects `. If the optional argument *header* is present " +"and true, underscore will be decoded as space. This is used to decode \"Q\"-" +"encoded headers as described in :rfc:`1522`: \"MIME (Multipurpose Internet " +"Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text\"." +msgstr "" +"Décode le contenu du fichier *input* et écrit le résultat décodé, binaire, " +"dans le fichier *output*. *input* et *output* doivent être des :term:`objets " +"fichiers binaires `. Si l'argument facultatif *header* est " +"fourni et vrai, les *underscore* seront décodés en espaces. C'est utilisé " +"pour décoder des entêtes encodées \"Q\" décrits dans la RFC :rfc:`1522` : " +"\"*MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header " +"Extensions for Non-ASCII Text*\"." + +#: ../Doc/library/quopri.rst:35 +msgid "" +"Encode the contents of the *input* file and write the resulting quoted-" +"printable data to the *output* file. *input* and *output* must be :term:" +"`binary file objects `. *quotetabs*, a non-optional flag which " +"controls whether to encode embedded spaces and tabs; when true it encodes " +"such embedded whitespace, and when false it leaves them unencoded. Note that " +"spaces and tabs appearing at the end of lines are always encoded, as per :" +"rfc:`1521`. *header* is a flag which controls if spaces are encoded as " +"underscores as per :rfc:`1522`." +msgstr "" +"Encode le contenu du fichier *input* et écrit le résultat dans le fichier " +"*output*. *input* et *output* doivent être des :term:`objets fichiers " +"binaires `. *quotetabs* (paramètre obligatoire) permet de " +"choisir le style d'encodage des espaces et des tabulations, si vrai les " +"espaces seront encodées, sinon elles seront laissées inchangées. Notez que " +"les espaces et tabulations en fin de ligne sont toujours encodées, tel que " +"spécifié par la :rfc:`1521`. *header* est une option permettant d'encoder " +"les espace en *underscores*, tel que spécifié par la :rfc:`1522`." + +#: ../Doc/library/quopri.rst:48 +msgid "" +"Like :func:`decode`, except that it accepts a source :class:`bytes` and " +"returns the corresponding decoded :class:`bytes`." +msgstr "" +"Fonctionne comme :func:`decode`, sauf qu'elle accepte des :class:`bytes` " +"comme source, et renvoie les :class:`bytes` décodés correspondants." + +#: ../Doc/library/quopri.rst:54 +msgid "" +"Like :func:`encode`, except that it accepts a source :class:`bytes` and " +"returns the corresponding encoded :class:`bytes`. By default, it sends a " +"``False`` value to *quotetabs* parameter of the :func:`encode` function." +msgstr "" +"Fonctionne comme :func:`encode`, sauf qu'elle accepte des :class:`bytes` " +"comme source et renvoie les :class:`bytes` encodés correspondants. Par " +"défaut, ``False`` est donné au paramètre *quotetabs* de la fonction :func:" +"`encode`." + +#: ../Doc/library/quopri.rst:62 +msgid "Module :mod:`base64`" +msgstr "Module :mod:`base64`" + +#: ../Doc/library/quopri.rst:63 +msgid "Encode and decode MIME base64 data" +msgstr "Encode et décode des données MIME en *base64*" diff --git a/library/random.po b/library/random.po new file mode 100644 index 000000000..909e6f2a2 --- /dev/null +++ b/library/random.po @@ -0,0 +1,726 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-12-06 22:18+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/library/random.rst:2 +msgid ":mod:`random` --- Generate pseudo-random numbers" +msgstr ":mod:`random` --- Génère des nombres pseudo-aléatoires" + +#: ../Doc/library/random.rst:7 +msgid "**Source code:** :source:`Lib/random.py`" +msgstr "**Code source :** :source:`Lib/random.py`" + +#: ../Doc/library/random.rst:11 +msgid "" +"This module implements pseudo-random number generators for various " +"distributions." +msgstr "" +"Ce module implémente des générateurs de nombres pseudo-aléatoires pour " +"différentes distributions." + +#: ../Doc/library/random.rst:14 +msgid "" +"For integers, there is uniform selection from a range. For sequences, there " +"is uniform selection of a random element, a function to generate a random " +"permutation of a list in-place, and a function for random sampling without " +"replacement." +msgstr "" +"Pour les entiers, il existe une sélection uniforme à partir d'une plage. " +"Pour les séquences, il existe une sélection uniforme d'un élément aléatoire, " +"une fonction pour générer une permutation aléatoire d'une liste sur place et " +"une fonction pour un échantillonnage aléatoire sans remplacement." + +#: ../Doc/library/random.rst:19 +msgid "" +"On the real line, there are functions to compute uniform, normal (Gaussian), " +"lognormal, negative exponential, gamma, and beta distributions. For " +"generating distributions of angles, the von Mises distribution is available." +msgstr "" +"Pour l'ensemble des réels, il y a des fonctions pour calculer des " +"distributions uniformes, normales (gaussiennes), log-normales, " +"exponentielles négatives, gamma et bêta. Pour générer des distributions " +"d'angles, la distribution de *von Mises* est disponible." + +#: ../Doc/library/random.rst:23 +msgid "" +"Almost all module functions depend on the basic function :func:`.random`, " +"which generates a random float uniformly in the semi-open range [0.0, 1.0). " +"Python uses the Mersenne Twister as the core generator. It produces 53-bit " +"precision floats and has a period of 2\\*\\*19937-1. The underlying " +"implementation in C is both fast and threadsafe. The Mersenne Twister is " +"one of the most extensively tested random number generators in existence. " +"However, being completely deterministic, it is not suitable for all " +"purposes, and is completely unsuitable for cryptographic purposes." +msgstr "" +"Presque toutes les fonctions du module dépendent de la fonction de base :" +"func:`.random`, qui génère un nombre à virgule flottante aléatoire de façon " +"uniforme dans la plage semi-ouverte [0.0, 1.0). Python utilise l'algorithme " +"*Mersenne Twister* comme générateur de base. Il produit des flottants de " +"précision de 53 bits et a une période de 2\\*\\*\\*19937-1. L'implémentation " +"sous-jacente en C est à la fois rapide et compatible avec les programmes " +"ayant de multiples fils d'exécution. Le *Mersenne Twister* est l'un des " +"générateurs de nombres aléatoires les plus largement testés qui existent. " +"Cependant, étant complètement déterministe, il n'est pas adapté à tous les " +"usages et est totalement inadapté à des fins cryptographiques." + +#: ../Doc/library/random.rst:32 +msgid "" +"The functions supplied by this module are actually bound methods of a hidden " +"instance of the :class:`random.Random` class. You can instantiate your own " +"instances of :class:`Random` to get generators that don't share state." +msgstr "" +"Les fonctions fournies par ce module dépendent en réalité de méthodes d’une " +"instance cachée de la classe :class:`random.Random`. Vous pouvez créer vos " +"propres instances de :class:`Random` pour obtenir des générateurs sans états " +"partagés." + +#: ../Doc/library/random.rst:36 +msgid "" +"Class :class:`Random` can also be subclassed if you want to use a different " +"basic generator of your own devising: in that case, override the :meth:" +"`~Random.random`, :meth:`~Random.seed`, :meth:`~Random.getstate`, and :meth:" +"`~Random.setstate` methods. Optionally, a new generator can supply a :meth:" +"`~Random.getrandbits` method --- this allows :meth:`randrange` to produce " +"selections over an arbitrarily large range." +msgstr "" +"La classe :class:`Random` peut également être sous-classée si vous voulez " +"utiliser un générateur de base différent, de votre propre conception. Dans " +"ce cas, remplacez les méthodes :meth:`~Random.random`, :meth:`~Random." +"seed`, :meth:`~Random.gettsate` et :meth:`~Random.setstate`. En option, un " +"nouveau générateur peut fournir une méthode :meth:`~Random.getrandbits` --- " +"ce qui permet à :meth:`randrange` de produire des sélections sur une plage " +"de taille arbitraire." + +#: ../Doc/library/random.rst:42 +msgid "" +"The :mod:`random` module also provides the :class:`SystemRandom` class which " +"uses the system function :func:`os.urandom` to generate random numbers from " +"sources provided by the operating system." +msgstr "" +"Le module :mod:`random` fournit également la classe :class:`SystemRandom` " +"qui utilise la fonction système :func:`os.urandom` pour générer des nombres " +"aléatoires à partir de sources fournies par le système d'exploitation." + +#: ../Doc/library/random.rst:48 +msgid "" +"The pseudo-random generators of this module should not be used for security " +"purposes. For security or cryptographic uses, see the :mod:`secrets` module." +msgstr "" +"Les générateurs pseudo-aléatoires de ce module ne doivent pas être utilisés " +"à des fins de sécurité. Pour des utilisations de sécurité ou " +"cryptographiques, voir le module :mod:`secrets`." + +#: ../Doc/library/random.rst:54 +msgid "" +"M. Matsumoto and T. Nishimura, \"Mersenne Twister: A 623-dimensionally " +"equidistributed uniform pseudorandom number generator\", ACM Transactions on " +"Modeling and Computer Simulation Vol. 8, No. 1, January pp.3--30 1998." +msgstr "" +"*M. Matsumoto and T. Nishimura, \"Mersenne Twister: A 623-dimensionally " +"equidistributed uniform pseudorandom number generator\", ACM Transactions on " +"Modeling and Computer Simulation Vol. 8, No. 1,* Janvier pp.3--30 1998." + +#: ../Doc/library/random.rst:59 +msgid "" +"`Complementary-Multiply-with-Carry recipe `_ for a compatible alternative random number generator with " +"a long period and comparatively simple update operations." +msgstr "" +"`Complementary-Multiply-with-Carry recipe `_ pour un autre générateur de nombres aléatoires avec une " +"longue période et des opérations de mise à jour relativement simples." + +#: ../Doc/library/random.rst:66 +msgid "Bookkeeping functions" +msgstr "Fonctions de gestion d'état" + +#: ../Doc/library/random.rst:70 +msgid "Initialize the random number generator." +msgstr "Initialise le générateur de nombres aléatoires." + +#: ../Doc/library/random.rst:72 +msgid "" +"If *a* is omitted or ``None``, the current system time is used. If " +"randomness sources are provided by the operating system, they are used " +"instead of the system time (see the :func:`os.urandom` function for details " +"on availability)." +msgstr "" +"Si *a* est omis ou ``None``, l'heure système actuelle est utilisée. Si des " +"sources aléatoires sont fournies par le système d'exploitation, elles sont " +"utilisées à la place de l'heure système (voir la fonction :func:`os.urandom` " +"pour les détails sur la disponibilité)." + +#: ../Doc/library/random.rst:77 +msgid "If *a* is an int, it is used directly." +msgstr "Si *a* est un entier, il est utilisé directement." + +#: ../Doc/library/random.rst:79 +msgid "" +"With version 2 (the default), a :class:`str`, :class:`bytes`, or :class:" +"`bytearray` object gets converted to an :class:`int` and all of its bits are " +"used." +msgstr "" +"Avec la version 2 (par défaut), un objet :class:`str`, :class:`bytes` ou :" +"class:`bytearray` est converti en :class:`int` et tous ses bits sont " +"utilisés." + +#: ../Doc/library/random.rst:82 +msgid "" +"With version 1 (provided for reproducing random sequences from older " +"versions of Python), the algorithm for :class:`str` and :class:`bytes` " +"generates a narrower range of seeds." +msgstr "" +"Avec la version 1 (fournie pour reproduire des séquences aléatoires " +"produites par d'anciennes versions de Python), l'algorithme pour :class:" +"`str` et :class:`bytes` génère une gamme plus étroite de graines." + +#: ../Doc/library/random.rst:86 +msgid "" +"Moved to the version 2 scheme which uses all of the bits in a string seed." +msgstr "" +"Passée à la version 2 du schéma qui utilise tous les bits d'une graine de " +"chaîne de caractères." + +#: ../Doc/library/random.rst:91 +msgid "" +"Return an object capturing the current internal state of the generator. " +"This object can be passed to :func:`setstate` to restore the state." +msgstr "" +"Renvoie un objet capturant l'état interne actuel du générateur. Cet objet " +"peut être passé à :func:`setstate` pour restaurer cet état." + +#: ../Doc/library/random.rst:97 +msgid "" +"*state* should have been obtained from a previous call to :func:`getstate`, " +"and :func:`setstate` restores the internal state of the generator to what it " +"was at the time :func:`getstate` was called." +msgstr "" +"Il convient que *state* ait été obtenu à partir d'un appel précédent à :func:" +"`getstate`, et :func:`setstate` restaure l'état interne du générateur à ce " +"qu'il était au moment où :func:`getstate` a été appelé." + +#: ../Doc/library/random.rst:104 +msgid "" +"Returns a Python integer with *k* random bits. This method is supplied with " +"the MersenneTwister generator and some other generators may also provide it " +"as an optional part of the API. When available, :meth:`getrandbits` enables :" +"meth:`randrange` to handle arbitrarily large ranges." +msgstr "" +"Renvoie un entier Python avec *k* bits aléatoires. Cette méthode est fournie " +"avec le générateur MersenneTwister. Quelques autres générateurs peuvent " +"également la fournir en option comme partie de l'API. Lorsqu'elle est " +"disponible, :meth:`getrandbits` permet à :meth:`randrange` de gérer des " +"gammes arbitrairement larges." + +#: ../Doc/library/random.rst:111 +msgid "Functions for integers" +msgstr "Fonctions pour les entiers" + +#: ../Doc/library/random.rst:116 +msgid "" +"Return a randomly selected element from ``range(start, stop, step)``. This " +"is equivalent to ``choice(range(start, stop, step))``, but doesn't actually " +"build a range object." +msgstr "" +"Renvoie un élément sélectionné aléatoirement à partir de ``range(start, " +"stop, step)``. C'est équivalent à ``choice(range(start, stop, step))``, " +"mais ne construit pas réellement un objet range." + +#: ../Doc/library/random.rst:120 +msgid "" +"The positional argument pattern matches that of :func:`range`. Keyword " +"arguments should not be used because the function may use them in unexpected " +"ways." +msgstr "" +"Le motif d'argument positionnel correspond à celui de :func:`range`. " +"N'utilisez pas d'arguments nommés parce que la fonction peut les utiliser de " +"manière inattendue." + +#: ../Doc/library/random.rst:123 +msgid "" +":meth:`randrange` is more sophisticated about producing equally distributed " +"values. Formerly it used a style like ``int(random()*n)`` which could " +"produce slightly uneven distributions." +msgstr "" +":meth:`randrange` est plus sophistiquée dans la production de valeurs " +"uniformément distribuées. Auparavant, elle utilisait un style comme " +"``int(random()*n)`` qui pouvait produire des distributions légèrement " +"inégales." + +#: ../Doc/library/random.rst:130 +msgid "" +"Return a random integer *N* such that ``a <= N <= b``. Alias for " +"``randrange(a, b+1)``." +msgstr "" +"Renvoie un entier aléatoire *N* tel que ``a <= N <= b``. Alias pour " +"``randrange(a, b+1)``." + +#: ../Doc/library/random.rst:135 +msgid "Functions for sequences" +msgstr "Fonctions pour les séquences" + +#: ../Doc/library/random.rst:139 +msgid "" +"Return a random element from the non-empty sequence *seq*. If *seq* is " +"empty, raises :exc:`IndexError`." +msgstr "" +"Renvoie un élément aléatoire de la séquence non vide *seq*. Si *seq* est " +"vide, lève :exc:`IndexError`." + +#: ../Doc/library/random.rst:144 +msgid "" +"Return a *k* sized list of elements chosen from the *population* with " +"replacement. If the *population* is empty, raises :exc:`IndexError`." +msgstr "" +"Renvoie une liste de taille *k* d'éléments choisis dans la *population* avec " +"remise. Si la *population* est vide, lève :exc:`IndexError`." + +#: ../Doc/library/random.rst:147 +msgid "" +"If a *weights* sequence is specified, selections are made according to the " +"relative weights. Alternatively, if a *cum_weights* sequence is given, the " +"selections are made according to the cumulative weights (perhaps computed " +"using :func:`itertools.accumulate`). For example, the relative weights " +"``[10, 5, 30, 5]`` are equivalent to the cumulative weights ``[10, 15, 45, " +"50]``. Internally, the relative weights are converted to cumulative weights " +"before making selections, so supplying the cumulative weights saves work." +msgstr "" +"Si une séquence de *poids* est spécifiée, les tirages sont effectués en " +"fonction des poids relatifs. Alternativement, si une séquence *cum_weights* " +"est donnée, les tirages sont faits en fonction des poids cumulés (peut-être " +"calculés en utilisant :func:`itertools.accumulate`). Par exemple, les poids " +"relatifs ``[10, 5, 30, 5]`` sont équivalents aux poids cumulatifs ``[10, 15, " +"45, 50]``. En interne, les poids relatifs sont convertis en poids " +"cumulatifs avant d'effectuer les tirages, ce qui vous permet d'économiser du " +"travail en fournissant des pondérations cumulatives." + +#: ../Doc/library/random.rst:156 +msgid "" +"If neither *weights* nor *cum_weights* are specified, selections are made " +"with equal probability. If a weights sequence is supplied, it must be the " +"same length as the *population* sequence. It is a :exc:`TypeError` to " +"specify both *weights* and *cum_weights*." +msgstr "" +"Si ni *weights* ni *cum_weights* ne sont spécifiés, les tirages sont " +"effectués avec une probabilité uniforme. Si une séquence de poids est " +"fournie, elle doit être de la même longueur que la séquence *population*. " +"Spécifier à la fois *weights* et *cum_weights* lève une :exc:`TypeError`." + +#: ../Doc/library/random.rst:161 +msgid "" +"The *weights* or *cum_weights* can use any numeric type that interoperates " +"with the :class:`float` values returned by :func:`random` (that includes " +"integers, floats, and fractions but excludes decimals)." +msgstr "" + +#: ../Doc/library/random.rst:165 +msgid "" +"For a given seed, the :func:`choices` function with equal weighting " +"typically produces a different sequence than repeated calls to :func:" +"`choice`. The algorithm used by :func:`choices` uses floating point " +"arithmetic for internal consistency and speed. The algorithm used by :func:" +"`choice` defaults to integer arithmetic with repeated selections to avoid " +"small biases from round-off error." +msgstr "" +"Pour une graine donnée, la fonction :func:`choices` avec pondération " +"uniforme produit généralement une séquence différente des appels répétés à :" +"func:`choice`. L'algorithme utilisé par :func:`choices` utilise " +"l'arithmétique à virgule flottante pour la cohérence interne et la vitesse. " +"L'algorithme utilisé par :func:`choice` utilise par défaut l'arithmétique " +"entière avec des tirages répétés pour éviter les petits biais dus aux " +"erreurs d'arrondi." + +#: ../Doc/library/random.rst:177 +msgid "Shuffle the sequence *x* in place." +msgstr "" +"Mélange la séquence *x* sans créer de nouvelle instance (« sur place »)." + +#: ../Doc/library/random.rst:179 +msgid "" +"The optional argument *random* is a 0-argument function returning a random " +"float in [0.0, 1.0); by default, this is the function :func:`.random`." +msgstr "" +"L'argument optionnel *random* est une fonction sans argument renvoyant un " +"nombre aléatoire à virgule flottante dans [0.0, 1.0); par défaut, c'est la " +"fonction :func:`.random`." + +#: ../Doc/library/random.rst:182 +msgid "" +"To shuffle an immutable sequence and return a new shuffled list, use " +"``sample(x, k=len(x))`` instead." +msgstr "" +"Pour mélanger une séquence immuable et renvoyer une nouvelle liste mélangée, " +"utilisez ``sample(x, k=len(x))`` à la place." + +#: ../Doc/library/random.rst:185 +msgid "" +"Note that even for small ``len(x)``, the total number of permutations of *x* " +"can quickly grow larger than the period of most random number generators. " +"This implies that most permutations of a long sequence can never be " +"generated. For example, a sequence of length 2080 is the largest that can " +"fit within the period of the Mersenne Twister random number generator." +msgstr "" +"Notez que même pour les petits ``len(x)``, le nombre total de permutations " +"de *x* peut rapidement devenir plus grand que la période de la plupart des " +"générateurs de nombres aléatoires. Cela implique que la plupart des " +"permutations d'une longue séquence ne peuvent jamais être générées. Par " +"exemple, une séquence de longueur 2080 est la plus grande qui puisse tenir " +"dans la période du générateur de nombres aléatoires Mersenne Twister." + +#: ../Doc/library/random.rst:194 +msgid "" +"Return a *k* length list of unique elements chosen from the population " +"sequence or set. Used for random sampling without replacement." +msgstr "" +"Renvoie une liste de *k* éléments uniques choisis dans la séquence ou " +"l'ensemble de la population. Utilisé pour un tirage aléatoire sans remise." + +#: ../Doc/library/random.rst:197 +msgid "" +"Returns a new list containing elements from the population while leaving the " +"original population unchanged. The resulting list is in selection order so " +"that all sub-slices will also be valid random samples. This allows raffle " +"winners (the sample) to be partitioned into grand prize and second place " +"winners (the subslices)." +msgstr "" +"Renvoie une nouvelle liste contenant des éléments de la population tout en " +"laissant la population originale inchangée. La liste résultante est classée " +"par ordre de sélection de sorte que toutes les sous-tranches soient " +"également des échantillons aléatoires valides. Cela permet aux gagnants du " +"tirage (l'échantillon) d'être divisés en gagnants du grand prix et en " +"gagnants de la deuxième place (les sous-tranches)." + +#: ../Doc/library/random.rst:203 +msgid "" +"Members of the population need not be :term:`hashable` or unique. If the " +"population contains repeats, then each occurrence is a possible selection in " +"the sample." +msgstr "" +"Les membres de la population n'ont pas besoin d'être :term:" +"`hachables` ou uniques. Si la population contient des répétitions, " +"alors chaque occurrence est un tirage possible dans l'échantillon." + +#: ../Doc/library/random.rst:206 +msgid "" +"To choose a sample from a range of integers, use a :func:`range` object as " +"an argument. This is especially fast and space efficient for sampling from " +"a large population: ``sample(range(10000000), k=60)``." +msgstr "" +"Pour choisir un échantillon parmi un intervalle d'entiers, utilisez un " +"objet :func:`range` comme argument. Ceci est particulièrement rapide et " +"économe en mémoire pour un tirage dans une grande population : " +"``échantillon(range(10000000), k=60)``." + +#: ../Doc/library/random.rst:210 +msgid "" +"If the sample size is larger than the population size, a :exc:`ValueError` " +"is raised." +msgstr "" +"Si la taille de l'échantillon est supérieure à la taille de la population, " +"une :exc:`ValueError` est levée." + +#: ../Doc/library/random.rst:214 +msgid "Real-valued distributions" +msgstr "Distributions pour les nombre réels" + +#: ../Doc/library/random.rst:216 +msgid "" +"The following functions generate specific real-valued distributions. " +"Function parameters are named after the corresponding variables in the " +"distribution's equation, as used in common mathematical practice; most of " +"these equations can be found in any statistics text." +msgstr "" +"Les fonctions suivantes génèrent des distributions spécifiques en nombre " +"réels. Les paramètres de fonction sont nommés d'après les variables " +"correspondantes de l'équation de la distribution, telles qu'elles sont " +"utilisées dans la pratique mathématique courante ; la plupart de ces " +"équations peuvent être trouvées dans tout document traitant de statistiques." + +#: ../Doc/library/random.rst:224 +msgid "Return the next random floating point number in the range [0.0, 1.0)." +msgstr "" +"Renvoie le nombre aléatoire à virgule flottante suivant dans la plage [0.0, " +"1.0)." + +#: ../Doc/library/random.rst:229 +msgid "" +"Return a random floating point number *N* such that ``a <= N <= b`` for ``a " +"<= b`` and ``b <= N <= a`` for ``b < a``." +msgstr "" +"Renvoie un nombre aléatoire à virgule flottante *N* tel que ``a <= N <= b`` " +"pour ``a <= b`` et ``b <= N <= a`` pour ``b < a``." + +#: ../Doc/library/random.rst:232 +msgid "" +"The end-point value ``b`` may or may not be included in the range depending " +"on floating-point rounding in the equation ``a + (b-a) * random()``." +msgstr "" +"La valeur finale ``b`` peut ou non être incluse dans la plage selon " +"l'arrondi à virgule flottante dans l'équation ``a + (b-a) * random()``." + +#: ../Doc/library/random.rst:238 +msgid "" +"Return a random floating point number *N* such that ``low <= N <= high`` and " +"with the specified *mode* between those bounds. The *low* and *high* bounds " +"default to zero and one. The *mode* argument defaults to the midpoint " +"between the bounds, giving a symmetric distribution." +msgstr "" +"Renvoie un nombre aléatoire en virgule flottante *N* tel que ``low <= N <= " +"high`` et avec le *mode* spécifié entre ces bornes. Les limites *low* et " +"*high* par défaut sont zéro et un. L'argument *mode* est par défaut le " +"point médian entre les bornes, ce qui donne une distribution symétrique." + +#: ../Doc/library/random.rst:246 +msgid "" +"Beta distribution. Conditions on the parameters are ``alpha > 0`` and " +"``beta > 0``. Returned values range between 0 and 1." +msgstr "" +"Distribution bêta. Les conditions sur les paramètres sont ``alpha > 0`` et " +"``beta > 0``. Les valeurs renvoyées varient entre 0 et 1." + +#: ../Doc/library/random.rst:252 +msgid "" +"Exponential distribution. *lambd* is 1.0 divided by the desired mean. It " +"should be nonzero. (The parameter would be called \"lambda\", but that is a " +"reserved word in Python.) Returned values range from 0 to positive infinity " +"if *lambd* is positive, and from negative infinity to 0 if *lambd* is " +"negative." +msgstr "" +"Distribution exponentielle. *lambd* est 1,0 divisé par la moyenne désirée. " +"Ce ne doit pas être zéro. (Le paramètre aurait dû s'appeler \"lambda\", " +"mais c'est un mot réservé en Python.) Les valeurs renvoyées vont de 0 à " +"plus l'infini positif si *lambd* est positif, et de moins l'infini à 0 si " +"*lambd* est négatif." + +#: ../Doc/library/random.rst:261 +msgid "" +"Gamma distribution. (*Not* the gamma function!) Conditions on the " +"parameters are ``alpha > 0`` and ``beta > 0``." +msgstr "" +"Distribution gamma. (*Ce n'est pas* la fonction gamma !) Les conditions sur " +"les paramètres sont ``alpha > 0`` et ``beta > 0``." + +#: ../Doc/library/random.rst:264 +msgid "The probability distribution function is::" +msgstr "La fonction de distribution de probabilité est ::" + +#: ../Doc/library/random.rst:273 +msgid "" +"Gaussian distribution. *mu* is the mean, and *sigma* is the standard " +"deviation. This is slightly faster than the :func:`normalvariate` function " +"defined below." +msgstr "" +"Distribution gaussienne. *mu* est la moyenne et *sigma* est la écart type. " +"C'est légèrement plus rapide que la fonction :func:`normalvariate` définie " +"ci-dessous." + +#: ../Doc/library/random.rst:280 +msgid "" +"Log normal distribution. If you take the natural logarithm of this " +"distribution, you'll get a normal distribution with mean *mu* and standard " +"deviation *sigma*. *mu* can have any value, and *sigma* must be greater " +"than zero." +msgstr "" +"Logarithme de la distribution normale. Si vous prenez le logarithme naturel " +"de cette distribution, vous obtiendrez une distribution normale avec *mu* " +"moyen et écart-type *sigma*. *mu* peut avoir n'importe quelle valeur et " +"*sigma* doit être supérieur à zéro." + +#: ../Doc/library/random.rst:288 +msgid "" +"Normal distribution. *mu* is the mean, and *sigma* is the standard " +"deviation." +msgstr "" +"Distribution normale. *mu* est la moyenne et *sigma* est l'écart type." + +#: ../Doc/library/random.rst:293 +msgid "" +"*mu* is the mean angle, expressed in radians between 0 and 2\\*\\ *pi*, and " +"*kappa* is the concentration parameter, which must be greater than or equal " +"to zero. If *kappa* is equal to zero, this distribution reduces to a " +"uniform random angle over the range 0 to 2\\*\\ *pi*." +msgstr "" +"*mu* est l'angle moyen, exprimé en radians entre 0 et 2\\*\\ *pi*, et " +"*kappa* est le paramètre de concentration, qui doit être supérieur ou égal à " +"zéro. Si *kappa* est égal à zéro, cette distribution se réduit à un angle " +"aléatoire uniforme sur la plage de 0 à 2\\*\\ *pi*." + +#: ../Doc/library/random.rst:301 +msgid "Pareto distribution. *alpha* is the shape parameter." +msgstr "Distribution de Pareto. *alpha* est le paramètre de forme." + +#: ../Doc/library/random.rst:306 +msgid "" +"Weibull distribution. *alpha* is the scale parameter and *beta* is the " +"shape parameter." +msgstr "" +"Distribution de Weibull. *alpha* est le paramètre de l'échelle et *beta* " +"est le paramètre de forme." + +#: ../Doc/library/random.rst:311 +msgid "Alternative Generator" +msgstr "Générateur alternatif" + +#: ../Doc/library/random.rst:315 +msgid "" +"Class that implements the default pseudo-random number generator used by " +"the :mod:`random` module." +msgstr "" +"Classe qui implémente le générateur de nombres pseudo-aléatoires par défaut " +"utilisé par le module :mod:`random`." + +#: ../Doc/library/random.rst:320 +msgid "" +"Class that uses the :func:`os.urandom` function for generating random " +"numbers from sources provided by the operating system. Not available on all " +"systems. Does not rely on software state, and sequences are not " +"reproducible. Accordingly, the :meth:`seed` method has no effect and is " +"ignored. The :meth:`getstate` and :meth:`setstate` methods raise :exc:" +"`NotImplementedError` if called." +msgstr "" +"Classe qui utilise la fonction :func:`os.urandom` pour générer des nombres " +"aléatoires à partir de sources fournies par le système d'exploitation. Non " +"disponible sur tous les systèmes. Ne repose pas sur un état purement " +"logiciel et les séquences ne sont pas reproductibles. Par conséquent, la " +"méthode :meth:`seed` n'a aucun effet et est ignorée. Les méthodes :meth:" +"`getstate` et :meth:`setstate` lèvent :exc:`NotImplementedError` si vous les " +"appelez." + +#: ../Doc/library/random.rst:329 +msgid "Notes on Reproducibility" +msgstr "Remarques sur la reproductibilité" + +#: ../Doc/library/random.rst:331 +msgid "" +"Sometimes it is useful to be able to reproduce the sequences given by a " +"pseudo random number generator. By re-using a seed value, the same sequence " +"should be reproducible from run to run as long as multiple threads are not " +"running." +msgstr "" +"Il est parfois utile de pouvoir reproduire les séquences données par un " +"générateur de nombres pseudo-aléatoires. En réutilisant la même graine, la " +"même séquence devrait être reproductible d'une exécution à l'autre tant que " +"plusieurs processus ne sont pas en cours." + +#: ../Doc/library/random.rst:335 +msgid "" +"Most of the random module's algorithms and seeding functions are subject to " +"change across Python versions, but two aspects are guaranteed not to change:" +msgstr "" +"La plupart des algorithmes et des fonctions de génération de graine du " +"module aléatoire sont susceptibles d'être modifiés d'une version à l'autre " +"de Python, mais deux aspects sont garantis de ne pas changer ::" + +#: ../Doc/library/random.rst:338 +msgid "" +"If a new seeding method is added, then a backward compatible seeder will be " +"offered." +msgstr "" +"Si une nouvelle méthode de génération de graine est ajoutée, une fonction " +"rétro-compatible sera offerte." + +#: ../Doc/library/random.rst:341 +msgid "" +"The generator's :meth:`~Random.random` method will continue to produce the " +"same sequence when the compatible seeder is given the same seed." +msgstr "" +"La méthode :meth:`~Random.random` du générateur continuera à produire la " +"même séquence lorsque la fonction de génération de graine compatible recevra " +"la même semence." + +#: ../Doc/library/random.rst:347 +msgid "Examples and Recipes" +msgstr "Exemples et recettes" + +#: ../Doc/library/random.rst:349 +msgid "Basic examples::" +msgstr "Exemples de base ::" + +#: ../Doc/library/random.rst:377 +msgid "Simulations::" +msgstr "Simulations : ::" + +#: ../Doc/library/random.rst:406 +msgid "" +"Example of `statistical bootstrapping `_ using resampling with replacement to estimate " +"a confidence interval for the mean of a sample of size five::" +msgstr "" +"Exemple de `*bootstrapping* statistique `_ utilisant le ré-échantillonnage avec remise pour " +"estimer un intervalle de confiance pour la moyenne d'un échantillon de " +"taille cinq : ::" + +#: ../Doc/library/random.rst:420 +msgid "" +"Example of a `resampling permutation test `_ to determine the statistical " +"significance or `p-value `_ of an " +"observed difference between the effects of a drug versus a placebo::" +msgstr "" +"Exemple d'un `*resampling permutation test* `_ pour déterminer la " +"signification statistique ou `valeur p `_ d'une différence observée entre les effets d'un médicament et " +"ceux d'un placebo ::" + +#: ../Doc/library/random.rst:447 +msgid "" +"Simulation of arrival times and service deliveries in a single server queue::" +msgstr "" +"Simulation des heures d'arrivée et des livraisons de services dans une seule " +"file d'attente de serveurs ::" + +#: ../Doc/library/random.rst:478 +msgid "" +"`Statistics for Hackers `_ a " +"video tutorial by `Jake Vanderplas `_ on statistical analysis using just a few fundamental " +"concepts including simulation, sampling, shuffling, and cross-validation." +msgstr "" +"`Statistics for Hackers `_ un " +"tutoriel vidéo par `Jake Vanderplas `_ sur l'analyse statistique en utilisant seulement quelques " +"concepts fondamentaux dont la simulation, l'échantillonnage, le brassage et " +"la validation croisée." + +#: ../Doc/library/random.rst:484 +msgid "" +"`Economics Simulation `_ a simulation of a marketplace by `Peter Norvig `_ that shows effective use of many of the tools and " +"distributions provided by this module (gauss, uniform, sample, betavariate, " +"choice, triangular, and randrange)." +msgstr "" +"`Economics Simulation `_ simulation d'un marché par `Peter Norvig `_ qui montre l'utilisation efficace de plusieurs des outils et " +"distributions fournis par ce module (*gauss*, *uniform*, *sample*, " +"*betavariate*, *choice*, *triangular*, et *randrange*)." + +#: ../Doc/library/random.rst:491 +msgid "" +"`A Concrete Introduction to Probability (using Python) `_ a tutorial by `Peter " +"Norvig `_ covering the basics of probability " +"theory, how to write simulations, and how to perform data analysis using " +"Python." +msgstr "" +"`A Concrete Introduction to Probability (using Python) `_ un tutoriel par " +"`Peter Norvig `_ couvrant les bases de la " +"théorie des probabilités, comment écrire des simulations, et comment " +"effectuer des analyses de données avec Python." diff --git a/library/re.po b/library/re.po new file mode 100644 index 000000000..2049bcb58 --- /dev/null +++ b/library/re.po @@ -0,0 +1,2527 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-03-27 15:23+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/re.rst:2 +msgid ":mod:`re` --- Regular expression operations" +msgstr ":mod:`re` — Opérations à base d'expressions rationnelles" + +#: ../Doc/library/re.rst:10 +msgid "**Source code:** :source:`Lib/re.py`" +msgstr "**Code source :** :source:`Lib/re.py`" + +#: ../Doc/library/re.rst:14 +msgid "" +"This module provides regular expression matching operations similar to those " +"found in Perl." +msgstr "" +"Ce module fournit des opérations sur les expressions rationnelles similaires " +"à celles que l'on trouve dans Perl." + +#: ../Doc/library/re.rst:17 +msgid "" +"Both patterns and strings to be searched can be Unicode strings (:class:" +"`str`) as well as 8-bit strings (:class:`bytes`). However, Unicode strings " +"and 8-bit strings cannot be mixed: that is, you cannot match a Unicode " +"string with a byte pattern or vice-versa; similarly, when asking for a " +"substitution, the replacement string must be of the same type as both the " +"pattern and the search string." +msgstr "" +"Les motifs, comme les chaînes, à analyser peuvent aussi bien être des " +"chaînes Unicode (:class:`str`) que des chaînes 8-bits (:class:`bytes`). " +"Cependant, les chaînes Unicode et 8-bits ne peuvent pas être mélangées : " +"c’est à dire que vous ne pouvez pas analyser une chaîne Unicode avec un " +"motif 8-bit, et inversement ; de même, lors d'une substitution, la chaîne de " +"remplacement doit être du même type que le motif et la chaîne analysée." + +#: ../Doc/library/re.rst:24 +msgid "" +"Regular expressions use the backslash character (``'\\'``) to indicate " +"special forms or to allow special characters to be used without invoking " +"their special meaning. This collides with Python's usage of the same " +"character for the same purpose in string literals; for example, to match a " +"literal backslash, one might have to write ``'\\\\\\\\'`` as the pattern " +"string, because the regular expression must be ``\\\\``, and each backslash " +"must be expressed as ``\\\\`` inside a regular Python string literal." +msgstr "" +"Les expressions rationnelles utilisent le caractère *backslash* (``'\\'``) " +"pour indiquer des formes spéciales ou permettre d'utiliser des caractères " +"spéciaux sans en invoquer le sens. Cela entre en conflit avec l'utilisation " +"en Python du même caractère pour la même raison dans les chaînes " +"littérales ; par exemple, pour rechercher un *backslash* littéral il " +"faudrait écrire ``'\\\\\\\\'`` comme motif, parce que l'expression " +"rationnelle devrait être ``\\\\`` et chaque *backslash* doit être représenté " +"par ``\\\\`` au sein des chaînes littérales Python." + +#: ../Doc/library/re.rst:33 +msgid "" +"The solution is to use Python's raw string notation for regular expression " +"patterns; backslashes are not handled in any special way in a string literal " +"prefixed with ``'r'``. So ``r\"\\n\"`` is a two-character string containing " +"``'\\'`` and ``'n'``, while ``\"\\n\"`` is a one-character string containing " +"a newline. Usually patterns will be expressed in Python code using this raw " +"string notation." +msgstr "" +"La solution est d'utiliser la notation des chaînes brutes en Python pour les " +"expressions rationnelles ; Les *backslashs* ne provoquent aucun traitement " +"spécifique dans les chaînes littérales préfixées par ``'r'``. Ainsi, ``r\"\\n" +"\"`` est une chaîne de deux caractères contenant ``'\\'`` et ``'n'``, tandis " +"que ``\"\\n\"`` est une chaîne contenant un unique caractère : un saut de " +"ligne. Généralement, les motifs seront exprimés en Python à l'aide de " +"chaînes brutes." + +#: ../Doc/library/re.rst:40 +msgid "" +"It is important to note that most regular expression operations are " +"available as module-level functions and methods on :ref:`compiled regular " +"expressions `. The functions are shortcuts that don't require " +"you to compile a regex object first, but miss some fine-tuning parameters." +msgstr "" +"Il est important de noter que la plupart des opérations sur les expressions " +"rationnelles sont disponibles comme fonctions au niveau du module et comme " +"méthodes des :ref:`expressions rationnelles compilées `. Les " +"fonctions sont des raccourcis qui ne vous obligent pas à d'abord compiler un " +"objet *regex*, mais auxquelles manquent certains paramètres de configuration " +"fine." + +#: ../Doc/library/re.rst:48 +msgid "" +"The third-party `regex `_ module, which has " +"an API compatible with the standard library :mod:`re` module, but offers " +"additional functionality and a more thorough Unicode support." +msgstr "" +"Le module tiers `regex `_, dont l'interface " +"est compatible avec le module :mod:`re` de la bibliothèque standard, mais " +"offre des fonctionnalités additionnelles et une meilleure gestion de " +"l'Unicode." + +#: ../Doc/library/re.rst:56 +msgid "Regular Expression Syntax" +msgstr "Syntaxe des expressions rationnelles" + +#: ../Doc/library/re.rst:58 +msgid "" +"A regular expression (or RE) specifies a set of strings that matches it; the " +"functions in this module let you check if a particular string matches a " +"given regular expression (or if a given regular expression matches a " +"particular string, which comes down to the same thing)." +msgstr "" +"Une expression rationnelle (*regular expression* ou *RE*) spécifie un " +"ensemble de chaînes de caractères qui lui correspondent ; les fonctions de " +"ce module vous permettent de vérifier si une chaîne particulière correspond " +"à une expression rationnelle donnée (ou si un expression rationnelle donnée " +"correspond à une chaîne particulière, ce qui revient à la même chose)." + +#: ../Doc/library/re.rst:63 +msgid "" +"Regular expressions can be concatenated to form new regular expressions; if " +"*A* and *B* are both regular expressions, then *AB* is also a regular " +"expression. In general, if a string *p* matches *A* and another string *q* " +"matches *B*, the string *pq* will match AB. This holds unless *A* or *B* " +"contain low precedence operations; boundary conditions between *A* and *B*; " +"or have numbered group references. Thus, complex expressions can easily be " +"constructed from simpler primitive expressions like the ones described " +"here. For details of the theory and implementation of regular expressions, " +"consult the Friedl book [Frie09]_, or almost any textbook about compiler " +"construction." +msgstr "" +"Les expressions rationnelles peuvent être concaténées pour former de " +"nouvelles expressions : si *A* et *B* sont deux expressions rationnelles, " +"alors *AB* est aussi une expression rationnelle. En général, si une chaîne " +"*p* valide *A* et qu'une autre chaîne *q* valide *B*, la chaîne *pq* " +"validera AB. Cela est vrai tant que *A* et *B* ne contiennent pas " +"d'opérations de priorité ; de conditions de frontière entre *A* et *B* ; ou " +"de références vers des groupes numérotés. Ainsi, des expressions complexes " +"peuvent facilement être construites depuis de plus simples expressions " +"primitives comme celles décrites ici. Pour plus de détails sur la théorie et " +"l'implémentation des expressions rationnelles, consultez le livre de Friedl " +"[Frie09]_, ou à peu près n'importe quel livre dédié à la construction de " +"compilateurs." + +#: ../Doc/library/re.rst:73 +msgid "" +"A brief explanation of the format of regular expressions follows. For " +"further information and a gentler presentation, consult the :ref:`regex-" +"howto`." +msgstr "" +"Une brève explication sur le format des expressions rationnelles suit. Pour " +"de plus amples informations et une présentation plus simple, référez-vous " +"au :ref:`regex-howto`." + +#: ../Doc/library/re.rst:76 +msgid "" +"Regular expressions can contain both special and ordinary characters. Most " +"ordinary characters, like ``'A'``, ``'a'``, or ``'0'``, are the simplest " +"regular expressions; they simply match themselves. You can concatenate " +"ordinary characters, so ``last`` matches the string ``'last'``. (In the " +"rest of this section, we'll write RE's in ``this special style``, usually " +"without quotes, and strings to be matched ``'in single quotes'``.)" +msgstr "" +"Les expressions rationnelles peuvent contenir à la fois des caractères " +"spéciaux et ordinaires. Les plus ordinaires, comme ``'A'``, ``'a'`` ou " +"``'0'`` sont les expressions rationnelles les plus simples : elles " +"correspondent simplement à elles-mêmes. Vous pouvez concaténer des " +"caractères ordinaires, ainsi ``last`` correspond à la chaîne ``'last'``. " +"(Dans la suite de cette section, nous écrirons les expressions rationnelles " +"dans ``ce style spécifique``, généralement sans guillemets, et les chaînes à " +"tester ``'entourées de simples guillemets'``.)" + +#: ../Doc/library/re.rst:83 +msgid "" +"Some characters, like ``'|'`` or ``'('``, are special. Special characters " +"either stand for classes of ordinary characters, or affect how the regular " +"expressions around them are interpreted." +msgstr "" +"Certains caractères, comme ``'|'`` ou ``'('``, sont spéciaux. Des caractères " +"spéciaux peuvent aussi exister pour les classes de caractères ordinaires, ou " +"affecter comment les expressions rationnelles autour d'eux seront " +"interprétées." + +#: ../Doc/library/re.rst:87 +msgid "" +"Repetition qualifiers (``*``, ``+``, ``?``, ``{m,n}``, etc) cannot be " +"directly nested. This avoids ambiguity with the non-greedy modifier suffix " +"``?``, and with other modifiers in other implementations. To apply a second " +"repetition to an inner repetition, parentheses may be used. For example, the " +"expression ``(?:a{6})*`` matches any multiple of six ``'a'`` characters." +msgstr "" +"Les caractères de répétition (``*``, ``+``, ``?``, ``{m,n}``, etc.) ne " +"peuvent être directement imbriqués. Cela empêche l'ambiguïté avec le suffixe " +"modificateur non gourmand ``?`` et avec les autres modificateurs dans " +"d'autres implémentations. Pour appliquer une seconde répétition à une " +"première, des parenthèses peuvent être utilisées. Par exemple, l'expression " +"``(?:a{6})*`` valide toutes les chaînes composées d'un nombre de caractères " +"``'a'`` multiple de six." + +#: ../Doc/library/re.rst:94 +msgid "The special characters are:" +msgstr "Les caractères spéciaux sont :" + +#: ../Doc/library/re.rst:101 ../Doc/library/re.rst:1404 +msgid "``.``" +msgstr "``.``" + +#: ../Doc/library/re.rst:99 +msgid "" +"(Dot.) In the default mode, this matches any character except a newline. " +"If the :const:`DOTALL` flag has been specified, this matches any character " +"including a newline." +msgstr "" +"(Point.) Dans le mode par défaut, il valide tout caractère à l'exception du " +"saut de ligne. Si l'option :const:`DOTALL` a été spécifiée, il valide tout " +"caractère, saut de ligne compris." + +#: ../Doc/library/re.rst:107 +msgid "``^``" +msgstr "``^``" + +#: ../Doc/library/re.rst:106 +msgid "" +"(Caret.) Matches the start of the string, and in :const:`MULTILINE` mode " +"also matches immediately after each newline." +msgstr "" +"(Accent circonflexe.) Valide le début d'une chaîne de caractères, ainsi que " +"ce qui suit chaque saut de ligne en mode :const:`MULTILINE`." + +#: ../Doc/library/re.rst:118 +msgid "``$``" +msgstr "``$``" + +#: ../Doc/library/re.rst:112 +msgid "" +"Matches the end of the string or just before the newline at the end of the " +"string, and in :const:`MULTILINE` mode also matches before a newline. " +"``foo`` matches both 'foo' and 'foobar', while the regular expression ``foo" +"$`` matches only 'foo'. More interestingly, searching for ``foo.$`` in " +"``'foo1\\nfoo2\\n'`` matches 'foo2' normally, but 'foo1' in :const:" +"`MULTILINE` mode; searching for a single ``$`` in ``'foo\\n'`` will find two " +"(empty) matches: one just before the newline, and one at the end of the " +"string." +msgstr "" +"Valide la fin d'une chaîne de caractères, ou juste avant le saut de ligne à " +"la fin de la chaîne, ainsi qu'avant chaque saut de ligne en mode :const:" +"`MULTILINE`. ``foo`` valide à la fois *foo* et *foobar*, tandis que " +"l'expression rationnelle ``foo$`` ne correspond qu'à ``'foo'``. Plus " +"intéressant, chercher ``foo.$`` dans ``'foo1\\nfoo2\\n'`` trouve normalement " +"``'foo2'``, mais ``'foo1'`` en mode :const:`MULTILINE` ; chercher un simple " +"``$`` dans ``'foo\\n'`` trouvera deux correspondances (vides) : une juste " +"avant le saut de ligne, et une à la fin de la chaîne." + +#: ../Doc/library/re.rst:125 +msgid "``*``" +msgstr "``*``" + +#: ../Doc/library/re.rst:123 +msgid "" +"Causes the resulting RE to match 0 or more repetitions of the preceding RE, " +"as many repetitions as are possible. ``ab*`` will match 'a', 'ab', or 'a' " +"followed by any number of 'b's." +msgstr "" +"Fait valider par l'expression rationnelle résultante 0 répétition ou plus de " +"l'expression qui précède, avec autant de répétitions que possible. ``ab*`` " +"validera 'a', 'ab' ou 'a' suivi de n'importe quel nombre de 'b'." + +#: ../Doc/library/re.rst:132 +msgid "``+``" +msgstr "``+``" + +#: ../Doc/library/re.rst:130 +msgid "" +"Causes the resulting RE to match 1 or more repetitions of the preceding RE. " +"``ab+`` will match 'a' followed by any non-zero number of 'b's; it will not " +"match just 'a'." +msgstr "" +"Fait valider par l'expression rationnelle résultante 1 répétition ou plus de " +"l'expression qui précède. ``ab+`` validera 'a' suivi de n'importe quel " +"nombre non nul de 'b' ; cela ne validera pas la chaîne 'a'." + +#: ../Doc/library/re.rst:138 +msgid "``?``" +msgstr "``?``" + +#: ../Doc/library/re.rst:137 +msgid "" +"Causes the resulting RE to match 0 or 1 repetitions of the preceding RE. " +"``ab?`` will match either 'a' or 'ab'." +msgstr "" +"Fait valider par l'expression rationnelle résultante 0 ou 1 répétition de " +"l'expression qui précède. ``ab?`` correspondra à 'a' ou 'ab'." + +#: ../Doc/library/re.rst:152 +msgid "``*?``, ``+?``, ``??``" +msgstr "``*?``, ``+?``, ``??``" + +#: ../Doc/library/re.rst:146 +msgid "" +"The ``'*'``, ``'+'``, and ``'?'`` qualifiers are all :dfn:`greedy`; they " +"match as much text as possible. Sometimes this behaviour isn't desired; if " +"the RE ``<.*>`` is matched against ``' b '``, it will match the entire " +"string, and not just ``''``. Adding ``?`` after the qualifier makes it " +"perform the match in :dfn:`non-greedy` or :dfn:`minimal` fashion; as *few* " +"characters as possible will be matched. Using the RE ``<.*?>`` will match " +"only ``''``." +msgstr "" +"Les qualificateurs ``'*'``, ``'+'`` et ``'?'`` sont tous :dfn:`greedy` " +"(gourmands) ; ils valident autant de texte que possible. Parfois ce " +"comportement n'est pas désiré ; si l'expression rationnelle ``<.*>`` est " +"testée avec la chaîne ``' b '``, cela correspondra à la chaîne " +"entière, et non juste à ``''``. Ajouter ``?`` derrière le qualificateur " +"lui fait réaliser l'opération de façon :dfn:`non-greedy` (ou :dfn:" +"`minimal`) ; le *moins* de caractères possibles seront validés. Utiliser " +"l'expression rationnelle ``<.*?>`` validera uniquement ``''``." + +#: ../Doc/library/re.rst:160 +msgid "``{m}``" +msgstr "``{m}``" + +#: ../Doc/library/re.rst:158 +msgid "" +"Specifies that exactly *m* copies of the previous RE should be matched; " +"fewer matches cause the entire RE not to match. For example, ``a{6}`` will " +"match exactly six ``'a'`` characters, but not five." +msgstr "" +"Spécifie qu'exactement *m* copies de l'expression rationnelle qui précède " +"devront être validées ; un nombre plus faible de correspondances empêche " +"l'expression entière de correspondre. Par exemple, ``a{6}`` correspondra " +"exactement à six caractères ``'a'``, mais pas à cinq." + +#: ../Doc/library/re.rst:169 +msgid "``{m,n}``" +msgstr "``{m,n}``" + +#: ../Doc/library/re.rst:163 +msgid "" +"Causes the resulting RE to match from *m* to *n* repetitions of the " +"preceding RE, attempting to match as many repetitions as possible. For " +"example, ``a{3,5}`` will match from 3 to 5 ``'a'`` characters. Omitting *m* " +"specifies a lower bound of zero, and omitting *n* specifies an infinite " +"upper bound. As an example, ``a{4,}b`` will match ``'aaaab'`` or a thousand " +"``'a'`` characters followed by a ``'b'``, but not ``'aaab'``. The comma may " +"not be omitted or the modifier would be confused with the previously " +"described form." +msgstr "" +"Fait valider par l'expression rationnelle résultante entre *m* et *n* " +"répétitions de l'expression qui précède, cherchant à en valider le plus " +"possible. Par exemple, ``a{3,5}`` validera entre 3 et 5 caractères " +"``'a'``. Omettre *m* revient à spécifier 0 comme borne inférieure, et " +"omettre *n* à avoir une borne supérieure infinie. Par exemple, ``a{4,}b`` " +"correspondra à ``'aaaab'`` ou à un millier de caractères ``'a'`` suivis d'un " +"``'b'``, mais pas à ``'aaab'``. La virgule ne doit pas être omise, auquel " +"cas le modificateur serait confondu avec la forme décrite précédemment." + +#: ../Doc/library/re.rst:176 +msgid "``{m,n}?``" +msgstr "``{m,n}?``" + +#: ../Doc/library/re.rst:172 +msgid "" +"Causes the resulting RE to match from *m* to *n* repetitions of the " +"preceding RE, attempting to match as *few* repetitions as possible. This is " +"the non-greedy version of the previous qualifier. For example, on the 6-" +"character string ``'aaaaaa'``, ``a{3,5}`` will match 5 ``'a'`` characters, " +"while ``a{3,5}?`` will only match 3 characters." +msgstr "" +"Fait valider par l'expression rationnelle résultante entre *m* et *n* " +"répétitions de l'expression qui précède, cherchant à en valider le moins " +"possible. Il s'agit de la version non gourmande du précédent qualificateur. " +"Par exemple, dans la chaîne de 6 caractères ``'aaaaaa'``, ``a{3,5}`` " +"trouvera 5 caractères ``'a'``, alors que ``a{3,5}?`` n'en trouvera que 3." + +#: ../Doc/library/re.rst:191 +msgid "``\\``" +msgstr "``\\``" + +#: ../Doc/library/re.rst:181 +msgid "" +"Either escapes special characters (permitting you to match characters like " +"``'*'``, ``'?'``, and so forth), or signals a special sequence; special " +"sequences are discussed below." +msgstr "" +"Échappe les caractères spéciaux (permettant d’identifier des caractères " +"comme ``'*'``, ``'?'`` et autres) ou signale une séquence spéciale ; les " +"séquences spéciales sont décrites ci-dessous." + +#: ../Doc/library/re.rst:185 +msgid "" +"If you're not using a raw string to express the pattern, remember that " +"Python also uses the backslash as an escape sequence in string literals; if " +"the escape sequence isn't recognized by Python's parser, the backslash and " +"subsequent character are included in the resulting string. However, if " +"Python would recognize the resulting sequence, the backslash should be " +"repeated twice. This is complicated and hard to understand, so it's highly " +"recommended that you use raw strings for all but the simplest expressions." +msgstr "" +"Si vous n'utilisez pas de chaînes brutes pour exprimer le motif, souvenez-" +"vous que Python utilise aussi le *backslash* comme une séquence " +"d'échappement dans les chaînes littérales ; si la séquence d'échappement " +"n'est pas reconnue par l'interpréteur Python, le *backslash* et les " +"caractères qui le suivent sont inclus dans la chaîne renvoyée. Cependant, si " +"Python reconnait la séquence, le *backslash* doit être doublé (pour ne plus " +"être reconnu). C'est assez compliqué et difficile à comprendre, c'est " +"pourquoi il est hautement recommandé d'utiliser des chaînes brutes pour tout " +"sauf les expressions les plus simples." + +#: ../Doc/library/re.rst:251 +msgid "``[]``" +msgstr "``[]``" + +#: ../Doc/library/re.rst:197 +msgid "Used to indicate a set of characters. In a set:" +msgstr "Utilisé pour indiquer un ensemble de caractères. Dans un ensemble :" + +#: ../Doc/library/re.rst:199 +msgid "" +"Characters can be listed individually, e.g. ``[amk]`` will match ``'a'``, " +"``'m'``, or ``'k'``." +msgstr "" +"Les caractères peuvent être listés individuellement, e.g. ``[amk]`` " +"correspondra à ``'a'``, ``'m'`` ou ``'k'``." + +#: ../Doc/library/re.rst:204 +msgid "" +"Ranges of characters can be indicated by giving two characters and " +"separating them by a ``'-'``, for example ``[a-z]`` will match any lowercase " +"ASCII letter, ``[0-5][0-9]`` will match all the two-digits numbers from " +"``00`` to ``59``, and ``[0-9A-Fa-f]`` will match any hexadecimal digit. If " +"``-`` is escaped (e.g. ``[a\\-z]``) or if it's placed as the first or last " +"character (e.g. ``[-a]`` or ``[a-]``), it will match a literal ``'-'``." +msgstr "" +"Des intervalles de caractères peuvent être indiqués en donnant deux " +"caractères et les séparant par un ``'-'``, par exemple ``[a-z]`` " +"correspondra à toute lettre minuscule *ASCII*, ``[0-5][0-9]`` à tous nombres " +"de deux chiffres entre ``00` et ``59``, et ``[0-9A-Fa-f]`` correspondra à " +"n'importe quel chiffre hexadécimal. Si ``'-'`` est échappé (``[a\\-z]``) ou " +"s'il est placé comme premier ou dernier caractère (e.g. ``[-a]`` ou " +"``[a-]``), il correspondra à un ``'-'`` littéral." + +#: ../Doc/library/re.rst:211 +msgid "" +"Special characters lose their special meaning inside sets. For example, " +"``[(+*)]`` will match any of the literal characters ``'('``, ``'+'``, " +"``'*'``, or ``')'``." +msgstr "" +"Les caractères spéciaux perdent leur sens à l'intérieur des ensembles. Par " +"exemple, ``[(+*)]`` validera chacun des caractères littéraux ``'('``, " +"``'+'``, ``'*'`` ou ``')'``." + +#: ../Doc/library/re.rst:217 +msgid "" +"Character classes such as ``\\w`` or ``\\S`` (defined below) are also " +"accepted inside a set, although the characters they match depends on " +"whether :const:`ASCII` or :const:`LOCALE` mode is in force." +msgstr "" +"Les classes de caractères telles que ``\\w`` ou ``\\S`` (définies ci-" +"dessous) sont aussi acceptées à l'intérieur d'un ensemble, bien que les " +"caractères correspondant dépendent de quel mode est actif entre :const:" +"`ASCII` et :const:`LOCALE`." + +#: ../Doc/library/re.rst:223 +msgid "" +"Characters that are not within a range can be matched by :dfn:" +"`complementing` the set. If the first character of the set is ``'^'``, all " +"the characters that are *not* in the set will be matched. For example, " +"``[^5]`` will match any character except ``'5'``, and ``[^^]`` will match " +"any character except ``'^'``. ``^`` has no special meaning if it's not the " +"first character in the set." +msgstr "" +"Les caractères qui ne sont pas dans un intervalle peuvent être trouvés avec " +"l'ensemble complémentaire (:dfn:`complementing`). Si le premier caractère de " +"l'ensemble est ``'^'``, tous les caractères qui *ne sont pas* dans " +"l'ensemble seront validés. Par exemple, ``[^5]`` correspondra à tout " +"caractère autre que ``'5'`` et ``[^^]`` validera n'importe quel caractère " +"excepté ``'^'``. ``^`` n'a pas de sens particulier s'il n'est pas le premier " +"caractère de l'ensemble." + +#: ../Doc/library/re.rst:230 +msgid "" +"To match a literal ``']'`` inside a set, precede it with a backslash, or " +"place it at the beginning of the set. For example, both ``[()[\\]{}]`` and " +"``[]()[{}]`` will both match a parenthesis." +msgstr "" +"Pour insérer un ``']'`` littéral dans un ensemble, il faut le précéder d'un " +"*backslash* ou le placer au début de l'ensemble. Par exemple, ``[()[\\]{}]`` " +"et ``[]()[{}]`` vont tous deux correspondre à une parenthèse, un crochet ou " +"une accolade." + +#: ../Doc/library/re.rst:239 +msgid "" +"Support of nested sets and set operations as in `Unicode Technical Standard " +"#18`_ might be added in the future. This would change the syntax, so to " +"facilitate this change a :exc:`FutureWarning` will be raised in ambiguous " +"cases for the time being. That includes sets starting with a literal ``'['`` " +"or containing literal character sequences ``'--'``, ``'&&'``, ``'~~'``, and " +"``'||'``. To avoid a warning escape them with a backslash." +msgstr "" +"Le support des ensembles inclus l'un dans l'autre et les opérations " +"d'ensemble comme dans `Unicode Technical Standard #18`_ pourrait être ajouté " +"par la suite. Ceci changerait la syntaxe, donc pour faciliter ce changement, " +"une exception :exc:`FutureWarning` sera levée dans les cas ambigus pour le " +"moment. Ceci inclut les ensembles commençant avec le caractère ``'['`` ou " +"contenant les séquences de caractères ``'--'``, ``'&&'``, ``'~~'`` et " +"``'||'``. Pour éviter un message d'avertissement, échapper les séquences " +"avec le caractère antislash (``\"\\\"``)." + +#: ../Doc/library/re.rst:249 +msgid "" +":exc:`FutureWarning` is raised if a character set contains constructs that " +"will change semantically in the future." +msgstr "" +"L'exception :exc:`FutureWarning` est levée si un ensemble de caractères " +"contient une construction dont la sémantique changera dans le futur." + +#: ../Doc/library/re.rst:264 +msgid "``|``" +msgstr "``|``" + +#: ../Doc/library/re.rst:256 +msgid "" +"``A|B``, where *A* and *B* can be arbitrary REs, creates a regular " +"expression that will match either *A* or *B*. An arbitrary number of REs " +"can be separated by the ``'|'`` in this way. This can be used inside groups " +"(see below) as well. As the target string is scanned, REs separated by " +"``'|'`` are tried from left to right. When one pattern completely matches, " +"that branch is accepted. This means that once *A* matches, *B* will not be " +"tested further, even if it would produce a longer overall match. In other " +"words, the ``'|'`` operator is never greedy. To match a literal ``'|'``, " +"use ``\\|``, or enclose it inside a character class, as in ``[|]``." +msgstr "" +"``A|B``, où *A* et *B* peuvent être deux expressions rationnelles " +"arbitraires, crée une expression rationnelle qui validera soit *A* soit " +"*B*. Un nombre arbitraire d'expressions peuvent être séparées de cette " +"façon par des ``'|'``. Cela peut aussi être utilisé au sein de groupes " +"(voir ci-dessous). Quand une chaîne cible est analysée, les expressions " +"séparées par ``'|'`` sont essayées de la gauche vers la droite. Quand un " +"motif correspond complètement, cette branche est acceptée. Cela signifie " +"qu'une fois que *A* correspond, *B* ne sera pas testée plus loin, même si " +"elle pourrait provoquer une plus ample correspondance. En d'autres termes, " +"l'opérateur ``'|'`` n'est jamais gourmand. Pour valider un ``'|'`` " +"littéral, utilisez ``\\|``, ou enveloppez-le dans une classe de caractères, " +"comme ``[|]``." + +#: ../Doc/library/re.rst:274 +msgid "``(...)``" +msgstr "``(...)``" + +#: ../Doc/library/re.rst:270 +msgid "" +"Matches whatever regular expression is inside the parentheses, and indicates " +"the start and end of a group; the contents of a group can be retrieved after " +"a match has been performed, and can be matched later in the string with the " +"``\\number`` special sequence, described below. To match the literals " +"``'('`` or ``')'``, use ``\\(`` or ``\\)``, or enclose them inside a " +"character class: ``[(]``, ``[)]``." +msgstr "" +"Valide n'importe quelle expression rationnelle comprise entre les " +"parenthèses, et indique le début et la fin d'un groupe ; le contenu d'un " +"groupe peut être récupéré après qu'une analyse a été effectuée et peut être " +"réutilisé plus loin dans la chaîne avec une séquence spéciale ``\\number``, " +"décrite ci-dessous. Pour écrire des ``'('`` ou ``')'`` littéraux, utilisez " +"``\\(`` ou ``\\)``, ou enveloppez-les dans une classe de caractères : " +"``[(]``, ``[)]``." + +#: ../Doc/library/re.rst:283 +msgid "``(?...)``" +msgstr "``(?...)``" + +#: ../Doc/library/re.rst:279 +msgid "" +"This is an extension notation (a ``'?'`` following a ``'('`` is not " +"meaningful otherwise). The first character after the ``'?'`` determines " +"what the meaning and further syntax of the construct is. Extensions usually " +"do not create a new group; ``(?P...)`` is the only exception to this " +"rule. Following are the currently supported extensions." +msgstr "" +"Il s'agit d'une notation pour les extensions (un ``'?'`` suivant une ``'('`` " +"n'a pas de sens autrement). Le premier caractère après le ``'?'`` détermine " +"quel sens donner à l'expression. Les extensions ne créent généralement pas " +"de nouveaux groupes ; ``(?P...)`` est la seule exception à la règle. " +"Retrouvez ci-dessous la liste des extensions actuellement supportées." + +#: ../Doc/library/re.rst:297 +msgid "``(?aiLmsux)``" +msgstr "``(?aiLmsux)``" + +#: ../Doc/library/re.rst:286 +msgid "" +"(One or more letters from the set ``'a'``, ``'i'``, ``'L'``, ``'m'``, " +"``'s'``, ``'u'``, ``'x'``.) The group matches the empty string; the letters " +"set the corresponding flags: :const:`re.A` (ASCII-only matching), :const:`re." +"I` (ignore case), :const:`re.L` (locale dependent), :const:`re.M` (multi-" +"line), :const:`re.S` (dot matches all), :const:`re.U` (Unicode matching), " +"and :const:`re.X` (verbose), for the entire regular expression. (The flags " +"are described in :ref:`contents-of-module-re`.) This is useful if you wish " +"to include the flags as part of the regular expression, instead of passing a " +"*flag* argument to the :func:`re.compile` function. Flags should be used " +"first in the expression string." +msgstr "" +"(Une lettre ou plus de l'ensemble ``'a'``, ``'i'``, ``'L'``, ``'m'``, " +"``'s'``, ``'u'``, ``'x'``.) Le groupe valide la chaîne vide ; les lettres " +"activent les modes correspondant : :const:`re.A` (validation ASCII " +"seulement), :const:`re.I` (ignorer la casse)`, :const:`re.L` (dépendant de " +"la locale), :const:`re.M` (multi-ligne), :const:`re.S` (les points " +"correspondent à tous les caractères), :const:`re.U` (support d'Unicode) et :" +"const:`re.X` (verbeux), pour l'ensemble de l'expression rationnelle. (Les " +"options dans décrites dans la section :ref:`contents-of-module-re`.) C'est " +"utile si vous souhaitez préciser l'option dans l'expression rationnelle, " +"plutôt qu'en passant un argument *flag* à la fonction :func:`re.compile`. " +"Les options devraient être spécifiées en premier dans la chaîne de " +"l'expression." + +#: ../Doc/library/re.rst:305 +msgid "``(?:...)``" +msgstr "``(?:...)``" + +#: ../Doc/library/re.rst:302 +msgid "" +"A non-capturing version of regular parentheses. Matches whatever regular " +"expression is inside the parentheses, but the substring matched by the group " +"*cannot* be retrieved after performing a match or referenced later in the " +"pattern." +msgstr "" +"Une version sans capture des parenthèses habituelles. Valide n'importe " +"quelle expression rationnelle à l'intérieur des parenthèses, mais la sous-" +"chaîne correspondant au groupe *ne peut pas* être récupérée après l'analyse " +"ou être référencée plus loin dans le motif." + +#: ../Doc/library/re.rst:331 +msgid "``(?aiLmsux-imsx:...)``" +msgstr "``(?aiLmsux-imsx:...)``" + +#: ../Doc/library/re.rst:308 +msgid "" +"(Zero or more letters from the set ``'a'``, ``'i'``, ``'L'``, ``'m'``, " +"``'s'``, ``'u'``, ``'x'``, optionally followed by ``'-'`` followed by one or " +"more letters from the ``'i'``, ``'m'``, ``'s'``, ``'x'``.) The letters set " +"or remove the corresponding flags: :const:`re.A` (ASCII-only matching), :" +"const:`re.I` (ignore case), :const:`re.L` (locale dependent), :const:`re.M` " +"(multi-line), :const:`re.S` (dot matches all), :const:`re.U` (Unicode " +"matching), and :const:`re.X` (verbose), for the part of the expression. (The " +"flags are described in :ref:`contents-of-module-re`.)" +msgstr "" +"(Zéro lettres ou plus de l'ensemble ``'a'``, ``'i'``, ``'L'``, ``'m'``, " +"``'s'``, ``'u'``, ``'x'``, optionnellement suivies par ``'-'`` puis ``'i'``, " +"``'m'``, ``'s'``, ``'x'``.) Les lettres activent ou désactivent les options " +"correspondantes : :const:`re.A` (ASCII exclusivement), :const:`re.I` " +"(ignorer la casse), :const:`re.L` (respecte les paramètres régionaux), :" +"const:`re.M` (multi-ligne), :const:`re.S` (les points correspondent à tous " +"les caractères), :const:`re.U` (Unicode) et :const:`re.X` (verbeux), pour " +"cette partie de l'expression. (Les options sont décrites dans la section :" +"ref:`contents-of-module-re`.)" + +#: ../Doc/library/re.rst:318 +msgid "" +"The letters ``'a'``, ``'L'`` and ``'u'`` are mutually exclusive when used as " +"inline flags, so they can't be combined or follow ``'-'``. Instead, when " +"one of them appears in an inline group, it overrides the matching mode in " +"the enclosing group. In Unicode patterns ``(?a:...)`` switches to ASCII-" +"only matching, and ``(?u:...)`` switches to Unicode matching (default). In " +"byte pattern ``(?L:...)`` switches to locale depending matching, and ``(?" +"a:...)`` switches to ASCII-only matching (default). This override is only in " +"effect for the narrow inline group, and the original matching mode is " +"restored outside of the group." +msgstr "" +"Les caractères ``'a'``, ``'L'`` et ``'u'`` sont mutuellement exclusifs quand " +"ils sont utilisés comme des options dans le motif, ils ne peuvent donc ni " +"être combinés, ni suivre le caractère ``'-'``. Quand l'un d'entre eux " +"apparaît dans un groupe, il modifie le mode pour ce groupe. Dans les motifs " +"Unicode l'option ``(?a:...)`` bascule en mode ASCII-uniquement, et ``(?" +"u:...)`` bascule en mode Unicode (le comportement par défaut). Dans les " +"motifs de `byte`, ``(?L:...)`` fait en sorte de respecter les paramètres " +"régionaux, et ``(?a:...)`` bascule en mode ASCII Uniquement (le comportement " +"par défaut). Ces modifications ne concernent que les groupes dans lesquelles " +"elles sont, le mode précédent est donc rétabli à la sortie du groupe." + +#: ../Doc/library/re.rst:330 +msgid "The letters ``'a'``, ``'L'`` and ``'u'`` also can be used in a group." +msgstr "" +"Les lettres ``'a'``, ``'L'`` et ``'u'`` peuvent aussi être utilisées dans un " +"groupe." + +#: ../Doc/library/re.rst:358 +msgid "``(?P...)``" +msgstr "``(?P...)``" + +#: ../Doc/library/re.rst:336 +msgid "" +"Similar to regular parentheses, but the substring matched by the group is " +"accessible via the symbolic group name *name*. Group names must be valid " +"Python identifiers, and each group name must be defined only once within a " +"regular expression. A symbolic group is also a numbered group, just as if " +"the group were not named." +msgstr "" +"Similaires aux parenthèses habituelles, mais la sous-chaîne validée par le " +"groupe est accessible via le nom *name* du groupe symbolique. Les noms de " +"groupes doivent être des identifiants Python valides, et chaque nom de " +"groupe ne doit être défini qu'une seule fois dans une expression " +"rationnelle. Un groupe symbolique est aussi un groupe numéroté, de la même " +"manière que si le groupe n'était pas nommé." + +#: ../Doc/library/re.rst:342 +msgid "" +"Named groups can be referenced in three contexts. If the pattern is ``(?" +"P['\"]).*?(?P=quote)`` (i.e. matching a string quoted with either " +"single or double quotes):" +msgstr "" +"Les groupes nommés peuvent être référencés dans trois contextes. Si le motif " +"est ``(?P['\"]).*?(?P=quote)`` (i.e. correspondant à une chaîne " +"entourée de guillemets simples ou doubles) :" + +#: ../Doc/library/re.rst:347 +msgid "Context of reference to group \"quote\"" +msgstr "Contexte de référence au groupe *quote*" + +#: ../Doc/library/re.rst:347 +msgid "Ways to reference it" +msgstr "Manières de le référencer" + +#: ../Doc/library/re.rst:349 +msgid "in the same pattern itself" +msgstr "lui-même dans le même motif" + +#: ../Doc/library/re.rst:349 +msgid "``(?P=quote)`` (as shown)" +msgstr "``(?P=quote)`` (comme vu)" + +#: ../Doc/library/re.rst:350 ../Doc/library/re.rst:357 +msgid "``\\1``" +msgstr "``\\1``" + +#: ../Doc/library/re.rst:352 +msgid "when processing match object *m*" +msgstr "en analysant l'objet résultat *m*" + +#: ../Doc/library/re.rst:352 +msgid "``m.group('quote')``" +msgstr "``m.group('quote')``" + +#: ../Doc/library/re.rst:353 +msgid "``m.end('quote')`` (etc.)" +msgstr "``m.end('quote')`` (etc.)" + +#: ../Doc/library/re.rst:355 +msgid "in a string passed to the *repl* argument of ``re.sub()``" +msgstr "dans une chaîne passée à l'argument *repl* de ``re.sub()``" + +#: ../Doc/library/re.rst:355 +msgid "``\\g``" +msgstr "``\\g``" + +#: ../Doc/library/re.rst:356 +msgid "``\\g<1>``" +msgstr "``\\g<1>``" + +#: ../Doc/library/re.rst:364 +msgid "``(?P=name)``" +msgstr "``(?P=name)``" + +#: ../Doc/library/re.rst:363 +msgid "" +"A backreference to a named group; it matches whatever text was matched by " +"the earlier group named *name*." +msgstr "" +"Une référence arrière à un groupe nommé ; elle correspond à n'importe quel " +"texte validé plus tôt par le groupe nommé *name*." + +#: ../Doc/library/re.rst:369 +msgid "``(?#...)``" +msgstr "``(?#...)``" + +#: ../Doc/library/re.rst:369 +msgid "A comment; the contents of the parentheses are simply ignored." +msgstr "Un commentaire ; le contenu des parenthèses est simplement ignoré." + +#: ../Doc/library/re.rst:376 +msgid "``(?=...)``" +msgstr "``(?=...)``" + +#: ../Doc/library/re.rst:374 +msgid "" +"Matches if ``...`` matches next, but doesn't consume any of the string. " +"This is called a :dfn:`lookahead assertion`. For example, ``Isaac (?" +"=Asimov)`` will match ``'Isaac '`` only if it's followed by ``'Asimov'``." +msgstr "" +"Valide si ``...`` valide la suite, mais ne consomme rien de la chaîne. On " +"appelle cela une assertion :dfn:`lookahead`. Par exemple, ``Isaac (?" +"=Asimov)`` correspondra à la chaîne ``'Isaac' `` seulement si elle est " +"suivie par ``'Asimov'``." + +#: ../Doc/library/re.rst:383 +msgid "``(?!...)``" +msgstr "``(?!...)``" + +#: ../Doc/library/re.rst:381 +msgid "" +"Matches if ``...`` doesn't match next. This is a :dfn:`negative lookahead " +"assertion`. For example, ``Isaac (?!Asimov)`` will match ``'Isaac '`` only " +"if it's *not* followed by ``'Asimov'``." +msgstr "" +"Valide si ``...`` ne valide pas la suite. C'est une assertion :dfn:" +"`negative lookahead`. Par exemple, ``Isaac (?!Asimov)`` correspondra à la " +"chaîne ``'Isaac '`` seulement si elle *n'est pas* suivie par ``'Asimov'``." + +#: ../Doc/library/re.rst:410 +msgid "``(?<=...)``" +msgstr "``(?<=...)``" + +#: ../Doc/library/re.rst:388 +msgid "" +"Matches if the current position in the string is preceded by a match for " +"``...`` that ends at the current position. This is called a :dfn:`positive " +"lookbehind assertion`. ``(?<=abc)def`` will find a match in ``'abcdef'``, " +"since the lookbehind will back up 3 characters and check if the contained " +"pattern matches. The contained pattern must only match strings of some fixed " +"length, meaning that ``abc`` or ``a|b`` are allowed, but ``a*`` and ``a{3,4}" +"`` are not. Note that patterns which start with positive lookbehind " +"assertions will not match at the beginning of the string being searched; you " +"will most likely want to use the :func:`search` function rather than the :" +"func:`match` function:" +msgstr "" +"Valide si la position courante dans la chaîne est précédée par une " +"correspondance sur ``...`` qui se termine à la position courante. On " +"appelle cela une :dfn:`positive lookbehind assertion`. ``(?<=abc)def`` " +"cherchera une correspondance dans ``'abcdef'``, puisque le *lookbehind** " +"mettra de côté 3 caractères et vérifiera que le motif contenu correspond. " +"Le motif ne devra correspondre qu'à des chaînes de taille fixe, cela veut " +"dire que ``abc`` ou ``a|b` sont autorisées, mais pas ``a*`` ou ``a{3,4}``. " +"Notez que les motifs qui commencent par des assertions *lookbehind* " +"positives ne peuvent pas correspondre au début de la chaîne analysée ; vous " +"préférerez sûrement utiliser la fonction :func:`search` plutôt que la " +"fonction :func:`match` :" + +#: ../Doc/library/re.rst:403 +msgid "This example looks for a word following a hyphen:" +msgstr "Cet exemple recherche un mot suivi d'un trait d'union :" + +#: ../Doc/library/re.rst:409 +msgid "Added support for group references of fixed length." +msgstr "Ajout du support des références aux groupes de taille fixe." + +#: ../Doc/library/re.rst:419 +msgid "``(?|$)`` is a poor email matching pattern, which will match with " +"``''`` as well as ``'user@host.com'``, but not with " +"``''``." +msgstr "" +"Essaiera de faire la correspondance avec ``yes-pattern`` si le groupe " +"indiqué par *id* ou *name* existe, et avec ``no-pattern`` s'il n'existe pas. " +"``no-pattern`` est optionnel et peut être omis. Par exemple, ``(<)?(\\w+@\\w" +"+(?:\\.\\w+)+)(?(1)>|$)`` est un motif simpliste pour identifier une adresse " +"courriel, qui validera ``''`` ainsi que ``'user@host.com'`` " +"mais pas ``''``." + +#: ../Doc/library/re.rst:430 +msgid "" +"The special sequences consist of ``'\\'`` and a character from the list " +"below. If the ordinary character is not an ASCII digit or an ASCII letter, " +"then the resulting RE will match the second character. For example, ``\\$`` " +"matches the character ``'$'``." +msgstr "" +"Les séquences spéciales sont composées de ``'\\'`` et d'un caractère de la " +"liste qui suit. Si le caractère ordinaire n'est pas un chiffre *ASCII* ou " +"une lettre *ASCII*, alors l'expression rationnelle résultante validera le " +"second caractère de la séquence. Par exemple, ``\\$`` correspond au " +"caractère ``'$'``." + +#: ../Doc/library/re.rst:445 +msgid "``\\number``" +msgstr "``\\number``" + +#: ../Doc/library/re.rst:438 +msgid "" +"Matches the contents of the group of the same number. Groups are numbered " +"starting from 1. For example, ``(.+) \\1`` matches ``'the the'`` or ``'55 " +"55'``, but not ``'thethe'`` (note the space after the group). This special " +"sequence can only be used to match one of the first 99 groups. If the first " +"digit of *number* is 0, or *number* is 3 octal digits long, it will not be " +"interpreted as a group match, but as the character with octal value " +"*number*. Inside the ``'['`` and ``']'`` of a character class, all numeric " +"escapes are treated as characters." +msgstr "" +"Correspond au contenu du groupe du même nombre. Les groupes sont numérotés à " +"partir de 1. Par exemple, ``(.+) \\1`` correspond à ``'the the'`` ou ``'55 " +"55'``, mais pas à ``'thethe'`` (notez l'espace après le groupe). Cette " +"séquence spéciale ne peut être utilisée que pour faire référence aux 99 " +"premiers groupes. Si le premier chiffre de *number* est 0, ou si *number* " +"est un nombre octal de 3 chiffres, il ne sera pas interprété comme une " +"référence à un groupe, mais comme le caractère à la valeur octale *number*. " +"À l'intérieur des ``'['`` et ``']'`` d'une classe de caractères, tous les " +"échappements numériques sont traités comme des caractères." + +#: ../Doc/library/re.rst:450 +msgid "``\\A``" +msgstr "``\\A``" + +#: ../Doc/library/re.rst:450 +msgid "Matches only at the start of the string." +msgstr "Correspond uniquement au début d'une chaîne de caractères." + +#: ../Doc/library/re.rst:466 +msgid "``\\b``" +msgstr "``\\b``" + +#: ../Doc/library/re.rst:455 +msgid "" +"Matches the empty string, but only at the beginning or end of a word. A word " +"is defined as a sequence of word characters. Note that formally, ``\\b`` is " +"defined as the boundary between a ``\\w`` and a ``\\W`` character (or vice " +"versa), or between ``\\w`` and the beginning/end of the string. This means " +"that ``r'\\bfoo\\b'`` matches ``'foo'``, ``'foo.'``, ``'(foo)'``, ``'bar foo " +"baz'`` but not ``'foobar'`` or ``'foo3'``." +msgstr "" +"Correspond à la chaîne vide, mais uniquement au début ou à la fin d'un mot. " +"Un mot est défini comme une séquence de \"caractères de mots\". Notez que " +"formellement, ``\\b`` est défini comme la liaison entre ``\\w`` et ``\\W`` " +"(et inversement), ou entre ``\\w`` et le début/fin d'un mot. Cela signifie " +"que ``r'\\bfoo\\b'`` validera ``'foo'``, ``'foo.'``, ``'(foo)'`` ou ``'bar " +"foo baz'`` mais pas ``'foobar'`` ou ``'foo3'``." + +#: ../Doc/library/re.rst:462 +msgid "" +"By default Unicode alphanumerics are the ones used in Unicode patterns, but " +"this can be changed by using the :const:`ASCII` flag. Word boundaries are " +"determined by the current locale if the :const:`LOCALE` flag is used. Inside " +"a character range, ``\\b`` represents the backspace character, for " +"compatibility with Python's string literals." +msgstr "" +"Les caractères alphanumériques Unicode sont utilisés par défaut dans les " +"motifs Unicode, mais cela peut être changé en utilisant l'option :const:" +"`ASCII`. Les délimitations de mots sont déterminées par la locale si " +"l'option :const:`LOCALE` est utilisée. À l'intérieur d'un intervalle de " +"caractères, ``\\b`` représente le caractère *backspace*, par compatibilité " +"avec les chaînes littérales Python." + +#: ../Doc/library/re.rst:477 +msgid "``\\B``" +msgstr "``\\B``" + +#: ../Doc/library/re.rst:471 +msgid "" +"Matches the empty string, but only when it is *not* at the beginning or end " +"of a word. This means that ``r'py\\B'`` matches ``'python'``, ``'py3'``, " +"``'py2'``, but not ``'py'``, ``'py.'``, or ``'py!'``. ``\\B`` is just the " +"opposite of ``\\b``, so word characters in Unicode patterns are Unicode " +"alphanumerics or the underscore, although this can be changed by using the :" +"const:`ASCII` flag. Word boundaries are determined by the current locale if " +"the :const:`LOCALE` flag is used." +msgstr "" +"Correspond à la chaîne vide, mais uniquement quand elle *n'est pas* au début " +"ou à la fin d'un mot. Cela signifie que ``r'py\\B'`` valide ``'python'``, " +"``'py3'`` ou ``'py2'``, mais pas ``'py'``, ``'py.'`` ou ``'py!'``. ``\\B`` " +"est simplement l'opposé de ``\\b``, donc les caractères de mots dans les " +"motifs Unicode sont les alphanumériques et tirets bas Unicode, bien que cela " +"puisse être changé avec l'option :const:`ASCII`. Les délimitations de mots " +"sont déterminées par la locale si l'option :const:`LOCALE` est utilisée." + +#: ../Doc/library/re.rst:489 +msgid "``\\d``" +msgstr "``\\d``" + +#: ../Doc/library/re.rst:486 ../Doc/library/re.rst:506 +#: ../Doc/library/re.rst:526 +msgid "For Unicode (str) patterns:" +msgstr "Pour les motifs Unicode (``str``) :" + +#: ../Doc/library/re.rst:483 +msgid "" +"Matches any Unicode decimal digit (that is, any character in Unicode " +"character category [Nd]). This includes ``[0-9]``, and also many other " +"digit characters. If the :const:`ASCII` flag is used only ``[0-9]`` is " +"matched." +msgstr "" +"Valide n'importe quel chiffre décimal Unicode (soit tout caractère Unicode " +"de catégorie [Nd]). Cela inclut ``[0-9]``, mais aussi bien d'autres " +"caractères de chiffres. Si l'option :const:`ASCII` est utilisée, seuls les " +"caractères de la classe ``[0-9]`` correspondront." + +#: ../Doc/library/re.rst:489 ../Doc/library/re.rst:510 +#: ../Doc/library/re.rst:532 +msgid "For 8-bit (bytes) patterns:" +msgstr "Pour les motifs 8-bit (bytes) :" + +#: ../Doc/library/re.rst:489 +msgid "Matches any decimal digit; this is equivalent to ``[0-9]``." +msgstr "Valide n'importe quel chiffre décimal ; équivalent à ``[0-9]``." + +#: ../Doc/library/re.rst:496 +msgid "``\\D``" +msgstr "``\\D``" + +#: ../Doc/library/re.rst:494 +msgid "" +"Matches any character which is not a decimal digit. This is the opposite of " +"``\\d``. If the :const:`ASCII` flag is used this becomes the equivalent of " +"``[^0-9]``." +msgstr "" +"Valide tout caractère qui n'est pas un chiffre décimal. C'est l'opposé de ``" +"\\d``. Si l'option :const:`ASCII` est utilisée, cela devient équivalent à " +"``[^0-9]``." + +#: ../Doc/library/re.rst:510 +msgid "``\\s``" +msgstr "``\\s``" + +#: ../Doc/library/re.rst:502 +msgid "" +"Matches Unicode whitespace characters (which includes ``[ \\t\\n\\r\\f" +"\\v]``, and also many other characters, for example the non-breaking spaces " +"mandated by typography rules in many languages). If the :const:`ASCII` flag " +"is used, only ``[ \\t\\n\\r\\f\\v]`` is matched." +msgstr "" +"Valide les caractères d'espacement Unicode (qui incluent ``[ \\t\\n\\r\\f" +"\\v]`` et bien d'autres, comme les espaces insécables requises par les " +"règles typographiques de beaucoup de langues). Si l'option :const:`ASCII` " +"est utilisée, seuls les caractères de la classe ``[ \\t\\n\\r\\f\\v]`` sont " +"validés." + +#: ../Doc/library/re.rst:509 +msgid "" +"Matches characters considered whitespace in the ASCII character set; this is " +"equivalent to ``[ \\t\\n\\r\\f\\v]``." +msgstr "" +"Valide les caractères considérés comme des espacements dans la table ASCII ; " +"équivalent à ``[ \\t\\n\\r\\f\\v]``." + +#: ../Doc/library/re.rst:517 +msgid "``\\S``" +msgstr "``\\S``" + +#: ../Doc/library/re.rst:515 +msgid "" +"Matches any character which is not a whitespace character. This is the " +"opposite of ``\\s``. If the :const:`ASCII` flag is used this becomes the " +"equivalent of ``[^ \\t\\n\\r\\f\\v]``." +msgstr "" +"Valide tout caractère qui n'est pas un caractère d'espacement. c'est " +"l'opposé de ``\\s``. Si l'option :const:`ASCII` est utilisée, cela devient " +"équivalent à ``[^ \\t\\n\\r\\f\\v]``." + +#: ../Doc/library/re.rst:532 +msgid "``\\w``" +msgstr "``\\w``" + +#: ../Doc/library/re.rst:523 +msgid "" +"Matches Unicode word characters; this includes most characters that can be " +"part of a word in any language, as well as numbers and the underscore. If " +"the :const:`ASCII` flag is used, only ``[a-zA-Z0-9_]`` is matched." +msgstr "" +"Valide les caractères Unicode de mot ; cela inclut la plupart des caractères " +"qui peuvent être compris dans un mot d'une quelconque langue, aussi bien que " +"les nombres et les tirets bas. Si l'option :const:`ASCII` est utilisée, " +"seuls les caractères de la classe ``[a-zA-Z0-9_]`` sont validés." + +#: ../Doc/library/re.rst:529 +msgid "" +"Matches characters considered alphanumeric in the ASCII character set; this " +"is equivalent to ``[a-zA-Z0-9_]``. If the :const:`LOCALE` flag is used, " +"matches characters considered alphanumeric in the current locale and the " +"underscore." +msgstr "" +"Valide les caractères alphanumériques de la table ASCII ; équivalent à ``[a-" +"zA-Z0-9_]``. Si l'option :const:`LOCALE` est utilisée, les caractères " +"considérés alphanumériques dans la locale et le tiret bas seront acceptés." + +#: ../Doc/library/re.rst:541 +msgid "``\\W``" +msgstr "``\\W``" + +#: ../Doc/library/re.rst:537 +msgid "" +"Matches any character which is not a word character. This is the opposite of " +"``\\w``. If the :const:`ASCII` flag is used this becomes the equivalent of " +"``[^a-zA-Z0-9_]``. If the :const:`LOCALE` flag is used, matches characters " +"considered alphanumeric in the current locale and the underscore." +msgstr "" +"Valide tout caractère qui n'est pas un caractère de mot. C'est l'opposé de ``" +"\\w``. Si l'option :const:`ASCII` est utilisée, cela devient équivalent à " +"``[^a-zA-Z0-9_]``. Si l'option :const:`LOCALE` est utilisée, les caractères " +"considérés alphanumériques dans la locale, et le tiret bas, seront acceptés." + +#: ../Doc/library/re.rst:546 +msgid "``\\Z``" +msgstr "``\\Z``" + +#: ../Doc/library/re.rst:546 +msgid "Matches only at the end of the string." +msgstr "Correspond uniquement à la fin d'une chaîne de caractères." + +#: ../Doc/library/re.rst:562 +msgid "" +"Most of the standard escapes supported by Python string literals are also " +"accepted by the regular expression parser::" +msgstr "" +"La plupart des échappements standards supportés par les chaînes littérales " +"sont aussi acceptés par l'analyseur d'expressions rationnelles ::" + +#: ../Doc/library/re.rst:569 +msgid "" +"(Note that ``\\b`` is used to represent word boundaries, and means " +"\"backspace\" only inside character classes.)" +msgstr "" +"(Notez que ``\\b`` est utilisé pour représenter les bornes d'un mot, et " +"signifie « *backspace* » uniquement à l'intérieur d'une classe de " +"caractères.)" + +#: ../Doc/library/re.rst:572 +msgid "" +"``'\\u'`` and ``'\\U'`` escape sequences are only recognized in Unicode " +"patterns. In bytes patterns they are errors. Unknown escapes of ASCII " +"letters are reserved for future use and treated as errors." +msgstr "" +"Les séquences d'échappement ``'\\u'`` et ``'\\U'`` sont seulement reconnues " +"dans les motifs Unicode. Dans les motifs de *byte*, ce sont des erreurs. " +"Les échappements inconnus de lettres ASCII sont réservés pour une " +"utilisation future et sont considérés comme des erreurs." + +#: ../Doc/library/re.rst:576 +msgid "" +"Octal escapes are included in a limited form. If the first digit is a 0, or " +"if there are three octal digits, it is considered an octal escape. " +"Otherwise, it is a group reference. As for string literals, octal escapes " +"are always at most three digits in length." +msgstr "" +"Les séquences octales d'échappement sont incluses dans une forme limitée. " +"Si le premier chiffre est un 0, ou s'il y a trois chiffres octaux, la " +"séquence est considérée comme octale. Autrement, il s'agit d'une référence " +"vers un groupe. Comme pour les chaînes littérales, les séquences octales ne " +"font jamais plus de 3 caractères de long." + +#: ../Doc/library/re.rst:581 +msgid "The ``'\\u'`` and ``'\\U'`` escape sequences have been added." +msgstr "Les séquences d'échappement ``'\\u'`` et ``'\\U'`` ont été ajoutées." + +#: ../Doc/library/re.rst:584 +msgid "" +"Unknown escapes consisting of ``'\\'`` and an ASCII letter now are errors." +msgstr "" +"Les séquences inconnues composées de ``'\\'`` et d'une lettre ASCII sont " +"maintenant des erreurs." + +#: ../Doc/library/re.rst:592 +msgid "Module Contents" +msgstr "Contenu du module" + +#: ../Doc/library/re.rst:594 +msgid "" +"The module defines several functions, constants, and an exception. Some of " +"the functions are simplified versions of the full featured methods for " +"compiled regular expressions. Most non-trivial applications always use the " +"compiled form." +msgstr "" +"Le module définit plusieurs fonctions, constantes, et une exception. " +"Certaines fonctions sont des versions simplifiées des méthodes plus " +"complètes des expressions rationnelles compilées. La plupart des " +"applications non triviales utilisent toujours la version compilée." + +#: ../Doc/library/re.rst:599 +msgid "" +"Flag constants are now instances of :class:`RegexFlag`, which is a subclass " +"of :class:`enum.IntFlag`." +msgstr "" +"Les constantes d'options sont maintenant des instances de :class:" +"`RegexFlag`, sous-classe de :class:`enum.IntFlag`." + +#: ../Doc/library/re.rst:605 +msgid "" +"Compile a regular expression pattern into a :ref:`regular expression object " +"`, which can be used for matching using its :func:`~Pattern." +"match`, :func:`~Pattern.search` and other methods, described below." +msgstr "" +"Compile un motif vers une :ref:`expression rationnelle ` " +"compilée, dont les méthodes :func:`~Pattern.match` et :func:`~Pattern." +"search`, décrites ci-dessous, peuvent être utilisées pour analyser des " +"textes." + +#: ../Doc/library/re.rst:610 +msgid "" +"The expression's behaviour can be modified by specifying a *flags* value. " +"Values can be any of the following variables, combined using bitwise OR (the " +"``|`` operator)." +msgstr "" +"Le comportement des expressions peut être modifié en spécifiant une valeur " +"*flags*. Les valeurs sont comprises dans les variables suivantes, et peuvent " +"être combinées avec un *ou* bit-à-bit (opérateur ``|``)." + +#: ../Doc/library/re.rst:614 +msgid "The sequence ::" +msgstr "La séquence ::" + +#: ../Doc/library/re.rst:619 +msgid "is equivalent to ::" +msgstr "est équivalente à ::" + +#: ../Doc/library/re.rst:623 +msgid "" +"but using :func:`re.compile` and saving the resulting regular expression " +"object for reuse is more efficient when the expression will be used several " +"times in a single program." +msgstr "" +"mais utiliser :func:`re.compile` et sauvegarder l'expression rationnelle " +"renvoyée pour la réutiliser est plus efficace quand l'expression est amenée " +"à être utilisée plusieurs fois dans un même programme." + +#: ../Doc/library/re.rst:629 +msgid "" +"The compiled versions of the most recent patterns passed to :func:`re." +"compile` and the module-level matching functions are cached, so programs " +"that use only a few regular expressions at a time needn't worry about " +"compiling regular expressions." +msgstr "" +"Les versions compilées des motifs les plus récents passés à :func:`re." +"compile` et autres fonctions d'analyse du module sont mises en cache, ainsi " +"les programmes qui n'utilisent que quelques expressions rationnelles en même " +"temps n'ont pas à s'inquiéter de la compilation de ces expressions." + +#: ../Doc/library/re.rst:638 +msgid "" +"Make ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\d``, ``\\D``, ``\\s`` and ``" +"\\S`` perform ASCII-only matching instead of full Unicode matching. This is " +"only meaningful for Unicode patterns, and is ignored for byte patterns. " +"Corresponds to the inline flag ``(?a)``." +msgstr "" +"Fait correspondre à ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\d``, ``\\D``, ``" +"\\s`` et ``\\s`` des caractères ASCII seulement, plutôt qu'Unicode. Cela " +"n'a du sens que pour les motifs Unicode, et est ignoré pour les motifs 8-" +"bit. Correspond à l'option de groupe ``(?a)``." + +#: ../Doc/library/re.rst:643 +msgid "" +"Note that for backward compatibility, the :const:`re.U` flag still exists " +"(as well as its synonym :const:`re.UNICODE` and its embedded counterpart ``(?" +"u)``), but these are redundant in Python 3 since matches are Unicode by " +"default for strings (and Unicode matching isn't allowed for bytes)." +msgstr "" +"Notez que par compatibilité envers les versions précédentes, l'option :const:" +"`re.U` existe toujours (ainsi que son synonyme :const:`re.UNICODE` et sa " +"version embarquée ``(?u)``), mais elles sont redondantes en Python 3 depuis " +"que l'analyse est faite en Unicode par défaut pour les chaînes de caractères " +"(et que l'analyse Unicode n'est pas permise pour les chaînes 8-bit)." + +#: ../Doc/library/re.rst:652 +msgid "" +"Display debug information about compiled expression. No corresponding inline " +"flag." +msgstr "" +"Affiche des informations de débogage à propos de l'expression compilée. N'a " +"pas d'option de groupe équivalente." + +#: ../Doc/library/re.rst:659 +msgid "" +"Perform case-insensitive matching; expressions like ``[A-Z]`` will also " +"match lowercase letters. Full Unicode matching (such as ``Ü`` matching " +"``ü``) also works unless the :const:`re.ASCII` flag is used to disable non-" +"ASCII matches. The current locale does not change the effect of this flag " +"unless the :const:`re.LOCALE` flag is also used. Corresponds to the inline " +"flag ``(?i)``." +msgstr "" +"Effectue une analyse indépendante de la casse. Les motifs tels que ``[A-Z]`` " +"accepteront donc les caractères minuscules. L'analyse Unicode complète (tel " +"que ``Ü`` correspondant à ``ü``) fonctionne aussi, tant que l'option :const:" +"`re.ASCII` n'est pas utilisée. La locale n'affecte pas cette option, tant " +"que l'option :const:`re.LOCALE` n'est pas utilisée. Correspond au marqueur " +"de groupe ``(?i)``." + +#: ../Doc/library/re.rst:666 +msgid "" +"Note that when the Unicode patterns ``[a-z]`` or ``[A-Z]`` are used in " +"combination with the :const:`IGNORECASE` flag, they will match the 52 ASCII " +"letters and 4 additional non-ASCII letters: 'İ' (U+0130, Latin capital " +"letter I with dot above), 'ı' (U+0131, Latin small letter dotless i), 'ſ' (U" +"+017F, Latin small letter long s) and 'K' (U+212A, Kelvin sign). If the :" +"const:`ASCII` flag is used, only letters 'a' to 'z' and 'A' to 'Z' are " +"matched." +msgstr "" +"À noter : quand les motifs Unicode ``[a-z]`` ou ``[A-Z]`` sont utilisés en " +"combinaison avec la constante :const:`IGNORECASE`, ils correspondront aux 52 " +"caractères ASCII et aux 4 caractères non ASCII : 'İ' (*U+0130*, Latin " +"majuscule I avec un point au-dessus), 'ı' (*U+0131*, Latin minuscule sans " +"point au-dessus), 'ſ' (*U+017F*, Latin minuscule *long s*) et 'K' (*U+212A*, " +"*Kelvin sign*). Si la constante :const:`ASCII` est utilisée, seuls les " +"caractères 'a' à 'z' et 'A' à 'Z' seront concernés." + +#: ../Doc/library/re.rst:677 +msgid "" +"Make ``\\w``, ``\\W``, ``\\b``, ``\\B`` and case-insensitive matching " +"dependent on the current locale. This flag can be used only with bytes " +"patterns. The use of this flag is discouraged as the locale mechanism is " +"very unreliable, it only handles one \"culture\" at a time, and it only " +"works with 8-bit locales. Unicode matching is already enabled by default in " +"Python 3 for Unicode (str) patterns, and it is able to handle different " +"locales/languages. Corresponds to the inline flag ``(?L)``." +msgstr "" +"Fait dépendre de la locale courante : ``\\w``, ``\\W``, ``\\b``, ``\\B``, et " +"l'analyse insensible à la casse. Cette option peut être utilisée avec les " +"motifs en *bytes*. L'utilisation de cette option est déconseillée à cause du " +"mécanisme de locale très peu fiable, et ne gérant qu'une « culture » à la " +"fois, et ne fonctionnant que pour les locales 8-bits. L'analyse Unicode est " +"déjà activée par défaut dans Python 3 pour les motifs Unicode (*str*), et " +"elle est capable de gérer plusieurs locales et langages. Correspond à " +"l'option de groupe ``(?L)``." + +#: ../Doc/library/re.rst:686 +msgid "" +":const:`re.LOCALE` can be used only with bytes patterns and is not " +"compatible with :const:`re.ASCII`." +msgstr "" +":const:`re.LOCALE` ne peut être utilisée qu'avec les motifs 8-bit et n'est " +"pas compatible avec :const:`re.ASCII`." + +#: ../Doc/library/re.rst:690 +msgid "" +"Compiled regular expression objects with the :const:`re.LOCALE` flag no " +"longer depend on the locale at compile time. Only the locale at matching " +"time affects the result of matching." +msgstr "" +"Les objets d'expressions régulières compilées avec l'indicateur :const:`re." +"LOCALE` ne dépendent plus de la *locale* au moment de la compilation. " +"Seulement la *locale* au moment de la correspondance affecte le résultat." + +#: ../Doc/library/re.rst:699 +msgid "" +"When specified, the pattern character ``'^'`` matches at the beginning of " +"the string and at the beginning of each line (immediately following each " +"newline); and the pattern character ``'$'`` matches at the end of the string " +"and at the end of each line (immediately preceding each newline). By " +"default, ``'^'`` matches only at the beginning of the string, and ``'$'`` " +"only at the end of the string and immediately before the newline (if any) at " +"the end of the string. Corresponds to the inline flag ``(?m)``." +msgstr "" +"Quand spécifiée, le caractère ``'^'`` correspond au début d'une chaîne et au " +"début d'une ligne (caractère suivant directement le saut de ligne) ; et le " +"caractère ``'$'`` correspond à la fin d'une chaîne et à la fin d'une ligne " +"(juste avant le saut de ligne). Par défaut, ``'^'`` correspond uniquement " +"au début de la chaîne, et ``'$'`` uniquement à la fin de la chaîne, ou " +"immédiatement avant le saut de ligne (s'il y a) à la fin de la chaîne. " +"Correspond à l'option de groupe ``(?m)``." + +#: ../Doc/library/re.rst:711 +msgid "" +"Make the ``'.'`` special character match any character at all, including a " +"newline; without this flag, ``'.'`` will match anything *except* a newline. " +"Corresponds to the inline flag ``(?s)``." +msgstr "" +"Fait correspondre tous les caractères possibles à ``'.'``, incluant le saut " +"de ligne ; sans cette option, ``'.'`` correspondrait à tout caractère à " +"l'exception du saut de ligne. Correspond à l'option de groupe ``(?s)``." + +#: ../Doc/library/re.rst:721 +msgid "" +"This flag allows you to write regular expressions that look nicer and are " +"more readable by allowing you to visually separate logical sections of the " +"pattern and add comments. Whitespace within the pattern is ignored, except " +"when in a character class, or when preceded by an unescaped backslash, or " +"within tokens like ``*?``, ``(?:`` or ``(?P<...>``. When a line contains a " +"``#`` that is not in a character class and is not preceded by an unescaped " +"backslash, all characters from the leftmost such ``#`` through the end of " +"the line are ignored." +msgstr "" +"Cette option vous autorise à écrire des expressions rationnelles qui " +"présentent mieux et sont plus lisibles en vous permettant de séparer " +"visuellement les sections logiques du motif et d'ajouter des commentaires. " +"Les caractères d'espacement à l'intérieur du motif sont ignorés, sauf à " +"l'intérieur des classes de caractères ou quand précédés d'un *backslash* non " +"échappé, ou dans des séquences comme ``*?``, ``(?:`` or ``(?P<...>``. Quand " +"une ligne contient un ``#`` qui n'est pas dans une classe de caractères ou " +"précédé d'un *backslash* non échappé, tous les caractères depuis le ``#`` le " +"plus à gauche jusqu'à la fin de la ligne sont ignorés." + +#: ../Doc/library/re.rst:730 +msgid "" +"This means that the two following regular expression objects that match a " +"decimal number are functionally equal::" +msgstr "" +"Cela signifie que les deux expressions rationnelles suivantes qui valident " +"un nombre décimal sont fonctionnellement égales ::" + +#: ../Doc/library/re.rst:738 +msgid "Corresponds to the inline flag ``(?x)``." +msgstr "Correspond à l'option de groupe ``(?x)``." + +#: ../Doc/library/re.rst:743 +msgid "" +"Scan through *string* looking for the first location where the regular " +"expression *pattern* produces a match, and return a corresponding :ref:" +"`match object `. Return ``None`` if no position in the " +"string matches the pattern; note that this is different from finding a zero-" +"length match at some point in the string." +msgstr "" +"Analyse *string* à la recherche du premier emplacement où l'expression " +"rationnelle *pattern* trouve une correspondance, et renvoie l':ref:`objet de " +"correspondance ` trouvé. Renvoie ``None`` si aucune position " +"dans la chaîne ne valide le motif ; notez que cela est différent de trouver " +"une correspondance avec une chaîne vide à un certain endroit de la chaîne." + +#: ../Doc/library/re.rst:752 +msgid "" +"If zero or more characters at the beginning of *string* match the regular " +"expression *pattern*, return a corresponding :ref:`match object `. Return ``None`` if the string does not match the pattern; note " +"that this is different from a zero-length match." +msgstr "" +"Si zéro ou plus caractères au début de *string* correspondent à l'expression " +"rationnelle *pattern*, renvoie l':ref:`objet de correspondance ` trouvé. Renvoie ``None`` si la chaîne ne correspond pas au " +"motif ; notez que cela est différent d'une correspondance avec une chaîne " +"vide." + +#: ../Doc/library/re.rst:757 +msgid "" +"Note that even in :const:`MULTILINE` mode, :func:`re.match` will only match " +"at the beginning of the string and not at the beginning of each line." +msgstr "" +"Notez que même en mode :const:`MULTILINE`, :func:`re.match` ne validera " +"qu'au début de la chaîne et non au début de chaque ligne." + +#: ../Doc/library/re.rst:760 +msgid "" +"If you want to locate a match anywhere in *string*, use :func:`search` " +"instead (see also :ref:`search-vs-match`)." +msgstr "" +"Si vous voulez trouver une correspondance n'importe où dans *string*, " +"utilisez plutôt :func:`search` (voir aussi :ref:`search-vs-match`)." + +#: ../Doc/library/re.rst:766 +msgid "" +"If the whole *string* matches the regular expression *pattern*, return a " +"corresponding :ref:`match object `. Return ``None`` if the " +"string does not match the pattern; note that this is different from a zero-" +"length match." +msgstr "" +"Si l'entièreté de la chaîne *string* correspond à l'expression rationnelle " +"*pattern*, renvoie l':ref:`objet de correspondance ` trouvé. " +"Renvoie ``None`` si la chaîne ne correspond pas au motif ; notez que cela " +"est différent d'une correspondance avec une chaîne vide." + +#: ../Doc/library/re.rst:776 +msgid "" +"Split *string* by the occurrences of *pattern*. If capturing parentheses " +"are used in *pattern*, then the text of all groups in the pattern are also " +"returned as part of the resulting list. If *maxsplit* is nonzero, at most " +"*maxsplit* splits occur, and the remainder of the string is returned as the " +"final element of the list. ::" +msgstr "" +"Sépare *string* selon les occurrences de *pattern*. Si des parenthèses de " +"capture sont utilisées dans *pattern*, alors les textes des groupes du motif " +"sont aussi renvoyés comme éléments de la liste résultante. Si *maxsplit* est " +"différent de zéro, il ne pourra y avoir plus de *maxsplit* séparations, et " +"le reste de la chaîne sera renvoyé comme le dernier élément de la liste. ::" + +#: ../Doc/library/re.rst:791 +msgid "" +"If there are capturing groups in the separator and it matches at the start " +"of the string, the result will start with an empty string. The same holds " +"for the end of the string::" +msgstr "" +"S'il y a des groupes de capture dans le séparateur et qu'ils trouvent une " +"correspondance au début de la chaîne, le résultat commencera par une chaîne " +"vide. La même chose se produit pour la fin de la chaîne ::" + +#: ../Doc/library/re.rst:798 +msgid "" +"That way, separator components are always found at the same relative indices " +"within the result list." +msgstr "" +"De cette manière, les séparateurs sont toujours trouvés aux mêmes indices " +"relatifs dans la liste résultante." + +#: ../Doc/library/re.rst:801 +msgid "" +"Empty matches for the pattern split the string only when not adjacent to a " +"previous empty match." +msgstr "" +"Les correspondances vides pour le motif scindent la chaîne de caractères " +"seulement lorsqu'ils ne sont pas adjacents à une correspondance vide " +"précédente." + +#: ../Doc/library/re.rst:811 ../Doc/library/re.rst:891 +#: ../Doc/library/re.rst:915 +msgid "Added the optional flags argument." +msgstr "Ajout de l'argument optionnel *flags*." + +#: ../Doc/library/re.rst:814 +msgid "" +"Added support of splitting on a pattern that could match an empty string." +msgstr "" +"Gestion du découpage avec un motif qui pourrait correspondre à une chaine de " +"caractère vide." + +#: ../Doc/library/re.rst:820 +msgid "" +"Return all non-overlapping matches of *pattern* in *string*, as a list of " +"strings. The *string* is scanned left-to-right, and matches are returned in " +"the order found. If one or more groups are present in the pattern, return a " +"list of groups; this will be a list of tuples if the pattern has more than " +"one group. Empty matches are included in the result." +msgstr "" +"Renvoie toutes les correspondances de *pattern* dans *string* qui ne se " +"chevauchent pas, sous forme d'une liste de chaînes. Le chaîne *string* est " +"analysée de la gauche vers la droite, et les correspondances sont renvoyées " +"dans l'ordre où elles sont trouvées. Si un groupe ou plus sont présents " +"dans le motif, renvoie une liste de groupes ; il s'agira d'une liste de " +"*tuples* si le motif a plus d'un groupe. Les correspondances vides sont " +"incluses dans le résultat." + +#: ../Doc/library/re.rst:826 ../Doc/library/re.rst:837 +msgid "Non-empty matches can now start just after a previous empty match." +msgstr "" +"Les correspondances non vides peuvent maintenant démarrer juste après une " +"correspondance vide précédente." + +#: ../Doc/library/re.rst:832 +msgid "" +"Return an :term:`iterator` yielding :ref:`match objects ` " +"over all non-overlapping matches for the RE *pattern* in *string*. The " +"*string* is scanned left-to-right, and matches are returned in the order " +"found. Empty matches are included in the result." +msgstr "" +"Renvoie un :term:`iterator` produisant des :ref:`objets de correspondance " +"` pour toutes les correspondances non chevauchantes de " +"l'expression rationnelle *pattern* sur la chaîne *string*. *string* est " +"analysée de la gauche vers la droite, et les correspondances sont renvoyées " +"dans l'ordre où elles sont trouvées. Les correspondances vides sont inclues " +"dans le résultat." + +#: ../Doc/library/re.rst:843 +msgid "" +"Return the string obtained by replacing the leftmost non-overlapping " +"occurrences of *pattern* in *string* by the replacement *repl*. If the " +"pattern isn't found, *string* is returned unchanged. *repl* can be a string " +"or a function; if it is a string, any backslash escapes in it are " +"processed. That is, ``\\n`` is converted to a single newline character, ``" +"\\r`` is converted to a carriage return, and so forth. Unknown escapes of " +"ASCII letters are reserved for future use and treated as errors. Other " +"unknown escapes such as ``\\&`` are left alone. Backreferences, such as ``" +"\\6``, are replaced with the substring matched by group 6 in the pattern. " +"For example::" +msgstr "" +"Renvoie la chaîne obtenue en remplaçant les occurrences (sans chevauchement) " +"les plus à gauche de *pattern* dans *string* par le remplacement *repl*. Si " +"le motif n'est pas trouvé, *string* est renvoyée inchangée. *repl* peut " +"être une chaîne de caractères ou une fonction ; si c'est une chaîne, toutes " +"les séquences d'échappement qu'elle contient sont traduites. Ainsi, ``\\n`` " +"est convertie en un simple saut de ligne, ``\\r`` en un retour chariot, et " +"ainsi de suite. Les échappements inconnus de lettres ASCII sont réservés " +"pour une utilisation future et sont considérés comme des erreurs. Les autres " +"échappements tels que ``\\&`` sont laissés intacts. Les références " +"arrières, telles que ``\\6``, sont remplacées par la sous-chaîne " +"correspondant au groupe 6 dans le motif. Par exemple ::" + +#: ../Doc/library/re.rst:859 +msgid "" +"If *repl* is a function, it is called for every non-overlapping occurrence " +"of *pattern*. The function takes a single :ref:`match object ` argument, and returns the replacement string. For example::" +msgstr "" +"Si *repl* est une fonction, elle est appelée pour chaque occurrence non " +"chevauchante de *pattern*. La fonction prend comme argument un :ref:`objet " +"de correspondance `, et renvoie la chaîne de remplacement. " +"Par exemple ::" + +#: ../Doc/library/re.rst:871 +msgid "The pattern may be a string or a :ref:`pattern object `." +msgstr "" +"Le motif peut être une chaîne de caractères ou un :ref:`objet expression " +"rationnelle `." + +#: ../Doc/library/re.rst:873 +msgid "" +"The optional argument *count* is the maximum number of pattern occurrences " +"to be replaced; *count* must be a non-negative integer. If omitted or zero, " +"all occurrences will be replaced. Empty matches for the pattern are replaced " +"only when not adjacent to a previous empty match, so ``sub('x*', '-', " +"'abxd')`` returns ``'-a-b--d-'``." +msgstr "" +"L'argument optionnel *count* est le nombre maximum d'occurrences du motif à " +"remplacer : *count* ne doit pas être un nombre négatif. Si omis ou nul, " +"toutes les occurrences seront remplacées. Les correspondances vides avec le " +"motif sont remplacées uniquement quand elles ne sont pas adjacentes à une " +"précédente correspondance, ainsi ``sub('x*', '-', 'abxd')`` renvoie ``'-a-b--" +"d-'``." + +#: ../Doc/library/re.rst:881 +msgid "" +"In string-type *repl* arguments, in addition to the character escapes and " +"backreferences described above, ``\\g`` will use the substring matched " +"by the group named ``name``, as defined by the ``(?P...)`` syntax. ``" +"\\g`` uses the corresponding group number; ``\\g<2>`` is therefore " +"equivalent to ``\\2``, but isn't ambiguous in a replacement such as ``" +"\\g<2>0``. ``\\20`` would be interpreted as a reference to group 20, not a " +"reference to group 2 followed by the literal character ``'0'``. The " +"backreference ``\\g<0>`` substitutes in the entire substring matched by the " +"RE." +msgstr "" +"Dans les arguments *repl* de type *string*, en plus des séquences " +"d'échappement et références arrières décrites au-dessus, ``\\g`` " +"utilisera la sous-chaîne correspondant au groupe nommé ``name``, comme " +"défini par la syntaxe ``(?P...)``. ``\\g`` utilise le groupe " +"numéroté associé ; ``\\g<2>`` est ainsi équivalent à ``\\2``, mais n'est pas " +"ambigu dans un remplacement tel que ``\\g<2>0``, ``\\20`` serait interprété " +"comme une référence au groupe 20, et non une référence au groupe 2 suivie " +"par un caractère littéral ``'0'``. La référence arrière ``\\g<0>`` est " +"remplacée par la sous-chaîne entière validée par l'expression rationnelle." + +#: ../Doc/library/re.rst:894 ../Doc/library/re.rst:918 +#: ../Doc/library/re.rst:1147 +msgid "Unmatched groups are replaced with an empty string." +msgstr "Les groupes sans correspondance sont remplacés par une chaîne vide." + +#: ../Doc/library/re.rst:897 +msgid "" +"Unknown escapes in *pattern* consisting of ``'\\'`` and an ASCII letter now " +"are errors." +msgstr "" +"Les séquences d'échappement inconnues dans *pattern* formées par ``'\\'`` et " +"une lettre ASCII sont maintenant des erreurs." + +#: ../Doc/library/re.rst:901 +msgid "" +"Unknown escapes in *repl* consisting of ``'\\'`` and an ASCII letter now are " +"errors." +msgstr "" +"Les séquences d'échappement inconnues dans *repl* formées par ``'\\'`` et " +"une lettre ASCII sont maintenant des erreurs." + +#: ../Doc/library/re.rst:905 +msgid "" +"Empty matches for the pattern are replaced when adjacent to a previous non-" +"empty match." +msgstr "" +"Les correspondances vides pour le motif sont remplacées lorsqu'elles sont " +"adjacentes à une correspondance non vide précédente." + +#: ../Doc/library/re.rst:912 +msgid "" +"Perform the same operation as :func:`sub`, but return a tuple ``(new_string, " +"number_of_subs_made)``." +msgstr "" +"Réalise la même opération que :func:`sub`, mais renvoie un *tuple* " +"``(nouvelle_chaîne, nombre_de_substitutions_réalisées)``." + +#: ../Doc/library/re.rst:924 +msgid "" +"Escape special characters in *pattern*. This is useful if you want to match " +"an arbitrary literal string that may have regular expression metacharacters " +"in it. For example::" +msgstr "" +"Échappe tous les caractères spéciaux de *pattern*. Cela est utile si vous " +"voulez valider une quelconque chaîne littérale qui pourrait contenir des " +"métacaractères d'expressions rationnelles. Par exemple ::" + +#: ../Doc/library/re.rst:939 +msgid "" +"This functions must not be used for the replacement string in :func:`sub` " +"and :func:`subn`, only backslashes should be escaped. For example::" +msgstr "" +"Ces fonctions ne doivent pas être utilisées pour la chaîne de remplacement " +"dans :func:`sub` et :func:`subn`, seuls les antislash devraient être " +"échappés. Par exemple ::" + +#: ../Doc/library/re.rst:947 +msgid "The ``'_'`` character is no longer escaped." +msgstr "Le caractère ``'_'`` n'est plus échappé." + +#: ../Doc/library/re.rst:950 +msgid "" +"Only characters that can have special meaning in a regular expression are " +"escaped." +msgstr "" +"Seuls les caractères qui peuvent avoir une signification spécifique dans une " +"expression régulière sont échappés." + +#: ../Doc/library/re.rst:957 +msgid "Clear the regular expression cache." +msgstr "Vide le cache d'expressions rationnelles." + +#: ../Doc/library/re.rst:962 +msgid "" +"Exception raised when a string passed to one of the functions here is not a " +"valid regular expression (for example, it might contain unmatched " +"parentheses) or when some other error occurs during compilation or " +"matching. It is never an error if a string contains no match for a " +"pattern. The error instance has the following additional attributes:" +msgstr "" +"Exception levée quand une chaîne passée à l'une des fonctions ici présentes " +"n'est pas une expression rationnelle valide (contenant par exemple une " +"parenthèse non fermée) ou quand d'autres erreurs se produisent durant la " +"compilation ou l'analyse. Il ne se produit jamais d'erreur si une chaîne ne " +"contient aucune correspondance pour un motif. Les instances de l'erreur ont " +"les attributs additionnels suivants :" + +#: ../Doc/library/re.rst:970 +msgid "The unformatted error message." +msgstr "Le message d'erreur non formaté." + +#: ../Doc/library/re.rst:974 +msgid "The regular expression pattern." +msgstr "Le motif d'expression rationnelle." + +#: ../Doc/library/re.rst:978 +msgid "The index in *pattern* where compilation failed (may be ``None``)." +msgstr "" +"L'index dans *pattern* où la compilation a échoué (peut valoir ``None``)." + +#: ../Doc/library/re.rst:982 +msgid "The line corresponding to *pos* (may be ``None``)." +msgstr "La ligne correspondant à *pos* (peut valoir ``None``)." + +#: ../Doc/library/re.rst:986 +msgid "The column corresponding to *pos* (may be ``None``)." +msgstr "La colonne correspondant à *pos* (peut valoir ``None``)." + +#: ../Doc/library/re.rst:988 +msgid "Added additional attributes." +msgstr "Ajout des attributs additionnels." + +#: ../Doc/library/re.rst:994 +msgid "Regular Expression Objects" +msgstr "Objets d'expressions rationnelles" + +#: ../Doc/library/re.rst:996 +msgid "" +"Compiled regular expression objects support the following methods and " +"attributes:" +msgstr "" +"Les expressions rationnelles compilées supportent les méthodes et attributs " +"suivants :" + +#: ../Doc/library/re.rst:1001 +msgid "" +"Scan through *string* looking for the first location where this regular " +"expression produces a match, and return a corresponding :ref:`match object " +"`. Return ``None`` if no position in the string matches the " +"pattern; note that this is different from finding a zero-length match at " +"some point in the string." +msgstr "" +"Analyse *string* à la recherche du premier emplacement où l'expression " +"rationnelle trouve une correspondance, et envoie l':ref:`objet de " +"correspondance ` trouvé. Renvoie ``None`` si aucune position " +"dans la chaîne ne satisfait le motif ; notez que cela est différent que de " +"trouver une correspondance vide dans la chaîne." + +#: ../Doc/library/re.rst:1007 +msgid "" +"The optional second parameter *pos* gives an index in the string where the " +"search is to start; it defaults to ``0``. This is not completely equivalent " +"to slicing the string; the ``'^'`` pattern character matches at the real " +"beginning of the string and at positions just after a newline, but not " +"necessarily at the index where the search is to start." +msgstr "" +"Le second paramètre *pos* (optionnel) donne l'index dans la chaîne où la " +"recherche doit débuter ; il vaut ``0`` par défaut. Cela n'est pas " +"complètement équivalent à un *slicing* sur la chaîne ; le caractère de motif " +"``'^'`` correspond au début réel de la chaîne et aux positions juste après " +"un saut de ligne, mais pas nécessairement à l'index où la recherche commence." + +#: ../Doc/library/re.rst:1013 +msgid "" +"The optional parameter *endpos* limits how far the string will be searched; " +"it will be as if the string is *endpos* characters long, so only the " +"characters from *pos* to ``endpos - 1`` will be searched for a match. If " +"*endpos* is less than *pos*, no match will be found; otherwise, if *rx* is a " +"compiled regular expression object, ``rx.search(string, 0, 50)`` is " +"equivalent to ``rx.search(string[:50], 0)``. ::" +msgstr "" +"Le paramètre optionnel *endpos* limite la longueur sur laquelle la chaîne " +"sera analysée ; ce sera comme si la chaîne faisait *endpos* caractères de " +"long, donc uniquement les caractères de *pos* à ``endpos - 1`` seront " +"analysés pour trouver une correspondance. Si *endpos* est inférieur à " +"*pos*, aucune correspondance ne sera trouvée ; dit autrement, avec *rx* une " +"expression rationnelle compilée, ``rx.search(string, 0, 50)`` est équivalent " +"à ``rx.search(string[:50], 0)``. ::" + +#: ../Doc/library/re.rst:1028 +msgid "" +"If zero or more characters at the *beginning* of *string* match this regular " +"expression, return a corresponding :ref:`match object `. " +"Return ``None`` if the string does not match the pattern; note that this is " +"different from a zero-length match." +msgstr "" +"Si zéro caractère ou plus au début de *string* correspondent à cette " +"expression rationnelle, renvoie l':ref:`objet de correspondance ` trouvé. Renvoie ``None`` si la chaîne ne correspond pas au motif ; " +"notez que cela est différent d'une correspondance vide." + +#: ../Doc/library/re.rst:1033 ../Doc/library/re.rst:1051 +msgid "" +"The optional *pos* and *endpos* parameters have the same meaning as for the :" +"meth:`~Pattern.search` method. ::" +msgstr "" +"Les paramètres optionnels *pos* et *endpos* ont le même sens que pour la " +"méthode :meth:`~Pattern.search`. ::" + +#: ../Doc/library/re.rst:1041 +msgid "" +"If you want to locate a match anywhere in *string*, use :meth:`~Pattern." +"search` instead (see also :ref:`search-vs-match`)." +msgstr "" +"Si vous voulez une recherche n'importe où dans *string*, utilisez plutôt :" +"meth:`~Pattern.search` (voir aussi :ref:`search-vs-match`)." + +#: ../Doc/library/re.rst:1047 +msgid "" +"If the whole *string* matches this regular expression, return a " +"corresponding :ref:`match object `. Return ``None`` if the " +"string does not match the pattern; note that this is different from a zero-" +"length match." +msgstr "" +"Si la chaîne *string* entière valide l'expression rationnelle, renvoie l':" +"ref:`object de correspondance ` associé. Renvoie ``None`` si " +"la chaîne ne correspond pas au motif ; notez que cela est différent d'une " +"correspondance vide." + +#: ../Doc/library/re.rst:1065 +msgid "Identical to the :func:`split` function, using the compiled pattern." +msgstr "Identique à la fonction :func:`split`, en utilisant le motif compilé." + +#: ../Doc/library/re.rst:1070 +msgid "" +"Similar to the :func:`findall` function, using the compiled pattern, but " +"also accepts optional *pos* and *endpos* parameters that limit the search " +"region like for :meth:`search`." +msgstr "" +"Similaire à la fonction :func:`findall`, en utilisant le motif compilé, mais " +"accepte aussi des paramètres *pos* et *endpos* optionnels qui limitent la " +"région de recherche comme pour :meth:`search`." + +#: ../Doc/library/re.rst:1077 +msgid "" +"Similar to the :func:`finditer` function, using the compiled pattern, but " +"also accepts optional *pos* and *endpos* parameters that limit the search " +"region like for :meth:`search`." +msgstr "" +"Similaire à la fonction :func:`finditer`, en utilisant le motif compilé, " +"mais accepte aussi des paramètres *pos* et *endpos* optionnels qui limitent " +"la région de recherche comme pour :meth:`search`." + +#: ../Doc/library/re.rst:1084 +msgid "Identical to the :func:`sub` function, using the compiled pattern." +msgstr "Identique à la fonction :func:`sub`, en utilisant le motif compilé." + +#: ../Doc/library/re.rst:1089 +msgid "Identical to the :func:`subn` function, using the compiled pattern." +msgstr "Identique à la fonction :func:`subn`, en utilisant le motif compilé." + +#: ../Doc/library/re.rst:1094 +msgid "" +"The regex matching flags. This is a combination of the flags given to :func:" +"`.compile`, any ``(?...)`` inline flags in the pattern, and implicit flags " +"such as :data:`UNICODE` if the pattern is a Unicode string." +msgstr "" +"Les options de validation de l'expression rationnelle. Il s'agit d'une " +"combinaison des options données à :func:`compile`, des potentielles options " +"``(?...)`` dans le motif, et des options implicites comme :data:`UNICODE` si " +"le motif est une chaîne Unicode." + +#: ../Doc/library/re.rst:1101 +msgid "The number of capturing groups in the pattern." +msgstr "Le nombre de groupes de capture dans le motif." + +#: ../Doc/library/re.rst:1106 +msgid "" +"A dictionary mapping any symbolic group names defined by ``(?P)`` to " +"group numbers. The dictionary is empty if no symbolic groups were used in " +"the pattern." +msgstr "" +"Un dictionnaire associant les noms de groupes symboliques définis par ``(?" +"P)`` aux groupes numérotés. Le dictionnaire est vide si aucun groupe " +"symbolique n'est utilisé dans le motif." + +#: ../Doc/library/re.rst:1113 +msgid "The pattern string from which the pattern object was compiled." +msgstr "La chaîne de motif depuis laquelle l'objet motif a été compilé." + +#: ../Doc/library/re.rst:1116 +msgid "" +"Added support of :func:`copy.copy` and :func:`copy.deepcopy`. Compiled " +"regular expression objects are considered atomic." +msgstr "" +"Ajout du support des fonctions :func:`copy.copy` et :func:`copy.deepcopy`. " +"Les expressions régulières compilées sont considérées atomiques." + +#: ../Doc/library/re.rst:1124 +msgid "Match Objects" +msgstr "Objets de correspondance" + +#: ../Doc/library/re.rst:1126 +msgid "" +"Match objects always have a boolean value of ``True``. Since :meth:`~Pattern." +"match` and :meth:`~Pattern.search` return ``None`` when there is no match, " +"you can test whether there was a match with a simple ``if`` statement::" +msgstr "" +"Les objets de correspondance ont toujours une valeur booléenne ``True``. " +"Puisque :meth:`~Pattern.match` et :meth:`~Pattern.search` renvoient ``None`` " +"quand il n'y a pas de correspondance, vous pouvez tester s'il y a eu " +"correspondance avec une simple instruction ``if`` ::" + +#: ../Doc/library/re.rst:1135 +msgid "Match objects support the following methods and attributes:" +msgstr "" +"Les objets de correspondance supportent les méthodes et attributs suivants :" + +#: ../Doc/library/re.rst:1140 +msgid "" +"Return the string obtained by doing backslash substitution on the template " +"string *template*, as done by the :meth:`~Pattern.sub` method. Escapes such " +"as ``\\n`` are converted to the appropriate characters, and numeric " +"backreferences (``\\1``, ``\\2``) and named backreferences (``\\g<1>``, ``" +"\\g``) are replaced by the contents of the corresponding group." +msgstr "" +"Renvoie la chaîne obtenue en substituant les séquences d'échappement du " +"gabarit *template*, comme réalisé par la méthode :meth:`~Pattern.sub`. Les " +"séquences comme ``\\n`` sont converties vers les caractères appropriés, et " +"les références arrières numériques (``\\1``, ``\\2``) et nommées (``" +"\\g<1>``, ``\\g``) sont remplacées par les contenus des groupes " +"correspondant." + +#: ../Doc/library/re.rst:1152 +msgid "" +"Returns one or more subgroups of the match. If there is a single argument, " +"the result is a single string; if there are multiple arguments, the result " +"is a tuple with one item per argument. Without arguments, *group1* defaults " +"to zero (the whole match is returned). If a *groupN* argument is zero, the " +"corresponding return value is the entire matching string; if it is in the " +"inclusive range [1..99], it is the string matching the corresponding " +"parenthesized group. If a group number is negative or larger than the " +"number of groups defined in the pattern, an :exc:`IndexError` exception is " +"raised. If a group is contained in a part of the pattern that did not match, " +"the corresponding result is ``None``. If a group is contained in a part of " +"the pattern that matched multiple times, the last match is returned. ::" +msgstr "" +"Renvoie un ou plus sous-groupes de la correspondance. Si un seul argument " +"est donné, le résultat est une chaîne simple ; s'il y a plusieurs arguments, " +"le résultat est un *tuple* comprenant un élément par argument. Sans " +"arguments, *group1* vaut par défaut zéro (la correspondance entière est " +"renvoyée). Si un argument *groupN* vaut zéro, l'élément associé sera la " +"chaîne de correspondance entière ; s'il est dans l'intervalle fermé [1..99], " +"c'est la correspondance avec le groupe de parenthèses associé. Si un numéro " +"de groupe est négatif ou supérieur au nombre de groupes définis dans le " +"motif, une exception :exc:`indexError` est levée. Si un groupe est contenu " +"dans une partie du motif qui n'a aucune correspondance, l'élément associé " +"sera ``None``. Si un groupe est contenu dans une partie du motif qui a " +"plusieurs correspondances, seule la dernière correspondance est renvoyée. ::" + +#: ../Doc/library/re.rst:1174 +msgid "" +"If the regular expression uses the ``(?P...)`` syntax, the *groupN* " +"arguments may also be strings identifying groups by their group name. If a " +"string argument is not used as a group name in the pattern, an :exc:" +"`IndexError` exception is raised." +msgstr "" +"Si l'expression rationnelle utilise la syntaxe ``(?P...)``, les " +"arguments *groupN* peuvent alors aussi être des chaînes identifiant les " +"groupes par leurs noms. Si une chaîne donnée en argument n'est pas utilisée " +"comme nom de groupe dans le motif, une exception :exc:`IndexError` est levée." + +#: ../Doc/library/re.rst:1179 +msgid "A moderately complicated example::" +msgstr "Un exemple modérément compliqué ::" + +#: ../Doc/library/re.rst:1187 +msgid "Named groups can also be referred to by their index::" +msgstr "Les groupes nommés peuvent aussi être référencés par leur index ::" + +#: ../Doc/library/re.rst:1194 +msgid "If a group matches multiple times, only the last match is accessible::" +msgstr "" +"Si un groupe a plusieurs correspondances, seule la dernière est accessible ::" + +#: ../Doc/library/re.rst:1203 +msgid "" +"This is identical to ``m.group(g)``. This allows easier access to an " +"individual group from a match::" +msgstr "" +"Cela est identique à ``m.group(g)``. Cela permet un accès plus facile à un " +"groupe individuel depuis une correspondance ::" + +#: ../Doc/library/re.rst:1219 +msgid "" +"Return a tuple containing all the subgroups of the match, from 1 up to " +"however many groups are in the pattern. The *default* argument is used for " +"groups that did not participate in the match; it defaults to ``None``." +msgstr "" +"Renvoie un *tuple* contenant tous les sous-groupes de la correspondance, de " +"1 jusqu'au nombre de groupes dans le motif. L'argument *default* est " +"utilisé pour les groupes sans correspondance ; il vaut ``None`` par défaut." + +#: ../Doc/library/re.rst:1223 ../Doc/library/re.rst:1448 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/library/re.rst:1229 +msgid "" +"If we make the decimal place and everything after it optional, not all " +"groups might participate in the match. These groups will default to " +"``None`` unless the *default* argument is given::" +msgstr "" +"Si on rend la partie décimale et tout ce qui la suit optionnels, tous les " +"groupes ne figureront pas dans la correspondance. Ces groupes sans " +"correspondance vaudront ``None`` sauf si une autre valeur est donnée à " +"l'argument *default* ::" + +#: ../Doc/library/re.rst:1242 +msgid "" +"Return a dictionary containing all the *named* subgroups of the match, keyed " +"by the subgroup name. The *default* argument is used for groups that did " +"not participate in the match; it defaults to ``None``. For example::" +msgstr "" +"Renvoie un dictionnaire contenant tous les sous-groupes *nommés* de la " +"correspondance, accessibles par leurs noms. L'argument *default* est " +"utilisé pour les groupes qui ne figurent pas dans la correspondance ; il " +"vaut ``None`` par défaut. Par exemple ::" + +#: ../Doc/library/re.rst:1254 +msgid "" +"Return the indices of the start and end of the substring matched by *group*; " +"*group* defaults to zero (meaning the whole matched substring). Return " +"``-1`` if *group* exists but did not contribute to the match. For a match " +"object *m*, and a group *g* that did contribute to the match, the substring " +"matched by group *g* (equivalent to ``m.group(g)``) is ::" +msgstr "" +"Renvoie les indices de début et de fin de la sous-chaîne correspondant au " +"groupe *group* ; *group* vaut par défaut zéro (pour récupérer les indices de " +"la correspondance complète). Renvoie ``-1`` si *group* existe mais ne figure " +"pas dans la correspondance. Pour un objet de correspondance *m*, et un " +"groupe *g* qui y figure, la sous-chaîne correspondant au groupe *g* " +"(équivalente à ``m.group(g)``) est ::" + +#: ../Doc/library/re.rst:1262 +msgid "" +"Note that ``m.start(group)`` will equal ``m.end(group)`` if *group* matched " +"a null string. For example, after ``m = re.search('b(c?)', 'cba')``, ``m." +"start(0)`` is 1, ``m.end(0)`` is 2, ``m.start(1)`` and ``m.end(1)`` are both " +"2, and ``m.start(2)`` raises an :exc:`IndexError` exception." +msgstr "" +"Notez que ``m.start(group)`` sera égal à ``m.end(group)`` si *group* " +"correspond à une chaîne vide. Par exemple, après ``m = re.search('b(c?)', " +"'cba')``, ``m.start(0)`` vaut 1, ``m.end(0)`` vaut 2, ``m.start(1)`` et ``m." +"end(1)`` valent tous deux 2, et ``m.start(2)`` lève une exception :exc:" +"`IndexError`." + +#: ../Doc/library/re.rst:1267 +msgid "An example that will remove *remove_this* from email addresses::" +msgstr "Un exemple qui supprimera *remove_this* d'une adresse mail ::" + +#: ../Doc/library/re.rst:1277 +msgid "" +"For a match *m*, return the 2-tuple ``(m.start(group), m.end(group))``. Note " +"that if *group* did not contribute to the match, this is ``(-1, -1)``. " +"*group* defaults to zero, the entire match." +msgstr "" +"Pour un objet de correspondance *m*, renvoie le *tuple* ``(m.start(group), m." +"end(group))``. Notez que si *group* ne figure pas dans la correspondance, " +"``(-1, -1)`` est renvoyé. *group* vaut par défaut zéro, pour la " +"correspondance entière." + +#: ../Doc/library/re.rst:1284 +msgid "" +"The value of *pos* which was passed to the :meth:`~Pattern.search` or :meth:" +"`~Pattern.match` method of a :ref:`regex object `. This is the " +"index into the string at which the RE engine started looking for a match." +msgstr "" +"La valeur de *pos* qui a été passée à la méthode :meth:`~Pattern.search` ou :" +"meth:`~Pattern.match` d'un :ref:`objet expression rationnelle `. C'est l'index dans la chaîne à partir duquel le moteur " +"d'expressions rationnelles recherche une correspondance." + +#: ../Doc/library/re.rst:1291 +msgid "" +"The value of *endpos* which was passed to the :meth:`~Pattern.search` or :" +"meth:`~Pattern.match` method of a :ref:`regex object `. This is " +"the index into the string beyond which the RE engine will not go." +msgstr "" +"La valeur de *endpos* qui a été passée à la méthode :meth:`~Pattern.search` " +"ou :meth:`~Pattern.match` d'un :ref:`objet expression rationnelle `. C'est l'index dans la chaîne que le moteur d'expressions " +"rationnelles ne dépassera pas." + +#: ../Doc/library/re.rst:1298 +msgid "" +"The integer index of the last matched capturing group, or ``None`` if no " +"group was matched at all. For example, the expressions ``(a)b``, ``((a)" +"(b))``, and ``((ab))`` will have ``lastindex == 1`` if applied to the string " +"``'ab'``, while the expression ``(a)(b)`` will have ``lastindex == 2``, if " +"applied to the same string." +msgstr "" +"L'index entier du dernier groupe de capture validé, ou ``None`` si aucun " +"groupe ne correspondait. Par exemple, les expressions ``(a)b``, ``((a)(b))`` " +"et ``((ab))`` auront un ``lastindex == 1`` si appliquées à la chaîne " +"``'ab'``, alors que l'expression ``(a)(b)`` aura un ``lastindex == 2`` si " +"appliquée à la même chaîne." + +#: ../Doc/library/re.rst:1307 +msgid "" +"The name of the last matched capturing group, or ``None`` if the group " +"didn't have a name, or if no group was matched at all." +msgstr "" +"Le nom du dernier groupe capturant validé, ou ``None`` si le groupe n'a pas " +"de nom, ou si aucun groupe ne correspondait." + +#: ../Doc/library/re.rst:1313 +msgid "" +"The :ref:`regular expression object ` whose :meth:`~Pattern." +"match` or :meth:`~Pattern.search` method produced this match instance." +msgstr "" +":ref:`L'expression rationnelle ` dont la méthode :meth:`~Pattern." +"match` ou :meth:`~Pattern.search` a produit cet objet de correspondance." + +#: ../Doc/library/re.rst:1319 +msgid "The string passed to :meth:`~Pattern.match` or :meth:`~Pattern.search`." +msgstr "La chaîne passée à :meth:`~Pattern.match` ou :meth:`~Pattern.search`." + +#: ../Doc/library/re.rst:1322 +msgid "" +"Added support of :func:`copy.copy` and :func:`copy.deepcopy`. Match objects " +"are considered atomic." +msgstr "" +"Ajout du support des fonctions :func:`copy.copy` et :func:`copy.deepcopy`. " +"Les objets correspondants sont considérés atomiques." + +#: ../Doc/library/re.rst:1330 +msgid "Regular Expression Examples" +msgstr "Exemples d'expressions rationnelles" + +#: ../Doc/library/re.rst:1334 +msgid "Checking for a Pair" +msgstr "Rechercher une paire" + +#: ../Doc/library/re.rst:1336 +msgid "" +"In this example, we'll use the following helper function to display match " +"objects a little more gracefully:" +msgstr "" +"Dans cet exemple, nous utiliserons cette fonction de facilité pour afficher " +"les objets de correspondance sous une meilleure forme :" + +#: ../Doc/library/re.rst:1346 +msgid "" +"Suppose you are writing a poker program where a player's hand is represented " +"as a 5-character string with each character representing a card, \"a\" for " +"ace, \"k\" for king, \"q\" for queen, \"j\" for jack, \"t\" for 10, and " +"\"2\" through \"9\" representing the card with that value." +msgstr "" +"Supposez que vous écriviez un jeu de poker où la main d'un joueur est " +"représentée par une chaîne de 5 caractères avec chaque caractère " +"représentant une carte, \"a\" pour l'as, \"k\" pour le roi (*king*), \"q\" " +"pour la reine (*queen*), \"j\" pour le valet (*jack*), \"t\" pour 10 " +"(*ten*), et les caractères de \"2\" à \"9\" représentant les cartes avec ces " +"valeurs." + +#: ../Doc/library/re.rst:1351 +msgid "To see if a given string is a valid hand, one could do the following::" +msgstr "" +"Pour vérifier qu'une chaîne donnée est une main valide, on pourrait faire " +"comme suit ::" + +#: ../Doc/library/re.rst:1361 +msgid "" +"That last hand, ``\"727ak\"``, contained a pair, or two of the same valued " +"cards. To match this with a regular expression, one could use backreferences " +"as such::" +msgstr "" +"La dernière main, ``\"727ak\"``, contenait une paire, deux cartes de la même " +"valeur. Pour valider cela avec une expression rationnelle, on pourrait " +"utiliser des références arrière comme ::" + +#: ../Doc/library/re.rst:1371 +msgid "" +"To find out what card the pair consists of, one could use the :meth:`~Match." +"group` method of the match object in the following manner:" +msgstr "" +"Pour trouver de quelle carte est composée la paire, on pourrait utiliser la " +"méthode :meth:`~Match.group` de l'objet de correspondance de la manière " +"suivante :" + +#: ../Doc/library/re.rst:1391 +msgid "Simulating scanf()" +msgstr "Simuler *scanf()*" + +#: ../Doc/library/re.rst:1395 +msgid "" +"Python does not currently have an equivalent to :c:func:`scanf`. Regular " +"expressions are generally more powerful, though also more verbose, than :c:" +"func:`scanf` format strings. The table below offers some more-or-less " +"equivalent mappings between :c:func:`scanf` format tokens and regular " +"expressions." +msgstr "" +"Python n'a actuellement pas d'équivalent à la fonction C :c:func:`scanf`. " +"Les expressions rationnelles sont généralement plus puissantes, mais aussi " +"plus verbeuses, que les chaînes de format :c:func:`scanf`. Le tableau " +"suivant présente des expressions rationnelles plus ou moins équivalentes aux " +"éléments de formats de :c:func:`scanf`." + +#: ../Doc/library/re.rst:1402 +msgid ":c:func:`scanf` Token" +msgstr "Élément de :c:func:`scanf`" + +#: ../Doc/library/re.rst:1402 +msgid "Regular Expression" +msgstr "Expression rationnelle" + +#: ../Doc/library/re.rst:1404 +msgid "``%c``" +msgstr "``%c``" + +#: ../Doc/library/re.rst:1406 +msgid "``%5c``" +msgstr "``%5c``" + +#: ../Doc/library/re.rst:1406 +msgid "``.{5}``" +msgstr "``.{5}``" + +#: ../Doc/library/re.rst:1408 +msgid "``%d``" +msgstr "``%d``" + +#: ../Doc/library/re.rst:1408 +msgid "``[-+]?\\d+``" +msgstr "``[-+]?\\d+``" + +#: ../Doc/library/re.rst:1410 +msgid "``%e``, ``%E``, ``%f``, ``%g``" +msgstr "``%e``, ``%E``, ``%f``, ``%g``" + +#: ../Doc/library/re.rst:1410 +msgid "``[-+]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?``" +msgstr "``[-+]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?``" + +#: ../Doc/library/re.rst:1412 +msgid "``%i``" +msgstr "``%i``" + +#: ../Doc/library/re.rst:1412 +msgid "``[-+]?(0[xX][\\dA-Fa-f]+|0[0-7]*|\\d+)``" +msgstr "``[-+]?(0[xX][\\dA-Fa-f]+|0[0-7]*|\\d+)``" + +#: ../Doc/library/re.rst:1414 +msgid "``%o``" +msgstr "``%o``" + +#: ../Doc/library/re.rst:1414 +msgid "``[-+]?[0-7]+``" +msgstr "``[-+]?[0-7]+``" + +#: ../Doc/library/re.rst:1416 +msgid "``%s``" +msgstr "``%s``" + +#: ../Doc/library/re.rst:1416 +msgid "``\\S+``" +msgstr "``\\S+``" + +#: ../Doc/library/re.rst:1418 +msgid "``%u``" +msgstr "``%u``" + +#: ../Doc/library/re.rst:1418 +msgid "``\\d+``" +msgstr "``\\d+``" + +#: ../Doc/library/re.rst:1420 +msgid "``%x``, ``%X``" +msgstr "``%x``, ``%X``" + +#: ../Doc/library/re.rst:1420 +msgid "``[-+]?(0[xX])?[\\dA-Fa-f]+``" +msgstr "``[-+]?(0[xX])?[\\dA-Fa-f]+``" + +#: ../Doc/library/re.rst:1423 +msgid "To extract the filename and numbers from a string like ::" +msgstr "" +"Pour extraire le nom de fichier et les nombres depuis une chaîne comme ::" + +#: ../Doc/library/re.rst:1427 +msgid "you would use a :c:func:`scanf` format like ::" +msgstr "vous utiliseriez un format :c:func:`scanf` comme ::" + +#: ../Doc/library/re.rst:1431 +msgid "The equivalent regular expression would be ::" +msgstr "L'expression rationnelle équivalente serait ::" + +#: ../Doc/library/re.rst:1439 +msgid "search() vs. match()" +msgstr "search() vs. match()" + +#: ../Doc/library/re.rst:1443 +msgid "" +"Python offers two different primitive operations based on regular " +"expressions: :func:`re.match` checks for a match only at the beginning of " +"the string, while :func:`re.search` checks for a match anywhere in the " +"string (this is what Perl does by default)." +msgstr "" +"Python offre deux opérations primitives basées sur les expressions " +"rationnelles : :func:`re.match` cherche une correspondance uniquement au " +"début de la chaîne, tandis que :func:`re.search` en recherche une n'importe " +"où dans la chaîne (ce que fait Perl par défaut)." + +#: ../Doc/library/re.rst:1454 +msgid "" +"Regular expressions beginning with ``'^'`` can be used with :func:`search` " +"to restrict the match at the beginning of the string::" +msgstr "" +"Les expressions rationnelles commençant par ``'^'`` peuvent être utilisées " +"avec :func:`search` pour restreindre la recherche au début de la chaîne ::" + +#: ../Doc/library/re.rst:1462 +msgid "" +"Note however that in :const:`MULTILINE` mode :func:`match` only matches at " +"the beginning of the string, whereas using :func:`search` with a regular " +"expression beginning with ``'^'`` will match at the beginning of each " +"line. ::" +msgstr "" +"Notez cependant qu'en mode :const:`MULTILINE`, :func:`match` ne recherche " +"qu'au début de la chaîne, alors que :func:`search` avec une expression " +"rationnelle commençant par ``'^'`` recherchera au début de chaque ligne. ::" + +#: ../Doc/library/re.rst:1472 +msgid "Making a Phonebook" +msgstr "Construire un répertoire téléphonique" + +#: ../Doc/library/re.rst:1474 +msgid "" +":func:`split` splits a string into a list delimited by the passed pattern. " +"The method is invaluable for converting textual data into data structures " +"that can be easily read and modified by Python as demonstrated in the " +"following example that creates a phonebook." +msgstr "" +":func:`split` découpe une chaîne en une liste délimitée par le motif donné. " +"La méthode est inestimable pour convertir des données textuelles vers des " +"structures de données qui peuvent être lues et modifiées par Python comme " +"démontré dans l'exemple suivant qui crée un répertoire téléphonique." + +#: ../Doc/library/re.rst:1479 +msgid "" +"First, here is the input. Normally it may come from a file, here we are " +"using triple-quoted string syntax::" +msgstr "" +"Premièrement, voici l'entrée. Elle provient normalement d'un fichier, nous " +"utilisons ici une chaîne à guillemets triples ::" + +#: ../Doc/library/re.rst:1490 +msgid "" +"The entries are separated by one or more newlines. Now we convert the string " +"into a list with each nonempty line having its own entry:" +msgstr "" +"Les entrées sont séparées par un saut de ligne ou plus. Nous convertissons " +"maintenant la chaîne en une liste où chaque ligne non vide aura sa propre " +"entrée :" + +#: ../Doc/library/re.rst:1503 +msgid "" +"Finally, split each entry into a list with first name, last name, telephone " +"number, and address. We use the ``maxsplit`` parameter of :func:`split` " +"because the address has spaces, our splitting pattern, in it:" +msgstr "" +"Finalement, on sépare chaque entrée en une liste avec prénom, nom, numéro de " +"téléphone et adresse. Nous utilisons le paramètre ``maxsplit`` de :func:" +"`split` parce que l'adresse contient des espaces, qui sont notre motif de " +"séparation :" + +#: ../Doc/library/re.rst:1516 +msgid "" +"The ``:?`` pattern matches the colon after the last name, so that it does " +"not occur in the result list. With a ``maxsplit`` of ``4``, we could " +"separate the house number from the street name:" +msgstr "" +"Le motif ``:?`` trouve les deux points derrière le nom de famille, pour " +"qu'ils n'apparaissent pas dans la liste résultante. Avec un ``maxsplit`` de " +"``4``, nous pourrions séparer le numéro du nom de la rue :" + +#: ../Doc/library/re.rst:1531 +msgid "Text Munging" +msgstr "Mélanger les lettres des mots" + +#: ../Doc/library/re.rst:1533 +msgid "" +":func:`sub` replaces every occurrence of a pattern with a string or the " +"result of a function. This example demonstrates using :func:`sub` with a " +"function to \"munge\" text, or randomize the order of all the characters in " +"each word of a sentence except for the first and last characters::" +msgstr "" +":func:`sub` remplace toutes les occurrences d'un motif par une chaîne ou le " +"résultat d'une fonction. Cet exemple le montre, en utilisant :func:`sub` " +"avec une fonction qui mélange aléatoirement les caractères de chaque mot " +"dans une phrase (à l'exception des premiers et derniers caractères) ::" + +#: ../Doc/library/re.rst:1550 +msgid "Finding all Adverbs" +msgstr "Trouver tous les adverbes" + +#: ../Doc/library/re.rst:1552 +msgid "" +":func:`findall` matches *all* occurrences of a pattern, not just the first " +"one as :func:`search` does. For example, if a writer wanted to find all of " +"the adverbs in some text, they might use :func:`findall` in the following " +"manner::" +msgstr "" +":func:`findall` trouve *toutes* les occurrences d'un motif, pas juste la " +"première comme le fait :func:`search`. Par exemple, si un(e) écrivain(e) " +"voulait trouver tous les adverbes dans un texte, il/elle devrait utiliser :" +"func:`findall` de la manière suivante ::" + +#: ../Doc/library/re.rst:1563 +msgid "Finding all Adverbs and their Positions" +msgstr "Trouver tous les adverbes et leurs positions" + +#: ../Doc/library/re.rst:1565 +msgid "" +"If one wants more information about all matches of a pattern than the " +"matched text, :func:`finditer` is useful as it provides :ref:`match objects " +"` instead of strings. Continuing with the previous example, " +"if a writer wanted to find all of the adverbs *and their positions* in some " +"text, they would use :func:`finditer` in the following manner::" +msgstr "" +"Pour obtenir plus d'informations sur les correspondances que juste le texte " +"trouvé, :func:`finditer` est utile en fournissant des :ref:`objets de " +"correspondance ` plutôt que des chaînes. En continuant avec " +"le précédent exemple, si l'écrivain(e) voulait trouver tous les adverbes *et " +"leurs positions* dans un texte, il/elle utiliserait :func:`finditer` de la " +"manière suivante ::" + +#: ../Doc/library/re.rst:1579 +msgid "Raw String Notation" +msgstr "Notation brutes de chaînes" + +#: ../Doc/library/re.rst:1581 +msgid "" +"Raw string notation (``r\"text\"``) keeps regular expressions sane. Without " +"it, every backslash (``'\\'``) in a regular expression would have to be " +"prefixed with another one to escape it. For example, the two following " +"lines of code are functionally identical::" +msgstr "" +"La notation brute de chaînes (``r\"text\"``) garde saines les expressions " +"rationnelles. Sans elle, chaque *backslash* (``'\\'``) dans une expression " +"rationnelle devrait être préfixé d'un autre *backslash* pour l'échapper. " +"Par exemple, les deux lignes de code suivantes sont fonctionnellement " +"identiques ::" + +#: ../Doc/library/re.rst:1591 +msgid "" +"When one wants to match a literal backslash, it must be escaped in the " +"regular expression. With raw string notation, this means ``r\"\\\\\"``. " +"Without raw string notation, one must use ``\"\\\\\\\\\"``, making the " +"following lines of code functionally identical::" +msgstr "" +"Pour rechercher un *backslash* littéral, il faut l'échapper dans " +"l'expression rationnelle. Avec la notation brute, cela signifie ``r\"\\\\" +"\"``. Sans elle, il faudrait utiliser ``\"\\\\\\\\\"``, faisant que les " +"deux lignes de code suivantes sont fonctionnellement identiques ::" + +#: ../Doc/library/re.rst:1603 +msgid "Writing a Tokenizer" +msgstr "Écrire un analyseur lexical" + +#: ../Doc/library/re.rst:1605 +msgid "" +"A `tokenizer or scanner `_ " +"analyzes a string to categorize groups of characters. This is a useful " +"first step in writing a compiler or interpreter." +msgstr "" +"Un `analyseur lexical ou scanner `_ analyse une chaîne pour catégoriser les groupes de " +"caractères. C'est une première étape utile dans l'écriture d'un compilateur " +"ou d'un interpréteur." + +#: ../Doc/library/re.rst:1609 +msgid "" +"The text categories are specified with regular expressions. The technique " +"is to combine those into a single master regular expression and to loop over " +"successive matches::" +msgstr "" +"Les catégories de texte sont spécifiées par des expressions rationnelles. " +"La technique est de les combiner dans une unique expression rationnelle " +"maîtresse, et de boucler sur les correspondances successives ::" + +#: ../Doc/library/re.rst:1661 +msgid "The tokenizer produces the following output::" +msgstr "L'analyseur produit la sortie suivante ::" + +#: ../Doc/library/re.rst:1684 +msgid "" +"Friedl, Jeffrey. Mastering Regular Expressions. 3rd ed., O'Reilly Media, " +"2009. The third edition of the book no longer covers Python at all, but the " +"first edition covered writing good regular expression patterns in great " +"detail." +msgstr "" +"*Friedl, Jeffrey. Mastering Regular Expressions. 3rd ed., O'Reilly Media, " +"2009*. La troisième édition de ce livre ne couvre plus du tout Python, mais " +"la première version explique en détails comment écrire de bonnes expressions " +"rationnelles." diff --git a/library/readline.po b/library/readline.po new file mode 100644 index 000000000..b1486beee --- /dev/null +++ b/library/readline.po @@ -0,0 +1,474 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-08-16 23:19+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/readline.rst:2 +msgid ":mod:`readline` --- GNU readline interface" +msgstr ":mod:`readline` — interface pour GNU *readline*" + +#: ../Doc/library/readline.rst:12 +msgid "" +"The :mod:`readline` module defines a number of functions to facilitate " +"completion and reading/writing of history files from the Python interpreter. " +"This module can be used directly, or via the :mod:`rlcompleter` module, " +"which supports completion of Python identifiers at the interactive prompt. " +"Settings made using this module affect the behaviour of both the " +"interpreter's interactive prompt and the prompts offered by the built-in :" +"func:`input` function." +msgstr "" +"Le module :mod:`readline` définit des fonctions pour faciliter la complétion " +"et la lecture/écriture des fichiers d'historique depuis l'interpréteur " +"Python. Ce module peut être utilisé directement, ou depuis le module :mod:" +"`rlcompleter`, qui gère la complétion des mots clefs dans l'invite de " +"commande interactive. Les paramétrages faits en utilisant ce module " +"affectent à la fois le comportement de l'invite de commande interactive et " +"l'invite de commande fournie par la fonction native :func:`input`." + +#: ../Doc/library/readline.rst:20 +msgid "" +"Readline keybindings may be configured via an initialization file, typically " +"``.inputrc`` in your home directory. See `Readline Init File `_ in the GNU Readline " +"manual for information about the format and allowable constructs of that " +"file, and the capabilities of the Readline library in general." +msgstr "" +"L'association de touches de *readline* peut être configurée via un fichier " +"d'initialisation, normalement nommé ``.inputrc`` dans votre répertoire " +"d’accueil. Voir `Readline Init File `_ dans le manuel GNU pour *readline* pour des " +"information à propos du format et de la construction autorisée de ce " +"fichier, ainsi que les possibilités de la bibliothèque *readline* en général." + +#: ../Doc/library/readline.rst:29 +msgid "" +"The underlying Readline library API may be implemented by the ``libedit`` " +"library instead of GNU readline. On macOS the :mod:`readline` module detects " +"which library is being used at run time." +msgstr "" +"L'API de la bibliothèque utilisée par *readline* peut être implémentée par " +"la bibliothèque ``libedit`` au lieu de *GNU readline*. Sur MacOS le module :" +"mod:`readline` détecte quelle bibliothèque est utilisée au cours de " +"l'exécution du programme." + +#: ../Doc/library/readline.rst:34 +msgid "" +"The configuration file for ``libedit`` is different from that of GNU " +"readline. If you programmatically load configuration strings you can check " +"for the text \"libedit\" in :const:`readline.__doc__` to differentiate " +"between GNU readline and libedit." +msgstr "" +"Le fichier de configuration pour *libedit* est différent de celui de *GNU " +"readline*. Si, dans votre programme, vous chargez les chaines de " +"configuration vous pouvez valider le texte *libedit* dans :const:`readline." +"__doc__` pour faire la différence entre *GNU readline* et *libedit*." + +#: ../Doc/library/readline.rst:39 +msgid "" +"If you use *editline*/``libedit`` readline emulation on macOS, the " +"initialization file located in your home directory is named ``.editrc``. For " +"example, the following content in ``~/.editrc`` will turn ON *vi* " +"keybindings and TAB completion::" +msgstr "" +"Si vous utilisez l'émulation *editline*/``libedit`` sur MacOS, le fichier " +"d'initialisation situé dans votre répertoire d’accueil est appelé ``." +"editrc``. Par exemple, le contenu suivant dans ``~/.editrc`` active " +"l'association de touches *vi* et la complétion avec la touche de " +"tabulation ::" + +#: ../Doc/library/readline.rst:49 +msgid "Init file" +msgstr "Fichier d'initialisation" + +#: ../Doc/library/readline.rst:51 +msgid "The following functions relate to the init file and user configuration:" +msgstr "" +"Les fonctions suivantes se rapportent au fichier d'initialisation et à la " +"configuration utilisateur." + +#: ../Doc/library/readline.rst:56 +msgid "" +"Execute the init line provided in the *string* argument. This calls :c:func:" +"`rl_parse_and_bind` in the underlying library." +msgstr "" +"Exécute la ligne d'initialisation fournie dans l'argument *string*. Cela " +"appelle la fonction :c:func:`rl_parse_and_bind` de la bibliothèque sous-" +"jacente." + +#: ../Doc/library/readline.rst:62 +msgid "" +"Execute a readline initialization file. The default filename is the last " +"filename used. This calls :c:func:`rl_read_init_file` in the underlying " +"library." +msgstr "" +"Exécute un fichier d'initialisation *readline*. Le nom de fichier par défaut " +"est le dernier nom de fichier utilisé. Cela appelle la fonction :c:func:" +"`rl_read_init_file` de la bibliothèque sous-jacente." + +#: ../Doc/library/readline.rst:67 +msgid "Line buffer" +msgstr "Tampon de ligne" + +#: ../Doc/library/readline.rst:69 +msgid "The following functions operate on the line buffer:" +msgstr "Les fonctions suivantes opèrent sur le tampon de ligne:" + +#: ../Doc/library/readline.rst:74 +msgid "" +"Return the current contents of the line buffer (:c:data:`rl_line_buffer` in " +"the underlying library)." +msgstr "" +"Renvoie le contenu courant du tampon de ligne (:c:data:`rl_line_buffer` dans " +"la bibliothèque sous-jacente)." + +#: ../Doc/library/readline.rst:80 +msgid "" +"Insert text into the line buffer at the cursor position. This calls :c:func:" +"`rl_insert_text` in the underlying library, but ignores the return value." +msgstr "" +"Insère du texte dans le tampon de ligne à la position du curseur. Cela " +"appelle la fonction :c:func:`rl_insert_text` de la bibliothèque sous-" +"jacente, mais ignore la valeur de retour." + +#: ../Doc/library/readline.rst:87 +msgid "" +"Change what's displayed on the screen to reflect the current contents of the " +"line buffer. This calls :c:func:`rl_redisplay` in the underlying library." +msgstr "" +"Change ce qui est affiché sur l'écran pour représenter le contenu courant de " +"la ligne de tampon. Cela appelle la fonction :c:func:`rl_redisplay` dans la " +"bibliothèque sous-jacente." + +#: ../Doc/library/readline.rst:92 +msgid "History file" +msgstr "Fichier d'historique" + +#: ../Doc/library/readline.rst:94 +msgid "The following functions operate on a history file:" +msgstr "les fonctions suivantes opèrent sur un fichier d'historique :" + +#: ../Doc/library/readline.rst:99 +msgid "" +"Load a readline history file, and append it to the history list. The default " +"filename is :file:`~/.history`. This calls :c:func:`read_history` in the " +"underlying library." +msgstr "" +"Charge un fichier d'historique de *readline*, et l'ajoute à la liste " +"d'historique. Le fichier par défaut est :file:`~/.history`. Cela appelle la " +"fonction :c:func:`read_history` de la bibliothèque sous-jacente." + +#: ../Doc/library/readline.rst:106 +msgid "" +"Save the history list to a readline history file, overwriting any existing " +"file. The default filename is :file:`~/.history`. This calls :c:func:" +"`write_history` in the underlying library." +msgstr "" +"Enregistre la liste de l'historique dans un fichier d'historique de " +"*readline*, en écrasant un éventuel fichier existant. Le nom de fichier par " +"défaut est :file:`~/.history`. Cela appelle la fonction :c:func:" +"`write_history` de la bibliothèque sous-jacente." + +#: ../Doc/library/readline.rst:113 +msgid "" +"Append the last *nelements* items of history to a file. The default " +"filename is :file:`~/.history`. The file must already exist. This calls :c:" +"func:`append_history` in the underlying library. This function only exists " +"if Python was compiled for a version of the library that supports it." +msgstr "" +"Ajoute les derniers objets *nelements* de l'historique dans un fichier. Le " +"nom de fichier par défaut est :file:`~/.history`. Le fichier doit déjà " +"exister. Cela appelle la fonction :c:func:`append_history` de la " +"bibliothèque sous-jacente." + +#: ../Doc/library/readline.rst:125 +msgid "" +"Set or return the desired number of lines to save in the history file. The :" +"func:`write_history_file` function uses this value to truncate the history " +"file, by calling :c:func:`history_truncate_file` in the underlying library. " +"Negative values imply unlimited history file size." +msgstr "" +"Définit ou renvoie le nombre souhaité de lignes à enregistrer dans le " +"fichier d'historique. La fonction :func:`write_history_file` utilise cette " +"valeur pour tronquer le fichier d'historique, en appelant :c:func:" +"`history_truncate_file` de la bibliothèque sous-jacente. Les valeurs " +"négatives impliquent une taille de fichier d'historique illimitée." + +#: ../Doc/library/readline.rst:133 +msgid "History list" +msgstr "Liste d'historique" + +#: ../Doc/library/readline.rst:135 +msgid "The following functions operate on a global history list:" +msgstr "Les fonctions suivantes opèrent sur une liste d'historique globale :" + +#: ../Doc/library/readline.rst:140 +msgid "" +"Clear the current history. This calls :c:func:`clear_history` in the " +"underlying library. The Python function only exists if Python was compiled " +"for a version of the library that supports it." +msgstr "" +"Effacer l'historique courant. Cela appelle la fonction :c:func:" +"`clear_history` de la bibliothèque sous-jacente. La fonction Python existe " +"seulement si Python à été compilé pour une version de la bibliothèque qui le " +"gère." + +#: ../Doc/library/readline.rst:147 +msgid "" +"Return the number of items currently in the history. (This is different " +"from :func:`get_history_length`, which returns the maximum number of lines " +"that will be written to a history file.)" +msgstr "" +"Renvoie le nombre d'objets actuellement dans l'historique. (C'est différent " +"de :func:`get_history_length`, qui renvoie le nombre maximum de lignes qui " +"vont être écrites dans un fichier d'historique.)" + +#: ../Doc/library/readline.rst:154 +msgid "" +"Return the current contents of history item at *index*. The item index is " +"one-based. This calls :c:func:`history_get` in the underlying library." +msgstr "" +"Renvoie le contenu courant de l'objet d'historique à *index*. L'index de " +"l'objet commence à 1. Cela appelle :c:func:`history_get` de la bibliothèque " +"sous-jacente." + +#: ../Doc/library/readline.rst:160 +msgid "" +"Remove history item specified by its position from the history. The position " +"is zero-based. This calls :c:func:`remove_history` in the underlying " +"library." +msgstr "" +"Supprime l'objet de l'historique défini par sa position depuis l'historique. " +"L'index de la position commence à zéro. Cela appelle la fonction :c:func:" +"`remove_history` de la bibliothèque sous-jacente." + +#: ../Doc/library/readline.rst:167 +msgid "" +"Replace history item specified by its position with *line*. The position is " +"zero-based. This calls :c:func:`replace_history_entry` in the underlying " +"library." +msgstr "" +"Remplace un objet de l'historique à la position définie par *line*. L'index " +"de la position commence à zéro. Cela appelle :c:func:`replace_history_entry` " +"de la bibliothèque sous-jacente." + +#: ../Doc/library/readline.rst:174 +msgid "" +"Append *line* to the history buffer, as if it was the last line typed. This " +"calls :c:func:`add_history` in the underlying library." +msgstr "" +"Ajoute *line* au tampon d'historique, comme si c'était la dernière ligne " +"saisie. Cela appelle la fonction :c:func:`add_history` de la libraire sous-" +"jacente." + +#: ../Doc/library/readline.rst:180 +msgid "" +"Enable or disable automatic calls to :c:func:`add_history` when reading " +"input via readline. The *enabled* argument should be a Boolean value that " +"when true, enables auto history, and that when false, disables auto history." +msgstr "" +"Active ou désactive les appels automatiques à la fonction :c:func:" +"`add_history` lors de la lecture d'une entrée via *readline*. L'argument " +"*enabled* doit être une valeur booléenne qui lorsqu'elle est vraie, active " +"l'historique automatique, et qui lorsqu'elle est fausse, désactive " +"l'historique automatique." + +#: ../Doc/library/readline.rst:193 +msgid "Startup hooks" +msgstr "Fonctions de rappel au démarrage" + +#: ../Doc/library/readline.rst:198 +msgid "" +"Set or remove the function invoked by the :c:data:`rl_startup_hook` callback " +"of the underlying library. If *function* is specified, it will be used as " +"the new hook function; if omitted or ``None``, any function already " +"installed is removed. The hook is called with no arguments just before " +"readline prints the first prompt." +msgstr "" +"Définit ou supprime la fonction invoquée par le la fonction de retour :c:" +"data:`rl_startup_hook` de la bibliothèque sous-jacente. Si *function* est " +"spécifié, il est utilisé en tant que nouvelle fonction de rappel ; si omis " +"ou ``None``, toute fonction déjà installée est supprimée. La fonction de " +"rappel est appelée sans arguments juste avant que *readline* affiche la " +"première invite de commande." + +#: ../Doc/library/readline.rst:207 +msgid "" +"Set or remove the function invoked by the :c:data:`rl_pre_input_hook` " +"callback of the underlying library. If *function* is specified, it will be " +"used as the new hook function; if omitted or ``None``, any function already " +"installed is removed. The hook is called with no arguments after the first " +"prompt has been printed and just before readline starts reading input " +"characters. This function only exists if Python was compiled for a version " +"of the library that supports it." +msgstr "" +"Définit ou supprime la fonction invoquée par la fonction de retour :c:data:" +"`rl_pre_input_hook` de la bibliothèque sous-jacente. Si *function* est " +"spécifié, il sera utilisé par la nouvelle fonction de rappel ; si omis ou " +"``None``, toute fonction déjà installée est supprimée. La fonction de rappel " +"est appelée sans arguments après que la première invite de commande ait été " +"affichée et juste avant que *readline* commence à lire les caractères " +"saisis. Cette fonction existe seulement si Python a été compilé pour une " +"version de la bibliothèque qui le gère." + +#: ../Doc/library/readline.rst:217 +msgid "Completion" +msgstr "Complétion" + +#: ../Doc/library/readline.rst:219 +msgid "" +"The following functions relate to implementing a custom word completion " +"function. This is typically operated by the Tab key, and can suggest and " +"automatically complete a word being typed. By default, Readline is set up " +"to be used by :mod:`rlcompleter` to complete Python identifiers for the " +"interactive interpreter. If the :mod:`readline` module is to be used with a " +"custom completer, a different set of word delimiters should be set." +msgstr "" +"Les fonctions suivantes relatent comment implémenter une fonction de " +"complétion d'un mot spécifique. C'est typiquement déclenché par la touche " +"Tab, et peut suggérer et automatiquement compléter un mot en cours de " +"saisie. Par défaut, Readline est configuré pour être utilisé par :mod:" +"`rlcompleter` pour compléter les mots clefs de Python pour l'interpréteur " +"interactif. Si le module :mod:`readline` doit être utilisé avec une " +"complétion spécifique, un ensemble de mots délimiteurs doivent être définis." + +#: ../Doc/library/readline.rst:229 +msgid "" +"Set or remove the completer function. If *function* is specified, it will " +"be used as the new completer function; if omitted or ``None``, any completer " +"function already installed is removed. The completer function is called as " +"``function(text, state)``, for *state* in ``0``, ``1``, ``2``, ..., until it " +"returns a non-string value. It should return the next possible completion " +"starting with *text*." +msgstr "" +"Définit ou supprime la fonction de complétion. Si *function* est spécifié, " +"il sera utilisé en tant que nouvelle fonction de complétion; si omis ou " +"``None``, toute fonction de complétion déjà installé est supprimé. La " +"fonction de complétion est appelée telle que ``function(text, state)``, pour " +"*state* valant ``0``, ``1``, ``2``, ..., jusqu'à ce qu'elle renvoie une " +"valeur qui n'est pas une chaîne de caractères. Elle doit renvoyer les " +"prochaines complétions possibles commençant par *text*." + +#: ../Doc/library/readline.rst:236 +msgid "" +"The installed completer function is invoked by the *entry_func* callback " +"passed to :c:func:`rl_completion_matches` in the underlying library. The " +"*text* string comes from the first parameter to the :c:data:" +"`rl_attempted_completion_function` callback of the underlying library." +msgstr "" +"La fonction de complétion installée est invoquée par la fonction de retour " +"*entry_func* passée à :c:func:`rl_completion_matches` de la bibliothèque " +"sous-jacente. La chaîne de caractère *text* va du premier paramètres vers la " +"fonction de retour :c:data:`rl_attempted_completion_function` de la " +"bibliothèque sous-jacente." + +#: ../Doc/library/readline.rst:245 +msgid "" +"Get the completer function, or ``None`` if no completer function has been " +"set." +msgstr "" +"Récupère la fonction de complétion, ou ``None`` si aucune fonction de " +"complétion n'a été définie." + +#: ../Doc/library/readline.rst:250 +msgid "" +"Get the type of completion being attempted. This returns the :c:data:" +"`rl_completion_type` variable in the underlying library as an integer." +msgstr "" +"Récupère le type de complétion essayé. Cela renvoie la variable :c:data:" +"`rl_completion_type` dans la bibliothèque sous-jacente en tant qu'entier." + +#: ../Doc/library/readline.rst:258 +msgid "" +"Get the beginning or ending index of the completion scope. These indexes are " +"the *start* and *end* arguments passed to the :c:data:" +"`rl_attempted_completion_function` callback of the underlying library." +msgstr "" +"Récupère l'indexe de début ou de fin d'un contexte de complétion. Ces " +"indexes sont les arguments *start* et *end* passés à la fonction de retour :" +"c:data:`rl_attempted_completion_function` de la bibliothèque sous-jacente." + +#: ../Doc/library/readline.rst:267 +msgid "" +"Set or get the word delimiters for completion. These determine the start of " +"the word to be considered for completion (the completion scope). These " +"functions access the :c:data:`rl_completer_word_break_characters` variable " +"in the underlying library." +msgstr "" +"Définit ou récupère les mots délimitants pour la complétion. Ceux-ci " +"déterminent le début du mot devant être considéré pour la complétion (le " +"contexte de la complétion). Ces fonctions accèdent à la variable :c:data:" +"`rl_completer_word_break_characters` de la bibliothèque sous-jacente." + +#: ../Doc/library/readline.rst:275 +msgid "" +"Set or remove the completion display function. If *function* is specified, " +"it will be used as the new completion display function; if omitted or " +"``None``, any completion display function already installed is removed. " +"This sets or clears the :c:data:`rl_completion_display_matches_hook` " +"callback in the underlying library. The completion display function is " +"called as ``function(substitution, [matches], longest_match_length)`` once " +"each time matches need to be displayed." +msgstr "" +"Définit ou supprime la fonction d'affichage de la complétion. Si *function* " +"est spécifié, il sera utilisé en tant que nouvelle fonction d'affichage de " +"complétion; si omis ou ``None``, toute fonction de complétion déjà installée " +"est supprimée. Cela définit ou supprime la fonction de retour :c:data:" +"`rl_completion_display_matches_hook` dans la bibliothèque sous-jacente. La " +"fonction d'affichage de complétion est appelée telle que " +"``function(substitution, [matches], longest_match_length)`` une seule fois " +"lorsque les correspondances doivent être affichées." + +#: ../Doc/library/readline.rst:288 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/readline.rst:290 +msgid "" +"The following example demonstrates how to use the :mod:`readline` module's " +"history reading and writing functions to automatically load and save a " +"history file named :file:`.python_history` from the user's home directory. " +"The code below would normally be executed automatically during interactive " +"sessions from the user's :envvar:`PYTHONSTARTUP` file. ::" +msgstr "" +"L'exemple suivant démontre comment utiliser les fonctions de lecture et " +"d'écriture de l'historique du module :mod:`readline` pour charger ou " +"sauvegarder automatiquement un fichier d'historique nommé :file:`." +"python_history` depuis le répertoire d’accueil de l’utilisateur. Le code ci-" +"dessous doit normalement être exécuté automatiquement durant une session " +"interactive depuis le fichier de l'utilisateur :envvar:`PYTHONSTARTUP`. ::" + +#: ../Doc/library/readline.rst:310 +msgid "" +"This code is actually automatically run when Python is run in :ref:" +"`interactive mode ` (see :ref:`rlcompleter-config`)." +msgstr "" +"Ce code est en réalité automatiquement exécuté lorsque Python tourne en :ref:" +"`mode interactif ` (voir :ref:`rlcompleter-config`)." + +#: ../Doc/library/readline.rst:313 +msgid "" +"The following example achieves the same goal but supports concurrent " +"interactive sessions, by only appending the new history. ::" +msgstr "" +"L'exemple suivant atteint le même objectif mais gère des sessions " +"interactives concurrentes, en ajoutant seulement le nouvel historique. ::" + +#: ../Doc/library/readline.rst:334 +msgid "" +"The following example extends the :class:`code.InteractiveConsole` class to " +"support history save/restore. ::" +msgstr "" +"L'exemple suivant étend la classe :class:`code.InteractiveConsole` pour " +"gérer la sauvegarde/restauration de l'historique. ::" diff --git a/library/reprlib.po b/library/reprlib.po new file mode 100644 index 000000000..34d71e436 --- /dev/null +++ b/library/reprlib.po @@ -0,0 +1,151 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/reprlib.rst:2 +msgid ":mod:`reprlib` --- Alternate :func:`repr` implementation" +msgstr "" + +#: ../Doc/library/reprlib.rst:9 +msgid "**Source code:** :source:`Lib/reprlib.py`" +msgstr "**Code source :** :source:`Lib/reprlib.py`" + +#: ../Doc/library/reprlib.rst:13 +msgid "" +"The :mod:`reprlib` module provides a means for producing object " +"representations with limits on the size of the resulting strings. This is " +"used in the Python debugger and may be useful in other contexts as well." +msgstr "" + +#: ../Doc/library/reprlib.rst:17 +msgid "This module provides a class, an instance, and a function:" +msgstr "" + +#: ../Doc/library/reprlib.rst:22 +msgid "" +"Class which provides formatting services useful in implementing functions " +"similar to the built-in :func:`repr`; size limits for different object " +"types are added to avoid the generation of representations which are " +"excessively long." +msgstr "" + +#: ../Doc/library/reprlib.rst:29 +msgid "" +"This is an instance of :class:`Repr` which is used to provide the :func:`." +"repr` function described below. Changing the attributes of this object will " +"affect the size limits used by :func:`.repr` and the Python debugger." +msgstr "" + +#: ../Doc/library/reprlib.rst:37 +msgid "" +"This is the :meth:`~Repr.repr` method of ``aRepr``. It returns a string " +"similar to that returned by the built-in function of the same name, but with " +"limits on most sizes." +msgstr "" + +#: ../Doc/library/reprlib.rst:41 +msgid "" +"In addition to size-limiting tools, the module also provides a decorator for " +"detecting recursive calls to :meth:`__repr__` and substituting a placeholder " +"string instead." +msgstr "" + +#: ../Doc/library/reprlib.rst:50 +msgid "" +"Decorator for :meth:`__repr__` methods to detect recursive calls within the " +"same thread. If a recursive call is made, the *fillvalue* is returned, " +"otherwise, the usual :meth:`__repr__` call is made. For example:" +msgstr "" + +#: ../Doc/library/reprlib.rst:72 +msgid "Repr Objects" +msgstr "" + +#: ../Doc/library/reprlib.rst:74 +msgid "" +":class:`Repr` instances provide several attributes which can be used to " +"provide size limits for the representations of different object types, and " +"methods which format specific object types." +msgstr "" + +#: ../Doc/library/reprlib.rst:81 +msgid "" +"Depth limit on the creation of recursive representations. The default is " +"``6``." +msgstr "" + +#: ../Doc/library/reprlib.rst:92 +msgid "" +"Limits on the number of entries represented for the named object type. The " +"default is ``4`` for :attr:`maxdict`, ``5`` for :attr:`maxarray`, and ``6`` " +"for the others." +msgstr "" + +#: ../Doc/library/reprlib.rst:99 +msgid "" +"Maximum number of characters in the representation for an integer. Digits " +"are dropped from the middle. The default is ``40``." +msgstr "" + +#: ../Doc/library/reprlib.rst:105 +msgid "" +"Limit on the number of characters in the representation of the string. Note " +"that the \"normal\" representation of the string is used as the character " +"source: if escape sequences are needed in the representation, these may be " +"mangled when the representation is shortened. The default is ``30``." +msgstr "" + +#: ../Doc/library/reprlib.rst:113 +msgid "" +"This limit is used to control the size of object types for which no specific " +"formatting method is available on the :class:`Repr` object. It is applied in " +"a similar manner as :attr:`maxstring`. The default is ``20``." +msgstr "" + +#: ../Doc/library/reprlib.rst:120 +msgid "" +"The equivalent to the built-in :func:`repr` that uses the formatting imposed " +"by the instance." +msgstr "" + +#: ../Doc/library/reprlib.rst:126 +msgid "" +"Recursive implementation used by :meth:`.repr`. This uses the type of *obj* " +"to determine which formatting method to call, passing it *obj* and *level*. " +"The type-specific methods should call :meth:`repr1` to perform recursive " +"formatting, with ``level - 1`` for the value of *level* in the recursive " +"call." +msgstr "" + +#: ../Doc/library/reprlib.rst:135 +msgid "" +"Formatting methods for specific types are implemented as methods with a name " +"based on the type name. In the method name, **TYPE** is replaced by ``'_'." +"join(type(obj).__name__.split())``. Dispatch to these methods is handled by :" +"meth:`repr1`. Type-specific methods which need to recursively format a value " +"should call ``self.repr1(subobj, level - 1)``." +msgstr "" + +#: ../Doc/library/reprlib.rst:145 +msgid "Subclassing Repr Objects" +msgstr "" + +#: ../Doc/library/reprlib.rst:147 +msgid "" +"The use of dynamic dispatching by :meth:`Repr.repr1` allows subclasses of :" +"class:`Repr` to add support for additional built-in object types or to " +"modify the handling of types already supported. This example shows how " +"special support for file objects could be added::" +msgstr "" diff --git a/library/resource.po b/library/resource.po new file mode 100644 index 000000000..404b14c3d --- /dev/null +++ b/library/resource.po @@ -0,0 +1,557 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-11-29 21:18+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/resource.rst:2 +msgid ":mod:`resource` --- Resource usage information" +msgstr "" + +#: ../Doc/library/resource.rst:13 +msgid "" +"This module provides basic mechanisms for measuring and controlling system " +"resources utilized by a program." +msgstr "" + +#: ../Doc/library/resource.rst:16 +msgid "" +"Symbolic constants are used to specify particular system resources and to " +"request usage information about either the current process or its children." +msgstr "" + +#: ../Doc/library/resource.rst:19 +msgid "An :exc:`OSError` is raised on syscall failure." +msgstr "" + +#: ../Doc/library/resource.rst:24 +msgid "A deprecated alias of :exc:`OSError`." +msgstr "" + +#: ../Doc/library/resource.rst:26 +msgid "Following :pep:`3151`, this class was made an alias of :exc:`OSError`." +msgstr "" + +#: ../Doc/library/resource.rst:31 +msgid "Resource Limits" +msgstr "" + +#: ../Doc/library/resource.rst:33 +msgid "" +"Resources usage can be limited using the :func:`setrlimit` function " +"described below. Each resource is controlled by a pair of limits: a soft " +"limit and a hard limit. The soft limit is the current limit, and may be " +"lowered or raised by a process over time. The soft limit can never exceed " +"the hard limit. The hard limit can be lowered to any value greater than the " +"soft limit, but not raised. (Only processes with the effective UID of the " +"super-user can raise a hard limit.)" +msgstr "" + +#: ../Doc/library/resource.rst:41 +msgid "" +"The specific resources that can be limited are system dependent. They are " +"described in the :manpage:`getrlimit(2)` man page. The resources listed " +"below are supported when the underlying operating system supports them; " +"resources which cannot be checked or controlled by the operating system are " +"not defined in this module for those platforms." +msgstr "" + +#: ../Doc/library/resource.rst:50 +msgid "Constant used to represent the limit for an unlimited resource." +msgstr "" + +#: ../Doc/library/resource.rst:55 +msgid "" +"Returns a tuple ``(soft, hard)`` with the current soft and hard limits of " +"*resource*. Raises :exc:`ValueError` if an invalid resource is specified, " +"or :exc:`error` if the underlying system call fails unexpectedly." +msgstr "" + +#: ../Doc/library/resource.rst:62 +msgid "" +"Sets new limits of consumption of *resource*. The *limits* argument must be " +"a tuple ``(soft, hard)`` of two integers describing the new limits. A value " +"of :data:`~resource.RLIM_INFINITY` can be used to request a limit that is " +"unlimited." +msgstr "" + +#: ../Doc/library/resource.rst:67 +msgid "" +"Raises :exc:`ValueError` if an invalid resource is specified, if the new " +"soft limit exceeds the hard limit, or if a process tries to raise its hard " +"limit. Specifying a limit of :data:`~resource.RLIM_INFINITY` when the hard " +"or system limit for that resource is not unlimited will result in a :exc:" +"`ValueError`. A process with the effective UID of super-user can request " +"any valid limit value, including unlimited, but :exc:`ValueError` will still " +"be raised if the requested limit exceeds the system imposed limit." +msgstr "" + +#: ../Doc/library/resource.rst:76 +msgid "" +"``setrlimit`` may also raise :exc:`error` if the underlying system call " +"fails." +msgstr "" + +#: ../Doc/library/resource.rst:81 +msgid "" +"Combines :func:`setrlimit` and :func:`getrlimit` in one function and " +"supports to get and set the resources limits of an arbitrary process. If " +"*pid* is 0, then the call applies to the current process. *resource* and " +"*limits* have the same meaning as in :func:`setrlimit`, except that *limits* " +"is optional." +msgstr "" + +#: ../Doc/library/resource.rst:87 +msgid "" +"When *limits* is not given the function returns the *resource* limit of the " +"process *pid*. When *limits* is given the *resource* limit of the process is " +"set and the former resource limit is returned." +msgstr "" + +#: ../Doc/library/resource.rst:91 +msgid "" +"Raises :exc:`ProcessLookupError` when *pid* can't be found and :exc:" +"`PermissionError` when the user doesn't have ``CAP_SYS_RESOURCE`` for the " +"process." +msgstr "" + +#: ../Doc/library/resource.rst:96 +msgid "" +":ref:`Availability `: Linux 2.6.36 or later with glibc 2.13 or " +"later." +msgstr "" +":ref:`Disponibilité ` : Linux 2.6.36 et ultérieures avec " +"*glibc* 2.13 et ultérieures." + +#: ../Doc/library/resource.rst:100 +msgid "" +"These symbols define resources whose consumption can be controlled using " +"the :func:`setrlimit` and :func:`getrlimit` functions described below. The " +"values of these symbols are exactly the constants used by C programs." +msgstr "" + +#: ../Doc/library/resource.rst:104 +msgid "" +"The Unix man page for :manpage:`getrlimit(2)` lists the available resources. " +"Note that not all systems use the same symbol or same value to denote the " +"same resource. This module does not attempt to mask platform differences " +"--- symbols not defined for a platform will not be available from this " +"module on that platform." +msgstr "" + +#: ../Doc/library/resource.rst:113 +msgid "" +"The maximum size (in bytes) of a core file that the current process can " +"create. This may result in the creation of a partial core file if a larger " +"core would be required to contain the entire process image." +msgstr "" + +#: ../Doc/library/resource.rst:120 +msgid "" +"The maximum amount of processor time (in seconds) that a process can use. If " +"this limit is exceeded, a :const:`SIGXCPU` signal is sent to the process. " +"(See the :mod:`signal` module documentation for information about how to " +"catch this signal and do something useful, e.g. flush open files to disk.)" +msgstr "" + +#: ../Doc/library/resource.rst:128 +msgid "The maximum size of a file which the process may create." +msgstr "" + +#: ../Doc/library/resource.rst:133 +msgid "The maximum size (in bytes) of the process's heap." +msgstr "" + +#: ../Doc/library/resource.rst:138 +msgid "" +"The maximum size (in bytes) of the call stack for the current process. This " +"only affects the stack of the main thread in a multi-threaded process." +msgstr "" + +#: ../Doc/library/resource.rst:144 +msgid "" +"The maximum resident set size that should be made available to the process." +msgstr "" + +#: ../Doc/library/resource.rst:149 +msgid "The maximum number of processes the current process may create." +msgstr "" + +#: ../Doc/library/resource.rst:154 +msgid "The maximum number of open file descriptors for the current process." +msgstr "" + +#: ../Doc/library/resource.rst:159 +msgid "The BSD name for :const:`RLIMIT_NOFILE`." +msgstr "" + +#: ../Doc/library/resource.rst:164 +msgid "The maximum address space which may be locked in memory." +msgstr "" + +#: ../Doc/library/resource.rst:169 +msgid "The largest area of mapped memory which the process may occupy." +msgstr "" + +#: ../Doc/library/resource.rst:174 +msgid "" +"The maximum area (in bytes) of address space which may be taken by the " +"process." +msgstr "" + +#: ../Doc/library/resource.rst:179 +msgid "The number of bytes that can be allocated for POSIX message queues." +msgstr "" + +#: ../Doc/library/resource.rst:182 ../Doc/library/resource.rst:219 +msgid ":ref:`Availability `: Linux 2.6.8 or later." +msgstr ":ref:`Disponibilité ` : Linux 2.6.8 et ultérieures." + +#: ../Doc/library/resource.rst:188 +msgid "The ceiling for the process's nice level (calculated as 20 - rlim_cur)." +msgstr "" + +#: ../Doc/library/resource.rst:191 ../Doc/library/resource.rst:200 +msgid ":ref:`Availability `: Linux 2.6.12 or later." +msgstr ":ref:`Disponibilité ` : Linux 2.6.12 et ultérieures." + +#: ../Doc/library/resource.rst:197 +msgid "The ceiling of the real-time priority." +msgstr "" + +#: ../Doc/library/resource.rst:206 +msgid "" +"The time limit (in microseconds) on CPU time that a process can spend under " +"real-time scheduling without making a blocking syscall." +msgstr "" + +#: ../Doc/library/resource.rst:210 +msgid ":ref:`Availability `: Linux 2.6.25 or later." +msgstr ":ref:`Disponibilité ` : Linux 2.6.25 et ultérieures." + +#: ../Doc/library/resource.rst:216 +msgid "The number of signals which the process may queue." +msgstr "" + +#: ../Doc/library/resource.rst:224 +msgid "" +"The maximum size (in bytes) of socket buffer usage for this user. This " +"limits the amount of network memory, and hence the amount of mbufs, that " +"this user may hold at any time." +msgstr "" + +#: ../Doc/library/resource.rst:229 ../Doc/library/resource.rst:240 +#: ../Doc/library/resource.rst:248 +msgid ":ref:`Availability `: FreeBSD 9 or later." +msgstr ":ref:`Disponibilité ` : FreeBSD 9 et ultérieures." + +#: ../Doc/library/resource.rst:234 +msgid "" +"The maximum size (in bytes) of the swap space that may be reserved or used " +"by all of this user id's processes. This limit is enforced only if bit 1 of " +"the vm.overcommit sysctl is set. Please see :manpage:`tuning(7)` for a " +"complete description of this sysctl." +msgstr "" + +#: ../Doc/library/resource.rst:245 +msgid "The maximum number of pseudo-terminals created by this user id." +msgstr "" + +#: ../Doc/library/resource.rst:252 +msgid "Resource Usage" +msgstr "" + +#: ../Doc/library/resource.rst:254 +msgid "These functions are used to retrieve resource usage information:" +msgstr "" + +#: ../Doc/library/resource.rst:259 +msgid "" +"This function returns an object that describes the resources consumed by " +"either the current process or its children, as specified by the *who* " +"parameter. The *who* parameter should be specified using one of the :const:" +"`RUSAGE_\\*` constants described below." +msgstr "" + +#: ../Doc/library/resource.rst:264 +msgid "" +"The fields of the return value each describe how a particular system " +"resource has been used, e.g. amount of time spent running is user mode or " +"number of times the process was swapped out of main memory. Some values are " +"dependent on the clock tick internal, e.g. the amount of memory the process " +"is using." +msgstr "" + +#: ../Doc/library/resource.rst:269 +msgid "" +"For backward compatibility, the return value is also accessible as a tuple " +"of 16 elements." +msgstr "" + +#: ../Doc/library/resource.rst:272 +msgid "" +"The fields :attr:`ru_utime` and :attr:`ru_stime` of the return value are " +"floating point values representing the amount of time spent executing in " +"user mode and the amount of time spent executing in system mode, " +"respectively. The remaining values are integers. Consult the :manpage:" +"`getrusage(2)` man page for detailed information about these values. A brief " +"summary is presented here:" +msgstr "" + +#: ../Doc/library/resource.rst:279 +msgid "Index" +msgstr "Index" + +#: ../Doc/library/resource.rst:279 +msgid "Field" +msgstr "Champ" + +#: ../Doc/library/resource.rst:279 +msgid "Resource" +msgstr "" + +#: ../Doc/library/resource.rst:281 +msgid "``0``" +msgstr "``0``" + +#: ../Doc/library/resource.rst:281 +msgid ":attr:`ru_utime`" +msgstr ":attr:`ru_utime`" + +#: ../Doc/library/resource.rst:281 +msgid "time in user mode (float)" +msgstr "" + +#: ../Doc/library/resource.rst:283 +msgid "``1``" +msgstr "``1``" + +#: ../Doc/library/resource.rst:283 +msgid ":attr:`ru_stime`" +msgstr ":attr:`ru_stime`" + +#: ../Doc/library/resource.rst:283 +msgid "time in system mode (float)" +msgstr "" + +#: ../Doc/library/resource.rst:285 +msgid "``2``" +msgstr "``2``" + +#: ../Doc/library/resource.rst:285 +msgid ":attr:`ru_maxrss`" +msgstr ":attr:`ru_maxrss`" + +#: ../Doc/library/resource.rst:285 +msgid "maximum resident set size" +msgstr "" + +#: ../Doc/library/resource.rst:287 +msgid "``3``" +msgstr "``3``" + +#: ../Doc/library/resource.rst:287 +msgid ":attr:`ru_ixrss`" +msgstr ":attr:`ru_ixrss`" + +#: ../Doc/library/resource.rst:287 +msgid "shared memory size" +msgstr "" + +#: ../Doc/library/resource.rst:289 +msgid "``4``" +msgstr "``4``" + +#: ../Doc/library/resource.rst:289 +msgid ":attr:`ru_idrss`" +msgstr ":attr:`ru_idrss`" + +#: ../Doc/library/resource.rst:289 +msgid "unshared memory size" +msgstr "" + +#: ../Doc/library/resource.rst:291 +msgid "``5``" +msgstr "``5``" + +#: ../Doc/library/resource.rst:291 +msgid ":attr:`ru_isrss`" +msgstr ":attr:`ru_isrss`" + +#: ../Doc/library/resource.rst:291 +msgid "unshared stack size" +msgstr "" + +#: ../Doc/library/resource.rst:293 +msgid "``6``" +msgstr "``6``" + +#: ../Doc/library/resource.rst:293 +msgid ":attr:`ru_minflt`" +msgstr ":attr:`ru_minflt`" + +#: ../Doc/library/resource.rst:293 +msgid "page faults not requiring I/O" +msgstr "" + +#: ../Doc/library/resource.rst:295 +msgid "``7``" +msgstr "``7``" + +#: ../Doc/library/resource.rst:295 +msgid ":attr:`ru_majflt`" +msgstr ":attr:`ru_majflt`" + +#: ../Doc/library/resource.rst:295 +msgid "page faults requiring I/O" +msgstr "" + +#: ../Doc/library/resource.rst:297 +msgid "``8``" +msgstr "``8``" + +#: ../Doc/library/resource.rst:297 +msgid ":attr:`ru_nswap`" +msgstr ":attr:`ru_nswap`" + +#: ../Doc/library/resource.rst:297 +msgid "number of swap outs" +msgstr "" + +#: ../Doc/library/resource.rst:299 +msgid "``9``" +msgstr "``9``" + +#: ../Doc/library/resource.rst:299 +msgid ":attr:`ru_inblock`" +msgstr ":attr:`ru_inblock`" + +#: ../Doc/library/resource.rst:299 +msgid "block input operations" +msgstr "" + +#: ../Doc/library/resource.rst:301 +msgid "``10``" +msgstr "``10``" + +#: ../Doc/library/resource.rst:301 +msgid ":attr:`ru_oublock`" +msgstr ":attr:`ru_oublock`" + +#: ../Doc/library/resource.rst:301 +msgid "block output operations" +msgstr "" + +#: ../Doc/library/resource.rst:303 +msgid "``11``" +msgstr "``11``" + +#: ../Doc/library/resource.rst:303 +msgid ":attr:`ru_msgsnd`" +msgstr ":attr:`ru_msgsnd`" + +#: ../Doc/library/resource.rst:303 +msgid "messages sent" +msgstr "" + +#: ../Doc/library/resource.rst:305 +msgid "``12``" +msgstr "``12``" + +#: ../Doc/library/resource.rst:305 +msgid ":attr:`ru_msgrcv`" +msgstr ":attr:`ru_msgrcv`" + +#: ../Doc/library/resource.rst:305 +msgid "messages received" +msgstr "" + +#: ../Doc/library/resource.rst:307 +msgid "``13``" +msgstr "``13``" + +#: ../Doc/library/resource.rst:307 +msgid ":attr:`ru_nsignals`" +msgstr ":attr:`ru_nsignals`" + +#: ../Doc/library/resource.rst:307 +msgid "signals received" +msgstr "" + +#: ../Doc/library/resource.rst:309 +msgid "``14``" +msgstr "``14``" + +#: ../Doc/library/resource.rst:309 +msgid ":attr:`ru_nvcsw`" +msgstr ":attr:`ru_nvcsw`" + +#: ../Doc/library/resource.rst:309 +msgid "voluntary context switches" +msgstr "" + +#: ../Doc/library/resource.rst:311 +msgid "``15``" +msgstr "``15``" + +#: ../Doc/library/resource.rst:311 +msgid ":attr:`ru_nivcsw`" +msgstr ":attr:`ru_nivcsw`" + +#: ../Doc/library/resource.rst:311 +msgid "involuntary context switches" +msgstr "" + +#: ../Doc/library/resource.rst:314 +msgid "" +"This function will raise a :exc:`ValueError` if an invalid *who* parameter " +"is specified. It may also raise :exc:`error` exception in unusual " +"circumstances." +msgstr "" + +#: ../Doc/library/resource.rst:320 +msgid "" +"Returns the number of bytes in a system page. (This need not be the same as " +"the hardware page size.)" +msgstr "" + +#: ../Doc/library/resource.rst:323 +msgid "" +"The following :const:`RUSAGE_\\*` symbols are passed to the :func:" +"`getrusage` function to specify which processes information should be " +"provided for." +msgstr "" + +#: ../Doc/library/resource.rst:329 +msgid "" +"Pass to :func:`getrusage` to request resources consumed by the calling " +"process, which is the sum of resources used by all threads in the process." +msgstr "" + +#: ../Doc/library/resource.rst:335 +msgid "" +"Pass to :func:`getrusage` to request resources consumed by child processes " +"of the calling process which have been terminated and waited for." +msgstr "" + +#: ../Doc/library/resource.rst:341 +msgid "" +"Pass to :func:`getrusage` to request resources consumed by both the current " +"process and child processes. May not be available on all systems." +msgstr "" + +#: ../Doc/library/resource.rst:347 +msgid "" +"Pass to :func:`getrusage` to request resources consumed by the current " +"thread. May not be available on all systems." +msgstr "" diff --git a/library/rlcompleter.po b/library/rlcompleter.po new file mode 100644 index 000000000..352433fbc --- /dev/null +++ b/library/rlcompleter.po @@ -0,0 +1,111 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-04 09:51+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/rlcompleter.rst:2 +msgid ":mod:`rlcompleter` --- Completion function for GNU readline" +msgstr ":mod:`rlcompleter` — Fonction de complétion pour *GNU readline*" + +#: ../Doc/library/rlcompleter.rst:9 +msgid "**Source code:** :source:`Lib/rlcompleter.py`" +msgstr "**Code source :** :source:`Lib/rlcompleter.py`" + +#: ../Doc/library/rlcompleter.rst:13 +msgid "" +"The :mod:`rlcompleter` module defines a completion function suitable for " +"the :mod:`readline` module by completing valid Python identifiers and " +"keywords." +msgstr "" +"Le module :mod:`rlcompleter` définit une fonction de complétion appropriée " +"pour le module :mod:`readline` en complétant des identifiants et mots-clés " +"Python valides. " + +#: ../Doc/library/rlcompleter.rst:16 +msgid "" +"When this module is imported on a Unix platform with the :mod:`readline` " +"module available, an instance of the :class:`Completer` class is " +"automatically created and its :meth:`complete` method is set as the :mod:" +"`readline` completer." +msgstr "" +"Quand le module est importé dans une plate-forme Unix et la méthode :meth:" +"`complete` est configurée pour assurer la complétion de :mod:`readline`, une " +"instance de classe :class:`Completer` est automatiquement créée et la " +"méthode est configurée au finisseur :meth:`complete` " + +#: ../Doc/library/rlcompleter.rst:20 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/rlcompleter.rst:31 +msgid "" +"The :mod:`rlcompleter` module is designed for use with Python's :ref:" +"`interactive mode `. Unless Python is run with the :option:" +"`-S` option, the module is automatically imported and configured (see :ref:" +"`rlcompleter-config`)." +msgstr "" +"Le module :mod:`rlcompleter` est conçu pour être utilisé par le :ref:`mode " +"interactif ` de Python. À moins que Python ne soit exécuté " +"avec l'option :option:`-S`, le module est automatiquement importé et " +"configuré (voir :ref:`rlcompleter-config`)." + +#: ../Doc/library/rlcompleter.rst:36 +msgid "" +"On platforms without :mod:`readline`, the :class:`Completer` class defined " +"by this module can still be used for custom purposes." +msgstr "" +"Sur les plate-formes sans :mod:`readline`, la classe :class:`Completer` " +"définie par ce module peut quand même être utilisée pour des fins " +"personnalisées." + +#: ../Doc/library/rlcompleter.rst:43 +msgid "Completer Objects" +msgstr "Objets pour la complétion (*Completer Objects*)" + +#: ../Doc/library/rlcompleter.rst:45 +msgid "Completer objects have the following method:" +msgstr "" +"Les objets pour la complétion (*Completer objects* en anglais) disposent de " +"la méthode suivante :" + +#: ../Doc/library/rlcompleter.rst:50 +msgid "Return the *state*\\ th completion for *text*." +msgstr "Renvoie la *state-ième* complétion pour *text*." + +#: ../Doc/library/rlcompleter.rst:52 +msgid "" +"If called for *text* that doesn't include a period character (``'.'``), it " +"will complete from names currently defined in :mod:`__main__`, :mod:" +"`builtins` and keywords (as defined by the :mod:`keyword` module)." +msgstr "" +"Si *text* ne contient pas un caractère point (``'.'``), il puise dans les " +"noms actuellement définis dans :mod:`__main__`, :mod:`builtins` ainsi que " +"les mots-clés (ainsi que définis par le module :mod:`keyword`)" + +#: ../Doc/library/rlcompleter.rst:56 +msgid "" +"If called for a dotted name, it will try to evaluate anything without " +"obvious side-effects (functions will not be evaluated, but it can generate " +"calls to :meth:`__getattr__`) up to the last part, and find matches for the " +"rest via the :func:`dir` function. Any exception raised during the " +"evaluation of the expression is caught, silenced and :const:`None` is " +"returned." +msgstr "" +"Quand elle est appelée pour un nom qui comporte un point, elle ne tente " +"d'évaluer que ce qui n'a pas d'effet secondaire (les fonctions ne sont pas " +"évaluées, mais elle peut faire des appels à :meth:`__getattr__`), jusqu'à la " +"dernière partie, et trouve des équivalents pour le reste via la fonction :" +"func:`dir`. Toute exception levée durant l'évaluation de l'expression est " +"interceptée, mise sous silence, et :const:`None` est renvoyé." diff --git a/library/runpy.po b/library/runpy.po new file mode 100644 index 000000000..0969004ea --- /dev/null +++ b/library/runpy.po @@ -0,0 +1,258 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"PO-Revision-Date: 2017-08-10 00:55+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/runpy.rst:2 +msgid ":mod:`runpy` --- Locating and executing Python modules" +msgstr "" + +#: ../Doc/library/runpy.rst:9 +msgid "**Source code:** :source:`Lib/runpy.py`" +msgstr "**Code source :** :source:`Lib/runpy.py`" + +#: ../Doc/library/runpy.rst:13 +msgid "" +"The :mod:`runpy` module is used to locate and run Python modules without " +"importing them first. Its main use is to implement the :option:`-m` command " +"line switch that allows scripts to be located using the Python module " +"namespace rather than the filesystem." +msgstr "" + +#: ../Doc/library/runpy.rst:18 +msgid "" +"Note that this is *not* a sandbox module - all code is executed in the " +"current process, and any side effects (such as cached imports of other " +"modules) will remain in place after the functions have returned." +msgstr "" + +#: ../Doc/library/runpy.rst:22 +msgid "" +"Furthermore, any functions and classes defined by the executed code are not " +"guaranteed to work correctly after a :mod:`runpy` function has returned. If " +"that limitation is not acceptable for a given use case, :mod:`importlib` is " +"likely to be a more suitable choice than this module." +msgstr "" + +#: ../Doc/library/runpy.rst:27 +msgid "The :mod:`runpy` module provides two functions:" +msgstr "" + +#: ../Doc/library/runpy.rst:35 +msgid "" +"Execute the code of the specified module and return the resulting module " +"globals dictionary. The module's code is first located using the standard " +"import mechanism (refer to :pep:`302` for details) and then executed in a " +"fresh module namespace." +msgstr "" + +#: ../Doc/library/runpy.rst:40 +msgid "" +"The *mod_name* argument should be an absolute module name. If the module " +"name refers to a package rather than a normal module, then that package is " +"imported and the ``__main__`` submodule within that package is then executed " +"and the resulting module globals dictionary returned." +msgstr "" + +#: ../Doc/library/runpy.rst:46 +msgid "" +"The optional dictionary argument *init_globals* may be used to pre-populate " +"the module's globals dictionary before the code is executed. The supplied " +"dictionary will not be modified. If any of the special global variables " +"below are defined in the supplied dictionary, those definitions are " +"overridden by :func:`run_module`." +msgstr "" + +#: ../Doc/library/runpy.rst:52 ../Doc/library/runpy.rst:121 +msgid "" +"The special global variables ``__name__``, ``__spec__``, ``__file__``, " +"``__cached__``, ``__loader__`` and ``__package__`` are set in the globals " +"dictionary before the module code is executed (Note that this is a minimal " +"set of variables - other variables may be set implicitly as an interpreter " +"implementation detail)." +msgstr "" + +#: ../Doc/library/runpy.rst:58 +msgid "" +"``__name__`` is set to *run_name* if this optional argument is not :const:" +"`None`, to ``mod_name + '.__main__'`` if the named module is a package and " +"to the *mod_name* argument otherwise." +msgstr "" + +#: ../Doc/library/runpy.rst:62 +msgid "" +"``__spec__`` will be set appropriately for the *actually* imported module " +"(that is, ``__spec__.name`` will always be *mod_name* or ``mod_name + '." +"__main__``, never *run_name*)." +msgstr "" + +#: ../Doc/library/runpy.rst:66 +msgid "" +"``__file__``, ``__cached__``, ``__loader__`` and ``__package__`` are :ref:" +"`set as normal ` based on the module spec." +msgstr "" + +#: ../Doc/library/runpy.rst:69 +msgid "" +"If the argument *alter_sys* is supplied and evaluates to :const:`True`, then " +"``sys.argv[0]`` is updated with the value of ``__file__`` and ``sys." +"modules[__name__]`` is updated with a temporary module object for the module " +"being executed. Both ``sys.argv[0]`` and ``sys.modules[__name__]`` are " +"restored to their original values before the function returns." +msgstr "" + +#: ../Doc/library/runpy.rst:75 +msgid "" +"Note that this manipulation of :mod:`sys` is not thread-safe. Other threads " +"may see the partially initialised module, as well as the altered list of " +"arguments. It is recommended that the :mod:`sys` module be left alone when " +"invoking this function from threaded code." +msgstr "" + +#: ../Doc/library/runpy.rst:81 +msgid "" +"The :option:`-m` option offering equivalent functionality from the command " +"line." +msgstr "" + +#: ../Doc/library/runpy.rst:84 +msgid "" +"Added ability to execute packages by looking for a ``__main__`` submodule." +msgstr "" + +#: ../Doc/library/runpy.rst:87 +msgid "Added ``__cached__`` global variable (see :pep:`3147`)." +msgstr "" + +#: ../Doc/library/runpy.rst:90 +msgid "" +"Updated to take advantage of the module spec feature added by :pep:`451`. " +"This allows ``__cached__`` to be set correctly for modules run this way, as " +"well as ensuring the real module name is always accessible as ``__spec__." +"name``." +msgstr "" + +#: ../Doc/library/runpy.rst:101 +msgid "" +"Execute the code at the named filesystem location and return the resulting " +"module globals dictionary. As with a script name supplied to the CPython " +"command line, the supplied path may refer to a Python source file, a " +"compiled bytecode file or a valid sys.path entry containing a ``__main__`` " +"module (e.g. a zipfile containing a top-level ``__main__.py`` file)." +msgstr "" + +#: ../Doc/library/runpy.rst:107 +msgid "" +"For a simple script, the specified code is simply executed in a fresh module " +"namespace. For a valid sys.path entry (typically a zipfile or directory), " +"the entry is first added to the beginning of ``sys.path``. The function then " +"looks for and executes a :mod:`__main__` module using the updated path. Note " +"that there is no special protection against invoking an existing :mod:" +"`__main__` entry located elsewhere on ``sys.path`` if there is no such " +"module at the specified location." +msgstr "" + +#: ../Doc/library/runpy.rst:115 +msgid "" +"The optional dictionary argument *init_globals* may be used to pre-populate " +"the module's globals dictionary before the code is executed. The supplied " +"dictionary will not be modified. If any of the special global variables " +"below are defined in the supplied dictionary, those definitions are " +"overridden by :func:`run_path`." +msgstr "" + +#: ../Doc/library/runpy.rst:127 +msgid "" +"``__name__`` is set to *run_name* if this optional argument is not :const:" +"`None` and to ``''`` otherwise." +msgstr "" + +#: ../Doc/library/runpy.rst:130 +msgid "" +"If the supplied path directly references a script file (whether as source or " +"as precompiled byte code), then ``__file__`` will be set to the supplied " +"path, and ``__spec__``, ``__cached__``, ``__loader__`` and ``__package__`` " +"will all be set to :const:`None`." +msgstr "" + +#: ../Doc/library/runpy.rst:135 +msgid "" +"If the supplied path is a reference to a valid sys.path entry, then " +"``__spec__`` will be set appropriately for the imported ``__main__`` module " +"(that is, ``__spec__.name`` will always be ``__main__``). ``__file__``, " +"``__cached__``, ``__loader__`` and ``__package__`` will be :ref:`set as " +"normal ` based on the module spec." +msgstr "" + +#: ../Doc/library/runpy.rst:141 +msgid "" +"A number of alterations are also made to the :mod:`sys` module. Firstly, " +"``sys.path`` may be altered as described above. ``sys.argv[0]`` is updated " +"with the value of ``file_path`` and ``sys.modules[__name__]`` is updated " +"with a temporary module object for the module being executed. All " +"modifications to items in :mod:`sys` are reverted before the function " +"returns." +msgstr "" + +#: ../Doc/library/runpy.rst:148 +msgid "" +"Note that, unlike :func:`run_module`, the alterations made to :mod:`sys` are " +"not optional in this function as these adjustments are essential to allowing " +"the execution of sys.path entries. As the thread-safety limitations still " +"apply, use of this function in threaded code should be either serialised " +"with the import lock or delegated to a separate process." +msgstr "" + +#: ../Doc/library/runpy.rst:155 +msgid "" +":ref:`using-on-interface-options` for equivalent functionality on the " +"command line (``python path/to/script``)." +msgstr "" + +#: ../Doc/library/runpy.rst:160 +msgid "" +"Updated to take advantage of the module spec feature added by :pep:`451`. " +"This allows ``__cached__`` to be set correctly in the case where " +"``__main__`` is imported from a valid sys.path entry rather than being " +"executed directly." +msgstr "" + +#: ../Doc/library/runpy.rst:169 +msgid ":pep:`338` -- Executing modules as scripts" +msgstr ":pep:`338` -- Exécuter des modules en tant que scripts" + +#: ../Doc/library/runpy.rst:169 ../Doc/library/runpy.rst:172 +msgid "PEP written and implemented by Nick Coghlan." +msgstr "" + +#: ../Doc/library/runpy.rst:172 +msgid ":pep:`366` -- Main module explicit relative imports" +msgstr "" + +#: ../Doc/library/runpy.rst:175 +msgid ":pep:`451` -- A ModuleSpec Type for the Import System" +msgstr "" + +#: ../Doc/library/runpy.rst:175 +msgid "PEP written and implemented by Eric Snow" +msgstr "" + +#: ../Doc/library/runpy.rst:177 +msgid ":ref:`using-on-general` - CPython command line details" +msgstr "" + +#: ../Doc/library/runpy.rst:179 +msgid "The :func:`importlib.import_module` function" +msgstr "" diff --git a/library/sched.po b/library/sched.po new file mode 100644 index 000000000..e6249b6a7 --- /dev/null +++ b/library/sched.po @@ -0,0 +1,149 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/sched.rst:2 +msgid ":mod:`sched` --- Event scheduler" +msgstr "" + +#: ../Doc/library/sched.rst:9 +msgid "**Source code:** :source:`Lib/sched.py`" +msgstr "**Code source :** :source:`Lib/sched.py`" + +#: ../Doc/library/sched.rst:15 +msgid "" +"The :mod:`sched` module defines a class which implements a general purpose " +"event scheduler:" +msgstr "" + +#: ../Doc/library/sched.rst:20 +msgid "" +"The :class:`scheduler` class defines a generic interface to scheduling " +"events. It needs two functions to actually deal with the \"outside world\" " +"--- *timefunc* should be callable without arguments, and return a number " +"(the \"time\", in any units whatsoever). The *delayfunc* function should be " +"callable with one argument, compatible with the output of *timefunc*, and " +"should delay that many time units. *delayfunc* will also be called with the " +"argument ``0`` after each event is run to allow other threads an opportunity " +"to run in multi-threaded applications." +msgstr "" + +#: ../Doc/library/sched.rst:29 +msgid "*timefunc* and *delayfunc* parameters are optional." +msgstr "" + +#: ../Doc/library/sched.rst:32 +msgid "" +":class:`scheduler` class can be safely used in multi-threaded environments." +msgstr "" + +#: ../Doc/library/sched.rst:36 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/sched.rst:61 +msgid "Scheduler Objects" +msgstr "" + +#: ../Doc/library/sched.rst:63 +msgid ":class:`scheduler` instances have the following methods and attributes:" +msgstr "" + +#: ../Doc/library/sched.rst:68 +msgid "" +"Schedule a new event. The *time* argument should be a numeric type " +"compatible with the return value of the *timefunc* function passed to the " +"constructor. Events scheduled for the same *time* will be executed in the " +"order of their *priority*. A lower number represents a higher priority." +msgstr "" + +#: ../Doc/library/sched.rst:73 +msgid "" +"Executing the event means executing ``action(*argument, **kwargs)``. " +"*argument* is a sequence holding the positional arguments for *action*. " +"*kwargs* is a dictionary holding the keyword arguments for *action*." +msgstr "" + +#: ../Doc/library/sched.rst:77 +msgid "" +"Return value is an event which may be used for later cancellation of the " +"event (see :meth:`cancel`)." +msgstr "" + +#: ../Doc/library/sched.rst:80 ../Doc/library/sched.rst:93 +msgid "*argument* parameter is optional." +msgstr "" + +#: ../Doc/library/sched.rst:83 ../Doc/library/sched.rst:96 +msgid "*kwargs* parameter was added." +msgstr "" + +#: ../Doc/library/sched.rst:89 +msgid "" +"Schedule an event for *delay* more time units. Other than the relative time, " +"the other arguments, the effect and the return value are the same as those " +"for :meth:`enterabs`." +msgstr "" + +#: ../Doc/library/sched.rst:101 +msgid "" +"Remove the event from the queue. If *event* is not an event currently in the " +"queue, this method will raise a :exc:`ValueError`." +msgstr "" + +#: ../Doc/library/sched.rst:107 +msgid "Return true if the event queue is empty." +msgstr "" + +#: ../Doc/library/sched.rst:112 +msgid "" +"Run all scheduled events. This method will wait (using the :func:" +"`delayfunc` function passed to the constructor) for the next event, then " +"execute it and so on until there are no more scheduled events." +msgstr "" + +#: ../Doc/library/sched.rst:116 +msgid "" +"If *blocking* is false executes the scheduled events due to expire soonest " +"(if any) and then return the deadline of the next scheduled call in the " +"scheduler (if any)." +msgstr "" + +#: ../Doc/library/sched.rst:120 +msgid "" +"Either *action* or *delayfunc* can raise an exception. In either case, the " +"scheduler will maintain a consistent state and propagate the exception. If " +"an exception is raised by *action*, the event will not be attempted in " +"future calls to :meth:`run`." +msgstr "" + +#: ../Doc/library/sched.rst:125 +msgid "" +"If a sequence of events takes longer to run than the time available before " +"the next event, the scheduler will simply fall behind. No events will be " +"dropped; the calling code is responsible for canceling events which are no " +"longer pertinent." +msgstr "" + +#: ../Doc/library/sched.rst:130 +msgid "*blocking* parameter was added." +msgstr "" + +#: ../Doc/library/sched.rst:135 +msgid "" +"Read-only attribute returning a list of upcoming events in the order they " +"will be run. Each event is shown as a :term:`named tuple` with the " +"following fields: time, priority, action, argument, kwargs." +msgstr "" diff --git a/library/secrets.po b/library/secrets.po new file mode 100644 index 000000000..4e6e3a0e8 --- /dev/null +++ b/library/secrets.po @@ -0,0 +1,247 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/secrets.rst:2 +msgid ":mod:`secrets` --- Generate secure random numbers for managing secrets" +msgstr "" +":mod:`secrets` — Générer des nombres aléatoires de façon sécurisée pour la " +"gestion des secrets" + +#: ../Doc/library/secrets.rst:16 +msgid "**Source code:** :source:`Lib/secrets.py`" +msgstr "**Code source :** :source:`Lib/secrets.py`" + +#: ../Doc/library/secrets.rst:20 +msgid "" +"The :mod:`secrets` module is used for generating cryptographically strong " +"random numbers suitable for managing data such as passwords, account " +"authentication, security tokens, and related secrets." +msgstr "" +"Le module :mod:`secrets` permet de générer des nombres aléatoires forts au " +"sens de la cryptographie, adaptés à la gestion des mots de passe, à " +"l'authentification des comptes, à la gestion des jetons de sécurité et des " +"secrets associés." + +#: ../Doc/library/secrets.rst:24 +msgid "" +"In particularly, :mod:`secrets` should be used in preference to the default " +"pseudo-random number generator in the :mod:`random` module, which is " +"designed for modelling and simulation, not security or cryptography." +msgstr "" +"Il faut préférer :mod:`secrets` par rapport au générateur pseudo-aléatoire " +"du module :mod:`random`, ce dernier étant conçu pour la modélisation et la " +"simulation, et non pour la sécurité ou la cryptographie." + +#: ../Doc/library/secrets.rst:30 +msgid ":pep:`506`" +msgstr ":pep:`506`" + +#: ../Doc/library/secrets.rst:34 +msgid "Random numbers" +msgstr "Nombres aléatoires" + +#: ../Doc/library/secrets.rst:36 +msgid "" +"The :mod:`secrets` module provides access to the most secure source of " +"randomness that your operating system provides." +msgstr "" +"Le module :mod:`secrets` fournit un accès à la source d'aléa la plus sûre " +"disponible sur votre système d'exploitation." + +#: ../Doc/library/secrets.rst:41 +msgid "" +"A class for generating random numbers using the highest-quality sources " +"provided by the operating system. See :class:`random.SystemRandom` for " +"additional details." +msgstr "" +"Classe permettant de générer des nombres aléatoires à partir des sources " +"d'aléa les plus sûres fournies par le système d'exploitation. Se référer à :" +"class:`random.SystemRandom` pour plus de détails." + +#: ../Doc/library/secrets.rst:47 +msgid "Return a randomly-chosen element from a non-empty sequence." +msgstr "Renvoie un élément choisi aléatoirement dans une séquence non-vide." + +#: ../Doc/library/secrets.rst:51 +msgid "Return a random int in the range [0, *n*)." +msgstr "Renvoie un entier aléatoire dans l'intervalle [0, *n*)." + +#: ../Doc/library/secrets.rst:55 +msgid "Return an int with *k* random bits." +msgstr "Renvoie un entier de *k* bits aléatoires." + +#: ../Doc/library/secrets.rst:59 +msgid "Generating tokens" +msgstr "Génération de jetons" + +#: ../Doc/library/secrets.rst:61 +msgid "" +"The :mod:`secrets` module provides functions for generating secure tokens, " +"suitable for applications such as password resets, hard-to-guess URLs, and " +"similar." +msgstr "" +"Le module :mod:`secrets` fournit des fonctions pour la génération sécurisée " +"de jetons adaptés à la réinitialisation de mots de passe, à la production " +"d'URLs difficiles à deviner, etc." + +#: ../Doc/library/secrets.rst:67 +msgid "" +"Return a random byte string containing *nbytes* number of bytes. If *nbytes* " +"is ``None`` or not supplied, a reasonable default is used." +msgstr "" +"Renvoie une chaîne d'octets aléatoire contenant *nbytes* octets. Si *nbytes* " +"est ``None`` ou omis, une valeur par défaut raisonnable est utilisée." + +#: ../Doc/library/secrets.rst:79 +msgid "" +"Return a random text string, in hexadecimal. The string has *nbytes* random " +"bytes, each byte converted to two hex digits. If *nbytes* is ``None`` or " +"not supplied, a reasonable default is used." +msgstr "" +"Renvoie une chaîne de caractères aléatoire en hexadécimal. La chaîne " +"comporte *nbytes* octets aléatoires, chaque octet étant écrit sous la forme " +"de deux chiffres hexadécimaux. Si *nbytes* est ``None`` ou omis, une valeur " +"par défaut raisonnable est utilisée." + +#: ../Doc/library/secrets.rst:90 +msgid "" +"Return a random URL-safe text string, containing *nbytes* random bytes. The " +"text is Base64 encoded, so on average each byte results in approximately 1.3 " +"characters. If *nbytes* is ``None`` or not supplied, a reasonable default " +"is used." +msgstr "" +"Renvoie une chaîne de caractères aléatoire adaptée au format URL, contenant " +"*nbytes* octets aléatoires. Le texte est encodé en base64, chaque octet " +"produisant en moyenne 1,3 caractères. Si *nbytes* est ``None`` ou omis, une " +"valeur par défaut raisonnable est utilisée." + +#: ../Doc/library/secrets.rst:102 +msgid "How many bytes should tokens use?" +msgstr "Combien d'octets mon jeton doit-il comporter ?" + +#: ../Doc/library/secrets.rst:104 +msgid "" +"To be secure against `brute-force attacks `_, tokens need to have sufficient randomness. " +"Unfortunately, what is considered sufficient will necessarily increase as " +"computers get more powerful and able to make more guesses in a shorter " +"period. As of 2015, it is believed that 32 bytes (256 bits) of randomness " +"is sufficient for the typical use-case expected for the :mod:`secrets` " +"module." +msgstr "" +"Afin de se prémunir des `attaques par force brute `_, les jetons doivent être suffisamment " +"aléatoires. Malheureusement, l'augmentation de la puissance de calcul des " +"ordinateurs leur permet de réaliser plus de tentatives dans le même laps de " +"temps. De ce fait, le nombre de bits recommandé pour l'aléa augmente aussi. " +"En 2015, une longueur de 32 octets (256 bits) aléatoires est généralement " +"considérée suffisante pour les usages typiques du module :mod:`secrets`." + +#: ../Doc/library/secrets.rst:112 +msgid "" +"For those who want to manage their own token length, you can explicitly " +"specify how much randomness is used for tokens by giving an :class:`int` " +"argument to the various ``token_*`` functions. That argument is taken as " +"the number of bytes of randomness to use." +msgstr "" +"Si vous souhaitez gérer la longueur des jetons par vous-même, vous pouvez " +"spécifier la quantité d'aléa à introduire dans les jetons en passant un " +"argument :class:`int` aux différentes fonctions ``token_*``. Cet argument " +"indique alors le nombre d'octets aléatoires utilisés pour la création du " +"jeton." + +#: ../Doc/library/secrets.rst:117 +msgid "" +"Otherwise, if no argument is provided, or if the argument is ``None``, the " +"``token_*`` functions will use a reasonable default instead." +msgstr "" +"Sinon, si aucun argument n'est passé ou si celui-ci est ``None``, les " +"fonctions ``token_*`` utilisent une valeur par défaut raisonnable à la place." + +#: ../Doc/library/secrets.rst:122 +msgid "" +"That default is subject to change at any time, including during maintenance " +"releases." +msgstr "" +"Cette valeur par défaut est susceptible de changer à n'importe quel moment, " +"y compris lors des mises à jour de maintenance." + +#: ../Doc/library/secrets.rst:127 +msgid "Other functions" +msgstr "Autres fonctions" + +#: ../Doc/library/secrets.rst:131 +msgid "" +"Return ``True`` if strings *a* and *b* are equal, otherwise ``False``, in " +"such a way as to reduce the risk of `timing attacks `_. See :func:`hmac.compare_digest` for additional " +"details." +msgstr "" +"Renvoie ``True`` si les chaînes *a* et *b* sont égales et ``False`` sinon, " +"d'une manière permettant de réduire le risque d'`attaque temporelle `_. Se référer à :func:`hmac." +"compare_digest` pour plus de détails." + +#: ../Doc/library/secrets.rst:138 +msgid "Recipes and best practices" +msgstr "Recettes et bonnes pratiques" + +#: ../Doc/library/secrets.rst:140 +msgid "" +"This section shows recipes and best practices for using :mod:`secrets` to " +"manage a basic level of security." +msgstr "" +"Cette section expose les recettes et les bonnes pratiques d'utilisation de :" +"mod:`secrets` pour gérer un niveau minimal de sécurité." + +#: ../Doc/library/secrets.rst:143 +msgid "Generate an eight-character alphanumeric password:" +msgstr "Générer un mot de passe à huit caractères alphanumériques :" + +#: ../Doc/library/secrets.rst:154 +msgid "" +"Applications should not `store passwords in a recoverable format `_, whether plain text or encrypted. " +"They should be salted and hashed using a cryptographically-strong one-way " +"(irreversible) hash function." +msgstr "" +"Les applications ne doivent jamais `stocker des mots de passe dans un format " +"permettant leur récupération `_, que ce soit en texte brut ou chiffré. Il convient que les mots de " +"passe soient salés et transformés de façon irréversible par une fonction de " +"hachage cryptographique." + +#: ../Doc/library/secrets.rst:160 +msgid "" +"Generate a ten-character alphanumeric password with at least one lowercase " +"character, at least one uppercase character, and at least three digits:" +msgstr "" +"Générer un mot de passe alphanumérique à dix caractères contenant au moins " +"un caractère en minuscule, au moins un caractère en majuscule et au moins " +"trois chiffres :" + +#: ../Doc/library/secrets.rst:176 +msgid "Generate an `XKCD-style passphrase `_:" +msgstr "" +"Générer une `phrase de passe dans le style xkcd `_ :" + +#: ../Doc/library/secrets.rst:187 +msgid "" +"Generate a hard-to-guess temporary URL containing a security token suitable " +"for password recovery applications:" +msgstr "" +"Générer une URL temporaire difficile à deviner contenant un jeton de " +"sécurité adapté à réinitialisation d'un mot de passe :" diff --git a/library/select.po b/library/select.po new file mode 100644 index 000000000..8630aa66c --- /dev/null +++ b/library/select.po @@ -0,0 +1,980 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/select.rst:2 +msgid ":mod:`select` --- Waiting for I/O completion" +msgstr "" + +#: ../Doc/library/select.rst:9 +msgid "" +"This module provides access to the :c:func:`select` and :c:func:`poll` " +"functions available in most operating systems, :c:func:`devpoll` available " +"on Solaris and derivatives, :c:func:`epoll` available on Linux 2.5+ and :c:" +"func:`kqueue` available on most BSD. Note that on Windows, it only works for " +"sockets; on other operating systems, it also works for other file types (in " +"particular, on Unix, it works on pipes). It cannot be used on regular files " +"to determine whether a file has grown since it was last read." +msgstr "" + +#: ../Doc/library/select.rst:20 +msgid "" +"The :mod:`selectors` module allows high-level and efficient I/O " +"multiplexing, built upon the :mod:`select` module primitives. Users are " +"encouraged to use the :mod:`selectors` module instead, unless they want " +"precise control over the OS-level primitives used." +msgstr "" + +#: ../Doc/library/select.rst:26 +msgid "The module defines the following:" +msgstr "Le module définit :" + +#: ../Doc/library/select.rst:31 +msgid "A deprecated alias of :exc:`OSError`." +msgstr "" + +#: ../Doc/library/select.rst:33 +msgid "Following :pep:`3151`, this class was made an alias of :exc:`OSError`." +msgstr "" + +#: ../Doc/library/select.rst:39 +msgid "" +"(Only supported on Solaris and derivatives.) Returns a ``/dev/poll`` " +"polling object; see section :ref:`devpoll-objects` below for the methods " +"supported by devpoll objects." +msgstr "" + +#: ../Doc/library/select.rst:43 +msgid "" +":c:func:`devpoll` objects are linked to the number of file descriptors " +"allowed at the time of instantiation. If your program reduces this value, :c:" +"func:`devpoll` will fail. If your program increases this value, :c:func:" +"`devpoll` may return an incomplete list of active file descriptors." +msgstr "" + +#: ../Doc/library/select.rst:49 ../Doc/library/select.rst:78 +#: ../Doc/library/select.rst:105 +msgid "The new file descriptor is :ref:`non-inheritable `." +msgstr "" + +#: ../Doc/library/select.rst:53 ../Doc/library/select.rst:107 +msgid "The new file descriptor is now non-inheritable." +msgstr "Le nouveau descripteur de fichier est maintenant non-héritable." + +#: ../Doc/library/select.rst:58 +msgid "" +"(Only supported on Linux 2.5.44 and newer.) Return an edge polling object, " +"which can be used as Edge or Level Triggered interface for I/O events." +msgstr "" + +#: ../Doc/library/select.rst:62 +msgid "" +"*sizehint* informs epoll about the expected number of events to be " +"registered. It must be positive, or `-1` to use the default. It is only " +"used on older systems where :c:func:`epoll_create1` is not available; " +"otherwise it has no effect (though its value is still checked)." +msgstr "" + +#: ../Doc/library/select.rst:67 +msgid "" +"*flags* is deprecated and completely ignored. However, when supplied, its " +"value must be ``0`` or ``select.EPOLL_CLOEXEC``, otherwise ``OSError`` is " +"raised." +msgstr "" + +#: ../Doc/library/select.rst:71 +msgid "" +"See the :ref:`epoll-objects` section below for the methods supported by " +"epolling objects." +msgstr "" + +#: ../Doc/library/select.rst:74 +msgid "" +"``epoll`` objects support the context management protocol: when used in a :" +"keyword:`with` statement, the new file descriptor is automatically closed at " +"the end of the block." +msgstr "" + +#: ../Doc/library/select.rst:80 +msgid "Added the *flags* parameter." +msgstr "" + +#: ../Doc/library/select.rst:83 +msgid "" +"Support for the :keyword:`with` statement was added. The new file descriptor " +"is now non-inheritable." +msgstr "" + +#: ../Doc/library/select.rst:87 +msgid "" +"The *flags* parameter. ``select.EPOLL_CLOEXEC`` is used by default now. " +"Use :func:`os.set_inheritable` to make the file descriptor inheritable." +msgstr "" + +#: ../Doc/library/select.rst:94 +msgid "" +"(Not supported by all operating systems.) Returns a polling object, which " +"supports registering and unregistering file descriptors, and then polling " +"them for I/O events; see section :ref:`poll-objects` below for the methods " +"supported by polling objects." +msgstr "" + +#: ../Doc/library/select.rst:102 +msgid "" +"(Only supported on BSD.) Returns a kernel queue object; see section :ref:" +"`kqueue-objects` below for the methods supported by kqueue objects." +msgstr "" + +#: ../Doc/library/select.rst:113 +msgid "" +"(Only supported on BSD.) Returns a kernel event object; see section :ref:" +"`kevent-objects` below for the methods supported by kevent objects." +msgstr "" + +#: ../Doc/library/select.rst:119 +msgid "" +"This is a straightforward interface to the Unix :c:func:`select` system " +"call. The first three arguments are sequences of 'waitable objects': either " +"integers representing file descriptors or objects with a parameterless " +"method named :meth:`~io.IOBase.fileno` returning such an integer:" +msgstr "" + +#: ../Doc/library/select.rst:124 +msgid "*rlist*: wait until ready for reading" +msgstr "" + +#: ../Doc/library/select.rst:125 +msgid "*wlist*: wait until ready for writing" +msgstr "" + +#: ../Doc/library/select.rst:126 +msgid "" +"*xlist*: wait for an \"exceptional condition\" (see the manual page for what " +"your system considers such a condition)" +msgstr "" + +#: ../Doc/library/select.rst:129 +msgid "" +"Empty sequences are allowed, but acceptance of three empty sequences is " +"platform-dependent. (It is known to work on Unix but not on Windows.) The " +"optional *timeout* argument specifies a time-out as a floating point number " +"in seconds. When the *timeout* argument is omitted the function blocks " +"until at least one file descriptor is ready. A time-out value of zero " +"specifies a poll and never blocks." +msgstr "" + +#: ../Doc/library/select.rst:136 +msgid "" +"The return value is a triple of lists of objects that are ready: subsets of " +"the first three arguments. When the time-out is reached without a file " +"descriptor becoming ready, three empty lists are returned." +msgstr "" + +#: ../Doc/library/select.rst:144 +msgid "" +"Among the acceptable object types in the sequences are Python :term:`file " +"objects ` (e.g. ``sys.stdin``, or objects returned by :func:" +"`open` or :func:`os.popen`), socket objects returned by :func:`socket." +"socket`. You may also define a :dfn:`wrapper` class yourself, as long as it " +"has an appropriate :meth:`~io.IOBase.fileno` method (that really returns a " +"file descriptor, not just a random integer)." +msgstr "" + +#: ../Doc/library/select.rst:155 +msgid "" +"File objects on Windows are not acceptable, but sockets are. On Windows, " +"the underlying :c:func:`select` function is provided by the WinSock library, " +"and does not handle file descriptors that don't originate from WinSock." +msgstr "" + +#: ../Doc/library/select.rst:160 ../Doc/library/select.rst:266 +#: ../Doc/library/select.rst:363 ../Doc/library/select.rst:451 +#: ../Doc/library/select.rst:491 +msgid "" +"The function is now retried with a recomputed timeout when interrupted by a " +"signal, except if the signal handler raises an exception (see :pep:`475` for " +"the rationale), instead of raising :exc:`InterruptedError`." +msgstr "" + +#: ../Doc/library/select.rst:169 +msgid "" +"The minimum number of bytes which can be written without blocking to a pipe " +"when the pipe has been reported as ready for writing by :func:`~select." +"select`, :func:`poll` or another interface in this module. This doesn't " +"apply to other kind of file-like objects such as sockets." +msgstr "" + +#: ../Doc/library/select.rst:174 +msgid "This value is guaranteed by POSIX to be at least 512." +msgstr "" + +#: ../Doc/library/select.rst:177 +msgid ":ref:`Availability `: Unix" +msgstr ":ref:`Disponibilité ` : Unix" + +#: ../Doc/library/select.rst:184 +msgid "``/dev/poll`` Polling Objects" +msgstr "" + +#: ../Doc/library/select.rst:186 +msgid "" +"Solaris and derivatives have ``/dev/poll``. While :c:func:`select` is " +"O(highest file descriptor) and :c:func:`poll` is O(number of file " +"descriptors), ``/dev/poll`` is O(active file descriptors)." +msgstr "" + +#: ../Doc/library/select.rst:190 +msgid "" +"``/dev/poll`` behaviour is very close to the standard :c:func:`poll` object." +msgstr "" + +#: ../Doc/library/select.rst:196 +msgid "Close the file descriptor of the polling object." +msgstr "" + +#: ../Doc/library/select.rst:203 +msgid "``True`` if the polling object is closed." +msgstr "" + +#: ../Doc/library/select.rst:210 +msgid "Return the file descriptor number of the polling object." +msgstr "" + +#: ../Doc/library/select.rst:217 ../Doc/library/select.rst:386 +msgid "" +"Register a file descriptor with the polling object. Future calls to the :" +"meth:`poll` method will then check whether the file descriptor has any " +"pending I/O events. *fd* can be either an integer, or an object with a :" +"meth:`~io.IOBase.fileno` method that returns an integer. File objects " +"implement :meth:`!fileno`, so they can also be used as the argument." +msgstr "" + +#: ../Doc/library/select.rst:223 +msgid "" +"*eventmask* is an optional bitmask describing the type of events you want to " +"check for. The constants are the same that with :c:func:`poll` object. The " +"default value is a combination of the constants :const:`POLLIN`, :const:" +"`POLLPRI`, and :const:`POLLOUT`." +msgstr "" + +#: ../Doc/library/select.rst:230 +msgid "" +"Registering a file descriptor that's already registered is not an error, but " +"the result is undefined. The appropriate action is to unregister or modify " +"it first. This is an important difference compared with :c:func:`poll`." +msgstr "" + +#: ../Doc/library/select.rst:238 +msgid "" +"This method does an :meth:`unregister` followed by a :meth:`register`. It is " +"(a bit) more efficient that doing the same explicitly." +msgstr "" + +#: ../Doc/library/select.rst:245 ../Doc/library/select.rst:430 +msgid "" +"Remove a file descriptor being tracked by a polling object. Just like the :" +"meth:`register` method, *fd* can be an integer or an object with a :meth:" +"`~io.IOBase.fileno` method that returns an integer." +msgstr "" + +#: ../Doc/library/select.rst:249 +msgid "" +"Attempting to remove a file descriptor that was never registered is safely " +"ignored." +msgstr "" + +#: ../Doc/library/select.rst:255 +msgid "" +"Polls the set of registered file descriptors, and returns a possibly-empty " +"list containing ``(fd, event)`` 2-tuples for the descriptors that have " +"events or errors to report. *fd* is the file descriptor, and *event* is a " +"bitmask with bits set for the reported events for that descriptor --- :const:" +"`POLLIN` for waiting input, :const:`POLLOUT` to indicate that the descriptor " +"can be written to, and so forth. An empty list indicates that the call timed " +"out and no file descriptors had any events to report. If *timeout* is given, " +"it specifies the length of time in milliseconds which the system will wait " +"for events before returning. If *timeout* is omitted, -1, or :const:`None`, " +"the call will block until there is an event for this poll object." +msgstr "" + +#: ../Doc/library/select.rst:276 +msgid "Edge and Level Trigger Polling (epoll) Objects" +msgstr "" + +#: ../Doc/library/select.rst:278 +msgid "https://linux.die.net/man/4/epoll" +msgstr "" + +#: ../Doc/library/select.rst:280 +msgid "*eventmask*" +msgstr "" + +#: ../Doc/library/select.rst:283 ../Doc/library/select.rst:398 +#: ../Doc/library/select.rst:517 ../Doc/library/select.rst:546 +#: ../Doc/library/select.rst:577 ../Doc/library/select.rst:585 +#: ../Doc/library/select.rst:605 ../Doc/library/select.rst:628 +msgid "Constant" +msgstr "Constante" + +#: ../Doc/library/select.rst:283 ../Doc/library/select.rst:398 +#: ../Doc/library/select.rst:517 ../Doc/library/select.rst:546 +#: ../Doc/library/select.rst:577 ../Doc/library/select.rst:585 +#: ../Doc/library/select.rst:605 ../Doc/library/select.rst:628 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/select.rst:285 +msgid ":const:`EPOLLIN`" +msgstr ":const:`EPOLLIN`" + +#: ../Doc/library/select.rst:285 +msgid "Available for read" +msgstr "" + +#: ../Doc/library/select.rst:287 +msgid ":const:`EPOLLOUT`" +msgstr ":const:`EPOLLOUT`" + +#: ../Doc/library/select.rst:287 +msgid "Available for write" +msgstr "" + +#: ../Doc/library/select.rst:289 +msgid ":const:`EPOLLPRI`" +msgstr ":const:`EPOLLPRI`" + +#: ../Doc/library/select.rst:289 +msgid "Urgent data for read" +msgstr "" + +#: ../Doc/library/select.rst:291 +msgid ":const:`EPOLLERR`" +msgstr ":const:`EPOLLERR`" + +#: ../Doc/library/select.rst:291 +msgid "Error condition happened on the assoc. fd" +msgstr "" + +#: ../Doc/library/select.rst:293 +msgid ":const:`EPOLLHUP`" +msgstr ":const:`EPOLLHUP`" + +#: ../Doc/library/select.rst:293 +msgid "Hang up happened on the assoc. fd" +msgstr "" + +#: ../Doc/library/select.rst:295 +msgid ":const:`EPOLLET`" +msgstr ":const:`EPOLLET`" + +#: ../Doc/library/select.rst:295 +msgid "Set Edge Trigger behavior, the default is Level Trigger behavior" +msgstr "" + +#: ../Doc/library/select.rst:298 +msgid ":const:`EPOLLONESHOT`" +msgstr ":const:`EPOLLONESHOT`" + +#: ../Doc/library/select.rst:298 +msgid "" +"Set one-shot behavior. After one event is pulled out, the fd is internally " +"disabled" +msgstr "" + +#: ../Doc/library/select.rst:301 +msgid ":const:`EPOLLEXCLUSIVE`" +msgstr "" + +#: ../Doc/library/select.rst:301 +msgid "" +"Wake only one epoll object when the associated fd has an event. The default " +"(if this flag is not set) is to wake all epoll objects polling on a fd." +msgstr "" + +#: ../Doc/library/select.rst:306 +msgid ":const:`EPOLLRDHUP`" +msgstr "" + +#: ../Doc/library/select.rst:306 +msgid "" +"Stream socket peer closed connection or shut down writing half of connection." +msgstr "" + +#: ../Doc/library/select.rst:309 +msgid ":const:`EPOLLRDNORM`" +msgstr ":const:`EPOLLRDNORM`" + +#: ../Doc/library/select.rst:309 +msgid "Equivalent to :const:`EPOLLIN`" +msgstr "" + +#: ../Doc/library/select.rst:311 +msgid ":const:`EPOLLRDBAND`" +msgstr ":const:`EPOLLRDBAND`" + +#: ../Doc/library/select.rst:311 +msgid "Priority data band can be read." +msgstr "" + +#: ../Doc/library/select.rst:313 +msgid ":const:`EPOLLWRNORM`" +msgstr ":const:`EPOLLWRNORM`" + +#: ../Doc/library/select.rst:313 +msgid "Equivalent to :const:`EPOLLOUT`" +msgstr "" + +#: ../Doc/library/select.rst:315 +msgid ":const:`EPOLLWRBAND`" +msgstr ":const:`EPOLLWRBAND`" + +#: ../Doc/library/select.rst:315 +msgid "Priority data may be written." +msgstr "" + +#: ../Doc/library/select.rst:317 +msgid ":const:`EPOLLMSG`" +msgstr ":const:`EPOLLMSG`" + +#: ../Doc/library/select.rst:317 +msgid "Ignored." +msgstr "" + +#: ../Doc/library/select.rst:320 +msgid "" +":const:`EPOLLEXCLUSIVE` was added. It's only supported by Linux Kernel 4.5 " +"or later." +msgstr "" + +#: ../Doc/library/select.rst:326 +msgid "Close the control file descriptor of the epoll object." +msgstr "" + +#: ../Doc/library/select.rst:331 +msgid "``True`` if the epoll object is closed." +msgstr "" + +#: ../Doc/library/select.rst:336 ../Doc/library/select.rst:475 +msgid "Return the file descriptor number of the control fd." +msgstr "" + +#: ../Doc/library/select.rst:341 +msgid "Create an epoll object from a given file descriptor." +msgstr "" + +#: ../Doc/library/select.rst:346 +msgid "Register a fd descriptor with the epoll object." +msgstr "" + +#: ../Doc/library/select.rst:351 +msgid "Modify a registered file descriptor." +msgstr "" + +#: ../Doc/library/select.rst:356 +msgid "Remove a registered file descriptor from the epoll object." +msgstr "" + +#: ../Doc/library/select.rst:361 +msgid "Wait for events. timeout in seconds (float)" +msgstr "" + +#: ../Doc/library/select.rst:373 +msgid "Polling Objects" +msgstr "" + +#: ../Doc/library/select.rst:375 +msgid "" +"The :c:func:`poll` system call, supported on most Unix systems, provides " +"better scalability for network servers that service many, many clients at " +"the same time. :c:func:`poll` scales better because the system call only " +"requires listing the file descriptors of interest, while :c:func:`select` " +"builds a bitmap, turns on bits for the fds of interest, and then afterward " +"the whole bitmap has to be linearly scanned again. :c:func:`select` is " +"O(highest file descriptor), while :c:func:`poll` is O(number of file " +"descriptors)." +msgstr "" + +#: ../Doc/library/select.rst:392 +msgid "" +"*eventmask* is an optional bitmask describing the type of events you want to " +"check for, and can be a combination of the constants :const:`POLLIN`, :const:" +"`POLLPRI`, and :const:`POLLOUT`, described in the table below. If not " +"specified, the default value used will check for all 3 types of events." +msgstr "" + +#: ../Doc/library/select.rst:400 +msgid ":const:`POLLIN`" +msgstr ":const:`POLLIN`" + +#: ../Doc/library/select.rst:400 +msgid "There is data to read" +msgstr "" + +#: ../Doc/library/select.rst:402 +msgid ":const:`POLLPRI`" +msgstr ":const:`POLLPRI`" + +#: ../Doc/library/select.rst:402 +msgid "There is urgent data to read" +msgstr "" + +#: ../Doc/library/select.rst:404 +msgid ":const:`POLLOUT`" +msgstr ":const:`POLLOUT`" + +#: ../Doc/library/select.rst:404 +msgid "Ready for output: writing will not block" +msgstr "" + +#: ../Doc/library/select.rst:406 +msgid ":const:`POLLERR`" +msgstr ":const:`POLLERR`" + +#: ../Doc/library/select.rst:406 +msgid "Error condition of some sort" +msgstr "" + +#: ../Doc/library/select.rst:408 +msgid ":const:`POLLHUP`" +msgstr ":const:`POLLHUP`" + +#: ../Doc/library/select.rst:408 +msgid "Hung up" +msgstr "" + +#: ../Doc/library/select.rst:410 +msgid ":const:`POLLRDHUP`" +msgstr "" + +#: ../Doc/library/select.rst:410 +msgid "" +"Stream socket peer closed connection, or shut down writing half of connection" +msgstr "" + +#: ../Doc/library/select.rst:413 +msgid ":const:`POLLNVAL`" +msgstr ":const:`POLLNVAL`" + +#: ../Doc/library/select.rst:413 +msgid "Invalid request: descriptor not open" +msgstr "" + +#: ../Doc/library/select.rst:416 +msgid "" +"Registering a file descriptor that's already registered is not an error, and " +"has the same effect as registering the descriptor exactly once." +msgstr "" + +#: ../Doc/library/select.rst:422 +msgid "" +"Modifies an already registered fd. This has the same effect as " +"``register(fd, eventmask)``. Attempting to modify a file descriptor that " +"was never registered causes an :exc:`OSError` exception with errno :const:" +"`ENOENT` to be raised." +msgstr "" + +#: ../Doc/library/select.rst:434 +msgid "" +"Attempting to remove a file descriptor that was never registered causes a :" +"exc:`KeyError` exception to be raised." +msgstr "" + +#: ../Doc/library/select.rst:440 +msgid "" +"Polls the set of registered file descriptors, and returns a possibly-empty " +"list containing ``(fd, event)`` 2-tuples for the descriptors that have " +"events or errors to report. *fd* is the file descriptor, and *event* is a " +"bitmask with bits set for the reported events for that descriptor --- :const:" +"`POLLIN` for waiting input, :const:`POLLOUT` to indicate that the descriptor " +"can be written to, and so forth. An empty list indicates that the call timed " +"out and no file descriptors had any events to report. If *timeout* is given, " +"it specifies the length of time in milliseconds which the system will wait " +"for events before returning. If *timeout* is omitted, negative, or :const:" +"`None`, the call will block until there is an event for this poll object." +msgstr "" + +#: ../Doc/library/select.rst:461 +msgid "Kqueue Objects" +msgstr "" + +#: ../Doc/library/select.rst:465 +msgid "Close the control file descriptor of the kqueue object." +msgstr "" + +#: ../Doc/library/select.rst:470 +msgid "``True`` if the kqueue object is closed." +msgstr "" + +#: ../Doc/library/select.rst:480 +msgid "Create a kqueue object from a given file descriptor." +msgstr "" + +#: ../Doc/library/select.rst:485 +msgid "Low level interface to kevent" +msgstr "" + +#: ../Doc/library/select.rst:487 +msgid "changelist must be an iterable of kevent object or ``None``" +msgstr "" + +#: ../Doc/library/select.rst:488 +msgid "max_events must be 0 or a positive integer" +msgstr "" + +#: ../Doc/library/select.rst:489 +msgid "timeout in seconds (floats possible)" +msgstr "" + +#: ../Doc/library/select.rst:501 +msgid "Kevent Objects" +msgstr "" + +#: ../Doc/library/select.rst:503 +msgid "https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2" +msgstr "" + +#: ../Doc/library/select.rst:507 +msgid "" +"Value used to identify the event. The interpretation depends on the filter " +"but it's usually the file descriptor. In the constructor ident can either be " +"an int or an object with a :meth:`~io.IOBase.fileno` method. kevent stores " +"the integer internally." +msgstr "" + +#: ../Doc/library/select.rst:514 +msgid "Name of the kernel filter." +msgstr "" + +#: ../Doc/library/select.rst:519 +msgid ":const:`KQ_FILTER_READ`" +msgstr ":const:`KQ_FILTER_READ`" + +#: ../Doc/library/select.rst:519 +msgid "Takes a descriptor and returns whenever there is data available to read" +msgstr "" + +#: ../Doc/library/select.rst:522 +msgid ":const:`KQ_FILTER_WRITE`" +msgstr ":const:`KQ_FILTER_WRITE`" + +#: ../Doc/library/select.rst:522 +msgid "" +"Takes a descriptor and returns whenever there is data available to write" +msgstr "" + +#: ../Doc/library/select.rst:525 +msgid ":const:`KQ_FILTER_AIO`" +msgstr ":const:`KQ_FILTER_AIO`" + +#: ../Doc/library/select.rst:525 +msgid "AIO requests" +msgstr "" + +#: ../Doc/library/select.rst:527 +msgid ":const:`KQ_FILTER_VNODE`" +msgstr ":const:`KQ_FILTER_VNODE`" + +#: ../Doc/library/select.rst:527 +msgid "" +"Returns when one or more of the requested events watched in *fflag* occurs" +msgstr "" + +#: ../Doc/library/select.rst:530 +msgid ":const:`KQ_FILTER_PROC`" +msgstr ":const:`KQ_FILTER_PROC`" + +#: ../Doc/library/select.rst:530 +msgid "Watch for events on a process id" +msgstr "" + +#: ../Doc/library/select.rst:532 +msgid ":const:`KQ_FILTER_NETDEV`" +msgstr ":const:`KQ_FILTER_NETDEV`" + +#: ../Doc/library/select.rst:532 +msgid "Watch for events on a network device [not available on Mac OS X]" +msgstr "" + +#: ../Doc/library/select.rst:535 +msgid ":const:`KQ_FILTER_SIGNAL`" +msgstr ":const:`KQ_FILTER_SIGNAL`" + +#: ../Doc/library/select.rst:535 +msgid "Returns whenever the watched signal is delivered to the process" +msgstr "" + +#: ../Doc/library/select.rst:538 +msgid ":const:`KQ_FILTER_TIMER`" +msgstr ":const:`KQ_FILTER_TIMER`" + +#: ../Doc/library/select.rst:538 +msgid "Establishes an arbitrary timer" +msgstr "" + +#: ../Doc/library/select.rst:543 +msgid "Filter action." +msgstr "" + +#: ../Doc/library/select.rst:548 +msgid ":const:`KQ_EV_ADD`" +msgstr ":const:`KQ_EV_ADD`" + +#: ../Doc/library/select.rst:548 +msgid "Adds or modifies an event" +msgstr "" + +#: ../Doc/library/select.rst:550 +msgid ":const:`KQ_EV_DELETE`" +msgstr ":const:`KQ_EV_DELETE`" + +#: ../Doc/library/select.rst:550 +msgid "Removes an event from the queue" +msgstr "" + +#: ../Doc/library/select.rst:552 +msgid ":const:`KQ_EV_ENABLE`" +msgstr ":const:`KQ_EV_ENABLE`" + +#: ../Doc/library/select.rst:552 +msgid "Permitscontrol() to returns the event" +msgstr "" + +#: ../Doc/library/select.rst:554 +msgid ":const:`KQ_EV_DISABLE`" +msgstr ":const:`KQ_EV_DISABLE`" + +#: ../Doc/library/select.rst:554 +msgid "Disablesevent" +msgstr "" + +#: ../Doc/library/select.rst:556 +msgid ":const:`KQ_EV_ONESHOT`" +msgstr ":const:`KQ_EV_ONESHOT`" + +#: ../Doc/library/select.rst:556 +msgid "Removes event after first occurrence" +msgstr "" + +#: ../Doc/library/select.rst:558 +msgid ":const:`KQ_EV_CLEAR`" +msgstr ":const:`KQ_EV_CLEAR`" + +#: ../Doc/library/select.rst:558 +msgid "Reset the state after an event is retrieved" +msgstr "" + +#: ../Doc/library/select.rst:560 +msgid ":const:`KQ_EV_SYSFLAGS`" +msgstr ":const:`KQ_EV_SYSFLAGS`" + +#: ../Doc/library/select.rst:560 ../Doc/library/select.rst:562 +msgid "internal event" +msgstr "" + +#: ../Doc/library/select.rst:562 +msgid ":const:`KQ_EV_FLAG1`" +msgstr ":const:`KQ_EV_FLAG1`" + +#: ../Doc/library/select.rst:564 +msgid ":const:`KQ_EV_EOF`" +msgstr ":const:`KQ_EV_EOF`" + +#: ../Doc/library/select.rst:564 +msgid "Filter specific EOF condition" +msgstr "" + +#: ../Doc/library/select.rst:566 +msgid ":const:`KQ_EV_ERROR`" +msgstr ":const:`KQ_EV_ERROR`" + +#: ../Doc/library/select.rst:566 +msgid "See return values" +msgstr "" + +#: ../Doc/library/select.rst:572 +msgid "Filter specific flags." +msgstr "" + +#: ../Doc/library/select.rst:574 +msgid ":const:`KQ_FILTER_READ` and :const:`KQ_FILTER_WRITE` filter flags:" +msgstr "" + +#: ../Doc/library/select.rst:579 +msgid ":const:`KQ_NOTE_LOWAT`" +msgstr ":const:`KQ_NOTE_LOWAT`" + +#: ../Doc/library/select.rst:579 +msgid "low water mark of a socket buffer" +msgstr "" + +#: ../Doc/library/select.rst:582 +msgid ":const:`KQ_FILTER_VNODE` filter flags:" +msgstr "" + +#: ../Doc/library/select.rst:587 +msgid ":const:`KQ_NOTE_DELETE`" +msgstr ":const:`KQ_NOTE_DELETE`" + +#: ../Doc/library/select.rst:587 +msgid "*unlink()* was called" +msgstr "" + +#: ../Doc/library/select.rst:589 +msgid ":const:`KQ_NOTE_WRITE`" +msgstr ":const:`KQ_NOTE_WRITE`" + +#: ../Doc/library/select.rst:589 +msgid "a write occurred" +msgstr "" + +#: ../Doc/library/select.rst:591 +msgid ":const:`KQ_NOTE_EXTEND`" +msgstr ":const:`KQ_NOTE_EXTEND`" + +#: ../Doc/library/select.rst:591 +msgid "the file was extended" +msgstr "" + +#: ../Doc/library/select.rst:593 +msgid ":const:`KQ_NOTE_ATTRIB`" +msgstr ":const:`KQ_NOTE_ATTRIB`" + +#: ../Doc/library/select.rst:593 +msgid "an attribute was changed" +msgstr "" + +#: ../Doc/library/select.rst:595 +msgid ":const:`KQ_NOTE_LINK`" +msgstr ":const:`KQ_NOTE_LINK`" + +#: ../Doc/library/select.rst:595 +msgid "the link count has changed" +msgstr "" + +#: ../Doc/library/select.rst:597 +msgid ":const:`KQ_NOTE_RENAME`" +msgstr ":const:`KQ_NOTE_RENAME`" + +#: ../Doc/library/select.rst:597 +msgid "the file was renamed" +msgstr "" + +#: ../Doc/library/select.rst:599 +msgid ":const:`KQ_NOTE_REVOKE`" +msgstr ":const:`KQ_NOTE_REVOKE`" + +#: ../Doc/library/select.rst:599 +msgid "access to the file was revoked" +msgstr "" + +#: ../Doc/library/select.rst:602 +msgid ":const:`KQ_FILTER_PROC` filter flags:" +msgstr "" + +#: ../Doc/library/select.rst:607 +msgid ":const:`KQ_NOTE_EXIT`" +msgstr ":const:`KQ_NOTE_EXIT`" + +#: ../Doc/library/select.rst:607 +msgid "the process has exited" +msgstr "" + +#: ../Doc/library/select.rst:609 +msgid ":const:`KQ_NOTE_FORK`" +msgstr ":const:`KQ_NOTE_FORK`" + +#: ../Doc/library/select.rst:609 +msgid "the process has called *fork()*" +msgstr "" + +#: ../Doc/library/select.rst:611 +msgid ":const:`KQ_NOTE_EXEC`" +msgstr ":const:`KQ_NOTE_EXEC`" + +#: ../Doc/library/select.rst:611 +msgid "the process has executed a new process" +msgstr "" + +#: ../Doc/library/select.rst:613 +msgid ":const:`KQ_NOTE_PCTRLMASK`" +msgstr ":const:`KQ_NOTE_PCTRLMASK`" + +#: ../Doc/library/select.rst:613 ../Doc/library/select.rst:615 +msgid "internal filter flag" +msgstr "" + +#: ../Doc/library/select.rst:615 +msgid ":const:`KQ_NOTE_PDATAMASK`" +msgstr ":const:`KQ_NOTE_PDATAMASK`" + +#: ../Doc/library/select.rst:617 +msgid ":const:`KQ_NOTE_TRACK`" +msgstr ":const:`KQ_NOTE_TRACK`" + +#: ../Doc/library/select.rst:617 +msgid "follow a process across *fork()*" +msgstr "" + +#: ../Doc/library/select.rst:619 +msgid ":const:`KQ_NOTE_CHILD`" +msgstr ":const:`KQ_NOTE_CHILD`" + +#: ../Doc/library/select.rst:619 +msgid "returned on the child process for *NOTE_TRACK*" +msgstr "" + +#: ../Doc/library/select.rst:622 +msgid ":const:`KQ_NOTE_TRACKERR`" +msgstr ":const:`KQ_NOTE_TRACKERR`" + +#: ../Doc/library/select.rst:622 +msgid "unable to attach to a child" +msgstr "" + +#: ../Doc/library/select.rst:625 +msgid ":const:`KQ_FILTER_NETDEV` filter flags (not available on Mac OS X):" +msgstr "" + +#: ../Doc/library/select.rst:630 +msgid ":const:`KQ_NOTE_LINKUP`" +msgstr ":const:`KQ_NOTE_LINKUP`" + +#: ../Doc/library/select.rst:630 +msgid "link is up" +msgstr "" + +#: ../Doc/library/select.rst:632 +msgid ":const:`KQ_NOTE_LINKDOWN`" +msgstr ":const:`KQ_NOTE_LINKDOWN`" + +#: ../Doc/library/select.rst:632 +msgid "link is down" +msgstr "" + +#: ../Doc/library/select.rst:634 +msgid ":const:`KQ_NOTE_LINKINV`" +msgstr ":const:`KQ_NOTE_LINKINV`" + +#: ../Doc/library/select.rst:634 +msgid "link state is invalid" +msgstr "" + +#: ../Doc/library/select.rst:640 +msgid "Filter specific data." +msgstr "" + +#: ../Doc/library/select.rst:645 +msgid "User defined value." +msgstr "" diff --git a/library/selectors.po b/library/selectors.po new file mode 100644 index 000000000..4093be326 --- /dev/null +++ b/library/selectors.po @@ -0,0 +1,322 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"PO-Revision-Date: 2019-02-03 11:53+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/selectors.rst:2 +msgid ":mod:`selectors` --- High-level I/O multiplexing" +msgstr "" + +#: ../Doc/library/selectors.rst:9 +msgid "**Source code:** :source:`Lib/selectors.py`" +msgstr "" + +#: ../Doc/library/selectors.rst:14 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/library/selectors.rst:16 +msgid "" +"This module allows high-level and efficient I/O multiplexing, built upon " +"the :mod:`select` module primitives. Users are encouraged to use this module " +"instead, unless they want precise control over the OS-level primitives used." +msgstr "" + +#: ../Doc/library/selectors.rst:20 +msgid "" +"It defines a :class:`BaseSelector` abstract base class, along with several " +"concrete implementations (:class:`KqueueSelector`, :class:" +"`EpollSelector`...), that can be used to wait for I/O readiness notification " +"on multiple file objects. In the following, \"file object\" refers to any " +"object with a :meth:`fileno()` method, or a raw file descriptor. See :term:" +"`file object`." +msgstr "" + +#: ../Doc/library/selectors.rst:26 +msgid "" +":class:`DefaultSelector` is an alias to the most efficient implementation " +"available on the current platform: this should be the default choice for " +"most users." +msgstr "" + +#: ../Doc/library/selectors.rst:31 +msgid "" +"The type of file objects supported depends on the platform: on Windows, " +"sockets are supported, but not pipes, whereas on Unix, both are supported " +"(some other types may be supported as well, such as fifos or special file " +"devices)." +msgstr "" + +#: ../Doc/library/selectors.rst:38 +msgid ":mod:`select`" +msgstr ":mod:`select`" + +#: ../Doc/library/selectors.rst:39 +msgid "Low-level I/O multiplexing module." +msgstr "" + +#: ../Doc/library/selectors.rst:43 +msgid "Classes" +msgstr "Classes" + +#: ../Doc/library/selectors.rst:45 +msgid "Classes hierarchy::" +msgstr "" + +#: ../Doc/library/selectors.rst:55 +msgid "" +"In the following, *events* is a bitwise mask indicating which I/O events " +"should be waited for on a given file object. It can be a combination of the " +"modules constants below:" +msgstr "" + +#: ../Doc/library/selectors.rst:60 +msgid "Constant" +msgstr "Constante" + +#: ../Doc/library/selectors.rst:60 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/selectors.rst:62 +msgid ":const:`EVENT_READ`" +msgstr ":const:`EVENT_READ`" + +#: ../Doc/library/selectors.rst:62 +msgid "Available for read" +msgstr "" + +#: ../Doc/library/selectors.rst:64 +msgid ":const:`EVENT_WRITE`" +msgstr ":const:`EVENT_WRITE`" + +#: ../Doc/library/selectors.rst:64 +msgid "Available for write" +msgstr "" + +#: ../Doc/library/selectors.rst:70 +msgid "" +"A :class:`SelectorKey` is a :class:`~collections.namedtuple` used to " +"associate a file object to its underlying file descriptor, selected event " +"mask and attached data. It is returned by several :class:`BaseSelector` " +"methods." +msgstr "" + +#: ../Doc/library/selectors.rst:77 +msgid "File object registered." +msgstr "" + +#: ../Doc/library/selectors.rst:81 +msgid "Underlying file descriptor." +msgstr "" + +#: ../Doc/library/selectors.rst:85 +msgid "Events that must be waited for on this file object." +msgstr "" + +#: ../Doc/library/selectors.rst:89 +msgid "" +"Optional opaque data associated to this file object: for example, this could " +"be used to store a per-client session ID." +msgstr "" + +#: ../Doc/library/selectors.rst:95 +msgid "" +"A :class:`BaseSelector` is used to wait for I/O event readiness on multiple " +"file objects. It supports file stream registration, unregistration, and a " +"method to wait for I/O events on those streams, with an optional timeout. " +"It's an abstract base class, so cannot be instantiated. Use :class:" +"`DefaultSelector` instead, or one of :class:`SelectSelector`, :class:" +"`KqueueSelector` etc. if you want to specifically use an implementation, and " +"your platform supports it. :class:`BaseSelector` and its concrete " +"implementations support the :term:`context manager` protocol." +msgstr "" + +#: ../Doc/library/selectors.rst:107 +msgid "Register a file object for selection, monitoring it for I/O events." +msgstr "" + +#: ../Doc/library/selectors.rst:109 +msgid "" +"*fileobj* is the file object to monitor. It may either be an integer file " +"descriptor or an object with a ``fileno()`` method. *events* is a bitwise " +"mask of events to monitor. *data* is an opaque object." +msgstr "" + +#: ../Doc/library/selectors.rst:114 +msgid "" +"This returns a new :class:`SelectorKey` instance, or raises a :exc:" +"`ValueError` in case of invalid event mask or file descriptor, or :exc:" +"`KeyError` if the file object is already registered." +msgstr "" + +#: ../Doc/library/selectors.rst:120 +msgid "" +"Unregister a file object from selection, removing it from monitoring. A file " +"object shall be unregistered prior to being closed." +msgstr "" + +#: ../Doc/library/selectors.rst:123 +msgid "*fileobj* must be a file object previously registered." +msgstr "" + +#: ../Doc/library/selectors.rst:125 +msgid "" +"This returns the associated :class:`SelectorKey` instance, or raises a :exc:" +"`KeyError` if *fileobj* is not registered. It will raise :exc:`ValueError` " +"if *fileobj* is invalid (e.g. it has no ``fileno()`` method or its " +"``fileno()`` method has an invalid return value)." +msgstr "" + +#: ../Doc/library/selectors.rst:132 +msgid "Change a registered file object's monitored events or attached data." +msgstr "" + +#: ../Doc/library/selectors.rst:134 +msgid "" +"This is equivalent to :meth:`BaseSelector.unregister(fileobj)` followed by :" +"meth:`BaseSelector.register(fileobj, events, data)`, except that it can be " +"implemented more efficiently." +msgstr "" + +#: ../Doc/library/selectors.rst:138 +msgid "" +"This returns a new :class:`SelectorKey` instance, or raises a :exc:" +"`ValueError` in case of invalid event mask or file descriptor, or :exc:" +"`KeyError` if the file object is not registered." +msgstr "" + +#: ../Doc/library/selectors.rst:144 +msgid "" +"Wait until some registered file objects become ready, or the timeout expires." +msgstr "" + +#: ../Doc/library/selectors.rst:147 +msgid "" +"If ``timeout > 0``, this specifies the maximum wait time, in seconds. If " +"``timeout <= 0``, the call won't block, and will report the currently ready " +"file objects. If *timeout* is ``None``, the call will block until a " +"monitored file object becomes ready." +msgstr "" + +#: ../Doc/library/selectors.rst:153 +msgid "" +"This returns a list of ``(key, events)`` tuples, one for each ready file " +"object." +msgstr "" + +#: ../Doc/library/selectors.rst:156 +msgid "" +"*key* is the :class:`SelectorKey` instance corresponding to a ready file " +"object. *events* is a bitmask of events ready on this file object." +msgstr "" + +#: ../Doc/library/selectors.rst:161 +msgid "" +"This method can return before any file object becomes ready or the timeout " +"has elapsed if the current process receives a signal: in this case, an empty " +"list will be returned." +msgstr "" + +#: ../Doc/library/selectors.rst:165 +msgid "" +"The selector is now retried with a recomputed timeout when interrupted by a " +"signal if the signal handler did not raise an exception (see :pep:`475` for " +"the rationale), instead of returning an empty list of events before the " +"timeout." +msgstr "" + +#: ../Doc/library/selectors.rst:173 +msgid "Close the selector." +msgstr "" + +#: ../Doc/library/selectors.rst:175 +msgid "" +"This must be called to make sure that any underlying resource is freed. The " +"selector shall not be used once it has been closed." +msgstr "" + +#: ../Doc/library/selectors.rst:180 +msgid "Return the key associated with a registered file object." +msgstr "" + +#: ../Doc/library/selectors.rst:182 +msgid "" +"This returns the :class:`SelectorKey` instance associated to this file " +"object, or raises :exc:`KeyError` if the file object is not registered." +msgstr "" + +#: ../Doc/library/selectors.rst:187 +msgid "Return a mapping of file objects to selector keys." +msgstr "" + +#: ../Doc/library/selectors.rst:189 +msgid "" +"This returns a :class:`~collections.abc.Mapping` instance mapping registered " +"file objects to their associated :class:`SelectorKey` instance." +msgstr "" + +#: ../Doc/library/selectors.rst:196 +msgid "" +"The default selector class, using the most efficient implementation " +"available on the current platform. This should be the default choice for " +"most users." +msgstr "" + +#: ../Doc/library/selectors.rst:203 +msgid ":func:`select.select`-based selector." +msgstr "" + +#: ../Doc/library/selectors.rst:208 +msgid ":func:`select.poll`-based selector." +msgstr "" + +#: ../Doc/library/selectors.rst:213 +msgid ":func:`select.epoll`-based selector." +msgstr "" + +#: ../Doc/library/selectors.rst:217 +msgid "" +"This returns the file descriptor used by the underlying :func:`select.epoll` " +"object." +msgstr "" + +#: ../Doc/library/selectors.rst:222 +msgid ":func:`select.devpoll`-based selector." +msgstr "" + +#: ../Doc/library/selectors.rst:226 +msgid "" +"This returns the file descriptor used by the underlying :func:`select." +"devpoll` object." +msgstr "" + +#: ../Doc/library/selectors.rst:233 +msgid ":func:`select.kqueue`-based selector." +msgstr "" + +#: ../Doc/library/selectors.rst:237 +msgid "" +"This returns the file descriptor used by the underlying :func:`select." +"kqueue` object." +msgstr "" + +#: ../Doc/library/selectors.rst:242 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/selectors.rst:244 +msgid "Here is a simple echo server implementation::" +msgstr "" diff --git a/library/shelve.po b/library/shelve.po new file mode 100644 index 000000000..a0e75c444 --- /dev/null +++ b/library/shelve.po @@ -0,0 +1,324 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-09-29 16:10+0200\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.8\n" + +#: ../Doc/library/shelve.rst:2 +msgid ":mod:`shelve` --- Python object persistence" +msgstr ":mod:`shelve` — Objet Python persistant" + +#: ../Doc/library/shelve.rst:7 +msgid "**Source code:** :source:`Lib/shelve.py`" +msgstr "**Code source :** :source:`Lib/shelve.py`" + +#: ../Doc/library/shelve.rst:13 +msgid "" +"A \"shelf\" is a persistent, dictionary-like object. The difference with " +"\"dbm\" databases is that the values (not the keys!) in a shelf can be " +"essentially arbitrary Python objects --- anything that the :mod:`pickle` " +"module can handle. This includes most class instances, recursive data types, " +"and objects containing lots of shared sub-objects. The keys are ordinary " +"strings." +msgstr "" +"Un *shelf* est un objet persistant, dictionnaire-compatible. La différence " +"avec les bases de données *dbm* est que les valeurs (pas les clés !) dans un " +"*shelf* peuvent être des objets Python arbitraires --- n'importe quoi que le " +"module :mod:`pickle` peut gérer. Cela inclut la plupart des instances de " +"classe, des types de données récursives, et les objets contenant beaucoup de " +"sous-objets partagés. Les clés sont des chaînes de caractères ordinaires." + +#: ../Doc/library/shelve.rst:22 +msgid "" +"Open a persistent dictionary. The filename specified is the base filename " +"for the underlying database. As a side-effect, an extension may be added to " +"the filename and more than one file may be created. By default, the " +"underlying database file is opened for reading and writing. The optional " +"*flag* parameter has the same interpretation as the *flag* parameter of :" +"func:`dbm.open`." +msgstr "" +"Ouvre un dictionnaire persistant. Le nom de fichier spécifié est le nom de " +"fichier sans (son) extension pour la base de données sous-jacente. Comme " +"effet de bord, une extension peut être ajoutée au nom de fichier et plus " +"d'un fichier peut être créé. Par défaut, le fichier de base de données sous-" +"jacente est ouvert en lecture et en écriture. Le paramètre optionnel *flag* " +"possède la même interprétation que le paramètre *flag* de :func:`dbm.open`." + +#: ../Doc/library/shelve.rst:28 +msgid "" +"By default, version 3 pickles are used to serialize values. The version of " +"the pickle protocol can be specified with the *protocol* parameter." +msgstr "" +"Par défaut, les *pickles* de version 3 sont utilisés pour sérialiser des " +"valeurs. La version du protocole de *pickle* peut être spécifiée avec le " +"paramètre *protocol*." + +#: ../Doc/library/shelve.rst:31 +msgid "" +"Because of Python semantics, a shelf cannot know when a mutable persistent-" +"dictionary entry is modified. By default modified objects are written " +"*only* when assigned to the shelf (see :ref:`shelve-example`). If the " +"optional *writeback* parameter is set to ``True``, all entries accessed are " +"also cached in memory, and written back on :meth:`~Shelf.sync` and :meth:" +"`~Shelf.close`; this can make it handier to mutate mutable entries in the " +"persistent dictionary, but, if many entries are accessed, it can consume " +"vast amounts of memory for the cache, and it can make the close operation " +"very slow since all accessed entries are written back (there is no way to " +"determine which accessed entries are mutable, nor which ones were actually " +"mutated)." +msgstr "" +"À cause de la sémantique Python, un *shelf* ne peut pas savoir lorsqu'une " +"entrée modifiable de dictionnaire persistant est modifiée. Par défaut les " +"objets modifiés sont écrits *seulement* lorsqu'ils sont assignés à une " +"*shelf* (voir :ref:`shelve-example`). Si le paramètre optionnel *writeback* " +"est mis à ``True``, toutes les entrées déjà accédées sont aussi mises en " +"cache en mémoire, et ré-écrites sur :meth:`~Shelf.sync` et :meth:`~Shelf." +"close` ; cela peut faciliter la modification des entrées modifiables dans le " +"dictionnaire persistant, mais, si vous accédez à beaucoup d'entrées, cela " +"peut consommer beaucoup de mémoire cache, et cela peut rendre l'opération de " +"fermeture très lente puisque toutes les entrées déjà accédées sont ré-" +"écrites (il n'y a aucun moyen de savoir quelles entrées déjà accédées sont " +"mutables, ni lesquelles ont été vraiment modifiées)." + +#: ../Doc/library/shelve.rst:45 +msgid "" +"Do not rely on the shelf being closed automatically; always call :meth:" +"`~Shelf.close` explicitly when you don't need it any more, or use :func:" +"`shelve.open` as a context manager::" +msgstr "" +"Ne pas se fier à la fermeture automatique de *shelf* ; appelez toujours :" +"meth:`~Shelf.close` explicitement quand vous n'en avez plus besoin, ou " +"utilisez :func:`shelve.open` comme un gestionnaire de contexte ::" + +#: ../Doc/library/shelve.rst:54 +msgid "" +"Because the :mod:`shelve` module is backed by :mod:`pickle`, it is insecure " +"to load a shelf from an untrusted source. Like with pickle, loading a shelf " +"can execute arbitrary code." +msgstr "" +"Puisque le module :mod:`shelve` utilise en arrière plan :mod:`pickle`, il " +"n'est pas sûr de charger un *shelf* depuis une source non fiable. Comme avec " +"*pickle*, charger un *shelf* peut exécuter du code arbitraire." + +#: ../Doc/library/shelve.rst:58 +msgid "" +"Shelf objects support all methods supported by dictionaries. This eases the " +"transition from dictionary based scripts to those requiring persistent " +"storage." +msgstr "" +"Les objets *shelf* gèrent toutes les méthodes des dictionnaires. Cela " +"facilite la transition depuis les scripts utilisant des dictionnaires à ceux " +"nécessitant un stockage persistant." + +#: ../Doc/library/shelve.rst:61 +msgid "Two additional methods are supported:" +msgstr "Deux méthodes supplémentaires sont supportées :" + +#: ../Doc/library/shelve.rst:65 +msgid "" +"Write back all entries in the cache if the shelf was opened with *writeback* " +"set to :const:`True`. Also empty the cache and synchronize the persistent " +"dictionary on disk, if feasible. This is called automatically when the " +"shelf is closed with :meth:`close`." +msgstr "" +"Réécrit toutes les entrées dans le cache si le *shelf* a été ouvert avec " +"*writeback* passé à :const:`True`. Vide le cache et synchronise le " +"dictionnaire persistant sur le disque, si faisable. Elle est appelée " +"automatiquement quand le *shelf* est fermé avec :meth:`close`." + +#: ../Doc/library/shelve.rst:72 +msgid "" +"Synchronize and close the persistent *dict* object. Operations on a closed " +"shelf will fail with a :exc:`ValueError`." +msgstr "" +"Synchronise et ferme l'objet *dict* persistant. Les opérations sur un " +"*shelf* fermé échouent avec une :exc:`ValueError`." + +#: ../Doc/library/shelve.rst:78 +msgid "" +"`Persistent dictionary recipe `_ with widely supported storage formats and having the speed of native " +"dictionaries." +msgstr "" +"`Recette pour un dictionnaire persistant `_ avec un large panel de formats de stockage et ayant la " +"vitesse des dictionnaires natifs." + +#: ../Doc/library/shelve.rst:84 +msgid "Restrictions" +msgstr "Limites" + +#: ../Doc/library/shelve.rst:90 +msgid "" +"The choice of which database package will be used (such as :mod:`dbm.ndbm` " +"or :mod:`dbm.gnu`) depends on which interface is available. Therefore it is " +"not safe to open the database directly using :mod:`dbm`. The database is " +"also (unfortunately) subject to the limitations of :mod:`dbm`, if it is used " +"--- this means that (the pickled representation of) the objects stored in " +"the database should be fairly small, and in rare cases key collisions may " +"cause the database to refuse updates." +msgstr "" +"Le choix du paquet de base de données à utiliser (comme :mod:`dbm.ndbm` ou :" +"mod:`dbm.gnu`) dépend de l'interface disponible. Donc c'est risqué d'ouvrir " +"la base de données directement en utilisant :mod:`dbm`. La base de données " +"est également (malheureusement) sujette à des limitations de :mod:`dbm`, si " +"c'est utilisé --- cela signifie que (la représentation *pickled* de) l'objet " +"stocké dans la base de données doit être assez petit et, dans de rare cas " +"des collisions de clés peuvent entraîner le refus de mises à jour de la base " +"de données." + +#: ../Doc/library/shelve.rst:98 +msgid "" +"The :mod:`shelve` module does not support *concurrent* read/write access to " +"shelved objects. (Multiple simultaneous read accesses are safe.) When a " +"program has a shelf open for writing, no other program should have it open " +"for reading or writing. Unix file locking can be used to solve this, but " +"this differs across Unix versions and requires knowledge about the database " +"implementation used." +msgstr "" +"Le module :mod:`shelve` ne gère pas l'accès *concurrent* en lecture/écriture " +"sur les objets stockés (les accès simultanés en lecture sont sûrs). " +"Lorsqu'un programme a un *shelf* ouvert en écriture, aucun autre programme " +"ne doit l'avoir ouvert en écriture ou lecture. Le verrouillage des fichier " +"Unix peut être utilisé pour résoudre ce problème, mais cela dépend de la " +"version Unix et nécessite des connaissances à propos de l'implémentation de " +"la base de données utilisée." + +#: ../Doc/library/shelve.rst:108 +msgid "" +"A subclass of :class:`collections.abc.MutableMapping` which stores pickled " +"values in the *dict* object." +msgstr "" +"Sous-classe de :class:`collections.abc.MutableMapping` qui stocke les " +"valeurs sérialisées par *pickle* dans l'objet *dict*." + +#: ../Doc/library/shelve.rst:111 +msgid "" +"By default, version 3 pickles are used to serialize values. The version of " +"the pickle protocol can be specified with the *protocol* parameter. See the :" +"mod:`pickle` documentation for a discussion of the pickle protocols." +msgstr "" +"Par défaut, les *pickles* de version 3 sont utilisés pour sérialiser les " +"valeurs. La version du protocole *pickle* peut être spécifiée avec le " +"paramètre *protocol*. Voir la documentation de :mod:`pickle` pour plus " +"d'informations sur les protocoles *pickle*." + +#: ../Doc/library/shelve.rst:115 +msgid "" +"If the *writeback* parameter is ``True``, the object will hold a cache of " +"all entries accessed and write them back to the *dict* at sync and close " +"times. This allows natural operations on mutable entries, but can consume " +"much more memory and make sync and close take a long time." +msgstr "" +"Si le paramètre *writeback* est ``True``, l'objet garde en cache toutes les " +"entrées accédées et les écrit dans le *dict* aux moments de synchronisation " +"et de fermeture. Cela permet des opérations naturelles sur les entrées " +"modifiables, mais peut consommer beaucoup plus de mémoire et rendre les " +"temps de synchronisation et de fermeture très longs." + +#: ../Doc/library/shelve.rst:120 +msgid "" +"The *keyencoding* parameter is the encoding used to encode keys before they " +"are used with the underlying dict." +msgstr "" +"Le paramètre *keyencoding* est l'encodage utilisé pour encoder les clés " +"avant qu'elles soient utilisées avec le dictionnaire sous-jacent." + +#: ../Doc/library/shelve.rst:123 +msgid "" +"A :class:`Shelf` object can also be used as a context manager, in which case " +"it will be automatically closed when the :keyword:`with` block ends." +msgstr "" +"Un objet :class:`Shelf` peut également être utilisé comme un gestionnaire de " +"contexte ; il est automatiquement fermé lorsque le bloc :keyword:`with` est " +"terminé." + +#: ../Doc/library/shelve.rst:126 +msgid "" +"Added the *keyencoding* parameter; previously, keys were always encoded in " +"UTF-8." +msgstr "" +"Ajout du paramètre *keyencoding* ; précédemment, les clés étaient toujours " +"encodées en UTF-8." + +#: ../Doc/library/shelve.rst:130 +msgid "Added context manager support." +msgstr "Ajout de la gestion des gestionnaires de contexte." + +#: ../Doc/library/shelve.rst:136 +msgid "" +"A subclass of :class:`Shelf` which exposes :meth:`first`, :meth:`!next`, :" +"meth:`previous`, :meth:`last` and :meth:`set_location` which are available " +"in the third-party :mod:`bsddb` module from `pybsddb `_ but not in other database modules. The *dict* " +"object passed to the constructor must support those methods. This is " +"generally accomplished by calling one of :func:`bsddb.hashopen`, :func:" +"`bsddb.btopen` or :func:`bsddb.rnopen`. The optional *protocol*, " +"*writeback*, and *keyencoding* parameters have the same interpretation as " +"for the :class:`Shelf` class." +msgstr "" +"Sous-classe de :class:`Shelf` qui propose :meth:`first`, :meth:`!next`, :" +"meth:`previous`, :meth:`last` et :meth:`set_location` qui sont disponibles " +"dans le module tiers :mod:`bsddb` de `pybsddb `_ mais non dans les autres modules de base de " +"données. L'objet *dict* passé au constructeur doit savoir gérer ces " +"méthodes. Cela est généralement fait en appelant une des fonctions " +"suivantes : :func:`bsddb.hashopen`, :func:`bsddb.btopen` ou :func:`bsddb." +"rnopen`. Les paramètres optionnels *protocol*, *writeback*, et *keyencoding* " +"ont la même signification que pour la classe :class:`Shelf`." + +#: ../Doc/library/shelve.rst:149 +msgid "" +"A subclass of :class:`Shelf` which accepts a *filename* instead of a dict-" +"like object. The underlying file will be opened using :func:`dbm.open`. By " +"default, the file will be created and opened for both read and write. The " +"optional *flag* parameter has the same interpretation as for the :func:`." +"open` function. The optional *protocol* and *writeback* parameters have the " +"same interpretation as for the :class:`Shelf` class." +msgstr "" +"Sous-classe de :class:`Shelf` qui accepte un *filename* au lieu d'un objet " +"dictionnaire-compatible. Le fichier sous-jacent est ouvert avec :func:`dbm." +"open`. Par défaut le fichier est créé en lecture et en écriture. Le " +"paramètre optionnel *flag* peut être interprété de la même manière que pour " +"la fonction :func:`.open`. Les paramètres optionnels *protocol* et " +"*writeback* s'interprètent de la même manière que pour la classe :class:" +"`Shelf`." + +#: ../Doc/library/shelve.rst:160 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/shelve.rst:162 +msgid "" +"To summarize the interface (``key`` is a string, ``data`` is an arbitrary " +"object)::" +msgstr "" +"Pour résumer l'interface (``key`` est une chaîne de caractère, ``data`` est " +"un objet arbitraire) ::" + +#: ../Doc/library/shelve.rst:199 +msgid "Module :mod:`dbm`" +msgstr "Module :mod:`dbm`" + +#: ../Doc/library/shelve.rst:199 +msgid "Generic interface to ``dbm``-style databases." +msgstr "Interface générique de base de données style ``dbm``." + +#: ../Doc/library/shelve.rst:201 +msgid "Module :mod:`pickle`" +msgstr "Module :mod:`pickle`" + +#: ../Doc/library/shelve.rst:202 +msgid "Object serialization used by :mod:`shelve`." +msgstr "Sérialisation d'objet utilisé par :mod:`shelve`." diff --git a/library/shlex.po b/library/shlex.po new file mode 100644 index 000000000..440376f11 --- /dev/null +++ b/library/shlex.po @@ -0,0 +1,466 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/shlex.rst:2 +msgid ":mod:`shlex` --- Simple lexical analysis" +msgstr "" + +#: ../Doc/library/shlex.rst:12 +msgid "**Source code:** :source:`Lib/shlex.py`" +msgstr "**Code source :** :source:`Lib/shlex.py`" + +#: ../Doc/library/shlex.rst:16 +msgid "" +"The :class:`~shlex.shlex` class makes it easy to write lexical analyzers for " +"simple syntaxes resembling that of the Unix shell. This will often be " +"useful for writing minilanguages, (for example, in run control files for " +"Python applications) or for parsing quoted strings." +msgstr "" + +#: ../Doc/library/shlex.rst:21 +msgid "The :mod:`shlex` module defines the following functions:" +msgstr "" + +#: ../Doc/library/shlex.rst:26 +msgid "" +"Split the string *s* using shell-like syntax. If *comments* is :const:" +"`False` (the default), the parsing of comments in the given string will be " +"disabled (setting the :attr:`~shlex.commenters` attribute of the :class:" +"`~shlex.shlex` instance to the empty string). This function operates in " +"POSIX mode by default, but uses non-POSIX mode if the *posix* argument is " +"false." +msgstr "" + +#: ../Doc/library/shlex.rst:35 +msgid "" +"Since the :func:`split` function instantiates a :class:`~shlex.shlex` " +"instance, passing ``None`` for *s* will read the string to split from " +"standard input." +msgstr "" + +#: ../Doc/library/shlex.rst:42 +msgid "" +"Return a shell-escaped version of the string *s*. The returned value is a " +"string that can safely be used as one token in a shell command line, for " +"cases where you cannot use a list." +msgstr "" + +#: ../Doc/library/shlex.rst:46 +msgid "This idiom would be unsafe:" +msgstr "" + +#: ../Doc/library/shlex.rst:53 +msgid ":func:`quote` lets you plug the security hole:" +msgstr "" + +#: ../Doc/library/shlex.rst:63 +msgid "The quoting is compatible with UNIX shells and with :func:`split`:" +msgstr "" + +#: ../Doc/library/shlex.rst:75 +msgid "The :mod:`shlex` module defines the following class:" +msgstr "" + +#: ../Doc/library/shlex.rst:80 +msgid "" +"A :class:`~shlex.shlex` instance or subclass instance is a lexical analyzer " +"object. The initialization argument, if present, specifies where to read " +"characters from. It must be a file-/stream-like object with :meth:`~io." +"TextIOBase.read` and :meth:`~io.TextIOBase.readline` methods, or a string. " +"If no argument is given, input will be taken from ``sys.stdin``. The second " +"optional argument is a filename string, which sets the initial value of the :" +"attr:`~shlex.infile` attribute. If the *instream* argument is omitted or " +"equal to ``sys.stdin``, this second argument defaults to \"stdin\". The " +"*posix* argument defines the operational mode: when *posix* is not true " +"(default), the :class:`~shlex.shlex` instance will operate in compatibility " +"mode. When operating in POSIX mode, :class:`~shlex.shlex` will try to be as " +"close as possible to the POSIX shell parsing rules. The *punctuation_chars* " +"argument provides a way to make the behaviour even closer to how real shells " +"parse. This can take a number of values: the default value, ``False``, " +"preserves the behaviour seen under Python 3.5 and earlier. If set to " +"``True``, then parsing of the characters ``();<>|&`` is changed: any run of " +"these characters (considered punctuation characters) is returned as a single " +"token. If set to a non-empty string of characters, those characters will be " +"used as the punctuation characters. Any characters in the :attr:`wordchars` " +"attribute that appear in *punctuation_chars* will be removed from :attr:" +"`wordchars`. See :ref:`improved-shell-compatibility` for more information." +msgstr "" + +#: ../Doc/library/shlex.rst:103 +msgid "The *punctuation_chars* parameter was added." +msgstr "" + +#: ../Doc/library/shlex.rst:108 +msgid "Module :mod:`configparser`" +msgstr "" + +#: ../Doc/library/shlex.rst:109 +msgid "" +"Parser for configuration files similar to the Windows :file:`.ini` files." +msgstr "" + +#: ../Doc/library/shlex.rst:115 +msgid "shlex Objects" +msgstr "" + +#: ../Doc/library/shlex.rst:117 +msgid "A :class:`~shlex.shlex` instance has the following methods:" +msgstr "" + +#: ../Doc/library/shlex.rst:122 +msgid "" +"Return a token. If tokens have been stacked using :meth:`push_token`, pop a " +"token off the stack. Otherwise, read one from the input stream. If reading " +"encounters an immediate end-of-file, :attr:`eof` is returned (the empty " +"string (``''``) in non-POSIX mode, and ``None`` in POSIX mode)." +msgstr "" + +#: ../Doc/library/shlex.rst:130 +msgid "Push the argument onto the token stack." +msgstr "" + +#: ../Doc/library/shlex.rst:135 +msgid "" +"Read a raw token. Ignore the pushback stack, and do not interpret source " +"requests. (This is not ordinarily a useful entry point, and is documented " +"here only for the sake of completeness.)" +msgstr "" + +#: ../Doc/library/shlex.rst:142 +msgid "" +"When :class:`~shlex.shlex` detects a source request (see :attr:`source` " +"below) this method is given the following token as argument, and expected to " +"return a tuple consisting of a filename and an open file-like object." +msgstr "" + +#: ../Doc/library/shlex.rst:146 +msgid "" +"Normally, this method first strips any quotes off the argument. If the " +"result is an absolute pathname, or there was no previous source request in " +"effect, or the previous source was a stream (such as ``sys.stdin``), the " +"result is left alone. Otherwise, if the result is a relative pathname, the " +"directory part of the name of the file immediately before it on the source " +"inclusion stack is prepended (this behavior is like the way the C " +"preprocessor handles ``#include \"file.h\"``)." +msgstr "" + +#: ../Doc/library/shlex.rst:154 +msgid "" +"The result of the manipulations is treated as a filename, and returned as " +"the first component of the tuple, with :func:`open` called on it to yield " +"the second component. (Note: this is the reverse of the order of arguments " +"in instance initialization!)" +msgstr "" + +#: ../Doc/library/shlex.rst:159 +msgid "" +"This hook is exposed so that you can use it to implement directory search " +"paths, addition of file extensions, and other namespace hacks. There is no " +"corresponding 'close' hook, but a shlex instance will call the :meth:`~io." +"IOBase.close` method of the sourced input stream when it returns EOF." +msgstr "" + +#: ../Doc/library/shlex.rst:165 +msgid "" +"For more explicit control of source stacking, use the :meth:`push_source` " +"and :meth:`pop_source` methods." +msgstr "" + +#: ../Doc/library/shlex.rst:171 +msgid "" +"Push an input source stream onto the input stack. If the filename argument " +"is specified it will later be available for use in error messages. This is " +"the same method used internally by the :meth:`sourcehook` method." +msgstr "" + +#: ../Doc/library/shlex.rst:178 +msgid "" +"Pop the last-pushed input source from the input stack. This is the same " +"method used internally when the lexer reaches EOF on a stacked input stream." +msgstr "" + +#: ../Doc/library/shlex.rst:184 +msgid "" +"This method generates an error message leader in the format of a Unix C " +"compiler error label; the format is ``'\"%s\", line %d: '``, where the ``" +"%s`` is replaced with the name of the current source file and the ``%d`` " +"with the current input line number (the optional arguments can be used to " +"override these)." +msgstr "" + +#: ../Doc/library/shlex.rst:189 +msgid "" +"This convenience is provided to encourage :mod:`shlex` users to generate " +"error messages in the standard, parseable format understood by Emacs and " +"other Unix tools." +msgstr "" + +#: ../Doc/library/shlex.rst:193 +msgid "" +"Instances of :class:`~shlex.shlex` subclasses have some public instance " +"variables which either control lexical analysis or can be used for debugging:" +msgstr "" + +#: ../Doc/library/shlex.rst:199 +msgid "" +"The string of characters that are recognized as comment beginners. All " +"characters from the comment beginner to end of line are ignored. Includes " +"just ``'#'`` by default." +msgstr "" + +#: ../Doc/library/shlex.rst:206 +msgid "" +"The string of characters that will accumulate into multi-character tokens. " +"By default, includes all ASCII alphanumerics and underscore. In POSIX mode, " +"the accented characters in the Latin-1 set are also included. If :attr:" +"`punctuation_chars` is not empty, the characters ``~-./*?=``, which can " +"appear in filename specifications and command line parameters, will also be " +"included in this attribute, and any characters which appear in " +"``punctuation_chars`` will be removed from ``wordchars`` if they are present " +"there." +msgstr "" + +#: ../Doc/library/shlex.rst:218 +msgid "" +"Characters that will be considered whitespace and skipped. Whitespace " +"bounds tokens. By default, includes space, tab, linefeed and carriage-" +"return." +msgstr "" + +#: ../Doc/library/shlex.rst:224 +msgid "" +"Characters that will be considered as escape. This will be only used in " +"POSIX mode, and includes just ``'\\'`` by default." +msgstr "" + +#: ../Doc/library/shlex.rst:230 +msgid "" +"Characters that will be considered string quotes. The token accumulates " +"until the same quote is encountered again (thus, different quote types " +"protect each other as in the shell.) By default, includes ASCII single and " +"double quotes." +msgstr "" + +#: ../Doc/library/shlex.rst:237 +msgid "" +"Characters in :attr:`quotes` that will interpret escape characters defined " +"in :attr:`escape`. This is only used in POSIX mode, and includes just " +"``'\"'`` by default." +msgstr "" + +#: ../Doc/library/shlex.rst:244 +msgid "" +"If ``True``, tokens will only be split in whitespaces. This is useful, for " +"example, for parsing command lines with :class:`~shlex.shlex`, getting " +"tokens in a similar way to shell arguments. If this attribute is ``True``, :" +"attr:`punctuation_chars` will have no effect, and splitting will happen only " +"on whitespaces. When using :attr:`punctuation_chars`, which is intended to " +"provide parsing closer to that implemented by shells, it is advisable to " +"leave ``whitespace_split`` as ``False`` (the default value)." +msgstr "" + +#: ../Doc/library/shlex.rst:255 +msgid "" +"The name of the current input file, as initially set at class instantiation " +"time or stacked by later source requests. It may be useful to examine this " +"when constructing error messages." +msgstr "" + +#: ../Doc/library/shlex.rst:262 +msgid "" +"The input stream from which this :class:`~shlex.shlex` instance is reading " +"characters." +msgstr "" + +#: ../Doc/library/shlex.rst:268 +msgid "" +"This attribute is ``None`` by default. If you assign a string to it, that " +"string will be recognized as a lexical-level inclusion request similar to " +"the ``source`` keyword in various shells. That is, the immediately " +"following token will be opened as a filename and input will be taken from " +"that stream until EOF, at which point the :meth:`~io.IOBase.close` method of " +"that stream will be called and the input source will again become the " +"original input stream. Source requests may be stacked any number of levels " +"deep." +msgstr "" + +#: ../Doc/library/shlex.rst:279 +msgid "" +"If this attribute is numeric and ``1`` or more, a :class:`~shlex.shlex` " +"instance will print verbose progress output on its behavior. If you need to " +"use this, you can read the module source code to learn the details." +msgstr "" + +#: ../Doc/library/shlex.rst:286 +msgid "Source line number (count of newlines seen so far plus one)." +msgstr "" + +#: ../Doc/library/shlex.rst:291 +msgid "" +"The token buffer. It may be useful to examine this when catching exceptions." +msgstr "" + +#: ../Doc/library/shlex.rst:296 +msgid "" +"Token used to determine end of file. This will be set to the empty string " +"(``''``), in non-POSIX mode, and to ``None`` in POSIX mode." +msgstr "" + +#: ../Doc/library/shlex.rst:302 +msgid "" +"Characters that will be considered punctuation. Runs of punctuation " +"characters will be returned as a single token. However, note that no " +"semantic validity checking will be performed: for example, '>>>' could be " +"returned as a token, even though it may not be recognised as such by shells." +msgstr "" + +#: ../Doc/library/shlex.rst:313 +msgid "Parsing Rules" +msgstr "" + +#: ../Doc/library/shlex.rst:315 +msgid "" +"When operating in non-POSIX mode, :class:`~shlex.shlex` will try to obey to " +"the following rules." +msgstr "" + +#: ../Doc/library/shlex.rst:318 +msgid "" +"Quote characters are not recognized within words (``Do\"Not\"Separate`` is " +"parsed as the single word ``Do\"Not\"Separate``);" +msgstr "" + +#: ../Doc/library/shlex.rst:321 +msgid "Escape characters are not recognized;" +msgstr "" + +#: ../Doc/library/shlex.rst:323 +msgid "" +"Enclosing characters in quotes preserve the literal value of all characters " +"within the quotes;" +msgstr "" + +#: ../Doc/library/shlex.rst:326 +msgid "" +"Closing quotes separate words (``\"Do\"Separate`` is parsed as ``\"Do\"`` " +"and ``Separate``);" +msgstr "" + +#: ../Doc/library/shlex.rst:329 +msgid "" +"If :attr:`~shlex.whitespace_split` is ``False``, any character not declared " +"to be a word character, whitespace, or a quote will be returned as a single-" +"character token. If it is ``True``, :class:`~shlex.shlex` will only split " +"words in whitespaces;" +msgstr "" + +#: ../Doc/library/shlex.rst:334 +msgid "EOF is signaled with an empty string (``''``);" +msgstr "" + +#: ../Doc/library/shlex.rst:336 +msgid "It's not possible to parse empty strings, even if quoted." +msgstr "" + +#: ../Doc/library/shlex.rst:338 +msgid "" +"When operating in POSIX mode, :class:`~shlex.shlex` will try to obey to the " +"following parsing rules." +msgstr "" + +#: ../Doc/library/shlex.rst:341 +msgid "" +"Quotes are stripped out, and do not separate words (``\"Do\"Not\"Separate" +"\"`` is parsed as the single word ``DoNotSeparate``);" +msgstr "" + +#: ../Doc/library/shlex.rst:344 +msgid "" +"Non-quoted escape characters (e.g. ``'\\'``) preserve the literal value of " +"the next character that follows;" +msgstr "" + +#: ../Doc/library/shlex.rst:347 +msgid "" +"Enclosing characters in quotes which are not part of :attr:`~shlex." +"escapedquotes` (e.g. ``\"'\"``) preserve the literal value of all characters " +"within the quotes;" +msgstr "" + +#: ../Doc/library/shlex.rst:351 +msgid "" +"Enclosing characters in quotes which are part of :attr:`~shlex." +"escapedquotes` (e.g. ``'\"'``) preserves the literal value of all characters " +"within the quotes, with the exception of the characters mentioned in :attr:" +"`~shlex.escape`. The escape characters retain its special meaning only when " +"followed by the quote in use, or the escape character itself. Otherwise the " +"escape character will be considered a normal character." +msgstr "" + +#: ../Doc/library/shlex.rst:359 +msgid "EOF is signaled with a :const:`None` value;" +msgstr "" + +#: ../Doc/library/shlex.rst:361 +msgid "Quoted empty strings (``''``) are allowed." +msgstr "" + +#: ../Doc/library/shlex.rst:366 +msgid "Improved Compatibility with Shells" +msgstr "" + +#: ../Doc/library/shlex.rst:370 +msgid "" +"The :class:`shlex` class provides compatibility with the parsing performed " +"by common Unix shells like ``bash``, ``dash``, and ``sh``. To take " +"advantage of this compatibility, specify the ``punctuation_chars`` argument " +"in the constructor. This defaults to ``False``, which preserves pre-3.6 " +"behaviour. However, if it is set to ``True``, then parsing of the characters " +"``();<>|&`` is changed: any run of these characters is returned as a single " +"token. While this is short of a full parser for shells (which would be out " +"of scope for the standard library, given the multiplicity of shells out " +"there), it does allow you to perform processing of command lines more easily " +"than you could otherwise. To illustrate, you can see the difference in the " +"following snippet:" +msgstr "" + +#: ../Doc/library/shlex.rst:393 +msgid "" +"Of course, tokens will be returned which are not valid for shells, and " +"you'll need to implement your own error checks on the returned tokens." +msgstr "" + +#: ../Doc/library/shlex.rst:396 +msgid "" +"Instead of passing ``True`` as the value for the punctuation_chars " +"parameter, you can pass a string with specific characters, which will be " +"used to determine which characters constitute punctuation. For example::" +msgstr "" + +#: ../Doc/library/shlex.rst:405 +msgid "" +"When ``punctuation_chars`` is specified, the :attr:`~shlex.wordchars` " +"attribute is augmented with the characters ``~-./*?=``. That is because " +"these characters can appear in file names (including wildcards) and command-" +"line arguments (e.g. ``--color=auto``). Hence::" +msgstr "" + +#: ../Doc/library/shlex.rst:416 +msgid "" +"For best effect, ``punctuation_chars`` should be set in conjunction with " +"``posix=True``. (Note that ``posix=False`` is the default for :class:`~shlex." +"shlex`.)" +msgstr "" diff --git a/library/shutil.po b/library/shutil.po new file mode 100644 index 000000000..44625f08a --- /dev/null +++ b/library/shutil.po @@ -0,0 +1,813 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-11-29 18:26+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/shutil.rst:2 +msgid ":mod:`shutil` --- High-level file operations" +msgstr ":mod:`shutil` --- Opérations de haut niveau sur les fichiers" + +#: ../Doc/library/shutil.rst:10 +msgid "**Source code:** :source:`Lib/shutil.py`" +msgstr "**Code source :** :source:`Lib/shutil.py`" + +#: ../Doc/library/shutil.rst:18 +msgid "" +"The :mod:`shutil` module offers a number of high-level operations on files " +"and collections of files. In particular, functions are provided which " +"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:25 +msgid "" +"Even the higher-level file copying functions (:func:`shutil.copy`, :func:" +"`shutil.copy2`) cannot copy all file metadata." +msgstr "" +"Même les fonctions de copie haut niveau (:func:`shutil.copy`, :func:`shutil." +"copy2`) ne peuvent copier toutes les métadonnées des fichiers." + +#: ../Doc/library/shutil.rst:28 +msgid "" +"On POSIX platforms, this means that file owner and group are lost as well as " +"ACLs. On Mac OS, the resource fork and other metadata are not used. This " +"means that resources will be lost and file type and creator codes will not " +"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:38 +msgid "Directory and files operations" +msgstr "Opérations sur les répertoires et les fichiers" + +#: ../Doc/library/shutil.rst:42 +msgid "" +"Copy the contents of the file-like object *fsrc* to the file-like object " +"*fdst*. The integer *length*, if given, is the buffer size. In particular, a " +"negative *length* value means to copy the data without looping over the " +"source data in chunks; by default the data is read in chunks to avoid " +"uncontrolled memory consumption. Note that if the current file position of " +"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:53 +msgid "" +"Copy the contents (no metadata) of the file named *src* to a file named " +"*dst* and return *dst*. *src* and *dst* are path names given as strings. " +"*dst* must be the complete target file name; look at :func:`shutil.copy` for " +"a copy that accepts a target directory path. If *src* and *dst* specify the " +"same file, :exc:`SameFileError` is raised." +msgstr "" +"Copie le contenu (sans métadonnées) du fichier nommé *src* dans un fichier " +"nommé *dst* et renvoie *dst*. *src* et *dst* sont des chemins sous forme de " +"chaînes de caractères. *dst* doit être le chemin complet de la cible ; voir " +"dans :func:`shutil.copy` pour une copie acceptant le chemin du dossier " +"cible. Si *src* et *dst* désignent le même fichier :exc:`SameFileError` est " +"levée." + +#: ../Doc/library/shutil.rst:59 +msgid "" +"The destination location must be writable; otherwise, an :exc:`OSError` " +"exception will be raised. If *dst* already exists, it will be replaced. " +"Special files such as character or block devices and pipes cannot be copied " +"with this function." +msgstr "" +"La cible doit être accessible en écriture, sinon l'exception :exc:`OSError` " +"est levée. Si *dst* existe déjà, il est remplacé. Les fichiers spéciaux " +"comme les périphériques caractères ou bloc ainsi que les tubes (*pipes*) ne " +"peuvent pas être copiés avec cette fonction." + +#: ../Doc/library/shutil.rst:64 +msgid "" +"If *follow_symlinks* is false and *src* is a symbolic link, a new symbolic " +"link will be created instead of copying the file *src* points to." +msgstr "" +"Si *follow_symlinks* est faux et *src* est un lien symbolique, un nouveau " +"lien symbolique est créé au lieu de copier le fichier pointé par *src*." + +#: ../Doc/library/shutil.rst:68 +msgid "" +":exc:`IOError` used to be raised instead of :exc:`OSError`. Added " +"*follow_symlinks* argument. Now returns *dst*." +msgstr "" +":exc:`IOError` était levée au lieu de :exc:`OSError`. Ajout de l'argument " +"*follow_symlinks*. Maintenant renvoie *dst*." + +#: ../Doc/library/shutil.rst:73 +msgid "" +"Raise :exc:`SameFileError` instead of :exc:`Error`. Since the former is a " +"subclass of the latter, this change is backward compatible." +msgstr "" +"Lève :exc:`SameFileError` au lieu de :exc:`Error`. Puisque la première est " +"une sous-classe de la seconde, le changement assure la rétrocompatibilité." + +#: ../Doc/library/shutil.rst:80 +msgid "" +"This exception is raised if source and destination in :func:`copyfile` are " +"the same file." +msgstr "" +"Cette exception est levée si la source et la destination dans :func:" +"`copyfile` sont le même fichier." + +#: ../Doc/library/shutil.rst:88 +msgid "" +"Copy the permission bits from *src* to *dst*. The file contents, owner, and " +"group are unaffected. *src* and *dst* are path names given as strings. If " +"*follow_symlinks* is false, and both *src* and *dst* are symbolic links, :" +"func:`copymode` will attempt to modify the mode of *dst* itself (rather than " +"the file it points to). This functionality is not available on every " +"platform; please see :func:`copystat` for more information. If :func:" +"`copymode` cannot modify symbolic links on the local platform, and it is " +"asked to do so, it will do nothing and return." +msgstr "" +"Copie les octets de permission de *src* vers *dst*. Le contenu du fichier, " +"le propriétaire et le groupe ne sont pas modifiés. *src* et *dst* sont des " +"chaînes spécifiant les chemins. Si *follow_symlinks* est faux, et *src* et " +"*dst* sont des liens symboliques, :func:`copymode` tente de modifier le mode " +"de *dst* (au lieu du fichier vers lequel il pointe). Cette fonctionnalité " +"n'est pas disponible sur toutes les plateformes ; voir :func:`copystat` pour " +"plus d'informations. Si :func:`copymode` ne peut pas modifier les liens " +"symboliques sur la plateforme cible alors que c'est demandé, il ne fait rien." + +#: ../Doc/library/shutil.rst:97 +msgid "Added *follow_symlinks* argument." +msgstr "L'argument *follow_symlinks* a été ajouté." + +#: ../Doc/library/shutil.rst:102 +msgid "" +"Copy the permission bits, last access time, last modification time, and " +"flags from *src* to *dst*. On Linux, :func:`copystat` also copies the " +"\"extended attributes\" where possible. The file contents, owner, and group " +"are unaffected. *src* and *dst* are path names given as strings." +msgstr "" +"Copie les bits définissant les droits d'accès, la date du dernier accès, de " +"la dernière modification et les drapeaux (*flags* en anglais) de *src* vers " +"*dst*. Sur Linux, :func:`copystat` copie également, si possible, les " +"\"*extended attributes*\". Le contenu du fichier, le propriétaire et le " +"groupe ne sont pas affectés. *src* et *dst* sont des chaînes spécifiant les " +"chemins." + +#: ../Doc/library/shutil.rst:107 +msgid "" +"If *follow_symlinks* is false, and *src* and *dst* both refer to symbolic " +"links, :func:`copystat` will operate on the symbolic links themselves rather " +"than the files the symbolic links refer to—reading the information from the " +"*src* symbolic link, and writing the information to the *dst* symbolic link." +msgstr "" +"Si *follow_symlinks* est faux et *src* et *dst* représentent des liens " +"symboliques, :func:`copystat` agit sur les liens symboliques au lieu des " +"fichiers cibles — elle lit les informations du lien symbolique de *src* et " +"les écrit vers la destination pointée par *dst*." + +#: ../Doc/library/shutil.rst:116 +msgid "" +"Not all platforms provide the ability to examine and modify symbolic links. " +"Python itself can tell you what functionality is locally available." +msgstr "" +"Toutes les plateformes n'offrent pas la possibilité d'examiner et modifier " +"les liens symboliques. Python peut vous informer des fonctionnalités " +"effectivement disponibles." + +#: ../Doc/library/shutil.rst:120 +msgid "" +"If ``os.chmod in os.supports_follow_symlinks`` is ``True``, :func:`copystat` " +"can modify the permission bits of a symbolic link." +msgstr "" +"Si ``os.chmod in os.supports_follow_symlinks`` est ``True``, :func:" +"`copystat` peut modifier les octets de droits d'accès du lien symbolique." + +#: ../Doc/library/shutil.rst:124 +msgid "" +"If ``os.utime in os.supports_follow_symlinks`` is ``True``, :func:`copystat` " +"can modify the last access and modification times of a symbolic link." +msgstr "" + +#: ../Doc/library/shutil.rst:128 +msgid "" +"If ``os.chflags in os.supports_follow_symlinks`` is ``True``, :func:" +"`copystat` can modify the flags of a symbolic link. (``os.chflags`` is not " +"available on all platforms.)" +msgstr "" + +#: ../Doc/library/shutil.rst:133 +msgid "" +"On platforms where some or all of this functionality is unavailable, when " +"asked to modify a symbolic link, :func:`copystat` will copy everything it " +"can. :func:`copystat` never returns failure." +msgstr "" + +#: ../Doc/library/shutil.rst:138 +msgid "Please see :data:`os.supports_follow_symlinks` for more information." +msgstr "" + +#: ../Doc/library/shutil.rst:141 +msgid "" +"Added *follow_symlinks* argument and support for Linux extended attributes." +msgstr "" + +#: ../Doc/library/shutil.rst:146 +msgid "" +"Copies the file *src* to the file or directory *dst*. *src* and *dst* " +"should be strings. If *dst* specifies a directory, the file will be copied " +"into *dst* using the base filename from *src*. Returns the path to the " +"newly created file." +msgstr "" + +#: ../Doc/library/shutil.rst:151 +msgid "" +"If *follow_symlinks* is false, and *src* is a symbolic link, *dst* will be " +"created as a symbolic link. If *follow_symlinks* is true and *src* is a " +"symbolic link, *dst* will be a copy of the file *src* refers to." +msgstr "" + +#: ../Doc/library/shutil.rst:156 +msgid "" +":func:`~shutil.copy` copies the file data and the file's permission mode " +"(see :func:`os.chmod`). Other metadata, like the file's creation and " +"modification times, is not preserved. To preserve all file metadata from the " +"original, use :func:`~shutil.copy2` instead." +msgstr "" + +#: ../Doc/library/shutil.rst:162 +msgid "" +"Added *follow_symlinks* argument. Now returns path to the newly created file." +msgstr "" + +#: ../Doc/library/shutil.rst:168 +msgid "" +"Identical to :func:`~shutil.copy` except that :func:`copy2` also attempts to " +"preserve file metadata." +msgstr "" + +#: ../Doc/library/shutil.rst:171 +msgid "" +"When *follow_symlinks* is false, and *src* is a symbolic link, :func:`copy2` " +"attempts to copy all metadata from the *src* symbolic link to the newly-" +"created *dst* symbolic link. However, this functionality is not available on " +"all platforms. On platforms where some or all of this functionality is " +"unavailable, :func:`copy2` will preserve all the metadata it can; :func:" +"`copy2` never returns failure." +msgstr "" + +#: ../Doc/library/shutil.rst:179 +msgid "" +":func:`copy2` uses :func:`copystat` to copy the file metadata. Please see :" +"func:`copystat` for more information about platform support for modifying " +"symbolic link metadata." +msgstr "" + +#: ../Doc/library/shutil.rst:183 +msgid "" +"Added *follow_symlinks* argument, try to copy extended file system " +"attributes too (currently Linux only). Now returns path to the newly created " +"file." +msgstr "" + +#: ../Doc/library/shutil.rst:190 +msgid "" +"This factory function creates a function that can be used as a callable for :" +"func:`copytree`\\'s *ignore* argument, ignoring files and directories that " +"match one of the glob-style *patterns* provided. See the example below." +msgstr "" + +#: ../Doc/library/shutil.rst:198 +msgid "" +"Recursively copy an entire directory tree rooted at *src*, returning the " +"destination directory. The destination directory, named by *dst*, must not " +"already exist; it will be created as well as missing parent directories. " +"Permissions and times of directories are copied with :func:`copystat`, " +"individual files are copied using :func:`shutil.copy2`." +msgstr "" + +#: ../Doc/library/shutil.rst:205 +msgid "" +"If *symlinks* is true, symbolic links in the source tree are represented as " +"symbolic links in the new tree and the metadata of the original links will " +"be copied as far as the platform allows; if false or omitted, the contents " +"and metadata of the linked files are copied to the new tree." +msgstr "" + +#: ../Doc/library/shutil.rst:210 +msgid "" +"When *symlinks* is false, if the file pointed by the symlink doesn't exist, " +"an exception will be added in the list of errors raised in an :exc:`Error` " +"exception at the end of the copy process. You can set the optional " +"*ignore_dangling_symlinks* flag to true if you want to silence this " +"exception. Notice that this option has no effect on platforms that don't " +"support :func:`os.symlink`." +msgstr "" + +#: ../Doc/library/shutil.rst:217 +msgid "" +"If *ignore* is given, it must be a callable that will receive as its " +"arguments the directory being visited by :func:`copytree`, and a list of its " +"contents, as returned by :func:`os.listdir`. Since :func:`copytree` is " +"called recursively, the *ignore* callable will be called once for each " +"directory that is copied. The callable must return a sequence of directory " +"and file names relative to the current directory (i.e. a subset of the items " +"in its second argument); these names will then be ignored in the copy " +"process. :func:`ignore_patterns` can be used to create such a callable that " +"ignores names based on glob-style patterns." +msgstr "" + +#: ../Doc/library/shutil.rst:227 +msgid "" +"If exception(s) occur, an :exc:`Error` is raised with a list of reasons." +msgstr "" + +#: ../Doc/library/shutil.rst:229 +msgid "" +"If *copy_function* is given, it must be a callable that will be used to copy " +"each file. It will be called with the source path and the destination path " +"as arguments. By default, :func:`shutil.copy2` is used, but any function " +"that supports the same signature (like :func:`shutil.copy`) can be used." +msgstr "" + +#: ../Doc/library/shutil.rst:234 +msgid "Copy metadata when *symlinks* is false. Now returns *dst*." +msgstr "" + +#: ../Doc/library/shutil.rst:238 +msgid "" +"Added the *copy_function* argument to be able to provide a custom copy " +"function. Added the *ignore_dangling_symlinks* argument to silent dangling " +"symlinks errors when *symlinks* is false." +msgstr "" + +#: ../Doc/library/shutil.rst:249 +msgid "" +"Delete an entire directory tree; *path* must point to a directory (but not a " +"symbolic link to a directory). If *ignore_errors* is true, errors resulting " +"from failed removals will be ignored; if false or omitted, such errors are " +"handled by calling a handler specified by *onerror* or, if that is omitted, " +"they raise an exception." +msgstr "" + +#: ../Doc/library/shutil.rst:257 +msgid "" +"On platforms that support the necessary fd-based functions a symlink attack " +"resistant version of :func:`rmtree` is used by default. On other platforms, " +"the :func:`rmtree` implementation is susceptible to a symlink attack: given " +"proper timing and circumstances, attackers can manipulate symlinks on the " +"filesystem to delete files they wouldn't be able to access otherwise. " +"Applications can use the :data:`rmtree.avoids_symlink_attacks` function " +"attribute to determine which case applies." +msgstr "" + +#: ../Doc/library/shutil.rst:265 +msgid "" +"If *onerror* is provided, it must be a callable that accepts three " +"parameters: *function*, *path*, and *excinfo*." +msgstr "" + +#: ../Doc/library/shutil.rst:268 +msgid "" +"The first parameter, *function*, is the function which raised the exception; " +"it depends on the platform and implementation. The second parameter, " +"*path*, will be the path name passed to *function*. The third parameter, " +"*excinfo*, will be the exception information returned by :func:`sys." +"exc_info`. Exceptions raised by *onerror* will not be caught." +msgstr "" + +#: ../Doc/library/shutil.rst:274 +msgid "" +"Added a symlink attack resistant version that is used automatically if " +"platform supports fd-based functions." +msgstr "" + +#: ../Doc/library/shutil.rst:280 +msgid "" +"Indicates whether the current platform and implementation provides a symlink " +"attack resistant version of :func:`rmtree`. Currently this is only true for " +"platforms supporting fd-based directory access functions." +msgstr "" + +#: ../Doc/library/shutil.rst:289 +msgid "" +"Recursively move a file or directory (*src*) to another location (*dst*) and " +"return the destination." +msgstr "" + +#: ../Doc/library/shutil.rst:292 +msgid "" +"If the destination is an existing directory, then *src* is moved inside that " +"directory. If the destination already exists but is not a directory, it may " +"be overwritten depending on :func:`os.rename` semantics." +msgstr "" + +#: ../Doc/library/shutil.rst:296 +msgid "" +"If the destination is on the current filesystem, then :func:`os.rename` is " +"used. Otherwise, *src* is copied to *dst* using *copy_function* and then " +"removed. In case of symlinks, a new symlink pointing to the target of *src* " +"will be created in or as *dst* and *src* will be removed." +msgstr "" + +#: ../Doc/library/shutil.rst:301 +msgid "" +"If *copy_function* is given, it must be a callable that takes two arguments " +"*src* and *dst*, and will be used to copy *src* to *dest* if :func:`os." +"rename` cannot be used. If the source is a directory, :func:`copytree` is " +"called, passing it the :func:`copy_function`. The default *copy_function* " +"is :func:`copy2`. Using :func:`~shutil.copy` as the *copy_function* allows " +"the move to succeed when it is not possible to also copy the metadata, at " +"the expense of not copying any of the metadata." +msgstr "" + +#: ../Doc/library/shutil.rst:309 +msgid "" +"Added explicit symlink handling for foreign filesystems, thus adapting it to " +"the behavior of GNU's :program:`mv`. Now returns *dst*." +msgstr "" + +#: ../Doc/library/shutil.rst:314 +msgid "Added the *copy_function* keyword argument." +msgstr "" + +#: ../Doc/library/shutil.rst:319 +msgid "" +"Return disk usage statistics about the given path as a :term:`named tuple` " +"with the attributes *total*, *used* and *free*, which are the amount of " +"total, used and free space, in bytes. On Windows, *path* must be a " +"directory; on Unix, it can be a file or directory." +msgstr "" + +#: ../Doc/library/shutil.rst:326 +msgid ":ref:`Availability `: Unix, Windows." +msgstr ":ref:`Disponibilité ` : Unix, Windows." + +#: ../Doc/library/shutil.rst:330 +msgid "Change owner *user* and/or *group* of the given *path*." +msgstr "" + +#: ../Doc/library/shutil.rst:332 +msgid "" +"*user* can be a system user name or a uid; the same applies to *group*. At " +"least one argument is required." +msgstr "" + +#: ../Doc/library/shutil.rst:335 +msgid "See also :func:`os.chown`, the underlying function." +msgstr "" + +#: ../Doc/library/shutil.rst:338 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." + +#: ../Doc/library/shutil.rst:344 +msgid "" +"Return the path to an executable which would be run if the given *cmd* was " +"called. If no *cmd* would be called, return ``None``." +msgstr "" + +#: ../Doc/library/shutil.rst:347 +msgid "" +"*mode* is a permission mask passed to :func:`os.access`, by default " +"determining if the file exists and executable." +msgstr "" + +#: ../Doc/library/shutil.rst:350 +msgid "" +"When no *path* is specified, the results of :func:`os.environ` are used, " +"returning either the \"PATH\" value or a fallback of :attr:`os.defpath`." +msgstr "" + +#: ../Doc/library/shutil.rst:353 +msgid "" +"On Windows, the current directory is always prepended to the *path* whether " +"or not you use the default or provide your own, which is the behavior the " +"command shell uses when finding executables. Additionally, when finding the " +"*cmd* in the *path*, the ``PATHEXT`` environment variable is checked. For " +"example, if you call ``shutil.which(\"python\")``, :func:`which` will search " +"``PATHEXT`` to know that it should look for ``python.exe`` within the *path* " +"directories. For example, on Windows::" +msgstr "" + +#: ../Doc/library/shutil.rst:369 +msgid "" +"This exception collects exceptions that are raised during a multi-file " +"operation. For :func:`copytree`, the exception argument is a list of 3-" +"tuples (*srcname*, *dstname*, *exception*)." +msgstr "" + +#: ../Doc/library/shutil.rst:377 +msgid "copytree example" +msgstr "" + +#: ../Doc/library/shutil.rst:379 +msgid "" +"This example is the implementation of the :func:`copytree` function, " +"described above, with the docstring omitted. It demonstrates many of the " +"other functions provided by this module. ::" +msgstr "" + +#: ../Doc/library/shutil.rst:414 +msgid "Another example that uses the :func:`ignore_patterns` helper::" +msgstr "" + +#: ../Doc/library/shutil.rst:420 +msgid "" +"This will copy everything except ``.pyc`` files and files or directories " +"whose name starts with ``tmp``." +msgstr "" + +#: ../Doc/library/shutil.rst:423 +msgid "Another example that uses the *ignore* argument to add a logging call::" +msgstr "" + +#: ../Doc/library/shutil.rst:438 +msgid "rmtree example" +msgstr "" + +#: ../Doc/library/shutil.rst:440 +msgid "" +"This example shows how to remove a directory tree on Windows where some of " +"the files have their read-only bit set. It uses the onerror callback to " +"clear the readonly bit and reattempt the remove. Any subsequent failure will " +"propagate. ::" +msgstr "" + +#: ../Doc/library/shutil.rst:458 +msgid "Archiving operations" +msgstr "" + +#: ../Doc/library/shutil.rst:462 +msgid "Added support for the *xztar* format." +msgstr "" + +#: ../Doc/library/shutil.rst:466 +msgid "" +"High-level utilities to create and read compressed and archived files are " +"also provided. They rely on the :mod:`zipfile` and :mod:`tarfile` modules." +msgstr "" + +#: ../Doc/library/shutil.rst:471 +msgid "Create an archive file (such as zip or tar) and return its name." +msgstr "" + +#: ../Doc/library/shutil.rst:473 +msgid "" +"*base_name* is the name of the file to create, including the path, minus any " +"format-specific extension. *format* is the archive format: one of \"zip" +"\" (if the :mod:`zlib` module is available), \"tar\", \"gztar\" (if the :mod:" +"`zlib` module is available), \"bztar\" (if the :mod:`bz2` module is " +"available), or \"xztar\" (if the :mod:`lzma` module is available)." +msgstr "" + +#: ../Doc/library/shutil.rst:479 +msgid "" +"*root_dir* is a directory that will be the root directory of the archive; " +"for example, we typically chdir into *root_dir* before creating the archive." +msgstr "" + +#: ../Doc/library/shutil.rst:483 +msgid "" +"*base_dir* is the directory where we start archiving from; i.e. *base_dir* " +"will be the common prefix of all files and directories in the archive." +msgstr "" + +#: ../Doc/library/shutil.rst:487 +msgid "*root_dir* and *base_dir* both default to the current directory." +msgstr "" + +#: ../Doc/library/shutil.rst:489 +msgid "" +"If *dry_run* is true, no archive is created, but the operations that would " +"be executed are logged to *logger*." +msgstr "" + +#: ../Doc/library/shutil.rst:492 +msgid "" +"*owner* and *group* are used when creating a tar archive. By default, uses " +"the current owner and group." +msgstr "" + +#: ../Doc/library/shutil.rst:495 +msgid "" +"*logger* must be an object compatible with :pep:`282`, usually an instance " +"of :class:`logging.Logger`." +msgstr "" + +#: ../Doc/library/shutil.rst:498 +msgid "The *verbose* argument is unused and deprecated." +msgstr "" + +#: ../Doc/library/shutil.rst:503 +msgid "" +"Return a list of supported formats for archiving. Each element of the " +"returned sequence is a tuple ``(name, description)``." +msgstr "" + +#: ../Doc/library/shutil.rst:506 ../Doc/library/shutil.rst:586 +msgid "By default :mod:`shutil` provides these formats:" +msgstr "" + +#: ../Doc/library/shutil.rst:508 +msgid "*zip*: ZIP file (if the :mod:`zlib` module is available)." +msgstr "" + +#: ../Doc/library/shutil.rst:509 ../Doc/library/shutil.rst:590 +msgid "*tar*: uncompressed tar file." +msgstr "" + +#: ../Doc/library/shutil.rst:510 ../Doc/library/shutil.rst:591 +msgid "*gztar*: gzip'ed tar-file (if the :mod:`zlib` module is available)." +msgstr "" + +#: ../Doc/library/shutil.rst:511 ../Doc/library/shutil.rst:592 +msgid "*bztar*: bzip2'ed tar-file (if the :mod:`bz2` module is available)." +msgstr "" + +#: ../Doc/library/shutil.rst:512 ../Doc/library/shutil.rst:593 +msgid "*xztar*: xz'ed tar-file (if the :mod:`lzma` module is available)." +msgstr "" + +#: ../Doc/library/shutil.rst:514 +msgid "" +"You can register new formats or provide your own archiver for any existing " +"formats, by using :func:`register_archive_format`." +msgstr "" + +#: ../Doc/library/shutil.rst:520 +msgid "Register an archiver for the format *name*." +msgstr "" + +#: ../Doc/library/shutil.rst:522 +msgid "" +"*function* is the callable that will be used to unpack archives. The " +"callable will receive the *base_name* of the file to create, followed by the " +"*base_dir* (which defaults to :data:`os.curdir`) to start archiving from. " +"Further arguments are passed as keyword arguments: *owner*, *group*, " +"*dry_run* and *logger* (as passed in :func:`make_archive`)." +msgstr "" + +#: ../Doc/library/shutil.rst:528 +msgid "" +"If given, *extra_args* is a sequence of ``(name, value)`` pairs that will be " +"used as extra keywords arguments when the archiver callable is used." +msgstr "" + +#: ../Doc/library/shutil.rst:531 +msgid "" +"*description* is used by :func:`get_archive_formats` which returns the list " +"of archivers. Defaults to an empty string." +msgstr "" + +#: ../Doc/library/shutil.rst:537 +msgid "Remove the archive format *name* from the list of supported formats." +msgstr "" + +#: ../Doc/library/shutil.rst:542 +msgid "Unpack an archive. *filename* is the full path of the archive." +msgstr "" + +#: ../Doc/library/shutil.rst:544 +msgid "" +"*extract_dir* is the name of the target directory where the archive is " +"unpacked. If not provided, the current working directory is used." +msgstr "" + +#: ../Doc/library/shutil.rst:547 +msgid "" +"*format* is the archive format: one of \"zip\", \"tar\", \"gztar\", \"bztar" +"\", or \"xztar\". Or any other format registered with :func:" +"`register_unpack_format`. If not provided, :func:`unpack_archive` will use " +"the archive file name extension and see if an unpacker was registered for " +"that extension. In case none is found, a :exc:`ValueError` is raised." +msgstr "" + +#: ../Doc/library/shutil.rst:554 +msgid "Accepts a :term:`path-like object` for *filename* and *extract_dir*." +msgstr "" + +#: ../Doc/library/shutil.rst:560 +msgid "" +"Registers an unpack format. *name* is the name of the format and " +"*extensions* is a list of extensions corresponding to the format, like ``." +"zip`` for Zip files." +msgstr "" + +#: ../Doc/library/shutil.rst:564 +msgid "" +"*function* is the callable that will be used to unpack archives. The " +"callable will receive the path of the archive, followed by the directory the " +"archive must be extracted to." +msgstr "" + +#: ../Doc/library/shutil.rst:568 +msgid "" +"When provided, *extra_args* is a sequence of ``(name, value)`` tuples that " +"will be passed as keywords arguments to the callable." +msgstr "" + +#: ../Doc/library/shutil.rst:571 +msgid "" +"*description* can be provided to describe the format, and will be returned " +"by the :func:`get_unpack_formats` function." +msgstr "" + +#: ../Doc/library/shutil.rst:577 +msgid "Unregister an unpack format. *name* is the name of the format." +msgstr "" + +#: ../Doc/library/shutil.rst:582 +msgid "" +"Return a list of all registered formats for unpacking. Each element of the " +"returned sequence is a tuple ``(name, extensions, description)``." +msgstr "" + +#: ../Doc/library/shutil.rst:588 +msgid "" +"*zip*: ZIP file (unpacking compressed files works only if the corresponding " +"module is available)." +msgstr "" + +#: ../Doc/library/shutil.rst:595 +msgid "" +"You can register new formats or provide your own unpacker for any existing " +"formats, by using :func:`register_unpack_format`." +msgstr "" + +#: ../Doc/library/shutil.rst:602 +msgid "Archiving example" +msgstr "" + +#: ../Doc/library/shutil.rst:604 +msgid "" +"In this example, we create a gzip'ed tar-file archive containing all files " +"found in the :file:`.ssh` directory of the user::" +msgstr "" + +#: ../Doc/library/shutil.rst:614 +msgid "The resulting archive contains:" +msgstr "" + +#: ../Doc/library/shutil.rst:630 +msgid "Querying the size of the output terminal" +msgstr "" + +#: ../Doc/library/shutil.rst:634 +msgid "Get the size of the terminal window." +msgstr "" + +#: ../Doc/library/shutil.rst:636 +msgid "" +"For each of the two dimensions, the environment variable, ``COLUMNS`` and " +"``LINES`` respectively, is checked. If the variable is defined and the value " +"is a positive integer, it is used." +msgstr "" + +#: ../Doc/library/shutil.rst:640 +msgid "" +"When ``COLUMNS`` or ``LINES`` is not defined, which is the common case, the " +"terminal connected to :data:`sys.__stdout__` is queried by invoking :func:" +"`os.get_terminal_size`." +msgstr "" + +#: ../Doc/library/shutil.rst:644 +msgid "" +"If the terminal size cannot be successfully queried, either because the " +"system doesn't support querying, or because we are not connected to a " +"terminal, the value given in ``fallback`` parameter is used. ``fallback`` " +"defaults to ``(80, 24)`` which is the default size used by many terminal " +"emulators." +msgstr "" + +#: ../Doc/library/shutil.rst:650 +msgid "The value returned is a named tuple of type :class:`os.terminal_size`." +msgstr "" + +#: ../Doc/library/shutil.rst:652 +msgid "" +"See also: The Single UNIX Specification, Version 2, `Other Environment " +"Variables`_." +msgstr "" diff --git a/library/signal.po b/library/signal.po new file mode 100644 index 000000000..c988d1a3e --- /dev/null +++ b/library/signal.po @@ -0,0 +1,612 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2018-11-29 18:27+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/signal.rst:2 +msgid ":mod:`signal` --- Set handlers for asynchronous events" +msgstr "" + +#: ../Doc/library/signal.rst:9 +msgid "This module provides mechanisms to use signal handlers in Python." +msgstr "" + +#: ../Doc/library/signal.rst:13 +msgid "General rules" +msgstr "" + +#: ../Doc/library/signal.rst:15 +msgid "" +"The :func:`signal.signal` function allows defining custom handlers to be " +"executed when a signal is received. A small number of default handlers are " +"installed: :const:`SIGPIPE` is ignored (so write errors on pipes and sockets " +"can be reported as ordinary Python exceptions) and :const:`SIGINT` is " +"translated into a :exc:`KeyboardInterrupt` exception if the parent process " +"has not changed it." +msgstr "" + +#: ../Doc/library/signal.rst:22 +msgid "" +"A handler for a particular signal, once set, remains installed until it is " +"explicitly reset (Python emulates the BSD style interface regardless of the " +"underlying implementation), with the exception of the handler for :const:" +"`SIGCHLD`, which follows the underlying implementation." +msgstr "" + +#: ../Doc/library/signal.rst:29 +msgid "Execution of Python signal handlers" +msgstr "" + +#: ../Doc/library/signal.rst:31 +msgid "" +"A Python signal handler does not get executed inside the low-level (C) " +"signal handler. Instead, the low-level signal handler sets a flag which " +"tells the :term:`virtual machine` to execute the corresponding Python signal " +"handler at a later point(for example at the next :term:`bytecode` " +"instruction). This has consequences:" +msgstr "" + +#: ../Doc/library/signal.rst:37 +msgid "" +"It makes little sense to catch synchronous errors like :const:`SIGFPE` or :" +"const:`SIGSEGV` that are caused by an invalid operation in C code. Python " +"will return from the signal handler to the C code, which is likely to raise " +"the same signal again, causing Python to apparently hang. From Python 3.3 " +"onwards, you can use the :mod:`faulthandler` module to report on synchronous " +"errors." +msgstr "" + +#: ../Doc/library/signal.rst:44 +msgid "" +"A long-running calculation implemented purely in C (such as regular " +"expression matching on a large body of text) may run uninterrupted for an " +"arbitrary amount of time, regardless of any signals received. The Python " +"signal handlers will be called when the calculation finishes." +msgstr "" + +#: ../Doc/library/signal.rst:54 +msgid "Signals and threads" +msgstr "" + +#: ../Doc/library/signal.rst:56 +msgid "" +"Python signal handlers are always executed in the main Python thread, even " +"if the signal was received in another thread. This means that signals can't " +"be used as a means of inter-thread communication. You can use the " +"synchronization primitives from the :mod:`threading` module instead." +msgstr "" + +#: ../Doc/library/signal.rst:61 +msgid "Besides, only the main thread is allowed to set a new signal handler." +msgstr "" + +#: ../Doc/library/signal.rst:65 +msgid "Module contents" +msgstr "" + +#: ../Doc/library/signal.rst:67 +msgid "" +"signal (SIG*), handler (:const:`SIG_DFL`, :const:`SIG_IGN`) and sigmask (:" +"const:`SIG_BLOCK`, :const:`SIG_UNBLOCK`, :const:`SIG_SETMASK`) related " +"constants listed below were turned into :class:`enums `. :func:" +"`getsignal`, :func:`pthread_sigmask`, :func:`sigpending` and :func:`sigwait` " +"functions return human-readable :class:`enums `." +msgstr "" + +#: ../Doc/library/signal.rst:77 +msgid "The variables defined in the :mod:`signal` module are:" +msgstr "" + +#: ../Doc/library/signal.rst:82 +msgid "" +"This is one of two standard signal handling options; it will simply perform " +"the default function for the signal. For example, on most systems the " +"default action for :const:`SIGQUIT` is to dump core and exit, while the " +"default action for :const:`SIGCHLD` is to simply ignore it." +msgstr "" + +#: ../Doc/library/signal.rst:90 +msgid "" +"This is another standard signal handler, which will simply ignore the given " +"signal." +msgstr "" + +#: ../Doc/library/signal.rst:96 +msgid "" +"All the signal numbers are defined symbolically. For example, the hangup " +"signal is defined as :const:`signal.SIGHUP`; the variable names are " +"identical to the names used in C programs, as found in ````. The " +"Unix man page for ':c:func:`signal`' lists the existing signals (on some " +"systems this is :manpage:`signal(2)`, on others the list is in :manpage:" +"`signal(7)`). Note that not all systems define the same set of signal names; " +"only those names defined by the system are defined by this module." +msgstr "" + +#: ../Doc/library/signal.rst:107 +msgid "" +"The signal corresponding to the :kbd:`Ctrl+C` keystroke event. This signal " +"can only be used with :func:`os.kill`." +msgstr "" + +#: ../Doc/library/signal.rst:111 ../Doc/library/signal.rst:121 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." + +#: ../Doc/library/signal.rst:117 +msgid "" +"The signal corresponding to the :kbd:`Ctrl+Break` keystroke event. This " +"signal can only be used with :func:`os.kill`." +msgstr "" + +#: ../Doc/library/signal.rst:127 +msgid "One more than the number of the highest signal number." +msgstr "" + +#: ../Doc/library/signal.rst:132 +msgid "" +"Decrements interval timer in real time, and delivers :const:`SIGALRM` upon " +"expiration." +msgstr "" + +#: ../Doc/library/signal.rst:138 +msgid "" +"Decrements interval timer only when the process is executing, and delivers " +"SIGVTALRM upon expiration." +msgstr "" + +#: ../Doc/library/signal.rst:144 +msgid "" +"Decrements interval timer both when the process executes and when the system " +"is executing on behalf of the process. Coupled with ITIMER_VIRTUAL, this " +"timer is usually used to profile the time spent by the application in user " +"and kernel space. SIGPROF is delivered upon expiration." +msgstr "" + +#: ../Doc/library/signal.rst:152 +msgid "" +"A possible value for the *how* parameter to :func:`pthread_sigmask` " +"indicating that signals are to be blocked." +msgstr "" + +#: ../Doc/library/signal.rst:159 +msgid "" +"A possible value for the *how* parameter to :func:`pthread_sigmask` " +"indicating that signals are to be unblocked." +msgstr "" + +#: ../Doc/library/signal.rst:166 +msgid "" +"A possible value for the *how* parameter to :func:`pthread_sigmask` " +"indicating that the signal mask is to be replaced." +msgstr "" + +#: ../Doc/library/signal.rst:172 +msgid "The :mod:`signal` module defines one exception:" +msgstr "" + +#: ../Doc/library/signal.rst:176 +msgid "" +"Raised to signal an error from the underlying :func:`setitimer` or :func:" +"`getitimer` implementation. Expect this error if an invalid interval timer " +"or a negative time is passed to :func:`setitimer`. This error is a subtype " +"of :exc:`OSError`." +msgstr "" + +#: ../Doc/library/signal.rst:181 +msgid "" +"This error used to be a subtype of :exc:`IOError`, which is now an alias of :" +"exc:`OSError`." +msgstr "" + +#: ../Doc/library/signal.rst:186 +msgid "The :mod:`signal` module defines the following functions:" +msgstr "" + +#: ../Doc/library/signal.rst:191 +msgid "" +"If *time* is non-zero, this function requests that a :const:`SIGALRM` signal " +"be sent to the process in *time* seconds. Any previously scheduled alarm is " +"canceled (only one alarm can be scheduled at any time). The returned value " +"is then the number of seconds before any previously set alarm was to have " +"been delivered. If *time* is zero, no alarm is scheduled, and any scheduled " +"alarm is canceled. If the return value is zero, no alarm is currently " +"scheduled. (See the Unix man page :manpage:`alarm(2)`.)" +msgstr "" + +#: ../Doc/library/signal.rst:199 ../Doc/library/signal.rst:299 +#: ../Doc/library/signal.rst:306 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." + +#: ../Doc/library/signal.rst:204 +msgid "" +"Return the current signal handler for the signal *signalnum*. The returned " +"value may be a callable Python object, or one of the special values :const:" +"`signal.SIG_IGN`, :const:`signal.SIG_DFL` or :const:`None`. Here, :const:" +"`signal.SIG_IGN` means that the signal was previously ignored, :const:" +"`signal.SIG_DFL` means that the default way of handling the signal was " +"previously in use, and ``None`` means that the previous signal handler was " +"not installed from Python." +msgstr "" + +#: ../Doc/library/signal.rst:215 +msgid "" +"Cause the process to sleep until a signal is received; the appropriate " +"handler will then be called. Returns nothing. Not on Windows. (See the " +"Unix man page :manpage:`signal(2)`.)" +msgstr "" + +#: ../Doc/library/signal.rst:219 +msgid "" +"See also :func:`sigwait`, :func:`sigwaitinfo`, :func:`sigtimedwait` and :" +"func:`sigpending`." +msgstr "" + +#: ../Doc/library/signal.rst:225 +msgid "" +"Send the signal *signalnum* to the thread *thread_id*, another thread in the " +"same process as the caller. The target thread can be executing any code " +"(Python or not). However, if the target thread is executing the Python " +"interpreter, the Python signal handlers will be :ref:`executed by the main " +"thread `. Therefore, the only point of sending a " +"signal to a particular Python thread would be to force a running system call " +"to fail with :exc:`InterruptedError`." +msgstr "" + +#: ../Doc/library/signal.rst:233 +msgid "" +"Use :func:`threading.get_ident()` or the :attr:`~threading.Thread.ident` " +"attribute of :class:`threading.Thread` objects to get a suitable value for " +"*thread_id*." +msgstr "" + +#: ../Doc/library/signal.rst:237 +msgid "" +"If *signalnum* is 0, then no signal is sent, but error checking is still " +"performed; this can be used to check if the target thread is still running." +msgstr "" + +#: ../Doc/library/signal.rst:242 +msgid "" +":ref:`Availability `: Unix (see the man page :manpage:" +"`pthread_kill(3)` for further information)." +msgstr "" + +#: ../Doc/library/signal.rst:243 +msgid "See also :func:`os.kill`." +msgstr "" + +#: ../Doc/library/signal.rst:250 +msgid "" +"Fetch and/or change the signal mask of the calling thread. The signal mask " +"is the set of signals whose delivery is currently blocked for the caller. " +"Return the old signal mask as a set of signals." +msgstr "" + +#: ../Doc/library/signal.rst:254 +msgid "" +"The behavior of the call is dependent on the value of *how*, as follows." +msgstr "" + +#: ../Doc/library/signal.rst:256 +msgid "" +":data:`SIG_BLOCK`: The set of blocked signals is the union of the current " +"set and the *mask* argument." +msgstr "" + +#: ../Doc/library/signal.rst:258 +msgid "" +":data:`SIG_UNBLOCK`: The signals in *mask* are removed from the current set " +"of blocked signals. It is permissible to attempt to unblock a signal which " +"is not blocked." +msgstr "" + +#: ../Doc/library/signal.rst:261 +msgid "" +":data:`SIG_SETMASK`: The set of blocked signals is set to the *mask* " +"argument." +msgstr "" + +#: ../Doc/library/signal.rst:264 +msgid "" +"*mask* is a set of signal numbers (e.g. {:const:`signal.SIGINT`, :const:" +"`signal.SIGTERM`}). Use ``range(1, signal.NSIG)`` for a full mask including " +"all signals." +msgstr "" + +#: ../Doc/library/signal.rst:268 +msgid "" +"For example, ``signal.pthread_sigmask(signal.SIG_BLOCK, [])`` reads the " +"signal mask of the calling thread." +msgstr "" + +#: ../Doc/library/signal.rst:273 +msgid "" +":ref:`Availability `: Unix. See the man page :manpage:" +"`sigprocmask(3)` and :manpage:`pthread_sigmask(3)` for further information." +msgstr "" + +#: ../Doc/library/signal.rst:274 +msgid "See also :func:`pause`, :func:`sigpending` and :func:`sigwait`." +msgstr "" + +#: ../Doc/library/signal.rst:281 +msgid "" +"Sets given interval timer (one of :const:`signal.ITIMER_REAL`, :const:" +"`signal.ITIMER_VIRTUAL` or :const:`signal.ITIMER_PROF`) specified by *which* " +"to fire after *seconds* (float is accepted, different from :func:`alarm`) " +"and after that every *interval* seconds (if *interval* is non-zero). The " +"interval timer specified by *which* can be cleared by setting *seconds* to " +"zero." +msgstr "" + +#: ../Doc/library/signal.rst:288 +msgid "" +"When an interval timer fires, a signal is sent to the process. The signal " +"sent is dependent on the timer being used; :const:`signal.ITIMER_REAL` will " +"deliver :const:`SIGALRM`, :const:`signal.ITIMER_VIRTUAL` sends :const:" +"`SIGVTALRM`, and :const:`signal.ITIMER_PROF` will deliver :const:`SIGPROF`." +msgstr "" + +#: ../Doc/library/signal.rst:294 +msgid "The old values are returned as a tuple: (delay, interval)." +msgstr "" + +#: ../Doc/library/signal.rst:296 +msgid "" +"Attempting to pass an invalid interval timer will cause an :exc:" +"`ItimerError`." +msgstr "" + +#: ../Doc/library/signal.rst:304 +msgid "Returns current value of a given interval timer specified by *which*." +msgstr "" + +#: ../Doc/library/signal.rst:311 +msgid "" +"Set the wakeup file descriptor to *fd*. When a signal is received, the " +"signal number is written as a single byte into the fd. This can be used by " +"a library to wakeup a poll or select call, allowing the signal to be fully " +"processed." +msgstr "" + +#: ../Doc/library/signal.rst:316 +msgid "" +"The old wakeup fd is returned (or -1 if file descriptor wakeup was not " +"enabled). If *fd* is -1, file descriptor wakeup is disabled. If not -1, " +"*fd* must be non-blocking. It is up to the library to remove any bytes from " +"*fd* before calling poll or select again." +msgstr "" + +#: ../Doc/library/signal.rst:321 ../Doc/library/signal.rst:374 +msgid "" +"When threads are enabled, this function can only be called from the main " +"thread; attempting to call it from other threads will cause a :exc:" +"`ValueError` exception to be raised." +msgstr "" + +#: ../Doc/library/signal.rst:325 +msgid "" +"There are two common ways to use this function. In both approaches, you use " +"the fd to wake up when a signal arrives, but then they differ in how they " +"determine *which* signal or signals have arrived." +msgstr "" + +#: ../Doc/library/signal.rst:330 +msgid "" +"In the first approach, we read the data out of the fd's buffer, and the byte " +"values give you the signal numbers. This is simple, but in rare cases it can " +"run into a problem: generally the fd will have a limited amount of buffer " +"space, and if too many signals arrive too quickly, then the buffer may " +"become full, and some signals may be lost. If you use this approach, then " +"you should set ``warn_on_full_buffer=True``, which will at least cause a " +"warning to be printed to stderr when signals are lost." +msgstr "" + +#: ../Doc/library/signal.rst:339 +msgid "" +"In the second approach, we use the wakeup fd *only* for wakeups, and ignore " +"the actual byte values. In this case, all we care about is whether the fd's " +"buffer is empty or non-empty; a full buffer doesn't indicate a problem at " +"all. If you use this approach, then you should set " +"``warn_on_full_buffer=False``, so that your users are not confused by " +"spurious warning messages." +msgstr "" + +#: ../Doc/library/signal.rst:346 +msgid "On Windows, the function now also supports socket handles." +msgstr "" + +#: ../Doc/library/signal.rst:349 +msgid "Added ``warn_on_full_buffer`` parameter." +msgstr "" + +#: ../Doc/library/signal.rst:354 +msgid "" +"Change system call restart behaviour: if *flag* is :const:`False`, system " +"calls will be restarted when interrupted by signal *signalnum*, otherwise " +"system calls will be interrupted. Returns nothing." +msgstr "" + +#: ../Doc/library/signal.rst:360 +msgid "" +":ref:`Availability `: Unix (see the man page :manpage:" +"`siginterrupt(3)` for further information)." +msgstr "" + +#: ../Doc/library/signal.rst:361 +msgid "" +"Note that installing a signal handler with :func:`signal` will reset the " +"restart behaviour to interruptible by implicitly calling :c:func:" +"`siginterrupt` with a true *flag* value for the given signal." +msgstr "" + +#: ../Doc/library/signal.rst:368 +msgid "" +"Set the handler for signal *signalnum* to the function *handler*. *handler* " +"can be a callable Python object taking two arguments (see below), or one of " +"the special values :const:`signal.SIG_IGN` or :const:`signal.SIG_DFL`. The " +"previous signal handler will be returned (see the description of :func:" +"`getsignal` above). (See the Unix man page :manpage:`signal(2)`.)" +msgstr "" + +#: ../Doc/library/signal.rst:378 +msgid "" +"The *handler* is called with two arguments: the signal number and the " +"current stack frame (``None`` or a frame object; for a description of frame " +"objects, see the :ref:`description in the type hierarchy ` or " +"see the attribute descriptions in the :mod:`inspect` module)." +msgstr "" + +#: ../Doc/library/signal.rst:383 +msgid "" +"On Windows, :func:`signal` can only be called with :const:`SIGABRT`, :const:" +"`SIGFPE`, :const:`SIGILL`, :const:`SIGINT`, :const:`SIGSEGV`, :const:" +"`SIGTERM`, or :const:`SIGBREAK`. A :exc:`ValueError` will be raised in any " +"other case. Note that not all systems define the same set of signal names; " +"an :exc:`AttributeError` will be raised if a signal name is not defined as " +"``SIG*`` module level constant." +msgstr "" + +#: ../Doc/library/signal.rst:394 +msgid "" +"Examine the set of signals that are pending for delivery to the calling " +"thread (i.e., the signals which have been raised while blocked). Return the " +"set of the pending signals." +msgstr "" + +#: ../Doc/library/signal.rst:400 +msgid "" +":ref:`Availability `: Unix (see the man page :manpage:" +"`sigpending(2)` for further information)." +msgstr "" + +#: ../Doc/library/signal.rst:401 +msgid "See also :func:`pause`, :func:`pthread_sigmask` and :func:`sigwait`." +msgstr "" + +#: ../Doc/library/signal.rst:408 +msgid "" +"Suspend execution of the calling thread until the delivery of one of the " +"signals specified in the signal set *sigset*. The function accepts the " +"signal (removes it from the pending list of signals), and returns the signal " +"number." +msgstr "" + +#: ../Doc/library/signal.rst:414 +msgid "" +":ref:`Availability `: Unix (see the man page :manpage:" +"`sigwait(3)` for further information)." +msgstr "" + +#: ../Doc/library/signal.rst:415 +msgid "" +"See also :func:`pause`, :func:`pthread_sigmask`, :func:`sigpending`, :func:" +"`sigwaitinfo` and :func:`sigtimedwait`." +msgstr "" + +#: ../Doc/library/signal.rst:423 +msgid "" +"Suspend execution of the calling thread until the delivery of one of the " +"signals specified in the signal set *sigset*. The function accepts the " +"signal and removes it from the pending list of signals. If one of the " +"signals in *sigset* is already pending for the calling thread, the function " +"will return immediately with information about that signal. The signal " +"handler is not called for the delivered signal. The function raises an :exc:" +"`InterruptedError` if it is interrupted by a signal that is not in *sigset*." +msgstr "" + +#: ../Doc/library/signal.rst:432 +msgid "" +"The return value is an object representing the data contained in the :c:type:" +"`siginfo_t` structure, namely: :attr:`si_signo`, :attr:`si_code`, :attr:" +"`si_errno`, :attr:`si_pid`, :attr:`si_uid`, :attr:`si_status`, :attr:" +"`si_band`." +msgstr "" + +#: ../Doc/library/signal.rst:439 +msgid "" +":ref:`Availability `: Unix (see the man page :manpage:" +"`sigwaitinfo(2)` for further information)." +msgstr "" + +#: ../Doc/library/signal.rst:440 +msgid "See also :func:`pause`, :func:`sigwait` and :func:`sigtimedwait`." +msgstr "" + +#: ../Doc/library/signal.rst:444 +msgid "" +"The function is now retried if interrupted by a signal not in *sigset* and " +"the signal handler does not raise an exception (see :pep:`475` for the " +"rationale)." +msgstr "" + +#: ../Doc/library/signal.rst:452 +msgid "" +"Like :func:`sigwaitinfo`, but takes an additional *timeout* argument " +"specifying a timeout. If *timeout* is specified as :const:`0`, a poll is " +"performed. Returns :const:`None` if a timeout occurs." +msgstr "" + +#: ../Doc/library/signal.rst:458 +msgid "" +":ref:`Availability `: Unix (see the man page :manpage:" +"`sigtimedwait(2)` for further information)." +msgstr "" + +#: ../Doc/library/signal.rst:459 +msgid "See also :func:`pause`, :func:`sigwait` and :func:`sigwaitinfo`." +msgstr "" + +#: ../Doc/library/signal.rst:463 +msgid "" +"The function is now retried with the recomputed *timeout* if interrupted by " +"a signal not in *sigset* and the signal handler does not raise an exception " +"(see :pep:`475` for the rationale)." +msgstr "" + +#: ../Doc/library/signal.rst:472 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/signal.rst:474 +msgid "" +"Here is a minimal example program. It uses the :func:`alarm` function to " +"limit the time spent waiting to open a file; this is useful if the file is " +"for a serial device that may not be turned on, which would normally cause " +"the :func:`os.open` to hang indefinitely. The solution is to set a 5-second " +"alarm before opening the file; if the operation takes too long, the alarm " +"signal will be sent, and the handler raises an exception. ::" +msgstr "" + +#: ../Doc/library/signal.rst:497 +msgid "Note on SIGPIPE" +msgstr "" + +#: ../Doc/library/signal.rst:499 +msgid "" +"Piping output of your program to tools like :manpage:`head(1)` will cause a :" +"const:`SIGPIPE` signal to be sent to your process when the receiver of its " +"standard output closes early. This results in an exception like :code:" +"`BrokenPipeError: [Errno 32] Broken pipe`. To handle this case, wrap your " +"entry point to catch this exception as follows::" +msgstr "" + +#: ../Doc/library/signal.rst:526 +msgid "" +"Do not set :const:`SIGPIPE`'s disposition to :const:`SIG_DFL` in order to " +"avoid :exc:`BrokenPipeError`. Doing that would cause your program to exit " +"unexpectedly also whenever any socket connection is interrupted while your " +"program is still writing to it." +msgstr "" diff --git a/library/site.po b/library/site.po new file mode 100644 index 000000000..e524deb34 --- /dev/null +++ b/library/site.po @@ -0,0 +1,280 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/site.rst:2 +msgid ":mod:`site` --- Site-specific configuration hook" +msgstr "" + +#: ../Doc/library/site.rst:7 +msgid "**Source code:** :source:`Lib/site.py`" +msgstr "**Code source :** :source:`Lib/site.py`" + +#: ../Doc/library/site.rst:13 +msgid "" +"**This module is automatically imported during initialization.** The " +"automatic import can be suppressed using the interpreter's :option:`-S` " +"option." +msgstr "" + +#: ../Doc/library/site.rst:18 +msgid "" +"Importing this module will append site-specific paths to the module search " +"path and add a few builtins, unless :option:`-S` was used. In that case, " +"this module can be safely imported with no automatic modifications to the " +"module search path or additions to the builtins. To explicitly trigger the " +"usual site-specific additions, call the :func:`site.main` function." +msgstr "" + +#: ../Doc/library/site.rst:24 +msgid "" +"Importing the module used to trigger paths manipulation even when using :" +"option:`-S`." +msgstr "" + +#: ../Doc/library/site.rst:31 +msgid "" +"It starts by constructing up to four directories from a head and a tail " +"part. For the head part, it uses ``sys.prefix`` and ``sys.exec_prefix``; " +"empty heads are skipped. For the tail part, it uses the empty string and " +"then :file:`lib/site-packages` (on Windows) or :file:`lib/python{X.Y}/site-" +"packages` (on Unix and Macintosh). For each of the distinct head-tail " +"combinations, it sees if it refers to an existing directory, and if so, adds " +"it to ``sys.path`` and also inspects the newly added path for configuration " +"files." +msgstr "" + +#: ../Doc/library/site.rst:40 +msgid "Support for the \"site-python\" directory has been removed." +msgstr "" + +#: ../Doc/library/site.rst:43 +msgid "" +"If a file named \"pyvenv.cfg\" exists one directory above sys.executable, " +"sys.prefix and sys.exec_prefix are set to that directory and it is also " +"checked for site-packages (sys.base_prefix and sys.base_exec_prefix will " +"always be the \"real\" prefixes of the Python installation). If \"pyvenv.cfg" +"\" (a bootstrap configuration file) contains the key \"include-system-site-" +"packages\" set to anything other than \"false\" (case-insensitive), the " +"system-level prefixes will still also be searched for site-packages; " +"otherwise they won't." +msgstr "" + +#: ../Doc/library/site.rst:56 +msgid "" +"A path configuration file is a file whose name has the form :file:`{name}." +"pth` and exists in one of the four directories mentioned above; its contents " +"are additional items (one per line) to be added to ``sys.path``. Non-" +"existing items are never added to ``sys.path``, and no check is made that " +"the item refers to a directory rather than a file. No item is added to " +"``sys.path`` more than once. Blank lines and lines beginning with ``#`` are " +"skipped. Lines starting with ``import`` (followed by space or tab) are " +"executed." +msgstr "" + +#: ../Doc/library/site.rst:68 +msgid "" +"For example, suppose ``sys.prefix`` and ``sys.exec_prefix`` are set to :file:" +"`/usr/local`. The Python X.Y library is then installed in :file:`/usr/local/" +"lib/python{X.Y}`. Suppose this has a subdirectory :file:`/usr/local/lib/" +"python{X.Y}/site-packages` with three subsubdirectories, :file:`foo`, :file:" +"`bar` and :file:`spam`, and two path configuration files, :file:`foo.pth` " +"and :file:`bar.pth`. Assume :file:`foo.pth` contains the following::" +msgstr "" + +#: ../Doc/library/site.rst:82 +msgid "and :file:`bar.pth` contains::" +msgstr "" + +#: ../Doc/library/site.rst:88 +msgid "" +"Then the following version-specific directories are added to ``sys.path``, " +"in this order::" +msgstr "" + +#: ../Doc/library/site.rst:94 +msgid "" +"Note that :file:`bletch` is omitted because it doesn't exist; the :file:" +"`bar` directory precedes the :file:`foo` directory because :file:`bar.pth` " +"comes alphabetically before :file:`foo.pth`; and :file:`spam` is omitted " +"because it is not mentioned in either path configuration file." +msgstr "" + +#: ../Doc/library/site.rst:101 +msgid "" +"After these path manipulations, an attempt is made to import a module named :" +"mod:`sitecustomize`, which can perform arbitrary site-specific " +"customizations. It is typically created by a system administrator in the " +"site-packages directory. If this import fails with an :exc:`ImportError` or " +"its subclass exception, and the exception's :attr:`name` attribute equals to " +"``'sitecustomize'``, it is silently ignored. If Python is started without " +"output streams available, as with :file:`pythonw.exe` on Windows (which is " +"used by default to start IDLE), attempted output from :mod:`sitecustomize` " +"is ignored. Any other exception causes a silent and perhaps mysterious " +"failure of the process." +msgstr "" + +#: ../Doc/library/site.rst:113 +msgid "" +"After this, an attempt is made to import a module named :mod:" +"`usercustomize`, which can perform arbitrary user-specific customizations, " +"if :data:`ENABLE_USER_SITE` is true. This file is intended to be created in " +"the user site-packages directory (see below), which is part of ``sys.path`` " +"unless disabled by :option:`-s`. If this import fails with an :exc:" +"`ImportError` or its subclass exception, and the exception's :attr:`name` " +"attribute equals to ``'usercustomize'``, it is silently ignored." +msgstr "" + +#: ../Doc/library/site.rst:121 +msgid "" +"Note that for some non-Unix systems, ``sys.prefix`` and ``sys.exec_prefix`` " +"are empty, and the path manipulations are skipped; however the import of :" +"mod:`sitecustomize` and :mod:`usercustomize` is still attempted." +msgstr "" + +#: ../Doc/library/site.rst:129 +msgid "Readline configuration" +msgstr "" + +#: ../Doc/library/site.rst:131 +msgid "" +"On systems that support :mod:`readline`, this module will also import and " +"configure the :mod:`rlcompleter` module, if Python is started in :ref:" +"`interactive mode ` and without the :option:`-S` option. " +"The default behavior is enable tab-completion and to use :file:`~/." +"python_history` as the history save file. To disable it, delete (or " +"override) the :data:`sys.__interactivehook__` attribute in your :mod:" +"`sitecustomize` or :mod:`usercustomize` module or your :envvar:" +"`PYTHONSTARTUP` file." +msgstr "" + +#: ../Doc/library/site.rst:140 +msgid "Activation of rlcompleter and history was made automatic." +msgstr "" + +#: ../Doc/library/site.rst:145 +msgid "Module contents" +msgstr "" + +#: ../Doc/library/site.rst:149 +msgid "A list of prefixes for site-packages directories." +msgstr "" + +#: ../Doc/library/site.rst:154 +msgid "" +"Flag showing the status of the user site-packages directory. ``True`` means " +"that it is enabled and was added to ``sys.path``. ``False`` means that it " +"was disabled by user request (with :option:`-s` or :envvar:" +"`PYTHONNOUSERSITE`). ``None`` means it was disabled for security reasons " +"(mismatch between user or group id and effective id) or by an administrator." +msgstr "" + +#: ../Doc/library/site.rst:164 +msgid "" +"Path to the user site-packages for the running Python. Can be ``None`` if :" +"func:`getusersitepackages` hasn't been called yet. Default value is :file:" +"`~/.local/lib/python{X.Y}/site-packages` for UNIX and non-framework Mac OS X " +"builds, :file:`~/Library/Python/{X.Y}/lib/python/site-packages` for Mac " +"framework builds, and :file:`{%APPDATA%}\\\\Python\\\\Python{XY}\\\\site-" +"packages` on Windows. This directory is a site directory, which means that :" +"file:`.pth` files in it will be processed." +msgstr "" + +#: ../Doc/library/site.rst:175 +msgid "" +"Path to the base directory for the user site-packages. Can be ``None`` if :" +"func:`getuserbase` hasn't been called yet. Default value is :file:`~/." +"local` for UNIX and Mac OS X non-framework builds, :file:`~/Library/Python/" +"{X.Y}` for Mac framework builds, and :file:`{%APPDATA%}\\\\Python` for " +"Windows. This value is used by Distutils to compute the installation " +"directories for scripts, data files, Python modules, etc. for the :ref:`user " +"installation scheme `. See also :envvar:" +"`PYTHONUSERBASE`." +msgstr "" + +#: ../Doc/library/site.rst:187 +msgid "" +"Adds all the standard site-specific directories to the module search path. " +"This function is called automatically when this module is imported, unless " +"the Python interpreter was started with the :option:`-S` flag." +msgstr "" + +#: ../Doc/library/site.rst:191 +msgid "This function used to be called unconditionally." +msgstr "" + +#: ../Doc/library/site.rst:197 +msgid "" +"Add a directory to sys.path and process its :file:`.pth` files. Typically " +"used in :mod:`sitecustomize` or :mod:`usercustomize` (see above)." +msgstr "" + +#: ../Doc/library/site.rst:203 +msgid "Return a list containing all global site-packages directories." +msgstr "" + +#: ../Doc/library/site.rst:210 +msgid "" +"Return the path of the user base directory, :data:`USER_BASE`. If it is not " +"initialized yet, this function will also set it, respecting :envvar:" +"`PYTHONUSERBASE`." +msgstr "" + +#: ../Doc/library/site.rst:219 +msgid "" +"Return the path of the user-specific site-packages directory, :data:" +"`USER_SITE`. If it is not initialized yet, this function will also set it, " +"respecting :envvar:`PYTHONNOUSERSITE` and :data:`USER_BASE`." +msgstr "" + +#: ../Doc/library/site.rst:226 +msgid "" +"The :mod:`site` module also provides a way to get the user directories from " +"the command line:" +msgstr "" + +#: ../Doc/library/site.rst:236 +msgid "" +"If it is called without arguments, it will print the contents of :data:`sys." +"path` on the standard output, followed by the value of :data:`USER_BASE` and " +"whether the directory exists, then the same thing for :data:`USER_SITE`, and " +"finally the value of :data:`ENABLE_USER_SITE`." +msgstr "" + +#: ../Doc/library/site.rst:243 +msgid "Print the path to the user base directory." +msgstr "" + +#: ../Doc/library/site.rst:247 +msgid "Print the path to the user site-packages directory." +msgstr "" + +#: ../Doc/library/site.rst:249 +msgid "" +"If both options are given, user base and user site will be printed (always " +"in this order), separated by :data:`os.pathsep`." +msgstr "" + +#: ../Doc/library/site.rst:252 +msgid "" +"If any option is given, the script will exit with one of these values: ``0`` " +"if the user site-packages directory is enabled, ``1`` if it was disabled by " +"the user, ``2`` if it is disabled for security reasons or by an " +"administrator, and a value greater than 2 if there is an error." +msgstr "" + +#: ../Doc/library/site.rst:259 +msgid ":pep:`370` -- Per user site-packages directory" +msgstr ":pep:`370` -- Répertoire site-packages propre à l'utilisateur." diff --git a/library/smtpd.po b/library/smtpd.po new file mode 100644 index 000000000..e3610799a --- /dev/null +++ b/library/smtpd.po @@ -0,0 +1,444 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"PO-Revision-Date: 2018-07-03 10:55+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/smtpd.rst:2 +msgid ":mod:`smtpd` --- SMTP Server" +msgstr "" + +#: ../Doc/library/smtpd.rst:10 +msgid "**Source code:** :source:`Lib/smtpd.py`" +msgstr "**Code source :** :source:`Lib/smtpd.py`" + +#: ../Doc/library/smtpd.rst:14 +msgid "This module offers several classes to implement SMTP (email) servers." +msgstr "" + +#: ../Doc/library/smtpd.rst:18 +msgid "" +"The `aiosmtpd `_ package is a recommended " +"replacement for this module. It is based on :mod:`asyncio` and provides a " +"more straightforward API. :mod:`smtpd` should be considered deprecated." +msgstr "" + +#: ../Doc/library/smtpd.rst:22 +msgid "" +"Several server implementations are present; one is a generic do-nothing " +"implementation, which can be overridden, while the other two offer specific " +"mail-sending strategies." +msgstr "" + +#: ../Doc/library/smtpd.rst:26 +msgid "" +"Additionally the SMTPChannel may be extended to implement very specific " +"interaction behaviour with SMTP clients." +msgstr "" + +#: ../Doc/library/smtpd.rst:29 +msgid "" +"The code supports :RFC:`5321`, plus the :rfc:`1870` SIZE and :rfc:`6531` " +"SMTPUTF8 extensions." +msgstr "" + +#: ../Doc/library/smtpd.rst:34 +msgid "SMTPServer Objects" +msgstr "" + +#: ../Doc/library/smtpd.rst:40 +msgid "" +"Create a new :class:`SMTPServer` object, which binds to local address " +"*localaddr*. It will treat *remoteaddr* as an upstream SMTP relayer. Both " +"*localaddr* and *remoteaddr* should be a :ref:`(host, port) ` " +"tuple. The object inherits from :class:`asyncore.dispatcher`, and so will " +"insert itself into :mod:`asyncore`'s event loop on instantiation." +msgstr "" + +#: ../Doc/library/smtpd.rst:46 ../Doc/library/smtpd.rst:168 +msgid "" +"*data_size_limit* specifies the maximum number of bytes that will be " +"accepted in a ``DATA`` command. A value of ``None`` or ``0`` means no limit." +msgstr "" + +#: ../Doc/library/smtpd.rst:50 +msgid "" +"*map* is the socket map to use for connections (an initially empty " +"dictionary is a suitable value). If not specified the :mod:`asyncore` " +"global socket map is used." +msgstr "" + +#: ../Doc/library/smtpd.rst:54 +msgid "" +"*enable_SMTPUTF8* determines whether the ``SMTPUTF8`` extension (as defined " +"in :RFC:`6531`) should be enabled. The default is ``False``. When ``True``, " +"``SMTPUTF8`` is accepted as a parameter to the ``MAIL`` command and when " +"present is passed to :meth:`process_message` in the " +"``kwargs['mail_options']`` list. *decode_data* and *enable_SMTPUTF8* cannot " +"be set to ``True`` at the same time." +msgstr "" + +#: ../Doc/library/smtpd.rst:61 +msgid "" +"*decode_data* specifies whether the data portion of the SMTP transaction " +"should be decoded using UTF-8. When *decode_data* is ``False`` (the " +"default), the server advertises the ``8BITMIME`` extension (:rfc:`6152`), " +"accepts the ``BODY=8BITMIME`` parameter to the ``MAIL`` command, and when " +"present passes it to :meth:`process_message` in the " +"``kwargs['mail_options']`` list. *decode_data* and *enable_SMTPUTF8* cannot " +"be set to ``True`` at the same time." +msgstr "" + +#: ../Doc/library/smtpd.rst:71 +msgid "" +"Raise a :exc:`NotImplementedError` exception. Override this in subclasses to " +"do something useful with this message. Whatever was passed in the " +"constructor as *remoteaddr* will be available as the :attr:`_remoteaddr` " +"attribute. *peer* is the remote host's address, *mailfrom* is the envelope " +"originator, *rcpttos* are the envelope recipients and *data* is a string " +"containing the contents of the e-mail (which should be in :rfc:`5321` " +"format)." +msgstr "" + +#: ../Doc/library/smtpd.rst:79 +msgid "" +"If the *decode_data* constructor keyword is set to ``True``, the *data* " +"argument will be a unicode string. If it is set to ``False``, it will be a " +"bytes object." +msgstr "" + +#: ../Doc/library/smtpd.rst:83 +msgid "" +"*kwargs* is a dictionary containing additional information. It is empty if " +"``decode_data=True`` was given as an init argument, otherwise it contains " +"the following keys:" +msgstr "" + +#: ../Doc/library/smtpd.rst:90 +msgid "*mail_options*:" +msgstr "" + +#: ../Doc/library/smtpd.rst:88 +msgid "" +"a list of all received parameters to the ``MAIL`` command (the elements are " +"uppercase strings; example: ``['BODY=8BITMIME', 'SMTPUTF8']``)." +msgstr "" + +#: ../Doc/library/smtpd.rst:95 +msgid "*rcpt_options*:" +msgstr "" + +#: ../Doc/library/smtpd.rst:93 +msgid "" +"same as *mail_options* but for the ``RCPT`` command. Currently no ``RCPT " +"TO`` options are supported, so for now this will always be an empty list." +msgstr "" + +#: ../Doc/library/smtpd.rst:97 +msgid "" +"Implementations of ``process_message`` should use the ``**kwargs`` signature " +"to accept arbitrary keyword arguments, since future feature enhancements may " +"add keys to the kwargs dictionary." +msgstr "" + +#: ../Doc/library/smtpd.rst:101 +msgid "" +"Return ``None`` to request a normal ``250 Ok`` response; otherwise return " +"the desired response string in :RFC:`5321` format." +msgstr "" + +#: ../Doc/library/smtpd.rst:106 +msgid "" +"Override this in subclasses to use a custom :class:`SMTPChannel` for " +"managing SMTP clients." +msgstr "" + +#: ../Doc/library/smtpd.rst:109 +msgid "The *map* constructor argument." +msgstr "" + +#: ../Doc/library/smtpd.rst:112 +msgid "*localaddr* and *remoteaddr* may now contain IPv6 addresses." +msgstr "" + +#: ../Doc/library/smtpd.rst:115 +msgid "" +"The *decode_data* and *enable_SMTPUTF8* constructor parameters, and the " +"*kwargs* parameter to :meth:`process_message` when *decode_data* is " +"``False``." +msgstr "" + +#: ../Doc/library/smtpd.rst:120 ../Doc/library/smtpd.rst:190 +msgid "*decode_data* is now ``False`` by default." +msgstr "" + +#: ../Doc/library/smtpd.rst:125 +msgid "DebuggingServer Objects" +msgstr "" + +#: ../Doc/library/smtpd.rst:130 +msgid "" +"Create a new debugging server. Arguments are as per :class:`SMTPServer`. " +"Messages will be discarded, and printed on stdout." +msgstr "" + +#: ../Doc/library/smtpd.rst:135 +msgid "PureProxy Objects" +msgstr "" + +#: ../Doc/library/smtpd.rst:140 +msgid "" +"Create a new pure proxy server. Arguments are as per :class:`SMTPServer`. " +"Everything will be relayed to *remoteaddr*. Note that running this has a " +"good chance to make you into an open relay, so please be careful." +msgstr "" + +#: ../Doc/library/smtpd.rst:146 +msgid "MailmanProxy Objects" +msgstr "" + +#: ../Doc/library/smtpd.rst:151 +msgid "" +"Create a new pure proxy server. Arguments are as per :class:`SMTPServer`. " +"Everything will be relayed to *remoteaddr*, unless local mailman " +"configurations knows about an address, in which case it will be handled via " +"mailman. Note that running this has a good chance to make you into an open " +"relay, so please be careful." +msgstr "" + +#: ../Doc/library/smtpd.rst:158 +msgid "SMTPChannel Objects" +msgstr "" + +#: ../Doc/library/smtpd.rst:163 +msgid "" +"Create a new :class:`SMTPChannel` object which manages the communication " +"between the server and a single SMTP client." +msgstr "" + +#: ../Doc/library/smtpd.rst:166 +msgid "*conn* and *addr* are as per the instance variables described below." +msgstr "" + +#: ../Doc/library/smtpd.rst:172 +msgid "" +"*enable_SMTPUTF8* determines whether the ``SMTPUTF8`` extension (as defined " +"in :RFC:`6531`) should be enabled. The default is ``False``. *decode_data* " +"and *enable_SMTPUTF8* cannot be set to ``True`` at the same time." +msgstr "" + +#: ../Doc/library/smtpd.rst:177 +msgid "" +"A dictionary can be specified in *map* to avoid using a global socket map." +msgstr "" + +#: ../Doc/library/smtpd.rst:179 +msgid "" +"*decode_data* specifies whether the data portion of the SMTP transaction " +"should be decoded using UTF-8. The default is ``False``. *decode_data* and " +"*enable_SMTPUTF8* cannot be set to ``True`` at the same time." +msgstr "" + +#: ../Doc/library/smtpd.rst:184 +msgid "" +"To use a custom SMTPChannel implementation you need to override the :attr:" +"`SMTPServer.channel_class` of your :class:`SMTPServer`." +msgstr "" + +#: ../Doc/library/smtpd.rst:187 +msgid "The *decode_data* and *enable_SMTPUTF8* parameters were added." +msgstr "" + +#: ../Doc/library/smtpd.rst:193 +msgid "The :class:`SMTPChannel` has the following instance variables:" +msgstr "" + +#: ../Doc/library/smtpd.rst:197 +msgid "Holds the :class:`SMTPServer` that spawned this channel." +msgstr "" + +#: ../Doc/library/smtpd.rst:201 +msgid "Holds the socket object connecting to the client." +msgstr "" + +#: ../Doc/library/smtpd.rst:205 +msgid "" +"Holds the address of the client, the second value returned by :func:`socket." +"accept `" +msgstr "" + +#: ../Doc/library/smtpd.rst:210 +msgid "" +"Holds a list of the line strings (decoded using UTF-8) received from the " +"client. The lines have their ``\"\\r\\n\"`` line ending translated to ``\"\\n" +"\"``." +msgstr "" + +#: ../Doc/library/smtpd.rst:216 +msgid "" +"Holds the current state of the channel. This will be either :attr:`COMMAND` " +"initially and then :attr:`DATA` after the client sends a \"DATA\" line." +msgstr "" + +#: ../Doc/library/smtpd.rst:222 +msgid "" +"Holds a string containing the greeting sent by the client in its \"HELO\"." +msgstr "" + +#: ../Doc/library/smtpd.rst:226 +msgid "" +"Holds a string containing the address identified in the \"MAIL FROM:\" line " +"from the client." +msgstr "" + +#: ../Doc/library/smtpd.rst:231 +msgid "" +"Holds a list of strings containing the addresses identified in the \"RCPT TO:" +"\" lines from the client." +msgstr "" + +#: ../Doc/library/smtpd.rst:236 +msgid "" +"Holds a string containing all of the data sent by the client during the DATA " +"state, up to but not including the terminating ``\"\\r\\n.\\r\\n\"``." +msgstr "" + +#: ../Doc/library/smtpd.rst:241 +msgid "" +"Holds the fully-qualified domain name of the server as returned by :func:" +"`socket.getfqdn`." +msgstr "" + +#: ../Doc/library/smtpd.rst:246 +msgid "" +"Holds the name of the client peer as returned by ``conn.getpeername()`` " +"where ``conn`` is :attr:`conn`." +msgstr "" + +#: ../Doc/library/smtpd.rst:249 +msgid "" +"The :class:`SMTPChannel` operates by invoking methods named " +"``smtp_`` upon reception of a command line from the client. Built " +"into the base :class:`SMTPChannel` class are methods for handling the " +"following commands (and responding to them appropriately):" +msgstr "" + +#: ../Doc/library/smtpd.rst:255 +msgid "Command" +msgstr "Commande" + +#: ../Doc/library/smtpd.rst:255 +msgid "Action taken" +msgstr "" + +#: ../Doc/library/smtpd.rst:257 +msgid "HELO" +msgstr "HELO" + +#: ../Doc/library/smtpd.rst:257 +msgid "" +"Accepts the greeting from the client and stores it in :attr:" +"`seen_greeting`. Sets server to base command mode." +msgstr "" + +#: ../Doc/library/smtpd.rst:259 +msgid "EHLO" +msgstr "EHLO" + +#: ../Doc/library/smtpd.rst:259 +msgid "" +"Accepts the greeting from the client and stores it in :attr:" +"`seen_greeting`. Sets server to extended command mode." +msgstr "" + +#: ../Doc/library/smtpd.rst:261 +msgid "NOOP" +msgstr "NOOP" + +#: ../Doc/library/smtpd.rst:261 +msgid "Takes no action." +msgstr "" + +#: ../Doc/library/smtpd.rst:262 +msgid "QUIT" +msgstr "QUIT" + +#: ../Doc/library/smtpd.rst:262 +msgid "Closes the connection cleanly." +msgstr "" + +#: ../Doc/library/smtpd.rst:263 +msgid "MAIL" +msgstr "MAIL" + +#: ../Doc/library/smtpd.rst:263 +msgid "" +"Accepts the \"MAIL FROM:\" syntax and stores the supplied address as :attr:" +"`mailfrom`. In extended command mode, accepts the :rfc:`1870` SIZE " +"attribute and responds appropriately based on the value of *data_size_limit*." +msgstr "" + +#: ../Doc/library/smtpd.rst:267 +msgid "RCPT" +msgstr "RCPT" + +#: ../Doc/library/smtpd.rst:267 +msgid "" +"Accepts the \"RCPT TO:\" syntax and stores the supplied addresses in the :" +"attr:`rcpttos` list." +msgstr "" + +#: ../Doc/library/smtpd.rst:269 +msgid "RSET" +msgstr "RSET" + +#: ../Doc/library/smtpd.rst:269 +msgid "" +"Resets the :attr:`mailfrom`, :attr:`rcpttos`, and :attr:`received_data`, but " +"not the greeting." +msgstr "" + +#: ../Doc/library/smtpd.rst:271 +msgid "DATA" +msgstr "DATA" + +#: ../Doc/library/smtpd.rst:271 +msgid "" +"Sets the internal state to :attr:`DATA` and stores remaining lines from the " +"client in :attr:`received_data` until the terminator ``\"\\r\\n.\\r\\n\"`` " +"is received." +msgstr "" + +#: ../Doc/library/smtpd.rst:274 +msgid "HELP" +msgstr "HELP" + +#: ../Doc/library/smtpd.rst:274 +msgid "Returns minimal information on command syntax" +msgstr "" + +#: ../Doc/library/smtpd.rst:275 +msgid "VRFY" +msgstr "VRFY" + +#: ../Doc/library/smtpd.rst:275 +msgid "Returns code 252 (the server doesn't know if the address is valid)" +msgstr "" + +#: ../Doc/library/smtpd.rst:276 +msgid "EXPN" +msgstr "EXPN" + +#: ../Doc/library/smtpd.rst:276 +msgid "Reports that the command is not implemented." +msgstr "" diff --git a/library/smtplib.po b/library/smtplib.po new file mode 100644 index 000000000..b2106e3cc --- /dev/null +++ b/library/smtplib.po @@ -0,0 +1,695 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2017-08-10 00:55+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/smtplib.rst:2 +msgid ":mod:`smtplib` --- SMTP protocol client" +msgstr "" + +#: ../Doc/library/smtplib.rst:9 +msgid "**Source code:** :source:`Lib/smtplib.py`" +msgstr "**Code source :** :source:`Lib/smtplib.py`" + +#: ../Doc/library/smtplib.rst:17 +msgid "" +"The :mod:`smtplib` module defines an SMTP client session object that can be " +"used to send mail to any Internet machine with an SMTP or ESMTP listener " +"daemon. For details of SMTP and ESMTP operation, consult :rfc:`821` (Simple " +"Mail Transfer Protocol) and :rfc:`1869` (SMTP Service Extensions)." +msgstr "" + +#: ../Doc/library/smtplib.rst:25 +msgid "" +"An :class:`SMTP` instance encapsulates an SMTP connection. It has methods " +"that support a full repertoire of SMTP and ESMTP operations. If the optional " +"host and port parameters are given, the SMTP :meth:`connect` method is " +"called with those parameters during initialization. If specified, " +"*local_hostname* is used as the FQDN of the local host in the HELO/EHLO " +"command. Otherwise, the local hostname is found using :func:`socket." +"getfqdn`. If the :meth:`connect` call returns anything other than a success " +"code, an :exc:`SMTPConnectError` is raised. The optional *timeout* parameter " +"specifies a timeout in seconds for blocking operations like the connection " +"attempt (if not specified, the global default timeout setting will be " +"used). If the timeout expires, :exc:`socket.timeout` is raised. The " +"optional source_address parameter allows binding to some specific source " +"address in a machine with multiple network interfaces, and/or to some " +"specific source TCP port. It takes a 2-tuple (host, port), for the socket to " +"bind to as its source address before connecting. If omitted (or if host or " +"port are ``''`` and/or 0 respectively) the OS default behavior will be used." +msgstr "" + +#: ../Doc/library/smtplib.rst:43 +msgid "" +"For normal use, you should only require the initialization/connect, :meth:" +"`sendmail`, and :meth:`SMTP.quit` methods. An example is included below." +msgstr "" + +#: ../Doc/library/smtplib.rst:47 +msgid "" +"The :class:`SMTP` class supports the :keyword:`with` statement. When used " +"like this, the SMTP ``QUIT`` command is issued automatically when the :" +"keyword:`!with` statement exits. E.g.::" +msgstr "" + +#: ../Doc/library/smtplib.rst:58 +msgid "Support for the :keyword:`with` statement was added." +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." + +#: ../Doc/library/smtplib.rst:61 ../Doc/library/smtplib.rst:90 +msgid "source_address argument was added." +msgstr "" + +#: ../Doc/library/smtplib.rst:64 +msgid "The SMTPUTF8 extension (:rfc:`6531`) is now supported." +msgstr "" + +#: ../Doc/library/smtplib.rst:72 +msgid "" +"An :class:`SMTP_SSL` instance behaves exactly the same as instances of :" +"class:`SMTP`. :class:`SMTP_SSL` should be used for situations where SSL is " +"required from the beginning of the connection and using :meth:`starttls` is " +"not appropriate. If *host* is not specified, the local host is used. If " +"*port* is zero, the standard SMTP-over-SSL port (465) is used. The optional " +"arguments *local_hostname*, *timeout* and *source_address* have the same " +"meaning as they do in the :class:`SMTP` class. *context*, also optional, " +"can contain a :class:`~ssl.SSLContext` and allows configuring various " +"aspects of the secure connection. Please read :ref:`ssl-security` for best " +"practices." +msgstr "" + +#: ../Doc/library/smtplib.rst:83 +msgid "" +"*keyfile* and *certfile* are a legacy alternative to *context*, and can " +"point to a PEM formatted private key and certificate chain file for the SSL " +"connection." +msgstr "" + +#: ../Doc/library/smtplib.rst:87 ../Doc/library/smtplib.rst:408 +msgid "*context* was added." +msgstr "" + +#: ../Doc/library/smtplib.rst:93 +msgid "" +"The class now supports hostname check with :attr:`ssl.SSLContext." +"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +msgstr "" + +#: ../Doc/library/smtplib.rst:100 ../Doc/library/smtplib.rst:394 +msgid "" +"*keyfile* and *certfile* are deprecated in favor of *context*. Please use :" +"meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." +"create_default_context` select the system's trusted CA certificates for you." +msgstr "" + +#: ../Doc/library/smtplib.rst:108 +msgid "" +"The LMTP protocol, which is very similar to ESMTP, is heavily based on the " +"standard SMTP client. It's common to use Unix sockets for LMTP, so our :meth:" +"`connect` method must support that as well as a regular host:port server. " +"The optional arguments local_hostname and source_address have the same " +"meaning as they do in the :class:`SMTP` class. To specify a Unix socket, you " +"must use an absolute path for *host*, starting with a '/'." +msgstr "" + +#: ../Doc/library/smtplib.rst:115 +msgid "" +"Authentication is supported, using the regular SMTP mechanism. When using a " +"Unix socket, LMTP generally don't support or require any authentication, but " +"your mileage might vary." +msgstr "" + +#: ../Doc/library/smtplib.rst:120 +msgid "A nice selection of exceptions is defined as well:" +msgstr "" + +#: ../Doc/library/smtplib.rst:125 +msgid "" +"Subclass of :exc:`OSError` that is the base exception class for all the " +"other exceptions provided by this module." +msgstr "" + +#: ../Doc/library/smtplib.rst:128 +msgid "SMTPException became subclass of :exc:`OSError`" +msgstr "" + +#: ../Doc/library/smtplib.rst:134 +msgid "" +"This exception is raised when the server unexpectedly disconnects, or when " +"an attempt is made to use the :class:`SMTP` instance before connecting it to " +"a server." +msgstr "" + +#: ../Doc/library/smtplib.rst:141 +msgid "" +"Base class for all exceptions that include an SMTP error code. These " +"exceptions are generated in some instances when the SMTP server returns an " +"error code. The error code is stored in the :attr:`smtp_code` attribute of " +"the error, and the :attr:`smtp_error` attribute is set to the error message." +msgstr "" + +#: ../Doc/library/smtplib.rst:149 +msgid "" +"Sender address refused. In addition to the attributes set by on all :exc:" +"`SMTPResponseException` exceptions, this sets 'sender' to the string that " +"the SMTP server refused." +msgstr "" + +#: ../Doc/library/smtplib.rst:156 +msgid "" +"All recipient addresses refused. The errors for each recipient are " +"accessible through the attribute :attr:`recipients`, which is a dictionary " +"of exactly the same sort as :meth:`SMTP.sendmail` returns." +msgstr "" + +#: ../Doc/library/smtplib.rst:163 +msgid "The SMTP server refused to accept the message data." +msgstr "" + +#: ../Doc/library/smtplib.rst:168 +msgid "Error occurred during establishment of a connection with the server." +msgstr "" + +#: ../Doc/library/smtplib.rst:173 +msgid "The server refused our ``HELO`` message." +msgstr "" + +#: ../Doc/library/smtplib.rst:178 +msgid "The command or option attempted is not supported by the server." +msgstr "" + +#: ../Doc/library/smtplib.rst:185 +msgid "" +"SMTP authentication went wrong. Most probably the server didn't accept the " +"username/password combination provided." +msgstr "" + +#: ../Doc/library/smtplib.rst:193 +msgid ":rfc:`821` - Simple Mail Transfer Protocol" +msgstr "" + +#: ../Doc/library/smtplib.rst:192 +msgid "" +"Protocol definition for SMTP. This document covers the model, operating " +"procedure, and protocol details for SMTP." +msgstr "" + +#: ../Doc/library/smtplib.rst:197 +msgid ":rfc:`1869` - SMTP Service Extensions" +msgstr "" + +#: ../Doc/library/smtplib.rst:196 +msgid "" +"Definition of the ESMTP extensions for SMTP. This describes a framework for " +"extending SMTP with new commands, supporting dynamic discovery of the " +"commands provided by the server, and defines a few additional commands." +msgstr "" + +#: ../Doc/library/smtplib.rst:204 +msgid "SMTP Objects" +msgstr "" + +#: ../Doc/library/smtplib.rst:206 +msgid "An :class:`SMTP` instance has the following methods:" +msgstr "" + +#: ../Doc/library/smtplib.rst:211 +msgid "" +"Set the debug output level. A value of 1 or ``True`` for *level* results in " +"debug messages for connection and for all messages sent to and received from " +"the server. A value of 2 for *level* results in these messages being " +"timestamped." +msgstr "" + +#: ../Doc/library/smtplib.rst:216 +msgid "Added debuglevel 2." +msgstr "" + +#: ../Doc/library/smtplib.rst:221 +msgid "" +"Send a command *cmd* to the server. The optional argument *args* is simply " +"concatenated to the command, separated by a space." +msgstr "" + +#: ../Doc/library/smtplib.rst:224 +msgid "" +"This returns a 2-tuple composed of a numeric response code and the actual " +"response line (multiline responses are joined into one long line.)" +msgstr "" + +#: ../Doc/library/smtplib.rst:227 +msgid "" +"In normal operation it should not be necessary to call this method " +"explicitly. It is used to implement other methods and may be useful for " +"testing private extensions." +msgstr "" + +#: ../Doc/library/smtplib.rst:231 +msgid "" +"If the connection to the server is lost while waiting for the reply, :exc:" +"`SMTPServerDisconnected` will be raised." +msgstr "" + +#: ../Doc/library/smtplib.rst:237 +msgid "" +"Connect to a host on a given port. The defaults are to connect to the local " +"host at the standard SMTP port (25). If the hostname ends with a colon " +"(``':'``) followed by a number, that suffix will be stripped off and the " +"number interpreted as the port number to use. This method is automatically " +"invoked by the constructor if a host is specified during instantiation. " +"Returns a 2-tuple of the response code and message sent by the server in its " +"connection response." +msgstr "" + +#: ../Doc/library/smtplib.rst:248 +msgid "" +"Identify yourself to the SMTP server using ``HELO``. The hostname argument " +"defaults to the fully qualified domain name of the local host. The message " +"returned by the server is stored as the :attr:`helo_resp` attribute of the " +"object." +msgstr "" + +#: ../Doc/library/smtplib.rst:253 +msgid "" +"In normal operation it should not be necessary to call this method " +"explicitly. It will be implicitly called by the :meth:`sendmail` when " +"necessary." +msgstr "" + +#: ../Doc/library/smtplib.rst:259 +msgid "" +"Identify yourself to an ESMTP server using ``EHLO``. The hostname argument " +"defaults to the fully qualified domain name of the local host. Examine the " +"response for ESMTP option and store them for use by :meth:`has_extn`. Also " +"sets several informational attributes: the message returned by the server is " +"stored as the :attr:`ehlo_resp` attribute, :attr:`does_esmtp` is set to true " +"or false depending on whether the server supports ESMTP, and :attr:" +"`esmtp_features` will be a dictionary containing the names of the SMTP " +"service extensions this server supports, and their parameters (if any)." +msgstr "" + +#: ../Doc/library/smtplib.rst:268 +msgid "" +"Unless you wish to use :meth:`has_extn` before sending mail, it should not " +"be necessary to call this method explicitly. It will be implicitly called " +"by :meth:`sendmail` when necessary." +msgstr "" + +#: ../Doc/library/smtplib.rst:274 +msgid "" +"This method calls :meth:`ehlo` and/or :meth:`helo` if there has been no " +"previous ``EHLO`` or ``HELO`` command this session. It tries ESMTP ``EHLO`` " +"first." +msgstr "" + +#: ../Doc/library/smtplib.rst:278 ../Doc/library/smtplib.rst:308 +#: ../Doc/library/smtplib.rst:400 ../Doc/library/smtplib.rst:469 +msgid ":exc:`SMTPHeloError`" +msgstr ":exc:`SMTPHeloError`" + +#: ../Doc/library/smtplib.rst:279 ../Doc/library/smtplib.rst:308 +#: ../Doc/library/smtplib.rst:400 ../Doc/library/smtplib.rst:469 +msgid "The server didn't reply properly to the ``HELO`` greeting." +msgstr "" + +#: ../Doc/library/smtplib.rst:283 +msgid "" +"Return :const:`True` if *name* is in the set of SMTP service extensions " +"returned by the server, :const:`False` otherwise. Case is ignored." +msgstr "" + +#: ../Doc/library/smtplib.rst:289 +msgid "" +"Check the validity of an address on this server using SMTP ``VRFY``. Returns " +"a tuple consisting of code 250 and a full :rfc:`822` address (including " +"human name) if the user address is valid. Otherwise returns an SMTP error " +"code of 400 or greater and an error string." +msgstr "" + +#: ../Doc/library/smtplib.rst:296 +msgid "Many sites disable SMTP ``VRFY`` in order to foil spammers." +msgstr "" + +#: ../Doc/library/smtplib.rst:301 +msgid "" +"Log in on an SMTP server that requires authentication. The arguments are the " +"username and the password to authenticate with. If there has been no " +"previous ``EHLO`` or ``HELO`` command this session, this method tries ESMTP " +"``EHLO`` first. This method will return normally if the authentication was " +"successful, or may raise the following exceptions:" +msgstr "" + +#: ../Doc/library/smtplib.rst:311 +msgid ":exc:`SMTPAuthenticationError`" +msgstr ":exc:`SMTPAuthenticationError`" + +#: ../Doc/library/smtplib.rst:311 +msgid "The server didn't accept the username/password combination." +msgstr "" + +#: ../Doc/library/smtplib.rst:314 ../Doc/library/smtplib.rst:403 +#: ../Doc/library/smtplib.rst:480 +msgid ":exc:`SMTPNotSupportedError`" +msgstr "" + +#: ../Doc/library/smtplib.rst:314 +msgid "The ``AUTH`` command is not supported by the server." +msgstr "" + +#: ../Doc/library/smtplib.rst:317 +msgid ":exc:`SMTPException`" +msgstr ":exc:`SMTPException`" + +#: ../Doc/library/smtplib.rst:317 +msgid "No suitable authentication method was found." +msgstr "" + +#: ../Doc/library/smtplib.rst:319 +msgid "" +"Each of the authentication methods supported by :mod:`smtplib` are tried in " +"turn if they are advertised as supported by the server. See :meth:`auth` " +"for a list of supported authentication methods. *initial_response_ok* is " +"passed through to :meth:`auth`." +msgstr "" + +#: ../Doc/library/smtplib.rst:324 +msgid "" +"Optional keyword argument *initial_response_ok* specifies whether, for " +"authentication methods that support it, an \"initial response\" as specified " +"in :rfc:`4954` can be sent along with the ``AUTH`` command, rather than " +"requiring a challenge/response." +msgstr "" + +#: ../Doc/library/smtplib.rst:329 +msgid "" +":exc:`SMTPNotSupportedError` may be raised, and the *initial_response_ok* " +"parameter was added." +msgstr "" + +#: ../Doc/library/smtplib.rst:336 +msgid "" +"Issue an ``SMTP`` ``AUTH`` command for the specified authentication " +"*mechanism*, and handle the challenge response via *authobject*." +msgstr "" + +#: ../Doc/library/smtplib.rst:339 +msgid "" +"*mechanism* specifies which authentication mechanism is to be used as " +"argument to the ``AUTH`` command; the valid values are those listed in the " +"``auth`` element of :attr:`esmtp_features`." +msgstr "" + +#: ../Doc/library/smtplib.rst:343 +msgid "" +"*authobject* must be a callable object taking an optional single argument:" +msgstr "" + +#: ../Doc/library/smtplib.rst:345 +msgid "data = authobject(challenge=None)" +msgstr "" + +#: ../Doc/library/smtplib.rst:347 +msgid "" +"If optional keyword argument *initial_response_ok* is true, ``authobject()`` " +"will be called first with no argument. It can return the :rfc:`4954` " +"\"initial response\" ASCII ``str`` which will be encoded and sent with the " +"``AUTH`` command as below. If the ``authobject()`` does not support an " +"initial response (e.g. because it requires a challenge), it should return " +"``None`` when called with ``challenge=None``. If *initial_response_ok* is " +"false, then ``authobject()`` will not be called first with ``None``." +msgstr "" + +#: ../Doc/library/smtplib.rst:355 +msgid "" +"If the initial response check returns ``None``, or if *initial_response_ok* " +"is false, ``authobject()`` will be called to process the server's challenge " +"response; the *challenge* argument it is passed will be a ``bytes``. It " +"should return ASCII ``str`` *data* that will be base64 encoded and sent to " +"the server." +msgstr "" + +#: ../Doc/library/smtplib.rst:361 +msgid "" +"The ``SMTP`` class provides ``authobjects`` for the ``CRAM-MD5``, ``PLAIN``, " +"and ``LOGIN`` mechanisms; they are named ``SMTP.auth_cram_md5``, ``SMTP." +"auth_plain``, and ``SMTP.auth_login`` respectively. They all require that " +"the ``user`` and ``password`` properties of the ``SMTP`` instance are set to " +"appropriate values." +msgstr "" + +#: ../Doc/library/smtplib.rst:367 +msgid "" +"User code does not normally need to call ``auth`` directly, but can instead " +"call the :meth:`login` method, which will try each of the above mechanisms " +"in turn, in the order listed. ``auth`` is exposed to facilitate the " +"implementation of authentication methods not (or not yet) supported directly " +"by :mod:`smtplib`." +msgstr "" + +#: ../Doc/library/smtplib.rst:378 +msgid "" +"Put the SMTP connection in TLS (Transport Layer Security) mode. All SMTP " +"commands that follow will be encrypted. You should then call :meth:`ehlo` " +"again." +msgstr "" + +#: ../Doc/library/smtplib.rst:382 +msgid "" +"If *keyfile* and *certfile* are provided, they are used to create an :class:" +"`ssl.SSLContext`." +msgstr "" + +#: ../Doc/library/smtplib.rst:385 +msgid "" +"Optional *context* parameter is an :class:`ssl.SSLContext` object; This is " +"an alternative to using a keyfile and a certfile and if specified both " +"*keyfile* and *certfile* should be ``None``." +msgstr "" + +#: ../Doc/library/smtplib.rst:389 +msgid "" +"If there has been no previous ``EHLO`` or ``HELO`` command this session, " +"this method tries ESMTP ``EHLO`` first." +msgstr "" + +#: ../Doc/library/smtplib.rst:403 +msgid "The server does not support the STARTTLS extension." +msgstr "" + +#: ../Doc/library/smtplib.rst:406 +msgid ":exc:`RuntimeError`" +msgstr ":exc:`RuntimeError`" + +#: ../Doc/library/smtplib.rst:406 +msgid "SSL/TLS support is not available to your Python interpreter." +msgstr "" + +#: ../Doc/library/smtplib.rst:411 +msgid "" +"The method now supports hostname check with :attr:`SSLContext." +"check_hostname` and *Server Name Indicator* (see :data:`~ssl.HAS_SNI`)." +msgstr "" + +#: ../Doc/library/smtplib.rst:416 +msgid "" +"The error raised for lack of STARTTLS support is now the :exc:" +"`SMTPNotSupportedError` subclass instead of the base :exc:`SMTPException`." +msgstr "" + +#: ../Doc/library/smtplib.rst:424 +msgid "" +"Send mail. The required arguments are an :rfc:`822` from-address string, a " +"list of :rfc:`822` to-address strings (a bare string will be treated as a " +"list with 1 address), and a message string. The caller may pass a list of " +"ESMTP options (such as ``8bitmime``) to be used in ``MAIL FROM`` commands as " +"*mail_options*. ESMTP options (such as ``DSN`` commands) that should be used " +"with all ``RCPT`` commands can be passed as *rcpt_options*. (If you need to " +"use different ESMTP options to different recipients you have to use the low-" +"level methods such as :meth:`mail`, :meth:`rcpt` and :meth:`data` to send " +"the message.)" +msgstr "" + +#: ../Doc/library/smtplib.rst:435 +msgid "" +"The *from_addr* and *to_addrs* parameters are used to construct the message " +"envelope used by the transport agents. ``sendmail`` does not modify the " +"message headers in any way." +msgstr "" + +#: ../Doc/library/smtplib.rst:439 +msgid "" +"*msg* may be a string containing characters in the ASCII range, or a byte " +"string. A string is encoded to bytes using the ascii codec, and lone ``" +"\\r`` and ``\\n`` characters are converted to ``\\r\\n`` characters. A byte " +"string is not modified." +msgstr "" + +#: ../Doc/library/smtplib.rst:444 +msgid "" +"If there has been no previous ``EHLO`` or ``HELO`` command this session, " +"this method tries ESMTP ``EHLO`` first. If the server does ESMTP, message " +"size and each of the specified options will be passed to it (if the option " +"is in the feature set the server advertises). If ``EHLO`` fails, ``HELO`` " +"will be tried and ESMTP options suppressed." +msgstr "" + +#: ../Doc/library/smtplib.rst:450 +msgid "" +"This method will return normally if the mail is accepted for at least one " +"recipient. Otherwise it will raise an exception. That is, if this method " +"does not raise an exception, then someone should get your mail. If this " +"method does not raise an exception, it returns a dictionary, with one entry " +"for each recipient that was refused. Each entry contains a tuple of the " +"SMTP error code and the accompanying error message sent by the server." +msgstr "" + +#: ../Doc/library/smtplib.rst:457 +msgid "" +"If ``SMTPUTF8`` is included in *mail_options*, and the server supports it, " +"*from_addr* and *to_addrs* may contain non-ASCII characters." +msgstr "" + +#: ../Doc/library/smtplib.rst:460 +msgid "This method may raise the following exceptions:" +msgstr "" + +#: ../Doc/library/smtplib.rst:466 +msgid ":exc:`SMTPRecipientsRefused`" +msgstr "" + +#: ../Doc/library/smtplib.rst:463 +msgid "" +"All recipients were refused. Nobody got the mail. The :attr:`recipients` " +"attribute of the exception object is a dictionary with information about the " +"refused recipients (like the one returned when at least one recipient was " +"accepted)." +msgstr "" + +#: ../Doc/library/smtplib.rst:472 +msgid ":exc:`SMTPSenderRefused`" +msgstr "" + +#: ../Doc/library/smtplib.rst:472 +msgid "The server didn't accept the *from_addr*." +msgstr "" + +#: ../Doc/library/smtplib.rst:476 +msgid ":exc:`SMTPDataError`" +msgstr ":exc:`SMTPDataError`" + +#: ../Doc/library/smtplib.rst:475 +msgid "" +"The server replied with an unexpected error code (other than a refusal of a " +"recipient)." +msgstr "" + +#: ../Doc/library/smtplib.rst:479 +msgid "" +"``SMTPUTF8`` was given in the *mail_options* but is not supported by the " +"server." +msgstr "" + +#: ../Doc/library/smtplib.rst:482 +msgid "" +"Unless otherwise noted, the connection will be open even after an exception " +"is raised." +msgstr "" + +#: ../Doc/library/smtplib.rst:485 +msgid "*msg* may be a byte string." +msgstr "" + +#: ../Doc/library/smtplib.rst:488 +msgid "" +"``SMTPUTF8`` support added, and :exc:`SMTPNotSupportedError` may be raised " +"if ``SMTPUTF8`` is specified but the server does not support it." +msgstr "" + +#: ../Doc/library/smtplib.rst:496 +msgid "" +"This is a convenience method for calling :meth:`sendmail` with the message " +"represented by an :class:`email.message.Message` object. The arguments have " +"the same meaning as for :meth:`sendmail`, except that *msg* is a ``Message`` " +"object." +msgstr "" + +#: ../Doc/library/smtplib.rst:501 +msgid "" +"If *from_addr* is ``None`` or *to_addrs* is ``None``, ``send_message`` fills " +"those arguments with addresses extracted from the headers of *msg* as " +"specified in :rfc:`5322`\\: *from_addr* is set to the :mailheader:`Sender` " +"field if it is present, and otherwise to the :mailheader:`From` field. " +"*to_addrs* combines the values (if any) of the :mailheader:`To`, :mailheader:" +"`Cc`, and :mailheader:`Bcc` fields from *msg*. If exactly one set of :" +"mailheader:`Resent-*` headers appear in the message, the regular headers are " +"ignored and the :mailheader:`Resent-*` headers are used instead. If the " +"message contains more than one set of :mailheader:`Resent-*` headers, a :exc:" +"`ValueError` is raised, since there is no way to unambiguously detect the " +"most recent set of :mailheader:`Resent-` headers." +msgstr "" + +#: ../Doc/library/smtplib.rst:513 +msgid "" +"``send_message`` serializes *msg* using :class:`~email.generator." +"BytesGenerator` with ``\\r\\n`` as the *linesep*, and calls :meth:`sendmail` " +"to transmit the resulting message. Regardless of the values of *from_addr* " +"and *to_addrs*, ``send_message`` does not transmit any :mailheader:`Bcc` or :" +"mailheader:`Resent-Bcc` headers that may appear in *msg*. If any of the " +"addresses in *from_addr* and *to_addrs* contain non-ASCII characters and the " +"server does not advertise ``SMTPUTF8`` support, an :exc:`SMTPNotSupported` " +"error is raised. Otherwise the ``Message`` is serialized with a clone of " +"its :mod:`~email.policy` with the :attr:`~email.policy.EmailPolicy.utf8` " +"attribute set to ``True``, and ``SMTPUTF8`` and ``BODY=8BITMIME`` are added " +"to *mail_options*." +msgstr "" + +#: ../Doc/library/smtplib.rst:527 +msgid "Support for internationalized addresses (``SMTPUTF8``)." +msgstr "" + +#: ../Doc/library/smtplib.rst:533 +msgid "" +"Terminate the SMTP session and close the connection. Return the result of " +"the SMTP ``QUIT`` command." +msgstr "" + +#: ../Doc/library/smtplib.rst:537 +msgid "" +"Low-level methods corresponding to the standard SMTP/ESMTP commands " +"``HELP``, ``RSET``, ``NOOP``, ``MAIL``, ``RCPT``, and ``DATA`` are also " +"supported. Normally these do not need to be called directly, so they are not " +"documented here. For details, consult the module code." +msgstr "" + +#: ../Doc/library/smtplib.rst:546 +msgid "SMTP Example" +msgstr "" + +#: ../Doc/library/smtplib.rst:548 +msgid "" +"This example prompts the user for addresses needed in the message envelope " +"('To' and 'From' addresses), and the message to be delivered. Note that the " +"headers to be included with the message must be included in the message as " +"entered; this example doesn't do any processing of the :rfc:`822` headers. " +"In particular, the 'To' and 'From' addresses must be included in the message " +"headers explicitly. ::" +msgstr "" + +#: ../Doc/library/smtplib.rst:584 +msgid "" +"In general, you will want to use the :mod:`email` package's features to " +"construct an email message, which you can then send via :meth:`~smtplib.SMTP." +"send_message`; see :ref:`email-examples`." +msgstr "" diff --git a/library/sndhdr.po b/library/sndhdr.po new file mode 100644 index 000000000..e659306c9 --- /dev/null +++ b/library/sndhdr.po @@ -0,0 +1,80 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-29 17:46+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/sndhdr.rst:2 +msgid ":mod:`sndhdr` --- Determine type of sound file" +msgstr ":mod:`sndhdr` — Détermine le type d'un fichier audio" + +#: ../Doc/library/sndhdr.rst:10 +msgid "**Source code:** :source:`Lib/sndhdr.py`" +msgstr "**Code source :** :source:`Lib/sndhdr.py`" + +#: ../Doc/library/sndhdr.rst:18 +msgid "" +"The :mod:`sndhdr` provides utility functions which attempt to determine the " +"type of sound data which is in a file. When these functions are able to " +"determine what type of sound data is stored in a file, they return a :func:" +"`~collections.namedtuple`, containing five attributes: (``filetype``, " +"``framerate``, ``nchannels``, ``nframes``, ``sampwidth``). The value for " +"*type* indicates the data type and will be one of the strings ``'aifc'``, " +"``'aiff'``, ``'au'``, ``'hcom'``, ``'sndr'``, ``'sndt'``, ``'voc'``, " +"``'wav'``, ``'8svx'``, ``'sb'``, ``'ub'``, or ``'ul'``. The *sampling_rate* " +"will be either the actual value or ``0`` if unknown or difficult to decode. " +"Similarly, *channels* will be either the number of channels or ``0`` if it " +"cannot be determined or if the value is difficult to decode. The value for " +"*frames* will be either the number of frames or ``-1``. The last item in " +"the tuple, *bits_per_sample*, will either be the sample size in bits or " +"``'A'`` for A-LAW or ``'U'`` for u-LAW." +msgstr "" +"Le module :mod:`sndhdr` fournit des fonctions permettant d'essayer de " +"déterminer le type de données audio contenues dans un fichier. Lorsque ces " +"fonctions parviennent à déterminer le format de données, elles renvoient un :" +"func:`~collections.namedtuple`, contenant cinq attributs : (``filetype``, " +"``framerate``, ``nchannels``, ``nframes``, ``sampwidth``). La valeur de " +"*type* indique le format de données parmi ``'aifc'``, ``'aiff'``, ``'au'``, " +"``'hcom'``, ``'sndr'``, ``'sndt'``, ``'voc'``, ``'wav'``, ``'8svx'``, " +"``'sb'``, ``'ub'``, et ``'ul'``. La valeur de *sampling_rate* sera soit la " +"vraie valeur, soit, si elle est inconnue ou compliquée à obtenir, ``0``. De " +"même, *channels* vaut soit le nombre de canaux soit ``0`` s'il ne peut pas " +"être déterminé ou si la valeur est compliquée à décoder. La valeur de " +"*frames* sera soit le nombre de *frames* soit ``-1``. Le dernier élément du " +"tuple, *bits_per_sample* sera soit la taille d'un échantillon en bits, soit " +"``'A'`` pour *A-LAW* ou ``'U'`` pour *u-LAW*." + +#: ../Doc/library/sndhdr.rst:35 +msgid "" +"Determines the type of sound data stored in the file *filename* using :func:" +"`whathdr`. If it succeeds, returns a namedtuple as described above, " +"otherwise ``None`` is returned." +msgstr "" +"Détermine le type de données audio stockée dans le fichier *filename* en " +"utilisant :func:`whathdr`. Si elle y parvient, le *namedtuple* décrit plus " +"haut est renvoyé, sinon, ``None``." + +#: ../Doc/library/sndhdr.rst:39 ../Doc/library/sndhdr.rst:49 +msgid "Result changed from a tuple to a namedtuple." +msgstr "Le type renvoyé passe d'un *tuple* à un *namedtuple*." + +#: ../Doc/library/sndhdr.rst:45 +msgid "" +"Determines the type of sound data stored in a file based on the file " +"header. The name of the file is given by *filename*. This function returns " +"a namedtuple as described above on success, or ``None``." +msgstr "" +"Détermine le type de données audio contenue dans un fichier, en se basant " +"sur ses entêtes. Le nom du fichier est donné par *filename*. Cette fonction " +"renvoie un *namedtuple* tel que décrit plus haut, si elle y parvient, sinon " +"``None``." diff --git a/library/socket.po b/library/socket.po new file mode 100644 index 000000000..5b976c082 --- /dev/null +++ b/library/socket.po @@ -0,0 +1,1891 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-06-18 21:59+0200\n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/socket.rst:2 +msgid ":mod:`socket` --- Low-level networking interface" +msgstr ":mod:`socket` — Gestion réseau de bas niveau" + +#: ../Doc/library/socket.rst:7 +msgid "**Source code:** :source:`Lib/socket.py`" +msgstr "**Code source :** :source:`Lib/secrets.py`" + +#: ../Doc/library/socket.rst:11 +msgid "" +"This module provides access to the BSD *socket* interface. It is available " +"on all modern Unix systems, Windows, MacOS, and probably additional " +"platforms." +msgstr "" + +#: ../Doc/library/socket.rst:16 +msgid "" +"Some behavior may be platform dependent, since calls are made to the " +"operating system socket APIs." +msgstr "" + +#: ../Doc/library/socket.rst:21 +msgid "" +"The Python interface is a straightforward transliteration of the Unix system " +"call and library interface for sockets to Python's object-oriented style: " +"the :func:`.socket` function returns a :dfn:`socket object` whose methods " +"implement the various socket system calls. Parameter types are somewhat " +"higher-level than in the C interface: as with :meth:`read` and :meth:`write` " +"operations on Python files, buffer allocation on receive operations is " +"automatic, and buffer length is implicit on send operations." +msgstr "" + +#: ../Doc/library/socket.rst:33 +msgid "Module :mod:`socketserver`" +msgstr "" + +#: ../Doc/library/socket.rst:33 +msgid "Classes that simplify writing network servers." +msgstr "" + +#: ../Doc/library/socket.rst:35 +msgid "Module :mod:`ssl`" +msgstr "" + +#: ../Doc/library/socket.rst:36 +msgid "A TLS/SSL wrapper for socket objects." +msgstr "" + +#: ../Doc/library/socket.rst:40 +msgid "Socket families" +msgstr "" + +#: ../Doc/library/socket.rst:42 +msgid "" +"Depending on the system and the build options, various socket families are " +"supported by this module." +msgstr "" + +#: ../Doc/library/socket.rst:45 +msgid "" +"The address format required by a particular socket object is automatically " +"selected based on the address family specified when the socket object was " +"created. Socket addresses are represented as follows:" +msgstr "" + +#: ../Doc/library/socket.rst:49 +msgid "" +"The address of an :const:`AF_UNIX` socket bound to a file system node is " +"represented as a string, using the file system encoding and the " +"``'surrogateescape'`` error handler (see :pep:`383`). An address in Linux's " +"abstract namespace is returned as a :term:`bytes-like object` with an " +"initial null byte; note that sockets in this namespace can communicate with " +"normal file system sockets, so programs intended to run on Linux may need to " +"deal with both types of address. A string or bytes-like object can be used " +"for either type of address when passing it as an argument." +msgstr "" + +#: ../Doc/library/socket.rst:59 +msgid "" +"Previously, :const:`AF_UNIX` socket paths were assumed to use UTF-8 encoding." +msgstr "" + +#: ../Doc/library/socket.rst:63 ../Doc/library/socket.rst:837 +#: ../Doc/library/socket.rst:879 ../Doc/library/socket.rst:1543 +msgid "Writable :term:`bytes-like object` is now accepted." +msgstr "N'importe quel :term:`bytes-like object` est maintenant accepté." + +#: ../Doc/library/socket.rst:68 +msgid "" +"A pair ``(host, port)`` is used for the :const:`AF_INET` address family, " +"where *host* is a string representing either a hostname in Internet domain " +"notation like ``'daring.cwi.nl'`` or an IPv4 address like " +"``'100.50.200.5'``, and *port* is an integer." +msgstr "" + +#: ../Doc/library/socket.rst:73 +msgid "" +"For IPv4 addresses, two special forms are accepted instead of a host " +"address: ``''`` represents :const:`INADDR_ANY`, which is used to bind to all " +"interfaces, and the string ``''`` represents :const:" +"`INADDR_BROADCAST`. This behavior is not compatible with IPv6, therefore, " +"you may want to avoid these if you intend to support IPv6 with your Python " +"programs." +msgstr "" + +#: ../Doc/library/socket.rst:80 +msgid "" +"For :const:`AF_INET6` address family, a four-tuple ``(host, port, flowinfo, " +"scopeid)`` is used, where *flowinfo* and *scopeid* represent the " +"``sin6_flowinfo`` and ``sin6_scope_id`` members in :const:`struct " +"sockaddr_in6` in C. For :mod:`socket` module methods, *flowinfo* and " +"*scopeid* can be omitted just for backward compatibility. Note, however, " +"omission of *scopeid* can cause problems in manipulating scoped IPv6 " +"addresses." +msgstr "" + +#: ../Doc/library/socket.rst:87 +msgid "" +"For multicast addresses (with *scopeid* meaningful) *address* may not " +"contain ``%scope`` (or ``zone id``) part. This information is superfluous " +"and may be safely omitted (recommended)." +msgstr "" + +#: ../Doc/library/socket.rst:92 +msgid ":const:`AF_NETLINK` sockets are represented as pairs ``(pid, groups)``." +msgstr "" + +#: ../Doc/library/socket.rst:94 +msgid "" +"Linux-only support for TIPC is available using the :const:`AF_TIPC` address " +"family. TIPC is an open, non-IP based networked protocol designed for use " +"in clustered computer environments. Addresses are represented by a tuple, " +"and the fields depend on the address type. The general tuple form is " +"``(addr_type, v1, v2, v3 [, scope])``, where:" +msgstr "" + +#: ../Doc/library/socket.rst:100 +msgid "" +"*addr_type* is one of :const:`TIPC_ADDR_NAMESEQ`, :const:`TIPC_ADDR_NAME`, " +"or :const:`TIPC_ADDR_ID`." +msgstr "" + +#: ../Doc/library/socket.rst:102 +msgid "" +"*scope* is one of :const:`TIPC_ZONE_SCOPE`, :const:`TIPC_CLUSTER_SCOPE`, " +"and :const:`TIPC_NODE_SCOPE`." +msgstr "" + +#: ../Doc/library/socket.rst:104 +msgid "" +"If *addr_type* is :const:`TIPC_ADDR_NAME`, then *v1* is the server type, " +"*v2* is the port identifier, and *v3* should be 0." +msgstr "" + +#: ../Doc/library/socket.rst:107 +msgid "" +"If *addr_type* is :const:`TIPC_ADDR_NAMESEQ`, then *v1* is the server type, " +"*v2* is the lower port number, and *v3* is the upper port number." +msgstr "" + +#: ../Doc/library/socket.rst:110 +msgid "" +"If *addr_type* is :const:`TIPC_ADDR_ID`, then *v1* is the node, *v2* is the " +"reference, and *v3* should be set to 0." +msgstr "" + +#: ../Doc/library/socket.rst:113 +msgid "" +"A tuple ``(interface, )`` is used for the :const:`AF_CAN` address family, " +"where *interface* is a string representing a network interface name like " +"``'can0'``. The network interface name ``''`` can be used to receive packets " +"from all network interfaces of this family." +msgstr "" + +#: ../Doc/library/socket.rst:118 +msgid "" +":const:`CAN_ISOTP` protocol require a tuple ``(interface, rx_addr, " +"tx_addr)`` where both additional parameters are unsigned long integer that " +"represent a CAN identifier (standard or extended)." +msgstr "" + +#: ../Doc/library/socket.rst:122 +msgid "" +"A string or a tuple ``(id, unit)`` is used for the :const:`SYSPROTO_CONTROL` " +"protocol of the :const:`PF_SYSTEM` family. The string is the name of a " +"kernel control using a dynamically-assigned ID. The tuple can be used if ID " +"and unit number of the kernel control are known or if a registered ID is " +"used." +msgstr "" + +#: ../Doc/library/socket.rst:130 +msgid "" +":const:`AF_BLUETOOTH` supports the following protocols and address formats:" +msgstr "" + +#: ../Doc/library/socket.rst:133 +msgid "" +":const:`BTPROTO_L2CAP` accepts ``(bdaddr, psm)`` where ``bdaddr`` is the " +"Bluetooth address as a string and ``psm`` is an integer." +msgstr "" + +#: ../Doc/library/socket.rst:136 +msgid "" +":const:`BTPROTO_RFCOMM` accepts ``(bdaddr, channel)`` where ``bdaddr`` is " +"the Bluetooth address as a string and ``channel`` is an integer." +msgstr "" + +#: ../Doc/library/socket.rst:139 +msgid "" +":const:`BTPROTO_HCI` accepts ``(device_id,)`` where ``device_id`` is either " +"an integer or a string with the Bluetooth address of the interface. (This " +"depends on your OS; NetBSD and DragonFlyBSD expect a Bluetooth address while " +"everything else expects an integer.)" +msgstr "" + +#: ../Doc/library/socket.rst:144 +msgid "NetBSD and DragonFlyBSD support added." +msgstr "" + +#: ../Doc/library/socket.rst:147 +msgid "" +":const:`BTPROTO_SCO` accepts ``bdaddr`` where ``bdaddr`` is a :class:`bytes` " +"object containing the Bluetooth address in a string format. (ex. " +"``b'12:23:34:45:56:67'``) This protocol is not supported under FreeBSD." +msgstr "" + +#: ../Doc/library/socket.rst:152 +msgid "" +":const:`AF_ALG` is a Linux-only socket based interface to Kernel " +"cryptography. An algorithm socket is configured with a tuple of two to four " +"elements ``(type, name [, feat [, mask]])``, where:" +msgstr "" + +#: ../Doc/library/socket.rst:156 +msgid "" +"*type* is the algorithm type as string, e.g. ``aead``, ``hash``, " +"``skcipher`` or ``rng``." +msgstr "" + +#: ../Doc/library/socket.rst:159 +msgid "" +"*name* is the algorithm name and operation mode as string, e.g. ``sha256``, " +"``hmac(sha256)``, ``cbc(aes)`` or ``drbg_nopr_ctr_aes256``." +msgstr "" + +#: ../Doc/library/socket.rst:162 +msgid "*feat* and *mask* are unsigned 32bit integers." +msgstr "" + +#: ../Doc/library/socket.rst:168 +msgid "" +":const:`AF_VSOCK` allows communication between virtual machines and their " +"hosts. The sockets are represented as a ``(CID, port)`` tuple where the " +"context ID or CID and port are integers." +msgstr "" + +#: ../Doc/library/socket.rst:176 +msgid "" +":const:`AF_PACKET` is a low-level interface directly to network devices. The " +"packets are represented by the tuple ``(ifname, proto[, pkttype[, hatype[, " +"addr]]])`` where:" +msgstr "" + +#: ../Doc/library/socket.rst:180 +msgid "*ifname* - String specifying the device name." +msgstr "" + +#: ../Doc/library/socket.rst:181 +msgid "" +"*proto* - An in network-byte-order integer specifying the Ethernet protocol " +"number." +msgstr "" + +#: ../Doc/library/socket.rst:183 +msgid "*pkttype* - Optional integer specifying the packet type:" +msgstr "" + +#: ../Doc/library/socket.rst:185 +msgid "``PACKET_HOST`` (the default) - Packet addressed to the local host." +msgstr "" + +#: ../Doc/library/socket.rst:186 +msgid "``PACKET_BROADCAST`` - Physical-layer broadcast packet." +msgstr "" + +#: ../Doc/library/socket.rst:187 +msgid "" +"``PACKET_MULTIHOST`` - Packet sent to a physical-layer multicast address." +msgstr "" + +#: ../Doc/library/socket.rst:188 +msgid "" +"``PACKET_OTHERHOST`` - Packet to some other host that has been caught by a " +"device driver in promiscuous mode." +msgstr "" + +#: ../Doc/library/socket.rst:190 +msgid "" +"``PACKET_OUTGOING`` - Packet originating from the local host that is looped " +"back to a packet socket." +msgstr "" + +#: ../Doc/library/socket.rst:192 +msgid "*hatype* - Optional integer specifying the ARP hardware address type." +msgstr "" + +#: ../Doc/library/socket.rst:193 +msgid "" +"*addr* - Optional bytes-like object specifying the hardware physical " +"address, whose interpretation depends on the device." +msgstr "" + +#: ../Doc/library/socket.rst:196 +msgid "" +"If you use a hostname in the *host* portion of IPv4/v6 socket address, the " +"program may show a nondeterministic behavior, as Python uses the first " +"address returned from the DNS resolution. The socket address will be " +"resolved differently into an actual IPv4/v6 address, depending on the " +"results from DNS resolution and/or the host configuration. For " +"deterministic behavior use a numeric address in *host* portion." +msgstr "" + +#: ../Doc/library/socket.rst:203 +msgid "" +"All errors raise exceptions. The normal exceptions for invalid argument " +"types and out-of-memory conditions can be raised; starting from Python 3.3, " +"errors related to socket or address semantics raise :exc:`OSError` or one of " +"its subclasses (they used to raise :exc:`socket.error`)." +msgstr "" + +#: ../Doc/library/socket.rst:208 +msgid "" +"Non-blocking mode is supported through :meth:`~socket.setblocking`. A " +"generalization of this based on timeouts is supported through :meth:`~socket." +"settimeout`." +msgstr "" + +#: ../Doc/library/socket.rst:214 +msgid "Module contents" +msgstr "" + +#: ../Doc/library/socket.rst:216 +msgid "The module :mod:`socket` exports the following elements." +msgstr "" + +#: ../Doc/library/socket.rst:220 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/socket.rst:224 +msgid "A deprecated alias of :exc:`OSError`." +msgstr "" + +#: ../Doc/library/socket.rst:226 +msgid "Following :pep:`3151`, this class was made an alias of :exc:`OSError`." +msgstr "" + +#: ../Doc/library/socket.rst:232 +msgid "" +"A subclass of :exc:`OSError`, this exception is raised for address-related " +"errors, i.e. for functions that use *h_errno* in the POSIX C API, including :" +"func:`gethostbyname_ex` and :func:`gethostbyaddr`. The accompanying value is " +"a pair ``(h_errno, string)`` representing an error returned by a library " +"call. *h_errno* is a numeric value, while *string* represents the " +"description of *h_errno*, as returned by the :c:func:`hstrerror` C function." +msgstr "" + +#: ../Doc/library/socket.rst:240 ../Doc/library/socket.rst:253 +#: ../Doc/library/socket.rst:264 +msgid "This class was made a subclass of :exc:`OSError`." +msgstr "" + +#: ../Doc/library/socket.rst:245 +msgid "" +"A subclass of :exc:`OSError`, this exception is raised for address-related " +"errors by :func:`getaddrinfo` and :func:`getnameinfo`. The accompanying " +"value is a pair ``(error, string)`` representing an error returned by a " +"library call. *string* represents the description of *error*, as returned " +"by the :c:func:`gai_strerror` C function. The numeric *error* value will " +"match one of the :const:`EAI_\\*` constants defined in this module." +msgstr "" + +#: ../Doc/library/socket.rst:258 +msgid "" +"A subclass of :exc:`OSError`, this exception is raised when a timeout occurs " +"on a socket which has had timeouts enabled via a prior call to :meth:" +"`~socket.settimeout` (or implicitly through :func:`~socket." +"setdefaulttimeout`). The accompanying value is a string whose value is " +"currently always \"timed out\"." +msgstr "" + +#: ../Doc/library/socket.rst:269 +msgid "Constants" +msgstr "Constantes" + +#: ../Doc/library/socket.rst:271 +msgid "" +"The AF_* and SOCK_* constants are now :class:`AddressFamily` and :class:" +"`SocketKind` :class:`.IntEnum` collections." +msgstr "" + +#: ../Doc/library/socket.rst:280 +msgid "" +"These constants represent the address (and protocol) families, used for the " +"first argument to :func:`.socket`. If the :const:`AF_UNIX` constant is not " +"defined then this protocol is unsupported. More constants may be available " +"depending on the system." +msgstr "" + +#: ../Doc/library/socket.rst:292 +msgid "" +"These constants represent the socket types, used for the second argument to :" +"func:`.socket`. More constants may be available depending on the system. " +"(Only :const:`SOCK_STREAM` and :const:`SOCK_DGRAM` appear to be generally " +"useful.)" +msgstr "" + +#: ../Doc/library/socket.rst:300 +msgid "" +"These two constants, if defined, can be combined with the socket types and " +"allow you to set some flags atomically (thus avoiding possible race " +"conditions and the need for separate calls)." +msgstr "" + +#: ../Doc/library/socket.rst:306 +msgid "" +"`Secure File Descriptor Handling `_ for a more thorough explanation." +msgstr "" + +#: ../Doc/library/socket.rst:310 +msgid ":ref:`Availability `: Linux >= 2.6.27." +msgstr ":ref:`Disponibilité ` : Linux >= 2.6.27" + +#: ../Doc/library/socket.rst:328 +msgid "" +"Many constants of these forms, documented in the Unix documentation on " +"sockets and/or the IP protocol, are also defined in the socket module. They " +"are generally used in arguments to the :meth:`setsockopt` and :meth:" +"`getsockopt` methods of socket objects. In most cases, only those symbols " +"that are defined in the Unix header files are defined; for a few symbols, " +"default values are provided." +msgstr "" + +#: ../Doc/library/socket.rst:335 +msgid "" +"``SO_DOMAIN``, ``SO_PROTOCOL``, ``SO_PEERSEC``, ``SO_PASSSEC``, " +"``TCP_USER_TIMEOUT``, ``TCP_CONGESTION`` were added." +msgstr "" + +#: ../Doc/library/socket.rst:339 +msgid "" +"On Windows, ``TCP_FASTOPEN``, ``TCP_KEEPCNT`` appear if run-time Windows " +"supports." +msgstr "" + +#: ../Doc/library/socket.rst:343 +msgid "``TCP_NOTSENT_LOWAT`` was added." +msgstr "" + +#: ../Doc/library/socket.rst:346 +msgid "" +"On Windows, ``TCP_KEEPIDLE``, ``TCP_KEEPINTVL`` appear if run-time Windows " +"supports." +msgstr "" + +#: ../Doc/library/socket.rst:354 ../Doc/library/socket.rst:398 +#: ../Doc/library/socket.rst:409 +msgid "" +"Many constants of these forms, documented in the Linux documentation, are " +"also defined in the socket module." +msgstr "" + +#: ../Doc/library/socket.rst:358 ../Doc/library/socket.rst:369 +#: ../Doc/library/socket.rst:390 +msgid ":ref:`Availability `: Linux >= 2.6.25." +msgstr ":ref:`Disponibilité ` : Linux >= 2.6.25" + +#: ../Doc/library/socket.rst:364 +msgid "" +"CAN_BCM, in the CAN protocol family, is the broadcast manager (BCM) " +"protocol. Broadcast manager constants, documented in the Linux " +"documentation, are also defined in the socket module." +msgstr "" + +#: ../Doc/library/socket.rst:374 +msgid "" +"Enables CAN FD support in a CAN_RAW socket. This is disabled by default. " +"This allows your application to send both CAN and CAN FD frames; however, " +"you must accept both CAN and CAN FD frames when reading from the socket." +msgstr "" + +#: ../Doc/library/socket.rst:378 +msgid "This constant is documented in the Linux documentation." +msgstr "" + +#: ../Doc/library/socket.rst:381 +msgid ":ref:`Availability `: Linux >= 3.6." +msgstr ":ref:`Disponibilité ` : Linux >= 3.6." + +#: ../Doc/library/socket.rst:386 +msgid "" +"CAN_ISOTP, in the CAN protocol family, is the ISO-TP (ISO 15765-2) protocol. " +"ISO-TP constants, documented in the Linux documentation." +msgstr "" + +#: ../Doc/library/socket.rst:401 +msgid ":ref:`Availability `: Linux >= 2.2." +msgstr ":ref:`Disponibilité ` : Linux >= 2.2." + +#: ../Doc/library/socket.rst:413 +msgid ":ref:`Availability `: Linux >= 2.6.30." +msgstr ":ref:`Disponibilité ` : Linux >= 2.6.30." + +#: ../Doc/library/socket.rst:422 +msgid "" +"Constants for Windows' WSAIoctl(). The constants are used as arguments to " +"the :meth:`~socket.socket.ioctl` method of socket objects." +msgstr "" + +#: ../Doc/library/socket.rst:425 ../Doc/library/socket.rst:1171 +msgid "``SIO_LOOPBACK_FAST_PATH`` was added." +msgstr "" + +#: ../Doc/library/socket.rst:431 +msgid "" +"TIPC related constants, matching the ones exported by the C socket API. See " +"the TIPC documentation for more information." +msgstr "" + +#: ../Doc/library/socket.rst:438 +msgid "Constants for Linux Kernel cryptography." +msgstr "" + +#: ../Doc/library/socket.rst:441 ../Doc/library/socket.rst:1467 +msgid ":ref:`Availability `: Linux >= 2.6.38." +msgstr ":ref:`Disponibilité ` : Linux >= 2.6.38." + +#: ../Doc/library/socket.rst:450 +msgid "Constants for Linux host/guest communication." +msgstr "" + +#: ../Doc/library/socket.rst:453 +msgid ":ref:`Availability `: Linux >= 4.8." +msgstr ":ref:`Disponibilité ` : Linux >= 4.8." + +#: ../Doc/library/socket.rst:459 +msgid ":ref:`Availability `: BSD, OSX." +msgstr ":ref:`Disponibilité ` : BSD, OSX." + +#: ../Doc/library/socket.rst:464 +msgid "" +"This constant contains a boolean value which indicates if IPv6 is supported " +"on this platform." +msgstr "" + +#: ../Doc/library/socket.rst:470 +msgid "" +"These are string constants containing Bluetooth addresses with special " +"meanings. For example, :const:`BDADDR_ANY` can be used to indicate any " +"address when specifying the binding socket with :const:`BTPROTO_RFCOMM`." +msgstr "" + +#: ../Doc/library/socket.rst:479 +msgid "" +"For use with :const:`BTPROTO_HCI`. :const:`HCI_FILTER` is not available for " +"NetBSD or DragonFlyBSD. :const:`HCI_TIME_STAMP` and :const:`HCI_DATA_DIR` " +"are not available for FreeBSD, NetBSD, or DragonFlyBSD." +msgstr "" + +#: ../Doc/library/socket.rst:485 +msgid "Functions" +msgstr "Fonctions" + +#: ../Doc/library/socket.rst:488 +msgid "Creating sockets" +msgstr "" + +#: ../Doc/library/socket.rst:490 +msgid "" +"The following functions all create :ref:`socket objects `." +msgstr "" + +#: ../Doc/library/socket.rst:495 +msgid "" +"Create a new socket using the given address family, socket type and protocol " +"number. The address family should be :const:`AF_INET` (the default), :const:" +"`AF_INET6`, :const:`AF_UNIX`, :const:`AF_CAN`, :const:`AF_PACKET`, or :const:" +"`AF_RDS`. The socket type should be :const:`SOCK_STREAM` (the default), :" +"const:`SOCK_DGRAM`, :const:`SOCK_RAW` or perhaps one of the other ``SOCK_`` " +"constants. The protocol number is usually zero and may be omitted or in the " +"case where the address family is :const:`AF_CAN` the protocol should be one " +"of :const:`CAN_RAW`, :const:`CAN_BCM` or :const:`CAN_ISOTP`." +msgstr "" + +#: ../Doc/library/socket.rst:504 +msgid "" +"If *fileno* is specified, the values for *family*, *type*, and *proto* are " +"auto-detected from the specified file descriptor. Auto-detection can be " +"overruled by calling the function with explicit *family*, *type*, or *proto* " +"arguments. This only affects how Python represents e.g. the return value " +"of :meth:`socket.getpeername` but not the actual OS resource. Unlike :func:" +"`socket.fromfd`, *fileno* will return the same socket and not a duplicate. " +"This may help close a detached socket using :meth:`socket.close()`." +msgstr "" + +#: ../Doc/library/socket.rst:513 ../Doc/library/socket.rst:596 +#: ../Doc/library/socket.rst:1005 ../Doc/library/socket.rst:1088 +msgid "The newly created socket is :ref:`non-inheritable `." +msgstr "" +"Il n'est :ref:`pas possible d'hériter ` du connecteur " +"nouvellement créé." + +#: ../Doc/library/socket.rst:515 +msgid "The AF_CAN family was added. The AF_RDS family was added." +msgstr "" + +#: ../Doc/library/socket.rst:519 +msgid "The CAN_BCM protocol was added." +msgstr "" + +#: ../Doc/library/socket.rst:522 ../Doc/library/socket.rst:598 +msgid "The returned socket is now non-inheritable." +msgstr "" + +#: ../Doc/library/socket.rst:525 +msgid "The CAN_ISOTP protocol was added." +msgstr "" + +#: ../Doc/library/socket.rst:528 +msgid "" +"When :const:`SOCK_NONBLOCK` or :const:`SOCK_CLOEXEC` bit flags are applied " +"to *type* they are cleared, and :attr:`socket.type` will not reflect them. " +"They are still passed to the underlying system `socket()` call. Therefore::" +msgstr "" + +#: ../Doc/library/socket.rst:536 +msgid "sock = socket.socket(" +msgstr "" + +#: ../Doc/library/socket.rst:535 +msgid "socket.AF_INET, socket.SOCK_STREAM | socket.SOCK_NONBLOCK)" +msgstr "" + +#: ../Doc/library/socket.rst:538 +msgid "" +"will still create a non-blocking socket on OSes that support " +"``SOCK_NONBLOCK``, but ``sock.type`` will be set to ``socket.SOCK_STREAM``." +msgstr "" + +#: ../Doc/library/socket.rst:544 +msgid "" +"Build a pair of connected socket objects using the given address family, " +"socket type, and protocol number. Address family, socket type, and protocol " +"number are as for the :func:`.socket` function above. The default family is :" +"const:`AF_UNIX` if defined on the platform; otherwise, the default is :const:" +"`AF_INET`." +msgstr "" + +#: ../Doc/library/socket.rst:549 +msgid "The newly created sockets are :ref:`non-inheritable `." +msgstr "" + +#: ../Doc/library/socket.rst:551 +msgid "" +"The returned socket objects now support the whole socket API, rather than a " +"subset." +msgstr "" + +#: ../Doc/library/socket.rst:555 +msgid "The returned sockets are now non-inheritable." +msgstr "" + +#: ../Doc/library/socket.rst:558 +msgid "Windows support added." +msgstr "" + +#: ../Doc/library/socket.rst:564 +msgid "" +"Connect to a TCP service listening on the Internet *address* (a 2-tuple " +"``(host, port)``), and return the socket object. This is a higher-level " +"function than :meth:`socket.connect`: if *host* is a non-numeric hostname, " +"it will try to resolve it for both :data:`AF_INET` and :data:`AF_INET6`, and " +"then try to connect to all possible addresses in turn until a connection " +"succeeds. This makes it easy to write clients that are compatible to both " +"IPv4 and IPv6." +msgstr "" + +#: ../Doc/library/socket.rst:572 +msgid "" +"Passing the optional *timeout* parameter will set the timeout on the socket " +"instance before attempting to connect. If no *timeout* is supplied, the " +"global default timeout setting returned by :func:`getdefaulttimeout` is used." +msgstr "" + +#: ../Doc/library/socket.rst:577 +msgid "" +"If supplied, *source_address* must be a 2-tuple ``(host, port)`` for the " +"socket to bind to as its source address before connecting. If host or port " +"are '' or 0 respectively the OS default behavior will be used." +msgstr "" + +#: ../Doc/library/socket.rst:581 +msgid "*source_address* was added." +msgstr "" + +#: ../Doc/library/socket.rst:587 +msgid "" +"Duplicate the file descriptor *fd* (an integer as returned by a file " +"object's :meth:`fileno` method) and build a socket object from the result. " +"Address family, socket type and protocol number are as for the :func:`." +"socket` function above. The file descriptor should refer to a socket, but " +"this is not checked --- subsequent operations on the object may fail if the " +"file descriptor is invalid. This function is rarely needed, but can be used " +"to get or set socket options on a socket passed to a program as standard " +"input or output (such as a server started by the Unix inet daemon). The " +"socket is assumed to be in blocking mode." +msgstr "" + +#: ../Doc/library/socket.rst:604 +msgid "" +"Instantiate a socket from data obtained from the :meth:`socket.share` " +"method. The socket is assumed to be in blocking mode." +msgstr "" + +#: ../Doc/library/socket.rst:608 ../Doc/library/socket.rst:1568 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." + +#: ../Doc/library/socket.rst:614 +msgid "" +"This is a Python type object that represents the socket object type. It is " +"the same as ``type(socket(...))``." +msgstr "" + +#: ../Doc/library/socket.rst:619 +msgid "Other functions" +msgstr "Autres fonctions" + +#: ../Doc/library/socket.rst:621 +msgid "The :mod:`socket` module also offers various network-related services:" +msgstr "" + +#: ../Doc/library/socket.rst:626 +msgid "" +"Close a socket file descriptor. This is like :func:`os.close`, but for " +"sockets. On some platforms (most noticeable Windows) :func:`os.close` does " +"not work for socket file descriptors." +msgstr "" + +#: ../Doc/library/socket.rst:634 +msgid "" +"Translate the *host*/*port* argument into a sequence of 5-tuples that " +"contain all the necessary arguments for creating a socket connected to that " +"service. *host* is a domain name, a string representation of an IPv4/v6 " +"address or ``None``. *port* is a string service name such as ``'http'``, a " +"numeric port number or ``None``. By passing ``None`` as the value of *host* " +"and *port*, you can pass ``NULL`` to the underlying C API." +msgstr "" + +#: ../Doc/library/socket.rst:641 +msgid "" +"The *family*, *type* and *proto* arguments can be optionally specified in " +"order to narrow the list of addresses returned. Passing zero as a value for " +"each of these arguments selects the full range of results. The *flags* " +"argument can be one or several of the ``AI_*`` constants, and will influence " +"how results are computed and returned. For example, :const:`AI_NUMERICHOST` " +"will disable domain name resolution and will raise an error if *host* is a " +"domain name." +msgstr "" + +#: ../Doc/library/socket.rst:649 +msgid "The function returns a list of 5-tuples with the following structure:" +msgstr "" + +#: ../Doc/library/socket.rst:651 +msgid "``(family, type, proto, canonname, sockaddr)``" +msgstr "" + +#: ../Doc/library/socket.rst:653 +msgid "" +"In these tuples, *family*, *type*, *proto* are all integers and are meant to " +"be passed to the :func:`.socket` function. *canonname* will be a string " +"representing the canonical name of the *host* if :const:`AI_CANONNAME` is " +"part of the *flags* argument; else *canonname* will be empty. *sockaddr* is " +"a tuple describing a socket address, whose format depends on the returned " +"*family* (a ``(address, port)`` 2-tuple for :const:`AF_INET`, a ``(address, " +"port, flow info, scope id)`` 4-tuple for :const:`AF_INET6`), and is meant to " +"be passed to the :meth:`socket.connect` method." +msgstr "" + +#: ../Doc/library/socket.rst:663 +msgid "" +"The following example fetches address information for a hypothetical TCP " +"connection to ``example.org`` on port 80 (results may differ on your system " +"if IPv6 isn't enabled)::" +msgstr "" + +#: ../Doc/library/socket.rst:673 +msgid "parameters can now be passed using keyword arguments." +msgstr "" + +#: ../Doc/library/socket.rst:676 +msgid "" +"for IPv6 multicast addresses, string representing an address will not " +"contain ``%scope`` part." +msgstr "" + +#: ../Doc/library/socket.rst:682 +msgid "" +"Return a fully qualified domain name for *name*. If *name* is omitted or " +"empty, it is interpreted as the local host. To find the fully qualified " +"name, the hostname returned by :func:`gethostbyaddr` is checked, followed by " +"aliases for the host, if available. The first name which includes a period " +"is selected. In case no fully qualified domain name is available, the " +"hostname as returned by :func:`gethostname` is returned." +msgstr "" + +#: ../Doc/library/socket.rst:692 +msgid "" +"Translate a host name to IPv4 address format. The IPv4 address is returned " +"as a string, such as ``'100.50.200.5'``. If the host name is an IPv4 " +"address itself it is returned unchanged. See :func:`gethostbyname_ex` for a " +"more complete interface. :func:`gethostbyname` does not support IPv6 name " +"resolution, and :func:`getaddrinfo` should be used instead for IPv4/v6 dual " +"stack support." +msgstr "" + +#: ../Doc/library/socket.rst:701 +msgid "" +"Translate a host name to IPv4 address format, extended interface. Return a " +"triple ``(hostname, aliaslist, ipaddrlist)`` where *hostname* is the primary " +"host name responding to the given *ip_address*, *aliaslist* is a (possibly " +"empty) list of alternative host names for the same address, and *ipaddrlist* " +"is a list of IPv4 addresses for the same interface on the same host (often " +"but not always a single address). :func:`gethostbyname_ex` does not support " +"IPv6 name resolution, and :func:`getaddrinfo` should be used instead for " +"IPv4/v6 dual stack support." +msgstr "" + +#: ../Doc/library/socket.rst:713 +msgid "" +"Return a string containing the hostname of the machine where the Python " +"interpreter is currently executing." +msgstr "" + +#: ../Doc/library/socket.rst:716 +msgid "" +"Note: :func:`gethostname` doesn't always return the fully qualified domain " +"name; use :func:`getfqdn` for that." +msgstr "" + +#: ../Doc/library/socket.rst:722 +msgid "" +"Return a triple ``(hostname, aliaslist, ipaddrlist)`` where *hostname* is " +"the primary host name responding to the given *ip_address*, *aliaslist* is a " +"(possibly empty) list of alternative host names for the same address, and " +"*ipaddrlist* is a list of IPv4/v6 addresses for the same interface on the " +"same host (most likely containing only a single address). To find the fully " +"qualified domain name, use the function :func:`getfqdn`. :func:" +"`gethostbyaddr` supports both IPv4 and IPv6." +msgstr "" + +#: ../Doc/library/socket.rst:733 +msgid "" +"Translate a socket address *sockaddr* into a 2-tuple ``(host, port)``. " +"Depending on the settings of *flags*, the result can contain a fully-" +"qualified domain name or numeric address representation in *host*. " +"Similarly, *port* can contain a string port name or a numeric port number." +msgstr "" + +#: ../Doc/library/socket.rst:738 +msgid "" +"For IPv6 addresses, ``%scope`` is appended to the host part if *sockaddr* " +"contains meaningful *scopeid*. Usually this happens for multicast addresses." +msgstr "" + +#: ../Doc/library/socket.rst:743 +msgid "" +"Translate an Internet protocol name (for example, ``'icmp'``) to a constant " +"suitable for passing as the (optional) third argument to the :func:`.socket` " +"function. This is usually only needed for sockets opened in \"raw\" mode (:" +"const:`SOCK_RAW`); for the normal socket modes, the correct protocol is " +"chosen automatically if the protocol is omitted or zero." +msgstr "" + +#: ../Doc/library/socket.rst:752 +msgid "" +"Translate an Internet service name and protocol name to a port number for " +"that service. The optional protocol name, if given, should be ``'tcp'`` or " +"``'udp'``, otherwise any protocol will match." +msgstr "" + +#: ../Doc/library/socket.rst:759 +msgid "" +"Translate an Internet port number and protocol name to a service name for " +"that service. The optional protocol name, if given, should be ``'tcp'`` or " +"``'udp'``, otherwise any protocol will match." +msgstr "" + +#: ../Doc/library/socket.rst:766 +msgid "" +"Convert 32-bit positive integers from network to host byte order. On " +"machines where the host byte order is the same as network byte order, this " +"is a no-op; otherwise, it performs a 4-byte swap operation." +msgstr "" + +#: ../Doc/library/socket.rst:773 +msgid "" +"Convert 16-bit positive integers from network to host byte order. On " +"machines where the host byte order is the same as network byte order, this " +"is a no-op; otherwise, it performs a 2-byte swap operation." +msgstr "" + +#: ../Doc/library/socket.rst:777 ../Doc/library/socket.rst:797 +msgid "" +"In case *x* does not fit in 16-bit unsigned integer, but does fit in a " +"positive C int, it is silently truncated to 16-bit unsigned integer. This " +"silent truncation feature is deprecated, and will raise an exception in " +"future versions of Python." +msgstr "" + +#: ../Doc/library/socket.rst:786 +msgid "" +"Convert 32-bit positive integers from host to network byte order. On " +"machines where the host byte order is the same as network byte order, this " +"is a no-op; otherwise, it performs a 4-byte swap operation." +msgstr "" + +#: ../Doc/library/socket.rst:793 +msgid "" +"Convert 16-bit positive integers from host to network byte order. On " +"machines where the host byte order is the same as network byte order, this " +"is a no-op; otherwise, it performs a 2-byte swap operation." +msgstr "" + +#: ../Doc/library/socket.rst:806 +msgid "" +"Convert an IPv4 address from dotted-quad string format (for example, " +"'123.45.67.89') to 32-bit packed binary format, as a bytes object four " +"characters in length. This is useful when conversing with a program that " +"uses the standard C library and needs objects of type :c:type:`struct " +"in_addr`, which is the C type for the 32-bit packed binary this function " +"returns." +msgstr "" + +#: ../Doc/library/socket.rst:812 +msgid "" +":func:`inet_aton` also accepts strings with less than three dots; see the " +"Unix manual page :manpage:`inet(3)` for details." +msgstr "" + +#: ../Doc/library/socket.rst:815 +msgid "" +"If the IPv4 address string passed to this function is invalid, :exc:" +"`OSError` will be raised. Note that exactly what is valid depends on the " +"underlying C implementation of :c:func:`inet_aton`." +msgstr "" + +#: ../Doc/library/socket.rst:819 +msgid "" +":func:`inet_aton` does not support IPv6, and :func:`inet_pton` should be " +"used instead for IPv4/v6 dual stack support." +msgstr "" + +#: ../Doc/library/socket.rst:825 +msgid "" +"Convert a 32-bit packed IPv4 address (a :term:`bytes-like object` four bytes " +"in length) to its standard dotted-quad string representation (for example, " +"'123.45.67.89'). This is useful when conversing with a program that uses " +"the standard C library and needs objects of type :c:type:`struct in_addr`, " +"which is the C type for the 32-bit packed binary data this function takes as " +"an argument." +msgstr "" + +#: ../Doc/library/socket.rst:832 +msgid "" +"If the byte sequence passed to this function is not exactly 4 bytes in " +"length, :exc:`OSError` will be raised. :func:`inet_ntoa` does not support " +"IPv6, and :func:`inet_ntop` should be used instead for IPv4/v6 dual stack " +"support." +msgstr "" + +#: ../Doc/library/socket.rst:843 +msgid "" +"Convert an IP address from its family-specific string format to a packed, " +"binary format. :func:`inet_pton` is useful when a library or network " +"protocol calls for an object of type :c:type:`struct in_addr` (similar to :" +"func:`inet_aton`) or :c:type:`struct in6_addr`." +msgstr "" + +#: ../Doc/library/socket.rst:848 +msgid "" +"Supported values for *address_family* are currently :const:`AF_INET` and :" +"const:`AF_INET6`. If the IP address string *ip_string* is invalid, :exc:" +"`OSError` will be raised. Note that exactly what is valid depends on both " +"the value of *address_family* and the underlying implementation of :c:func:" +"`inet_pton`." +msgstr "" + +#: ../Doc/library/socket.rst:855 ../Doc/library/socket.rst:875 +msgid "" +":ref:`Availability `: Unix (maybe not all platforms), Windows." +msgstr "" + +#: ../Doc/library/socket.rst:856 ../Doc/library/socket.rst:876 +msgid "Windows support added" +msgstr "Ajout de la gestion de Windows." + +#: ../Doc/library/socket.rst:862 +msgid "" +"Convert a packed IP address (a :term:`bytes-like object` of some number of " +"bytes) to its standard, family-specific string representation (for example, " +"``'7.10.0.5'`` or ``'5aef:2b::8'``). :func:`inet_ntop` is useful when a " +"library or network protocol returns an object of type :c:type:`struct " +"in_addr` (similar to :func:`inet_ntoa`) or :c:type:`struct in6_addr`." +msgstr "" + +#: ../Doc/library/socket.rst:869 +msgid "" +"Supported values for *address_family* are currently :const:`AF_INET` and :" +"const:`AF_INET6`. If the bytes object *packed_ip* is not the correct length " +"for the specified address family, :exc:`ValueError` will be raised. :exc:" +"`OSError` is raised for errors from the call to :func:`inet_ntop`." +msgstr "" + +#: ../Doc/library/socket.rst:891 +msgid "" +"Return the total length, without trailing padding, of an ancillary data item " +"with associated data of the given *length*. This value can often be used as " +"the buffer size for :meth:`~socket.recvmsg` to receive a single item of " +"ancillary data, but :rfc:`3542` requires portable applications to use :func:" +"`CMSG_SPACE` and thus include space for padding, even when the item will be " +"the last in the buffer. Raises :exc:`OverflowError` if *length* is outside " +"the permissible range of values." +msgstr "" + +#: ../Doc/library/socket.rst:901 ../Doc/library/socket.rst:922 +#: ../Doc/library/socket.rst:1307 ../Doc/library/socket.rst:1349 +#: ../Doc/library/socket.rst:1453 +msgid "" +":ref:`Availability `: most Unix platforms, possibly others." +msgstr "" + +#: ../Doc/library/socket.rst:907 +msgid "" +"Return the buffer size needed for :meth:`~socket.recvmsg` to receive an " +"ancillary data item with associated data of the given *length*, along with " +"any trailing padding. The buffer space needed to receive multiple items is " +"the sum of the :func:`CMSG_SPACE` values for their associated data lengths. " +"Raises :exc:`OverflowError` if *length* is outside the permissible range of " +"values." +msgstr "" + +#: ../Doc/library/socket.rst:915 +msgid "" +"Note that some systems might support ancillary data without providing this " +"function. Also note that setting the buffer size using the results of this " +"function may not precisely limit the amount of ancillary data that can be " +"received, since additional data may be able to fit into the padding area." +msgstr "" + +#: ../Doc/library/socket.rst:928 +msgid "" +"Return the default timeout in seconds (float) for new socket objects. A " +"value of ``None`` indicates that new socket objects have no timeout. When " +"the socket module is first imported, the default is ``None``." +msgstr "" + +#: ../Doc/library/socket.rst:935 +msgid "" +"Set the default timeout in seconds (float) for new socket objects. When the " +"socket module is first imported, the default is ``None``. See :meth:" +"`~socket.settimeout` for possible values and their respective meanings." +msgstr "" + +#: ../Doc/library/socket.rst:943 +msgid "" +"Set the machine's hostname to *name*. This will raise an :exc:`OSError` if " +"you don't have enough rights." +msgstr "" + +#: ../Doc/library/socket.rst:947 ../Doc/library/socket.rst:958 +#: ../Doc/library/socket.rst:969 ../Doc/library/socket.rst:980 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." + +#: ../Doc/library/socket.rst:953 +msgid "" +"Return a list of network interface information (index int, name string) " +"tuples. :exc:`OSError` if the system call fails." +msgstr "" + +#: ../Doc/library/socket.rst:964 +msgid "" +"Return a network interface index number corresponding to an interface name. :" +"exc:`OSError` if no interface with the given name exists." +msgstr "" + +#: ../Doc/library/socket.rst:975 +msgid "" +"Return a network interface name corresponding to an interface index number. :" +"exc:`OSError` if no interface with the given index exists." +msgstr "" + +#: ../Doc/library/socket.rst:987 +msgid "Socket Objects" +msgstr "" + +#: ../Doc/library/socket.rst:989 +msgid "" +"Socket objects have the following methods. Except for :meth:`~socket." +"makefile`, these correspond to Unix system calls applicable to sockets." +msgstr "" + +#: ../Doc/library/socket.rst:993 +msgid "" +"Support for the :term:`context manager` protocol was added. Exiting the " +"context manager is equivalent to calling :meth:`~socket.close`." +msgstr "" + +#: ../Doc/library/socket.rst:1000 +msgid "" +"Accept a connection. The socket must be bound to an address and listening " +"for connections. The return value is a pair ``(conn, address)`` where *conn* " +"is a *new* socket object usable to send and receive data on the connection, " +"and *address* is the address bound to the socket on the other end of the " +"connection." +msgstr "" + +#: ../Doc/library/socket.rst:1007 ../Doc/library/socket.rst:1090 +msgid "The socket is now non-inheritable." +msgstr "" + +#: ../Doc/library/socket.rst:1010 ../Doc/library/socket.rst:1221 +#: ../Doc/library/socket.rst:1235 ../Doc/library/socket.rst:1310 +#: ../Doc/library/socket.rst:1381 ../Doc/library/socket.rst:1400 +#: ../Doc/library/socket.rst:1415 ../Doc/library/socket.rst:1456 +msgid "" +"If the system call is interrupted and the signal handler does not raise an " +"exception, the method now retries the system call instead of raising an :exc:" +"`InterruptedError` exception (see :pep:`475` for the rationale)." +msgstr "" +"Si l'appel système est interrompu et que le gestionnaire de signal ne lève " +"aucune exception, la fonction réessaye l'appel système au lieu de lever une :" +"exc:`InterruptedError` (voir la :pep:`475` à propos du raisonnement)." + +#: ../Doc/library/socket.rst:1018 +msgid "" +"Bind the socket to *address*. The socket must not already be bound. (The " +"format of *address* depends on the address family --- see above.)" +msgstr "" + +#: ../Doc/library/socket.rst:1024 +msgid "" +"Mark the socket closed. The underlying system resource (e.g. a file " +"descriptor) is also closed when all file objects from :meth:`makefile()` are " +"closed. Once that happens, all future operations on the socket object will " +"fail. The remote end will receive no more data (after queued data is " +"flushed)." +msgstr "" + +#: ../Doc/library/socket.rst:1030 +msgid "" +"Sockets are automatically closed when they are garbage-collected, but it is " +"recommended to :meth:`close` them explicitly, or to use a :keyword:`with` " +"statement around them." +msgstr "" + +#: ../Doc/library/socket.rst:1034 +msgid "" +":exc:`OSError` is now raised if an error occurs when the underlying :c:func:" +"`close` call is made." +msgstr "" + +#: ../Doc/library/socket.rst:1040 +msgid "" +":meth:`close()` releases the resource associated with a connection but does " +"not necessarily close the connection immediately. If you want to close the " +"connection in a timely fashion, call :meth:`shutdown()` before :meth:" +"`close()`." +msgstr "" + +#: ../Doc/library/socket.rst:1048 +msgid "" +"Connect to a remote socket at *address*. (The format of *address* depends on " +"the address family --- see above.)" +msgstr "" + +#: ../Doc/library/socket.rst:1051 +msgid "" +"If the connection is interrupted by a signal, the method waits until the " +"connection completes, or raise a :exc:`socket.timeout` on timeout, if the " +"signal handler doesn't raise an exception and the socket is blocking or has " +"a timeout. For non-blocking sockets, the method raises an :exc:" +"`InterruptedError` exception if the connection is interrupted by a signal " +"(or the exception raised by the signal handler)." +msgstr "" + +#: ../Doc/library/socket.rst:1058 +msgid "" +"The method now waits until the connection completes instead of raising an :" +"exc:`InterruptedError` exception if the connection is interrupted by a " +"signal, the signal handler doesn't raise an exception and the socket is " +"blocking or has a timeout (see the :pep:`475` for the rationale)." +msgstr "" + +#: ../Doc/library/socket.rst:1067 +msgid "" +"Like ``connect(address)``, but return an error indicator instead of raising " +"an exception for errors returned by the C-level :c:func:`connect` call " +"(other problems, such as \"host not found,\" can still raise exceptions). " +"The error indicator is ``0`` if the operation succeeded, otherwise the value " +"of the :c:data:`errno` variable. This is useful to support, for example, " +"asynchronous connects." +msgstr "" + +#: ../Doc/library/socket.rst:1077 +msgid "" +"Put the socket object into closed state without actually closing the " +"underlying file descriptor. The file descriptor is returned, and can be " +"reused for other purposes." +msgstr "" + +#: ../Doc/library/socket.rst:1086 +msgid "Duplicate the socket." +msgstr "" + +#: ../Doc/library/socket.rst:1096 +msgid "" +"Return the socket's file descriptor (a small integer), or -1 on failure. " +"This is useful with :func:`select.select`." +msgstr "" + +#: ../Doc/library/socket.rst:1099 +msgid "" +"Under Windows the small integer returned by this method cannot be used where " +"a file descriptor can be used (such as :func:`os.fdopen`). Unix does not " +"have this limitation." +msgstr "" + +#: ../Doc/library/socket.rst:1105 +msgid "" +"Get the :ref:`inheritable flag ` of the socket's file " +"descriptor or socket's handle: ``True`` if the socket can be inherited in " +"child processes, ``False`` if it cannot." +msgstr "" + +#: ../Doc/library/socket.rst:1114 +msgid "" +"Return the remote address to which the socket is connected. This is useful " +"to find out the port number of a remote IPv4/v6 socket, for instance. (The " +"format of the address returned depends on the address family --- see " +"above.) On some systems this function is not supported." +msgstr "" + +#: ../Doc/library/socket.rst:1122 +msgid "" +"Return the socket's own address. This is useful to find out the port number " +"of an IPv4/v6 socket, for instance. (The format of the address returned " +"depends on the address family --- see above.)" +msgstr "" + +#: ../Doc/library/socket.rst:1129 +msgid "" +"Return the value of the given socket option (see the Unix man page :manpage:" +"`getsockopt(2)`). The needed symbolic constants (:const:`SO_\\*` etc.) are " +"defined in this module. If *buflen* is absent, an integer option is assumed " +"and its integer value is returned by the function. If *buflen* is present, " +"it specifies the maximum length of the buffer used to receive the option in, " +"and this buffer is returned as a bytes object. It is up to the caller to " +"decode the contents of the buffer (see the optional built-in module :mod:" +"`struct` for a way to decode C structures encoded as byte strings)." +msgstr "" + +#: ../Doc/library/socket.rst:1141 +msgid "" +"Return ``True`` if socket is in blocking mode, ``False`` if in non-blocking." +msgstr "" + +#: ../Doc/library/socket.rst:1144 +msgid "This is equivalent to checking ``socket.gettimeout() == 0``." +msgstr "" + +#: ../Doc/library/socket.rst:1151 +msgid "" +"Return the timeout in seconds (float) associated with socket operations, or " +"``None`` if no timeout is set. This reflects the last call to :meth:" +"`setblocking` or :meth:`settimeout`." +msgstr "" + +#: ../Doc/library/socket.rst:0 +msgid "platform" +msgstr "" + +#: ../Doc/library/socket.rst:1158 +msgid "Windows" +msgstr "Windows" + +#: ../Doc/library/socket.rst:1160 +msgid "" +"The :meth:`ioctl` method is a limited interface to the WSAIoctl system " +"interface. Please refer to the `Win32 documentation `_ for more information." +msgstr "" + +#: ../Doc/library/socket.rst:1165 +msgid "" +"On other platforms, the generic :func:`fcntl.fcntl` and :func:`fcntl.ioctl` " +"functions may be used; they accept a socket object as their first argument." +msgstr "" + +#: ../Doc/library/socket.rst:1168 +msgid "" +"Currently only the following control codes are supported: ``SIO_RCVALL``, " +"``SIO_KEEPALIVE_VALS``, and ``SIO_LOOPBACK_FAST_PATH``." +msgstr "" + +#: ../Doc/library/socket.rst:1176 +msgid "" +"Enable a server to accept connections. If *backlog* is specified, it must " +"be at least 0 (if it is lower, it is set to 0); it specifies the number of " +"unaccepted connections that the system will allow before refusing new " +"connections. If not specified, a default reasonable value is chosen." +msgstr "" + +#: ../Doc/library/socket.rst:1181 +msgid "The *backlog* parameter is now optional." +msgstr "" + +#: ../Doc/library/socket.rst:1189 +msgid "" +"Return a :term:`file object` associated with the socket. The exact returned " +"type depends on the arguments given to :meth:`makefile`. These arguments " +"are interpreted the same way as by the built-in :func:`open` function, " +"except the only supported *mode* values are ``'r'`` (default), ``'w'`` and " +"``'b'``." +msgstr "" + +#: ../Doc/library/socket.rst:1194 +msgid "" +"The socket must be in blocking mode; it can have a timeout, but the file " +"object's internal buffer may end up in an inconsistent state if a timeout " +"occurs." +msgstr "" + +#: ../Doc/library/socket.rst:1198 +msgid "" +"Closing the file object returned by :meth:`makefile` won't close the " +"original socket unless all other file objects have been closed and :meth:" +"`socket.close` has been called on the socket object." +msgstr "" + +#: ../Doc/library/socket.rst:1204 +msgid "" +"On Windows, the file-like object created by :meth:`makefile` cannot be used " +"where a file object with a file descriptor is expected, such as the stream " +"arguments of :meth:`subprocess.Popen`." +msgstr "" + +#: ../Doc/library/socket.rst:1211 +msgid "" +"Receive data from the socket. The return value is a bytes object " +"representing the data received. The maximum amount of data to be received " +"at once is specified by *bufsize*. See the Unix manual page :manpage:" +"`recv(2)` for the meaning of the optional argument *flags*; it defaults to " +"zero." +msgstr "" + +#: ../Doc/library/socket.rst:1218 +msgid "" +"For best match with hardware and network realities, the value of *bufsize* " +"should be a relatively small power of 2, for example, 4096." +msgstr "" + +#: ../Doc/library/socket.rst:1229 +msgid "" +"Receive data from the socket. The return value is a pair ``(bytes, " +"address)`` where *bytes* is a bytes object representing the data received " +"and *address* is the address of the socket sending the data. See the Unix " +"manual page :manpage:`recv(2)` for the meaning of the optional argument " +"*flags*; it defaults to zero. (The format of *address* depends on the " +"address family --- see above.)" +msgstr "" + +#: ../Doc/library/socket.rst:1240 +msgid "" +"For multicast IPv6 address, first item of *address* does not contain ``" +"%scope`` part anymore. In order to get full IPv6 address use :func:" +"`getnameinfo`." +msgstr "" + +#: ../Doc/library/socket.rst:1247 +msgid "" +"Receive normal data (up to *bufsize* bytes) and ancillary data from the " +"socket. The *ancbufsize* argument sets the size in bytes of the internal " +"buffer used to receive the ancillary data; it defaults to 0, meaning that no " +"ancillary data will be received. Appropriate buffer sizes for ancillary " +"data can be calculated using :func:`CMSG_SPACE` or :func:`CMSG_LEN`, and " +"items which do not fit into the buffer might be truncated or discarded. The " +"*flags* argument defaults to 0 and has the same meaning as for :meth:`recv`." +msgstr "" + +#: ../Doc/library/socket.rst:1257 +msgid "" +"The return value is a 4-tuple: ``(data, ancdata, msg_flags, address)``. The " +"*data* item is a :class:`bytes` object holding the non-ancillary data " +"received. The *ancdata* item is a list of zero or more tuples " +"``(cmsg_level, cmsg_type, cmsg_data)`` representing the ancillary data " +"(control messages) received: *cmsg_level* and *cmsg_type* are integers " +"specifying the protocol level and protocol-specific type respectively, and " +"*cmsg_data* is a :class:`bytes` object holding the associated data. The " +"*msg_flags* item is the bitwise OR of various flags indicating conditions on " +"the received message; see your system documentation for details. If the " +"receiving socket is unconnected, *address* is the address of the sending " +"socket, if available; otherwise, its value is unspecified." +msgstr "" + +#: ../Doc/library/socket.rst:1271 +msgid "" +"On some systems, :meth:`sendmsg` and :meth:`recvmsg` can be used to pass " +"file descriptors between processes over an :const:`AF_UNIX` socket. When " +"this facility is used (it is often restricted to :const:`SOCK_STREAM` " +"sockets), :meth:`recvmsg` will return, in its ancillary data, items of the " +"form ``(socket.SOL_SOCKET, socket.SCM_RIGHTS, fds)``, where *fds* is a :" +"class:`bytes` object representing the new file descriptors as a binary array " +"of the native C :c:type:`int` type. If :meth:`recvmsg` raises an exception " +"after the system call returns, it will first attempt to close any file " +"descriptors received via this mechanism." +msgstr "" + +#: ../Doc/library/socket.rst:1282 +msgid "" +"Some systems do not indicate the truncated length of ancillary data items " +"which have been only partially received. If an item appears to extend " +"beyond the end of the buffer, :meth:`recvmsg` will issue a :exc:" +"`RuntimeWarning`, and will return the part of it which is inside the buffer " +"provided it has not been truncated before the start of its associated data." +msgstr "" + +#: ../Doc/library/socket.rst:1289 +msgid "" +"On systems which support the :const:`SCM_RIGHTS` mechanism, the following " +"function will receive up to *maxfds* file descriptors, returning the message " +"data and a list containing the descriptors (while ignoring unexpected " +"conditions such as unrelated control messages being received). See also :" +"meth:`sendmsg`. ::" +msgstr "" + +#: ../Doc/library/socket.rst:1318 +msgid "" +"Receive normal data and ancillary data from the socket, behaving as :meth:" +"`recvmsg` would, but scatter the non-ancillary data into a series of buffers " +"instead of returning a new bytes object. The *buffers* argument must be an " +"iterable of objects that export writable buffers (e.g. :class:`bytearray` " +"objects); these will be filled with successive chunks of the non-ancillary " +"data until it has all been written or there are no more buffers. The " +"operating system may set a limit (:func:`~os.sysconf` value ``SC_IOV_MAX``) " +"on the number of buffers that can be used. The *ancbufsize* and *flags* " +"arguments have the same meaning as for :meth:`recvmsg`." +msgstr "" + +#: ../Doc/library/socket.rst:1329 +msgid "" +"The return value is a 4-tuple: ``(nbytes, ancdata, msg_flags, address)``, " +"where *nbytes* is the total number of bytes of non-ancillary data written " +"into the buffers, and *ancdata*, *msg_flags* and *address* are the same as " +"for :meth:`recvmsg`." +msgstr "" + +#: ../Doc/library/socket.rst:1334 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/socket.rst:1355 +msgid "" +"Receive data from the socket, writing it into *buffer* instead of creating a " +"new bytestring. The return value is a pair ``(nbytes, address)`` where " +"*nbytes* is the number of bytes received and *address* is the address of the " +"socket sending the data. See the Unix manual page :manpage:`recv(2)` for " +"the meaning of the optional argument *flags*; it defaults to zero. (The " +"format of *address* depends on the address family --- see above.)" +msgstr "" + +#: ../Doc/library/socket.rst:1365 +msgid "" +"Receive up to *nbytes* bytes from the socket, storing the data into a buffer " +"rather than creating a new bytestring. If *nbytes* is not specified (or 0), " +"receive up to the size available in the given buffer. Returns the number of " +"bytes received. See the Unix manual page :manpage:`recv(2)` for the meaning " +"of the optional argument *flags*; it defaults to zero." +msgstr "" + +#: ../Doc/library/socket.rst:1374 +msgid "" +"Send data to the socket. The socket must be connected to a remote socket. " +"The optional *flags* argument has the same meaning as for :meth:`recv` " +"above. Returns the number of bytes sent. Applications are responsible for " +"checking that all data has been sent; if only some of the data was " +"transmitted, the application needs to attempt delivery of the remaining " +"data. For further information on this topic, consult the :ref:`socket-howto`." +msgstr "" + +#: ../Doc/library/socket.rst:1389 +msgid "" +"Send data to the socket. The socket must be connected to a remote socket. " +"The optional *flags* argument has the same meaning as for :meth:`recv` " +"above. Unlike :meth:`send`, this method continues to send data from *bytes* " +"until either all data has been sent or an error occurs. ``None`` is " +"returned on success. On error, an exception is raised, and there is no way " +"to determine how much data, if any, was successfully sent." +msgstr "" + +#: ../Doc/library/socket.rst:1396 +msgid "" +"The socket timeout is no more reset each time data is sent successfully. The " +"socket timeout is now the maximum total duration to send all data." +msgstr "" + +#: ../Doc/library/socket.rst:1409 +msgid "" +"Send data to the socket. The socket should not be connected to a remote " +"socket, since the destination socket is specified by *address*. The " +"optional *flags* argument has the same meaning as for :meth:`recv` above. " +"Return the number of bytes sent. (The format of *address* depends on the " +"address family --- see above.)" +msgstr "" + +#: ../Doc/library/socket.rst:1423 +msgid "" +"Send normal and ancillary data to the socket, gathering the non-ancillary " +"data from a series of buffers and concatenating it into a single message. " +"The *buffers* argument specifies the non-ancillary data as an iterable of :" +"term:`bytes-like objects ` (e.g. :class:`bytes` objects); " +"the operating system may set a limit (:func:`~os.sysconf` value " +"``SC_IOV_MAX``) on the number of buffers that can be used. The *ancdata* " +"argument specifies the ancillary data (control messages) as an iterable of " +"zero or more tuples ``(cmsg_level, cmsg_type, cmsg_data)``, where " +"*cmsg_level* and *cmsg_type* are integers specifying the protocol level and " +"protocol-specific type respectively, and *cmsg_data* is a bytes-like object " +"holding the associated data. Note that some systems (in particular, systems " +"without :func:`CMSG_SPACE`) might support sending only one control message " +"per call. The *flags* argument defaults to 0 and has the same meaning as " +"for :meth:`send`. If *address* is supplied and not ``None``, it sets a " +"destination address for the message. The return value is the number of " +"bytes of non-ancillary data sent." +msgstr "" + +#: ../Doc/library/socket.rst:1443 +msgid "" +"The following function sends the list of file descriptors *fds* over an :" +"const:`AF_UNIX` socket, on systems which support the :const:`SCM_RIGHTS` " +"mechanism. See also :meth:`recvmsg`. ::" +msgstr "" + +#: ../Doc/library/socket.rst:1463 +msgid "" +"Specialized version of :meth:`~socket.sendmsg` for :const:`AF_ALG` socket. " +"Set mode, IV, AEAD associated data length and flags for :const:`AF_ALG` " +"socket." +msgstr "" + +#: ../Doc/library/socket.rst:1472 +msgid "" +"Send a file until EOF is reached by using high-performance :mod:`os." +"sendfile` and return the total number of bytes which were sent. *file* must " +"be a regular file object opened in binary mode. If :mod:`os.sendfile` is not " +"available (e.g. Windows) or *file* is not a regular file :meth:`send` will " +"be used instead. *offset* tells from where to start reading the file. If " +"specified, *count* is the total number of bytes to transmit as opposed to " +"sending the file until EOF is reached. File position is updated on return or " +"also in case of error in which case :meth:`file.tell() ` can " +"be used to figure out the number of bytes which were sent. The socket must " +"be of :const:`SOCK_STREAM` type. Non-blocking sockets are not supported." +msgstr "" + +#: ../Doc/library/socket.rst:1488 +msgid "" +"Set the :ref:`inheritable flag ` of the socket's file " +"descriptor or socket's handle." +msgstr "" + +#: ../Doc/library/socket.rst:1496 +msgid "" +"Set blocking or non-blocking mode of the socket: if *flag* is false, the " +"socket is set to non-blocking, else to blocking mode." +msgstr "" + +#: ../Doc/library/socket.rst:1499 +msgid "" +"This method is a shorthand for certain :meth:`~socket.settimeout` calls:" +msgstr "" + +#: ../Doc/library/socket.rst:1501 +msgid "``sock.setblocking(True)`` is equivalent to ``sock.settimeout(None)``" +msgstr "" + +#: ../Doc/library/socket.rst:1503 +msgid "``sock.setblocking(False)`` is equivalent to ``sock.settimeout(0.0)``" +msgstr "" + +#: ../Doc/library/socket.rst:1505 +msgid "" +"The method no longer applies :const:`SOCK_NONBLOCK` flag on :attr:`socket." +"type`." +msgstr "" + +#: ../Doc/library/socket.rst:1512 +msgid "" +"Set a timeout on blocking socket operations. The *value* argument can be a " +"nonnegative floating point number expressing seconds, or ``None``. If a non-" +"zero value is given, subsequent socket operations will raise a :exc:" +"`timeout` exception if the timeout period *value* has elapsed before the " +"operation has completed. If zero is given, the socket is put in non-" +"blocking mode. If ``None`` is given, the socket is put in blocking mode." +msgstr "" + +#: ../Doc/library/socket.rst:1519 +msgid "" +"For further information, please consult the :ref:`notes on socket timeouts " +"`." +msgstr "" + +#: ../Doc/library/socket.rst:1521 +msgid "" +"The method no longer toggles :const:`SOCK_NONBLOCK` flag on :attr:`socket." +"type`." +msgstr "" + +#: ../Doc/library/socket.rst:1532 +msgid "" +"Set the value of the given socket option (see the Unix manual page :manpage:" +"`setsockopt(2)`). The needed symbolic constants are defined in the :mod:" +"`socket` module (:const:`SO_\\*` etc.). The value can be an integer, " +"``None`` or a :term:`bytes-like object` representing a buffer. In the later " +"case it is up to the caller to ensure that the bytestring contains the " +"proper bits (see the optional built-in module :mod:`struct` for a way to " +"encode C structures as bytestrings). When value is set to ``None``, optlen " +"argument is required. It's equivalent to call setsockopt C function with " +"optval=NULL and optlen=optlen." +msgstr "" + +#: ../Doc/library/socket.rst:1546 +msgid "setsockopt(level, optname, None, optlen: int) form added." +msgstr "" + +#: ../Doc/library/socket.rst:1552 +msgid "" +"Shut down one or both halves of the connection. If *how* is :const:" +"`SHUT_RD`, further receives are disallowed. If *how* is :const:`SHUT_WR`, " +"further sends are disallowed. If *how* is :const:`SHUT_RDWR`, further sends " +"and receives are disallowed." +msgstr "" + +#: ../Doc/library/socket.rst:1560 +msgid "" +"Duplicate a socket and prepare it for sharing with a target process. The " +"target process must be provided with *process_id*. The resulting bytes " +"object can then be passed to the target process using some form of " +"interprocess communication and the socket can be recreated there using :func:" +"`fromshare`. Once this method has been called, it is safe to close the " +"socket since the operating system has already duplicated it for the target " +"process." +msgstr "" + +#: ../Doc/library/socket.rst:1572 +msgid "" +"Note that there are no methods :meth:`read` or :meth:`write`; use :meth:" +"`~socket.recv` and :meth:`~socket.send` without *flags* argument instead." +msgstr "" + +#: ../Doc/library/socket.rst:1575 +msgid "" +"Socket objects also have these (read-only) attributes that correspond to the " +"values given to the :class:`~socket.socket` constructor." +msgstr "" + +#: ../Doc/library/socket.rst:1581 +msgid "The socket family." +msgstr "" + +#: ../Doc/library/socket.rst:1586 +msgid "The socket type." +msgstr "" + +#: ../Doc/library/socket.rst:1591 +msgid "The socket protocol." +msgstr "" + +#: ../Doc/library/socket.rst:1598 +msgid "Notes on socket timeouts" +msgstr "" + +#: ../Doc/library/socket.rst:1600 +msgid "" +"A socket object can be in one of three modes: blocking, non-blocking, or " +"timeout. Sockets are by default always created in blocking mode, but this " +"can be changed by calling :func:`setdefaulttimeout`." +msgstr "" + +#: ../Doc/library/socket.rst:1604 +msgid "" +"In *blocking mode*, operations block until complete or the system returns an " +"error (such as connection timed out)." +msgstr "" + +#: ../Doc/library/socket.rst:1607 +msgid "" +"In *non-blocking mode*, operations fail (with an error that is unfortunately " +"system-dependent) if they cannot be completed immediately: functions from " +"the :mod:`select` can be used to know when and whether a socket is available " +"for reading or writing." +msgstr "" + +#: ../Doc/library/socket.rst:1612 +msgid "" +"In *timeout mode*, operations fail if they cannot be completed within the " +"timeout specified for the socket (they raise a :exc:`timeout` exception) or " +"if the system returns an error." +msgstr "" + +#: ../Doc/library/socket.rst:1617 +msgid "" +"At the operating system level, sockets in *timeout mode* are internally set " +"in non-blocking mode. Also, the blocking and timeout modes are shared " +"between file descriptors and socket objects that refer to the same network " +"endpoint. This implementation detail can have visible consequences if e.g. " +"you decide to use the :meth:`~socket.fileno()` of a socket." +msgstr "" + +#: ../Doc/library/socket.rst:1624 +msgid "Timeouts and the ``connect`` method" +msgstr "" + +#: ../Doc/library/socket.rst:1626 +msgid "" +"The :meth:`~socket.connect` operation is also subject to the timeout " +"setting, and in general it is recommended to call :meth:`~socket.settimeout` " +"before calling :meth:`~socket.connect` or pass a timeout parameter to :meth:" +"`create_connection`. However, the system network stack may also return a " +"connection timeout error of its own regardless of any Python socket timeout " +"setting." +msgstr "" + +#: ../Doc/library/socket.rst:1634 +msgid "Timeouts and the ``accept`` method" +msgstr "" + +#: ../Doc/library/socket.rst:1636 +msgid "" +"If :func:`getdefaulttimeout` is not :const:`None`, sockets returned by the :" +"meth:`~socket.accept` method inherit that timeout. Otherwise, the behaviour " +"depends on settings of the listening socket:" +msgstr "" + +#: ../Doc/library/socket.rst:1640 +msgid "" +"if the listening socket is in *blocking mode* or in *timeout mode*, the " +"socket returned by :meth:`~socket.accept` is in *blocking mode*;" +msgstr "" + +#: ../Doc/library/socket.rst:1643 +msgid "" +"if the listening socket is in *non-blocking mode*, whether the socket " +"returned by :meth:`~socket.accept` is in blocking or non-blocking mode is " +"operating system-dependent. If you want to ensure cross-platform behaviour, " +"it is recommended you manually override this setting." +msgstr "" + +#: ../Doc/library/socket.rst:1652 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/socket.rst:1654 +msgid "" +"Here are four minimal example programs using the TCP/IP protocol: a server " +"that echoes all data that it receives back (servicing only one client), and " +"a client using it. Note that a server must perform the sequence :func:`." +"socket`, :meth:`~socket.bind`, :meth:`~socket.listen`, :meth:`~socket." +"accept` (possibly repeating the :meth:`~socket.accept` to service more than " +"one client), while a client only needs the sequence :func:`.socket`, :meth:" +"`~socket.connect`. Also note that the server does not :meth:`~socket." +"sendall`/:meth:`~socket.recv` on the socket it is listening on but on the " +"new socket returned by :meth:`~socket.accept`." +msgstr "" + +#: ../Doc/library/socket.rst:1664 +msgid "The first two examples support IPv4 only. ::" +msgstr "" + +#: ../Doc/library/socket.rst:1695 +msgid "" +"The next two examples are identical to the above two, but support both IPv4 " +"and IPv6. The server side will listen to the first address family available " +"(it should listen to both instead). On most of IPv6-ready systems, IPv6 will " +"take precedence and the server may not accept IPv4 traffic. The client side " +"will try to connect to the all addresses returned as a result of the name " +"resolution, and sends traffic to the first one connected successfully. ::" +msgstr "" + +#: ../Doc/library/socket.rst:1768 +msgid "" +"The next example shows how to write a very simple network sniffer with raw " +"sockets on Windows. The example requires administrator privileges to modify " +"the interface::" +msgstr "" + +#: ../Doc/library/socket.rst:1793 +msgid "" +"The next example shows how to use the socket interface to communicate to a " +"CAN network using the raw socket protocol. To use CAN with the broadcast " +"manager protocol instead, open a socket with::" +msgstr "" + +#: ../Doc/library/socket.rst:1799 +msgid "" +"After binding (:const:`CAN_RAW`) or connecting (:const:`CAN_BCM`) the " +"socket, you can use the :meth:`socket.send`, and the :meth:`socket.recv` " +"operations (and their counterparts) on the socket object as usual." +msgstr "" + +#: ../Doc/library/socket.rst:1803 +msgid "This last example might require special privileges::" +msgstr "" + +#: ../Doc/library/socket.rst:1843 +msgid "" +"Running an example several times with too small delay between executions, " +"could lead to this error::" +msgstr "" + +#: ../Doc/library/socket.rst:1848 +msgid "" +"This is because the previous execution has left the socket in a " +"``TIME_WAIT`` state, and can't be immediately reused." +msgstr "" + +#: ../Doc/library/socket.rst:1851 +msgid "" +"There is a :mod:`socket` flag to set, in order to prevent this, :data:" +"`socket.SO_REUSEADDR`::" +msgstr "" + +#: ../Doc/library/socket.rst:1858 +msgid "" +"the :data:`SO_REUSEADDR` flag tells the kernel to reuse a local socket in " +"``TIME_WAIT`` state, without waiting for its natural timeout to expire." +msgstr "" + +#: ../Doc/library/socket.rst:1864 +msgid "" +"For an introduction to socket programming (in C), see the following papers:" +msgstr "" + +#: ../Doc/library/socket.rst:1866 +msgid "" +"*An Introductory 4.3BSD Interprocess Communication Tutorial*, by Stuart " +"Sechrest" +msgstr "" + +#: ../Doc/library/socket.rst:1868 +msgid "" +"*An Advanced 4.3BSD Interprocess Communication Tutorial*, by Samuel J. " +"Leffler et al," +msgstr "" + +#: ../Doc/library/socket.rst:1871 +msgid "" +"both in the UNIX Programmer's Manual, Supplementary Documents 1 (sections " +"PS1:7 and PS1:8). The platform-specific reference material for the various " +"socket-related system calls are also a valuable source of information on the " +"details of socket semantics. For Unix, refer to the manual pages; for " +"Windows, see the WinSock (or Winsock 2) specification. For IPv6-ready APIs, " +"readers may want to refer to :rfc:`3493` titled Basic Socket Interface " +"Extensions for IPv6." +msgstr "" diff --git a/library/socketserver.po b/library/socketserver.po new file mode 100644 index 000000000..9046eae53 --- /dev/null +++ b/library/socketserver.po @@ -0,0 +1,548 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/socketserver.rst:2 +msgid ":mod:`socketserver` --- A framework for network servers" +msgstr "" + +#: ../Doc/library/socketserver.rst:7 +msgid "**Source code:** :source:`Lib/socketserver.py`" +msgstr "" + +#: ../Doc/library/socketserver.rst:11 +msgid "" +"The :mod:`socketserver` module simplifies the task of writing network " +"servers." +msgstr "" + +#: ../Doc/library/socketserver.rst:13 +msgid "There are four basic concrete server classes:" +msgstr "" + +#: ../Doc/library/socketserver.rst:18 +msgid "" +"This uses the Internet TCP protocol, which provides for continuous streams " +"of data between the client and server. If *bind_and_activate* is true, the " +"constructor automatically attempts to invoke :meth:`~BaseServer.server_bind` " +"and :meth:`~BaseServer.server_activate`. The other parameters are passed to " +"the :class:`BaseServer` base class." +msgstr "" + +#: ../Doc/library/socketserver.rst:28 +msgid "" +"This uses datagrams, which are discrete packets of information that may " +"arrive out of order or be lost while in transit. The parameters are the " +"same as for :class:`TCPServer`." +msgstr "" + +#: ../Doc/library/socketserver.rst:36 +msgid "" +"These more infrequently used classes are similar to the TCP and UDP classes, " +"but use Unix domain sockets; they're not available on non-Unix platforms. " +"The parameters are the same as for :class:`TCPServer`." +msgstr "" + +#: ../Doc/library/socketserver.rst:42 +msgid "" +"These four classes process requests :dfn:`synchronously`; each request must " +"be completed before the next request can be started. This isn't suitable if " +"each request takes a long time to complete, because it requires a lot of " +"computation, or because it returns a lot of data which the client is slow to " +"process. The solution is to create a separate process or thread to handle " +"each request; the :class:`ForkingMixIn` and :class:`ThreadingMixIn` mix-in " +"classes can be used to support asynchronous behaviour." +msgstr "" + +#: ../Doc/library/socketserver.rst:50 +msgid "" +"Creating a server requires several steps. First, you must create a request " +"handler class by subclassing the :class:`BaseRequestHandler` class and " +"overriding its :meth:`~BaseRequestHandler.handle` method; this method will " +"process incoming requests. Second, you must instantiate one of the server " +"classes, passing it the server's address and the request handler class. It " +"is recommended to use the server in a :keyword:`with` statement. Then call " +"the :meth:`~BaseServer.handle_request` or :meth:`~BaseServer.serve_forever` " +"method of the server object to process one or many requests. Finally, call :" +"meth:`~BaseServer.server_close` to close the socket (unless you used a :" +"keyword:`!with` statement)." +msgstr "" + +#: ../Doc/library/socketserver.rst:62 +msgid "" +"When inheriting from :class:`ThreadingMixIn` for threaded connection " +"behavior, you should explicitly declare how you want your threads to behave " +"on an abrupt shutdown. The :class:`ThreadingMixIn` class defines an " +"attribute *daemon_threads*, which indicates whether or not the server should " +"wait for thread termination. You should set the flag explicitly if you " +"would like threads to behave autonomously; the default is :const:`False`, " +"meaning that Python will not exit until all threads created by :class:" +"`ThreadingMixIn` have exited." +msgstr "" + +#: ../Doc/library/socketserver.rst:71 +msgid "" +"Server classes have the same external methods and attributes, no matter what " +"network protocol they use." +msgstr "" + +#: ../Doc/library/socketserver.rst:76 +msgid "Server Creation Notes" +msgstr "" + +#: ../Doc/library/socketserver.rst:78 +msgid "" +"There are five classes in an inheritance diagram, four of which represent " +"synchronous servers of four types::" +msgstr "" + +#: ../Doc/library/socketserver.rst:95 +msgid "" +"Note that :class:`UnixDatagramServer` derives from :class:`UDPServer`, not " +"from :class:`UnixStreamServer` --- the only difference between an IP and a " +"Unix stream server is the address family, which is simply repeated in both " +"Unix server classes." +msgstr "" + +#: ../Doc/library/socketserver.rst:104 +msgid "" +"Forking and threading versions of each type of server can be created using " +"these mix-in classes. For instance, :class:`ThreadingUDPServer` is created " +"as follows::" +msgstr "" + +#: ../Doc/library/socketserver.rst:111 +msgid "" +"The mix-in class comes first, since it overrides a method defined in :class:" +"`UDPServer`. Setting the various attributes also changes the behavior of " +"the underlying server mechanism." +msgstr "" + +#: ../Doc/library/socketserver.rst:115 +msgid "" +":class:`ForkingMixIn` and the Forking classes mentioned below are only " +"available on POSIX platforms that support :func:`~os.fork`." +msgstr "" + +#: ../Doc/library/socketserver.rst:118 +msgid "" +":meth:`socketserver.ForkingMixIn.server_close` waits until all child " +"processes complete, except if :attr:`socketserver.ForkingMixIn." +"block_on_close` attribute is false." +msgstr "" + +#: ../Doc/library/socketserver.rst:122 +msgid "" +":meth:`socketserver.ThreadingMixIn.server_close` waits until all non-daemon " +"threads complete, except if :attr:`socketserver.ThreadingMixIn." +"block_on_close` attribute is false. Use daemonic threads by setting :data:" +"`ThreadingMixIn.daemon_threads` to ``True`` to not wait until threads " +"complete." +msgstr "" + +#: ../Doc/library/socketserver.rst:131 +msgid "" +":meth:`socketserver.ForkingMixIn.server_close` and :meth:`socketserver." +"ThreadingMixIn.server_close` now waits until all child processes and non-" +"daemonic threads complete. Add a new :attr:`socketserver.ForkingMixIn." +"block_on_close` class attribute to opt-in for the pre-3.7 behaviour." +msgstr "" + +#: ../Doc/library/socketserver.rst:143 +msgid "These classes are pre-defined using the mix-in classes." +msgstr "" + +#: ../Doc/library/socketserver.rst:146 +msgid "" +"To implement a service, you must derive a class from :class:" +"`BaseRequestHandler` and redefine its :meth:`~BaseRequestHandler.handle` " +"method. You can then run various versions of the service by combining one of " +"the server classes with your request handler class. The request handler " +"class must be different for datagram or stream services. This can be hidden " +"by using the handler subclasses :class:`StreamRequestHandler` or :class:" +"`DatagramRequestHandler`." +msgstr "" + +#: ../Doc/library/socketserver.rst:154 +msgid "" +"Of course, you still have to use your head! For instance, it makes no sense " +"to use a forking server if the service contains state in memory that can be " +"modified by different requests, since the modifications in the child process " +"would never reach the initial state kept in the parent process and passed to " +"each child. In this case, you can use a threading server, but you will " +"probably have to use locks to protect the integrity of the shared data." +msgstr "" + +#: ../Doc/library/socketserver.rst:161 +msgid "" +"On the other hand, if you are building an HTTP server where all data is " +"stored externally (for instance, in the file system), a synchronous class " +"will essentially render the service \"deaf\" while one request is being " +"handled -- which may be for a very long time if a client is slow to receive " +"all the data it has requested. Here a threading or forking server is " +"appropriate." +msgstr "" + +#: ../Doc/library/socketserver.rst:167 +msgid "" +"In some cases, it may be appropriate to process part of a request " +"synchronously, but to finish processing in a forked child depending on the " +"request data. This can be implemented by using a synchronous server and " +"doing an explicit fork in the request handler class :meth:" +"`~BaseRequestHandler.handle` method." +msgstr "" + +#: ../Doc/library/socketserver.rst:172 +msgid "" +"Another approach to handling multiple simultaneous requests in an " +"environment that supports neither threads nor :func:`~os.fork` (or where " +"these are too expensive or inappropriate for the service) is to maintain an " +"explicit table of partially finished requests and to use :mod:`selectors` to " +"decide which request to work on next (or whether to handle a new incoming " +"request). This is particularly important for stream services where each " +"client can potentially be connected for a long time (if threads or " +"subprocesses cannot be used). See :mod:`asyncore` for another way to manage " +"this." +msgstr "" + +#: ../Doc/library/socketserver.rst:186 +msgid "Server Objects" +msgstr "Objets Serveur" + +#: ../Doc/library/socketserver.rst:190 +msgid "" +"This is the superclass of all Server objects in the module. It defines the " +"interface, given below, but does not implement most of the methods, which is " +"done in subclasses. The two parameters are stored in the respective :attr:" +"`server_address` and :attr:`RequestHandlerClass` attributes." +msgstr "" + +#: ../Doc/library/socketserver.rst:198 +msgid "" +"Return an integer file descriptor for the socket on which the server is " +"listening. This function is most commonly passed to :mod:`selectors`, to " +"allow monitoring multiple servers in the same process." +msgstr "" + +#: ../Doc/library/socketserver.rst:205 +msgid "" +"Process a single request. This function calls the following methods in " +"order: :meth:`get_request`, :meth:`verify_request`, and :meth:" +"`process_request`. If the user-provided :meth:`~BaseRequestHandler.handle` " +"method of the handler class raises an exception, the server's :meth:" +"`handle_error` method will be called. If no request is received within :" +"attr:`timeout` seconds, :meth:`handle_timeout` will be called and :meth:" +"`handle_request` will return." +msgstr "" + +#: ../Doc/library/socketserver.rst:217 +msgid "" +"Handle requests until an explicit :meth:`shutdown` request. Poll for " +"shutdown every *poll_interval* seconds. Ignores the :attr:`timeout` " +"attribute. It also calls :meth:`service_actions`, which may be used by a " +"subclass or mixin to provide actions specific to a given service. For " +"example, the :class:`ForkingMixIn` class uses :meth:`service_actions` to " +"clean up zombie child processes." +msgstr "" + +#: ../Doc/library/socketserver.rst:225 +msgid "Added ``service_actions`` call to the ``serve_forever`` method." +msgstr "" + +#: ../Doc/library/socketserver.rst:231 +msgid "" +"This is called in the :meth:`serve_forever` loop. This method can be " +"overridden by subclasses or mixin classes to perform actions specific to a " +"given service, such as cleanup actions." +msgstr "" + +#: ../Doc/library/socketserver.rst:239 +msgid "Tell the :meth:`serve_forever` loop to stop and wait until it does." +msgstr "" + +#: ../Doc/library/socketserver.rst:244 +msgid "Clean up the server. May be overridden." +msgstr "" + +#: ../Doc/library/socketserver.rst:249 +msgid "" +"The family of protocols to which the server's socket belongs. Common " +"examples are :const:`socket.AF_INET` and :const:`socket.AF_UNIX`." +msgstr "" + +#: ../Doc/library/socketserver.rst:255 +msgid "" +"The user-provided request handler class; an instance of this class is " +"created for each request." +msgstr "" + +#: ../Doc/library/socketserver.rst:261 +msgid "" +"The address on which the server is listening. The format of addresses " +"varies depending on the protocol family; see the documentation for the :mod:" +"`socket` module for details. For Internet protocols, this is a tuple " +"containing a string giving the address, and an integer port number: " +"``('127.0.0.1', 80)``, for example." +msgstr "" + +#: ../Doc/library/socketserver.rst:270 +msgid "" +"The socket object on which the server will listen for incoming requests." +msgstr "" + +#: ../Doc/library/socketserver.rst:273 +msgid "The server classes support the following class variables:" +msgstr "" + +#: ../Doc/library/socketserver.rst:279 +msgid "" +"Whether the server will allow the reuse of an address. This defaults to :" +"const:`False`, and can be set in subclasses to change the policy." +msgstr "" + +#: ../Doc/library/socketserver.rst:285 +msgid "" +"The size of the request queue. If it takes a long time to process a single " +"request, any requests that arrive while the server is busy are placed into a " +"queue, up to :attr:`request_queue_size` requests. Once the queue is full, " +"further requests from clients will get a \"Connection denied\" error. The " +"default value is usually 5, but this can be overridden by subclasses." +msgstr "" + +#: ../Doc/library/socketserver.rst:294 +msgid "" +"The type of socket used by the server; :const:`socket.SOCK_STREAM` and :" +"const:`socket.SOCK_DGRAM` are two common values." +msgstr "" + +#: ../Doc/library/socketserver.rst:300 +msgid "" +"Timeout duration, measured in seconds, or :const:`None` if no timeout is " +"desired. If :meth:`handle_request` receives no incoming requests within the " +"timeout period, the :meth:`handle_timeout` method is called." +msgstr "" + +#: ../Doc/library/socketserver.rst:305 +msgid "" +"There are various server methods that can be overridden by subclasses of " +"base server classes like :class:`TCPServer`; these methods aren't useful to " +"external users of the server object." +msgstr "" + +#: ../Doc/library/socketserver.rst:314 +msgid "" +"Actually processes the request by instantiating :attr:`RequestHandlerClass` " +"and calling its :meth:`~BaseRequestHandler.handle` method." +msgstr "" + +#: ../Doc/library/socketserver.rst:320 +msgid "" +"Must accept a request from the socket, and return a 2-tuple containing the " +"*new* socket object to be used to communicate with the client, and the " +"client's address." +msgstr "" + +#: ../Doc/library/socketserver.rst:327 +msgid "" +"This function is called if the :meth:`~BaseRequestHandler.handle` method of " +"a :attr:`RequestHandlerClass` instance raises an exception. The default " +"action is to print the traceback to standard error and continue handling " +"further requests." +msgstr "" + +#: ../Doc/library/socketserver.rst:332 +msgid "Now only called for exceptions derived from the :exc:`Exception` class." +msgstr "" + +#: ../Doc/library/socketserver.rst:339 +msgid "" +"This function is called when the :attr:`timeout` attribute has been set to a " +"value other than :const:`None` and the timeout period has passed with no " +"requests being received. The default action for forking servers is to " +"collect the status of any child processes that have exited, while in " +"threading servers this method does nothing." +msgstr "" + +#: ../Doc/library/socketserver.rst:348 +msgid "" +"Calls :meth:`finish_request` to create an instance of the :attr:" +"`RequestHandlerClass`. If desired, this function can create a new process " +"or thread to handle the request; the :class:`ForkingMixIn` and :class:" +"`ThreadingMixIn` classes do this." +msgstr "" + +#: ../Doc/library/socketserver.rst:360 +msgid "" +"Called by the server's constructor to activate the server. The default " +"behavior for a TCP server just invokes :meth:`~socket.socket.listen` on the " +"server's socket. May be overridden." +msgstr "" + +#: ../Doc/library/socketserver.rst:367 +msgid "" +"Called by the server's constructor to bind the socket to the desired " +"address. May be overridden." +msgstr "" + +#: ../Doc/library/socketserver.rst:373 +msgid "" +"Must return a Boolean value; if the value is :const:`True`, the request will " +"be processed, and if it's :const:`False`, the request will be denied. This " +"function can be overridden to implement access controls for a server. The " +"default implementation always returns :const:`True`." +msgstr "" + +#: ../Doc/library/socketserver.rst:379 +msgid "" +"Support for the :term:`context manager` protocol was added. Exiting the " +"context manager is equivalent to calling :meth:`server_close`." +msgstr "" + +#: ../Doc/library/socketserver.rst:385 +msgid "Request Handler Objects" +msgstr "" + +#: ../Doc/library/socketserver.rst:389 +msgid "" +"This is the superclass of all request handler objects. It defines the " +"interface, given below. A concrete request handler subclass must define a " +"new :meth:`handle` method, and can override any of the other methods. A new " +"instance of the subclass is created for each request." +msgstr "" + +#: ../Doc/library/socketserver.rst:398 +msgid "" +"Called before the :meth:`handle` method to perform any initialization " +"actions required. The default implementation does nothing." +msgstr "" + +#: ../Doc/library/socketserver.rst:404 +msgid "" +"This function must do all the work required to service a request. The " +"default implementation does nothing. Several instance attributes are " +"available to it; the request is available as :attr:`self.request`; the " +"client address as :attr:`self.client_address`; and the server instance as :" +"attr:`self.server`, in case it needs access to per-server information." +msgstr "" + +#: ../Doc/library/socketserver.rst:410 +msgid "" +"The type of :attr:`self.request` is different for datagram or stream " +"services. For stream services, :attr:`self.request` is a socket object; for " +"datagram services, :attr:`self.request` is a pair of string and socket." +msgstr "" + +#: ../Doc/library/socketserver.rst:417 +msgid "" +"Called after the :meth:`handle` method to perform any clean-up actions " +"required. The default implementation does nothing. If :meth:`setup` raises " +"an exception, this function will not be called." +msgstr "" + +#: ../Doc/library/socketserver.rst:425 +msgid "" +"These :class:`BaseRequestHandler` subclasses override the :meth:" +"`~BaseRequestHandler.setup` and :meth:`~BaseRequestHandler.finish` methods, " +"and provide :attr:`self.rfile` and :attr:`self.wfile` attributes. The :attr:" +"`self.rfile` and :attr:`self.wfile` attributes can be read or written, " +"respectively, to get the request data or return data to the client." +msgstr "" + +#: ../Doc/library/socketserver.rst:432 +msgid "" +"The :attr:`rfile` attributes of both classes support the :class:`io." +"BufferedIOBase` readable interface, and :attr:`DatagramRequestHandler.wfile` " +"supports the :class:`io.BufferedIOBase` writable interface." +msgstr "" + +#: ../Doc/library/socketserver.rst:437 +msgid "" +":attr:`StreamRequestHandler.wfile` also supports the :class:`io." +"BufferedIOBase` writable interface." +msgstr "" + +#: ../Doc/library/socketserver.rst:443 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/socketserver.rst:446 +msgid ":class:`socketserver.TCPServer` Example" +msgstr "" + +#: ../Doc/library/socketserver.rst:448 ../Doc/library/socketserver.rst:547 +msgid "This is the server side::" +msgstr "" + +#: ../Doc/library/socketserver.rst:478 +msgid "" +"An alternative request handler class that makes use of streams (file-like " +"objects that simplify communication by providing the standard file " +"interface)::" +msgstr "" + +#: ../Doc/library/socketserver.rst:493 +msgid "" +"The difference is that the ``readline()`` call in the second handler will " +"call ``recv()`` multiple times until it encounters a newline character, " +"while the single ``recv()`` call in the first handler will just return what " +"has been sent from the client in one ``sendall()`` call." +msgstr "" + +#: ../Doc/library/socketserver.rst:499 ../Doc/library/socketserver.rst:571 +msgid "This is the client side::" +msgstr "" + +#: ../Doc/library/socketserver.rst:520 ../Doc/library/socketserver.rst:646 +msgid "The output of the example should look something like this:" +msgstr "" + +#: ../Doc/library/socketserver.rst:522 +msgid "Server:" +msgstr "Serveur :" + +#: ../Doc/library/socketserver.rst:532 +msgid "Client:" +msgstr "Client :" + +#: ../Doc/library/socketserver.rst:545 +msgid ":class:`socketserver.UDPServer` Example" +msgstr "" + +#: ../Doc/library/socketserver.rst:590 +msgid "" +"The output of the example should look exactly like for the TCP server " +"example." +msgstr "" + +#: ../Doc/library/socketserver.rst:594 +msgid "Asynchronous Mixins" +msgstr "" + +#: ../Doc/library/socketserver.rst:596 +msgid "" +"To build asynchronous handlers, use the :class:`ThreadingMixIn` and :class:" +"`ForkingMixIn` classes." +msgstr "" + +#: ../Doc/library/socketserver.rst:599 +msgid "An example for the :class:`ThreadingMixIn` class::" +msgstr "" + +#: ../Doc/library/socketserver.rst:657 +msgid "" +"The :class:`ForkingMixIn` class is used in the same way, except that the " +"server will spawn a new process for each request. Available only on POSIX " +"platforms that support :func:`~os.fork`." +msgstr "" diff --git a/library/spwd.po b/library/spwd.po new file mode 100644 index 000000000..7548e9421 --- /dev/null +++ b/library/spwd.po @@ -0,0 +1,227 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2018-12-17 19:00+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/library/spwd.rst:2 +msgid ":mod:`spwd` --- The shadow password database" +msgstr ":mod:`spwd` — La base de données de mots de passe *shadow*" + +#: ../Doc/library/spwd.rst:10 +msgid "" +"This module provides access to the Unix shadow password database. It is " +"available on various Unix versions." +msgstr "" +"Ce module permet d'accéder à la base de données UNIX de mots de passe " +"*shadow*. Elle est disponible sur différentes versions d'UNIX." + +#: ../Doc/library/spwd.rst:13 +msgid "" +"You must have enough privileges to access the shadow password database (this " +"usually means you have to be root)." +msgstr "" +"Vous devez disposer des droits suffisants pour accéder à la base de données " +"de mots de passe *shadow* (cela signifie généralement que vous devez être " +"*root*)." + +#: ../Doc/library/spwd.rst:16 +msgid "" +"Shadow password database entries are reported as a tuple-like object, whose " +"attributes correspond to the members of the ``spwd`` structure (Attribute " +"field below, see ````):" +msgstr "" +"Les entrées de la base de données de mots de passe *shadow* sont renvoyées " +"comme un objet semblable à un tuple, dont les attributs correspondent aux " +"membres de la structure ``spwd`` (champ attribut ci-dessous, voir ````) :" + +#: ../Doc/library/spwd.rst:21 +msgid "Index" +msgstr "Index" + +#: ../Doc/library/spwd.rst:21 +msgid "Attribute" +msgstr "Attribut" + +#: ../Doc/library/spwd.rst:21 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/spwd.rst:23 +msgid "0" +msgstr "0" + +#: ../Doc/library/spwd.rst:23 +msgid "``sp_namp``" +msgstr "``sp_namp``" + +#: ../Doc/library/spwd.rst:23 +msgid "Login name" +msgstr "Nom d’utilisateur" + +#: ../Doc/library/spwd.rst:25 +msgid "1" +msgstr "1" + +#: ../Doc/library/spwd.rst:25 +msgid "``sp_pwdp``" +msgstr "``sp_pwdp``" + +#: ../Doc/library/spwd.rst:25 +msgid "Encrypted password" +msgstr "Mot de passe haché" + +#: ../Doc/library/spwd.rst:27 +msgid "2" +msgstr "2" + +#: ../Doc/library/spwd.rst:27 +msgid "``sp_lstchg``" +msgstr "``sp_lstchg``" + +#: ../Doc/library/spwd.rst:27 +msgid "Date of last change" +msgstr "Date du dernier changement" + +#: ../Doc/library/spwd.rst:29 +msgid "3" +msgstr "3" + +#: ../Doc/library/spwd.rst:29 +msgid "``sp_min``" +msgstr "``sp_min``" + +#: ../Doc/library/spwd.rst:29 +msgid "Minimal number of days between changes" +msgstr "Nombre minimal de jours entre les modifications" + +#: ../Doc/library/spwd.rst:32 +msgid "4" +msgstr "4" + +#: ../Doc/library/spwd.rst:32 +msgid "``sp_max``" +msgstr "``sp_max``" + +#: ../Doc/library/spwd.rst:32 +msgid "Maximum number of days between changes" +msgstr "Nombre maximal de jours entre les modifications" + +#: ../Doc/library/spwd.rst:35 +msgid "5" +msgstr "5" + +#: ../Doc/library/spwd.rst:35 +msgid "``sp_warn``" +msgstr "``sp_warn``" + +#: ../Doc/library/spwd.rst:35 +msgid "Number of days before password expires to warn user about it" +msgstr "" +"Nombre de jours avant l'expiration du mot de passe pendant lequel " +"l'utilisateur doit être prévenu" + +#: ../Doc/library/spwd.rst:38 +msgid "6" +msgstr "6" + +#: ../Doc/library/spwd.rst:38 +msgid "``sp_inact``" +msgstr "``sp_inact``" + +#: ../Doc/library/spwd.rst:38 +msgid "Number of days after password expires until account is disabled" +msgstr "" +"Nombre de jours avant la désactivation du compte, suite à l'expiration du " +"mot de passe" + +#: ../Doc/library/spwd.rst:42 +msgid "7" +msgstr "7" + +#: ../Doc/library/spwd.rst:42 +msgid "``sp_expire``" +msgstr "``sp_expire``" + +#: ../Doc/library/spwd.rst:42 +msgid "Number of days since 1970-01-01 when account expires" +msgstr "" +"Date à laquelle le compte expire, en nombre de jours depuis le 1er janvier " +"1970" + +#: ../Doc/library/spwd.rst:45 +msgid "8" +msgstr "8" + +#: ../Doc/library/spwd.rst:45 +msgid "``sp_flag``" +msgstr "``sp_flag``" + +#: ../Doc/library/spwd.rst:45 +msgid "Reserved" +msgstr "Réservé" + +#: ../Doc/library/spwd.rst:48 +msgid "" +"The sp_namp and sp_pwdp items are strings, all others are integers. :exc:" +"`KeyError` is raised if the entry asked for cannot be found." +msgstr "" +"Les champs ``sp_namp`` et ``sp_pwdp`` sont des chaines de caractères, tous " +"les autres sont des entiers. :exc:`KeyError` est levée si l’entrée demandée " +"est introuvable." + +#: ../Doc/library/spwd.rst:51 +msgid "The following functions are defined:" +msgstr "Les fonctions suivantes sont définies :" + +#: ../Doc/library/spwd.rst:56 +msgid "Return the shadow password database entry for the given user name." +msgstr "" +"Renvoie l'entrée de base de données de mot de passe *shadow* pour le nom " +"d'utilisateur donné." + +#: ../Doc/library/spwd.rst:58 +msgid "" +"Raises a :exc:`PermissionError` instead of :exc:`KeyError` if the user " +"doesn't have privileges." +msgstr "" +"Lève une :exc:`PermissionError` au lieu d’une :exc:`KeyError` si " +"l’utilisateur n’a pas les droits suffisants." + +#: ../Doc/library/spwd.rst:64 +msgid "" +"Return a list of all available shadow password database entries, in " +"arbitrary order." +msgstr "" +"Renvoie une liste de toutes les entrées de la base de données de mots de " +"passe *shadow*, dans un ordre arbitraire." + +#: ../Doc/library/spwd.rst:71 +msgid "Module :mod:`grp`" +msgstr "Module :mod:`grp`" + +#: ../Doc/library/spwd.rst:71 +msgid "An interface to the group database, similar to this." +msgstr "Interface pour la base de données des groupes, similaire à celle-ci." + +#: ../Doc/library/spwd.rst:73 +msgid "Module :mod:`pwd`" +msgstr "Module :mod:`pwd`" + +#: ../Doc/library/spwd.rst:74 +msgid "An interface to the normal password database, similar to this." +msgstr "" +"Interface pour la base de données (normale) des mots de passe, semblable à " +"ceci." diff --git a/library/sqlite3.po b/library/sqlite3.po new file mode 100644 index 000000000..804886bb9 --- /dev/null +++ b/library/sqlite3.po @@ -0,0 +1,1342 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-03-26 15:55+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/library/sqlite3.rst:2 +msgid ":mod:`sqlite3` --- DB-API 2.0 interface for SQLite databases" +msgstr ":mod:`sqlite3` — Interface DB-API 2.0 pour bases de données SQLite" + +#: ../Doc/library/sqlite3.rst:9 +msgid "**Source code:** :source:`Lib/sqlite3/`" +msgstr "**Code source :** :source:`Lib/sqlite3/`" + +#: ../Doc/library/sqlite3.rst:13 +msgid "" +"SQLite is a C library that provides a lightweight disk-based database that " +"doesn't require a separate server process and allows accessing the database " +"using a nonstandard variant of the SQL query language. Some applications can " +"use SQLite for internal data storage. It's also possible to prototype an " +"application using SQLite and then port the code to a larger database such as " +"PostgreSQL or Oracle." +msgstr "" +"SQLite est une bibliothèque C qui fournit une base de données légère sur " +"disque ne nécessitant pas de processus serveur et qui utilise une variante " +"(non standard) du langage de requête SQL pour accéder aux données. Certaines " +"applications peuvent utiliser SQLite pour le stockage de données internes. " +"Il est également possible de créer une application prototype utilisant " +"SQLite, puis de modifier le code pour utiliser une base de données plus " +"robuste telle que PostgreSQL ou Oracle." + +#: ../Doc/library/sqlite3.rst:20 +msgid "" +"The sqlite3 module was written by Gerhard Häring. It provides a SQL " +"interface compliant with the DB-API 2.0 specification described by :pep:" +"`249`." +msgstr "" +"Le module *sqlite3* a été écrit par Gerhard Häring. Il fournit une " +"interface SQL conforme à la spécification DB-API 2.0 décrite par :pep:`249`." + +#: ../Doc/library/sqlite3.rst:23 +msgid "" +"To use the module, you must first create a :class:`Connection` object that " +"represents the database. Here the data will be stored in the :file:`example." +"db` file::" +msgstr "" +"Pour utiliser le module, vous devez d’abord créer une :class:`Connection` " +"qui représente la base de données. Dans cet exemple, les données sont " +"stockées dans le fichier :file:`example.db` ::" + +#: ../Doc/library/sqlite3.rst:30 +msgid "" +"You can also supply the special name ``:memory:`` to create a database in " +"RAM." +msgstr "" +"Vous pouvez également fournir le nom spécial ``:memory:`` pour créer une " +"base de données dans la mémoire vive." + +#: ../Doc/library/sqlite3.rst:32 +msgid "" +"Once you have a :class:`Connection`, you can create a :class:`Cursor` " +"object and call its :meth:`~Cursor.execute` method to perform SQL commands::" +msgstr "" +"Une fois que vous avez une instance de :class:`Connection`, vous pouvez " +"créer un objet :class:`Cursor` et appeler sa méthode :meth:`~Cursor.execute` " +"pour exécuter les commandes SQL ::" + +#: ../Doc/library/sqlite3.rst:51 +msgid "" +"The data you've saved is persistent and is available in subsequent sessions::" +msgstr "" +"Les données que vous avez sauvegardées sont persistantes et disponibles dans " +"les sessions suivantes ::" + +#: ../Doc/library/sqlite3.rst:57 +msgid "" +"Usually your SQL operations will need to use values from Python variables. " +"You shouldn't assemble your query using Python's string operations because " +"doing so is insecure; it makes your program vulnerable to an SQL injection " +"attack (see https://xkcd.com/327/ for humorous example of what can go wrong)." +msgstr "" +"Habituellement, vos opérations SQL utilisent les valeurs de variables " +"Python. Vous ne devez pas assembler votre requête à l'aide des opérations " +"sur les chaînes de caractères de Python, car cela n'est pas sûr. Cela rend " +"votre programme vulnérable à une attaque par injection SQL (voir https://" +"xkcd.com/327/ pour un exemple amusant de ce qui peut mal tourner)." + +#: ../Doc/library/sqlite3.rst:62 +msgid "" +"Instead, use the DB-API's parameter substitution. Put ``?`` as a " +"placeholder wherever you want to use a value, and then provide a tuple of " +"values as the second argument to the cursor's :meth:`~Cursor.execute` " +"method. (Other database modules may use a different placeholder, such as ``" +"%s`` or ``:1``.) For example::" +msgstr "" +"À la place, utilisez la capacité DB-API de substitution des paramètres. " +"Placez un ``?`` comme indicateur partout où vous voulez utiliser une valeur, " +"puis fournissez un *tuple* de valeurs comme second argument de la méthode :" +"meth:`~Cursor.execute`. D'autres modules de base de données peuvent utiliser " +"un espace réservé différent, tel que ``%s`` ou ``:1``. Par exemple ::" + +#: ../Doc/library/sqlite3.rst:84 +msgid "" +"To retrieve data after executing a SELECT statement, you can either treat " +"the cursor as an :term:`iterator`, call the cursor's :meth:`~Cursor." +"fetchone` method to retrieve a single matching row, or call :meth:`~Cursor." +"fetchall` to get a list of the matching rows." +msgstr "" +"Pour récupérer des données après avoir exécuté une instruction *SELECT*, " +"vous pouvez considérer le curseur comme un :term:`itérateur `, " +"appeler la méthode du curseur :meth:`~Cursor.fetchone` pour récupérer une " +"seule ligne correspondante ou appeler :meth:`~Cursor.fetchall` pour obtenir " +"une liste des lignes correspondantes." + +#: ../Doc/library/sqlite3.rst:89 +msgid "This example uses the iterator form::" +msgstr "Cet exemple utilise la forme itérateur ::" + +#: ../Doc/library/sqlite3.rst:104 +msgid "https://github.com/ghaering/pysqlite" +msgstr "https://github.com/ghaering/pysqlite" + +#: ../Doc/library/sqlite3.rst:103 +msgid "" +"The pysqlite web page -- sqlite3 is developed externally under the name " +"\"pysqlite\"." +msgstr "" +"La page web de *pysqlite* — *sqlite3* est développée sur un site tiers sous " +"le nom *pysqlite*." + +#: ../Doc/library/sqlite3.rst:108 +msgid "https://www.sqlite.org" +msgstr "https://www.sqlite.org" + +#: ../Doc/library/sqlite3.rst:107 +msgid "" +"The SQLite web page; the documentation describes the syntax and the " +"available data types for the supported SQL dialect." +msgstr "" +"Dans la page Web de SQLite, la documentation décrit la syntaxe et les types " +"de données disponibles qui sont pris en charge par cette variante SQL." + +#: ../Doc/library/sqlite3.rst:111 +msgid "https://www.w3schools.com/sql/" +msgstr "https://www.w3schools.com/sql/" + +#: ../Doc/library/sqlite3.rst:111 +msgid "Tutorial, reference and examples for learning SQL syntax." +msgstr "Tutoriel, référence et exemples pour apprendre la syntaxe SQL." + +#: ../Doc/library/sqlite3.rst:113 +msgid ":pep:`249` - Database API Specification 2.0" +msgstr ":pep:`249` — Spécifications de l'API 2.0 pour la base de données" + +#: ../Doc/library/sqlite3.rst:114 +msgid "PEP written by Marc-André Lemburg." +msgstr "PEP écrite par Marc-André Lemburg." + +#: ../Doc/library/sqlite3.rst:120 +msgid "Module functions and constants" +msgstr "Fonctions et constantes du module" + +#: ../Doc/library/sqlite3.rst:125 +msgid "" +"The version number of this module, as a string. This is not the version of " +"the SQLite library." +msgstr "" +"Le numéro de version de ce module, sous forme de chaîne. Ce n'est pas la " +"version de la bibliothèque SQLite." + +#: ../Doc/library/sqlite3.rst:131 +msgid "" +"The version number of this module, as a tuple of integers. This is not the " +"version of the SQLite library." +msgstr "" +"Le numéro de version de ce module, sous forme d'un n-uplet d'entiers. Ce " +"n'est pas la version de la bibliothèque SQLite." + +#: ../Doc/library/sqlite3.rst:137 +msgid "The version number of the run-time SQLite library, as a string." +msgstr "" +"Le numéro de version de la bibliothèque d'exécution SQLite, sous forme de " +"chaîne." + +#: ../Doc/library/sqlite3.rst:142 +msgid "" +"The version number of the run-time SQLite library, as a tuple of integers." +msgstr "" +"Le numéro de version de la bibliothèque d'exécution SQLite, sous forme " +"d'entier." + +#: ../Doc/library/sqlite3.rst:147 ../Doc/library/sqlite3.rst:160 +msgid "" +"This constant is meant to be used with the *detect_types* parameter of the :" +"func:`connect` function." +msgstr "" +"Cette constante est destinée à être utilisée avec le paramètre " +"*detect_types* de la fonction :func:`connect`." + +#: ../Doc/library/sqlite3.rst:150 +msgid "" +"Setting it makes the :mod:`sqlite3` module parse the declared type for each " +"column it returns. It will parse out the first word of the declared type, " +"i. e. for \"integer primary key\", it will parse out \"integer\", or for " +"\"number(10)\" it will parse out \"number\". Then for that column, it will " +"look into the converters dictionary and use the converter function " +"registered for that type there." +msgstr "" +"Si elle est définie, le module :mod:`sqlite3` analyse le type de donnée " +"déclarée pour chaque colonne. Il déduit le type du premier mot de la " +"déclaration, par exemple de *integer primary key* il gardera *integer*, ou " +"de *number(10)* il gardera *number*. Ensuite, pour cette colonne, il " +"utilisera une fonction de conversion du dictionnaire des convertisseurs." + +#: ../Doc/library/sqlite3.rst:163 +msgid "" +"Setting this makes the SQLite interface parse the column name for each " +"column it returns. It will look for a string formed [mytype] in there, and " +"then decide that 'mytype' is the type of the column. It will try to find an " +"entry of 'mytype' in the converters dictionary and then use the converter " +"function found there to return the value. The column name found in :attr:" +"`Cursor.description` is only the first word of the column name, i. e. if " +"you use something like ``'as \"x [datetime]\"'`` in your SQL, then we will " +"parse out everything until the first blank for the column name: the column " +"name would simply be \"x\"." +msgstr "" +"Permet à l’interface SQLite d'analyser le nom pour chaque colonne. Il y " +"cherchera une chaîne comme ``[mytype]`` indiquant que la colonne est de type " +"``mytype``. Il essaiera de trouver une entrée *mytype* dans le dictionnaire, " +"puis utilisera la fonction de conversion qui s'y trouve pour renvoyer la " +"valeur. Le nom de colonne donnée à :attr:`Cursor.description` n'est alors " +"que le premier mot du nom de la colonne, par exemple si vous utilisez ``'as " +"\\\"x [datetime]\\\"'`` dans votre code SQL, le nom de la colonne sera " +"simplement *x*." + +#: ../Doc/library/sqlite3.rst:175 +msgid "" +"Opens a connection to the SQLite database file *database*. By default " +"returns a :class:`Connection` object, unless a custom *factory* is given." +msgstr "" +"Ouvre une connexion à la base de données SQLite *database*. Par défaut, " +"cette commande renvoie un objet :class:`Connection`, sauf si *factory* est " +"donné." + +#: ../Doc/library/sqlite3.rst:178 +msgid "" +"*database* is a :term:`path-like object` giving the pathname (absolute or " +"relative to the current working directory) of the database file to be " +"opened. You can use ``\":memory:\"`` to open a database connection to a " +"database that resides in RAM instead of on disk." +msgstr "" + +#: ../Doc/library/sqlite3.rst:183 +msgid "" +"When a database is accessed by multiple connections, and one of the " +"processes modifies the database, the SQLite database is locked until that " +"transaction is committed. The *timeout* parameter specifies how long the " +"connection should wait for the lock to go away until raising an exception. " +"The default for the timeout parameter is 5.0 (five seconds)." +msgstr "" + +#: ../Doc/library/sqlite3.rst:189 +msgid "" +"For the *isolation_level* parameter, please see the :attr:`~Connection." +"isolation_level` property of :class:`Connection` objects." +msgstr "" + +#: ../Doc/library/sqlite3.rst:192 +msgid "" +"SQLite natively supports only the types TEXT, INTEGER, REAL, BLOB and NULL. " +"If you want to use other types you must add support for them yourself. The " +"*detect_types* parameter and the using custom **converters** registered with " +"the module-level :func:`register_converter` function allow you to easily do " +"that." +msgstr "" + +#: ../Doc/library/sqlite3.rst:197 +msgid "" +"*detect_types* defaults to 0 (i. e. off, no type detection), you can set it " +"to any combination of :const:`PARSE_DECLTYPES` and :const:`PARSE_COLNAMES` " +"to turn type detection on." +msgstr "" + +#: ../Doc/library/sqlite3.rst:201 +msgid "" +"By default, *check_same_thread* is :const:`True` and only the creating " +"thread may use the connection. If set :const:`False`, the returned " +"connection may be shared across multiple threads. When using multiple " +"threads with the same connection writing operations should be serialized by " +"the user to avoid data corruption." +msgstr "" + +#: ../Doc/library/sqlite3.rst:206 +msgid "" +"By default, the :mod:`sqlite3` module uses its :class:`Connection` class for " +"the connect call. You can, however, subclass the :class:`Connection` class " +"and make :func:`connect` use your class instead by providing your class for " +"the *factory* parameter." +msgstr "" + +#: ../Doc/library/sqlite3.rst:211 +msgid "Consult the section :ref:`sqlite3-types` of this manual for details." +msgstr "" + +#: ../Doc/library/sqlite3.rst:213 +msgid "" +"The :mod:`sqlite3` module internally uses a statement cache to avoid SQL " +"parsing overhead. If you want to explicitly set the number of statements " +"that are cached for the connection, you can set the *cached_statements* " +"parameter. The currently implemented default is to cache 100 statements." +msgstr "" + +#: ../Doc/library/sqlite3.rst:218 +msgid "" +"If *uri* is true, *database* is interpreted as a URI. This allows you to " +"specify options. For example, to open a database in read-only mode you can " +"use::" +msgstr "" + +#: ../Doc/library/sqlite3.rst:224 +msgid "" +"More information about this feature, including a list of recognized options, " +"can be found in the `SQLite URI documentation `_." +msgstr "" + +#: ../Doc/library/sqlite3.rst:227 +msgid "Added the *uri* parameter." +msgstr "" + +#: ../Doc/library/sqlite3.rst:230 +msgid "" +"*database* can now also be a :term:`path-like object`, not only a string." +msgstr "" + +#: ../Doc/library/sqlite3.rst:236 +msgid "" +"Registers a callable to convert a bytestring from the database into a custom " +"Python type. The callable will be invoked for all database values that are " +"of the type *typename*. Confer the parameter *detect_types* of the :func:" +"`connect` function for how the type detection works. Note that *typename* " +"and the name of the type in your query are matched in case-insensitive " +"manner." +msgstr "" + +#: ../Doc/library/sqlite3.rst:245 +msgid "" +"Registers a callable to convert the custom Python type *type* into one of " +"SQLite's supported types. The callable *callable* accepts as single " +"parameter the Python value, and must return a value of the following types: " +"int, float, str or bytes." +msgstr "" + +#: ../Doc/library/sqlite3.rst:253 +msgid "" +"Returns :const:`True` if the string *sql* contains one or more complete SQL " +"statements terminated by semicolons. It does not verify that the SQL is " +"syntactically correct, only that there are no unclosed string literals and " +"the statement is terminated by a semicolon." +msgstr "" + +#: ../Doc/library/sqlite3.rst:258 +msgid "" +"This can be used to build a shell for SQLite, as in the following example:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:266 +msgid "" +"By default you will not get any tracebacks in user-defined functions, " +"aggregates, converters, authorizer callbacks etc. If you want to debug them, " +"you can call this function with *flag* set to ``True``. Afterwards, you will " +"get tracebacks from callbacks on ``sys.stderr``. Use :const:`False` to " +"disable the feature again." +msgstr "" + +#: ../Doc/library/sqlite3.rst:276 +msgid "Connection Objects" +msgstr "Objets de connexions" + +#: ../Doc/library/sqlite3.rst:280 +msgid "A SQLite database connection has the following attributes and methods:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:284 +msgid "" +"Get or set the current default isolation level. :const:`None` for autocommit " +"mode or one of \"DEFERRED\", \"IMMEDIATE\" or \"EXCLUSIVE\". See section :" +"ref:`sqlite3-controlling-transactions` for a more detailed explanation." +msgstr "" + +#: ../Doc/library/sqlite3.rst:290 +msgid "" +":const:`True` if a transaction is active (there are uncommitted changes), :" +"const:`False` otherwise. Read-only attribute." +msgstr "" + +#: ../Doc/library/sqlite3.rst:297 +msgid "" +"The cursor method accepts a single optional parameter *factory*. If " +"supplied, this must be a callable returning an instance of :class:`Cursor` " +"or its subclasses." +msgstr "" + +#: ../Doc/library/sqlite3.rst:303 +msgid "" +"This method commits the current transaction. If you don't call this method, " +"anything you did since the last call to ``commit()`` is not visible from " +"other database connections. If you wonder why you don't see the data you've " +"written to the database, please check you didn't forget to call this method." +msgstr "" + +#: ../Doc/library/sqlite3.rst:310 +msgid "" +"This method rolls back any changes to the database since the last call to :" +"meth:`commit`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:315 +msgid "" +"This closes the database connection. Note that this does not automatically " +"call :meth:`commit`. If you just close your database connection without " +"calling :meth:`commit` first, your changes will be lost!" +msgstr "" + +#: ../Doc/library/sqlite3.rst:321 +msgid "" +"This is a nonstandard shortcut that creates a cursor object by calling the :" +"meth:`~Connection.cursor` method, calls the cursor's :meth:`~Cursor.execute` " +"method with the *parameters* given, and returns the cursor." +msgstr "" + +#: ../Doc/library/sqlite3.rst:328 +msgid "" +"This is a nonstandard shortcut that creates a cursor object by calling the :" +"meth:`~Connection.cursor` method, calls the cursor's :meth:`~Cursor." +"executemany` method with the *parameters* given, and returns the cursor." +msgstr "" + +#: ../Doc/library/sqlite3.rst:335 +msgid "" +"This is a nonstandard shortcut that creates a cursor object by calling the :" +"meth:`~Connection.cursor` method, calls the cursor's :meth:`~Cursor." +"executescript` method with the given *sql_script*, and returns the cursor." +msgstr "" + +#: ../Doc/library/sqlite3.rst:342 +msgid "" +"Creates a user-defined function that you can later use from within SQL " +"statements under the function name *name*. *num_params* is the number of " +"parameters the function accepts (if *num_params* is -1, the function may " +"take any number of arguments), and *func* is a Python callable that is " +"called as the SQL function." +msgstr "" + +#: ../Doc/library/sqlite3.rst:348 +msgid "" +"The function can return any of the types supported by SQLite: bytes, str, " +"int, float and ``None``." +msgstr "" + +#: ../Doc/library/sqlite3.rst:351 ../Doc/library/sqlite3.rst:368 +#: ../Doc/library/sqlite3.rst:482 ../Doc/library/sqlite3.rst:639 +msgid "Example:" +msgstr "Exemple :" + +#: ../Doc/library/sqlite3.rst:358 +msgid "Creates a user-defined aggregate function." +msgstr "" + +#: ../Doc/library/sqlite3.rst:360 +msgid "" +"The aggregate class must implement a ``step`` method, which accepts the " +"number of parameters *num_params* (if *num_params* is -1, the function may " +"take any number of arguments), and a ``finalize`` method which will return " +"the final result of the aggregate." +msgstr "" + +#: ../Doc/library/sqlite3.rst:365 +msgid "" +"The ``finalize`` method can return any of the types supported by SQLite: " +"bytes, str, int, float and ``None``." +msgstr "" + +#: ../Doc/library/sqlite3.rst:375 +msgid "" +"Creates a collation with the specified *name* and *callable*. The callable " +"will be passed two string arguments. It should return -1 if the first is " +"ordered lower than the second, 0 if they are ordered equal and 1 if the " +"first is ordered higher than the second. Note that this controls sorting " +"(ORDER BY in SQL) so your comparisons don't affect other SQL operations." +msgstr "" + +#: ../Doc/library/sqlite3.rst:381 +msgid "" +"Note that the callable will get its parameters as Python bytestrings, which " +"will normally be encoded in UTF-8." +msgstr "" + +#: ../Doc/library/sqlite3.rst:384 +msgid "" +"The following example shows a custom collation that sorts \"the wrong way\":" +msgstr "" + +#: ../Doc/library/sqlite3.rst:388 +msgid "" +"To remove a collation, call ``create_collation`` with ``None`` as callable::" +msgstr "" + +#: ../Doc/library/sqlite3.rst:395 +msgid "" +"You can call this method from a different thread to abort any queries that " +"might be executing on the connection. The query will then abort and the " +"caller will get an exception." +msgstr "" + +#: ../Doc/library/sqlite3.rst:402 +msgid "" +"This routine registers a callback. The callback is invoked for each attempt " +"to access a column of a table in the database. The callback should return :" +"const:`SQLITE_OK` if access is allowed, :const:`SQLITE_DENY` if the entire " +"SQL statement should be aborted with an error and :const:`SQLITE_IGNORE` if " +"the column should be treated as a NULL value. These constants are available " +"in the :mod:`sqlite3` module." +msgstr "" + +#: ../Doc/library/sqlite3.rst:409 +msgid "" +"The first argument to the callback signifies what kind of operation is to be " +"authorized. The second and third argument will be arguments or :const:`None` " +"depending on the first argument. The 4th argument is the name of the " +"database (\"main\", \"temp\", etc.) if applicable. The 5th argument is the " +"name of the inner-most trigger or view that is responsible for the access " +"attempt or :const:`None` if this access attempt is directly from input SQL " +"code." +msgstr "" + +#: ../Doc/library/sqlite3.rst:416 +msgid "" +"Please consult the SQLite documentation about the possible values for the " +"first argument and the meaning of the second and third argument depending on " +"the first one. All necessary constants are available in the :mod:`sqlite3` " +"module." +msgstr "" + +#: ../Doc/library/sqlite3.rst:423 +msgid "" +"This routine registers a callback. The callback is invoked for every *n* " +"instructions of the SQLite virtual machine. This is useful if you want to " +"get called from SQLite during long-running operations, for example to update " +"a GUI." +msgstr "" + +#: ../Doc/library/sqlite3.rst:428 +msgid "" +"If you want to clear any previously installed progress handler, call the " +"method with :const:`None` for *handler*." +msgstr "" + +#: ../Doc/library/sqlite3.rst:431 +msgid "" +"Returning a non-zero value from the handler function will terminate the " +"currently executing query and cause it to raise an :exc:`OperationalError` " +"exception." +msgstr "" + +#: ../Doc/library/sqlite3.rst:438 +msgid "" +"Registers *trace_callback* to be called for each SQL statement that is " +"actually executed by the SQLite backend." +msgstr "" + +#: ../Doc/library/sqlite3.rst:441 +msgid "" +"The only argument passed to the callback is the statement (as string) that " +"is being executed. The return value of the callback is ignored. Note that " +"the backend does not only run statements passed to the :meth:`Cursor." +"execute` methods. Other sources include the transaction management of the " +"Python module and the execution of triggers defined in the current database." +msgstr "" + +#: ../Doc/library/sqlite3.rst:447 +msgid "" +"Passing :const:`None` as *trace_callback* will disable the trace callback." +msgstr "" + +#: ../Doc/library/sqlite3.rst:454 +msgid "" +"This routine allows/disallows the SQLite engine to load SQLite extensions " +"from shared libraries. SQLite extensions can define new functions, " +"aggregates or whole new virtual table implementations. One well-known " +"extension is the fulltext-search extension distributed with SQLite." +msgstr "" + +#: ../Doc/library/sqlite3.rst:459 ../Doc/library/sqlite3.rst:471 +msgid "Loadable extensions are disabled by default. See [#f1]_." +msgstr "" + +#: ../Doc/library/sqlite3.rst:467 +msgid "" +"This routine loads a SQLite extension from a shared library. You have to " +"enable extension loading with :meth:`enable_load_extension` before you can " +"use this routine." +msgstr "" + +#: ../Doc/library/sqlite3.rst:477 +msgid "" +"You can change this attribute to a callable that accepts the cursor and the " +"original row as a tuple and will return the real result row. This way, you " +"can implement more advanced ways of returning results, such as returning an " +"object that can also access columns by name." +msgstr "" + +#: ../Doc/library/sqlite3.rst:486 +msgid "" +"If returning a tuple doesn't suffice and you want name-based access to " +"columns, you should consider setting :attr:`row_factory` to the highly-" +"optimized :class:`sqlite3.Row` type. :class:`Row` provides both index-based " +"and case-insensitive name-based access to columns with almost no memory " +"overhead. It will probably be better than your own custom dictionary-based " +"approach or even a db_row based solution." +msgstr "" + +#: ../Doc/library/sqlite3.rst:498 +msgid "" +"Using this attribute you can control what objects are returned for the " +"``TEXT`` data type. By default, this attribute is set to :class:`str` and " +"the :mod:`sqlite3` module will return Unicode objects for ``TEXT``. If you " +"want to return bytestrings instead, you can set it to :class:`bytes`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:503 +msgid "" +"You can also set it to any other callable that accepts a single bytestring " +"parameter and returns the resulting object." +msgstr "" + +#: ../Doc/library/sqlite3.rst:506 +msgid "See the following example code for illustration:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:513 +msgid "" +"Returns the total number of database rows that have been modified, inserted, " +"or deleted since the database connection was opened." +msgstr "" + +#: ../Doc/library/sqlite3.rst:519 +msgid "" +"Returns an iterator to dump the database in an SQL text format. Useful when " +"saving an in-memory database for later restoration. This function provides " +"the same capabilities as the :kbd:`.dump` command in the :program:`sqlite3` " +"shell." +msgstr "" + +#: ../Doc/library/sqlite3.rst:524 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/sqlite3.rst:538 +msgid "" +"This method makes a backup of a SQLite database even while it's being " +"accessed by other clients, or concurrently by the same connection. The copy " +"will be written into the mandatory argument *target*, that must be another :" +"class:`Connection` instance." +msgstr "" + +#: ../Doc/library/sqlite3.rst:543 +msgid "" +"By default, or when *pages* is either ``0`` or a negative integer, the " +"entire database is copied in a single step; otherwise the method performs a " +"loop copying up to *pages* pages at a time." +msgstr "" + +#: ../Doc/library/sqlite3.rst:547 +msgid "" +"If *progress* is specified, it must either be ``None`` or a callable object " +"that will be executed at each iteration with three integer arguments, " +"respectively the *status* of the last iteration, the *remaining* number of " +"pages still to be copied and the *total* number of pages." +msgstr "" + +#: ../Doc/library/sqlite3.rst:552 +msgid "" +"The *name* argument specifies the database name that will be copied: it must " +"be a string containing either ``\"main\"``, the default, to indicate the " +"main database, ``\"temp\"`` to indicate the temporary database or the name " +"specified after the ``AS`` keyword in an ``ATTACH DATABASE`` statement for " +"an attached database." +msgstr "" + +#: ../Doc/library/sqlite3.rst:558 +msgid "" +"The *sleep* argument specifies the number of seconds to sleep by between " +"successive attempts to backup remaining pages, can be specified either as an " +"integer or a floating point value." +msgstr "" + +#: ../Doc/library/sqlite3.rst:562 +msgid "Example 1, copy an existing database into another::" +msgstr "" + +#: ../Doc/library/sqlite3.rst:576 +msgid "Example 2, copy an existing database into a transient copy::" +msgstr "" + +#: ../Doc/library/sqlite3.rst:584 +msgid "Availability: SQLite 3.6.11 or higher" +msgstr "" + +#: ../Doc/library/sqlite3.rst:592 +msgid "Cursor Objects" +msgstr "" + +#: ../Doc/library/sqlite3.rst:596 +msgid "A :class:`Cursor` instance has the following attributes and methods." +msgstr "" + +#: ../Doc/library/sqlite3.rst:603 +msgid "" +"Executes an SQL statement. The SQL statement may be parameterized (i. e. " +"placeholders instead of SQL literals). The :mod:`sqlite3` module supports " +"two kinds of placeholders: question marks (qmark style) and named " +"placeholders (named style)." +msgstr "" + +#: ../Doc/library/sqlite3.rst:608 +msgid "Here's an example of both styles:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:612 +msgid "" +":meth:`execute` will only execute a single SQL statement. If you try to " +"execute more than one statement with it, it will raise a :exc:`.Warning`. " +"Use :meth:`executescript` if you want to execute multiple SQL statements " +"with one call." +msgstr "" + +#: ../Doc/library/sqlite3.rst:620 +msgid "" +"Executes an SQL command against all parameter sequences or mappings found in " +"the sequence *seq_of_parameters*. The :mod:`sqlite3` module also allows " +"using an :term:`iterator` yielding parameters instead of a sequence." +msgstr "" + +#: ../Doc/library/sqlite3.rst:626 +msgid "Here's a shorter example using a :term:`generator`:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:633 +msgid "" +"This is a nonstandard convenience method for executing multiple SQL " +"statements at once. It issues a ``COMMIT`` statement first, then executes " +"the SQL script it gets as a parameter." +msgstr "" + +#: ../Doc/library/sqlite3.rst:637 +msgid "*sql_script* can be an instance of :class:`str`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:646 +msgid "" +"Fetches the next row of a query result set, returning a single sequence, or :" +"const:`None` when no more data is available." +msgstr "" + +#: ../Doc/library/sqlite3.rst:652 +msgid "" +"Fetches the next set of rows of a query result, returning a list. An empty " +"list is returned when no more rows are available." +msgstr "" + +#: ../Doc/library/sqlite3.rst:655 +msgid "" +"The number of rows to fetch per call is specified by the *size* parameter. " +"If it is not given, the cursor's arraysize determines the number of rows to " +"be fetched. The method should try to fetch as many rows as indicated by the " +"size parameter. If this is not possible due to the specified number of rows " +"not being available, fewer rows may be returned." +msgstr "" + +#: ../Doc/library/sqlite3.rst:661 +msgid "" +"Note there are performance considerations involved with the *size* " +"parameter. For optimal performance, it is usually best to use the arraysize " +"attribute. If the *size* parameter is used, then it is best for it to retain " +"the same value from one :meth:`fetchmany` call to the next." +msgstr "" + +#: ../Doc/library/sqlite3.rst:668 +msgid "" +"Fetches all (remaining) rows of a query result, returning a list. Note that " +"the cursor's arraysize attribute can affect the performance of this " +"operation. An empty list is returned when no rows are available." +msgstr "" + +#: ../Doc/library/sqlite3.rst:674 +msgid "Close the cursor now (rather than whenever ``__del__`` is called)." +msgstr "" + +#: ../Doc/library/sqlite3.rst:676 +msgid "" +"The cursor will be unusable from this point forward; a :exc:" +"`ProgrammingError` exception will be raised if any operation is attempted " +"with the cursor." +msgstr "" + +#: ../Doc/library/sqlite3.rst:681 +msgid "" +"Although the :class:`Cursor` class of the :mod:`sqlite3` module implements " +"this attribute, the database engine's own support for the determination of " +"\"rows affected\"/\"rows selected\" is quirky." +msgstr "" + +#: ../Doc/library/sqlite3.rst:685 +msgid "" +"For :meth:`executemany` statements, the number of modifications are summed " +"up into :attr:`rowcount`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:688 +msgid "" +"As required by the Python DB API Spec, the :attr:`rowcount` attribute \"is " +"-1 in case no ``executeXX()`` has been performed on the cursor or the " +"rowcount of the last operation is not determinable by the interface\". This " +"includes ``SELECT`` statements because we cannot determine the number of " +"rows a query produced until all rows were fetched." +msgstr "" + +#: ../Doc/library/sqlite3.rst:694 +msgid "" +"With SQLite versions before 3.6.5, :attr:`rowcount` is set to 0 if you make " +"a ``DELETE FROM table`` without any condition." +msgstr "" + +#: ../Doc/library/sqlite3.rst:699 +msgid "" +"This read-only attribute provides the rowid of the last modified row. It is " +"only set if you issued an ``INSERT`` or a ``REPLACE`` statement using the :" +"meth:`execute` method. For operations other than ``INSERT`` or ``REPLACE`` " +"or when :meth:`executemany` is called, :attr:`lastrowid` is set to :const:" +"`None`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:705 +msgid "" +"If the ``INSERT`` or ``REPLACE`` statement failed to insert the previous " +"successful rowid is returned." +msgstr "" + +#: ../Doc/library/sqlite3.rst:708 +msgid "Added support for the ``REPLACE`` statement." +msgstr "" + +#: ../Doc/library/sqlite3.rst:713 +msgid "" +"Read/write attribute that controls the number of rows returned by :meth:" +"`fetchmany`. The default value is 1 which means a single row would be " +"fetched per call." +msgstr "" + +#: ../Doc/library/sqlite3.rst:718 +msgid "" +"This read-only attribute provides the column names of the last query. To " +"remain compatible with the Python DB API, it returns a 7-tuple for each " +"column where the last six items of each tuple are :const:`None`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:722 +msgid "It is set for ``SELECT`` statements without any matching rows as well." +msgstr "" + +#: ../Doc/library/sqlite3.rst:726 +msgid "" +"This read-only attribute provides the SQLite database :class:`Connection` " +"used by the :class:`Cursor` object. A :class:`Cursor` object created by " +"calling :meth:`con.cursor() ` will have a :attr:" +"`connection` attribute that refers to *con*::" +msgstr "" + +#: ../Doc/library/sqlite3.rst:739 +msgid "Row Objects" +msgstr "" + +#: ../Doc/library/sqlite3.rst:743 +msgid "" +"A :class:`Row` instance serves as a highly optimized :attr:`~Connection." +"row_factory` for :class:`Connection` objects. It tries to mimic a tuple in " +"most of its features." +msgstr "" + +#: ../Doc/library/sqlite3.rst:747 +msgid "" +"It supports mapping access by column name and index, iteration, " +"representation, equality testing and :func:`len`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:750 +msgid "" +"If two :class:`Row` objects have exactly the same columns and their members " +"are equal, they compare equal." +msgstr "" + +#: ../Doc/library/sqlite3.rst:755 +msgid "" +"This method returns a list of column names. Immediately after a query, it is " +"the first member of each tuple in :attr:`Cursor.description`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:758 +msgid "Added support of slicing." +msgstr "" + +#: ../Doc/library/sqlite3.rst:761 +msgid "Let's assume we initialize a table as in the example given above::" +msgstr "" + +#: ../Doc/library/sqlite3.rst:773 +msgid "Now we plug :class:`Row` in::" +msgstr "" + +#: ../Doc/library/sqlite3.rst:805 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/sqlite3.rst:809 +msgid "A subclass of :exc:`Exception`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:813 +msgid "" +"The base class of the other exceptions in this module. It is a subclass of :" +"exc:`Exception`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:818 +msgid "Exception raised for errors that are related to the database." +msgstr "" + +#: ../Doc/library/sqlite3.rst:822 +msgid "" +"Exception raised when the relational integrity of the database is affected, " +"e.g. a foreign key check fails. It is a subclass of :exc:`DatabaseError`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:827 +msgid "" +"Exception raised for programming errors, e.g. table not found or already " +"exists, syntax error in the SQL statement, wrong number of parameters " +"specified, etc. It is a subclass of :exc:`DatabaseError`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:833 +msgid "" +"Exception raised for errors that are related to the database's operation and " +"not necessarily under the control of the programmer, e.g. an unexpected " +"disconnect occurs, the data source name is not found, a transaction could " +"not be processed, etc. It is a subclass of :exc:`DatabaseError`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:840 +msgid "" +"Exception raised in case a method or database API was used which is not " +"supported by the database, e.g. calling the :meth:`~Connection.rollback` " +"method on a connection that does not support transaction or has transactions " +"turned off. It is a subclass of :exc:`DatabaseError`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:849 +msgid "SQLite and Python types" +msgstr "" + +#: ../Doc/library/sqlite3.rst:853 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/library/sqlite3.rst:855 +msgid "" +"SQLite natively supports the following types: ``NULL``, ``INTEGER``, " +"``REAL``, ``TEXT``, ``BLOB``." +msgstr "" + +#: ../Doc/library/sqlite3.rst:858 +msgid "" +"The following Python types can thus be sent to SQLite without any problem:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:861 ../Doc/library/sqlite3.rst:878 +msgid "Python type" +msgstr "Type Python" + +#: ../Doc/library/sqlite3.rst:861 ../Doc/library/sqlite3.rst:878 +msgid "SQLite type" +msgstr "SQLite type" + +#: ../Doc/library/sqlite3.rst:863 ../Doc/library/sqlite3.rst:880 +msgid ":const:`None`" +msgstr ":const:`None`" + +#: ../Doc/library/sqlite3.rst:863 ../Doc/library/sqlite3.rst:880 +msgid "``NULL``" +msgstr "``NULL``" + +#: ../Doc/library/sqlite3.rst:865 ../Doc/library/sqlite3.rst:882 +msgid ":class:`int`" +msgstr ":class:`int`" + +#: ../Doc/library/sqlite3.rst:865 ../Doc/library/sqlite3.rst:882 +msgid "``INTEGER``" +msgstr "``INTEGER``" + +#: ../Doc/library/sqlite3.rst:867 ../Doc/library/sqlite3.rst:884 +msgid ":class:`float`" +msgstr ":class:`float`" + +#: ../Doc/library/sqlite3.rst:867 ../Doc/library/sqlite3.rst:884 +msgid "``REAL``" +msgstr "``REAL``" + +#: ../Doc/library/sqlite3.rst:869 +msgid ":class:`str`" +msgstr ":class:`str`" + +#: ../Doc/library/sqlite3.rst:869 ../Doc/library/sqlite3.rst:886 +msgid "``TEXT``" +msgstr "``TEXT``" + +#: ../Doc/library/sqlite3.rst:871 ../Doc/library/sqlite3.rst:889 +msgid ":class:`bytes`" +msgstr ":class:`bytes`" + +#: ../Doc/library/sqlite3.rst:871 ../Doc/library/sqlite3.rst:889 +msgid "``BLOB``" +msgstr "``BLOB``" + +#: ../Doc/library/sqlite3.rst:875 +msgid "This is how SQLite types are converted to Python types by default:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:886 +msgid "depends on :attr:`~Connection.text_factory`, :class:`str` by default" +msgstr "" + +#: ../Doc/library/sqlite3.rst:892 +msgid "" +"The type system of the :mod:`sqlite3` module is extensible in two ways: you " +"can store additional Python types in a SQLite database via object " +"adaptation, and you can let the :mod:`sqlite3` module convert SQLite types " +"to different Python types via converters." +msgstr "" + +#: ../Doc/library/sqlite3.rst:899 +msgid "Using adapters to store additional Python types in SQLite databases" +msgstr "" + +#: ../Doc/library/sqlite3.rst:901 +msgid "" +"As described before, SQLite supports only a limited set of types natively. " +"To use other Python types with SQLite, you must **adapt** them to one of the " +"sqlite3 module's supported types for SQLite: one of NoneType, int, float, " +"str, bytes." +msgstr "" + +#: ../Doc/library/sqlite3.rst:906 +msgid "" +"There are two ways to enable the :mod:`sqlite3` module to adapt a custom " +"Python type to one of the supported ones." +msgstr "" + +#: ../Doc/library/sqlite3.rst:911 +msgid "Letting your object adapt itself" +msgstr "" + +#: ../Doc/library/sqlite3.rst:913 +msgid "" +"This is a good approach if you write the class yourself. Let's suppose you " +"have a class like this::" +msgstr "" + +#: ../Doc/library/sqlite3.rst:920 +msgid "" +"Now you want to store the point in a single SQLite column. First you'll " +"have to choose one of the supported types first to be used for representing " +"the point. Let's just use str and separate the coordinates using a " +"semicolon. Then you need to give your class a method ``__conform__(self, " +"protocol)`` which must return the converted value. The parameter *protocol* " +"will be :class:`PrepareProtocol`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:930 +msgid "Registering an adapter callable" +msgstr "" + +#: ../Doc/library/sqlite3.rst:932 +msgid "" +"The other possibility is to create a function that converts the type to the " +"string representation and register the function with :meth:" +"`register_adapter`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:937 +msgid "" +"The :mod:`sqlite3` module has two default adapters for Python's built-in :" +"class:`datetime.date` and :class:`datetime.datetime` types. Now let's " +"suppose we want to store :class:`datetime.datetime` objects not in ISO " +"representation, but as a Unix timestamp." +msgstr "" + +#: ../Doc/library/sqlite3.rst:946 +msgid "Converting SQLite values to custom Python types" +msgstr "" + +#: ../Doc/library/sqlite3.rst:948 +msgid "" +"Writing an adapter lets you send custom Python types to SQLite. But to make " +"it really useful we need to make the Python to SQLite to Python roundtrip " +"work." +msgstr "" + +#: ../Doc/library/sqlite3.rst:951 +msgid "Enter converters." +msgstr "" + +#: ../Doc/library/sqlite3.rst:953 +msgid "" +"Let's go back to the :class:`Point` class. We stored the x and y coordinates " +"separated via semicolons as strings in SQLite." +msgstr "" + +#: ../Doc/library/sqlite3.rst:956 +msgid "" +"First, we'll define a converter function that accepts the string as a " +"parameter and constructs a :class:`Point` object from it." +msgstr "" + +#: ../Doc/library/sqlite3.rst:961 +msgid "" +"Converter functions **always** get called with a :class:`bytes` object, no " +"matter under which data type you sent the value to SQLite." +msgstr "" + +#: ../Doc/library/sqlite3.rst:970 +msgid "" +"Now you need to make the :mod:`sqlite3` module know that what you select " +"from the database is actually a point. There are two ways of doing this:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:973 +msgid "Implicitly via the declared type" +msgstr "" + +#: ../Doc/library/sqlite3.rst:975 +msgid "Explicitly via the column name" +msgstr "" + +#: ../Doc/library/sqlite3.rst:977 +msgid "" +"Both ways are described in section :ref:`sqlite3-module-contents`, in the " +"entries for the constants :const:`PARSE_DECLTYPES` and :const:" +"`PARSE_COLNAMES`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:980 +msgid "The following example illustrates both approaches." +msgstr "" + +#: ../Doc/library/sqlite3.rst:986 +msgid "Default adapters and converters" +msgstr "" + +#: ../Doc/library/sqlite3.rst:988 +msgid "" +"There are default adapters for the date and datetime types in the datetime " +"module. They will be sent as ISO dates/ISO timestamps to SQLite." +msgstr "" + +#: ../Doc/library/sqlite3.rst:991 +msgid "" +"The default converters are registered under the name \"date\" for :class:" +"`datetime.date` and under the name \"timestamp\" for :class:`datetime." +"datetime`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:995 +msgid "" +"This way, you can use date/timestamps from Python without any additional " +"fiddling in most cases. The format of the adapters is also compatible with " +"the experimental SQLite date/time functions." +msgstr "" + +#: ../Doc/library/sqlite3.rst:999 +msgid "The following example demonstrates this." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1003 +msgid "" +"If a timestamp stored in SQLite has a fractional part longer than 6 numbers, " +"its value will be truncated to microsecond precision by the timestamp " +"converter." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1011 +msgid "Controlling Transactions" +msgstr "" + +#: ../Doc/library/sqlite3.rst:1013 +msgid "" +"The underlying ``sqlite3`` library operates in ``autocommit`` mode by " +"default, but the Python :mod:`sqlite3` module by default does not." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1016 +msgid "" +"``autocommit`` mode means that statements that modify the database take " +"effect immediately. A ``BEGIN`` or ``SAVEPOINT`` statement disables " +"``autocommit`` mode, and a ``COMMIT``, a ``ROLLBACK``, or a ``RELEASE`` that " +"ends the outermost transaction, turns ``autocommit`` mode back on." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1021 +msgid "" +"The Python :mod:`sqlite3` module by default issues a ``BEGIN`` statement " +"implicitly before a Data Modification Language (DML) statement (i.e. " +"``INSERT``/``UPDATE``/``DELETE``/``REPLACE``)." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1025 +msgid "" +"You can control which kind of ``BEGIN`` statements :mod:`sqlite3` implicitly " +"executes via the *isolation_level* parameter to the :func:`connect` call, or " +"via the :attr:`isolation_level` property of connections. If you specify no " +"*isolation_level*, a plain ``BEGIN`` is used, which is equivalent to " +"specifying ``DEFERRED``. Other possible values are ``IMMEDIATE`` and " +"``EXCLUSIVE``." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1032 +msgid "" +"You can disable the :mod:`sqlite3` module's implicit transaction management " +"by setting :attr:`isolation_level` to ``None``. This will leave the " +"underlying ``sqlite3`` library operating in ``autocommit`` mode. You can " +"then completely control the transaction state by explicitly issuing " +"``BEGIN``, ``ROLLBACK``, ``SAVEPOINT``, and ``RELEASE`` statements in your " +"code." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1038 +msgid "" +":mod:`sqlite3` used to implicitly commit an open transaction before DDL " +"statements. This is no longer the case." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1044 +msgid "Using :mod:`sqlite3` efficiently" +msgstr "" + +#: ../Doc/library/sqlite3.rst:1048 +msgid "Using shortcut methods" +msgstr "" + +#: ../Doc/library/sqlite3.rst:1050 +msgid "" +"Using the nonstandard :meth:`execute`, :meth:`executemany` and :meth:" +"`executescript` methods of the :class:`Connection` object, your code can be " +"written more concisely because you don't have to create the (often " +"superfluous) :class:`Cursor` objects explicitly. Instead, the :class:" +"`Cursor` objects are created implicitly and these shortcut methods return " +"the cursor objects. This way, you can execute a ``SELECT`` statement and " +"iterate over it directly using only a single call on the :class:`Connection` " +"object." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1062 +msgid "Accessing columns by name instead of by index" +msgstr "" + +#: ../Doc/library/sqlite3.rst:1064 +msgid "" +"One useful feature of the :mod:`sqlite3` module is the built-in :class:" +"`sqlite3.Row` class designed to be used as a row factory." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1067 +msgid "" +"Rows wrapped with this class can be accessed both by index (like tuples) and " +"case-insensitively by name:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:1074 +msgid "Using the connection as a context manager" +msgstr "" + +#: ../Doc/library/sqlite3.rst:1076 +msgid "" +"Connection objects can be used as context managers that automatically commit " +"or rollback transactions. In the event of an exception, the transaction is " +"rolled back; otherwise, the transaction is committed:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:1085 +msgid "Common issues" +msgstr "" + +#: ../Doc/library/sqlite3.rst:1088 +msgid "Multithreading" +msgstr "Fils d'exécution" + +#: ../Doc/library/sqlite3.rst:1090 +msgid "" +"Older SQLite versions had issues with sharing connections between threads. " +"That's why the Python module disallows sharing connections and cursors " +"between threads. If you still try to do so, you will get an exception at " +"runtime." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1094 +msgid "" +"The only exception is calling the :meth:`~Connection.interrupt` method, " +"which only makes sense to call from a different thread." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1098 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/sqlite3.rst:1099 +msgid "" +"The sqlite3 module is not built with loadable extension support by default, " +"because some platforms (notably Mac OS X) have SQLite libraries which are " +"compiled without this feature. To get loadable extension support, you must " +"pass --enable-loadable-sqlite-extensions to configure." +msgstr "" diff --git a/library/ssl.po b/library/ssl.po new file mode 100644 index 000000000..1197e98ce --- /dev/null +++ b/library/ssl.po @@ -0,0 +1,3144 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2018-11-29 18:27+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/ssl.rst:2 +msgid ":mod:`ssl` --- TLS/SSL wrapper for socket objects" +msgstr ":mod:`ssl` — Emballage TLS/SSL pour les objets connecteurs" + +#: ../Doc/library/ssl.rst:10 +msgid "**Source code:** :source:`Lib/ssl.py`" +msgstr "**Code source :** :source:`Lib/ssl.py`" + +#: ../Doc/library/ssl.rst:18 +msgid "" +"This module provides access to Transport Layer Security (often known as " +"\"Secure Sockets Layer\") encryption and peer authentication facilities for " +"network sockets, both client-side and server-side. This module uses the " +"OpenSSL library. It is available on all modern Unix systems, Windows, Mac OS " +"X, and probably additional platforms, as long as OpenSSL is installed on " +"that platform." +msgstr "" +"Ce module fournit un accès aux fonctions de chiffrement et " +"d'authentification entre pairs : « *Transport Layer Security* » (souvent " +"appelé « *Secure Sockets Layer* ») pour les connecteurs réseau, côté client " +"et côté serveur. Ce module utilise la bibliothèque OpenSSL. Il est " +"disponible sur tous les systèmes Unix modernes, Windows, Mac OS X et " +"probablement sur d'autres plates-formes, à condition qu'OpenSSL soit " +"installé sur cette plate-forme." + +#: ../Doc/library/ssl.rst:26 +msgid "" +"Some behavior may be platform dependent, since calls are made to the " +"operating system socket APIs. The installed version of OpenSSL may also " +"cause variations in behavior. For example, TLSv1.1 and TLSv1.2 come with " +"openssl version 1.0.1." +msgstr "" +"Certains comportements peuvent dépendre de la plate-forme, car des appels " +"sont passés aux API de connexions du système d'exploitation. La version " +"installée de OpenSSL peut également entraîner des variations de " +"comportement. Par exemple, TLSv1.1 et TLSv1.2 sont livrés avec la version " +"1.0.1 de OpenSSL." + +#: ../Doc/library/ssl.rst:32 +msgid "" +"Don't use this module without reading the :ref:`ssl-security`. Doing so may " +"lead to a false sense of security, as the default settings of the ssl module " +"are not necessarily appropriate for your application." +msgstr "" +"N’utilisez pas ce module sans lire :ref:`ssl-security`. Cela pourrait créer " +"un faux sentiment de sécurité, car les paramètres par défaut du module *ssl* " +"ne sont pas nécessairement appropriés pour votre application." + +#: ../Doc/library/ssl.rst:37 +msgid "" +"This section documents the objects and functions in the ``ssl`` module; for " +"more general information about TLS, SSL, and certificates, the reader is " +"referred to the documents in the \"See Also\" section at the bottom." +msgstr "" +"Cette section documente les objets et les fonctions du module ``ssl``. Pour " +"des informations plus générales sur TLS, SSL et les certificats, le lecteur " +"est prié de se référer aux documents de la section « Voir Aussi » au bas de " +"cette page." + +#: ../Doc/library/ssl.rst:41 +msgid "" +"This module provides a class, :class:`ssl.SSLSocket`, which is derived from " +"the :class:`socket.socket` type, and provides a socket-like wrapper that " +"also encrypts and decrypts the data going over the socket with SSL. It " +"supports additional methods such as :meth:`getpeercert`, which retrieves the " +"certificate of the other side of the connection, and :meth:`cipher`,which " +"retrieves the cipher being used for the secure connection." +msgstr "" +"Ce module fournit une classe :class:`ssl.SSLSocket`, dérivée du type :class:" +"`socket.socket`, ainsi qu'une enveloppe (*wrapper* en anglais) qui mime un " +"connecteur qui chiffre et déchiffre les données passant sur le connecteur " +"utilisant SSL. Il prend en charge des méthodes supplémentaires telles que :" +"meth:`getpeercert` qui récupère le certificat de l'autre coté de la " +"connexion et :meth:`cipher`, qui récupère le chiffrement utilisé pour la " +"connexion." + +#: ../Doc/library/ssl.rst:48 +msgid "" +"For more sophisticated applications, the :class:`ssl.SSLContext` class helps " +"manage settings and certificates, which can then be inherited by SSL sockets " +"created through the :meth:`SSLContext.wrap_socket` method." +msgstr "" +"Pour les applications plus sophistiquées, la classe :class:`ssl.SSLContext` " +"facilite la gestion des paramètres et des certificats, qui peuvent ensuite " +"être hérités par les connecteurs SSL créés via la méthode :meth:`SSLContext." +"wrap_socket`." + +#: ../Doc/library/ssl.rst:52 +msgid "Updated to support linking with OpenSSL 1.1.0" +msgstr "Mise à jour pour prendre en charge la liaison avec OpenSSL 1.1.0" + +#: ../Doc/library/ssl.rst:57 +msgid "" +"OpenSSL 0.9.8, 1.0.0 and 1.0.1 are deprecated and no longer supported. In " +"the future the ssl module will require at least OpenSSL 1.0.2 or 1.1.0." +msgstr "" +"OpenSSL 0.9.8, 1.0.0 et 1.0.1 sont obsolètes et ne sont plus prises en " +"charge. Dans l'avenir, le module *ssl* nécessitera au minimum OpenSSL 1.0.2 " +"ou 1.1.0." + +#: ../Doc/library/ssl.rst:63 +msgid "Functions, Constants, and Exceptions" +msgstr "Fonctions, constantes et exceptions" + +#: ../Doc/library/ssl.rst:67 +msgid "Socket creation" +msgstr "Création de connecteurs" + +#: ../Doc/library/ssl.rst:69 +msgid "" +"Since Python 3.2 and 2.7.9, it is recommended to use the :meth:`SSLContext." +"wrap_socket` of an :class:`SSLContext` instance to wrap sockets as :class:" +"`SSLSocket` objects. The helper functions :func:`create_default_context` " +"returns a new context with secure default settings. The old :func:" +"`wrap_socket` function is deprecated since it is both inefficient and has no " +"support for server name indication (SNI) and hostname matching." +msgstr "" +"Depuis Python 3.2 et 2.7.9, il est recommandé d'utiliser :meth:`SSLContext." +"wrap_socket` d'une instance :class:`SSLContext` pour encapsuler des " +"connecteurs en tant qu'objets :class:`SSLSocket`. Les fonctions auxiliaires :" +"func:`create_default_context` renvoient un nouveau contexte avec des " +"paramètres par défaut sécurisés. L'ancienne fonction :func:`wrap_socket` est " +"obsolète car elle est à la fois inefficace et ne prend pas en charge " +"l'indication de nom de serveur (SNI) et la vérification du nom de l'hôte." + +#: ../Doc/library/ssl.rst:77 +msgid "Client socket example with default context and IPv4/IPv6 dual stack::" +msgstr "" +"Exemple de connecteur client avec contexte par défaut et double pile IPv4/" +"IPv6 ::" + +#: ../Doc/library/ssl.rst:90 +msgid "Client socket example with custom context and IPv4::" +msgstr "Exemple de connecteur client avec contexte personnalisé et IPv4 ::" + +#: ../Doc/library/ssl.rst:102 +msgid "Server socket example listening on localhost IPv4::" +msgstr "Exemple de connecteur serveur à l'écoute sur IPv4 *localhost* ::" + +#: ../Doc/library/ssl.rst:116 +msgid "Context creation" +msgstr "Création de contexte" + +#: ../Doc/library/ssl.rst:118 +msgid "" +"A convenience function helps create :class:`SSLContext` objects for common " +"purposes." +msgstr "" +"Une fonction utilitaire permettant de créer facilement des objets :class:" +"`SSLContext` pour des usages classiques." + +#: ../Doc/library/ssl.rst:123 +msgid "" +"Return a new :class:`SSLContext` object with default settings for the given " +"*purpose*. The settings are chosen by the :mod:`ssl` module, and usually " +"represent a higher security level than when calling the :class:`SSLContext` " +"constructor directly." +msgstr "" +"Renvoie un nouvel objet :class:`SSLContext`. Le paramètre *purpose* permet " +"de choisir parmi un ensemble de paramètres par défaut en fonction de l'usage " +"souhaité. Les paramètres sont choisis par le module :mod:`ssl` et " +"représentent généralement un niveau de sécurité supérieur à celui utilisé " +"lorsque vous appelez directement le constructeur :class:`SSLContext`." + +#: ../Doc/library/ssl.rst:128 +msgid "" +"*cafile*, *capath*, *cadata* represent optional CA certificates to trust for " +"certificate verification, as in :meth:`SSLContext.load_verify_locations`. " +"If all three are :const:`None`, this function can choose to trust the " +"system's default CA certificates instead." +msgstr "" +"*cafile*, *capath*, *cadata* représentent des certificats d'autorité de " +"certification facultatifs approuvés pour la vérification de certificats, " +"comme dans :meth:`SSLContext.load_verify_locations`. Si les trois sont à :" +"const:`None`, cette fonction peut choisir de faire confiance aux certificats " +"d'autorité de certification par défaut du système." + +#: ../Doc/library/ssl.rst:134 +msgid "" +"The settings are: :data:`PROTOCOL_TLS`, :data:`OP_NO_SSLv2`, and :data:" +"`OP_NO_SSLv3` with high encryption cipher suites without RC4 and without " +"unauthenticated cipher suites. Passing :data:`~Purpose.SERVER_AUTH` as " +"*purpose* sets :data:`~SSLContext.verify_mode` to :data:`CERT_REQUIRED` and " +"either loads CA certificates (when at least one of *cafile*, *capath* or " +"*cadata* is given) or uses :meth:`SSLContext.load_default_certs` to load " +"default CA certificates." +msgstr "" +"Les paramètres sont : :data:`PROTOCOL_TLS`, :data:`OP_NO_SSLv2` et :data:" +"`OP_NO_SSLv3` avec des algorithmes de chiffrement de grande robustesse, " +"n'utilisant pas RC4 et n'utilisant pas les suites cryptographiques sans " +"authentification. Passer :data:`~Purpose.SERVER_AUTH` en tant que *purpose* " +"définit :data:`~SSLContext.verify_mode` sur :data:`CERT_REQUIRED` et charge " +"les certificats de l'autorité de certification (lorsqu'au moins un des " +"paramètres *cafile*, *capath* ou *cadata* est renseigné) ou utilise :meth:" +"`SSLContext.load_default_certs` pour charger les certificats des autorités " +"de certification par défaut." + +#: ../Doc/library/ssl.rst:143 +msgid "" +"The protocol, options, cipher and other settings may change to more " +"restrictive values anytime without prior deprecation. The values represent " +"a fair balance between compatibility and security." +msgstr "" +"Le protocole, les options, l'algorithme de chiffrement et d'autres " +"paramètres peuvent changer pour des valeurs plus restrictives à tout moment " +"sans avertissement préalable. Les valeurs représentent un juste équilibre " +"entre compatibilité et sécurité." + +#: ../Doc/library/ssl.rst:147 +msgid "" +"If your application needs specific settings, you should create a :class:" +"`SSLContext` and apply the settings yourself." +msgstr "" +"Si votre application nécessite des paramètres spécifiques, vous devez créer " +"une classe :class:`SSLContext` et appliquer les paramètres vous-même." + +#: ../Doc/library/ssl.rst:151 +msgid "" +"If you find that when certain older clients or servers attempt to connect " +"with a :class:`SSLContext` created by this function that they get an error " +"stating \"Protocol or cipher suite mismatch\", it may be that they only " +"support SSL3.0 which this function excludes using the :data:`OP_NO_SSLv3`. " +"SSL3.0 is widely considered to be `completely broken `_. If you still wish to continue to use this function but " +"still allow SSL 3.0 connections you can re-enable them using::" +msgstr "" +"Si vous constatez que, lorsque certains clients ou serveurs plus anciens " +"tentent de se connecter avec une classe :class:`SSLContext` créée par cette " +"fonction, une erreur indiquant « *Protocol or cipher suite " +"mismatch* » (« Non concordance de protocole ou d'algorithme de " +"chiffrement ») est détectée, il se peut qu'ils ne prennent en charge que SSL " +"3.0 que cette fonction exclut en utilisant :data:`OP_NO_SSLv3`. SSL3.0 est " +"notoirement considéré comme `totalement déficient `_. Si vous souhaitez toujours continuer à utiliser cette " +"fonction tout en autorisant les connexions SSL 3.0, vous pouvez les " +"réactiver à l'aide de ::" + +#: ../Doc/library/ssl.rst:167 +msgid "RC4 was dropped from the default cipher string." +msgstr "" +"RC4 a été supprimé de la liste des algorithmes de chiffrement par défaut." + +#: ../Doc/library/ssl.rst:171 +msgid "ChaCha20/Poly1305 was added to the default cipher string." +msgstr "" +"*ChaCha20*/*Poly1305* a été ajouté à la liste des algorithmes de chiffrement " +"par défaut." + +#: ../Doc/library/ssl.rst:173 +msgid "3DES was dropped from the default cipher string." +msgstr "" +"*3DES* a été supprimé de la liste des algorithmes de chiffrement par défaut." + +#: ../Doc/library/ssl.rst:177 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/ssl.rst:181 +msgid "" +"Raised to signal an error from the underlying SSL implementation (currently " +"provided by the OpenSSL library). This signifies some problem in the higher-" +"level encryption and authentication layer that's superimposed on the " +"underlying network connection. This error is a subtype of :exc:`OSError`. " +"The error code and message of :exc:`SSLError` instances are provided by the " +"OpenSSL library." +msgstr "" +"Levée pour signaler une erreur de l'implémentation SSL sous-jacente " +"(actuellement fournie par la bibliothèque OpenSSL). Cela signifie qu'un " +"problème est apparu dans la couche d'authentification et de chiffrement de " +"niveau supérieur qui s'appuie sur la connexion réseau sous-jacente. Cette " +"erreur est un sous-type de :exc:`OSError`. Le code d'erreur et le message " +"des instances de :exc:`SSLError` sont fournis par la bibliothèque OpenSSL." + +#: ../Doc/library/ssl.rst:188 +msgid ":exc:`SSLError` used to be a subtype of :exc:`socket.error`." +msgstr ":exc:`SSLError` était un sous-type de :exc:`socket.error`." + +#: ../Doc/library/ssl.rst:193 +msgid "" +"A string mnemonic designating the OpenSSL submodule in which the error " +"occurred, such as ``SSL``, ``PEM`` or ``X509``. The range of possible " +"values depends on the OpenSSL version." +msgstr "" +"Une chaîne de caractères mnémonique désignant le sous-module OpenSSL dans " +"lequel l'erreur s'est produite, telle que ``SSL``, ``PEM`` ou ``X509``. " +"L'étendue des valeurs possibles dépend de la version d'OpenSSL." + +#: ../Doc/library/ssl.rst:201 +msgid "" +"A string mnemonic designating the reason this error occurred, for example " +"``CERTIFICATE_VERIFY_FAILED``. The range of possible values depends on the " +"OpenSSL version." +msgstr "" + +#: ../Doc/library/ssl.rst:209 +msgid "" +"A subclass of :exc:`SSLError` raised when trying to read or write and the " +"SSL connection has been closed cleanly. Note that this doesn't mean that " +"the underlying transport (read TCP) has been closed." +msgstr "" + +#: ../Doc/library/ssl.rst:217 +msgid "" +"A subclass of :exc:`SSLError` raised by a :ref:`non-blocking SSL socket ` when trying to read or write data, but more data needs to be " +"received on the underlying TCP transport before the request can be fulfilled." +msgstr "" +"Sous-classe de :exc:`SSLError` levée par un connecteur :ref:`SSL non " +"bloquant ` lors d'une tentative de lecture ou d'écriture de " +"données, alors que davantage de données doivent être reçues sur la couche " +"TCP sous-jacente avant que la demande puisse être satisfaite." + +#: ../Doc/library/ssl.rst:226 +msgid "" +"A subclass of :exc:`SSLError` raised by a :ref:`non-blocking SSL socket ` when trying to read or write data, but more data needs to be " +"sent on the underlying TCP transport before the request can be fulfilled." +msgstr "" + +#: ../Doc/library/ssl.rst:235 +msgid "" +"A subclass of :exc:`SSLError` raised when a system error was encountered " +"while trying to fulfill an operation on a SSL socket. Unfortunately, there " +"is no easy way to inspect the original errno number." +msgstr "" + +#: ../Doc/library/ssl.rst:243 +msgid "" +"A subclass of :exc:`SSLError` raised when the SSL connection has been " +"terminated abruptly. Generally, you shouldn't try to reuse the underlying " +"transport when this error is encountered." +msgstr "" + +#: ../Doc/library/ssl.rst:251 +msgid "" +"A subclass of :exc:`SSLError` raised when certificate validation has failed." +msgstr "" + +#: ../Doc/library/ssl.rst:258 +msgid "A numeric error number that denotes the verification error." +msgstr "" + +#: ../Doc/library/ssl.rst:262 +msgid "A human readable string of the verification error." +msgstr "" + +#: ../Doc/library/ssl.rst:266 +msgid "An alias for :exc:`SSLCertVerificationError`." +msgstr "" + +#: ../Doc/library/ssl.rst:268 +msgid "The exception is now an alias for :exc:`SSLCertVerificationError`." +msgstr "" + +#: ../Doc/library/ssl.rst:273 +msgid "Random generation" +msgstr "" + +#: ../Doc/library/ssl.rst:277 +msgid "" +"Return *num* cryptographically strong pseudo-random bytes. Raises an :class:" +"`SSLError` if the PRNG has not been seeded with enough data or if the " +"operation is not supported by the current RAND method. :func:`RAND_status` " +"can be used to check the status of the PRNG and :func:`RAND_add` can be used " +"to seed the PRNG." +msgstr "" + +#: ../Doc/library/ssl.rst:283 ../Doc/library/ssl.rst:304 +msgid "For almost all applications :func:`os.urandom` is preferable." +msgstr "" + +#: ../Doc/library/ssl.rst:285 +msgid "" +"Read the Wikipedia article, `Cryptographically secure pseudorandom number " +"generator (CSPRNG) `_, to get the " +"requirements of a cryptographically generator." +msgstr "" + +#: ../Doc/library/ssl.rst:294 +msgid "" +"Return (bytes, is_cryptographic): bytes are *num* pseudo-random bytes, " +"is_cryptographic is ``True`` if the bytes generated are cryptographically " +"strong. Raises an :class:`SSLError` if the operation is not supported by the " +"current RAND method." +msgstr "" + +#: ../Doc/library/ssl.rst:299 +msgid "" +"Generated pseudo-random byte sequences will be unique if they are of " +"sufficient length, but are not necessarily unpredictable. They can be used " +"for non-cryptographic purposes and for certain purposes in cryptographic " +"protocols, but usually not for key generation etc." +msgstr "" + +#: ../Doc/library/ssl.rst:310 +msgid "" +"OpenSSL has deprecated :func:`ssl.RAND_pseudo_bytes`, use :func:`ssl." +"RAND_bytes` instead." +msgstr "" + +#: ../Doc/library/ssl.rst:315 +msgid "" +"Return ``True`` if the SSL pseudo-random number generator has been seeded " +"with 'enough' randomness, and ``False`` otherwise. You can use :func:`ssl." +"RAND_egd` and :func:`ssl.RAND_add` to increase the randomness of the pseudo-" +"random number generator." +msgstr "" + +#: ../Doc/library/ssl.rst:322 +msgid "" +"If you are running an entropy-gathering daemon (EGD) somewhere, and *path* " +"is the pathname of a socket connection open to it, this will read 256 bytes " +"of randomness from the socket, and add it to the SSL pseudo-random number " +"generator to increase the security of generated secret keys. This is " +"typically only necessary on systems without better sources of randomness." +msgstr "" + +#: ../Doc/library/ssl.rst:328 +msgid "" +"See http://egd.sourceforge.net/ or http://prngd.sourceforge.net/ for sources " +"of entropy-gathering daemons." +msgstr "" + +#: ../Doc/library/ssl.rst:331 +msgid "" +":ref:`Availability `: not available with LibreSSL and OpenSSL " +"> 1.1.0." +msgstr "" + +#: ../Doc/library/ssl.rst:335 +msgid "" +"Mix the given *bytes* into the SSL pseudo-random number generator. The " +"parameter *entropy* (a float) is a lower bound on the entropy contained in " +"string (so you can always use :const:`0.0`). See :rfc:`1750` for more " +"information on sources of entropy." +msgstr "" + +#: ../Doc/library/ssl.rst:340 +msgid "Writable :term:`bytes-like object` is now accepted." +msgstr "N'importe quel :term:`bytes-like object` est maintenant accepté." + +#: ../Doc/library/ssl.rst:344 +msgid "Certificate handling" +msgstr "" + +#: ../Doc/library/ssl.rst:352 +msgid "" +"Verify that *cert* (in decoded format as returned by :meth:`SSLSocket." +"getpeercert`) matches the given *hostname*. The rules applied are those for " +"checking the identity of HTTPS servers as outlined in :rfc:`2818`, :rfc:" +"`5280` and :rfc:`6125`. In addition to HTTPS, this function should be " +"suitable for checking the identity of servers in various SSL-based protocols " +"such as FTPS, IMAPS, POPS and others." +msgstr "" + +#: ../Doc/library/ssl.rst:359 +msgid "" +":exc:`CertificateError` is raised on failure. On success, the function " +"returns nothing::" +msgstr "" + +#: ../Doc/library/ssl.rst:372 +msgid "" +"The function now follows :rfc:`6125`, section 6.4.3 and does neither match " +"multiple wildcards (e.g. ``*.*.com`` or ``*a*.example.org``) nor a wildcard " +"inside an internationalized domain names (IDN) fragment. IDN A-labels such " +"as ``www*.xn--pthon-kva.org`` are still supported, but ``x*.python.org`` no " +"longer matches ``xn--tda.python.org``." +msgstr "" + +#: ../Doc/library/ssl.rst:379 +msgid "" +"Matching of IP addresses, when present in the subjectAltName field of the " +"certificate, is now supported." +msgstr "" + +#: ../Doc/library/ssl.rst:383 +msgid "" +"The function is no longer used to TLS connections. Hostname matching is now " +"performed by OpenSSL." +msgstr "" + +#: ../Doc/library/ssl.rst:387 +msgid "" +"Allow wildcard when it is the leftmost and the only character in that " +"segment. Partial wildcards like ``www*.example.com`` are no longer supported." +msgstr "" + +#: ../Doc/library/ssl.rst:395 +msgid "" +"Return the time in seconds since the Epoch, given the ``cert_time`` string " +"representing the \"notBefore\" or \"notAfter\" date from a certificate in ``" +"\"%b %d %H:%M:%S %Y %Z\"`` strptime format (C locale)." +msgstr "" + +#: ../Doc/library/ssl.rst:400 +msgid "Here's an example:" +msgstr "" + +#: ../Doc/library/ssl.rst:412 +msgid "\"notBefore\" or \"notAfter\" dates must use GMT (:rfc:`5280`)." +msgstr "" + +#: ../Doc/library/ssl.rst:414 +msgid "" +"Interpret the input time as a time in UTC as specified by 'GMT' timezone in " +"the input string. Local timezone was used previously. Return an integer (no " +"fractions of a second in the input format)" +msgstr "" + +#: ../Doc/library/ssl.rst:422 +msgid "" +"Given the address ``addr`` of an SSL-protected server, as a (*hostname*, " +"*port-number*) pair, fetches the server's certificate, and returns it as a " +"PEM-encoded string. If ``ssl_version`` is specified, uses that version of " +"the SSL protocol to attempt to connect to the server. If ``ca_certs`` is " +"specified, it should be a file containing a list of root certificates, the " +"same format as used for the same parameter in :meth:`SSLContext." +"wrap_socket`. The call will attempt to validate the server certificate " +"against that set of root certificates, and will fail if the validation " +"attempt fails." +msgstr "" + +#: ../Doc/library/ssl.rst:432 +msgid "This function is now IPv6-compatible." +msgstr "" + +#: ../Doc/library/ssl.rst:435 +msgid "" +"The default *ssl_version* is changed from :data:`PROTOCOL_SSLv3` to :data:" +"`PROTOCOL_TLS` for maximum compatibility with modern servers." +msgstr "" + +#: ../Doc/library/ssl.rst:441 +msgid "" +"Given a certificate as a DER-encoded blob of bytes, returns a PEM-encoded " +"string version of the same certificate." +msgstr "" + +#: ../Doc/library/ssl.rst:446 +msgid "" +"Given a certificate as an ASCII PEM string, returns a DER-encoded sequence " +"of bytes for that same certificate." +msgstr "" + +#: ../Doc/library/ssl.rst:451 +msgid "" +"Returns a named tuple with paths to OpenSSL's default cafile and capath. The " +"paths are the same as used by :meth:`SSLContext.set_default_verify_paths`. " +"The return value is a :term:`named tuple` ``DefaultVerifyPaths``:" +msgstr "" + +#: ../Doc/library/ssl.rst:456 +msgid "" +":attr:`cafile` - resolved path to cafile or ``None`` if the file doesn't " +"exist," +msgstr "" + +#: ../Doc/library/ssl.rst:457 +msgid "" +":attr:`capath` - resolved path to capath or ``None`` if the directory " +"doesn't exist," +msgstr "" + +#: ../Doc/library/ssl.rst:458 +msgid "" +":attr:`openssl_cafile_env` - OpenSSL's environment key that points to a " +"cafile," +msgstr "" + +#: ../Doc/library/ssl.rst:459 +msgid ":attr:`openssl_cafile` - hard coded path to a cafile," +msgstr "" + +#: ../Doc/library/ssl.rst:460 +msgid "" +":attr:`openssl_capath_env` - OpenSSL's environment key that points to a " +"capath," +msgstr "" + +#: ../Doc/library/ssl.rst:461 +msgid ":attr:`openssl_capath` - hard coded path to a capath directory" +msgstr "" + +#: ../Doc/library/ssl.rst:465 +msgid "" +":ref:`Availability `: LibreSSL ignores the environment vars :" +"attr:`openssl_cafile_env` and :attr:`openssl_capath_env`." +msgstr "" + +#: ../Doc/library/ssl.rst:470 +msgid "" +"Retrieve certificates from Windows' system cert store. *store_name* may be " +"one of ``CA``, ``ROOT`` or ``MY``. Windows may provide additional cert " +"stores, too." +msgstr "" + +#: ../Doc/library/ssl.rst:474 +msgid "" +"The function returns a list of (cert_bytes, encoding_type, trust) tuples. " +"The encoding_type specifies the encoding of cert_bytes. It is either :const:" +"`x509_asn` for X.509 ASN.1 data or :const:`pkcs_7_asn` for PKCS#7 ASN.1 " +"data. Trust specifies the purpose of the certificate as a set of OIDS or " +"exactly ``True`` if the certificate is trustworthy for all purposes." +msgstr "" + +#: ../Doc/library/ssl.rst:481 ../Doc/library/ssl.rst:1565 +#: ../Doc/library/ssl.rst:1878 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/ssl.rst:488 ../Doc/library/ssl.rst:503 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." + +#: ../Doc/library/ssl.rst:493 +msgid "" +"Retrieve CRLs from Windows' system cert store. *store_name* may be one of " +"``CA``, ``ROOT`` or ``MY``. Windows may provide additional cert stores, too." +msgstr "" + +#: ../Doc/library/ssl.rst:497 +msgid "" +"The function returns a list of (cert_bytes, encoding_type, trust) tuples. " +"The encoding_type specifies the encoding of cert_bytes. It is either :const:" +"`x509_asn` for X.509 ASN.1 data or :const:`pkcs_7_asn` for PKCS#7 ASN.1 data." +msgstr "" + +#: ../Doc/library/ssl.rst:511 +msgid "" +"Takes an instance ``sock`` of :class:`socket.socket`, and returns an " +"instance of :class:`ssl.SSLSocket`, a subtype of :class:`socket.socket`, " +"which wraps the underlying socket in an SSL context. ``sock`` must be a :" +"data:`~socket.SOCK_STREAM` socket; other socket types are unsupported." +msgstr "" + +#: ../Doc/library/ssl.rst:516 +msgid "" +"Internally, function creates a :class:`SSLContext` with protocol " +"*ssl_version* and :attr:`SSLContext.options` set to *cert_reqs*. If " +"parameters *keyfile*, *certfile*, *ca_certs* or *ciphers* are set, then the " +"values are passed to :meth:`SSLContext.load_cert_chain`, :meth:`SSLContext." +"load_verify_locations`, and :meth:`SSLContext.set_ciphers`." +msgstr "" + +#: ../Doc/library/ssl.rst:523 +msgid "" +"The arguments *server_side*, *do_handshake_on_connect*, and " +"*suppress_ragged_eofs* have the same meaning as :meth:`SSLContext." +"wrap_socket`." +msgstr "" + +#: ../Doc/library/ssl.rst:529 +msgid "" +"Since Python 3.2 and 2.7.9, it is recommended to use the :meth:`SSLContext." +"wrap_socket` instead of :func:`wrap_socket`. The top-level function is " +"limited and creates an insecure client socket without server name indication " +"or hostname matching." +msgstr "" + +#: ../Doc/library/ssl.rst:535 +msgid "Constants" +msgstr "Constantes" + +#: ../Doc/library/ssl.rst:537 +msgid "" +"All constants are now :class:`enum.IntEnum` or :class:`enum.IntFlag` " +"collections." +msgstr "" + +#: ../Doc/library/ssl.rst:543 +msgid "" +"Possible value for :attr:`SSLContext.verify_mode`, or the ``cert_reqs`` " +"parameter to :func:`wrap_socket`. Except for :const:`PROTOCOL_TLS_CLIENT`, " +"it is the default mode. With client-side sockets, just about any cert is " +"accepted. Validation errors, such as untrusted or expired cert, are ignored " +"and do not abort the TLS/SSL handshake." +msgstr "" + +#: ../Doc/library/ssl.rst:549 +msgid "" +"In server mode, no certificate is requested from the client, so the client " +"does not send any for client cert authentication." +msgstr "" + +#: ../Doc/library/ssl.rst:552 ../Doc/library/ssl.rst:2272 +msgid "See the discussion of :ref:`ssl-security` below." +msgstr "" + +#: ../Doc/library/ssl.rst:556 +msgid "" +"Possible value for :attr:`SSLContext.verify_mode`, or the ``cert_reqs`` " +"parameter to :func:`wrap_socket`. In client mode, :const:`CERT_OPTIONAL` " +"has the same meaning as :const:`CERT_REQUIRED`. It is recommended to use :" +"const:`CERT_REQUIRED` for client-side sockets instead." +msgstr "" + +#: ../Doc/library/ssl.rst:561 +msgid "" +"In server mode, a client certificate request is sent to the client. The " +"client may either ignore the request or send a certificate in order perform " +"TLS client cert authentication. If the client chooses to send a " +"certificate, it is verified. Any verification error immediately aborts the " +"TLS handshake." +msgstr "" + +#: ../Doc/library/ssl.rst:567 ../Doc/library/ssl.rst:587 +msgid "" +"Use of this setting requires a valid set of CA certificates to be passed, " +"either to :meth:`SSLContext.load_verify_locations` or as a value of the " +"``ca_certs`` parameter to :func:`wrap_socket`." +msgstr "" + +#: ../Doc/library/ssl.rst:573 +msgid "" +"Possible value for :attr:`SSLContext.verify_mode`, or the ``cert_reqs`` " +"parameter to :func:`wrap_socket`. In this mode, certificates are required " +"from the other side of the socket connection; an :class:`SSLError` will be " +"raised if no certificate is provided, or if its validation fails. This mode " +"is **not** sufficient to verify a certificate in client mode as it does not " +"match hostnames. :attr:`~SSLContext.check_hostname` must be enabled as well " +"to verify the authenticity of a cert. :const:`PROTOCOL_TLS_CLIENT` uses :" +"const:`CERT_REQUIRED` and enables :attr:`~SSLContext.check_hostname` by " +"default." +msgstr "" + +#: ../Doc/library/ssl.rst:583 +msgid "" +"With server socket, this mode provides mandatory TLS client cert " +"authentication. A client certificate request is sent to the client and the " +"client must provide a valid and trusted certificate." +msgstr "" + +#: ../Doc/library/ssl.rst:593 +msgid ":class:`enum.IntEnum` collection of CERT_* constants." +msgstr "" + +#: ../Doc/library/ssl.rst:599 +msgid "" +"Possible value for :attr:`SSLContext.verify_flags`. In this mode, " +"certificate revocation lists (CRLs) are not checked. By default OpenSSL does " +"neither require nor verify CRLs." +msgstr "" + +#: ../Doc/library/ssl.rst:607 +msgid "" +"Possible value for :attr:`SSLContext.verify_flags`. In this mode, only the " +"peer cert is check but non of the intermediate CA certificates. The mode " +"requires a valid CRL that is signed by the peer cert's issuer (its direct " +"ancestor CA). If no proper has been loaded :attr:`SSLContext." +"load_verify_locations`, validation will fail." +msgstr "" + +#: ../Doc/library/ssl.rst:617 +msgid "" +"Possible value for :attr:`SSLContext.verify_flags`. In this mode, CRLs of " +"all certificates in the peer cert chain are checked." +msgstr "" + +#: ../Doc/library/ssl.rst:624 +msgid "" +"Possible value for :attr:`SSLContext.verify_flags` to disable workarounds " +"for broken X.509 certificates." +msgstr "" + +#: ../Doc/library/ssl.rst:631 +msgid "" +"Possible value for :attr:`SSLContext.verify_flags`. It instructs OpenSSL to " +"prefer trusted certificates when building the trust chain to validate a " +"certificate. This flag is enabled by default." +msgstr "" + +#: ../Doc/library/ssl.rst:639 +msgid ":class:`enum.IntFlag` collection of VERIFY_* constants." +msgstr "" + +#: ../Doc/library/ssl.rst:645 +msgid "" +"Selects the highest protocol version that both the client and server " +"support. Despite the name, this option can select both \"SSL\" and \"TLS\" " +"protocols." +msgstr "" + +#: ../Doc/library/ssl.rst:652 +msgid "" +"Auto-negotiate the highest protocol version like :data:`PROTOCOL_TLS`, but " +"only support client-side :class:`SSLSocket` connections. The protocol " +"enables :data:`CERT_REQUIRED` and :attr:`~SSLContext.check_hostname` by " +"default." +msgstr "" + +#: ../Doc/library/ssl.rst:661 +msgid "" +"Auto-negotiate the highest protocol version like :data:`PROTOCOL_TLS`, but " +"only support server-side :class:`SSLSocket` connections." +msgstr "" + +#: ../Doc/library/ssl.rst:668 +msgid "Alias for data:`PROTOCOL_TLS`." +msgstr "" + +#: ../Doc/library/ssl.rst:672 +msgid "Use :data:`PROTOCOL_TLS` instead." +msgstr "" + +#: ../Doc/library/ssl.rst:676 +msgid "Selects SSL version 2 as the channel encryption protocol." +msgstr "" + +#: ../Doc/library/ssl.rst:678 +msgid "" +"This protocol is not available if OpenSSL is compiled with the " +"``OPENSSL_NO_SSL2`` flag." +msgstr "" + +#: ../Doc/library/ssl.rst:683 +msgid "SSL version 2 is insecure. Its use is highly discouraged." +msgstr "" + +#: ../Doc/library/ssl.rst:687 +msgid "OpenSSL has removed support for SSLv2." +msgstr "" + +#: ../Doc/library/ssl.rst:691 +msgid "Selects SSL version 3 as the channel encryption protocol." +msgstr "" + +#: ../Doc/library/ssl.rst:693 +msgid "" +"This protocol is not be available if OpenSSL is compiled with the " +"``OPENSSL_NO_SSLv3`` flag." +msgstr "" + +#: ../Doc/library/ssl.rst:698 +msgid "SSL version 3 is insecure. Its use is highly discouraged." +msgstr "" + +#: ../Doc/library/ssl.rst:702 ../Doc/library/ssl.rst:711 +#: ../Doc/library/ssl.rst:723 ../Doc/library/ssl.rst:736 +msgid "" +"OpenSSL has deprecated all version specific protocols. Use the default " +"protocol :data:`PROTOCOL_TLS` with flags like :data:`OP_NO_SSLv3` instead." +msgstr "" + +#: ../Doc/library/ssl.rst:707 +msgid "Selects TLS version 1.0 as the channel encryption protocol." +msgstr "" + +#: ../Doc/library/ssl.rst:716 +msgid "" +"Selects TLS version 1.1 as the channel encryption protocol. Available only " +"with openssl version 1.0.1+." +msgstr "" + +#: ../Doc/library/ssl.rst:728 +msgid "" +"Selects TLS version 1.2 as the channel encryption protocol. This is the most " +"modern version, and probably the best choice for maximum protection, if both " +"sides can speak it. Available only with openssl version 1.0.1+." +msgstr "" + +#: ../Doc/library/ssl.rst:741 +msgid "" +"Enables workarounds for various bugs present in other SSL implementations. " +"This option is set by default. It does not necessarily set the same flags " +"as OpenSSL's ``SSL_OP_ALL`` constant." +msgstr "" + +#: ../Doc/library/ssl.rst:749 +msgid "" +"Prevents an SSLv2 connection. This option is only applicable in conjunction " +"with :const:`PROTOCOL_TLS`. It prevents the peers from choosing SSLv2 as " +"the protocol version." +msgstr "" + +#: ../Doc/library/ssl.rst:757 +msgid "SSLv2 is deprecated" +msgstr "" + +#: ../Doc/library/ssl.rst:762 +msgid "" +"Prevents an SSLv3 connection. This option is only applicable in conjunction " +"with :const:`PROTOCOL_TLS`. It prevents the peers from choosing SSLv3 as " +"the protocol version." +msgstr "" + +#: ../Doc/library/ssl.rst:770 +msgid "SSLv3 is deprecated" +msgstr "" + +#: ../Doc/library/ssl.rst:774 +msgid "" +"Prevents a TLSv1 connection. This option is only applicable in conjunction " +"with :const:`PROTOCOL_TLS`. It prevents the peers from choosing TLSv1 as " +"the protocol version." +msgstr "" + +#: ../Doc/library/ssl.rst:780 +msgid "" +"The option is deprecated since OpenSSL 1.1.0, use the new :attr:`SSLContext." +"minimum_version` and :attr:`SSLContext.maximum_version` instead." +msgstr "" + +#: ../Doc/library/ssl.rst:787 +msgid "" +"Prevents a TLSv1.1 connection. This option is only applicable in conjunction " +"with :const:`PROTOCOL_TLS`. It prevents the peers from choosing TLSv1.1 as " +"the protocol version. Available only with openssl version 1.0.1+." +msgstr "" + +#: ../Doc/library/ssl.rst:793 ../Doc/library/ssl.rst:804 +msgid "The option is deprecated since OpenSSL 1.1.0." +msgstr "" + +#: ../Doc/library/ssl.rst:798 +msgid "" +"Prevents a TLSv1.2 connection. This option is only applicable in conjunction " +"with :const:`PROTOCOL_TLS`. It prevents the peers from choosing TLSv1.2 as " +"the protocol version. Available only with openssl version 1.0.1+." +msgstr "" + +#: ../Doc/library/ssl.rst:809 +msgid "" +"Prevents a TLSv1.3 connection. This option is only applicable in conjunction " +"with :const:`PROTOCOL_TLS`. It prevents the peers from choosing TLSv1.3 as " +"the protocol version. TLS 1.3 is available with OpenSSL 1.1.1 or later. When " +"Python has been compiled against an older version of OpenSSL, the flag " +"defaults to *0*." +msgstr "" + +#: ../Doc/library/ssl.rst:817 +msgid "" +"The option is deprecated since OpenSSL 1.1.0. It was added to 2.7.15, 3.6.3 " +"and 3.7.0 for backwards compatibility with OpenSSL 1.0.2." +msgstr "" + +#: ../Doc/library/ssl.rst:823 +msgid "" +"Disable all renegotiation in TLSv1.2 and earlier. Do not send HelloRequest " +"messages, and ignore renegotiation requests via ClientHello." +msgstr "" + +#: ../Doc/library/ssl.rst:826 +msgid "This option is only available with OpenSSL 1.1.0h and later." +msgstr "" + +#: ../Doc/library/ssl.rst:832 +msgid "" +"Use the server's cipher ordering preference, rather than the client's. This " +"option has no effect on client sockets and SSLv2 server sockets." +msgstr "" + +#: ../Doc/library/ssl.rst:839 +msgid "" +"Prevents re-use of the same DH key for distinct SSL sessions. This improves " +"forward secrecy but requires more computational resources. This option only " +"applies to server sockets." +msgstr "" + +#: ../Doc/library/ssl.rst:847 +msgid "" +"Prevents re-use of the same ECDH key for distinct SSL sessions. This " +"improves forward secrecy but requires more computational resources. This " +"option only applies to server sockets." +msgstr "" + +#: ../Doc/library/ssl.rst:855 +msgid "" +"Send dummy Change Cipher Spec (CCS) messages in TLS 1.3 handshake to make a " +"TLS 1.3 connection look more like a TLS 1.2 connection." +msgstr "" + +#: ../Doc/library/ssl.rst:858 +msgid "This option is only available with OpenSSL 1.1.1 and later." +msgstr "" + +#: ../Doc/library/ssl.rst:864 +msgid "" +"Disable compression on the SSL channel. This is useful if the application " +"protocol supports its own compression scheme." +msgstr "" + +#: ../Doc/library/ssl.rst:867 +msgid "This option is only available with OpenSSL 1.0.0 and later." +msgstr "" + +#: ../Doc/library/ssl.rst:873 +msgid ":class:`enum.IntFlag` collection of OP_* constants." +msgstr "" + +#: ../Doc/library/ssl.rst:877 +msgid "Prevent client side from requesting a session ticket." +msgstr "" + +#: ../Doc/library/ssl.rst:883 +msgid "" +"Whether the OpenSSL library has built-in support for the *Application-Layer " +"Protocol Negotiation* TLS extension as described in :rfc:`7301`." +msgstr "" + +#: ../Doc/library/ssl.rst:890 +msgid "" +"Whether the OpenSSL library has built-in support not checking subject common " +"name and :attr:`SSLContext.hostname_checks_common_name` is writeable." +msgstr "" + +#: ../Doc/library/ssl.rst:898 +msgid "" +"Whether the OpenSSL library has built-in support for the Elliptic Curve-" +"based Diffie-Hellman key exchange. This should be true unless the feature " +"was explicitly disabled by the distributor." +msgstr "" + +#: ../Doc/library/ssl.rst:906 +msgid "" +"Whether the OpenSSL library has built-in support for the *Server Name " +"Indication* extension (as defined in :rfc:`6066`)." +msgstr "" + +#: ../Doc/library/ssl.rst:913 +msgid "" +"Whether the OpenSSL library has built-in support for the *Next Protocol " +"Negotiation* as described in the `Application Layer Protocol Negotiation " +"`_. " +"When true, you can use the :meth:`SSLContext.set_npn_protocols` method to " +"advertise which protocols you want to support." +msgstr "" + +#: ../Doc/library/ssl.rst:923 +msgid "" +"Whether the OpenSSL library has built-in support for the SSL 2.0 protocol." +msgstr "" + +#: ../Doc/library/ssl.rst:929 +msgid "" +"Whether the OpenSSL library has built-in support for the SSL 3.0 protocol." +msgstr "" + +#: ../Doc/library/ssl.rst:935 +msgid "" +"Whether the OpenSSL library has built-in support for the TLS 1.0 protocol." +msgstr "" + +#: ../Doc/library/ssl.rst:941 +msgid "" +"Whether the OpenSSL library has built-in support for the TLS 1.1 protocol." +msgstr "" + +#: ../Doc/library/ssl.rst:947 +msgid "" +"Whether the OpenSSL library has built-in support for the TLS 1.2 protocol." +msgstr "" + +#: ../Doc/library/ssl.rst:953 +msgid "" +"Whether the OpenSSL library has built-in support for the TLS 1.3 protocol." +msgstr "" + +#: ../Doc/library/ssl.rst:959 +msgid "" +"List of supported TLS channel binding types. Strings in this list can be " +"used as arguments to :meth:`SSLSocket.get_channel_binding`." +msgstr "" + +#: ../Doc/library/ssl.rst:966 +msgid "The version string of the OpenSSL library loaded by the interpreter::" +msgstr "" + +#: ../Doc/library/ssl.rst:975 +msgid "" +"A tuple of five integers representing version information about the OpenSSL " +"library::" +msgstr "" + +#: ../Doc/library/ssl.rst:985 +msgid "The raw version number of the OpenSSL library, as a single integer::" +msgstr "" + +#: ../Doc/library/ssl.rst:998 +msgid "" +"Alert Descriptions from :rfc:`5246` and others. The `IANA TLS Alert Registry " +"`_ contains this list and references to the RFCs where their " +"meaning is defined." +msgstr "" + +#: ../Doc/library/ssl.rst:1002 +msgid "" +"Used as the return value of the callback function in :meth:`SSLContext." +"set_servername_callback`." +msgstr "" + +#: ../Doc/library/ssl.rst:1009 +msgid ":class:`enum.IntEnum` collection of ALERT_DESCRIPTION_* constants." +msgstr "" + +#: ../Doc/library/ssl.rst:1015 +msgid "" +"Option for :func:`create_default_context` and :meth:`SSLContext." +"load_default_certs`. This value indicates that the context may be used to " +"authenticate Web servers (therefore, it will be used to create client-side " +"sockets)." +msgstr "" + +#: ../Doc/library/ssl.rst:1024 +msgid "" +"Option for :func:`create_default_context` and :meth:`SSLContext." +"load_default_certs`. This value indicates that the context may be used to " +"authenticate Web clients (therefore, it will be used to create server-side " +"sockets)." +msgstr "" + +#: ../Doc/library/ssl.rst:1033 +msgid ":class:`enum.IntEnum` collection of SSL_ERROR_* constants." +msgstr "" + +#: ../Doc/library/ssl.rst:1039 +msgid "" +":class:`enum.IntEnum` collection of SSL and TLS versions for :attr:" +"`SSLContext.maximum_version` and :attr:`SSLContext.minimum_version`." +msgstr "" + +#: ../Doc/library/ssl.rst:1047 +msgid "" +"The minimum or maximum supported SSL or TLS version. These are magic " +"constants. Their values don't reflect the lowest and highest available TLS/" +"SSL versions." +msgstr "" + +#: ../Doc/library/ssl.rst:1057 +msgid "SSL 3.0 to TLS 1.3." +msgstr "" + +#: ../Doc/library/ssl.rst:1060 +msgid "SSL Sockets" +msgstr "" + +#: ../Doc/library/ssl.rst:1064 +msgid "SSL sockets provide the following methods of :ref:`socket-objects`:" +msgstr "" + +#: ../Doc/library/ssl.rst:1066 +msgid ":meth:`~socket.socket.accept()`" +msgstr "" + +#: ../Doc/library/ssl.rst:1067 +msgid ":meth:`~socket.socket.bind()`" +msgstr "" + +#: ../Doc/library/ssl.rst:1068 +msgid ":meth:`~socket.socket.close()`" +msgstr "" + +#: ../Doc/library/ssl.rst:1069 +msgid ":meth:`~socket.socket.connect()`" +msgstr "" + +#: ../Doc/library/ssl.rst:1070 +msgid ":meth:`~socket.socket.detach()`" +msgstr "" + +#: ../Doc/library/ssl.rst:1071 +msgid ":meth:`~socket.socket.fileno()`" +msgstr "" + +#: ../Doc/library/ssl.rst:1072 +msgid "" +":meth:`~socket.socket.getpeername()`, :meth:`~socket.socket.getsockname()`" +msgstr "" + +#: ../Doc/library/ssl.rst:1073 +msgid "" +":meth:`~socket.socket.getsockopt()`, :meth:`~socket.socket.setsockopt()`" +msgstr "" + +#: ../Doc/library/ssl.rst:1074 +msgid "" +":meth:`~socket.socket.gettimeout()`, :meth:`~socket.socket.settimeout()`, :" +"meth:`~socket.socket.setblocking()`" +msgstr "" + +#: ../Doc/library/ssl.rst:1076 +msgid ":meth:`~socket.socket.listen()`" +msgstr "" + +#: ../Doc/library/ssl.rst:1077 +msgid ":meth:`~socket.socket.makefile()`" +msgstr "" + +#: ../Doc/library/ssl.rst:1078 +msgid "" +":meth:`~socket.socket.recv()`, :meth:`~socket.socket.recv_into()` (but " +"passing a non-zero ``flags`` argument is not allowed)" +msgstr "" + +#: ../Doc/library/ssl.rst:1080 +msgid "" +":meth:`~socket.socket.send()`, :meth:`~socket.socket.sendall()` (with the " +"same limitation)" +msgstr "" + +#: ../Doc/library/ssl.rst:1082 +msgid "" +":meth:`~socket.socket.sendfile()` (but :mod:`os.sendfile` will be used for " +"plain-text sockets only, else :meth:`~socket.socket.send()` will be used)" +msgstr "" + +#: ../Doc/library/ssl.rst:1084 +msgid ":meth:`~socket.socket.shutdown()`" +msgstr "" + +#: ../Doc/library/ssl.rst:1086 +msgid "" +"However, since the SSL (and TLS) protocol has its own framing atop of TCP, " +"the SSL sockets abstraction can, in certain respects, diverge from the " +"specification of normal, OS-level sockets. See especially the :ref:`notes " +"on non-blocking sockets `." +msgstr "" + +#: ../Doc/library/ssl.rst:1091 +msgid "" +"Instances of :class:`SSLSocket` must be created using the :meth:`SSLContext." +"wrap_socket` method." +msgstr "" + +#: ../Doc/library/ssl.rst:1094 +msgid "The :meth:`sendfile` method was added." +msgstr "" + +#: ../Doc/library/ssl.rst:1097 +msgid "" +"The :meth:`shutdown` does not reset the socket timeout each time bytes are " +"received or sent. The socket timeout is now to maximum total duration of the " +"shutdown." +msgstr "" + +#: ../Doc/library/ssl.rst:1102 +msgid "" +"It is deprecated to create a :class:`SSLSocket` instance directly, use :meth:" +"`SSLContext.wrap_socket` to wrap a socket." +msgstr "" + +#: ../Doc/library/ssl.rst:1106 +msgid "" +":class:`SSLSocket` instances must to created with :meth:`~SSLContext." +"wrap_socket`. In earlier versions, it was possible to create instances " +"directly. This was never documented or officially supported." +msgstr "" + +#: ../Doc/library/ssl.rst:1112 +msgid "SSL sockets also have the following additional methods and attributes:" +msgstr "" + +#: ../Doc/library/ssl.rst:1116 +msgid "" +"Read up to *len* bytes of data from the SSL socket and return the result as " +"a ``bytes`` instance. If *buffer* is specified, then read into the buffer " +"instead, and return the number of bytes read." +msgstr "" + +#: ../Doc/library/ssl.rst:1120 +msgid "" +"Raise :exc:`SSLWantReadError` or :exc:`SSLWantWriteError` if the socket is :" +"ref:`non-blocking ` and the read would block." +msgstr "" + +#: ../Doc/library/ssl.rst:1123 +msgid "" +"As at any time a re-negotiation is possible, a call to :meth:`read` can also " +"cause write operations." +msgstr "" + +#: ../Doc/library/ssl.rst:1126 +msgid "" +"The socket timeout is no more reset each time bytes are received or sent. " +"The socket timeout is now to maximum total duration to read up to *len* " +"bytes." +msgstr "" + +#: ../Doc/library/ssl.rst:1131 +msgid "Use :meth:`~SSLSocket.recv` instead of :meth:`~SSLSocket.read`." +msgstr "" + +#: ../Doc/library/ssl.rst:1136 +msgid "" +"Write *buf* to the SSL socket and return the number of bytes written. The " +"*buf* argument must be an object supporting the buffer interface." +msgstr "" + +#: ../Doc/library/ssl.rst:1139 +msgid "" +"Raise :exc:`SSLWantReadError` or :exc:`SSLWantWriteError` if the socket is :" +"ref:`non-blocking ` and the write would block." +msgstr "" + +#: ../Doc/library/ssl.rst:1142 +msgid "" +"As at any time a re-negotiation is possible, a call to :meth:`write` can " +"also cause read operations." +msgstr "" + +#: ../Doc/library/ssl.rst:1145 +msgid "" +"The socket timeout is no more reset each time bytes are received or sent. " +"The socket timeout is now to maximum total duration to write *buf*." +msgstr "" + +#: ../Doc/library/ssl.rst:1149 +msgid "Use :meth:`~SSLSocket.send` instead of :meth:`~SSLSocket.write`." +msgstr "" + +#: ../Doc/library/ssl.rst:1154 +msgid "" +"The :meth:`~SSLSocket.read` and :meth:`~SSLSocket.write` methods are the low-" +"level methods that read and write unencrypted, application-level data and " +"decrypt/encrypt it to encrypted, wire-level data. These methods require an " +"active SSL connection, i.e. the handshake was completed and :meth:`SSLSocket." +"unwrap` was not called." +msgstr "" + +#: ../Doc/library/ssl.rst:1160 +msgid "" +"Normally you should use the socket API methods like :meth:`~socket.socket." +"recv` and :meth:`~socket.socket.send` instead of these methods." +msgstr "" + +#: ../Doc/library/ssl.rst:1166 +msgid "Perform the SSL setup handshake." +msgstr "" + +#: ../Doc/library/ssl.rst:1168 +msgid "" +"The handshake method also performs :func:`match_hostname` when the :attr:" +"`~SSLContext.check_hostname` attribute of the socket's :attr:`~SSLSocket." +"context` is true." +msgstr "" + +#: ../Doc/library/ssl.rst:1173 +msgid "" +"The socket timeout is no more reset each time bytes are received or sent. " +"The socket timeout is now to maximum total duration of the handshake." +msgstr "" + +#: ../Doc/library/ssl.rst:1177 +msgid "" +"Hostname or IP address is matched by OpenSSL during handshake. The function :" +"func:`match_hostname` is no longer used. In case OpenSSL refuses a hostname " +"or IP address, the handshake is aborted early and a TLS alert message is " +"send to the peer." +msgstr "" + +#: ../Doc/library/ssl.rst:1185 +msgid "" +"If there is no certificate for the peer on the other end of the connection, " +"return ``None``. If the SSL handshake hasn't been done yet, raise :exc:" +"`ValueError`." +msgstr "" + +#: ../Doc/library/ssl.rst:1189 +msgid "" +"If the ``binary_form`` parameter is :const:`False`, and a certificate was " +"received from the peer, this method returns a :class:`dict` instance. If " +"the certificate was not validated, the dict is empty. If the certificate " +"was validated, it returns a dict with several keys, amongst them ``subject`` " +"(the principal for which the certificate was issued) and ``issuer`` (the " +"principal issuing the certificate). If a certificate contains an instance " +"of the *Subject Alternative Name* extension (see :rfc:`3280`), there will " +"also be a ``subjectAltName`` key in the dictionary." +msgstr "" + +#: ../Doc/library/ssl.rst:1198 +msgid "" +"The ``subject`` and ``issuer`` fields are tuples containing the sequence of " +"relative distinguished names (RDNs) given in the certificate's data " +"structure for the respective fields, and each RDN is a sequence of name-" +"value pairs. Here is a real-world example::" +msgstr "" + +#: ../Doc/library/ssl.rst:1224 +msgid "" +"To validate a certificate for a particular service, you can use the :func:" +"`match_hostname` function." +msgstr "" + +#: ../Doc/library/ssl.rst:1227 +msgid "" +"If the ``binary_form`` parameter is :const:`True`, and a certificate was " +"provided, this method returns the DER-encoded form of the entire certificate " +"as a sequence of bytes, or :const:`None` if the peer did not provide a " +"certificate. Whether the peer provides a certificate depends on the SSL " +"socket's role:" +msgstr "" + +#: ../Doc/library/ssl.rst:1233 +msgid "" +"for a client SSL socket, the server will always provide a certificate, " +"regardless of whether validation was required;" +msgstr "" + +#: ../Doc/library/ssl.rst:1236 +msgid "" +"for a server SSL socket, the client will only provide a certificate when " +"requested by the server; therefore :meth:`getpeercert` will return :const:" +"`None` if you used :const:`CERT_NONE` (rather than :const:`CERT_OPTIONAL` " +"or :const:`CERT_REQUIRED`)." +msgstr "" + +#: ../Doc/library/ssl.rst:1241 +msgid "" +"The returned dictionary includes additional items such as ``issuer`` and " +"``notBefore``." +msgstr "" + +#: ../Doc/library/ssl.rst:1245 +msgid "" +":exc:`ValueError` is raised when the handshake isn't done. The returned " +"dictionary includes additional X509v3 extension items such as " +"``crlDistributionPoints``, ``caIssuers`` and ``OCSP`` URIs." +msgstr "" + +#: ../Doc/library/ssl.rst:1252 +msgid "" +"Returns a three-value tuple containing the name of the cipher being used, " +"the version of the SSL protocol that defines its use, and the number of " +"secret bits being used. If no connection has been established, returns " +"``None``." +msgstr "" + +#: ../Doc/library/ssl.rst:1258 +msgid "" +"Return the list of ciphers shared by the client during the handshake. Each " +"entry of the returned list is a three-value tuple containing the name of the " +"cipher, the version of the SSL protocol that defines its use, and the number " +"of secret bits the cipher uses. :meth:`~SSLSocket.shared_ciphers` returns " +"``None`` if no connection has been established or the socket is a client " +"socket." +msgstr "" + +#: ../Doc/library/ssl.rst:1269 +msgid "" +"Return the compression algorithm being used as a string, or ``None`` if the " +"connection isn't compressed." +msgstr "" + +#: ../Doc/library/ssl.rst:1272 +msgid "" +"If the higher-level protocol supports its own compression mechanism, you can " +"use :data:`OP_NO_COMPRESSION` to disable SSL-level compression." +msgstr "" + +#: ../Doc/library/ssl.rst:1279 +msgid "" +"Get channel binding data for current connection, as a bytes object. Returns " +"``None`` if not connected or the handshake has not been completed." +msgstr "" + +#: ../Doc/library/ssl.rst:1282 +msgid "" +"The *cb_type* parameter allow selection of the desired channel binding type. " +"Valid channel binding types are listed in the :data:`CHANNEL_BINDING_TYPES` " +"list. Currently only the 'tls-unique' channel binding, defined by :rfc:" +"`5929`, is supported. :exc:`ValueError` will be raised if an unsupported " +"channel binding type is requested." +msgstr "" + +#: ../Doc/library/ssl.rst:1292 +msgid "" +"Return the protocol that was selected during the TLS handshake. If :meth:" +"`SSLContext.set_alpn_protocols` was not called, if the other party does not " +"support ALPN, if this socket does not support any of the client's proposed " +"protocols, or if the handshake has not happened yet, ``None`` is returned." +msgstr "" + +#: ../Doc/library/ssl.rst:1302 +msgid "" +"Return the higher-level protocol that was selected during the TLS/SSL " +"handshake. If :meth:`SSLContext.set_npn_protocols` was not called, or if the " +"other party does not support NPN, or if the handshake has not yet happened, " +"this will return ``None``." +msgstr "" + +#: ../Doc/library/ssl.rst:1311 +msgid "" +"Performs the SSL shutdown handshake, which removes the TLS layer from the " +"underlying socket, and returns the underlying socket object. This can be " +"used to go from encrypted operation over a connection to unencrypted. The " +"returned socket should always be used for further communication with the " +"other side of the connection, rather than the original socket." +msgstr "" + +#: ../Doc/library/ssl.rst:1319 +msgid "" +"Requests post-handshake authentication (PHA) from a TLS 1.3 client. PHA can " +"only be initiated for a TLS 1.3 connection from a server-side socket, after " +"the initial TLS handshake and with PHA enabled on both sides, see :attr:" +"`SSLContext.post_handshake_auth`." +msgstr "" + +#: ../Doc/library/ssl.rst:1324 +msgid "" +"The method does not perform a cert exchange immediately. The server-side " +"sends a CertificateRequest during the next write event and expects the " +"client to respond with a certificate on the next read event." +msgstr "" + +#: ../Doc/library/ssl.rst:1328 +msgid "" +"If any precondition isn't met (e.g. not TLS 1.3, PHA not enabled), an :exc:" +"`SSLError` is raised." +msgstr "" + +#: ../Doc/library/ssl.rst:1332 +msgid "" +"Only available with OpenSSL 1.1.1 and TLS 1.3 enabled. Without TLS 1.3 " +"support, the method raises :exc:`NotImplementedError`." +msgstr "" + +#: ../Doc/library/ssl.rst:1339 +msgid "" +"Return the actual SSL protocol version negotiated by the connection as a " +"string, or ``None`` is no secure connection is established. As of this " +"writing, possible return values include ``\"SSLv2\"``, ``\"SSLv3\"``, ``" +"\"TLSv1\"``, ``\"TLSv1.1\"`` and ``\"TLSv1.2\"``. Recent OpenSSL versions " +"may define more return values." +msgstr "" + +#: ../Doc/library/ssl.rst:1349 +msgid "" +"Returns the number of already decrypted bytes available for read, pending on " +"the connection." +msgstr "" + +#: ../Doc/library/ssl.rst:1354 +msgid "" +"The :class:`SSLContext` object this SSL socket is tied to. If the SSL " +"socket was created using the deprecated :func:`wrap_socket` function (rather " +"than :meth:`SSLContext.wrap_socket`), this is a custom context object " +"created for this SSL socket." +msgstr "" + +#: ../Doc/library/ssl.rst:1363 +msgid "" +"A boolean which is ``True`` for server-side sockets and ``False`` for client-" +"side sockets." +msgstr "" + +#: ../Doc/library/ssl.rst:1370 +msgid "" +"Hostname of the server: :class:`str` type, or ``None`` for server-side " +"socket or if the hostname was not specified in the constructor." +msgstr "" + +#: ../Doc/library/ssl.rst:1375 +msgid "" +"The attribute is now always ASCII text. When ``server_hostname`` is an " +"internationalized domain name (IDN), this attribute now stores the A-label " +"form (``\"xn--pythn-mua.org\"``), rather than the U-label form (``\"pythön." +"org\"``)." +msgstr "" + +#: ../Doc/library/ssl.rst:1383 +msgid "" +"The :class:`SSLSession` for this SSL connection. The session is available " +"for client and server side sockets after the TLS handshake has been " +"performed. For client sockets the session can be set before :meth:" +"`~SSLSocket.do_handshake` has been called to reuse a session." +msgstr "" + +#: ../Doc/library/ssl.rst:1396 +msgid "SSL Contexts" +msgstr "" + +#: ../Doc/library/ssl.rst:1400 +msgid "" +"An SSL context holds various data longer-lived than single SSL connections, " +"such as SSL configuration options, certificate(s) and private key(s). It " +"also manages a cache of SSL sessions for server-side sockets, in order to " +"speed up repeated connections from the same clients." +msgstr "" + +#: ../Doc/library/ssl.rst:1407 +msgid "" +"Create a new SSL context. You may pass *protocol* which must be one of the " +"``PROTOCOL_*`` constants defined in this module. The parameter specifies " +"which version of the SSL protocol to use. Typically, the server chooses a " +"particular protocol version, and the client must adapt to the server's " +"choice. Most of the versions are not interoperable with the other " +"versions. If not specified, the default is :data:`PROTOCOL_TLS`; it " +"provides the most compatibility with other versions." +msgstr "" + +#: ../Doc/library/ssl.rst:1416 +msgid "" +"Here's a table showing which versions in a client (down the side) can " +"connect to which versions in a server (along the top):" +msgstr "" + +#: ../Doc/library/ssl.rst:1422 +msgid "*client* / **server**" +msgstr "" + +#: ../Doc/library/ssl.rst:1422 +msgid "**SSLv2**" +msgstr "**SSLv2**" + +#: ../Doc/library/ssl.rst:1422 +msgid "**SSLv3**" +msgstr "**SSLv3**" + +#: ../Doc/library/ssl.rst:1422 +msgid "**TLS** [3]_" +msgstr "**TLS** [3]_" + +#: ../Doc/library/ssl.rst:1422 +msgid "**TLSv1**" +msgstr "**TLSv1**" + +#: ../Doc/library/ssl.rst:1422 +msgid "**TLSv1.1**" +msgstr "**TLSv1.1**" + +#: ../Doc/library/ssl.rst:1422 +msgid "**TLSv1.2**" +msgstr "**TLSv1.2**" + +#: ../Doc/library/ssl.rst:1424 +msgid "*SSLv2*" +msgstr "*SSLv2*" + +#: ../Doc/library/ssl.rst:1424 ../Doc/library/ssl.rst:1425 +#: ../Doc/library/ssl.rst:1426 ../Doc/library/ssl.rst:1427 +#: ../Doc/library/ssl.rst:1428 ../Doc/library/ssl.rst:1429 +msgid "yes" +msgstr "oui" + +#: ../Doc/library/ssl.rst:1424 ../Doc/library/ssl.rst:1425 +#: ../Doc/library/ssl.rst:1427 ../Doc/library/ssl.rst:1428 +#: ../Doc/library/ssl.rst:1429 +msgid "no" +msgstr "non" + +#: ../Doc/library/ssl.rst:1424 ../Doc/library/ssl.rst:1426 +msgid "no [1]_" +msgstr "" + +#: ../Doc/library/ssl.rst:1425 +msgid "*SSLv3*" +msgstr "*SSLv3*" + +#: ../Doc/library/ssl.rst:1425 ../Doc/library/ssl.rst:1426 +msgid "no [2]_" +msgstr "" + +#: ../Doc/library/ssl.rst:1426 +msgid "*TLS* (*SSLv23*) [3]_" +msgstr "" + +#: ../Doc/library/ssl.rst:1427 +msgid "*TLSv1*" +msgstr "*TLSv1*" + +#: ../Doc/library/ssl.rst:1428 +msgid "*TLSv1.1*" +msgstr "*TLSv1.1*" + +#: ../Doc/library/ssl.rst:1429 +msgid "*TLSv1.2*" +msgstr "*TLSv1.2*" + +#: ../Doc/library/ssl.rst:1432 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/ssl.rst:1433 +msgid ":class:`SSLContext` disables SSLv2 with :data:`OP_NO_SSLv2` by default." +msgstr "" + +#: ../Doc/library/ssl.rst:1434 +msgid ":class:`SSLContext` disables SSLv3 with :data:`OP_NO_SSLv3` by default." +msgstr "" + +#: ../Doc/library/ssl.rst:1435 +msgid "" +"TLS 1.3 protocol will be available with :data:`PROTOCOL_TLS` in OpenSSL >= " +"1.1.1. There is no dedicated PROTOCOL constant for just TLS 1.3." +msgstr "" + +#: ../Doc/library/ssl.rst:1440 +msgid "" +":func:`create_default_context` lets the :mod:`ssl` module choose security " +"settings for a given purpose." +msgstr "" + +#: ../Doc/library/ssl.rst:1445 +msgid "" +"The context is created with secure default values. The options :data:" +"`OP_NO_COMPRESSION`, :data:`OP_CIPHER_SERVER_PREFERENCE`, :data:" +"`OP_SINGLE_DH_USE`, :data:`OP_SINGLE_ECDH_USE`, :data:`OP_NO_SSLv2` (except " +"for :data:`PROTOCOL_SSLv2`), and :data:`OP_NO_SSLv3` (except for :data:" +"`PROTOCOL_SSLv3`) are set by default. The initial cipher suite list contains " +"only ``HIGH`` ciphers, no ``NULL`` ciphers and no ``MD5`` ciphers (except " +"for :data:`PROTOCOL_SSLv2`)." +msgstr "" + +#: ../Doc/library/ssl.rst:1455 +msgid ":class:`SSLContext` objects have the following methods and attributes:" +msgstr "" + +#: ../Doc/library/ssl.rst:1459 +msgid "" +"Get statistics about quantities of loaded X.509 certificates, count of X.509 " +"certificates flagged as CA certificates and certificate revocation lists as " +"dictionary." +msgstr "" + +#: ../Doc/library/ssl.rst:1463 +msgid "Example for a context with one CA cert and one other cert::" +msgstr "" + +#: ../Doc/library/ssl.rst:1473 +msgid "" +"Load a private key and the corresponding certificate. The *certfile* string " +"must be the path to a single file in PEM format containing the certificate " +"as well as any number of CA certificates needed to establish the " +"certificate's authenticity. The *keyfile* string, if present, must point to " +"a file containing the private key in. Otherwise the private key will be " +"taken from *certfile* as well. See the discussion of :ref:`ssl-" +"certificates` for more information on how the certificate is stored in the " +"*certfile*." +msgstr "" + +#: ../Doc/library/ssl.rst:1482 +msgid "" +"The *password* argument may be a function to call to get the password for " +"decrypting the private key. It will only be called if the private key is " +"encrypted and a password is necessary. It will be called with no arguments, " +"and it should return a string, bytes, or bytearray. If the return value is " +"a string it will be encoded as UTF-8 before using it to decrypt the key. " +"Alternatively a string, bytes, or bytearray value may be supplied directly " +"as the *password* argument. It will be ignored if the private key is not " +"encrypted and no password is needed." +msgstr "" + +#: ../Doc/library/ssl.rst:1491 +msgid "" +"If the *password* argument is not specified and a password is required, " +"OpenSSL's built-in password prompting mechanism will be used to " +"interactively prompt the user for a password." +msgstr "" + +#: ../Doc/library/ssl.rst:1495 +msgid "" +"An :class:`SSLError` is raised if the private key doesn't match with the " +"certificate." +msgstr "" + +#: ../Doc/library/ssl.rst:1498 +msgid "New optional argument *password*." +msgstr "" + +#: ../Doc/library/ssl.rst:1503 +msgid "" +"Load a set of default \"certification authority\" (CA) certificates from " +"default locations. On Windows it loads CA certs from the ``CA`` and ``ROOT`` " +"system stores. On other systems it calls :meth:`SSLContext." +"set_default_verify_paths`. In the future the method may load CA certificates " +"from other locations, too." +msgstr "" + +#: ../Doc/library/ssl.rst:1509 +msgid "" +"The *purpose* flag specifies what kind of CA certificates are loaded. The " +"default settings :data:`Purpose.SERVER_AUTH` loads certificates, that are " +"flagged and trusted for TLS web server authentication (client side " +"sockets). :data:`Purpose.CLIENT_AUTH` loads CA certificates for client " +"certificate verification on the server side." +msgstr "" + +#: ../Doc/library/ssl.rst:1519 +msgid "" +"Load a set of \"certification authority\" (CA) certificates used to validate " +"other peers' certificates when :data:`verify_mode` is other than :data:" +"`CERT_NONE`. At least one of *cafile* or *capath* must be specified." +msgstr "" + +#: ../Doc/library/ssl.rst:1523 +msgid "" +"This method can also load certification revocation lists (CRLs) in PEM or " +"DER format. In order to make use of CRLs, :attr:`SSLContext.verify_flags` " +"must be configured properly." +msgstr "" + +#: ../Doc/library/ssl.rst:1527 +msgid "" +"The *cafile* string, if present, is the path to a file of concatenated CA " +"certificates in PEM format. See the discussion of :ref:`ssl-certificates` " +"for more information about how to arrange the certificates in this file." +msgstr "" + +#: ../Doc/library/ssl.rst:1532 +msgid "" +"The *capath* string, if present, is the path to a directory containing " +"several CA certificates in PEM format, following an `OpenSSL specific layout " +"`_." +msgstr "" + +#: ../Doc/library/ssl.rst:1537 +msgid "" +"The *cadata* object, if present, is either an ASCII string of one or more " +"PEM-encoded certificates or a :term:`bytes-like object` of DER-encoded " +"certificates. Like with *capath* extra lines around PEM-encoded certificates " +"are ignored but at least one certificate must be present." +msgstr "" + +#: ../Doc/library/ssl.rst:1542 +msgid "New optional argument *cadata*" +msgstr "" + +#: ../Doc/library/ssl.rst:1547 +msgid "" +"Get a list of loaded \"certification authority\" (CA) certificates. If the " +"``binary_form`` parameter is :const:`False` each list entry is a dict like " +"the output of :meth:`SSLSocket.getpeercert`. Otherwise the method returns a " +"list of DER-encoded certificates. The returned list does not contain " +"certificates from *capath* unless a certificate was requested and loaded by " +"a SSL connection." +msgstr "" + +#: ../Doc/library/ssl.rst:1555 +msgid "" +"Certificates in a capath directory aren't loaded unless they have been used " +"at least once." +msgstr "" + +#: ../Doc/library/ssl.rst:1562 +msgid "" +"Get a list of enabled ciphers. The list is in order of cipher priority. See :" +"meth:`SSLContext.set_ciphers`." +msgstr "" + +#: ../Doc/library/ssl.rst:1585 +msgid "On OpenSSL 1.1 and newer the cipher dict contains additional fields::" +msgstr "" + +#: ../Doc/library/ssl.rst:1614 +msgid ":ref:`Availability `: OpenSSL 1.0.2+." +msgstr "" + +#: ../Doc/library/ssl.rst:1619 +msgid "" +"Load a set of default \"certification authority\" (CA) certificates from a " +"filesystem path defined when building the OpenSSL library. Unfortunately, " +"there's no easy way to know whether this method succeeds: no error is " +"returned if no certificates are to be found. When the OpenSSL library is " +"provided as part of the operating system, though, it is likely to be " +"configured properly." +msgstr "" + +#: ../Doc/library/ssl.rst:1628 +msgid "" +"Set the available ciphers for sockets created with this context. It should " +"be a string in the `OpenSSL cipher list format `_. If no cipher can be selected (because " +"compile-time options or other configuration forbids use of all the specified " +"ciphers), an :class:`SSLError` will be raised." +msgstr "" + +#: ../Doc/library/ssl.rst:1636 +msgid "" +"when connected, the :meth:`SSLSocket.cipher` method of SSL sockets will give " +"the currently selected cipher." +msgstr "" + +#: ../Doc/library/ssl.rst:1639 +msgid "" +"OpenSSL 1.1.1 has TLS 1.3 cipher suites enabled by default. The suites " +"cannot be disabled with :meth:`~SSLContext.set_ciphers`." +msgstr "" + +#: ../Doc/library/ssl.rst:1644 +msgid "" +"Specify which protocols the socket should advertise during the SSL/TLS " +"handshake. It should be a list of ASCII strings, like ``['http/1.1', " +"'spdy/2']``, ordered by preference. The selection of a protocol will happen " +"during the handshake, and will play out according to :rfc:`7301`. After a " +"successful handshake, the :meth:`SSLSocket.selected_alpn_protocol` method " +"will return the agreed-upon protocol." +msgstr "" + +#: ../Doc/library/ssl.rst:1651 +msgid "" +"This method will raise :exc:`NotImplementedError` if :data:`HAS_ALPN` is " +"False." +msgstr "" + +#: ../Doc/library/ssl.rst:1654 +msgid "" +"OpenSSL 1.1.0 to 1.1.0e will abort the handshake and raise :exc:`SSLError` " +"when both sides support ALPN but cannot agree on a protocol. 1.1.0f+ behaves " +"like 1.0.2, :meth:`SSLSocket.selected_alpn_protocol` returns None." +msgstr "" + +#: ../Doc/library/ssl.rst:1662 +msgid "" +"Specify which protocols the socket should advertise during the SSL/TLS " +"handshake. It should be a list of strings, like ``['http/1.1', 'spdy/2']``, " +"ordered by preference. The selection of a protocol will happen during the " +"handshake, and will play out according to the `Application Layer Protocol " +"Negotiation `_. After a successful handshake, the :meth:" +"`SSLSocket.selected_npn_protocol` method will return the agreed-upon " +"protocol." +msgstr "" + +#: ../Doc/library/ssl.rst:1670 +msgid "" +"This method will raise :exc:`NotImplementedError` if :data:`HAS_NPN` is " +"False." +msgstr "" + +#: ../Doc/library/ssl.rst:1677 +msgid "" +"Register a callback function that will be called after the TLS Client Hello " +"handshake message has been received by the SSL/TLS server when the TLS " +"client specifies a server name indication. The server name indication " +"mechanism is specified in :rfc:`6066` section 3 - Server Name Indication." +msgstr "" + +#: ../Doc/library/ssl.rst:1682 +msgid "" +"Only one callback can be set per ``SSLContext``. If *sni_callback* is set " +"to ``None`` then the callback is disabled. Calling this function a " +"subsequent time will disable the previously registered callback." +msgstr "" + +#: ../Doc/library/ssl.rst:1686 +msgid "" +"The callback function will be called with three arguments; the first being " +"the :class:`ssl.SSLSocket`, the second is a string that represents the " +"server name that the client is intending to communicate (or :const:`None` if " +"the TLS Client Hello does not contain a server name) and the third argument " +"is the original :class:`SSLContext`. The server name argument is text. For " +"internationalized domain name, the server name is an IDN A-label (``\"xn--" +"pythn-mua.org\"``)." +msgstr "" + +#: ../Doc/library/ssl.rst:1694 +msgid "" +"A typical use of this callback is to change the :class:`ssl.SSLSocket`'s :" +"attr:`SSLSocket.context` attribute to a new object of type :class:" +"`SSLContext` representing a certificate chain that matches the server name." +msgstr "" + +#: ../Doc/library/ssl.rst:1699 +msgid "" +"Due to the early negotiation phase of the TLS connection, only limited " +"methods and attributes are usable like :meth:`SSLSocket." +"selected_alpn_protocol` and :attr:`SSLSocket.context`. :meth:`SSLSocket." +"getpeercert`, :meth:`SSLSocket.getpeercert`, :meth:`SSLSocket.cipher` and :" +"meth:`SSLSocket.compress` methods require that the TLS connection has " +"progressed beyond the TLS Client Hello and therefore will not contain return " +"meaningful values nor can they be called safely." +msgstr "" + +#: ../Doc/library/ssl.rst:1707 +msgid "" +"The *sni_callback* function must return ``None`` to allow the TLS " +"negotiation to continue. If a TLS failure is required, a constant :const:" +"`ALERT_DESCRIPTION_* ` can be returned. " +"Other return values will result in a TLS fatal error with :const:" +"`ALERT_DESCRIPTION_INTERNAL_ERROR`." +msgstr "" + +#: ../Doc/library/ssl.rst:1713 +msgid "" +"If an exception is raised from the *sni_callback* function the TLS " +"connection will terminate with a fatal TLS alert message :const:" +"`ALERT_DESCRIPTION_HANDSHAKE_FAILURE`." +msgstr "" + +#: ../Doc/library/ssl.rst:1717 +msgid "" +"This method will raise :exc:`NotImplementedError` if the OpenSSL library had " +"OPENSSL_NO_TLSEXT defined when it was built." +msgstr "" + +#: ../Doc/library/ssl.rst:1724 +msgid "" +"This is a legacy API retained for backwards compatibility. When possible, " +"you should use :attr:`sni_callback` instead. The given " +"*server_name_callback* is similar to *sni_callback*, except that when the " +"server hostname is an IDN-encoded internationalized domain name, the " +"*server_name_callback* receives a decoded U-label (``\"pythön.org\"``)." +msgstr "" + +#: ../Doc/library/ssl.rst:1730 +msgid "" +"If there is an decoding error on the server name, the TLS connection will " +"terminate with an :const:`ALERT_DESCRIPTION_INTERNAL_ERROR` fatal TLS alert " +"message to the client." +msgstr "" + +#: ../Doc/library/ssl.rst:1738 +msgid "" +"Load the key generation parameters for Diffie-Hellman (DH) key exchange. " +"Using DH key exchange improves forward secrecy at the expense of " +"computational resources (both on the server and on the client). The *dhfile* " +"parameter should be the path to a file containing DH parameters in PEM " +"format." +msgstr "" + +#: ../Doc/library/ssl.rst:1744 +msgid "" +"This setting doesn't apply to client sockets. You can also use the :data:" +"`OP_SINGLE_DH_USE` option to further improve security." +msgstr "" + +#: ../Doc/library/ssl.rst:1751 +msgid "" +"Set the curve name for Elliptic Curve-based Diffie-Hellman (ECDH) key " +"exchange. ECDH is significantly faster than regular DH while arguably as " +"secure. The *curve_name* parameter should be a string describing a well-" +"known elliptic curve, for example ``prime256v1`` for a widely supported " +"curve." +msgstr "" + +#: ../Doc/library/ssl.rst:1757 +msgid "" +"This setting doesn't apply to client sockets. You can also use the :data:" +"`OP_SINGLE_ECDH_USE` option to further improve security." +msgstr "" + +#: ../Doc/library/ssl.rst:1760 +msgid "This method is not available if :data:`HAS_ECDH` is ``False``." +msgstr "" + +#: ../Doc/library/ssl.rst:1765 +msgid "" +"`SSL/TLS & Perfect Forward Secrecy `_" +msgstr "" + +#: ../Doc/library/ssl.rst:1766 +msgid "Vincent Bernat." +msgstr "" + +#: ../Doc/library/ssl.rst:1772 +msgid "" +"Wrap an existing Python socket *sock* and return an instance of :attr:" +"`SSLContext.sslsocket_class` (default :class:`SSLSocket`). The returned SSL " +"socket is tied to the context, its settings and certificates. *sock* must be " +"a :data:`~socket.SOCK_STREAM` socket; other socket types are unsupported." +msgstr "" + +#: ../Doc/library/ssl.rst:1778 +msgid "" +"The parameter ``server_side`` is a boolean which identifies whether server-" +"side or client-side behavior is desired from this socket." +msgstr "" + +#: ../Doc/library/ssl.rst:1781 +msgid "" +"For client-side sockets, the context construction is lazy; if the underlying " +"socket isn't connected yet, the context construction will be performed " +"after :meth:`connect` is called on the socket. For server-side sockets, if " +"the socket has no remote peer, it is assumed to be a listening socket, and " +"the server-side SSL wrapping is automatically performed on client " +"connections accepted via the :meth:`accept` method. The method may raise :" +"exc:`SSLError`." +msgstr "" + +#: ../Doc/library/ssl.rst:1789 +msgid "" +"On client connections, the optional parameter *server_hostname* specifies " +"the hostname of the service which we are connecting to. This allows a " +"single server to host multiple SSL-based services with distinct " +"certificates, quite similarly to HTTP virtual hosts. Specifying " +"*server_hostname* will raise a :exc:`ValueError` if *server_side* is true." +msgstr "" + +#: ../Doc/library/ssl.rst:1795 +msgid "" +"The parameter ``do_handshake_on_connect`` specifies whether to do the SSL " +"handshake automatically after doing a :meth:`socket.connect`, or whether the " +"application program will call it explicitly, by invoking the :meth:" +"`SSLSocket.do_handshake` method. Calling :meth:`SSLSocket.do_handshake` " +"explicitly gives the program control over the blocking behavior of the " +"socket I/O involved in the handshake." +msgstr "" + +#: ../Doc/library/ssl.rst:1802 +msgid "" +"The parameter ``suppress_ragged_eofs`` specifies how the :meth:`SSLSocket." +"recv` method should signal unexpected EOF from the other end of the " +"connection. If specified as :const:`True` (the default), it returns a " +"normal EOF (an empty bytes object) in response to unexpected EOF errors " +"raised from the underlying socket; if :const:`False`, it will raise the " +"exceptions back to the caller." +msgstr "" + +#: ../Doc/library/ssl.rst:1809 +msgid "*session*, see :attr:`~SSLSocket.session`." +msgstr "" + +#: ../Doc/library/ssl.rst:1811 +msgid "" +"Always allow a server_hostname to be passed, even if OpenSSL does not have " +"SNI." +msgstr "" + +#: ../Doc/library/ssl.rst:1815 ../Doc/library/ssl.rst:1841 +msgid "*session* argument was added." +msgstr "" + +#: ../Doc/library/ssl.rst:1818 +msgid "" +"The method returns on instance of :attr:`SSLContext.sslsocket_class` instead " +"of hard-coded :class:`SSLSocket`." +msgstr "" + +#: ../Doc/library/ssl.rst:1824 +msgid "" +"The return type of :meth:`SSLContext.wrap_sockets`, defaults to :class:" +"`SSLSocket`. The attribute can be overridden on instance of class in order " +"to return a custom subclass of :class:`SSLSocket`." +msgstr "" + +#: ../Doc/library/ssl.rst:1833 +msgid "" +"Wrap the BIO objects *incoming* and *outgoing* and return an instance of " +"attr:`SSLContext.sslobject_class` (default :class:`SSLObject`). The SSL " +"routines will read input data from the incoming BIO and write data to the " +"outgoing BIO." +msgstr "" + +#: ../Doc/library/ssl.rst:1838 +msgid "" +"The *server_side*, *server_hostname* and *session* parameters have the same " +"meaning as in :meth:`SSLContext.wrap_socket`." +msgstr "" + +#: ../Doc/library/ssl.rst:1844 +msgid "" +"The method returns on instance of :attr:`SSLContext.sslobject_class` instead " +"of hard-coded :class:`SSLObject`." +msgstr "" + +#: ../Doc/library/ssl.rst:1850 +msgid "" +"The return type of :meth:`SSLContext.wrap_bio`, defaults to :class:" +"`SSLObject`. The attribute can be overridden on instance of class in order " +"to return a custom subclass of :class:`SSLObject`." +msgstr "" + +#: ../Doc/library/ssl.rst:1858 +msgid "" +"Get statistics about the SSL sessions created or managed by this context. A " +"dictionary is returned which maps the names of each `piece of information " +"`_ to " +"their numeric values. For example, here is the total number of hits and " +"misses in the session cache since the context was created::" +msgstr "" + +#: ../Doc/library/ssl.rst:1869 +msgid "" +"Whether to match the peer cert's hostname with :func:`match_hostname` in :" +"meth:`SSLSocket.do_handshake`. The context's :attr:`~SSLContext.verify_mode` " +"must be set to :data:`CERT_OPTIONAL` or :data:`CERT_REQUIRED`, and you must " +"pass *server_hostname* to :meth:`~SSLContext.wrap_socket` in order to match " +"the hostname. Enabling hostname checking automatically sets :attr:" +"`~SSLContext.verify_mode` from :data:`CERT_NONE` to :data:`CERT_REQUIRED`. " +"It cannot be set back to :data:`CERT_NONE` as long as hostname checking is " +"enabled." +msgstr "" + +#: ../Doc/library/ssl.rst:1895 +msgid "" +":attr:`~SSLContext.verify_mode` is now automatically changed to :data:" +"`CERT_REQUIRED` when hostname checking is enabled and :attr:`~SSLContext." +"verify_mode` is :data:`CERT_NONE`. Previously the same operation would have " +"failed with a :exc:`ValueError`." +msgstr "" + +#: ../Doc/library/ssl.rst:1902 +msgid "This features requires OpenSSL 0.9.8f or newer." +msgstr "" + +#: ../Doc/library/ssl.rst:1906 +msgid "" +"A :class:`TLSVersion` enum member representing the highest supported TLS " +"version. The value defaults to :attr:`TLSVersion.MAXIMUM_SUPPORTED`. The " +"attribute is read-only for protocols other than :attr:`PROTOCOL_TLS`, :attr:" +"`PROTOCOL_TLS_CLIENT`, and :attr:`PROTOCOL_TLS_SERVER`." +msgstr "" + +#: ../Doc/library/ssl.rst:1911 +msgid "" +"The attributes :attr:`~SSLContext.maximum_version`, :attr:`~SSLContext." +"minimum_version` and :attr:`SSLContext.options` all affect the supported SSL " +"and TLS versions of the context. The implementation does not prevent invalid " +"combination. For example a context with :attr:`OP_NO_TLSv1_2` in :attr:" +"`~SSLContext.options` and :attr:`~SSLContext.maximum_version` set to :attr:" +"`TLSVersion.TLSv1_2` will not be able to establish a TLS 1.2 connection." +msgstr "" + +#: ../Doc/library/ssl.rst:1922 ../Doc/library/ssl.rst:1934 +msgid "" +"This attribute is not available unless the ssl module is compiled with " +"OpenSSL 1.1.0g or newer." +msgstr "" + +#: ../Doc/library/ssl.rst:1929 +msgid "" +"Like :attr:`SSLContext.maximum_version` except it is the lowest supported " +"version or :attr:`TLSVersion.MINIMUM_SUPPORTED`." +msgstr "" + +#: ../Doc/library/ssl.rst:1941 +msgid "" +"An integer representing the set of SSL options enabled on this context. The " +"default value is :data:`OP_ALL`, but you can specify other options such as :" +"data:`OP_NO_SSLv2` by ORing them together." +msgstr "" + +#: ../Doc/library/ssl.rst:1946 +msgid "" +"With versions of OpenSSL older than 0.9.8m, it is only possible to set " +"options, not to clear them. Attempting to clear an option (by resetting the " +"corresponding bits) will raise a :exc:`ValueError`." +msgstr "" + +#: ../Doc/library/ssl.rst:1950 +msgid ":attr:`SSLContext.options` returns :class:`Options` flags:" +msgstr "" + +#: ../Doc/library/ssl.rst:1958 +msgid "" +"Enable TLS 1.3 post-handshake client authentication. Post-handshake auth is " +"disabled by default and a server can only request a TLS client certificate " +"during the initial handshake. When enabled, a server may request a TLS " +"client certificate at any time after the handshake." +msgstr "" + +#: ../Doc/library/ssl.rst:1963 +msgid "" +"When enabled on client-side sockets, the client signals the server that it " +"supports post-handshake authentication." +msgstr "" + +#: ../Doc/library/ssl.rst:1966 +msgid "" +"When enabled on server-side sockets, :attr:`SSLContext.verify_mode` must be " +"set to :data:`CERT_OPTIONAL` or :data:`CERT_REQUIRED`, too. The actual " +"client cert exchange is delayed until :meth:`SSLSocket." +"verify_client_post_handshake` is called and some I/O is performed." +msgstr "" + +#: ../Doc/library/ssl.rst:1973 +msgid "" +"Only available with OpenSSL 1.1.1 and TLS 1.3 enabled. Without TLS 1.3 " +"support, the property value is None and can't be modified" +msgstr "" + +#: ../Doc/library/ssl.rst:1980 +msgid "" +"The protocol version chosen when constructing the context. This attribute " +"is read-only." +msgstr "" + +#: ../Doc/library/ssl.rst:1985 +msgid "" +"Whether :attr:`~SSLContext.check_hostname` falls back to verify the cert's " +"subject common name in the absence of a subject alternative name extension " +"(default: true)." +msgstr "" + +#: ../Doc/library/ssl.rst:1990 +msgid "Only writeable with OpenSSL 1.1.0 or higher." +msgstr "" + +#: ../Doc/library/ssl.rst:1996 +msgid "" +"The flags for certificate verification operations. You can set flags like :" +"data:`VERIFY_CRL_CHECK_LEAF` by ORing them together. By default OpenSSL does " +"neither require nor verify certificate revocation lists (CRLs). Available " +"only with openssl version 0.9.8+." +msgstr "" + +#: ../Doc/library/ssl.rst:2003 +msgid ":attr:`SSLContext.verify_flags` returns :class:`VerifyFlags` flags:" +msgstr "" + +#: ../Doc/library/ssl.rst:2011 +msgid "" +"Whether to try to verify other peers' certificates and how to behave if " +"verification fails. This attribute must be one of :data:`CERT_NONE`, :data:" +"`CERT_OPTIONAL` or :data:`CERT_REQUIRED`." +msgstr "" + +#: ../Doc/library/ssl.rst:2015 +msgid ":attr:`SSLContext.verify_mode` returns :class:`VerifyMode` enum:" +msgstr "" + +#: ../Doc/library/ssl.rst:2028 +msgid "Certificates" +msgstr "" + +#: ../Doc/library/ssl.rst:2030 +msgid "" +"Certificates in general are part of a public-key / private-key system. In " +"this system, each *principal*, (which may be a machine, or a person, or an " +"organization) is assigned a unique two-part encryption key. One part of the " +"key is public, and is called the *public key*; the other part is kept " +"secret, and is called the *private key*. The two parts are related, in that " +"if you encrypt a message with one of the parts, you can decrypt it with the " +"other part, and **only** with the other part." +msgstr "" + +#: ../Doc/library/ssl.rst:2038 +msgid "" +"A certificate contains information about two principals. It contains the " +"name of a *subject*, and the subject's public key. It also contains a " +"statement by a second principal, the *issuer*, that the subject is who they " +"claim to be, and that this is indeed the subject's public key. The issuer's " +"statement is signed with the issuer's private key, which only the issuer " +"knows. However, anyone can verify the issuer's statement by finding the " +"issuer's public key, decrypting the statement with it, and comparing it to " +"the other information in the certificate. The certificate also contains " +"information about the time period over which it is valid. This is expressed " +"as two fields, called \"notBefore\" and \"notAfter\"." +msgstr "" + +#: ../Doc/library/ssl.rst:2048 +msgid "" +"In the Python use of certificates, a client or server can use a certificate " +"to prove who they are. The other side of a network connection can also be " +"required to produce a certificate, and that certificate can be validated to " +"the satisfaction of the client or server that requires such validation. The " +"connection attempt can be set to raise an exception if the validation fails. " +"Validation is done automatically, by the underlying OpenSSL framework; the " +"application need not concern itself with its mechanics. But the application " +"does usually need to provide sets of certificates to allow this process to " +"take place." +msgstr "" + +#: ../Doc/library/ssl.rst:2058 +msgid "" +"Python uses files to contain certificates. They should be formatted as \"PEM" +"\" (see :rfc:`1422`), which is a base-64 encoded form wrapped with a header " +"line and a footer line::" +msgstr "" + +#: ../Doc/library/ssl.rst:2067 +msgid "Certificate chains" +msgstr "" + +#: ../Doc/library/ssl.rst:2069 +msgid "" +"The Python files which contain certificates can contain a sequence of " +"certificates, sometimes called a *certificate chain*. This chain should " +"start with the specific certificate for the principal who \"is\" the client " +"or server, and then the certificate for the issuer of that certificate, and " +"then the certificate for the issuer of *that* certificate, and so on up the " +"chain till you get to a certificate which is *self-signed*, that is, a " +"certificate which has the same subject and issuer, sometimes called a *root " +"certificate*. The certificates should just be concatenated together in the " +"certificate file. For example, suppose we had a three certificate chain, " +"from our server certificate to the certificate of the certification " +"authority that signed our server certificate, to the root certificate of the " +"agency which issued the certification authority's certificate::" +msgstr "" + +#: ../Doc/library/ssl.rst:2093 +msgid "CA certificates" +msgstr "" + +#: ../Doc/library/ssl.rst:2095 +msgid "" +"If you are going to require validation of the other side of the connection's " +"certificate, you need to provide a \"CA certs\" file, filled with the " +"certificate chains for each issuer you are willing to trust. Again, this " +"file just contains these chains concatenated together. For validation, " +"Python will use the first chain it finds in the file which matches. The " +"platform's certificates file can be used by calling :meth:`SSLContext." +"load_default_certs`, this is done automatically with :func:`." +"create_default_context`." +msgstr "" + +#: ../Doc/library/ssl.rst:2104 +msgid "Combined key and certificate" +msgstr "" + +#: ../Doc/library/ssl.rst:2106 +msgid "" +"Often the private key is stored in the same file as the certificate; in this " +"case, only the ``certfile`` parameter to :meth:`SSLContext.load_cert_chain` " +"and :func:`wrap_socket` needs to be passed. If the private key is stored " +"with the certificate, it should come before the first certificate in the " +"certificate chain::" +msgstr "" + +#: ../Doc/library/ssl.rst:2120 +msgid "Self-signed certificates" +msgstr "" + +#: ../Doc/library/ssl.rst:2122 +msgid "" +"If you are going to create a server that provides SSL-encrypted connection " +"services, you will need to acquire a certificate for that service. There " +"are many ways of acquiring appropriate certificates, such as buying one from " +"a certification authority. Another common practice is to generate a self-" +"signed certificate. The simplest way to do this is with the OpenSSL " +"package, using something like the following::" +msgstr "" + +#: ../Doc/library/ssl.rst:2151 +msgid "" +"The disadvantage of a self-signed certificate is that it is its own root " +"certificate, and no one else will have it in their cache of known (and " +"trusted) root certificates." +msgstr "" + +#: ../Doc/library/ssl.rst:2157 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/ssl.rst:2160 +msgid "Testing for SSL support" +msgstr "" + +#: ../Doc/library/ssl.rst:2162 +msgid "" +"To test for the presence of SSL support in a Python installation, user code " +"should use the following idiom::" +msgstr "" + +#: ../Doc/library/ssl.rst:2173 +msgid "Client-side operation" +msgstr "" + +#: ../Doc/library/ssl.rst:2175 +msgid "" +"This example creates a SSL context with the recommended security settings " +"for client sockets, including automatic certificate verification::" +msgstr "" + +#: ../Doc/library/ssl.rst:2180 +msgid "" +"If you prefer to tune security settings yourself, you might create a context " +"from scratch (but beware that you might not get the settings right)::" +msgstr "" + +#: ../Doc/library/ssl.rst:2189 +msgid "" +"(this snippet assumes your operating system places a bundle of all CA " +"certificates in ``/etc/ssl/certs/ca-bundle.crt``; if not, you'll get an " +"error and have to adjust the location)" +msgstr "" + +#: ../Doc/library/ssl.rst:2193 +msgid "" +"When you use the context to connect to a server, :const:`CERT_REQUIRED` " +"validates the server certificate: it ensures that the server certificate was " +"signed with one of the CA certificates, and checks the signature for " +"correctness::" +msgstr "" + +#: ../Doc/library/ssl.rst:2202 +msgid "You may then fetch the certificate::" +msgstr "" + +#: ../Doc/library/ssl.rst:2206 +msgid "" +"Visual inspection shows that the certificate does identify the desired " +"service (that is, the HTTPS host ``www.python.org``)::" +msgstr "" + +#: ../Doc/library/ssl.rst:2249 +msgid "" +"Now the SSL channel is established and the certificate verified, you can " +"proceed to talk with the server::" +msgstr "" + +#: ../Doc/library/ssl.rst:2276 +msgid "Server-side operation" +msgstr "" + +#: ../Doc/library/ssl.rst:2278 +msgid "" +"For server operation, typically you'll need to have a server certificate, " +"and private key, each in a file. You'll first create a context holding the " +"key and the certificate, so that clients can check your authenticity. Then " +"you'll open a socket, bind it to a port, call :meth:`listen` on it, and " +"start waiting for clients to connect::" +msgstr "" + +#: ../Doc/library/ssl.rst:2293 +msgid "" +"When a client connects, you'll call :meth:`accept` on the socket to get the " +"new socket from the other end, and use the context's :meth:`SSLContext." +"wrap_socket` method to create a server-side SSL socket for the connection::" +msgstr "" + +#: ../Doc/library/ssl.rst:2306 +msgid "" +"Then you'll read data from the ``connstream`` and do something with it till " +"you are finished with the client (or the client is finished with you)::" +msgstr "" + +#: ../Doc/library/ssl.rst:2320 +msgid "" +"And go back to listening for new client connections (of course, a real " +"server would probably handle each client connection in a separate thread, or " +"put the sockets in :ref:`non-blocking mode ` and use an " +"event loop)." +msgstr "" + +#: ../Doc/library/ssl.rst:2328 +msgid "Notes on non-blocking sockets" +msgstr "" + +#: ../Doc/library/ssl.rst:2330 +msgid "" +"SSL sockets behave slightly different than regular sockets in non-blocking " +"mode. When working with non-blocking sockets, there are thus several things " +"you need to be aware of:" +msgstr "" + +#: ../Doc/library/ssl.rst:2334 +msgid "" +"Most :class:`SSLSocket` methods will raise either :exc:`SSLWantWriteError` " +"or :exc:`SSLWantReadError` instead of :exc:`BlockingIOError` if an I/O " +"operation would block. :exc:`SSLWantReadError` will be raised if a read " +"operation on the underlying socket is necessary, and :exc:" +"`SSLWantWriteError` for a write operation on the underlying socket. Note " +"that attempts to *write* to an SSL socket may require *reading* from the " +"underlying socket first, and attempts to *read* from the SSL socket may " +"require a prior *write* to the underlying socket." +msgstr "" + +#: ../Doc/library/ssl.rst:2346 +msgid "" +"In earlier Python versions, the :meth:`!SSLSocket.send` method returned zero " +"instead of raising :exc:`SSLWantWriteError` or :exc:`SSLWantReadError`." +msgstr "" + +#: ../Doc/library/ssl.rst:2350 +msgid "" +"Calling :func:`~select.select` tells you that the OS-level socket can be " +"read from (or written to), but it does not imply that there is sufficient " +"data at the upper SSL layer. For example, only part of an SSL frame might " +"have arrived. Therefore, you must be ready to handle :meth:`SSLSocket.recv` " +"and :meth:`SSLSocket.send` failures, and retry after another call to :func:" +"`~select.select`." +msgstr "" + +#: ../Doc/library/ssl.rst:2357 +msgid "" +"Conversely, since the SSL layer has its own framing, a SSL socket may still " +"have data available for reading without :func:`~select.select` being aware " +"of it. Therefore, you should first call :meth:`SSLSocket.recv` to drain any " +"potentially available data, and then only block on a :func:`~select.select` " +"call if still necessary." +msgstr "" + +#: ../Doc/library/ssl.rst:2363 +msgid "" +"(of course, similar provisions apply when using other primitives such as :" +"func:`~select.poll`, or those in the :mod:`selectors` module)" +msgstr "" + +#: ../Doc/library/ssl.rst:2366 +msgid "" +"The SSL handshake itself will be non-blocking: the :meth:`SSLSocket." +"do_handshake` method has to be retried until it returns successfully. Here " +"is a synopsis using :func:`~select.select` to wait for the socket's " +"readiness::" +msgstr "" + +#: ../Doc/library/ssl.rst:2382 +msgid "" +"The :mod:`asyncio` module supports :ref:`non-blocking SSL sockets ` and provides a higher level API. It polls for events using " +"the :mod:`selectors` module and handles :exc:`SSLWantWriteError`, :exc:" +"`SSLWantReadError` and :exc:`BlockingIOError` exceptions. It runs the SSL " +"handshake asynchronously as well." +msgstr "" + +#: ../Doc/library/ssl.rst:2391 +msgid "Memory BIO Support" +msgstr "" + +#: ../Doc/library/ssl.rst:2395 +msgid "" +"Ever since the SSL module was introduced in Python 2.6, the :class:" +"`SSLSocket` class has provided two related but distinct areas of " +"functionality:" +msgstr "" + +#: ../Doc/library/ssl.rst:2398 +msgid "SSL protocol handling" +msgstr "" + +#: ../Doc/library/ssl.rst:2399 +msgid "Network IO" +msgstr "" + +#: ../Doc/library/ssl.rst:2401 +msgid "" +"The network IO API is identical to that provided by :class:`socket.socket`, " +"from which :class:`SSLSocket` also inherits. This allows an SSL socket to be " +"used as a drop-in replacement for a regular socket, making it very easy to " +"add SSL support to an existing application." +msgstr "" + +#: ../Doc/library/ssl.rst:2406 +msgid "" +"Combining SSL protocol handling and network IO usually works well, but there " +"are some cases where it doesn't. An example is async IO frameworks that want " +"to use a different IO multiplexing model than the \"select/poll on a file " +"descriptor\" (readiness based) model that is assumed by :class:`socket." +"socket` and by the internal OpenSSL socket IO routines. This is mostly " +"relevant for platforms like Windows where this model is not efficient. For " +"this purpose, a reduced scope variant of :class:`SSLSocket` called :class:" +"`SSLObject` is provided." +msgstr "" + +#: ../Doc/library/ssl.rst:2417 +msgid "" +"A reduced-scope variant of :class:`SSLSocket` representing an SSL protocol " +"instance that does not contain any network IO methods. This class is " +"typically used by framework authors that want to implement asynchronous IO " +"for SSL through memory buffers." +msgstr "" + +#: ../Doc/library/ssl.rst:2422 +msgid "" +"This class implements an interface on top of a low-level SSL object as " +"implemented by OpenSSL. This object captures the state of an SSL connection " +"but does not provide any network IO itself. IO needs to be performed through " +"separate \"BIO\" objects which are OpenSSL's IO abstraction layer." +msgstr "" + +#: ../Doc/library/ssl.rst:2427 +msgid "" +"This class has no public constructor. An :class:`SSLObject` instance must " +"be created using the :meth:`~SSLContext.wrap_bio` method. This method will " +"create the :class:`SSLObject` instance and bind it to a pair of BIOs. The " +"*incoming* BIO is used to pass data from Python to the SSL protocol " +"instance, while the *outgoing* BIO is used to pass data the other way around." +msgstr "" + +#: ../Doc/library/ssl.rst:2434 +msgid "The following methods are available:" +msgstr "" + +#: ../Doc/library/ssl.rst:2436 +msgid ":attr:`~SSLSocket.context`" +msgstr "" + +#: ../Doc/library/ssl.rst:2437 +msgid ":attr:`~SSLSocket.server_side`" +msgstr "" + +#: ../Doc/library/ssl.rst:2438 +msgid ":attr:`~SSLSocket.server_hostname`" +msgstr "" + +#: ../Doc/library/ssl.rst:2439 +msgid ":attr:`~SSLSocket.session`" +msgstr "" + +#: ../Doc/library/ssl.rst:2440 +msgid ":attr:`~SSLSocket.session_reused`" +msgstr "" + +#: ../Doc/library/ssl.rst:2441 +msgid ":meth:`~SSLSocket.read`" +msgstr "" + +#: ../Doc/library/ssl.rst:2442 +msgid ":meth:`~SSLSocket.write`" +msgstr "" + +#: ../Doc/library/ssl.rst:2443 +msgid ":meth:`~SSLSocket.getpeercert`" +msgstr "" + +#: ../Doc/library/ssl.rst:2444 +msgid ":meth:`~SSLSocket.selected_npn_protocol`" +msgstr "" + +#: ../Doc/library/ssl.rst:2445 +msgid ":meth:`~SSLSocket.cipher`" +msgstr "" + +#: ../Doc/library/ssl.rst:2446 +msgid ":meth:`~SSLSocket.shared_ciphers`" +msgstr "" + +#: ../Doc/library/ssl.rst:2447 +msgid ":meth:`~SSLSocket.compression`" +msgstr "" + +#: ../Doc/library/ssl.rst:2448 +msgid ":meth:`~SSLSocket.pending`" +msgstr "" + +#: ../Doc/library/ssl.rst:2449 +msgid ":meth:`~SSLSocket.do_handshake`" +msgstr "" + +#: ../Doc/library/ssl.rst:2450 +msgid ":meth:`~SSLSocket.unwrap`" +msgstr "" + +#: ../Doc/library/ssl.rst:2451 +msgid ":meth:`~SSLSocket.get_channel_binding`" +msgstr "" + +#: ../Doc/library/ssl.rst:2453 +msgid "" +"When compared to :class:`SSLSocket`, this object lacks the following " +"features:" +msgstr "" + +#: ../Doc/library/ssl.rst:2456 +msgid "" +"Any form of network IO; ``recv()`` and ``send()`` read and write only to the " +"underlying :class:`MemoryBIO` buffers." +msgstr "" + +#: ../Doc/library/ssl.rst:2459 +msgid "" +"There is no *do_handshake_on_connect* machinery. You must always manually " +"call :meth:`~SSLSocket.do_handshake` to start the handshake." +msgstr "" + +#: ../Doc/library/ssl.rst:2462 +msgid "" +"There is no handling of *suppress_ragged_eofs*. All end-of-file conditions " +"that are in violation of the protocol are reported via the :exc:" +"`SSLEOFError` exception." +msgstr "" + +#: ../Doc/library/ssl.rst:2466 +msgid "" +"The method :meth:`~SSLSocket.unwrap` call does not return anything, unlike " +"for an SSL socket where it returns the underlying socket." +msgstr "" + +#: ../Doc/library/ssl.rst:2469 +msgid "" +"The *server_name_callback* callback passed to :meth:`SSLContext." +"set_servername_callback` will get an :class:`SSLObject` instance instead of " +"a :class:`SSLSocket` instance as its first parameter." +msgstr "" + +#: ../Doc/library/ssl.rst:2473 +msgid "Some notes related to the use of :class:`SSLObject`:" +msgstr "" + +#: ../Doc/library/ssl.rst:2475 +msgid "" +"All IO on an :class:`SSLObject` is :ref:`non-blocking `. " +"This means that for example :meth:`~SSLSocket.read` will raise an :exc:" +"`SSLWantReadError` if it needs more data than the incoming BIO has available." +msgstr "" + +#: ../Doc/library/ssl.rst:2480 +msgid "" +"There is no module-level ``wrap_bio()`` call like there is for :meth:" +"`~SSLContext.wrap_socket`. An :class:`SSLObject` is always created via an :" +"class:`SSLContext`." +msgstr "" + +#: ../Doc/library/ssl.rst:2484 +msgid "" +":class:`SSLObject` instances must to created with :meth:`~SSLContext." +"wrap_bio`. In earlier versions, it was possible to create instances " +"directly. This was never documented or officially supported." +msgstr "" + +#: ../Doc/library/ssl.rst:2490 +msgid "" +"An SSLObject communicates with the outside world using memory buffers. The " +"class :class:`MemoryBIO` provides a memory buffer that can be used for this " +"purpose. It wraps an OpenSSL memory BIO (Basic IO) object:" +msgstr "" + +#: ../Doc/library/ssl.rst:2496 +msgid "" +"A memory buffer that can be used to pass data between Python and an SSL " +"protocol instance." +msgstr "" + +#: ../Doc/library/ssl.rst:2501 +msgid "Return the number of bytes currently in the memory buffer." +msgstr "" + +#: ../Doc/library/ssl.rst:2505 +msgid "" +"A boolean indicating whether the memory BIO is current at the end-of-file " +"position." +msgstr "" + +#: ../Doc/library/ssl.rst:2510 +msgid "" +"Read up to *n* bytes from the memory buffer. If *n* is not specified or " +"negative, all bytes are returned." +msgstr "" + +#: ../Doc/library/ssl.rst:2515 +msgid "" +"Write the bytes from *buf* to the memory BIO. The *buf* argument must be an " +"object supporting the buffer protocol." +msgstr "" + +#: ../Doc/library/ssl.rst:2518 +msgid "" +"The return value is the number of bytes written, which is always equal to " +"the length of *buf*." +msgstr "" + +#: ../Doc/library/ssl.rst:2523 +msgid "" +"Write an EOF marker to the memory BIO. After this method has been called, it " +"is illegal to call :meth:`~MemoryBIO.write`. The attribute :attr:`eof` will " +"become true after all data currently in the buffer has been read." +msgstr "" + +#: ../Doc/library/ssl.rst:2529 +msgid "SSL session" +msgstr "" + +#: ../Doc/library/ssl.rst:2535 +msgid "Session object used by :attr:`~SSLSocket.session`." +msgstr "" + +#: ../Doc/library/ssl.rst:2547 +msgid "Security considerations" +msgstr "" + +#: ../Doc/library/ssl.rst:2550 +msgid "Best defaults" +msgstr "" + +#: ../Doc/library/ssl.rst:2552 +msgid "" +"For **client use**, if you don't have any special requirements for your " +"security policy, it is highly recommended that you use the :func:" +"`create_default_context` function to create your SSL context. It will load " +"the system's trusted CA certificates, enable certificate validation and " +"hostname checking, and try to choose reasonably secure protocol and cipher " +"settings." +msgstr "" + +#: ../Doc/library/ssl.rst:2559 +msgid "" +"For example, here is how you would use the :class:`smtplib.SMTP` class to " +"create a trusted, secure connection to a SMTP server::" +msgstr "" + +#: ../Doc/library/ssl.rst:2568 +msgid "" +"If a client certificate is needed for the connection, it can be added with :" +"meth:`SSLContext.load_cert_chain`." +msgstr "" + +#: ../Doc/library/ssl.rst:2571 +msgid "" +"By contrast, if you create the SSL context by calling the :class:" +"`SSLContext` constructor yourself, it will not have certificate validation " +"nor hostname checking enabled by default. If you do so, please read the " +"paragraphs below to achieve a good security level." +msgstr "" + +#: ../Doc/library/ssl.rst:2577 +msgid "Manual settings" +msgstr "" + +#: ../Doc/library/ssl.rst:2580 +msgid "Verifying certificates" +msgstr "" + +#: ../Doc/library/ssl.rst:2582 +msgid "" +"When calling the :class:`SSLContext` constructor directly, :const:" +"`CERT_NONE` is the default. Since it does not authenticate the other peer, " +"it can be insecure, especially in client mode where most of time you would " +"like to ensure the authenticity of the server you're talking to. Therefore, " +"when in client mode, it is highly recommended to use :const:" +"`CERT_REQUIRED`. However, it is in itself not sufficient; you also have to " +"check that the server certificate, which can be obtained by calling :meth:" +"`SSLSocket.getpeercert`, matches the desired service. For many protocols " +"and applications, the service can be identified by the hostname; in this " +"case, the :func:`match_hostname` function can be used. This common check is " +"automatically performed when :attr:`SSLContext.check_hostname` is enabled." +msgstr "" + +#: ../Doc/library/ssl.rst:2595 +msgid "" +"Hostname matchings is now performed by OpenSSL. Python no longer uses :func:" +"`match_hostname`." +msgstr "" + +#: ../Doc/library/ssl.rst:2599 +msgid "" +"In server mode, if you want to authenticate your clients using the SSL layer " +"(rather than using a higher-level authentication mechanism), you'll also " +"have to specify :const:`CERT_REQUIRED` and similarly check the client " +"certificate." +msgstr "" + +#: ../Doc/library/ssl.rst:2605 +msgid "Protocol versions" +msgstr "" + +#: ../Doc/library/ssl.rst:2607 +msgid "" +"SSL versions 2 and 3 are considered insecure and are therefore dangerous to " +"use. If you want maximum compatibility between clients and servers, it is " +"recommended to use :const:`PROTOCOL_TLS_CLIENT` or :const:" +"`PROTOCOL_TLS_SERVER` as the protocol version. SSLv2 and SSLv3 are disabled " +"by default." +msgstr "" + +#: ../Doc/library/ssl.rst:2620 +msgid "" +"The SSL context created above will only allow TLSv1.2 and later (if " +"supported by your system) connections to a server. :const:" +"`PROTOCOL_TLS_CLIENT` implies certificate validation and hostname checks by " +"default. You have to load certificates into the context." +msgstr "" + +#: ../Doc/library/ssl.rst:2627 +msgid "Cipher selection" +msgstr "" + +#: ../Doc/library/ssl.rst:2629 +msgid "" +"If you have advanced security requirements, fine-tuning of the ciphers " +"enabled when negotiating a SSL session is possible through the :meth:" +"`SSLContext.set_ciphers` method. Starting from Python 3.2.3, the ssl module " +"disables certain weak ciphers by default, but you may want to further " +"restrict the cipher choice. Be sure to read OpenSSL's documentation about " +"the `cipher list format `_. If you want to check which ciphers are enabled " +"by a given cipher list, use :meth:`SSLContext.get_ciphers` or the ``openssl " +"ciphers`` command on your system." +msgstr "" + +#: ../Doc/library/ssl.rst:2640 +msgid "Multi-processing" +msgstr "" + +#: ../Doc/library/ssl.rst:2642 +msgid "" +"If using this module as part of a multi-processed application (using, for " +"example the :mod:`multiprocessing` or :mod:`concurrent.futures` modules), be " +"aware that OpenSSL's internal random number generator does not properly " +"handle forked processes. Applications must change the PRNG state of the " +"parent process if they use any SSL feature with :func:`os.fork`. Any " +"successful call of :func:`~ssl.RAND_add`, :func:`~ssl.RAND_bytes` or :func:" +"`~ssl.RAND_pseudo_bytes` is sufficient." +msgstr "" + +#: ../Doc/library/ssl.rst:2654 +msgid "TLS 1.3" +msgstr "" + +#: ../Doc/library/ssl.rst:2658 +msgid "" +"Python has provisional and experimental support for TLS 1.3 with OpenSSL " +"1.1.1. The new protocol behaves slightly differently than previous version " +"of TLS/SSL. Some new TLS 1.3 features are not yet available." +msgstr "" + +#: ../Doc/library/ssl.rst:2662 +msgid "" +"TLS 1.3 uses a disjunct set of cipher suites. All AES-GCM and ChaCha20 " +"cipher suites are enabled by default. The method :meth:`SSLContext." +"set_ciphers` cannot enable or disable any TLS 1.3 ciphers yet, but :meth:" +"`SSLContext.get_ciphers` returns them." +msgstr "" + +#: ../Doc/library/ssl.rst:2666 +msgid "" +"Session tickets are no longer sent as part of the initial handshake and are " +"handled differently. :attr:`SSLSocket.session` and :class:`SSLSession` are " +"not compatible with TLS 1.3." +msgstr "" + +#: ../Doc/library/ssl.rst:2669 +msgid "" +"Client-side certificates are also no longer verified during the initial " +"handshake. A server can request a certificate at any time. Clients process " +"certificate requests while they send or receive application data from the " +"server." +msgstr "" + +#: ../Doc/library/ssl.rst:2673 +msgid "" +"TLS 1.3 features like early data, deferred TLS client cert request, " +"signature algorithm configuration, and rekeying are not supported yet." +msgstr "" + +#: ../Doc/library/ssl.rst:2680 +msgid "LibreSSL support" +msgstr "" + +#: ../Doc/library/ssl.rst:2682 +msgid "" +"LibreSSL is a fork of OpenSSL 1.0.1. The ssl module has limited support for " +"LibreSSL. Some features are not available when the ssl module is compiled " +"with LibreSSL." +msgstr "" + +#: ../Doc/library/ssl.rst:2686 +msgid "" +"LibreSSL >= 2.6.1 no longer supports NPN. The methods :meth:`SSLContext." +"set_npn_protocols` and :meth:`SSLSocket.selected_npn_protocol` are not " +"available." +msgstr "" + +#: ../Doc/library/ssl.rst:2689 +msgid "" +":meth:`SSLContext.set_default_verify_paths` ignores the env vars :envvar:" +"`SSL_CERT_FILE` and :envvar:`SSL_CERT_PATH` although :func:" +"`get_default_verify_paths` still reports them." +msgstr "" + +#: ../Doc/library/ssl.rst:2697 +msgid "Class :class:`socket.socket`" +msgstr "" + +#: ../Doc/library/ssl.rst:2697 +msgid "Documentation of underlying :mod:`socket` class" +msgstr "" + +#: ../Doc/library/ssl.rst:2700 +msgid "" +"`SSL/TLS Strong Encryption: An Introduction `_" +msgstr "" + +#: ../Doc/library/ssl.rst:2700 +msgid "Intro from the Apache HTTP Server documentation" +msgstr "" + +#: ../Doc/library/ssl.rst:2703 +msgid "" +":rfc:`RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: " +"Certificate-Based Key Management <1422>`" +msgstr "" + +#: ../Doc/library/ssl.rst:2703 +msgid "Steve Kent" +msgstr "" + +#: ../Doc/library/ssl.rst:2706 +msgid ":rfc:`RFC 4086: Randomness Requirements for Security <4086>`" +msgstr "" + +#: ../Doc/library/ssl.rst:2706 +msgid "Donald E., Jeffrey I. Schiller" +msgstr "" + +#: ../Doc/library/ssl.rst:2709 +msgid "" +":rfc:`RFC 5280: Internet X.509 Public Key Infrastructure Certificate and " +"Certificate Revocation List (CRL) Profile <5280>`" +msgstr "" + +#: ../Doc/library/ssl.rst:2709 +msgid "D. Cooper" +msgstr "" + +#: ../Doc/library/ssl.rst:2712 +msgid "" +":rfc:`RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 " +"<5246>`" +msgstr "" + +#: ../Doc/library/ssl.rst:2712 +msgid "T. Dierks et. al." +msgstr "" + +#: ../Doc/library/ssl.rst:2715 +msgid ":rfc:`RFC 6066: Transport Layer Security (TLS) Extensions <6066>`" +msgstr "" + +#: ../Doc/library/ssl.rst:2715 +msgid "D. Eastlake" +msgstr "" + +#: ../Doc/library/ssl.rst:2718 +msgid "" +"`IANA TLS: Transport Layer Security (TLS) Parameters `_" +msgstr "" + +#: ../Doc/library/ssl.rst:2718 +msgid "IANA" +msgstr "" + +#: ../Doc/library/ssl.rst:2721 +msgid "" +":rfc:`RFC 7525: Recommendations for Secure Use of Transport Layer Security " +"(TLS) and Datagram Transport Layer Security (DTLS) <7525>`" +msgstr "" + +#: ../Doc/library/ssl.rst:2721 +msgid "IETF" +msgstr "" + +#: ../Doc/library/ssl.rst:2723 +msgid "" +"`Mozilla's Server Side TLS recommendations `_" +msgstr "" + +#: ../Doc/library/ssl.rst:2724 +msgid "Mozilla" +msgstr "" diff --git a/library/stat.po b/library/stat.po new file mode 100644 index 000000000..a398fdbd6 --- /dev/null +++ b/library/stat.po @@ -0,0 +1,399 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/stat.rst:2 +msgid ":mod:`stat` --- Interpreting :func:`~os.stat` results" +msgstr "" + +#: ../Doc/library/stat.rst:10 +msgid "**Source code:** :source:`Lib/stat.py`" +msgstr "" + +#: ../Doc/library/stat.rst:14 +msgid "" +"The :mod:`stat` module defines constants and functions for interpreting the " +"results of :func:`os.stat`, :func:`os.fstat` and :func:`os.lstat` (if they " +"exist). For complete details about the :c:func:`stat`, :c:func:`fstat` and :" +"c:func:`lstat` calls, consult the documentation for your system." +msgstr "" + +#: ../Doc/library/stat.rst:19 +msgid "The stat module is backed by a C implementation." +msgstr "" + +#: ../Doc/library/stat.rst:22 +msgid "" +"The :mod:`stat` module defines the following functions to test for specific " +"file types:" +msgstr "" + +#: ../Doc/library/stat.rst:28 +msgid "Return non-zero if the mode is from a directory." +msgstr "" + +#: ../Doc/library/stat.rst:33 +msgid "Return non-zero if the mode is from a character special device file." +msgstr "" + +#: ../Doc/library/stat.rst:38 +msgid "Return non-zero if the mode is from a block special device file." +msgstr "" + +#: ../Doc/library/stat.rst:43 +msgid "Return non-zero if the mode is from a regular file." +msgstr "" + +#: ../Doc/library/stat.rst:48 +msgid "Return non-zero if the mode is from a FIFO (named pipe)." +msgstr "" + +#: ../Doc/library/stat.rst:53 +msgid "Return non-zero if the mode is from a symbolic link." +msgstr "" + +#: ../Doc/library/stat.rst:58 +msgid "Return non-zero if the mode is from a socket." +msgstr "" + +#: ../Doc/library/stat.rst:62 +msgid "Return non-zero if the mode is from a door." +msgstr "" + +#: ../Doc/library/stat.rst:68 +msgid "Return non-zero if the mode is from an event port." +msgstr "" + +#: ../Doc/library/stat.rst:74 +msgid "Return non-zero if the mode is from a whiteout." +msgstr "" + +#: ../Doc/library/stat.rst:78 +msgid "" +"Two additional functions are defined for more general manipulation of the " +"file's mode:" +msgstr "" + +#: ../Doc/library/stat.rst:84 +msgid "" +"Return the portion of the file's mode that can be set by :func:`os.chmod`\\ " +"---that is, the file's permission bits, plus the sticky bit, set-group-id, " +"and set-user-id bits (on systems that support them)." +msgstr "" + +#: ../Doc/library/stat.rst:91 +msgid "" +"Return the portion of the file's mode that describes the file type (used by " +"the :func:`S_IS\\*` functions above)." +msgstr "" + +#: ../Doc/library/stat.rst:94 +msgid "" +"Normally, you would use the :func:`os.path.is\\*` functions for testing the " +"type of a file; the functions here are useful when you are doing multiple " +"tests of the same file and wish to avoid the overhead of the :c:func:`stat` " +"system call for each test. These are also useful when checking for " +"information about a file that isn't handled by :mod:`os.path`, like the " +"tests for block and character devices." +msgstr "" + +#: ../Doc/library/stat.rst:101 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/stat.rst:129 +msgid "" +"An additional utility function is provided to convert a file's mode in a " +"human readable string:" +msgstr "" + +#: ../Doc/library/stat.rst:134 +msgid "Convert a file's mode to a string of the form '-rwxrwxrwx'." +msgstr "" + +#: ../Doc/library/stat.rst:138 +msgid "" +"The function supports :data:`S_IFDOOR`, :data:`S_IFPORT` and :data:`S_IFWHT`." +msgstr "" + +#: ../Doc/library/stat.rst:143 +msgid "" +"All the variables below are simply symbolic indexes into the 10-tuple " +"returned by :func:`os.stat`, :func:`os.fstat` or :func:`os.lstat`." +msgstr "" + +#: ../Doc/library/stat.rst:149 +msgid "Inode protection mode." +msgstr "" + +#: ../Doc/library/stat.rst:154 +msgid "Inode number." +msgstr "Numéro d'*inode*." + +#: ../Doc/library/stat.rst:159 +msgid "Device inode resides on." +msgstr "" + +#: ../Doc/library/stat.rst:164 +msgid "Number of links to the inode." +msgstr "" + +#: ../Doc/library/stat.rst:169 +msgid "User id of the owner." +msgstr "" + +#: ../Doc/library/stat.rst:174 +msgid "Group id of the owner." +msgstr "" + +#: ../Doc/library/stat.rst:179 +msgid "" +"Size in bytes of a plain file; amount of data waiting on some special files." +msgstr "" + +#: ../Doc/library/stat.rst:184 +msgid "Time of last access." +msgstr "" + +#: ../Doc/library/stat.rst:189 +msgid "Time of last modification." +msgstr "L'heure de la dernière modification." + +#: ../Doc/library/stat.rst:194 +msgid "" +"The \"ctime\" as reported by the operating system. On some systems (like " +"Unix) is the time of the last metadata change, and, on others (like " +"Windows), is the creation time (see platform documentation for details)." +msgstr "" + +#: ../Doc/library/stat.rst:198 +msgid "" +"The interpretation of \"file size\" changes according to the file type. For " +"plain files this is the size of the file in bytes. For FIFOs and sockets " +"under most flavors of Unix (including Linux in particular), the \"size\" is " +"the number of bytes waiting to be read at the time of the call to :func:`os." +"stat`, :func:`os.fstat`, or :func:`os.lstat`; this can sometimes be useful, " +"especially for polling one of these special files after a non-blocking " +"open. The meaning of the size field for other character and block devices " +"varies more, depending on the implementation of the underlying system call." +msgstr "" + +#: ../Doc/library/stat.rst:207 +msgid "The variables below define the flags used in the :data:`ST_MODE` field." +msgstr "" + +#: ../Doc/library/stat.rst:209 +msgid "" +"Use of the functions above is more portable than use of the first set of " +"flags:" +msgstr "" + +#: ../Doc/library/stat.rst:213 +msgid "Socket." +msgstr "" + +#: ../Doc/library/stat.rst:217 +msgid "Symbolic link." +msgstr "" + +#: ../Doc/library/stat.rst:221 +msgid "Regular file." +msgstr "" + +#: ../Doc/library/stat.rst:225 +msgid "Block device." +msgstr "" + +#: ../Doc/library/stat.rst:229 +msgid "Directory." +msgstr "Dossier." + +#: ../Doc/library/stat.rst:233 +msgid "Character device." +msgstr "" + +#: ../Doc/library/stat.rst:237 +msgid "FIFO." +msgstr "" + +#: ../Doc/library/stat.rst:241 +msgid "Door." +msgstr "" + +#: ../Doc/library/stat.rst:247 +msgid "Event port." +msgstr "" + +#: ../Doc/library/stat.rst:253 +msgid "Whiteout." +msgstr "" + +#: ../Doc/library/stat.rst:259 +msgid "" +":data:`S_IFDOOR`, :data:`S_IFPORT` or :data:`S_IFWHT` are defined as 0 when " +"the platform does not have support for the file types." +msgstr "" + +#: ../Doc/library/stat.rst:262 +msgid "" +"The following flags can also be used in the *mode* argument of :func:`os." +"chmod`:" +msgstr "" + +#: ../Doc/library/stat.rst:266 +msgid "Set UID bit." +msgstr "" + +#: ../Doc/library/stat.rst:270 +msgid "" +"Set-group-ID bit. This bit has several special uses. For a directory it " +"indicates that BSD semantics is to be used for that directory: files created " +"there inherit their group ID from the directory, not from the effective " +"group ID of the creating process, and directories created there will also " +"get the :data:`S_ISGID` bit set. For a file that does not have the group " +"execution bit (:data:`S_IXGRP`) set, the set-group-ID bit indicates " +"mandatory file/record locking (see also :data:`S_ENFMT`)." +msgstr "" + +#: ../Doc/library/stat.rst:281 +msgid "" +"Sticky bit. When this bit is set on a directory it means that a file in " +"that directory can be renamed or deleted only by the owner of the file, by " +"the owner of the directory, or by a privileged process." +msgstr "" + +#: ../Doc/library/stat.rst:287 +msgid "Mask for file owner permissions." +msgstr "" + +#: ../Doc/library/stat.rst:291 +msgid "Owner has read permission." +msgstr "" + +#: ../Doc/library/stat.rst:295 +msgid "Owner has write permission." +msgstr "" + +#: ../Doc/library/stat.rst:299 +msgid "Owner has execute permission." +msgstr "" + +#: ../Doc/library/stat.rst:303 +msgid "Mask for group permissions." +msgstr "" + +#: ../Doc/library/stat.rst:307 +msgid "Group has read permission." +msgstr "" + +#: ../Doc/library/stat.rst:311 +msgid "Group has write permission." +msgstr "" + +#: ../Doc/library/stat.rst:315 +msgid "Group has execute permission." +msgstr "" + +#: ../Doc/library/stat.rst:319 +msgid "Mask for permissions for others (not in group)." +msgstr "" + +#: ../Doc/library/stat.rst:323 +msgid "Others have read permission." +msgstr "" + +#: ../Doc/library/stat.rst:327 +msgid "Others have write permission." +msgstr "" + +#: ../Doc/library/stat.rst:331 +msgid "Others have execute permission." +msgstr "" + +#: ../Doc/library/stat.rst:335 +msgid "" +"System V file locking enforcement. This flag is shared with :data:" +"`S_ISGID`: file/record locking is enforced on files that do not have the " +"group execution bit (:data:`S_IXGRP`) set." +msgstr "" + +#: ../Doc/library/stat.rst:341 +msgid "Unix V7 synonym for :data:`S_IRUSR`." +msgstr "" + +#: ../Doc/library/stat.rst:345 +msgid "Unix V7 synonym for :data:`S_IWUSR`." +msgstr "" + +#: ../Doc/library/stat.rst:349 +msgid "Unix V7 synonym for :data:`S_IXUSR`." +msgstr "" + +#: ../Doc/library/stat.rst:351 +msgid "" +"The following flags can be used in the *flags* argument of :func:`os." +"chflags`:" +msgstr "" + +#: ../Doc/library/stat.rst:355 +msgid "Do not dump the file." +msgstr "" + +#: ../Doc/library/stat.rst:359 ../Doc/library/stat.rst:387 +msgid "The file may not be changed." +msgstr "" + +#: ../Doc/library/stat.rst:363 ../Doc/library/stat.rst:391 +msgid "The file may only be appended to." +msgstr "" + +#: ../Doc/library/stat.rst:367 +msgid "The directory is opaque when viewed through a union stack." +msgstr "" + +#: ../Doc/library/stat.rst:371 ../Doc/library/stat.rst:395 +msgid "The file may not be renamed or deleted." +msgstr "" + +#: ../Doc/library/stat.rst:375 +msgid "The file is stored compressed (Mac OS X 10.6+)." +msgstr "" + +#: ../Doc/library/stat.rst:379 +msgid "The file should not be displayed in a GUI (Mac OS X 10.5+)." +msgstr "" + +#: ../Doc/library/stat.rst:383 +msgid "The file may be archived." +msgstr "" + +#: ../Doc/library/stat.rst:399 +msgid "The file is a snapshot file." +msgstr "" + +#: ../Doc/library/stat.rst:401 +msgid "" +"See the \\*BSD or Mac OS systems man page :manpage:`chflags(2)` for more " +"information." +msgstr "" + +#: ../Doc/library/stat.rst:403 +msgid "" +"On Windows, the following file attribute constants are available for use " +"when testing bits in the ``st_file_attributes`` member returned by :func:`os." +"stat`. See the `Windows API documentation `_ for more detail on the meaning of " +"these constants." +msgstr "" diff --git a/library/statistics.po b/library/statistics.po new file mode 100644 index 000000000..aa95477fd --- /dev/null +++ b/library/statistics.po @@ -0,0 +1,628 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/statistics.rst:2 +msgid ":mod:`statistics` --- Mathematical statistics functions" +msgstr ":mod:`statistics` — Fonctions mathématiques pour les statistiques" + +#: ../Doc/library/statistics.rst:12 +msgid "**Source code:** :source:`Lib/statistics.py`" +msgstr "**Code source :** :source:`Lib/statistics.py`" + +#: ../Doc/library/statistics.rst:21 +msgid "" +"This module provides functions for calculating mathematical statistics of " +"numeric (:class:`Real`-valued) data." +msgstr "" + +#: ../Doc/library/statistics.rst:26 +msgid "" +"Unless explicitly noted otherwise, these functions support :class:`int`, :" +"class:`float`, :class:`decimal.Decimal` and :class:`fractions.Fraction`. " +"Behaviour with other types (whether in the numeric tower or not) is " +"currently unsupported. Mixed types are also undefined and implementation-" +"dependent. If your input data consists of mixed types, you may be able to " +"use :func:`map` to ensure a consistent result, e.g. ``map(float, " +"input_data)``." +msgstr "" + +#: ../Doc/library/statistics.rst:35 +msgid "Averages and measures of central location" +msgstr "Moyennes et mesures de la tendance centrale" + +#: ../Doc/library/statistics.rst:37 +msgid "" +"These functions calculate an average or typical value from a population or " +"sample." +msgstr "" +"Ces fonctions calculent une moyenne ou une valeur typique à partir d'une " +"population ou d'un échantillon." + +#: ../Doc/library/statistics.rst:41 +msgid ":func:`mean`" +msgstr ":func:`mean`" + +#: ../Doc/library/statistics.rst:41 +msgid "Arithmetic mean (\"average\") of data." +msgstr "Moyenne arithmétique des données." + +#: ../Doc/library/statistics.rst:42 +msgid ":func:`harmonic_mean`" +msgstr ":func:`harmonic_mean`" + +#: ../Doc/library/statistics.rst:42 +msgid "Harmonic mean of data." +msgstr "Moyenne harmonique des données." + +#: ../Doc/library/statistics.rst:43 +msgid ":func:`median`" +msgstr ":func:`median`" + +#: ../Doc/library/statistics.rst:43 +msgid "Median (middle value) of data." +msgstr "Médiane (valeur centrale) des données." + +#: ../Doc/library/statistics.rst:44 +msgid ":func:`median_low`" +msgstr ":func:`median_low`" + +#: ../Doc/library/statistics.rst:44 +msgid "Low median of data." +msgstr "Médiane basse des données." + +#: ../Doc/library/statistics.rst:45 +msgid ":func:`median_high`" +msgstr ":func:`median_high`" + +#: ../Doc/library/statistics.rst:45 +msgid "High median of data." +msgstr "Médiane haute des données." + +#: ../Doc/library/statistics.rst:46 +msgid ":func:`median_grouped`" +msgstr ":func:`median_grouped`" + +#: ../Doc/library/statistics.rst:46 +msgid "Median, or 50th percentile, of grouped data." +msgstr "" +"Médiane de données groupées, calculée comme le 50\\ :sup:`e` percentile." + +#: ../Doc/library/statistics.rst:47 +msgid ":func:`mode`" +msgstr ":func:`mode`" + +#: ../Doc/library/statistics.rst:47 +msgid "Mode (most common value) of discrete data." +msgstr "" + +#: ../Doc/library/statistics.rst:51 +msgid "Measures of spread" +msgstr "Mesures de la dispersion" + +#: ../Doc/library/statistics.rst:53 +msgid "" +"These functions calculate a measure of how much the population or sample " +"tends to deviate from the typical or average values." +msgstr "" +"Ces fonctions mesurent la tendance de la population ou d'un échantillon à " +"dévier des valeurs typiques ou des valeurs moyennes." + +#: ../Doc/library/statistics.rst:57 +msgid ":func:`pstdev`" +msgstr ":func:`pstdev`" + +#: ../Doc/library/statistics.rst:57 +msgid "Population standard deviation of data." +msgstr "Écart-type de la population." + +#: ../Doc/library/statistics.rst:58 +msgid ":func:`pvariance`" +msgstr ":func:`pvariance`" + +#: ../Doc/library/statistics.rst:58 +msgid "Population variance of data." +msgstr "Variance de la population." + +#: ../Doc/library/statistics.rst:59 +msgid ":func:`stdev`" +msgstr ":func:`stdev`" + +#: ../Doc/library/statistics.rst:59 +msgid "Sample standard deviation of data." +msgstr "Écart-type d'un échantillon." + +#: ../Doc/library/statistics.rst:60 +msgid ":func:`variance`" +msgstr ":func:`variance`" + +#: ../Doc/library/statistics.rst:60 +msgid "Sample variance of data." +msgstr "Variance d'un échantillon." + +#: ../Doc/library/statistics.rst:65 +msgid "Function details" +msgstr "Détails des fonctions" + +#: ../Doc/library/statistics.rst:67 +msgid "" +"Note: The functions do not require the data given to them to be sorted. " +"However, for reading convenience, most of the examples show sorted sequences." +msgstr "" +"Note : les fonctions ne requièrent pas que les données soient ordonnées. " +"Toutefois, pour en faciliter la lecture, les exemples utiliseront des " +"séquences croissantes." + +#: ../Doc/library/statistics.rst:72 +msgid "" +"Return the sample arithmetic mean of *data* which can be a sequence or " +"iterator." +msgstr "" + +#: ../Doc/library/statistics.rst:74 +msgid "" +"The arithmetic mean is the sum of the data divided by the number of data " +"points. It is commonly called \"the average\", although it is only one of " +"many different mathematical averages. It is a measure of the central " +"location of the data." +msgstr "" +"La moyenne arithmétique est la somme des valeurs divisée par le nombre " +"d'observations. Il s'agit de la valeur couramment désignée comme la " +"« moyenne » bien qu'il existe de multiples façons de définir " +"mathématiquement la moyenne. C'est une mesure de la tendance centrale des " +"données." + +#: ../Doc/library/statistics.rst:79 +msgid "If *data* is empty, :exc:`StatisticsError` will be raised." +msgstr "Une erreur :exc:`StatisticsError` est levée si *data* est vide." + +#: ../Doc/library/statistics.rst:81 +msgid "Some examples of use:" +msgstr "Exemples d'utilisation :" + +#: ../Doc/library/statistics.rst:100 +msgid "" +"The mean is strongly affected by outliers and is not a robust estimator for " +"central location: the mean is not necessarily a typical example of the data " +"points. For more robust, although less efficient, measures of central " +"location, see :func:`median` and :func:`mode`. (In this case, \"efficient\" " +"refers to statistical efficiency rather than computational efficiency.)" +msgstr "" + +#: ../Doc/library/statistics.rst:107 +msgid "" +"The sample mean gives an unbiased estimate of the true population mean, " +"which means that, taken on average over all the possible samples, " +"``mean(sample)`` converges on the true mean of the entire population. If " +"*data* represents the entire population rather than a sample, then " +"``mean(data)`` is equivalent to calculating the true population mean μ." +msgstr "" + +#: ../Doc/library/statistics.rst:116 +msgid "" +"Return the harmonic mean of *data*, a sequence or iterator of real-valued " +"numbers." +msgstr "" + +#: ../Doc/library/statistics.rst:119 +msgid "" +"The harmonic mean, sometimes called the subcontrary mean, is the reciprocal " +"of the arithmetic :func:`mean` of the reciprocals of the data. For example, " +"the harmonic mean of three values *a*, *b* and *c* will be equivalent to ``3/" +"(1/a + 1/b + 1/c)``." +msgstr "" + +#: ../Doc/library/statistics.rst:124 +msgid "" +"The harmonic mean is a type of average, a measure of the central location of " +"the data. It is often appropriate when averaging quantities which are rates " +"or ratios, for example speeds. For example:" +msgstr "" + +#: ../Doc/library/statistics.rst:128 +msgid "" +"Suppose an investor purchases an equal value of shares in each of three " +"companies, with P/E (price/earning) ratios of 2.5, 3 and 10. What is the " +"average P/E ratio for the investor's portfolio?" +msgstr "" +"Supposons qu'un investisseur achète autant de parts dans trois compagnies " +"chacune de ratio cours sur bénéfices (*P/E*) 2,5, 3 et 10. Quel est le ratio " +"cours sur bénéfices moyen du portefeuille de l'investisseur ?" + +#: ../Doc/library/statistics.rst:137 +msgid "" +"Using the arithmetic mean would give an average of about 5.167, which is too " +"high." +msgstr "" + +#: ../Doc/library/statistics.rst:140 +msgid "" +":exc:`StatisticsError` is raised if *data* is empty, or any element is less " +"than zero." +msgstr "" +"Une erreur :exc:`StatisticsError` est levée si *data* est vide ou si l'un de " +"ses éléments est inférieur à zéro." + +#: ../Doc/library/statistics.rst:148 +msgid "" +"Return the median (middle value) of numeric data, using the common \"mean of " +"middle two\" method. If *data* is empty, :exc:`StatisticsError` is raised. " +"*data* can be a sequence or iterator." +msgstr "" + +#: ../Doc/library/statistics.rst:152 +msgid "" +"The median is a robust measure of central location, and is less affected by " +"the presence of outliers in your data. When the number of data points is " +"odd, the middle data point is returned:" +msgstr "" + +#: ../Doc/library/statistics.rst:161 +msgid "" +"When the number of data points is even, the median is interpolated by taking " +"the average of the two middle values:" +msgstr "" +"Lorsque le nombre d'observations est pair, la médiane est interpolée en " +"calculant la moyenne des deux valeurs du milieu :" + +#: ../Doc/library/statistics.rst:169 +msgid "" +"This is suited for when your data is discrete, and you don't mind that the " +"median may not be an actual data point." +msgstr "" +"Cette approche est adaptée à des données discrètes à condition que vous " +"acceptiez que la médiane ne fasse pas nécessairement partie des observations." + +#: ../Doc/library/statistics.rst:172 +msgid "" +"If your data is ordinal (supports order operations) but not numeric (doesn't " +"support addition), you should use :func:`median_low` or :func:`median_high` " +"instead." +msgstr "" + +#: ../Doc/library/statistics.rst:176 +msgid ":func:`median_low`, :func:`median_high`, :func:`median_grouped`" +msgstr "" + +#: ../Doc/library/statistics.rst:181 +msgid "" +"Return the low median of numeric data. If *data* is empty, :exc:" +"`StatisticsError` is raised. *data* can be a sequence or iterator." +msgstr "" + +#: ../Doc/library/statistics.rst:184 +msgid "" +"The low median is always a member of the data set. When the number of data " +"points is odd, the middle value is returned. When it is even, the smaller " +"of the two middle values is returned." +msgstr "" +"La médiane basse est toujours une valeur représentée dans les données. " +"Lorsque le nombre d'observations est impair, la valeur du milieu est " +"renvoyée. Sinon, la plus petite des deux valeurs du milieu est renvoyée." + +#: ../Doc/library/statistics.rst:195 +msgid "" +"Use the low median when your data are discrete and you prefer the median to " +"be an actual data point rather than interpolated." +msgstr "" +"Utilisez la médiane basse lorsque vos données sont discrètes et que vous " +"préférez que la médiane soit une valeur représentée dans vos observations " +"plutôt que le résultat d'une interpolation." + +#: ../Doc/library/statistics.rst:201 +msgid "" +"Return the high median of data. If *data* is empty, :exc:`StatisticsError` " +"is raised. *data* can be a sequence or iterator." +msgstr "" + +#: ../Doc/library/statistics.rst:204 +msgid "" +"The high median is always a member of the data set. When the number of data " +"points is odd, the middle value is returned. When it is even, the larger of " +"the two middle values is returned." +msgstr "" +"La médiane haute est toujours une valeur représentée dans les données. " +"Lorsque le nombre d'observations est impair, la valeur du milieu est " +"renvoyée. Sinon, la plus grande des deux valeurs du milieu est renvoyée." + +#: ../Doc/library/statistics.rst:215 +msgid "" +"Use the high median when your data are discrete and you prefer the median to " +"be an actual data point rather than interpolated." +msgstr "" +"Utilisez la médiane haute lorsque vos données sont discrètes et que vous " +"préférez que la médiane soit une valeur représentée dans vos observations " +"plutôt que le résultat d'une interpolation." + +#: ../Doc/library/statistics.rst:221 +msgid "" +"Return the median of grouped continuous data, calculated as the 50th " +"percentile, using interpolation. If *data* is empty, :exc:`StatisticsError` " +"is raised. *data* can be a sequence or iterator." +msgstr "" + +#: ../Doc/library/statistics.rst:230 +msgid "" +"In the following example, the data are rounded, so that each value " +"represents the midpoint of data classes, e.g. 1 is the midpoint of the class " +"0.5--1.5, 2 is the midpoint of 1.5--2.5, 3 is the midpoint of 2.5--3.5, " +"etc. With the data given, the middle value falls somewhere in the class " +"3.5--4.5, and interpolation is used to estimate it:" +msgstr "" +"Dans l'exemple ci-dessous, les valeurs sont arrondies de sorte que chaque " +"valeur représente le milieu d'un groupe. Par exemple 1 est le milieu du " +"groupe 0,5 - 1, 2 est le milieu du groupe 1,5 - 2,5, 3 est le milieu de 2,5 -" +" 3,5, etc. Compte-tenu des valeurs ci-dessous, la valeur centrale se situe " +"quelque part dans le groupe 3,5 - 4,5 et est estimée par interpolation :" + +#: ../Doc/library/statistics.rst:241 +msgid "" +"Optional argument *interval* represents the class interval, and defaults to " +"1. Changing the class interval naturally will change the interpolation:" +msgstr "" +"L'argument optionnel *interval* représente la largeur de l'intervalle des " +"groupes (par défaut, 1). Changer l'intervalle des groupes change bien sûr " +"l'interpolation :" + +#: ../Doc/library/statistics.rst:251 +msgid "" +"This function does not check whether the data points are at least *interval* " +"apart." +msgstr "" +"Cette fonction ne vérifie pas que les valeurs sont bien séparées d'au moins " +"une fois *interval*." + +#: ../Doc/library/statistics.rst:256 +msgid "" +"Under some circumstances, :func:`median_grouped` may coerce data points to " +"floats. This behaviour is likely to change in the future." +msgstr "" +"Sous certaines conditions, :func:`median_grouped` peut convertir les valeurs " +"en nombres à virgule flottante. Ce comportement est susceptible de changer " +"dans le futur." + +#: ../Doc/library/statistics.rst:261 +msgid "" +"\"Statistics for the Behavioral Sciences\", Frederick J Gravetter and Larry " +"B Wallnau (8th Edition)." +msgstr "" +"*Statistics for the Behavioral Sciences*, Frederick J Gravetter et Larry B " +"Wallnau (8\\ :sup:`e` édition, ouvrage en anglais)." + +#: ../Doc/library/statistics.rst:264 +msgid "" +"The `SSMEDIAN `_ function in the Gnome Gnumeric " +"spreadsheet, including `this discussion `_." +msgstr "" +"La fonction `SSMEDIAN `_ du tableur Gnome Gnumeric ainsi que " +"`cette discussion `_." + +#: ../Doc/library/statistics.rst:272 +msgid "" +"Return the most common data point from discrete or nominal *data*. The mode " +"(when it exists) is the most typical value, and is a robust measure of " +"central location." +msgstr "" + +#: ../Doc/library/statistics.rst:276 +msgid "" +"If *data* is empty, or if there is not exactly one most common value, :exc:" +"`StatisticsError` is raised." +msgstr "" + +#: ../Doc/library/statistics.rst:279 +msgid "" +"``mode`` assumes discrete data, and returns a single value. This is the " +"standard treatment of the mode as commonly taught in schools:" +msgstr "" + +#: ../Doc/library/statistics.rst:287 +msgid "" +"The mode is unique in that it is the only statistic which also applies to " +"nominal (non-numeric) data:" +msgstr "" + +#: ../Doc/library/statistics.rst:298 +msgid "" +"Return the population standard deviation (the square root of the population " +"variance). See :func:`pvariance` for arguments and other details." +msgstr "" +"Renvoie l'écart-type de la population (racine carrée de la variance de la " +"population). Voir :func:`pvariance` pour les arguments et d'autres " +"précisions." + +#: ../Doc/library/statistics.rst:309 +msgid "" +"Return the population variance of *data*, a non-empty iterable of real-" +"valued numbers. Variance, or second moment about the mean, is a measure of " +"the variability (spread or dispersion) of data. A large variance indicates " +"that the data is spread out; a small variance indicates it is clustered " +"closely around the mean." +msgstr "" + +#: ../Doc/library/statistics.rst:315 +msgid "" +"If the optional second argument *mu* is given, it should be the mean of " +"*data*. If it is missing or ``None`` (the default), the mean is " +"automatically calculated." +msgstr "" + +#: ../Doc/library/statistics.rst:319 +msgid "" +"Use this function to calculate the variance from the entire population. To " +"estimate the variance from a sample, the :func:`variance` function is " +"usually a better choice." +msgstr "" +"Utilisez cette fonction pour calculer la variance sur une population " +"complète. Pour estimer la variance à partir d'un échantillon, utilisez " +"plutôt :func:`variance` à la place." + +#: ../Doc/library/statistics.rst:323 +msgid "Raises :exc:`StatisticsError` if *data* is empty." +msgstr "Lève une erreur :exc:`StatisticsError` si *data* est vide." + +#: ../Doc/library/statistics.rst:325 ../Doc/library/statistics.rst:399 +msgid "Examples:" +msgstr "Exemples :" + +#: ../Doc/library/statistics.rst:333 +msgid "" +"If you have already calculated the mean of your data, you can pass it as the " +"optional second argument *mu* to avoid recalculation:" +msgstr "" +"Si vous connaissez la moyenne de vos données, il est possible de la passer " +"comme argument optionnel *mu* lors de l'appel de fonction pour éviter de la " +"calculer une nouvelle fois :" + +#: ../Doc/library/statistics.rst:342 +msgid "" +"This function does not attempt to verify that you have passed the actual " +"mean as *mu*. Using arbitrary values for *mu* may lead to invalid or " +"impossible results." +msgstr "" + +#: ../Doc/library/statistics.rst:346 +msgid "Decimals and Fractions are supported:" +msgstr "La fonction gère les nombres décimaux et les fractions :" + +#: ../Doc/library/statistics.rst:360 +msgid "" +"When called with the entire population, this gives the population variance " +"σ². When called on a sample instead, this is the biased sample variance s², " +"also known as variance with N degrees of freedom." +msgstr "" +"Cette fonction renvoie la variance de la population σ² lorsqu'elle est " +"appliquée sur la population entière. Si elle est appliquée seulement sur un " +"échantillon, le résultat est alors la variance de l'échantillon s² ou " +"variance à N degrés de liberté." + +#: ../Doc/library/statistics.rst:364 +msgid "" +"If you somehow know the true population mean μ, you may use this function to " +"calculate the variance of a sample, giving the known population mean as the " +"second argument. Provided the data points are representative (e.g. " +"independent and identically distributed), the result will be an unbiased " +"estimate of the population variance." +msgstr "" + +#: ../Doc/library/statistics.rst:373 +msgid "" +"Return the sample standard deviation (the square root of the sample " +"variance). See :func:`variance` for arguments and other details." +msgstr "" +"Renvoie l'écart-type de l'échantillon (racine carrée de la variance de " +"l'échantillon). Voir :func:`variance` pour les arguments et plus de détails." + +#: ../Doc/library/statistics.rst:384 +msgid "" +"Return the sample variance of *data*, an iterable of at least two real-" +"valued numbers. Variance, or second moment about the mean, is a measure of " +"the variability (spread or dispersion) of data. A large variance indicates " +"that the data is spread out; a small variance indicates it is clustered " +"closely around the mean." +msgstr "" +"Renvoie la variance de l'échantillon *data*, un itérable d'au moins deux " +"valeurs réelles. La variance, ou moment de second ordre, est une mesure de " +"la variabilité (ou dispersion) des données. Une variance élevée indique que " +"les données sont très dispersées ; une variance faible indique que les " +"valeurs sont resserrées autour de la moyenne." + +#: ../Doc/library/statistics.rst:390 +msgid "" +"If the optional second argument *xbar* is given, it should be the mean of " +"*data*. If it is missing or ``None`` (the default), the mean is " +"automatically calculated." +msgstr "" +"Si le second argument optionnel *xbar* est spécifié, celui-ci doit " +"correspondre à la moyenne de *data*. S'il n'est pas spécifié ou ``None`` " +"(par défaut), la moyenne est automatiquement calculée." + +#: ../Doc/library/statistics.rst:394 +msgid "" +"Use this function when your data is a sample from a population. To calculate " +"the variance from the entire population, see :func:`pvariance`." +msgstr "" +"Utilisez cette fonction lorsque vos données forment un échantillon d'une " +"population plus grande. Pour calculer la variance d'une population complète, " +"utilisez :func:`pvariance`." + +#: ../Doc/library/statistics.rst:397 +msgid "Raises :exc:`StatisticsError` if *data* has fewer than two values." +msgstr "" +"Lève une erreur :exc:`StatisticsError` si *data* contient moins de deux " +"éléments." + +#: ../Doc/library/statistics.rst:407 +msgid "" +"If you have already calculated the mean of your data, you can pass it as the " +"optional second argument *xbar* to avoid recalculation:" +msgstr "" +"Si vous connaissez la moyenne de vos données, il est possible de la passer " +"comme argument optionnel *xbar* lors de l'appel de fonction pour éviter de " +"la calculer une nouvelle fois :" + +#: ../Doc/library/statistics.rst:416 +msgid "" +"This function does not attempt to verify that you have passed the actual " +"mean as *xbar*. Using arbitrary values for *xbar* can lead to invalid or " +"impossible results." +msgstr "" +"Cette fonction ne vérifie pas que la valeur passée dans l'argument *xbar* " +"correspond bien à la moyenne. Utiliser des valeurs arbitraires pour *xbar* " +"produit des résultats impossibles ou incorrects." + +#: ../Doc/library/statistics.rst:420 +msgid "Decimal and Fraction values are supported:" +msgstr "La fonction gère les nombres décimaux et les fractions :" + +#: ../Doc/library/statistics.rst:434 +msgid "" +"This is the sample variance s² with Bessel's correction, also known as " +"variance with N-1 degrees of freedom. Provided that the data points are " +"representative (e.g. independent and identically distributed), the result " +"should be an unbiased estimate of the true population variance." +msgstr "" +"Cela correspond à la variance s² de l'échantillon avec correction de Bessel " +"(ou variance à N-1 degrés de liberté). En supposant que les observations " +"sont représentatives de la population (c'est-à-dire indépendantes et " +"identiquement distribuées), alors le résultat est une estimation non biaisée " +"de la variance." + +#: ../Doc/library/statistics.rst:439 +msgid "" +"If you somehow know the actual population mean μ you should pass it to the :" +"func:`pvariance` function as the *mu* parameter to get the variance of a " +"sample." +msgstr "" +"Si vous connaissez d'avance la vraie moyenne μ de la population, vous " +"devriez la passer à :func:`pvariance` comme paramètre *mu* pour obtenir la " +"variance de l'échantillon." + +#: ../Doc/library/statistics.rst:444 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/statistics.rst:446 +msgid "A single exception is defined:" +msgstr "Une seule exception est définie :" + +#: ../Doc/library/statistics.rst:450 +msgid "Subclass of :exc:`ValueError` for statistics-related exceptions." +msgstr "" +"Sous-classe de :exc:`ValueError` pour les exceptions liées aux statistiques." diff --git a/library/stdtypes.po b/library/stdtypes.po new file mode 100644 index 000000000..9cc173468 --- /dev/null +++ b/library/stdtypes.po @@ -0,0 +1,6876 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 21:42+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/stdtypes.rst:8 +msgid "Built-in Types" +msgstr "Types natifs" + +#: ../Doc/library/stdtypes.rst:10 +msgid "" +"The following sections describe the standard types that are built into the " +"interpreter." +msgstr "" +"Les sections suivantes décrivent les types standards intégrés à " +"l'interpréteur." + +#: ../Doc/library/stdtypes.rst:15 +msgid "" +"The principal built-in types are numerics, sequences, mappings, classes, " +"instances and exceptions." +msgstr "" +"Les principaux types natifs sont les numériques, les séquences, les " +"dictionnaires, les classes, les instances et les exceptions." + +#: ../Doc/library/stdtypes.rst:18 +msgid "" +"Some collection classes are mutable. The methods that add, subtract, or " +"rearrange their members in place, and don't return a specific item, never " +"return the collection instance itself but ``None``." +msgstr "" +"Certaines classes de collection sont muables. Les méthodes qui ajoutent, " +"retirent, ou réorganisent leurs éléments sur place, et qui ne renvoient pas " +"un élément spécifique, ne renvoient jamais l'instance de la collection elle-" +"même, mais ``None``." + +#: ../Doc/library/stdtypes.rst:22 +msgid "" +"Some operations are supported by several object types; in particular, " +"practically all objects can be compared, tested for truth value, and " +"converted to a string (with the :func:`repr` function or the slightly " +"different :func:`str` function). The latter function is implicitly used " +"when an object is written by the :func:`print` function." +msgstr "" +"Certaines opérations sont prises en charge par plusieurs types d'objets; en " +"particulier, pratiquement tous les objets peuvent être comparés, testés " +"(valeur booléenne), et convertis en une chaîne (avec la fonction :func:" +"`repr` ou la fonction légèrement différente :func:`str`). Cette dernière est " +"implicitement utilisée quand un objet est écrit par la fonction :func:" +"`print`." + +#: ../Doc/library/stdtypes.rst:32 +msgid "Truth Value Testing" +msgstr "Valeurs booléennes" + +#: ../Doc/library/stdtypes.rst:41 +msgid "" +"Any object can be tested for truth value, for use in an :keyword:`if` or :" +"keyword:`while` condition or as operand of the Boolean operations below." +msgstr "" +"Tout objet peut être comparé à une valeur booléenne, typiquement dans une " +"condition :keyword:`if` ou :keyword:`while` ou comme opérande des opérations " +"booléennes ci-dessous." + +#: ../Doc/library/stdtypes.rst:46 +msgid "" +"By default, an object is considered true unless its class defines either a :" +"meth:`__bool__` method that returns ``False`` or a :meth:`__len__` method " +"that returns zero, when called with the object. [1]_ Here are most of the " +"built-in objects considered false:" +msgstr "" +"Par défaut, tout objet est considéré vrai à moins que sa classe définisse " +"soit une méthode :meth:`__bool__` renvoyant ``False`` soit une méthode :meth:" +"`__len__` renvoyant zéro lorsqu'elle est appelée avec l'objet. [1]_ Voici la " +"majorité des objets natifs considérés comme étant faux :" + +#: ../Doc/library/stdtypes.rst:55 +msgid "constants defined to be false: ``None`` and ``False``." +msgstr "les constantes définies comme étant fausses : ``None`` et ``False``." + +#: ../Doc/library/stdtypes.rst:57 +msgid "" +"zero of any numeric type: ``0``, ``0.0``, ``0j``, ``Decimal(0)``, " +"``Fraction(0, 1)``" +msgstr "" +"zéro de tout type numérique : ``0``, ``0.0``, ``0j``, ``Decimal(0)``, " +"``Fraction(0, 1)``" + +#: ../Doc/library/stdtypes.rst:60 +msgid "" +"empty sequences and collections: ``''``, ``()``, ``[]``, ``{}``, ``set()``, " +"``range(0)``" +msgstr "" +"les chaînes et collections vides : ``''``, ``()``, ``[]``, ``{}``, " +"``set()``, ``range(0)``" + +#: ../Doc/library/stdtypes.rst:69 +msgid "" +"Operations and built-in functions that have a Boolean result always return " +"``0`` or ``False`` for false and ``1`` or ``True`` for true, unless " +"otherwise stated. (Important exception: the Boolean operations ``or`` and " +"``and`` always return one of their operands.)" +msgstr "" +"Les opérations et fonctions natives dont le résultat est booléen donnent " +"toujours ``0`` ou ``False`` pour faux et ``1`` ou ``True`` pour vrai, sauf " +"indication contraire. (Exception importante : les opérations booléennes " +"``or`` et ``and`` renvoient toujours l'une de leurs opérandes.)" + +#: ../Doc/library/stdtypes.rst:78 +msgid "Boolean Operations --- :keyword:`!and`, :keyword:`!or`, :keyword:`!not`" +msgstr "" +"Opérations booléennes --- :keyword:`!and`, :keyword:`!or`, :keyword:`!not`" + +#: ../Doc/library/stdtypes.rst:82 +msgid "These are the Boolean operations, ordered by ascending priority:" +msgstr "Ce sont les opérations booléennes, classées par priorité ascendante :" + +#: ../Doc/library/stdtypes.rst:85 ../Doc/library/stdtypes.rst:143 +#: ../Doc/library/stdtypes.rst:275 ../Doc/library/stdtypes.rst:364 +#: ../Doc/library/stdtypes.rst:414 ../Doc/library/stdtypes.rst:856 +#: ../Doc/library/stdtypes.rst:1051 +msgid "Operation" +msgstr "Opération" + +#: ../Doc/library/stdtypes.rst:85 ../Doc/library/stdtypes.rst:275 +#: ../Doc/library/stdtypes.rst:364 ../Doc/library/stdtypes.rst:414 +#: ../Doc/library/stdtypes.rst:856 ../Doc/library/stdtypes.rst:1051 +msgid "Result" +msgstr "Résultat" + +#: ../Doc/library/stdtypes.rst:85 ../Doc/library/stdtypes.rst:275 +#: ../Doc/library/stdtypes.rst:414 ../Doc/library/stdtypes.rst:856 +#: ../Doc/library/stdtypes.rst:1051 ../Doc/library/stdtypes.rst:2199 +#: ../Doc/library/stdtypes.rst:3331 +msgid "Notes" +msgstr "Notes" + +#: ../Doc/library/stdtypes.rst:87 +msgid "``x or y``" +msgstr "``x or y``" + +#: ../Doc/library/stdtypes.rst:87 +msgid "if *x* is false, then *y*, else *x*" +msgstr "si *x* est faux, alors *y*, sinon *x*" + +#: ../Doc/library/stdtypes.rst:87 ../Doc/library/stdtypes.rst:285 +#: ../Doc/library/stdtypes.rst:858 ../Doc/library/stdtypes.rst:861 +#: ../Doc/library/stdtypes.rst:1062 ../Doc/library/stdtypes.rst:2205 +#: ../Doc/library/stdtypes.rst:3337 +msgid "\\(1)" +msgstr "\\(1)" + +#: ../Doc/library/stdtypes.rst:90 +msgid "``x and y``" +msgstr "``x and y``" + +#: ../Doc/library/stdtypes.rst:90 +msgid "if *x* is false, then *x*, else *y*" +msgstr "si *x* est faux, alors *x*, sinon *y*" + +#: ../Doc/library/stdtypes.rst:90 ../Doc/library/stdtypes.rst:288 +#: ../Doc/library/stdtypes.rst:308 ../Doc/library/stdtypes.rst:1090 +#: ../Doc/library/stdtypes.rst:2209 ../Doc/library/stdtypes.rst:2211 +#: ../Doc/library/stdtypes.rst:3341 ../Doc/library/stdtypes.rst:3343 +msgid "\\(2)" +msgstr "\\(2)" + +#: ../Doc/library/stdtypes.rst:93 +msgid "``not x``" +msgstr "``not x``" + +#: ../Doc/library/stdtypes.rst:93 +msgid "if *x* is false, then ``True``, else ``False``" +msgstr "si *x* est faux, alors ``True``, sinon ``False``" + +#: ../Doc/library/stdtypes.rst:93 ../Doc/library/stdtypes.rst:870 +#: ../Doc/library/stdtypes.rst:1093 ../Doc/library/stdtypes.rst:2213 +#: ../Doc/library/stdtypes.rst:2215 ../Doc/library/stdtypes.rst:2217 +#: ../Doc/library/stdtypes.rst:2219 ../Doc/library/stdtypes.rst:3345 +#: ../Doc/library/stdtypes.rst:3347 ../Doc/library/stdtypes.rst:3349 +#: ../Doc/library/stdtypes.rst:3351 +msgid "\\(3)" +msgstr "\\(3)" + +#: ../Doc/library/stdtypes.rst:102 ../Doc/library/stdtypes.rst:319 +#: ../Doc/library/stdtypes.rst:432 ../Doc/library/stdtypes.rst:897 +#: ../Doc/library/stdtypes.rst:1101 ../Doc/library/stdtypes.rst:2245 +#: ../Doc/library/stdtypes.rst:3381 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/library/stdtypes.rst:105 +msgid "" +"This is a short-circuit operator, so it only evaluates the second argument " +"if the first one is false." +msgstr "" +"Ceci est un opérateur court-circuit : il n'évalue le deuxième argument que " +"si le premier est faux." + +#: ../Doc/library/stdtypes.rst:109 +msgid "" +"This is a short-circuit operator, so it only evaluates the second argument " +"if the first one is true." +msgstr "" +"Ceci est un opérateur court-circuit, il n'évalue le deuxième argument si le " +"premier est vrai." + +#: ../Doc/library/stdtypes.rst:113 +msgid "" +"``not`` has a lower priority than non-Boolean operators, so ``not a == b`` " +"is interpreted as ``not (a == b)``, and ``a == not b`` is a syntax error." +msgstr "" +"``not`` a une priorité inférieure à celle des opérateurs non-booléens, donc " +"``not a == b`` est interprété comme ``not (a == b)`` et ``a == not b`` est " +"une erreur de syntaxe." + +#: ../Doc/library/stdtypes.rst:120 +msgid "Comparisons" +msgstr "Comparaisons" + +#: ../Doc/library/stdtypes.rst:134 +msgid "" +"There are eight comparison operations in Python. They all have the same " +"priority (which is higher than that of the Boolean operations). Comparisons " +"can be chained arbitrarily; for example, ``x < y <= z`` is equivalent to ``x " +"< y and y <= z``, except that *y* is evaluated only once (but in both cases " +"*z* is not evaluated at all when ``x < y`` is found to be false)." +msgstr "" +"Il y a huit opérations de comparaison en Python. Elles ont toutes la même " +"priorité (qui est supérieure à celle des opérations booléennes). Les " +"comparaisons peuvent être enchaînées arbitrairement ; par exemple, ``x < y " +"<= z`` est équivalent à ``x < y and y <= z``, sauf que *y* n'est évalué " +"qu'une seule fois (mais dans les deux cas *z* n'est pas évalué du tout quand " +"``x < y`` est faux)." + +#: ../Doc/library/stdtypes.rst:140 +msgid "This table summarizes the comparison operations:" +msgstr "Ce tableau résume les opérations de comparaison :" + +#: ../Doc/library/stdtypes.rst:143 ../Doc/library/stdtypes.rst:2176 +#: ../Doc/library/stdtypes.rst:2199 ../Doc/library/stdtypes.rst:3308 +#: ../Doc/library/stdtypes.rst:3331 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/stdtypes.rst:145 +msgid "``<``" +msgstr "``<``" + +#: ../Doc/library/stdtypes.rst:145 +msgid "strictly less than" +msgstr "strictement inférieur" + +#: ../Doc/library/stdtypes.rst:147 +msgid "``<=``" +msgstr "``<=``" + +#: ../Doc/library/stdtypes.rst:147 +msgid "less than or equal" +msgstr "inférieur ou égal" + +#: ../Doc/library/stdtypes.rst:149 +msgid "``>``" +msgstr "``>``" + +#: ../Doc/library/stdtypes.rst:149 +msgid "strictly greater than" +msgstr "strictement supérieur" + +#: ../Doc/library/stdtypes.rst:151 +msgid "``>=``" +msgstr "``>=``" + +#: ../Doc/library/stdtypes.rst:151 +msgid "greater than or equal" +msgstr "supérieur ou égal" + +#: ../Doc/library/stdtypes.rst:153 +msgid "``==``" +msgstr "``==``" + +#: ../Doc/library/stdtypes.rst:153 +msgid "equal" +msgstr "égal" + +#: ../Doc/library/stdtypes.rst:155 +msgid "``!=``" +msgstr "``!=``" + +#: ../Doc/library/stdtypes.rst:155 +msgid "not equal" +msgstr "différent" + +#: ../Doc/library/stdtypes.rst:157 +msgid "``is``" +msgstr "``is``" + +#: ../Doc/library/stdtypes.rst:157 +msgid "object identity" +msgstr "identité d'objet" + +#: ../Doc/library/stdtypes.rst:159 +msgid "``is not``" +msgstr "``is not``" + +#: ../Doc/library/stdtypes.rst:159 +msgid "negated object identity" +msgstr "contraire de l'identité d'objet" + +#: ../Doc/library/stdtypes.rst:166 +msgid "" +"Objects of different types, except different numeric types, never compare " +"equal. Furthermore, some types (for example, function objects) support only " +"a degenerate notion of comparison where any two objects of that type are " +"unequal. The ``<``, ``<=``, ``>`` and ``>=`` operators will raise a :exc:" +"`TypeError` exception when comparing a complex number with another built-in " +"numeric type, when the objects are of different types that cannot be " +"compared, or in other cases where there is no defined ordering." +msgstr "" +"Les objets de différents types, à l'exception de différents types " +"numériques, ne peuvent en aucun cas être égaux. En outre, certains types " +"(par exemple, les objets fonction) ne gèrent qu'une une notion dégénérée de " +"la comparaison où deux objets de ce type sont inégaux. Les opérateurs ``<``, " +"``<=``, ``>`` et ``>=`` lèvent une exception :exc:`TypeError` lorsqu'on " +"compare un nombre complexe avec un autre type natif numérique, lorsque les " +"objets sont de différents types qui ne peuvent pas être comparés, ou dans " +"d'autres cas où il n'y a pas d'ordre défini." + +#: ../Doc/library/stdtypes.rst:182 +msgid "" +"Non-identical instances of a class normally compare as non-equal unless the " +"class defines the :meth:`__eq__` method." +msgstr "" +"Des instances différentes d'une classe sont normalement considérées " +"différentes à moins que la classe ne définisse la méthode :meth:`__eq__`." + +#: ../Doc/library/stdtypes.rst:185 +msgid "" +"Instances of a class cannot be ordered with respect to other instances of " +"the same class, or other types of object, unless the class defines enough of " +"the methods :meth:`__lt__`, :meth:`__le__`, :meth:`__gt__`, and :meth:" +"`__ge__` (in general, :meth:`__lt__` and :meth:`__eq__` are sufficient, if " +"you want the conventional meanings of the comparison operators)." +msgstr "" +"Les instances d'une classe ne peuvent pas être ordonnées par rapport à " +"d'autres instances de la même classe, ou d'autres types d'objets, à moins " +"que la classe ne définisse suffisamment de méthodes parmi :meth:`__lt__`, :" +"meth:`__le__`, :meth:`__gt__` et :meth:`__ge__` (en général, :meth:`__lt__` " +"et :meth:`__eq__` sont suffisantes, si vous voulez les significations " +"classiques des opérateurs de comparaison)." + +#: ../Doc/library/stdtypes.rst:191 +msgid "" +"The behavior of the :keyword:`is` and :keyword:`is not` operators cannot be " +"customized; also they can be applied to any two objects and never raise an " +"exception." +msgstr "" +"Le comportement des opérateurs :keyword:`is` et :keyword:`is not` ne peut " +"pas être personnalisé ; aussi ils peuvent être appliqués à deux objets " +"quelconques et ne lèvent jamais d'exception." + +#: ../Doc/library/stdtypes.rst:199 +msgid "" +"Two more operations with the same syntactic priority, :keyword:`in` and :" +"keyword:`not in`, are supported by types that are :term:`iterable` or " +"implement the :meth:`__contains__` method." +msgstr "" +"Deux autres opérations avec la même priorité syntaxique, :keyword:`in` et :" +"keyword:`not in`, sont pris en charge par les types :term:`itérables " +"` ou qui implémentent la méthode :meth:`__contains__`." + +#: ../Doc/library/stdtypes.rst:206 +msgid "Numeric Types --- :class:`int`, :class:`float`, :class:`complex`" +msgstr "Types numériques — :class:`int`, :class:`float`, :class:`complex`" + +#: ../Doc/library/stdtypes.rst:216 +msgid "" +"There are three distinct numeric types: :dfn:`integers`, :dfn:`floating " +"point numbers`, and :dfn:`complex numbers`. In addition, Booleans are a " +"subtype of integers. Integers have unlimited precision. Floating point " +"numbers are usually implemented using :c:type:`double` in C; information " +"about the precision and internal representation of floating point numbers " +"for the machine on which your program is running is available in :data:`sys." +"float_info`. Complex numbers have a real and imaginary part, which are each " +"a floating point number. To extract these parts from a complex number *z*, " +"use ``z.real`` and ``z.imag``. (The standard library includes additional " +"numeric types, :mod:`fractions` that hold rationals, and :mod:`decimal` that " +"hold floating-point numbers with user-definable precision.)" +msgstr "" +"Il existe trois types numériques distincts: :dfn:`integers` (entiers), :dfn:" +"`floating point numbers` (nombres flottants) et :dfn:`complex numbers` " +"(nombres complexes). En outre, les booléens sont un sous-type des entiers. " +"Les entiers ont une précision illimitée. Les nombres à virgule flottante " +"sont généralement implémentés en utilisant des :c:type:`double` en C ; des " +"informations sur la précision et la représentation interne des nombres à " +"virgule flottante pour la machine sur laquelle le programme est en cours " +"d'exécution est disponible dans :data:`sys.float_info`. Les nombres " +"complexes ont une partie réelle et une partie imaginaire, qui sont chacune " +"des nombres à virgule flottante. Pour extraire ces parties d'un nombre " +"complexe *z*, utilisez ``z.real`` et ``z.imag``. (La bibliothèque standard " +"comprend d'autres types numériques, :mod:`fractions` qui stocke des " +"rationnels et :mod:`decimal` qui stocke les nombres à virgule flottante avec " +"une précision définissable par l'utilisateur.)" + +#: ../Doc/library/stdtypes.rst:238 +msgid "" +"Numbers are created by numeric literals or as the result of built-in " +"functions and operators. Unadorned integer literals (including hex, octal " +"and binary numbers) yield integers. Numeric literals containing a decimal " +"point or an exponent sign yield floating point numbers. Appending ``'j'`` " +"or ``'J'`` to a numeric literal yields an imaginary number (a complex number " +"with a zero real part) which you can add to an integer or float to get a " +"complex number with real and imaginary parts." +msgstr "" +"Les nombres sont créés par des littéraux numériques ou sont le résultat de " +"fonctions natives ou d'opérateurs. Les entiers littéraux basiques (y compris " +"leur forme hexadécimale, octale et binaire) donnent des entiers. Les nombres " +"littéraux contenant un point décimal ou un exposant donnent des nombres à " +"virgule flottante. Suffixer ``'j'`` ou ``'J'`` à un nombre littéral donne un " +"nombre imaginaire (un nombre complexe avec une partie réelle nulle) que vous " +"pouvez ajouter à un nombre entier ou un à virgule flottante pour obtenir un " +"nombre complexe avec une partie réelle et une partie imaginaire." + +#: ../Doc/library/stdtypes.rst:263 +msgid "" +"Python fully supports mixed arithmetic: when a binary arithmetic operator " +"has operands of different numeric types, the operand with the \"narrower\" " +"type is widened to that of the other, where integer is narrower than " +"floating point, which is narrower than complex. Comparisons between numbers " +"of mixed type use the same rule. [2]_ The constructors :func:`int`, :func:" +"`float`, and :func:`complex` can be used to produce numbers of a specific " +"type." +msgstr "" +"Python gère pleinement l'arithmétique mixte : quand un opérateur " +"arithmétique binaire a des opérandes de types numériques différents, " +"l'opérande avec le type \"le plus étroit\" est élargie au type de l'autre, " +"où l'entier est plus étroit que la virgule flottante, qui est plus étroite " +"que les complexes. Les comparaisons entre des nombres de type mixte " +"utilisent la même règle. [2]_ Les constructeurs :func:`int`, :func:`float` " +"et :func:`complex` peuvent être utilisé pour produire des nombres d'un type " +"spécifique." + +#: ../Doc/library/stdtypes.rst:270 +msgid "" +"All numeric types (except complex) support the following operations, sorted " +"by ascending priority (all numeric operations have a higher priority than " +"comparison operations):" +msgstr "" +"Tous les types numériques (sauf complexe) gèrent les opérations suivantes, " +"classées par priorité ascendante (toutes les opérations numériques ont une " +"priorité plus élevée que les opérations de comparaison) :" + +#: ../Doc/library/stdtypes.rst:275 +msgid "Full documentation" +msgstr "Documentation complète" + +#: ../Doc/library/stdtypes.rst:277 +msgid "``x + y``" +msgstr "``x + y``" + +#: ../Doc/library/stdtypes.rst:277 +msgid "sum of *x* and *y*" +msgstr "somme de *x* et *y*" + +#: ../Doc/library/stdtypes.rst:279 +msgid "``x - y``" +msgstr "``x - y``" + +#: ../Doc/library/stdtypes.rst:279 +msgid "difference of *x* and *y*" +msgstr "différence de *x* et *y*" + +#: ../Doc/library/stdtypes.rst:281 +msgid "``x * y``" +msgstr "``x * y``" + +#: ../Doc/library/stdtypes.rst:281 +msgid "product of *x* and *y*" +msgstr "produit de *x* et *y*" + +#: ../Doc/library/stdtypes.rst:283 +msgid "``x / y``" +msgstr "``x / y``" + +#: ../Doc/library/stdtypes.rst:283 +msgid "quotient of *x* and *y*" +msgstr "quotient de *x* et *y*" + +#: ../Doc/library/stdtypes.rst:285 +msgid "``x // y``" +msgstr "``x // y``" + +#: ../Doc/library/stdtypes.rst:285 +msgid "floored quotient of *x* and *y*" +msgstr "quotient entier de *x* et *y*" + +#: ../Doc/library/stdtypes.rst:288 +msgid "``x % y``" +msgstr "``x % y``" + +#: ../Doc/library/stdtypes.rst:288 +msgid "remainder of ``x / y``" +msgstr "reste de ``x / y``" + +#: ../Doc/library/stdtypes.rst:290 +msgid "``-x``" +msgstr "``-x``" + +#: ../Doc/library/stdtypes.rst:290 +msgid "*x* negated" +msgstr "négatif de *x*" + +#: ../Doc/library/stdtypes.rst:292 +msgid "``+x``" +msgstr "``+x``" + +#: ../Doc/library/stdtypes.rst:292 +msgid "*x* unchanged" +msgstr "*x* inchangé" + +#: ../Doc/library/stdtypes.rst:294 +msgid "``abs(x)``" +msgstr "``abs(x)``" + +#: ../Doc/library/stdtypes.rst:294 +msgid "absolute value or magnitude of *x*" +msgstr "valeur absolue de *x*" + +#: ../Doc/library/stdtypes.rst:294 +msgid ":func:`abs`" +msgstr ":func:`abs`" + +#: ../Doc/library/stdtypes.rst:297 +msgid "``int(x)``" +msgstr "``int(x)``" + +#: ../Doc/library/stdtypes.rst:297 +msgid "*x* converted to integer" +msgstr "*x* converti en nombre entier" + +#: ../Doc/library/stdtypes.rst:297 +msgid "\\(3)\\(6)" +msgstr "\\(3)\\(6)" + +#: ../Doc/library/stdtypes.rst:297 +msgid ":func:`int`" +msgstr ":func:`int`" + +#: ../Doc/library/stdtypes.rst:299 +msgid "``float(x)``" +msgstr "``float(x)``" + +#: ../Doc/library/stdtypes.rst:299 +msgid "*x* converted to floating point" +msgstr "*x* converti en nombre à virgule flottante" + +#: ../Doc/library/stdtypes.rst:299 +msgid "\\(4)\\(6)" +msgstr "\\(4)\\(6)" + +#: ../Doc/library/stdtypes.rst:299 +msgid ":func:`float`" +msgstr ":func:`float`" + +#: ../Doc/library/stdtypes.rst:301 +msgid "``complex(re, im)``" +msgstr "``complex(re, im)``" + +#: ../Doc/library/stdtypes.rst:301 +msgid "" +"a complex number with real part *re*, imaginary part *im*. *im* defaults to " +"zero." +msgstr "" +"un nombre complexe avec *re* pour partie réelle et *im* pour partie " +"imaginaire. *im* vaut zéro par défaut." + +#: ../Doc/library/stdtypes.rst:301 ../Doc/library/stdtypes.rst:1083 +#: ../Doc/library/stdtypes.rst:2207 ../Doc/library/stdtypes.rst:3368 +msgid "\\(6)" +msgstr "\\(6)" + +#: ../Doc/library/stdtypes.rst:301 +msgid ":func:`complex`" +msgstr ":func:`complex`" + +#: ../Doc/library/stdtypes.rst:305 +msgid "``c.conjugate()``" +msgstr "``c.conjugate()``" + +#: ../Doc/library/stdtypes.rst:305 +msgid "conjugate of the complex number *c*" +msgstr "conjugué du nombre complexe *c*" + +#: ../Doc/library/stdtypes.rst:308 +msgid "``divmod(x, y)``" +msgstr "``divmod(x, y)``" + +#: ../Doc/library/stdtypes.rst:308 +msgid "the pair ``(x // y, x % y)``" +msgstr "la paire ``(x // y, x % y)``" + +#: ../Doc/library/stdtypes.rst:308 +msgid ":func:`divmod`" +msgstr ":func:`divmod`" + +#: ../Doc/library/stdtypes.rst:310 +msgid "``pow(x, y)``" +msgstr "``pow(x, y)``" + +#: ../Doc/library/stdtypes.rst:310 ../Doc/library/stdtypes.rst:312 +msgid "*x* to the power *y*" +msgstr "*x* à la puissance *y*" + +#: ../Doc/library/stdtypes.rst:310 ../Doc/library/stdtypes.rst:312 +#: ../Doc/library/stdtypes.rst:1072 ../Doc/library/stdtypes.rst:1075 +#: ../Doc/library/stdtypes.rst:2232 ../Doc/library/stdtypes.rst:2235 +#: ../Doc/library/stdtypes.rst:2238 ../Doc/library/stdtypes.rst:3364 +#: ../Doc/library/stdtypes.rst:3371 +msgid "\\(5)" +msgstr "\\(5)" + +#: ../Doc/library/stdtypes.rst:310 +msgid ":func:`pow`" +msgstr ":func:`pow`" + +#: ../Doc/library/stdtypes.rst:312 +msgid "``x ** y``" +msgstr "``x ** y``" + +#: ../Doc/library/stdtypes.rst:322 +msgid "" +"Also referred to as integer division. The resultant value is a whole " +"integer, though the result's type is not necessarily int. The result is " +"always rounded towards minus infinity: ``1//2`` is ``0``, ``(-1)//2`` is " +"``-1``, ``1//(-2)`` is ``-1``, and ``(-1)//(-2)`` is ``0``." +msgstr "" +"Également appelé division entière. La valeur résultante est un nombre " +"entier, bien que le type du résultat ne soit pas nécessairement *int*. Le " +"résultat est toujours arrondi vers moins l'infini : ``1//2`` vaut ``0``, " +"``(-1)//2`` vaut ``-1``, ``1//(-2)`` vaut ``-1``, et ``(-1)//(-2)`` vaut " +"``0``." + +#: ../Doc/library/stdtypes.rst:328 +msgid "" +"Not for complex numbers. Instead convert to floats using :func:`abs` if " +"appropriate." +msgstr "" +"Pas pour les nombres complexes. Convertissez-les plutôt en nombres flottants " +"à l'aide de :func:`abs` si c'est approprié." + +#: ../Doc/library/stdtypes.rst:340 +msgid "" +"Conversion from floating point to integer may round or truncate as in C; see " +"functions :func:`math.floor` and :func:`math.ceil` for well-defined " +"conversions." +msgstr "" +"La conversion de virgule flottante en entier peut arrondir ou tronquer comme " +"en C ; voir les fonctions :func:`math.floor` et :func:`math.ceil` pour des " +"conversions bien définies." + +#: ../Doc/library/stdtypes.rst:345 +msgid "" +"float also accepts the strings \"nan\" and \"inf\" with an optional prefix " +"\"+\" or \"-\" for Not a Number (NaN) and positive or negative infinity." +msgstr "" +"*float* accepte aussi les chaînes *nan* et *inf* avec un préfixe optionnel ``" +"+`` ou ``-`` pour *Not a Number* (*NaN*) et les infinis positif ou négatif." + +#: ../Doc/library/stdtypes.rst:349 +msgid "" +"Python defines ``pow(0, 0)`` and ``0 ** 0`` to be ``1``, as is common for " +"programming languages." +msgstr "" +"Python définit ``pow(0, 0)`` et ``0 ** 0`` valant ``1``, puisque c'est " +"courant pour les langages de programmation, et logique." + +#: ../Doc/library/stdtypes.rst:353 +msgid "" +"The numeric literals accepted include the digits ``0`` to ``9`` or any " +"Unicode equivalent (code points with the ``Nd`` property)." +msgstr "" +"Les littéraux numériques acceptés comprennent les chiffres ``0`` à ``9`` ou " +"tout équivalent Unicode (caractères avec la propriété ``Nd``)." + +#: ../Doc/library/stdtypes.rst:356 +msgid "" +"See http://www.unicode.org/Public/10.0.0/ucd/extracted/DerivedNumericType." +"txt for a complete list of code points with the ``Nd`` property." +msgstr "" +"Voir http://www.unicode.org/Public/10.0.0/ucd/extracted/DerivedNumericType." +"txt pour une liste complète des caractères avec la propriété ``Nd``." + +#: ../Doc/library/stdtypes.rst:360 +msgid "" +"All :class:`numbers.Real` types (:class:`int` and :class:`float`) also " +"include the following operations:" +msgstr "" +"Tous types :class:`numbers.Real` (:class:`int` et :class:`float`) " +"comprennent également les opérations suivantes :" + +#: ../Doc/library/stdtypes.rst:366 +msgid ":func:`math.trunc(\\ x) `" +msgstr ":func:`math.trunc(\\ x) `" + +#: ../Doc/library/stdtypes.rst:366 +msgid "*x* truncated to :class:`~numbers.Integral`" +msgstr "*x* tronqué à l':class:`~numbers.Integral`" + +#: ../Doc/library/stdtypes.rst:369 +msgid ":func:`round(x[, n]) `" +msgstr ":func:`round(x[, n]) `" + +#: ../Doc/library/stdtypes.rst:369 +msgid "" +"*x* rounded to *n* digits, rounding half to even. If *n* is omitted, it " +"defaults to 0." +msgstr "" +"*x* arrondi à *n* chiffres, arrondissant la moitié au pair. Si *n* est omis, " +"la valeur par défaut à 0." + +#: ../Doc/library/stdtypes.rst:373 +msgid ":func:`math.floor(\\ x) `" +msgstr ":func:`math.floor(\\ x) `" + +#: ../Doc/library/stdtypes.rst:373 +msgid "the greatest :class:`~numbers.Integral` <= *x*" +msgstr "le plus grand :class:`~numbers.Integral` <= *x*" + +#: ../Doc/library/stdtypes.rst:376 +msgid ":func:`math.ceil(x) `" +msgstr ":func:`math.ceil(x) `" + +#: ../Doc/library/stdtypes.rst:376 +msgid "the least :class:`~numbers.Integral` >= *x*" +msgstr "le plus petit :class:`~numbers.Integral` >= *x*" + +#: ../Doc/library/stdtypes.rst:380 +msgid "" +"For additional numeric operations see the :mod:`math` and :mod:`cmath` " +"modules." +msgstr "" +"Pour d'autres opérations numériques voir les modules :mod:`math` et :mod:" +"`cmath`." + +#: ../Doc/library/stdtypes.rst:389 +msgid "Bitwise Operations on Integer Types" +msgstr "Opérations sur les bits des nombres entiers" + +#: ../Doc/library/stdtypes.rst:403 +msgid "" +"Bitwise operations only make sense for integers. The result of bitwise " +"operations is calculated as though carried out in two's complement with an " +"infinite number of sign bits." +msgstr "" +"Les opérations bit à bit n'ont de sens que pour les entiers relatifs. Le " +"résultat d'une opération bit à bit est calculé comme si elle était effectuée " +"en complément à deux avec un nombre infini de bits de signe." + +#: ../Doc/library/stdtypes.rst:407 +msgid "" +"The priorities of the binary bitwise operations are all lower than the " +"numeric operations and higher than the comparisons; the unary operation " +"``~`` has the same priority as the other unary numeric operations (``+`` and " +"``-``)." +msgstr "" +"Les priorités de toutes les opération à deux opérandes sur des bits sont " +"inférieures aux opérations numériques et plus élevées que les comparaisons ; " +"l'opération unaire ``~`` a la même priorité que les autres opérations " +"numériques unaires (``+`` et ``-``)." + +#: ../Doc/library/stdtypes.rst:411 +msgid "This table lists the bitwise operations sorted in ascending priority:" +msgstr "" +"Ce tableau répertorie les opérations binaires triées par priorité " +"ascendante :" + +#: ../Doc/library/stdtypes.rst:416 +msgid "``x | y``" +msgstr "``x | y``" + +#: ../Doc/library/stdtypes.rst:416 +msgid "bitwise :dfn:`or` of *x* and *y*" +msgstr ":dfn:`ou ` binaire de *x* et *y*" + +#: ../Doc/library/stdtypes.rst:416 ../Doc/library/stdtypes.rst:419 +#: ../Doc/library/stdtypes.rst:422 ../Doc/library/stdtypes.rst:1096 +#: ../Doc/library/stdtypes.rst:2221 ../Doc/library/stdtypes.rst:2225 +#: ../Doc/library/stdtypes.rst:3353 ../Doc/library/stdtypes.rst:3357 +msgid "\\(4)" +msgstr "\\(4)" + +#: ../Doc/library/stdtypes.rst:419 +msgid "``x ^ y``" +msgstr "``x ^ y``" + +#: ../Doc/library/stdtypes.rst:419 +msgid "bitwise :dfn:`exclusive or` of *x* and *y*" +msgstr ":dfn:`ou ` exclusive binaire de *x* et *y*" + +#: ../Doc/library/stdtypes.rst:422 +msgid "``x & y``" +msgstr "``x & y``" + +#: ../Doc/library/stdtypes.rst:422 +msgid "bitwise :dfn:`and` of *x* and *y*" +msgstr ":dfn:`et binaire ` de *x* et *y*" + +#: ../Doc/library/stdtypes.rst:425 +msgid "``x << n``" +msgstr "``x << n``" + +#: ../Doc/library/stdtypes.rst:425 +msgid "*x* shifted left by *n* bits" +msgstr "*x* décalé vers la gauche de *n* bits" + +#: ../Doc/library/stdtypes.rst:425 +msgid "(1)(2)" +msgstr "(1)(2)" + +#: ../Doc/library/stdtypes.rst:427 +msgid "``x >> n``" +msgstr "``x >> n``" + +#: ../Doc/library/stdtypes.rst:427 +msgid "*x* shifted right by *n* bits" +msgstr "*x* décalé vers la droite de *n* bits" + +#: ../Doc/library/stdtypes.rst:427 +msgid "(1)(3)" +msgstr "(1)(3)" + +#: ../Doc/library/stdtypes.rst:429 +msgid "``~x``" +msgstr "``~x``" + +#: ../Doc/library/stdtypes.rst:429 +msgid "the bits of *x* inverted" +msgstr "les bits de *x*, inversés" + +#: ../Doc/library/stdtypes.rst:435 +msgid "" +"Negative shift counts are illegal and cause a :exc:`ValueError` to be raised." +msgstr "" +"Des valeurs de décalage négatives sont illégales et provoquent une " +"exception :exc:`ValueError`." + +#: ../Doc/library/stdtypes.rst:438 +msgid "" +"A left shift by *n* bits is equivalent to multiplication by ``pow(2, n)`` " +"without overflow check." +msgstr "" +"Un décalage à gauche de *n* bits est équivalent à la multiplication par " +"``pow(2, n)`` sans vérification de débordement." + +#: ../Doc/library/stdtypes.rst:442 +msgid "" +"A right shift by *n* bits is equivalent to division by ``pow(2, n)`` without " +"overflow check." +msgstr "" +"Un décalage à droite de *n* les bits est équivalent à la division par " +"``pow(2, n)`` sans vérification de débordement." + +#: ../Doc/library/stdtypes.rst:446 +msgid "" +"Performing these calculations with at least one extra sign extension bit in " +"a finite two's complement representation (a working bit-width of ``1 + max(x." +"bit_length(), y.bit_length())`` or more) is sufficient to get the same " +"result as if there were an infinite number of sign bits." +msgstr "" +"Effectuer ces calculs avec au moins un bit d'extension de signe " +"supplémentaire dans une représentation finie du complément à deux éléments " +"(une largeur de bit fonctionnelle de ``1 + max(x.bit_length(), y." +"bit_length()`` ou plus) est suffisante pour obtenir le même résultat que " +"s'il y avait un nombre infini de bits de signe." + +#: ../Doc/library/stdtypes.rst:453 +msgid "Additional Methods on Integer Types" +msgstr "Méthodes supplémentaires sur les entiers" + +#: ../Doc/library/stdtypes.rst:455 +msgid "" +"The int type implements the :class:`numbers.Integral` :term:`abstract base " +"class`. In addition, it provides a few more methods:" +msgstr "" +"Le type *int* implémente la :term:`classe de base abstraite ` :class:`numbers.Integral`. Il fournit aussi quelques autres " +"méthodes :" + +#: ../Doc/library/stdtypes.rst:460 +msgid "" +"Return the number of bits necessary to represent an integer in binary, " +"excluding the sign and leading zeros::" +msgstr "" +"Renvoie le nombre de bits nécessaires pour représenter un nombre entier en " +"binaire, à l'exclusion du signe et des zéros non significatifs ::" + +#: ../Doc/library/stdtypes.rst:469 +msgid "" +"More precisely, if ``x`` is nonzero, then ``x.bit_length()`` is the unique " +"positive integer ``k`` such that ``2**(k-1) <= abs(x) < 2**k``. " +"Equivalently, when ``abs(x)`` is small enough to have a correctly rounded " +"logarithm, then ``k = 1 + int(log(abs(x), 2))``. If ``x`` is zero, then ``x." +"bit_length()`` returns ``0``." +msgstr "" +"Plus précisément, si ``x`` est différent de zéro, ``x.bit_length()`` est le " +"nombre entier positif unique, ``k`` tel que ``2**(k-1) <= abs(x) < 2**k``. " +"Équivalemment, quand ``abs(x)`` est assez petit pour avoir un logarithme " +"correctement arrondi, ``k = 1 + int(log(abs(x), 2))``. Si ``x`` est nul, " +"alors ``x.bit_length()`` donne ``0``." + +#: ../Doc/library/stdtypes.rst:475 +msgid "Equivalent to::" +msgstr "Équivalent à ::" + +#: ../Doc/library/stdtypes.rst:486 +msgid "Return an array of bytes representing an integer." +msgstr "Renvoie un tableau d'octets représentant un nombre entier." + +#: ../Doc/library/stdtypes.rst:498 +msgid "" +"The integer is represented using *length* bytes. An :exc:`OverflowError` is " +"raised if the integer is not representable with the given number of bytes." +msgstr "" +"L'entier est représenté par *length* octets. Une exception :exc:" +"`OverflowError` est levée s'il n'est pas possible de représenter l'entier " +"avec le nombre d'octets donnés." + +#: ../Doc/library/stdtypes.rst:502 ../Doc/library/stdtypes.rst:534 +msgid "" +"The *byteorder* argument determines the byte order used to represent the " +"integer. If *byteorder* is ``\"big\"``, the most significant byte is at the " +"beginning of the byte array. If *byteorder* is ``\"little\"``, the most " +"significant byte is at the end of the byte array. To request the native " +"byte order of the host system, use :data:`sys.byteorder` as the byte order " +"value." +msgstr "" +"L'argument *byteorder* détermine l'ordre des octets utilisé pour représenter " +"le nombre entier. Si *byteorder* est ``\"big\"``, l'octet le plus " +"significatif est au début du tableau d'octets. Si *byteorder* est ``\"little" +"\"``, l'octet le plus significatif est à la fin du tableau d'octets. Pour " +"demander l'ordre natif des octets du système hôte, donnez :data:`sys." +"byteorder` comme *byteorder*." + +#: ../Doc/library/stdtypes.rst:509 +msgid "" +"The *signed* argument determines whether two's complement is used to " +"represent the integer. If *signed* is ``False`` and a negative integer is " +"given, an :exc:`OverflowError` is raised. The default value for *signed* is " +"``False``." +msgstr "" +"L'argument *signed* détermine si le complément à deux est utilisé pour " +"représenter le nombre entier. Si *signed* est ``False`` et qu'un entier " +"négatif est donné, une exception :exc:`OverflowError` est levée. La valeur " +"par défaut pour *signed* est ``False``." + +#: ../Doc/library/stdtypes.rst:518 +msgid "Return the integer represented by the given array of bytes." +msgstr "Donne le nombre entier représenté par le tableau d'octets fourni." + +#: ../Doc/library/stdtypes.rst:531 +msgid "" +"The argument *bytes* must either be a :term:`bytes-like object` or an " +"iterable producing bytes." +msgstr "" +"L'argument *bytes* doit être soit un :term:`bytes-like object` soit un " +"itérable produisant des *bytes*." + +#: ../Doc/library/stdtypes.rst:541 +msgid "" +"The *signed* argument indicates whether two's complement is used to " +"represent the integer." +msgstr "" +"L'argument *signed* indique si le complément à deux est utilisé pour " +"représenter le nombre entier." + +#: ../Doc/library/stdtypes.rst:548 +msgid "Additional Methods on Float" +msgstr "Méthodes supplémentaires sur les nombres à virgule flottante" + +#: ../Doc/library/stdtypes.rst:550 +msgid "" +"The float type implements the :class:`numbers.Real` :term:`abstract base " +"class`. float also has the following additional methods." +msgstr "" +"Le type *float* implémente la :term:`classe de base abstraite ` :class:`numbers.Real` et a également les méthodes suivantes." + +#: ../Doc/library/stdtypes.rst:555 +msgid "" +"Return a pair of integers whose ratio is exactly equal to the original float " +"and with a positive denominator. Raises :exc:`OverflowError` on infinities " +"and a :exc:`ValueError` on NaNs." +msgstr "" +"Renvoie une paire de nombres entiers dont le rapport est exactement égal au " +"nombre d'origine et avec un dénominateur positif. Lève :exc:`OverflowError` " +"avec un infini et :exc:`ValueError` avec un NaN." + +#: ../Doc/library/stdtypes.rst:562 +msgid "" +"Return ``True`` if the float instance is finite with integral value, and " +"``False`` otherwise::" +msgstr "" +"Donne ``True`` si l'instance de *float* est finie avec une valeur entière, " +"et ``False`` autrement ::" + +#: ../Doc/library/stdtypes.rst:570 +msgid "" +"Two methods support conversion to and from hexadecimal strings. Since " +"Python's floats are stored internally as binary numbers, converting a float " +"to or from a *decimal* string usually involves a small rounding error. In " +"contrast, hexadecimal strings allow exact representation and specification " +"of floating-point numbers. This can be useful when debugging, and in " +"numerical work." +msgstr "" +"Deux méthodes prennent en charge la conversion vers et à partir de chaînes " +"hexadécimales. Étant donné que les *float* de Python sont stockés en interne " +"sous forme de nombres binaires, la conversion d'un *float* depuis ou vers " +"une chaine décimale implique généralement une petite erreur d'arrondi. En " +"revanche, les chaînes hexadécimales permettent de représenter exactement les " +"nombres à virgule flottante. Cela peut être utile lors du débogage, et dans " +"un travail numérique." + +#: ../Doc/library/stdtypes.rst:581 +msgid "" +"Return a representation of a floating-point number as a hexadecimal string. " +"For finite floating-point numbers, this representation will always include a " +"leading ``0x`` and a trailing ``p`` and exponent." +msgstr "" +"Donne une représentation d'un nombre à virgule flottante sous forme de " +"chaîne hexadécimale. Pour les nombres à virgule flottante finis, cette " +"représentation comprendra toujours un préfixe ``0x``, un suffixe ``p``, et " +"un exposant." + +#: ../Doc/library/stdtypes.rst:589 +msgid "" +"Class method to return the float represented by a hexadecimal string *s*. " +"The string *s* may have leading and trailing whitespace." +msgstr "" +"Méthode de classe pour obtenir le *float* représenté par une chaîne de " +"caractères hexadécimale *s*. La chaîne *s* peut contenir des espaces avant " +"et après le chiffre." + +#: ../Doc/library/stdtypes.rst:594 +msgid "" +"Note that :meth:`float.hex` is an instance method, while :meth:`float." +"fromhex` is a class method." +msgstr "" +"Notez que :meth:`float.hex` est une méthode d'instance, alors que :meth:" +"`float.fromhex` est une méthode de classe." + +#: ../Doc/library/stdtypes.rst:597 +msgid "A hexadecimal string takes the form::" +msgstr "Une chaîne hexadécimale prend la forme ::" + +#: ../Doc/library/stdtypes.rst:601 +msgid "" +"where the optional ``sign`` may by either ``+`` or ``-``, ``integer`` and " +"``fraction`` are strings of hexadecimal digits, and ``exponent`` is a " +"decimal integer with an optional leading sign. Case is not significant, and " +"there must be at least one hexadecimal digit in either the integer or the " +"fraction. This syntax is similar to the syntax specified in section 6.4.4.2 " +"of the C99 standard, and also to the syntax used in Java 1.5 onwards. In " +"particular, the output of :meth:`float.hex` is usable as a hexadecimal " +"floating-point literal in C or Java code, and hexadecimal strings produced " +"by C's ``%a`` format character or Java's ``Double.toHexString`` are accepted " +"by :meth:`float.fromhex`." +msgstr "" +"où ``sign`` peut être soit ``+`` soit ``-``, ``integer`` et ``fraction`` " +"sont des chaînes de chiffres hexadécimales, et ``exponent`` est un entier " +"décimal facultativement signé. La casse n'est pas significative, et il doit " +"y avoir au moins un chiffre hexadécimal soit dans le nombre entier soit dans " +"la fraction. Cette syntaxe est similaire à la syntaxe spécifiée dans la " +"section 6.4.4.2 de la norme C99, et est aussi la syntaxe utilisée à partir " +"de Java 1.5. En particulier, la sortie de :meth:`float.hex` est utilisable " +"comme valeur hexadécimale à virgule flottante littérale en C ou Java, et des " +"chaînes hexadécimales produites en C via un format ``%a`` ou Java via " +"``Double.toHexString`` sont acceptées par :meth:`float.fromhex`." + +#: ../Doc/library/stdtypes.rst:614 +msgid "" +"Note that the exponent is written in decimal rather than hexadecimal, and " +"that it gives the power of 2 by which to multiply the coefficient. For " +"example, the hexadecimal string ``0x3.a7p10`` represents the floating-point " +"number ``(3 + 10./16 + 7./16**2) * 2.0**10``, or ``3740.0``::" +msgstr "" +"Notez que l'exposant est écrit en décimal plutôt qu'en hexadécimal, et qu'il " +"donne la puissance de 2 par lequel multiplier le coefficient. Par exemple, " +"la chaîne hexadécimale ``0x3.a7p10`` représente le nombre à virgule " +"flottante ``(3 + 10./16 + 7./16**2) *2.0**10``, ou ``3740.0`` ::" + +#: ../Doc/library/stdtypes.rst:624 +msgid "" +"Applying the reverse conversion to ``3740.0`` gives a different hexadecimal " +"string representing the same number::" +msgstr "" +"L'application de la conversion inverse à ``3740.0`` donne une chaîne " +"hexadécimale différente représentant le même nombre ::" + +#: ../Doc/library/stdtypes.rst:634 +msgid "Hashing of numeric types" +msgstr "Hachage des types numériques" + +#: ../Doc/library/stdtypes.rst:636 +msgid "" +"For numbers ``x`` and ``y``, possibly of different types, it's a requirement " +"that ``hash(x) == hash(y)`` whenever ``x == y`` (see the :meth:`__hash__` " +"method documentation for more details). For ease of implementation and " +"efficiency across a variety of numeric types (including :class:`int`, :class:" +"`float`, :class:`decimal.Decimal` and :class:`fractions.Fraction`) Python's " +"hash for numeric types is based on a single mathematical function that's " +"defined for any rational number, and hence applies to all instances of :" +"class:`int` and :class:`fractions.Fraction`, and all finite instances of :" +"class:`float` and :class:`decimal.Decimal`. Essentially, this function is " +"given by reduction modulo ``P`` for a fixed prime ``P``. The value of ``P`` " +"is made available to Python as the :attr:`modulus` attribute of :data:`sys." +"hash_info`." +msgstr "" +"Pour deux nombres égaux ``x`` et ``y`` (``x == y``), pouvant être de " +"différents types, il est une requis que ``hash(x) == hash(y)`` (voir la " +"documentation de :meth:`__hash__`). Pour faciliter la mise en œuvre et " +"l'efficacité à travers une variété de types numériques (y compris :class:" +"`int`, :class:`float`, :class:`decimal.Decimal` et :class:`fractions." +"Fraction`) le hachage en Python pour les types numérique est basé sur une " +"fonction mathématique unique qui est définie pour tout nombre rationnel, et " +"donc s'applique à toutes les instances de :class:`int` et :class:`fractions." +"Fraction`, et toutes les instances finies de :class:`float` et :class:" +"`decimal.Decimal`. Essentiellement, cette fonction est donnée par la " +"réduction modulo ``P`` pour un nombre ``P`` premier fixe. La valeur de ``P`` " +"est disponible comme attribut :attr:`modulus` de :data:`sys.hash_info`." + +#: ../Doc/library/stdtypes.rst:651 +msgid "" +"Currently, the prime used is ``P = 2**31 - 1`` on machines with 32-bit C " +"longs and ``P = 2**61 - 1`` on machines with 64-bit C longs." +msgstr "" +"Actuellement, le premier utilisé est ``P = 2 ** 31 - 1`` sur des machines " +"dont les *longs* en C sont de 32 bits ``P = 2 ** 61 - 1`` sur des machines " +"dont les *longs* en C font 64 bits." + +#: ../Doc/library/stdtypes.rst:654 +msgid "Here are the rules in detail:" +msgstr "Voici les règles en détail :" + +#: ../Doc/library/stdtypes.rst:656 +msgid "" +"If ``x = m / n`` is a nonnegative rational number and ``n`` is not divisible " +"by ``P``, define ``hash(x)`` as ``m * invmod(n, P) % P``, where ``invmod(n, " +"P)`` gives the inverse of ``n`` modulo ``P``." +msgstr "" +"Si ``x = m / n`` est un nombre rationnel non négatif et ``n`` n'est pas " +"divisible par ``P``, définir ``hash(x)`` comme ``m * invmod(n, P) % P``, où " +"``invmod(n, P)`` donne l'inverse de ``n`` modulo ``P``." + +#: ../Doc/library/stdtypes.rst:660 +msgid "" +"If ``x = m / n`` is a nonnegative rational number and ``n`` is divisible by " +"``P`` (but ``m`` is not) then ``n`` has no inverse modulo ``P`` and the rule " +"above doesn't apply; in this case define ``hash(x)`` to be the constant " +"value ``sys.hash_info.inf``." +msgstr "" +"Si ``x = m / n`` est un nombre rationnel non négatif et ``n`` est divisible " +"par ``P`` (mais ``m`` ne l'est pas), alors ``n`` n'a pas de modulo inverse " +"``P`` et la règle ci-dessus n'est pas applicable ; dans ce cas définir " +"``hash(x)`` comme étant la valeur de la constante ``sys.hash_info.inf``." + +#: ../Doc/library/stdtypes.rst:665 +msgid "" +"If ``x = m / n`` is a negative rational number define ``hash(x)`` as ``-" +"hash(-x)``. If the resulting hash is ``-1``, replace it with ``-2``." +msgstr "" +"Si ``x = m / n`` est un nombre rationnel négatif définir ``hash(x)`` comme " +"``-hash(-x)``. Si le résultat est ``-1``, le remplacer par ``-2``." + +#: ../Doc/library/stdtypes.rst:669 +msgid "" +"The particular values ``sys.hash_info.inf``, ``-sys.hash_info.inf`` and " +"``sys.hash_info.nan`` are used as hash values for positive infinity, " +"negative infinity, or nans (respectively). (All hashable nans have the same " +"hash value.)" +msgstr "" +"Les valeurs particulières ``sys.hash_info.inf``, ``-sys.hash_info.inf`` et " +"``sys.hash_info.nan`` sont utilisées comme valeurs de hachage pour l'infini " +"positif, l'infini négatif, ou *nans* (respectivement). (Tous les *nans* " +"hachables ont la même valeur de hachage.)" + +#: ../Doc/library/stdtypes.rst:674 +msgid "" +"For a :class:`complex` number ``z``, the hash values of the real and " +"imaginary parts are combined by computing ``hash(z.real) + sys.hash_info." +"imag * hash(z.imag)``, reduced modulo ``2**sys.hash_info.width`` so that it " +"lies in ``range(-2**(sys.hash_info.width - 1), 2**(sys.hash_info.width - " +"1))``. Again, if the result is ``-1``, it's replaced with ``-2``." +msgstr "" +"Pour un nombre :class:`complexe ` ``z``, les valeurs de hachage des " +"parties réelles et imaginaires sont combinées en calculant ``hash(z.real) + " +"sys.hash_info.imag * hash(z.imag)``, réduit au modulo ``2**sys.hash_info." +"width`` de sorte qu'il se trouve dans ``range(-2**(sys.hash_info.width - 1), " +"2**(sys.hash_info.width - 1))``. Encore une fois, si le résultat est ``-1``, " +"il est remplacé par ``-2``." + +#: ../Doc/library/stdtypes.rst:682 +msgid "" +"To clarify the above rules, here's some example Python code, equivalent to " +"the built-in hash, for computing the hash of a rational number, :class:" +"`float`, or :class:`complex`::" +msgstr "" +"Afin de clarifier les règles ci-dessus, voici quelques exemples de code " +"Python, équivalent à la fonction de hachage native, pour calculer le hachage " +"d'un nombre rationnel, d'un :class:`float`, ou d'un :class:`complex` ::" + +#: ../Doc/library/stdtypes.rst:737 +msgid "Iterator Types" +msgstr "Les types itérateurs" + +#: ../Doc/library/stdtypes.rst:745 +msgid "" +"Python supports a concept of iteration over containers. This is implemented " +"using two distinct methods; these are used to allow user-defined classes to " +"support iteration. Sequences, described below in more detail, always " +"support the iteration methods." +msgstr "" +"Python supporte un concept d'itération sur les conteneurs. C'est implémenté " +"en utilisant deux méthodes distinctes qui permettent aux classes définies " +"par l'utilisateur de devenir itérables. Les séquences, décrites plus bas en " +"détail, supportent toujours les méthodes d'itération." + +#: ../Doc/library/stdtypes.rst:750 +msgid "" +"One method needs to be defined for container objects to provide iteration " +"support:" +msgstr "" +"Une méthode doit être définie afin que les objets conteneurs supportent " +"l'itération :" + +#: ../Doc/library/stdtypes.rst:757 +msgid "" +"Return an iterator object. The object is required to support the iterator " +"protocol described below. If a container supports different types of " +"iteration, additional methods can be provided to specifically request " +"iterators for those iteration types. (An example of an object supporting " +"multiple forms of iteration would be a tree structure which supports both " +"breadth-first and depth-first traversal.) This method corresponds to the :c:" +"member:`~PyTypeObject.tp_iter` slot of the type structure for Python objects " +"in the Python/C API." +msgstr "" +"Donne un objet itérateur. L'objet doit implémenter le protocole d'itération " +"décrit ci-dessous. Si un conteneur prend en charge différents types " +"d'itération, d'autres méthodes peuvent être fournies pour obtenir " +"spécifiquement les itérateurs pour ces types d'itération. (Exemple d'un " +"objet supportant plusieurs formes d'itération : une structure d'arbre " +"pouvant être parcourue en largeur ou en profondeur.) Cette méthode " +"correspond à l'attribut :c:member:`~PyTypeObject.tp_iter` de la structure du " +"type des objets Python dans l'API Python/C." + +#: ../Doc/library/stdtypes.rst:766 +msgid "" +"The iterator objects themselves are required to support the following two " +"methods, which together form the :dfn:`iterator protocol`:" +msgstr "" +"Les itérateurs eux-mêmes doivent implémenter les deux méthodes suivantes, " +"qui forment ensemble le :dfn:`protocole d'itérateur ` :" + +#: ../Doc/library/stdtypes.rst:772 +msgid "" +"Return the iterator object itself. This is required to allow both " +"containers and iterators to be used with the :keyword:`for` and :keyword:" +"`in` statements. This method corresponds to the :c:member:`~PyTypeObject." +"tp_iter` slot of the type structure for Python objects in the Python/C API." +msgstr "" +"Donne l'objet itérateur lui-même. Cela est nécessaire pour permettre à la " +"fois à des conteneurs et des itérateurs d'être utilisés avec les " +"instructions :keyword:`for` et :keyword:`in`. Cette méthode correspond à " +"l'attribut :c:member:`~PyTypeObject.tp_iter` de la structure des types des " +"objets Python dans l'API Python/C." + +#: ../Doc/library/stdtypes.rst:780 +msgid "" +"Return the next item from the container. If there are no further items, " +"raise the :exc:`StopIteration` exception. This method corresponds to the :c:" +"member:`~PyTypeObject.tp_iternext` slot of the type structure for Python " +"objects in the Python/C API." +msgstr "" +"Donne l'élément suivant du conteneur. S'il n'y a pas d'autres éléments, une " +"exception :exc:`StopIteration` est levée. Cette méthode correspond à " +"l'attribut :c:member:`PyTypeObject.tp_iternext` de la structure du type des " +"objets Python dans l'API Python/C." + +#: ../Doc/library/stdtypes.rst:785 +msgid "" +"Python defines several iterator objects to support iteration over general " +"and specific sequence types, dictionaries, and other more specialized " +"forms. The specific types are not important beyond their implementation of " +"the iterator protocol." +msgstr "" +"Python définit plusieurs objets itérateurs pour itérer sur les types " +"standards ou spécifiques de séquence, de dictionnaires et d'autres formes " +"plus spécialisées. Les types spécifiques ne sont pas importants au-delà de " +"leur implémentation du protocole d'itération." + +#: ../Doc/library/stdtypes.rst:790 +msgid "" +"Once an iterator's :meth:`~iterator.__next__` method raises :exc:" +"`StopIteration`, it must continue to do so on subsequent calls. " +"Implementations that do not obey this property are deemed broken." +msgstr "" +"Dès que la méthode :meth:`~iterator .__next__` lève une exception :exc:" +"`StopIteration`, elle doit continuer à le faire lors des appels ultérieurs." +"Implémentations qui ne respectent pas cette propriété sont considérées " +"cassées." + +#: ../Doc/library/stdtypes.rst:798 +msgid "Generator Types" +msgstr "Types générateurs" + +#: ../Doc/library/stdtypes.rst:800 +msgid "" +"Python's :term:`generator`\\s provide a convenient way to implement the " +"iterator protocol. If a container object's :meth:`__iter__` method is " +"implemented as a generator, it will automatically return an iterator object " +"(technically, a generator object) supplying the :meth:`__iter__` and :meth:" +"`~generator.__next__` methods. More information about generators can be " +"found in :ref:`the documentation for the yield expression `." +msgstr "" +"Les :term:`generator`\\s offrent un moyen pratique d'implémenter le " +"protocole d'itération. Si la méthode :meth:`__iter__` d'un objet conteneur " +"est implémentée comme un générateur, elle renverra automatiquement un objet " +"*iterator* (techniquement, un objet générateur) fournissant les méthodes :" +"meth:`__iter__` et :meth:`~generator.__next__`. Plus d'informations sur les " +"générateurs peuvent être trouvés dans :ref:`la documentation de l'expression " +"yield `." + +#: ../Doc/library/stdtypes.rst:812 +msgid "Sequence Types --- :class:`list`, :class:`tuple`, :class:`range`" +msgstr "Types séquentiels — :class:`list`, :class:`tuple`, :class:`range`" + +#: ../Doc/library/stdtypes.rst:814 +msgid "" +"There are three basic sequence types: lists, tuples, and range objects. " +"Additional sequence types tailored for processing of :ref:`binary data " +"` and :ref:`text strings ` are described in dedicated " +"sections." +msgstr "" +"Il existe trois types séquentiels basiques: les *lists*, *tuples* et les " +"*range*. D'autres types séquentiels spécifiques au traitement de :ref:" +"`données binaires ` et :ref:`chaînes de caractères ` " +"sont décrits dans des sections dédiées." + +#: ../Doc/library/stdtypes.rst:823 +msgid "Common Sequence Operations" +msgstr "Opérations communes sur les séquences" + +#: ../Doc/library/stdtypes.rst:827 +msgid "" +"The operations in the following table are supported by most sequence types, " +"both mutable and immutable. The :class:`collections.abc.Sequence` ABC is " +"provided to make it easier to correctly implement these operations on custom " +"sequence types." +msgstr "" +"Les opérations dans le tableau ci-dessous sont pris en charge par la plupart " +"des types séquentiels, variables et immuables. La classe de base abstraite :" +"class:`collections.abc.Sequence` est fournie pour aider à implémenter " +"correctement ces opérations sur les types séquentiels personnalisés." + +#: ../Doc/library/stdtypes.rst:832 +msgid "" +"This table lists the sequence operations sorted in ascending priority. In " +"the table, *s* and *t* are sequences of the same type, *n*, *i*, *j* and *k* " +"are integers and *x* is an arbitrary object that meets any type and value " +"restrictions imposed by *s*." +msgstr "" +"Ce tableau répertorie les opérations sur les séquences triées par priorité " +"ascendante. Dans le tableau, *s,* et *t* sont des séquences du même type, " +"*n*, *i*, *j* et *k* sont des nombres entiers et *x* est un objet arbitraire " +"qui répond à toutes les restrictions de type et de valeur imposée par *s*." + +#: ../Doc/library/stdtypes.rst:837 +msgid "" +"The ``in`` and ``not in`` operations have the same priorities as the " +"comparison operations. The ``+`` (concatenation) and ``*`` (repetition) " +"operations have the same priority as the corresponding numeric operations. " +"[3]_" +msgstr "" +"Les opérations ``in`` et ``not in`` ont les mêmes priorités que les " +"opérations de comparaison. Les opérations ``+`` (concaténation) et ``*`` " +"(répétition) ont la même priorité que les opérations numériques " +"correspondantes. [3]_" + +#: ../Doc/library/stdtypes.rst:858 +msgid "``x in s``" +msgstr "``x in s``" + +#: ../Doc/library/stdtypes.rst:858 +msgid "``True`` if an item of *s* is equal to *x*, else ``False``" +msgstr "``True`` si un élément de *s* est égal à *x*, sinon ``False``" + +#: ../Doc/library/stdtypes.rst:861 +msgid "``x not in s``" +msgstr "``x not in s``" + +#: ../Doc/library/stdtypes.rst:861 +msgid "``False`` if an item of *s* is equal to *x*, else ``True``" +msgstr "``False`` si un élément de *s* est égal à *x*, sinon ``True``" + +#: ../Doc/library/stdtypes.rst:864 +msgid "``s + t``" +msgstr "``s + t``" + +#: ../Doc/library/stdtypes.rst:864 +msgid "the concatenation of *s* and *t*" +msgstr "la concaténation de *s* et *t*" + +#: ../Doc/library/stdtypes.rst:864 +msgid "(6)(7)" +msgstr "(6)(7)" + +#: ../Doc/library/stdtypes.rst:867 +msgid "``s * n`` or ``n * s``" +msgstr "``s * n`` or ``n * s``" + +#: ../Doc/library/stdtypes.rst:867 +msgid "equivalent to adding *s* to itself *n* times" +msgstr "équivalent à ajouter *s* *n* fois à lui même" + +#: ../Doc/library/stdtypes.rst:867 +msgid "(2)(7)" +msgstr "(2)(7)" + +#: ../Doc/library/stdtypes.rst:870 +msgid "``s[i]``" +msgstr "``s[i]``" + +#: ../Doc/library/stdtypes.rst:870 +msgid "*i*\\ th item of *s*, origin 0" +msgstr "*i*\\ :sup:`e` élément de *s* en commençant par 0" + +#: ../Doc/library/stdtypes.rst:872 +msgid "``s[i:j]``" +msgstr "``s[i:j]``" + +#: ../Doc/library/stdtypes.rst:872 +msgid "slice of *s* from *i* to *j*" +msgstr "tranche (*slice*) de *s* de *i* à *j*" + +#: ../Doc/library/stdtypes.rst:872 +msgid "(3)(4)" +msgstr "(3)(4)" + +#: ../Doc/library/stdtypes.rst:874 +msgid "``s[i:j:k]``" +msgstr "``s[i:j:k]``" + +#: ../Doc/library/stdtypes.rst:874 +msgid "slice of *s* from *i* to *j* with step *k*" +msgstr "tranche (*slice*) de *s* de *i* à *j* avec un pas de *k*" + +#: ../Doc/library/stdtypes.rst:874 +msgid "(3)(5)" +msgstr "(3)(5)" + +#: ../Doc/library/stdtypes.rst:877 +msgid "``len(s)``" +msgstr "``len(s)``" + +#: ../Doc/library/stdtypes.rst:877 +msgid "length of *s*" +msgstr "longueur de *s*" + +#: ../Doc/library/stdtypes.rst:879 +msgid "``min(s)``" +msgstr "``min(s)``" + +#: ../Doc/library/stdtypes.rst:879 +msgid "smallest item of *s*" +msgstr "plus petit élément de *s*" + +#: ../Doc/library/stdtypes.rst:881 +msgid "``max(s)``" +msgstr "``max(s)``" + +#: ../Doc/library/stdtypes.rst:881 +msgid "largest item of *s*" +msgstr "plus grand élément de *s*" + +#: ../Doc/library/stdtypes.rst:883 +msgid "``s.index(x[, i[, j]])``" +msgstr "``s.index(x[, i[, j]])``" + +#: ../Doc/library/stdtypes.rst:883 +msgid "" +"index of the first occurrence of *x* in *s* (at or after index *i* and " +"before index *j*)" +msgstr "" +"indice de la première occurrence de *x* dans *s* (à ou après l'indice *i* et " +"avant indice *j*)" + +#: ../Doc/library/stdtypes.rst:883 ../Doc/library/stdtypes.rst:3339 +msgid "\\(8)" +msgstr "\\(8)" + +#: ../Doc/library/stdtypes.rst:887 +msgid "``s.count(x)``" +msgstr "``s.count(x)``" + +#: ../Doc/library/stdtypes.rst:887 +msgid "total number of occurrences of *x* in *s*" +msgstr "nombre total d'occurrences de *x* dans *s*" + +#: ../Doc/library/stdtypes.rst:891 +msgid "" +"Sequences of the same type also support comparisons. In particular, tuples " +"and lists are compared lexicographically by comparing corresponding " +"elements. This means that to compare equal, every element must compare equal " +"and the two sequences must be of the same type and have the same length. " +"(For full details see :ref:`comparisons` in the language reference.)" +msgstr "" +"Les séquences du même type supportent également la comparaison. En " +"particulier, les n-uplets et les listes sont comparés lexicographiquement en " +"comparant les éléments correspondants. Cela signifie que pour que deux " +"séquences soit égales, les éléments les constituant doivent être égaux deux " +"à deux et les deux séquences doivent être du même type et de la même " +"longueur. (Pour plus de détails voir :ref:`comparisons` dans la référence du " +"langage.)" + +#: ../Doc/library/stdtypes.rst:900 +msgid "" +"While the ``in`` and ``not in`` operations are used only for simple " +"containment testing in the general case, some specialised sequences (such " +"as :class:`str`, :class:`bytes` and :class:`bytearray`) also use them for " +"subsequence testing::" +msgstr "" +"Bien que les opérations ``in`` et ``not in`` ne soient généralement " +"utilisées que pour les tests d'appartenance simple, certaines séquences " +"spécialisées (telles que :class:`str`, :class:`bytes` et :class:`bytearray`) " +"les utilisent aussi pour tester l'existence de sous-séquences ::" + +#: ../Doc/library/stdtypes.rst:909 +msgid "" +"Values of *n* less than ``0`` are treated as ``0`` (which yields an empty " +"sequence of the same type as *s*). Note that items in the sequence *s* are " +"not copied; they are referenced multiple times. This often haunts new " +"Python programmers; consider::" +msgstr "" +"Les valeurs de *n* plus petites que ``0`` sont traitées comme ``0`` (ce qui " +"donne une séquence vide du même type que *s*). Notez que les éléments de *s* " +"ne sont pas copiés ; ils sont référencés plusieurs fois. Cela hante souvent " +"de nouveaux développeurs Python, typiquement ::" + +#: ../Doc/library/stdtypes.rst:921 +msgid "" +"What has happened is that ``[[]]`` is a one-element list containing an empty " +"list, so all three elements of ``[[]] * 3`` are references to this single " +"empty list. Modifying any of the elements of ``lists`` modifies this single " +"list. You can create a list of different lists this way::" +msgstr "" +"Ce qui est arrivé est que ``[[]]`` est une liste à un élément contenant une " +"liste vide, de sorte que les trois éléments de ``[[]] * 3`` sont des " +"références à cette seule liste vide. Modifier l'un des éléments de ``lists`` " +"modifie cette liste unique. Vous pouvez créer une liste des différentes " +"listes de cette façon ::" + +#: ../Doc/library/stdtypes.rst:933 +msgid "" +"Further explanation is available in the FAQ entry :ref:`faq-multidimensional-" +"list`." +msgstr "" +"De plus amples explications sont disponibles dans la FAQ à la question :ref:" +"`faq-multidimensional-list`." + +#: ../Doc/library/stdtypes.rst:937 +msgid "" +"If *i* or *j* is negative, the index is relative to the end of sequence *s*: " +"``len(s) + i`` or ``len(s) + j`` is substituted. But note that ``-0`` is " +"still ``0``." +msgstr "" +"Si *i* ou *j* sont négatifs, l'indice est relatif à la fin de la séquence " +"*s* : ``len(s) + i`` ou ``len(s) + j`` est substitué. Mais notez que ``-0`` " +"est toujours ``0``." + +#: ../Doc/library/stdtypes.rst:942 +msgid "" +"The slice of *s* from *i* to *j* is defined as the sequence of items with " +"index *k* such that ``i <= k < j``. If *i* or *j* is greater than " +"``len(s)``, use ``len(s)``. If *i* is omitted or ``None``, use ``0``. If " +"*j* is omitted or ``None``, use ``len(s)``. If *i* is greater than or equal " +"to *j*, the slice is empty." +msgstr "" +"La tranche de *s* de *i* à *j* est définie comme la séquence d'éléments " +"d'indice *k* tels que ``i <= k < j``. Si *i* ou *j* est supérieur à " +"``len(s)``, ``len(s)`` est utilisé. Si *i* est omis ou ``None``, ``0`` est " +"utilisé. Si *j* est omis ou ``None``, ``len(s)`` est utilisé. Si *i* est " +"supérieure ou égale à *j*, la tranche est vide." + +#: ../Doc/library/stdtypes.rst:949 +msgid "" +"The slice of *s* from *i* to *j* with step *k* is defined as the sequence of " +"items with index ``x = i + n*k`` such that ``0 <= n < (j-i)/k``. In other " +"words, the indices are ``i``, ``i+k``, ``i+2*k``, ``i+3*k`` and so on, " +"stopping when *j* is reached (but never including *j*). When *k* is " +"positive, *i* and *j* are reduced to ``len(s)`` if they are greater. When " +"*k* is negative, *i* and *j* are reduced to ``len(s) - 1`` if they are " +"greater. If *i* or *j* are omitted or ``None``, they become \"end\" values " +"(which end depends on the sign of *k*). Note, *k* cannot be zero. If *k* is " +"``None``, it is treated like ``1``." +msgstr "" +"La tranche de *s* de *i* à *j* avec un pas de *k* est définie comme la " +"séquence d'éléments d'indice ``x = i + n*k`` tels que ``0 <= n < (j-i)/k``. " +"En d'autres termes, les indices sont ``i``, ``i+k``, ``i+2*k``, ``i+3*k`` et " +"ainsi de suite, en arrêtant lorsque *j* est atteint (mais jamais inclus). Si " +"*k* est positif, *i* et *j* sont réduits, s'ils sont plus grands, à " +"``len(s)``. Si *k* est négatif, *i* et *j* sont réduits à ``len(s) - 1`` " +"s'ils sont plus grands. Si *i* ou *j* sont omis ou sont ``None``, ils " +"deviennent des valeurs \"extrêmes\" (où l'ordre dépend du signe de *k*). " +"Remarquez, *k* ne peut pas valoir zéro. Si *k* est ``None``, il est traité " +"comme ``1``." + +#: ../Doc/library/stdtypes.rst:960 +msgid "" +"Concatenating immutable sequences always results in a new object. This " +"means that building up a sequence by repeated concatenation will have a " +"quadratic runtime cost in the total sequence length. To get a linear " +"runtime cost, you must switch to one of the alternatives below:" +msgstr "" +"Concaténer des séquences immuables donne toujours un nouvel objet. Cela " +"signifie que la construction d'une séquence par concaténations répétées aura " +"une durée d'exécution quadratique par rapport à la longueur de la séquence " +"totale. Pour obtenir un temps d'exécution linéaire, vous devez utiliser " +"l'une des alternatives suivantes :" + +#: ../Doc/library/stdtypes.rst:965 +msgid "" +"if concatenating :class:`str` objects, you can build a list and use :meth:" +"`str.join` at the end or else write to an :class:`io.StringIO` instance and " +"retrieve its value when complete" +msgstr "" +"si vous concaténez des :class:`str`, vous pouvez construire une liste puis " +"utiliser :meth:`str.join` à la fin, ou bien écrire dans une instance de :" +"class:`io.StringIO` et récupérer sa valeur lorsque vous avez terminé" + +#: ../Doc/library/stdtypes.rst:969 +msgid "" +"if concatenating :class:`bytes` objects, you can similarly use :meth:`bytes." +"join` or :class:`io.BytesIO`, or you can do in-place concatenation with a :" +"class:`bytearray` object. :class:`bytearray` objects are mutable and have " +"an efficient overallocation mechanism" +msgstr "" +"si vous concaténez des :class:`bytes`, vous pouvez aussi utiliser :meth:" +"`bytes.join` ou :class:`io.BytesIO`, ou vous pouvez faire les concaténation " +"sur place avec un objet :class:`bytearray`. Les objets :class:`bytearray` " +"sont muables et ont un mécanisme de sur-allocation efficace" + +#: ../Doc/library/stdtypes.rst:974 +msgid "if concatenating :class:`tuple` objects, extend a :class:`list` instead" +msgstr "" +"si vous concaténez des :class:`tuple`, utilisez plutôt *extend* sur une :" +"class:`list`" + +#: ../Doc/library/stdtypes.rst:976 +msgid "for other types, investigate the relevant class documentation" +msgstr "" +"pour d'autres types, cherchez dans la documentation de la classe concernée" + +#: ../Doc/library/stdtypes.rst:980 +msgid "" +"Some sequence types (such as :class:`range`) only support item sequences " +"that follow specific patterns, and hence don't support sequence " +"concatenation or repetition." +msgstr "" +"Certains types séquentiels (tels que :class:`range`) ne supportent que des " +"séquences qui suivent des modèles spécifiques, et donc ne prennent pas en " +"charge la concaténation ou la répétition." + +#: ../Doc/library/stdtypes.rst:985 +msgid "" +"``index`` raises :exc:`ValueError` when *x* is not found in *s*. Not all " +"implementations support passing the additional arguments *i* and *j*. These " +"arguments allow efficient searching of subsections of the sequence. Passing " +"the extra arguments is roughly equivalent to using ``s[i:j].index(x)``, only " +"without copying any data and with the returned index being relative to the " +"start of the sequence rather than the start of the slice." +msgstr "" +"``index`` lève une exception :exc:`ValueError` quand *x* ne se trouve pas " +"dans *s*. Toutes les implémentations ne gèrent pas les deux paramètres " +"supplémentaires *i* et *j*. Ces deux arguments permettent de chercher " +"efficacement dans une sous-séquence de la séquence. Donner ces arguments est " +"plus ou moins équivalent à ``s[i:j].index(x)``, sans copier les données ; " +"l'indice renvoyé alors relatif au début de la séquence plutôt qu'au début de " +"la tranche." + +#: ../Doc/library/stdtypes.rst:996 +msgid "Immutable Sequence Types" +msgstr "Types de séquences immuables" + +#: ../Doc/library/stdtypes.rst:1003 +msgid "" +"The only operation that immutable sequence types generally implement that is " +"not also implemented by mutable sequence types is support for the :func:" +"`hash` built-in." +msgstr "" +"La seule opération que les types de séquences immuables implémentent qui " +"n'est pas implémentée par les types de séquences muables est le support de " +"la fonction native :func:`hash`." + +#: ../Doc/library/stdtypes.rst:1007 +msgid "" +"This support allows immutable sequences, such as :class:`tuple` instances, " +"to be used as :class:`dict` keys and stored in :class:`set` and :class:" +"`frozenset` instances." +msgstr "" +"Cette implémentation permet d'utiliser des séquences immuables, comme les " +"instances de :class:`tuple`, en tant que clés de :class:`dict` et stockées " +"dans les instances de :class:`set` et :class:`frozenset`." + +#: ../Doc/library/stdtypes.rst:1011 +msgid "" +"Attempting to hash an immutable sequence that contains unhashable values " +"will result in :exc:`TypeError`." +msgstr "" +"Essayer de hacher une séquence immuable qui contient des valeurs non-" +"hachables lèvera une :exc:`TypeError`." + +#: ../Doc/library/stdtypes.rst:1018 +msgid "Mutable Sequence Types" +msgstr "Types de séquences muables" + +#: ../Doc/library/stdtypes.rst:1025 +msgid "" +"The operations in the following table are defined on mutable sequence types. " +"The :class:`collections.abc.MutableSequence` ABC is provided to make it " +"easier to correctly implement these operations on custom sequence types." +msgstr "" +"Les opérations dans le tableau ci-dessous sont définies sur les types de " +"séquences muables. La classe de base abstraite :class:`collections.abc." +"MutableSequence` est prévue pour faciliter l'implémentation correcte de ces " +"opérations sur les types de séquence personnalisées." + +#: ../Doc/library/stdtypes.rst:1029 +msgid "" +"In the table *s* is an instance of a mutable sequence type, *t* is any " +"iterable object and *x* is an arbitrary object that meets any type and value " +"restrictions imposed by *s* (for example, :class:`bytearray` only accepts " +"integers that meet the value restriction ``0 <= x <= 255``)." +msgstr "" +"Dans le tableau *s* est une instance d'un type de séquence muable, *t* est " +"un objet itérable et *x* est un objet arbitraire qui répond à toutes les " +"restrictions de type et de valeur imposées par *s* (par exemple, :class:" +"`bytearray` accepte uniquement des nombres entiers qui répondent à la " +"restriction de la valeur ``0 <= x <= 255``)." + +#: ../Doc/library/stdtypes.rst:1053 +msgid "``s[i] = x``" +msgstr "``s[i] = x``" + +#: ../Doc/library/stdtypes.rst:1053 +msgid "item *i* of *s* is replaced by *x*" +msgstr "élément *i* de *s* est remplacé par *x*" + +#: ../Doc/library/stdtypes.rst:1056 +msgid "``s[i:j] = t``" +msgstr "``s[i:j] = t``" + +#: ../Doc/library/stdtypes.rst:1056 +msgid "" +"slice of *s* from *i* to *j* is replaced by the contents of the iterable *t*" +msgstr "" +"tranche de *s* de *i* à *j* est remplacée par le contenu de l'itérable *t*" + +#: ../Doc/library/stdtypes.rst:1060 +msgid "``del s[i:j]``" +msgstr "``del s[i:j]``" + +#: ../Doc/library/stdtypes.rst:1060 +msgid "same as ``s[i:j] = []``" +msgstr "identique à ``s[i:j] = []``" + +#: ../Doc/library/stdtypes.rst:1062 +msgid "``s[i:j:k] = t``" +msgstr "``s[i:j:k] = t``" + +#: ../Doc/library/stdtypes.rst:1062 +msgid "the elements of ``s[i:j:k]`` are replaced by those of *t*" +msgstr "les éléments de ``s[i:j:k]`` sont remplacés par ceux de *t*" + +#: ../Doc/library/stdtypes.rst:1065 +msgid "``del s[i:j:k]``" +msgstr "``del s[i:j:k]``" + +#: ../Doc/library/stdtypes.rst:1065 +msgid "removes the elements of ``s[i:j:k]`` from the list" +msgstr "supprime les éléments de ``s[i:j:k]`` de la liste" + +#: ../Doc/library/stdtypes.rst:1068 +msgid "``s.append(x)``" +msgstr "``s.append(x)``" + +#: ../Doc/library/stdtypes.rst:1068 +msgid "" +"appends *x* to the end of the sequence (same as ``s[len(s):len(s)] = [x]``)" +msgstr "" +"ajoute *x* à la fin de la séquence (identique à ``s[len(s):len(s)] = [x]``)" + +#: ../Doc/library/stdtypes.rst:1072 +msgid "``s.clear()``" +msgstr "``s.clear()``" + +#: ../Doc/library/stdtypes.rst:1072 +msgid "removes all items from *s* (same as ``del s[:]``)" +msgstr "supprime tous les éléments de *s* (identique à ``del s[:]``)" + +#: ../Doc/library/stdtypes.rst:1075 +msgid "``s.copy()``" +msgstr "``s.copy()``" + +#: ../Doc/library/stdtypes.rst:1075 +msgid "creates a shallow copy of *s* (same as ``s[:]``)" +msgstr "crée une copie superficielle de *s* (identique à ``s[:]``)" + +#: ../Doc/library/stdtypes.rst:1078 +msgid "``s.extend(t)`` or ``s += t``" +msgstr "``s.extend(t)`` or ``s += t``" + +#: ../Doc/library/stdtypes.rst:1078 +msgid "" +"extends *s* with the contents of *t* (for the most part the same as " +"``s[len(s):len(s)] = t``)" +msgstr "étend *s* avec le contenu de *t* (proche de ``s[len(s):len(s)] = t``)" + +#: ../Doc/library/stdtypes.rst:1083 +msgid "``s *= n``" +msgstr "``s *= n``" + +#: ../Doc/library/stdtypes.rst:1083 +msgid "updates *s* with its contents repeated *n* times" +msgstr "met à jour *s* avec son contenu répété *n* fois" + +#: ../Doc/library/stdtypes.rst:1086 +msgid "``s.insert(i, x)``" +msgstr "``s.insert(i, x)``" + +#: ../Doc/library/stdtypes.rst:1086 +msgid "" +"inserts *x* into *s* at the index given by *i* (same as ``s[i:i] = [x]``)" +msgstr "" +"insère *x* dans *s* à l'index donné par *i* (identique à ``s[i:i] = [x]``)" + +#: ../Doc/library/stdtypes.rst:1090 +msgid "``s.pop([i])``" +msgstr "``s.pop([i])``" + +#: ../Doc/library/stdtypes.rst:1090 +msgid "retrieves the item at *i* and also removes it from *s*" +msgstr "récupère l'élément à *i* et le supprime de *s*" + +#: ../Doc/library/stdtypes.rst:1093 +msgid "``s.remove(x)``" +msgstr "``s.remove(x)``" + +#: ../Doc/library/stdtypes.rst:1093 +msgid "remove the first item from *s* where ``s[i]`` is equal to *x*" +msgstr "supprime le premier élément de *s* pour lequel ``s[i]`` est égal à *x*" + +#: ../Doc/library/stdtypes.rst:1096 +msgid "``s.reverse()``" +msgstr "``s.reverse()``" + +#: ../Doc/library/stdtypes.rst:1096 +msgid "reverses the items of *s* in place" +msgstr "inverse sur place les éléments de *s*" + +#: ../Doc/library/stdtypes.rst:1104 +msgid "*t* must have the same length as the slice it is replacing." +msgstr "*t* doit avoir la même longueur que la tranche qu'il remplace." + +#: ../Doc/library/stdtypes.rst:1107 +msgid "" +"The optional argument *i* defaults to ``-1``, so that by default the last " +"item is removed and returned." +msgstr "" +"L'argument optionnel *i* vaut ``-1`` par défaut, afin que, par défaut, le " +"dernier élément soit retiré et renvoyé." + +#: ../Doc/library/stdtypes.rst:1111 +msgid "``remove`` raises :exc:`ValueError` when *x* is not found in *s*." +msgstr "" +"``remove`` lève une exception :exc:`ValueError` si *x* ne se trouve pas dans " +"*s*." + +#: ../Doc/library/stdtypes.rst:1114 +msgid "" +"The :meth:`reverse` method modifies the sequence in place for economy of " +"space when reversing a large sequence. To remind users that it operates by " +"side effect, it does not return the reversed sequence." +msgstr "" +"La méthode :meth:`reverse` modifie les séquence sur place pour économiser de " +"l'espace lors du traitement de grandes séquences. Pour rappeler aux " +"utilisateurs qu'elle a un effet de bord, elle ne renvoie pas la séquence " +"inversée." + +#: ../Doc/library/stdtypes.rst:1119 +msgid "" +":meth:`clear` and :meth:`!copy` are included for consistency with the " +"interfaces of mutable containers that don't support slicing operations (such " +"as :class:`dict` and :class:`set`)" +msgstr "" +":meth:`clear` et :meth:`!copy` sont incluses pour la compatibilité avec les " +"interfaces des conteneurs muables qui ne supportent pas les opérations de " +"découpage (comme :class:`dict` et :class:`set`)" + +#: ../Doc/library/stdtypes.rst:1123 +msgid ":meth:`clear` and :meth:`!copy` methods." +msgstr "méthodes :meth:`clear` et :meth:`!copy`." + +#: ../Doc/library/stdtypes.rst:1127 +msgid "" +"The value *n* is an integer, or an object implementing :meth:`~object." +"__index__`. Zero and negative values of *n* clear the sequence. Items in " +"the sequence are not copied; they are referenced multiple times, as " +"explained for ``s * n`` under :ref:`typesseq-common`." +msgstr "" +"La valeur *n* est un entier, ou un objet implémentant :meth:`~object." +"__index__`. Zéro et les valeurs négatives de *n* permettent d'effacer la " +"séquence. Les éléments dans la séquence ne sont pas copiés ; ils sont " +"référencés plusieurs fois, comme expliqué pour ``s * n`` dans :ref:`typesseq-" +"common`." + +#: ../Doc/library/stdtypes.rst:1136 +msgid "Lists" +msgstr "Listes" + +#: ../Doc/library/stdtypes.rst:1140 +msgid "" +"Lists are mutable sequences, typically used to store collections of " +"homogeneous items (where the precise degree of similarity will vary by " +"application)." +msgstr "" +"Les listes sont des séquences muables, généralement utilisées pour stocker " +"des collections d'éléments homogènes (où le degré de similitude variera " +"selon l'usage)." + +#: ../Doc/library/stdtypes.rst:1146 +msgid "Lists may be constructed in several ways:" +msgstr "Les listes peuvent être construites de différentes manières :" + +#: ../Doc/library/stdtypes.rst:1148 +msgid "Using a pair of square brackets to denote the empty list: ``[]``" +msgstr "" +"En utilisant une paire de crochets pour indiquer une liste vide : ``[]``" + +#: ../Doc/library/stdtypes.rst:1149 +msgid "" +"Using square brackets, separating items with commas: ``[a]``, ``[a, b, c]``" +msgstr "" +"Au moyen de crochets, séparant les éléments par des virgules : ``[a]``, " +"``[a, b, c]``" + +#: ../Doc/library/stdtypes.rst:1150 +msgid "Using a list comprehension: ``[x for x in iterable]``" +msgstr "En utilisant une liste en compréhension : ``[x for x in iterable]``" + +#: ../Doc/library/stdtypes.rst:1151 +msgid "Using the type constructor: ``list()`` or ``list(iterable)``" +msgstr "" +"En utilisant le constructeur du type : ``list()`` ou ``list(iterable)``" + +#: ../Doc/library/stdtypes.rst:1153 +msgid "" +"The constructor builds a list whose items are the same and in the same order " +"as *iterable*'s items. *iterable* may be either a sequence, a container " +"that supports iteration, or an iterator object. If *iterable* is already a " +"list, a copy is made and returned, similar to ``iterable[:]``. For example, " +"``list('abc')`` returns ``['a', 'b', 'c']`` and ``list( (1, 2, 3) )`` " +"returns ``[1, 2, 3]``. If no argument is given, the constructor creates a " +"new empty list, ``[]``." +msgstr "" +"Le constructeur crée une liste dont les éléments sont les mêmes et dans le " +"même ordre que les éléments d'*iterable*. *iterable* peut être soit une " +"séquence, un conteneur qui supporte l'itération, soit un itérateur. Si " +"*iterable* est déjà une liste, une copie est faite et renvoyée, comme avec " +"``iterable[:]``. Par exemple, ``list('abc')`` renvoie ``['a', 'b', 'c']`` et " +"``list( (1, 2, 3) )`` renvoie ``[1, 2, 3]``. Si aucun argument est donné, le " +"constructeur crée une nouvelle liste vide, ``[]``." + +#: ../Doc/library/stdtypes.rst:1162 +msgid "" +"Many other operations also produce lists, including the :func:`sorted` built-" +"in." +msgstr "" +"De nombreuses autres opérations produisent des listes, tel que la fonction " +"native :func:`sorted`." + +#: ../Doc/library/stdtypes.rst:1165 +msgid "" +"Lists implement all of the :ref:`common ` and :ref:`mutable " +"` sequence operations. Lists also provide the following " +"additional method:" +msgstr "" +"Les listes supportent toutes les opérations des séquences :ref:`communes " +"` et :ref:`muables `. Les listes " +"fournissent également la méthode supplémentaire suivante :" + +#: ../Doc/library/stdtypes.rst:1171 +msgid "" +"This method sorts the list in place, using only ``<`` comparisons between " +"items. Exceptions are not suppressed - if any comparison operations fail, " +"the entire sort operation will fail (and the list will likely be left in a " +"partially modified state)." +msgstr "" +"Cette méthode trie la liste sur place, en utilisant uniquement des " +"comparaisons ``<`` entre les éléments. Les exceptions ne sont pas supprimées " +"si n'importe quelle opération de comparaison échoue, le tri échouera (et la " +"liste sera probablement laissée dans un état partiellement modifié)." + +#: ../Doc/library/stdtypes.rst:1176 +msgid "" +":meth:`sort` accepts two arguments that can only be passed by keyword (:ref:" +"`keyword-only arguments `):" +msgstr "" +":meth:`sort` accepte deux arguments qui ne peuvent être fournis que par mot-" +"clé (:ref:`keyword-only arguments `):" + +#: ../Doc/library/stdtypes.rst:1179 +msgid "" +"*key* specifies a function of one argument that is used to extract a " +"comparison key from each list element (for example, ``key=str.lower``). The " +"key corresponding to each item in the list is calculated once and then used " +"for the entire sorting process. The default value of ``None`` means that " +"list items are sorted directly without calculating a separate key value." +msgstr "" +"*key* spécifie une fonction d'un argument utilisée pour extraire une clé de " +"comparaison de chaque élément de la liste (par exemple, ``key=str.lower``). " +"La clé correspondant à chaque élément de la liste n'est calculée qu'une " +"seule fois, puis utilisée durant tout le processus. La valeur par défaut, " +"``None``, signifie que les éléments sont triés directement sans en calculer " +"une valeur \"clé\" séparée." + +#: ../Doc/library/stdtypes.rst:1186 +msgid "" +"The :func:`functools.cmp_to_key` utility is available to convert a 2.x style " +"*cmp* function to a *key* function." +msgstr "" +"La fonction utilitaire :func:`functools.cmp_to_key` est disponible pour " +"convertir une fonction *cmp* du style 2.x à une fonction *key*." + +#: ../Doc/library/stdtypes.rst:1189 +msgid "" +"*reverse* is a boolean value. If set to ``True``, then the list elements " +"are sorted as if each comparison were reversed." +msgstr "" +"*reverse*, une valeur booléenne. Si elle est ``True``, la liste d'éléments " +"est triée comme si toutes les comparaisons étaient inversées." + +#: ../Doc/library/stdtypes.rst:1192 +msgid "" +"This method modifies the sequence in place for economy of space when sorting " +"a large sequence. To remind users that it operates by side effect, it does " +"not return the sorted sequence (use :func:`sorted` to explicitly request a " +"new sorted list instance)." +msgstr "" +"Cette méthode modifie la séquence sur place pour économiser de l'espace lors " +"du tri de grandes séquences. Pour rappeler aux utilisateurs cet effet de " +"bord, elle ne renvoie pas la séquence triée (utilisez :func:`sorted` pour " +"demander explicitement une nouvelle instance de liste triée)." + +#: ../Doc/library/stdtypes.rst:1197 +msgid "" +"The :meth:`sort` method is guaranteed to be stable. A sort is stable if it " +"guarantees not to change the relative order of elements that compare equal " +"--- this is helpful for sorting in multiple passes (for example, sort by " +"department, then by salary grade)." +msgstr "" +"La méthode :meth:`sort` est garantie stable. Un tri est stable s'il garantit " +"de ne pas changer l'ordre relatif des éléments égaux --- cela est utile pour " +"trier en plusieurs passes (par exemple, trier par département, puis par " +"niveau de salaire)." + +#: ../Doc/library/stdtypes.rst:1204 +msgid "" +"While a list is being sorted, the effect of attempting to mutate, or even " +"inspect, the list is undefined. The C implementation of Python makes the " +"list appear empty for the duration, and raises :exc:`ValueError` if it can " +"detect that the list has been mutated during a sort." +msgstr "" +"L'effet de tenter de modifier, ou même inspecter la liste pendant qu'elle se " +"fait trier est indéfini. L'implémentation C de Python fait apparaître la " +"liste comme vide pour la durée du traitement, et lève :exc:`ValueError` si " +"elle détecte que la liste a été modifiée au cours du tri." + +#: ../Doc/library/stdtypes.rst:1213 +msgid "Tuples" +msgstr "Tuples" + +#: ../Doc/library/stdtypes.rst:1217 +msgid "" +"Tuples are immutable sequences, typically used to store collections of " +"heterogeneous data (such as the 2-tuples produced by the :func:`enumerate` " +"built-in). Tuples are also used for cases where an immutable sequence of " +"homogeneous data is needed (such as allowing storage in a :class:`set` or :" +"class:`dict` instance)." +msgstr "" +"Les tuples (*n-uplets* en français) sont des séquences immuables, " +"généralement utilisées pour stocker des collections de données hétérogènes " +"(tels que les tuples de deux éléments produits par la fonction native :func:" +"`enumerate`). Les tuples sont également utilisés dans des cas où une " +"séquence homogène et immuable de données est nécessaire (pour, par exemple, " +"les stocker dans un :class:`set` ou un :class:`dict`)." + +#: ../Doc/library/stdtypes.rst:1225 +msgid "Tuples may be constructed in a number of ways:" +msgstr "Les tuples peuvent être construits de différentes façons :" + +#: ../Doc/library/stdtypes.rst:1227 +msgid "Using a pair of parentheses to denote the empty tuple: ``()``" +msgstr "" +"En utilisant une paire de parenthèses pour désigner le tuple vide : ``()``" + +#: ../Doc/library/stdtypes.rst:1228 +msgid "Using a trailing comma for a singleton tuple: ``a,`` or ``(a,)``" +msgstr "" +"En utilisant une virgule, pour créer un tuple d'un élément : ``a,`` ou " +"``(a,)``" + +#: ../Doc/library/stdtypes.rst:1229 +msgid "Separating items with commas: ``a, b, c`` or ``(a, b, c)``" +msgstr "" +"En séparant les éléments avec des virgules : ``a, b, c`` ou ``(a, b, c)``" + +#: ../Doc/library/stdtypes.rst:1230 +msgid "Using the :func:`tuple` built-in: ``tuple()`` or ``tuple(iterable)``" +msgstr "" +"En utilisant la fonction native :func:`tuple` : ``tuple()`` ou " +"``tuple(iterable)``" + +#: ../Doc/library/stdtypes.rst:1232 +msgid "" +"The constructor builds a tuple whose items are the same and in the same " +"order as *iterable*'s items. *iterable* may be either a sequence, a " +"container that supports iteration, or an iterator object. If *iterable* is " +"already a tuple, it is returned unchanged. For example, ``tuple('abc')`` " +"returns ``('a', 'b', 'c')`` and ``tuple( [1, 2, 3] )`` returns ``(1, 2, " +"3)``. If no argument is given, the constructor creates a new empty tuple, " +"``()``." +msgstr "" +"Le constructeur construit un tuple dont les éléments sont les mêmes et dans " +"le même ordre que les éléments de *iterable*. *iterable* peut être soit une " +"séquence, un conteneur qui supporte l'itération, soit un itérateur. Si " +"*iterable* est déjà un tuple, il est renvoyé inchangé. Par exemple, " +"``tuple('abc')`` renvoie ``('a', 'b', 'c')`` et ``tuple( [1, 2, 3] )`` " +"renvoie ``(1, 2, 3)``. Si aucun argument est donné, le constructeur crée un " +"nouveau tuple vide, ``()``." + +#: ../Doc/library/stdtypes.rst:1240 +msgid "" +"Note that it is actually the comma which makes a tuple, not the parentheses. " +"The parentheses are optional, except in the empty tuple case, or when they " +"are needed to avoid syntactic ambiguity. For example, ``f(a, b, c)`` is a " +"function call with three arguments, while ``f((a, b, c))`` is a function " +"call with a 3-tuple as the sole argument." +msgstr "" +"Notez que c'est en fait la virgule qui fait un tuple et non les parenthèses. " +"Les parenthèses sont facultatives, sauf dans le cas du tuple vide, ou " +"lorsqu'elles sont nécessaires pour éviter l'ambiguïté syntaxique. Par " +"exemple, ``f(a, b, c)`` est un appel de fonction avec trois arguments, alors " +"que ``f((a, b, c))`` est un appel de fonction avec un tuple de trois " +"éléments comme unique argument." + +#: ../Doc/library/stdtypes.rst:1246 +msgid "" +"Tuples implement all of the :ref:`common ` sequence " +"operations." +msgstr "" +"Les tuples implémentent toutes les opérations :ref:`communes ` des séquences." + +#: ../Doc/library/stdtypes.rst:1249 +msgid "" +"For heterogeneous collections of data where access by name is clearer than " +"access by index, :func:`collections.namedtuple` may be a more appropriate " +"choice than a simple tuple object." +msgstr "" +"Pour les collections hétérogènes de données où l'accès par nom est plus " +"clair que l'accès par index, :func:`collections.namedtuple` peut être un " +"choix plus approprié qu'un simple tuple." + +#: ../Doc/library/stdtypes.rst:1257 +msgid "Ranges" +msgstr "*Ranges*" + +#: ../Doc/library/stdtypes.rst:1261 +msgid "" +"The :class:`range` type represents an immutable sequence of numbers and is " +"commonly used for looping a specific number of times in :keyword:`for` loops." +msgstr "" +"Le type :class:`range` représente une séquence immuable de nombres et est " +"couramment utilisé pour itérer un certain nombre de fois dans les boucles :" +"keyword:`for`." + +#: ../Doc/library/stdtypes.rst:1268 +msgid "" +"The arguments to the range constructor must be integers (either built-in :" +"class:`int` or any object that implements the ``__index__`` special " +"method). If the *step* argument is omitted, it defaults to ``1``. If the " +"*start* argument is omitted, it defaults to ``0``. If *step* is zero, :exc:" +"`ValueError` is raised." +msgstr "" +"Les arguments du constructeur de *range* doivent être des entiers (des :" +"class:`int` ou tout autre objet qui implémente la méthode spéciale " +"``__index__``). La valeur par défaut de l'argument *step* est ``1``. La " +"valeur par défaut de l'argument *start* est ``0``. Si *step* est égal à " +"zéro, une exception :exc:`ValueError` est levée." + +#: ../Doc/library/stdtypes.rst:1274 +msgid "" +"For a positive *step*, the contents of a range ``r`` are determined by the " +"formula ``r[i] = start + step*i`` where ``i >= 0`` and ``r[i] < stop``." +msgstr "" +"Pour un *step* positif, le contenu d'un *range* ``r`` est déterminé par la " +"formule ``r[i] = start + step*i`` où ``i >= 0`` et ``r[i] < stop``." + +#: ../Doc/library/stdtypes.rst:1278 +msgid "" +"For a negative *step*, the contents of the range are still determined by the " +"formula ``r[i] = start + step*i``, but the constraints are ``i >= 0`` and " +"``r[i] > stop``." +msgstr "" +"Pour un *step* négatif, le contenu du *range* est toujours déterminé par la " +"formule ``r[i] = start + step*i``, mais les contraintes sont ``i >= 0`` et " +"``r[i] > stop``." + +#: ../Doc/library/stdtypes.rst:1282 +msgid "" +"A range object will be empty if ``r[0]`` does not meet the value constraint. " +"Ranges do support negative indices, but these are interpreted as indexing " +"from the end of the sequence determined by the positive indices." +msgstr "" +"Un objet *range* sera vide si ``r[0]`` ne répond pas à la contrainte de " +"valeur. Les *range* prennent en charge les indices négatifs, mais ceux-ci " +"sont interprétées comme une indexation de la fin de la séquence déterminée " +"par les indices positifs." + +#: ../Doc/library/stdtypes.rst:1287 +msgid "" +"Ranges containing absolute values larger than :data:`sys.maxsize` are " +"permitted but some features (such as :func:`len`) may raise :exc:" +"`OverflowError`." +msgstr "" +"Les *range* contenant des valeurs absolues plus grandes que :data:`sys." +"maxsize` sont permises, mais certaines fonctionnalités (comme :func:`len`) " +"peuvent lever :exc:`OverflowError`." + +#: ../Doc/library/stdtypes.rst:1291 +msgid "Range examples::" +msgstr "Exemples avec *range* ::" + +#: ../Doc/library/stdtypes.rst:1308 +msgid "" +"Ranges implement all of the :ref:`common ` sequence " +"operations except concatenation and repetition (due to the fact that range " +"objects can only represent sequences that follow a strict pattern and " +"repetition and concatenation will usually violate that pattern)." +msgstr "" +"*range* implémente toutes les opérations :ref:`communes ` " +"des séquences sauf la concaténation et la répétition (en raison du fait que " +"les *range* ne peuvent représenter que des séquences qui respectent un motif " +"strict et que la répétition et la concaténation les feraient dévier de ce " +"motif)." + +#: ../Doc/library/stdtypes.rst:1315 +msgid "" +"The value of the *start* parameter (or ``0`` if the parameter was not " +"supplied)" +msgstr "" +"La valeur du paramètre *start* (ou ``0`` si le paramètre n'a pas été fourni)" + +#: ../Doc/library/stdtypes.rst:1320 +msgid "The value of the *stop* parameter" +msgstr "La valeur du paramètre *stop*" + +#: ../Doc/library/stdtypes.rst:1324 +msgid "" +"The value of the *step* parameter (or ``1`` if the parameter was not " +"supplied)" +msgstr "" +"La valeur du paramètre *step* (ou ``1`` si le paramètre n'a pas été fourni)" + +#: ../Doc/library/stdtypes.rst:1327 +msgid "" +"The advantage of the :class:`range` type over a regular :class:`list` or :" +"class:`tuple` is that a :class:`range` object will always take the same " +"(small) amount of memory, no matter the size of the range it represents (as " +"it only stores the ``start``, ``stop`` and ``step`` values, calculating " +"individual items and subranges as needed)." +msgstr "" +"L'avantage du type :class:`range` sur une :class:`list` classique ou :class:" +"`tuple` est qu'un objet :class:`range` prendra toujours la même (petite) " +"quantité de mémoire, peu importe la taille de la gamme qu'elle représente " +"(car elle ne stocke que les valeurs ``start``, ``stop`` et ``step`` , le " +"calcul des éléments individuels et les sous-intervalles au besoin)." + +#: ../Doc/library/stdtypes.rst:1333 +msgid "" +"Range objects implement the :class:`collections.abc.Sequence` ABC, and " +"provide features such as containment tests, element index lookup, slicing " +"and support for negative indices (see :ref:`typesseq`):" +msgstr "" +"Les *range* implémentent la classe de base abstraite :class:`collections.abc." +"Sequence` et offrent des fonctionnalités telles que les tests d'appartenance " +"(avec *in*), de recherche par index, le tranchage et ils gèrent les indices " +"négatifs (voir :ref:`typesseq`):" + +#: ../Doc/library/stdtypes.rst:1353 +msgid "" +"Testing range objects for equality with ``==`` and ``!=`` compares them as " +"sequences. That is, two range objects are considered equal if they " +"represent the same sequence of values. (Note that two range objects that " +"compare equal might have different :attr:`~range.start`, :attr:`~range.stop` " +"and :attr:`~range.step` attributes, for example ``range(0) == range(2, 1, " +"3)`` or ``range(0, 3, 2) == range(0, 4, 2)``.)" +msgstr "" +"Comparer des *range* avec ``==`` et ``!=`` les compare comme des séquences. " +"Soit deux objets *range* sont considérées comme égaux si ils représentent la " +"même séquence de valeurs. (Notez que deux objets *range* dits égaux " +"pourraient avoir leurs attributs :attr:`~range.start`, :attr:`~range.stop` " +"et :attr:`~range.step` différents, par exemple ``range(0) == range(2, 1, " +"3)`` ou ``range(0, 3, 2) == range(0, 4, 2)``.)" + +#: ../Doc/library/stdtypes.rst:1360 +msgid "" +"Implement the Sequence ABC. Support slicing and negative indices. Test :" +"class:`int` objects for membership in constant time instead of iterating " +"through all items." +msgstr "" +"Implémente la classe de base abstraite *Sequence*. Supporte le *slicing* et " +"les indices négatifs. Tester l'appartenance d'un :class:`int` en temps " +"constant au lieu d'itérer tous les éléments." + +#: ../Doc/library/stdtypes.rst:1366 +msgid "" +"Define '==' and '!=' to compare range objects based on the sequence of " +"values they define (instead of comparing based on object identity)." +msgstr "" +"``==`` et ``!=`` comparent des *range* en fonction de la séquence de valeurs " +"qu'ils définissent (au lieu d'une comparaison fondée sur l'identité de " +"l'objet)." + +#: ../Doc/library/stdtypes.rst:1371 +msgid "" +"The :attr:`~range.start`, :attr:`~range.stop` and :attr:`~range.step` " +"attributes." +msgstr "" +"Les attributs :attr:`~range.start`, :attr:`~range.stop` et :attr:`~range." +"step`." + +#: ../Doc/library/stdtypes.rst:1377 +msgid "" +"The `linspace recipe `_ shows " +"how to implement a lazy version of range suitable for floating point " +"applications." +msgstr "" +"La `recette linspace `_ montre " +"comment implémenter une version paresseuse de *range* adaptée aux nombres à " +"virgule flottante." + +#: ../Doc/library/stdtypes.rst:1389 +msgid "Text Sequence Type --- :class:`str`" +msgstr "Type Séquence de Texte — :class:`str`" + +#: ../Doc/library/stdtypes.rst:1391 +msgid "" +"Textual data in Python is handled with :class:`str` objects, or :dfn:" +"`strings`. Strings are immutable :ref:`sequences ` of Unicode code " +"points. String literals are written in a variety of ways:" +msgstr "" +"Les données textuelles en Python est manipulé avec des objets :class:`str` " +"ou :dfn:`strings`. Les chaînes sont des :ref:`séquences ` " +"immuables de points de code Unicode. Les chaînes littérales peuvent être " +"écrites de différentes manières :" + +#: ../Doc/library/stdtypes.rst:1396 +msgid "Single quotes: ``'allows embedded \"double\" quotes'``" +msgstr "Les guillemets simples : ``'autorisent les \"guillemets\"'``" + +#: ../Doc/library/stdtypes.rst:1397 +msgid "Double quotes: ``\"allows embedded 'single' quotes\"``." +msgstr "Les guillemets : ``\"autorisent les guillemets 'simples'\"``." + +#: ../Doc/library/stdtypes.rst:1398 +msgid "" +"Triple quoted: ``'''Three single quotes'''``, ``\"\"\"Three double quotes" +"\"\"\"``" +msgstr "" +"Guillemets triples : ``'''Trois guillemets simples'''``, ``\"\"\"Trois " +"guillemets\"\"\"``" + +#: ../Doc/library/stdtypes.rst:1400 +msgid "" +"Triple quoted strings may span multiple lines - all associated whitespace " +"will be included in the string literal." +msgstr "" +"Les chaînes entre triple guillemets peuvent couvrir plusieurs lignes, tous " +"les espaces associés seront inclus dans la chaîne littérale." + +#: ../Doc/library/stdtypes.rst:1403 +msgid "" +"String literals that are part of a single expression and have only " +"whitespace between them will be implicitly converted to a single string " +"literal. That is, ``(\"spam \" \"eggs\") == \"spam eggs\"``." +msgstr "" +"Les chaînes littérales qui font partie d'une seule expression et ont " +"seulement des espaces entre elles sont implicitement converties en une seule " +"chaîne littérale. Autrement dit, ``(\"spam \" \"eggs\") == \"spam eggs\"``." + +#: ../Doc/library/stdtypes.rst:1407 +msgid "" +"See :ref:`strings` for more about the various forms of string literal, " +"including supported escape sequences, and the ``r`` (\"raw\") prefix that " +"disables most escape sequence processing." +msgstr "" +"Voir :ref:`strings` pour plus d'informations sur les différentes formes de " +"chaînes littérales, y compris des séquences d'échappement prises en charge, " +"et le préfixe ``r`` (*raw* (brut)) qui désactive la plupart des traitements " +"de séquence d'échappement." + +#: ../Doc/library/stdtypes.rst:1411 +msgid "" +"Strings may also be created from other objects using the :class:`str` " +"constructor." +msgstr "" +"Les chaînes peuvent également être créés à partir d'autres objets à l'aide " +"du constructeur :class:`str`." + +#: ../Doc/library/stdtypes.rst:1414 +msgid "" +"Since there is no separate \"character\" type, indexing a string produces " +"strings of length 1. That is, for a non-empty string *s*, ``s[0] == s[0:1]``." +msgstr "" +"Comme il n'y a pas de type \"caractère\" distinct, l'indexation d'une chaîne " +"produit des chaînes de longueur 1. Autrement dit, pour une chaîne non vide " +"*s*, ``s[0] == s[0:1]``." + +#: ../Doc/library/stdtypes.rst:1420 +msgid "" +"There is also no mutable string type, but :meth:`str.join` or :class:`io." +"StringIO` can be used to efficiently construct strings from multiple " +"fragments." +msgstr "" +"Il n'y a aucun type de chaîne muable, mais :meth:`str.join` ou :class:`io." +"StringIO` peuvent être utilisées pour construire efficacement des chaînes à " +"partir de plusieurs fragments." + +#: ../Doc/library/stdtypes.rst:1424 +msgid "" +"For backwards compatibility with the Python 2 series, the ``u`` prefix is " +"once again permitted on string literals. It has no effect on the meaning of " +"string literals and cannot be combined with the ``r`` prefix." +msgstr "" +"Pour une compatibilité ascendante avec la série Python 2, le préfixe ``u`` " +"est à nouveau autorisé sur les chaînes littérales. Elle n'a aucun effet sur " +"le sens des chaînes littérales et ne peut être combiné avec le préfixe ``r``." + +#: ../Doc/library/stdtypes.rst:1436 +msgid "" +"Return a :ref:`string ` version of *object*. If *object* is not " +"provided, returns the empty string. Otherwise, the behavior of ``str()`` " +"depends on whether *encoding* or *errors* is given, as follows." +msgstr "" +"Renvoie une représentation :ref:`string ` de *object*. Si *object* " +"n'est pas fourni, renvoie une chaîne vide. Sinon, le comportement de " +"``str()`` dépend de si *encoding* ou *errors* sont donnés, voir l'exemple." + +#: ../Doc/library/stdtypes.rst:1440 +msgid "" +"If neither *encoding* nor *errors* is given, ``str(object)`` returns :meth:" +"`object.__str__() `, which is the \"informal\" or nicely " +"printable string representation of *object*. For string objects, this is " +"the string itself. If *object* does not have a :meth:`~object.__str__` " +"method, then :func:`str` falls back to returning :meth:`repr(object) `." +msgstr "" +"Si ni *encoding* ni *errors* ne sont donnés, ``str(object)`` renvoie :meth:" +"`object.__str__() `, qui est la représentation de chaîne " +"\"informelle\" ou bien affichable de *object*. Pour les chaînes, c'est la " +"chaîne elle-même. Si *object* n'a pas de méthode :meth:`~object.__str__`, :" +"func:`str` utilise :meth:`repr(object) `." + +#: ../Doc/library/stdtypes.rst:1451 +msgid "" +"If at least one of *encoding* or *errors* is given, *object* should be a :" +"term:`bytes-like object` (e.g. :class:`bytes` or :class:`bytearray`). In " +"this case, if *object* is a :class:`bytes` (or :class:`bytearray`) object, " +"then ``str(bytes, encoding, errors)`` is equivalent to :meth:`bytes." +"decode(encoding, errors) `. Otherwise, the bytes object " +"underlying the buffer object is obtained before calling :meth:`bytes." +"decode`. See :ref:`binaryseq` and :ref:`bufferobjects` for information on " +"buffer objects." +msgstr "" +"Si au moins un des deux arguments *encoding* ou *errors* est donné, *object* " +"doit être un :term:`bytes-like object` (par exemple :class:`bytes` ou :class:" +"`bytearray`). Dans ce cas, si *object* est un objet :class:`bytes` (ou :" +"class:`bytearray`), alors ``str(bytes, encoding, errors)`` est équivalent à :" +"meth:`bytes.decode(encoding, errors) `. Sinon, l'objet *bytes* " +"du *buffer* est obtenu avant d'appeler :meth:`bytes.decode`. Voir :ref:" +"`binaryseq` et :ref:`bufferobjects` pour plus d'informations sur les " +"*buffers*." + +#: ../Doc/library/stdtypes.rst:1460 +msgid "" +"Passing a :class:`bytes` object to :func:`str` without the *encoding* or " +"*errors* arguments falls under the first case of returning the informal " +"string representation (see also the :option:`-b` command-line option to " +"Python). For example::" +msgstr "" +"Donner un objet :class:`bytes` à :func:`str` sans ni l'argument *encoding* " +"ni l'argument *errors* relève du premier cas, où la représentation " +"informelle de la chaîne est renvoyé (voir aussi l'option :option:`-b` de " +"Python). Par exemple ::" + +#: ../Doc/library/stdtypes.rst:1468 +msgid "" +"For more information on the ``str`` class and its methods, see :ref:" +"`textseq` and the :ref:`string-methods` section below. To output formatted " +"strings, see the :ref:`f-strings` and :ref:`formatstrings` sections. In " +"addition, see the :ref:`stringservices` section." +msgstr "" +"Pour plus d'informations sur la classe ``str`` et ses méthodes, voir les " +"sections :ref:`textseq` et :ref:`string-methods`. Pour formater des chaînes " +"de caractères, voir les sections :ref:`f-strings` et :ref:`formatstrings`. " +"La section :ref:`stringservices` contient aussi des informations." + +#: ../Doc/library/stdtypes.rst:1480 +msgid "String Methods" +msgstr "Méthodes de chaînes de caractères" + +#: ../Doc/library/stdtypes.rst:1485 +msgid "" +"Strings implement all of the :ref:`common ` sequence " +"operations, along with the additional methods described below." +msgstr "" +"Les chaînes implémentent toutes les opérations :ref:`communes des séquences " +"`, ainsi que les autres méthodes décrites ci-dessous." + +#: ../Doc/library/stdtypes.rst:1488 +msgid "" +"Strings also support two styles of string formatting, one providing a large " +"degree of flexibility and customization (see :meth:`str.format`, :ref:" +"`formatstrings` and :ref:`string-formatting`) and the other based on C " +"``printf`` style formatting that handles a narrower range of types and is " +"slightly harder to use correctly, but is often faster for the cases it can " +"handle (:ref:`old-string-formatting`)." +msgstr "" +"Les chaînes gèrent aussi deux styles de mise en forme, l'un fournissant une " +"grande flexibilité et de personnalisation (voir :meth:`str.format`, :ref:" +"`formatstrings` et :ref:`string-formatting`) et l'autre basée sur ``printf`` " +"du C qui gère une gamme plus étroite des types et est légèrement plus " +"difficile à utiliser correctement, mais il est souvent plus rapide pour les " +"cas, il peut gérer (:ref:`old-string-formatting`)." + +#: ../Doc/library/stdtypes.rst:1495 +msgid "" +"The :ref:`textservices` section of the standard library covers a number of " +"other modules that provide various text related utilities (including regular " +"expression support in the :mod:`re` module)." +msgstr "" +"La section :ref:`textservices` de la bibliothèque standard couvre un certain " +"nombre d'autres modules qui fournissent différents services relatifs au " +"texte (y compris les expressions régulières dans le module :mod:`re`)." + +#: ../Doc/library/stdtypes.rst:1501 +msgid "" +"Return a copy of the string with its first character capitalized and the " +"rest lowercased." +msgstr "" +"Renvoie une copie de la chaîne avec son premier caractère en majuscule et le " +"reste en minuscule." + +#: ../Doc/library/stdtypes.rst:1507 +msgid "" +"Return a casefolded copy of the string. Casefolded strings may be used for " +"caseless matching." +msgstr "" +"Renvoie une copie *casefolded* de la chaîne. Les chaînes *casefolded* " +"peuvent être utilisées dans des comparaison insensibles à la casse." + +#: ../Doc/library/stdtypes.rst:1510 +msgid "" +"Casefolding is similar to lowercasing but more aggressive because it is " +"intended to remove all case distinctions in a string. For example, the " +"German lowercase letter ``'ß'`` is equivalent to ``\"ss\"``. Since it is " +"already lowercase, :meth:`lower` would do nothing to ``'ß'``; :meth:" +"`casefold` converts it to ``\"ss\"``." +msgstr "" +"Le *casefolding* est une technique agressive de mise en minuscule, car il " +"vise à éliminer toutes les distinctions de casse dans une chaîne. Par " +"exemple, la lettre minuscule ``'ß'`` de l'allemand équivaut à ``\"ss\"``. " +"Comme il est déjà minuscule, :meth:`lower` ferait rien à ``'ß'``; :meth:" +"`casefold` le convertit en ``\"ss\"``." + +#: ../Doc/library/stdtypes.rst:1516 +msgid "" +"The casefolding algorithm is described in section 3.13 of the Unicode " +"Standard." +msgstr "" +"L'algorithme de *casefolding* est décrit dans la section 3.13 de la norme " +"Unicode." + +#: ../Doc/library/stdtypes.rst:1524 +msgid "" +"Return centered in a string of length *width*. Padding is done using the " +"specified *fillchar* (default is an ASCII space). The original string is " +"returned if *width* is less than or equal to ``len(s)``." +msgstr "" +"Donne la chaîne au centre d'une chaîne de longueur *width*. Le remplissage " +"est fait en utilisant l'argument *fillchar* (qui par défaut est un espace " +"ASCII). La chaîne d'origine est renvoyée si *width* est inférieur ou égale à " +"``len(s)``." + +#: ../Doc/library/stdtypes.rst:1532 +msgid "" +"Return the number of non-overlapping occurrences of substring *sub* in the " +"range [*start*, *end*]. Optional arguments *start* and *end* are " +"interpreted as in slice notation." +msgstr "" +"Donne le nombre d'occurrences de *sub* ne se chevauchant pas dans le *range* " +"[*start*, *end*]. Les arguments facultatifs *start* et *end* sont " +"interprétés comme pour des *slices*." + +#: ../Doc/library/stdtypes.rst:1539 +msgid "" +"Return an encoded version of the string as a bytes object. Default encoding " +"is ``'utf-8'``. *errors* may be given to set a different error handling " +"scheme. The default for *errors* is ``'strict'``, meaning that encoding " +"errors raise a :exc:`UnicodeError`. Other possible values are ``'ignore'``, " +"``'replace'``, ``'xmlcharrefreplace'``, ``'backslashreplace'`` and any other " +"name registered via :func:`codecs.register_error`, see section :ref:`error-" +"handlers`. For a list of possible encodings, see section :ref:`standard-" +"encodings`." +msgstr "" +"Donne une version encodée de la chaîne sous la forme d'un objet *bytes*. " +"L'encodage par défaut est ``'utf-8'``. *errors* peut être donné pour choisir " +"un autre système de gestion d'erreur. La valeur par défaut pour *errors* est " +"``'strict'``, ce qui signifie que les erreurs d'encodage lèvent une :exc:" +"`UnicodeError`. Les autres valeurs possibles sont ``'ignore'``, " +"``'replace'``, ``'xmlcharrefreplace'``, ``'backslashreplace'`` et tout autre " +"nom enregistré *via* :func:`codecs.register_error`, voir la section :ref:" +"`error-handlers`. Pour une liste des encodages possibles, voir la section :" +"ref:`standard-encodings`." + +#: ../Doc/library/stdtypes.rst:1548 +msgid "Support for keyword arguments added." +msgstr "Gestion des arguments par mot clef." + +#: ../Doc/library/stdtypes.rst:1554 +msgid "" +"Return ``True`` if the string ends with the specified *suffix*, otherwise " +"return ``False``. *suffix* can also be a tuple of suffixes to look for. " +"With optional *start*, test beginning at that position. With optional " +"*end*, stop comparing at that position." +msgstr "" +"Donne ``True`` si la chaîne se termine par *suffix*, sinon ``False``. " +"*suffix* peut aussi être un tuple de suffixes à rechercher. Si l'argument " +"optionnel *start* est donné, le test se fait à partir de cette position. Si " +"l'argument optionnel *end* est fourni, la comparaison s'arrête à cette " +"position." + +#: ../Doc/library/stdtypes.rst:1562 +msgid "" +"Return a copy of the string where all tab characters are replaced by one or " +"more spaces, depending on the current column and the given tab size. Tab " +"positions occur every *tabsize* characters (default is 8, giving tab " +"positions at columns 0, 8, 16 and so on). To expand the string, the current " +"column is set to zero and the string is examined character by character. If " +"the character is a tab (``\\t``), one or more space characters are inserted " +"in the result until the current column is equal to the next tab position. " +"(The tab character itself is not copied.) If the character is a newline (``" +"\\n``) or return (``\\r``), it is copied and the current column is reset to " +"zero. Any other character is copied unchanged and the current column is " +"incremented by one regardless of how the character is represented when " +"printed." +msgstr "" +"Donne une copie de la chaîne où toutes les tabulations sont remplacées par " +"un ou plusieurs espaces, en fonction de la colonne courante et de la taille " +"de tabulation donnée. Les positions des tabulations se trouvent tous les " +"*tabsize* caractères (8 par défaut, ce qui donne les positions de " +"tabulations aux colonnes 0, 8, 16 et ainsi de suite). Pour travailler sur la " +"chaîne, la colonne en cours est mise à zéro et la chaîne est examinée " +"caractère par caractère. Si le caractère est une tabulation (``\\t``), un ou " +"plusieurs caractères d'espacement sont insérés dans le résultat jusqu'à ce " +"que la colonne courante soit égale à la position de tabulation suivante. (Le " +"caractère tabulation lui-même n'est pas copié.) Si le caractère est un saut " +"de ligne (``\\n``) ou un retour chariot (``\\r``), il est copié et la " +"colonne en cours est remise à zéro. Tout autre caractère est copié inchangé " +"et la colonne en cours est incrémentée de un indépendamment de la façon dont " +"le caractère est représenté lors de l'affichage." + +#: ../Doc/library/stdtypes.rst:1583 +msgid "" +"Return the lowest index in the string where substring *sub* is found within " +"the slice ``s[start:end]``. Optional arguments *start* and *end* are " +"interpreted as in slice notation. Return ``-1`` if *sub* is not found." +msgstr "" +"Donne la première la position dans la chaîne où *sub* est trouvé dans le " +"*slice* ``s[start:end]``. Les arguments facultatifs *start* et *end* sont " +"interprétés comme dans la notation des *slice*. Donne ``-1`` si *sub* n'est " +"pas trouvé." + +#: ../Doc/library/stdtypes.rst:1589 +msgid "" +"The :meth:`~str.find` method should be used only if you need to know the " +"position of *sub*. To check if *sub* is a substring or not, use the :" +"keyword:`in` operator::" +msgstr "" +"La méthode :meth:`~str.find` ne doit être utilisée que si vous avez besoin " +"de connaître la position de *sub*. Pour vérifier si *sub* est une sous " +"chaine ou non, utilisez l'opérateur :keyword:`in` ::" + +#: ../Doc/library/stdtypes.rst:1599 +msgid "" +"Perform a string formatting operation. The string on which this method is " +"called can contain literal text or replacement fields delimited by braces " +"``{}``. Each replacement field contains either the numeric index of a " +"positional argument, or the name of a keyword argument. Returns a copy of " +"the string where each replacement field is replaced with the string value of " +"the corresponding argument." +msgstr "" +"Formate une chaîne. La chaîne sur laquelle cette méthode est appelée peut " +"contenir du texte littéral ou des emplacements de remplacement délimités par " +"des accolades ``{}``. Chaque champ de remplacement contient soit l'indice " +"numérique d'un argument positionnel, ou le nom d'un argument donné par mot-" +"clé. Renvoie une copie de la chaîne où chaque champ de remplacement est " +"remplacé par la valeur de chaîne de l'argument correspondant." + +#: ../Doc/library/stdtypes.rst:1609 +msgid "" +"See :ref:`formatstrings` for a description of the various formatting options " +"that can be specified in format strings." +msgstr "" +"Voir :ref:`formatstrings` pour une description des options de formatage qui " +"peuvent être spécifiées dans les chaînes de format." + +#: ../Doc/library/stdtypes.rst:1613 +msgid "" +"When formatting a number (:class:`int`, :class:`float`, :class:`complex`, :" +"class:`decimal.Decimal` and subclasses) with the ``n`` type (ex: ``'{:n}'." +"format(1234)``), the function temporarily sets the ``LC_CTYPE`` locale to " +"the ``LC_NUMERIC`` locale to decode ``decimal_point`` and ``thousands_sep`` " +"fields of :c:func:`localeconv` if they are non-ASCII or longer than 1 byte, " +"and the ``LC_NUMERIC`` locale is different than the ``LC_CTYPE`` locale. " +"This temporary change affects other threads." +msgstr "" +"Lors du formatage avec le format ``n`` (comme ``'{:n}'.format(1234)``) d'un " +"nombre (:class:`int`, :class:`float`, :class:`complex`, :class:`decimal." +"Decimal` et dérivées), la fonction met temporairement la variable " +"``LC_CTYPE`` à la valeur de ``LC_NUMERIC`` pour décoder correctement les " +"attributs ``decimal_point`` et ``thousands_sep`` de :c:func:`localeconv`, " +"s'ils ne sont pas en ASCII ou font plus d'un octet, et que ``LC_NUMERIC`` " +"est différent de ``LC_CTYPE``. Ce changement temporaire affecte les autres " +"fils d'exécution." + +#: ../Doc/library/stdtypes.rst:1622 +msgid "" +"When formatting a number with the ``n`` type, the function sets temporarily " +"the ``LC_CTYPE`` locale to the ``LC_NUMERIC`` locale in some cases." +msgstr "" +"Lors du formatage d'un nombre avec le format ``n``, la fonction change " +"temporairement ``LC_CTYPE`` par la valeur de ``LC_NUMERIC`` dans certains " +"cas." + +#: ../Doc/library/stdtypes.rst:1630 +msgid "" +"Similar to ``str.format(**mapping)``, except that ``mapping`` is used " +"directly and not copied to a :class:`dict`. This is useful if for example " +"``mapping`` is a dict subclass:" +msgstr "" +"Semblable à ``str.format(**mapping)``, sauf que ``mapping`` est utilisé " +"directement et non copié dans un :class:`dict`. C'est utile si, par exemple " +"``mapping`` est une sous-classe de ``dict`` :" + +#: ../Doc/library/stdtypes.rst:1646 +msgid "" +"Like :meth:`~str.find`, but raise :exc:`ValueError` when the substring is " +"not found." +msgstr "" +"Comme :meth:`~str.find`, mais lève une :exc:`ValueError` lorsque la chaîne " +"est introuvable." + +#: ../Doc/library/stdtypes.rst:1652 +msgid "" +"Return true if all characters in the string are alphanumeric and there is at " +"least one character, false otherwise. A character ``c`` is alphanumeric if " +"one of the following returns ``True``: ``c.isalpha()``, ``c.isdecimal()``, " +"``c.isdigit()``, or ``c.isnumeric()``." +msgstr "" +"Donne ``True`` si tous les caractères de la chaîne sont alphanumériques et " +"qu'il y a au moins un caractère, sinon ``False``. Un caractère ``c`` est " +"alphanumérique si l'un des tests suivants est vrais : ``c.isalpha()``, ``c." +"isdecimal()``, ``c.isdigit()`` ou ``c.isnumeric()``." + +#: ../Doc/library/stdtypes.rst:1660 +msgid "" +"Return true if all characters in the string are alphabetic and there is at " +"least one character, false otherwise. Alphabetic characters are those " +"characters defined in the Unicode character database as \"Letter\", i.e., " +"those with general category property being one of \"Lm\", \"Lt\", \"Lu\", " +"\"Ll\", or \"Lo\". Note that this is different from the \"Alphabetic\" " +"property defined in the Unicode Standard." +msgstr "" +"Donne ``True`` si tous les caractères de la chaîne sont alphabétiques et " +"qu'elle contient au moins un caractère, sinon ``False``. Les caractères " +"alphabétiques sont les caractères définis dans la base de données de " +"caractères Unicode comme *Letter*, à savoir, ceux qui ont \"Lm\", \"Lt\", " +"\"Lu\", \"Ll\", ou \"Lo\" comme catégorie générale. Notez que ceci est " +"différent de la propriété *Alphabetic* définie dans la norme Unicode." + +#: ../Doc/library/stdtypes.rst:1669 +msgid "" +"Return true if the string is empty or all characters in the string are " +"ASCII, false otherwise. ASCII characters have code points in the range U" +"+0000-U+007F." +msgstr "" +"Donne ``True`` si la chaîne est vide ou ne contient que des caractères " +"ASCII, ``False`` sinon. Les caractères ASCII ont un code dans l'intervalle ``" +"\"U+0000\"``\\ ---\\ ``\"U+007F\"``." + +#: ../Doc/library/stdtypes.rst:1678 +msgid "" +"Return true if all characters in the string are decimal characters and there " +"is at least one character, false otherwise. Decimal characters are those " +"that can be used to form numbers in base 10, e.g. U+0660, ARABIC-INDIC DIGIT " +"ZERO. Formally a decimal character is a character in the Unicode General " +"Category \"Nd\"." +msgstr "" +"Renvoie vrai si tous les caractères de la chaîne sont des caractères " +"décimaux et qu'elle contient au moins un caractère, sinon faux. Les " +"caractères décimaux sont ceux pouvant être utilisés pour former des nombres " +"en base 10, tels que U+0660, ARABIC-INDIC DIGIT ZERO. Spécifiquement, un " +"caractère décimal est un caractère dans la catégorie Unicode générale \"Nd\"." + +#: ../Doc/library/stdtypes.rst:1688 +msgid "" +"Return true if all characters in the string are digits and there is at least " +"one character, false otherwise. Digits include decimal characters and " +"digits that need special handling, such as the compatibility superscript " +"digits. This covers digits which cannot be used to form numbers in base 10, " +"like the Kharosthi numbers. Formally, a digit is a character that has the " +"property value Numeric_Type=Digit or Numeric_Type=Decimal." +msgstr "" +"Renvoie vrai si tous les caractères de la chaîne sont des chiffres et " +"qu'elle contient au moins un caractère, faux sinon. Les chiffres incluent " +"des caractères décimaux et des chiffres qui nécessitent une manipulation " +"particulière, tels que les *compatibility superscript digits*. Ça couvre les " +"chiffres qui ne peuvent pas être utilisés pour construire des nombres en " +"base 10, tel que les nombres de Kharosthi. Spécifiquement, un chiffre est un " +"caractère dont la valeur de la propriété *Numeric_Type* est *Digit* ou " +"*Decimal*." + +#: ../Doc/library/stdtypes.rst:1698 +msgid "" +"Return true if the string is a valid identifier according to the language " +"definition, section :ref:`identifiers`." +msgstr "" +"Donne ``True`` si la chaîne est un identifiant valide selon la définition du " +"langage, section :ref:`identifiers`." + +#: ../Doc/library/stdtypes.rst:1701 +msgid "" +"Use :func:`keyword.iskeyword` to test for reserved identifiers such as :" +"keyword:`def` and :keyword:`class`." +msgstr "" +"Utilisez :func:`keyword.iskeyword` pour savoir si un identifiant est " +"réservé, tels que :keyword:`def` et :keyword:`class`." + +#: ../Doc/library/stdtypes.rst:1706 +msgid "" +"Return true if all cased characters [4]_ in the string are lowercase and " +"there is at least one cased character, false otherwise." +msgstr "" +"Donne ``True`` si tous les caractères capitalisables [4]_ de la chaîne sont " +"en minuscules et qu'elle contient au moins un caractère capitalisable. Donne " +"``False`` dans le cas contraire." + +#: ../Doc/library/stdtypes.rst:1712 +msgid "" +"Return true if all characters in the string are numeric characters, and " +"there is at least one character, false otherwise. Numeric characters include " +"digit characters, and all characters that have the Unicode numeric value " +"property, e.g. U+2155, VULGAR FRACTION ONE FIFTH. Formally, numeric " +"characters are those with the property value Numeric_Type=Digit, " +"Numeric_Type=Decimal or Numeric_Type=Numeric." +msgstr "" +"Donne ``True`` si tous les caractères de la chaîne sont des caractères " +"numériques, et qu'elle contient au moins un caractère, sinon ``False``. Les " +"caractères numériques comprennent les chiffres, et tous les caractères qui " +"ont la propriété Unicode *numeric value*, par exemple U+2155, *VULGAR " +"FRACTION OF FIFTH*. Formellement, les caractères numériques sont ceux avec " +"les priorités *Numeric_Type=Digit*, *Numeric_Type=Decimal*, ou " +"*Numeric_Type=Numeric*." + +#: ../Doc/library/stdtypes.rst:1722 +msgid "" +"Return true if all characters in the string are printable or the string is " +"empty, false otherwise. Nonprintable characters are those characters " +"defined in the Unicode character database as \"Other\" or \"Separator\", " +"excepting the ASCII space (0x20) which is considered printable. (Note that " +"printable characters in this context are those which should not be escaped " +"when :func:`repr` is invoked on a string. It has no bearing on the handling " +"of strings written to :data:`sys.stdout` or :data:`sys.stderr`.)" +msgstr "" +"Donne ``True`` si tous les caractères de la chaîne sont affichables ou " +"qu'elle est vide sinon, ``False``. Les caractères non affichables sont les " +"caractères définis dans la base de données de caractères Unicode comme *" +"\"Other\"* ou *\"Separator\"*, à l'exception de l'espace ASCII (``0x20``) " +"qui est considéré comme affichable. (Notez que les caractères imprimables " +"dans ce contexte sont ceux qui ne devraient pas être protégés quand :func:" +"`repr` est invoquée sur une chaîne. Ça n'a aucune incidence sur le " +"traitement des chaînes écrites sur :data:`sys.stdout` ou :data:`sys.stderr`.)" + +#: ../Doc/library/stdtypes.rst:1733 +msgid "" +"Return true if there are only whitespace characters in the string and there " +"is at least one character, false otherwise. Whitespace characters are " +"those characters defined in the Unicode character database as \"Other\" or " +"\"Separator\" and those with bidirectional property being one of \"WS\", \"B" +"\", or \"S\"." +msgstr "" +"Donne ``True`` s'il n'y a que des caractères blancs dans la chaîne et il y a " +"au moins un caractère, sinon ``False``. Les caractères blancs sont les " +"caractères définis dans la base de données de caractères Unicode comme *" +"\"Other\"* ou *\"Separator\"* ainsi que ceux ayant la propriété " +"bidirectionnelle valant \"WS\", \"B\" ou \"S\"." + +#: ../Doc/library/stdtypes.rst:1740 +msgid "" +"Return true if the string is a titlecased string and there is at least one " +"character, for example uppercase characters may only follow uncased " +"characters and lowercase characters only cased ones. Return false otherwise." +msgstr "" +"Donne ``True`` si la chaîne est une chaîne *titlecased* et qu'elle contient " +"au moins un caractère, par exemple les caractères majuscules ne peuvent " +"suivre les caractères non capitalisables et les caractères minuscules ne " +"peuvent suivre que des caractères capitalisables. Donne ``False`` dans le " +"cas contraire." + +#: ../Doc/library/stdtypes.rst:1747 +msgid "" +"Return true if all cased characters [4]_ in the string are uppercase and " +"there is at least one cased character, false otherwise." +msgstr "" +"Donne ``True`` si tous les caractères différentiables sur la casse [4]_ de " +"la chaîne sont en majuscules et il y a au moins un caractère différentiable " +"sur la casse, sinon ``False``." + +#: ../Doc/library/stdtypes.rst:1753 +msgid "" +"Return a string which is the concatenation of the strings in *iterable*. A :" +"exc:`TypeError` will be raised if there are any non-string values in " +"*iterable*, including :class:`bytes` objects. The separator between " +"elements is the string providing this method." +msgstr "" +"Donne une chaîne qui est la concaténation des chaînes contenues dans " +"*iterable*. Une :exc:`TypeError` sera levée si une valeur d'*iterable* n'est " +"pas une chaîne, y compris pour les objets :class:`bytes`. Le séparateur " +"entre les éléments est la chaîne fournissant cette méthode." + +#: ../Doc/library/stdtypes.rst:1761 +msgid "" +"Return the string left justified in a string of length *width*. Padding is " +"done using the specified *fillchar* (default is an ASCII space). The " +"original string is returned if *width* is less than or equal to ``len(s)``." +msgstr "" +"Renvoie la chaîne justifiée à gauche dans une chaîne de longueur *width*. Le " +"rembourrage est fait en utilisant *fillchar* (qui par défaut est un espace " +"ASCII). La chaîne d'origine est renvoyée si *width* est inférieur ou égale à " +"``len(s)``." + +#: ../Doc/library/stdtypes.rst:1768 +msgid "" +"Return a copy of the string with all the cased characters [4]_ converted to " +"lowercase." +msgstr "" +"Renvoie une copie de la chaîne avec tous les caractères capitalisables [4]_ " +"convertis en minuscules." + +#: ../Doc/library/stdtypes.rst:1771 +msgid "" +"The lowercasing algorithm used is described in section 3.13 of the Unicode " +"Standard." +msgstr "" +"L'algorithme de mise en minuscules utilisé est décrit dans la section 3.13 " +"de la norme Unicode." + +#: ../Doc/library/stdtypes.rst:1777 +msgid "" +"Return a copy of the string with leading characters removed. The *chars* " +"argument is a string specifying the set of characters to be removed. If " +"omitted or ``None``, the *chars* argument defaults to removing whitespace. " +"The *chars* argument is not a prefix; rather, all combinations of its values " +"are stripped::" +msgstr "" +"Renvoie une copie de la chaîne des caractères supprimés au début. L'argument " +"*chars* est une chaîne spécifiant le jeu de caractères à supprimer. En cas " +"d'omission ou ``None``, la valeur par défaut de *chars* permet de supprimer " +"des espaces. L'argument *chars* n'est pas un préfixe, toutes les " +"combinaisons de ses valeurs sont supprimées ::" + +#: ../Doc/library/stdtypes.rst:1790 +msgid "" +"This static method returns a translation table usable for :meth:`str." +"translate`." +msgstr "" +"Cette méthode statique renvoie une table de traduction utilisable pour :meth:" +"`str.translate`." + +#: ../Doc/library/stdtypes.rst:1792 +msgid "" +"If there is only one argument, it must be a dictionary mapping Unicode " +"ordinals (integers) or characters (strings of length 1) to Unicode ordinals, " +"strings (of arbitrary lengths) or ``None``. Character keys will then be " +"converted to ordinals." +msgstr "" +"Si un seul argument est fourni, ce soit être un dictionnaire faisant " +"correspondre des points de code Unicode (nombres entiers) ou des caractères " +"(chaînes de longueur 1) à des points de code Unicode." + +#: ../Doc/library/stdtypes.rst:1797 +msgid "" +"If there are two arguments, they must be strings of equal length, and in the " +"resulting dictionary, each character in x will be mapped to the character at " +"the same position in y. If there is a third argument, it must be a string, " +"whose characters will be mapped to ``None`` in the result." +msgstr "" +"Si deux arguments sont fournis, ce doit être deux chaînes de caractères de " +"même longueur. Le dictionnaire renvoyé fera correspondre pour chaque " +"caractère de x un caractère de y pris à la même place. Si un troisième " +"argument est fourni, ce doit être une chaîne dont chaque caractère " +"correspondra à ``None`` dans le résultat." + +#: ../Doc/library/stdtypes.rst:1805 +msgid "" +"Split the string at the first occurrence of *sep*, and return a 3-tuple " +"containing the part before the separator, the separator itself, and the part " +"after the separator. If the separator is not found, return a 3-tuple " +"containing the string itself, followed by two empty strings." +msgstr "" +"Divise la chaîne à la première occurrence de *sep*, et donne un *tuple* de " +"trois éléments contenant la partie avant le séparateur, le séparateur lui-" +"même, et la partie après le séparateur. Si le séparateur n'est pas trouvé, " +"le *tuple* contiendra la chaîne elle-même, suivie de deux chaînes vides." + +#: ../Doc/library/stdtypes.rst:1813 +msgid "" +"Return a copy of the string with all occurrences of substring *old* replaced " +"by *new*. If the optional argument *count* is given, only the first *count* " +"occurrences are replaced." +msgstr "" +"Renvoie une copie de la chaîne dont toutes les occurrences de la sous-" +"chaîne *old* sont remplacés par *new*. Si l'argument optionnel *count* est " +"donné, seules les *count* premières occurrences sont remplacées." + +#: ../Doc/library/stdtypes.rst:1820 +msgid "" +"Return the highest index in the string where substring *sub* is found, such " +"that *sub* is contained within ``s[start:end]``. Optional arguments *start* " +"and *end* are interpreted as in slice notation. Return ``-1`` on failure." +msgstr "" +"Donne l'indice le plus élevé dans la chaîne où la sous-chaîne *sub* se " +"trouve, de telle sorte que *sub* soit contenue dans ``s[start:end]``. Les " +"arguments facultatifs *start* et *end* sont interprétés comme dans la " +"notation des *slices*. Donne ``-1`` en cas d'échec." + +#: ../Doc/library/stdtypes.rst:1827 +msgid "" +"Like :meth:`rfind` but raises :exc:`ValueError` when the substring *sub* is " +"not found." +msgstr "" +"Comme :meth:`rfind` mais lève une exception :exc:`ValueError` lorsque la " +"sous-chaîne *sub* est introuvable." + +#: ../Doc/library/stdtypes.rst:1833 +msgid "" +"Return the string right justified in a string of length *width*. Padding is " +"done using the specified *fillchar* (default is an ASCII space). The " +"original string is returned if *width* is less than or equal to ``len(s)``." +msgstr "" +"Renvoie la chaîne justifié à droite dans une chaîne de longueur *width*. Le " +"rembourrage est fait en utilisant le caractère spécifié par *fillchar* (par " +"défaut est un espace ASCII). La chaîne d'origine est renvoyée si *width* est " +"inférieure ou égale à ``len(s)``." + +#: ../Doc/library/stdtypes.rst:1840 +msgid "" +"Split the string at the last occurrence of *sep*, and return a 3-tuple " +"containing the part before the separator, the separator itself, and the part " +"after the separator. If the separator is not found, return a 3-tuple " +"containing two empty strings, followed by the string itself." +msgstr "" +"Divise la chaîne à la dernière occurrence de *sep*, et donne un tuple de " +"trois éléments contenant la partie avant le séparateur, le séparateur lui-" +"même, et la partie après le séparateur. Si le séparateur n'est pas trouvé, " +"le *tuple* contiendra deux chaînes vides, puis par la chaîne elle-même." + +#: ../Doc/library/stdtypes.rst:1848 +msgid "" +"Return a list of the words in the string, using *sep* as the delimiter " +"string. If *maxsplit* is given, at most *maxsplit* splits are done, the " +"*rightmost* ones. If *sep* is not specified or ``None``, any whitespace " +"string is a separator. Except for splitting from the right, :meth:`rsplit` " +"behaves like :meth:`split` which is described in detail below." +msgstr "" +"Renvoie une liste des mots de la chaîne, en utilisant *sep* comme " +"séparateur. Si *maxsplit* est donné, c'est le nombre maximum de divisions " +"qui pourront être faites, celles \"à droite\". Si *sep* est pas spécifié ou " +"est ``None``, tout espace est un séparateur. En dehors du fait qu'il découpe " +"par la droite, :meth:`rsplit` se comporte comme :meth:`split` qui est décrit " +"en détail ci-dessous." + +#: ../Doc/library/stdtypes.rst:1857 +msgid "" +"Return a copy of the string with trailing characters removed. The *chars* " +"argument is a string specifying the set of characters to be removed. If " +"omitted or ``None``, the *chars* argument defaults to removing whitespace. " +"The *chars* argument is not a suffix; rather, all combinations of its values " +"are stripped::" +msgstr "" +"Renvoie une copie de la chaîne avec des caractères finaux supprimés. " +"L'argument *chars* est une chaîne spécifiant le jeu de caractères à " +"supprimer. En cas d'omission ou ``None``, les espaces sont supprimés. " +"L'argument *chars* n'est pas un suffixe : toutes les combinaisons de ses " +"valeurs sont retirées ::" + +#: ../Doc/library/stdtypes.rst:1870 +msgid "" +"Return a list of the words in the string, using *sep* as the delimiter " +"string. If *maxsplit* is given, at most *maxsplit* splits are done (thus, " +"the list will have at most ``maxsplit+1`` elements). If *maxsplit* is not " +"specified or ``-1``, then there is no limit on the number of splits (all " +"possible splits are made)." +msgstr "" +"Renvoie une liste des mots de la chaîne, en utilisant *sep* comme séparateur " +"de mots. Si *maxsplit* est donné, c'est le nombre maximum de divisions qui " +"pourront être effectuées, (donnant ainsi une liste de longueur ``maxsplit" +"+1``). Si *maxsplit* n'est pas fourni, ou vaut ``-1``, le nombre de découpes " +"n'est pas limité (Toutes les découpes possibles sont faites)." + +#: ../Doc/library/stdtypes.rst:1876 +msgid "" +"If *sep* is given, consecutive delimiters are not grouped together and are " +"deemed to delimit empty strings (for example, ``'1,,2'.split(',')`` returns " +"``['1', '', '2']``). The *sep* argument may consist of multiple characters " +"(for example, ``'1<>2<>3'.split('<>')`` returns ``['1', '2', '3']``). " +"Splitting an empty string with a specified separator returns ``['']``." +msgstr "" +"Si *sep* est donné, les délimiteurs consécutifs ne sont pas regroupés et " +"ainsi délimitent des chaînes vides (par exemple, ``'1,,2'.split(',')`` donne " +"``['1', '', '2']``). L'argument *sep* peut contenir plusieurs caractères " +"(par exemple, ``'1<>2<>3'.split('<>')`` renvoie ``['1', '2', '3']``). " +"Découper une chaîne vide en spécifiant *sep* donne ``['']``." + +#: ../Doc/library/stdtypes.rst:1882 ../Doc/library/stdtypes.rst:1898 +#: ../Doc/library/stdtypes.rst:1950 ../Doc/library/stdtypes.rst:2018 +#: ../Doc/library/stdtypes.rst:2082 ../Doc/library/stdtypes.rst:2843 +#: ../Doc/library/stdtypes.rst:2859 ../Doc/library/stdtypes.rst:2950 +#: ../Doc/library/stdtypes.rst:2966 ../Doc/library/stdtypes.rst:2991 +#: ../Doc/library/stdtypes.rst:3005 ../Doc/library/stdtypes.rst:3033 +#: ../Doc/library/stdtypes.rst:3047 ../Doc/library/stdtypes.rst:3065 +#: ../Doc/library/stdtypes.rst:3092 ../Doc/library/stdtypes.rst:3115 +#: ../Doc/library/stdtypes.rst:3142 ../Doc/library/stdtypes.rst:3184 +#: ../Doc/library/stdtypes.rst:3208 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/library/stdtypes.rst:1891 +msgid "" +"If *sep* is not specified or is ``None``, a different splitting algorithm is " +"applied: runs of consecutive whitespace are regarded as a single separator, " +"and the result will contain no empty strings at the start or end if the " +"string has leading or trailing whitespace. Consequently, splitting an empty " +"string or a string consisting of just whitespace with a ``None`` separator " +"returns ``[]``." +msgstr "" +"Si *sep* n'est pas spécifié ou est ``None``, un autre algorithme de " +"découpage est appliqué : les espaces consécutifs sont considérés comme un " +"seul séparateur, et le résultat ne contiendra pas les chaînes vides de début " +"ou de la fin si la chaîne est préfixée ou suffixé d'espaces. Par conséquent, " +"diviser une chaîne vide ou une chaîne composée d'espaces avec un séparateur " +"``None`` renvoie ``[]``." + +#: ../Doc/library/stdtypes.rst:1913 +msgid "" +"Return a list of the lines in the string, breaking at line boundaries. Line " +"breaks are not included in the resulting list unless *keepends* is given and " +"true." +msgstr "" +"Renvoie les lignes de la chaîne sous forme de liste, la découpe se fait au " +"niveau des limites des lignes. Les sauts de ligne ne sont pas inclus dans la " +"liste des résultats, sauf si *keepends* est donné, et est vrai." + +#: ../Doc/library/stdtypes.rst:1917 +msgid "" +"This method splits on the following line boundaries. In particular, the " +"boundaries are a superset of :term:`universal newlines`." +msgstr "" +"Cette méthode découpe sur les limites de ligne suivantes. Ces limites sont " +"un sur ensemble de :term:`universal newlines`." + +#: ../Doc/library/stdtypes.rst:1921 +msgid "Representation" +msgstr "Représentation" + +#: ../Doc/library/stdtypes.rst:1921 +msgid "Description" +msgstr "Description" + +#: ../Doc/library/stdtypes.rst:1923 +msgid "``\\n``" +msgstr "``\\n``" + +#: ../Doc/library/stdtypes.rst:1923 +msgid "Line Feed" +msgstr "Saut de ligne" + +#: ../Doc/library/stdtypes.rst:1925 +msgid "``\\r``" +msgstr "``\\r``" + +#: ../Doc/library/stdtypes.rst:1925 +msgid "Carriage Return" +msgstr "Retour chariot" + +#: ../Doc/library/stdtypes.rst:1927 +msgid "``\\r\\n``" +msgstr "``\\r\\n``" + +#: ../Doc/library/stdtypes.rst:1927 +msgid "Carriage Return + Line Feed" +msgstr "Retour chariot + saut de ligne" + +#: ../Doc/library/stdtypes.rst:1929 +msgid "``\\v`` or ``\\x0b``" +msgstr "``\\v`` or ``\\x0b``" + +#: ../Doc/library/stdtypes.rst:1929 +msgid "Line Tabulation" +msgstr "Tabulation verticale" + +#: ../Doc/library/stdtypes.rst:1931 +msgid "``\\f`` or ``\\x0c``" +msgstr "``\\f`` or ``\\x0c``" + +#: ../Doc/library/stdtypes.rst:1931 +msgid "Form Feed" +msgstr "Saut de page" + +#: ../Doc/library/stdtypes.rst:1933 +msgid "``\\x1c``" +msgstr "``\\x1c``" + +#: ../Doc/library/stdtypes.rst:1933 +msgid "File Separator" +msgstr "Séparateur de fichiers" + +#: ../Doc/library/stdtypes.rst:1935 +msgid "``\\x1d``" +msgstr "``\\x1d``" + +#: ../Doc/library/stdtypes.rst:1935 +msgid "Group Separator" +msgstr "Séparateur de groupes" + +#: ../Doc/library/stdtypes.rst:1937 +msgid "``\\x1e``" +msgstr "``\\x1e``" + +#: ../Doc/library/stdtypes.rst:1937 +msgid "Record Separator" +msgstr "Séparateur d'enregistrements" + +#: ../Doc/library/stdtypes.rst:1939 +msgid "``\\x85``" +msgstr "``\\x85``" + +#: ../Doc/library/stdtypes.rst:1939 +msgid "Next Line (C1 Control Code)" +msgstr "Ligne suivante (code de contrôle *C1*)" + +#: ../Doc/library/stdtypes.rst:1941 +msgid "``\\u2028``" +msgstr "``\\u2028``" + +#: ../Doc/library/stdtypes.rst:1941 +msgid "Line Separator" +msgstr "Séparateur de ligne" + +#: ../Doc/library/stdtypes.rst:1943 +msgid "``\\u2029``" +msgstr "``\\u2029``" + +#: ../Doc/library/stdtypes.rst:1943 +msgid "Paragraph Separator" +msgstr "Séparateur de paragraphe" + +#: ../Doc/library/stdtypes.rst:1948 +msgid "``\\v`` and ``\\f`` added to list of line boundaries." +msgstr "``\\v`` et ``\\f`` ajoutés à la liste des limites de lignes." + +#: ../Doc/library/stdtypes.rst:1957 +msgid "" +"Unlike :meth:`~str.split` when a delimiter string *sep* is given, this " +"method returns an empty list for the empty string, and a terminal line break " +"does not result in an extra line::" +msgstr "" +"Contrairement à :meth:`~str.split` lorsque *sep* est fourni, cette méthode " +"renvoie une liste vide pour la chaîne vide, et un saut de ligne à la fin ne " +"se traduit pas par une ligne supplémentaire ::" + +#: ../Doc/library/stdtypes.rst:1966 +msgid "For comparison, ``split('\\n')`` gives::" +msgstr "À titre de comparaison, ``split('\\n')`` donne ::" + +#: ../Doc/library/stdtypes.rst:1976 +msgid "" +"Return ``True`` if string starts with the *prefix*, otherwise return " +"``False``. *prefix* can also be a tuple of prefixes to look for. With " +"optional *start*, test string beginning at that position. With optional " +"*end*, stop comparing string at that position." +msgstr "" +"Donne ``True`` si la chaîne commence par *prefix*, sinon ``False``. " +"*prefix* peut aussi être un tuple de préfixes à rechercher. Lorsque *start* " +"est donné, la comparaison commence à cette position, et lorsque *end* est " +"donné, la comparaison s'arrête à celle ci." + +#: ../Doc/library/stdtypes.rst:1984 +msgid "" +"Return a copy of the string with the leading and trailing characters " +"removed. The *chars* argument is a string specifying the set of characters " +"to be removed. If omitted or ``None``, the *chars* argument defaults to " +"removing whitespace. The *chars* argument is not a prefix or suffix; rather, " +"all combinations of its values are stripped::" +msgstr "" +"Donne une copie de la chaîne dont des caractères initiaux et finaux sont " +"supprimés. L'argument *chars* est une chaîne spécifiant le jeu de caractères " +"à supprimer. En cas d'omission ou ``None``, les espaces sont supprimés. " +"L'argument *chars* est pas un préfixe ni un suffixe, toutes les combinaisons " +"de ses valeurs sont supprimées ::" + +#: ../Doc/library/stdtypes.rst:1995 +msgid "" +"The outermost leading and trailing *chars* argument values are stripped from " +"the string. Characters are removed from the leading end until reaching a " +"string character that is not contained in the set of characters in *chars*. " +"A similar action takes place on the trailing end. For example::" +msgstr "" +"Les caractères de *char* sont retirés du début et de la fin de la chaîne. " +"Les caractères sont retirés de la gauche jusqu'à atteindre un caractère ne " +"figurant pas dans le jeu de caractères dans *chars*. La même opération à " +"lieu par la droite. Par exemple ::" + +#: ../Doc/library/stdtypes.rst:2008 +msgid "" +"Return a copy of the string with uppercase characters converted to lowercase " +"and vice versa. Note that it is not necessarily true that ``s.swapcase()." +"swapcase() == s``." +msgstr "" +"Renvoie une copie de la chaîne dont les caractères majuscules sont " +"convertis en minuscules et vice versa. Notez qu'il est pas nécessairement " +"vrai que ``s.swapcase().swapcase() == s``." + +#: ../Doc/library/stdtypes.rst:2015 +msgid "" +"Return a titlecased version of the string where words start with an " +"uppercase character and the remaining characters are lowercase." +msgstr "" +"Renvoie une version en initiales majuscules de la chaîne où les mots " +"commencent par une capitale et les caractères restants sont en minuscules." + +#: ../Doc/library/stdtypes.rst:2023 ../Doc/library/stdtypes.rst:3152 +msgid "" +"The algorithm uses a simple language-independent definition of a word as " +"groups of consecutive letters. The definition works in many contexts but it " +"means that apostrophes in contractions and possessives form word boundaries, " +"which may not be the desired result::" +msgstr "" +"Pour l'algorithme, la notion de mot est définie simplement et indépendamment " +"de la langue comme un groupe de lettres consécutives. La définition " +"fonctionne dans de nombreux contextes, mais cela signifie que les " +"apostrophes (typiquement de la forme possessive en Anglais) forment les " +"limites de mot, ce qui n'est pas toujours le résultat souhaité ::" + +#: ../Doc/library/stdtypes.rst:2031 ../Doc/library/stdtypes.rst:3160 +msgid "" +"A workaround for apostrophes can be constructed using regular expressions::" +msgstr "" +"Une solution pour contourner le problème des apostrophes peut être obtenue " +"en utilisant des expressions rationnelles ::" + +#: ../Doc/library/stdtypes.rst:2046 +msgid "" +"Return a copy of the string in which each character has been mapped through " +"the given translation table. The table must be an object that implements " +"indexing via :meth:`__getitem__`, typically a :term:`mapping` or :term:" +"`sequence`. When indexed by a Unicode ordinal (an integer), the table " +"object can do any of the following: return a Unicode ordinal or a string, to " +"map the character to one or more other characters; return ``None``, to " +"delete the character from the return string; or raise a :exc:`LookupError` " +"exception, to map the character to itself." +msgstr "" +"Renvoie une copie de la chaîne dans laquelle chaque caractère a été changé " +"selon la table de traduction donnée. La table doit être un objet qui " +"implémente l'indexation via :meth:`__getitem__`, typiquement un :term:" +"`mapping` ou une :term:`sequence`. Pour un ordinal Unicode (un entier), la " +"table peut donner soit un ordinal Unicode ou une chaîne pour faire " +"correspondre un ou plusieurs caractère au caractère donné, soit ``None`` " +"pour supprimer le caractère de la chaîne de renvoyée soit lever une " +"exception :exc:`LookupError` pour ne pas changer le caractère." + +#: ../Doc/library/stdtypes.rst:2055 +msgid "" +"You can use :meth:`str.maketrans` to create a translation map from character-" +"to-character mappings in different formats." +msgstr "" +"Vous pouvez utiliser :meth:`str.maketrans` pour créer une table de " +"correspondances de caractères dans différents formats." + +#: ../Doc/library/stdtypes.rst:2058 +msgid "" +"See also the :mod:`codecs` module for a more flexible approach to custom " +"character mappings." +msgstr "" +"Voir aussi le module :mod:`codecs` pour une approche plus souple de " +"changements de caractères par correspondance." + +#: ../Doc/library/stdtypes.rst:2064 +msgid "" +"Return a copy of the string with all the cased characters [4]_ converted to " +"uppercase. Note that ``s.upper().isupper()`` might be ``False`` if ``s`` " +"contains uncased characters or if the Unicode category of the resulting " +"character(s) is not \"Lu\" (Letter, uppercase), but e.g. \"Lt\" (Letter, " +"titlecase)." +msgstr "" +"Renvoie une copie de la chaîne où tous les caractères capitalisables [4]_ " +"ont été convertis en capitales. Notez que ``s.upper().isupper()`` peut être " +"``False`` si ``s`` contient des caractères non capitalisables ou si la " +"catégorie Unicode d'un caractère du résultat n'est pas \"Lu\" (*Letter*, " +"*uppercase*), mais par exemple \"Lt\" (*Letter*, *titlecase*)." + +#: ../Doc/library/stdtypes.rst:2070 +msgid "" +"The uppercasing algorithm used is described in section 3.13 of the Unicode " +"Standard." +msgstr "" +"L'algorithme de capitalisation utilisé est décrit dans la section 3.13 de la " +"norme Unicode." + +#: ../Doc/library/stdtypes.rst:2076 +msgid "" +"Return a copy of the string left filled with ASCII ``'0'`` digits to make a " +"string of length *width*. A leading sign prefix (``'+'``/``'-'``) is handled " +"by inserting the padding *after* the sign character rather than before. The " +"original string is returned if *width* is less than or equal to ``len(s)``." +msgstr "" +"Renvoie une copie de la chaîne remplie par la gauche du chiffre (le " +"caractère ASCII) ``'0'`` pour faire une chaîne de longueur *width*. Un " +"préfixe (``'+'`` / ``'-'``) est permis par l'insertion du caractère de " +"rembourrage *après* le caractère désigne plutôt qu'avant. La chaîne " +"d'origine est renvoyée si *width* est inférieur ou égale à ``len(s)``." + +#: ../Doc/library/stdtypes.rst:2094 +msgid "``printf``-style String Formatting" +msgstr "Formatage de chaines à la ``printf``" + +#: ../Doc/library/stdtypes.rst:2107 +msgid "" +"The formatting operations described here exhibit a variety of quirks that " +"lead to a number of common errors (such as failing to display tuples and " +"dictionaries correctly). Using the newer :ref:`formatted string literals `, the :meth:`str.format` interface, or :ref:`template strings " +"` may help avoid these errors. Each of these alternatives " +"provides their own trade-offs and benefits of simplicity, flexibility, and/" +"or extensibility." +msgstr "" +"Ces opérations de mise en forme contiennent des bizarreries menant à de " +"nombreuses erreurs classiques (telles que ne pas réussir à afficher des " +"*tuples* ou des dictionnaires correctement). Utiliser les :ref:`formatted " +"string literals `, la méthode :meth:`str.format` ou les :ref:" +"`template strings ` aide à éviter ces erreurs. Chacune de " +"ces alternatives apporte son lot d'avantages et inconvénients en matière de " +"simplicité, de flexibilité et/ou de généralisation possible." + +#: ../Doc/library/stdtypes.rst:2115 +msgid "" +"String objects have one unique built-in operation: the ``%`` operator " +"(modulo). This is also known as the string *formatting* or *interpolation* " +"operator. Given ``format % values`` (where *format* is a string), ``%`` " +"conversion specifications in *format* are replaced with zero or more " +"elements of *values*. The effect is similar to using the :c:func:`sprintf` " +"in the C language." +msgstr "" +"Les objets *str* n'exposent qu'une opération : L'opérateur ``%`` (modulo). " +"Aussi connu sous le nom d'opérateur de formatage, ou opérateur " +"d'interpolation. Étant donné ``format % values`` (où *format* est une " +"chaîne), les marqueurs ``%`` de *format* sont remplacés par zéro ou " +"plusieurs éléments de *values*. L'effet est similaire à la fonction :c:func:" +"`sprintf` du langage C." + +#: ../Doc/library/stdtypes.rst:2121 +msgid "" +"If *format* requires a single argument, *values* may be a single non-tuple " +"object. [5]_ Otherwise, *values* must be a tuple with exactly the number of " +"items specified by the format string, or a single mapping object (for " +"example, a dictionary)." +msgstr "" +"Si *format* ne nécessite qu'un seul argument, *values* peut être un objet " +"unique. [5]_ Si *values* est un tuple, il doit contenir exactement le nombre " +"d'éléments spécifiés par la chaîne de format, ou un seul objet de " +"correspondances ( *mapping object*, par exemple, un dictionnaire)." + +#: ../Doc/library/stdtypes.rst:2131 ../Doc/library/stdtypes.rst:3263 +msgid "" +"A conversion specifier contains two or more characters and has the following " +"components, which must occur in this order:" +msgstr "" +"Un indicateur de conversion contient deux ou plusieurs caractères et " +"comporte les éléments suivants, qui doivent apparaître dans cet ordre :" + +#: ../Doc/library/stdtypes.rst:2134 ../Doc/library/stdtypes.rst:3266 +msgid "The ``'%'`` character, which marks the start of the specifier." +msgstr "Le caractère ``'%'``, qui marque le début du marqueur." + +#: ../Doc/library/stdtypes.rst:2136 ../Doc/library/stdtypes.rst:3268 +msgid "" +"Mapping key (optional), consisting of a parenthesised sequence of characters " +"(for example, ``(somename)``)." +msgstr "" +"La clé de correspondance (facultative), composée d'une suite de caractères " +"entre parenthèse (par exemple, ``(somename)``)." + +#: ../Doc/library/stdtypes.rst:2139 ../Doc/library/stdtypes.rst:3271 +msgid "" +"Conversion flags (optional), which affect the result of some conversion " +"types." +msgstr "" +"Des options de conversion, facultatives, qui affectent le résultat de " +"certains types de conversion." + +#: ../Doc/library/stdtypes.rst:2142 ../Doc/library/stdtypes.rst:3274 +msgid "" +"Minimum field width (optional). If specified as an ``'*'`` (asterisk), the " +"actual width is read from the next element of the tuple in *values*, and the " +"object to convert comes after the minimum field width and optional precision." +msgstr "" +"Largeur minimum (facultative). Si elle vaut ``'*'`` (astérisque), la largeur " +"est lue de l'élément suivant du tuple *values*, et l'objet à convertir vient " +"après la largeur de champ minimale et la précision facultative." + +#: ../Doc/library/stdtypes.rst:2146 ../Doc/library/stdtypes.rst:3278 +msgid "" +"Precision (optional), given as a ``'.'`` (dot) followed by the precision. " +"If specified as ``'*'`` (an asterisk), the actual precision is read from the " +"next element of the tuple in *values*, and the value to convert comes after " +"the precision." +msgstr "" +"Précision (facultatif), donnée sous la forme d'un ``'.'`` (point) suivi de " +"la précision. Si la précision est ``'*'`` (un astérisque), la précision est " +"lue à partir de l'élément suivant du tuple *values* et la valeur à convertir " +"vient ensuite." + +#: ../Doc/library/stdtypes.rst:2151 ../Doc/library/stdtypes.rst:3283 +msgid "Length modifier (optional)." +msgstr "Modificateur de longueur (facultatif)." + +#: ../Doc/library/stdtypes.rst:2153 ../Doc/library/stdtypes.rst:3285 +msgid "Conversion type." +msgstr "Type de conversion." + +#: ../Doc/library/stdtypes.rst:2155 +msgid "" +"When the right argument is a dictionary (or other mapping type), then the " +"formats in the string *must* include a parenthesised mapping key into that " +"dictionary inserted immediately after the ``'%'`` character. The mapping key " +"selects the value to be formatted from the mapping. For example:" +msgstr "" +"Lorsque l'argument de droite est un dictionnaire (ou un autre type de " +"*mapping*), les marqueurs dans la chaîne *doivent* inclure une clé présente " +"dans le dictionnaire, écrite entre parenthèses, immédiatement après le " +"caractère ``'%'``. La clé indique quelle valeur du dictionnaire doit être " +"formatée. Par exemple :" + +#: ../Doc/library/stdtypes.rst:2164 ../Doc/library/stdtypes.rst:3296 +msgid "" +"In this case no ``*`` specifiers may occur in a format (since they require a " +"sequential parameter list)." +msgstr "" +"Dans ce cas, aucune ``*`` ne peuvent se trouver dans le format (car ces " +"``*`` nécessitent une liste (accès séquentiel) de paramètres)." + +#: ../Doc/library/stdtypes.rst:2167 ../Doc/library/stdtypes.rst:3299 +msgid "The conversion flag characters are:" +msgstr "Les caractères indicateurs de conversion sont :" + +#: ../Doc/library/stdtypes.rst:2176 ../Doc/library/stdtypes.rst:3308 +msgid "Flag" +msgstr "Option" + +#: ../Doc/library/stdtypes.rst:2178 ../Doc/library/stdtypes.rst:3310 +msgid "``'#'``" +msgstr "``'#'``" + +#: ../Doc/library/stdtypes.rst:2178 ../Doc/library/stdtypes.rst:3310 +msgid "" +"The value conversion will use the \"alternate form\" (where defined below)." +msgstr "La conversion utilisera la \"forme alternative\" (définie ci-dessous)." + +#: ../Doc/library/stdtypes.rst:2181 ../Doc/library/stdtypes.rst:3313 +msgid "``'0'``" +msgstr "``'0'``" + +#: ../Doc/library/stdtypes.rst:2181 ../Doc/library/stdtypes.rst:3313 +msgid "The conversion will be zero padded for numeric values." +msgstr "Les valeurs numériques converties seront complétée de zéros." + +#: ../Doc/library/stdtypes.rst:2183 ../Doc/library/stdtypes.rst:3315 +msgid "``'-'``" +msgstr "``'-'``" + +#: ../Doc/library/stdtypes.rst:2183 ../Doc/library/stdtypes.rst:3315 +msgid "" +"The converted value is left adjusted (overrides the ``'0'`` conversion if " +"both are given)." +msgstr "" +"La valeur convertie est ajustée à gauche (remplace la conversion ``'0'`` si " +"les deux sont données)." + +#: ../Doc/library/stdtypes.rst:2186 ../Doc/library/stdtypes.rst:3318 +msgid "``' '``" +msgstr "``' '``" + +#: ../Doc/library/stdtypes.rst:2186 ../Doc/library/stdtypes.rst:3318 +msgid "" +"(a space) A blank should be left before a positive number (or empty string) " +"produced by a signed conversion." +msgstr "" +"(un espace) Un espace doit être laissé avant un nombre positif (ou chaîne " +"vide) produite par la conversion d'une valeur signée." + +#: ../Doc/library/stdtypes.rst:2189 ../Doc/library/stdtypes.rst:3321 +msgid "``'+'``" +msgstr "``'+'``" + +#: ../Doc/library/stdtypes.rst:2189 ../Doc/library/stdtypes.rst:3321 +msgid "" +"A sign character (``'+'`` or ``'-'``) will precede the conversion (overrides " +"a \"space\" flag)." +msgstr "" +"Un caractère de signe (``'+'`` ou ``'-'``) précède la valeur convertie " +"(remplace le marqueur \"espace\")." + +#: ../Doc/library/stdtypes.rst:2193 ../Doc/library/stdtypes.rst:3325 +msgid "" +"A length modifier (``h``, ``l``, or ``L``) may be present, but is ignored as " +"it is not necessary for Python -- so e.g. ``%ld`` is identical to ``%d``." +msgstr "" +"Un modificateur de longueur (``h``, ``l`` ou ``L``) peut être présent, mais " +"est ignoré car il est pas nécessaire pour Python, donc par exemple ``%ld`` " +"est identique à ``%d``." + +#: ../Doc/library/stdtypes.rst:2196 ../Doc/library/stdtypes.rst:3328 +msgid "The conversion types are:" +msgstr "Les types utilisables dans les conversion sont :" + +#: ../Doc/library/stdtypes.rst:2199 ../Doc/library/stdtypes.rst:3331 +msgid "Conversion" +msgstr "Conversion" + +#: ../Doc/library/stdtypes.rst:2201 ../Doc/library/stdtypes.rst:3333 +msgid "``'d'``" +msgstr "``'d'``" + +#: ../Doc/library/stdtypes.rst:2201 ../Doc/library/stdtypes.rst:2203 +#: ../Doc/library/stdtypes.rst:3333 ../Doc/library/stdtypes.rst:3335 +msgid "Signed integer decimal." +msgstr "Entier décimal signé." + +#: ../Doc/library/stdtypes.rst:2203 ../Doc/library/stdtypes.rst:3335 +msgid "``'i'``" +msgstr "``'i'``" + +#: ../Doc/library/stdtypes.rst:2205 ../Doc/library/stdtypes.rst:3337 +msgid "``'o'``" +msgstr "``'o'``" + +#: ../Doc/library/stdtypes.rst:2205 ../Doc/library/stdtypes.rst:3337 +msgid "Signed octal value." +msgstr "Valeur octale signée." + +#: ../Doc/library/stdtypes.rst:2207 ../Doc/library/stdtypes.rst:3339 +msgid "``'u'``" +msgstr "``'u'``" + +#: ../Doc/library/stdtypes.rst:2207 ../Doc/library/stdtypes.rst:3339 +msgid "Obsolete type -- it is identical to ``'d'``." +msgstr "Type obsolète — identique à ``'d'``." + +#: ../Doc/library/stdtypes.rst:2209 ../Doc/library/stdtypes.rst:3341 +msgid "``'x'``" +msgstr "``'x'``" + +#: ../Doc/library/stdtypes.rst:2209 ../Doc/library/stdtypes.rst:3341 +msgid "Signed hexadecimal (lowercase)." +msgstr "Hexadécimal signé (en minuscules)." + +#: ../Doc/library/stdtypes.rst:2211 ../Doc/library/stdtypes.rst:3343 +msgid "``'X'``" +msgstr "``'X'``" + +#: ../Doc/library/stdtypes.rst:2211 ../Doc/library/stdtypes.rst:3343 +msgid "Signed hexadecimal (uppercase)." +msgstr "Hexadécimal signé (capitales)." + +#: ../Doc/library/stdtypes.rst:2213 ../Doc/library/stdtypes.rst:3345 +msgid "``'e'``" +msgstr "``'e'``" + +#: ../Doc/library/stdtypes.rst:2213 ../Doc/library/stdtypes.rst:3345 +msgid "Floating point exponential format (lowercase)." +msgstr "Format exponentiel pour un *float* (minuscule)." + +#: ../Doc/library/stdtypes.rst:2215 ../Doc/library/stdtypes.rst:3347 +msgid "``'E'``" +msgstr "``'E'``" + +#: ../Doc/library/stdtypes.rst:2215 ../Doc/library/stdtypes.rst:3347 +msgid "Floating point exponential format (uppercase)." +msgstr "Format exponentiel pour un *float* (en capitales)." + +#: ../Doc/library/stdtypes.rst:2217 ../Doc/library/stdtypes.rst:3349 +msgid "``'f'``" +msgstr "``'f'``" + +#: ../Doc/library/stdtypes.rst:2217 ../Doc/library/stdtypes.rst:2219 +#: ../Doc/library/stdtypes.rst:3349 ../Doc/library/stdtypes.rst:3351 +msgid "Floating point decimal format." +msgstr "Format décimal pour un *float*." + +#: ../Doc/library/stdtypes.rst:2219 ../Doc/library/stdtypes.rst:3351 +msgid "``'F'``" +msgstr "``'F'``" + +#: ../Doc/library/stdtypes.rst:2221 ../Doc/library/stdtypes.rst:3353 +msgid "``'g'``" +msgstr "``'g'``" + +#: ../Doc/library/stdtypes.rst:2221 ../Doc/library/stdtypes.rst:3353 +msgid "" +"Floating point format. Uses lowercase exponential format if exponent is less " +"than -4 or not less than precision, decimal format otherwise." +msgstr "" +"Format *float*. Utilise le format exponentiel minuscules si l'exposant est " +"inférieur à ``-4`` ou pas plus petit que la précision, sinon le format " +"décimal." + +#: ../Doc/library/stdtypes.rst:2225 ../Doc/library/stdtypes.rst:3357 +msgid "``'G'``" +msgstr "``'G'``" + +#: ../Doc/library/stdtypes.rst:2225 ../Doc/library/stdtypes.rst:3357 +msgid "" +"Floating point format. Uses uppercase exponential format if exponent is less " +"than -4 or not less than precision, decimal format otherwise." +msgstr "" +"Format *float*. Utilise le format exponentiel en capitales si l'exposant est " +"inférieur à ``-4`` ou pas plus petit que la précision, sinon le format " +"décimal." + +#: ../Doc/library/stdtypes.rst:2229 ../Doc/library/stdtypes.rst:3361 +msgid "``'c'``" +msgstr "``'c'``" + +#: ../Doc/library/stdtypes.rst:2229 +msgid "Single character (accepts integer or single character string)." +msgstr "" +"Un seul caractère (accepte des entiers ou une chaîne d'un seul caractère)." + +#: ../Doc/library/stdtypes.rst:2232 ../Doc/library/stdtypes.rst:3374 +msgid "``'r'``" +msgstr "``'r'``" + +#: ../Doc/library/stdtypes.rst:2232 +msgid "String (converts any Python object using :func:`repr`)." +msgstr "String (convertit n'importe quel objet Python avec :func:`repr`)." + +#: ../Doc/library/stdtypes.rst:2235 ../Doc/library/stdtypes.rst:3368 +msgid "``'s'``" +msgstr "``'s'``" + +#: ../Doc/library/stdtypes.rst:2235 +msgid "String (converts any Python object using :func:`str`)." +msgstr "String (convertit n'importe quel objet Python avec :func:`str`)." + +#: ../Doc/library/stdtypes.rst:2238 ../Doc/library/stdtypes.rst:3371 +msgid "``'a'``" +msgstr "``'a'``" + +#: ../Doc/library/stdtypes.rst:2238 +msgid "String (converts any Python object using :func:`ascii`)." +msgstr "" +"String (convertit n'importe quel objet Python en utilisant :func:`ascii`)." + +#: ../Doc/library/stdtypes.rst:2241 ../Doc/library/stdtypes.rst:3377 +msgid "``'%'``" +msgstr "``'%'``" + +#: ../Doc/library/stdtypes.rst:2241 ../Doc/library/stdtypes.rst:3377 +msgid "No argument is converted, results in a ``'%'`` character in the result." +msgstr "" +"Aucun argument n'est converti, donne un caractère de ``'%'`` dans le " +"résultat." + +#: ../Doc/library/stdtypes.rst:2248 ../Doc/library/stdtypes.rst:3384 +msgid "" +"The alternate form causes a leading octal specifier (``'0o'``) to be " +"inserted before the first digit." +msgstr "" +"La forme alternative entraîne l'insertion d'un préfixe octal (``'0o'``) " +"avant le premier chiffre." + +#: ../Doc/library/stdtypes.rst:2252 ../Doc/library/stdtypes.rst:3388 +msgid "" +"The alternate form causes a leading ``'0x'`` or ``'0X'`` (depending on " +"whether the ``'x'`` or ``'X'`` format was used) to be inserted before the " +"first digit." +msgstr "" +"La forme alternative entraîne l'insertion d'un préfixe ``'0x'`` ou ``'0X'`` " +"(respectivement pour les formats ``'x'`` et ``'X'``) avant le premier " +"chiffre." + +#: ../Doc/library/stdtypes.rst:2256 ../Doc/library/stdtypes.rst:3392 +msgid "" +"The alternate form causes the result to always contain a decimal point, even " +"if no digits follow it." +msgstr "" +"La forme alternative implique la présence d'un point décimal, même si aucun " +"chiffre ne le suit." + +#: ../Doc/library/stdtypes.rst:2259 ../Doc/library/stdtypes.rst:3395 +msgid "" +"The precision determines the number of digits after the decimal point and " +"defaults to 6." +msgstr "" +"La précision détermine le nombre de chiffres après la virgule, 6 par défaut." + +#: ../Doc/library/stdtypes.rst:2263 ../Doc/library/stdtypes.rst:3399 +msgid "" +"The alternate form causes the result to always contain a decimal point, and " +"trailing zeroes are not removed as they would otherwise be." +msgstr "" +"La forme alternative implique la présence d'un point décimal et les zéros " +"non significatifs sont conservés (ils ne le seraient pas autrement)." + +#: ../Doc/library/stdtypes.rst:2266 ../Doc/library/stdtypes.rst:3402 +msgid "" +"The precision determines the number of significant digits before and after " +"the decimal point and defaults to 6." +msgstr "" +"La précision détermine le nombre de chiffres significatifs avant et après la " +"virgule. 6 par défaut." + +#: ../Doc/library/stdtypes.rst:2270 ../Doc/library/stdtypes.rst:3406 +msgid "If precision is ``N``, the output is truncated to ``N`` characters." +msgstr "Si la précision est ``N``, la sortie est tronquée à ``N`` caractères." + +#: ../Doc/library/stdtypes.rst:2273 ../Doc/library/stdtypes.rst:3415 +msgid "See :pep:`237`." +msgstr "Voir la :pep:`237`." + +#: ../Doc/library/stdtypes.rst:2275 +msgid "" +"Since Python strings have an explicit length, ``%s`` conversions do not " +"assume that ``'\\0'`` is the end of the string." +msgstr "" +"Puisque les chaînes Python ont une longueur explicite, les conversions ``" +"%s`` ne considèrent pas ``'\\0'`` comme la fin de la chaîne." + +#: ../Doc/library/stdtypes.rst:2280 +msgid "" +"``%f`` conversions for numbers whose absolute value is over 1e50 are no " +"longer replaced by ``%g`` conversions." +msgstr "" +"Les conversions ``%f`` pour nombres dont la valeur absolue est supérieure à " +"``1e50`` ne sont plus remplacés par des conversions ``%g``." + +#: ../Doc/library/stdtypes.rst:2291 +msgid "" +"Binary Sequence Types --- :class:`bytes`, :class:`bytearray`, :class:" +"`memoryview`" +msgstr "" +"Séquences Binaires --- :class:`bytes`, :class:`bytearray`, :class:" +"`memoryview`" + +#: ../Doc/library/stdtypes.rst:2299 +msgid "" +"The core built-in types for manipulating binary data are :class:`bytes` and :" +"class:`bytearray`. They are supported by :class:`memoryview` which uses the :" +"ref:`buffer protocol ` to access the memory of other binary " +"objects without needing to make a copy." +msgstr "" +"Les principaux types natifs pour manipuler des données binaires sont :class:" +"`bytes` et :class:`bytearray`. Ils sont supportés par :class:`memoryview` " +"qui utilise le :ref:`buffer protocol ` pour accéder à la " +"mémoire d'autres objets binaires sans avoir besoin d'en faire une copie." + +#: ../Doc/library/stdtypes.rst:2304 +msgid "" +"The :mod:`array` module supports efficient storage of basic data types like " +"32-bit integers and IEEE754 double-precision floating values." +msgstr "" +"Le module :mod:`array` permet le stockage efficace de types basiques comme " +"les entiers de 32 bits et les *float* double précision IEEE754." + +#: ../Doc/library/stdtypes.rst:2310 +msgid "Bytes Objects" +msgstr "Objets *bytes*" + +#: ../Doc/library/stdtypes.rst:2314 +msgid "" +"Bytes objects are immutable sequences of single bytes. Since many major " +"binary protocols are based on the ASCII text encoding, bytes objects offer " +"several methods that are only valid when working with ASCII compatible data " +"and are closely related to string objects in a variety of other ways." +msgstr "" +"Les *bytes* sont des séquences immuables d'octets. Comme beaucoup de " +"protocoles binaires utilisent l'ASCII, les objets *bytes* offrent plusieurs " +"méthodes qui ne sont valables que lors de la manipulation de données ASCII " +"et sont étroitement liés aux objets *str* dans bien d'autres aspects." + +#: ../Doc/library/stdtypes.rst:2321 +msgid "" +"Firstly, the syntax for bytes literals is largely the same as that for " +"string literals, except that a ``b`` prefix is added:" +msgstr "" +"Tout d'abord, la syntaxe des *bytes* littéraux est en grande partie la même " +"que pour les chaînes littérales, en dehors du préfixe ``b`` :" + +#: ../Doc/library/stdtypes.rst:2324 +msgid "Single quotes: ``b'still allows embedded \"double\" quotes'``" +msgstr "" +"Les guillemets simples : ``b'autorisent aussi les guillemets \"doubles\"'``" + +#: ../Doc/library/stdtypes.rst:2325 +msgid "Double quotes: ``b\"still allows embedded 'single' quotes\"``." +msgstr "" +"Les guillemets doubles : ``b\"permettent aussi les guillemets 'simples'\"``." + +#: ../Doc/library/stdtypes.rst:2326 +msgid "" +"Triple quoted: ``b'''3 single quotes'''``, ``b\"\"\"3 double quotes\"\"\"``" +msgstr "" +"Les guillemets triples : ``b'''3 single quotes'''``, ``b\"\"\"3 double quotes" +"\"\"\"``" + +#: ../Doc/library/stdtypes.rst:2328 +msgid "" +"Only ASCII characters are permitted in bytes literals (regardless of the " +"declared source code encoding). Any binary values over 127 must be entered " +"into bytes literals using the appropriate escape sequence." +msgstr "" +"Seuls les caractères ASCII sont autorisés dans les littéraux de *bytes* " +"(quel que soit l'encodage du code source déclaré). Toutes les valeurs au " +"delà de 127 doivent être entrés dans littéraux de *bytes* en utilisant une " +"séquence d'échappement appropriée." + +#: ../Doc/library/stdtypes.rst:2332 +msgid "" +"As with string literals, bytes literals may also use a ``r`` prefix to " +"disable processing of escape sequences. See :ref:`strings` for more about " +"the various forms of bytes literal, including supported escape sequences." +msgstr "" +"Comme avec les chaînes littérales, les *bytes* littéraux peuvent également " +"utiliser un préfixe ``r`` pour désactiver le traitement des séquences " +"d'échappement. Voir :ref:`strings` pour plus d'informations sur les " +"différentes formes littérales de *bytes*, y compris les séquences " +"d'échappement supportées." + +#: ../Doc/library/stdtypes.rst:2336 +msgid "" +"While bytes literals and representations are based on ASCII text, bytes " +"objects actually behave like immutable sequences of integers, with each " +"value in the sequence restricted such that ``0 <= x < 256`` (attempts to " +"violate this restriction will trigger :exc:`ValueError`). This is done " +"deliberately to emphasise that while many binary formats include ASCII based " +"elements and can be usefully manipulated with some text-oriented algorithms, " +"this is not generally the case for arbitrary binary data (blindly applying " +"text processing algorithms to binary data formats that are not ASCII " +"compatible will usually lead to data corruption)." +msgstr "" +"Bien que les *bytes* littéraux, et leurs représentation, soient basés sur du " +"texte ASCII, les *bytes* se comportent en fait comme des séquences immuables " +"de nombres entiers, dont les valeurs sont restreintes dans ``0 <= x < 256`` " +"(ne pas respecter cette restriction lève une :exc:`ValueError`. Ceci est " +"fait délibérément afin de souligner que, bien que de nombreux encodages " +"binaires soient compatibles avec l'ASCII, et peuvent être manipulés avec des " +"algorithmes orientés texte, ce n'est généralement pas le cas pour les " +"données binaires arbitraires (appliquer aveuglément des algorithmes de texte " +"sur des données binaires qui ne sont pas compatibles ASCII conduit " +"généralement à leur corruption)." + +#: ../Doc/library/stdtypes.rst:2346 +msgid "" +"In addition to the literal forms, bytes objects can be created in a number " +"of other ways:" +msgstr "" +"En plus des formes littérales, des objets *bytes* peuvent être créés par de " +"nombreux moyens :" + +#: ../Doc/library/stdtypes.rst:2349 +msgid "A zero-filled bytes object of a specified length: ``bytes(10)``" +msgstr "" +"Un objet *bytes* rempli de zéros d'une longueur spécifiée : ``bytes(10)``" + +#: ../Doc/library/stdtypes.rst:2350 +msgid "From an iterable of integers: ``bytes(range(20))``" +msgstr "D'un itérable d'entiers : ``bytes(range(20))``" + +#: ../Doc/library/stdtypes.rst:2351 +msgid "Copying existing binary data via the buffer protocol: ``bytes(obj)``" +msgstr "" +"Copier des données binaires existantes via le *buffer protocol* : " +"``bytes(obj)``" + +#: ../Doc/library/stdtypes.rst:2353 +msgid "Also see the :ref:`bytes ` built-in." +msgstr "Voir aussi la fonction native :ref:`bytes `." + +#: ../Doc/library/stdtypes.rst:2355 +msgid "" +"Since 2 hexadecimal digits correspond precisely to a single byte, " +"hexadecimal numbers are a commonly used format for describing binary data. " +"Accordingly, the bytes type has an additional class method to read data in " +"that format:" +msgstr "" +"Puisque 2 chiffres hexadécimaux correspondent précisément à un seul octet, " +"les nombres hexadécimaux sont un format couramment utilisé pour décrire les " +"données binaires. Par conséquent, le type *bytes* a une méthode de classe " +"pour lire des données dans ce format :" + +#: ../Doc/library/stdtypes.rst:2361 +msgid "" +"This :class:`bytes` class method returns a bytes object, decoding the given " +"string object. The string must contain two hexadecimal digits per byte, " +"with ASCII whitespace being ignored." +msgstr "" +"Cette méthode de la classe :class:`bytes` renvoie un objet *bytes*, décodant " +"la chaîne donnée. La chaîne doit contenir deux chiffres hexadécimaux par " +"octet, les espaces ASCII sont ignorés." + +#: ../Doc/library/stdtypes.rst:2368 +msgid "" +":meth:`bytes.fromhex` now skips all ASCII whitespace in the string, not just " +"spaces." +msgstr "" +":meth:`bytes.fromhex` saute maintenant dans la chaîne tous les caractères " +"ASCII \"blancs\", pas seulement les espaces." + +#: ../Doc/library/stdtypes.rst:2372 +msgid "" +"A reverse conversion function exists to transform a bytes object into its " +"hexadecimal representation." +msgstr "" +"Une fonction de conversion inverse existe pour transformer un objet *bytes* " +"en sa représentation hexadécimale." + +#: ../Doc/library/stdtypes.rst:2377 ../Doc/library/stdtypes.rst:2453 +msgid "" +"Return a string object containing two hexadecimal digits for each byte in " +"the instance." +msgstr "" +"Renvoie une chaîne contenant deux chiffres hexadécimaux pour chaque octet du " +"*byte*." + +#: ../Doc/library/stdtypes.rst:2385 +msgid "" +"Since bytes objects are sequences of integers (akin to a tuple), for a bytes " +"object *b*, ``b[0]`` will be an integer, while ``b[0:1]`` will be a bytes " +"object of length 1. (This contrasts with text strings, where both indexing " +"and slicing will produce a string of length 1)" +msgstr "" +"Comme les objets *bytes* sont des séquences d'entiers (semblables à un " +"tuple), pour une instance de *bytes* *b*, ``b[0]`` sera un entier, tandis " +"que``b[0:1]`` sera un objet *bytes* de longueur 1. (Cela contraste avec les " +"chaînes, où l'indexation et le *slicing* donne une chaîne de longueur 1)" + +#: ../Doc/library/stdtypes.rst:2390 +msgid "" +"The representation of bytes objects uses the literal format (``b'...'``) " +"since it is often more useful than e.g. ``bytes([46, 46, 46])``. You can " +"always convert a bytes object into a list of integers using ``list(b)``." +msgstr "" +"La représentation des *bytes* utilise le format littéral (``b'...'``) car il " +"est souvent plus utile que par exemple ``bytes([46, 46, 46])``. Vous pouvez " +"toujours convertir un *bytes* en liste d'entiers en utilisant ``list(b)``." + +#: ../Doc/library/stdtypes.rst:2395 +msgid "" +"For Python 2.x users: In the Python 2.x series, a variety of implicit " +"conversions between 8-bit strings (the closest thing 2.x offers to a built-" +"in binary data type) and Unicode strings were permitted. This was a " +"backwards compatibility workaround to account for the fact that Python " +"originally only supported 8-bit text, and Unicode text was a later addition. " +"In Python 3.x, those implicit conversions are gone - conversions between 8-" +"bit binary data and Unicode text must be explicit, and bytes and string " +"objects will always compare unequal." +msgstr "" +"Pour les utilisateurs de Python 2.x : Dans la série 2.x de Python, une " +"variété de conversions implicites entre les chaînes 8-bit (la chose la plus " +"proche d'un type natif de données binaires offert par Python 2) et des " +"chaînes Unicode étaient permises. C'était une solution de contournement, " +"pour garder la rétro-compatibilité, considérant que Python ne prenait " +"initialement en charge que le texte 8 bits, le texte Unicode est un ajout " +"ultérieur. En Python 3.x, ces conversions implicites ont disparues, les " +"conversions entre les données binaires et texte Unicode doivent être " +"explicites, et les *bytes* sont toujours différents des chaînes." + +#: ../Doc/library/stdtypes.rst:2408 +msgid "Bytearray Objects" +msgstr "Objets *bytearray*" + +#: ../Doc/library/stdtypes.rst:2412 +msgid "" +":class:`bytearray` objects are a mutable counterpart to :class:`bytes` " +"objects." +msgstr "" +"Les objets :class:`bytearray` sont l'équivalent muable des objets :class:" +"`bytes`." + +#: ../Doc/library/stdtypes.rst:2417 +msgid "" +"There is no dedicated literal syntax for bytearray objects, instead they are " +"always created by calling the constructor:" +msgstr "" +"Il n'y a pas de syntaxe littérale dédiée aux *bytearray*, ils sont toujours " +"créés en appelant le constructeur :" + +#: ../Doc/library/stdtypes.rst:2420 +msgid "Creating an empty instance: ``bytearray()``" +msgstr "Créer une instance vide: ``bytearray()``" + +#: ../Doc/library/stdtypes.rst:2421 +msgid "Creating a zero-filled instance with a given length: ``bytearray(10)``" +msgstr "" +"Créer une instance remplie de zéros d'une longueur donnée : ``bytearray(10)``" + +#: ../Doc/library/stdtypes.rst:2422 +msgid "From an iterable of integers: ``bytearray(range(20))``" +msgstr "À partir d'un itérable d'entiers : ``bytearray(range(20))``" + +#: ../Doc/library/stdtypes.rst:2423 +msgid "" +"Copying existing binary data via the buffer protocol: ``bytearray(b'Hi!')``" +msgstr "" +"Copie des données binaires existantes via le *buffer protocol* : " +"``bytearray(b'Hi!')``" + +#: ../Doc/library/stdtypes.rst:2425 +msgid "" +"As bytearray objects are mutable, they support the :ref:`mutable ` sequence operations in addition to the common bytes and bytearray " +"operations described in :ref:`bytes-methods`." +msgstr "" +"Comme les *bytearray* sont muables, ils prennent en charge les opérations de " +"séquence :ref:`muables ` en plus des opérations communes " +"de *bytes* et *bytearray* décrites dans :ref:`bytes-methods`." + +#: ../Doc/library/stdtypes.rst:2429 +msgid "Also see the :ref:`bytearray ` built-in." +msgstr "Voir aussi la fonction native :ref:`bytearray `." + +#: ../Doc/library/stdtypes.rst:2431 +msgid "" +"Since 2 hexadecimal digits correspond precisely to a single byte, " +"hexadecimal numbers are a commonly used format for describing binary data. " +"Accordingly, the bytearray type has an additional class method to read data " +"in that format:" +msgstr "" +"Puisque 2 chiffres hexadécimaux correspondent précisément à un octet, les " +"nombres hexadécimaux sont un format couramment utilisé pour décrire les " +"données binaires. Par conséquent, le type *bytearray* a une méthode de " +"classe pour lire les données dans ce format :" + +#: ../Doc/library/stdtypes.rst:2437 +msgid "" +"This :class:`bytearray` class method returns bytearray object, decoding the " +"given string object. The string must contain two hexadecimal digits per " +"byte, with ASCII whitespace being ignored." +msgstr "" +"Cette méthode de la classe :class:`bytearray` renvoie un objet *bytearray*, " +"décodant la chaîne donnée. La chaîne doit contenir deux chiffres " +"hexadécimaux par octet, les espaces ASCII sont ignorés." + +#: ../Doc/library/stdtypes.rst:2444 +msgid "" +":meth:`bytearray.fromhex` now skips all ASCII whitespace in the string, not " +"just spaces." +msgstr "" +":meth:`bytearray.fromhex` saute maintenant tous les caractères \"blancs\" " +"ASCII dans la chaîne, pas seulement les espaces." + +#: ../Doc/library/stdtypes.rst:2448 +msgid "" +"A reverse conversion function exists to transform a bytearray object into " +"its hexadecimal representation." +msgstr "" +"Une fonction de conversion inverse existe pour transformer un objet " +"*bytearray* en sa représentation hexadécimale." + +#: ../Doc/library/stdtypes.rst:2461 +msgid "" +"Since bytearray objects are sequences of integers (akin to a list), for a " +"bytearray object *b*, ``b[0]`` will be an integer, while ``b[0:1]`` will be " +"a bytearray object of length 1. (This contrasts with text strings, where " +"both indexing and slicing will produce a string of length 1)" +msgstr "" +"Comme les *bytearray* sont des séquences d'entiers (semblables à une liste), " +"pour un objet *bytearray* *b*, ``b[0]`` sera un entier, tandis que " +"``b[0:1]`` sera un objet *bytearray* de longueur 1. (Ceci contraste avec les " +"chaînes de texte, où l'indexation et le *slicing* produit une chaîne de " +"longueur 1)" + +#: ../Doc/library/stdtypes.rst:2466 +msgid "" +"The representation of bytearray objects uses the bytes literal format " +"(``bytearray(b'...')``) since it is often more useful than e.g. " +"``bytearray([46, 46, 46])``. You can always convert a bytearray object into " +"a list of integers using ``list(b)``." +msgstr "" +"La représentation des objets *bytearray* utilise le format littéral des " +"*bytes* (``bytearray(b'...')``) car il est souvent plus utile que par " +"exemple ``bytearray([46, 46, 46])``. Vous pouvez toujours convertir un objet " +"*bytearray* en une liste de nombres entiers en utilisant ``list(b)``." + +#: ../Doc/library/stdtypes.rst:2475 +msgid "Bytes and Bytearray Operations" +msgstr "Opérations sur les *bytes* et *bytearray*" + +#: ../Doc/library/stdtypes.rst:2480 +msgid "" +"Both bytes and bytearray objects support the :ref:`common ` " +"sequence operations. They interoperate not just with operands of the same " +"type, but with any :term:`bytes-like object`. Due to this flexibility, they " +"can be freely mixed in operations without causing errors. However, the " +"return type of the result may depend on the order of operands." +msgstr "" +"*bytes* et *bytearray* prennent en charge les opérations :ref:`communes " +"` des séquences. Ils interagissent non seulement avec des " +"opérandes de même type, mais aussi avec les :term:`bytes-like object`. En " +"raison de cette flexibilité, ils peuvent être mélangés librement dans des " +"opérations sans provoquer d'erreurs. Cependant, le type du résultat peut " +"dépendre de l'ordre des opérandes." + +#: ../Doc/library/stdtypes.rst:2488 +msgid "" +"The methods on bytes and bytearray objects don't accept strings as their " +"arguments, just as the methods on strings don't accept bytes as their " +"arguments. For example, you have to write::" +msgstr "" +"Les méthodes sur les *bytes* et les *bytearray* n'acceptent pas les chaînes " +"comme arguments, tout comme les méthodes sur les chaînes n'acceptent pas les " +"*bytes* comme arguments. Par exemple, vous devez écrire ::" + +#: ../Doc/library/stdtypes.rst:2495 +msgid "and::" +msgstr "et ::" + +#: ../Doc/library/stdtypes.rst:2500 +msgid "" +"Some bytes and bytearray operations assume the use of ASCII compatible " +"binary formats, and hence should be avoided when working with arbitrary " +"binary data. These restrictions are covered below." +msgstr "" +"Quelques opérations de *bytes* et *bytesarray* supposent l'utilisation de " +"formats binaires compatibles ASCII, et donc doivent être évités lorsque vous " +"travaillez avec des données binaires arbitraires. Ces restrictions sont " +"couvertes ci-dessous." + +#: ../Doc/library/stdtypes.rst:2505 +msgid "" +"Using these ASCII based operations to manipulate binary data that is not " +"stored in an ASCII based format may lead to data corruption." +msgstr "" +"Utiliser ces opérations basées sur l'ASCII pour manipuler des données " +"binaires qui ne sont pas au format ASCII peut les corrompre." + +#: ../Doc/library/stdtypes.rst:2508 +msgid "" +"The following methods on bytes and bytearray objects can be used with " +"arbitrary binary data." +msgstr "" +"Les méthodes suivantes sur les *bytes* et *bytearray* peuvent être utilisées " +"avec des données binaires arbitraires." + +#: ../Doc/library/stdtypes.rst:2514 +msgid "" +"Return the number of non-overlapping occurrences of subsequence *sub* in the " +"range [*start*, *end*]. Optional arguments *start* and *end* are " +"interpreted as in slice notation." +msgstr "" +"Renvoie le nombre d'occurrences qui ne se chevauchent pas de la sous-" +"séquence *sub* dans l'intervalle [*start*, *end*]. Les arguments facultatifs " +"*start* et *end* sont interprétés comme pour un *slice*." + +#: ../Doc/library/stdtypes.rst:2518 ../Doc/library/stdtypes.rst:2565 +#: ../Doc/library/stdtypes.rst:2587 ../Doc/library/stdtypes.rst:2653 +#: ../Doc/library/stdtypes.rst:2666 +msgid "" +"The subsequence to search for may be any :term:`bytes-like object` or an " +"integer in the range 0 to 255." +msgstr "" +"La sous-séquence à rechercher peut être un quelconque :term:`bytes-like " +"object` ou un nombre entier compris entre 0 et 255." + +#: ../Doc/library/stdtypes.rst:2521 ../Doc/library/stdtypes.rst:2577 +#: ../Doc/library/stdtypes.rst:2590 ../Doc/library/stdtypes.rst:2656 +#: ../Doc/library/stdtypes.rst:2669 +msgid "Also accept an integer in the range 0 to 255 as the subsequence." +msgstr "" +"Accepte aussi un nombre entier compris entre 0 et 255 comme sous-séquence." + +#: ../Doc/library/stdtypes.rst:2528 +msgid "" +"Return a string decoded from the given bytes. Default encoding is " +"``'utf-8'``. *errors* may be given to set a different error handling " +"scheme. The default for *errors* is ``'strict'``, meaning that encoding " +"errors raise a :exc:`UnicodeError`. Other possible values are ``'ignore'``, " +"``'replace'`` and any other name registered via :func:`codecs." +"register_error`, see section :ref:`error-handlers`. For a list of possible " +"encodings, see section :ref:`standard-encodings`." +msgstr "" +"Décode les octets donnés, et le renvoie sous forme d'une chaîne de " +"caractères. L'encodage par défaut est ``'utf-8'``. *errors* peut être donné " +"pour changer de système de gestion des erreurs. Sa valeur par défaut est " +"``'strict'``, ce qui signifie que les erreurs d'encodage lèvent une :exc:" +"`UnicodeError`. Les autres valeurs possibles sont ``'ignore'``, " +"``'replace'`` et tout autre nom enregistré via :func:`codecs." +"register_error`, voir la section :ref:`error-handlers`. Pour une liste des " +"encodages possibles, voir la section :ref:`standard-encodings`." + +#: ../Doc/library/stdtypes.rst:2538 +msgid "" +"Passing the *encoding* argument to :class:`str` allows decoding any :term:" +"`bytes-like object` directly, without needing to make a temporary bytes or " +"bytearray object." +msgstr "" +"Passer l'argument *encoding* à :class:`str` permet de décoder tout :term:" +"`bytes-like object` directement, sans avoir besoin d'utiliser un *bytes* ou " +"*bytearray* temporaire." + +#: ../Doc/library/stdtypes.rst:2542 +msgid "Added support for keyword arguments." +msgstr "Gère les arguments nommés." + +#: ../Doc/library/stdtypes.rst:2549 +msgid "" +"Return ``True`` if the binary data ends with the specified *suffix*, " +"otherwise return ``False``. *suffix* can also be a tuple of suffixes to " +"look for. With optional *start*, test beginning at that position. With " +"optional *end*, stop comparing at that position." +msgstr "" +"Donne ``True`` si les octets se terminent par *suffix*, sinon ``False``. " +"*suffix* peut aussi être un tuple de suffixes à rechercher. Avec l'argument " +"optionnel *start*, la recherche se fait à partir de cette position. Avec " +"l'argument optionnel *end*, la comparaison s'arrête à cette position." + +#: ../Doc/library/stdtypes.rst:2554 +msgid "The suffix(es) to search for may be any :term:`bytes-like object`." +msgstr "" +"Les suffixes à rechercher peuvent être n'importe quel :term:`bytes-like " +"object`." + +#: ../Doc/library/stdtypes.rst:2560 +msgid "" +"Return the lowest index in the data where the subsequence *sub* is found, " +"such that *sub* is contained in the slice ``s[start:end]``. Optional " +"arguments *start* and *end* are interpreted as in slice notation. Return " +"``-1`` if *sub* is not found." +msgstr "" +"Donne la première position où le *sub* se trouve dans les données, de telle " +"sorte que *sub* soit contenue dans ``s[start:end]``. Les arguments " +"facultatifs *start* et *end* sont interprétés comme dans la notation des " +"*slices*. Donne ``-1`` si *sub* n'est pas trouvé." + +#: ../Doc/library/stdtypes.rst:2570 +msgid "" +"The :meth:`~bytes.find` method should be used only if you need to know the " +"position of *sub*. To check if *sub* is a substring or not, use the :" +"keyword:`in` operator::" +msgstr "" +"La méthode :meth:`~bytes.find` ne doit être utilisée que si vous avez besoin " +"de connaître la position de *sub*. Pour vérifier si *sub* est présent ou " +"non, utilisez l'opérateur :keyword:`in` ::" + +#: ../Doc/library/stdtypes.rst:2584 +msgid "" +"Like :meth:`~bytes.find`, but raise :exc:`ValueError` when the subsequence " +"is not found." +msgstr "" +"Comme :meth:`~bytes.find`, mais lève une :exc:`ValueError` lorsque la " +"séquence est introuvable." + +#: ../Doc/library/stdtypes.rst:2597 +msgid "" +"Return a bytes or bytearray object which is the concatenation of the binary " +"data sequences in *iterable*. A :exc:`TypeError` will be raised if there " +"are any values in *iterable* that are not :term:`bytes-like objects `, including :class:`str` objects. The separator between " +"elements is the contents of the bytes or bytearray object providing this " +"method." +msgstr "" +"Donne un *bytes* ou *bytearray* qui est la concaténation des séquences de " +"données binaires dans *iterable*. Une exception :exc:`TypeError` est levée " +"si une valeur d'*iterable* n'est pas un :term:`bytes-like objects `, y compris pour des :class:`str`. Le séparateur entre les " +"éléments est le contenu du *bytes* ou du *bytearray* depuis lequel cette " +"méthode est appelée." + +#: ../Doc/library/stdtypes.rst:2608 +msgid "" +"This static method returns a translation table usable for :meth:`bytes." +"translate` that will map each character in *from* into the character at the " +"same position in *to*; *from* and *to* must both be :term:`bytes-like " +"objects ` and have the same length." +msgstr "" +"Cette méthode statique renvoie une table de traduction utilisable par :meth:" +"`bytes.translate` qui permettra de changer chaque caractère de *from* par un " +"caractère à la même position dans *to*; *from* et *to* doivent tous deux " +"être des :term:`bytes-like objects ` et avoir la même " +"longueur." + +#: ../Doc/library/stdtypes.rst:2619 +msgid "" +"Split the sequence at the first occurrence of *sep*, and return a 3-tuple " +"containing the part before the separator, the separator itself or its " +"bytearray copy, and the part after the separator. If the separator is not " +"found, return a 3-tuple containing a copy of the original sequence, followed " +"by two empty bytes or bytearray objects." +msgstr "" +"Divise la séquence à la première occurrence de *sep*, et renvoie un 3-tuple " +"contenant la partie précédant le séparateur, le séparateur lui même (ou sa " +"copie en *byterray*), et la partie suivant le séparateur. Si le séparateur " +"est pas trouvé, le 3-tuple renvoyé contiendra une copie de la séquence " +"d'origine, suivi de deux *bytes* ou *bytearray* vides." + +#: ../Doc/library/stdtypes.rst:2626 ../Doc/library/stdtypes.rst:2683 +msgid "The separator to search for may be any :term:`bytes-like object`." +msgstr "Le séparateur à rechercher peut être tout :term:`bytes-like object`." + +#: ../Doc/library/stdtypes.rst:2632 +msgid "" +"Return a copy of the sequence with all occurrences of subsequence *old* " +"replaced by *new*. If the optional argument *count* is given, only the " +"first *count* occurrences are replaced." +msgstr "" +"Renvoie une copie de la séquence dont toutes les occurrences de la sous-" +"séquence *old* sont remplacées par *new*. Si l'argument optionnel *count* " +"est donné, seules les *count* premières occurrences de sont remplacés." + +#: ../Doc/library/stdtypes.rst:2636 +msgid "" +"The subsequence to search for and its replacement may be any :term:`bytes-" +"like object`." +msgstr "" +"La sous-séquence à rechercher et son remplacement peuvent être n'importe " +"quel :term:`bytes-like object`." + +#: ../Doc/library/stdtypes.rst:2641 ../Doc/library/stdtypes.rst:2734 +#: ../Doc/library/stdtypes.rst:2748 ../Doc/library/stdtypes.rst:2772 +#: ../Doc/library/stdtypes.rst:2786 ../Doc/library/stdtypes.rst:2821 +#: ../Doc/library/stdtypes.rst:2891 ../Doc/library/stdtypes.rst:2909 +#: ../Doc/library/stdtypes.rst:2937 ../Doc/library/stdtypes.rst:3076 +#: ../Doc/library/stdtypes.rst:3131 ../Doc/library/stdtypes.rst:3174 +#: ../Doc/library/stdtypes.rst:3195 ../Doc/library/stdtypes.rst:3217 +#: ../Doc/library/stdtypes.rst:3419 +msgid "" +"The bytearray version of this method does *not* operate in place - it always " +"produces a new object, even if no changes were made." +msgstr "" +"La version *bytearray* de cette méthode *ne modifie pas* les octets, elle " +"produit toujours un nouvel objet, même si aucune modification n'a été " +"effectuée." + +#: ../Doc/library/stdtypes.rst:2648 +msgid "" +"Return the highest index in the sequence where the subsequence *sub* is " +"found, such that *sub* is contained within ``s[start:end]``. Optional " +"arguments *start* and *end* are interpreted as in slice notation. Return " +"``-1`` on failure." +msgstr "" +"Donne la plus grande position de *sub* dans la séquence, de telle sorte que " +"*sub* soit dans ``s[start:end]``. Les arguments facultatifs *start* et *end* " +"sont interprétés comme dans la notation des *slices*. Donne ``-1`` si *sub* " +"n'est pas trouvable." + +#: ../Doc/library/stdtypes.rst:2663 +msgid "" +"Like :meth:`~bytes.rfind` but raises :exc:`ValueError` when the subsequence " +"*sub* is not found." +msgstr "" +"Semblable à :meth:`~bytes.rfind` mais lève une :exc:`ValueError` lorsque " +"*sub* est introuvable." + +#: ../Doc/library/stdtypes.rst:2676 +msgid "" +"Split the sequence at the last occurrence of *sep*, and return a 3-tuple " +"containing the part before the separator, the separator itself or its " +"bytearray copy, and the part after the separator. If the separator is not " +"found, return a 3-tuple containing two empty bytes or bytearray objects, " +"followed by a copy of the original sequence." +msgstr "" +"Coupe la séquence à la dernière occurrence de *sep*, et renvoie un triplet " +"de trois éléments contenant la partie précédent le séparateur, le séparateur " +"lui même (ou sa copie, un *bytearray*), et la partie suivant le séparateur. " +"Si le séparateur n'est pas trouvé, le triplet contiendra deux *bytes* ou " +"*bytesarray* vides suivi d’une copie de la séquence d'origine." + +#: ../Doc/library/stdtypes.rst:2689 +msgid "" +"Return ``True`` if the binary data starts with the specified *prefix*, " +"otherwise return ``False``. *prefix* can also be a tuple of prefixes to " +"look for. With optional *start*, test beginning at that position. With " +"optional *end*, stop comparing at that position." +msgstr "" +"Donne ``True`` si les données binaires commencent par le *prefix* spécifié, " +"sinon ``False``. *prefix* peut aussi être un tuple de préfixes à rechercher. " +"Avec l'argument *start* la recherche commence à cette position. Avec " +"l'argument *end* option, la recherche s'arrête à cette position." + +#: ../Doc/library/stdtypes.rst:2694 +msgid "The prefix(es) to search for may be any :term:`bytes-like object`." +msgstr "" +"Le préfixe(s) à rechercher peuvent être n'importe quel :term:`bytes-like " +"object`." + +#: ../Doc/library/stdtypes.rst:2700 +msgid "" +"Return a copy of the bytes or bytearray object where all bytes occurring in " +"the optional argument *delete* are removed, and the remaining bytes have " +"been mapped through the given translation table, which must be a bytes " +"object of length 256." +msgstr "" +"Renvoie une copie du *bytes* ou *bytearray* dont tous les octets de " +"*delete* sont supprimés, et les octets restants changés par la table de " +"correspondance donnée, qui doit être un objet *bytes* d'une longueur de 256." + +#: ../Doc/library/stdtypes.rst:2705 +msgid "" +"You can use the :func:`bytes.maketrans` method to create a translation table." +msgstr "" +"Vous pouvez utiliser la méthode :func:`bytes.maketrans` pour créer une table " +"de correspondance." + +#: ../Doc/library/stdtypes.rst:2708 +msgid "" +"Set the *table* argument to ``None`` for translations that only delete " +"characters::" +msgstr "" +"Donnez ``None`` comme *table* pour seulement supprimer des caractères ::" + +#: ../Doc/library/stdtypes.rst:2714 +msgid "*delete* is now supported as a keyword argument." +msgstr "*delete* est maintenant accepté comme argument nommé." + +#: ../Doc/library/stdtypes.rst:2718 +msgid "" +"The following methods on bytes and bytearray objects have default behaviours " +"that assume the use of ASCII compatible binary formats, but can still be " +"used with arbitrary binary data by passing appropriate arguments. Note that " +"all of the bytearray methods in this section do *not* operate in place, and " +"instead produce new objects." +msgstr "" +"Les méthodes suivantes sur les *bytes* et *bytearray* supposent par défaut " +"que les données traitées sont compatibles ASCII, mais peuvent toujours être " +"utilisées avec des données binaires, arbitraires, en passant des arguments " +"appropriés. Notez que toutes les méthodes de *bytearray* de cette section " +"ne travaillent jamais sur l'objet lui même, mais renvoient un nouvel objet." + +#: ../Doc/library/stdtypes.rst:2727 +msgid "" +"Return a copy of the object centered in a sequence of length *width*. " +"Padding is done using the specified *fillbyte* (default is an ASCII space). " +"For :class:`bytes` objects, the original sequence is returned if *width* is " +"less than or equal to ``len(s)``." +msgstr "" +"Renvoie une copie de l'objet centrée dans une séquence de longueur *width*. " +"Le remplissage est fait en utilisant *fillbyte* (qui par défaut est un " +"espace ASCII). Pour les objets :class:`bytes`, la séquence initiale est " +"renvoyée si *width* est inférieur ou égal à ``len(s)``." + +#: ../Doc/library/stdtypes.rst:2741 +msgid "" +"Return a copy of the object left justified in a sequence of length *width*. " +"Padding is done using the specified *fillbyte* (default is an ASCII space). " +"For :class:`bytes` objects, the original sequence is returned if *width* is " +"less than or equal to ``len(s)``." +msgstr "" +"Renvoie une copie de l'objet aligné à gauche dans une séquence de longueur " +"*width*. Le remplissage est fait en utilisant *fillbyte* (par défaut un " +"espace ASCII). Pour les objets :class:`bytes`, la séquence initiale est " +"renvoyée si *width* est inférieure ou égale à ``len(s)``." + +#: ../Doc/library/stdtypes.rst:2755 +msgid "" +"Return a copy of the sequence with specified leading bytes removed. The " +"*chars* argument is a binary sequence specifying the set of byte values to " +"be removed - the name refers to the fact this method is usually used with " +"ASCII characters. If omitted or ``None``, the *chars* argument defaults to " +"removing ASCII whitespace. The *chars* argument is not a prefix; rather, " +"all combinations of its values are stripped::" +msgstr "" +"Renvoie une copie de la séquence dont certains préfixes ont été supprimés. " +"L’argument *chars* est une séquence binaire spécifiant le jeu d'octets à " +"supprimer. Ce nom se réfère au fait de cette méthode est généralement " +"utilisée avec des caractères ASCII. En cas d’omission ou ``None``, la valeur " +"par défaut de *chars* permet de supprimer des espaces ASCII. L’argument " +"*chars* n’est pas un préfixe, toutes les combinaisons de ses valeurs sont " +"supprimées ::" + +#: ../Doc/library/stdtypes.rst:2767 ../Doc/library/stdtypes.rst:2816 +#: ../Doc/library/stdtypes.rst:2886 +msgid "" +"The binary sequence of byte values to remove may be any :term:`bytes-like " +"object`." +msgstr "" +"La séquence de valeurs à supprimer peut être tout :term:`bytes-like object`." + +#: ../Doc/library/stdtypes.rst:2779 +msgid "" +"Return a copy of the object right justified in a sequence of length *width*. " +"Padding is done using the specified *fillbyte* (default is an ASCII space). " +"For :class:`bytes` objects, the original sequence is returned if *width* is " +"less than or equal to ``len(s)``." +msgstr "" +"Renvoie une copie de l'objet justifié à droite dans une séquence de longueur " +"*width*. Le remplissage est fait en utilisant le caractère *fillbyte* (par " +"défaut est un espace ASCII). Pour les objets :class:`bytes`, la séquence " +"d'origine est renvoyée si *width* est inférieure ou égale à ``len(s)``." + +#: ../Doc/library/stdtypes.rst:2793 +msgid "" +"Split the binary sequence into subsequences of the same type, using *sep* as " +"the delimiter string. If *maxsplit* is given, at most *maxsplit* splits are " +"done, the *rightmost* ones. If *sep* is not specified or ``None``, any " +"subsequence consisting solely of ASCII whitespace is a separator. Except for " +"splitting from the right, :meth:`rsplit` behaves like :meth:`split` which is " +"described in detail below." +msgstr "" +"Divise la séquence d'octets en sous-séquences du même type, en utilisant " +"*sep* comme séparateur. Si *maxsplit* est donné, c'est le nombre maximum de " +"divisions qui pourront être faites, celles \"à droite\". Si *sep* est pas " +"spécifié ou est ``None``, toute sous-séquence composée uniquement d'espaces " +"ASCII est un séparateur. En dehors du fait qu'il découpe par la droite, :" +"meth:`rsplit` se comporte comme :meth:`split` qui est décrit en détail ci-" +"dessous." + +#: ../Doc/library/stdtypes.rst:2804 +msgid "" +"Return a copy of the sequence with specified trailing bytes removed. The " +"*chars* argument is a binary sequence specifying the set of byte values to " +"be removed - the name refers to the fact this method is usually used with " +"ASCII characters. If omitted or ``None``, the *chars* argument defaults to " +"removing ASCII whitespace. The *chars* argument is not a suffix; rather, " +"all combinations of its values are stripped::" +msgstr "" +"Renvoie une copie de la séquence dont des octets finaux sont supprimés. " +"L'argument *chars* est une séquence d'octets spécifiant le jeu de caractères " +"à supprimer. En cas d'omission ou ``None``, les espaces ASCII sont " +"supprimés. L'argument *chars* n'est pas un suffixe : toutes les combinaisons " +"de ses valeurs sont retirées ::" + +#: ../Doc/library/stdtypes.rst:2828 +msgid "" +"Split the binary sequence into subsequences of the same type, using *sep* as " +"the delimiter string. If *maxsplit* is given and non-negative, at most " +"*maxsplit* splits are done (thus, the list will have at most ``maxsplit+1`` " +"elements). If *maxsplit* is not specified or is ``-1``, then there is no " +"limit on the number of splits (all possible splits are made)." +msgstr "" +"Divise la séquence en sous-séquences du même type, en utilisant *sep* comme " +"séparateur. Si *maxsplit* est donné, c'est le nombre maximum de divisions " +"qui pourront être faites (la liste aura donc au plus ``maxsplit+1`` " +"éléments), Si *maxsplit* n'est pas spécifié ou faut ``-1``, il n'y a aucune " +"limite au nombre de découpes (elles sont toutes effectuées)." + +#: ../Doc/library/stdtypes.rst:2834 +msgid "" +"If *sep* is given, consecutive delimiters are not grouped together and are " +"deemed to delimit empty subsequences (for example, ``b'1,,2'.split(b',')`` " +"returns ``[b'1', b'', b'2']``). The *sep* argument may consist of a " +"multibyte sequence (for example, ``b'1<>2<>3'.split(b'<>')`` returns " +"``[b'1', b'2', b'3']``). Splitting an empty sequence with a specified " +"separator returns ``[b'']`` or ``[bytearray(b'')]`` depending on the type of " +"object being split. The *sep* argument may be any :term:`bytes-like object`." +msgstr "" +"Si *sep* est donné, les délimiteurs consécutifs ne sont pas regroupés et " +"ainsi délimitent ainsi des chaînes vides (par exemple, ``b'1,,2'." +"split(b',')`` donne ``[b'1', b'', b'2']``). L'argument *sep* peut contenir " +"plusieurs sous séquences (par exemple, ``b'1<>2<>3'.split(b'<>')`` renvoie " +"``[b'1', b'2', b'3']``). Découper une chaîne vide en spécifiant *sep* donne " +"``[b'']`` ou ``[bytearray(b'')]`` en fonction du type de l'objet découpé. " +"L'argument *sep* peut être n'importe quel :term:`bytes-like object`." + +#: ../Doc/library/stdtypes.rst:2852 +msgid "" +"If *sep* is not specified or is ``None``, a different splitting algorithm is " +"applied: runs of consecutive ASCII whitespace are regarded as a single " +"separator, and the result will contain no empty strings at the start or end " +"if the sequence has leading or trailing whitespace. Consequently, splitting " +"an empty sequence or a sequence consisting solely of ASCII whitespace " +"without a specified separator returns ``[]``." +msgstr "" +"Si *sep* n'est pas spécifié ou est ``None``, un autre algorithme de découpe " +"est appliqué : les espaces ASCII consécutifs sont considérés comme un seul " +"séparateur, et le résultat ne contiendra pas les chaînes vides de début ou " +"de la fin si la chaîne est préfixée ou suffixé d'espaces. Par conséquent, " +"diviser une séquence vide ou une séquence composée d'espaces ASCII avec un " +"séparateur ``None`` renvoie ``[]``." + +#: ../Doc/library/stdtypes.rst:2873 +msgid "" +"Return a copy of the sequence with specified leading and trailing bytes " +"removed. The *chars* argument is a binary sequence specifying the set of " +"byte values to be removed - the name refers to the fact this method is " +"usually used with ASCII characters. If omitted or ``None``, the *chars* " +"argument defaults to removing ASCII whitespace. The *chars* argument is not " +"a prefix or suffix; rather, all combinations of its values are stripped::" +msgstr "" +"Renvoie une copie de la séquence dont des caractères initiaux et finaux sont " +"supprimés. L'argument *chars* est une séquence spécifiant le jeu d'octets à " +"supprimer, le nom se réfère au fait de cette méthode est généralement " +"utilisée avec des caractères ASCII. En cas d'omission ou ``None``, les " +"espaces ASCII sont supprimés. L'argument *chars* n'est ni un préfixe ni un " +"suffixe, toutes les combinaisons de ses valeurs sont supprimées ::" + +#: ../Doc/library/stdtypes.rst:2895 +msgid "" +"The following methods on bytes and bytearray objects assume the use of ASCII " +"compatible binary formats and should not be applied to arbitrary binary " +"data. Note that all of the bytearray methods in this section do *not* " +"operate in place, and instead produce new objects." +msgstr "" +"Les méthodes suivantes sur les *bytes* et *bytearray* supposent " +"l'utilisation d'un format binaire compatible ASCII, et donc doivent être " +"évités lorsque vous travaillez avec des données binaires arbitraires. Notez " +"que toutes les méthodes de *bytearray* de cette section *ne modifient pas* " +"les octets, ils produisent de nouveaux objets." + +#: ../Doc/library/stdtypes.rst:2903 +msgid "" +"Return a copy of the sequence with each byte interpreted as an ASCII " +"character, and the first byte capitalized and the rest lowercased. Non-ASCII " +"byte values are passed through unchanged." +msgstr "" +"Renvoie une copie de la séquence dont chaque octet est interprété comme un " +"caractère ASCII, le premier octet en capitale et le reste en minuscules. Les " +"octets non ASCII ne sont pas modifiés." + +#: ../Doc/library/stdtypes.rst:2916 +msgid "" +"Return a copy of the sequence where all ASCII tab characters are replaced by " +"one or more ASCII spaces, depending on the current column and the given tab " +"size. Tab positions occur every *tabsize* bytes (default is 8, giving tab " +"positions at columns 0, 8, 16 and so on). To expand the sequence, the " +"current column is set to zero and the sequence is examined byte by byte. If " +"the byte is an ASCII tab character (``b'\\t'``), one or more space " +"characters are inserted in the result until the current column is equal to " +"the next tab position. (The tab character itself is not copied.) If the " +"current byte is an ASCII newline (``b'\\n'``) or carriage return " +"(``b'\\r'``), it is copied and the current column is reset to zero. Any " +"other byte value is copied unchanged and the current column is incremented " +"by one regardless of how the byte value is represented when printed::" +msgstr "" +"Renvoie une copie de la séquence où toutes les tabulations ASCII sont " +"remplacées par un ou plusieurs espaces ASCII, en fonction de la colonne " +"courante et de la taille de tabulation donnée. Les positions des tabulations " +"se trouvent tous les *tabsize* caractères (8 par défaut, ce qui donne les " +"positions de tabulations aux colonnes 0, 8, 16 et ainsi de suite). Pour " +"travailler sur la séquence, la colonne en cours est mise à zéro et la " +"séquence est examinée octets par octets. Si l'octet est une tabulation ASCII " +"(``b'\t'``), un ou plusieurs espaces sont insérés au résultat jusqu’à ce que " +"la colonne courante soit égale à la position de tabulation suivante. (Le " +"caractère tabulation lui-même n’est pas copié.) Si l'octet courant est un " +"saut de ligne ASCII (``b'\n" +"'``) ou un retour chariot (``b'\\r'``), il est copié et la colonne en cours " +"est remise à zéro. Tout autre octet est copié inchangé et la colonne en " +"cours est incrémentée de un indépendamment de la façon dont l'octet est " +"représenté lors de l’affichage ::" + +#: ../Doc/library/stdtypes.rst:2944 +msgid "" +"Return true if all bytes in the sequence are alphabetical ASCII characters " +"or ASCII decimal digits and the sequence is not empty, false otherwise. " +"Alphabetic ASCII characters are those byte values in the sequence " +"``b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'``. ASCII decimal " +"digits are those byte values in the sequence ``b'0123456789'``." +msgstr "" +"Donne ``True`` si tous les caractères de la chaîne sont des caractères ASCII " +"alphabétiques ou chiffres. et que la séquence n'est pas vide, sinon " +"``False``. Les caractères ASCII alphabétiques sont les suivants " +"``b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'`` et les " +"chiffres : ``b'0123456789'``." + +#: ../Doc/library/stdtypes.rst:2961 +msgid "" +"Return true if all bytes in the sequence are alphabetic ASCII characters and " +"the sequence is not empty, false otherwise. Alphabetic ASCII characters are " +"those byte values in the sequence " +"``b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'``." +msgstr "" +"Donne ``True`` si tous les octets dans la séquence sont des caractères " +"alphabétiques ASCII et la que la séquence n'est pas vide, sinon ``False``. " +"Les caractères ASCIIalphabétiques sont : " +"``b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'``." + +#: ../Doc/library/stdtypes.rst:2977 +msgid "" +"Return true if the sequence is empty or all bytes in the sequence are ASCII, " +"false otherwise. ASCII bytes are in the range 0-0x7F." +msgstr "" +"Renvoie ``True`` si la séquence est vide, ou si tous ses octets sont des " +"octets ASCII, renvoie faux dans le cas contraire. Les octets ASCII dans " +"l'intervalle ``0``---``0x7F``." + +#: ../Doc/library/stdtypes.rst:2987 +msgid "" +"Return true if all bytes in the sequence are ASCII decimal digits and the " +"sequence is not empty, false otherwise. ASCII decimal digits are those byte " +"values in the sequence ``b'0123456789'``." +msgstr "" +"Donne ``True`` si tous les octets de la séquence sont des chiffres ASCII et " +"que la séquence n'est pas vide, sinon ``False``. Les chiffres ASCII sont " +"``b'0123456789'``." + +#: ../Doc/library/stdtypes.rst:3002 +msgid "" +"Return true if there is at least one lowercase ASCII character in the " +"sequence and no uppercase ASCII characters, false otherwise." +msgstr "" +"Donne ``True`` s'il y a au moins un caractère ASCII minuscule dans la " +"séquence et aucune capitale, sinon ``False``." + +#: ../Doc/library/stdtypes.rst:3012 ../Doc/library/stdtypes.rst:3054 +#: ../Doc/library/stdtypes.rst:3070 ../Doc/library/stdtypes.rst:3120 +#: ../Doc/library/stdtypes.rst:3189 +msgid "" +"Lowercase ASCII characters are those byte values in the sequence " +"``b'abcdefghijklmnopqrstuvwxyz'``. Uppercase ASCII characters are those byte " +"values in the sequence ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``." +msgstr "" +"Les caractères ASCII minuscules sont ``b'abcdefghijklmnopqrstuvwxyz'``. Les " +"capitales ASCII sont ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``." + +#: ../Doc/library/stdtypes.rst:3020 +msgid "" +"Return true if all bytes in the sequence are ASCII whitespace and the " +"sequence is not empty, false otherwise. ASCII whitespace characters are " +"those byte values in the sequence ``b' \\t\\n\\r\\x0b\\f'`` (space, tab, " +"newline, carriage return, vertical tab, form feed)." +msgstr "" +"Donne ``True`` si tous les octets de la séquence sont des espaces ASCII et " +"que la séquence n'est pas vide, sinon ``False``. Les espèces ASCII sont ``b' " +"\\t\\n\\r\\x0b\\f'`` (espace, tabulation,saut de ligne, retour chariot, " +"tabulation verticale, *form feed*)." + +#: ../Doc/library/stdtypes.rst:3029 +msgid "" +"Return true if the sequence is ASCII titlecase and the sequence is not " +"empty, false otherwise. See :meth:`bytes.title` for more details on the " +"definition of \"titlecase\"." +msgstr "" +"Donne ``True`` si la séquence ASCII est *titlecased*, et qu'elle ne soit pas " +"vide, sinon ``False``. Voir :meth:`bytes.title` pour plus de détails sur la " +"définition de *titlecase*." + +#: ../Doc/library/stdtypes.rst:3044 +msgid "" +"Return true if there is at least one uppercase alphabetic ASCII character in " +"the sequence and no lowercase ASCII characters, false otherwise." +msgstr "" +"Donne ``True`` s'il y a au moins un caractère alphabétique majuscule ASCII " +"dans la séquence et aucun caractères ASCII minuscules, sinon ``False``." + +#: ../Doc/library/stdtypes.rst:3062 +msgid "" +"Return a copy of the sequence with all the uppercase ASCII characters " +"converted to their corresponding lowercase counterpart." +msgstr "" +"Renvoie une copie de la séquence dont tous les caractères ASCII en " +"majuscules sont convertis en leur équivalent en minuscules." + +#: ../Doc/library/stdtypes.rst:3087 +msgid "" +"Return a list of the lines in the binary sequence, breaking at ASCII line " +"boundaries. This method uses the :term:`universal newlines` approach to " +"splitting lines. Line breaks are not included in the resulting list unless " +"*keepends* is given and true." +msgstr "" +"Renvoie une liste des lignes de la séquence d'octets, découpant au niveau " +"des fin de lignes ASCII. Cette méthode utilise l'approche :term:`universal " +"newlines` pour découper les lignes. Les fins de ligne ne sont pas inclus " +"dans la liste des résultats, sauf si *keepends* est donné et vrai." + +#: ../Doc/library/stdtypes.rst:3099 +msgid "" +"Unlike :meth:`~bytes.split` when a delimiter string *sep* is given, this " +"method returns an empty list for the empty string, and a terminal line break " +"does not result in an extra line::" +msgstr "" +"Contrairement à :meth:`~bytes.split` lorsque le délimiteur *sep* est fourni, " +"cette méthode renvoie une liste vide pour la chaîne vide, et un saut de " +"ligne à la fin ne se traduit pas par une ligne supplémentaire ::" + +#: ../Doc/library/stdtypes.rst:3112 +msgid "" +"Return a copy of the sequence with all the lowercase ASCII characters " +"converted to their corresponding uppercase counterpart and vice-versa." +msgstr "" +"Renvoie une copie de la séquence dont tous les caractères ASCII minuscules " +"sont convertis en majuscules et vice-versa." + +#: ../Doc/library/stdtypes.rst:3124 +msgid "" +"Unlike :func:`str.swapcase()`, it is always the case that ``bin.swapcase()." +"swapcase() == bin`` for the binary versions. Case conversions are " +"symmetrical in ASCII, even though that is not generally true for arbitrary " +"Unicode code points." +msgstr "" +"Contrairement à :func:`str.swapcase()`, ``bin.swapcase().swapcase() == " +"bin`` est toujours vrai. Les conversions majuscule/minuscule en ASCII étant " +"toujours symétrique, ce qui n'est pas toujours vrai avec Unicode." + +#: ../Doc/library/stdtypes.rst:3138 +msgid "" +"Return a titlecased version of the binary sequence where words start with an " +"uppercase ASCII character and the remaining characters are lowercase. " +"Uncased byte values are left unmodified." +msgstr "" +"Renvoie une version *titlecased* de la séquence d'octets où les mots " +"commencent par un caractère ASCII majuscule et les caractères restants sont " +"en minuscules. Les octets non capitalisables ne sont pas modifiés." + +#: ../Doc/library/stdtypes.rst:3147 +msgid "" +"Lowercase ASCII characters are those byte values in the sequence " +"``b'abcdefghijklmnopqrstuvwxyz'``. Uppercase ASCII characters are those byte " +"values in the sequence ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. All other byte " +"values are uncased." +msgstr "" +"Les caractères ASCII minuscules sont ``b'abcdefghijklmnopqrstuvwxyz'``. Les " +"caractères ASCII majuscules sont ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. Aucun " +"autre octet n'est capitalisable." + +#: ../Doc/library/stdtypes.rst:3181 +msgid "" +"Return a copy of the sequence with all the lowercase ASCII characters " +"converted to their corresponding uppercase counterpart." +msgstr "" +"Renvoie une copie de la séquence dont tous les caractères ASCII minuscules " +"sont convertis en leur équivalent majuscule." + +#: ../Doc/library/stdtypes.rst:3202 +msgid "" +"Return a copy of the sequence left filled with ASCII ``b'0'`` digits to make " +"a sequence of length *width*. A leading sign prefix (``b'+'``/ ``b'-'``) is " +"handled by inserting the padding *after* the sign character rather than " +"before. For :class:`bytes` objects, the original sequence is returned if " +"*width* is less than or equal to ``len(seq)``." +msgstr "" +"Renvoie une copie de la séquence remplie par la gauche du chiffre ``b'0'`` " +"pour en faire une séquence de longueur *width*. Un préfixe (``b'+'`` / " +"``b'-'``) est permis par l'insertion du caractère de remplissage *après* le " +"caractère de signe plutôt qu'avant. Pour les objets :class:`bytes` la " +"séquence d'origine est renvoyée si *width* est inférieur ou égale à " +"``len(seq)``." + +#: ../Doc/library/stdtypes.rst:3224 +msgid "``printf``-style Bytes Formatting" +msgstr "Formatage de *bytes* a la ``printf``" + +#: ../Doc/library/stdtypes.rst:3241 +msgid "" +"The formatting operations described here exhibit a variety of quirks that " +"lead to a number of common errors (such as failing to display tuples and " +"dictionaries correctly). If the value being printed may be a tuple or " +"dictionary, wrap it in a tuple." +msgstr "" +"Les opérations de formatage décrites ici présentent une variété de " +"bizarreries qui conduisent à un certain nombre d’erreurs classiques " +"(typiquement, échouer à afficher des tuples ou des dictionnaires " +"correctement). Si la valeur à afficher peut être un tuple ou un " +"dictionnaire, mettez le a l'intérieur d'un autre tuple." + +#: ../Doc/library/stdtypes.rst:3246 +msgid "" +"Bytes objects (``bytes``/``bytearray``) have one unique built-in operation: " +"the ``%`` operator (modulo). This is also known as the bytes *formatting* or " +"*interpolation* operator. Given ``format % values`` (where *format* is a " +"bytes object), ``%`` conversion specifications in *format* are replaced with " +"zero or more elements of *values*. The effect is similar to using the :c:" +"func:`sprintf` in the C language." +msgstr "" +"Les objets *bytes* (``bytes`` et ``bytearray``) ont un unique opérateur : " +"l'opérateur ``%`` (modulo). Il est aussi connu sous le nom d'opérateur de " +"mise en forme. Avec ``format % values`` (où *format* est un objet *bytes*), " +"les marqueurs de conversion ``%`` dans *format* sont remplacés par zéro ou " +"plus de *values*. L'effet est similaire à la fonction :c:func:`sprintf` du " +"langage C." + +#: ../Doc/library/stdtypes.rst:3253 +msgid "" +"If *format* requires a single argument, *values* may be a single non-tuple " +"object. [5]_ Otherwise, *values* must be a tuple with exactly the number of " +"items specified by the format bytes object, or a single mapping object (for " +"example, a dictionary)." +msgstr "" +"Si *format* ne nécessite qu'un seul argument, *values* peut être un objet " +"unique. [5]_ Si *values* est un tuple, il doit contenir exactement le nombre " +"d'éléments spécifiés dans le format en *bytes*, ou un seul objet de " +"correspondances ( *mapping object*, par exemple, un dictionnaire)." + +#: ../Doc/library/stdtypes.rst:3287 +msgid "" +"When the right argument is a dictionary (or other mapping type), then the " +"formats in the bytes object *must* include a parenthesised mapping key into " +"that dictionary inserted immediately after the ``'%'`` character. The " +"mapping key selects the value to be formatted from the mapping. For example:" +msgstr "" +"Lorsque l'argument de droite est un dictionnaire (ou un autre type de " +"*mapping*), les marqueurs dans le *bytes* *doivent* inclure une clé présente " +"dans le dictionnaire, écrite entre parenthèses, immédiatement après le " +"caractère ``'%'``. La clé indique quelle valeur du dictionnaire doit être " +"formatée. Par exemple :" + +#: ../Doc/library/stdtypes.rst:3361 +msgid "Single byte (accepts integer or single byte objects)." +msgstr "Octet simple (Accepte un nombre entier ou un seul objet *byte*)." + +#: ../Doc/library/stdtypes.rst:3364 +msgid "``'b'``" +msgstr "``'b'``" + +#: ../Doc/library/stdtypes.rst:3364 +msgid "" +"Bytes (any object that follows the :ref:`buffer protocol ` or " +"has :meth:`__bytes__`)." +msgstr "" +"*Bytes* (tout objet respectant le :ref:`buffer protocol ` ou " +"ayant la méthode :meth:`__bytes__`)." + +#: ../Doc/library/stdtypes.rst:3368 +msgid "" +"``'s'`` is an alias for ``'b'`` and should only be used for Python2/3 code " +"bases." +msgstr "" +"``'s'`` est un alias de ``'b'`` et ne devrait être utilisé que pour du code " +"Python2/3." + +#: ../Doc/library/stdtypes.rst:3371 +msgid "" +"Bytes (converts any Python object using ``repr(obj)." +"encode('ascii','backslashreplace)``)." +msgstr "" +"*Bytes* (convertis n'importe quel objet Python en utilisant ``repr(obj)." +"encode('ascii', 'backslashreplace)``)." + +#: ../Doc/library/stdtypes.rst:3374 +msgid "" +"``'r'`` is an alias for ``'a'`` and should only be used for Python2/3 code " +"bases." +msgstr "" +"``'r'`` est un alias de ``'a'`` et ne devrait être utilise que dans du code " +"Python2/3." + +#: ../Doc/library/stdtypes.rst:3374 +msgid "\\(7)" +msgstr "\\(7)" + +#: ../Doc/library/stdtypes.rst:3409 +msgid "``b'%s'`` is deprecated, but will not be removed during the 3.x series." +msgstr "``b'%s'`` est obsolète, mais ne sera pas retiré des version 3.x." + +#: ../Doc/library/stdtypes.rst:3412 +msgid "``b'%r'`` is deprecated, but will not be removed during the 3.x series." +msgstr "``b'%r'`` est obsolète mais ne sera pas retiré dans Python 3.x." + +#: ../Doc/library/stdtypes.rst:3424 +msgid ":pep:`461` - Adding % formatting to bytes and bytearray" +msgstr ":pep:`461` -- Ajout du formatage via % aux *bytes* et *bytesarray*" + +#: ../Doc/library/stdtypes.rst:3431 +msgid "Memory Views" +msgstr "Vues de mémoires" + +#: ../Doc/library/stdtypes.rst:3433 +msgid "" +":class:`memoryview` objects allow Python code to access the internal data of " +"an object that supports the :ref:`buffer protocol ` without " +"copying." +msgstr "" +"Les :class:`memoryview` permettent a du code Python d'accéder sans copie aux " +"données internes d'un objet prenant en charge le :ref:`buffer protocol " +"`." + +#: ../Doc/library/stdtypes.rst:3439 +msgid "" +"Create a :class:`memoryview` that references *obj*. *obj* must support the " +"buffer protocol. Built-in objects that support the buffer protocol include :" +"class:`bytes` and :class:`bytearray`." +msgstr "" +"Crée une :class:`memoryview` faisant référence à *obj*. *obj* doit supporter " +"le *buffer protocol*. Les objets natifs prenant en charge le *buffer " +"protocol* sont :class:`bytes` et :class:`bytearray`." + +#: ../Doc/library/stdtypes.rst:3443 +msgid "" +"A :class:`memoryview` has the notion of an *element*, which is the atomic " +"memory unit handled by the originating object *obj*. For many simple types " +"such as :class:`bytes` and :class:`bytearray`, an element is a single byte, " +"but other types such as :class:`array.array` may have bigger elements." +msgstr "" +"Une :class:`memoryview` a la notion d'*element*, qui est l'unité de mémoire " +"atomique géré par l'objet *obj* d'origine. Pour de nombreux types simples " +"comme :class:`bytes` et :class:`bytearray`, l'élément est l'octet, mais pour " +"d'autres types tels que :class:`array.array` les éléments peuvent être plus " +"grands." + +#: ../Doc/library/stdtypes.rst:3449 +msgid "" +"``len(view)`` is equal to the length of :class:`~memoryview.tolist`. If " +"``view.ndim = 0``, the length is 1. If ``view.ndim = 1``, the length is " +"equal to the number of elements in the view. For higher dimensions, the " +"length is equal to the length of the nested list representation of the view. " +"The :class:`~memoryview.itemsize` attribute will give you the number of " +"bytes in a single element." +msgstr "" +"``len(view)`` est égal à la grandeur de :class:`~memoryview.tolist`. Si " +"``view.ndim = 0``, la longueur vaut 1. Si ``view.ndim = 1``, la longueur est " +"égale au nombre d'éléments de la vue. Pour les dimensions plus grandes, la " +"longueur est égale à la longueur de la sous-liste représentée par la vue. " +"L'attribut :class:`~memoryview.itemsize` vous donnera la taille en octets " +"d'un élément." + +#: ../Doc/library/stdtypes.rst:3456 +msgid "" +"A :class:`memoryview` supports slicing and indexing to expose its data. One-" +"dimensional slicing will result in a subview::" +msgstr "" +"Une :class:`memoryview` autorise le découpage et l'indiçage de ses données. " +"Découper sur une dimension donnera une sous-vue ::" + +#: ../Doc/library/stdtypes.rst:3469 +msgid "" +"If :class:`~memoryview.format` is one of the native format specifiers from " +"the :mod:`struct` module, indexing with an integer or a tuple of integers is " +"also supported and returns a single *element* with the correct type. One-" +"dimensional memoryviews can be indexed with an integer or a one-integer " +"tuple. Multi-dimensional memoryviews can be indexed with tuples of exactly " +"*ndim* integers where *ndim* is the number of dimensions. Zero-dimensional " +"memoryviews can be indexed with the empty tuple." +msgstr "" +"Si le :class:`~memoryview.format` est un des formats natif du module :mod:" +"`struct`, indexer avec un nombre entier ou un *tuple* de nombres entiers est " +"aussi autorisé et renvoie un seul *element* du bon type. Les *memoryview* à " +"une dimension peuvent être indexées avec un nombre entier ou un *tuple* d'un " +"entier. Les *memoryview* multi-dimensionnelles peuvent être indexées avec " +"des *tuples* d'exactement *ndim* entiers où *ndim* est le nombre de " +"dimensions. Les *memoryviews* à zéro dimension peuvent être indexées avec " +"un *tuple* vide." + +#: ../Doc/library/stdtypes.rst:3478 +msgid "Here is an example with a non-byte format::" +msgstr "Voici un exemple avec un autre format que *byte* ::" + +#: ../Doc/library/stdtypes.rst:3490 +msgid "" +"If the underlying object is writable, the memoryview supports one-" +"dimensional slice assignment. Resizing is not allowed::" +msgstr "" +"Si l'objet sous-jacent est accessible en écriture, la *memoryview* " +"autorisera les assignations de tranches à une dimension. Redimensionner " +"n'est cependant pas autorisé ::" + +#: ../Doc/library/stdtypes.rst:3511 +msgid "" +"One-dimensional memoryviews of hashable (read-only) types with formats 'B', " +"'b' or 'c' are also hashable. The hash is defined as ``hash(m) == hash(m." +"tobytes())``::" +msgstr "" +"Les *memoryviews* à une dimension de types hachables (lecture seule) avec " +"les formats 'B', 'b', ou 'c' sont aussi hachables. La fonction de hachage " +"est définie tel que ``hash(m) == hash(m.tobytes())`` ::" + +#: ../Doc/library/stdtypes.rst:3523 +msgid "" +"One-dimensional memoryviews can now be sliced. One-dimensional memoryviews " +"with formats 'B', 'b' or 'c' are now hashable." +msgstr "" +"Les *memoryviews* à une dimension peuvent aussi être découpées. Les " +"*memoryviews* à une dimension avec les formats 'B', 'b', ou 'c' sont " +"maintenant hachables." + +#: ../Doc/library/stdtypes.rst:3527 +msgid "" +"memoryview is now registered automatically with :class:`collections.abc." +"Sequence`" +msgstr "" +"*memoryview* est maintenant enregistrée automatiquement avec :class:" +"`collections.abc.Sequence`" + +#: ../Doc/library/stdtypes.rst:3531 +msgid "memoryviews can now be indexed with tuple of integers." +msgstr "" +"les *memoryviews* peut maintenant être indexées par un n-uplet d'entiers." + +#: ../Doc/library/stdtypes.rst:3534 +msgid ":class:`memoryview` has several methods:" +msgstr "La :class:`memoryview` dispose de plusieurs méthodes :" + +#: ../Doc/library/stdtypes.rst:3538 +msgid "" +"A memoryview and a :pep:`3118` exporter are equal if their shapes are " +"equivalent and if all corresponding values are equal when the operands' " +"respective format codes are interpreted using :mod:`struct` syntax." +msgstr "" +"Une *memoryview* et un *exporter* de la :pep:`3118` sont égaux si leurs " +"formes sont équivalentes et si toutes les valeurs correspondantes sont " +"égales, le format respectifs des opérandes étant interprétés en utilisant la " +"syntaxe de :mod:`struct`." + +#: ../Doc/library/stdtypes.rst:3542 +msgid "" +"For the subset of :mod:`struct` format strings currently supported by :meth:" +"`tolist`, ``v`` and ``w`` are equal if ``v.tolist() == w.tolist()``::" +msgstr "" +"Pour le sous-ensemble des formats de :mod:`struct` supportés par :meth:" +"`tolist`, ``v`` et ``w`` sont égaux si ``v.tolist() ==w.tolist()`` ::" + +#: ../Doc/library/stdtypes.rst:3561 +msgid "" +"If either format string is not supported by the :mod:`struct` module, then " +"the objects will always compare as unequal (even if the format strings and " +"buffer contents are identical)::" +msgstr "" +"Si l'un des format n'est pas supporté par le module de :mod:`struct`, les " +"objets seront toujours considérés différents (même si les formats et les " +"valeurs contenues sont identiques) ::" + +#: ../Doc/library/stdtypes.rst:3577 +msgid "" +"Note that, as with floating point numbers, ``v is w`` does *not* imply ``v " +"== w`` for memoryview objects." +msgstr "" +"Notez que pour les *memoryview*, comme pour les nombres à virgule flottante, " +"``v is w`` *n'implique pas* ``v == w``." + +#: ../Doc/library/stdtypes.rst:3580 +msgid "" +"Previous versions compared the raw memory disregarding the item format and " +"the logical array structure." +msgstr "" +"Les versions précédentes comparaient la mémoire brute sans tenir compte du " +"format de l'objet ni de sa structure logique." + +#: ../Doc/library/stdtypes.rst:3586 +msgid "" +"Return the data in the buffer as a bytestring. This is equivalent to " +"calling the :class:`bytes` constructor on the memoryview. ::" +msgstr "" +"Renvoie les données du *buffer* sous forme de *bytes*. Cela équivaut à " +"appeler le constructeur :class:`bytes` sur le *memoryview*. ::" + +#: ../Doc/library/stdtypes.rst:3595 +msgid "" +"For non-contiguous arrays the result is equal to the flattened list " +"representation with all elements converted to bytes. :meth:`tobytes` " +"supports all format strings, including those that are not in :mod:`struct` " +"module syntax." +msgstr "" +"Pour les listes non contiguës le résultat est égal à la représentation en " +"liste aplatie dont tous les éléments sont convertis en octets. :meth:" +"`tobytes` supporte toutes les chaînes de format, y compris celles qui ne " +"sont pas connues du module :mod:`struct`." + +#: ../Doc/library/stdtypes.rst:3602 +msgid "" +"Return a string object containing two hexadecimal digits for each byte in " +"the buffer. ::" +msgstr "" +"Renvoie une chaîne contenant deux chiffres hexadécimaux pour chaque octet de " +"la mémoire. ::" + +#: ../Doc/library/stdtypes.rst:3613 +msgid "Return the data in the buffer as a list of elements. ::" +msgstr "" +"Renvoie les données de la mémoire sous la forme d'une liste d'éléments. ::" + +#: ../Doc/library/stdtypes.rst:3623 +msgid "" +":meth:`tolist` now supports all single character native formats in :mod:" +"`struct` module syntax as well as multi-dimensional representations." +msgstr "" +":meth:`tolist` prend désormais en charge tous les formats d'un caractère du " +"module :mod:`struct` ainsi que des représentations multidimensionnelles." + +#: ../Doc/library/stdtypes.rst:3630 +msgid "" +"Release the underlying buffer exposed by the memoryview object. Many " +"objects take special actions when a view is held on them (for example, a :" +"class:`bytearray` would temporarily forbid resizing); therefore, calling " +"release() is handy to remove these restrictions (and free any dangling " +"resources) as soon as possible." +msgstr "" +"Libère le tampon sous-jacent exposé par l'objet *memoryview*. Beaucoup " +"d'objets prennent des initiatives particulières lorsqu'ils sont liés à une " +"vue (par exemple, un :class:`bytearray` refusera temporairement de se faire " +"redimensionner). Par conséquent, appeler *release()* peut être pratique pour " +"lever ces restrictions (et en libérer les ressources liées) aussi tôt que " +"possible." + +#: ../Doc/library/stdtypes.rst:3636 +msgid "" +"After this method has been called, any further operation on the view raises " +"a :class:`ValueError` (except :meth:`release()` itself which can be called " +"multiple times)::" +msgstr "" +"Après le premier appel de cette méthode, toute nouvelle opération sur la " +"*view* lève une :class:`ValueError` (sauf :meth:`release()` elle-même qui " +"peut être appelée plusieurs fois) ::" + +#: ../Doc/library/stdtypes.rst:3647 +msgid "" +"The context management protocol can be used for a similar effect, using the " +"``with`` statement::" +msgstr "" +"Le protocole de gestion de contexte peut être utilisé pour obtenir un effet " +"similaire, via l'instruction ``with`` ::" + +#: ../Doc/library/stdtypes.rst:3663 +msgid "" +"Cast a memoryview to a new format or shape. *shape* defaults to " +"``[byte_length//new_itemsize]``, which means that the result view will be " +"one-dimensional. The return value is a new memoryview, but the buffer itself " +"is not copied. Supported casts are 1D -> C-:term:`contiguous` and C-" +"contiguous -> 1D." +msgstr "" +"Change le format ou la forme d'une *memoryview*. Par défaut *shape* vaut " +"``[byte_length//new_itemsize]``, ce qui signifie que la vue résultante " +"n'aura qu'une dimension. La valeur renvoyée est une nouvelle *memoryview*, " +"mais la mémoire elle-même n'est pas copiée. Les changements supportés sont " +"une dimension vers C-:term:`contiguous` et *C-contiguous* vers une dimension." + +#: ../Doc/library/stdtypes.rst:3669 +msgid "" +"The destination format is restricted to a single element native format in :" +"mod:`struct` syntax. One of the formats must be a byte format ('B', 'b' or " +"'c'). The byte length of the result must be the same as the original length." +msgstr "" +"Le format de destination est limité à un seul élément natif de la syntaxe du " +"module :mod:`struct`. L'un des formats doit être un *byte* ('B', 'b', ou " +"'c'). La longueur du résultat en octets doit être la même que la longueur " +"initiale." + +#: ../Doc/library/stdtypes.rst:3674 +msgid "Cast 1D/long to 1D/unsigned bytes::" +msgstr "Transforme *1D/long* en *1D/unsigned bytes* ::" + +#: ../Doc/library/stdtypes.rst:3697 +msgid "Cast 1D/unsigned bytes to 1D/char::" +msgstr "Transforme *1D/unsigned bytes* en *1D/char* ::" + +#: ../Doc/library/stdtypes.rst:3710 +msgid "Cast 1D/bytes to 3D/ints to 1D/signed char::" +msgstr "Transforme *1D/bytes* en *3D/ints* en *1D/signed char* ::" + +#: ../Doc/library/stdtypes.rst:3736 +msgid "Cast 1D/unsigned char to 2D/unsigned long::" +msgstr "Transforme *1D/unsigned char* en *2D/unsigned long* ::" + +#: ../Doc/library/stdtypes.rst:3750 +msgid "The source format is no longer restricted when casting to a byte view." +msgstr "" +"Le format de la source n'est plus restreint lors de la transformation vers " +"une vue d'octets." + +#: ../Doc/library/stdtypes.rst:3753 +msgid "There are also several readonly attributes available:" +msgstr "Plusieurs attributs en lecture seule sont également disponibles :" + +#: ../Doc/library/stdtypes.rst:3757 +msgid "The underlying object of the memoryview::" +msgstr "L'objet sous-jacent de la *memoryview* ::" + +#: ../Doc/library/stdtypes.rst:3768 +msgid "" +"``nbytes == product(shape) * itemsize == len(m.tobytes())``. This is the " +"amount of space in bytes that the array would use in a contiguous " +"representation. It is not necessarily equal to ``len(m)``::" +msgstr "" +"``nbytes == product(shape) * itemsize == len(m.tobytes())``. Ceci est " +"l'espace que la liste utiliserait en octets, dans une représentation " +"contiguë. Ce n'est pas nécessairement égale à ``len(m)`` ::" + +#: ../Doc/library/stdtypes.rst:3787 +msgid "Multi-dimensional arrays::" +msgstr "Tableaux multidimensionnels ::" + +#: ../Doc/library/stdtypes.rst:3804 +msgid "A bool indicating whether the memory is read only." +msgstr "Un booléen indiquant si la mémoire est en lecture seule." + +#: ../Doc/library/stdtypes.rst:3808 +msgid "" +"A string containing the format (in :mod:`struct` module style) for each " +"element in the view. A memoryview can be created from exporters with " +"arbitrary format strings, but some methods (e.g. :meth:`tolist`) are " +"restricted to native single element formats." +msgstr "" +"Une chaîne contenant le format (dans le style de :mod:`struct`) pour chaque " +"élément de la vue. Une *memoryview* peut être crée depuis des exportateurs " +"de formats arbitraires, mais certaines méthodes (comme :meth:`tolist`) sont " +"limitées aux formats natifs à un seul élément." + +#: ../Doc/library/stdtypes.rst:3813 +msgid "" +"format ``'B'`` is now handled according to the struct module syntax. This " +"means that ``memoryview(b'abc')[0] == b'abc'[0] == 97``." +msgstr "" +"le format ``'B'`` est maintenant traité selon la syntaxe du module *struct*. " +"Cela signifie que ``memoryview(b'abc')[0] == b'abc'[0] == 97``." + +#: ../Doc/library/stdtypes.rst:3819 +msgid "The size in bytes of each element of the memoryview::" +msgstr "La taille en octets de chaque élément d'une *memoryview* ::" + +#: ../Doc/library/stdtypes.rst:3832 +msgid "" +"An integer indicating how many dimensions of a multi-dimensional array the " +"memory represents." +msgstr "" +"Un nombre entier indiquant le nombre de dimensions d'un tableau multi-" +"dimensionnel représenté par la *memoryview*." + +#: ../Doc/library/stdtypes.rst:3837 +msgid "" +"A tuple of integers the length of :attr:`ndim` giving the shape of the " +"memory as an N-dimensional array." +msgstr "" +"Un *tuple* d'entiers de longueur :attr:`ndim` donnant la forme de la " +"*memoryview* sous forme d'un tableau à N dimensions." + +#: ../Doc/library/stdtypes.rst:3840 ../Doc/library/stdtypes.rst:3848 +msgid "An empty tuple instead of ``None`` when ndim = 0." +msgstr "Un *tuple* vide au lieu de ``None`` lorsque *ndim = 0*." + +#: ../Doc/library/stdtypes.rst:3845 +msgid "" +"A tuple of integers the length of :attr:`ndim` giving the size in bytes to " +"access each element for each dimension of the array." +msgstr "" +"Un *tuple* d'entiers de longueur :attr:`ndim` donnant la taille en octets " +"permettant d'accéder à chaque dimensions du tableau." + +#: ../Doc/library/stdtypes.rst:3853 +msgid "Used internally for PIL-style arrays. The value is informational only." +msgstr "" +"Détail de l'implémentation des *PIL-style arrays*. La valeur n'est donné " +"qu'a titre d'information." + +#: ../Doc/library/stdtypes.rst:3857 +msgid "A bool indicating whether the memory is C-:term:`contiguous`." +msgstr "Un booléen indiquant si la mémoire est C-:term:`contiguous`." + +#: ../Doc/library/stdtypes.rst:3863 +msgid "A bool indicating whether the memory is Fortran :term:`contiguous`." +msgstr "Un booléen indiquant si la mémoire est Fortran :term:`contiguous`." + +#: ../Doc/library/stdtypes.rst:3869 +msgid "A bool indicating whether the memory is :term:`contiguous`." +msgstr "Un booléen indiquant si la mémoire est :term:`contiguous`." + +#: ../Doc/library/stdtypes.rst:3877 +msgid "Set Types --- :class:`set`, :class:`frozenset`" +msgstr "Types d'ensembles — :class:`set`, :class:`frozenset`" + +#: ../Doc/library/stdtypes.rst:3881 +msgid "" +"A :dfn:`set` object is an unordered collection of distinct :term:`hashable` " +"objects. Common uses include membership testing, removing duplicates from a " +"sequence, and computing mathematical operations such as intersection, union, " +"difference, and symmetric difference. (For other containers see the built-" +"in :class:`dict`, :class:`list`, and :class:`tuple` classes, and the :mod:" +"`collections` module.)" +msgstr "" +"Un objet :dfn:`set` est une collection non-triée d'objets :term:`hashable` " +"distincts. Les utilisations classiques sont le test d'appartenance, la " +"déduplication d'une séquence, ou le calcul d'opérations mathématiques telles " +"que l'intersection, l'union, la différence, ou la différence symétrique. " +"(Pour les autres conteneurs, voir les classes natives :class:`dict`, :class:" +"`list`, et :class:`tuple`, ainsi que le module :mod:`collections`.)" + +#: ../Doc/library/stdtypes.rst:3888 +msgid "" +"Like other collections, sets support ``x in set``, ``len(set)``, and ``for x " +"in set``. Being an unordered collection, sets do not record element " +"position or order of insertion. Accordingly, sets do not support indexing, " +"slicing, or other sequence-like behavior." +msgstr "" +"Comme pour les autres collections, les ensembles supportent ``x in set``, " +"``len(set)``, et ``for x in set``. En tant que collection non-triée, les " +"ensembles n'enregistrent pas la position des éléments ou leur ordre " +"d'insertion. En conséquence, les *sets* n'autorisent ni l'indexation, ni le " +"découpage, ou tout autre comportement de séquence." + +#: ../Doc/library/stdtypes.rst:3893 +msgid "" +"There are currently two built-in set types, :class:`set` and :class:" +"`frozenset`. The :class:`set` type is mutable --- the contents can be " +"changed using methods like :meth:`~set.add` and :meth:`~set.remove`. Since " +"it is mutable, it has no hash value and cannot be used as either a " +"dictionary key or as an element of another set. The :class:`frozenset` type " +"is immutable and :term:`hashable` --- its contents cannot be altered after " +"it is created; it can therefore be used as a dictionary key or as an element " +"of another set." +msgstr "" +"Il existe actuellement deux types natifs pour les ensembles, :class:`set` " +"et :class:`fronzenset`. Le type :class:`set` est muable --- son contenu peut " +"changer en utilisant des méthodes comme :meth:`~set.add` et :meth:`~set." +"remove`. Puisqu'il est muable, il n'a pas de valeur de hachage et ne peut " +"donc pas être utilisé ni comme clef de dictionnaire ni comme élément d'un " +"autre ensemble. Le type :class:`frozenset` est immuable et :term:`hashable` " +"--- son contenu ne peut être modifié après sa création, il peut ainsi être " +"utilisé comme clef de dictionnaire ou élément d'un autre *set*." + +#: ../Doc/library/stdtypes.rst:3901 +msgid "" +"Non-empty sets (not frozensets) can be created by placing a comma-separated " +"list of elements within braces, for example: ``{'jack', 'sjoerd'}``, in " +"addition to the :class:`set` constructor." +msgstr "" +"Des *sets* (mais pas des *frozensets*) peuvent être crées par une liste " +"d'éléments séparés par des virgules et entre accolades, par exemple : " +"``{'jack', 'sjoerd'}``, en plus du constructeur de la classe :class:`set`." + +#: ../Doc/library/stdtypes.rst:3905 +msgid "The constructors for both classes work the same:" +msgstr "Les constructeurs des deux classes fonctionnent pareil :" + +#: ../Doc/library/stdtypes.rst:3910 +msgid "" +"Return a new set or frozenset object whose elements are taken from " +"*iterable*. The elements of a set must be :term:`hashable`. To represent " +"sets of sets, the inner sets must be :class:`frozenset` objects. If " +"*iterable* is not specified, a new empty set is returned." +msgstr "" +"Renvoie un nouveau *set* ou *frozenset* dont les éléments viennent " +"d'*iterable*. Les éléments d'un *set* doivent être :term:`hashable`. Pour " +"représenter des *sets* de *sets* les *sets* intérieurs doivent être des :" +"class:`frozenset`. Si *iterable* n'est pas spécifié, un nouveau *set* vide " +"est renvoyé." + +#: ../Doc/library/stdtypes.rst:3916 +msgid "" +"Instances of :class:`set` and :class:`frozenset` provide the following " +"operations:" +msgstr "" +"Les instances de :class:`set` et :class:`frozenset` fournissent les " +"opérations suivantes :" + +#: ../Doc/library/stdtypes.rst:3921 +msgid "Return the number of elements in set *s* (cardinality of *s*)." +msgstr "Donne le nombre d'éléments dans le *set* *s* (cardinalité de *s*)." + +#: ../Doc/library/stdtypes.rst:3925 +msgid "Test *x* for membership in *s*." +msgstr "Test d'appartenance de *x* dans *s*." + +#: ../Doc/library/stdtypes.rst:3929 +msgid "Test *x* for non-membership in *s*." +msgstr "Test de non-appartenance de *x* dans *s*." + +#: ../Doc/library/stdtypes.rst:3933 +msgid "" +"Return ``True`` if the set has no elements in common with *other*. Sets are " +"disjoint if and only if their intersection is the empty set." +msgstr "" +"Renvoie ``True`` si l'ensemble n'a aucun élément en commun avec *other*. " +"Les ensembles sont disjoints si et seulement si leurs intersection est un " +"ensemble vide." + +#: ../Doc/library/stdtypes.rst:3939 +msgid "Test whether every element in the set is in *other*." +msgstr "Teste si tous les éléments du set sont dans *other*." + +#: ../Doc/library/stdtypes.rst:3943 +msgid "" +"Test whether the set is a proper subset of *other*, that is, ``set <= other " +"and set != other``." +msgstr "" +"Teste si l'ensemble est un sous-ensemble de *other*, c'est-à-dire, ``set <= " +"other and set != other``." + +#: ../Doc/library/stdtypes.rst:3949 +msgid "Test whether every element in *other* is in the set." +msgstr "Teste si tous les éléments de *other* sont dans l'ensemble." + +#: ../Doc/library/stdtypes.rst:3953 +msgid "" +"Test whether the set is a proper superset of *other*, that is, ``set >= " +"other and set != other``." +msgstr "" +"Teste si l'ensemble est un sur-ensemble de *other*, c'est-à-dire, ``set >= " +"other and set != other``." + +#: ../Doc/library/stdtypes.rst:3959 +msgid "Return a new set with elements from the set and all others." +msgstr "" +"Renvoie un nouvel ensemble dont les éléments viennent de l'ensemble et de " +"tous les autres." + +#: ../Doc/library/stdtypes.rst:3964 +msgid "Return a new set with elements common to the set and all others." +msgstr "" +"Renvoie un nouvel ensemble dont les éléments sont commun à l'ensemble et à " +"tous les autres." + +#: ../Doc/library/stdtypes.rst:3969 +msgid "Return a new set with elements in the set that are not in the others." +msgstr "" +"Renvoie un nouvel ensemble dont les éléments sont dans l'ensemble mais ne " +"sont dans aucun des autres." + +#: ../Doc/library/stdtypes.rst:3974 +msgid "" +"Return a new set with elements in either the set or *other* but not both." +msgstr "" +"Renvoie un nouvel ensemble dont les éléments sont soit dans l'ensemble, soit " +"dans les autres, mais pas dans les deux." + +#: ../Doc/library/stdtypes.rst:3978 +msgid "Return a shallow copy of the set." +msgstr "Renvoie une copie de surface du dictionnaire." + +#: ../Doc/library/stdtypes.rst:3981 +msgid "" +"Note, the non-operator versions of :meth:`union`, :meth:`intersection`, :" +"meth:`difference`, and :meth:`symmetric_difference`, :meth:`issubset`, and :" +"meth:`issuperset` methods will accept any iterable as an argument. In " +"contrast, their operator based counterparts require their arguments to be " +"sets. This precludes error-prone constructions like ``set('abc') & 'cbs'`` " +"in favor of the more readable ``set('abc').intersection('cbs')``." +msgstr "" +"Remarque : Les méthodes :meth:`union`, :meth:`intersection`, :meth:" +"`difference`, et :meth:`symmetric_difference`, :meth:`issubset`, et :meth:" +"`issuperset` acceptent n'importe quel itérable comme argument, contrairement " +"aux opérateurs équivalents qui n'acceptent que des *sets*. Il est donc " +"préférable d'éviter les constructions comme ``set('abc') & 'cbs'``, sources " +"typiques d'erreurs, en faveur d'une construction plus lisible : ``set('abc')." +"intersection('cbs')``." + +#: ../Doc/library/stdtypes.rst:3988 +msgid "" +"Both :class:`set` and :class:`frozenset` support set to set comparisons. Two " +"sets are equal if and only if every element of each set is contained in the " +"other (each is a subset of the other). A set is less than another set if and " +"only if the first set is a proper subset of the second set (is a subset, but " +"is not equal). A set is greater than another set if and only if the first " +"set is a proper superset of the second set (is a superset, but is not equal)." +msgstr "" +"Les classes :class:`set` et :class:`frozenset` supportent les comparaisons " +"d'ensemble à ensemble. Deux ensembles sont égaux si et seulement si chaque " +"éléments de chaque ensemble est contenu dans l'autre (autrement dit que " +"chaque ensemble est un sous-ensemble de l'autre). Un ensemble est plus petit " +"qu'un autre ensemble si et seulement si le premier est un sous-ensemble du " +"second (un sous-ensemble, mais pas égal). Un ensemble est plus grand qu'un " +"autre ensemble si et seulement si le premier est un sur-ensemble du second " +"(est un sur-ensemble mais n'est pas égal)." + +#: ../Doc/library/stdtypes.rst:3995 +msgid "" +"Instances of :class:`set` are compared to instances of :class:`frozenset` " +"based on their members. For example, ``set('abc') == frozenset('abc')`` " +"returns ``True`` and so does ``set('abc') in set([frozenset('abc')])``." +msgstr "" +"Les instances de :class:`set` se comparent aux instances de :class:" +"`frozenset` en fonction de leurs membres. Par exemple, ``set('abc') == " +"frozenset('abc')`` envoie ``True``, ainsi que ``set('abc') in " +"set([frozenset('abc')])``." + +#: ../Doc/library/stdtypes.rst:3999 +msgid "" +"The subset and equality comparisons do not generalize to a total ordering " +"function. For example, any two nonempty disjoint sets are not equal and are " +"not subsets of each other, so *all* of the following return ``False``: " +"``ab``." +msgstr "" +"Les comparaisons de sous-ensemble et d'égalité ne se généralisent pas en une " +"fonction donnant un ordre total. Par exemple, deux ensemble disjoints non " +"vides ne sont ni égaux et ni des sous-ensembles l'un de l'autre, donc toutes " +"ces comparaisons donnent ``False`` : ``ab``." + +#: ../Doc/library/stdtypes.rst:4004 +msgid "" +"Since sets only define partial ordering (subset relationships), the output " +"of the :meth:`list.sort` method is undefined for lists of sets." +msgstr "" +"Puisque les *sets* ne définissent qu'un ordre partiel (par leurs relations " +"de sous-ensembles), la sortie de la méthode :meth:`list.sort` n'est pas " +"définie pour des listes d'ensembles." + +#: ../Doc/library/stdtypes.rst:4007 +msgid "Set elements, like dictionary keys, must be :term:`hashable`." +msgstr "" +"Les éléments des *sets*, comme les clefs de dictionnaires, doivent être :" +"term:`hashable`." + +#: ../Doc/library/stdtypes.rst:4009 +msgid "" +"Binary operations that mix :class:`set` instances with :class:`frozenset` " +"return the type of the first operand. For example: ``frozenset('ab') | " +"set('bc')`` returns an instance of :class:`frozenset`." +msgstr "" +"Les opérations binaires mélangeant des instances de :class:`set` et :class:" +"`frozenset` renvoient le type de la première opérande. Par exemple : " +"``frozenset('ab') | set('bc')`` renvoie une instance de :class:`frozenset`." + +#: ../Doc/library/stdtypes.rst:4013 +msgid "" +"The following table lists operations available for :class:`set` that do not " +"apply to immutable instances of :class:`frozenset`:" +msgstr "" +"La table suivante liste les opérations disponibles pour les :class:`set` " +"mais qui ne s'appliquent pas aux instances de :class:`frozenset` :" + +#: ../Doc/library/stdtypes.rst:4019 +msgid "Update the set, adding elements from all others." +msgstr "Met à jour l'ensemble, ajoutant les éléments de tous les autres." + +#: ../Doc/library/stdtypes.rst:4024 +msgid "Update the set, keeping only elements found in it and all others." +msgstr "" +"Met à jour l'ensemble, ne gardant que les éléments trouvés dans tous les " +"autres." + +#: ../Doc/library/stdtypes.rst:4029 +msgid "Update the set, removing elements found in others." +msgstr "Met à jour l'ensemble, retirant les éléments trouvés dans les autres." + +#: ../Doc/library/stdtypes.rst:4034 +msgid "" +"Update the set, keeping only elements found in either set, but not in both." +msgstr "" +"Met à jour le set, ne gardant que les éléments trouvés dans un des ensembles " +"mais pas dans les deux." + +#: ../Doc/library/stdtypes.rst:4038 +msgid "Add element *elem* to the set." +msgstr "Ajoute l'élément *elem* au set." + +#: ../Doc/library/stdtypes.rst:4042 +msgid "" +"Remove element *elem* from the set. Raises :exc:`KeyError` if *elem* is not " +"contained in the set." +msgstr "" +"Retire l'élément *elem* de l'ensemble. Lève une exception :exc:`KeyError` si " +"*elem* n'est pas dans l'ensemble." + +#: ../Doc/library/stdtypes.rst:4047 +msgid "Remove element *elem* from the set if it is present." +msgstr "Retire l'élément *elem* de l'ensemble s'il y est." + +#: ../Doc/library/stdtypes.rst:4051 +msgid "" +"Remove and return an arbitrary element from the set. Raises :exc:`KeyError` " +"if the set is empty." +msgstr "" +"Retire et renvoie un élément arbitraire de l'ensemble. Lève une exception :" +"exc:`KeyError` si l'ensemble est vide." + +#: ../Doc/library/stdtypes.rst:4056 +msgid "Remove all elements from the set." +msgstr "Supprime tous les éléments du *set*." + +#: ../Doc/library/stdtypes.rst:4059 +msgid "" +"Note, the non-operator versions of the :meth:`update`, :meth:" +"`intersection_update`, :meth:`difference_update`, and :meth:" +"`symmetric_difference_update` methods will accept any iterable as an " +"argument." +msgstr "" +"Notez que les versions non-opérateurs des méthodes :meth:`update`, :meth:" +"`intersection_update`, :meth:`difference_update`, et :meth:" +"`symmetric_difference_update` acceptent n'importe quel itérable comme " +"argument." + +#: ../Doc/library/stdtypes.rst:4064 +msgid "" +"Note, the *elem* argument to the :meth:`__contains__`, :meth:`remove`, and :" +"meth:`discard` methods may be a set. To support searching for an equivalent " +"frozenset, a temporary one is created from *elem*." +msgstr "" +"Notez que l'argument *elem* des méthodes :meth:`__contains__`, :meth:" +"`remove`, et :meth:`discard` peut être un ensemble. Pour supporter la " +"recherche d'un *frozenset* équivalent, un *frozenset* temporaire est crée " +"depuis *elem*." + +#: ../Doc/library/stdtypes.rst:4072 +msgid "Mapping Types --- :class:`dict`" +msgstr "Les types de correspondances — :class:`dict`" + +#: ../Doc/library/stdtypes.rst:4082 +msgid "" +"A :term:`mapping` object maps :term:`hashable` values to arbitrary objects. " +"Mappings are mutable objects. There is currently only one standard mapping " +"type, the :dfn:`dictionary`. (For other containers see the built-in :class:" +"`list`, :class:`set`, and :class:`tuple` classes, and the :mod:`collections` " +"module.)" +msgstr "" +"Un objet :term:`mapping` fait correspondre des valeurs :term:`hashable` à " +"des objets arbitraires. Les *mappings* sont des objets muables. Il n'existe " +"pour le moment qu'un type de *mapping* standard, le :dfn:`dictionary`. " +"(Pour les autres conteneurs, voir les types natifs :class:`list`, :class:" +"`set`, et :class:`tuple`, ainsi que le module :mod:`collections`.)" + +#: ../Doc/library/stdtypes.rst:4088 +msgid "" +"A dictionary's keys are *almost* arbitrary values. Values that are not :" +"term:`hashable`, that is, values containing lists, dictionaries or other " +"mutable types (that are compared by value rather than by object identity) " +"may not be used as keys. Numeric types used for keys obey the normal rules " +"for numeric comparison: if two numbers compare equal (such as ``1`` and " +"``1.0``) then they can be used interchangeably to index the same dictionary " +"entry. (Note however, that since computers store floating-point numbers as " +"approximations it is usually unwise to use them as dictionary keys.)" +msgstr "" +"Les clefs d'un dictionnaire sont *presque* des données arbitraires. Les " +"valeurs qui ne sont pas :term:`hashable`, c'est-à-dire qui contiennent les " +"listes, des dictionnaires ou autre type muable (qui sont comparés par valeur " +"plutôt que par leur identité) ne peuvent pas être utilisées comme clef de " +"dictionnaire. Les types numériques utilisés comme clef obéissent aux règles " +"classiques en ce qui concerne les comparaisons : si deux nombres sont égaux " +"(comme ``1`` et ``1.0``) ils peuvent tous les deux être utilisés pour " +"obtenir la même entrée d'un dictionnaire. (Notez cependant que puisque les " +"ordinateurs stockent les nombres à virgule flottante sous forme " +"d'approximations, il est généralement imprudent de les utiliser comme clefs " +"de dictionnaires.)" + +#: ../Doc/library/stdtypes.rst:4097 +msgid "" +"Dictionaries can be created by placing a comma-separated list of ``key: " +"value`` pairs within braces, for example: ``{'jack': 4098, 'sjoerd': 4127}`` " +"or ``{4098: 'jack', 4127: 'sjoerd'}``, or by the :class:`dict` constructor." +msgstr "" +"Il est possible de créer des dictionnaires en plaçant entre accolades une " +"liste de paires de ``key: value`` séparés par des virgules, par exemple: " +"``{'jack': 4098, 'sjoerd': 4127}`` ou ``{4098: 'jack', 4127: 'sjoerd'}``, ou " +"en utilisant le constructeur de :class:`dict`." + +#: ../Doc/library/stdtypes.rst:4105 +msgid "" +"Return a new dictionary initialized from an optional positional argument and " +"a possibly empty set of keyword arguments." +msgstr "" +"Renvoie un nouveau dictionnaire initialisé depuis un argument positionnel " +"optionnel, et un ensemble (vide ou non) d'arguments par mot clef." + +#: ../Doc/library/stdtypes.rst:4108 +msgid "" +"If no positional argument is given, an empty dictionary is created. If a " +"positional argument is given and it is a mapping object, a dictionary is " +"created with the same key-value pairs as the mapping object. Otherwise, the " +"positional argument must be an :term:`iterable` object. Each item in the " +"iterable must itself be an iterable with exactly two objects. The first " +"object of each item becomes a key in the new dictionary, and the second " +"object the corresponding value. If a key occurs more than once, the last " +"value for that key becomes the corresponding value in the new dictionary." +msgstr "" +"Si aucun argument positionnel n'est donné, un dictionnaire vide est crée. Si " +"un argument positionnel est donné et est un *mapping object*, un " +"dictionnaire est crée avec les mêmes paires de clef-valeurs que le *mapping* " +"donné. Autrement, l'argument positionnel doit être un objet :term:" +"`iterable`. Chaque élément de cet itérable doit lui même être un itérable " +"contenant exactement deux objets. Le premier objet de chaque élément " +"devient la une clef du nouveau dictionnaire, et le second devient sa valeur " +"correspondante. Si une clef apparaît plus d'une fois, la dernière valeur " +"pour cette clef devient la valeur correspondante à cette clef dans le " +"nouveau dictionnaire." + +#: ../Doc/library/stdtypes.rst:4118 +msgid "" +"If keyword arguments are given, the keyword arguments and their values are " +"added to the dictionary created from the positional argument. If a key " +"being added is already present, the value from the keyword argument replaces " +"the value from the positional argument." +msgstr "" +"Si des arguments nommés sont donnés, ils sont ajoutés au dictionnaire créé " +"depuis l'argument positionnel. Si une clef est déjà présente, la valeur de " +"l'argument nommé remplace la valeur reçue par l'argument positionnel." + +#: ../Doc/library/stdtypes.rst:4123 +msgid "" +"To illustrate, the following examples all return a dictionary equal to " +"``{\"one\": 1, \"two\": 2, \"three\": 3}``::" +msgstr "" +"Typiquement, les exemples suivants renvoient tous un dictionnaire valant " +"``{\"one\": 1, \"two\": 2, \"three\": 3}`` ::" + +#: ../Doc/library/stdtypes.rst:4134 +msgid "" +"Providing keyword arguments as in the first example only works for keys that " +"are valid Python identifiers. Otherwise, any valid keys can be used." +msgstr "" +"Fournir les arguments nommés comme dans le premier exemple en fonctionne que " +"pour des clefs qui sont des identifiants valide en Python. Dans les autres " +"cas, toutes les clefs valides sont utilisables." + +#: ../Doc/library/stdtypes.rst:4138 +msgid "" +"These are the operations that dictionaries support (and therefore, custom " +"mapping types should support too):" +msgstr "" +"Voici les opérations gérées par les dictionnaires, (par conséquent, d'autres " +"types de *mapping* peuvent les gérer aussi) :" + +#: ../Doc/library/stdtypes.rst:4143 +msgid "Return the number of items in the dictionary *d*." +msgstr "Renvoie le nombre d'éléments dans le dictionnaire *d*." + +#: ../Doc/library/stdtypes.rst:4147 +msgid "" +"Return the item of *d* with key *key*. Raises a :exc:`KeyError` if *key* is " +"not in the map." +msgstr "" +"Donne l'élément de *d* dont la clef est *key*. Lève une exception :exc:" +"`KeyError` si *key* n'est pas dans le dictionnaire." + +#: ../Doc/library/stdtypes.rst:4152 +msgid "" +"If a subclass of dict defines a method :meth:`__missing__` and *key* is not " +"present, the ``d[key]`` operation calls that method with the key *key* as " +"argument. The ``d[key]`` operation then returns or raises whatever is " +"returned or raised by the ``__missing__(key)`` call. No other operations or " +"methods invoke :meth:`__missing__`. If :meth:`__missing__` is not defined, :" +"exc:`KeyError` is raised. :meth:`__missing__` must be a method; it cannot be " +"an instance variable::" +msgstr "" +"Si une sous-classe de *dict* définit une méthode :meth:`__missing__` et que " +"*key* manque, l'opération ``d[key]`` appelle cette méthode avec la clef " +"*key* en argument. L'opération ``d[key]`` renverra la valeur, ou lèvera " +"l'exception renvoyée ou levée par l'appel à ``__missing__(key)``. Aucune " +"autre opération ni méthode n'appellent :meth:`__missing__`. If :meth:" +"`__missing__` n'est pas définie, une exception :exc:`KeyError` est levée. :" +"meth:`__missing__` doit être une méthode; ça ne peut être une variable " +"d'instance ::" + +#: ../Doc/library/stdtypes.rst:4170 +msgid "" +"The example above shows part of the implementation of :class:`collections." +"Counter`. A different ``__missing__`` method is used by :class:`collections." +"defaultdict`." +msgstr "" +"L'exemple ci-dessus montre une partie de l'implémentation de :class:" +"`collections.Counter`. :class:`collections.defaultdict` implémente aussi " +"``__missing__``." + +#: ../Doc/library/stdtypes.rst:4176 +msgid "Set ``d[key]`` to *value*." +msgstr "Assigne ``d[key]`` à *value*." + +#: ../Doc/library/stdtypes.rst:4180 +msgid "" +"Remove ``d[key]`` from *d*. Raises a :exc:`KeyError` if *key* is not in the " +"map." +msgstr "" +"Supprime ``d[key]`` de *d*. Lève une exception :exc:`KeyError` si *key* " +"n'est pas dans le dictionnaire." + +#: ../Doc/library/stdtypes.rst:4185 +msgid "Return ``True`` if *d* has a key *key*, else ``False``." +msgstr "Renvoie ``True`` si *d* a la clef *key*, sinon ``False``." + +#: ../Doc/library/stdtypes.rst:4189 +msgid "Equivalent to ``not key in d``." +msgstr "Équivalent à ``not key in d``." + +#: ../Doc/library/stdtypes.rst:4193 +msgid "" +"Return an iterator over the keys of the dictionary. This is a shortcut for " +"``iter(d.keys())``." +msgstr "" +"Renvoie un itérateur sur les clefs du dictionnaire. C'est un raccourci pour " +"``iter(d.keys())``." + +#: ../Doc/library/stdtypes.rst:4198 +msgid "Remove all items from the dictionary." +msgstr "Supprime tous les éléments du dictionnaire." + +#: ../Doc/library/stdtypes.rst:4202 +msgid "Return a shallow copy of the dictionary." +msgstr "Renvoie une copie de surface du dictionnaire." + +#: ../Doc/library/stdtypes.rst:4206 +msgid "" +"Create a new dictionary with keys from *iterable* and values set to *value*." +msgstr "" +"Crée un nouveau dictionnaire avec les clefs de *iterable* et les valeurs à " +"*value*." + +#: ../Doc/library/stdtypes.rst:4208 +msgid "" +":meth:`fromkeys` is a class method that returns a new dictionary. *value* " +"defaults to ``None``." +msgstr "" +":meth:`fromkeys` est une *class method* qui renvoie un nouveau dictionnaire. " +"*value* vaut ``None`` par défaut." + +#: ../Doc/library/stdtypes.rst:4213 +msgid "" +"Return the value for *key* if *key* is in the dictionary, else *default*. If " +"*default* is not given, it defaults to ``None``, so that this method never " +"raises a :exc:`KeyError`." +msgstr "" +"Renvoie la valeur de *key* si *key* est dans le dictionnaire, sinon " +"*default*. Si *default* n'est pas donné, il vaut ``None`` par défaut, de " +"manière à ce que cette méthode ne lève jamais :exc:`KeyError`." + +#: ../Doc/library/stdtypes.rst:4219 +msgid "" +"Return a new view of the dictionary's items (``(key, value)`` pairs). See " +"the :ref:`documentation of view objects `." +msgstr "" +"Renvoie une nouvelle vue des éléments du dictionnaire (paires de ``(key, " +"value)``). Voir la :ref:`documentation des vues `." + +#: ../Doc/library/stdtypes.rst:4224 +msgid "" +"Return a new view of the dictionary's keys. See the :ref:`documentation of " +"view objects `." +msgstr "" +"Renvoie une nouvelle vue des clefs du dictionnaire. Voir la :ref:" +"`documentation des vues `." + +#: ../Doc/library/stdtypes.rst:4229 +msgid "" +"If *key* is in the dictionary, remove it and return its value, else return " +"*default*. If *default* is not given and *key* is not in the dictionary, a :" +"exc:`KeyError` is raised." +msgstr "" +"Si *key* est dans le dictionnaire elle est supprimée et sa valeur est " +"renvoyée, sinon renvoie *default*. Si *default* n'est pas donné et que " +"*key* n'est pas dans le dictionnaire, une :exc:`KeyError` est levée." + +#: ../Doc/library/stdtypes.rst:4235 +msgid "" +"Remove and return a ``(key, value)`` pair from the dictionary. Pairs are " +"returned in :abbr:`LIFO (last-in, first-out)` order." +msgstr "" +"Supprime et renvoie une paire ``(key, value)`` du dictionnaire. Les paires " +"sont renvoyées dans un ordre :abbr:`LIFO (dernière entrée, prenière sortie)`." + +#: ../Doc/library/stdtypes.rst:4238 +msgid "" +":meth:`popitem` is useful to destructively iterate over a dictionary, as " +"often used in set algorithms. If the dictionary is empty, calling :meth:" +"`popitem` raises a :exc:`KeyError`." +msgstr "" +":meth:`popitem` est pratique pour itérer un dictionnaire de manière " +"destructive, comme souvent dans les algorithmes sur les ensembles. Si le " +"dictionnaire est vide, appeler :meth:`popitem` lève une :exc:`KeyError`." + +#: ../Doc/library/stdtypes.rst:4242 +msgid "" +"LIFO order is now guaranteed. In prior versions, :meth:`popitem` would " +"return an arbitrary key/value pair." +msgstr "" +"L'ordre \"dernier entré, premier sorti\" (LIFO) est désormais assuré. Dans " +"les versions précédentes, :meth:`popitem` renvoyait une paire clé/valeur " +"arbitraire." + +#: ../Doc/library/stdtypes.rst:4248 +msgid "" +"If *key* is in the dictionary, return its value. If not, insert *key* with " +"a value of *default* and return *default*. *default* defaults to ``None``." +msgstr "" +"Si *key* est dans le dictionnaire, sa valeur est renvoyée. Sinon, insère " +"*key* avec comme valeur *default* et renvoie *default*. *default* vaut " +"``None`` par défaut." + +#: ../Doc/library/stdtypes.rst:4254 +msgid "" +"Update the dictionary with the key/value pairs from *other*, overwriting " +"existing keys. Return ``None``." +msgstr "" +"Met à jour le dictionnaire avec les paires de clef/valeur d'*other*, " +"écrasant les clefs existantes. Renvoie ``None``." + +#: ../Doc/library/stdtypes.rst:4257 +msgid "" +":meth:`update` accepts either another dictionary object or an iterable of " +"key/value pairs (as tuples or other iterables of length two). If keyword " +"arguments are specified, the dictionary is then updated with those key/value " +"pairs: ``d.update(red=1, blue=2)``." +msgstr "" +":meth:`update` accepte aussi bien un autre dictionnaire qu'un itérable de " +"clef/valeurs (sous forme de *tuples* ou autre itérables de longueur deux). " +"Si des paramètres par mot-clef sont donnés, le dictionnaire et ensuite mis à " +"jour avec ces pairs de clef/valeurs : ``d.update(red=1, blue=2)``." + +#: ../Doc/library/stdtypes.rst:4264 +msgid "" +"Return a new view of the dictionary's values. See the :ref:`documentation " +"of view objects `." +msgstr "" +"Renvoie une nouvelle vue des valeurs du dictionnaire. Voir la :ref:" +"`documentation des vues `." + +#: ../Doc/library/stdtypes.rst:4267 +msgid "" +"Dictionaries compare equal if and only if they have the same ``(key, " +"value)`` pairs. Order comparisons ('<', '<=', '>=', '>') raise :exc:" +"`TypeError`." +msgstr "" +"Deux dictionnaires sont égaux si et seulement si ils ont les mêmes paires de " +"clef-valeur. Les comparaisons d'ordre (``<``, ``<=``, ``>=``, ``>``) lèvent " +"une :exc:`TypeError`." + +#: ../Doc/library/stdtypes.rst:4271 +msgid "" +"Dictionaries preserve insertion order. Note that updating a key does not " +"affect the order. Keys added after deletion are inserted at the end. ::" +msgstr "" +"Les dictionnaires préservent l'ordre des insertions. Notez que modifier une " +"clé n'affecte pas l'ordre. Les clés ajoutées après un effacement sont " +"insérées à la fin. ::" + +#: ../Doc/library/stdtypes.rst:4289 +msgid "" +"Dictionary order is guaranteed to be insertion order. This behavior was an " +"implementation detail of CPython from 3.6." +msgstr "" +"L'ordre d'un dictionnaire est toujours l'ordre des insertions. Ce " +"comportement était un détail d'implémentation de CPython depuis la version " +"3.6." + +#: ../Doc/library/stdtypes.rst:4294 +msgid "" +":class:`types.MappingProxyType` can be used to create a read-only view of a :" +"class:`dict`." +msgstr "" +":class:`types.MappingProxyType` peut être utilisé pour créer une vue en " +"lecture seule d'un :class:`dict`." + +#: ../Doc/library/stdtypes.rst:4301 +msgid "Dictionary view objects" +msgstr "Les vues de dictionnaires" + +#: ../Doc/library/stdtypes.rst:4303 +msgid "" +"The objects returned by :meth:`dict.keys`, :meth:`dict.values` and :meth:" +"`dict.items` are *view objects*. They provide a dynamic view on the " +"dictionary's entries, which means that when the dictionary changes, the view " +"reflects these changes." +msgstr "" +"Les objets renvoyés par :meth:`dict.keys`, :meth:`dict.values` et :meth:" +"`dict.items` sont des *vues*. Ils fournissent une vue dynamique des " +"éléments du dictionnaire, ce qui signifie que si le dictionnaire change, la " +"vue reflète ces changements." + +#: ../Doc/library/stdtypes.rst:4308 +msgid "" +"Dictionary views can be iterated over to yield their respective data, and " +"support membership tests:" +msgstr "" +"Les vues de dictionnaires peuvent être itérées et ainsi renvoyer les données " +"du dictionnaire, elle gèrent aussi les tests de présence :" + +#: ../Doc/library/stdtypes.rst:4313 +msgid "Return the number of entries in the dictionary." +msgstr "Renvoie le nombre d'entrées du dictionnaire." + +#: ../Doc/library/stdtypes.rst:4317 +msgid "" +"Return an iterator over the keys, values or items (represented as tuples of " +"``(key, value)``) in the dictionary." +msgstr "" +"Renvoie un itérateur sur les clefs, les valeurs, ou les éléments " +"(représentés par des *tuples* de ``(key, value)`` du dictionnaire." + +#: ../Doc/library/stdtypes.rst:4320 +msgid "" +"Keys and values are iterated over in insertion order. This allows the " +"creation of ``(value, key)`` pairs using :func:`zip`: ``pairs = zip(d." +"values(), d.keys())``. Another way to create the same list is ``pairs = " +"[(v, k) for (k, v) in d.items()]``." +msgstr "" +"Les clefs et les valeurs sont itérées dans l'ordre de leur insertion. Ceci " +"permet la création de paires de ``(key, value)`` en utilisant :func:`zip` : " +"``pairs = zip(d.values(), d.keys())``. Un autre moyen de construire la même " +"liste est ``pairs = [(v, k) for (k, v) in d.items()]``." + +#: ../Doc/library/stdtypes.rst:4325 +msgid "" +"Iterating views while adding or deleting entries in the dictionary may raise " +"a :exc:`RuntimeError` or fail to iterate over all entries." +msgstr "" +"Parcourir des vues tout en ajoutant ou supprimant des entrées dans un " +"dictionnaire peut lever une :exc:`RuntimeError` ou ne pas fournir toutes les " +"entrées." + +#: ../Doc/library/stdtypes.rst:4328 +msgid "Dictionary order is guaranteed to be insertion order." +msgstr "L'ordre d'un dictionnaire est toujours l'ordre des insertions." + +#: ../Doc/library/stdtypes.rst:4333 +msgid "" +"Return ``True`` if *x* is in the underlying dictionary's keys, values or " +"items (in the latter case, *x* should be a ``(key, value)`` tuple)." +msgstr "" +"Renvoie ``True`` si *x* est dans les clefs, les valeurs, ou les éléments du " +"dictionnaire sous-jacent (dans le dernier cas, *x* doit être un *tuple* " +"``(key, value)``)." + +#: ../Doc/library/stdtypes.rst:4337 +msgid "" +"Keys views are set-like since their entries are unique and hashable. If all " +"values are hashable, so that ``(key, value)`` pairs are unique and hashable, " +"then the items view is also set-like. (Values views are not treated as set-" +"like since the entries are generally not unique.) For set-like views, all " +"of the operations defined for the abstract base class :class:`collections." +"abc.Set` are available (for example, ``==``, ``<``, or ``^``)." +msgstr "" +"Les vues de clefs sont semblables à des ensembles puisque leurs entrées sont " +"uniques et hachables. Si toutes les valeurs sont hachables, et qu'ainsi " +"toutes les paires de ``(key, value`` sont uniques et hachables, alors la vue " +"donnée par *items()* est aussi semblable à un ensemble. (Les vues données " +"par *items()* ne sont généralement pas traitées comme des ensembles, car " +"leurs valeurs ne sont généralement pas uniques.) Pour les vues semblables " +"aux ensembles, toutes les opérations définies dans la classe de base " +"abstraite :class:`collections.abc.Set` sont disponibles (comme ``==``, " +"``<``, ou ``^``)." + +#: ../Doc/library/stdtypes.rst:4344 +msgid "An example of dictionary view usage::" +msgstr "Exemple d'utilisation de vue de dictionnaire ::" + +#: ../Doc/library/stdtypes.rst:4379 +msgid "Context Manager Types" +msgstr "Le type gestionnaire de contexte" + +#: ../Doc/library/stdtypes.rst:4386 +msgid "" +"Python's :keyword:`with` statement supports the concept of a runtime context " +"defined by a context manager. This is implemented using a pair of methods " +"that allow user-defined classes to define a runtime context that is entered " +"before the statement body is executed and exited when the statement ends:" +msgstr "" +"L'instruction :keyword:`with` permet l'existence de contextes définis à " +"l'exécution par des gestionnaires de contextes. C'est implémenté via une " +"paire de méthodes permettant de définir un contexte, à l'exécution, qui est " +"entré avant l'exécution du corps de l'instruction, et qui est quitté lorsque " +"l'instruction se termine :" + +#: ../Doc/library/stdtypes.rst:4394 +msgid "" +"Enter the runtime context and return either this object or another object " +"related to the runtime context. The value returned by this method is bound " +"to the identifier in the :keyword:`!as` clause of :keyword:`with` statements " +"using this context manager." +msgstr "" +"Entre dans le contexte à l'exécution, soit se renvoyant lui-même, soit en " +"renvoyant un autre objet en lien avec ce contexte. La valeur renvoyée par " +"cette méthode est liée à l'identifiant donné au :keyword:`!as` de " +"l'instruction :keyword:`with` utilisant ce gestionnaire de contexte." + +#: ../Doc/library/stdtypes.rst:4399 +msgid "" +"An example of a context manager that returns itself is a :term:`file " +"object`. File objects return themselves from __enter__() to allow :func:" +"`open` to be used as the context expression in a :keyword:`with` statement." +msgstr "" +"Un exemple de gestionnaire de contexte se renvoyant lui-même est :term:`file " +"object`. Les *file objects* se renvoient eux-même depuis ``__enter__()`` et " +"autorisent :func:`open` à être utilisé comme contexte à une instruction :" +"keyword:`with`." + +#: ../Doc/library/stdtypes.rst:4403 +msgid "" +"An example of a context manager that returns a related object is the one " +"returned by :func:`decimal.localcontext`. These managers set the active " +"decimal context to a copy of the original decimal context and then return " +"the copy. This allows changes to be made to the current decimal context in " +"the body of the :keyword:`with` statement without affecting code outside " +"the :keyword:`!with` statement." +msgstr "" +"Un exemple de gestionnaire de contexte renvoyant un objet connexe est celui " +"renvoyé par :func:`decimal.localcontext`. Ces gestionnaires remplacent le " +"contexte décimal courant par une copie de l'original, copie qui est " +"renvoyée. Ça permet de changer le contexte courant dans le corps du :keyword:" +"`with` sans affecter le code en dehors de l'instruction :keyword:`!with`." + +#: ../Doc/library/stdtypes.rst:4413 +msgid "" +"Exit the runtime context and return a Boolean flag indicating if any " +"exception that occurred should be suppressed. If an exception occurred while " +"executing the body of the :keyword:`with` statement, the arguments contain " +"the exception type, value and traceback information. Otherwise, all three " +"arguments are ``None``." +msgstr "" +"Sort du contexte et renvoie un booléen indiquant si une exception survenue " +"doit être supprimée. Si une exception est survenue lors de l'exécution du " +"corps de l'instruction :keyword:`with`, les arguments contiennent le type de " +"l'exception, sa valeur, et la trace de la pile (*traceback*). Sinon les " +"trois arguments valent ``None``." + +#: ../Doc/library/stdtypes.rst:4418 +msgid "" +"Returning a true value from this method will cause the :keyword:`with` " +"statement to suppress the exception and continue execution with the " +"statement immediately following the :keyword:`!with` statement. Otherwise " +"the exception continues propagating after this method has finished " +"executing. Exceptions that occur during execution of this method will " +"replace any exception that occurred in the body of the :keyword:`!with` " +"statement." +msgstr "" +"L'instruction :keyword:`with` inhibera l'exception si cette méthode renvoie " +"une valeur vraie, l'exécution continuera ainsi à l'instruction suivant " +"immédiatement l'instruction :keyword:`!with`. Sinon, l'exception continuera " +"de se propager après la fin de cette méthode. Les exceptions se produisant " +"pendant l'exécution de cette méthode remplaceront toute exception qui s'est " +"produite dans le corps du :keyword:`!with`." + +#: ../Doc/library/stdtypes.rst:4425 +msgid "" +"The exception passed in should never be reraised explicitly - instead, this " +"method should return a false value to indicate that the method completed " +"successfully and does not want to suppress the raised exception. This allows " +"context management code to easily detect whether or not an :meth:`__exit__` " +"method has actually failed." +msgstr "" +"L'exception reçue ne doit jamais être relancée explicitement, cette méthode " +"devrait plutôt renvoyer une valeur fausse pour indiquer que son exécution " +"s'est terminée avec succès et qu'elle ne veut pas supprimer l'exception. " +"Ceci permet au code de gestion du contexte de comprendre si une méthode :" +"meth:`__exit__` a échoué." + +#: ../Doc/library/stdtypes.rst:4431 +msgid "" +"Python defines several context managers to support easy thread " +"synchronisation, prompt closure of files or other objects, and simpler " +"manipulation of the active decimal arithmetic context. The specific types " +"are not treated specially beyond their implementation of the context " +"management protocol. See the :mod:`contextlib` module for some examples." +msgstr "" +"Python définit plusieurs gestionnaires de contexte pour faciliter la " +"synchronisation des fils d'exécution, la fermeture des fichiers ou d'autres " +"objets, et la configuration du contexte arithmétique décimal. Ces types " +"spécifiques ne sont pas traités différemment, ils respectent simplement le " +"protocole de gestion du contexte. Voir les exemples dans la documentation du " +"module :mod:`contextlib`." + +#: ../Doc/library/stdtypes.rst:4437 +msgid "" +"Python's :term:`generator`\\s and the :class:`contextlib.contextmanager` " +"decorator provide a convenient way to implement these protocols. If a " +"generator function is decorated with the :class:`contextlib.contextmanager` " +"decorator, it will return a context manager implementing the necessary :meth:" +"`__enter__` and :meth:`__exit__` methods, rather than the iterator produced " +"by an undecorated generator function." +msgstr "" +"Les :term:`generator`\\s de Python et le décorateur :class:`contextlib." +"contextmanager` permettent d'implémenter simplement ces protocoles. Si un " +"générateur est décoré avec :class:`contextlib. contextmanager`, elle " +"renverra un gestionnaire de contexte implémentant les méthodes :meth:" +"`__enter__` et :meth:`__exit__`, plutôt que l'itérateur produit par un " +"générateur non décoré." + +#: ../Doc/library/stdtypes.rst:4444 +msgid "" +"Note that there is no specific slot for any of these methods in the type " +"structure for Python objects in the Python/C API. Extension types wanting to " +"define these methods must provide them as a normal Python accessible method. " +"Compared to the overhead of setting up the runtime context, the overhead of " +"a single class dictionary lookup is negligible." +msgstr "" +"Notez qu'il n'y a pas d'emplacement spécifique pour ces méthodes dans la " +"structure de type pour les objets Python dans l'API Python/C. Les types " +"souhaitant définir ces méthodes doivent les fournir comme une méthode " +"accessible en Python. Comparé au coût de la mise en place du contexte " +"d'exécution, les le coût d'un accès au dictionnaire d'une classe unique est " +"négligeable." + +#: ../Doc/library/stdtypes.rst:4454 +msgid "Other Built-in Types" +msgstr "Autres types natifs" + +#: ../Doc/library/stdtypes.rst:4456 +msgid "" +"The interpreter supports several other kinds of objects. Most of these " +"support only one or two operations." +msgstr "" +"L'interpréteur gère aussi d'autres types d'objets, la plupart ne supportant " +"cependant qu'une ou deux opérations." + +#: ../Doc/library/stdtypes.rst:4463 +msgid "Modules" +msgstr "Modules" + +#: ../Doc/library/stdtypes.rst:4465 +msgid "" +"The only special operation on a module is attribute access: ``m.name``, " +"where *m* is a module and *name* accesses a name defined in *m*'s symbol " +"table. Module attributes can be assigned to. (Note that the :keyword:" +"`import` statement is not, strictly speaking, an operation on a module " +"object; ``import foo`` does not require a module object named *foo* to " +"exist, rather it requires an (external) *definition* for a module named " +"*foo* somewhere.)" +msgstr "" +"La seule opération spéciale sur un module est l'accès à ses attributs : ``m." +"name``, où *m* est un module et *name* donne accès un nom défini dans la " +"table des symboles de *m*. Il est possible d'assigner un attribut de " +"module. (Notez que l'instruction :keyword:`import` n'est pas strictement " +"une opération sur un objet module. ``import foo`` ne nécessite pas qu'un " +"objet module nommé *foo* existe, il nécessite cependant une *définition* " +"(externe) d'un module nommé *foo* quelque part.)" + +#: ../Doc/library/stdtypes.rst:4472 +msgid "" +"A special attribute of every module is :attr:`~object.__dict__`. This is the " +"dictionary containing the module's symbol table. Modifying this dictionary " +"will actually change the module's symbol table, but direct assignment to " +"the :attr:`~object.__dict__` attribute is not possible (you can write ``m." +"__dict__['a'] = 1``, which defines ``m.a`` to be ``1``, but you can't write " +"``m.__dict__ = {}``). Modifying :attr:`~object.__dict__` directly is not " +"recommended." +msgstr "" +"Un attribut spécial à chaque module est :attr:`~object.__dict__`. C'est le " +"dictionnaire contenant la table des symbole du module. Modifier ce " +"dictionnaire changera la table des symboles du module, mais assigner " +"directement :attr:`~object.__dict__` n'est pas possible (vous pouvez écrire " +"``m.__dict__['a'] = 1``, qui donne ``1`` comme valeur pour ``m.a``, mais " +"vous ne pouvez pas écrire ``m.__dict__ = {}``). Modifier :attr:`~object." +"__dict__` directement n'est pas recommandé." + +#: ../Doc/library/stdtypes.rst:4480 +msgid "" +"Modules built into the interpreter are written like this: ````. If loaded from a file, they are written as ````." +msgstr "" +"Les modules natifs à l'interpréteur sont représentés ````. S'ils sont chargés depuis un fichier, ils sont représentés " +"````." + +#: ../Doc/library/stdtypes.rst:4488 +msgid "Classes and Class Instances" +msgstr "Les classes et instances de classes" + +#: ../Doc/library/stdtypes.rst:4490 +msgid "See :ref:`objects` and :ref:`class` for these." +msgstr "Voir :ref:`objects` et :ref:`class`." + +#: ../Doc/library/stdtypes.rst:4496 +msgid "Functions" +msgstr "Fonctions" + +#: ../Doc/library/stdtypes.rst:4498 +msgid "" +"Function objects are created by function definitions. The only operation on " +"a function object is to call it: ``func(argument-list)``." +msgstr "" +"Les objets fonctions sont crées par les définitions de fonctions. La seule " +"opération applicable à un objet fonction est de l'appeler : ``func(argument-" +"list)``." + +#: ../Doc/library/stdtypes.rst:4501 +msgid "" +"There are really two flavors of function objects: built-in functions and " +"user-defined functions. Both support the same operation (to call the " +"function), but the implementation is different, hence the different object " +"types." +msgstr "" +"Il existe en fait deux catégories d'objets fonctions : Les fonctions natives " +"et les fonctions définies par l'utilisateur. Les deux gèrent les mêmes " +"opérations (l'appel à la fonction), mais leur implémentation est différente, " +"d'où les deux types distincts." + +#: ../Doc/library/stdtypes.rst:4505 +msgid "See :ref:`function` for more information." +msgstr "Voir :ref:`function` pour plus d'information." + +#: ../Doc/library/stdtypes.rst:4511 +msgid "Methods" +msgstr "Méthodes" + +#: ../Doc/library/stdtypes.rst:4515 +msgid "" +"Methods are functions that are called using the attribute notation. There " +"are two flavors: built-in methods (such as :meth:`append` on lists) and " +"class instance methods. Built-in methods are described with the types that " +"support them." +msgstr "" +"Les méthodes sont des fonctions appelées via la notation d'attribut. Il en " +"existe deux variantes : Les méthodes natives (tel que :meth:`append` sur les " +"listes), et les méthodes d'instances de classes. Les méthodes natives sont " +"représentées avec le type qui les supporte." + +#: ../Doc/library/stdtypes.rst:4520 +msgid "" +"If you access a method (a function defined in a class namespace) through an " +"instance, you get a special object: a :dfn:`bound method` (also called :dfn:" +"`instance method`) object. When called, it will add the ``self`` argument to " +"the argument list. Bound methods have two special read-only attributes: ``m." +"__self__`` is the object on which the method operates, and ``m.__func__`` is " +"the function implementing the method. Calling ``m(arg-1, arg-2, ..., arg-" +"n)`` is completely equivalent to calling ``m.__func__(m.__self__, arg-1, " +"arg-2, ..., arg-n)``." +msgstr "" +"Si vous accédez à une méthode (une fonction définie dans l'espace de nommage " +"d'une classe) via une instance, vous obtenez un objet spécial, une :dfn:" +"`bound method` (aussi appelée :dfn:`instance method`). Lorsqu'elle est " +"appelée, elle ajoute l'argument ``self`` à la liste des arguments. Les " +"méthodes liées ont deux attributs spéciaux, en lecture seule : ``m." +"__self__`` est l'objet sur lequel la méthode travaille, et ``m.__func__`` " +"est la fonction implémentant la méthode. Appeler ``m(arg-1, arg-2, …, arg-" +"n)`` est tout à fait équivalent à appeler ``m.__func__(m.__self__, arg-1, " +"arg-2, …, arg-n)``." + +#: ../Doc/library/stdtypes.rst:4529 +msgid "" +"Like function objects, bound method objects support getting arbitrary " +"attributes. However, since method attributes are actually stored on the " +"underlying function object (``meth.__func__``), setting method attributes on " +"bound methods is disallowed. Attempting to set an attribute on a method " +"results in an :exc:`AttributeError` being raised. In order to set a method " +"attribute, you need to explicitly set it on the underlying function object::" +msgstr "" +"Comme les objets fonctions, les objets méthodes, liées, acceptent des " +"attributs arbitraires. Cependant, puisque les attributs de méthodes doivent " +"être stockés dans la fonction sous-jacente (``meth.__func__``), affecter des " +"attributs à des objets *bound method* est interdit. Toute tentative " +"d'affecter un attribut sur un objet *bound method* lèvera une :exc:" +"`AttributeError`. Pour affecter l'attribut, vous devrez explicitement " +"l'affecter à sa fonction sous-jacente ::" + +#: ../Doc/library/stdtypes.rst:4549 ../Doc/library/stdtypes.rst:4577 +msgid "See :ref:`types` for more information." +msgstr "Voir :ref:`types` pour plus d'information." + +#: ../Doc/library/stdtypes.rst:4557 +msgid "Code Objects" +msgstr "Objets code" + +#: ../Doc/library/stdtypes.rst:4563 +msgid "" +"Code objects are used by the implementation to represent \"pseudo-compiled\" " +"executable Python code such as a function body. They differ from function " +"objects because they don't contain a reference to their global execution " +"environment. Code objects are returned by the built-in :func:`compile` " +"function and can be extracted from function objects through their :attr:" +"`__code__` attribute. See also the :mod:`code` module." +msgstr "" +"Les objets code sont utilisés par l'implémentation pour représenter du code " +"Python \"pseudo-compilé\", comme un corps de fonction. Ils sont différents " +"des objets fonction dans le sens où ils ne contiennent pas de référence à " +"leur environnement global d'exécution. Les objets code sont renvoyés par la " +"fonction native :func:`compile` et peuvent être obtenus des objets fonction " +"via leur attribut :attr:`__code__`. Voir aussi le module :mod:`code`." + +#: ../Doc/library/stdtypes.rst:4574 +msgid "" +"A code object can be executed or evaluated by passing it (instead of a " +"source string) to the :func:`exec` or :func:`eval` built-in functions." +msgstr "" +"Les objets code peuvent être exécutés ou évalués en les passant (au lieu " +"d'une chaîne contenant du code) aux fonction natives :func:`exec` ou :func:" +"`eval`." + +#: ../Doc/library/stdtypes.rst:4583 +msgid "Type Objects" +msgstr "Objets type" + +#: ../Doc/library/stdtypes.rst:4589 +msgid "" +"Type objects represent the various object types. An object's type is " +"accessed by the built-in function :func:`type`. There are no special " +"operations on types. The standard module :mod:`types` defines names for all " +"standard built-in types." +msgstr "" +"Les objets types représentent les différents types d'objets. Le type d'un " +"objet est obtenu via la fonction native :func:`type`. Il n'existe aucune " +"opération spéciale sur les types. Le module standard :mod:`types` définit " +"les noms de tous les types natifs." + +#: ../Doc/library/stdtypes.rst:4594 +msgid "Types are written like this: ````." +msgstr "Les types sont représentés : ````." + +#: ../Doc/library/stdtypes.rst:4600 +msgid "The Null Object" +msgstr "L'objet Null" + +#: ../Doc/library/stdtypes.rst:4602 +msgid "" +"This object is returned by functions that don't explicitly return a value. " +"It supports no special operations. There is exactly one null object, named " +"``None`` (a built-in name). ``type(None)()`` produces the same singleton." +msgstr "" +"Cet objet est renvoyé par les fonctions ne renvoyant pas explicitement une " +"valeur. Il ne supporte aucune opération spéciale. Il existe exactement un " +"objet *null* nommé ``None`` (c'est un nom natif). ``type(None)()``." + +#: ../Doc/library/stdtypes.rst:4606 +msgid "It is written as ``None``." +msgstr "C'est écrit ``None``." + +#: ../Doc/library/stdtypes.rst:4613 +msgid "The Ellipsis Object" +msgstr "L'objet points de suspension" + +#: ../Doc/library/stdtypes.rst:4615 +msgid "" +"This object is commonly used by slicing (see :ref:`slicings`). It supports " +"no special operations. There is exactly one ellipsis object, named :const:" +"`Ellipsis` (a built-in name). ``type(Ellipsis)()`` produces the :const:" +"`Ellipsis` singleton." +msgstr "" +"Cet objet est utilisé classiquement lors des découpes (voir :ref:" +"`slicings`). Il ne supporte aucune opération spéciale. Il n'y a qu'un seul " +"objet *ellipsis*, nommé :const:`Ellipsis` (un nom natif). ``type(Ellipsis)" +"()`` produit le *singleton* :const:`Ellipsis`." + +#: ../Doc/library/stdtypes.rst:4620 +msgid "It is written as ``Ellipsis`` or ``...``." +msgstr "C'est écrit ``Ellipsis`` ou ``...``." + +#: ../Doc/library/stdtypes.rst:4626 +msgid "The NotImplemented Object" +msgstr "L'objet *NotImplemented*" + +#: ../Doc/library/stdtypes.rst:4628 +msgid "" +"This object is returned from comparisons and binary operations when they are " +"asked to operate on types they don't support. See :ref:`comparisons` for " +"more information. There is exactly one ``NotImplemented`` object. " +"``type(NotImplemented)()`` produces the singleton instance." +msgstr "" +"Cet objet est renvoyé depuis des comparaisons ou des opérations binaires " +"effectuées sur des types qu'elles ne supportent pas. Voir :ref:`comparisons` " +"pour plus d'informations. Il n'y a qu'un seul objet ``NotImplemented``. " +"``type(NotImplemented)()`` renvoie un *singleton*." + +#: ../Doc/library/stdtypes.rst:4633 +msgid "It is written as ``NotImplemented``." +msgstr "C'est écrit ``NotImplemented``." + +#: ../Doc/library/stdtypes.rst:4639 +msgid "Boolean Values" +msgstr "Valeurs booléennes" + +#: ../Doc/library/stdtypes.rst:4641 +msgid "" +"Boolean values are the two constant objects ``False`` and ``True``. They " +"are used to represent truth values (although other values can also be " +"considered false or true). In numeric contexts (for example when used as " +"the argument to an arithmetic operator), they behave like the integers 0 and " +"1, respectively. The built-in function :func:`bool` can be used to convert " +"any value to a Boolean, if the value can be interpreted as a truth value " +"(see section :ref:`truth` above)." +msgstr "" +"Les valeurs booléennes sont les deux objets constants ``False`` et ``True``. " +"Ils sont utilisés pour représenter les valeurs de vérité (bien que d'autres " +"valeurs peuvent être considérées vraies ou fausses). Dans des contextes " +"numériques (par exemple en argument d'un opérateur arithmétique), ils se " +"comportent comme les nombres entiers 0 et 1, respectivement. La fonction " +"native :func:`bool` peut être utilisée pour convertir n'importe quelle " +"valeur en booléen tant que la valeur peut être interprétée en une valeur de " +"vérité (voir :ref:`truth` au dessus)." + +#: ../Doc/library/stdtypes.rst:4654 +msgid "They are written as ``False`` and ``True``, respectively." +msgstr "Ils s'écrivent ``False`` et ``True``, respectivement." + +#: ../Doc/library/stdtypes.rst:4660 +msgid "Internal Objects" +msgstr "Objets internes" + +#: ../Doc/library/stdtypes.rst:4662 +msgid "" +"See :ref:`types` for this information. It describes stack frame objects, " +"traceback objects, and slice objects." +msgstr "" +"Voir :ref:`types`. Ils décrivent les objets *stack frame*, *traceback*, et " +"*slice*." + +#: ../Doc/library/stdtypes.rst:4669 +msgid "Special Attributes" +msgstr "Attributs spéciaux" + +#: ../Doc/library/stdtypes.rst:4671 +msgid "" +"The implementation adds a few special read-only attributes to several object " +"types, where they are relevant. Some of these are not reported by the :func:" +"`dir` built-in function." +msgstr "" +"L'implémentation ajoute quelques attributs spéciaux et en lecture seule, à " +"certains types, lorsque ça a du sens. Certains ne sont *pas* listés par la " +"fonction native :func:`dir`." + +#: ../Doc/library/stdtypes.rst:4678 +msgid "" +"A dictionary or other mapping object used to store an object's (writable) " +"attributes." +msgstr "" +"Un dictionnaire ou un autre *mapping object* utilisé pour stocker les " +"attributs (modifiables) de l'objet." + +#: ../Doc/library/stdtypes.rst:4684 +msgid "The class to which a class instance belongs." +msgstr "La classe de l'instance de classe." + +#: ../Doc/library/stdtypes.rst:4689 +msgid "The tuple of base classes of a class object." +msgstr "Le *tuple* des classes parentes d'un objet classe." + +#: ../Doc/library/stdtypes.rst:4694 +msgid "" +"The name of the class, function, method, descriptor, or generator instance." +msgstr "Le nom de la classe, fonction, méthode, descripteur, ou générateur." + +#: ../Doc/library/stdtypes.rst:4700 +msgid "" +"The :term:`qualified name` of the class, function, method, descriptor, or " +"generator instance." +msgstr "" +"Le :term:`qualified name` de la classe, fonction, méthode, descripteur, ou " +"générateur." + +#: ../Doc/library/stdtypes.rst:4708 +msgid "" +"This attribute is a tuple of classes that are considered when looking for " +"base classes during method resolution." +msgstr "" +"Cet attribut est un *tuple* contenant les classes parents prises en compte " +"lors de la résolution de méthode." + +#: ../Doc/library/stdtypes.rst:4714 +msgid "" +"This method can be overridden by a metaclass to customize the method " +"resolution order for its instances. It is called at class instantiation, " +"and its result is stored in :attr:`~class.__mro__`." +msgstr "" +"Cette méthode peut être surchargée par une méta-classe pour personnaliser " +"l'ordre de la recherche de méthode pour ses instances. Elle est appelée à " +"la l'initialisation de la classe, et son résultat est stocké dans " +"l'attribut :attr:`~class.__mro__`." + +#: ../Doc/library/stdtypes.rst:4721 +msgid "" +"Each class keeps a list of weak references to its immediate subclasses. " +"This method returns a list of all those references still alive. Example::" +msgstr "" +"Chaque classe garde une liste de références faibles à ses classes filles " +"immédiates. Cette méthode renvoie la liste de toutes ces références encore " +"valables. Exemple ::" + +#: ../Doc/library/stdtypes.rst:4730 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/stdtypes.rst:4731 +msgid "" +"Additional information on these special methods may be found in the Python " +"Reference Manual (:ref:`customization`)." +msgstr "" +"Plus d'informations sur ces méthodes spéciales peuvent être trouvées dans le " +"*Python Reference Manual* (:ref:`customization`)." + +#: ../Doc/library/stdtypes.rst:4734 +msgid "" +"As a consequence, the list ``[1, 2]`` is considered equal to ``[1.0, 2.0]``, " +"and similarly for tuples." +msgstr "" +"Par conséquent, la liste ``[1, 2]`` est considérée égale à ``[1.0, 2.0]``. " +"Idem avec des tuples." + +#: ../Doc/library/stdtypes.rst:4737 +msgid "They must have since the parser can't tell the type of the operands." +msgstr "" +"Nécessairement, puisque l'analyseur ne peut pas discerner le type des " +"opérandes." + +#: ../Doc/library/stdtypes.rst:4739 +msgid "" +"Cased characters are those with general category property being one of \"Lu" +"\" (Letter, uppercase), \"Ll\" (Letter, lowercase), or \"Lt\" (Letter, " +"titlecase)." +msgstr "" +"Les caractères capitalisables sont ceux dont la propriété Unicode *general " +"category* est soit \"Lu\" (pour *Letter*, *uppercase*), soit \"Ll\" (pour " +"*Letter*, *lowercase*), soit \"Lt\" (pour *Letter*, *titlecase*)." + +#: ../Doc/library/stdtypes.rst:4742 +msgid "" +"To format only a tuple you should therefore provide a singleton tuple whose " +"only element is the tuple to be formatted." +msgstr "" +"Pour insérer un *tuple*, vous devez donc donner un *tuple* d'un seul " +"élément, contenant le *tuple* à insérer." + +#~ msgid "Return a new set with a shallow copy of *s*." +#~ msgstr "Renvoie un nouvel ensemble, copie de surface de *s*." + +#~ msgid "" +#~ "Bitwise operations only make sense for integers. Negative numbers are " +#~ "treated as their 2's complement value (this assumes that there are enough " +#~ "bits so that no overflow occurs during the operation)." +#~ msgstr "" +#~ "Les opérations sur les bits n'ont de sens que pour les entiers. Les " +#~ "nombres négatifs sont traités comme leur complément à 2 (ce qui suppose " +#~ "un assez grand nombre de bits afin qu'aucun débordement ne se produise " +#~ "pendant l'opération)." + +#~ msgid ":pep:`461`." +#~ msgstr ":pep:`461`." + +#~ msgid "``None``" +#~ msgstr "``None``" + +#~ msgid "``False``" +#~ msgstr "``False``" + +#~ msgid "any empty sequence, for example, ``''``, ``()``, ``[]``." +#~ msgstr "toute séquence vide, par exemple, ``''``, ``()``, ``[]``." + +#~ msgid "any empty mapping, for example, ``{}``." +#~ msgstr "toute dictionnaire vide, par exemple, ``{}``." + +#~ msgid "" +#~ "instances of user-defined classes, if the class defines a :meth:" +#~ "`__bool__` or :meth:`__len__` method, when that method returns the " +#~ "integer zero or :class:`bool` value ``False``. [1]_" +#~ msgstr "" +#~ "pour les instances de classes définies par l'utilisateur, si la classe " +#~ "définit une méthode :meth:`__bool__` ou :meth:`__len__`, lorsque cette " +#~ "méthode renvoie le nombre entier zéro ou la valeur ``False`` de la " +#~ "classe :class:`bool`. [1]_" + +#~ msgid "" +#~ "All other values are considered true --- so objects of many types are " +#~ "always true." +#~ msgstr "" +#~ "Toutes les autres valeurs sont considérées comme vraies --- donc des " +#~ "objets de beaucoup de types sont toujours vrais." + +#~ msgid "Bytes" +#~ msgstr "Bytes" + +#~ msgid "" +#~ "The alternate form causes a leading zero (``'0'``) to be inserted between " +#~ "left-hand padding and the formatting of the number if the leading " +#~ "character of the result is not already a zero." +#~ msgstr "" +#~ "La forme alternative insère un zéro (``'0'``) entre le rembourrage gauche " +#~ "et le formatage du nombre si son premier caractère n'est pas déjà un zéro." diff --git a/library/string.po b/library/string.po new file mode 100644 index 000000000..689d9b50d --- /dev/null +++ b/library/string.po @@ -0,0 +1,1439 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-03-02 10:41+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/string.rst:2 +msgid ":mod:`string` --- Common string operations" +msgstr ":mod:`string` — Opérations usuelles sur des chaînes" + +#: ../Doc/library/string.rst:7 +msgid "**Source code:** :source:`Lib/string.py`" +msgstr "**Code source :** :source:`Lib/string.py`" + +#: ../Doc/library/string.rst:13 +msgid ":ref:`textseq`" +msgstr ":ref:`textseq`" + +#: ../Doc/library/string.rst:15 +msgid ":ref:`string-methods`" +msgstr ":ref:`string-methods`" + +#: ../Doc/library/string.rst:18 +msgid "String constants" +msgstr "Chaînes constantes" + +#: ../Doc/library/string.rst:20 +msgid "The constants defined in this module are:" +msgstr "Les constantes définies dans ce module sont :" + +#: ../Doc/library/string.rst:25 +msgid "" +"The concatenation of the :const:`ascii_lowercase` and :const:" +"`ascii_uppercase` constants described below. This value is not locale-" +"dependent." +msgstr "" +"La concaténation des constantes :const:`ascii_lowercase` et :const:`ascii." +"uppercase` décrites ci-dessous. Cette valeur n'est pas dépendante de " +"l'environnement linguistique." + +#: ../Doc/library/string.rst:31 +msgid "" +"The lowercase letters ``'abcdefghijklmnopqrstuvwxyz'``. This value is not " +"locale-dependent and will not change." +msgstr "" +"Les lettres minuscules ``'abcdefghijklmnopqrstuvwxyz'``. Cette valeur de " +"dépend pas de l'environnement linguistique et ne changera pas." + +#: ../Doc/library/string.rst:37 +msgid "" +"The uppercase letters ``'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. This value is not " +"locale-dependent and will not change." +msgstr "" +"Les lettres majuscules ``'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. Cette valeur de " +"dépend pas de l'environnement linguistique et ne changera pas." + +#: ../Doc/library/string.rst:43 +msgid "The string ``'0123456789'``." +msgstr "La chaîne ``'0123456789'``." + +#: ../Doc/library/string.rst:48 +msgid "The string ``'0123456789abcdefABCDEF'``." +msgstr "La chaîne ``'0123456789abcdefABCDEF'``." + +#: ../Doc/library/string.rst:53 +msgid "The string ``'01234567'``." +msgstr "La chaîne ``'01234567``." + +#: ../Doc/library/string.rst:58 +msgid "" +"String of ASCII characters which are considered punctuation characters in " +"the ``C`` locale." +msgstr "" +"Chaîne de caractères ASCII considérés comme ponctuation dans l'environnement " +"linguistique ``C``." + +#: ../Doc/library/string.rst:64 +msgid "" +"String of ASCII characters which are considered printable. This is a " +"combination of :const:`digits`, :const:`ascii_letters`, :const:" +"`punctuation`, and :const:`whitespace`." +msgstr "" +"Chaîne de caractères ASCII considérés comme affichables. C'est une " +"combinaison de :const:`digits`, :const:`ascii_letters`, :const:" +"`punctuation`, et :const:`whitespace`." + +#: ../Doc/library/string.rst:71 +msgid "" +"A string containing all ASCII characters that are considered whitespace. " +"This includes the characters space, tab, linefeed, return, formfeed, and " +"vertical tab." +msgstr "" +"Une chaîne comprenant tous les caractères ASCII considérés comme espaces. " +"Sont inclus les caractères espace, tabulations, saut de ligne, retour du " +"chariot, saut de page, et tabulation verticale." + +#: ../Doc/library/string.rst:79 +msgid "Custom String Formatting" +msgstr "Formatage personnalisé de chaîne" + +#: ../Doc/library/string.rst:81 +msgid "" +"The built-in string class provides the ability to do complex variable " +"substitutions and value formatting via the :meth:`~str.format` method " +"described in :pep:`3101`. The :class:`Formatter` class in the :mod:`string` " +"module allows you to create and customize your own string formatting " +"behaviors using the same implementation as the built-in :meth:`~str.format` " +"method." +msgstr "" +"La classe primitive `string` fournit la possibilité de faire des " +"substitutions de variables complexes et du formatage de valeurs via la " +"méthode :meth:`~str.format` décrite par :pep:`3101`. La classe :class:" +"`Formatter` dans le module :mod:`string` permet de créer et personnaliser " +"vos propres comportements de formatage de chaînes en utilisant la même " +"implémentation que la méthode primitive :meth:`~str.format`." + +#: ../Doc/library/string.rst:90 +msgid "The :class:`Formatter` class has the following public methods:" +msgstr "La classe :class:`Formatter` a les méthodes publiques suivantes ::" + +#: ../Doc/library/string.rst:94 +msgid "" +"The primary API method. It takes a format string and an arbitrary set of " +"positional and keyword arguments. It is just a wrapper that calls :meth:" +"`vformat`." +msgstr "" +"La méthode principale de l'API. Elle prend une chaîne de format et un " +"ensemble arbitraire d'arguments positions et mot-clefs. C'est uniquement un " +"conteneur qui appelle :meth:`vformat`." + +#: ../Doc/library/string.rst:98 +msgid "" +"A format string argument is now :ref:`positional-only `." +msgstr "" +"L'argument *format_string* est maintenant :ref:`obligatoirement un paramètre " +"positionnel `." + +#: ../Doc/library/string.rst:104 +msgid "" +"This function does the actual work of formatting. It is exposed as a " +"separate function for cases where you want to pass in a predefined " +"dictionary of arguments, rather than unpacking and repacking the dictionary " +"as individual arguments using the ``*args`` and ``**kwargs`` syntax. :meth:" +"`vformat` does the work of breaking up the format string into character data " +"and replacement fields. It calls the various methods described below." +msgstr "" +"Cette fonction fait le travail effectif du formatage. Elle existe comme " +"méthode séparée au cas où vous voudriez passer un dictionnaire d'arguments " +"prédéfini plutôt que décompresser et recompresser le dictionnaire en " +"arguments individuels en utilisant la syntaxe ``*args`` et ``**kwargs``. :" +"meth:`vformat` s'occupe de découper la chaîne de format en données de " +"caractères et champs de remplacement. Elle appelle les différentes méthodes " +"décrites ci-dessous." + +#: ../Doc/library/string.rst:112 +msgid "" +"In addition, the :class:`Formatter` defines a number of methods that are " +"intended to be replaced by subclasses:" +msgstr "" +"De plus, la classe :class:`Formatter` définit un certain nombre de méthodes " +"qui ont pour vocation d'être remplacées par des sous-classes :" + +#: ../Doc/library/string.rst:117 +msgid "" +"Loop over the format_string and return an iterable of tuples " +"(*literal_text*, *field_name*, *format_spec*, *conversion*). This is used " +"by :meth:`vformat` to break the string into either literal text, or " +"replacement fields." +msgstr "" +"Boucle sur la chaîne de format et renvoie un itérable de *tuples* " +"(*literal_text*, *field_name*, *format_spec*, *conversion*). Ceci est " +"utilisé par :meth:`vformat` pour découper la chaîne de format en littéraux " +"ou en champs de remplacement." + +#: ../Doc/library/string.rst:122 +msgid "" +"The values in the tuple conceptually represent a span of literal text " +"followed by a single replacement field. If there is no literal text (which " +"can happen if two replacement fields occur consecutively), then " +"*literal_text* will be a zero-length string. If there is no replacement " +"field, then the values of *field_name*, *format_spec* and *conversion* will " +"be ``None``." +msgstr "" +"Les valeurs dans le *tuple* représentent conceptuellement un ensemble de " +"littéraux suivis d'un unique champ de remplacement. S'il n'y a pas de " +"littéral, (ce qui peut arriver si deux champs de remplacement sont placés " +"côte à côte), alors *literal_text* est une chaîne vide. S'il n'y a pas de " +"champ de remplacement, les valeurs *field_name*, *format_spec* et " +"*conversion* sont mises à ``None``." + +#: ../Doc/library/string.rst:131 +msgid "" +"Given *field_name* as returned by :meth:`parse` (see above), convert it to " +"an object to be formatted. Returns a tuple (obj, used_key). The default " +"version takes strings of the form defined in :pep:`3101`, such as " +"\"0[name]\" or \"label.title\". *args* and *kwargs* are as passed in to :" +"meth:`vformat`. The return value *used_key* has the same meaning as the " +"*key* parameter to :meth:`get_value`." +msgstr "" +"Récupère le champ *field_name* du *tuple* renvoyé par :meth:`parse` (voir ci-" +"dessus), le convertit en un objet à formater. Renvoie un *tuple* (*obj*, " +"*used_key*). La version par défaut prend une chaîne de la forme définie par :" +"pep:`3101`, telle que `\"0[name]\"` ou `\"label.title\"`. *args* et *kwargs* " +"sont tels que ceux passés à :meth:`vformat`. La valeur renvoyée *used_key* a " +"le même sens que le paramètre *key* de :meth:`get_value`." + +#: ../Doc/library/string.rst:140 +msgid "" +"Retrieve a given field value. The *key* argument will be either an integer " +"or a string. If it is an integer, it represents the index of the positional " +"argument in *args*; if it is a string, then it represents a named argument " +"in *kwargs*." +msgstr "" +"Récupère la valeur d'un champ donné. L'argument *key* est soit un entier, " +"soit une chaîne. Si c'est un entier, il représente l'indice de la l'argument " +"dans *args*. Si c'est une chaîne de caractères, elle représente le nom de " +"l'argument dans *kwargs*." + +#: ../Doc/library/string.rst:145 +msgid "" +"The *args* parameter is set to the list of positional arguments to :meth:" +"`vformat`, and the *kwargs* parameter is set to the dictionary of keyword " +"arguments." +msgstr "" +"Le paramètre *args* est défini par la liste des arguments positionnels de :" +"meth:`vformat`, et le paramètre *kwargs* est défini par le dictionnaire des " +"arguments mot-clefs." + +#: ../Doc/library/string.rst:149 +msgid "" +"For compound field names, these functions are only called for the first " +"component of the field name; Subsequent components are handled through " +"normal attribute and indexing operations." +msgstr "" +"Pour les noms de champs composés, ces fonctions sont uniquement appelées sur " +"la première composante du nom. Les composantes suivantes sont manipulées au " +"travers des attributs normaux et des opérations sur les indices." + +#: ../Doc/library/string.rst:153 +msgid "" +"So for example, the field expression '0.name' would cause :meth:`get_value` " +"to be called with a *key* argument of 0. The ``name`` attribute will be " +"looked up after :meth:`get_value` returns by calling the built-in :func:" +"`getattr` function." +msgstr "" +"Donc par exemple, le champ-expression ``0.name`` amènerait :meth:`get_value` " +"à être appelée avec un argument *key* valant 0. L'attribut ``name`` sera " +"recherché après l'appel :meth:`get_value` en faisant appel à la primitive :" +"func:`getattr`." + +#: ../Doc/library/string.rst:158 +msgid "" +"If the index or keyword refers to an item that does not exist, then an :exc:" +"`IndexError` or :exc:`KeyError` should be raised." +msgstr "" +"Si l'indice ou le mot-clef fait référence à un objet qui n'existe pas, alors " +"une exception :exc:`IndexError` ou :exc:`KeyError` doit être levée." + +#: ../Doc/library/string.rst:163 +msgid "" +"Implement checking for unused arguments if desired. The arguments to this " +"function is the set of all argument keys that were actually referred to in " +"the format string (integers for positional arguments, and strings for named " +"arguments), and a reference to the *args* and *kwargs* that was passed to " +"vformat. The set of unused args can be calculated from these parameters. :" +"meth:`check_unused_args` is assumed to raise an exception if the check fails." +msgstr "" +"Implémente une vérification pour les arguments non utilisés si désiré. " +"L'argument de cette fonction est l'ensemble des clefs qui ont été " +"effectivement référencées dans la chaîne de format (des entiers pour les " +"indices et des chaînes de caractères pour les arguments nommés), et une " +"référence vers les arguments *args* et *kwargs* qui ont été passés à " +"`vformat`. L'ensemble des arguments non utilisés peut être calculé sur base " +"de ces paramètres. :meth:`check_unused_args` est censée lever une exception " +"si la vérification échoue." + +#: ../Doc/library/string.rst:173 +msgid "" +":meth:`format_field` simply calls the global :func:`format` built-in. The " +"method is provided so that subclasses can override it." +msgstr "" +"La méthode :meth:`format_field` fait simplement appel à la primitive " +"globale :func:`format`. Cette méthode est fournie afin que les sous-classes " +"puisse la redéfinir." + +#: ../Doc/library/string.rst:178 +msgid "" +"Converts the value (returned by :meth:`get_field`) given a conversion type " +"(as in the tuple returned by the :meth:`parse` method). The default version " +"understands 's' (str), 'r' (repr) and 'a' (ascii) conversion types." +msgstr "" +"Convertit la valeur (renvoyée par :meth:`get_field`) selon un type de " +"conversion donné (comme dans le tuple renvoyé par la méthode :meth:`parse`). " +"La version par défaut comprend 's' (`str`), 'r' (`repr`) et 'a' (ASCII) " +"comme types de conversion." + +#: ../Doc/library/string.rst:187 +msgid "Format String Syntax" +msgstr "Syntaxe de formatage de chaîne" + +#: ../Doc/library/string.rst:189 +msgid "" +"The :meth:`str.format` method and the :class:`Formatter` class share the " +"same syntax for format strings (although in the case of :class:`Formatter`, " +"subclasses can define their own format string syntax). The syntax is " +"related to that of :ref:`formatted string literals `, but there " +"are differences." +msgstr "" +"La méthode :meth:`str.format` et la classe :class:`Formatter` partagent la " +"même syntaxe pour les chaînes de formatage (bien que dans le cas de :class:" +"`Formatter` les sous-classes puissent définir leur propre syntaxe). La " +"syntaxe est liée à celle des :ref:`chaînes de formatage littérales `, mais il y a quelques différences." + +#: ../Doc/library/string.rst:202 +msgid "" +"Format strings contain \"replacement fields\" surrounded by curly braces ``{}" +"``. Anything that is not contained in braces is considered literal text, " +"which is copied unchanged to the output. If you need to include a brace " +"character in the literal text, it can be escaped by doubling: ``{{`` and ``}}" +"``." +msgstr "" +"Les chaînes de formatage contiennent des \"champs de remplacement\" entourés " +"d'accolades ``{}``. Tout ce qui n'est pas placé entre deux accolades est " +"considéré comme littéral, qui est copié tel quel dans le résultat. Si vous " +"avez besoin d'inclure une accolade en littéral, elles peuvent être échappées " +"en les doublant : ``{{`` et ``}}``." + +#: ../Doc/library/string.rst:207 +msgid "The grammar for a replacement field is as follows:" +msgstr "La grammaire pour un champ de remplacement est défini comme suit :" + +#: ../Doc/library/string.rst:219 +msgid "" +"In less formal terms, the replacement field can start with a *field_name* " +"that specifies the object whose value is to be formatted and inserted into " +"the output instead of the replacement field. The *field_name* is optionally " +"followed by a *conversion* field, which is preceded by an exclamation point " +"``'!'``, and a *format_spec*, which is preceded by a colon ``':'``. These " +"specify a non-default format for the replacement value." +msgstr "" +"En termes moins formels, un champ de remplacement peut débuter par un " +"*field_name* qui spécifie l'objet dont la valeur va être formatée et insérée " +"dans le résultat à l'endroit du champ de remplacement Le *field_name* peut " +"éventuellement être suivi d'un champ *conversion* qui est précédé d'un point " +"d'exclamation ``'!'``, et d'un *format_spec* qui est précédé par deux-points " +"``':'``. Cela définit un format personnalisé pour le remplacement d'une " +"valeur." + +#: ../Doc/library/string.rst:226 +msgid "See also the :ref:`formatspec` section." +msgstr "Voir également la section :ref:`formatspec`." + +#: ../Doc/library/string.rst:228 +msgid "" +"The *field_name* itself begins with an *arg_name* that is either a number or " +"a keyword. If it's a number, it refers to a positional argument, and if " +"it's a keyword, it refers to a named keyword argument. If the numerical " +"arg_names in a format string are 0, 1, 2, ... in sequence, they can all be " +"omitted (not just some) and the numbers 0, 1, 2, ... will be automatically " +"inserted in that order. Because *arg_name* is not quote-delimited, it is not " +"possible to specify arbitrary dictionary keys (e.g., the strings ``'10'`` or " +"``':-]'``) within a format string. The *arg_name* can be followed by any " +"number of index or attribute expressions. An expression of the form ``'." +"name'`` selects the named attribute using :func:`getattr`, while an " +"expression of the form ``'[index]'`` does an index lookup using :func:" +"`__getitem__`." +msgstr "" +"Le champ *field_name* débute par un *arg_name* qui est soit un nombre, soit " +"un mot-clef. Si c'est un nombre, il fait référence à un des arguments " +"positionnels et si c'est un mot-clef, il fait référence à un des arguments " +"nommés. Si les valeurs numériques de *arg_name* dans une chaîne de format " +"sont 0, 1, 2, ... dans l'ordre, elles peuvent être omises (toutes ou " +"aucune), et les nombres 0, 1, 2, ... seront automatiquement insérés dans cet " +"ordre. Puisque *arg_name* n'est pas délimité par des guillemets, il n'est " +"pas possible de spécifier des clefs de dictionnaire arbitraires (par exemple " +"les chaînes ``'10'`` ou ``':-]'``) dans une chaîne de format. La valeur " +"*arg_name* peut être suivie par un nombre d'indices ou d'expressions " +"quelconque. Une expression de la forme ``'.name'`` sélectionne l'attribut " +"nommé en utilisant :func:`getattr` alors qu'une expression de la forme " +"``'[index]'`` recherche l'indice en utilisant :func:`__getitem__`." + +#: ../Doc/library/string.rst:240 +msgid "" +"The positional argument specifiers can be omitted for :meth:`str.format`, so " +"``'{} {}'.format(a, b)`` is equivalent to ``'{0} {1}'.format(a, b)``." +msgstr "" +"Les spécificateurs de position d'argument peuvent être omis dans les appels " +"à :meth:`str.format`. Donc ``'{} {}'.format(a, b)`` est équivalent à ``'{0} " +"{1}'.format(a, b)``." + +#: ../Doc/library/string.rst:244 +msgid "" +"The positional argument specifiers can be omitted for :class:`Formatter`." +msgstr "" +"Les spécificateurs de position d'argument peuvent être omis pour :class:" +"`Formatter`." + +#: ../Doc/library/string.rst:247 +msgid "Some simple format string examples::" +msgstr "Quelques exemples simples de formatage de chaînes ::" + +#: ../Doc/library/string.rst:256 +msgid "" +"The *conversion* field causes a type coercion before formatting. Normally, " +"the job of formatting a value is done by the :meth:`__format__` method of " +"the value itself. However, in some cases it is desirable to force a type to " +"be formatted as a string, overriding its own definition of formatting. By " +"converting the value to a string before calling :meth:`__format__`, the " +"normal formatting logic is bypassed." +msgstr "" +"Le champ *conversion* crée une contrainte de type avant de formater. " +"Normalement, le travail de formatage d'une valeur est fait par la méthode :" +"meth:`__format__` de la valeur elle-même. Cependant, dans certains cas, il " +"est désirable de forcer un type à être formaté en une chaîne, en ré-" +"définissant sa propre définition de formatage. En convertissant une valeur " +"en chaîne de caractère avant d'appeler la méthode :meth:`__format__`, on " +"outrepasse la logique usuelle de formatage." + +#: ../Doc/library/string.rst:263 +msgid "" +"Three conversion flags are currently supported: ``'!s'`` which calls :func:" +"`str` on the value, ``'!r'`` which calls :func:`repr` and ``'!a'`` which " +"calls :func:`ascii`." +msgstr "" +"Actuellement, trois indicateurs sont gérés : ``'!s'`` qui appelle la " +"fonction :func:`str` sur la valeur, ``'!r'`` qui appelle la fonction :func:" +"`repr` et ``!a`` qui appelle la fonction :func:`ascii`." + +#: ../Doc/library/string.rst:267 +msgid "Some examples::" +msgstr "Quelques exemples ::" + +#: ../Doc/library/string.rst:273 +msgid "" +"The *format_spec* field contains a specification of how the value should be " +"presented, including such details as field width, alignment, padding, " +"decimal precision and so on. Each value type can define its own " +"\"formatting mini-language\" or interpretation of the *format_spec*." +msgstr "" +"Le champ *format_spec* contient une spécification sur la manière selon " +"laquelle la valeur devrait être représentée : des informations telles que la " +"longueur du champ, l'alignement, le remplissage, la précision décimale, etc. " +"Chaque type peut définir son propre \"mini-langage de formatage\" ou sa " +"propre interprétation de *format_spec*." + +#: ../Doc/library/string.rst:278 +msgid "" +"Most built-in types support a common formatting mini-language, which is " +"described in the next section." +msgstr "" +"La plupart des types natifs gèrent un mini-langage de formatage usuel qui " +"est décrit dans la section suivante." + +#: ../Doc/library/string.rst:281 +msgid "" +"A *format_spec* field can also include nested replacement fields within it. " +"These nested replacement fields may contain a field name, conversion flag " +"and format specification, but deeper nesting is not allowed. The " +"replacement fields within the format_spec are substituted before the " +"*format_spec* string is interpreted. This allows the formatting of a value " +"to be dynamically specified." +msgstr "" +"Un champ *format_spec* peut contenir un champ de remplacement imbriqué. Ces " +"champs de remplacement imbriqués peuvent contenir un nom de champ, un " +"indicateur de conversion, mais une imbrication récursive plus profonde n'est " +"pas permise. Les champs de remplacement au sein de *format_spec* sont " +"substitués avant que la chaîne *format_spec* ne soit interprétée. Cela " +"permet que le formatage d'une valeur soit dynamiquement spécifié." + +#: ../Doc/library/string.rst:288 +msgid "See the :ref:`formatexamples` section for some examples." +msgstr "Voir la section :ref:`formatexamples` pour des exemples." + +#: ../Doc/library/string.rst:294 +msgid "Format Specification Mini-Language" +msgstr "Mini-langage de spécification de format" + +#: ../Doc/library/string.rst:296 +msgid "" +"\"Format specifications\" are used within replacement fields contained " +"within a format string to define how individual values are presented (see :" +"ref:`formatstrings` and :ref:`f-strings`). They can also be passed directly " +"to the built-in :func:`format` function. Each formattable type may define " +"how the format specification is to be interpreted." +msgstr "" +"Les \"Spécifications de format\" sont utilisées avec les champs de " +"remplacement contenus dans les chaînes de formatage, pour définir comment " +"les valeurs doivent être représentées (voir :ref:`formatstrings` et :ref:`f-" +"strings`). Elles peuvent aussi être passées directement à la fonction " +"native :func:`format`. Chaque type *formatable* peut définir comment les " +"spécifications sur les valeurs de ce type doivent être interprétées." + +#: ../Doc/library/string.rst:303 +msgid "" +"Most built-in types implement the following options for format " +"specifications, although some of the formatting options are only supported " +"by the numeric types." +msgstr "" +"La plupart des primitives implémentent les les options suivantes, même si " +"certaines options de formatage ne sont supportées que pour les types " +"numériques." + +#: ../Doc/library/string.rst:306 +msgid "" +"A general convention is that an empty format string (``\"\"``) produces the " +"same result as if you had called :func:`str` on the value. A non-empty " +"format string typically modifies the result." +msgstr "" +"Une convention généralement admise est qu'une chaîne vide (``\"\"``) produit " +"le même résultat que si vous aviez appelé :func:`str` sur la valeur. Une " +"chaîne de format non vide modifie typiquement le résultat." + +#: ../Doc/library/string.rst:310 +msgid "The general form of a *standard format specifier* is:" +msgstr "La forme générale d'un *spécificateur de format standard* est ::" + +#: ../Doc/library/string.rst:322 +msgid "" +"If a valid *align* value is specified, it can be preceded by a *fill* " +"character that can be any character and defaults to a space if omitted. It " +"is not possible to use a literal curly brace (\"``{``\" or \"``}``\") as the " +"*fill* character in a :ref:`formatted string literal ` or when " +"using the :meth:`str.format` method. However, it is possible to insert a " +"curly brace with a nested replacement field. This limitation doesn't affect " +"the :func:`format` function." +msgstr "" +"Si une valeur valide est spécifiée pour *align*, elle peut être précédée par " +"un caractère *fill*, qui peut être n'importe quel caractère (espace par " +"défaut si la valeur est omise). Il n'est pas possible d'utiliser une " +"accolade littérale (\"``{``\" ou \"``}``\") comme caractère *fill* dans une :" +"ref:`chaîne de formatage littérale ` ou avec la méthode :meth:" +"`str.format`. Cependant, il est possible d'insérer une accolade à l'aide " +"d'un champ de remplacement imbriqué. Cette limitation n'affecte pas la " +"fonction :func:`format`." + +#: ../Doc/library/string.rst:331 +msgid "The meaning of the various alignment options is as follows:" +msgstr "Le sens des différentes options d'alignement est donné comme suit :" + +#: ../Doc/library/string.rst:340 ../Doc/library/string.rst:371 +msgid "Option" +msgstr "Option" + +#: ../Doc/library/string.rst:340 ../Doc/library/string.rst:371 +#: ../Doc/library/string.rst:439 ../Doc/library/string.rst:450 +#: ../Doc/library/string.rst:482 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/string.rst:342 +msgid "``'<'``" +msgstr "``'<'``" + +#: ../Doc/library/string.rst:342 +msgid "" +"Forces the field to be left-aligned within the available space (this is the " +"default for most objects)." +msgstr "" +"Force le champ à être aligné à gauche dans l'espace disponible (c'est le " +"spécificateur par défaut pour la plupart des objets)." + +#: ../Doc/library/string.rst:345 +msgid "``'>'``" +msgstr "``'>'``" + +#: ../Doc/library/string.rst:345 +msgid "" +"Forces the field to be right-aligned within the available space (this is the " +"default for numbers)." +msgstr "" +"Force le champ à être aligné à droite dans l'espace disponible (c'est le " +"spécificateur par défaut pour les nombres)." + +#: ../Doc/library/string.rst:348 +msgid "``'='``" +msgstr "``'='``" + +#: ../Doc/library/string.rst:348 +msgid "" +"Forces the padding to be placed after the sign (if any) but before the " +"digits. This is used for printing fields in the form '+000000120'. This " +"alignment option is only valid for numeric types. It becomes the default " +"when '0' immediately precedes the field width." +msgstr "" +"Force le remplissage (*padding*) à être placé après le signe (si signe il y " +"a) mais avant les chiffres. L'option est utilisée pour afficher les champs " +"sous la forme \"+000000120\". Cette option d'alignement est valide " +"uniquement pour les types numériques. Elle devient activée par défaut quand " +"\"0\" précède directement la largeur de champ." + +#: ../Doc/library/string.rst:354 +msgid "``'^'``" +msgstr "``'^'``" + +#: ../Doc/library/string.rst:354 +msgid "Forces the field to be centered within the available space." +msgstr "Force le champ à être centré dans l'espace disponible." + +#: ../Doc/library/string.rst:358 +msgid "" +"Note that unless a minimum field width is defined, the field width will " +"always be the same size as the data to fill it, so that the alignment option " +"has no meaning in this case." +msgstr "" +"Notons que la longueur du champ est toujours égale à la la taille nécessaire " +"pour remplir le champ avec l'objet à moins que la valeur minimum ne soit " +"précisée. Ainsi, si aucune valeur n'est précisée, l'option d'alignement n'a " +"aucun sens." + +#: ../Doc/library/string.rst:362 +msgid "" +"The *sign* option is only valid for number types, and can be one of the " +"following:" +msgstr "" +"L'option *sign* est uniquement valide pour les type numériques, et peut " +"valoir :" + +#: ../Doc/library/string.rst:373 +msgid "``'+'``" +msgstr "``'+'``" + +#: ../Doc/library/string.rst:373 +msgid "" +"indicates that a sign should be used for both positive as well as negative " +"numbers." +msgstr "" +"indique que le signe doit être affiché pour les nombres tant positifs que " +"négatifs." + +#: ../Doc/library/string.rst:376 +msgid "``'-'``" +msgstr "``'-'``" + +#: ../Doc/library/string.rst:376 +msgid "" +"indicates that a sign should be used only for negative numbers (this is the " +"default behavior)." +msgstr "" +"indique que le signe doit être affiché uniquement pour les nombres négatifs " +"(c'est le comportement par défaut)." + +#: ../Doc/library/string.rst:379 +msgid "space" +msgstr "espace" + +#: ../Doc/library/string.rst:379 +msgid "" +"indicates that a leading space should be used on positive numbers, and a " +"minus sign on negative numbers." +msgstr "" +"indique qu'un espace doit précéder les nombres positifs et qu'un signe moins " +"doit précéder les nombres négatifs." + +#: ../Doc/library/string.rst:386 +msgid "" +"The ``'#'`` option causes the \"alternate form\" to be used for the " +"conversion. The alternate form is defined differently for different types. " +"This option is only valid for integer, float, complex and Decimal types. For " +"integers, when binary, octal, or hexadecimal output is used, this option " +"adds the prefix respective ``'0b'``, ``'0o'``, or ``'0x'`` to the output " +"value. For floats, complex and Decimal the alternate form causes the result " +"of the conversion to always contain a decimal-point character, even if no " +"digits follow it. Normally, a decimal-point character appears in the result " +"of these conversions only if a digit follows it. In addition, for ``'g'`` " +"and ``'G'`` conversions, trailing zeros are not removed from the result." +msgstr "" +"L'option ``'#'`` impose l'utilisation de la \"forme alternative\" pour la " +"conversion. La forme alternative est définie différemment pour différent " +"types. Cette option est uniquement valide pour les types entiers flottants, " +"complexes, et décimaux. Pour les entiers, quand l'affichage binaire, octal " +"ou hexadécimal est utilisé, cette option ajoute le préfixe ``'0b'``, " +"``'0o'``, ou ``'0x'`` à la valeur affichée. Pour les flottants, les " +"complexes, et les décimaux, la forme alternative impose que le résultat de " +"la conversion contienne toujours une virgule, même si aucun chiffre ne vient " +"après. Normalement, une virgule apparaît dans le résultat de ces conversions " +"seulement si un chiffre le suit. De plus, pour les conversions ``'g'`` et " +"``'G'``, les zéros finaux ne sont pas retirés du résultat." + +#: ../Doc/library/string.rst:400 +msgid "" +"The ``','`` option signals the use of a comma for a thousands separator. For " +"a locale aware separator, use the ``'n'`` integer presentation type instead." +msgstr "" +"L'option ``','`` signale l'utilisation d'une virgule comme séparateur des " +"milliers. Pour un séparateur conscient de l'environnement linguistique, " +"utilisez plutôt le type de présentation entière ``'n'``." + +#: ../Doc/library/string.rst:404 +msgid "Added the ``','`` option (see also :pep:`378`)." +msgstr "Ajout de l'option ``','`` (voir :pep:`378`)." + +#: ../Doc/library/string.rst:409 +msgid "" +"The ``'_'`` option signals the use of an underscore for a thousands " +"separator for floating point presentation types and for integer presentation " +"type ``'d'``. For integer presentation types ``'b'``, ``'o'``, ``'x'``, and " +"``'X'``, underscores will be inserted every 4 digits. For other " +"presentation types, specifying this option is an error." +msgstr "" +"L'option ``'_'`` demande l'utilisation d'un tiret bas comme séparateur des " +"milliers pour les représentations de nombres flottants et pour les entiers " +"représentés par le type ``'d'``. Pour les types de représentation d'entiers " +"``'b'``, ``'o'``, ``'x'`` et ``'X'``, les tirets bas seront insérés tous les " +"4 chiffres. Pour les autres types de représentation, spécifier cette option " +"est une erreur." + +#: ../Doc/library/string.rst:416 +msgid "Added the ``'_'`` option (see also :pep:`515`)." +msgstr "Ajout de l'option ``'_'`` (voir aussi :pep:`515`)." + +#: ../Doc/library/string.rst:419 +msgid "" +"*width* is a decimal integer defining the minimum field width. If not " +"specified, then the field width will be determined by the content." +msgstr "" +"*width* est un entier en base 10 qui définit la longueur minimale du champ. " +"Si elle n'est pas spécifiée, alors le champ *width* est déterminé par le " +"contenu." + +#: ../Doc/library/string.rst:422 +msgid "" +"When no explicit alignment is given, preceding the *width* field by a zero " +"(``'0'``) character enables sign-aware zero-padding for numeric types. This " +"is equivalent to a *fill* character of ``'0'`` with an *alignment* type of " +"``'='``." +msgstr "" +"Quand aucun alignement explicite n'est donné, précéder le champs *width* " +"d'un caractère zéro (``'0'``) active le remplissage par zéro des types " +"numériques selon leur signe. Cela est équivalent à un caractère de " +"remplissage *fill* valant ``'0'`` avec le type d'alignement *alignment* " +"valant ``'='``." + +#: ../Doc/library/string.rst:427 +msgid "" +"The *precision* is a decimal number indicating how many digits should be " +"displayed after the decimal point for a floating point value formatted with " +"``'f'`` and ``'F'``, or before and after the decimal point for a floating " +"point value formatted with ``'g'`` or ``'G'``. For non-number types the " +"field indicates the maximum field size - in other words, how many characters " +"will be used from the field content. The *precision* is not allowed for " +"integer values." +msgstr "" +"La valeur *precision* est un nombre en base 10 indiquant combien de chiffres " +"doivent être affichés après la virgule pour une valeur à virgule flottante " +"formatée avec ``'f'`` ou ``'F'``, ou avant et après le point-décimal pour " +"une valeur à virgule flottante formatée avec ``'g'`` ou ``'G'``. Pour les " +"types non numériques, ce champ indique la taille maximale du champ, " +"autrement dit, combien de caractères du champ sont utilisés. Le " +"spécificateur *precision* n'est pas autorisé sur les entiers." + +#: ../Doc/library/string.rst:434 +msgid "Finally, the *type* determines how the data should be presented." +msgstr "" +"Finalement, le spécificateur *type* détermine comment la donnée doit être " +"représentée." + +#: ../Doc/library/string.rst:436 +msgid "The available string presentation types are:" +msgstr "Les types disponibles de représentation de chaîne sont :" + +#: ../Doc/library/string.rst:439 ../Doc/library/string.rst:450 +#: ../Doc/library/string.rst:482 +msgid "Type" +msgstr "Type" + +#: ../Doc/library/string.rst:441 +msgid "``'s'``" +msgstr "``'s'``" + +#: ../Doc/library/string.rst:441 +msgid "String format. This is the default type for strings and may be omitted." +msgstr "" +"Format de chaîne. C'est le type par défaut pour les chaînes de caractères et " +"peut être omis." + +#: ../Doc/library/string.rst:444 ../Doc/library/string.rst:471 +#: ../Doc/library/string.rst:532 +msgid "None" +msgstr "``None``" + +#: ../Doc/library/string.rst:444 +msgid "The same as ``'s'``." +msgstr "Pareil que ``'s'``." + +#: ../Doc/library/string.rst:447 +msgid "The available integer presentation types are:" +msgstr "Les types disponibles de représentation d'entier sont :" + +#: ../Doc/library/string.rst:452 +msgid "``'b'``" +msgstr "``'b'``" + +#: ../Doc/library/string.rst:452 +msgid "Binary format. Outputs the number in base 2." +msgstr "Format binaire. Affiche le nombre en base 2." + +#: ../Doc/library/string.rst:454 +msgid "``'c'``" +msgstr "``'c'``" + +#: ../Doc/library/string.rst:454 +msgid "" +"Character. Converts the integer to the corresponding unicode character " +"before printing." +msgstr "" +"Caractère. Convertit l'entier en le caractère Unicode associé avant de " +"l'afficher." + +#: ../Doc/library/string.rst:457 +msgid "``'d'``" +msgstr "``'d'``" + +#: ../Doc/library/string.rst:457 +msgid "Decimal Integer. Outputs the number in base 10." +msgstr "Entier décimal. Affiche le nombre en base 10." + +#: ../Doc/library/string.rst:459 +msgid "``'o'``" +msgstr "``'o'``" + +#: ../Doc/library/string.rst:459 +msgid "Octal format. Outputs the number in base 8." +msgstr "Format octal. Affiche le nombre en base 8." + +#: ../Doc/library/string.rst:461 +msgid "``'x'``" +msgstr "``'x'``" + +#: ../Doc/library/string.rst:461 +msgid "" +"Hex format. Outputs the number in base 16, using lower-case letters for the " +"digits above 9." +msgstr "" +"Format hexadécimal. Affiche le nombre en base 16 en utilisant les lettres " +"minuscules pour les chiffres au-dessus de 9." + +#: ../Doc/library/string.rst:464 +msgid "``'X'``" +msgstr "``'X'``" + +#: ../Doc/library/string.rst:464 +msgid "" +"Hex format. Outputs the number in base 16, using upper-case letters for the " +"digits above 9." +msgstr "" +"Format hexadécimal. Affiche le nombre en base 16 en utilisant les lettres " +"majuscules pour les chiffres au-dessus de 9." + +#: ../Doc/library/string.rst:467 ../Doc/library/string.rst:525 +msgid "``'n'``" +msgstr "``'n'``" + +#: ../Doc/library/string.rst:467 +msgid "" +"Number. This is the same as ``'d'``, except that it uses the current locale " +"setting to insert the appropriate number separator characters." +msgstr "" +"Nombre. Pareil que ``'d'`` si ce n'est que l'environnement linguistique est " +"utilisé afin de déterminer le séparateur de nombres approprié." + +#: ../Doc/library/string.rst:471 +msgid "The same as ``'d'``." +msgstr "Pareil que ``'d'``." + +#: ../Doc/library/string.rst:474 +msgid "" +"In addition to the above presentation types, integers can be formatted with " +"the floating point presentation types listed below (except ``'n'`` and " +"``None``). When doing so, :func:`float` is used to convert the integer to a " +"floating point number before formatting." +msgstr "" +"En plus des types de représentation ci-dessus, les entiers peuvent aussi " +"être formatés avec les types de représentation des flottants listés ci-" +"dessous (à l'exception de ``'n'`` et ``None``). Dans ce cas, la fonction :" +"func:`float` est utilisée pour convertir l'entier en flottant avant le " +"formatage." + +#: ../Doc/library/string.rst:479 +msgid "" +"The available presentation types for floating point and decimal values are:" +msgstr "" +"Les types de représentation pour les nombres flottants et les valeurs " +"décimales sont :" + +#: ../Doc/library/string.rst:484 +msgid "``'e'``" +msgstr "``'e'``" + +#: ../Doc/library/string.rst:484 +msgid "" +"Exponent notation. Prints the number in scientific notation using the letter " +"'e' to indicate the exponent. The default precision is ``6``." +msgstr "" +"Notation par exposant. Affiche le nombre dans sa notation scientifique en " +"utilisant la lettre 'e' pour indiquer l'exposant. La précision par défaut " +"est ``6``." + +#: ../Doc/library/string.rst:488 +msgid "``'E'``" +msgstr "``'E'``" + +#: ../Doc/library/string.rst:488 +msgid "" +"Exponent notation. Same as ``'e'`` except it uses an upper case 'E' as the " +"separator character." +msgstr "" +"Notation par exposant. Pareil que ``'e'`` sauf l'utilisation de la lettre " +"majuscule 'E' comme séparateur." + +#: ../Doc/library/string.rst:491 +msgid "``'f'``" +msgstr "``'f'``" + +#: ../Doc/library/string.rst:491 +msgid "" +"Fixed-point notation. Displays the number as a fixed-point number. The " +"default precision is ``6``." +msgstr "" +"Virgule fixe. Affiche le nombre comme un nombre à virgule fixe. La précision " +"par défaut est ``6``." + +#: ../Doc/library/string.rst:494 +msgid "``'F'``" +msgstr "``'F'``" + +#: ../Doc/library/string.rst:494 +msgid "" +"Fixed-point notation. Same as ``'f'``, but converts ``nan`` to ``NAN`` and " +"``inf`` to ``INF``." +msgstr "" +"Virgule fixe. Pareil que ``'f'`` à part ``nan`` qui devient ``NAN`` et " +"``inf`` qui devient ``INF``." + +#: ../Doc/library/string.rst:497 +msgid "``'g'``" +msgstr "``'g'``" + +#: ../Doc/library/string.rst:497 +msgid "" +"General format. For a given precision ``p >= 1``, this rounds the number to " +"``p`` significant digits and then formats the result in either fixed-point " +"format or in scientific notation, depending on its magnitude." +msgstr "" +"Format général. Pour une précision donnée ``p >= 1``, ceci arrondit le " +"nombre à ``p`` chiffres significatifs et puis formate le résultat soit en " +"virgule fixe soit en notation scientifique, en fonction de la magnitude." + +#: ../Doc/library/string.rst:502 +msgid "" +"The precise rules are as follows: suppose that the result formatted with " +"presentation type ``'e'`` and precision ``p-1`` would have exponent " +"``exp``. Then if ``-4 <= exp < p``, the number is formatted with " +"presentation type ``'f'`` and precision ``p-1-exp``. Otherwise, the number " +"is formatted with presentation type ``'e'`` and precision ``p-1``. In both " +"cases insignificant trailing zeros are removed from the significand, and the " +"decimal point is also removed if there are no remaining digits following it." +msgstr "" +"Les règles précises sont les suivantes : supposons que le résultat formaté " +"avec le type de représentation ``'e'`` et une précision ``1`` ait un " +"exposant ``exp``. Alors, si ``-4 <= exp <= p``, le nombre est formaté avec " +"le type de représentation ``'f'`` et une précision ``p-1-exp``. Sinon, le " +"nombre est formaté avec le type de représentation ``'e'`` et une précision " +"``p-1``. Dans les deux cas, les zéros finaux et non significatifs sont " +"retirés, et la virgule est également retirée s'il n'y a aucun chiffre la " +"suivant." + +#: ../Doc/library/string.rst:513 +msgid "" +"Positive and negative infinity, positive and negative zero, and nans, are " +"formatted as ``inf``, ``-inf``, ``0``, ``-0`` and ``nan`` respectively, " +"regardless of the precision." +msgstr "" +"Les valeurs suivantes : infini négatif, infini positif, zéro positif, zéro " +"négatif, *not a number* sont formatées respectivement par ``inf``, ``-inf``, " +"``0``, ``-0`` et ``nan``, peu importe la précision." + +#: ../Doc/library/string.rst:518 +msgid "" +"A precision of ``0`` is treated as equivalent to a precision of ``1``. The " +"default precision is ``6``." +msgstr "" +"Une précision de ``0`` est interprétée comme une précision de ``1``. La " +"précision par défaut est ``6``." + +#: ../Doc/library/string.rst:521 +msgid "``'G'``" +msgstr "``'G'``" + +#: ../Doc/library/string.rst:521 +msgid "" +"General format. Same as ``'g'`` except switches to ``'E'`` if the number " +"gets too large. The representations of infinity and NaN are uppercased, too." +msgstr "" +"Format général. Pareil que ``'G'`` si ce n'est que ``'E'`` est utilisé si le " +"nombre est trop grand. Également, la représentation des infinis et de Nan " +"sont en majuscules également." + +#: ../Doc/library/string.rst:525 +msgid "" +"Number. This is the same as ``'g'``, except that it uses the current locale " +"setting to insert the appropriate number separator characters." +msgstr "" +"Nombre. Pareil que ``'g'``, si ce n'est que l'environnement linguistique est " +"pris en compte pour insérer le séparateur approprié." + +#: ../Doc/library/string.rst:529 +msgid "``'%'``" +msgstr "``'%'``" + +#: ../Doc/library/string.rst:529 +msgid "" +"Percentage. Multiplies the number by 100 and displays in fixed (``'f'``) " +"format, followed by a percent sign." +msgstr "" +"Pourcentage. Multiplie le nombre par 100 et l'affiche en virgule fixe " +"(``'f'``), suivi d'un symbole pourcent ``'%'``." + +#: ../Doc/library/string.rst:532 +msgid "" +"Similar to ``'g'``, except that fixed-point notation, when used, has at " +"least one digit past the decimal point. The default precision is as high as " +"needed to represent the particular value. The overall effect is to match the " +"output of :func:`str` as altered by the other format modifiers." +msgstr "" +"Pareil que ``'g'``, si ce n'est que lorsque la notation en virgule fixe est " +"utilisée, il y a toujours au moins un chiffre derrière la virgule. La " +"précision par défaut celle nécessaire pour afficher la valeur donnée. " +"L'effet visé est de le faire correspondre à la valeur renvoyée par :func:" +"`str` altérée par les autres modificateurs de format." + +#: ../Doc/library/string.rst:544 +msgid "Format examples" +msgstr "Exemples de formats" + +#: ../Doc/library/string.rst:546 +msgid "" +"This section contains examples of the :meth:`str.format` syntax and " +"comparison with the old ``%``-formatting." +msgstr "" +"Cette section contient des exemples de la syntaxe de :meth:`str.format` et " +"des comparaisons avec l'ancien formatage par ``%``." + +#: ../Doc/library/string.rst:549 +msgid "" +"In most of the cases the syntax is similar to the old ``%``-formatting, with " +"the addition of the ``{}`` and with ``:`` used instead of ``%``. For " +"example, ``'%03.2f'`` can be translated to ``'{:03.2f}'``." +msgstr "" +"Dans la plupart des cases, la syntaxe est similaire à l'ancien formatage par " +"``%``, avec l'ajout de ``{}`` et avec ``:`` au lieu de ``%``. Par exemple : " +"``'%03.2f'`` peut être changé en ``'{03.2f}'``." + +#: ../Doc/library/string.rst:553 +msgid "" +"The new format syntax also supports new and different options, shown in the " +"following examples." +msgstr "" +"La nouvelle syntaxe de formatage gère également de nouvelles options et des " +"options différentes, montrées dans les exemples qui suivent." + +#: ../Doc/library/string.rst:556 +msgid "Accessing arguments by position::" +msgstr "Accéder à un argument par sa position ::" + +#: ../Doc/library/string.rst:569 +msgid "Accessing arguments by name::" +msgstr "Accéder à un argument par son nom ::" + +#: ../Doc/library/string.rst:577 +msgid "Accessing arguments' attributes::" +msgstr "Accéder aux attributs d'un argument ::" + +#: ../Doc/library/string.rst:592 +msgid "Accessing arguments' items::" +msgstr "Accéder aux éléments d'un argument ::" + +#: ../Doc/library/string.rst:598 +msgid "Replacing ``%s`` and ``%r``::" +msgstr "Remplacer ``%s`` et ``%r`` ::" + +#: ../Doc/library/string.rst:603 +msgid "Aligning the text and specifying a width::" +msgstr "Aligner le texte et spécifier une longueur minimale ::" + +#: ../Doc/library/string.rst:614 +msgid "Replacing ``%+f``, ``%-f``, and ``% f`` and specifying a sign::" +msgstr "Remplacer ``%+f``, ``%-f``, et ``%f`` et spécifier un signe ::" + +#: ../Doc/library/string.rst:623 +msgid "" +"Replacing ``%x`` and ``%o`` and converting the value to different bases::" +msgstr "" +"Remplacer ``%x`` et ``%o`` et convertir la valeur dans différentes bases ::" + +#: ../Doc/library/string.rst:632 +msgid "Using the comma as a thousands separator::" +msgstr "Utiliser une virgule comme séparateur des milliers ::" + +#: ../Doc/library/string.rst:637 +msgid "Expressing a percentage::" +msgstr "Exprimer un pourcentage ::" + +#: ../Doc/library/string.rst:644 +msgid "Using type-specific formatting::" +msgstr "Utiliser un formatage propre au type ::" + +#: ../Doc/library/string.rst:651 +msgid "Nesting arguments and more complex examples::" +msgstr "Arguments imbriqués et des exemples plus complexes ::" + +#: ../Doc/library/string.rst:685 +msgid "Template strings" +msgstr "Chaînes modèles" + +#: ../Doc/library/string.rst:687 +msgid "" +"Template strings provide simpler string substitutions as described in :pep:" +"`292`. A primary use case for template strings is for internationalization " +"(i18n) since in that context, the simpler syntax and functionality makes it " +"easier to translate than other built-in string formatting facilities in " +"Python. As an example of a library built on template strings for i18n, see " +"the `flufl.i18n `_ package." +msgstr "" +"Les chaînes modèles fournissent des substitutions de chaînes plus simples, " +"comme décrit dans :pep:`292`. L’internationalisation (*i18n*) est un cas " +"d’utilisation principale pour les chaînes modèles, car dans ce contexte, la " +"syntaxe et les fonctionnalités simplifiées facilitent la traduction par " +"rapport aux autres fonctions de formatage de chaînes intégrées en Python. " +"Comme exemple de bibliothèque construite sur des chaînes modèles pour " +"l'internationalisation, voir le paquet `flufl.i18n `." + +#: ../Doc/library/string.rst:697 +msgid "" +"Template strings support ``$``-based substitutions, using the following " +"rules:" +msgstr "" +"Les chaînes modèles prennent en charge les substitutions basées sur ``$`` en " +"utilisant les règles suivantes :" + +#: ../Doc/library/string.rst:699 +msgid "``$$`` is an escape; it is replaced with a single ``$``." +msgstr "``$$`` est un échappement ; il est remplacé par un simple ``$``." + +#: ../Doc/library/string.rst:701 +msgid "" +"``$identifier`` names a substitution placeholder matching a mapping key of ``" +"\"identifier\"``. By default, ``\"identifier\"`` is restricted to any case-" +"insensitive ASCII alphanumeric string (including underscores) that starts " +"with an underscore or ASCII letter. The first non-identifier character " +"after the ``$`` character terminates this placeholder specification." +msgstr "" +"``$identifier`` dénomme un substituant lié à la clef ``\"identifier\"``. Par " +"défaut, ``\"identifier\"`` est restreint à toute chaîne de caractères ASCII " +"alphanumériques sensibles à la casse (avec les *underscores*) commençant " +"avec un *underscore* ou un caractère alphanumérique. Le premier caractère " +"n'étant pas un identifieur après le ``$`` termine la spécification du " +"substituant." + +#: ../Doc/library/string.rst:708 +msgid "" +"``${identifier}`` is equivalent to ``$identifier``. It is required when " +"valid identifier characters follow the placeholder but are not part of the " +"placeholder, such as ``\"${noun}ification\"``." +msgstr "" +"``${identifier}`` est équivalent à ``$identifier``. Cette notation est " +"requise quand un caractère valide pour une clef de substituant suit " +"directement le substituant mais ne fait pas partie du substituant, comme ``" +"\"${noun}ification\"``." + +#: ../Doc/library/string.rst:712 +msgid "" +"Any other appearance of ``$`` in the string will result in a :exc:" +"`ValueError` being raised." +msgstr "" +"Tout autre présence du symbole ``$`` dans une chaîne résultera en la levée " +"d'une :exc:`ValueError`." + +#: ../Doc/library/string.rst:715 +msgid "" +"The :mod:`string` module provides a :class:`Template` class that implements " +"these rules. The methods of :class:`Template` are:" +msgstr "" +"Le module :mod:`string` fournit une classe :class:`Template` qui implémente " +"ces règles. Les méthodes de :class:`Template` sont :" + +#: ../Doc/library/string.rst:721 +msgid "The constructor takes a single argument which is the template string." +msgstr "" +"Le constructeur prend un seul argument qui est la chaîne du *template*." + +#: ../Doc/library/string.rst:726 +msgid "" +"Performs the template substitution, returning a new string. *mapping* is " +"any dictionary-like object with keys that match the placeholders in the " +"template. Alternatively, you can provide keyword arguments, where the " +"keywords are the placeholders. When both *mapping* and *kwds* are given and " +"there are duplicates, the placeholders from *kwds* take precedence." +msgstr "" +"Applique les substitutions du *template*, et la renvoie dans une nouvelle " +"chaîne. *mapping* est un objet dictionnaire-compatible qui lie les " +"substituants dans le *template*. De même, vous pouvez fournir des arguments " +"mot-clefs tels que les mot-clefs sont les substituants. Quand à la fois " +"*mapping* et *kwds* sont donnés et qu'il y a des doublons, les substituants " +"de *kwds* sont prioritaires." + +#: ../Doc/library/string.rst:735 +msgid "" +"Like :meth:`substitute`, except that if placeholders are missing from " +"*mapping* and *kwds*, instead of raising a :exc:`KeyError` exception, the " +"original placeholder will appear in the resulting string intact. Also, " +"unlike with :meth:`substitute`, any other appearances of the ``$`` will " +"simply return ``$`` instead of raising :exc:`ValueError`." +msgstr "" +"Comme :meth:`substitute`, si ce n'est qu'au lieu de lever une :exc:" +"`KeyError` si un substituant n'est ni dans *mapping*, ni dans *kwds*, c'est " +"le nom du substituant inchangé qui apparaît dans la chaîne finale. " +"Également, à l'inverse de :meth:`substitute`, toute autre apparition de ``" +"$`` renverra simplement ``$`` au lieu de lever une exception :exc:" +"`ValueError`." + +#: ../Doc/library/string.rst:741 +msgid "" +"While other exceptions may still occur, this method is called \"safe\" " +"because it always tries to return a usable string instead of raising an " +"exception. In another sense, :meth:`safe_substitute` may be anything other " +"than safe, since it will silently ignore malformed templates containing " +"dangling delimiters, unmatched braces, or placeholders that are not valid " +"Python identifiers." +msgstr "" +"Bien que d'autres exceptions peuvent toujours être levées, cette méthode est " +"dite sûre car elle tente de toujours renvoyer une chaîne utilisable au lieu " +"de lever une exception. Ceci dit, :meth:`safe_substitute` est tout sauf sûre " +"car elle ignore silencieusement toute malformation dans le *template* qui " +"contient des délimiteurs fantômes, des accolades non fermées, ou des " +"substituants qui ne sont pas des identificateurs Python valides." + +#: ../Doc/library/string.rst:748 +msgid ":class:`Template` instances also provide one public data attribute:" +msgstr "" +"Les instances de la classe :class:`Template` fournissent également un " +"attribut public :" + +#: ../Doc/library/string.rst:752 +msgid "" +"This is the object passed to the constructor's *template* argument. In " +"general, you shouldn't change it, but read-only access is not enforced." +msgstr "" +"C'est l'objet *template* passé comme argument au constructeur. En général, " +"vous ne devriez pas le changer, mais un accès en lecture-seule n'est pas " +"possible à fournir." + +#: ../Doc/library/string.rst:755 +msgid "Here is an example of how to use a Template::" +msgstr "Voici un exemple de comment utiliser un *Template* ::" + +#: ../Doc/library/string.rst:773 +msgid "" +"Advanced usage: you can derive subclasses of :class:`Template` to customize " +"the placeholder syntax, delimiter character, or the entire regular " +"expression used to parse template strings. To do this, you can override " +"these class attributes:" +msgstr "" +"Usage avancé : vous pouvez faire dériver vos sous-classes de :class:" +"`Template` pour personnaliser la syntaxe des substituants, les caractères " +"délimiteurs, ou l'entièreté de l'expression rationnelle utilisée pour " +"analyser les chaînes *templates*. Pour faire cela, vous pouvez redéfinir les " +"attributs suivants :" + +#: ../Doc/library/string.rst:778 +msgid "" +"*delimiter* -- This is the literal string describing a placeholder " +"introducing delimiter. The default value is ``$``. Note that this should " +"*not* be a regular expression, as the implementation will call :meth:`re." +"escape` on this string as needed. Note further that you cannot change the " +"delimiter after class creation (i.e. a different delimiter must be set in " +"the subclass's class namespace)." +msgstr "" +"*delimiter* -- La chaîne littérale décrivant le délimiteur pour introduire " +"un substituant. Sa valeur par défaut est ``$``. Notez qu'elle ne doit *pas* " +"être une expression rationnelle, puisque l'implémentation appelle :meth:`re." +"escape` sur cette chaîne si nécessaire. Notez aussi que le délimiteur ne " +"peut pas être changé après la création de la classe." + +#: ../Doc/library/string.rst:785 +msgid "" +"*idpattern* -- This is the regular expression describing the pattern for non-" +"braced placeholders. The default value is the regular expression ``(?a:[_a-" +"z][_a-z0-9]*)``. If this is given and *braceidpattern* is ``None`` this " +"pattern will also apply to braced placeholders." +msgstr "" +"*idpattern* -- L'expression rationnelle décrivant le motif pour les " +"substituants non entourés d'accolades. La valeur par défaut de cette " +"expression rationnelle est ``(?a:[_a-z][_a-z0-9]*)``. Si *idpattern* est " +"donné et *braceidpattern* est ``None``, ce motif est aussi utilisé pour les " +"marqueurs entre accolades." + +#: ../Doc/library/string.rst:792 +msgid "" +"Since default *flags* is ``re.IGNORECASE``, pattern ``[a-z]`` can match with " +"some non-ASCII characters. That's why we use the local ``a`` flag here." +msgstr "" +"Puisque par défaut *flags* vaut ``re.IGNORECASE``, des caractères *non-" +"ASCII* peuvent correspondre au motif ``[a-z]``. C'est pourquoi on utilise " +"une option locale ``a`` ici." + +#: ../Doc/library/string.rst:796 +msgid "" +"*braceidpattern* can be used to define separate patterns used inside and " +"outside the braces." +msgstr "" +"*braceidpattern* peut être utilisé pour définir des motifs des motifs " +"différents suivant qu’ils sont à l’intérieur ou à l’extérieur des accolades." + +#: ../Doc/library/string.rst:800 +msgid "" +"*braceidpattern* -- This is like *idpattern* but describes the pattern for " +"braced placeholders. Defaults to ``None`` which means to fall back to " +"*idpattern* (i.e. the same pattern is used both inside and outside braces). " +"If given, this allows you to define different patterns for braced and " +"unbraced placeholders." +msgstr "" +"*braceidpattern* — Similaire à *idpattern* mais décrit le motif quand il est " +"placé entre accolades. La valeur par défaut est ``None``` ce qui signifie " +"que seul *idpattern* est pris en compte (le motif est le même, qu’il soit à " +"l’intérieur d’accolades ou non). S’il est donné, cela vous permet de définir " +"définir des motifs entre accolades différents des motifs sans accolades." + +#: ../Doc/library/string.rst:808 +msgid "" +"*flags* -- The regular expression flags that will be applied when compiling " +"the regular expression used for recognizing substitutions. The default " +"value is ``re.IGNORECASE``. Note that ``re.VERBOSE`` will always be added " +"to the flags, so custom *idpattern*\\ s must follow conventions for verbose " +"regular expressions." +msgstr "" +"*flags* -- L'indicateur d'expression rationnelle qui sera appliqué lors de " +"la compilation de l'expression rationnelle pour reconnaître les " +"substitutions. La valeur par défaut est ``re.IGNORECASE``. Notez que ``re." +"VERBOSE`` sera toujours ajouté à l'indicateur. Donc, un *idpattern* " +"personnalisé doit suivre les conventions des expressions rationnelles " +"*verbose*." + +#: ../Doc/library/string.rst:816 +msgid "" +"Alternatively, you can provide the entire regular expression pattern by " +"overriding the class attribute *pattern*. If you do this, the value must be " +"a regular expression object with four named capturing groups. The capturing " +"groups correspond to the rules given above, along with the invalid " +"placeholder rule:" +msgstr "" +"Également, vous pouvez fournir le motif d'expression rationnelle en entier " +"en redéfinissant l'attribut *pattern*. Si vous faites cela, la valeur doit " +"être un objet 'expression rationnelle' avec quatre groupes de capture de " +"noms. Les groupes de capture correspondent aux règles données au-dessus, " +"ainsi qu'à la règle du substituant invalide :" + +#: ../Doc/library/string.rst:822 +msgid "" +"*escaped* -- This group matches the escape sequence, e.g. ``$$``, in the " +"default pattern." +msgstr "" +"*escaped* -- Ce groupe lie les séquences échappées (par exemple ``$$``) dans " +"le motif par défaut." + +#: ../Doc/library/string.rst:825 +msgid "" +"*named* -- This group matches the unbraced placeholder name; it should not " +"include the delimiter in capturing group." +msgstr "" +"*named* -- Ce groupe lie les substituants non entourés d'accolades ; il ne " +"devrait pas inclure le délimiteur dans le groupe de capture." + +#: ../Doc/library/string.rst:828 +msgid "" +"*braced* -- This group matches the brace enclosed placeholder name; it " +"should not include either the delimiter or braces in the capturing group." +msgstr "" +"*braced* -- Ce groupe lie le nom entouré d'accolades ; il ne devrait inclure " +"ni le délimiteur, ni les accolades dans le groupe de capture." + +#: ../Doc/library/string.rst:831 +msgid "" +"*invalid* -- This group matches any other delimiter pattern (usually a " +"single delimiter), and it should appear last in the regular expression." +msgstr "" +"*invalid* -- Ce groupe lie tout autre motif de délimitation (habituellement, " +"un seul délimiteur) et il devrait apparaître en dernier dans l'expression " +"rationnelle." + +#: ../Doc/library/string.rst:836 +msgid "Helper functions" +msgstr "Fonctions d'assistance" + +#: ../Doc/library/string.rst:840 +msgid "" +"Split the argument into words using :meth:`str.split`, capitalize each word " +"using :meth:`str.capitalize`, and join the capitalized words using :meth:" +"`str.join`. If the optional second argument *sep* is absent or ``None``, " +"runs of whitespace characters are replaced by a single space and leading and " +"trailing whitespace are removed, otherwise *sep* is used to split and join " +"the words." +msgstr "" +"Divise l'argument en mots en utilisant :meth:`str.split`, capitalise chaque " +"mot en utilisant :meth:`str.capitalize` et assemble les mots capitalisés en " +"utilisant :meth:`str.join`. Si le second argument optionnel *sep* est absent " +"ou vaut ``None``, les séquences de caractères blancs sont remplacées par un " +"seul espace et les espaces débutant et finissant la chaîne sont retirés. " +"Sinon, *sep* et utilisé pour séparer et ré-assembler les mots." + +#~ msgid "" +#~ "Passing a format string as keyword argument *format_string* has been " +#~ "deprecated." +#~ msgstr "" +#~ "Passer la chaîne de format comme argument mot-clef *format_string* est " +#~ "obsolète." + +#~ msgid "" +#~ "Templates provide simpler string substitutions as described in :pep:" +#~ "`292`. Instead of the normal ``%``\\ -based substitutions, Templates " +#~ "support ``$``\\ -based substitutions, using the following rules:" +#~ msgstr "" +#~ "Les modèles (*templates*) fournissent des substitutions de chaînes plus " +#~ "simples comme décrit dans :pep:`292`. À la place des substitutions " +#~ "habituelles basées sur ``%``, les *Templates* supportent les " +#~ "substitutions basées sur ``$`` en utilisant les règles suivantes :" diff --git a/library/stringprep.po b/library/stringprep.po new file mode 100644 index 000000000..533c710f0 --- /dev/null +++ b/library/stringprep.po @@ -0,0 +1,216 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: 2019-02-26 16:13+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/stringprep.rst:2 +msgid ":mod:`stringprep` --- Internet String Preparation" +msgstr ":mod:`stringprep` — Préparation des chaines de caractères internet" + +#: ../Doc/library/stringprep.rst:10 +msgid "**Source code:** :source:`Lib/stringprep.py`" +msgstr "**Code source :** :source:`Lib/stringprep.py`" + +#: ../Doc/library/stringprep.rst:14 +msgid "" +"When identifying things (such as host names) in the internet, it is often " +"necessary to compare such identifications for \"equality\". Exactly how this " +"comparison is executed may depend on the application domain, e.g. whether it " +"should be case-insensitive or not. It may be also necessary to restrict the " +"possible identifications, to allow only identifications consisting of " +"\"printable\" characters." +msgstr "" +"Nommer les différentes choses d'internet (comme les hôtes) amène souvent au " +"besoin de comparer ces identifiants, ce qui nécessite un critère " +"d'« égalité ». La manière dont cette comparaison est effectuée dépend du " +"domaine d'application, c'est-à-dire si elle doit être sensible à la casse ou " +"non. Il peut être aussi nécessaire de restreindre les identifiants " +"possibles, pour permettre uniquement les identifiants composés de caractères " +"« imprimables »." + +#: ../Doc/library/stringprep.rst:21 +msgid "" +":rfc:`3454` defines a procedure for \"preparing\" Unicode strings in " +"internet protocols. Before passing strings onto the wire, they are processed " +"with the preparation procedure, after which they have a certain normalized " +"form. The RFC defines a set of tables, which can be combined into profiles. " +"Each profile must define which tables it uses, and what other optional parts " +"of the ``stringprep`` procedure are part of the profile. One example of a " +"``stringprep`` profile is ``nameprep``, which is used for internationalized " +"domain names." +msgstr "" +"La :rfc:`3454` définit une procédure pour \"préparer\" des chaines de " +"caractères Unicode dans les protocoles internet. Avant de passer des chaines " +"de caractères sur le câble, elles sont traitées avec la procédure de " +"préparation, après laquelle ils obtiennent une certaines forme normalisée. " +"Les RFC définissent un lot de tables, qui peuvent être combinées en profils. " +"Chaque profil doit définir quelles tables il utilise et quelles autres " +"parties optionnelles de la procédure *stringprep* font partie du profil. Un " +"exemple de profil *stringprep* est *nameprep*, qui est utilisé pour les noms " +"de domaine internationalisés." + +#: ../Doc/library/stringprep.rst:29 +msgid "" +"The module :mod:`stringprep` only exposes the tables from :rfc:`3454`. As " +"these tables would be very large to represent them as dictionaries or lists, " +"the module uses the Unicode character database internally. The module source " +"code itself was generated using the ``mkstringprep.py`` utility." +msgstr "" +"Le module :mod:`stringprep` expose uniquement les tables de la :rfc:`3454`. " +"Comme ces tables seraient très grandes à représenter en tant que " +"dictionnaires ou listes, le module utilise, en interne, la base de données " +"des caractères Unicode. Le code source du module, lui-même, a été généré en " +"utilisant l'utilitaire ``mkstringprep.py``." + +#: ../Doc/library/stringprep.rst:34 +msgid "" +"As a result, these tables are exposed as functions, not as data structures. " +"There are two kinds of tables in the RFC: sets and mappings. For a set, :mod:" +"`stringprep` provides the \"characteristic function\", i.e. a function that " +"returns true if the parameter is part of the set. For mappings, it provides " +"the mapping function: given the key, it returns the associated value. Below " +"is a list of all functions available in the module." +msgstr "" +"En conséquence, ces tables sont exposées en tant que fonctions et non en " +"structures de données. Il y a deux types de tables dans la RFC : les " +"ensemble et les mises en correspondance. Pour un ensemble, :mod:`stringprep` " +"fournit la \"fonction caractéristique\", c'est-à-dire une fonction qui " +"renvoie vrai si le paramètre fait partie de l'ensemble. Pour les mises en " +"correspondance, il fournit la fonction de mise en correspondance : ayant " +"obtenu la clé, il renvoie la valeur associée. Ci-dessous se trouve une liste " +"de toutes les fonctions disponibles dans le module." + +#: ../Doc/library/stringprep.rst:44 +msgid "" +"Determine whether *code* is in tableA.1 (Unassigned code points in Unicode " +"3.2)." +msgstr "" +"Détermine si le code est en table A.1 (points de code non-assigné dans " +"Unicode 3.2)." + +#: ../Doc/library/stringprep.rst:49 +msgid "Determine whether *code* is in tableB.1 (Commonly mapped to nothing)." +msgstr "" +"Détermine si le code est en table B.1 (habituellement mis en correspondance " +"avec rien)." + +#: ../Doc/library/stringprep.rst:54 +msgid "" +"Return the mapped value for *code* according to tableB.2 (Mapping for case-" +"folding used with NFKC)." +msgstr "" +"Renvoie la valeur correspondante à *code* selon la table B.2 (mise en " +"correspondance pour la gestion de la casse utilisée avec *NFKC*)." + +#: ../Doc/library/stringprep.rst:60 +msgid "" +"Return the mapped value for *code* according to tableB.3 (Mapping for case-" +"folding used with no normalization)." +msgstr "" +"Renvoie la valeur correspondante à *code* dans la table B.3 (mise en " +"correspondance pour la gestion de la casse utilisée sans normalisation)." + +#: ../Doc/library/stringprep.rst:66 +msgid "Determine whether *code* is in tableC.1.1 (ASCII space characters)." +msgstr "" +"Détermine si le code est dans la table C.1.1 (caractères d'espacement ASCII)." + +#: ../Doc/library/stringprep.rst:71 +msgid "" +"Determine whether *code* is in tableC.1.2 (Non-ASCII space characters)." +msgstr "" +"Détermine si le code est dans la table C.1.2 (caractères d'espacement non " +"ASCII)." + +#: ../Doc/library/stringprep.rst:76 +msgid "" +"Determine whether *code* is in tableC.1 (Space characters, union of C.1.1 " +"and C.1.2)." +msgstr "" +"Détermine si le code est dans la table C.1 (caractères d'espacement, union " +"de C.1.1 et C.1.2)." + +#: ../Doc/library/stringprep.rst:82 +msgid "Determine whether *code* is in tableC.2.1 (ASCII control characters)." +msgstr "" +"Détermine si le code est dans la table C.2.1 (caractères de contrôle ASCII)." + +#: ../Doc/library/stringprep.rst:87 +msgid "" +"Determine whether *code* is in tableC.2.2 (Non-ASCII control characters)." +msgstr "" +"Détermine si le code est en table C.2.2 (caractères de contrôle non ASCII)." + +#: ../Doc/library/stringprep.rst:92 +msgid "" +"Determine whether *code* is in tableC.2 (Control characters, union of C.2.1 " +"and C.2.2)." +msgstr "" +"Détermine si le code est dans la table C.2 (caractères de contrôle, union de " +"C.2.1 et C.2.2)." + +#: ../Doc/library/stringprep.rst:98 +msgid "Determine whether *code* is in tableC.3 (Private use)." +msgstr "Détermine si le code est en table C.3 (usage privé)." + +#: ../Doc/library/stringprep.rst:103 +msgid "Determine whether *code* is in tableC.4 (Non-character code points)." +msgstr "" +"Détermine si le code est dans la table C.4 (points de code non-caractère)." + +#: ../Doc/library/stringprep.rst:108 +msgid "Determine whether *code* is in tableC.5 (Surrogate codes)." +msgstr "Détermine si le code est en table C.5 (codes substituts)." + +#: ../Doc/library/stringprep.rst:113 +msgid "" +"Determine whether *code* is in tableC.6 (Inappropriate for plain text)." +msgstr "" +"Détermine si le code est dans la table C.6 (Inapproprié pour texte brut)." + +#: ../Doc/library/stringprep.rst:118 +msgid "" +"Determine whether *code* is in tableC.7 (Inappropriate for canonical " +"representation)." +msgstr "" +"Détermine si le code est dans la table C.7 (inapproprié pour les " +"représentations *canonics1*)." + +#: ../Doc/library/stringprep.rst:124 +msgid "" +"Determine whether *code* is in tableC.8 (Change display properties or are " +"deprecated)." +msgstr "" +"Détermine si le code est dans la table C.8 (change de propriétés d'affichage " +"ou sont obsolètes)." + +#: ../Doc/library/stringprep.rst:130 +msgid "Determine whether *code* is in tableC.9 (Tagging characters)." +msgstr "Détermine si le code est dans la table C.9 (caractères de marquage)." + +#: ../Doc/library/stringprep.rst:135 +msgid "" +"Determine whether *code* is in tableD.1 (Characters with bidirectional " +"property \"R\" or \"AL\")." +msgstr "" +"Détermine si le code est en table D.1 (caractères avec propriété " +"bidirectionnelle \"R\" ou \"AL\")." + +#: ../Doc/library/stringprep.rst:141 +msgid "" +"Determine whether *code* is in tableD.2 (Characters with bidirectional " +"property \"L\")." +msgstr "" +"Détermine si le code est dans la table D.2 (caractères avec propriété " +"bidirectionnelle \"L\")." diff --git a/library/struct.po b/library/struct.po new file mode 100644 index 000000000..8f87d939f --- /dev/null +++ b/library/struct.po @@ -0,0 +1,1008 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2017-08-10 00:55+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/library/struct.rst:2 +msgid ":mod:`struct` --- Interpret bytes as packed binary data" +msgstr "" +":mod:`struct` — manipulation de données agrégées sous forme binaire comme " +"une séquence d'octets" + +#: ../Doc/library/struct.rst:7 +msgid "**Source code:** :source:`Lib/struct.py`" +msgstr "**Code source :** :source:`Lib/struct.py`" + +#: ../Doc/library/struct.rst:15 +msgid "" +"This module performs conversions between Python values and C structs " +"represented as Python :class:`bytes` objects. This can be used in handling " +"binary data stored in files or from network connections, among other " +"sources. It uses :ref:`struct-format-strings` as compact descriptions of " +"the layout of the C structs and the intended conversion to/from Python " +"values." +msgstr "" +"Ce module effectue des conversions entre des valeurs Python et des " +"structures C représentées sous la forme de :class:`bytes` (séquences " +"d'octets) Python. Cela permet, entre autres, de manipuler des données " +"agrégées sous forme binaire dans des fichiers ou à travers des connecteurs " +"réseau. Il utilise :ref:`les chaînes de spécification de format ` comme description de l'agencement des structures afin de " +"réaliser les conversions depuis et vers les valeurs Python." + +#: ../Doc/library/struct.rst:23 +msgid "" +"By default, the result of packing a given C struct includes pad bytes in " +"order to maintain proper alignment for the C types involved; similarly, " +"alignment is taken into account when unpacking. This behavior is chosen so " +"that the bytes of a packed struct correspond exactly to the layout in memory " +"of the corresponding C struct. To handle platform-independent data formats " +"or omit implicit pad bytes, use ``standard`` size and alignment instead of " +"``native`` size and alignment: see :ref:`struct-alignment` for details." +msgstr "" +"par défaut, le résultat de l'agrégation d'une structure C donnée comprend " +"des octets de bourrage afin de maintenir un alignement correct des types C " +"sous-jacents ; de la même manière, l'alignement est pris en compte lors de " +"la dissociation. Ce comportement a été choisi de manière à ce que les octets " +"d'une structure agrégée reproduisent exactement l'agencement en mémoire de " +"la structure C équivalente. Pour gérer des formats de données indépendants " +"de la plateforme ou omettre les octets implicites de bourrage, utilisez la " +"taille et l'alignement ``standard`` en lieu et place de la taille et " +"l'alignement ``native`` (voir :ref:`struct-alignment` pour les détails)." + +#: ../Doc/library/struct.rst:31 +msgid "" +"Several :mod:`struct` functions (and methods of :class:`Struct`) take a " +"*buffer* argument. This refers to objects that implement the :ref:" +"`bufferobjects` and provide either a readable or read-writable buffer. The " +"most common types used for that purpose are :class:`bytes` and :class:" +"`bytearray`, but many other types that can be viewed as an array of bytes " +"implement the buffer protocol, so that they can be read/filled without " +"additional copying from a :class:`bytes` object." +msgstr "" +"Plusieurs fonctions de :mod:`struct` (et méthodes de :class:`Struct`) " +"prennent un argument *buffer*. Cet argument fait référence à des objets qui " +"implémentent :ref:`le protocole tampon ` et qui proposent un " +"tampon soit en lecture seule, soit en lecture-écriture. Les types les plus " +"courants qui utilisent cette fonctionnalité sont :class:`bytes` et :class:" +"`bytearray`, mais beaucoup d'autres types qui peuvent être considérés comme " +"des tableaux d'octets implémentent le protocole tampon ; ils peuvent ainsi " +"être lus ou remplis depuis un objet :class:`bytes` sans faire de copie." + +#: ../Doc/library/struct.rst:40 +msgid "Functions and Exceptions" +msgstr "Fonctions et exceptions" + +#: ../Doc/library/struct.rst:42 +msgid "The module defines the following exception and functions:" +msgstr "Le module définit les exceptions et fonctions suivantes :" + +#: ../Doc/library/struct.rst:47 +msgid "" +"Exception raised on various occasions; argument is a string describing what " +"is wrong." +msgstr "" +"Exception levée à plusieurs occasions ; l'argument est une chaîne qui décrit " +"ce qui ne va pas." + +#: ../Doc/library/struct.rst:53 +msgid "" +"Return a bytes object containing the values *v1*, *v2*, ... packed according " +"to the format string *format*. The arguments must match the values required " +"by the format exactly." +msgstr "" +"Renvoie un objet *bytes* contenant les valeurs *v1*, *v2*… agrégées " +"conformément à la chaîne de format *format*. Les arguments doivent " +"correspondre exactement aux valeurs requises par le format." + +#: ../Doc/library/struct.rst:60 +msgid "" +"Pack the values *v1*, *v2*, ... according to the format string *format* and " +"write the packed bytes into the writable buffer *buffer* starting at " +"position *offset*. Note that *offset* is a required argument." +msgstr "" +"Agrège les valeurs *v1*, *v2*… conformément à la chaîne de format *format* " +"et écrit les octets agrégés dans le tampon *buffer*, en commençant à la " +"position *offset*. Notez que *offset* est un argument obligatoire." + +#: ../Doc/library/struct.rst:67 +msgid "" +"Unpack from the buffer *buffer* (presumably packed by ``pack(format, ...)``) " +"according to the format string *format*. The result is a tuple even if it " +"contains exactly one item. The buffer's size in bytes must match the size " +"required by the format, as reflected by :func:`calcsize`." +msgstr "" +"Dissocie depuis le tampon *buffer* (en supposant que celui-ci a été agrégé " +"avec ``pack(format, …)``) à l'aide de la chaîne de format *format*. Le " +"résultat est un n-uplet, qui peut éventuellement ne contenir qu'un seul " +"élément. La taille de *buffer* en octets doit correspondre à la taille " +"requise par le format, telle que calculée par :func:`calcsize`." + +#: ../Doc/library/struct.rst:75 +msgid "" +"Unpack from *buffer* starting at position *offset*, according to the format " +"string *format*. The result is a tuple even if it contains exactly one " +"item. The buffer's size in bytes, minus *offset*, must be at least the size " +"required by the format, as reflected by :func:`calcsize`." +msgstr "" + +#: ../Doc/library/struct.rst:83 +msgid "" +"Iteratively unpack from the buffer *buffer* according to the format string " +"*format*. This function returns an iterator which will read equally-sized " +"chunks from the buffer until all its contents have been consumed. The " +"buffer's size in bytes must be a multiple of the size required by the " +"format, as reflected by :func:`calcsize`." +msgstr "" +"Dissocie de manière itérative les éléments du tampon *buffer* conformément à " +"la chaîne de format *format*. Cette fonction renvoie un itérateur qui lit " +"des morceaux de taille fixe dans le tampon jusqu'à ce que tout le contenu " +"ait été consommé. La taille du tampon en octets doit être un multiple de la " +"taille requise par le format, telle que calculée par :func:`calcsize`." + +#: ../Doc/library/struct.rst:89 +msgid "Each iteration yields a tuple as specified by the format string." +msgstr "" +"Chaque itération produit un n-uplet tel que spécifié par la chaîne de format." + +#: ../Doc/library/struct.rst:96 +msgid "" +"Return the size of the struct (and hence of the bytes object produced by " +"``pack(format, ...)``) corresponding to the format string *format*." +msgstr "" +"Renvoie la taille de la structure (et donc celle de l'objet *bytes* produit " +"par ``pack(format, ...)``) correspondant à la chaîne de format *format*." + +#: ../Doc/library/struct.rst:103 +msgid "Format Strings" +msgstr "Chaînes de spécification du format" + +#: ../Doc/library/struct.rst:105 +msgid "" +"Format strings are the mechanism used to specify the expected layout when " +"packing and unpacking data. They are built up from :ref:`format-" +"characters`, which specify the type of data being packed/unpacked. In " +"addition, there are special characters for controlling the :ref:`struct-" +"alignment`." +msgstr "" +"Les chaînes de spécification du format servent à définir l'agencement lors " +"de l'agrégation et la dissociation des données. Elles sont construites à " +"partir de :ref:`caractères de format `, qui spécifient le " +"type de donnée à agréger-dissocier. De plus, il existe des caractères " +"spéciaux pour contrôler :ref:`le boutisme, la taille et l'alignement `." + +#: ../Doc/library/struct.rst:114 +msgid "Byte Order, Size, and Alignment" +msgstr "Boutisme, taille et alignement" + +#: ../Doc/library/struct.rst:116 +msgid "" +"By default, C types are represented in the machine's native format and byte " +"order, and properly aligned by skipping pad bytes if necessary (according to " +"the rules used by the C compiler)." +msgstr "" +"Par défaut, les types C sont représentés dans le format et le boutisme " +"natifs de la machine ; ils sont alignés correctement en sautant des octets " +"si nécessaire (en fonction des règles utilisées par le compilateur C)." + +#: ../Doc/library/struct.rst:127 +msgid "" +"Alternatively, the first character of the format string can be used to " +"indicate the byte order, size and alignment of the packed data, according to " +"the following table:" +msgstr "" +"Cependant, le premier caractère de la chaîne de format peut être utilisé " +"pour indiquer le boutisme, la taille et l'alignement des données agrégées, " +"conformément à la table suivante :" + +#: ../Doc/library/struct.rst:132 +msgid "Character" +msgstr "Caractère" + +#: ../Doc/library/struct.rst:132 +msgid "Byte order" +msgstr "Boutisme" + +#: ../Doc/library/struct.rst:132 +msgid "Size" +msgstr "Taille" + +#: ../Doc/library/struct.rst:132 +msgid "Alignment" +msgstr "Alignement" + +#: ../Doc/library/struct.rst:134 +msgid "``@``" +msgstr "``@``" + +#: ../Doc/library/struct.rst:134 ../Doc/library/struct.rst:136 +msgid "native" +msgstr "natif" + +#: ../Doc/library/struct.rst:136 +msgid "``=``" +msgstr "``=``" + +#: ../Doc/library/struct.rst:136 ../Doc/library/struct.rst:138 +#: ../Doc/library/struct.rst:140 ../Doc/library/struct.rst:142 +msgid "standard" +msgstr "standard" + +#: ../Doc/library/struct.rst:136 ../Doc/library/struct.rst:138 +#: ../Doc/library/struct.rst:140 ../Doc/library/struct.rst:142 +msgid "none" +msgstr "aucun" + +#: ../Doc/library/struct.rst:138 +msgid "``<``" +msgstr "``<``" + +#: ../Doc/library/struct.rst:138 +msgid "little-endian" +msgstr "petit-boutiste" + +#: ../Doc/library/struct.rst:140 +msgid "``>``" +msgstr "``>``" + +#: ../Doc/library/struct.rst:140 +msgid "big-endian" +msgstr "gros-boutiste" + +#: ../Doc/library/struct.rst:142 +msgid "``!``" +msgstr "``!``" + +#: ../Doc/library/struct.rst:142 +msgid "network (= big-endian)" +msgstr "réseau (= gros-boutiste)" + +#: ../Doc/library/struct.rst:145 +msgid "If the first character is not one of these, ``'@'`` is assumed." +msgstr "" +"Si le premier caractère n'est pas dans cette liste, le module se comporte " +"comme si ``'@'`` avait été indiqué." + +#: ../Doc/library/struct.rst:147 +msgid "" +"Native byte order is big-endian or little-endian, depending on the host " +"system. For example, Intel x86 and AMD64 (x86-64) are little-endian; " +"Motorola 68000 and PowerPC G5 are big-endian; ARM and Intel Itanium feature " +"switchable endianness (bi-endian). Use ``sys.byteorder`` to check the " +"endianness of your system." +msgstr "" +"Le boutisme natif est gros-boutiste ou petit-boutiste, en fonction de la " +"machine sur laquelle s'exécute le programme. Par exemple, les Intel x86 et " +"les AMD64 (x86-64) sont petit-boutistes ; les Motorola 68000 et les *PowerPC " +"G5* sont gros-boutistes ; les ARM et les Intel Itanium peuvent changer de " +"boutisme. Utilisez ``sys.byteorder`` pour vérifier le boutisme de votre " +"système." + +#: ../Doc/library/struct.rst:153 +msgid "" +"Native size and alignment are determined using the C compiler's ``sizeof`` " +"expression. This is always combined with native byte order." +msgstr "" +"La taille et l'alignement natifs sont déterminés en utilisant l'expression " +"``sizeof`` du compilateur C. Leur valeur est toujours combinée au boutisme " +"natif." + +#: ../Doc/library/struct.rst:156 +msgid "" +"Standard size depends only on the format character; see the table in the :" +"ref:`format-characters` section." +msgstr "" +"La taille standard dépend seulement du caractère du format ; référez-vous au " +"tableau dans la section :ref:`format-characters`." + +#: ../Doc/library/struct.rst:159 +msgid "" +"Note the difference between ``'@'`` and ``'='``: both use native byte order, " +"but the size and alignment of the latter is standardized." +msgstr "" +"Notez la différence entre ``'@'`` et ``'='`` : les deux utilisent le " +"boutisme natif mais la taille et l'alignement du dernier sont standards." + +#: ../Doc/library/struct.rst:162 +msgid "" +"The form ``'!'`` is available for those poor souls who claim they can't " +"remember whether network byte order is big-endian or little-endian." +msgstr "" +"La forme ``'!'`` existe pour les têtes en l'air qui prétendent ne pas se " +"rappeler si le boutisme réseau est gros-boutiste ou petit-boutiste." + +#: ../Doc/library/struct.rst:165 +msgid "" +"There is no way to indicate non-native byte order (force byte-swapping); use " +"the appropriate choice of ``'<'`` or ``'>'``." +msgstr "" +"Il n'y a pas de moyen de spécifier le boutisme contraire au boutisme natif " +"(c'est-à-dire forcer la permutation des octets) ; utilisez le bon caractère " +"entre ``'<'`` et ``'>'``." + +#: ../Doc/library/struct.rst:168 ../Doc/library/struct.rst:247 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/library/struct.rst:170 +msgid "" +"Padding is only automatically added between successive structure members. No " +"padding is added at the beginning or the end of the encoded struct." +msgstr "" +"Le bourrage (*padding* en anglais) n'est automatiquement ajouté qu'entre les " +"membres successifs de la structure. Il n'y a pas de bourrage au début ou à " +"la fin de la structure agrégée." + +#: ../Doc/library/struct.rst:173 +msgid "" +"No padding is added when using non-native size and alignment, e.g. with '<', " +"'>', '=', and '!'." +msgstr "" +"Il n'y a pas d'ajout de bourrage lorsque vous utilisez une taille et un " +"alignement non-natifs, par exemple avec `<`, `'>', `=` ou `!`." + +#: ../Doc/library/struct.rst:176 +msgid "" +"To align the end of a structure to the alignment requirement of a particular " +"type, end the format with the code for that type with a repeat count of " +"zero. See :ref:`struct-examples`." +msgstr "" +"Pour aligner la fin d'une structure à l'alignement requis par un type " +"particulier, terminez le format avec le code du type voulu et une valeur de " +"répétition à zéro. Référez-vous à :ref:`struct-examples`." + +#: ../Doc/library/struct.rst:184 +msgid "Format Characters" +msgstr "Caractères de format" + +#: ../Doc/library/struct.rst:186 +msgid "" +"Format characters have the following meaning; the conversion between C and " +"Python values should be obvious given their types. The 'Standard size' " +"column refers to the size of the packed value in bytes when using standard " +"size; that is, when the format string starts with one of ``'<'``, ``'>'``, " +"``'!'`` or ``'='``. When using native size, the size of the packed value is " +"platform-dependent." +msgstr "" +"Les caractères de format possèdent les significations suivantes ; la " +"conversion entre les valeurs C et Python doit être évidente compte tenu des " +"types concernés. La colonne « taille standard » fait référence à la taille " +"en octets de la valeur agrégée avec l'utilisation de la taille standard " +"(c'est-à-dire lorsque la chaîne de format commence par l'un des caractères " +"suivants : ``'<'``, ``'>'``, ``'!'`` ou ``'='``). Si vous utilisez la taille " +"native, la taille de la valeur agrégée dépend de la plateforme." + +#: ../Doc/library/struct.rst:194 +msgid "Format" +msgstr "Format" + +#: ../Doc/library/struct.rst:194 +msgid "C Type" +msgstr "Type C" + +#: ../Doc/library/struct.rst:194 +msgid "Python type" +msgstr "Type Python" + +#: ../Doc/library/struct.rst:194 +msgid "Standard size" +msgstr "Taille standard" + +#: ../Doc/library/struct.rst:194 +msgid "Notes" +msgstr "Notes" + +#: ../Doc/library/struct.rst:196 +msgid "``x``" +msgstr "``x``" + +#: ../Doc/library/struct.rst:196 +msgid "pad byte" +msgstr "octet de bourrage" + +#: ../Doc/library/struct.rst:196 +msgid "no value" +msgstr "pas de valeur" + +#: ../Doc/library/struct.rst:198 +msgid "``c``" +msgstr "``c``" + +#: ../Doc/library/struct.rst:198 +msgid ":c:type:`char`" +msgstr ":c:type:`char`" + +#: ../Doc/library/struct.rst:198 +msgid "bytes of length 1" +msgstr "*bytes* (suite d'octets) de taille 1" + +#: ../Doc/library/struct.rst:198 ../Doc/library/struct.rst:200 +#: ../Doc/library/struct.rst:202 ../Doc/library/struct.rst:204 +msgid "1" +msgstr "1" + +#: ../Doc/library/struct.rst:200 +msgid "``b``" +msgstr "``b``" + +#: ../Doc/library/struct.rst:200 +msgid ":c:type:`signed char`" +msgstr ":c:type:`signed char`" + +#: ../Doc/library/struct.rst:200 ../Doc/library/struct.rst:202 +#: ../Doc/library/struct.rst:206 ../Doc/library/struct.rst:208 +#: ../Doc/library/struct.rst:210 ../Doc/library/struct.rst:212 +#: ../Doc/library/struct.rst:214 ../Doc/library/struct.rst:216 +#: ../Doc/library/struct.rst:218 ../Doc/library/struct.rst:220 +#: ../Doc/library/struct.rst:223 ../Doc/library/struct.rst:225 +#: ../Doc/library/struct.rst:237 +msgid "integer" +msgstr "*int* (entier)" + +#: ../Doc/library/struct.rst:200 +msgid "\\(1),\\(3)" +msgstr "\\(1),\\(3)" + +#: ../Doc/library/struct.rst:202 +msgid "``B``" +msgstr "``B``" + +#: ../Doc/library/struct.rst:202 +msgid ":c:type:`unsigned char`" +msgstr ":c:type:`unsigned char`" + +#: ../Doc/library/struct.rst:202 ../Doc/library/struct.rst:206 +#: ../Doc/library/struct.rst:208 ../Doc/library/struct.rst:210 +#: ../Doc/library/struct.rst:212 ../Doc/library/struct.rst:214 +#: ../Doc/library/struct.rst:216 +msgid "\\(3)" +msgstr "\\(3)" + +#: ../Doc/library/struct.rst:204 +msgid "``?``" +msgstr "``?``" + +#: ../Doc/library/struct.rst:204 +msgid ":c:type:`_Bool`" +msgstr ":c:type:`_Bool`" + +#: ../Doc/library/struct.rst:204 +msgid "bool" +msgstr "*bool* (booléen)" + +#: ../Doc/library/struct.rst:204 +msgid "\\(1)" +msgstr "\\(1)" + +#: ../Doc/library/struct.rst:206 +msgid "``h``" +msgstr "``h``" + +#: ../Doc/library/struct.rst:206 +msgid ":c:type:`short`" +msgstr ":c:type:`short`" + +#: ../Doc/library/struct.rst:206 ../Doc/library/struct.rst:208 +#: ../Doc/library/struct.rst:227 +msgid "2" +msgstr "2" + +#: ../Doc/library/struct.rst:208 +msgid "``H``" +msgstr "``H``" + +#: ../Doc/library/struct.rst:208 +msgid ":c:type:`unsigned short`" +msgstr ":c:type:`unsigned short`" + +#: ../Doc/library/struct.rst:210 +msgid "``i``" +msgstr "``i``" + +#: ../Doc/library/struct.rst:210 +msgid ":c:type:`int`" +msgstr ":c:type:`int`" + +#: ../Doc/library/struct.rst:210 ../Doc/library/struct.rst:212 +#: ../Doc/library/struct.rst:214 ../Doc/library/struct.rst:216 +#: ../Doc/library/struct.rst:229 +msgid "4" +msgstr "4" + +#: ../Doc/library/struct.rst:212 +msgid "``I``" +msgstr "``I``" + +#: ../Doc/library/struct.rst:212 +msgid ":c:type:`unsigned int`" +msgstr ":c:type:`unsigned int`" + +#: ../Doc/library/struct.rst:214 +msgid "``l``" +msgstr "``l``" + +#: ../Doc/library/struct.rst:214 +msgid ":c:type:`long`" +msgstr ":c:type:`long`" + +#: ../Doc/library/struct.rst:216 +msgid "``L``" +msgstr "``L``" + +#: ../Doc/library/struct.rst:216 +msgid ":c:type:`unsigned long`" +msgstr ":c:type:`unsigned long`" + +#: ../Doc/library/struct.rst:218 +msgid "``q``" +msgstr "``q``" + +#: ../Doc/library/struct.rst:218 +msgid ":c:type:`long long`" +msgstr ":c:type:`long long`" + +#: ../Doc/library/struct.rst:218 ../Doc/library/struct.rst:220 +#: ../Doc/library/struct.rst:231 +msgid "8" +msgstr "8" + +#: ../Doc/library/struct.rst:218 ../Doc/library/struct.rst:220 +msgid "\\(2), \\(3)" +msgstr "\\(2), \\(3)" + +#: ../Doc/library/struct.rst:220 +msgid "``Q``" +msgstr "``Q``" + +#: ../Doc/library/struct.rst:220 +msgid ":c:type:`unsigned long long`" +msgstr ":c:type:`unsigned long long`" + +#: ../Doc/library/struct.rst:223 +msgid "``n``" +msgstr "``n``" + +#: ../Doc/library/struct.rst:223 +msgid ":c:type:`ssize_t`" +msgstr ":c:type:`ssize_t`" + +#: ../Doc/library/struct.rst:223 ../Doc/library/struct.rst:225 +msgid "\\(4)" +msgstr "\\(4)" + +#: ../Doc/library/struct.rst:225 +msgid "``N``" +msgstr "``N``" + +#: ../Doc/library/struct.rst:225 +msgid ":c:type:`size_t`" +msgstr ":c:type:`size_t`" + +#: ../Doc/library/struct.rst:227 +msgid "``e``" +msgstr "``e``" + +#: ../Doc/library/struct.rst:227 +msgid "\\(7)" +msgstr "\\(7)" + +#: ../Doc/library/struct.rst:227 ../Doc/library/struct.rst:229 +#: ../Doc/library/struct.rst:231 +msgid "float" +msgstr "*float* (nombre à virgule flottante)" + +#: ../Doc/library/struct.rst:227 ../Doc/library/struct.rst:229 +#: ../Doc/library/struct.rst:231 +msgid "\\(5)" +msgstr "\\(5)" + +#: ../Doc/library/struct.rst:229 +msgid "``f``" +msgstr "``f``" + +#: ../Doc/library/struct.rst:229 +msgid ":c:type:`float`" +msgstr ":c:type:`float`" + +#: ../Doc/library/struct.rst:231 +msgid "``d``" +msgstr "``d``" + +#: ../Doc/library/struct.rst:231 +msgid ":c:type:`double`" +msgstr ":c:type:`double`" + +#: ../Doc/library/struct.rst:233 +msgid "``s``" +msgstr "``s``" + +#: ../Doc/library/struct.rst:233 ../Doc/library/struct.rst:235 +msgid ":c:type:`char[]`" +msgstr ":c:type:`char[]`" + +#: ../Doc/library/struct.rst:233 ../Doc/library/struct.rst:235 +msgid "bytes" +msgstr "*bytes* (séquence d'octets)" + +#: ../Doc/library/struct.rst:235 +msgid "``p``" +msgstr "``p``" + +#: ../Doc/library/struct.rst:237 +msgid "``P``" +msgstr "``P``" + +#: ../Doc/library/struct.rst:237 +msgid ":c:type:`void \\*`" +msgstr ":c:type:`void \\*`" + +#: ../Doc/library/struct.rst:237 +msgid "\\(6)" +msgstr "\\(6)" + +#: ../Doc/library/struct.rst:240 +msgid "Added support for the ``'n'`` and ``'N'`` formats." +msgstr "ajouté la gestion des formats ``'n'`` et ``'N'``." + +#: ../Doc/library/struct.rst:243 +msgid "Added support for the ``'e'`` format." +msgstr "ajouté la gestion du format ``'e'``." + +#: ../Doc/library/struct.rst:252 +msgid "" +"The ``'?'`` conversion code corresponds to the :c:type:`_Bool` type defined " +"by C99. If this type is not available, it is simulated using a :c:type:" +"`char`. In standard mode, it is always represented by one byte." +msgstr "" +"Le code de conversion ``'?'`` correspond au type :c:type:`_Bool` de C99. Si " +"ce type n'est pas disponible, il est simulé en utilisant un :c:type:`char`. " +"Dans le mode standard, il est toujours représenté par un octet." + +#: ../Doc/library/struct.rst:257 +msgid "" +"The ``'q'`` and ``'Q'`` conversion codes are available in native mode only " +"if the platform C compiler supports C :c:type:`long long`, or, on Windows, :" +"c:type:`__int64`. They are always available in standard modes." +msgstr "" + +#: ../Doc/library/struct.rst:262 +msgid "" +"When attempting to pack a non-integer using any of the integer conversion " +"codes, if the non-integer has a :meth:`__index__` method then that method is " +"called to convert the argument to an integer before packing." +msgstr "" +"Lorsque vous essayez d'agréger un non-entier en utilisant un code de " +"conversion pour un entier, si ce non-entier possède une méthode :meth:" +"`__index__` alors cette méthode est appelée pour convertir l'argument en " +"entier avant l'agrégation." + +#: ../Doc/library/struct.rst:266 +msgid "Use of the :meth:`__index__` method for non-integers is new in 3.2." +msgstr "utilisation de la méthode :meth:`__index__` pour les non-entiers. " + +#: ../Doc/library/struct.rst:270 +msgid "" +"The ``'n'`` and ``'N'`` conversion codes are only available for the native " +"size (selected as the default or with the ``'@'`` byte order character). For " +"the standard size, you can use whichever of the other integer formats fits " +"your application." +msgstr "" +"Les codes de conversion ``'n'`` et ``'N'`` ne sont disponibles que pour la " +"taille native (choisie par défaut ou à l'aide du caractère de boutisme " +"``'@'``). Pour la taille standard, vous pouvez utiliser n'importe quel " +"format d'entier qui convient à votre application." + +#: ../Doc/library/struct.rst:276 +msgid "" +"For the ``'f'``, ``'d'`` and ``'e'`` conversion codes, the packed " +"representation uses the IEEE 754 binary32, binary64 or binary16 format (for " +"``'f'``, ``'d'`` or ``'e'`` respectively), regardless of the floating-point " +"format used by the platform." +msgstr "" +"Pour les codes de conversion ``'f'``, ``'d'`` et ``'e'``, la représentation " +"agrégée utilise respectivement le format IEEE 754 *binaire32*, *binaire64* " +"ou *binaire16* (pour ``'f'``, ``'d'`` ou ``'e'`` respectivement), quel que " +"soit le format des nombres à virgule flottante de la plateforme." + +#: ../Doc/library/struct.rst:282 +msgid "" +"The ``'P'`` format character is only available for the native byte ordering " +"(selected as the default or with the ``'@'`` byte order character). The byte " +"order character ``'='`` chooses to use little- or big-endian ordering based " +"on the host system. The struct module does not interpret this as native " +"ordering, so the ``'P'`` format is not available." +msgstr "" +"Le caractère de format ``'P'`` n'est disponible que pour le boutisme natif " +"(choisi par défaut ou à l'aide du caractère ``'@'`` de boutisme). Le " +"caractère de boutisme ``'='`` choisit d'utiliser un petit ou un gros en " +"fonction du système hôte. Le module *struct* ne l'interprète pas comme un " +"boutisme natif, donc le format ``'P'`` n'est pas disponible." + +#: ../Doc/library/struct.rst:289 +msgid "" +"The IEEE 754 binary16 \"half precision\" type was introduced in the 2008 " +"revision of the `IEEE 754 standard `_. It has a sign " +"bit, a 5-bit exponent and 11-bit precision (with 10 bits explicitly stored), " +"and can represent numbers between approximately ``6.1e-05`` and ``6.5e+04`` " +"at full precision. This type is not widely supported by C compilers: on a " +"typical machine, an unsigned short can be used for storage, but not for math " +"operations. See the Wikipedia page on the `half-precision floating-point " +"format `_ for more information." +msgstr "" +"Le type IEEE 754 *binaire16* « demie-précision » a été introduit en 2008 par " +"la révision du `standard IEEE 754 `_. Il comprend un bit " +"de signe, un exposant sur 5 bits et une précision de 11 bits (dont 10 bits " +"sont explicitement stockés) ; il peut représenter les nombres entre environ " +"``6.1e-05`` et ``6.5e+04`` avec une précision maximale. Ce type est rarement " +"pris en charge par les compilateurs C : sur une machine courante, un " +"*unsigned short* (entier court non signé) peut être utilisé pour le stockage " +"mais pas pour les opérations mathématiques. Lisez la page Wikipédia (NdT : " +"non traduite en français) `half-precision floating-point format `_ pour davantage d'informations." + +#: ../Doc/library/struct.rst:299 +msgid "" +"A format character may be preceded by an integral repeat count. For " +"example, the format string ``'4h'`` means exactly the same as ``'hhhh'``." +msgstr "" +"Un caractère de format peut être précédé par un entier indiquant le nombre " +"de répétitions. Par exemple, la chaîne de format ``'4h'`` a exactement la " +"même signification que ``'hhhh'``." + +#: ../Doc/library/struct.rst:302 +msgid "" +"Whitespace characters between formats are ignored; a count and its format " +"must not contain whitespace though." +msgstr "" +"Les caractères d'espacement entre les indications de format sont ignorés ; " +"cependant, le nombre de répétitions et le format associé ne doivent pas être " +"séparés par des caractères d'espacement." + +#: ../Doc/library/struct.rst:305 +msgid "" +"For the ``'s'`` format character, the count is interpreted as the length of " +"the bytes, not a repeat count like for the other format characters; for " +"example, ``'10s'`` means a single 10-byte string, while ``'10c'`` means 10 " +"characters. If a count is not given, it defaults to 1. For packing, the " +"string is truncated or padded with null bytes as appropriate to make it fit. " +"For unpacking, the resulting bytes object always has exactly the specified " +"number of bytes. As a special case, ``'0s'`` means a single, empty string " +"(while ``'0c'`` means 0 characters)." +msgstr "" +"Pour le caractère de format ``'s'``, un nombre en tête est interprété comme " +"la longueur du *bytes* et non comme le nombre de répétitions comme pour les " +"autres caractères de format ; par exemple, ``'10s'`` signifie une seule " +"chaîne de 10 octets alors que ``'10c'`` signifie 10 caractères. Si aucun " +"nombre n'est indiqué, la valeur par défaut est 1. Pour l'agrégation, la " +"chaîne est tronquée ou bourrée avec des octets nuls pour atteindre la taille " +"souhaitée. Pour la dissociation, l'objet *bytes* résultant possède le nombre " +"exact d'octets spécifiés. Un cas particulier est ``'0s'`` qui signifie une " +"chaîne (et une seule) vide (alors que ``'0c'`` signifie zéro caractère)." + +#: ../Doc/library/struct.rst:314 +msgid "" +"When packing a value ``x`` using one of the integer formats (``'b'``, " +"``'B'``, ``'h'``, ``'H'``, ``'i'``, ``'I'``, ``'l'``, ``'L'``, ``'q'``, " +"``'Q'``), if ``x`` is outside the valid range for that format then :exc:" +"`struct.error` is raised." +msgstr "" +"Lors de l'agrégation d'une valeur ``x`` en utilisant l'un des formats pour " +"les entiers (``'b'``, ``'B'``, ``'h'``, ``'H'``, ``'i'``, ``'I'``, ``'l'``, " +"``'L'``, ``'q'``, ``'Q'``), si ``x`` est en dehors de l'intervalle du format " +"spécifié, une :exc:`struct.error` est levée." + +#: ../Doc/library/struct.rst:319 +msgid "" +"In 3.0, some of the integer formats wrapped out-of-range values and raised :" +"exc:`DeprecationWarning` instead of :exc:`struct.error`." +msgstr "" +"auparavant, certains formats d'entiers absorbaient les valeurs en dehors des " +"intervalles valides et levaient une :exc:`DeprecationWarning` au lieu d'une :" +"exc:`struct.error`." + +#: ../Doc/library/struct.rst:323 +msgid "" +"The ``'p'`` format character encodes a \"Pascal string\", meaning a short " +"variable-length string stored in a *fixed number of bytes*, given by the " +"count. The first byte stored is the length of the string, or 255, whichever " +"is smaller. The bytes of the string follow. If the string passed in to :" +"func:`pack` is too long (longer than the count minus 1), only the leading " +"``count-1`` bytes of the string are stored. If the string is shorter than " +"``count-1``, it is padded with null bytes so that exactly count bytes in all " +"are used. Note that for :func:`unpack`, the ``'p'`` format character " +"consumes ``count`` bytes, but that the string returned can never contain " +"more than 255 bytes." +msgstr "" +"Le caractère de format ``'p'`` sert à encoder une « chaîne Pascal », c'est-à-" +"dire une courte chaîne de longueur variable, stockée dans un *nombre défini " +"d'octets* dont la valeur est définie par la répétition. Le premier octet " +"stocké est la longueur de la chaîne (dans la limite maximum de 255). Les " +"octets composant la chaîne suivent. Si la chaîne passée à :func:`pack` est " +"trop longue (supérieure à la valeur de la répétition moins 1), seuls les " +"``count-1`` premiers octets de la chaîne sont stockés. Si la chaîne est plus " +"courte que ``count-1``, des octets de bourrage nuls sont insérés de manière " +"à avoir exactement *count* octets au final. Notez que pour :func:`unpack`, " +"le caractère de format ``'p'`` consomme ``count`` octets mais que la chaîne " +"renvoyée ne peut pas excéder 255 octets." + +#: ../Doc/library/struct.rst:336 +msgid "" +"For the ``'?'`` format character, the return value is either :const:`True` " +"or :const:`False`. When packing, the truth value of the argument object is " +"used. Either 0 or 1 in the native or standard bool representation will be " +"packed, and any non-zero value will be ``True`` when unpacking." +msgstr "" +"Pour le caractère de format ``'?'``, la valeur renvoyée est :const:`True` " +"ou :const:`False`. Lors de l'agrégation, la valeur de vérité de l'objet " +"argument est utilisée. La valeur agrégée est 0 ou 1 dans la représentation " +"native ou standard et, lors de la dissociation, n'importe quelle valeur " +"différente de zéro est renvoyée ``True``." + +#: ../Doc/library/struct.rst:346 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/struct.rst:349 +msgid "" +"All examples assume a native byte order, size, and alignment with a big-" +"endian machine." +msgstr "" +"tous les exemples présentés supposent que l'on utilise le boutisme, la " +"taille et l'alignement natifs sur une machine gros-boutiste." + +#: ../Doc/library/struct.rst:352 +msgid "A basic example of packing/unpacking three integers::" +msgstr "Un exemple de base d'agrégation et dissociation de trois entiers ::" + +#: ../Doc/library/struct.rst:362 +msgid "" +"Unpacked fields can be named by assigning them to variables or by wrapping " +"the result in a named tuple::" +msgstr "" +"Les champs dissociés peuvent être nommés en leur assignant des variables ou " +"en encapsulant le résultat dans un n-uplet nommé ::" + +#: ../Doc/library/struct.rst:373 +msgid "" +"The ordering of format characters may have an impact on size since the " +"padding needed to satisfy alignment requirements is different::" +msgstr "" +"L'ordre des caractères de format peut avoir un impact sur la taille puisque " +"le bourrage nécessaire pour réaliser l'alignement est différent ::" + +#: ../Doc/library/struct.rst:385 +msgid "" +"The following format ``'llh0l'`` specifies two pad bytes at the end, " +"assuming longs are aligned on 4-byte boundaries::" +msgstr "" +"Le format suivant ``'llh0l'`` spécifie deux octets de bourrage à la fin, " +"considérant que les entiers longs sont alignés sur des espacements de 4 " +"octets ::" + +#: ../Doc/library/struct.rst:391 +msgid "" +"This only works when native size and alignment are in effect; standard size " +"and alignment does not enforce any alignment." +msgstr "" +"Ceci ne fonctionne que quand la taille et l'alignement natifs sont " +"utilisés ; la taille et l'alignement standards ne forcent aucun alignement." + +#: ../Doc/library/struct.rst:398 +msgid "Module :mod:`array`" +msgstr "Module :mod:`array`" + +#: ../Doc/library/struct.rst:398 +msgid "Packed binary storage of homogeneous data." +msgstr "Stockage agrégé binaire de données homogènes." + +#: ../Doc/library/struct.rst:400 +msgid "Module :mod:`xdrlib`" +msgstr "Module :mod:`xdrlib`" + +#: ../Doc/library/struct.rst:401 +msgid "Packing and unpacking of XDR data." +msgstr "Agrégation et dissociation de données XDR." + +#: ../Doc/library/struct.rst:407 +msgid "Classes" +msgstr "Classes" + +#: ../Doc/library/struct.rst:409 +msgid "The :mod:`struct` module also defines the following type:" +msgstr "Le module :mod:`struct` définit aussi le type suivant :" + +#: ../Doc/library/struct.rst:414 +msgid "" +"Return a new Struct object which writes and reads binary data according to " +"the format string *format*. Creating a Struct object once and calling its " +"methods is more efficient than calling the :mod:`struct` functions with the " +"same format since the format string only needs to be compiled once." +msgstr "" +"Renvoie un nouvel objet Struct qui écrit et lit des données binaires " +"conformément à la chaîne de format *format*. Créer une fois pour toutes un " +"objet Struct puis appeler ses méthodes est plus efficace que d'appeler les " +"fonctions de :mod:`struct` avec le même format puisque la chaîne de format " +"n'est compilée qu'une seule fois." + +#: ../Doc/library/struct.rst:421 +msgid "" +"The compiled versions of the most recent format strings passed to :class:" +"`Struct` and the module-level functions are cached, so programs that use " +"only a few format strings needn't worry about reusing a single :class:" +"`Struct` instance." +msgstr "" +"les versions compilées des dernières chaînes de format passées à :class:" +"`Struct` et aux fonctions de niveau module sont mises en cache, de manière à " +"ce que les programmes qui n'utilisent que quelques chaînes de format n'aient " +"pas à se préoccuper de n'utiliser qu'une seule instance de :class:`Struct`." + +#: ../Doc/library/struct.rst:426 +msgid "Compiled Struct objects support the following methods and attributes:" +msgstr "" +"Les objets ``Struct`` compilés gèrent les méthodes et attributs suivants :" + +#: ../Doc/library/struct.rst:430 +msgid "" +"Identical to the :func:`pack` function, using the compiled format. " +"(``len(result)`` will equal :attr:`size`.)" +msgstr "" +"Identique à la fonction :func:`pack`, en utilisant le format compilé " +"(``len(result)`` vaut :attr:`size`)." + +#: ../Doc/library/struct.rst:436 +msgid "Identical to the :func:`pack_into` function, using the compiled format." +msgstr "" +"Identique à la fonction :func:`pack_into`, en utilisant le format compilé." + +#: ../Doc/library/struct.rst:441 +msgid "" +"Identical to the :func:`unpack` function, using the compiled format. The " +"buffer's size in bytes must equal :attr:`size`." +msgstr "" +"Identique à la fonction :func:`unpack`, en utilisant le format compilé. La " +"taille du tampon *buffer* en octets doit valoir :attr:`size`." + +#: ../Doc/library/struct.rst:447 +msgid "" +"Identical to the :func:`unpack_from` function, using the compiled format. " +"The buffer's size in bytes, minus *offset*, must be at least :attr:`size`." +msgstr "" + +#: ../Doc/library/struct.rst:454 +msgid "" +"Identical to the :func:`iter_unpack` function, using the compiled format. " +"The buffer's size in bytes must be a multiple of :attr:`size`." +msgstr "" +"Identique à la fonction :func:`iter_unpack`, en utilisant le format compilé. " +"La taille du tampon *buffer* en octets doit être un multiple de :attr:`size`." + +#: ../Doc/library/struct.rst:461 +msgid "The format string used to construct this Struct object." +msgstr "La chaîne de format utilisée pour construire l'objet `Struct`." + +#: ../Doc/library/struct.rst:463 +msgid "The format string type is now :class:`str` instead of :class:`bytes`." +msgstr "" +"la chaîne de format est maintenant de type :class:`str` au lieu de :class:" +"`bytes`." + +#: ../Doc/library/struct.rst:468 +msgid "" +"The calculated size of the struct (and hence of the bytes object produced by " +"the :meth:`pack` method) corresponding to :attr:`format`." +msgstr "" +"La taille calculée de la structure agrégée (et donc de l'objet `bytes` " +"produit par la méthode :meth:`pack`) correspondante à :attr:`format`." diff --git a/library/subprocess.po b/library/subprocess.po new file mode 100644 index 000000000..6099ed808 --- /dev/null +++ b/library/subprocess.po @@ -0,0 +1,2198 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 21:44+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/subprocess.rst:2 +msgid ":mod:`subprocess` --- Subprocess management" +msgstr ":mod:`subprocess` — Gestion de sous-processus" + +#: ../Doc/library/subprocess.rst:10 +msgid "**Source code:** :source:`Lib/subprocess.py`" +msgstr "**Code source :** :source:`Lib/subprocess.py`" + +#: ../Doc/library/subprocess.rst:14 +msgid "" +"The :mod:`subprocess` module allows you to spawn new processes, connect to " +"their input/output/error pipes, and obtain their return codes. This module " +"intends to replace several older modules and functions::" +msgstr "" +"Le module :mod:`subprocess` vous permet de lancer de nouveaux processus, les " +"connecter à des tubes d'entrée/sortie/erreur, et d'obtenir leurs codes de " +"retour. Ce module a l'intention de remplacer plusieurs anciens modules et " +"fonctions ::" + +#: ../Doc/library/subprocess.rst:21 +msgid "" +"Information about how the :mod:`subprocess` module can be used to replace " +"these modules and functions can be found in the following sections." +msgstr "" +"De plus amples informations sur comment le module :mod:`subprocess` peut " +"être utilisé pour remplacer ces modules et fonctions peuvent être trouvées " +"dans les sections suivantes." + +#: ../Doc/library/subprocess.rst:26 +msgid ":pep:`324` -- PEP proposing the subprocess module" +msgstr ":pep:`324` -- PEP proposant le module *subprocess*" + +#: ../Doc/library/subprocess.rst:30 +msgid "Using the :mod:`subprocess` Module" +msgstr "Utiliser le module :mod:`subprocess`" + +#: ../Doc/library/subprocess.rst:32 +msgid "" +"The recommended approach to invoking subprocesses is to use the :func:`run` " +"function for all use cases it can handle. For more advanced use cases, the " +"underlying :class:`Popen` interface can be used directly." +msgstr "" +"L'approche recommandée pour invoquer un sous-processus et d'utiliser la " +"fonction :func:`run` pour tous les cas d'utilisation qu'il gère. Pour les " +"cas d'utilisation plus avancés, l'interface inhérente :class:`Popen` peut " +"être utilisée directement." + +#: ../Doc/library/subprocess.rst:36 +msgid "" +"The :func:`run` function was added in Python 3.5; if you need to retain " +"compatibility with older versions, see the :ref:`call-function-trio` section." +msgstr "" +"La fonction :func:`run` a été ajoutée avec Python 3.5 ; si vous avez besoin " +"d'une compatibilité avec des versions plus anciennes, référez-vous à la " +"section :ref:`call-function-trio`." + +#: ../Doc/library/subprocess.rst:45 +msgid "" +"Run the command described by *args*. Wait for command to complete, then " +"return a :class:`CompletedProcess` instance." +msgstr "" +"Lance la commande décrite par *args*. Attend que la commande se termine, " +"puis renvoie une instance :class:`CompletedProcess`." + +#: ../Doc/library/subprocess.rst:48 +msgid "" +"The arguments shown above are merely the most common ones, described below " +"in :ref:`frequently-used-arguments` (hence the use of keyword-only notation " +"in the abbreviated signature). The full function signature is largely the " +"same as that of the :class:`Popen` constructor - most of the arguments to " +"this function are passed through to that interface. (*timeout*, *input*, " +"*check*, and *capture_output* are not.)" +msgstr "" +"Les arguments présentés ci-dessus sont simplement les plus utilisés, décrits " +"ci-dessous dans la section :ref:`frequently-used-arguments` (d'où " +"l'utilisation de la notation *keyword-only* dans la signature abrégée). La " +"signature complète de la fonction est sensiblement la même que celle du " +"constructeur de :class:`Popen`, à l'exception de *timeout*, *input*, *check* " +"et *capture_output*, tous les arguments donnés à cette fonction passent à " +"travers cette interface." + +#: ../Doc/library/subprocess.rst:55 +msgid "" +"If *capture_output* is true, stdout and stderr will be captured. When used, " +"the internal :class:`Popen` object is automatically created with " +"``stdout=PIPE`` and ``stderr=PIPE``. The *stdout* and *stderr* arguments may " +"not be supplied at the same time as *capture_output*. If you wish to " +"capture and combine both streams into one, use ``stdout=PIPE`` and " +"``stderr=STDOUT`` instead of *capture_output*." +msgstr "" +"Si *capture_output* est vrai, la sortie et l'erreur standard (``stdout`` et " +"``stderr``) sont capturées. Dans ce cas, l'objet interne :class:`Popen` est " +"automatiquement créé avec les arguments ``stdout=PIPE`` et ``stderr=PIPE``. " +"Les arguments *stdout* et *stderr* ne doivent pas être passés en même temps " +"que *capture_output*. Si vous souhaitez capturer et combiner les deux flux " +"dans un seul, utilisez ``stdout=PIPE`` et ``stderr=STDOUT`` au lieu de " +"*capture_output*." + +#: ../Doc/library/subprocess.rst:62 +msgid "" +"The *timeout* argument is passed to :meth:`Popen.communicate`. If the " +"timeout expires, the child process will be killed and waited for. The :exc:" +"`TimeoutExpired` exception will be re-raised after the child process has " +"terminated." +msgstr "" +"L'argument *timeout* est passé à :meth:`Popen.communicate`. Si le *timeout* " +"expire, le processus enfant sera tué et attendu. Une exception :exc:" +"`TimeoutExpired` sera levée une fois que le processus enfant se sera terminé." + +#: ../Doc/library/subprocess.rst:67 +msgid "" +"The *input* argument is passed to :meth:`Popen.communicate` and thus to the " +"subprocess's stdin. If used it must be a byte sequence, or a string if " +"*encoding* or *errors* is specified or *text* is true. When used, the " +"internal :class:`Popen` object is automatically created with ``stdin=PIPE``, " +"and the *stdin* argument may not be used as well." +msgstr "" +"L'argument *input* est passé à :meth:`Popen.communicate` et donc à l'entrée " +"standard (*stdin*) du sous-processus. Si l'argument est utilisé, il doit " +"contenir une séquence de *bytes*, ou une chaîne de caractères si *encoding* " +"ou *errors* sont spécifiés, ou si *text* est vrai. Quand cet argument est " +"utilisé, l'objet interne :class:`Popen` est automatiquement créé avec " +"``stdin=PIPE``, et l'argument *stdin* ne doit donc pas être utilisé." + +#: ../Doc/library/subprocess.rst:73 +msgid "" +"If *check* is true, and the process exits with a non-zero exit code, a :exc:" +"`CalledProcessError` exception will be raised. Attributes of that exception " +"hold the arguments, the exit code, and stdout and stderr if they were " +"captured." +msgstr "" +"Si *check* est vrai, et que le processus s'arrête avec un code de statut non " +"nul, une exception :exc:`CalledProcessError` est levée. Les attributs de " +"cette exception contiennent les arguments, le code de statut, et les sorties " +"standard et d'erreur si elles ont été capturées." + +#: ../Doc/library/subprocess.rst:78 +msgid "" +"If *encoding* or *errors* are specified, or *text* is true, file objects for " +"stdin, stdout and stderr are opened in text mode using the specified " +"*encoding* and *errors* or the :class:`io.TextIOWrapper` default. The " +"*universal_newlines* argument is equivalent to *text* and is provided for " +"backwards compatibility. By default, file objects are opened in binary mode." +msgstr "" +"Si *encoding* ou *errors* sont spécifiés, ou *text* est vrai, les fichiers " +"pour les entrées et sorties sont ouverts en mode texte en utilisant les " +"paramètres *encoding* et *errors* spécifiés, ou les valeurs par défaut de :" +"class:`io.TextIOWrapper`. L'argument *universal_newlines* est équivalent à " +"*text* et est fourni pour la rétrocompatibilité. Par défaut, les fichiers " +"sont ouverts en mode binaire." + +#: ../Doc/library/subprocess.rst:84 +msgid "" +"If *env* is not ``None``, it must be a mapping that defines the environment " +"variables for the new process; these are used instead of the default " +"behavior of inheriting the current process' environment. It is passed " +"directly to :class:`Popen`." +msgstr "" +"Si *env* n'est pas ``None``, il doit être un tableau associatif définissant " +"les variables d'environnement du nouveau processus ; elles seront utilisées " +"à la place du comportement par défaut qui est d'hériter de l'environnement " +"du processus courant. Il est passé directement à :class:`Popen`." + +#: ../Doc/library/subprocess.rst:89 +msgid "Examples::" +msgstr "Exemples ::" + +#: ../Doc/library/subprocess.rst:107 +msgid "Added *encoding* and *errors* parameters" +msgstr "Ajout des paramètres *encoding* et *errors*" + +#: ../Doc/library/subprocess.rst:111 +msgid "" +"Added the *text* parameter, as a more understandable alias of " +"*universal_newlines*. Added the *capture_output* parameter." +msgstr "" +"Ajout du paramètre *text*, qui agit comme un alias plus compréhensible de " +"*universal_newlines*. Ajout du paramètre *capture_output*." + +#: ../Doc/library/subprocess.rst:116 +msgid "" +"The return value from :func:`run`, representing a process that has finished." +msgstr "" +"La valeur de retour de :func:`run`, représentant un processus qui s'est " +"terminé." + +#: ../Doc/library/subprocess.rst:120 +msgid "" +"The arguments used to launch the process. This may be a list or a string." +msgstr "" +"Les arguments utilisés pour lancer le processus. Cela peut être une liste ou " +"une chaîne de caractères." + +#: ../Doc/library/subprocess.rst:124 +msgid "" +"Exit status of the child process. Typically, an exit status of 0 indicates " +"that it ran successfully." +msgstr "" +"Le code de statut du processus fils. Typiquement, un code de statut de 0 " +"indique qu'il s'est exécuté avec succès." + +#: ../Doc/library/subprocess.rst:127 ../Doc/library/subprocess.rst:778 +msgid "" +"A negative value ``-N`` indicates that the child was terminated by signal " +"``N`` (POSIX only)." +msgstr "" +"Une valeur négative ``-N`` indique que le processus enfant a été terminé par " +"un signal ``N`` (seulement sur les systèmes *POSIX*)." + +#: ../Doc/library/subprocess.rst:132 +msgid "" +"Captured stdout from the child process. A bytes sequence, or a string if :" +"func:`run` was called with an encoding, errors, or text=True. ``None`` if " +"stdout was not captured." +msgstr "" +"La sortie standard capturée du processus enfant. Une séquence de *bytes*, ou " +"une chaîne de caractères si :func:`run` a été appelée avec *encoding*, " +"*errors* ou *text=True*. Vaut ``None`` si la sortie standard n'était pas " +"capturée." + +#: ../Doc/library/subprocess.rst:136 +msgid "" +"If you ran the process with ``stderr=subprocess.STDOUT``, stdout and stderr " +"will be combined in this attribute, and :attr:`stderr` will be ``None``." +msgstr "" +"Si vous avez lancé le processus avec ``stderr=subprocess.STDOUT``, les " +"sorties standard et d'erreur seront combinées dans cet attribut, et :attr:" +"`stderr` sera mis à ``None``." + +#: ../Doc/library/subprocess.rst:142 +msgid "" +"Captured stderr from the child process. A bytes sequence, or a string if :" +"func:`run` was called with an encoding, errors, or text=True. ``None`` if " +"stderr was not captured." +msgstr "" +"La sortie d'erreur capturée du processus enfant. Une séquence de *bytes*, ou " +"une chaîne de caractères si :func:`run` a été appelée avec *encoding*, " +"*errors* ou *text=True*. Vaut ``None`` si la sortie d'erreur n'était pas " +"capturée." + +#: ../Doc/library/subprocess.rst:148 +msgid "If :attr:`returncode` is non-zero, raise a :exc:`CalledProcessError`." +msgstr "" +"Si :attr:`returncode` n'est pas nul, lève une :exc:`CalledProcessError`." + +#: ../Doc/library/subprocess.rst:154 +msgid "" +"Special value that can be used as the *stdin*, *stdout* or *stderr* argument " +"to :class:`Popen` and indicates that the special file :data:`os.devnull` " +"will be used." +msgstr "" +"Valeur spéciale qui peut être utilisée pour les arguments *stdin*, *stdout* " +"ou *stderr* de :class:`Popen` et qui indique que le fichier spécial :data:" +"`os.devnull` sera utilisé." + +#: ../Doc/library/subprocess.rst:163 +msgid "" +"Special value that can be used as the *stdin*, *stdout* or *stderr* argument " +"to :class:`Popen` and indicates that a pipe to the standard stream should be " +"opened. Most useful with :meth:`Popen.communicate`." +msgstr "" +"Valeur spéciale qui peut être utilisée pour les arguments *stdin*, *stdout* " +"ou *stderr* de :class:`Popen` et qui indique qu'un tube vers le flux " +"standard doit être ouvert. Surtout utile avec :meth:`Popen.communicate`." + +#: ../Doc/library/subprocess.rst:170 +msgid "" +"Special value that can be used as the *stderr* argument to :class:`Popen` " +"and indicates that standard error should go into the same handle as standard " +"output." +msgstr "" +"Valeur spéciale qui peut être utilisée pour l'argument *stderr* de :class:" +"`Popen` et qui indique que la sortie d'erreur doit être redirigée vers le " +"même descripteur que la sortie standard." + +#: ../Doc/library/subprocess.rst:177 +msgid "Base class for all other exceptions from this module." +msgstr "Classe de base à toutes les autres exceptions du module." + +#: ../Doc/library/subprocess.rst:184 +msgid "" +"Subclass of :exc:`SubprocessError`, raised when a timeout expires while " +"waiting for a child process." +msgstr "" +"Sous-classe de :exc:`SubprocessError`, levée quand un *timeout* expire " +"pendant l'attente d'un processus enfant." + +#: ../Doc/library/subprocess.rst:189 ../Doc/library/subprocess.rst:226 +msgid "Command that was used to spawn the child process." +msgstr "La commande utilisée pour instancier le processus fils." + +#: ../Doc/library/subprocess.rst:193 +msgid "Timeout in seconds." +msgstr "Le *timeout* en secondes." + +#: ../Doc/library/subprocess.rst:197 ../Doc/library/subprocess.rst:230 +msgid "" +"Output of the child process if it was captured by :func:`run` or :func:" +"`check_output`. Otherwise, ``None``." +msgstr "" +"La sortie du processus fils, si capturée par :func:`run` ou :func:" +"`check_output`. Autrement, ``None``." + +#: ../Doc/library/subprocess.rst:202 ../Doc/library/subprocess.rst:235 +msgid "Alias for output, for symmetry with :attr:`stderr`." +msgstr "Alias pour *output*, afin d'avoir une symétrie avec :attr:`stderr`." + +#: ../Doc/library/subprocess.rst:206 ../Doc/library/subprocess.rst:239 +msgid "" +"Stderr output of the child process if it was captured by :func:`run`. " +"Otherwise, ``None``." +msgstr "" +"La sortie d'erreur du processus fils, si capturée par :func:`run`. " +"Autrement, ``None``." + +#: ../Doc/library/subprocess.rst:211 ../Doc/library/subprocess.rst:242 +msgid "*stdout* and *stderr* attributes added" +msgstr "Ajout des attributs *stdout* et *stderr*" + +#: ../Doc/library/subprocess.rst:216 +msgid "" +"Subclass of :exc:`SubprocessError`, raised when a process run by :func:" +"`check_call` or :func:`check_output` returns a non-zero exit status." +msgstr "" +"Sous-classe de :exc:`SubprocessError`, levée quand un processus lancé par :" +"func:`check_call` ou :func:`check_output` renvoie un code de statut non nul." + +#: ../Doc/library/subprocess.rst:221 +msgid "" +"Exit status of the child process. If the process exited due to a signal, " +"this will be the negative signal number." +msgstr "" +"Code de statut du processus fils. Si le processus a été arrêté par un " +"signal, le code sera négatif et correspondra à l'opposé du numéro de signal." + +#: ../Doc/library/subprocess.rst:249 +msgid "Frequently Used Arguments" +msgstr "Arguments fréquemment utilisés" + +#: ../Doc/library/subprocess.rst:251 +msgid "" +"To support a wide variety of use cases, the :class:`Popen` constructor (and " +"the convenience functions) accept a large number of optional arguments. For " +"most typical use cases, many of these arguments can be safely left at their " +"default values. The arguments that are most commonly needed are:" +msgstr "" +"Pour gérer un large ensemble de cas, le constructeur de :class:`Popen` (et " +"les fonctions de convenance) acceptent de nombreux arguments optionnels. " +"Pour les cas d'utilisation les plus typiques, beaucoup de ces arguments " +"peuvent sans problème être laissés à leurs valeurs par défaut. Les arguments " +"les plus communément nécessaires sont :" + +#: ../Doc/library/subprocess.rst:256 +msgid "" +"*args* is required for all calls and should be a string, or a sequence of " +"program arguments. Providing a sequence of arguments is generally preferred, " +"as it allows the module to take care of any required escaping and quoting of " +"arguments (e.g. to permit spaces in file names). If passing a single string, " +"either *shell* must be :const:`True` (see below) or else the string must " +"simply name the program to be executed without specifying any arguments." +msgstr "" +"*args* est requis pour tous les appels et doit être une chaîne de caractères " +"ou une séquence d'arguments du programme. Il est généralement préférable de " +"fournir une séquence d'arguments, puisque cela permet au module de s'occuper " +"des potentiels échappements ou guillemets autour des arguments (p. ex. pour " +"permettre des espaces dans des noms de fichiers). Si l'argument est passé " +"comme une simple chaîne, soit *shell* doit valoir :const:`True` (voir ci-" +"dessous) soit la chaîne doit simplement contenir le nom du programme à " +"exécuter sans spécifier d'arguments supplémentaires." + +#: ../Doc/library/subprocess.rst:264 +msgid "" +"*stdin*, *stdout* and *stderr* specify the executed program's standard " +"input, standard output and standard error file handles, respectively. Valid " +"values are :data:`PIPE`, :data:`DEVNULL`, an existing file descriptor (a " +"positive integer), an existing file object, and ``None``. :data:`PIPE` " +"indicates that a new pipe to the child should be created. :data:`DEVNULL` " +"indicates that the special file :data:`os.devnull` will be used. With the " +"default settings of ``None``, no redirection will occur; the child's file " +"handles will be inherited from the parent. Additionally, *stderr* can be :" +"data:`STDOUT`, which indicates that the stderr data from the child process " +"should be captured into the same file handle as for *stdout*." +msgstr "" +"*stdin*, *stdout* et *stderr* spécifient respectivement les descripteurs " +"d'entrée standard, de sortie standard et de sortie d'erreur du programme " +"exécuté. Les valeurs acceptées sont :data:`PIPE`, :data:`DEVNULL`, un " +"descripteur de fichier existant (nombre entier positif), un objet de " +"fichier, et ``None``. :data:`PIPE` indique qu'un nouveau tube vers le " +"processus enfant sera créé. :data:`DEVNULL` indique que le fichier spécial :" +"data:`os.devnull` sera utilisé. Avec les paramètres ``None`` par défaut, " +"aucune redirection ne se produira, les descripteurs de fichiers du fils " +"seront hérités du parent. Additionnellement, *stderr* peut valoir :data:" +"`STDOUT`, qui indique que les données de la sortie d'erreur du processus " +"fils doivent être capturées dans le même descripteur de fichier que la " +"sortie standard." + +#: ../Doc/library/subprocess.rst:278 +msgid "" +"If *encoding* or *errors* are specified, or *text* (also known as " +"*universal_newlines*) is true, the file objects *stdin*, *stdout* and " +"*stderr* will be opened in text mode using the *encoding* and *errors* " +"specified in the call or the defaults for :class:`io.TextIOWrapper`." +msgstr "" +"Si *encoding* ou *errors* sont spécifiés, ou si *text* (aussi appelé " +"*universal_newlines*) est vrai, les fichiers *stdin*, *stdout* et *stderr* " +"seront ouverts en mode texte en utilisant les *encoding* et *errors* " +"spécifiés à l'appel, ou les valeurs par défaut de :class:`io.TextIOWrapper`." + +#: ../Doc/library/subprocess.rst:284 +msgid "" +"For *stdin*, line ending characters ``'\\n'`` in the input will be converted " +"to the default line separator :data:`os.linesep`. For *stdout* and *stderr*, " +"all line endings in the output will be converted to ``'\\n'``. For more " +"information see the documentation of the :class:`io.TextIOWrapper` class " +"when the *newline* argument to its constructor is ``None``." +msgstr "" +"Pour *stdin*, les caractères de fin de ligne ``'\\n'`` de l'entrée seront " +"convertis vers des séparateurs de ligne par défaut :data:`os.linesep`. Pour " +"*stdout* et *stderr*, toutes les fins de lignes des sorties seront " +"converties vers ``'\\n'``. Pour plus d'informations, voir la documentation " +"de la classe :class:`io.TextIOWrapper` quand l'argument *newline* du " +"constructeur est ``None``." + +#: ../Doc/library/subprocess.rst:290 +msgid "" +"If text mode is not used, *stdin*, *stdout* and *stderr* will be opened as " +"binary streams. No encoding or line ending conversion is performed." +msgstr "" +"Si le mode texte n'est pas utilisé, *stdin*, *stdout* et *stderr* seront " +"ouverts comme des flux binaires. Aucune conversion d'encodage ou de fins de " +"ligne ne sera réalisée." + +#: ../Doc/library/subprocess.rst:293 +msgid "Added *encoding* and *errors* parameters." +msgstr "Ajout des paramètres *encoding* et *errors*." + +#: ../Doc/library/subprocess.rst:296 +msgid "Added the *text* parameter as an alias for *universal_newlines*." +msgstr "Ajout du paramètre *text* comme alias de *universal_newlines*." + +#: ../Doc/library/subprocess.rst:301 +msgid "" +"The newlines attribute of the file objects :attr:`Popen.stdin`, :attr:`Popen." +"stdout` and :attr:`Popen.stderr` are not updated by the :meth:`Popen." +"communicate` method." +msgstr "" +"L'attribut *newlines* des objets :attr:`Popen.stdin`, :attr:`Popen.stdout` " +"et :attr:`Popen.stderr` ne sont pas mis à jour par la méthode :meth:`Popen." +"communicate`." + +#: ../Doc/library/subprocess.rst:305 +msgid "" +"If *shell* is ``True``, the specified command will be executed through the " +"shell. This can be useful if you are using Python primarily for the " +"enhanced control flow it offers over most system shells and still want " +"convenient access to other shell features such as shell pipes, filename " +"wildcards, environment variable expansion, and expansion of ``~`` to a " +"user's home directory. However, note that Python itself offers " +"implementations of many shell-like features (in particular, :mod:`glob`, :" +"mod:`fnmatch`, :func:`os.walk`, :func:`os.path.expandvars`, :func:`os.path." +"expanduser`, and :mod:`shutil`)." +msgstr "" +"Si *shell* vaut ``True``, la commande spécifiée sera exécutée à travers un " +"*shell*. Cela peut être utile si vous utilisez Python pour le contrôle de " +"flot qu'il propose par rapport à beaucoup de *shells* système et voulez tout " +"de même profiter des autres fonctionnalités des *shells* telles que les " +"tubes (*pipes*), les motifs de fichiers, l'expansion des variables " +"d'environnement, et l'expansion du ``~`` vers le répertoire d’accueil de " +"l'utilisateur. Cependant, notez que Python lui-même propose l'implémentation " +"de beaucoup de ces fonctionnalités (en particulier :mod:`glob`, :mod:" +"`fnmatch`, :func:`os.walk`, :func:`os.path.expandvars`, :func:`os.path." +"expanduser` et :mod:`shutil`)." + +#: ../Doc/library/subprocess.rst:315 +msgid "" +"When *universal_newlines* is ``True``, the class uses the encoding :func:" +"`locale.getpreferredencoding(False) ` instead " +"of ``locale.getpreferredencoding()``. See the :class:`io.TextIOWrapper` " +"class for more information on this change." +msgstr "" +"Quand *universal_newlines* vaut ``True``, la classe utilise l'encodage :func:" +"`locale.getpreferredencoding(False) ` plutôt " +"que ``locale.getpreferredencoding()``. Voir la classe :class:`io." +"TextIOWrapper` pour plus d'informations sur ce changement." + +#: ../Doc/library/subprocess.rst:323 ../Doc/library/subprocess.rst:407 +msgid "" +"Read the `Security Considerations`_ section before using ``shell=True``." +msgstr "" +"Lire la section `Security Considerations`_ avant d'utiliser ``shell=True``." + +#: ../Doc/library/subprocess.rst:325 +msgid "" +"These options, along with all of the other options, are described in more " +"detail in the :class:`Popen` constructor documentation." +msgstr "" +"Ces options, ainsi que toutes les autres, sont décrites plus en détails dans " +"la documentation du constructeur de :class:`Popen`." + +#: ../Doc/library/subprocess.rst:330 +msgid "Popen Constructor" +msgstr "Constructeur de *Popen*" + +#: ../Doc/library/subprocess.rst:332 +msgid "" +"The underlying process creation and management in this module is handled by " +"the :class:`Popen` class. It offers a lot of flexibility so that developers " +"are able to handle the less common cases not covered by the convenience " +"functions." +msgstr "" +"La création et la gestion sous-jacentes des processus est gérée par la " +"classe :class:`Popen`. Elle offre beaucoup de flexibilité de façon à ce que " +"les développeurs soient capables de gérer les cas d'utilisation les moins " +"communs, non couverts par les fonctions de convenance." + +#: ../Doc/library/subprocess.rst:345 +msgid "" +"Execute a child program in a new process. On POSIX, the class uses :meth:" +"`os.execvp`-like behavior to execute the child program. On Windows, the " +"class uses the Windows ``CreateProcess()`` function. The arguments to :" +"class:`Popen` are as follows." +msgstr "" +"Exécute un programme fils dans un nouveau processus. Sur les systèmes " +"*POSIX*, la classe utilise un comportement similaire à :meth:`os.execvp` " +"pour exécuter le programme. Sur Windows, la classe utilise la fonction " +"Windows ``CreateProcess()``. Les arguments de :class:`Popen` sont les " +"suivants." + +#: ../Doc/library/subprocess.rst:350 +msgid "" +"*args* should be a sequence of program arguments or else a single string. By " +"default, the program to execute is the first item in *args* if *args* is a " +"sequence. If *args* is a string, the interpretation is platform-dependent " +"and described below. See the *shell* and *executable* arguments for " +"additional differences from the default behavior. Unless otherwise stated, " +"it is recommended to pass *args* as a sequence." +msgstr "" +"*args* doit être une séquence d'arguments du programme ou une chaîne seule. " +"Par défaut, le programme à exécuter est le premier élément de *args* si " +"*args* est une séquence. Si *args* est une chaîne, l'interprétation dépend " +"de la plateforme et est décrite plus bas. Voir les arguments *shell* et " +"*executable* pour d'autres différences avec le comportement par défaut. " +"Sans autre indication, il est recommandé de passer *args* comme une séquence." + +#: ../Doc/library/subprocess.rst:357 +msgid "" +"On POSIX, if *args* is a string, the string is interpreted as the name or " +"path of the program to execute. However, this can only be done if not " +"passing arguments to the program." +msgstr "" +"Sur les systèmes *POSIX*, si *args* est une chaîne, elle est interprétée " +"comme le nom ou le chemin du programme à exécuter. Cependant, cela ne peut " +"être fait que si le programme est passé sans arguments." + +#: ../Doc/library/subprocess.rst:363 +msgid "" +":meth:`shlex.split` can be useful when determining the correct tokenization " +"for *args*, especially in complex cases::" +msgstr "" +":meth:`shlex.split` peut être utilisée pour déterminer le découpage correct " +"de *args*, spécifiquement dans les cas complexes ::" + +#: ../Doc/library/subprocess.rst:374 +msgid "" +"Note in particular that options (such as *-input*) and arguments (such as " +"*eggs.txt*) that are separated by whitespace in the shell go in separate " +"list elements, while arguments that need quoting or backslash escaping when " +"used in the shell (such as filenames containing spaces or the *echo* command " +"shown above) are single list elements." +msgstr "" +"Notez en particulier que les options (comme *-input*) et arguments (comme " +"*eggs.txt*) qui sont séparés par des espaces dans le *shell* iront dans des " +"éléments séparés de la liste, alors que les arguments qui nécessitent des " +"guillemets et échappements quand utilisés dans le *shell* (comme les noms de " +"fichiers contenant des espaces ou la commande *echo* montrée plus haut) " +"forment des éléments uniques." + +#: ../Doc/library/subprocess.rst:380 +msgid "" +"On Windows, if *args* is a sequence, it will be converted to a string in a " +"manner described in :ref:`converting-argument-sequence`. This is because " +"the underlying ``CreateProcess()`` operates on strings." +msgstr "" +"Sous Windows, si *args* est une séquence, elle sera convertie vers une " +"chaîne de caractères de la manière décrite dans :ref:`converting-argument-" +"sequence`. Cela fonctionne ainsi parce que la fonction ``CreateProcess()`` " +"opère sur des chaînes." + +#: ../Doc/library/subprocess.rst:384 +msgid "" +"The *shell* argument (which defaults to ``False``) specifies whether to use " +"the shell as the program to execute. If *shell* is ``True``, it is " +"recommended to pass *args* as a string rather than as a sequence." +msgstr "" +"L'argument *shell* (qui vaut ``False`` par défaut) spécifie s'il faut " +"utiliser un *shell* comme programme à exécuter. Si *shell* vaut ``True``, " +"il est recommandé de passer *args* comme une chaîne de caractères plutôt " +"qu'une séquence." + +#: ../Doc/library/subprocess.rst:388 +msgid "" +"On POSIX with ``shell=True``, the shell defaults to :file:`/bin/sh`. If " +"*args* is a string, the string specifies the command to execute through the " +"shell. This means that the string must be formatted exactly as it would be " +"when typed at the shell prompt. This includes, for example, quoting or " +"backslash escaping filenames with spaces in them. If *args* is a sequence, " +"the first item specifies the command string, and any additional items will " +"be treated as additional arguments to the shell itself. That is to say, :" +"class:`Popen` does the equivalent of::" +msgstr "" +"Sur les systèmes POSIX avec ``shell=True``, le *shell* par défaut est :file:" +"`/bin/sh`. Si *args* est une chaîne de caractères, la chaîne spécifie la " +"commande à exécuter à travers le *shell*. Cela signifie que la chaîne doit " +"être formatée exactement comme elle le serait si elle était tapée dans " +"l'invite de commandes du *shell*. Cela inclut, par exemple, les guillemets " +"ou les *backslashs* échappant les noms de fichiers contenant des espaces. " +"Si *args* est une séquence, le premier élément spécifie la commande, et les " +"éléments supplémentaires seront traités comme des arguments additionnels à " +"passer au *shell* lui-même. Pour ainsi dire, :class:`Popen` réalise " +"l'équivalent de ::" + +#: ../Doc/library/subprocess.rst:399 +msgid "" +"On Windows with ``shell=True``, the :envvar:`COMSPEC` environment variable " +"specifies the default shell. The only time you need to specify " +"``shell=True`` on Windows is when the command you wish to execute is built " +"into the shell (e.g. :command:`dir` or :command:`copy`). You do not need " +"``shell=True`` to run a batch file or console-based executable." +msgstr "" +"Sous Windows avec ``shell=True``, la variable d'environnement :envvar:" +"`COMSPEC` spécifie le *shell* par défaut. La seule raison pour laquelle " +"vous devriez spécifier ``shell=True`` sous Windows est quand la commande que " +"vous souhaitez exécuter est une *built-in* du *shell* (p. ex. :command:`dir` " +"ou :command:`copy`). Vous n'avez pas besoin de ``shell=True`` pour lancer " +"un fichier batch ou un exécutable console." + +#: ../Doc/library/subprocess.rst:409 +msgid "" +"*bufsize* will be supplied as the corresponding argument to the :func:`open` " +"function when creating the stdin/stdout/stderr pipe file objects:" +msgstr "" +"*bufsize* sera fourni comme l'argument correspondant à la fonction :func:" +"`open`, lors de la création des objets de fichiers pour les tubes *stdin*/" +"*stdout*/*stderr* :" + +#: ../Doc/library/subprocess.rst:413 +msgid "" +":const:`0` means unbuffered (read and write are one system call and can " +"return short)" +msgstr "" +":const:`0` indique de ne pas utiliser de tampon (les lectures et écritures " +"sont des appels systèmes et peuvent renvoyer des données incomplètes) ;" + +#: ../Doc/library/subprocess.rst:415 +msgid "" +":const:`1` means line buffered (only usable if ``universal_newlines=True`` i." +"e., in a text mode)" +msgstr "" +":const:`1` indique une mise en cache par ligne (utilisable seulement si " +"``universal_newlines=True``, c'est-à-dire en mode texte) ;" + +#: ../Doc/library/subprocess.rst:417 +msgid "any other positive value means use a buffer of approximately that size" +msgstr "" +"toutes les autres valeurs positives indiquent d'utiliser un tampon " +"d'approximativement cette taille ;" + +#: ../Doc/library/subprocess.rst:419 +msgid "" +"negative bufsize (the default) means the system default of io." +"DEFAULT_BUFFER_SIZE will be used." +msgstr "" +"un *bufsize* négatif (par défaut) indique au système d'utiliser la valeur " +"par défaut *io.DEFAULT_BUFFER_SIZE*." + +#: ../Doc/library/subprocess.rst:422 +msgid "" +"*bufsize* now defaults to -1 to enable buffering by default to match the " +"behavior that most code expects. In versions prior to Python 3.2.4 and " +"3.3.1 it incorrectly defaulted to :const:`0` which was unbuffered and " +"allowed short reads. This was unintentional and did not match the behavior " +"of Python 2 as most code expected." +msgstr "" +"*bufsize* vaut maintenant ``-1`` par défaut, pour activer par défaut la mise " +"en cache et correspondre au comportement attendu par la plupart des codes. " +"Dans les versions de Python antérieures à 3.2.4 et 3.3.1, par erreur, la " +"valeur par défaut était :const:`0` qui ne réalisait aucune mise en cache et " +"autorisait les lectures incomplètes. Cela n'était pas intentionnel et ne " +"correspondait pas au comportement de Python 2 attendu par la plupart des " +"codes." + +#: ../Doc/library/subprocess.rst:429 +msgid "" +"The *executable* argument specifies a replacement program to execute. It " +"is very seldom needed. When ``shell=False``, *executable* replaces the " +"program to execute specified by *args*. However, the original *args* is " +"still passed to the program. Most programs treat the program specified by " +"*args* as the command name, which can then be different from the program " +"actually executed. On POSIX, the *args* name becomes the display name for " +"the executable in utilities such as :program:`ps`. If ``shell=True``, on " +"POSIX the *executable* argument specifies a replacement shell for the " +"default :file:`/bin/sh`." +msgstr "" +"L'argument *executable* spécifie un programme de remplacement à exécuter. " +"Il est très rarement nécessaire. Quand ``shell=False``, *executable* " +"remplace le programme à exécuter spécifié par *args*. Cependant, les " +"arguments originels d'*args` sont toujours passés au programme. La plupart " +"des programmes traitent le programme spécifié par *args* comme le nom de la " +"commande, qui peut être différent du programme réellement exécuté. Sur les " +"systèmes POSIX, le nom tiré d'*args* devient le nom affiché pour " +"l'exécutable dans des utilitaires tels que :program:`ps`. Si " +"``shell=True``, sur les systèmes POSIX, l'argument *executable* précise le " +"*shell* à utiliser plutôt que :file:`/bin/sh` par défaut." + +#: ../Doc/library/subprocess.rst:439 +msgid "" +"*stdin*, *stdout* and *stderr* specify the executed program's standard " +"input, standard output and standard error file handles, respectively. Valid " +"values are :data:`PIPE`, :data:`DEVNULL`, an existing file descriptor (a " +"positive integer), an existing :term:`file object`, and ``None``. :data:" +"`PIPE` indicates that a new pipe to the child should be created. :data:" +"`DEVNULL` indicates that the special file :data:`os.devnull` will be used. " +"With the default settings of ``None``, no redirection will occur; the " +"child's file handles will be inherited from the parent. Additionally, " +"*stderr* can be :data:`STDOUT`, which indicates that the stderr data from " +"the applications should be captured into the same file handle as for stdout." +msgstr "" +"*stdin*, *stdout* et *stderr* spécifient respectivement les descripteurs " +"d'entrée standard, de sortie standard et de sortie d'erreur du programme " +"exécuté. Les valeurs acceptées sont :data:`PIPE`, :data:`DEVNULL`, un " +"descripteur de fichier existant (nombre entier positif), un :term:`file " +"object`, et ``None``. :data:`PIPE` indique qu'un nouveau tube vers le " +"processus enfant sera créé. :data:`DEVNULL` indique que le fichier spécial :" +"data:`os.devnull` sera utilisé. Avec les paramètres ``None`` par défaut, " +"aucune redirection ne se produira, les descripteurs de fichiers du fils " +"seront hérités du parent. Additionnellement, *stderr* peut valoir :data:" +"`STDOUT`, qui indique que les données de la sortie d'erreur du processus " +"fils doivent être capturées dans le même descripteur de fichier que la " +"sortie standard." + +#: ../Doc/library/subprocess.rst:450 +msgid "" +"If *preexec_fn* is set to a callable object, this object will be called in " +"the child process just before the child is executed. (POSIX only)" +msgstr "" +"Si un objet appelable est passé à *preexec_fn*, cet objet sera appelé dans " +"le processus enfant juste avant d'exécuter le programme. (POSIX seulement)" + +#: ../Doc/library/subprocess.rst:456 +msgid "" +"The *preexec_fn* parameter is not safe to use in the presence of threads in " +"your application. The child process could deadlock before exec is called. " +"If you must use it, keep it trivial! Minimize the number of libraries you " +"call into." +msgstr "" +"Le paramètre *preexec_fn* n'est pas sain à utiliser en présence d'autres " +"fils d'exécution dans votre application. Le processus fils pourrait être " +"bloqué (*deadlock*) avant qu'*exec* ne soit appelée. Si vous devez utiliser " +"ce paramètre, gardez son utilisation triviale ! Minimisez le nombre de " +"bibliothèques que vous y appelez." + +#: ../Doc/library/subprocess.rst:464 +msgid "" +"If you need to modify the environment for the child use the *env* parameter " +"rather than doing it in a *preexec_fn*. The *start_new_session* parameter " +"can take the place of a previously common use of *preexec_fn* to call os." +"setsid() in the child." +msgstr "" +"Si vous devez modifier l'environnement du fils, utilisez le paramètre *env* " +"plutôt que faire cela dans une *preexec_fn*. Le paramètre " +"*start_new_session* peut prendre la place de *preexec_fn* qui était " +"autrefois communément utilisé pour appeler *os.setsid()* dans le fils." + +#: ../Doc/library/subprocess.rst:469 +msgid "" +"If *close_fds* is true, all file descriptors except :const:`0`, :const:`1` " +"and :const:`2` will be closed before the child process is executed. " +"Otherwise when *close_fds* is false, file descriptors obey their inheritable " +"flag as described in :ref:`fd_inheritance`." +msgstr "" +"Si *close_fds* est vrai, tous les descripteurs de fichiers exceptés :const:" +"`0`, :const:`1` et :const:`2` sont fermés avant que le processus enfant " +"soit exécuté. Sinon, quand *close_fds* est faux, les descripteurs de " +"fichiers se comportent conformément à leur option d'héritage décrite dans :" +"ref:`fd_inheritance`." + +#: ../Doc/library/subprocess.rst:474 +msgid "" +"On Windows, if *close_fds* is true then no handles will be inherited by the " +"child process unless explicitly passed in the ``handle_list`` element of :" +"attr:`STARTUPINFO.lpAttributeList`, or by standard handle redirection." +msgstr "" +"Sur Windows, si *close_fds* est vrai, alors aucun descripteur n'est hérité " +"par le processus enfant à moins d'être explicitement passé dans l'élément " +"``handle_list`` de :attr:`STARTUPINFO.lpAttributeList`, ou par redirection " +"des descripteurs standards." + +#: ../Doc/library/subprocess.rst:478 +msgid "" +"The default for *close_fds* was changed from :const:`False` to what is " +"described above." +msgstr "" +"La valeur par défaut de *close_fds* n'est plus :const:`False`, comme décrit " +"ci-dessus." + +#: ../Doc/library/subprocess.rst:482 +msgid "" +"On Windows the default for *close_fds* was changed from :const:`False` to :" +"const:`True` when redirecting the standard handles. It's now possible to set " +"*close_fds* to :const:`True` when redirecting the standard handles." +msgstr "" +"Sur Windows, la valeur par défaut de *close_fds* a été changée de :const:" +"`False` à :const:`True` lors d'une redirection des descripteurs standards. " +"Il est maintenant possible de donner la valeur :const:`True` à *close_fds* " +"lors d'une redirection de descripteurs standards." + +#: ../Doc/library/subprocess.rst:487 +msgid "" +"*pass_fds* is an optional sequence of file descriptors to keep open between " +"the parent and child. Providing any *pass_fds* forces *close_fds* to be :" +"const:`True`. (POSIX only)" +msgstr "" +"*pass_fds* est une séquence optionnelle de descripteurs de fichiers à garder " +"ouverts entre le parent et l'enfant. Fournir *pass_fds* force *close_fds* à " +"valoir :const:`True`. (POSIX seulement)" + +#: ../Doc/library/subprocess.rst:491 +msgid "The *pass_fds* parameter was added." +msgstr "Ajout du paramètre *pass_fds*." + +#: ../Doc/library/subprocess.rst:494 +msgid "" +"If *cwd* is not ``None``, the function changes the working directory to " +"*cwd* before executing the child. *cwd* can be a :class:`str` and :term:" +"`path-like ` object. In particular, the function looks " +"for *executable* (or for the first item in *args*) relative to *cwd* if the " +"executable path is a relative path." +msgstr "" +"Si *cwd* n'est pas ``None``, la fonction change de répertoire courant pour " +"*cwd* avant d'exécuter le fils. *cwd* peut être un objet :class:`str` ou " +"un :term:`chemin-compatible `. En particulier, la " +"fonction recherche *executable* (ou le premier élément d'*args*) " +"relativement à *cwd* si le chemin d'exécution est relatif." + +#: ../Doc/library/subprocess.rst:500 +msgid "*cwd* parameter accepts a :term:`path-like object`." +msgstr "le paramètre *cwd* accepte un :term:`path-like object`." + +#: ../Doc/library/subprocess.rst:503 +msgid "" +"If *restore_signals* is true (the default) all signals that Python has set " +"to SIG_IGN are restored to SIG_DFL in the child process before the exec. " +"Currently this includes the SIGPIPE, SIGXFZ and SIGXFSZ signals. (POSIX only)" +msgstr "" +"Si *restore_signals* est vrai (par défaut), tous les signaux que Python a " +"mis à *SIG_IGN* sont restaurés à *SIG_DFL* dans le processus fils avant " +"l'appel à *exec*. Actuellement, cela inclut les signaux *SIGPIPE*, *SIGXFZ* " +"et *SIGXFSZ*. (POSIX seulement)" + +#: ../Doc/library/subprocess.rst:508 +msgid "*restore_signals* was added." +msgstr "Ajout de *restore_signals*." + +#: ../Doc/library/subprocess.rst:511 +msgid "" +"If *start_new_session* is true the setsid() system call will be made in the " +"child process prior to the execution of the subprocess. (POSIX only)" +msgstr "" +"Si *start_new_session* est vrai, l'appel système à *setsid()* sera réalisé " +"dans le processus fils avant l'exécution du sous-processus. (POSIX " +"seulement)" + +#: ../Doc/library/subprocess.rst:514 +msgid "*start_new_session* was added." +msgstr "Ajout de *start_new_session*." + +#: ../Doc/library/subprocess.rst:517 +msgid "" +"If *env* is not ``None``, it must be a mapping that defines the environment " +"variables for the new process; these are used instead of the default " +"behavior of inheriting the current process' environment." +msgstr "" +"Si *env* n'est pas ``None``, il doit être un tableau associatif définissant " +"les variables d'environnement du nouveau processus ; elles seront utilisées " +"à la place du comportement par défaut qui est d'hériter de l'environnement " +"du processus courant." + +#: ../Doc/library/subprocess.rst:523 +msgid "" +"If specified, *env* must provide any variables required for the program to " +"execute. On Windows, in order to run a `side-by-side assembly`_ the " +"specified *env* **must** include a valid :envvar:`SystemRoot`." +msgstr "" +"Si spécifié, *env* doit fournir chaque variable requise pour l'exécution du " +"programme. Sous Windows, afin d'exécuter un `side-by-side assembly`_, " +"l'environnement *env* spécifié **doit** contenir une variable :envvar:" +"`SystemRoot` valide." + +#: ../Doc/library/subprocess.rst:529 +msgid "" +"If *encoding* or *errors* are specified, or *text* is true, the file objects " +"*stdin*, *stdout* and *stderr* are opened in text mode with the specified " +"encoding and *errors*, as described above in :ref:`frequently-used-" +"arguments`. The *universal_newlines* argument is equivalent to *text* and " +"is provided for backwards compatibility. By default, file objects are opened " +"in binary mode." +msgstr "" +"Si *encoding* ou *errors* sont spécifiés, ou si *text* est vrai, les " +"fichiers *stdin*, *stdout* et *stderr* sont ouverts en mode texte, avec " +"l'encodage et la valeur d'*errors* spécifiés, comme décrit ci-dessus dans :" +"ref:`frequently-used-arguments`. L'argument *universal_newlines*, équivalent " +"à *text*, est fourni pour la rétrocompatibilité. Autrement, ils sont ouverts " +"comme des flux binaires." + +#: ../Doc/library/subprocess.rst:535 +msgid "*encoding* and *errors* were added." +msgstr "Ajout d'*encoding* et *errors*." + +#: ../Doc/library/subprocess.rst:538 ../Doc/library/subprocess.rst:1106 +msgid "*text* was added as a more readable alias for *universal_newlines*." +msgstr "" +"*text* a été ajouté comme un alias plus lisible de *universal_newlines*." + +#: ../Doc/library/subprocess.rst:541 +msgid "" +"If given, *startupinfo* will be a :class:`STARTUPINFO` object, which is " +"passed to the underlying ``CreateProcess`` function. *creationflags*, if " +"given, can be one or more of the following flags:" +msgstr "" +"Si fourni, *startupinfo* sera un objet :class:`STARTUPINFO`, qui sera passé " +"à la fonction ``CreateProcess`` inhérente. *creationflags*, si fourni, peut " +"avoir l'une des valeurs suivantes :" + +#: ../Doc/library/subprocess.rst:545 +msgid ":data:`CREATE_NEW_CONSOLE`" +msgstr ":data:`CREATE_NEW_CONSOLE`" + +#: ../Doc/library/subprocess.rst:546 +msgid ":data:`CREATE_NEW_PROCESS_GROUP`" +msgstr ":data:`CREATE_NEW_PROCESS_GROUP`" + +#: ../Doc/library/subprocess.rst:547 +msgid ":data:`ABOVE_NORMAL_PRIORITY_CLASS`" +msgstr ":data:`ABOVE_NORMAL_PRIORITY_CLASS`" + +#: ../Doc/library/subprocess.rst:548 +msgid ":data:`BELOW_NORMAL_PRIORITY_CLASS`" +msgstr ":data:`BELOW_NORMAL_PRIORITY_CLASS`" + +#: ../Doc/library/subprocess.rst:549 +msgid ":data:`HIGH_PRIORITY_CLASS`" +msgstr ":data:`HIGH_PRIORITY_CLASS`" + +#: ../Doc/library/subprocess.rst:550 +msgid ":data:`IDLE_PRIORITY_CLASS`" +msgstr ":data:`IDLE_PRIORITY_CLASS`" + +#: ../Doc/library/subprocess.rst:551 +msgid ":data:`NORMAL_PRIORITY_CLASS`" +msgstr ":data:`NORMAL_PRIORITY_CLASS`" + +#: ../Doc/library/subprocess.rst:552 +msgid ":data:`REALTIME_PRIORITY_CLASS`" +msgstr ":data:`REALTIME_PRIORITY_CLASS`" + +#: ../Doc/library/subprocess.rst:553 +msgid ":data:`CREATE_NO_WINDOW`" +msgstr ":data:`CREATE_NO_WINDOW`" + +#: ../Doc/library/subprocess.rst:554 +msgid ":data:`DETACHED_PROCESS`" +msgstr ":data:`DETACHED_PROCESS`" + +#: ../Doc/library/subprocess.rst:555 +msgid ":data:`CREATE_DEFAULT_ERROR_MODE`" +msgstr ":data:`CREATE_DEFAULT_ERROR_MODE`" + +#: ../Doc/library/subprocess.rst:556 +msgid ":data:`CREATE_BREAKAWAY_FROM_JOB`" +msgstr ":data:`CREATE_BREAKAWAY_FROM_JOB`" + +#: ../Doc/library/subprocess.rst:558 +msgid "" +"Popen objects are supported as context managers via the :keyword:`with` " +"statement: on exit, standard file descriptors are closed, and the process is " +"waited for. ::" +msgstr "" +"Les objets *Popen* sont gérés comme gestionnaires de contexte avec " +"l'instruction :keyword:`with` : à la sortie, les descripteurs de fichiers " +"standards sont fermés, et le processus est attendu ::" + +#: ../Doc/library/subprocess.rst:565 +msgid "Added context manager support." +msgstr "Ajout de la gestion des gestionnaires de contexte." + +#: ../Doc/library/subprocess.rst:568 +msgid "" +"Popen destructor now emits a :exc:`ResourceWarning` warning if the child " +"process is still running." +msgstr "" +"Le destructeur de *Popen* émet maintenant un avertissement :exc:" +"`ResourceWarning` si le processus fils est toujours en cours d'exécution." + +#: ../Doc/library/subprocess.rst:574 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/subprocess.rst:576 +msgid "" +"Exceptions raised in the child process, before the new program has started " +"to execute, will be re-raised in the parent." +msgstr "" +"Les exceptions levées dans le processus fils, avant que le nouveau programme " +"ait commencé à s'exécuter, seront ré-levées dans le parent." + +#: ../Doc/library/subprocess.rst:579 +msgid "" +"The most common exception raised is :exc:`OSError`. This occurs, for " +"example, when trying to execute a non-existent file. Applications should " +"prepare for :exc:`OSError` exceptions." +msgstr "" +"L'exception la plus communément levée est :exc:`OSError`. Elle survient, " +"par exemple, si vous essayez d'exécuter un fichier inexistant. Les " +"applications doivent se préparer à traiter des exceptions :exc:`OSError`." + +#: ../Doc/library/subprocess.rst:583 +msgid "" +"A :exc:`ValueError` will be raised if :class:`Popen` is called with invalid " +"arguments." +msgstr "" +"Une :exc:`ValueError` sera levée si :class:`Popen` est appelé avec des " +"arguments invalides." + +#: ../Doc/library/subprocess.rst:586 +msgid "" +":func:`check_call` and :func:`check_output` will raise :exc:" +"`CalledProcessError` if the called process returns a non-zero return code." +msgstr "" +":func:`check_call` et :func:`check_output` lèveront une :exc:" +"`CalledProcessError` si le processus appelé renvoie un code de retour non " +"nul." + +#: ../Doc/library/subprocess.rst:590 +msgid "" +"All of the functions and methods that accept a *timeout* parameter, such as :" +"func:`call` and :meth:`Popen.communicate` will raise :exc:`TimeoutExpired` " +"if the timeout expires before the process exits." +msgstr "" +"Toutes les fonctions et méthodes qui acceptent un paramètre *timeout*, " +"telles que :func:`call` et :meth:`Popen.communicate` lèveront une :exc:" +"`TImeoutExpired` si le *timeout* expire avant la fin du processus." + +#: ../Doc/library/subprocess.rst:594 +msgid "" +"Exceptions defined in this module all inherit from :exc:`SubprocessError`." +msgstr "" +"Toutes les exceptions définies dans ce module héritent de :exc:" +"`SubprocessError`." + +#: ../Doc/library/subprocess.rst:596 +msgid "The :exc:`SubprocessError` base class was added." +msgstr "Ajout de la classe de base :exc:`SubprocessError`." + +#: ../Doc/library/subprocess.rst:601 +msgid "Security Considerations" +msgstr "Considérations de sécurité" + +#: ../Doc/library/subprocess.rst:603 +msgid "" +"Unlike some other popen functions, this implementation will never implicitly " +"call a system shell. This means that all characters, including shell " +"metacharacters, can safely be passed to child processes. If the shell is " +"invoked explicitly, via ``shell=True``, it is the application's " +"responsibility to ensure that all whitespace and metacharacters are quoted " +"appropriately to avoid `shell injection `_ vulnerabilities." +msgstr "" +"Contrairement à quelques autres fonctions *popen*, cette implémentation " +"n'appellera jamais implicitement le *shell* du système. Cela signifie que " +"tous les caractères, incluant les métacaractères des *shells*, peuvent être " +"passés aux processus fils en toute sécurité. Si le *shell* est invoqué " +"explicitement, avec ``shell=True``, il est de la responsabilité de " +"l'application d'assurer que les espaces et métacaractères sont échappés " +"correctement pour éviter les vulnérabilités de type `shell injection " +"`_." + +#: ../Doc/library/subprocess.rst:612 +msgid "" +"When using ``shell=True``, the :func:`shlex.quote` function can be used to " +"properly escape whitespace and shell metacharacters in strings that are " +"going to be used to construct shell commands." +msgstr "" +"Avec ``shell=True``, la fonction :func:`shlex.quote` peut être utilisée pour " +"échapper proprement les espaces et métacaractères dans les chaînes qui " +"seront utilisées pour construire les commandes *shell*." + +#: ../Doc/library/subprocess.rst:618 +msgid "Popen Objects" +msgstr "Objets *Popen*" + +#: ../Doc/library/subprocess.rst:620 +msgid "Instances of the :class:`Popen` class have the following methods:" +msgstr "" +"Les instances de la classe :class:`Popen` possèdent les méthodes suivantes :" + +#: ../Doc/library/subprocess.rst:625 +msgid "" +"Check if child process has terminated. Set and return :attr:`~Popen." +"returncode` attribute. Otherwise, returns ``None``." +msgstr "" +"Vérifie que le processus enfant s'est terminé. Modifie et renvoie " +"l'attribut :attr:`~Popen.returncode`, sinon, renvoie ``None``." + +#: ../Doc/library/subprocess.rst:631 +msgid "" +"Wait for child process to terminate. Set and return :attr:`~Popen." +"returncode` attribute." +msgstr "" +"Attend qu'un processus enfant se termine. Modifie l'attribut :attr:`~Popen." +"returncode` et le renvoie." + +#: ../Doc/library/subprocess.rst:634 +msgid "" +"If the process does not terminate after *timeout* seconds, raise a :exc:" +"`TimeoutExpired` exception. It is safe to catch this exception and retry " +"the wait." +msgstr "" +"Si le processus ne se termine pas après le nombre de secondes spécifié par " +"*timeout*, une exception :exc:`TimeoutExpired` est levée. Cela ne pose " +"aucun problème d'attraper cette exception et de réessayer d'attendre." + +#: ../Doc/library/subprocess.rst:640 +msgid "" +"This will deadlock when using ``stdout=PIPE`` or ``stderr=PIPE`` and the " +"child process generates enough output to a pipe such that it blocks waiting " +"for the OS pipe buffer to accept more data. Use :meth:`Popen.communicate` " +"when using pipes to avoid that." +msgstr "" +"Cela provoquera un blocage (*deadlock*) lors de l'utilisation de " +"``stdout=PIPE`` ou ``stderr=PIPE`` si le processus fils génère tellement de " +"données sur le tube qu'il le bloque, en attente que le système " +"d'exploitation permette au tampon du tube d'accepter plus de données. " +"Utilisez :meth:`Popen.communicate` pour éviter ce problème lors de " +"l'utilisation de tubes." + +#: ../Doc/library/subprocess.rst:647 +msgid "" +"The function is implemented using a busy loop (non-blocking call and short " +"sleeps). Use the :mod:`asyncio` module for an asynchronous wait: see :class:" +"`asyncio.create_subprocess_exec`." +msgstr "" +"Cette fonction est implémentée avec une attente active (appels non bloquants " +"et *sleep* courts). Utilisez le module :mod:`asyncio` pour une attente " +"asynchrone : voir :class:`asyncio.create_subprocess_exec`." + +#: ../Doc/library/subprocess.rst:651 ../Doc/library/subprocess.rst:691 +#: ../Doc/library/subprocess.rst:1025 ../Doc/library/subprocess.rst:1053 +#: ../Doc/library/subprocess.rst:1097 +msgid "*timeout* was added." +msgstr "Ajout de *timeout*." + +#: ../Doc/library/subprocess.rst:656 +msgid "" +"Interact with process: Send data to stdin. Read data from stdout and " +"stderr, until end-of-file is reached. Wait for process to terminate. The " +"optional *input* argument should be data to be sent to the child process, or " +"``None``, if no data should be sent to the child. If streams were opened in " +"text mode, *input* must be a string. Otherwise, it must be bytes." +msgstr "" +"Interagit avec le processus : envoie des données sur l'entrée standard, lit " +"en retour les données sur les sorties standard et d'erreur, et attend que le " +"processus se termine. L'argument optionnel *input* contient les données à " +"envoyer au processus fils, ou ``None`` s'il n'y a aucune donnée à lui " +"transmettre. Si les flux sont ouverts en mode texte, *input* doit être une " +"chaîne de caractère. Autrement, ce doit être un objet *bytes*." + +#: ../Doc/library/subprocess.rst:662 +msgid "" +":meth:`communicate` returns a tuple ``(stdout_data, stderr_data)``. The data " +"will be strings if streams were opened in text mode; otherwise, bytes." +msgstr "" +":meth:`communicate` renvoie un *tuple* ``(stdout_data, stderr_data)``. Les " +"données seront des chaînes de caractères si les flux sont ouverts en mode " +"texte, et des objets *bytes* dans le cas contraire." + +#: ../Doc/library/subprocess.rst:666 +msgid "" +"Note that if you want to send data to the process's stdin, you need to " +"create the Popen object with ``stdin=PIPE``. Similarly, to get anything " +"other than ``None`` in the result tuple, you need to give ``stdout=PIPE`` " +"and/or ``stderr=PIPE`` too." +msgstr "" +"Notez que si vous souhaitez envoyer des données sur l'entrée standard du " +"processus, vous devez créer l'objet *Popen* avec ``stdin=PIPE``. " +"Similairement, pour obtenir autre chose que ``None`` dans le *tuple* " +"résultant, vous devez aussi préciser ``stdout=PIPE`` et/ou ``stderr=PIPE``." + +#: ../Doc/library/subprocess.rst:671 +msgid "" +"If the process does not terminate after *timeout* seconds, a :exc:" +"`TimeoutExpired` exception will be raised. Catching this exception and " +"retrying communication will not lose any output." +msgstr "" +"Si le processus ne se termine pas après *timeout* secondes, une exception :" +"exc:`TimeoutExpired` est levée. Attraper cette exception et retenter la " +"communication ne fait perdre aucune donnée de sortie." + +#: ../Doc/library/subprocess.rst:675 +msgid "" +"The child process is not killed if the timeout expires, so in order to " +"cleanup properly a well-behaved application should kill the child process " +"and finish communication::" +msgstr "" +"Le processus enfant n'est pas tué si le *timeout* expire, donc afin de " +"nettoyer proprement le tout, une application polie devrait tuer le processus " +"fils et terminer la communication ::" + +#: ../Doc/library/subprocess.rst:688 +msgid "" +"The data read is buffered in memory, so do not use this method if the data " +"size is large or unlimited." +msgstr "" +"Les données lues sont mises en cache en mémoire, donc n'utilisez pas cette " +"méthode si la taille des données est importante voire illimitée." + +#: ../Doc/library/subprocess.rst:697 +msgid "Sends the signal *signal* to the child." +msgstr "Envoie le signal *signal* au fils." + +#: ../Doc/library/subprocess.rst:701 +msgid "" +"On Windows, SIGTERM is an alias for :meth:`terminate`. CTRL_C_EVENT and " +"CTRL_BREAK_EVENT can be sent to processes started with a *creationflags* " +"parameter which includes `CREATE_NEW_PROCESS_GROUP`." +msgstr "" +"Sous Windows, *SIGTERM* est un alias pour :meth:`terminate`. *CTRL_C_EVENT* " +"et *CTRL_BREAK_EVENT* peuvent être envoyés aux processus démarrés avec un " +"paramètre *creationflags* incluant `CREATE_NEW_PROCESS_GROUP`." + +#: ../Doc/library/subprocess.rst:708 +msgid "" +"Stop the child. On Posix OSs the method sends SIGTERM to the child. On " +"Windows the Win32 API function :c:func:`TerminateProcess` is called to stop " +"the child." +msgstr "" +"Stoppe le processus fils. Sur les systèmes POSIX, la méthode envoie un " +"signal *SIGTERM* au fils. Sous Windows, la fonction :c:func:" +"`TerminateProcess` de l'API *Win32* est appelée pour arrêter le fils." + +#: ../Doc/library/subprocess.rst:715 +msgid "" +"Kills the child. On Posix OSs the function sends SIGKILL to the child. On " +"Windows :meth:`kill` is an alias for :meth:`terminate`." +msgstr "" +"Tue le processus fils. Sur les systèmes POSIX, la fonction envoie un signal " +"*SIGKILL* au fils. Sous Windows, :meth:`kill` est un alias pour :meth:" +"`terminate`." + +#: ../Doc/library/subprocess.rst:719 +msgid "The following attributes are also available:" +msgstr "Les attributs suivants sont aussi disponibles :" + +#: ../Doc/library/subprocess.rst:723 +msgid "" +"The *args* argument as it was passed to :class:`Popen` -- a sequence of " +"program arguments or else a single string." +msgstr "" +"L'argument *args* tel que passé à :class:`Popen` -- une séquence d'arguments " +"du programme ou une simple chaîne de caractères." + +#: ../Doc/library/subprocess.rst:730 +msgid "" +"If the *stdin* argument was :data:`PIPE`, this attribute is a writeable " +"stream object as returned by :func:`open`. If the *encoding* or *errors* " +"arguments were specified or the *universal_newlines* argument was ``True``, " +"the stream is a text stream, otherwise it is a byte stream. If the *stdin* " +"argument was not :data:`PIPE`, this attribute is ``None``." +msgstr "" +"Si l'argument *stdin* valait :data:`PIPE`, cet attribut est un flux " +"accessible en écriture comme renvoyé par :func:`open`. Si les arguments " +"*encoding* ou *errors* ont été spécifiés, ou si *universal_newlines* valait " +"``True``, le flux est textuel, il est autrement binaire. Si l'argument " +"*stdin* ne valait pas :data:`PIPE`, cet attribut est ``None``." + +#: ../Doc/library/subprocess.rst:739 +msgid "" +"If the *stdout* argument was :data:`PIPE`, this attribute is a readable " +"stream object as returned by :func:`open`. Reading from the stream provides " +"output from the child process. If the *encoding* or *errors* arguments were " +"specified or the *universal_newlines* argument was ``True``, the stream is a " +"text stream, otherwise it is a byte stream. If the *stdout* argument was " +"not :data:`PIPE`, this attribute is ``None``." +msgstr "" +"Si l'argument *stdout* valait :data:`PIPE`, cet attribut est un flux " +"accessible en lecture comme renvoyé par :func:`open`. Lire depuis le flux " +"fournit la sortie du processus fils. Si les arguments *encoding* ou *errors* " +"ont été spécifiés, ou si *universal_newlines* valait ``True``, le flux est " +"textuel, il est autrement binaire. Si l'argument *stdout* ne valait pas :" +"data:`PIPE`, cet attribut est ``None``." + +#: ../Doc/library/subprocess.rst:749 +msgid "" +"If the *stderr* argument was :data:`PIPE`, this attribute is a readable " +"stream object as returned by :func:`open`. Reading from the stream provides " +"error output from the child process. If the *encoding* or *errors* arguments " +"were specified or the *universal_newlines* argument was ``True``, the stream " +"is a text stream, otherwise it is a byte stream. If the *stderr* argument " +"was not :data:`PIPE`, this attribute is ``None``." +msgstr "" +"Si l'argument *stderr* valait :data:`PIPE`, cet attribut est un flux " +"accessible en lecture comme renvoyé par :func:`open`. Lire depuis le flux " +"fournit la sortie d'erreur du processus fils. Si les arguments *encoding* ou " +"*errors* ont été spécifiés, ou si *universal_newlines* valait ``True``, le " +"flux est textuel, il est autrement binaire. Si l'argument *stderr* ne valait " +"pas :data:`PIPE`, cet attribut est ``None``." + +#: ../Doc/library/subprocess.rst:758 +msgid "" +"Use :meth:`~Popen.communicate` rather than :attr:`.stdin.write `, :attr:`.stdout.read ` or :attr:`.stderr.read ` to avoid deadlocks due to any of the other OS pipe buffers filling " +"up and blocking the child process." +msgstr "" +"Utilisez :meth:`~Popen.communicate` plutôt que :attr:`.stdin.write `, :attr:`.stdout.read ` ou :attr:`.stderr.read ` pour empêcher les *deadlocks* dus au remplissage des tampons des " +"tubes de l'OS et bloquant le processus enfant." + +#: ../Doc/library/subprocess.rst:766 +msgid "The process ID of the child process." +msgstr "L'identifiant de processus du processus enfant." + +#: ../Doc/library/subprocess.rst:768 +msgid "" +"Note that if you set the *shell* argument to ``True``, this is the process " +"ID of the spawned shell." +msgstr "" +"Notez que si vous passez l'argument *shell* à ``True``, il s'agit alors de " +"l'identifiant du *shell* instancié." + +#: ../Doc/library/subprocess.rst:774 +msgid "" +"The child return code, set by :meth:`poll` and :meth:`wait` (and indirectly " +"by :meth:`communicate`). A ``None`` value indicates that the process hasn't " +"terminated yet." +msgstr "" +"Le code de retour de l'enfant, attribué par :meth:`poll` et :meth:`wait` (et " +"indirectement par :meth:`communicate`). Une valeur ``None`` indique que le " +"processus ne s'est pas encore terminé." + +#: ../Doc/library/subprocess.rst:783 +msgid "Windows Popen Helpers" +msgstr "Utilitaires *Popen* pour Windows" + +#: ../Doc/library/subprocess.rst:785 +msgid "" +"The :class:`STARTUPINFO` class and following constants are only available on " +"Windows." +msgstr "" +"La classe :class:`STARTUPINFO` et les constantes suivantes sont seulement " +"disponibles sous Windows." + +#: ../Doc/library/subprocess.rst:791 +msgid "" +"Partial support of the Windows `STARTUPINFO `__ structure is used for :class:`Popen` " +"creation. The following attributes can be set by passing them as keyword-" +"only arguments." +msgstr "" +"Une gestion partielle de la structure `STARTUPINFO `__ est utilisée lors de la " +"création d'un objet :class:`Popen`. Les attributs ci-dessous peuvent être " +"passés en tant que paramètres *keyword-only*." + +#: ../Doc/library/subprocess.rst:796 +msgid "Keyword-only argument support was added." +msgstr "Ajout de la gestion des paramètres *keyword-only*." + +#: ../Doc/library/subprocess.rst:801 +msgid "" +"A bit field that determines whether certain :class:`STARTUPINFO` attributes " +"are used when the process creates a window. ::" +msgstr "" +"Un champ de bits déterminant si certains attributs :class:`STARTUPINFO` sont " +"utilisés quand le processus crée une fenêtre ::" + +#: ../Doc/library/subprocess.rst:809 +msgid "" +"If :attr:`dwFlags` specifies :data:`STARTF_USESTDHANDLES`, this attribute is " +"the standard input handle for the process. If :data:`STARTF_USESTDHANDLES` " +"is not specified, the default for standard input is the keyboard buffer." +msgstr "" +"Si :attr:`dwFlags` spécifie :data:`STARTF_USESTDHANDLES`, cet attribut est " +"le descripteur d'entrée standard du processus. Si :data:" +"`STARTF_USESTDHANDLES` n'est pas spécifié, l'entrée standard par défaut est " +"le tampon du clavier." + +#: ../Doc/library/subprocess.rst:816 +msgid "" +"If :attr:`dwFlags` specifies :data:`STARTF_USESTDHANDLES`, this attribute is " +"the standard output handle for the process. Otherwise, this attribute is " +"ignored and the default for standard output is the console window's buffer." +msgstr "" +"Si :attr:`dwFlags` spécifie :data:`STARTF_USESTDHANDLES`, cet attribut est " +"le descripteur de sortie standard du processus. Autrement, l'attribut est " +"ignoré et la sortie standard par défaut est le tampon de la console." + +#: ../Doc/library/subprocess.rst:823 +msgid "" +"If :attr:`dwFlags` specifies :data:`STARTF_USESTDHANDLES`, this attribute is " +"the standard error handle for the process. Otherwise, this attribute is " +"ignored and the default for standard error is the console window's buffer." +msgstr "" +"Si :attr:`dwFlags` spécifie :data:`STARTF_USESTDHANDLES`, cet attribut est " +"le descripteur de sortie d'erreur du processus. Autrement, l'attribut est " +"ignoré et la sortie d'erreur par défaut est le tampon de la console." + +#: ../Doc/library/subprocess.rst:829 +msgid "" +"If :attr:`dwFlags` specifies :data:`STARTF_USESHOWWINDOW`, this attribute " +"can be any of the values that can be specified in the ``nCmdShow`` parameter " +"for the `ShowWindow `__ function, except for ``SW_SHOWDEFAULT``. " +"Otherwise, this attribute is ignored." +msgstr "" +"Si :attr:`dwFlags` spécifie :data:`STARTF_USESHOWWINDOW`, cet attribut peut-" +"être n'importe quel attribut valide pour le paramètre ``nCmdShow`` de la " +"fonction `ShowWindow `__, à l'exception de ``SW_SHOWDEFAULT``. Autrement, " +"cet attribut est ignoré." + +#: ../Doc/library/subprocess.rst:836 +msgid "" +":data:`SW_HIDE` is provided for this attribute. It is used when :class:" +"`Popen` is called with ``shell=True``." +msgstr "" +":data:`SW_HIDE` est fourni pour cet attribut. Il est utilisé quand :class:" +"`Popen` est appelée avec ``shell=True``." + +#: ../Doc/library/subprocess.rst:841 +msgid "" +"A dictionary of additional attributes for process creation as given in " +"``STARTUPINFOEX``, see `UpdateProcThreadAttribute `__." +msgstr "" +"Dictionnaire des attributs supplémentaires pour la création d'un processus " +"comme donnés dans ``STARTUPINFOEX``, lisez `UpdateProcThreadAttribute " +"`__ (ressource en anglais)." + +#: ../Doc/library/subprocess.rst:845 +msgid "Supported attributes:" +msgstr "Attributs gérés :" + +#: ../Doc/library/subprocess.rst:863 +msgid "**handle_list**" +msgstr "**handle_list**" + +#: ../Doc/library/subprocess.rst:848 +msgid "" +"Sequence of handles that will be inherited. *close_fds* must be true if non-" +"empty." +msgstr "" +"Séquence des descripteurs qui hérités du parent. *close_fds* doit être vrai " +"si la séquence n'est pas vide." + +#: ../Doc/library/subprocess.rst:851 +msgid "" +"The handles must be temporarily made inheritable by :func:`os." +"set_handle_inheritable` when passed to the :class:`Popen` constructor, else :" +"class:`OSError` will be raised with Windows error " +"``ERROR_INVALID_PARAMETER`` (87)." +msgstr "" +"Les descripteurs doivent être temporairement héritables par :func:`os." +"set_handle_inheritable` quand ils sont passés au constructeur :class:" +"`Popen`, sinon :class:`OSError` est levée avec l'erreur Windows " +"``ERROR_INVALID_PARAMETER`` (87)." + +#: ../Doc/library/subprocess.rst:858 +msgid "" +"In a multithreaded process, use caution to avoid leaking handles that are " +"marked inheritable when combining this feature with concurrent calls to " +"other process creation functions that inherit all handles such as :func:`os." +"system`. This also applies to standard handle redirection, which " +"temporarily creates inheritable handles." +msgstr "" +"Dans un processus avec plusieurs fils d'exécution, faites très attention à " +"éviter la fuite de descripteurs qui sont marqués comme héritables quand vous " +"combinez ceci avec des appels concurrents vers des fonctions de création " +"d'autres processus qui héritent de tous les descripteurs (telle que :func:" +"`os.system`)." + +#: ../Doc/library/subprocess.rst:868 +msgid "Windows Constants" +msgstr "Constantes Windows" + +#: ../Doc/library/subprocess.rst:870 +msgid "The :mod:`subprocess` module exposes the following constants." +msgstr "Le module :mod:`subprocess` expose les constantes suivantes." + +#: ../Doc/library/subprocess.rst:874 +msgid "" +"The standard input device. Initially, this is the console input buffer, " +"``CONIN$``." +msgstr "" +"Le périphérique d'entrée standard. Initialement, il s'agit du tampon de la " +"console d'entrée, ``CONIN$``." + +#: ../Doc/library/subprocess.rst:879 +msgid "" +"The standard output device. Initially, this is the active console screen " +"buffer, ``CONOUT$``." +msgstr "" +"Le périphérique de sortie standard. Initialement, il s'agit du tampon de " +"l'écran de console actif, ``CONOUT$``." + +#: ../Doc/library/subprocess.rst:884 +msgid "" +"The standard error device. Initially, this is the active console screen " +"buffer, ``CONOUT$``." +msgstr "" +"Le périphérique de sortie d'erreur. Initialement, il s'agit du tampon de " +"l'écran de console actif, ``CONOUT$``." + +#: ../Doc/library/subprocess.rst:889 +msgid "Hides the window. Another window will be activated." +msgstr "Cache la fenêtre. Une autre fenêtre sera activée." + +#: ../Doc/library/subprocess.rst:893 +msgid "" +"Specifies that the :attr:`STARTUPINFO.hStdInput`, :attr:`STARTUPINFO." +"hStdOutput`, and :attr:`STARTUPINFO.hStdError` attributes contain additional " +"information." +msgstr "" +"Spécifie que les attributs :attr:`STARTUPINFO.hStdInput`, :attr:`STARTUPINFO." +"hStdOutput` et :attr:`STARTUPINFO.hStdError` contiennent des informations " +"additionnelles." + +#: ../Doc/library/subprocess.rst:899 +msgid "" +"Specifies that the :attr:`STARTUPINFO.wShowWindow` attribute contains " +"additional information." +msgstr "" +"Spécifie que l'attribut :attr:`STARTUPINFO.wShowWindow` contient des " +"informations additionnelles." + +#: ../Doc/library/subprocess.rst:904 +msgid "" +"The new process has a new console, instead of inheriting its parent's " +"console (the default)." +msgstr "" +"Le nouveau processus instancie une nouvelle console, plutôt que d'hériter de " +"celle de son père (par défaut)." + +#: ../Doc/library/subprocess.rst:909 +msgid "" +"A :class:`Popen` ``creationflags`` parameter to specify that a new process " +"group will be created. This flag is necessary for using :func:`os.kill` on " +"the subprocess." +msgstr "" +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier si un nouveau " +"groupe de processus doit être créé. Cette option est nécessaire pour " +"utiliser :func:`os.kill` sur le sous-processus." + +#: ../Doc/library/subprocess.rst:913 +msgid "This flag is ignored if :data:`CREATE_NEW_CONSOLE` is specified." +msgstr "L'option est ignorée si :data:`CREATE_NEW_CONSOLE` est spécifié." + +#: ../Doc/library/subprocess.rst:917 +msgid "" +"A :class:`Popen` ``creationflags`` parameter to specify that a new process " +"will have an above average priority." +msgstr "" +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " +"aura une priorité au-dessus de la moyenne." + +#: ../Doc/library/subprocess.rst:924 +msgid "" +"A :class:`Popen` ``creationflags`` parameter to specify that a new process " +"will have a below average priority." +msgstr "" +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " +"aura une priorité au-dessous de la moyenne." + +#: ../Doc/library/subprocess.rst:931 +msgid "" +"A :class:`Popen` ``creationflags`` parameter to specify that a new process " +"will have a high priority." +msgstr "" +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " +"aura une priorité haute." + +#: ../Doc/library/subprocess.rst:938 +msgid "" +"A :class:`Popen` ``creationflags`` parameter to specify that a new process " +"will have an idle (lowest) priority." +msgstr "" +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " +"aura la priorité la plus basse (inactif ou *idle*)." + +#: ../Doc/library/subprocess.rst:945 +msgid "" +"A :class:`Popen` ``creationflags`` parameter to specify that a new process " +"will have an normal priority. (default)" +msgstr "" +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " +"aura une priorité normale (le défaut)." + +#: ../Doc/library/subprocess.rst:952 +msgid "" +"A :class:`Popen` ``creationflags`` parameter to specify that a new process " +"will have realtime priority. You should almost never use " +"REALTIME_PRIORITY_CLASS, because this interrupts system threads that manage " +"mouse input, keyboard input, and background disk flushing. This class can be " +"appropriate for applications that \"talk\" directly to hardware or that " +"perform brief tasks that should have limited interruptions." +msgstr "" +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu’un nouveau " +"processus aura une priorité en temps réel. Vous ne devriez presque JAMAIS " +"utiliser REALTIME_PRIORITY_CLASS, car cela interrompt les fils d’exécution " +"système qui gèrent les entrées de la souris, du clavier et `flush` le cache " +"de disque en arrière-plan. Cette classe peut convenir aux applications qui " +"« parlent » directement au matériel ou qui effectuent de brèves tâches " +"nécessitant des interruptions limitées." + +#: ../Doc/library/subprocess.rst:963 +msgid "" +"A :class:`Popen` ``creationflags`` parameter to specify that a new process " +"will not create a window." +msgstr "" +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " +"ne créera pas une nouvelle fenêtre." + +#: ../Doc/library/subprocess.rst:970 +msgid "" +"A :class:`Popen` ``creationflags`` parameter to specify that a new process " +"will not inherit its parent's console. This value cannot be used with " +"CREATE_NEW_CONSOLE." +msgstr "" +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un nouveau " +"processus n'héritera pas de la console du processus parent. Cette valeur ne " +"peut pas être utilisée avec CREATE_NEW_CONSOLE." + +#: ../Doc/library/subprocess.rst:978 +msgid "" +"A :class:`Popen` ``creationflags`` parameter to specify that a new process " +"does not inherit the error mode of the calling process. Instead, the new " +"process gets the default error mode. This feature is particularly useful for " +"multithreaded shell applications that run with hard errors disabled." +msgstr "" +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un nouveau " +"processus n'hérite pas du mode de gestion des erreurs du processus appelant. " +"À la place, le nouveau processus acquiert le mode d'erreur par défaut. Cette " +"fonctionnalité est particulièrement utile pour les applications *shell* avec " +"de multiples fils d'exécution qui s'exécutent avec les erreurs irréversibles " +"désactivées." + +#: ../Doc/library/subprocess.rst:988 +msgid "" +"A :class:`Popen` ``creationflags`` parameter to specify that a new process " +"is not associated with the job." +msgstr "" +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " +"n'est pas associé au *job*." + +#: ../Doc/library/subprocess.rst:996 +msgid "Older high-level API" +msgstr "Ancienne interface (*API*) haut-niveau" + +#: ../Doc/library/subprocess.rst:998 +msgid "" +"Prior to Python 3.5, these three functions comprised the high level API to " +"subprocess. You can now use :func:`run` in many cases, but lots of existing " +"code calls these functions." +msgstr "" +"Avant Python 3.5, ces trois fonctions représentaient l'API haut-niveau de " +"*subprocess*. Vous pouvez maintenant utiliser :func:`run` dans de nombreux " +"cas, mais beaucoup de codes existant font appel à ces trois fonctions." + +#: ../Doc/library/subprocess.rst:1004 +msgid "" +"Run the command described by *args*. Wait for command to complete, then " +"return the :attr:`~Popen.returncode` attribute." +msgstr "" +"Lance la commande décrite par *args*, attend qu'elle se termine, et renvoie " +"son attribut :attr:`~Popen.returncode`." + +#: ../Doc/library/subprocess.rst:1007 ../Doc/library/subprocess.rst:1035 +msgid "" +"Code needing to capture stdout or stderr should use :func:`run` instead:" +msgstr "" +"Le code qui a besoin de capturer *stdout* ou *stderr* doit plutôt utiliser :" +"func:`run` :" + +#: ../Doc/library/subprocess.rst:1009 +msgid "run(...).returncode" +msgstr "``run(...).returncode``" + +#: ../Doc/library/subprocess.rst:1011 ../Doc/library/subprocess.rst:1039 +msgid "To suppress stdout or stderr, supply a value of :data:`DEVNULL`." +msgstr "Pour supprimer *stdout* ou *stderr*, passez la valeur :data:`DEVNULL`." + +#: ../Doc/library/subprocess.rst:1013 ../Doc/library/subprocess.rst:1041 +msgid "" +"The arguments shown above are merely some common ones. The full function " +"signature is the same as that of the :class:`Popen` constructor - this " +"function passes all supplied arguments other than *timeout* directly through " +"to that interface." +msgstr "" +"Les arguments montrés plus haut sont sûrement les plus communs. La signature " +"complète de la fonction est en grande partie la même que le constructeur de :" +"class:`Popen` : cette fonction passe tous les arguments fournis autre que " +"*timeout* directement à travers cette interface." + +#: ../Doc/library/subprocess.rst:1020 ../Doc/library/subprocess.rst:1048 +msgid "" +"Do not use ``stdout=PIPE`` or ``stderr=PIPE`` with this function. The child " +"process will block if it generates enough output to a pipe to fill up the OS " +"pipe buffer as the pipes are not being read from." +msgstr "" +"N'utilisez pas ``stdout=PIPE`` ou ``stderr=PIPE`` avec cette fonction. Le " +"processus enfant bloquera s'il génère assez de données pour remplir le " +"tampon du tube de l'OS, puisque les tubes ne seront jamais lus." + +#: ../Doc/library/subprocess.rst:1030 +msgid "" +"Run command with arguments. Wait for command to complete. If the return " +"code was zero then return, otherwise raise :exc:`CalledProcessError`. The :" +"exc:`CalledProcessError` object will have the return code in the :attr:" +"`~CalledProcessError.returncode` attribute." +msgstr "" +"Lance la commande avec les arguments et attend qu'elle se termine. Se " +"termine normalement si le code de retour est zéro, et lève une :exc:" +"`CalledProcessError` autrement. L'objet :exc:`CalledProcessError` contiendra " +"le code de retour dans son attribut :attr:`~CalledProcessError.returncode`." + +#: ../Doc/library/subprocess.rst:1037 +msgid "run(..., check=True)" +msgstr "``run(..., check=True)``" + +#: ../Doc/library/subprocess.rst:1061 +msgid "Run command with arguments and return its output." +msgstr "Lance la commande avec les arguments et renvoie sa sortie." + +#: ../Doc/library/subprocess.rst:1063 +msgid "" +"If the return code was non-zero it raises a :exc:`CalledProcessError`. The :" +"exc:`CalledProcessError` object will have the return code in the :attr:" +"`~CalledProcessError.returncode` attribute and any output in the :attr:" +"`~CalledProcessError.output` attribute." +msgstr "" +"Si le code de retour est non-nul, la fonction lève une :exc:" +"`CalledProcessError`. L'objet :exc:`CalledProcessError` contiendra le code " +"de retour dans son attribut :attr:`~CalledProcessError.returncode`, et la " +"sortie du programme dans son attribut :attr:`~CalledProcessError.output`." + +#: ../Doc/library/subprocess.rst:1068 +msgid "This is equivalent to::" +msgstr "C’est équivalent à ::" + +#: ../Doc/library/subprocess.rst:1072 +msgid "" +"The arguments shown above are merely some common ones. The full function " +"signature is largely the same as that of :func:`run` - most arguments are " +"passed directly through to that interface. However, explicitly passing " +"``input=None`` to inherit the parent's standard input file handle is not " +"supported." +msgstr "" +"Les arguments montrés plus haut sont sûrement les plus communs. La signature " +"complète de la fonction est en grande partie la même que :func:`run` : la " +"plupart des arguments sont passés directement par cette interface. " +"Cependant, passer explicitement ``input=None`` pour hériter du descripteur " +"d'entrée standard du parent n'est pas géré." + +#: ../Doc/library/subprocess.rst:1078 +msgid "" +"By default, this function will return the data as encoded bytes. The actual " +"encoding of the output data may depend on the command being invoked, so the " +"decoding to text will often need to be handled at the application level." +msgstr "" +"Par défaut, cette fonction renvoie les données encodées sous forme de " +"*bytes*. Le réel encodage des données de sortie peut dépendre de la commande " +"invoquée, donc le décodage du texte devra souvent être géré au niveau de " +"l'application." + +#: ../Doc/library/subprocess.rst:1082 +msgid "" +"This behaviour may be overridden by setting *text*, *encoding*, *errors*, or " +"*universal_newlines* to ``True`` as described in :ref:`frequently-used-" +"arguments` and :func:`run`." +msgstr "" +"Ce comportement peut être redéfini en mettant *text*, *encoding*, *errors*, " +"ou *universal_newlines* à ``True`` comme décrit dans :ref:`frequently-used-" +"arguments` et :func:`run`." + +#: ../Doc/library/subprocess.rst:1086 +msgid "" +"To also capture standard error in the result, use ``stderr=subprocess." +"STDOUT``::" +msgstr "" +"Pour capturer aussi la sortie d'erreur dans le résultat, utilisez " +"``stderr=subprocess.STDOUT`` ::" + +#: ../Doc/library/subprocess.rst:1100 +msgid "Support for the *input* keyword argument was added." +msgstr "Ajout de la gestion de l'argument nommé *input*." + +#: ../Doc/library/subprocess.rst:1103 +msgid "*encoding* and *errors* were added. See :func:`run` for details." +msgstr "" +"Ajout d'*encoding* et *errors*. Consultez :func:`run` pour plus " +"d'informations." + +#: ../Doc/library/subprocess.rst:1113 +msgid "Replacing Older Functions with the :mod:`subprocess` Module" +msgstr "Remplacer les fonctions plus anciennes par le module :mod:`subprocess`" + +#: ../Doc/library/subprocess.rst:1115 +msgid "" +"In this section, \"a becomes b\" means that b can be used as a replacement " +"for a." +msgstr "" +"Dans cette section, « a devient b » signifie que b peut être utilisée en " +"remplacement de a." + +#: ../Doc/library/subprocess.rst:1119 +msgid "" +"All \"a\" functions in this section fail (more or less) silently if the " +"executed program cannot be found; the \"b\" replacements raise :exc:" +"`OSError` instead." +msgstr "" +"Toutes les fonctions « a » dans cette section échouent (plus ou moins) " +"silencieusement si le programme à exécuter ne peut être trouvé ; les " +"fonctions « b » de remplacement lèvent à la place une :exc:`OSError`." + +#: ../Doc/library/subprocess.rst:1123 +msgid "" +"In addition, the replacements using :func:`check_output` will fail with a :" +"exc:`CalledProcessError` if the requested operation produces a non-zero " +"return code. The output is still available as the :attr:`~CalledProcessError." +"output` attribute of the raised exception." +msgstr "" +"De plus, les remplacements utilisant :func:`check_output` échoueront avec " +"une :exc:`CalledProcessError` si l'opération requise produit un code de " +"retour non-nul. La sortie est toujours disponible par l'attribut :attr:" +"`~CalledProcessError.output` de l'exception levée." + +#: ../Doc/library/subprocess.rst:1128 +msgid "" +"In the following examples, we assume that the relevant functions have " +"already been imported from the :mod:`subprocess` module." +msgstr "" +"Dans les exemples suivants, nous supposons que les fonctions utilisées ont " +"déjà été importées depuis le module :mod:`subprocess`." + +#: ../Doc/library/subprocess.rst:1133 +msgid "Replacing /bin/sh shell backquote" +msgstr "Remplacement des *backquotes* des *shells /bin/sh*" + +#: ../Doc/library/subprocess.rst:1139 ../Doc/library/subprocess.rst:1150 +#: ../Doc/library/subprocess.rst:1167 +msgid "becomes::" +msgstr "devient ::" + +#: ../Doc/library/subprocess.rst:1144 +msgid "Replacing shell pipeline" +msgstr "Remplacer les *pipes* du *shell*" + +#: ../Doc/library/subprocess.rst:1157 +msgid "" +"The p1.stdout.close() call after starting the p2 is important in order for " +"p1 to receive a SIGPIPE if p2 exits before p1." +msgstr "" +"L'appel à *p1.stdout.close()* après le démarrage de *p2* est important pour " +"que *p1* reçoive un *SIGPIPE* si *p2* se termine avant lui." + +#: ../Doc/library/subprocess.rst:1160 +msgid "" +"Alternatively, for trusted input, the shell's own pipeline support may still " +"be used directly:" +msgstr "" +"Alternativement, pour des entrées fiables, la gestion des tubes du *shell* " +"peut directement être utilisé :" + +#: ../Doc/library/subprocess.rst:1173 +msgid "Replacing :func:`os.system`" +msgstr "Remplacer :func:`os.system`" + +#: ../Doc/library/subprocess.rst:1181 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/library/subprocess.rst:1183 +msgid "Calling the program through the shell is usually not required." +msgstr "" +"Appeler le programme à travers un *shell* n'est habituellement pas requis." + +#: ../Doc/library/subprocess.rst:1185 +msgid "A more realistic example would look like this::" +msgstr "Un exemple plus réaliste ressemblerait à cela ::" + +#: ../Doc/library/subprocess.rst:1198 +msgid "Replacing the :func:`os.spawn ` family" +msgstr "Remplacer les fonctions de la famille :func:`os.spawn `" + +#: ../Doc/library/subprocess.rst:1200 +msgid "P_NOWAIT example::" +msgstr "Exemple avec *P_NOWAIT* ::" + +#: ../Doc/library/subprocess.rst:1206 +msgid "P_WAIT example::" +msgstr "Exemple avec *P_WAIT* ::" + +#: ../Doc/library/subprocess.rst:1212 +msgid "Vector example::" +msgstr "Exemple avec un tableau ::" + +#: ../Doc/library/subprocess.rst:1218 +msgid "Environment example::" +msgstr "Exemple en passant un environnement ::" + +#: ../Doc/library/subprocess.rst:1227 +msgid "Replacing :func:`os.popen`, :func:`os.popen2`, :func:`os.popen3`" +msgstr "Remplacer :func:`os.popen`, :func:`os.popen2`, :func:`os.popen3`" + +#: ../Doc/library/subprocess.rst:1257 +msgid "Return code handling translates as follows::" +msgstr "La gestion du code de retour se traduit comme suit ::" + +#: ../Doc/library/subprocess.rst:1273 +msgid "Replacing functions from the :mod:`popen2` module" +msgstr "Remplacer les fonctions du module :mod:`popen2`" + +#: ../Doc/library/subprocess.rst:1277 +msgid "" +"If the cmd argument to popen2 functions is a string, the command is executed " +"through /bin/sh. If it is a list, the command is directly executed." +msgstr "" +"Si l'argument *cmd* des fonctions de *popen2* est une chaîne de caractères, " +"la commande est exécutée à travers */bin/sh*. Si c'est une liste, la " +"commande est directement exécutée." + +#: ../Doc/library/subprocess.rst:1296 +msgid "" +":class:`popen2.Popen3` and :class:`popen2.Popen4` basically work as :class:" +"`subprocess.Popen`, except that:" +msgstr "" +":class:`popen2.Popen3` et :class:`popen2.Popen4` fonctionnent basiquement " +"comme :class:`subprocess.Popen`, excepté que :" + +#: ../Doc/library/subprocess.rst:1299 +msgid ":class:`Popen` raises an exception if the execution fails." +msgstr ":class:`Popen` lève une exception si l'exécution échoue." + +#: ../Doc/library/subprocess.rst:1301 +msgid "The *capturestderr* argument is replaced with the *stderr* argument." +msgstr "L'argument *capturestderr* est remplacé par *stderr*." + +#: ../Doc/library/subprocess.rst:1303 +msgid "``stdin=PIPE`` and ``stdout=PIPE`` must be specified." +msgstr "``stdin=PIPE`` et ``stdout=PIPE`` doivent être spécifiés." + +#: ../Doc/library/subprocess.rst:1305 +msgid "" +"popen2 closes all file descriptors by default, but you have to specify " +"``close_fds=True`` with :class:`Popen` to guarantee this behavior on all " +"platforms or past Python versions." +msgstr "" +"*popen2* ferme tous les descripteurs de fichiers par défaut, mais vous devez " +"spécifier ``close_fds=True`` avec :class:`Popen` pour garantir ce " +"comportement sur toutes les plateformes ou les anciennes versions de Python." + +#: ../Doc/library/subprocess.rst:1311 +msgid "Legacy Shell Invocation Functions" +msgstr "Remplacement des fonctions originales d'invocation du *shell*" + +#: ../Doc/library/subprocess.rst:1313 +msgid "" +"This module also provides the following legacy functions from the 2.x " +"``commands`` module. These operations implicitly invoke the system shell and " +"none of the guarantees described above regarding security and exception " +"handling consistency are valid for these functions." +msgstr "" +"Ce module fournit aussi les fonctions suivantes héritées du module " +"``commands`` de Python 2.x. Ces opérations invoquent implicitement le " +"*shell* du système et n'apportent aucune des garanties décrites ci-dessus " +"par rapport à la sécurité ou la cohérence de la gestion des exceptions." + +#: ../Doc/library/subprocess.rst:1320 +msgid "Return ``(exitcode, output)`` of executing *cmd* in a shell." +msgstr "" +"Renvoie les valeurs ``(exitcode, output)`` de l'exécution de *cmd* dans un " +"*shell*." + +#: ../Doc/library/subprocess.rst:1322 +msgid "" +"Execute the string *cmd* in a shell with :meth:`Popen.check_output` and " +"return a 2-tuple ``(exitcode, output)``. The locale encoding is used; see " +"the notes on :ref:`frequently-used-arguments` for more details." +msgstr "" +"Exécute la chaîne *cmd* dans un *shell* avec :meth:`Popen.check_output` et " +"renvoie un *tuple* de 2 éléments ``(exitcode, output)``. L'encodage local " +"est utilisé, voir les notes de la section :ref:`frequently-used-arguments` " +"pour plus de détails." + +#: ../Doc/library/subprocess.rst:1326 +msgid "" +"A trailing newline is stripped from the output. The exit code for the " +"command can be interpreted as the return code of subprocess. Example::" +msgstr "" +"Si la sortie se termine par un caractère de fin de ligne, ce dernier est " +"supprimé. Le code de statut de la commande peut être interprété comme le " +"code de retour de *subprocess*. Par exemple ::" + +#: ../Doc/library/subprocess.rst:1340 ../Doc/library/subprocess.rst:1360 +msgid ":ref:`Availability `: POSIX & Windows." +msgstr ":ref:`Disponibilité ` : POSIX et Windows." + +#: ../Doc/library/subprocess.rst:1341 +msgid "Windows support was added." +msgstr "Ajout de la gestion de Windows." + +#: ../Doc/library/subprocess.rst:1344 +msgid "" +"The function now returns (exitcode, output) instead of (status, output) as " +"it did in Python 3.3.3 and earlier. exitcode has the same value as :attr:" +"`~Popen.returncode`." +msgstr "" +"La fonction renvoie maintenant ``(exitcode, output)`` plutôt que ``(status, " +"output)`` comme dans les versions de Python 3.3.3 ou antérieures. " +"*exitcode* vaut la même valeur que :attr:`~Popen.returncode`." + +#: ../Doc/library/subprocess.rst:1351 +msgid "Return output (stdout and stderr) of executing *cmd* in a shell." +msgstr "" +"Renvoie la sortie (standard et d'erreur) de l'exécution de *cmd* dans un " +"*shell*." + +#: ../Doc/library/subprocess.rst:1353 +msgid "" +"Like :func:`getstatusoutput`, except the exit code is ignored and the return " +"value is a string containing the command's output. Example::" +msgstr "" +"Comme :func:`getstatusoutput`, à l'exception que le code de statut est " +"ignoré et que la valeur de retour est une chaîne contenant la sortie de la " +"commande. Exemple ::" + +#: ../Doc/library/subprocess.rst:1361 +msgid "Windows support added" +msgstr "Ajout de la gestion de Windows" + +#: ../Doc/library/subprocess.rst:1366 +msgid "Notes" +msgstr "Notes" + +#: ../Doc/library/subprocess.rst:1371 +msgid "Converting an argument sequence to a string on Windows" +msgstr "" +"Convertir une séquence d'arguments vers une chaîne de caractères sous Windows" + +#: ../Doc/library/subprocess.rst:1373 +msgid "" +"On Windows, an *args* sequence is converted to a string that can be parsed " +"using the following rules (which correspond to the rules used by the MS C " +"runtime):" +msgstr "" +"Sous Windows, une séquence *args* est convertie vers une chaîne qui peut " +"être analysée avec les règles suivantes (qui correspondent aux règles " +"utilisées par l'environnement *MS C*) :" + +#: ../Doc/library/subprocess.rst:1377 +msgid "" +"Arguments are delimited by white space, which is either a space or a tab." +msgstr "" +"Les arguments sont délimités par des espacements, qui peuvent être des " +"espaces ou des tabulations." + +#: ../Doc/library/subprocess.rst:1380 +msgid "" +"A string surrounded by double quotation marks is interpreted as a single " +"argument, regardless of white space contained within. A quoted string can " +"be embedded in an argument." +msgstr "" +"Une chaîne entourée de double guillemets est interprétée comme un argument " +"seul, qu'elle contienne ou non des espacements. Une chaîne entre guillemets " +"peut être intégrée dans un argument." + +#: ../Doc/library/subprocess.rst:1385 +msgid "" +"A double quotation mark preceded by a backslash is interpreted as a literal " +"double quotation mark." +msgstr "" +"Un guillemet double précédé d'un *backslash* est interprété comme un " +"guillemet double littéral." + +#: ../Doc/library/subprocess.rst:1388 +msgid "" +"Backslashes are interpreted literally, unless they immediately precede a " +"double quotation mark." +msgstr "" +"Les *backslashs* sont interprétés littéralement, à moins qu'ils précèdent " +"immédiatement un guillemet double." + +#: ../Doc/library/subprocess.rst:1391 +msgid "" +"If backslashes immediately precede a double quotation mark, every pair of " +"backslashes is interpreted as a literal backslash. If the number of " +"backslashes is odd, the last backslash escapes the next double quotation " +"mark as described in rule 3." +msgstr "" +"Si des *backslashs* précèdent directement un guillemet double, toute paire " +"de *backslashs* est interprétée comme un *backslash* littéral. Si le nombre " +"de *backslashs* est impair, le dernier *backslash* échappe le prochain " +"guillemet double comme décrit en règle 3." + +#: ../Doc/library/subprocess.rst:1400 +msgid ":mod:`shlex`" +msgstr ":mod:`shlex`" + +#: ../Doc/library/subprocess.rst:1401 +msgid "Module which provides function to parse and escape command lines." +msgstr "" +"Module qui fournit des fonctions pour analyser et échapper les lignes de " +"commandes." + +#~ msgid "(except that the *input* and *check* parameters are not supported)" +#~ msgstr "(excepté que les paramètres *input* et *check* ne sont pas gérés)" + +#~ msgid "(except that the *input* parameter is not supported)" +#~ msgstr "(excepté que le paramètre *input* n'est pas géré)" + +#~ msgid "" +#~ "Exceptions raised in the child process, before the new program has " +#~ "started to execute, will be re-raised in the parent. Additionally, the " +#~ "exception object will have one extra attribute called :attr:" +#~ "`child_traceback`, which is a string containing traceback information " +#~ "from the child's point of view." +#~ msgstr "" +#~ "Les exceptions levées dans le processus fils, avant que le nouveau " +#~ "programme n'ait commencé son exécution, seront relayées dans le parent. " +#~ "Additionnellement, l'objet de l'exception aura un attribut supplémentaire " +#~ "appelé :attr:`child_traceback`, une chaîne de caractères contenant la " +#~ "trace de l'exception du point de vue du fils." + +#~ msgid "" +#~ "This does not capture stdout or stderr by default. To do so, pass :data:" +#~ "`PIPE` for the *stdout* and/or *stderr* arguments." +#~ msgstr "" +#~ "Les sorties standard (*stdout*) et d'erreur (*stderr*) ne sont pas " +#~ "capturées par défaut. Pour les capturer, utilisez :data:`PIPE` comme " +#~ "valeur des arguments *stdout* et/ou *stderr*." + +#~ msgid "" +#~ "If *close_fds* is true, all file descriptors except :const:`0`, :const:" +#~ "`1` and :const:`2` will be closed before the child process is executed. " +#~ "(POSIX only). The default varies by platform: Always true on POSIX. On " +#~ "Windows it is true when *stdin*/*stdout*/*stderr* are :const:`None`, " +#~ "false otherwise. On Windows, if *close_fds* is true then no handles will " +#~ "be inherited by the child process. Note that on Windows, you cannot set " +#~ "*close_fds* to true and also redirect the standard handles by setting " +#~ "*stdin*, *stdout* or *stderr*." +#~ msgstr "" +#~ "Si *close_fds* est vrai, tous les descripteurs de fichiers à l'exception " +#~ "de :const:`0`, :const:`1` et :const:`2` seront fermés avant que le " +#~ "processus fils ne soit exécuté. (POSIX seulement). La valeur par défaut " +#~ "varie selon les plateformes : il est toujours vrai sur les systèmes " +#~ "POSIX. Sous Windows, il est vrai quand *stdin*/*stdout*/*stderr* sont :" +#~ "const:`None`, faux autrement. Sous Windows, si *close_fds* est vrai, " +#~ "aucun gestionnaire ne sera hérité par le processus fils. Notez que sous " +#~ "Windows, vous ne pouvez pas mettre *close_fds* à *true* et en même temps " +#~ "rediriger les entrées/sorties standards avec les paramètres *stdin*/" +#~ "*stdout*/*stderr*." + +#~ msgid "" +#~ "Do not use the *endtime* parameter. It is was unintentionally exposed in " +#~ "3.3 but was left undocumented as it was intended to be private for " +#~ "internal use. Use *timeout* instead." +#~ msgstr "" +#~ "N'utilisez pas le paramètre *endtime*. Il a été par mégarde exposé dans " +#~ "la version 3.3 mais laissé non-documenté, et était destiné à rester privé " +#~ "pour un usage interne. Utilisez plutôt *timeout*." diff --git a/library/sunau.po b/library/sunau.po new file mode 100644 index 000000000..b41726f2c --- /dev/null +++ b/library/sunau.po @@ -0,0 +1,366 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/sunau.rst:2 +msgid ":mod:`sunau` --- Read and write Sun AU files" +msgstr "" + +#: ../Doc/library/sunau.rst:9 +msgid "**Source code:** :source:`Lib/sunau.py`" +msgstr "**Code source :** :source:`Lib/sunau.py`" + +#: ../Doc/library/sunau.rst:13 +msgid "" +"The :mod:`sunau` module provides a convenient interface to the Sun AU sound " +"format. Note that this module is interface-compatible with the modules :mod:" +"`aifc` and :mod:`wave`." +msgstr "" + +#: ../Doc/library/sunau.rst:17 +msgid "" +"An audio file consists of a header followed by the data. The fields of the " +"header are:" +msgstr "" + +#: ../Doc/library/sunau.rst:21 +msgid "Field" +msgstr "Champ" + +#: ../Doc/library/sunau.rst:21 +msgid "Contents" +msgstr "Sommaire" + +#: ../Doc/library/sunau.rst:23 +msgid "magic word" +msgstr "" + +#: ../Doc/library/sunau.rst:23 +msgid "The four bytes ``.snd``." +msgstr "" + +#: ../Doc/library/sunau.rst:25 +msgid "header size" +msgstr "" + +#: ../Doc/library/sunau.rst:25 +msgid "Size of the header, including info, in bytes." +msgstr "" + +#: ../Doc/library/sunau.rst:27 +msgid "data size" +msgstr "" + +#: ../Doc/library/sunau.rst:27 +msgid "Physical size of the data, in bytes." +msgstr "" + +#: ../Doc/library/sunau.rst:29 +msgid "encoding" +msgstr "" + +#: ../Doc/library/sunau.rst:29 +msgid "Indicates how the audio samples are encoded." +msgstr "" + +#: ../Doc/library/sunau.rst:31 +msgid "sample rate" +msgstr "" + +#: ../Doc/library/sunau.rst:31 +msgid "The sampling rate." +msgstr "" + +#: ../Doc/library/sunau.rst:33 +msgid "# of channels" +msgstr "" + +#: ../Doc/library/sunau.rst:33 +msgid "The number of channels in the samples." +msgstr "" + +#: ../Doc/library/sunau.rst:35 +msgid "info" +msgstr "" + +#: ../Doc/library/sunau.rst:35 +msgid "" +"ASCII string giving a description of the audio file (padded with null bytes)." +msgstr "" + +#: ../Doc/library/sunau.rst:39 +msgid "" +"Apart from the info field, all header fields are 4 bytes in size. They are " +"all 32-bit unsigned integers encoded in big-endian byte order." +msgstr "" + +#: ../Doc/library/sunau.rst:42 +msgid "The :mod:`sunau` module defines the following functions:" +msgstr "" + +#: ../Doc/library/sunau.rst:47 +msgid "" +"If *file* is a string, open the file by that name, otherwise treat it as a " +"seekable file-like object. *mode* can be any of" +msgstr "" + +#: ../Doc/library/sunau.rst:51 +msgid "``'r'``" +msgstr "``'r'``" + +#: ../Doc/library/sunau.rst:51 +msgid "Read only mode." +msgstr "Mode lecture seule." + +#: ../Doc/library/sunau.rst:54 +msgid "``'w'``" +msgstr "``'w'``" + +#: ../Doc/library/sunau.rst:54 +msgid "Write only mode." +msgstr "Mode écriture seule." + +#: ../Doc/library/sunau.rst:56 +msgid "Note that it does not allow read/write files." +msgstr "" + +#: ../Doc/library/sunau.rst:58 +msgid "" +"A *mode* of ``'r'`` returns an :class:`AU_read` object, while a *mode* of " +"``'w'`` or ``'wb'`` returns an :class:`AU_write` object." +msgstr "" + +#: ../Doc/library/sunau.rst:64 +msgid "A synonym for :func:`.open`, maintained for backwards compatibility." +msgstr "Un synonyme de :func:`.open`, maintenu pour la rétrocompatibilité." + +#: ../Doc/library/sunau.rst:69 +msgid "The :mod:`sunau` module defines the following exception:" +msgstr "" + +#: ../Doc/library/sunau.rst:73 +msgid "" +"An error raised when something is impossible because of Sun AU specs or " +"implementation deficiency." +msgstr "" + +#: ../Doc/library/sunau.rst:77 +msgid "The :mod:`sunau` module defines the following data items:" +msgstr "" + +#: ../Doc/library/sunau.rst:81 +msgid "" +"An integer every valid Sun AU file begins with, stored in big-endian form. " +"This is the string ``.snd`` interpreted as an integer." +msgstr "" + +#: ../Doc/library/sunau.rst:92 +msgid "" +"Values of the encoding field from the AU header which are supported by this " +"module." +msgstr "" + +#: ../Doc/library/sunau.rst:103 +msgid "" +"Additional known values of the encoding field from the AU header, but which " +"are not supported by this module." +msgstr "" + +#: ../Doc/library/sunau.rst:110 +msgid "AU_read Objects" +msgstr "" + +#: ../Doc/library/sunau.rst:112 +msgid "" +"AU_read objects, as returned by :func:`.open` above, have the following " +"methods:" +msgstr "" + +#: ../Doc/library/sunau.rst:117 +msgid "" +"Close the stream, and make the instance unusable. (This is called " +"automatically on deletion.)" +msgstr "" + +#: ../Doc/library/sunau.rst:123 +msgid "Returns number of audio channels (1 for mono, 2 for stereo)." +msgstr "" + +#: ../Doc/library/sunau.rst:128 +msgid "Returns sample width in bytes." +msgstr "Renvoie la largeur de l'échantillon en octets." + +#: ../Doc/library/sunau.rst:133 +msgid "Returns sampling frequency." +msgstr "Renvoie la fréquence d'échantillonnage." + +#: ../Doc/library/sunau.rst:138 +msgid "Returns number of audio frames." +msgstr "Renvoie le nombre de trames audio." + +#: ../Doc/library/sunau.rst:143 +msgid "" +"Returns compression type. Supported compression types are ``'ULAW'``, " +"``'ALAW'`` and ``'NONE'``." +msgstr "" + +#: ../Doc/library/sunau.rst:149 +msgid "" +"Human-readable version of :meth:`getcomptype`. The supported types have the " +"respective names ``'CCITT G.711 u-law'``, ``'CCITT G.711 A-law'`` and ``'not " +"compressed'``." +msgstr "" + +#: ../Doc/library/sunau.rst:156 +msgid "" +"Returns a :func:`~collections.namedtuple` ``(nchannels, sampwidth, " +"framerate, nframes, comptype, compname)``, equivalent to output of the :meth:" +"`get\\*` methods." +msgstr "" +"Renvoie une :func:`~collections.namedtuple` ``(nchannels, sampwidth, " +"framerate, nframes, comptype, compname)``, équivalent à la sortie des " +"méthodes :meth:`get\\*`." + +#: ../Doc/library/sunau.rst:163 +msgid "" +"Reads and returns at most *n* frames of audio, as a :class:`bytes` object. " +"The data will be returned in linear format. If the original data is in u-" +"LAW format, it will be converted." +msgstr "" + +#: ../Doc/library/sunau.rst:170 +msgid "Rewind the file pointer to the beginning of the audio stream." +msgstr "Remet le pointeur de fichier au début du flux audio." + +#: ../Doc/library/sunau.rst:172 +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:178 +msgid "" +"Set the file pointer to the specified position. Only values returned from :" +"meth:`tell` should be used for *pos*." +msgstr "" + +#: ../Doc/library/sunau.rst:184 +msgid "" +"Return current file pointer position. Note that the returned value has " +"nothing to do with the actual position in the file." +msgstr "" + +#: ../Doc/library/sunau.rst:187 +msgid "" +"The following two functions are defined for compatibility with the :mod:" +"`aifc`, and don't do anything interesting." +msgstr "" + +#: ../Doc/library/sunau.rst:193 +msgid "Returns ``None``." +msgstr "Renvoie ``None``." + +#: ../Doc/library/sunau.rst:198 +msgid "Raise an error." +msgstr "Lève une erreur." + +#: ../Doc/library/sunau.rst:204 +msgid "AU_write Objects" +msgstr "" + +#: ../Doc/library/sunau.rst:206 +msgid "" +"AU_write objects, as returned by :func:`.open` above, have the following " +"methods:" +msgstr "" + +#: ../Doc/library/sunau.rst:211 +msgid "Set the number of channels." +msgstr "Définit le nombre de canaux." + +#: ../Doc/library/sunau.rst:216 +msgid "Set the sample width (in bytes.)" +msgstr "" + +#: ../Doc/library/sunau.rst:218 +msgid "Added support for 24-bit samples." +msgstr "" + +#: ../Doc/library/sunau.rst:224 +msgid "Set the frame rate." +msgstr "" + +#: ../Doc/library/sunau.rst:229 +msgid "" +"Set the number of frames. This can be later changed, when and if more " +"frames are written." +msgstr "" + +#: ../Doc/library/sunau.rst:235 +msgid "" +"Set the compression type and description. Only ``'NONE'`` and ``'ULAW'`` are " +"supported on output." +msgstr "" + +#: ../Doc/library/sunau.rst:241 +msgid "" +"The *tuple* should be ``(nchannels, sampwidth, framerate, nframes, comptype, " +"compname)``, with values valid for the :meth:`set\\*` methods. Set all " +"parameters." +msgstr "" + +#: ../Doc/library/sunau.rst:248 +msgid "" +"Return current position in the file, with the same disclaimer for the :meth:" +"`AU_read.tell` and :meth:`AU_read.setpos` methods." +msgstr "" + +#: ../Doc/library/sunau.rst:254 +msgid "Write audio frames, without correcting *nframes*." +msgstr "Écrit les trames audio sans corriger *nframes*." + +#: ../Doc/library/sunau.rst:256 ../Doc/library/sunau.rst:264 +msgid "Any :term:`bytes-like object` is now accepted." +msgstr "N'importe quel :term:`bytes-like object` est maintenant accepté." + +#: ../Doc/library/sunau.rst:262 +msgid "Write audio frames and make sure *nframes* is correct." +msgstr "" + +#: ../Doc/library/sunau.rst:270 +msgid "Make sure *nframes* is correct, and close the file." +msgstr "" + +#: ../Doc/library/sunau.rst:272 +msgid "This method is called upon deletion." +msgstr "" + +#: ../Doc/library/sunau.rst:274 +msgid "" +"Note that it is invalid to set any parameters after calling :meth:" +"`writeframes` or :meth:`writeframesraw`." +msgstr "" + +#, fuzzy +#~ msgid "'r'" +#~ msgstr "``'r'``" + +#, fuzzy +#~ msgid "'w'" +#~ msgstr "``'w'``" diff --git a/library/superseded.po b/library/superseded.po new file mode 100644 index 000000000..4bd71a2b7 --- /dev/null +++ b/library/superseded.po @@ -0,0 +1,27 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-10-18 09:27+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/superseded.rst:5 +msgid "Superseded Modules" +msgstr "Modules remplacés" + +#: ../Doc/library/superseded.rst:7 +msgid "" +"The modules described in this chapter are deprecated and only kept for " +"backwards compatibility. They have been superseded by other modules." +msgstr "" +"Les modules documentés ici sont obsolètes et ne sont gardés que pour la " +"rétro-compatibilité. Ils ont été remplacés par d'autres modules." diff --git a/library/symbol.po b/library/symbol.po new file mode 100644 index 000000000..eb6ccc5b7 --- /dev/null +++ b/library/symbol.po @@ -0,0 +1,53 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-29 18:24+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/symbol.rst:2 +msgid ":mod:`symbol` --- Constants used with Python parse trees" +msgstr ":mod:`symbol` — Constantes utilisées dans les Arbres Syntaxiques" + +#: ../Doc/library/symbol.rst:9 +msgid "**Source code:** :source:`Lib/symbol.py`" +msgstr "**Code source :** :source:`Lib/symbol.py`" + +#: ../Doc/library/symbol.rst:13 +msgid "" +"This module provides constants which represent the numeric values of " +"internal nodes of the parse tree. Unlike most Python constants, these use " +"lower-case names. Refer to the file :file:`Grammar/Grammar` in the Python " +"distribution for the definitions of the names in the context of the language " +"grammar. The specific numeric values which the names map to may change " +"between Python versions." +msgstr "" +"Ce module fournit des constantes représentant les valeurs numériques des " +"nœuds internes de l'analyseur. Contrairement à la plupart des constantes en " +"Python, celles-ci utilisent des noms en minuscules. Référez-vous au fichier :" +"file:`Grammar/Grammar` dans la distribution de Python pour les définitions " +"de ces noms dans le contexte de la grammaire du langage. La valeur numérique " +"correspondant au nom peut changer d'une version de Python à l'autre." + +#: ../Doc/library/symbol.rst:20 +msgid "This module also provides one additional data object:" +msgstr "Ce module fournit aussi ces objets :" + +#: ../Doc/library/symbol.rst:25 +msgid "" +"Dictionary mapping the numeric values of the constants defined in this " +"module back to name strings, allowing more human-readable representation of " +"parse trees to be generated." +msgstr "" +"Dictionnaire faisant correspondre les valeurs numériques des constantes " +"définies dans ce module à leurs noms, permettant de générer une " +"représentation plus humaine des arbres syntaxiques." diff --git a/library/symtable.po b/library/symtable.po new file mode 100644 index 000000000..fdfa29824 --- /dev/null +++ b/library/symtable.po @@ -0,0 +1,211 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/symtable.rst:2 +msgid ":mod:`symtable` --- Access to the compiler's symbol tables" +msgstr "" + +#: ../Doc/library/symtable.rst:7 +msgid "**Source code:** :source:`Lib/symtable.py`" +msgstr "**Code source :** :source:`Lib/symtable.py`" + +#: ../Doc/library/symtable.rst:15 +msgid "" +"Symbol tables are generated by the compiler from AST just before bytecode is " +"generated. The symbol table is responsible for calculating the scope of " +"every identifier in the code. :mod:`symtable` provides an interface to " +"examine these tables." +msgstr "" + +#: ../Doc/library/symtable.rst:22 +msgid "Generating Symbol Tables" +msgstr "" + +#: ../Doc/library/symtable.rst:26 +msgid "" +"Return the toplevel :class:`SymbolTable` for the Python source *code*. " +"*filename* is the name of the file containing the code. *compile_type* is " +"like the *mode* argument to :func:`compile`." +msgstr "" + +#: ../Doc/library/symtable.rst:32 +msgid "Examining Symbol Tables" +msgstr "" + +#: ../Doc/library/symtable.rst:36 +msgid "A namespace table for a block. The constructor is not public." +msgstr "" + +#: ../Doc/library/symtable.rst:40 +msgid "" +"Return the type of the symbol table. Possible values are ``'class'``, " +"``'module'``, and ``'function'``." +msgstr "" + +#: ../Doc/library/symtable.rst:45 +msgid "Return the table's identifier." +msgstr "" + +#: ../Doc/library/symtable.rst:49 +msgid "" +"Return the table's name. This is the name of the class if the table is for " +"a class, the name of the function if the table is for a function, or " +"``'top'`` if the table is global (:meth:`get_type` returns ``'module'``)." +msgstr "" + +#: ../Doc/library/symtable.rst:55 +msgid "Return the number of the first line in the block this table represents." +msgstr "" + +#: ../Doc/library/symtable.rst:59 +msgid "Return ``True`` if the locals in this table can be optimized." +msgstr "" + +#: ../Doc/library/symtable.rst:63 +msgid "Return ``True`` if the block is a nested class or function." +msgstr "" + +#: ../Doc/library/symtable.rst:67 +msgid "" +"Return ``True`` if the block has nested namespaces within it. These can be " +"obtained with :meth:`get_children`." +msgstr "" + +#: ../Doc/library/symtable.rst:72 +msgid "Return ``True`` if the block uses ``exec``." +msgstr "" + +#: ../Doc/library/symtable.rst:76 +msgid "Return a list of names of symbols in this table." +msgstr "" + +#: ../Doc/library/symtable.rst:80 +msgid "Lookup *name* in the table and return a :class:`Symbol` instance." +msgstr "" + +#: ../Doc/library/symtable.rst:84 +msgid "Return a list of :class:`Symbol` instances for names in the table." +msgstr "" + +#: ../Doc/library/symtable.rst:88 +msgid "Return a list of the nested symbol tables." +msgstr "" + +#: ../Doc/library/symtable.rst:93 +msgid "" +"A namespace for a function or method. This class inherits :class:" +"`SymbolTable`." +msgstr "" + +#: ../Doc/library/symtable.rst:98 +msgid "Return a tuple containing names of parameters to this function." +msgstr "" + +#: ../Doc/library/symtable.rst:102 +msgid "Return a tuple containing names of locals in this function." +msgstr "" + +#: ../Doc/library/symtable.rst:106 +msgid "Return a tuple containing names of globals in this function." +msgstr "" + +#: ../Doc/library/symtable.rst:110 +msgid "Return a tuple containing names of free variables in this function." +msgstr "" + +#: ../Doc/library/symtable.rst:115 +msgid "A namespace of a class. This class inherits :class:`SymbolTable`." +msgstr "" + +#: ../Doc/library/symtable.rst:119 +msgid "Return a tuple containing the names of methods declared in the class." +msgstr "" + +#: ../Doc/library/symtable.rst:124 +msgid "" +"An entry in a :class:`SymbolTable` corresponding to an identifier in the " +"source. The constructor is not public." +msgstr "" + +#: ../Doc/library/symtable.rst:129 +msgid "Return the symbol's name." +msgstr "" + +#: ../Doc/library/symtable.rst:133 +msgid "Return ``True`` if the symbol is used in its block." +msgstr "" + +#: ../Doc/library/symtable.rst:137 +msgid "Return ``True`` if the symbol is created from an import statement." +msgstr "" + +#: ../Doc/library/symtable.rst:141 +msgid "Return ``True`` if the symbol is a parameter." +msgstr "" + +#: ../Doc/library/symtable.rst:145 +msgid "Return ``True`` if the symbol is global." +msgstr "" + +#: ../Doc/library/symtable.rst:149 +msgid "" +"Return ``True`` if the symbol is declared global with a global statement." +msgstr "" + +#: ../Doc/library/symtable.rst:153 +msgid "Return ``True`` if the symbol is local to its block." +msgstr "" + +#: ../Doc/library/symtable.rst:157 +msgid "" +"Return ``True`` if the symbol is referenced in its block, but not assigned " +"to." +msgstr "" + +#: ../Doc/library/symtable.rst:162 +msgid "Return ``True`` if the symbol is assigned to in its block." +msgstr "" + +#: ../Doc/library/symtable.rst:166 +msgid "Return ``True`` if name binding introduces new namespace." +msgstr "" + +#: ../Doc/library/symtable.rst:168 +msgid "" +"If the name is used as the target of a function or class statement, this " +"will be true." +msgstr "" + +#: ../Doc/library/symtable.rst:171 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/library/symtable.rst:177 +msgid "" +"Note that a single name can be bound to multiple objects. If the result is " +"``True``, the name may also be bound to other objects, like an int or list, " +"that does not introduce a new namespace." +msgstr "" + +#: ../Doc/library/symtable.rst:183 +msgid "Return a list of namespaces bound to this name." +msgstr "" + +#: ../Doc/library/symtable.rst:187 +msgid "" +"Return the namespace bound to this name. If more than one namespace is " +"bound, :exc:`ValueError` is raised." +msgstr "" diff --git a/library/sys.po b/library/sys.po new file mode 100644 index 000000000..e314e5a8c --- /dev/null +++ b/library/sys.po @@ -0,0 +1,2828 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-01 23:12+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/sys.rst:2 +msgid ":mod:`sys` --- System-specific parameters and functions" +msgstr ":mod:`sys` — Paramètres et fonctions propres à des systèmes" + +#: ../Doc/library/sys.rst:9 +msgid "" +"This module provides access to some variables used or maintained by the " +"interpreter and to functions that interact strongly with the interpreter. It " +"is always available." +msgstr "" +"Ce module fournit un accès à certaines variables utilisées et maintenues par " +"l'interpréteur, et à des fonctions interagissant fortement avec ce dernier. " +"Ce module est toujours disponible." + +#: ../Doc/library/sys.rst:16 +msgid "" +"On POSIX systems where Python was built with the standard ``configure`` " +"script, this contains the ABI flags as specified by :pep:`3149`." +msgstr "" +"Contient, sur les systèmes POSIX où Python a été compilé avec le script " +"``configure``, les *ABI flags* tels que définis par la :pep:`3149`." + +#: ../Doc/library/sys.rst:24 +msgid "" +"The list of command line arguments passed to a Python script. ``argv[0]`` is " +"the script name (it is operating system dependent whether this is a full " +"pathname or not). If the command was executed using the :option:`-c` " +"command line option to the interpreter, ``argv[0]`` is set to the string ``'-" +"c'``. If no script name was passed to the Python interpreter, ``argv[0]`` " +"is the empty string." +msgstr "" +"La liste des arguments de la ligne de commande passés à un script Python. " +"``argv[0]`` est le nom du script (chemin complet, ou non, en fonction du " +"système d'exploitation). Si la commande a été exécutée avec l'option :option:" +"`-c` de l'interpréteur, ``argv[0]`` vaut la chaîne ``'-c'``. Si aucun nom de " +"script n'a été donné à l'interpréteur Python, ``argv[0]`` sera une chaîne " +"vide." + +#: ../Doc/library/sys.rst:30 +msgid "" +"To loop over the standard input, or the list of files given on the command " +"line, see the :mod:`fileinput` module." +msgstr "" +"Pour boucler sur l'entrée standard, ou la liste des fichiers donnés sur la " +"ligne de commande, utilisez le module :mod:`fileinput`." + +#: ../Doc/library/sys.rst:34 +msgid "" +"On Unix, command line arguments are passed by bytes from OS. Python decodes " +"them with filesystem encoding and \"surrogateescape\" error handler. When " +"you need original bytes, you can get it by ``[os.fsencode(arg) for arg in " +"sys.argv]``." +msgstr "" +"Sous Unix, les arguments de ligne de commande sont passés par des octets " +"depuis le système d'exploitation. Python les décode en utilisant l’encodage " +"du système de fichiers et le gestionnaire d’erreur *surrogateescape*. Quand " +"vous avez besoin des octets originaux, vous pouvez les récupérer avec ``[os." +"fsencode(arg) for arg in sys.argv]``." + +#: ../Doc/library/sys.rst:42 +msgid "" +"Set during Python startup, before ``site.py`` is run, to the same value as :" +"data:`exec_prefix`. If not running in a :ref:`virtual environment `, the values will stay the same; if ``site.py`` finds that a virtual " +"environment is in use, the values of :data:`prefix` and :data:`exec_prefix` " +"will be changed to point to the virtual environment, whereas :data:" +"`base_prefix` and :data:`base_exec_prefix` will remain pointing to the base " +"Python installation (the one which the virtual environment was created from)." +msgstr "" +"Défini au démarrage de Python, avant que ``site.py`` ne soit évalué, à la " +"même valeur que :data:`exec_prefix`. Hors d'un :ref:`environnement virtuel " +"`, les valeurs restent les mêmes ; si ``site.py`` détecte qu'un " +"environnement virtuel est utilisé, les valeurs de :data:`prefix` et :data:" +"`exec_prefix` sont modifiées pour pointer vers l'environnement virtuel, " +"alors que :data:`base_prefix` et :data:`base_exec_prefix` pointent toujours " +"à la racine de l'installation de Python (celui utilisé pour créer " +"l'environnement virtuel)." + +#: ../Doc/library/sys.rst:56 +msgid "" +"Set during Python startup, before ``site.py`` is run, to the same value as :" +"data:`prefix`. If not running in a :ref:`virtual environment `, " +"the values will stay the same; if ``site.py`` finds that a virtual " +"environment is in use, the values of :data:`prefix` and :data:`exec_prefix` " +"will be changed to point to the virtual environment, whereas :data:" +"`base_prefix` and :data:`base_exec_prefix` will remain pointing to the base " +"Python installation (the one which the virtual environment was created from)." +msgstr "" +"Défini au démarrage de Python, avant que ``site.py`` ne soit évalué, à la " +"même valeur que :data:`prefix`. Hors d'un :ref:`environnement virtuel `, les valeurs restent les mêmes ; si ``site.py`` détecte qu'un " +"environnement virtuel est utilisé, les valeurs de :data:`prefix` et :data:" +"`exec_prefix` sont modifiées pour pointer vers l'environnement virtuel, " +"alors que :data:`base_prefix` et :data:`base_exec_prefix` pointent toujours " +"à la racine de l'installation de Python (celui utilisé pour créer " +"l'environnement virtuel)." + +#: ../Doc/library/sys.rst:69 +msgid "" +"An indicator of the native byte order. This will have the value ``'big'`` " +"on big-endian (most-significant byte first) platforms, and ``'little'`` on " +"little-endian (least-significant byte first) platforms." +msgstr "" +"Un indicateur de l'ordre natif des octets. Vaudra ``'big'`` sur les " +"plateformes gros-boutistes (octet le plus significatif en premier), et " +"``'little'`` sur les plateformes petit-boutiste (octet le moins significatif " +"en premier)." + +#: ../Doc/library/sys.rst:76 +msgid "" +"A tuple of strings giving the names of all modules that are compiled into " +"this Python interpreter. (This information is not available in any other " +"way --- ``modules.keys()`` only lists the imported modules.)" +msgstr "" +"Un *tuple* de chaînes de caractères donnant les noms de tous les modules " +"compilés dans l'interpréteur Python. (Cette information n'est pas " +"disponible autrement --- ```modules.keys()`` liste seulement les modules " +"importés.)" + +#: ../Doc/library/sys.rst:83 +msgid "" +"Call ``func(*args)``, while tracing is enabled. The tracing state is saved, " +"and restored afterwards. This is intended to be called from a debugger from " +"a checkpoint, to recursively debug some other code." +msgstr "" +"Appelle ``func(*args)``, avec le traçage activé. L'état du traçage est " +"sauvegardé et restauré après l'appel. Ceci est destiné à être appelé depuis " +"un débogueur à partir d'un point de contrôle, pour déboguer récursivement un " +"autre code." + +#: ../Doc/library/sys.rst:90 +msgid "A string containing the copyright pertaining to the Python interpreter." +msgstr "Une chaîne contenant le copyright relatif à l'interpréteur Python." + +#: ../Doc/library/sys.rst:95 +msgid "" +"Clear the internal type cache. The type cache is used to speed up attribute " +"and method lookups. Use the function *only* to drop unnecessary references " +"during reference leak debugging." +msgstr "" +"Vide le cache interne de types. Le cache de types est utilisé pour accélérer " +"les recherches d'attributs et de méthodes. N'utilisez cette fonction *que* " +"pour libérer des références inutiles durant le débogage de fuite de " +"référence." + +#: ../Doc/library/sys.rst:99 ../Doc/library/sys.rst:115 +msgid "" +"This function should be used for internal and specialized purposes only." +msgstr "" +"Cette fonction ne devrait être utilisée que pour un usage interne et " +"spécialisé." + +#: ../Doc/library/sys.rst:104 +msgid "" +"Return a dictionary mapping each thread's identifier to the topmost stack " +"frame currently active in that thread at the time the function is called. " +"Note that functions in the :mod:`traceback` module can build the call stack " +"given such a frame." +msgstr "" +"Renvoie un dictionnaire faisant correspondre chaque identifiant de fil " +"d'exécution à la *stack frame* actuellement active pour ces fils d'exécution " +"au moment où la fonction est appelée. Notez que les fonctions du module :mod:" +"`traceback` peuvent construire une *call stack* à partir d'une telle *frame*." + +#: ../Doc/library/sys.rst:109 +msgid "" +"This is most useful for debugging deadlock: this function does not require " +"the deadlocked threads' cooperation, and such threads' call stacks are " +"frozen for as long as they remain deadlocked. The frame returned for a non-" +"deadlocked thread may bear no relationship to that thread's current activity " +"by the time calling code examines the frame." +msgstr "" +"N'ayant pas besoin de la coopération des fils d'exécution bloqués, cette " +"fonction est très utile pour déboguer un *deadlock*. Aussi, les *call stack* " +"de ces fils d'exécution ne changeront pas tant qu'ils seront bloqués. La " +"*frame* renvoyée pour un fil d'exécution non bloqué peut ne plus être liée à " +"l'activité courante du fil d'exécution au moment où le code appelant examine " +"la *frame*." + +#: ../Doc/library/sys.rst:120 +msgid "" +"This hook function is called by built-in :func:`breakpoint`. By default, it " +"drops you into the :mod:`pdb` debugger, but it can be set to any other " +"function so that you can choose which debugger gets used." +msgstr "" +"Cette fonction auto-déclenchée (*hook function* en anglais) est appelée par " +"la fonction native :func:`breakpoint`. Par défaut, elle vous place dans le " +"débogueur :mod:`pdb`, mais elle peut être dirigée vers n'importe quelle " +"autre fonction pour que vous puissiez choisir le débogueur utilisé." + +#: ../Doc/library/sys.rst:124 +msgid "" +"The signature of this function is dependent on what it calls. For example, " +"the default binding (e.g. ``pdb.set_trace()``) expects no arguments, but you " +"might bind it to a function that expects additional arguments (positional " +"and/or keyword). The built-in ``breakpoint()`` function passes its " +"``*args`` and ``**kws`` straight through. Whatever ``breakpointhooks()`` " +"returns is returned from ``breakpoint()``." +msgstr "" +"La signature de cette fonction dépend de ce qu'elle appelle. Par exemple, " +"l'appel par défaut (e.g. ``pdb.set_trace()``) n'attend pas d'argument, mais " +"vous pourriez la lier à une fonction qui attend des arguments " +"supplémentaires (positionnels et/ou mots-clés). La fonction native " +"`breakpoint()` passe ses ``*args`` et ``**kws`` directement au travers. Tout " +"ce que renvoie ``breakpointhooks()`` est renvoyé par ``breakpoint()``." + +#: ../Doc/library/sys.rst:131 +msgid "" +"The default implementation first consults the environment variable :envvar:" +"`PYTHONBREAKPOINT`. If that is set to ``\"0\"`` then this function returns " +"immediately; i.e. it is a no-op. If the environment variable is not set, or " +"is set to the empty string, ``pdb.set_trace()`` is called. Otherwise this " +"variable should name a function to run, using Python's dotted-import " +"nomenclature, e.g. ``package.subpackage.module.function``. In this case, " +"``package.subpackage.module`` would be imported and the resulting module " +"must have a callable named ``function()``. This is run, passing in " +"``*args`` and ``**kws``, and whatever ``function()`` returns, ``sys." +"breakpointhook()`` returns to the built-in :func:`breakpoint` function." +msgstr "" +"L'implémentation par défaut consulte d'abord la variable d'environnement :" +"envvar:`PYTHONBREAKPOINT`. Si elle vaut ``\"0\"`` alors cette fonction " +"s'achève immédiatement (elle ne fait donc rien). Si la variable " +"d'environnement n'est pas définie, ou s'il s'agit d'une chaîne vide, ``pdb." +"set_trace()`` est appelée. Sinon cette variable doit nommer une fonction à " +"appeler, en utilisant la syntaxe d'importation de Python, par exemple " +"``package.subpackage.module.function``. Dans ce cas, ``package.subpackage." +"module`` sera importé et le module devra contenir une fonction appelable " +"``function()``. Celle-ci est lancée en lui passant ``*args`` et ``*kws`` et, " +"quoique renvoie ``function()``, ``sys.breakpointhook()`` retourne à la " +"fonction native :func:`breakpoint`." + +#: ../Doc/library/sys.rst:143 +msgid "" +"Note that if anything goes wrong while importing the callable named by :" +"envvar:`PYTHONBREAKPOINT`, a :exc:`RuntimeWarning` is reported and the " +"breakpoint is ignored." +msgstr "" +"Notez que si un problème apparaît au moment de l'importation de la fonction " +"nommée dans :envvar:`PYTHONBREAKPOINT`, une alerte :exc:`RuntimeWarning` est " +"indiquée et le point d'arrêt est ignoré." + +#: ../Doc/library/sys.rst:147 +msgid "" +"Also note that if ``sys.breakpointhook()`` is overridden programmatically, :" +"envvar:`PYTHONBREAKPOINT` is *not* consulted." +msgstr "" +"Notez également que si ``sys.breakpointhook()`` est surchargé de manière " +"programmatique, :envvar:`PYTHONBREAKPOINT` *n'est pas* consulté." + +#: ../Doc/library/sys.rst:154 +msgid "" +"Print low-level information to stderr about the state of CPython's memory " +"allocator." +msgstr "" +"Affiche des informations bas-niveau sur la sortie d'erreur à propos de " +"l'état de l'allocateur de mémoire de CPython." + +#: ../Doc/library/sys.rst:157 +msgid "" +"If Python is configured --with-pydebug, it also performs some expensive " +"internal consistency checks." +msgstr "" +"Si Python est configuré avec l'option *--with-pydebug*, il effectuera aussi " +"quelques coûteuses vérifications de cohérence interne." + +#: ../Doc/library/sys.rst:164 +msgid "" +"This function is specific to CPython. The exact output format is not " +"defined here, and may change." +msgstr "" +"Cette fonction est spécifique à CPython. Le format de sa sortie n'est pas " +"définit ici et pourrait changer." + +#: ../Doc/library/sys.rst:170 +msgid "Integer specifying the handle of the Python DLL." +msgstr "Nombre entier spécifiant le descripteur de la DLL Python." + +#: ../Doc/library/sys.rst:172 ../Doc/library/sys.rst:663 +#: ../Doc/library/sys.rst:1336 ../Doc/library/sys.rst:1500 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." + +#: ../Doc/library/sys.rst:177 +msgid "" +"If *value* is not ``None``, this function prints ``repr(value)`` to ``sys." +"stdout``, and saves *value* in ``builtins._``. If ``repr(value)`` is not " +"encodable to ``sys.stdout.encoding`` with ``sys.stdout.errors`` error " +"handler (which is probably ``'strict'``), encode it to ``sys.stdout." +"encoding`` with ``'backslashreplace'`` error handler." +msgstr "" +"Si *value* n'est pas ``None``, cette fonction écrit ``repr(value)`` sur " +"``sys.stdout``, et sauvegarde *value* dans ``builtins._``. Si " +"``repr(value)`` ne peut pas être encodé avec ``sys.stdout.encoding`` en " +"utilisant le gestionnaire d'erreur ``sys.stdout.errors`` (qui est " +"probablement ``'strict'``), elle sera encodée avec ``sys.stdout.encoding`` " +"en utilisant le gestionnaire d'erreur ``'backslashreplace'``." + +#: ../Doc/library/sys.rst:183 +msgid "" +"``sys.displayhook`` is called on the result of evaluating an :term:" +"`expression` entered in an interactive Python session. The display of these " +"values can be customized by assigning another one-argument function to ``sys." +"displayhook``." +msgstr "" +"``sys.displayhook`` est appelé avec le résultat de l'évaluation d'une :term:" +"`expression` entrée dans une session Python interactive. L'affichage de ces " +"valeurs peut être personnalisé en assignant une autre fonction d'un argument " +"à ``sys.displayhook``." + +#: ../Doc/library/sys.rst:187 +msgid "Pseudo-code::" +msgstr "Pseudo-code ::" + +#: ../Doc/library/sys.rst:207 +msgid "Use ``'backslashreplace'`` error handler on :exc:`UnicodeEncodeError`." +msgstr "" +"Utiliser le gestionnaire d'erreur ``'backslashreplace'`` en cas d':exc:" +"`UnicodeEncodeError`." + +#: ../Doc/library/sys.rst:213 +msgid "" +"If this is true, Python won't try to write ``.pyc`` files on the import of " +"source modules. This value is initially set to ``True`` or ``False`` " +"depending on the :option:`-B` command line option and the :envvar:" +"`PYTHONDONTWRITEBYTECODE` environment variable, but you can set it yourself " +"to control bytecode file generation." +msgstr "" +"Si vrai, Python n'essaiera pas d'écrire de fichiers ``.pyc`` à l'importation " +"de modules source. Cette valeur est initialement définie à ``True`` ou " +"``False`` en fonction de l'option de la ligne de commande :option:`-B` et de " +"la variable d'environnement :envvar:`PYTHONDONDONTWRITEBYTECODE`, mais vous " +"pouvez aussi la modifier vous-même pour contrôler la génération des fichiers " +"de *bytecode*." + +#: ../Doc/library/sys.rst:222 +msgid "" +"This function prints out a given traceback and exception to ``sys.stderr``." +msgstr "" +"Cette fonction affiche la *traceback* et l'exception donnée sur ``sys." +"stderr``." + +#: ../Doc/library/sys.rst:224 +msgid "" +"When an exception is raised and uncaught, the interpreter calls ``sys." +"excepthook`` with three arguments, the exception class, exception instance, " +"and a traceback object. In an interactive session this happens just before " +"control is returned to the prompt; in a Python program this happens just " +"before the program exits. The handling of such top-level exceptions can be " +"customized by assigning another three-argument function to ``sys." +"excepthook``." +msgstr "" +"Lorsqu'une exception est levée et n'est pas attrapée, l'interpréteur appelle " +"``sys.excepthook`` avec trois arguments, la classe de l'exception, " +"l'instance de l'exception, et un objet *traceback*. Dans une session " +"interactive, cela se produit juste avant que le que l'invite soit rendue. " +"Dans un programme Python, cela se produit juste avant que le programme " +"quitte. La gestion de ces exceptions peut être personnalisé en affectant une " +"autre fonction de trois arguments à ``sys.excepthook``." + +#: ../Doc/library/sys.rst:236 +msgid "" +"These objects contain the original values of ``breakpointhook``, " +"``displayhook``, and ``excepthook`` at the start of the program. They are " +"saved so that ``breakpointhook``, ``displayhook`` and ``excepthook`` can be " +"restored in case they happen to get replaced with broken or alternative " +"objects." +msgstr "" +"Ces objets contiennent les valeurs originales de ``breakpointhook``, " +"``displayhook`` et ``excepthook`` au début du programme. Ils sont " +"sauvegardés de façon à ce que ``breakpointhook``, ``displayhook`` et " +"``excepthook`` puissent être restaurés au cas où ils seraient remplacés par " +"des objets cassés ou alternatifs." + +#: ../Doc/library/sys.rst:242 +msgid "__breakpointhook__" +msgstr "__breakpointhook__" + +#: ../Doc/library/sys.rst:248 +msgid "" +"This function returns a tuple of three values that give information about " +"the exception that is currently being handled. The information returned is " +"specific both to the current thread and to the current stack frame. If the " +"current stack frame is not handling an exception, the information is taken " +"from the calling stack frame, or its caller, and so on until a stack frame " +"is found that is handling an exception. Here, \"handling an exception\" is " +"defined as \"executing an except clause.\" For any stack frame, only " +"information about the exception being currently handled is accessible." +msgstr "" +"Cette fonction renvoie un *tuple* de trois valeurs qui donnent des " +"informations sur l'exception actuellement traitée. L'information renvoyée " +"est spécifique à la fois au fil d'exécution courant et à la *stack frame* " +"courante. Si la *stack frame* actuelle ne traite pas d'exception, " +"l'information est extraite de la *stack frame* parente, puis celle " +"appelante, et ainsi de suite jusqu'à trouver une *stack frame* traitant une " +"exception. Ici, \"traiter une exception\" signifie \"exécute une clause " +"*except*\". Pour chaque *stack frame*, seule l'information à propos d'une " +"exception actuellement traitée est accessible." + +#: ../Doc/library/sys.rst:259 +msgid "" +"If no exception is being handled anywhere on the stack, a tuple containing " +"three ``None`` values is returned. Otherwise, the values returned are " +"``(type, value, traceback)``. Their meaning is: *type* gets the type of the " +"exception being handled (a subclass of :exc:`BaseException`); *value* gets " +"the exception instance (an instance of the exception type); *traceback* gets " +"a traceback object (see the Reference Manual) which encapsulates the call " +"stack at the point where the exception originally occurred." +msgstr "" +"Si aucune exception n'est actuellement traitée de toute la pile, un *tuple* " +"contenant trois ``None`` sera renvoyé. Autrement, les valeurs renvoyées " +"sont ``(type, value, traceback)``. Respectivement *type* reçoit le type de " +"l'exception traitée (une classe fille de :exc:`BaseException`), *value* " +"reçoit l'instance de l'exception (une instance du type de l'exception), et " +"*traceback* reçoit un objet *traceback* (voir le Manuel de Référence) qui " +"encapsule la pile d'appels au point où l'exception s'est produite à " +"l'origine." + +#: ../Doc/library/sys.rst:270 +msgid "" +"A string giving the site-specific directory prefix where the platform-" +"dependent Python files are installed; by default, this is also ``'/usr/" +"local'``. This can be set at build time with the ``--exec-prefix`` argument " +"to the :program:`configure` script. Specifically, all configuration files " +"(e.g. the :file:`pyconfig.h` header file) are installed in the directory :" +"file:`{exec_prefix}/lib/python{X.Y}/config`, and shared library modules are " +"installed in :file:`{exec_prefix}/lib/python{X.Y}/lib-dynload`, where *X.Y* " +"is the version number of Python, for example ``3.2``." +msgstr "" +"Une chaîne donnant le préfixe de dossier spécifique au site où les fichiers " +"dépendant de la plateforme sont installés. Par défaut, c'est ``'/usr/" +"local'``. C'est configurable à la compilation avec l'option ``--exec-" +"prefix`` du script :program:`configure`. Tous les fichiers de configurations " +"(tel que :file:`pyconfig,h`) sont installés dans le dossier :file:" +"`{exec_prefix}/lib/python{X.Y}/config`, et les modules sous forme de " +"bibliothèques partagées sont installés dans :file:`{exec_prefix}/lib/" +"python{X.Y}/lib-dynload`, où *X.Y* est le numéro de version de Python, par " +"exemple ``3.2``." + +#: ../Doc/library/sys.rst:281 +msgid "" +"If a :ref:`virtual environment ` is in effect, this value will be " +"changed in ``site.py`` to point to the virtual environment. The value for " +"the Python installation will still be available, via :data:" +"`base_exec_prefix`." +msgstr "" +"Si un :ref:`environment virtuel ` est actif, cette valeur sera " +"modifiée par ``site.py`` pour pointer vers l'environnement virtuel. La " +"valeur d'origine sera toujours disponible via :data:`base_exec_prefix`." + +#: ../Doc/library/sys.rst:289 +msgid "" +"A string giving the absolute path of the executable binary for the Python " +"interpreter, on systems where this makes sense. If Python is unable to " +"retrieve the real path to its executable, :data:`sys.executable` will be an " +"empty string or ``None``." +msgstr "" +"Une chaîne donnant le chemin absolu vers l'interpréteur Python, un fichier " +"binaire exécutable, sur les système sur lesquels ça à du sens. Si Python " +"n'est pas capable de récupérer le chemin réel de son exécutable, :data:`sys." +"executable` sera une chaîne vide ou ``None``." + +#: ../Doc/library/sys.rst:297 +msgid "" +"Exit from Python. This is implemented by raising the :exc:`SystemExit` " +"exception, so cleanup actions specified by finally clauses of :keyword:`try` " +"statements are honored, and it is possible to intercept the exit attempt at " +"an outer level." +msgstr "" +"Quitte Python. C'est implémente en levant l'exception :exc:`SystemExit`, " +"afin que toutes les actions de nettoyage spécifiées par des clauses " +"*finally* des instructions :keyword:`try` soient correctement exécutées. Il " +"est aussi possible d'intercepter la tentative de sortie à un niveau au " +"dessus." + +#: ../Doc/library/sys.rst:302 +msgid "" +"The optional argument *arg* can be an integer giving the exit status " +"(defaulting to zero), or another type of object. If it is an integer, zero " +"is considered \"successful termination\" and any nonzero value is considered " +"\"abnormal termination\" by shells and the like. Most systems require it to " +"be in the range 0--127, and produce undefined results otherwise. Some " +"systems have a convention for assigning specific meanings to specific exit " +"codes, but these are generally underdeveloped; Unix programs generally use 2 " +"for command line syntax errors and 1 for all other kind of errors. If " +"another type of object is passed, ``None`` is equivalent to passing zero, " +"and any other object is printed to :data:`stderr` and results in an exit " +"code of 1. In particular, ``sys.exit(\"some error message\")`` is a quick " +"way to exit a program when an error occurs." +msgstr "" +"L'argument optionnel *arg* peut être un nombre entier donnant l'état de " +"sortie (zéro par défaut), ou un autre type d'objet. Pour les *shells* (et " +"autres), si c'est un entier, zéro signifie \"terminé avec succès\", et " +"toutes les autres valeurs signifient \"terminé anormalement\". La plupart " +"des systèmes imposent qu'il se situe dans la plage 0--127, et leur " +"comportement n'est pas défini pour les autres cas. Certains systèmes peu " +"communs ont pour convention d'assigner un sens particulier à des valeur " +"spécifiques. Les programmes Unix utilisent généralement 2 pour les erreurs " +"de syntaxe dans les arguments de la ligne de commande, et 1 pour toutes les " +"autres erreurs. Si un autre type est passé, ``None`` est équivalent à zéro, " +"et tout autre objet est écrit sur :data:`stderr` et donne un code de sortie " +"1. Typiquement, ``sys.exit(\"some error message\")`` est un moyen rapide de " +"quitter un programme en cas d'erreur." + +#: ../Doc/library/sys.rst:315 +msgid "" +"Since :func:`exit` ultimately \"only\" raises an exception, it will only " +"exit the process when called from the main thread, and the exception is not " +"intercepted." +msgstr "" +"Puisque la fonction :func:`exit` ne fait \"que\" lever une exception, elle " +"ne fera quitter le processus que si elle est appelée depuis le fil " +"d'exécution principal, et que l'exception n'est pas interceptée." + +#: ../Doc/library/sys.rst:319 +msgid "" +"If an error occurs in the cleanup after the Python interpreter has caught :" +"exc:`SystemExit` (such as an error flushing buffered data in the standard " +"streams), the exit status is changed to 120." +msgstr "" +"Si une erreur survient lors du nettoyage après que l'interpréteur Python ai " +"intercepté un :exc:`SystemExit` (typiquement une erreur en vidant les " +"tampons des sorties standard), le code de sortie est changé à 120." + +#: ../Doc/library/sys.rst:327 +msgid "" +"The :term:`struct sequence` *flags* exposes the status of command line " +"flags. The attributes are read only." +msgstr "" +"La :term:`struct sequence` *flags* expose l'état des options de ligne de " +"commande. Ces attributs sont en lecture seule." + +#: ../Doc/library/sys.rst:331 ../Doc/library/sys.rst:379 +#: ../Doc/library/sys.rst:724 +msgid "attribute" +msgstr "attribut" + +#: ../Doc/library/sys.rst:331 +msgid "flag" +msgstr "option" + +#: ../Doc/library/sys.rst:333 +msgid ":const:`debug`" +msgstr ":const:`debug`" + +#: ../Doc/library/sys.rst:333 +msgid ":option:`-d`" +msgstr ":option:`-d`" + +#: ../Doc/library/sys.rst:334 +msgid ":const:`inspect`" +msgstr ":const:`inspect`" + +#: ../Doc/library/sys.rst:334 ../Doc/library/sys.rst:335 +msgid ":option:`-i`" +msgstr ":option:`-i`" + +#: ../Doc/library/sys.rst:335 +msgid ":const:`interactive`" +msgstr ":const:`interactive`" + +#: ../Doc/library/sys.rst:336 +msgid ":const:`isolated`" +msgstr ":const:`isolated`" + +#: ../Doc/library/sys.rst:336 +msgid ":option:`-I`" +msgstr ":option:`-I`" + +#: ../Doc/library/sys.rst:337 +msgid ":const:`optimize`" +msgstr ":const:`optimize`" + +#: ../Doc/library/sys.rst:337 +msgid ":option:`-O` or :option:`-OO`" +msgstr ":option:`-O` or :option:`-OO`" + +#: ../Doc/library/sys.rst:338 +msgid ":const:`dont_write_bytecode`" +msgstr ":const:`dont_write_bytecode`" + +#: ../Doc/library/sys.rst:338 +msgid ":option:`-B`" +msgstr ":option:`-B`" + +#: ../Doc/library/sys.rst:339 +msgid ":const:`no_user_site`" +msgstr ":const:`no_user_site`" + +#: ../Doc/library/sys.rst:339 +msgid ":option:`-s`" +msgstr ":option:`-s`" + +#: ../Doc/library/sys.rst:340 +msgid ":const:`no_site`" +msgstr ":const:`no_site`" + +#: ../Doc/library/sys.rst:340 +msgid ":option:`-S`" +msgstr ":option:`-S`" + +#: ../Doc/library/sys.rst:341 +msgid ":const:`ignore_environment`" +msgstr ":const:`ignore_environment`" + +#: ../Doc/library/sys.rst:341 +msgid ":option:`-E`" +msgstr ":option:`-E`" + +#: ../Doc/library/sys.rst:342 +msgid ":const:`verbose`" +msgstr ":const:`verbose`" + +#: ../Doc/library/sys.rst:342 +msgid ":option:`-v`" +msgstr ":option:`-v`" + +#: ../Doc/library/sys.rst:343 +msgid ":const:`bytes_warning`" +msgstr ":const:`bytes_warning`" + +#: ../Doc/library/sys.rst:343 +msgid ":option:`-b`" +msgstr ":option:`-b`" + +#: ../Doc/library/sys.rst:344 +msgid ":const:`quiet`" +msgstr ":const:`quiet`" + +#: ../Doc/library/sys.rst:344 +msgid ":option:`-q`" +msgstr ":option:`-q`" + +#: ../Doc/library/sys.rst:345 +msgid ":const:`hash_randomization`" +msgstr ":const:`hash_randomization`" + +#: ../Doc/library/sys.rst:345 +msgid ":option:`-R`" +msgstr ":option:`-R`" + +#: ../Doc/library/sys.rst:346 +msgid ":const:`dev_mode`" +msgstr ":const:`dev_mode`" + +#: ../Doc/library/sys.rst:346 +msgid ":option:`-X` ``dev``" +msgstr ":option:`-X` ``dev``" + +#: ../Doc/library/sys.rst:347 +msgid ":const:`utf8_mode`" +msgstr ":const:`utf8_mode`" + +#: ../Doc/library/sys.rst:347 +msgid ":option:`-X` ``utf8``" +msgstr ":option:`-X` ``utf8``" + +#: ../Doc/library/sys.rst:350 +msgid "Added ``quiet`` attribute for the new :option:`-q` flag." +msgstr "Ajout de l'attribut ``quiet`` pour la nouvelle option :option:`-q`." + +#: ../Doc/library/sys.rst:353 +msgid "The ``hash_randomization`` attribute." +msgstr "L'attribut ``hash_randomization``." + +#: ../Doc/library/sys.rst:356 +msgid "Removed obsolete ``division_warning`` attribute." +msgstr "Suppression de l'attribut obsolète ``division_warning``." + +#: ../Doc/library/sys.rst:359 +msgid "Added ``isolated`` attribute for :option:`-I` ``isolated`` flag." +msgstr "" +"Ajout de l'attribut ``isolated`` pour l'option :option:`-I` ``isolated``." + +#: ../Doc/library/sys.rst:362 +msgid "" +"Added ``dev_mode`` attribute for the new :option:`-X` ``dev`` flag and " +"``utf8_mode`` attribute for the new :option:`-X` ``utf8`` flag." +msgstr "" +"Ajout de l'attribut ``dev_mode`` pour la nouvelle option :option:`-X` " +"``dev`` et l'attribut ``utf8_mode`` pour la nouvelle option :option:`-X` " +"``utf8``." + +#: ../Doc/library/sys.rst:369 +msgid "" +"A :term:`struct sequence` holding information about the float type. It " +"contains low level information about the precision and internal " +"representation. The values correspond to the various floating-point " +"constants defined in the standard header file :file:`float.h` for the 'C' " +"programming language; see section 5.2.4.2.2 of the 1999 ISO/IEC C standard " +"[C99]_, 'Characteristics of floating types', for details." +msgstr "" +"Un :term:`struct sequence` contenant des informations à propos du type " +"*float*. Il contient des informations de bas niveau à propos de la précision " +"et de la représentation interne. Les valeurs correspondent aux différentes " +"constantes à propos des nombres à virgule flottantes définies dans le " +"fichier d'entête :file:`float.h`. Voir la section 5.2.4.2.2 de *1999 ISO/" +"IEC C standard* [C99]_, *Characteristics of floating types*, pour plus de " +"détails." + +#: ../Doc/library/sys.rst:379 +msgid "float.h macro" +msgstr "macro *float.h*" + +#: ../Doc/library/sys.rst:379 ../Doc/library/sys.rst:724 +msgid "explanation" +msgstr "explication" + +#: ../Doc/library/sys.rst:381 +msgid ":const:`epsilon`" +msgstr ":const:`epsilon`" + +#: ../Doc/library/sys.rst:381 +msgid "DBL_EPSILON" +msgstr "DBL_EPSILON" + +#: ../Doc/library/sys.rst:381 +msgid "" +"difference between 1 and the least value greater than 1 that is " +"representable as a float" +msgstr "" +"différence entre 1 et la plus petite valeur plus grande que 1 représentable " +"en *float*" + +#: ../Doc/library/sys.rst:384 +msgid ":const:`dig`" +msgstr ":const:`dig`" + +#: ../Doc/library/sys.rst:384 +msgid "DBL_DIG" +msgstr "DBL_DIG" + +#: ../Doc/library/sys.rst:384 +msgid "" +"maximum number of decimal digits that can be faithfully represented in a " +"float; see below" +msgstr "" +"nombre maximum de décimales pouvant être représentées fidèlement dans un " +"*float* (voir ci-dessous)" + +#: ../Doc/library/sys.rst:387 +msgid ":const:`mant_dig`" +msgstr ":const:`mant_dig`" + +#: ../Doc/library/sys.rst:387 +msgid "DBL_MANT_DIG" +msgstr "DBL_MANT_DIG" + +#: ../Doc/library/sys.rst:387 +msgid "" +"float precision: the number of base-``radix`` digits in the significand of a " +"float" +msgstr "" +"précision : nombre de *base-*\\ ``radix`` chiffres dans la mantisse du " +"*float*" + +#: ../Doc/library/sys.rst:390 +msgid ":const:`max`" +msgstr ":const:`max`" + +#: ../Doc/library/sys.rst:390 +msgid "DBL_MAX" +msgstr "DBL_MAX" + +#: ../Doc/library/sys.rst:390 +msgid "maximum representable finite float" +msgstr "plus grand `float` fini représentable" + +#: ../Doc/library/sys.rst:392 +msgid ":const:`max_exp`" +msgstr ":const:`max_exp`" + +#: ../Doc/library/sys.rst:392 +msgid "DBL_MAX_EXP" +msgstr "DBL_MAX_EXP" + +#: ../Doc/library/sys.rst:392 +msgid "" +"maximum integer e such that ``radix**(e-1)`` is a representable finite float" +msgstr "" +"plus grand nombre entier *e* tel que ``radix**(e-1)`` soit représentable " +"sous forme de *float* finit" + +#: ../Doc/library/sys.rst:395 +msgid ":const:`max_10_exp`" +msgstr ":const:`max_10_exp`" + +#: ../Doc/library/sys.rst:395 +msgid "DBL_MAX_10_EXP" +msgstr "DBL_MAX_10_EXP" + +#: ../Doc/library/sys.rst:395 +msgid "" +"maximum integer e such that ``10**e`` is in the range of representable " +"finite floats" +msgstr "" +"plus grand nombre entier *e* tel que ``10**e`` est dans l'intervalle des " +"nombre flottants finis" + +#: ../Doc/library/sys.rst:398 +msgid ":const:`min`" +msgstr ":const:`min`" + +#: ../Doc/library/sys.rst:398 +msgid "DBL_MIN" +msgstr "DBL_MIN" + +#: ../Doc/library/sys.rst:398 +msgid "minimum positive normalized float" +msgstr "plus petit nombre à virgule flottante positif normalisé" + +#: ../Doc/library/sys.rst:400 +msgid ":const:`min_exp`" +msgstr ":const:`min_exp`" + +#: ../Doc/library/sys.rst:400 +msgid "DBL_MIN_EXP" +msgstr "DBL_MIN_EXP" + +#: ../Doc/library/sys.rst:400 +msgid "minimum integer e such that ``radix**(e-1)`` is a normalized float" +msgstr "" +"plus petit entier *e* tel que ``radix**(e-1)`` est un *float* normalisé" + +#: ../Doc/library/sys.rst:403 +msgid ":const:`min_10_exp`" +msgstr ":const:`min_10_exp`" + +#: ../Doc/library/sys.rst:403 +msgid "DBL_MIN_10_EXP" +msgstr "DBL_MIN_10_EXP" + +#: ../Doc/library/sys.rst:403 +msgid "minimum integer e such that ``10**e`` is a normalized float" +msgstr "" +"plus petit nombre entier *e* tel que ``10**e`` est un nombre à virgule " +"flottante normalisé" + +#: ../Doc/library/sys.rst:406 +msgid ":const:`radix`" +msgstr ":const:`radix`" + +#: ../Doc/library/sys.rst:406 +msgid "FLT_RADIX" +msgstr "FLT_RADIX" + +#: ../Doc/library/sys.rst:406 +msgid "radix of exponent representation" +msgstr "base de la représentation de l'exposant" + +#: ../Doc/library/sys.rst:408 +msgid ":const:`rounds`" +msgstr ":const:`rounds`" + +#: ../Doc/library/sys.rst:408 +msgid "FLT_ROUNDS" +msgstr "FLT_ROUNDS" + +#: ../Doc/library/sys.rst:408 +msgid "" +"integer constant representing the rounding mode used for arithmetic " +"operations. This reflects the value of the system FLT_ROUNDS macro at " +"interpreter startup time. See section 5.2.4.2.2 of the C99 standard for an " +"explanation of the possible values and their meanings." +msgstr "" +"constante, nombre entier représentant le mode d'arrondi utilisé pour les " +"opérations arithmétiques. Elle reflète la valeur de la macro système " +"FLT_ROUNDS au moment du démarrage de l'interpréteur. Voir section " +"5.2.4.4.2.2 de la norme C99 pour une explication des valeurs possibles et de " +"leurs significations." + +#: ../Doc/library/sys.rst:416 +msgid "" +"The attribute :attr:`sys.float_info.dig` needs further explanation. If " +"``s`` is any string representing a decimal number with at most :attr:`sys." +"float_info.dig` significant digits, then converting ``s`` to a float and " +"back again will recover a string representing the same decimal value::" +msgstr "" +"L'attribut :attr:`sys.float_info.dig` nécessite plus d'explications : Si " +"``s`` est une chaîne représentant un nombre décimal avec au plus :attr:`sys." +"float_info.dig` chiffres significatifs, alors, convertir ``s`` en un nombre " +"à virgule flottante puis à nouveau en chaîne redonnera la même valeur ::" + +#: ../Doc/library/sys.rst:429 +msgid "" +"But for strings with more than :attr:`sys.float_info.dig` significant " +"digits, this isn't always true::" +msgstr "" +"Cependant, pour les chaînes avec plus de :attr:`sys.float_info.dig` chiffres " +"significatifs, ce n'est pas toujours vrai ::" + +#: ../Doc/library/sys.rst:438 +msgid "" +"A string indicating how the :func:`repr` function behaves for floats. If " +"the string has value ``'short'`` then for a finite float ``x``, ``repr(x)`` " +"aims to produce a short string with the property that ``float(repr(x)) == " +"x``. This is the usual behaviour in Python 3.1 and later. Otherwise, " +"``float_repr_style`` has value ``'legacy'`` and ``repr(x)`` behaves in the " +"same way as it did in versions of Python prior to 3.1." +msgstr "" +"Une chaîne indiquant comment la fonction :func:`repr` se comporte avec les " +"nombres à virgule flottante. Si la chaîne a la valeur ``'short'``, alors " +"pour un *float* finit ``x``, ``repr(x)`` essaye de donner une courte chaîne " +"tel que ``float(repr(x)) == x``. C'est le comportement typique à partir de " +"Python 3.1. Autrement, ``float_repr_style`` a la valeur ``'legacy'`` et\n" +"``repr(x)`` se comporte comme les versions antérieures à 3.1." + +#: ../Doc/library/sys.rst:451 +msgid "" +"Return the number of memory blocks currently allocated by the interpreter, " +"regardless of their size. This function is mainly useful for tracking and " +"debugging memory leaks. Because of the interpreter's internal caches, the " +"result can vary from call to call; you may have to call :func:" +"`_clear_type_cache()` and :func:`gc.collect()` to get more predictable " +"results." +msgstr "" +"Renvoie le nombre de blocs mémoire actuellement alloués par l'interpréteur, " +"peu importe leur taille. Cette fonction est principalement utile pour " +"pister les fuites de mémoire. À cause des caches internes de l'interpréteur, " +"le résultat peut varier d'un appel à l'autre. Appeler :func:" +"`_clear_type_cache()` et :func:`gc.collect()` peut permettre d'obtenir des " +"résultats plus prévisibles." + +#: ../Doc/library/sys.rst:458 +msgid "" +"If a Python build or implementation cannot reasonably compute this " +"information, :func:`getallocatedblocks()` is allowed to return 0 instead." +msgstr "" +"Si Python n'arrive pas a calculer raisonnablement cette information, :func:" +"`getallocatedblocks()` est autorisé à renvoyer 0 à la place." + +#: ../Doc/library/sys.rst:466 +msgid "Return the build time API version of Android as an integer." +msgstr "" +"Renvoie la version de l'API Android utilisée pour compiler sous forme d'un " +"entier." + +#: ../Doc/library/sys.rst:469 +msgid ":ref:`Availability `: Android." +msgstr ":ref:`Disponibilité ` : Android." + +#: ../Doc/library/sys.rst:475 +msgid "" +"Return the interpreter's \"check interval\"; see :func:`setcheckinterval`." +msgstr "" +"Renvoie le *check interval* de l'interpréteur, voir :func:`setcheckinterval`." + +#: ../Doc/library/sys.rst:477 +msgid "Use :func:`getswitchinterval` instead." +msgstr "Utilisez plutôt :func:`getswitchinterval`." + +#: ../Doc/library/sys.rst:483 +msgid "" +"Return the name of the current default string encoding used by the Unicode " +"implementation." +msgstr "" +"Renvoie le nom du codage par défaut actuellement utilisé par " +"l'implémentation *Unicode* pour coder les chaînes." + +#: ../Doc/library/sys.rst:489 +msgid "" +"Return the current value of the flags that are used for :c:func:`dlopen` " +"calls. Symbolic names for the flag values can be found in the :mod:`os` " +"module (``RTLD_xxx`` constants, e.g. :data:`os.RTLD_LAZY`)." +msgstr "" +"Renvoie la valeur actuelle des drapeaux utilisés par les appels de :c:func:" +"`dlopen`. Les noms symboliques valeurs peuvent être trouvées dans le module :" +"mod:`os`. (Ce sont les constantes ``RTLD_xxx`` e.g. :data:`os.RTLD_LAZY`)." + +#: ../Doc/library/sys.rst:494 ../Doc/library/sys.rst:1089 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." + +#: ../Doc/library/sys.rst:499 +msgid "" +"Return the name of the encoding used to convert between Unicode filenames " +"and bytes filenames. For best compatibility, str should be used for " +"filenames in all cases, although representing filenames as bytes is also " +"supported. Functions accepting or returning filenames should support either " +"str or bytes and internally convert to the system's preferred representation." +msgstr "" +"Donne le nom de l'encodage utilisé pour les conversions entre les noms de " +"fichiers Unicode et les noms de fichiers en octets. Pour une compatibilité " +"optimale, les noms de fichiers devraient toujours être représentés sous " +"forme de chaînes de caractères, cependant les représenter sous forme d'objet " +"*bytes* est aussi accepté. Les fonctions acceptant ou renvoyant des noms de " +"fichiers devraient supporter les deux (*str* ou *bytes*), et convertir en " +"interne dans la représentation du système." + +#: ../Doc/library/sys.rst:506 +msgid "This encoding is always ASCII-compatible." +msgstr "Cet encodage est toujours compatible avec ASCII." + +#: ../Doc/library/sys.rst:508 ../Doc/library/sys.rst:537 +msgid "" +":func:`os.fsencode` and :func:`os.fsdecode` should be used to ensure that " +"the correct encoding and errors mode are used." +msgstr "" +"Les fonctions :func:`os.fsencode` et :func:`os.fsdecode` devraient être " +"utilisées pour s'assurer qu'un encodage et un gestionnaire d'erreurs correct " +"sont utilisés." + +#: ../Doc/library/sys.rst:511 +msgid "In the UTF-8 mode, the encoding is ``utf-8`` on any platform." +msgstr "" +"Dans le mode UTF-8, l'encodage est ``'utf-8'`` sur toutes les plate-formes." + +#: ../Doc/library/sys.rst:513 +msgid "On Mac OS X, the encoding is ``'utf-8'``." +msgstr "Sur Mac OS X, l'encodage est ``'utf-8'``." + +#: ../Doc/library/sys.rst:515 +msgid "On Unix, the encoding is the locale encoding." +msgstr "Sur Unix, l'encodage est celui des paramètres régionaux." + +#: ../Doc/library/sys.rst:517 +msgid "" +"On Windows, the encoding may be ``'utf-8'`` or ``'mbcs'``, depending on user " +"configuration." +msgstr "" +"Sur Windows, l'encodage peut être ``'utf-8'`` ou ``'mbcs'``, en fonction des " +"paramètres de l'utilisateur." + +#: ../Doc/library/sys.rst:520 +msgid ":func:`getfilesystemencoding` result cannot be ``None`` anymore." +msgstr ":func:`getfilesystemencoding` ne peut plus renvoyer ``None``." + +#: ../Doc/library/sys.rst:523 +msgid "" +"Windows is no longer guaranteed to return ``'mbcs'``. See :pep:`529` and :" +"func:`_enablelegacywindowsfsencoding` for more information." +msgstr "" +"Sur Windows, on est plus assurés d'obtenir ``'mbcs'``. Voir la :pep:`529` " +"et :func:`_enablelegacywindowsfsencoding` pour plus d'informations." + +#: ../Doc/library/sys.rst:527 +msgid "Return 'utf-8' in the UTF-8 mode." +msgstr "Renvoie `\"utf-8\"` en mode UTF-8." + +#: ../Doc/library/sys.rst:533 +msgid "" +"Return the name of the error mode used to convert between Unicode filenames " +"and bytes filenames. The encoding name is returned from :func:" +"`getfilesystemencoding`." +msgstr "" +"Donne le nom du mode de gestion d'erreur utilisé lors de la conversion des " +"noms de fichiers entre Unicode et octets. Le nom de l'encodage est renvoyé " +"par :func:`getfilesystemencoding`." + +#: ../Doc/library/sys.rst:544 +msgid "" +"Return the reference count of the *object*. The count returned is generally " +"one higher than you might expect, because it includes the (temporary) " +"reference as an argument to :func:`getrefcount`." +msgstr "" +"Donne le nombre de référence de l'objet *object*. Le nombre renvoyé est " +"généralement d'une référence de plus qu'attendu, puisqu'il compte la " +"référence (temporaire) de l'argument à :func:`getrefcount`." + +#: ../Doc/library/sys.rst:551 +msgid "" +"Return the current value of the recursion limit, the maximum depth of the " +"Python interpreter stack. This limit prevents infinite recursion from " +"causing an overflow of the C stack and crashing Python. It can be set by :" +"func:`setrecursionlimit`." +msgstr "" +"Donne la limite actuelle de la limite de récursion, la profondeur maximum de " +"la pile de l'interpréteur. Cette limite empêche Python de planter lors " +"d'une récursion infinie à cause d'un débordement de la pile. Elle peut être " +"modifiée par :func:`setrecursionlimit`." + +#: ../Doc/library/sys.rst:559 +msgid "" +"Return the size of an object in bytes. The object can be any type of object. " +"All built-in objects will return correct results, but this does not have to " +"hold true for third-party extensions as it is implementation specific." +msgstr "" +"Donne la taille d'un objet en octets. L'objet peut être de n'importe quel " +"type. Le résultat sera correct pour tous les objets natifs, mais le résultat " +"peut ne pas être toujours vrai pour les extensions, la valeur étant " +"dépendante de l'implémentation." + +#: ../Doc/library/sys.rst:564 +msgid "" +"Only the memory consumption directly attributed to the object is accounted " +"for, not the memory consumption of objects it refers to." +msgstr "" +"Seule la mémoire directement attribuée à l'objet est prise en compte, pas la " +"mémoire consommée par les objets vers lesquels il a des références." + +#: ../Doc/library/sys.rst:567 +msgid "" +"If given, *default* will be returned if the object does not provide means to " +"retrieve the size. Otherwise a :exc:`TypeError` will be raised." +msgstr "" +"S'il est fourni, *default* sera renvoyé si l'objet ne fournit aucun moyen de " +"récupérer sa taille. Sinon, une exception :exc:`TypeError` sera levée." + +#: ../Doc/library/sys.rst:570 +msgid "" +":func:`getsizeof` calls the object's ``__sizeof__`` method and adds an " +"additional garbage collector overhead if the object is managed by the " +"garbage collector." +msgstr "" +":func:`getsizeof` appelle la méthode ``__sizeof__`` de l'objet, et s'il est " +"géré par lui, ajoute le surcoût du ramasse-miettes." + +#: ../Doc/library/sys.rst:574 +msgid "" +"See `recursive sizeof recipe `_ " +"for an example of using :func:`getsizeof` recursively to find the size of " +"containers and all their contents." +msgstr "" +"Voir la `recursive sizeof recipe `_ pour un exemple d'utilisation récursive de :func:" +"`getsizeof` pour trouver la taille d'un contenant et de son contenu." + +#: ../Doc/library/sys.rst:580 +msgid "" +"Return the interpreter's \"thread switch interval\"; see :func:" +"`setswitchinterval`." +msgstr "" +"Renvoie la valeur du *thread switch interval* de l'interpréteur, voir :func:" +"`setswitchinterval`." + +#: ../Doc/library/sys.rst:588 +msgid "" +"Return a frame object from the call stack. If optional integer *depth* is " +"given, return the frame object that many calls below the top of the stack. " +"If that is deeper than the call stack, :exc:`ValueError` is raised. The " +"default for *depth* is zero, returning the frame at the top of the call " +"stack." +msgstr "" +"Renvoie une *frame* de la pile d'appels. Si le nombre entier optionnel " +"*depth* est donné, la *frame* donnée sera de *depth* appels depuis le haut " +"de la pile. Si c'est plus profond que la hauteur de la pile, une exception :" +"exc:`ValueError` est levée. La profondeur par défaut est zéro, donnant ainsi " +"la *frame* du dessus de la pile." + +#: ../Doc/library/sys.rst:595 +msgid "" +"This function should be used for internal and specialized purposes only. It " +"is not guaranteed to exist in all implementations of Python." +msgstr "" +"Cette fonction ne devrait être utilisée que pour une utilisation interne et " +"spécifique. Il n'est pas garanti qu'elle existe dans toutes les " +"implémentations de Python." + +#: ../Doc/library/sys.rst:605 +msgid "Get the profiler function as set by :func:`setprofile`." +msgstr "" +"Renvoie la fonction de profilage tel que défini par :func:`setprofile`." + +#: ../Doc/library/sys.rst:614 +msgid "Get the trace function as set by :func:`settrace`." +msgstr "Renvoie la fonction de traçage tel que définie par :func:`settrace`." + +#: ../Doc/library/sys.rst:618 +msgid "" +"The :func:`gettrace` function is intended only for implementing debuggers, " +"profilers, coverage tools and the like. Its behavior is part of the " +"implementation platform, rather than part of the language definition, and " +"thus may not be available in all Python implementations." +msgstr "" +"La fonction :func:`gettrace` ne sert que pour implémenter des débogueurs, " +"des *profilers*, outils d'analyse de couverture, etc…. Son comportement " +"dépend de l'implémentation et non du langage, elle n'est donc pas forcément " +"disponible dans toutes les implémentations de Python." + +#: ../Doc/library/sys.rst:626 +msgid "" +"Return a named tuple describing the Windows version currently running. The " +"named elements are *major*, *minor*, *build*, *platform*, *service_pack*, " +"*service_pack_minor*, *service_pack_major*, *suite_mask*, *product_type* and " +"*platform_version*. *service_pack* contains a string, *platform_version* a 3-" +"tuple and all other values are integers. The components can also be accessed " +"by name, so ``sys.getwindowsversion()[0]`` is equivalent to ``sys." +"getwindowsversion().major``. For compatibility with prior versions, only the " +"first 5 elements are retrievable by indexing." +msgstr "" +"Renvoie un tuple nommé décrivant la version de Windows en cours " +"d'exécution.\n" +"Les attributs nommés sont *major*, *minor*, *build*, *platform*,\n" +"*service_pack*, *service_pack_minor*, *service_pack_major*,\n" +"*suite_mask*, *product_type* et *platform_version*. *service_pack*\n" +"contient une string, *platform_version* un *tuple* de trois valeurs, et tous " +"les autres sont des nombres entiers. Ces attributs sont également " +"accessibles par leur nom, donc ``sys.getwindowsversion()[0]`` est équivalent " +"à ``sys.getwindowsversion().major``. Pour des raisons de compatibilité avec " +"les versions antérieures, seuls les 5 premiers éléments sont accessibles par " +"leur indice." + +#: ../Doc/library/sys.rst:637 +msgid "*platform* will be :const:`2 (VER_PLATFORM_WIN32_NT)`." +msgstr "*platform* sera :const:`2 (VER_PLATFORM_WIN32_NT)`." + +#: ../Doc/library/sys.rst:639 +msgid "*product_type* may be one of the following values:" +msgstr "*product_type* peut être une des valeurs suivantes :" + +#: ../Doc/library/sys.rst:642 +msgid "Constant" +msgstr "Constante" + +#: ../Doc/library/sys.rst:642 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/sys.rst:644 +msgid ":const:`1 (VER_NT_WORKSTATION)`" +msgstr ":const:`1 (VER_NT_WORKSTATION)`" + +#: ../Doc/library/sys.rst:644 +msgid "The system is a workstation." +msgstr "Le système une station de travail." + +#: ../Doc/library/sys.rst:646 +msgid ":const:`2 (VER_NT_DOMAIN_CONTROLLER)`" +msgstr ":const:`2 (VER_NT_DOMAIN_CONTROLLER)`" + +#: ../Doc/library/sys.rst:646 +msgid "The system is a domain controller." +msgstr "Le système est un contrôleur de domaine." + +#: ../Doc/library/sys.rst:649 +msgid ":const:`3 (VER_NT_SERVER)`" +msgstr ":const:`3 (VER_NT_SERVER)`" + +#: ../Doc/library/sys.rst:649 +msgid "The system is a server, but not a domain controller." +msgstr "Le système est un serveur, mais pas un contrôleur de domaine." + +#: ../Doc/library/sys.rst:653 +msgid "" +"This function wraps the Win32 :c:func:`GetVersionEx` function; see the " +"Microsoft documentation on :c:func:`OSVERSIONINFOEX` for more information " +"about these fields." +msgstr "" +"Cette fonction enveloppe la fonction Win32 :c:func:`GetVersionEx`. Voir la " +"documentation\n" +"de Microsoft sur :c:func:`OSVERSIONINFOEX` pour plus d'informations sur ces " +"champs." + +#: ../Doc/library/sys.rst:657 +msgid "" +"*platform_version* returns the accurate major version, minor version and " +"build number of the current operating system, rather than the version that " +"is being emulated for the process. It is intended for use in logging rather " +"than for feature detection." +msgstr "" +"*platform_version* donne précisément la version majeure, mineure, et numéro " +"de compilation du système d'exploitation sous-jacent, plutôt que la version " +"émulée pour ce processus. Il est destiné à être utilisé pour de la " +"journalisation plutôt que pour la détection de fonctionnalités." + +#: ../Doc/library/sys.rst:664 +msgid "" +"Changed to a named tuple and added *service_pack_minor*, " +"*service_pack_major*, *suite_mask*, and *product_type*." +msgstr "" +"Changé en un *tuple* nommé, et ajout de *service_pack_minor*, " +"*service_pack_major*, *suite_mask*, et *product_type*." + +#: ../Doc/library/sys.rst:668 +msgid "Added *platform_version*" +msgstr "Ajout de *platform_version*" + +#: ../Doc/library/sys.rst:674 +msgid "" +"Returns an *asyncgen_hooks* object, which is similar to a :class:" +"`~collections.namedtuple` of the form `(firstiter, finalizer)`, where " +"*firstiter* and *finalizer* are expected to be either ``None`` or functions " +"which take an :term:`asynchronous generator iterator` as an argument, and " +"are used to schedule finalization of an asynchronous generator by an event " +"loop." +msgstr "" +"Renvoie un objet *asyncgen_hooks*, qui est semblable à un :class:" +"`~collections.namedtuple` de la forme `(firstiter, finalizer)`, où " +"*firstiter* et *finalizer* sont soit ``None`` ou des fonctions qui prennent " +"un :term:`asynchronous generator iterator` comme argument, et sont utilisées " +"pour planifier la finalisation d'un générateur asynchrone par un *event " +"loop*." + +#: ../Doc/library/sys.rst:681 +msgid "See :pep:`525` for more details." +msgstr "Voir la :pep:`525` pour plus d'informations." + +#: ../Doc/library/sys.rst:685 ../Doc/library/sys.rst:1260 +msgid "" +"This function has been added on a provisional basis (see :pep:`411` for " +"details.)" +msgstr "" +"Cette fonction à été ajoutée à titre provisoire (voir la :pep:`411` pour " +"plus d'informations.)" + +#: ../Doc/library/sys.rst:691 +msgid "" +"Get the current coroutine origin tracking depth, as set by :func:" +"`set_coroutine_origin_tracking_depth`." +msgstr "" +"Récupère le nombre de cadres d'exécution conservés par les coroutines pour " +"le suivi de leur création, telle que défini par :func:" +"`set_coroutine_origin_tracking_depth`." + +#: ../Doc/library/sys.rst:697 ../Doc/library/sys.rst:709 +#: ../Doc/library/sys.rst:1281 ../Doc/library/sys.rst:1320 +msgid "" +"This function has been added on a provisional basis (see :pep:`411` for " +"details.) Use it only for debugging purposes." +msgstr "" +"Cette fonction à été ajoutée à titre provisoire (Voir la :pep:`411` pour " +"plus d'informations.) Utilisez la uniquement à des fins de débogage." + +#: ../Doc/library/sys.rst:703 +msgid "Returns ``None``, or a wrapper set by :func:`set_coroutine_wrapper`." +msgstr "" +"Renvoie ``None``, ou un *wrapper* donné via :func:`set_coroutine_wrapper`." + +#: ../Doc/library/sys.rst:705 ../Doc/library/sys.rst:1316 +msgid "See :pep:`492` for more details." +msgstr "Voir la :pep:`492` pour plus d'informations." + +#: ../Doc/library/sys.rst:712 ../Doc/library/sys.rst:1323 +msgid "" +"The coroutine wrapper functionality has been deprecated, and will be removed " +"in 3.8. See :issue:`32591` for details." +msgstr "" +"La fonctionnalité *wrapper* de coroutine est obsolète et sera supprimée dans " +"3.8. Voir :issue:`32591` pour plus de détails." + +#: ../Doc/library/sys.rst:719 +msgid "" +"A :term:`struct sequence` giving parameters of the numeric hash " +"implementation. For more details about hashing of numeric types, see :ref:" +"`numeric-hash`." +msgstr "" +"Une :term:`struct sequence` donnant les paramètres de l'implémentation de la " +"fonction de hachage de nombres. Pour plus d'informations sur le hachage des " +"types numériques, consultez :ref:`numeric-hash`." + +#: ../Doc/library/sys.rst:726 +msgid ":const:`width`" +msgstr ":const:`width`" + +#: ../Doc/library/sys.rst:726 +msgid "width in bits used for hash values" +msgstr "Nombre de bits des valeurs de *hash*" + +#: ../Doc/library/sys.rst:728 +msgid ":const:`modulus`" +msgstr ":const:`modulus`" + +#: ../Doc/library/sys.rst:728 +msgid "prime modulus P used for numeric hash scheme" +msgstr "" +"contient le premier P utilisé dans le modulo pour les *hash* numériques" + +#: ../Doc/library/sys.rst:730 +msgid ":const:`inf`" +msgstr ":const:`inf`" + +#: ../Doc/library/sys.rst:730 +msgid "hash value returned for a positive infinity" +msgstr "valeur du *hash* pour un infini positif" + +#: ../Doc/library/sys.rst:732 +msgid ":const:`nan`" +msgstr ":const:`nan`" + +#: ../Doc/library/sys.rst:732 +msgid "hash value returned for a nan" +msgstr "valeur du *hash* pour un *nan*" + +#: ../Doc/library/sys.rst:734 +msgid ":const:`imag`" +msgstr ":const:`imag`" + +#: ../Doc/library/sys.rst:734 +msgid "multiplier used for the imaginary part of a complex number" +msgstr "multiplicateur utilisé pour la partie imaginaire d'un nombre complexe" + +#: ../Doc/library/sys.rst:737 +msgid ":const:`algorithm`" +msgstr ":const:`algorithm`" + +#: ../Doc/library/sys.rst:737 +msgid "name of the algorithm for hashing of str, bytes, and memoryview" +msgstr "" +"nom de l'algorithme pour le hachage des *str*, *bytes*, et *memoryview*" + +#: ../Doc/library/sys.rst:740 +msgid ":const:`hash_bits`" +msgstr ":const:`hash_bits`" + +#: ../Doc/library/sys.rst:740 +msgid "internal output size of the hash algorithm" +msgstr "taille de la sortie interne de l'algorithme de hachage" + +#: ../Doc/library/sys.rst:742 +msgid ":const:`seed_bits`" +msgstr ":const:`seed_bits`" + +#: ../Doc/library/sys.rst:742 +msgid "size of the seed key of the hash algorithm" +msgstr "taille de la *seed key* utilisée par l'algorithme de hachage" + +#: ../Doc/library/sys.rst:748 +msgid "Added *algorithm*, *hash_bits* and *seed_bits*" +msgstr "Ajout de *algorithm*, *hash_bits* et *seed_bits*" + +#: ../Doc/library/sys.rst:754 +msgid "" +"The version number encoded as a single integer. This is guaranteed to " +"increase with each version, including proper support for non-production " +"releases. For example, to test that the Python interpreter is at least " +"version 1.5.2, use::" +msgstr "" +"Le numéro de version codé sous forme d'un seul nombre entier. Ce numéro " +"augmente avec chaque version, y compris pour les versions hors production. " +"Par exemple, pour vérifier que l'interpréteur Python est au moins la version " +"1.5, utilisez ::" + +#: ../Doc/library/sys.rst:765 +msgid "" +"This is called ``hexversion`` since it only really looks meaningful when " +"viewed as the result of passing it to the built-in :func:`hex` function. " +"The :term:`struct sequence` :data:`sys.version_info` may be used for a more " +"human-friendly encoding of the same information." +msgstr "" +"Cet attribut s'appelle ``hexversion`` dans le sens où il ne semble avoir du " +"sens que s'il est regardé après avoir été passé à la fonction native :func:" +"`hex`. La :term:`struct sequence` :data:`sys.version_info` représente la " +"même information d'une manière plus humaine." + +#: ../Doc/library/sys.rst:770 +msgid "More details of ``hexversion`` can be found at :ref:`apiabiversion`." +msgstr "" +"Consultez :ref:`apiabiversion` pour plus d'informations sur ``hexversion``." + +#: ../Doc/library/sys.rst:775 +msgid "" +"An object containing information about the implementation of the currently " +"running Python interpreter. The following attributes are required to exist " +"in all Python implementations." +msgstr "" +"Un objet contenant des informations sur l'implémentation de la version " +"actuelle de l'interpréteur Python. Les attributs suivants existent " +"obligatoirement sur toutes les implémentations Python." + +#: ../Doc/library/sys.rst:779 +msgid "" +"*name* is the implementation's identifier, e.g. ``'cpython'``. The actual " +"string is defined by the Python implementation, but it is guaranteed to be " +"lower case." +msgstr "" +"*name* est l'identifiant de l'implémentation, e.g. ``'cpython'``. Cette " +"chaîne est définie par l'implémentation de Python, mais sera toujours en " +"minuscule." + +#: ../Doc/library/sys.rst:783 +msgid "" +"*version* is a named tuple, in the same format as :data:`sys.version_info`. " +"It represents the version of the Python *implementation*. This has a " +"distinct meaning from the specific version of the Python *language* to which " +"the currently running interpreter conforms, which ``sys.version_info`` " +"represents. For example, for PyPy 1.8 ``sys.implementation.version`` might " +"be ``sys.version_info(1, 8, 0, 'final', 0)``, whereas ``sys.version_info`` " +"would be ``sys.version_info(2, 7, 2, 'final', 0)``. For CPython they are " +"the same value, since it is the reference implementation." +msgstr "" +"*version* est un *named tuple*, du même format que :data:`sys." +"version_info`. Il représente la version de l'**implementation** de Python. " +"C'est une information différente de la version du **langage** auquel " +"l'interpréteur actuel se conforme (donnée par ``sys.version_info``). Par " +"exemple, pour PyPy 1.8 ``sys.implementation.version`` peut valoir ``sys." +"version_info(1, 8, 0, 'final', 0)``, alors que ``sys.version_info`` peut " +"valoir ``sys.version_info(2, 7, 2, 'final', 0)``. Pour CPython ces deux " +"valeurs sont identiques puisque c'est l'implémentation de référence." + +#: ../Doc/library/sys.rst:793 +msgid "" +"*hexversion* is the implementation version in hexadecimal format, like :data:" +"`sys.hexversion`." +msgstr "" +"*hexversion* est la version de l'implémentation sous forme hexadécimale, " +"comme :data:`sys.hexversion`." + +#: ../Doc/library/sys.rst:796 +msgid "" +"*cache_tag* is the tag used by the import machinery in the filenames of " +"cached modules. By convention, it would be a composite of the " +"implementation's name and version, like ``'cpython-33'``. However, a Python " +"implementation may use some other value if appropriate. If ``cache_tag`` is " +"set to ``None``, it indicates that module caching should be disabled." +msgstr "" +"*cache_tag* est la balise utilisée par le mécanisme d'importation dans les " +"noms de fichiers des modules mis en cache. Par convention, il devrait se " +"composer du nom et de la version de l'implémentation, comme " +"```cpython-33'`. Cependant, une implémentation Python peut utiliser une " +"autre valeur si nécessaire. ``cache_tag`` à ``None`` signifie que la mise " +"en cache des modules doit être désactivée." + +#: ../Doc/library/sys.rst:803 +msgid "" +":data:`sys.implementation` may contain additional attributes specific to the " +"Python implementation. These non-standard attributes must start with an " +"underscore, and are not described here. Regardless of its contents, :data:" +"`sys.implementation` will not change during a run of the interpreter, nor " +"between implementation versions. (It may change between Python language " +"versions, however.) See :pep:`421` for more information." +msgstr "" +":data:`sys.implementation` peut contenir d'autres attributs spécifiques à " +"l'implémentation de Python. Ces attributs spécifiques doivent commencer par " +"un *underscore*, et ne sont pas documentés ici. Indépendamment de son " +"contenu, :data:`sys.implementation` ne change jamais durant l'exécution de " +"l'interpréteur, ni entre les versions d'une même implémentation. (Il peut " +"cependant changer entre les versions du langage Python.) Voir la :pep:`421` " +"pour plus d'informations." + +#: ../Doc/library/sys.rst:815 +msgid "" +"A :term:`struct sequence` that holds information about Python's internal " +"representation of integers. The attributes are read only." +msgstr "" +"Un :term:`struct sequence` qui contient des informations sur la " +"représentation interne des entiers de Python. Les attributs sont en lecture " +"seule." + +#: ../Doc/library/sys.rst:821 ../Doc/library/sys.rst:1427 +msgid "Attribute" +msgstr "Attribut" + +#: ../Doc/library/sys.rst:821 ../Doc/library/sys.rst:1427 +msgid "Explanation" +msgstr "Explication" + +#: ../Doc/library/sys.rst:823 +msgid ":const:`bits_per_digit`" +msgstr ":const:`bits_per_digit`" + +#: ../Doc/library/sys.rst:823 +msgid "" +"number of bits held in each digit. Python integers are stored internally in " +"base ``2**int_info.bits_per_digit``" +msgstr "" +"nombre de bits utilisés pour chaque chiffre. Les entiers Python sont " +"stockés en interne en base ``2**int_info.bits_per_digit``" + +#: ../Doc/library/sys.rst:827 +msgid ":const:`sizeof_digit`" +msgstr ":const:`sizeof_digit`" + +#: ../Doc/library/sys.rst:827 +msgid "size in bytes of the C type used to represent a digit" +msgstr "taille en octets du type C utilisé pour représenter un chiffre" + +#: ../Doc/library/sys.rst:836 +msgid "" +"When this attribute exists, its value is automatically called (with no " +"arguments) when the interpreter is launched in :ref:`interactive mode `. This is done after the :envvar:`PYTHONSTARTUP` file is read, " +"so that you can set this hook there. The :mod:`site` module :ref:`sets this " +"`." +msgstr "" +"Lorsque cet attribut existe, sa valeur est automatiquement appelée (sans " +"argument) par l'interpréteur lors de son démarrage en :ref:`mode interactif " +"`. L'appel se fait après que le fichier :envvar:" +"`PYTHONSTARTUP` soit lu, afin que vous puissiez y configurer votre " +"fonction. :ref:`Configuré ` par le module :mod:`site`." + +#: ../Doc/library/sys.rst:847 +msgid "" +"Enter *string* in the table of \"interned\" strings and return the interned " +"string -- which is *string* itself or a copy. Interning strings is useful to " +"gain a little performance on dictionary lookup -- if the keys in a " +"dictionary are interned, and the lookup key is interned, the key comparisons " +"(after hashing) can be done by a pointer compare instead of a string " +"compare. Normally, the names used in Python programs are automatically " +"interned, and the dictionaries used to hold module, class or instance " +"attributes have interned keys." +msgstr "" +"Ajoute *string* dans le tableau des chaînes \"internées\" et renvoie la " +"chaîne internée -- qui peut être *string* elle-même ou une copie. Interner " +"une chaîne de caractères permet de gagner un peu de performance lors de " +"l'accès aux dictionnaires -- si les clés du dictionnaire et la clé " +"recherchée sont internées, les comparaisons de clés (après le hachage) " +"pourront se faire en comparant les pointeurs plutôt que caractère par " +"caractère. Normalement, les noms utilisés dans les programmes Python sont " +"automatiquement internés, et les dictionnaires utilisés pour stocker les " +"attributs de modules, de classes, ou d'instances ont aussi leurs clés " +"internées." + +#: ../Doc/library/sys.rst:855 +msgid "" +"Interned strings are not immortal; you must keep a reference to the return " +"value of :func:`intern` around to benefit from it." +msgstr "" +"Les chaînes internées ne sont pas immortelles ; vous devez garder une " +"référence à la valeur renvoyée par :func:`intern` pour en bénéficier." + +#: ../Doc/library/sys.rst:861 +msgid "" +"Return :const:`True` if the Python interpreter is :term:`shutting down " +"`, :const:`False` otherwise." +msgstr "" +"Donne :const:`True` si l'interpréteur Python est :term:`en train de " +"s'arrêter `, et :const:`False` dans le cas contraire." + +#: ../Doc/library/sys.rst:871 +msgid "" +"These three variables are not always defined; they are set when an exception " +"is not handled and the interpreter prints an error message and a stack " +"traceback. Their intended use is to allow an interactive user to import a " +"debugger module and engage in post-mortem debugging without having to re-" +"execute the command that caused the error. (Typical use is ``import pdb; " +"pdb.pm()`` to enter the post-mortem debugger; see :mod:`pdb` module for more " +"information.)" +msgstr "" +"Ces trois variables ne sont pas toujours définies. Elles sont définies " +"lorsqu'une exception n'est pas gérée et que l'interpréteur affiche un " +"message d'erreur et une *stacktrace*. Elles sont là pour permettre à un " +"utilisateur, en mode interactif, d'importer un module de débogage et de " +"faire son débogage post-mortem sans avoir à ré-exécuter la commande qui a " +"causé l'erreur. (L'utilisation typique pour entrer dans le débogueur post-" +"mortem est ``import pdb; pdb.pm()``, voir :mod:`pdb` pour plus " +"d'informations.)." + +#: ../Doc/library/sys.rst:879 +msgid "" +"The meaning of the variables is the same as that of the return values from :" +"func:`exc_info` above." +msgstr "" +"La signification de ces variables est la même que celle des valeurs " +"renvoyées par :func:`exc_info` ci-dessus." + +#: ../Doc/library/sys.rst:885 +msgid "" +"An integer giving the maximum value a variable of type :c:type:`Py_ssize_t` " +"can take. It's usually ``2**31 - 1`` on a 32-bit platform and ``2**63 - 1`` " +"on a 64-bit platform." +msgstr "" +"Un entier donnant à la valeur maximale qu'une variable de type :c:type:" +"`Py_ssize_t` peut prendre. C'est typiquement ``2**31 - 1`` sur une " +"plateforme 32 bits et ``2**63 - 1``` sur une plateforme 64 bits." + +#: ../Doc/library/sys.rst:892 +msgid "" +"An integer giving the value of the largest Unicode code point, i.e. " +"``1114111`` (``0x10FFFF`` in hexadecimal)." +msgstr "" +"Un entier donnant la valeur du plus grand point de code Unicode, c'est-à-" +"dire ``1114111`` (```0x10FFFF`` en hexadécimal)." + +#: ../Doc/library/sys.rst:895 +msgid "" +"Before :pep:`393`, ``sys.maxunicode`` used to be either ``0xFFFF`` or " +"``0x10FFFF``, depending on the configuration option that specified whether " +"Unicode characters were stored as UCS-2 or UCS-4." +msgstr "" +"Avant la :pep:`393`, ``sys.maxunicode`` valait soit ``0xFFFF`` soit " +"``0x10FFFF``, en fonction l'option de configuration qui spécifiait si les " +"caractères Unicode étaient stockés en UCS-2 ou UCS-4." + +#: ../Doc/library/sys.rst:903 +msgid "" +"A list of :term:`meta path finder` objects that have their :meth:`~importlib." +"abc.MetaPathFinder.find_spec` methods called to see if one of the objects " +"can find the module to be imported. The :meth:`~importlib.abc.MetaPathFinder." +"find_spec` method is called with at least the absolute name of the module " +"being imported. If the module to be imported is contained in a package, then " +"the parent package's :attr:`__path__` attribute is passed in as a second " +"argument. The method returns a :term:`module spec`, or ``None`` if the " +"module cannot be found." +msgstr "" +"Une liste d'objets :term:`meta path finder` qui ont leur méthode :meth:" +"`~importlib.abc.MetaPathFinder.find_spec` appelée pour voir si un des objets " +"peut trouver le module à importer. La méthode :meth:`~importlib.abc." +"MetaPathFinder.find_spec` est appelée avec au moins le nom absolu du module " +"importé. Si le module à importer est contenu dans un paquet, l'attribut :" +"attr:`__path__` du paquet parent est donné en deuxième argument. La méthode " +"renvoie un :term:`module spec`, ou ``None`` si le module ne peut être trouvé." + +#: ../Doc/library/sys.rst:915 +msgid ":class:`importlib.abc.MetaPathFinder`" +msgstr ":class:`importlib.abc.MetaPathFinder`" + +#: ../Doc/library/sys.rst:915 +msgid "" +"The abstract base class defining the interface of finder objects on :data:" +"`meta_path`." +msgstr "" +"La classe de base abstraite définissant l'interface des objets *finder* de :" +"data:`meta_path`." + +#: ../Doc/library/sys.rst:919 +msgid ":class:`importlib.machinery.ModuleSpec`" +msgstr ":class:`importlib.machinery.ModuleSpec`" + +#: ../Doc/library/sys.rst:918 +msgid "" +"The concrete class which :meth:`~importlib.abc.MetaPathFinder.find_spec` " +"should return instances of." +msgstr "" +"La classe concrète dont :meth:`~importlib.abc.MetaPathFinder.find_spec` " +"devrait renvoyer des instances." + +#: ../Doc/library/sys.rst:924 +msgid "" +":term:`Module specs ` were introduced in Python 3.4, by :pep:" +"`451`. Earlier versions of Python looked for a method called :meth:" +"`~importlib.abc.MetaPathFinder.find_module`. This is still called as a " +"fallback if a :data:`meta_path` entry doesn't have a :meth:`~importlib.abc." +"MetaPathFinder.find_spec` method." +msgstr "" +"Les :term:`Module specs ` ont été introduits en Python 3.4, par " +"la :pep:`451`. Les versions antérieures de Python cherchaient une méthode " +"appelée :meth:`~importlib.abc.MetaPathFinder.find_module`. Celle-ci est " +"toujours appelée en dernier recours, dans le cas où une :data:`meta_path` " +"n'a pas de méthode :meth:`~importlib.abc.MetaPathFinder.find_spec`." + +#: ../Doc/library/sys.rst:932 +msgid "" +"This is a dictionary that maps module names to modules which have already " +"been loaded. This can be manipulated to force reloading of modules and " +"other tricks. However, replacing the dictionary will not necessarily work as " +"expected and deleting essential items from the dictionary may cause Python " +"to fail." +msgstr "" +"Un dictionnaire faisant correspondre des noms de modules à des modules déjà " +"chargés. Il peut être manipulé, entre autre, pour forcer un module à être " +"rechargé. Cependant, le remplacer ne fonctionnera pas forcément comme prévu " +"et en supprimer des éléments essentiels peut planter Python." + +#: ../Doc/library/sys.rst:942 +msgid "" +"A list of strings that specifies the search path for modules. Initialized " +"from the environment variable :envvar:`PYTHONPATH`, plus an installation-" +"dependent default." +msgstr "" +"Une liste de chaînes de caractères spécifiant les chemins de recherche des " +"modules, initialisée à partir de la variable d'environnement :envvar:" +"`PYTHONPATH` et d'une valeur par défaut dépendante de l'installation." + +#: ../Doc/library/sys.rst:946 +msgid "" +"As initialized upon program startup, the first item of this list, " +"``path[0]``, is the directory containing the script that was used to invoke " +"the Python interpreter. If the script directory is not available (e.g. if " +"the interpreter is invoked interactively or if the script is read from " +"standard input), ``path[0]`` is the empty string, which directs Python to " +"search modules in the current directory first. Notice that the script " +"directory is inserted *before* the entries inserted as a result of :envvar:" +"`PYTHONPATH`." +msgstr "" +"Puisqu'il est initialisé au démarrage du programme, le premier élément de " +"cette liste, ``path[0]``, est le dossier contenant le script qui a été " +"utilisé pour invoquer l'interpréteur Python. Si le dossier du script n'est " +"pas disponible (typiquement, si l'interpréteur est invoqué interactivement " +"ou si le script est lu à partir d'une entrée standard), ``path[0]`` sera une " +"chaîne vide, qui indiquera à Python de chercher des modules dans le dossier " +"actuel. Notez que le dossier du script est inséré *avant* les dossiers de :" +"envvar:`PYTHONPATH`." + +#: ../Doc/library/sys.rst:954 +msgid "" +"A program is free to modify this list for its own purposes. Only strings " +"and bytes should be added to :data:`sys.path`; all other data types are " +"ignored during import." +msgstr "" +"Un programme est libre de modifier cette liste pour ses propres besoins. " +"Seuls des *str* ou des *bytes* ne devraient être ajoutés à :data:`sys.path`, " +"tous les autres types de données étant ignorés durant l'importation." + +#: ../Doc/library/sys.rst:960 +msgid "" +"Module :mod:`site` This describes how to use .pth files to extend :data:`sys." +"path`." +msgstr "" +"Le module :mod:`site` décrit comment utiliser les fichiers *.pth* pour " +"étendre :data:`sys.path`." + +#: ../Doc/library/sys.rst:966 +msgid "" +"A list of callables that take a path argument to try to create a :term:" +"`finder` for the path. If a finder can be created, it is to be returned by " +"the callable, else raise :exc:`ImportError`." +msgstr "" +"Une liste d'appelables d'un argument, *path*, pour essayer de créer un :term:" +"`finder` pour ce chemin. Si un *finder* peut être créé, il doit être renvoyé " +"par l'appelable, sinon une :exc:`ImportError` doit être levée." + +#: ../Doc/library/sys.rst:970 ../Doc/library/sys.rst:981 +msgid "Originally specified in :pep:`302`." +msgstr "Précisé à l'origine dans la :pep:`302`." + +#: ../Doc/library/sys.rst:975 +msgid "" +"A dictionary acting as a cache for :term:`finder` objects. The keys are " +"paths that have been passed to :data:`sys.path_hooks` and the values are the " +"finders that are found. If a path is a valid file system path but no finder " +"is found on :data:`sys.path_hooks` then ``None`` is stored." +msgstr "" +"Un dictionnaire faisant office de cache pour les objets :term:`finder`. Les " +"clés sont les chemins qui ont été passés à :data:`sys.path_hooks` et les " +"valeurs sont les *finders* trouvés. Si un chemin est valide selon le système " +"de fichiers mais qu'aucun *finder* n'est trouvé dans :data:`sys.path_hooks`, " +"``None`` est stocké." + +#: ../Doc/library/sys.rst:983 +msgid "" +"``None`` is stored instead of :class:`imp.NullImporter` when no finder is " +"found." +msgstr "" +"``None`` est stocké à la place de :class:`imp.NullImporter` si aucun " +"localisateur n'est trouvé." + +#: ../Doc/library/sys.rst:990 +msgid "" +"This string contains a platform identifier that can be used to append " +"platform-specific components to :data:`sys.path`, for instance." +msgstr "" +"Cette chaîne contient un identificateur de plateforme qui peut être " +"typiquement utilisé pour ajouter des composants spécifiques à :data:`sys." +"path`." + +#: ../Doc/library/sys.rst:993 +msgid "" +"For Unix systems, except on Linux, this is the lowercased OS name as " +"returned by ``uname -s`` with the first part of the version as returned by " +"``uname -r`` appended, e.g. ``'sunos5'`` or ``'freebsd8'``, *at the time " +"when Python was built*. Unless you want to test for a specific system " +"version, it is therefore recommended to use the following idiom::" +msgstr "" +"Pour les systèmes Unix, sauf sur Linux, c'est le nom de l'OS en minuscules " +"comme renvoyé par ``uname -s`` suivi de la première partie de la version " +"comme renvoyée par ``uname -r``, e.g. ``'sunos5'`` ou ``'freebsd8'``, *au " +"moment où Python a été compilé*. A moins que vous ne souhaitiez tester pour " +"une version spécifique du système, vous pouvez faire comme suit : ::" + +#: ../Doc/library/sys.rst:1004 +msgid "For other systems, the values are:" +msgstr "Pour les autres systèmes, les valeurs sont :" + +#: ../Doc/library/sys.rst:1007 +msgid "System" +msgstr "Le système une station de travail." + +#: ../Doc/library/sys.rst:1007 +msgid "``platform`` value" +msgstr "Valeur pour ``plateforme``" + +#: ../Doc/library/sys.rst:1009 +msgid "Linux" +msgstr "Linux" + +#: ../Doc/library/sys.rst:1009 +msgid "``'linux'``" +msgstr "``'linux'``" + +#: ../Doc/library/sys.rst:1010 +msgid "Windows" +msgstr "Windows" + +#: ../Doc/library/sys.rst:1010 +msgid "``'win32'``" +msgstr "``'win32'``" + +#: ../Doc/library/sys.rst:1011 +msgid "Windows/Cygwin" +msgstr "Windows/Cygwin" + +#: ../Doc/library/sys.rst:1011 +msgid "``'cygwin'``" +msgstr "``'cygwin'``" + +#: ../Doc/library/sys.rst:1012 +msgid "Mac OS X" +msgstr "Mac OS X" + +#: ../Doc/library/sys.rst:1012 +msgid "``'darwin'``" +msgstr "``'darwin'``" + +#: ../Doc/library/sys.rst:1015 +msgid "" +"On Linux, :attr:`sys.platform` doesn't contain the major version anymore. It " +"is always ``'linux'``, instead of ``'linux2'`` or ``'linux3'``. Since older " +"Python versions include the version number, it is recommended to always use " +"the ``startswith`` idiom presented above." +msgstr "" +"Sur Linux, :attr:`sys.platform` ne contient plus la version majeure, c'est " +"toujours ``'linux'``, au lieu de ``'linux2'`` ou ``'linux3'``. Comme les " +"anciennes versions de Python incluent le numéro de version, il est " +"recommandé de toujours utiliser ``startswith``, tel qu'utilisé ci-dessus." + +#: ../Doc/library/sys.rst:1023 +msgid "" +":attr:`os.name` has a coarser granularity. :func:`os.uname` gives system-" +"dependent version information." +msgstr "" +":attr:`os.name` a une granularité plus grossière. :func:`os.uname` donne des " +"informations sur la version dépendantes du système." + +#: ../Doc/library/sys.rst:1026 +msgid "" +"The :mod:`platform` module provides detailed checks for the system's " +"identity." +msgstr "" +"Le module :mod:`platform` fournit des vérifications détaillées pour " +"l'identité du système." + +#: ../Doc/library/sys.rst:1032 +msgid "" +"A string giving the site-specific directory prefix where the platform " +"independent Python files are installed; by default, this is the string ``'/" +"usr/local'``. This can be set at build time with the ``--prefix`` argument " +"to the :program:`configure` script. The main collection of Python library " +"modules is installed in the directory :file:`{prefix}/lib/python{X.Y}` while " +"the platform independent header files (all except :file:`pyconfig.h`) are " +"stored in :file:`{prefix}/include/python{X.Y}`, where *X.Y* is the version " +"number of Python, for example ``3.2``." +msgstr "" +"Une chaîne donnant le préfixe de répertoire spécifique au site dans lequel " +"les fichiers Python indépendants de la plate-forme sont installés. Par " +"défaut, c'est ``'/usr/local'``. Ceci peut être défini à la compilation en " +"passant l'argument ``--prefix`` au script :program:`configure`. La " +"collection principale des modules de la bibliothèque Python est installée " +"dans le dossier :file:`{prefix}/lib/python{X.Y}` et les entêtes " +"indépendantes de la plateforme (toutes sauf :file:`pyconfig.h`) sont " +"stockées dans :file:`{prefix}/include/python{X.Y}`, où *X.Y* est le numéro " +"de version de Python, par exemple ``3.2``." + +#: ../Doc/library/sys.rst:1041 +msgid "" +"If a :ref:`virtual environment ` is in effect, this value will be " +"changed in ``site.py`` to point to the virtual environment. The value for " +"the Python installation will still be available, via :data:`base_prefix`." +msgstr "" +"Si a :ref:`environnement virtuel ` est activé, cette valeur sera " +"changée par ``site py`` pour pointer vers l'environnement virtuel. La valeur " +"donnée au moment de la compilation de Python sera toujours disponible, dans :" +"data:`base_prefix`." + +#: ../Doc/library/sys.rst:1056 +msgid "" +"Strings specifying the primary and secondary prompt of the interpreter. " +"These are only defined if the interpreter is in interactive mode. Their " +"initial values in this case are ``'>>> '`` and ``'... '``. If a non-string " +"object is assigned to either variable, its :func:`str` is re-evaluated each " +"time the interpreter prepares to read a new interactive command; this can be " +"used to implement a dynamic prompt." +msgstr "" +"Chaînes spécifiant l'invite primaire et secondaire de l'interpréteur. " +"Celles-ci ne sont définies que si l'interpréteur est en mode interactif. " +"Dans ce cas, leurs valeurs initiales sont ``'>>>'`` et ``'...'``. Si un " +"objet qui n'est pas une chaîne est assigné à l'une ou l'autre variable, sa " +"méthode :func:`str` sera appelée à chaque fois que l'interpréteur se prépare " +"à lire une nouvelle commande interactive, c'est donc utilisable pour " +"implémenter une invite dynamique." + +#: ../Doc/library/sys.rst:1066 +msgid "" +"Set the interpreter's \"check interval\". This integer value determines how " +"often the interpreter checks for periodic things such as thread switches and " +"signal handlers. The default is ``100``, meaning the check is performed " +"every 100 Python virtual instructions. Setting it to a larger value may " +"increase performance for programs using threads. Setting it to a value " +"``<=`` 0 checks every virtual instruction, maximizing responsiveness as well " +"as overhead." +msgstr "" +"Défini l'\"intervalle de vérification\" de l'interpréteur. Ce nombre entier " +"détermine la fréquence à laquelle l'interpréteur effectue des tâches " +"périodiques tels que la commutation de fil d'exécution et la gestion de " +"signaux. La valeur par défaut est ``100``, ce qui signifie que le contrôle " +"est effectué toutes les 100 instructions virtuelles Python. L'augmenter peut " +"améliorer les performances des programmes utilisant des fils d'exécution. " +"Le paramétrer à une valeur inférieure ou égale à zéro permet d'effectuer ces " +"tâches à chaque instruction virtuelle, maximisant ainsi la réactivité mais " +"aussi son surcoût." + +#: ../Doc/library/sys.rst:1073 +msgid "" +"This function doesn't have an effect anymore, as the internal logic for " +"thread switching and asynchronous tasks has been rewritten. Use :func:" +"`setswitchinterval` instead." +msgstr "" +"Cette fonction n'a plus aucun effet : La logique interne de commutation de " +"fils d'exécution et de gestion des tâches asynchrones ayant été réécrite. " +"Utilisez :func:`setswitchinterval` à la place." + +#: ../Doc/library/sys.rst:1081 +msgid "" +"Set the flags used by the interpreter for :c:func:`dlopen` calls, such as " +"when the interpreter loads extension modules. Among other things, this will " +"enable a lazy resolving of symbols when importing a module, if called as " +"``sys.setdlopenflags(0)``. To share symbols across extension modules, call " +"as ``sys.setdlopenflags(os.RTLD_GLOBAL)``. Symbolic names for the flag " +"values can be found in the :mod:`os` module (``RTLD_xxx`` constants, e.g. :" +"data:`os.RTLD_LAZY`)." +msgstr "" +"Définit les options utilisées par l'interpréteur lors des appels à :c:func:" +"`dlopen`, typiquement utilisé par l'interpréteur pour charger des modules " +"d'extension. Permet entre autre de résoudre tardivement les symboles lors " +"des importations de modules (si appelé ``sys.setdlopenflags(0)``). Pour " +"partager les symboles entre modules, appelez ``sys.setdlopenflags(os." +"RTLD_GLOBAL)``. Les noms pour les valeurs de ces options peuvent être " +"trouvés dans le module :mod:`os` (ce sont les constantes ``RTLD_xxx``, " +"comme :data:`os.RTLD_LAZY`)." + +#: ../Doc/library/sys.rst:1097 +msgid "" +"Set the system's profile function, which allows you to implement a Python " +"source code profiler in Python. See chapter :ref:`profile` for more " +"information on the Python profiler. The system's profile function is called " +"similarly to the system's trace function (see :func:`settrace`), but it is " +"called with different events, for example it isn't called for each executed " +"line of code (only on call and return, but the return event is reported even " +"when an exception has been set). The function is thread-specific, but there " +"is no way for the profiler to know about context switches between threads, " +"so it does not make sense to use this in the presence of multiple threads. " +"Also, its return value is not used, so it can simply return ``None``. Error " +"in the profile function will cause itself unset." +msgstr "" +"Définit la fonction de profilage du système, qui vous permet d'implémenter " +"un profileur de code source Python en Python. Voir le chapitre :ref:" +"`profile` pour plus d'informations sur le profileur Python. La fonction de " +"profilage du système est appelée de la même façon que la fonction trace du " +"système (voir :func:`settrace`), mais elle est appelée pour des évènements " +"différents, par exemple elle n'est pas appelée à chaque ligne de code " +"exécutée (seulement sur appel et retours, mais l'événement pour les retours " +"est appelé même en cas d'exception). Cette fonction est locale au fil " +"d'exécution, et il n'existe aucun moyen, du point de vue du profileur, de " +"prendre conscience des changements de contextes entre fils d'exécution, ça " +"n'a donc aucun sens d'utiliser cette fonction dans un contexte " +"*multithread*. Sa valeur de retour n'est pas utilisée, elle peut simplement " +"renvoyer ``None``." + +#: ../Doc/library/sys.rst:1108 +msgid "" +"Profile functions should have three arguments: *frame*, *event*, and *arg*. " +"*frame* is the current stack frame. *event* is a string: ``'call'``, " +"``'return'``, ``'c_call'``, ``'c_return'``, or ``'c_exception'``. *arg* " +"depends on the event type." +msgstr "" +"Les fonctions de traçage doivent avoir trois arguments : *frame*, " +"*event*, et *arg*. *frame* est la *stack frame* actuelle. *event* est une " +"chaîne de caractères pouvant valoir : ``'call'``, ``'return'``, " +"``'c_call'``, ``'c_return'`` ou ``'c_exception'``. *arg* dépend du type de " +"l'évènement." + +#: ../Doc/library/sys.rst:1113 ../Doc/library/sys.rst:1193 +msgid "The events have the following meaning:" +msgstr "Les événements ont la signification suivante :" + +#: ../Doc/library/sys.rst:1117 ../Doc/library/sys.rst:1198 +msgid "``'call'``" +msgstr "``'call'``" + +#: ../Doc/library/sys.rst:1116 +msgid "" +"A function is called (or some other code block entered). The profile " +"function is called; *arg* is ``None``." +msgstr "" +"Une fonction est appelée (ou Python entre dans un autre bloc de code). La " +"fonction de traçage est appelée, *arg* est ``None``." + +#: ../Doc/library/sys.rst:1122 ../Doc/library/sys.rst:1213 +msgid "``'return'``" +msgstr "``'return'``" + +#: ../Doc/library/sys.rst:1120 +msgid "" +"A function (or other code block) is about to return. The profile function " +"is called; *arg* is the value that will be returned, or ``None`` if the " +"event is caused by an exception being raised." +msgstr "" +"La fonction (ou un autre type de bloc) est sur le point de se terminer. La " +"fonction de traçage est appelée, *arg* est la valeur qui sera renvoyée, ou " +"``None`` si l'événement est causé par la levée d'une exception." + +#: ../Doc/library/sys.rst:1126 +msgid "``'c_call'``" +msgstr "``'c_call'``" + +#: ../Doc/library/sys.rst:1125 +msgid "" +"A C function is about to be called. This may be an extension function or a " +"built-in. *arg* is the C function object." +msgstr "" +"Une fonction C est sur le point d'être appelée. C'est soit une fonction " +"d'extension ou une fonction native. *arg* représente la fonction C." + +#: ../Doc/library/sys.rst:1129 +msgid "``'c_return'``" +msgstr "``'c_return'``" + +#: ../Doc/library/sys.rst:1129 +msgid "A C function has returned. *arg* is the C function object." +msgstr "Une fonction C a renvoyé une valeur. *arg* représente la fonction C." + +#: ../Doc/library/sys.rst:1131 +msgid "``'c_exception'``" +msgstr "``'c_exception'``" + +#: ../Doc/library/sys.rst:1132 +msgid "A C function has raised an exception. *arg* is the C function object." +msgstr "Une fonction C a levé une exception. *arg* représente la fonction C." + +#: ../Doc/library/sys.rst:1136 +msgid "" +"Set the maximum depth of the Python interpreter stack to *limit*. This " +"limit prevents infinite recursion from causing an overflow of the C stack " +"and crashing Python." +msgstr "" +"Définit la profondeur maximale de la pile de l'interpréteur Python à " +"*limit*. Cette limite empêche une récursion infinie de provoquer un " +"débordement de la pile C et ainsi un crash de Python." + +#: ../Doc/library/sys.rst:1140 +msgid "" +"The highest possible limit is platform-dependent. A user may need to set " +"the limit higher when they have a program that requires deep recursion and a " +"platform that supports a higher limit. This should be done with care, " +"because a too-high limit can lead to a crash." +msgstr "" +"La limite haute dépend de la plate-forme. Un utilisateur pourrait avoir " +"besoin de remonter la limite, lorsque son programme nécessite une récursion " +"profonde, si sa plate-forme le permet. Cela doit être fait avec précaution, " +"car une limite trop élevée peut conduire à un crash." + +#: ../Doc/library/sys.rst:1145 +msgid "" +"If the new limit is too low at the current recursion depth, a :exc:" +"`RecursionError` exception is raised." +msgstr "" +"Si la nouvelle limite est plus basse que la profondeur actuelle, une :exc:" +"`RecursionError` est levée." + +#: ../Doc/library/sys.rst:1148 +msgid "" +"A :exc:`RecursionError` exception is now raised if the new limit is too low " +"at the current recursion depth." +msgstr "" +"Une :exc:`RecursionError` est maintenant levée si la nouvelle limite est " +"plus basse que la profondeur de récursion actuelle." + +#: ../Doc/library/sys.rst:1155 +msgid "" +"Set the interpreter's thread switch interval (in seconds). This floating-" +"point value determines the ideal duration of the \"timeslices\" allocated to " +"concurrently running Python threads. Please note that the actual value can " +"be higher, especially if long-running internal functions or methods are " +"used. Also, which thread becomes scheduled at the end of the interval is " +"the operating system's decision. The interpreter doesn't have its own " +"scheduler." +msgstr "" +"Configure l'intervalle de bascule des fils d'exécution de l'interpréteur (en " +"secondes). Ce nombre à virgule flottante détermine la durée idéale allouée " +"aux fils d'exécution en cour d'exécution (durée appelée *timeslices*). Notez " +"que la durée observée peut être plus grande, typiquement si des fonctions ou " +"méthodes prenant beaucoup de temps sont utilisées. Aussi, le choix du fil " +"d'exécution prenant la main à la fin de l'intervalle revient au système " +"d'exploitation. L'interpréteur n'a pas son propre ordonnanceur." + +#: ../Doc/library/sys.rst:1172 +msgid "" +"Set the system's trace function, which allows you to implement a Python " +"source code debugger in Python. The function is thread-specific; for a " +"debugger to support multiple threads, it must register a trace function " +"using :func:`settrace` for each thread being debugged or use :func:" +"`threading.settrace`." +msgstr "" +"Définit la fonction de traçage du système, qui vous permet d'implémenter un " +"débogueur de code source Python en Python. Cette fonction est locale au fil " +"d'exécution courant. Pour qu'un débogueur puisse gérer plusieurs fils " +"d'exécution, il doit enregistrer sa fonction en appelant :func:`settrace` " +"pour chaque fil d'exécution qu'il souhaite surveiller ou utilisez :func:" +"`threading.settrace`." + +#: ../Doc/library/sys.rst:1177 +msgid "" +"Trace functions should have three arguments: *frame*, *event*, and *arg*. " +"*frame* is the current stack frame. *event* is a string: ``'call'``, " +"``'line'``, ``'return'``, ``'exception'`` or ``'opcode'``. *arg* depends on " +"the event type." +msgstr "" +"Les fonctions de traçage doivent avoir trois arguments : *frame*, " +"*event*, et *arg*. *frame* est la *stack frame* actuelle. *event* est une " +"chaîne de caractères pouvant valoir : ``'call'``, ``'line'``, ``'return'``, " +"``'exception'`` ou ``'opcode'``. *arg* dépend du type de l'évènement." + +#: ../Doc/library/sys.rst:1182 +msgid "" +"The trace function is invoked (with *event* set to ``'call'``) whenever a " +"new local scope is entered; it should return a reference to a local trace " +"function to be used that scope, or ``None`` if the scope shouldn't be traced." +msgstr "" +"La fonction de traçage est appelée (avec *event* à ``'call'``) à chaque fois " +"que l'interpréteur entre dans un nouveau *scope*. Elle doit renvoyer une " +"référence à une fonction de traçage locale à utiliser pour ce *scope*, ou " +"``None`` si le *Scope* ne doit pas être tracé." + +#: ../Doc/library/sys.rst:1186 +msgid "" +"The local trace function should return a reference to itself (or to another " +"function for further tracing in that scope), or ``None`` to turn off tracing " +"in that scope." +msgstr "" +"La fonction de traçage doit renvoyer une référence à elle-même (ou à une " +"autre fonction de traçage pour un traçage ultérieur dans cette portée), ou " +"``None`` pour désactiver le traçage dans cette portée." + +#: ../Doc/library/sys.rst:1190 +msgid "" +"If there is any error occurred in the trace function, it will be unset, just " +"like ``settrace(None)`` is called." +msgstr "" +"Si une erreur se produit dans la fonction de trace, elle sera désactivée, " +"tout comme si ``settrace(None)`` avait été appelée." + +#: ../Doc/library/sys.rst:1196 +msgid "" +"A function is called (or some other code block entered). The global trace " +"function is called; *arg* is ``None``; the return value specifies the local " +"trace function." +msgstr "" +"Une fonction est appelée (un un bloc de code). La fonction de traçage " +"globale est appelée, *arg* est ``None``, la valeur renvoyée donne la " +"fonction de traçage locale." + +#: ../Doc/library/sys.rst:1207 +msgid "``'line'``" +msgstr "``'line'``" + +#: ../Doc/library/sys.rst:1201 +msgid "" +"The interpreter is about to execute a new line of code or re-execute the " +"condition of a loop. The local trace function is called; *arg* is ``None``; " +"the return value specifies the new local trace function. See :file:`Objects/" +"lnotab_notes.txt` for a detailed explanation of how this works. Per-line " +"events may be disabled for a frame by setting :attr:`f_trace_lines` to :" +"const:`False` on that frame." +msgstr "" +"L'interpréteur est sur le point d'exécuter une nouvelle ligne de code ou de " +"ré-exécuter la condition d'une boucle. La fonction de traçage locale est " +"appelée, *arg* vaut ``None``, et la valeur de retour donne la nouvelle " +"fonction de traçage locale. Voir :file:`Objects/lnotab_notes.txt` pour une " +"explication détaillée de ce mécanisme. Les évènements par ligne peuvent être " +"désactivés pour un cadre d'exécution en mettant :attr:`f_trace_lines` à :" +"const:`False` pour ce cadre d'exécution." + +#: ../Doc/library/sys.rst:1210 +msgid "" +"A function (or other code block) is about to return. The local trace " +"function is called; *arg* is the value that will be returned, or ``None`` if " +"the event is caused by an exception being raised. The trace function's " +"return value is ignored." +msgstr "" +"La fonction (ou un autre type de bloc) est sur le point de se terminer. La " +"fonction de traçage locale est appelée, *arg* est la valeur qui sera " +"renvoyée, ou ``None`` si l'événement est causé par la levée d'une exception. " +"La valeur renvoyée par la fonction de traçage est ignorée." + +#: ../Doc/library/sys.rst:1218 +msgid "``'exception'``" +msgstr "``'exception'``" + +#: ../Doc/library/sys.rst:1216 +msgid "" +"An exception has occurred. The local trace function is called; *arg* is a " +"tuple ``(exception, value, traceback)``; the return value specifies the new " +"local trace function." +msgstr "" +"Une exception est survenue. La fonction de traçage locale est appelée, *arg* " +"est le *tuple* ``(exception, valeur, traceback)``, la valeur renvoyée " +"spécifie la nouvelle fonction de traçage locale." + +#: ../Doc/library/sys.rst:1226 +msgid "``'opcode'``" +msgstr "``'opcode'``" + +#: ../Doc/library/sys.rst:1221 +msgid "" +"The interpreter is about to execute a new opcode (see :mod:`dis` for opcode " +"details). The local trace function is called; *arg* is ``None``; the return " +"value specifies the new local trace function. Per-opcode events are not " +"emitted by default: they must be explicitly requested by setting :attr:" +"`f_trace_opcodes` to :const:`True` on the frame." +msgstr "" +"L'interpréteur va exécuter un nouvel *opcode* (voyez :mod:`dis` pour plus de " +"détails). La fonction de traçage locale est appelée ; *arg* vaut ``None`` ; " +"la valeur retournée donne la nouvelle fonction de traçage locale. Le traçage " +"ne se fait pas *opcode* par *opcode* par défaut : cela doit être " +"explicitement requis en mettant :attr:`f_trace_opcodes` à :const:`True` pour " +"cette *frame*." + +#: ../Doc/library/sys.rst:1228 +msgid "" +"Note that as an exception is propagated down the chain of callers, an " +"``'exception'`` event is generated at each level." +msgstr "" +"Remarquez que, comme une exception se propage au travers de toute chaîne " +"d'appelants, un événement ``'exception'`` est généré à chaque niveau." + +#: ../Doc/library/sys.rst:1231 +msgid "For more information on code and frame objects, refer to :ref:`types`." +msgstr "" +"Pour plus d'informations sur les objets code et objets représentant une " +"*frame* de la pile, consultez :ref:`types`." + +#: ../Doc/library/sys.rst:1235 +msgid "" +"The :func:`settrace` function is intended only for implementing debuggers, " +"profilers, coverage tools and the like. Its behavior is part of the " +"implementation platform, rather than part of the language definition, and " +"thus may not be available in all Python implementations." +msgstr "" +"La fonction :func:`settrace` est destinée uniquement à l'implémentation de " +"débogueurs, de profileurs, d'outils d'analyse de couverture et d'autres " +"outils similaires. Son comportement fait partie de l'implémentation, plutôt " +"que de la définition du langage, et peut donc ne pas être disponible dans " +"toutes les implémentations de Python." + +#: ../Doc/library/sys.rst:1242 +msgid "" +"``'opcode'`` event type added; :attr:`f_trace_lines` and :attr:" +"`f_trace_opcodes` attributes added to frames" +msgstr "" +"Ajout du type d’événement ``'opcode'`` ; les attributs :attr:`f_trace_lines` " +"et :attr:`f_trace_opcodes` ont été ajoutés aux cadres d'exécution" + +#: ../Doc/library/sys.rst:1247 +msgid "" +"Accepts two optional keyword arguments which are callables that accept an :" +"term:`asynchronous generator iterator` as an argument. The *firstiter* " +"callable will be called when an asynchronous generator is iterated for the " +"first time. The *finalizer* will be called when an asynchronous generator is " +"about to be garbage collected." +msgstr "" +"Accepte deux arguments optionnels nommés, qui sont appelables qui acceptent " +"un :term:`asynchronous generator iterator` comme argument. L'appelable " +"*firsttiter* sera appelé lorsqu'un générateur asynchrone sera itéré pour la " +"première fois, et l'appelable *finalizer* sera appelé lorsqu'un générateur " +"asynchrone est sur le point d'être détruit." + +#: ../Doc/library/sys.rst:1253 +msgid "" +"See :pep:`525` for more details, and for a reference example of a " +"*finalizer* method see the implementation of ``asyncio.Loop." +"shutdown_asyncgens`` in :source:`Lib/asyncio/base_events.py`" +msgstr "" +"Voir la :pep:`525` pour plus de détails. Pour un exemple de *finalizer*, " +"voir l'implémentation de ``asyncio.Loop.shutdown_asyncgens`` dans :source:" +"`Lib/asyncio/base_events.py`" + +#: ../Doc/library/sys.rst:1265 +msgid "" +"Allows enabling or disabling coroutine origin tracking. When enabled, the " +"``cr_origin`` attribute on coroutine objects will contain a tuple of " +"(filename, line number, function name) tuples describing the traceback where " +"the coroutine object was created, with the most recent call first. When " +"disabled, ``cr_origin`` will be None." +msgstr "" +"Permet d'activer ou de désactiver le suivi d'origine de la coroutine. " +"Lorsque cette option est activée, l'attribut ``cr_origin`` sur les objets de " +"la coroutine contient un tuple (nom de fichier, numéro de ligne, nom de " +"fonction) de tuples gardant la trace d'appels de l'endroit où l'objet " +"coroutine a été créé, avec l'appel le plus récent en premier. Lorsqu'il est " +"désactivé, la valeur de ``cr_origin`` est ``None``." + +#: ../Doc/library/sys.rst:1272 +msgid "" +"To enable, pass a *depth* value greater than zero; this sets the number of " +"frames whose information will be captured. To disable, pass set *depth* to " +"zero." +msgstr "" +"Pour l'activer, passez une valeur *depth* supérieure à zéro ; cela définit " +"le nombre de cadres d'exécution dont les informations sont capturées. Pour " +"le désactiver, mettez *depth* à zéro." + +#: ../Doc/library/sys.rst:1276 +msgid "This setting is thread-specific." +msgstr "Ce paramètre est spécifique au fil d'exécution courant." + +#: ../Doc/library/sys.rst:1286 +msgid "" +"Allows intercepting creation of :term:`coroutine` objects (only ones that " +"are created by an :keyword:`async def` function; generators decorated with :" +"func:`types.coroutine` or :func:`asyncio.coroutine` will not be intercepted)." +msgstr "" +"Permet d'intercepter la création de :term:`coroutine` (uniquement celles " +"créés via :keyword:`async def`, les générateurs décorés par :func:`types." +"coroutine` ou :func:`asyncio.coroutine` ne seront pas interceptés)." + +#: ../Doc/library/sys.rst:1291 +msgid "The *wrapper* argument must be either:" +msgstr "L'argument *wrapper* doit être soit :" + +#: ../Doc/library/sys.rst:1293 +msgid "a callable that accepts one argument (a coroutine object);" +msgstr "un appelable qui accepte un argument (une coroutine);" + +#: ../Doc/library/sys.rst:1294 +msgid "``None``, to reset the wrapper." +msgstr "``None``, pour réinitialiser le *wrapper*." + +#: ../Doc/library/sys.rst:1296 +msgid "" +"If called twice, the new wrapper replaces the previous one. The function is " +"thread-specific." +msgstr "S'il est appelé deux fois, le nouveau *wrapper* remplace le précédent." + +#: ../Doc/library/sys.rst:1299 +msgid "" +"The *wrapper* callable cannot define new coroutines directly or indirectly::" +msgstr "" +"L'appelable *wrapper* ne peut pas définir de nouvelles coroutines, ni " +"directement, ni indirectement : ::" + +#: ../Doc/library/sys.rst:1314 +msgid "See also :func:`get_coroutine_wrapper`." +msgstr "Voir aussi :func:`get_coroutine_wrapper`." + +#: ../Doc/library/sys.rst:1329 +msgid "" +"Changes the default filesystem encoding and errors mode to 'mbcs' and " +"'replace' respectively, for consistency with versions of Python prior to 3.6." +msgstr "" +"Change l'encodage et le mode de gestion d'erreur par défaut du système de " +"fichiers à *mbcs* et *replace* respectivement, par cohérence avec les " +"versions de Python antérieures à la 3.6." + +#: ../Doc/library/sys.rst:1332 +msgid "" +"This is equivalent to defining the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " +"environment variable before launching Python." +msgstr "" +"Équivaut à définir la variable d'environnement :envvar:" +"`PYTHONLEGACYWINDOWSFSENCODING` avant de lancer Python." + +#: ../Doc/library/sys.rst:1337 +msgid "See :pep:`529` for more details." +msgstr "Voir la :pep:`529` pour plus d'informations." + +#: ../Doc/library/sys.rst:1344 +msgid "" +":term:`File objects ` used by the interpreter for standard " +"input, output and errors:" +msgstr "" +":term:`objets fichiers ` utilisés par l'interpréteur pour " +"l'entrée standard, la sortie standard et la sortie d'erreurs :" + +#: ../Doc/library/sys.rst:1347 +msgid "" +"``stdin`` is used for all interactive input (including calls to :func:" +"`input`);" +msgstr "" +"``stdin`` est utilisé pour toutes les entrées interactives (y compris les " +"appels à :func:`input`)" + +#: ../Doc/library/sys.rst:1349 +msgid "" +"``stdout`` is used for the output of :func:`print` and :term:`expression` " +"statements and for the prompts of :func:`input`;" +msgstr "" +"``stdout`` est utilisé pour la sortie de :func:`print`, des :term:" +"`expression` et pour les invites de :func:`input` ;" + +#: ../Doc/library/sys.rst:1351 +msgid "The interpreter's own prompts and its error messages go to ``stderr``." +msgstr "" +"Les invites de l'interpréteur et ses messages d'erreur sont écrits sur " +"``stderr``." + +#: ../Doc/library/sys.rst:1353 +msgid "" +"These streams are regular :term:`text files ` like those returned " +"by the :func:`open` function. Their parameters are chosen as follows:" +msgstr "" +"Ces flux sont de classiques :term:`fichiers texte ` comme ceux " +"renvoyés par la fonction :func:`open`. Leurs paramètres sont choisis comme " +"suit :" + +#: ../Doc/library/sys.rst:1357 +msgid "" +"The character encoding is platform-dependent. Non-Windows platforms use the " +"locale encoding (see :meth:`locale.getpreferredencoding()`)." +msgstr "" +"L'encodage des caractères dépend de la plateforme. Les plateformes non " +"Windows utilisent l'encodage défini dans les paramètres régionaux (voir :" +"meth:`locale.getpreferredencoding()`)." + +#: ../Doc/library/sys.rst:1361 +msgid "" +"On Windows, UTF-8 is used for the console device. Non-character devices " +"such as disk files and pipes use the system locale encoding (i.e. the ANSI " +"codepage). Non-console character devices such as NUL (i.e. where isatty() " +"returns True) use the value of the console input and output codepages at " +"startup, respectively for stdin and stdout/stderr. This defaults to the " +"system locale encoding if the process is not initially attached to a console." +msgstr "" +"Sous Windows, UTF-8 est utilisé pour le périphérique de console. Les " +"périphériques non-caractères tels que les fichiers de disque et les tubes " +"(*pipe* en anglais) utilisent l'encodage des paramètres régionaux du système " +"(c'est-à-dire la page de codes ANSI). Les périphériques de caractères non-" +"console tels que NUL (par exemple où ``isatty()`` retourne ``True``) " +"utilisent la valeur des pages de code d'entrée et de sortie de la console au " +"démarrage, respectivement pour l’entrée standard et *stdout/stderr*. Cette " +"valeur par défaut est l'encodage des paramètres régionaux système si le " +"processus n'est pas attaché initialement à une console." + +#: ../Doc/library/sys.rst:1370 +msgid "" +"The special behaviour of the console can be overridden by setting the " +"environment variable PYTHONLEGACYWINDOWSSTDIO before starting Python. In " +"that case, the console codepages are used as for any other character device." +msgstr "" +"Le comportement spécial de la console peut être redéfini en assignant la " +"variable d'environnement *PYTHONLEGACYWINDOWSSTDIO* avant de démarrer " +"Python. Dans ce cas, les pages de code de la console sont utilisées comme " +"pour tout autre périphérique de caractères." + +#: ../Doc/library/sys.rst:1375 +msgid "" +"Under all platforms, you can override the character encoding by setting the :" +"envvar:`PYTHONIOENCODING` environment variable before starting Python or by " +"using the new :option:`-X` ``utf8`` command line option and :envvar:" +"`PYTHONUTF8` environment variable. However, for the Windows console, this " +"only applies when :envvar:`PYTHONLEGACYWINDOWSSTDIO` is also set." +msgstr "" +"Sous toutes les plateformes, vous pouvez redéfinir le codage de caractères " +"en assignant la variable d'environnement :envvar:`PYTHONIOENCODING` avant de " +"démarrer Python ou en utilisant la nouvelle option de ligne de commande :" +"option:`-X` ``utf8`` et la variable d'environnement :envvar:`PYTHONUTF8`. " +"Toutefois, pour la console Windows, cela s'applique uniquement lorsque :" +"envvar:`PYTHONLEGACYWINDOWSSTDIO` est également défini." + +#: ../Doc/library/sys.rst:1382 +msgid "" +"When interactive, ``stdout`` and ``stderr`` streams are line-buffered. " +"Otherwise, they are block-buffered like regular text files. You can " +"override this value with the :option:`-u` command-line option." +msgstr "" +"En mode interactif, les entrées et sorties standards passent par un tampon " +"d'une ligne. Autrement, elles passent par blocs dans un tampon, comme les " +"fichiers textes classiques. Vous pouvez remplacer cette valeur avec " +"l'option :option:`-u` en ligne de commande." + +#: ../Doc/library/sys.rst:1388 +msgid "" +"To write or read binary data from/to the standard streams, use the " +"underlying binary :data:`~io.TextIOBase.buffer` object. For example, to " +"write bytes to :data:`stdout`, use ``sys.stdout.buffer.write(b'abc')``." +msgstr "" +"Pour écrire ou lire des données binaires depuis ou vers les flux standards, " +"utilisez l'objet sous-jacent :data:`~io.TextIOBase.buffer`. Par exemple, " +"pour écrire des octets sur :data:`stdout`, utilisez ``sys.stdout.buffer." +"write(b'abc')``." + +#: ../Doc/library/sys.rst:1392 +msgid "" +"However, if you are writing a library (and do not control in which context " +"its code will be executed), be aware that the standard streams may be " +"replaced with file-like objects like :class:`io.StringIO` which do not " +"support the :attr:`~io.BufferedIOBase.buffer` attribute." +msgstr "" +"Cependant, si vous écrivez une bibliothèque (ou ne contrôlez pas dans quel " +"contexte son code sera exécuté), sachez que les flux standards peuvent être " +"remplacés par des objets de type fichier tel un :class:`io.StringIO` qui " +"n'ont pas l'attribut :attr:`~io.BufferedIOBase.buffer`." + +#: ../Doc/library/sys.rst:1402 +msgid "" +"These objects contain the original values of ``stdin``, ``stderr`` and " +"``stdout`` at the start of the program. They are used during finalization, " +"and could be useful to print to the actual standard stream no matter if the " +"``sys.std*`` object has been redirected." +msgstr "" +"Ces objets contiennent les valeurs d'origine de ``stdin``, ``stderr`` et " +"``stdout`` tel que présentes au début du programme. Ils sont utilisés " +"pendant la finalisation, et peuvent être utiles pour écrire dans le vrai " +"flux standard, peu importe si l'objet ``sys.std*`` a été redirigé." + +#: ../Doc/library/sys.rst:1407 +msgid "" +"It can also be used to restore the actual files to known working file " +"objects in case they have been overwritten with a broken object. However, " +"the preferred way to do this is to explicitly save the previous stream " +"before replacing it, and restore the saved object." +msgstr "" +"Ils peuvent également être utilisés pour restaurer les entrées / sorties " +"d'origine, au cas où ils auraient été écrasés par des objets cassé, " +"cependant la bonne façon de faire serait de sauvegarder explicitement les " +"flux avant de les remplacer et ainsi pouvoir les restaurer." + +#: ../Doc/library/sys.rst:1413 +msgid "" +"Under some conditions ``stdin``, ``stdout`` and ``stderr`` as well as the " +"original values ``__stdin__``, ``__stdout__`` and ``__stderr__`` can be " +"``None``. It is usually the case for Windows GUI apps that aren't connected " +"to a console and Python apps started with :program:`pythonw`." +msgstr "" +"Dans certaines cas, ``stdin``, ``stdout`` et ``stderr`` ainsi que les " +"valeurs initiales ``__stdin__``, ``__stdout__`` et ``__stderr__`` peuvent " +"être ``None``. C'est typiquement le cas pour les applications graphiques sur " +"Windows qui ne sont pas connectées à une console, ou les applications Python " +"démarrées avec :program:`pythonw`." + +#: ../Doc/library/sys.rst:1421 +msgid "" +"A :term:`struct sequence` holding information about the thread " +"implementation." +msgstr "" +"Une :term:`struct sequence` contenant des informations sur l'implémentation " +"des fils d'exécution." + +#: ../Doc/library/sys.rst:1429 +msgid ":const:`name`" +msgstr ":const:`name`" + +#: ../Doc/library/sys.rst:1429 +msgid "Name of the thread implementation:" +msgstr "Nom de l'implémentation des fils d'exécution :" + +#: ../Doc/library/sys.rst:1431 +msgid "``'nt'``: Windows threads" +msgstr "``'nt'`` : Fils d'exécution Windows" + +#: ../Doc/library/sys.rst:1432 +msgid "``'pthread'``: POSIX threads" +msgstr "``'pthread'`` : Fils d'exécution POSIX" + +#: ../Doc/library/sys.rst:1433 +msgid "``'solaris'``: Solaris threads" +msgstr "``'solaris'`` : Fils d'exécution Solaris" + +#: ../Doc/library/sys.rst:1435 +msgid ":const:`lock`" +msgstr ":const:`lock`" + +#: ../Doc/library/sys.rst:1435 +msgid "Name of the lock implementation:" +msgstr "Nom de l'implémentation du système de verrou :" + +#: ../Doc/library/sys.rst:1437 +msgid "``'semaphore'``: a lock uses a semaphore" +msgstr "``'semaphore'`` : Verrou utilisant une sémaphore" + +#: ../Doc/library/sys.rst:1438 +msgid "``'mutex+cond'``: a lock uses a mutex and a condition variable" +msgstr "" +"``'mutex+cond'`` : Un verrou utilisant un *mutex* et une *condition variable*" + +#: ../Doc/library/sys.rst:1440 +msgid "``None`` if this information is unknown" +msgstr "``None`` si cette information n'est pas connue" + +#: ../Doc/library/sys.rst:1442 +msgid ":const:`version`" +msgstr ":const:`version`" + +#: ../Doc/library/sys.rst:1442 +msgid "" +"Name and version of the thread library. It is a string, or ``None`` if this " +"information is unknown." +msgstr "" +"Nom et version de l'implémentation des fils d'exécution, c'est une chaîne, " +"ou ``None`` si ces informations sont inconnues." + +#: ../Doc/library/sys.rst:1451 +msgid "" +"When this variable is set to an integer value, it determines the maximum " +"number of levels of traceback information printed when an unhandled " +"exception occurs. The default is ``1000``. When set to ``0`` or less, all " +"traceback information is suppressed and only the exception type and value " +"are printed." +msgstr "" +"Lorsque cette variable contient un nombre entier, elle détermine la " +"profondeur maximum de la pile d'appels affichée lorsqu'une exception non " +"gérée se produit. La valeur par défaut est ``1000``, lorsque cette valeur " +"est égale ou inférieure à ``0``, la pile d'appels n'est pas affichée, seul " +"seuls le type et la valeur de l'exception sont le sont." + +#: ../Doc/library/sys.rst:1459 +msgid "" +"A string containing the version number of the Python interpreter plus " +"additional information on the build number and compiler used. This string " +"is displayed when the interactive interpreter is started. Do not extract " +"version information out of it, rather, use :data:`version_info` and the " +"functions provided by the :mod:`platform` module." +msgstr "" +"Une chaîne contenant le numéro de version de l'interpréteur Python, ainsi " +"que d'autres informations comme le numéro de compilation et le compilateur " +"utilisé. Cette chaîne est affichée lorsque l'interpréteur est démarré en " +"mode interactif. N'essayez pas d'en extraire des informations de version, " +"utilisez plutôt :data:`version_info` et les fonctions fournies par le " +"module :mod:`platform`." + +#: ../Doc/library/sys.rst:1468 +msgid "" +"The C API version for this interpreter. Programmers may find this useful " +"when debugging version conflicts between Python and extension modules." +msgstr "" +"La version de l'API C pour cet interpréteur. Les développeurs peuvent " +"trouver cette information utile en déboguant des conflits de versions entre " +"Python et des modules d'extension." + +#: ../Doc/library/sys.rst:1474 +msgid "" +"A tuple containing the five components of the version number: *major*, " +"*minor*, *micro*, *releaselevel*, and *serial*. All values except " +"*releaselevel* are integers; the release level is ``'alpha'``, ``'beta'``, " +"``'candidate'``, or ``'final'``. The ``version_info`` value corresponding " +"to the Python version 2.0 is ``(2, 0, 0, 'final', 0)``. The components can " +"also be accessed by name, so ``sys.version_info[0]`` is equivalent to ``sys." +"version_info.major`` and so on." +msgstr "" +"Un *tuple* contenant les cinq composants du numéro de version : *major*, " +"*minor*, *micro*, *releaselevel* et *serial*. Toutes les valeurs sauf " +"*releaselevel* sont des nombres entiers. *releaselevel* peut valoir " +"``'alpha'``, ``'beta'``, ``'candidate'``, ou ``'final'``. La valeur de " +"``version_info`` pour Python 2.0 est ``(2, 0, 0, 'final', 0)``. Ces " +"attributs sont aussi accessibles par leur nom, ainsi ``sys.version_info[0]`` " +"est équivalent à ``sys.version_info.major``, et ainsi de suite." + +#: ../Doc/library/sys.rst:1482 +msgid "Added named component attributes." +msgstr "Ajout des attributs nommés." + +#: ../Doc/library/sys.rst:1487 +msgid "" +"This is an implementation detail of the warnings framework; do not modify " +"this value. Refer to the :mod:`warnings` module for more information on the " +"warnings framework." +msgstr "" +"C'est une spécificité de l'implémentation de la gestion des avertissements. " +"Ne modifiez pas cette valeur. Reportez-vous au module :mod:`warnings` pour " +"plus d'informations sur le gestionnaire d'avertissements." + +#: ../Doc/library/sys.rst:1494 +msgid "" +"The version number used to form registry keys on Windows platforms. This is " +"stored as string resource 1000 in the Python DLL. The value is normally the " +"first three characters of :const:`version`. It is provided in the :mod:" +"`sys` module for informational purposes; modifying this value has no effect " +"on the registry keys used by Python." +msgstr "" +"Le numéro de version utilisé pour construire les clefs de registre sous " +"Windows. Elle est stockée en tant que *string resource* 1000 dans la DLL " +"Python. Cette valeur équivaut typiquement aux trois premiers caractères de :" +"const:`version`. Elle est fournie par le module :mod:`sys` à titre " +"d'information, et la modifier n'a aucun effet sur les clés de registre " +"utilisées par Python." + +#: ../Doc/library/sys.rst:1505 +msgid "" +"A dictionary of the various implementation-specific flags passed through " +"the :option:`-X` command-line option. Option names are either mapped to " +"their values, if given explicitly, or to :const:`True`. Example:" +msgstr "" +"Un dictionnaire des différentes options spécifiques à l'implémentation " +"passés en ligne de commande via l'option :option:`-X`. Aux noms des options " +"correspondent soit leur valeur, si elle est donnée explicitement, soit à :" +"const:`True`. Exemple :" + +#: ../Doc/library/sys.rst:1521 +msgid "" +"This is a CPython-specific way of accessing options passed through :option:`-" +"X`. Other implementations may export them through other means, or not at " +"all." +msgstr "" +"C'est un moyen spécifique à CPython pour accéder aux options passées via " +"l'option :option:`-X`. D'autres implémentations pourraient les exposer par " +"d'autres moyens, ou pas du tout." + +#: ../Doc/library/sys.rst:1529 +msgid "Citations" +msgstr "Citations" + +#: ../Doc/library/sys.rst:1530 +msgid "" +"ISO/IEC 9899:1999. \"Programming languages -- C.\" A public draft of this " +"standard is available at http://www.open-std.org/jtc1/sc22/wg14/www/docs/" +"n1256.pdf\\ ." +msgstr "" +"*ISO/IEC 9899:1999*. \"Langages de programmation -- C.\" Un texte public " +"de ce standard est disponible à http://www.open-std.org/jtc1/sc22/wg14/www/" +"docs/n1256.pdf\\ ." + +#~ msgid "" +#~ "The character encoding is platform-dependent. Under Windows, if the " +#~ "stream is interactive (that is, if its :meth:`isatty` method returns " +#~ "``True``), the console codepage is used, otherwise the ANSI code page. " +#~ "Under other platforms, the locale encoding is used (see :meth:`locale." +#~ "getpreferredencoding`)." +#~ msgstr "" +#~ "L'encodage des caractères dépend de la plate-forme. Sous Windows, si le " +#~ "flux est interactif (c'est-à-dire si sa méthode :meth:`isatty` donne " +#~ "``True``), l'encodage de la console est utilisée, sinon un encodage " +#~ "Windows. Sous d'autres plateformes, l'encodage local est utilisé (voir :" +#~ "meth:`locale.getpreferredencoding`)." + +#~ msgid "" +#~ "Under all platforms though, you can override this value by setting the :" +#~ "envvar:`PYTHONIOENCODING` environment variable before starting Python." +#~ msgstr "" +#~ "Sous toutes les plates-formes cependant, vous pouvez remplacer cette " +#~ "valeur en définissant la variable d'environnement :envvar:" +#~ "`PYTHONIOENCODING` avant de démarrer Python." + +#~ msgid "Availability: Windows" +#~ msgstr "Disponibilité : Windows" diff --git a/library/sysconfig.po b/library/sysconfig.po new file mode 100644 index 000000000..d62568b35 --- /dev/null +++ b/library/sysconfig.po @@ -0,0 +1,391 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/sysconfig.rst:2 +msgid "" +":mod:`sysconfig` --- Provide access to Python's configuration information" +msgstr "" + +#: ../Doc/library/sysconfig.rst:12 +msgid "**Source code:** :source:`Lib/sysconfig.py`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:19 +msgid "" +"The :mod:`sysconfig` module provides access to Python's configuration " +"information like the list of installation paths and the configuration " +"variables relevant for the current platform." +msgstr "" + +#: ../Doc/library/sysconfig.rst:24 +msgid "Configuration variables" +msgstr "" + +#: ../Doc/library/sysconfig.rst:26 +msgid "" +"A Python distribution contains a :file:`Makefile` and a :file:`pyconfig.h` " +"header file that are necessary to build both the Python binary itself and " +"third-party C extensions compiled using :mod:`distutils`." +msgstr "" + +#: ../Doc/library/sysconfig.rst:30 +msgid "" +":mod:`sysconfig` puts all variables found in these files in a dictionary " +"that can be accessed using :func:`get_config_vars` or :func:`get_config_var`." +msgstr "" + +#: ../Doc/library/sysconfig.rst:33 +msgid "Notice that on Windows, it's a much smaller set." +msgstr "" + +#: ../Doc/library/sysconfig.rst:37 +msgid "" +"With no arguments, return a dictionary of all configuration variables " +"relevant for the current platform." +msgstr "" + +#: ../Doc/library/sysconfig.rst:40 +msgid "" +"With arguments, return a list of values that result from looking up each " +"argument in the configuration variable dictionary." +msgstr "" + +#: ../Doc/library/sysconfig.rst:43 +msgid "For each argument, if the value is not found, return ``None``." +msgstr "" + +#: ../Doc/library/sysconfig.rst:48 +msgid "" +"Return the value of a single variable *name*. Equivalent to " +"``get_config_vars().get(name)``." +msgstr "" + +#: ../Doc/library/sysconfig.rst:51 ../Doc/library/sysconfig.rst:141 +msgid "If *name* is not found, return ``None``." +msgstr "" + +#: ../Doc/library/sysconfig.rst:53 +msgid "Example of usage::" +msgstr "" + +#: ../Doc/library/sysconfig.rst:65 +msgid "Installation paths" +msgstr "" + +#: ../Doc/library/sysconfig.rst:67 +msgid "" +"Python uses an installation scheme that differs depending on the platform " +"and on the installation options. These schemes are stored in :mod:" +"`sysconfig` under unique identifiers based on the value returned by :const:" +"`os.name`." +msgstr "" + +#: ../Doc/library/sysconfig.rst:71 +msgid "" +"Every new component that is installed using :mod:`distutils` or a Distutils-" +"based system will follow the same scheme to copy its file in the right " +"places." +msgstr "" + +#: ../Doc/library/sysconfig.rst:75 +msgid "Python currently supports seven schemes:" +msgstr "" + +#: ../Doc/library/sysconfig.rst:77 +msgid "" +"*posix_prefix*: scheme for Posix platforms like Linux or Mac OS X. This is " +"the default scheme used when Python or a component is installed." +msgstr "" + +#: ../Doc/library/sysconfig.rst:79 +msgid "" +"*posix_home*: scheme for Posix platforms used when a *home* option is used " +"upon installation. This scheme is used when a component is installed " +"through Distutils with a specific home prefix." +msgstr "" + +#: ../Doc/library/sysconfig.rst:82 +msgid "" +"*posix_user*: scheme for Posix platforms used when a component is installed " +"through Distutils and the *user* option is used. This scheme defines paths " +"located under the user home directory." +msgstr "" + +#: ../Doc/library/sysconfig.rst:85 +msgid "*nt*: scheme for NT platforms like Windows." +msgstr "" + +#: ../Doc/library/sysconfig.rst:86 +msgid "*nt_user*: scheme for NT platforms, when the *user* option is used." +msgstr "" + +#: ../Doc/library/sysconfig.rst:88 +msgid "" +"Each scheme is itself composed of a series of paths and each path has a " +"unique identifier. Python currently uses eight paths:" +msgstr "" + +#: ../Doc/library/sysconfig.rst:91 +msgid "" +"*stdlib*: directory containing the standard Python library files that are " +"not platform-specific." +msgstr "" + +#: ../Doc/library/sysconfig.rst:93 +msgid "" +"*platstdlib*: directory containing the standard Python library files that " +"are platform-specific." +msgstr "" + +#: ../Doc/library/sysconfig.rst:95 +msgid "*platlib*: directory for site-specific, platform-specific files." +msgstr "" + +#: ../Doc/library/sysconfig.rst:96 +msgid "*purelib*: directory for site-specific, non-platform-specific files." +msgstr "" + +#: ../Doc/library/sysconfig.rst:97 +msgid "*include*: directory for non-platform-specific header files." +msgstr "" + +#: ../Doc/library/sysconfig.rst:98 +msgid "*platinclude*: directory for platform-specific header files." +msgstr "" + +#: ../Doc/library/sysconfig.rst:99 +msgid "*scripts*: directory for script files." +msgstr "" + +#: ../Doc/library/sysconfig.rst:100 +msgid "*data*: directory for data files." +msgstr "" + +#: ../Doc/library/sysconfig.rst:102 +msgid ":mod:`sysconfig` provides some functions to determine these paths." +msgstr "" + +#: ../Doc/library/sysconfig.rst:106 +msgid "" +"Return a tuple containing all schemes currently supported in :mod:" +"`sysconfig`." +msgstr "" + +#: ../Doc/library/sysconfig.rst:112 +msgid "" +"Return a tuple containing all path names currently supported in :mod:" +"`sysconfig`." +msgstr "" + +#: ../Doc/library/sysconfig.rst:118 +msgid "" +"Return an installation path corresponding to the path *name*, from the " +"install scheme named *scheme*." +msgstr "" + +#: ../Doc/library/sysconfig.rst:121 +msgid "" +"*name* has to be a value from the list returned by :func:`get_path_names`." +msgstr "" + +#: ../Doc/library/sysconfig.rst:123 +msgid "" +":mod:`sysconfig` stores installation paths corresponding to each path name, " +"for each platform, with variables to be expanded. For instance the *stdlib* " +"path for the *nt* scheme is: ``{base}/Lib``." +msgstr "" + +#: ../Doc/library/sysconfig.rst:127 +msgid "" +":func:`get_path` will use the variables returned by :func:`get_config_vars` " +"to expand the path. All variables have default values for each platform so " +"one may call this function and get the default value." +msgstr "" + +#: ../Doc/library/sysconfig.rst:131 +msgid "" +"If *scheme* is provided, it must be a value from the list returned by :func:" +"`get_scheme_names`. Otherwise, the default scheme for the current platform " +"is used." +msgstr "" + +#: ../Doc/library/sysconfig.rst:135 +msgid "" +"If *vars* is provided, it must be a dictionary of variables that will update " +"the dictionary return by :func:`get_config_vars`." +msgstr "" + +#: ../Doc/library/sysconfig.rst:138 +msgid "" +"If *expand* is set to ``False``, the path will not be expanded using the " +"variables." +msgstr "" + +#: ../Doc/library/sysconfig.rst:146 +msgid "" +"Return a dictionary containing all installation paths corresponding to an " +"installation scheme. See :func:`get_path` for more information." +msgstr "" + +#: ../Doc/library/sysconfig.rst:149 +msgid "" +"If *scheme* is not provided, will use the default scheme for the current " +"platform." +msgstr "" + +#: ../Doc/library/sysconfig.rst:152 +msgid "" +"If *vars* is provided, it must be a dictionary of variables that will update " +"the dictionary used to expand the paths." +msgstr "" + +#: ../Doc/library/sysconfig.rst:155 +msgid "If *expand* is set to false, the paths will not be expanded." +msgstr "" + +#: ../Doc/library/sysconfig.rst:157 +msgid "" +"If *scheme* is not an existing scheme, :func:`get_paths` will raise a :exc:" +"`KeyError`." +msgstr "" + +#: ../Doc/library/sysconfig.rst:162 +msgid "Other functions" +msgstr "Autres fonctions" + +#: ../Doc/library/sysconfig.rst:166 +msgid "" +"Return the ``MAJOR.MINOR`` Python version number as a string. Similar to " +"``'%d.%d' % sys.version_info[:2]``." +msgstr "" + +#: ../Doc/library/sysconfig.rst:172 +msgid "Return a string that identifies the current platform." +msgstr "" + +#: ../Doc/library/sysconfig.rst:174 +msgid "" +"This is used mainly to distinguish platform-specific build directories and " +"platform-specific built distributions. Typically includes the OS name and " +"version and the architecture (as supplied by 'os.uname()'), although the " +"exact information included depends on the OS; e.g., on Linux, the kernel " +"version isn't particularly important." +msgstr "" + +#: ../Doc/library/sysconfig.rst:180 +msgid "Examples of returned values:" +msgstr "Exemples de valeurs renvoyées :" + +#: ../Doc/library/sysconfig.rst:182 +msgid "linux-i586" +msgstr "linux-i586" + +#: ../Doc/library/sysconfig.rst:183 +msgid "linux-alpha (?)" +msgstr "linux-alpha (?)" + +#: ../Doc/library/sysconfig.rst:184 +msgid "solaris-2.6-sun4u" +msgstr "solaris-2.6-sun4u" + +#: ../Doc/library/sysconfig.rst:186 +msgid "Windows will return one of:" +msgstr "" + +#: ../Doc/library/sysconfig.rst:188 +msgid "win-amd64 (64bit Windows on AMD64, aka x86_64, Intel64, and EM64T)" +msgstr "" + +#: ../Doc/library/sysconfig.rst:189 +msgid "win32 (all others - specifically, sys.platform is returned)" +msgstr "" + +#: ../Doc/library/sysconfig.rst:191 +msgid "Mac OS X can return:" +msgstr "" + +#: ../Doc/library/sysconfig.rst:193 +msgid "macosx-10.6-ppc" +msgstr "macosx-10.6-ppc" + +#: ../Doc/library/sysconfig.rst:194 +msgid "macosx-10.4-ppc64" +msgstr "macosx-10.4-ppc64" + +#: ../Doc/library/sysconfig.rst:195 +msgid "macosx-10.3-i386" +msgstr "macosx-10.3-i386" + +#: ../Doc/library/sysconfig.rst:196 +msgid "macosx-10.4-fat" +msgstr "macosx-10.4-fat" + +#: ../Doc/library/sysconfig.rst:198 +msgid "" +"For other non-POSIX platforms, currently just returns :data:`sys.platform`." +msgstr "" + +#: ../Doc/library/sysconfig.rst:203 +msgid "" +"Return ``True`` if the running Python interpreter was built from source and " +"is being run from its built location, and not from a location resulting from " +"e.g. running ``make install`` or installing via a binary installer." +msgstr "" + +#: ../Doc/library/sysconfig.rst:210 +msgid "Parse a :file:`config.h`\\-style file." +msgstr "" + +#: ../Doc/library/sysconfig.rst:212 +msgid "" +"*fp* is a file-like object pointing to the :file:`config.h`\\-like file." +msgstr "" + +#: ../Doc/library/sysconfig.rst:214 +msgid "" +"A dictionary containing name/value pairs is returned. If an optional " +"dictionary is passed in as the second argument, it is used instead of a new " +"dictionary, and updated with the values read in the file." +msgstr "" + +#: ../Doc/library/sysconfig.rst:221 +msgid "Return the path of :file:`pyconfig.h`." +msgstr "" + +#: ../Doc/library/sysconfig.rst:225 +msgid "Return the path of :file:`Makefile`." +msgstr "" + +#: ../Doc/library/sysconfig.rst:228 +msgid "Using :mod:`sysconfig` as a script" +msgstr "" + +#: ../Doc/library/sysconfig.rst:230 +msgid "You can use :mod:`sysconfig` as a script with Python's *-m* option:" +msgstr "" + +#: ../Doc/library/sysconfig.rst:256 +msgid "" +"This call will print in the standard output the information returned by :" +"func:`get_platform`, :func:`get_python_version`, :func:`get_path` and :func:" +"`get_config_vars`." +msgstr "" + +#~ msgid "irix-5.3" +#~ msgstr "irix-5.3" + +#~ msgid "irix64-6.2" +#~ msgstr "irix64-6.2" diff --git a/library/syslog.po b/library/syslog.po new file mode 100644 index 000000000..cfc2f5177 --- /dev/null +++ b/library/syslog.po @@ -0,0 +1,157 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-09-15 21:52+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/syslog.rst:2 +msgid ":mod:`syslog` --- Unix syslog library routines" +msgstr "" + +#: ../Doc/library/syslog.rst:10 +msgid "" +"This module provides an interface to the Unix ``syslog`` library routines. " +"Refer to the Unix manual pages for a detailed description of the ``syslog`` " +"facility." +msgstr "" + +#: ../Doc/library/syslog.rst:14 +msgid "" +"This module wraps the system ``syslog`` family of routines. A pure Python " +"library that can speak to a syslog server is available in the :mod:`logging." +"handlers` module as :class:`SysLogHandler`." +msgstr "" + +#: ../Doc/library/syslog.rst:18 +msgid "The module defines the following functions:" +msgstr "Le module définit les fonctions suivantes :" + +#: ../Doc/library/syslog.rst:24 +msgid "" +"Send the string *message* to the system logger. A trailing newline is added " +"if necessary. Each message is tagged with a priority composed of a " +"*facility* and a *level*. The optional *priority* argument, which defaults " +"to :const:`LOG_INFO`, determines the message priority. If the facility is " +"not encoded in *priority* using logical-or (``LOG_INFO | LOG_USER``), the " +"value given in the :func:`openlog` call is used." +msgstr "" + +#: ../Doc/library/syslog.rst:31 +msgid "" +"If :func:`openlog` has not been called prior to the call to :func:`syslog`, " +"``openlog()`` will be called with no arguments." +msgstr "" + +#: ../Doc/library/syslog.rst:37 +msgid "" +"Logging options of subsequent :func:`syslog` calls can be set by calling :" +"func:`openlog`. :func:`syslog` will call :func:`openlog` with no arguments " +"if the log is not currently open." +msgstr "" + +#: ../Doc/library/syslog.rst:41 +msgid "" +"The optional *ident* keyword argument is a string which is prepended to " +"every message, and defaults to ``sys.argv[0]`` with leading path components " +"stripped. The optional *logoption* keyword argument (default is 0) is a bit " +"field -- see below for possible values to combine. The optional *facility* " +"keyword argument (default is :const:`LOG_USER`) sets the default facility " +"for messages which do not have a facility explicitly encoded." +msgstr "" + +#: ../Doc/library/syslog.rst:48 +msgid "" +"In previous versions, keyword arguments were not allowed, and *ident* was " +"required. The default for *ident* was dependent on the system libraries, " +"and often was ``python`` instead of the name of the Python program file." +msgstr "" + +#: ../Doc/library/syslog.rst:56 +msgid "" +"Reset the syslog module values and call the system library ``closelog()``." +msgstr "" + +#: ../Doc/library/syslog.rst:58 +msgid "" +"This causes the module to behave as it does when initially imported. For " +"example, :func:`openlog` will be called on the first :func:`syslog` call " +"(if :func:`openlog` hasn't already been called), and *ident* and other :func:" +"`openlog` parameters are reset to defaults." +msgstr "" + +#: ../Doc/library/syslog.rst:66 +msgid "" +"Set the priority mask to *maskpri* and return the previous mask value. " +"Calls to :func:`syslog` with a priority level not set in *maskpri* are " +"ignored. The default is to log all priorities. The function " +"``LOG_MASK(pri)`` calculates the mask for the individual priority *pri*. " +"The function ``LOG_UPTO(pri)`` calculates the mask for all priorities up to " +"and including *pri*." +msgstr "" + +#: ../Doc/library/syslog.rst:73 +msgid "The module defines the following constants:" +msgstr "" + +#: ../Doc/library/syslog.rst:78 +msgid "Priority levels (high to low):" +msgstr "" + +#: ../Doc/library/syslog.rst:76 +msgid "" +":const:`LOG_EMERG`, :const:`LOG_ALERT`, :const:`LOG_CRIT`, :const:" +"`LOG_ERR`, :const:`LOG_WARNING`, :const:`LOG_NOTICE`, :const:`LOG_INFO`, :" +"const:`LOG_DEBUG`." +msgstr "" + +#: ../Doc/library/syslog.rst:85 +msgid "Facilities:" +msgstr "" + +#: ../Doc/library/syslog.rst:81 +msgid "" +":const:`LOG_KERN`, :const:`LOG_USER`, :const:`LOG_MAIL`, :const:" +"`LOG_DAEMON`, :const:`LOG_AUTH`, :const:`LOG_LPR`, :const:`LOG_NEWS`, :const:" +"`LOG_UUCP`, :const:`LOG_CRON`, :const:`LOG_SYSLOG`, :const:`LOG_LOCAL0` to :" +"const:`LOG_LOCAL7`, and, if defined in ````, :const:`LOG_AUTHPRIV`." +msgstr "" + +#: ../Doc/library/syslog.rst:91 +msgid "Log options:" +msgstr "" + +#: ../Doc/library/syslog.rst:88 +msgid "" +":const:`LOG_PID`, :const:`LOG_CONS`, :const:`LOG_NDELAY`, and, if defined in " +"````, :const:`LOG_ODELAY`, :const:`LOG_NOWAIT`, and :const:" +"`LOG_PERROR`." +msgstr "" + +#: ../Doc/library/syslog.rst:94 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/syslog.rst:97 +msgid "Simple example" +msgstr "" + +#: ../Doc/library/syslog.rst:99 +msgid "A simple set of examples::" +msgstr "" + +#: ../Doc/library/syslog.rst:107 +msgid "" +"An example of setting some log options, these would include the process ID " +"in logged messages, and write the messages to the destination facility used " +"for mail logging::" +msgstr "" diff --git a/library/tabnanny.po b/library/tabnanny.po new file mode 100644 index 000000000..de3974635 --- /dev/null +++ b/library/tabnanny.po @@ -0,0 +1,100 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-04 12:17+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.1.1\n" + +#: ../Doc/library/tabnanny.rst:2 +msgid ":mod:`tabnanny` --- Detection of ambiguous indentation" +msgstr ":mod:`tabnanny` — Détection d'indentation ambiguë" + +#: ../Doc/library/tabnanny.rst:13 +msgid "**Source code:** :source:`Lib/tabnanny.py`" +msgstr "**Code source :** :source:`Lib/tabnanny.py`" + +#: ../Doc/library/tabnanny.rst:17 +msgid "" +"For the time being this module is intended to be called as a script. However " +"it is possible to import it into an IDE and use the function :func:`check` " +"described below." +msgstr "" +"Pour l'instant ce module est destiné à être appelé comme un script. " +"Toutefois, il est possible de l'importer dans un IDE et d'utiliser la " +"fonction :func:`check` décrite ci-dessous." + +#: ../Doc/library/tabnanny.rst:23 +msgid "" +"The API provided by this module is likely to change in future releases; such " +"changes may not be backward compatible." +msgstr "" +"L'API fournie par ce module est susceptible de changer dans les versions " +"futures ; ces modifications peuvent ne pas être rétro-compatibles." + +#: ../Doc/library/tabnanny.rst:29 +msgid "" +"If *file_or_dir* is a directory and not a symbolic link, then recursively " +"descend the directory tree named by *file_or_dir*, checking all :file:`.py` " +"files along the way. If *file_or_dir* is an ordinary Python source file, it " +"is checked for whitespace related problems. The diagnostic messages are " +"written to standard output using the :func:`print` function." +msgstr "" +"Si *file_or_dir* est un répertoire et non un lien symbolique, alors descend " +"récursivement l'arborescence de répertoire nommé par *file_or_dir*, en " +"vérifiant tous les fichiers :file:`.py` en chemin. Si *file_or_dir* est un " +"fichier source Python ordinaire, il est vérifié pour les problèmes liés aux " +"espaces blancs. Les messages de diagnostic sont écrits sur la sortie " +"standard à l'aide de la fonction :func:`print`." + +#: ../Doc/library/tabnanny.rst:38 +msgid "" +"Flag indicating whether to print verbose messages. This is incremented by " +"the ``-v`` option if called as a script." +msgstr "" +"Option indiquant s'il faut afficher des messages détaillés. Cela est " +"incrémenté par l'option ``-v`` s'il est appelé comme un script." + +#: ../Doc/library/tabnanny.rst:44 +msgid "" +"Flag indicating whether to print only the filenames of files containing " +"whitespace related problems. This is set to true by the ``-q`` option if " +"called as a script." +msgstr "" +"Option indiquant s'il faut afficher uniquement les noms de fichiers " +"contenant des problèmes liés aux espaces blancs. Est défini à True par " +"l'option ``-q`` s'il est appelé comme un script." + +#: ../Doc/library/tabnanny.rst:51 +msgid "" +"Raised by :func:`process_tokens` if detecting an ambiguous indent. Captured " +"and handled in :func:`check`." +msgstr "" +"Déclenché par :func:`process_tokens` si une indentation ambiguë est " +"détectée. Capturé et géré dans :func:`check`." + +#: ../Doc/library/tabnanny.rst:57 +msgid "" +"This function is used by :func:`check` to process tokens generated by the :" +"mod:`tokenize` module." +msgstr "" +"Cette fonction est utilisée par :func:`check` pour traiter les jetons " +"générés par le module :mod:`tokenize`." + +#: ../Doc/library/tabnanny.rst:66 +msgid "Module :mod:`tokenize`" +msgstr "Module :mod:`tokenize`" + +#: ../Doc/library/tabnanny.rst:67 +msgid "Lexical scanner for Python source code." +msgstr "Analyseur lexical pour le code source Python." diff --git a/library/tarfile.po b/library/tarfile.po new file mode 100644 index 000000000..8443d6fc1 --- /dev/null +++ b/library/tarfile.po @@ -0,0 +1,1404 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/tarfile.rst:2 +msgid ":mod:`tarfile` --- Read and write tar archive files" +msgstr ":mod:`tarfile` — Lecture et écriture de fichiers d'archives **tar**" + +#: ../Doc/library/tarfile.rst:10 +msgid "**Source code:** :source:`Lib/tarfile.py`" +msgstr "**Code source :** :source:`Lib/tarfile.py`" + +#: ../Doc/library/tarfile.rst:14 +msgid "" +"The :mod:`tarfile` module makes it possible to read and write tar archives, " +"including those using gzip, bz2 and lzma compression. Use the :mod:`zipfile` " +"module to read or write :file:`.zip` files, or the higher-level functions " +"in :ref:`shutil `." +msgstr "" +"Le module :mod:`tarfile` rend possible la lecture et l'écriture des archives " +"*tar*, incluant celles utilisant la compression *gzip*, *bz2* et *lzma*. " +"Utilisez le module :mod:`zipfile` pour lire ou écrire des fichiers :file:" +"`zip`, ou les fonctions de niveau supérieur dans :ref:`shutil `." + +#: ../Doc/library/tarfile.rst:19 +msgid "Some facts and figures:" +msgstr "Quelques faits et chiffres :" + +#: ../Doc/library/tarfile.rst:21 +msgid "" +"reads and writes :mod:`gzip`, :mod:`bz2` and :mod:`lzma` compressed archives " +"if the respective modules are available." +msgstr "" +"lit et écrit des archives compressées avec :mod:`gzip`, :mod:`bz2` ou :mod:" +"`lzma` si les modules respectifs sont disponibles." + +#: ../Doc/library/tarfile.rst:24 +msgid "read/write support for the POSIX.1-1988 (ustar) format." +msgstr "" +"prise en charge de la lecture/écriture pour le format *POSIX.1-1988* " +"(*ustar*)." + +#: ../Doc/library/tarfile.rst:26 +msgid "" +"read/write support for the GNU tar format including *longname* and " +"*longlink* extensions, read-only support for all variants of the *sparse* " +"extension including restoration of sparse files." +msgstr "" +"prise en charge de la lecture/écriture pour le format GNU *tar* incluant les " +"extensions *longname* et *longlink*, prise en charge de la lecture seule de " +"toutes les variantes de l'extension *sparse* incluant la restauration des " +"fichiers discontinus." + +#: ../Doc/library/tarfile.rst:30 +msgid "read/write support for the POSIX.1-2001 (pax) format." +msgstr "" +"prise en charge de la lecture/écriture pour le format *POSIX.1-2001* (*pax*)." + +#: ../Doc/library/tarfile.rst:32 +msgid "" +"handles directories, regular files, hardlinks, symbolic links, fifos, " +"character devices and block devices and is able to acquire and restore file " +"information like timestamp, access permissions and owner." +msgstr "" +"gère les répertoires, les fichiers normaux, les liens directs (*hard links* " +"en anglais), les liens symboliques, les tubes nommés (*FIFO* en anglais), " +"les périphériques de caractère et les périphériques de bloc et est en mesure " +"d'acquérir et de restaurer les informations du fichier comme l'horodatage, " +"les autorisations d'accès et le propriétaire." + +#: ../Doc/library/tarfile.rst:36 +msgid "Added support for :mod:`lzma` compression." +msgstr "prise en charge de la compression :mod:`lzma`." + +#: ../Doc/library/tarfile.rst:42 +msgid "" +"Return a :class:`TarFile` object for the pathname *name*. For detailed " +"information on :class:`TarFile` objects and the keyword arguments that are " +"allowed, see :ref:`tarfile-objects`." +msgstr "" +"Renvoie un objet :class:`TarFile` pour le nom de chemin *name*. Pour plus " +"d'informations sur les objets :class:`TarFile` et les mot-clefs arguments " +"permis, voir :ref:`tarfile-objects`." + +#: ../Doc/library/tarfile.rst:46 +msgid "" +"*mode* has to be a string of the form ``'filemode[:compression]'``, it " +"defaults to ``'r'``. Here is a full list of mode combinations:" +msgstr "" +"Le *mode* doit être une chaîne de caractères de la forme ``'filemode[:" +"compression]'``, par défaut à ``'r'``. Voici une liste complète des " +"combinaisons de mode :" + +#: ../Doc/library/tarfile.rst:50 +msgid "mode" +msgstr "mode" + +#: ../Doc/library/tarfile.rst:50 +msgid "action" +msgstr "action" + +#: ../Doc/library/tarfile.rst:52 +msgid "``'r' or 'r:*'``" +msgstr "``'r' ou 'r:*'``" + +#: ../Doc/library/tarfile.rst:52 +msgid "Open for reading with transparent compression (recommended)." +msgstr "Ouvre en lecture avec compression transparente (recommandé)." + +#: ../Doc/library/tarfile.rst:55 +msgid "``'r:'``" +msgstr "``'r:'``" + +#: ../Doc/library/tarfile.rst:55 +msgid "Open for reading exclusively without compression." +msgstr "Ouvre en lecture, sans compression." + +#: ../Doc/library/tarfile.rst:58 +msgid "``'r:gz'``" +msgstr "``'r:gz'``" + +#: ../Doc/library/tarfile.rst:58 +msgid "Open for reading with gzip compression." +msgstr "Ouvre en lecture avec la compression *gzip*." + +#: ../Doc/library/tarfile.rst:60 +msgid "``'r:bz2'``" +msgstr "``'r:bz2'``" + +#: ../Doc/library/tarfile.rst:60 +msgid "Open for reading with bzip2 compression." +msgstr "Ouvre en lecture avec la compression *bzip2*." + +#: ../Doc/library/tarfile.rst:62 +msgid "``'r:xz'``" +msgstr "``'r:xz'``" + +#: ../Doc/library/tarfile.rst:62 +msgid "Open for reading with lzma compression." +msgstr "Ouvre en lecture avec la compression *lzma*." + +#: ../Doc/library/tarfile.rst:64 +msgid "``'x'`` or ``'x:'``" +msgstr "``'x'`` ou ``'x:'``" + +#: ../Doc/library/tarfile.rst:64 +msgid "" +"Create a tarfile exclusively without compression. Raise an :exc:" +"`FileExistsError` exception if it already exists." +msgstr "" +"Crée un fichier *tar* sans compression. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." + +#: ../Doc/library/tarfile.rst:69 +msgid "``'x:gz'``" +msgstr "``'x:gz'``" + +#: ../Doc/library/tarfile.rst:69 +msgid "" +"Create a tarfile with gzip compression. Raise an :exc:`FileExistsError` " +"exception if it already exists." +msgstr "" +"Crée un fichier *tar* avec la compression *gzip*. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." + +#: ../Doc/library/tarfile.rst:73 +msgid "``'x:bz2'``" +msgstr "``'x:bz2'``" + +#: ../Doc/library/tarfile.rst:73 +msgid "" +"Create a tarfile with bzip2 compression. Raise an :exc:`FileExistsError` " +"exception if it already exists." +msgstr "" +"Crée un fichier *tar* avec la compression *bzip2*. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." + +#: ../Doc/library/tarfile.rst:77 +msgid "``'x:xz'``" +msgstr "``'x:xz'``" + +#: ../Doc/library/tarfile.rst:77 +msgid "" +"Create a tarfile with lzma compression. Raise an :exc:`FileExistsError` " +"exception if it already exists." +msgstr "" +"Crée un fichier *tar* avec la compression *lzma*. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." + +#: ../Doc/library/tarfile.rst:81 +msgid "``'a' or 'a:'``" +msgstr "``'a' ou 'a:'``" + +#: ../Doc/library/tarfile.rst:81 +msgid "" +"Open for appending with no compression. The file is created if it does not " +"exist." +msgstr "" +"Ouvre pour ajouter à la fin, sans compression. Le fichier est créé s'il " +"n'existe pas." + +#: ../Doc/library/tarfile.rst:84 +msgid "``'w' or 'w:'``" +msgstr "``'w' ou 'w:'``" + +#: ../Doc/library/tarfile.rst:84 +msgid "Open for uncompressed writing." +msgstr "Ouvre en écriture, sans compression." + +#: ../Doc/library/tarfile.rst:86 +msgid "``'w:gz'``" +msgstr "``'w:gz'``" + +#: ../Doc/library/tarfile.rst:86 +msgid "Open for gzip compressed writing." +msgstr "Ouvre en écriture avec compression *gzip*." + +#: ../Doc/library/tarfile.rst:88 +msgid "``'w:bz2'``" +msgstr "``'w:bz2'``" + +#: ../Doc/library/tarfile.rst:88 +msgid "Open for bzip2 compressed writing." +msgstr "Ouvre en écriture avec compression *bzip2*." + +#: ../Doc/library/tarfile.rst:90 +msgid "``'w:xz'``" +msgstr "``'w:xz'``" + +#: ../Doc/library/tarfile.rst:90 +msgid "Open for lzma compressed writing." +msgstr "Ouvre en écriture avec la compression *lzma*." + +#: ../Doc/library/tarfile.rst:93 +msgid "" +"Note that ``'a:gz'``, ``'a:bz2'`` or ``'a:xz'`` is not possible. If *mode* " +"is not suitable to open a certain (compressed) file for reading, :exc:" +"`ReadError` is raised. Use *mode* ``'r'`` to avoid this. If a compression " +"method is not supported, :exc:`CompressionError` is raised." +msgstr "" +"Notez que les combinaisons ``'a:gz'``, ``'a:bz2'`` ou ``'a:xz'`` ne sont pas " +"possible. Si le mode n'est pas adapté pour ouvrir un certain fichier " +"(compressé) pour la lecture, une exception :exc:`ReadError` est levée. " +"Utilisez le mode ``'r'`` pour éviter cela. Si une méthode de compression " +"n'est pas prise en charge, :exc:`CompressionError` est levée." + +#: ../Doc/library/tarfile.rst:98 +msgid "" +"If *fileobj* is specified, it is used as an alternative to a :term:`file " +"object` opened in binary mode for *name*. It is supposed to be at position 0." +msgstr "" +"Si *fileobj* est spécifié, il est utilisé comme une alternative au :term:" +"`file object` ouvert en mode binaire pour *name*. Il est censé être à la " +"position 0." + +#: ../Doc/library/tarfile.rst:101 +msgid "" +"For modes ``'w:gz'``, ``'r:gz'``, ``'w:bz2'``, ``'r:bz2'``, ``'x:gz'``, ``'x:" +"bz2'``, :func:`tarfile.open` accepts the keyword argument *compresslevel* " +"(default ``9``) to specify the compression level of the file." +msgstr "" +"Pour les modes ``'w:gz'``, ``'r:gz'``, ``'w:bz2'``, ``'r:bz2'``, ``'x:gz'``, " +"``'x:bz2'``, :func:`tarfile.open` accepte l'argument nommé *compresslevel* " +"(par défaut à ``9``) pour spécifier le niveau de compression du fichier." + +#: ../Doc/library/tarfile.rst:105 +msgid "" +"For special purposes, there is a second format for *mode*: ``'filemode|" +"[compression]'``. :func:`tarfile.open` will return a :class:`TarFile` " +"object that processes its data as a stream of blocks. No random seeking " +"will be done on the file. If given, *fileobj* may be any object that has a :" +"meth:`read` or :meth:`write` method (depending on the *mode*). *bufsize* " +"specifies the blocksize and defaults to ``20 * 512`` bytes. Use this variant " +"in combination with e.g. ``sys.stdin``, a socket :term:`file object` or a " +"tape device. However, such a :class:`TarFile` object is limited in that it " +"does not allow random access, see :ref:`tar-examples`. The currently " +"possible modes:" +msgstr "" +"Pour des cas particuliers, il existe un deuxième format pour le *mode* : " +"``'filemode[compression]'``. :func:`tarfile.open` renvoie un objet :class:" +"`TarFile` qui traite ses données comme un flux de blocs. Aucun retour en " +"arrière ne sera effectué lors de la lecture du fichier. S'il est donné, " +"*fileobj* peut être n'importe quel objet qui a une méthode :meth:`read` ou :" +"meth:`write` (selon le *mode*). Le paramètre *bufsize* spécifie la taille du " +"bloc et vaut par défaut ``20 * 512`` octets. Utilisez cette variante en " +"combinaison avec par exemple ``sys.stdin``, une connexion (*socket* en " +"anglais) :term:`file object` ou un dispositif de bande. Cependant, un tel " +"objet :class:`TarFile` est limité en ce qu'il ne permet pas l'accès " +"aléatoire, voir :ref:`tar-examples`. Les modes actuellement possibles :" + +#: ../Doc/library/tarfile.rst:117 +msgid "Mode" +msgstr "Mode" + +#: ../Doc/library/tarfile.rst:117 +msgid "Action" +msgstr "Action" + +#: ../Doc/library/tarfile.rst:119 +msgid "``'r|*'``" +msgstr "``'r|*'``" + +#: ../Doc/library/tarfile.rst:119 +msgid "Open a *stream* of tar blocks for reading with transparent compression." +msgstr "" +"Ouvre un *flux* des blocs de *tar* en lecture avec une compression " +"transparente." + +#: ../Doc/library/tarfile.rst:122 +msgid "``'r|'``" +msgstr "``'r|'``" + +#: ../Doc/library/tarfile.rst:122 +msgid "Open a *stream* of uncompressed tar blocks for reading." +msgstr "Ouvre un *flux* de blocs *tar* non compressés en lecture." + +#: ../Doc/library/tarfile.rst:125 +msgid "``'r|gz'``" +msgstr "``'r|gz'``" + +#: ../Doc/library/tarfile.rst:125 +msgid "Open a gzip compressed *stream* for reading." +msgstr "Ouvre un flux compressé avec *gzip* en lecture." + +#: ../Doc/library/tarfile.rst:128 +msgid "``'r|bz2'``" +msgstr "``'r|bz2'``" + +#: ../Doc/library/tarfile.rst:128 +msgid "Open a bzip2 compressed *stream* for reading." +msgstr "Ouvre un *flux* compressé avec *bzip2* en lecture." + +#: ../Doc/library/tarfile.rst:131 +msgid "``'r|xz'``" +msgstr "``'r|xz'``" + +#: ../Doc/library/tarfile.rst:131 +msgid "Open an lzma compressed *stream* for reading." +msgstr "Ouvre un *flux* compressé avec *lzma* en lecture." + +#: ../Doc/library/tarfile.rst:134 +msgid "``'w|'``" +msgstr "``'w|'``" + +#: ../Doc/library/tarfile.rst:134 +msgid "Open an uncompressed *stream* for writing." +msgstr "Ouvre un *flux* non compressé en écriture." + +#: ../Doc/library/tarfile.rst:136 +msgid "``'w|gz'``" +msgstr "``'w|gz'``" + +#: ../Doc/library/tarfile.rst:136 +msgid "Open a gzip compressed *stream* for writing." +msgstr "Ouvre un *flux* compressé avec *gzip* en écriture." + +#: ../Doc/library/tarfile.rst:139 +msgid "``'w|bz2'``" +msgstr "``'w|bz2'``" + +#: ../Doc/library/tarfile.rst:139 +msgid "Open a bzip2 compressed *stream* for writing." +msgstr "Ouvre un *flux* compressé avec *bzip2* en écriture." + +#: ../Doc/library/tarfile.rst:142 +msgid "``'w|xz'``" +msgstr "``'w|xz'``" + +#: ../Doc/library/tarfile.rst:142 +msgid "Open an lzma compressed *stream* for writing." +msgstr "Ouvre un *flux* compressé avec *lzma* en écriture." + +#: ../Doc/library/tarfile.rst:146 ../Doc/library/tarfile.rst:324 +msgid "The ``'x'`` (exclusive creation) mode was added." +msgstr "Le mode ``'x'`` (création exclusive) est créé." + +#: ../Doc/library/tarfile.rst:149 ../Doc/library/tarfile.rst:327 +#: ../Doc/library/tarfile.rst:495 +msgid "The *name* parameter accepts a :term:`path-like object`." +msgstr "le paramètre *name* accepte un :term:`path-like object`." + +#: ../Doc/library/tarfile.rst:155 +msgid "" +"Class for reading and writing tar archives. Do not use this class directly: " +"use :func:`tarfile.open` instead. See :ref:`tarfile-objects`." +msgstr "" +"Classe pour la lecture et l'écriture d'archives *tar*. N'utilisez pas cette " +"classe directement, préférez :func:`tarfile.open`. Voir :ref:`tarfile-" +"objects`." + +#: ../Doc/library/tarfile.rst:161 +msgid "" +"Return :const:`True` if *name* is a tar archive file, that the :mod:" +"`tarfile` module can read." +msgstr "" + +#: ../Doc/library/tarfile.rst:165 +msgid "The :mod:`tarfile` module defines the following exceptions:" +msgstr "Le module :mod:`tarfile` définit les exceptions suivantes :" + +#: ../Doc/library/tarfile.rst:170 +msgid "Base class for all :mod:`tarfile` exceptions." +msgstr "Classe de base pour toutes les exceptions du module :mod:`tarfile`." + +#: ../Doc/library/tarfile.rst:175 +msgid "" +"Is raised when a tar archive is opened, that either cannot be handled by " +"the :mod:`tarfile` module or is somehow invalid." +msgstr "" +"Est levée lors de l'ouverture d'une archive *tar*, qui ne peut pas être " +"gérée par le module :mod:`tarfile` ou est invalide." + +#: ../Doc/library/tarfile.rst:181 +msgid "" +"Is raised when a compression method is not supported or when the data cannot " +"be decoded properly." +msgstr "" +"Est levée lorsqu'une méthode de compression n'est pas prise en charge ou " +"lorsque les données ne peuvent pas être décodées correctement." + +#: ../Doc/library/tarfile.rst:187 +msgid "" +"Is raised for the limitations that are typical for stream-like :class:" +"`TarFile` objects." +msgstr "" +"Est levée pour les limitations typiques des objets de type flux :class:" +"`TarFile`." + +#: ../Doc/library/tarfile.rst:193 +msgid "" +"Is raised for *non-fatal* errors when using :meth:`TarFile.extract`, but " +"only if :attr:`TarFile.errorlevel`\\ ``== 2``." +msgstr "" +"Est levée pour des erreurs *non-fatales* lors de l'utilisation de :meth:" +"`TarFile.extract`, mais uniquement si :attr:`TarFile.errorlevel`\\ `` == 2``." + +#: ../Doc/library/tarfile.rst:199 +msgid "Is raised by :meth:`TarInfo.frombuf` if the buffer it gets is invalid." +msgstr "" +"Est levée par :meth:`TarInfo.frombuf` si le tampon qu'il obtient n'est pas " +"valide." + +#: ../Doc/library/tarfile.rst:202 +msgid "The following constants are available at the module level:" +msgstr "Les constantes suivantes sont disponibles au niveau du module :" + +#: ../Doc/library/tarfile.rst:206 +msgid "" +"The default character encoding: ``'utf-8'`` on Windows, the value returned " +"by :func:`sys.getfilesystemencoding` otherwise." +msgstr "" +"L'encodage des caractères par défaut est ``'utf-8'`` sous Windows, sinon la " +"valeur renvoyée par :func:`sys.getfilesystemencoding`." + +#: ../Doc/library/tarfile.rst:210 +msgid "" +"Each of the following constants defines a tar archive format that the :mod:" +"`tarfile` module is able to create. See section :ref:`tar-formats` for " +"details." +msgstr "" +"Chacune des constantes suivantes définit un format d'archive *tar* que le " +"module :mod:`tarfile` est capable de créer. Voir la section :ref:`tar-" +"formats` pour plus de détails." + +#: ../Doc/library/tarfile.rst:217 +msgid "POSIX.1-1988 (ustar) format." +msgstr "Le format *POSIX.1-1988* (*ustar*)." + +#: ../Doc/library/tarfile.rst:222 +msgid "GNU tar format." +msgstr "Le format GNU *tar*." + +#: ../Doc/library/tarfile.rst:227 +msgid "POSIX.1-2001 (pax) format." +msgstr "Le format *POSIX.1-2001* (*pax*)." + +#: ../Doc/library/tarfile.rst:232 +msgid "" +"The default format for creating archives. This is currently :const:" +"`GNU_FORMAT`." +msgstr "" + +#: ../Doc/library/tarfile.rst:238 +msgid "Module :mod:`zipfile`" +msgstr "Module :mod:`zipfile`" + +#: ../Doc/library/tarfile.rst:238 +msgid "Documentation of the :mod:`zipfile` standard module." +msgstr "Documentation du module standard :mod:`zipfile`." + +#: ../Doc/library/tarfile.rst:242 +msgid ":ref:`archiving-operations`" +msgstr ":ref:`archiving-operations`" + +#: ../Doc/library/tarfile.rst:241 +msgid "" +"Documentation of the higher-level archiving facilities provided by the " +"standard :mod:`shutil` module." +msgstr "" +"Documentation des outils d'archivage de haut niveau fournis par le module " +"standard :mod:`shutil`." + +#: ../Doc/library/tarfile.rst:244 +msgid "" +"`GNU tar manual, Basic Tar Format `_" +msgstr "" +"`Manuel GNU *tar*, format *tar* basique (en anglais) `_" + +#: ../Doc/library/tarfile.rst:245 +msgid "Documentation for tar archive files, including GNU tar extensions." +msgstr "" +"Documentation pour les fichiers d'archive *tar*, y compris les extensions " +"*tar* GNU." + +#: ../Doc/library/tarfile.rst:251 +msgid "TarFile Objects" +msgstr "Les objets *TarFile*" + +#: ../Doc/library/tarfile.rst:253 +msgid "" +"The :class:`TarFile` object provides an interface to a tar archive. A tar " +"archive is a sequence of blocks. An archive member (a stored file) is made " +"up of a header block followed by data blocks. It is possible to store a file " +"in a tar archive several times. Each archive member is represented by a :" +"class:`TarInfo` object, see :ref:`tarinfo-objects` for details." +msgstr "" +"L'objet :class:`TarFile` fournit une interface vers une archive *tar*. Une " +"archive *tar* est une séquence de blocs. Un membre d'archive (un fichier " +"stocké) est composé d'un bloc d'en-tête suivi des blocs de données. Il est " +"possible de stocker plusieurs fois un fichier dans une archive *tar*. Chaque " +"membre d'archive est représenté par un objet :class:`TarInfo`, voir :ref:" +"`tarinfo-objects` pour plus de détails." + +#: ../Doc/library/tarfile.rst:259 +msgid "" +"A :class:`TarFile` object can be used as a context manager in a :keyword:" +"`with` statement. It will automatically be closed when the block is " +"completed. Please note that in the event of an exception an archive opened " +"for writing will not be finalized; only the internally used file object will " +"be closed. See the :ref:`tar-examples` section for a use case." +msgstr "" +"Un objet :class:`TarFile` peut être utilisé comme gestionnaire de contexte " +"dans une instruction :keyword:`with`. Il sera automatiquement fermé une fois " +"le bloc terminé. Veuillez noter qu'en cas d'exception, une archive ouverte " +"en écriture ne sera pas finalisée ; seul l'objet fichier utilisé en interne " +"sera fermé. Voir la section :ref:`tar-examples` pour un cas d'utilisation." + +#: ../Doc/library/tarfile.rst:265 +msgid "Added support for the context management protocol." +msgstr "Ajout de la prise en charge du protocole de gestion de contexte." + +#: ../Doc/library/tarfile.rst:270 +msgid "" +"All following arguments are optional and can be accessed as instance " +"attributes as well." +msgstr "" +"Tous les arguments suivants sont facultatifs et sont également accessibles " +"en tant qu'instance d'attributs." + +#: ../Doc/library/tarfile.rst:273 +msgid "" +"*name* is the pathname of the archive. *name* may be a :term:`path-like " +"object`. It can be omitted if *fileobj* is given. In this case, the file " +"object's :attr:`name` attribute is used if it exists." +msgstr "" +"Le *name* est le chemin d'accès de l'archive. *name* peut être un :term:" +"`path-like object`. Il peut être omis si *fileobj* est donné. Dans ce cas, " +"l'attribut :attr:`name` de l'objet fichier est utilisé s'il existe." + +#: ../Doc/library/tarfile.rst:277 +msgid "" +"*mode* is either ``'r'`` to read from an existing archive, ``'a'`` to append " +"data to an existing file, ``'w'`` to create a new file overwriting an " +"existing one, or ``'x'`` to create a new file only if it does not already " +"exist." +msgstr "" +"Le *mode* est soit ``'r'`` pour lire à partir d'une archive existante, " +"``'a'`` pour ajouter des données à un fichier existant, ``'w'`` pour créer " +"un nouveau fichier en écrasant un existant , ou ``'x'`` pour créer un " +"nouveau fichier uniquement s'il n'existe pas déjà." + +#: ../Doc/library/tarfile.rst:281 +msgid "" +"If *fileobj* is given, it is used for reading or writing data. If it can be " +"determined, *mode* is overridden by *fileobj*'s mode. *fileobj* will be used " +"from position 0." +msgstr "" +"Si *fileobj* est fourni, il est utilisé pour lire ou écrire des données. " +"S'il peut être déterminé, le *mode* est remplacé par le mode de *fileobj*. " +"*fileobj* sera utilisé à partir de la position 0." + +#: ../Doc/library/tarfile.rst:287 +msgid "*fileobj* is not closed, when :class:`TarFile` is closed." +msgstr "*fileobj* n'est pas fermé, lorsque :class:`TarFile` est fermé." + +#: ../Doc/library/tarfile.rst:289 +msgid "" +"*format* controls the archive format. It must be one of the constants :const:" +"`USTAR_FORMAT`, :const:`GNU_FORMAT` or :const:`PAX_FORMAT` that are defined " +"at module level." +msgstr "" + +#: ../Doc/library/tarfile.rst:293 +msgid "" +"The *tarinfo* argument can be used to replace the default :class:`TarInfo` " +"class with a different one." +msgstr "" +"L'argument *tarinfo* peut être utilisé pour remplacer la classe par défaut :" +"class:`TarInfo` par une autre." + +#: ../Doc/library/tarfile.rst:296 +msgid "" +"If *dereference* is :const:`False`, add symbolic and hard links to the " +"archive. If it is :const:`True`, add the content of the target files to the " +"archive. This has no effect on systems that do not support symbolic links." +msgstr "" +"Si *dereference* est :const:`False`, ajoute des liens symboliques et " +"physiques à l'archive. Si c'est :const:`True`, ajoute le contenu des " +"fichiers cibles à l'archive. Cela n'a aucun effet sur les systèmes qui ne " +"prennent pas en charge les liens symboliques." + +#: ../Doc/library/tarfile.rst:300 +msgid "" +"If *ignore_zeros* is :const:`False`, treat an empty block as the end of the " +"archive. If it is :const:`True`, skip empty (and invalid) blocks and try to " +"get as many members as possible. This is only useful for reading " +"concatenated or damaged archives." +msgstr "" +"Si *ignore_zeros* est :const:`False`, traite un bloc vide comme la fin de " +"l'archive. Si c'est le cas :const:`True`, saute les blocs vides (et " +"invalides) et essaye d'obtenir autant de membres que possible. Ceci n'est " +"utile que pour lire des archives concaténées ou endommagées." + +#: ../Doc/library/tarfile.rst:304 +msgid "" +"*debug* can be set from ``0`` (no debug messages) up to ``3`` (all debug " +"messages). The messages are written to ``sys.stderr``." +msgstr "" +"*debug* peut être défini de ``0`` (aucun message de débogage) à ``3`` (tous " +"les messages de débogage). Les messages sont écrits dans ``sys.stderr``." + +#: ../Doc/library/tarfile.rst:307 +msgid "" +"If *errorlevel* is ``0``, all errors are ignored when using :meth:`TarFile." +"extract`. Nevertheless, they appear as error messages in the debug output, " +"when debugging is enabled. If ``1``, all *fatal* errors are raised as :exc:" +"`OSError` exceptions. If ``2``, all *non-fatal* errors are raised as :exc:" +"`TarError` exceptions as well." +msgstr "" +"Si *errorlevel* est ``0``, toutes les erreurs sont ignorées lors de " +"l'utilisation de :meth:`TarFile.extract`. Néanmoins, ils apparaissent comme " +"des messages d'erreur dans la sortie de débogage, lorsque le débogage est " +"activé. Si ``1``, toutes les erreurs *fatales* sont déclenchées comme des " +"exceptions :exc:`OSError` . Si ``2``, toutes les erreurs *non-fatales* sont " +"déclenchées comme des exceptions :exc:`TarError` également." + +#: ../Doc/library/tarfile.rst:313 +msgid "" +"The *encoding* and *errors* arguments define the character encoding to be " +"used for reading or writing the archive and how conversion errors are going " +"to be handled. The default settings will work for most users. See section :" +"ref:`tar-unicode` for in-depth information." +msgstr "" +"Les arguments *encoding* et *errors* définissent l'encodage de caractères à " +"utiliser pour lire ou écrire l'archive et comment les erreurs de conversion " +"vont être traitées. Les paramètres par défaut fonctionneront pour la plupart " +"des utilisateurs. Voir la section :ref:`tar-unicode` pour des informations " +"détaillées." + +#: ../Doc/library/tarfile.rst:318 +msgid "" +"The *pax_headers* argument is an optional dictionary of strings which will " +"be added as a pax global header if *format* is :const:`PAX_FORMAT`." +msgstr "" +"L'argument *pax_headers* est un dictionnaire facultatif de chaînes de " +"caractères qui sera ajouté en tant qu'en-tête global *pax* si le *format* " +"est :const:`PAX_FORMAT`." + +#: ../Doc/library/tarfile.rst:321 ../Doc/library/tarfile.rst:548 +msgid "Use ``'surrogateescape'`` as the default for the *errors* argument." +msgstr "" +"Utilise ``'surrogateescape'`` comme valeur par défaut pour l'argument " +"*errors*." + +#: ../Doc/library/tarfile.rst:333 +msgid "" +"Alternative constructor. The :func:`tarfile.open` function is actually a " +"shortcut to this classmethod." +msgstr "" +"Constructeur alternatif. La fonction :func:`tarfile.open` est en fait un " +"raccourci vers cette méthode de classe." + +#: ../Doc/library/tarfile.rst:339 +msgid "" +"Return a :class:`TarInfo` object for member *name*. If *name* can not be " +"found in the archive, :exc:`KeyError` is raised." +msgstr "" +"Renvoie un objet :class:`TarInfo` pour le membre *name*. Si *name* est " +"introuvable dans l'archive, :exc:`KeyError` est levée." + +#: ../Doc/library/tarfile.rst:344 +msgid "" +"If a member occurs more than once in the archive, its last occurrence is " +"assumed to be the most up-to-date version." +msgstr "" +"Si un membre apparaît plus d'une fois dans l'archive, sa dernière occurrence " +"est supposée être la version la plus récente." + +#: ../Doc/library/tarfile.rst:350 +msgid "" +"Return the members of the archive as a list of :class:`TarInfo` objects. The " +"list has the same order as the members in the archive." +msgstr "" +"Renvoie les membres de l'archive sous la forme d'une liste d'objets :class:" +"`TarInfo`. La liste a le même ordre que les membres de l'archive." + +#: ../Doc/library/tarfile.rst:356 +msgid "" +"Return the members as a list of their names. It has the same order as the " +"list returned by :meth:`getmembers`." +msgstr "" +"Renvoie les membres comme une liste de leurs noms. Il a le même ordre que la " +"liste renvoyée par :meth:`getmembers`." + +#: ../Doc/library/tarfile.rst:362 +msgid "" +"Print a table of contents to ``sys.stdout``. If *verbose* is :const:`False`, " +"only the names of the members are printed. If it is :const:`True`, output " +"similar to that of :program:`ls -l` is produced. If optional *members* is " +"given, it must be a subset of the list returned by :meth:`getmembers`." +msgstr "" +"Imprime une table des matières dans ``sys.stdout``. Si *verbose* est :const:" +"`False`, seuls les noms des membres sont imprimés. Si c'est :const:`True`, " +"une sortie similaire à celle de :program:`ls -l` est produite. Si des " +"*membres* facultatifs sont fournis, il doit s'agir d'un sous-ensemble de la " +"liste renvoyée par :meth:`getmembers`." + +#: ../Doc/library/tarfile.rst:367 +msgid "Added the *members* parameter." +msgstr "Ajout du paramètre *members*." + +#: ../Doc/library/tarfile.rst:373 +msgid "" +"Return the next member of the archive as a :class:`TarInfo` object, when :" +"class:`TarFile` is opened for reading. Return :const:`None` if there is no " +"more available." +msgstr "" +"Renvoie le membre suivant de l'archive en tant qu'objet :class:`TarInfo`, " +"lorsque la classe :class:`TarFile` est ouverte en lecture. Renvoie :const:" +"`None` s'il n'y a pas." + +#: ../Doc/library/tarfile.rst:380 +msgid "" +"Extract all members from the archive to the current working directory or " +"directory *path*. If optional *members* is given, it must be a subset of the " +"list returned by :meth:`getmembers`. Directory information like owner, " +"modification time and permissions are set after all members have been " +"extracted. This is done to work around two problems: A directory's " +"modification time is reset each time a file is created in it. And, if a " +"directory's permissions do not allow writing, extracting files to it will " +"fail." +msgstr "" +"Extrait tous les membres de l'archive vers le répertoire de travail actuel " +"ou le répertoire *chemin*. Si des *membres* facultatifs sont fournis, il " +"doit s'agir d'un sous-ensemble de la liste renvoyée par :meth:`getmembers`. " +"Les informations d'annuaire telles que le propriétaire, l'heure de " +"modification et les autorisations sont définies une fois tous les membres " +"extraits. Cela est fait pour contourner deux problèmes : l'heure de " +"modification d'un répertoire est réinitialisée chaque fois qu'un fichier y " +"est créé. Et, si les autorisations d'un répertoire ne permettent pas " +"l'écriture, l'extraction de fichiers échoue." + +#: ../Doc/library/tarfile.rst:388 ../Doc/library/tarfile.rst:414 +msgid "" +"If *numeric_owner* is :const:`True`, the uid and gid numbers from the " +"tarfile are used to set the owner/group for the extracted files. Otherwise, " +"the named values from the tarfile are used." +msgstr "" +"Si *numeric_owner* est :const:`True`, les numéros *uid* et *gid* du fichier " +"*tar* sont utilisés pour définir le propriétaire et le groupe des fichiers " +"extraits. Sinon, les valeurs nommées du fichier *tar* sont utilisées." + +#: ../Doc/library/tarfile.rst:394 +msgid "" +"Never extract archives from untrusted sources without prior inspection. It " +"is possible that files are created outside of *path*, e.g. members that have " +"absolute filenames starting with ``\"/\"`` or filenames with two dots ``\".." +"\"``." +msgstr "" +"Ne jamais extraire des archives de sources non fiables sans inspection " +"préalable. Il est possible que des fichiers soient créés en dehors de " +"*chemin*, par ex: les membres qui ont des noms de fichiers absolus " +"commençant par ``\"/\"`` ou des noms de fichiers avec deux points ``\"..\"``." + +#: ../Doc/library/tarfile.rst:399 ../Doc/library/tarfile.rst:430 +msgid "Added the *numeric_owner* parameter." +msgstr "Ajout du paramètre *numeric_owner*." + +#: ../Doc/library/tarfile.rst:402 ../Doc/library/tarfile.rst:433 +msgid "The *path* parameter accepts a :term:`path-like object`." +msgstr "" +"Le paramètre *path* accepte un objet chemin-compatible :term:`path-like " +"object`." + +#: ../Doc/library/tarfile.rst:408 +msgid "" +"Extract a member from the archive to the current working directory, using " +"its full name. Its file information is extracted as accurately as possible. " +"*member* may be a filename or a :class:`TarInfo` object. You can specify a " +"different directory using *path*. *path* may be a :term:`path-like object`. " +"File attributes (owner, mtime, mode) are set unless *set_attrs* is false." +msgstr "" +"Extrait un membre de l'archive vers le répertoire de travail actuel, en " +"utilisant son nom complet. Les informations de son fichier sont extraites " +"aussi précisément que possible. Le membre peut être un nom de fichier ou un " +"objet :class:`TarInfo`. Vous pouvez spécifier un répertoire différent en " +"utilisant *path*. *path* peut être un :term:`path-like object`. Les " +"attributs de fichier (propriétaire, *mtime*, mode) sont définis sauf si " +"*set_attrs* est faux." + +#: ../Doc/library/tarfile.rst:420 +msgid "" +"The :meth:`extract` method does not take care of several extraction issues. " +"In most cases you should consider using the :meth:`extractall` method." +msgstr "" +"La méthode :meth:`extract` ne prend pas en charge plusieurs problèmes " +"d'extraction. Dans la plupart des cas, vous devriez envisager d'utiliser la " +"méthode :meth:`extractall`." + +#: ../Doc/library/tarfile.rst:425 +msgid "See the warning for :meth:`extractall`." +msgstr "Voir l'avertissement pour :meth:`extractall`." + +#: ../Doc/library/tarfile.rst:427 +msgid "Added the *set_attrs* parameter." +msgstr "Ajout du paramètre *set_attrs*." + +#: ../Doc/library/tarfile.rst:439 +msgid "" +"Extract a member from the archive as a file object. *member* may be a " +"filename or a :class:`TarInfo` object. If *member* is a regular file or a " +"link, an :class:`io.BufferedReader` object is returned. Otherwise, :const:" +"`None` is returned." +msgstr "" +"Extrait un membre de l'archive en tant qu'objet fichier. *member* peut être " +"un nom de fichier ou un objet :class:`TarInfo`. Si *member* est un fichier " +"normal ou un lien, un objet :class:`io.BufferedReader` est renvoyé. Sinon, :" +"const:`None` est renvoyé." + +#: ../Doc/library/tarfile.rst:444 +msgid "Return an :class:`io.BufferedReader` object." +msgstr "Renvoie un objet :class:`io.BufferedReader`." + +#: ../Doc/library/tarfile.rst:450 +msgid "" +"Add the file *name* to the archive. *name* may be any type of file " +"(directory, fifo, symbolic link, etc.). If given, *arcname* specifies an " +"alternative name for the file in the archive. Directories are added " +"recursively by default. This can be avoided by setting *recursive* to :const:" +"`False`. Recursion adds entries in sorted order. If *filter* is given, it " +"should be a function that takes a :class:`TarInfo` object argument and " +"returns the changed :class:`TarInfo` object. If it instead returns :const:" +"`None` the :class:`TarInfo` object will be excluded from the archive. See :" +"ref:`tar-examples` for an example." +msgstr "" +"Ajoute le fichier *name* à l'archive. *name* peut être n'importe quel type " +"de fichier (répertoire, *fifo*, lien symbolique, etc.). S'il est donné, " +"*arcname* spécifie un autre nom pour le fichier dans l'archive. Les " +"répertoires sont ajoutés récursivement par défaut. Cela peut être évité en " +"définissant *récursive* sur :const:`False`. La récursivité ajoute des " +"entrées dans l'ordre trié. Si *filter* est donné, il convient que ce soit " +"une fonction qui prend un argument d'objet :class:`TarInfo` et renvoie " +"l'objet changé :class:`TarInfo`. S'il renvoie à la place :const:`None`, " +"l'objet :class:`TarInfo` sera exclu de l'archive. Voir :ref:`tar-examples` " +"pour un exemple." + +#: ../Doc/library/tarfile.rst:461 +msgid "Added the *filter* parameter." +msgstr "Ajout du paramètre *filter*." + +#: ../Doc/library/tarfile.rst:464 +msgid "Recursion adds entries in sorted order." +msgstr "La récursivité ajoute les entrées dans un ordre trié." + +#: ../Doc/library/tarfile.rst:470 +msgid "" +"Add the :class:`TarInfo` object *tarinfo* to the archive. If *fileobj* is " +"given, it should be a :term:`binary file`, and ``tarinfo.size`` bytes are " +"read from it and added to the archive. You can create :class:`TarInfo` " +"objects directly, or by using :meth:`gettarinfo`." +msgstr "" +"Ajoute l'objet :class:`TarInfo` *tarinfo* à l'archive. Si *fileobj* est " +"donné, il convient que ce soit un :term:`fichier binaire`, et les octets " +"``tarinfo.size`` sont lus à partir de celui-ci et ajoutés à l'archive. Vous " +"pouvez créer des objets :class:`TarInfo` directement, ou en utilisant :meth:" +"`gettarinfo`." + +#: ../Doc/library/tarfile.rst:478 +msgid "" +"Create a :class:`TarInfo` object from the result of :func:`os.stat` or " +"equivalent on an existing file. The file is either named by *name*, or " +"specified as a :term:`file object` *fileobj* with a file descriptor. *name* " +"may be a :term:`path-like object`. If given, *arcname* specifies an " +"alternative name for the file in the archive, otherwise, the name is taken " +"from *fileobj*’s :attr:`~io.FileIO.name` attribute, or the *name* argument. " +"The name should be a text string." +msgstr "" +"Crée un objet :class:`TarInfo` à partir du résultat de :func:`os.stat` ou " +"équivalent sur un fichier existant. Le fichier est soit nommé par *name*, " +"soit spécifié comme :term:`file object` *fileobj* avec un descripteur de " +"fichier. *name* peut être un :term:`objet` semblable à un chemin. S'il est " +"donné, *arcname* spécifie un autre nom pour le fichier dans l'archive, " +"sinon, le nom est tiré de l'attribut *fileobj* :attr:`~io.FileIO.name`, ou " +"de l'argument *name*. Le nom doit être une chaîne de texte." + +#: ../Doc/library/tarfile.rst:487 +msgid "" +"You can modify some of the :class:`TarInfo`’s attributes before you add it " +"using :meth:`addfile`. If the file object is not an ordinary file object " +"positioned at the beginning of the file, attributes such as :attr:`~TarInfo." +"size` may need modifying. This is the case for objects such as :class:" +"`~gzip.GzipFile`. The :attr:`~TarInfo.name` may also be modified, in which " +"case *arcname* could be a dummy string." +msgstr "" +"Vous pouvez modifier certains des attributs de :class:`TarInfo` avant de les " +"ajouter en utilisant :meth:`addfile`. Si l'objet fichier n'est pas un objet " +"fichier ordinaire positionné au début du fichier, des attributs tels que :" +"attr:`~TarInfo.size` peuvent nécessiter une modification. C'est le cas pour " +"des objets tels que :class:`~gzip.GzipFile`. Le :attr:`~TarInfo.name` peut " +"également être modifié, auquel cas *arcname* pourrait être une chaîne " +"factice." + +#: ../Doc/library/tarfile.rst:501 +msgid "" +"Close the :class:`TarFile`. In write mode, two finishing zero blocks are " +"appended to the archive." +msgstr "" +"Ferme le :class:`TarFile`. En mode écriture, deux blocs de finition à zéro " +"sont ajoutés à l'archive." + +#: ../Doc/library/tarfile.rst:507 +msgid "A dictionary containing key-value pairs of pax global headers." +msgstr "" +"Un dictionnaire contenant des paires clé-valeur d'en-têtes globaux *pax*." + +#: ../Doc/library/tarfile.rst:514 +msgid "TarInfo Objects" +msgstr "Les objets *TarInfo*" + +#: ../Doc/library/tarfile.rst:516 +msgid "" +"A :class:`TarInfo` object represents one member in a :class:`TarFile`. Aside " +"from storing all required attributes of a file (like file type, size, time, " +"permissions, owner etc.), it provides some useful methods to determine its " +"type. It does *not* contain the file's data itself." +msgstr "" +"Un objet :class:`TarInfo` représente un membre dans un :class:`TarFile`. En " +"plus de stocker tous les attributs requis d'un fichier (comme le type de " +"fichier, la taille, l'heure, les autorisations, le propriétaire, etc.), il " +"fournit quelques méthodes utiles pour déterminer son type. Il ne contient " +"pas les données du fichier lui-même." + +#: ../Doc/library/tarfile.rst:521 +msgid "" +":class:`TarInfo` objects are returned by :class:`TarFile`'s methods :meth:" +"`getmember`, :meth:`getmembers` and :meth:`gettarinfo`." +msgstr "" +"Les objets :class:`TarInfo` sont renvoyés par les méthodes de :class:" +"`TarFile` :meth:`getmember`, :meth:`getmembers` et :meth:`gettarinfo`." + +#: ../Doc/library/tarfile.rst:527 +msgid "Create a :class:`TarInfo` object." +msgstr "Crée un objet :class:`TarInfo`." + +#: ../Doc/library/tarfile.rst:532 +msgid "Create and return a :class:`TarInfo` object from string buffer *buf*." +msgstr "" +"Crée et renvoie un objet :class:`TarInfo` à partir de la chaîne tampon *buf*." + +#: ../Doc/library/tarfile.rst:534 +msgid "Raises :exc:`HeaderError` if the buffer is invalid." +msgstr "Lève :exc:`HeaderError` si le tampon n'est pas valide." + +#: ../Doc/library/tarfile.rst:539 +msgid "" +"Read the next member from the :class:`TarFile` object *tarfile* and return " +"it as a :class:`TarInfo` object." +msgstr "" +"Lit le membre suivant dans l'objet :class:`TarFile` *tarfile* et le renvoie " +"comme un objet :class:`TarInfo`." + +#: ../Doc/library/tarfile.rst:545 +msgid "" +"Create a string buffer from a :class:`TarInfo` object. For information on " +"the arguments see the constructor of the :class:`TarFile` class." +msgstr "" +"Crée un tampon de chaîne de caractères à partir d'un objet :class:`TarInfo`. " +"Pour plus d'informations sur les arguments, voir le constructeur de la " +"classe :class:`TarFile`." + +#: ../Doc/library/tarfile.rst:552 +msgid "A ``TarInfo`` object has the following public data attributes:" +msgstr "Un objet ``TarInfo`` a les attributs de données publics suivants :" + +#: ../Doc/library/tarfile.rst:557 +msgid "Name of the archive member." +msgstr "Nom du membre de l'archive." + +#: ../Doc/library/tarfile.rst:562 +msgid "Size in bytes." +msgstr "La taille en octets." + +#: ../Doc/library/tarfile.rst:567 +msgid "Time of last modification." +msgstr "L'heure de la dernière modification." + +#: ../Doc/library/tarfile.rst:572 +msgid "Permission bits." +msgstr "Bits d'autorisation." + +#: ../Doc/library/tarfile.rst:577 +msgid "" +"File type. *type* is usually one of these constants: :const:`REGTYPE`, :" +"const:`AREGTYPE`, :const:`LNKTYPE`, :const:`SYMTYPE`, :const:`DIRTYPE`, :" +"const:`FIFOTYPE`, :const:`CONTTYPE`, :const:`CHRTYPE`, :const:`BLKTYPE`, :" +"const:`GNUTYPE_SPARSE`. To determine the type of a :class:`TarInfo` object " +"more conveniently, use the ``is*()`` methods below." +msgstr "" +"Type de fichier. *type* est généralement l'une des constantes suivantes: :" +"const:`REGTYPE`, :const:`AREGTYPE`, :const:`LNKTYPE`, :const:`SYMTYPE`, :" +"const:`DIRTYPE`, :const:`FIFOTYPE`, :const:`CONTTYPE`, :const:`CHRTYPE`, :" +"const:`BLKTYPE`, :const:`GNUTYPE_SPARSE`. Pour déterminer plus facilement le " +"type d'un objet :class:`TarInfo`, utilisez les méthodes ``is*()`` ci-dessous." + +#: ../Doc/library/tarfile.rst:586 +msgid "" +"Name of the target file name, which is only present in :class:`TarInfo` " +"objects of type :const:`LNKTYPE` and :const:`SYMTYPE`." +msgstr "" +"Nom du fichier cible, qui n'est présent que dans les objets :class:" +"`TarInfo` de type :const:`LNKTYPE` et :const:`SYMTYPE`." + +#: ../Doc/library/tarfile.rst:592 +msgid "User ID of the user who originally stored this member." +msgstr "ID de l'utilisateur qui a initialement stocké ce membre." + +#: ../Doc/library/tarfile.rst:597 +msgid "Group ID of the user who originally stored this member." +msgstr "ID de groupe de l'utilisateur qui a initialement stocké ce membre." + +#: ../Doc/library/tarfile.rst:602 +msgid "User name." +msgstr "Nom d'utilisateur." + +#: ../Doc/library/tarfile.rst:607 +msgid "Group name." +msgstr "Nom de groupe." + +#: ../Doc/library/tarfile.rst:612 +msgid "" +"A dictionary containing key-value pairs of an associated pax extended header." +msgstr "" +"Un dictionnaire contenant des paires clé-valeur d'un en-tête étendu *pax* " +"associé." + +#: ../Doc/library/tarfile.rst:615 +msgid "A :class:`TarInfo` object also provides some convenient query methods:" +msgstr "" +"Un objet :class:`TarInfo` fournit également des méthodes de requête " +"pratiques :" + +#: ../Doc/library/tarfile.rst:620 +msgid "Return :const:`True` if the :class:`Tarinfo` object is a regular file." +msgstr "" +"Renvoie :const:`True` si l'objet :class:`Tarinfo` est un fichier normal." + +#: ../Doc/library/tarfile.rst:625 +msgid "Same as :meth:`isfile`." +msgstr "Identique à :meth:`isfile`." + +#: ../Doc/library/tarfile.rst:630 +msgid "Return :const:`True` if it is a directory." +msgstr "Renvoie :const:`True` si c'est un dossier." + +#: ../Doc/library/tarfile.rst:635 +msgid "Return :const:`True` if it is a symbolic link." +msgstr "Renvoie :const:`True` s'il s'agit d'un lien symbolique." + +#: ../Doc/library/tarfile.rst:640 +msgid "Return :const:`True` if it is a hard link." +msgstr "Renvoie :const:`True` s'il s'agit d'un lien physique." + +#: ../Doc/library/tarfile.rst:645 +msgid "Return :const:`True` if it is a character device." +msgstr "Renvoie :const:`True` s'il s'agit d'un périphérique de caractères." + +#: ../Doc/library/tarfile.rst:650 +msgid "Return :const:`True` if it is a block device." +msgstr "Renvoie :const:`True` s'il s'agit d'un périphérique de bloc." + +#: ../Doc/library/tarfile.rst:655 +msgid "Return :const:`True` if it is a FIFO." +msgstr "Renvoie :const:`True` s'il s'agit d'un tube nommé (*FIFO*)." + +#: ../Doc/library/tarfile.rst:660 +msgid "" +"Return :const:`True` if it is one of character device, block device or FIFO." +msgstr "" +"Renvoie :const:`True` s'il s'agit d'un périphérique de caractères, d'un " +"périphérique de bloc ou d'un tube nommé." + +#: ../Doc/library/tarfile.rst:667 +msgid "Command-Line Interface" +msgstr "Interface en ligne de commande" + +#: ../Doc/library/tarfile.rst:671 +msgid "" +"The :mod:`tarfile` module provides a simple command-line interface to " +"interact with tar archives." +msgstr "" +"Le module :mod:`tarfile` fournit une interface de ligne de commande simple " +"pour interagir avec les archives *tar*." + +#: ../Doc/library/tarfile.rst:674 +msgid "" +"If you want to create a new tar archive, specify its name after the :option:" +"`-c` option and then list the filename(s) that should be included:" +msgstr "" +"Si vous souhaitez créer une nouvelle archive *tar*, spécifiez son nom après " +"l'option :option:`-c`, puis répertorie-le ou les noms de fichiers à inclure :" + +#: ../Doc/library/tarfile.rst:681 +msgid "Passing a directory is also acceptable:" +msgstr "Passer un répertoire est aussi possible :" + +#: ../Doc/library/tarfile.rst:687 +msgid "" +"If you want to extract a tar archive into the current directory, use the :" +"option:`-e` option:" +msgstr "" +"Si vous souhaitez extraire une archive *tar* dans le répertoire courant, " +"utilisez l'option :option:`-e`:" + +#: ../Doc/library/tarfile.rst:694 +msgid "" +"You can also extract a tar archive into a different directory by passing the " +"directory's name:" +msgstr "" +"Vous pouvez également extraire une archive *tar* dans un autre répertoire en " +"passant le nom du répertoire:" + +#: ../Doc/library/tarfile.rst:701 +msgid "For a list of the files in a tar archive, use the :option:`-l` option:" +msgstr "" +"Pour une liste des fichiers dans une archive *tar*, utilisez l'option :" +"option:`-l` :" + +#: ../Doc/library/tarfile.rst:709 +msgid "Command-line options" +msgstr "Options de la ligne de commande" + +#: ../Doc/library/tarfile.rst:714 +msgid "List files in a tarfile." +msgstr "Liste les fichiers dans une archive *tar*." + +#: ../Doc/library/tarfile.rst:719 +msgid "Create tarfile from source files." +msgstr "Crée une archive *tar* à partir des fichiers sources." + +#: ../Doc/library/tarfile.rst:724 +msgid "" +"Extract tarfile into the current directory if *output_dir* is not specified." +msgstr "" +"Extrait l'archive *tar* dans le répertoire courant si *output_dir* n'est pas " +"spécifié." + +#: ../Doc/library/tarfile.rst:729 +msgid "Test whether the tarfile is valid or not." +msgstr "Teste si l'archive *tar* est valide ou non." + +#: ../Doc/library/tarfile.rst:733 +msgid "Verbose output." +msgstr "Sortie verbeuse." + +#: ../Doc/library/tarfile.rst:738 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/tarfile.rst:740 +msgid "How to extract an entire tar archive to the current working directory::" +msgstr "" +"Comment extraire une archive *tar* dans le dossier de travail courant ::" + +#: ../Doc/library/tarfile.rst:747 +msgid "" +"How to extract a subset of a tar archive with :meth:`TarFile.extractall` " +"using a generator function instead of a list::" +msgstr "" +"Comment extraire un sous-ensemble d'une archive *tar* avec :meth:`TarFile." +"extractall` en utilisant une fonction de générateur au lieu d'une liste ::" + +#: ../Doc/library/tarfile.rst:762 +msgid "How to create an uncompressed tar archive from a list of filenames::" +msgstr "" +"Comment créer une archive *tar* non compressée à partir d'une liste de noms " +"de fichiers ::" + +#: ../Doc/library/tarfile.rst:770 +msgid "The same example using the :keyword:`with` statement::" +msgstr "Le même exemple en utilisant l'instruction :keyword:`with` ::" + +#: ../Doc/library/tarfile.rst:777 +msgid "" +"How to read a gzip compressed tar archive and display some member " +"information::" +msgstr "" +"Comment lire une archive *tar* compressée avec *gzip* et afficher des " +"informations des membres ::" + +#: ../Doc/library/tarfile.rst:791 +msgid "" +"How to create an archive and reset the user information using the *filter* " +"parameter in :meth:`TarFile.add`::" +msgstr "" +"Comment créer une archive et réinitialiser les informations de l'utilisateur " +"en utilisant le paramètre *filter* dans :meth:`TarFile.add` ::" + +#: ../Doc/library/tarfile.rst:807 +msgid "Supported tar formats" +msgstr "Formats *tar* pris en charge" + +#: ../Doc/library/tarfile.rst:809 +msgid "" +"There are three tar formats that can be created with the :mod:`tarfile` " +"module:" +msgstr "" +"Il existe trois formats *tar* qui peuvent être créés avec le module :mod:" +"`tarfile` :" + +#: ../Doc/library/tarfile.rst:811 +msgid "" +"The POSIX.1-1988 ustar format (:const:`USTAR_FORMAT`). It supports filenames " +"up to a length of at best 256 characters and linknames up to 100 characters. " +"The maximum file size is 8 GiB. This is an old and limited but widely " +"supported format." +msgstr "" +"Le format *POSIX.1-1988* *ustar* (:const:`ustar_FORMAT`). Il prend en charge " +"les noms de fichiers jusqu'à une longueur maximale de 256 caractères et les " +"noms de liens jusqu'à 100 caractères. La taille maximale du fichier est de " +"8 Go. Il s'agit d'un format ancien et limité mais largement pris en charge." + +#: ../Doc/library/tarfile.rst:816 +msgid "" +"The GNU tar format (:const:`GNU_FORMAT`). It supports long filenames and " +"linknames, files bigger than 8 GiB and sparse files. It is the de facto " +"standard on GNU/Linux systems. :mod:`tarfile` fully supports the GNU tar " +"extensions for long names, sparse file support is read-only." +msgstr "" +"Le format GNU *tar* (:const:`GNU_FORMAT`). Il prend en charge les noms de " +"fichiers longs et les noms de liens, les fichiers supérieurs à 8 Go et les " +"fichiers discontinus. C'est la norme de facto des systèmes GNU / Linux. :mod:" +"`tarfile` prend entièrement en charge les extensions GNU *tar* pour les noms " +"longs, la prise en charge des fichiers discontinus est en lecture seule." + +#: ../Doc/library/tarfile.rst:821 +msgid "" +"The POSIX.1-2001 pax format (:const:`PAX_FORMAT`). It is the most flexible " +"format with virtually no limits. It supports long filenames and linknames, " +"large files and stores pathnames in a portable way. However, not all tar " +"implementations today are able to handle pax archives properly." +msgstr "" + +#: ../Doc/library/tarfile.rst:826 +msgid "" +"The *pax* format is an extension to the existing *ustar* format. It uses " +"extra headers for information that cannot be stored otherwise. There are two " +"flavours of pax headers: Extended headers only affect the subsequent file " +"header, global headers are valid for the complete archive and affect all " +"following files. All the data in a pax header is encoded in *UTF-8* for " +"portability reasons." +msgstr "" + +#: ../Doc/library/tarfile.rst:832 +msgid "" +"There are some more variants of the tar format which can be read, but not " +"created:" +msgstr "" +"Il existe d'autres variantes du format *tar* qui peuvent être lues, mais pas " +"créées" + +#: ../Doc/library/tarfile.rst:835 +msgid "" +"The ancient V7 format. This is the first tar format from Unix Seventh " +"Edition, storing only regular files and directories. Names must not be " +"longer than 100 characters, there is no user/group name information. Some " +"archives have miscalculated header checksums in case of fields with non-" +"ASCII characters." +msgstr "" +"L'ancien format *V7*. Il s'agit du premier format *tar* d'*Unix Seventh " +"Edition*, ne stockant que des fichiers et répertoires normaux. Les noms ne " +"doivent pas dépasser 100 caractères, il n'y a aucune information de nom " +"d'utilisateur / groupe. Certaines archives ont des sommes de contrôle d'en-" +"tête mal calculées dans le cas de champs avec des caractères non ASCII." + +#: ../Doc/library/tarfile.rst:840 +msgid "" +"The SunOS tar extended format. This format is a variant of the POSIX.1-2001 " +"pax format, but is not compatible." +msgstr "" +"Format étendu *SunOS* *tar*. Ce format est une variante du format " +"*POSIX.1-2001* *pax*, mais n'est pas compatible." + +#: ../Doc/library/tarfile.rst:846 +msgid "Unicode issues" +msgstr "Problèmes *unicode*" + +#: ../Doc/library/tarfile.rst:848 +msgid "" +"The tar format was originally conceived to make backups on tape drives with " +"the main focus on preserving file system information. Nowadays tar archives " +"are commonly used for file distribution and exchanging archives over " +"networks. One problem of the original format (which is the basis of all " +"other formats) is that there is no concept of supporting different character " +"encodings. For example, an ordinary tar archive created on a *UTF-8* system " +"cannot be read correctly on a *Latin-1* system if it contains non-*ASCII* " +"characters. Textual metadata (like filenames, linknames, user/group names) " +"will appear damaged. Unfortunately, there is no way to autodetect the " +"encoding of an archive. The pax format was designed to solve this problem. " +"It stores non-ASCII metadata using the universal character encoding *UTF-8*." +msgstr "" +"Le format *tar* a été initialement conçu pour effectuer des sauvegardes sur " +"des lecteurs de bande en mettant principalement l'accent sur la préservation " +"des informations du système de fichiers. De nos jours, les archives *tar* " +"sont couramment utilisées pour la distribution de fichiers et l'échange " +"d'archives sur des réseaux. Un problème du format d'origine (qui est la base " +"de tous les autres formats) est qu'il n'existe aucun concept de prise en " +"charge d'encodages de caractères différents. Par exemple, une archive *tar* " +"ordinaire créée sur un système *UTF-8* ne peut pas être lue correctement sur " +"un système *Latin-1* si elle contient des caractères non *ASCII*. Les " +"métadonnées textuelles (comme les noms de fichiers, les noms de liens, les " +"noms d'utilisateurs / de groupes) sembleront endommagées. Malheureusement, " +"il n'y a aucun moyen de détecter automatiquement l'encodage d'une archive. " +"Le format *pax* a été conçu pour résoudre ce problème. Il stocke les " +"métadonnées non ASCII en utilisant l'encodage universel des caractères " +"*UTF-8*." + +#: ../Doc/library/tarfile.rst:860 +msgid "" +"The details of character conversion in :mod:`tarfile` are controlled by the " +"*encoding* and *errors* keyword arguments of the :class:`TarFile` class." +msgstr "" +"Les détails de la conversion des caractères dans :mod:`tarfile` sont " +"contrôlés par les arguments de mot-clé *encoding* et *errors* de la classe :" +"class:`TarFile`." + +#: ../Doc/library/tarfile.rst:863 +msgid "" +"*encoding* defines the character encoding to use for the metadata in the " +"archive. The default value is :func:`sys.getfilesystemencoding` or " +"``'ascii'`` as a fallback. Depending on whether the archive is read or " +"written, the metadata must be either decoded or encoded. If *encoding* is " +"not set appropriately, this conversion may fail." +msgstr "" +"*encoding* définit l'encodage de caractères à utiliser pour les métadonnées " +"de l'archive. La valeur par défaut est :func:`sys.getfilesystemencoding` ou " +"``'ascii'`` comme solution de rechange. Selon que l'archive est lue ou " +"écrite, les métadonnées doivent être décodées ou encodées. Si l'encodage " +"n'est pas défini correctement, cette conversion peut échouer." + +#: ../Doc/library/tarfile.rst:869 +msgid "" +"The *errors* argument defines how characters are treated that cannot be " +"converted. Possible values are listed in section :ref:`error-handlers`. The " +"default scheme is ``'surrogateescape'`` which Python also uses for its file " +"system calls, see :ref:`os-filenames`." +msgstr "" +"L'argument *errors* définit le traitement des caractères qui ne peuvent pas " +"être convertis. Les valeurs possibles sont répertoriées dans la section :ref:" +"`error-handlers`. Le schéma par défaut est ``'surrogateescape'`` que Python " +"utilise également pour ses appels de système de fichiers, voir :ref:`os-" +"filenames`." + +#: ../Doc/library/tarfile.rst:874 +msgid "" +"In case of :const:`PAX_FORMAT` archives, *encoding* is generally not needed " +"because all the metadata is stored using *UTF-8*. *encoding* is only used in " +"the rare cases when binary pax headers are decoded or when strings with " +"surrogate characters are stored." +msgstr "" diff --git a/library/telnetlib.po b/library/telnetlib.po new file mode 100644 index 000000000..d8f2f9891 --- /dev/null +++ b/library/telnetlib.po @@ -0,0 +1,266 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/telnetlib.rst:2 +msgid ":mod:`telnetlib` --- Telnet client" +msgstr "" + +#: ../Doc/library/telnetlib.rst:9 +msgid "**Source code:** :source:`Lib/telnetlib.py`" +msgstr "**Code source :** :source:`Lib/telnetlib.py`" + +#: ../Doc/library/telnetlib.rst:15 +msgid "" +"The :mod:`telnetlib` module provides a :class:`Telnet` class that implements " +"the Telnet protocol. See :rfc:`854` for details about the protocol. In " +"addition, it provides symbolic constants for the protocol characters (see " +"below), and for the telnet options. The symbolic names of the telnet options " +"follow the definitions in ``arpa/telnet.h``, with the leading ``TELOPT_`` " +"removed. For symbolic names of options which are traditionally not included " +"in ``arpa/telnet.h``, see the module source itself." +msgstr "" + +#: ../Doc/library/telnetlib.rst:23 +msgid "" +"The symbolic constants for the telnet commands are: IAC, DONT, DO, WONT, " +"WILL, SE (Subnegotiation End), NOP (No Operation), DM (Data Mark), BRK " +"(Break), IP (Interrupt process), AO (Abort output), AYT (Are You There), EC " +"(Erase Character), EL (Erase Line), GA (Go Ahead), SB (Subnegotiation Begin)." +msgstr "" + +#: ../Doc/library/telnetlib.rst:31 +msgid "" +":class:`Telnet` represents a connection to a Telnet server. The instance is " +"initially not connected by default; the :meth:`open` method must be used to " +"establish a connection. Alternatively, the host name and optional port " +"number can be passed to the constructor too, in which case the connection to " +"the server will be established before the constructor returns. The optional " +"*timeout* parameter specifies a timeout in seconds for blocking operations " +"like the connection attempt (if not specified, the global default timeout " +"setting will be used)." +msgstr "" + +#: ../Doc/library/telnetlib.rst:40 +msgid "Do not reopen an already connected instance." +msgstr "" + +#: ../Doc/library/telnetlib.rst:42 +msgid "" +"This class has many :meth:`read_\\*` methods. Note that some of them " +"raise :exc:`EOFError` when the end of the connection is read, because they " +"can return an empty string for other reasons. See the individual " +"descriptions below." +msgstr "" + +#: ../Doc/library/telnetlib.rst:46 +msgid "" +"A :class:`Telnet` object is a context manager and can be used in a :keyword:" +"`with` statement. When the :keyword:`!with` block ends, the :meth:`close` " +"method is called::" +msgstr "" + +#: ../Doc/library/telnetlib.rst:55 +msgid "Context manager support added" +msgstr "" + +#: ../Doc/library/telnetlib.rst:60 +msgid ":rfc:`854` - Telnet Protocol Specification" +msgstr "" + +#: ../Doc/library/telnetlib.rst:61 +msgid "Definition of the Telnet protocol." +msgstr "" + +#: ../Doc/library/telnetlib.rst:67 +msgid "Telnet Objects" +msgstr "" + +#: ../Doc/library/telnetlib.rst:69 +msgid ":class:`Telnet` instances have the following methods:" +msgstr "" + +#: ../Doc/library/telnetlib.rst:74 +msgid "" +"Read until a given byte string, *expected*, is encountered or until " +"*timeout* seconds have passed." +msgstr "" + +#: ../Doc/library/telnetlib.rst:77 +msgid "" +"When no match is found, return whatever is available instead, possibly empty " +"bytes. Raise :exc:`EOFError` if the connection is closed and no cooked data " +"is available." +msgstr "" + +#: ../Doc/library/telnetlib.rst:84 +msgid "Read all data until EOF as bytes; block until connection closed." +msgstr "" + +#: ../Doc/library/telnetlib.rst:89 +msgid "" +"Read at least one byte of cooked data unless EOF is hit. Return ``b''`` if " +"EOF is hit. Block if no data is immediately available." +msgstr "" + +#: ../Doc/library/telnetlib.rst:95 +msgid "Read everything that can be without blocking in I/O (eager)." +msgstr "" + +#: ../Doc/library/telnetlib.rst:97 ../Doc/library/telnetlib.rst:106 +msgid "" +"Raise :exc:`EOFError` if connection closed and no cooked data available. " +"Return ``b''`` if no cooked data available otherwise. Do not block unless in " +"the midst of an IAC sequence." +msgstr "" + +#: ../Doc/library/telnetlib.rst:104 +msgid "Read readily available data." +msgstr "" + +#: ../Doc/library/telnetlib.rst:113 +msgid "Process and return data already in the queues (lazy)." +msgstr "" + +#: ../Doc/library/telnetlib.rst:115 +msgid "" +"Raise :exc:`EOFError` if connection closed and no data available. Return " +"``b''`` if no cooked data available otherwise. Do not block unless in the " +"midst of an IAC sequence." +msgstr "" + +#: ../Doc/library/telnetlib.rst:122 +msgid "Return any data available in the cooked queue (very lazy)." +msgstr "" + +#: ../Doc/library/telnetlib.rst:124 +msgid "" +"Raise :exc:`EOFError` if connection closed and no data available. Return " +"``b''`` if no cooked data available otherwise. This method never blocks." +msgstr "" + +#: ../Doc/library/telnetlib.rst:130 +msgid "" +"Return the data collected between a SB/SE pair (suboption begin/end). The " +"callback should access these data when it was invoked with a ``SE`` command. " +"This method never blocks." +msgstr "" + +#: ../Doc/library/telnetlib.rst:137 +msgid "" +"Connect to a host. The optional second argument is the port number, which " +"defaults to the standard Telnet port (23). The optional *timeout* parameter " +"specifies a timeout in seconds for blocking operations like the connection " +"attempt (if not specified, the global default timeout setting will be used)." +msgstr "" + +#: ../Doc/library/telnetlib.rst:142 +msgid "Do not try to reopen an already connected instance." +msgstr "" + +#: ../Doc/library/telnetlib.rst:147 +msgid "" +"Print a debug message when the debug level is ``>`` 0. If extra arguments " +"are present, they are substituted in the message using the standard string " +"formatting operator." +msgstr "" + +#: ../Doc/library/telnetlib.rst:154 +msgid "" +"Set the debug level. The higher the value of *debuglevel*, the more debug " +"output you get (on ``sys.stdout``)." +msgstr "" + +#: ../Doc/library/telnetlib.rst:160 +msgid "Close the connection." +msgstr "Ferme la connexion." + +#: ../Doc/library/telnetlib.rst:165 +msgid "Return the socket object used internally." +msgstr "" + +#: ../Doc/library/telnetlib.rst:170 +msgid "Return the file descriptor of the socket object used internally." +msgstr "" + +#: ../Doc/library/telnetlib.rst:175 +msgid "" +"Write a byte string to the socket, doubling any IAC characters. This can " +"block if the connection is blocked. May raise :exc:`OSError` if the " +"connection is closed." +msgstr "" + +#: ../Doc/library/telnetlib.rst:179 +msgid "" +"This method used to raise :exc:`socket.error`, which is now an alias of :exc:" +"`OSError`." +msgstr "" + +#: ../Doc/library/telnetlib.rst:186 +msgid "Interaction function, emulates a very dumb Telnet client." +msgstr "" + +#: ../Doc/library/telnetlib.rst:191 +msgid "Multithreaded version of :meth:`interact`." +msgstr "" + +#: ../Doc/library/telnetlib.rst:196 +msgid "Read until one from a list of a regular expressions matches." +msgstr "" + +#: ../Doc/library/telnetlib.rst:198 +msgid "" +"The first argument is a list of regular expressions, either compiled (:ref:" +"`regex objects `) or uncompiled (byte strings). The optional " +"second argument is a timeout, in seconds; the default is to block " +"indefinitely." +msgstr "" + +#: ../Doc/library/telnetlib.rst:203 +msgid "" +"Return a tuple of three items: the index in the list of the first regular " +"expression that matches; the match object returned; and the bytes read up " +"till and including the match." +msgstr "" + +#: ../Doc/library/telnetlib.rst:207 +msgid "" +"If end of file is found and no bytes were read, raise :exc:`EOFError`. " +"Otherwise, when nothing matches, return ``(-1, None, data)`` where *data* is " +"the bytes received so far (may be empty bytes if a timeout happened)." +msgstr "" + +#: ../Doc/library/telnetlib.rst:211 +msgid "" +"If a regular expression ends with a greedy match (such as ``.*``) or if more " +"than one expression can match the same input, the results are non-" +"deterministic, and may depend on the I/O timing." +msgstr "" + +#: ../Doc/library/telnetlib.rst:218 +msgid "" +"Each time a telnet option is read on the input flow, this *callback* (if " +"set) is called with the following parameters: callback(telnet socket, " +"command (DO/DONT/WILL/WONT), option). No other action is done afterwards by " +"telnetlib." +msgstr "" + +#: ../Doc/library/telnetlib.rst:226 +msgid "Telnet Example" +msgstr "" + +#: ../Doc/library/telnetlib.rst:231 +msgid "A simple example illustrating typical use::" +msgstr "" diff --git a/library/tempfile.po b/library/tempfile.po new file mode 100644 index 000000000..7ae2ab544 --- /dev/null +++ b/library/tempfile.po @@ -0,0 +1,564 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-03-27 13:37+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/tempfile.rst:2 +msgid ":mod:`tempfile` --- Generate temporary files and directories" +msgstr ":mod:`tempfile` — Génération de fichiers et répertoires temporaires" + +#: ../Doc/library/tempfile.rst:9 +msgid "**Source code:** :source:`Lib/tempfile.py`" +msgstr "**Code source :** :source:`Lib/tempfile.py`" + +#: ../Doc/library/tempfile.rst:17 +msgid "" +"This module creates temporary files and directories. It works on all " +"supported platforms. :class:`TemporaryFile`, :class:`NamedTemporaryFile`, :" +"class:`TemporaryDirectory`, and :class:`SpooledTemporaryFile` are high-level " +"interfaces which provide automatic cleanup and can be used as context " +"managers. :func:`mkstemp` and :func:`mkdtemp` are lower-level functions " +"which require manual cleanup." +msgstr "" +"Ce module crée des fichiers et répertoires temporaires. Il fonctionne sur " +"toutes les plateformes supportées. :class:`TemporaryFile`, :class:" +"`NamedTemporaryFile`, :class:`TemporaryDirectory`, et :class:" +"`SpooledTemporaryFile` sont des interfaces haut-niveau qui fournissent un " +"nettoyage automatique et peuvent être utilisées comme gestionnaire de " +"contexte. :func:`mkstemp` et :func:`mkdtemp` sont des fonctions bas-niveau " +"qui nécessitent un nettoyage manuel." + +#: ../Doc/library/tempfile.rst:24 +msgid "" +"All the user-callable functions and constructors take additional arguments " +"which allow direct control over the location and name of temporary files and " +"directories. Files names used by this module include a string of random " +"characters which allows those files to be securely created in shared " +"temporary directories. To maintain backward compatibility, the argument " +"order is somewhat odd; it is recommended to use keyword arguments for " +"clarity." +msgstr "" +"Toutes les fonctions et constructeurs appelables par l'utilisateur ont des " +"arguments additionnels qui permettent de contrôler directement le chemin et " +"le nom des répertoires et fichiers. Les noms de fichiers utilisés par ce " +"module incluent une chaîne de caractères aléatoires qui leur permet d'être " +"créés de manière sécurisée dans des répertoires temporaires partagés. Afin " +"de maintenir la compatibilité descendante, l'ordre des arguments est quelque " +"peu étrange ; pour des questions de clarté, il est recommandé d'utiliser les " +"arguments nommés." + +#: ../Doc/library/tempfile.rst:32 +msgid "The module defines the following user-callable items:" +msgstr "" +"Le module définit les éléments suivants pouvant être appelés par " +"l'utilisateur :" + +#: ../Doc/library/tempfile.rst:36 +msgid "" +"Return a :term:`file-like object` that can be used as a temporary storage " +"area. The file is created securely, using the same rules as :func:`mkstemp`. " +"It will be destroyed as soon as it is closed (including an implicit close " +"when the object is garbage collected). Under Unix, the directory entry for " +"the file is either not created at all or is removed immediately after the " +"file is created. Other platforms do not support this; your code should not " +"rely on a temporary file created using this function having or not having a " +"visible name in the file system." +msgstr "" +"Renvoie un :term:`objet fichier ` qui peut être utilisé " +"comme une zone de stockage temporaire. Le fichier est créé de manière " +"sécurisé, utilisant les mêmes règles que :func:`mkstemp`. Il sera détruit " +"dès qu'il sera fermé (y compris lorsque le fichier est implicitement fermé " +"quand il est collecté par le ramasse-miette). Sous Unix, l'entrée du " +"répertoire n'est soit pas du tout créée, ou est supprimée immédiatement " +"après sa création. Les autres plateformes ne gèrent pas cela, votre code ne " +"doit pas compter sur un fichier temporaire créé en utilisant cette fonction " +"ayant ou non un nom visible sur le système de fichier." + +#: ../Doc/library/tempfile.rst:44 +msgid "" +"The resulting object can be used as a context manager (see :ref:`tempfile-" +"examples`). On completion of the context or destruction of the file object " +"the temporary file will be removed from the filesystem." +msgstr "" +"L'objet résultat peut être utilisé comme un gestionnaire de contexte (voir :" +"ref:`tempfile-examples`). Une fois le contexte ou la destruction de l'objet " +"fichier terminé, le fichier temporaire sera supprimé du système de fichiers." + +#: ../Doc/library/tempfile.rst:49 +msgid "" +"The *mode* parameter defaults to ``'w+b'`` so that the file created can be " +"read and written without being closed. Binary mode is used so that it " +"behaves consistently on all platforms without regard for the data that is " +"stored. *buffering*, *encoding* and *newline* are interpreted as for :func:" +"`open`." +msgstr "" +"Le paramètre *mode* vaut par défaut ``'w+b'`` afin que le fichier créé " +"puisse être lu et écrit sans être fermé. Le mode binaire est utilisé afin " +"que le comportement soit le même sur toutes les plateformes quelque soit la " +"donnée qui est stockée. *buffering*, *encoding* et *newline* sont " +"interprétés de la même façon que pour :func:`open`." + +#: ../Doc/library/tempfile.rst:55 +msgid "" +"The *dir*, *prefix* and *suffix* parameters have the same meaning and " +"defaults as with :func:`mkstemp`." +msgstr "" +"Les paramètres *dir*, *prefix* et *suffix* ont la même signification et même " +"valeur par défaut que :func:`mkstemp`." + +#: ../Doc/library/tempfile.rst:58 +msgid "" +"The returned object is a true file object on POSIX platforms. On other " +"platforms, it is a file-like object whose :attr:`!file` attribute is the " +"underlying true file object." +msgstr "" +"L'objet renvoyé est un véritable fichier sur les plateformes POSIX. Sur les " +"autres plateformes, un objet fichier-compatible est retourné où l'attribut :" +"attr:`!file` est le véritable fichier." + +#: ../Doc/library/tempfile.rst:62 +msgid "" +"The :py:data:`os.O_TMPFILE` flag is used if it is available and works (Linux-" +"specific, requires Linux kernel 3.11 or later)." +msgstr "" +"L'option :py:data:`os.O_TMPFILE` est utilisé s'il est disponible et " +"fonctionne (Linux exclusivement, nécessite un noyau Linux 3.11 ou plus)." + +#: ../Doc/library/tempfile.rst:67 +msgid "The :py:data:`os.O_TMPFILE` flag is now used if available." +msgstr "L'option :py:data:`os.O_TMPFILE` est maintenant utilisé si disponible." + +#: ../Doc/library/tempfile.rst:72 +msgid "" +"This function operates exactly as :func:`TemporaryFile` does, except that " +"the file is guaranteed to have a visible name in the file system (on Unix, " +"the directory entry is not unlinked). That name can be retrieved from the :" +"attr:`name` attribute of the returned file-like object. Whether the name " +"can be used to open the file a second time, while the named temporary file " +"is still open, varies across platforms (it can be so used on Unix; it cannot " +"on Windows NT or later). If *delete* is true (the default), the file is " +"deleted as soon as it is closed. The returned object is always a file-like " +"object whose :attr:`!file` attribute is the underlying true file object. " +"This file-like object can be used in a :keyword:`with` statement, just like " +"a normal file." +msgstr "" +"Cette fonction fonctionne exactement comme :func:`TemporaryFile`, à la " +"différence qu'il est garanti que le fichier soit visible dans le système de " +"fichier (sur Unix, l'entrée du répertoire est supprimée). Le nom peut être " +"récupéré depuis l'attribut :attr:`name` de l'objet fichier-compatible " +"retourné. Le fait que le nom puisse être utilisé pour ouvrir le fichier une " +"seconde fois, tant que le fichier temporaire nommé est toujours ouvert, " +"varie entre les plateformes (cela peut l'être sur Unix, mais c'est " +"impossible sur Windows NT et plus). Si *delete* est vrai (valeur par " +"défaut), le fichier est supprimé dès qu'il est fermé. L'objet retourné est " +"toujours un objet fichier-compatible où l'attribut :attr:`!file` est le " +"véritable fichier. L'objet fichier-compatible peut être utilisé dans un " +"gestionnaire de contexte (instruction :keyword:`with`), juste comme un " +"fichier normal." + +#: ../Doc/library/tempfile.rst:88 +msgid "" +"This function operates exactly as :func:`TemporaryFile` does, except that " +"data is spooled in memory until the file size exceeds *max_size*, or until " +"the file's :func:`fileno` method is called, at which point the contents are " +"written to disk and operation proceeds as with :func:`TemporaryFile`." +msgstr "" +"Cette fonction se comporte exactement comme :func:`TemporaryFile`, à " +"l'exception que les données sont stockées en mémoire jusqu'à ce que leur " +"taille dépasse *max_size*, ou que la méthode :func:`fileno` soit appelée. À " +"ce moment, le contenu est écrit sur disque et le fonctionnement redevient " +"similaire à celui de :func:`TemporaryFile`." + +#: ../Doc/library/tempfile.rst:94 +msgid "" +"The resulting file has one additional method, :func:`rollover`, which causes " +"the file to roll over to an on-disk file regardless of its size." +msgstr "" +"Le fichier renvoyé a une méthode supplémentaire, :func:`rollover`, qui " +"provoque la mise en écriture sur disque quelque soit la taille du fichier." + +#: ../Doc/library/tempfile.rst:97 +msgid "" +"The returned object is a file-like object whose :attr:`_file` attribute is " +"either an :class:`io.BytesIO` or :class:`io.StringIO` object (depending on " +"whether binary or text *mode* was specified) or a true file object, " +"depending on whether :func:`rollover` has been called. This file-like " +"object can be used in a :keyword:`with` statement, just like a normal file." +msgstr "" +"L'objet renvoyé est un objet fichier-compatible où l'attribut :attr:`_file` " +"est soit un objet :class:`io.BytesIO` soit un objet :class:`io.StringIO` (en " +"fonction du *mode*) soit un véritable fichier, si la fonction :func:" +"`rollover` a été appelée. Cet objet fichier-compatible peut être utilisé " +"dans un gestionnaire de contexte (instruction :keyword:`with`), comme un " +"fichier normal." + +#: ../Doc/library/tempfile.rst:104 +msgid "the truncate method now accepts a ``size`` argument." +msgstr "la méthode de troncature accepte maintenant un argument ``size``." + +#: ../Doc/library/tempfile.rst:110 +msgid "" +"This function securely creates a temporary directory using the same rules " +"as :func:`mkdtemp`. The resulting object can be used as a context manager " +"(see :ref:`tempfile-examples`). On completion of the context or destruction " +"of the temporary directory object the newly created temporary directory and " +"all its contents are removed from the filesystem." +msgstr "" +"Cette fonction crée un répertoire temporaire de manière sécurisée utilisant " +"les mêmes règles que :func:`mkdtemp`. L'objet renvoyé peut être utilisé " +"comme un gestionnaire de contexte (voir :ref:`tempfile-examples`). À la " +"sortie du contexte d’exécution ou à la destruction de l'objet, le répertoire " +"temporaire et tout son contenu sont supprimés du système de fichiers." + +#: ../Doc/library/tempfile.rst:116 +msgid "" +"The directory name can be retrieved from the :attr:`name` attribute of the " +"returned object. When the returned object is used as a context manager, " +"the :attr:`name` will be assigned to the target of the :keyword:`!as` clause " +"in the :keyword:`with` statement, if there is one." +msgstr "" +"Le nom du répertoire peut être récupéré via l'attribut :attr:`name` de " +"l'objet renvoyé. Quand l'objet renvoyé est utilisé comme gestionnaire de " +"contexte, l'attribut :attr:`name` sera lié au nom donné à la clause :keyword:" +"`!as` de l'instruction :keyword:`with`, si elle est spécifiée." + +#: ../Doc/library/tempfile.rst:121 +msgid "" +"The directory can be explicitly cleaned up by calling the :func:`cleanup` " +"method." +msgstr "" +"Le répertoire peut être explicitement nettoyé en appelant la méthode :func:" +"`cleanup`." + +#: ../Doc/library/tempfile.rst:129 +msgid "" +"Creates a temporary file in the most secure manner possible. There are no " +"race conditions in the file's creation, assuming that the platform properly " +"implements the :const:`os.O_EXCL` flag for :func:`os.open`. The file is " +"readable and writable only by the creating user ID. If the platform uses " +"permission bits to indicate whether a file is executable, the file is " +"executable by no one. The file descriptor is not inherited by child " +"processes." +msgstr "" +"Crée un fichier temporaire de la manière la plus sécurisée qui soit. Il n'y " +"a pas d'accès concurrent (``race condition``) au moment de la création du " +"fichier, en supposant que la plateforme implémente correctement l'option :" +"const:`os.O_EXCL` pour :func:`os.open`. Le fichier est seulement accessible " +"en lecture et écriture par l'ID de l'utilisateur créateur. Si la plateforme " +"utilise des bits de permissions pour indiquer si le fichier est exécutable, " +"alors le fichier n'est exécutable par personne. Le descripteur de fichier " +"n'est pas hérité par les processus fils." + +#: ../Doc/library/tempfile.rst:137 +msgid "" +"Unlike :func:`TemporaryFile`, the user of :func:`mkstemp` is responsible for " +"deleting the temporary file when done with it." +msgstr "" +"À la différence de :func:`TemporaryFile`, l'utilisateur de :func:`mkstemp` " +"est responsable de la suppression du fichier temporaire quand il n'en a plus " +"besoin." + +#: ../Doc/library/tempfile.rst:140 +msgid "" +"If *suffix* is not ``None``, the file name will end with that suffix, " +"otherwise there will be no suffix. :func:`mkstemp` does not put a dot " +"between the file name and the suffix; if you need one, put it at the " +"beginning of *suffix*." +msgstr "" +"Si *suffix* ne vaut pas ``None``, le nom de fichier se terminera avec ce " +"suffixe, sinon il n'y aura pas de suffixe. :func:`mkstemp` ne met pas de " +"point entre le nom du fichier et le suffixe. Si vous en avez besoin, mettez " +"le point au début de *suffix*." + +#: ../Doc/library/tempfile.rst:145 +msgid "" +"If *prefix* is not ``None``, the file name will begin with that prefix; " +"otherwise, a default prefix is used. The default is the return value of :" +"func:`gettempprefix` or :func:`gettempprefixb`, as appropriate." +msgstr "" +"Si *prefix* ne vaut pas ``None``, le nom de fichier commencera avec ce " +"préfixe, sinon un préfixe par défaut est utilisé. La valeur par défaut est " +"la valeur retournée par :func:`gettempprefix` ou :func:`gettempprefixb`." + +#: ../Doc/library/tempfile.rst:149 +msgid "" +"If *dir* is not ``None``, the file will be created in that directory; " +"otherwise, a default directory is used. The default directory is chosen " +"from a platform-dependent list, but the user of the application can control " +"the directory location by setting the *TMPDIR*, *TEMP* or *TMP* environment " +"variables. There is thus no guarantee that the generated filename will have " +"any nice properties, such as not requiring quoting when passed to external " +"commands via ``os.popen()``." +msgstr "" +"Si *dir* ne vaut pas ``None``, le fichier sera créé dans ce répertoire, " +"autrement, un répertoire par défaut sera utilisé. Le répertoire par défaut " +"est choisi depuis une liste dépendante de la plateforme, mais l'utilisateur " +"de l'application peut contrôler l'emplacement du répertoire en spécifiant " +"les variables d'environnement *TMPDIR*, *TEMP* ou *TMP*. Il n'y a pas de " +"garantie que le nom de fichier généré aura de bonnes propriétés telles que " +"ne pas avoir besoin de le mettre entre guillemets lorsque celui-ci est passé " +"à des commandes externes via ``os.popen()``." + +#: ../Doc/library/tempfile.rst:157 +msgid "" +"If any of *suffix*, *prefix*, and *dir* are not ``None``, they must be the " +"same type. If they are bytes, the returned name will be bytes instead of " +"str. If you want to force a bytes return value with otherwise default " +"behavior, pass ``suffix=b''``." +msgstr "" +"Si l'un des paramètres *suffix*, *prefix* et *dir* n'est pas ``None``, ils " +"doivent être du même type. S'ils sont de type ``bytes``, le nom renvoyée " +"sera de type ``bytes`` plutôt que de type ``str``. Si vous voulez forcer la " +"valeur renvoyée en ``bytes``, passez ``suffix=b''``." + +#: ../Doc/library/tempfile.rst:163 +msgid "" +"If *text* is specified, it indicates whether to open the file in binary mode " +"(the default) or text mode. On some platforms, this makes no difference." +msgstr "" +"Si *text* est spécifié, cela indique si le fichier doit être ouvert en mode " +"binaire (par défaut) ou en mode texte. Sur certaines plateformes, cela ne " +"fait aucune différence." + +#: ../Doc/library/tempfile.rst:167 +msgid "" +":func:`mkstemp` returns a tuple containing an OS-level handle to an open " +"file (as would be returned by :func:`os.open`) and the absolute pathname of " +"that file, in that order." +msgstr "" +":func:`mkstemp` renvoie un n-uplet contenant un descripteur (*handle* en " +"anglais) au niveau du système d'exploitation vers un fichier ouvert (le même " +"que renvoie :func:`os.open`) et le chemin d'accès absolu de ce fichier, dans " +"cet ordre." + +#: ../Doc/library/tempfile.rst:171 ../Doc/library/tempfile.rst:192 +msgid "" +"*suffix*, *prefix*, and *dir* may now be supplied in bytes in order to " +"obtain a bytes return value. Prior to this, only str was allowed. *suffix* " +"and *prefix* now accept and default to ``None`` to cause an appropriate " +"default value to be used." +msgstr "" +"*suffix*, *prefix*, et *dir* peuvent maintenant être spécifiés en ``bytes`` " +"pour obtenir un résultat en ``bytes``. Avant cela, le type ``str`` était le " +"seul autorisé. *suffix* et *prefix* acceptent maintenant la valeur par " +"défaut ``None`` pour que la valeur par défaut appropriée soit utilisée." + +#: ../Doc/library/tempfile.rst:180 +msgid "" +"Creates a temporary directory in the most secure manner possible. There are " +"no race conditions in the directory's creation. The directory is readable, " +"writable, and searchable only by the creating user ID." +msgstr "" +"Crée un répertoire temporaire de la manière la plus sécurisée qu'il soit. Il " +"n'y a pas d'accès concurrent (``race condition``) au moment de la création " +"du répertoire. Le répertoire est accessible en lecture, en écriture, et son " +"contenu lisible uniquement pour l'ID de l'utilisateur créateur." + +#: ../Doc/library/tempfile.rst:184 +msgid "" +"The user of :func:`mkdtemp` is responsible for deleting the temporary " +"directory and its contents when done with it." +msgstr "" +"L'utilisateur de :func:`mkdtemp` est responsable de la suppression du " +"répertoire temporaire et de son contenu lorsqu'il n'en a plus besoin." + +#: ../Doc/library/tempfile.rst:187 +msgid "" +"The *prefix*, *suffix*, and *dir* arguments are the same as for :func:" +"`mkstemp`." +msgstr "" +"Les arguments *prefix*, *suffix*, et *dir* sont les mêmes que pour :func:" +"`mkstemp`." + +#: ../Doc/library/tempfile.rst:190 +msgid ":func:`mkdtemp` returns the absolute pathname of the new directory." +msgstr ":func:`mkdtemp` renvoie le chemin absolu du nouveau répertoire." + +#: ../Doc/library/tempfile.rst:201 +msgid "" +"Return the name of the directory used for temporary files. This defines the " +"default value for the *dir* argument to all functions in this module." +msgstr "" +"Renvoie le nom du répertoire utilisé pour les fichiers temporaires. C'est la " +"valeur par défaut pour l'argument *dir* de toutes les fonctions de ce module." + +#: ../Doc/library/tempfile.rst:205 +msgid "" +"Python searches a standard list of directories to find one which the calling " +"user can create files in. The list is:" +msgstr "" +"Python cherche un répertoire parmi une liste standard de répertoires dans " +"lequel l'utilisateur final peut créer des fichiers. La liste est :" + +#: ../Doc/library/tempfile.rst:208 +msgid "The directory named by the :envvar:`TMPDIR` environment variable." +msgstr "" +"Le répertoire correspondant à la variable d'environnement :envvar:`TMPDIR`." + +#: ../Doc/library/tempfile.rst:210 +msgid "The directory named by the :envvar:`TEMP` environment variable." +msgstr "" +"Le répertoire correspondant à la variable d'environnement :envvar:`TEMP`." + +#: ../Doc/library/tempfile.rst:212 +msgid "The directory named by the :envvar:`TMP` environment variable." +msgstr "" +"Le répertoire correspondant à la variable d'environnement :envvar:`TMP`." + +#: ../Doc/library/tempfile.rst:214 +msgid "A platform-specific location:" +msgstr "Un emplacement dépendant à la plateforme :" + +#: ../Doc/library/tempfile.rst:216 +msgid "" +"On Windows, the directories :file:`C:\\\\TEMP`, :file:`C:\\\\TMP`, :file:`\\" +"\\TEMP`, and :file:`\\\\TMP`, in that order." +msgstr "" +"Sur Windows, les répertoires :file:`C:\\\\TEMP`, :file:`C:\\\\TMP`, :file:`\\" +"\\TEMP`, et :file:`\\\\TMP`, dans cet ordre." + +#: ../Doc/library/tempfile.rst:219 +msgid "" +"On all other platforms, the directories :file:`/tmp`, :file:`/var/tmp`, and :" +"file:`/usr/tmp`, in that order." +msgstr "" +"Sur toutes les autres plate-formes, les répertoires :file:`/tmp`, :file:`/" +"var/tmp`, et :file:`/usr/tmp`, dans cet ordre." + +#: ../Doc/library/tempfile.rst:222 +msgid "As a last resort, the current working directory." +msgstr "En dernier ressort, le répertoire de travail courant." + +#: ../Doc/library/tempfile.rst:224 +msgid "" +"The result of this search is cached, see the description of :data:`tempdir` " +"below." +msgstr "" +"Le résultat de cette recherche est mis en cache, voir la description de :" +"data:`tempdir` dessous." + +#: ../Doc/library/tempfile.rst:229 +msgid "Same as :func:`gettempdir` but the return value is in bytes." +msgstr "" +"Similaire à :func:`gettempdir` mais la valeur retournée est en *bytes*." + +#: ../Doc/library/tempfile.rst:235 +msgid "" +"Return the filename prefix used to create temporary files. This does not " +"contain the directory component." +msgstr "" +"Renvoie le préfixe de nom de fichier utilisé pour créer les fichiers " +"temporaires. Cela ne contient pas le nom du répertoire." + +#: ../Doc/library/tempfile.rst:240 +msgid "Same as :func:`gettempprefix` but the return value is in bytes." +msgstr "" +"Similaire à :func:`gettempprefix` mais la valeur retournée est en *bytes*." + +#: ../Doc/library/tempfile.rst:244 +msgid "" +"The module uses a global variable to store the name of the directory used " +"for temporary files returned by :func:`gettempdir`. It can be set directly " +"to override the selection process, but this is discouraged. All functions in " +"this module take a *dir* argument which can be used to specify the directory " +"and this is the recommended approach." +msgstr "" +"Le module utilise une variable globale pour stocker le nom du répertoire " +"utilisé pour les fichiers temporaires renvoyés par :func:`gettempdir`. Vous " +"pouvez directement utiliser la variable globale pour surcharger le processus " +"de sélection, mais ceci est déconseillé. Toutes les fonctions de ce module " +"prennent un argument *dir* qui peut être utilisé pour spécifier le " +"répertoire. Il s'agit de la méthode recommandée." + +#: ../Doc/library/tempfile.rst:252 +msgid "" +"When set to a value other than ``None``, this variable defines the default " +"value for the *dir* argument to the functions defined in this module." +msgstr "" +"Quand une valeur autre que ``None`` est spécifiée, cette variable définit la " +"valeur par défaut pour l'argument *dir* des fonctions définies dans ce " +"module." + +#: ../Doc/library/tempfile.rst:256 +msgid "" +"If ``tempdir`` is ``None`` (the default) at any call to any of the above " +"functions except :func:`gettempprefix` it is initialized following the " +"algorithm described in :func:`gettempdir`." +msgstr "" +"Si ``tempdir`` vaut ``None`` (par défaut) pour n'importe quelle des " +"fonctions ci-dessus, sauf :func:`gettempprefix`, la variable est initialisée " +"suivant l'algorithme décrit dans :func:`gettempdir`." + +#: ../Doc/library/tempfile.rst:263 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/tempfile.rst:265 +msgid "Here are some examples of typical usage of the :mod:`tempfile` module::" +msgstr "" +"Voici quelques exemples classiques d'utilisation du module :mod:`tempfile` ::" + +#: ../Doc/library/tempfile.rst:296 +msgid "Deprecated functions and variables" +msgstr "Fonctions et variables obsolètes" + +#: ../Doc/library/tempfile.rst:298 +msgid "" +"A historical way to create temporary files was to first generate a file name " +"with the :func:`mktemp` function and then create a file using this name. " +"Unfortunately this is not secure, because a different process may create a " +"file with this name in the time between the call to :func:`mktemp` and the " +"subsequent attempt to create the file by the first process. The solution is " +"to combine the two steps and create the file immediately. This approach is " +"used by :func:`mkstemp` and the other functions described above." +msgstr "" +"Historiquement, la méthode pour créer des fichiers temporaires consistait à " +"générer un nom de fichier avec la fonction :func:`mktemp` puis créer un " +"fichier en utilisant ce nom. Malheureusement, cette méthode n'est pas fiable " +"car un autre processus peut créer un fichier avec ce nom entre l'appel à la " +"fonction :func:`mktemp` et la tentative de création de fichier par le " +"premier processus en cours. La solution est de combiner les deux étapes et " +"de créer le fichier immédiatement. Cette approche est utilisée par :func:" +"`mkstemp` et les autres fonctions décrites plus haut." + +#: ../Doc/library/tempfile.rst:309 +msgid "Use :func:`mkstemp` instead." +msgstr "Utilisez :func:`mkstemp` à la place." + +#: ../Doc/library/tempfile.rst:312 +msgid "" +"Return an absolute pathname of a file that did not exist at the time the " +"call is made. The *prefix*, *suffix*, and *dir* arguments are similar to " +"those of :func:`mkstemp`, except that bytes file names, ``suffix=None`` and " +"``prefix=None`` are not supported." +msgstr "" +"Renvoie le chemin absolu d'un fichier qui n'existe pas lorsque l'appel est " +"fait. Les arguments *prefix*, *suffix*, et *dir* sont similaires à ceux de :" +"func:`mkstemp` mais les noms de fichiers en *bytes*, ``sufix=None`` et " +"``prefix=None`` ne sont pas implémentées." + +#: ../Doc/library/tempfile.rst:319 +msgid "" +"Use of this function may introduce a security hole in your program. By the " +"time you get around to doing anything with the file name it returns, someone " +"else may have beaten you to the punch. :func:`mktemp` usage can be replaced " +"easily with :func:`NamedTemporaryFile`, passing it the ``delete=False`` " +"parameter::" +msgstr "" +"Utiliser cette fonction peut introduire une faille de sécurité dans votre " +"programme. Avant que vous n'ayez le temps de faire quoi que ce soit avec le " +"nom de fichier renvoyé, quelqu'un peut l'utiliser. L'utilisation de :func:" +"`mktemp` peut être remplacée facilement avec :func:`NamedTemporaryFile` en y " +"passant le paramètre ``delete=False`` ::" diff --git a/library/termios.po b/library/termios.po new file mode 100644 index 000000000..814acddbb --- /dev/null +++ b/library/termios.po @@ -0,0 +1,160 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-02-27 12:03+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/termios.rst:2 +msgid ":mod:`termios` --- POSIX style tty control" +msgstr ":mod:`termios` — Le style POSIX le contrôle TTY" + +#: ../Doc/library/termios.rst:14 +msgid "" +"This module provides an interface to the POSIX calls for tty I/O control. " +"For a complete description of these calls, see :manpage:`termios(3)` Unix " +"manual page. It is only available for those Unix versions that support " +"POSIX *termios* style tty I/O control configured during installation." +msgstr "" +"Ce module fournit une interface aux appels POSIX pour le contrôle des E/S " +"TTY. Pour une description complète de ces appels, voir la page du manuel " +"UNIX :manpage:`termios(3)`. C’est disponible uniquement pour les versions " +"Unix qui supportent le style POSIX *termios* et les contrôles d’entrées/" +"sorties TTY configurés à l’installation." + +#: ../Doc/library/termios.rst:19 +msgid "" +"All functions in this module take a file descriptor *fd* as their first " +"argument. This can be an integer file descriptor, such as returned by ``sys." +"stdin.fileno()``, or a :term:`file object`, such as ``sys.stdin`` itself." +msgstr "" +"Toutes les fonctions de ce module prennent un descripteur de fichier *fd* " +"comme premier argument. Ça peut être un descripteur de fichiers entier, tel " +"que le retourne ``sys.stdin.fileno()``, ou un :term:`file object`, tel que " +"``sys.stdin``." + +#: ../Doc/library/termios.rst:23 +msgid "" +"This module also defines all the constants needed to work with the functions " +"provided here; these have the same name as their counterparts in C. Please " +"refer to your system documentation for more information on using these " +"terminal control interfaces." +msgstr "" +"Ce module définit aussi toutes les constantes nécessaires pour travailler " +"avec les fonctions fournies ici; elles ont les mêmes noms que leurs " +"équivalents en C. Pour plus d’informations sur l’utilisation de ces " +"terminaux, veuillez vous référer à votre documentation système." + +#: ../Doc/library/termios.rst:28 +msgid "The module defines the following functions:" +msgstr "Le module définit les fonctions suivantes :" + +#: ../Doc/library/termios.rst:33 +msgid "" +"Return a list containing the tty attributes for file descriptor *fd*, as " +"follows: ``[iflag, oflag, cflag, lflag, ispeed, ospeed, cc]`` where *cc* is " +"a list of the tty special characters (each a string of length 1, except the " +"items with indices :const:`VMIN` and :const:`VTIME`, which are integers when " +"these fields are defined). The interpretation of the flags and the speeds " +"as well as the indexing in the *cc* array must be done using the symbolic " +"constants defined in the :mod:`termios` module." +msgstr "" +"Retourne une liste contenant les attributs TTY pour le descripteur de " +"fichier *fd*, tel que: ``[iflag, oflag, cflag, lflag, ispeed, ospeed, cc]`` " +"où *cc* est une liste de caractères spéciaux TTY (chacun est une chaine de " +"caractère de longueur 1, à l’exception des éléments ayant les indices :const:" +"`VMIN` et :const:`VTIME`, ceux-ci sont alors des entiers quand ces champs " +"sont définis). L’interprétation des options (*flags* en anglais) et des " +"vitesses ainsi que l’indexation dans le tableau *cc* doit être fait en " +"utilisant les constantes symboliques définies dans le module :mod:`termios`." + +#: ../Doc/library/termios.rst:44 +msgid "" +"Set the tty attributes for file descriptor *fd* from the *attributes*, which " +"is a list like the one returned by :func:`tcgetattr`. The *when* argument " +"determines when the attributes are changed: :const:`TCSANOW` to change " +"immediately, :const:`TCSADRAIN` to change after transmitting all queued " +"output, or :const:`TCSAFLUSH` to change after transmitting all queued output " +"and discarding all queued input." +msgstr "" +"Définit les attributs TTY pour le descripteur de fichiers *fd* à partir des " +"*attributs*, qui est une liste comme celle retournée par :func:`tcgetattr`. " +"L’argument *when* détermine quand les attributs sont changés: :const:" +"`TCSANOW` pour un changement immédiat, :const:`TCSADRAIN` pour un changement " +"après la transmission de toute sortie en file d’attente, ou :const:" +"`TCSAFLUSH` pour un changement après avoir transmis toute sortie en file " +"d’attente et rejeté toutes entrée en file d’attente." + +#: ../Doc/library/termios.rst:54 +msgid "" +"Send a break on file descriptor *fd*. A zero *duration* sends a break for " +"0.25--0.5 seconds; a nonzero *duration* has a system dependent meaning." +msgstr "" +"Envoie une pause sur le descripteur de fichier *fd*. Une *duration* à zéro " +"envoie une pause de 0,25 à 0,5 seconde ; une *duration* différente de zéro " +"possède une signification spécifique sur chaque système." + +#: ../Doc/library/termios.rst:60 +msgid "" +"Wait until all output written to file descriptor *fd* has been transmitted." +msgstr "" +"Attends que toutes les sorties écrites dans le descripteur de fichier *fd* " +"soient transmises." + +#: ../Doc/library/termios.rst:65 +msgid "" +"Discard queued data on file descriptor *fd*. The *queue* selector specifies " +"which queue: :const:`TCIFLUSH` for the input queue, :const:`TCOFLUSH` for " +"the output queue, or :const:`TCIOFLUSH` for both queues." +msgstr "" +"Vide la queue de données du descripteur de fichier *fd*. Le sélecteur " +"*queue* précise la queue: :const:`TCIFLUSH` pour la queue des entrées, :" +"const:`TCOFLUSH` pour la queue des sorties, ou :const:`TCIOFLUSH` pour les " +"deux queues." + +#: ../Doc/library/termios.rst:72 +msgid "" +"Suspend or resume input or output on file descriptor *fd*. The *action* " +"argument can be :const:`TCOOFF` to suspend output, :const:`TCOON` to restart " +"output, :const:`TCIOFF` to suspend input, or :const:`TCION` to restart input." +msgstr "" +"Suspends ou reprends l’entrée ou la sortie du descripteur de fichier *fd*. " +"L’argument *action* peut être :const:`TCOOFF` pour suspendre la sortie, :" +"const:`TCOON` pour relancer la sortie, :const:`TCIOFF` pour suspendre " +"l’entrée, ou :const:`TCION` pour relancer l’entrée." + +#: ../Doc/library/termios.rst:79 +msgid "Module :mod:`tty`" +msgstr "Le module :mod:`tty`" + +#: ../Doc/library/termios.rst:80 +msgid "Convenience functions for common terminal control operations." +msgstr "" +"Fonctions utiles pour les opérations de contrôle communes dans le terminal." + +#: ../Doc/library/termios.rst:86 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/termios.rst:88 +msgid "" +"Here's a function that prompts for a password with echoing turned off. Note " +"the technique using a separate :func:`tcgetattr` call and a :keyword:" +"`try` ... :keyword:`finally` statement to ensure that the old tty attributes " +"are restored exactly no matter what happens::" +msgstr "" +"Voici une fonction qui demande à l’utilisateur d’entrer un mot de passe sans " +"l’afficher. Remarquez la technique qui consiste à séparer un appel à :func:" +"`tcgetattr` et une instruction :keyword:`try`… :keyword:`finally` pour " +"s’assurer que les anciens attributs tty soient restaurés tels quels quoi " +"qu’il arrive ::" diff --git a/library/test.po b/library/test.po new file mode 100644 index 000000000..90940af46 --- /dev/null +++ b/library/test.po @@ -0,0 +1,1424 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/test.rst:2 +msgid ":mod:`test` --- Regression tests package for Python" +msgstr "" + +#: ../Doc/library/test.rst:10 +msgid "" +"The :mod:`test` package is meant for internal use by Python only. It is " +"documented for the benefit of the core developers of Python. Any use of this " +"package outside of Python's standard library is discouraged as code " +"mentioned here can change or be removed without notice between releases of " +"Python." +msgstr "" + +#: ../Doc/library/test.rst:18 +msgid "" +"The :mod:`test` package contains all regression tests for Python as well as " +"the modules :mod:`test.support` and :mod:`test.regrtest`. :mod:`test." +"support` is used to enhance your tests while :mod:`test.regrtest` drives the " +"testing suite." +msgstr "" + +#: ../Doc/library/test.rst:23 +msgid "" +"Each module in the :mod:`test` package whose name starts with ``test_`` is a " +"testing suite for a specific module or feature. All new tests should be " +"written using the :mod:`unittest` or :mod:`doctest` module. Some older " +"tests are written using a \"traditional\" testing style that compares output " +"printed to ``sys.stdout``; this style of test is considered deprecated." +msgstr "" + +#: ../Doc/library/test.rst:33 +msgid "Module :mod:`unittest`" +msgstr "" + +#: ../Doc/library/test.rst:33 +msgid "Writing PyUnit regression tests." +msgstr "" + +#: ../Doc/library/test.rst:35 +msgid "Module :mod:`doctest`" +msgstr "Module :mod:`doctest`" + +#: ../Doc/library/test.rst:36 +msgid "Tests embedded in documentation strings." +msgstr "" + +#: ../Doc/library/test.rst:42 +msgid "Writing Unit Tests for the :mod:`test` package" +msgstr "" + +#: ../Doc/library/test.rst:44 +msgid "" +"It is preferred that tests that use the :mod:`unittest` module follow a few " +"guidelines. One is to name the test module by starting it with ``test_`` and " +"end it with the name of the module being tested. The test methods in the " +"test module should start with ``test_`` and end with a description of what " +"the method is testing. This is needed so that the methods are recognized by " +"the test driver as test methods. Also, no documentation string for the " +"method should be included. A comment (such as ``# Tests function returns " +"only True or False``) should be used to provide documentation for test " +"methods. This is done because documentation strings get printed out if they " +"exist and thus what test is being run is not stated." +msgstr "" + +#: ../Doc/library/test.rst:55 +msgid "A basic boilerplate is often used::" +msgstr "" + +#: ../Doc/library/test.rst:88 +msgid "" +"This code pattern allows the testing suite to be run by :mod:`test." +"regrtest`, on its own as a script that supports the :mod:`unittest` CLI, or " +"via the ``python -m unittest`` CLI." +msgstr "" + +#: ../Doc/library/test.rst:92 +msgid "" +"The goal for regression testing is to try to break code. This leads to a few " +"guidelines to be followed:" +msgstr "" + +#: ../Doc/library/test.rst:95 +msgid "" +"The testing suite should exercise all classes, functions, and constants. " +"This includes not just the external API that is to be presented to the " +"outside world but also \"private\" code." +msgstr "" + +#: ../Doc/library/test.rst:99 +msgid "" +"Whitebox testing (examining the code being tested when the tests are being " +"written) is preferred. Blackbox testing (testing only the published user " +"interface) is not complete enough to make sure all boundary and edge cases " +"are tested." +msgstr "" + +#: ../Doc/library/test.rst:104 +msgid "" +"Make sure all possible values are tested including invalid ones. This makes " +"sure that not only all valid values are acceptable but also that improper " +"values are handled correctly." +msgstr "" + +#: ../Doc/library/test.rst:108 +msgid "" +"Exhaust as many code paths as possible. Test where branching occurs and thus " +"tailor input to make sure as many different paths through the code are taken." +msgstr "" + +#: ../Doc/library/test.rst:111 +msgid "" +"Add an explicit test for any bugs discovered for the tested code. This will " +"make sure that the error does not crop up again if the code is changed in " +"the future." +msgstr "" + +#: ../Doc/library/test.rst:115 +msgid "" +"Make sure to clean up after your tests (such as close and remove all " +"temporary files)." +msgstr "" + +#: ../Doc/library/test.rst:118 +msgid "" +"If a test is dependent on a specific condition of the operating system then " +"verify the condition already exists before attempting the test." +msgstr "" + +#: ../Doc/library/test.rst:121 +msgid "" +"Import as few modules as possible and do it as soon as possible. This " +"minimizes external dependencies of tests and also minimizes possible " +"anomalous behavior from side-effects of importing a module." +msgstr "" + +#: ../Doc/library/test.rst:125 +msgid "" +"Try to maximize code reuse. On occasion, tests will vary by something as " +"small as what type of input is used. Minimize code duplication by " +"subclassing a basic test class with a class that specifies the input::" +msgstr "" + +#: ../Doc/library/test.rst:145 +msgid "" +"When using this pattern, remember that all classes that inherit from :class:" +"`unittest.TestCase` are run as tests. The :class:`Mixin` class in the " +"example above does not have any data and so can't be run by itself, thus it " +"does not inherit from :class:`unittest.TestCase`." +msgstr "" + +#: ../Doc/library/test.rst:153 +msgid "Test Driven Development" +msgstr "" + +#: ../Doc/library/test.rst:154 +msgid "A book by Kent Beck on writing tests before code." +msgstr "" + +#: ../Doc/library/test.rst:160 +msgid "Running tests using the command-line interface" +msgstr "" + +#: ../Doc/library/test.rst:162 +msgid "" +"The :mod:`test` package can be run as a script to drive Python's regression " +"test suite, thanks to the :option:`-m` option: :program:`python -m test`. " +"Under the hood, it uses :mod:`test.regrtest`; the call :program:`python -m " +"test.regrtest` used in previous Python versions still works. Running the " +"script by itself automatically starts running all regression tests in the :" +"mod:`test` package. It does this by finding all modules in the package whose " +"name starts with ``test_``, importing them, and executing the function :func:" +"`test_main` if present or loading the tests via unittest.TestLoader." +"loadTestsFromModule if ``test_main`` does not exist. The names of tests to " +"execute may also be passed to the script. Specifying a single regression " +"test (:program:`python -m test test_spam`) will minimize output and only " +"print whether the test passed or failed." +msgstr "" + +#: ../Doc/library/test.rst:175 +msgid "" +"Running :mod:`test` directly allows what resources are available for tests " +"to use to be set. You do this by using the ``-u`` command-line option. " +"Specifying ``all`` as the value for the ``-u`` option enables all possible " +"resources: :program:`python -m test -uall`. If all but one resource is " +"desired (a more common case), a comma-separated list of resources that are " +"not desired may be listed after ``all``. The command :program:`python -m " +"test -uall,-audio,-largefile` will run :mod:`test` with all resources except " +"the ``audio`` and ``largefile`` resources. For a list of all resources and " +"more command-line options, run :program:`python -m test -h`." +msgstr "" + +#: ../Doc/library/test.rst:186 +msgid "" +"Some other ways to execute the regression tests depend on what platform the " +"tests are being executed on. On Unix, you can run :program:`make test` at " +"the top-level directory where Python was built. On Windows, executing :" +"program:`rt.bat` from your :file:`PCbuild` directory will run all regression " +"tests." +msgstr "" + +#: ../Doc/library/test.rst:194 +msgid ":mod:`test.support` --- Utilities for the Python test suite" +msgstr "" + +#: ../Doc/library/test.rst:200 +msgid "" +"The :mod:`test.support` module provides support for Python's regression test " +"suite." +msgstr "" + +#: ../Doc/library/test.rst:205 +msgid "" +":mod:`test.support` is not a public module. It is documented here to help " +"Python developers write tests. The API of this module is subject to change " +"without backwards compatibility concerns between releases." +msgstr "" + +#: ../Doc/library/test.rst:210 +msgid "This module defines the following exceptions:" +msgstr "" + +#: ../Doc/library/test.rst:214 +msgid "" +"Exception to be raised when a test fails. This is deprecated in favor of :" +"mod:`unittest`\\ -based tests and :class:`unittest.TestCase`'s assertion " +"methods." +msgstr "" + +#: ../Doc/library/test.rst:221 +msgid "" +"Subclass of :exc:`unittest.SkipTest`. Raised when a resource (such as a " +"network connection) is not available. Raised by the :func:`requires` " +"function." +msgstr "" + +#: ../Doc/library/test.rst:226 +msgid "The :mod:`test.support` module defines the following constants:" +msgstr "" + +#: ../Doc/library/test.rst:230 +msgid "" +"``True`` when verbose output is enabled. Should be checked when more " +"detailed information is desired about a running test. *verbose* is set by :" +"mod:`test.regrtest`." +msgstr "" + +#: ../Doc/library/test.rst:237 +msgid "``True`` if the running interpreter is Jython." +msgstr "" + +#: ../Doc/library/test.rst:242 +msgid "``True`` if the system is Android." +msgstr "" + +#: ../Doc/library/test.rst:247 +msgid "Path for shell if not on Windows; otherwise ``None``." +msgstr "" + +#: ../Doc/library/test.rst:252 +msgid "A non-ASCII character encodable by :func:`os.fsencode`." +msgstr "" + +#: ../Doc/library/test.rst:257 +msgid "" +"Set to a name that is safe to use as the name of a temporary file. Any " +"temporary file that is created should be closed and unlinked (removed)." +msgstr "" + +#: ../Doc/library/test.rst:263 +msgid "Set to a non-ASCII name for a temporary file." +msgstr "" + +#: ../Doc/library/test.rst:268 +msgid "Set to :func:`sys.getfilesystemencoding`." +msgstr "" + +#: ../Doc/library/test.rst:273 +msgid "" +"Set to a filename (str type) that should not be able to be encoded by file " +"system encoding in strict mode. It may be ``None`` if it's not possible to " +"generate such a filename." +msgstr "" + +#: ../Doc/library/test.rst:280 +msgid "" +"Set to a filename (bytes type) that should not be able to be decoded by file " +"system encoding in strict mode. It may be ``None`` if it's not possible to " +"generate such a filename." +msgstr "" + +#: ../Doc/library/test.rst:287 +msgid "Set to a filename containing the :data:`FS_NONASCII` character." +msgstr "" + +#: ../Doc/library/test.rst:292 +msgid "Set to ``True`` if IPV6 is enabled on this host, ``False`` otherwise." +msgstr "" + +#: ../Doc/library/test.rst:297 +msgid "Set to :func:`os.getcwd`." +msgstr "" + +#: ../Doc/library/test.rst:302 +msgid "Set when tests can be skipped when they are not useful for PGO." +msgstr "" + +#: ../Doc/library/test.rst:307 +msgid "" +"A constant that is likely larger than the underlying OS pipe buffer size, to " +"make writes blocking." +msgstr "" + +#: ../Doc/library/test.rst:313 +msgid "" +"A constant that is likely larger than the underlying OS socket buffer size, " +"to make writes blocking." +msgstr "" + +#: ../Doc/library/test.rst:319 +msgid "Set to the top level directory that contains :mod:`test.support`." +msgstr "" + +#: ../Doc/library/test.rst:324 +msgid "Set to the top level directory for the test package." +msgstr "" + +#: ../Doc/library/test.rst:329 +msgid "Set to the ``data`` directory within the test package." +msgstr "" + +#: ../Doc/library/test.rst:334 +msgid "Set to :data:`sys.maxsize` for big memory tests." +msgstr "" + +#: ../Doc/library/test.rst:339 +msgid "" +"Set by :func:`set_memlimit` as the memory limit for big memory tests. " +"Limited by :data:`MAX_Py_ssize_t`." +msgstr "" + +#: ../Doc/library/test.rst:345 +msgid "" +"Set by :func:`set_memlimit` as the memory limit for big memory tests. Not " +"limited by :data:`MAX_Py_ssize_t`." +msgstr "" + +#: ../Doc/library/test.rst:351 +msgid "" +"Return ``True`` if running on CPython, not on Windows, and configuration not " +"set with ``WITH_DOC_STRINGS``." +msgstr "" + +#: ../Doc/library/test.rst:357 +msgid "Check for presence of docstrings." +msgstr "" + +#: ../Doc/library/test.rst:361 +msgid "Define the URL of a dedicated HTTP server for the network tests." +msgstr "" + +#: ../Doc/library/test.rst:365 +msgid "The :mod:`test.support` module defines the following functions:" +msgstr "" + +#: ../Doc/library/test.rst:369 +msgid "" +"Remove the module named *module_name* from ``sys.modules`` and delete any " +"byte-compiled files of the module." +msgstr "" + +#: ../Doc/library/test.rst:375 +msgid "Delete *name* from ``sys.modules``." +msgstr "" + +#: ../Doc/library/test.rst:380 +msgid "" +"Call :func:`os.unlink` on *filename*. On Windows platforms, this is wrapped " +"with a wait loop that checks for the existence fo the file." +msgstr "" + +#: ../Doc/library/test.rst:386 +msgid "" +"Call :func:`os.rmdir` on *filename*. On Windows platforms, this is wrapped " +"with a wait loop that checks for the existence of the file." +msgstr "" + +#: ../Doc/library/test.rst:392 +msgid "" +"Call :func:`shutil.rmtree` on *path* or call :func:`os.lstat` and :func:`os." +"rmdir` to remove a path and its contents. On Windows platforms, this is " +"wrapped with a wait loop that checks for the existence of the files." +msgstr "" + +#: ../Doc/library/test.rst:399 +msgid "" +"Move a PEP 3147/488 pyc file to its legacy pyc location and return the file " +"system path to the legacy pyc file. The *source* value is the file system " +"path to the source file. It does not need to exist, however the PEP " +"3147/488 pyc file must exist." +msgstr "" + +#: ../Doc/library/test.rst:407 +msgid "" +"Return ``True`` if *resource* is enabled and available. The list of " +"available resources is only set when :mod:`test.regrtest` is executing the " +"tests." +msgstr "" + +#: ../Doc/library/test.rst:414 +msgid "Return ``True`` if Python was not built with ``-O0`` or ``-Og``." +msgstr "" + +#: ../Doc/library/test.rst:419 +msgid "Return :data:`_testcapi.WITH_PYMALLOC`." +msgstr "" + +#: ../Doc/library/test.rst:424 +msgid "" +"Raise :exc:`ResourceDenied` if *resource* is not available. *msg* is the " +"argument to :exc:`ResourceDenied` if it is raised. Always returns ``True`` " +"if called by a function whose ``__name__`` is ``'__main__'``. Used when " +"tests are executed by :mod:`test.regrtest`." +msgstr "" + +#: ../Doc/library/test.rst:432 +msgid "" +"Raise :exc:`unittest.SkipTest` on TLS certification validation failures." +msgstr "" + +#: ../Doc/library/test.rst:437 +msgid "Return a repr of *dict* with keys sorted." +msgstr "" + +#: ../Doc/library/test.rst:442 +msgid "" +"Return the path to the file named *filename*. If no match is found " +"*filename* is returned. This does not equal a failure since it could be the " +"path to the file." +msgstr "" + +#: ../Doc/library/test.rst:446 +msgid "" +"Setting *subdir* indicates a relative path to use to find the file rather " +"than looking directly in the path directories." +msgstr "" + +#: ../Doc/library/test.rst:452 +msgid "" +"Create an empty file with *filename*. If it already exists, truncate it." +msgstr "" + +#: ../Doc/library/test.rst:457 +msgid "Count the number of open file descriptors." +msgstr "" + +#: ../Doc/library/test.rst:462 +msgid "Match *test* to patterns set in :func:`set_match_tests`." +msgstr "" + +#: ../Doc/library/test.rst:467 +msgid "Define match test with regular expression *patterns*." +msgstr "" + +#: ../Doc/library/test.rst:472 +msgid "" +"Execute :class:`unittest.TestCase` subclasses passed to the function. The " +"function scans the classes for methods starting with the prefix ``test_`` " +"and executes the tests individually." +msgstr "" + +#: ../Doc/library/test.rst:476 +msgid "" +"It is also legal to pass strings as parameters; these should be keys in " +"``sys.modules``. Each associated module will be scanned by ``unittest." +"TestLoader.loadTestsFromModule()``. This is usually seen in the following :" +"func:`test_main` function::" +msgstr "" + +#: ../Doc/library/test.rst:484 +msgid "This will run all tests defined in the named module." +msgstr "" + +#: ../Doc/library/test.rst:489 +msgid "" +"Run :func:`doctest.testmod` on the given *module*. Return ``(failure_count, " +"test_count)``." +msgstr "" + +#: ../Doc/library/test.rst:492 +msgid "" +"If *verbosity* is ``None``, :func:`doctest.testmod` is run with verbosity " +"set to :data:`verbose`. Otherwise, it is run with verbosity set to " +"``None``. *optionflags* is passed as ``optionflags`` to :func:`doctest." +"testmod`." +msgstr "" + +#: ../Doc/library/test.rst:500 +msgid "" +"Set the :func:`sys.setswitchinterval` to the given *interval*. Defines a " +"minimum interval for Android systems to prevent the system from hanging." +msgstr "" + +#: ../Doc/library/test.rst:506 +msgid "" +"Use this check to guard CPython's implementation-specific tests or to run " +"them only on the implementations guarded by the arguments::" +msgstr "" + +#: ../Doc/library/test.rst:516 +msgid "" +"A convenience wrapper for :func:`warnings.catch_warnings()` that makes it " +"easier to test that a warning was correctly raised. It is approximately " +"equivalent to calling ``warnings.catch_warnings(record=True)`` with :meth:" +"`warnings.simplefilter` set to ``always`` and with the option to " +"automatically validate the results that are recorded." +msgstr "" + +#: ../Doc/library/test.rst:522 +msgid "" +"``check_warnings`` accepts 2-tuples of the form ``(\"message regexp\", " +"WarningCategory)`` as positional arguments. If one or more *filters* are " +"provided, or if the optional keyword argument *quiet* is ``False``, it " +"checks to make sure the warnings are as expected: each specified filter " +"must match at least one of the warnings raised by the enclosed code or the " +"test fails, and if any warnings are raised that do not match any of the " +"specified filters the test fails. To disable the first of these checks, set " +"*quiet* to ``True``." +msgstr "" + +#: ../Doc/library/test.rst:531 +msgid "If no arguments are specified, it defaults to::" +msgstr "" + +#: ../Doc/library/test.rst:535 +msgid "In this case all warnings are caught and no errors are raised." +msgstr "" + +#: ../Doc/library/test.rst:537 +msgid "" +"On entry to the context manager, a :class:`WarningRecorder` instance is " +"returned. The underlying warnings list from :func:`~warnings.catch_warnings` " +"is available via the recorder object's :attr:`warnings` attribute. As a " +"convenience, the attributes of the object representing the most recent " +"warning can also be accessed directly through the recorder object (see " +"example below). If no warning has been raised, then any of the attributes " +"that would otherwise be expected on an object representing a warning will " +"return ``None``." +msgstr "" + +#: ../Doc/library/test.rst:546 +msgid "" +"The recorder object also has a :meth:`reset` method, which clears the " +"warnings list." +msgstr "" + +#: ../Doc/library/test.rst:549 +msgid "The context manager is designed to be used like this::" +msgstr "" + +#: ../Doc/library/test.rst:556 +msgid "" +"In this case if either warning was not raised, or some other warning was " +"raised, :func:`check_warnings` would raise an error." +msgstr "" + +#: ../Doc/library/test.rst:559 +msgid "" +"When a test needs to look more deeply into the warnings, rather than just " +"checking whether or not they occurred, code like this can be used::" +msgstr "" + +#: ../Doc/library/test.rst:573 +msgid "" +"Here all warnings will be caught, and the test code tests the captured " +"warnings directly." +msgstr "" + +#: ../Doc/library/test.rst:576 +msgid "New optional arguments *filters* and *quiet*." +msgstr "" + +#: ../Doc/library/test.rst:582 +msgid "" +"Context manager to check that no :exc:`ResourceWarning` was raised. You " +"must remove the object which may emit :exc:`ResourceWarning` before the end " +"of the context manager." +msgstr "" + +#: ../Doc/library/test.rst:589 +msgid "" +"Set the values for :data:`max_memuse` and :data:`real_max_memuse` for big " +"memory tests." +msgstr "" + +#: ../Doc/library/test.rst:595 +msgid "" +"Store the value from *stdout*. It is meant to hold the stdout at the time " +"the regrtest began." +msgstr "" + +#: ../Doc/library/test.rst:601 +msgid "" +"Return the original stdout set by :func:`record_original_stdout` or ``sys." +"stdout`` if it's not set." +msgstr "" + +#: ../Doc/library/test.rst:607 +msgid "" +"Strip the *stderr* of a Python process from potential debug output emitted " +"by the interpreter. This will typically be run on the result of :meth:" +"`subprocess.Popen.communicate`." +msgstr "" + +#: ../Doc/library/test.rst:614 +msgid "" +"Return a list of command line arguments reproducing the current settings in " +"``sys.flags`` and ``sys.warnoptions``." +msgstr "" + +#: ../Doc/library/test.rst:620 +msgid "" +"Return a list of command line arguments reproducing the current optimization " +"settings in ``sys.flags``." +msgstr "" + +#: ../Doc/library/test.rst:628 +msgid "" +"A context managers that temporarily replaces the named stream with :class:" +"`io.StringIO` object." +msgstr "" + +#: ../Doc/library/test.rst:631 +msgid "Example use with output streams::" +msgstr "" + +#: ../Doc/library/test.rst:639 +msgid "Example use with input stream::" +msgstr "" + +#: ../Doc/library/test.rst:651 +msgid "" +"A context manager that creates a temporary directory at *path* and yields " +"the directory." +msgstr "" + +#: ../Doc/library/test.rst:654 +msgid "" +"If *path* is ``None``, the temporary directory is created using :func:" +"`tempfile.mkdtemp`. If *quiet* is ``False``, the context manager raises an " +"exception on error. Otherwise, if *path* is specified and cannot be " +"created, only a warning is issued." +msgstr "" + +#: ../Doc/library/test.rst:662 +msgid "" +"A context manager that temporarily changes the current working directory to " +"*path* and yields the directory." +msgstr "" + +#: ../Doc/library/test.rst:665 +msgid "" +"If *quiet* is ``False``, the context manager raises an exception on error. " +"Otherwise, it issues only a warning and keeps the current working directory " +"the same." +msgstr "" + +#: ../Doc/library/test.rst:672 +msgid "" +"A context manager that temporarily creates a new directory and changes the " +"current working directory (CWD)." +msgstr "" + +#: ../Doc/library/test.rst:675 +msgid "" +"The context manager creates a temporary directory in the current directory " +"with name *name* before temporarily changing the current working directory. " +"If *name* is ``None``, the temporary directory is created using :func:" +"`tempfile.mkdtemp`." +msgstr "" + +#: ../Doc/library/test.rst:680 +msgid "" +"If *quiet* is ``False`` and it is not possible to create or change the CWD, " +"an error is raised. Otherwise, only a warning is raised and the original " +"CWD is used." +msgstr "" + +#: ../Doc/library/test.rst:687 +msgid "A context manager that temporarily sets the process umask." +msgstr "" + +#: ../Doc/library/test.rst:692 +msgid "" +"A context manager that raises :exc:`ResourceDenied` when various issues with " +"the internet connection manifest themselves as exceptions." +msgstr "" + +#: ../Doc/library/test.rst:698 +msgid "A context manager that replaces ``sys.stderr`` with ``sys.__stderr__``." +msgstr "" + +#: ../Doc/library/test.rst:703 +msgid "" +"Force as many objects as possible to be collected. This is needed because " +"timely deallocation is not guaranteed by the garbage collector. This means " +"that ``__del__`` methods may be called later than expected and weakrefs may " +"remain alive for longer than expected." +msgstr "" + +#: ../Doc/library/test.rst:711 +msgid "" +"A context manager that disables the garbage collector upon entry and " +"reenables it upon exit." +msgstr "" + +#: ../Doc/library/test.rst:717 +msgid "Context manager to swap out an attribute with a new object." +msgstr "" + +#: ../Doc/library/test.rst:719 ../Doc/library/test.rst:737 +msgid "Usage::" +msgstr "Utilisation ::" + +#: ../Doc/library/test.rst:724 +msgid "" +"This will set ``obj.attr`` to 5 for the duration of the ``with`` block, " +"restoring the old value at the end of the block. If ``attr`` doesn't exist " +"on ``obj``, it will be created and then deleted at the end of the block." +msgstr "" + +#: ../Doc/library/test.rst:729 ../Doc/library/test.rst:747 +msgid "" +"The old value (or ``None`` if it doesn't exist) will be assigned to the " +"target of the \"as\" clause, if there is one." +msgstr "" + +#: ../Doc/library/test.rst:735 +msgid "Context manager to swap out an item with a new object." +msgstr "" + +#: ../Doc/library/test.rst:742 +msgid "" +"This will set ``obj[\"item\"]`` to 5 for the duration of the ``with`` block, " +"restoring the old value at the end of the block. If ``item`` doesn't exist " +"on ``obj``, it will be created and then deleted at the end of the block." +msgstr "" + +#: ../Doc/library/test.rst:753 +msgid "" +"Context manager to wait until all threads created in the ``with`` statement " +"exit." +msgstr "" + +#: ../Doc/library/test.rst:759 +msgid "" +"Context manager to start *threads*. It attempts to join the threads upon " +"exit." +msgstr "" + +#: ../Doc/library/test.rst:765 +msgid "" +"Return :func:`struct.calcsize` for ``nP{fmt}0n`` or, if ``gettotalrefcount`` " +"exists, ``2PnP{fmt}0P``." +msgstr "" + +#: ../Doc/library/test.rst:771 +msgid "" +"Return :func:`struct.calcsize` for ``nPn{fmt}0n`` or, if " +"``gettotalrefcount`` exists, ``2PnPn{fmt}0P``." +msgstr "" + +#: ../Doc/library/test.rst:777 +msgid "" +"For testcase *test*, assert that the ``sys.getsizeof`` for *o* plus the GC " +"header size equals *size*." +msgstr "" + +#: ../Doc/library/test.rst:783 +msgid "Return ``True`` if the OS supports symbolic links, ``False`` otherwise." +msgstr "" + +#: ../Doc/library/test.rst:789 +msgid "Return ``True`` if the OS supports xattr, ``False`` otherwise." +msgstr "" + +#: ../Doc/library/test.rst:795 +msgid "A decorator for running tests that require support for symbolic links." +msgstr "" + +#: ../Doc/library/test.rst:800 +msgid "A decorator for running tests that require support for xattr." +msgstr "" + +#: ../Doc/library/test.rst:805 +msgid "" +"A decorator for running tests that require a functional bind() for Unix " +"sockets." +msgstr "" + +#: ../Doc/library/test.rst:811 +msgid "" +"A decorator to conditionally mark tests with :func:`unittest." +"expectedFailure`. Any use of this decorator should have an associated " +"comment identifying the relevant tracker issue." +msgstr "" + +#: ../Doc/library/test.rst:818 +msgid "" +"A decorator for running a function in a different locale, correctly " +"resetting it after it has finished. *catstr* is the locale category as a " +"string (for example ``\"LC_ALL\"``). The *locales* passed will be tried " +"sequentially, and the first valid locale will be used." +msgstr "" + +#: ../Doc/library/test.rst:826 +msgid "" +"A decorator for running a function in a specific timezone, correctly " +"resetting it after it has finished." +msgstr "" + +#: ../Doc/library/test.rst:832 +msgid "" +"Decorator for the minimum version when running test on FreeBSD. If the " +"FreeBSD version is less than the minimum, raise :exc:`unittest.SkipTest`." +msgstr "" + +#: ../Doc/library/test.rst:838 +msgid "" +"Decorator for the minimum version when running test on Linux. If the Linux " +"version is less than the minimum, raise :exc:`unittest.SkipTest`." +msgstr "" + +#: ../Doc/library/test.rst:844 +msgid "" +"Decorator for the minimum version when running test on Mac OS X. If the MAC " +"OS X version is less than the minimum, raise :exc:`unittest.SkipTest`." +msgstr "" + +#: ../Doc/library/test.rst:850 +msgid "Decorator for skipping tests on non-IEEE 754 platforms." +msgstr "" + +#: ../Doc/library/test.rst:855 +msgid "Decorator for skipping tests if :mod:`zlib` doesn't exist." +msgstr "" + +#: ../Doc/library/test.rst:860 +msgid "Decorator for skipping tests if :mod:`gzip` doesn't exist." +msgstr "" + +#: ../Doc/library/test.rst:865 +msgid "Decorator for skipping tests if :mod:`bz2` doesn't exist." +msgstr "" + +#: ../Doc/library/test.rst:870 +msgid "Decorator for skipping tests if :mod:`lzma` doesn't exist." +msgstr "" + +#: ../Doc/library/test.rst:875 +msgid "Decorator for skipping tests if *resource* is not available." +msgstr "" + +#: ../Doc/library/test.rst:880 +msgid "Decorator for only running the test if :data:`HAVE_DOCSTRINGS`." +msgstr "" + +#: ../Doc/library/test.rst:885 +msgid "Decorator for tests only applicable to CPython." +msgstr "" + +#: ../Doc/library/test.rst:890 +msgid "" +"Decorator for invoking :func:`check_impl_detail` on *guards*. If that " +"returns ``False``, then uses *msg* as the reason for skipping the test." +msgstr "" + +#: ../Doc/library/test.rst:896 +msgid "Decorator to temporarily turn off tracing for the duration of the test." +msgstr "" + +#: ../Doc/library/test.rst:901 +msgid "" +"Decorator for tests which involve reference counting. The decorator does " +"not run the test if it is not run by CPython. Any trace function is unset " +"for the duration of the test to prevent unexpected refcounts caused by the " +"trace function." +msgstr "" + +#: ../Doc/library/test.rst:909 +msgid "Decorator to ensure the threads are cleaned up even if the test fails." +msgstr "" + +#: ../Doc/library/test.rst:914 +msgid "Decorator for bigmem tests." +msgstr "" + +#: ../Doc/library/test.rst:916 +msgid "" +"*size* is a requested size for the test (in arbitrary, test-interpreted " +"units.) *memuse* is the number of bytes per unit for the test, or a good " +"estimate of it. For example, a test that needs two byte buffers, of 4 GiB " +"each, could be decorated with ``@bigmemtest(size=_4G, memuse=2)``." +msgstr "" + +#: ../Doc/library/test.rst:921 +msgid "" +"The *size* argument is normally passed to the decorated test method as an " +"extra argument. If *dry_run* is ``True``, the value passed to the test " +"method may be less than the requested value. If *dry_run* is ``False``, it " +"means the test doesn't support dummy runs when ``-M`` is not specified." +msgstr "" + +#: ../Doc/library/test.rst:929 +msgid "" +"Decorator for tests that fill the address space. *f* is the function to " +"wrap." +msgstr "" + +#: ../Doc/library/test.rst:935 +msgid "" +"Create an invalid file descriptor by opening and closing a temporary file, " +"and returning its descriptor." +msgstr "" + +#: ../Doc/library/test.rst:941 +msgid "" +"Test for syntax errors in *statement* by attempting to compile *statement*. " +"*testcase* is the :mod:`unittest` instance for the test. *errtext* is the " +"text of the error raised by :exc:`SyntaxError`. If *lineno* is not None, " +"compares to the line of the :exc:`SyntaxError`. If *offset* is not None, " +"compares to the offset of the :exc:`SyntaxError`." +msgstr "" + +#: ../Doc/library/test.rst:950 +msgid "Open *url*. If open fails, raises :exc:`TestFailed`." +msgstr "" + +#: ../Doc/library/test.rst:955 +msgid "" +"This function imports and returns the named module. Unlike a normal import, " +"this function raises :exc:`unittest.SkipTest` if the module cannot be " +"imported." +msgstr "" + +#: ../Doc/library/test.rst:959 +msgid "" +"Module and package deprecation messages are suppressed during this import if " +"*deprecated* is ``True``. If a module is required on a platform but " +"optional for others, set *required_on* to an iterable of platform prefixes " +"which will be compared against :data:`sys.platform`." +msgstr "" + +#: ../Doc/library/test.rst:969 +msgid "" +"This function imports and returns a fresh copy of the named Python module by " +"removing the named module from ``sys.modules`` before doing the import. Note " +"that unlike :func:`reload`, the original module is not affected by this " +"operation." +msgstr "" + +#: ../Doc/library/test.rst:974 +msgid "" +"*fresh* is an iterable of additional module names that are also removed from " +"the ``sys.modules`` cache before doing the import." +msgstr "" + +#: ../Doc/library/test.rst:977 +msgid "" +"*blocked* is an iterable of module names that are replaced with ``None`` in " +"the module cache during the import to ensure that attempts to import them " +"raise :exc:`ImportError`." +msgstr "" + +#: ../Doc/library/test.rst:981 +msgid "" +"The named module and any modules named in the *fresh* and *blocked* " +"parameters are saved before starting the import and then reinserted into " +"``sys.modules`` when the fresh import is complete." +msgstr "" + +#: ../Doc/library/test.rst:985 +msgid "" +"Module and package deprecation messages are suppressed during this import if " +"*deprecated* is ``True``." +msgstr "" + +#: ../Doc/library/test.rst:988 +msgid "" +"This function will raise :exc:`ImportError` if the named module cannot be " +"imported." +msgstr "" + +#: ../Doc/library/test.rst:991 ../Doc/library/test.rst:1171 +msgid "Example use::" +msgstr "" + +#: ../Doc/library/test.rst:1005 +msgid "Return a copy of :data:`sys.modules`." +msgstr "" + +#: ../Doc/library/test.rst:1010 +msgid "" +"Remove modules except for *oldmodules* and ``encodings`` in order to " +"preserve internal cache." +msgstr "" + +#: ../Doc/library/test.rst:1016 +msgid "Return current thread count and copy of dangling threads." +msgstr "" + +#: ../Doc/library/test.rst:1021 +msgid "" +"Cleanup up threads not specified in *original_values*. Designed to emit a " +"warning if a test leaves running threads in the background." +msgstr "" + +#: ../Doc/library/test.rst:1027 +msgid "" +"Join a *thread* within *timeout*. Raise an :exc:`AssertionError` if thread " +"is still alive after *timeout* seconds." +msgstr "" + +#: ../Doc/library/test.rst:1033 +msgid "" +"Use this at the end of ``test_main`` whenever sub-processes are started. " +"This will help ensure that no extra children (zombies) stick around to hog " +"resources and create problems when looking for refleaks." +msgstr "" + +#: ../Doc/library/test.rst:1040 +msgid "" +"Get an attribute, raising :exc:`unittest.SkipTest` if :exc:`AttributeError` " +"is raised." +msgstr "" + +#: ../Doc/library/test.rst:1046 +msgid "" +"Bind the socket to a free port and return the port number. Relies on " +"ephemeral ports in order to ensure we are using an unbound port. This is " +"important as many tests may be running simultaneously, especially in a " +"buildbot environment. This method raises an exception if the ``sock." +"family`` is :const:`~socket.AF_INET` and ``sock.type`` is :const:`~socket." +"SOCK_STREAM`, and the socket has :const:`~socket.SO_REUSEADDR` or :const:" +"`~socket.SO_REUSEPORT` set on it. Tests should never set these socket " +"options for TCP/IP sockets. The only case for setting these options is " +"testing multicasting via multiple UDP sockets." +msgstr "" + +#: ../Doc/library/test.rst:1057 +msgid "" +"Additionally, if the :const:`~socket.SO_EXCLUSIVEADDRUSE` socket option is " +"available (i.e. on Windows), it will be set on the socket. This will " +"prevent anyone else from binding to our host/port for the duration of the " +"test." +msgstr "" + +#: ../Doc/library/test.rst:1065 +msgid "" +"Bind a unix socket, raising :exc:`unittest.SkipTest` if :exc:" +"`PermissionError` is raised." +msgstr "" + +#: ../Doc/library/test.rst:1071 +msgid "" +"Returns an unused port that should be suitable for binding. This is " +"achieved by creating a temporary socket with the same family and type as the " +"``sock`` parameter (default is :const:`~socket.AF_INET`, :const:`~socket." +"SOCK_STREAM`), and binding it to the specified host address (defaults to " +"``0.0.0.0``) with the port set to 0, eliciting an unused ephemeral port from " +"the OS. The temporary socket is then closed and deleted, and the ephemeral " +"port is returned." +msgstr "" + +#: ../Doc/library/test.rst:1080 +msgid "" +"Either this method or :func:`bind_port` should be used for any tests where a " +"server socket needs to be bound to a particular port for the duration of the " +"test. Which one to use depends on whether the calling code is creating a " +"Python socket, or if an unused port needs to be provided in a constructor or " +"passed to an external program (i.e. the ``-accept`` argument to openssl's " +"s_server mode). Always prefer :func:`bind_port` over :func:" +"`find_unused_port` where possible. Using a hard coded port is discouraged " +"since it can make multiple instances of the test impossible to run " +"simultaneously, which is a problem for buildbots." +msgstr "" + +#: ../Doc/library/test.rst:1094 +msgid "" +"Generic implementation of the :mod:`unittest` ``load_tests`` protocol for " +"use in test packages. *pkg_dir* is the root directory of the package; " +"*loader*, *standard_tests*, and *pattern* are the arguments expected by " +"``load_tests``. In simple cases, the test package's ``__init__.py`` can be " +"the following::" +msgstr "" + +#: ../Doc/library/test.rst:1109 +msgid "Return ``True`` if the file system for *directory* is case-insensitive." +msgstr "" + +#: ../Doc/library/test.rst:1114 +msgid "" +"Returns the set of attributes, functions or methods of *ref_api* not found " +"on *other_api*, except for a defined list of items to be ignored in this " +"check specified in *ignore*." +msgstr "" + +#: ../Doc/library/test.rst:1118 +msgid "" +"By default this skips private attributes beginning with '_' but includes all " +"magic methods, i.e. those starting and ending in '__'." +msgstr "" + +#: ../Doc/library/test.rst:1126 +msgid "" +"Override *object_to_patch.attr_name* with *new_value*. Also add cleanup " +"procedure to *test_instance* to restore *object_to_patch* for *attr_name*. " +"The *attr_name* should be a valid attribute for *object_to_patch*." +msgstr "" + +#: ../Doc/library/test.rst:1134 +msgid "" +"Run *code* in subinterpreter. Raise :exc:`unittest.SkipTest` if :mod:" +"`tracemalloc` is enabled." +msgstr "" + +#: ../Doc/library/test.rst:1140 +msgid "Assert that *iter* is deallocated after iterating." +msgstr "" + +#: ../Doc/library/test.rst:1145 +msgid "" +"Check for the existence of the compiler executables whose names are listed " +"in *cmd_names* or all the compiler executables when *cmd_names* is empty and " +"return the first missing executable or ``None`` when none is found missing." +msgstr "" + +#: ../Doc/library/test.rst:1153 +msgid "" +"Assert that the ``__all__`` variable of *module* contains all public names." +msgstr "" + +#: ../Doc/library/test.rst:1155 +msgid "" +"The module's public names (its API) are detected automatically based on " +"whether they match the public name convention and were defined in *module*." +msgstr "" + +#: ../Doc/library/test.rst:1159 +msgid "" +"The *name_of_module* argument can specify (as a string or tuple thereof) " +"what module(s) an API could be defined in order to be detected as a public " +"API. One case for this is when *module* imports part of its public API from " +"other modules, possibly a C backend (like ``csv`` and its ``_csv``)." +msgstr "" + +#: ../Doc/library/test.rst:1164 +msgid "" +"The *extra* argument can be a set of names that wouldn't otherwise be " +"automatically detected as \"public\", like objects without a proper " +"``__module__`` attribute. If provided, it will be added to the automatically " +"detected ones." +msgstr "" + +#: ../Doc/library/test.rst:1168 +msgid "" +"The *blacklist* argument can be a set of names that must not be treated as " +"part of the public API even though their names indicate otherwise." +msgstr "" + +#: ../Doc/library/test.rst:1193 +msgid "The :mod:`test.support` module defines the following classes:" +msgstr "" + +#: ../Doc/library/test.rst:1197 +msgid "" +"Instances are a context manager that raises :exc:`ResourceDenied` if the " +"specified exception type is raised. Any keyword arguments are treated as " +"attribute/value pairs to be compared against any exception raised within " +"the :keyword:`with` statement. Only if all pairs match properly against " +"attributes on the exception is :exc:`ResourceDenied` raised." +msgstr "" + +#: ../Doc/library/test.rst:1206 +msgid "" +"Class used to temporarily set or unset environment variables. Instances can " +"be used as a context manager and have a complete dictionary interface for " +"querying/modifying the underlying ``os.environ``. After exit from the " +"context manager all changes to environment variables done through this " +"instance will be rolled back." +msgstr "" + +#: ../Doc/library/test.rst:1212 +msgid "Added dictionary interface." +msgstr "" + +#: ../Doc/library/test.rst:1217 +msgid "" +"Temporarily set the environment variable ``envvar`` to the value of " +"``value``." +msgstr "" + +#: ../Doc/library/test.rst:1223 +msgid "Temporarily unset the environment variable ``envvar``." +msgstr "" + +#: ../Doc/library/test.rst:1228 +msgid "" +"A context manager used to try to prevent crash dialog popups on tests that " +"are expected to crash a subprocess." +msgstr "" + +#: ../Doc/library/test.rst:1231 +msgid "" +"On Windows, it disables Windows Error Reporting dialogs using `SetErrorMode " +"`_." +msgstr "" + +#: ../Doc/library/test.rst:1234 +msgid "" +"On UNIX, :func:`resource.setrlimit` is used to set :attr:`resource." +"RLIMIT_CORE`'s soft limit to 0 to prevent coredump file creation." +msgstr "" + +#: ../Doc/library/test.rst:1238 +msgid "On both platforms, the old value is restored by :meth:`__exit__`." +msgstr "" + +#: ../Doc/library/test.rst:1243 +msgid "" +"A context manager to force import to return a new module reference. This is " +"useful for testing module-level behaviors, such as the emission of a " +"DeprecationWarning on import. Example usage::" +msgstr "" + +#: ../Doc/library/test.rst:1253 +msgid "A context manager to temporarily add directories to sys.path." +msgstr "" + +#: ../Doc/library/test.rst:1255 +msgid "" +"This makes a copy of :data:`sys.path`, appends any directories given as " +"positional arguments, then reverts :data:`sys.path` to the copied settings " +"when the context ends." +msgstr "" + +#: ../Doc/library/test.rst:1259 +msgid "" +"Note that *all* :data:`sys.path` modifications in the body of the context " +"manager, including replacement of the object, will be reverted at the end of " +"the block." +msgstr "" + +#: ../Doc/library/test.rst:1266 +msgid "" +"Class to save and restore signal handlers registered by the Python signal " +"handler." +msgstr "" + +#: ../Doc/library/test.rst:1274 +msgid "Try to match a single dict with the supplied arguments." +msgstr "" + +#: ../Doc/library/test.rst:1279 +msgid "Try to match a single stored value (*dv*) with a supplied value (*v*)." +msgstr "" + +#: ../Doc/library/test.rst:1284 +msgid "" +"Class used to record warnings for unit tests. See documentation of :func:" +"`check_warnings` above for more details." +msgstr "" + +#: ../Doc/library/test.rst:1292 +msgid "Run *test* and return the result." +msgstr "" + +#: ../Doc/library/test.rst:1297 +msgid "Class for logging support." +msgstr "" + +#: ../Doc/library/test.rst:1302 +msgid "" +"Simple :term:`path-like object`. It implements the :meth:`__fspath__` " +"method which just returns the *path* argument. If *path* is an exception, " +"it will be raised in :meth:`!__fspath__`." +msgstr "" + +#: ../Doc/library/test.rst:1308 +msgid "" +":mod:`test.support.script_helper` --- Utilities for the Python execution " +"tests" +msgstr "" + +#: ../Doc/library/test.rst:1314 +msgid "" +"The :mod:`test.support.script_helper` module provides support for Python's " +"script execution tests." +msgstr "" + +#: ../Doc/library/test.rst:1319 +msgid "" +"Return ``True`` if ``sys.executable interpreter`` requires environment " +"variables in order to be able to run at all." +msgstr "" + +#: ../Doc/library/test.rst:1322 +msgid "" +"This is designed to be used with ``@unittest.skipIf()`` to annotate tests " +"that need to use an ``assert_python*()`` function to launch an isolated mode " +"(``-I``) or no environment mode (``-E``) sub-interpreter process." +msgstr "" + +#: ../Doc/library/test.rst:1326 +msgid "" +"A normal build & test does not run into this situation but it can happen " +"when trying to run the standard library test suite from an interpreter that " +"doesn't have an obvious home with Python's current home finding logic." +msgstr "" + +#: ../Doc/library/test.rst:1330 +msgid "" +"Setting :envvar:`PYTHONHOME` is one way to get most of the testsuite to run " +"in that situation. :envvar:`PYTHONPATH` or :envvar:`PYTHONUSERSITE` are " +"other common environment variables that might impact whether or not the " +"interpreter can start." +msgstr "" + +#: ../Doc/library/test.rst:1338 +msgid "" +"Set up the environment based on *env_vars* for running the interpreter in a " +"subprocess. The values can include ``__isolated``, ``__cleanenv``, " +"``__cwd``, and ``TERM``." +msgstr "" + +#: ../Doc/library/test.rst:1345 +msgid "" +"Assert that running the interpreter with *args* and optional environment " +"variables *env_vars* succeeds (``rc == 0``) and return a ``(return code, " +"stdout, stderr)`` tuple." +msgstr "" + +#: ../Doc/library/test.rst:1349 +msgid "" +"If the ``__cleanenv`` keyword is set, *env_vars* is used as a fresh " +"environment." +msgstr "" + +#: ../Doc/library/test.rst:1352 +msgid "" +"Python is started in isolated mode (command line option ``-I``), except if " +"the ``__isolated`` keyword is set to ``False``." +msgstr "" + +#: ../Doc/library/test.rst:1358 +msgid "" +"Assert that running the interpreter with *args* and optional environment " +"variables *env_vars* fails (``rc != 0``) and return a ``(return code, " +"stdout, stderr)`` tuple." +msgstr "" + +#: ../Doc/library/test.rst:1362 +msgid "See :func:`assert_python_ok` for more options." +msgstr "" + +#: ../Doc/library/test.rst:1367 +msgid "Run a Python subprocess with the given arguments." +msgstr "" + +#: ../Doc/library/test.rst:1369 +msgid "" +"*kw* is extra keyword args to pass to :func:`subprocess.Popen`. Returns a :" +"class:`subprocess.Popen` object." +msgstr "" + +#: ../Doc/library/test.rst:1375 +msgid "" +"Run the given :class:`subprocess.Popen` process until completion and return " +"stdout." +msgstr "" + +#: ../Doc/library/test.rst:1381 +msgid "" +"Create script containing *source* in path *script_dir* and " +"*script_basename*. If *omit_suffix* is ``False``, append ``.py`` to the " +"name. Return the full script path." +msgstr "" + +#: ../Doc/library/test.rst:1388 +msgid "" +"Create zip file at *zip_dir* and *zip_basename* with extension ``zip`` which " +"contains the files in *script_name*. *name_in_zip* is the archive name. " +"Return a tuple containing ``(full path, full path of archive name)``." +msgstr "" + +#: ../Doc/library/test.rst:1395 +msgid "" +"Create a directory named *pkg_dir* containing an ``__init__`` file with " +"*init_source* as its contents." +msgstr "" + +#: ../Doc/library/test.rst:1402 +msgid "" +"Create a zip package directory with a path of *zip_dir* and *zip_basename* " +"containing an empty ``__init__`` file and a file *script_basename* " +"containing the *source*. If *compiled* is ``True``, both source files will " +"be compiled and added to the zip package. Return a tuple of the full zip " +"path and the archive name for the zip file." +msgstr "" diff --git a/library/text.po b/library/text.po new file mode 100644 index 000000000..9b5695c40 --- /dev/null +++ b/library/text.po @@ -0,0 +1,38 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-11-08 00:03+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/text.rst:6 +msgid "Text Processing Services" +msgstr "Services de Manipulation de Texte" + +#: ../Doc/library/text.rst:8 +msgid "" +"The modules described in this chapter provide a wide range of string " +"manipulation operations and other text processing services." +msgstr "" +"Les modules décrits dans ce chapitre fournissent un large ensemble " +"d'opérations de manipulation sur les chaînes de caractères et le texte en " +"général." + +#: ../Doc/library/text.rst:11 +msgid "" +"The :mod:`codecs` module described under :ref:`binaryservices` is also " +"highly relevant to text processing. In addition, see the documentation for " +"Python's built-in string type in :ref:`textseq`." +msgstr "" +"Le module :mod:`codecs` documenté dans :ref:`binaryservices` est aussi très " +"pertinent pour la manipulation de texte. Consultez aussi la documentation du " +"type *str* natif Python dans :ref:`textseq`." diff --git a/library/textwrap.po b/library/textwrap.po new file mode 100644 index 000000000..ba0015ef4 --- /dev/null +++ b/library/textwrap.po @@ -0,0 +1,447 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-04-12 15:04+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/library/textwrap.rst:2 +msgid ":mod:`textwrap` --- Text wrapping and filling" +msgstr ":mod:`textwrap` --- Encapsulation et remplissage de texte" + +#: ../Doc/library/textwrap.rst:10 +msgid "**Source code:** :source:`Lib/textwrap.py`" +msgstr "**Source code:** :source:`Lib/textwrap.py`" + +#: ../Doc/library/textwrap.rst:14 +msgid "" +"The :mod:`textwrap` module provides some convenience functions, as well as :" +"class:`TextWrapper`, the class that does all the work. If you're just " +"wrapping or filling one or two text strings, the convenience functions " +"should be good enough; otherwise, you should use an instance of :class:" +"`TextWrapper` for efficiency." +msgstr "" +"Le module :mod:`textwrap` fournit quelques fonctions pratiques, comme :class:" +"`TextWrapper`, la classe qui fait tout le travail. Si vous ne faites que " +"formater ou ajuster une ou deux chaînes de texte, les fonctions de commodité " +"devraient être assez bonnes ; sinon, nous vous conseillons d'utiliser une " +"instance de :class:`TextWrapper` pour une meilleure efficacité." + +#: ../Doc/library/textwrap.rst:22 +msgid "" +"Wraps the single paragraph in *text* (a string) so every line is at most " +"*width* characters long. Returns a list of output lines, without final " +"newlines." +msgstr "" +"Reformate le paragraphe simple dans *text* (une chaîne de caractères) de " +"sorte que chaque ligne ait au maximum *largeur* caractères. Renvoie une " +"liste de lignes de sortie, sans ligne vide ou caractère de fin de ligne à la " +"fin." + +#: ../Doc/library/textwrap.rst:26 +msgid "" +"Optional keyword arguments correspond to the instance attributes of :class:" +"`TextWrapper`, documented below. *width* defaults to ``70``." +msgstr "" +"Les arguments par mot-clé optionnels correspondent aux attributs d'instance " +"de :class:`TextWrapper`, documentés ci-dessous. *width* vaut ``70`` par " +"défaut." + +#: ../Doc/library/textwrap.rst:29 +msgid "" +"See the :meth:`TextWrapper.wrap` method for additional details on how :func:" +"`wrap` behaves." +msgstr "" +"Consultez la méthode :meth:`TextWrapper.wrap` pour plus de détails sur le " +"comportement de :func:`wrap`." + +#: ../Doc/library/textwrap.rst:35 +msgid "" +"Wraps the single paragraph in *text*, and returns a single string containing " +"the wrapped paragraph. :func:`fill` is shorthand for ::" +msgstr "" +"Formate le paragraphe unique dans *text* et renvoie une seule chaîne dont le " +"contenu est le paragraphe formaté. :func:`fill` est un raccourci pour ::" + +#: ../Doc/library/textwrap.rst:40 +msgid "" +"In particular, :func:`fill` accepts exactly the same keyword arguments as :" +"func:`wrap`." +msgstr "" +"En particulier, :func:`fill` accepte exactement les mêmes arguments par mot-" +"clé que :func:`wrap`." + +#: ../Doc/library/textwrap.rst:46 +msgid "Collapse and truncate the given *text* to fit in the given *width*." +msgstr "" +"Réduit et tronque le *text* donné pour l'adapter à la *largeur* donnée." + +#: ../Doc/library/textwrap.rst:48 +msgid "" +"First the whitespace in *text* is collapsed (all whitespace is replaced by " +"single spaces). If the result fits in the *width*, it is returned. " +"Otherwise, enough words are dropped from the end so that the remaining words " +"plus the :attr:`placeholder` fit within :attr:`width`::" +msgstr "" +"Tout d'abord, les espaces dans *text* sont réduites (toutes les espaces " +"blancs sont remplacées par des espaces simples). Si le résultat tient dans " +"la *width*, il est renvoyé. Sinon, suffisamment de mots sont supprimés en " +"fin de chaîne de manière à ce que les mots restants plus le :attr:" +"`placeholder` tiennent dans :attr:`width` ::" + +#: ../Doc/library/textwrap.rst:60 +msgid "" +"Optional keyword arguments correspond to the instance attributes of :class:" +"`TextWrapper`, documented below. Note that the whitespace is collapsed " +"before the text is passed to the :class:`TextWrapper` :meth:`fill` function, " +"so changing the value of :attr:`.tabsize`, :attr:`.expand_tabs`, :attr:`." +"drop_whitespace`, and :attr:`.replace_whitespace` will have no effect." +msgstr "" +"Les arguments par mot-clé optionnels correspondent aux attributs d'instance " +"de :class:`TextWrapper`, documentés ci-dessous. Notez que l'espace blanc " +"est réduit avant que le texte ne soit passé à la fonction :meth:`fill` de :" +"class:`TextWrapper`, donc changer la valeur de :attr:`.tabsize`, :attr:`." +"expand_tabs`, :attr:`.drop_whitespace`, et :attr:`.replace_whitespace` est " +"sans effet." + +#: ../Doc/library/textwrap.rst:71 +msgid "Remove any common leading whitespace from every line in *text*." +msgstr "Supprime toutes les espaces en de tête de chaque ligne dans *text*." + +#: ../Doc/library/textwrap.rst:73 +msgid "" +"This can be used to make triple-quoted strings line up with the left edge of " +"the display, while still presenting them in the source code in indented form." +msgstr "" +"Ceci peut être utilisé pour aligner les chaînes à trois guillemets avec le " +"bord gauche de l'affichage, tout en les présentant sous forme indentée dans " +"le code source." + +#: ../Doc/library/textwrap.rst:76 +msgid "" +"Note that tabs and spaces are both treated as whitespace, but they are not " +"equal: the lines ``\" hello\"`` and ``\"\\thello\"`` are considered to have " +"no common leading whitespace." +msgstr "" +"Notez que les tabulations et les espaces sont traitées comme des espaces, " +"mais qu'elles ne sont pas égales : les lignes ``\" hello\"`` et ``\"\\thello" +"\"`` sont considérées comme n'ayant pas d'espaces de tête communes." + +#: ../Doc/library/textwrap.rst:80 ../Doc/library/textwrap.rst:101 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/library/textwrap.rst:94 +msgid "Add *prefix* to the beginning of selected lines in *text*." +msgstr "Ajoute *prefix* au début des lignes sélectionnées dans *text*." + +#: ../Doc/library/textwrap.rst:96 +msgid "Lines are separated by calling ``text.splitlines(True)``." +msgstr "Les lignes sont séparées en appelant ``text.splitlines(True)``." + +#: ../Doc/library/textwrap.rst:98 +msgid "" +"By default, *prefix* is added to all lines that do not consist solely of " +"whitespace (including any line endings)." +msgstr "" +"Par défaut, *prefix* est ajouté à toutes les lignes qui ne sont pas " +"constituées uniquement d'espaces (y compris les fins de ligne)." + +#: ../Doc/library/textwrap.rst:107 +msgid "" +"The optional *predicate* argument can be used to control which lines are " +"indented. For example, it is easy to add *prefix* to even empty and " +"whitespace-only lines::" +msgstr "" +"L'argument optionnel *predicate* peut être utilisé pour contrôler quelles " +"lignes sont en retrait. Par exemple, il est facile d'ajouter *prefix* aux " +"lignes vides et aux lignes blanches seulement ::" + +#: ../Doc/library/textwrap.rst:120 +msgid "" +":func:`wrap`, :func:`fill` and :func:`shorten` work by creating a :class:" +"`TextWrapper` instance and calling a single method on it. That instance is " +"not reused, so for applications that process many text strings using :func:" +"`wrap` and/or :func:`fill`, it may be more efficient to create your own :" +"class:`TextWrapper` object." +msgstr "" +":func:`wrap`, :func:`fill` et :func:`shorten` travaillent en créant une " +"instance :class:`TextWrapper` et en appelant une méthode unique sur celle-" +"ci. Cette instance n'est pas réutilisée, donc pour les applications qui " +"traitent plusieurs chaînes de texte en utilisant :func:`wrap` et/ou :func:" +"`fill`, il peut être plus efficace de créer votre propre objet :class:" +"`TextWrapper`." + +#: ../Doc/library/textwrap.rst:126 +msgid "" +"Text is preferably wrapped on whitespaces and right after the hyphens in " +"hyphenated words; only then will long words be broken if necessary, unless :" +"attr:`TextWrapper.break_long_words` is set to false." +msgstr "" +"Le formatage du texte s'effectue en priorité sur les espaces puis juste " +"après les traits d'union dans des mots séparés par des traits d'union ; ce " +"n'est qu'alors que les mots longs seront cassés si nécessaire, à moins que :" +"attr:`TextWrapper.break_long_words` soit défini sur *False*." + +#: ../Doc/library/textwrap.rst:132 +msgid "" +"The :class:`TextWrapper` constructor accepts a number of optional keyword " +"arguments. Each keyword argument corresponds to an instance attribute, so " +"for example ::" +msgstr "" +"Le constructeur :class:`TextWrapper` accepte un certain nombre d'arguments " +"par mots-clés optionnels. Chaque argument par mot-clé correspond à un " +"attribut d'instance, donc par exemple ::" + +#: ../Doc/library/textwrap.rst:138 +msgid "is the same as ::" +msgstr "est identique à ::" + +#: ../Doc/library/textwrap.rst:143 +msgid "" +"You can re-use the same :class:`TextWrapper` object many times, and you can " +"change any of its options through direct assignment to instance attributes " +"between uses." +msgstr "" +"Vous pouvez réutiliser le même objet :class:`TextWrapper` plusieurs fois et " +"vous pouvez changer n'importe laquelle de ses options par assignation " +"directe aux attributs d'instance entre les utilisations." + +#: ../Doc/library/textwrap.rst:147 +msgid "" +"The :class:`TextWrapper` instance attributes (and keyword arguments to the " +"constructor) are as follows:" +msgstr "" +"Les attributs d'instance de la classe :class:`TextWrapper` (et les arguments " +"par mot-clé au constructeur) sont les suivants :" + +#: ../Doc/library/textwrap.rst:153 +msgid "" +"(default: ``70``) The maximum length of wrapped lines. As long as there are " +"no individual words in the input text longer than :attr:`width`, :class:" +"`TextWrapper` guarantees that no output line will be longer than :attr:" +"`width` characters." +msgstr "" +"(par défaut : ``70```) Longueur maximale des lignes reformatées. Tant qu'il " +"n'y a pas de mots individuels dans le texte d'entrée plus longs que :attr:" +"`width`, :class:`TextWrapper` garantit qu'aucune ligne de sortie n'est plus " +"longue que :attr:`width` caractères." + +#: ../Doc/library/textwrap.rst:161 +msgid "" +"(default: ``True``) If true, then all tab characters in *text* will be " +"expanded to spaces using the :meth:`expandtabs` method of *text*." +msgstr "" +"(par défaut : ``True``) Si `true`, alors tous les caractères de tabulation " +"dans *text* sont transformés en espaces en utilisant la méthode :meth:" +"`expandtabs` de *text*." + +#: ../Doc/library/textwrap.rst:167 +msgid "" +"(default: ``8``) If :attr:`expand_tabs` is true, then all tab characters in " +"*text* will be expanded to zero or more spaces, depending on the current " +"column and the given tab size." +msgstr "" +"(par défaut : ``8``) Si :attr:`expand_tabs` est `true`, alors tous les " +"caractères de tabulation dans *text* sont transformés en zéro ou plus " +"d'espaces, selon la colonne courante et la taille de tabulation donnée." + +#: ../Doc/library/textwrap.rst:176 +msgid "" +"(default: ``True``) If true, after tab expansion but before wrapping, the :" +"meth:`wrap` method will replace each whitespace character with a single " +"space. The whitespace characters replaced are as follows: tab, newline, " +"vertical tab, formfeed, and carriage return (``'\\t\\n\\v\\f\\r'``)." +msgstr "" +"(par défaut : ``True``) Si `true`, après l'expansion des tabulations mais " +"avant le formatage, la méthode :meth:`wrap` remplace chaque *blanc* par une " +"espace unique. Les *blancs* remplacés sont les suivants : tabulation, " +"nouvelle ligne, tabulation verticale, saut de page et retour chariot (``'\\t" +"\\n\\v\\f\\r'``)." + +#: ../Doc/library/textwrap.rst:184 +msgid "" +"If :attr:`expand_tabs` is false and :attr:`replace_whitespace` is true, each " +"tab character will be replaced by a single space, which is *not* the same as " +"tab expansion." +msgstr "" +"Si :attr:`expand_tabs` est *False* et :attr:`replace_whitespace` est vrai, " +"chaque caractère de tabulation est remplacé par une espace unique, ce qui " +"*n'est pas* la même chose que l'extension des tabulations." + +#: ../Doc/library/textwrap.rst:190 +msgid "" +"If :attr:`replace_whitespace` is false, newlines may appear in the middle of " +"a line and cause strange output. For this reason, text should be split into " +"paragraphs (using :meth:`str.splitlines` or similar) which are wrapped " +"separately." +msgstr "" +"Si :attr:`replace_whitespace` est faux, de nouvelles lignes peuvent " +"apparaître au milieu d'une ligne et provoquer une sortie étrange. Pour cette " +"raison, le texte doit être divisé en paragraphes (en utilisant :meth:`str." +"splitlines` ou similaire) qui sont formatés séparément." + +#: ../Doc/library/textwrap.rst:198 +msgid "" +"(default: ``True``) If true, whitespace at the beginning and ending of every " +"line (after wrapping but before indenting) is dropped. Whitespace at the " +"beginning of the paragraph, however, is not dropped if non-whitespace " +"follows it. If whitespace being dropped takes up an entire line, the whole " +"line is dropped." +msgstr "" +"(par défaut : ``True``) Si *True*, l'espace au début et à la fin de chaque " +"ligne (après le formatage mais avant l'indentation) est supprimée. L'espace " +"au début du paragraphe n'est cependant pas supprimée si elle n'est pas " +"suivie par une espace. Si les espaces en cours de suppression occupent une " +"ligne entière, la ligne entière est supprimée." + +#: ../Doc/library/textwrap.rst:207 +msgid "" +"(default: ``''``) String that will be prepended to the first line of wrapped " +"output. Counts towards the length of the first line. The empty string is " +"not indented." +msgstr "" +"(par défaut : ```''```) Chaîne qui est ajoutée à la première ligne de la " +"sortie formatée. Elle compte pour le calcul de la longueur de la première " +"ligne. La chaîne vide n'est pas indentée." + +#: ../Doc/library/textwrap.rst:214 +msgid "" +"(default: ``''``) String that will be prepended to all lines of wrapped " +"output except the first. Counts towards the length of each line except the " +"first." +msgstr "" +"(par défaut : ```''```) Chaîne qui préfixe toutes les lignes de la sortie " +"formatée sauf la première. Elle compte pour le calcul de la longueur de " +"chaque ligne à l'exception de la première." + +#: ../Doc/library/textwrap.rst:221 +msgid "" +"(default: ``False``) If true, :class:`TextWrapper` attempts to detect " +"sentence endings and ensure that sentences are always separated by exactly " +"two spaces. This is generally desired for text in a monospaced font. " +"However, the sentence detection algorithm is imperfect: it assumes that a " +"sentence ending consists of a lowercase letter followed by one of ``'.'``, " +"``'!'``, or ``'?'``, possibly followed by one of ``'\"'`` or ``\"'\"``, " +"followed by a space. One problem with this is algorithm is that it is " +"unable to detect the difference between \"Dr.\" in ::" +msgstr "" +"(par défaut : ``Faux``) Si `true`, :class:`TextWrapper` tente de détecter " +"les fins de phrases et de s'assurer que les phrases sont toujours séparées " +"par exactement deux espaces. Ceci est généralement souhaité pour un texte " +"en police à chasse fixe. Cependant, l'algorithme de détection de phrase est " +"imparfait : il suppose qu'une fin de phrase consiste en une lettre minuscule " +"suivie de l'une des lettres suivantes : ``'.'``, ``'!'``, ou ``'?'``, " +"éventuellement suivie d'une des lettres ``'\"'`` ou ``\"'\"``, suivie par " +"une espace. Un problème avec cet algorithme est qu'il est incapable de " +"détecter la différence entre \"Dr\" dans ::" + +#: ../Doc/library/textwrap.rst:232 +msgid "and \"Spot.\" in ::" +msgstr "et \"Spot.\" dans ::" + +#: ../Doc/library/textwrap.rst:236 +msgid ":attr:`fix_sentence_endings` is false by default." +msgstr ":attr:`fix_sentence_endings` est *False* par défaut." + +#: ../Doc/library/textwrap.rst:238 +msgid "" +"Since the sentence detection algorithm relies on ``string.lowercase`` for " +"the definition of \"lowercase letter,\" and a convention of using two spaces " +"after a period to separate sentences on the same line, it is specific to " +"English-language texts." +msgstr "" +"Étant donné que l'algorithme de détection de phrases repose sur ``string." +"lowercase`` pour la définition de \"lettres minuscules\" et sur une " +"convention consistant à utiliser deux espaces après un point pour séparer " +"les phrases sur la même ligne, ceci est spécifique aux textes de langue " +"anglaise." + +#: ../Doc/library/textwrap.rst:246 +msgid "" +"(default: ``True``) If true, then words longer than :attr:`width` will be " +"broken in order to ensure that no lines are longer than :attr:`width`. If " +"it is false, long words will not be broken, and some lines may be longer " +"than :attr:`width`. (Long words will be put on a line by themselves, in " +"order to minimize the amount by which :attr:`width` is exceeded.)" +msgstr "" +"(par défaut : ``True``) Si *True*, alors les mots plus longs que :attr:" +"`width` sont cassés afin de s'assurer qu'aucune ligne ne soit plus longue " +"que :attr:`width`. Si c'est *False*, les mots longs ne sont pas cassés et " +"certaines lignes peuvent être plus longues que :attr:`width` (les mots longs " +"seront mis sur une ligne qui leur est propre, afin de minimiser le " +"dépassement de :attr:`width`)." + +#: ../Doc/library/textwrap.rst:255 +msgid "" +"(default: ``True``) If true, wrapping will occur preferably on whitespaces " +"and right after hyphens in compound words, as it is customary in English. If " +"false, only whitespaces will be considered as potentially good places for " +"line breaks, but you need to set :attr:`break_long_words` to false if you " +"want truly insecable words. Default behaviour in previous versions was to " +"always allow breaking hyphenated words." +msgstr "" +"(par défaut : ``True``) Si c'est vrai, le formatage se fait de préférence " +"sur les espaces et juste après sur les traits d'union des mots composés, " +"comme il est d'usage en anglais. Si *False*, seuls les espaces sont " +"considérées comme de bons endroits pour les sauts de ligne, mais vous devez " +"définir :attr:`break_long_words` à *False* si vous voulez des mots vraiment " +"insécables. Le comportement par défaut dans les versions précédentes était " +"de toujours permettre de couper les mots avec trait d'union." + +#: ../Doc/library/textwrap.rst:265 +msgid "" +"(default: ``None``) If not ``None``, then the output will contain at most " +"*max_lines* lines, with *placeholder* appearing at the end of the output." +msgstr "" +"(par défaut : ``None```) Si ce n'est pas ``None```, alors la sortie contient " +"au maximum *max_lines* lignes, avec *placeholder* à la fin de la sortie." + +#: ../Doc/library/textwrap.rst:275 +msgid "" +"(default: ``' [...]'``) String that will appear at the end of the output " +"text if it has been truncated." +msgstr "" +"(par défaut : ``'' [...]'``) Chaîne qui apparaît à la fin du texte de sortie " +"s'il a été tronqué." + +#: ../Doc/library/textwrap.rst:281 +msgid "" +":class:`TextWrapper` also provides some public methods, analogous to the " +"module-level convenience functions:" +msgstr "" +":class:`TextWrapper` fournit également quelques méthodes publiques, " +"analogues aux fonctions de commodité au niveau du module :" + +#: ../Doc/library/textwrap.rst:286 +msgid "" +"Wraps the single paragraph in *text* (a string) so every line is at most :" +"attr:`width` characters long. All wrapping options are taken from instance " +"attributes of the :class:`TextWrapper` instance. Returns a list of output " +"lines, without final newlines. If the wrapped output has no content, the " +"returned list is empty." +msgstr "" +"Formate le paragraphe unique dans *text* (une chaîne de caractères) de sorte " +"que chaque ligne ait au maximum :attr:`width` caractères. Toutes les " +"options de formatage sont tirées des attributs d'instance de l'instance de " +"classe :class:`TextWrapper`. Renvoie une liste de lignes de sortie, sans " +"nouvelles lignes finales. Si la sortie formatée n'a pas de contenu, la liste " +"vide est renvoyée." + +#: ../Doc/library/textwrap.rst:295 +msgid "" +"Wraps the single paragraph in *text*, and returns a single string containing " +"the wrapped paragraph." +msgstr "" +"Formate le paragraphe unique de *text* et renvoie une seule chaîne contenant " +"le paragraphe formaté." diff --git a/library/threading.po b/library/threading.po new file mode 100644 index 000000000..8accec906 --- /dev/null +++ b/library/threading.po @@ -0,0 +1,1433 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-04-12 00:15+0200\n" +"Last-Translator: Mathieu Dupuy \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/threading.rst:2 +msgid ":mod:`threading` --- Thread-based parallelism" +msgstr "" +":mod:`threading` — Parallélisme basé sur les fils d’exécution (*threads*)" + +#: ../Doc/library/threading.rst:7 +msgid "**Source code:** :source:`Lib/threading.py`" +msgstr "**Code source :** :source:`Lib/threading.py`" + +#: ../Doc/library/threading.rst:11 +msgid "" +"This module constructs higher-level threading interfaces on top of the lower " +"level :mod:`_thread` module. See also the :mod:`queue` module." +msgstr "" +"Ce module élabore des interfaces haut-niveau de fils d'exécutions multiples " +"(*threading*) conçues en s'appuyant sur le module bas-niveau :mod:`_thread`. " +"Voir aussi le module :mod:`queue`." + +#: ../Doc/library/threading.rst:14 +msgid "This module used to be optional, it is now always available." +msgstr "" +"Ce module était auparavant optionnel, il est maintenant toujours disponible." + +#: ../Doc/library/threading.rst:19 +msgid "" +"While they are not listed below, the ``camelCase`` names used for some " +"methods and functions in this module in the Python 2.x series are still " +"supported by this module." +msgstr "" +"Bien qu'ils ne soient pas listés ci-dessous, ce module gère toujours les " +"noms en ``camelCase`` utilisés pour certaines méthodes et fonctions de ce " +"module dans la série Python 2.x." + +#: ../Doc/library/threading.rst:24 +msgid "This module defines the following functions:" +msgstr "Ce module définit les fonctions suivantes :" + +#: ../Doc/library/threading.rst:29 +msgid "" +"Return the number of :class:`Thread` objects currently alive. The returned " +"count is equal to the length of the list returned by :func:`.enumerate`." +msgstr "" +"Renvoie le nombre d'objets :class:`Thread` actuellement vivants. Le compte " +"renvoyé est égal à la longueur de la liste renvoyée par :func:`.enumerate`." + +#: ../Doc/library/threading.rst:35 +msgid "" +"Return the current :class:`Thread` object, corresponding to the caller's " +"thread of control. If the caller's thread of control was not created " +"through the :mod:`threading` module, a dummy thread object with limited " +"functionality is returned." +msgstr "" +"Renvoie l'objet :class:`Thread` courant, correspondant au fil de contrôle de " +"l'appelant. Si le fil de contrôle de l'appelant n'a pas été créé via le " +"module :mod:`Thread`, un objet *thread* factice aux fonctionnalités limitées " +"est renvoyé." + +#: ../Doc/library/threading.rst:43 +msgid "" +"Return the 'thread identifier' of the current thread. This is a nonzero " +"integer. Its value has no direct meaning; it is intended as a magic cookie " +"to be used e.g. to index a dictionary of thread-specific data. Thread " +"identifiers may be recycled when a thread exits and another thread is " +"created." +msgstr "" +"Renvoie l'« identifiant de fil » du fil d'exécution courant. C'est un " +"entier non nul. Sa valeur n'a pas de signification directe ; il est destiné " +"à être utilisé comme valeur magique opaque, par exemple comme clef de " +"dictionnaire de données pour chaque fil. Les identificateurs de fils peuvent " +"être recyclés lorsqu'un fil se termine et qu'un autre fil est créé." + +#: ../Doc/library/threading.rst:54 +msgid "" +"Return a list of all :class:`Thread` objects currently alive. The list " +"includes daemonic threads, dummy thread objects created by :func:" +"`current_thread`, and the main thread. It excludes terminated threads and " +"threads that have not yet been started." +msgstr "" +"Renvoie une liste de tous les objets fil d'exécution :class:`Thread` " +"actuellement vivants. La liste inclut les fils démons, les fils factices " +"créés par :func:`current_thread` et le fil principal. Elle exclut les fils " +"terminés et les fils qui n'ont pas encore été lancés." + +#: ../Doc/library/threading.rst:62 +msgid "" +"Return the main :class:`Thread` object. In normal conditions, the main " +"thread is the thread from which the Python interpreter was started." +msgstr "" +"Renvoie l'objet fil d'exécution :class:`Thread` principal. Dans des " +"conditions normales, le fil principal est le fil à partir duquel " +"l'interpréteur Python a été lancé." + +#: ../Doc/library/threading.rst:73 +msgid "" +"Set a trace function for all threads started from the :mod:`threading` " +"module. The *func* will be passed to :func:`sys.settrace` for each thread, " +"before its :meth:`~Thread.run` method is called." +msgstr "" +"Attache une fonction de traçage pour tous les fils d'exécution démarrés " +"depuis le module :mod:`Thread`. La fonction *func* est passée à :func:`sys." +"settrace` pour chaque fil, avant que sa méthode :meth:`~Thread.run` soit " +"appelée." + +#: ../Doc/library/threading.rst:82 +msgid "" +"Set a profile function for all threads started from the :mod:`threading` " +"module. The *func* will be passed to :func:`sys.setprofile` for each " +"thread, before its :meth:`~Thread.run` method is called." +msgstr "" +"Attache une fonction de profilage pour tous les fils d'exécution démarrés " +"depuis le module :mod:`Threading`. La fonction *func* est passée à :func:" +"`sys.setprofile` pour chaque fil, avant que sa méthode :meth:`~Thread.run` " +"soit appelée." + +#: ../Doc/library/threading.rst:89 +msgid "" +"Return the thread stack size used when creating new threads. The optional " +"*size* argument specifies the stack size to be used for subsequently created " +"threads, and must be 0 (use platform or configured default) or a positive " +"integer value of at least 32,768 (32 KiB). If *size* is not specified, 0 is " +"used. If changing the thread stack size is unsupported, a :exc:" +"`RuntimeError` is raised. If the specified stack size is invalid, a :exc:" +"`ValueError` is raised and the stack size is unmodified. 32 KiB is " +"currently the minimum supported stack size value to guarantee sufficient " +"stack space for the interpreter itself. Note that some platforms may have " +"particular restrictions on values for the stack size, such as requiring a " +"minimum stack size > 32 KiB or requiring allocation in multiples of the " +"system memory page size - platform documentation should be referred to for " +"more information (4 KiB pages are common; using multiples of 4096 for the " +"stack size is the suggested approach in the absence of more specific " +"information)." +msgstr "" +"Renvoie la taille de la pile d'exécution utilisée lors de la création de " +"nouveaux fils d'exécution. L'argument optionnel *size* spécifie la taille de " +"pile à utiliser pour les fils créés ultérieurement, et doit être 0 (pour " +"utiliser la taille de la plate-forme ou la valeur configurée par défaut) ou " +"un entier positif supérieur ou égal à 32 768 (32 Kio). Si *size* n'est pas " +"spécifié, 0 est utilisé. Si la modification de la taille de la pile de fils " +"n'est pas prise en charge, une :exc:`RuntimeError` est levée. Si la taille " +"de pile spécifiée n'est pas valide, une :exc:`ValueError` est levée et la " +"taille de pile n'est pas modifiée. 32 Kio est actuellement la valeur " +"minimale de taille de pile prise en charge pour garantir un espace de pile " +"suffisant pour l'interpréteur lui-même. Notez que certaines plates-formes " +"peuvent avoir des restrictions particulières sur les valeurs de taille de la " +"pile, telles que l'exigence d'une taille de pile minimale > 32 Kio ou d'une " +"allocation en multiples de la taille de page de la mémoire du système – la " +"documentation de la plate-forme devrait être consultée pour plus " +"d'informations (4 Kio sont courantes ; en l'absence de renseignements plus " +"spécifiques, l'approche proposée est l'utilisation de multiples de 4 096 " +"pour la taille de la pile)." + +#: ../Doc/library/threading.rst:104 +msgid "" +":ref:`Availability `: Windows, systems with POSIX threads." +msgstr "" +":ref:`Disponibilité ` : Windows et systèmes gérant les fils " +"d'exécution POSIX." + +#: ../Doc/library/threading.rst:107 +msgid "This module also defines the following constant:" +msgstr "Ce module définit également la constante suivante :" + +#: ../Doc/library/threading.rst:111 +msgid "" +"The maximum value allowed for the *timeout* parameter of blocking functions " +"(:meth:`Lock.acquire`, :meth:`RLock.acquire`, :meth:`Condition.wait`, etc.). " +"Specifying a timeout greater than this value will raise an :exc:" +"`OverflowError`." +msgstr "" +"La valeur maximale autorisée pour le paramètre *timeout* des fonctions " +"bloquantes (:meth:`Lock.acquire`, :meth:`RLock.acquire`, :meth:`Condition." +"wait`, etc.). Spécifier un délai d'attente supérieur à cette valeur lève " +"une :exc:`OverflowError`." + +#: ../Doc/library/threading.rst:119 +msgid "" +"This module defines a number of classes, which are detailed in the sections " +"below." +msgstr "" +"Ce module définit un certain nombre de classes, qui sont détaillées dans les " +"sections ci-dessous." + +#: ../Doc/library/threading.rst:122 +msgid "" +"The design of this module is loosely based on Java's threading model. " +"However, where Java makes locks and condition variables basic behavior of " +"every object, they are separate objects in Python. Python's :class:`Thread` " +"class supports a subset of the behavior of Java's Thread class; currently, " +"there are no priorities, no thread groups, and threads cannot be destroyed, " +"stopped, suspended, resumed, or interrupted. The static methods of Java's " +"Thread class, when implemented, are mapped to module-level functions." +msgstr "" +"La conception de ce module est librement basée sur le modèle des fils " +"d'exécution de Java. Cependant, là où Java fait des verrous et des variables " +"de condition le comportement de base de chaque objet, ils sont des objets " +"séparés en Python. La classe Python :class:`Thread` prend en charge un sous-" +"ensemble du comportement de la classe *Thread* de Java ; actuellement, il " +"n'y a aucune priorité, aucun groupe de fils d'exécution, et les fils ne " +"peuvent être détruits, arrêtés, suspendus, repris ni interrompus. Les " +"méthodes statiques de la classe *Thread* de Java, lorsqu'elles sont " +"implémentées, correspondent à des fonctions au niveau du module." + +#: ../Doc/library/threading.rst:130 +msgid "All of the methods described below are executed atomically." +msgstr "" +"Toutes les méthodes décrites ci-dessous sont exécutées de manière atomique." + +#: ../Doc/library/threading.rst:134 +msgid "Thread-Local Data" +msgstr "Données locales au fil d'exécution" + +#: ../Doc/library/threading.rst:136 +msgid "" +"Thread-local data is data whose values are thread specific. To manage " +"thread-local data, just create an instance of :class:`local` (or a subclass) " +"and store attributes on it::" +msgstr "" +"Les données locales au fil d'exécution (*thread-local data*) sont des " +"données dont les valeurs sont propres à chaque fil. Pour gérer les données " +"locales au fil, il suffit de créer une instance de :class:`local` (ou une " +"sous-classe) et d'y stocker des données ::" + +#: ../Doc/library/threading.rst:143 +msgid "The instance's values will be different for separate threads." +msgstr "" +"Les valeurs dans l'instance sont différentes pour des *threads* différents." + +#: ../Doc/library/threading.rst:148 +msgid "A class that represents thread-local data." +msgstr "Classe qui représente les données locales au fil d'exécution." + +#: ../Doc/library/threading.rst:150 +msgid "" +"For more details and extensive examples, see the documentation string of " +"the :mod:`_threading_local` module." +msgstr "" +"Pour plus de détails et de nombreux exemples, voir la chaîne de " +"documentation du module :mod:`_threading_local`." + +#: ../Doc/library/threading.rst:157 +msgid "Thread Objects" +msgstr "Objets *Threads*" + +#: ../Doc/library/threading.rst:159 +msgid "" +"The :class:`Thread` class represents an activity that is run in a separate " +"thread of control. There are two ways to specify the activity: by passing a " +"callable object to the constructor, or by overriding the :meth:`~Thread.run` " +"method in a subclass. No other methods (except for the constructor) should " +"be overridden in a subclass. In other words, *only* override the :meth:" +"`~Thread.__init__` and :meth:`~Thread.run` methods of this class." +msgstr "" +"La classe fil d'exécution :class:`Thread` représente une activité qui est " +"exécutée dans un fil d'exécution séparé. Il y a deux façons de spécifier " +"l'activité : en passant un objet appelable au constructeur, ou en ré-" +"implémentant la méthode :meth:`~Thread.run` dans une sous-classe. Aucune " +"autre méthode (à l'exception du constructeur) ne doit être remplacée dans " +"une sous-classe. En d'autres termes, réimplémentez *seulement* les méthodes :" +"meth:`~Thread.__init__` et :meth:`~Thread.run` de cette classe." + +#: ../Doc/library/threading.rst:166 +msgid "" +"Once a thread object is created, its activity must be started by calling the " +"thread's :meth:`~Thread.start` method. This invokes the :meth:`~Thread.run` " +"method in a separate thread of control." +msgstr "" +"Une fois qu'un objet fil d'exécution est créé, son activité doit être lancée " +"en appelant la méthode :meth:`~Thread.start` du fil. Ceci invoque la " +"méthode :meth:`~Thread.run` dans un fil d'exécution séparé." + +#: ../Doc/library/threading.rst:170 +msgid "" +"Once the thread's activity is started, the thread is considered 'alive'. It " +"stops being alive when its :meth:`~Thread.run` method terminates -- either " +"normally, or by raising an unhandled exception. The :meth:`~Thread." +"is_alive` method tests whether the thread is alive." +msgstr "" +"Une fois que l'activité du fil d'exécution est lancée, le fil est considéré " +"comme « vivant ». Il cesse d'être vivant lorsque sa méthode :meth:`~Thread." +"run` se termine – soit normalement, soit en levant une exception non gérée. " +"La méthode :meth:`~Thread.is_alive` teste si le fil est vivant." + +#: ../Doc/library/threading.rst:175 +msgid "" +"Other threads can call a thread's :meth:`~Thread.join` method. This blocks " +"the calling thread until the thread whose :meth:`~Thread.join` method is " +"called is terminated." +msgstr "" +"D'autres fils d'exécution peuvent appeler la méthode :meth:`~Thread.join` " +"d'un fil. Ceci bloque le fil appelant jusqu'à ce que le fil dont la méthode :" +"meth:`~Thread.join` est appelée soit terminé." + +#: ../Doc/library/threading.rst:179 +msgid "" +"A thread has a name. The name can be passed to the constructor, and read or " +"changed through the :attr:`~Thread.name` attribute." +msgstr "" +"Un fil d'exécution a un nom. Le nom peut être passé au constructeur, et lu " +"ou modifié via l'attribut :attr:`~Thread.name`." + +#: ../Doc/library/threading.rst:182 +msgid "" +"A thread can be flagged as a \"daemon thread\". The significance of this " +"flag is that the entire Python program exits when only daemon threads are " +"left. The initial value is inherited from the creating thread. The flag " +"can be set through the :attr:`~Thread.daemon` property or the *daemon* " +"constructor argument." +msgstr "" +"Un fil d'exécution peut être marqué comme « fil démon ». Un programme Python " +"se termine quand il ne reste plus que des fils démons. La valeur initiale " +"est héritée du fil d'exécution qui l'a créé. Cette option peut être définie " +"par la propriété :attr:`~Thread.daemon` ou par l'argument *daemon* du " +"constructeur." + +#: ../Doc/library/threading.rst:189 +msgid "" +"Daemon threads are abruptly stopped at shutdown. Their resources (such as " +"open files, database transactions, etc.) may not be released properly. If " +"you want your threads to stop gracefully, make them non-daemonic and use a " +"suitable signalling mechanism such as an :class:`Event`." +msgstr "" +"Les fils d'exécution démons sont brusquement terminés à l'arrêt du programme " +"Python. Leurs ressources (fichiers ouverts, transactions de base de données, " +"etc.) peuvent ne pas être libérées correctement. Si vous voulez que vos fils " +"s'arrêtent proprement, faites en sorte qu'ils ne soient pas démoniques et " +"utilisez un mécanisme de signalisation approprié tel qu'un objet évènement :" +"class:`Event`." + +#: ../Doc/library/threading.rst:194 +msgid "" +"There is a \"main thread\" object; this corresponds to the initial thread of " +"control in the Python program. It is not a daemon thread." +msgstr "" +"Il y a un objet \"fil principal\", qui correspond au fil de contrôle initial " +"dans le programme Python. Ce n'est pas un fil démon." + +#: ../Doc/library/threading.rst:197 +msgid "" +"There is the possibility that \"dummy thread objects\" are created. These " +"are thread objects corresponding to \"alien threads\", which are threads of " +"control started outside the threading module, such as directly from C code. " +"Dummy thread objects have limited functionality; they are always considered " +"alive and daemonic, and cannot be :meth:`~Thread.join`\\ ed. They are never " +"deleted, since it is impossible to detect the termination of alien threads." +msgstr "" +"Il y a une possibilité que des objets fil d'exécution « fictifs » soient " +"créés. Ce sont des objets correspondant à des fils d'exécution " +"« étrangers », qui sont des fils de contrôle démarrés en dehors du module de " +"*threading*, par exemple directement depuis du code C. Les objets fils " +"d'exécution fictifs ont des fonctionnalités limitées ; ils sont toujours " +"considérés comme vivants et démoniques, et ne peuvent pas être attendus via :" +"meth:`~Thread.join`. Ils ne sont jamais supprimés, car il est impossible de " +"détecter la fin des fils d'exécution étrangers." + +#: ../Doc/library/threading.rst:208 +msgid "" +"This constructor should always be called with keyword arguments. Arguments " +"are:" +msgstr "" +"Ce constructeur doit toujours être appelé avec des arguments nommés. Les " +"arguments sont :" + +#: ../Doc/library/threading.rst:211 +msgid "" +"*group* should be ``None``; reserved for future extension when a :class:" +"`ThreadGroup` class is implemented." +msgstr "" +"*group* doit être ``None`` ; cet argument est réservé pour une extension " +"future lorsqu'une classe :class:`ThreadGroup` sera implémentée." + +#: ../Doc/library/threading.rst:214 +msgid "" +"*target* is the callable object to be invoked by the :meth:`run` method. " +"Defaults to ``None``, meaning nothing is called." +msgstr "" +"*target* est l'objet appelable qui doit être invoqué par la méthode :meth:" +"`run`. La valeur par défaut est ``None``, ce qui signifie que rien n'est " +"appelé." + +#: ../Doc/library/threading.rst:217 +msgid "" +"*name* is the thread name. By default, a unique name is constructed of the " +"form \"Thread-*N*\" where *N* is a small decimal number." +msgstr "" +"*name* est le nom du fil d'exécution. Par défaut, un nom unique est " +"construit de la forme « Thread–*N* » où *N* est un petit nombre décimal." + +#: ../Doc/library/threading.rst:220 +msgid "" +"*args* is the argument tuple for the target invocation. Defaults to ``()``." +msgstr "" +"*args* est le tuple d'arguments pour l'invocation de l'objet appelable. La " +"valeur par défaut est ``()``." + +#: ../Doc/library/threading.rst:222 +msgid "" +"*kwargs* is a dictionary of keyword arguments for the target invocation. " +"Defaults to ``{}``." +msgstr "" +"*kwargs* est un dictionnaire d'arguments nommés pour l'invocation de l'objet " +"appelable. La valeur par défaut est ``{}``." + +#: ../Doc/library/threading.rst:225 +msgid "" +"If not ``None``, *daemon* explicitly sets whether the thread is daemonic. If " +"``None`` (the default), the daemonic property is inherited from the current " +"thread." +msgstr "" +"S'il ne vaut pas ``None``, *daemon* définit explicitement si le fil " +"d'exécution est démonique ou pas. S'il vaut ``None`` (par défaut), la valeur " +"est héritée du fil courant." + +#: ../Doc/library/threading.rst:229 +msgid "" +"If the subclass overrides the constructor, it must make sure to invoke the " +"base class constructor (``Thread.__init__()``) before doing anything else to " +"the thread." +msgstr "" +"Si la sous-classe réimplémente le constructeur, elle doit s'assurer " +"d'appeler le constructeur de la classe de base (``Thread.__init__()``) avant " +"de faire autre chose au fil d'exécution." + +#: ../Doc/library/threading.rst:233 +msgid "Added the *daemon* argument." +msgstr "Ajout de l'argument *daemon*." + +#: ../Doc/library/threading.rst:238 +msgid "Start the thread's activity." +msgstr "Lance l'activité du fil d'exécution." + +#: ../Doc/library/threading.rst:240 +msgid "" +"It must be called at most once per thread object. It arranges for the " +"object's :meth:`~Thread.run` method to be invoked in a separate thread of " +"control." +msgstr "" +"Elle ne doit être appelée qu'une fois par objet de fil. Elle fait en sorte " +"que la méthode :meth:`~Thread.run` de l'objet soit invoquée dans un fil " +"d'exécution." + +#: ../Doc/library/threading.rst:244 +msgid "" +"This method will raise a :exc:`RuntimeError` if called more than once on the " +"same thread object." +msgstr "" +"Cette méthode lève une :exc:`RuntimeError` si elle est appelée plus d'une " +"fois sur le même objet fil d'exécution." + +#: ../Doc/library/threading.rst:249 +msgid "Method representing the thread's activity." +msgstr "Méthode représentant l'activité du fil d'exécution." + +#: ../Doc/library/threading.rst:251 +#, fuzzy +msgid "" +"You may override this method in a subclass. The standard :meth:`run` method " +"invokes the callable object passed to the object's constructor as the " +"*target* argument, if any, with positional and keyword arguments taken from " +"the *args* and *kwargs* arguments, respectively." +msgstr "" +"Vous pouvez remplacer cette méthode dans une sous-classe. La méthode " +"standard :meth:`run` invoque l'objet appelable passé au constructeur de " +"l'objet en tant qu'argument *target*, le cas échéant, avec des arguments " +"positionnels et des arguments nommés tirés respectivement des arguments " +"*args* et *kwargs*." + +#: ../Doc/library/threading.rst:258 +msgid "" +"Wait until the thread terminates. This blocks the calling thread until the " +"thread whose :meth:`~Thread.join` method is called terminates -- either " +"normally or through an unhandled exception -- or until the optional timeout " +"occurs." +msgstr "" +"Attend que le fil d'exécution se termine. Ceci bloque le fil appelant " +"jusqu'à ce que le fil dont la méthode :meth:`~Thread.join` est appelée se " +"termine – soit normalement, soit par une exception non gérée – ou jusqu'à ce " +"que le délai optionnel *timeout* soit atteint." + +#: ../Doc/library/threading.rst:263 +msgid "" +"When the *timeout* argument is present and not ``None``, it should be a " +"floating point number specifying a timeout for the operation in seconds (or " +"fractions thereof). As :meth:`~Thread.join` always returns ``None``, you " +"must call :meth:`~Thread.is_alive` after :meth:`~Thread.join` to decide " +"whether a timeout happened -- if the thread is still alive, the :meth:" +"`~Thread.join` call timed out." +msgstr "" +"Lorsque l'argument *timeout* est présent et ne vaut pas ``None``, il doit " +"être un nombre en virgule flottante spécifiant un délai pour l'opération en " +"secondes (ou fractions de secondes). Comme :meth:`~Thread.join` renvoie " +"toujours ``None``, vous devez appeler :meth:`~Thread.is_alive` après :meth:" +"`~Thread.join` pour déterminer si le délai a expiré – si le fil d'exécution " +"est toujours vivant, c'est que l'appel à :meth:`~Thread.join` a expiré." + +#: ../Doc/library/threading.rst:270 +msgid "" +"When the *timeout* argument is not present or ``None``, the operation will " +"block until the thread terminates." +msgstr "" +"Lorsque l'argument *timeout* n'est pas présent ou vaut ``None``, l'opération " +"se bloque jusqu'à ce que le fil d'exécution se termine." + +#: ../Doc/library/threading.rst:273 +msgid "A thread can be :meth:`~Thread.join`\\ ed many times." +msgstr "" +"Un fil d'exécution peut être attendu via :meth:`~Thread.join` de nombreuses " +"fois." + +#: ../Doc/library/threading.rst:275 +msgid "" +":meth:`~Thread.join` raises a :exc:`RuntimeError` if an attempt is made to " +"join the current thread as that would cause a deadlock. It is also an error " +"to :meth:`~Thread.join` a thread before it has been started and attempts to " +"do so raise the same exception." +msgstr "" +":meth:`~Thread.join` lève une :exc:`RuntimeError` si une tentative est faite " +"pour attendre le fil d'exécution courant car cela conduirait à un " +"interblocage (*deadlock* en anglais). Attendre via :meth:`~Thread.join` un " +"fil d'exécution avant son lancement est aussi une erreur et, si vous tentez " +"de le faire, lève la même exception." + +#: ../Doc/library/threading.rst:282 +msgid "" +"A string used for identification purposes only. It has no semantics. " +"Multiple threads may be given the same name. The initial name is set by the " +"constructor." +msgstr "" +"Une chaîne de caractères utilisée à des fins d'identification seulement. " +"Elle n'a pas de sémantique. Plusieurs fils d'exécution peuvent porter le " +"même nom. Le nom initial est défini par le constructeur." + +#: ../Doc/library/threading.rst:289 +msgid "" +"Old getter/setter API for :attr:`~Thread.name`; use it directly as a " +"property instead." +msgstr "" +"Anciens accesseur et mutateur pour :attr:`~Thread.name` ; utilisez plutôt ce " +"dernier directement." + +#: ../Doc/library/threading.rst:294 +msgid "" +"The 'thread identifier' of this thread or ``None`` if the thread has not " +"been started. This is a nonzero integer. See the :func:`get_ident` " +"function. Thread identifiers may be recycled when a thread exits and " +"another thread is created. The identifier is available even after the " +"thread has exited." +msgstr "" +"« L'identificateur de fil d'exécution » de ce fil ou ``None`` si le fil n'a " +"pas été lancé. C'est un entier non nul. Voyez également la fonction :func:" +"`get_ident`. Les identificateurs de fils peuvent être recyclés lorsqu'un fil " +"se termine et qu'un autre fil est créé. L'identifiant est disponible même " +"après que le fil ait terminé." + +#: ../Doc/library/threading.rst:302 +msgid "Return whether the thread is alive." +msgstr "Renvoie si le fil d'exécution est vivant ou pas." + +#: ../Doc/library/threading.rst:304 +msgid "" +"This method returns ``True`` just before the :meth:`~Thread.run` method " +"starts until just after the :meth:`~Thread.run` method terminates. The " +"module function :func:`.enumerate` returns a list of all alive threads." +msgstr "" +"Cette méthode renvoie ``True`` depuis juste avant le démarrage de la " +"méthode :meth:`~Thread.run` et jusqu'à juste après la terminaison de la " +"méthode :meth:`~Thread.run`. La fonction :func:`.enumerate` du module " +"renvoie une liste de tous les fils d'exécution vivants." + +#: ../Doc/library/threading.rst:310 +msgid "" +"A boolean value indicating whether this thread is a daemon thread (True) or " +"not (False). This must be set before :meth:`~Thread.start` is called, " +"otherwise :exc:`RuntimeError` is raised. Its initial value is inherited " +"from the creating thread; the main thread is not a daemon thread and " +"therefore all threads created in the main thread default to :attr:`~Thread." +"daemon` = ``False``." +msgstr "" +"Booléen indiquant si ce fil d'exécution est un fil démon (``True``) ou non " +"(``False``). Celui-ci doit être défini avant que :meth:`~Thread.start` ne " +"soit appelé, sinon :exc:`RuntimeError` est levée. Sa valeur initiale est " +"héritée du fil d'exécution créateur ; le fil principal n'est pas un fil " +"démon et donc tous les fils créés dans ce fil principal ont par défaut la " +"valeur :attr:`~Thread.daemon` = ``False``." + +#: ../Doc/library/threading.rst:317 +msgid "" +"The entire Python program exits when no alive non-daemon threads are left." +msgstr "" +"Le programme Python se termine lorsqu'il ne reste plus de fils d'exécution " +"non-démons vivants." + +#: ../Doc/library/threading.rst:322 +msgid "" +"Old getter/setter API for :attr:`~Thread.daemon`; use it directly as a " +"property instead." +msgstr "" +"Anciens accesseur et mutateur pour :attr:`~Thread.daemon` ; utilisez plutôt " +"ce dernier directement." + +#: ../Doc/library/threading.rst:328 +msgid "" +"In CPython, due to the :term:`Global Interpreter Lock`, only one thread can " +"execute Python code at once (even though certain performance-oriented " +"libraries might overcome this limitation). If you want your application to " +"make better use of the computational resources of multi-core machines, you " +"are advised to use :mod:`multiprocessing` or :class:`concurrent.futures." +"ProcessPoolExecutor`. However, threading is still an appropriate model if " +"you want to run multiple I/O-bound tasks simultaneously." +msgstr "" +"En CPython, en raison du verrou global de l'interpréteur (:term:`Global " +"Interpreter Lock`), un seul fil d'exécution peut exécuter du code Python à " +"la fois (même si certaines bibliothèques orientées performance peuvent " +"surmonter cette limitation). Si vous voulez que votre application fasse un " +"meilleur usage des ressources de calcul des machines multi-cœurs, nous vous " +"conseillons d'utiliser :mod:`multiprocessing` ou :class:`concurrent.futures." +"ProcessPoolExecutor`. Néanmoins, les fils d'exécutions multiples restent un " +"modèle approprié si vous souhaitez exécuter simultanément plusieurs tâches " +"limitées par les performances des entrées-sorties." + +#: ../Doc/library/threading.rst:341 +msgid "Lock Objects" +msgstr "Verrous" + +#: ../Doc/library/threading.rst:343 +msgid "" +"A primitive lock is a synchronization primitive that is not owned by a " +"particular thread when locked. In Python, it is currently the lowest level " +"synchronization primitive available, implemented directly by the :mod:" +"`_thread` extension module." +msgstr "" +"Un verrou primitif n'appartient pas à un fil d'exécution lorsqu'il est " +"verrouillé. En Python, c'est actuellement la méthode de synchronisation la " +"plus bas-niveau qui soit disponible, implémentée directement par le module " +"d'extension :mod:`_thread`." + +#: ../Doc/library/threading.rst:348 +msgid "" +"A primitive lock is in one of two states, \"locked\" or \"unlocked\". It is " +"created in the unlocked state. It has two basic methods, :meth:`~Lock." +"acquire` and :meth:`~Lock.release`. When the state is unlocked, :meth:" +"`~Lock.acquire` changes the state to locked and returns immediately. When " +"the state is locked, :meth:`~Lock.acquire` blocks until a call to :meth:" +"`~Lock.release` in another thread changes it to unlocked, then the :meth:" +"`~Lock.acquire` call resets it to locked and returns. The :meth:`~Lock." +"release` method should only be called in the locked state; it changes the " +"state to unlocked and returns immediately. If an attempt is made to release " +"an unlocked lock, a :exc:`RuntimeError` will be raised." +msgstr "" +"Un verrou primitif est soit « verrouillé » soit « déverrouillé ». Il est " +"créé dans un état déverrouillé. Il a deux méthodes, :meth:`~Lock.acquire` " +"et :meth:`~Lock.release`. Lorsque l'état est déverrouillé, :meth:`~Lock." +"acquire` verrouille et se termine immédiatement. Lorsque l'état est " +"verrouillé, :meth:`~Lock.acquire` bloque jusqu'à ce qu'un appel à :meth:" +"`~Lock.release` provenant d'un autre fil d'exécution le déverrouille. À ce " +"moment :meth:`~Lock.acquire` le verrouille à nouveau et rend la main. La " +"méthode :meth:`~Lock.release` ne doit être appelée que si le verrou est " +"verrouillé, elle le déverrouille alors et se termine immédiatement. " +"Déverrouiller un verrou qui n'est pas verrouillé provoque une :exc:" +"`RuntimeError`." + +#: ../Doc/library/threading.rst:359 +msgid "Locks also support the :ref:`context management protocol `." +msgstr "" + +#: ../Doc/library/threading.rst:361 +msgid "" +"When more than one thread is blocked in :meth:`~Lock.acquire` waiting for " +"the state to turn to unlocked, only one thread proceeds when a :meth:`~Lock." +"release` call resets the state to unlocked; which one of the waiting threads " +"proceeds is not defined, and may vary across implementations." +msgstr "" + +#: ../Doc/library/threading.rst:366 +msgid "All methods are executed atomically." +msgstr "" + +#: ../Doc/library/threading.rst:371 +msgid "" +"The class implementing primitive lock objects. Once a thread has acquired a " +"lock, subsequent attempts to acquire it block, until it is released; any " +"thread may release it." +msgstr "" + +#: ../Doc/library/threading.rst:375 +msgid "" +"Note that ``Lock`` is actually a factory function which returns an instance " +"of the most efficient version of the concrete Lock class that is supported " +"by the platform." +msgstr "" + +#: ../Doc/library/threading.rst:382 ../Doc/library/threading.rst:457 +msgid "Acquire a lock, blocking or non-blocking." +msgstr "Acquiert un verrou, bloquant ou non bloquant." + +#: ../Doc/library/threading.rst:384 +msgid "" +"When invoked with the *blocking* argument set to ``True`` (the default), " +"block until the lock is unlocked, then set it to locked and return ``True``." +msgstr "" + +#: ../Doc/library/threading.rst:387 +msgid "" +"When invoked with the *blocking* argument set to ``False``, do not block. If " +"a call with *blocking* set to ``True`` would block, return ``False`` " +"immediately; otherwise, set the lock to locked and return ``True``." +msgstr "" + +#: ../Doc/library/threading.rst:391 +msgid "" +"When invoked with the floating-point *timeout* argument set to a positive " +"value, block for at most the number of seconds specified by *timeout* and as " +"long as the lock cannot be acquired. A *timeout* argument of ``-1`` " +"specifies an unbounded wait. It is forbidden to specify a *timeout* when " +"*blocking* is false." +msgstr "" + +#: ../Doc/library/threading.rst:397 +msgid "" +"The return value is ``True`` if the lock is acquired successfully, ``False`` " +"if not (for example if the *timeout* expired)." +msgstr "" + +#: ../Doc/library/threading.rst:400 ../Doc/library/threading.rst:479 +#: ../Doc/library/threading.rst:724 +msgid "The *timeout* parameter is new." +msgstr "Le paramètre *timeout* est nouveau." + +#: ../Doc/library/threading.rst:403 +msgid "" +"Lock acquisition can now be interrupted by signals on POSIX if the " +"underlying threading implementation supports it." +msgstr "" + +#: ../Doc/library/threading.rst:410 +msgid "" +"Release a lock. This can be called from any thread, not only the thread " +"which has acquired the lock." +msgstr "" + +#: ../Doc/library/threading.rst:413 +msgid "" +"When the lock is locked, reset it to unlocked, and return. If any other " +"threads are blocked waiting for the lock to become unlocked, allow exactly " +"one of them to proceed." +msgstr "" + +#: ../Doc/library/threading.rst:417 +msgid "When invoked on an unlocked lock, a :exc:`RuntimeError` is raised." +msgstr "" + +#: ../Doc/library/threading.rst:419 ../Doc/library/threading.rst:495 +msgid "There is no return value." +msgstr "Il n'y a pas de valeur de retour." + +#: ../Doc/library/threading.rst:425 +msgid "RLock Objects" +msgstr "" + +#: ../Doc/library/threading.rst:427 +msgid "" +"A reentrant lock is a synchronization primitive that may be acquired " +"multiple times by the same thread. Internally, it uses the concepts of " +"\"owning thread\" and \"recursion level\" in addition to the locked/unlocked " +"state used by primitive locks. In the locked state, some thread owns the " +"lock; in the unlocked state, no thread owns it." +msgstr "" + +#: ../Doc/library/threading.rst:433 +msgid "" +"To lock the lock, a thread calls its :meth:`~RLock.acquire` method; this " +"returns once the thread owns the lock. To unlock the lock, a thread calls " +"its :meth:`~Lock.release` method. :meth:`~Lock.acquire`/:meth:`~Lock." +"release` call pairs may be nested; only the final :meth:`~Lock.release` " +"(the :meth:`~Lock.release` of the outermost pair) resets the lock to " +"unlocked and allows another thread blocked in :meth:`~Lock.acquire` to " +"proceed." +msgstr "" + +#: ../Doc/library/threading.rst:440 +msgid "" +"Reentrant locks also support the :ref:`context management protocol `." +msgstr "" + +#: ../Doc/library/threading.rst:445 +msgid "" +"This class implements reentrant lock objects. A reentrant lock must be " +"released by the thread that acquired it. Once a thread has acquired a " +"reentrant lock, the same thread may acquire it again without blocking; the " +"thread must release it once for each time it has acquired it." +msgstr "" + +#: ../Doc/library/threading.rst:450 +msgid "" +"Note that ``RLock`` is actually a factory function which returns an instance " +"of the most efficient version of the concrete RLock class that is supported " +"by the platform." +msgstr "" + +#: ../Doc/library/threading.rst:459 +msgid "" +"When invoked without arguments: if this thread already owns the lock, " +"increment the recursion level by one, and return immediately. Otherwise, if " +"another thread owns the lock, block until the lock is unlocked. Once the " +"lock is unlocked (not owned by any thread), then grab ownership, set the " +"recursion level to one, and return. If more than one thread is blocked " +"waiting until the lock is unlocked, only one at a time will be able to grab " +"ownership of the lock. There is no return value in this case." +msgstr "" + +#: ../Doc/library/threading.rst:467 +msgid "" +"When invoked with the *blocking* argument set to true, do the same thing as " +"when called without arguments, and return true." +msgstr "" + +#: ../Doc/library/threading.rst:470 +msgid "" +"When invoked with the *blocking* argument set to false, do not block. If a " +"call without an argument would block, return false immediately; otherwise, " +"do the same thing as when called without arguments, and return true." +msgstr "" + +#: ../Doc/library/threading.rst:474 +msgid "" +"When invoked with the floating-point *timeout* argument set to a positive " +"value, block for at most the number of seconds specified by *timeout* and as " +"long as the lock cannot be acquired. Return true if the lock has been " +"acquired, false if the timeout has elapsed." +msgstr "" + +#: ../Doc/library/threading.rst:485 +msgid "" +"Release a lock, decrementing the recursion level. If after the decrement it " +"is zero, reset the lock to unlocked (not owned by any thread), and if any " +"other threads are blocked waiting for the lock to become unlocked, allow " +"exactly one of them to proceed. If after the decrement the recursion level " +"is still nonzero, the lock remains locked and owned by the calling thread." +msgstr "" + +#: ../Doc/library/threading.rst:491 +msgid "" +"Only call this method when the calling thread owns the lock. A :exc:" +"`RuntimeError` is raised if this method is called when the lock is unlocked." +msgstr "" + +#: ../Doc/library/threading.rst:501 +msgid "Condition Objects" +msgstr "" + +#: ../Doc/library/threading.rst:503 +msgid "" +"A condition variable is always associated with some kind of lock; this can " +"be passed in or one will be created by default. Passing one in is useful " +"when several condition variables must share the same lock. The lock is part " +"of the condition object: you don't have to track it separately." +msgstr "" + +#: ../Doc/library/threading.rst:508 +msgid "" +"A condition variable obeys the :ref:`context management protocol `: using the ``with`` statement acquires the associated lock for the " +"duration of the enclosed block. The :meth:`~Condition.acquire` and :meth:" +"`~Condition.release` methods also call the corresponding methods of the " +"associated lock." +msgstr "" + +#: ../Doc/library/threading.rst:514 +msgid "" +"Other methods must be called with the associated lock held. The :meth:" +"`~Condition.wait` method releases the lock, and then blocks until another " +"thread awakens it by calling :meth:`~Condition.notify` or :meth:`~Condition." +"notify_all`. Once awakened, :meth:`~Condition.wait` re-acquires the lock " +"and returns. It is also possible to specify a timeout." +msgstr "" + +#: ../Doc/library/threading.rst:520 +msgid "" +"The :meth:`~Condition.notify` method wakes up one of the threads waiting for " +"the condition variable, if any are waiting. The :meth:`~Condition." +"notify_all` method wakes up all threads waiting for the condition variable." +msgstr "" + +#: ../Doc/library/threading.rst:524 +msgid "" +"Note: the :meth:`~Condition.notify` and :meth:`~Condition.notify_all` " +"methods don't release the lock; this means that the thread or threads " +"awakened will not return from their :meth:`~Condition.wait` call " +"immediately, but only when the thread that called :meth:`~Condition.notify` " +"or :meth:`~Condition.notify_all` finally relinquishes ownership of the lock." +msgstr "" + +#: ../Doc/library/threading.rst:530 +msgid "" +"The typical programming style using condition variables uses the lock to " +"synchronize access to some shared state; threads that are interested in a " +"particular change of state call :meth:`~Condition.wait` repeatedly until " +"they see the desired state, while threads that modify the state call :meth:" +"`~Condition.notify` or :meth:`~Condition.notify_all` when they change the " +"state in such a way that it could possibly be a desired state for one of the " +"waiters. For example, the following code is a generic producer-consumer " +"situation with unlimited buffer capacity::" +msgstr "" + +#: ../Doc/library/threading.rst:550 +msgid "" +"The ``while`` loop checking for the application's condition is necessary " +"because :meth:`~Condition.wait` can return after an arbitrary long time, and " +"the condition which prompted the :meth:`~Condition.notify` call may no " +"longer hold true. This is inherent to multi-threaded programming. The :" +"meth:`~Condition.wait_for` method can be used to automate the condition " +"checking, and eases the computation of timeouts::" +msgstr "" + +#: ../Doc/library/threading.rst:562 +msgid "" +"To choose between :meth:`~Condition.notify` and :meth:`~Condition." +"notify_all`, consider whether one state change can be interesting for only " +"one or several waiting threads. E.g. in a typical producer-consumer " +"situation, adding one item to the buffer only needs to wake up one consumer " +"thread." +msgstr "" + +#: ../Doc/library/threading.rst:570 +msgid "" +"This class implements condition variable objects. A condition variable " +"allows one or more threads to wait until they are notified by another thread." +msgstr "" + +#: ../Doc/library/threading.rst:573 +msgid "" +"If the *lock* argument is given and not ``None``, it must be a :class:`Lock` " +"or :class:`RLock` object, and it is used as the underlying lock. Otherwise, " +"a new :class:`RLock` object is created and used as the underlying lock." +msgstr "" + +#: ../Doc/library/threading.rst:577 ../Doc/library/threading.rst:699 +#: ../Doc/library/threading.rst:742 ../Doc/library/threading.rst:794 +#: ../Doc/library/threading.rst:863 +msgid "changed from a factory function to a class." +msgstr "" + +#: ../Doc/library/threading.rst:582 +msgid "" +"Acquire the underlying lock. This method calls the corresponding method on " +"the underlying lock; the return value is whatever that method returns." +msgstr "" + +#: ../Doc/library/threading.rst:587 +msgid "" +"Release the underlying lock. This method calls the corresponding method on " +"the underlying lock; there is no return value." +msgstr "" + +#: ../Doc/library/threading.rst:592 +msgid "" +"Wait until notified or until a timeout occurs. If the calling thread has not " +"acquired the lock when this method is called, a :exc:`RuntimeError` is " +"raised." +msgstr "" + +#: ../Doc/library/threading.rst:596 +msgid "" +"This method releases the underlying lock, and then blocks until it is " +"awakened by a :meth:`notify` or :meth:`notify_all` call for the same " +"condition variable in another thread, or until the optional timeout occurs. " +"Once awakened or timed out, it re-acquires the lock and returns." +msgstr "" + +#: ../Doc/library/threading.rst:601 +msgid "" +"When the *timeout* argument is present and not ``None``, it should be a " +"floating point number specifying a timeout for the operation in seconds (or " +"fractions thereof)." +msgstr "" + +#: ../Doc/library/threading.rst:605 +msgid "" +"When the underlying lock is an :class:`RLock`, it is not released using its :" +"meth:`release` method, since this may not actually unlock the lock when it " +"was acquired multiple times recursively. Instead, an internal interface of " +"the :class:`RLock` class is used, which really unlocks it even when it has " +"been recursively acquired several times. Another internal interface is then " +"used to restore the recursion level when the lock is reacquired." +msgstr "" + +#: ../Doc/library/threading.rst:613 +msgid "" +"The return value is ``True`` unless a given *timeout* expired, in which case " +"it is ``False``." +msgstr "" + +#: ../Doc/library/threading.rst:616 ../Doc/library/threading.rst:828 +msgid "Previously, the method always returned ``None``." +msgstr "" + +#: ../Doc/library/threading.rst:621 +msgid "" +"Wait until a condition evaluates to true. *predicate* should be a callable " +"which result will be interpreted as a boolean value. A *timeout* may be " +"provided giving the maximum time to wait." +msgstr "" + +#: ../Doc/library/threading.rst:625 +msgid "" +"This utility method may call :meth:`wait` repeatedly until the predicate is " +"satisfied, or until a timeout occurs. The return value is the last return " +"value of the predicate and will evaluate to ``False`` if the method timed " +"out." +msgstr "" + +#: ../Doc/library/threading.rst:630 +msgid "" +"Ignoring the timeout feature, calling this method is roughly equivalent to " +"writing::" +msgstr "" + +#: ../Doc/library/threading.rst:636 +msgid "" +"Therefore, the same rules apply as with :meth:`wait`: The lock must be held " +"when called and is re-acquired on return. The predicate is evaluated with " +"the lock held." +msgstr "" + +#: ../Doc/library/threading.rst:644 +msgid "" +"By default, wake up one thread waiting on this condition, if any. If the " +"calling thread has not acquired the lock when this method is called, a :exc:" +"`RuntimeError` is raised." +msgstr "" + +#: ../Doc/library/threading.rst:648 +msgid "" +"This method wakes up at most *n* of the threads waiting for the condition " +"variable; it is a no-op if no threads are waiting." +msgstr "" + +#: ../Doc/library/threading.rst:651 +msgid "" +"The current implementation wakes up exactly *n* threads, if at least *n* " +"threads are waiting. However, it's not safe to rely on this behavior. A " +"future, optimized implementation may occasionally wake up more than *n* " +"threads." +msgstr "" + +#: ../Doc/library/threading.rst:656 +msgid "" +"Note: an awakened thread does not actually return from its :meth:`wait` call " +"until it can reacquire the lock. Since :meth:`notify` does not release the " +"lock, its caller should." +msgstr "" + +#: ../Doc/library/threading.rst:662 +msgid "" +"Wake up all threads waiting on this condition. This method acts like :meth:" +"`notify`, but wakes up all waiting threads instead of one. If the calling " +"thread has not acquired the lock when this method is called, a :exc:" +"`RuntimeError` is raised." +msgstr "" + +#: ../Doc/library/threading.rst:671 +msgid "Semaphore Objects" +msgstr "" + +#: ../Doc/library/threading.rst:673 +msgid "" +"This is one of the oldest synchronization primitives in the history of " +"computer science, invented by the early Dutch computer scientist Edsger W. " +"Dijkstra (he used the names ``P()`` and ``V()`` instead of :meth:`~Semaphore." +"acquire` and :meth:`~Semaphore.release`)." +msgstr "" + +#: ../Doc/library/threading.rst:678 +msgid "" +"A semaphore manages an internal counter which is decremented by each :meth:" +"`~Semaphore.acquire` call and incremented by each :meth:`~Semaphore.release` " +"call. The counter can never go below zero; when :meth:`~Semaphore.acquire` " +"finds that it is zero, it blocks, waiting until some other thread calls :" +"meth:`~Semaphore.release`." +msgstr "" + +#: ../Doc/library/threading.rst:684 +msgid "" +"Semaphores also support the :ref:`context management protocol `." +msgstr "" + +#: ../Doc/library/threading.rst:689 +msgid "" +"This class implements semaphore objects. A semaphore manages an atomic " +"counter representing the number of :meth:`release` calls minus the number " +"of :meth:`acquire` calls, plus an initial value. The :meth:`acquire` method " +"blocks if necessary until it can return without making the counter negative. " +"If not given, *value* defaults to 1." +msgstr "" + +#: ../Doc/library/threading.rst:695 +msgid "" +"The optional argument gives the initial *value* for the internal counter; it " +"defaults to ``1``. If the *value* given is less than 0, :exc:`ValueError` is " +"raised." +msgstr "" + +#: ../Doc/library/threading.rst:704 +msgid "Acquire a semaphore." +msgstr "" + +#: ../Doc/library/threading.rst:706 +msgid "When invoked without arguments:" +msgstr "" + +#: ../Doc/library/threading.rst:708 +msgid "" +"If the internal counter is larger than zero on entry, decrement it by one " +"and return true immediately." +msgstr "" + +#: ../Doc/library/threading.rst:710 +msgid "" +"If the internal counter is zero on entry, block until awoken by a call to :" +"meth:`~Semaphore.release`. Once awoken (and the counter is greater than 0), " +"decrement the counter by 1 and return true. Exactly one thread will be " +"awoken by each call to :meth:`~Semaphore.release`. The order in which " +"threads are awoken should not be relied on." +msgstr "" + +#: ../Doc/library/threading.rst:716 +msgid "" +"When invoked with *blocking* set to false, do not block. If a call without " +"an argument would block, return false immediately; otherwise, do the same " +"thing as when called without arguments, and return true." +msgstr "" + +#: ../Doc/library/threading.rst:720 +msgid "" +"When invoked with a *timeout* other than ``None``, it will block for at most " +"*timeout* seconds. If acquire does not complete successfully in that " +"interval, return false. Return true otherwise." +msgstr "" + +#: ../Doc/library/threading.rst:729 +msgid "" +"Release a semaphore, incrementing the internal counter by one. When it was " +"zero on entry and another thread is waiting for it to become larger than " +"zero again, wake up that thread." +msgstr "" + +#: ../Doc/library/threading.rst:736 +msgid "" +"Class implementing bounded semaphore objects. A bounded semaphore checks to " +"make sure its current value doesn't exceed its initial value. If it does, :" +"exc:`ValueError` is raised. In most situations semaphores are used to guard " +"resources with limited capacity. If the semaphore is released too many " +"times it's a sign of a bug. If not given, *value* defaults to 1." +msgstr "" + +#: ../Doc/library/threading.rst:749 +msgid ":class:`Semaphore` Example" +msgstr "" + +#: ../Doc/library/threading.rst:751 +msgid "" +"Semaphores are often used to guard resources with limited capacity, for " +"example, a database server. In any situation where the size of the resource " +"is fixed, you should use a bounded semaphore. Before spawning any worker " +"threads, your main thread would initialize the semaphore::" +msgstr "" + +#: ../Doc/library/threading.rst:760 +msgid "" +"Once spawned, worker threads call the semaphore's acquire and release " +"methods when they need to connect to the server::" +msgstr "" + +#: ../Doc/library/threading.rst:770 +msgid "" +"The use of a bounded semaphore reduces the chance that a programming error " +"which causes the semaphore to be released more than it's acquired will go " +"undetected." +msgstr "" + +#: ../Doc/library/threading.rst:777 +msgid "Event Objects" +msgstr "" + +#: ../Doc/library/threading.rst:779 +msgid "" +"This is one of the simplest mechanisms for communication between threads: " +"one thread signals an event and other threads wait for it." +msgstr "" + +#: ../Doc/library/threading.rst:782 +msgid "" +"An event object manages an internal flag that can be set to true with the :" +"meth:`~Event.set` method and reset to false with the :meth:`~Event.clear` " +"method. The :meth:`~Event.wait` method blocks until the flag is true." +msgstr "" + +#: ../Doc/library/threading.rst:789 +msgid "" +"Class implementing event objects. An event manages a flag that can be set " +"to true with the :meth:`~Event.set` method and reset to false with the :meth:" +"`clear` method. The :meth:`wait` method blocks until the flag is true. The " +"flag is initially false." +msgstr "" + +#: ../Doc/library/threading.rst:799 +msgid "Return true if and only if the internal flag is true." +msgstr "" + +#: ../Doc/library/threading.rst:803 +msgid "" +"Set the internal flag to true. All threads waiting for it to become true are " +"awakened. Threads that call :meth:`wait` once the flag is true will not " +"block at all." +msgstr "" + +#: ../Doc/library/threading.rst:809 +msgid "" +"Reset the internal flag to false. Subsequently, threads calling :meth:`wait` " +"will block until :meth:`.set` is called to set the internal flag to true " +"again." +msgstr "" + +#: ../Doc/library/threading.rst:815 +msgid "" +"Block until the internal flag is true. If the internal flag is true on " +"entry, return immediately. Otherwise, block until another thread calls :" +"meth:`.set` to set the flag to true, or until the optional timeout occurs." +msgstr "" + +#: ../Doc/library/threading.rst:819 +msgid "" +"When the timeout argument is present and not ``None``, it should be a " +"floating point number specifying a timeout for the operation in seconds (or " +"fractions thereof)." +msgstr "" + +#: ../Doc/library/threading.rst:823 +msgid "" +"This method returns true if and only if the internal flag has been set to " +"true, either before the wait call or after the wait starts, so it will " +"always return ``True`` except if a timeout is given and the operation times " +"out." +msgstr "" + +#: ../Doc/library/threading.rst:835 +msgid "Timer Objects" +msgstr "" + +#: ../Doc/library/threading.rst:837 +msgid "" +"This class represents an action that should be run only after a certain " +"amount of time has passed --- a timer. :class:`Timer` is a subclass of :" +"class:`Thread` and as such also functions as an example of creating custom " +"threads." +msgstr "" + +#: ../Doc/library/threading.rst:841 +msgid "" +"Timers are started, as with threads, by calling their :meth:`~Timer.start` " +"method. The timer can be stopped (before its action has begun) by calling " +"the :meth:`~Timer.cancel` method. The interval the timer will wait before " +"executing its action may not be exactly the same as the interval specified " +"by the user." +msgstr "" + +#: ../Doc/library/threading.rst:847 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/library/threading.rst:858 +msgid "" +"Create a timer that will run *function* with arguments *args* and keyword " +"arguments *kwargs*, after *interval* seconds have passed. If *args* is " +"``None`` (the default) then an empty list will be used. If *kwargs* is " +"``None`` (the default) then an empty dict will be used." +msgstr "" + +#: ../Doc/library/threading.rst:868 +msgid "" +"Stop the timer, and cancel the execution of the timer's action. This will " +"only work if the timer is still in its waiting stage." +msgstr "" + +#: ../Doc/library/threading.rst:873 +msgid "Barrier Objects" +msgstr "" + +#: ../Doc/library/threading.rst:877 +msgid "" +"This class provides a simple synchronization primitive for use by a fixed " +"number of threads that need to wait for each other. Each of the threads " +"tries to pass the barrier by calling the :meth:`~Barrier.wait` method and " +"will block until all of the threads have made their :meth:`~Barrier.wait` " +"calls. At this point, the threads are released simultaneously." +msgstr "" + +#: ../Doc/library/threading.rst:883 +msgid "" +"The barrier can be reused any number of times for the same number of threads." +msgstr "" + +#: ../Doc/library/threading.rst:885 +msgid "" +"As an example, here is a simple way to synchronize a client and server " +"thread::" +msgstr "" + +#: ../Doc/library/threading.rst:905 +msgid "" +"Create a barrier object for *parties* number of threads. An *action*, when " +"provided, is a callable to be called by one of the threads when they are " +"released. *timeout* is the default timeout value if none is specified for " +"the :meth:`wait` method." +msgstr "" + +#: ../Doc/library/threading.rst:912 +msgid "" +"Pass the barrier. When all the threads party to the barrier have called " +"this function, they are all released simultaneously. If a *timeout* is " +"provided, it is used in preference to any that was supplied to the class " +"constructor." +msgstr "" + +#: ../Doc/library/threading.rst:917 +msgid "" +"The return value is an integer in the range 0 to *parties* -- 1, different " +"for each thread. This can be used to select a thread to do some special " +"housekeeping, e.g.::" +msgstr "" + +#: ../Doc/library/threading.rst:926 +msgid "" +"If an *action* was provided to the constructor, one of the threads will have " +"called it prior to being released. Should this call raise an error, the " +"barrier is put into the broken state." +msgstr "" + +#: ../Doc/library/threading.rst:930 +msgid "If the call times out, the barrier is put into the broken state." +msgstr "" + +#: ../Doc/library/threading.rst:932 +msgid "" +"This method may raise a :class:`BrokenBarrierError` exception if the barrier " +"is broken or reset while a thread is waiting." +msgstr "" + +#: ../Doc/library/threading.rst:937 +msgid "" +"Return the barrier to the default, empty state. Any threads waiting on it " +"will receive the :class:`BrokenBarrierError` exception." +msgstr "" + +#: ../Doc/library/threading.rst:940 +msgid "" +"Note that using this function may can require some external synchronization " +"if there are other threads whose state is unknown. If a barrier is broken " +"it may be better to just leave it and create a new one." +msgstr "" + +#: ../Doc/library/threading.rst:946 +msgid "" +"Put the barrier into a broken state. This causes any active or future calls " +"to :meth:`wait` to fail with the :class:`BrokenBarrierError`. Use this for " +"example if one of the needs to abort, to avoid deadlocking the application." +msgstr "" + +#: ../Doc/library/threading.rst:951 +msgid "" +"It may be preferable to simply create the barrier with a sensible *timeout* " +"value to automatically guard against one of the threads going awry." +msgstr "" + +#: ../Doc/library/threading.rst:957 +msgid "The number of threads required to pass the barrier." +msgstr "" + +#: ../Doc/library/threading.rst:961 +msgid "The number of threads currently waiting in the barrier." +msgstr "" + +#: ../Doc/library/threading.rst:965 +msgid "A boolean that is ``True`` if the barrier is in the broken state." +msgstr "" + +#: ../Doc/library/threading.rst:970 +msgid "" +"This exception, a subclass of :exc:`RuntimeError`, is raised when the :class:" +"`Barrier` object is reset or broken." +msgstr "" + +#: ../Doc/library/threading.rst:977 +msgid "" +"Using locks, conditions, and semaphores in the :keyword:`!with` statement" +msgstr "" + +#: ../Doc/library/threading.rst:979 +msgid "" +"All of the objects provided by this module that have :meth:`acquire` and :" +"meth:`release` methods can be used as context managers for a :keyword:`with` " +"statement. The :meth:`acquire` method will be called when the block is " +"entered, and :meth:`release` will be called when the block is exited. " +"Hence, the following snippet::" +msgstr "" + +#: ../Doc/library/threading.rst:988 +msgid "is equivalent to::" +msgstr "est équivalente à ::" + +#: ../Doc/library/threading.rst:996 +msgid "" +"Currently, :class:`Lock`, :class:`RLock`, :class:`Condition`, :class:" +"`Semaphore`, and :class:`BoundedSemaphore` objects may be used as :keyword:" +"`with` statement context managers." +msgstr "" diff --git a/library/time.po b/library/time.po new file mode 100644 index 000000000..60046619f --- /dev/null +++ b/library/time.po @@ -0,0 +1,1649 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-03-27 13:21+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/time.rst:2 +msgid ":mod:`time` --- Time access and conversions" +msgstr ":mod:`time` — Accès au temps et conversions" + +#: ../Doc/library/time.rst:9 +msgid "" +"This module provides various time-related functions. For related " +"functionality, see also the :mod:`datetime` and :mod:`calendar` modules." +msgstr "" +"Ce module fournit différentes fonctions liées au temps. Pour les " +"fonctionnalités associées, voir aussi les modules :mod:`datetime` et :mod:" +"`calendar`." + +#: ../Doc/library/time.rst:12 +msgid "" +"Although this module is always available, not all functions are available on " +"all platforms. Most of the functions defined in this module call platform C " +"library functions with the same name. It may sometimes be helpful to " +"consult the platform documentation, because the semantics of these functions " +"varies among platforms." +msgstr "" +"Bien que ce module soit toujours disponible, toutes les fonctions ne sont " +"pas disponibles sur toutes les plateformes. La plupart des fonctions " +"définies dans ce module délèguent à des fonctions de même nom de la " +"bibliothèque C. Il peut parfois être utile de consulter la documentation de " +"la plate-forme, car la sémantique de ces fonctions peut varier." + +#: ../Doc/library/time.rst:18 +msgid "An explanation of some terminology and conventions is in order." +msgstr "" +"Vous trouvez ci-dessous, mises en ordre, quelques explications relative à la " +"terminologie et aux conventions." + +#: ../Doc/library/time.rst:24 +msgid "" +"The :dfn:`epoch` is the point where the time starts, and is platform " +"dependent. For Unix, the epoch is January 1, 1970, 00:00:00 (UTC). To find " +"out what the epoch is on a given platform, look at ``time.gmtime(0)``." +msgstr "" +"L':dfn:`epoch` est le point de départ du temps et dépend de la plate-forme. " +"Pour Unix, *epoch* est le 1er janvier 1970 à 00:00:00 (UTC). Pour savoir " +"comment est définie *epoch* sur une plate-forme donnée, regardez ``time." +"gmtime(0)``." + +#: ../Doc/library/time.rst:33 +msgid "" +"The term :dfn:`seconds since the epoch` refers to the total number of " +"elapsed seconds since the epoch, typically excluding `leap seconds`_. Leap " +"seconds are excluded from this total on all POSIX-compliant platforms." +msgstr "" +"Le terme :dfn:`secondes depuis *epoch*` désigne le nombre total de secondes " +"écoulées depuis *epoch*, souvent en excluant les secondes intercalaires " +"(`leap seconds`_). Les secondes intercalaires sont exclues de ce total sur " +"toutes les plates-formes conformes POSIX." + +#: ../Doc/library/time.rst:40 +msgid "" +"The functions in this module may not handle dates and times before the epoch " +"or far in the future. The cut-off point in the future is determined by the " +"C library; for 32-bit systems, it is typically in 2038." +msgstr "" +"Les fonctions de ce module peuvent ne pas gérer les dates et heures " +"antérieures à *epoch* ou dans un avenir lointain. Le seuil du futur est " +"déterminé par la bibliothèque C ; pour les systèmes 32 bits, il s’agit " +"généralement de 2038." + +#: ../Doc/library/time.rst:50 +msgid "" +"**Year 2000 (Y2K) issues**: Python depends on the platform's C library, " +"which generally doesn't have year 2000 issues, since all dates and times are " +"represented internally as seconds since the epoch. Function :func:" +"`strptime` can parse 2-digit years when given ``%y`` format code. When 2-" +"digit years are parsed, they are converted according to the POSIX and ISO C " +"standards: values 69--99 are mapped to 1969--1999, and values 0--68 are " +"mapped to 2000--2068." +msgstr "" +"**Problèmes liés à l’an 2000 (Y2K)** : Python dépend de la bibliothèque C de " +"la plate-forme, qui n’a généralement pas de problèmes liés à l’an 2000, " +"étant donné que toutes les dates et heures sont représentées en interne en " +"secondes depuis *epoch*. La fonction :func:`strptime` peut analyser des " +"années à 2 chiffres lorsque le format ``%y`` est spécifié. Lorsque les " +"années à deux chiffres sont analysées, elles sont converties conformément " +"aux normes POSIX et ISO C : les valeurs 69—99 correspondent à 1969—1999 et " +"les valeurs 0—68 à 2000—2068." + +#: ../Doc/library/time.rst:62 +msgid "" +"UTC is Coordinated Universal Time (formerly known as Greenwich Mean Time, or " +"GMT). The acronym UTC is not a mistake but a compromise between English and " +"French." +msgstr "" +"UTC désigne le temps universel coordonné (*Coordinated Universal Time* en " +"anglais), anciennement l'heure de Greenwich (ou GMT). L'acronyme UTC n'est " +"pas une erreur mais un compromis entre l'anglais et le français." + +#: ../Doc/library/time.rst:68 +msgid "" +"DST is Daylight Saving Time, an adjustment of the timezone by (usually) one " +"hour during part of the year. DST rules are magic (determined by local law) " +"and can change from year to year. The C library has a table containing the " +"local rules (often it is read from a system file for flexibility) and is the " +"only source of True Wisdom in this respect." +msgstr "" +"Le DST (*Daylight Saving Time*) correspond à l’heure d’été, un ajustement du " +"fuseau horaire d’une heure (généralement) pendant une partie de l’année. Les " +"règles de DST sont magiques (déterminées par la loi locale) et peuvent " +"changer d’année en année. La bibliothèque C possède une table contenant les " +"règles locales (souvent, elle est lue dans un fichier système par souci de " +"souplesse) et constitue la seule source fiable." + +#: ../Doc/library/time.rst:74 +msgid "" +"The precision of the various real-time functions may be less than suggested " +"by the units in which their value or argument is expressed. E.g. on most " +"Unix systems, the clock \"ticks\" only 50 or 100 times a second." +msgstr "" +"La précision des diverses fonctions en temps réel peut être inférieure à " +"celle suggérée par les unités dans lesquelles leur valeur ou leur argument " +"est exprimé. Par exemple, sur la plupart des systèmes Unix, l’horloge ne « " +"bat » que 50 ou 100 fois par seconde." + +#: ../Doc/library/time.rst:78 +msgid "" +"On the other hand, the precision of :func:`.time` and :func:`sleep` is " +"better than their Unix equivalents: times are expressed as floating point " +"numbers, :func:`.time` returns the most accurate time available (using Unix :" +"c:func:`gettimeofday` where available), and :func:`sleep` will accept a time " +"with a nonzero fraction (Unix :c:func:`select` is used to implement this, " +"where available)." +msgstr "" +"D’autre part, la précision de :func:`.time` et :func:`sleep` est meilleure " +"que leurs équivalents Unix : les temps sont exprimés en nombres à virgule " +"flottante, :func:`.time` renvoie le temps le plus précis disponible (en " +"utilisant :c:func:`gettimeofday` d'Unix si elle est disponible), et :func:" +"`sleep` accepte le temps avec une fraction non nulle (:c:func:`select` " +"d'Unix est utilisée pour l’implémenter, si elle est disponible)." + +#: ../Doc/library/time.rst:85 +msgid "" +"The time value as returned by :func:`gmtime`, :func:`localtime`, and :func:" +"`strptime`, and accepted by :func:`asctime`, :func:`mktime` and :func:" +"`strftime`, is a sequence of 9 integers. The return values of :func:" +"`gmtime`, :func:`localtime`, and :func:`strptime` also offer attribute names " +"for individual fields." +msgstr "" +"La valeur temporelle renvoyée par :func:`gmtime`, :func:`localtime` et :func:" +"`strptime`, et acceptée par :func:`asctime`, :func:`mktime` et :func:" +"`strftime`, est une séquence de 9 nombres entiers. Les valeurs de retour de :" +"func:`gmtime`, :func:`localtime` et :func:`strptime` proposent également des " +"noms d’attributs pour des champs individuels." + +#: ../Doc/library/time.rst:91 +msgid "See :class:`struct_time` for a description of these objects." +msgstr "Voir :class:`struct_time` pour une description de ces objets." + +#: ../Doc/library/time.rst:93 +msgid "" +"The :class:`struct_time` type was extended to provide the :attr:`tm_gmtoff` " +"and :attr:`tm_zone` attributes when platform supports corresponding ``struct " +"tm`` members." +msgstr "" +"Le type :class:`struct_time` a été étendu pour fournir les attributs :attr:" +"`tm_gmtoff` et :attr:`tm_zone` lorsque la plateforme prend en charge les " +"membres ``struct tm`` correspondants." + +#: ../Doc/library/time.rst:98 +msgid "" +"The :class:`struct_time` attributes :attr:`tm_gmtoff` and :attr:`tm_zone` " +"are now available on all platforms." +msgstr "" +"Les attributs :class:`struct_time` :attr:`tm_gmtoff` et :attr:`tm_zone` sont " +"maintenant disponibles sur toutes les plateformes." + +#: ../Doc/library/time.rst:102 +msgid "Use the following functions to convert between time representations:" +msgstr "" +"Utilisez les fonctions suivantes pour convertir des représentations " +"temporelles :" + +#: ../Doc/library/time.rst:105 +msgid "From" +msgstr "De" + +#: ../Doc/library/time.rst:105 +msgid "To" +msgstr "À" + +#: ../Doc/library/time.rst:105 +msgid "Use" +msgstr "Utilisez" + +#: ../Doc/library/time.rst:107 ../Doc/library/time.rst:110 +#: ../Doc/library/time.rst:113 ../Doc/library/time.rst:116 +msgid "seconds since the epoch" +msgstr "secondes depuis *epoch*" + +#: ../Doc/library/time.rst:107 ../Doc/library/time.rst:113 +msgid ":class:`struct_time` in UTC" +msgstr ":class:`struct_time` en UTC" + +#: ../Doc/library/time.rst:107 +msgid ":func:`gmtime`" +msgstr ":func:`gmtime`" + +#: ../Doc/library/time.rst:110 ../Doc/library/time.rst:116 +msgid ":class:`struct_time` in local time" +msgstr ":class:`struct_time` en heure locale" + +#: ../Doc/library/time.rst:110 +msgid ":func:`localtime`" +msgstr ":func:`localtime`" + +#: ../Doc/library/time.rst:113 +msgid ":func:`calendar.timegm`" +msgstr ":func:`calendar.timegm`" + +#: ../Doc/library/time.rst:116 +msgid ":func:`mktime`" +msgstr ":func:`mktime`" + +#: ../Doc/library/time.rst:124 +msgid "Functions" +msgstr "Fonctions" + +#: ../Doc/library/time.rst:128 +msgid "" +"Convert a tuple or :class:`struct_time` representing a time as returned by :" +"func:`gmtime` or :func:`localtime` to a string of the following form: ``'Sun " +"Jun 20 23:21:05 1993'``. If *t* is not provided, the current time as " +"returned by :func:`localtime` is used. Locale information is not used by :" +"func:`asctime`." +msgstr "" +"Convertit un *tuple* ou :class:`struct_time` représentant une heure renvoyée " +"par :func:`gmtime` ou :func:`localtime` en une chaîne de la forme suivante : " +"``'Sun Jun 20 23:21:05 1993'``. Si *t* n’est pas fourni, l’heure actuelle " +"renvoyée par :func:`localtime` est utilisée. Les informations sur les " +"paramètres régionaux ne sont pas utilisées par :func:`asctime`." + +#: ../Doc/library/time.rst:136 +msgid "" +"Unlike the C function of the same name, :func:`asctime` does not add a " +"trailing newline." +msgstr "" +"Contrairement à la fonction C du même nom, :func:`asctime` n’ajoute pas de " +"caractère de fin de ligne." + +#: ../Doc/library/time.rst:147 +msgid "" +"On Unix, return the current processor time as a floating point number " +"expressed in seconds. The precision, and in fact the very definition of the " +"meaning of \"processor time\", depends on that of the C function of the same " +"name." +msgstr "" +"Sous UNIX, renvoie le temps processeur actuel, en secondes, sous la forme " +"d'un nombre à virgule flottante exprimé en secondes. La précision, et en " +"fait la définition même de la signification de \"temps processeur\", dépend " +"de celle de la fonction C du même nom." + +#: ../Doc/library/time.rst:151 +msgid "" +"On Windows, this function returns wall-clock seconds elapsed since the first " +"call to this function, as a floating point number, based on the Win32 " +"function :c:func:`QueryPerformanceCounter`. The resolution is typically " +"better than one microsecond." +msgstr "" +"Sous Windows, cette fonction renvoie les secondes réelles (type horloge " +"murale) écoulées depuis le premier appel à cette fonction, en tant que " +"nombre à virgule flottante, en fonction de la fonction *Win32* :c:func:" +"`QueryPerformanceCounter`. La résolution est généralement meilleure qu'une " +"microseconde." + +#: ../Doc/library/time.rst:159 +msgid "" +"The behaviour of this function depends on the platform: use :func:" +"`perf_counter` or :func:`process_time` instead, depending on your " +"requirements, to have a well defined behaviour." +msgstr "" +"Le comportement de cette fonction dépend de la plate-forme : utilisez " +"plutôt :func:`perf_counter` ou :func:`process_time`, selon vos besoins, pour " +"avoir un comportement bien défini." + +#: ../Doc/library/time.rst:163 +msgid "" +"Return the *clk_id* of the thread-specific CPU-time clock for the specified " +"*thread_id*." +msgstr "" +"Renvoie le *clk_id* de l'horloge du temps CPU spécifique au fil d'exécution " +"pour le *thread_id* spécifié." + +#: ../Doc/library/time.rst:165 +msgid "" +"Use :func:`threading.get_ident` or the :attr:`~threading.Thread.ident` " +"attribute of :class:`threading.Thread` objects to get a suitable value for " +"*thread_id*." +msgstr "" +"Utilisez :func:`threading.get_ident` ou l'attribut :attr:`~threading.Thread." +"ident` de :class:`threading.Thread` pour obtenir une valeur appropriée pour " +"*thread_id*." + +#: ../Doc/library/time.rst:170 +msgid "" +"Passing an invalid or expired *thread_id* may result in undefined behavior, " +"such as segmentation fault." +msgstr "" +"Passer un *thread_id* invalide ou arrivé à expiration peut entraîner un " +"comportement indéfini, tel qu’une erreur de segmentation." + +#: ../Doc/library/time.rst:175 +msgid "" +":ref:`Availability `: Unix (see the man page for :manpage:" +"`pthread_getcpuclockid(3)` for further information)." +msgstr "" +":ref:`Disponibilité ` : Unix (regardez la page man pour :" +"manpage:`pthread_getcpuclockid(3)` pour plus d’information)." + +#: ../Doc/library/time.rst:180 +msgid "" +"Return the resolution (precision) of the specified clock *clk_id*. Refer " +"to :ref:`time-clock-id-constants` for a list of accepted values for *clk_id*." +msgstr "" +"Renvoie la résolution (précision) de l’horloge *clk_id*. Référez-vous à :ref:" +"`time-clock-id-constants` pour une liste des valeurs acceptées pour *clk_id*." + +#: ../Doc/library/time.rst:184 ../Doc/library/time.rst:194 +#: ../Doc/library/time.rst:203 ../Doc/library/time.rst:213 +#: ../Doc/library/time.rst:222 ../Doc/library/time.rst:649 +#: ../Doc/library/time.rst:766 ../Doc/library/time.rst:785 +#: ../Doc/library/time.rst:803 ../Doc/library/time.rst:827 +msgid ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilité ` : Unix." + +#: ../Doc/library/time.rst:190 +msgid "" +"Return the time of the specified clock *clk_id*. Refer to :ref:`time-clock-" +"id-constants` for a list of accepted values for *clk_id*." +msgstr "" +"Renvoie l’heure de l’horloge *clk_id*. Référez-vous à :ref:`time-clock-id-" +"constants` pour une liste des valeurs acceptées pour *clk_id*." + +#: ../Doc/library/time.rst:200 +msgid "Similar to :func:`clock_gettime` but return time as nanoseconds." +msgstr "" +"Similaire à :func:`clock_gettime` mais le temps renvoyé est exprimé en " +"nanosecondes." + +#: ../Doc/library/time.rst:209 +msgid "" +"Set the time of the specified clock *clk_id*. Currently, :data:" +"`CLOCK_REALTIME` is the only accepted value for *clk_id*." +msgstr "" +"Définit l’heure de l’horloge *clk_id*. Actuellement, :data:`CLOCK_REALTIME` " +"est la seule valeur acceptée pour *clk_id*." + +#: ../Doc/library/time.rst:219 +msgid "Similar to :func:`clock_settime` but set time with nanoseconds." +msgstr "" +"Similaire à :func:`clock_settime` mais définit l’heure avec des nanosecondes." + +#: ../Doc/library/time.rst:228 +msgid "" +"Convert a time expressed in seconds since the epoch to a string representing " +"local time. If *secs* is not provided or :const:`None`, the current time as " +"returned by :func:`.time` is used. ``ctime(secs)`` is equivalent to " +"``asctime(localtime(secs))``. Locale information is not used by :func:" +"`ctime`." +msgstr "" +"Convertit une heure exprimée en secondes depuis *epoch* en une chaîne " +"représentant l’heure locale. Si *secs* n’est pas fourni ou vaut :const:" +"`None`, l’heure actuelle renvoyée par :func:`.time` est utilisée. " +"``ctime(secs)`` est équivalent à ``asctime(localtime(secs))``. Les " +"informations sur les paramètres régionaux ne sont pas utilisées par :func:" +"`ctime`." + +#: ../Doc/library/time.rst:236 +msgid "" +"Get information on the specified clock as a namespace object. Supported " +"clock names and the corresponding functions to read their value are:" +msgstr "" +"Renvoie des informations sur l’horloge spécifiée en tant qu’objet d’espace " +"de nom. Les noms d’horloge pris en charge et les fonctions correspondantes " +"permettant de lire leur valeur sont les suivants :" + +#: ../Doc/library/time.rst:240 +msgid "``'clock'``: :func:`time.clock`" +msgstr "``'clock'``: :func:`time.clock`" + +#: ../Doc/library/time.rst:241 +msgid "``'monotonic'``: :func:`time.monotonic`" +msgstr "``'monotonic'``: :func:`time.monotonic`" + +#: ../Doc/library/time.rst:242 +msgid "``'perf_counter'``: :func:`time.perf_counter`" +msgstr "``'perf_counter'``: :func:`time.perf_counter`" + +#: ../Doc/library/time.rst:243 +msgid "``'process_time'``: :func:`time.process_time`" +msgstr "``'process_time'``: :func:`time.process_time`" + +#: ../Doc/library/time.rst:244 +msgid "``'thread_time'``: :func:`time.thread_time`" +msgstr "``'thread_time'``: :func:`time.thread_time`" + +#: ../Doc/library/time.rst:245 +msgid "``'time'``: :func:`time.time`" +msgstr "``'time'``: :func:`time.time`" + +#: ../Doc/library/time.rst:247 +msgid "The result has the following attributes:" +msgstr "Le résultat a les attributs suivants :" + +#: ../Doc/library/time.rst:249 +msgid "" +"*adjustable*: ``True`` if the clock can be changed automatically (e.g. by a " +"NTP daemon) or manually by the system administrator, ``False`` otherwise" +msgstr "" +"*adjustable* : ``True`` si l’horloge peut être changée automatiquement (par " +"exemple par un démon NTP) ou manuellement par l’administrateur système, " +"``False`` autrement" + +#: ../Doc/library/time.rst:251 +msgid "" +"*implementation*: The name of the underlying C function used to get the " +"clock value. Refer to :ref:`time-clock-id-constants` for possible values." +msgstr "" +"*implementation* : nom de la fonction C sous-jacente utilisée pour obtenir " +"la valeur d’horloge. Voir :ref:`time-clock-id-constants` pour les valeurs " +"possibles." + +#: ../Doc/library/time.rst:253 +msgid "" +"*monotonic*: ``True`` if the clock cannot go backward, ``False`` otherwise" +msgstr "" +"*monotonic* : ``True`` si l’horloge ne peut pas revenir en arrière, " +"``False`` autrement" + +#: ../Doc/library/time.rst:255 +msgid "*resolution*: The resolution of the clock in seconds (:class:`float`)" +msgstr "*resolution* : La résolution de l’horloge en secondes (:class:`float`)" + +#: ../Doc/library/time.rst:262 +msgid "" +"Convert a time expressed in seconds since the epoch to a :class:" +"`struct_time` in UTC in which the dst flag is always zero. If *secs* is not " +"provided or :const:`None`, the current time as returned by :func:`.time` is " +"used. Fractions of a second are ignored. See above for a description of " +"the :class:`struct_time` object. See :func:`calendar.timegm` for the inverse " +"of this function." +msgstr "" +"Convertit un temps exprimé en secondes depuis *epoch* en un :class:" +"`struct_time` au format UTC dans lequel le drapeau *dst* est toujours égal à " +"zéro. Si *secs* n’est pas fourni ou vaut :const:`None`, l’heure actuelle " +"renvoyée par :func:`.time` est utilisée. Les fractions de seconde sont " +"ignorées. Voir ci-dessus pour une description de l’objet :class:" +"`struct_time`. Voir :func:`calendar.timegm` pour l’inverse de cette fonction." + +#: ../Doc/library/time.rst:272 +msgid "" +"Like :func:`gmtime` but converts to local time. If *secs* is not provided " +"or :const:`None`, the current time as returned by :func:`.time` is used. " +"The dst flag is set to ``1`` when DST applies to the given time." +msgstr "" +"Comme :func:`gmtime` mais convertit le résultat en heure locale. Si *secs* " +"n’est pas fourni ou vaut :const:`None`, l’heure actuelle renvoyée par :func:" +"`.time` est utilisée. Le drapeau *dst* est mis à ``1`` lorsque l’heure d’été " +"s’applique à l’heure indiquée." + +#: ../Doc/library/time.rst:279 +msgid "" +"This is the inverse function of :func:`localtime`. Its argument is the :" +"class:`struct_time` or full 9-tuple (since the dst flag is needed; use " +"``-1`` as the dst flag if it is unknown) which expresses the time in *local* " +"time, not UTC. It returns a floating point number, for compatibility with :" +"func:`.time`. If the input value cannot be represented as a valid time, " +"either :exc:`OverflowError` or :exc:`ValueError` will be raised (which " +"depends on whether the invalid value is caught by Python or the underlying C " +"libraries). The earliest date for which it can generate a time is platform-" +"dependent." +msgstr "" +"C’est la fonction inverse de :func:`localtime`. Son argument est soit un :" +"class:`struct_time` soit un 9-tuple (puisque le drapeau *dst* est " +"nécessaire ; utilisez ``-1`` comme drapeau *dst* s’il est inconnu) qui " +"exprime le temps **local**, pas UTC. Il retourne un nombre à virgule " +"flottante, pour compatibilité avec :func:`.time`. Si la valeur d’entrée ne " +"peut pas être représentée comme une heure valide, soit :exc:`OverflowError` " +"ou :exc:`ValueError` sera levée (selon que la valeur non valide est " +"interceptée par Python ou par les bibliothèque C sous-jacentes). La date la " +"plus proche pour laquelle il peut générer une heure dépend de la plate-forme." + +#: ../Doc/library/time.rst:291 +msgid "" +"Return the value (in fractional seconds) of a monotonic clock, i.e. a clock " +"that cannot go backwards. The clock is not affected by system clock " +"updates. The reference point of the returned value is undefined, so that " +"only the difference between the results of consecutive calls is valid." +msgstr "" +"Renvoie la valeur (en quelques fractions de secondes) d’une horloge " +"monotone, c’est-à-dire une horloge qui ne peut pas revenir en arrière. " +"L’horloge n’est pas affectée par les mises à jour de l’horloge système. Le " +"point de référence de la valeur renvoyée n’est pas défini, de sorte que " +"seule la différence entre les résultats d’appels consécutifs est valide." + +#: ../Doc/library/time.rst:297 +msgid "The function is now always available and always system-wide." +msgstr "" +"La fonction est maintenant toujours disponible et toujours à l’échelle du " +"système." + +#: ../Doc/library/time.rst:303 +msgid "Similar to :func:`monotonic`, but return time as nanoseconds." +msgstr "" +"Similaire à :func:`monotonique`, mais le temps de retour est exprimé en " +"nanosecondes." + +#: ../Doc/library/time.rst:312 +msgid "" +"Return the value (in fractional seconds) of a performance counter, i.e. a " +"clock with the highest available resolution to measure a short duration. It " +"does include time elapsed during sleep and is system-wide. The reference " +"point of the returned value is undefined, so that only the difference " +"between the results of consecutive calls is valid." +msgstr "" +"Renvoie la valeur (en quelques fractions de secondes) d’un compteur de " +"performance, c’est-à-dire une horloge avec la résolution disponible la plus " +"élevée possible pour mesurer une courte durée. Cela inclut le temps écoulé " +"pendant le sommeil et concerne l’ensemble du système. Le point de référence " +"de la valeur renvoyée n’est pas défini, de sorte que seule la différence " +"entre les résultats d’appels consécutifs est valide." + +#: ../Doc/library/time.rst:322 +msgid "Similar to :func:`perf_counter`, but return time as nanoseconds." +msgstr "" +"Similaire à :func:`perf_counter`, mais renvoie le temps en nanosecondes." + +#: ../Doc/library/time.rst:334 +msgid "" +"Return the value (in fractional seconds) of the sum of the system and user " +"CPU time of the current process. It does not include time elapsed during " +"sleep. It is process-wide by definition. The reference point of the " +"returned value is undefined, so that only the difference between the results " +"of consecutive calls is valid." +msgstr "" +"Renvoie la valeur (en quelques fractions de secondes) de la somme des temps " +"système et utilisateur du processus en cours. Il ne comprend pas le temps " +"écoulé pendant le sommeil. C’est un processus par définition. Le point de " +"référence de la valeur renvoyée n’est pas défini, de sorte que seule la " +"différence entre les résultats d’appels consécutifs est valide." + +#: ../Doc/library/time.rst:344 +msgid "Similar to :func:`process_time` but return time as nanoseconds." +msgstr "" +"Similaire à :func:`process_time` mais renvoie le temps en nanosecondes." + +#: ../Doc/library/time.rst:350 +msgid "" +"Suspend execution of the calling thread for the given number of seconds. The " +"argument may be a floating point number to indicate a more precise sleep " +"time. The actual suspension time may be less than that requested because any " +"caught signal will terminate the :func:`sleep` following execution of that " +"signal's catching routine. Also, the suspension time may be longer than " +"requested by an arbitrary amount because of the scheduling of other activity " +"in the system." +msgstr "" +"Suspend l’exécution du thread appelant pendant le nombre de secondes " +"indiqué. L’argument peut être un nombre à virgule flottante pour indiquer un " +"temps de sommeil plus précis. Le temps de suspension réel peut être " +"inférieur à celui demandé, car tout signal capturé mettra fin à la commande :" +"func:`sleep` après l’exécution de la routine de capture de ce signal. En " +"outre, le temps de suspension peut être plus long que celui demandé par un " +"montant arbitraire en raison de la planification d’une autre activité dans " +"le système." + +#: ../Doc/library/time.rst:358 +msgid "" +"The function now sleeps at least *secs* even if the sleep is interrupted by " +"a signal, except if the signal handler raises an exception (see :pep:`475` " +"for the rationale)." +msgstr "" +"La fonction dort maintenant au moins *secondes* même si le sommeil est " +"interrompu par un signal, sauf si le gestionnaire de signaux lève une " +"exception (voir :pep:`475` pour la justification)." + +#: ../Doc/library/time.rst:369 +msgid "" +"Convert a tuple or :class:`struct_time` representing a time as returned by :" +"func:`gmtime` or :func:`localtime` to a string as specified by the *format* " +"argument. If *t* is not provided, the current time as returned by :func:" +"`localtime` is used. *format* must be a string. :exc:`ValueError` is " +"raised if any field in *t* is outside of the allowed range." +msgstr "" +"Convertit un *tuple* ou :class:`struct_time` représentant une heure renvoyée " +"par :func:`gmtime` ou :func:`localtime` en une chaîne spécifiée par " +"l’argument *format*. Si *t* n’est pas fourni, l’heure actuelle renvoyée par :" +"func:`localtime` est utilisée. *format* doit être une chaîne. Si l’un des " +"champs de *t* se situe en dehors de la plage autorisée, une :exc:" +"`ValueError` est levée ." + +#: ../Doc/library/time.rst:375 +msgid "" +"0 is a legal argument for any position in the time tuple; if it is normally " +"illegal the value is forced to a correct one." +msgstr "" +"0 est un argument légal pour toute position dans le *tuple* temporel ; s’il " +"est normalement illégal, la valeur est forcée à une valeur correcte." + +#: ../Doc/library/time.rst:378 +msgid "" +"The following directives can be embedded in the *format* string. They are " +"shown without the optional field width and precision specification, and are " +"replaced by the indicated characters in the :func:`strftime` result:" +msgstr "" +"Les directives suivantes peuvent être incorporées dans la chaîne *format*. " +"Ils sont affichés sans la spécification facultative de largeur de champ ni " +"de précision, et sont remplacés par les caractères indiqués dans le résultat " +"de :func:`strftime` :" + +#: ../Doc/library/time.rst:383 +msgid "Directive" +msgstr "Directive" + +#: ../Doc/library/time.rst:383 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/time.rst:383 +msgid "Notes" +msgstr "Notes" + +#: ../Doc/library/time.rst:385 +msgid "``%a``" +msgstr "``%a``" + +#: ../Doc/library/time.rst:385 +msgid "Locale's abbreviated weekday name." +msgstr "Nom abrégé du jour de la semaine selon les paramètres régionaux." + +#: ../Doc/library/time.rst:388 +msgid "``%A``" +msgstr "``%A``" + +#: ../Doc/library/time.rst:388 +msgid "Locale's full weekday name." +msgstr "Le nom de semaine complet de la région." + +#: ../Doc/library/time.rst:390 +msgid "``%b``" +msgstr "``%b``" + +#: ../Doc/library/time.rst:390 +msgid "Locale's abbreviated month name." +msgstr "Nom abrégé du mois de la région." + +#: ../Doc/library/time.rst:393 +msgid "``%B``" +msgstr "``%B``" + +#: ../Doc/library/time.rst:393 +msgid "Locale's full month name." +msgstr "Nom complet du mois de la région." + +#: ../Doc/library/time.rst:395 +msgid "``%c``" +msgstr "``%c``" + +#: ../Doc/library/time.rst:395 +msgid "Locale's appropriate date and time representation." +msgstr "" +"Représentation appropriée de la date et de l’heure selon les paramètres " +"régionaux." + +#: ../Doc/library/time.rst:398 +msgid "``%d``" +msgstr "``%d``" + +#: ../Doc/library/time.rst:398 +msgid "Day of the month as a decimal number [01,31]." +msgstr "Jour du mois sous forme décimale [01,31]." + +#: ../Doc/library/time.rst:401 +msgid "``%H``" +msgstr "``%H``" + +#: ../Doc/library/time.rst:401 +msgid "Hour (24-hour clock) as a decimal number [00,23]." +msgstr "Heure (horloge sur 24 heures) sous forme de nombre décimal [00,23]." + +#: ../Doc/library/time.rst:404 +msgid "``%I``" +msgstr "``%I``" + +#: ../Doc/library/time.rst:404 +msgid "Hour (12-hour clock) as a decimal number [01,12]." +msgstr "Heure (horloge sur 12 heures) sous forme de nombre décimal [01,12]." + +#: ../Doc/library/time.rst:407 +msgid "``%j``" +msgstr "``%j``" + +#: ../Doc/library/time.rst:407 +msgid "Day of the year as a decimal number [001,366]." +msgstr "Jour de l’année sous forme de nombre décimal [001,366]." + +#: ../Doc/library/time.rst:410 +msgid "``%m``" +msgstr "``%m``" + +#: ../Doc/library/time.rst:410 +msgid "Month as a decimal number [01,12]." +msgstr "Mois sous forme décimale [01,12]." + +#: ../Doc/library/time.rst:413 +msgid "``%M``" +msgstr "``%M``" + +#: ../Doc/library/time.rst:413 +msgid "Minute as a decimal number [00,59]." +msgstr "Minutes sous forme décimale [00,59]." + +#: ../Doc/library/time.rst:416 +msgid "``%p``" +msgstr "``%p``" + +#: ../Doc/library/time.rst:416 +msgid "Locale's equivalent of either AM or PM." +msgstr "L’équivalent local de AM ou PM." + +#: ../Doc/library/time.rst:416 +msgid "\\(1)" +msgstr "\\(1)" + +#: ../Doc/library/time.rst:419 +msgid "``%S``" +msgstr "``%S``" + +#: ../Doc/library/time.rst:419 +msgid "Second as a decimal number [00,61]." +msgstr "Deuxième sous forme de nombre décimal [00,61]." + +#: ../Doc/library/time.rst:419 +msgid "\\(2)" +msgstr "\\(2)" + +#: ../Doc/library/time.rst:422 +msgid "``%U``" +msgstr "``%U``" + +#: ../Doc/library/time.rst:422 +msgid "" +"Week number of the year (Sunday as the first day of the week) as a decimal " +"number [00,53]. All days in a new year preceding the first Sunday are " +"considered to be in week 0." +msgstr "" +"Numéro de semaine de l’année (dimanche en tant que premier jour de la " +"semaine) sous forme décimale [00,53]. Tous les jours d’une nouvelle année " +"précédant le premier dimanche sont considérés comme appartenant à la semaine " +"0." + +#: ../Doc/library/time.rst:422 ../Doc/library/time.rst:433 +msgid "\\(3)" +msgstr "\\(3)" + +#: ../Doc/library/time.rst:430 +msgid "``%w``" +msgstr "``%w``" + +#: ../Doc/library/time.rst:430 +msgid "Weekday as a decimal number [0(Sunday),6]." +msgstr "Jour de la semaine sous forme de nombre décimal [0 (dimanche), 6]." + +#: ../Doc/library/time.rst:433 +msgid "``%W``" +msgstr "``%W``" + +#: ../Doc/library/time.rst:433 +msgid "" +"Week number of the year (Monday as the first day of the week) as a decimal " +"number [00,53]. All days in a new year preceding the first Monday are " +"considered to be in week 0." +msgstr "" +"Numéro de semaine de l’année (lundi comme premier jour de la semaine) sous " +"forme décimale [00,53]. Tous les jours d’une nouvelle année précédant le " +"premier lundi sont considérés comme appartenant à la semaine 0." + +#: ../Doc/library/time.rst:441 +msgid "``%x``" +msgstr "``%x``" + +#: ../Doc/library/time.rst:441 +msgid "Locale's appropriate date representation." +msgstr "Représentation de la date appropriée par les paramètres régionaux." + +#: ../Doc/library/time.rst:444 +msgid "``%X``" +msgstr "``%X``" + +#: ../Doc/library/time.rst:444 +msgid "Locale's appropriate time representation." +msgstr "Représentation locale de l'heure." + +#: ../Doc/library/time.rst:447 +msgid "``%y``" +msgstr "``%y``" + +#: ../Doc/library/time.rst:447 +msgid "Year without century as a decimal number [00,99]." +msgstr "Année sans siècle comme un nombre décimal [00, 99]." + +#: ../Doc/library/time.rst:450 +msgid "``%Y``" +msgstr "``%Y``" + +#: ../Doc/library/time.rst:450 +msgid "Year with century as a decimal number." +msgstr "Année complète sur quatre chiffres." + +#: ../Doc/library/time.rst:453 +msgid "``%z``" +msgstr "``%z``" + +#: ../Doc/library/time.rst:453 +msgid "" +"Time zone offset indicating a positive or negative time difference from UTC/" +"GMT of the form +HHMM or -HHMM, where H represents decimal hour digits and M " +"represents decimal minute digits [-23:59, +23:59]." +msgstr "" +"Décalage de fuseau horaire indiquant une différence de temps positive ou " +"négative par rapport à UTC / GMT de la forme *+HHMM* ou *-HHMM*, où H " +"représente les chiffres des heures décimales et M, les chiffres des minutes " +"décimales [*-23:59*, *+23:59*]." + +#: ../Doc/library/time.rst:459 +msgid "``%Z``" +msgstr "``%Z``" + +#: ../Doc/library/time.rst:459 +msgid "Time zone name (no characters if no time zone exists)." +msgstr "" +"Nom du fuseau horaire (pas de caractères s’il n’y a pas de fuseau horaire)." + +#: ../Doc/library/time.rst:462 +msgid "``%%``" +msgstr "``%%``" + +#: ../Doc/library/time.rst:462 +msgid "A literal ``'%'`` character." +msgstr "Un caractère ``'%'`` littéral." + +#: ../Doc/library/time.rst:465 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/library/time.rst:468 +msgid "" +"When used with the :func:`strptime` function, the ``%p`` directive only " +"affects the output hour field if the ``%I`` directive is used to parse the " +"hour." +msgstr "" +"Lorsqu’elle est utilisée avec la fonction :func:`strptime`, la directive ``" +"%p`` n’affecte le champ d’heure en sortie que si la directive ``%I`` est " +"utilisée pour analyser l’heure." + +#: ../Doc/library/time.rst:472 +msgid "" +"The range really is ``0`` to ``61``; value ``60`` is valid in timestamps " +"representing `leap seconds`_ and value ``61`` is supported for historical " +"reasons." +msgstr "" +"La plage est en réalité de ``0`` à ``61`` ; La valeur ``60`` est valide dans " +"les *timestamps* représentant des `leap seconds`_ et la valeur ``61`` est " +"prise en charge pour des raisons historiques." + +#: ../Doc/library/time.rst:477 +msgid "" +"When used with the :func:`strptime` function, ``%U`` and ``%W`` are only " +"used in calculations when the day of the week and the year are specified." +msgstr "" +"Lorsqu’elles sont utilisées avec la fonction :func:`strptime`, ``%U`` et ``" +"%W`` ne sont utilisées que dans les calculs lorsque le jour de la semaine et " +"l’année sont spécifiés." + +#: ../Doc/library/time.rst:480 +msgid "" +"Here is an example, a format for dates compatible with that specified in " +"the :rfc:`2822` Internet email standard. [#]_ ::" +msgstr "" +"Voici un exemple de format de date compatible avec celui spécifié dans la " +"norme de courrier électronique Internet suivante :rfc:`2822`. [#]_ ::" + +#: ../Doc/library/time.rst:487 +msgid "" +"Additional directives may be supported on certain platforms, but only the " +"ones listed here have a meaning standardized by ANSI C. To see the full set " +"of format codes supported on your platform, consult the :manpage:" +"`strftime(3)` documentation." +msgstr "" +"Des directives supplémentaires peuvent être prises en charge sur certaines " +"plates-formes, mais seules celles énumérées ici ont une signification " +"normalisée par ANSI C. Pour voir la liste complète des codes de format pris " +"en charge sur votre plate-forme, consultez la documentation :manpage:" +"`strftime(3)`." + +#: ../Doc/library/time.rst:492 +msgid "" +"On some platforms, an optional field width and precision specification can " +"immediately follow the initial ``'%'`` of a directive in the following " +"order; this is also not portable. The field width is normally 2 except for ``" +"%j`` where it is 3." +msgstr "" +"Sur certaines plates-formes, une spécification facultative de largeur et de " +"précision de champ peut suivre immédiatement le ``'%'`` initial d’une " +"directive dans l’ordre suivant ; ce n’est pas non plus portable. La largeur " +"du champ est normalement 2 sauf pour ``%j`` où il est 3." + +#: ../Doc/library/time.rst:503 +msgid "" +"Parse a string representing a time according to a format. The return value " +"is a :class:`struct_time` as returned by :func:`gmtime` or :func:`localtime`." +msgstr "" +"Analyse une chaîne représentant une heure selon un format. La valeur " +"renvoyée est une :class:`struct_time` tel que renvoyé par :func:`gmtime` ou :" +"func:`localtime`." + +#: ../Doc/library/time.rst:507 +msgid "" +"The *format* parameter uses the same directives as those used by :func:" +"`strftime`; it defaults to ``\"%a %b %d %H:%M:%S %Y\"`` which matches the " +"formatting returned by :func:`ctime`. If *string* cannot be parsed according " +"to *format*, or if it has excess data after parsing, :exc:`ValueError` is " +"raised. The default values used to fill in any missing data when more " +"accurate values cannot be inferred are ``(1900, 1, 1, 0, 0, 0, 0, 1, -1)``. " +"Both *string* and *format* must be strings." +msgstr "" +"Le paramètre *format* utilise les mêmes directives que celles utilisées par :" +"func:`strftime`; La valeur par défaut est ``\"%a %b %d %H:%M:%S %Y\"`` qui " +"correspond à la mise en forme renvoyée par :func:`ctime`. Si *string* ne " +"peut pas être analysé selon *format*, ou s’il contient trop de données après " +"l’analyse, une exception :exc:`ValueError` est levée. Les valeurs par défaut " +"utilisées pour renseigner les données manquantes lorsque des valeurs plus " +"précises ne peuvent pas être inférées sont ``(1900, 1, 1, 0, 0, 0, 0, 1, " +"-1)``. *string* et *format* doivent être des chaînes." + +#: ../Doc/library/time.rst:515 +msgid "For example:" +msgstr "Par exemple :" + +#: ../Doc/library/time.rst:522 +msgid "" +"Support for the ``%Z`` directive is based on the values contained in " +"``tzname`` and whether ``daylight`` is true. Because of this, it is " +"platform-specific except for recognizing UTC and GMT which are always known " +"(and are considered to be non-daylight savings timezones)." +msgstr "" +"La prise en charge de la directive ``%Z`` est basée sur les valeurs " +"contenues dans ``tzname`` et sur le fait de savoir si ``daylight`` est vrai. " +"Pour cette raison, il est spécifique à la plate-forme, à l’exception de la " +"reconnaissance des heures UTC et GMT, qui sont toujours connues (et " +"considérées comme des fuseaux horaires ne respectant pas l’heure d’été)." + +#: ../Doc/library/time.rst:527 +msgid "" +"Only the directives specified in the documentation are supported. Because " +"``strftime()`` is implemented per platform it can sometimes offer more " +"directives than those listed. But ``strptime()`` is independent of any " +"platform and thus does not necessarily support all directives available that " +"are not documented as supported." +msgstr "" +"Seules les directives spécifiées dans la documentation sont prises en " +"charge. Parce que ``strftime()`` peut être implémenté différemment sur " +"chaque plate-forme, il peut parfois offrir plus de directives que celles " +"listées. Mais ``strptime()`` est indépendant de toute plate-forme et ne " +"supporte donc pas nécessairement toutes les directives disponibles qui ne " +"sont pas documentées comme gérées." + +#: ../Doc/library/time.rst:536 +msgid "" +"The type of the time value sequence returned by :func:`gmtime`, :func:" +"`localtime`, and :func:`strptime`. It is an object with a :term:`named " +"tuple` interface: values can be accessed by index and by attribute name. " +"The following values are present:" +msgstr "" +"Le type de la séquence de valeur temporelle renvoyé par :func:`gmtime`, :" +"func:`localtime` et :func:`strptime`. Semblable à un :term:`named tuple` : " +"ses valeurs sont accessibles par index et par nom d’attribut. Les valeurs " +"suivantes sont présentes :" + +#: ../Doc/library/time.rst:542 +msgid "Index" +msgstr "Index" + +#: ../Doc/library/time.rst:542 +msgid "Attribute" +msgstr "Attribut" + +#: ../Doc/library/time.rst:542 +msgid "Values" +msgstr "Valeurs" + +#: ../Doc/library/time.rst:544 +msgid "0" +msgstr "0" + +#: ../Doc/library/time.rst:544 +msgid ":attr:`tm_year`" +msgstr ":attr:`tm_year`" + +#: ../Doc/library/time.rst:544 +msgid "(for example, 1993)" +msgstr "(par exemple, 1993)" + +#: ../Doc/library/time.rst:546 +msgid "1" +msgstr "1" + +#: ../Doc/library/time.rst:546 +msgid ":attr:`tm_mon`" +msgstr ":attr:`tm_mon`" + +#: ../Doc/library/time.rst:546 +msgid "range [1, 12]" +msgstr "plage [1, 12]" + +#: ../Doc/library/time.rst:548 +msgid "2" +msgstr "2" + +#: ../Doc/library/time.rst:548 +msgid ":attr:`tm_mday`" +msgstr ":attr:`tm_mday`" + +#: ../Doc/library/time.rst:548 +msgid "range [1, 31]" +msgstr "plage [1, 31]" + +#: ../Doc/library/time.rst:550 +msgid "3" +msgstr "3" + +#: ../Doc/library/time.rst:550 +msgid ":attr:`tm_hour`" +msgstr ":attr:`tm_hour`" + +#: ../Doc/library/time.rst:550 +msgid "range [0, 23]" +msgstr "plage [0, 23]" + +#: ../Doc/library/time.rst:552 +msgid "4" +msgstr "4" + +#: ../Doc/library/time.rst:552 +msgid ":attr:`tm_min`" +msgstr ":attr:`tm_min`" + +#: ../Doc/library/time.rst:552 +msgid "range [0, 59]" +msgstr "plage [0, 59]" + +#: ../Doc/library/time.rst:554 +msgid "5" +msgstr "5" + +#: ../Doc/library/time.rst:554 +msgid ":attr:`tm_sec`" +msgstr ":attr:`tm_sec`" + +#: ../Doc/library/time.rst:554 +msgid "range [0, 61]; see **(2)** in :func:`strftime` description" +msgstr "plage [0, 61]; voir **(2)** dans la description :func:`strftime`" + +#: ../Doc/library/time.rst:557 +msgid "6" +msgstr "6" + +#: ../Doc/library/time.rst:557 +msgid ":attr:`tm_wday`" +msgstr ":attr:`tm_wday`" + +#: ../Doc/library/time.rst:557 +msgid "range [0, 6], Monday is 0" +msgstr "plage [0, 6], Lundi valant 0" + +#: ../Doc/library/time.rst:559 +msgid "7" +msgstr "7" + +#: ../Doc/library/time.rst:559 +msgid ":attr:`tm_yday`" +msgstr ":attr:`tm_yday`" + +#: ../Doc/library/time.rst:559 +msgid "range [1, 366]" +msgstr "plage [1, 366]" + +#: ../Doc/library/time.rst:561 +msgid "8" +msgstr "8" + +#: ../Doc/library/time.rst:561 +msgid ":attr:`tm_isdst`" +msgstr ":attr:`tm_isdst`" + +#: ../Doc/library/time.rst:561 +msgid "0, 1 or -1; see below" +msgstr "``0``, ``1`` or ``-1`` ; voir en bas" + +#: ../Doc/library/time.rst:563 ../Doc/library/time.rst:565 +msgid "N/A" +msgstr "N/A" + +#: ../Doc/library/time.rst:563 +msgid ":attr:`tm_zone`" +msgstr ":attr:`tm_zone`" + +#: ../Doc/library/time.rst:563 +msgid "abbreviation of timezone name" +msgstr "abréviation du nom du fuseau horaire" + +#: ../Doc/library/time.rst:565 +msgid ":attr:`tm_gmtoff`" +msgstr ":attr:`tm_gmtoff`" + +#: ../Doc/library/time.rst:565 +msgid "offset east of UTC in seconds" +msgstr "décalage à l’est de UTC en secondes" + +#: ../Doc/library/time.rst:568 +msgid "" +"Note that unlike the C structure, the month value is a range of [1, 12], not " +"[0, 11]." +msgstr "" +"Notez que contrairement à la structure C, la valeur du mois est une plage de " +"[1, 12], pas de [0, 11]." + +#: ../Doc/library/time.rst:571 +msgid "" +"In calls to :func:`mktime`, :attr:`tm_isdst` may be set to 1 when daylight " +"savings time is in effect, and 0 when it is not. A value of -1 indicates " +"that this is not known, and will usually result in the correct state being " +"filled in." +msgstr "" +"Dans les appels à :func:`mktime`, :attr:`tm_isdst` peut être défini sur 1 " +"lorsque l’heure d'été est en vigueur et sur 0 lorsque ce n’est pas le cas. " +"Une valeur de ``-1`` indique que cela n’est pas connu et entraînera " +"généralement le remplissage de l’état correct." + +#: ../Doc/library/time.rst:575 +msgid "" +"When a tuple with an incorrect length is passed to a function expecting a :" +"class:`struct_time`, or having elements of the wrong type, a :exc:" +"`TypeError` is raised." +msgstr "" +"Lorsqu’un *tuple* de longueur incorrecte est passé à une fonction acceptant " +"une :class:`struct_time`, ou comportant des éléments de type incorrect, une " +"exception :exc:`TypeError` est levé." + +#: ../Doc/library/time.rst:581 +msgid "" +"Return the time in seconds since the epoch_ as a floating point number. The " +"specific date of the epoch and the handling of `leap seconds`_ is platform " +"dependent. On Windows and most Unix systems, the epoch is January 1, 1970, " +"00:00:00 (UTC) and leap seconds are not counted towards the time in seconds " +"since the epoch. This is commonly referred to as `Unix time `_. To find out what the epoch is on a given " +"platform, look at ``gmtime(0)``." +msgstr "" +"Renvoie le temps en secondes depuis epoch_ sous forme de nombre à virgule " +"flottante. La date spécifique de *epoch* et le traitement des secondes " +"intercalaires (`leap seconds`_) dépendent de la plate-forme. Sous Windows et " +"la plupart des systèmes Unix, *epoch* est le 1er janvier 1970, 00:00:00 " +"(UTC) et les secondes intercalaires ne sont pas comptées dans le temps en " +"secondes depuis *epoch*. Ceci est communément appelé `Heure Unix `_. Pour savoir quelle est *epoch* sur une " +"plate-forme donnée, consultez ``gmtime(0)``." + +#: ../Doc/library/time.rst:591 +msgid "" +"Note that even though the time is always returned as a floating point " +"number, not all systems provide time with a better precision than 1 second. " +"While this function normally returns non-decreasing values, it can return a " +"lower value than a previous call if the system clock has been set back " +"between the two calls." +msgstr "" +"Notez que même si l’heure est toujours renvoyée sous forme de nombre à " +"virgule flottante, tous les systèmes ne fournissent pas l’heure avec une " +"précision supérieure à 1 seconde. Bien que cette fonction renvoie " +"normalement des valeurs croissantes, elle peut renvoyer une valeur " +"inférieure à celle d’un appel précédent si l’horloge système a été réglée " +"entre les deux appels." + +#: ../Doc/library/time.rst:597 +msgid "" +"The number returned by :func:`.time` may be converted into a more common " +"time format (i.e. year, month, day, hour, etc...) in UTC by passing it to :" +"func:`gmtime` function or in local time by passing it to the :func:" +"`localtime` function. In both cases a :class:`struct_time` object is " +"returned, from which the components of the calendar date may be accessed as " +"attributes." +msgstr "" +"Le nombre renvoyé par :func:`.time` peut être converti en un format d’heure " +"plus courant (année, mois, jour, heure, etc.) en UTC en le transmettant à la " +"fonction :func:`gmtime` ou dans heure locale en le transmettant à la " +"fonction :func:`localtime`. Dans les deux cas, un objet :class:`struct_time` " +"est renvoyé, à partir duquel les composants de la date du calendrier peuvent " +"être consultés en tant qu’attributs." + +#: ../Doc/library/time.rst:612 +msgid "" +"Return the value (in fractional seconds) of the sum of the system and user " +"CPU time of the current thread. It does not include time elapsed during " +"sleep. It is thread-specific by definition. The reference point of the " +"returned value is undefined, so that only the difference between the results " +"of consecutive calls in the same thread is valid." +msgstr "" +"Renvoie la valeur (en quelques fractions de secondes) de la somme des temps " +"processeur système et utilisateur du thread en cours. Il ne comprend pas le " +"temps écoulé pendant le sommeil. Il est spécifique au thread par définition. " +"Le point de référence de la valeur renvoyée est indéfini, de sorte que seule " +"la différence entre les résultats d’appels consécutifs dans le même thread " +"est valide." + +#: ../Doc/library/time.rst:620 +msgid "" +":ref:`Availability `: Windows, Linux, Unix systems supporting " +"``CLOCK_THREAD_CPUTIME_ID``." +msgstr "" +":ref:`Disponibilité ` : Systèmes Windows, Linux, Unix prenant " +"en charge ``CLOCK_THREAD_CPUTIME_ID``." + +#: ../Doc/library/time.rst:626 +msgid "Similar to :func:`thread_time` but return time as nanoseconds." +msgstr "Similaire à :func:`thread_time` mais renvoie le temps en nanosecondes." + +#: ../Doc/library/time.rst:633 +msgid "" +"Similar to :func:`time` but returns time as an integer number of nanoseconds " +"since the epoch_." +msgstr "" +"Similaire à :func:`time` mais renvoie le temps sous forme de nombre entier " +"de nanosecondes depuis epoch_." + +#: ../Doc/library/time.rst:640 +msgid "" +"Reset the time conversion rules used by the library routines. The " +"environment variable :envvar:`TZ` specifies how this is done. It will also " +"set the variables ``tzname`` (from the :envvar:`TZ` environment variable), " +"``timezone`` (non-DST seconds West of UTC), ``altzone`` (DST seconds west of " +"UTC) and ``daylight`` (to 0 if this timezone does not have any daylight " +"saving time rules, or to nonzero if there is a time, past, present or future " +"when daylight saving time applies)." +msgstr "" +"Réinitialise les règles de conversion de temps utilisées par les routines de " +"la bibliothèque. La variable d’environnement :envvar:`TZ` spécifie comment " +"cela est effectué. La fonction définira également les variables ``tzname`` " +"(à partir de la variable d’environnement :envvar:`TZ`), ``timezone`` " +"(secondes non DST à l’ouest de l’UTC), ``altzone`` (secondes DST à l’ouest " +"de UTC) et ``daylight`` (à 0 si ce fuseau horaire ne comporte aucune règle " +"d’heure d’été, ou non nul s’il existe une heure, passée, présente ou future " +"lorsque l’heure d’été est appliquée)." + +#: ../Doc/library/time.rst:652 +msgid "" +"Although in many cases, changing the :envvar:`TZ` environment variable may " +"affect the output of functions like :func:`localtime` without calling :func:" +"`tzset`, this behavior should not be relied on." +msgstr "" +"Bien que dans de nombreux cas, la modification de la variable " +"d’environnement :envvar:`TZ` puisse affecter la sortie de fonctions telles " +"que :func:`localtime` sans appeler :func:`tzset`, ce comportement n'est pas " +"garanti." + +#: ../Doc/library/time.rst:656 +msgid "The :envvar:`TZ` environment variable should contain no whitespace." +msgstr "" +"La variable d’environnement :envvar:`TZ` ne doit contenir aucun espace." + +#: ../Doc/library/time.rst:658 +msgid "" +"The standard format of the :envvar:`TZ` environment variable is (whitespace " +"added for clarity)::" +msgstr "" +"Le format standard de la variable d’environnement :envvar:`TZ` est (espaces " +"ajoutés pour plus de clarté) ::" + +#: ../Doc/library/time.rst:663 +msgid "Where the components are:" +msgstr "Où les composants sont :" + +#: ../Doc/library/time.rst:667 +msgid "``std`` and ``dst``" +msgstr "``std`` et ``dst``" + +#: ../Doc/library/time.rst:666 +msgid "" +"Three or more alphanumerics giving the timezone abbreviations. These will be " +"propagated into time.tzname" +msgstr "" +"Trois alphanumériques ou plus donnant les abréviations du fuseau horaire. " +"Ceux-ci seront propagés dans *time.tzname*" + +#: ../Doc/library/time.rst:673 +msgid "``offset``" +msgstr "``offset``" + +#: ../Doc/library/time.rst:670 +msgid "" +"The offset has the form: ``± hh[:mm[:ss]]``. This indicates the value added " +"the local time to arrive at UTC. If preceded by a '-', the timezone is east " +"of the Prime Meridian; otherwise, it is west. If no offset follows dst, " +"summer time is assumed to be one hour ahead of standard time." +msgstr "" +"Le décalage a la forme suivante : ``± hh[:mm[:ss]]``. Cela indique la valeur " +"ajoutée à l’heure locale pour arriver à UTC. S'il est précédé d’un ``'-'``, " +"le fuseau horaire est à l’est du Premier Méridien ; sinon, c’est l’ouest. Si " +"aucun décalage ne suit *dst*, l’heure d’été est supposée être en avance " +"d’une heure sur l’heure standard." + +#: ../Doc/library/time.rst:695 +msgid "``start[/time], end[/time]``" +msgstr "``start[/time], end[/time]``" + +#: ../Doc/library/time.rst:676 +msgid "" +"Indicates when to change to and back from DST. The format of the start and " +"end dates are one of the following:" +msgstr "" +"Indique quand passer à DST et en revenir. Le format des dates de début et de " +"fin est l’un des suivants :" + +#: ../Doc/library/time.rst:681 +msgid ":samp:`J{n}`" +msgstr ":samp:`J{n}`" + +#: ../Doc/library/time.rst:680 +msgid "" +"The Julian day *n* (1 <= *n* <= 365). Leap days are not counted, so in all " +"years February 28 is day 59 and March 1 is day 60." +msgstr "" +"Le jour Julien *n* (1 <= *n* <= 365). Les jours bissextiles ne sont pas " +"comptabilisés. Par conséquent, le 28 février est le 59\\ :sup:`e` jour et le " +"1\\ :sup:`er` Mars est le 60\\ :sup:`e` jour de toutes les années." + +#: ../Doc/library/time.rst:685 +msgid ":samp:`{n}`" +msgstr ":samp:`{n}`" + +#: ../Doc/library/time.rst:684 +msgid "" +"The zero-based Julian day (0 <= *n* <= 365). Leap days are counted, and it " +"is possible to refer to February 29." +msgstr "" +"Le jour Julien de base zéro (0 <= *n* <= 365). Les jours bissextiles sont " +"comptés et il est possible de se référer au 29 février." + +#: ../Doc/library/time.rst:692 +msgid ":samp:`M{m}.{n}.{d}`" +msgstr ":samp:`M{m}.{n}.{d}`" + +#: ../Doc/library/time.rst:688 +msgid "" +"The *d*'th day (0 <= *d* <= 6) of week *n* of month *m* of the year (1 <= " +"*n* <= 5, 1 <= *m* <= 12, where week 5 means \"the last *d* day in month *m*" +"\" which may occur in either the fourth or the fifth week). Week 1 is the " +"first week in which the *d*'th day occurs. Day zero is a Sunday." +msgstr "" +"Le *d* jour (0 <= *d* <= 6) de la semaine *n* du mois *m* de l’année (1 <= " +"*n* <= 5, 1 <= *m* <= 12, où semaine 5 signifie “le *dernier* jour du mois " +"*m*” pouvant se produire au cours de la quatrième ou de la cinquième " +"semaine). La semaine 1 est la première semaine au cours de laquelle le " +"*jour* se produit. Le jour zéro est un dimanche." + +#: ../Doc/library/time.rst:694 +msgid "" +"``time`` has the same format as ``offset`` except that no leading sign ('-' " +"or '+') is allowed. The default, if time is not given, is 02:00:00." +msgstr "" +"``time`` a le même format que ``offset`` sauf qu’aucun signe de direction " +"(``'-'`` ou ``'+'``) n’est autorisé. La valeur par défaut, si l’heure n’est " +"pas spécifiée, est 02:00:00." + +#: ../Doc/library/time.rst:708 +msgid "" +"On many Unix systems (including \\*BSD, Linux, Solaris, and Darwin), it is " +"more convenient to use the system's zoneinfo (:manpage:`tzfile(5)`) " +"database to specify the timezone rules. To do this, set the :envvar:`TZ` " +"environment variable to the path of the required timezone datafile, " +"relative to the root of the systems 'zoneinfo' timezone database, usually " +"located at :file:`/usr/share/zoneinfo`. For example, ``'US/Eastern'``, " +"``'Australia/Melbourne'``, ``'Egypt'`` or ``'Europe/Amsterdam'``. ::" +msgstr "" +"Sur de nombreux systèmes Unix (y compris \\*BSD, Linux, Solaris et Darwin), " +"il est plus pratique d’utiliser la base de données *zoneinfo* (:manpage:" +"`tzfile (5)`) du système pour spécifier les règles de fuseau horaire. Pour " +"ce faire, définissez la variable d’environnement :envvar:`TZ` sur le chemin " +"du fichier de fuseau horaire requis, par rapport à la racine de la base de " +"données du système *zoneinfo*, généralement situé à :file:`/usr/share/" +"zoneinfo`. Par exemple, ``'US/Eastern'``, ``'Australia/Melbourne'``, " +"``'Egypt'`` ou ``'Europe/Amsterdam'``. ::" + +#: ../Doc/library/time.rst:729 +msgid "Clock ID Constants" +msgstr "Constantes d’identification d’horloge" + +#: ../Doc/library/time.rst:731 +msgid "" +"These constants are used as parameters for :func:`clock_getres` and :func:" +"`clock_gettime`." +msgstr "" +"Ces constantes sont utilisées comme paramètres pour :func:`clock_getres` et :" +"func:`clock_gettime`." + +#: ../Doc/library/time.rst:736 +msgid "" +"Identical to :data:`CLOCK_MONOTONIC`, except it also includes any time that " +"the system is suspended." +msgstr "" +"Identique à :data:`CLOCK_MONOTONIC`, sauf qu'elle inclut également toute " +"suspension du système." + +#: ../Doc/library/time.rst:739 +msgid "" +"This allows applications to get a suspend-aware monotonic clock without " +"having to deal with the complications of :data:`CLOCK_REALTIME`, which may " +"have discontinuities if the time is changed using ``settimeofday()`` or " +"similar." +msgstr "" +"Cela permet aux applications d’obtenir une horloge monotone tenant compte de " +"la suspension sans avoir à gérer les complications de :data:" +"`CLOCK_REALTIME`, qui peuvent présenter des discontinuités si l’heure est " +"modifiée à l’aide de ``settimeofday()`` ou similaire." + +#: ../Doc/library/time.rst:745 +msgid ":ref:`Availability `: Linux 2.6.39 or later." +msgstr ":ref:`Disponibilité ` : Linux 2.6.39 et ultérieures." + +#: ../Doc/library/time.rst:751 +msgid "" +"The Solaris OS has a ``CLOCK_HIGHRES`` timer that attempts to use an optimal " +"hardware source, and may give close to nanosecond resolution. " +"``CLOCK_HIGHRES`` is the nonadjustable, high-resolution clock." +msgstr "" +"Le système d’exploitation Solaris dispose d’une horloge ``CLOCK_HIGHRES`` " +"qui tente d’utiliser une source matérielle optimale et peut donner une " +"résolution proche de la nanoseconde. ``CLOCK_HIGHRES`` est l’horloge haute " +"résolution non ajustable." + +#: ../Doc/library/time.rst:756 +msgid ":ref:`Availability `: Solaris." +msgstr ":ref:`Disponibilité ` : Solaris." + +#: ../Doc/library/time.rst:762 +msgid "" +"Clock that cannot be set and represents monotonic time since some " +"unspecified starting point." +msgstr "" +"Horloge qui ne peut pas être réglée et représente l’heure monotone depuis un " +"point de départ non spécifié." + +#: ../Doc/library/time.rst:772 +msgid "" +"Similar to :data:`CLOCK_MONOTONIC`, but provides access to a raw hardware-" +"based time that is not subject to NTP adjustments." +msgstr "" +"Similaire à :data:`CLOCK_MONOTONIC`, mais donne accès à une heure matérielle " +"brute qui n’est pas soumise aux ajustements NTP." + +#: ../Doc/library/time.rst:776 +msgid "" +":ref:`Availability `: Linux 2.6.28 and newer, macOS 10.12 and " +"newer." +msgstr "" +":ref:`Disponibilité `: Linux 2.6.28 et ultérieur, MacOS 10.12 " +"et ultérieur." + +#: ../Doc/library/time.rst:782 ../Doc/library/time.rst:791 +msgid "High-resolution per-process timer from the CPU." +msgstr "Minuterie haute résolution par processus du CPU." + +#: ../Doc/library/time.rst:794 +msgid "" +":ref:`Availability `: FreeBSD, NetBSD 7 or later, OpenBSD." +msgstr "" +":ref:`Disponibilité ` : FreeBSD, NetBSD 7 ou version " +"ultérieure, OpenBSD." + +#: ../Doc/library/time.rst:800 +msgid "Thread-specific CPU-time clock." +msgstr "Horloge de temps CPU spécifique au thread." + +#: ../Doc/library/time.rst:809 +msgid "" +"Time whose absolute value is the time the system has been running and not " +"suspended, providing accurate uptime measurement, both absolute and interval." +msgstr "" +"Heure dont la valeur absolue correspond à l’heure à laquelle le système a " +"été exécuté et non suspendu, fournissant une mesure précise du temps de " +"disponibilité, à la fois absolue et à intervalle." + +#: ../Doc/library/time.rst:814 +msgid ":ref:`Availability `: FreeBSD, OpenBSD 5.5 or later." +msgstr "" +":ref:`Disponibilité ` : FreeBSD, OpenBSD 5.5 ou version " +"ultérieure." + +#: ../Doc/library/time.rst:818 +msgid "" +"The following constant is the only parameter that can be sent to :func:" +"`clock_settime`." +msgstr "" +"La constante suivante est le seul paramètre pouvant être envoyé à :func:" +"`clock_settime`." + +#: ../Doc/library/time.rst:823 +msgid "" +"System-wide real-time clock. Setting this clock requires appropriate " +"privileges." +msgstr "" +"Horloge en temps réel à l’échelle du système. Le réglage de cette horloge " +"nécessite des privilèges appropriés." + +#: ../Doc/library/time.rst:834 +msgid "Timezone Constants" +msgstr "Constantes de fuseau horaire" + +#: ../Doc/library/time.rst:838 +msgid "" +"The offset of the local DST timezone, in seconds west of UTC, if one is " +"defined. This is negative if the local DST timezone is east of UTC (as in " +"Western Europe, including the UK). Only use this if ``daylight`` is " +"nonzero. See note below." +msgstr "" +"Décalage du fuseau horaire DST local, en secondes à l’ouest de UTC, s’il en " +"est défini un. Cela est négatif si le fuseau horaire DST local est à l’est " +"de UTC (comme en Europe occidentale, y compris le Royaume-Uni). Utilisez " +"ceci uniquement si ``daylight`` est différent de zéro. Voir note ci-dessous." + +#: ../Doc/library/time.rst:844 +msgid "Nonzero if a DST timezone is defined. See note below." +msgstr "Non nul si un fuseau horaire DST est défini. Voir note ci-dessous." + +#: ../Doc/library/time.rst:848 +msgid "" +"The offset of the local (non-DST) timezone, in seconds west of UTC (negative " +"in most of Western Europe, positive in the US, zero in the UK). See note " +"below." +msgstr "" +"Décalage du fuseau horaire local (hors heure d’été), en secondes à l’ouest " +"de l’UTC (négatif dans la plupart des pays d’Europe occidentale, positif aux " +"États-Unis, nul au Royaume-Uni). Voir note ci-dessous." + +#: ../Doc/library/time.rst:853 +msgid "" +"A tuple of two strings: the first is the name of the local non-DST timezone, " +"the second is the name of the local DST timezone. If no DST timezone is " +"defined, the second string should not be used. See note below." +msgstr "" +"Un *tuple* de deux chaînes : la première est le nom du fuseau horaire local " +"autre que DST, la seconde est le nom du fuseau horaire DST local. Si aucun " +"fuseau horaire DST n’est défini, la deuxième chaîne ne doit pas être " +"utilisée. Voir note ci-dessous." + +#: ../Doc/library/time.rst:859 +msgid "" +"For the above Timezone constants (:data:`altzone`, :data:`daylight`, :data:" +"`timezone`, and :data:`tzname`), the value is determined by the timezone " +"rules in effect at module load time or the last time :func:`tzset` is called " +"and may be incorrect for times in the past. It is recommended to use the :" +"attr:`tm_gmtoff` and :attr:`tm_zone` results from :func:`localtime` to " +"obtain timezone information." +msgstr "" +"Pour les constantes de fuseau horaire ci-dessus ( :data:`altzone`, :data:" +"`daylight`, :data:`timezone` et :data:`tzname`), la valeur est déterminée " +"par les règles de fuseau horaire en vigueur au moment du chargement du " +"module ou la dernière fois :func:`tzset` est appelé et peut être incorrect " +"pour des temps passés. Il est recommandé d’utiliser :attr:`tm_gmtoff` et :" +"attr:`tm_zone` résulte de :func:`localtime` pour obtenir des informations " +"sur le fuseau horaire." + +#: ../Doc/library/time.rst:869 +msgid "Module :mod:`datetime`" +msgstr "Module :mod:`datetime`" + +#: ../Doc/library/time.rst:869 +msgid "More object-oriented interface to dates and times." +msgstr "Interface plus orientée objet vers les dates et les heures." + +#: ../Doc/library/time.rst:873 +msgid "Module :mod:`locale`" +msgstr "Module :mod:`locale`" + +#: ../Doc/library/time.rst:872 +msgid "" +"Internationalization services. The locale setting affects the " +"interpretation of many format specifiers in :func:`strftime` and :func:" +"`strptime`." +msgstr "" +"Services d’internationalisation. Les paramètres régionaux affectent " +"l’interprétation de nombreux spécificateurs de format dans :func:`strftime` " +"et :func:`strptime`." + +#: ../Doc/library/time.rst:876 +msgid "Module :mod:`calendar`" +msgstr "Module :mod:`calendar`" + +#: ../Doc/library/time.rst:876 +msgid "" +"General calendar-related functions. :func:`~calendar.timegm` is the " +"inverse of :func:`gmtime` from this module." +msgstr "" +"Fonctions générales liées au calendrier. :func:`~calendar.timegm` est " +"l’inverse de :func:`gmtime` à partir de ce module." + +#: ../Doc/library/time.rst:880 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/time.rst:881 +msgid "" +"The use of ``%Z`` is now deprecated, but the ``%z`` escape that expands to " +"the preferred hour/minute offset is not supported by all ANSI C libraries. " +"Also, a strict reading of the original 1982 :rfc:`822` standard calls for a " +"two-digit year (%y rather than %Y), but practice moved to 4-digit years long " +"before the year 2000. After that, :rfc:`822` became obsolete and the 4-" +"digit year has been first recommended by :rfc:`1123` and then mandated by :" +"rfc:`2822`." +msgstr "" +"L'utilisation de ``%Z`` est maintenant obsolète, mais l'échappement ``%z`` " +"qui donne le décalage horaire jusqu'à la minute et dépendant des paramètres " +"régionaux n'est pas pris en charge par toutes les bibliothèques C ANSI. En " +"outre, une lecture stricte du standard :rfc:`822` de 1982 milite pour une " +"année à deux chiffres (%y plutôt que %Y), mais la pratique a migré vers des " +"années à 4 chiffres de long avant l'année 2000. Après cela, la :rfc:`822` " +"est devenue obsolète et l'année à 4 chiffres a été recommandée pour la " +"première fois par la :rfc:`1123` puis rendue obligatoire par la :rfc:`2822`." diff --git a/library/timeit.po b/library/timeit.po new file mode 100644 index 000000000..f690146e4 --- /dev/null +++ b/library/timeit.po @@ -0,0 +1,452 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-08-20 18:10+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/library/timeit.rst:2 +msgid ":mod:`timeit` --- Measure execution time of small code snippets" +msgstr ":mod:`timeit` — Mesurer le temps d'exécution de fragments de code" + +#: ../Doc/library/timeit.rst:7 +msgid "**Source code:** :source:`Lib/timeit.py`" +msgstr "**Code source :** :source:`Lib/timeit.py`" + +#: ../Doc/library/timeit.rst:15 +msgid "" +"This module provides a simple way to time small bits of Python code. It has " +"both a :ref:`timeit-command-line-interface` as well as a :ref:`callable " +"` one. It avoids a number of common traps for measuring " +"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 `. 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:23 +msgid "Basic Examples" +msgstr "Exemples simples" + +#: ../Doc/library/timeit.rst:25 +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:37 +msgid "This can be achieved from the :ref:`python-interface` with::" +msgstr "L':ref:`python-interface` peut être utilisée aux mêmes fins avec ::" + +#: ../Doc/library/timeit.rst:47 +msgid "A callable can also be passed from the :ref:`python-interface`::" +msgstr "" +"Un objet appelable peut également être passé en argument à l':ref:`python-" +"interface` ::" + +#: ../Doc/library/timeit.rst:52 +msgid "" +"Note however that :func:`.timeit` will automatically determine the number of " +"repetitions only when the command-line interface is used. In the :ref:" +"`timeit-examples` section you can find more advanced examples." +msgstr "" +"Notez cependant que :func:`.timeit` détermine automatiquement le nombre de " +"répétitions seulement lorsque l'interface en ligne de commande est utilisée. " +"Vous pouvez trouver des exemples d'usages avancés dans la section :ref:" +"`timeit-examples`." + +#: ../Doc/library/timeit.rst:60 +msgid "Python Interface" +msgstr "Interface Python" + +#: ../Doc/library/timeit.rst:62 +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:67 +msgid "" +"Create a :class:`Timer` instance with the given statement, *setup* code and " +"*timer* function and run its :meth:`.timeit` method with *number* " +"executions. The optional *globals* argument specifies a namespace in which " +"to execute the code." +msgstr "" +"Crée une instance d'objet :class:`Timer` à partir de l'instruction donnée, " +"du code *setup* et de la fonction *timer*, puis exécute sa méthode :meth:`." +"timeit` à *number* reprises. L'argument optionnel *globals* spécifie un " +"espace de nommage dans lequel exécuter le code." + +#: ../Doc/library/timeit.rst:72 ../Doc/library/timeit.rst:83 +#: ../Doc/library/timeit.rst:120 +msgid "The optional *globals* parameter was added." +msgstr "Le paramètre optionnel *globals* a été ajouté." + +#: ../Doc/library/timeit.rst:78 +msgid "" +"Create a :class:`Timer` instance with the given statement, *setup* code and " +"*timer* function and run its :meth:`.repeat` method with the given *repeat* " +"count and *number* executions. The optional *globals* argument specifies a " +"namespace in which to execute the code." +msgstr "" +"Crée une instance d'objet :class:`Timer` à partir de l'instruction donnée, " +"du code *setup* et de la fonction *timer*, puis exécute sa méthode :meth:`." +"repeat` à *number* reprises, *repeat* fois. L'argument optionnel *globals* " +"spécifie un espace de nommage dans lequel exécuter le code." + +#: ../Doc/library/timeit.rst:86 ../Doc/library/timeit.rst:181 +msgid "Default value of *repeat* changed from 3 to 5." +msgstr "La valeur par défaut de *repeat* est passée de 3 à 5." + +#: ../Doc/library/timeit.rst:91 +msgid "The default timer, which is always :func:`time.perf_counter`." +msgstr "Le minuteur par défaut, qui est toujours :func:`time.perf_counter`." + +#: ../Doc/library/timeit.rst:93 +msgid ":func:`time.perf_counter` is now the default timer." +msgstr ":func:`time.perf_counter` est désormais le minuteur par défaut." + +#: ../Doc/library/timeit.rst:99 +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:101 +msgid "" +"The constructor takes a statement to be timed, an additional statement used " +"for setup, and a timer function. Both statements default to ``'pass'``; the " +"timer function is platform-dependent (see the module doc string). *stmt* and " +"*setup* may also contain multiple statements separated by ``;`` or newlines, " +"as long as they don't contain multi-line string literals. The statement " +"will by default be executed within timeit's namespace; this behavior can be " +"controlled by passing a namespace to *globals*." +msgstr "" +"Ce constructeur prend en argument une instruction dont le temps d'exécution " +"doit être mesuré, une instruction additionnelle de mise en place et une " +"fonction de chronométrage. Les deux instructions valent ``'pass'`` par " +"défaut; la fonction de chronométrage dépend de la plateforme d'exécution (se " +"référer au *doc string* du module). *stmt* et *setup* peuvent contenir " +"plusieurs instructions séparées par des ``;`` ou des sauts de lignes tant " +"qu'ils ne comportent pas de littéraux sur plusieurs lignes. L'instruction " +"est exécutée dans l'espace de nommage de *timeit* par défaut ; ce " +"comportement peut être modifié en passant un espace de nommage au paramètre " +"*globals*." + +#: ../Doc/library/timeit.rst:109 +msgid "" +"To measure the execution time of the first statement, use the :meth:`." +"timeit` method. The :meth:`.repeat` and :meth:`.autorange` methods are " +"convenience methods to call :meth:`.timeit` multiple times." +msgstr "" +"Pour mesurer le temps d'exécution de la première instruction, utilisez la " +"méthode :meth:`.timeit`. Les méthodes :meth:`.repeat` et :meth:`.autorange` " +"sont des méthodes d'agrément permettant d'appeler :meth:`.timeit` à " +"plusieurs reprises." + +#: ../Doc/library/timeit.rst:113 +msgid "" +"The execution time of *setup* is excluded from the overall timed execution " +"run." +msgstr "" +"Le temps d'exécution de *setup* n'est pas pris en compte dans le temps " +"global d'exécution." + +#: ../Doc/library/timeit.rst:115 +msgid "" +"The *stmt* and *setup* parameters can also take objects that are callable " +"without arguments. This will embed calls to them in a timer function that " +"will then be executed by :meth:`.timeit`. Note that the timing overhead is " +"a little larger in this case because of the extra function calls." +msgstr "" +"Les paramètres *stmt* et *setup* peuvent également recevoir des objets " +"appelables sans argument. Ceci transforme alors les appels à ces objets en " +"fonction de chronométrage qui seront exécutées par :meth:`.timeit`. Notez " +"que le surcoût lié à la mesure du temps d'exécution dans ce cas est " +"légèrement supérieur en raisons des appels de fonction supplémentaires." + +#: ../Doc/library/timeit.rst:125 +msgid "" +"Time *number* executions of the main statement. This executes the setup " +"statement once, and then returns the time it takes to execute the main " +"statement a number of times, measured in seconds as a float. The argument is " +"the number of times through the loop, defaulting to one million. The main " +"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:134 +msgid "" +"By default, :meth:`.timeit` temporarily turns off :term:`garbage collection` " +"during the timing. The advantage of this approach is that it makes " +"independent timings more comparable. The disadvantage is that GC may be an " +"important component of the performance of the function being measured. If " +"so, GC can be re-enabled as the first statement in the *setup* string. For " +"example::" +msgstr "" +"Par défaut, :meth:`.timeit` désactive temporairement le :term:`ramasse-" +"miettes` pendant le chronométrage. Cette approche a l'avantage de permettre " +"de comparer des mesures indépendantes. L'inconvénient de cette méthode est " +"que le ramasse-miettes peut avoir un impact significatif sur les " +"performances de la fonction étudiée. Dans ce cas, le ramasse-miettes peut " +"être réactivé en première instruction de la chaîne *setup*. Par exemple ::" + +#: ../Doc/library/timeit.rst:146 +msgid "Automatically determine how many times to call :meth:`.timeit`." +msgstr "Détermine automatiquement combien de fois appeler :meth:`.timeit`." + +#: ../Doc/library/timeit.rst:148 +msgid "" +"This is a convenience function that calls :meth:`.timeit` repeatedly so that " +"the total time >= 0.2 second, returning the eventual (number of loops, time " +"taken for that number of loops). It calls :meth:`.timeit` with increasing " +"numbers from the sequence 1, 2, 5, 10, 20, 50, ... until the time taken is " +"at least 0.2 second." +msgstr "" +"Cette fonction d'agrément appelle :meth:`.timeit` à plusieurs reprises " +"jusqu'à ce que le temps total écoulé soit supérieur à 0,2 secondes et " +"renvoie le couple (nombre de boucles, temps nécessaire pour exécuter ce " +"nombre de boucles). Elle appelle :meth:`.timeit` avec un nombre d'itérations " +"croissant selon la séquence 1, 2, 5, 10, 20, 50, … jusqu'à ce que le temps " +"d'exécution dépasse 0,2 secondes." + +#: ../Doc/library/timeit.rst:154 +msgid "" +"If *callback* is given and is not ``None``, it will be called after each " +"trial with two arguments: ``callback(number, time_taken)``." +msgstr "" +"Si *callback* est spécifié et n'est pas ``None``, elle est appelée après " +"chaque itération avec deux arguments (numéro de l'itération et temps " +"écoulé) : ``callback(number, time_taken)``." + +#: ../Doc/library/timeit.rst:162 +msgid "Call :meth:`.timeit` a few times." +msgstr "Appelle :meth:`.timeit` plusieurs fois." + +#: ../Doc/library/timeit.rst:164 +msgid "" +"This is a convenience function that calls the :meth:`.timeit` repeatedly, " +"returning a list of results. The first argument specifies how many times to " +"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:171 +msgid "" +"It's tempting to calculate mean and standard deviation from the result " +"vector and report these. However, this is not very useful. In a typical " +"case, the lowest value gives a lower bound for how fast your machine can run " +"the given code snippet; higher values in the result vector are typically not " +"caused by variability in Python's speed, but by other processes interfering " +"with your timing accuracy. So the :func:`min` of the result is probably the " +"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:187 +#, fuzzy +msgid "Helper to print a traceback from the timed code." +msgstr "Outil permettant d'afficher la trace du code chronométré." + +#: ../Doc/library/timeit.rst:189 +msgid "Typical use::" +msgstr "Usage typique ::" + +#: ../Doc/library/timeit.rst:197 +msgid "" +"The advantage over the standard traceback is that source lines in the " +"compiled template will be displayed. The optional *file* argument directs " +"where the traceback is sent; it defaults to :data:`sys.stderr`." +msgstr "" +"L'avantage par rapport à la trace standard est que les lignes sources du " +"code compilé sont affichées. Le paramètre optionnel *file* définit l'endroit " +"où la trace est envoyée, par défaut :data:`sys.stderr`." + +#: ../Doc/library/timeit.rst:205 +msgid "Command-Line Interface" +msgstr "Interface en ligne de commande" + +#: ../Doc/library/timeit.rst:207 +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:211 +msgid "Where the following options are understood:" +msgstr "Les options suivantes sont gérées :" + +#: ../Doc/library/timeit.rst:217 +msgid "how many times to execute 'statement'" +msgstr "nombre d'exécutions de l'instruction *statement*" + +#: ../Doc/library/timeit.rst:221 +msgid "how many times to repeat the timer (default 5)" +msgstr "nombre de répétitions du chronomètre (5 par défaut)" + +#: ../Doc/library/timeit.rst:225 +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:229 +msgid "" +"measure process time, not wallclock time, using :func:`time.process_time` " +"instead of :func:`time.perf_counter`, which is the default" +msgstr "" +"mesure le temps au niveau du processus et non au niveau du système, en " +"utilisant :func:`time.process_time` plutôt que :func:`time.perf_counter` qui " +"est utilisée par défaut" + +#: ../Doc/library/timeit.rst:236 +msgid "" +"specify a time unit for timer output; can select nsec, usec, msec, or sec" +msgstr "" +"spécifie l'unité de temps utilisée pour la sortie du chronomètre (parmi " +"*nsec*, *usec*, *msec* ou *sec*)" + +#: ../Doc/library/timeit.rst:242 +#, fuzzy +msgid "print raw timing results; repeat for more digits precision" +msgstr "affiche les temps d'exécutions bruts, répéter pour plus de précision" + +#: ../Doc/library/timeit.rst:246 +msgid "print a short usage message and exit" +msgstr "affiche un court message d'aide puis quitte" + +#: ../Doc/library/timeit.rst:248 +msgid "" +"A multi-line statement may be given by specifying each line as a separate " +"statement argument; indented lines are possible by enclosing an argument in " +"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:253 +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:256 +msgid "" +":func:`default_timer` measurements can be affected by other programs running " +"on the same machine, so the best thing to do when accurate timing is " +"necessary is to repeat the timing a few times and use the best time. The :" +"option:`-r` option is good for this; the default of 5 repetitions is " +"probably enough in most cases. You can use :func:`time.process_time` to " +"measure CPU time." +msgstr "" +"Les mesures de :func:`default_timer` peuvent être altérées par d'autres " +"programmes s'exécutant sur la même machine. La meilleure approche lorsqu'un " +"chronométrage exact est nécessaire est de répéter celui-ci à plusieurs " +"reprises et considérer le meilleur temps. L'option :option:`-r` est adaptée " +"à ce fonctionnement, les cinq répétitions par défaut suffisent probablement " +"dans la plupart des cas. Vous pouvez utiliser :func:`time.process_time` pour " +"mesurer le temps processeur." + +#: ../Doc/library/timeit.rst:264 +msgid "" +"There is a certain baseline overhead associated with executing a pass " +"statement. The code here doesn't try to hide it, but you should be aware of " +"it. The baseline overhead can be measured by invoking the program without " +"arguments, and it might differ between Python versions." +msgstr "" +"Il existe un surcoût minimal associé à l'exécution de l'instruction `pass`. " +"Le code présenté ici ne tente pas de le masquer, mais vous devez être " +"conscient de son existence. Ce surcoût minimal peut être mesuré en invoquant " +"le programme sans argument ; il peut différer en fonction des versions de " +"Python." + +#: ../Doc/library/timeit.rst:273 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/timeit.rst:275 +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:292 +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:302 +msgid "" +"The following examples show how to time expressions that contain multiple " +"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:348 +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 ::" + +#: ../Doc/library/timeit.rst:359 +msgid "" +"Another option is to pass :func:`globals` to the *globals* parameter, which " +"will cause the code to be executed within your current global namespace. " +"This can be more convenient than individually specifying imports::" +msgstr "" +"Une autre possibilité est de passer :func:`globals` au paramètre *globals*, " +"ceci qui exécutera le code dans l'espace de nommage global courant. Cela " +"peut être plus pratique que de spécifier manuellement des importations ::" diff --git a/library/tk.po b/library/tk.po new file mode 100644 index 000000000..2d06314b9 --- /dev/null +++ b/library/tk.po @@ -0,0 +1,67 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-09-28 11:34+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/tk.rst:5 +msgid "Graphical User Interfaces with Tk" +msgstr "Interfaces Utilisateur Graphiques avec Tk" + +#: ../Doc/library/tk.rst:13 +msgid "" +"Tk/Tcl has long been an integral part of Python. It provides a robust and " +"platform independent windowing toolkit, that is available to Python " +"programmers using the :mod:`tkinter` package, and its extension, the :mod:" +"`tkinter.tix` and the :mod:`tkinter.ttk` modules." +msgstr "" +"*Tk/Tcl* fait depuis longtemps partie intégrante de Python. Il fournit un " +"jeu d'outils robustes et indépendants de la plateforme pour gérer des " +"fenêtres. Disponible aux développeurs via le paquet :mod:`tkinter` et ses " +"extensions, les modules :mod:`tkinter.tix` et :mod:`tkinter.ttk`." + +#: ../Doc/library/tk.rst:18 +msgid "" +"The :mod:`tkinter` package is a thin object-oriented layer on top of Tcl/Tk. " +"To use :mod:`tkinter`, you don't need to write Tcl code, but you will need " +"to consult the Tk documentation, and occasionally the Tcl documentation. :" +"mod:`tkinter` is a set of wrappers that implement the Tk widgets as Python " +"classes. In addition, the internal module :mod:`_tkinter` provides a " +"threadsafe mechanism which allows Python and Tcl to interact." +msgstr "" +"Le paquet :mod:`tkinter` est une fine couche orientée objet au dessus de Tcl/" +"Tk. Pour utiliser le module :mod:`tkinter`, vous n'avez pas à écrire de code " +"Tcl, mais vous devrez consulter la documentation de Tk, et parfois la " +"documentation de Tcl. Le module :mod:`tkinter` est un ensemble de surcouches " +"implémentant les *widgets* Tk en classes Python. De plus, le module interne :" +"mod:`_tkinter` fournit un mécanisme robuste permettant à des fils " +"d'exécution Python et Tcl d'interagir." + +#: ../Doc/library/tk.rst:25 +msgid "" +":mod:`tkinter`'s chief virtues are that it is fast, and that it usually " +"comes bundled with Python. Although its standard documentation is weak, good " +"material is available, which includes: references, tutorials, a book and " +"others. :mod:`tkinter` is also famous for having an outdated look and feel, " +"which has been vastly improved in Tk 8.5. Nevertheless, there are many other " +"GUI libraries that you could be interested in. For more information about " +"alternatives, see the :ref:`other-gui-packages` section." +msgstr "" +"Les avantages de :mod:`tkinter` sont sa rapidité, et qu'il est généralement " +"fourni nativement avec Python. Bien que sa documentation soit mauvaise, " +"d'autres ressources existent : des références, tutoriels, livres, … Le " +"module :mod:`tkinter` est aussi célèbre pour son aspect vieillot, cependant " +"il à été grandement amélioré depuis Tk 8.5. Néanmoins, il existe bien " +"d'autres bibliothèques d'interfaces graphiques qui pourraient vous " +"intéresser. Pour plus d'informations sur les alternatives, consultez le " +"chapitre :ref:`other-gui-packages`." diff --git a/library/tkinter.po b/library/tkinter.po new file mode 100644 index 000000000..dfa08aa00 --- /dev/null +++ b/library/tkinter.po @@ -0,0 +1,1841 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-09-16 11:04+0200\n" +"Last-Translator: Zepmanbc \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" + +#: ../Doc/library/tkinter.rst:2 +msgid ":mod:`tkinter` --- Python interface to Tcl/Tk" +msgstr ":mod:`tkinter` — Interface Python pour Tcl/Tk" + +#: ../Doc/library/tkinter.rst:9 +msgid "**Source code:** :source:`Lib/tkinter/__init__.py`" +msgstr "**Code source :** :source:`Lib/tkinter/__init__.py`" + +#: ../Doc/library/tkinter.rst:13 +msgid "" +"The :mod:`tkinter` package (\"Tk interface\") is the standard Python " +"interface to the Tk GUI toolkit. Both Tk and :mod:`tkinter` are available " +"on most Unix platforms, as well as on Windows systems. (Tk itself is not " +"part of Python; it is maintained at ActiveState.)" +msgstr "" +"Le paquet :mod:`tkinter` (« interface Tk ») est l'interface Python standard " +"de la boîte à outils d'IUG Tk. Tk et :mod:`tkinter` sont disponibles sur la " +"plupart des plates-formes Unix, ainsi que sur les systèmes Windows (Tk lui-" +"même ne fait pas partie de Python ; il est maintenu par ActiveState)." + +#: ../Doc/library/tkinter.rst:18 +msgid "" +"Running ``python -m tkinter`` from the command line should open a window " +"demonstrating a simple Tk interface, letting you know that :mod:`tkinter` is " +"properly installed on your system, and also showing what version of Tcl/Tk " +"is installed, so you can read the Tcl/Tk documentation specific to that " +"version." +msgstr "" +"Exécuter ``python -m tkinter`` depuis la ligne de commande ouvre une fenêtre " +"de démonstration d'une interface Tk simple, vous indiquant que :mod:" +"`tkinter` est correctement installé sur votre système et indiquant également " +"quelle version de Tcl/Tk est installée ; vous pouvez donc lire la " +"documentation Tcl/Tk spécifique à cette version." + +#: ../Doc/library/tkinter.rst:25 +msgid "Tkinter documentation:" +msgstr "Documentation de Tkinter :" + +#: ../Doc/library/tkinter.rst:29 +msgid "`Python Tkinter Resources `_" +msgstr "`Python Tkinter Resources `_" + +#: ../Doc/library/tkinter.rst:28 +msgid "" +"The Python Tkinter Topic Guide provides a great deal of information on using " +"Tk from Python and links to other sources of information on Tk." +msgstr "" +"Le *Python Tkinter Topic Guide* fournit beaucoup d'informations sur " +"l'utilisation de Tk à partir de Python et des liens vers d'autres sources " +"d'information sur Tk." + +#: ../Doc/library/tkinter.rst:32 +msgid "`TKDocs `_" +msgstr "`TKDocs `_" + +#: ../Doc/library/tkinter.rst:32 +msgid "" +"Extensive tutorial plus friendlier widget pages for some of the widgets." +msgstr "Tutoriel complet plus convivial pour certains des objets graphiques." + +#: ../Doc/library/tkinter.rst:35 +msgid "" +"`Tkinter reference: a GUI for Python `_" +msgstr "" +"`Tkinter reference: a GUI for Python `_" + +#: ../Doc/library/tkinter.rst:35 +msgid "On-line reference material." +msgstr "Documents de référence en ligne." + +#: ../Doc/library/tkinter.rst:38 +msgid "`Tkinter docs from effbot `_" +msgstr "`Documents Tkinter sur effbot `_" + +#: ../Doc/library/tkinter.rst:38 +msgid "Online reference for tkinter supported by effbot.org." +msgstr "Référence en ligne pour *tkinter* réalisée par *effbot.org*." + +#: ../Doc/library/tkinter.rst:41 +msgid "`Programming Python `_" +msgstr "`Programming Python `_" + +#: ../Doc/library/tkinter.rst:41 +msgid "Book by Mark Lutz, has excellent coverage of Tkinter." +msgstr "Livre de Mark Lutz, qui couvre excellemment bien Tkinter." + +#: ../Doc/library/tkinter.rst:44 +msgid "" +"`Modern Tkinter for Busy Python Developers `_" +msgstr "" +"`Modern Tkinter for Busy Python Developers `_" + +#: ../Doc/library/tkinter.rst:44 +msgid "" +"Book by Mark Rozerman about building attractive and modern graphical user " +"interfaces with Python and Tkinter." +msgstr "" +"Livre de Mark Rozerman sur la construction d'interfaces graphiques " +"esthétiques et modernes avec Python et Tkinter." + +#: ../Doc/library/tkinter.rst:47 +msgid "" +"`Python and Tkinter Programming `_" +msgstr "" +"`Python and Tkinter Programming `_" + +#: ../Doc/library/tkinter.rst:47 +msgid "Book by John Grayson (ISBN 1-884777-81-3)." +msgstr "Livre de John Grayson (ISBN 1-884777-81-3)." + +#: ../Doc/library/tkinter.rst:49 +msgid "Tcl/Tk documentation:" +msgstr "Documentation de Tcl/Tk :" + +#: ../Doc/library/tkinter.rst:53 +msgid "`Tk commands `_" +msgstr "`Commandes Tk `_" + +#: ../Doc/library/tkinter.rst:52 +msgid "" +"Most commands are available as :mod:`tkinter` or :mod:`tkinter.ttk` classes. " +"Change '8.6' to match the version of your Tcl/Tk installation." +msgstr "" +"La plupart des commandes sont disponibles sous forme de classes :mod:" +"`tkinter` ou :mod:`tkinter.ttk`. Modifiez '8.6' pour correspondre à votre " +"version installée de Tcl/Tk." + +#: ../Doc/library/tkinter.rst:56 +msgid "`Tcl/Tk recent man pages `_" +msgstr "`Pages de manuel récentes de Tcl/Tk `_" + +#: ../Doc/library/tkinter.rst:56 +msgid "Recent Tcl/Tk manuals on www.tcl.tk." +msgstr "Manuels récents de Tcl/Tk sur *www.tcl.tk*." + +#: ../Doc/library/tkinter.rst:59 +msgid "`ActiveState Tcl Home Page `_" +msgstr "`Page d'accueil Tcl `_ chez ActiveState" + +#: ../Doc/library/tkinter.rst:59 +msgid "The Tk/Tcl development is largely taking place at ActiveState." +msgstr "" +"Le développement de Tk/Tcl se déroule en grande partie au sein d'ActiveState." + +#: ../Doc/library/tkinter.rst:62 +msgid "" +"`Tcl and the Tk Toolkit `_" +msgstr "" +"`Tcl and the Tk Toolkit `_" + +#: ../Doc/library/tkinter.rst:62 +msgid "Book by John Ousterhout, the inventor of Tcl." +msgstr "Livre de John Ousterhout, l'inventeur de Tcl." + +#: ../Doc/library/tkinter.rst:64 +msgid "`Practical Programming in Tcl and Tk `_" +msgstr "`Practical Programming in Tcl and Tk `_" + +#: ../Doc/library/tkinter.rst:65 +msgid "Brent Welch's encyclopedic book." +msgstr "Le livre encyclopédique de Brent Welch." + +#: ../Doc/library/tkinter.rst:69 +msgid "Tkinter Modules" +msgstr "Modules Tkinter" + +#: ../Doc/library/tkinter.rst:71 +msgid "" +"Most of the time, :mod:`tkinter` is all you really need, but a number of " +"additional modules are available as well. The Tk interface is located in a " +"binary module named :mod:`_tkinter`. This module contains the low-level " +"interface to Tk, and should never be used directly by application " +"programmers. It is usually a shared library (or DLL), but might in some " +"cases be statically linked with the Python interpreter." +msgstr "" +"La plupart du temps, :mod:`tkinter` est tout ce dont vous avez vraiment " +"besoin mais un certain nombre de modules supplémentaires sont également " +"disponibles. L'interface Tk est située dans un module binaire nommé :mod:" +"`_tkinter`. Ce module contient l'interface de bas niveau vers Tk et ne doit " +"jamais être utilisé directement par les développeurs. Il s'agit généralement " +"d'une bibliothèque partagée (ou DLL) mais elle peut, dans certains cas, être " +"liée statiquement à l'interpréteur Python." + +#: ../Doc/library/tkinter.rst:78 +msgid "" +"In addition to the Tk interface module, :mod:`tkinter` includes a number of " +"Python modules, :mod:`tkinter.constants` being one of the most important. " +"Importing :mod:`tkinter` will automatically import :mod:`tkinter.constants`, " +"so, usually, to use Tkinter all you need is a simple import statement::" +msgstr "" +"En plus du module d'interface Tk, :mod:`tkinter` inclut un certain nombre de " +"modules Python, :mod:`tkinter.constants` étant l'un des plus importants. " +"Importer :mod:`tkinter` charge automatiquement :mod:`tkinter.constants` " +"donc, habituellement, pour utiliser Tkinter, tout ce dont vous avez besoin " +"est une simple commande d'importation ::" + +#: ../Doc/library/tkinter.rst:85 +msgid "Or, more often::" +msgstr "Ou, plus souvent ::" + +#: ../Doc/library/tkinter.rst:92 +msgid "" +"The :class:`Tk` class is instantiated without arguments. This creates a " +"toplevel widget of Tk which usually is the main window of an application. " +"Each instance has its own associated Tcl interpreter." +msgstr "" +"La classe :class:`Tk` est instanciée sans argument. Cela crée un widget de " +"haut niveau de Tk qui est généralement la fenêtre principale d'une " +"application. Chaque instance a son propre interpréteur Tcl associé." + +#: ../Doc/library/tkinter.rst:101 +msgid "" +"The :func:`Tcl` function is a factory function which creates an object much " +"like that created by the :class:`Tk` class, except that it does not " +"initialize the Tk subsystem. This is most often useful when driving the Tcl " +"interpreter in an environment where one doesn't want to create extraneous " +"toplevel windows, or where one cannot (such as Unix/Linux systems without an " +"X server). An object created by the :func:`Tcl` object can have a Toplevel " +"window created (and the Tk subsystem initialized) by calling its :meth:" +"`loadtk` method." +msgstr "" +"La fonction :func:`Tcl` est une fonction fabrique qui crée un objet " +"similaire à celui créé par la classe :class:`Tk`, sauf qu'elle n'initialise " +"pas le sous-système Tk. Ceci est le plus souvent utile lorsque vous pilotez " +"l'interpréteur Tcl dans un environnement où vous ne voulez pas créer des " +"fenêtres de haut niveau supplémentaires, ou alors si c'est impossible (comme " +"les systèmes Unix/Linux sans un serveur X). Un objet créé par :func:`Tcl` " +"peut avoir une fenêtre de haut niveau créée (et le sous-système Tk " +"initialisé) en appelant sa méthode :meth:`loadtk`." + +#: ../Doc/library/tkinter.rst:110 +msgid "Other modules that provide Tk support include:" +msgstr "Parmi les modules qui savent gérer Tk, nous pouvons citer :" + +#: ../Doc/library/tkinter.rst:113 +msgid ":mod:`tkinter.scrolledtext`" +msgstr ":mod:`tkinter.scrolledtext`" + +#: ../Doc/library/tkinter.rst:113 +msgid "Text widget with a vertical scroll bar built in." +msgstr "" +"Outil d'affichage de texte avec une barre de défilement verticale intégrée." + +#: ../Doc/library/tkinter.rst:116 +msgid ":mod:`tkinter.colorchooser`" +msgstr ":mod:`tkinter.colorchooser`" + +#: ../Doc/library/tkinter.rst:116 +msgid "Dialog to let the user choose a color." +msgstr "Boîte de dialogue permettant à l'utilisateur de choisir une couleur." + +#: ../Doc/library/tkinter.rst:119 +msgid ":mod:`tkinter.commondialog`" +msgstr ":mod:`tkinter.commondialog`" + +#: ../Doc/library/tkinter.rst:119 +msgid "Base class for the dialogs defined in the other modules listed here." +msgstr "" +"Classe de base pour les boîtes de dialogue définies dans les autres modules " +"listés ici." + +#: ../Doc/library/tkinter.rst:122 +msgid ":mod:`tkinter.filedialog`" +msgstr ":mod:`tkinter.filedialog`" + +#: ../Doc/library/tkinter.rst:122 +msgid "Common dialogs to allow the user to specify a file to open or save." +msgstr "" +"Boîtes de dialogue standard permettant à l'utilisateur de spécifier un " +"fichier à ouvrir ou à enregistrer." + +#: ../Doc/library/tkinter.rst:125 +msgid ":mod:`tkinter.font`" +msgstr ":mod:`tkinter.font`" + +#: ../Doc/library/tkinter.rst:125 +msgid "Utilities to help work with fonts." +msgstr "Utilitaires pour gérer les polices de caractères." + +#: ../Doc/library/tkinter.rst:128 +msgid ":mod:`tkinter.messagebox`" +msgstr ":mod:`tkinter.messagebox`" + +#: ../Doc/library/tkinter.rst:128 +msgid "Access to standard Tk dialog boxes." +msgstr "Accès aux boîtes de dialogue Tk standard." + +#: ../Doc/library/tkinter.rst:131 +msgid ":mod:`tkinter.simpledialog`" +msgstr ":mod:`tkinter.simpledialog`" + +#: ../Doc/library/tkinter.rst:131 +msgid "Basic dialogs and convenience functions." +msgstr "Boîtes de dialogue simples et fonctions utilitaires." + +#: ../Doc/library/tkinter.rst:135 +msgid ":mod:`tkinter.dnd`" +msgstr ":mod:`tkinter.dnd`" + +#: ../Doc/library/tkinter.rst:134 +msgid "" +"Drag-and-drop support for :mod:`tkinter`. This is experimental and should " +"become deprecated when it is replaced with the Tk DND." +msgstr "" +"Support du glisser-déposer pour :mod:`tkinter`. Il s'agit d'une méthode " +"expérimentale qui ne sera plus maintenue lorsqu'elle sera remplacée par Tk " +"DND." + +#: ../Doc/library/tkinter.rst:139 +msgid ":mod:`turtle`" +msgstr ":mod:`turtle`" + +#: ../Doc/library/tkinter.rst:138 +msgid "Turtle graphics in a Tk window." +msgstr "Tortue graphique dans une fenêtre Tk." + +#: ../Doc/library/tkinter.rst:142 +msgid "Tkinter Life Preserver" +msgstr "Guide de survie Tkinter" + +#: ../Doc/library/tkinter.rst:147 +msgid "" +"This section is not designed to be an exhaustive tutorial on either Tk or " +"Tkinter. Rather, it is intended as a stop gap, providing some introductory " +"orientation on the system." +msgstr "" +"Cette section n'est pas conçue pour être un tutoriel exhaustif de Tk ou " +"Tkinter. Il s'agit plutôt d'un guide d'introduction au système." + +#: ../Doc/library/tkinter.rst:151 +msgid "Credits:" +msgstr "Crédits :" + +#: ../Doc/library/tkinter.rst:153 +msgid "Tk was written by John Ousterhout while at Berkeley." +msgstr "*Tk* a été écrit par John Ousterhout de Berkeley." + +#: ../Doc/library/tkinter.rst:155 +msgid "Tkinter was written by Steen Lumholt and Guido van Rossum." +msgstr "*Tkinter* a été écrit par Steen Lumholt et Guido van Rossum." + +#: ../Doc/library/tkinter.rst:157 +msgid "" +"This Life Preserver was written by Matt Conway at the University of Virginia." +msgstr "" +"Ce guide de survie a été écrit par Matt Conway de l'Université de Virginie." + +#: ../Doc/library/tkinter.rst:159 +msgid "" +"The HTML rendering, and some liberal editing, was produced from a FrameMaker " +"version by Ken Manheimer." +msgstr "" +"Le rendu HTML, avec quelques modifications, a été réalisé à partir d'une " +"version FrameMaker par Ken Manheimer." + +#: ../Doc/library/tkinter.rst:162 +msgid "" +"Fredrik Lundh elaborated and revised the class interface descriptions, to " +"get them current with Tk 4.2." +msgstr "" +"Fredrik Lundh a élaboré et mis à jour les descriptions de l'interface des " +"classes, en cohérence avec Tk 4.2." + +#: ../Doc/library/tkinter.rst:165 +msgid "" +"Mike Clarkson converted the documentation to LaTeX, and compiled the User " +"Interface chapter of the reference manual." +msgstr "" +"Mike Clarkson a converti la documentation en LaTeX et a compilé le chapitre " +"*Interface utilisateur* du manuel de référence." + +#: ../Doc/library/tkinter.rst:170 +msgid "How To Use This Section" +msgstr "Mode d'emploi" + +#: ../Doc/library/tkinter.rst:172 +msgid "" +"This section is designed in two parts: the first half (roughly) covers " +"background material, while the second half can be taken to the keyboard as a " +"handy reference." +msgstr "" +"Cette section est divisée en deux parties : la première moitié (à peu près) " +"couvre la partie théorique, tandis que la seconde moitié peut être utilisée " +"comme guide pratique." + +#: ../Doc/library/tkinter.rst:176 +msgid "" +"When trying to answer questions of the form \"how do I do blah\", it is " +"often best to find out how to do \"blah\" in straight Tk, and then convert " +"this back into the corresponding :mod:`tkinter` call. Python programmers can " +"often guess at the correct Python command by looking at the Tk " +"documentation. This means that in order to use Tkinter, you will have to " +"know a little bit about Tk. This document can't fulfill that role, so the " +"best we can do is point you to the best documentation that exists. Here are " +"some hints:" +msgstr "" +"Lorsque l'on essaie de répondre à des questions sur la manière de faire « " +"ceci ou cela », il est souvent préférable de trouver comment le faire en Tk, " +"puis de le convertir en fonction correspondante :mod:`tkinter`. Les " +"programmeurs Python peuvent souvent deviner la commande Python correcte en " +"consultant la documentation Tk. Cela signifie que pour utiliser Tkinter, " +"vous devez en savoir un peu plus sur Tk. Ce document ne peut pas remplir ce " +"rôle, alors le mieux que nous puissions faire est de vous indiquer la " +"meilleure documentation qui existe. Voici quelques conseils :" + +#: ../Doc/library/tkinter.rst:184 +msgid "" +"The authors strongly suggest getting a copy of the Tk man pages. " +"Specifically, the man pages in the ``manN`` directory are most useful. The " +"``man3`` man pages describe the C interface to the Tk library and thus are " +"not especially helpful for script writers." +msgstr "" +"Les auteurs conseillent fortement d'obtenir une copie des pages de manuel de " +"Tk. En particulier, les pages de manuel dans le répertoire ``manN`` sont les " +"plus utiles. Les pages de manuel ``man3`` décrivent l'interface C de la " +"bibliothèque Tk et ne sont donc pas particulièrement utiles aux développeurs " +"de scripts." + +#: ../Doc/library/tkinter.rst:189 +msgid "" +"Addison-Wesley publishes a book called Tcl and the Tk Toolkit by John " +"Ousterhout (ISBN 0-201-63337-X) which is a good introduction to Tcl and Tk " +"for the novice. The book is not exhaustive, and for many details it defers " +"to the man pages." +msgstr "" +"Addison-Wesley a publié un livre intitulé *Tcl and the Tk Toolkit* de John " +"Ousterhout (ISBN 0-201-63337-X) qui est une bonne introduction à Tcl et Tk " +"pour débutants. Le livre n'est pas exhaustif et, pour beaucoup de détails, " +"il renvoie aux pages du manuel." + +#: ../Doc/library/tkinter.rst:194 +msgid "" +":file:`tkinter/__init__.py` is a last resort for most, but can be a good " +"place to go when nothing else makes sense." +msgstr "" +":file:`tkinter/__init__.py` est souvent un dernier recours, mais peut être " +"un bon endroit où aller quand rien d'autre ne fait sens." + +#: ../Doc/library/tkinter.rst:199 +msgid "A Simple Hello World Program" +msgstr "Un simple programme *Hello World*" + +#: ../Doc/library/tkinter.rst:231 +msgid "A (Very) Quick Look at Tcl/Tk" +msgstr "Un (très) rapide aperçu de Tcl/Tk" + +#: ../Doc/library/tkinter.rst:233 +msgid "" +"The class hierarchy looks complicated, but in actual practice, application " +"programmers almost always refer to the classes at the very bottom of the " +"hierarchy." +msgstr "" +"La hiérarchie de classes semble compliquée mais, dans la pratique, les " +"développeurs d'applications se réfèrent presque toujours aux classes situées " +"tout en bas de la hiérarchie." + +#: ../Doc/library/tkinter.rst:237 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/library/tkinter.rst:239 +msgid "" +"These classes are provided for the purposes of organizing certain functions " +"under one namespace. They aren't meant to be instantiated independently." +msgstr "" +"Ces classes sont fournies dans le but d'organiser certaines fonctions sous " +"un seul espace de nommage. Elles n'ont pas vocation à être instanciées " +"indépendamment." + +#: ../Doc/library/tkinter.rst:242 +msgid "" +"The :class:`Tk` class is meant to be instantiated only once in an " +"application. Application programmers need not instantiate one explicitly, " +"the system creates one whenever any of the other classes are instantiated." +msgstr "" +"La classe :class:`Tk` est destinée à être instanciée une seule fois dans une " +"application. Les développeurs d'applications n'ont pas besoin d'en " +"instancier une explicitement, Le système en crée une au besoin quand une des " +"autres classes est instanciée." + +#: ../Doc/library/tkinter.rst:246 +msgid "" +"The :class:`Widget` class is not meant to be instantiated, it is meant only " +"for subclassing to make \"real\" widgets (in C++, this is called an " +"'abstract class')." +msgstr "" +"La classe :class:`Widget` n'est pas destinée à être instanciée, elle est " +"destinée uniquement au sous-classement pour faire de « vrais » objets " +"graphiques (en C++, on appelle cela une « classe abstraite »)." + +#: ../Doc/library/tkinter.rst:250 +msgid "" +"To make use of this reference material, there will be times when you will " +"need to know how to read short passages of Tk and how to identify the " +"various parts of a Tk command. (See section :ref:`tkinter-basic-mapping` " +"for the :mod:`tkinter` equivalents of what's below.)" +msgstr "" +"Pour comprendre cette documentation, il y aura des moments où vous aurez " +"besoin de savoir comment lire de courts passages de Tk et comment identifier " +"les différentes parties d'une commande Tk. (Voir la section :ref:`tkinter-" +"basic-mapping` pour les équivalents :mod:`tkinter` de ce qui suit)." + +#: ../Doc/library/tkinter.rst:255 +msgid "" +"Tk scripts are Tcl programs. Like all Tcl programs, Tk scripts are just " +"lists of tokens separated by spaces. A Tk widget is just its *class*, the " +"*options* that help configure it, and the *actions* that make it do useful " +"things." +msgstr "" +"Les scripts Tk sont des programmes Tcl. Comme tous les programmes Tcl, les " +"scripts Tk ne sont que des listes de commandes séparées par des espaces. Un " +"objet graphique Tk n'est constitué que de sa *classe*, des *options* qui " +"l'aident à se configurer et des *actions* qui lui font faire des choses " +"utiles." + +#: ../Doc/library/tkinter.rst:259 +msgid "To make a widget in Tk, the command is always of the form::" +msgstr "" +"Pour créer un objet graphique en Tk, la commande est toujours de la forme ::" + +#: ../Doc/library/tkinter.rst:264 +msgid "*classCommand*" +msgstr "*classCommand*" + +#: ../Doc/library/tkinter.rst:264 +msgid "denotes which kind of widget to make (a button, a label, a menu...)" +msgstr "" +"indique le type d'objet graphique à réaliser (un bouton, une étiquette, un " +"menu…)" + +#: ../Doc/library/tkinter.rst:273 +msgid "*newPathname*" +msgstr "*newPathname*" + +#: ../Doc/library/tkinter.rst:269 +msgid "" +"is the new name for this widget. All names in Tk must be unique. To help " +"enforce this, widgets in Tk are named with *pathnames*, just like files in a " +"file system. The top level widget, the *root*, is called ``.`` (period) and " +"children are delimited by more periods. For example, ``.myApp.controlPanel." +"okButton`` might be the name of a widget." +msgstr "" +"est le nouveau nom pour cet objet graphique. Tous les noms dans Tk doivent " +"être uniques. Pour vous aider à respecter cette règle, les objets " +"graphiques dans Tk sont nommés avec des *noms d'accès*, tout comme les " +"fichiers dans le système de fichiers. L'objet graphique de niveau " +"supérieur, la racine (*root* en anglais), s'appelle ``.`` (point) et les " +"enfants sont délimités par plusieurs points. Par exemple, ``.myApp." +"controlPanel.okButton`` pourrait être le nom d'un objet graphique." + +#: ../Doc/library/tkinter.rst:279 +msgid "*options*" +msgstr "*options*" + +#: ../Doc/library/tkinter.rst:276 +msgid "" +"configure the widget's appearance and in some cases, its behavior. The " +"options come in the form of a list of flags and values. Flags are preceded " +"by a '-', like Unix shell command flags, and values are put in quotes if " +"they are more than one word." +msgstr "" +"configure l'apparence de l'objet graphique et, dans certains cas, son " +"comportement. Les options se présentent sous la forme d'une liste de " +"paramètres et de valeurs. Les paramètres sont précédés d'un « - », comme les " +"paramètres d'une ligne de commande du shell Unix, et les valeurs sont mises " +"entre guillemets si elles font plus d'un mot." + +#: ../Doc/library/tkinter.rst:281 ../Doc/library/tkinter.rst:543 +#: ../Doc/library/tkinter.rst:717 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/library/tkinter.rst:289 +msgid "" +"Once created, the pathname to the widget becomes a new command. This new " +"*widget command* is the programmer's handle for getting the new widget to " +"perform some *action*. In C, you'd express this as someAction(fred, " +"someOptions), in C++, you would express this as fred." +"someAction(someOptions), and in Tk, you say::" +msgstr "" +"Une fois créé, le chemin d'accès à l'objet graphique devient une nouvelle " +"commande. Cette nouvelle *commande d'objet graphique* est l'interface du " +"programmeur pour que le nouvel objet graphique effectue une *action*. En C, " +"cela prend la forme ``someAction(fred, someOptions)``, en C++, cela prend la " +"forme `fred.someAction(someOptions)` et, en Tk, vous dites ::" + +#: ../Doc/library/tkinter.rst:297 +msgid "Note that the object name, ``.fred``, starts with a dot." +msgstr "Notez que le nom de l'objet, ``.fred``, commence par un point." + +#: ../Doc/library/tkinter.rst:299 +msgid "" +"As you'd expect, the legal values for *someAction* will depend on the " +"widget's class: ``.fred disable`` works if fred is a button (fred gets " +"greyed out), but does not work if fred is a label (disabling of labels is " +"not supported in Tk)." +msgstr "" +"Comme vous pouvez vous y attendre, les valeurs autorisées pour *someAction* " +"dépendent de la classe de l'objet graphique : ``.fred disable`` fonctionne " +"si ``fred`` est un bouton (``fred`` devient grisé), mais ne fonctionne pas " +"si ``fred`` est une étiquette (la désactivation des étiquettes n'existe pas " +"dans Tk)." + +#: ../Doc/library/tkinter.rst:303 +msgid "" +"The legal values of *someOptions* is action dependent. Some actions, like " +"``disable``, require no arguments, others, like a text-entry box's " +"``delete`` command, would need arguments to specify what range of text to " +"delete." +msgstr "" +"Les valeurs possibles de *someOptions* dépendent de l'action. Certaines " +"actions, comme ``disable``, ne nécessitent aucun argument ; d'autres, comme " +"la commande ``delete`` d'une zone de saisie, nécessitent des arguments pour " +"spécifier l'étendue du texte à supprimer." + +#: ../Doc/library/tkinter.rst:311 +msgid "Mapping Basic Tk into Tkinter" +msgstr "Correspondance entre *Basic Tk* et *Tkinter*" + +#: ../Doc/library/tkinter.rst:313 +msgid "Class commands in Tk correspond to class constructors in Tkinter. ::" +msgstr "" +"Les commandes de classes dans Tk correspondent aux constructeurs de classes " +"dans Tkinter. ::" + +#: ../Doc/library/tkinter.rst:317 +msgid "" +"The master of an object is implicit in the new name given to it at creation " +"time. In Tkinter, masters are specified explicitly. ::" +msgstr "" +"Le constructeur d'un objet est implicite dans le nouveau nom qui lui est " +"donné lors de la création. Dans Tkinter, les constructeurs sont spécifiés " +"explicitement. ::" + +#: ../Doc/library/tkinter.rst:322 +msgid "" +"The configuration options in Tk are given in lists of hyphened tags followed " +"by values. In Tkinter, options are specified as keyword-arguments in the " +"instance constructor, and keyword-args for configure calls or as instance " +"indices, in dictionary style, for established instances. See section :ref:" +"`tkinter-setting-options` on setting options. ::" +msgstr "" +"Les options de configuration dans Tk sont données dans des listes de " +"paramètres séparés par des traits d'union suivies de leurs valeurs. Dans " +"Tkinter, les options sont spécifiées sous forme d'arguments par mots-clés " +"dans le constructeur d'instance, et d'arguments par mots-clés pour " +"configurer les appels ou sous forme d'une entrée, dans le style " +"dictionnaire, d'instance pour les instances établies. Voir la section :ref:" +"`tkinter-setting-options` pour la façon de définir les options. ::" + +#: ../Doc/library/tkinter.rst:332 +msgid "" +"In Tk, to perform an action on a widget, use the widget name as a command, " +"and follow it with an action name, possibly with arguments (options). In " +"Tkinter, you call methods on the class instance to invoke actions on the " +"widget. The actions (methods) that a given widget can perform are listed " +"in :file:`tkinter/__init__.py`. ::" +msgstr "" +"Dans Tk, pour effectuer une action sur un objet graphique, utilisez le nom " +"de l'objet graphique comme une commande et faites-le suivre d'un nom " +"d'action, éventuellement avec des arguments (options). Dans Tkinter, vous " +"appelez des méthodes sur l'instance de classe pour invoquer des actions sur " +"l'objet graphique. Les actions (méthodes) qu'un objet graphique donné peut " +"effectuer sont listées dans :file:`tkinter/__init__.py`. ::" + +#: ../Doc/library/tkinter.rst:340 +msgid "" +"To give a widget to the packer (geometry manager), you call pack with " +"optional arguments. In Tkinter, the Pack class holds all this " +"functionality, and the various forms of the pack command are implemented as " +"methods. All widgets in :mod:`tkinter` are subclassed from the Packer, and " +"so inherit all the packing methods. See the :mod:`tkinter.tix` module " +"documentation for additional information on the Form geometry manager. ::" +msgstr "" +"Pour donner un objet graphique à l'empaqueteur (ce qui gère la disposition à " +"l'écran), appelez ``pack`` avec des arguments optionnels. Dans Tkinter, la " +"classe ``Pack`` contient toutes ces fonctionnalités et les différentes " +"formes de la commande ``pack`` sont implémentées comme méthodes. Tous les " +"objets graphiques de :mod:`tkinter` sont sous-classés depuis l'empaqueteur " +"et donc héritent de toutes les méthodes d'empaquetage. Voir la documentation " +"du module :mod:`tkinter.tix` pour plus d'informations sur le gestionnaire de " +"disposition des formulaires. ::" + +#: ../Doc/library/tkinter.rst:351 +msgid "How Tk and Tkinter are Related" +msgstr "Relations entre Tk et Tkinter" + +#: ../Doc/library/tkinter.rst:353 +msgid "From the top down:" +msgstr "De haut en bas :" + +#: ../Doc/library/tkinter.rst:356 +msgid "Your App Here (Python)" +msgstr "Votre application (Python)" + +#: ../Doc/library/tkinter.rst:356 +msgid "A Python application makes a :mod:`tkinter` call." +msgstr "Une application Python fait un appel :mod:`tkinter`." + +#: ../Doc/library/tkinter.rst:363 +msgid "tkinter (Python Package)" +msgstr "*tkinter* (paquet Python)" + +#: ../Doc/library/tkinter.rst:359 +msgid "" +"This call (say, for example, creating a button widget), is implemented in " +"the :mod:`tkinter` package, which is written in Python. This Python " +"function will parse the commands and the arguments and convert them into a " +"form that makes them look as if they had come from a Tk script instead of a " +"Python script." +msgstr "" +"Cet appel (par exemple, la création d'un objet graphique de type bouton) est " +"implémenté dans le paquet :mod:`tkinter`, qui est écrit en Python. Cette " +"fonction Python analyse les commandes et les arguments et les convertit en " +"une forme qui les fait ressembler à un script Tk au lieu d'un script Python." + +#: ../Doc/library/tkinter.rst:367 +msgid "_tkinter (C)" +msgstr "_tkinter (C)" + +#: ../Doc/library/tkinter.rst:366 +msgid "" +"These commands and their arguments will be passed to a C function in the :" +"mod:`_tkinter` - note the underscore - extension module." +msgstr "" +"Ces commandes et leurs arguments sont passés à une fonction C dans le module " +"d'extension :mod:`_tkinter` — notez le tiret bas." + +#: ../Doc/library/tkinter.rst:374 +msgid "Tk Widgets (C and Tcl)" +msgstr "Objets graphiques Tk (C et Tcl)" + +#: ../Doc/library/tkinter.rst:370 +msgid "" +"This C function is able to make calls into other C modules, including the C " +"functions that make up the Tk library. Tk is implemented in C and some Tcl. " +"The Tcl part of the Tk widgets is used to bind certain default behaviors to " +"widgets, and is executed once at the point where the Python :mod:`tkinter` " +"package is imported. (The user never sees this stage)." +msgstr "" +"Cette fonction C est capable d'effectuer des appels vers d'autres modules C, " +"y compris les fonctions C qui composent la bibliothèque Tk. Tk est " +"implémenté en C et un peu en Tcl. La partie Tcl des objets graphiques Tk est " +"utilisée pour lier certains comportements par défaut aux objets graphiques, " +"et est exécutée une fois au moment où le paquet Python :mod:`tkinter` est " +"importé (cette étape est transparente pour l'utilisateur)." + +#: ../Doc/library/tkinter.rst:377 +msgid "Tk (C)" +msgstr "Tk (C)" + +#: ../Doc/library/tkinter.rst:377 +msgid "The Tk part of the Tk Widgets implement the final mapping to ..." +msgstr "" +"La partie Tk des objets graphiques Tk implémente la correspondance finale " +"avec …" + +#: ../Doc/library/tkinter.rst:381 +msgid "Xlib (C)" +msgstr "Xlib (C)" + +#: ../Doc/library/tkinter.rst:380 +msgid "the Xlib library to draw graphics on the screen." +msgstr "" +"la bibliothèque *Xlib* pour dessiner des éléments graphiques à l'écran." + +#: ../Doc/library/tkinter.rst:384 +msgid "Handy Reference" +msgstr "Guide pratique" + +#: ../Doc/library/tkinter.rst:390 +msgid "Setting Options" +msgstr "Définition des options" + +#: ../Doc/library/tkinter.rst:392 +msgid "" +"Options control things like the color and border width of a widget. Options " +"can be set in three ways:" +msgstr "" +"Les options contrôlent des paramètres tels que la couleur et la largeur de " +"la bordure d'un objet graphique. Les options peuvent être réglées de trois " +"façons :" + +#: ../Doc/library/tkinter.rst:398 +msgid "At object creation time, using keyword arguments" +msgstr "Lors de la création de l'objet, à l'aide d'arguments par mots-clés" + +#: ../Doc/library/tkinter.rst:404 +msgid "After object creation, treating the option name like a dictionary index" +msgstr "" +"Après la création de l'objet, en manipulant le nom de l'option comme une " +"entrée de dictionnaire" + +#: ../Doc/library/tkinter.rst:409 +msgid "" +"Use the config() method to update multiple attrs subsequent to object " +"creation" +msgstr "" +"Utilisez la méthode ``config()`` pour mettre à jour plusieurs attributs " +"après la création de l'objet" + +#: ../Doc/library/tkinter.rst:411 +msgid "" +"For a complete explanation of a given option and its behavior, see the Tk " +"man pages for the widget in question." +msgstr "" +"Pour l'explication complète d'une option donnée et de son comportement, voir " +"les pages de manuel Tk de l'objet graphique en question." + +#: ../Doc/library/tkinter.rst:414 +msgid "" +"Note that the man pages list \"STANDARD OPTIONS\" and \"WIDGET SPECIFIC " +"OPTIONS\" for each widget. The former is a list of options that are common " +"to many widgets, the latter are the options that are idiosyncratic to that " +"particular widget. The Standard Options are documented on the :manpage:" +"`options(3)` man page." +msgstr "" +"Notez que les pages de manuel listent « OPTIONS STANDARD » et « OPTIONS " +"SPÉCIFIQUES D'OBJETS GRAPHIQUES » pour chaque objet graphique. La première " +"est une liste d'options communes à de nombreux objets graphiques, la seconde " +"est une liste d'options propres à cet objet graphique particulier. Les " +"options standard sont documentées sur la page de manuel :manpage:" +"`options(3)`." + +#: ../Doc/library/tkinter.rst:420 +msgid "" +"No distinction between standard and widget-specific options is made in this " +"document. Some options don't apply to some kinds of widgets. Whether a " +"given widget responds to a particular option depends on the class of the " +"widget; buttons have a ``command`` option, labels do not." +msgstr "" +"Aucune distinction n'est faite dans ce document entre les options standard " +"et les options spécifiques à un objet graphique. Certaines options ne " +"s'appliquent pas à certains types d'objets graphiques. La réaction d'un " +"objet graphique donné à une option particulière dépend de la classe de " +"l'objet graphique ; les boutons possèdent une option ``command``, pas les " +"étiquettes." + +#: ../Doc/library/tkinter.rst:425 +msgid "" +"The options supported by a given widget are listed in that widget's man " +"page, or can be queried at runtime by calling the :meth:`config` method " +"without arguments, or by calling the :meth:`keys` method on that widget. " +"The return value of these calls is a dictionary whose key is the name of the " +"option as a string (for example, ``'relief'``) and whose values are 5-tuples." +msgstr "" +"Les options gérées par un objet graphique donné sont listées dans la page de " +"manuel de cet objet graphique, ou peuvent être interrogées à l'exécution en " +"appelant la méthode :meth:`config` sans argument, ou en appelant la méthode :" +"meth:`keys` sur cet objet graphique. La valeur de retour de ces appels est " +"un dictionnaire dont la clé est le nom de l'option sous forme de chaîne (par " +"exemple, ``'relief'``) et dont les valeurs sont des *5-uplets*." + +#: ../Doc/library/tkinter.rst:431 +msgid "" +"Some options, like ``bg`` are synonyms for common options with long names " +"(``bg`` is shorthand for \"background\"). Passing the ``config()`` method " +"the name of a shorthand option will return a 2-tuple, not 5-tuple. The 2-" +"tuple passed back will contain the name of the synonym and the \"real\" " +"option (such as ``('bg', 'background')``)." +msgstr "" +"Certaines options, comme ``bg``, sont des synonymes d'options communes qui " +"ont des noms longs (``bg`` est une abréviation pour ``background`` « arrière-" +"plan »). Passer le nom abrégé d'une option à la méthode ``config()`` renvoie " +"un couple, pas un quintuplet. Le couple renvoyé contient le nom abrégé et le " +"nom *réel* de l'option, par exemple ``('bg','background')``." + +#: ../Doc/library/tkinter.rst:438 +msgid "Index" +msgstr "Index" + +#: ../Doc/library/tkinter.rst:438 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/tkinter.rst:438 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/tkinter.rst:440 +msgid "0" +msgstr "0" + +#: ../Doc/library/tkinter.rst:440 +msgid "option name" +msgstr "nom des options" + +#: ../Doc/library/tkinter.rst:440 ../Doc/library/tkinter.rst:442 +msgid "``'relief'``" +msgstr "``'relief'``" + +#: ../Doc/library/tkinter.rst:442 +msgid "1" +msgstr "1" + +#: ../Doc/library/tkinter.rst:442 +msgid "option name for database lookup" +msgstr "nom de l'option pour la recherche dans la base de données" + +#: ../Doc/library/tkinter.rst:444 +msgid "2" +msgstr "2" + +#: ../Doc/library/tkinter.rst:444 +msgid "option class for database lookup" +msgstr "classe de l'option pour la recherche dans la base de données" + +#: ../Doc/library/tkinter.rst:444 +msgid "``'Relief'``" +msgstr "``'Relief'``" + +#: ../Doc/library/tkinter.rst:447 +msgid "3" +msgstr "3" + +#: ../Doc/library/tkinter.rst:447 +msgid "default value" +msgstr "valeur par défaut" + +#: ../Doc/library/tkinter.rst:447 +msgid "``'raised'``" +msgstr "``'raised'``" + +#: ../Doc/library/tkinter.rst:449 +msgid "4" +msgstr "4" + +#: ../Doc/library/tkinter.rst:449 +msgid "current value" +msgstr "valeur actuelle" + +#: ../Doc/library/tkinter.rst:449 +msgid "``'groove'``" +msgstr "``'groove'``" + +#: ../Doc/library/tkinter.rst:452 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/tkinter.rst:457 +msgid "" +"Of course, the dictionary printed will include all the options available and " +"their values. This is meant only as an example." +msgstr "" +"Bien sûr, le dictionnaire affiché contient toutes les options disponibles et " +"leurs valeurs. Ceci n'est donné qu'à titre d'exemple." + +#: ../Doc/library/tkinter.rst:462 +msgid "The Packer" +msgstr "L'empaqueteur" + +#: ../Doc/library/tkinter.rst:466 +msgid "" +"The packer is one of Tk's geometry-management mechanisms. Geometry " +"managers are used to specify the relative positioning of the positioning of " +"widgets within their container - their mutual *master*. In contrast to the " +"more cumbersome *placer* (which is used less commonly, and we do not cover " +"here), the packer takes qualitative relationship specification - *above*, " +"*to the left of*, *filling*, etc - and works everything out to determine the " +"exact placement coordinates for you." +msgstr "" +"L'empaqueteur est l'un des mécanismes de Tk pour la gestion de la " +"disposition des éléments sur l'écran. Les gestionnaires de géométrie sont " +"utilisés pour spécifier le positionnement relatif du positionnement des " +"objets graphiques dans leur conteneur — leur *constructeur* mutuel. " +"Contrairement au plus encombrant *placeur* (qui est utilisé moins souvent, " +"et nous n'en parlons pas ici), l'empaqueteur prend les spécifications " +"qualitatives de relation — *above*, *to the left of*, *filling*, etc — et " +"calcule tout pour déterminer les coordonnées exactes du placement pour vous." + +#: ../Doc/library/tkinter.rst:474 +msgid "" +"The size of any *master* widget is determined by the size of the \"slave " +"widgets\" inside. The packer is used to control where slave widgets appear " +"inside the master into which they are packed. You can pack widgets into " +"frames, and frames into other frames, in order to achieve the kind of layout " +"you desire. Additionally, the arrangement is dynamically adjusted to " +"accommodate incremental changes to the configuration, once it is packed." +msgstr "" +"La taille d'un objet graphique *constructeur* est déterminée par la taille " +"des « objets graphiques hérités » à l'intérieur. L'empaqueteur est utilisé " +"pour contrôler l'endroit où les objets graphiques hérités apparaissent à " +"l'intérieur du constructeur dans lequel ils sont empaquetés. Vous pouvez " +"regrouper des objets graphiques dans des cadres, et des cadres dans d'autres " +"cadres, afin d'obtenir le type de mise en page souhaité. De plus, " +"l'arrangement est ajusté dynamiquement pour s'adapter aux changements " +"incrémentiels de la configuration, une fois qu'elle est empaquetées." + +#: ../Doc/library/tkinter.rst:481 +msgid "" +"Note that widgets do not appear until they have had their geometry specified " +"with a geometry manager. It's a common early mistake to leave out the " +"geometry specification, and then be surprised when the widget is created but " +"nothing appears. A widget will appear only after it has had, for example, " +"the packer's :meth:`pack` method applied to it." +msgstr "" +"Notez que les objets graphiques n'apparaissent pas tant que leur disposition " +"n'a pas été spécifiée avec un gestionnaire de géométrie. C'est une erreur " +"de débutant courante de ne pas tenir compte de la spécification de la " +"géométrie, puis d'être surpris lorsque l'objet graphique est créé mais que " +"rien n'apparaît. Un objet graphique n'apparaît qu'après que, par exemple, " +"la méthode :meth:`pack` de l'empaqueteur lui ait été appliquée." + +#: ../Doc/library/tkinter.rst:487 +msgid "" +"The pack() method can be called with keyword-option/value pairs that control " +"where the widget is to appear within its container, and how it is to behave " +"when the main application window is resized. Here are some examples::" +msgstr "" +"La méthode `pack()` peut être appelée avec des paires mot-clé-option/valeur " +"qui contrôlent où l'objet graphique doit apparaître dans son conteneur et " +"comment il doit se comporter lorsque la fenêtre principale de l'application " +"est redimensionnée. En voici quelques exemples ::" + +#: ../Doc/library/tkinter.rst:497 +msgid "Packer Options" +msgstr "Options de l'empaqueteur" + +#: ../Doc/library/tkinter.rst:499 +msgid "" +"For more extensive information on the packer and the options that it can " +"take, see the man pages and page 183 of John Ousterhout's book." +msgstr "" +"Pour de plus amples informations sur l'empaqueteur et les options qu'il peut " +"prendre, voir les pages de manuel et la page 183 du livre de John Ousterhout." + +#: ../Doc/library/tkinter.rst:503 ../Doc/library/tkinter.rst:619 +msgid "anchor" +msgstr "*anchor*" + +#: ../Doc/library/tkinter.rst:503 +msgid "" +"Anchor type. Denotes where the packer is to place each slave in its parcel." +msgstr "" +"Type d'ancrage. Indique l'endroit où l'empaqueteur doit placer chaque " +"enfant dans son espace." + +#: ../Doc/library/tkinter.rst:506 +msgid "expand" +msgstr "*expand*" + +#: ../Doc/library/tkinter.rst:506 +msgid "Boolean, ``0`` or ``1``." +msgstr "Booléen, ``0`` ou ``1``." + +#: ../Doc/library/tkinter.rst:509 +msgid "fill" +msgstr "*fill*" + +#: ../Doc/library/tkinter.rst:509 +msgid "Legal values: ``'x'``, ``'y'``, ``'both'``, ``'none'``." +msgstr "Valeurs acceptées : ``'x'``, ``'y'``, ``'both'``, ``'none'``." + +#: ../Doc/library/tkinter.rst:512 +msgid "ipadx and ipady" +msgstr "*ipadx* et *ipady*" + +#: ../Doc/library/tkinter.rst:512 +msgid "" +"A distance - designating internal padding on each side of the slave widget." +msgstr "" +"Une distance — désignant l'écart interne de chaque côté de l'objet graphique " +"hérité." + +#: ../Doc/library/tkinter.rst:515 +msgid "padx and pady" +msgstr "*padx* et *pady*" + +#: ../Doc/library/tkinter.rst:515 +msgid "" +"A distance - designating external padding on each side of the slave widget." +msgstr "" +"Une distance — désignant l'écart externe de chaque côté de l'objet graphique " +"hérité." + +#: ../Doc/library/tkinter.rst:519 +msgid "side" +msgstr "*side*" + +#: ../Doc/library/tkinter.rst:518 +msgid "Legal values are: ``'left'``, ``'right'``, ``'top'``, ``'bottom'``." +msgstr "Valeurs acceptées : ``'left'``, ``'right'``, ``'top'``, ``'bottom'``." + +#: ../Doc/library/tkinter.rst:522 +msgid "Coupling Widget Variables" +msgstr "Association des variables de l'objet graphique" + +#: ../Doc/library/tkinter.rst:524 +msgid "" +"The current-value setting of some widgets (like text entry widgets) can be " +"connected directly to application variables by using special options. These " +"options are ``variable``, ``textvariable``, ``onvalue``, ``offvalue``, and " +"``value``. This connection works both ways: if the variable changes for any " +"reason, the widget it's connected to will be updated to reflect the new " +"value." +msgstr "" +"L'assignation d'une valeur à certains objets graphiques (comme les objets " +"graphique de saisie de texte) peut être liée directement aux variables de " +"votre application à l'aide d'options spéciales. Ces options sont " +"``variable``, ``textvariable``, ``onvalue``, ``offvalue`` et ``value``. Ce " +"lien fonctionne dans les deux sens : si la variable change pour une raison " +"ou pour une autre, l'objet graphique auquel elle est connectée est mis à " +"jour pour refléter la nouvelle valeur." + +#: ../Doc/library/tkinter.rst:530 +msgid "" +"Unfortunately, in the current implementation of :mod:`tkinter` it is not " +"possible to hand over an arbitrary Python variable to a widget through a " +"``variable`` or ``textvariable`` option. The only kinds of variables for " +"which this works are variables that are subclassed from a class called " +"Variable, defined in :mod:`tkinter`." +msgstr "" +"Malheureusement, dans l'implémentation actuelle de :mod:`tkinter` il n'est " +"pas possible de passer une variable Python arbitraire à un objet graphique " +"via une option ``variable`` ou ``textvariable``. Les seuls types de " +"variables pour lesquels cela fonctionne sont les variables qui sont sous-" +"classées à partir d'une classe appelée `Variable`, définie dans :mod:" +"`tkinter`." + +#: ../Doc/library/tkinter.rst:536 +msgid "" +"There are many useful subclasses of Variable already defined: :class:" +"`StringVar`, :class:`IntVar`, :class:`DoubleVar`, and :class:`BooleanVar`. " +"To read the current value of such a variable, call the :meth:`get` method on " +"it, and to change its value you call the :meth:`!set` method. If you follow " +"this protocol, the widget will always track the value of the variable, with " +"no further intervention on your part." +msgstr "" +"Il existe de nombreuses sous-classes utiles de `Variable` déjà définies : :" +"class:`StringVar`, :class:`IntVar`, :class:`DoubleVar` et :class:" +"`BooleanVar`. Pour lire la valeur courante d'une telle variable, appelez la " +"méthode :meth:`get` dessus et, pour changer sa valeur, appelez la méthode :" +"meth:`!set`. Si vous suivez ce protocole, l'objet graphique suivra toujours " +"la valeur de la variable, sans autre intervention de votre part." + +#: ../Doc/library/tkinter.rst:572 +msgid "The Window Manager" +msgstr "Le gestionnaire de fenêtres" + +#: ../Doc/library/tkinter.rst:576 +msgid "" +"In Tk, there is a utility command, ``wm``, for interacting with the window " +"manager. Options to the ``wm`` command allow you to control things like " +"titles, placement, icon bitmaps, and the like. In :mod:`tkinter`, these " +"commands have been implemented as methods on the :class:`Wm` class. " +"Toplevel widgets are subclassed from the :class:`Wm` class, and so can call " +"the :class:`Wm` methods directly." +msgstr "" +"Dans Tk, il y a une commande pratique, ``wm``, pour interagir avec le " +"gestionnaire de fenêtres. Les options de la commande ``wm`` vous permettent " +"de contrôler les titres, le placement, les icônes en mode *bitmap* et encore " +"d'autres choses du même genre. Dans :mod:`tkinter`, ces commandes ont été " +"implémentées en tant que méthodes sur la classe :class:`Wm`. Les objets " +"graphiques de haut niveau sont sous-classés à partir de la classe :class:" +"`Wm`, ils peuvent donc appeler directement les méthodes de :class:`Wm`." + +#: ../Doc/library/tkinter.rst:583 +msgid "" +"To get at the toplevel window that contains a given widget, you can often " +"just refer to the widget's master. Of course if the widget has been packed " +"inside of a frame, the master won't represent a toplevel window. To get at " +"the toplevel window that contains an arbitrary widget, you can call the :" +"meth:`_root` method. This method begins with an underscore to denote the " +"fact that this function is part of the implementation, and not an interface " +"to Tk functionality." +msgstr "" +"Pour accéder à la fenêtre du plus haut niveau qui contient un objet " +"graphique donné, vous pouvez souvent simplement vous référer au parent de " +"cet objet graphique. Bien sûr, si l'objet graphique a été empaqueté à " +"l'intérieur d'un cadre, le parent ne représentera pas la fenêtre de plus " +"haut niveau. Pour accéder à la fenêtre du plus haut niveau qui contient un " +"objet graphique arbitraire, vous pouvez appeler la méthode :meth:`_root`. " +"Cette méthode commence par un soulignement pour indiquer que cette fonction " +"fait partie de l'implémentation, et non d'une interface avec la " +"fonctionnalité Tk." + +#: ../Doc/library/tkinter.rst:590 +msgid "Here are some examples of typical usage::" +msgstr "Voici quelques exemples d'utilisation courante ::" + +#: ../Doc/library/tkinter.rst:613 +msgid "Tk Option Data Types" +msgstr "Types de données des options Tk" + +#: ../Doc/library/tkinter.rst:618 +msgid "" +"Legal values are points of the compass: ``\"n\"``, ``\"ne\"``, ``\"e\"``, ``" +"\"se\"``, ``\"s\"``, ``\"sw\"``, ``\"w\"``, ``\"nw\"``, and also ``\"center" +"\"``." +msgstr "" +"Les valeurs acceptées sont des points cardinaux : ``« n »``, ``« ne »``, ``« " +"e »``, ``« se »``, ``« s »``, ``« sw »``, ``« w »``, ``« nw »`` et ``« " +"center »``." + +#: ../Doc/library/tkinter.rst:625 +msgid "bitmap" +msgstr "*bitmap*" + +#: ../Doc/library/tkinter.rst:622 +msgid "" +"There are eight built-in, named bitmaps: ``'error'``, ``'gray25'``, " +"``'gray50'``, ``'hourglass'``, ``'info'``, ``'questhead'``, ``'question'``, " +"``'warning'``. To specify an X bitmap filename, give the full path to the " +"file, preceded with an ``@``, as in ``\"@/usr/contrib/bitmap/gumby.bit\"``." +msgstr "" +"Il y a huit bitmaps intégrés nommés : ``« error »``, ``« gray25 »``, ``« " +"gray50 »``, ``« hourglass »``, ``« info »``, ``« questhead »``, ``« question " +"»``, ``« warning »'``. Pour spécifier un nom de fichier bitmap X, indiquez " +"le chemin complet du fichier, précédé de ``@``, comme dans ``\"@/usr/contrib/" +"bitmap/gumby.bit\"``." + +#: ../Doc/library/tkinter.rst:628 +msgid "boolean" +msgstr "*boolean*" + +#: ../Doc/library/tkinter.rst:628 +msgid "You can pass integers 0 or 1 or the strings ``\"yes\"`` or ``\"no\"``." +msgstr "" +"Vous pouvez lui donner les entiers 0 ou 1 ou les chaînes de caractères ``" +"\"yes\"`` ou ``\"no\"``." + +#: ../Doc/library/tkinter.rst:635 +msgid "callback" +msgstr "*callback*" + +#: ../Doc/library/tkinter.rst:631 +msgid "This is any Python function that takes no arguments. For example::" +msgstr "" +"N'importe quelle fonction Python qui ne prend pas d'argument. Par exemple ::" + +#: ../Doc/library/tkinter.rst:641 +msgid "color" +msgstr "*color*" + +#: ../Doc/library/tkinter.rst:638 +msgid "" +"Colors can be given as the names of X colors in the rgb.txt file, or as " +"strings representing RGB values in 4 bit: ``\"#RGB\"``, 8 bit: ``\"#RRGGBB" +"\"``, 12 bit\" ``\"#RRRGGGBBB\"``, or 16 bit ``\"#RRRRGGGGBBBB\"`` ranges, " +"where R,G,B here represent any legal hex digit. See page 160 of " +"Ousterhout's book for details." +msgstr "" +"Les couleurs peuvent être données sous forme de noms de couleurs Xorg dans " +"le fichier *rgb.txt*, ou sous forme de chaînes représentant les valeurs RVB " +"en 4 bits : ``« #RGB »``, 8 bits : ``« #RRVVBB »``, 12 bits``« #RRRVVVBBB " +"»``, ou 16 bits ``« #RRRRVVVVBBBB »``, où R,V,B représente ici tout chiffre " +"hexadécimal valide. Voir page 160 du livre d'Ousterhout pour plus de " +"détails." + +#: ../Doc/library/tkinter.rst:647 +msgid "cursor" +msgstr "*cursor*" + +#: ../Doc/library/tkinter.rst:644 +msgid "" +"The standard X cursor names from :file:`cursorfont.h` can be used, without " +"the ``XC_`` prefix. For example to get a hand cursor (:const:`XC_hand2`), " +"use the string ``\"hand2\"``. You can also specify a bitmap and mask file " +"of your own. See page 179 of Ousterhout's book." +msgstr "" +"Les noms de curseurs Xorg standard que l'on trouve dans :file:`cursorfont.h` " +"peuvent être utilisés, sans le préfixe ``XC_``. Par exemple pour obtenir un " +"curseur en forme de main (:const:`XC_hand2`), utilisez la chaîne ``« hand2 " +"»``. Vous pouvez également spécifier votre propre bitmap et fichier masque. " +"Voir page 179 du livre d'Ousterhout." + +#: ../Doc/library/tkinter.rst:654 +msgid "distance" +msgstr "*distance*" + +#: ../Doc/library/tkinter.rst:650 +msgid "" +"Screen distances can be specified in either pixels or absolute distances. " +"Pixels are given as numbers and absolute distances as strings, with the " +"trailing character denoting units: ``c`` for centimetres, ``i`` for inches, " +"``m`` for millimetres, ``p`` for printer's points. For example, 3.5 inches " +"is expressed as ``\"3.5i\"``." +msgstr "" +"Les distances à l'écran peuvent être spécifiées en pixels ou en distances " +"absolues. Les pixels sont donnés sous forme de nombres et les distances " +"absolues sous forme de chaînes de caractères, le dernier caractère indiquant " +"les unités : ``c`` pour les centimètres, ``i`` pour les pouces (*inches* en " +"anglais), ``m`` pour les millimètres, ``p`` pour les points d'impression. " +"Par exemple, 3,5 pouces est noté ``« 3.5i »``." + +#: ../Doc/library/tkinter.rst:659 +msgid "font" +msgstr "*font*" + +#: ../Doc/library/tkinter.rst:657 +msgid "" +"Tk uses a list font name format, such as ``{courier 10 bold}``. Font sizes " +"with positive numbers are measured in points; sizes with negative numbers " +"are measured in pixels." +msgstr "" +"*Tk* utilise un format de nom de police sous forme de liste, tel que " +"``{courier 10 bold}``. Les tailles de polices avec des nombres positifs sont " +"mesurées en points ; les tailles avec des nombres négatifs sont mesurées en " +"pixels." + +#: ../Doc/library/tkinter.rst:664 +msgid "geometry" +msgstr "*geometry*" + +#: ../Doc/library/tkinter.rst:662 +msgid "" +"This is a string of the form ``widthxheight``, where width and height are " +"measured in pixels for most widgets (in characters for widgets displaying " +"text). For example: ``fred[\"geometry\"] = \"200x100\"``." +msgstr "" +"Il s'agit d'une chaîne de caractères de la forme ``largeurxhauteur``, où la " +"largeur et la hauteur sont mesurées en pixels pour la plupart des objets " +"graphiques (en caractères pour les objets graphiques affichant du texte). " +"Par exemple : ``fred[\"geometry\"] = \"200x100\"``." + +#: ../Doc/library/tkinter.rst:668 +msgid "justify" +msgstr "*justify*" + +#: ../Doc/library/tkinter.rst:667 +msgid "" +"Legal values are the strings: ``\"left\"``, ``\"center\"``, ``\"right\"``, " +"and ``\"fill\"``." +msgstr "" +"Les valeurs acceptées sont les chaînes de caractères : `« left »``, ``« " +"center »``, ``« right »`` et ``« fill »``." + +#: ../Doc/library/tkinter.rst:673 +msgid "region" +msgstr "*region*" + +#: ../Doc/library/tkinter.rst:671 +msgid "" +"This is a string with four space-delimited elements, each of which is a " +"legal distance (see above). For example: ``\"2 3 4 5\"`` and ``\"3i 2i 4.5i " +"2i\"`` and ``\"3c 2c 4c 10.43c\"`` are all legal regions." +msgstr "" +"c'est une chaîne de caractères avec quatre éléments séparés par des espaces, " +"chacun d'eux étant une distance valide (voir ci-dessus). Par exemple : ``" +"\"2 3 4 5\"``et ``\" 3i 2i 4.5i 2i\"``et ``\"3c 2c 4c 10.43c\"`` sont toutes " +"des régions valides." + +#: ../Doc/library/tkinter.rst:677 +msgid "relief" +msgstr "*relief*" + +#: ../Doc/library/tkinter.rst:676 +msgid "" +"Determines what the border style of a widget will be. Legal values are: ``" +"\"raised\"``, ``\"sunken\"``, ``\"flat\"``, ``\"groove\"``, and ``\"ridge" +"\"``." +msgstr "" +"Détermine le style de bordure d'un objet graphique. Les valeurs valides " +"sont : ``\"raised\"``, ``\"sunken\"``, ``\"flat\"``, ``\"groove\"``, et ``" +"\"ridge\"``." + +#: ../Doc/library/tkinter.rst:681 +msgid "scrollcommand" +msgstr "*scrollcommand*" + +#: ../Doc/library/tkinter.rst:680 +msgid "" +"This is almost always the :meth:`!set` method of some scrollbar widget, but " +"can be any widget method that takes a single argument." +msgstr "" +"C'est presque toujours la méthode :meth:`!set` d'un objet graphique de " +"défilement, mais peut être n'importe quelle méthode d'objet graphique qui " +"prend un seul argument." + +#: ../Doc/library/tkinter.rst:685 +msgid "wrap:" +msgstr "*wrap*" + +#: ../Doc/library/tkinter.rst:684 +msgid "Must be one of: ``\"none\"``, ``\"char\"``, or ``\"word\"``." +msgstr "Doit être l'un d'eux : ``\"none\"``, ``\"char\"``, ou ``\"word\"``." + +#: ../Doc/library/tkinter.rst:688 +msgid "Bindings and Events" +msgstr "Liaisons et événements" + +#: ../Doc/library/tkinter.rst:694 +msgid "" +"The bind method from the widget command allows you to watch for certain " +"events and to have a callback function trigger when that event type occurs. " +"The form of the bind method is::" +msgstr "" +"La méthode `bind` de la commande d'objet graphique vous permet de surveiller " +"certains événements et d'avoir un déclencheur de fonction de rappel lorsque " +"ce type d'événement se produit. La forme de la méthode de liaison est la " +"suivante ::" + +#: ../Doc/library/tkinter.rst:700 +msgid "where:" +msgstr "où :" + +#: ../Doc/library/tkinter.rst:704 +msgid "sequence" +msgstr "*sequence*" + +#: ../Doc/library/tkinter.rst:703 +msgid "" +"is a string that denotes the target kind of event. (See the bind man page " +"and page 201 of John Ousterhout's book for details)." +msgstr "" +"est une chaîne de caractères qui indique le type d'événement cible. (Voir " +"la page du manuel de *bind* et la page 201 du livre de John Ousterhout pour " +"plus de détails)." + +#: ../Doc/library/tkinter.rst:709 +msgid "func" +msgstr "*func*" + +#: ../Doc/library/tkinter.rst:707 +msgid "" +"is a Python function, taking one argument, to be invoked when the event " +"occurs. An Event instance will be passed as the argument. (Functions " +"deployed this way are commonly known as *callbacks*.)" +msgstr "" +"est une fonction Python, prenant un argument, à invoquer lorsque l'événement " +"se produit. Une instance d’évènement sera passée en argument. (Les fonctions " +"déployées de cette façon sont communément appelées *callbacks* ou « " +"fonctions de rappel » en français)." + +#: ../Doc/library/tkinter.rst:715 +msgid "add" +msgstr "*add*" + +#: ../Doc/library/tkinter.rst:712 +msgid "" +"is optional, either ``''`` or ``'+'``. Passing an empty string denotes that " +"this binding is to replace any other bindings that this event is associated " +"with. Passing a ``'+'`` means that this function is to be added to the list " +"of functions bound to this event type." +msgstr "" +"est facultative, soit ``''`` ou ``'+'``. L'envoi d'une chaîne de caractères " +"vide indique que cette liaison doit remplacer toute autre liaison à laquelle " +"cet événement est associé. L'envoi de``«+»`` signifie que cette fonction " +"doit être ajoutée à la liste des fonctions liées à ce type d'événement." + +#: ../Doc/library/tkinter.rst:724 +msgid "" +"Notice how the widget field of the event is being accessed in the " +"``turn_red()`` callback. This field contains the widget that caught the X " +"event. The following table lists the other event fields you can access, and " +"how they are denoted in Tk, which can be useful when referring to the Tk man " +"pages." +msgstr "" +"Remarquez comment on accède au champ *objet graphique* de l'événement dans " +"la fonction de rappel ``turn_red()``. Ce champ contient l'objet graphique " +"qui a capturé l'événement Xorg. Le tableau suivant répertorie les autres " +"champs d'événements auxquels vous pouvez accéder, et comment ils sont nommés " +"dans Tk, ce qui peut être utile lorsque vous vous référez aux pages de " +"manuel Tk." + +#: ../Doc/library/tkinter.rst:730 +msgid "Tk" +msgstr "Tk" + +#: ../Doc/library/tkinter.rst:730 +msgid "Tkinter Event Field" +msgstr "Champ *évènement* de Tkinter" + +#: ../Doc/library/tkinter.rst:732 +msgid "%f" +msgstr "%f" + +#: ../Doc/library/tkinter.rst:732 +msgid "focus" +msgstr "focus" + +#: ../Doc/library/tkinter.rst:732 +msgid "%A" +msgstr "%A" + +#: ../Doc/library/tkinter.rst:732 +msgid "char" +msgstr "char" + +#: ../Doc/library/tkinter.rst:734 +msgid "%h" +msgstr "%h" + +#: ../Doc/library/tkinter.rst:734 +msgid "height" +msgstr "hauteur" + +#: ../Doc/library/tkinter.rst:734 +msgid "%E" +msgstr "%E" + +#: ../Doc/library/tkinter.rst:734 +msgid "send_event" +msgstr "send_event" + +#: ../Doc/library/tkinter.rst:736 +msgid "%k" +msgstr "%k" + +#: ../Doc/library/tkinter.rst:736 +msgid "keycode" +msgstr "keycode" + +#: ../Doc/library/tkinter.rst:736 +msgid "%K" +msgstr "%K" + +#: ../Doc/library/tkinter.rst:736 +msgid "keysym" +msgstr "keysym" + +#: ../Doc/library/tkinter.rst:738 +msgid "%s" +msgstr "%s" + +#: ../Doc/library/tkinter.rst:738 +msgid "state" +msgstr "state" + +#: ../Doc/library/tkinter.rst:738 +msgid "%N" +msgstr "%N" + +#: ../Doc/library/tkinter.rst:738 +msgid "keysym_num" +msgstr "keysym_num" + +#: ../Doc/library/tkinter.rst:740 +msgid "%t" +msgstr "%t" + +#: ../Doc/library/tkinter.rst:740 +msgid "time" +msgstr "time" + +#: ../Doc/library/tkinter.rst:740 +msgid "%T" +msgstr "%T" + +#: ../Doc/library/tkinter.rst:740 +msgid "type" +msgstr "type" + +#: ../Doc/library/tkinter.rst:742 +msgid "%w" +msgstr "%w" + +#: ../Doc/library/tkinter.rst:742 +msgid "width" +msgstr "width" + +#: ../Doc/library/tkinter.rst:742 +msgid "%W" +msgstr "%W" + +#: ../Doc/library/tkinter.rst:742 +msgid "widget" +msgstr "widget" + +#: ../Doc/library/tkinter.rst:744 +msgid "%x" +msgstr "%x" + +#: ../Doc/library/tkinter.rst:744 +msgid "x" +msgstr "x" + +#: ../Doc/library/tkinter.rst:744 +msgid "%X" +msgstr "%X" + +#: ../Doc/library/tkinter.rst:744 +msgid "x_root" +msgstr "x_root" + +#: ../Doc/library/tkinter.rst:746 +msgid "%y" +msgstr "%y" + +#: ../Doc/library/tkinter.rst:746 +msgid "y" +msgstr "y" + +#: ../Doc/library/tkinter.rst:746 +msgid "%Y" +msgstr "%Y" + +#: ../Doc/library/tkinter.rst:746 +msgid "y_root" +msgstr "y_root" + +#: ../Doc/library/tkinter.rst:751 +msgid "The index Parameter" +msgstr "Le paramètre index" + +#: ../Doc/library/tkinter.rst:753 +msgid "" +"A number of widgets require \"index\" parameters to be passed. These are " +"used to point at a specific place in a Text widget, or to particular " +"characters in an Entry widget, or to particular menu items in a Menu widget." +msgstr "" +"Un certain nombre d'objets graphiques nécessitent le passage de paramètres « " +"indicés ». Ils sont utilisés pour pointer vers un endroit spécifique dans " +"un objet graphique de type *Texte*, ou vers des caractères particuliers dans " +"un objet graphique de type *Entrée*, ou vers des éléments de menu " +"particuliers dans un objet graphique de type *Menu*." + +#: ../Doc/library/tkinter.rst:760 +msgid "Entry widget indexes (index, view index, etc.)" +msgstr "" +"Index des objets graphique de type *Entrée* (``index``, ``view index``, etc.)" + +#: ../Doc/library/tkinter.rst:758 +msgid "" +"Entry widgets have options that refer to character positions in the text " +"being displayed. You can use these :mod:`tkinter` functions to access these " +"special points in text widgets:" +msgstr "" +"Les objets graphiques de type *Entrée* ont des options qui se réfèrent à la " +"position des caractères dans le texte affiché. Vous pouvez utiliser ces " +"fonctions :mod:`tkinter` pour accéder à ces points spéciaux dans les objets " +"graphiques texte :" + +#: ../Doc/library/tkinter.rst:764 +msgid "Text widget indexes" +msgstr "Index des objets graphiques texte" + +#: ../Doc/library/tkinter.rst:763 +msgid "" +"The index notation for Text widgets is very rich and is best described in " +"the Tk man pages." +msgstr "" +"La notation de l'index des objets graphiques de type *Texte* est très riche " +"et mieux décrite dans les pages du manuel Tk." + +#: ../Doc/library/tkinter.rst:789 +msgid "Menu indexes (menu.invoke(), menu.entryconfig(), etc.)" +msgstr "Index menu (`menu.invoke()`, `menu.entryconfig()`, etc.)" + +#: ../Doc/library/tkinter.rst:767 +msgid "" +"Some options and methods for menus manipulate specific menu entries. Anytime " +"a menu index is needed for an option or a parameter, you may pass in:" +msgstr "" +"Certaines options et méthodes pour manipuler les menus nécessitent des " +"éléments de spécifiques. Chaque fois qu'un index de menu est nécessaire pour " +"une option ou un paramètre, vous pouvez utiliser :" + +#: ../Doc/library/tkinter.rst:770 +msgid "" +"an integer which refers to the numeric position of the entry in the widget, " +"counted from the top, starting with 0;" +msgstr "" +"un entier qui fait référence à la position numérique de l'entrée dans " +"l'objet graphique, comptée à partir du haut, en commençant par 0 ;" + +#: ../Doc/library/tkinter.rst:773 +msgid "" +"the string ``\"active\"``, which refers to the menu position that is " +"currently under the cursor;" +msgstr "" +"la chaîne de caractères ``\"active\"``, qui fait référence à la position du " +"menu qui se trouve actuellement sous le curseur ;" + +#: ../Doc/library/tkinter.rst:776 +msgid "the string ``\"last\"`` which refers to the last menu item;" +msgstr "" +"la chaîne de caractères ``\"last\"`` qui fait référence au dernier élément " +"du menu ;" + +#: ../Doc/library/tkinter.rst:778 +msgid "" +"An integer preceded by ``@``, as in ``@6``, where the integer is interpreted " +"as a y pixel coordinate in the menu's coordinate system;" +msgstr "" +"un entier précédé de ``@``, comme dans ``@6``, où l'entier est interprété " +"comme une coordonnée y de pixels dans le système de coordonnées du menu ;" + +#: ../Doc/library/tkinter.rst:781 +msgid "" +"the string ``\"none\"``, which indicates no menu entry at all, most often " +"used with menu.activate() to deactivate all entries, and finally," +msgstr "" +"la chaîne de caractères ``\"none\"``, qui n'indique aucune entrée du menu, " +"le plus souvent utilisée avec ``menu.activate()`` pour désactiver toutes les " +"entrées, et enfin," + +#: ../Doc/library/tkinter.rst:784 +msgid "" +"a text string that is pattern matched against the label of the menu entry, " +"as scanned from the top of the menu to the bottom. Note that this index " +"type is considered after all the others, which means that matches for menu " +"items labelled ``last``, ``active``, or ``none`` may be interpreted as the " +"above literals, instead." +msgstr "" +"une chaîne de texte dont le motif correspond à l'étiquette de l'entrée de " +"menu, telle qu'elle est balayée du haut vers le bas du menu. Notez que ce " +"type d'index est considéré après tous les autres, ce qui signifie que les " +"correspondances pour les éléments de menu étiquetés ``last``, ``active`` ou " +"``none`` peuvent être interprétés comme les littéraux ci-dessus, plutôt." + +#: ../Doc/library/tkinter.rst:792 +msgid "Images" +msgstr "Images" + +#: ../Doc/library/tkinter.rst:794 +msgid "" +"Images of different formats can be created through the corresponding " +"subclass of :class:`tkinter.Image`:" +msgstr "" +"Des images de différents formats peuvent être créées à travers la sous-" +"classe correspondante de :class:`tkinter.Image` :" + +#: ../Doc/library/tkinter.rst:797 +msgid ":class:`BitmapImage` for images in XBM format." +msgstr ":class:`BitmapImage` pour les images au format *XBM*." + +#: ../Doc/library/tkinter.rst:799 +msgid "" +":class:`PhotoImage` for images in PGM, PPM, GIF and PNG formats. The latter " +"is supported starting with Tk 8.6." +msgstr "" +":class:`PhotoImage` pour les images aux formats *PGM*, *PPM*, *GIF* et " +"*PNG*. Ce dernier est géré à partir de Tk 8.6." + +#: ../Doc/library/tkinter.rst:802 +msgid "" +"Either type of image is created through either the ``file`` or the ``data`` " +"option (other options are available as well)." +msgstr "" +"L'un ou l'autre type d'image est créé par l'option ``file`` ou ``data`` " +"(d'autres options sont également disponibles)." + +#: ../Doc/library/tkinter.rst:805 +msgid "" +"The image object can then be used wherever an ``image`` option is supported " +"by some widget (e.g. labels, buttons, menus). In these cases, Tk will not " +"keep a reference to the image. When the last Python reference to the image " +"object is deleted, the image data is deleted as well, and Tk will display an " +"empty box wherever the image was used." +msgstr "" +"L'objet image peut alors être utilisé partout où un objet graphique sait " +"gérer une option ``image`` (par ex. étiquettes, boutons, menus). Dans ces " +"cas, Tk ne conserve pas de référence à l'image. Lorsque la dernière " +"référence Python à l'objet image est supprimée, les données de l'image sont " +"également supprimées, et Tk affiche une boite vide à l'endroit où l'image " +"était utilisée." + +#: ../Doc/library/tkinter.rst:813 +msgid "" +"The `Pillow `_ package adds support for formats " +"such as BMP, JPEG, TIFF, and WebP, among others." +msgstr "" +"Le paquet `Pillow `_ ajoute la prise en charge de " +"formats tels que *BMP*, *JPEG*, *TIFF* et *WebP*, entre autres." + +#: ../Doc/library/tkinter.rst:819 +msgid "File Handlers" +msgstr "Gestionnaires de fichiers" + +#: ../Doc/library/tkinter.rst:821 +msgid "" +"Tk allows you to register and unregister a callback function which will be " +"called from the Tk mainloop when I/O is possible on a file descriptor. Only " +"one handler may be registered per file descriptor. Example code::" +msgstr "" +"*Tk* vous permet d'enregistrer et de *désenregistrer* une fonction de rappel " +"qui est appelée depuis la boucle principale de Tk lorsque des entrées-" +"sorties sont possibles sur un descripteur de fichier. Un seul gestionnaire " +"peut être enregistré par descripteur de fichier. Exemple de code ::" + +#: ../Doc/library/tkinter.rst:832 +msgid "This feature is not available on Windows." +msgstr "Cette fonction n'est pas disponible sous Windows." + +#: ../Doc/library/tkinter.rst:834 +msgid "" +"Since you don't know how many bytes are available for reading, you may not " +"want to use the :class:`~io.BufferedIOBase` or :class:`~io.TextIOBase` :meth:" +"`~io.BufferedIOBase.read` or :meth:`~io.IOBase.readline` methods, since " +"these will insist on reading a predefined number of bytes. For sockets, the :" +"meth:`~socket.socket.recv` or :meth:`~socket.socket.recvfrom` methods will " +"work fine; for other files, use raw reads or ``os.read(file.fileno(), " +"maxbytecount)``." +msgstr "" +"Dans la mesure où vous ne savez pas combien d'octets sont disponibles en " +"lecture, il ne faut pas utiliser les méthodes :class:`~io.BufferedIOBase` " +"ou :class:`~io.TextIOBase` :meth:`~io.BufferedIOBase.read` ou :meth:`~io." +"IOBase.readline`, car elles requièrent d'indiquer le nombre de *bytes* à " +"lire. Pour les connecteurs, les méthodes :meth:`~socket.socket.socket.recv` " +"ou :meth:`~socket.socket.recvfrom` fonctionnent bien ; pour les autres " +"fichiers, utilisez des lectures brutes ou ``os.read(file.fileno(), " +"maxbytecount)``." + +#: ../Doc/library/tkinter.rst:845 +msgid "" +"Registers the file handler callback function *func*. The *file* argument may " +"either be an object with a :meth:`~io.IOBase.fileno` method (such as a file " +"or socket object), or an integer file descriptor. The *mask* argument is an " +"ORed combination of any of the three constants below. The callback is called " +"as follows::" +msgstr "" +"Enregistre la fonction de rappel du gestionnaire de fichiers *func*. " +"L'argument ``file`` peut être soit un objet avec une méthode :meth:`~io." +"IOBase.fileno` (comme un objet fichier ou connecteur), soit un descripteur " +"de fichier de type entier. L'argument ``mask`` est une combinaison *OU* de " +"l'une des trois constantes ci-dessous. La fonction de rappel s'utilise comme " +"suit ::" + +#: ../Doc/library/tkinter.rst:856 +msgid "Unregisters a file handler." +msgstr "Désenregistre un gestionnaire de fichiers." + +#: ../Doc/library/tkinter.rst:863 +msgid "Constants used in the *mask* arguments." +msgstr "Constantes utilisées dans les arguments ``mask``." diff --git a/library/tkinter.scrolledtext.po b/library/tkinter.scrolledtext.po new file mode 100644 index 000000000..99af91dc0 --- /dev/null +++ b/library/tkinter.scrolledtext.po @@ -0,0 +1,70 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-06-17 22:27+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/tkinter.scrolledtext.rst:2 +msgid ":mod:`tkinter.scrolledtext` --- Scrolled Text Widget" +msgstr ":mod:`tkinter.scrolledtext` — Gadget texte avec barre de défilement" + +#: ../Doc/library/tkinter.scrolledtext.rst:10 +msgid "**Source code:** :source:`Lib/tkinter/scrolledtext.py`" +msgstr "**Code source :** :source:`Lib/tkinter/scrolledtext.py`" + +#: ../Doc/library/tkinter.scrolledtext.rst:14 +msgid "" +"The :mod:`tkinter.scrolledtext` module provides a class of the same name " +"which implements a basic text widget which has a vertical scroll bar " +"configured to do the \"right thing.\" Using the :class:`ScrolledText` class " +"is a lot easier than setting up a text widget and scroll bar directly. The " +"constructor is the same as that of the :class:`tkinter.Text` class." +msgstr "" +"Le module :mod:`tkinter.scrolledtext` fournit une classe, de même nom, " +"implémentant un simple gadget texte avec une barre de défilement verticale, " +"configuré \"pour faire ce qu'on attend de lui\". Utiliser :class:" +"`ScrolledText` est beaucoup plus simple que configurer un gadget texte et " +"une barre de défilement. Le constructeur est le même que celui de la classe :" +"class:`tkinter.Text`." + +#: ../Doc/library/tkinter.scrolledtext.rst:20 +msgid "" +"The text widget and scrollbar are packed together in a :class:`Frame`, and " +"the methods of the :class:`Grid` and :class:`Pack` geometry managers are " +"acquired from the :class:`Frame` object. This allows the :class:" +"`ScrolledText` widget to be used directly to achieve most normal geometry " +"management behavior." +msgstr "" +"Le gadget texte et la barre de défilement sont regroupés dans une :class:" +"`Frame`, et les méthodes gestionnaires de géométrie :class:`Grid` et :class:" +"`Pack` sont récupérées de l'objet :class:`Frame`. L'objet :class:" +"`ScrolledText` a donc tous les attributs classiques pour la gestion de la " +"géométrie." + +#: ../Doc/library/tkinter.scrolledtext.rst:25 +msgid "" +"Should more specific control be necessary, the following attributes are " +"available:" +msgstr "" +"Si un contrôle plus fin est nécessaire, les attributs suivants sont " +"disponibles :" + +#: ../Doc/library/tkinter.scrolledtext.rst:31 +msgid "The frame which surrounds the text and scroll bar widgets." +msgstr "" +"Le cadre (objet *Frame*) qui englobe le gadget texte et le gadget de la " +"barre de défilement." + +#: ../Doc/library/tkinter.scrolledtext.rst:36 +msgid "The scroll bar widget." +msgstr "Le gadget de la barre de défilement." diff --git a/library/tkinter.tix.po b/library/tkinter.tix.po new file mode 100644 index 000000000..8bea7e313 --- /dev/null +++ b/library/tkinter.tix.po @@ -0,0 +1,511 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/tkinter.tix.rst:2 +msgid ":mod:`tkinter.tix` --- Extension widgets for Tk" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:9 +msgid "**Source code:** :source:`Lib/tkinter/tix.py`" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:13 +msgid "" +"This Tk extension is unmaintained and should not be used in new code. Use :" +"mod:`tkinter.ttk` instead." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:19 +msgid "" +"The :mod:`tkinter.tix` (Tk Interface Extension) module provides an " +"additional rich set of widgets. Although the standard Tk library has many " +"useful widgets, they are far from complete. The :mod:`tkinter.tix` library " +"provides most of the commonly needed widgets that are missing from standard " +"Tk: :class:`HList`, :class:`ComboBox`, :class:`Control` (a.k.a. SpinBox) and " +"an assortment of scrollable widgets. :mod:`tkinter.tix` also includes many " +"more widgets that are generally useful in a wide range of applications: :" +"class:`NoteBook`, :class:`FileEntry`, :class:`PanedWindow`, etc; there are " +"more than 40 of them." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:29 +msgid "" +"With all these new widgets, you can introduce new interaction techniques " +"into applications, creating more useful and more intuitive user interfaces. " +"You can design your application by choosing the most appropriate widgets to " +"match the special needs of your application and users." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:38 +msgid "`Tix Homepage `_" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:37 +msgid "" +"The home page for :mod:`Tix`. This includes links to additional " +"documentation and downloads." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:41 +msgid "`Tix Man Pages `_" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:41 +msgid "On-line version of the man pages and reference material." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:44 +msgid "" +"`Tix Programming Guide `_" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:44 +msgid "On-line version of the programmer's reference material." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:48 +msgid "" +"`Tix Development Applications `_" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:47 +msgid "" +"Tix applications for development of Tix and Tkinter programs. Tide " +"applications work under Tk or Tkinter, and include :program:`TixInspect`, an " +"inspector to remotely modify and debug Tix/Tk/Tkinter applications." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:53 +msgid "Using Tix" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:58 +msgid "" +"Toplevel widget of Tix which represents mostly the main window of an " +"application. It has an associated Tcl interpreter." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:61 +msgid "" +"Classes in the :mod:`tkinter.tix` module subclasses the classes in the :mod:" +"`tkinter`. The former imports the latter, so to use :mod:`tkinter.tix` with " +"Tkinter, all you need to do is to import one module. In general, you can " +"just import :mod:`tkinter.tix`, and replace the toplevel call to :class:" +"`tkinter.Tk` with :class:`tix.Tk`::" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:71 +msgid "" +"To use :mod:`tkinter.tix`, you must have the Tix widgets installed, usually " +"alongside your installation of the Tk widgets. To test your installation, " +"try the following::" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:81 +msgid "Tix Widgets" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:83 +msgid "" +"`Tix `_ introduces over 40 widget classes to the :mod:`tkinter` repertoire." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:88 +msgid "Basic Widgets" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:93 +msgid "" +"A `Balloon `_ that pops up over a widget to provide help. When the user " +"moves the cursor inside a widget to which a Balloon widget has been bound, a " +"small pop-up window with a descriptive message will be shown on the screen." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:105 +msgid "" +"The `ButtonBox `_ widget creates a box of buttons, such as is commonly " +"used for ``Ok Cancel``." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:115 +msgid "" +"The `ComboBox `_ widget is similar to the combo box control in MS Windows. " +"The user can select a choice by either typing in the entry subwidget or " +"selecting from the listbox subwidget." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:127 +msgid "" +"The `Control `_ widget is also known as the :class:`SpinBox` widget. The " +"user can adjust the value by pressing the two arrow buttons or by entering " +"the value directly into the entry. The new value will be checked against the " +"user-defined upper and lower limits." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:140 +msgid "" +"The `LabelEntry `_ widget packages an entry widget and a label into one " +"mega widget. It can be used to simplify the creation of \"entry-form\" type " +"of interface." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:151 +msgid "" +"The `LabelFrame `_ widget packages a frame widget and a label into one " +"mega widget. To create widgets inside a LabelFrame widget, one creates the " +"new widgets relative to the :attr:`frame` subwidget and manage them inside " +"the :attr:`frame` subwidget." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:163 +msgid "" +"The `Meter `_ widget can be used to show the progress of a background job which may " +"take a long time to execute." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:174 +msgid "" +"The `OptionMenu `_ creates a menu button of options." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:184 +msgid "" +"The `PopupMenu `_ widget can be used as a replacement of the ``tk_popup`` " +"command. The advantage of the :mod:`Tix` :class:`PopupMenu` widget is it " +"requires less application code to manipulate." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:196 +msgid "" +"The `Select `_ widget is a container of button subwidgets. It can be used " +"to provide radio-box or check-box style of selection options for the user." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:207 +msgid "" +"The `StdButtonBox `_ widget is a group of standard buttons for Motif-like " +"dialog boxes." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:216 +msgid "File Selectors" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:221 +msgid "" +"The `DirList `_ widget displays a list view of a directory, its previous " +"directories and its sub-directories. The user can choose one of the " +"directories displayed in the list or change to another directory." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:233 +msgid "" +"The `DirTree `_ widget displays a tree view of a directory, its previous " +"directories and its sub-directories. The user can choose one of the " +"directories displayed in the list or change to another directory." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:245 +msgid "" +"The `DirSelectDialog `_ widget presents the directories in the file " +"system in a dialog window. The user can use this dialog window to navigate " +"through the file system to select the desired directory." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:257 +msgid "" +"The :class:`DirSelectBox` is similar to the standard Motif(TM) directory-" +"selection box. It is generally used for the user to choose a directory. " +"DirSelectBox stores the directories mostly recently selected into a ComboBox " +"widget so that they can be quickly selected again." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:265 +msgid "" +"The `ExFileSelectBox `_ widget is usually embedded in a " +"tixExFileSelectDialog widget. It provides a convenient method for the user " +"to select files. The style of the :class:`ExFileSelectBox` widget is very " +"similar to the standard file dialog on MS Windows 3.1." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:278 +msgid "" +"The `FileSelectBox `_ is similar to the standard Motif(TM) file-selection " +"box. It is generally used for the user to choose a file. FileSelectBox " +"stores the files mostly recently selected into a :class:`ComboBox` widget so " +"that they can be quickly selected again." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:291 +msgid "" +"The `FileEntry `_ widget can be used to input a filename. The user can " +"type in the filename manually. Alternatively, the user can press the button " +"widget that sits next to the entry, which will bring up a file selection " +"dialog." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:302 +msgid "Hierarchical ListBox" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:307 +msgid "" +"The `HList `_ widget can be used to display any data that have a hierarchical " +"structure, for example, file system directory trees. The list entries are " +"indented and connected by branch lines according to their places in the " +"hierarchy." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:319 +msgid "" +"The `CheckList `_ widget displays a list of items to be selected by the " +"user. CheckList acts similarly to the Tk checkbutton or radiobutton widgets, " +"except it is capable of handling many more items than checkbuttons or " +"radiobuttons." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:335 +msgid "" +"The `Tree `_ widget can be used to display hierarchical data in a tree form. The " +"user can adjust the view of the tree by opening or closing parts of the tree." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:347 +msgid "Tabular ListBox" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:352 +msgid "" +"The `TList `_ widget can be used to display data in a tabular format. The list " +"entries of a :class:`TList` widget are similar to the entries in the Tk " +"listbox widget. The main differences are (1) the :class:`TList` widget can " +"display the list entries in a two dimensional format and (2) you can use " +"graphical images as well as multiple colors and fonts for the list entries." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:375 +msgid "Manager Widgets" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:380 +msgid "" +"The `PanedWindow `_ widget allows the user to interactively manipulate the " +"sizes of several panes. The panes can be arranged either vertically or " +"horizontally. The user changes the sizes of the panes by dragging the " +"resize handle between two panes." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:392 +msgid "" +"The `ListNoteBook `_ widget is very similar to the :class:`TixNoteBook` " +"widget: it can be used to display many windows in a limited space using a " +"notebook metaphor. The notebook is divided into a stack of pages (windows). " +"At one time only one of these pages can be shown. The user can navigate " +"through these pages by choosing the name of the desired page in the :attr:" +"`hlist` subwidget." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:406 +msgid "" +"The `NoteBook `_ widget can be used to display many windows in a limited " +"space using a notebook metaphor. The notebook is divided into a stack of " +"pages. At one time only one of these pages can be shown. The user can " +"navigate through these pages by choosing the visual \"tabs\" at the top of " +"the NoteBook widget." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:428 +msgid "Image Types" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:430 +msgid "The :mod:`tkinter.tix` module adds:" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:432 +msgid "" +"`pixmap `_ capabilities to all :mod:`tkinter.tix` and :mod:`tkinter` widgets to " +"create color images from XPM files." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:441 +msgid "" +"`Compound `_ image types can be used to create images that consists of multiple " +"horizontal lines; each line is composed of a series of items (texts, " +"bitmaps, images or spaces) arranged from left to right. For example, a " +"compound image can be used to display a bitmap and a text string " +"simultaneously in a Tk :class:`Button` widget." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:460 +msgid "Miscellaneous Widgets" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:465 +msgid "" +"The `InputOnly `_ widgets are to accept inputs from the user, which can be " +"done with the ``bind`` command (Unix only)." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:472 +msgid "Form Geometry Manager" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:474 +msgid "In addition, :mod:`tkinter.tix` augments :mod:`tkinter` by providing:" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:479 +msgid "" +"The `Form `_ geometry manager based on attachment rules for all Tk widgets." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:485 +msgid "Tix Commands" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:490 +msgid "" +"The `tix commands `_ provide access to miscellaneous elements of :mod:`Tix`'s internal " +"state and the :mod:`Tix` application context. Most of the information " +"manipulated by these methods pertains to the application as a whole, or to a " +"screen or display, rather than to a particular window." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:497 +msgid "To view the current settings, the common usage is::" +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:506 +msgid "" +"Query or modify the configuration options of the Tix application context. If " +"no option is specified, returns a dictionary all of the available options. " +"If option is specified with no value, then the method returns a list " +"describing the one named option (this list will be identical to the " +"corresponding sublist of the value returned if no option is specified). If " +"one or more option-value pairs are specified, then the method modifies the " +"given option(s) to have the given value(s); in this case the method returns " +"an empty string. Option may be any of the configuration options." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:518 +msgid "" +"Returns the current value of the configuration option given by *option*. " +"Option may be any of the configuration options." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:524 +msgid "" +"Locates a bitmap file of the name ``name.xpm`` or ``name`` in one of the " +"bitmap directories (see the :meth:`tix_addbitmapdir` method). By using :" +"meth:`tix_getbitmap`, you can avoid hard coding the pathnames of the bitmap " +"files in your application. When successful, it returns the complete pathname " +"of the bitmap file, prefixed with the character ``@``. The returned value " +"can be used to configure the ``bitmap`` option of the Tk and Tix widgets." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:534 +msgid "" +"Tix maintains a list of directories under which the :meth:`tix_getimage` " +"and :meth:`tix_getbitmap` methods will search for image files. The standard " +"bitmap directory is :file:`$TIX_LIBRARY/bitmaps`. The :meth:" +"`tix_addbitmapdir` method adds *directory* into this list. By using this " +"method, the image files of an applications can also be located using the :" +"meth:`tix_getimage` or :meth:`tix_getbitmap` method." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:544 +msgid "" +"Returns the file selection dialog that may be shared among different calls " +"from this application. This method will create a file selection dialog " +"widget when it is called the first time. This dialog will be returned by all " +"subsequent calls to :meth:`tix_filedialog`. An optional dlgclass parameter " +"can be passed as a string to specified what type of file selection dialog " +"widget is desired. Possible options are ``tix``, ``FileSelectDialog`` or " +"``tixExFileSelectDialog``." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:554 +msgid "" +"Locates an image file of the name :file:`name.xpm`, :file:`name.xbm` or :" +"file:`name.ppm` in one of the bitmap directories (see the :meth:" +"`tix_addbitmapdir` method above). If more than one file with the same name " +"(but different extensions) exist, then the image type is chosen according to " +"the depth of the X display: xbm images are chosen on monochrome displays and " +"color images are chosen on color displays. By using :meth:`tix_getimage`, " +"you can avoid hard coding the pathnames of the image files in your " +"application. When successful, this method returns the name of the newly " +"created image, which can be used to configure the ``image`` option of the Tk " +"and Tix widgets." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:567 +msgid "Gets the options maintained by the Tix scheme mechanism." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:572 +msgid "" +"Resets the scheme and fontset of the Tix application to *newScheme* and " +"*newFontSet*, respectively. This affects only those widgets created after " +"this call. Therefore, it is best to call the resetoptions method before the " +"creation of any widgets in a Tix application." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:577 +msgid "" +"The optional parameter *newScmPrio* can be given to reset the priority level " +"of the Tk options set by the Tix schemes." +msgstr "" + +#: ../Doc/library/tkinter.tix.rst:580 +msgid "" +"Because of the way Tk handles the X option database, after Tix has been has " +"imported and inited, it is not possible to reset the color schemes and font " +"sets using the :meth:`tix_config` method. Instead, the :meth:" +"`tix_resetoptions` method must be used." +msgstr "" diff --git a/library/tkinter.ttk.po b/library/tkinter.ttk.po new file mode 100644 index 000000000..7b36224f1 --- /dev/null +++ b/library/tkinter.ttk.po @@ -0,0 +1,2149 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/tkinter.ttk.rst:2 +msgid ":mod:`tkinter.ttk` --- Tk themed widgets" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:9 +msgid "**Source code:** :source:`Lib/tkinter/ttk.py`" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:15 +msgid "" +"The :mod:`tkinter.ttk` module provides access to the Tk themed widget set, " +"introduced in Tk 8.5. If Python has not been compiled against Tk 8.5, this " +"module can still be accessed if *Tile* has been installed. The former " +"method using Tk 8.5 provides additional benefits including anti-aliased font " +"rendering under X11 and window transparency (requiring a composition window " +"manager on X11)." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:22 +msgid "" +"The basic idea for :mod:`tkinter.ttk` is to separate, to the extent " +"possible, the code implementing a widget's behavior from the code " +"implementing its appearance." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:29 +msgid "" +"`Tk Widget Styling Support `_" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:30 +msgid "A document introducing theming support for Tk" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:34 +msgid "Using Ttk" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:36 +msgid "To start using Ttk, import its module::" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:40 +msgid "" +"To override the basic Tk widgets, the import should follow the Tk import::" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:45 +msgid "" +"That code causes several :mod:`tkinter.ttk` widgets (:class:`Button`, :class:" +"`Checkbutton`, :class:`Entry`, :class:`Frame`, :class:`Label`, :class:" +"`LabelFrame`, :class:`Menubutton`, :class:`PanedWindow`, :class:" +"`Radiobutton`, :class:`Scale` and :class:`Scrollbar`) to automatically " +"replace the Tk widgets." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:51 +msgid "" +"This has the direct benefit of using the new widgets which gives a better " +"look and feel across platforms; however, the replacement widgets are not " +"completely compatible. The main difference is that widget options such as " +"\"fg\", \"bg\" and others related to widget styling are no longer present in " +"Ttk widgets. Instead, use the :class:`ttk.Style` class for improved " +"styling effects." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:62 +msgid "" +"`Converting existing applications to use Tile widgets `_" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:62 +msgid "" +"A monograph (using Tcl terminology) about differences typically encountered " +"when moving applications to use the new widgets." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:67 +msgid "Ttk Widgets" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:69 +msgid "" +"Ttk comes with 18 widgets, twelve of which already existed in tkinter: :" +"class:`Button`, :class:`Checkbutton`, :class:`Entry`, :class:`Frame`, :class:" +"`Label`, :class:`LabelFrame`, :class:`Menubutton`, :class:`PanedWindow`, :" +"class:`Radiobutton`, :class:`Scale`, :class:`Scrollbar`, and :class:" +"`Spinbox`. The other six are new: :class:`Combobox`, :class:`Notebook`, :" +"class:`Progressbar`, :class:`Separator`, :class:`Sizegrip` and :class:" +"`Treeview`. And all them are subclasses of :class:`Widget`." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:77 +msgid "" +"Using the Ttk widgets gives the application an improved look and feel. As " +"discussed above, there are differences in how the styling is coded." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:80 +msgid "Tk code::" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:86 +msgid "Ttk code::" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:94 +msgid "" +"For more information about TtkStyling_, see the :class:`Style` class " +"documentation." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:98 +msgid "Widget" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:100 +msgid "" +":class:`ttk.Widget` defines standard options and methods supported by Tk " +"themed widgets and is not supposed to be directly instantiated." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:105 +msgid "Standard Options" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:107 +msgid "All the :mod:`ttk` Widgets accepts the following options:" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:112 ../Doc/library/tkinter.ttk.rst:147 +#: ../Doc/library/tkinter.ttk.rst:173 ../Doc/library/tkinter.ttk.rst:216 +#: ../Doc/library/tkinter.ttk.rst:319 ../Doc/library/tkinter.ttk.rst:405 +#: ../Doc/library/tkinter.ttk.rst:481 ../Doc/library/tkinter.ttk.rst:507 +#: ../Doc/library/tkinter.ttk.rst:671 ../Doc/library/tkinter.ttk.rst:742 +#: ../Doc/library/tkinter.ttk.rst:810 ../Doc/library/tkinter.ttk.rst:861 +#: ../Doc/library/tkinter.ttk.rst:889 +msgid "Option" +msgstr "Option" + +#: ../Doc/library/tkinter.ttk.rst:112 ../Doc/library/tkinter.ttk.rst:147 +#: ../Doc/library/tkinter.ttk.rst:173 ../Doc/library/tkinter.ttk.rst:216 +#: ../Doc/library/tkinter.ttk.rst:232 ../Doc/library/tkinter.ttk.rst:319 +#: ../Doc/library/tkinter.ttk.rst:405 ../Doc/library/tkinter.ttk.rst:481 +#: ../Doc/library/tkinter.ttk.rst:507 ../Doc/library/tkinter.ttk.rst:671 +#: ../Doc/library/tkinter.ttk.rst:742 ../Doc/library/tkinter.ttk.rst:810 +#: ../Doc/library/tkinter.ttk.rst:861 ../Doc/library/tkinter.ttk.rst:889 +#: ../Doc/library/tkinter.ttk.rst:934 +msgid "Description" +msgstr "Description" + +#: ../Doc/library/tkinter.ttk.rst:114 +msgid "class" +msgstr "classe" + +#: ../Doc/library/tkinter.ttk.rst:114 +msgid "" +"Specifies the window class. The class is used when querying the option " +"database for the window's other options, to determine the default bindtags " +"for the window, and to select the widget's default layout and style. This " +"option is read-only, and may only be specified when the window is created." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:121 +msgid "cursor" +msgstr "*cursor*" + +#: ../Doc/library/tkinter.ttk.rst:121 +msgid "" +"Specifies the mouse cursor to be used for the widget. If set to the empty " +"string (the default), the cursor is inherited for the parent widget." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:125 +msgid "takefocus" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:125 +msgid "" +"Determines whether the window accepts the focus during keyboard traversal. " +"0, 1 or an empty string is returned. If 0 is returned, it means that the " +"window should be skipped entirely during keyboard traversal. If 1, it means " +"that the window should receive the input focus as long as it is viewable. " +"And an empty string means that the traversal scripts make the decision about " +"whether or not to focus on the window." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:134 +msgid "style" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:134 +msgid "May be used to specify a custom widget style." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:139 +msgid "Scrollable Widget Options" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:141 +msgid "" +"The following options are supported by widgets that are controlled by a " +"scrollbar." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:149 +msgid "xscrollcommand" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:149 +msgid "Used to communicate with horizontal scrollbars." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:151 +msgid "" +"When the view in the widget's window change, the widget will generate a Tcl " +"command based on the scrollcommand." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:154 +msgid "" +"Usually this option consists of the method :meth:`Scrollbar.set` of some " +"scrollbar. This will cause the scrollbar to be updated whenever the view in " +"the window changes." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:159 +msgid "yscrollcommand" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:159 +msgid "" +"Used to communicate with vertical scrollbars. For some more information, see " +"above." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:165 +msgid "Label Options" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:167 +msgid "" +"The following options are supported by labels, buttons and other button-like " +"widgets." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:175 ../Doc/library/tkinter.ttk.rst:523 +#: ../Doc/library/tkinter.ttk.rst:863 +msgid "text" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:175 +msgid "Specifies a text string to be displayed inside the widget." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:177 ../Doc/library/tkinter.ttk.rst:341 +msgid "textvariable" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:177 +msgid "" +"Specifies a name whose value will be used in place of the text option " +"resource." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:180 ../Doc/library/tkinter.ttk.rst:532 +msgid "underline" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:180 +msgid "" +"If set, specifies the index (0-based) of a character to underline in the " +"text string. The underline character is used for mnemonic activation." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:184 ../Doc/library/tkinter.ttk.rst:525 +#: ../Doc/library/tkinter.ttk.rst:865 ../Doc/library/tkinter.ttk.rst:897 +msgid "image" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:184 +msgid "" +"Specifies an image to display. This is a list of 1 or more elements. The " +"first element is the default image name. The rest of the list if a sequence " +"of statespec/value pairs as defined by :meth:`Style.map`, specifying " +"different images to use when the widget is in a particular state or a " +"combination of states. All images in the list should have the same size." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:192 ../Doc/library/tkinter.ttk.rst:528 +msgid "compound" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:192 +msgid "" +"Specifies how to display the image relative to the text, in the case both " +"text and images options are present. Valid values are:" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:196 +msgid "text: display text only" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:197 +msgid "image: display image only" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:198 +msgid "" +"top, bottom, left, right: display image above, below, left of, or right of " +"the text, respectively." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:200 +msgid "none: the default. display the image if present, otherwise the text." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:203 ../Doc/library/tkinter.ttk.rst:349 +#: ../Doc/library/tkinter.ttk.rst:493 +msgid "width" +msgstr "width" + +#: ../Doc/library/tkinter.ttk.rst:203 +msgid "" +"If greater than zero, specifies how much space, in character widths, to " +"allocate for the text label, if less than zero, specifies a minimum width. " +"If zero or unspecified, the natural width of the text label is used." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:211 +msgid "Compatibility Options" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:218 ../Doc/library/tkinter.ttk.rst:334 +#: ../Doc/library/tkinter.ttk.rst:509 +msgid "state" +msgstr "state" + +#: ../Doc/library/tkinter.ttk.rst:218 +msgid "" +"May be set to \"normal\" or \"disabled\" to control the \"disabled\" state " +"bit. This is a write-only option: setting it changes the widget state, but " +"the :meth:`Widget.state` method does not affect this option." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:225 +msgid "Widget States" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:227 +msgid "The widget state is a bitmap of independent state flags." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:232 +msgid "Flag" +msgstr "Option" + +#: ../Doc/library/tkinter.ttk.rst:234 +msgid "active" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:234 +msgid "" +"The mouse cursor is over the widget and pressing a mouse button will cause " +"some action to occur" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:237 +msgid "disabled" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:237 +msgid "Widget is disabled under program control" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:239 +msgid "focus" +msgstr "focus" + +#: ../Doc/library/tkinter.ttk.rst:239 +msgid "Widget has keyboard focus" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:241 +msgid "pressed" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:241 +msgid "Widget is being pressed" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:243 +msgid "selected" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:243 +msgid "" +"\"On\", \"true\", or \"current\" for things like Checkbuttons and " +"radiobuttons" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:246 ../Doc/library/tkinter.ttk.rst:893 +msgid "background" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:246 +msgid "" +"Windows and Mac have a notion of an \"active\" or foreground window. The " +"*background* state is set for widgets in a background window, and cleared " +"for those in the foreground window" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:251 +msgid "readonly" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:251 +msgid "Widget should not allow user modification" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:253 +msgid "alternate" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:253 +msgid "A widget-specific alternate display format" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:255 +msgid "invalid" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:255 +msgid "The widget's value is invalid" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:258 +msgid "" +"A state specification is a sequence of state names, optionally prefixed with " +"an exclamation point indicating that the bit is off." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:263 +msgid "ttk.Widget" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:265 +msgid "" +"Besides the methods described below, the :class:`ttk.Widget` supports the " +"methods :meth:`tkinter.Widget.cget` and :meth:`tkinter.Widget.configure`." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:272 +msgid "" +"Returns the name of the element at position *x* *y*, or the empty string if " +"the point does not lie within any element." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:275 +msgid "*x* and *y* are pixel coordinates relative to the widget." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:280 +msgid "" +"Test the widget's state. If a callback is not specified, returns ``True`` if " +"the widget state matches *statespec* and ``False`` otherwise. If callback is " +"specified then it is called with args if widget state matches *statespec*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:288 +msgid "" +"Modify or inquire widget state. If *statespec* is specified, sets the widget " +"state according to it and return a new *statespec* indicating which flags " +"were changed. If *statespec* is not specified, returns the currently-enabled " +"state flags." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:293 +msgid "*statespec* will usually be a list or a tuple." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:297 +msgid "Combobox" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:299 +msgid "" +"The :class:`ttk.Combobox` widget combines a text field with a pop-down list " +"of values. This widget is a subclass of :class:`Entry`." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:302 +msgid "" +"Besides the methods inherited from :class:`Widget`: :meth:`Widget.cget`, :" +"meth:`Widget.configure`, :meth:`Widget.identify`, :meth:`Widget.instate` " +"and :meth:`Widget.state`, and the following inherited from :class:`Entry`: :" +"meth:`Entry.bbox`, :meth:`Entry.delete`, :meth:`Entry.icursor`, :meth:`Entry." +"index`, :meth:`Entry.insert`, :meth:`Entry.selection`, :meth:`Entry.xview`, " +"it has some other methods, described at :class:`ttk.Combobox`." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:312 ../Doc/library/tkinter.ttk.rst:398 +#: ../Doc/library/tkinter.ttk.rst:474 ../Doc/library/tkinter.ttk.rst:664 +#: ../Doc/library/tkinter.ttk.rst:735 ../Doc/library/tkinter.ttk.rst:803 +msgid "Options" +msgstr "Options" + +#: ../Doc/library/tkinter.ttk.rst:314 ../Doc/library/tkinter.ttk.rst:400 +#: ../Doc/library/tkinter.ttk.rst:476 ../Doc/library/tkinter.ttk.rst:666 +#: ../Doc/library/tkinter.ttk.rst:805 +msgid "This widget accepts the following specific options:" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:321 +msgid "exportselection" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:321 +msgid "" +"Boolean value. If set, the widget selection is linked to the Window Manager " +"selection (which can be returned by invoking Misc.selection_get, for " +"example)." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:325 +msgid "justify" +msgstr "*justify*" + +#: ../Doc/library/tkinter.ttk.rst:325 +msgid "" +"Specifies how the text is aligned within the widget. One of \"left\", " +"\"center\", or \"right\"." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:328 ../Doc/library/tkinter.ttk.rst:483 +#: ../Doc/library/tkinter.ttk.rst:820 +msgid "height" +msgstr "height" + +#: ../Doc/library/tkinter.ttk.rst:328 +msgid "Specifies the height of the pop-down listbox, in rows." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:330 +msgid "postcommand" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:330 +msgid "" +"A script (possibly registered with Misc.register) that is called immediately " +"before displaying the values. It may specify which values to display." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:334 +msgid "" +"One of \"normal\", \"readonly\", or \"disabled\". In the \"readonly\" state, " +"the value may not be edited directly, and the user can only selection of the " +"values from the dropdown list. In the \"normal\" state, the text field is " +"directly editable. In the \"disabled\" state, no interaction is possible." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:341 +msgid "" +"Specifies a name whose value is linked to the widget value. Whenever the " +"value associated with that name changes, the widget value is updated, and " +"vice versa. See :class:`tkinter.StringVar`." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:346 ../Doc/library/tkinter.ttk.rst:419 +#: ../Doc/library/tkinter.ttk.rst:867 +msgid "values" +msgstr "valeurs" + +#: ../Doc/library/tkinter.ttk.rst:346 +msgid "Specifies the list of values to display in the drop-down listbox." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:349 +msgid "" +"Specifies an integer value indicating the desired width of the entry window, " +"in average-size characters of the widget's font." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:356 ../Doc/library/tkinter.ttk.rst:444 +msgid "Virtual events" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:358 +msgid "" +"The combobox widgets generates a **<>** virtual event when " +"the user selects an element from the list of values." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:363 +msgid "ttk.Combobox" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:369 +msgid "" +"If *newindex* is specified, sets the combobox value to the element position " +"*newindex*. Otherwise, returns the index of the current value or -1 if the " +"current value is not in the values list." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:376 +msgid "Returns the current value of the combobox." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:381 +msgid "Sets the value of the combobox to *value*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:385 +msgid "Spinbox" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:386 +msgid "" +"The :class:`ttk.Spinbox` widget is a :class:`ttk.Entry` enhanced with " +"increment and decrement arrows. It can be used for numbers or lists of " +"string values. This widget is a subclass of :class:`Entry`." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:390 +msgid "" +"Besides the methods inherited from :class:`Widget`: :meth:`Widget.cget`, :" +"meth:`Widget.configure`, :meth:`Widget.identify`, :meth:`Widget.instate` " +"and :meth:`Widget.state`, and the following inherited from :class:`Entry`: :" +"meth:`Entry.bbox`, :meth:`Entry.delete`, :meth:`Entry.icursor`, :meth:`Entry." +"index`, :meth:`Entry.insert`, :meth:`Entry.xview`, it has some other " +"methods, described at :class:`ttk.Spinbox`." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:407 +msgid "from" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:407 +msgid "" +"Float value. If set, this is the minimum value to which the decrement " +"button will decrement. Must be spelled as ``from_`` when used as an " +"argument, since ``from`` is a Python keyword." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:412 +msgid "to" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:412 +msgid "" +"Float value. If set, this is the maximum value to which the increment " +"button will increment." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:415 +msgid "increment" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:415 +msgid "" +"Float value. Specifies the amount which the increment/decrement buttons " +"change the value. Defaults to 1.0." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:419 +msgid "" +"Sequence of string or float values. If specified, the increment/decrement " +"buttons will cycle through the items in this sequence rather than " +"incrementing or decrementing numbers." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:425 +msgid "wrap" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:425 +msgid "" +"Boolean value. If ``True``, increment and decrement buttons will cycle from " +"the ``to`` value to the ``from`` value or the ``from`` value to the ``to`` " +"value, respectively." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:430 +msgid "format" +msgstr "format" + +#: ../Doc/library/tkinter.ttk.rst:430 +msgid "" +"String value. This specifies the format of numbers set by the increment/" +"decrement buttons. It must be in the form \"%W.Pf\", where W is the padded " +"width of the value, P is the precision, and '%' and 'f' are literal." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:436 +msgid "command" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:436 +msgid "" +"Python callable. Will be called with no arguments whenever either of the " +"increment or decrement buttons are pressed." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:446 +msgid "" +"The spinbox widget generates an **<>** virtual event when the " +"user presses , and a **<>** virtual event when the user " +"presses ." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:451 +msgid "ttk.Spinbox" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:457 +msgid "Returns the current value of the spinbox." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:462 +msgid "Sets the value of the spinbox to *value*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:466 +msgid "Notebook" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:468 +msgid "" +"Ttk Notebook widget manages a collection of windows and displays a single " +"one at a time. Each child window is associated with a tab, which the user " +"may select to change the currently-displayed window." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:483 +msgid "" +"If present and greater than zero, specifies the desired height of the pane " +"area (not including internal padding or tabs). Otherwise, the maximum height " +"of all panes is used." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:487 ../Doc/library/tkinter.ttk.rst:519 +#: ../Doc/library/tkinter.ttk.rst:824 +msgid "padding" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:487 +msgid "" +"Specifies the amount of extra space to add around the outside of the " +"notebook. The padding is a list up to four length specifications left top " +"right bottom. If fewer than four elements are specified, bottom defaults to " +"top, right defaults to left, and top defaults to left." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:493 +msgid "" +"If present and greater than zero, specified the desired width of the pane " +"area (not including internal padding). Otherwise, the maximum width of all " +"panes is used." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:500 +msgid "Tab Options" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:502 +msgid "There are also specific options for tabs:" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:509 +msgid "" +"Either \"normal\", \"disabled\" or \"hidden\". If \"disabled\", then the tab " +"is not selectable. If \"hidden\", then the tab is not shown." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:513 +msgid "sticky" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:513 +msgid "" +"Specifies how the child window is positioned within the pane area. Value is " +"a string containing zero or more of the characters \"n\", \"s\", \"e\" or \"w" +"\". Each letter refers to a side (north, south, east or west) that the child " +"window will stick to, as per the :meth:`grid` geometry manager." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:519 +msgid "" +"Specifies the amount of extra space to add between the notebook and this " +"pane. Syntax is the same as for the option padding used by this widget." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:523 +msgid "Specifies a text to be displayed in the tab." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:525 +msgid "" +"Specifies an image to display in the tab. See the option image described in :" +"class:`Widget`." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:528 +msgid "" +"Specifies how to display the image relative to the text, in the case both " +"options text and image are present. See `Label Options`_ for legal values." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:532 +msgid "" +"Specifies the index (0-based) of a character to underline in the text " +"string. The underlined character is used for mnemonic activation if :meth:" +"`Notebook.enable_traversal` is called." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:540 +msgid "Tab Identifiers" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:542 +msgid "" +"The tab_id present in several methods of :class:`ttk.Notebook` may take any " +"of the following forms:" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:545 +msgid "An integer between zero and the number of tabs" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:546 +msgid "The name of a child window" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:547 +msgid "" +"A positional specification of the form \"@x,y\", which identifies the tab" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:548 +msgid "" +"The literal string \"current\", which identifies the currently-selected tab" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:549 +msgid "" +"The literal string \"end\", which returns the number of tabs (only valid " +"for :meth:`Notebook.index`)" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:554 ../Doc/library/tkinter.ttk.rst:927 +msgid "Virtual Events" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:556 +msgid "" +"This widget generates a **<>** virtual event after a new " +"tab is selected." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:561 +msgid "ttk.Notebook" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:567 +msgid "Adds a new tab to the notebook." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:569 +msgid "" +"If window is currently managed by the notebook but hidden, it is restored to " +"its previous position." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:572 ../Doc/library/tkinter.ttk.rst:610 +msgid "See `Tab Options`_ for the list of available options." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:577 +msgid "" +"Removes the tab specified by *tab_id*, unmaps and unmanages the associated " +"window." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:583 +msgid "Hides the tab specified by *tab_id*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:585 +msgid "" +"The tab will not be displayed, but the associated window remains managed by " +"the notebook and its configuration remembered. Hidden tabs may be restored " +"with the :meth:`add` command." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:592 +msgid "" +"Returns the name of the tab element at position *x*, *y*, or the empty " +"string if none." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:598 +msgid "" +"Returns the numeric index of the tab specified by *tab_id*, or the total " +"number of tabs if *tab_id* is the string \"end\"." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:604 +msgid "Inserts a pane at the specified position." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:606 +msgid "" +"*pos* is either the string \"end\", an integer index, or the name of a " +"managed child. If *child* is already managed by the notebook, moves it to " +"the specified position." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:615 +msgid "Selects the specified *tab_id*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:617 +msgid "" +"The associated child window will be displayed, and the previously-selected " +"window (if different) is unmapped. If *tab_id* is omitted, returns the " +"widget name of the currently selected pane." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:624 +msgid "Query or modify the options of the specific *tab_id*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:626 +msgid "" +"If *kw* is not given, returns a dictionary of the tab option values. If " +"*option* is specified, returns the value of that *option*. Otherwise, sets " +"the options to the corresponding values." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:633 +msgid "Returns a list of windows managed by the notebook." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:638 +msgid "" +"Enable keyboard traversal for a toplevel window containing this notebook." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:640 +msgid "" +"This will extend the bindings for the toplevel window containing the " +"notebook as follows:" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:643 +msgid "" +":kbd:`Control-Tab`: selects the tab following the currently selected one." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:644 +msgid "" +":kbd:`Shift-Control-Tab`: selects the tab preceding the currently selected " +"one." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:645 +msgid "" +":kbd:`Alt-K`: where *K* is the mnemonic (underlined) character of any tab, " +"will select that tab." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:648 +msgid "" +"Multiple notebooks in a single toplevel may be enabled for traversal, " +"including nested notebooks. However, notebook traversal only works properly " +"if all panes have the notebook they are in as master." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:654 +msgid "Progressbar" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:656 +msgid "" +"The :class:`ttk.Progressbar` widget shows the status of a long-running " +"operation. It can operate in two modes: 1) the determinate mode which shows " +"the amount completed relative to the total amount of work to be done and 2) " +"the indeterminate mode which provides an animated display to let the user " +"know that work is progressing." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:673 ../Doc/library/tkinter.ttk.rst:744 +msgid "orient" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:673 +msgid "" +"One of \"horizontal\" or \"vertical\". Specifies the orientation of the " +"progress bar." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:676 +msgid "length" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:676 +msgid "" +"Specifies the length of the long axis of the progress bar (width if " +"horizontal, height if vertical)." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:679 +msgid "mode" +msgstr "mode" + +#: ../Doc/library/tkinter.ttk.rst:679 +msgid "One of \"determinate\" or \"indeterminate\"." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:681 +msgid "maximum" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:681 +msgid "A number specifying the maximum value. Defaults to 100." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:683 +msgid "value" +msgstr "valeur" + +#: ../Doc/library/tkinter.ttk.rst:683 +msgid "" +"The current value of the progress bar. In \"determinate\" mode, this " +"represents the amount of work completed. In \"indeterminate\" mode, it is " +"interpreted as modulo *maximum*; that is, the progress bar completes one " +"\"cycle\" when its value increases by *maximum*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:689 +msgid "variable" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:689 +msgid "" +"A name which is linked to the option value. If specified, the value of the " +"progress bar is automatically set to the value of this name whenever the " +"latter is modified." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:693 +msgid "phase" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:693 +msgid "" +"Read-only option. The widget periodically increments the value of this " +"option whenever its value is greater than 0 and, in determinate mode, less " +"than maximum. This option may be used by the current theme to provide " +"additional animation effects." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:701 +msgid "ttk.Progressbar" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:707 +msgid "" +"Begin autoincrement mode: schedules a recurring timer event that calls :meth:" +"`Progressbar.step` every *interval* milliseconds. If omitted, *interval* " +"defaults to 50 milliseconds." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:714 +msgid "Increments the progress bar's value by *amount*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:716 +msgid "*amount* defaults to 1.0 if omitted." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:721 +msgid "" +"Stop autoincrement mode: cancels any recurring timer event initiated by :" +"meth:`Progressbar.start` for this progress bar." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:726 +msgid "Separator" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:728 +msgid "" +"The :class:`ttk.Separator` widget displays a horizontal or vertical " +"separator bar." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:731 +msgid "" +"It has no other methods besides the ones inherited from :class:`ttk.Widget`." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:737 +msgid "This widget accepts the following specific option:" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:744 +msgid "" +"One of \"horizontal\" or \"vertical\". Specifies the orientation of the " +"separator." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:750 +msgid "Sizegrip" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:752 +msgid "" +"The :class:`ttk.Sizegrip` widget (also known as a grow box) allows the user " +"to resize the containing toplevel window by pressing and dragging the grip." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:755 +msgid "" +"This widget has neither specific options nor specific methods, besides the " +"ones inherited from :class:`ttk.Widget`." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:760 +msgid "Platform-specific notes" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:762 +msgid "" +"On MacOS X, toplevel windows automatically include a built-in size grip by " +"default. Adding a :class:`Sizegrip` is harmless, since the built-in grip " +"will just mask the widget." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:768 +msgid "Bugs" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:770 +msgid "" +"If the containing toplevel's position was specified relative to the right or " +"bottom of the screen (e.g. ....), the :class:`Sizegrip` widget will not " +"resize the window." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:773 +msgid "This widget supports only \"southeast\" resizing." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:777 +msgid "Treeview" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:779 +msgid "" +"The :class:`ttk.Treeview` widget displays a hierarchical collection of " +"items. Each item has a textual label, an optional image, and an optional " +"list of data values. The data values are displayed in successive columns " +"after the tree label." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:784 +msgid "" +"The order in which data values are displayed may be controlled by setting " +"the widget option ``displaycolumns``. The tree widget can also display " +"column headings. Columns may be accessed by number or symbolic names listed " +"in the widget option columns. See `Column Identifiers`_." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:789 +msgid "" +"Each item is identified by a unique name. The widget will generate item IDs " +"if they are not supplied by the caller. There is a distinguished root item, " +"named ``{}``. The root item itself is not displayed; its children appear at " +"the top level of the hierarchy." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:794 +msgid "" +"Each item also has a list of tags, which can be used to associate event " +"bindings with individual items and control the appearance of the item." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:797 +msgid "" +"The Treeview widget supports horizontal and vertical scrolling, according to " +"the options described in `Scrollable Widget Options`_ and the methods :meth:" +"`Treeview.xview` and :meth:`Treeview.yview`." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:812 +msgid "columns" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:812 +msgid "" +"A list of column identifiers, specifying the number of columns and their " +"names." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:815 +msgid "displaycolumns" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:815 +msgid "" +"A list of column identifiers (either symbolic or integer indices) specifying " +"which data columns are displayed and the order in which they appear, or the " +"string \"#all\"." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:820 +msgid "" +"Specifies the number of rows which should be visible. Note: the requested " +"width is determined from the sum of the column widths." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:824 +msgid "" +"Specifies the internal padding for the widget. The padding is a list of up " +"to four length specifications." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:827 +msgid "selectmode" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:827 +msgid "" +"Controls how the built-in class bindings manage the selection. One of " +"\"extended\", \"browse\" or \"none\". If set to \"extended\" (the default), " +"multiple items may be selected. If \"browse\", only a single item will be " +"selected at a time. If \"none\", the selection will not be changed." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:834 +msgid "" +"Note that the application code and tag bindings can set the selection " +"however they wish, regardless of the value of this option." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:838 +msgid "show" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:838 +msgid "" +"A list containing zero or more of the following values, specifying which " +"elements of the tree to display." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:841 +msgid "tree: display tree labels in column #0." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:842 +msgid "headings: display the heading row." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:844 +msgid "The default is \"tree headings\", i.e., show all elements." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:847 +msgid "" +"**Note**: Column #0 always refers to the tree column, even if show=\"tree\" " +"is not specified." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:853 +msgid "Item Options" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:855 +msgid "" +"The following item options may be specified for items in the insert and item " +"widget commands." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:863 +msgid "The textual label to display for the item." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:865 +msgid "A Tk Image, displayed to the left of the label." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:867 +msgid "The list of values associated with the item." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:869 +msgid "" +"Each item should have the same number of values as the widget option " +"columns. If there are fewer values than columns, the remaining values are " +"assumed empty. If there are more values than columns, the extra values are " +"ignored." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:874 +msgid "open" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:874 +msgid "" +"True/False value indicating whether the item's children should be displayed " +"or hidden." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:877 +msgid "tags" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:877 +msgid "A list of tags associated with this item." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:882 +msgid "Tag Options" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:884 +msgid "The following options may be specified on tags:" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:891 +msgid "foreground" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:891 +msgid "Specifies the text foreground color." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:893 +msgid "Specifies the cell or item background color." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:895 +msgid "font" +msgstr "*font*" + +#: ../Doc/library/tkinter.ttk.rst:895 +msgid "Specifies the font to use when drawing text." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:897 +msgid "Specifies the item image, in case the item's image option is empty." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:903 +msgid "Column Identifiers" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:905 +msgid "Column identifiers take any of the following forms:" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:907 +msgid "A symbolic name from the list of columns option." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:908 +msgid "An integer n, specifying the nth data column." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:909 +msgid "" +"A string of the form #n, where n is an integer, specifying the nth display " +"column." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:912 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/library/tkinter.ttk.rst:914 +msgid "" +"Item's option values may be displayed in a different order than the order in " +"which they are stored." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:916 +msgid "" +"Column #0 always refers to the tree column, even if show=\"tree\" is not " +"specified." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:919 +msgid "" +"A data column number is an index into an item's option values list; a " +"display column number is the column number in the tree where the values are " +"displayed. Tree labels are displayed in column #0. If option displaycolumns " +"is not set, then data column n is displayed in column #n+1. Again, **column " +"#0 always refers to the tree column**." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:929 +msgid "The Treeview widget generates the following virtual events." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:934 +msgid "Event" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:936 +msgid "<>" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:936 +msgid "Generated whenever the selection changes." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:938 +msgid "<>" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:938 +msgid "Generated just before settings the focus item to open=True." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:941 +msgid "<>" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:941 +msgid "Generated just after setting the focus item to open=False." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:945 +msgid "" +"The :meth:`Treeview.focus` and :meth:`Treeview.selection` methods can be " +"used to determine the affected item or items." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:950 +msgid "ttk.Treeview" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:956 +msgid "" +"Returns the bounding box (relative to the treeview widget's window) of the " +"specified *item* in the form (x, y, width, height)." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:959 +msgid "" +"If *column* is specified, returns the bounding box of that cell. If the " +"*item* is not visible (i.e., if it is a descendant of a closed item or is " +"scrolled offscreen), returns an empty string." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:966 +msgid "Returns the list of children belonging to *item*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:968 +msgid "If *item* is not specified, returns root children." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:973 +msgid "Replaces *item*'s child with *newchildren*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:975 +msgid "" +"Children present in *item* that are not present in *newchildren* are " +"detached from the tree. No items in *newchildren* may be an ancestor of " +"*item*. Note that not specifying *newchildren* results in detaching *item*'s " +"children." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:983 +msgid "Query or modify the options for the specified *column*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:985 +msgid "" +"If *kw* is not given, returns a dict of the column option values. If " +"*option* is specified then the value for that *option* is returned. " +"Otherwise, sets the options to the corresponding values." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:989 ../Doc/library/tkinter.ttk.rst:1044 +msgid "The valid options/values are:" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:991 +msgid "id" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:992 +msgid "Returns the column name. This is a read-only option." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:994 +msgid "anchor: One of the standard Tk anchor values." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:994 +msgid "" +"Specifies how the text in this column should be aligned with respect to the " +"cell." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:998 +msgid "minwidth: width" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:997 +msgid "" +"The minimum width of the column in pixels. The treeview widget will not make " +"the column any smaller than specified by this option when the widget is " +"resized or the user drags a column." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1001 +msgid "stretch: True/False" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1001 +msgid "" +"Specifies whether the column's width should be adjusted when the widget is " +"resized." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1004 +msgid "width: width" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1004 +msgid "The width of the column in pixels." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1006 +msgid "To configure the tree column, call this with column = \"#0\"" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1010 +msgid "Delete all specified *items* and all their descendants." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1012 +msgid "The root item may not be deleted." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1017 +msgid "Unlinks all of the specified *items* from the tree." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1019 +msgid "" +"The items and all of their descendants are still present, and may be " +"reinserted at another point in the tree, but will not be displayed." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1022 +msgid "The root item may not be detached." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1027 +msgid "Returns ``True`` if the specified *item* is present in the tree." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1032 +msgid "" +"If *item* is specified, sets the focus item to *item*. Otherwise, returns " +"the current focus item, or '' if there is none." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1038 +msgid "Query or modify the heading options for the specified *column*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1040 +msgid "" +"If *kw* is not given, returns a dict of the heading option values. If " +"*option* is specified then the value for that *option* is returned. " +"Otherwise, sets the options to the corresponding values." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1046 +msgid "text: text" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1047 +msgid "The text to display in the column heading." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1048 +msgid "image: imageName" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1049 +msgid "Specifies an image to display to the right of the column heading." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1051 +msgid "anchor: anchor" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1051 +msgid "" +"Specifies how the heading text should be aligned. One of the standard Tk " +"anchor values." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1054 +msgid "command: callback" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1054 +msgid "A callback to be invoked when the heading label is pressed." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1056 +msgid "To configure the tree column heading, call this with column = \"#0\"." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1061 +msgid "" +"Returns a description of the specified *component* under the point given by " +"*x* and *y*, or the empty string if no such *component* is present at that " +"position." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1068 +msgid "Returns the item ID of the item at position *y*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1073 +msgid "Returns the data column identifier of the cell at position *x*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1075 +msgid "The tree column has ID #0." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1080 +msgid "Returns one of:" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1083 +msgid "region" +msgstr "*region*" + +#: ../Doc/library/tkinter.ttk.rst:1083 +msgid "meaning" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1085 +msgid "heading" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1085 +msgid "Tree heading area." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1087 +msgid "separator" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1087 +msgid "Space between two columns headings." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1089 +msgid "tree" +msgstr "*tree* (arbre)" + +#: ../Doc/library/tkinter.ttk.rst:1089 +msgid "The tree area." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1091 +msgid "cell" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1091 +msgid "A data cell." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1094 ../Doc/library/tkinter.ttk.rst:1101 +msgid "Availability: Tk 8.6." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1099 +msgid "Returns the element at position *x*, *y*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1106 +msgid "" +"Returns the integer index of *item* within its parent's list of children." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1111 +msgid "" +"Creates a new item and returns the item identifier of the newly created item." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1114 +msgid "" +"*parent* is the item ID of the parent item, or the empty string to create a " +"new top-level item. *index* is an integer, or the value \"end\", specifying " +"where in the list of parent's children to insert the new item. If *index* is " +"less than or equal to zero, the new node is inserted at the beginning; if " +"*index* is greater than or equal to the current number of children, it is " +"inserted at the end. If *iid* is specified, it is used as the item " +"identifier; *iid* must not already exist in the tree. Otherwise, a new " +"unique identifier is generated." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1123 +msgid "See `Item Options`_ for the list of available points." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1128 +msgid "Query or modify the options for the specified *item*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1130 +msgid "" +"If no options are given, a dict with options/values for the item is " +"returned. If *option* is specified then the value for that option is " +"returned. Otherwise, sets the options to the corresponding values as given " +"by *kw*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1138 +msgid "Moves *item* to position *index* in *parent*'s list of children." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1140 +msgid "" +"It is illegal to move an item under one of its descendants. If *index* is " +"less than or equal to zero, *item* is moved to the beginning; if greater " +"than or equal to the number of children, it is moved to the end. If *item* " +"was detached it is reattached." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1148 +msgid "" +"Returns the identifier of *item*'s next sibling, or '' if *item* is the last " +"child of its parent." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1154 +msgid "" +"Returns the ID of the parent of *item*, or '' if *item* is at the top level " +"of the hierarchy." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1160 +msgid "" +"Returns the identifier of *item*'s previous sibling, or '' if *item* is the " +"first child of its parent." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1166 +msgid "An alias for :meth:`Treeview.move`." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1171 +msgid "Ensure that *item* is visible." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1173 +msgid "" +"Sets all of *item*'s ancestors open option to ``True``, and scrolls the " +"widget if necessary so that *item* is within the visible portion of the tree." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1180 +msgid "" +"If *selop* is not specified, returns selected items. Otherwise, it will act " +"according to the following selection methods." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1185 +msgid "" +"Using ``selection()`` for changing the selection state is deprecated. Use " +"the following selection methods instead." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1190 +msgid "*items* becomes the new selection." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1192 ../Doc/library/tkinter.ttk.rst:1200 +#: ../Doc/library/tkinter.ttk.rst:1208 ../Doc/library/tkinter.ttk.rst:1216 +msgid "" +"*items* can be passed as separate arguments, not just as a single tuple." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1198 +msgid "Add *items* to the selection." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1206 +msgid "Remove *items* from the selection." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1214 +msgid "Toggle the selection state of each item in *items*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1222 +msgid "" +"With one argument, returns a dictionary of column/value pairs for the " +"specified *item*. With two arguments, returns the current value of the " +"specified *column*. With three arguments, sets the value of given *column* " +"in given *item* to the specified *value*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1230 +msgid "" +"Bind a callback for the given event *sequence* to the tag *tagname*. When an " +"event is delivered to an item, the callbacks for each of the item's tags " +"option are called." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1237 +msgid "Query or modify the options for the specified *tagname*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1239 +msgid "" +"If *kw* is not given, returns a dict of the option settings for *tagname*. " +"If *option* is specified, returns the value for that *option* for the " +"specified *tagname*. Otherwise, sets the options to the corresponding values " +"for the given *tagname*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1247 +msgid "" +"If *item* is specified, returns 1 or 0 depending on whether the specified " +"*item* has the given *tagname*. Otherwise, returns a list of all items that " +"have the specified tag." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1251 +msgid "Availability: Tk 8.6" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1256 +msgid "Query or modify horizontal position of the treeview." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1261 +msgid "Query or modify vertical position of the treeview." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1267 +msgid "Ttk Styling" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1269 +msgid "" +"Each widget in :mod:`ttk` is assigned a style, which specifies the set of " +"elements making up the widget and how they are arranged, along with dynamic " +"and default settings for element options. By default the style name is the " +"same as the widget's class name, but it may be overridden by the widget's " +"style option. If you don't know the class name of a widget, use the method :" +"meth:`Misc.winfo_class` (somewidget.winfo_class())." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1278 +msgid "" +"`Tcl'2004 conference presentation `_" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1279 +msgid "This document explains how the theme engine works" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1284 +msgid "This class is used to manipulate the style database." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1289 +msgid "Query or set the default value of the specified option(s) in *style*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1291 +msgid "" +"Each key in *kw* is an option and each value is a string identifying the " +"value for that option." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1294 +msgid "" +"For example, to change every default button to be a flat button with some " +"padding and a different background color::" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1313 +msgid "Query or sets dynamic values of the specified option(s) in *style*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1315 +msgid "" +"Each key in *kw* is an option and each value should be a list or a tuple " +"(usually) containing statespecs grouped in tuples, lists, or some other " +"preference. A statespec is a compound of one or more states and then a value." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1320 +msgid "An example may make it more understandable::" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1338 +msgid "" +"Note that the order of the (states, value) sequences for an option does " +"matter, if the order is changed to ``[('active', 'blue'), ('pressed', " +"'red')]`` in the foreground option, for example, the result would be a blue " +"foreground when the widget were in active or pressed states." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1346 +msgid "Returns the value specified for *option* in *style*." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1348 +msgid "" +"If *state* is specified, it is expected to be a sequence of one or more " +"states. If the *default* argument is set, it is used as a fallback value in " +"case no specification for option is found." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1352 +msgid "To check what font a Button uses by default::" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1361 +msgid "" +"Define the widget layout for given *style*. If *layoutspec* is omitted, " +"return the layout specification for given style." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1364 +msgid "" +"*layoutspec*, if specified, is expected to be a list or some other sequence " +"type (excluding strings), where each item should be a tuple and the first " +"item is the layout name and the second item should have the format described " +"in `Layouts`_." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1369 +msgid "" +"To understand the format, see the following example (it is not intended to " +"do anything useful)::" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1396 +msgid "" +"Create a new element in the current theme, of the given *etype* which is " +"expected to be either \"image\", \"from\" or \"vsapi\". The latter is only " +"available in Tk 8.6a for Windows XP and Vista and is not described here." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1400 +msgid "" +"If \"image\" is used, *args* should contain the default image name followed " +"by statespec/value pairs (this is the imagespec), and *kw* may have the " +"following options:" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1406 +msgid "border=padding" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1405 +msgid "" +"padding is a list of up to four integers, specifying the left, top, right, " +"and bottom borders, respectively." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1410 +msgid "height=height" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1409 +msgid "" +"Specifies a minimum height for the element. If less than zero, the base " +"image's height is used as a default." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1414 +msgid "padding=padding" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1413 +msgid "" +"Specifies the element's interior padding. Defaults to border's value if not " +"specified." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1418 +msgid "sticky=spec" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1417 +msgid "" +"Specifies how the image is placed within the final parcel. spec contains " +"zero or more characters \"n\", \"s\", \"w\", or \"e\"." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1422 +msgid "width=width" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1421 +msgid "" +"Specifies a minimum width for the element. If less than zero, the base " +"image's width is used as a default." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1424 +msgid "" +"If \"from\" is used as the value of *etype*, :meth:`element_create` will " +"clone an existing element. *args* is expected to contain a themename, from " +"which the element will be cloned, and optionally an element to clone from. " +"If this element to clone from is not specified, an empty element will be " +"used. *kw* is discarded." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1434 +msgid "Returns the list of elements defined in the current theme." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1439 +msgid "Returns the list of *elementname*'s options." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1444 +msgid "Create a new theme." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1446 +msgid "" +"It is an error if *themename* already exists. If *parent* is specified, the " +"new theme will inherit styles, elements and layouts from the parent theme. " +"If *settings* are present they are expected to have the same syntax used " +"for :meth:`theme_settings`." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1454 +msgid "" +"Temporarily sets the current theme to *themename*, apply specified " +"*settings* and then restore the previous theme." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1457 +msgid "" +"Each key in *settings* is a style and each value may contain the keys " +"'configure', 'map', 'layout' and 'element create' and they are expected to " +"have the same format as specified by the methods :meth:`Style.configure`, :" +"meth:`Style.map`, :meth:`Style.layout` and :meth:`Style.element_create` " +"respectively." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1463 +msgid "As an example, let's change the Combobox for the default theme a bit::" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1491 +msgid "Returns a list of all known themes." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1496 +msgid "" +"If *themename* is not given, returns the theme in use. Otherwise, sets the " +"current theme to *themename*, refreshes all widgets and emits a " +"<> event." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1502 +msgid "Layouts" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1504 +msgid "" +"A layout can be just ``None``, if it takes no options, or a dict of options " +"specifying how to arrange the element. The layout mechanism uses a " +"simplified version of the pack geometry manager: given an initial cavity, " +"each element is allocated a parcel. Valid options/values are:" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1513 +msgid "side: whichside" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1511 +msgid "" +"Specifies which side of the cavity to place the element; one of top, right, " +"bottom or left. If omitted, the element occupies the entire cavity." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1516 +msgid "sticky: nswe" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1516 +msgid "Specifies where the element is placed inside its allocated parcel." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1521 +msgid "unit: 0 or 1" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1519 +msgid "" +"If set to 1, causes the element and all of its descendants to be treated as " +"a single element for the purposes of :meth:`Widget.identify` et al. It's " +"used for things like scrollbar thumbs with grips." +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1526 +msgid "children: [sublayout... ]" +msgstr "" + +#: ../Doc/library/tkinter.ttk.rst:1524 +msgid "" +"Specifies a list of elements to place inside the element. Each element is a " +"tuple (or other sequence type) where the first item is the layout name, and " +"the other is a `Layout`_." +msgstr "" diff --git a/library/token.po b/library/token.po new file mode 100644 index 000000000..b7261eb72 --- /dev/null +++ b/library/token.po @@ -0,0 +1,126 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-09-28 10:04+0200\n" +"Last-Translator: Mickaël Bergem \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.9\n" + +#: ../Doc/library/token.rst:2 +msgid ":mod:`token` --- Constants used with Python parse trees" +msgstr "" +":mod:`token` --- Constantes utilisées avec les arbres d'analyse Python " +"(*parse trees*)" + +#: ../Doc/library/token.rst:9 +msgid "**Source code:** :source:`Lib/token.py`" +msgstr "**Code source :** :source:`Lib/token.py`" + +#: ../Doc/library/token.rst:13 +msgid "" +"This module provides constants which represent the numeric values of leaf " +"nodes of the parse tree (terminal tokens). Refer to the file :file:`Grammar/" +"Grammar` in the Python distribution for the definitions of the names in the " +"context of the language grammar. The specific numeric values which the " +"names map to may change between Python versions." +msgstr "" +"Ce module fournit des constantes qui représentent les valeurs numériques des " +"nœuds enfants du *parse tree* (les jetons \"terminaux\"). Voir le fichier :" +"file:`Grammar/Grammar` dans la distribution Python pour la définitions des " +"noms dans le contexte de la grammaire. Les valeurs numériques correspondant " +"aux noms sont susceptibles de changer entre deux versions de Python." + +#: ../Doc/library/token.rst:19 +msgid "" +"The module also provides a mapping from numeric codes to names and some " +"functions. The functions mirror definitions in the Python C header files." +msgstr "" +"Le module fournit également une correspondance entre les codes numériques et " +"les noms et certaines fonctions. Les fonctions reflètent les définitions des " +"fichiers d'en-tête C de Python." + +#: ../Doc/library/token.rst:25 +msgid "" +"Dictionary mapping the numeric values of the constants defined in this " +"module back to name strings, allowing more human-readable representation of " +"parse trees to be generated." +msgstr "" +"Dictionnaire faisant correspondre les valeurs numériques des constantes " +"définies dans ce module à leurs noms, permettant de générer une " +"représentation plus humaine des arbres syntaxiques." + +#: ../Doc/library/token.rst:32 +msgid "Return true for terminal token values." +msgstr "Renvoie ``True`` pour les valeurs des jetons terminaux." + +#: ../Doc/library/token.rst:37 +msgid "Return true for non-terminal token values." +msgstr "Renvoie ``True`` pour les valeurs des jetons non terminaux." + +#: ../Doc/library/token.rst:42 +msgid "Return true if *x* is the marker indicating the end of input." +msgstr "" +"Renvoie ``True`` si *x* est le marqueur indiquant la fin de de la source." + +#: ../Doc/library/token.rst:45 +msgid "The token constants are:" +msgstr "Les constantes associées aux jetons sont :" + +#: ../Doc/library/token.rst:106 +msgid "" +"The following token type values aren't used by the C tokenizer but are " +"needed for the :mod:`tokenize` module." +msgstr "" +"Les types de jetons suivants ne sont pas utilisés par l'analyseur lexical C " +"mais sont requis par le module :mod:`tokenize`." + +#: ../Doc/library/token.rst:111 +msgid "Token value used to indicate a comment." +msgstr "Valeur du jeton utilisée pour indiquer un commentaire." + +#: ../Doc/library/token.rst:116 +msgid "" +"Token value used to indicate a non-terminating newline. The :data:`NEWLINE` " +"token indicates the end of a logical line of Python code; ``NL`` tokens are " +"generated when a logical line of code is continued over multiple physical " +"lines." +msgstr "" +"Valeur du jeton utilisée pour indiquer un retour à la ligne non terminal. Le " +"jeton :data:`NEWLINE` indique la fin d'une ligne logique de code Python; les " +"jetons ``NL`` sont générés quand une ligne logique de code s'étend sur " +"plusieurs lignes." + +#: ../Doc/library/token.rst:124 +msgid "" +"Token value that indicates the encoding used to decode the source bytes into " +"text. The first token returned by :func:`tokenize.tokenize` will always be " +"an ``ENCODING`` token." +msgstr "" +"Valeur de jeton qui indique l'encodage utilisé pour décoder le fichier " +"initial. Le premier jeton renvoyé par :func:`tokenize.tokenize` sera " +"toujours un jeton ``ENCODING``." + +#: ../Doc/library/token.rst:129 +msgid "Added :data:`AWAIT` and :data:`ASYNC` tokens." +msgstr "Ajout des jetons :data:`AWAIT` et :data:`ASYNC`." + +#: ../Doc/library/token.rst:132 +msgid "Added :data:`COMMENT`, :data:`NL` and :data:`ENCODING` tokens." +msgstr "Ajout des jetons :data:`COMMENT`, :data:`NL` et :data:`ENCODING`." + +#: ../Doc/library/token.rst:135 +msgid "" +"Removed :data:`AWAIT` and :data:`ASYNC` tokens. \"async\" and \"await\" are " +"now tokenized as :data:`NAME` tokens." +msgstr "" +"Suppression des jetons :data:`AWAIT` et :data:`ASYNC`. ``async`` et " +"``await`` sont maintenant transformés en jetons :data:`NAME`." diff --git a/library/tokenize.po b/library/tokenize.po new file mode 100644 index 000000000..b5bf3f956 --- /dev/null +++ b/library/tokenize.po @@ -0,0 +1,323 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-09-28 10:08+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" + +#: ../Doc/library/tokenize.rst:2 +msgid ":mod:`tokenize` --- Tokenizer for Python source" +msgstr ":mod:`tokenize` — Analyseur lexical de Python" + +#: ../Doc/library/tokenize.rst:10 +msgid "**Source code:** :source:`Lib/tokenize.py`" +msgstr "**Code source :** :source:`Lib/tokenize.py`" + +#: ../Doc/library/tokenize.rst:14 +msgid "" +"The :mod:`tokenize` module provides a lexical scanner for Python source " +"code, implemented in Python. The scanner in this module returns comments as " +"tokens as well, making it useful for implementing \"pretty-printers,\" " +"including colorizers for on-screen displays." +msgstr "" +"Le module :mod:`tokenize` fournit un analyseur lexical pour Python, " +"implémenté en Python. L'analyseur de ce module renvoie les commentaire sous " +"forme de *token*, se qui le rend intéressant pour implémenter des *pretty-" +"printers*, typiquement pour faire de la coloration syntaxique." + +#: ../Doc/library/tokenize.rst:19 +msgid "" +"To simplify token stream handling, all :ref:`operator ` and :ref:" +"`delimiter ` tokens and :data:`Ellipsis` are returned using the " +"generic :data:`~token.OP` token type. The exact type can be determined by " +"checking the ``exact_type`` property on the :term:`named tuple` returned " +"from :func:`tokenize.tokenize`." +msgstr "" +"Pour simplifier la gestion de flux de *tokens*, tous les *tokens* :ref:" +"`operator ` et :ref:`delimiter `, ainsi que les :data:" +"`Ellipsis*` sont renvoyés en utilisant le *token* générique :data:`~token." +"OP`. Le type exact peut être déterminé en vérifiant la propriété " +"``exact_type`` du :term:`named tuple` renvoyé par :func:`tokenize.tokenize`." + +#: ../Doc/library/tokenize.rst:26 +msgid "Tokenizing Input" +msgstr "Analyse Lexicale" + +#: ../Doc/library/tokenize.rst:28 +msgid "The primary entry point is a :term:`generator`:" +msgstr "Le point d'entrée principal est un :term:`générateur ` :" + +#: ../Doc/library/tokenize.rst:32 +msgid "" +"The :func:`.tokenize` generator requires one argument, *readline*, which " +"must be a callable object which provides the same interface as the :meth:`io." +"IOBase.readline` method of file objects. Each call to the function should " +"return one line of input as bytes." +msgstr "" +"Le générateur :func:`.tokenize` prend un argument *readline* qui doit être " +"un objet appelable exposant la même interface que la méthode :meth:`io." +"IOBase.readline` des objets fichiers. Chaque appel a la fonction doit " +"renvoyer une ligne sous forme de *bytes*." + +#: ../Doc/library/tokenize.rst:37 +msgid "" +"The generator produces 5-tuples with these members: the token type; the " +"token string; a 2-tuple ``(srow, scol)`` of ints specifying the row and " +"column where the token begins in the source; a 2-tuple ``(erow, ecol)`` of " +"ints specifying the row and column where the token ends in the source; and " +"the line on which the token was found. The line passed (the last tuple item) " +"is the *logical* line; continuation lines are included. The 5 tuple is " +"returned as a :term:`named tuple` with the field names: ``type string start " +"end line``." +msgstr "" +"Le générateur fournit des quintuplet contenants : le type du *token*, sa " +"chaîne, un couple d'entiers ``(srow, scol)`` indiquant la ligne et la " +"colonne où le *token* commence, un couple d'entiers ``(erow, ecol)`` " +"indiquant la ligne et la colonne où il se termine, puis la ligne dans " +"laquelle il a été trouvé. La ligne donnée (le dernier élément du *tuple*) " +"est la ligne \"logique\", les *continuation lines* étant incluses. Le " +"*tuple* est renvoyé sous forme de :term:`named tuple` dont les noms sont : " +"``type string start end line``." + +#: ../Doc/library/tokenize.rst:46 +msgid "" +"The returned :term:`named tuple` has an additional property named " +"``exact_type`` that contains the exact operator type for :data:`~token.OP` " +"tokens. For all other token types ``exact_type`` equals the named tuple " +"``type`` field." +msgstr "" +"Le :term:`named tuple` a une propriété additionnelle appelée ``exact_type`` " +"qui contient le type exact de l'opérateur pour les jetons :data:`~token." +"OP` . Pour tous les autres types de jetons, ``exact_type`` est égal au " +"champ ``type`` du tuple nommé." + +#: ../Doc/library/tokenize.rst:51 +msgid "Added support for named tuples." +msgstr "Soutien ajouté pour *tuples* nommé." + +#: ../Doc/library/tokenize.rst:54 +msgid "Added support for ``exact_type``." +msgstr "Soutien ajouté pour ``exact_type``." + +#: ../Doc/library/tokenize.rst:57 +msgid "" +":func:`.tokenize` determines the source encoding of the file by looking for " +"a UTF-8 BOM or encoding cookie, according to :pep:`263`." +msgstr "" +":func:`.tokenize` détermine le codage source du fichier en recherchant une " +"nomenclature UTF-8 ou un cookie d'encodage, selon la :pep:`263`." + +#: ../Doc/library/tokenize.rst:61 +msgid "" +"All constants from the :mod:`token` module are also exported from :mod:" +"`tokenize`." +msgstr "" +"Toutes les constantes du module :mod:`token` sont également exportées depuis " +"module :mod:`tokenize`." + +#: ../Doc/library/tokenize.rst:64 +msgid "" +"Another function is provided to reverse the tokenization process. This is " +"useful for creating tools that tokenize a script, modify the token stream, " +"and write back the modified script." +msgstr "" +"Une autre fonction est fournie pour inverser le processus de tokenisation. " +"Ceci est utile pour créer des outils permettant de codifier un script, de " +"modifier le flux de jetons et de réécrire le script modifié." + +#: ../Doc/library/tokenize.rst:71 +msgid "" +"Converts tokens back into Python source code. The *iterable* must return " +"sequences with at least two elements, the token type and the token string. " +"Any additional sequence elements are ignored." +msgstr "" +"Convertit les jetons en code source Python. L'*iterable* doit renvoyer des " +"séquences avec au moins deux éléments, le type de jeton et la chaîne de " +"caractères associée. Tout élément de séquence supplémentaire est ignoré." + +#: ../Doc/library/tokenize.rst:75 +msgid "" +"The reconstructed script is returned as a single string. The result is " +"guaranteed to tokenize back to match the input so that the conversion is " +"lossless and round-trips are assured. The guarantee applies only to the " +"token type and token string as the spacing between tokens (column positions) " +"may change." +msgstr "" +"Le script reconstruit est renvoyé sous la forme d'une chaîne unique. Le " +"résultat est garanti pour que le jeton corresponde à l'entrée afin que la " +"conversion soit sans perte et que les allers et retours soient assurés. La " +"garantie ne s'applique qu'au type de jeton et à la chaîne de jetons car " +"l'espacement entre les jetons (positions des colonnes) peut changer." + +#: ../Doc/library/tokenize.rst:81 +msgid "" +"It returns bytes, encoded using the :data:`~token.ENCODING` token, which is " +"the first token sequence output by :func:`.tokenize`." +msgstr "" +"Il retourne des *bytes*, codés en utilisant le jeton :data:`~ token." +"ENCODING`, qui est la première séquence de jetons sortie par :func:`." +"tokenize`." + +#: ../Doc/library/tokenize.rst:85 +msgid "" +":func:`.tokenize` needs to detect the encoding of source files it tokenizes. " +"The function it uses to do this is available:" +msgstr "" +":func:`.tokenize` a besoin de détecter le codage des fichiers sources qu'il " +"code. La fonction utilisée pour cela est disponible :" + +#: ../Doc/library/tokenize.rst:90 +msgid "" +"The :func:`detect_encoding` function is used to detect the encoding that " +"should be used to decode a Python source file. It requires one argument, " +"readline, in the same way as the :func:`.tokenize` generator." +msgstr "" +"La fonction :func:`detect_encoding` est utilisée pour détecter l'encodage à " +"utiliser pour décoder un fichier source Python. Il nécessite un seul " +"argument, *readline*, de la même manière que le générateur :func:`.tokenize`." + +#: ../Doc/library/tokenize.rst:94 +msgid "" +"It will call readline a maximum of twice, and return the encoding used (as a " +"string) and a list of any lines (not decoded from bytes) it has read in." +msgstr "" +"Il appelle *readline* au maximum deux fois et renvoie le codage utilisé " +"(sous forme de chaîne) et une liste de toutes les lignes (non décodées à " +"partir des octets) dans lesquelles il a été lu." + +#: ../Doc/library/tokenize.rst:98 +msgid "" +"It detects the encoding from the presence of a UTF-8 BOM or an encoding " +"cookie as specified in :pep:`263`. If both a BOM and a cookie are present, " +"but disagree, a :exc:`SyntaxError` will be raised. Note that if the BOM is " +"found, ``'utf-8-sig'`` will be returned as an encoding." +msgstr "" +"Il détecte l'encodage par la présence d'une marqueur UTF-8 (*BOM*) ou d'un " +"cookie de codage, comme spécifié dans la :pep:`263`. Si un *BOM* et un " +"cookie sont présents, mais en désaccord, un :exc:`SyntaxError` sera levée. " +"Notez que si le *BOM* est trouvé, ``'utf-8-sig'`` sera renvoyé comme " +"encodage." + +#: ../Doc/library/tokenize.rst:103 +msgid "" +"If no encoding is specified, then the default of ``'utf-8'`` will be " +"returned." +msgstr "" +"Si aucun codage n'est spécifié, la valeur par défaut, ``'utf-8'``, sera " +"renvoyée." + +#: ../Doc/library/tokenize.rst:106 +msgid "" +"Use :func:`.open` to open Python source files: it uses :func:" +"`detect_encoding` to detect the file encoding." +msgstr "" +"Utilisez :func:`.open` pour ouvrir les fichiers source Python : ça utilise :" +"func:`detect_encoding` pour détecter le codage du fichier." + +#: ../Doc/library/tokenize.rst:112 +msgid "" +"Open a file in read only mode using the encoding detected by :func:" +"`detect_encoding`." +msgstr "" +"Ouvre un fichier en mode lecture seule en utilisant l'encodage détecté par :" +"func:`dectect_encoding`." + +#: ../Doc/library/tokenize.rst:119 +msgid "" +"Raised when either a docstring or expression that may be split over several " +"lines is not completed anywhere in the file, for example::" +msgstr "" +"Déclenché lorsque soit une *docstring* soit une expression qui pourrait être " +"divisée sur plusieurs lignes n'est pas complété dans le fichier, par " +"exemple ::" + +#: ../Doc/library/tokenize.rst:125 +msgid "or::" +msgstr "ou ::" + +#: ../Doc/library/tokenize.rst:131 +msgid "" +"Note that unclosed single-quoted strings do not cause an error to be raised. " +"They are tokenized as :data:`~token.ERRORTOKEN`, followed by the " +"tokenization of their contents." +msgstr "" +"Notez que les chaînes à simple guillemet non fermés ne provoquent pas le " +"déclenchement d'une erreur. Ils sont tokenisés comme :data:`~token." +"ERRORTOKEN`, suivi de la tokenisation de leur contenu." + +#: ../Doc/library/tokenize.rst:139 +msgid "Command-Line Usage" +msgstr "Utilisation en ligne de commande." + +#: ../Doc/library/tokenize.rst:143 +msgid "" +"The :mod:`tokenize` module can be executed as a script from the command " +"line. It is as simple as:" +msgstr "" +"Le module :mod:`tokenize` peut être exécuté en tant que script à partir de " +"la ligne de commande. C'est aussi simple que :" + +#: ../Doc/library/tokenize.rst:150 +msgid "The following options are accepted:" +msgstr "Les options suivantes sont acceptées :" + +#: ../Doc/library/tokenize.rst:156 +msgid "show this help message and exit" +msgstr "Montre ce message d'aide et quitte" + +#: ../Doc/library/tokenize.rst:160 +msgid "display token names using the exact type" +msgstr "Affiche les noms de jetons en utilisant le même type." + +#: ../Doc/library/tokenize.rst:162 +msgid "" +"If :file:`filename.py` is specified its contents are tokenized to stdout. " +"Otherwise, tokenization is performed on stdin." +msgstr "" +"Si :file:`filename.py` est spécifié, son contenu est tokenisé vers *stdout*. " +"Sinon, la tokenisation est effectuée sur ce qui est fourni sur *stdin*." + +#: ../Doc/library/tokenize.rst:166 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/tokenize.rst:168 +msgid "" +"Example of a script rewriter that transforms float literals into Decimal " +"objects::" +msgstr "" +"Exemple d'un script qui transforme les littéraux de type *float* en type " +"*Decimal* ::" + +#: ../Doc/library/tokenize.rst:210 +msgid "Example of tokenizing from the command line. The script::" +msgstr "Exemple de tokenisation à partir de la ligne de commande. Le script ::" + +#: ../Doc/library/tokenize.rst:217 +msgid "" +"will be tokenized to the following output where the first column is the " +"range of the line/column coordinates where the token is found, the second " +"column is the name of the token, and the final column is the value of the " +"token (if any)" +msgstr "" +"sera tokenisé à la sortie suivante où la première colonne est la plage des " +"coordonnées de la ligne/colonne où se trouve le jeton, la deuxième colonne " +"est le nom du jeton, et la dernière colonne est la valeur du jeton (le cas " +"échéant)" + +#: ../Doc/library/tokenize.rst:245 +msgid "" +"The exact token type names can be displayed using the :option:`-e` option:" +msgstr "" +"Les noms exacts des types de jeton peuvent être affichés en utilisant " +"l’option : :option:`-e`" diff --git a/library/trace.po b/library/trace.po new file mode 100644 index 000000000..3e61acfd2 --- /dev/null +++ b/library/trace.po @@ -0,0 +1,234 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/trace.rst:2 +msgid ":mod:`trace` --- Trace or track Python statement execution" +msgstr "" + +#: ../Doc/library/trace.rst:7 +msgid "**Source code:** :source:`Lib/trace.py`" +msgstr "**Code source :** :source:`Lib/abc.py`" + +#: ../Doc/library/trace.rst:11 +msgid "" +"The :mod:`trace` module allows you to trace program execution, generate " +"annotated statement coverage listings, print caller/callee relationships and " +"list functions executed during a program run. It can be used in another " +"program or from the command line." +msgstr "" + +#: ../Doc/library/trace.rst:19 +msgid "`Coverage.py `_" +msgstr "" + +#: ../Doc/library/trace.rst:19 +msgid "" +"A popular third-party coverage tool that provides HTML output along with " +"advanced features such as branch coverage." +msgstr "" + +#: ../Doc/library/trace.rst:25 +msgid "Command-Line Usage" +msgstr "Utilisation en ligne de commande." + +#: ../Doc/library/trace.rst:27 +msgid "" +"The :mod:`trace` module can be invoked from the command line. It can be as " +"simple as ::" +msgstr "" + +#: ../Doc/library/trace.rst:32 +msgid "" +"The above will execute :file:`somefile.py` and generate annotated listings " +"of all Python modules imported during the execution into the current " +"directory." +msgstr "" + +#: ../Doc/library/trace.rst:39 +msgid "Display usage and exit." +msgstr "" + +#: ../Doc/library/trace.rst:43 +msgid "Display the version of the module and exit." +msgstr "" + +#: ../Doc/library/trace.rst:46 +msgid "Main options" +msgstr "" + +#: ../Doc/library/trace.rst:48 +msgid "" +"At least one of the following options must be specified when invoking :mod:" +"`trace`. The :option:`--listfuncs <-l>` option is mutually exclusive with " +"the :option:`--trace <-t>` and :option:`--count <-c>` options. When :option:" +"`--listfuncs <-l>` is provided, neither :option:`--count <-c>` nor :option:" +"`--trace <-t>` are accepted, and vice versa." +msgstr "" + +#: ../Doc/library/trace.rst:58 +msgid "" +"Produce a set of annotated listing files upon program completion that shows " +"how many times each statement was executed. See also :option:`--coverdir <-" +"C>`, :option:`--file <-f>` and :option:`--no-report <-R>` below." +msgstr "" + +#: ../Doc/library/trace.rst:65 +msgid "Display lines as they are executed." +msgstr "" + +#: ../Doc/library/trace.rst:69 +msgid "Display the functions executed by running the program." +msgstr "" + +#: ../Doc/library/trace.rst:73 +msgid "" +"Produce an annotated list from an earlier program run that used the :option:" +"`--count <-c>` and :option:`--file <-f>` option. This does not execute any " +"code." +msgstr "" + +#: ../Doc/library/trace.rst:79 +msgid "Display the calling relationships exposed by running the program." +msgstr "" + +#: ../Doc/library/trace.rst:82 +msgid "Modifiers" +msgstr "" + +#: ../Doc/library/trace.rst:88 +msgid "" +"Name of a file to accumulate counts over several tracing runs. Should be " +"used with the :option:`--count <-c>` option." +msgstr "" + +#: ../Doc/library/trace.rst:93 +msgid "" +"Directory where the report files go. The coverage report for ``package." +"module`` is written to file :file:`{dir}/{package}/{module}.cover`." +msgstr "" + +#: ../Doc/library/trace.rst:98 +msgid "" +"When generating annotated listings, mark lines which were not executed with " +"``>>>>>>``." +msgstr "" + +#: ../Doc/library/trace.rst:103 +msgid "" +"When using :option:`--count <-c>` or :option:`--report <-r>`, write a brief " +"summary to stdout for each file processed." +msgstr "" + +#: ../Doc/library/trace.rst:108 +msgid "" +"Do not generate annotated listings. This is useful if you intend to make " +"several runs with :option:`--count <-c>`, and then produce a single set of " +"annotated listings at the end." +msgstr "" + +#: ../Doc/library/trace.rst:114 +msgid "" +"Prefix each line with the time since the program started. Only used while " +"tracing." +msgstr "" + +#: ../Doc/library/trace.rst:118 +msgid "Filters" +msgstr "" + +#: ../Doc/library/trace.rst:120 +msgid "These options may be repeated multiple times." +msgstr "" + +#: ../Doc/library/trace.rst:126 +msgid "" +"Ignore each of the given module names and its submodules (if it is a " +"package). The argument can be a list of names separated by a comma." +msgstr "" + +#: ../Doc/library/trace.rst:131 +msgid "" +"Ignore all modules and packages in the named directory and subdirectories. " +"The argument can be a list of directories separated by :data:`os.pathsep`." +msgstr "" + +#: ../Doc/library/trace.rst:137 +msgid "Programmatic Interface" +msgstr "" + +#: ../Doc/library/trace.rst:142 +msgid "" +"Create an object to trace execution of a single statement or expression. " +"All parameters are optional. *count* enables counting of line numbers. " +"*trace* enables line execution tracing. *countfuncs* enables listing of the " +"functions called during the run. *countcallers* enables call relationship " +"tracking. *ignoremods* is a list of modules or packages to ignore. " +"*ignoredirs* is a list of directories whose modules or packages should be " +"ignored. *infile* is the name of the file from which to read stored count " +"information. *outfile* is the name of the file in which to write updated " +"count information. *timing* enables a timestamp relative to when tracing " +"was started to be displayed." +msgstr "" + +#: ../Doc/library/trace.rst:155 +msgid "" +"Execute the command and gather statistics from the execution with the " +"current tracing parameters. *cmd* must be a string or code object, suitable " +"for passing into :func:`exec`." +msgstr "" + +#: ../Doc/library/trace.rst:161 +msgid "" +"Execute the command and gather statistics from the execution with the " +"current tracing parameters, in the defined global and local environments. " +"If not defined, *globals* and *locals* default to empty dictionaries." +msgstr "" + +#: ../Doc/library/trace.rst:168 +msgid "" +"Call *func* with the given arguments under control of the :class:`Trace` " +"object with the current tracing parameters." +msgstr "" + +#: ../Doc/library/trace.rst:173 +msgid "" +"Return a :class:`CoverageResults` object that contains the cumulative " +"results of all previous calls to ``run``, ``runctx`` and ``runfunc`` for the " +"given :class:`Trace` instance. Does not reset the accumulated trace results." +msgstr "" + +#: ../Doc/library/trace.rst:180 +msgid "" +"A container for coverage results, created by :meth:`Trace.results`. Should " +"not be created directly by the user." +msgstr "" + +#: ../Doc/library/trace.rst:185 +msgid "Merge in data from another :class:`CoverageResults` object." +msgstr "" + +#: ../Doc/library/trace.rst:189 +msgid "" +"Write coverage results. Set *show_missing* to show lines that had no hits. " +"Set *summary* to include in the output the coverage summary per module. " +"*coverdir* specifies the directory into which the coverage result files will " +"be output. If ``None``, the results for each source file are placed in its " +"directory." +msgstr "" + +#: ../Doc/library/trace.rst:195 +msgid "A simple example demonstrating the use of the programmatic interface::" +msgstr "" diff --git a/library/traceback.po b/library/traceback.po new file mode 100644 index 000000000..d8ad57902 --- /dev/null +++ b/library/traceback.po @@ -0,0 +1,406 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/traceback.rst:2 +msgid ":mod:`traceback` --- Print or retrieve a stack traceback" +msgstr "" + +#: ../Doc/library/traceback.rst:7 +msgid "**Source code:** :source:`Lib/traceback.py`" +msgstr "" + +#: ../Doc/library/traceback.rst:11 +msgid "" +"This module provides a standard interface to extract, format and print stack " +"traces of Python programs. It exactly mimics the behavior of the Python " +"interpreter when it prints a stack trace. This is useful when you want to " +"print stack traces under program control, such as in a \"wrapper\" around " +"the interpreter." +msgstr "" + +#: ../Doc/library/traceback.rst:19 +msgid "" +"The module uses traceback objects --- this is the object type that is stored " +"in the :data:`sys.last_traceback` variable and returned as the third item " +"from :func:`sys.exc_info`." +msgstr "" + +#: ../Doc/library/traceback.rst:23 +msgid "The module defines the following functions:" +msgstr "Le module définit les fonctions suivantes :" + +#: ../Doc/library/traceback.rst:28 +msgid "" +"Print up to *limit* stack trace entries from traceback object *tb* (starting " +"from the caller's frame) if *limit* is positive. Otherwise, print the last " +"``abs(limit)`` entries. If *limit* is omitted or ``None``, all entries are " +"printed. If *file* is omitted or ``None``, the output goes to ``sys." +"stderr``; otherwise it should be an open file or file-like object to receive " +"the output." +msgstr "" + +#: ../Doc/library/traceback.rst:35 ../Doc/library/traceback.rst:89 +msgid "Added negative *limit* support." +msgstr "" + +#: ../Doc/library/traceback.rst:41 +msgid "" +"Print exception information and stack trace entries from traceback object " +"*tb* to *file*. This differs from :func:`print_tb` in the following ways:" +msgstr "" + +#: ../Doc/library/traceback.rst:45 +msgid "" +"if *tb* is not ``None``, it prints a header ``Traceback (most recent call " +"last):``" +msgstr "" + +#: ../Doc/library/traceback.rst:48 +msgid "it prints the exception *etype* and *value* after the stack trace" +msgstr "" + +#: ../Doc/library/traceback.rst:52 +msgid "" +"if *type(value)* is :exc:`SyntaxError` and *value* has the appropriate " +"format, it prints the line where the syntax error occurred with a caret " +"indicating the approximate position of the error." +msgstr "" + +#: ../Doc/library/traceback.rst:56 +msgid "" +"The optional *limit* argument has the same meaning as for :func:`print_tb`. " +"If *chain* is true (the default), then chained exceptions (the :attr:" +"`__cause__` or :attr:`__context__` attributes of the exception) will be " +"printed as well, like the interpreter itself does when printing an unhandled " +"exception." +msgstr "" + +#: ../Doc/library/traceback.rst:62 ../Doc/library/traceback.rst:143 +msgid "The *etype* argument is ignored and inferred from the type of *value*." +msgstr "" + +#: ../Doc/library/traceback.rst:68 +msgid "" +"This is a shorthand for ``print_exception(*sys.exc_info(), limit, file, " +"chain)``." +msgstr "" + +#: ../Doc/library/traceback.rst:74 +msgid "" +"This is a shorthand for ``print_exception(sys.last_type, sys.last_value, sys." +"last_traceback, limit, file, chain)``. In general it will work only after " +"an exception has reached an interactive prompt (see :data:`sys.last_type`)." +msgstr "" + +#: ../Doc/library/traceback.rst:82 +msgid "" +"Print up to *limit* stack trace entries (starting from the invocation point) " +"if *limit* is positive. Otherwise, print the last ``abs(limit)`` entries. " +"If *limit* is omitted or ``None``, all entries are printed. The optional *f* " +"argument can be used to specify an alternate stack frame to start. The " +"optional *file* argument has the same meaning as for :func:`print_tb`." +msgstr "" + +#: ../Doc/library/traceback.rst:95 +msgid "" +"Return a :class:`StackSummary` object representing a list of \"pre-processed" +"\" stack trace entries extracted from the traceback object *tb*. It is " +"useful for alternate formatting of stack traces. The optional *limit* " +"argument has the same meaning as for :func:`print_tb`. A \"pre-processed\" " +"stack trace entry is a :class:`FrameSummary` object containing attributes :" +"attr:`~FrameSummary.filename`, :attr:`~FrameSummary.lineno`, :attr:" +"`~FrameSummary.name`, and :attr:`~FrameSummary.line` representing the " +"information that is usually printed for a stack trace. The :attr:" +"`~FrameSummary.line` is a string with leading and trailing whitespace " +"stripped; if the source is not available it is ``None``." +msgstr "" + +#: ../Doc/library/traceback.rst:109 +msgid "" +"Extract the raw traceback from the current stack frame. The return value " +"has the same format as for :func:`extract_tb`. The optional *f* and *limit* " +"arguments have the same meaning as for :func:`print_stack`." +msgstr "" + +#: ../Doc/library/traceback.rst:116 +msgid "" +"Given a list of tuples or :class:`FrameSummary` objects as returned by :func:" +"`extract_tb` or :func:`extract_stack`, return a list of strings ready for " +"printing. Each string in the resulting list corresponds to the item with " +"the same index in the argument list. Each string ends in a newline; the " +"strings may contain internal newlines as well, for those items whose source " +"text line is not ``None``." +msgstr "" + +#: ../Doc/library/traceback.rst:126 +msgid "" +"Format the exception part of a traceback. The arguments are the exception " +"type and value such as given by ``sys.last_type`` and ``sys.last_value``. " +"The return value is a list of strings, each ending in a newline. Normally, " +"the list contains a single string; however, for :exc:`SyntaxError` " +"exceptions, it contains several lines that (when printed) display detailed " +"information about where the syntax error occurred. The message indicating " +"which exception occurred is the always last string in the list." +msgstr "" + +#: ../Doc/library/traceback.rst:137 +msgid "" +"Format a stack trace and the exception information. The arguments have the " +"same meaning as the corresponding arguments to :func:`print_exception`. The " +"return value is a list of strings, each ending in a newline and some " +"containing internal newlines. When these lines are concatenated and " +"printed, exactly the same text is printed as does :func:`print_exception`." +msgstr "" + +#: ../Doc/library/traceback.rst:149 +msgid "" +"This is like ``print_exc(limit)`` but returns a string instead of printing " +"to a file." +msgstr "" + +#: ../Doc/library/traceback.rst:155 +msgid "A shorthand for ``format_list(extract_tb(tb, limit))``." +msgstr "" + +#: ../Doc/library/traceback.rst:160 +msgid "A shorthand for ``format_list(extract_stack(f, limit))``." +msgstr "" + +#: ../Doc/library/traceback.rst:164 +msgid "" +"Clears the local variables of all the stack frames in a traceback *tb* by " +"calling the :meth:`clear` method of each frame object." +msgstr "" + +#: ../Doc/library/traceback.rst:171 +msgid "" +"Walk a stack following ``f.f_back`` from the given frame, yielding the frame " +"and line number for each frame. If *f* is ``None``, the current stack is " +"used. This helper is used with :meth:`StackSummary.extract`." +msgstr "" + +#: ../Doc/library/traceback.rst:179 +msgid "" +"Walk a traceback following ``tb_next`` yielding the frame and line number " +"for each frame. This helper is used with :meth:`StackSummary.extract`." +msgstr "" + +#: ../Doc/library/traceback.rst:184 +msgid "The module also defines the following classes:" +msgstr "" + +#: ../Doc/library/traceback.rst:187 +msgid ":class:`TracebackException` Objects" +msgstr "" + +#: ../Doc/library/traceback.rst:191 +msgid "" +":class:`TracebackException` objects are created from actual exceptions to " +"capture data for later printing in a lightweight fashion." +msgstr "" + +#: ../Doc/library/traceback.rst:196 ../Doc/library/traceback.rst:243 +msgid "" +"Capture an exception for later rendering. *limit*, *lookup_lines* and " +"*capture_locals* are as for the :class:`StackSummary` class." +msgstr "" + +#: ../Doc/library/traceback.rst:199 ../Doc/library/traceback.rst:246 +msgid "" +"Note that when locals are captured, they are also shown in the traceback." +msgstr "" + +#: ../Doc/library/traceback.rst:203 +msgid "A :class:`TracebackException` of the original ``__cause__``." +msgstr "" + +#: ../Doc/library/traceback.rst:207 +msgid "A :class:`TracebackException` of the original ``__context__``." +msgstr "" + +#: ../Doc/library/traceback.rst:211 +msgid "The ``__suppress_context__`` value from the original exception." +msgstr "" + +#: ../Doc/library/traceback.rst:215 +msgid "A :class:`StackSummary` representing the traceback." +msgstr "" + +#: ../Doc/library/traceback.rst:219 +msgid "The class of the original traceback." +msgstr "" + +#: ../Doc/library/traceback.rst:223 +msgid "For syntax errors - the file name where the error occurred." +msgstr "" + +#: ../Doc/library/traceback.rst:227 +msgid "For syntax errors - the line number where the error occurred." +msgstr "" + +#: ../Doc/library/traceback.rst:231 +msgid "For syntax errors - the text where the error occurred." +msgstr "" + +#: ../Doc/library/traceback.rst:235 +msgid "For syntax errors - the offset into the text where the error occurred." +msgstr "" + +#: ../Doc/library/traceback.rst:239 +msgid "For syntax errors - the compiler error message." +msgstr "" + +#: ../Doc/library/traceback.rst:250 +msgid "Format the exception." +msgstr "" + +#: ../Doc/library/traceback.rst:252 +msgid "" +"If *chain* is not ``True``, ``__cause__`` and ``__context__`` will not be " +"formatted." +msgstr "" + +#: ../Doc/library/traceback.rst:255 +msgid "" +"The return value is a generator of strings, each ending in a newline and " +"some containing internal newlines. :func:`~traceback.print_exception` is a " +"wrapper around this method which just prints the lines to a file." +msgstr "" + +#: ../Doc/library/traceback.rst:259 ../Doc/library/traceback.rst:273 +msgid "" +"The message indicating which exception occurred is always the last string in " +"the output." +msgstr "" + +#: ../Doc/library/traceback.rst:264 +msgid "Format the exception part of the traceback." +msgstr "" + +#: ../Doc/library/traceback.rst:266 +msgid "The return value is a generator of strings, each ending in a newline." +msgstr "" + +#: ../Doc/library/traceback.rst:268 +msgid "" +"Normally, the generator emits a single string; however, for :exc:" +"`SyntaxError` exceptions, it emits several lines that (when printed) display " +"detailed information about where the syntax error occurred." +msgstr "" + +#: ../Doc/library/traceback.rst:278 +msgid ":class:`StackSummary` Objects" +msgstr "" + +#: ../Doc/library/traceback.rst:282 +msgid "" +":class:`StackSummary` objects represent a call stack ready for formatting." +msgstr "" + +#: ../Doc/library/traceback.rst:288 +msgid "" +"Construct a :class:`StackSummary` object from a frame generator (such as is " +"returned by :func:`~traceback.walk_stack` or :func:`~traceback.walk_tb`)." +msgstr "" + +#: ../Doc/library/traceback.rst:292 +msgid "" +"If *limit* is supplied, only this many frames are taken from *frame_gen*. If " +"*lookup_lines* is ``False``, the returned :class:`FrameSummary` objects will " +"not have read their lines in yet, making the cost of creating the :class:" +"`StackSummary` cheaper (which may be valuable if it may not actually get " +"formatted). If *capture_locals* is ``True`` the local variables in each :" +"class:`FrameSummary` are captured as object representations." +msgstr "" + +#: ../Doc/library/traceback.rst:302 +msgid "" +"Construct a :class:`StackSummary` object from a supplied list of :class:" +"`FrameSummary` objects or old-style list of tuples. Each tuple should be a " +"4-tuple with filename, lineno, name, line as the elements." +msgstr "" + +#: ../Doc/library/traceback.rst:308 +msgid "" +"Returns a list of strings ready for printing. Each string in the resulting " +"list corresponds to a single frame from the stack. Each string ends in a " +"newline; the strings may contain internal newlines as well, for those items " +"with source text lines." +msgstr "" + +#: ../Doc/library/traceback.rst:313 +msgid "" +"For long sequences of the same frame and line, the first few repetitions are " +"shown, followed by a summary line stating the exact number of further " +"repetitions." +msgstr "" + +#: ../Doc/library/traceback.rst:317 +msgid "Long sequences of repeated frames are now abbreviated." +msgstr "" + +#: ../Doc/library/traceback.rst:322 +msgid ":class:`FrameSummary` Objects" +msgstr "" + +#: ../Doc/library/traceback.rst:326 +msgid ":class:`FrameSummary` objects represent a single frame in a traceback." +msgstr "" + +#: ../Doc/library/traceback.rst:330 +msgid "" +"Represent a single frame in the traceback or stack that is being formatted " +"or printed. It may optionally have a stringified version of the frames " +"locals included in it. If *lookup_line* is ``False``, the source code is not " +"looked up until the :class:`FrameSummary` has the :attr:`~FrameSummary.line` " +"attribute accessed (which also happens when casting it to a tuple). :attr:" +"`~FrameSummary.line` may be directly provided, and will prevent line lookups " +"happening at all. *locals* is an optional local variable dictionary, and if " +"supplied the variable representations are stored in the summary for later " +"display." +msgstr "" + +#: ../Doc/library/traceback.rst:343 +msgid "Traceback Examples" +msgstr "" + +#: ../Doc/library/traceback.rst:345 +msgid "" +"This simple example implements a basic read-eval-print loop, similar to (but " +"less useful than) the standard Python interactive interpreter loop. For a " +"more complete implementation of the interpreter loop, refer to the :mod:" +"`code` module. ::" +msgstr "" + +#: ../Doc/library/traceback.rst:367 +msgid "" +"The following example demonstrates the different ways to print and format " +"the exception and traceback:" +msgstr "" + +#: ../Doc/library/traceback.rst:406 +msgid "The output for the example would look similar to this:" +msgstr "" + +#: ../Doc/library/traceback.rst:448 +msgid "" +"The following example shows the different ways to print and format the " +"stack::" +msgstr "" + +#: ../Doc/library/traceback.rst:474 +msgid "This last example demonstrates the final few formatting functions:" +msgstr "" diff --git a/library/tracemalloc.po b/library/tracemalloc.po new file mode 100644 index 000000000..15f3df8bd --- /dev/null +++ b/library/tracemalloc.po @@ -0,0 +1,718 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/tracemalloc.rst:2 +msgid ":mod:`tracemalloc` --- Trace memory allocations" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:9 +msgid "**Source code:** :source:`Lib/tracemalloc.py`" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:13 +msgid "" +"The tracemalloc module is a debug tool to trace memory blocks allocated by " +"Python. It provides the following information:" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:16 +msgid "Traceback where an object was allocated" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:17 +msgid "" +"Statistics on allocated memory blocks per filename and per line number: " +"total size, number and average size of allocated memory blocks" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:19 +msgid "Compute the differences between two snapshots to detect memory leaks" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:21 +msgid "" +"To trace most memory blocks allocated by Python, the module should be " +"started as early as possible by setting the :envvar:`PYTHONTRACEMALLOC` " +"environment variable to ``1``, or by using :option:`-X` ``tracemalloc`` " +"command line option. The :func:`tracemalloc.start` function can be called at " +"runtime to start tracing Python memory allocations." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:27 +msgid "" +"By default, a trace of an allocated memory block only stores the most recent " +"frame (1 frame). To store 25 frames at startup: set the :envvar:" +"`PYTHONTRACEMALLOC` environment variable to ``25``, or use the :option:`-X` " +"``tracemalloc=25`` command line option." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:34 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/tracemalloc.rst:37 +msgid "Display the top 10" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:39 +msgid "Display the 10 files allocating the most memory::" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:55 ../Doc/library/tracemalloc.rst:227 +msgid "Example of output of the Python test suite::" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:69 +msgid "" +"We can see that Python loaded ``4855 KiB`` data (bytecode and constants) " +"from modules and that the :mod:`collections` module allocated ``244 KiB`` to " +"build :class:`~collections.namedtuple` types." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:73 ../Doc/library/tracemalloc.rst:252 +msgid "See :meth:`Snapshot.statistics` for more options." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:77 +msgid "Compute differences" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:79 +msgid "Take two snapshots and display the differences::" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:95 +msgid "" +"Example of output before/after running some tests of the Python test suite::" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:109 +msgid "" +"We can see that Python has loaded ``8173 KiB`` of module data (bytecode and " +"constants), and that this is ``4428 KiB`` more than had been loaded before " +"the tests, when the previous snapshot was taken. Similarly, the :mod:" +"`linecache` module has cached ``940 KiB`` of Python source code to format " +"tracebacks, all of it since the previous snapshot." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:115 +msgid "" +"If the system has little free memory, snapshots can be written on disk using " +"the :meth:`Snapshot.dump` method to analyze the snapshot offline. Then use " +"the :meth:`Snapshot.load` method reload the snapshot." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:121 +msgid "Get the traceback of a memory block" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:123 +msgid "Code to display the traceback of the biggest memory block::" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:141 +msgid "" +"Example of output of the Python test suite (traceback limited to 25 frames)::" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:178 +msgid "" +"We can see that the most memory was allocated in the :mod:`importlib` module " +"to load data (bytecode and constants) from modules: ``870.1 KiB``. The " +"traceback is where the :mod:`importlib` loaded data most recently: on the " +"``import pdb`` line of the :mod:`doctest` module. The traceback may change " +"if a new module is loaded." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:186 +msgid "Pretty top" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:188 +msgid "" +"Code to display the 10 lines allocating the most memory with a pretty " +"output, ignoring ```` and ```` files::" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:256 +msgid "API" +msgstr "API" + +#: ../Doc/library/tracemalloc.rst:259 +msgid "Functions" +msgstr "Fonctions" + +#: ../Doc/library/tracemalloc.rst:263 +msgid "Clear traces of memory blocks allocated by Python." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:265 +msgid "See also :func:`stop`." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:270 +msgid "" +"Get the traceback where the Python object *obj* was allocated. Return a :" +"class:`Traceback` instance, or ``None`` if the :mod:`tracemalloc` module is " +"not tracing memory allocations or did not trace the allocation of the object." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:275 +msgid "See also :func:`gc.get_referrers` and :func:`sys.getsizeof` functions." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:280 +msgid "Get the maximum number of frames stored in the traceback of a trace." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:282 +msgid "" +"The :mod:`tracemalloc` module must be tracing memory allocations to get the " +"limit, otherwise an exception is raised." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:285 +msgid "The limit is set by the :func:`start` function." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:290 +msgid "" +"Get the current size and peak size of memory blocks traced by the :mod:" +"`tracemalloc` module as a tuple: ``(current: int, peak: int)``." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:296 +msgid "" +"Get the memory usage in bytes of the :mod:`tracemalloc` module used to store " +"traces of memory blocks. Return an :class:`int`." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:303 +msgid "" +"``True`` if the :mod:`tracemalloc` module is tracing Python memory " +"allocations, ``False`` otherwise." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:306 +msgid "See also :func:`start` and :func:`stop` functions." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:311 +msgid "" +"Start tracing Python memory allocations: install hooks on Python memory " +"allocators. Collected tracebacks of traces will be limited to *nframe* " +"frames. By default, a trace of a memory block only stores the most recent " +"frame: the limit is ``1``. *nframe* must be greater or equal to ``1``." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:316 +msgid "" +"Storing more than ``1`` frame is only useful to compute statistics grouped " +"by ``'traceback'`` or to compute cumulative statistics: see the :meth:" +"`Snapshot.compare_to` and :meth:`Snapshot.statistics` methods." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:320 +msgid "" +"Storing more frames increases the memory and CPU overhead of the :mod:" +"`tracemalloc` module. Use the :func:`get_tracemalloc_memory` function to " +"measure how much memory is used by the :mod:`tracemalloc` module." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:324 +msgid "" +"The :envvar:`PYTHONTRACEMALLOC` environment variable " +"(``PYTHONTRACEMALLOC=NFRAME``) and the :option:`-X` ``tracemalloc=NFRAME`` " +"command line option can be used to start tracing at startup." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:328 +msgid "" +"See also :func:`stop`, :func:`is_tracing` and :func:`get_traceback_limit` " +"functions." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:334 +msgid "" +"Stop tracing Python memory allocations: uninstall hooks on Python memory " +"allocators. Also clears all previously collected traces of memory blocks " +"allocated by Python." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:338 +msgid "" +"Call :func:`take_snapshot` function to take a snapshot of traces before " +"clearing them." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:341 +msgid "" +"See also :func:`start`, :func:`is_tracing` and :func:`clear_traces` " +"functions." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:347 +msgid "" +"Take a snapshot of traces of memory blocks allocated by Python. Return a " +"new :class:`Snapshot` instance." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:350 +msgid "" +"The snapshot does not include memory blocks allocated before the :mod:" +"`tracemalloc` module started to trace memory allocations." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:353 +msgid "" +"Tracebacks of traces are limited to :func:`get_traceback_limit` frames. Use " +"the *nframe* parameter of the :func:`start` function to store more frames." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:356 +msgid "" +"The :mod:`tracemalloc` module must be tracing memory allocations to take a " +"snapshot, see the :func:`start` function." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:359 +msgid "See also the :func:`get_object_traceback` function." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:363 +msgid "DomainFilter" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:367 +msgid "Filter traces of memory blocks by their address space (domain)." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:373 +msgid "" +"If *inclusive* is ``True`` (include), match memory blocks allocated in the " +"address space :attr:`domain`." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:376 +msgid "" +"If *inclusive* is ``False`` (exclude), match memory blocks not allocated in " +"the address space :attr:`domain`." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:381 ../Doc/library/tracemalloc.rst:633 +msgid "Address space of a memory block (``int``). Read-only property." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:385 +msgid "Filter" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:389 +msgid "Filter on traces of memory blocks." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:391 +msgid "" +"See the :func:`fnmatch.fnmatch` function for the syntax of " +"*filename_pattern*. The ``'.pyc'`` file extension is replaced with ``'.py'``." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:395 +msgid "Examples:" +msgstr "Exemples :" + +#: ../Doc/library/tracemalloc.rst:397 +msgid "" +"``Filter(True, subprocess.__file__)`` only includes traces of the :mod:" +"`subprocess` module" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:399 +msgid "" +"``Filter(False, tracemalloc.__file__)`` excludes traces of the :mod:" +"`tracemalloc` module" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:401 +msgid "``Filter(False, \"\")`` excludes empty tracebacks" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:404 +msgid "The ``'.pyo'`` file extension is no longer replaced with ``'.py'``." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:407 ../Doc/library/tracemalloc.rst:628 +msgid "Added the :attr:`domain` attribute." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:413 +msgid "Address space of a memory block (``int`` or ``None``)." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:415 ../Doc/library/tracemalloc.rst:635 +msgid "" +"tracemalloc uses the domain ``0`` to trace memory allocations made by " +"Python. C extensions can use other domains to trace other resources." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:420 +msgid "" +"If *inclusive* is ``True`` (include), only match memory blocks allocated in " +"a file with a name matching :attr:`filename_pattern` at line number :attr:" +"`lineno`." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:424 +msgid "" +"If *inclusive* is ``False`` (exclude), ignore memory blocks allocated in a " +"file with a name matching :attr:`filename_pattern` at line number :attr:" +"`lineno`." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:430 +msgid "" +"Line number (``int``) of the filter. If *lineno* is ``None``, the filter " +"matches any line number." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:435 +msgid "Filename pattern of the filter (``str``). Read-only property." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:439 +msgid "" +"If *all_frames* is ``True``, all frames of the traceback are checked. If " +"*all_frames* is ``False``, only the most recent frame is checked." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:442 +msgid "" +"This attribute has no effect if the traceback limit is ``1``. See the :func:" +"`get_traceback_limit` function and :attr:`Snapshot.traceback_limit` " +"attribute." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:448 +msgid "Frame" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:452 +msgid "Frame of a traceback." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:454 +msgid "The :class:`Traceback` class is a sequence of :class:`Frame` instances." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:458 +msgid "Filename (``str``)." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:462 +msgid "Line number (``int``)." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:466 +msgid "Snapshot" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:470 +msgid "Snapshot of traces of memory blocks allocated by Python." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:472 +msgid "The :func:`take_snapshot` function creates a snapshot instance." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:476 +msgid "" +"Compute the differences with an old snapshot. Get statistics as a sorted " +"list of :class:`StatisticDiff` instances grouped by *key_type*." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:479 +msgid "" +"See the :meth:`Snapshot.statistics` method for *key_type* and *cumulative* " +"parameters." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:482 +msgid "" +"The result is sorted from the biggest to the smallest by: absolute value of :" +"attr:`StatisticDiff.size_diff`, :attr:`StatisticDiff.size`, absolute value " +"of :attr:`StatisticDiff.count_diff`, :attr:`Statistic.count` and then by :" +"attr:`StatisticDiff.traceback`." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:490 +msgid "Write the snapshot into a file." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:492 +msgid "Use :meth:`load` to reload the snapshot." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:497 +msgid "" +"Create a new :class:`Snapshot` instance with a filtered :attr:`traces` " +"sequence, *filters* is a list of :class:`DomainFilter` and :class:`Filter` " +"instances. If *filters* is an empty list, return a new :class:`Snapshot` " +"instance with a copy of the traces." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:502 +msgid "" +"All inclusive filters are applied at once, a trace is ignored if no " +"inclusive filters match it. A trace is ignored if at least one exclusive " +"filter matches it." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:506 +msgid ":class:`DomainFilter` instances are now also accepted in *filters*." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:512 +msgid "Load a snapshot from a file." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:514 +msgid "See also :meth:`dump`." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:519 +msgid "" +"Get statistics as a sorted list of :class:`Statistic` instances grouped by " +"*key_type*:" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:523 +msgid "key_type" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:523 +msgid "description" +msgstr "description" + +#: ../Doc/library/tracemalloc.rst:525 +msgid "``'filename'``" +msgstr "``'filename'``" + +#: ../Doc/library/tracemalloc.rst:525 +msgid "filename" +msgstr "filename" + +#: ../Doc/library/tracemalloc.rst:526 +msgid "``'lineno'``" +msgstr "``'lineno'``" + +#: ../Doc/library/tracemalloc.rst:526 +msgid "filename and line number" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:527 +msgid "``'traceback'``" +msgstr "``'traceback'``" + +#: ../Doc/library/tracemalloc.rst:527 +msgid "traceback" +msgstr "traceback" + +#: ../Doc/library/tracemalloc.rst:530 +msgid "" +"If *cumulative* is ``True``, cumulate size and count of memory blocks of all " +"frames of the traceback of a trace, not only the most recent frame. The " +"cumulative mode can only be used with *key_type* equals to ``'filename'`` " +"and ``'lineno'``." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:535 +msgid "" +"The result is sorted from the biggest to the smallest by: :attr:`Statistic." +"size`, :attr:`Statistic.count` and then by :attr:`Statistic.traceback`." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:542 +msgid "" +"Maximum number of frames stored in the traceback of :attr:`traces`: result " +"of the :func:`get_traceback_limit` when the snapshot was taken." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:547 +msgid "" +"Traces of all memory blocks allocated by Python: sequence of :class:`Trace` " +"instances." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:550 +msgid "" +"The sequence has an undefined order. Use the :meth:`Snapshot.statistics` " +"method to get a sorted list of statistics." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:555 +msgid "Statistic" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:559 +msgid "Statistic on memory allocations." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:561 +msgid "" +":func:`Snapshot.statistics` returns a list of :class:`Statistic` instances." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:563 +msgid "See also the :class:`StatisticDiff` class." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:567 +msgid "Number of memory blocks (``int``)." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:571 +msgid "Total size of memory blocks in bytes (``int``)." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:575 ../Doc/library/tracemalloc.rst:644 +msgid "" +"Traceback where the memory block was allocated, :class:`Traceback` instance." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:580 +msgid "StatisticDiff" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:584 +msgid "" +"Statistic difference on memory allocations between an old and a new :class:" +"`Snapshot` instance." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:587 +msgid "" +":func:`Snapshot.compare_to` returns a list of :class:`StatisticDiff` " +"instances. See also the :class:`Statistic` class." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:592 +msgid "" +"Number of memory blocks in the new snapshot (``int``): ``0`` if the memory " +"blocks have been released in the new snapshot." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:597 +msgid "" +"Difference of number of memory blocks between the old and the new snapshots " +"(``int``): ``0`` if the memory blocks have been allocated in the new " +"snapshot." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:603 +msgid "" +"Total size of memory blocks in bytes in the new snapshot (``int``): ``0`` if " +"the memory blocks have been released in the new snapshot." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:608 +msgid "" +"Difference of total size of memory blocks in bytes between the old and the " +"new snapshots (``int``): ``0`` if the memory blocks have been allocated in " +"the new snapshot." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:614 +msgid "" +"Traceback where the memory blocks were allocated, :class:`Traceback` " +"instance." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:619 +msgid "Trace" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:623 +msgid "Trace of a memory block." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:625 +msgid "" +"The :attr:`Snapshot.traces` attribute is a sequence of :class:`Trace` " +"instances." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:640 +msgid "Size of the memory block in bytes (``int``)." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:649 +msgid "Traceback" +msgstr "" + +#: ../Doc/library/tracemalloc.rst:653 +msgid "" +"Sequence of :class:`Frame` instances sorted from the oldest frame to the " +"most recent frame." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:656 +msgid "" +"A traceback contains at least ``1`` frame. If the ``tracemalloc`` module " +"failed to get a frame, the filename ``\"\"`` at line number ``0`` " +"is used." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:660 +msgid "" +"When a snapshot is taken, tracebacks of traces are limited to :func:" +"`get_traceback_limit` frames. See the :func:`take_snapshot` function." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:663 +msgid "" +"The :attr:`Trace.traceback` attribute is an instance of :class:`Traceback` " +"instance." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:666 +msgid "" +"Frames are now sorted from the oldest to the most recent, instead of most " +"recent to oldest." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:671 +msgid "" +"Format the traceback as a list of lines with newlines. Use the :mod:" +"`linecache` module to retrieve lines from the source code. If *limit* is " +"set, format the *limit* most recent frames if *limit* is positive. " +"Otherwise, format the ``abs(limit)`` oldest frames. If *most_recent_first* " +"is ``True``, the order of the formatted frames is reversed, returning the " +"most recent frame first instead of last." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:678 +msgid "" +"Similar to the :func:`traceback.format_tb` function, except that :meth:`." +"format` does not include newlines." +msgstr "" + +#: ../Doc/library/tracemalloc.rst:681 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/tracemalloc.rst:687 +msgid "Output::" +msgstr "Sortie ::" diff --git a/library/tty.po b/library/tty.po new file mode 100644 index 000000000..00b1f7861 --- /dev/null +++ b/library/tty.po @@ -0,0 +1,68 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"PO-Revision-Date: 2017-11-08 19:28+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/tty.rst:2 +msgid ":mod:`tty` --- Terminal control functions" +msgstr ":mod:`tty` — Fonctions de gestion du terminal" + +#: ../Doc/library/tty.rst:11 +msgid "**Source code:** :source:`Lib/tty.py`" +msgstr "**Code source :** :source:`Lib/tty.py`" + +#: ../Doc/library/tty.rst:15 +msgid "" +"The :mod:`tty` module defines functions for putting the tty into cbreak and " +"raw modes." +msgstr "" +"Le module :mod:`tty` expose des fonctions permettant de mettre le *tty* en " +"mode *cbreak* ou *raw*." + +#: ../Doc/library/tty.rst:18 +msgid "" +"Because it requires the :mod:`termios` module, it will work only on Unix." +msgstr "" +"Puisqu'il a besoin du module :mod:`termios`, il ne fonctionnera que sur Unix." + +#: ../Doc/library/tty.rst:20 +msgid "The :mod:`tty` module defines the following functions:" +msgstr "Le module :mod:`tty` définit les fonctions suivantes :" + +#: ../Doc/library/tty.rst:25 +msgid "" +"Change the mode of the file descriptor *fd* to raw. If *when* is omitted, it " +"defaults to :const:`termios.TCSAFLUSH`, and is passed to :func:`termios." +"tcsetattr`." +msgstr "" +"Définit le mode du descripteur de fichier *fd* à *row*. Par défaut, *when* " +"vaut :const:`termios.TCSAFLUSH`, et est passé à :func:`termios.tcsetattr`." + +#: ../Doc/library/tty.rst:32 +msgid "" +"Change the mode of file descriptor *fd* to cbreak. If *when* is omitted, it " +"defaults to :const:`termios.TCSAFLUSH`, and is passed to :func:`termios." +"tcsetattr`." +msgstr "" +"Définit le mode du descripteur de fichier *fd* à *cbreak*. *when* vaut :" +"const:`termios.TCSAFLUSH` par défaut, et est passé à :func:`termios." +"tcsetattr`." + +#: ../Doc/library/tty.rst:39 +msgid "Module :mod:`termios`" +msgstr "Module :mod:`termios`" + +#: ../Doc/library/tty.rst:40 +msgid "Low-level terminal control interface." +msgstr "Interface bas niveau de gestion du terminal." diff --git a/library/turtle.po b/library/turtle.po new file mode 100644 index 000000000..1074040b5 --- /dev/null +++ b/library/turtle.po @@ -0,0 +1,3120 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-01-14 15:47+0100\n" +"Last-Translator: Pablo Abril \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/library/turtle.rst:3 +msgid ":mod:`turtle` --- Turtle graphics" +msgstr ":mod:`turtle` — Tortue graphique" + +#: ../Doc/library/turtle.rst:10 +msgid "**Source code:** :source:`Lib/turtle.py`" +msgstr "**Code Source :** :source:`Lib/turtle.py`" + +#: ../Doc/library/turtle.rst:20 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/library/turtle.rst:22 +#, fuzzy +msgid "" +"Turtle graphics is a popular way for introducing programming to kids. It " +"was part of the original Logo programming language developed by Wally " +"Feurzeig, Seymour Papert and Cynthia Solomon in 1967." +msgstr "" +"Une façon populaire pour initier les enfants au monde du développement est " +"le module Tortue graphique. Ce dernier faisait partie du langage de " +"programmation Logo créé par Wally Feurzig et Seymout Papert en 1966." + +#: ../Doc/library/turtle.rst:26 +msgid "" +"Imagine a robotic turtle starting at (0, 0) in the x-y plane. After an " +"``import turtle``, give it the command ``turtle.forward(15)``, and it moves " +"(on-screen!) 15 pixels in the direction it is facing, drawing a line as it " +"moves. Give it the command ``turtle.right(25)``, and it rotates in-place 25 " +"degrees clockwise." +msgstr "" +"Imaginez un robot sous forme de tortue partant au centre (0, 0) d'un plan " +"cartésien x-y. Après un ``import turtle``, exécutez la commande ``turtle." +"forward(15)`` et la tortue se déplace (sur l'écran) de 15 pixels en face " +"d'elle, en dessinant une ligne." + +#: ../Doc/library/turtle.rst:33 +msgid "" +"Turtle can draw intricate shapes using programs that repeat simple moves." +msgstr "" +"La tortue permet de dessiner des formes complexes en utilisant un programme " +"qui répète des actions élémentaires." + +#: ../Doc/library/turtle.rst:41 +msgid "" +"By combining together these and similar commands, intricate shapes and " +"pictures can easily be drawn." +msgstr "" +"On peut donc facilement construire des formes et images à partir de " +"commandes simples." + +#: ../Doc/library/turtle.rst:44 +msgid "" +"The :mod:`turtle` module is an extended reimplementation of the same-named " +"module from the Python standard distribution up to version Python 2.5." +msgstr "" +"Le module :mod:`turtle` est une version étendue du module homonyme " +"appartenant à la distribution standard de Python jusqu'à la version 2.5." + +#: ../Doc/library/turtle.rst:47 +msgid "" +"It tries to keep the merits of the old turtle module and to be (nearly) 100% " +"compatible with it. This means in the first place to enable the learning " +"programmer to use all the commands, classes and methods interactively when " +"using the module from within IDLE run with the ``-n`` switch." +msgstr "" +"Cette bibliothèque essaye de garder les avantages de l'ancien module et " +"d'être (presque) 100% compatible avec celui-ci. Cela permet à l'apprenti " +"développeur d'utiliser toutes les commandes, classes et méthodes de façon " +"interactive pendant qu'il utilise le module depuis IDLE lancé avec l'option " +"``-n``." + +#: ../Doc/library/turtle.rst:52 +msgid "" +"The turtle module provides turtle graphics primitives, in both object-" +"oriented and procedure-oriented ways. Because it uses :mod:`tkinter` for " +"the underlying graphics, it needs a version of Python installed with Tk " +"support." +msgstr "" +"*Turtle* permet d'utiliser des primitives graphiques en utilisant un style " +"de programmation orienté objet ou procédural. Du fait qu'il utilise la " +"bibliothèque graphique :mod:`tkinter`, *Turtle* a besoin d'une version de " +"python implémentant *Tk*." + +# two+two ?? +#: ../Doc/library/turtle.rst:56 +msgid "The object-oriented interface uses essentially two+two classes:" +msgstr "" +"L'interface orientée objet utilise essentiellement deux + deux classes :" + +#: ../Doc/library/turtle.rst:58 +msgid "" +"The :class:`TurtleScreen` class defines graphics windows as a playground for " +"the drawing turtles. Its constructor needs a :class:`tkinter.Canvas` or a :" +"class:`ScrolledCanvas` as argument. It should be used when :mod:`turtle` is " +"used as part of some application." +msgstr "" +"La classe :class:`TurtleScreen` définit une fenêtre graphique utilisé comme " +"un terrain de jeu pour les dessins de la tortue. Le constructeur de cette " +"classe a besoin d'un :class:`tkinter.Canvas` ou :class:`ScrolledCanvas` " +"comme argument. Cette classe doit être utilisée seulement si :mod:`turtle` " +"fait partie intégrante d'une autre application." + +#: ../Doc/library/turtle.rst:63 +msgid "" +"The function :func:`Screen` returns a singleton object of a :class:" +"`TurtleScreen` subclass. This function should be used when :mod:`turtle` is " +"used as a standalone tool for doing graphics. As a singleton object, " +"inheriting from its class is not possible." +msgstr "" +"La fonction :func:`Screen` renvoie un singleton d'une sous-classe de :class:" +"`TurtleScreen`. Elle doit être utilisée quand le module :mod:`turtle` est " +"utilisé de façon autonome pour dessiner. Le singleton renvoyé ne peut " +"hériter de sa classe." + +#: ../Doc/library/turtle.rst:68 +msgid "" +"All methods of TurtleScreen/Screen also exist as functions, i.e. as part of " +"the procedure-oriented interface." +msgstr "" +"Toutes les méthodes de *TurtleScreen*/*Screen* existent également sous la " +"forme de fonctions, c'est-à-dire que ces dernières peuvent être utilisées " +"dans un style procédural." + +#: ../Doc/library/turtle.rst:71 +msgid "" +":class:`RawTurtle` (alias: :class:`RawPen`) defines Turtle objects which " +"draw on a :class:`TurtleScreen`. Its constructor needs a Canvas, " +"ScrolledCanvas or TurtleScreen as argument, so the RawTurtle objects know " +"where to draw." +msgstr "" +"La classe :class:`RawTurtle` (alias :class:`RawPen`) définit des objets " +"*Turtle* qui peuvent dessiner sur la classe :class:`TurtleScreen`. Son " +"constructeur prend en paramètre un *Canvas*, un *ScrolledCanvas* ou un " +"*TurtleScreen* permettant à l'objet *RawTurtle* de savoir où écrire." + +#: ../Doc/library/turtle.rst:75 +msgid "" +"Derived from RawTurtle is the subclass :class:`Turtle` (alias: :class:" +"`Pen`), which draws on \"the\" :class:`Screen` instance which is " +"automatically created, if not already present." +msgstr "" +"La sous-classe :class:`Turtle` (alias: :class:`Pen`), dérivée de " +"*RawTurtle*, dessine sur l'instance :class:`Screen` qui est créée " +"automatiquement si elle n'est pas déjà présente." + +#: ../Doc/library/turtle.rst:79 +msgid "" +"All methods of RawTurtle/Turtle also exist as functions, i.e. part of the " +"procedure-oriented interface." +msgstr "" +"Toutes les méthodes de *RawTurtle*/*Turtle* existent également sous la forme " +"de fonctions, c'est-à-dire que ces dernières pourront être utilisées en " +"style procédural." + +#: ../Doc/library/turtle.rst:82 +msgid "" +"The procedural interface provides functions which are derived from the " +"methods of the classes :class:`Screen` and :class:`Turtle`. They have the " +"same names as the corresponding methods. A screen object is automatically " +"created whenever a function derived from a Screen method is called. An " +"(unnamed) turtle object is automatically created whenever any of the " +"functions derived from a Turtle method is called." +msgstr "" +"L'interface procédurale met à disposition des fonctions équivalentes à " +"celles des méthodes des classes :class:`Screen` et :class:`Turtle`. Le nom " +"d'une fonction est le même que la méthode équivalente. Un objet *Screen* est " +"créé automatiquement dès qu'une fonction dérivée d'une méthode *Screen* est " +"appelée. Un objet *Turtle* (sans nom) est créé automatiquement dès qu'une " +"fonction dérivée d'une méthode *Turtle* est appelée." + +#: ../Doc/library/turtle.rst:89 +msgid "" +"To use multiple turtles on a screen one has to use the object-oriented " +"interface." +msgstr "" +"Afin de pouvoir utiliser plusieurs tortues simultanément sur l'écran, vous " +"devez utiliser l'interface orientée-objet." + +#: ../Doc/library/turtle.rst:92 +msgid "" +"In the following documentation the argument list for functions is given. " +"Methods, of course, have the additional first argument *self* which is " +"omitted here." +msgstr "" +"La liste des paramètres des fonctions est donnée dans cette documentation. " +"Les méthodes ont, évidemment, le paramètre *self* comme premier argument, " +"mais ce dernier n'est pas indiqué ici." + +#: ../Doc/library/turtle.rst:98 +msgid "Overview of available Turtle and Screen methods" +msgstr "Résumé des méthodes de *Turtle* et *Screen*" + +#: ../Doc/library/turtle.rst:101 +msgid "Turtle methods" +msgstr "Les méthodes du module *Turtle*" + +#: ../Doc/library/turtle.rst:132 ../Doc/library/turtle.rst:242 +msgid "Turtle motion" +msgstr "Les mouvements dans le module *Turtle*" + +#: ../Doc/library/turtle.rst:120 +msgid "Move and draw" +msgstr "Bouger et dessiner" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`forward` | :func:`fd`" +msgstr ":func:`forward` | :func:`fd`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`backward` | :func:`bk` | :func:`back`" +msgstr ":func:`backward` | :func:`bk` | :func:`back`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`right` | :func:`rt`" +msgstr ":func:`right` | :func:`rt`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`left` | :func:`lt`" +msgstr ":func:`left` | :func:`lt`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`goto` | :func:`setpos` | :func:`setposition`" +msgstr ":func:`goto` | :func:`setpos` | :func:`setposition`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`setx`" +msgstr ":func:`setx`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`sety`" +msgstr ":func:`sety`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`setheading` | :func:`seth`" +msgstr ":func:`setheading` | :func:`seth`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`home`" +msgstr ":func:`home`" + +#: ../Doc/library/turtle.rst:0 ../Doc/library/turtle.rst:2370 +msgid ":func:`circle`" +msgstr ":func:`circle`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`dot`" +msgstr ":func:`dot`" + +#: ../Doc/library/turtle.rst:0 ../Doc/library/turtle.rst:2348 +msgid ":func:`stamp`" +msgstr ":func:`stamp`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`clearstamp`" +msgstr ":func:`clearstamp`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`clearstamps`" +msgstr ":func:`clearstamps`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`undo`" +msgstr ":func:`undo`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`speed`" +msgstr ":func:`speed`" + +#: ../Doc/library/turtle.rst:128 ../Doc/library/turtle.rst:623 +msgid "Tell Turtle's state" +msgstr "Connaître l'état de la tortue" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`position` | :func:`pos`" +msgstr ":func:`position` | :func:`pos`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`towards`" +msgstr ":func:`towards`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`xcor`" +msgstr ":func:`xcor`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`ycor`" +msgstr ":func:`ycor`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`heading`" +msgstr ":func:`heading`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`distance`" +msgstr ":func:`distance`" + +#: ../Doc/library/turtle.rst:132 +msgid "Setting and measurement" +msgstr "Paramétrage et mesure" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`degrees`" +msgstr ":func:`degrees`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`radians`" +msgstr ":func:`radians`" + +#: ../Doc/library/turtle.rst:155 ../Doc/library/turtle.rst:765 +msgid "Pen control" +msgstr "Réglage des pinceaux" + +#: ../Doc/library/turtle.rst:140 ../Doc/library/turtle.rst:768 +msgid "Drawing state" +msgstr "État des pinceaux" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`pendown` | :func:`pd` | :func:`down`" +msgstr ":func:`pendown` | :func:`pd` | :func:`down`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`penup` | :func:`pu` | :func:`up`" +msgstr ":func:`penup` | :func:`pu` | :func:`up`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`pensize` | :func:`width`" +msgstr ":func:`pensize` | :func:`width`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`pen`" +msgstr ":func:`pen`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`isdown`" +msgstr ":func:`isdown`" + +#: ../Doc/library/turtle.rst:145 ../Doc/library/turtle.rst:857 +msgid "Color control" +msgstr "Réglage des couleurs" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`color`" +msgstr ":func:`color`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`pencolor`" +msgstr ":func:`pencolor`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`fillcolor`" +msgstr ":func:`fillcolor`" + +#: ../Doc/library/turtle.rst:150 ../Doc/library/turtle.rst:986 +msgid "Filling" +msgstr "Remplissage" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`filling`" +msgstr ":func:`filling`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`begin_fill`" +msgstr ":func:`begin_fill`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`end_fill`" +msgstr ":func:`end_fill`" + +#: ../Doc/library/turtle.rst:155 ../Doc/library/turtle.rst:1025 +msgid "More drawing control" +msgstr "Plus des réglages pour le dessin" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`reset`" +msgstr ":func:`reset`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`clear`" +msgstr ":func:`clear`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`write`" +msgstr ":func:`write`" + +#: ../Doc/library/turtle.rst:172 ../Doc/library/turtle.rst:1070 +msgid "Turtle state" +msgstr "État de la tortue" + +#: ../Doc/library/turtle.rst:161 ../Doc/library/turtle.rst:1073 +msgid "Visibility" +msgstr "Visibilité" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`showturtle` | :func:`st`" +msgstr ":func:`showturtle` | :func:`st`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`hideturtle` | :func:`ht`" +msgstr ":func:`hideturtle` | :func:`ht`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`isvisible`" +msgstr ":func:`isvisible`" + +#: ../Doc/library/turtle.rst:172 ../Doc/library/turtle.rst:1110 +msgid "Appearance" +msgstr "Apparence" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`shape`" +msgstr ":func:`shape`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`resizemode`" +msgstr ":func:`resizemode`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`shapesize` | :func:`turtlesize`" +msgstr ":func:`shapesize` | :func:`turtlesize`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`shearfactor`" +msgstr ":func:`shearfactor`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`settiltangle`" +msgstr ":func:`settiltangle`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`tiltangle`" +msgstr ":func:`tiltangle`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`tilt`" +msgstr ":func:`tilt`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`shapetransform`" +msgstr ":func:`shapetransform`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`get_shapepoly`" +msgstr ":func:`get_shapepoly`" + +#: ../Doc/library/turtle.rst:177 ../Doc/library/turtle.rst:1306 +msgid "Using events" +msgstr "Utilisation des événements" + +#: ../Doc/library/turtle.rst:0 ../Doc/library/turtle.rst:2342 +msgid ":func:`onclick`" +msgstr ":func:`onclick`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`onrelease`" +msgstr ":func:`onrelease`" + +#: ../Doc/library/turtle.rst:0 ../Doc/library/turtle.rst:2325 +msgid ":func:`ondrag`" +msgstr ":func:`ondrag`" + +#: ../Doc/library/turtle.rst:188 ../Doc/library/turtle.rst:1376 +msgid "Special Turtle methods" +msgstr "Méthodes spéciales de la tortue" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`begin_poly`" +msgstr ":func:`begin_poly`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`end_poly`" +msgstr ":func:`end_poly`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`get_poly`" +msgstr ":func:`get_poly`" + +#: ../Doc/library/turtle.rst:0 ../Doc/library/turtle.rst:2361 +msgid ":func:`clone`" +msgstr ":func:`clone`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`getturtle` | :func:`getpen`" +msgstr ":func:`getturtle` | :func:`getpen`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`getscreen`" +msgstr ":func:`getscreen`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`setundobuffer`" +msgstr ":func:`setundobuffer`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`undobufferentries`" +msgstr ":func:`undobufferentries`" + +#: ../Doc/library/turtle.rst:191 +msgid "Methods of TurtleScreen/Screen" +msgstr "Méthodes de *TurtleScreen*/*Screen*" + +#: ../Doc/library/turtle.rst:199 ../Doc/library/turtle.rst:1521 +msgid "Window control" +msgstr "Réglage de la fenêtre" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`bgcolor`" +msgstr ":func:`bgcolor`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`bgpic`" +msgstr ":func:`bgpic`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`clear` | :func:`clearscreen`" +msgstr ":func:`clear` | :func:`clearscreen`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`reset` | :func:`resetscreen`" +msgstr ":func:`reset` | :func:`resetscreen`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`screensize`" +msgstr ":func:`screensize`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`setworldcoordinates`" +msgstr ":func:`setworldcoordinates`" + +#: ../Doc/library/turtle.rst:204 ../Doc/library/turtle.rst:1635 +msgid "Animation control" +msgstr "Réglage de l'animation" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`delay`" +msgstr ":func:`delay`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`tracer`" +msgstr ":func:`tracer`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`update`" +msgstr ":func:`update`" + +#: ../Doc/library/turtle.rst:212 ../Doc/library/turtle.rst:1686 +msgid "Using screen events" +msgstr "Utilisation des événements concernant l'écran" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`listen`" +msgstr ":func:`listen`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`onkey` | :func:`onkeyrelease`" +msgstr ":func:`onkey` | :func:`onkeyrelease`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`onkeypress`" +msgstr ":func:`onkeypress`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`onclick` | :func:`onscreenclick`" +msgstr ":func:`onclick` | :func:`onscreenclick`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`ontimer`" +msgstr ":func:`ontimer`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`mainloop` | :func:`done`" +msgstr ":func:`mainloop` | :func:`done`" + +#: ../Doc/library/turtle.rst:222 ../Doc/library/turtle.rst:1827 +msgid "Settings and special methods" +msgstr "Paramétrages et méthodes spéciales" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`mode`" +msgstr ":func:`mode`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`colormode`" +msgstr ":func:`colormode`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`getcanvas`" +msgstr ":func:`getcanvas`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`getshapes`" +msgstr ":func:`getshapes`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`register_shape` | :func:`addshape`" +msgstr ":func:`register_shape` | :func:`addshape`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`turtles`" +msgstr ":func:`turtles`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`window_height`" +msgstr ":func:`window_height`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`window_width`" +msgstr ":func:`window_width`" + +#: ../Doc/library/turtle.rst:226 ../Doc/library/turtle.rst:1791 +msgid "Input methods" +msgstr "Méthodes de saisie" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`textinput`" +msgstr ":func:`textinput`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`numinput`" +msgstr ":func:`numinput`" + +#: ../Doc/library/turtle.rst:233 +msgid "Methods specific to Screen" +msgstr "Méthodes spécifiques de *Screen*" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`bye`" +msgstr ":func:`bye`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`exitonclick`" +msgstr ":func:`exitonclick`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`setup`" +msgstr ":func:`setup`" + +#: ../Doc/library/turtle.rst:0 +msgid ":func:`title`" +msgstr ":func:`title`" + +#: ../Doc/library/turtle.rst:236 +msgid "Methods of RawTurtle/Turtle and corresponding functions" +msgstr "Méthodes de *RawTurtle*/*Turtle* et leurs fonctions correspondantes" + +#: ../Doc/library/turtle.rst:238 +msgid "" +"Most of the examples in this section refer to a Turtle instance called " +"``turtle``." +msgstr "" +"La plupart des exemples de cette section se réfèrent à une instance de " +"*Turtle* appelée ``turtle``." + +#: ../Doc/library/turtle.rst:0 +msgid "Parameters" +msgstr "Paramètres" + +#: ../Doc/library/turtle.rst:247 ../Doc/library/turtle.rst:290 +#: ../Doc/library/turtle.rst:313 ../Doc/library/turtle.rst:369 +#: ../Doc/library/turtle.rst:390 ../Doc/library/turtle.rst:411 +msgid "a number (integer or float)" +msgstr "un nombre (entier ou flottant)" + +#: ../Doc/library/turtle.rst:249 +msgid "" +"Move the turtle forward by the specified *distance*, in the direction the " +"turtle is headed." +msgstr "" +"Avance la tortue de la *distance* spécifiée, dans la direction où elle se " +"dirige." + +#: ../Doc/library/turtle.rst:268 ../Doc/library/turtle.rst:458 +#: ../Doc/library/turtle.rst:721 ../Doc/library/turtle.rst:1205 +#: ../Doc/library/turtle.rst:1223 +msgid "a number" +msgstr "un nombre" + +#: ../Doc/library/turtle.rst:270 +msgid "" +"Move the turtle backward by *distance*, opposite to the direction the turtle " +"is headed. Do not change the turtle's heading." +msgstr "" +"Déplace la tortue de *distance* vers l'arrière (dans le sens opposé à celui " +"vers lequel elle pointe). Ne change pas le cap de la tortue." + +#: ../Doc/library/turtle.rst:292 +msgid "" +"Turn turtle right by *angle* units. (Units are by default degrees, but can " +"be set via the :func:`degrees` and :func:`radians` functions.) Angle " +"orientation depends on the turtle mode, see :func:`mode`." +msgstr "" +"Tourne la tortue à droite de *angle* unités (les unités sont par défaut des " +"degrés, mais peuvent être définies via les fonctions :func:`degrees` et :" +"func:`radians`). L'orientation de l'angle dépend du mode de la tortue, voir :" +"func:`mode`." + +#: ../Doc/library/turtle.rst:315 +msgid "" +"Turn turtle left by *angle* units. (Units are by default degrees, but can " +"be set via the :func:`degrees` and :func:`radians` functions.) Angle " +"orientation depends on the turtle mode, see :func:`mode`." +msgstr "" +"Tourne la tortue à gauche d'une valeur de *angle* unités (les unités sont " +"par défaut des degrés, mais peuvent être définies via les fonctions :func:" +"`degrees` et :func:`radians`). L'orientation de l'angle dépend du mode de la " +"tortue, voir :func:`mode`." + +#: ../Doc/library/turtle.rst:337 +msgid "a number or a pair/vector of numbers" +msgstr "un nombre ou une paire / un vecteur de nombres" + +#: ../Doc/library/turtle.rst:338 +msgid "a number or ``None``" +msgstr "un nombre ou ``None``" + +#: ../Doc/library/turtle.rst:340 +msgid "" +"If *y* is ``None``, *x* must be a pair of coordinates or a :class:`Vec2D` (e." +"g. as returned by :func:`pos`)." +msgstr "" +"Si *y* est ``None``, *x* doit être une paire de coordonnées, ou bien une " +"instance de :class:`Vec2D` (par exemple, tel que renvoyé par :func:`pos`)." + +#: ../Doc/library/turtle.rst:343 +msgid "" +"Move turtle to an absolute position. If the pen is down, draw line. Do not " +"change the turtle's orientation." +msgstr "" +"Déplace la tortue vers une position absolue. Si le pinceau est en bas, trace " +"une ligne. Ne change pas l'orientation de la tortue." + +#: ../Doc/library/turtle.rst:371 +msgid "" +"Set the turtle's first coordinate to *x*, leave second coordinate unchanged." +msgstr "" +"Définit la première coordonnée de la tortue à *x*, en laissant la deuxième " +"coordonnée inchangée." + +#: ../Doc/library/turtle.rst:392 +msgid "" +"Set the turtle's second coordinate to *y*, leave first coordinate unchanged." +msgstr "" +"Définit la deuxième coordonnée de la tortue à *y*, en laissant la première " +"coordonnée inchangée." + +#: ../Doc/library/turtle.rst:413 +msgid "" +"Set the orientation of the turtle to *to_angle*. Here are some common " +"directions in degrees:" +msgstr "" +"Règle l'orientation de la tortue à la valeur `to_angle`. Voici quelques " +"orientations courantes en degrés :" + +#: ../Doc/library/turtle.rst:417 +msgid "standard mode" +msgstr "mode standard" + +#: ../Doc/library/turtle.rst:417 +msgid "logo mode" +msgstr "mode logo" + +#: ../Doc/library/turtle.rst:419 +msgid "0 - east" +msgstr "0 – Est" + +#: ../Doc/library/turtle.rst:419 +msgid "0 - north" +msgstr "0 – Nord" + +#: ../Doc/library/turtle.rst:420 +msgid "90 - north" +msgstr "90 – Nord" + +#: ../Doc/library/turtle.rst:420 +msgid "90 - east" +msgstr "90 – Est" + +#: ../Doc/library/turtle.rst:421 +msgid "180 - west" +msgstr "180 – Ouest" + +#: ../Doc/library/turtle.rst:421 +msgid "180 - south" +msgstr "180 – Sud" + +#: ../Doc/library/turtle.rst:422 +msgid "270 - south" +msgstr "270 – Sud" + +#: ../Doc/library/turtle.rst:422 +msgid "270 - west" +msgstr "270 – Ouest" + +#: ../Doc/library/turtle.rst:434 +msgid "" +"Move turtle to the origin -- coordinates (0,0) -- and set its heading to its " +"start-orientation (which depends on the mode, see :func:`mode`)." +msgstr "" +"Déplace la tortue à l'origine — coordonnées (0,0) — et l'oriente à son cap " +"initial (qui dépend du mode, voir :func:`mode`)." + +#: ../Doc/library/turtle.rst:459 +msgid "a number (or ``None``)" +msgstr "un nombre (ou ``None``)" + +#: ../Doc/library/turtle.rst:460 ../Doc/library/turtle.rst:550 +msgid "an integer (or ``None``)" +msgstr "un entier (ou ``None``)" + +#: ../Doc/library/turtle.rst:462 +msgid "" +"Draw a circle with given *radius*. The center is *radius* units left of the " +"turtle; *extent* -- an angle -- determines which part of the circle is " +"drawn. If *extent* is not given, draw the entire circle. If *extent* is " +"not a full circle, one endpoint of the arc is the current pen position. " +"Draw the arc in counterclockwise direction if *radius* is positive, " +"otherwise in clockwise direction. Finally the direction of the turtle is " +"changed by the amount of *extent*." +msgstr "" +"Dessine un cercle de rayon `radius`. Le centre se trouve à une distance de " +"`radius` à gauche de la tortue ; l'angle `extent` détermine quelle partie du " +"cercle est dessinée. Si `extent` n'est pas fourni, dessine le cercle en " +"entier. Si `extent` ne correspond pas à un cercle entier, la position " +"actuelle du stylo est donnée par l'un des points d'extrémité de l'arc de " +"cercle. Si la valeur de `radius` est positive, dessine l'arc de cercle dans " +"le sens inverse des aiguilles d'une montre, sinon le dessine dans le sens " +"des aiguilles d'une montre. Enfin, la direction de la tortue peut être " +"modifiée en réglant la valeur de `extent`." + +#: ../Doc/library/turtle.rst:470 +msgid "" +"As the circle is approximated by an inscribed regular polygon, *steps* " +"determines the number of steps to use. If not given, it will be calculated " +"automatically. May be used to draw regular polygons." +msgstr "" +"Comme le cercle est approximé par un polygone régulier inscrit, `steps` " +"détermine le nombre de pas à utiliser. Si cette valeur n'est pas donnée, " +"elle sera calculée automatiquement. Elle peut être utilisée pour dessiner " +"des polygones réguliers." + +#: ../Doc/library/turtle.rst:495 +msgid "an integer >= 1 (if given)" +msgstr "un entier supérieur ou égal à 1 (si fourni)" + +#: ../Doc/library/turtle.rst:496 +msgid "a colorstring or a numeric color tuple" +msgstr "une chaîne qui désigne une couleur ou un n-uplet de couleur numérique" + +#: ../Doc/library/turtle.rst:498 +msgid "" +"Draw a circular dot with diameter *size*, using *color*. If *size* is not " +"given, the maximum of pensize+4 and 2*pensize is used." +msgstr "" +"Dessine un point circulaire de diamètre `size`, de la couleur `color`. Si le " +"paramètre `size` n'est pas indiqué, utilise la valeur maximum de la taille " +"du pinceau plus 4 et de la taille du pinceau multiplié par 2." + +#: ../Doc/library/turtle.rst:515 +msgid "" +"Stamp a copy of the turtle shape onto the canvas at the current turtle " +"position. Return a stamp_id for that stamp, which can be used to delete it " +"by calling ``clearstamp(stamp_id)``." +msgstr "" +"Tamponne une copie de la forme de la tortue sur le canevas à la position " +"actuelle de la tortue. Renvoie un *stamp_id* pour ce tampon, qui peut être " +"utilisé pour le supprimer en appelant ``clearstamp(stamp_id)``." + +#: ../Doc/library/turtle.rst:529 +msgid "an integer, must be return value of previous :func:`stamp` call" +msgstr "" +"un entier, doit être la valeur renvoyée par l'appel précédent de :func:" +"`stamp`" + +#: ../Doc/library/turtle.rst:532 +msgid "Delete stamp with given *stampid*." +msgstr "Supprime le tampon dont le *stampid* est donné." + +#: ../Doc/library/turtle.rst:552 +msgid "" +"Delete all or first/last *n* of turtle's stamps. If *n* is ``None``, delete " +"all stamps, if *n* > 0 delete first *n* stamps, else if *n* < 0 delete last " +"*n* stamps." +msgstr "" +"Supprime tous, les *n* premiers ou les *n* derniers tampons de la tortue. Si " +"*n* est ``None``, supprime tous les tampons, si *n* > 0, supprime les *n* " +"premiers tampons et si n < 0, supprime les *n* derniers tampons." + +#: ../Doc/library/turtle.rst:575 +msgid "" +"Undo (repeatedly) the last turtle action(s). Number of available undo " +"actions is determined by the size of the undobuffer." +msgstr "" +"Annule la ou les dernières (si répété) actions de la tortue. Le nombre " +"d'annulations disponible est déterminé par la taille de la mémoire tampon " +"d'annulations." + +#: ../Doc/library/turtle.rst:589 +msgid "an integer in the range 0..10 or a speedstring (see below)" +msgstr "" +"un nombre entier compris dans l’intervalle entre 0 et 10 inclus, ou une " +"chaîne de vitesse (voir ci-dessous)" + +#: ../Doc/library/turtle.rst:591 +msgid "" +"Set the turtle's speed to an integer value in the range 0..10. If no " +"argument is given, return current speed." +msgstr "" +"Règle la vitesse de la tortue à une valeur entière comprise entre 0 et 10 " +"inclus. Si aucun argument n'est donné, renvoie la vitesse actuelle." + +#: ../Doc/library/turtle.rst:594 +msgid "" +"If input is a number greater than 10 or smaller than 0.5, speed is set to " +"0. Speedstrings are mapped to speedvalues as follows:" +msgstr "" +"Si l'entrée est un nombre supérieur à 10 ou inférieur à 0,5, la vitesse est " +"fixée à 0. Les chaînes de vitesse sont mises en correspondance avec les " +"valeurs de vitesse comme suit :" + +#: ../Doc/library/turtle.rst:597 +msgid "\"fastest\": 0" +msgstr "« le plus rapide » : 0" + +#: ../Doc/library/turtle.rst:598 +msgid "\"fast\": 10" +msgstr "« rapide » : 10" + +#: ../Doc/library/turtle.rst:599 +msgid "\"normal\": 6" +msgstr "« vitesse normale » : 6" + +#: ../Doc/library/turtle.rst:600 +msgid "\"slow\": 3" +msgstr "« lent » : 3" + +#: ../Doc/library/turtle.rst:601 +msgid "\"slowest\": 1" +msgstr "« le plus lent » : 1" + +#: ../Doc/library/turtle.rst:603 +msgid "" +"Speeds from 1 to 10 enforce increasingly faster animation of line drawing " +"and turtle turning." +msgstr "" +"Les vitesses de 1 à 10 permettent une animation de plus en plus rapide du " +"trait du dessin et de la rotation des tortues." + +#: ../Doc/library/turtle.rst:606 +msgid "" +"Attention: *speed* = 0 means that *no* animation takes place. forward/back " +"makes turtle jump and likewise left/right make the turtle turn instantly." +msgstr "" +"Attention : *speed* = 0 signifie qu'il n'y a *aucune* animation. *forward*/" +"*back* font sauter la tortue et, de même, *left*/*right* font tourner la " +"tortue instantanément." + +#: ../Doc/library/turtle.rst:628 +msgid "" +"Return the turtle's current location (x,y) (as a :class:`Vec2D` vector)." +msgstr "" +"Renvoie la position actuelle de la tortue (x,y) (en tant qu'un vecteur :" +"class:`Vec2d`)." + +#: ../Doc/library/turtle.rst:638 ../Doc/library/turtle.rst:697 +msgid "a number or a pair/vector of numbers or a turtle instance" +msgstr "" +"un nombre, ou une paire / un vecteur de nombres, ou une instance de tortue" + +#: ../Doc/library/turtle.rst:639 ../Doc/library/turtle.rst:698 +msgid "a number if *x* is a number, else ``None``" +msgstr "un nombre si `x` est un nombre, sinon ``None``" + +#: ../Doc/library/turtle.rst:641 +msgid "" +"Return the angle between the line from turtle position to position specified " +"by (x,y), the vector or the other turtle. This depends on the turtle's " +"start orientation which depends on the mode - \"standard\"/\"world\" or " +"\"logo\")." +msgstr "" + +#: ../Doc/library/turtle.rst:654 +msgid "Return the turtle's x coordinate." +msgstr "Renvoie la coordonnée x de la tortue." + +#: ../Doc/library/turtle.rst:669 +msgid "Return the turtle's y coordinate." +msgstr "Renvoie la coordonnée y de la tortue." + +#: ../Doc/library/turtle.rst:684 +msgid "" +"Return the turtle's current heading (value depends on the turtle mode, see :" +"func:`mode`)." +msgstr "" +"Renvoie le cap de la tortue (la valeur dépend du mode de la tortue, voir :" +"func:`mode`)." + +#: ../Doc/library/turtle.rst:700 +msgid "" +"Return the distance from the turtle to (x,y), the given vector, or the given " +"other turtle, in turtle step units." +msgstr "" +"Renvoie la distance entre la tortue et (x,y), le vecteur donné ou l'autre " +"tortue donnée. La valeur est exprimée en unités de pas de tortue." + +#: ../Doc/library/turtle.rst:717 +msgid "Settings for measurement" +msgstr "Paramètres de mesure" + +#: ../Doc/library/turtle.rst:723 +msgid "" +"Set angle measurement units, i.e. set number of \"degrees\" for a full " +"circle. Default value is 360 degrees." +msgstr "" +"Définit les unités de mesure des angles, c.-à-d. fixe le nombre de " +"« degrés » pour un cercle complet. La valeur par défaut est de 360 degrés." + +#: ../Doc/library/turtle.rst:745 +msgid "" +"Set the angle measurement units to radians. Equivalent to ``degrees(2*math." +"pi)``." +msgstr "" +"Règle l'unité de mesure des angles sur radians. Équivalent à " +"``degrees(2*math.pi)``." + +#: ../Doc/library/turtle.rst:774 +msgid "Pull the pen down -- drawing when moving." +msgstr "Baisse la pointe du stylo — dessine quand il se déplace." + +#: ../Doc/library/turtle.rst:781 +msgid "Pull the pen up -- no drawing when moving." +msgstr "Lève la pointe du stylo — pas de dessin quand il se déplace." + +#: ../Doc/library/turtle.rst:787 +msgid "a positive number" +msgstr "un nombre positif" + +#: ../Doc/library/turtle.rst:789 +msgid "" +"Set the line thickness to *width* or return it. If resizemode is set to " +"\"auto\" and turtleshape is a polygon, that polygon is drawn with the same " +"line thickness. If no argument is given, the current pensize is returned." +msgstr "" +"Règle l'épaisseur de la ligne à *width* ou la renvoie. Si *resizemode* est " +"défini à \"auto\" et que *turtleshape* (la forme de la tortue) est un " +"polygone, le polygone est dessiné avec cette épaisseur. Si aucun argument " +"n'est passé, la taille actuelle du stylo (*pensize*) est renvoyée." + +#: ../Doc/library/turtle.rst:802 +msgid "a dictionary with some or all of the below listed keys" +msgstr "un dictionnaire avec certaines ou toutes les clés énumérées ci-dessous" + +#: ../Doc/library/turtle.rst:803 +msgid "one or more keyword-arguments with the below listed keys as keywords" +msgstr "" +"un ou plusieurs arguments par mots-clés avec les clés suivantes comme mots-" +"clés" + +#: ../Doc/library/turtle.rst:805 +msgid "" +"Return or set the pen's attributes in a \"pen-dictionary\" with the " +"following key/value pairs:" +msgstr "" +"Renvoie ou définit les attributs du pinceau dans un `\"pen-dictionary\"` " +"avec les paires clés / valeurs suivantes :" + +#: ../Doc/library/turtle.rst:808 +msgid "\"shown\": True/False" +msgstr "`\"shown\"` : ``True`` / ``False``" + +#: ../Doc/library/turtle.rst:809 +msgid "\"pendown\": True/False" +msgstr "`\"pendown\"` : ``True`` / ``False``" + +#: ../Doc/library/turtle.rst:810 +msgid "\"pencolor\": color-string or color-tuple" +msgstr "" +"`\"pencolor\"` : chaîne de caractères ou n-uplet désignant la couleur du " +"pinceau" + +#: ../Doc/library/turtle.rst:811 +msgid "\"fillcolor\": color-string or color-tuple" +msgstr "" +"`\"fillcolor\"` : chaîne de caractères ou n-uplet pour la couleur de " +"remplissage" + +#: ../Doc/library/turtle.rst:812 +msgid "\"pensize\": positive number" +msgstr "`\"pensize\"` : nombre positif" + +#: ../Doc/library/turtle.rst:813 +msgid "\"speed\": number in range 0..10" +msgstr "`\"speed\"` : nombre compris dans intervalle 0 et 10" + +#: ../Doc/library/turtle.rst:814 +msgid "\"resizemode\": \"auto\" or \"user\" or \"noresize\"" +msgstr "`\"resizemode\"` : `\"auto\"`, `\"user\"` ou `\"noresize\"`" + +#: ../Doc/library/turtle.rst:815 +msgid "\"stretchfactor\": (positive number, positive number)" +msgstr "`\"stretchfactor\"` : (nombre positif, nombre positif)" + +#: ../Doc/library/turtle.rst:816 +msgid "\"outline\": positive number" +msgstr "`\"outline\"` : nombre positif" + +#: ../Doc/library/turtle.rst:817 +msgid "\"tilt\": number" +msgstr "`\"tilt\"` : nombre" + +#: ../Doc/library/turtle.rst:819 +msgid "" +"This dictionary can be used as argument for a subsequent call to :func:`pen` " +"to restore the former pen-state. Moreover one or more of these attributes " +"can be provided as keyword-arguments. This can be used to set several pen " +"attributes in one statement." +msgstr "" +"Ce dictionnaire peut être utilisé comme argument pour un appel ultérieur à :" +"func:`pen` pour restaurer l'ancien état du stylo. En outre, un ou plus de " +"ces attributs peuvent est passés en tant qu'arguments nommés. Cela peut être " +"utilisé pour définir plusieurs attributs du stylo en une instruction." + +#: ../Doc/library/turtle.rst:844 +msgid "Return ``True`` if pen is down, ``False`` if it's up." +msgstr "" +"Renvoie ``True`` si la pointe du stylo est en bas et ``False`` si elle est " +"en haut." + +#: ../Doc/library/turtle.rst:861 +msgid "Return or set the pencolor." +msgstr "Renvoie ou règle la couleur du pinceau" + +#: ../Doc/library/turtle.rst:863 ../Doc/library/turtle.rst:911 +msgid "Four input formats are allowed:" +msgstr "Quatre formats d'entrée sont autorisés :" + +#: ../Doc/library/turtle.rst:868 +msgid "``pencolor()``" +msgstr "``pencolor()``" + +#: ../Doc/library/turtle.rst:866 +msgid "" +"Return the current pencolor as color specification string or as a tuple (see " +"example). May be used as input to another color/pencolor/fillcolor call." +msgstr "" +"Renvoie la couleur du stylo actuelle en tant que chaine de spécification de " +"couleurs ou en tant qu'un *n*-uplet (voir l'exemple). Peut être utilisée " +"comme entrée à un autre appel de *color*/*pencolor*/*fillcolor*." + +#: ../Doc/library/turtle.rst:872 +msgid "``pencolor(colorstring)``" +msgstr "``pencolor(colorstring)``" + +#: ../Doc/library/turtle.rst:871 +msgid "" +"Set pencolor to *colorstring*, which is a Tk color specification string, " +"such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." +msgstr "" +"Définit la couleur du pinceau à `colorstring`, qui est une chaîne de " +"spécification de couleur *Tk*, telle que ``\"red\"``, ``\"yellow\"``, ou ``" +"\"#33cc8c\"``." + +#: ../Doc/library/turtle.rst:877 +msgid "``pencolor((r, g, b))``" +msgstr "``pencolor((r, g, b))``" + +#: ../Doc/library/turtle.rst:875 +msgid "" +"Set pencolor to the RGB color represented by the tuple of *r*, *g*, and " +"*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " +"colormode is either 1.0 or 255 (see :func:`colormode`)." +msgstr "" +"Définit la couleur du stylo à la couleur RGB représentée par le *n*-uplet de " +"*r*, *g* et *b*. Chacun des *r*, *g* et *b* doit être dans l'intervalle ``0.." +"colormode``, où *colormode* est vaut 1.0 ou 255 (voir :func:`colormode`)." + +#: ../Doc/library/turtle.rst:884 +msgid "``pencolor(r, g, b)``" +msgstr "``pencolor(r, g, b)``" + +#: ../Doc/library/turtle.rst:880 +msgid "" +"Set pencolor to the RGB color represented by *r*, *g*, and *b*. Each of " +"*r*, *g*, and *b* must be in the range 0..colormode." +msgstr "" +"Définit la couleur du stylo à la couleur RGB représentée par *r*, *g* et " +"*b*. Chacun des *r*, *g* et *b* doit être dans l'intervalle ``0..colormode``." + +#: ../Doc/library/turtle.rst:883 +msgid "" +"If turtleshape is a polygon, the outline of that polygon is drawn with the " +"newly set pencolor." +msgstr "" +"Si la forme de la tortue est un polygone, le contour de ce polygone est " +"dessiné avec la nouvelle couleur du pinceau." + +#: ../Doc/library/turtle.rst:909 +msgid "Return or set the fillcolor." +msgstr "Renvoie ou règle la couleur de remplissage" + +#: ../Doc/library/turtle.rst:916 +msgid "``fillcolor()``" +msgstr "``fillcolor()``" + +#: ../Doc/library/turtle.rst:914 +msgid "" +"Return the current fillcolor as color specification string, possibly in " +"tuple format (see example). May be used as input to another color/pencolor/" +"fillcolor call." +msgstr "" +"Renvoie la couleur de remplissage actuelle (*fillcolor*) en tant que chaine " +"de spécification, possiblement en format *n*-uplet (voir l'exemple). Peut " +"être utilisée en entrée pour un autre appel de *color*/*pencolor*/" +"*fillcolor*." + +#: ../Doc/library/turtle.rst:920 +msgid "``fillcolor(colorstring)``" +msgstr "``fillcolor(colorstring)``" + +#: ../Doc/library/turtle.rst:919 +msgid "" +"Set fillcolor to *colorstring*, which is a Tk color specification string, " +"such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." +msgstr "" +"Définit la couleur de remplissage (*fillcolor*) à *colorstring*, qui est une " +"chaine de spécification de couleur *Tk* comme par exemple ``\"red\"``, ``" +"\"yellow\"`` ou ``\"#33cc8c\"``." + +#: ../Doc/library/turtle.rst:925 +msgid "``fillcolor((r, g, b))``" +msgstr "``fillcolor((r, g, b))``" + +#: ../Doc/library/turtle.rst:923 +msgid "" +"Set fillcolor to the RGB color represented by the tuple of *r*, *g*, and " +"*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " +"colormode is either 1.0 or 255 (see :func:`colormode`)." +msgstr "" +"Définit la couleur du remplissage (*fillcolor*) à la couleur RGB représentée " +"par le *n*-uplet *r*, *g*, *b*. Chacun des *r*, *g* et *b* doit être dans " +"l'intervalle ``0..colormode`` où *colormode* vaut 1.0 ou 255 (voir :func:" +"`colormode`)." + +#: ../Doc/library/turtle.rst:932 +msgid "``fillcolor(r, g, b)``" +msgstr "``fillcolor(r, g, b)``" + +#: ../Doc/library/turtle.rst:928 +msgid "" +"Set fillcolor to the RGB color represented by *r*, *g*, and *b*. Each of " +"*r*, *g*, and *b* must be in the range 0..colormode." +msgstr "" +"Définit la couleur du remplissage(*fillcolor*) à la couleur RGB représentée " +"par *r*, *g* et *b*. Chacun des *r*, *g* et *b* doit être dans l'intervalle " +"``0..colormode``." + +#: ../Doc/library/turtle.rst:931 +msgid "" +"If turtleshape is a polygon, the interior of that polygon is drawn with the " +"newly set fillcolor." +msgstr "" +"Si la forme de la tortue est un polygone, l'intérieur de ce polygone sera " +"dessiné avec la nouvelle couleur de remplissage." + +#: ../Doc/library/turtle.rst:951 +msgid "Return or set pencolor and fillcolor." +msgstr "Renvoie ou règle la couleur du pinceau et la couleur de remplissage." + +#: ../Doc/library/turtle.rst:953 +msgid "" +"Several input formats are allowed. They use 0 to 3 arguments as follows:" +msgstr "" +"Plusieurs formats d'entrée sont autorisés. Ils peuvent avoir de zéro jusqu'à " +"trois arguments, employés comme suit :" + +#: ../Doc/library/turtle.rst:959 +msgid "``color()``" +msgstr "``color()``" + +#: ../Doc/library/turtle.rst:957 +msgid "" +"Return the current pencolor and the current fillcolor as a pair of color " +"specification strings or tuples as returned by :func:`pencolor` and :func:" +"`fillcolor`." +msgstr "" +"Renvoie la couleur du stylo actuelle et la couleur de remplissage actuelle " +"sous forme de paire, soit de chaines de spécification de couleur, soit de " +"*n*-uplets comme renvoyés par :func:`pencolor` et :func:`fillcolor`." + +#: ../Doc/library/turtle.rst:963 +msgid "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" +msgstr "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" + +#: ../Doc/library/turtle.rst:962 +msgid "" +"Inputs as in :func:`pencolor`, set both, fillcolor and pencolor, to the " +"given value." +msgstr "" +"Les formats d'entrée sont comme dans :func:`pencolor`. Définit à la fois la " +"couleur de remplissage et la couleur du stylo à la valeur passée." + +#: ../Doc/library/turtle.rst:970 +msgid "" +"``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" +msgstr "" +"``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" + +#: ../Doc/library/turtle.rst:966 +msgid "" +"Equivalent to ``pencolor(colorstring1)`` and ``fillcolor(colorstring2)`` and " +"analogously if the other input format is used." +msgstr "" +"Équivalent à ``pencolor(colorstring1)`` et ``fillcolor(colorstring2)`` et de " +"manière analogue si un autre format d'entrée est utilisé." + +#: ../Doc/library/turtle.rst:969 +msgid "" +"If turtleshape is a polygon, outline and interior of that polygon is drawn " +"with the newly set colors." +msgstr "" +"Si la forme de la tortue est un polygone, le contour et l'intérieur de ce " +"polygone sont dessinés avec les nouvelles couleurs." + +#: ../Doc/library/turtle.rst:982 +msgid "See also: Screen method :func:`colormode`." +msgstr "Voir aussi : la méthode :func:`colormode` de *Screen*." + +#: ../Doc/library/turtle.rst:995 +msgid "Return fillstate (``True`` if filling, ``False`` else)." +msgstr "" +"Renvoie l'état de remplissage (``True`` signifie en train de faire un " +"remplissage, ``False`` sinon)." + +#: ../Doc/library/turtle.rst:1009 +msgid "To be called just before drawing a shape to be filled." +msgstr "À appeler juste avant de dessiner une forme à remplir." + +#: ../Doc/library/turtle.rst:1014 +msgid "Fill the shape drawn after the last call to :func:`begin_fill`." +msgstr "Remplit la forme dessinée après le dernier appel à :func:`begin_fill`." + +#: ../Doc/library/turtle.rst:1029 +msgid "" +"Delete the turtle's drawings from the screen, re-center the turtle and set " +"variables to the default values." +msgstr "" +"Supprime les dessins de la tortue de l'écran, recentre la tortue et assigne " +"les variables aux valeurs par défaut." + +#: ../Doc/library/turtle.rst:1049 +msgid "" +"Delete the turtle's drawings from the screen. Do not move turtle. State " +"and position of the turtle as well as drawings of other turtles are not " +"affected." +msgstr "" +"Supprime les dessins de la tortue de l'écran. Ne déplace pas la tortue. " +"L'état et la position de la tortue ainsi que les dessins des autres tortues " +"ne sont pas affectés." + +#: ../Doc/library/turtle.rst:1055 +msgid "object to be written to the TurtleScreen" +msgstr "objet à écrire sur le *TurtleScreen*" + +#: ../Doc/library/turtle.rst:1056 +msgid "True/False" +msgstr "``True`` / ``False``" + +#: ../Doc/library/turtle.rst:1057 +msgid "one of the strings \"left\", \"center\" or right\"" +msgstr "" +"l'une des chaînes de caractères suivantes : `\"left\"`, `\"center\"` ou `" +"\"right\"`" + +#: ../Doc/library/turtle.rst:1058 +msgid "a triple (fontname, fontsize, fonttype)" +msgstr "triplet (nom de police, taille de police, type de police)" + +#: ../Doc/library/turtle.rst:1060 +msgid "" +"Write text - the string representation of *arg* - at the current turtle " +"position according to *align* (\"left\", \"center\" or right\") and with the " +"given font. If *move* is true, the pen is moved to the bottom-right corner " +"of the text. By default, *move* is ``False``." +msgstr "" + +#: ../Doc/library/turtle.rst:1078 +msgid "" +"Make the turtle invisible. It's a good idea to do this while you're in the " +"middle of doing some complex drawing, because hiding the turtle speeds up " +"the drawing observably." +msgstr "" +"Rend la tortue invisible. C'est recommandé lorsque vous êtes en train de " +"faire un dessin complexe, vous observerez alors une accélération notable." + +#: ../Doc/library/turtle.rst:1090 +msgid "Make the turtle visible." +msgstr "Rend la tortue visible." + +#: ../Doc/library/turtle.rst:1099 +msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." +msgstr "" +"Renvoie ``True`` si la tortue est visible, et ``False`` si elle est cachée." + +#: ../Doc/library/turtle.rst:1114 +msgid "a string which is a valid shapename" +msgstr "une chaîne de caractères qui correspond à un nom de forme valide" + +#: ../Doc/library/turtle.rst:1116 +msgid "" +"Set turtle shape to shape with given *name* or, if name is not given, return " +"name of current shape. Shape with *name* must exist in the TurtleScreen's " +"shape dictionary. Initially there are the following polygon shapes: \"arrow" +"\", \"turtle\", \"circle\", \"square\", \"triangle\", \"classic\". To learn " +"about how to deal with shapes see Screen method :func:`register_shape`." +msgstr "" +"La tortue prend la forme *name* donnée, ou, si *name* n'est pas donné, " +"renvoie le nom de la forme actuelle. Le nom *name* donné doit exister dans " +"le dictionnaire de formes de *TurtleScreen*. Initialement, il y a les " +"polygones suivants : \"*arrow*\", \"*turtle*\", \"*circle*\", \"*square*\", " +"\"*triangle*\", \"*classic*\". Pour en apprendre plus sur comment gérer les " +"formes, voir la méthode de *Screen* :func:`register_shape`." + +#: ../Doc/library/turtle.rst:1133 +msgid "one of the strings \"auto\", \"user\", \"noresize\"" +msgstr "l'une des chaînes suivantes : `\"auto\"`, `\"user\"`, `\"noresize\"`" + +#: ../Doc/library/turtle.rst:1135 +msgid "" +"Set resizemode to one of the values: \"auto\", \"user\", \"noresize\". If " +"*rmode* is not given, return current resizemode. Different resizemodes have " +"the following effects:" +msgstr "" +"Définit *resizemode* à l'une des valeurs suivantes : \"*auto*\", \"*user*\", " +"\"*noresize*\". Si \"*rmode*\" n'est pas donné, renvoie le *resizemode* " +"actuel. Les différents *resizemode* ont les effets suivants :" + +#: ../Doc/library/turtle.rst:1139 +msgid "" +"\"auto\": adapts the appearance of the turtle corresponding to the value of " +"pensize." +msgstr "" +"*\"auto\"* : adapte l'apparence de la tortue en fonction de la largeur du " +"pinceau (*value of pensize* en anglais)." + +#: ../Doc/library/turtle.rst:1140 +msgid "" +"\"user\": adapts the appearance of the turtle according to the values of " +"stretchfactor and outlinewidth (outline), which are set by :func:`shapesize`." +msgstr "" +"*\"user\"* : adapte l'apparence de la tortue en fonction des valeurs du " +"paramètre d'étirement et de la largeur des contours, déterminés par :func:" +"`shapesize`." + +#: ../Doc/library/turtle.rst:1143 +msgid "\"noresize\": no adaption of the turtle's appearance takes place." +msgstr "" +"*\"noresize\"* : il n'y a pas de modification de l'apparence de la tortue." + +#: ../Doc/library/turtle.rst:1145 +msgid "" +"resizemode(\"user\") is called by :func:`shapesize` when used with arguments." +msgstr "" + +#: ../Doc/library/turtle.rst:1159 ../Doc/library/turtle.rst:1160 +#: ../Doc/library/turtle.rst:1161 +msgid "positive number" +msgstr "nombre positif" + +#: ../Doc/library/turtle.rst:1163 +msgid "" +"Return or set the pen's attributes x/y-stretchfactors and/or outline. Set " +"resizemode to \"user\". If and only if resizemode is set to \"user\", the " +"turtle will be displayed stretched according to its stretchfactors: " +"*stretch_wid* is stretchfactor perpendicular to its orientation, " +"*stretch_len* is stretchfactor in direction of its orientation, *outline* " +"determines the width of the shapes's outline." +msgstr "" +"Renvoie ou définit les attributs x/y-stretchfactors* et/ou contour du stylo. " +"Définit *resizemode* à \"user\". Si et seulement si *resizemode* est à \"user" +"\", la tortue sera affichée étirée en fonction de ses facteurs d'étirements " +"(*stretchfactors*) : *stretch_wid* est le facteur d'étirement " +"perpendiculaire à son orientation, *stretch_len* est le facteur d'étirement " +"en direction de son orientation, *outlline* détermine la largeur de la " +"bordure de la forme." + +#: ../Doc/library/turtle.rst:1185 ../Doc/library/turtle.rst:1810 +#: ../Doc/library/turtle.rst:1811 ../Doc/library/turtle.rst:1812 +msgid "number (optional)" +msgstr "un nombre (facultatif)" + +#: ../Doc/library/turtle.rst:1187 +msgid "" +"Set or return the current shearfactor. Shear the turtleshape according to " +"the given shearfactor shear, which is the tangent of the shear angle. Do " +"*not* change the turtle's heading (direction of movement). If shear is not " +"given: return the current shearfactor, i. e. the tangent of the shear angle, " +"by which lines parallel to the heading of the turtle are sheared." +msgstr "" +"Définit ou renvoie le paramétrage de cisaillement actuel. Déforme la tortue " +"en fonction du paramètre *shear* donné, qui est la tangente de l'angle de " +"cisaillement. Ne change pas le sens de déplacement de la tortue. Si le " +"paramètre *shear* n'est pas indiqué, renvoie la valeur actuelle du " +"cisaillement, c.-à-d. la valeur de la tangente de l'angle de cisaillement, " +"celui par rapport auquel les lignes parallèles à la direction de la tortue " +"sont cisaillées." + +#: ../Doc/library/turtle.rst:1207 +msgid "" +"Rotate the turtleshape by *angle* from its current tilt-angle, but do *not* " +"change the turtle's heading (direction of movement)." +msgstr "" +"Tourne la forme de la tortue de *angle* depuis son angle d'inclinaison " +"actuel, mais *ne change pas* le cap de la tortue (direction du mouvement)." + +#: ../Doc/library/turtle.rst:1225 +msgid "" +"Rotate the turtleshape to point in the direction specified by *angle*, " +"regardless of its current tilt-angle. *Do not* change the turtle's heading " +"(direction of movement)." +msgstr "" +"Tourne la forme de la tortue pour pointer dans la direction spécifiée par " +"*angle*, indépendamment de son angle d'inclinaison actuel. *Ne change pas* " +"le cap de la tortue (direction du mouvement)." + +#: ../Doc/library/turtle.rst:1244 ../Doc/library/turtle.rst:1266 +#: ../Doc/library/turtle.rst:1267 ../Doc/library/turtle.rst:1268 +#: ../Doc/library/turtle.rst:1269 +msgid "a number (optional)" +msgstr "un nombre (facultatif)" + +#: ../Doc/library/turtle.rst:1246 +msgid "" +"Set or return the current tilt-angle. If angle is given, rotate the " +"turtleshape to point in the direction specified by angle, regardless of its " +"current tilt-angle. Do *not* change the turtle's heading (direction of " +"movement). If angle is not given: return the current tilt-angle, i. e. the " +"angle between the orientation of the turtleshape and the heading of the " +"turtle (its direction of movement)." +msgstr "" +"Définit ou renvoie l'angle d'inclinaison actuel. Si l'angle est donné, la " +"forme de la tortue est tournée pour pointer dans direction spécifiée par " +"l'angle, indépendamment de son angle d'inclinaison actuel. *Ne change pas* " +"le cap de la tortue (direction du mouvement). Si l'angle n'est pas donné, " +"renvoie l'angle d'inclinaison actuel (L'angle entre l'orientation de la " +"forme de la tortue et le cap de la tortue (sa direction de mouvement))." + +#: ../Doc/library/turtle.rst:1271 +msgid "Set or return the current transformation matrix of the turtle shape." +msgstr "" +"Définit ou renvoie la matrice de transformation actuelle de la forme de la " +"tortue." + +#: ../Doc/library/turtle.rst:1273 +msgid "" +"If none of the matrix elements are given, return the transformation matrix " +"as a tuple of 4 elements. Otherwise set the given elements and transform the " +"turtleshape according to the matrix consisting of first row t11, t12 and " +"second row t21, 22. The determinant t11 * t22 - t12 * t21 must not be zero, " +"otherwise an error is raised. Modify stretchfactor, shearfactor and " +"tiltangle according to the given matrix." +msgstr "" + +#: ../Doc/library/turtle.rst:1294 +msgid "" +"Return the current shape polygon as tuple of coordinate pairs. This can be " +"used to define a new shape or components of a compound shape." +msgstr "" +"Renvoie la forme actuelle du polygone en *n*-uplet de paires de coordonnées. " +"Vous pouvez l'utiliser afin de définir une nouvelle forme ou en tant que " +"composant pour une forme plus complexe." + +#: ../Doc/library/turtle.rst:1310 ../Doc/library/turtle.rst:1331 +#: ../Doc/library/turtle.rst:1355 ../Doc/library/turtle.rst:1736 +msgid "" +"a function with two arguments which will be called with the coordinates of " +"the clicked point on the canvas" +msgstr "" +"une fonction à deux arguments qui sera appelée avec les coordonnées du point " +"cliqué sur le canevas" + +#: ../Doc/library/turtle.rst:1312 ../Doc/library/turtle.rst:1333 +#: ../Doc/library/turtle.rst:1357 ../Doc/library/turtle.rst:1738 +msgid "number of the mouse-button, defaults to 1 (left mouse button)" +msgstr "numéro du bouton de la souris, par défaut 1 (bouton de gauche)" + +#: ../Doc/library/turtle.rst:1313 ../Doc/library/turtle.rst:1334 +#: ../Doc/library/turtle.rst:1358 ../Doc/library/turtle.rst:1739 +msgid "" +"``True`` or ``False`` -- if ``True``, a new binding will be added, otherwise " +"it will replace a former binding" +msgstr "" +"``True`` ou ``False`` — si``True``, un nouveau lien est ajouté, sinon il " +"remplace un ancien lien" + +#: ../Doc/library/turtle.rst:1316 +msgid "" +"Bind *fun* to mouse-click events on this turtle. If *fun* is ``None``, " +"existing bindings are removed. Example for the anonymous turtle, i.e. the " +"procedural way:" +msgstr "" +"Crée un lien vers *fun* pour les événements de clics de la souris sur cette " +"tortue. Si *fun* est ``None``, les liens existants sont supprimés. Exemple " +"pour la tortue anonyme, c'est-à-dire la manière procédurale :" + +#: ../Doc/library/turtle.rst:1337 +msgid "" +"Bind *fun* to mouse-button-release events on this turtle. If *fun* is " +"``None``, existing bindings are removed." +msgstr "" +"Crée un lien vers *fun* pour les événements de relâchement d'un clic de la " +"souris sur cette tortue. Si *fun* est ``None``, les liens existants sont " +"supprimés." + +#: ../Doc/library/turtle.rst:1361 +msgid "" +"Bind *fun* to mouse-move events on this turtle. If *fun* is ``None``, " +"existing bindings are removed." +msgstr "" +"Crée un lien vers *fun* pour les événements de mouvement de la souris sur " +"cette tortue. Si *fun* est ``None``, les liens existants sont supprimés." + +#: ../Doc/library/turtle.rst:1364 +msgid "" +"Remark: Every sequence of mouse-move-events on a turtle is preceded by a " +"mouse-click event on that turtle." +msgstr "" +"Remarque : toutes les séquences d'événements de mouvement de la souris sur " +"une tortue sont précédées par un événement de clic de la souris sur cette " +"tortue." + +#: ../Doc/library/turtle.rst:1371 +msgid "" +"Subsequently, clicking and dragging the Turtle will move it across the " +"screen thereby producing handdrawings (if pen is down)." +msgstr "" +"Par la suite, un cliquer-glisser sur la tortue la fait se déplacer au " +"travers de l'écran, produisant ainsi des dessins « à la main » (si le stylo " +"est posé)." + +#: ../Doc/library/turtle.rst:1380 +msgid "" +"Start recording the vertices of a polygon. Current turtle position is first " +"vertex of polygon." +msgstr "" +"Démarre l'enregistrement des sommets d'un polygone. La position actuelle de " +"la tortue est le premier sommet du polygone." + +#: ../Doc/library/turtle.rst:1386 +msgid "" +"Stop recording the vertices of a polygon. Current turtle position is last " +"vertex of polygon. This will be connected with the first vertex." +msgstr "" +"Arrête l'enregistrement des sommets d'un polygone. La position actuelle de " +"la tortue sera le dernier sommet du polygone. Il sera connecté au premier " +"sommet." + +#: ../Doc/library/turtle.rst:1392 +msgid "Return the last recorded polygon." +msgstr "Renvoie le dernier polygone sauvegardé." + +#: ../Doc/library/turtle.rst:1410 +msgid "" +"Create and return a clone of the turtle with same position, heading and " +"turtle properties." +msgstr "" +"Crée et renvoie un clone de la tortue avec les mêmes position, cap et " +"propriétés." + +#: ../Doc/library/turtle.rst:1422 +msgid "" +"Return the Turtle object itself. Only reasonable use: as a function to " +"return the \"anonymous turtle\":" +msgstr "" +"Renvoie l'objet *Turtle* lui-même. Sa seule utilisation : comme fonction " +"pour renvoyer la \"tortue anonyme\" :" + +#: ../Doc/library/turtle.rst:1435 +msgid "" +"Return the :class:`TurtleScreen` object the turtle is drawing on. " +"TurtleScreen methods can then be called for that object." +msgstr "" +"Renvoie l'objet :class:`TurtleScreen` sur lequel la tortue dessine. Les " +"méthodes de TurtleScreen peuvent être appelées pour cet objet." + +#: ../Doc/library/turtle.rst:1448 +msgid "an integer or ``None``" +msgstr "un entier ou ``None``" + +#: ../Doc/library/turtle.rst:1450 +msgid "" +"Set or disable undobuffer. If *size* is an integer an empty undobuffer of " +"given size is installed. *size* gives the maximum number of turtle actions " +"that can be undone by the :func:`undo` method/function. If *size* is " +"``None``, the undobuffer is disabled." +msgstr "" + +#: ../Doc/library/turtle.rst:1462 +msgid "Return number of entries in the undobuffer." +msgstr "Renvoie le nombre d'entrées dans la mémoire d'annulation." + +#: ../Doc/library/turtle.rst:1474 +msgid "Compound shapes" +msgstr "Formes composées" + +#: ../Doc/library/turtle.rst:1476 +msgid "" +"To use compound turtle shapes, which consist of several polygons of " +"different color, you must use the helper class :class:`Shape` explicitly as " +"described below:" +msgstr "" +"Pour utiliser des formes de tortues combinées, qui sont composées de " +"polygones de différentes couleurs, vous devez utiliser la classe utilitaire :" +"class:`Shape` explicitement comme décrit ci-dessous :" + +#: ../Doc/library/turtle.rst:1480 +msgid "Create an empty Shape object of type \"compound\"." +msgstr "Créez un objet Shape vide de type \"compound\"." + +#: ../Doc/library/turtle.rst:1481 +msgid "" +"Add as many components to this object as desired, using the :meth:" +"`addcomponent` method." +msgstr "" +"Ajoutez autant de composants que désirés à cet objet, en utilisant la " +"méthode :meth:`addcomponent`." + +#: ../Doc/library/turtle.rst:1484 +msgid "For example:" +msgstr "Par exemple :" + +#: ../Doc/library/turtle.rst:1494 +msgid "Now add the Shape to the Screen's shapelist and use it:" +msgstr "" +"Maintenant ajoutez la *Shape* à la liste des formes de *Screen* et utilisez " +"la :" + +#: ../Doc/library/turtle.rst:1504 +msgid "" +"The :class:`Shape` class is used internally by the :func:`register_shape` " +"method in different ways. The application programmer has to deal with the " +"Shape class *only* when using compound shapes like shown above!" +msgstr "" +"La classe :class:`Shape` est utilisée en interne par la méthode :func:" +"`register_shape` de différentes façons. Le développeur n'interagit avec la " +"classe Shape *que* lorsqu'il utilise des formes composées comme montré ci-" +"dessus !" + +#: ../Doc/library/turtle.rst:1510 +msgid "Methods of TurtleScreen/Screen and corresponding functions" +msgstr "Méthodes de TurtleScreen/Screen et leurs fonctions correspondantes" + +#: ../Doc/library/turtle.rst:1512 +msgid "" +"Most of the examples in this section refer to a TurtleScreen instance called " +"``screen``." +msgstr "" +"La plupart des exemples dans cette section font référence à une instance de " +"TurtleScreen appelée ``screen``." + +#: ../Doc/library/turtle.rst:1525 +msgid "" +"a color string or three numbers in the range 0..colormode or a 3-tuple of " +"such numbers" +msgstr "" +"chaîne spécifiant une couleur ou trois nombres dans l'intervalle *0.." +"colormode* ou *n*-uplet de ces trois nombres" + +#: ../Doc/library/turtle.rst:1529 +msgid "Set or return background color of the TurtleScreen." +msgstr "" +"Définit ou renvoie la couleur de fond de l'écran de la tortue " +"(*TurtleScreen* en anglais)." + +#: ../Doc/library/turtle.rst:1543 +msgid "a string, name of a gif-file or ``\"nopic\"``, or ``None``" +msgstr "" +"une chaîne de caractères, le nom d'un fichier *gif*, ou ``\"nopic\"``, ou " +"``None``" + +#: ../Doc/library/turtle.rst:1545 +msgid "" +"Set background image or return name of current backgroundimage. If " +"*picname* is a filename, set the corresponding image as background. If " +"*picname* is ``\"nopic\"``, delete background image, if present. If " +"*picname* is ``None``, return the filename of the current backgroundimage. ::" +msgstr "" +"Défini l'image de fond ou renvoie l'image de fond actuelle. Si *picname* est " +"un nom de fichier, cette image et mis en image de fond. Si *picname* est ``" +"\"nopic\"``, l'image de fond sera supprimée si présente. SI *picname* est " +"``None``, le nom du fichier de l'image de fond actuelle est renvoyé. ::" + +#: ../Doc/library/turtle.rst:1560 +msgid "" +"Delete all drawings and all turtles from the TurtleScreen. Reset the now " +"empty TurtleScreen to its initial state: white background, no background " +"image, no event bindings and tracing on." +msgstr "" +"Supprime tous les dessins et toutes les tortues du TurtleScreen. " +"Réinitialise le TurtleScreen maintenant vide à son état initial : fond " +"blanc, pas d'image de fond, pas d'événement liés, et traçage activé." + +#: ../Doc/library/turtle.rst:1565 +msgid "" +"This TurtleScreen method is available as a global function only under the " +"name ``clearscreen``. The global function ``clear`` is a different one " +"derived from the Turtle method ``clear``." +msgstr "" +"Cette méthode TurtleScreen est disponible en tant que fonction globale " +"seulement sous le nom ``clearscreen``. La fonction globale ``clear`` est une " +"fonction différente dérivée de la méthode Turtle ``clear``." + +#: ../Doc/library/turtle.rst:1573 +msgid "Reset all Turtles on the Screen to their initial state." +msgstr "Remet toutes les tortues à l'écran dans leur état initial." + +#: ../Doc/library/turtle.rst:1576 +msgid "" +"This TurtleScreen method is available as a global function only under the " +"name ``resetscreen``. The global function ``reset`` is another one derived " +"from the Turtle method ``reset``." +msgstr "" +"Cette méthode TurtleScreen est disponible en tant que fonction globale " +"seulement sous le nom ``resetscreen``. La fonction globale ``reset`` est une " +"fonction différente dérivée de la méthode Turtle ``reset``." + +#: ../Doc/library/turtle.rst:1583 +msgid "positive integer, new width of canvas in pixels" +msgstr "" +"nombre entier positif, nouvelle largeur du canevas (zone sur laquelle se " +"déplace la tortue), en pixels" + +#: ../Doc/library/turtle.rst:1584 +msgid "positive integer, new height of canvas in pixels" +msgstr "nombre entier positif, nouvelle hauteur du canevas, en pixels" + +#: ../Doc/library/turtle.rst:1585 +msgid "colorstring or color-tuple, new background color" +msgstr "" +"chaîne de caractères indiquant la couleur ou n-uplet de couleurs, nouvelle " +"couleur de fond" + +#: ../Doc/library/turtle.rst:1587 +msgid "" +"If no arguments are given, return current (canvaswidth, canvasheight). Else " +"resize the canvas the turtles are drawing on. Do not alter the drawing " +"window. To observe hidden parts of the canvas, use the scrollbars. With " +"this method, one can make visible those parts of a drawing which were " +"outside the canvas before." +msgstr "" +"Si aucun arguments ne sont passés, renvoie l'actuel *(canvaswidth, " +"canvasheight)*. Sinon, redimensionne le canevas sur lequel les tortues " +"dessinent. Ne modifiez pas la fenêtre de dessin. Pour observer les parties " +"cachées du canevas, utilisez les barres de défilement. Avec cette méthode, " +"on peut rendre visible les parties d'un dessin qui étaient en dehors du " +"canevas précédemment." + +#: ../Doc/library/turtle.rst:1599 +msgid "e.g. to search for an erroneously escaped turtle ;-)" +msgstr "par exemple, chercher une tortue échappée de manière erronée" + +#: ../Doc/library/turtle.rst:1604 +msgid "a number, x-coordinate of lower left corner of canvas" +msgstr "un nombre, coordonnée x du coin inférieur gauche du canevas" + +#: ../Doc/library/turtle.rst:1605 +msgid "a number, y-coordinate of lower left corner of canvas" +msgstr "un nombre, la coordonnée y du coin inférieur gauche du canevas" + +#: ../Doc/library/turtle.rst:1606 +msgid "a number, x-coordinate of upper right corner of canvas" +msgstr "un nombre, la coordonnée x du coin supérieur droit du canevas" + +#: ../Doc/library/turtle.rst:1607 +msgid "a number, y-coordinate of upper right corner of canvas" +msgstr "un nombre, la coordonnée y du coin supérieur droit du canevas" + +#: ../Doc/library/turtle.rst:1609 +msgid "" +"Set up user-defined coordinate system and switch to mode \"world\" if " +"necessary. This performs a ``screen.reset()``. If mode \"world\" is " +"already active, all drawings are redrawn according to the new coordinates." +msgstr "" +"Configure un système de coordonnées défini par l'utilisateur et bascule vers " +"le mode \"world\" si nécessaire. Cela effectuera un ``screen.reset()``. Si " +"le mode \"world\" est déjà actif, tous les dessins sont re-déssinés par " +"rapport aux nouveaux coordonnées." + +#: ../Doc/library/turtle.rst:1613 +msgid "" +"**ATTENTION**: in user-defined coordinate systems angles may appear " +"distorted." +msgstr "" +"**ATTENTION** : dans les systèmes de coordonnées définis par l'utilisateur, " +"les angles peuvent apparaître déformés." + +#: ../Doc/library/turtle.rst:1639 +msgid "positive integer" +msgstr "entier positif" + +#: ../Doc/library/turtle.rst:1641 +msgid "" +"Set or return the drawing *delay* in milliseconds. (This is approximately " +"the time interval between two consecutive canvas updates.) The longer the " +"drawing delay, the slower the animation." +msgstr "" +"Défini ou renvoie le délai (*delay*) de dessin en millisecondes. (Cet " +"approximativement le temps passé entre deux mises à jour du canevas.) Plus " +"le délai est long, plus l'animation sera lente." + +#: ../Doc/library/turtle.rst:1645 +msgid "Optional argument:" +msgstr "Argument facultatif :" + +#: ../Doc/library/turtle.rst:1658 ../Doc/library/turtle.rst:1659 +msgid "nonnegative integer" +msgstr "entier non-négatif" + +#: ../Doc/library/turtle.rst:1661 +msgid "" +"Turn turtle animation on/off and set delay for update drawings. If *n* is " +"given, only each n-th regular screen update is really performed. (Can be " +"used to accelerate the drawing of complex graphics.) When called without " +"arguments, returns the currently stored value of n. Second argument sets " +"delay value (see :func:`delay`)." +msgstr "" +"Active/désactive les animations des tortues et défini le délai pour mettre à " +"jour les dessins.Si *n* est passé, seulement les n-ièmes mises à jours " +"régulières de l'écran seront vraiment effectuées. (Peut être utilisé pour " +"accélérer le dessin de graphiques complexes.) Lorsqu'appelé sans arguments, " +"renvoie la valeur actuelle de *n*. Le deuxième argument défini la valeur du " +"délai (voir :func:`delay`)." + +#: ../Doc/library/turtle.rst:1680 +msgid "Perform a TurtleScreen update. To be used when tracer is turned off." +msgstr "" +"Effectue une mise à jour de *TurtleScreen*. À utiliser lorsque le traceur " +"est désactivé." + +#: ../Doc/library/turtle.rst:1682 +msgid "See also the RawTurtle/Turtle method :func:`speed`." +msgstr "Voir aussi la méthode :func:`speed` de *RawTurtle*/*Turtle*." + +#: ../Doc/library/turtle.rst:1690 +msgid "" +"Set focus on TurtleScreen (in order to collect key-events). Dummy arguments " +"are provided in order to be able to pass :func:`listen` to the onclick " +"method." +msgstr "" +"Donne le focus à *TurtleScreen* (afin de collecter les événements clés). Des " +"arguments factices sont fournis afin de pouvoir passer :func:`listen` à la " +"méthode *onclick*." + +#: ../Doc/library/turtle.rst:1697 ../Doc/library/turtle.rst:1716 +msgid "a function with no arguments or ``None``" +msgstr "une fonction sans arguments ou ``None``" + +#: ../Doc/library/turtle.rst:1698 ../Doc/library/turtle.rst:1717 +msgid "a string: key (e.g. \"a\") or key-symbol (e.g. \"space\")" +msgstr "" +"une chaîne : clé (par exemple \"*a*\") ou clé symbole (Par exemple \"*space*" +"\")" + +#: ../Doc/library/turtle.rst:1700 +msgid "" +"Bind *fun* to key-release event of key. If *fun* is ``None``, event " +"bindings are removed. Remark: in order to be able to register key-events, " +"TurtleScreen must have the focus. (See method :func:`listen`.)" +msgstr "" +"Lie *fun* à l'événement d'un relâchement d'une touche. Si *fun* est " +"``None``, les événements liés sont supprimés. Remarque : Pour pouvoir " +"enregistrer les événements lié au touches, TurtleScreen doit avoir le " +"*focus* (fenêtre en premier plan). (Voir la méthode :func:`listen`.)" + +#: ../Doc/library/turtle.rst:1719 +msgid "" +"Bind *fun* to key-press event of key if key is given, or to any key-press-" +"event if no key is given. Remark: in order to be able to register key-" +"events, TurtleScreen must have focus. (See method :func:`listen`.)" +msgstr "" +"Lie *fun* à l'événement d'un pressement de touche si *key* (touche) est " +"donné, ou n'importe quelle touche si aucune touche n'est passée. Remarque : " +"Pour pouvoir enregistrer des événements liés au touches, TurtleScreen doit " +"être en premier plan. (voir la méthode :func:`listen`.)" + +#: ../Doc/library/turtle.rst:1742 +msgid "" +"Bind *fun* to mouse-click events on this screen. If *fun* is ``None``, " +"existing bindings are removed." +msgstr "" +"Crée un lien vers *fun* pour les événements de clique de la souris sur cet " +"écran. Si *fun* est ``None``, les liens existants sont supprimés." + +#: ../Doc/library/turtle.rst:1745 +msgid "" +"Example for a TurtleScreen instance named ``screen`` and a Turtle instance " +"named turtle:" +msgstr "" + +#: ../Doc/library/turtle.rst:1755 +msgid "" +"This TurtleScreen method is available as a global function only under the " +"name ``onscreenclick``. The global function ``onclick`` is another one " +"derived from the Turtle method ``onclick``." +msgstr "" +"Cette méthode de TurtleScreen est disponible en tant que fonction globale " +"seulement sous le nom de ``onscreenclick``. La fonction globale ``onclick`` " +"est une autre fonction dérivée de la méthode Turtle ``onclick``." + +#: ../Doc/library/turtle.rst:1762 +msgid "a function with no arguments" +msgstr "une fonction sans arguments" + +#: ../Doc/library/turtle.rst:1763 +msgid "a number >= 0" +msgstr "un nombre supérieur ou égal à 0" + +#: ../Doc/library/turtle.rst:1765 +msgid "Install a timer that calls *fun* after *t* milliseconds." +msgstr "Installe un minuteur qui appelle *fun* après *t* millisecondes." + +#: ../Doc/library/turtle.rst:1782 +msgid "" +"Starts event loop - calling Tkinter's mainloop function. Must be the last " +"statement in a turtle graphics program. Must *not* be used if a script is " +"run from within IDLE in -n mode (No subprocess) - for interactive use of " +"turtle graphics. ::" +msgstr "" +"Démarre la boucle d'événements - appelle la boucle principale de Tkinter. " +"Doit être la dernière opération dan un programme graphique *turtle*. **Ne " +"dois pas** être utilisé si un script est lancé depuis IDLE avec le mode `-n` " +"(pas de sous processus) - pour une utilisation interactive des graphiques " +"*turtle* ::" + +#: ../Doc/library/turtle.rst:1795 ../Doc/library/turtle.rst:1796 +#: ../Doc/library/turtle.rst:1808 ../Doc/library/turtle.rst:1809 +msgid "string" +msgstr "*string*" + +#: ../Doc/library/turtle.rst:1798 +msgid "" +"Pop up a dialog window for input of a string. Parameter title is the title " +"of the dialog window, prompt is a text mostly describing what information to " +"input. Return the string input. If the dialog is canceled, return " +"``None``. ::" +msgstr "" +"Fait apparaitre une fenêtre pour entrer une chaine de caractères. Le " +"paramètre *title* est le titre de la fenêtre, *prompt* est le texte " +"expliquant quelle information écrire. Renvoie l'entrée utilisateur sous " +"forme de chaîne. Si le dialogue est annulé, renvoie ``None``. ::" + +#: ../Doc/library/turtle.rst:1814 +msgid "" +"Pop up a dialog window for input of a number. title is the title of the " +"dialog window, prompt is a text mostly describing what numerical information " +"to input. default: default value, minval: minimum value for input, maxval: " +"maximum value for input The number input must be in the range minval .. " +"maxval if these are given. If not, a hint is issued and the dialog remains " +"open for correction. Return the number input. If the dialog is canceled, " +"return ``None``. ::" +msgstr "" +"Fait apparaitre une fenêtre pour entrer un nombre. Le paramètre *title* est " +"le titre de la fenêtre, *prompt* est le texte expliquant quelle information " +"numérique écrire. *default* : Valeur par défaut, *minval* : valeur minimale " +"d'entrée, *maxval* : Valeur maximale d'entrée. Le nombre entré doit être " +"dans la gamme *minval..maxval* si ces valeurs sont données. Sinon, un indice " +"apparait et le dialogue reste ouvert pour corriger le nombre. Renvoie " +"l'entrée utilisateur sous forme de nombre. Si le dialogue est annulé, " +"renvoie ``None``. ::" + +#: ../Doc/library/turtle.rst:1831 +msgid "one of the strings \"standard\", \"logo\" or \"world\"" +msgstr "" +"l'une des chaînes de caractères : `\"standard\"`, `\"logo\"` ou `\"world\"`" + +#: ../Doc/library/turtle.rst:1833 +msgid "" +"Set turtle mode (\"standard\", \"logo\" or \"world\") and perform reset. If " +"mode is not given, current mode is returned." +msgstr "" +"Règle le mode de la tortue (\"*standard*\", \"*logo*\" ou \"*world*\") et la " +"réinitialise. Si le mode n'est pas donné, le mode actuel est renvoyé." + +#: ../Doc/library/turtle.rst:1836 +msgid "" +"Mode \"standard\" is compatible with old :mod:`turtle`. Mode \"logo\" is " +"compatible with most Logo turtle graphics. Mode \"world\" uses user-defined " +"\"world coordinates\". **Attention**: in this mode angles appear distorted " +"if ``x/y`` unit-ratio doesn't equal 1." +msgstr "" +"Le mode \"*standard*\" est compatible avec l'ancien :mod:`turtle`. Le mode " +"\"*logo*\" est compatible avec la plupart des graphiques *turtle* Logo. Le " +"mode \"*world*\" utilise des \"coordonnées monde\" (*world coordinates*) " +"définis par l'utilisateur. **Attention** : Dans ce mode, les angles " +"apparaissent déformés si le ratio unitaire de ``x/y`` n'est pas 1." + +#: ../Doc/library/turtle.rst:1842 +msgid "Mode" +msgstr "Mode" + +#: ../Doc/library/turtle.rst:1842 +msgid "Initial turtle heading" +msgstr "Orientation initiale de la tortue" + +#: ../Doc/library/turtle.rst:1842 +msgid "positive angles" +msgstr "angles positifs" + +#: ../Doc/library/turtle.rst:1844 +msgid "\"standard\"" +msgstr "\"standard\"" + +#: ../Doc/library/turtle.rst:1844 +msgid "to the right (east)" +msgstr "vers la droite (vers l'Est)" + +#: ../Doc/library/turtle.rst:1844 +msgid "counterclockwise" +msgstr "dans le sens inverse des aiguilles d'une montre" + +#: ../Doc/library/turtle.rst:1845 +msgid "\"logo\"" +msgstr "\"logo\"" + +#: ../Doc/library/turtle.rst:1845 +msgid "upward (north)" +msgstr "vers le haut (vers le Nord)" + +#: ../Doc/library/turtle.rst:1845 +msgid "clockwise" +msgstr "dans le sens des aiguilles d'une montre" + +#: ../Doc/library/turtle.rst:1857 +msgid "one of the values 1.0 or 255" +msgstr "l'une des valeurs suivantes : 1.0 ou 255" + +#: ../Doc/library/turtle.rst:1859 +msgid "" +"Return the colormode or set it to 1.0 or 255. Subsequently *r*, *g*, *b* " +"values of color triples have to be in the range 0..\\ *cmode*." +msgstr "" +"Renvoie le mode de couleur (*colormode*) ou le défini à 1.0 ou 255. Les " +"valeurs *r*, *g* et *b* doivent aussi être dans la gamme `0..*cmode*`." + +#: ../Doc/library/turtle.rst:1879 +msgid "" +"Return the Canvas of this TurtleScreen. Useful for insiders who know what " +"to do with a Tkinter Canvas." +msgstr "" +"Renvoie le canevas de ce TurtleScreen. Utile pour les initiés qui savent " +"quoi faire avec un canevas Tkinter." + +#: ../Doc/library/turtle.rst:1891 +msgid "Return a list of names of all currently available turtle shapes." +msgstr "" +"Renvoie une liste de noms de toutes les formes actuellement disponibles pour " +"les tortues." + +#: ../Doc/library/turtle.rst:1902 +msgid "There are three different ways to call this function:" +msgstr "Il existe trois façons différentes d’appeler cette fonction :" + +#: ../Doc/library/turtle.rst:1904 +msgid "" +"*name* is the name of a gif-file and *shape* is ``None``: Install the " +"corresponding image shape. ::" +msgstr "" +"*name* est le nom d'un fichier *gif* et *shape* est ``None`` : Installe la " +"forme d'image correspondante. ::" + +#: ../Doc/library/turtle.rst:1910 +msgid "" +"Image shapes *do not* rotate when turning the turtle, so they do not display " +"the heading of the turtle!" +msgstr "" +"Les formes d'images *ne tournent pas* lorsque la tortue tourne, donc elles " +"n'indiquent pas le cap de la tortue !" + +#: ../Doc/library/turtle.rst:1913 +msgid "" +"*name* is an arbitrary string and *shape* is a tuple of pairs of " +"coordinates: Install the corresponding polygon shape." +msgstr "" +"*name* est une chaîne de caractères arbitraire et *shape* est un *n*-uplet " +"de paires de coordonnées : Installe le polygone correspondant." + +#: ../Doc/library/turtle.rst:1920 +msgid "" +"*name* is an arbitrary string and shape is a (compound) :class:`Shape` " +"object: Install the corresponding compound shape." +msgstr "" +"*name* est une chaîne de caractères arbitraire et *shape* est un objet :" +"class:`Shape` (composé) : Installe la forme composée correspondante." + +#: ../Doc/library/turtle.rst:1923 +msgid "" +"Add a turtle shape to TurtleScreen's shapelist. Only thusly registered " +"shapes can be used by issuing the command ``shape(shapename)``." +msgstr "" +"Ajoute une forme de tortue a la liste des formes du TurtleScreen. Seulement " +"les formes enregistrées de cette façon peuvent être utilisée avec la " +"commande ``shape(shapename)``." + +#: ../Doc/library/turtle.rst:1929 +msgid "Return the list of turtles on the screen." +msgstr "Renvoie la liste des tortues présentes sur l'écran." + +#: ../Doc/library/turtle.rst:1939 +msgid "Return the height of the turtle window. ::" +msgstr "Renvoie la hauteur de la fenêtre de la tortue. ::" + +#: ../Doc/library/turtle.rst:1947 +msgid "Return the width of the turtle window. ::" +msgstr "Renvoie la largeur de la fenêtre de la tortue. ::" + +#: ../Doc/library/turtle.rst:1956 +msgid "Methods specific to Screen, not inherited from TurtleScreen" +msgstr "Méthodes spécifiques à Screen, non héritées de TurtleScreen" + +#: ../Doc/library/turtle.rst:1960 +msgid "Shut the turtlegraphics window." +msgstr "Éteins la fenêtre *turtlegraphics*." + +#: ../Doc/library/turtle.rst:1965 +msgid "Bind bye() method to mouse clicks on the Screen." +msgstr "" + +#: ../Doc/library/turtle.rst:1968 +msgid "" +"If the value \"using_IDLE\" in the configuration dictionary is ``False`` " +"(default value), also enter mainloop. Remark: If IDLE with the ``-n`` " +"switch (no subprocess) is used, this value should be set to ``True`` in :" +"file:`turtle.cfg`. In this case IDLE's own mainloop is active also for the " +"client script." +msgstr "" +"Si la valeur de \"*using_IDLE*\" dans le dictionnaire de configuration est " +"``False`` (valeur par défaut), démarre aussi la boucle principale. " +"Remarque : Si IDLE est lancé avec l'option ``-n`` (Pas de sous processus), " +"Cette valeur devrait être définie à ``True`` dans :file:`turtle.cfg`. Dans " +"ce cas, la boucle principale d'IDLE est active aussi pour le script du " +"client." + +#: ../Doc/library/turtle.rst:1977 +msgid "" +"Set the size and position of the main window. Default values of arguments " +"are stored in the configuration dictionary and can be changed via a :file:" +"`turtle.cfg` file." +msgstr "" +"Définit la taille et la position de la fenêtre principale. Les valeurs par " +"défaut des arguments sont stockées dans le dictionnaire de configuration et " +"peuvent être modifiées via un fichier :file:`turtle.cfg`." + +#: ../Doc/library/turtle.rst:1981 +msgid "" +"if an integer, a size in pixels, if a float, a fraction of the screen; " +"default is 50% of screen" +msgstr "" +"s'il s'agit d'un nombre entier, une taille en pixels, s'il s'agit d'un " +"nombre flottant, une fraction de l'écran ; la valeur par défaut est de 50 % " +"de l'écran" + +#: ../Doc/library/turtle.rst:1983 +msgid "" +"if an integer, the height in pixels, if a float, a fraction of the screen; " +"default is 75% of screen" +msgstr "" +"s'il s'agit d'un nombre entier, la hauteur en pixels, s'il s'agit d'un " +"nombre flottant, une fraction de l'écran ; la valeur par défaut est 75 % de " +"l'écran" + +#: ../Doc/library/turtle.rst:1985 +msgid "" +"if positive, starting position in pixels from the left edge of the screen, " +"if negative from the right edge, if ``None``, center window horizontally" +msgstr "" +"s'il s'agit d'un nombre positif, position de départ en pixels à partir du " +"bord gauche de l'écran, s'il s'agit d'un nombre négatif, position de départ " +"en pixels à partir du bord droit, si c'est ``None``, centre la fenêtre " +"horizontalement" + +#: ../Doc/library/turtle.rst:1988 +msgid "" +"if positive, starting position in pixels from the top edge of the screen, if " +"negative from the bottom edge, if ``None``, center window vertically" +msgstr "" +"si positif, la position de départ en pixels depuis le haut de l'écran. Si " +"négatif, depuis de bas de l'écran. Si ``None``, Le centre de la fenêtre " +"verticalement" + +#: ../Doc/library/turtle.rst:2002 +msgid "a string that is shown in the titlebar of the turtle graphics window" +msgstr "" +"chaîne de caractères affichée dans la barre de titre de la fenêtre graphique " +"de la tortue" + +#: ../Doc/library/turtle.rst:2005 +msgid "Set title of turtle window to *titlestring*." +msgstr "Défini le titre de la fenêtre de la tortue à *titlestring*." + +#: ../Doc/library/turtle.rst:2013 +msgid "Public classes" +msgstr "Classes publiques" + +#: ../Doc/library/turtle.rst:2019 +msgid "" +"a :class:`tkinter.Canvas`, a :class:`ScrolledCanvas` or a :class:" +"`TurtleScreen`" +msgstr "" +"un :class:`tkinter.Canvas`, un :class:`ScrolledCanvas` ou un :class:" +"`TurtleScreen`" + +#: ../Doc/library/turtle.rst:2022 +msgid "" +"Create a turtle. The turtle has all methods described above as \"methods of " +"Turtle/RawTurtle\"." +msgstr "" +"Crée une tortue. Cette tortue à toutes les méthodes décrites ci-dessus comme " +"\"Méthode de Turtle/RawTurtle\"." + +#: ../Doc/library/turtle.rst:2028 +msgid "" +"Subclass of RawTurtle, has the same interface but draws on a default :class:" +"`Screen` object created automatically when needed for the first time." +msgstr "" +"Sous-classe de RawTurtle, à la même interface mais dessine sur un objet :" +"class:`screen` par défaut créé automatiquement lorsque nécessaire pour la " +"première fois." + +#: ../Doc/library/turtle.rst:2034 +msgid "a :class:`tkinter.Canvas`" +msgstr "un :class:`tkinter.Canvas`" + +#: ../Doc/library/turtle.rst:2036 +msgid "" +"Provides screen oriented methods like :func:`setbg` etc. that are described " +"above." +msgstr "" +"Fournis les méthodes liées à l'écran comme :func:`setbg`, etc. qui sont " +"décrites ci-dessus." + +#: ../Doc/library/turtle.rst:2041 +msgid "" +"Subclass of TurtleScreen, with :ref:`four methods added `." +msgstr "" +"Sous-classess de TurtleScreen, avec :ref:`quatre nouvelles méthodes " +"`." + +#: ../Doc/library/turtle.rst:2046 +msgid "" +"some Tkinter widget to contain the ScrolledCanvas, i.e. a Tkinter-canvas " +"with scrollbars added" +msgstr "" +"certain modules Tkinter pour contenir le ScrolledCanvas, c'est à dire, un " +"canevas Tkinter avec des barres de défilement ajoutées" + +#: ../Doc/library/turtle.rst:2049 +msgid "" +"Used by class Screen, which thus automatically provides a ScrolledCanvas as " +"playground for the turtles." +msgstr "" +"Utilisé par la classe Screen, qui fournit donc automatiquement un " +"ScrolledCanvas comme terrain de jeu pour les tortues." + +#: ../Doc/library/turtle.rst:2054 +msgid "one of the strings \"polygon\", \"image\", \"compound\"" +msgstr "" +"l'une des chaînes suivantes : `\"polygon\"`, `\"image\"` ou `\"compound\"`" + +#: ../Doc/library/turtle.rst:2056 +msgid "" +"Data structure modeling shapes. The pair ``(type_, data)`` must follow this " +"specification:" +msgstr "" +"Formes de modélisation de la structure des données. La paire ``(type_, " +"data)`` doit suivre cette spécification :" + +#: ../Doc/library/turtle.rst:2061 +msgid "*type_*" +msgstr "*type_*" + +#: ../Doc/library/turtle.rst:2061 +msgid "*data*" +msgstr "*data*" + +#: ../Doc/library/turtle.rst:2063 +msgid "\"polygon\"" +msgstr "\"polygon\"" + +#: ../Doc/library/turtle.rst:2063 +msgid "a polygon-tuple, i.e. a tuple of pairs of coordinates" +msgstr "" +"un polygone n-uplet, c'est-à-dire un n-uplet constitué de paires (chaque " +"paire définissant des coordonnées)" + +#: ../Doc/library/turtle.rst:2064 +msgid "\"image\"" +msgstr "\"image\"" + +#: ../Doc/library/turtle.rst:2064 +msgid "an image (in this form only used internally!)" +msgstr "une image (utilisée uniquement en interne sous ce format !)" + +#: ../Doc/library/turtle.rst:2065 +msgid "\"compound\"" +msgstr "\"compound\"" + +#: ../Doc/library/turtle.rst:2065 +msgid "" +"``None`` (a compound shape has to be constructed using the :meth:" +"`addcomponent` method)" +msgstr "" +"``None`` (une forme composée doit être construite en utilisant la méthode :" +"meth:`addcomponent`)" + +#: ../Doc/library/turtle.rst:2071 +msgid "a polygon, i.e. a tuple of pairs of numbers" +msgstr "un polygone, c.-à-d. un n-uplet de paires de nombres" + +#: ../Doc/library/turtle.rst:2072 +msgid "a color the *poly* will be filled with" +msgstr "une couleur de remplissage pour *poly*" + +#: ../Doc/library/turtle.rst:2073 +msgid "a color for the poly's outline (if given)" +msgstr "une couleur pour le contour du polygone (si elle est donnée)" + +#: ../Doc/library/turtle.rst:2075 +msgid "Example:" +msgstr "Exemple :" + +#: ../Doc/library/turtle.rst:2084 +msgid "See :ref:`compoundshapes`." +msgstr "Voir :ref:`compoundshapes`." + +#: ../Doc/library/turtle.rst:2089 +msgid "" +"A two-dimensional vector class, used as a helper class for implementing " +"turtle graphics. May be useful for turtle graphics programs too. Derived " +"from tuple, so a vector is a tuple!" +msgstr "" +"Une classe de vecteur bidimensionnel, utilisée en tant que classe auxiliaire " +"pour implémenter les graphiques *turtle*. Peut être utile pour les " +"programmes graphiques faits avec *turtle*. Dérivé des *n*-uplets, donc un " +"vecteur est un *n*-uplet !" + +#: ../Doc/library/turtle.rst:2093 +msgid "Provides (for *a*, *b* vectors, *k* number):" +msgstr "Permet (pour les vecteurs *a*, *b* et le nombre *k*) :" + +#: ../Doc/library/turtle.rst:2095 +msgid "``a + b`` vector addition" +msgstr "``a + b`` addition de vecteurs" + +#: ../Doc/library/turtle.rst:2096 +msgid "``a - b`` vector subtraction" +msgstr "``a - b`` soustraction de deux vecteurs" + +#: ../Doc/library/turtle.rst:2097 +msgid "``a * b`` inner product" +msgstr "``a * b`` produit scalaire" + +#: ../Doc/library/turtle.rst:2098 +msgid "``k * a`` and ``a * k`` multiplication with scalar" +msgstr "``k * a`` et ``a * k`` multiplication avec un scalaire" + +#: ../Doc/library/turtle.rst:2099 +msgid "``abs(a)`` absolute value of a" +msgstr "``abs(a)`` valeur absolue de a" + +#: ../Doc/library/turtle.rst:2100 +msgid "``a.rotate(angle)`` rotation" +msgstr "``a.rotate(angle)`` rotation" + +#: ../Doc/library/turtle.rst:2104 +msgid "Help and configuration" +msgstr "Aide et configuration" + +#: ../Doc/library/turtle.rst:2107 +msgid "How to use help" +msgstr "Utilisation de l'aide" + +#: ../Doc/library/turtle.rst:2109 +msgid "" +"The public methods of the Screen and Turtle classes are documented " +"extensively via docstrings. So these can be used as online-help via the " +"Python help facilities:" +msgstr "" +"Les méthodes publiques des classes *Screen* et *Turtle* sont largement " +"documentées dans les *docstrings*. Elles peuvent donc être utilisées comme " +"aide en ligne via les fonctions d'aide de Python :" + +#: ../Doc/library/turtle.rst:2113 +msgid "" +"When using IDLE, tooltips show the signatures and first lines of the " +"docstrings of typed in function-/method calls." +msgstr "" +"Lors de l'utilisation d'IDLE, des info-bulles apparaissent avec la signature " +"et les premières lignes de *docstring* de la fonction/méthode appelée." + +#: ../Doc/library/turtle.rst:2116 +msgid "Calling :func:`help` on methods or functions displays the docstrings::" +msgstr "" +"L'appel de :func:`help` sur les méthodes ou fonctions affichera les " +"*docstrings* ::" + +#: ../Doc/library/turtle.rst:2147 +msgid "" +"The docstrings of the functions which are derived from methods have a " +"modified form::" +msgstr "" +"Les *docstrings* des fonctions qui sont dérivées des méthodes ont une forme " +"modifiée ::" + +#: ../Doc/library/turtle.rst:2181 +msgid "" +"These modified docstrings are created automatically together with the " +"function definitions that are derived from the methods at import time." +msgstr "" +"Ces chaînes de documents modifiées sont créées automatiquement avec les " +"définitions de fonctions qui sont dérivées des méthodes au moment de " +"l'importation." + +#: ../Doc/library/turtle.rst:2186 +msgid "Translation of docstrings into different languages" +msgstr "Traduction de chaînes de documents en différentes langues" + +#: ../Doc/library/turtle.rst:2188 +msgid "" +"There is a utility to create a dictionary the keys of which are the method " +"names and the values of which are the docstrings of the public methods of " +"the classes Screen and Turtle." +msgstr "" +"Il est utile de créer un dictionnaire dont les clés sont les noms des " +"méthodes et les valeurs sont les *docstrings* de méthodes publiques des " +"classes Screen et Turtle." + +#: ../Doc/library/turtle.rst:2194 +msgid "a string, used as filename" +msgstr "une chaîne de caractères, utilisée en tant que nom de fichier" + +#: ../Doc/library/turtle.rst:2196 +msgid "" +"Create and write docstring-dictionary to a Python script with the given " +"filename. This function has to be called explicitly (it is not used by the " +"turtle graphics classes). The docstring dictionary will be written to the " +"Python script :file:`{filename}.py`. It is intended to serve as a template " +"for translation of the docstrings into different languages." +msgstr "" +"Crée et écrit un dictionnaire de *docstrings* dans un script Python avec le " +"nom donné. Cette fonction doit être appelée explicitement (elle n'est pas " +"utilisée par les classes graphiques de *turtle*). Ce dictionnaire de " +"*doctrings* sera écrit dans le script Python :file:`{filename}.py`. Il sert " +"de modèle pour la traduction des *docstrings* dans différentes langues." + +#: ../Doc/library/turtle.rst:2202 +msgid "" +"If you (or your students) want to use :mod:`turtle` with online help in your " +"native language, you have to translate the docstrings and save the resulting " +"file as e.g. :file:`turtle_docstringdict_german.py`." +msgstr "" +"Si vous (ou vos étudiants) veulent utiliser :mod:`turtle` avec de l'aide en " +"ligne dans votre langue natale, vous devez traduire les *docstrings* et " +"sauvegarder les fichiers résultants en, par exemple, :file:" +"`turtle_docstringdict_german.py`." + +#: ../Doc/library/turtle.rst:2206 +msgid "" +"If you have an appropriate entry in your :file:`turtle.cfg` file this " +"dictionary will be read in at import time and will replace the original " +"English docstrings." +msgstr "" +"Si vous avez une entrée appropriée dans votre fichier :file:`turtle.cfg`, ce " +"dictionnaire est lu au moment de l'importation et remplace la *docstrings* " +"originale en anglais par cette entrée." + +#: ../Doc/library/turtle.rst:2209 +msgid "" +"At the time of this writing there are docstring dictionaries in German and " +"in Italian. (Requests please to glingl@aon.at.)" +msgstr "" +"Au moment de l'écriture de cette documentation, il n'existe seulement que " +"des *docstrings* en Allemand et Italien. (Merci de faire vos demandes à " +"glingl@aon.at.)" + +#: ../Doc/library/turtle.rst:2215 +msgid "How to configure Screen and Turtles" +msgstr "Comment configurer *Screen* et *Turtle*" + +#: ../Doc/library/turtle.rst:2217 +msgid "" +"The built-in default configuration mimics the appearance and behaviour of " +"the old turtle module in order to retain best possible compatibility with it." +msgstr "" +"La configuration par défaut imite l'apparence et le comportement de l'ancien " +"module *turtle* pour pouvoir maintenir la meilleure compatibilité avec celui-" +"ci." + +#: ../Doc/library/turtle.rst:2220 +msgid "" +"If you want to use a different configuration which better reflects the " +"features of this module or which better fits to your needs, e.g. for use in " +"a classroom, you can prepare a configuration file ``turtle.cfg`` which will " +"be read at import time and modify the configuration according to its " +"settings." +msgstr "" +"Si vous voulez utiliser une configuration différente qui reflète mieux les " +"fonctionnalités de ce module ou qui correspond mieux à vos besoins, par " +"exemple pour un cours, vous pouvez préparer un ficher de configuration " +"``turtle.cfg`` qui sera lu au moment de l'importation et qui modifiera la " +"configuration en utilisant les paramètres du fichier." + +#: ../Doc/library/turtle.rst:2225 +msgid "" +"The built in configuration would correspond to the following turtle.cfg::" +msgstr "La configuration native correspondrait au *turtle.cfg* suivant ::" + +#: ../Doc/library/turtle.rst:2248 +msgid "Short explanation of selected entries:" +msgstr "Brève explication des entrées sélectionnées :" + +#: ../Doc/library/turtle.rst:2250 +msgid "" +"The first four lines correspond to the arguments of the :meth:`Screen.setup` " +"method." +msgstr "" +"Les quatre premières lignes correspondent aux arguments de la méthode :meth:" +"`Screen.setup`." + +#: ../Doc/library/turtle.rst:2252 +msgid "" +"Line 5 and 6 correspond to the arguments of the method :meth:`Screen." +"screensize`." +msgstr "" +"Les lignes 5 et 6 correspondent aux arguments de la méthode :meth:`Screen." +"screensize`." + +#: ../Doc/library/turtle.rst:2254 +msgid "" +"*shape* can be any of the built-in shapes, e.g: arrow, turtle, etc. For " +"more info try ``help(shape)``." +msgstr "" +"*shape* peut être n'importe quelle forme native, par exemple *arrow*, " +"*turtle* etc. Pour plus d'informations, essayez ``help(shape)``." + +#: ../Doc/library/turtle.rst:2256 +msgid "" +"If you want to use no fillcolor (i.e. make the turtle transparent), you have " +"to write ``fillcolor = \"\"`` (but all nonempty strings must not have quotes " +"in the cfg-file)." +msgstr "" +"Si vous ne voulez utiliser aucune couleur de remplissage (c'est-à-dire " +"rendre la tortue transparente), vous devez écrire ``fillcolor = \"\"`` (mais " +"toutes les chaînes non vides ne doivent pas avoir de guillemets dans le " +"fichier *cfg*)." + +#: ../Doc/library/turtle.rst:2259 +msgid "" +"If you want to reflect the turtle its state, you have to use ``resizemode = " +"auto``." +msgstr "" +"Si vous voulez refléter l'état de la tortue, vous devez utiliser " +"``resizemode = auto``." + +#: ../Doc/library/turtle.rst:2261 +msgid "" +"If you set e.g. ``language = italian`` the docstringdict :file:" +"`turtle_docstringdict_italian.py` will be loaded at import time (if present " +"on the import path, e.g. in the same directory as :mod:`turtle`." +msgstr "" +"Si vous définissez par exemple ``language = italian``, le dictionnaire de " +"*docstrings* :file:`turtle.docstringdict_italian.py` sera chargé au moment " +"de l'importation (si présent dans les chemins d'importations, par exemple " +"dans le même dossier que :mod:`turtle`)." + +#: ../Doc/library/turtle.rst:2264 +msgid "" +"The entries *exampleturtle* and *examplescreen* define the names of these " +"objects as they occur in the docstrings. The transformation of method-" +"docstrings to function-docstrings will delete these names from the " +"docstrings." +msgstr "" +"Les entrées *exampleturtle* et *examplescreen* définissent les noms de ces " +"objets tels qu'ils apparaissent dans les *docstrings*. La transformation des " +"méthodes-*docstrings* vers fonction-*docstrings* supprimera ces noms des " +"*docstrings*." + +#: ../Doc/library/turtle.rst:2268 +msgid "" +"*using_IDLE*: Set this to ``True`` if you regularly work with IDLE and its -" +"n switch (\"no subprocess\"). This will prevent :func:`exitonclick` to " +"enter the mainloop." +msgstr "" +"*using_IDLE* : définissez ceci à ``True`` si vous travaillez régulièrement " +"avec IDLE et son option ``-n`` (pas de sous processus). Cela évitera " +"l'entrée de :func:`exitonclick` dans la boucle principale." + +#: ../Doc/library/turtle.rst:2272 +msgid "" +"There can be a :file:`turtle.cfg` file in the directory where :mod:`turtle` " +"is stored and an additional one in the current working directory. The " +"latter will override the settings of the first one." +msgstr "" +"Il peut y avoir un :file:turtle.cfg` dans le dossier où se situe :mod:" +"`turtle` et un autre dans le dossier de travail courant. Ce dernier prendra " +"le dessus." + +#: ../Doc/library/turtle.rst:2276 +msgid "" +"The :file:`Lib/turtledemo` directory contains a :file:`turtle.cfg` file. " +"You can study it as an example and see its effects when running the demos " +"(preferably not from within the demo-viewer)." +msgstr "" +"Le dossier :file:`Lib/turtledemo` contient un fichier :file:`turtle.cfg`. " +"Vous pouvez le prendre comme exemple et voir ses effets lorsque vous lancez " +"les démos (il est préférable de ne pas le faire depuis la visionneuse de " +"démos)." + +#: ../Doc/library/turtle.rst:2282 +msgid ":mod:`turtledemo` --- Demo scripts" +msgstr ":mod:`turtledemo` — Scripts de démonstration" + +#: ../Doc/library/turtle.rst:2287 +msgid "" +"The :mod:`turtledemo` package includes a set of demo scripts. These scripts " +"can be run and viewed using the supplied demo viewer as follows::" +msgstr "" +"Le paquet :mod:`turtledemo` inclut un ensemble de scripts de démonstration. " +"Ces scripts peuvent être lancés et observés en utilisant la visionneuse de " +"démos comme suit ::" + +#: ../Doc/library/turtle.rst:2292 +msgid "" +"Alternatively, you can run the demo scripts individually. For example, ::" +msgstr "" +"Alternativement, vous pouvez lancer les scripts de démo individuellement. " +"Par exemple ::" + +#: ../Doc/library/turtle.rst:2296 +msgid "The :mod:`turtledemo` package directory contains:" +msgstr "Le paquet :mod:`turtledemo` contient :" + +#: ../Doc/library/turtle.rst:2298 +msgid "" +"A demo viewer :file:`__main__.py` which can be used to view the sourcecode " +"of the scripts and run them at the same time." +msgstr "" +"Une visionneuse :file:`__main__.py` qui peut être utilisée pour lire le code " +"source de ces scripts et pour les faire tourner en même temps." + +#: ../Doc/library/turtle.rst:2300 +msgid "" +"Multiple scripts demonstrating different features of the :mod:`turtle` " +"module. Examples can be accessed via the Examples menu. They can also be " +"run standalone." +msgstr "" +"Plusieurs script présentent les différentes fonctionnalités du module :mod:" +"`turtle`. Les exemples peuvent être consultés via le menu *Examples*. Ils " +"peuvent aussi être lancés de manière autonome." + +#: ../Doc/library/turtle.rst:2303 +msgid "" +"A :file:`turtle.cfg` file which serves as an example of how to write and use " +"such files." +msgstr "" +"Un fichier exemple :file:`turtle.cfg` montrant comment rédiger de tels " +"fichiers." + +#: ../Doc/library/turtle.rst:2306 +msgid "The demo scripts are:" +msgstr "Les scripts de démonstration sont :" + +#: ../Doc/library/turtle.rst:2311 +msgid "Name" +msgstr "Nom" + +#: ../Doc/library/turtle.rst:2311 +msgid "Description" +msgstr "Description" + +#: ../Doc/library/turtle.rst:2311 +msgid "Features" +msgstr "Caractéristiques" + +#: ../Doc/library/turtle.rst:2313 +msgid "bytedesign" +msgstr "*bytedesign*" + +#: ../Doc/library/turtle.rst:2313 +msgid "complex classical turtle graphics pattern" +msgstr "motif complexe de la tortue graphique classique" + +#: ../Doc/library/turtle.rst:2313 +msgid ":func:`tracer`, delay, :func:`update`" +msgstr ":func:`tracer`, temps mort, :func:`update`" + +#: ../Doc/library/turtle.rst:2316 +msgid "chaos" +msgstr "chaos" + +#: ../Doc/library/turtle.rst:2316 +msgid "" +"graphs Verhulst dynamics, shows that computer's computations can generate " +"results sometimes against the common sense expectations" +msgstr "" +"graphiques dynamiques de Verhulst, cela démontre que les calculs de " +"l'ordinateur peuvent générer des résultats qui vont parfois à l'encontre du " +"bon sens" + +#: ../Doc/library/turtle.rst:2316 +msgid "world coordinates" +msgstr "*world coordinates*" + +#: ../Doc/library/turtle.rst:2322 +msgid "clock" +msgstr "*clock*" + +#: ../Doc/library/turtle.rst:2322 +msgid "analog clock showing time of your computer" +msgstr "horloge analogique indiquant l'heure de votre ordinateur" + +#: ../Doc/library/turtle.rst:2322 +msgid "turtles as clock's hands, ontimer" +msgstr "tortues sous forme des aiguilles d'horloge, sur minuterie" + +#: ../Doc/library/turtle.rst:2325 +msgid "colormixer" +msgstr "*colormixer* (mélangeur de couleurs)" + +#: ../Doc/library/turtle.rst:2325 +msgid "experiment with r, g, b" +msgstr "des expériences en rouge, vert, bleu" + +#: ../Doc/library/turtle.rst:2327 +msgid "forest" +msgstr "*forest* (forêt)" + +#: ../Doc/library/turtle.rst:2327 +msgid "3 breadth-first trees" +msgstr "3 arbres tracés par un parcours en largeur" + +#: ../Doc/library/turtle.rst:2327 +msgid "randomization" +msgstr "*randomization* (répartition aléatoire)" + +#: ../Doc/library/turtle.rst:2329 +msgid "fractalcurves" +msgstr "*fractalcurves*" + +#: ../Doc/library/turtle.rst:2329 +msgid "Hilbert & Koch curves" +msgstr "Courbes de Hilbert et de Koch" + +#: ../Doc/library/turtle.rst:2329 +msgid "recursion" +msgstr "récursivité" + +#: ../Doc/library/turtle.rst:2331 +msgid "lindenmayer" +msgstr "*lindenmayer*" + +#: ../Doc/library/turtle.rst:2331 +msgid "ethnomathematics (indian kolams)" +msgstr "ethnomathématiques (kolams indiens)" + +#: ../Doc/library/turtle.rst:2331 +msgid "L-System" +msgstr "*L-Système*" + +#: ../Doc/library/turtle.rst:2334 +msgid "minimal_hanoi" +msgstr "*minimal_hanoi*" + +#: ../Doc/library/turtle.rst:2334 +msgid "Towers of Hanoi" +msgstr "Tours de Hanoï" + +#: ../Doc/library/turtle.rst:2334 +msgid "Rectangular Turtles as Hanoi discs (shape, shapesize)" +msgstr "" +"Des tortues rectangulaires à la place des disques (*shape*, *shapesize*)" + +#: ../Doc/library/turtle.rst:2338 +msgid "nim" +msgstr "*nim*" + +#: ../Doc/library/turtle.rst:2338 +msgid "" +"play the classical nim game with three heaps of sticks against the computer." +msgstr "" +"jouez au classique jeu de *nim* avec trois piles de bâtons contre " +"l'ordinateur." + +#: ../Doc/library/turtle.rst:2338 +msgid "turtles as nimsticks, event driven (mouse, keyboard)" +msgstr "" +"tortues en tant que bâtons de *nim*, géré par des événements (clavier et " +"souris)" + +#: ../Doc/library/turtle.rst:2342 +msgid "paint" +msgstr "*paint* (peinture)" + +#: ../Doc/library/turtle.rst:2342 +msgid "super minimalistic drawing program" +msgstr "programme de dessin extra minimaliste" + +#: ../Doc/library/turtle.rst:2345 +msgid "peace" +msgstr "*peace* (paix)" + +#: ../Doc/library/turtle.rst:2345 +msgid "elementary" +msgstr "basique" + +#: ../Doc/library/turtle.rst:2345 +msgid "turtle: appearance and animation" +msgstr "tortue : apparence et animation" + +#: ../Doc/library/turtle.rst:2348 +msgid "penrose" +msgstr "*penrose*" + +#: ../Doc/library/turtle.rst:2348 +msgid "aperiodic tiling with kites and darts" +msgstr "tuiles apériodiques avec cerfs-volants et fléchettes" + +#: ../Doc/library/turtle.rst:2351 +msgid "planet_and_moon" +msgstr "*planet_and_moon* (planète et lune)" + +#: ../Doc/library/turtle.rst:2351 +msgid "simulation of gravitational system" +msgstr "simulation d'un système gravitationnel" + +#: ../Doc/library/turtle.rst:2351 +msgid "compound shapes, :class:`Vec2D`" +msgstr "formes composées, :class:`Vec2D`" + +#: ../Doc/library/turtle.rst:2354 +msgid "round_dance" +msgstr "*round_dance*" + +#: ../Doc/library/turtle.rst:2354 +msgid "dancing turtles rotating pairwise in opposite direction" +msgstr "tortues dansantes tournant par paires en sens inverse" + +#: ../Doc/library/turtle.rst:2354 +msgid "compound shapes, clone shapesize, tilt, get_shapepoly, update" +msgstr "" +"formes composées, clones de la forme (*shapesize*), rotation, " +"*get_shapepoly*, *update*" + +#: ../Doc/library/turtle.rst:2358 +msgid "sorting_animate" +msgstr "*sorting_animate*" + +#: ../Doc/library/turtle.rst:2358 +msgid "visual demonstration of different sorting methods" +msgstr "démonstration visuelle des différentes méthodes de classement" + +#: ../Doc/library/turtle.rst:2358 +msgid "simple alignment, randomization" +msgstr "alignement simple, répartition aléatoire" + +#: ../Doc/library/turtle.rst:2361 +msgid "tree" +msgstr "*tree* (arbre)" + +#: ../Doc/library/turtle.rst:2361 +msgid "a (graphical) breadth first tree (using generators)" +msgstr "un arbre (tracé) par un parcours en largeur (à l’aide de générateurs)" + +#: ../Doc/library/turtle.rst:2364 +msgid "two_canvases" +msgstr "*two_canvases* (deux toiles)" + +#: ../Doc/library/turtle.rst:2364 +msgid "simple design" +msgstr "design simple" + +#: ../Doc/library/turtle.rst:2364 +msgid "turtles on two canvases" +msgstr "tortues sur deux canevas" + +#: ../Doc/library/turtle.rst:2367 +msgid "wikipedia" +msgstr "*wikipedia*" + +#: ../Doc/library/turtle.rst:2367 +msgid "a pattern from the wikipedia article on turtle graphics" +msgstr "un motif issu de l'article de *wikipedia* sur la tortue graphique" + +#: ../Doc/library/turtle.rst:2367 +msgid ":func:`clone`, :func:`undo`" +msgstr ":func:`clone`, :func:`undo`" + +#: ../Doc/library/turtle.rst:2370 +msgid "yinyang" +msgstr "*yinyang*" + +#: ../Doc/library/turtle.rst:2370 +msgid "another elementary example" +msgstr "un autre exemple élémentaire" + +#: ../Doc/library/turtle.rst:2373 +msgid "Have fun!" +msgstr "Amusez-vous !" + +#: ../Doc/library/turtle.rst:2377 +msgid "Changes since Python 2.6" +msgstr "Modifications depuis Python 2.6" + +#: ../Doc/library/turtle.rst:2379 +msgid "" +"The methods :meth:`Turtle.tracer`, :meth:`Turtle.window_width` and :meth:" +"`Turtle.window_height` have been eliminated. Methods with these names and " +"functionality are now available only as methods of :class:`Screen`. The " +"functions derived from these remain available. (In fact already in Python " +"2.6 these methods were merely duplications of the corresponding :class:" +"`TurtleScreen`/:class:`Screen`-methods.)" +msgstr "" +"Les méthodes :meth:`Turtle.tracer`, :meth:`Turtle.window_width` et :meth:" +"`Turtle.window_height` ont été supprimées. Seule :class:`Screen` définit " +"maintenant des méthodes avec ces noms et fonctionnalités. Les fonction " +"dérivées de ces méthodes restent disponibles. (En réalité, déjà en Python " +"2.6 ces méthodes n'étaient que de simples duplicatas des méthodes " +"correspondantes des classes :class:`TurtleScreen`/:class:`Screen`)" + +#: ../Doc/library/turtle.rst:2387 +msgid "" +"The method :meth:`Turtle.fill` has been eliminated. The behaviour of :meth:" +"`begin_fill` and :meth:`end_fill` have changed slightly: now every filling-" +"process must be completed with an ``end_fill()`` call." +msgstr "" +"La méthode :meth:`Turtle.fill` à été supprimée. Le fonctionnement de :meth:" +"`begin_fill` et :meth:`end_fill` a légèrement changé : chaque opération de " +"remplissage doit maintenant se terminer par un appel à ``end_fill()``." + +#: ../Doc/library/turtle.rst:2392 +msgid "" +"A method :meth:`Turtle.filling` has been added. It returns a boolean value: " +"``True`` if a filling process is under way, ``False`` otherwise. This " +"behaviour corresponds to a ``fill()`` call without arguments in Python 2.6." +msgstr "" +"La méthode :meth:`Turtle.filling` a été ajoutée. Elle renvoie le booléen " +"``True`` si une opération de remplissage est en cours,``False`` sinon. Ce " +"comportement correspond à un appel à ``fill()`` sans argument en Python 2.6." + +#: ../Doc/library/turtle.rst:2398 +msgid "Changes since Python 3.0" +msgstr "Modifications depuis Python 3.0" + +#: ../Doc/library/turtle.rst:2400 +msgid "" +"The methods :meth:`Turtle.shearfactor`, :meth:`Turtle.shapetransform` and :" +"meth:`Turtle.get_shapepoly` have been added. Thus the full range of regular " +"linear transforms is now available for transforming turtle shapes. :meth:" +"`Turtle.tiltangle` has been enhanced in functionality: it now can be used to " +"get or set the tiltangle. :meth:`Turtle.settiltangle` has been deprecated." +msgstr "" +"Les méthodes :meth:`Turtle.shearfactor`, :meth:`Turtle.shapetransform` et :" +"meth:`Turtle.get_shapepoly` on été ajoutées. Ainsi, la gamme complète des " +"transformations linéaires habituelles est maintenant disponible pour " +"modifier les formes de la tortue. La méthode :meth:`Turtle.tiltangle` a été " +"améliorée : Elle peut maintenant récupérer ou définir l'angle " +"d'inclinaison. :meth:`Turtle.settiltangle` est désormais obsolète." + +#: ../Doc/library/turtle.rst:2407 +msgid "" +"The method :meth:`Screen.onkeypress` has been added as a complement to :meth:" +"`Screen.onkey` which in fact binds actions to the keyrelease event. " +"Accordingly the latter has got an alias: :meth:`Screen.onkeyrelease`." +msgstr "" +"La méthode :meth:`Screen.onkeypress` a été ajoutée en complément à :meth:" +"`Screen.onkey` qui lie des actions à des relâchements de touches. En " +"conséquence, ce dernier s'est vu doté d'un alias : :meth:`Screen." +"onkeyrelease`." + +#: ../Doc/library/turtle.rst:2411 +msgid "" +"The method :meth:`Screen.mainloop` has been added. So when working only " +"with Screen and Turtle objects one must not additionally import :func:" +"`mainloop` anymore." +msgstr "" +"La méthode :meth:`Screen.mainloop` à été ajoutée. Ainsi, lorsque vous " +"travaillez uniquement avec des objets Screen et Turtle, vous n'avez plus " +"besoin d'importer :func:`mainloop`." + +#: ../Doc/library/turtle.rst:2415 +msgid "" +"Two input methods has been added :meth:`Screen.textinput` and :meth:`Screen." +"numinput`. These popup input dialogs and return strings and numbers " +"respectively." +msgstr "" +"Deux méthodes d'entrées ont été ajoutées : :meth:`Screen.textinput` et :meth:" +"`Screen.numinput`. Ces dialogues d'entrées renvoient des chaînes de " +"caractères et des nombres respectivement." + +#: ../Doc/library/turtle.rst:2419 +msgid "" +"Two example scripts :file:`tdemo_nim.py` and :file:`tdemo_round_dance.py` " +"have been added to the :file:`Lib/turtledemo` directory." +msgstr "" +"Deux exemples de scripts :file:`tdemo_nim.py` et :file:`tdemo_round_dance." +"py` ont été ajoutés au répertoire :file:`Lib/turtledemo`." diff --git a/library/types.po b/library/types.po new file mode 100644 index 000000000..2ea986027 --- /dev/null +++ b/library/types.po @@ -0,0 +1,421 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-01-03 16:57+0100\n" +"PO-Revision-Date: 2018-09-28 10:04+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/types.rst:2 +msgid ":mod:`types` --- Dynamic type creation and names for built-in types" +msgstr "" + +#: ../Doc/library/types.rst:7 +msgid "**Source code:** :source:`Lib/types.py`" +msgstr "**Code source :** :source:`Lib/types.py`" + +#: ../Doc/library/types.rst:11 +msgid "" +"This module defines utility functions to assist in dynamic creation of new " +"types." +msgstr "" + +#: ../Doc/library/types.rst:14 +msgid "" +"It also defines names for some object types that are used by the standard " +"Python interpreter, but not exposed as builtins like :class:`int` or :class:" +"`str` are." +msgstr "" + +#: ../Doc/library/types.rst:18 +msgid "" +"Finally, it provides some additional type-related utility classes and " +"functions that are not fundamental enough to be builtins." +msgstr "" + +#: ../Doc/library/types.rst:23 +msgid "Dynamic Type Creation" +msgstr "" + +#: ../Doc/library/types.rst:27 +msgid "Creates a class object dynamically using the appropriate metaclass." +msgstr "" + +#: ../Doc/library/types.rst:29 +msgid "" +"The first three arguments are the components that make up a class definition " +"header: the class name, the base classes (in order), the keyword arguments " +"(such as ``metaclass``)." +msgstr "" + +#: ../Doc/library/types.rst:33 +msgid "" +"The *exec_body* argument is a callback that is used to populate the freshly " +"created class namespace. It should accept the class namespace as its sole " +"argument and update the namespace directly with the class contents. If no " +"callback is provided, it has the same effect as passing in ``lambda ns: ns``." +msgstr "" + +#: ../Doc/library/types.rst:43 +msgid "Calculates the appropriate metaclass and creates the class namespace." +msgstr "" + +#: ../Doc/library/types.rst:45 +msgid "" +"The arguments are the components that make up a class definition header: the " +"class name, the base classes (in order) and the keyword arguments (such as " +"``metaclass``)." +msgstr "" + +#: ../Doc/library/types.rst:49 +msgid "The return value is a 3-tuple: ``metaclass, namespace, kwds``" +msgstr "" + +#: ../Doc/library/types.rst:51 +msgid "" +"*metaclass* is the appropriate metaclass, *namespace* is the prepared class " +"namespace and *kwds* is an updated copy of the passed in *kwds* argument " +"with any ``'metaclass'`` entry removed. If no *kwds* argument is passed in, " +"this will be an empty dict." +msgstr "" + +#: ../Doc/library/types.rst:60 +msgid "" +"The default value for the ``namespace`` element of the returned tuple has " +"changed. Now an insertion-order-preserving mapping is used when the " +"metaclass does not have a ``__prepare__`` method." +msgstr "" + +#: ../Doc/library/types.rst:67 +msgid ":ref:`metaclasses`" +msgstr "" + +#: ../Doc/library/types.rst:67 +msgid "Full details of the class creation process supported by these functions" +msgstr "" + +#: ../Doc/library/types.rst:69 +msgid ":pep:`3115` - Metaclasses in Python 3000" +msgstr ":pep:`3115` — Méta-classes dans Python 3000" + +#: ../Doc/library/types.rst:70 +msgid "Introduced the ``__prepare__`` namespace hook" +msgstr "" +"introduction de la fonction automatique ``__prepare__`` de l'espace de " +"nommage" + +#: ../Doc/library/types.rst:74 +msgid "Resolve MRO entries dynamically as specified by :pep:`560`." +msgstr "" + +#: ../Doc/library/types.rst:76 +msgid "" +"This function looks for items in *bases* that are not instances of :class:" +"`type`, and returns a tuple where each such object that has an " +"``__mro_entries__`` method is replaced with an unpacked result of calling " +"this method. If a *bases* item is an instance of :class:`type`, or it " +"doesn't have an ``__mro_entries__`` method, then it is included in the " +"return tuple unchanged." +msgstr "" + +#: ../Doc/library/types.rst:87 +msgid ":pep:`560` - Core support for typing module and generic types" +msgstr "" +":pep:`560` — Gestion de base pour les types modules et les types génériques" + +#: ../Doc/library/types.rst:91 +msgid "Standard Interpreter Types" +msgstr "" + +#: ../Doc/library/types.rst:93 +msgid "" +"This module provides names for many of the types that are required to " +"implement a Python interpreter. It deliberately avoids including some of the " +"types that arise only incidentally during processing such as the " +"``listiterator`` type." +msgstr "" + +#: ../Doc/library/types.rst:98 +msgid "" +"Typical use of these names is for :func:`isinstance` or :func:`issubclass` " +"checks." +msgstr "" + +#: ../Doc/library/types.rst:101 +msgid "Standard names are defined for the following types:" +msgstr "" + +#: ../Doc/library/types.rst:106 +msgid "" +"The type of user-defined functions and functions created by :keyword:" +"`lambda` expressions." +msgstr "" + +#: ../Doc/library/types.rst:112 +msgid "" +"The type of :term:`generator`-iterator objects, created by generator " +"functions." +msgstr "" + +#: ../Doc/library/types.rst:118 +msgid "" +"The type of :term:`coroutine` objects, created by :keyword:`async def` " +"functions." +msgstr "" + +#: ../Doc/library/types.rst:126 +msgid "" +"The type of :term:`asynchronous generator`-iterator objects, created by " +"asynchronous generator functions." +msgstr "" + +#: ../Doc/library/types.rst:136 +msgid "The type for code objects such as returned by :func:`compile`." +msgstr "" + +#: ../Doc/library/types.rst:141 +msgid "The type of methods of user-defined class instances." +msgstr "" + +#: ../Doc/library/types.rst:147 +msgid "" +"The type of built-in functions like :func:`len` or :func:`sys.exit`, and " +"methods of built-in classes. (Here, the term \"built-in\" means \"written " +"in C\".)" +msgstr "" + +#: ../Doc/library/types.rst:154 +msgid "" +"The type of methods of some built-in data types and base classes such as :" +"meth:`object.__init__` or :meth:`object.__lt__`." +msgstr "" + +#: ../Doc/library/types.rst:162 +msgid "" +"The type of *bound* methods of some built-in data types and base classes. " +"For example it is the type of :code:`object().__str__`." +msgstr "" + +#: ../Doc/library/types.rst:170 +msgid "" +"The type of methods of some built-in data types such as :meth:`str.join`." +msgstr "" + +#: ../Doc/library/types.rst:177 +msgid "" +"The type of *unbound* class methods of some built-in data types such as " +"``dict.__dict__['fromkeys']``." +msgstr "" + +#: ../Doc/library/types.rst:185 +msgid "" +"The type of :term:`modules `. Constructor takes the name of the " +"module to be created and optionally its :term:`docstring`." +msgstr "" + +#: ../Doc/library/types.rst:189 +msgid "" +"Use :func:`importlib.util.module_from_spec` to create a new module if you " +"wish to set the various import-controlled attributes." +msgstr "" + +#: ../Doc/library/types.rst:194 +msgid "The :term:`docstring` of the module. Defaults to ``None``." +msgstr "" + +#: ../Doc/library/types.rst:198 +msgid "The :term:`loader` which loaded the module. Defaults to ``None``." +msgstr "" + +#: ../Doc/library/types.rst:200 ../Doc/library/types.rst:214 +msgid "Defaults to ``None``. Previously the attribute was optional." +msgstr "" + +#: ../Doc/library/types.rst:205 +msgid "The name of the module." +msgstr "" + +#: ../Doc/library/types.rst:209 +msgid "" +"Which :term:`package` a module belongs to. If the module is top-level (i.e. " +"not a part of any specific package) then the attribute should be set to " +"``''``, else it should be set to the name of the package (which can be :attr:" +"`__name__` if the module is a package itself). Defaults to ``None``." +msgstr "" + +#: ../Doc/library/types.rst:220 +msgid "The type of traceback objects such as found in ``sys.exc_info()[2]``." +msgstr "" + +#: ../Doc/library/types.rst:222 +msgid "" +"See :ref:`the language reference ` for details of the " +"available attributes and operations, and guidance on creating tracebacks " +"dynamically." +msgstr "" + +#: ../Doc/library/types.rst:229 +msgid "" +"The type of frame objects such as found in ``tb.tb_frame`` if ``tb`` is a " +"traceback object." +msgstr "" + +#: ../Doc/library/types.rst:232 +msgid "" +"See :ref:`the language reference ` for details of the " +"available attributes and operations." +msgstr "" + +#: ../Doc/library/types.rst:238 +msgid "" +"The type of objects defined in extension modules with ``PyGetSetDef``, such " +"as ``FrameType.f_locals`` or ``array.array.typecode``. This type is used as " +"descriptor for object attributes; it has the same purpose as the :class:" +"`property` type, but for classes defined in extension modules." +msgstr "" + +#: ../Doc/library/types.rst:246 +msgid "" +"The type of objects defined in extension modules with ``PyMemberDef``, such " +"as ``datetime.timedelta.days``. This type is used as descriptor for simple " +"C data members which use standard conversion functions; it has the same " +"purpose as the :class:`property` type, but for classes defined in extension " +"modules." +msgstr "" + +#: ../Doc/library/types.rst:253 +msgid "" +"In other implementations of Python, this type may be identical to " +"``GetSetDescriptorType``." +msgstr "" + +#: ../Doc/library/types.rst:258 +msgid "" +"Read-only proxy of a mapping. It provides a dynamic view on the mapping's " +"entries, which means that when the mapping changes, the view reflects these " +"changes." +msgstr "" + +#: ../Doc/library/types.rst:266 +msgid "" +"Return ``True`` if the underlying mapping has a key *key*, else ``False``." +msgstr "" + +#: ../Doc/library/types.rst:271 +msgid "" +"Return the item of the underlying mapping with key *key*. Raises a :exc:" +"`KeyError` if *key* is not in the underlying mapping." +msgstr "" + +#: ../Doc/library/types.rst:276 +msgid "" +"Return an iterator over the keys of the underlying mapping. This is a " +"shortcut for ``iter(proxy.keys())``." +msgstr "" + +#: ../Doc/library/types.rst:281 +msgid "Return the number of items in the underlying mapping." +msgstr "" + +#: ../Doc/library/types.rst:285 +msgid "Return a shallow copy of the underlying mapping." +msgstr "" + +#: ../Doc/library/types.rst:289 +msgid "" +"Return the value for *key* if *key* is in the underlying mapping, else " +"*default*. If *default* is not given, it defaults to ``None``, so that this " +"method never raises a :exc:`KeyError`." +msgstr "" + +#: ../Doc/library/types.rst:295 +msgid "" +"Return a new view of the underlying mapping's items (``(key, value)`` pairs)." +msgstr "" + +#: ../Doc/library/types.rst:300 +msgid "Return a new view of the underlying mapping's keys." +msgstr "" + +#: ../Doc/library/types.rst:304 +msgid "Return a new view of the underlying mapping's values." +msgstr "" + +#: ../Doc/library/types.rst:308 +msgid "Additional Utility Classes and Functions" +msgstr "" + +#: ../Doc/library/types.rst:312 +msgid "" +"A simple :class:`object` subclass that provides attribute access to its " +"namespace, as well as a meaningful repr." +msgstr "" + +#: ../Doc/library/types.rst:315 +msgid "" +"Unlike :class:`object`, with ``SimpleNamespace`` you can add and remove " +"attributes. If a ``SimpleNamespace`` object is initialized with keyword " +"arguments, those are directly added to the underlying namespace." +msgstr "" + +#: ../Doc/library/types.rst:319 +msgid "The type is roughly equivalent to the following code::" +msgstr "" + +#: ../Doc/library/types.rst:333 +msgid "" +"``SimpleNamespace`` may be useful as a replacement for ``class NS: pass``. " +"However, for a structured record type use :func:`~collections.namedtuple` " +"instead." +msgstr "" + +#: ../Doc/library/types.rst:342 +msgid "Route attribute access on a class to __getattr__." +msgstr "" + +#: ../Doc/library/types.rst:344 +msgid "" +"This is a descriptor, used to define attributes that act differently when " +"accessed through an instance and through a class. Instance access remains " +"normal, but access to an attribute through a class will be routed to the " +"class's __getattr__ method; this is done by raising AttributeError." +msgstr "" + +#: ../Doc/library/types.rst:349 +msgid "" +"This allows one to have properties active on an instance, and have virtual " +"attributes on the class with the same name (see Enum for an example)." +msgstr "" + +#: ../Doc/library/types.rst:356 +msgid "Coroutine Utility Functions" +msgstr "" + +#: ../Doc/library/types.rst:360 +msgid "" +"This function transforms a :term:`generator` function into a :term:" +"`coroutine function` which returns a generator-based coroutine. The " +"generator-based coroutine is still a :term:`generator iterator`, but is also " +"considered to be a :term:`coroutine` object and is :term:`awaitable`. " +"However, it may not necessarily implement the :meth:`__await__` method." +msgstr "" + +#: ../Doc/library/types.rst:367 +msgid "If *gen_func* is a generator function, it will be modified in-place." +msgstr "" + +#: ../Doc/library/types.rst:369 +msgid "" +"If *gen_func* is not a generator function, it will be wrapped. If it returns " +"an instance of :class:`collections.abc.Generator`, the instance will be " +"wrapped in an *awaitable* proxy object. All other types of objects will be " +"returned as is." +msgstr "" diff --git a/library/typing.po b/library/typing.po new file mode 100644 index 000000000..3735711ca --- /dev/null +++ b/library/typing.po @@ -0,0 +1,1280 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/typing.rst:2 +msgid ":mod:`typing` --- Support for type hints" +msgstr ":mod:`typing` — Prise en charge des annotations de type" + +#: ../Doc/library/typing.rst:9 +msgid "**Source code:** :source:`Lib/typing.py`" +msgstr "**Code source :** :source:`Lib/typing.py`" + +#: ../Doc/library/typing.rst:13 +msgid "" +"The typing module has been included in the standard library on a :term:" +"`provisional basis `. New features might be added and API " +"may change even between minor releases if deemed necessary by the core " +"developers." +msgstr "" + +#: ../Doc/library/typing.rst:20 +msgid "" +"This module supports type hints as specified by :pep:`484` and :pep:`526`. " +"The most fundamental support consists of the types :data:`Any`, :data:" +"`Union`, :data:`Tuple`, :data:`Callable`, :class:`TypeVar`, and :class:" +"`Generic`. For full specification please see :pep:`484`. For a simplified " +"introduction to type hints see :pep:`483`." +msgstr "" + +#: ../Doc/library/typing.rst:27 +msgid "" +"The function below takes and returns a string and is annotated as follows::" +msgstr "" +"La fonction ci-dessous prend et renvoie une chaîne de caractères, et est " +"annotée comme suit ::" + +#: ../Doc/library/typing.rst:32 +msgid "" +"In the function ``greeting``, the argument ``name`` is expected to be of " +"type :class:`str` and the return type :class:`str`. Subtypes are accepted as " +"arguments." +msgstr "" +"La fonction ``greeting`` s'attend à ce que l'argument ``name`` soit de type :" +"class:`str` et le type de retour :class:`str`. Les sous-types sont acceptés " +"comme arguments." + +#: ../Doc/library/typing.rst:37 +msgid "Type aliases" +msgstr "Alias de type" + +#: ../Doc/library/typing.rst:39 +msgid "" +"A type alias is defined by assigning the type to the alias. In this example, " +"``Vector`` and ``List[float]`` will be treated as interchangeable synonyms::" +msgstr "" + +#: ../Doc/library/typing.rst:51 +msgid "" +"Type aliases are useful for simplifying complex type signatures. For " +"example::" +msgstr "" +"Les alias de type sont utiles pour simplifier les signatures complexes. Par " +"exemple ::" + +#: ../Doc/library/typing.rst:69 +msgid "" +"Note that ``None`` as a type hint is a special case and is replaced by " +"``type(None)``." +msgstr "" +"Notez que ``None`` comme indication de type est un cas particulier et est " +"remplacé par ``type(None)``." + +#: ../Doc/library/typing.rst:75 +msgid "NewType" +msgstr "*NewType*" + +#: ../Doc/library/typing.rst:77 +msgid "Use the :func:`NewType` helper function to create distinct types::" +msgstr "" +"Aidez-vous de la fonction :func:`NewType` pour créer des types distincts ::" + +#: ../Doc/library/typing.rst:84 +msgid "" +"The static type checker will treat the new type as if it were a subclass of " +"the original type. This is useful in helping catch logical errors::" +msgstr "" +"Le vérificateur de type statique traite le nouveau type comme s'il " +"s'agissait d'une sous-classe du type original. C'est utile pour aider à " +"détecter les erreurs logiques ::" + +#: ../Doc/library/typing.rst:96 +msgid "" +"You may still perform all ``int`` operations on a variable of type " +"``UserId``, but the result will always be of type ``int``. This lets you " +"pass in a ``UserId`` wherever an ``int`` might be expected, but will prevent " +"you from accidentally creating a ``UserId`` in an invalid way::" +msgstr "" +"Vous pouvez toujours effectuer toutes les opérations applicables à un entier " +"(type ``int``) sur une variable de type ``UserId``, mais le résultat sera " +"toujours de type ``int``. Ceci vous permet de passer un ``UserId`` partout " +"où un ``int`` est attendu, mais vous empêche de créer accidentellement un " +"``UserId`` d'une manière invalide ::" + +#: ../Doc/library/typing.rst:104 +msgid "" +"Note that these checks are enforced only by the static type checker. At " +"runtime the statement ``Derived = NewType('Derived', Base)`` will make " +"``Derived`` a function that immediately returns whatever parameter you pass " +"it. That means the expression ``Derived(some_value)`` does not create a new " +"class or introduce any overhead beyond that of a regular function call." +msgstr "" + +#: ../Doc/library/typing.rst:110 +msgid "" +"More precisely, the expression ``some_value is Derived(some_value)`` is " +"always true at runtime." +msgstr "" +"Plus précisément, l'expression ``some_value is Derived(some_value)`` est " +"toujours vraie au moment de l'exécution." + +#: ../Doc/library/typing.rst:113 +msgid "" +"This also means that it is not possible to create a subtype of ``Derived`` " +"since it is an identity function at runtime, not an actual type::" +msgstr "" +"Cela signifie également qu'il n'est pas possible de créer un sous-type de " +"``Derived`` puisqu'il s'agit d'une fonction d'identité au moment de " +"l'exécution, pas d'un type réel ::" + +#: ../Doc/library/typing.rst:123 +msgid "" +"However, it is possible to create a :func:`NewType` based on a 'derived' " +"``NewType``::" +msgstr "" +"Cependant, il est possible de créer un :func:`NewType` basé sur un " +"``NewType`` « dérivé » ::" + +#: ../Doc/library/typing.rst:131 +msgid "and typechecking for ``ProUserId`` will work as expected." +msgstr "et la vérification de type pour ``ProUserId`` fonctionne comme prévu." + +#: ../Doc/library/typing.rst:133 +msgid "See :pep:`484` for more details." +msgstr "Voir la :pep:`484` pour plus de détails." + +#: ../Doc/library/typing.rst:137 +msgid "" +"Recall that the use of a type alias declares two types to be *equivalent* to " +"one another. Doing ``Alias = Original`` will make the static type checker " +"treat ``Alias`` as being *exactly equivalent* to ``Original`` in all cases. " +"This is useful when you want to simplify complex type signatures." +msgstr "" +"Rappelons que l'utilisation d'un alias de type déclare que deux types sont " +"*équivalents* l'un à l'autre. Écrire ``Alias = Original`` fait que le " +"vérificateur de type statique traite ``Alias`` comme étant *exactement " +"équivalent* à ``Original`` dans tous les cas. C'est utile lorsque vous " +"voulez simplifier des signatures complexes." + +#: ../Doc/library/typing.rst:142 +msgid "" +"In contrast, ``NewType`` declares one type to be a *subtype* of another. " +"Doing ``Derived = NewType('Derived', Original)`` will make the static type " +"checker treat ``Derived`` as a *subclass* of ``Original``, which means a " +"value of type ``Original`` cannot be used in places where a value of type " +"``Derived`` is expected. This is useful when you want to prevent logic " +"errors with minimal runtime cost." +msgstr "" +"En revanche, ``NewType`` déclare qu'un type est un *sous-type* d'un autre. " +"Écrire ``Derived = NewType('Derived', Original)`` fait en sorte que le " +"vérificateur de type statique traite ``Derived`` comme une *sous-classe* de " +"``Original``, ce qui signifie qu'une valeur de type ``Original`` ne peut " +"être utilisée dans les endroits où une valeur de type ``Derived`` est " +"prévue. C'est utile lorsque vous voulez éviter les erreurs logiques avec un " +"coût d'exécution minimal." + +#: ../Doc/library/typing.rst:152 +msgid "Callable" +msgstr "Appelable" + +#: ../Doc/library/typing.rst:154 +msgid "" +"Frameworks expecting callback functions of specific signatures might be type " +"hinted using ``Callable[[Arg1Type, Arg2Type], ReturnType]``." +msgstr "" +"Les cadriciels (*frameworks* en anglais) qui attendent des fonctions de " +"rappel ayant des signatures spécifiques peuvent être typés en utilisant " +"``Callable[[Arg1Type, Arg2Type], ReturnType]``." + +#: ../Doc/library/typing.rst:157 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/library/typing.rst:168 +msgid "" +"It is possible to declare the return type of a callable without specifying " +"the call signature by substituting a literal ellipsis for the list of " +"arguments in the type hint: ``Callable[..., ReturnType]``." +msgstr "" +"Il est possible de déclarer le type de retour d'un appelable sans spécifier " +"la signature de l'appel en indiquant des points de suspension à la liste des " +"arguments dans l'indice de type : ``Callable[..., ReturnType]``." + +#: ../Doc/library/typing.rst:175 +msgid "Generics" +msgstr "Génériques" + +#: ../Doc/library/typing.rst:177 +msgid "" +"Since type information about objects kept in containers cannot be statically " +"inferred in a generic way, abstract base classes have been extended to " +"support subscription to denote expected types for container elements." +msgstr "" +"Comme les informations de type sur les objets conservés dans des conteneurs " +"ne peuvent pas être déduites statiquement de manière générique, les classes " +"de base abstraites ont été étendues pour prendre en charge la sélection " +"(*subscription* en anglais) et indiquer les types attendus pour les éléments " +"de conteneur." + +#: ../Doc/library/typing.rst:188 +msgid "" +"Generics can be parameterized by using a new factory available in typing " +"called :class:`TypeVar`." +msgstr "" +"Les génériques peuvent être paramétrés en utilisant une nouvelle fabrique " +"(au sens des patrons de conception) disponible en tapant :class:`TypeVar`." + +#: ../Doc/library/typing.rst:202 +msgid "User-defined generic types" +msgstr "Types génériques définis par l'utilisateur" + +#: ../Doc/library/typing.rst:204 +msgid "A user-defined class can be defined as a generic class." +msgstr "" +"Une classe définie par l'utilisateur peut être définie comme une classe " +"générique." + +#: ../Doc/library/typing.rst:230 +msgid "" +"``Generic[T]`` as a base class defines that the class ``LoggedVar`` takes a " +"single type parameter ``T`` . This also makes ``T`` valid as a type within " +"the class body." +msgstr "" +"``Generic[T]`` en tant que classe de base définit que la classe " +"``LoggedVar`` prend un paramètre de type unique ``T``. Ceci rend également " +"``T`` valide en tant que type dans le corps de la classe." + +#: ../Doc/library/typing.rst:234 +msgid "" +"The :class:`Generic` base class uses a metaclass that defines :meth:" +"`__getitem__` so that ``LoggedVar[t]`` is valid as a type::" +msgstr "" + +#: ../Doc/library/typing.rst:243 +msgid "" +"A generic type can have any number of type variables, and type variables may " +"be constrained::" +msgstr "" +"Un type générique peut avoir un nombre quelconque de variables de type et " +"vous pouvez fixer des contraintes sur les variables de type ::" + +#: ../Doc/library/typing.rst:255 +msgid "" +"Each type variable argument to :class:`Generic` must be distinct. This is " +"thus invalid::" +msgstr "" +"Chaque argument de variable de type :class:`Generic` doit être distinct. " +"Ceci n'est donc pas valable ::" + +#: ../Doc/library/typing.rst:266 +msgid "You can use multiple inheritance with :class:`Generic`::" +msgstr "Vous pouvez utiliser l'héritage multiple avec :class:`Generic` ::" + +#: ../Doc/library/typing.rst:275 +msgid "" +"When inheriting from generic classes, some type variables could be fixed::" +msgstr "" +"Lors de l'héritage de classes génériques, certaines variables de type " +"peuvent être corrigées ::" + +#: ../Doc/library/typing.rst:284 +msgid "In this case ``MyDict`` has a single parameter, ``T``." +msgstr "Dans ce cas, ``MyDict`` a un seul paramètre, ``T``." + +#: ../Doc/library/typing.rst:286 +msgid "" +"Using a generic class without specifying type parameters assumes :data:`Any` " +"for each position. In the following example, ``MyIterable`` is not generic " +"but implicitly inherits from ``Iterable[Any]``::" +msgstr "" +"L'utilisation d'une classe générique sans spécifier de paramètres de type " +"suppose :data:`Any` pour chaque position. Dans l'exemple suivant, " +"``MyIterable`` n'est pas générique mais hérite implicitement de " +"``Iterable[Any]`` ::" + +#: ../Doc/library/typing.rst:294 +msgid "User defined generic type aliases are also supported. Examples::" +msgstr "" +"Les alias de type générique définis par l'utilisateur sont également pris en " +"charge. Exemples ::" + +#: ../Doc/library/typing.rst:310 +msgid "" +"The metaclass used by :class:`Generic` is a subclass of :class:`abc." +"ABCMeta`. A generic class can be an ABC by including abstract methods or " +"properties, and generic classes can also have ABCs as base classes without a " +"metaclass conflict. Generic metaclasses are not supported. The outcome of " +"parameterizing generics is cached, and most types in the typing module are " +"hashable and comparable for equality." +msgstr "" + +#: ../Doc/library/typing.rst:319 +msgid "The :data:`Any` type" +msgstr "Le type :data:`Any`" + +#: ../Doc/library/typing.rst:321 +msgid "" +"A special kind of type is :data:`Any`. A static type checker will treat " +"every type as being compatible with :data:`Any` and :data:`Any` as being " +"compatible with every type." +msgstr "" +"Un type particulier est :data:`Any`. Un vérificateur de type statique traite " +"chaque type comme étant compatible avec :data:`Any` et :data:`Any` comme " +"étant compatible avec chaque type." + +#: ../Doc/library/typing.rst:325 +msgid "" +"This means that it is possible to perform any operation or method call on a " +"value of type on :data:`Any` and assign it to any variable::" +msgstr "" + +#: ../Doc/library/typing.rst:343 +msgid "" +"Notice that no typechecking is performed when assigning a value of type :" +"data:`Any` to a more precise type. For example, the static type checker did " +"not report an error when assigning ``a`` to ``s`` even though ``s`` was " +"declared to be of type :class:`str` and receives an :class:`int` value at " +"runtime!" +msgstr "" +"Notez qu'aucun contrôle de typage n'est effectué lors de l'affectation d'une " +"valeur de type :data:`Any` à un type plus précis. Par exemple, le " +"vérificateur de type statique ne signale pas d'erreur lors de l'affectation " +"de ``a`` à ``s`` même si ``s`` était déclaré être de type :class:`str` et " +"reçoit une valeur :class:`int` au moment de son exécution !" + +#: ../Doc/library/typing.rst:349 +msgid "" +"Furthermore, all functions without a return type or parameter types will " +"implicitly default to using :data:`Any`::" +msgstr "" +"De plus, toutes les fonctions sans type de retour ni type de paramètre sont " +"considérées comme utilisant :data:`Any` implicitement par défaut ::" + +#: ../Doc/library/typing.rst:362 +msgid "" +"This behavior allows :data:`Any` to be used as an *escape hatch* when you " +"need to mix dynamically and statically typed code." +msgstr "" +"Ce comportement permet à :data:`Any` d'être utilisé comme succédané lorsque " +"vous avez besoin de mélanger du code typé dynamiquement et statiquement." + +#: ../Doc/library/typing.rst:365 +msgid "" +"Contrast the behavior of :data:`Any` with the behavior of :class:`object`. " +"Similar to :data:`Any`, every type is a subtype of :class:`object`. However, " +"unlike :data:`Any`, the reverse is not true: :class:`object` is *not* a " +"subtype of every other type." +msgstr "" +"Comparons le comportement de :data:`Any` avec celui de :class:`object`. De " +"la même manière que pour :data:`Any`, chaque type est un sous-type de :class:" +"`object`. Cependant, contrairement à :data:`Any`, l'inverse n'est pas " +"vrai : :class:`object` n'est *pas* un sous-type de chaque autre type." + +#: ../Doc/library/typing.rst:370 +msgid "" +"That means when the type of a value is :class:`object`, a type checker will " +"reject almost all operations on it, and assigning it to a variable (or using " +"it as a return value) of a more specialized type is a type error. For " +"example::" +msgstr "" +"Cela signifie que lorsque le type d'une valeur est :class:`object`, un " +"vérificateur de type rejette presque toutes les opérations sur celle-ci, et " +"l'affecter à une variable (ou l'utiliser comme une valeur de retour) d'un " +"type plus spécialisé est une erreur de typage. Par exemple ::" + +#: ../Doc/library/typing.rst:392 +msgid "" +"Use :class:`object` to indicate that a value could be any type in a typesafe " +"manner. Use :data:`Any` to indicate that a value is dynamically typed." +msgstr "" +"Utilisez :class:`object` pour indiquer qu'une valeur peut être de n'importe " +"quel type de manière sûre. Utiliser :data:`Any` pour indiquer qu'une valeur " +"est typée dynamiquement." + +#: ../Doc/library/typing.rst:396 +msgid "Classes, functions, and decorators" +msgstr "" + +#: ../Doc/library/typing.rst:398 +msgid "The module defines the following classes, functions and decorators:" +msgstr "" + +#: ../Doc/library/typing.rst:402 +msgid "Type variable." +msgstr "Variables de type." + +#: ../Doc/library/typing.rst:404 ../Doc/library/typing.rst:833 +msgid "Usage::" +msgstr "Utilisation ::" + +#: ../Doc/library/typing.rst:409 +msgid "" +"Type variables exist primarily for the benefit of static type checkers. " +"They serve as the parameters for generic types as well as for generic " +"function definitions. See class Generic for more information on generic " +"types. Generic functions work as follows::" +msgstr "" +"Les variables de type existent principalement dans l'intérêt des contrôleurs " +"de type statiques. Elles servent de paramètres pour les types génériques " +"ainsi que pour les définitions de fonctions génériques. Voir la classe " +"``Generic`` pour plus d'informations sur les types génériques. Les fonctions " +"génériques fonctionnent comme suit ::" + +#: ../Doc/library/typing.rst:422 +msgid "" +"The latter example's signature is essentially the overloading of ``(str, " +"str) -> str`` and ``(bytes, bytes) -> bytes``. Also note that if the " +"arguments are instances of some subclass of :class:`str`, the return type is " +"still plain :class:`str`." +msgstr "" +"La signature de ce dernier exemple est essentiellement la surcharge de " +"``(str, str) -> str`` et ``(bytes, bytes) -> bytes``. Notez également que si " +"les arguments sont des instances d'une sous-classe de la classe :class:" +"`str`, le type de retour est toujours la classe :class:`str`." + +#: ../Doc/library/typing.rst:427 +msgid "" +"At runtime, ``isinstance(x, T)`` will raise :exc:`TypeError`. In general, :" +"func:`isinstance` and :func:`issubclass` should not be used with types." +msgstr "" +"Au moment de l'exécution, ``isinstance(x, T)`` va lever :exc:`TypeError`. En " +"général, :func:`isinstance` et :func:`issubclass` ne devraient pas être " +"utilisés avec les types." + +#: ../Doc/library/typing.rst:430 +msgid "" +"Type variables may be marked covariant or contravariant by passing " +"``covariant=True`` or ``contravariant=True``. See :pep:`484` for more " +"details. By default type variables are invariant. Alternatively, a type " +"variable may specify an upper bound using ``bound=``. This means that " +"an actual type substituted (explicitly or implicitly) for the type variable " +"must be a subclass of the boundary type, see :pep:`484`." +msgstr "" +"Les variables de type peuvent être marquées covariantes ou contravariantes " +"en passant ``covariant=True`` ou ``contravariant=True``. Voir la :pep:`484` " +"pour plus de détails. Par défaut, les variables de type sont invariantes. " +"Sinon, une variable de type peut spécifier une limite supérieure en " +"utilisant ``bound=``. Cela signifie qu'un type réel substitué " +"(explicitement ou implicitement) à la variable type doit être une sous-" +"classe du type frontière (*boundary* en anglais), voir la :pep:`484`." + +#: ../Doc/library/typing.rst:440 +msgid "Abstract base class for generic types." +msgstr "Classe de base abstraite pour les types génériques." + +#: ../Doc/library/typing.rst:442 +msgid "" +"A generic type is typically declared by inheriting from an instantiation of " +"this class with one or more type variables. For example, a generic mapping " +"type might be defined as::" +msgstr "" +"Un type générique est généralement déclaré en héritant d'une instanciation " +"de cette classe avec une ou plusieurs variables de type. Par exemple, un " +"type de correspondance générique peut être défini comme suit ::" + +#: ../Doc/library/typing.rst:451 +msgid "This class can then be used as follows::" +msgstr "Cette classe peut alors être utilisée comme suit ::" + +#: ../Doc/library/typing.rst:464 +msgid "" +"A variable annotated with ``C`` may accept a value of type ``C``. In " +"contrast, a variable annotated with ``Type[C]`` may accept values that are " +"classes themselves -- specifically, it will accept the *class object* of " +"``C``. For example::" +msgstr "" +"Une variable annotée de ``C`` peut accepter une valeur de type ``C``. En " +"revanche, une variable annotée avec ``Type[C]`` peut accepter des valeurs " +"qui sont elles-mêmes des classes — plus précisément, elle accepte l'objet " +"*class* de ``C``. Par exemple ::" + +#: ../Doc/library/typing.rst:473 +msgid "Note that ``Type[C]`` is covariant::" +msgstr "Notez que ``Type[C]`` est covariant ::" + +#: ../Doc/library/typing.rst:485 +msgid "" +"The fact that ``Type[C]`` is covariant implies that all subclasses of ``C`` " +"should implement the same constructor signature and class method signatures " +"as ``C``. The type checker should flag violations of this, but should also " +"allow constructor calls in subclasses that match the constructor calls in " +"the indicated base class. How the type checker is required to handle this " +"particular case may change in future revisions of :pep:`484`." +msgstr "" +"Le fait que ``Type[C]`` soit covariant implique que toutes les sous-classes " +"de ``C`` doivent implémenter la même signature de constructeur et les " +"signatures de méthode de classe que ``C``. Le vérificateur de type doit " +"signaler les manquements à cette règle. Il doit également autoriser les " +"appels du constructeur dans les sous-classes qui correspondent aux appels du " +"constructeur dans la classe de base indiquée. La façon dont le vérificateur " +"de type est tenu de traiter ce cas particulier peut changer dans les futures " +"révisions de :pep:`484`." + +#: ../Doc/library/typing.rst:493 +msgid "" +"The only legal parameters for :class:`Type` are classes, :data:`Any`, :ref:" +"`type variables `, and unions of any of these types. For example::" +msgstr "" +"Les seuls paramètres légitimes pour :class:`Type` sont les classes, :data:" +"`Any`, :ref:`type variables `, et les unions de ces types. Par " +"exemple ::" + +#: ../Doc/library/typing.rst:499 +msgid "" +"``Type[Any]`` is equivalent to ``Type`` which in turn is equivalent to " +"``type``, which is the root of Python's metaclass hierarchy." +msgstr "" +"``Type[Any]`` est équivalent à ``Type`` qui à son tour est équivalent à " +"``type``, qui est la racine de la hiérarchie des métaclasses de Python." + +#: ../Doc/library/typing.rst:506 +msgid "A generic version of :class:`collections.abc.Iterable`." +msgstr "Une version générique de :class:`collections.abc.Iterable`." + +#: ../Doc/library/typing.rst:510 +msgid "A generic version of :class:`collections.abc.Iterator`." +msgstr "Une version générique de :class:`collections.abc.Iterator`." + +#: ../Doc/library/typing.rst:514 +msgid "A generic version of :class:`collections.abc.Reversible`." +msgstr "Une version générique de :class:`collections.abc.Reversible`." + +#: ../Doc/library/typing.rst:518 +msgid "An ABC with one abstract method ``__int__``." +msgstr "Une ABC avec une méthode abstraite ``__int__``." + +#: ../Doc/library/typing.rst:522 +msgid "An ABC with one abstract method ``__float__``." +msgstr "Une ABC avec une méthode abstraite ``__float__``." + +#: ../Doc/library/typing.rst:526 +msgid "An ABC with one abstract method ``__complex__``." +msgstr "Une ABC avec une méthode abstraite ``__complex__``." + +#: ../Doc/library/typing.rst:530 +msgid "An ABC with one abstract method ``__bytes__``." +msgstr "Une ABC avec une méthode abstraite ``__bytes__``." + +#: ../Doc/library/typing.rst:534 +msgid "" +"An ABC with one abstract method ``__abs__`` that is covariant in its return " +"type." +msgstr "" +"Une ABC avec une méthode abstraite ``__abs__`` qui est covariante dans son " +"type de retour." + +#: ../Doc/library/typing.rst:539 +msgid "" +"An ABC with one abstract method ``__round__`` that is covariant in its " +"return type." +msgstr "" +"Une ABC avec une méthode abstraite ``__round__`` qui est covariante dans son " +"type de retour." + +#: ../Doc/library/typing.rst:544 +msgid "A generic version of :class:`collections.abc.Container`." +msgstr "Une version générique de :class:`collections.abc.Container`." + +#: ../Doc/library/typing.rst:548 +msgid "An alias to :class:`collections.abc.Hashable`" +msgstr "Un alias pour :class:`collections.abc.Hashable`" + +#: ../Doc/library/typing.rst:552 +msgid "An alias to :class:`collections.abc.Sized`" +msgstr "Un alias pour :class:`collections.abc.Sized`" + +#: ../Doc/library/typing.rst:556 +msgid "A generic version of :class:`collections.abc.Collection`" +msgstr "Une version générique de :class:`collections.abc.Collection`" + +#: ../Doc/library/typing.rst:562 +msgid "A generic version of :class:`collections.abc.Set`." +msgstr "Une version générique de :class:`collections.abc.Set`." + +#: ../Doc/library/typing.rst:566 +msgid "A generic version of :class:`collections.abc.MutableSet`." +msgstr "Une version générique de :class:`collections.abc.MutableSet`." + +#: ../Doc/library/typing.rst:570 +msgid "" +"A generic version of :class:`collections.abc.Mapping`. This type can be used " +"as follows::" +msgstr "" +"Une version générique de :class:`collections.abc.Mapping`. Ce type peut être " +"utilisé comme suit ::" + +#: ../Doc/library/typing.rst:578 +msgid "A generic version of :class:`collections.abc.MutableMapping`." +msgstr "Une version générique de :class:`collections.abc.MutableMapping`." + +#: ../Doc/library/typing.rst:582 +msgid "A generic version of :class:`collections.abc.Sequence`." +msgstr "Une version générique de :class:`collections.abc.Sequence`." + +#: ../Doc/library/typing.rst:586 +msgid "A generic version of :class:`collections.abc.MutableSequence`." +msgstr "Une version générique de :class:`collections.abc.MutableSequence`." + +#: ../Doc/library/typing.rst:590 +msgid "A generic version of :class:`collections.abc.ByteString`." +msgstr "Une version générique de :class:`collections.abc.ByteString`." + +#: ../Doc/library/typing.rst:592 +msgid "" +"This type represents the types :class:`bytes`, :class:`bytearray`, and :" +"class:`memoryview`." +msgstr "" + +#: ../Doc/library/typing.rst:595 +msgid "" +"As a shorthand for this type, :class:`bytes` can be used to annotate " +"arguments of any of the types mentioned above." +msgstr "" +"Comme abréviation pour ce type, :class:`bytes` peut être utilisé pour " +"annoter des arguments de n'importe quel type mentionné ci-dessus." + +#: ../Doc/library/typing.rst:600 +msgid "A generic version of :class:`collections.deque`." +msgstr "Une version générique de :class:`collections.deque`." + +#: ../Doc/library/typing.rst:607 +msgid "" +"Generic version of :class:`list`. Useful for annotating return types. To " +"annotate arguments it is preferred to use an abstract collection type such " +"as :class:`Sequence` or :class:`Iterable`." +msgstr "" +"Version générique de :class:`list`. Utile pour annoter les types de retour. " +"Pour annoter les arguments, il est préférable d'utiliser un type de " +"collection abstraite tel que :class:`Sequence` ou :class:`Iterable`." + +#: ../Doc/library/typing.rst:612 +msgid "This type may be used as follows::" +msgstr "Ce type peut être utilisé comme suit ::" + +#: ../Doc/library/typing.rst:624 +msgid "" +"A generic version of :class:`builtins.set `. Useful for annotating " +"return types. To annotate arguments it is preferred to use an abstract " +"collection type such as :class:`AbstractSet`." +msgstr "" +"Une version générique de :class:`builtins.set `. Utile pour annoter les " +"types de retour. Pour annoter les arguments, il est préférable d'utiliser un " +"type de collection abstraite tel que :class:`AbstractSet`." + +#: ../Doc/library/typing.rst:630 +msgid "A generic version of :class:`builtins.frozenset `." +msgstr "Une version générique de :class:`builtins.frozenset `." + +#: ../Doc/library/typing.rst:634 +msgid "A generic version of :class:`collections.abc.MappingView`." +msgstr "Une version générique de :class:`collections.abc.MappingView`." + +#: ../Doc/library/typing.rst:638 +msgid "A generic version of :class:`collections.abc.KeysView`." +msgstr "Une version générique de :class:`collections.abc.KeysView`." + +#: ../Doc/library/typing.rst:642 +msgid "A generic version of :class:`collections.abc.ItemsView`." +msgstr "Une version générique de :class:`collections.abc.ItemsView`." + +#: ../Doc/library/typing.rst:646 +msgid "A generic version of :class:`collections.abc.ValuesView`." +msgstr "Une version générique de :class:`collections.abc.ValuesView`." + +#: ../Doc/library/typing.rst:650 +msgid "A generic version of :class:`collections.abc.Awaitable`." +msgstr "Une version générique de :class:`collections.abc.Awaitable`." + +#: ../Doc/library/typing.rst:656 +msgid "" +"A generic version of :class:`collections.abc.Coroutine`. The variance and " +"order of type variables correspond to those of :class:`Generator`, for " +"example::" +msgstr "" +"Une version générique de :class:`collections.abc.Coroutine`. La variance et " +"l'ordre des variables de type correspondent à ceux de la classe :class:" +"`Generator`, par exemple ::" + +#: ../Doc/library/typing.rst:671 +msgid "A generic version of :class:`collections.abc.AsyncIterable`." +msgstr "Une version générique de :class:`collections.abc.AsyncIterable`." + +#: ../Doc/library/typing.rst:677 +msgid "A generic version of :class:`collections.abc.AsyncIterator`." +msgstr "Une version générique de :class:`collections.abc.AsyncIterator`." + +#: ../Doc/library/typing.rst:683 +msgid "A generic version of :class:`contextlib.AbstractContextManager`." +msgstr "Une version générique de :class:`contextlib.AbstractContextManager`." + +#: ../Doc/library/typing.rst:690 +msgid "A generic version of :class:`contextlib.AbstractAsyncContextManager`." +msgstr "" +"Une version générique de :class:`contextlib.AbstractAsyncContextManager`." + +#: ../Doc/library/typing.rst:697 +msgid "" +"A generic version of :class:`dict`. Useful for annotating return types. To " +"annotate arguments it is preferred to use an abstract collection type such " +"as :class:`Mapping`." +msgstr "" +"Une version générique de :class:`dict`. Utile pour annoter les types de " +"retour. Pour annoter les arguments, il est préférable d'utiliser un type de " +"collection abstraite tel que :class:`Mapping`." + +#: ../Doc/library/typing.rst:701 +msgid "This type can be used as follows::" +msgstr "Ce type peut être utilisé comme suit ::" + +#: ../Doc/library/typing.rst:708 +msgid "A generic version of :class:`collections.defaultdict`." +msgstr "Une version générique de :class:`collections.defaultdict`." + +#: ../Doc/library/typing.rst:714 +msgid "A generic version of :class:`collections.OrderedDict`." +msgstr "Une version générique de :class:`collections.OrderedDict`." + +#: ../Doc/library/typing.rst:720 +msgid "A generic version of :class:`collections.Counter`." +msgstr "Une version générique de :class:`collections.Counter`." + +#: ../Doc/library/typing.rst:727 +msgid "A generic version of :class:`collections.ChainMap`." +msgstr "Une version générique de :class:`collections.ChainMap`." + +#: ../Doc/library/typing.rst:734 +msgid "" +"A generator can be annotated by the generic type ``Generator[YieldType, " +"SendType, ReturnType]``. For example::" +msgstr "" +"Un générateur peut être annoté par le type générique ``Generator[YieldType, " +"SendType, ReturnType]``. Par exemple ::" + +#: ../Doc/library/typing.rst:743 +msgid "" +"Note that unlike many other generics in the typing module, the ``SendType`` " +"of :class:`Generator` behaves contravariantly, not covariantly or " +"invariantly." +msgstr "" +"Notez que contrairement à beaucoup d'autres génériques dans le module " +"*typing*, le ``SendType`` de :class:`Generator` se comporte de manière " +"contravariante, pas de manière covariante ou invariante." + +#: ../Doc/library/typing.rst:747 +msgid "" +"If your generator will only yield values, set the ``SendType`` and " +"``ReturnType`` to ``None``::" +msgstr "" +"Si votre générateur ne donne que des valeurs, réglez les paramètres " +"``SendType`` et ``ReturnType`` sur ``None`` ::" + +#: ../Doc/library/typing.rst:755 +msgid "" +"Alternatively, annotate your generator as having a return type of either " +"``Iterable[YieldType]`` or ``Iterator[YieldType]``::" +msgstr "" +"Alternativement, annotez votre générateur comme ayant un type de retour soit " +"``Iterable[YieldType]`` ou ``Iterator[YieldType]`` ::" + +#: ../Doc/library/typing.rst:765 +msgid "" +"An async generator can be annotated by the generic type " +"``AsyncGenerator[YieldType, SendType]``. For example::" +msgstr "" +"Un générateur asynchrone peut être annoté par le type générique " +"``AsyncGenerator[YieldType, SendType]``. Par exemple ::" + +#: ../Doc/library/typing.rst:774 +msgid "" +"Unlike normal generators, async generators cannot return a value, so there " +"is no ``ReturnType`` type parameter. As with :class:`Generator`, the " +"``SendType`` behaves contravariantly." +msgstr "" +"Contrairement aux générateurs normaux, les générateurs asynchrones ne " +"peuvent pas renvoyer une valeur, il n'y a donc pas de paramètre de type " +"``ReturnType``. Comme avec :class:`Generator`, le ``SendType`` se comporte " +"de manière contravariante." + +#: ../Doc/library/typing.rst:778 +msgid "" +"If your generator will only yield values, set the ``SendType`` to ``None``::" +msgstr "" +"Si votre générateur ne donne que des valeurs, réglez le paramètre " +"``SendType`` sur ``None`` ::" + +#: ../Doc/library/typing.rst:786 +msgid "" +"Alternatively, annotate your generator as having a return type of either " +"``AsyncIterable[YieldType]`` or ``AsyncIterator[YieldType]``::" +msgstr "" +"Alternativement, annotez votre générateur comme ayant un type de retour soit " +"``AsyncIterable[YieldType]`` ou ``AsyncIterator[YieldType]`` ::" + +#: ../Doc/library/typing.rst:798 +msgid "" +"``Text`` is an alias for ``str``. It is provided to supply a forward " +"compatible path for Python 2 code: in Python 2, ``Text`` is an alias for " +"``unicode``." +msgstr "" +"``Text`` est un alias pour ``str``. Il est fourni pour obtenir une " +"compatibilité ascendante du code Python 2 : en Python 2, ``Text`` est un " +"alias pour ``unicode``." + +#: ../Doc/library/typing.rst:802 +msgid "" +"Use ``Text`` to indicate that a value must contain a unicode string in a " +"manner that is compatible with both Python 2 and Python 3::" +msgstr "" +"Utilisez ``Text`` pour indiquer qu'une valeur doit contenir une chaîne " +"Unicode d'une manière compatible avec Python 2 et Python 3 ::" + +#: ../Doc/library/typing.rst:814 +msgid "" +"Generic type ``IO[AnyStr]`` and its subclasses ``TextIO(IO[str])`` and " +"``BinaryIO(IO[bytes])`` represent the types of I/O streams such as returned " +"by :func:`open`." +msgstr "" + +#: ../Doc/library/typing.rst:822 +msgid "" +"These type aliases correspond to the return types from :func:`re.compile` " +"and :func:`re.match`. These types (and the corresponding functions) are " +"generic in ``AnyStr`` and can be made specific by writing ``Pattern[str]``, " +"``Pattern[bytes]``, ``Match[str]``, or ``Match[bytes]``." +msgstr "" + +#: ../Doc/library/typing.rst:831 +msgid "Typed version of :func:`collections.namedtuple`." +msgstr "Version typée de :func:`collections.namedtuple`." + +#: ../Doc/library/typing.rst:839 +msgid "This is equivalent to::" +msgstr "C’est équivalent à ::" + +#: ../Doc/library/typing.rst:843 +msgid "" +"To give a field a default value, you can assign to it in the class body::" +msgstr "" +"Pour assigner une valeur par défaut à un champ, vous pouvez lui donner dans " +"le corps de classe ::" + +#: ../Doc/library/typing.rst:852 +msgid "" +"Fields with a default value must come after any fields without a default." +msgstr "" +"Les champs avec une valeur par défaut doivent venir après tous les champs " +"sans valeur par défaut." + +#: ../Doc/library/typing.rst:854 +msgid "" +"The resulting class has two extra attributes: ``_field_types``, giving a " +"dict mapping field names to types, and ``_field_defaults``, a dict mapping " +"field names to default values. (The field names are in the ``_fields`` " +"attribute, which is part of the namedtuple API.)" +msgstr "" + +#: ../Doc/library/typing.rst:859 +msgid "``NamedTuple`` subclasses can also have docstrings and methods::" +msgstr "" +"Les sous-classes de ``NamedTuple`` peuvent aussi avoir des *docstrings* et " +"des méthodes ::" + +#: ../Doc/library/typing.rst:869 +msgid "Backward-compatible usage::" +msgstr "Utilisation rétrocompatible ::" + +#: ../Doc/library/typing.rst:873 +msgid "Added support for :pep:`526` variable annotation syntax." +msgstr "" +"Ajout de la gestion de la syntaxe d'annotation variable de la :pep:`526`." + +#: ../Doc/library/typing.rst:876 +msgid "Added support for default values, methods, and docstrings." +msgstr "" +"Ajout de la prise en charge des valeurs par défaut, des méthodes et des " +"chaînes de caractères *docstrings*." + +#: ../Doc/library/typing.rst:881 +msgid "" +"A class used for internal typing representation of string forward " +"references. For example, ``List[\"SomeClass\"]`` is implicitly transformed " +"into ``List[ForwardRef(\"SomeClass\")]``. This class should not be " +"instantiated by a user, but may be used by introspection tools." +msgstr "" +"Une classe utilisée pour le typage interne de la représentation des " +"références directes des chaînes de caractères. Par exemple, " +"``Liste[\"SomeClass\"]`` est implicitement transformé en " +"``Liste[ForwardRef(\"SomeClass\")]``. Cette classe ne doit pas être " +"instanciée par un utilisateur, mais peut être utilisée par des outils " +"d'introspection." + +#: ../Doc/library/typing.rst:888 +msgid "" +"A helper function to indicate a distinct types to a typechecker, see :ref:" +"`distinct`. At runtime it returns a function that returns its argument. " +"Usage::" +msgstr "" + +#: ../Doc/library/typing.rst:899 +msgid "Cast a value to a type." +msgstr "Convertit une valeur en un type." + +#: ../Doc/library/typing.rst:901 +msgid "" +"This returns the value unchanged. To the type checker this signals that the " +"return value has the designated type, but at runtime we intentionally don't " +"check anything (we want this to be as fast as possible)." +msgstr "" +"Ceci renvoie la valeur inchangée. Pour le vérificateur de type, cela " +"signifie que la valeur de retour a le type désigné mais, à l'exécution, " +"intentionnellement, rien n'est vérifié (afin que cela soit aussi rapide que " +"possible)." + +#: ../Doc/library/typing.rst:908 +msgid "" +"Return a dictionary containing type hints for a function, method, module or " +"class object." +msgstr "" +"renvoie un dictionnaire contenant des indications de type pour une fonction, " +"une méthode, un module ou un objet de classe." + +#: ../Doc/library/typing.rst:911 +msgid "" +"This is often the same as ``obj.__annotations__``. In addition, forward " +"references encoded as string literals are handled by evaluating them in " +"``globals`` and ``locals`` namespaces. If necessary, ``Optional[t]`` is " +"added for function and method annotations if a default value equal to " +"``None`` is set. For a class ``C``, return a dictionary constructed by " +"merging all the ``__annotations__`` along ``C.__mro__`` in reverse order." +msgstr "" +"C'est souvent équivalent à ``obj.__annotations__``. De plus, les références " +"directes encodées sous forme de chaîne littérales sont traitées en les " +"évaluant dans les espaces de nommage ``globals`` et ``locals``. Si " +"nécessaire, ``Optional[t]`` est ajouté pour les annotations de fonction et " +"de méthode si une valeur par défaut égale à ``None`` est définie. Pour une " +"classe ``C``, renvoie un dictionnaire construit en fusionnant toutes les " +"``__annotations__`` en parcourant ``C.__mro__`` en ordre inverse." + +#: ../Doc/library/typing.rst:921 +msgid "" +"The ``@overload`` decorator allows describing functions and methods that " +"support multiple different combinations of argument types. A series of " +"``@overload``-decorated definitions must be followed by exactly one non-" +"``@overload``-decorated definition (for the same function/method). The " +"``@overload``-decorated definitions are for the benefit of the type checker " +"only, since they will be overwritten by the non-``@overload``-decorated " +"definition, while the latter is used at runtime but should be ignored by a " +"type checker. At runtime, calling a ``@overload``-decorated function " +"directly will raise :exc:`NotImplementedError`. An example of overload that " +"gives a more precise type than can be expressed using a union or a type " +"variable::" +msgstr "" +"Le décorateur ``@overload``` permet de décrire des fonctions et des méthodes " +"qui acceptent plusieurs combinaisons différentes de types d'arguments. Une " +"série de définitions décorées avec ``overload`` doit être suivie d'une seule " +"définition non décorée de ``overload`` (pour la même fonction/méthode). Les " +"définitions décorées de ``@overload`` ne sont destinées qu'au vérificateur " +"de type, puisqu'elles sont écrasées par la définition non décorée de " +"``@overload`` ; cette dernière, en revanche, est utilisée à l'exécution mais " +"qu'il convient que le vérificateur de type l'ignore. Lors de l'exécution, " +"l'appel direct d'une fonction décorée avec ``@overload`` lèvera :exc:" +"`NotImplementedError`. Un exemple de surcharge qui donne un type plus précis " +"que celui qui peut être exprimé à l'aide d'une variable union ou type ::" + +#: ../Doc/library/typing.rst:945 +msgid "See :pep:`484` for details and comparison with other typing semantics." +msgstr "" +"Voir la :pep:`484` pour plus de détails et la comparaison avec d'autres " +"sémantiques de typage." + +#: ../Doc/library/typing.rst:949 +msgid "Decorator to indicate that annotations are not type hints." +msgstr "" +"Décorateur pour indiquer que les annotations ne sont pas des indications de " +"type." + +#: ../Doc/library/typing.rst:951 +msgid "" +"This works as class or function :term:`decorator`. With a class, it applies " +"recursively to all methods defined in that class (but not to methods defined " +"in its superclasses or subclasses)." +msgstr "" +"Cela fonctionne en tant que classe ou fonction :term:`décoratrice " +"`. Avec une classe, elle s'applique récursivement à toutes les " +"méthodes définies dans cette classe (mais pas aux méthodes définies dans ses " +"superclasses ou sous-classes)." + +#: ../Doc/library/typing.rst:955 +msgid "This mutates the function(s) in place." +msgstr "Cela fait muter la ou les fonctions en place." + +#: ../Doc/library/typing.rst:959 +msgid "Decorator to give another decorator the :func:`no_type_check` effect." +msgstr "" +"Décorateur pour donner à un autre décorateur l'effet :func:`no_type_check`." + +#: ../Doc/library/typing.rst:961 +msgid "" +"This wraps the decorator with something that wraps the decorated function " +"in :func:`no_type_check`." +msgstr "" +"Ceci enveloppe le décorateur avec quelque chose qui enveloppe la fonction " +"décorée dans :func:`no_type_check`." + +#: ../Doc/library/typing.rst:966 +msgid "Decorator to mark a class or function to be unavailable at runtime." +msgstr "" +"Décorateur pour marquer une classe ou une fonction comme étant indisponible " +"au moment de l'exécution." + +#: ../Doc/library/typing.rst:968 +msgid "" +"This decorator is itself not available at runtime. It is mainly intended to " +"mark classes that are defined in type stub files if an implementation " +"returns an instance of a private class::" +msgstr "" +"Ce décorateur n'est pas disponible à l'exécution. Il est principalement " +"destiné à marquer les classes qui sont définies dans des fichiers séparés " +"d'annotations de type (*type stub file*, en anglais) si une implémentation " +"renvoie une instance d'une classe privée ::" + +#: ../Doc/library/typing.rst:979 +msgid "" +"Note that returning instances of private classes is not recommended. It is " +"usually preferable to make such classes public." +msgstr "" +"Notez qu'il n'est pas recommandé de renvoyer les instances des classes " +"privées. Il est généralement préférable de rendre ces classes publiques." + +#: ../Doc/library/typing.rst:984 +msgid "Special type indicating an unconstrained type." +msgstr "Type spécial indiquant un type non contraint." + +#: ../Doc/library/typing.rst:986 +msgid "Every type is compatible with :data:`Any`." +msgstr "Chaque type est compatible avec :data:`Any`." + +#: ../Doc/library/typing.rst:987 +msgid ":data:`Any` is compatible with every type." +msgstr ":data:`Any` est compatible avec tous les types." + +#: ../Doc/library/typing.rst:991 +msgid "Special type indicating that a function never returns. For example::" +msgstr "Type spécial indiquant qu'une fonction ne renvoie rien. Par exemple ::" + +#: ../Doc/library/typing.rst:1004 +msgid "Union type; ``Union[X, Y]`` means either X or Y." +msgstr "Type « union » ; ``Union[X, Y]`` signifie X ou Y." + +#: ../Doc/library/typing.rst:1006 +msgid "To define a union, use e.g. ``Union[int, str]``. Details:" +msgstr "" +"Pour définir une union, utilisez par exemple ``Union[int, str]``. Détail :" + +#: ../Doc/library/typing.rst:1008 +msgid "The arguments must be types and there must be at least one." +msgstr "" +"Les arguments doivent être des types et il doit y en avoir au moins un." + +#: ../Doc/library/typing.rst:1010 +msgid "Unions of unions are flattened, e.g.::" +msgstr "Les unions d'unions sont aplanies, par exemple ::" + +#: ../Doc/library/typing.rst:1014 +msgid "Unions of a single argument vanish, e.g.::" +msgstr "Les unions d'un seul argument disparaissent, par exemple ::" + +#: ../Doc/library/typing.rst:1018 +msgid "Redundant arguments are skipped, e.g.::" +msgstr "Les arguments redondants sont ignorés, par exemple ::" + +#: ../Doc/library/typing.rst:1022 +msgid "When comparing unions, the argument order is ignored, e.g.::" +msgstr "" +"Lors de la comparaison d'unions, l'ordre des arguments est ignoré, par " +"exemple ::" + +#: ../Doc/library/typing.rst:1026 +msgid "You cannot subclass or instantiate a union." +msgstr "Vous ne pouvez pas sous-classer ou instancier une union." + +#: ../Doc/library/typing.rst:1028 +msgid "You cannot write ``Union[X][Y]``." +msgstr "Vous ne pouvez pas écrire ``Union[X][Y]``." + +#: ../Doc/library/typing.rst:1030 +msgid "You can use ``Optional[X]`` as a shorthand for ``Union[X, None]``." +msgstr "" +"Vous pouvez utiliser l'abréviation ``Optional[X]`` pour ``Union[X, None]``." + +#: ../Doc/library/typing.rst:1032 +msgid "Don't remove explicit subclasses from unions at runtime." +msgstr "Ne supprime pas les sous-classes explicites des unions à l'exécution." + +#: ../Doc/library/typing.rst:1037 +msgid "Optional type." +msgstr "Type « optionnel »." + +#: ../Doc/library/typing.rst:1039 +msgid "``Optional[X]`` is equivalent to ``Union[X, None]``." +msgstr "``Optional[X]`` équivaut à ``Union[X, None]``." + +#: ../Doc/library/typing.rst:1041 +msgid "" +"Note that this is not the same concept as an optional argument, which is one " +"that has a default. An optional argument with a default does not require " +"the ``Optional`` qualifier on its type annotation just because it is " +"optional. For example::" +msgstr "" +"Notez que ce n'est pas le même concept qu'un argument optionnel, qui est un " +"argument qui possède une valeur par défaut. Un argument optionnel (qui a une " +"valeur par défaut) ne nécessite pas, à ce titre, le qualificatif " +"``Optional`` sur son annotation de type. Par exemple ::" + +#: ../Doc/library/typing.rst:1049 +msgid "" +"On the other hand, if an explicit value of ``None`` is allowed, the use of " +"``Optional`` is appropriate, whether the argument is optional or not. For " +"example::" +msgstr "" +"Par contre, si une valeur explicite de ``None`` est permise, l'utilisation " +"de ``Optional`` est appropriée, que l'argument soit facultatif ou non. Par " +"exemple ::" + +#: ../Doc/library/typing.rst:1058 +msgid "" +"Tuple type; ``Tuple[X, Y]`` is the type of a tuple of two items with the " +"first item of type X and the second of type Y." +msgstr "" + +#: ../Doc/library/typing.rst:1061 +msgid "" +"Example: ``Tuple[T1, T2]`` is a tuple of two elements corresponding to type " +"variables T1 and T2. ``Tuple[int, float, str]`` is a tuple of an int, a " +"float and a string." +msgstr "" +"Exemple : ``Tuple[T1, T2]`` est une paire correspondant aux variables de " +"type ``T1`` et ``T2``. ``Tuple[int, float, str]`` est un triplet composé " +"d'un entier, d'un flottant et d'une chaîne de caractères." + +#: ../Doc/library/typing.rst:1065 +msgid "" +"To specify a variable-length tuple of homogeneous type, use literal " +"ellipsis, e.g. ``Tuple[int, ...]``. A plain :data:`Tuple` is equivalent to " +"``Tuple[Any, ...]``, and in turn to :class:`tuple`." +msgstr "" +"Pour spécifier un n-uplet de longueur variable et de type homogène, utilisez " +"une ellipse, par exemple ``Tuple[int, ....]``. Un n-uplet :data:`Tuple` est " +"équivalent à ``Tuple[Any, ....]`` et, à son tour, à :class:`tuple`." + +#: ../Doc/library/typing.rst:1071 +msgid "Callable type; ``Callable[[int], str]`` is a function of (int) -> str." +msgstr "" +"Type Appelable. ``Callable[[int], str]`` est une fonction de type ``(int) -> " +"str``." + +#: ../Doc/library/typing.rst:1073 +msgid "" +"The subscription syntax must always be used with exactly two values: the " +"argument list and the return type. The argument list must be a list of " +"types or an ellipsis; the return type must be a single type." +msgstr "" +"La syntaxe de sélection (*subscription* en anglais) doit toujours être " +"utilisée avec exactement deux valeurs : la liste d'arguments et le type de " +"retour. La liste d'arguments doit être une liste de types ou une ellipse ; " +"il doit y avoir un seul type de retour." + +#: ../Doc/library/typing.rst:1078 +msgid "" +"There is no syntax to indicate optional or keyword arguments; such function " +"types are rarely used as callback types. ``Callable[..., ReturnType]`` " +"(literal ellipsis) can be used to type hint a callable taking any number of " +"arguments and returning ``ReturnType``. A plain :data:`Callable` is " +"equivalent to ``Callable[..., Any]``, and in turn to :class:`collections.abc." +"Callable`." +msgstr "" +"Il n'y a pas de syntaxe pour indiquer les arguments optionnels ou les " +"arguments par mots-clés ; de tels types de fonctions sont rarement utilisés " +"comme types de rappel. ``Callable[..., ReturnType]`` (ellipse) peut être " +"utilisé pour annoter le type d'un appelable, prenant un nombre quelconque " +"d'arguments et renvoyant ``ReturnType``. Un simple :data:`Callable` est " +"équivalent à ``Callable[..., Any]`` et, à son tour, à :class:`collections." +"abc.Callable`." + +#: ../Doc/library/typing.rst:1088 +msgid "Special type construct to mark class variables." +msgstr "" +"Construction de type particulière pour indiquer les variables de classe." + +#: ../Doc/library/typing.rst:1090 +msgid "" +"As introduced in :pep:`526`, a variable annotation wrapped in ClassVar " +"indicates that a given attribute is intended to be used as a class variable " +"and should not be set on instances of that class. Usage::" +msgstr "" +"Telle qu'introduite dans la :pep:`526`, une annotation de variable " +"enveloppée dans ClassVar indique qu'un attribut donné est destiné à être " +"utilisé comme une variable de classe et ne doit pas être défini sur des " +"instances de cette classe. Utilisation ::" + +#: ../Doc/library/typing.rst:1098 +msgid ":data:`ClassVar` accepts only types and cannot be further subscribed." +msgstr ":data:`ClassVar` n'accepte que les types et ne peut plus être dérivé." + +#: ../Doc/library/typing.rst:1100 +msgid "" +":data:`ClassVar` is not a class itself, and should not be used with :func:" +"`isinstance` or :func:`issubclass`. :data:`ClassVar` does not change Python " +"runtime behavior, but it can be used by third-party type checkers. For " +"example, a type checker might flag the following code as an error::" +msgstr "" +":data:`ClassVar` n'est pas une classe en soi, et ne devrait pas être " +"utilisée avec :func:`isinstance` ou :func:`issubclass`. :data:`ClassVar` ne " +"modifie pas le comportement d'exécution Python, mais il peut être utilisé " +"par des vérificateurs tiers. Par exemple, un vérificateur de type peut " +"marquer le code suivant comme une erreur ::" + +#: ../Doc/library/typing.rst:1114 +msgid "" +"``AnyStr`` is a type variable defined as ``AnyStr = TypeVar('AnyStr', str, " +"bytes)``." +msgstr "" +"``AnyStr`` est une variable de type définie comme ``AnyStr = " +"TypeVar('AnyStr', str, bytes)``." + +#: ../Doc/library/typing.rst:1117 +msgid "" +"It is meant to be used for functions that may accept any kind of string " +"without allowing different kinds of strings to mix. For example::" +msgstr "" +"Cela est destiné à être utilisé pour des fonctions qui peuvent accepter " +"n'importe quel type de chaîne de caractères sans permettre à différents " +"types de chaînes de caractères de se mélanger. Par exemple ::" + +#: ../Doc/library/typing.rst:1129 +msgid "" +"A special constant that is assumed to be ``True`` by 3rd party static type " +"checkers. It is ``False`` at runtime. Usage::" +msgstr "" +"Constante spéciale qui vaut ``True`` pour les vérificateurs de type " +"statiques tiers et ``False`` à l'exécution. Utilisation ::" + +#: ../Doc/library/typing.rst:1138 +msgid "" +"Note that the first type annotation must be enclosed in quotes, making it a " +"\"forward reference\", to hide the ``expensive_mod`` reference from the " +"interpreter runtime. Type annotations for local variables are not " +"evaluated, so the second annotation does not need to be enclosed in quotes." +msgstr "" diff --git a/library/undoc.po b/library/undoc.po new file mode 100644 index 000000000..be3bae278 --- /dev/null +++ b/library/undoc.po @@ -0,0 +1,68 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"PO-Revision-Date: 2018-09-29 19:16+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/undoc.rst:5 +msgid "Undocumented Modules" +msgstr "Modules non Documentés" + +#: ../Doc/library/undoc.rst:7 +msgid "" +"Here's a quick listing of modules that are currently undocumented, but that " +"should be documented. Feel free to contribute documentation for them! " +"(Send via email to docs@python.org.)" +msgstr "" +"Voici un rapide survol des modules actuellement non documentés, mais qui " +"devraient l'être. N'hésitez pas à contribuer à leur documentation ! (En " +"anglais, par mail, à docs@python.org.)" + +#: ../Doc/library/undoc.rst:11 +msgid "" +"The idea and original contents for this chapter were taken from a posting by " +"Fredrik Lundh; the specific contents of this chapter have been substantially " +"revised." +msgstr "" +"L'idée de lister les modules à documenter vient d'un message de Fredrik " +"Lundh. Depuis, le contenu de ce chapitre à pu être mis à jour." + +#: ../Doc/library/undoc.rst:17 +msgid "Platform specific modules" +msgstr "Modules spécifiques à une plateforme" + +#: ../Doc/library/undoc.rst:19 +msgid "" +"These modules are used to implement the :mod:`os.path` module, and are not " +"documented beyond this mention. There's little need to document these." +msgstr "" +"Ces modules sont utilisés pour implémenter le module :mod:`os.path`, et " +"n'ont pas plus de documentation. Le besoin de les documenter ne se fait pas " +"réellement sentir." + +#: ../Doc/library/undoc.rst:23 +msgid ":mod:`ntpath`" +msgstr ":mod:`ntpath`" + +#: ../Doc/library/undoc.rst:23 +msgid "--- Implementation of :mod:`os.path` on Win32 and Win64 platforms." +msgstr "" +"--- Implémentation de :mod:`os.path` pour les plateformes Win32 et Win64." + +#: ../Doc/library/undoc.rst:25 +msgid ":mod:`posixpath`" +msgstr ":mod:`posixpath`" + +#: ../Doc/library/undoc.rst:26 +msgid "--- Implementation of :mod:`os.path` on POSIX." +msgstr "--- Implementation du module :mod:`os.path` pour les systèmes POSIX." diff --git a/library/unicodedata.po b/library/unicodedata.po new file mode 100644 index 000000000..941cbf5bf --- /dev/null +++ b/library/unicodedata.po @@ -0,0 +1,257 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-10-11 17:16+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" + +#: ../Doc/library/unicodedata.rst:2 +msgid ":mod:`unicodedata` --- Unicode Database" +msgstr ":mod:`unicodedata` — Base de données Unicode" + +#: ../Doc/library/unicodedata.rst:18 +msgid "" +"This module provides access to the Unicode Character Database (UCD) which " +"defines character properties for all Unicode characters. The data contained " +"in this database is compiled from the `UCD version 11.0.0 `_." +msgstr "" +"Ce module donne accès à la base de données des caractères Unicode (*Unicode " +"Character Database* ou *UCD*) qui définit les propriétés de tous les " +"caractères Unicode. Les données contenues dans cette base de données sont " +"compilées depuis l'`*UCD* version 11.0.0 `_." + +#: ../Doc/library/unicodedata.rst:23 +msgid "" +"The module uses the same names and symbols as defined by Unicode Standard " +"Annex #44, `\"Unicode Character Database\" `_. It defines the following functions:" +msgstr "" +"Ce module utilise les mêmes noms et symboles définis dans l'annexe 44 du " +"standard Unicode (*Unicode Standard Annex*), `\"Unicode Character Database\" " +"`_. Il définit les " +"fonctions suivantes :" + +#: ../Doc/library/unicodedata.rst:31 +msgid "" +"Look up character by name. If a character with the given name is found, " +"return the corresponding character. If not found, :exc:`KeyError` is raised." +msgstr "" +"Retrouver un caractère par nom. Si un caractère avec le nom donné est " +"trouvé, renvoyer le caractère correspondant. S'il n'est pas trouvé, :exc:" +"`KeyError` est levée." + +#: ../Doc/library/unicodedata.rst:34 +msgid "Support for name aliases [#]_ and named sequences [#]_ has been added." +msgstr "La gestion des alias [#]_ et des séquences nommées [#]_ a été ajouté." + +#: ../Doc/library/unicodedata.rst:40 +msgid "" +"Returns the name assigned to the character *chr* as a string. If no name is " +"defined, *default* is returned, or, if not given, :exc:`ValueError` is " +"raised." +msgstr "" +"Renvoie le nom assigné au caractère *chr* comme une chaîne de caractères. Si " +"aucun nom n'est défini, *default* est renvoyé, ou, si ce dernier n'est pas " +"renseigné :exc:`ValueError` est levée." + +#: ../Doc/library/unicodedata.rst:47 +msgid "" +"Returns the decimal value assigned to the character *chr* as integer. If no " +"such value is defined, *default* is returned, or, if not given, :exc:" +"`ValueError` is raised." +msgstr "" +"Renvoie la valeur décimale assignée au caractère *chr* comme un entier. Si " +"aucune valeur de ce type n'est définie, *default* est renvoyé, ou, si ce " +"dernier n'est pas renseigné, :exc:`ValueError` est levée." + +#: ../Doc/library/unicodedata.rst:54 +msgid "" +"Returns the digit value assigned to the character *chr* as integer. If no " +"such value is defined, *default* is returned, or, if not given, :exc:" +"`ValueError` is raised." +msgstr "" +"Renvoie le chiffre assigné au caractère *chr* comme un entier. Si aucune " +"valeur de ce type n'est définie, *default* est renvoyé, ou, si ce dernier " +"n'est pas renseigné, :exc:`ValueError` est levée." + +#: ../Doc/library/unicodedata.rst:61 +msgid "" +"Returns the numeric value assigned to the character *chr* as float. If no " +"such value is defined, *default* is returned, or, if not given, :exc:" +"`ValueError` is raised." +msgstr "" +"Renvoie la valeur numérique assignée au caractère *chr* comme un entier. Si " +"aucune valeur de ce type n'est définie, *default* est renvoyé, ou, si ce " +"dernier n'est pas renseigné, :exc:`ValueError` est levée." + +#: ../Doc/library/unicodedata.rst:68 +msgid "Returns the general category assigned to the character *chr* as string." +msgstr "" +"Renvoie la catégorie générale assignée au caractère *chr* comme une chaîne " +"de caractères." + +#: ../Doc/library/unicodedata.rst:74 +msgid "" +"Returns the bidirectional class assigned to the character *chr* as string. " +"If no such value is defined, an empty string is returned." +msgstr "" +"Renvoie la classe bidirectionnelle assignée au caractère *chr* comme une " +"chaîne de caractères. Si aucune valeur de ce type n'est définie, une chaîne " +"de caractères vide est renvoyée." + +#: ../Doc/library/unicodedata.rst:80 +msgid "" +"Returns the canonical combining class assigned to the character *chr* as " +"integer. Returns ``0`` if no combining class is defined." +msgstr "" +"Renvoie la classe de combinaison canonique assignée au caractère *chr* comme " +"un entier. Envoie ``0`` si aucune classe de combinaison n'est définie." + +#: ../Doc/library/unicodedata.rst:86 +msgid "Returns the east asian width assigned to the character *chr* as string." +msgstr "" +"Renvoie la largeur est-asiatique assignée à un caractère *chr* comme une " +"chaîne de caractères." + +#: ../Doc/library/unicodedata.rst:92 +msgid "" +"Returns the mirrored property assigned to the character *chr* as integer. " +"Returns ``1`` if the character has been identified as a \"mirrored\" " +"character in bidirectional text, ``0`` otherwise." +msgstr "" +"Renvoie la propriété miroir assignée au caractère *chr* comme un entier. " +"Renvoie ``1`` si le caractère a été identifié comme un caractère \"réfléchi" +"\" dans du texte bidirectionnel, sinon ``0``." + +#: ../Doc/library/unicodedata.rst:99 +msgid "" +"Returns the character decomposition mapping assigned to the character *chr* " +"as string. An empty string is returned in case no such mapping is defined." +msgstr "" +"Renvoie le tableau associatif de décomposition de caractère assigné au " +"caractère *chr* comme une chaîne de caractères. Une chaîne de caractère vide " +"est renvoyée dans le cas où aucun tableau associatif de ce type n'est défini." + +#: ../Doc/library/unicodedata.rst:106 +msgid "" +"Return the normal form *form* for the Unicode string *unistr*. Valid values " +"for *form* are 'NFC', 'NFKC', 'NFD', and 'NFKD'." +msgstr "" +"Renvoie la forme normale *form* de la chaîne de caractère Unicode *unistr*. " +"Les valeurs valides de *form* sont *NFC*, *NFKC*, *NFD*, et *NFKD*." + +#: ../Doc/library/unicodedata.rst:109 +msgid "" +"The Unicode standard defines various normalization forms of a Unicode " +"string, based on the definition of canonical equivalence and compatibility " +"equivalence. In Unicode, several characters can be expressed in various way. " +"For example, the character U+00C7 (LATIN CAPITAL LETTER C WITH CEDILLA) can " +"also be expressed as the sequence U+0043 (LATIN CAPITAL LETTER C) U+0327 " +"(COMBINING CEDILLA)." +msgstr "" +"Le standard Unicode définit les différentes variantes de normalisation d'une " +"chaîne de caractères Unicode en se basant sur les définitions d'équivalence " +"canonique et d'équivalence de compatibilité. En Unicode, plusieurs " +"caractères peuvent être exprimés de différentes façons. Par exemple, le " +"caractère *U+00C7* (*LATIN CAPITAL LETTER C WITH CEDILLA*) peut aussi être " +"exprimé comme la séquence *U+0043* (*LATIN CAPITAL LETTER C*) *U+0327* " +"(*COMBINING CEDILLA*)." + +#: ../Doc/library/unicodedata.rst:115 +msgid "" +"For each character, there are two normal forms: normal form C and normal " +"form D. Normal form D (NFD) is also known as canonical decomposition, and " +"translates each character into its decomposed form. Normal form C (NFC) " +"first applies a canonical decomposition, then composes pre-combined " +"characters again." +msgstr "" +"Pour chaque caractère, il existe deux formes normales: la forme normale C et " +"la forme normale D. La forme normale D (NFD) est aussi appelée décomposition " +"canonique, et traduit chaque caractère dans sa forme décomposée. La forme " +"normale C (NFC) applique d'abord la décomposition canonique, puis compose à " +"nouveau les caractères pré-combinés." + +#: ../Doc/library/unicodedata.rst:120 +msgid "" +"In addition to these two forms, there are two additional normal forms based " +"on compatibility equivalence. In Unicode, certain characters are supported " +"which normally would be unified with other characters. For example, U+2160 " +"(ROMAN NUMERAL ONE) is really the same thing as U+0049 (LATIN CAPITAL LETTER " +"I). However, it is supported in Unicode for compatibility with existing " +"character sets (e.g. gb2312)." +msgstr "" +"En plus de ces deux formes, il existe deux formes nominales basées sur " +"l'équivalence de compatibilité. En Unicode, certains caractères sont gérés " +"alors qu'ils sont normalement unifiés avec d'autres caractères. Par exemple, " +"U+2160 (ROMAN NUMERAL ONE) est vraiment la même chose que U+0049 (LATIN " +"CAPITAL LETTER I). Cependant, ce caractère est supporté par souci de " +"compatibilité avec les jeux de caractères existants (par exemple *gb2312*)." + +#: ../Doc/library/unicodedata.rst:127 +msgid "" +"The normal form KD (NFKD) will apply the compatibility decomposition, i.e. " +"replace all compatibility characters with their equivalents. The normal form " +"KC (NFKC) first applies the compatibility decomposition, followed by the " +"canonical composition." +msgstr "" +"La forme normale KD (NFKD) applique la décomposition de compatibilité, c'est-" +"à-dire remplacer les caractères de compatibilités avec leurs équivalents. La " +"forme normale KC (NFKC) applique d'abord la décomposition de compatibilité, " +"puis applique la composition canonique." + +#: ../Doc/library/unicodedata.rst:132 +msgid "" +"Even if two unicode strings are normalized and look the same to a human " +"reader, if one has combining characters and the other doesn't, they may not " +"compare equal." +msgstr "" +"Même si deux chaînes de caractères Unicode sont normalisées et ont la même " +"apparence pour un lecteur humain , si un a des caractères combinés et " +"l'autre n'en a pas, elles peuvent ne pas être égales lors d'une comparaison." + +#: ../Doc/library/unicodedata.rst:137 +msgid "In addition, the module exposes the following constant:" +msgstr "De plus, ce module expose la constante suivante:" + +#: ../Doc/library/unicodedata.rst:141 +msgid "The version of the Unicode database used in this module." +msgstr "La version de la base de données Unicode utilisée dans ce module." + +#: ../Doc/library/unicodedata.rst:146 +msgid "" +"This is an object that has the same methods as the entire module, but uses " +"the Unicode database version 3.2 instead, for applications that require this " +"specific version of the Unicode database (such as IDNA)." +msgstr "" +"Ceci est un objet qui a les mêmes méthodes que le module, mais qui utilise " +"la version 3.2 de la base de données Unicode, pour les applications qui " +"nécessitent cette version spécifique de la base de données Unicode (comme " +"l'IDNA)." + +#: ../Doc/library/unicodedata.rst:150 +msgid "Examples:" +msgstr "Exemples :" + +#: ../Doc/library/unicodedata.rst:170 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/unicodedata.rst:171 +msgid "http://www.unicode.org/Public/11.0.0/ucd/NameAliases.txt" +msgstr "http://www.unicode.org/Public/11.0.0/ucd/NameAliases.txt" + +#: ../Doc/library/unicodedata.rst:173 +msgid "http://www.unicode.org/Public/11.0.0/ucd/NamedSequences.txt" +msgstr "http://www.unicode.org/Public/11.0.0/ucd/NamedSequences.txt" diff --git a/library/unittest.mock-examples.po b/library/unittest.mock-examples.po new file mode 100644 index 000000000..182ebc438 --- /dev/null +++ b/library/unittest.mock-examples.po @@ -0,0 +1,1067 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/unittest.mock-examples.rst:2 +msgid ":mod:`unittest.mock` --- getting started" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:13 +msgid "Using Mock" +msgstr "Utilisation de Mock ou l'art de singer" + +#: ../Doc/library/unittest.mock-examples.rst:16 +msgid "Mock Patching Methods" +msgstr "Simulation des méthodes" + +#: ../Doc/library/unittest.mock-examples.rst:18 +msgid "Common uses for :class:`Mock` objects include:" +msgstr "Usages courant de :class:`Mock` :" + +#: ../Doc/library/unittest.mock-examples.rst:20 +msgid "Patching methods" +msgstr "Substitution des méthodes" + +#: ../Doc/library/unittest.mock-examples.rst:21 +msgid "Recording method calls on objects" +msgstr "Enregistrement des appels faits sur les objets" + +#: ../Doc/library/unittest.mock-examples.rst:23 +msgid "" +"You might want to replace a method on an object to check that it is called " +"with the correct arguments by another part of the system:" +msgstr "" +"On peut remplacer une méthode sur un objet pour contrôler qu'elle est bien " +"appelée avec le nombre correct d'arguments :" + +#: ../Doc/library/unittest.mock-examples.rst:31 +msgid "" +"Once our mock has been used (``real.method`` in this example) it has methods " +"and attributes that allow you to make assertions about how it has been used." +msgstr "" +"Une fois notre objet simulacre appelé (via ``real.method`` dans notre " +"exemple), il fournit des méthodes et attributs permettant de valider comment " +"il a été appelé." + +#: ../Doc/library/unittest.mock-examples.rst:36 +msgid "" +"In most of these examples the :class:`Mock` and :class:`MagicMock` classes " +"are interchangeable. As the ``MagicMock`` is the more capable class it makes " +"a sensible one to use by default." +msgstr "" +"Dans la majeure partie des exemples donnés ici, les classes :class:`Mock` " +"et :class:`MagicMock` sont interchangeables. Étant donné que ``MagicMock`` " +"est la classe la plus puissante des deux, cela fait sens de l'utiliser par " +"défaut." + +#: ../Doc/library/unittest.mock-examples.rst:40 +msgid "" +"Once the mock has been called its :attr:`~Mock.called` attribute is set to " +"``True``. More importantly we can use the :meth:`~Mock.assert_called_with` " +"or :meth:`~Mock.assert_called_once_with` method to check that it was called " +"with the correct arguments." +msgstr "" +"Une fois l'objet Mock appelé, son attribut :attr:`~Mock.called` est défini à " +"``True``. Qui plus est, nous pouvons utiliser les méthodes :meth:`~Mock." +"assert_called_with` ou :meth:`~Mock.assert_called_once_with` pour contrôler " +"qu'il a été appelé avec les bons arguments." + +#: ../Doc/library/unittest.mock-examples.rst:45 +msgid "" +"This example tests that calling ``ProductionClass().method`` results in a " +"call to the ``something`` method:" +msgstr "" +"Cet exemple teste que l'appel de la méthode ``ProductionClass().method`` " +"implique bien celui de la méthode ``something`` :" + +#: ../Doc/library/unittest.mock-examples.rst:62 +msgid "Mock for Method Calls on an Object" +msgstr "S'assurer de la bonne utilisation d'un objet" + +#: ../Doc/library/unittest.mock-examples.rst:64 +msgid "" +"In the last example we patched a method directly on an object to check that " +"it was called correctly. Another common use case is to pass an object into a " +"method (or some part of the system under test) and then check that it is " +"used in the correct way." +msgstr "" +"Dans l'exemple précédent, nous avons directement remplacé une méthode par un " +"objet (afin de valider que l'appel était correct). Une autre façon de faire " +"est de passer un objet Mock en argument d'une méthode (ou de tout autre " +"partie du code à tester) et ensuite de contrôler que notre objet a été " +"utilisé de la façon attendue." + +#: ../Doc/library/unittest.mock-examples.rst:69 +msgid "" +"The simple ``ProductionClass`` below has a ``closer`` method. If it is " +"called with an object then it calls ``close`` on it." +msgstr "" +"Ci-dessous, ``ProductionClass`` dispose d'une méthode ``closer``. Si on " +"l'appelle avec un objet, alors elle appelle la méthode ``close`` dessus." + +#: ../Doc/library/unittest.mock-examples.rst:77 +msgid "" +"So to test it we need to pass in an object with a ``close`` method and check " +"that it was called correctly." +msgstr "" +"Ainsi, pour tester cette classe, nous devons lui passer un objet ayant une " +"méthode ``close``, puis vérifier qu'elle a bien été appelée." + +#: ../Doc/library/unittest.mock-examples.rst:85 +msgid "" +"We don't have to do any work to provide the 'close' method on our mock. " +"Accessing close creates it. So, if 'close' hasn't already been called then " +"accessing it in the test will create it, but :meth:`~Mock." +"assert_called_with` will raise a failure exception." +msgstr "" +"En fait, nous n'avons pas à nous soucier de fournir la méthode ``close`` " +"dans notre objet « simulé ». Le simple fait d'accéder à la méthode ``close`` " +"l'a crée. Si par contre la méthode ``close`` n'a pas été appelée alors, bien " +"que le test la créée en y accédant, :meth:`~Mock.assert_called_with` lèvera " +"une exception." + +#: ../Doc/library/unittest.mock-examples.rst:92 +msgid "Mocking Classes" +msgstr "Simulation des classes" + +#: ../Doc/library/unittest.mock-examples.rst:94 +msgid "" +"A common use case is to mock out classes instantiated by your code under " +"test. When you patch a class, then that class is replaced with a mock. " +"Instances are created by *calling the class*. This means you access the " +"\"mock instance\" by looking at the return value of the mocked class." +msgstr "" +"Un cas d'utilisation courant consiste à émuler les classes instanciées par " +"le code que nous testons. Quand on *patch* une classe, alors cette classe " +"est remplacée par un objet *mock*. Les instances de la classe étant créées " +"en *appelant la classe*, on accède à « l'instance *mock* » via la valeur de " +"retour de la classe émulée." + +#: ../Doc/library/unittest.mock-examples.rst:99 +msgid "" +"In the example below we have a function ``some_function`` that instantiates " +"``Foo`` and calls a method on it. The call to :func:`patch` replaces the " +"class ``Foo`` with a mock. The ``Foo`` instance is the result of calling the " +"mock, so it is configured by modifying the mock :attr:`~Mock.return_value`." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:116 +msgid "Naming your mocks" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:118 +msgid "" +"It can be useful to give your mocks a name. The name is shown in the repr of " +"the mock and can be helpful when the mock appears in test failure messages. " +"The name is also propagated to attributes or methods of the mock:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:130 +msgid "Tracking all Calls" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:132 +msgid "" +"Often you want to track more than a single call to a method. The :attr:" +"`~Mock.mock_calls` attribute records all calls to child attributes of the " +"mock - and also to their children." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:144 +msgid "" +"If you make an assertion about ``mock_calls`` and any unexpected methods " +"have been called, then the assertion will fail. This is useful because as " +"well as asserting that the calls you expected have been made, you are also " +"checking that they were made in the right order and with no additional calls:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:149 +msgid "" +"You use the :data:`call` object to construct lists for comparing with " +"``mock_calls``:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:156 +msgid "" +"However, parameters to calls that return mocks are not recorded, which means " +"it is not possible to track nested calls where the parameters used to create " +"ancestors are important:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:167 +msgid "Setting Return Values and Attributes" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:169 +msgid "Setting the return values on a mock object is trivially easy:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:176 +msgid "Of course you can do the same for methods on the mock:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:183 +msgid "The return value can also be set in the constructor:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:189 +msgid "If you need an attribute setting on your mock, just do it:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:196 +msgid "" +"Sometimes you want to mock up a more complex situation, like for example " +"``mock.connection.cursor().execute(\"SELECT 1\")``. If we wanted this call " +"to return a list, then we have to configure the result of the nested call." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:200 +msgid "" +"We can use :data:`call` to construct the set of calls in a \"chained call\" " +"like this for easy assertion afterwards:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:214 +msgid "" +"It is the call to ``.call_list()`` that turns our call object into a list of " +"calls representing the chained calls." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:219 +msgid "Raising exceptions with mocks" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:221 +msgid "" +"A useful attribute is :attr:`~Mock.side_effect`. If you set this to an " +"exception class or instance then the exception will be raised when the mock " +"is called." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:233 +msgid "Side effect functions and iterables" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:235 +msgid "" +"``side_effect`` can also be set to a function or an iterable. The use case " +"for ``side_effect`` as an iterable is where your mock is going to be called " +"several times, and you want each call to return a different value. When you " +"set ``side_effect`` to an iterable every call to the mock returns the next " +"value from the iterable:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:250 +msgid "" +"For more advanced use cases, like dynamically varying the return values " +"depending on what the mock is called with, ``side_effect`` can be a " +"function. The function will be called with the same arguments as the mock. " +"Whatever the function returns is what the call returns:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:267 +msgid "Creating a Mock from an Existing Object" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:269 +msgid "" +"One problem with over use of mocking is that it couples your tests to the " +"implementation of your mocks rather than your real code. Suppose you have a " +"class that implements ``some_method``. In a test for another class, you " +"provide a mock of this object that *also* provides ``some_method``. If later " +"you refactor the first class, so that it no longer has ``some_method`` - " +"then your tests will continue to pass even though your code is now broken!" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:276 +msgid "" +":class:`Mock` allows you to provide an object as a specification for the " +"mock, using the *spec* keyword argument. Accessing methods / attributes on " +"the mock that don't exist on your specification object will immediately " +"raise an attribute error. If you change the implementation of your " +"specification, then tests that use that class will start failing immediately " +"without you having to instantiate the class in those tests." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:289 +msgid "" +"Using a specification also enables a smarter matching of calls made to the " +"mock, regardless of whether some parameters were passed as positional or " +"named arguments::" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:300 +msgid "" +"If you want this smarter matching to also work with method calls on the " +"mock, you can use :ref:`auto-speccing `." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:303 +msgid "" +"If you want a stronger form of specification that prevents the setting of " +"arbitrary attributes as well as the getting of them then you can use " +"*spec_set* instead of *spec*." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:310 +msgid "Patch Decorators" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:314 +msgid "" +"With :func:`patch` it matters that you patch objects in the namespace where " +"they are looked up. This is normally straightforward, but for a quick guide " +"read :ref:`where to patch `." +msgstr "" +"Avec :func:`patch`, il est important de *patcher* les objets dans l'espace " +"de nommage où ils sont recherchés. C'est ce qui se fait normalement, mais " +"pour un guide rapide, lisez :ref:`où patcher `." + +#: ../Doc/library/unittest.mock-examples.rst:319 +msgid "" +"A common need in tests is to patch a class attribute or a module attribute, " +"for example patching a builtin or patching a class in a module to test that " +"it is instantiated. Modules and classes are effectively global, so patching " +"on them has to be undone after the test or the patch will persist into other " +"tests and cause hard to diagnose problems." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:325 +msgid "" +"mock provides three convenient decorators for this: :func:`patch`, :func:" +"`patch.object` and :func:`patch.dict`. ``patch`` takes a single string, of " +"the form ``package.module.Class.attribute`` to specify the attribute you are " +"patching. It also optionally takes a value that you want the attribute (or " +"class or whatever) to be replaced with. 'patch.object' takes an object and " +"the name of the attribute you would like patched, plus optionally the value " +"to patch it with." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:333 +msgid "``patch.object``:" +msgstr "``patch.object``:" + +#: ../Doc/library/unittest.mock-examples.rst:350 +msgid "" +"If you are patching a module (including :mod:`builtins`) then use :func:" +"`patch` instead of :func:`patch.object`:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:360 +msgid "" +"The module name can be 'dotted', in the form ``package.module`` if needed:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:369 +msgid "A nice pattern is to actually decorate test methods themselves:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:380 +msgid "" +"If you want to patch with a Mock, you can use :func:`patch` with only one " +"argument (or :func:`patch.object` with two arguments). The mock will be " +"created for you and passed into the test function / method:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:392 +msgid "You can stack up multiple patch decorators using this pattern:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:403 +msgid "" +"When you nest patch decorators the mocks are passed in to the decorated " +"function in the same order they applied (the normal *Python* order that " +"decorators are applied). This means from the bottom up, so in the example " +"above the mock for ``test_module.ClassName2`` is passed in first." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:408 +msgid "" +"There is also :func:`patch.dict` for setting values in a dictionary just " +"during a scope and restoring the dictionary to its original state when the " +"test ends:" +msgstr "" +"Il existe également :func:`patch.dict` pour définir des valeurs d'un " +"dictionnaire au sein d'une portée et restaurer ce dictionnaire à son état " +"d'origine lorsque le test se termine ::" + +#: ../Doc/library/unittest.mock-examples.rst:419 +msgid "" +"``patch``, ``patch.object`` and ``patch.dict`` can all be used as context " +"managers." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:421 +msgid "" +"Where you use :func:`patch` to create a mock for you, you can get a " +"reference to the mock using the \"as\" form of the with statement:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:436 +msgid "" +"As an alternative ``patch``, ``patch.object`` and ``patch.dict`` can be used " +"as class decorators. When used in this way it is the same as applying the " +"decorator individually to every method whose name starts with \"test\"." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:444 +msgid "Further Examples" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:447 +msgid "Here are some more examples for some slightly more advanced scenarios." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:451 +msgid "Mocking chained calls" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:453 +msgid "" +"Mocking chained calls is actually straightforward with mock once you " +"understand the :attr:`~Mock.return_value` attribute. When a mock is called " +"for the first time, or you fetch its ``return_value`` before it has been " +"called, a new :class:`Mock` is created." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:458 +msgid "" +"This means that you can see how the object returned from a call to a mocked " +"object has been used by interrogating the ``return_value`` mock:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:466 +msgid "" +"From here it is a simple step to configure and then make assertions about " +"chained calls. Of course another alternative is writing your code in a more " +"testable way in the first place..." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:470 +msgid "So, suppose we have some code that looks a little bit like this:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:479 +msgid "" +"Assuming that ``BackendProvider`` is already well tested, how do we test " +"``method()``? Specifically, we want to test that the code section ``# more " +"code`` uses the response object in the correct way." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:483 +msgid "" +"As this chain of calls is made from an instance attribute we can monkey " +"patch the ``backend`` attribute on a ``Something`` instance. In this " +"particular case we are only interested in the return value from the final " +"call to ``start_call`` so we don't have much configuration to do. Let's " +"assume the object it returns is 'file-like', so we'll ensure that our " +"response object uses the builtin :func:`open` as its ``spec``." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:490 +msgid "" +"To do this we create a mock instance as our mock backend and create a mock " +"response object for it. To set the response as the return value for that " +"final ``start_call`` we could do this::" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:496 +msgid "" +"We can do that in a slightly nicer way using the :meth:`~Mock." +"configure_mock` method to directly set the return value for us:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:505 +msgid "" +"With these we monkey patch the \"mock backend\" in place and can make the " +"real call:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:511 +msgid "" +"Using :attr:`~Mock.mock_calls` we can check the chained call with a single " +"assert. A chained call is several calls in one line of code, so there will " +"be several entries in ``mock_calls``. We can use :meth:`call.call_list` to " +"create this list of calls for us:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:522 +msgid "Partial mocking" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:524 +msgid "" +"In some tests I wanted to mock out a call to :meth:`datetime.date.today` to " +"return a known date, but I didn't want to prevent the code under test from " +"creating new date objects. Unfortunately :class:`datetime.date` is written " +"in C, and so I couldn't just monkey-patch out the static :meth:`date.today` " +"method." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:529 +msgid "" +"I found a simple way of doing this that involved effectively wrapping the " +"date class with a mock, but passing through calls to the constructor to the " +"real class (and returning real instances)." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:533 +msgid "" +"The :func:`patch decorator ` is used here to mock out the ``date`` " +"class in the module under test. The :attr:`side_effect` attribute on the " +"mock date class is then set to a lambda function that returns a real date. " +"When the mock date class is called a real date will be constructed and " +"returned by ``side_effect``." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:548 +msgid "" +"Note that we don't patch :class:`datetime.date` globally, we patch ``date`` " +"in the module that *uses* it. See :ref:`where to patch `." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:551 +msgid "" +"When ``date.today()`` is called a known date is returned, but calls to the " +"``date(...)`` constructor still return normal dates. Without this you can " +"find yourself having to calculate an expected result using exactly the same " +"algorithm as the code under test, which is a classic testing anti-pattern." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:556 +msgid "" +"Calls to the date constructor are recorded in the ``mock_date`` attributes " +"(``call_count`` and friends) which may also be useful for your tests." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:559 +msgid "" +"An alternative way of dealing with mocking dates, or other builtin classes, " +"is discussed in `this blog entry `_." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:565 +msgid "Mocking a Generator Method" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:567 +msgid "" +"A Python generator is a function or method that uses the :keyword:`yield` " +"statement to return a series of values when iterated over [#]_." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:570 +msgid "" +"A generator method / function is called to return the generator object. It " +"is the generator object that is then iterated over. The protocol method for " +"iteration is :meth:`~container.__iter__`, so we can mock this using a :class:" +"`MagicMock`." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:575 +msgid "" +"Here's an example class with an \"iter\" method implemented as a generator:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:587 +msgid "How would we mock this class, and in particular its \"iter\" method?" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:589 +msgid "" +"To configure the values returned from the iteration (implicit in the call " +"to :class:`list`), we need to configure the object returned by the call to " +"``foo.iter()``." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:597 +msgid "" +"There are also generator expressions and more `advanced uses `_ of generators, but we aren't concerned " +"about them here. A very good introduction to generators and how powerful " +"they are is: `Generator Tricks for Systems Programmers `_." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:605 +msgid "Applying the same patch to every test method" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:607 +msgid "" +"If you want several patches in place for multiple test methods the obvious " +"way is to apply the patch decorators to every method. This can feel like " +"unnecessary repetition. For Python 2.6 or more recent you can use :func:" +"`patch` (in all its various forms) as a class decorator. This applies the " +"patches to all test methods on the class. A test method is identified by " +"methods whose names start with ``test``:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:631 +msgid "" +"An alternative way of managing patches is to use the :ref:`start-and-stop`. " +"These allow you to move the patching into your ``setUp`` and ``tearDown`` " +"methods." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:647 +msgid "" +"If you use this technique you must ensure that the patching is \"undone\" by " +"calling ``stop``. This can be fiddlier than you might think, because if an " +"exception is raised in the setUp then tearDown is not called. :meth:" +"`unittest.TestCase.addCleanup` makes this easier:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:665 +msgid "Mocking Unbound Methods" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:667 +msgid "" +"Whilst writing tests today I needed to patch an *unbound method* (patching " +"the method on the class rather than on the instance). I needed self to be " +"passed in as the first argument because I want to make asserts about which " +"objects were calling this particular method. The issue is that you can't " +"patch with a mock for this, because if you replace an unbound method with a " +"mock it doesn't become a bound method when fetched from the instance, and so " +"it doesn't get self passed in. The workaround is to patch the unbound method " +"with a real function instead. The :func:`patch` decorator makes it so simple " +"to patch out methods with a mock that having to create a real function " +"becomes a nuisance." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:678 +msgid "" +"If you pass ``autospec=True`` to patch then it does the patching with a " +"*real* function object. This function object has the same signature as the " +"one it is replacing, but delegates to a mock under the hood. You still get " +"your mock auto-created in exactly the same way as before. What it means " +"though, is that if you use it to patch out an unbound method on a class the " +"mocked function will be turned into a bound method if it is fetched from an " +"instance. It will have ``self`` passed in as the first argument, which is " +"exactly what I wanted:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:699 +msgid "" +"If we don't use ``autospec=True`` then the unbound method is patched out " +"with a Mock instance instead, and isn't called with ``self``." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:704 +msgid "Checking multiple calls with mock" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:706 +msgid "" +"mock has a nice API for making assertions about how your mock objects are " +"used." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:713 +msgid "" +"If your mock is only being called once you can use the :meth:" +"`assert_called_once_with` method that also asserts that the :attr:" +"`call_count` is one." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:724 +msgid "" +"Both ``assert_called_with`` and ``assert_called_once_with`` make assertions " +"about the *most recent* call. If your mock is going to be called several " +"times, and you want to make assertions about *all* those calls you can use :" +"attr:`~Mock.call_args_list`:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:736 +msgid "" +"The :data:`call` helper makes it easy to make assertions about these calls. " +"You can build up a list of expected calls and compare it to " +"``call_args_list``. This looks remarkably similar to the repr of the " +"``call_args_list``:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:746 +msgid "Coping with mutable arguments" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:748 +msgid "" +"Another situation is rare, but can bite you, is when your mock is called " +"with mutable arguments. ``call_args`` and ``call_args_list`` store " +"*references* to the arguments. If the arguments are mutated by the code " +"under test then you can no longer make assertions about what the values were " +"when the mock was called." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:753 +msgid "" +"Here's some example code that shows the problem. Imagine the following " +"functions defined in 'mymodule'::" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:764 +msgid "" +"When we try to test that ``grob`` calls ``frob`` with the correct argument " +"look what happens:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:779 +msgid "" +"One possibility would be for mock to copy the arguments you pass in. This " +"could then cause problems if you do assertions that rely on object identity " +"for equality." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:783 +msgid "" +"Here's one solution that uses the :attr:`side_effect` functionality. If you " +"provide a ``side_effect`` function for a mock then ``side_effect`` will be " +"called with the same args as the mock. This gives us an opportunity to copy " +"the arguments and store them for later assertions. In this example I'm using " +"*another* mock to store the arguments so that I can use the mock methods for " +"doing the assertion. Again a helper function sets this up for me." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:812 +msgid "" +"``copy_call_args`` is called with the mock that will be called. It returns a " +"new mock that we do the assertion on. The ``side_effect`` function makes a " +"copy of the args and calls our ``new_mock`` with the copy." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:818 +msgid "" +"If your mock is only going to be used once there is an easier way of " +"checking arguments at the point they are called. You can simply do the " +"checking inside a ``side_effect`` function." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:832 +msgid "" +"An alternative approach is to create a subclass of :class:`Mock` or :class:" +"`MagicMock` that copies (using :func:`copy.deepcopy`) the arguments. Here's " +"an example implementation:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:856 +msgid "" +"When you subclass ``Mock`` or ``MagicMock`` all dynamically created " +"attributes, and the ``return_value`` will use your subclass automatically. " +"That means all children of a ``CopyingMock`` will also have the type " +"``CopyingMock``." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:862 +msgid "Nesting Patches" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:864 +msgid "" +"Using patch as a context manager is nice, but if you do multiple patches you " +"can end up with nested with statements indenting further and further to the " +"right:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:882 +msgid "" +"With unittest ``cleanup`` functions and the :ref:`start-and-stop` we can " +"achieve the same effect without the nested indentation. A simple helper " +"method, ``create_patch``, puts the patch in place and returns the created " +"mock for us:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:910 +msgid "Mocking a dictionary with MagicMock" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:912 +msgid "" +"You may want to mock a dictionary, or other container object, recording all " +"access to it whilst having it still behave like a dictionary." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:915 +msgid "" +"We can do this with :class:`MagicMock`, which will behave like a dictionary, " +"and using :data:`~Mock.side_effect` to delegate dictionary access to a real " +"underlying dictionary that is under our control." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:919 +msgid "" +"When the :meth:`__getitem__` and :meth:`__setitem__` methods of our " +"``MagicMock`` are called (normal dictionary access) then ``side_effect`` is " +"called with the key (and in the case of ``__setitem__`` the value too). We " +"can also control what is returned." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:923 +msgid "" +"After the ``MagicMock`` has been used we can use attributes like :data:" +"`~Mock.call_args_list` to assert about how the dictionary was used:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:939 +msgid "" +"An alternative to using ``MagicMock`` is to use ``Mock`` and *only* provide " +"the magic methods you specifically want:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:946 +msgid "" +"A *third* option is to use ``MagicMock`` but passing in ``dict`` as the " +"*spec* (or *spec_set*) argument so that the ``MagicMock`` created only has " +"dictionary magic methods available:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:954 +msgid "" +"With these side effect functions in place, the ``mock`` will behave like a " +"normal dictionary but recording the access. It even raises a :exc:`KeyError` " +"if you try to access a key that doesn't exist." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:973 +msgid "" +"After it has been used you can make assertions about the access using the " +"normal mock methods and attributes:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:985 +msgid "Mock subclasses and their attributes" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:987 +msgid "" +"There are various reasons why you might want to subclass :class:`Mock`. One " +"reason might be to add helper methods. Here's a silly example:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1003 +msgid "" +"The standard behaviour for ``Mock`` instances is that attributes and the " +"return value mocks are of the same type as the mock they are accessed on. " +"This ensures that ``Mock`` attributes are ``Mocks`` and ``MagicMock`` " +"attributes are ``MagicMocks`` [#]_. So if you're subclassing to add helper " +"methods then they'll also be available on the attributes and return value " +"mock of instances of your subclass." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1019 +msgid "" +"Sometimes this is inconvenient. For example, `one user `_ is subclassing mock to created a `Twisted " +"adaptor `_. Having this applied to attributes too actually causes " +"errors." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1025 +msgid "" +"``Mock`` (in all its flavours) uses a method called ``_get_child_mock`` to " +"create these \"sub-mocks\" for attributes and return values. You can prevent " +"your subclass being used for attributes by overriding this method. The " +"signature is that it takes arbitrary keyword arguments (``**kwargs``) which " +"are then passed onto the mock constructor:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1042 +msgid "" +"An exception to this rule are the non-callable mocks. Attributes use the " +"callable variant because otherwise non-callable mocks couldn't have callable " +"methods." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1048 +msgid "Mocking imports with patch.dict" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1050 +msgid "" +"One situation where mocking can be hard is where you have a local import " +"inside a function. These are harder to mock because they aren't using an " +"object from the module namespace that we can patch out." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1054 +msgid "" +"Generally local imports are to be avoided. They are sometimes done to " +"prevent circular dependencies, for which there is *usually* a much better " +"way to solve the problem (refactor the code) or to prevent \"up front costs" +"\" by delaying the import. This can also be solved in better ways than an " +"unconditional local import (store the module as a class or module attribute " +"and only do the import on first use)." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1061 +msgid "" +"That aside there is a way to use ``mock`` to affect the results of an " +"import. Importing fetches an *object* from the :data:`sys.modules` " +"dictionary. Note that it fetches an *object*, which need not be a module. " +"Importing a module for the first time results in a module object being put " +"in `sys.modules`, so usually when you import something you get a module " +"back. This need not be the case however." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1068 +msgid "" +"This means you can use :func:`patch.dict` to *temporarily* put a mock in " +"place in :data:`sys.modules`. Any imports whilst this patch is active will " +"fetch the mock. When the patch is complete (the decorated function exits, " +"the with statement body is complete or ``patcher.stop()`` is called) then " +"whatever was there previously will be restored safely." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1074 +msgid "Here's an example that mocks out the 'fooble' module." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1085 +msgid "" +"As you can see the ``import fooble`` succeeds, but on exit there is no " +"'fooble' left in :data:`sys.modules`." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1088 +msgid "This also works for the ``from module import name`` form:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1098 +msgid "With slightly more work you can also mock package imports:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1111 +msgid "Tracking order of calls and less verbose call assertions" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1113 +msgid "" +"The :class:`Mock` class allows you to track the *order* of method calls on " +"your mock objects through the :attr:`~Mock.method_calls` attribute. This " +"doesn't allow you to track the order of calls between separate mock objects, " +"however we can use :attr:`~Mock.mock_calls` to achieve the same effect." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1118 +msgid "" +"Because mocks track calls to child mocks in ``mock_calls``, and accessing an " +"arbitrary attribute of a mock creates a child mock, we can create our " +"separate mocks from a parent one. Calls to those child mock will then all be " +"recorded, in order, in the ``mock_calls`` of the parent:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1135 +msgid "" +"We can then assert about the calls, including the order, by comparing with " +"the ``mock_calls`` attribute on the manager mock:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1142 +msgid "" +"If ``patch`` is creating, and putting in place, your mocks then you can " +"attach them to a manager mock using the :meth:`~Mock.attach_mock` method. " +"After attaching calls will be recorded in ``mock_calls`` of the manager." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1162 +msgid "" +"If many calls have been made, but you're only interested in a particular " +"sequence of them then an alternative is to use the :meth:`~Mock." +"assert_has_calls` method. This takes a list of calls (constructed with the :" +"data:`call` object). If that sequence of calls are in :attr:`~Mock." +"mock_calls` then the assert succeeds." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1176 +msgid "" +"Even though the chained call ``m.one().two().three()`` aren't the only calls " +"that have been made to the mock, the assert still succeeds." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1179 +msgid "" +"Sometimes a mock may have several calls made to it, and you are only " +"interested in asserting about *some* of those calls. You may not even care " +"about the order. In this case you can pass ``any_order=True`` to " +"``assert_has_calls``:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1191 +msgid "More complex argument matching" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1193 +msgid "" +"Using the same basic concept as :data:`ANY` we can implement matchers to do " +"more complex assertions on objects used as arguments to mocks." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1196 +msgid "" +"Suppose we expect some object to be passed to a mock that by default " +"compares equal based on object identity (which is the Python default for " +"user defined classes). To use :meth:`~Mock.assert_called_with` we would need " +"to pass in the exact same object. If we are only interested in some of the " +"attributes of this object then we can create a matcher that will check these " +"attributes for us." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1203 +msgid "" +"You can see in this example how a 'standard' call to ``assert_called_with`` " +"isn't sufficient:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1218 +msgid "" +"A comparison function for our ``Foo`` class might look something like this:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1230 +msgid "" +"And a matcher object that can use comparison functions like this for its " +"equality operation would look something like this:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1241 +msgid "Putting all this together:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1246 +msgid "" +"The ``Matcher`` is instantiated with our compare function and the ``Foo`` " +"object we want to compare against. In ``assert_called_with`` the ``Matcher`` " +"equality method will be called, which compares the object the mock was " +"called with against the one we created our matcher with. If they match then " +"``assert_called_with`` passes, and if they don't an :exc:`AssertionError` is " +"raised:" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1259 +msgid "" +"With a bit of tweaking you could have the comparison function raise the :exc:" +"`AssertionError` directly and provide a more useful failure message." +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:1262 +msgid "" +"As of version 1.5, the Python testing library `PyHamcrest `_ provides similar functionality, that may be " +"useful here, in the form of its equality matcher (`hamcrest.library." +"integration.match_equality `_)." +msgstr "" diff --git a/library/unittest.mock.po b/library/unittest.mock.po new file mode 100644 index 000000000..9d8d43b06 --- /dev/null +++ b/library/unittest.mock.po @@ -0,0 +1,2397 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-04-22 12:07+0200\n" +"Last-Translator: Bousquié Pierre \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/unittest.mock.rst:3 +msgid ":mod:`unittest.mock` --- mock object library" +msgstr ":mod:`unittest.mock` — Bibliothèque d'objets simulacres" + +#: ../Doc/library/unittest.mock.rst:13 +msgid "**Source code:** :source:`Lib/unittest/mock.py`" +msgstr "**Code source :** :source:`Lib/unittest/mock.py`" + +#: ../Doc/library/unittest.mock.rst:17 +msgid "" +":mod:`unittest.mock` is a library for testing in Python. It allows you to " +"replace parts of your system under test with mock objects and make " +"assertions about how they have been used." +msgstr "" +":mod:`unittest.mock` est une bibliothèque pour tester en Python. Elle permet " +"de remplacer des parties du système sous tests par des objets simulacres et " +"faire des assertions sur la façon dont ces objets ont été utilisés." + +#: ../Doc/library/unittest.mock.rst:21 +msgid "" +":mod:`unittest.mock` provides a core :class:`Mock` class removing the need " +"to create a host of stubs throughout your test suite. After performing an " +"action, you can make assertions about which methods / attributes were used " +"and arguments they were called with. You can also specify return values and " +"set needed attributes in the normal way." +msgstr "" +":mod:`unittest.mock` fournit une classe :class:`Mock` pour ne pas avoir " +"besoin de créer manuellement des objets factices dans la suite de tests. " +"Après avoir effectué une action, on peut faire des assertions sur les " +"méthodes / attributs utilisés et les arguments avec lesquels ils ont été " +"appelés. On peut également spécifier des valeurs renvoyées et définir les " +"attributs nécessaires aux tests." + +#: ../Doc/library/unittest.mock.rst:27 +msgid "" +"Additionally, mock provides a :func:`patch` decorator that handles patching " +"module and class level attributes within the scope of a test, along with :" +"const:`sentinel` for creating unique objects. See the `quick guide`_ for " +"some examples of how to use :class:`Mock`, :class:`MagicMock` and :func:" +"`patch`." +msgstr "" +"De plus, *mock* fournit un décorateur :func:`patch` qui est capable de " +"*patcher* les modules et les classes dans la portée d'un test, ainsi que :" +"const:`sentinel` pour créer des objets uniques. Voir le guide rapide `quick " +"guide`_ pour quelques exemples d'utilisation de :class:`Mock`, :class:" +"`MagicMock` et :func:`patch`." + +#: ../Doc/library/unittest.mock.rst:33 +msgid "" +"Mock is very easy to use and is designed for use with :mod:`unittest`. Mock " +"is based on the 'action -> assertion' pattern instead of 'record -> replay' " +"used by many mocking frameworks." +msgstr "" +"*Mock* est très facile à utiliser et est conçu pour être utilisé avec :mod:" +"`unittest`. *Mock* est basé sur le modèle *action -> assertion* au lieu de " +"*enregistrement -> rejouer* utilisé par de nombreux cadriciels d'objets " +"simulacres." + +#: ../Doc/library/unittest.mock.rst:37 +msgid "" +"There is a backport of :mod:`unittest.mock` for earlier versions of Python, " +"available as `mock on PyPI `_." +msgstr "" +"Il y a un portage de :mod:`unittest.mock` pour les versions antérieures de " +"Python, disponible `sur PyPI `_." + +#: ../Doc/library/unittest.mock.rst:42 +msgid "Quick Guide" +msgstr "Guide rapide" + +#: ../Doc/library/unittest.mock.rst:44 +msgid "" +":class:`Mock` and :class:`MagicMock` objects create all attributes and " +"methods as you access them and store details of how they have been used. You " +"can configure them, to specify return values or limit what attributes are " +"available, and then make assertions about how they have been used:" +msgstr "" +"Les classes :class:`Mock` et :class:`MagicMock` créent tous les attributs et " +"méthodes au fur et à mesure des accès et stockent les détails de la façon " +"dont ils ont été utilisés. On peut les configurer, pour spécifier des " +"valeurs de renvoi ou limiter les attributs utilisables, puis faire des " +"assertions sur la façon dont ils ont été utilisés ::" + +#: ../Doc/library/unittest.mock.rst:56 +msgid "" +":attr:`side_effect` allows you to perform side effects, including raising an " +"exception when a mock is called:" +msgstr "" +"L'attribut :attr:`side_effect` permet de spécifier des effets de bords, y " +"compris la levée d'une exception lorsqu'un objet simulacre est appelé ::" + +#: ../Doc/library/unittest.mock.rst:76 +msgid "" +"Mock has many other ways you can configure it and control its behaviour. For " +"example the *spec* argument configures the mock to take its specification " +"from another object. Attempting to access attributes or methods on the mock " +"that don't exist on the spec will fail with an :exc:`AttributeError`." +msgstr "" +"Il existe beaucoup d'autres façons de configurer et de contrôler le " +"comportement de *Mock*. Par exemple, l'argument *spec* configure le *mock* " +"pour qu'il utilise les spécifications d'un autre objet. Tenter d'accéder à " +"des attributs ou méthodes sur le *mock* qui n'existent pas sur l'objet " +"*spec* lève une :exc:`AttributeError`." + +#: ../Doc/library/unittest.mock.rst:81 +msgid "" +"The :func:`patch` decorator / context manager makes it easy to mock classes " +"or objects in a module under test. The object you specify will be replaced " +"with a mock (or other object) during the test and restored when the test " +"ends:" +msgstr "" +"Le décorateur / gestionnaire de contexte :func:`patch` permet de simuler " +"facilement des classes ou des objets dans un module sous tests. L'objet " +"spécifié est remplacé par un objet simulacre (ou autre) pendant le test et " +"est restauré à la fin du test ::" + +#: ../Doc/library/unittest.mock.rst:100 +msgid "" +"When you nest patch decorators the mocks are passed in to the decorated " +"function in the same order they applied (the normal *Python* order that " +"decorators are applied). This means from the bottom up, so in the example " +"above the mock for ``module.ClassName1`` is passed in first." +msgstr "" +"Lorsque l'on imbrique des décorateurs de patchs, les *mocks* sont transmis à " +"la fonction décorée dans le même ordre qu'ils ont été déclarés (l'ordre " +"normal *Python* des décorateurs est appliqué). Cela signifie du bas vers le " +"haut, donc dans l'exemple ci-dessus, l'objet simulacre pour ``module." +"ClassName1`` est passé en premier." + +#: ../Doc/library/unittest.mock.rst:105 +msgid "" +"With :func:`patch` it matters that you patch objects in the namespace where " +"they are looked up. This is normally straightforward, but for a quick guide " +"read :ref:`where to patch `." +msgstr "" +"Avec :func:`patch`, il est important de *patcher* les objets dans l'espace " +"de nommage où ils sont recherchés. C'est ce qui se fait normalement, mais " +"pour un guide rapide, lisez :ref:`où patcher `." + +#: ../Doc/library/unittest.mock.rst:109 +msgid "" +"As well as a decorator :func:`patch` can be used as a context manager in a " +"with statement:" +msgstr "" +"Comme tout décorateur, :func:`patch` peut être utilisé comme gestionnaire de " +"contexte avec une instruction *with* ::" + +#: ../Doc/library/unittest.mock.rst:119 +msgid "" +"There is also :func:`patch.dict` for setting values in a dictionary just " +"during a scope and restoring the dictionary to its original state when the " +"test ends:" +msgstr "" +"Il existe également :func:`patch.dict` pour définir des valeurs d'un " +"dictionnaire au sein d'une portée et restaurer ce dictionnaire à son état " +"d'origine lorsque le test se termine ::" + +#: ../Doc/library/unittest.mock.rst:130 +msgid "" +"Mock supports the mocking of Python :ref:`magic methods `. " +"The easiest way of using magic methods is with the :class:`MagicMock` class. " +"It allows you to do things like:" +msgstr "" +"*Mock* gère le remplacement des :ref:`méthodes magiques ` de " +"Python. La façon la plus simple d'utiliser les méthodes magiques est la " +"classe :class:`MagicMock`. Elle permet de faire des choses comme ::" + +#: ../Doc/library/unittest.mock.rst:140 +msgid "" +"Mock allows you to assign functions (or other Mock instances) to magic " +"methods and they will be called appropriately. The :class:`MagicMock` class " +"is just a Mock variant that has all of the magic methods pre-created for you " +"(well, all the useful ones anyway)." +msgstr "" +"*Mock* permet d'assigner des fonctions (ou d'autres instances *Mock*) à des " +"méthodes magiques et elles seront appelées correctement. La classe :class:" +"`MagicMock` est juste une variante de *Mock* qui a toutes les méthodes " +"magiques pré-créées (enfin, toutes les méthodes utiles)." + +#: ../Doc/library/unittest.mock.rst:145 +msgid "" +"The following is an example of using magic methods with the ordinary Mock " +"class:" +msgstr "" +"L'exemple suivant est un exemple de création de méthodes magiques avec la " +"classe *Mock* ordinaire ::" + +#: ../Doc/library/unittest.mock.rst:153 +msgid "" +"For ensuring that the mock objects in your tests have the same api as the " +"objects they are replacing, you can use :ref:`auto-speccing `. Auto-speccing can be done through the *autospec* argument to " +"patch, or the :func:`create_autospec` function. Auto-speccing creates mock " +"objects that have the same attributes and methods as the objects they are " +"replacing, and any functions and methods (including constructors) have the " +"same call signature as the real object." +msgstr "" +"Pour être sûr que les objets simulacres dans vos tests ont la même API que " +"les objets qu'ils remplacent, utilisez :ref:`l'auto-spécification `. L'auto-spécification peut se faire via l'argument *autospec* de " +"patch ou par la fonction :func:`create_autospec`. L'auto-spécification crée " +"des objets simulacres qui ont les mêmes attributs et méthodes que les objets " +"qu'ils remplacent, et toutes les fonctions et méthodes (y compris les " +"constructeurs) ont les mêmes signatures d'appel que l'objet réel." + +#: ../Doc/library/unittest.mock.rst:161 +msgid "" +"This ensures that your mocks will fail in the same way as your production " +"code if they are used incorrectly:" +msgstr "" +"Ceci garantit que vos objets simulacres échouent de la même manière que " +"votre code de production s'ils ne sont pas utilisés correctement ::" + +#: ../Doc/library/unittest.mock.rst:177 +msgid "" +":func:`create_autospec` can also be used on classes, where it copies the " +"signature of the ``__init__`` method, and on callable objects where it " +"copies the signature of the ``__call__`` method." +msgstr "" +"La fonction :func:`create_autospec` peut aussi être utilisée sur les " +"classes, où elle copie la signature de la méthode ``__init__``, et sur les " +"objets appelables où elle copie la signature de la méthode ``__call__``." + +#: ../Doc/library/unittest.mock.rst:184 +msgid "The Mock Class" +msgstr "La classe *Mock*" + +#: ../Doc/library/unittest.mock.rst:187 +msgid "" +":class:`Mock` is a flexible mock object intended to replace the use of stubs " +"and test doubles throughout your code. Mocks are callable and create " +"attributes as new mocks when you access them [#]_. Accessing the same " +"attribute will always return the same mock. Mocks record how you use them, " +"allowing you to make assertions about what your code has done to them." +msgstr "" +"La classe :class:`Mock` est un objet simulacre flexible destiné à remplacer " +"l'utilisation d'objets bouchons et factices dans votre code. Les Mocks sont " +"appelables et créent des attributs comme de nouveaux *Mocks* lorsque l'on y " +"accède [#]_. L'accès au même attribut renvoie toujours le même *mock*. Les " +"simulacres enregistrent la façon dont ils sont utilisés, ce qui permet de " +"faire des assertions sur ce que le code leur a fait." + +#: ../Doc/library/unittest.mock.rst:193 +msgid "" +":class:`MagicMock` is a subclass of :class:`Mock` with all the magic methods " +"pre-created and ready to use. There are also non-callable variants, useful " +"when you are mocking out objects that aren't callable: :class:" +"`NonCallableMock` and :class:`NonCallableMagicMock`" +msgstr "" +"La classe :class:`MagicMock` est une sous-classe de :class:`Mock` avec " +"toutes les méthodes magiques pré-créées et prête à l'emploi. Il existe " +"également des variantes non appelables, utiles lorsque l'on simule des " +"objets qui ne sont pas appelables : :class:`NonCallableMock` et :class:" +"`NonCallableMagicMock`" + +#: ../Doc/library/unittest.mock.rst:198 +msgid "" +"The :func:`patch` decorators makes it easy to temporarily replace classes in " +"a particular module with a :class:`Mock` object. By default :func:`patch` " +"will create a :class:`MagicMock` for you. You can specify an alternative " +"class of :class:`Mock` using the *new_callable* argument to :func:`patch`." +msgstr "" +"Le décorateur :func:`patch` facilite le remplacement temporaire de classes " +"d'un module avec un objet :class:`Mock`. Par défaut :func:`patch` crée un :" +"class:`MagicMock`. On peut spécifier une classe alternative de :class:`Mock` " +"en utilisant le paramètre *new_callable* de :func:`patch`." + +#: ../Doc/library/unittest.mock.rst:206 +msgid "" +"Create a new :class:`Mock` object. :class:`Mock` takes several optional " +"arguments that specify the behaviour of the Mock object:" +msgstr "" +"Crée un nouvel objet :class:`Mock`. :class:`Mock` prend plusieurs arguments " +"optionnels qui spécifient le comportement de l'objet *Mock* ::" + +#: ../Doc/library/unittest.mock.rst:209 +msgid "" +"*spec*: This can be either a list of strings or an existing object (a class " +"or instance) that acts as the specification for the mock object. If you pass " +"in an object then a list of strings is formed by calling dir on the object " +"(excluding unsupported magic attributes and methods). Accessing any " +"attribute not in this list will raise an :exc:`AttributeError`." +msgstr "" +"*spec* : une liste de chaînes de caractères ou un objet existant (une classe " +"ou une instance) qui sert de spécification pour l'objet simulacre. Si on " +"passe un objet, alors une liste de chaînes de caractères est formée en " +"appelant la fonction *dir* sur l'objet (à l'exclusion des attributs et " +"méthodes magiques non pris en charge). L'accès à un attribut qui n'est pas " +"dans cette liste entraîne la levée d'une exception :exc:`AttributeError`." + +#: ../Doc/library/unittest.mock.rst:215 +msgid "" +"If *spec* is an object (rather than a list of strings) then :attr:`~instance." +"__class__` returns the class of the spec object. This allows mocks to pass :" +"func:`isinstance` tests." +msgstr "" +"Si *spec* est un objet (plutôt qu'une liste de chaînes de caractères) alors :" +"attr:`~instance.__class__` renvoie la classe de l'objet spécifié. Ceci " +"permet aux *mocks* de passer les tests :func:`isinstance`." + +#: ../Doc/library/unittest.mock.rst:219 +msgid "" +"*spec_set*: A stricter variant of *spec*. If used, attempting to *set* or " +"get an attribute on the mock that isn't on the object passed as *spec_set* " +"will raise an :exc:`AttributeError`." +msgstr "" +"*spec_set* : variante plus stricte de *spec*. S'il est utilisé, essayer " +"d'utiliser la fonction *set* ou tenter d’accéder à un attribut sur le *mock* " +"qui n'est pas sur l'objet passé comme *spec_set* lève une exception :exc:" +"`AttributeError`." + +#: ../Doc/library/unittest.mock.rst:223 +msgid "" +"*side_effect*: A function to be called whenever the Mock is called. See the :" +"attr:`~Mock.side_effect` attribute. Useful for raising exceptions or " +"dynamically changing return values. The function is called with the same " +"arguments as the mock, and unless it returns :data:`DEFAULT`, the return " +"value of this function is used as the return value." +msgstr "" +"*side_effect* : fonction à appeler à chaque fois que le *Mock* est appelé. " +"Voir l'attribut :attr:`~Mock.side_effect`. Utile pour lever des exceptions " +"ou modifier dynamiquement les valeurs de retour. La fonction est appelée " +"avec les mêmes arguments que la fonction simulée et, à moins qu'elle ne " +"renvoie :data:`DEFAULT`, la valeur de retour de cette fonction devient la " +"valeur de retour de la fonction simulée." + +#: ../Doc/library/unittest.mock.rst:229 +msgid "" +"Alternatively *side_effect* can be an exception class or instance. In this " +"case the exception will be raised when the mock is called." +msgstr "" +"*side_effect* peut être soit une classe, soit une instance d'exception. Dans " +"ce cas, l'exception est levée lors de l'appel de l'objet simulacre." + +#: ../Doc/library/unittest.mock.rst:232 +msgid "" +"If *side_effect* is an iterable then each call to the mock will return the " +"next value from the iterable." +msgstr "" +"Si *side_effect* est un itérable alors chaque appel au *mock* renvoie la " +"valeur suivante de l’itérable." + +#: ../Doc/library/unittest.mock.rst:235 +msgid "A *side_effect* can be cleared by setting it to ``None``." +msgstr "Utilisez ``None`` pour remettre à zéro un *side_effect*." + +#: ../Doc/library/unittest.mock.rst:237 +msgid "" +"*return_value*: The value returned when the mock is called. By default this " +"is a new Mock (created on first access). See the :attr:`return_value` " +"attribute." +msgstr "" +"*return_value* : valeur renvoyée lors de l'appel de l'objet simulacre. Par " +"défaut, il s'agit d'un nouveau *Mock* (créé lors du premier accès). Voir " +"l'attribut :attr:`return_value`." + +#: ../Doc/library/unittest.mock.rst:241 +msgid "" +"*unsafe*: By default if any attribute starts with *assert* or *assret* will " +"raise an :exc:`AttributeError`. Passing ``unsafe=True`` will allow access to " +"these attributes." +msgstr "" +"*unsafe* : par défaut, si un attribut commence par *assert* ou *assret*, une " +"exception :exc:`AttributeError` est levée. Le fait de passer ``unsafe=True`` " +"permet d'accéder à ces attributs." + +#: ../Doc/library/unittest.mock.rst:247 +msgid "" +"*wraps*: Item for the mock object to wrap. If *wraps* is not ``None`` then " +"calling the Mock will pass the call through to the wrapped object (returning " +"the real result). Attribute access on the mock will return a Mock object " +"that wraps the corresponding attribute of the wrapped object (so attempting " +"to access an attribute that doesn't exist will raise an :exc:" +"`AttributeError`)." +msgstr "" +"*wraps* : élément que le simulacre doit simuler. Si *wraps* n'est pas " +"``None`` alors appeler *Mock* passe l'appel à l'objet simulé (renvoyant le " +"résultat réel). L'accès à un attribut sur le *mock* renvoie un objet *Mock* " +"qui simule l'attribut correspondant de l'objet simulé (donc essayer " +"d'accéder à un attribut qui n'existe pas lève une exception :exc:" +"`AttributeError`)." + +#: ../Doc/library/unittest.mock.rst:254 +msgid "" +"If the mock has an explicit *return_value* set then calls are not passed to " +"the wrapped object and the *return_value* is returned instead." +msgstr "" +"Si l'objet simulacre a un ensemble explicite de *return_value* alors les " +"appels ne sont pas passés à l'objet simulé et c'est *return_value* qui est " +"renvoyée à la place." + +#: ../Doc/library/unittest.mock.rst:257 +msgid "" +"*name*: If the mock has a name then it will be used in the repr of the mock. " +"This can be useful for debugging. The name is propagated to child mocks." +msgstr "" +"*name* : Si le *mock* a un nom, il est alors utilisé par la fonction *repr* " +"du *mock*. C'est utile pour le débogage. Le nom est propagé aux enfants de " +"l'objet *mock*." + +#: ../Doc/library/unittest.mock.rst:261 +msgid "" +"Mocks can also be called with arbitrary keyword arguments. These will be " +"used to set attributes on the mock after it is created. See the :meth:" +"`configure_mock` method for details." +msgstr "" +"Les *mocks* peuvent aussi être appelés avec des arguments par mots-clés " +"arbitraires. Ceux-ci sont utilisés pour définir les attributs sur le *mock* " +"après sa création. Voir la méthode :meth:`configure_mock` pour plus de " +"détails." + +#: ../Doc/library/unittest.mock.rst:267 +msgid "Assert that the mock was called at least once." +msgstr "Asserter que le *mock* a été appelé au moins une fois." + +#: ../Doc/library/unittest.mock.rst:278 +msgid "Assert that the mock was called exactly once." +msgstr "Asserter que le *mock* a été appelé exactement une fois." + +#: ../Doc/library/unittest.mock.rst:296 +msgid "" +"This method is a convenient way of asserting that calls are made in a " +"particular way:" +msgstr "" +"Cette méthode est un moyen pratique d'asserter que les appels sont effectués " +"d'une manière particulière ::" + +#: ../Doc/library/unittest.mock.rst:306 +msgid "" +"Assert that the mock was called exactly once and that that call was with the " +"specified arguments." +msgstr "" +"Asserter que le simulacre a été appelé exactement une fois et que cet appel " +"était avec les arguments spécifiés." + +#: ../Doc/library/unittest.mock.rst:321 +msgid "assert the mock has been called with the specified arguments." +msgstr "Asserter que le simulacre a été appelé avec les arguments spécifiés." + +#: ../Doc/library/unittest.mock.rst:323 +msgid "" +"The assert passes if the mock has *ever* been called, unlike :meth:" +"`assert_called_with` and :meth:`assert_called_once_with` that only pass if " +"the call is the most recent one, and in the case of :meth:" +"`assert_called_once_with` it must also be the only call." +msgstr "" +"Asserter que le simulacre a *bien* été appelé avec les arguments au cours de " +"la vie du simulacre. Contrairement à :meth:`assert_called_with` et :meth:" +"`assert_called_once_with` qui passent seulement si l'appel demandé " +"correspond bien au dernier appel, et dans le cas de :meth:" +"`assert_called_once_with` l'appel au simulacre doit être unique." + +#: ../Doc/library/unittest.mock.rst:336 +msgid "" +"assert the mock has been called with the specified calls. The :attr:" +"`mock_calls` list is checked for the calls." +msgstr "" +"Asserter que le simulacre a été appelé avec les appels spécifiés. " +"L'attribut :attr:`mock_calls` est comparé à la liste des appels." + +#: ../Doc/library/unittest.mock.rst:339 +msgid "" +"If *any_order* is false (the default) then the calls must be sequential. " +"There can be extra calls before or after the specified calls." +msgstr "" +"Si *any_order* est faux (la valeur par défaut) alors les appels doivent être " +"séquentiels. Il peut y avoir des appels supplémentaires avant ou après les " +"appels spécifiés." + +#: ../Doc/library/unittest.mock.rst:343 +msgid "" +"If *any_order* is true then the calls can be in any order, but they must all " +"appear in :attr:`mock_calls`." +msgstr "" +"Si *any_order* est vrai alors les appels peuvent être dans n'importe quel " +"ordre, mais ils doivent tous apparaître dans :attr:`mock_calls`." + +#: ../Doc/library/unittest.mock.rst:358 +msgid "Assert the mock was never called." +msgstr "Asserter que le simulacre n'a jamais été appelé." + +#: ../Doc/library/unittest.mock.rst:373 +msgid "The reset_mock method resets all the call attributes on a mock object:" +msgstr "" +"La méthode *reset_mock* réinitialise tous les attributs d'appel sur un " +"simulacre :" + +#: ../Doc/library/unittest.mock.rst:383 +msgid "Added two keyword only argument to the reset_mock function." +msgstr "Ajout de deux arguments nommés à la fonction *reset_mock*." + +#: ../Doc/library/unittest.mock.rst:386 +msgid "" +"This can be useful where you want to make a series of assertions that reuse " +"the same object. Note that :meth:`reset_mock` *doesn't* clear the return " +"value, :attr:`side_effect` or any child attributes you have set using normal " +"assignment by default. In case you want to reset *return_value* or :attr:" +"`side_effect`, then pass the corresponding parameter as ``True``. Child " +"mocks and the return value mock (if any) are reset as well." +msgstr "" +"Utile pour faire une série d'assertions qui réutilisent le même objet. " +"Attention :meth:`reset_mock` *ne réinitialise pas* la valeur de retour, les :" +"attr:`side_effect` ou tout attribut enfant que vous avez défini en utilisant " +"l'affectation normale par défaut. Pour réinitialiser *return_value* ou :attr:" +"`side_effect`, utiliser les paramètres correspondants avec la valeur " +"``True``. Les simulacres enfants et le simulacre de valeur de retour (le cas " +"échéant) seront également réinitialisés." + +#: ../Doc/library/unittest.mock.rst:394 +msgid "*return_value*, and :attr:`side_effect` are keyword only argument." +msgstr "" +"*return_value*, et :attr:`side_effect` sont utilisable uniquement par " +"arguments nommés." + +#: ../Doc/library/unittest.mock.rst:400 +msgid "" +"Add a spec to a mock. *spec* can either be an object or a list of strings. " +"Only attributes on the *spec* can be fetched as attributes from the mock." +msgstr "" +"Ajoute une spécification à un simulacre. *spec* peut être un objet ou une " +"liste de chaînes de caractères. Seuls les attributs de la spécification " +"*spec* peuvent être récupérés en tant qu'attributs du simulacre." + +#: ../Doc/library/unittest.mock.rst:404 +msgid "If *spec_set* is true then only attributes on the spec can be set." +msgstr "" +"Si *spec_set* est vrai, seuls les attributs de la spécification peuvent être " +"définis." + +#: ../Doc/library/unittest.mock.rst:409 +msgid "" +"Attach a mock as an attribute of this one, replacing its name and parent. " +"Calls to the attached mock will be recorded in the :attr:`method_calls` and :" +"attr:`mock_calls` attributes of this one." +msgstr "" +"Attache un simulacre comme attribut de l'instance courante, en remplaçant " +"son nom et son parent. Les appels au simulacre attaché sont enregistrés dans " +"les attributs :attr:`method_calls` et :attr:`mock_calls` de l'instance " +"courante." + +#: ../Doc/library/unittest.mock.rst:416 +msgid "Set attributes on the mock through keyword arguments." +msgstr "Définir les attributs sur le simulacre à l'aide d'arguments nommés." + +#: ../Doc/library/unittest.mock.rst:418 +msgid "" +"Attributes plus return values and side effects can be set on child mocks " +"using standard dot notation and unpacking a dictionary in the method call:" +msgstr "" +"Les attributs, les valeurs de retour et les effets de bords peuvent être " +"définis sur des simulacres enfants en utilisant la notation par points " +"standard et en dépaquetant un dictionnaire dans l'appel de méthode :" + +#: ../Doc/library/unittest.mock.rst:432 +msgid "The same thing can be achieved in the constructor call to mocks:" +msgstr "" +"La même chose peut être réalisée en utilisant le constructeur des " +"simulacres :" + +#: ../Doc/library/unittest.mock.rst:445 +msgid "" +":meth:`configure_mock` exists to make it easier to do configuration after " +"the mock has been created." +msgstr "" +":meth:`configure_mock` existe pour faciliter la configuration après la " +"création du simulacre." + +#: ../Doc/library/unittest.mock.rst:451 +msgid "" +":class:`Mock` objects limit the results of ``dir(some_mock)`` to useful " +"results. For mocks with a *spec* this includes all the permitted attributes " +"for the mock." +msgstr "" +"Les objets :class:`Mock` limitent les résultats de ``dir(un_mock)`` à des " +"résultats utiles. Pour les simulacres avec une spécification *spec*, cela " +"inclut tous les attributs autorisés du simulacre." + +#: ../Doc/library/unittest.mock.rst:455 +msgid "" +"See :data:`FILTER_DIR` for what this filtering does, and how to switch it " +"off." +msgstr "" +"Voir :data:`FILTER_DIR` pour savoir ce que fait ce filtrage, et comment le " +"désactiver." + +#: ../Doc/library/unittest.mock.rst:461 +msgid "" +"Create the child mocks for attributes and return value. By default child " +"mocks will be the same type as the parent. Subclasses of Mock may want to " +"override this to customize the way child mocks are made." +msgstr "" +"Crée les simulacres enfants pour les attributs et la valeur de retour. Par " +"défaut, les objets simulacre enfants sont du même type que le parent. Les " +"sous-classes de *Mock* peuvent surcharger cette méthode pour personnaliser " +"la façon dont les simulacres enfants sont créés." + +#: ../Doc/library/unittest.mock.rst:466 +msgid "" +"For non-callable mocks the callable variant will be used (rather than any " +"custom subclass)." +msgstr "" +"Pour les simulacres non appelables, la variante appelable est utilisée " +"(plutôt qu'une sous-classe personnalisée)." + +#: ../Doc/library/unittest.mock.rst:472 +msgid "A boolean representing whether or not the mock object has been called:" +msgstr "Un booléen représentant si le simulacre a bien été appelé ou non :" + +#: ../Doc/library/unittest.mock.rst:483 +msgid "An integer telling you how many times the mock object has been called:" +msgstr "Un entier indiquant combien de fois le simulacre a été appelé :" + +#: ../Doc/library/unittest.mock.rst:496 +msgid "Set this to configure the value returned by calling the mock:" +msgstr "" +"Définir cette option pour configurer la valeur renvoyé par appel du " +"simulacre :" + +#: ../Doc/library/unittest.mock.rst:503 +msgid "" +"The default return value is a mock object and you can configure it in the " +"normal way:" +msgstr "" +"La valeur de revoie par défaut est un simulacre configurable normalement :" + +#: ../Doc/library/unittest.mock.rst:512 +msgid ":attr:`return_value` can also be set in the constructor:" +msgstr "" +"L'attribut :attr:`return_value` peut également être défini dans le " +"constructeur :" + +#: ../Doc/library/unittest.mock.rst:523 +msgid "" +"This can either be a function to be called when the mock is called, an " +"iterable or an exception (class or instance) to be raised." +msgstr "" +"C'est soit une fonction à appeler lors de l'appel du simulacre, soit une " +"exception (classe ou instance) à lever." + +#: ../Doc/library/unittest.mock.rst:526 +msgid "" +"If you pass in a function it will be called with same arguments as the mock " +"and unless the function returns the :data:`DEFAULT` singleton the call to " +"the mock will then return whatever the function returns. If the function " +"returns :data:`DEFAULT` then the mock will return its normal value (from " +"the :attr:`return_value`)." +msgstr "" +"Si vous passez une fonction, elle est appelée avec les mêmes arguments que " +"la fonction simulée et à moins que la fonction ne renvoie le singleton :data:" +"`DEFAULT` l'appel le la fonction simulée renvoie ce que la fonction renvoie. " +"Si la fonction renvoie :data:`DEFAULT` alors le simulacre renvoie sa valeur " +"normale (celle de :attr:`return_value`)." + +#: ../Doc/library/unittest.mock.rst:532 +msgid "" +"If you pass in an iterable, it is used to retrieve an iterator which must " +"yield a value on every call. This value can either be an exception instance " +"to be raised, or a value to be returned from the call to the mock (:data:" +"`DEFAULT` handling is identical to the function case)." +msgstr "" +"Si vous passez un itérable, il est utilisé pour récupérer un itérateur qui " +"doit renvoyer une valeur à chaque appel. Cette valeur peut être soit une " +"instance d'exception à lever, soit une valeur à renvoyer à l'appel au " +"simulacre (le traitement :data:`DEFAULT` est identique au renvoie de la " +"fonction simulée)." + +#: ../Doc/library/unittest.mock.rst:537 +msgid "" +"An example of a mock that raises an exception (to test exception handling of " +"an API):" +msgstr "" +"Un exemple d'un simulacre qui lève une exception (pour tester la gestion des " +"exceptions d'une API) :" + +#: ../Doc/library/unittest.mock.rst:547 +msgid "Using :attr:`side_effect` to return a sequence of values:" +msgstr "Utiliser :attr:`side_effect` pour renvoyer une séquence de valeurs :" + +#: ../Doc/library/unittest.mock.rst:554 +msgid "Using a callable:" +msgstr "Utilisation d'un objet appelable :" + +#: ../Doc/library/unittest.mock.rst:564 +msgid "" +":attr:`side_effect` can be set in the constructor. Here's an example that " +"adds one to the value the mock is called with and returns it:" +msgstr "" +"Un attribut :attr:`side_effect` peut être défini dans le constructeur. Voici " +"un exemple qui ajoute un à la valeur du simulacre appelé et qui le renvoie :" + +#: ../Doc/library/unittest.mock.rst:574 +msgid "Setting :attr:`side_effect` to ``None`` clears it:" +msgstr "Positionner :attr:`side_effect` sur ``None`` l'efface :" + +#: ../Doc/library/unittest.mock.rst:588 +msgid "" +"This is either ``None`` (if the mock hasn't been called), or the arguments " +"that the mock was last called with. This will be in the form of a tuple: the " +"first member is any ordered arguments the mock was called with (or an empty " +"tuple) and the second member is any keyword arguments (or an empty " +"dictionary)." +msgstr "" +"C'est soit ``None`` (si le simulacre n'a pas été appelé), soit les arguments " +"avec lesquels le simulacre a été appelé en dernier. Le retour est sous la " +"forme d'un tuple : le premier élément est l'ensemble des arguments ordonnés " +"avec lequel le simulacre a été appelé (ou un tuple vide) et le second " +"élément est l'ensemble des arguments nommés (ou un dictionnaire vide)." + +#: ../Doc/library/unittest.mock.rst:611 +msgid "" +":attr:`call_args`, along with members of the lists :attr:`call_args_list`, :" +"attr:`method_calls` and :attr:`mock_calls` are :data:`call` objects. These " +"are tuples, so they can be unpacked to get at the individual arguments and " +"make more complex assertions. See :ref:`calls as tuples `." +msgstr "" +"L'attribut :attr:`call_args`, ainsi que les éléments des listes :attr:" +"`call_args_list`, :attr:`method_calls` et :attr:`mock_calls` sont des " +"objets :data:`call`. Ce sont des tuples, que l'on peut dépaqueter afin de " +"faire des affirmations plus complexes sur chacun des arguments. Voir :ref:" +"`appels comme tuples `." + +#: ../Doc/library/unittest.mock.rst:620 +msgid "" +"This is a list of all the calls made to the mock object in sequence (so the " +"length of the list is the number of times it has been called). Before any " +"calls have been made it is an empty list. The :data:`call` object can be " +"used for conveniently constructing lists of calls to compare with :attr:" +"`call_args_list`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:636 +msgid "" +"Members of :attr:`call_args_list` are :data:`call` objects. These can be " +"unpacked as tuples to get at the individual arguments. See :ref:`calls as " +"tuples `." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:643 +msgid "" +"As well as tracking calls to themselves, mocks also track calls to methods " +"and attributes, and *their* methods and attributes:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:654 +msgid "" +"Members of :attr:`method_calls` are :data:`call` objects. These can be " +"unpacked as tuples to get at the individual arguments. See :ref:`calls as " +"tuples `." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:661 +msgid "" +":attr:`mock_calls` records *all* calls to the mock object, its methods, " +"magic methods *and* return value mocks." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:679 +msgid "" +"Members of :attr:`mock_calls` are :data:`call` objects. These can be " +"unpacked as tuples to get at the individual arguments. See :ref:`calls as " +"tuples `." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:685 +msgid "" +"The way :attr:`mock_calls` are recorded means that where nested calls are " +"made, the parameters of ancestor calls are not recorded and so will always " +"compare equal:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:699 +msgid "" +"Normally the :attr:`__class__` attribute of an object will return its type. " +"For a mock object with a :attr:`spec`, ``__class__`` returns the spec class " +"instead. This allows mock objects to pass :func:`isinstance` tests for the " +"object they are replacing / masquerading as:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:708 +msgid "" +":attr:`__class__` is assignable to, this allows a mock to pass an :func:" +"`isinstance` check without forcing you to use a spec:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:718 +msgid "" +"A non-callable version of :class:`Mock`. The constructor parameters have the " +"same meaning of :class:`Mock`, with the exception of *return_value* and " +"*side_effect* which have no meaning on a non-callable mock." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:722 +msgid "" +"Mock objects that use a class or an instance as a :attr:`spec` or :attr:" +"`spec_set` are able to pass :func:`isinstance` tests:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:732 +msgid "" +"The :class:`Mock` classes have support for mocking magic methods. See :ref:" +"`magic methods ` for the full details." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:735 +msgid "" +"The mock classes and the :func:`patch` decorators all take arbitrary keyword " +"arguments for configuration. For the :func:`patch` decorators the keywords " +"are passed to the constructor of the mock being created. The keyword " +"arguments are for configuring attributes of the mock:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:746 +msgid "" +"The return value and side effect of child mocks can be set in the same way, " +"using dotted notation. As you can't use dotted names directly in a call you " +"have to create a dictionary and unpack it using ``**``:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:761 +msgid "" +"A callable mock which was created with a *spec* (or a *spec_set*) will " +"introspect the specification object's signature when matching calls to the " +"mock. Therefore, it can match the actual call's arguments regardless of " +"whether they were passed positionally or by name::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:774 +msgid "" +"This applies to :meth:`~Mock.assert_called_with`, :meth:`~Mock." +"assert_called_once_with`, :meth:`~Mock.assert_has_calls` and :meth:`~Mock." +"assert_any_call`. When :ref:`auto-speccing`, it will also apply to method " +"calls on the mock object." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:779 +msgid "Added signature introspection on specced and autospecced mock objects." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:785 +msgid "" +"A mock intended to be used as a property, or other descriptor, on a class. :" +"class:`PropertyMock` provides :meth:`__get__` and :meth:`__set__` methods so " +"you can specify a return value when it is fetched." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:789 +msgid "" +"Fetching a :class:`PropertyMock` instance from an object calls the mock, " +"with no args. Setting it calls the mock with the value being set." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:810 +msgid "" +"Because of the way mock attributes are stored you can't directly attach a :" +"class:`PropertyMock` to a mock object. Instead you can attach it to the mock " +"type object::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:823 +msgid "Calling" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:825 +msgid "" +"Mock objects are callable. The call will return the value set as the :attr:" +"`~Mock.return_value` attribute. The default return value is a new Mock " +"object; it is created the first time the return value is accessed (either " +"explicitly or by calling the Mock) - but it is stored and the same one " +"returned each time." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:831 +msgid "" +"Calls made to the object will be recorded in the attributes like :attr:" +"`~Mock.call_args` and :attr:`~Mock.call_args_list`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:834 +msgid "" +"If :attr:`~Mock.side_effect` is set then it will be called after the call " +"has been recorded, so if :attr:`side_effect` raises an exception the call is " +"still recorded." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:838 +msgid "" +"The simplest way to make a mock raise an exception when called is to make :" +"attr:`~Mock.side_effect` an exception class or instance:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:856 +msgid "" +"If :attr:`side_effect` is a function then whatever that function returns is " +"what calls to the mock return. The :attr:`side_effect` function is called " +"with the same arguments as the mock. This allows you to vary the return " +"value of the call dynamically, based on the input:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:872 +msgid "" +"If you want the mock to still return the default return value (a new mock), " +"or any set return value, then there are two ways of doing this. Either " +"return :attr:`mock.return_value` from inside :attr:`side_effect`, or return :" +"data:`DEFAULT`:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:891 +msgid "" +"To remove a :attr:`side_effect`, and return to the default behaviour, set " +"the :attr:`side_effect` to ``None``:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:905 +msgid "" +"The :attr:`side_effect` can also be any iterable object. Repeated calls to " +"the mock will return values from the iterable (until the iterable is " +"exhausted and a :exc:`StopIteration` is raised):" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:921 +msgid "" +"If any members of the iterable are exceptions they will be raised instead of " +"returned::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:939 +msgid "Deleting Attributes" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:941 +msgid "" +"Mock objects create attributes on demand. This allows them to pretend to be " +"objects of any type." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:944 +msgid "" +"You may want a mock object to return ``False`` to a :func:`hasattr` call, or " +"raise an :exc:`AttributeError` when an attribute is fetched. You can do this " +"by providing an object as a :attr:`spec` for a mock, but that isn't always " +"convenient." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:948 +msgid "" +"You \"block\" attributes by deleting them. Once deleted, accessing an " +"attribute will raise an :exc:`AttributeError`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:965 +msgid "Mock names and the name attribute" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:967 +msgid "" +"Since \"name\" is an argument to the :class:`Mock` constructor, if you want " +"your mock object to have a \"name\" attribute you can't just pass it in at " +"creation time. There are two alternatives. One option is to use :meth:`~Mock." +"configure_mock`::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:977 +msgid "" +"A simpler option is to simply set the \"name\" attribute after mock " +"creation::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:984 +msgid "Attaching Mocks as Attributes" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:986 +msgid "" +"When you attach a mock as an attribute of another mock (or as the return " +"value) it becomes a \"child\" of that mock. Calls to the child are recorded " +"in the :attr:`~Mock.method_calls` and :attr:`~Mock.mock_calls` attributes of " +"the parent. This is useful for configuring child mocks and then attaching " +"them to the parent, or for attaching mocks to a parent that records all " +"calls to the children and allows you to make assertions about the order of " +"calls between mocks:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1004 +msgid "" +"The exception to this is if the mock has a name. This allows you to prevent " +"the \"parenting\" if for some reason you don't want it to happen." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1015 +msgid "" +"Mocks created for you by :func:`patch` are automatically given names. To " +"attach mocks that have names to a parent you use the :meth:`~Mock." +"attach_mock` method:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1033 +msgid "" +"The only exceptions are magic methods and attributes (those that have " +"leading and trailing double underscores). Mock doesn't create these but " +"instead raises an :exc:`AttributeError`. This is because the interpreter " +"will often implicitly request these methods, and gets *very* confused to get " +"a new Mock object when it expects a magic method. If you need magic method " +"support see :ref:`magic methods `." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1042 +msgid "The patchers" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1044 +msgid "" +"The patch decorators are used for patching objects only within the scope of " +"the function they decorate. They automatically handle the unpatching for " +"you, even if exceptions are raised. All of these functions can also be used " +"in with statements or as class decorators." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1051 +msgid "patch" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1055 +msgid "" +":func:`patch` is straightforward to use. The key is to do the patching in " +"the right namespace. See the section `where to patch`_." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1060 +msgid "" +":func:`patch` acts as a function decorator, class decorator or a context " +"manager. Inside the body of the function or with statement, the *target* is " +"patched with a *new* object. When the function/with statement exits the " +"patch is undone." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1065 +msgid "" +"If *new* is omitted, then the target is replaced with a :class:`MagicMock`. " +"If :func:`patch` is used as a decorator and *new* is omitted, the created " +"mock is passed in as an extra argument to the decorated function. If :func:" +"`patch` is used as a context manager the created mock is returned by the " +"context manager." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1071 +msgid "" +"*target* should be a string in the form ``'package.module.ClassName'``. The " +"*target* is imported and the specified object replaced with the *new* " +"object, so the *target* must be importable from the environment you are " +"calling :func:`patch` from. The target is imported when the decorated " +"function is executed, not at decoration time." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1077 +msgid "" +"The *spec* and *spec_set* keyword arguments are passed to the :class:" +"`MagicMock` if patch is creating one for you." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1080 +msgid "" +"In addition you can pass ``spec=True`` or ``spec_set=True``, which causes " +"patch to pass in the object being mocked as the spec/spec_set object." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1083 +msgid "" +"*new_callable* allows you to specify a different class, or callable object, " +"that will be called to create the *new* object. By default :class:" +"`MagicMock` is used." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1087 +msgid "" +"A more powerful form of *spec* is *autospec*. If you set ``autospec=True`` " +"then the mock will be created with a spec from the object being replaced. " +"All attributes of the mock will also have the spec of the corresponding " +"attribute of the object being replaced. Methods and functions being mocked " +"will have their arguments checked and will raise a :exc:`TypeError` if they " +"are called with the wrong signature. For mocks replacing a class, their " +"return value (the 'instance') will have the same spec as the class. See the :" +"func:`create_autospec` function and :ref:`auto-speccing`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1097 +msgid "" +"Instead of ``autospec=True`` you can pass ``autospec=some_object`` to use an " +"arbitrary object as the spec instead of the one being replaced." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1100 +msgid "" +"By default :func:`patch` will fail to replace attributes that don't exist. " +"If you pass in ``create=True``, and the attribute doesn't exist, patch will " +"create the attribute for you when the patched function is called, and delete " +"it again after the patched function has exited. This is useful for writing " +"tests against attributes that your production code creates at runtime. It is " +"off by default because it can be dangerous. With it switched on you can " +"write passing tests against APIs that don't actually exist!" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1110 +msgid "" +"If you are patching builtins in a module then you don't need to pass " +"``create=True``, it will be added by default." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1114 +msgid "" +"Patch can be used as a :class:`TestCase` class decorator. It works by " +"decorating each test method in the class. This reduces the boilerplate code " +"when your test methods share a common patchings set. :func:`patch` finds " +"tests by looking for method names that start with ``patch.TEST_PREFIX``. By " +"default this is ``'test'``, which matches the way :mod:`unittest` finds " +"tests. You can specify an alternative prefix by setting ``patch." +"TEST_PREFIX``." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1121 +msgid "" +"Patch can be used as a context manager, with the with statement. Here the " +"patching applies to the indented block after the with statement. If you use " +"\"as\" then the patched object will be bound to the name after the \"as\"; " +"very useful if :func:`patch` is creating a mock object for you." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1126 +msgid "" +":func:`patch` takes arbitrary keyword arguments. These will be passed to " +"the :class:`Mock` (or *new_callable*) on construction." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1129 +msgid "" +"``patch.dict(...)``, ``patch.multiple(...)`` and ``patch.object(...)`` are " +"available for alternate use-cases." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1132 +msgid "" +":func:`patch` as function decorator, creating the mock for you and passing " +"it into the decorated function:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1142 +msgid "" +"Patching a class replaces the class with a :class:`MagicMock` *instance*. If " +"the class is instantiated in the code under test then it will be the :attr:" +"`~Mock.return_value` of the mock that will be used." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1146 +msgid "" +"If the class is instantiated multiple times you could use :attr:`~Mock." +"side_effect` to return a new mock each time. Alternatively you can set the " +"*return_value* to be anything you want." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1150 +msgid "" +"To configure return values on methods of *instances* on the patched class " +"you must do this on the :attr:`return_value`. For example:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1164 +msgid "" +"If you use *spec* or *spec_set* and :func:`patch` is replacing a *class*, " +"then the return value of the created mock will have the same spec." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1174 +msgid "" +"The *new_callable* argument is useful where you want to use an alternative " +"class to the default :class:`MagicMock` for the created mock. For example, " +"if you wanted a :class:`NonCallableMock` to be used:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1187 +msgid "" +"Another use case might be to replace an object with an :class:`io.StringIO` " +"instance:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1200 +msgid "" +"When :func:`patch` is creating a mock for you, it is common that the first " +"thing you need to do is to configure the mock. Some of that configuration " +"can be done in the call to patch. Any arbitrary keywords you pass into the " +"call will be used to set attributes on the created mock:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1212 +msgid "" +"As well as attributes on the created mock attributes, like the :attr:`~Mock." +"return_value` and :attr:`~Mock.side_effect`, of child mocks can also be " +"configured. These aren't syntactically valid to pass in directly as keyword " +"arguments, but a dictionary with these as keys can still be expanded into a :" +"func:`patch` call using ``**``:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1228 +msgid "" +"By default, attempting to patch a function in a module (or a method or an " +"attribute in a class) that does not exist will fail with :exc:" +"`AttributeError`::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1240 +msgid "" +"but adding ``create=True`` in the call to :func:`patch` will make the " +"previous example work as expected::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1251 +msgid "patch.object" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1255 +msgid "" +"patch the named member (*attribute*) on an object (*target*) with a mock " +"object." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1258 +msgid "" +":func:`patch.object` can be used as a decorator, class decorator or a " +"context manager. Arguments *new*, *spec*, *create*, *spec_set*, *autospec* " +"and *new_callable* have the same meaning as for :func:`patch`. Like :func:" +"`patch`, :func:`patch.object` takes arbitrary keyword arguments for " +"configuring the mock object it creates." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1264 +msgid "" +"When used as a class decorator :func:`patch.object` honours ``patch." +"TEST_PREFIX`` for choosing which methods to wrap." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1267 +msgid "" +"You can either call :func:`patch.object` with three arguments or two " +"arguments. The three argument form takes the object to be patched, the " +"attribute name and the object to replace the attribute with." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1271 +msgid "" +"When calling with the two argument form you omit the replacement object, and " +"a mock is created for you and passed in as an extra argument to the " +"decorated function:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1282 +msgid "" +"*spec*, *create* and the other arguments to :func:`patch.object` have the " +"same meaning as they do for :func:`patch`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1287 +msgid "patch.dict" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1291 +msgid "" +"Patch a dictionary, or dictionary like object, and restore the dictionary to " +"its original state after the test." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1294 +msgid "" +"*in_dict* can be a dictionary or a mapping like container. If it is a " +"mapping then it must at least support getting, setting and deleting items " +"plus iterating over keys." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1298 +msgid "" +"*in_dict* can also be a string specifying the name of the dictionary, which " +"will then be fetched by importing it." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1301 +msgid "" +"*values* can be a dictionary of values to set in the dictionary. *values* " +"can also be an iterable of ``(key, value)`` pairs." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1304 +msgid "" +"If *clear* is true then the dictionary will be cleared before the new values " +"are set." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1307 +msgid "" +":func:`patch.dict` can also be called with arbitrary keyword arguments to " +"set values in the dictionary." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1310 +msgid "" +":func:`patch.dict` can be used as a context manager, decorator or class " +"decorator. When used as a class decorator :func:`patch.dict` honours ``patch." +"TEST_PREFIX`` for choosing which methods to wrap." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1314 +msgid "" +":func:`patch.dict` can be used to add members to a dictionary, or simply let " +"a test change a dictionary, and ensure the dictionary is restored when the " +"test ends." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1331 +msgid "" +"Keywords can be used in the :func:`patch.dict` call to set values in the " +"dictionary:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1341 +msgid "" +":func:`patch.dict` can be used with dictionary like objects that aren't " +"actually dictionaries. At the very minimum they must support item getting, " +"setting, deleting and either iteration or membership test. This corresponds " +"to the magic methods :meth:`__getitem__`, :meth:`__setitem__`, :meth:" +"`__delitem__` and either :meth:`__iter__` or :meth:`__contains__`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1370 +msgid "patch.multiple" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1374 +msgid "" +"Perform multiple patches in a single call. It takes the object to be patched " +"(either as an object or a string to fetch the object by importing) and " +"keyword arguments for the patches::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1381 +msgid "" +"Use :data:`DEFAULT` as the value if you want :func:`patch.multiple` to " +"create mocks for you. In this case the created mocks are passed into a " +"decorated function by keyword, and a dictionary is returned when :func:" +"`patch.multiple` is used as a context manager." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1386 +msgid "" +":func:`patch.multiple` can be used as a decorator, class decorator or a " +"context manager. The arguments *spec*, *spec_set*, *create*, *autospec* and " +"*new_callable* have the same meaning as for :func:`patch`. These arguments " +"will be applied to *all* patches done by :func:`patch.multiple`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1391 +msgid "" +"When used as a class decorator :func:`patch.multiple` honours ``patch." +"TEST_PREFIX`` for choosing which methods to wrap." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1394 +msgid "" +"If you want :func:`patch.multiple` to create mocks for you, then you can " +"use :data:`DEFAULT` as the value. If you use :func:`patch.multiple` as a " +"decorator then the created mocks are passed into the decorated function by " +"keyword." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1408 +msgid "" +":func:`patch.multiple` can be nested with other ``patch`` decorators, but " +"put arguments passed by keyword *after* any of the standard arguments " +"created by :func:`patch`:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1420 +msgid "" +"If :func:`patch.multiple` is used as a context manager, the value returned " +"by the context manager is a dictionary where created mocks are keyed by " +"name::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1434 +msgid "patch methods: start and stop" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1436 +msgid "" +"All the patchers have :meth:`start` and :meth:`stop` methods. These make it " +"simpler to do patching in ``setUp`` methods or where you want to do multiple " +"patches without nesting decorators or with statements." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1440 +msgid "" +"To use them call :func:`patch`, :func:`patch.object` or :func:`patch.dict` " +"as normal and keep a reference to the returned ``patcher`` object. You can " +"then call :meth:`start` to put the patch in place and :meth:`stop` to undo " +"it." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1444 +msgid "" +"If you are using :func:`patch` to create a mock for you then it will be " +"returned by the call to ``patcher.start``." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1458 +msgid "" +"A typical use case for this might be for doing multiple patches in the " +"``setUp`` method of a :class:`TestCase`:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1480 +msgid "" +"If you use this technique you must ensure that the patching is \"undone\" by " +"calling ``stop``. This can be fiddlier than you might think, because if an " +"exception is raised in the ``setUp`` then ``tearDown`` is not called. :meth:" +"`unittest.TestCase.addCleanup` makes this easier:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1495 +msgid "" +"As an added bonus you no longer need to keep a reference to the ``patcher`` " +"object." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1498 +msgid "" +"It is also possible to stop all patches which have been started by using :" +"func:`patch.stopall`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1503 +msgid "Stop all active patches. Only stops patches started with ``start``." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1509 +msgid "patch builtins" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1510 +msgid "" +"You can patch any builtins within a module. The following example patches " +"builtin :func:`ord`:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1523 +msgid "TEST_PREFIX" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1525 +msgid "" +"All of the patchers can be used as class decorators. When used in this way " +"they wrap every test method on the class. The patchers recognise methods " +"that start with ``'test'`` as being test methods. This is the same way that " +"the :class:`unittest.TestLoader` finds test methods by default." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1530 +msgid "" +"It is possible that you want to use a different prefix for your tests. You " +"can inform the patchers of the different prefix by setting ``patch." +"TEST_PREFIX``:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1553 +msgid "Nesting Patch Decorators" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1555 +msgid "" +"If you want to perform multiple patches then you can simply stack up the " +"decorators." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1558 +msgid "You can stack up multiple patch decorators using this pattern:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1574 +msgid "" +"Note that the decorators are applied from the bottom upwards. This is the " +"standard way that Python applies decorators. The order of the created mocks " +"passed into your test function matches this order." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1582 +msgid "Where to patch" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1584 +msgid "" +":func:`patch` works by (temporarily) changing the object that a *name* " +"points to with another one. There can be many names pointing to any " +"individual object, so for patching to work you must ensure that you patch " +"the name used by the system under test." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1589 +msgid "" +"The basic principle is that you patch where an object is *looked up*, which " +"is not necessarily the same place as where it is defined. A couple of " +"examples will help to clarify this." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1593 +msgid "" +"Imagine we have a project that we want to test with the following structure::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1602 +msgid "" +"Now we want to test ``some_function`` but we want to mock out ``SomeClass`` " +"using :func:`patch`. The problem is that when we import module b, which we " +"will have to do then it imports ``SomeClass`` from module a. If we use :func:" +"`patch` to mock out ``a.SomeClass`` then it will have no effect on our test; " +"module b already has a reference to the *real* ``SomeClass`` and it looks " +"like our patching had no effect." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1609 +msgid "" +"The key is to patch out ``SomeClass`` where it is used (or where it is " +"looked up). In this case ``some_function`` will actually look up " +"``SomeClass`` in module b, where we have imported it. The patching should " +"look like::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1615 +msgid "" +"However, consider the alternative scenario where instead of ``from a import " +"SomeClass`` module b does ``import a`` and ``some_function`` uses ``a." +"SomeClass``. Both of these import forms are common. In this case the class " +"we want to patch is being looked up in the module and so we have to patch " +"``a.SomeClass`` instead::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1624 +msgid "Patching Descriptors and Proxy Objects" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1626 +msgid "" +"Both patch_ and patch.object_ correctly patch and restore descriptors: class " +"methods, static methods and properties. You should patch these on the " +"*class* rather than an instance. They also work with *some* objects that " +"proxy attribute access, like the `django settings object `_." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1634 +msgid "MagicMock and magic method support" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1639 +msgid "Mocking Magic Methods" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1641 +msgid "" +":class:`Mock` supports mocking the Python protocol methods, also known as " +"\"magic methods\". This allows mock objects to replace containers or other " +"objects that implement Python protocols." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1645 +msgid "" +"Because magic methods are looked up differently from normal methods [#]_, " +"this support has been specially implemented. This means that only specific " +"magic methods are supported. The supported list includes *almost* all of " +"them. If there are any missing that you need please let us know." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1650 +msgid "" +"You mock magic methods by setting the method you are interested in to a " +"function or a mock instance. If you are using a function then it *must* take " +"``self`` as the first argument [#]_." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1673 +msgid "" +"One use case for this is for mocking objects used as context managers in a :" +"keyword:`with` statement:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1685 +msgid "" +"Calls to magic methods do not appear in :attr:`~Mock.method_calls`, but they " +"are recorded in :attr:`~Mock.mock_calls`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1690 +msgid "" +"If you use the *spec* keyword argument to create a mock then attempting to " +"set a magic method that isn't in the spec will raise an :exc:" +"`AttributeError`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1693 +msgid "The full list of supported magic methods is:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1695 +msgid "``__hash__``, ``__sizeof__``, ``__repr__`` and ``__str__``" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1696 +msgid "``__dir__``, ``__format__`` and ``__subclasses__``" +msgstr "``__dir__``, ``__format__`` et ``__subclasses__``" + +#: ../Doc/library/unittest.mock.rst:1697 +msgid "``__floor__``, ``__trunc__`` and ``__ceil__``" +msgstr "``__floor__``, ``__trunc__`` et ``__ceil__``" + +#: ../Doc/library/unittest.mock.rst:1698 +msgid "" +"Comparisons: ``__lt__``, ``__gt__``, ``__le__``, ``__ge__``, ``__eq__`` and " +"``__ne__``" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1700 +msgid "" +"Container methods: ``__getitem__``, ``__setitem__``, ``__delitem__``, " +"``__contains__``, ``__len__``, ``__iter__``, ``__reversed__`` and " +"``__missing__``" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1703 +msgid "Context manager: ``__enter__`` and ``__exit__``" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1704 +msgid "Unary numeric methods: ``__neg__``, ``__pos__`` and ``__invert__``" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1705 +msgid "" +"The numeric methods (including right hand and in-place variants): " +"``__add__``, ``__sub__``, ``__mul__``, ``__matmul__``, ``__div__``, " +"``__truediv__``, ``__floordiv__``, ``__mod__``, ``__divmod__``, " +"``__lshift__``, ``__rshift__``, ``__and__``, ``__xor__``, ``__or__``, and " +"``__pow__``" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1709 +msgid "" +"Numeric conversion methods: ``__complex__``, ``__int__``, ``__float__`` and " +"``__index__``" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1711 +msgid "Descriptor methods: ``__get__``, ``__set__`` and ``__delete__``" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1712 +msgid "" +"Pickling: ``__reduce__``, ``__reduce_ex__``, ``__getinitargs__``, " +"``__getnewargs__``, ``__getstate__`` and ``__setstate__``" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1716 +msgid "" +"The following methods exist but are *not* supported as they are either in " +"use by mock, can't be set dynamically, or can cause problems:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1719 +msgid "``__getattr__``, ``__setattr__``, ``__init__`` and ``__new__``" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1720 +msgid "" +"``__prepare__``, ``__instancecheck__``, ``__subclasscheck__``, ``__del__``" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1725 +msgid "Magic Mock" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1727 +msgid "" +"There are two ``MagicMock`` variants: :class:`MagicMock` and :class:" +"`NonCallableMagicMock`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1732 +msgid "" +"``MagicMock`` is a subclass of :class:`Mock` with default implementations of " +"most of the magic methods. You can use ``MagicMock`` without having to " +"configure the magic methods yourself." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1736 +msgid "The constructor parameters have the same meaning as for :class:`Mock`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1738 +msgid "" +"If you use the *spec* or *spec_set* arguments then *only* magic methods that " +"exist in the spec will be created." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1744 +msgid "A non-callable version of :class:`MagicMock`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1746 +msgid "" +"The constructor parameters have the same meaning as for :class:`MagicMock`, " +"with the exception of *return_value* and *side_effect* which have no meaning " +"on a non-callable mock." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1750 +msgid "" +"The magic methods are setup with :class:`MagicMock` objects, so you can " +"configure them and use them in the usual way:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1760 +msgid "" +"By default many of the protocol methods are required to return objects of a " +"specific type. These methods are preconfigured with a default return value, " +"so that they can be used without you having to do anything if you aren't " +"interested in the return value. You can still *set* the return value " +"manually if you want to change the default." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1766 +msgid "Methods and their defaults:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1768 +msgid "``__lt__``: NotImplemented" +msgstr "``__lt__``: NotImplemented" + +#: ../Doc/library/unittest.mock.rst:1769 +msgid "``__gt__``: NotImplemented" +msgstr "``__gt__``: NotImplemented" + +#: ../Doc/library/unittest.mock.rst:1770 +msgid "``__le__``: NotImplemented" +msgstr "``__le__``: NotImplemented" + +#: ../Doc/library/unittest.mock.rst:1771 +msgid "``__ge__``: NotImplemented" +msgstr "``__ge__``: NotImplemented" + +#: ../Doc/library/unittest.mock.rst:1772 +msgid "``__int__``: 1" +msgstr "``__int__``: 1" + +#: ../Doc/library/unittest.mock.rst:1773 +msgid "``__contains__``: False" +msgstr "``__contains__``: False" + +#: ../Doc/library/unittest.mock.rst:1774 +msgid "``__len__``: 0" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1775 +msgid "``__iter__``: iter([])" +msgstr "``__iter__``: iter([])" + +#: ../Doc/library/unittest.mock.rst:1776 +msgid "``__exit__``: False" +msgstr "``__exit__``: False" + +#: ../Doc/library/unittest.mock.rst:1777 +msgid "``__complex__``: 1j" +msgstr "``__complex__``: 1j" + +#: ../Doc/library/unittest.mock.rst:1778 +msgid "``__float__``: 1.0" +msgstr "``__float__``: 1.0" + +#: ../Doc/library/unittest.mock.rst:1779 +msgid "``__bool__``: True" +msgstr "``__bool__``: True" + +#: ../Doc/library/unittest.mock.rst:1780 +msgid "``__index__``: 1" +msgstr "``__index__``: 1" + +#: ../Doc/library/unittest.mock.rst:1781 +msgid "``__hash__``: default hash for the mock" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1782 +msgid "``__str__``: default str for the mock" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1783 +msgid "``__sizeof__``: default sizeof for the mock" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1785 +msgid "For example:" +msgstr "Par exemple :" + +#: ../Doc/library/unittest.mock.rst:1797 +msgid "" +"The two equality methods, :meth:`__eq__` and :meth:`__ne__`, are special. " +"They do the default equality comparison on identity, using the :attr:`~Mock." +"side_effect` attribute, unless you change their return value to return " +"something else::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1811 +msgid "" +"The return value of :meth:`MagicMock.__iter__` can be any iterable object " +"and isn't required to be an iterator:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1821 +msgid "" +"If the return value *is* an iterator, then iterating over it once will " +"consume it and subsequent iterations will result in an empty list:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1830 +msgid "" +"``MagicMock`` has all of the supported magic methods configured except for " +"some of the obscure and obsolete ones. You can still set these up if you " +"want." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1833 +msgid "" +"Magic methods that are supported but not setup by default in ``MagicMock`` " +"are:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1835 +msgid "``__subclasses__``" +msgstr "``__subclasses__``" + +#: ../Doc/library/unittest.mock.rst:1836 +msgid "``__dir__``" +msgstr "``__dir__``" + +#: ../Doc/library/unittest.mock.rst:1837 +msgid "``__format__``" +msgstr "``__format__``" + +#: ../Doc/library/unittest.mock.rst:1838 +msgid "``__get__``, ``__set__`` and ``__delete__``" +msgstr "``__get__``, ``__set__`` et ``__delete__``" + +#: ../Doc/library/unittest.mock.rst:1839 +msgid "``__reversed__`` and ``__missing__``" +msgstr "``__reversed__`` et ``__missing__``" + +#: ../Doc/library/unittest.mock.rst:1840 +msgid "" +"``__reduce__``, ``__reduce_ex__``, ``__getinitargs__``, ``__getnewargs__``, " +"``__getstate__`` and ``__setstate__``" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1842 +msgid "``__getformat__`` and ``__setformat__``" +msgstr "``__getformat__`` et ``__setformat__``" + +#: ../Doc/library/unittest.mock.rst:1846 +msgid "" +"Magic methods *should* be looked up on the class rather than the instance. " +"Different versions of Python are inconsistent about applying this rule. The " +"supported protocol methods should work with all supported versions of Python." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1850 +msgid "" +"The function is basically hooked up to the class, but each ``Mock`` instance " +"is kept isolated from the others." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1855 +msgid "Helpers" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1858 +msgid "sentinel" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1862 +msgid "" +"The ``sentinel`` object provides a convenient way of providing unique " +"objects for your tests." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1865 +msgid "" +"Attributes are created on demand when you access them by name. Accessing the " +"same attribute will always return the same object. The objects returned have " +"a sensible repr so that test failure messages are readable." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1869 +msgid "" +"The ``sentinel`` attributes now preserve their identity when they are :mod:" +"`copied ` or :mod:`pickled `." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1873 +msgid "" +"Sometimes when testing you need to test that a specific object is passed as " +"an argument to another method, or returned. It can be common to create named " +"sentinel objects to test this. :data:`sentinel` provides a convenient way of " +"creating and testing the identity of objects like this." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1878 +msgid "" +"In this example we monkey patch ``method`` to return ``sentinel." +"some_object``:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1890 +msgid "DEFAULT" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1895 +msgid "" +"The :data:`DEFAULT` object is a pre-created sentinel (actually ``sentinel." +"DEFAULT``). It can be used by :attr:`~Mock.side_effect` functions to " +"indicate that the normal return value should be used." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1901 +msgid "call" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1905 +msgid "" +":func:`call` is a helper object for making simpler assertions, for comparing " +"with :attr:`~Mock.call_args`, :attr:`~Mock.call_args_list`, :attr:`~Mock." +"mock_calls` and :attr:`~Mock.method_calls`. :func:`call` can also be used " +"with :meth:`~Mock.assert_has_calls`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1918 +msgid "" +"For a call object that represents multiple calls, :meth:`call_list` returns " +"a list of all the intermediate calls as well as the final call." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1922 +msgid "" +"``call_list`` is particularly useful for making assertions on \"chained calls" +"\". A chained call is multiple calls on a single line of code. This results " +"in multiple entries in :attr:`~Mock.mock_calls` on a mock. Manually " +"constructing the sequence of calls can be tedious." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1927 +msgid "" +":meth:`~call.call_list` can construct the sequence of calls from the same " +"chained call:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1944 +msgid "" +"A ``call`` object is either a tuple of (positional args, keyword args) or " +"(name, positional args, keyword args) depending on how it was constructed. " +"When you construct them yourself this isn't particularly interesting, but " +"the ``call`` objects that are in the :attr:`Mock.call_args`, :attr:`Mock." +"call_args_list` and :attr:`Mock.mock_calls` attributes can be introspected " +"to get at the individual arguments they contain." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1951 +msgid "" +"The ``call`` objects in :attr:`Mock.call_args` and :attr:`Mock." +"call_args_list` are two-tuples of (positional args, keyword args) whereas " +"the ``call`` objects in :attr:`Mock.mock_calls`, along with ones you " +"construct yourself, are three-tuples of (name, positional args, keyword " +"args)." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1956 +msgid "" +"You can use their \"tupleness\" to pull out the individual arguments for " +"more complex introspection and assertions. The positional arguments are a " +"tuple (an empty tuple if there are no positional arguments) and the keyword " +"arguments are a dictionary:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1990 +msgid "create_autospec" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1994 +msgid "" +"Create a mock object using another object as a spec. Attributes on the mock " +"will use the corresponding attribute on the *spec* object as their spec." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:1998 +msgid "" +"Functions or methods being mocked will have their arguments checked to " +"ensure that they are called with the correct signature." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2001 +msgid "" +"If *spec_set* is ``True`` then attempting to set attributes that don't exist " +"on the spec object will raise an :exc:`AttributeError`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2004 +msgid "" +"If a class is used as a spec then the return value of the mock (the instance " +"of the class) will have the same spec. You can use a class as the spec for " +"an instance object by passing ``instance=True``. The returned mock will only " +"be callable if instances of the mock are callable." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2009 +msgid "" +":func:`create_autospec` also takes arbitrary keyword arguments that are " +"passed to the constructor of the created mock." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2012 +msgid "" +"See :ref:`auto-speccing` for examples of how to use auto-speccing with :func:" +"`create_autospec` and the *autospec* argument to :func:`patch`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2017 +msgid "ANY" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2021 +msgid "" +"Sometimes you may need to make assertions about *some* of the arguments in a " +"call to mock, but either not care about some of the arguments or want to " +"pull them individually out of :attr:`~Mock.call_args` and make more complex " +"assertions on them." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2026 +msgid "" +"To ignore certain arguments you can pass in objects that compare equal to " +"*everything*. Calls to :meth:`~Mock.assert_called_with` and :meth:`~Mock." +"assert_called_once_with` will then succeed no matter what was passed in." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2035 +msgid "" +":data:`ANY` can also be used in comparisons with call lists like :attr:" +"`~Mock.mock_calls`:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2048 +msgid "FILTER_DIR" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2052 +msgid "" +":data:`FILTER_DIR` is a module level variable that controls the way mock " +"objects respond to :func:`dir` (only for Python 2.6 or more recent). The " +"default is ``True``, which uses the filtering described below, to only show " +"useful members. If you dislike this filtering, or need to switch it off for " +"diagnostic purposes, then set ``mock.FILTER_DIR = False``." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2058 +msgid "" +"With filtering on, ``dir(some_mock)`` shows only useful attributes and will " +"include any dynamically created attributes that wouldn't normally be shown. " +"If the mock was created with a *spec* (or *autospec* of course) then all the " +"attributes from the original are shown, even if they haven't been accessed " +"yet:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2079 +msgid "" +"Many of the not-very-useful (private to :class:`Mock` rather than the thing " +"being mocked) underscore and double underscore prefixed attributes have been " +"filtered from the result of calling :func:`dir` on a :class:`Mock`. If you " +"dislike this behaviour you can switch it off by setting the module level " +"switch :data:`FILTER_DIR`:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2097 +msgid "" +"Alternatively you can just use ``vars(my_mock)`` (instance members) and " +"``dir(type(my_mock))`` (type members) to bypass the filtering irrespective " +"of :data:`mock.FILTER_DIR`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2103 +msgid "mock_open" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2107 +msgid "" +"A helper function to create a mock to replace the use of :func:`open`. It " +"works for :func:`open` called directly or used as a context manager." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2110 +msgid "" +"The *mock* argument is the mock object to configure. If ``None`` (the " +"default) then a :class:`MagicMock` will be created for you, with the API " +"limited to methods or attributes available on standard file handles." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2114 +msgid "" +"*read_data* is a string for the :meth:`~io.IOBase.read`, :meth:`~io.IOBase." +"readline`, and :meth:`~io.IOBase.readlines` methods of the file handle to " +"return. Calls to those methods will take data from *read_data* until it is " +"depleted. The mock of these methods is pretty simplistic: every time the " +"*mock* is called, the *read_data* is rewound to the start. If you need more " +"control over the data that you are feeding to the tested code you will need " +"to customize this mock for yourself. When that is insufficient, one of the " +"in-memory filesystem packages on `PyPI `_ can offer a " +"realistic filesystem for testing." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2124 +msgid "" +"Added :meth:`~io.IOBase.readline` and :meth:`~io.IOBase.readlines` support. " +"The mock of :meth:`~io.IOBase.read` changed to consume *read_data* rather " +"than returning it on each call." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2129 +msgid "*read_data* is now reset on each call to the *mock*." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2132 +msgid "" +"Added :meth:`__iter__` to implementation so that iteration (such as in for " +"loops) correctly consumes *read_data*." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2136 +msgid "" +"Using :func:`open` as a context manager is a great way to ensure your file " +"handles are closed properly and is becoming common::" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2142 +msgid "" +"The issue is that even if you mock out the call to :func:`open` it is the " +"*returned object* that is used as a context manager (and has :meth:" +"`__enter__` and :meth:`__exit__` called)." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2146 +msgid "" +"Mocking context managers with a :class:`MagicMock` is common enough and " +"fiddly enough that a helper function is useful." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2163 +msgid "And for reading files:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2176 +msgid "Autospeccing" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2178 +msgid "" +"Autospeccing is based on the existing :attr:`spec` feature of mock. It " +"limits the api of mocks to the api of an original object (the spec), but it " +"is recursive (implemented lazily) so that attributes of mocks only have the " +"same api as the attributes of the spec. In addition mocked functions / " +"methods have the same call signature as the original so they raise a :exc:" +"`TypeError` if they are called incorrectly." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2185 +msgid "Before I explain how auto-speccing works, here's why it is needed." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2187 +msgid "" +":class:`Mock` is a very powerful and flexible object, but it suffers from " +"two flaws when used to mock out objects from a system under test. One of " +"these flaws is specific to the :class:`Mock` api and the other is a more " +"general problem with using mock objects." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2192 +msgid "" +"First the problem specific to :class:`Mock`. :class:`Mock` has two assert " +"methods that are extremely handy: :meth:`~Mock.assert_called_with` and :meth:" +"`~Mock.assert_called_once_with`." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2205 +msgid "" +"Because mocks auto-create attributes on demand, and allow you to call them " +"with arbitrary arguments, if you misspell one of these assert methods then " +"your assertion is gone:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2215 +msgid "Your tests can pass silently and incorrectly because of the typo." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2217 +msgid "" +"The second issue is more general to mocking. If you refactor some of your " +"code, rename members and so on, any tests for code that is still using the " +"*old api* but uses mocks instead of the real objects will still pass. This " +"means your tests can all pass even though your code is broken." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2222 +msgid "" +"Note that this is another reason why you need integration tests as well as " +"unit tests. Testing everything in isolation is all fine and dandy, but if " +"you don't test how your units are \"wired together\" there is still lots of " +"room for bugs that tests might have caught." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2227 +msgid "" +":mod:`mock` already provides a feature to help with this, called speccing. " +"If you use a class or instance as the :attr:`spec` for a mock then you can " +"only access attributes on the mock that exist on the real class:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2238 +msgid "" +"The spec only applies to the mock itself, so we still have the same issue " +"with any methods on the mock:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2247 +msgid "" +"Auto-speccing solves this problem. You can either pass ``autospec=True`` to :" +"func:`patch` / :func:`patch.object` or use the :func:`create_autospec` " +"function to create a mock with a spec. If you use the ``autospec=True`` " +"argument to :func:`patch` then the object that is being replaced will be " +"used as the spec object. Because the speccing is done \"lazily\" (the spec " +"is created as attributes on the mock are accessed) you can use it with very " +"complex or deeply nested objects (like modules that import modules that " +"import modules) without a big performance hit." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2256 +msgid "Here's an example of it in use:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2266 +msgid "" +"You can see that :class:`request.Request` has a spec. :class:`request." +"Request` takes two arguments in the constructor (one of which is *self*). " +"Here's what happens if we try to call it incorrectly:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2275 +msgid "" +"The spec also applies to instantiated classes (i.e. the return value of " +"specced mocks):" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2282 +msgid "" +":class:`Request` objects are not callable, so the return value of " +"instantiating our mocked out :class:`request.Request` is a non-callable " +"mock. With the spec in place any typos in our asserts will raise the correct " +"error:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2294 +msgid "" +"In many cases you will just be able to add ``autospec=True`` to your " +"existing :func:`patch` calls and then be protected against bugs due to typos " +"and api changes." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2298 +msgid "" +"As well as using *autospec* through :func:`patch` there is a :func:" +"`create_autospec` for creating autospecced mocks directly:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2306 +msgid "" +"This isn't without caveats and limitations however, which is why it is not " +"the default behaviour. In order to know what attributes are available on the " +"spec object, autospec has to introspect (access attributes) the spec. As you " +"traverse attributes on the mock a corresponding traversal of the original " +"object is happening under the hood. If any of your specced objects have " +"properties or descriptors that can trigger code execution then you may not " +"be able to use autospec. On the other hand it is much better to design your " +"objects so that introspection is safe [#]_." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2315 +msgid "" +"A more serious problem is that it is common for instance attributes to be " +"created in the :meth:`__init__` method and not to exist on the class at all. " +"*autospec* can't know about any dynamically created attributes and restricts " +"the api to visible attributes." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2332 +msgid "" +"There are a few different ways of resolving this problem. The easiest, but " +"not necessarily the least annoying, way is to simply set the required " +"attributes on the mock after creation. Just because *autospec* doesn't allow " +"you to fetch attributes that don't exist on the spec it doesn't prevent you " +"setting them:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2343 +msgid "" +"There is a more aggressive version of both *spec* and *autospec* that *does* " +"prevent you setting non-existent attributes. This is useful if you want to " +"ensure your code only *sets* valid attributes too, but obviously it prevents " +"this particular scenario:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2356 +msgid "" +"Probably the best way of solving the problem is to add class attributes as " +"default values for instance members initialised in :meth:`__init__`. Note " +"that if you are only setting default attributes in :meth:`__init__` then " +"providing them via class attributes (shared between instances of course) is " +"faster too. e.g." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2366 +msgid "" +"This brings up another issue. It is relatively common to provide a default " +"value of ``None`` for members that will later be an object of a different " +"type. ``None`` would be useless as a spec because it wouldn't let you access " +"*any* attributes or methods on it. As ``None`` is *never* going to be useful " +"as a spec, and probably indicates a member that will normally of some other " +"type, autospec doesn't use a spec for members that are set to ``None``. " +"These will just be ordinary mocks (well - MagicMocks):" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2381 +msgid "" +"If modifying your production classes to add defaults isn't to your liking " +"then there are more options. One of these is simply to use an instance as " +"the spec rather than the class. The other is to create a subclass of the " +"production class and add the defaults to the subclass without affecting the " +"production class. Both of these require you to use an alternative object as " +"the spec. Thankfully :func:`patch` supports this - you can simply pass the " +"alternative object as the *autospec* argument:" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2402 +msgid "" +"This only applies to classes or already instantiated objects. Calling a " +"mocked class to create a mock instance *does not* create a real instance. It " +"is only attribute lookups - along with calls to :func:`dir` - that are done." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2407 +msgid "Sealing mocks" +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2411 +msgid "" +"Seal will disable the automatic creation of mocks when accessing an " +"attribute of the mock being sealed or any of its attributes that are already " +"mocks recursively." +msgstr "" + +#: ../Doc/library/unittest.mock.rst:2414 +msgid "" +"If a mock instance with a name or a spec is assigned to an attribute it " +"won't be considered in the sealing chain. This allows one to prevent seal " +"from fixing part of the mock object." +msgstr "" diff --git a/library/unittest.po b/library/unittest.po new file mode 100644 index 000000000..272e502b8 --- /dev/null +++ b/library/unittest.po @@ -0,0 +1,3913 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-08-16 23:24+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/unittest.rst:2 +msgid ":mod:`unittest` --- Unit testing framework" +msgstr ":mod:`unittest` — *Framework* de tests unitaires" + +#: ../Doc/library/unittest.rst:12 +msgid "**Source code:** :source:`Lib/unittest/__init__.py`" +msgstr "**Code source :** :source:`Lib/unittest/__init__.py`" + +#: ../Doc/library/unittest.rst:16 +msgid "" +"(If you are already familiar with the basic concepts of testing, you might " +"want to skip to :ref:`the list of assert methods `.)" +msgstr "" +"(Si vous êtes déjà familier des concepts de base concernant les tests, vous " +"pouvez souhaiter passer à :ref:`la liste des méthodes `.)" + +#: ../Doc/library/unittest.rst:19 +msgid "" +"The :mod:`unittest` unit testing framework was originally inspired by JUnit " +"and has a similar flavor as major unit testing frameworks in other " +"languages. It supports test automation, sharing of setup and shutdown code " +"for tests, aggregation of tests into collections, and independence of the " +"tests from the reporting framework." +msgstr "" +"Le cadre applicatif de tests unitaires :mod:`unittest` était au départ " +"inspiré par *JUnit* et ressemble aux principaux *frameworks* de tests " +"unitaires des autres langages. Il gère l'automatisation des tests, le " +"partage de code pour la mise en place et la finalisation des tests, " +"l'agrégation de tests en collections, et l'indépendance des tests par " +"rapport au *framework* utilisé." + +#: ../Doc/library/unittest.rst:25 +msgid "" +"To achieve this, :mod:`unittest` supports some important concepts in an " +"object-oriented way:" +msgstr "" +"Pour y parvenir, :mod:`unittest` gère quelques concepts importants avec une " +"approche orientée objet :" + +#: ../Doc/library/unittest.rst:32 +msgid "test fixture" +msgstr "aménagement de test (*fixture*)" + +#: ../Doc/library/unittest.rst:29 +msgid "" +"A :dfn:`test fixture` represents the preparation needed to perform one or " +"more tests, and any associate cleanup actions. This may involve, for " +"example, creating temporary or proxy databases, directories, or starting a " +"server process." +msgstr "" +"Un :dfn:`aménagement de test (*fixture*)` désigne la préparation nécessaire " +"au déroulement d'un ou plusieurs tests, et toutes les actions de nettoyage " +"associées. Cela peut concerner, par exemple, la création de bases de données " +"temporaires ou mandataires, de répertoires, ou le démarrage d'un processus " +"serveur." + +#: ../Doc/library/unittest.rst:37 +msgid "test case" +msgstr "scénario de test" + +#: ../Doc/library/unittest.rst:35 +msgid "" +"A :dfn:`test case` is the individual unit of testing. It checks for a " +"specific response to a particular set of inputs. :mod:`unittest` provides a " +"base class, :class:`TestCase`, which may be used to create new test cases." +msgstr "" +"Un :dfn:`scénario de test` est l'élément de base des tests. Il attend une " +"réponse spécifique pour un ensemble particulier d'entrées. :mod:`unittest` " +"fournit une classe de base, :class:`TestCase`, qui peut être utilisée pour " +"créer de nouveaux scénarios de test." + +#: ../Doc/library/unittest.rst:41 +msgid "test suite" +msgstr "suite de tests" + +#: ../Doc/library/unittest.rst:40 +msgid "" +"A :dfn:`test suite` is a collection of test cases, test suites, or both. It " +"is used to aggregate tests that should be executed together." +msgstr "" +"Une :dfn:`suite de tests` est une collection de scénarios de test, de suites " +"de tests ou les deux. Cela sert à regrouper les tests qui devraient être " +"exécutés ensemble." + +#: ../Doc/library/unittest.rst:48 +msgid "test runner" +msgstr "lanceur de tests" + +#: ../Doc/library/unittest.rst:44 +msgid "" +"A :dfn:`test runner` is a component which orchestrates the execution of " +"tests and provides the outcome to the user. The runner may use a graphical " +"interface, a textual interface, or return a special value to indicate the " +"results of executing the tests." +msgstr "" +"Un :dfn:`lanceur de tests` est un composant qui orchestre l'exécution des " +"tests et fournit le résultat pour l'utilisateur. Le lanceur peut utiliser " +"une interface graphique, une interface textuelle, ou renvoie une valeur " +"spéciale pour indiquer les résultats de l'exécution des tests." + +#: ../Doc/library/unittest.rst:53 +msgid "Module :mod:`doctest`" +msgstr "Module :mod:`doctest`" + +#: ../Doc/library/unittest.rst:53 +msgid "Another test-support module with a very different flavor." +msgstr "Un autre module de test adoptant une approche très différente." + +#: ../Doc/library/unittest.rst:57 +msgid "" +"`Simple Smalltalk Testing: With Patterns `_" +msgstr "" +"`Simple Smalltalk Testing: With Patterns `_" + +#: ../Doc/library/unittest.rst:56 +msgid "" +"Kent Beck's original paper on testing frameworks using the pattern shared " +"by :mod:`unittest`." +msgstr "" +"Le papier originel de Kent Beck sur les *frameworks* de test utilisant le " +"modèle sur lequel s'appuie :mod:`unittest`." + +#: ../Doc/library/unittest.rst:61 +msgid "" +"`Nose `_ and `pytest `_" +msgstr "" +"`Nose `_ et `py.test `_" + +#: ../Doc/library/unittest.rst:60 +msgid "" +"Third-party unittest frameworks with a lighter-weight syntax for writing " +"tests. For example, ``assert func(10) == 42``." +msgstr "" +"Des *frameworks* tierces de tests unitaires avec une syntaxe allégée pour " +"l'écriture des tests. Par exemple, ``assert func(10) == 42``." + +#: ../Doc/library/unittest.rst:65 +msgid "" +"`The Python Testing Tools Taxonomy `_" +msgstr "" +"`The Python Testing Tools Taxonomy `_" + +#: ../Doc/library/unittest.rst:64 +msgid "" +"An extensive list of Python testing tools including functional testing " +"frameworks and mock object libraries." +msgstr "" +"Une liste étendue des outils de test pour Python comprenant des *frameworks* " +"de tests fonctionnels et des bibliothèques d'objets simulés (*mocks*)." + +#: ../Doc/library/unittest.rst:69 +msgid "" +"`Testing in Python Mailing List `_" +msgstr "" +"`Testing in Python Mailing List `_" + +#: ../Doc/library/unittest.rst:68 +msgid "" +"A special-interest-group for discussion of testing, and testing tools, in " +"Python." +msgstr "Un groupe de discussion dédié aux tests, et outils de test, en Python." + +#: ../Doc/library/unittest.rst:71 +msgid "" +"The script :file:`Tools/unittestgui/unittestgui.py` in the Python source " +"distribution is a GUI tool for test discovery and execution. This is " +"intended largely for ease of use for those new to unit testing. For " +"production environments it is recommended that tests be driven by a " +"continuous integration system such as `Buildbot `_, " +"`Jenkins `_ or `Hudson `_." +msgstr "" +"Le script :file:`Tools/unittestgui/unittestgui.py` dans la distribution " +"source de Python est un outil avec une interface graphique pour découvrir et " +"exécuter des tests. Il est principalement conçu pour être facile d'emploi " +"pour les débutants en matière de tests unitaires. Pour les environnements de " +"production il est recommandé que les tests soient pilotés par un système " +"d'intégration continue comme `Buildbot `_, `Jenkins " +"`_ ou `Hudson `_." + +#: ../Doc/library/unittest.rst:82 +msgid "Basic example" +msgstr "Exemple basique" + +#: ../Doc/library/unittest.rst:84 +msgid "" +"The :mod:`unittest` module provides a rich set of tools for constructing and " +"running tests. This section demonstrates that a small subset of the tools " +"suffice to meet the needs of most users." +msgstr "" +"Le module :mod:`unittest` fournit un riche ensemble d'outils pour construire " +"et lancer des tests. Cette section montre qu'une petite partie des outils " +"suffit pour satisfaire les besoins de la plupart des utilisateurs." + +#: ../Doc/library/unittest.rst:88 +msgid "Here is a short script to test three string methods::" +msgstr "Voici un court script pour tester trois méthodes de *string* ::" + +#: ../Doc/library/unittest.rst:112 +msgid "" +"A testcase is created by subclassing :class:`unittest.TestCase`. The three " +"individual tests are defined with methods whose names start with the letters " +"``test``. This naming convention informs the test runner about which " +"methods represent tests." +msgstr "" +"Un scénario de test est créé comme classe-fille de :class:`unittest." +"TestCase`. Les trois tests individuels sont définis par des méthodes dont " +"les noms commencent par les lettres ``test``. Cette convention de nommage " +"signale au lanceur de tests quelles méthodes sont des tests." + +#: ../Doc/library/unittest.rst:117 +msgid "" +"The crux of each test is a call to :meth:`~TestCase.assertEqual` to check " +"for an expected result; :meth:`~TestCase.assertTrue` or :meth:`~TestCase." +"assertFalse` to verify a condition; or :meth:`~TestCase.assertRaises` to " +"verify that a specific exception gets raised. These methods are used " +"instead of the :keyword:`assert` statement so the test runner can accumulate " +"all test results and produce a report." +msgstr "" +"Le cœur de chaque test est un appel à :meth:`~TestCase.assertEqual` pour " +"vérifier un résultat attendu ; :meth:`~TestCase.assertTrue` ou :meth:" +"`~TestCase.assertFalse` pour vérifier une condition ; ou :meth:`~TestCase." +"assertRaises` pour vérifier qu'une exception particulière est levée. Ces " +"méthodes sont utilisées à la place du mot-clé :keyword:`assert` pour que le " +"lanceur de tests puisse récupérer les résultats de tous les tests et " +"produire un rapport." + +#: ../Doc/library/unittest.rst:124 +msgid "" +"The :meth:`~TestCase.setUp` and :meth:`~TestCase.tearDown` methods allow you " +"to define instructions that will be executed before and after each test " +"method. They are covered in more detail in the section :ref:`organizing-" +"tests`." +msgstr "" +"Les méthodes :meth:`~TestCase.setUp` et :meth:`~TestCase.tearDown` vous " +"autorisent à définir des instructions qui seront exécutées avant et après " +"chaque méthode test. Elles sont davantage détaillées dans la section :ref:" +"`organizing-tests`." + +#: ../Doc/library/unittest.rst:128 +msgid "" +"The final block shows a simple way to run the tests. :func:`unittest.main` " +"provides a command-line interface to the test script. When run from the " +"command line, the above script produces an output that looks like this::" +msgstr "" +"Le bloc final montre une manière simple de lancer les tests. :func:`unittest." +"main` fournit une interface en ligne de commande pour le script de test. " +"Lorsqu'il est lancé en ligne de commande, le script ci-dessus produit une " +"sortie qui ressemble à ceci ::" + +#: ../Doc/library/unittest.rst:138 +msgid "" +"Passing the ``-v`` option to your test script will instruct :func:`unittest." +"main` to enable a higher level of verbosity, and produce the following " +"output::" +msgstr "" +"Passer l'option ``-v`` à votre script de test informera :func:`unittest." +"main` qu'il doit fournir un niveau plus important de détails, et produit la " +"sortie suivante ::" + +#: ../Doc/library/unittest.rst:150 +msgid "" +"The above examples show the most commonly used :mod:`unittest` features " +"which are sufficient to meet many everyday testing needs. The remainder of " +"the documentation explores the full feature set from first principles." +msgstr "" +"Les exemples ci-dessus montrent les fonctionnalités d':mod:`unittest` les " +"plus communément utilisées et qui sont suffisantes pour couvrir les besoins " +"courants en matière de test. Le reste de la documentation explore l'ensemble " +"complet des fonctionnalités depuis les premiers principes." + +#: ../Doc/library/unittest.rst:158 +msgid "Command-Line Interface" +msgstr "Interface en ligne de commande" + +#: ../Doc/library/unittest.rst:160 +msgid "" +"The unittest module can be used from the command line to run tests from " +"modules, classes or even individual test methods::" +msgstr "" +"Le module *unittest* est utilisable depuis la ligne de commande pour " +"exécuter des tests à partir de modules, de classes ou même de méthodes de " +"test individuelles ::" + +#: ../Doc/library/unittest.rst:167 +msgid "" +"You can pass in a list with any combination of module names, and fully " +"qualified class or method names." +msgstr "" +"La commande accepte en argument une liste de n'importe quelle combinaison de " +"noms de modules et de noms de classes ou de méthodes entièrement qualifiés." + +#: ../Doc/library/unittest.rst:170 +msgid "Test modules can be specified by file path as well::" +msgstr "" +"Les modules de test peuvent également être spécifiés par un chemin de " +"fichier ::" + +#: ../Doc/library/unittest.rst:174 +msgid "" +"This allows you to use the shell filename completion to specify the test " +"module. The file specified must still be importable as a module. The path is " +"converted to a module name by removing the '.py' and converting path " +"separators into '.'. If you want to execute a test file that isn't " +"importable as a module you should execute the file directly instead." +msgstr "" +"Cette fonctionnalité permet d'utiliser la complétion de l'interpréteur de " +"commandes système (*le shell*) pour spécifier le module de test. Le chemin " +"est converti en nom de module en supprimant le ``.py`` et en convertissant " +"les séparateurs de chemin en '.'. Si vous voulez exécuter un fichier test " +"qui n'est pas importable en tant que module, exécutez directement le fichier." + +#: ../Doc/library/unittest.rst:180 +msgid "" +"You can run tests with more detail (higher verbosity) by passing in the -v " +"flag::" +msgstr "" +"Pour obtenir plus de détails lors de l'exécution utilisez l'option `-v` " +"(plus de verbosité) ::" + +#: ../Doc/library/unittest.rst:184 +msgid "" +"When executed without arguments :ref:`unittest-test-discovery` is started::" +msgstr "" +"Quand la commande est exécutée sans arguments :ref:`unittest-test-discovery` " +"est lancée ::" + +#: ../Doc/library/unittest.rst:188 +msgid "For a list of all the command-line options::" +msgstr "" +"Pour afficher la liste de toutes les options de la commande utilisez " +"l'option `-h` ::" + +#: ../Doc/library/unittest.rst:192 +msgid "" +"In earlier versions it was only possible to run individual test methods and " +"not modules or classes." +msgstr "" +"Dans les versions antérieures, il était seulement possible d'exécuter des " +"méthodes de test individuelles et non des modules ou des classes." + +#: ../Doc/library/unittest.rst:198 +msgid "Command-line options" +msgstr "Options de la ligne de commande" + +#: ../Doc/library/unittest.rst:200 +msgid ":program:`unittest` supports these command-line options:" +msgstr "Le programme : `unittest` gère ces options de la ligne de commande :" + +#: ../Doc/library/unittest.rst:206 +msgid "" +"The standard output and standard error streams are buffered during the test " +"run. Output during a passing test is discarded. Output is echoed normally on " +"test fail or error and is added to the failure messages." +msgstr "" +"Les flux de sortie et d'erreur standards sont mis en mémoire tampon pendant " +"l'exécution des tests. L'affichage produit par un test réussi n'est pas pris " +"en compte. Les sorties d'affichages d'un test en échec ou en erreur sont " +"conservés et ajoutés aux messages d'erreur." + +#: ../Doc/library/unittest.rst:212 +msgid "" +":kbd:`Control-C` during the test run waits for the current test to end and " +"then reports all the results so far. A second :kbd:`Control-C` raises the " +"normal :exc:`KeyboardInterrupt` exception." +msgstr "" +"Utiliser :kbd:`Control-C` pendant l'exécution des tests attend que le test " +"en cours se termine, puis affiche tous les résultats obtenus jusqu'ici. Une " +"seconde utilisation de :kbd:`Control-C` provoque l'exception normale :exc:" +"`KeyboardInterrupt`." + +#: ../Doc/library/unittest.rst:216 +msgid "" +"See `Signal Handling`_ for the functions that provide this functionality." +msgstr "" +"Voir `Signal Handling`_ pour les fonctions qui utilisent cette " +"fonctionnalité." + +#: ../Doc/library/unittest.rst:220 +msgid "Stop the test run on the first error or failure." +msgstr "Arrête l'exécution des tests lors du premier cas d'erreur ou d'échec." + +#: ../Doc/library/unittest.rst:224 +msgid "" +"Only run test methods and classes that match the pattern or substring. This " +"option may be used multiple times, in which case all test cases that match " +"of the given patterns are included." +msgstr "" +"Exécute uniquement les méthodes de test et les classes qui correspondent au " +"motif ou à la chaîne de caractères. Cette option peut être utilisée " +"plusieurs fois ; dans ce cas, tous les tests qui correspondent aux motifs " +"donnés sont inclus." + +#: ../Doc/library/unittest.rst:228 +msgid "" +"Patterns that contain a wildcard character (``*``) are matched against the " +"test name using :meth:`fnmatch.fnmatchcase`; otherwise simple case-sensitive " +"substring matching is used." +msgstr "" +"Les motifs qui contiennent un caractère de remplacement (``*``) sont " +"comparés au nom du test en utilisant :meth:`fnmatch.fnmatchcase` ; sinon, " +"une recherche simple de sous chaîne respectant la casse est faite." + +#: ../Doc/library/unittest.rst:232 +msgid "" +"Patterns are matched against the fully qualified test method name as " +"imported by the test loader." +msgstr "" +"Les motifs sont comparés au nom de la méthode de test complètement qualifiée " +"tel qu'importé par le chargeur de test." + +#: ../Doc/library/unittest.rst:235 +msgid "" +"For example, ``-k foo`` matches ``foo_tests.SomeTest.test_something``, " +"``bar_tests.SomeTest.test_foo``, but not ``bar_tests.FooTest." +"test_something``." +msgstr "" +"Par exemple, ``-k machin`` retient les tests ``machin_tests.UnTest." +"test_untruc``, ``truc_tests.UnTest.test_machin``, mais pas ``truc_tests." +"MachinTest.test_untruc``." + +#: ../Doc/library/unittest.rst:240 +msgid "Show local variables in tracebacks." +msgstr "Affiche les variables locales dans les traces d'appels." + +#: ../Doc/library/unittest.rst:242 +msgid "The command-line options ``-b``, ``-c`` and ``-f`` were added." +msgstr "" +"Les options de ligne de commande ``-b``, ``-c`` et ``-f`` ont été ajoutées." + +#: ../Doc/library/unittest.rst:245 +msgid "The command-line option ``--locals``." +msgstr "Ajout de l'option de ligne de commande ``--locals``." + +#: ../Doc/library/unittest.rst:248 +msgid "The command-line option ``-k``." +msgstr "Ajout de l'option de ligne de commande ``-k``." + +#: ../Doc/library/unittest.rst:251 +msgid "" +"The command line can also be used for test discovery, for running all of the " +"tests in a project or just a subset." +msgstr "" +"La ligne de commande peut également être utilisée pour découvrir les tests, " +"pour exécuter tous les tests dans un projet ou juste un sous-ensemble." + +#: ../Doc/library/unittest.rst:258 +msgid "Test Discovery" +msgstr "Découverte des tests" + +#: ../Doc/library/unittest.rst:262 +msgid "" +"Unittest supports simple test discovery. In order to be compatible with test " +"discovery, all of the test files must be :ref:`modules ` or :" +"ref:`packages ` (including :term:`namespace packages " +"`) importable from the top-level directory of the project " +"(this means that their filenames must be valid :ref:`identifiers " +"`)." +msgstr "" +"*Unittest* prend en charge une découverte simple des tests. Afin d'être " +"compatible avec le système de découverte de tests, tous les fichiers de test " +"doivent être des :ref:`modules ` ou des :ref:`paquets ` (incluant des :term:`paquets-espaces de nommage `) importables du répertoire du projet (cela signifie que leurs noms " +"doivent être des :ref:`identifiants ` valables)." + +#: ../Doc/library/unittest.rst:269 +msgid "" +"Test discovery is implemented in :meth:`TestLoader.discover`, but can also " +"be used from the command line. The basic command-line usage is::" +msgstr "" +"La découverte de tests est implémentée dans :meth:`TestLoader.discover`, " +"mais peut également être utilisée depuis la ligne de commande. Par exemple ::" + +#: ../Doc/library/unittest.rst:277 +msgid "" +"As a shortcut, ``python -m unittest`` is the equivalent of ``python -m " +"unittest discover``. If you want to pass arguments to test discovery the " +"``discover`` sub-command must be used explicitly." +msgstr "" +"Comme raccourci, ``python -m unittest`` est l'équivalent de ``python -m " +"unittest discover``. Pour passer des arguments au système de découverte des " +"tests, la sous-commande ``discover`` doit être utilisée explicitement." + +#: ../Doc/library/unittest.rst:281 +msgid "The ``discover`` sub-command has the following options:" +msgstr "La sous-commande ``discover`` a les options suivantes  ::" + +#: ../Doc/library/unittest.rst:287 +msgid "Verbose output" +msgstr "Affichage plus détaillé" + +#: ../Doc/library/unittest.rst:291 +msgid "Directory to start discovery (``.`` default)" +msgstr "Répertoire racine pour démarrer la découverte (``.`` par défaut)." + +#: ../Doc/library/unittest.rst:295 +msgid "Pattern to match test files (``test*.py`` default)" +msgstr "Motif de détection des fichiers de test (``test*.py`` par défaut)" + +#: ../Doc/library/unittest.rst:299 +msgid "Top level directory of project (defaults to start directory)" +msgstr "Dossier du premier niveau du projet (Par défaut le dossier de départ)" + +#: ../Doc/library/unittest.rst:301 +msgid "" +"The :option:`-s`, :option:`-p`, and :option:`-t` options can be passed in as " +"positional arguments in that order. The following two command lines are " +"equivalent::" +msgstr "" +"Les options :option:`-s`, :option:`-p` et :option:`-t` peuvent être passées " +"en arguments positionnels dans cet ordre. Les deux lignes de commande " +"suivantes sont équivalentes ::" + +#: ../Doc/library/unittest.rst:308 +msgid "" +"As well as being a path it is possible to pass a package name, for example " +"``myproject.subpackage.test``, as the start directory. The package name you " +"supply will then be imported and its location on the filesystem will be used " +"as the start directory." +msgstr "" +"Il est aussi possible de passer un nom de paquet plutôt qu'un chemin, par " +"exemple ``monprojet.souspaquet.test``, comme répertoire racine. Le nom du " +"paquet fourni est alors importé et son emplacement sur le système de " +"fichiers est utilisé comme répertoire racine." + +#: ../Doc/library/unittest.rst:315 +msgid "" +"Test discovery loads tests by importing them. Once test discovery has found " +"all the test files from the start directory you specify it turns the paths " +"into package names to import. For example :file:`foo/bar/baz.py` will be " +"imported as ``foo.bar.baz``." +msgstr "" +"Le mécanisme de découverte charge les tests en les important. Une fois que " +"le système a trouvé tous les fichiers de tests du répertoire de démarrage " +"spécifié, il transforme les chemins en noms de paquets à importer. Par " +"exemple :file:`truc/bidule/machin.py` est importé sous ``truc.bidule." +"machin``." + +#: ../Doc/library/unittest.rst:320 +msgid "" +"If you have a package installed globally and attempt test discovery on a " +"different copy of the package then the import *could* happen from the wrong " +"place. If this happens test discovery will warn you and exit." +msgstr "" +"Si un paquet est installé globalement et que le mécanisme de découverte de " +"tests est effectué sur une copie différente du paquet, l'importation *peut* " +"se produire à partir du mauvais endroit. Si cela arrive, le système émet un " +"avertissement et se termine." + +#: ../Doc/library/unittest.rst:324 +msgid "" +"If you supply the start directory as a package name rather than a path to a " +"directory then discover assumes that whichever location it imports from is " +"the location you intended, so you will not get the warning." +msgstr "" +"Si vous donnez le répertoire racine sous la forme d'un nom de paquet plutôt " +"que d'un chemin d'accès à un répertoire, alors Python suppose que " +"l'emplacement à partir duquel il importe est l'emplacement que vous voulez, " +"vous ne verrez donc pas l'avertissement." + +#: ../Doc/library/unittest.rst:329 +msgid "" +"Test modules and packages can customize test loading and discovery by " +"through the `load_tests protocol`_." +msgstr "" +"Les modules de test et les paquets peuvent adapter le chargement et la " +"découverte des tests en utilisant le protocole `load_tests protocol`_." + +#: ../Doc/library/unittest.rst:332 +msgid "Test discovery supports :term:`namespace packages `." +msgstr "" +"La découverte de tests prend en charge :term:`les paquets-espaces de nommage " +"`." + +#: ../Doc/library/unittest.rst:339 +msgid "Organizing test code" +msgstr "Organiser le code de test" + +#: ../Doc/library/unittest.rst:341 +msgid "" +"The basic building blocks of unit testing are :dfn:`test cases` --- single " +"scenarios that must be set up and checked for correctness. In :mod:" +"`unittest`, test cases are represented by :class:`unittest.TestCase` " +"instances. To make your own test cases you must write subclasses of :class:" +"`TestCase` or use :class:`FunctionTestCase`." +msgstr "" +"Les éléments de base des tests unitaires sont les :dfn:`scénarios de tests` " +"(*test cases* en anglais) --- Des scénarios uniques qui sont mis en place et " +"exécutés pour vérifier qu'ils sont corrects. Dans :mod:`unittest`, les " +"scénarios de test sont représentés par des instances de :class:`unittest." +"TestCase`. Pour créer vos propres scénarios de test, vous devez écrire des " +"sous-classes de :class:`TestCase` ou utiliser :class:`FunctionTestCase`." + +#: ../Doc/library/unittest.rst:347 +msgid "" +"The testing code of a :class:`TestCase` instance should be entirely self " +"contained, such that it can be run either in isolation or in arbitrary " +"combination with any number of other test cases." +msgstr "" +"Le code de test d'une instance de :class:`TestCase` doit être entièrement " +"autonome, de sorte qu'il puisse être exécuté soit de manière isolée, soit en " +"combinaison arbitraire avec un nombre quelconque d'autres scénarios de test." + +#: ../Doc/library/unittest.rst:351 +msgid "" +"The simplest :class:`TestCase` subclass will simply implement a test method " +"(i.e. a method whose name starts with ``test``) in order to perform specific " +"testing code::" +msgstr "" +"La sous-classe :class:`TestCase` la plus simple va tout simplement " +"implémenter une méthode de test (c'est-à-dire une méthode dont le nom " +"commence par ``test``) afin d'exécuter un code de test spécifique ::" + +#: ../Doc/library/unittest.rst:362 +msgid "" +"Note that in order to test something, we use one of the :meth:`assert\\*` " +"methods provided by the :class:`TestCase` base class. If the test fails, an " +"exception will be raised with an explanatory message, and :mod:`unittest` " +"will identify the test case as a :dfn:`failure`. Any other exceptions will " +"be treated as :dfn:`errors`." +msgstr "" +"Notez que pour tester quelque chose, on utilise l'une des méthodes :meth:" +"`assert\\*` fournies par la classe de base :class:`TestCase`. Si le test " +"échoue, une exception est levée avec un message explicatif, et :mod:" +"`unittest` identifie ce scénario de test comme un :dfn:`échec`. Toute autre " +"exception est traitée comme une :dfn:`erreur`." + +#: ../Doc/library/unittest.rst:368 +msgid "" +"Tests can be numerous, and their set-up can be repetitive. Luckily, we can " +"factor out set-up code by implementing a method called :meth:`~TestCase." +"setUp`, which the testing framework will automatically call for every single " +"test we run::" +msgstr "" +"Les tests peuvent être nombreux et leur mise en place peut être répétitive. " +"Heureusement, on peut factoriser le code de mise en place en implémentant " +"une méthode appelée :meth:`~TestCase.setUp`, que le système de test appelle " +"automatiquement pour chaque test exécuté ::" + +#: ../Doc/library/unittest.rst:389 +msgid "" +"The order in which the various tests will be run is determined by sorting " +"the test method names with respect to the built-in ordering for strings." +msgstr "" +"L'ordre dans lequel les différents tests sont exécutés est déterminé en " +"classant les noms des méthodes de test en fonction de la relation d'ordre " +"des chaines de caractères ." + +#: ../Doc/library/unittest.rst:393 +msgid "" +"If the :meth:`~TestCase.setUp` method raises an exception while the test is " +"running, the framework will consider the test to have suffered an error, and " +"the test method will not be executed." +msgstr "" +"Si la méthode :meth:`~TestCase.setUp` lève une exception pendant l'exécution " +"du test, le système considère que le test a subi une erreur, et la méthode " +"test n'est pas exécutée." + +#: ../Doc/library/unittest.rst:397 +msgid "" +"Similarly, we can provide a :meth:`~TestCase.tearDown` method that tidies up " +"after the test method has been run::" +msgstr "" +"De même, on peut fournir une méthode :meth:`~TestCase.tearDown` qui nettoie " +"après l'exécution de la méthode de test ::" + +#: ../Doc/library/unittest.rst:409 +msgid "" +"If :meth:`~TestCase.setUp` succeeded, :meth:`~TestCase.tearDown` will be run " +"whether the test method succeeded or not." +msgstr "" +"Si :meth:`~TestCase.setUp` a réussi, :meth:`~TestCase.tearDown` est " +"exécutée, que la méthode de test ait réussi ou non." + +#: ../Doc/library/unittest.rst:412 +msgid "" +"Such a working environment for the testing code is called a :dfn:`test " +"fixture`. A new TestCase instance is created as a unique test fixture used " +"to execute each individual test method. Thus :meth:`~TestCase.setUp`, :meth:" +"`~TestCase.tearDown`, and :meth:`~TestCase.__init__` will be called once per " +"test." +msgstr "" +"Un tel environnement de travail pour le code de test s'appelle un :dfn:" +"`aménagement de test` (*fixture* en anglais). Une nouvelle instance de " +"*TestCase* est créée sous la forme d'un dispositif de test unique utilisé " +"pour exécuter chaque méthode de test individuelle. Ainsi :meth:`~TestCase." +"setUp`, :meth:`~TestCase.tearDown` et :meth:`~TestCase.__init__` ne sont " +"appelées qu'une fois par test." + +#: ../Doc/library/unittest.rst:418 +msgid "" +"It is recommended that you use TestCase implementations to group tests " +"together according to the features they test. :mod:`unittest` provides a " +"mechanism for this: the :dfn:`test suite`, represented by :mod:`unittest`'s :" +"class:`TestSuite` class. In most cases, calling :func:`unittest.main` will " +"do the right thing and collect all the module's test cases for you and " +"execute them." +msgstr "" +"Il est recommandé d'utiliser *TestCase* pour regrouper les tests en fonction " +"des fonctionnalités qu'ils testent. :mod:`unittest` fournit un mécanisme " +"pour cela : la :dfn:`suite de tests`, représentée par :class:`TestSuite` du " +"module :mod:`unittest`. Dans la plupart des cas, appeler :func:`unittest." +"main` fait correctement les choses et trouve tous les scénarios de test du " +"module pour vous et les exécute." + +#: ../Doc/library/unittest.rst:425 +msgid "" +"However, should you want to customize the building of your test suite, you " +"can do it yourself::" +msgstr "" +"Cependant, si vous voulez personnaliser la construction de votre suite de " +"tests, vous pouvez le faire vous-même ::" + +#: ../Doc/library/unittest.rst:438 +msgid "" +"You can place the definitions of test cases and test suites in the same " +"modules as the code they are to test (such as :file:`widget.py`), but there " +"are several advantages to placing the test code in a separate module, such " +"as :file:`test_widget.py`:" +msgstr "" +"Vous pouvez placer les définitions des scénarios de test et des suites de " +"test dans le même module que le code à tester (tel que :file:`composant." +"py`), mais il y a plusieurs avantages à placer le code de test dans un " +"module séparé, tel que :file:`test_composant.py` :" + +#: ../Doc/library/unittest.rst:443 +msgid "The test module can be run standalone from the command line." +msgstr "" +"Le module de test peut être exécuté indépendamment depuis la ligne de " +"commande." + +#: ../Doc/library/unittest.rst:445 +msgid "The test code can more easily be separated from shipped code." +msgstr "Le code de test est plus facilement séparable du code livré." + +#: ../Doc/library/unittest.rst:447 +msgid "" +"There is less temptation to change test code to fit the code it tests " +"without a good reason." +msgstr "" +"La tentation est moins grande de changer le code de test pour l'adapter au " +"code qu'il teste sans avoir une bonne raison." + +#: ../Doc/library/unittest.rst:450 +msgid "" +"Test code should be modified much less frequently than the code it tests." +msgstr "" +"Le code de test doit être modifié beaucoup moins souvent que le code qu'il " +"teste." + +#: ../Doc/library/unittest.rst:452 +msgid "Tested code can be refactored more easily." +msgstr "Le code testé peut être réusiné plus facilement." + +#: ../Doc/library/unittest.rst:454 +msgid "" +"Tests for modules written in C must be in separate modules anyway, so why " +"not be consistent?" +msgstr "" +"Les tests pour les modules écrits en C doivent de toute façon être dans des " +"modules séparés, alors pourquoi ne pas être cohérent ?" + +#: ../Doc/library/unittest.rst:457 +msgid "" +"If the testing strategy changes, there is no need to change the source code." +msgstr "" +"Si la stratégie de test change, il n'est pas nécessaire de changer le code " +"source." + +#: ../Doc/library/unittest.rst:463 +msgid "Re-using old test code" +msgstr "Réutilisation d'ancien code de test" + +#: ../Doc/library/unittest.rst:465 +msgid "" +"Some users will find that they have existing test code that they would like " +"to run from :mod:`unittest`, without converting every old test function to " +"a :class:`TestCase` subclass." +msgstr "" +"Certains utilisateurs constatent qu'ils ont du code de test existant qu'ils " +"souhaitent exécuter à partir de :mod:`unittest`, sans convertir chaque " +"ancienne fonction de test en une sous-classe de :class:`TestCase`." + +#: ../Doc/library/unittest.rst:469 +msgid "" +"For this reason, :mod:`unittest` provides a :class:`FunctionTestCase` class. " +"This subclass of :class:`TestCase` can be used to wrap an existing test " +"function. Set-up and tear-down functions can also be provided." +msgstr "" +"Pour cette raison, :mod:`unittest` fournit une classe :class:" +"`FunctionTestCase`. Cette sous-classe de :class:`TestCase` peut être " +"utilisée pour encapsuler une fonction de test existante. Des fonctions de " +"mise en place (*setUp*) et de démantèlement (*tearDown*) peuvent également " +"être fournies." + +#: ../Doc/library/unittest.rst:473 +msgid "Given the following test function::" +msgstr "Étant donnée la fonction de test suivante ::" + +#: ../Doc/library/unittest.rst:480 +msgid "" +"one can create an equivalent test case instance as follows, with optional " +"set-up and tear-down methods::" +msgstr "" +"on peut créer une instance de scénario de test équivalente, avec des " +"méthodes optionnelles de mise en place et de démantèlement ::" + +#: ../Doc/library/unittest.rst:489 +msgid "" +"Even though :class:`FunctionTestCase` can be used to quickly convert an " +"existing test base over to a :mod:`unittest`\\ -based system, this approach " +"is not recommended. Taking the time to set up proper :class:`TestCase` " +"subclasses will make future test refactorings infinitely easier." +msgstr "" +"Même si la classe :class:`FunctionTestCase` peut être utilisée pour " +"convertir rapidement une base de test existante vers un système basé sur :" +"mod:`unittest`, cette approche n'est pas recommandée. Prendre le temps de " +"bien configurer les sous-classes de :class:`TestCase` simplifiera " +"considérablement les futurs réusinages des tests." + +#: ../Doc/library/unittest.rst:494 +msgid "" +"In some cases, the existing tests may have been written using the :mod:" +"`doctest` module. If so, :mod:`doctest` provides a :class:`DocTestSuite` " +"class that can automatically build :class:`unittest.TestSuite` instances " +"from the existing :mod:`doctest`\\ -based tests." +msgstr "" +"Dans certains cas, les tests déjà existants ont pu être écrits avec le " +"module :mod:`doctest`. Dans ce cas, :mod:`doctest` fournit une classe :" +"class:`DocTestSuite` qui peut construire automatiquement des instances de la " +"classe :class:`unittest.TestSuite` depuis des tests basés sur le module :mod:" +"`doctest`." + +#: ../Doc/library/unittest.rst:503 +msgid "Skipping tests and expected failures" +msgstr "Ignorer des tests et des erreurs prévisibles" + +#: ../Doc/library/unittest.rst:507 +msgid "" +"Unittest supports skipping individual test methods and even whole classes of " +"tests. In addition, it supports marking a test as an \"expected failure,\" " +"a test that is broken and will fail, but shouldn't be counted as a failure " +"on a :class:`TestResult`." +msgstr "" +"*Unittest* permet d'ignorer des méthodes de test individuelles et même des " +"classes entières de tests. De plus, il prend en charge le marquage d'un test " +"comme étant une \"erreur prévue\". Un test qui est cassé et qui échoue, mais " +"qui ne doit pas être considéré comme un échec dans la classe :class:" +"`TestResult`." + +#: ../Doc/library/unittest.rst:512 +msgid "" +"Skipping a test is simply a matter of using the :func:`skip` :term:" +"`decorator` or one of its conditional variants, calling :meth:`TestCase." +"skipTest` within a :meth:`~TestCase.setUp` or test method, or raising :exc:" +"`SkipTest` directly." +msgstr "" +"Ignorer un test consiste à soit utiliser le :term:`décorateur ` :" +"func:`skip` ou une de ses variantes conditionnelles, soit appeler :meth:" +"`TestCase.skipTest` à l'intérieur d'une méthode :meth:`~TestCase.setUp` ou " +"de test, soit lever :exc:`SkipTest` directement." + +#: ../Doc/library/unittest.rst:516 +msgid "Basic skipping looks like this::" +msgstr "Un exemple de tests à ignorer ::" + +#: ../Doc/library/unittest.rst:541 +msgid "This is the output of running the example above in verbose mode::" +msgstr "" +"Ceci est le résultat de l'exécution de l'exemple ci-dessus en mode verbeux ::" + +#: ../Doc/library/unittest.rst:553 +msgid "Classes can be skipped just like methods::" +msgstr "Les classes peuvent être ignorées tout comme les méthodes ::" + +#: ../Doc/library/unittest.rst:560 +msgid "" +":meth:`TestCase.setUp` can also skip the test. This is useful when a " +"resource that needs to be set up is not available." +msgstr "" +"La méthode :meth:`TestCase.setUp` permet également d'ignorer le test. Ceci " +"est utile lorsqu'une ressource qui doit être configurée n'est pas disponible." + +#: ../Doc/library/unittest.rst:563 +msgid "Expected failures use the :func:`expectedFailure` decorator. ::" +msgstr "" +"Les erreurs prévisibles utilisent le décorateur :func:`expectedFailure` ::" + +#: ../Doc/library/unittest.rst:570 +msgid "" +"It's easy to roll your own skipping decorators by making a decorator that " +"calls :func:`skip` on the test when it wants it to be skipped. This " +"decorator skips the test unless the passed object has a certain attribute::" +msgstr "" +"Il est facile de faire ses propres décorateurs en créant un décorateur qui " +"appelle :func:`skip` sur le test que vous voulez ignorer. Par exemple, ce " +"décorateur ignore le test à moins que l'objet passé ne possède un certain " +"attribut ::" + +#: ../Doc/library/unittest.rst:579 +msgid "" +"The following decorators and exception implement test skipping and expected " +"failures:" +msgstr "" +"Les décorateurs et exceptions suivants implémentent le système d'omission " +"des tests et les erreurs prévisibles  ::" + +#: ../Doc/library/unittest.rst:583 +msgid "" +"Unconditionally skip the decorated test. *reason* should describe why the " +"test is being skipped." +msgstr "" +"Ignore sans condition le test décoré. *La raison* doit décrire la raison " +"pour laquelle le test est omis." + +#: ../Doc/library/unittest.rst:588 +msgid "Skip the decorated test if *condition* is true." +msgstr "Ignore le test décoré si la *condition* est vraie." + +#: ../Doc/library/unittest.rst:592 +msgid "Skip the decorated test unless *condition* is true." +msgstr "Ignore le test décoré sauf si la *condition* est vraie." + +#: ../Doc/library/unittest.rst:596 +msgid "" +"Mark the test as an expected failure. If the test fails it will be " +"considered a success. If the test passes, it will be considered a failure." +msgstr "" +"Marque le test comme étant un erreur attendue. Si le test échoue il est " +"considéré comme un succès. S'il passe, il est considéré comme étant en échec." + +#: ../Doc/library/unittest.rst:601 +msgid "This exception is raised to skip a test." +msgstr "Cette exception est levée pour ignorer un test." + +#: ../Doc/library/unittest.rst:603 +msgid "" +"Usually you can use :meth:`TestCase.skipTest` or one of the skipping " +"decorators instead of raising this directly." +msgstr "" +"Habituellement, on utilise :meth:`TestCase.skipTest` ou l'un des décorateurs " +"d'omission au lieu de le lever une exception directement." + +#: ../Doc/library/unittest.rst:606 +msgid "" +"Skipped tests will not have :meth:`~TestCase.setUp` or :meth:`~TestCase." +"tearDown` run around them. Skipped classes will not have :meth:`~TestCase." +"setUpClass` or :meth:`~TestCase.tearDownClass` run. Skipped modules will not " +"have :func:`setUpModule` or :func:`tearDownModule` run." +msgstr "" +"Les tests ignorés ne lancent ni :meth:`~TestCase.setUp` ni :meth:`~TestCase." +"tearDown`. Les classes ignorées ne lancent ni :meth:`~TestCase.setUpClass` " +"ni :meth:`~TestCase.tearDownClass`. Les modules sautés n'ont pas :func:" +"`setUpModule` ou :func:`tearDownModule` d'exécutés." + +#: ../Doc/library/unittest.rst:614 +msgid "Distinguishing test iterations using subtests" +msgstr "Distinguer les itérations de test à l'aide de sous-tests" + +#: ../Doc/library/unittest.rst:618 +msgid "" +"When there are very small differences among your tests, for instance some " +"parameters, unittest allows you to distinguish them inside the body of a " +"test method using the :meth:`~TestCase.subTest` context manager." +msgstr "" +"Lorsque certains de vos tests ne diffèrent que par de très petites " +"différences, par exemple certains paramètres, *unittest* vous permet de les " +"distinguer en utilisant le gestionnaire de contexte :meth:`~TestCase." +"subTest` dans le corps d'une méthode de test." + +#: ../Doc/library/unittest.rst:622 +msgid "For example, the following test::" +msgstr "Par exemple, le test suivant ::" + +#: ../Doc/library/unittest.rst:634 +msgid "will produce the following output::" +msgstr "produit le résultat suivant ::" + +#: ../Doc/library/unittest.rst:660 +msgid "" +"Without using a subtest, execution would stop after the first failure, and " +"the error would be less easy to diagnose because the value of ``i`` wouldn't " +"be displayed::" +msgstr "" +"Sans l'utilisation d'un sous-test, l'exécution se termine après le premier " +"échec, et l'erreur est moins facile à diagnostiquer car la valeur de ``i`` " +"ne s'affiche pas ::" + +#: ../Doc/library/unittest.rst:676 +msgid "Classes and functions" +msgstr "Classes et fonctions" + +#: ../Doc/library/unittest.rst:678 +msgid "This section describes in depth the API of :mod:`unittest`." +msgstr "Cette section décrit en détail l'API de :mod:`unittest`." + +#: ../Doc/library/unittest.rst:684 +msgid "Test cases" +msgstr "Scénarios de tests" + +#: ../Doc/library/unittest.rst:688 +msgid "" +"Instances of the :class:`TestCase` class represent the logical test units in " +"the :mod:`unittest` universe. This class is intended to be used as a base " +"class, with specific tests being implemented by concrete subclasses. This " +"class implements the interface needed by the test runner to allow it to " +"drive the tests, and methods that the test code can use to check for and " +"report various kinds of failure." +msgstr "" +"Les instances de la classe :class:`TestCase` représentent des tests logiques " +"unitaires dans l'univers :mod:`unittest`. Cette classe est conçue pour être " +"utilisée comme classe de base. Les scénarios de tests sont à implémenter en " +"héritant de cette classe. La classe implémente l'interface nécessaire au " +"lanceur de tests pour lui permettre de les exécuter ainsi que les méthodes " +"que le code de test peut utiliser pour vérifier et signaler les différents " +"types d'erreurs." + +#: ../Doc/library/unittest.rst:695 +msgid "" +"Each instance of :class:`TestCase` will run a single base method: the method " +"named *methodName*. In most uses of :class:`TestCase`, you will neither " +"change the *methodName* nor reimplement the default ``runTest()`` method." +msgstr "" +"Chaque instance de la classe :class:`TestCase` n'exécute qu'une seule " +"méthode de base : la méthode nommée *methodName* . Dans la plupart des " +"utilisations de la classe :class:`TestCase`, vous n'avez pas à changer le " +"nom de la méthode, ni à réimplémenter la méthode ``runTest()``." + +#: ../Doc/library/unittest.rst:700 +msgid "" +":class:`TestCase` can be instantiated successfully without providing a " +"*methodName*. This makes it easier to experiment with :class:`TestCase` from " +"the interactive interpreter." +msgstr "" +"La classe :class:`TestCase` peut désormais être utilisée sans passer de " +"paramètre *methodName*. Cela facilite l'usage de :class:`TestCase` dans " +"l'interpréteur interactif." + +#: ../Doc/library/unittest.rst:705 +msgid "" +":class:`TestCase` instances provide three groups of methods: one group used " +"to run the test, another used by the test implementation to check conditions " +"and report failures, and some inquiry methods allowing information about the " +"test itself to be gathered." +msgstr "" +"Les instances de la classe :class:`TestCase` fournissent trois groupes de " +"méthodes : un groupe utilisé pour exécuter le test, un autre utilisé par " +"l'implémentation du test pour vérifier les conditions et signaler les " +"échecs, et quelques méthodes de recherche permettant de recueillir des " +"informations sur le test lui-même." + +#: ../Doc/library/unittest.rst:710 +msgid "Methods in the first group (running the test) are:" +msgstr "Les méthodes du premier groupe (exécution du test) sont :" + +#: ../Doc/library/unittest.rst:714 +msgid "" +"Method called to prepare the test fixture. This is called immediately " +"before calling the test method; other than :exc:`AssertionError` or :exc:" +"`SkipTest`, any exception raised by this method will be considered an error " +"rather than a test failure. The default implementation does nothing." +msgstr "" +"Méthode appelée pour réaliser la mise en place du test. Elle est exécutée " +"immédiatement avant l'appel de la méthode de test ; à l'exception de :exc:" +"`AssertionError` ou :exc:`SkipTest`, toute exception levée par cette méthode " +"est considérée comme une erreur et non pas comme un échec du test. " +"L'implémentation par défaut ne fait rien." + +#: ../Doc/library/unittest.rst:722 +msgid "" +"Method called immediately after the test method has been called and the " +"result recorded. This is called even if the test method raised an " +"exception, so the implementation in subclasses may need to be particularly " +"careful about checking internal state. Any exception, other than :exc:" +"`AssertionError` or :exc:`SkipTest`, raised by this method will be " +"considered an additional error rather than a test failure (thus increasing " +"the total number of reported errors). This method will only be called if " +"the :meth:`setUp` succeeds, regardless of the outcome of the test method. " +"The default implementation does nothing." +msgstr "" +"Méthode appelée immédiatement après l'appel de la méthode de test et " +"l'enregistrement du résultat. Elle est appelée même si la méthode de test a " +"levé une exception. De fait, l'implémentation d'un sous-classes doit être " +"fait avec précaution si vous vérifiez l'état interne de la classe. Toute " +"exception, autre que :exc:`AssertionError` ou :exc:`SkipTest`, levée par " +"cette méthode est considérée comme une erreur supplémentaire plutôt que " +"comme un échec du test (augmentant ainsi le nombre total des erreurs " +"signalées). Cette méthode est appelée uniquement si l'exécution de :meth:" +"`setUp` est réussie quel que soit le résultat de la méthode de test. " +"L'implémentation par défaut ne fait rien." + +#: ../Doc/library/unittest.rst:735 +msgid "" +"A class method called before tests in an individual class are run. " +"``setUpClass`` is called with the class as the only argument and must be " +"decorated as a :func:`classmethod`::" +msgstr "" +"Méthode de classe appelée avant l'exécution des tests dans la classe en " +"question. ``setUpClass`` est appelée avec la classe comme seul argument et " +"doit être décorée comme une :func:`classmethod` ::" + +#: ../Doc/library/unittest.rst:743 ../Doc/library/unittest.rst:758 +msgid "See `Class and Module Fixtures`_ for more details." +msgstr "Voir `Class and Module Fixtures`_ pour plus de détails." + +#: ../Doc/library/unittest.rst:750 +msgid "" +"A class method called after tests in an individual class have run. " +"``tearDownClass`` is called with the class as the only argument and must be " +"decorated as a :meth:`classmethod`::" +msgstr "" +"Méthode de classe appelée après l'exécution des tests de la classe en " +"question. ``tearDownClass`` est appelée avec la classe comme seul argument " +"et doit être décorée comme une :meth:`classmethod` ::" + +#: ../Doc/library/unittest.rst:765 +msgid "" +"Run the test, collecting the result into the :class:`TestResult` object " +"passed as *result*. If *result* is omitted or ``None``, a temporary result " +"object is created (by calling the :meth:`defaultTestResult` method) and " +"used. The result object is returned to :meth:`run`'s caller." +msgstr "" +"Exécute le test, en collectant le résultat dans l'objet :class:`TestResult` " +"passé comme *result*. Si *result* est omis ou vaut ``None``, un objet " +"temporaire de résultat est créé (en appelant la méthode :meth:" +"`defaultTestResult`) et utilisé. L'objet résultat est renvoyé à l'appelant " +"de :meth:`run`." + +#: ../Doc/library/unittest.rst:771 +msgid "" +"The same effect may be had by simply calling the :class:`TestCase` instance." +msgstr "" +"Le même effet peut être obtenu en appelant simplement l'instance :class:" +"`TestCase`." + +#: ../Doc/library/unittest.rst:774 +msgid "" +"Previous versions of ``run`` did not return the result. Neither did calling " +"an instance." +msgstr "" +"Les versions précédentes de ``run`` ne renvoyaient pas le résultat. Pas plus " +"que l'appel d'une instance." + +#: ../Doc/library/unittest.rst:780 +msgid "" +"Calling this during a test method or :meth:`setUp` skips the current test. " +"See :ref:`unittest-skipping` for more information." +msgstr "" +"Appeler cette fonction pendant l'exécution d'une méthode de test ou de :meth:" +"`setUp` permet d'ignorer le test en cours. Voir :ref:`unittest-skipping` " +"pour plus d'informations." + +#: ../Doc/library/unittest.rst:788 +msgid "" +"Return a context manager which executes the enclosed code block as a " +"subtest. *msg* and *params* are optional, arbitrary values which are " +"displayed whenever a subtest fails, allowing you to identify them clearly." +msgstr "" +"Renvoie un gestionnaire de contexte qui exécute le bloc de code du contexte " +"comme un sous-test. *msg* et *params* sont des valeurs optionnelles et " +"arbitraires qui sont affichées chaque fois qu'un sous-test échoue, " +"permettant de les identifier clairement." + +#: ../Doc/library/unittest.rst:793 +msgid "" +"A test case can contain any number of subtest declarations, and they can be " +"arbitrarily nested." +msgstr "" +"Un scénario de test peut contenir un nombre quelconque de déclarations de " +"sous-test, et elles peuvent être imbriquées librement." + +#: ../Doc/library/unittest.rst:796 +msgid "See :ref:`subtests` for more information." +msgstr "Voir :ref:`subtests` pour plus d'informations." + +#: ../Doc/library/unittest.rst:803 +msgid "" +"Run the test without collecting the result. This allows exceptions raised " +"by the test to be propagated to the caller, and can be used to support " +"running tests under a debugger." +msgstr "" +"Lance le test sans collecter le résultat. Ceci permet aux exceptions levées " +"par le test d'être propagées à l'appelant, et donc peut être utilisé pour " +"exécuter des tests sous un débogueur." + +#: ../Doc/library/unittest.rst:809 +msgid "" +"The :class:`TestCase` class provides several assert methods to check for and " +"report failures. The following table lists the most commonly used methods " +"(see the tables below for more assert methods):" +msgstr "" +"La classe :class:`TestCase` fournit plusieurs méthodes d'assertion pour " +"vérifier et signaler les échecs. Le tableau suivant énumère les méthodes " +"les plus couramment utilisées (voir les tableaux ci-dessous pour plus de " +"méthodes d'assertion) :" + +#: ../Doc/library/unittest.rst:814 ../Doc/library/unittest.rst:936 +#: ../Doc/library/unittest.rst:1128 ../Doc/library/unittest.rst:1255 +msgid "Method" +msgstr "Méthode" + +#: ../Doc/library/unittest.rst:814 ../Doc/library/unittest.rst:936 +#: ../Doc/library/unittest.rst:1128 +msgid "Checks that" +msgstr "Vérifie que" + +#: ../Doc/library/unittest.rst:814 ../Doc/library/unittest.rst:936 +#: ../Doc/library/unittest.rst:1128 ../Doc/library/unittest.rst:1255 +msgid "New in" +msgstr "Disponible en" + +#: ../Doc/library/unittest.rst:816 +msgid ":meth:`assertEqual(a, b) `" +msgstr ":meth:`assertEqual(a, b) `" + +#: ../Doc/library/unittest.rst:816 +msgid "``a == b``" +msgstr "``a == b``" + +#: ../Doc/library/unittest.rst:819 +msgid ":meth:`assertNotEqual(a, b) `" +msgstr ":meth:`assertNotEqual(a, b) `" + +#: ../Doc/library/unittest.rst:819 +msgid "``a != b``" +msgstr "``a != b``" + +#: ../Doc/library/unittest.rst:822 +msgid ":meth:`assertTrue(x) `" +msgstr ":meth:`assertTrue(x) `" + +#: ../Doc/library/unittest.rst:822 +msgid "``bool(x) is True``" +msgstr "``bool(x) is True``" + +#: ../Doc/library/unittest.rst:825 +msgid ":meth:`assertFalse(x) `" +msgstr ":meth:`assertFalse(x) `" + +#: ../Doc/library/unittest.rst:825 +msgid "``bool(x) is False``" +msgstr "``bool(x) is False``" + +#: ../Doc/library/unittest.rst:828 +msgid ":meth:`assertIs(a, b) `" +msgstr ":meth:`assertIs(a, b) `" + +#: ../Doc/library/unittest.rst:828 +msgid "``a is b``" +msgstr "``a is b``" + +#: ../Doc/library/unittest.rst:828 ../Doc/library/unittest.rst:831 +#: ../Doc/library/unittest.rst:834 ../Doc/library/unittest.rst:837 +#: ../Doc/library/unittest.rst:840 ../Doc/library/unittest.rst:843 +#: ../Doc/library/unittest.rst:941 ../Doc/library/unittest.rst:1136 +#: ../Doc/library/unittest.rst:1139 ../Doc/library/unittest.rst:1142 +#: ../Doc/library/unittest.rst:1145 ../Doc/library/unittest.rst:1148 +#: ../Doc/library/unittest.rst:1257 ../Doc/library/unittest.rst:1260 +#: ../Doc/library/unittest.rst:1263 ../Doc/library/unittest.rst:1266 +#: ../Doc/library/unittest.rst:1269 ../Doc/library/unittest.rst:1272 +msgid "3.1" +msgstr "3.1" + +#: ../Doc/library/unittest.rst:831 +msgid ":meth:`assertIsNot(a, b) `" +msgstr ":meth:`assertIsNot(a, b) `" + +#: ../Doc/library/unittest.rst:831 +msgid "``a is not b``" +msgstr "``a is not b``" + +#: ../Doc/library/unittest.rst:834 +msgid ":meth:`assertIsNone(x) `" +msgstr ":meth:`assertIsNone(x) `" + +#: ../Doc/library/unittest.rst:834 +msgid "``x is None``" +msgstr "``x is None``" + +#: ../Doc/library/unittest.rst:837 +msgid ":meth:`assertIsNotNone(x) `" +msgstr ":meth:`assertIsNotNone(x) `" + +#: ../Doc/library/unittest.rst:837 +msgid "``x is not None``" +msgstr "``x is not None``" + +#: ../Doc/library/unittest.rst:840 +msgid ":meth:`assertIn(a, b) `" +msgstr ":meth:`assertIn(a, b) `" + +#: ../Doc/library/unittest.rst:840 +msgid "``a in b``" +msgstr "``a in b``" + +#: ../Doc/library/unittest.rst:843 +msgid ":meth:`assertNotIn(a, b) `" +msgstr ":meth:`assertNotIn(a, b) `" + +#: ../Doc/library/unittest.rst:843 +msgid "``a not in b``" +msgstr "``a not in b``" + +#: ../Doc/library/unittest.rst:846 +msgid ":meth:`assertIsInstance(a, b) `" +msgstr ":meth:`assertIsInstance(a, b) `" + +#: ../Doc/library/unittest.rst:846 +msgid "``isinstance(a, b)``" +msgstr "``isinstance(a, b)``" + +#: ../Doc/library/unittest.rst:846 ../Doc/library/unittest.rst:849 +#: ../Doc/library/unittest.rst:944 ../Doc/library/unittest.rst:947 +#: ../Doc/library/unittest.rst:1151 ../Doc/library/unittest.rst:1154 +msgid "3.2" +msgstr "3.2" + +#: ../Doc/library/unittest.rst:849 +msgid ":meth:`assertNotIsInstance(a, b) `" +msgstr ":meth:`assertNotIsInstance(a, b) `" + +#: ../Doc/library/unittest.rst:849 +msgid "``not isinstance(a, b)``" +msgstr "``not isinstance(a, b)``" + +#: ../Doc/library/unittest.rst:853 +msgid "" +"All the assert methods accept a *msg* argument that, if specified, is used " +"as the error message on failure (see also :data:`longMessage`). Note that " +"the *msg* keyword argument can be passed to :meth:`assertRaises`, :meth:" +"`assertRaisesRegex`, :meth:`assertWarns`, :meth:`assertWarnsRegex` only when " +"they are used as a context manager." +msgstr "" +"Toutes les méthodes *assert* prennent en charge un argument *msg* qui, s'il " +"est spécifié, est utilisé comme message d'erreur en cas d'échec (voir aussi :" +"data:`longMessage`). Notez que l'argument mot-clé *msg* peut être passé à :" +"meth:`assertRaises`, :meth:`assertRaisesRegex`, :meth:`assertWarns`, :meth:" +"`assertWarnsRegex`, seulement quand elles sont utilisées comme gestionnaire " +"de contexte." + +#: ../Doc/library/unittest.rst:861 +msgid "" +"Test that *first* and *second* are equal. If the values do not compare " +"equal, the test will fail." +msgstr "" +"Vérifie que *first* et *second* sont égaux. Si les valeurs ne sont pas " +"égales, le test échouera." + +#: ../Doc/library/unittest.rst:864 +msgid "" +"In addition, if *first* and *second* are the exact same type and one of " +"list, tuple, dict, set, frozenset or str or any type that a subclass " +"registers with :meth:`addTypeEqualityFunc` the type-specific equality " +"function will be called in order to generate a more useful default error " +"message (see also the :ref:`list of type-specific methods `)." +msgstr "" +"En outre, si *first* et *second* ont exactement le même type et sont de type " +"*liste*, *tuple*, *dict*, *set*, *frozenset* ou *str* ou tout autre type de " +"sous classe enregistrée dans :meth:`addTypeEqualityFunc`. La fonction " +"égalité spécifique au type sera appelée pour générer une erreur plus utile " +"(voir aussi :ref:`liste des méthodes spécifiques de type `)." + +#: ../Doc/library/unittest.rst:871 +msgid "Added the automatic calling of type-specific equality function." +msgstr "" +"Ajout de l'appel automatique de la fonction d'égalité spécifique au type." + +#: ../Doc/library/unittest.rst:874 +msgid "" +":meth:`assertMultiLineEqual` added as the default type equality function for " +"comparing strings." +msgstr "" +"Ajout de :meth:`assertMultiLineEqual` comme fonction d'égalité de type par " +"défaut pour comparer les chaînes." + +#: ../Doc/library/unittest.rst:881 +msgid "" +"Test that *first* and *second* are not equal. If the values do compare " +"equal, the test will fail." +msgstr "" +"Vérifie que *first* et *second* ne sont pas égaux. Si les valeurs sont " +"égales, le test échouera." + +#: ../Doc/library/unittest.rst:887 +msgid "Test that *expr* is true (or false)." +msgstr "Vérifie que *expr* est vraie (ou fausse)." + +#: ../Doc/library/unittest.rst:889 +msgid "" +"Note that this is equivalent to ``bool(expr) is True`` and not to ``expr is " +"True`` (use ``assertIs(expr, True)`` for the latter). This method should " +"also be avoided when more specific methods are available (e.g. " +"``assertEqual(a, b)`` instead of ``assertTrue(a == b)``), because they " +"provide a better error message in case of failure." +msgstr "" +"Notez que cela revient à utiliser ``bool(expr) is True`` et non à ``expr is " +"True`` (utilisez ``assertIs(expr, True)`` pour cette dernière). Cette " +"méthode doit également être évitée lorsque des méthodes plus spécifiques " +"sont disponibles (par exemple ``assertEqual(a, b)`` au lieu de " +"``assertTrue(a == b)``), car elles fournissent un meilleur message d'erreur " +"en cas d' échec." + +#: ../Doc/library/unittest.rst:899 +msgid "" +"Test that *first* and *second* evaluate (or don't evaluate) to the same " +"object." +msgstr "" +"Vérifie que *first* et *second* évaluent (ou n'évaluent pas) le même objet." + +#: ../Doc/library/unittest.rst:908 +msgid "Test that *expr* is (or is not) ``None``." +msgstr "Vérifie que *expr* est (ou n'est pas) la valeur ``None``." + +#: ../Doc/library/unittest.rst:916 +msgid "Test that *first* is (or is not) in *second*." +msgstr "Vérifie que *first* est (ou n'est pas) dans *second*." + +#: ../Doc/library/unittest.rst:924 +msgid "" +"Test that *obj* is (or is not) an instance of *cls* (which can be a class or " +"a tuple of classes, as supported by :func:`isinstance`). To check for the " +"exact type, use :func:`assertIs(type(obj), cls) `." +msgstr "" +"Vérifie que *obj* est (ou n'est pas) une instance de *cls* (Ce qui peut être " +"une classe ou un tuple de classes, comme utilisée par :func:`isinstance`). " +"Pour vérifier le type exact, utilisez :func:`assertIs(type(obj), cls) " +"`." + +#: ../Doc/library/unittest.rst:932 +msgid "" +"It is also possible to check the production of exceptions, warnings, and log " +"messages using the following methods:" +msgstr "" +"Il est également possible de vérifier la production des exceptions, des " +"avertissements et des messages de journaux à l'aide des méthodes suivantes :" + +#: ../Doc/library/unittest.rst:938 +msgid ":meth:`assertRaises(exc, fun, *args, **kwds) `" +msgstr ":meth:`assertRaises(exc, fun, *args, **kwds) `" + +#: ../Doc/library/unittest.rst:938 +msgid "``fun(*args, **kwds)`` raises *exc*" +msgstr "``fun(*args, **kwds)`` lève bien l'exception *exc*" + +#: ../Doc/library/unittest.rst:941 +msgid "" +":meth:`assertRaisesRegex(exc, r, fun, *args, **kwds) `" +msgstr "" +":meth:`assertRaisesRegex(exc, r, fun, *args, **kwds) `" + +#: ../Doc/library/unittest.rst:941 +msgid "``fun(*args, **kwds)`` raises *exc* and the message matches regex *r*" +msgstr "" +"``fun(*args, **kwds)`` lève bien l'exception *exc* et que le message " +"correspond au motif de l'expression régulière *r*" + +#: ../Doc/library/unittest.rst:944 +msgid ":meth:`assertWarns(warn, fun, *args, **kwds) `" +msgstr ":meth:`assertWarns(warn, fun, *args, **kwds) `" + +#: ../Doc/library/unittest.rst:944 +msgid "``fun(*args, **kwds)`` raises *warn*" +msgstr "``fun(*args, **kwds)`` lève bien l'avertissement *warn*" + +#: ../Doc/library/unittest.rst:947 +msgid "" +":meth:`assertWarnsRegex(warn, r, fun, *args, **kwds) `" +msgstr "" +":meth:`assertWarnsRegex(warn, r, fun, *args, **kwds) `" + +#: ../Doc/library/unittest.rst:947 +msgid "``fun(*args, **kwds)`` raises *warn* and the message matches regex *r*" +msgstr "" +"``fun(*args, **kwds)`` lève bien l'avertissement *warn* et que le message " +"correspond au motif de l'expression régulière *r*" + +#: ../Doc/library/unittest.rst:950 +msgid ":meth:`assertLogs(logger, level) `" +msgstr ":meth:`assertLogs(logger, level) `" + +#: ../Doc/library/unittest.rst:950 +msgid "The ``with`` block logs on *logger* with minimum *level*" +msgstr "" +"Le bloc ``with`` écrit dans le *logger* avec un niveau minimum égal à " +"*level*" + +#: ../Doc/library/unittest.rst:950 +msgid "3.4" +msgstr "3.4" + +#: ../Doc/library/unittest.rst:957 +msgid "" +"Test that an exception is raised when *callable* is called with any " +"positional or keyword arguments that are also passed to :meth:" +"`assertRaises`. The test passes if *exception* is raised, is an error if " +"another exception is raised, or fails if no exception is raised. To catch " +"any of a group of exceptions, a tuple containing the exception classes may " +"be passed as *exception*." +msgstr "" +"Vérifie qu'une exception est levée lorsque *callable* est appelé avec " +"n'importe quel argument positionnel ou mot-clé qui est également passé à :" +"meth:`assertRaises`. Le test réussit si *exception* est levée, est en " +"erreur si une autre exception est levée, ou en échec si aucune exception " +"n'est levée. Pour capturer une exception d'un groupe d'exceptions, un couple " +"contenant les classes d'exceptions peut être passé à *exception*." + +#: ../Doc/library/unittest.rst:964 +msgid "" +"If only the *exception* and possibly the *msg* arguments are given, return a " +"context manager so that the code under test can be written inline rather " +"than as a function::" +msgstr "" +"Si seuls les arguments *exception* et éventuellement *msg* sont donnés, " +"renvoie un gestionnaire de contexte pour que le code sous test puisse être " +"écrit en ligne plutôt que comme une fonction ::" + +#: ../Doc/library/unittest.rst:971 +msgid "" +"When used as a context manager, :meth:`assertRaises` accepts the additional " +"keyword argument *msg*." +msgstr "" +"Lorsqu'il est utilisé comme gestionnaire de contexte, :meth:`assertRaises` " +"accepte l'argument de mot-clé supplémentaire *msg*." + +#: ../Doc/library/unittest.rst:974 +msgid "" +"The context manager will store the caught exception object in its :attr:" +"`exception` attribute. This can be useful if the intention is to perform " +"additional checks on the exception raised::" +msgstr "" +"Le gestionnaire de contexte enregistre l'exception capturée dans son " +"attribut :attr:`exception`. Ceci est particulièrement utile si l'intention " +"est d'effectuer des contrôles supplémentaires sur l'exception levée ::" + +#: ../Doc/library/unittest.rst:984 +msgid "Added the ability to use :meth:`assertRaises` as a context manager." +msgstr "" +"Ajout de la possibilité d'utiliser :meth:`assertRaises` comme gestionnaire " +"de contexte." + +#: ../Doc/library/unittest.rst:987 +msgid "Added the :attr:`exception` attribute." +msgstr "Ajout de l'attribut :attr:`exception`." + +#: ../Doc/library/unittest.rst:990 ../Doc/library/unittest.rst:1016 +#: ../Doc/library/unittest.rst:1057 ../Doc/library/unittest.rst:1080 +msgid "Added the *msg* keyword argument when used as a context manager." +msgstr "" +"Ajout de l'argument *msg* comme mot-clé lorsqu'il est utilisé comme " +"gestionnaire de contexte." + +#: ../Doc/library/unittest.rst:997 +msgid "" +"Like :meth:`assertRaises` but also tests that *regex* matches on the string " +"representation of the raised exception. *regex* may be a regular expression " +"object or a string containing a regular expression suitable for use by :func:" +"`re.search`. Examples::" +msgstr "" +"Comme :meth:`assertRaises` mais vérifie aussi que *regex* correspond à la " +"représentation de la chaîne de caractères de l'exception levée. *regex* " +"peut être un objet d'expression rationnelle ou une chaîne contenant une " +"expression rationnelle appropriée pour être utilisée par :func:`re.search`. " +"Exemples ::" + +#: ../Doc/library/unittest.rst:1005 ../Doc/library/unittest.rst:1073 +msgid "or::" +msgstr "ou ::" + +#: ../Doc/library/unittest.rst:1010 +msgid "Added under the name ``assertRaisesRegexp``." +msgstr "Sous le nom ``assertRaisesRegexp``." + +#: ../Doc/library/unittest.rst:1013 +msgid "Renamed to :meth:`assertRaisesRegex`." +msgstr "Renommé en :meth:`assertRaisesRegex`." + +#: ../Doc/library/unittest.rst:1023 +msgid "" +"Test that a warning is triggered when *callable* is called with any " +"positional or keyword arguments that are also passed to :meth:" +"`assertWarns`. The test passes if *warning* is triggered and fails if it " +"isn't. Any exception is an error. To catch any of a group of warnings, a " +"tuple containing the warning classes may be passed as *warnings*." +msgstr "" +"Test qu'un avertissement est déclenché lorsque *callable* est appelé avec " +"n'importe quel argument positionnel ou mot-clé qui est également passé à :" +"meth:`assertWarns`. Le test passe si *warning* est déclenché et échoue s'il " +"ne l'est pas. Toute exception est une erreur. Pour capturer un avertissement " +"dans un ensemble d'avertissements, un couple contenant les classes " +"d'avertissement peut être passé à *warnings*." + +#: ../Doc/library/unittest.rst:1030 +msgid "" +"If only the *warning* and possibly the *msg* arguments are given, return a " +"context manager so that the code under test can be written inline rather " +"than as a function::" +msgstr "" +"Si seuls les arguments * warning* et éventuellement *msg* sont donnés, " +"renvoie un gestionnaire de contexte pour que le code testé puisse être écrit " +"en ligne plutôt que comme une fonction ::" + +#: ../Doc/library/unittest.rst:1037 +msgid "" +"When used as a context manager, :meth:`assertWarns` accepts the additional " +"keyword argument *msg*." +msgstr "" +"Lorsqu'il est utilisé comme gestionnaire de contexte, :meth:`assertWarns` " +"accepte l'argument de mot-clé supplémentaire *msg*." + +#: ../Doc/library/unittest.rst:1040 +msgid "" +"The context manager will store the caught warning object in its :attr:" +"`warning` attribute, and the source line which triggered the warnings in " +"the :attr:`filename` and :attr:`lineno` attributes. This can be useful if " +"the intention is to perform additional checks on the warning caught::" +msgstr "" +"Le gestionnaire de contexte stocke l'avertissement capturé dans son " +"attribut :attr:`warning`, et la ligne source qui a déclenché les " +"avertissements dans les attributs :attr:`filename` et :attr:`lineno`. Cette " +"fonction peut être utile si l'intention est d'effectuer des contrôles " +"supplémentaires sur l'avertissement capturé ::" + +#: ../Doc/library/unittest.rst:1052 +msgid "" +"This method works regardless of the warning filters in place when it is " +"called." +msgstr "" +"Cette méthode fonctionne indépendamment des filtres d'avertissement en place " +"lorsqu'elle est appelée." + +#: ../Doc/library/unittest.rst:1064 +msgid "" +"Like :meth:`assertWarns` but also tests that *regex* matches on the message " +"of the triggered warning. *regex* may be a regular expression object or a " +"string containing a regular expression suitable for use by :func:`re." +"search`. Example::" +msgstr "" +"Comme :meth:`assertWarns` mais vérifie aussi qu'une *regex* corresponde au " +"message de l'avertissement. *regex* peut être un objet d'expression " +"régulière ou une chaîne contenant une expression régulière appropriée pour " +"être utilisée par :func:`re.search`. Exemple ::" + +#: ../Doc/library/unittest.rst:1085 +msgid "" +"A context manager to test that at least one message is logged on the " +"*logger* or one of its children, with at least the given *level*." +msgstr "" +"Un gestionnaire de contexte pour tester qu'au moins un message est " +"enregistré sur le *logger* ou un de ses enfants, avec au moins le *niveau* " +"donné." + +#: ../Doc/library/unittest.rst:1089 +msgid "" +"If given, *logger* should be a :class:`logging.Logger` object or a :class:" +"`str` giving the name of a logger. The default is the root logger, which " +"will catch all messages." +msgstr "" +"Si donné, *logger* doit être une classe :class:`logging.logger` objet ou une " +"classe :class:`str` donnant le nom d'un journal. La valeur par défaut est le " +"journal racine *root*, qui capture tous les messages." + +#: ../Doc/library/unittest.rst:1093 +msgid "" +"If given, *level* should be either a numeric logging level or its string " +"equivalent (for example either ``\"ERROR\"`` or :attr:`logging.ERROR`). The " +"default is :attr:`logging.INFO`." +msgstr "" +"S'il est donné, *level* doit être soit un entier, soit son équivalent sous " +"forme de chaîne (par exemple ``\"ERROR\"`` ou :attr:`logging.ERROR`). La " +"valeur par défaut est :attr:`logging.INFO`." + +#: ../Doc/library/unittest.rst:1097 +msgid "" +"The test passes if at least one message emitted inside the ``with`` block " +"matches the *logger* and *level* conditions, otherwise it fails." +msgstr "" +"Le test passe si au moins un message émis à l'intérieur du bloc ``with`` " +"correspond aux conditions *logger* et *level*, sinon il échoue." + +#: ../Doc/library/unittest.rst:1100 +msgid "" +"The object returned by the context manager is a recording helper which keeps " +"tracks of the matching log messages. It has two attributes:" +msgstr "" +"L'objet retourné par le gestionnaire de contexte est une aide à " +"l'enregistrement qui garde la trace des messages de journal correspondants. " +"Il a deux attributs  ::" + +#: ../Doc/library/unittest.rst:1106 +msgid "" +"A list of :class:`logging.LogRecord` objects of the matching log messages." +msgstr "" +"Une liste d'objets :class:`logging.LogRecord` de messages de log " +"correspondants." + +#: ../Doc/library/unittest.rst:1111 +msgid "" +"A list of :class:`str` objects with the formatted output of matching " +"messages." +msgstr "" +"Une liste d'objets :class:`str` avec la sortie formatée des messages " +"correspondants." + +#: ../Doc/library/unittest.rst:1114 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/unittest.rst:1125 +msgid "" +"There are also other methods used to perform more specific checks, such as:" +msgstr "" +"Il existe également d'autres méthodes utilisées pour effectuer des contrôles " +"plus spécifiques, telles que  ::" + +#: ../Doc/library/unittest.rst:1130 +msgid ":meth:`assertAlmostEqual(a, b) `" +msgstr ":meth:`assertAlmostEqual(a, b) `" + +#: ../Doc/library/unittest.rst:1130 +msgid "``round(a-b, 7) == 0``" +msgstr "``round(a-b, 7) == 0``" + +#: ../Doc/library/unittest.rst:1133 +msgid ":meth:`assertNotAlmostEqual(a, b) `" +msgstr ":meth:`assertNotAlmostEqual(a, b) `" + +#: ../Doc/library/unittest.rst:1133 +msgid "``round(a-b, 7) != 0``" +msgstr "``round(a-b, 7) != 0``" + +#: ../Doc/library/unittest.rst:1136 +msgid ":meth:`assertGreater(a, b) `" +msgstr ":meth:`assertGreater(a, b) `" + +#: ../Doc/library/unittest.rst:1136 +msgid "``a > b``" +msgstr "``a > b``" + +#: ../Doc/library/unittest.rst:1139 +msgid ":meth:`assertGreaterEqual(a, b) `" +msgstr ":meth:`assertGreaterEqual(a, b) `" + +#: ../Doc/library/unittest.rst:1139 +msgid "``a >= b``" +msgstr "``a >= b``" + +#: ../Doc/library/unittest.rst:1142 +msgid ":meth:`assertLess(a, b) `" +msgstr ":meth:`assertLess(a, b) `" + +#: ../Doc/library/unittest.rst:1142 +msgid "``a < b``" +msgstr "``a < b``" + +#: ../Doc/library/unittest.rst:1145 +msgid ":meth:`assertLessEqual(a, b) `" +msgstr ":meth:`assertLessEqual(a, b) `" + +#: ../Doc/library/unittest.rst:1145 +msgid "``a <= b``" +msgstr "``a <= b``" + +#: ../Doc/library/unittest.rst:1148 +msgid ":meth:`assertRegex(s, r) `" +msgstr ":meth:`assertRegex(s, r) `" + +#: ../Doc/library/unittest.rst:1148 +msgid "``r.search(s)``" +msgstr "``r.search(s)``" + +#: ../Doc/library/unittest.rst:1151 +msgid ":meth:`assertNotRegex(s, r) `" +msgstr ":meth:`assertNotRegex(s, r) `" + +#: ../Doc/library/unittest.rst:1151 +msgid "``not r.search(s)``" +msgstr "``not r.search(s)``" + +#: ../Doc/library/unittest.rst:1154 +msgid ":meth:`assertCountEqual(a, b) `" +msgstr ":meth:`assertCountEqual(a, b) `" + +#: ../Doc/library/unittest.rst:1154 +msgid "" +"*a* and *b* have the same elements in the same number, regardless of their " +"order." +msgstr "" +"*a* et *b* ont les mêmes éléments dans le même nombre, quel que soit leur " +"ordre." + +#: ../Doc/library/unittest.rst:1163 +msgid "" +"Test that *first* and *second* are approximately (or not approximately) " +"equal by computing the difference, rounding to the given number of decimal " +"*places* (default 7), and comparing to zero. Note that these methods round " +"the values to the given number of *decimal places* (i.e. like the :func:" +"`round` function) and not *significant digits*." +msgstr "" +"Vérifie que *first* et *second* sont approximativement (ou pas " +"approximativement) égaux en calculant la différence, en arrondissant au " +"nombre donné de décimales *places* (par défaut 7), et en comparant à zéro. " +"Notez que ces méthodes arrondissent les valeurs au nombre donné de " +"*décimales* (par exemple comme la fonction :func:`round`) et non aux " +"*chiffres significatifs*." + +#: ../Doc/library/unittest.rst:1169 +msgid "" +"If *delta* is supplied instead of *places* then the difference between " +"*first* and *second* must be less or equal to (or greater than) *delta*." +msgstr "" +"Si *delta* est fourni au lieu de *places*, la différence entre *first* et " +"*second* doit être inférieure ou égale (ou supérieure) à *delta*." + +#: ../Doc/library/unittest.rst:1172 +msgid "Supplying both *delta* and *places* raises a :exc:`TypeError`." +msgstr "Fournir à la fois *delta* et *places* lève une :exc:`TypeError`." + +#: ../Doc/library/unittest.rst:1174 +msgid "" +":meth:`assertAlmostEqual` automatically considers almost equal objects that " +"compare equal. :meth:`assertNotAlmostEqual` automatically fails if the " +"objects compare equal. Added the *delta* keyword argument." +msgstr "" +":meth:`assertAlmostEqual` considère automatiquement des objets presque égaux " +"qui se comparent égaux. :meth:`assertNotNotAlmostEqual` échoue " +"automatiquement si les objets qui se comparent sont égaux. Ajout de " +"l'argument mot-clé *delta*." + +#: ../Doc/library/unittest.rst:1185 +msgid "" +"Test that *first* is respectively >, >=, < or <= than *second* depending on " +"the method name. If not, the test will fail::" +msgstr "" +"Vérifie que *first* est respectivement >, >=, >=, < ou <= à *second* selon " +"le nom de la méthode. Sinon, le test échouera ::" + +#: ../Doc/library/unittest.rst:1197 +msgid "" +"Test that a *regex* search matches (or does not match) *text*. In case of " +"failure, the error message will include the pattern and the *text* (or the " +"pattern and the part of *text* that unexpectedly matched). *regex* may be a " +"regular expression object or a string containing a regular expression " +"suitable for use by :func:`re.search`." +msgstr "" +"Vérifie qu'une recherche par motif *regex* correspond (ou ne correspond " +"pas) à *text*. En cas d'échec, le message d'erreur inclura le motif et le " +"*texte* (ou le motif et la partie du *texte* qui correspond de manière " +"inattendue). *regex* peut être un objet d'expression régulière ou une " +"chaîne contenant une expression régulière appropriée pour être utilisée par :" +"func:`re.search`." + +#: ../Doc/library/unittest.rst:1203 +msgid "Added under the name ``assertRegexpMatches``." +msgstr "Ajouté sous le nom ``assertRegexpMatches``." + +#: ../Doc/library/unittest.rst:1205 +msgid "" +"The method ``assertRegexpMatches()`` has been renamed to :meth:`." +"assertRegex`." +msgstr "" +"La méthode ``assertRegexpMatches()`` a été renommé en :meth:`.assertRegex`." + +#: ../Doc/library/unittest.rst:1208 +msgid ":meth:`.assertNotRegex`." +msgstr ":meth:`.assertNotRegex`." + +#: ../Doc/library/unittest.rst:1210 +msgid "" +"The name ``assertNotRegexpMatches`` is a deprecated alias for :meth:`." +"assertNotRegex`." +msgstr "" +"Le nom ``assertNotRegexpMatches``` est un alias obsolète pour :meth:`." +"assertNotRegex`." + +#: ../Doc/library/unittest.rst:1217 +msgid "" +"Test that sequence *first* contains the same elements as *second*, " +"regardless of their order. When they don't, an error message listing the " +"differences between the sequences will be generated." +msgstr "" +"Vérifie que la séquence *first* contient les mêmes éléments que *second*, " +"quel que soit leur ordre. Si ce n'est pas le cas, un message d'erreur " +"indiquant les différences entre les séquences est généré." + +#: ../Doc/library/unittest.rst:1221 +msgid "" +"Duplicate elements are *not* ignored when comparing *first* and *second*. It " +"verifies whether each element has the same count in both sequences. " +"Equivalent to: ``assertEqual(Counter(list(first)), Counter(list(second)))`` " +"but works with sequences of unhashable objects as well." +msgstr "" +"Les éléments en double ne sont *pas* ignorés lors de la comparaison entre " +"*first* et *second*. Il vérifie si chaque élément a le même nombre dans les " +"deux séquences. Équivalent à : ``assertEqual(Counter(list(first))), " +"Counter(list(second)))`` mais fonctionne aussi avec des séquences d'objets " +"non *hachables*." + +#: ../Doc/library/unittest.rst:1232 +msgid "" +"The :meth:`assertEqual` method dispatches the equality check for objects of " +"the same type to different type-specific methods. These methods are already " +"implemented for most of the built-in types, but it's also possible to " +"register new methods using :meth:`addTypeEqualityFunc`:" +msgstr "" +"La méthode :meth:`assertEqual` envoie le contrôle d'égalité pour les objets " +"du même type à différentes méthodes spécifiques au type. Ces méthodes sont " +"déjà implémentées pour la plupart des types intégrés, mais il est également " +"possible d'enregistrer de nouvelles méthodes en utilisant :meth:" +"`addTypeEqualityFunc`  ::" + +#: ../Doc/library/unittest.rst:1239 +msgid "" +"Registers a type-specific method called by :meth:`assertEqual` to check if " +"two objects of exactly the same *typeobj* (not subclasses) compare equal. " +"*function* must take two positional arguments and a third msg=None keyword " +"argument just as :meth:`assertEqual` does. It must raise :data:`self." +"failureException(msg) ` when inequality between the first " +"two parameters is detected -- possibly providing useful information and " +"explaining the inequalities in details in the error message." +msgstr "" +"Enregistre une méthode spécifique appelée par :meth:`assertEqual` pour " +"vérifier si deux objets exactement du même *typeobj* (et non leurs sous-" +"classes) sont égaux. *function* doit prendre deux arguments positionnels et " +"un troisième argument mot-clé *msg=None* tout comme :meth:`assertEqual` le " +"fait. Il doit lever :data:`self.failureException(msg) ` " +"lorsqu'une inégalité entre les deux premiers paramètres est détectée en " +"fournissant éventuellement des informations utiles et expliquant l'inégalité " +"en détail dans le message d'erreur." + +#: ../Doc/library/unittest.rst:1250 +msgid "" +"The list of type-specific methods automatically used by :meth:`~TestCase." +"assertEqual` are summarized in the following table. Note that it's usually " +"not necessary to invoke these methods directly." +msgstr "" +"La liste des méthodes spécifiques utilisées automatiquement par :meth:" +"`~TestCase.assertEqual` est résumée dans le tableau suivant. Notez qu'il " +"n'est généralement pas nécessaire d'invoquer ces méthodes directement." + +#: ../Doc/library/unittest.rst:1255 +msgid "Used to compare" +msgstr "Utilisé pour comparer" + +#: ../Doc/library/unittest.rst:1257 +msgid ":meth:`assertMultiLineEqual(a, b) `" +msgstr ":meth:`assertMultiLineEqual(a, b) `" + +#: ../Doc/library/unittest.rst:1257 +msgid "strings" +msgstr "chaînes" + +#: ../Doc/library/unittest.rst:1260 +msgid ":meth:`assertSequenceEqual(a, b) `" +msgstr ":meth:`assertSequenceEqual(a, b) `" + +#: ../Doc/library/unittest.rst:1260 +msgid "sequences" +msgstr "séquences" + +#: ../Doc/library/unittest.rst:1263 +msgid ":meth:`assertListEqual(a, b) `" +msgstr ":meth:`assertListEqual(a, b) `" + +#: ../Doc/library/unittest.rst:1263 +msgid "lists" +msgstr "listes" + +#: ../Doc/library/unittest.rst:1266 +msgid ":meth:`assertTupleEqual(a, b) `" +msgstr ":meth:`assertTupleEqual(a, b) `" + +#: ../Doc/library/unittest.rst:1266 +msgid "tuples" +msgstr "n-uplets" + +#: ../Doc/library/unittest.rst:1269 +msgid ":meth:`assertSetEqual(a, b) `" +msgstr ":meth:`assertSetEqual(a, b) `" + +#: ../Doc/library/unittest.rst:1269 +msgid "sets or frozensets" +msgstr "*sets* ou *frozensets*" + +#: ../Doc/library/unittest.rst:1272 +msgid ":meth:`assertDictEqual(a, b) `" +msgstr ":meth:`assertDictEqual(a, b) `" + +#: ../Doc/library/unittest.rst:1272 +msgid "dicts" +msgstr "dictionnaires" + +#: ../Doc/library/unittest.rst:1280 +msgid "" +"Test that the multiline string *first* is equal to the string *second*. When " +"not equal a diff of the two strings highlighting the differences will be " +"included in the error message. This method is used by default when comparing " +"strings with :meth:`assertEqual`." +msgstr "" +"Vérifie que la chaîne sur plusieurs lignes *first* est égale à la chaîne " +"*second*. Si les deux chaînes de caractères ne sont pas égales, un *diff* " +"mettant en évidence les différences est inclus dans le message d'erreur. " +"Cette méthode est utilisée par défaut pour comparer les chaînes avec :meth:" +"`assertEqual`." + +#: ../Doc/library/unittest.rst:1290 +msgid "" +"Tests that two sequences are equal. If a *seq_type* is supplied, both " +"*first* and *second* must be instances of *seq_type* or a failure will be " +"raised. If the sequences are different an error message is constructed that " +"shows the difference between the two." +msgstr "" +"Vérifie que deux séquences sont égales. Si un *seq_type* est fourni, *first* " +"et *second* doivent tous deux être des instances de *seq_type* ou un échec " +"est levé. Si les séquences sont différentes, un message d'erreur indiquant " +"la différence entre les deux est généré." + +#: ../Doc/library/unittest.rst:1295 +msgid "" +"This method is not called directly by :meth:`assertEqual`, but it's used to " +"implement :meth:`assertListEqual` and :meth:`assertTupleEqual`." +msgstr "" +"Cette méthode n'est pas appelée directement par :meth:`assertEqual`, mais " +"sert à implémenter :meth:`assertListEqual` et :meth:`assertTupleEqual`." + +#: ../Doc/library/unittest.rst:1305 +msgid "" +"Tests that two lists or tuples are equal. If not, an error message is " +"constructed that shows only the differences between the two. An error is " +"also raised if either of the parameters are of the wrong type. These methods " +"are used by default when comparing lists or tuples with :meth:`assertEqual`." +msgstr "" +"Vérifie que deux listes ou deux n-uplets sont égaux. Si ce n'est pas le " +"cas, un message d'erreur qui ne montre que les différences entre les deux " +"est généré. Une erreur est également signalée si l'un ou l'autre des " +"paramètres n'est pas du bon type. Ces méthodes sont utilisées par défaut " +"pour comparer des listes ou des couples avec :meth:`assertEqual`." + +#: ../Doc/library/unittest.rst:1316 +msgid "" +"Tests that two sets are equal. If not, an error message is constructed that " +"lists the differences between the sets. This method is used by default when " +"comparing sets or frozensets with :meth:`assertEqual`." +msgstr "" +"Vérifie que deux ensembles sont égaux. Si ce n'est pas le cas, un message " +"d'erreur s'affiche et indique les différences entre les *sets*. Cette " +"méthode est utilisée par défaut lors de la comparaison de *sets* ou de " +"*frozensets* avec :meth:`assertEqual`." + +#: ../Doc/library/unittest.rst:1320 +msgid "" +"Fails if either of *first* or *second* does not have a :meth:`set." +"difference` method." +msgstr "" +"Échoue si l'un des objets *first* ou *second* n'a pas de méthode :meth:`set." +"difference`." + +#: ../Doc/library/unittest.rst:1328 +msgid "" +"Test that two dictionaries are equal. If not, an error message is " +"constructed that shows the differences in the dictionaries. This method will " +"be used by default to compare dictionaries in calls to :meth:`assertEqual`." +msgstr "" +"Vérifie que deux dictionnaires sont égaux. Si ce n'est pas le cas, un " +"message d'erreur qui montre les différences dans les dictionnaires est " +"généré. Cette méthode est utilisée par défaut pour comparer les " +"dictionnaires dans les appels à :meth:`assertEqual`." + +#: ../Doc/library/unittest.rst:1339 +msgid "" +"Finally the :class:`TestCase` provides the following methods and attributes:" +msgstr "" +"Enfin, la classe :class:`TestCase` fournit les méthodes et attributs " +"suivants :" + +#: ../Doc/library/unittest.rst:1344 +msgid "" +"Signals a test failure unconditionally, with *msg* or ``None`` for the error " +"message." +msgstr "" +"Indique un échec du test sans condition, avec *msg* ou ``None`` pour le " +"message d'erreur." + +#: ../Doc/library/unittest.rst:1350 +msgid "" +"This class attribute gives the exception raised by the test method. If a " +"test framework needs to use a specialized exception, possibly to carry " +"additional information, it must subclass this exception in order to \"play " +"fair\" with the framework. The initial value of this attribute is :exc:" +"`AssertionError`." +msgstr "" +"Cet attribut de classe donne l'exception levée par la méthode de test. Si " +"un *framework* de tests doit utiliser une exception spécialisée, " +"probablement pour enrichir l'exception d'informations additionnels., il doit " +"hériter de cette classe d'exception pour *bien fonctionner* avec le " +"*framework*. La valeur initiale de cet attribut est :exc:`AssertionError`." + +#: ../Doc/library/unittest.rst:1359 +msgid "" +"This class attribute determines what happens when a custom failure message " +"is passed as the msg argument to an assertXYY call that fails. ``True`` is " +"the default value. In this case, the custom message is appended to the end " +"of the standard failure message. When set to ``False``, the custom message " +"replaces the standard message." +msgstr "" +"Cet attribut de classe détermine ce qui se passe lorsqu'un message d'échec " +"personnalisé est passé en argument au paramètre *msg* à un appel " +"*assertXYYY* qui échoue. ``True`` est la valeur par défaut. Dans ce cas, le " +"message personnalisé est ajouté à la fin du message d'erreur standard. " +"Lorsqu'il est réglé sur ``False``, le message personnalisé remplace le " +"message standard." + +#: ../Doc/library/unittest.rst:1365 +msgid "" +"The class setting can be overridden in individual test methods by assigning " +"an instance attribute, self.longMessage, to ``True`` or ``False`` before " +"calling the assert methods." +msgstr "" +"Le paramétrage de la classe peut être écrasé dans les méthodes de test " +"individuelles en assignant un attribut d'instance, *self.longMessage*, à " +"``True`` ou ``False`` avant d'appeler les méthodes d'assertion." + +#: ../Doc/library/unittest.rst:1369 +msgid "The class setting gets reset before each test call." +msgstr "Le réglage de la classe est réinitialisé avant chaque appel de test." + +#: ../Doc/library/unittest.rst:1376 +msgid "" +"This attribute controls the maximum length of diffs output by assert methods " +"that report diffs on failure. It defaults to 80*8 characters. Assert methods " +"affected by this attribute are :meth:`assertSequenceEqual` (including all " +"the sequence comparison methods that delegate to it), :meth:" +"`assertDictEqual` and :meth:`assertMultiLineEqual`." +msgstr "" +"Cet attribut contrôle la longueur maximale des *diffs* en sortie des " +"méthodes qui génèrent des *diffs* en cas d'échec. La valeur par défaut est " +"80*8 caractères. Les méthodes d'assertions affectées par cet attribut sont :" +"meth:`assertSequenceEqual` (y compris toutes les méthodes de comparaison de " +"séquences qui lui sont déléguées), :meth:`assertDictEqual` et :meth:" +"`assertMultiLineEqual`." + +#: ../Doc/library/unittest.rst:1383 +msgid "" +"Setting ``maxDiff`` to ``None`` means that there is no maximum length of " +"diffs." +msgstr "" +"Régler ``maxDiff`` sur ``None``` signifie qu'il n'y a pas de longueur " +"maximale pour les *diffs*." + +#: ../Doc/library/unittest.rst:1389 +msgid "" +"Testing frameworks can use the following methods to collect information on " +"the test:" +msgstr "" +"Les *frameworks* de test peuvent utiliser les méthodes suivantes pour " +"recueillir des informations sur le test :" + +#: ../Doc/library/unittest.rst:1395 +msgid "" +"Return the number of tests represented by this test object. For :class:" +"`TestCase` instances, this will always be ``1``." +msgstr "" +"Renvoie le nombre de tests représentés par cet objet test. Pour les " +"instances de :class:`TestCase`, c'est toujours ``1``." + +#: ../Doc/library/unittest.rst:1401 +msgid "" +"Return an instance of the test result class that should be used for this " +"test case class (if no other result instance is provided to the :meth:`run` " +"method)." +msgstr "" +"Retourne une instance de la classe de résultat de test qui doit être " +"utilisée pour cette classe de cas de test (si aucune autre instance de " +"résultat n'est fournie à la méthode :meth:`run`)." + +#: ../Doc/library/unittest.rst:1405 +msgid "" +"For :class:`TestCase` instances, this will always be an instance of :class:" +"`TestResult`; subclasses of :class:`TestCase` should override this as " +"necessary." +msgstr "" +"Pour les instances de :class:`TestCase`, c'est toujours une instance de :" +"class:`TestResult` ; les sous-classes de :class:`TestCase` peuvent la " +"remplacer au besoin." + +#: ../Doc/library/unittest.rst:1412 +msgid "" +"Return a string identifying the specific test case. This is usually the " +"full name of the test method, including the module and class name." +msgstr "" +"Retourne une chaîne identifiant le cas de test spécifique. Il s'agit " +"généralement du nom complet de la méthode de test, y compris le nom du " +"module et de la classe." + +#: ../Doc/library/unittest.rst:1418 +msgid "" +"Returns a description of the test, or ``None`` if no description has been " +"provided. The default implementation of this method returns the first line " +"of the test method's docstring, if available, or ``None``." +msgstr "" +"Renvoie une description du test, ou ``None`` si aucune description n'a été " +"fournie. L'implémentation par défaut de cette méthode renvoie la première " +"ligne de la *docstring* de la méthode de test, si disponible, ou ``None``." + +#: ../Doc/library/unittest.rst:1423 +msgid "" +"In 3.1 this was changed to add the test name to the short description even " +"in the presence of a docstring. This caused compatibility issues with " +"unittest extensions and adding the test name was moved to the :class:" +"`TextTestResult` in Python 3.2." +msgstr "" +"En 3.1, ceci a été modifié pour ajouter le nom du test à la description " +"courte, même en présence d'une *docstring*. Cela a causé des problèmes de " +"compatibilité avec les extensions *unittest* et l'ajout du nom du test a été " +"déplacé dans la classe :class:`TextTestResult` dans Python 3.2." + +#: ../Doc/library/unittest.rst:1432 +msgid "" +"Add a function to be called after :meth:`tearDown` to cleanup resources used " +"during the test. Functions will be called in reverse order to the order they " +"are added (:abbr:`LIFO (last-in, first-out)`). They are called with any " +"arguments and keyword arguments passed into :meth:`addCleanup` when they are " +"added." +msgstr "" +"Ajout d'une fonction à appeler après :meth:`tearDown` pour nettoyer les " +"ressources utilisées pendant le test. Les fonctions seront appelées dans " +"l'ordre inverse de l'ordre dans lequel elles ont été ajoutées (:abbr:`LIFO " +"(dernier entré, premier sorti)`). Elles sont appelées avec tous les " +"arguments et arguments de mots-clés passés à :meth:`addCleanup` quand elles " +"sont ajoutées." + +#: ../Doc/library/unittest.rst:1438 +msgid "" +"If :meth:`setUp` fails, meaning that :meth:`tearDown` is not called, then " +"any cleanup functions added will still be called." +msgstr "" +"Si :meth:`setUp` échoue, cela signifie que :meth:`tearDown` n'est pas " +"appelé, alors que les fonctions de nettoyage ajoutées seront toujours " +"appelées." + +#: ../Doc/library/unittest.rst:1446 +msgid "" +"This method is called unconditionally after :meth:`tearDown`, or after :meth:" +"`setUp` if :meth:`setUp` raises an exception." +msgstr "" +"Cette méthode est appelée sans conditions après :meth:`tearDown`, ou après :" +"meth:`setUp` si :meth:`setUp` lève une exception." + +#: ../Doc/library/unittest.rst:1449 +msgid "" +"It is responsible for calling all the cleanup functions added by :meth:" +"`addCleanup`. If you need cleanup functions to be called *prior* to :meth:" +"`tearDown` then you can call :meth:`doCleanups` yourself." +msgstr "" +"Cette méthode est chargée d'appeler toutes les fonctions de nettoyage " +"ajoutées par :meth:`addCleanup`. Si vous avez besoin de fonctions de " +"nettoyage à appeler *avant* l'appel à :meth:`tearDown` alors vous pouvez " +"appeler :meth:`doCleanups` vous-même." + +#: ../Doc/library/unittest.rst:1454 +msgid "" +":meth:`doCleanups` pops methods off the stack of cleanup functions one at a " +"time, so it can be called at any time." +msgstr "" +":meth:`doCleanups` extrait les méthodes de la pile des fonctions de " +"nettoyage une à la fois, de sorte qu'elles peuvent être appelées à tout " +"moment." + +#: ../Doc/library/unittest.rst:1462 +msgid "" +"This class implements the portion of the :class:`TestCase` interface which " +"allows the test runner to drive the test, but does not provide the methods " +"which test code can use to check and report errors. This is used to create " +"test cases using legacy test code, allowing it to be integrated into a :mod:" +"`unittest`-based test framework." +msgstr "" +"Cette classe implémente la partie de l'interface :class:`TestCase` qui " +"permet au lanceur de test de piloter le scénario de test, mais ne fournit " +"pas les méthodes que le code test peut utiliser pour vérifier et signaler " +"les erreurs. Ceci est utilisé pour créer des scénario de test utilisant du " +"code de test existant afin de faciliter l'intégration dans un *framework* de " +"test basé sur :mod:`unittest`." + +#: ../Doc/library/unittest.rst:1472 +msgid "Deprecated aliases" +msgstr "Alias obsolètes" + +#: ../Doc/library/unittest.rst:1474 +msgid "" +"For historical reasons, some of the :class:`TestCase` methods had one or " +"more aliases that are now deprecated. The following table lists the correct " +"names along with their deprecated aliases:" +msgstr "" +"Pour des raisons historiques, certaines méthodes de la classe :class:" +"`TestCase` avaient un ou plusieurs alias qui sont maintenant obsolètes. Le " +"tableau suivant énumère les noms corrects ainsi que leurs alias obsolètes  ::" + +#: ../Doc/library/unittest.rst:1479 +msgid "Method Name" +msgstr "Nom de méthode" + +#: ../Doc/library/unittest.rst:1479 +msgid "Deprecated alias" +msgstr "Alias obsolètes" + +#: ../Doc/library/unittest.rst:1481 +msgid ":meth:`.assertEqual`" +msgstr ":meth:`.assertEqual`" + +#: ../Doc/library/unittest.rst:1481 +msgid "failUnlessEqual" +msgstr "failUnlessEqual" + +#: ../Doc/library/unittest.rst:1481 +msgid "assertEquals" +msgstr "assertEquals" + +#: ../Doc/library/unittest.rst:1482 +msgid ":meth:`.assertNotEqual`" +msgstr ":meth:`.assertNotEqual`" + +#: ../Doc/library/unittest.rst:1482 +msgid "failIfEqual" +msgstr "failIfEqual" + +#: ../Doc/library/unittest.rst:1482 +msgid "assertNotEquals" +msgstr "assertNotEquals" + +#: ../Doc/library/unittest.rst:1483 +msgid ":meth:`.assertTrue`" +msgstr ":meth:`.assertTrue`" + +#: ../Doc/library/unittest.rst:1483 +msgid "failUnless" +msgstr "failUnless" + +#: ../Doc/library/unittest.rst:1483 +msgid "assert\\_" +msgstr "assert\\_" + +#: ../Doc/library/unittest.rst:1484 +msgid ":meth:`.assertFalse`" +msgstr ":meth:`.assertFalse`" + +#: ../Doc/library/unittest.rst:1484 +msgid "failIf" +msgstr "failIf" + +#: ../Doc/library/unittest.rst:1485 +msgid ":meth:`.assertRaises`" +msgstr ":meth:`.assertRaises`" + +#: ../Doc/library/unittest.rst:1485 +msgid "failUnlessRaises" +msgstr "failUnlessRaises" + +#: ../Doc/library/unittest.rst:1486 +msgid ":meth:`.assertAlmostEqual`" +msgstr ":meth:`.assertAlmostEqual`" + +#: ../Doc/library/unittest.rst:1486 +msgid "failUnlessAlmostEqual" +msgstr "failUnlessAlmostEqual" + +#: ../Doc/library/unittest.rst:1486 +msgid "assertAlmostEquals" +msgstr "assertAlmostEquals" + +#: ../Doc/library/unittest.rst:1487 +msgid ":meth:`.assertNotAlmostEqual`" +msgstr ":meth:`.assertNotAlmostEqual`" + +#: ../Doc/library/unittest.rst:1487 +msgid "failIfAlmostEqual" +msgstr "failIfAlmostEqual" + +#: ../Doc/library/unittest.rst:1487 +msgid "assertNotAlmostEquals" +msgstr "assertNotAlmostEquals" + +#: ../Doc/library/unittest.rst:1488 +msgid ":meth:`.assertRegex`" +msgstr ":meth:`.assertRegex`" + +#: ../Doc/library/unittest.rst:1488 +msgid "assertRegexpMatches" +msgstr "assertRegexpMatches" + +#: ../Doc/library/unittest.rst:1489 +msgid ":meth:`.assertNotRegex`" +msgstr ":meth:`.assertNotRegex`" + +#: ../Doc/library/unittest.rst:1489 +msgid "assertNotRegexpMatches" +msgstr "assertNotRegexpMatches" + +#: ../Doc/library/unittest.rst:1490 +msgid ":meth:`.assertRaisesRegex`" +msgstr ":meth:`.assertRaisesRegex`" + +#: ../Doc/library/unittest.rst:1490 +msgid "assertRaisesRegexp" +msgstr "assertRaisesRegexp" + +#: ../Doc/library/unittest.rst:1493 +msgid "The fail* aliases listed in the second column have been deprecated." +msgstr "Les alias ``fail*`` sont énumérés dans la deuxième colonne." + +#: ../Doc/library/unittest.rst:1495 +msgid "The assert* aliases listed in the third column have been deprecated." +msgstr "Les alias ``assert*`` sont énumérés dans la troisième colonne." + +#: ../Doc/library/unittest.rst:1497 +msgid "" +"``assertRegexpMatches`` and ``assertRaisesRegexp`` have been renamed to :" +"meth:`.assertRegex` and :meth:`.assertRaisesRegex`." +msgstr "" +"Les expressions ``assertRegexpMatches`` et ``assertRaisesRegexp`` ont été " +"renommées en :meth:`.assertRegex` et :meth:`.assertRaisesRegex`." + +#: ../Doc/library/unittest.rst:1500 +msgid "" +"The ``assertNotRegexpMatches`` name is deprecated in favor of :meth:`." +"assertNotRegex`." +msgstr "" +"Le nom ``assertNotRegexpMatches`` est obsolète en faveur de :meth:`." +"assertNotRegex`." + +#: ../Doc/library/unittest.rst:1506 +msgid "Grouping tests" +msgstr "Regroupement des tests" + +#: ../Doc/library/unittest.rst:1510 +msgid "" +"This class represents an aggregation of individual test cases and test " +"suites. The class presents the interface needed by the test runner to allow " +"it to be run as any other test case. Running a :class:`TestSuite` instance " +"is the same as iterating over the suite, running each test individually." +msgstr "" +"Cette classe représente une agrégation de cas de test individuels et de " +"suites de tests. La classe présente l'interface requise par le lanceur de " +"test pour être exécutée comme tout autre cas de test. L'exécution d'une " +"instance de :class:`TestSuite` est identique à l'itération sur la suite, en " +"exécutant chaque test indépendamment." + +#: ../Doc/library/unittest.rst:1515 +msgid "" +"If *tests* is given, it must be an iterable of individual test cases or " +"other test suites that will be used to build the suite initially. Additional " +"methods are provided to add test cases and suites to the collection later on." +msgstr "" +"Si *tests* est fourni, il doit s'agir d'un itérable de cas de test " +"individuels ou d'autres suites de test qui seront utilisés pour construire " +"la suite initial. Des méthodes supplémentaires sont fournies pour ajouter " +"ultérieurement des cas de test et des suites à la collection." + +#: ../Doc/library/unittest.rst:1519 +msgid "" +":class:`TestSuite` objects behave much like :class:`TestCase` objects, " +"except they do not actually implement a test. Instead, they are used to " +"aggregate tests into groups of tests that should be run together. Some " +"additional methods are available to add tests to :class:`TestSuite` " +"instances:" +msgstr "" +"Les objets :class:`TestSuite` se comportent comme les objets :class:" +"`TestCase`, sauf qu'ils n'implémentent pas réellement un test. Au lieu de " +"cela, ils sont utilisés pour regrouper les tests en groupes de tests qui " +"doivent être exécutés ensemble. Des méthodes supplémentaires sont " +"disponibles pour ajouter des tests aux instances de :class:`TestSuite` :" + +#: ../Doc/library/unittest.rst:1527 +msgid "Add a :class:`TestCase` or :class:`TestSuite` to the suite." +msgstr "" +"Ajouter un objet :class:`TestCase` ou :class:`TestSuite` à la suite de tests." + +#: ../Doc/library/unittest.rst:1532 +msgid "" +"Add all the tests from an iterable of :class:`TestCase` and :class:" +"`TestSuite` instances to this test suite." +msgstr "" +"Ajouter tous les tests d'un itérable d'instances de :class:`TestCase` et de :" +"class:`TestSuite` à cette suite de tests." + +#: ../Doc/library/unittest.rst:1535 +msgid "" +"This is equivalent to iterating over *tests*, calling :meth:`addTest` for " +"each element." +msgstr "" +"C'est l'équivalent d'une itération sur *tests*, appelant :meth:`addTest` " +"pour chaque élément." + +#: ../Doc/library/unittest.rst:1538 +msgid ":class:`TestSuite` shares the following methods with :class:`TestCase`:" +msgstr "" +":class:`TestSuite` partage les méthodes suivantes avec :class:`TestCase` :" + +#: ../Doc/library/unittest.rst:1543 +msgid "" +"Run the tests associated with this suite, collecting the result into the " +"test result object passed as *result*. Note that unlike :meth:`TestCase." +"run`, :meth:`TestSuite.run` requires the result object to be passed in." +msgstr "" +"Exécute les tests associés à cette suite, en collectant le résultat dans " +"l'objet de résultat de test passé par *result*. Remarquer que contrairement " +"à :meth:`TestCase.run`, :meth:`TestSuite.run` nécessite que l'objet résultat " +"soit passé." + +#: ../Doc/library/unittest.rst:1551 +msgid "" +"Run the tests associated with this suite without collecting the result. This " +"allows exceptions raised by the test to be propagated to the caller and can " +"be used to support running tests under a debugger." +msgstr "" +"Exécute les tests associés à cette suite sans collecter le résultat. Ceci " +"permet aux exceptions levées par le test d'être propagées à l'appelant et " +"peut être utilisé pour exécuter des tests sous un débogueur." + +#: ../Doc/library/unittest.rst:1558 +msgid "" +"Return the number of tests represented by this test object, including all " +"individual tests and sub-suites." +msgstr "" +"Renvoie le nombre de tests représentés par cet objet de test, y compris tous " +"les tests individuels et les sous-suites." + +#: ../Doc/library/unittest.rst:1564 +msgid "" +"Tests grouped by a :class:`TestSuite` are always accessed by iteration. " +"Subclasses can lazily provide tests by overriding :meth:`__iter__`. Note " +"that this method may be called several times on a single suite (for example " +"when counting tests or comparing for equality) so the tests returned by " +"repeated iterations before :meth:`TestSuite.run` must be the same for each " +"call iteration. After :meth:`TestSuite.run`, callers should not rely on the " +"tests returned by this method unless the caller uses a subclass that " +"overrides :meth:`TestSuite._removeTestAtIndex` to preserve test references." +msgstr "" +"Les tests groupés par une classe :class:`TestSuite` sont toujours " +"accessibles par itération. Les sous-classes peuvent fournir paresseusement " +"des tests en surchargeant :meth:`__iter__`. Notez que cette méthode peut " +"être appelée plusieurs fois sur une même suite (par exemple lors du comptage " +"des tests ou de la comparaison pour l'égalité) et que les tests retournés " +"par itérations répétées avant :meth:`TestSuite.run` doivent être les mêmes " +"pour chaque itération. Après :meth:`TestSuite.run`, les appelants ne " +"devraient pas se fier aux tests retournés par cette méthode à moins qu'ils " +"n'utilisent une sous-classe qui remplace :meth:`TestSuite." +"_removeTestAtIndex` pour préserver les références des tests." + +#: ../Doc/library/unittest.rst:1574 +msgid "" +"In earlier versions the :class:`TestSuite` accessed tests directly rather " +"than through iteration, so overriding :meth:`__iter__` wasn't sufficient for " +"providing tests." +msgstr "" +"Dans les versions précédentes, la classe :class:`TestSuite` accédait aux " +"tests directement plutôt que par itération, donc surcharger la méthode :meth:" +"`__iter__` n'était pas suffisante pour fournir les tests." + +#: ../Doc/library/unittest.rst:1579 +msgid "" +"In earlier versions the :class:`TestSuite` held references to each :class:" +"`TestCase` after :meth:`TestSuite.run`. Subclasses can restore that behavior " +"by overriding :meth:`TestSuite._removeTestAtIndex`." +msgstr "" +"Dans les versions précédentes, la classe :class:`TestSuite` contenait des " +"références à chaque :class:`TestCase` après l'appel à :meth:`TestSuite.run`. " +"Les sous-classes peuvent restaurer ce comportement en surchargeant :meth:" +"`TestSuite._removeTestAtIndex`." + +#: ../Doc/library/unittest.rst:1584 +msgid "" +"In the typical usage of a :class:`TestSuite` object, the :meth:`run` method " +"is invoked by a :class:`TestRunner` rather than by the end-user test harness." +msgstr "" +"Dans l'utilisation typique de l'objet :class:`TestSuite`, la méthode :meth:" +"`run` est invoquée par une classe :class:`TestRunner` plutôt que par le " +"système de test de l'utilisateur." + +#: ../Doc/library/unittest.rst:1589 +msgid "Loading and running tests" +msgstr "Chargement et exécution des tests" + +#: ../Doc/library/unittest.rst:1593 +msgid "" +"The :class:`TestLoader` class is used to create test suites from classes and " +"modules. Normally, there is no need to create an instance of this class; " +"the :mod:`unittest` module provides an instance that can be shared as :data:" +"`unittest.defaultTestLoader`. Using a subclass or instance, however, allows " +"customization of some configurable properties." +msgstr "" +"La classe :class:`TestLoader` est utilisée pour créer des suites de tests à " +"partir de classes et de modules. Normalement, il n'est pas nécessaire de " +"créer une instance de cette classe ; le module :mod:`unittest` fournit une " +"instance qui peut être partagée comme :data:`unittest.defaultTestLoader`. " +"L'utilisation d'une sous-classe ou d'une instance permet cependant de " +"personnaliser certaines propriétés configurables." + +#: ../Doc/library/unittest.rst:1599 +msgid ":class:`TestLoader` objects have the following attributes:" +msgstr "" +"Les objets de la classe :class:`TestLoader` ont les attributs suivants :" + +#: ../Doc/library/unittest.rst:1604 +msgid "" +"A list of the non-fatal errors encountered while loading tests. Not reset by " +"the loader at any point. Fatal errors are signalled by the relevant a method " +"raising an exception to the caller. Non-fatal errors are also indicated by a " +"synthetic test that will raise the original error when run." +msgstr "" +"Une liste des erreurs non fatales rencontrées lors du chargement des tests. " +"Il est impossible de faire une remise à zéro pendant le chargement. Les " +"erreurs fatales sont signalées par la méthode correspondante qui lève une " +"exception à l'appelant. Les erreurs non fatales sont également indiquées par " +"un test synthétique qui lève l'erreur initiale lors de l'exécution." + +#: ../Doc/library/unittest.rst:1613 +msgid ":class:`TestLoader` objects have the following methods:" +msgstr "" +"Les objets de la classe :class:`TestLoader` ont les attributs suivants :" + +#: ../Doc/library/unittest.rst:1618 +msgid "" +"Return a suite of all test cases contained in the :class:`TestCase`\\ -" +"derived :class:`testCaseClass`." +msgstr "" +"Renvoie une suite de tous les cas de test contenus dans la classe :class:" +"`TestCaseClass`\\ dérivée de :class:`testCase`." + +#: ../Doc/library/unittest.rst:1621 +msgid "" +"A test case instance is created for each method named by :meth:" +"`getTestCaseNames`. By default these are the method names beginning with " +"``test``. If :meth:`getTestCaseNames` returns no methods, but the :meth:" +"`runTest` method is implemented, a single test case is created for that " +"method instead." +msgstr "" +"Une instance de cas de test est créée pour chaque méthode nommée par :meth:" +"`getTestCaseNames`. Par défaut, ce sont les noms des méthodes commençant par " +"\"test\". Si :meth:`getTestTestCaseNames` ne renvoie aucune méthode, mais " +"que la méthode :meth:`runTest` est implémentée, un seul cas de test est créé " +"pour cette méthode à la place." + +#: ../Doc/library/unittest.rst:1630 +msgid "" +"Return a suite of all test cases contained in the given module. This method " +"searches *module* for classes derived from :class:`TestCase` and creates an " +"instance of the class for each test method defined for the class." +msgstr "" +"Renvoie une suite de tous les cas de test contenus dans le module donné. " +"Cette méthode recherche *module* pour les classes dérivées de :class:" +"`TestCase` et crée une instance de la classe pour chaque méthode de test " +"définie pour cette classe." + +#: ../Doc/library/unittest.rst:1637 +msgid "" +"While using a hierarchy of :class:`TestCase`\\ -derived classes can be " +"convenient in sharing fixtures and helper functions, defining test methods " +"on base classes that are not intended to be instantiated directly does not " +"play well with this method. Doing so, however, can be useful when the " +"fixtures are different and defined in subclasses." +msgstr "" +"Bien que l'utilisation d'une hiérarchie de classes :class:`TestCase` (les " +"classes dérivées de *TestCase*) peut être un moyen pratique de partager des " +"*fixtures* et des fonctions utilitaires, définir une méthode de test pour " +"des classes de base non destinées à être directement instanciée ne marche " +"pas bien avec cette méthode. Cela peut toutefois s'avérer utile lorsque les " +"*fixtures* sont différentes et définies dans des sous-classes." + +#: ../Doc/library/unittest.rst:1643 +msgid "" +"If a module provides a ``load_tests`` function it will be called to load the " +"tests. This allows modules to customize test loading. This is the " +"`load_tests protocol`_. The *pattern* argument is passed as the third " +"argument to ``load_tests``." +msgstr "" +"Si un module fournit une fonction ``load_tests``, il est appelé pour charger " +"les tests. Cela permet aux modules de personnaliser le chargement des tests. " +"C'est le protocole `load_tests protocol`_. L'argument *pattern* est passé " +"comme troisième argument à ``load_tests``." + +#: ../Doc/library/unittest.rst:1648 +msgid "Support for ``load_tests`` added." +msgstr "Ajout de la prise en charge de ``load_tests``." + +#: ../Doc/library/unittest.rst:1651 +msgid "" +"The undocumented and unofficial *use_load_tests* default argument is " +"deprecated and ignored, although it is still accepted for backward " +"compatibility. The method also now accepts a keyword-only argument " +"*pattern* which is passed to ``load_tests`` as the third argument." +msgstr "" +"L'argument par défaut non documenté et non officiel *use_load_tests* est " +"déprécié et ignoré, bien qu'il soit toujours accepté pour la compatibilité " +"descendante. La méthode accepte aussi maintenant un argument *pattern* qui " +"est passé à ``load_tests`` comme troisième argument." + +#: ../Doc/library/unittest.rst:1660 +msgid "Return a suite of all test cases given a string specifier." +msgstr "" +"Renvoie une suite de tous les cas de test en fonction d'un spécificateur de " +"chaîne de caractères." + +#: ../Doc/library/unittest.rst:1662 +msgid "" +"The specifier *name* is a \"dotted name\" that may resolve either to a " +"module, a test case class, a test method within a test case class, a :class:" +"`TestSuite` instance, or a callable object which returns a :class:`TestCase` " +"or :class:`TestSuite` instance. These checks are applied in the order " +"listed here; that is, a method on a possible test case class will be picked " +"up as \"a test method within a test case class\", rather than \"a callable " +"object\"." +msgstr "" +"Le spécificateur *name* est un \"nom pointillé\" qui peut être résolu soit " +"par un module, une classe de cas de test, une méthode de test dans une " +"classe de cas de test, une instance de :class:`TestSuite`, ou un objet " +"appelable qui retourne une instance de classe :class:`TestCase` ou de " +"classe :class:`TestSuite`. Ces contrôles sont appliqués dans l'ordre indiqué " +"ici, c'est-à-dire qu'une méthode sur une classe de cas de test possible sera " +"choisie comme \"méthode de test dans une classe de cas de test\", plutôt que " +"comme \"un objet appelable\"." + +#: ../Doc/library/unittest.rst:1670 +msgid "" +"For example, if you have a module :mod:`SampleTests` containing a :class:" +"`TestCase`\\ -derived class :class:`SampleTestCase` with three test methods " +"(:meth:`test_one`, :meth:`test_two`, and :meth:`test_three`), the specifier " +"``'SampleTests.SampleTestCase'`` would cause this method to return a suite " +"which will run all three test methods. Using the specifier ``'SampleTests." +"SampleTestCase.test_two'`` would cause it to return a test suite which will " +"run only the :meth:`test_two` test method. The specifier can refer to " +"modules and packages which have not been imported; they will be imported as " +"a side-effect." +msgstr "" +"Par exemple, si vous avez un module :mod:`SampleTests` contenant une classe :" +"class:`TestCase` (classe dérivée de la classe :class:`SampleTestCase`) avec " +"trois méthodes de test (:meth:`test_one`, :meth:`test_two` et :meth:" +"`test_three`), l'élément spécificateur `SampleTests.sampleTestCase` renvoie " +"une suite qui va exécuter les trois méthodes de tests. L'utilisation du " +"spécificateur `SampleTests.SampleTestCase.test_two` permettrait de retourner " +"une suite de tests qui ne lancerait que la méthode test :meth:`test_two`. Le " +"spécificateur peut se référer à des modules et packages qui n'ont pas été " +"importés. Ils seront importés par un effet de bord." + +#: ../Doc/library/unittest.rst:1680 +msgid "The method optionally resolves *name* relative to the given *module*." +msgstr "La méthode résout facultativement *name* relatif au *module* donné." + +#: ../Doc/library/unittest.rst:1682 +msgid "" +"If an :exc:`ImportError` or :exc:`AttributeError` occurs while traversing " +"*name* then a synthetic test that raises that error when run will be " +"returned. These errors are included in the errors accumulated by self.errors." +msgstr "" +"Si une :exc:`ImportError` ou :exc:`AttributeError` se produit pendant la " +"traversée de *name*, un test synthétique qui enrichie l'erreur produite lors " +"de l'exécution est renvoyé. Ces erreurs sont incluses dans les erreurs " +"accumulées par *self.errors*." + +#: ../Doc/library/unittest.rst:1691 +msgid "" +"Similar to :meth:`loadTestsFromName`, but takes a sequence of names rather " +"than a single name. The return value is a test suite which supports all the " +"tests defined for each name." +msgstr "" +"Similaire à :meth:`loadTestsFromName`, mais prend une séquence de noms " +"plutôt qu'un seul nom. La valeur renvoyée est une suite de tests qui gère " +"tous les tests définis pour chaque nom." + +#: ../Doc/library/unittest.rst:1698 +msgid "" +"Return a sorted sequence of method names found within *testCaseClass*; this " +"should be a subclass of :class:`TestCase`." +msgstr "" +"Renvoie une séquence triée de noms de méthodes trouvés dans " +"*testCaseClass* ; ceci doit être une sous-classe de :class:`TestCase`." + +#: ../Doc/library/unittest.rst:1704 +msgid "" +"Find all the test modules by recursing into subdirectories from the " +"specified start directory, and return a TestSuite object containing them. " +"Only test files that match *pattern* will be loaded. (Using shell style " +"pattern matching.) Only module names that are importable (i.e. are valid " +"Python identifiers) will be loaded." +msgstr "" +"Trouve tous les modules de test en parcourant les sous-répertoires du " +"répertoire de démarrage spécifié, et renvoie un objet *TestSuite* qui les " +"contient. Seuls les fichiers de test qui correspondent à *pattern* sont " +"chargés. Seuls les noms de modules qui sont importables (c'est-à-dire qui " +"sont des identifiants Python valides) sont chargés." + +#: ../Doc/library/unittest.rst:1710 +msgid "" +"All test modules must be importable from the top level of the project. If " +"the start directory is not the top level directory then the top level " +"directory must be specified separately." +msgstr "" +"Tous les modules de test doivent être importables depuis la racine du " +"projet. Si le répertoire de démarrage n'est pas la racine, le répertoire " +"racine doit être spécifié séparément." + +#: ../Doc/library/unittest.rst:1714 +msgid "" +"If importing a module fails, for example due to a syntax error, then this " +"will be recorded as a single error and discovery will continue. If the " +"import failure is due to :exc:`SkipTest` being raised, it will be recorded " +"as a skip instead of an error." +msgstr "" +"Si l'importation d'un module échoue, par exemple en raison d'une erreur de " +"syntaxe, celle-ci est alors enregistrée comme une erreur unique et la " +"découverte se poursuit. Si l'échec de l'importation est dû au fait que :exc:" +"`SkipTest` est levé, il est enregistré comme un saut plutôt que comme un " +"message d'erreur." + +#: ../Doc/library/unittest.rst:1719 +msgid "" +"If a package (a directory containing a file named :file:`__init__.py`) is " +"found, the package will be checked for a ``load_tests`` function. If this " +"exists then it will be called ``package.load_tests(loader, tests, " +"pattern)``. Test discovery takes care to ensure that a package is only " +"checked for tests once during an invocation, even if the load_tests function " +"itself calls ``loader.discover``." +msgstr "" +"Si un paquet (un répertoire contenant un fichier nommé :file:`__init__.py`) " +"est trouvé, le paquet est alors vérifié pour une fonction ``load_tests``. Si " +"elle existe, elle s'appellera ``package.load_tests(loader, tests, " +"pattern)``. Le mécanisme de découverte de test prend soin de s'assurer qu'un " +"paquet n'est vérifié qu'une seule fois au cours d'une invocation, même si la " +"fonction *load_tests* appelle elle-même ``loader.discover``." + +#: ../Doc/library/unittest.rst:1727 +msgid "" +"If ``load_tests`` exists then discovery does *not* recurse into the package, " +"``load_tests`` is responsible for loading all tests in the package." +msgstr "" +"Si ``load_tests`` existe alors la découverte ne poursuit pas la récursion " +"dans le paquet, ``load_tests`` a la responsabilité de charger tous les tests " +"dans le paquet." + +#: ../Doc/library/unittest.rst:1731 +msgid "" +"The pattern is deliberately not stored as a loader attribute so that " +"packages can continue discovery themselves. *top_level_dir* is stored so " +"``load_tests`` does not need to pass this argument in to ``loader." +"discover()``." +msgstr "" +"Le motif n'est délibérément pas stocké en tant qu'attribut du chargeur afin " +"que les paquets puissent continuer à être découverts eux-mêmes. " +"*top_level_dir* est stocké de sorte que ``load_tests`` n'a pas besoin de " +"passer cet argument a ``loader. discover()``." + +#: ../Doc/library/unittest.rst:1736 +msgid "*start_dir* can be a dotted module name as well as a directory." +msgstr "*start_dir* peut être un nom de module ainsi qu'un répertoire." + +#: ../Doc/library/unittest.rst:1740 +msgid "" +"Modules that raise :exc:`SkipTest` on import are recorded as skips, not " +"errors. Discovery works for :term:`namespace packages `. " +"Paths are sorted before being imported so that execution order is the same " +"even if the underlying file system's ordering is not dependent on file " +"name." +msgstr "" +"Les modules qui lèvent :exc:`SkipTest` lors de l'importation sont " +"enregistrés comme des sauts et non des erreurs. Le mécanisme de découverte " +"fonctionne pour les :term:`paquets-espaces de nommage `. " +"Les chemins sont triés avant d'être importés pour que l'ordre d'exécution " +"soit le même, même si l'ordre du système de fichiers sous-jacent ne dépend " +"pas du nom du fichier." + +#: ../Doc/library/unittest.rst:1748 +msgid "" +"Found packages are now checked for ``load_tests`` regardless of whether " +"their path matches *pattern*, because it is impossible for a package name to " +"match the default pattern." +msgstr "" +"Les paquets trouvés sont maintenant vérifiés pour ``load_tests`` " +"indépendamment du fait que leur chemin d'accès corresponde ou non à " +"*pattern*, car il est impossible pour un nom de paquet de correspondre au " +"motif par défaut." + +#: ../Doc/library/unittest.rst:1754 +msgid "" +"The following attributes of a :class:`TestLoader` can be configured either " +"by subclassing or assignment on an instance:" +msgstr "" +"Les attributs suivants d'une classe :class:`TestLoader` peuvent être " +"configurés soit par héritage, soit par affectation sur une instance  ::" + +#: ../Doc/library/unittest.rst:1760 +msgid "" +"String giving the prefix of method names which will be interpreted as test " +"methods. The default value is ``'test'``." +msgstr "" +"Chaîne donnant le préfixe des noms de méthodes qui seront interprétés comme " +"méthodes de test. La valeur par défaut est ``'test'``." + +#: ../Doc/library/unittest.rst:1763 +msgid "" +"This affects :meth:`getTestCaseNames` and all the :meth:`loadTestsFrom\\*` " +"methods." +msgstr "" +"Ceci affecte les méthodes :meth:`getTestCaseNames` et toutes les méthodes :" +"meth:`loadTestsFrom\\*`." + +#: ../Doc/library/unittest.rst:1769 +msgid "" +"Function to be used to compare method names when sorting them in :meth:" +"`getTestCaseNames` and all the :meth:`loadTestsFrom\\*` methods." +msgstr "" +"Fonction à utiliser pour comparer les noms de méthodes lors de leur tri dans " +"les méthodes :meth:`getTestCaseNames` et toutes les méthodes :meth:" +"`loadTestsFrom\\*`." + +#: ../Doc/library/unittest.rst:1775 +msgid "" +"Callable object that constructs a test suite from a list of tests. No " +"methods on the resulting object are needed. The default value is the :class:" +"`TestSuite` class." +msgstr "" +"Objet appelable qui construit une suite de tests à partir d'une liste de " +"tests. Aucune méthode sur l'objet résultant n'est nécessaire. La valeur par " +"défaut est la classe :class:`TestSuite`." + +#: ../Doc/library/unittest.rst:1779 ../Doc/library/unittest.rst:1792 +msgid "This affects all the :meth:`loadTestsFrom\\*` methods." +msgstr "Cela affecte toutes les méthodes :meth:`loadTestsFrom\\*`." + +#: ../Doc/library/unittest.rst:1783 +msgid "" +"List of Unix shell-style wildcard test name patterns that test methods have " +"to match to be included in test suites (see ``-v`` option)." +msgstr "" +"Liste des motifs de noms de test de type joker de style *Unix* que les " +"méthodes de test doivent valider pour être incluses dans les suites de test " +"(voir l'option ``-v``)." + +#: ../Doc/library/unittest.rst:1786 +msgid "" +"If this attribute is not ``None`` (the default), all test methods to be " +"included in test suites must match one of the patterns in this list. Note " +"that matches are always performed using :meth:`fnmatch.fnmatchcase`, so " +"unlike patterns passed to the ``-v`` option, simple substring patterns will " +"have to be converted using ``*`` wildcards." +msgstr "" +"Si cet attribut n'est pas ``None`` (par défaut), toutes les méthodes de test " +"à inclure dans les suites de test doivent correspondre à l'un des modèles de " +"cette liste. Remarquez que les correspondances sont toujours effectuées en " +"utilisant :meth:`fnmatch.fnmatchcase`, donc contrairement aux modèles passés " +"à l'option ``-v``, les motifs de sous-chaînes simples doivent être convertis " +"avec le joker ``*``." + +#: ../Doc/library/unittest.rst:1799 +msgid "" +"This class is used to compile information about which tests have succeeded " +"and which have failed." +msgstr "" +"Cette classe est utilisée pour compiler des informations sur les tests qui " +"ont réussi et ceux qui ont échoué." + +#: ../Doc/library/unittest.rst:1802 +msgid "" +"A :class:`TestResult` object stores the results of a set of tests. The :" +"class:`TestCase` and :class:`TestSuite` classes ensure that results are " +"properly recorded; test authors do not need to worry about recording the " +"outcome of tests." +msgstr "" +"Un objet :class:`TestResult` stocke les résultats d'un ensemble de tests. " +"Les classes :class:`TestCase` et :class:`TestSuite` s'assurent que les " +"résultats sont correctement enregistrés. Les auteurs du test n'ont pas à se " +"soucier de l'enregistrement des résultats des tests." + +#: ../Doc/library/unittest.rst:1807 +msgid "" +"Testing frameworks built on top of :mod:`unittest` may want access to the :" +"class:`TestResult` object generated by running a set of tests for reporting " +"purposes; a :class:`TestResult` instance is returned by the :meth:" +"`TestRunner.run` method for this purpose." +msgstr "" +"Les cadriciels de test construits sur :mod:`unittest` peuvent nécessiter " +"l'accès à l'objet :class:`TestResult` généré en exécutant un ensemble de " +"tests à des fins de génération de comptes-rendu. Une instance de :class:" +"`TestResult` est alors renvoyée par la méthode :meth:`TestRunner.run` à " +"cette fin." + +#: ../Doc/library/unittest.rst:1812 +msgid "" +":class:`TestResult` instances have the following attributes that will be of " +"interest when inspecting the results of running a set of tests:" +msgstr "" +"Les instance de :class:`TestResult` ont les attributs suivants qui sont " +"intéressant pour l'inspection des résultats de l'exécution d'un ensemble de " +"tests  ::" + +#: ../Doc/library/unittest.rst:1818 +msgid "" +"A list containing 2-tuples of :class:`TestCase` instances and strings " +"holding formatted tracebacks. Each tuple represents a test which raised an " +"unexpected exception." +msgstr "" +"Une liste contenant un couple d'instances de :class:`TestCase` et une " +"chaînes de caractères contenant des traces formatées. Chaque couple " +"représente un test qui a levé une exception inattendue." + +#: ../Doc/library/unittest.rst:1824 +msgid "" +"A list containing 2-tuples of :class:`TestCase` instances and strings " +"holding formatted tracebacks. Each tuple represents a test where a failure " +"was explicitly signalled using the :meth:`TestCase.assert\\*` methods." +msgstr "" +"Une liste contenant un couple d'instances de :class:`TestCase` et une " +"chaînes de caractères contenant des traces formatées. Chaque tuple " +"représente un test où un échec a été explicitement signalé en utilisant les " +"méthodes :meth:`TestCase.assert\\*`." + +#: ../Doc/library/unittest.rst:1830 +msgid "" +"A list containing 2-tuples of :class:`TestCase` instances and strings " +"holding the reason for skipping the test." +msgstr "" +"Une liste contenant un couple d'instances de :class:`TestCase` et une " +"chaînes de caractères contenant la raison de l'omission du test." + +#: ../Doc/library/unittest.rst:1837 +msgid "" +"A list containing 2-tuples of :class:`TestCase` instances and strings " +"holding formatted tracebacks. Each tuple represents an expected failure of " +"the test case." +msgstr "" +"Une liste contenant un couple d'instance :class:`TestCase` et une chaînes de " +"caractères contenant des traces formatées. Chaque coulpe représente un échec " +"attendu du scénario de test." + +#: ../Doc/library/unittest.rst:1843 +msgid "" +"A list containing :class:`TestCase` instances that were marked as expected " +"failures, but succeeded." +msgstr "" +"Une liste contenant les instances :class:`TestCase` qui ont été marquées " +"comme des échecs attendus, mais qui ont réussi." + +#: ../Doc/library/unittest.rst:1848 +msgid "" +"Set to ``True`` when the execution of tests should stop by :meth:`stop`." +msgstr "" +"A positionner sur ``True`` quand l'exécution des tests doit être arrêter " +"par :meth:`stop`." + +#: ../Doc/library/unittest.rst:1852 +msgid "The total number of tests run so far." +msgstr "Le nombre total de tests effectués jusqu'à présent." + +#: ../Doc/library/unittest.rst:1856 +msgid "" +"If set to true, ``sys.stdout`` and ``sys.stderr`` will be buffered in " +"between :meth:`startTest` and :meth:`stopTest` being called. Collected " +"output will only be echoed onto the real ``sys.stdout`` and ``sys.stderr`` " +"if the test fails or errors. Any output is also attached to the failure / " +"error message." +msgstr "" +"S'il est défini sur *true*, ``sys.stdout`` et ``sys.stderr`` sont mis dans " +"un tampon entre les appels de :meth:`startTest` et :meth:`stopTest`. La " +"sortie collectée est répercutée sur les sorties ``sys.stdout`` et ``sys." +"stderr`` réels uniquement en cas d'échec ou d'erreur du test. Toute sortie " +"est également attachée au message d'erreur." + +#: ../Doc/library/unittest.rst:1865 +msgid "" +"If set to true :meth:`stop` will be called on the first failure or error, " +"halting the test run." +msgstr "" +"Si la valeur est *true* :meth:`stop` est appelée lors de la première " +"défaillance ou erreur, ce qui interrompt le test en cours d'exécution." + +#: ../Doc/library/unittest.rst:1872 +msgid "If set to true then local variables will be shown in tracebacks." +msgstr "" +"Si la valeur est *true*, les variables locales sont affichées dans les " +"traces d'appels." + +#: ../Doc/library/unittest.rst:1878 +msgid "" +"Return ``True`` if all tests run so far have passed, otherwise returns " +"``False``." +msgstr "" +"Renvoie ``True`` si tous les tests effectués jusqu'à présent ont réussi, " +"sinon renvoie ``False``." + +#: ../Doc/library/unittest.rst:1881 +msgid "" +"Returns ``False`` if there were any :attr:`unexpectedSuccesses` from tests " +"marked with the :func:`expectedFailure` decorator." +msgstr "" +"Renvoie ``False`` s'il y a eu des :attr:`unexpectedSuccesses` dans les tests " +"annotés avec le décorateur :func:`expectedFailure`." + +#: ../Doc/library/unittest.rst:1887 +msgid "" +"This method can be called to signal that the set of tests being run should " +"be aborted by setting the :attr:`shouldStop` attribute to ``True``. :class:" +"`TestRunner` objects should respect this flag and return without running any " +"additional tests." +msgstr "" +"Cette méthode peut être appelée pour signaler que l'ensemble des tests en " +"cours d'exécution doit être annulé en définissant l'attribut :attr:" +"`shouldStop` sur ``True``. Les instances de :class:`TestRunner` doivent " +"respecter ce signal et se terminer sans exécuter de tests supplémentaires." + +#: ../Doc/library/unittest.rst:1892 +msgid "" +"For example, this feature is used by the :class:`TextTestRunner` class to " +"stop the test framework when the user signals an interrupt from the " +"keyboard. Interactive tools which provide :class:`TestRunner` " +"implementations can use this in a similar manner." +msgstr "" +"Par exemple, cette fonctionnalité est utilisée par la classe :class:" +"`TextTestRunner` pour arrêter le cadriciel de test lorsque l'utilisateur " +"lance une interruption clavier. Les outils interactifs qui fournissent des " +"implémentations de :class:`TestRunner` peuvent l'utiliser de la même manière." + +#: ../Doc/library/unittest.rst:1897 +msgid "" +"The following methods of the :class:`TestResult` class are used to maintain " +"the internal data structures, and may be extended in subclasses to support " +"additional reporting requirements. This is particularly useful in building " +"tools which support interactive reporting while tests are being run." +msgstr "" +"Les méthodes suivantes de la classe :class:`TestResult` sont utilisées pour " +"maintenir les structures de données internes, et peuvent être étendues dans " +"des sous-classes pour gérer des exigences supplémentaires en termes de " +"compte-rendu. Cette fonction est particulièrement utile pour créer des " +"outils qui prennent en charge la génération de rapports interactifs pendant " +"l'exécution des tests." + +#: ../Doc/library/unittest.rst:1905 +msgid "Called when the test case *test* is about to be run." +msgstr "" +"Appelé lorsque le scénario de test *test* est sur le point d'être exécuté." + +#: ../Doc/library/unittest.rst:1909 +msgid "" +"Called after the test case *test* has been executed, regardless of the " +"outcome." +msgstr "" +"Appelé après l'exécution du cas de test *test*, quel qu'en soit le résultat." + +#: ../Doc/library/unittest.rst:1914 +msgid "Called once before any tests are executed." +msgstr "Appelé une fois avant l'exécution des tests." + +#: ../Doc/library/unittest.rst:1921 +msgid "Called once after all tests are executed." +msgstr "Appelé une fois après l'exécution des tests." + +#: ../Doc/library/unittest.rst:1928 +msgid "" +"Called when the test case *test* raises an unexpected exception. *err* is a " +"tuple of the form returned by :func:`sys.exc_info`: ``(type, value, " +"traceback)``." +msgstr "" +"Appelé lorsque le cas de test *test* soulève une exception inattendue. *err* " +"est un couple du formulaire renvoyé par :func:`sys.exc_info` : ``(type, " +"valeur, traceback)``." + +#: ../Doc/library/unittest.rst:1932 +msgid "" +"The default implementation appends a tuple ``(test, formatted_err)`` to the " +"instance's :attr:`errors` attribute, where *formatted_err* is a formatted " +"traceback derived from *err*." +msgstr "" +"L'implémentation par défaut ajoute un couple ``(test, formatted_err)`` à " +"l'attribut :attr:`errors` de l'instance, où *formatted_err* est une trace " +"formatée à partir de *err*." + +#: ../Doc/library/unittest.rst:1939 +msgid "" +"Called when the test case *test* signals a failure. *err* is a tuple of the " +"form returned by :func:`sys.exc_info`: ``(type, value, traceback)``." +msgstr "" +"Appelé lorsque le cas de test *test* soulève une exception inattendue. *err* " +"est un triplet de la même forme que celui renvoyé par :func:`sys.exc_info` : " +"``(type, valeur, traceback)``." + +#: ../Doc/library/unittest.rst:1942 +msgid "" +"The default implementation appends a tuple ``(test, formatted_err)`` to the " +"instance's :attr:`failures` attribute, where *formatted_err* is a formatted " +"traceback derived from *err*." +msgstr "" +"L'implémentation par défaut ajoute un couple ``(test, formatted_err)`` à " +"l'attribut :attr:`errors` de l'instance, où *formatted_err* est une trace " +"formatée à partir de *err*." + +#: ../Doc/library/unittest.rst:1949 +msgid "Called when the test case *test* succeeds." +msgstr "Appelé lorsque le scénario de test *test* réussit." + +#: ../Doc/library/unittest.rst:1951 +msgid "The default implementation does nothing." +msgstr "L'implémentation par défaut ne fait rien." + +#: ../Doc/library/unittest.rst:1956 +msgid "" +"Called when the test case *test* is skipped. *reason* is the reason the " +"test gave for skipping." +msgstr "" +"Appelé lorsque le scénario de test *test* est ignoré. *raison* est la raison " +"pour laquelle le test donné à été ignoré." + +#: ../Doc/library/unittest.rst:1959 +msgid "" +"The default implementation appends a tuple ``(test, reason)`` to the " +"instance's :attr:`skipped` attribute." +msgstr "" +"L'implémentation par défaut ajoute un couple ``(test, raison)`` à " +"l'attribut :attr:`skipped` de l'instance." + +#: ../Doc/library/unittest.rst:1965 +msgid "" +"Called when the test case *test* fails, but was marked with the :func:" +"`expectedFailure` decorator." +msgstr "" +"Appelé lorsque le scénario de test *test* échoue, mais qui a été marqué avec " +"le décorateur :func:`expectedFailure`." + +#: ../Doc/library/unittest.rst:1968 +msgid "" +"The default implementation appends a tuple ``(test, formatted_err)`` to the " +"instance's :attr:`expectedFailures` attribute, where *formatted_err* is a " +"formatted traceback derived from *err*." +msgstr "" +"L'implémentation par défaut ajoute un couple ``(test, formatted_err)`` à " +"l'attribut :attr:`errors` de l'instance, où *formatted_err* est une trace " +"formatée à partir de *err*." + +#: ../Doc/library/unittest.rst:1975 +msgid "" +"Called when the test case *test* was marked with the :func:`expectedFailure` " +"decorator, but succeeded." +msgstr "" +"Appelé lorsque le scénario de test *test* réussit, mais que ce scénario a " +"été marqué avec le décorateur :func:`expectedFailure`." + +#: ../Doc/library/unittest.rst:1978 +msgid "" +"The default implementation appends the test to the instance's :attr:" +"`unexpectedSuccesses` attribute." +msgstr "" +"L'implémentation par défaut ajoute le test à l'attribut :attr:" +"`unexpectedSuccesses` de l'instance." + +#: ../Doc/library/unittest.rst:1984 +msgid "" +"Called when a subtest finishes. *test* is the test case corresponding to " +"the test method. *subtest* is a custom :class:`TestCase` instance " +"describing the subtest." +msgstr "" +"Appelé à la fin d'un sous-test. *test* est le cas de test correspondant à la " +"méthode de test. *subtest* est une instance dérivée de :class:`TestCase` " +"décrivant le sous-test." + +#: ../Doc/library/unittest.rst:1988 +msgid "" +"If *outcome* is :const:`None`, the subtest succeeded. Otherwise, it failed " +"with an exception where *outcome* is a tuple of the form returned by :func:" +"`sys.exc_info`: ``(type, value, traceback)``." +msgstr "" +"Si *outcome* est :const:`None`, le sous-test a réussi. Sinon, il a échoué " +"avec une exception où *outcome* est un triplet du formulaire renvoyé par :" +"func:`sys.exc_info` : ``(type, valeur, traceback)``." + +#: ../Doc/library/unittest.rst:1992 +msgid "" +"The default implementation does nothing when the outcome is a success, and " +"records subtest failures as normal failures." +msgstr "" +"L'implémentation par défaut ne fait rien lorsque le résultat est un succès, " +"et enregistre les échecs de sous-test comme des échecs normaux." + +#: ../Doc/library/unittest.rst:2000 +msgid "" +"A concrete implementation of :class:`TestResult` used by the :class:" +"`TextTestRunner`." +msgstr "" +"Une implémentation concrète de :class:`TestResult` utilisé par la classe :" +"class:`TextTestRunner`." + +#: ../Doc/library/unittest.rst:2003 +msgid "" +"This class was previously named ``_TextTestResult``. The old name still " +"exists as an alias but is deprecated." +msgstr "" +"Cette classe s'appelait auparavant ``_TextTestResult``. L'ancien nom existe " +"toujours en tant qu'alias, mais il est obsolète." + +#: ../Doc/library/unittest.rst:2010 +msgid "" +"Instance of the :class:`TestLoader` class intended to be shared. If no " +"customization of the :class:`TestLoader` is needed, this instance can be " +"used instead of repeatedly creating new instances." +msgstr "" +"Instance de la classe :class:`TestLoader` destinée à être partagée. Si " +"aucune personnalisation de la classe :class:`TestLoader` n'est nécessaire, " +"cette instance peut être utilisée au lieu de créer plusieurs fois de " +"nouvelles instances." + +#: ../Doc/library/unittest.rst:2018 +msgid "" +"A basic test runner implementation that outputs results to a stream. If " +"*stream* is ``None``, the default, :data:`sys.stderr` is used as the output " +"stream. This class has a few configurable parameters, but is essentially " +"very simple. Graphical applications which run test suites should provide " +"alternate implementations. Such implementations should accept ``**kwargs`` " +"as the interface to construct runners changes when features are added to " +"unittest." +msgstr "" +"Une implémentation de base d'un lanceur de test qui fournit les résultats " +"dans un flux. Si *stream* est ``None``, par défaut, :data:`sys.stderr` est " +"utilisé comme flux de sortie. Cette classe a quelques paramètres " +"configurables, mais est essentiellement très simple. Les applications " +"graphiques qui exécutent des suites de tests doivent fournir des " +"implémentations alternatives. De telles implémentations doivent accepter " +"``**kwargs`` car l'interface pour construire les lanceurs change lorsque des " +"fonctionnalités sont ajoutées à *unittest*." + +#: ../Doc/library/unittest.rst:2025 +msgid "" +"By default this runner shows :exc:`DeprecationWarning`, :exc:" +"`PendingDeprecationWarning`, :exc:`ResourceWarning` and :exc:`ImportWarning` " +"even if they are :ref:`ignored by default `. Deprecation " +"warnings caused by :ref:`deprecated unittest methods ` " +"are also special-cased and, when the warning filters are ``'default'`` or " +"``'always'``, they will appear only once per-module, in order to avoid too " +"many warning messages. This behavior can be overridden using Python's :" +"option:`!-Wd` or :option:`!-Wa` options (see :ref:`Warning control `) and leaving *warnings* to ``None``." +msgstr "" +"Par défaut, ce lanceur affiche :exc:`DeprecationWarning`, :exc:" +"`PendingDeprecationWarning`, :exc:`ResourceWarning` et :exc:`ImportWarning` " +"même si elles sont :ref:`ignorées par défaut `. Les " +"avertissements causés par :ref:`des méthodes *unittest* dépréciées " +"` sont également spéciaux et, lorsque les filtres " +"d'avertissement sont ``default`` ou ``always``, ils n'apparaissent qu'une " +"fois par module, afin d'éviter trop de messages d'alerte. Ce comportement " +"peut être annulé en utilisant les options :option:`!-Wd` ou :option:`!-Wa` " +"de Python (voir :ref:`Gestion des avertissements `) et en " +"laissant *warnings* à ``None``." + +#: ../Doc/library/unittest.rst:2036 +msgid "Added the ``warnings`` argument." +msgstr "Ajout du paramètre ``warnings``." + +#: ../Doc/library/unittest.rst:2039 +msgid "" +"The default stream is set to :data:`sys.stderr` at instantiation time rather " +"than import time." +msgstr "" +"Le flux par défaut est défini sur :data:`sys.stderr` au moment de " +"l'instanciation plutôt qu'à l'importation." + +#: ../Doc/library/unittest.rst:2043 +msgid "Added the tb_locals parameter." +msgstr "Ajout du paramètre *tb_locals*." + +#: ../Doc/library/unittest.rst:2048 +msgid "" +"This method returns the instance of ``TestResult`` used by :meth:`run`. It " +"is not intended to be called directly, but can be overridden in subclasses " +"to provide a custom ``TestResult``." +msgstr "" +"Cette méthode renvoie l'instance de ``TestResult`` utilisée par :meth:`run`. " +"Il n'est pas destiné à être appelé directement, mais peut être surchargée " +"dans des sous-classes pour fournir un ``TestResult`` personnalisé." + +#: ../Doc/library/unittest.rst:2052 +msgid "" +"``_makeResult()`` instantiates the class or callable passed in the " +"``TextTestRunner`` constructor as the ``resultclass`` argument. It defaults " +"to :class:`TextTestResult` if no ``resultclass`` is provided. The result " +"class is instantiated with the following arguments::" +msgstr "" +"``_makeResult()`` instancie la classe ou l'appelable passé dans le " +"constructeur ``TextTestRunner`` comme argument ``resultclass``. Il vaut par " +"défaut :class:`TextTestResult` si aucune ``resultclass`` n'est fournie. La " +"classe de résultat est instanciée avec les arguments suivants ::" + +#: ../Doc/library/unittest.rst:2061 +msgid "" +"This method is the main public interface to the ``TextTestRunner``. This " +"method takes a :class:`TestSuite` or :class:`TestCase` instance. A :class:" +"`TestResult` is created by calling :func:`_makeResult` and the test(s) are " +"run and the results printed to stdout." +msgstr "" +"Cette méthode est l'interface publique principale du ``TextTestRunner``. " +"Cette méthode prend une instance :class:`TestSuite` ou :class:`TestCase`. " +"Un :class:`TestResult` est créé en appelant :func:`_makeResult` et le ou les " +"tests sont exécutés et les résultats affichés sur la sortie standard." + +#: ../Doc/library/unittest.rst:2072 +msgid "" +"A command-line program that loads a set of tests from *module* and runs " +"them; this is primarily for making test modules conveniently executable. The " +"simplest use for this function is to include the following line at the end " +"of a test script::" +msgstr "" +"Un programme en ligne de commande qui charge un ensemble de tests à partir " +"du *module* et les exécute. L'utilisation principale est de rendre les " +"modules de test facilement exécutables. L'utilisation la plus simple pour " +"cette fonction est d'inclure la ligne suivante à la fin d'un script de " +"test ::" + +#: ../Doc/library/unittest.rst:2080 +msgid "" +"You can run tests with more detailed information by passing in the verbosity " +"argument::" +msgstr "" +"Vous pouvez exécuter des tests avec des informations plus détaillées en " +"utilisant l'option de verbosité ::" + +#: ../Doc/library/unittest.rst:2086 +msgid "" +"The *defaultTest* argument is either the name of a single test or an " +"iterable of test names to run if no test names are specified via *argv*. If " +"not specified or ``None`` and no test names are provided via *argv*, all " +"tests found in *module* are run." +msgstr "" +"L'argument *defaultTest* est soit le nom d'un seul test, soit un itérable de " +"noms de test à exécuter si aucun nom de test n'est spécifié via *argv*. Si " +"aucun nom de test n'est fourni via *argv*, tous les tests trouvés dans " +"*module* sont exécutés." + +#: ../Doc/library/unittest.rst:2091 +msgid "" +"The *argv* argument can be a list of options passed to the program, with the " +"first element being the program name. If not specified or ``None``, the " +"values of :data:`sys.argv` are used." +msgstr "" +"L'argument *argv* peut être une liste d'options passées au programme, le " +"premier élément étant le nom du programme. S'il n'est pas spécifié ou vaut " +"``None``, les valeurs de :data:`sys.argv` sont utilisées." + +#: ../Doc/library/unittest.rst:2095 +msgid "" +"The *testRunner* argument can either be a test runner class or an already " +"created instance of it. By default ``main`` calls :func:`sys.exit` with an " +"exit code indicating success or failure of the tests run." +msgstr "" +"L'argument *testRunner* peut être soit une classe de lanceur de test, soit " +"une instance déjà créée de celle-ci. Par défaut, ``main`` appelle :func:`sys." +"exit` avec un code de sortie indiquant le succès ou l'échec des tests " +"exécutés." + +#: ../Doc/library/unittest.rst:2099 +msgid "" +"The *testLoader* argument has to be a :class:`TestLoader` instance, and " +"defaults to :data:`defaultTestLoader`." +msgstr "" +"L'argument *testLoader* doit être une instance de :class:`TestLoader`, et " +"par défaut de :data:`defaultTestLoader`." + +#: ../Doc/library/unittest.rst:2102 +msgid "" +"``main`` supports being used from the interactive interpreter by passing in " +"the argument ``exit=False``. This displays the result on standard output " +"without calling :func:`sys.exit`::" +msgstr "" +"Les ``main`` sont utilisés à partir de l'interpréteur interactif en passant " +"dans l'argument ``exit=False``. Ceci affiche le résultat sur la sortie " +"standard sans appeler :func:`sys.exit` ::" + +#: ../Doc/library/unittest.rst:2109 +msgid "" +"The *failfast*, *catchbreak* and *buffer* parameters have the same effect as " +"the same-name `command-line options`_." +msgstr "" +"Les paramètres *failfast*, *catchbreak* et *buffer* ont le même effet que la " +"même option en ligne de commande `command-line options`_." + +#: ../Doc/library/unittest.rst:2112 +msgid "" +"The *warnings* argument specifies the :ref:`warning filter ` " +"that should be used while running the tests. If it's not specified, it will " +"remain ``None`` if a :option:`!-W` option is passed to :program:`python` " +"(see :ref:`Warning control `), otherwise it will be set " +"to ``'default'``." +msgstr "" +"L'argument *warnings* spécifie l'argument :ref:`filtre d'avertissement " +"` qui doit être utilisé lors de l'exécution des tests. Si " +"elle n'est pas spécifiée, elle reste réglée sur ``None`` si une option :" +"option:`!-W'` est passée à :program:`python` (voir :ref:`Utilisation des " +"avertissements `), sinon elle sera réglée sur " +"``'default'``." + +#: ../Doc/library/unittest.rst:2118 +msgid "" +"Calling ``main`` actually returns an instance of the ``TestProgram`` class. " +"This stores the result of the tests run as the ``result`` attribute." +msgstr "" +"L'appel de ``main`` renvoie en fait une instance de la classe " +"``TestProgram``. Le résultat des tests effectués est enregistré sous " +"l'attribut ``result``." + +#: ../Doc/library/unittest.rst:2121 +msgid "The *exit* parameter was added." +msgstr "Ajout du paramètre *exit*." + +#: ../Doc/library/unittest.rst:2124 +msgid "" +"The *verbosity*, *failfast*, *catchbreak*, *buffer* and *warnings* " +"parameters were added." +msgstr "" +"Ajout des paramètres *verbosity*, *failfast*, *catchbreak*, *buffer* et " +"*warnings*." + +#: ../Doc/library/unittest.rst:2128 +msgid "" +"The *defaultTest* parameter was changed to also accept an iterable of test " +"names." +msgstr "" +"Le paramètre *defaultTest* a été modifié pour accepter également un itérable " +"de noms de test." + +#: ../Doc/library/unittest.rst:2134 +msgid "load_tests Protocol" +msgstr "Protocole de chargement des tests (*load_tests Protocol*)" + +#: ../Doc/library/unittest.rst:2138 +msgid "" +"Modules or packages can customize how tests are loaded from them during " +"normal test runs or test discovery by implementing a function called " +"``load_tests``." +msgstr "" +"Les modules ou paquets peuvent personnaliser la façon dont les tests sont " +"chargés à partir de ceux-ci pendant l'exécution des tests ou pendant la " +"découverte de tests en implémentant une fonction appelée ``load_tests``." + +#: ../Doc/library/unittest.rst:2141 +msgid "" +"If a test module defines ``load_tests`` it will be called by :meth:" +"`TestLoader.loadTestsFromModule` with the following arguments::" +msgstr "" +"Si un module de test définit ``load_tests`` il est appelé par :meth:" +"`TestLoader.loadTestsFromModule` avec les arguments suivants ::" + +#: ../Doc/library/unittest.rst:2146 +msgid "" +"where *pattern* is passed straight through from ``loadTestsFromModule``. It " +"defaults to ``None``." +msgstr "" +"où *pattern* est passé directement depuis ``loadTestsFromModule``. La valeur " +"par défaut est ``None``." + +#: ../Doc/library/unittest.rst:2149 +msgid "It should return a :class:`TestSuite`." +msgstr "Elle doit renvoyer une classe :class:`TestSuite`." + +#: ../Doc/library/unittest.rst:2151 +msgid "" +"*loader* is the instance of :class:`TestLoader` doing the loading. " +"*standard_tests* are the tests that would be loaded by default from the " +"module. It is common for test modules to only want to add or remove tests " +"from the standard set of tests. The third argument is used when loading " +"packages as part of test discovery." +msgstr "" +"*loader* est l'instance de :class:`TestLoader` qui effectue le chargement. " +"*standard_tests* sont les tests qui sont chargés par défaut depuis le " +"module. Il est courant que les modules de test veuillent seulement ajouter " +"ou supprimer des tests de l'ensemble standard de tests. Le troisième " +"argument est utilisé lors du chargement de paquets dans le cadre de la " +"découverte de tests." + +#: ../Doc/library/unittest.rst:2157 +msgid "" +"A typical ``load_tests`` function that loads tests from a specific set of :" +"class:`TestCase` classes may look like::" +msgstr "" +"Une fonction typique de ``load_tests`` qui charge les tests d'un ensemble " +"spécifique de classes :class:`TestCase` peut ressembler à ::" + +#: ../Doc/library/unittest.rst:2169 +msgid "" +"If discovery is started in a directory containing a package, either from the " +"command line or by calling :meth:`TestLoader.discover`, then the package :" +"file:`__init__.py` will be checked for ``load_tests``. If that function " +"does not exist, discovery will recurse into the package as though it were " +"just another directory. Otherwise, discovery of the package's tests will be " +"left up to ``load_tests`` which is called with the following arguments::" +msgstr "" +"Si la découverte est lancée dans un répertoire contenant un paquet, soit à " +"partir de la ligne de commande, soit en appelant :meth:`TestLoader." +"discover`, alors le système recherche dans le fichier du paquet :file:" +"`__init__.py` la fonction ``load_tests``. Si cette fonction n'existe pas, la " +"découverte se poursuit dans le paquet comme si c'était juste un autre " +"répertoire. Sinon, la découverte des tests du paquet est effectuée par " +"``load_tests`` qui est appelé avec les arguments suivants ::" + +#: ../Doc/library/unittest.rst:2178 +msgid "" +"This should return a :class:`TestSuite` representing all the tests from the " +"package. (``standard_tests`` will only contain tests collected from :file:" +"`__init__.py`.)" +msgstr "" +"Doit renvoyer une classe :class:`TestSuite` représentant tous les tests du " +"paquet. (``standard_tests`` ne contient que les tests collectés dans le " +"fichier :file:`__init__.py`)." + +#: ../Doc/library/unittest.rst:2182 +msgid "" +"Because the pattern is passed into ``load_tests`` the package is free to " +"continue (and potentially modify) test discovery. A 'do nothing' " +"``load_tests`` function for a test package would look like::" +msgstr "" +"Comme le motif est passé à ``load_tests``, le paquet est libre de continuer " +"(et potentiellement de modifier) la découverte des tests. Une fonction « ne " +"rien faire » ``load_tests`` pour un paquet de test ressemblerait à ::" + +#: ../Doc/library/unittest.rst:2193 +msgid "" +"Discovery no longer checks package names for matching *pattern* due to the " +"impossibility of package names matching the default pattern." +msgstr "" +"La découverte de test ne vérifie plus que les noms de paquets correspondent " +"à *pattern* en raison de l'impossibilité de trouver des noms de paquets " +"correspondant au motif par défaut." + +#: ../Doc/library/unittest.rst:2200 +msgid "Class and Module Fixtures" +msgstr "Classes et modules d'aménagements des tests" + +#: ../Doc/library/unittest.rst:2202 +msgid "" +"Class and module level fixtures are implemented in :class:`TestSuite`. When " +"the test suite encounters a test from a new class then :meth:`tearDownClass` " +"from the previous class (if there is one) is called, followed by :meth:" +"`setUpClass` from the new class." +msgstr "" +"Les classes et modules d'aménagements des tests sont implémentés dans :class:" +"`TestSuite`. Lorsque la suite de tests rencontre un test d'une nouvelle " +"classe, alors :meth:`tearDownClass` de la classe précédente (s'il y en a " +"une) est appelé, suivi de :meth:`setUpClass` de la nouvelle classe." + +#: ../Doc/library/unittest.rst:2207 +msgid "" +"Similarly if a test is from a different module from the previous test then " +"``tearDownModule`` from the previous module is run, followed by " +"``setUpModule`` from the new module." +msgstr "" +"De même, si un test provient d'un module différent du test précédent, alors " +"``tearDownModule`` du module précédent est exécuté, suivi par " +"``setUpModule`` du nouveau module." + +#: ../Doc/library/unittest.rst:2211 +msgid "" +"After all the tests have run the final ``tearDownClass`` and " +"``tearDownModule`` are run." +msgstr "" +"Après que tous les tests ont été exécutés, les ``tearDownClass`` et " +"``tearDownModule`` finaux sont exécutés." + +#: ../Doc/library/unittest.rst:2214 +msgid "" +"Note that shared fixtures do not play well with [potential] features like " +"test parallelization and they break test isolation. They should be used with " +"care." +msgstr "" +"Notez que les aménagements de tests partagés ne fonctionnent pas bien avec " +"de « potentielles » fonctions comme la parallélisation de test et qu'ils " +"brisent l'isolation des tests. Ils doivent être utilisés avec parcimonie." + +#: ../Doc/library/unittest.rst:2217 +msgid "" +"The default ordering of tests created by the unittest test loaders is to " +"group all tests from the same modules and classes together. This will lead " +"to ``setUpClass`` / ``setUpModule`` (etc) being called exactly once per " +"class and module. If you randomize the order, so that tests from different " +"modules and classes are adjacent to each other, then these shared fixture " +"functions may be called multiple times in a single test run." +msgstr "" +"L'ordre par défaut des tests créés par les chargeurs de tests unitaires est " +"de regrouper tous les tests des mêmes modules et classes. Cela à pour " +"conséquence que ``setUpClass`` / ``setUpModule`` (etc) sont appelé " +"exactement une fois par classe et module. Si vous rendez l'ordre aléatoire, " +"de sorte que les tests de différents modules et classes soient adjacents les " +"uns aux autres, alors ces fonctions d'aménagements partagées peuvent être " +"appelées plusieurs fois dans un même test." + +#: ../Doc/library/unittest.rst:2224 +msgid "" +"Shared fixtures are not intended to work with suites with non-standard " +"ordering. A ``BaseTestSuite`` still exists for frameworks that don't want to " +"support shared fixtures." +msgstr "" +"Les aménagements de tests partagés ne sont pas conçus pour fonctionner avec " +"des suites dont la commande n'est pas standard. Une ``BaseTestSuite`` existe " +"toujours pour les cadriciels qui ne veulent pas gérer les aménagements de " +"tests partagés." + +#: ../Doc/library/unittest.rst:2228 +msgid "" +"If there are any exceptions raised during one of the shared fixture " +"functions the test is reported as an error. Because there is no " +"corresponding test instance an ``_ErrorHolder`` object (that has the same " +"interface as a :class:`TestCase`) is created to represent the error. If you " +"are just using the standard unittest test runner then this detail doesn't " +"matter, but if you are a framework author it may be relevant." +msgstr "" +"S'il y a des exceptions levées pendant l'une des fonctions d'aménagement de " +"tests partagés, le test est signalé comme étant en erreur. Parce qu'il n'y a " +"pas d'instance de test correspondante, un objet ``_ErrorHolder`` (qui a la " +"même interface qu'une classe :class:`TestCase`) est créé pour représenter " +"l'erreur. Si vous n'utilisez que le lanceur de test unitaire standard, ce " +"détail n'a pas d'importance, mais si vous êtes un auteur de cadriciel de " +"test, il peut être pertinent." + +#: ../Doc/library/unittest.rst:2237 +msgid "setUpClass and tearDownClass" +msgstr "" +"Classes de mise en place (*setUpClass*) et de démantèlement des tests " +"(*tearDownClass*)" + +#: ../Doc/library/unittest.rst:2239 +msgid "These must be implemented as class methods::" +msgstr "Elles doivent être implémentées en tant que méthodes de classe ::" + +#: ../Doc/library/unittest.rst:2252 +msgid "" +"If you want the ``setUpClass`` and ``tearDownClass`` on base classes called " +"then you must call up to them yourself. The implementations in :class:" +"`TestCase` are empty." +msgstr "" +"Si vous voulez que les classes de base ``setUpClass`` et ``tearDownClass`` " +"soient appelées, vous devez les appeler vous-même. Les implémentations dans :" +"class:`TestCase` sont vides." + +#: ../Doc/library/unittest.rst:2256 +msgid "" +"If an exception is raised during a ``setUpClass`` then the tests in the " +"class are not run and the ``tearDownClass`` is not run. Skipped classes will " +"not have ``setUpClass`` or ``tearDownClass`` run. If the exception is a :exc:" +"`SkipTest` exception then the class will be reported as having been skipped " +"instead of as an error." +msgstr "" +"Si une exception est levée pendant l'exécution de ``setUpClass`` alors les " +"tests dans la classe ne sont pas exécutés et la classe ``tearDownClass`` " +"n'est pas exécutée. Les classes ignorées n'auront pas d'exécution de " +"``setUpClass`` ou ``tearDownClass``. Si l'exception est une exception :exc:" +"`SkipTest` alors la classe est signalée comme ayant été ignorée au lieu " +"d'être en échec." + +#: ../Doc/library/unittest.rst:2264 +msgid "setUpModule and tearDownModule" +msgstr "" +"Module de mise en place (*setUpModule*) et de démantèlement des tests " +"(*tearDownModule*)" + +#: ../Doc/library/unittest.rst:2266 +msgid "These should be implemented as functions::" +msgstr "Elles doivent être implémentées en tant que fonctions ::" + +#: ../Doc/library/unittest.rst:2274 +msgid "" +"If an exception is raised in a ``setUpModule`` then none of the tests in the " +"module will be run and the ``tearDownModule`` will not be run. If the " +"exception is a :exc:`SkipTest` exception then the module will be reported as " +"having been skipped instead of as an error." +msgstr "" +"Si une exception est levée pendant l'exécution de la fonction " +"``setUpModule`` alors aucun des tests du module ne sera exécuté et la " +"fonction ``tearDownModule`` ne sera pas exécutée. Si l'exception est une " +"exception :exc:`SkipTest` alors le module est signalé comme ayant été ignoré " +"au lieu d'être en échec." + +#: ../Doc/library/unittest.rst:2281 +msgid "Signal Handling" +msgstr "Traitement des signaux" + +#: ../Doc/library/unittest.rst:2285 +msgid "" +"The :option:`-c/--catch ` command-line option to unittest, " +"along with the ``catchbreak`` parameter to :func:`unittest.main()`, provide " +"more friendly handling of control-C during a test run. With catch break " +"behavior enabled control-C will allow the currently running test to " +"complete, and the test run will then end and report all the results so far. " +"A second control-c will raise a :exc:`KeyboardInterrupt` in the usual way." +msgstr "" +"L'option :option:`-c/--catch ` en ligne de commande pour " +"*unittest*, ainsi que le paramètre ``catchbreak`` vers :func:`unittest." +"main()`, permettent une utilisation simplifiée du contrôle-C pendant un " +"test. Avec l'activation de ``catchbreak``, l'utilisation du contrôle-C " +"permet de terminer le test en cours d'exécution, et le test se termine et " +"rapporte tous les résultats obtenus jusqu'à présent. Un deuxième contrôle-C " +"lève une exception classique :exc:`KeyboardInterrupt`." + +#: ../Doc/library/unittest.rst:2292 +msgid "" +"The control-c handling signal handler attempts to remain compatible with " +"code or tests that install their own :const:`signal.SIGINT` handler. If the " +"``unittest`` handler is called but *isn't* the installed :const:`signal." +"SIGINT` handler, i.e. it has been replaced by the system under test and " +"delegated to, then it calls the default handler. This will normally be the " +"expected behavior by code that replaces an installed handler and delegates " +"to it. For individual tests that need ``unittest`` control-c handling " +"disabled the :func:`removeHandler` decorator can be used." +msgstr "" +"Le gestionnaire du signal *contrôle-C* tente de rester compatible avec le " +"code ou les tests qui installent leur propre gestionnaire :const:`signal." +"SIGINT`. Si le gestionnaire ``unittest`` est appelé mais *n'est pas* le " +"gestionnaire installé :const:`signal.SIGINT`, c'est-à-dire qu'il a été " +"remplacé par le système sous test et délégué, alors il appelle le " +"gestionnaire par défaut. C'est normalement le comportement attendu par un " +"code qui remplace un gestionnaire installé et lui délègue. Pour les tests " +"individuels qui ont besoin que le signal *contrôle-C* \"*unittest*\" soit " +"désactivée, le décorateur :func:`removeHandler` peut être utilisé." + +#: ../Doc/library/unittest.rst:2301 +msgid "" +"There are a few utility functions for framework authors to enable control-c " +"handling functionality within test frameworks." +msgstr "" +"Il existe quelques fonctions de support pour les auteurs de cadriciel afin " +"d'activer la fonctionnalité de gestion des *contrôle-C* dans les cadriciels " +"de test." + +#: ../Doc/library/unittest.rst:2306 +msgid "" +"Install the control-c handler. When a :const:`signal.SIGINT` is received " +"(usually in response to the user pressing control-c) all registered results " +"have :meth:`~TestResult.stop` called." +msgstr "" +"Installe le gestionnaire *contrôle-c*. Quand un :const:`signal.SIGINT` est " +"reçu (généralement en réponse à l'utilisateur appuyant sur *contrôle-c*) " +"tous les résultats enregistrés vont appeler la méthode :meth:`~TestResult." +"stop`." + +#: ../Doc/library/unittest.rst:2313 +msgid "" +"Register a :class:`TestResult` object for control-c handling. Registering a " +"result stores a weak reference to it, so it doesn't prevent the result from " +"being garbage collected." +msgstr "" +"Enregistre un objet :class:`TestResult` pour la gestion du *contrôle-C*. " +"L'enregistrement d'un résultat stocke une référence faible sur celui-ci, de " +"sorte qu'il n'empêche pas que le résultat soit collecté par le ramasse-" +"miette." + +#: ../Doc/library/unittest.rst:2317 +msgid "" +"Registering a :class:`TestResult` object has no side-effects if control-c " +"handling is not enabled, so test frameworks can unconditionally register all " +"results they create independently of whether or not handling is enabled." +msgstr "" +"L'enregistrement d'un objet :class:`TestResult` n'a pas d'effets de bord si " +"la gestion du *contrôle-c* n'est pas activée, donc les cadriciels de test " +"peuvent enregistrer sans condition tous les résultats qu'ils créent " +"indépendamment du fait que la gestion soit activée ou non." + +#: ../Doc/library/unittest.rst:2324 +msgid "" +"Remove a registered result. Once a result has been removed then :meth:" +"`~TestResult.stop` will no longer be called on that result object in " +"response to a control-c." +msgstr "" +"Supprime un résultat enregistré. Une fois qu'un résultat a été supprimé, :" +"meth:`~TestResult.stop` n'est plus appelé sur cet objet résultat en réponse " +"à un *contrôle-c*." + +#: ../Doc/library/unittest.rst:2331 +msgid "" +"When called without arguments this function removes the control-c handler if " +"it has been installed. This function can also be used as a test decorator to " +"temporarily remove the handler while the test is being executed::" +msgstr "" +"Lorsqu'elle est appelée sans arguments, cette fonction supprime le " +"gestionnaire *contrôle-c* s'il a été installé. Cette fonction peut également " +"être utilisée comme décorateur de test pour supprimer temporairement le " +"gestionnaire pendant l'exécution du test ::" + +#~ msgid "" +#~ "Top level directory of project (defaults to start directory)Répertoire de " +#~ "premier niveau du projet (répertoire racine, c'est-à-dire *start-" +#~ "directory*, par défaut)" +#~ msgstr "" +#~ "Répertoire de premier niveau du projet (répertoire racine, c'est-à-dire " +#~ "*start-directory*, par défaut)" diff --git a/library/unix.po b/library/unix.po new file mode 100644 index 000000000..14f21f58d --- /dev/null +++ b/library/unix.po @@ -0,0 +1,29 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-09-24 22:56+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/unix.rst:5 +msgid "Unix Specific Services" +msgstr "Services spécifiques à Unix" + +#: ../Doc/library/unix.rst:7 +msgid "" +"The modules described in this chapter provide interfaces to features that " +"are unique to the Unix operating system, or in some cases to some or many " +"variants of it. Here's an overview:" +msgstr "" +"Les modules décrits dans ce chapitre fournissent des interfaces aux " +"fonctionnalités propres au système d'exploitation Unix ou, dans certains " +"cas, à certaines de ses variantes, en voici un aperçu :" diff --git a/library/urllib.error.po b/library/urllib.error.po new file mode 100644 index 000000000..161008cb3 --- /dev/null +++ b/library/urllib.error.po @@ -0,0 +1,115 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: 2018-06-10 15:35+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.10\n" + +#: ../Doc/library/urllib.error.rst:2 +msgid ":mod:`urllib.error` --- Exception classes raised by urllib.request" +msgstr "" +":mod:`urllib.error` --- Classes d'exceptions levées par *urllib.request*" + +#: ../Doc/library/urllib.error.rst:10 +msgid "**Source code:** :source:`Lib/urllib/error.py`" +msgstr "**Code source :** :source:`Lib/urllib/error.py`" + +#: ../Doc/library/urllib.error.rst:14 +msgid "" +"The :mod:`urllib.error` module defines the exception classes for exceptions " +"raised by :mod:`urllib.request`. The base exception class is :exc:" +"`URLError`." +msgstr "" +"Le module :mod:`urllib.error` définit les classes des exceptions levées par :" +"mod:`urllib.request`. La classe de base de ces exceptions est :exc:" +"`URLError`." + +#: ../Doc/library/urllib.error.rst:17 +msgid "" +"The following exceptions are raised by :mod:`urllib.error` as appropriate:" +msgstr "" +"Les exceptions suivantes sont levées par :mod:`urllib.error` aux cas " +"appropriés :" + +#: ../Doc/library/urllib.error.rst:21 +msgid "" +"The handlers raise this exception (or derived exceptions) when they run into " +"a problem. It is a subclass of :exc:`OSError`." +msgstr "" +"Les gestionnaires lèvent cette exception (ou des exceptions dérivées) quand " +"ils rencontrent un problème. Elle est une sous-classe de :exc:`OSError`." + +#: ../Doc/library/urllib.error.rst:26 +msgid "" +"The reason for this error. It can be a message string or another exception " +"instance." +msgstr "" +"La raison de cette erreur. Il peut s'agir d'un message textuel ou d'une " +"autre instance d'exception." + +#: ../Doc/library/urllib.error.rst:29 +msgid "" +":exc:`URLError` has been made a subclass of :exc:`OSError` instead of :exc:" +"`IOError`." +msgstr "" +":exc:`URLError` est maintenant une sous-classe de :exc:`OSError` plutôt que :" +"exc:`IOError`." + +#: ../Doc/library/urllib.error.rst:36 +msgid "" +"Though being an exception (a subclass of :exc:`URLError`), an :exc:" +"`HTTPError` can also function as a non-exceptional file-like return value " +"(the same thing that :func:`~urllib.request.urlopen` returns). This is " +"useful when handling exotic HTTP errors, such as requests for authentication." +msgstr "" +"Bien qu'étant une exception (une sous-classe de :exc:`URLError`), une :exc:" +"`HTTPError` peut aussi fonctionner comme une valeur de retour normale et " +"fichier-compatible (la même chose que renvoyé par :func:`~urllib.request." +"urlopen`). Cela est utile pour gérer les erreurs HTTP exotiques, comme les " +"requêtes d'authentification." + +#: ../Doc/library/urllib.error.rst:44 +msgid "" +"An HTTP status code as defined in :rfc:`2616`. This numeric value " +"corresponds to a value found in the dictionary of codes as found in :attr:" +"`http.server.BaseHTTPRequestHandler.responses`." +msgstr "" +"Un statut HTTP comme défini dans la :rfc:`2616`. Cette valeur numérique " +"correspond à une valeur trouvée dans le dictionnaire des codes comme dans :" +"attr:`http.server.BaseHTTPRequestHandler.responses`." + +#: ../Doc/library/urllib.error.rst:50 +msgid "This is usually a string explaining the reason for this error." +msgstr "" +"Il s'agit habituellement d'une chaîne de caractères expliquant la raison de " +"l'erreur." + +#: ../Doc/library/urllib.error.rst:54 +msgid "" +"The HTTP response headers for the HTTP request that caused the :exc:" +"`HTTPError`." +msgstr "" +"Les en-têtes de la réponse HTTP correspondant à la requête HTTP qui a causé " +"la :exc:`HTTPError`." + +#: ../Doc/library/urllib.error.rst:61 +msgid "" +"This exception is raised when the :func:`~urllib.request.urlretrieve` " +"function detects that the amount of the downloaded data is less than the " +"expected amount (given by the *Content-Length* header). The :attr:`content` " +"attribute stores the downloaded (and supposedly truncated) data." +msgstr "" +"Cette exception est levée quand la fonction :func:`~urllib.request." +"urlretrieve` détecte que le montant des données téléchargées est inférieur " +"au montant attendu (donné par l'en-tête *Content-Length*). L'attribut :attr:" +"`content` stocke les données téléchargées (et supposément tronquées)." diff --git a/library/urllib.parse.po b/library/urllib.parse.po new file mode 100644 index 000000000..d9b2f3f33 --- /dev/null +++ b/library/urllib.parse.po @@ -0,0 +1,835 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/urllib.parse.rst:2 +msgid ":mod:`urllib.parse` --- Parse URLs into components" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:7 +msgid "**Source code:** :source:`Lib/urllib/parse.py`" +msgstr "**Code source :** :source:`Lib/urllib/parse.py`" + +#: ../Doc/library/urllib.parse.rst:18 +msgid "" +"This module defines a standard interface to break Uniform Resource Locator " +"(URL) strings up in components (addressing scheme, network location, path " +"etc.), to combine the components back into a URL string, and to convert a " +"\"relative URL\" to an absolute URL given a \"base URL.\"" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:23 +msgid "" +"The module has been designed to match the Internet RFC on Relative Uniform " +"Resource Locators. It supports the following URL schemes: ``file``, ``ftp``, " +"``gopher``, ``hdl``, ``http``, ``https``, ``imap``, ``mailto``, ``mms``, " +"``news``, ``nntp``, ``prospero``, ``rsync``, ``rtsp``, ``rtspu``, ``sftp``, " +"``shttp``, ``sip``, ``sips``, ``snews``, ``svn``, ``svn+ssh``, ``telnet``, " +"``wais``, ``ws``, ``wss``." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:30 +msgid "" +"The :mod:`urllib.parse` module defines functions that fall into two broad " +"categories: URL parsing and URL quoting. These are covered in detail in the " +"following sections." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:35 +msgid "URL Parsing" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:37 +msgid "" +"The URL parsing functions focus on splitting a URL string into its " +"components, or on combining URL components into a URL string." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:42 +msgid "" +"Parse a URL into six components, returning a 6-item :term:`named tuple`. " +"This corresponds to the general structure of a URL: ``scheme://netloc/path;" +"parameters?query#fragment``. Each tuple item is a string, possibly empty. " +"The components are not broken up in smaller parts (for example, the network " +"location is a single string), and % escapes are not expanded. The delimiters " +"as shown above are not part of the result, except for a leading slash in the " +"*path* component, which is retained if present. For example:" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:63 +msgid "" +"Following the syntax specifications in :rfc:`1808`, urlparse recognizes a " +"netloc only if it is properly introduced by '//'. Otherwise the input is " +"presumed to be a relative URL and thus to start with a path component." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:82 +msgid "" +"The *scheme* argument gives the default addressing scheme, to be used only " +"if the URL does not specify one. It should be the same type (text or bytes) " +"as *urlstring*, except that the default value ``''`` is always allowed, and " +"is automatically converted to ``b''`` if appropriate." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:87 +msgid "" +"If the *allow_fragments* argument is false, fragment identifiers are not " +"recognized. Instead, they are parsed as part of the path, parameters or " +"query component, and :attr:`fragment` is set to the empty string in the " +"return value." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:92 +msgid "" +"The return value is a :term:`named tuple`, which means that its items can be " +"accessed by index or as named attributes, which are:" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:261 +#: ../Doc/library/urllib.parse.rst:358 +msgid "Attribute" +msgstr "Attribut" + +#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:261 +#: ../Doc/library/urllib.parse.rst:358 +msgid "Index" +msgstr "Index" + +#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:261 +#: ../Doc/library/urllib.parse.rst:358 +msgid "Value" +msgstr "Valeur" + +#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:261 +#: ../Doc/library/urllib.parse.rst:358 +msgid "Value if not present" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:263 +msgid ":attr:`scheme`" +msgstr ":attr:`scheme`" + +#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:263 +#: ../Doc/library/urllib.parse.rst:360 +msgid "0" +msgstr "0" + +#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:263 +msgid "URL scheme specifier" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:263 +msgid "*scheme* parameter" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:265 +msgid ":attr:`netloc`" +msgstr ":attr:`netloc`" + +#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:265 +#: ../Doc/library/urllib.parse.rst:362 +msgid "1" +msgstr "1" + +#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:265 +msgid "Network location part" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:102 +#: ../Doc/library/urllib.parse.rst:104 ../Doc/library/urllib.parse.rst:107 +#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:265 +#: ../Doc/library/urllib.parse.rst:267 ../Doc/library/urllib.parse.rst:269 +#: ../Doc/library/urllib.parse.rst:271 ../Doc/library/urllib.parse.rst:360 +#: ../Doc/library/urllib.parse.rst:362 +msgid "empty string" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:267 +msgid ":attr:`path`" +msgstr ":attr:`path`" + +#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:267 +msgid "2" +msgstr "2" + +#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:267 +msgid "Hierarchical path" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:104 +msgid ":attr:`params`" +msgstr ":attr:`params`" + +#: ../Doc/library/urllib.parse.rst:104 ../Doc/library/urllib.parse.rst:269 +msgid "3" +msgstr "3" + +#: ../Doc/library/urllib.parse.rst:104 +msgid "Parameters for last path element" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:269 +msgid ":attr:`query`" +msgstr ":attr:`query`" + +#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:271 +msgid "4" +msgstr "4" + +#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:269 +msgid "Query component" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:271 +#: ../Doc/library/urllib.parse.rst:362 +msgid ":attr:`fragment`" +msgstr ":attr:`fragment`" + +#: ../Doc/library/urllib.parse.rst:109 +msgid "5" +msgstr "5" + +#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:271 +#: ../Doc/library/urllib.parse.rst:362 +msgid "Fragment identifier" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:111 ../Doc/library/urllib.parse.rst:273 +msgid ":attr:`username`" +msgstr ":attr:`username`" + +#: ../Doc/library/urllib.parse.rst:111 ../Doc/library/urllib.parse.rst:273 +msgid "User name" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:111 ../Doc/library/urllib.parse.rst:113 +#: ../Doc/library/urllib.parse.rst:115 ../Doc/library/urllib.parse.rst:117 +#: ../Doc/library/urllib.parse.rst:273 ../Doc/library/urllib.parse.rst:275 +#: ../Doc/library/urllib.parse.rst:277 ../Doc/library/urllib.parse.rst:279 +msgid ":const:`None`" +msgstr ":const:`None`" + +#: ../Doc/library/urllib.parse.rst:113 ../Doc/library/urllib.parse.rst:275 +msgid ":attr:`password`" +msgstr ":attr:`password`" + +#: ../Doc/library/urllib.parse.rst:113 ../Doc/library/urllib.parse.rst:275 +msgid "Password" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:115 ../Doc/library/urllib.parse.rst:277 +msgid ":attr:`hostname`" +msgstr ":attr:`hostname`" + +#: ../Doc/library/urllib.parse.rst:115 ../Doc/library/urllib.parse.rst:277 +msgid "Host name (lower case)" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:117 ../Doc/library/urllib.parse.rst:279 +msgid ":attr:`port`" +msgstr ":attr:`port`" + +#: ../Doc/library/urllib.parse.rst:117 ../Doc/library/urllib.parse.rst:279 +msgid "Port number as integer, if present" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:121 ../Doc/library/urllib.parse.rst:283 +msgid "" +"Reading the :attr:`port` attribute will raise a :exc:`ValueError` if an " +"invalid port is specified in the URL. See section :ref:`urlparse-result-" +"object` for more information on the result object." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:125 ../Doc/library/urllib.parse.rst:287 +msgid "" +"Unmatched square brackets in the :attr:`netloc` attribute will raise a :exc:" +"`ValueError`." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:128 ../Doc/library/urllib.parse.rst:290 +msgid "" +"Characters in the :attr:`netloc` attribute that decompose under NFKC " +"normalization (as used by the IDNA encoding) into any of ``/``, ``?``, " +"``#``, ``@``, or ``:`` will raise a :exc:`ValueError`. If the URL is " +"decomposed before parsing, no error will be raised." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:133 +msgid "" +"As is the case with all named tuples, the subclass has a few additional " +"methods and attributes that are particularly useful. One such method is :" +"meth:`_replace`. The :meth:`_replace` method will return a new ParseResult " +"object replacing specified fields with new values." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:151 +msgid "Added IPv6 URL parsing capabilities." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:154 +msgid "" +"The fragment is now parsed for all URL schemes (unless *allow_fragment* is " +"false), in accordance with :rfc:`3986`. Previously, a whitelist of schemes " +"that support fragments existed." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:159 ../Doc/library/urllib.parse.rst:295 +msgid "" +"Out-of-range port numbers now raise :exc:`ValueError`, instead of returning :" +"const:`None`." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:163 ../Doc/library/urllib.parse.rst:299 +msgid "" +"Characters that affect netloc parsing under NFKC normalization will now " +"raise :exc:`ValueError`." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:170 +msgid "" +"Parse a query string given as a string argument (data of type :mimetype:" +"`application/x-www-form-urlencoded`). Data are returned as a dictionary. " +"The dictionary keys are the unique query variable names and the values are " +"lists of values for each name." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:175 ../Doc/library/urllib.parse.rst:210 +msgid "" +"The optional argument *keep_blank_values* is a flag indicating whether blank " +"values in percent-encoded queries should be treated as blank strings. A true " +"value indicates that blanks should be retained as blank strings. The " +"default false value indicates that blank values are to be ignored and " +"treated as if they were not included." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:181 ../Doc/library/urllib.parse.rst:216 +msgid "" +"The optional argument *strict_parsing* is a flag indicating what to do with " +"parsing errors. If false (the default), errors are silently ignored. If " +"true, errors raise a :exc:`ValueError` exception." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:185 ../Doc/library/urllib.parse.rst:220 +msgid "" +"The optional *encoding* and *errors* parameters specify how to decode " +"percent-encoded sequences into Unicode characters, as accepted by the :meth:" +"`bytes.decode` method." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:189 ../Doc/library/urllib.parse.rst:224 +msgid "" +"The optional argument *max_num_fields* is the maximum number of fields to " +"read. If set, then throws a :exc:`ValueError` if there are more than " +"*max_num_fields* fields read." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:193 +msgid "" +"Use the :func:`urllib.parse.urlencode` function (with the ``doseq`` " +"parameter set to ``True``) to convert such dictionaries into query strings." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:197 ../Doc/library/urllib.parse.rst:231 +msgid "Add *encoding* and *errors* parameters." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:200 ../Doc/library/urllib.parse.rst:234 +msgid "Added *max_num_fields* parameter." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:206 +msgid "" +"Parse a query string given as a string argument (data of type :mimetype:" +"`application/x-www-form-urlencoded`). Data are returned as a list of name, " +"value pairs." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:228 +msgid "" +"Use the :func:`urllib.parse.urlencode` function to convert such lists of " +"pairs into query strings." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:239 +msgid "" +"Construct a URL from a tuple as returned by ``urlparse()``. The *parts* " +"argument can be any six-item iterable. This may result in a slightly " +"different, but equivalent URL, if the URL that was parsed originally had " +"unnecessary delimiters (for example, a ``?`` with an empty query; the RFC " +"states that these are equivalent)." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:248 +msgid "" +"This is similar to :func:`urlparse`, but does not split the params from the " +"URL. This should generally be used instead of :func:`urlparse` if the more " +"recent URL syntax allowing parameters to be applied to each segment of the " +"*path* portion of the URL (see :rfc:`2396`) is wanted. A separate function " +"is needed to separate the path segments and parameters. This function " +"returns a 5-item :term:`named tuple`::" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:257 ../Doc/library/urllib.parse.rst:354 +msgid "" +"The return value is a :term:`named tuple`, its items can be accessed by " +"index or as named attributes:" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:306 +msgid "" +"Combine the elements of a tuple as returned by :func:`urlsplit` into a " +"complete URL as a string. The *parts* argument can be any five-item " +"iterable. This may result in a slightly different, but equivalent URL, if " +"the URL that was parsed originally had unnecessary delimiters (for example, " +"a ? with an empty query; the RFC states that these are equivalent)." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:315 +msgid "" +"Construct a full (\"absolute\") URL by combining a \"base URL\" (*base*) " +"with another URL (*url*). Informally, this uses components of the base URL, " +"in particular the addressing scheme, the network location and (part of) the " +"path, to provide missing components in the relative URL. For example:" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:324 +msgid "" +"The *allow_fragments* argument has the same meaning and default as for :func:" +"`urlparse`." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:329 +msgid "" +"If *url* is an absolute URL (that is, starting with ``//`` or ``scheme://" +"``), the *url*'s host name and/or scheme will be present in the result. For " +"example:" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:338 +msgid "" +"If you do not want that behavior, preprocess the *url* with :func:`urlsplit` " +"and :func:`urlunsplit`, removing possible *scheme* and *netloc* parts." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:344 +msgid "Behaviour updated to match the semantics defined in :rfc:`3986`." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:349 +msgid "" +"If *url* contains a fragment identifier, return a modified version of *url* " +"with no fragment identifier, and the fragment identifier as a separate " +"string. If there is no fragment identifier in *url*, return *url* " +"unmodified and an empty string." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:360 +msgid ":attr:`url`" +msgstr ":attr:`url`" + +#: ../Doc/library/urllib.parse.rst:360 +msgid "URL with no fragment" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:365 +msgid "" +"See section :ref:`urlparse-result-object` for more information on the result " +"object." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:368 +msgid "Result is a structured object rather than a simple 2-tuple." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:374 +msgid "Parsing ASCII Encoded Bytes" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:376 +msgid "" +"The URL parsing functions were originally designed to operate on character " +"strings only. In practice, it is useful to be able to manipulate properly " +"quoted and encoded URLs as sequences of ASCII bytes. Accordingly, the URL " +"parsing functions in this module all operate on :class:`bytes` and :class:" +"`bytearray` objects in addition to :class:`str` objects." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:382 +msgid "" +"If :class:`str` data is passed in, the result will also contain only :class:" +"`str` data. If :class:`bytes` or :class:`bytearray` data is passed in, the " +"result will contain only :class:`bytes` data." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:386 +msgid "" +"Attempting to mix :class:`str` data with :class:`bytes` or :class:" +"`bytearray` in a single function call will result in a :exc:`TypeError` " +"being raised, while attempting to pass in non-ASCII byte values will " +"trigger :exc:`UnicodeDecodeError`." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:391 +msgid "" +"To support easier conversion of result objects between :class:`str` and :" +"class:`bytes`, all return values from URL parsing functions provide either " +"an :meth:`encode` method (when the result contains :class:`str` data) or a :" +"meth:`decode` method (when the result contains :class:`bytes` data). The " +"signatures of these methods match those of the corresponding :class:`str` " +"and :class:`bytes` methods (except that the default encoding is ``'ascii'`` " +"rather than ``'utf-8'``). Each produces a value of a corresponding type that " +"contains either :class:`bytes` data (for :meth:`encode` methods) or :class:" +"`str` data (for :meth:`decode` methods)." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:402 +msgid "" +"Applications that need to operate on potentially improperly quoted URLs that " +"may contain non-ASCII data will need to do their own decoding from bytes to " +"characters before invoking the URL parsing methods." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:406 +msgid "" +"The behaviour described in this section applies only to the URL parsing " +"functions. The URL quoting functions use their own rules when producing or " +"consuming byte sequences as detailed in the documentation of the individual " +"URL quoting functions." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:411 +msgid "URL parsing functions now accept ASCII encoded byte sequences" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:418 +msgid "Structured Parse Results" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:420 +msgid "" +"The result objects from the :func:`urlparse`, :func:`urlsplit` and :func:" +"`urldefrag` functions are subclasses of the :class:`tuple` type. These " +"subclasses add the attributes listed in the documentation for those " +"functions, the encoding and decoding support described in the previous " +"section, as well as an additional method:" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:428 +msgid "" +"Return the re-combined version of the original URL as a string. This may " +"differ from the original URL in that the scheme may be normalized to lower " +"case and empty components may be dropped. Specifically, empty parameters, " +"queries, and fragment identifiers will be removed." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:433 +msgid "" +"For :func:`urldefrag` results, only empty fragment identifiers will be " +"removed. For :func:`urlsplit` and :func:`urlparse` results, all noted " +"changes will be made to the URL returned by this method." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:437 +msgid "" +"The result of this method remains unchanged if passed back through the " +"original parsing function:" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:450 +msgid "" +"The following classes provide the implementations of the structured parse " +"results when operating on :class:`str` objects:" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:455 +msgid "" +"Concrete class for :func:`urldefrag` results containing :class:`str` data. " +"The :meth:`encode` method returns a :class:`DefragResultBytes` instance." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:463 +msgid "" +"Concrete class for :func:`urlparse` results containing :class:`str` data. " +"The :meth:`encode` method returns a :class:`ParseResultBytes` instance." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:469 +msgid "" +"Concrete class for :func:`urlsplit` results containing :class:`str` data. " +"The :meth:`encode` method returns a :class:`SplitResultBytes` instance." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:474 +msgid "" +"The following classes provide the implementations of the parse results when " +"operating on :class:`bytes` or :class:`bytearray` objects:" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:479 +msgid "" +"Concrete class for :func:`urldefrag` results containing :class:`bytes` data. " +"The :meth:`decode` method returns a :class:`DefragResult` instance." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:487 +msgid "" +"Concrete class for :func:`urlparse` results containing :class:`bytes` data. " +"The :meth:`decode` method returns a :class:`ParseResult` instance." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:495 +msgid "" +"Concrete class for :func:`urlsplit` results containing :class:`bytes` data. " +"The :meth:`decode` method returns a :class:`SplitResult` instance." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:503 +msgid "URL Quoting" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:505 +msgid "" +"The URL quoting functions focus on taking program data and making it safe " +"for use as URL components by quoting special characters and appropriately " +"encoding non-ASCII text. They also support reversing these operations to " +"recreate the original data from the contents of a URL component if that task " +"isn't already covered by the URL parsing functions above." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:513 +msgid "" +"Replace special characters in *string* using the ``%xx`` escape. Letters, " +"digits, and the characters ``'_.-~'`` are never quoted. By default, this " +"function is intended for quoting the path section of URL. The optional " +"*safe* parameter specifies additional ASCII characters that should not be " +"quoted --- its default value is ``'/'``." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:519 ../Doc/library/urllib.parse.rst:589 +msgid "*string* may be either a :class:`str` or a :class:`bytes`." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:521 +msgid "" +"Moved from :rfc:`2396` to :rfc:`3986` for quoting URL strings. \"~\" is now " +"included in the set of reserved characters." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:525 +msgid "" +"The optional *encoding* and *errors* parameters specify how to deal with non-" +"ASCII characters, as accepted by the :meth:`str.encode` method. *encoding* " +"defaults to ``'utf-8'``. *errors* defaults to ``'strict'``, meaning " +"unsupported characters raise a :class:`UnicodeEncodeError`. *encoding* and " +"*errors* must not be supplied if *string* is a :class:`bytes`, or a :class:" +"`TypeError` is raised." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:533 +msgid "" +"Note that ``quote(string, safe, encoding, errors)`` is equivalent to " +"``quote_from_bytes(string.encode(encoding, errors), safe)``." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:536 +msgid "Example: ``quote('/El Niño/')`` yields ``'/El%20Ni%C3%B1o/'``." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:541 +msgid "" +"Like :func:`quote`, but also replace spaces by plus signs, as required for " +"quoting HTML form values when building up a query string to go into a URL. " +"Plus signs in the original string are escaped unless they are included in " +"*safe*. It also does not have *safe* default to ``'/'``." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:546 +msgid "Example: ``quote_plus('/El Niño/')`` yields ``'%2FEl+Ni%C3%B1o%2F'``." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:551 +msgid "" +"Like :func:`quote`, but accepts a :class:`bytes` object rather than a :class:" +"`str`, and does not perform string-to-bytes encoding." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:554 +msgid "Example: ``quote_from_bytes(b'a&\\xef')`` yields ``'a%26%EF'``." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:560 +msgid "" +"Replace ``%xx`` escapes by their single-character equivalent. The optional " +"*encoding* and *errors* parameters specify how to decode percent-encoded " +"sequences into Unicode characters, as accepted by the :meth:`bytes.decode` " +"method." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:565 ../Doc/library/urllib.parse.rst:579 +msgid "*string* must be a :class:`str`." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:567 +msgid "" +"*encoding* defaults to ``'utf-8'``. *errors* defaults to ``'replace'``, " +"meaning invalid sequences are replaced by a placeholder character." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:571 +msgid "Example: ``unquote('/El%20Ni%C3%B1o/')`` yields ``'/El Niño/'``." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:576 +msgid "" +"Like :func:`unquote`, but also replace plus signs by spaces, as required for " +"unquoting HTML form values." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:581 +msgid "Example: ``unquote_plus('/El+Ni%C3%B1o/')`` yields ``'/El Niño/'``." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:586 +msgid "" +"Replace ``%xx`` escapes by their single-octet equivalent, and return a :" +"class:`bytes` object." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:591 +msgid "" +"If it is a :class:`str`, unescaped non-ASCII characters in *string* are " +"encoded into UTF-8 bytes." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:594 +msgid "Example: ``unquote_to_bytes('a%26%EF')`` yields ``b'a&\\xef'``." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:600 +msgid "" +"Convert a mapping object or a sequence of two-element tuples, which may " +"contain :class:`str` or :class:`bytes` objects, to a percent-encoded ASCII " +"text string. If the resultant string is to be used as a *data* for POST " +"operation with the :func:`~urllib.request.urlopen` function, then it should " +"be encoded to bytes, otherwise it would result in a :exc:`TypeError`." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:607 +msgid "" +"The resulting string is a series of ``key=value`` pairs separated by ``'&'`` " +"characters, where both *key* and *value* are quoted using the *quote_via* " +"function. By default, :func:`quote_plus` is used to quote the values, which " +"means spaces are quoted as a ``'+'`` character and '/' characters are " +"encoded as ``%2F``, which follows the standard for GET requests " +"(``application/x-www-form-urlencoded``). An alternate function that can be " +"passed as *quote_via* is :func:`quote`, which will encode spaces as ``%20`` " +"and not encode '/' characters. For maximum control of what is quoted, use " +"``quote`` and specify a value for *safe*." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:617 +msgid "" +"When a sequence of two-element tuples is used as the *query* argument, the " +"first element of each tuple is a key and the second is a value. The value " +"element in itself can be a sequence and in that case, if the optional " +"parameter *doseq* is evaluates to ``True``, individual ``key=value`` pairs " +"separated by ``'&'`` are generated for each element of the value sequence " +"for the key. The order of parameters in the encoded string will match the " +"order of parameter tuples in the sequence." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:625 +msgid "" +"The *safe*, *encoding*, and *errors* parameters are passed down to " +"*quote_via* (the *encoding* and *errors* parameters are only passed when a " +"query element is a :class:`str`)." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:629 +msgid "" +"To reverse this encoding process, :func:`parse_qs` and :func:`parse_qsl` are " +"provided in this module to parse query strings into Python data structures." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:632 +msgid "" +"Refer to :ref:`urllib examples ` to find out how urlencode " +"method can be used for generating query string for a URL or data for POST." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:635 +msgid "Query parameter supports bytes and string objects." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:638 +msgid "*quote_via* parameter." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:648 +msgid ":rfc:`3986` - Uniform Resource Identifiers" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:645 +msgid "" +"This is the current standard (STD66). Any changes to urllib.parse module " +"should conform to this. Certain deviations could be observed, which are " +"mostly for backward compatibility purposes and for certain de-facto parsing " +"requirements as commonly observed in major browsers." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:651 +msgid ":rfc:`2732` - Format for Literal IPv6 Addresses in URL's." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:651 +msgid "This specifies the parsing requirements of IPv6 URLs." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:655 +msgid ":rfc:`2396` - Uniform Resource Identifiers (URI): Generic Syntax" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:654 +msgid "" +"Document describing the generic syntactic requirements for both Uniform " +"Resource Names (URNs) and Uniform Resource Locators (URLs)." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:658 +msgid ":rfc:`2368` - The mailto URL scheme." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:658 +msgid "Parsing requirements for mailto URL schemes." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:663 +msgid ":rfc:`1808` - Relative Uniform Resource Locators" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:661 +msgid "" +"This Request For Comments includes the rules for joining an absolute and a " +"relative URL, including a fair number of \"Abnormal Examples\" which govern " +"the treatment of border cases." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:665 +msgid ":rfc:`1738` - Uniform Resource Locators (URL)" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:666 +msgid "This specifies the formal syntax and semantics of absolute URLs." +msgstr "" diff --git a/library/urllib.po b/library/urllib.po new file mode 100644 index 000000000..1a0a19631 --- /dev/null +++ b/library/urllib.po @@ -0,0 +1,50 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-10-19 08:14+0100\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.10\n" + +#: ../Doc/library/urllib.rst:2 +msgid ":mod:`urllib` --- URL handling modules" +msgstr ":mod:`urllib` — Modules de gestion des URLs" + +#: ../Doc/library/urllib.rst:6 +msgid "**Source code:** :source:`Lib/urllib/`" +msgstr "**Code source :** :source:`Lib/urllib/`" + +#: ../Doc/library/urllib.rst:10 +msgid "" +"``urllib`` is a package that collects several modules for working with URLs:" +msgstr "" +"``urllib`` est un paquet qui collecte plusieurs modules travaillant avec les " +"URLs :" + +#: ../Doc/library/urllib.rst:12 +msgid ":mod:`urllib.request` for opening and reading URLs" +msgstr ":mod:`urllib.request` pour ouvrir et lire des URLs ;" + +#: ../Doc/library/urllib.rst:13 +msgid "" +":mod:`urllib.error` containing the exceptions raised by :mod:`urllib.request`" +msgstr "" +":mod:`urllib.error` contenant les exceptions levées par :mod:`urllib." +"request` ;" + +#: ../Doc/library/urllib.rst:14 +msgid ":mod:`urllib.parse` for parsing URLs" +msgstr ":mod:`urllib.parse` pour analyser les URLs ;" + +#: ../Doc/library/urllib.rst:15 +msgid ":mod:`urllib.robotparser` for parsing ``robots.txt`` files" +msgstr ":mod:`urllib.robotparser` pour analyser les fichiers ``robots.txt``." diff --git a/library/urllib.request.po b/library/urllib.request.po new file mode 100644 index 000000000..fa1889714 --- /dev/null +++ b/library/urllib.request.po @@ -0,0 +1,1741 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/urllib.request.rst:2 +msgid ":mod:`urllib.request` --- Extensible library for opening URLs" +msgstr "" + +#: ../Doc/library/urllib.request.rst:11 +msgid "**Source code:** :source:`Lib/urllib/request.py`" +msgstr "" + +#: ../Doc/library/urllib.request.rst:15 +msgid "" +"The :mod:`urllib.request` module defines functions and classes which help in " +"opening URLs (mostly HTTP) in a complex world --- basic and digest " +"authentication, redirections, cookies and more." +msgstr "" + +#: ../Doc/library/urllib.request.rst:21 +msgid "" +"The `Requests package `_ is recommended " +"for a higher-level HTTP client interface." +msgstr "" + +#: ../Doc/library/urllib.request.rst:25 +msgid "The :mod:`urllib.request` module defines the following functions:" +msgstr "" + +#: ../Doc/library/urllib.request.rst:30 +msgid "" +"Open the URL *url*, which can be either a string or a :class:`Request` " +"object." +msgstr "" + +#: ../Doc/library/urllib.request.rst:33 +msgid "" +"*data* must be an object specifying additional data to be sent to the " +"server, or ``None`` if no such data is needed. See :class:`Request` for " +"details." +msgstr "" + +#: ../Doc/library/urllib.request.rst:37 +msgid "" +"urllib.request module uses HTTP/1.1 and includes ``Connection:close`` header " +"in its HTTP requests." +msgstr "" + +#: ../Doc/library/urllib.request.rst:40 +msgid "" +"The optional *timeout* parameter specifies a timeout in seconds for blocking " +"operations like the connection attempt (if not specified, the global default " +"timeout setting will be used). This actually only works for HTTP, HTTPS and " +"FTP connections." +msgstr "" + +#: ../Doc/library/urllib.request.rst:45 +msgid "" +"If *context* is specified, it must be a :class:`ssl.SSLContext` instance " +"describing the various SSL options. See :class:`~http.client." +"HTTPSConnection` for more details." +msgstr "" + +#: ../Doc/library/urllib.request.rst:49 +msgid "" +"The optional *cafile* and *capath* parameters specify a set of trusted CA " +"certificates for HTTPS requests. *cafile* should point to a single file " +"containing a bundle of CA certificates, whereas *capath* should point to a " +"directory of hashed certificate files. More information can be found in :" +"meth:`ssl.SSLContext.load_verify_locations`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:55 +msgid "The *cadefault* parameter is ignored." +msgstr "" + +#: ../Doc/library/urllib.request.rst:57 +msgid "" +"This function always returns an object which can work as a :term:`context " +"manager` and has methods such as" +msgstr "" + +#: ../Doc/library/urllib.request.rst:60 +msgid "" +":meth:`~urllib.response.addinfourl.geturl` --- return the URL of the " +"resource retrieved, commonly used to determine if a redirect was followed" +msgstr "" + +#: ../Doc/library/urllib.request.rst:63 +msgid "" +":meth:`~urllib.response.addinfourl.info` --- return the meta-information of " +"the page, such as headers, in the form of an :func:`email." +"message_from_string` instance (see `Quick Reference to HTTP Headers `_)" +msgstr "" + +#: ../Doc/library/urllib.request.rst:67 +msgid "" +":meth:`~urllib.response.addinfourl.getcode` -- return the HTTP status code " +"of the response." +msgstr "" + +#: ../Doc/library/urllib.request.rst:69 +msgid "" +"For HTTP and HTTPS URLs, this function returns a :class:`http.client." +"HTTPResponse` object slightly modified. In addition to the three new methods " +"above, the msg attribute contains the same information as the :attr:`~http." +"client.HTTPResponse.reason` attribute --- the reason phrase returned by " +"server --- instead of the response headers as it is specified in the " +"documentation for :class:`~http.client.HTTPResponse`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:77 +msgid "" +"For FTP, file, and data URLs and requests explicitly handled by legacy :" +"class:`URLopener` and :class:`FancyURLopener` classes, this function returns " +"a :class:`urllib.response.addinfourl` object." +msgstr "" + +#: ../Doc/library/urllib.request.rst:81 +msgid "Raises :exc:`~urllib.error.URLError` on protocol errors." +msgstr "" + +#: ../Doc/library/urllib.request.rst:83 +msgid "" +"Note that ``None`` may be returned if no handler handles the request (though " +"the default installed global :class:`OpenerDirector` uses :class:" +"`UnknownHandler` to ensure this never happens)." +msgstr "" + +#: ../Doc/library/urllib.request.rst:87 +msgid "" +"In addition, if proxy settings are detected (for example, when a ``*_proxy`` " +"environment variable like :envvar:`http_proxy` is set), :class:" +"`ProxyHandler` is default installed and makes sure the requests are handled " +"through the proxy." +msgstr "" + +#: ../Doc/library/urllib.request.rst:92 +msgid "" +"The legacy ``urllib.urlopen`` function from Python 2.6 and earlier has been " +"discontinued; :func:`urllib.request.urlopen` corresponds to the old " +"``urllib2.urlopen``. Proxy handling, which was done by passing a dictionary " +"parameter to ``urllib.urlopen``, can be obtained by using :class:" +"`ProxyHandler` objects." +msgstr "" + +#: ../Doc/library/urllib.request.rst:98 +msgid "*cafile* and *capath* were added." +msgstr "" + +#: ../Doc/library/urllib.request.rst:101 +msgid "" +"HTTPS virtual hosts are now supported if possible (that is, if :data:`ssl." +"HAS_SNI` is true)." +msgstr "" + +#: ../Doc/library/urllib.request.rst:105 +msgid "*data* can be an iterable object." +msgstr "" + +#: ../Doc/library/urllib.request.rst:108 +msgid "*cadefault* was added." +msgstr "" + +#: ../Doc/library/urllib.request.rst:111 +msgid "*context* was added." +msgstr "" + +#: ../Doc/library/urllib.request.rst:116 +msgid "" +"*cafile*, *capath* and *cadefault* are deprecated in favor of *context*. " +"Please use :meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." +"create_default_context` select the system's trusted CA certificates for you." +msgstr "" + +#: ../Doc/library/urllib.request.rst:123 +msgid "" +"Install an :class:`OpenerDirector` instance as the default global opener. " +"Installing an opener is only necessary if you want urlopen to use that " +"opener; otherwise, simply call :meth:`OpenerDirector.open` instead of :func:" +"`~urllib.request.urlopen`. The code does not check for a real :class:" +"`OpenerDirector`, and any class with the appropriate interface will work." +msgstr "" + +#: ../Doc/library/urllib.request.rst:133 +msgid "" +"Return an :class:`OpenerDirector` instance, which chains the handlers in the " +"order given. *handler*\\s can be either instances of :class:`BaseHandler`, " +"or subclasses of :class:`BaseHandler` (in which case it must be possible to " +"call the constructor without any parameters). Instances of the following " +"classes will be in front of the *handler*\\s, unless the *handler*\\s " +"contain them, instances of them or subclasses of them: :class:`ProxyHandler` " +"(if proxy settings are detected), :class:`UnknownHandler`, :class:" +"`HTTPHandler`, :class:`HTTPDefaultErrorHandler`, :class:" +"`HTTPRedirectHandler`, :class:`FTPHandler`, :class:`FileHandler`, :class:" +"`HTTPErrorProcessor`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:143 +msgid "" +"If the Python installation has SSL support (i.e., if the :mod:`ssl` module " +"can be imported), :class:`HTTPSHandler` will also be added." +msgstr "" + +#: ../Doc/library/urllib.request.rst:146 +msgid "" +"A :class:`BaseHandler` subclass may also change its :attr:`handler_order` " +"attribute to modify its position in the handlers list." +msgstr "" + +#: ../Doc/library/urllib.request.rst:152 +msgid "" +"Convert the pathname *path* from the local syntax for a path to the form " +"used in the path component of a URL. This does not produce a complete URL. " +"The return value will already be quoted using the :func:`~urllib.parse." +"quote` function." +msgstr "" + +#: ../Doc/library/urllib.request.rst:159 +msgid "" +"Convert the path component *path* from a percent-encoded URL to the local " +"syntax for a path. This does not accept a complete URL. This function " +"uses :func:`~urllib.parse.unquote` to decode *path*." +msgstr "" + +#: ../Doc/library/urllib.request.rst:165 +msgid "" +"This helper function returns a dictionary of scheme to proxy server URL " +"mappings. It scans the environment for variables named ``_proxy``, " +"in a case insensitive approach, for all operating systems first, and when it " +"cannot find it, looks for proxy information from Mac OSX System " +"Configuration for Mac OS X and Windows Systems Registry for Windows. If both " +"lowercase and uppercase environment variables exist (and disagree), " +"lowercase is preferred." +msgstr "" + +#: ../Doc/library/urllib.request.rst:175 +msgid "" +"If the environment variable ``REQUEST_METHOD`` is set, which usually " +"indicates your script is running in a CGI environment, the environment " +"variable ``HTTP_PROXY`` (uppercase ``_PROXY``) will be ignored. This is " +"because that variable can be injected by a client using the \"Proxy:\" HTTP " +"header. If you need to use an HTTP proxy in a CGI environment, either use " +"``ProxyHandler`` explicitly, or make sure the variable name is in lowercase " +"(or at least the ``_proxy`` suffix)." +msgstr "" + +#: ../Doc/library/urllib.request.rst:184 +msgid "The following classes are provided:" +msgstr "" + +#: ../Doc/library/urllib.request.rst:188 +msgid "This class is an abstraction of a URL request." +msgstr "" + +#: ../Doc/library/urllib.request.rst:190 +msgid "*url* should be a string containing a valid URL." +msgstr "" + +#: ../Doc/library/urllib.request.rst:192 +msgid "" +"*data* must be an object specifying additional data to send to the server, " +"or ``None`` if no such data is needed. Currently HTTP requests are the only " +"ones that use *data*. The supported object types include bytes, file-like " +"objects, and iterables. If no ``Content-Length`` nor ``Transfer-Encoding`` " +"header field has been provided, :class:`HTTPHandler` will set these headers " +"according to the type of *data*. ``Content-Length`` will be used to send " +"bytes objects, while ``Transfer-Encoding: chunked`` as specified in :rfc:" +"`7230`, Section 3.3.1 will be used to send files and other iterables." +msgstr "" + +#: ../Doc/library/urllib.request.rst:202 +msgid "" +"For an HTTP POST request method, *data* should be a buffer in the standard :" +"mimetype:`application/x-www-form-urlencoded` format. The :func:`urllib." +"parse.urlencode` function takes a mapping or sequence of 2-tuples and " +"returns an ASCII string in this format. It should be encoded to bytes before " +"being used as the *data* parameter." +msgstr "" + +#: ../Doc/library/urllib.request.rst:208 +msgid "" +"*headers* should be a dictionary, and will be treated as if :meth:" +"`add_header` was called with each key and value as arguments. This is often " +"used to \"spoof\" the ``User-Agent`` header value, which is used by a " +"browser to identify itself -- some HTTP servers only allow requests coming " +"from common browsers as opposed to scripts. For example, Mozilla Firefox may " +"identify itself as ``\"Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 " +"Firefox/2.0.0.11\"``, while :mod:`urllib`'s default user agent string is ``" +"\"Python-urllib/2.6\"`` (on Python 2.6)." +msgstr "" + +#: ../Doc/library/urllib.request.rst:218 +msgid "" +"An appropriate ``Content-Type`` header should be included if the *data* " +"argument is present. If this header has not been provided and *data* is not " +"None, ``Content-Type: application/x-www-form-urlencoded`` will be added as a " +"default." +msgstr "" + +#: ../Doc/library/urllib.request.rst:223 +msgid "" +"The final two arguments are only of interest for correct handling of third-" +"party HTTP cookies:" +msgstr "" + +#: ../Doc/library/urllib.request.rst:226 +msgid "" +"*origin_req_host* should be the request-host of the origin transaction, as " +"defined by :rfc:`2965`. It defaults to ``http.cookiejar." +"request_host(self)``. This is the host name or IP address of the original " +"request that was initiated by the user. For example, if the request is for " +"an image in an HTML document, this should be the request-host of the request " +"for the page containing the image." +msgstr "" + +#: ../Doc/library/urllib.request.rst:234 +msgid "" +"*unverifiable* should indicate whether the request is unverifiable, as " +"defined by :rfc:`2965`. It defaults to ``False``. An unverifiable request " +"is one whose URL the user did not have the option to approve. For example, " +"if the request is for an image in an HTML document, and the user had no " +"option to approve the automatic fetching of the image, this should be true." +msgstr "" + +#: ../Doc/library/urllib.request.rst:241 +msgid "" +"*method* should be a string that indicates the HTTP request method that will " +"be used (e.g. ``'HEAD'``). If provided, its value is stored in the :attr:" +"`~Request.method` attribute and is used by :meth:`get_method()`. The default " +"is ``'GET'`` if *data* is ``None`` or ``'POST'`` otherwise. Subclasses may " +"indicate a different default method by setting the :attr:`~Request.method` " +"attribute in the class itself." +msgstr "" + +#: ../Doc/library/urllib.request.rst:249 +msgid "" +"The request will not work as expected if the data object is unable to " +"deliver its content more than once (e.g. a file or an iterable that can " +"produce the content only once) and the request is retried for HTTP redirects " +"or authentication. The *data* is sent to the HTTP server right away after " +"the headers. There is no support for a 100-continue expectation in the " +"library." +msgstr "" + +#: ../Doc/library/urllib.request.rst:256 +msgid ":attr:`Request.method` argument is added to the Request class." +msgstr "" + +#: ../Doc/library/urllib.request.rst:259 +msgid "Default :attr:`Request.method` may be indicated at the class level." +msgstr "" + +#: ../Doc/library/urllib.request.rst:262 +msgid "" +"Do not raise an error if the ``Content-Length`` has not been provided and " +"*data* is neither ``None`` nor a bytes object. Fall back to use chunked " +"transfer encoding instead." +msgstr "" + +#: ../Doc/library/urllib.request.rst:269 +msgid "" +"The :class:`OpenerDirector` class opens URLs via :class:`BaseHandler`\\ s " +"chained together. It manages the chaining of handlers, and recovery from " +"errors." +msgstr "" + +#: ../Doc/library/urllib.request.rst:275 +msgid "" +"This is the base class for all registered handlers --- and handles only the " +"simple mechanics of registration." +msgstr "" + +#: ../Doc/library/urllib.request.rst:281 +msgid "" +"A class which defines a default handler for HTTP error responses; all " +"responses are turned into :exc:`~urllib.error.HTTPError` exceptions." +msgstr "" + +#: ../Doc/library/urllib.request.rst:287 +msgid "A class to handle redirections." +msgstr "" + +#: ../Doc/library/urllib.request.rst:292 +msgid "A class to handle HTTP Cookies." +msgstr "" + +#: ../Doc/library/urllib.request.rst:297 +msgid "" +"Cause requests to go through a proxy. If *proxies* is given, it must be a " +"dictionary mapping protocol names to URLs of proxies. The default is to read " +"the list of proxies from the environment variables ``_proxy``. If " +"no proxy environment variables are set, then in a Windows environment proxy " +"settings are obtained from the registry's Internet Settings section, and in " +"a Mac OS X environment proxy information is retrieved from the OS X System " +"Configuration Framework." +msgstr "" + +#: ../Doc/library/urllib.request.rst:305 +msgid "To disable autodetected proxy pass an empty dictionary." +msgstr "" + +#: ../Doc/library/urllib.request.rst:307 +msgid "" +"The :envvar:`no_proxy` environment variable can be used to specify hosts " +"which shouldn't be reached via proxy; if set, it should be a comma-separated " +"list of hostname suffixes, optionally with ``:port`` appended, for example " +"``cern.ch,ncsa.uiuc.edu,some.host:8080``." +msgstr "" + +#: ../Doc/library/urllib.request.rst:314 +msgid "" +"``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see " +"the documentation on :func:`~urllib.request.getproxies`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:320 +msgid "Keep a database of ``(realm, uri) -> (user, password)`` mappings." +msgstr "" + +#: ../Doc/library/urllib.request.rst:325 +msgid "" +"Keep a database of ``(realm, uri) -> (user, password)`` mappings. A realm " +"of ``None`` is considered a catch-all realm, which is searched if no other " +"realm fits." +msgstr "" + +#: ../Doc/library/urllib.request.rst:332 +msgid "" +"A variant of :class:`HTTPPasswordMgrWithDefaultRealm` that also has a " +"database of ``uri -> is_authenticated`` mappings. Can be used by a " +"BasicAuth handler to determine when to send authentication credentials " +"immediately instead of waiting for a ``401`` response first." +msgstr "" + +#: ../Doc/library/urllib.request.rst:342 +msgid "" +"This is a mixin class that helps with HTTP authentication, both to the " +"remote host and to a proxy. *password_mgr*, if given, should be something " +"that is compatible with :class:`HTTPPasswordMgr`; refer to section :ref:" +"`http-password-mgr` for information on the interface that must be " +"supported. If *passwd_mgr* also provides ``is_authenticated`` and " +"``update_authenticated`` methods (see :ref:`http-password-mgr-with-prior-" +"auth`), then the handler will use the ``is_authenticated`` result for a " +"given URI to determine whether or not to send authentication credentials " +"with the request. If ``is_authenticated`` returns ``True`` for the URI, " +"credentials are sent. If ``is_authenticated`` is ``False``, credentials are " +"not sent, and then if a ``401`` response is received the request is re-sent " +"with the authentication credentials. If authentication succeeds, " +"``update_authenticated`` is called to set ``is_authenticated`` ``True`` for " +"the URI, so that subsequent requests to the URI or any of its super-URIs " +"will automatically include the authentication credentials." +msgstr "" + +#: ../Doc/library/urllib.request.rst:359 +msgid "Added ``is_authenticated`` support." +msgstr "" + +#: ../Doc/library/urllib.request.rst:365 +msgid "" +"Handle authentication with the remote host. *password_mgr*, if given, should " +"be something that is compatible with :class:`HTTPPasswordMgr`; refer to " +"section :ref:`http-password-mgr` for information on the interface that must " +"be supported. HTTPBasicAuthHandler will raise a :exc:`ValueError` when " +"presented with a wrong Authentication scheme." +msgstr "" + +#: ../Doc/library/urllib.request.rst:374 ../Doc/library/urllib.request.rst:408 +msgid "" +"Handle authentication with the proxy. *password_mgr*, if given, should be " +"something that is compatible with :class:`HTTPPasswordMgr`; refer to " +"section :ref:`http-password-mgr` for information on the interface that must " +"be supported." +msgstr "" + +#: ../Doc/library/urllib.request.rst:382 +msgid "" +"This is a mixin class that helps with HTTP authentication, both to the " +"remote host and to a proxy. *password_mgr*, if given, should be something " +"that is compatible with :class:`HTTPPasswordMgr`; refer to section :ref:" +"`http-password-mgr` for information on the interface that must be supported." +msgstr "" + +#: ../Doc/library/urllib.request.rst:391 +msgid "" +"Handle authentication with the remote host. *password_mgr*, if given, should " +"be something that is compatible with :class:`HTTPPasswordMgr`; refer to " +"section :ref:`http-password-mgr` for information on the interface that must " +"be supported. When both Digest Authentication Handler and Basic " +"Authentication Handler are both added, Digest Authentication is always tried " +"first. If the Digest Authentication returns a 40x response again, it is sent " +"to Basic Authentication handler to Handle. This Handler method will raise " +"a :exc:`ValueError` when presented with an authentication scheme other than " +"Digest or Basic." +msgstr "" + +#: ../Doc/library/urllib.request.rst:401 +msgid "Raise :exc:`ValueError` on unsupported Authentication Scheme." +msgstr "" + +#: ../Doc/library/urllib.request.rst:416 +msgid "A class to handle opening of HTTP URLs." +msgstr "" + +#: ../Doc/library/urllib.request.rst:421 +msgid "" +"A class to handle opening of HTTPS URLs. *context* and *check_hostname* " +"have the same meaning as in :class:`http.client.HTTPSConnection`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:424 +msgid "*context* and *check_hostname* were added." +msgstr "" + +#: ../Doc/library/urllib.request.rst:430 +msgid "Open local files." +msgstr "" + +#: ../Doc/library/urllib.request.rst:434 +msgid "Open data URLs." +msgstr "" + +#: ../Doc/library/urllib.request.rst:440 +msgid "Open FTP URLs." +msgstr "" + +#: ../Doc/library/urllib.request.rst:445 +msgid "" +"Open FTP URLs, keeping a cache of open FTP connections to minimize delays." +msgstr "" + +#: ../Doc/library/urllib.request.rst:450 +msgid "A catch-all class to handle unknown URLs." +msgstr "" + +#: ../Doc/library/urllib.request.rst:455 ../Doc/library/urllib.request.rst:1150 +msgid "Process HTTP error responses." +msgstr "" + +#: ../Doc/library/urllib.request.rst:461 +msgid "Request Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:463 +msgid "" +"The following methods describe :class:`Request`'s public interface, and so " +"all may be overridden in subclasses. It also defines several public " +"attributes that can be used by clients to inspect the parsed request." +msgstr "" + +#: ../Doc/library/urllib.request.rst:470 +msgid "The original URL passed to the constructor." +msgstr "" + +#: ../Doc/library/urllib.request.rst:474 +msgid "" +"Request.full_url is a property with setter, getter and a deleter. Getting :" +"attr:`~Request.full_url` returns the original request URL with the fragment, " +"if it was present." +msgstr "" + +#: ../Doc/library/urllib.request.rst:480 +msgid "The URI scheme." +msgstr "" + +#: ../Doc/library/urllib.request.rst:484 +msgid "" +"The URI authority, typically a host, but may also contain a port separated " +"by a colon." +msgstr "" + +#: ../Doc/library/urllib.request.rst:489 +msgid "The original host for the request, without port." +msgstr "" + +#: ../Doc/library/urllib.request.rst:493 +msgid "" +"The URI path. If the :class:`Request` uses a proxy, then selector will be " +"the full URL that is passed to the proxy." +msgstr "" + +#: ../Doc/library/urllib.request.rst:498 +msgid "The entity body for the request, or ``None`` if not specified." +msgstr "" + +#: ../Doc/library/urllib.request.rst:500 +msgid "" +"Changing value of :attr:`Request.data` now deletes \"Content-Length\" header " +"if it was previously set or calculated." +msgstr "" + +#: ../Doc/library/urllib.request.rst:506 +msgid "" +"boolean, indicates whether the request is unverifiable as defined by :rfc:" +"`2965`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:511 +msgid "" +"The HTTP request method to use. By default its value is :const:`None`, " +"which means that :meth:`~Request.get_method` will do its normal computation " +"of the method to be used. Its value can be set (thus overriding the default " +"computation in :meth:`~Request.get_method`) either by providing a default " +"value by setting it at the class level in a :class:`Request` subclass, or by " +"passing a value in to the :class:`Request` constructor via the *method* " +"argument." +msgstr "" + +#: ../Doc/library/urllib.request.rst:521 +msgid "" +"A default value can now be set in subclasses; previously it could only be " +"set via the constructor argument." +msgstr "" + +#: ../Doc/library/urllib.request.rst:528 +msgid "" +"Return a string indicating the HTTP request method. If :attr:`Request." +"method` is not ``None``, return its value, otherwise return ``'GET'`` if :" +"attr:`Request.data` is ``None``, or ``'POST'`` if it's not. This is only " +"meaningful for HTTP requests." +msgstr "" + +#: ../Doc/library/urllib.request.rst:533 +msgid "get_method now looks at the value of :attr:`Request.method`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:539 +msgid "" +"Add another header to the request. Headers are currently ignored by all " +"handlers except HTTP handlers, where they are added to the list of headers " +"sent to the server. Note that there cannot be more than one header with the " +"same name, and later calls will overwrite previous calls in case the *key* " +"collides. Currently, this is no loss of HTTP functionality, since all " +"headers which have meaning when used more than once have a (header-specific) " +"way of gaining the same functionality using only one header." +msgstr "" + +#: ../Doc/library/urllib.request.rst:550 +msgid "Add a header that will not be added to a redirected request." +msgstr "" + +#: ../Doc/library/urllib.request.rst:555 +msgid "" +"Return whether the instance has the named header (checks both regular and " +"unredirected)." +msgstr "" + +#: ../Doc/library/urllib.request.rst:561 +msgid "" +"Remove named header from the request instance (both from regular and " +"unredirected headers)." +msgstr "" + +#: ../Doc/library/urllib.request.rst:569 +msgid "Return the URL given in the constructor." +msgstr "" + +#: ../Doc/library/urllib.request.rst:573 +msgid "Returns :attr:`Request.full_url`" +msgstr "" + +#: ../Doc/library/urllib.request.rst:578 +msgid "" +"Prepare the request by connecting to a proxy server. The *host* and *type* " +"will replace those of the instance, and the instance's selector will be the " +"original URL given in the constructor." +msgstr "" + +#: ../Doc/library/urllib.request.rst:585 +msgid "" +"Return the value of the given header. If the header is not present, return " +"the default value." +msgstr "" + +#: ../Doc/library/urllib.request.rst:591 +msgid "" +"Return a list of tuples (header_name, header_value) of the Request headers." +msgstr "" + +#: ../Doc/library/urllib.request.rst:593 +msgid "" +"The request methods add_data, has_data, get_data, get_type, get_host, " +"get_selector, get_origin_req_host and is_unverifiable that were deprecated " +"since 3.3 have been removed." +msgstr "" + +#: ../Doc/library/urllib.request.rst:602 +msgid "OpenerDirector Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:604 +msgid ":class:`OpenerDirector` instances have the following methods:" +msgstr "" + +#: ../Doc/library/urllib.request.rst:609 +msgid "" +"*handler* should be an instance of :class:`BaseHandler`. The following " +"methods are searched, and added to the possible chains (note that HTTP " +"errors are a special case). Note that, in the following, *protocol* should " +"be replaced with the actual protocol to handle, for example :meth:" +"`http_response` would be the HTTP protocol response handler. Also *type* " +"should be replaced with the actual HTTP code, for example :meth:" +"`http_error_404` would handle HTTP 404 errors." +msgstr "" + +#: ../Doc/library/urllib.request.rst:617 +msgid "" +":meth:`_open` --- signal that the handler knows how to open " +"*protocol* URLs." +msgstr "" + +#: ../Doc/library/urllib.request.rst:620 +msgid "See |protocol_open|_ for more information." +msgstr "" + +#: ../Doc/library/urllib.request.rst:622 +msgid "" +":meth:`http_error_\\` --- signal that the handler knows how to " +"handle HTTP errors with HTTP error code *type*." +msgstr "" + +#: ../Doc/library/urllib.request.rst:625 +msgid "See |http_error_nnn|_ for more information." +msgstr "" + +#: ../Doc/library/urllib.request.rst:627 +msgid "" +":meth:`_error` --- signal that the handler knows how to handle " +"errors from (non-\\ ``http``) *protocol*." +msgstr "" + +#: ../Doc/library/urllib.request.rst:630 +msgid "" +":meth:`_request` --- signal that the handler knows how to pre-" +"process *protocol* requests." +msgstr "" + +#: ../Doc/library/urllib.request.rst:633 +msgid "See |protocol_request|_ for more information." +msgstr "" + +#: ../Doc/library/urllib.request.rst:635 +msgid "" +":meth:`_response` --- signal that the handler knows how to post-" +"process *protocol* responses." +msgstr "" + +#: ../Doc/library/urllib.request.rst:638 +msgid "See |protocol_response|_ for more information." +msgstr "" + +#: ../Doc/library/urllib.request.rst:647 +msgid "" +"Open the given *url* (which can be a request object or a string), optionally " +"passing the given *data*. Arguments, return values and exceptions raised are " +"the same as those of :func:`urlopen` (which simply calls the :meth:`open` " +"method on the currently installed global :class:`OpenerDirector`). The " +"optional *timeout* parameter specifies a timeout in seconds for blocking " +"operations like the connection attempt (if not specified, the global default " +"timeout setting will be used). The timeout feature actually works only for " +"HTTP, HTTPS and FTP connections)." +msgstr "" + +#: ../Doc/library/urllib.request.rst:659 +msgid "" +"Handle an error of the given protocol. This will call the registered error " +"handlers for the given protocol with the given arguments (which are protocol " +"specific). The HTTP protocol is a special case which uses the HTTP response " +"code to determine the specific error handler; refer to the :meth:`http_error_" +"\\` methods of the handler classes." +msgstr "" + +#: ../Doc/library/urllib.request.rst:665 +msgid "" +"Return values and exceptions raised are the same as those of :func:`urlopen`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:667 +msgid "OpenerDirector objects open URLs in three stages:" +msgstr "" + +#: ../Doc/library/urllib.request.rst:669 +msgid "" +"The order in which these methods are called within each stage is determined " +"by sorting the handler instances." +msgstr "" + +#: ../Doc/library/urllib.request.rst:672 +msgid "" +"Every handler with a method named like :meth:`_request` has that " +"method called to pre-process the request." +msgstr "" + +#: ../Doc/library/urllib.request.rst:675 +msgid "" +"Handlers with a method named like :meth:`_open` are called to " +"handle the request. This stage ends when a handler either returns a non-\\ :" +"const:`None` value (ie. a response), or raises an exception (usually :exc:" +"`~urllib.error.URLError`). Exceptions are allowed to propagate." +msgstr "" + +#: ../Doc/library/urllib.request.rst:680 +msgid "" +"In fact, the above algorithm is first tried for methods named :meth:" +"`default_open`. If all such methods return :const:`None`, the algorithm is " +"repeated for methods named like :meth:`_open`. If all such " +"methods return :const:`None`, the algorithm is repeated for methods named :" +"meth:`unknown_open`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:686 +msgid "" +"Note that the implementation of these methods may involve calls of the " +"parent :class:`OpenerDirector` instance's :meth:`~OpenerDirector.open` and :" +"meth:`~OpenerDirector.error` methods." +msgstr "" + +#: ../Doc/library/urllib.request.rst:690 +msgid "" +"Every handler with a method named like :meth:`_response` has that " +"method called to post-process the response." +msgstr "" + +#: ../Doc/library/urllib.request.rst:697 +msgid "BaseHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:699 +msgid "" +":class:`BaseHandler` objects provide a couple of methods that are directly " +"useful, and others that are meant to be used by derived classes. These are " +"intended for direct use:" +msgstr "" + +#: ../Doc/library/urllib.request.rst:706 +msgid "Add a director as parent." +msgstr "" + +#: ../Doc/library/urllib.request.rst:711 +msgid "Remove any parents." +msgstr "" + +#: ../Doc/library/urllib.request.rst:713 +msgid "" +"The following attribute and methods should only be used by classes derived " +"from :class:`BaseHandler`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:718 +msgid "" +"The convention has been adopted that subclasses defining :meth:" +"`_request` or :meth:`_response` methods are named :class:" +"`\\*Processor`; all others are named :class:`\\*Handler`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:725 +msgid "" +"A valid :class:`OpenerDirector`, which can be used to open using a different " +"protocol, or handle errors." +msgstr "" + +#: ../Doc/library/urllib.request.rst:731 +msgid "" +"This method is *not* defined in :class:`BaseHandler`, but subclasses should " +"define it if they want to catch all URLs." +msgstr "" + +#: ../Doc/library/urllib.request.rst:734 +msgid "" +"This method, if implemented, will be called by the parent :class:" +"`OpenerDirector`. It should return a file-like object as described in the " +"return value of the :meth:`open` of :class:`OpenerDirector`, or ``None``. It " +"should raise :exc:`~urllib.error.URLError`, unless a truly exceptional thing " +"happens (for example, :exc:`MemoryError` should not be mapped to :exc:" +"`URLError`)." +msgstr "" + +#: ../Doc/library/urllib.request.rst:741 +msgid "This method will be called before any protocol-specific open method." +msgstr "" + +#: ../Doc/library/urllib.request.rst:748 +msgid "" +"This method is *not* defined in :class:`BaseHandler`, but subclasses should " +"define it if they want to handle URLs with the given protocol." +msgstr "" + +#: ../Doc/library/urllib.request.rst:751 +msgid "" +"This method, if defined, will be called by the parent :class:" +"`OpenerDirector`. Return values should be the same as for :meth:" +"`default_open`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:757 +msgid "" +"This method is *not* defined in :class:`BaseHandler`, but subclasses should " +"define it if they want to catch all URLs with no specific registered handler " +"to open it." +msgstr "" + +#: ../Doc/library/urllib.request.rst:761 +msgid "" +"This method, if implemented, will be called by the :attr:`parent` :class:" +"`OpenerDirector`. Return values should be the same as for :meth:" +"`default_open`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:768 +msgid "" +"This method is *not* defined in :class:`BaseHandler`, but subclasses should " +"override it if they intend to provide a catch-all for otherwise unhandled " +"HTTP errors. It will be called automatically by the :class:" +"`OpenerDirector` getting the error, and should not normally be called in " +"other circumstances." +msgstr "" + +#: ../Doc/library/urllib.request.rst:773 +msgid "" +"*req* will be a :class:`Request` object, *fp* will be a file-like object " +"with the HTTP error body, *code* will be the three-digit code of the error, " +"*msg* will be the user-visible explanation of the code and *hdrs* will be a " +"mapping object with the headers of the error." +msgstr "" + +#: ../Doc/library/urllib.request.rst:778 +msgid "" +"Return values and exceptions raised should be the same as those of :func:" +"`urlopen`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:785 +msgid "" +"*nnn* should be a three-digit HTTP error code. This method is also not " +"defined in :class:`BaseHandler`, but will be called, if it exists, on an " +"instance of a subclass, when an HTTP error with code *nnn* occurs." +msgstr "" + +#: ../Doc/library/urllib.request.rst:789 +msgid "Subclasses should override this method to handle specific HTTP errors." +msgstr "" + +#: ../Doc/library/urllib.request.rst:791 +msgid "" +"Arguments, return values and exceptions raised should be the same as for :" +"meth:`http_error_default`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:799 +msgid "" +"This method is *not* defined in :class:`BaseHandler`, but subclasses should " +"define it if they want to pre-process requests of the given protocol." +msgstr "" + +#: ../Doc/library/urllib.request.rst:802 +msgid "" +"This method, if defined, will be called by the parent :class:" +"`OpenerDirector`. *req* will be a :class:`Request` object. The return value " +"should be a :class:`Request` object." +msgstr "" + +#: ../Doc/library/urllib.request.rst:811 +msgid "" +"This method is *not* defined in :class:`BaseHandler`, but subclasses should " +"define it if they want to post-process responses of the given protocol." +msgstr "" + +#: ../Doc/library/urllib.request.rst:814 +msgid "" +"This method, if defined, will be called by the parent :class:" +"`OpenerDirector`. *req* will be a :class:`Request` object. *response* will " +"be an object implementing the same interface as the return value of :func:" +"`urlopen`. The return value should implement the same interface as the " +"return value of :func:`urlopen`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:824 +msgid "HTTPRedirectHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:828 +msgid "" +"Some HTTP redirections require action from this module's client code. If " +"this is the case, :exc:`~urllib.error.HTTPError` is raised. See :rfc:`2616` " +"for details of the precise meanings of the various redirection codes." +msgstr "" + +#: ../Doc/library/urllib.request.rst:832 +msgid "" +"An :class:`HTTPError` exception raised as a security consideration if the " +"HTTPRedirectHandler is presented with a redirected URL which is not an HTTP, " +"HTTPS or FTP URL." +msgstr "" + +#: ../Doc/library/urllib.request.rst:839 +msgid "" +"Return a :class:`Request` or ``None`` in response to a redirect. This is " +"called by the default implementations of the :meth:`http_error_30\\*` " +"methods when a redirection is received from the server. If a redirection " +"should take place, return a new :class:`Request` to allow :meth:" +"`http_error_30\\*` to perform the redirect to *newurl*. Otherwise, raise :" +"exc:`~urllib.error.HTTPError` if no other handler should try to handle this " +"URL, or return ``None`` if you can't but another handler might." +msgstr "" + +#: ../Doc/library/urllib.request.rst:849 +msgid "" +"The default implementation of this method does not strictly follow :rfc:" +"`2616`, which says that 301 and 302 responses to ``POST`` requests must not " +"be automatically redirected without confirmation by the user. In reality, " +"browsers do allow automatic redirection of these responses, changing the " +"POST to a ``GET``, and the default implementation reproduces this behavior." +msgstr "" + +#: ../Doc/library/urllib.request.rst:858 +msgid "" +"Redirect to the ``Location:`` or ``URI:`` URL. This method is called by the " +"parent :class:`OpenerDirector` when getting an HTTP 'moved permanently' " +"response." +msgstr "" + +#: ../Doc/library/urllib.request.rst:864 +msgid "" +"The same as :meth:`http_error_301`, but called for the 'found' response." +msgstr "" + +#: ../Doc/library/urllib.request.rst:869 +msgid "" +"The same as :meth:`http_error_301`, but called for the 'see other' response." +msgstr "" + +#: ../Doc/library/urllib.request.rst:874 +msgid "" +"The same as :meth:`http_error_301`, but called for the 'temporary redirect' " +"response." +msgstr "" + +#: ../Doc/library/urllib.request.rst:881 +msgid "HTTPCookieProcessor Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:883 +msgid ":class:`HTTPCookieProcessor` instances have one attribute:" +msgstr "" + +#: ../Doc/library/urllib.request.rst:887 +msgid "The :class:`http.cookiejar.CookieJar` in which cookies are stored." +msgstr "" + +#: ../Doc/library/urllib.request.rst:893 +msgid "ProxyHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:899 +msgid "" +"The :class:`ProxyHandler` will have a method :meth:`_open` for " +"every *protocol* which has a proxy in the *proxies* dictionary given in the " +"constructor. The method will modify requests to go through the proxy, by " +"calling ``request.set_proxy()``, and call the next handler in the chain to " +"actually execute the protocol." +msgstr "" + +#: ../Doc/library/urllib.request.rst:909 +msgid "HTTPPasswordMgr Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:911 +msgid "" +"These methods are available on :class:`HTTPPasswordMgr` and :class:" +"`HTTPPasswordMgrWithDefaultRealm` objects." +msgstr "" + +#: ../Doc/library/urllib.request.rst:917 +msgid "" +"*uri* can be either a single URI, or a sequence of URIs. *realm*, *user* and " +"*passwd* must be strings. This causes ``(user, passwd)`` to be used as " +"authentication tokens when authentication for *realm* and a super-URI of any " +"of the given URIs is given." +msgstr "" + +#: ../Doc/library/urllib.request.rst:925 +msgid "" +"Get user/password for given realm and URI, if any. This method will return " +"``(None, None)`` if there is no matching user/password." +msgstr "" + +#: ../Doc/library/urllib.request.rst:928 +msgid "" +"For :class:`HTTPPasswordMgrWithDefaultRealm` objects, the realm ``None`` " +"will be searched if the given *realm* has no matching user/password." +msgstr "" + +#: ../Doc/library/urllib.request.rst:935 +msgid "HTTPPasswordMgrWithPriorAuth Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:937 +msgid "" +"This password manager extends :class:`HTTPPasswordMgrWithDefaultRealm` to " +"support tracking URIs for which authentication credentials should always be " +"sent." +msgstr "" + +#: ../Doc/library/urllib.request.rst:944 +msgid "" +"*realm*, *uri*, *user*, *passwd* are as for :meth:`HTTPPasswordMgr." +"add_password`. *is_authenticated* sets the initial value of the " +"``is_authenticated`` flag for the given URI or list of URIs. If " +"*is_authenticated* is specified as ``True``, *realm* is ignored." +msgstr "" + +#: ../Doc/library/urllib.request.rst:952 +msgid "Same as for :class:`HTTPPasswordMgrWithDefaultRealm` objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:958 +msgid "" +"Update the ``is_authenticated`` flag for the given *uri* or list of URIs." +msgstr "" + +#: ../Doc/library/urllib.request.rst:964 +msgid "" +"Returns the current state of the ``is_authenticated`` flag for the given URI." +msgstr "" + +#: ../Doc/library/urllib.request.rst:971 +msgid "AbstractBasicAuthHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:976 +msgid "" +"Handle an authentication request by getting a user/password pair, and re-" +"trying the request. *authreq* should be the name of the header where the " +"information about the realm is included in the request, *host* specifies the " +"URL and path to authenticate for, *req* should be the (failed) :class:" +"`Request` object, and *headers* should be the error headers." +msgstr "" + +#: ../Doc/library/urllib.request.rst:982 +msgid "" +"*host* is either an authority (e.g. ``\"python.org\"``) or a URL containing " +"an authority component (e.g. ``\"http://python.org/\"``). In either case, " +"the authority must not contain a userinfo component (so, ``\"python.org\"`` " +"and ``\"python.org:80\"`` are fine, ``\"joe:password@python.org\"`` is not)." +msgstr "" + +#: ../Doc/library/urllib.request.rst:991 +msgid "HTTPBasicAuthHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:996 ../Doc/library/urllib.request.rst:1007 +#: ../Doc/library/urllib.request.rst:1032 +#: ../Doc/library/urllib.request.rst:1043 +msgid "Retry the request with authentication information, if available." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1002 +msgid "ProxyBasicAuthHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1013 +msgid "AbstractDigestAuthHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1018 +msgid "" +"*authreq* should be the name of the header where the information about the " +"realm is included in the request, *host* should be the host to authenticate " +"to, *req* should be the (failed) :class:`Request` object, and *headers* " +"should be the error headers." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1027 +msgid "HTTPDigestAuthHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1038 +msgid "ProxyDigestAuthHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1049 +msgid "HTTPHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1054 +msgid "" +"Send an HTTP request, which can be either GET or POST, depending on ``req." +"has_data()``." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1061 +msgid "HTTPSHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1066 +msgid "" +"Send an HTTPS request, which can be either GET or POST, depending on ``req." +"has_data()``." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1073 +msgid "FileHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1078 +msgid "" +"Open the file locally, if there is no host name, or the host name is " +"``'localhost'``." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1081 +msgid "" +"This method is applicable only for local hostnames. When a remote hostname " +"is given, an :exc:`~urllib.error.URLError` is raised." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1089 +msgid "DataHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1093 +msgid "" +"Read a data URL. This kind of URL contains the content encoded in the URL " +"itself. The data URL syntax is specified in :rfc:`2397`. This implementation " +"ignores white spaces in base64 encoded data URLs so the URL may be wrapped " +"in whatever source file it comes from. But even though some browsers don't " +"mind about a missing padding at the end of a base64 encoded data URL, this " +"implementation will raise an :exc:`ValueError` in that case." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1104 +msgid "FTPHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1109 +msgid "" +"Open the FTP file indicated by *req*. The login is always done with empty " +"username and password." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1116 +msgid "CacheFTPHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1118 +msgid "" +":class:`CacheFTPHandler` objects are :class:`FTPHandler` objects with the " +"following additional methods:" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1124 +msgid "Set timeout of connections to *t* seconds." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1129 +msgid "Set maximum number of cached connections to *m*." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1135 +msgid "UnknownHandler Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1140 +msgid "Raise a :exc:`~urllib.error.URLError` exception." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1146 +msgid "HTTPErrorProcessor Objects" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1152 +msgid "For 200 error codes, the response object is returned immediately." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1154 +msgid "" +"For non-200 error codes, this simply passes the job on to the :meth:" +"`http_error_\\` handler methods, via :meth:`OpenerDirector.error`. " +"Eventually, :class:`HTTPDefaultErrorHandler` will raise an :exc:`~urllib." +"error.HTTPError` if no other handler handles the error." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1162 +msgid "Process HTTPS error responses." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1164 +msgid "The behavior is same as :meth:`http_response`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1170 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/urllib.request.rst:1172 +msgid "" +"In addition to the examples below, more examples are given in :ref:`urllib-" +"howto`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1175 +msgid "" +"This example gets the python.org main page and displays the first 300 bytes " +"of it. ::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1188 +msgid "" +"Note that urlopen returns a bytes object. This is because there is no way " +"for urlopen to automatically determine the encoding of the byte stream it " +"receives from the HTTP server. In general, a program will decode the " +"returned bytes object to string once it determines or guesses the " +"appropriate encoding." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1194 +msgid "" +"The following W3C document, https://www.w3.org/International/O-charset\\ , " +"lists the various ways in which an (X)HTML or an XML document could have " +"specified its encoding information." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1198 +msgid "" +"As the python.org website uses *utf-8* encoding as specified in its meta " +"tag, we will use the same for decoding the bytes object. ::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1207 +msgid "" +"It is also possible to achieve the same result without using the :term:" +"`context manager` approach. ::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1216 +msgid "" +"In the following example, we are sending a data-stream to the stdin of a CGI " +"and reading the data it returns to us. Note that this example will only work " +"when the Python installation supports SSL. ::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1228 +msgid "The code for the sample CGI used in the above example is::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1235 +msgid "Here is an example of doing a ``PUT`` request using :class:`Request`::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1245 +msgid "Use of Basic HTTP Authentication::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1259 +msgid "" +":func:`build_opener` provides many handlers by default, including a :class:" +"`ProxyHandler`. By default, :class:`ProxyHandler` uses the environment " +"variables named ``_proxy``, where ```` is the URL scheme " +"involved. For example, the :envvar:`http_proxy` environment variable is " +"read to obtain the HTTP proxy's URL." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1265 +msgid "" +"This example replaces the default :class:`ProxyHandler` with one that uses " +"programmatically-supplied proxy URLs, and adds proxy authorization support " +"with :class:`ProxyBasicAuthHandler`. ::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1277 +msgid "Adding HTTP headers:" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1279 +msgid "Use the *headers* argument to the :class:`Request` constructor, or::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1288 +msgid "" +":class:`OpenerDirector` automatically adds a :mailheader:`User-Agent` header " +"to every :class:`Request`. To change this::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1296 +msgid "" +"Also, remember that a few standard headers (:mailheader:`Content-Length`, :" +"mailheader:`Content-Type` and :mailheader:`Host`) are added when the :class:" +"`Request` is passed to :func:`urlopen` (or :meth:`OpenerDirector.open`)." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1303 +msgid "" +"Here is an example session that uses the ``GET`` method to retrieve a URL " +"containing parameters::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1314 +msgid "" +"The following example uses the ``POST`` method instead. Note that params " +"output from urlencode is encoded to bytes before it is sent to urlopen as " +"data::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1325 +msgid "" +"The following example uses an explicitly specified HTTP proxy, overriding " +"environment settings::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1335 +msgid "" +"The following example uses no proxies at all, overriding environment " +"settings::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1345 +msgid "Legacy interface" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1347 +msgid "" +"The following functions and classes are ported from the Python 2 module " +"``urllib`` (as opposed to ``urllib2``). They might become deprecated at " +"some point in the future." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1353 +msgid "" +"Copy a network object denoted by a URL to a local file. If the URL points to " +"a local file, the object will not be copied unless filename is supplied. " +"Return a tuple ``(filename, headers)`` where *filename* is the local file " +"name under which the object can be found, and *headers* is whatever the :" +"meth:`info` method of the object returned by :func:`urlopen` returned (for a " +"remote object). Exceptions are the same as for :func:`urlopen`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1360 +msgid "" +"The second argument, if present, specifies the file location to copy to (if " +"absent, the location will be a tempfile with a generated name). The third " +"argument, if present, is a callable that will be called once on " +"establishment of the network connection and once after each block read " +"thereafter. The callable will be passed three arguments; a count of blocks " +"transferred so far, a block size in bytes, and the total size of the file. " +"The third argument may be ``-1`` on older FTP servers which do not return a " +"file size in response to a retrieval request." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1369 +msgid "The following example illustrates the most common usage scenario::" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1376 +msgid "" +"If the *url* uses the :file:`http:` scheme identifier, the optional *data* " +"argument may be given to specify a ``POST`` request (normally the request " +"type is ``GET``). The *data* argument must be a bytes object in standard :" +"mimetype:`application/x-www-form-urlencoded` format; see the :func:`urllib." +"parse.urlencode` function." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1382 +msgid "" +":func:`urlretrieve` will raise :exc:`ContentTooShortError` when it detects " +"that the amount of data available was less than the expected amount (which " +"is the size reported by a *Content-Length* header). This can occur, for " +"example, when the download is interrupted." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1387 +msgid "" +"The *Content-Length* is treated as a lower bound: if there's more data to " +"read, urlretrieve reads more data, but if less data is available, it raises " +"the exception." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1391 +msgid "" +"You can still retrieve the downloaded data in this case, it is stored in " +"the :attr:`content` attribute of the exception instance." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1394 +msgid "" +"If no *Content-Length* header was supplied, urlretrieve can not check the " +"size of the data it has downloaded, and just returns it. In this case you " +"just have to assume that the download was successful." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1400 +msgid "" +"Cleans up temporary files that may have been left behind by previous calls " +"to :func:`urlretrieve`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1407 +msgid "" +"Base class for opening and reading URLs. Unless you need to support opening " +"objects using schemes other than :file:`http:`, :file:`ftp:`, or :file:`file:" +"`, you probably want to use :class:`FancyURLopener`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1411 +msgid "" +"By default, the :class:`URLopener` class sends a :mailheader:`User-Agent` " +"header of ``urllib/VVV``, where *VVV* is the :mod:`urllib` version number. " +"Applications can define their own :mailheader:`User-Agent` header by " +"subclassing :class:`URLopener` or :class:`FancyURLopener` and setting the " +"class attribute :attr:`version` to an appropriate string value in the " +"subclass definition." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1417 +msgid "" +"The optional *proxies* parameter should be a dictionary mapping scheme names " +"to proxy URLs, where an empty dictionary turns proxies off completely. Its " +"default value is ``None``, in which case environmental proxy settings will " +"be used if present, as discussed in the definition of :func:`urlopen`, above." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1422 +msgid "" +"Additional keyword parameters, collected in *x509*, may be used for " +"authentication of the client when using the :file:`https:` scheme. The " +"keywords *key_file* and *cert_file* are supported to provide an SSL key and " +"certificate; both are needed to support client authentication." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1427 +msgid "" +":class:`URLopener` objects will raise an :exc:`OSError` exception if the " +"server returns an error code." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1432 +msgid "" +"Open *fullurl* using the appropriate protocol. This method sets up cache " +"and proxy information, then calls the appropriate open method with its input " +"arguments. If the scheme is not recognized, :meth:`open_unknown` is called. " +"The *data* argument has the same meaning as the *data* argument of :func:" +"`urlopen`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1438 +msgid "This method always quotes *fullurl* using :func:`~urllib.parse.quote`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1442 +msgid "Overridable interface to open unknown URL types." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1447 +msgid "" +"Retrieves the contents of *url* and places it in *filename*. The return " +"value is a tuple consisting of a local filename and either an :class:`email." +"message.Message` object containing the response headers (for remote URLs) or " +"``None`` (for local URLs). The caller must then open and read the contents " +"of *filename*. If *filename* is not given and the URL refers to a local " +"file, the input filename is returned. If the URL is non-local and " +"*filename* is not given, the filename is the output of :func:`tempfile." +"mktemp` with a suffix that matches the suffix of the last path component of " +"the input URL. If *reporthook* is given, it must be a function accepting " +"three numeric parameters: A chunk number, the maximum size chunks are read " +"in and the total size of the download (-1 if unknown). It will be called " +"once at the start and after each chunk of data is read from the network. " +"*reporthook* is ignored for local URLs." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1460 +msgid "" +"If the *url* uses the :file:`http:` scheme identifier, the optional *data* " +"argument may be given to specify a ``POST`` request (normally the request " +"type is ``GET``). The *data* argument must in standard :mimetype:" +"`application/x-www-form-urlencoded` format; see the :func:`urllib.parse." +"urlencode` function." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1469 +msgid "" +"Variable that specifies the user agent of the opener object. To get :mod:" +"`urllib` to tell servers that it is a particular user agent, set this in a " +"subclass as a class variable or in the constructor before calling the base " +"constructor." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1479 +msgid "" +":class:`FancyURLopener` subclasses :class:`URLopener` providing default " +"handling for the following HTTP response codes: 301, 302, 303, 307 and 401. " +"For the 30x response codes listed above, the :mailheader:`Location` header " +"is used to fetch the actual URL. For 401 response codes (authentication " +"required), basic HTTP authentication is performed. For the 30x response " +"codes, recursion is bounded by the value of the *maxtries* attribute, which " +"defaults to 10." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1486 +msgid "" +"For all other response codes, the method :meth:`http_error_default` is " +"called which you can override in subclasses to handle the error " +"appropriately." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1491 +msgid "" +"According to the letter of :rfc:`2616`, 301 and 302 responses to POST " +"requests must not be automatically redirected without confirmation by the " +"user. In reality, browsers do allow automatic redirection of these " +"responses, changing the POST to a GET, and :mod:`urllib` reproduces this " +"behaviour." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1496 +msgid "" +"The parameters to the constructor are the same as those for :class:" +"`URLopener`." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1500 +msgid "" +"When performing basic authentication, a :class:`FancyURLopener` instance " +"calls its :meth:`prompt_user_passwd` method. The default implementation " +"asks the users for the required information on the controlling terminal. A " +"subclass may override this method to support more appropriate behavior if " +"needed." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1505 +msgid "" +"The :class:`FancyURLopener` class offers one additional method that should " +"be overloaded to provide the appropriate behavior:" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1510 +msgid "" +"Return information needed to authenticate the user at the given host in the " +"specified security realm. The return value should be a tuple, ``(user, " +"password)``, which can be used for basic authentication." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1514 +msgid "" +"The implementation prompts for this information on the terminal; an " +"application should override this method to use an appropriate interaction " +"model in the local environment." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1520 +msgid ":mod:`urllib.request` Restrictions" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1526 +msgid "" +"Currently, only the following protocols are supported: HTTP (versions 0.9 " +"and 1.0), FTP, local files, and data URLs." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1529 +msgid "Added support for data URLs." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1531 +msgid "" +"The caching feature of :func:`urlretrieve` has been disabled until someone " +"finds the time to hack proper processing of Expiration time headers." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1534 +msgid "" +"There should be a function to query whether a particular URL is in the cache." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1536 +msgid "" +"For backward compatibility, if a URL appears to point to a local file but " +"the file can't be opened, the URL is re-interpreted using the FTP protocol. " +"This can sometimes cause confusing error messages." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1540 +msgid "" +"The :func:`urlopen` and :func:`urlretrieve` functions can cause arbitrarily " +"long delays while waiting for a network connection to be set up. This means " +"that it is difficult to build an interactive Web client using these " +"functions without using threads." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1549 +msgid "" +"The data returned by :func:`urlopen` or :func:`urlretrieve` is the raw data " +"returned by the server. This may be binary data (such as an image), plain " +"text or (for example) HTML. The HTTP protocol provides type information in " +"the reply header, which can be inspected by looking at the :mailheader:" +"`Content-Type` header. If the returned data is HTML, you can use the " +"module :mod:`html.parser` to parse it." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1558 +msgid "" +"The code handling the FTP protocol cannot differentiate between a file and a " +"directory. This can lead to unexpected behavior when attempting to read a " +"URL that points to a file that is not accessible. If the URL ends in a ``/" +"``, it is assumed to refer to a directory and will be handled accordingly. " +"But if an attempt to read a file leads to a 550 error (meaning the URL " +"cannot be found or is not accessible, often for permission reasons), then " +"the path is treated as a directory in order to handle the case when a " +"directory is specified by a URL but the trailing ``/`` has been left off. " +"This can cause misleading results when you try to fetch a file whose read " +"permissions make it inaccessible; the FTP code will try to read it, fail " +"with a 550 error, and then perform a directory listing for the unreadable " +"file. If fine-grained control is needed, consider using the :mod:`ftplib` " +"module, subclassing :class:`FancyURLopener`, or changing *_urlopener* to " +"meet your needs." +msgstr "" + +#: ../Doc/library/urllib.request.rst:1575 +msgid ":mod:`urllib.response` --- Response classes used by urllib" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1580 +msgid "" +"The :mod:`urllib.response` module defines functions and classes which define " +"a minimal file like interface, including ``read()`` and ``readline()``. The " +"typical response object is an addinfourl instance, which defines an " +"``info()`` method and that returns headers and a ``geturl()`` method that " +"returns the url. Functions defined by this module are used internally by " +"the :mod:`urllib.request` module." +msgstr "" diff --git a/library/urllib.robotparser.po b/library/urllib.robotparser.po new file mode 100644 index 000000000..efea4df10 --- /dev/null +++ b/library/urllib.robotparser.po @@ -0,0 +1,119 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-01 07:43+0100\n" +"PO-Revision-Date: 2017-12-01 19:44+0100\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.10\n" + +#: ../Doc/library/urllib.robotparser.rst:2 +msgid ":mod:`urllib.robotparser` --- Parser for robots.txt" +msgstr ":mod:`urllib.robotparser` — Analyseur de fichiers *robots.txt*" + +#: ../Doc/library/urllib.robotparser.rst:10 +msgid "**Source code:** :source:`Lib/urllib/robotparser.py`" +msgstr "**Code source :** :source:`Lib/urllib/robotparser.py`" + +#: ../Doc/library/urllib.robotparser.rst:20 +msgid "" +"This module provides a single class, :class:`RobotFileParser`, which answers " +"questions about whether or not a particular user agent can fetch a URL on " +"the Web site that published the :file:`robots.txt` file. For more details " +"on the structure of :file:`robots.txt` files, see http://www.robotstxt.org/" +"orig.html." +msgstr "" +"Ce module fournit une simple classe, :class:`RobotFileParser`, qui permet de " +"savoir si un *user-agent* particulier peut accéder à une URL du site web qui " +"a publié ce fichier :file:`robots.txt`. Pour plus de détails sur la " +"structure des fichiers :file:`robots.txt`, voir http://www.robotstxt.org/" +"orig.html." + +#: ../Doc/library/urllib.robotparser.rst:28 +msgid "" +"This class provides methods to read, parse and answer questions about the :" +"file:`robots.txt` file at *url*." +msgstr "" +"Cette classe fournit des méthodes pour lire, analyser et répondre aux " +"questions à propos du fichier :file:`robots.txt` disponible à l'adresse " +"*url*." + +#: ../Doc/library/urllib.robotparser.rst:33 +msgid "Sets the URL referring to a :file:`robots.txt` file." +msgstr "Modifie l'URL référençant le fichier :file:`robots.txt`." + +#: ../Doc/library/urllib.robotparser.rst:37 +msgid "Reads the :file:`robots.txt` URL and feeds it to the parser." +msgstr "" +"Lit le fichier :file:`robots.txt` depuis son URL et envoie le contenu à " +"l'analyseur." + +#: ../Doc/library/urllib.robotparser.rst:41 +msgid "Parses the lines argument." +msgstr "Analyse les lignes données en argument." + +#: ../Doc/library/urllib.robotparser.rst:45 +msgid "" +"Returns ``True`` if the *useragent* is allowed to fetch the *url* according " +"to the rules contained in the parsed :file:`robots.txt` file." +msgstr "" +"Renvoie ``True`` si *useragent* est autorisé à accéder à *url* selon les " +"règles contenues dans le fichier :file:`robots.txt` analysé." + +#: ../Doc/library/urllib.robotparser.rst:51 +msgid "" +"Returns the time the ``robots.txt`` file was last fetched. This is useful " +"for long-running web spiders that need to check for new ``robots.txt`` files " +"periodically." +msgstr "" +"Renvoie le temps auquel le fichier ``robots.txt`` a été téléchargé pour la " +"dernière fois. Cela est utile pour des *web spiders* de longue durée qui " +"doivent vérifier périodiquement si le fichier est mis à jour." + +#: ../Doc/library/urllib.robotparser.rst:57 +msgid "" +"Sets the time the ``robots.txt`` file was last fetched to the current time." +msgstr "" +"Indique que le fichier ``robots.txt`` a été téléchargé pour la dernière fois " +"au temps courant." + +#: ../Doc/library/urllib.robotparser.rst:62 +msgid "" +"Returns the value of the ``Crawl-delay`` parameter from ``robots.txt`` for " +"the *useragent* in question. If there is no such parameter or it doesn't " +"apply to the *useragent* specified or the ``robots.txt`` entry for this " +"parameter has invalid syntax, return ``None``." +msgstr "" +"Renvoie la valeur du paramètre ``Crawl-delay`` du ``robots.txt`` pour le " +"*useragent* en question. S'il n'y a pas de tel paramètre ou qu'il ne " +"s'applique pas au *useragent* spécifié ou si l'entrée du ``robots.txt`` pour " +"ce paramètre a une syntaxe invalide, renvoie ``None``." + +#: ../Doc/library/urllib.robotparser.rst:71 +msgid "" +"Returns the contents of the ``Request-rate`` parameter from ``robots.txt`` " +"as a :term:`named tuple` ``RequestRate(requests, seconds)``. If there is no " +"such parameter or it doesn't apply to the *useragent* specified or the " +"``robots.txt`` entry for this parameter has invalid syntax, return ``None``." +msgstr "" +"Renvoie le contenu du paramètre ``Request-rate`` du ``robots.txt`` sous la " +"forme d'un :term:`named tuple` ``RequestRate(requests, seconds)``. S'il n'y " +"a pas de tel paramètre ou qu'il ne s'applique pas au *useragent* spécifié ou " +"si l'entrée du ``robots.txt`` pour ce paramètre a une syntaxe invalide, " +"``None`` est renvoyé." + +#: ../Doc/library/urllib.robotparser.rst:80 +msgid "" +"The following example demonstrates basic use of the :class:`RobotFileParser` " +"class::" +msgstr "" +"L'exemple suivant présente une utilisation basique de la classe :class:" +"`RobotFileParser` ::" diff --git a/library/uu.po b/library/uu.po new file mode 100644 index 000000000..953d3f584 --- /dev/null +++ b/library/uu.po @@ -0,0 +1,120 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-09-29 19:14+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/uu.rst:2 +msgid ":mod:`uu` --- Encode and decode uuencode files" +msgstr ":mod:`uu` — Encode et décode les fichiers *uuencode*" + +#: ../Doc/library/uu.rst:9 +msgid "**Source code:** :source:`Lib/uu.py`" +msgstr "**Code source :** :source:`Lib/uu.py`" + +#: ../Doc/library/uu.rst:13 +msgid "" +"This module encodes and decodes files in uuencode format, allowing arbitrary " +"binary data to be transferred over ASCII-only connections. Wherever a file " +"argument is expected, the methods accept a file-like object. For backwards " +"compatibility, a string containing a pathname is also accepted, and the " +"corresponding file will be opened for reading and writing; the pathname " +"``'-'`` is understood to mean the standard input or output. However, this " +"interface is deprecated; it's better for the caller to open the file itself, " +"and be sure that, when required, the mode is ``'rb'`` or ``'wb'`` on Windows." +msgstr "" +"Ce module encode et décode les fichiers au format *uuencode*, permettant à " +"des données binaires d'être transférées lors de connexion ASCII. Pour tous " +"les arguments où un fichier est attendu, les fonctions acceptent un \"objet " +"fichier-compatible\". Pour des raisons de compatibilité avec les anciennes " +"versions de Python, une chaîne de caractères contenant un chemin est aussi " +"acceptée, et le fichier correspondant sera ouvert en lecture et écriture ; " +"le chemin ``'-'`` est considéré comme l'entrée ou la sortie standard. " +"Cependant cette interface est obsolète ; il vaut mieux que l'appelant ouvre " +"le fichier lui-même, en s'assurant si nécessaire que le mode d'ouverture " +"soit ``'rb'`` ou ``'wb'`` sur Windows." + +#: ../Doc/library/uu.rst:26 +msgid "" +"This code was contributed by Lance Ellinghouse, and modified by Jack Jansen." +msgstr "" +"Ce code provient d'une contribution de Lance Ellinghouse et a été modifié " +"par Jack Jansen." + +#: ../Doc/library/uu.rst:28 +msgid "The :mod:`uu` module defines the following functions:" +msgstr "Le module :mod:`uu` définit les fonctions suivantes :" + +#: ../Doc/library/uu.rst:33 +msgid "" +"Uuencode file *in_file* into file *out_file*. The uuencoded file will have " +"the header specifying *name* and *mode* as the defaults for the results of " +"decoding the file. The default defaults are taken from *in_file*, or ``'-'`` " +"and ``0o666`` respectively. If *backtick* is true, zeros are represented by " +"``'`'`` instead of spaces." +msgstr "" +"*Uuencode* le fichier *in_file* dans le fichier *out_file*. Le fichier " +"*uuencodé* contiendra une entête spécifiant les valeurs de *name* et *mode* " +"par défaut pour le décodage du fichier. Par défaut ces valeurs sont prises " +"de *in_file* ou valent respectivement ``'-'`` et ``0o666``. Si *backtick* " +"est vrai, les zéros sont représentés par des ``'`'`` plutôt que des espaces." + +#: ../Doc/library/uu.rst:39 +msgid "Added the *backtick* parameter." +msgstr "Ajout du paramètre *backtick*." + +#: ../Doc/library/uu.rst:45 +msgid "" +"This call decodes uuencoded file *in_file* placing the result on file " +"*out_file*. If *out_file* is a pathname, *mode* is used to set the " +"permission bits if the file must be created. Defaults for *out_file* and " +"*mode* are taken from the uuencode header. However, if the file specified " +"in the header already exists, a :exc:`uu.Error` is raised." +msgstr "" +"Décode le fichier *in_file* et écrit le résultat dans *out_file*. Si " +"*out_file* est un chemin, *mode* est utilisé pour les permissions du fichier " +"lors de sa création. Les valeurs par défaut pour *out_file* et *mode* sont " +"récupérées des entêtes *uuencode*. Cependant, si le fichier spécifié par les " +"entêtes est déjà existant, une exception :exc:`uu.Error` est levée." + +#: ../Doc/library/uu.rst:51 +msgid "" +":func:`decode` may print a warning to standard error if the input was " +"produced by an incorrect uuencoder and Python could recover from that " +"error. Setting *quiet* to a true value silences this warning." +msgstr "" +"La fonction :func:`decode` écrit un avertissement sur la sortie d'erreur si " +"l'entrée contient des erreurs mais que Python a pu s'en sortir. Mettre " +"*quiet* à *True* empêche l'écriture de cet avertissement." + +#: ../Doc/library/uu.rst:58 +msgid "" +"Subclass of :exc:`Exception`, this can be raised by :func:`uu.decode` under " +"various situations, such as described above, but also including a badly " +"formatted header, or truncated input file." +msgstr "" +"Classe fille d':exc:`Exception`, elle peut être levée par :func:`uu.decode` " +"dans différentes situations, tel que décrit plus haut, mais aussi en cas " +"d'entête mal formatée ou d'entrée tronquée." + +#: ../Doc/library/uu.rst:65 +msgid "Module :mod:`binascii`" +msgstr "Module :mod:`binascii`" + +#: ../Doc/library/uu.rst:66 +msgid "" +"Support module containing ASCII-to-binary and binary-to-ASCII conversions." +msgstr "" +"Module secondaire contenant les conversions ASCII vers binaire et binaire " +"vers ASCII." diff --git a/library/uuid.po b/library/uuid.po new file mode 100644 index 000000000..ea30802e5 --- /dev/null +++ b/library/uuid.po @@ -0,0 +1,422 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/uuid.rst:2 +msgid ":mod:`uuid` --- UUID objects according to :rfc:`4122`" +msgstr ":mod:`uuid` — Objets UUID d'après la :rfc:`4122`" + +#: ../Doc/library/uuid.rst:9 +msgid "**Source code:** :source:`Lib/uuid.py`" +msgstr "**Code source :** :source:`Lib/uuid.py`" + +#: ../Doc/library/uuid.rst:13 +msgid "" +"This module provides immutable :class:`UUID` objects (the :class:`UUID` " +"class) and the functions :func:`uuid1`, :func:`uuid3`, :func:`uuid4`, :func:" +"`uuid5` for generating version 1, 3, 4, and 5 UUIDs as specified in :rfc:" +"`4122`." +msgstr "" +"Ce module exporte des objets :class:`UUID` immuables (de la classe :class:" +"`UUID`) et les fonctions :func:`uuid1`, :func:`uuid3`, :func:`uuid4`, :func:" +"`uuid5` permettant de générer des UUID de version 1, 3, 4 et 5 tels que " +"définis dans la :rfc:`4122`." + +#: ../Doc/library/uuid.rst:17 +msgid "" +"If all you want is a unique ID, you should probably call :func:`uuid1` or :" +"func:`uuid4`. Note that :func:`uuid1` may compromise privacy since it " +"creates a UUID containing the computer's network address. :func:`uuid4` " +"creates a random UUID." +msgstr "" +"Utilisez :func:`uuid1` ou :func:`uuid4` si votre but est de produire un " +"identifiant unique. Notez que :func:`uuid1` peut dévoiler des informations " +"personnelles car l'UUID produit contient l'adresse réseau de l'ordinateur. " +"En revanche, :func:`uuid4` génère un UUID aléatoire." + +#: ../Doc/library/uuid.rst:22 +msgid "" +"Depending on support from the underlying platform, :func:`uuid1` may or may " +"not return a \"safe\" UUID. A safe UUID is one which is generated using " +"synchronization methods that ensure no two processes can obtain the same " +"UUID. All instances of :class:`UUID` have an :attr:`is_safe` attribute " +"which relays any information about the UUID's safety, using this enumeration:" +msgstr "" +"En fonction du système d'exploitation, les UUID :func:`uuid1` peuvent ne pas " +"être « sûrs ». Un UUID est considéré sûr s'il est généré avec des techniques " +"de synchronisation qui garantissent que deux processus ne peuvent obtenir le " +"même UUID. Toutes les instances de :class:`UUID` possèdent un attribut :attr:" +"`is_safe` qui indique le niveau de sûreté de l'UUID selon l'énumération " +"suivante :" + +#: ../Doc/library/uuid.rst:34 +msgid "The UUID was generated by the platform in a multiprocessing-safe way." +msgstr "" +"L'UUID a été généré par la plateforme en utilisant une méthode sûre dans un " +"contexte de parallélisme par processus." + +#: ../Doc/library/uuid.rst:38 +msgid "The UUID was not generated in a multiprocessing-safe way." +msgstr "" +"L'UUID n'a pas été généré par une méthode sûre dans un contexte de " +"parallélisme par processus." + +#: ../Doc/library/uuid.rst:42 +msgid "" +"The platform does not provide information on whether the UUID was generated " +"safely or not." +msgstr "" +"La plateforme ne précise pas si l'UUID a été généré de façon sûre ou non." + +#: ../Doc/library/uuid.rst:47 +msgid "" +"Create a UUID from either a string of 32 hexadecimal digits, a string of 16 " +"bytes in big-endian order as the *bytes* argument, a string of 16 bytes in " +"little-endian order as the *bytes_le* argument, a tuple of six integers (32-" +"bit *time_low*, 16-bit *time_mid*, 16-bit *time_hi_version*, 8-bit " +"*clock_seq_hi_variant*, 8-bit *clock_seq_low*, 48-bit *node*) as the " +"*fields* argument, or a single 128-bit integer as the *int* argument. When a " +"string of hex digits is given, curly braces, hyphens, and a URN prefix are " +"all optional. For example, these expressions all yield the same UUID::" +msgstr "" +"Produit un UUID à partir soit d'une chaîne de 32 chiffres hexadécimaux, soit " +"une chaîne de 16 octets gros-boutiste (argument *bytes*), soit une chaîne de " +"16 octets petit-boutiste (argument *bytes_le*), soit un n-uplet de six " +"entiers (32-bit *time_low*, 16-bit *time_mid*, 16-bit *time_hi_version*, 8-" +"bit *clock_seq_hi_variant*, 8-bit *clock_seq_low*, 48-bit *node*) (argument " +"*fields*), soit un unique entier sur 128 bits (argument *int*). Lorsque la " +"fonction reçoit une chaîne de chiffres hexadécimaux, les accolades, les " +"tirets et le préfixe URN sont facultatifs. Par exemple, toutes les " +"expressions ci-dessous génèrent le même UUID ::" + +#: ../Doc/library/uuid.rst:66 +msgid "" +"Exactly one of *hex*, *bytes*, *bytes_le*, *fields*, or *int* must be given. " +"The *version* argument is optional; if given, the resulting UUID will have " +"its variant and version number set according to :rfc:`4122`, overriding bits " +"in the given *hex*, *bytes*, *bytes_le*, *fields*, or *int*." +msgstr "" +"Un seul des arguments *hex*, *bytes*, *bytes_le*, *fields* ou *int* doit " +"être spécifié. L'argument *version* est optionnel : s'il est spécifié, " +"l'UUID généré aura pour numéro de version et de variante la valeur indiquée " +"dans la :rfc:`4122`, remplaçant les bits idoines de *hex*, *bytes*, " +"*bytes_le*, *fields* ou *int*." + +#: ../Doc/library/uuid.rst:71 +msgid "" +"Comparison of UUID objects are made by way of comparing their :attr:`UUID." +"int` attributes. Comparison with a non-UUID object raises a :exc:" +"`TypeError`." +msgstr "" +"La comparaison de deux objets UUID se fait en comparant leurs attributs :" +"attr:`UUID.int`. La comparaison avec un objet autre qu'un UUID lève une " +"exception :exc:`TypeError`." + +#: ../Doc/library/uuid.rst:75 +msgid "" +"``str(uuid)`` returns a string in the form " +"``12345678-1234-5678-1234-567812345678`` where the 32 hexadecimal digits " +"represent the UUID." +msgstr "" +"``str(uuid)`` renvoie une chaîne de caractères de la forme " +"``12345678-1234-5678-1234-567812345678`` représentant l'UUID par une chaîne " +"de 32 chiffres hexadécimaux." + +#: ../Doc/library/uuid.rst:79 +msgid ":class:`UUID` instances have these read-only attributes:" +msgstr "" +"Les instances de :class:`UUID` possèdent les attributs suivants en lecture " +"seule :" + +#: ../Doc/library/uuid.rst:83 +msgid "" +"The UUID as a 16-byte string (containing the six integer fields in big-" +"endian byte order)." +msgstr "" +"L'UUID représenté comme une chaîne de 16 octets (contenant les six champs " +"entiers dans l'ordre gros-boutiste)." + +#: ../Doc/library/uuid.rst:89 +msgid "" +"The UUID as a 16-byte string (with *time_low*, *time_mid*, and " +"*time_hi_version* in little-endian byte order)." +msgstr "" +"L'UUID représenté comme une chaîne de 16 octets (avec *time_low*, *time_mid* " +"et *time_hi_version* dans l'ordre petit-boutiste)." + +#: ../Doc/library/uuid.rst:95 +msgid "" +"A tuple of the six integer fields of the UUID, which are also available as " +"six individual attributes and two derived attributes:" +msgstr "" +"Un n-uplet contenant les six champs entiers de l'UUID, également accessibles " +"en tant que six attributs individuels et deux attributs dérivés :" + +#: ../Doc/library/uuid.rst:99 +msgid "Field" +msgstr "Champ" + +#: ../Doc/library/uuid.rst:99 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/uuid.rst:101 +msgid ":attr:`time_low`" +msgstr ":attr:`time_low`" + +#: ../Doc/library/uuid.rst:101 +msgid "the first 32 bits of the UUID" +msgstr "les 32 premiers bits de l'UUID" + +#: ../Doc/library/uuid.rst:103 +msgid ":attr:`time_mid`" +msgstr ":attr:`time_mid`" + +#: ../Doc/library/uuid.rst:103 ../Doc/library/uuid.rst:105 +msgid "the next 16 bits of the UUID" +msgstr "les 16 bits suivants de l'UUID" + +#: ../Doc/library/uuid.rst:105 +msgid ":attr:`time_hi_version`" +msgstr ":attr:`time_hi_version`" + +#: ../Doc/library/uuid.rst:107 +msgid ":attr:`clock_seq_hi_variant`" +msgstr ":attr:`clock_seq_hi_variant`" + +#: ../Doc/library/uuid.rst:107 ../Doc/library/uuid.rst:109 +msgid "the next 8 bits of the UUID" +msgstr "les 8 bits suivants de l'UUID" + +#: ../Doc/library/uuid.rst:109 +msgid ":attr:`clock_seq_low`" +msgstr ":attr:`clock_seq_low`" + +#: ../Doc/library/uuid.rst:111 +msgid ":attr:`node`" +msgstr ":attr:`node`" + +#: ../Doc/library/uuid.rst:111 +msgid "the last 48 bits of the UUID" +msgstr "les derniers 48 bits de l'UUID" + +#: ../Doc/library/uuid.rst:113 +msgid ":attr:`time`" +msgstr ":attr:`time`" + +#: ../Doc/library/uuid.rst:113 +msgid "the 60-bit timestamp" +msgstr "l'horodatage sur 60 bits" + +#: ../Doc/library/uuid.rst:115 +msgid ":attr:`clock_seq`" +msgstr ":attr:`clock_seq`" + +#: ../Doc/library/uuid.rst:115 +msgid "the 14-bit sequence number" +msgstr "le numéro de séquence sur 14 bits" + +#: ../Doc/library/uuid.rst:121 +msgid "The UUID as a 32-character hexadecimal string." +msgstr "" +"Représentation de l'UUID sous forme d'une chaîne de 32 chiffres hexadécimaux." + +#: ../Doc/library/uuid.rst:126 +msgid "The UUID as a 128-bit integer." +msgstr "Représentation de l'UUId sous forme d'un entier de 128 bits." + +#: ../Doc/library/uuid.rst:131 +msgid "The UUID as a URN as specified in :rfc:`4122`." +msgstr "" +"Représentation de l'UUID sous forme d'URN tel que spécifié dans la :rfc:" +"`4122`." + +#: ../Doc/library/uuid.rst:136 +msgid "" +"The UUID variant, which determines the internal layout of the UUID. This " +"will be one of the constants :const:`RESERVED_NCS`, :const:`RFC_4122`, :" +"const:`RESERVED_MICROSOFT`, or :const:`RESERVED_FUTURE`." +msgstr "" +"Variante de l'UUID. Celle-ci détermine l'agencement interne de l'UUID. Les " +"valeurs possibles sont les constantes suivantes : :const:`RESERVED_NCS`, :" +"const:`RFC_4122`, :const:`RESERVED_MICROSOFT` ou :const:`RESERVED_FUTURE`." + +#: ../Doc/library/uuid.rst:143 +msgid "" +"The UUID version number (1 through 5, meaningful only when the variant is :" +"const:`RFC_4122`)." +msgstr "" +"Numéro de version de l'UUID (de 1 à 5). Cette valeur n'a de sens que dans le " +"cas de la variante :const:`RFC_4122`." + +#: ../Doc/library/uuid.rst:148 +msgid "" +"An enumeration of :class:`SafeUUID` which indicates whether the platform " +"generated the UUID in a multiprocessing-safe way." +msgstr "" +"Valeur de l'énumération :class:`SafeUUID` indiquant si la plateforme a " +"généré l'UUID d'une façon sûre dans un contexte de parallélisme par " +"processus." + +#: ../Doc/library/uuid.rst:153 +msgid "The :mod:`uuid` module defines the following functions:" +msgstr "Le module :mod:`uu` définit les fonctions suivantes :" + +#: ../Doc/library/uuid.rst:158 +msgid "" +"Get the hardware address as a 48-bit positive integer. The first time this " +"runs, it may launch a separate program, which could be quite slow. If all " +"attempts to obtain the hardware address fail, we choose a random 48-bit " +"number with the multicast bit (least significant bit of the first octet) set " +"to 1 as recommended in :rfc:`4122`. \"Hardware address\" means the MAC " +"address of a network interface. On a machine with multiple network " +"interfaces, universally administered MAC addresses (i.e. where the second " +"least significant bit of the first octet is *unset*) will be preferred over " +"locally administered MAC addresses, but with no other ordering guarantees." +msgstr "" +"Renvoie l'adresse réseau matérielle sous forme d'un entier positif sur 48 " +"bits. Cette fonction peut faire appel à un programme externe relativement " +"lent lors de sa première exécution. Si toutes les tentatives d'obtenir " +"l'adresse matérielle échouent, un nombre aléatoire sur 48 bit avec le bit de " +"*multicast* (bit de poids faible du premier octet) à 1 est généré, comme " +"recommandé par la :rfc:`4122`. Ici, « adresse matérielle » correspond à " +"l'adresse MAC d'une interface réseau. Sur une machine avec plusieurs " +"interfaces réseau, les adresses MAC de type UUA (*universally administered " +"address*, pour lesquelles le second bit de poids faible est à zéro) sont " +"prioritaires par rapport aux autres adresses MAC. Aucune autre garantie " +"n'est donnée sur l'ordre dans lequel les interfaces sont choisies." + +#: ../Doc/library/uuid.rst:168 +msgid "" +"Universally administered MAC addresses are preferred over locally " +"administered MAC addresses, since the former are guaranteed to be globally " +"unique, while the latter are not." +msgstr "" +"Les adresses MAC de type UUA sont préférées par rapport aux adresses locales " +"car ces dernières ne sont pas nécessairement uniques." + +#: ../Doc/library/uuid.rst:178 +msgid "" +"Generate a UUID from a host ID, sequence number, and the current time. If " +"*node* is not given, :func:`getnode` is used to obtain the hardware address. " +"If *clock_seq* is given, it is used as the sequence number; otherwise a " +"random 14-bit sequence number is chosen." +msgstr "" +"Génère un UUID à partir d'un identifiant hôte, d'un numéro de séquence et de " +"l'heure actuelle. Si *node* n'est pas spécifié, la fonction :func:`getnode` " +"est appelée pour obtenir l'adresse matérielle. *clock_seq* est utilisé comme " +"numéro de séquence s'il est spécifié, sinon un numéro aléatoire sur 14 bits " +"est utilisé à la place." + +#: ../Doc/library/uuid.rst:188 +msgid "" +"Generate a UUID based on the MD5 hash of a namespace identifier (which is a " +"UUID) and a name (which is a string)." +msgstr "" +"Génère un UUID à partir de l'empreinte MD5 de l'identifiant d'un espace de " +"nom (un UUID) et d'un nom (une chaîne de caractères)." + +#: ../Doc/library/uuid.rst:196 +msgid "Generate a random UUID." +msgstr "Génère un UUID aléatoire." + +#: ../Doc/library/uuid.rst:203 +msgid "" +"Generate a UUID based on the SHA-1 hash of a namespace identifier (which is " +"a UUID) and a name (which is a string)." +msgstr "" +"Génère un UUID à partir de l'empreinte SHA-1 de l'identifiant d'un espace de " +"nom (un UUID) et d'un nom (une chaîne de caractères)." + +#: ../Doc/library/uuid.rst:208 +msgid "" +"The :mod:`uuid` module defines the following namespace identifiers for use " +"with :func:`uuid3` or :func:`uuid5`." +msgstr "" +"Le module :mod:`uuid` définit les identifiants d'espaces de noms suivants " +"(pour :func:`uuid3` et :func:`uuid5`)." + +#: ../Doc/library/uuid.rst:214 +msgid "" +"When this namespace is specified, the *name* string is a fully-qualified " +"domain name." +msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être un nom de " +"domaine pleinement qualifié (souvent indiqué en anglais par *FQDN*)." + +#: ../Doc/library/uuid.rst:220 +msgid "When this namespace is specified, the *name* string is a URL." +msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être une URL." + +#: ../Doc/library/uuid.rst:225 +msgid "When this namespace is specified, the *name* string is an ISO OID." +msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être un " +"OID ISO." + +#: ../Doc/library/uuid.rst:230 +msgid "" +"When this namespace is specified, the *name* string is an X.500 DN in DER or " +"a text output format." +msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être un " +"DN X.500 au format texte ou DER." + +#: ../Doc/library/uuid.rst:233 +msgid "" +"The :mod:`uuid` module defines the following constants for the possible " +"values of the :attr:`variant` attribute:" +msgstr "" +"Le module :mod:`uuid` définit les constantes suivantes correspondant aux " +"valeurs autorisées pour l'attribut :attr:`variant` :" + +#: ../Doc/library/uuid.rst:239 +msgid "Reserved for NCS compatibility." +msgstr "Réservé pour la compatibilité NCS." + +#: ../Doc/library/uuid.rst:244 +msgid "Specifies the UUID layout given in :rfc:`4122`." +msgstr "Utilise l'agencement des UUID de la :rfc:`4122`." + +#: ../Doc/library/uuid.rst:249 +msgid "Reserved for Microsoft compatibility." +msgstr "Réservé pour la compatibilité Microsoft." + +#: ../Doc/library/uuid.rst:254 +msgid "Reserved for future definition." +msgstr "Réservé pour un usage futur." + +#: ../Doc/library/uuid.rst:260 +msgid ":rfc:`4122` - A Universally Unique IDentifier (UUID) URN Namespace" +msgstr ":rfc:`4122` – *A Universally Unique IDentifier (UUID) URN Namespace*" + +#: ../Doc/library/uuid.rst:260 +msgid "" +"This specification defines a Uniform Resource Name namespace for UUIDs, the " +"internal format of UUIDs, and methods of generating UUIDs." +msgstr "" +"Cette spécification (en anglais) définit un espace de noms *Uniform Resource " +"Name* pour les UUID, leur format interne et les méthodes permettant de les " +"générer." + +#: ../Doc/library/uuid.rst:267 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/uuid.rst:269 +msgid "Here are some examples of typical usage of the :mod:`uuid` module::" +msgstr "" +"Voici quelques exemples classiques d'utilisation du module :mod:`uuid` ::" diff --git a/library/venv.po b/library/venv.po new file mode 100644 index 000000000..2ae5aef1e --- /dev/null +++ b/library/venv.po @@ -0,0 +1,710 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-03-21 21:16+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/venv.rst:2 +msgid ":mod:`venv` --- Creation of virtual environments" +msgstr ":mod:`venv` — Création d'environnements virtuels" + +#: ../Doc/library/venv.rst:12 +msgid "**Source code:** :source:`Lib/venv/`" +msgstr "**Code source :** :source:`Lib/venv/`" + +#: ../Doc/library/venv.rst:18 +msgid "" +"The :mod:`venv` module provides support for creating lightweight \"virtual " +"environments\" with their own site directories, optionally isolated from " +"system site directories. Each virtual environment has its own Python binary " +"(which matches the version of the binary that was used to create this " +"environment) and can have its own independent set of installed Python " +"packages in its site directories." +msgstr "" +"Le module :mod:`venv` permet de créer des \"environnements virtuels\" légers " +"avec leurs propres dossiers ``site``, optionnellement isolés des dossiers " +"``site`` système. Chaque environnement virtuel a son propre binaire Python " +"(qui correspond à la version du binaire qui a été utilisée pour créer cet " +"environnement) et peut avoir sa propre liste de paquets Python installés " +"dans ses propres dossiers ``site``." + +#: ../Doc/library/venv.rst:25 +msgid "See :pep:`405` for more information about Python virtual environments." +msgstr "" +"Voir la :pep:`405` pour plus d'informations à propos des environnements " +"virtuels Python." + +#: ../Doc/library/venv.rst:29 +msgid "" +"`Python Packaging User Guide: Creating and using virtual environments " +"`__" +msgstr "" +"`Guide Utilisateur de l'Empaquetage Python : Créer et utiliser des " +"environnements virtuels `__" + +#: ../Doc/library/venv.rst:33 +msgid "" +"The ``pyvenv`` script has been deprecated as of Python 3.6 in favor of using " +"``python3 -m venv`` to help prevent any potential confusion as to which " +"Python interpreter a virtual environment will be based on." +msgstr "" +"Le script ``pyenv`` est obsolète depuis Python 3.6 et a été remplacé par " +"``python3 -m venv``." + +#: ../Doc/library/venv.rst:39 +msgid "Creating virtual environments" +msgstr "Création d'environnements virtuels" + +#: ../Doc/using/venv-create.inc:1 +msgid "" +"Creation of :ref:`virtual environments ` is done by executing the " +"command ``venv``::" +msgstr "" +"La création d':ref:`environnements virtuels ` est faite en " +"exécutant la commande ``venv`` ::" + +#: ../Doc/using/venv-create.inc:6 +msgid "" +"Running this command creates the target directory (creating any parent " +"directories that don't exist already) and places a ``pyvenv.cfg`` file in it " +"with a ``home`` key pointing to the Python installation from which the " +"command was run. It also creates a ``bin`` (or ``Scripts`` on Windows) " +"subdirectory containing a copy/symlink of the Python binary/binaries (as " +"appropriate for the platform or arguments used at environment creation " +"time). It also creates an (initially empty) ``lib/pythonX.Y/site-packages`` " +"subdirectory (on Windows, this is ``Lib\\site-packages``). If an existing " +"directory is specified, it will be re-used." +msgstr "" +"Lancer cette commande crée le dossier du **venv** (en créant tous les " +"dossiers parents qui n'existent pas déjà) et crée un fichier ``pyenv.cfg`` à " +"l’intérieur de ce dossier avec une clé ``home`` qui pointe sur " +"l'installation Python depuis laquelle cette commande a été lancée. Il crée " +"aussi un sous-dossier ``bin`` (ou ``Scripts`` sur Windows) contenant une " +"copie (ou un lien symbolique) du ou des binaire ``python`` (dépend de la " +"plateforme et des paramètres donnés à la création de l'environnement). Il " +"crée aussi un sous-dossier (initialement vide) ``lib/pythonX.Y/site-" +"packages`` (Sur Windows, c'est ``Lib\\site-packages``). Si un dossier " +"existant est spécifié, il sera réutilisé." + +#: ../Doc/using/venv-create.inc:16 +msgid "" +"``pyvenv`` was the recommended tool for creating virtual environments for " +"Python 3.3 and 3.4, and is `deprecated in Python 3.6 `_." +msgstr "" +"``pyvenv`` était l'outil recommandé pour créer des environnements sous " +"Python 3.3 et 3.4, et est `obsolète depuis Python 3.6 `_." + +#: ../Doc/using/venv-create.inc:21 +msgid "" +"The use of ``venv`` is now recommended for creating virtual environments." +msgstr "" +"L'utilisation de ``venv`` est maintenant recommandée pour créer vos " +"environnements virtuels." + +#: ../Doc/using/venv-create.inc:26 +msgid "On Windows, invoke the ``venv`` command as follows::" +msgstr "Sur Windows, appelez la commande ``venv`` comme suit ::" + +#: ../Doc/using/venv-create.inc:30 +msgid "" +"Alternatively, if you configured the ``PATH`` and ``PATHEXT`` variables for " +"your :ref:`Python installation `::" +msgstr "" +"Alternativement, si vous avez configuré les variables ``PATH`` et " +"``PATHEXT`` pour votre :ref:`installation Python ` ::" + +#: ../Doc/using/venv-create.inc:35 +msgid "The command, if run with ``-h``, will show the available options::" +msgstr "" +"La commande, si lancée avec ``-h``, montrera les options disponibles ::" + +#: ../Doc/using/venv-create.inc:67 +msgid "" +"Installs pip by default, added the ``--without-pip`` and ``--copies`` " +"options" +msgstr "" +"Installe pip par défaut, ajout des options ``--without-pip`` et ``--copies``" + +#: ../Doc/using/venv-create.inc:71 +msgid "" +"In earlier versions, if the target directory already existed, an error was " +"raised, unless the ``--clear`` or ``--upgrade`` option was provided." +msgstr "" +"Dans les versions précédentes, si le dossier de destination existait déjà, " +"une erreur était levée, sauf si l'option ``--clear`` ou ``--upgrade`` était " +"incluse." + +#: ../Doc/using/venv-create.inc:76 +msgid "" +"While symlinks are supported on Windows, they are not recommended. Of " +"particular note is that double-clicking ``python.exe`` in File Explorer will " +"resolve the symlink eagerly and ignore the virtual environment." +msgstr "" +"Bien que les liens symboliques soient pris en charge sous Windows, ils ne " +"sont pas recommandés. Il est particulièrement à noter que le double-clic sur " +"``python.exe`` dans l'Explorateur de fichiers suivra le lien symbolique et " +"ignorera l'environnement virtuel." + +#: ../Doc/using/venv-create.inc:80 +msgid "" +"The created ``pyvenv.cfg`` file also includes the ``include-system-site-" +"packages`` key, set to ``true`` if ``venv`` is run with the ``--system-site-" +"packages`` option, ``false`` otherwise." +msgstr "" +"Le fichier crée ``pyenv.cfg`` inclus aussi la clé ``include-system-site-" +"packages``, dont la valeur est ``true`` si ``venv`` est lancé avec l'option " +"``--system-site-packages``, sinon sa valeur est ``false``." + +#: ../Doc/using/venv-create.inc:84 +msgid "" +"Unless the ``--without-pip`` option is given, :mod:`ensurepip` will be " +"invoked to bootstrap ``pip`` into the virtual environment." +msgstr "" +"Sauf si l'option ``--without-pip`` est incluse, :mod:`ensurepip` sera " +"invoqué pour amorcer ``pip`` dans l'environnement virtuel." + +#: ../Doc/using/venv-create.inc:87 +msgid "" +"Multiple paths can be given to ``venv``, in which case an identical virtual " +"environment will be created, according to the given options, at each " +"provided path." +msgstr "" +"Plusieurs chemins peuvent être donnés à ``venv``, et dans ce cas un " +"environnement virtuel sera créé, en fonction des options incluses, à chaque " +"chemin donné." + +#: ../Doc/using/venv-create.inc:91 +msgid "" +"Once a virtual environment has been created, it can be \"activated\" using a " +"script in the virtual environment's binary directory. The invocation of the " +"script is platform-specific (`` must be replaced by the path of the " +"directory containing the virtual environment):" +msgstr "" +"Une fois qu'un environnement virtuel est créé, il peut être \"activé\" en " +"utilisant un script dans le dossier binaire de l'environnement virtuel. " +"L'invocation de ce script est spécifique à chaque plateforme (`` doit " +"être remplacé par le chemin d'accès du répertoire contenant l'environnement " +"virtuel) :" + +#: ../Doc/using/venv-create.inc:97 +msgid "Platform" +msgstr "Plateforme" + +#: ../Doc/using/venv-create.inc:97 +msgid "Shell" +msgstr "Invite de commande" + +#: ../Doc/using/venv-create.inc:97 +msgid "Command to activate virtual environment" +msgstr "Commande pour activer l'environnement virtuel" + +#: ../Doc/using/venv-create.inc:99 +msgid "Posix" +msgstr "Posix" + +#: ../Doc/using/venv-create.inc:99 +msgid "bash/zsh" +msgstr "bash/zsh" + +#: ../Doc/using/venv-create.inc:99 +msgid "$ source /bin/activate" +msgstr "``$ source /bin/activate``" + +#: ../Doc/using/venv-create.inc:101 +msgid "fish" +msgstr "fish" + +#: ../Doc/using/venv-create.inc:101 +msgid "$ . /bin/activate.fish" +msgstr "``$ . /bin/activate.fish``" + +#: ../Doc/using/venv-create.inc:103 +msgid "csh/tcsh" +msgstr "csh/tcsh" + +#: ../Doc/using/venv-create.inc:103 +msgid "$ source /bin/activate.csh" +msgstr "``$ source /bin/activate.csh``" + +#: ../Doc/using/venv-create.inc:105 +msgid "Windows" +msgstr "Windows" + +#: ../Doc/using/venv-create.inc:105 +msgid "cmd.exe" +msgstr "cmd.exe" + +#: ../Doc/using/venv-create.inc:105 +msgid "C:\\\\> \\\\Scripts\\\\activate.bat" +msgstr "``C:\\\\{venv}\\\\Scripts\\\\activate.bat``" + +#: ../Doc/using/venv-create.inc:107 +msgid "PowerShell" +msgstr "PowerShell" + +#: ../Doc/using/venv-create.inc:107 +msgid "PS C:\\\\> \\\\Scripts\\\\Activate.ps1" +msgstr "``PS C:\\\\> \\\\Scripts\\\\Activate.ps1``" + +#: ../Doc/using/venv-create.inc:110 +msgid "" +"You don't specifically *need* to activate an environment; activation just " +"prepends the virtual environment's binary directory to your path, so that " +"\"python\" invokes the virtual environment's Python interpreter and you can " +"run installed scripts without having to use their full path. However, all " +"scripts installed in a virtual environment should be runnable without " +"activating it, and run with the virtual environment's Python automatically." +msgstr "" +"Vous ne devez pas spécialement activer un environnement ; l'activation " +"ajoute juste le chemin du dossier de binaires de votre environnement virtuel " +"à votre PATH, pour que \"python\" invoque l’interpréteur Python de " +"l'environnement virtuel et que vous puissiez lancer des scripts installés " +"sans avoir à utiliser leur chemin complet. Cependant, tous les scripts " +"installés dans un environnement virtuel devraient être exécutables sans " +"l'activer, et se lancer avec l'environnement virtuel Python automatiquement." + +#: ../Doc/using/venv-create.inc:117 +msgid "" +"You can deactivate a virtual environment by typing \"deactivate\" in your " +"shell. The exact mechanism is platform-specific: for example, the Bash " +"activation script defines a \"deactivate\" function, whereas on Windows " +"there are separate scripts called ``deactivate.bat`` and ``Deactivate.ps1`` " +"which are installed when the virtual environment is created." +msgstr "" +"Vous pouvez désactiver un environnement virtuel en écrivant \"**deactivate**" +"\" dans votre shell. Le mécanisme est spécifique à chaque plateforme : Par " +"exemple, le script d'activation pour Bash défini une fonction " +"\"**deactivate**\", alors que sur Windows il y a des scripts séparés appelés " +"``deactivate.bat`` et ``Deactivate.ps1`` qui sont installés quand " +"l'environnement virtuel est créé." + +#: ../Doc/using/venv-create.inc:123 +msgid "``fish`` and ``csh`` activation scripts." +msgstr "Les scripts d'activation pour ``fish`` et ``csh``." + +#: ../Doc/library/venv.rst:46 +msgid "" +"A virtual environment is a Python environment such that the Python " +"interpreter, libraries and scripts installed into it are isolated from those " +"installed in other virtual environments, and (by default) any libraries " +"installed in a \"system\" Python, i.e., one which is installed as part of " +"your operating system." +msgstr "" +"Un environnement virtuel est un environnement Python tel que l'interpréteur " +"Python, les bibliothèques et les scripts installés sont isolés de ceux " +"installés dans d'autres environnements virtuels, et (par défaut) de toutes " +"autres bibliothèques installées dans un Python \"système\", par exemple " +"celui qui est installé avec votre système d'exploitation." + +#: ../Doc/library/venv.rst:52 +msgid "" +"A virtual environment is a directory tree which contains Python executable " +"files and other files which indicate that it is a virtual environment." +msgstr "" +"Un environnement virtuel est une arborescence de dossiers qui contiens les " +"fichiers exécutables Python et autres fichiers qui indiquent que c'est un " +"environnement virtuel." + +#: ../Doc/library/venv.rst:55 +msgid "" +"Common installation tools such as ``Setuptools`` and ``pip`` work as " +"expected with virtual environments. In other words, when a virtual " +"environment is active, they install Python packages into the virtual " +"environment without needing to be told to do so explicitly." +msgstr "" +"Les outils d'installations communs comme ``Setuptools`` et ``pip`` " +"fonctionnent comme prévu avec des environnements virtuels. En d'autres " +"termes, quand un environnement virtuel est actif, ils installent les paquets " +"Python dans l'environnement virtuel sans avoir besoin de leur préciser " +"explicitement." + +#: ../Doc/library/venv.rst:60 +msgid "" +"When a virtual environment is active (i.e., the virtual environment's Python " +"interpreter is running), the attributes :attr:`sys.prefix` and :attr:`sys." +"exec_prefix` point to the base directory of the virtual environment, " +"whereas :attr:`sys.base_prefix` and :attr:`sys.base_exec_prefix` point to " +"the non-virtual environment Python installation which was used to create the " +"virtual environment. If a virtual environment is not active, then :attr:`sys." +"prefix` is the same as :attr:`sys.base_prefix` and :attr:`sys.exec_prefix` " +"is the same as :attr:`sys.base_exec_prefix` (they all point to a non-virtual " +"environment Python installation)." +msgstr "" +"Quand un environnement virtuel est actif (Par exemple quand l’interpréteur " +"Python de l'environnement virtuel est lancé), les attributs :attr:`sys." +"prefix` et :attr:`sys.exec_prefix` pointent vers le dossier racine de " +"l'environnement virtuel, alors que :attr:`sys.base_prefix` et :attr:`sys." +"base_exec_prefix` pointent vers l'installation de Python qui n'est pas celle " +"de l'environnement virtuel et qui a été utilisée pour créer l'environnement " +"virtuel. Si un environnement virtuel n'est pas actif, alors :attr:`sys." +"prefix` est égal à :attr:`sys.base_prefix` et :attr:`sys.exec_prefix` est " +"égal à :attr:`sys.base_exec_prefix` (ils pointent tous sur une installation " +"Python qui n'est pas un environnement virtuel)." + +#: ../Doc/library/venv.rst:71 +msgid "" +"When a virtual environment is active, any options that change the " +"installation path will be ignored from all distutils configuration files to " +"prevent projects being inadvertently installed outside of the virtual " +"environment." +msgstr "" +"Quand un environnement virtuel est actif, toute option qui change le chemin " +"d'installation sera ignoré de tous les fichiers de configuration " +"**distutils** pour éviter que des projets soient accidentellement installés " +"en dehors de l'environnement virtuel." + +#: ../Doc/library/venv.rst:76 +msgid "" +"When working in a command shell, users can make a virtual environment active " +"by running an ``activate`` script in the virtual environment's executables " +"directory (the precise filename is shell-dependent), which prepends the " +"virtual environment's directory for executables to the ``PATH`` environment " +"variable for the running shell. There should be no need in other " +"circumstances to activate a virtual environment—scripts installed into " +"virtual environments have a \"shebang\" line which points to the virtual " +"environment's Python interpreter. This means that the script will run with " +"that interpreter regardless of the value of ``PATH``. On Windows, \"shebang" +"\" line processing is supported if you have the Python Launcher for Windows " +"installed (this was added to Python in 3.3 - see :pep:`397` for more " +"details). Thus, double-clicking an installed script in a Windows Explorer " +"window should run the script with the correct interpreter without there " +"needing to be any reference to its virtual environment in ``PATH``." +msgstr "" +"Quand vous travaillez dans une invite de commande **shell**, les " +"utilisateurs peuvent activer un environnement virtuel en lançant un script " +"``activate`` situé dans le dossier des exécutables de l'environnement " +"virtuel (le nom de fichier précis dépends du shell utilisé), ce qui ajoute " +"le dossier des exécutables de l'environnement virtuel dans la variable " +"d'environnement ``PATH``. Il ne devrait jamais y avoir besoin dans d'autre " +"circonstances d'activer un environnement virtuel. Des scripts installés dans " +"un environnement virtuel ont un **shebang** qui pointe vers l’interpréteur " +"Python de l'environnement virtuel. Cela veux dire que le script sera lancé " +"avec cet interpréteur peut importe la valeur de ``PATH``. Sur Windows, le " +"**shebang** est interprété si vous avez le Lanceur Python pour Windows " +"installé (Cela a été ajouté à Python 3.3 -- Voir :pep:`397` pour plus de " +"détails). De ce fait, double cliquer un script installé dans une fenêtre de " +"l'Explorateur Windows devrai lancer le script avec le bon interpréteur sans " +"avoir besoin de référencer son environnement virtuel dans ``PATH``." + +#: ../Doc/library/venv.rst:95 +msgid "API" +msgstr "API" + +#: ../Doc/library/venv.rst:99 +msgid "" +"The high-level method described above makes use of a simple API which " +"provides mechanisms for third-party virtual environment creators to " +"customize environment creation according to their needs, the :class:" +"`EnvBuilder` class." +msgstr "" +"La méthode haut niveau décrite au dessus utilise une API simple qui permet à " +"des créateurs d'environnements virtuels externes de personnaliser la " +"création d'environnements virtuels basés sur leurs besoins, la classe :class:" +"`EnvBuilder`." + +#: ../Doc/library/venv.rst:107 +msgid "" +"The :class:`EnvBuilder` class accepts the following keyword arguments on " +"instantiation:" +msgstr "" +"La classe :class:`EnvBuilder` accepte les arguments suivants lors de " +"l'instanciation :" + +#: ../Doc/library/venv.rst:110 +msgid "" +"``system_site_packages`` -- a Boolean value indicating that the system " +"Python site-packages should be available to the environment (defaults to " +"``False``)." +msgstr "" +"``system_site_packages`` -- Une valeur booléenne qui indique que les site-" +"packages du système Python devraient être disponibles dans l'environnement " +"virtuel (par défaut à ``False``)." + +#: ../Doc/library/venv.rst:113 +msgid "" +"``clear`` -- a Boolean value which, if true, will delete the contents of any " +"existing target directory, before creating the environment." +msgstr "" +"``clear`` -- Une valeur booléenne qui, si vraie, supprimera le contenu de " +"n'importe quel dossier existant cible, avant de créer l'environnement." + +#: ../Doc/library/venv.rst:116 +msgid "" +"``symlinks`` -- a Boolean value indicating whether to attempt to symlink the " +"Python binary rather than copying." +msgstr "" +"``symlinks`` -- Une valeur booléenne qui indique si il faut créer un lien " +"symbolique sur le binaire Python au lieu de le copier." + +#: ../Doc/library/venv.rst:119 +msgid "" +"``upgrade`` -- a Boolean value which, if true, will upgrade an existing " +"environment with the running Python - for use when that Python has been " +"upgraded in-place (defaults to ``False``)." +msgstr "" +"``upgrade`` -- Une valeur booléenne qui, si vraie, mettra à jour un " +"environnement existant avec le Python lancé -- utilisé quand Python à été " +"mis a jour sur place (par défaut à ``False``)." + +#: ../Doc/library/venv.rst:123 +msgid "" +"``with_pip`` -- a Boolean value which, if true, ensures pip is installed in " +"the virtual environment. This uses :mod:`ensurepip` with the ``--default-" +"pip`` option." +msgstr "" +"``with_pip`` -- Une valeur booléenne qui, si vraie, assure que pip est " +"installé dans l'environnement virtuel. Cela utilise :mod:`ensurepip` avec " +"l'option ``--default-pip``." + +#: ../Doc/library/venv.rst:127 +msgid "" +"``prompt`` -- a String to be used after virtual environment is activated " +"(defaults to ``None`` which means directory name of the environment would be " +"used)." +msgstr "" +"``prompt`` -- Une chaine utilisée après que l'environnement virtuel est " +"activé (par défaut à ``None`` ce qui veux dire qu'il utilisera le nom du " +"dossier de l'environnement)." + +#: ../Doc/library/venv.rst:131 ../Doc/library/venv.rst:249 +msgid "Added the ``with_pip`` parameter" +msgstr "Ajout du paramètre ``with_pip``" + +#: ../Doc/library/venv.rst:134 ../Doc/library/venv.rst:252 +msgid "Added the ``prompt`` parameter" +msgstr "Ajout du paramètre ``prompt``" + +#: ../Doc/library/venv.rst:137 +msgid "" +"Creators of third-party virtual environment tools will be free to use the " +"provided ``EnvBuilder`` class as a base class." +msgstr "" +"Les créateurs des outils de création d'environnement virtuel externes seront " +"libres d'utiliser la classe ``EnvBuilder`` en tant que classe de base." + +#: ../Doc/library/venv.rst:140 +msgid "The returned env-builder is an object which has a method, ``create``:" +msgstr "" +"Le **env-builder** retourné est un objet qui a une méthode, ``create`` :" + +#: ../Doc/library/venv.rst:144 +msgid "" +"This method takes as required argument the path (absolute or relative to the " +"current directory) of the target directory which is to contain the virtual " +"environment. The ``create`` method will either create the environment in " +"the specified directory, or raise an appropriate exception." +msgstr "" +"Cette méthode prends en argument obligatoire le chemin (absolu ou relatif " +"par rapport au dossier courant) du dossier cible qui doit contenir " +"l'environnement virtuel. La méthode ``create`` doit soit créer un " +"environnement dans le dossier spécifié, soit lever une exception." + +#: ../Doc/library/venv.rst:150 +msgid "" +"The ``create`` method of the ``EnvBuilder`` class illustrates the hooks " +"available for subclass customization::" +msgstr "" +"La méthode ``create`` de la classe ``EnvBuilder`` illustre les points " +"d'entrées disponibles pour la personnalisation de sous-classes ::" + +#: ../Doc/library/venv.rst:165 +msgid "" +"Each of the methods :meth:`ensure_directories`, :meth:" +"`create_configuration`, :meth:`setup_python`, :meth:`setup_scripts` and :" +"meth:`post_setup` can be overridden." +msgstr "" +"Chacune des méthodes :meth:`ensure_directories`, :meth:" +"`create_configuration`, :meth:`setup_python`, :meth:`setup_scripts` et :meth:" +"`post_setup` peuvent être écrasés." + +#: ../Doc/library/venv.rst:171 +msgid "" +"Creates the environment directory and all necessary directories, and returns " +"a context object. This is just a holder for attributes (such as paths), for " +"use by the other methods. The directories are allowed to exist already, as " +"long as either ``clear`` or ``upgrade`` were specified to allow operating on " +"an existing environment directory." +msgstr "" +"Crée un dossier d'environnement et tous les dossiers nécessaires, et " +"retourne un objet contexte. C'est juste un conteneur pour des attributs " +"(comme des chemins), qui sera utilisé par d'autres méthodes. Ces dossiers " +"peuvent déjà exister. tant que ``clear`` ou ``upgrade`` ont été spécifiés " +"pour permettre de telles opérations dans un dossier d'environnement existant." + +#: ../Doc/library/venv.rst:179 +msgid "Creates the ``pyvenv.cfg`` configuration file in the environment." +msgstr "Crée le fichier de configuration ``pyenv.cfg`` dans l'environnement." + +#: ../Doc/library/venv.rst:183 +msgid "" +"Creates a copy or symlink to the Python executable in the environment. On " +"POSIX systems, if a specific executable ``python3.x`` was used, symlinks to " +"``python`` and ``python3`` will be created pointing to that executable, " +"unless files with those names already exist." +msgstr "" +"Crée une copie ou un lien symbolique vers l'exécutable Python dans " +"l'environnement. Sur les systèmes POSIX, si un exécutable spécifique " +"``python3.x`` a été utilisé, des liens symboliques vers ``python`` et " +"``python3`` seront créés pointant vers cet exécutable, sauf si des fichiers " +"avec ces noms existent déjà." + +#: ../Doc/library/venv.rst:190 +msgid "" +"Installs activation scripts appropriate to the platform into the virtual " +"environment." +msgstr "" +"Installe les scripts d'activation appropriés à la plateforme dans " +"l'environnement virtuel." + +#: ../Doc/library/venv.rst:195 +msgid "" +"A placeholder method which can be overridden in third party implementations " +"to pre-install packages in the virtual environment or perform other post-" +"creation steps." +msgstr "" +"Une méthode qui n'est la que pour se faire surcharger dans des " +"implémentation externes pour pré installer des paquets dans l'environnement " +"virtuel ou pour exécuter des étapes post-création." + +#: ../Doc/library/venv.rst:199 +msgid "" +"Windows now uses redirector scripts for ``python[w].exe`` instead of copying " +"the actual binaries. In 3.7.2 only :meth:`setup_python` does nothing unless " +"running from a build in the source tree." +msgstr "" +"Windows utilise maintenant des scripts de redirection pour ``python[w].exe`` " +"au lieu de copier les fichiers binaires. En 3.7.2 seulement :meth:" +"`setup_python` ne fait rien sauf s'il s'exécute à partir d'un *build* dans " +"l'arborescence source." + +#: ../Doc/library/venv.rst:204 +msgid "" +"Windows copies the redirector scripts as part of :meth:`setup_python` " +"instead of :meth:`setup_scripts`. This was not the case in 3.7.2. When using " +"symlinks, the original executables will be linked." +msgstr "" +"Windows copie les scripts de redirection dans le cadre de :meth:" +"`setup_python` au lieu de :meth:`setup_scripts`. Ce n'était pas le cas en " +"3.7.2. Lorsque vous utilisez des liens symboliques, les exécutables " +"originaux seront liés." + +#: ../Doc/library/venv.rst:209 +msgid "" +"In addition, :class:`EnvBuilder` provides this utility method that can be " +"called from :meth:`setup_scripts` or :meth:`post_setup` in subclasses to " +"assist in installing custom scripts into the virtual environment." +msgstr "" +"De plus, :class:`EnvBuilder` propose cette méthode utilitaire qui peut être " +"appelée de :meth:`setup_scripts` ou :meth:`post_setup` dans des sous classes " +"pour assister dans l'installation de scripts customs dans l'environnement " +"virtuel." + +#: ../Doc/library/venv.rst:215 +msgid "" +"*path* is the path to a directory that should contain subdirectories \"common" +"\", \"posix\", \"nt\", each containing scripts destined for the bin " +"directory in the environment. The contents of \"common\" and the directory " +"corresponding to :data:`os.name` are copied after some text replacement of " +"placeholders:" +msgstr "" +"*path* corresponds au chemin vers le dossier qui contiens les sous dossiers " +"\"**common**\", \"**posix**\", \"**nt**\", chacun contenant des scripts " +"destinés pour le dossier \"**bin**\" dans l'environnement. Le contenu du " +"dossier \"**common**\" et le dossier correspondant à :data:`os.name` sont " +"copiés après quelque remplacement de texte temporaires :" + +#: ../Doc/library/venv.rst:221 +msgid "" +"``__VENV_DIR__`` is replaced with the absolute path of the environment " +"directory." +msgstr "" +"``__VENV_DIR__`` est remplacé avec le chemin absolu du dossier de " +"l'environnement." + +#: ../Doc/library/venv.rst:224 +msgid "" +"``__VENV_NAME__`` is replaced with the environment name (final path segment " +"of environment directory)." +msgstr "" +"``__VENV_NAME__`` est remplacé avec le nom de l'environnement (le dernier " +"segment du chemin vers le dossier de l'environnement)." + +#: ../Doc/library/venv.rst:227 +msgid "" +"``__VENV_PROMPT__`` is replaced with the prompt (the environment name " +"surrounded by parentheses and with a following space)" +msgstr "" +"``__VENV_PROMPT__`` est remplacé par le prompt (nom de l'environnement " +"entouré de parenthèses et avec un espace le suivant)." + +#: ../Doc/library/venv.rst:230 +msgid "" +"``__VENV_BIN_NAME__`` is replaced with the name of the bin directory (either " +"``bin`` or ``Scripts``)." +msgstr "" +"``__VENV_BIN_NAME__`` est remplacé par le nom du dossier **bin** (soit " +"``bin`` soit ``Scripts``)." + +#: ../Doc/library/venv.rst:233 +msgid "" +"``__VENV_PYTHON__`` is replaced with the absolute path of the environment's " +"executable." +msgstr "" +"``__VENV_PYTHON__`` est remplacé avec le chemin absolu de l’exécutable de " +"l'environnement." + +#: ../Doc/library/venv.rst:236 +msgid "" +"The directories are allowed to exist (for when an existing environment is " +"being upgraded)." +msgstr "" +"Les dossiers peuvent exister (pour quand un environnement existant est mis à " +"jour)." + +#: ../Doc/library/venv.rst:239 +msgid "There is also a module-level convenience function:" +msgstr "Il y a aussi une fonction pratique au niveau du module :" + +#: ../Doc/library/venv.rst:244 +msgid "" +"Create an :class:`EnvBuilder` with the given keyword arguments, and call " +"its :meth:`~EnvBuilder.create` method with the *env_dir* argument." +msgstr "" +"Crée une :class:`EnvBuilder` avec les arguments donnés, et appelle sa " +"méthode :meth:`~EnvBuilder.create` avec l'argument *env_dir*." + +#: ../Doc/library/venv.rst:256 +msgid "An example of extending ``EnvBuilder``" +msgstr "Un exemple d'extension de ``EnvBuilder``" + +#: ../Doc/library/venv.rst:258 +msgid "" +"The following script shows how to extend :class:`EnvBuilder` by implementing " +"a subclass which installs setuptools and pip into a created virtual " +"environment::" +msgstr "" +"Le script qui suis montre comment étendre :class:`EnvBuilder` en " +"implémentant une sous-classe qui installe **setuptools** et **pip** dans un " +"environnement créé ::" + +#: ../Doc/library/venv.rst:477 +msgid "" +"This script is also available for download `online `_." +msgstr "" +"Ce script est aussi disponible au téléchargement `en ligne `_." diff --git a/library/warnings.po b/library/warnings.po new file mode 100644 index 000000000..b96f0824c --- /dev/null +++ b/library/warnings.po @@ -0,0 +1,966 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2019-02-26 13:07+0100\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/library/warnings.rst:2 +msgid ":mod:`warnings` --- Warning control" +msgstr ":mod:`warnings` --- Contrôle des alertes" + +#: ../Doc/library/warnings.rst:7 +msgid "**Source code:** :source:`Lib/warnings.py`" +msgstr "**Code source:** :source:`Lib/warnings.py`" + +#: ../Doc/library/warnings.rst:13 +msgid "" +"Warning messages are typically issued in situations where it is useful to " +"alert the user of some condition in a program, where that condition " +"(normally) doesn't warrant raising an exception and terminating the " +"program. For example, one might want to issue a warning when a program uses " +"an obsolete module." +msgstr "" +"Les messages d'avertissement sont généralement émis dans les situations où " +"il est utile d'alerter l'utilisateur d'un problème dans un programme, mais " +"qu'il n'est pas justifié de lever une exception et de le terminer. Par " +"exemple, on peut vouloir émettre un avertissement lorsqu'un programme " +"utilise un module obsolète." + +#: ../Doc/library/warnings.rst:18 +msgid "" +"Python programmers issue warnings by calling the :func:`warn` function " +"defined in this module. (C programmers use :c:func:`PyErr_WarnEx`; see :ref:" +"`exceptionhandling` for details)." +msgstr "" +"Les développeurs Python émettent des avertissements en appelant la fonction :" +"func:`warn` définie dans ce module. (Les développeurs C utilisent :c:func:" +"`PyErr_WarnEx` ; voir :ref:`exceptionhandling` pour plus d'informations)." + +#: ../Doc/library/warnings.rst:22 +msgid "" +"Warning messages are normally written to ``sys.stderr``, but their " +"disposition can be changed flexibly, from ignoring all warnings to turning " +"them into exceptions. The disposition of warnings can vary based on the " +"warning category (see below), the text of the warning message, and the " +"source location where it is issued. Repetitions of a particular warning for " +"the same source location are typically suppressed." +msgstr "" +"Les messages d'avertissement sont normalement écrits sur ``sys.stderr``, " +"mais leurs effets peuvent être modifiés, il est possible d'ignorer tous les " +"avertissements ou au contraire les transformer en exceptions. L'effet des " +"avertissements peut varier en fonction de la catégorie d'avertissement (voir " +"ci-dessous), de son texte et d'où il est émis. Les répétitions d'un même " +"avertissement d'une même source sont généralement ignorés." + +#: ../Doc/library/warnings.rst:29 +msgid "" +"There are two stages in warning control: first, each time a warning is " +"issued, a determination is made whether a message should be issued or not; " +"next, if a message is to be issued, it is formatted and printed using a user-" +"settable hook." +msgstr "" +"La gestion des avertissements se fait en deux étapes : premièrement, chaque " +"fois qu'un avertissement est émis, le module détermine si un message doit " +"être émis ou non ; ensuite, si un message doit être émis, il est formaté et " +"affiché en utilisant une fonction qui peut être définie par l'utilisateur." + +#: ../Doc/library/warnings.rst:33 +msgid "" +"The determination whether to issue a warning message is controlled by the " +"warning filter, which is a sequence of matching rules and actions. Rules can " +"be added to the filter by calling :func:`filterwarnings` and reset to its " +"default state by calling :func:`resetwarnings`." +msgstr "" +"Un filtre (une séquence de règles) est utilisé pour décider si un message " +"d'avertissement doit être émis ou non. Des règles peuvent être ajoutées au " +"filtre en appelant :func:`filterwarnings` et remises à leur état par défaut " +"en appelant :func:`resetwarnings`." + +#: ../Doc/library/warnings.rst:38 +msgid "" +"The printing of warning messages is done by calling :func:`showwarning`, " +"which may be overridden; the default implementation of this function formats " +"the message by calling :func:`formatwarning`, which is also available for " +"use by custom implementations." +msgstr "" +"L'affichage des messages d'avertissement se fait en appelant la fonction :" +"func:`showwarning`, qui peut être redéfinie ; l'implémentation par défaut " +"formate le message en appelant :func:`formatwarning`, qui peut également " +"être réutilisée par une implémentation personnalisée." + +#: ../Doc/library/warnings.rst:44 +msgid "" +":func:`logging.captureWarnings` allows you to handle all warnings with the " +"standard logging infrastructure." +msgstr "" +":func:`logging.captureWarnings` vous permet de gérer tous les avertissements " +"avec l'infrastructure de journalisation standard." + +#: ../Doc/library/warnings.rst:51 +msgid "Warning Categories" +msgstr "Catégories d'avertissement" + +#: ../Doc/library/warnings.rst:53 +msgid "" +"There are a number of built-in exceptions that represent warning categories. " +"This categorization is useful to be able to filter out groups of warnings." +msgstr "" +"Il existe un certain nombre d'exceptions natives qui représentent des " +"catégories d'avertissement. Cette catégorisation est utile pour filtrer les " +"groupes d'avertissements." + +#: ../Doc/library/warnings.rst:56 +msgid "" +"While these are technically :ref:`built-in exceptions `, they are documented here, because conceptually they belong to " +"the warnings mechanism." +msgstr "" +"Bien qu'il s'agisse techniquement d'exceptions, les :ref:`exceptions natives " +"` sont documentées ici, parce qu'elles " +"appartiennent conceptuellement au mécanisme des avertissements." + +#: ../Doc/library/warnings.rst:60 +msgid "" +"User code can define additional warning categories by subclassing one of the " +"standard warning categories. A warning category must always be a subclass " +"of the :exc:`Warning` class." +msgstr "" +"Le code utilisateur peut définir des catégories d'avertissement " +"supplémentaires en héritant l'une des catégories d'avertissement standard. " +"Une catégorie d'avertissement doit toujours hériter de la classe :exc:" +"`Warning`." + +#: ../Doc/library/warnings.rst:64 +msgid "The following warnings category classes are currently defined:" +msgstr "" +"Les classes de catégories d'avertissement suivantes sont actuellement " +"définies :" + +#: ../Doc/library/warnings.rst:69 +msgid "Class" +msgstr "Classe" + +#: ../Doc/library/warnings.rst:69 +msgid "Description" +msgstr "Description" + +#: ../Doc/library/warnings.rst:71 +msgid ":exc:`Warning`" +msgstr ":exc:`Warning`" + +#: ../Doc/library/warnings.rst:71 +msgid "" +"This is the base class of all warning category classes. It is a subclass " +"of :exc:`Exception`." +msgstr "" +"Il s'agit de la classe de base de toutes les classes de catégories " +"d'avertissement. C'est une sous-classe de :exc:`Exception`." + +#: ../Doc/library/warnings.rst:75 +msgid ":exc:`UserWarning`" +msgstr ":exc:`UserWarning`" + +#: ../Doc/library/warnings.rst:75 +msgid "The default category for :func:`warn`." +msgstr "Catégorie par défaut pour :func:`warn`." + +#: ../Doc/library/warnings.rst:77 +msgid ":exc:`DeprecationWarning`" +msgstr ":exc:`DeprecationWarning`" + +#: ../Doc/library/warnings.rst:77 +msgid "" +"Base category for warnings about deprecated features when those warnings are " +"intended for other Python developers (ignored by default, unless triggered " +"by code in ``__main__``)." +msgstr "" +"Catégorie de base pour les avertissements sur les fonctionnalités obsolètes " +"lorsque ces avertissements sont destinés à d'autres développeurs Python " +"(ignorées par défaut, sauf si elles proviennent de ``__main__``)." + +#: ../Doc/library/warnings.rst:82 +msgid ":exc:`SyntaxWarning`" +msgstr ":exc:`SyntaxWarning`" + +#: ../Doc/library/warnings.rst:82 +msgid "Base category for warnings about dubious syntactic features." +msgstr "" +"Catégorie de base pour les avertissements concernant les syntaxes douteuses." + +#: ../Doc/library/warnings.rst:85 +msgid ":exc:`RuntimeWarning`" +msgstr ":exc:`RuntimeWarning`" + +#: ../Doc/library/warnings.rst:85 +msgid "Base category for warnings about dubious runtime features." +msgstr "" +"Catégorie de base pour les avertissements concernant les fonctionnalités " +"douteuses à l'exécution." + +#: ../Doc/library/warnings.rst:88 +msgid ":exc:`FutureWarning`" +msgstr ":exc:`FutureWarning`" + +#: ../Doc/library/warnings.rst:88 +msgid "" +"Base category for warnings about deprecated features when those warnings are " +"intended for end users of applications that are written in Python." +msgstr "" +"Catégorie de base pour les avertissements concernant les fonctionnalités " +"obsolètes lorsque ces avertissements sont destinés aux utilisateurs finaux " +"des programmes écrits en Python." + +#: ../Doc/library/warnings.rst:93 +msgid ":exc:`PendingDeprecationWarning`" +msgstr ":exc:`PendingDeprecationWarning`" + +#: ../Doc/library/warnings.rst:93 +msgid "" +"Base category for warnings about features that will be deprecated in the " +"future (ignored by default)." +msgstr "" +"Catégorie de base pour les avertissements concernant les fonctionnalités qui " +"seront obsolètes dans le futur (ignorée par défaut)." + +#: ../Doc/library/warnings.rst:97 +msgid ":exc:`ImportWarning`" +msgstr ":exc:`ImportWarning`" + +#: ../Doc/library/warnings.rst:97 +msgid "" +"Base category for warnings triggered during the process of importing a " +"module (ignored by default)." +msgstr "" +"Catégorie de base pour les avertissements déclenchés lors de l'importation " +"d'un module (ignoré par défaut)." + +#: ../Doc/library/warnings.rst:101 +msgid ":exc:`UnicodeWarning`" +msgstr ":exc:`UnicodeWarning`" + +#: ../Doc/library/warnings.rst:101 +msgid "Base category for warnings related to Unicode." +msgstr "Catégorie de base pour les avertissements relatifs à Unicode." + +#: ../Doc/library/warnings.rst:104 +msgid ":exc:`BytesWarning`" +msgstr ":exc:`BytesWarning`" + +#: ../Doc/library/warnings.rst:104 +msgid "" +"Base category for warnings related to :class:`bytes` and :class:`bytearray`." +msgstr "" +"Catégorie de base pour les avertissements relatifs à :class:`bytes` et :" +"class:`bytearray`." + +#: ../Doc/library/warnings.rst:107 +msgid ":exc:`ResourceWarning`" +msgstr ":exc:`ResourceWarning`" + +#: ../Doc/library/warnings.rst:107 +msgid "Base category for warnings related to resource usage." +msgstr "" +"Catégorie de base pour les avertissements relatifs à l'utilisation des " +"ressources." + +#: ../Doc/library/warnings.rst:111 +msgid "" +"Previously :exc:`DeprecationWarning` and :exc:`FutureWarning` were " +"distinguished based on whether a feature was being removed entirely or " +"changing its behaviour. They are now distinguished based on their intended " +"audience and the way they're handled by the default warnings filters." +msgstr "" +"Avant, la différence entre :exc:`DeprecationWarning` et :exc:`FutureWarning` " +"était que l'un était dédié aux fonctionnalités retirées, et l'autre aux " +"fonctionnalités modifiées. La différence aujourd'hui est plutôt leur " +"audience et la façon dont ils sont traités par les filtres d'avertissement " +"par défaut." + +#: ../Doc/library/warnings.rst:122 +msgid "The Warnings Filter" +msgstr "Le filtre des avertissements" + +#: ../Doc/library/warnings.rst:124 +msgid "" +"The warnings filter controls whether warnings are ignored, displayed, or " +"turned into errors (raising an exception)." +msgstr "" +"Le filtre des avertissements contrôle si les avertissements sont ignorés, " +"affichés ou transformés en erreurs (ce qui lève une exception)." + +#: ../Doc/library/warnings.rst:127 +msgid "" +"Conceptually, the warnings filter maintains an ordered list of filter " +"specifications; any specific warning is matched against each filter " +"specification in the list in turn until a match is found; the filter " +"determines the disposition of the match. Each entry is a tuple of the form " +"(*action*, *message*, *category*, *module*, *lineno*), where:" +msgstr "" +"Conceptuellement, le filtre d'avertissements maintient une liste ordonnée " +"d'entrées ; chaque avertissement est comparé à chaque entrée de la liste " +"jusqu'à ce qu'une correspondance soit trouvée ; l'entrée détermine l'action " +"à effectuer. Chaque entrée est un quintuplet de la forme (*action*, " +"*message*, *catégorie*, *module*, *lineno*), où :" + +#: ../Doc/library/warnings.rst:133 +msgid "*action* is one of the following strings:" +msgstr "*action* est l'une des chaînes de caractères suivantes :" + +#: ../Doc/library/warnings.rst:136 +msgid "Value" +msgstr "Valeur" + +#: ../Doc/library/warnings.rst:136 +msgid "Disposition" +msgstr "Action" + +#: ../Doc/library/warnings.rst:138 +msgid "``\"default\"``" +msgstr "``\"default\"``" + +#: ../Doc/library/warnings.rst:138 +msgid "" +"print the first occurrence of matching warnings for each location (module + " +"line number) where the warning is issued" +msgstr "" +"affiche la première occurrence des avertissements correspondants pour chaque " +"emplacement (module + numéro de ligne) où l'avertissement est émis" + +#: ../Doc/library/warnings.rst:142 +msgid "``\"error\"``" +msgstr "``\"error\"``" + +#: ../Doc/library/warnings.rst:142 +msgid "turn matching warnings into exceptions" +msgstr "transforme les avertissements correspondants en exceptions" + +#: ../Doc/library/warnings.rst:144 +msgid "``\"ignore\"``" +msgstr "``\"ignore\"``" + +#: ../Doc/library/warnings.rst:144 +msgid "never print matching warnings" +msgstr "ignore les avertissements correspondants" + +#: ../Doc/library/warnings.rst:146 +msgid "``\"always\"``" +msgstr "``\"always\"``" + +#: ../Doc/library/warnings.rst:146 +msgid "always print matching warnings" +msgstr "affiche toujours les avertissements correspondants" + +#: ../Doc/library/warnings.rst:148 +msgid "``\"module\"``" +msgstr "``\"module\"``" + +#: ../Doc/library/warnings.rst:148 +msgid "" +"print the first occurrence of matching warnings for each module where the " +"warning is issued (regardless of line number)" +msgstr "" +"affiche la première occurrence des avertissements correspondants pour chaque " +"module où l'avertissement est émis (quel que soit le numéro de ligne)" + +#: ../Doc/library/warnings.rst:152 +msgid "``\"once\"``" +msgstr "``\"once\"``" + +#: ../Doc/library/warnings.rst:152 +msgid "" +"print only the first occurrence of matching warnings, regardless of location" +msgstr "" +"n'affiche que la première occurrence des avertissements correspondants, quel " +"que soit l'endroit où ils se trouvent" + +#: ../Doc/library/warnings.rst:156 +msgid "" +"*message* is a string containing a regular expression that the start of the " +"warning message must match. The expression is compiled to always be case-" +"insensitive." +msgstr "" +"*message* est une chaîne de caractères contenant une expression régulière " +"avec laquelle le début du message d'avertissement doit correspondre. " +"L'expression est compilée pour être toujours insensible à la casse." + +#: ../Doc/library/warnings.rst:160 +msgid "" +"*category* is a class (a subclass of :exc:`Warning`) of which the warning " +"category must be a subclass in order to match." +msgstr "" +"*category* est une classe (une sous-classe de :exc:`Warning`) dont la " +"catégorie d'avertissement doit être une sous-classe afin de correspondre." + +#: ../Doc/library/warnings.rst:163 +msgid "" +"*module* is a string containing a regular expression that the module name " +"must match. The expression is compiled to be case-sensitive." +msgstr "" +"*module* est une chaîne de caractères contenant une expression régulière " +"avec laquelle le nom du module doit correspondre. L'expression est compilée " +"pour être sensible à la casse." + +#: ../Doc/library/warnings.rst:166 +msgid "" +"*lineno* is an integer that the line number where the warning occurred must " +"match, or ``0`` to match all line numbers." +msgstr "" +"*lineno* est le numéro de ligne d'où l'avertissement doit provenir, ou ``0`` " +"pour correspondre à tous les numéros de ligne." + +#: ../Doc/library/warnings.rst:169 +msgid "" +"Since the :exc:`Warning` class is derived from the built-in :exc:`Exception` " +"class, to turn a warning into an error we simply raise ``category(message)``." +msgstr "" +"Puisque que la classe :exc:`Warning` hérite de la classe :exc:`Exception`, " +"pour transformer un avertissement en erreur, il suffit de lever " +"``category(message)``." + +#: ../Doc/library/warnings.rst:172 +msgid "" +"If a warning is reported and doesn't match any registered filter then the " +"\"default\" action is applied (hence its name)." +msgstr "" +"Si un avertissement est signalé et ne correspond à aucun filtre enregistré, " +"l'action ``default`` est appliquée (d'où son nom)." + +#: ../Doc/library/warnings.rst:179 +msgid "Describing Warning Filters" +msgstr "Rédaction de filtres d'avertissement" + +#: ../Doc/library/warnings.rst:181 +msgid "" +"The warnings filter is initialized by :option:`-W` options passed to the " +"Python interpreter command line and the :envvar:`PYTHONWARNINGS` environment " +"variable. The interpreter saves the arguments for all supplied entries " +"without interpretation in ``sys.warnoptions``; the :mod:`warnings` module " +"parses these when it is first imported (invalid options are ignored, after " +"printing a message to ``sys.stderr``)." +msgstr "" +"Le filtre des avertissements est initialisé par les options :option:`-W` " +"passées à la ligne de commande de l'interpréteur Python et la variable " +"d'environnement :envvar:`PYTHONWARNINGS`. L'interpréteur enregistre les " +"arguments de toutes les entrées fournies sans interprétation dans ``sys." +"warnoptions`` ; le module :mod:`warnings` les analyse lors de la première " +"importation (les options invalides sont ignorées, et un message d'erreur est " +"envoyé à ``sys.stderr``)." + +#: ../Doc/library/warnings.rst:188 +msgid "" +"Individual warnings filters are specified as a sequence of fields separated " +"by colons::" +msgstr "" +"Les filtres d'avertissement individuels sont décrits sous la forme d'une " +"séquence de champs séparés par des deux-points ::" + +#: ../Doc/library/warnings.rst:193 +msgid "" +"The meaning of each of these fields is as described in :ref:`warning-" +"filter`. When listing multiple filters on a single line (as for :envvar:" +"`PYTHONWARNINGS`), the individual filters are separated by commas,and the " +"filters listed later take precedence over those listed before them (as " +"they're applied left-to-right, and the most recently applied filters take " +"precedence over earlier ones)." +msgstr "" +"La signification de chacun de ces champs est décrite dans :ref:`warning-" +"filter`. Plusieurs filtres peuvent être écrits en une seule ligne (comme " +"pour :envvar:`PYTHONWARNINGS`), ils sont dans ce cas séparés par des " +"virgules, et les filtres listés plus en dernier ont priorité sur ceux qui " +"les précèdent (car ils sont appliqués de gauche à droite, et les filtres les " +"plus récemment appliqués ont priorité sur les précédents)." + +#: ../Doc/library/warnings.rst:200 +msgid "" +"Commonly used warning filters apply to either all warnings, warnings in a " +"particular category, or warnings raised by particular modules or packages. " +"Some examples::" +msgstr "" +"Les filtres d'avertissement couramment utilisés s'appliquent à tous les " +"avertissements, aux avertissements d'une catégorie particulière ou aux " +"avertissements émis par certains modules ou paquets. Quelques exemples ::" + +#: ../Doc/library/warnings.rst:217 +msgid "Default Warning Filter" +msgstr "Filtre d'avertissement par défaut" + +#: ../Doc/library/warnings.rst:219 +msgid "" +"By default, Python installs several warning filters, which can be overridden " +"by the :option:`-W` command-line option, the :envvar:`PYTHONWARNINGS` " +"environment variable and calls to :func:`filterwarnings`." +msgstr "" +"Par défaut, Python installe plusieurs filtres d'avertissement, qui peuvent " +"être outrepassés par l'option :option:`-W` en ligne de commande, la variable " +"d'environnement :envvar:`PYTHONWARNINGS` et les appels à :func:" +"`filterwarnings`." + +#: ../Doc/library/warnings.rst:223 +msgid "" +"In regular release builds, the default warning filter has the following " +"entries (in order of precedence)::" +msgstr "" +"Dans les versions standard publiées de Python, le filtre d'avertissement par " +"défaut a les entrées suivantes (par ordre de priorité) ::" + +#: ../Doc/library/warnings.rst:232 +msgid "In debug builds, the list of default warning filters is empty." +msgstr "" +"Dans les versions de débogage, la liste des filtres d'avertissement par " +"défaut est vide." + +#: ../Doc/library/warnings.rst:234 +msgid "" +":exc:`DeprecationWarning` is now ignored by default in addition to :exc:" +"`PendingDeprecationWarning`." +msgstr "" +":exc:`DeprecationWarning` est maintenant ignoré par défaut en plus de :exc:" +"`PendingDeprecationWarning`." + +#: ../Doc/library/warnings.rst:238 +msgid "" +":exc:`DeprecationWarning` is once again shown by default when triggered " +"directly by code in ``__main__``." +msgstr "" +":exc:`DeprecationWarning` est à nouveau affiché par défaut lorsqu'il " +"provient directement de ``__main__``." + +#: ../Doc/library/warnings.rst:242 +msgid "" +":exc:`BytesWarning` no longer appears in the default filter list and is " +"instead configured via :data:`sys.warnoptions` when :option:`-b` is " +"specified twice." +msgstr "" +":exc:`BytesWarning` n'apparaît plus dans la liste de filtres par défaut et " +"est configuré via :data:`sys.warnoptions` lorsque l'option :option:`-b` est " +"donnée deux fois." + +#: ../Doc/library/warnings.rst:251 +msgid "Overriding the default filter" +msgstr "Outrepasser le filtre par défaut" + +#: ../Doc/library/warnings.rst:253 +msgid "" +"Developers of applications written in Python may wish to hide *all* Python " +"level warnings from their users by default, and only display them when " +"running tests or otherwise working on the application. The :data:`sys." +"warnoptions` attribute used to pass filter configurations to the interpreter " +"can be used as a marker to indicate whether or not warnings should be " +"disabled::" +msgstr "" +"Les développeurs d'applications écrites en Python peuvent souhaiter cacher " +"*tous* les avertissements Python à leurs utilisateurs, et ne les afficher " +"que lorsqu'ils exécutent des tests ou travaillent sur l'application. " +"L'attribut :data:`sys.warnoptions` utilisé pour passer les configurations de " +"filtre à l'interpréteur peut être utilisé comme marqueur pour indiquer si " +"les avertissements doivent être ou non désactivés ::" + +#: ../Doc/library/warnings.rst:265 +msgid "" +"Developers of test runners for Python code are advised to instead ensure " +"that *all* warnings are displayed by default for the code under test, using " +"code like::" +msgstr "" +"Les développeurs d'exécuteurs de test pour le code Python sont invités à " +"s'assurer que *tous* les avertissements sont affichés par défaut pour le " +"code en cours de test, en utilisant par exemple ::" + +#: ../Doc/library/warnings.rst:276 +msgid "" +"Finally, developers of interactive shells that run user code in a namespace " +"other than ``__main__`` are advised to ensure that :exc:`DeprecationWarning` " +"messages are made visible by default, using code like the following (where " +"``user_ns`` is the module used to execute code entered interactively)::" +msgstr "" +"Enfin, les développeurs d'interpréteurs de commandes interactifs qui " +"exécutent du code utilisateur dans un espace de nommage autre que " +"``__main__`` sont invités à s'assurer que les messages :exc:" +"`DeprecationWarning` sont rendus visibles par défaut, en utilisant le code " +"suivant (où ``user_ns`` est le module utilisé pour exécuter le code entré " +"interactivement) ::" + +#: ../Doc/library/warnings.rst:289 +msgid "Temporarily Suppressing Warnings" +msgstr "Suppression temporaire des avertissements" + +#: ../Doc/library/warnings.rst:291 +msgid "" +"If you are using code that you know will raise a warning, such as a " +"deprecated function, but do not want to see the warning (even when warnings " +"have been explicitly configured via the command line), then it is possible " +"to suppress the warning using the :class:`catch_warnings` context manager::" +msgstr "" +"Si vous utilisez un code dont vous savez qu'il va déclencher un " +"avertissement, comme une fonction obsolète, mais que vous ne voulez pas voir " +"l'avertissement (même si les avertissements ont été explicitement configurés " +"via la ligne de commande), alors il est possible de supprimer " +"l'avertissement en utilisant le gestionnaire de contexte :class:" +"`catch_warnings` ::" + +#: ../Doc/library/warnings.rst:305 +msgid "" +"While within the context manager all warnings will simply be ignored. This " +"allows you to use known-deprecated code without having to see the warning " +"while not suppressing the warning for other code that might not be aware of " +"its use of deprecated code. Note: this can only be guaranteed in a single-" +"threaded application. If two or more threads use the :class:`catch_warnings` " +"context manager at the same time, the behavior is undefined." +msgstr "" +"Dans le gestionnaire de contexte, tous les avertissements sont simplement " +"ignorés. Ceci vous permet d'utiliser du code déclaré obsolète sans voir " +"l'avertissement tout en ne supprimant pas l'avertissement pour un autre code " +"qui pourrait ne pas être conscient de son utilisation de code déprécié. " +"Remarque : ceci ne peut être garanti que dans une application utilisant un " +"seul fil d'exécution. Si deux ou plusieurs *threads* utilisent le " +"gestionnaire de contexte :class:`catch_warnings` en même temps, le " +"comportement est indéfini." + +#: ../Doc/library/warnings.rst:317 +msgid "Testing Warnings" +msgstr "Tester les avertissements" + +#: ../Doc/library/warnings.rst:319 +msgid "" +"To test warnings raised by code, use the :class:`catch_warnings` context " +"manager. With it you can temporarily mutate the warnings filter to " +"facilitate your testing. For instance, do the following to capture all " +"raised warnings to check::" +msgstr "" +"Pour tester les avertissements générés par le code, utilisez le gestionnaire " +"de contexte :class:`catch_warnings`. Avec lui, vous pouvez temporairement " +"modifier le filtre d'avertissements pour faciliter votre test. Par exemple, " +"procédez comme suit pour capturer tous les avertissements levés à vérifier ::" + +#: ../Doc/library/warnings.rst:339 +msgid "" +"One can also cause all warnings to be exceptions by using ``error`` instead " +"of ``always``. One thing to be aware of is that if a warning has already " +"been raised because of a ``once``/``default`` rule, then no matter what " +"filters are set the warning will not be seen again unless the warnings " +"registry related to the warning has been cleared." +msgstr "" +"Vous pouvez aussi faire en sorte que tous les avertissements soient des " +"exceptions en utilisant ``error`` au lieu de ``always``. Il faut savoir que " +"si un avertissement a déjà été émis à cause d'une règle ``once`` ou " +"``default``, quel que soit le filtre activé, l'avertissement ne sera pas " +"revu à moins que le registre des avertissements lié à l'avertissement ait " +"été vidé." + +#: ../Doc/library/warnings.rst:345 +msgid "" +"Once the context manager exits, the warnings filter is restored to its state " +"when the context was entered. This prevents tests from changing the warnings " +"filter in unexpected ways between tests and leading to indeterminate test " +"results. The :func:`showwarning` function in the module is also restored to " +"its original value. Note: this can only be guaranteed in a single-threaded " +"application. If two or more threads use the :class:`catch_warnings` context " +"manager at the same time, the behavior is undefined." +msgstr "" +"A sa sortie, le gestionnaire de contexte restaure le filtre des " +"avertissements dans l'état où il était au démarrage du contexte. Cela " +"empêche les tests de changer le filtre d'avertissements de manière " +"inattendue entre les tests et d'aboutir à des résultats de test " +"indéterminés. La fonction :func:`showwarning` du module est également " +"restaurée à sa valeur originale. Remarque : ceci ne peut être garanti que " +"dans une application *mono-threadées*. Si deux ou plusieurs fils d'exécution " +"utilisent le gestionnaire de contexte :class:`catch_warnings` en même temps, " +"le comportement est indéfini." + +#: ../Doc/library/warnings.rst:353 +msgid "" +"When testing multiple operations that raise the same kind of warning, it is " +"important to test them in a manner that confirms each operation is raising a " +"new warning (e.g. set warnings to be raised as exceptions and check the " +"operations raise exceptions, check that the length of the warning list " +"continues to increase after each operation, or else delete the previous " +"entries from the warnings list before each new operation)." +msgstr "" +"Lorsque vous testez plusieurs opérations qui provoquent le même type " +"d'avertissement, il est important de les tester d'une manière qui confirme " +"que chaque opération provoque un nouvel avertissement (par exemple, " +"définissez les avertissements comme exceptions et vérifiez que les " +"opérations provoquent des exceptions, vérifiez que la longueur de la liste " +"des avertissements continue à augmenter après chaque opération, ou bien " +"supprimez les entrées précédentes de la liste des avertissements avant " +"chaque nouvelle opération)." + +#: ../Doc/library/warnings.rst:364 +msgid "Updating Code For New Versions of Dependencies" +msgstr "Mise à jour du code pour les nouvelles versions des dépendances" + +#: ../Doc/library/warnings.rst:366 +msgid "" +"Warning categories that are primarily of interest to Python developers " +"(rather than end users of applications written in Python) are ignored by " +"default." +msgstr "" +"Les catégories d'avertissement qui intéressent principalement les " +"développeurs Python (plutôt que les utilisateurs finaux d'applications " +"écrites en Python) sont ignorées par défaut." + +#: ../Doc/library/warnings.rst:369 +msgid "" +"Notably, this \"ignored by default\" list includes :exc:`DeprecationWarning` " +"(for every module except ``__main__``), which means developers should make " +"sure to test their code with typically ignored warnings made visible in " +"order to receive timely notifications of future breaking API changes " +"(whether in the standard library or third party packages)." +msgstr "" +"Notamment, cette liste \"ignorés par défaut\" inclut :exc:" +"`DeprecationWarning` (pour chaque module sauf ``__main__``), ce qui signifie " +"que les développeurs doivent s'assurer de tester leur code avec des " +"avertissements généralement ignorés rendus visibles afin de recevoir des " +"notifications rapides des changements d'API (que ce soit dans la " +"bibliothèque standard ou les paquets tiers)." + +#: ../Doc/library/warnings.rst:375 +msgid "" +"In the ideal case, the code will have a suitable test suite, and the test " +"runner will take care of implicitly enabling all warnings when running tests " +"(the test runner provided by the :mod:`unittest` module does this)." +msgstr "" +"Dans le cas idéal, le code dispose d'une suite de tests appropriée, et le " +"testeur se charge d'activer implicitement tous les avertissements lors de " +"l'exécution des tests (le testeur fourni par le module :mod:`unittest` le " +"fait)." + +#: ../Doc/library/warnings.rst:379 +msgid "" +"In less ideal cases, applications can be checked for use of deprecated " +"interfaces by passing :option:`-Wd <-W>` to the Python interpreter (this is " +"shorthand for :option:`!-W default`) or setting ``PYTHONWARNINGS=default`` " +"in the environment. This enables default handling for all warnings, " +"including those that are ignored by default. To change what action is taken " +"for encountered warnings you can change what argument is passed to :option:`-" +"W` (e.g. :option:`!-W error`). See the :option:`-W` flag for more details on " +"what is possible." +msgstr "" +"Dans des cas moins idéaux, l'utilisation de d'interfaces obsolète peut être " +"testé en passant :option:`-Wd <-W>` à l'interpréteur Python (c'est une " +"abréviation pour :option:`!-W default`) ou en définissant " +"``PYTHONWARNINGS=default`` dans l'environnement. Ceci permet la gestion par " +"défaut de tous les avertissements, y compris ceux qui sont ignorés par " +"défaut. Pour changer l'action prise pour les avertissements rencontrés, vous " +"pouvez changer quel argument est passé à :option:`-W` (par exemple :option:" +"`!-W error`). Voir l'option :option:`-W` pour plus de détails sur ce qui est " +"possible." + +#: ../Doc/library/warnings.rst:392 +msgid "Available Functions" +msgstr "Fonctions disponibles" + +#: ../Doc/library/warnings.rst:397 +msgid "" +"Issue a warning, or maybe ignore it or raise an exception. The *category* " +"argument, if given, must be a warning category class (see above); it " +"defaults to :exc:`UserWarning`. Alternatively *message* can be a :exc:" +"`Warning` instance, in which case *category* will be ignored and ``message." +"__class__`` will be used. In this case the message text will be " +"``str(message)``. This function raises an exception if the particular " +"warning issued is changed into an error by the warnings filter see above. " +"The *stacklevel* argument can be used by wrapper functions written in " +"Python, like this::" +msgstr "" +"Émet, ignore, ou transforme en exception un avertissement. L'argument " +"*category*, s'il est donné, doit être une classe de catégorie " +"d'avertissement (voir ci-dessus) ; et vaut par défaut :exc:`UserWarning`. " +"Aussi *message* peut être une instance de :exc:`Warning', auquel cas " +"*category* sera ignoré et ``message.__class__`` sera utilisé. Dans ce cas, " +"le texte du message sera ``str(message)``. Cette fonction lève une exception " +"si cet avertissement particulier émis est transformé en erreur par le filtre " +"des avertissements, voir ci-dessus. L'argument *stacklevel* peut être " +"utilisé par les fonctions *wrapper* écrites en Python, comme ceci ::" + +#: ../Doc/library/warnings.rst:409 +msgid "" +"This makes the warning refer to :func:`deprecation`'s caller, rather than to " +"the source of :func:`deprecation` itself (since the latter would defeat the " +"purpose of the warning message)." +msgstr "" +"Fait en sorte que l'avertissement se réfère à l'appelant de :func:" +"`deprecation` plutôt qu'à la source de :func:`deprecation` elle-même " +"(puisque celle-ci irait à l'encontre du but du message d'avertissement)." + +#: ../Doc/library/warnings.rst:413 ../Doc/library/warnings.rst:436 +msgid "" +"*source*, if supplied, is the destroyed object which emitted a :exc:" +"`ResourceWarning`." +msgstr "" +"*source*, s'il est fourni, est l'objet détruit qui a émis un :exc:" +"`ResourceWarning`." + +#: ../Doc/library/warnings.rst:416 +msgid "Added *source* parameter." +msgstr "Ajout du paramètre *source*." + +#: ../Doc/library/warnings.rst:422 +msgid "" +"This is a low-level interface to the functionality of :func:`warn`, passing " +"in explicitly the message, category, filename and line number, and " +"optionally the module name and the registry (which should be the " +"``__warningregistry__`` dictionary of the module). The module name defaults " +"to the filename with ``.py`` stripped; if no registry is passed, the warning " +"is never suppressed. *message* must be a string and *category* a subclass " +"of :exc:`Warning` or *message* may be a :exc:`Warning` instance, in which " +"case *category* will be ignored." +msgstr "" +"Il s'agit d'une interface de bas niveau pour la fonctionnalité de :func:" +"`warn`, en passant explicitement le message, la catégorie, le nom de fichier " +"et le numéro de ligne, et éventuellement le nom du module et le registre " +"(qui devrait être le dictionnaire ``__warningregistry__`` du module). Le " +"nom de module par défaut est le nom de fichier sans ``.py`` ; si aucun " +"registre n'est passé, l'avertissement n'est jamais supprimé. *message* doit " +"être une chaîne de caractères et *category* une sous-classe de :exc:" +"`Warning` ou *message* peut être une instance de :exc:`Warning`, auquel cas " +"*category* sera ignoré." + +#: ../Doc/library/warnings.rst:431 +msgid "" +"*module_globals*, if supplied, should be the global namespace in use by the " +"code for which the warning is issued. (This argument is used to support " +"displaying source for modules found in zipfiles or other non-filesystem " +"import sources)." +msgstr "" +"*module_globals*, s'il est fourni, doit être l'espace de nommage global " +"utilisé par le code pour lequel l'avertissement est émis. (Cet argument est " +"utilisé pour afficher les sources des modules trouvés dans les fichiers zip " +"ou d'autres sources d'importation hors du système de fichiers)." + +#: ../Doc/library/warnings.rst:439 +msgid "Add the *source* parameter." +msgstr "Ajout du paramètre *source*." + +#: ../Doc/library/warnings.rst:445 +msgid "" +"Write a warning to a file. The default implementation calls " +"``formatwarning(message, category, filename, lineno, line)`` and writes the " +"resulting string to *file*, which defaults to ``sys.stderr``. You may " +"replace this function with any callable by assigning to ``warnings." +"showwarning``. *line* is a line of source code to be included in the warning " +"message; if *line* is not supplied, :func:`showwarning` will try to read the " +"line specified by *filename* and *lineno*." +msgstr "" +"Écrit un avertissement dans un fichier. L'implémentation par défaut appelle " +"``format warning(message, category, filename, lineno, line)``et écrit la " +"chaîne résultante dans *file*, qui par défaut est ``sys.stderr``. Vous " +"pouvez remplacer cette fonction par n'importe quel appelable en l'affectant " +"à ``warnings.showwarning``. *line* est une ligne de code source à inclure " +"dans le message d'avertissement ; si *line* n'est pas fourni, :func:`show " +"warning` essaiera de lire la ligne spécifiée par *filename* et *lineno*." + +#: ../Doc/library/warnings.rst:456 +msgid "" +"Format a warning the standard way. This returns a string which may contain " +"embedded newlines and ends in a newline. *line* is a line of source code to " +"be included in the warning message; if *line* is not supplied, :func:" +"`formatwarning` will try to read the line specified by *filename* and " +"*lineno*." +msgstr "" +"Formate un avertissement de la manière standard. Ceci renvoie une chaîne " +"pouvant contenir des retours à la ligne se termine par un retour à la " +"ligne. *line* est une ligne de code source à inclure dans le message " +"d'avertissement ; si *line* n'est pas fourni, :func:`formatwarning` essaiera " +"de lire la ligne spécifiée par *filename* et *lineno*." + +#: ../Doc/library/warnings.rst:465 +msgid "" +"Insert an entry into the list of :ref:`warnings filter specifications " +"`. The entry is inserted at the front by default; if " +"*append* is true, it is inserted at the end. This checks the types of the " +"arguments, compiles the *message* and *module* regular expressions, and " +"inserts them as a tuple in the list of warnings filters. Entries closer to " +"the front of the list override entries later in the list, if both match a " +"particular warning. Omitted arguments default to a value that matches " +"everything." +msgstr "" +"Insère une entrée dans la liste de :ref:`warning filter specifications " +"`. L'entrée est insérée à l'avant par défaut ; si *append* " +"est vrai, elle est insérée à la fin. Il vérifie le type des arguments, " +"compile les expressions régulières *message* et *module*, et les insère sous " +"forme de tuple dans la liste des filtres d'avertissements. Les entrées plus " +"proches du début de la liste ont priorité sur les entrées plus loin dans la " +"liste. Les arguments omis ont par défaut une valeur qui correspond à tout." + +#: ../Doc/library/warnings.rst:477 +msgid "" +"Insert a simple entry into the list of :ref:`warnings filter specifications " +"`. The meaning of the function parameters is as for :func:" +"`filterwarnings`, but regular expressions are not needed as the filter " +"inserted always matches any message in any module as long as the category " +"and line number match." +msgstr "" +"Insère une entrée simple dans la liste de :ref:`spécifications du filtre " +"d'avertissements `. La signification des paramètres de " +"fonction est la même que pour :func:`filterwarnings`, mais les expressions " +"régulières ne sont pas nécessaires car le filtre inséré correspond toujours " +"à n'importe quel message dans n'importe quel module tant que la catégorie et " +"le numéro de ligne correspondent." + +#: ../Doc/library/warnings.rst:486 +msgid "" +"Reset the warnings filter. This discards the effect of all previous calls " +"to :func:`filterwarnings`, including that of the :option:`-W` command line " +"options and calls to :func:`simplefilter`." +msgstr "" +"Réinitialise le filtre des avertissements. Ceci supprime l'effet de tous " +"les appels précédents à :func:`filterwarnings`, y compris celui de l'option :" +"option:`-W` des options de ligne de commande et des appels à :func:" +"`simplefilter`." + +#: ../Doc/library/warnings.rst:492 +msgid "Available Context Managers" +msgstr "Gestionnaires de contexte disponibles" + +#: ../Doc/library/warnings.rst:496 +msgid "" +"A context manager that copies and, upon exit, restores the warnings filter " +"and the :func:`showwarning` function. If the *record* argument is :const:" +"`False` (the default) the context manager returns :class:`None` on entry. If " +"*record* is :const:`True`, a list is returned that is progressively " +"populated with objects as seen by a custom :func:`showwarning` function " +"(which also suppresses output to ``sys.stdout``). Each object in the list " +"has attributes with the same names as the arguments to :func:`showwarning`." +msgstr "" +"Un gestionnaire de contexte qui copie et, à la sortie, restaure le filtre " +"des avertissements et la fonction :func:`showwarning`. Si l'argument " +"*record* est :const:`False` (par défaut), le gestionnaire de contexte " +"retourne :class:`None` en entrant. Si *record* est :const:`True`, une liste " +"est renvoyée qui est progressivement remplie d'objets comme vus par une " +"fonction custom :func:`showwarning' (qui supprime également la sortie vers " +"``sys.stdout``). Chaque objet de la liste a des attributs avec les mêmes " +"noms que les arguments de :func:`showwarning`." + +#: ../Doc/library/warnings.rst:505 +msgid "" +"The *module* argument takes a module that will be used instead of the module " +"returned when you import :mod:`warnings` whose filter will be protected. " +"This argument exists primarily for testing the :mod:`warnings` module itself." +msgstr "" +"L'argument *module* prend un module qui sera utilisé à la place du module " +"renvoyé lors de l'importation :mod:`warnings` dont le filtre sera protégé. " +"Cet argument existe principalement pour tester le module :mod:`warnings` lui-" +"même." + +#: ../Doc/library/warnings.rst:512 +msgid "" +"The :class:`catch_warnings` manager works by replacing and then later " +"restoring the module's :func:`showwarning` function and internal list of " +"filter specifications. This means the context manager is modifying global " +"state and therefore is not thread-safe." +msgstr "" +"Le gestionnaire :class:`catch_warnings` fonctionne en remplaçant puis en " +"restaurant plus tard la fonction :func:`showwarning` du module et la liste " +"interne des spécifications du filtre. Cela signifie que le gestionnaire de " +"contexte modifie l'état global et n'est donc pas prévisible avec plusieurs " +"fils d'exécution." diff --git a/library/wave.po b/library/wave.po new file mode 100644 index 000000000..b1f7344ca --- /dev/null +++ b/library/wave.po @@ -0,0 +1,354 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-05-31 15:21+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: ../Doc/library/wave.rst:2 +msgid ":mod:`wave` --- Read and write WAV files" +msgstr ":mod:`wave` --- Lecture et écriture des fichiers WAV" + +#: ../Doc/library/wave.rst:10 +msgid "**Source code:** :source:`Lib/wave.py`" +msgstr "**Code source :** :source:`Lib/wave.py`" + +#: ../Doc/library/wave.rst:14 +msgid "" +"The :mod:`wave` module provides a convenient interface to the WAV sound " +"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:17 +msgid "The :mod:`wave` module defines the following function and exception:" +msgstr "Le module :mod:`wave` définit la fonction et l'exception suivante :" + +#: ../Doc/library/wave.rst:22 +msgid "" +"If *file* is a string, open the file by that name, otherwise treat it as a " +"file-like object. *mode* can be:" +msgstr "" +"Si *file* est une chaîne de caractères, ouvre le fichier sous ce nom, sinon, " +"il est traité comme un objet de type fichier. *mode* peut être :" + +#: ../Doc/library/wave.rst:26 +msgid "``'rb'``" +msgstr "``'rb'``" + +#: ../Doc/library/wave.rst:26 +msgid "Read only mode." +msgstr "Mode lecture seule." + +#: ../Doc/library/wave.rst:29 +msgid "``'wb'``" +msgstr "``'wb'``" + +#: ../Doc/library/wave.rst:29 +msgid "Write only mode." +msgstr "Mode écriture seule." + +#: ../Doc/library/wave.rst:31 +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:33 +msgid "" +"A *mode* of ``'rb'`` returns a :class:`Wave_read` object, while a *mode* of " +"``'wb'`` returns a :class:`Wave_write` object. If *mode* is omitted and a " +"file-like object is passed as *file*, ``file.mode`` is used as the default " +"value for *mode*." +msgstr "" +"Un *mode* ``'rb'`` renvoie un objet :class:`Wave_read`, alors qu'un *mode* " +"``'wb'`` renvoie un objet :class:`Wave_write`. Si *mode* est omis et qu'un " +"objet de type fichier est donné au paramètre *file*, ``file.mode`` est " +"utilisé comme valeur par défaut pour *mode*." + +#: ../Doc/library/wave.rst:38 +msgid "" +"If you pass in a file-like object, the wave object will not close it when " +"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:42 +msgid "" +"The :func:`.open` function may be used in a :keyword:`with` statement. When " +"the :keyword:`!with` block completes, the :meth:`Wave_read.close() ` or :meth:`Wave_write.close() ` " +"method is called." +msgstr "" +"La fonction :func:`.open` peut être utilisée dans une instruction :keyword:" +"`with`. Lorsque le :keyword:`!with` est terminé, la méthode :meth:`Wave_read." +"close() ` ou la méthode :meth:`Wave_write.close() " +"` est appelée." + +#: ../Doc/library/wave.rst:47 ../Doc/library/wave.rst:170 +msgid "Added support for unseekable files." +msgstr "Ajout de la gestion des fichiers non navigables." + +#: ../Doc/library/wave.rst:52 +msgid "A synonym for :func:`.open`, maintained for backwards compatibility." +msgstr "Un synonyme de :func:`.open`, maintenu pour la rétrocompatibilité." + +#: ../Doc/library/wave.rst:59 +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:66 +msgid "Wave_read Objects" +msgstr "Objets Wave_read" + +#: ../Doc/library/wave.rst:68 +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:73 +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:79 +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:84 +msgid "Returns sample width in bytes." +msgstr "Renvoie la largeur de l'échantillon en octets." + +#: ../Doc/library/wave.rst:89 +msgid "Returns sampling frequency." +msgstr "Renvoie la fréquence d'échantillonnage." + +#: ../Doc/library/wave.rst:94 +msgid "Returns number of audio frames." +msgstr "Renvoie le nombre de trames audio." + +#: ../Doc/library/wave.rst:99 +msgid "Returns compression type (``'NONE'`` is the only supported type)." +msgstr "Renvoie le type de compression (``'NONE'`` est le seul type géré)." + +#: ../Doc/library/wave.rst:104 +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:110 +msgid "" +"Returns a :func:`~collections.namedtuple` ``(nchannels, sampwidth, " +"framerate, nframes, comptype, compname)``, equivalent to output of the :meth:" +"`get\\*` methods." +msgstr "" +"Renvoie une :func:`~collections.namedtuple` ``(nchannels, sampwidth, " +"framerate, nframes, comptype, compname)``, équivalent à la sortie des " +"méthodes :meth:`get\\*`." + +#: ../Doc/library/wave.rst:117 +msgid "" +"Reads and returns at most *n* frames of audio, as a :class:`bytes` object." +msgstr "" +"Lit et renvoie au plus *n* trames audio, sous forme d'objet :class:`bytes`." + +#: ../Doc/library/wave.rst:122 +msgid "Rewind the file pointer to the beginning of the audio stream." +msgstr "Remet le pointeur de fichier au début du flux audio." + +#: ../Doc/library/wave.rst:124 +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:130 +msgid "Returns ``None``." +msgstr "Renvoie ``None``." + +#: ../Doc/library/wave.rst:135 +msgid "Raise an error." +msgstr "Lève une erreur." + +#: ../Doc/library/wave.rst:137 +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:143 +msgid "Set the file pointer to the specified position." +msgstr "Place le pointeur du fichier sur la position spécifiée." + +#: ../Doc/library/wave.rst:148 +msgid "Return current file pointer position." +msgstr "Renvoie la position actuelle du pointeur du fichier." + +#: ../Doc/library/wave.rst:154 +msgid "Wave_write Objects" +msgstr "Objets Wave_write" + +#: ../Doc/library/wave.rst:156 +msgid "" +"For seekable output streams, the ``wave`` header will automatically be " +"updated to reflect the number of frames actually written. For unseekable " +"streams, the *nframes* value must be accurate when the first frame data is " +"written. An accurate *nframes* value can be achieved either by calling :" +"meth:`~Wave_write.setnframes` or :meth:`~Wave_write.setparams` with the " +"number of frames that will be written before :meth:`~Wave_write.close` is " +"called and then using :meth:`~Wave_write.writeframesraw` to write the frame " +"data, or by calling :meth:`~Wave_write.writeframes` with all of the frame " +"data to be written. In the latter case :meth:`~Wave_write.writeframes` will " +"calculate the number of frames in the data and set *nframes* accordingly " +"before writing the frame data." +msgstr "" +"Pour les flux de sortie navigables, l'en-tête ``wave`` est automatiquement " +"mis à jour pour refléter le nombre de trames réellement écrites. Pour les " +"flux non indexables, la valeur *nframes* doit être précise lorsque la " +"première trame est écrite. Une valeur précise de *nframes* peut être obtenue " +"en appelant les méthodes :meth:`~Wave_write.setnframes` ou :meth:" +"`~Wave_write.setparams` en passant en paramètre le nombre de trames qui " +"seront écrites avant que :meth:`~Wave_write.close` soit appelé puis en " +"utilisant la méthode :meth:`~Wave_write.writeframesraw` pour écrire les " +"trames audio, ou en appelant la méthode :meth:`~Wave_write.writeframes` avec " +"toutes les trames audio. Dans ce dernier cas, la méthode :meth:`~Wave_write." +"writeframes` calcule le nombre de trames dans le flux audio et définit " +"*nframes* en conséquence avant d'écrire les données des trames." + +#: ../Doc/library/wave.rst:168 +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:176 +msgid "" +"Make sure *nframes* is correct, and close the file if it was opened by :mod:" +"`wave`. This method is called upon object collection. It will raise an " +"exception if the output stream is not seekable and *nframes* does not match " +"the number of frames actually written." +msgstr "" +"Assurez-vous que *nframes* soit correct et fermez le fichier s'il a été " +"ouvert par :mod:`wave`. Cette méthode est appelée à la destruction de " +"l'objet. Il lève une erreur si le flux de sortie n'est pas navigable et si " +"*nframes* ne correspond pas au nombre de trames réellement écrites." + +#: ../Doc/library/wave.rst:184 +msgid "Set the number of channels." +msgstr "Définit le nombre de canaux." + +#: ../Doc/library/wave.rst:189 +msgid "Set the sample width to *n* bytes." +msgstr "Définit la largeur de l'échantillon à *n* octets." + +#: ../Doc/library/wave.rst:194 +msgid "Set the frame rate to *n*." +msgstr "Définit la fréquence des trames à *n*." + +#: ../Doc/library/wave.rst:196 +msgid "A non-integral input to this method is rounded to the nearest integer." +msgstr "" +"Un paramètre non-entier passé à cette méthode est arrondi à l'entier le plus " +"proche." + +#: ../Doc/library/wave.rst:203 +msgid "" +"Set the number of frames to *n*. This will be changed later if the number " +"of frames actually written is different (this update attempt will raise an " +"error if the output stream is not seekable)." +msgstr "" +"Définit le nombre de trames à *n*. Cela sera modifié ultérieurement si le " +"nombre de trames réellement écrites est différent (la tentative de mise à " +"jour générera une erreur si le flux de sortie n'est pas indexable)." + +#: ../Doc/library/wave.rst:210 +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:216 +msgid "" +"The *tuple* should be ``(nchannels, sampwidth, framerate, nframes, comptype, " +"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:223 +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:229 +msgid "Write audio frames, without correcting *nframes*." +msgstr "Écrit les trames audio sans corriger *nframes*." + +#: ../Doc/library/wave.rst:231 ../Doc/library/wave.rst:242 +msgid "Any :term:`bytes-like object` is now accepted." +msgstr "N'importe quel :term:`bytes-like object` est maintenant accepté." + +#: ../Doc/library/wave.rst:237 +msgid "" +"Write audio frames and make sure *nframes* is correct. It will raise an " +"error if the output stream is not seekable and the total number of frames " +"that have been written after *data* has been written does not match the " +"previously set value for *nframes*." +msgstr "" +"Écrit des trames audio et s'assure que *nframes* est correct. Une erreur est " +"levée si le flux de sortie est non-navigable et si le nombre total de trames " +"écrites après que *data* soit écrit ne correspond pas à la valeur " +"précédemment définie pour *nframes*." + +#: ../Doc/library/wave.rst:246 +msgid "" +"Note that it is invalid to set any parameters after calling :meth:" +"`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`." diff --git a/library/weakref.po b/library/weakref.po new file mode 100644 index 000000000..82e2bda19 --- /dev/null +++ b/library/weakref.po @@ -0,0 +1,557 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/weakref.rst:2 +msgid ":mod:`weakref` --- Weak references" +msgstr "" + +#: ../Doc/library/weakref.rst:12 +msgid "**Source code:** :source:`Lib/weakref.py`" +msgstr "**Code source :** :source:`Lib/weakref.py`" + +#: ../Doc/library/weakref.rst:16 +msgid "" +"The :mod:`weakref` module allows the Python programmer to create :dfn:`weak " +"references` to objects." +msgstr "" + +#: ../Doc/library/weakref.rst:22 +msgid "" +"In the following, the term :dfn:`referent` means the object which is " +"referred to by a weak reference." +msgstr "" + +#: ../Doc/library/weakref.rst:25 +msgid "" +"A weak reference to an object is not enough to keep the object alive: when " +"the only remaining references to a referent are weak references, :term:" +"`garbage collection` is free to destroy the referent and reuse its memory " +"for something else. However, until the object is actually destroyed the " +"weak reference may return the object even if there are no strong references " +"to it." +msgstr "" + +#: ../Doc/library/weakref.rst:31 +msgid "" +"A primary use for weak references is to implement caches or mappings holding " +"large objects, where it's desired that a large object not be kept alive " +"solely because it appears in a cache or mapping." +msgstr "" + +#: ../Doc/library/weakref.rst:35 +msgid "" +"For example, if you have a number of large binary image objects, you may " +"wish to associate a name with each. If you used a Python dictionary to map " +"names to images, or images to names, the image objects would remain alive " +"just because they appeared as values or keys in the dictionaries. The :" +"class:`WeakKeyDictionary` and :class:`WeakValueDictionary` classes supplied " +"by the :mod:`weakref` module are an alternative, using weak references to " +"construct mappings that don't keep objects alive solely because they appear " +"in the mapping objects. If, for example, an image object is a value in a :" +"class:`WeakValueDictionary`, then when the last remaining references to that " +"image object are the weak references held by weak mappings, garbage " +"collection can reclaim the object, and its corresponding entries in weak " +"mappings are simply deleted." +msgstr "" + +#: ../Doc/library/weakref.rst:48 +msgid "" +":class:`WeakKeyDictionary` and :class:`WeakValueDictionary` use weak " +"references in their implementation, setting up callback functions on the " +"weak references that notify the weak dictionaries when a key or value has " +"been reclaimed by garbage collection. :class:`WeakSet` implements the :" +"class:`set` interface, but keeps weak references to its elements, just like " +"a :class:`WeakKeyDictionary` does." +msgstr "" + +#: ../Doc/library/weakref.rst:55 +msgid "" +":class:`finalize` provides a straight forward way to register a cleanup " +"function to be called when an object is garbage collected. This is simpler " +"to use than setting up a callback function on a raw weak reference, since " +"the module automatically ensures that the finalizer remains alive until the " +"object is collected." +msgstr "" + +#: ../Doc/library/weakref.rst:61 +msgid "" +"Most programs should find that using one of these weak container types or :" +"class:`finalize` is all they need -- it's not usually necessary to create " +"your own weak references directly. The low-level machinery is exposed by " +"the :mod:`weakref` module for the benefit of advanced uses." +msgstr "" + +#: ../Doc/library/weakref.rst:66 +msgid "" +"Not all objects can be weakly referenced; those objects which can include " +"class instances, functions written in Python (but not in C), instance " +"methods, sets, frozensets, some :term:`file objects `, :term:" +"`generators `, type objects, sockets, arrays, deques, regular " +"expression pattern objects, and code objects." +msgstr "" + +#: ../Doc/library/weakref.rst:72 +msgid "Added support for thread.lock, threading.Lock, and code objects." +msgstr "" + +#: ../Doc/library/weakref.rst:75 +msgid "" +"Several built-in types such as :class:`list` and :class:`dict` do not " +"directly support weak references but can add support through subclassing::" +msgstr "" + +#: ../Doc/library/weakref.rst:85 +msgid "" +"Other built-in types such as :class:`tuple` and :class:`int` do not support " +"weak references even when subclassed." +msgstr "" + +#: ../Doc/library/weakref.rst:88 +msgid "" +"Extension types can easily be made to support weak references; see :ref:" +"`weakref-support`." +msgstr "" + +#: ../Doc/library/weakref.rst:94 +msgid "" +"Return a weak reference to *object*. The original object can be retrieved " +"by calling the reference object if the referent is still alive; if the " +"referent is no longer alive, calling the reference object will cause :const:" +"`None` to be returned. If *callback* is provided and not :const:`None`, and " +"the returned weakref object is still alive, the callback will be called when " +"the object is about to be finalized; the weak reference object will be " +"passed as the only parameter to the callback; the referent will no longer be " +"available." +msgstr "" + +#: ../Doc/library/weakref.rst:102 +msgid "" +"It is allowable for many weak references to be constructed for the same " +"object. Callbacks registered for each weak reference will be called from the " +"most recently registered callback to the oldest registered callback." +msgstr "" + +#: ../Doc/library/weakref.rst:106 +msgid "" +"Exceptions raised by the callback will be noted on the standard error " +"output, but cannot be propagated; they are handled in exactly the same way " +"as exceptions raised from an object's :meth:`__del__` method." +msgstr "" + +#: ../Doc/library/weakref.rst:110 +msgid "" +"Weak references are :term:`hashable` if the *object* is hashable. They will " +"maintain their hash value even after the *object* was deleted. If :func:" +"`hash` is called the first time only after the *object* was deleted, the " +"call will raise :exc:`TypeError`." +msgstr "" + +#: ../Doc/library/weakref.rst:115 +msgid "" +"Weak references support tests for equality, but not ordering. If the " +"referents are still alive, two references have the same equality " +"relationship as their referents (regardless of the *callback*). If either " +"referent has been deleted, the references are equal only if the reference " +"objects are the same object." +msgstr "" + +#: ../Doc/library/weakref.rst:120 +msgid "This is a subclassable type rather than a factory function." +msgstr "" + +#: ../Doc/library/weakref.rst:124 +msgid "" +"This read-only attribute returns the callback currently associated to the " +"weakref. If there is no callback or if the referent of the weakref is no " +"longer alive then this attribute will have value ``None``." +msgstr "" + +#: ../Doc/library/weakref.rst:128 +msgid "Added the :attr:`__callback__` attribute." +msgstr "" + +#: ../Doc/library/weakref.rst:134 +msgid "" +"Return a proxy to *object* which uses a weak reference. This supports use " +"of the proxy in most contexts instead of requiring the explicit " +"dereferencing used with weak reference objects. The returned object will " +"have a type of either ``ProxyType`` or ``CallableProxyType``, depending on " +"whether *object* is callable. Proxy objects are not :term:`hashable` " +"regardless of the referent; this avoids a number of problems related to " +"their fundamentally mutable nature, and prevent their use as dictionary " +"keys. *callback* is the same as the parameter of the same name to the :func:" +"`ref` function." +msgstr "" + +#: ../Doc/library/weakref.rst:146 +msgid "" +"Return the number of weak references and proxies which refer to *object*." +msgstr "" + +#: ../Doc/library/weakref.rst:151 +msgid "" +"Return a list of all weak reference and proxy objects which refer to " +"*object*." +msgstr "" + +#: ../Doc/library/weakref.rst:156 +msgid "" +"Mapping class that references keys weakly. Entries in the dictionary will " +"be discarded when there is no longer a strong reference to the key. This " +"can be used to associate additional data with an object owned by other parts " +"of an application without adding attributes to those objects. This can be " +"especially useful with objects that override attribute accesses." +msgstr "" + +#: ../Doc/library/weakref.rst:164 +msgid "" +"Caution: Because a :class:`WeakKeyDictionary` is built on top of a Python " +"dictionary, it must not change size when iterating over it. This can be " +"difficult to ensure for a :class:`WeakKeyDictionary` because actions " +"performed by the program during iteration may cause items in the dictionary " +"to vanish \"by magic\" (as a side effect of garbage collection)." +msgstr "" + +#: ../Doc/library/weakref.rst:170 +msgid "" +":class:`WeakKeyDictionary` objects have an additional method that exposes " +"the internal references directly. The references are not guaranteed to be " +"\"live\" at the time they are used, so the result of calling the references " +"needs to be checked before being used. This can be used to avoid creating " +"references that will cause the garbage collector to keep the keys around " +"longer than needed." +msgstr "" + +#: ../Doc/library/weakref.rst:180 +msgid "Return an iterable of the weak references to the keys." +msgstr "" + +#: ../Doc/library/weakref.rst:185 +msgid "" +"Mapping class that references values weakly. Entries in the dictionary will " +"be discarded when no strong reference to the value exists any more." +msgstr "" + +#: ../Doc/library/weakref.rst:190 +msgid "" +"Caution: Because a :class:`WeakValueDictionary` is built on top of a Python " +"dictionary, it must not change size when iterating over it. This can be " +"difficult to ensure for a :class:`WeakValueDictionary` because actions " +"performed by the program during iteration may cause items in the dictionary " +"to vanish \"by magic\" (as a side effect of garbage collection)." +msgstr "" + +#: ../Doc/library/weakref.rst:196 +msgid "" +":class:`WeakValueDictionary` objects have an additional method that has the " +"same issues as the :meth:`keyrefs` method of :class:`WeakKeyDictionary` " +"objects." +msgstr "" + +#: ../Doc/library/weakref.rst:203 +msgid "Return an iterable of the weak references to the values." +msgstr "" + +#: ../Doc/library/weakref.rst:208 +msgid "" +"Set class that keeps weak references to its elements. An element will be " +"discarded when no strong reference to it exists any more." +msgstr "" + +#: ../Doc/library/weakref.rst:214 +msgid "" +"A custom :class:`ref` subclass which simulates a weak reference to a bound " +"method (i.e., a method defined on a class and looked up on an instance). " +"Since a bound method is ephemeral, a standard weak reference cannot keep " +"hold of it. :class:`WeakMethod` has special code to recreate the bound " +"method until either the object or the original function dies::" +msgstr "" + +#: ../Doc/library/weakref.rst:242 +msgid "" +"Return a callable finalizer object which will be called when *obj* is " +"garbage collected. Unlike an ordinary weak reference, a finalizer will " +"always survive until the reference object is collected, greatly simplifying " +"lifecycle management." +msgstr "" + +#: ../Doc/library/weakref.rst:247 +msgid "" +"A finalizer is considered *alive* until it is called (either explicitly or " +"at garbage collection), and after that it is *dead*. Calling a live " +"finalizer returns the result of evaluating ``func(*arg, **kwargs)``, whereas " +"calling a dead finalizer returns :const:`None`." +msgstr "" + +#: ../Doc/library/weakref.rst:252 +msgid "" +"Exceptions raised by finalizer callbacks during garbage collection will be " +"shown on the standard error output, but cannot be propagated. They are " +"handled in the same way as exceptions raised from an object's :meth:" +"`__del__` method or a weak reference's callback." +msgstr "" + +#: ../Doc/library/weakref.rst:258 +msgid "" +"When the program exits, each remaining live finalizer is called unless its :" +"attr:`atexit` attribute has been set to false. They are called in reverse " +"order of creation." +msgstr "" + +#: ../Doc/library/weakref.rst:262 +msgid "" +"A finalizer will never invoke its callback during the later part of the :" +"term:`interpreter shutdown` when module globals are liable to have been " +"replaced by :const:`None`." +msgstr "" + +#: ../Doc/library/weakref.rst:268 +msgid "" +"If *self* is alive then mark it as dead and return the result of calling " +"``func(*args, **kwargs)``. If *self* is dead then return :const:`None`." +msgstr "" + +#: ../Doc/library/weakref.rst:274 +msgid "" +"If *self* is alive then mark it as dead and return the tuple ``(obj, func, " +"args, kwargs)``. If *self* is dead then return :const:`None`." +msgstr "" + +#: ../Doc/library/weakref.rst:280 +msgid "" +"If *self* is alive then return the tuple ``(obj, func, args, kwargs)``. If " +"*self* is dead then return :const:`None`." +msgstr "" + +#: ../Doc/library/weakref.rst:285 +msgid "Property which is true if the finalizer is alive, false otherwise." +msgstr "" + +#: ../Doc/library/weakref.rst:289 +msgid "" +"A writable boolean property which by default is true. When the program " +"exits, it calls all remaining live finalizers for which :attr:`.atexit` is " +"true. They are called in reverse order of creation." +msgstr "" + +#: ../Doc/library/weakref.rst:296 +msgid "" +"It is important to ensure that *func*, *args* and *kwargs* do not own any " +"references to *obj*, either directly or indirectly, since otherwise *obj* " +"will never be garbage collected. In particular, *func* should not be a " +"bound method of *obj*." +msgstr "" + +#: ../Doc/library/weakref.rst:306 +msgid "The type object for weak references objects." +msgstr "" + +#: ../Doc/library/weakref.rst:311 +msgid "The type object for proxies of objects which are not callable." +msgstr "" + +#: ../Doc/library/weakref.rst:316 +msgid "The type object for proxies of callable objects." +msgstr "" + +#: ../Doc/library/weakref.rst:321 +msgid "" +"Sequence containing all the type objects for proxies. This can make it " +"simpler to test if an object is a proxy without being dependent on naming " +"both proxy types." +msgstr "" + +#: ../Doc/library/weakref.rst:328 +msgid "" +"Exception raised when a proxy object is used but the underlying object has " +"been collected. This is the same as the standard :exc:`ReferenceError` " +"exception." +msgstr "" + +#: ../Doc/library/weakref.rst:335 +msgid ":pep:`205` - Weak References" +msgstr "" + +#: ../Doc/library/weakref.rst:335 +msgid "" +"The proposal and rationale for this feature, including links to earlier " +"implementations and information about similar features in other languages." +msgstr "" + +#: ../Doc/library/weakref.rst:342 +msgid "Weak Reference Objects" +msgstr "Objets à références faibles" + +#: ../Doc/library/weakref.rst:344 +msgid "" +"Weak reference objects have no methods and no attributes besides :attr:`ref." +"__callback__`. A weak reference object allows the referent to be obtained, " +"if it still exists, by calling it:" +msgstr "" + +#: ../Doc/library/weakref.rst:358 +msgid "" +"If the referent no longer exists, calling the reference object returns :" +"const:`None`:" +msgstr "" + +#: ../Doc/library/weakref.rst:365 +msgid "" +"Testing that a weak reference object is still live should be done using the " +"expression ``ref() is not None``. Normally, application code that needs to " +"use a reference object should follow this pattern::" +msgstr "" + +#: ../Doc/library/weakref.rst:378 +msgid "" +"Using a separate test for \"liveness\" creates race conditions in threaded " +"applications; another thread can cause a weak reference to become " +"invalidated before the weak reference is called; the idiom shown above is " +"safe in threaded applications as well as single-threaded applications." +msgstr "" + +#: ../Doc/library/weakref.rst:383 +msgid "" +"Specialized versions of :class:`ref` objects can be created through " +"subclassing. This is used in the implementation of the :class:" +"`WeakValueDictionary` to reduce the memory overhead for each entry in the " +"mapping. This may be most useful to associate additional information with a " +"reference, but could also be used to insert additional processing on calls " +"to retrieve the referent." +msgstr "" + +#: ../Doc/library/weakref.rst:389 +msgid "" +"This example shows how a subclass of :class:`ref` can be used to store " +"additional information about an object and affect the value that's returned " +"when the referent is accessed::" +msgstr "" + +#: ../Doc/library/weakref.rst:416 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/weakref.rst:418 +msgid "" +"This simple example shows how an application can use object IDs to retrieve " +"objects that it has seen before. The IDs of the objects can then be used in " +"other data structures without forcing the objects to remain alive, but the " +"objects can still be retrieved by ID if they do." +msgstr "" + +#: ../Doc/library/weakref.rst:443 +msgid "Finalizer Objects" +msgstr "" + +#: ../Doc/library/weakref.rst:445 +msgid "" +"The main benefit of using :class:`finalize` is that it makes it simple to " +"register a callback without needing to preserve the returned finalizer " +"object. For instance" +msgstr "" + +#: ../Doc/library/weakref.rst:459 +msgid "" +"The finalizer can be called directly as well. However the finalizer will " +"invoke the callback at most once." +msgstr "" + +#: ../Doc/library/weakref.rst:475 +msgid "" +"You can unregister a finalizer using its :meth:`~finalize.detach` method. " +"This kills the finalizer and returns the arguments passed to the constructor " +"when it was created." +msgstr "" + +#: ../Doc/library/weakref.rst:489 +msgid "" +"Unless you set the :attr:`~finalize.atexit` attribute to :const:`False`, a " +"finalizer will be called when the program exits if it is still alive. For " +"instance" +msgstr "" + +#: ../Doc/library/weakref.rst:504 +msgid "Comparing finalizers with :meth:`__del__` methods" +msgstr "" + +#: ../Doc/library/weakref.rst:506 +msgid "" +"Suppose we want to create a class whose instances represent temporary " +"directories. The directories should be deleted with their contents when the " +"first of the following events occurs:" +msgstr "" + +#: ../Doc/library/weakref.rst:510 +msgid "the object is garbage collected," +msgstr "" + +#: ../Doc/library/weakref.rst:511 +msgid "the object's :meth:`remove` method is called, or" +msgstr "" + +#: ../Doc/library/weakref.rst:512 +msgid "the program exits." +msgstr "" + +#: ../Doc/library/weakref.rst:514 +msgid "" +"We might try to implement the class using a :meth:`__del__` method as " +"follows::" +msgstr "" + +#: ../Doc/library/weakref.rst:533 +msgid "" +"Starting with Python 3.4, :meth:`__del__` methods no longer prevent " +"reference cycles from being garbage collected, and module globals are no " +"longer forced to :const:`None` during :term:`interpreter shutdown`. So this " +"code should work without any issues on CPython." +msgstr "" + +#: ../Doc/library/weakref.rst:538 +msgid "" +"However, handling of :meth:`__del__` methods is notoriously implementation " +"specific, since it depends on internal details of the interpreter's garbage " +"collector implementation." +msgstr "" + +#: ../Doc/library/weakref.rst:542 +msgid "" +"A more robust alternative can be to define a finalizer which only references " +"the specific functions and objects that it needs, rather than having access " +"to the full state of the object::" +msgstr "" + +#: ../Doc/library/weakref.rst:558 +msgid "" +"Defined like this, our finalizer only receives a reference to the details it " +"needs to clean up the directory appropriately. If the object never gets " +"garbage collected the finalizer will still be called at exit." +msgstr "" + +#: ../Doc/library/weakref.rst:562 +msgid "" +"The other advantage of weakref based finalizers is that they can be used to " +"register finalizers for classes where the definition is controlled by a " +"third party, such as running code when a module is unloaded::" +msgstr "" + +#: ../Doc/library/weakref.rst:574 +msgid "" +"If you create a finalizer object in a daemonic thread just as the program " +"exits then there is the possibility that the finalizer does not get called " +"at exit. However, in a daemonic thread :func:`atexit.register`, ``try: ... " +"finally: ...`` and ``with: ...`` do not guarantee that cleanup occurs either." +msgstr "" diff --git a/library/webbrowser.po b/library/webbrowser.po new file mode 100644 index 000000000..f947d3938 --- /dev/null +++ b/library/webbrowser.po @@ -0,0 +1,411 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/webbrowser.rst:2 +msgid ":mod:`webbrowser` --- Convenient Web-browser controller" +msgstr "" + +#: ../Doc/library/webbrowser.rst:10 +msgid "**Source code:** :source:`Lib/webbrowser.py`" +msgstr "" + +#: ../Doc/library/webbrowser.rst:14 +msgid "" +"The :mod:`webbrowser` module provides a high-level interface to allow " +"displaying Web-based documents to users. Under most circumstances, simply " +"calling the :func:`.open` function from this module will do the right thing." +msgstr "" + +#: ../Doc/library/webbrowser.rst:18 +msgid "" +"Under Unix, graphical browsers are preferred under X11, but text-mode " +"browsers will be used if graphical browsers are not available or an X11 " +"display isn't available. If text-mode browsers are used, the calling " +"process will block until the user exits the browser." +msgstr "" + +#: ../Doc/library/webbrowser.rst:23 +msgid "" +"If the environment variable :envvar:`BROWSER` exists, it is interpreted as " +"the :data:`os.pathsep`-separated list of browsers to try ahead of the " +"platform defaults. When the value of a list part contains the string ``" +"%s``, then it is interpreted as a literal browser command line to be used " +"with the argument URL substituted for ``%s``; if the part does not contain ``" +"%s``, it is simply interpreted as the name of the browser to launch. [1]_" +msgstr "" + +#: ../Doc/library/webbrowser.rst:30 +msgid "" +"For non-Unix platforms, or when a remote browser is available on Unix, the " +"controlling process will not wait for the user to finish with the browser, " +"but allow the remote browser to maintain its own windows on the display. If " +"remote browsers are not available on Unix, the controlling process will " +"launch a new browser and wait." +msgstr "" + +#: ../Doc/library/webbrowser.rst:36 +msgid "" +"The script :program:`webbrowser` can be used as a command-line interface for " +"the module. It accepts a URL as the argument. It accepts the following " +"optional parameters: ``-n`` opens the URL in a new browser window, if " +"possible; ``-t`` opens the URL in a new browser page (\"tab\"). The options " +"are, naturally, mutually exclusive. Usage example::" +msgstr "" + +#: ../Doc/library/webbrowser.rst:44 +msgid "The following exception is defined:" +msgstr "L'exception suivante est définie :" + +#: ../Doc/library/webbrowser.rst:49 +msgid "Exception raised when a browser control error occurs." +msgstr "" + +#: ../Doc/library/webbrowser.rst:51 +msgid "The following functions are defined:" +msgstr "Les fonctions suivantes sont définies :" + +#: ../Doc/library/webbrowser.rst:56 +msgid "" +"Display *url* using the default browser. If *new* is 0, the *url* is opened " +"in the same browser window if possible. If *new* is 1, a new browser window " +"is opened if possible. If *new* is 2, a new browser page (\"tab\") is " +"opened if possible. If *autoraise* is ``True``, the window is raised if " +"possible (note that under many window managers this will occur regardless of " +"the setting of this variable)." +msgstr "" + +#: ../Doc/library/webbrowser.rst:63 +msgid "" +"Note that on some platforms, trying to open a filename using this function, " +"may work and start the operating system's associated program. However, this " +"is neither supported nor portable." +msgstr "" + +#: ../Doc/library/webbrowser.rst:70 +msgid "" +"Open *url* in a new window of the default browser, if possible, otherwise, " +"open *url* in the only browser window." +msgstr "" + +#: ../Doc/library/webbrowser.rst:75 +msgid "" +"Open *url* in a new page (\"tab\") of the default browser, if possible, " +"otherwise equivalent to :func:`open_new`." +msgstr "" + +#: ../Doc/library/webbrowser.rst:81 +msgid "" +"Return a controller object for the browser type *using*. If *using* is " +"``None``, return a controller for a default browser appropriate to the " +"caller's environment." +msgstr "" + +#: ../Doc/library/webbrowser.rst:88 +msgid "" +"Register the browser type *name*. Once a browser type is registered, the :" +"func:`get` function can return a controller for that browser type. If " +"*instance* is not provided, or is ``None``, *constructor* will be called " +"without parameters to create an instance when needed. If *instance* is " +"provided, *constructor* will never be called, and may be ``None``." +msgstr "" + +#: ../Doc/library/webbrowser.rst:94 +msgid "" +"Setting *preferred* to ``True`` makes this browser a preferred result for a :" +"func:`get` call with no argument. Otherwise, this entry point is only " +"useful if you plan to either set the :envvar:`BROWSER` variable or call :" +"func:`get` with a nonempty argument matching the name of a handler you " +"declare." +msgstr "" + +#: ../Doc/library/webbrowser.rst:100 +msgid "*preferred* keyword-only parameter was added." +msgstr "" + +#: ../Doc/library/webbrowser.rst:103 +msgid "" +"A number of browser types are predefined. This table gives the type names " +"that may be passed to the :func:`get` function and the corresponding " +"instantiations for the controller classes, all defined in this module." +msgstr "" + +#: ../Doc/library/webbrowser.rst:108 +msgid "Type Name" +msgstr "" + +#: ../Doc/library/webbrowser.rst:108 +msgid "Class Name" +msgstr "" + +#: ../Doc/library/webbrowser.rst:108 +msgid "Notes" +msgstr "Notes" + +#: ../Doc/library/webbrowser.rst:110 +msgid "``'mozilla'``" +msgstr "``'mozilla'``" + +#: ../Doc/library/webbrowser.rst:110 ../Doc/library/webbrowser.rst:112 +msgid ":class:`Mozilla('mozilla')`" +msgstr ":class:`Mozilla('mozilla')`" + +#: ../Doc/library/webbrowser.rst:112 +msgid "``'firefox'``" +msgstr "``'firefox'``" + +#: ../Doc/library/webbrowser.rst:114 +msgid "``'netscape'``" +msgstr "``'netscape'``" + +#: ../Doc/library/webbrowser.rst:114 +msgid ":class:`Mozilla('netscape')`" +msgstr ":class:`Mozilla('netscape')`" + +#: ../Doc/library/webbrowser.rst:116 +msgid "``'galeon'``" +msgstr "``'galeon'``" + +#: ../Doc/library/webbrowser.rst:116 +msgid ":class:`Galeon('galeon')`" +msgstr ":class:`Galeon('galeon')`" + +#: ../Doc/library/webbrowser.rst:118 +msgid "``'epiphany'``" +msgstr "``'epiphany'``" + +#: ../Doc/library/webbrowser.rst:118 +msgid ":class:`Galeon('epiphany')`" +msgstr ":class:`Galeon('epiphany')`" + +#: ../Doc/library/webbrowser.rst:120 +msgid "``'skipstone'``" +msgstr "``'skipstone'``" + +#: ../Doc/library/webbrowser.rst:120 +msgid ":class:`BackgroundBrowser('skipstone')`" +msgstr ":class:`BackgroundBrowser('skipstone')`" + +#: ../Doc/library/webbrowser.rst:122 +msgid "``'kfmclient'``" +msgstr "``'kfmclient'``" + +#: ../Doc/library/webbrowser.rst:122 ../Doc/library/webbrowser.rst:124 +#: ../Doc/library/webbrowser.rst:126 +msgid ":class:`Konqueror()`" +msgstr ":class:`Konqueror()`" + +#: ../Doc/library/webbrowser.rst:122 ../Doc/library/webbrowser.rst:124 +#: ../Doc/library/webbrowser.rst:126 +msgid "\\(1)" +msgstr "\\(1)" + +#: ../Doc/library/webbrowser.rst:124 +msgid "``'konqueror'``" +msgstr "``'konqueror'``" + +#: ../Doc/library/webbrowser.rst:126 +msgid "``'kfm'``" +msgstr "``'kfm'``" + +#: ../Doc/library/webbrowser.rst:128 +msgid "``'mosaic'``" +msgstr "``'mosaic'``" + +#: ../Doc/library/webbrowser.rst:128 +msgid ":class:`BackgroundBrowser('mosaic')`" +msgstr ":class:`BackgroundBrowser('mosaic')`" + +#: ../Doc/library/webbrowser.rst:130 +msgid "``'opera'``" +msgstr "``'opera'``" + +#: ../Doc/library/webbrowser.rst:130 +msgid ":class:`Opera()`" +msgstr ":class:`Opera()`" + +#: ../Doc/library/webbrowser.rst:132 +msgid "``'grail'``" +msgstr "``'grail'``" + +#: ../Doc/library/webbrowser.rst:132 +msgid ":class:`Grail()`" +msgstr ":class:`Grail()`" + +#: ../Doc/library/webbrowser.rst:134 +msgid "``'links'``" +msgstr "``'links'``" + +#: ../Doc/library/webbrowser.rst:134 +msgid ":class:`GenericBrowser('links')`" +msgstr ":class:`GenericBrowser('links')`" + +#: ../Doc/library/webbrowser.rst:136 +msgid "``'elinks'``" +msgstr "``'elinks'``" + +#: ../Doc/library/webbrowser.rst:136 +msgid ":class:`Elinks('elinks')`" +msgstr ":class:`Elinks('elinks')`" + +#: ../Doc/library/webbrowser.rst:138 +msgid "``'lynx'``" +msgstr "``'lynx'``" + +#: ../Doc/library/webbrowser.rst:138 +msgid ":class:`GenericBrowser('lynx')`" +msgstr ":class:`GenericBrowser('lynx')`" + +#: ../Doc/library/webbrowser.rst:140 +msgid "``'w3m'``" +msgstr "``'w3m'``" + +#: ../Doc/library/webbrowser.rst:140 +msgid ":class:`GenericBrowser('w3m')`" +msgstr ":class:`GenericBrowser('w3m')`" + +#: ../Doc/library/webbrowser.rst:142 +msgid "``'windows-default'``" +msgstr "``'windows-default'``" + +#: ../Doc/library/webbrowser.rst:142 +msgid ":class:`WindowsDefault`" +msgstr ":class:`WindowsDefault`" + +#: ../Doc/library/webbrowser.rst:142 +msgid "\\(2)" +msgstr "\\(2)" + +#: ../Doc/library/webbrowser.rst:144 +msgid "``'macosx'``" +msgstr "``'macosx'``" + +#: ../Doc/library/webbrowser.rst:144 +msgid ":class:`MacOSX('default')`" +msgstr ":class:`MacOSX('default')`" + +#: ../Doc/library/webbrowser.rst:144 ../Doc/library/webbrowser.rst:146 +msgid "\\(3)" +msgstr "\\(3)" + +#: ../Doc/library/webbrowser.rst:146 +msgid "``'safari'``" +msgstr "``'safari'``" + +#: ../Doc/library/webbrowser.rst:146 +msgid ":class:`MacOSX('safari')`" +msgstr ":class:`MacOSX('safari')`" + +#: ../Doc/library/webbrowser.rst:148 +msgid "``'google-chrome'``" +msgstr "``'google-chrome'``" + +#: ../Doc/library/webbrowser.rst:148 +msgid ":class:`Chrome('google-chrome')`" +msgstr ":class:`Chrome('google-chrome')`" + +#: ../Doc/library/webbrowser.rst:150 +msgid "``'chrome'``" +msgstr "``'chrome'``" + +#: ../Doc/library/webbrowser.rst:150 +msgid ":class:`Chrome('chrome')`" +msgstr ":class:`Chrome('chrome')`" + +#: ../Doc/library/webbrowser.rst:152 +msgid "``'chromium'``" +msgstr "``'chromium'``" + +#: ../Doc/library/webbrowser.rst:152 +msgid ":class:`Chromium('chromium')`" +msgstr ":class:`Chromium('chromium')`" + +#: ../Doc/library/webbrowser.rst:154 +msgid "``'chromium-browser'``" +msgstr "``'chromium-browser'``" + +#: ../Doc/library/webbrowser.rst:154 +msgid ":class:`Chromium('chromium-browser')`" +msgstr ":class:`Chromium('chromium-browser')`" + +#: ../Doc/library/webbrowser.rst:157 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/library/webbrowser.rst:160 +msgid "" +"\"Konqueror\" is the file manager for the KDE desktop environment for Unix, " +"and only makes sense to use if KDE is running. Some way of reliably " +"detecting KDE would be nice; the :envvar:`KDEDIR` variable is not " +"sufficient. Note also that the name \"kfm\" is used even when using the :" +"program:`konqueror` command with KDE 2 --- the implementation selects the " +"best strategy for running Konqueror." +msgstr "" + +#: ../Doc/library/webbrowser.rst:167 +msgid "Only on Windows platforms." +msgstr "" + +#: ../Doc/library/webbrowser.rst:170 +msgid "Only on Mac OS X platform." +msgstr "" + +#: ../Doc/library/webbrowser.rst:172 +msgid "Support for Chrome/Chromium has been added." +msgstr "" + +#: ../Doc/library/webbrowser.rst:175 +msgid "Here are some simple examples::" +msgstr "" + +#: ../Doc/library/webbrowser.rst:189 +msgid "Browser Controller Objects" +msgstr "" + +#: ../Doc/library/webbrowser.rst:191 +msgid "" +"Browser controllers provide these methods which parallel three of the module-" +"level convenience functions:" +msgstr "" + +#: ../Doc/library/webbrowser.rst:197 +msgid "" +"Display *url* using the browser handled by this controller. If *new* is 1, a " +"new browser window is opened if possible. If *new* is 2, a new browser page " +"(\"tab\") is opened if possible." +msgstr "" + +#: ../Doc/library/webbrowser.rst:204 +msgid "" +"Open *url* in a new window of the browser handled by this controller, if " +"possible, otherwise, open *url* in the only browser window. Alias :func:" +"`open_new`." +msgstr "" + +#: ../Doc/library/webbrowser.rst:211 +msgid "" +"Open *url* in a new page (\"tab\") of the browser handled by this " +"controller, if possible, otherwise equivalent to :func:`open_new`." +msgstr "" + +#: ../Doc/library/webbrowser.rst:216 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/webbrowser.rst:217 +msgid "" +"Executables named here without a full path will be searched in the " +"directories given in the :envvar:`PATH` environment variable." +msgstr "" diff --git a/library/windows.po b/library/windows.po new file mode 100644 index 000000000..98d977ecd --- /dev/null +++ b/library/windows.po @@ -0,0 +1,27 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-02-15 00:50+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/windows.rst:5 +msgid "MS Windows Specific Services" +msgstr "Services spécifiques à MS Windows" + +#: ../Doc/library/windows.rst:7 +msgid "" +"This chapter describes modules that are only available on MS Windows " +"platforms." +msgstr "" +"Ce chapitre documente les modules qui ne sont disponibles que sous MS " +"Windows." diff --git a/library/winreg.po b/library/winreg.po new file mode 100644 index 000000000..6a8d3d957 --- /dev/null +++ b/library/winreg.po @@ -0,0 +1,849 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/winreg.rst:2 +msgid ":mod:`winreg` --- Windows registry access" +msgstr "" + +#: ../Doc/library/winreg.rst:12 +msgid "" +"These functions expose the Windows registry API to Python. Instead of using " +"an integer as the registry handle, a :ref:`handle object ` is " +"used to ensure that the handles are closed correctly, even if the programmer " +"neglects to explicitly close them." +msgstr "" + +#: ../Doc/library/winreg.rst:19 +msgid "" +"Several functions in this module used to raise a :exc:`WindowsError`, which " +"is now an alias of :exc:`OSError`." +msgstr "" + +#: ../Doc/library/winreg.rst:26 +msgid "Functions" +msgstr "Fonctions" + +#: ../Doc/library/winreg.rst:28 +msgid "This module offers the following functions:" +msgstr "" + +#: ../Doc/library/winreg.rst:33 +msgid "" +"Closes a previously opened registry key. The *hkey* argument specifies a " +"previously opened key." +msgstr "" + +#: ../Doc/library/winreg.rst:38 +msgid "" +"If *hkey* is not closed using this method (or via :meth:`hkey.Close() " +"`), it is closed when the *hkey* object is destroyed by Python." +msgstr "" + +#: ../Doc/library/winreg.rst:45 +msgid "" +"Establishes a connection to a predefined registry handle on another " +"computer, and returns a :ref:`handle object `." +msgstr "" + +#: ../Doc/library/winreg.rst:48 +msgid "" +"*computer_name* is the name of the remote computer, of the form ``r\"\\" +"\\computername\"``. If ``None``, the local computer is used." +msgstr "" + +#: ../Doc/library/winreg.rst:51 +msgid "*key* is the predefined handle to connect to." +msgstr "" + +#: ../Doc/library/winreg.rst:53 ../Doc/library/winreg.rst:75 +#: ../Doc/library/winreg.rst:103 +msgid "" +"The return value is the handle of the opened key. If the function fails, an :" +"exc:`OSError` exception is raised." +msgstr "" + +#: ../Doc/library/winreg.rst:56 ../Doc/library/winreg.rst:78 +#: ../Doc/library/winreg.rst:108 ../Doc/library/winreg.rst:127 +#: ../Doc/library/winreg.rst:163 ../Doc/library/winreg.rst:190 +#: ../Doc/library/winreg.rst:223 ../Doc/library/winreg.rst:306 +msgid "See :ref:`above `." +msgstr "" + +#: ../Doc/library/winreg.rst:62 ../Doc/library/winreg.rst:84 +msgid "" +"Creates or opens the specified key, returning a :ref:`handle object `." +msgstr "" + +#: ../Doc/library/winreg.rst:65 ../Doc/library/winreg.rst:87 +#: ../Doc/library/winreg.rst:116 ../Doc/library/winreg.rst:141 +#: ../Doc/library/winreg.rst:171 ../Doc/library/winreg.rst:181 +#: ../Doc/library/winreg.rst:198 ../Doc/library/winreg.rst:243 +#: ../Doc/library/winreg.rst:288 ../Doc/library/winreg.rst:314 +#: ../Doc/library/winreg.rst:338 ../Doc/library/winreg.rst:356 +#: ../Doc/library/winreg.rst:378 ../Doc/library/winreg.rst:401 +#: ../Doc/library/winreg.rst:427 ../Doc/library/winreg.rst:456 +#: ../Doc/library/winreg.rst:471 ../Doc/library/winreg.rst:484 +msgid "" +"*key* is an already open key, or one of the predefined :ref:`HKEY_* " +"constants `." +msgstr "" + +#: ../Doc/library/winreg.rst:68 ../Doc/library/winreg.rst:90 +msgid "*sub_key* is a string that names the key this method opens or creates." +msgstr "" + +#: ../Doc/library/winreg.rst:70 ../Doc/library/winreg.rst:98 +msgid "" +"If *key* is one of the predefined keys, *sub_key* may be ``None``. In that " +"case, the handle returned is the same key handle passed in to the function." +msgstr "" + +#: ../Doc/library/winreg.rst:73 ../Doc/library/winreg.rst:101 +msgid "If the key already exists, this function opens the existing key." +msgstr "" + +#: ../Doc/library/winreg.rst:92 ../Doc/library/winreg.rst:148 +msgid "" +"*reserved* is a reserved integer, and must be zero. The default is zero." +msgstr "" + +#: ../Doc/library/winreg.rst:94 +msgid "" +"*access* is an integer that specifies an access mask that describes the " +"desired security access for the key. Default is :const:`KEY_WRITE`. See :" +"ref:`Access Rights ` for other allowed values." +msgstr "" + +#: ../Doc/library/winreg.rst:114 ../Doc/library/winreg.rst:133 +msgid "Deletes the specified key." +msgstr "" + +#: ../Doc/library/winreg.rst:119 +msgid "" +"*sub_key* is a string that must be a subkey of the key identified by the " +"*key* parameter. This value must not be ``None``, and the key may not have " +"subkeys." +msgstr "" + +#: ../Doc/library/winreg.rst:122 ../Doc/library/winreg.rst:154 +msgid "*This method can not delete keys with subkeys.*" +msgstr "" + +#: ../Doc/library/winreg.rst:124 ../Doc/library/winreg.rst:156 +msgid "" +"If the method succeeds, the entire key, including all of its values, is " +"removed. If the method fails, an :exc:`OSError` exception is raised." +msgstr "" + +#: ../Doc/library/winreg.rst:136 +msgid "" +"The :func:`DeleteKeyEx` function is implemented with the RegDeleteKeyEx " +"Windows API function, which is specific to 64-bit versions of Windows. See " +"the `RegDeleteKeyEx documentation `__." +msgstr "" + +#: ../Doc/library/winreg.rst:144 +msgid "" +"*sub_key* is a string that must be a subkey of the key identified by the " +"*key* parameter. This value must not be ``None``, and the key may not have " +"subkeys." +msgstr "" + +#: ../Doc/library/winreg.rst:150 +msgid "" +"*access* is an integer that specifies an access mask that describes the " +"desired security access for the key. Default is :const:`KEY_WOW64_64KEY`. " +"See :ref:`Access Rights ` for other allowed values." +msgstr "" + +#: ../Doc/library/winreg.rst:159 +msgid "On unsupported Windows versions, :exc:`NotImplementedError` is raised." +msgstr "" + +#: ../Doc/library/winreg.rst:169 +msgid "Removes a named value from a registry key." +msgstr "" + +#: ../Doc/library/winreg.rst:174 +msgid "*value* is a string that identifies the value to remove." +msgstr "" + +#: ../Doc/library/winreg.rst:179 +msgid "Enumerates subkeys of an open registry key, returning a string." +msgstr "" + +#: ../Doc/library/winreg.rst:184 +msgid "*index* is an integer that identifies the index of the key to retrieve." +msgstr "" + +#: ../Doc/library/winreg.rst:186 +msgid "" +"The function retrieves the name of one subkey each time it is called. It is " +"typically called repeatedly until an :exc:`OSError` exception is raised, " +"indicating, no more values are available." +msgstr "" + +#: ../Doc/library/winreg.rst:196 +msgid "Enumerates values of an open registry key, returning a tuple." +msgstr "" + +#: ../Doc/library/winreg.rst:201 +msgid "" +"*index* is an integer that identifies the index of the value to retrieve." +msgstr "" + +#: ../Doc/library/winreg.rst:203 +msgid "" +"The function retrieves the name of one subkey each time it is called. It is " +"typically called repeatedly, until an :exc:`OSError` exception is raised, " +"indicating no more values." +msgstr "" + +#: ../Doc/library/winreg.rst:207 ../Doc/library/winreg.rst:317 +msgid "The result is a tuple of 3 items:" +msgstr "" + +#: ../Doc/library/winreg.rst:210 ../Doc/library/winreg.rst:320 +#: ../Doc/library/winreg.rst:364 +msgid "Index" +msgstr "Index" + +#: ../Doc/library/winreg.rst:210 ../Doc/library/winreg.rst:320 +#: ../Doc/library/winreg.rst:364 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/winreg.rst:212 ../Doc/library/winreg.rst:322 +#: ../Doc/library/winreg.rst:366 +msgid "``0``" +msgstr "``0``" + +#: ../Doc/library/winreg.rst:212 +msgid "A string that identifies the value name" +msgstr "" + +#: ../Doc/library/winreg.rst:214 ../Doc/library/winreg.rst:325 +#: ../Doc/library/winreg.rst:368 +msgid "``1``" +msgstr "``1``" + +#: ../Doc/library/winreg.rst:214 +msgid "" +"An object that holds the value data, and whose type depends on the " +"underlying registry type" +msgstr "" + +#: ../Doc/library/winreg.rst:218 ../Doc/library/winreg.rst:328 +msgid "``2``" +msgstr "``2``" + +#: ../Doc/library/winreg.rst:218 +msgid "" +"An integer that identifies the type of the value data (see table in docs " +"for :meth:`SetValueEx`)" +msgstr "" + +#: ../Doc/library/winreg.rst:232 +msgid "" +"Expands environment variable placeholders ``%NAME%`` in strings like :const:" +"`REG_EXPAND_SZ`::" +msgstr "" + +#: ../Doc/library/winreg.rst:241 +msgid "Writes all the attributes of a key to the registry." +msgstr "" + +#: ../Doc/library/winreg.rst:246 +msgid "" +"It is not necessary to call :func:`FlushKey` to change a key. Registry " +"changes are flushed to disk by the registry using its lazy flusher. " +"Registry changes are also flushed to disk at system shutdown. Unlike :func:" +"`CloseKey`, the :func:`FlushKey` method returns only when all the data has " +"been written to the registry. An application should only call :func:" +"`FlushKey` if it requires absolute certainty that registry changes are on " +"disk." +msgstr "" + +#: ../Doc/library/winreg.rst:255 +msgid "" +"If you don't know whether a :func:`FlushKey` call is required, it probably " +"isn't." +msgstr "" + +#: ../Doc/library/winreg.rst:261 +msgid "" +"Creates a subkey under the specified key and stores registration information " +"from a specified file into that subkey." +msgstr "" + +#: ../Doc/library/winreg.rst:264 +msgid "" +"*key* is a handle returned by :func:`ConnectRegistry` or one of the " +"constants :const:`HKEY_USERS` or :const:`HKEY_LOCAL_MACHINE`." +msgstr "" + +#: ../Doc/library/winreg.rst:267 +msgid "*sub_key* is a string that identifies the subkey to load." +msgstr "" + +#: ../Doc/library/winreg.rst:269 +msgid "" +"*file_name* is the name of the file to load registry data from. This file " +"must have been created with the :func:`SaveKey` function. Under the file " +"allocation table (FAT) file system, the filename may not have an extension." +msgstr "" + +#: ../Doc/library/winreg.rst:273 +msgid "" +"A call to :func:`LoadKey` fails if the calling process does not have the :" +"const:`SE_RESTORE_PRIVILEGE` privilege. Note that privileges are different " +"from permissions -- see the `RegLoadKey documentation `__ for more details." +msgstr "" + +#: ../Doc/library/winreg.rst:279 +msgid "" +"If *key* is a handle returned by :func:`ConnectRegistry`, then the path " +"specified in *file_name* is relative to the remote computer." +msgstr "" + +#: ../Doc/library/winreg.rst:286 +msgid "" +"Opens the specified key, returning a :ref:`handle object `." +msgstr "" + +#: ../Doc/library/winreg.rst:291 +msgid "*sub_key* is a string that identifies the sub_key to open." +msgstr "" + +#: ../Doc/library/winreg.rst:293 +msgid "" +"*reserved* is a reserved integer, and must be zero. The default is zero." +msgstr "" + +#: ../Doc/library/winreg.rst:295 +msgid "" +"*access* is an integer that specifies an access mask that describes the " +"desired security access for the key. Default is :const:`KEY_READ`. See :" +"ref:`Access Rights ` for other allowed values." +msgstr "" + +#: ../Doc/library/winreg.rst:299 +msgid "The result is a new handle to the specified key." +msgstr "" + +#: ../Doc/library/winreg.rst:301 +msgid "If the function fails, :exc:`OSError` is raised." +msgstr "" + +#: ../Doc/library/winreg.rst:303 +msgid "Allow the use of named arguments." +msgstr "" + +#: ../Doc/library/winreg.rst:312 +msgid "Returns information about a key, as a tuple." +msgstr "" + +#: ../Doc/library/winreg.rst:322 +msgid "An integer giving the number of sub keys this key has." +msgstr "" + +#: ../Doc/library/winreg.rst:325 +msgid "An integer giving the number of values this key has." +msgstr "" + +#: ../Doc/library/winreg.rst:328 +msgid "" +"An integer giving when the key was last modified (if available) as 100's of " +"nanoseconds since Jan 1, 1601." +msgstr "" + +#: ../Doc/library/winreg.rst:336 +msgid "Retrieves the unnamed value for a key, as a string." +msgstr "" + +#: ../Doc/library/winreg.rst:341 +msgid "" +"*sub_key* is a string that holds the name of the subkey with which the value " +"is associated. If this parameter is ``None`` or empty, the function " +"retrieves the value set by the :func:`SetValue` method for the key " +"identified by *key*." +msgstr "" + +#: ../Doc/library/winreg.rst:345 +msgid "" +"Values in the registry have name, type, and data components. This method " +"retrieves the data for a key's first value that has a NULL name. But the " +"underlying API call doesn't return the type, so always use :func:" +"`QueryValueEx` if possible." +msgstr "" + +#: ../Doc/library/winreg.rst:353 +msgid "" +"Retrieves the type and data for a specified value name associated with an " +"open registry key." +msgstr "" + +#: ../Doc/library/winreg.rst:359 +msgid "*value_name* is a string indicating the value to query." +msgstr "" + +#: ../Doc/library/winreg.rst:361 +msgid "The result is a tuple of 2 items:" +msgstr "" + +#: ../Doc/library/winreg.rst:366 +msgid "The value of the registry item." +msgstr "" + +#: ../Doc/library/winreg.rst:368 +msgid "" +"An integer giving the registry type for this value (see table in docs for :" +"meth:`SetValueEx`)" +msgstr "" + +#: ../Doc/library/winreg.rst:376 +msgid "Saves the specified key, and all its subkeys to the specified file." +msgstr "" + +#: ../Doc/library/winreg.rst:381 +msgid "" +"*file_name* is the name of the file to save registry data to. This file " +"cannot already exist. If this filename includes an extension, it cannot be " +"used on file allocation table (FAT) file systems by the :meth:`LoadKey` " +"method." +msgstr "" + +#: ../Doc/library/winreg.rst:386 +msgid "" +"If *key* represents a key on a remote computer, the path described by " +"*file_name* is relative to the remote computer. The caller of this method " +"must possess the :const:`SeBackupPrivilege` security privilege. Note that " +"privileges are different than permissions -- see the `Conflicts Between User " +"Rights and Permissions documentation `__ for more details." +msgstr "" + +#: ../Doc/library/winreg.rst:394 +msgid "This function passes NULL for *security_attributes* to the API." +msgstr "" + +#: ../Doc/library/winreg.rst:399 +msgid "Associates a value with a specified key." +msgstr "" + +#: ../Doc/library/winreg.rst:404 +msgid "" +"*sub_key* is a string that names the subkey with which the value is " +"associated." +msgstr "" + +#: ../Doc/library/winreg.rst:406 +msgid "" +"*type* is an integer that specifies the type of the data. Currently this " +"must be :const:`REG_SZ`, meaning only strings are supported. Use the :func:" +"`SetValueEx` function for support for other data types." +msgstr "" + +#: ../Doc/library/winreg.rst:410 ../Doc/library/winreg.rst:438 +msgid "*value* is a string that specifies the new value." +msgstr "" + +#: ../Doc/library/winreg.rst:412 +msgid "" +"If the key specified by the *sub_key* parameter does not exist, the SetValue " +"function creates it." +msgstr "" + +#: ../Doc/library/winreg.rst:415 ../Doc/library/winreg.rst:446 +msgid "" +"Value lengths are limited by available memory. Long values (more than 2048 " +"bytes) should be stored as files with the filenames stored in the " +"configuration registry. This helps the registry perform efficiently." +msgstr "" + +#: ../Doc/library/winreg.rst:419 +msgid "" +"The key identified by the *key* parameter must have been opened with :const:" +"`KEY_SET_VALUE` access." +msgstr "" + +#: ../Doc/library/winreg.rst:425 +msgid "Stores data in the value field of an open registry key." +msgstr "" + +#: ../Doc/library/winreg.rst:430 +msgid "" +"*value_name* is a string that names the subkey with which the value is " +"associated." +msgstr "" + +#: ../Doc/library/winreg.rst:433 +msgid "*reserved* can be anything -- zero is always passed to the API." +msgstr "" + +#: ../Doc/library/winreg.rst:435 +msgid "" +"*type* is an integer that specifies the type of the data. See :ref:`Value " +"Types ` for the available types." +msgstr "" + +#: ../Doc/library/winreg.rst:440 +msgid "" +"This method can also set additional value and type information for the " +"specified key. The key identified by the key parameter must have been " +"opened with :const:`KEY_SET_VALUE` access." +msgstr "" + +#: ../Doc/library/winreg.rst:444 +msgid "To open the key, use the :func:`CreateKey` or :func:`OpenKey` methods." +msgstr "" + +#: ../Doc/library/winreg.rst:453 +msgid "" +"Disables registry reflection for 32-bit processes running on a 64-bit " +"operating system." +msgstr "" + +#: ../Doc/library/winreg.rst:459 ../Doc/library/winreg.rst:474 +#: ../Doc/library/winreg.rst:489 +msgid "" +"Will generally raise :exc:`NotImplemented` if executed on a 32-bit operating " +"system." +msgstr "" + +#: ../Doc/library/winreg.rst:462 +msgid "" +"If the key is not on the reflection list, the function succeeds but has no " +"effect. Disabling reflection for a key does not affect reflection of any " +"subkeys." +msgstr "" + +#: ../Doc/library/winreg.rst:469 +msgid "Restores registry reflection for the specified disabled key." +msgstr "" + +#: ../Doc/library/winreg.rst:477 +msgid "" +"Restoring reflection for a key does not affect reflection of any subkeys." +msgstr "" + +#: ../Doc/library/winreg.rst:482 +msgid "Determines the reflection state for the specified key." +msgstr "" + +#: ../Doc/library/winreg.rst:487 +msgid "Returns ``True`` if reflection is disabled." +msgstr "" + +#: ../Doc/library/winreg.rst:496 +msgid "Constants" +msgstr "Constantes" + +#: ../Doc/library/winreg.rst:498 +msgid "" +"The following constants are defined for use in many :mod:`_winreg` functions." +msgstr "" + +#: ../Doc/library/winreg.rst:503 +msgid "HKEY_* Constants" +msgstr "" + +#: ../Doc/library/winreg.rst:507 +msgid "" +"Registry entries subordinate to this key define types (or classes) of " +"documents and the properties associated with those types. Shell and COM " +"applications use the information stored under this key." +msgstr "" + +#: ../Doc/library/winreg.rst:514 +msgid "" +"Registry entries subordinate to this key define the preferences of the " +"current user. These preferences include the settings of environment " +"variables, data about program groups, colors, printers, network connections, " +"and application preferences." +msgstr "" + +#: ../Doc/library/winreg.rst:521 +msgid "" +"Registry entries subordinate to this key define the physical state of the " +"computer, including data about the bus type, system memory, and installed " +"hardware and software." +msgstr "" + +#: ../Doc/library/winreg.rst:527 +msgid "" +"Registry entries subordinate to this key define the default user " +"configuration for new users on the local computer and the user configuration " +"for the current user." +msgstr "" + +#: ../Doc/library/winreg.rst:533 +msgid "" +"Registry entries subordinate to this key allow you to access performance " +"data. The data is not actually stored in the registry; the registry " +"functions cause the system to collect the data from its source." +msgstr "" + +#: ../Doc/library/winreg.rst:541 +msgid "" +"Contains information about the current hardware profile of the local " +"computer system." +msgstr "" + +#: ../Doc/library/winreg.rst:546 +msgid "This key is not used in versions of Windows after 98." +msgstr "" + +#: ../Doc/library/winreg.rst:552 +msgid "Access Rights" +msgstr "" + +#: ../Doc/library/winreg.rst:554 +msgid "" +"For more information, see `Registry Key Security and Access `__." +msgstr "" + +#: ../Doc/library/winreg.rst:559 +msgid "" +"Combines the STANDARD_RIGHTS_REQUIRED, :const:`KEY_QUERY_VALUE`, :const:" +"`KEY_SET_VALUE`, :const:`KEY_CREATE_SUB_KEY`, :const:" +"`KEY_ENUMERATE_SUB_KEYS`, :const:`KEY_NOTIFY`, and :const:`KEY_CREATE_LINK` " +"access rights." +msgstr "" + +#: ../Doc/library/winreg.rst:566 +msgid "" +"Combines the STANDARD_RIGHTS_WRITE, :const:`KEY_SET_VALUE`, and :const:" +"`KEY_CREATE_SUB_KEY` access rights." +msgstr "" + +#: ../Doc/library/winreg.rst:571 +msgid "" +"Combines the STANDARD_RIGHTS_READ, :const:`KEY_QUERY_VALUE`, :const:" +"`KEY_ENUMERATE_SUB_KEYS`, and :const:`KEY_NOTIFY` values." +msgstr "" + +#: ../Doc/library/winreg.rst:576 +msgid "Equivalent to :const:`KEY_READ`." +msgstr "" + +#: ../Doc/library/winreg.rst:580 +msgid "Required to query the values of a registry key." +msgstr "" + +#: ../Doc/library/winreg.rst:584 +msgid "Required to create, delete, or set a registry value." +msgstr "" + +#: ../Doc/library/winreg.rst:588 +msgid "Required to create a subkey of a registry key." +msgstr "" + +#: ../Doc/library/winreg.rst:592 +msgid "Required to enumerate the subkeys of a registry key." +msgstr "" + +#: ../Doc/library/winreg.rst:596 +msgid "" +"Required to request change notifications for a registry key or for subkeys " +"of a registry key." +msgstr "" + +#: ../Doc/library/winreg.rst:601 +msgid "Reserved for system use." +msgstr "" + +#: ../Doc/library/winreg.rst:607 +msgid "64-bit Specific" +msgstr "" + +#: ../Doc/library/winreg.rst:609 +msgid "" +"For more information, see `Accessing an Alternate Registry View `__." +msgstr "" + +#: ../Doc/library/winreg.rst:614 +msgid "" +"Indicates that an application on 64-bit Windows should operate on the 64-bit " +"registry view." +msgstr "" + +#: ../Doc/library/winreg.rst:619 +msgid "" +"Indicates that an application on 64-bit Windows should operate on the 32-bit " +"registry view." +msgstr "" + +#: ../Doc/library/winreg.rst:626 +msgid "Value Types" +msgstr "" + +#: ../Doc/library/winreg.rst:628 +msgid "" +"For more information, see `Registry Value Types `__." +msgstr "" + +#: ../Doc/library/winreg.rst:633 +msgid "Binary data in any form." +msgstr "" + +#: ../Doc/library/winreg.rst:637 +msgid "32-bit number." +msgstr "" + +#: ../Doc/library/winreg.rst:641 +msgid "" +"A 32-bit number in little-endian format. Equivalent to :const:`REG_DWORD`." +msgstr "" + +#: ../Doc/library/winreg.rst:645 +msgid "A 32-bit number in big-endian format." +msgstr "" + +#: ../Doc/library/winreg.rst:649 +msgid "" +"Null-terminated string containing references to environment variables (``" +"%PATH%``)." +msgstr "" + +#: ../Doc/library/winreg.rst:654 +msgid "A Unicode symbolic link." +msgstr "" + +#: ../Doc/library/winreg.rst:658 +msgid "" +"A sequence of null-terminated strings, terminated by two null characters. " +"(Python handles this termination automatically.)" +msgstr "" + +#: ../Doc/library/winreg.rst:663 +msgid "No defined value type." +msgstr "" + +#: ../Doc/library/winreg.rst:667 +msgid "A 64-bit number." +msgstr "" + +#: ../Doc/library/winreg.rst:673 +msgid "" +"A 64-bit number in little-endian format. Equivalent to :const:`REG_QWORD`." +msgstr "" + +#: ../Doc/library/winreg.rst:679 +msgid "A device-driver resource list." +msgstr "" + +#: ../Doc/library/winreg.rst:683 +msgid "A hardware setting." +msgstr "" + +#: ../Doc/library/winreg.rst:687 +msgid "A hardware resource list." +msgstr "" + +#: ../Doc/library/winreg.rst:691 +msgid "A null-terminated string." +msgstr "" + +#: ../Doc/library/winreg.rst:697 +msgid "Registry Handle Objects" +msgstr "" + +#: ../Doc/library/winreg.rst:699 +msgid "" +"This object wraps a Windows HKEY object, automatically closing it when the " +"object is destroyed. To guarantee cleanup, you can call either the :meth:" +"`~PyHKEY.Close` method on the object, or the :func:`CloseKey` function." +msgstr "" + +#: ../Doc/library/winreg.rst:703 +msgid "All registry functions in this module return one of these objects." +msgstr "" + +#: ../Doc/library/winreg.rst:705 +msgid "" +"All registry functions in this module which accept a handle object also " +"accept an integer, however, use of the handle object is encouraged." +msgstr "" + +#: ../Doc/library/winreg.rst:708 +msgid "Handle objects provide semantics for :meth:`__bool__` -- thus ::" +msgstr "" + +#: ../Doc/library/winreg.rst:713 +msgid "" +"will print ``Yes`` if the handle is currently valid (has not been closed or " +"detached)." +msgstr "" + +#: ../Doc/library/winreg.rst:716 +msgid "" +"The object also support comparison semantics, so handle objects will compare " +"true if they both reference the same underlying Windows handle value." +msgstr "" + +#: ../Doc/library/winreg.rst:719 +msgid "" +"Handle objects can be converted to an integer (e.g., using the built-in :" +"func:`int` function), in which case the underlying Windows handle value is " +"returned. You can also use the :meth:`~PyHKEY.Detach` method to return the " +"integer handle, and also disconnect the Windows handle from the handle " +"object." +msgstr "" + +#: ../Doc/library/winreg.rst:727 +msgid "Closes the underlying Windows handle." +msgstr "" + +#: ../Doc/library/winreg.rst:729 +msgid "If the handle is already closed, no error is raised." +msgstr "" + +#: ../Doc/library/winreg.rst:734 +msgid "Detaches the Windows handle from the handle object." +msgstr "" + +#: ../Doc/library/winreg.rst:736 +msgid "" +"The result is an integer that holds the value of the handle before it is " +"detached. If the handle is already detached or closed, this will return " +"zero." +msgstr "" + +#: ../Doc/library/winreg.rst:740 +msgid "" +"After calling this function, the handle is effectively invalidated, but the " +"handle is not closed. You would call this function when you need the " +"underlying Win32 handle to exist beyond the lifetime of the handle object." +msgstr "" + +#: ../Doc/library/winreg.rst:747 +msgid "" +"The HKEY object implements :meth:`~object.__enter__` and :meth:`~object." +"__exit__` and thus supports the context protocol for the :keyword:`with` " +"statement::" +msgstr "" + +#: ../Doc/library/winreg.rst:754 +msgid "" +"will automatically close *key* when control leaves the :keyword:`with` block." +msgstr "" diff --git a/library/winsound.po b/library/winsound.po new file mode 100644 index 000000000..74287da61 --- /dev/null +++ b/library/winsound.po @@ -0,0 +1,190 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/winsound.rst:2 +msgid ":mod:`winsound` --- Sound-playing interface for Windows" +msgstr "" + +#: ../Doc/library/winsound.rst:13 +msgid "" +"The :mod:`winsound` module provides access to the basic sound-playing " +"machinery provided by Windows platforms. It includes functions and several " +"constants." +msgstr "" + +#: ../Doc/library/winsound.rst:19 +msgid "" +"Beep the PC's speaker. The *frequency* parameter specifies frequency, in " +"hertz, of the sound, and must be in the range 37 through 32,767. The " +"*duration* parameter specifies the number of milliseconds the sound should " +"last. If the system is not able to beep the speaker, :exc:`RuntimeError` is " +"raised." +msgstr "" + +#: ../Doc/library/winsound.rst:27 +msgid "" +"Call the underlying :c:func:`PlaySound` function from the Platform API. The " +"*sound* parameter may be a filename, a system sound alias, audio data as a :" +"term:`bytes-like object`, or ``None``. Its interpretation depends on the " +"value of *flags*, which can be a bitwise ORed combination of the constants " +"described below. If the *sound* parameter is ``None``, any currently playing " +"waveform sound is stopped. If the system indicates an error, :exc:" +"`RuntimeError` is raised." +msgstr "" + +#: ../Doc/library/winsound.rst:38 +msgid "" +"Call the underlying :c:func:`MessageBeep` function from the Platform API. " +"This plays a sound as specified in the registry. The *type* argument " +"specifies which sound to play; possible values are ``-1``, " +"``MB_ICONASTERISK``, ``MB_ICONEXCLAMATION``, ``MB_ICONHAND``, " +"``MB_ICONQUESTION``, and ``MB_OK``, all described below. The value ``-1`` " +"produces a \"simple beep\"; this is the final fallback if a sound cannot be " +"played otherwise. If the system indicates an error, :exc:`RuntimeError` is " +"raised." +msgstr "" + +#: ../Doc/library/winsound.rst:49 +msgid "" +"The *sound* parameter is the name of a WAV file. Do not use with :const:" +"`SND_ALIAS`." +msgstr "" + +#: ../Doc/library/winsound.rst:55 +msgid "" +"The *sound* parameter is a sound association name from the registry. If the " +"registry contains no such name, play the system default sound unless :const:" +"`SND_NODEFAULT` is also specified. If no default sound is registered, raise :" +"exc:`RuntimeError`. Do not use with :const:`SND_FILENAME`." +msgstr "" + +#: ../Doc/library/winsound.rst:60 +msgid "" +"All Win32 systems support at least the following; most systems support many " +"more:" +msgstr "" + +#: ../Doc/library/winsound.rst:64 +msgid ":func:`PlaySound` *name*" +msgstr "" + +#: ../Doc/library/winsound.rst:64 +msgid "Corresponding Control Panel Sound name" +msgstr "" + +#: ../Doc/library/winsound.rst:66 +msgid "``'SystemAsterisk'``" +msgstr "``'SystemAsterisk'``" + +#: ../Doc/library/winsound.rst:66 +msgid "Asterisk" +msgstr "" + +#: ../Doc/library/winsound.rst:68 +msgid "``'SystemExclamation'``" +msgstr "``'SystemExclamation'``" + +#: ../Doc/library/winsound.rst:68 +msgid "Exclamation" +msgstr "" + +#: ../Doc/library/winsound.rst:70 +msgid "``'SystemExit'``" +msgstr "``'SystemExit'``" + +#: ../Doc/library/winsound.rst:70 +msgid "Exit Windows" +msgstr "" + +#: ../Doc/library/winsound.rst:72 +msgid "``'SystemHand'``" +msgstr "``'SystemHand'``" + +#: ../Doc/library/winsound.rst:72 +msgid "Critical Stop" +msgstr "" + +#: ../Doc/library/winsound.rst:74 +msgid "``'SystemQuestion'``" +msgstr "``'SystemQuestion'``" + +#: ../Doc/library/winsound.rst:74 +msgid "Question" +msgstr "" + +#: ../Doc/library/winsound.rst:77 +msgid "For example::" +msgstr "Par exemple ::" + +#: ../Doc/library/winsound.rst:90 +msgid "" +"Play the sound repeatedly. The :const:`SND_ASYNC` flag must also be used to " +"avoid blocking. Cannot be used with :const:`SND_MEMORY`." +msgstr "" + +#: ../Doc/library/winsound.rst:96 +msgid "" +"The *sound* parameter to :func:`PlaySound` is a memory image of a WAV file, " +"as a :term:`bytes-like object`." +msgstr "" + +#: ../Doc/library/winsound.rst:101 +msgid "" +"This module does not support playing from a memory image asynchronously, so " +"a combination of this flag and :const:`SND_ASYNC` will raise :exc:" +"`RuntimeError`." +msgstr "" + +#: ../Doc/library/winsound.rst:107 +msgid "Stop playing all instances of the specified sound." +msgstr "" + +#: ../Doc/library/winsound.rst:111 ../Doc/library/winsound.rst:135 +msgid "This flag is not supported on modern Windows platforms." +msgstr "" + +#: ../Doc/library/winsound.rst:116 +msgid "Return immediately, allowing sounds to play asynchronously." +msgstr "" + +#: ../Doc/library/winsound.rst:121 +msgid "" +"If the specified sound cannot be found, do not play the system default sound." +msgstr "" + +#: ../Doc/library/winsound.rst:126 +msgid "Do not interrupt sounds currently playing." +msgstr "" + +#: ../Doc/library/winsound.rst:131 +msgid "Return immediately if the sound driver is busy." +msgstr "" + +#: ../Doc/library/winsound.rst:140 ../Doc/library/winsound.rst:160 +msgid "Play the ``SystemDefault`` sound." +msgstr "" + +#: ../Doc/library/winsound.rst:145 +msgid "Play the ``SystemExclamation`` sound." +msgstr "" + +#: ../Doc/library/winsound.rst:150 +msgid "Play the ``SystemHand`` sound." +msgstr "" + +#: ../Doc/library/winsound.rst:155 +msgid "Play the ``SystemQuestion`` sound." +msgstr "" diff --git a/library/wsgiref.po b/library/wsgiref.po new file mode 100644 index 000000000..2f011ed7d --- /dev/null +++ b/library/wsgiref.po @@ -0,0 +1,873 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/wsgiref.rst:2 +msgid ":mod:`wsgiref` --- WSGI Utilities and Reference Implementation" +msgstr ":mod:`wsgiref` — Outils et implémentation de référence de WSGI" + +#: ../Doc/library/wsgiref.rst:12 +msgid "" +"The Web Server Gateway Interface (WSGI) is a standard interface between web " +"server software and web applications written in Python. Having a standard " +"interface makes it easy to use an application that supports WSGI with a " +"number of different web servers." +msgstr "" +"WSGI (*Web Server Gateway Interface*) est une interface standard entre le " +"serveur web et une application web écrite en Python. Avoir une interface " +"standardisée permet de faciliter l'usage de ces applications avec un certain " +"nombre de serveurs web différents." + +#: ../Doc/library/wsgiref.rst:17 +msgid "" +"Only authors of web servers and programming frameworks need to know every " +"detail and corner case of the WSGI design. You don't need to understand " +"every detail of WSGI just to install a WSGI application or to write a web " +"application using an existing framework." +msgstr "" +"Seules les personnes programmant des serveurs web et des cadriciels ont " +"besoin de connaître les détails d'implémentation et les cas particuliers de " +"l'architecture de WSGI. En tant qu'utilisateur WSGI vous avez uniquement " +"besoin d'installer WSGI ou d'utiliser un cadriciel existant." + +#: ../Doc/library/wsgiref.rst:22 +msgid "" +":mod:`wsgiref` is a reference implementation of the WSGI specification that " +"can be used to add WSGI support to a web server or framework. It provides " +"utilities for manipulating WSGI environment variables and response headers, " +"base classes for implementing WSGI servers, a demo HTTP server that serves " +"WSGI applications, and a validation tool that checks WSGI servers and " +"applications for conformance to the WSGI specification (:pep:`3333`)." +msgstr "" +":mod:`wsgiref` est une implémentation de référence de la spécification WSGI " +"qui peut être utilisée pour ajouter la prise en charge de WSGI par un " +"serveur web ou par un cadriciel. Elle fournit des outils pour manipuler les " +"variables d'environnement WSGI, les en-têtes de réponse, les classes de base " +"pour implémenter des serveurs WSGI, un serveur de démonstration " +"d'application WSGI et un outil de validation qui vérifie que les serveurs et " +"les applications WSGI sont conformes à la spécification WSGI (:pep:`3333`)." + +#: ../Doc/library/wsgiref.rst:29 +msgid "" +"See `wsgi.readthedocs.io `_ for more " +"information about WSGI, and links to tutorials and other resources." +msgstr "" +"Voir `wsgi.readthedocs.io `_ pour plus " +"d'informations à propos de WSGI ainsi que des liens vers des tutoriels et " +"d'autres ressources." + +#: ../Doc/library/wsgiref.rst:36 +msgid ":mod:`wsgiref.util` -- WSGI environment utilities" +msgstr ":mod:`wsgiref.util` — outils pour les environnements WSGI" + +#: ../Doc/library/wsgiref.rst:42 +msgid "" +"This module provides a variety of utility functions for working with WSGI " +"environments. A WSGI environment is a dictionary containing HTTP request " +"variables as described in :pep:`3333`. All of the functions taking an " +"*environ* parameter expect a WSGI-compliant dictionary to be supplied; " +"please see :pep:`3333` for a detailed specification." +msgstr "" +"Ce module fournit un certain nombre de fonctions pour manipuler des " +"environnements WSGI. Un environnement WSGI est un dictionnaire contenant les " +"variables de la requête HTTP comme décrit dans la :pep:`3333`. Toutes les " +"fonctions ayant comme argument *environ* s'attendent à ce qu'un dictionnaire " +"compatible WSGI soit fourni ; voir la :pep:`3333` pour la spécification " +"détaillée." + +#: ../Doc/library/wsgiref.rst:51 +msgid "" +"Return a guess for whether ``wsgi.url_scheme`` should be \"http\" or \"https" +"\", by checking for a ``HTTPS`` environment variable in the *environ* " +"dictionary. The return value is a string." +msgstr "" +"Tente de déterminer s'il faut assigner \"http\" ou \"https\" à ``wsgi." +"url_sheme``, en vérifiant si une variable d'environnement ``HTTPS`` est dans " +"le dictionnaire *environ*. La valeur renvoyée est une chaîne de caractères." + +#: ../Doc/library/wsgiref.rst:55 +msgid "" +"This function is useful when creating a gateway that wraps CGI or a CGI-like " +"protocol such as FastCGI. Typically, servers providing such protocols will " +"include a ``HTTPS`` variable with a value of \"1\" \"yes\", or \"on\" when a " +"request is received via SSL. So, this function returns \"https\" if such a " +"value is found, and \"http\" otherwise." +msgstr "" + +#: ../Doc/library/wsgiref.rst:64 +msgid "" +"Return the full request URI, optionally including the query string, using " +"the algorithm found in the \"URL Reconstruction\" section of :pep:`3333`. " +"If *include_query* is false, the query string is not included in the " +"resulting URI." +msgstr "" + +#: ../Doc/library/wsgiref.rst:71 +msgid "" +"Similar to :func:`request_uri`, except that the ``PATH_INFO`` and " +"``QUERY_STRING`` variables are ignored. The result is the base URI of the " +"application object addressed by the request." +msgstr "" + +#: ../Doc/library/wsgiref.rst:78 +msgid "" +"Shift a single name from ``PATH_INFO`` to ``SCRIPT_NAME`` and return the " +"name. The *environ* dictionary is *modified* in-place; use a copy if you " +"need to keep the original ``PATH_INFO`` or ``SCRIPT_NAME`` intact." +msgstr "" + +#: ../Doc/library/wsgiref.rst:82 +msgid "" +"If there are no remaining path segments in ``PATH_INFO``, ``None`` is " +"returned." +msgstr "" + +#: ../Doc/library/wsgiref.rst:84 +msgid "" +"Typically, this routine is used to process each portion of a request URI " +"path, for example to treat the path as a series of dictionary keys. This " +"routine modifies the passed-in environment to make it suitable for invoking " +"another WSGI application that is located at the target URI. For example, if " +"there is a WSGI application at ``/foo``, and the request URI path is ``/foo/" +"bar/baz``, and the WSGI application at ``/foo`` calls :func:" +"`shift_path_info`, it will receive the string \"bar\", and the environment " +"will be updated to be suitable for passing to a WSGI application at ``/foo/" +"bar``. That is, ``SCRIPT_NAME`` will change from ``/foo`` to ``/foo/bar``, " +"and ``PATH_INFO`` will change from ``/bar/baz`` to ``/baz``." +msgstr "" + +#: ../Doc/library/wsgiref.rst:95 +msgid "" +"When ``PATH_INFO`` is just a \"/\", this routine returns an empty string and " +"appends a trailing slash to ``SCRIPT_NAME``, even though empty path segments " +"are normally ignored, and ``SCRIPT_NAME`` doesn't normally end in a slash. " +"This is intentional behavior, to ensure that an application can tell the " +"difference between URIs ending in ``/x`` from ones ending in ``/x/`` when " +"using this routine to do object traversal." +msgstr "" + +#: ../Doc/library/wsgiref.rst:105 +msgid "Update *environ* with trivial defaults for testing purposes." +msgstr "" +"Met à jour *environ* avec des valeurs par défaut pour des cas de tests." + +#: ../Doc/library/wsgiref.rst:107 +msgid "" +"This routine adds various parameters required for WSGI, including " +"``HTTP_HOST``, ``SERVER_NAME``, ``SERVER_PORT``, ``REQUEST_METHOD``, " +"``SCRIPT_NAME``, ``PATH_INFO``, and all of the :pep:`3333`\\ -defined ``wsgi." +"*`` variables. It only supplies default values, and does not replace any " +"existing settings for these variables." +msgstr "" +"Cette fonction ajoute des paramètres requis pour WSGI, en particulier " +"``HTTP_HOST``, ``SERVER_NAME``, ``SERVER_PORT``, ``REQUEST_METHOD``, " +"``SCRIPT_NAME``, ``PATH_INFO`` et toutes les autres variables WSGI définies " +"dans la :pep:`3333`. Elle ne fournit que des valeurs par défaut sans toucher " +"aux valeurs déjà définies de ces variables." + +#: ../Doc/library/wsgiref.rst:113 +msgid "" +"This routine is intended to make it easier for unit tests of WSGI servers " +"and applications to set up dummy environments. It should NOT be used by " +"actual WSGI servers or applications, since the data is fake!" +msgstr "" +"Cette fonction a pour but de faciliter les tests unitaires des serveurs et " +"des applications WSGI dans des environnements factices. Elle ne devrait pas " +"être utilisée dans une application ou un serveur WSGI, étant donné que les " +"données sont factices !" + +#: ../Doc/library/wsgiref.rst:117 ../Doc/library/wsgiref.rst:164 +#: ../Doc/library/wsgiref.rst:284 ../Doc/library/wsgiref.rst:416 +msgid "Example usage::" +msgstr "Exemple d'utilisation ::" + +#: ../Doc/library/wsgiref.rst:141 +msgid "" +"In addition to the environment functions above, the :mod:`wsgiref.util` " +"module also provides these miscellaneous utilities:" +msgstr "" + +#: ../Doc/library/wsgiref.rst:147 +msgid "" +"Return true if 'header_name' is an HTTP/1.1 \"Hop-by-Hop\" header, as " +"defined by :rfc:`2616`." +msgstr "" + +#: ../Doc/library/wsgiref.rst:153 +msgid "" +"A wrapper to convert a file-like object to an :term:`iterator`. The " +"resulting objects support both :meth:`__getitem__` and :meth:`__iter__` " +"iteration styles, for compatibility with Python 2.1 and Jython. As the " +"object is iterated over, the optional *blksize* parameter will be repeatedly " +"passed to the *filelike* object's :meth:`read` method to obtain bytestrings " +"to yield. When :meth:`read` returns an empty bytestring, iteration is ended " +"and is not resumable." +msgstr "" + +#: ../Doc/library/wsgiref.rst:160 +msgid "" +"If *filelike* has a :meth:`close` method, the returned object will also have " +"a :meth:`close` method, and it will invoke the *filelike* object's :meth:" +"`close` method when called." +msgstr "" + +#: ../Doc/library/wsgiref.rst:179 +msgid ":mod:`wsgiref.headers` -- WSGI response header tools" +msgstr "" + +#: ../Doc/library/wsgiref.rst:185 +msgid "" +"This module provides a single class, :class:`Headers`, for convenient " +"manipulation of WSGI response headers using a mapping-like interface." +msgstr "" + +#: ../Doc/library/wsgiref.rst:191 +msgid "" +"Create a mapping-like object wrapping *headers*, which must be a list of " +"header name/value tuples as described in :pep:`3333`. The default value of " +"*headers* is an empty list." +msgstr "" + +#: ../Doc/library/wsgiref.rst:195 +msgid "" +":class:`Headers` objects support typical mapping operations including :meth:" +"`__getitem__`, :meth:`get`, :meth:`__setitem__`, :meth:`setdefault`, :meth:" +"`__delitem__` and :meth:`__contains__`. For each of these methods, the key " +"is the header name (treated case-insensitively), and the value is the first " +"value associated with that header name. Setting a header deletes any " +"existing values for that header, then adds a new value at the end of the " +"wrapped header list. Headers' existing order is generally maintained, with " +"new headers added to the end of the wrapped list." +msgstr "" + +#: ../Doc/library/wsgiref.rst:204 +msgid "" +"Unlike a dictionary, :class:`Headers` objects do not raise an error when you " +"try to get or delete a key that isn't in the wrapped header list. Getting a " +"nonexistent header just returns ``None``, and deleting a nonexistent header " +"does nothing." +msgstr "" + +#: ../Doc/library/wsgiref.rst:209 +msgid "" +":class:`Headers` objects also support :meth:`keys`, :meth:`values`, and :" +"meth:`items` methods. The lists returned by :meth:`keys` and :meth:`items` " +"can include the same key more than once if there is a multi-valued header. " +"The ``len()`` of a :class:`Headers` object is the same as the length of its :" +"meth:`items`, which is the same as the length of the wrapped header list. " +"In fact, the :meth:`items` method just returns a copy of the wrapped header " +"list." +msgstr "" + +#: ../Doc/library/wsgiref.rst:216 +msgid "" +"Calling ``bytes()`` on a :class:`Headers` object returns a formatted " +"bytestring suitable for transmission as HTTP response headers. Each header " +"is placed on a line with its value, separated by a colon and a space. Each " +"line is terminated by a carriage return and line feed, and the bytestring is " +"terminated with a blank line." +msgstr "" + +#: ../Doc/library/wsgiref.rst:222 +msgid "" +"In addition to their mapping interface and formatting features, :class:" +"`Headers` objects also have the following methods for querying and adding " +"multi-valued headers, and for adding headers with MIME parameters:" +msgstr "" + +#: ../Doc/library/wsgiref.rst:229 +msgid "Return a list of all the values for the named header." +msgstr "Renvoie une liste de toutes les valeurs pour l'en-tête *name*." + +#: ../Doc/library/wsgiref.rst:231 +msgid "" +"The returned list will be sorted in the order they appeared in the original " +"header list or were added to this instance, and may contain duplicates. Any " +"fields deleted and re-inserted are always appended to the header list. If " +"no fields exist with the given name, returns an empty list." +msgstr "" + +#: ../Doc/library/wsgiref.rst:239 +msgid "" +"Add a (possibly multi-valued) header, with optional MIME parameters " +"specified via keyword arguments." +msgstr "" + +#: ../Doc/library/wsgiref.rst:242 +msgid "" +"*name* is the header field to add. Keyword arguments can be used to set " +"MIME parameters for the header field. Each parameter must be a string or " +"``None``. Underscores in parameter names are converted to dashes, since " +"dashes are illegal in Python identifiers, but many MIME parameter names " +"include dashes. If the parameter value is a string, it is added to the " +"header value parameters in the form ``name=\"value\"``. If it is ``None``, " +"only the parameter name is added. (This is used for MIME parameters without " +"a value.) Example usage::" +msgstr "" + +#: ../Doc/library/wsgiref.rst:252 +msgid "The above will add a header that looks like this::" +msgstr "Le code ci-dessus ajoute un en-tête qui ressemble à ceci ::" + +#: ../Doc/library/wsgiref.rst:257 +msgid "*headers* parameter is optional." +msgstr "Le paramètre *headers* est optionnel." + +#: ../Doc/library/wsgiref.rst:262 +msgid ":mod:`wsgiref.simple_server` -- a simple WSGI HTTP server" +msgstr "" + +#: ../Doc/library/wsgiref.rst:268 +msgid "" +"This module implements a simple HTTP server (based on :mod:`http.server`) " +"that serves WSGI applications. Each server instance serves a single WSGI " +"application on a given host and port. If you want to serve multiple " +"applications on a single host and port, you should create a WSGI application " +"that parses ``PATH_INFO`` to select which application to invoke for each " +"request. (E.g., using the :func:`shift_path_info` function from :mod:" +"`wsgiref.util`.)" +msgstr "" + +#: ../Doc/library/wsgiref.rst:279 +msgid "" +"Create a new WSGI server listening on *host* and *port*, accepting " +"connections for *app*. The return value is an instance of the supplied " +"*server_class*, and will process requests using the specified " +"*handler_class*. *app* must be a WSGI application object, as defined by :" +"pep:`3333`." +msgstr "" + +#: ../Doc/library/wsgiref.rst:300 +msgid "" +"This function is a small but complete WSGI application that returns a text " +"page containing the message \"Hello world!\" and a list of the key/value " +"pairs provided in the *environ* parameter. It's useful for verifying that a " +"WSGI server (such as :mod:`wsgiref.simple_server`) is able to run a simple " +"WSGI application correctly." +msgstr "" + +#: ../Doc/library/wsgiref.rst:309 +msgid "" +"Create a :class:`WSGIServer` instance. *server_address* should be a ``(host," +"port)`` tuple, and *RequestHandlerClass* should be the subclass of :class:" +"`http.server.BaseHTTPRequestHandler` that will be used to process requests." +msgstr "" + +#: ../Doc/library/wsgiref.rst:314 +msgid "" +"You do not normally need to call this constructor, as the :func:" +"`make_server` function can handle all the details for you." +msgstr "" + +#: ../Doc/library/wsgiref.rst:317 +msgid "" +":class:`WSGIServer` is a subclass of :class:`http.server.HTTPServer`, so all " +"of its methods (such as :meth:`serve_forever` and :meth:`handle_request`) " +"are available. :class:`WSGIServer` also provides these WSGI-specific methods:" +msgstr "" + +#: ../Doc/library/wsgiref.rst:324 +msgid "" +"Sets the callable *application* as the WSGI application that will receive " +"requests." +msgstr "" + +#: ../Doc/library/wsgiref.rst:330 +msgid "Returns the currently-set application callable." +msgstr "" + +#: ../Doc/library/wsgiref.rst:332 +msgid "" +"Normally, however, you do not need to use these additional methods, as :meth:" +"`set_app` is normally called by :func:`make_server`, and the :meth:`get_app` " +"exists mainly for the benefit of request handler instances." +msgstr "" + +#: ../Doc/library/wsgiref.rst:339 +msgid "" +"Create an HTTP handler for the given *request* (i.e. a socket), " +"*client_address* (a ``(host,port)`` tuple), and *server* (:class:" +"`WSGIServer` instance)." +msgstr "" + +#: ../Doc/library/wsgiref.rst:342 +msgid "" +"You do not need to create instances of this class directly; they are " +"automatically created as needed by :class:`WSGIServer` objects. You can, " +"however, subclass this class and supply it as a *handler_class* to the :func:" +"`make_server` function. Some possibly relevant methods for overriding in " +"subclasses:" +msgstr "" + +#: ../Doc/library/wsgiref.rst:351 +msgid "" +"Returns a dictionary containing the WSGI environment for a request. The " +"default implementation copies the contents of the :class:`WSGIServer` " +"object's :attr:`base_environ` dictionary attribute and then adds various " +"headers derived from the HTTP request. Each call to this method should " +"return a new dictionary containing all of the relevant CGI environment " +"variables as specified in :pep:`3333`." +msgstr "" + +#: ../Doc/library/wsgiref.rst:361 +msgid "" +"Return the object that should be used as the ``wsgi.errors`` stream. The " +"default implementation just returns ``sys.stderr``." +msgstr "" + +#: ../Doc/library/wsgiref.rst:367 +msgid "" +"Process the HTTP request. The default implementation creates a handler " +"instance using a :mod:`wsgiref.handlers` class to implement the actual WSGI " +"application interface." +msgstr "" + +#: ../Doc/library/wsgiref.rst:373 +msgid ":mod:`wsgiref.validate` --- WSGI conformance checker" +msgstr "" + +#: ../Doc/library/wsgiref.rst:379 +msgid "" +"When creating new WSGI application objects, frameworks, servers, or " +"middleware, it can be useful to validate the new code's conformance using :" +"mod:`wsgiref.validate`. This module provides a function that creates WSGI " +"application objects that validate communications between a WSGI server or " +"gateway and a WSGI application object, to check both sides for protocol " +"conformance." +msgstr "" + +#: ../Doc/library/wsgiref.rst:386 +msgid "" +"Note that this utility does not guarantee complete :pep:`3333` compliance; " +"an absence of errors from this module does not necessarily mean that errors " +"do not exist. However, if this module does produce an error, then it is " +"virtually certain that either the server or application is not 100% " +"compliant." +msgstr "" + +#: ../Doc/library/wsgiref.rst:391 +msgid "" +"This module is based on the :mod:`paste.lint` module from Ian Bicking's " +"\"Python Paste\" library." +msgstr "" + +#: ../Doc/library/wsgiref.rst:397 +msgid "" +"Wrap *application* and return a new WSGI application object. The returned " +"application will forward all requests to the original *application*, and " +"will check that both the *application* and the server invoking it are " +"conforming to the WSGI specification and to :rfc:`2616`." +msgstr "" + +#: ../Doc/library/wsgiref.rst:402 +msgid "" +"Any detected nonconformance results in an :exc:`AssertionError` being " +"raised; note, however, that how these errors are handled is server-" +"dependent. For example, :mod:`wsgiref.simple_server` and other servers " +"based on :mod:`wsgiref.handlers` (that don't override the error handling " +"methods to do something else) will simply output a message that an error has " +"occurred, and dump the traceback to ``sys.stderr`` or some other error " +"stream." +msgstr "" + +#: ../Doc/library/wsgiref.rst:409 +msgid "" +"This wrapper may also generate output using the :mod:`warnings` module to " +"indicate behaviors that are questionable but which may not actually be " +"prohibited by :pep:`3333`. Unless they are suppressed using Python command-" +"line options or the :mod:`warnings` API, any such warnings will be written " +"to ``sys.stderr`` (*not* ``wsgi.errors``, unless they happen to be the same " +"object)." +msgstr "" + +#: ../Doc/library/wsgiref.rst:441 +msgid ":mod:`wsgiref.handlers` -- server/gateway base classes" +msgstr "" + +#: ../Doc/library/wsgiref.rst:447 +msgid "" +"This module provides base handler classes for implementing WSGI servers and " +"gateways. These base classes handle most of the work of communicating with " +"a WSGI application, as long as they are given a CGI-like environment, along " +"with input, output, and error streams." +msgstr "" + +#: ../Doc/library/wsgiref.rst:455 +msgid "" +"CGI-based invocation via ``sys.stdin``, ``sys.stdout``, ``sys.stderr`` and " +"``os.environ``. This is useful when you have a WSGI application and want to " +"run it as a CGI script. Simply invoke ``CGIHandler().run(app)``, where " +"``app`` is the WSGI application object you wish to invoke." +msgstr "" + +#: ../Doc/library/wsgiref.rst:460 +msgid "" +"This class is a subclass of :class:`BaseCGIHandler` that sets ``wsgi." +"run_once`` to true, ``wsgi.multithread`` to false, and ``wsgi.multiprocess`` " +"to true, and always uses :mod:`sys` and :mod:`os` to obtain the necessary " +"CGI streams and environment." +msgstr "" + +#: ../Doc/library/wsgiref.rst:468 +msgid "" +"A specialized alternative to :class:`CGIHandler`, for use when deploying on " +"Microsoft's IIS web server, without having set the config allowPathInfo " +"option (IIS>=7) or metabase allowPathInfoForScriptMappings (IIS<7)." +msgstr "" + +#: ../Doc/library/wsgiref.rst:472 +msgid "" +"By default, IIS gives a ``PATH_INFO`` that duplicates the ``SCRIPT_NAME`` at " +"the front, causing problems for WSGI applications that wish to implement " +"routing. This handler strips any such duplicated path." +msgstr "" + +#: ../Doc/library/wsgiref.rst:476 +msgid "" +"IIS can be configured to pass the correct ``PATH_INFO``, but this causes " +"another bug where ``PATH_TRANSLATED`` is wrong. Luckily this variable is " +"rarely used and is not guaranteed by WSGI. On IIS<7, though, the setting can " +"only be made on a vhost level, affecting all other script mappings, many of " +"which break when exposed to the ``PATH_TRANSLATED`` bug. For this reason " +"IIS<7 is almost never deployed with the fix. (Even IIS7 rarely uses it " +"because there is still no UI for it.)" +msgstr "" + +#: ../Doc/library/wsgiref.rst:484 +msgid "" +"There is no way for CGI code to tell whether the option was set, so a " +"separate handler class is provided. It is used in the same way as :class:" +"`CGIHandler`, i.e., by calling ``IISCGIHandler().run(app)``, where ``app`` " +"is the WSGI application object you wish to invoke." +msgstr "" + +#: ../Doc/library/wsgiref.rst:494 +msgid "" +"Similar to :class:`CGIHandler`, but instead of using the :mod:`sys` and :mod:" +"`os` modules, the CGI environment and I/O streams are specified explicitly. " +"The *multithread* and *multiprocess* values are used to set the ``wsgi." +"multithread`` and ``wsgi.multiprocess`` flags for any applications run by " +"the handler instance." +msgstr "" + +#: ../Doc/library/wsgiref.rst:500 +msgid "" +"This class is a subclass of :class:`SimpleHandler` intended for use with " +"software other than HTTP \"origin servers\". If you are writing a gateway " +"protocol implementation (such as CGI, FastCGI, SCGI, etc.) that uses a " +"``Status:`` header to send an HTTP status, you probably want to subclass " +"this instead of :class:`SimpleHandler`." +msgstr "" + +#: ../Doc/library/wsgiref.rst:509 +msgid "" +"Similar to :class:`BaseCGIHandler`, but designed for use with HTTP origin " +"servers. If you are writing an HTTP server implementation, you will " +"probably want to subclass this instead of :class:`BaseCGIHandler`." +msgstr "" + +#: ../Doc/library/wsgiref.rst:513 +msgid "" +"This class is a subclass of :class:`BaseHandler`. It overrides the :meth:" +"`__init__`, :meth:`get_stdin`, :meth:`get_stderr`, :meth:`add_cgi_vars`, :" +"meth:`_write`, and :meth:`_flush` methods to support explicitly setting the " +"environment and streams via the constructor. The supplied environment and " +"streams are stored in the :attr:`stdin`, :attr:`stdout`, :attr:`stderr`, " +"and :attr:`environ` attributes." +msgstr "" + +#: ../Doc/library/wsgiref.rst:520 +msgid "" +"The :meth:`~io.BufferedIOBase.write` method of *stdout* should write each " +"chunk in full, like :class:`io.BufferedIOBase`." +msgstr "" + +#: ../Doc/library/wsgiref.rst:526 +msgid "" +"This is an abstract base class for running WSGI applications. Each instance " +"will handle a single HTTP request, although in principle you could create a " +"subclass that was reusable for multiple requests." +msgstr "" + +#: ../Doc/library/wsgiref.rst:530 +msgid "" +":class:`BaseHandler` instances have only one method intended for external " +"use:" +msgstr "" + +#: ../Doc/library/wsgiref.rst:535 +msgid "Run the specified WSGI application, *app*." +msgstr "" + +#: ../Doc/library/wsgiref.rst:537 +msgid "" +"All of the other :class:`BaseHandler` methods are invoked by this method in " +"the process of running the application, and thus exist primarily to allow " +"customizing the process." +msgstr "" + +#: ../Doc/library/wsgiref.rst:541 +msgid "The following methods MUST be overridden in a subclass:" +msgstr "" + +#: ../Doc/library/wsgiref.rst:546 +msgid "" +"Buffer the bytes *data* for transmission to the client. It's okay if this " +"method actually transmits the data; :class:`BaseHandler` just separates " +"write and flush operations for greater efficiency when the underlying system " +"actually has such a distinction." +msgstr "" + +#: ../Doc/library/wsgiref.rst:554 +msgid "" +"Force buffered data to be transmitted to the client. It's okay if this " +"method is a no-op (i.e., if :meth:`_write` actually sends the data)." +msgstr "" + +#: ../Doc/library/wsgiref.rst:560 +msgid "" +"Return an input stream object suitable for use as the ``wsgi.input`` of the " +"request currently being processed." +msgstr "" + +#: ../Doc/library/wsgiref.rst:566 +msgid "" +"Return an output stream object suitable for use as the ``wsgi.errors`` of " +"the request currently being processed." +msgstr "" + +#: ../Doc/library/wsgiref.rst:572 +msgid "" +"Insert CGI variables for the current request into the :attr:`environ` " +"attribute." +msgstr "" + +#: ../Doc/library/wsgiref.rst:574 +msgid "" +"Here are some other methods and attributes you may wish to override. This " +"list is only a summary, however, and does not include every method that can " +"be overridden. You should consult the docstrings and source code for " +"additional information before attempting to create a customized :class:" +"`BaseHandler` subclass." +msgstr "" + +#: ../Doc/library/wsgiref.rst:580 +msgid "Attributes and methods for customizing the WSGI environment:" +msgstr "" + +#: ../Doc/library/wsgiref.rst:585 +msgid "" +"The value to be used for the ``wsgi.multithread`` environment variable. It " +"defaults to true in :class:`BaseHandler`, but may have a different default " +"(or be set by the constructor) in the other subclasses." +msgstr "" + +#: ../Doc/library/wsgiref.rst:592 +msgid "" +"The value to be used for the ``wsgi.multiprocess`` environment variable. It " +"defaults to true in :class:`BaseHandler`, but may have a different default " +"(or be set by the constructor) in the other subclasses." +msgstr "" + +#: ../Doc/library/wsgiref.rst:599 +msgid "" +"The value to be used for the ``wsgi.run_once`` environment variable. It " +"defaults to false in :class:`BaseHandler`, but :class:`CGIHandler` sets it " +"to true by default." +msgstr "" + +#: ../Doc/library/wsgiref.rst:606 +msgid "" +"The default environment variables to be included in every request's WSGI " +"environment. By default, this is a copy of ``os.environ`` at the time that :" +"mod:`wsgiref.handlers` was imported, but subclasses can either create their " +"own at the class or instance level. Note that the dictionary should be " +"considered read-only, since the default value is shared between multiple " +"classes and instances." +msgstr "" + +#: ../Doc/library/wsgiref.rst:616 +msgid "" +"If the :attr:`origin_server` attribute is set, this attribute's value is " +"used to set the default ``SERVER_SOFTWARE`` WSGI environment variable, and " +"also to set a default ``Server:`` header in HTTP responses. It is ignored " +"for handlers (such as :class:`BaseCGIHandler` and :class:`CGIHandler`) that " +"are not HTTP origin servers." +msgstr "" + +#: ../Doc/library/wsgiref.rst:622 +msgid "" +"The term \"Python\" is replaced with implementation specific term like " +"\"CPython\", \"Jython\" etc." +msgstr "" + +#: ../Doc/library/wsgiref.rst:628 +msgid "" +"Return the URL scheme being used for the current request. The default " +"implementation uses the :func:`guess_scheme` function from :mod:`wsgiref." +"util` to guess whether the scheme should be \"http\" or \"https\", based on " +"the current request's :attr:`environ` variables." +msgstr "" + +#: ../Doc/library/wsgiref.rst:636 +msgid "" +"Set the :attr:`environ` attribute to a fully-populated WSGI environment. " +"The default implementation uses all of the above methods and attributes, " +"plus the :meth:`get_stdin`, :meth:`get_stderr`, and :meth:`add_cgi_vars` " +"methods and the :attr:`wsgi_file_wrapper` attribute. It also inserts a " +"``SERVER_SOFTWARE`` key if not present, as long as the :attr:`origin_server` " +"attribute is a true value and the :attr:`server_software` attribute is set." +msgstr "" + +#: ../Doc/library/wsgiref.rst:643 +msgid "Methods and attributes for customizing exception handling:" +msgstr "" + +#: ../Doc/library/wsgiref.rst:648 +msgid "" +"Log the *exc_info* tuple in the server log. *exc_info* is a ``(type, value, " +"traceback)`` tuple. The default implementation simply writes the traceback " +"to the request's ``wsgi.errors`` stream and flushes it. Subclasses can " +"override this method to change the format or retarget the output, mail the " +"traceback to an administrator, or whatever other action may be deemed " +"suitable." +msgstr "" + +#: ../Doc/library/wsgiref.rst:657 +msgid "" +"The maximum number of frames to include in tracebacks output by the default :" +"meth:`log_exception` method. If ``None``, all frames are included." +msgstr "" + +#: ../Doc/library/wsgiref.rst:663 +msgid "" +"This method is a WSGI application to generate an error page for the user. " +"It is only invoked if an error occurs before headers are sent to the client." +msgstr "" + +#: ../Doc/library/wsgiref.rst:666 +msgid "" +"This method can access the current error information using ``sys." +"exc_info()``, and should pass that information to *start_response* when " +"calling it (as described in the \"Error Handling\" section of :pep:`3333`)." +msgstr "" + +#: ../Doc/library/wsgiref.rst:670 +msgid "" +"The default implementation just uses the :attr:`error_status`, :attr:" +"`error_headers`, and :attr:`error_body` attributes to generate an output " +"page. Subclasses can override this to produce more dynamic error output." +msgstr "" + +#: ../Doc/library/wsgiref.rst:674 +msgid "" +"Note, however, that it's not recommended from a security perspective to spit " +"out diagnostics to any old user; ideally, you should have to do something " +"special to enable diagnostic output, which is why the default implementation " +"doesn't include any." +msgstr "" + +#: ../Doc/library/wsgiref.rst:682 +msgid "" +"The HTTP status used for error responses. This should be a status string as " +"defined in :pep:`3333`; it defaults to a 500 code and message." +msgstr "" + +#: ../Doc/library/wsgiref.rst:688 +msgid "" +"The HTTP headers used for error responses. This should be a list of WSGI " +"response headers (``(name, value)`` tuples), as described in :pep:`3333`. " +"The default list just sets the content type to ``text/plain``." +msgstr "" + +#: ../Doc/library/wsgiref.rst:695 +msgid "" +"The error response body. This should be an HTTP response body bytestring. " +"It defaults to the plain text, \"A server error occurred. Please contact " +"the administrator.\"" +msgstr "" + +#: ../Doc/library/wsgiref.rst:699 +msgid "" +"Methods and attributes for :pep:`3333`'s \"Optional Platform-Specific File " +"Handling\" feature:" +msgstr "" + +#: ../Doc/library/wsgiref.rst:705 +msgid "" +"A ``wsgi.file_wrapper`` factory, or ``None``. The default value of this " +"attribute is the :class:`wsgiref.util.FileWrapper` class." +msgstr "" + +#: ../Doc/library/wsgiref.rst:711 +msgid "" +"Override to implement platform-specific file transmission. This method is " +"called only if the application's return value is an instance of the class " +"specified by the :attr:`wsgi_file_wrapper` attribute. It should return a " +"true value if it was able to successfully transmit the file, so that the " +"default transmission code will not be executed. The default implementation " +"of this method just returns a false value." +msgstr "" + +#: ../Doc/library/wsgiref.rst:718 +msgid "Miscellaneous methods and attributes:" +msgstr "" + +#: ../Doc/library/wsgiref.rst:723 +msgid "" +"This attribute should be set to a true value if the handler's :meth:`_write` " +"and :meth:`_flush` are being used to communicate directly to the client, " +"rather than via a CGI-like gateway protocol that wants the HTTP status in a " +"special ``Status:`` header." +msgstr "" + +#: ../Doc/library/wsgiref.rst:728 +msgid "" +"This attribute's default value is true in :class:`BaseHandler`, but false " +"in :class:`BaseCGIHandler` and :class:`CGIHandler`." +msgstr "" + +#: ../Doc/library/wsgiref.rst:734 +msgid "" +"If :attr:`origin_server` is true, this string attribute is used to set the " +"HTTP version of the response set to the client. It defaults to ``\"1.0\"``." +msgstr "" + +#: ../Doc/library/wsgiref.rst:740 +msgid "" +"Transcode CGI variables from ``os.environ`` to PEP 3333 \"bytes in unicode\" " +"strings, returning a new dictionary. This function is used by :class:" +"`CGIHandler` and :class:`IISCGIHandler` in place of directly using ``os." +"environ``, which is not necessarily WSGI-compliant on all platforms and web " +"servers using Python 3 -- specifically, ones where the OS's actual " +"environment is Unicode (i.e. Windows), or ones where the environment is " +"bytes, but the system encoding used by Python to decode it is anything other " +"than ISO-8859-1 (e.g. Unix systems using UTF-8)." +msgstr "" + +#: ../Doc/library/wsgiref.rst:749 +msgid "" +"If you are implementing a CGI-based handler of your own, you probably want " +"to use this routine instead of just copying values out of ``os.environ`` " +"directly." +msgstr "" + +#: ../Doc/library/wsgiref.rst:757 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/wsgiref.rst:759 +msgid "This is a working \"Hello World\" WSGI application::" +msgstr "" diff --git a/library/xdrlib.po b/library/xdrlib.po new file mode 100644 index 000000000..933af45d8 --- /dev/null +++ b/library/xdrlib.po @@ -0,0 +1,301 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/xdrlib.rst:2 +msgid ":mod:`xdrlib` --- Encode and decode XDR data" +msgstr "" + +#: ../Doc/library/xdrlib.rst:7 +msgid "**Source code:** :source:`Lib/xdrlib.py`" +msgstr "**Code source :** :source:`Lib/xdrlib.py`" + +#: ../Doc/library/xdrlib.rst:15 +msgid "" +"The :mod:`xdrlib` module supports the External Data Representation Standard " +"as described in :rfc:`1014`, written by Sun Microsystems, Inc. June 1987. " +"It supports most of the data types described in the RFC." +msgstr "" + +#: ../Doc/library/xdrlib.rst:19 +msgid "" +"The :mod:`xdrlib` module defines two classes, one for packing variables into " +"XDR representation, and another for unpacking from XDR representation. " +"There are also two exception classes." +msgstr "" + +#: ../Doc/library/xdrlib.rst:26 +msgid "" +":class:`Packer` is the class for packing data into XDR representation. The :" +"class:`Packer` class is instantiated with no arguments." +msgstr "" + +#: ../Doc/library/xdrlib.rst:32 +msgid "" +"``Unpacker`` is the complementary class which unpacks XDR data values from a " +"string buffer. The input buffer is given as *data*." +msgstr "" + +#: ../Doc/library/xdrlib.rst:40 +msgid ":rfc:`1014` - XDR: External Data Representation Standard" +msgstr "" + +#: ../Doc/library/xdrlib.rst:39 +msgid "" +"This RFC defined the encoding of data which was XDR at the time this module " +"was originally written. It has apparently been obsoleted by :rfc:`1832`." +msgstr "" + +#: ../Doc/library/xdrlib.rst:42 +msgid ":rfc:`1832` - XDR: External Data Representation Standard" +msgstr "" + +#: ../Doc/library/xdrlib.rst:43 +msgid "Newer RFC that provides a revised definition of XDR." +msgstr "" + +#: ../Doc/library/xdrlib.rst:49 +msgid "Packer Objects" +msgstr "" + +#: ../Doc/library/xdrlib.rst:51 +msgid ":class:`Packer` instances have the following methods:" +msgstr "" + +#: ../Doc/library/xdrlib.rst:56 +msgid "Returns the current pack buffer as a string." +msgstr "" + +#: ../Doc/library/xdrlib.rst:61 +msgid "Resets the pack buffer to the empty string." +msgstr "" + +#: ../Doc/library/xdrlib.rst:63 +msgid "" +"In general, you can pack any of the most common XDR data types by calling " +"the appropriate ``pack_type()`` method. Each method takes a single " +"argument, the value to pack. The following simple data type packing methods " +"are supported: :meth:`pack_uint`, :meth:`pack_int`, :meth:`pack_enum`, :meth:" +"`pack_bool`, :meth:`pack_uhyper`, and :meth:`pack_hyper`." +msgstr "" + +#: ../Doc/library/xdrlib.rst:72 +msgid "Packs the single-precision floating point number *value*." +msgstr "" + +#: ../Doc/library/xdrlib.rst:77 +msgid "Packs the double-precision floating point number *value*." +msgstr "" + +#: ../Doc/library/xdrlib.rst:79 +msgid "The following methods support packing strings, bytes, and opaque data:" +msgstr "" + +#: ../Doc/library/xdrlib.rst:84 +msgid "" +"Packs a fixed length string, *s*. *n* is the length of the string but it is " +"*not* packed into the data buffer. The string is padded with null bytes if " +"necessary to guaranteed 4 byte alignment." +msgstr "" + +#: ../Doc/library/xdrlib.rst:91 +msgid "" +"Packs a fixed length opaque data stream, similarly to :meth:`pack_fstring`." +msgstr "" + +#: ../Doc/library/xdrlib.rst:96 +msgid "" +"Packs a variable length string, *s*. The length of the string is first " +"packed as an unsigned integer, then the string data is packed with :meth:" +"`pack_fstring`." +msgstr "" + +#: ../Doc/library/xdrlib.rst:103 +msgid "" +"Packs a variable length opaque data string, similarly to :meth:`pack_string`." +msgstr "" + +#: ../Doc/library/xdrlib.rst:108 +msgid "Packs a variable length byte stream, similarly to :meth:`pack_string`." +msgstr "" + +#: ../Doc/library/xdrlib.rst:110 +msgid "The following methods support packing arrays and lists:" +msgstr "" + +#: ../Doc/library/xdrlib.rst:115 +msgid "" +"Packs a *list* of homogeneous items. This method is useful for lists with " +"an indeterminate size; i.e. the size is not available until the entire list " +"has been walked. For each item in the list, an unsigned integer ``1`` is " +"packed first, followed by the data value from the list. *pack_item* is the " +"function that is called to pack the individual item. At the end of the " +"list, an unsigned integer ``0`` is packed." +msgstr "" + +#: ../Doc/library/xdrlib.rst:122 +msgid "" +"For example, to pack a list of integers, the code might appear like this::" +msgstr "" + +#: ../Doc/library/xdrlib.rst:131 +msgid "" +"Packs a fixed length list (*array*) of homogeneous items. *n* is the length " +"of the list; it is *not* packed into the buffer, but a :exc:`ValueError` " +"exception is raised if ``len(array)`` is not equal to *n*. As above, " +"*pack_item* is the function used to pack each element." +msgstr "" + +#: ../Doc/library/xdrlib.rst:139 +msgid "" +"Packs a variable length *list* of homogeneous items. First, the length of " +"the list is packed as an unsigned integer, then each element is packed as " +"in :meth:`pack_farray` above." +msgstr "" + +#: ../Doc/library/xdrlib.rst:147 +msgid "Unpacker Objects" +msgstr "" + +#: ../Doc/library/xdrlib.rst:149 +msgid "The :class:`Unpacker` class offers the following methods:" +msgstr "" + +#: ../Doc/library/xdrlib.rst:154 +msgid "Resets the string buffer with the given *data*." +msgstr "" + +#: ../Doc/library/xdrlib.rst:159 +msgid "Returns the current unpack position in the data buffer." +msgstr "" + +#: ../Doc/library/xdrlib.rst:164 +msgid "" +"Sets the data buffer unpack position to *position*. You should be careful " +"about using :meth:`get_position` and :meth:`set_position`." +msgstr "" + +#: ../Doc/library/xdrlib.rst:170 +msgid "Returns the current unpack data buffer as a string." +msgstr "" + +#: ../Doc/library/xdrlib.rst:175 +msgid "" +"Indicates unpack completion. Raises an :exc:`Error` exception if all of the " +"data has not been unpacked." +msgstr "" + +#: ../Doc/library/xdrlib.rst:178 +msgid "" +"In addition, every data type that can be packed with a :class:`Packer`, can " +"be unpacked with an :class:`Unpacker`. Unpacking methods are of the form " +"``unpack_type()``, and take no arguments. They return the unpacked object." +msgstr "" + +#: ../Doc/library/xdrlib.rst:185 +msgid "Unpacks a single-precision floating point number." +msgstr "" + +#: ../Doc/library/xdrlib.rst:190 +msgid "" +"Unpacks a double-precision floating point number, similarly to :meth:" +"`unpack_float`." +msgstr "" + +#: ../Doc/library/xdrlib.rst:193 +msgid "" +"In addition, the following methods unpack strings, bytes, and opaque data:" +msgstr "" + +#: ../Doc/library/xdrlib.rst:198 +msgid "" +"Unpacks and returns a fixed length string. *n* is the number of characters " +"expected. Padding with null bytes to guaranteed 4 byte alignment is assumed." +msgstr "" + +#: ../Doc/library/xdrlib.rst:204 +msgid "" +"Unpacks and returns a fixed length opaque data stream, similarly to :meth:" +"`unpack_fstring`." +msgstr "" + +#: ../Doc/library/xdrlib.rst:210 +msgid "" +"Unpacks and returns a variable length string. The length of the string is " +"first unpacked as an unsigned integer, then the string data is unpacked " +"with :meth:`unpack_fstring`." +msgstr "" + +#: ../Doc/library/xdrlib.rst:217 +msgid "" +"Unpacks and returns a variable length opaque data string, similarly to :meth:" +"`unpack_string`." +msgstr "" + +#: ../Doc/library/xdrlib.rst:223 +msgid "" +"Unpacks and returns a variable length byte stream, similarly to :meth:" +"`unpack_string`." +msgstr "" + +#: ../Doc/library/xdrlib.rst:226 +msgid "The following methods support unpacking arrays and lists:" +msgstr "" + +#: ../Doc/library/xdrlib.rst:231 +msgid "" +"Unpacks and returns a list of homogeneous items. The list is unpacked one " +"element at a time by first unpacking an unsigned integer flag. If the flag " +"is ``1``, then the item is unpacked and appended to the list. A flag of " +"``0`` indicates the end of the list. *unpack_item* is the function that is " +"called to unpack the items." +msgstr "" + +#: ../Doc/library/xdrlib.rst:240 +msgid "" +"Unpacks and returns (as a list) a fixed length array of homogeneous items. " +"*n* is number of list elements to expect in the buffer. As above, " +"*unpack_item* is the function used to unpack each element." +msgstr "" + +#: ../Doc/library/xdrlib.rst:247 +msgid "" +"Unpacks and returns a variable length *list* of homogeneous items. First, " +"the length of the list is unpacked as an unsigned integer, then each element " +"is unpacked as in :meth:`unpack_farray` above." +msgstr "" + +#: ../Doc/library/xdrlib.rst:255 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/xdrlib.rst:257 +msgid "Exceptions in this module are coded as class instances:" +msgstr "" + +#: ../Doc/library/xdrlib.rst:262 +msgid "" +"The base exception class. :exc:`Error` has a single public attribute :attr:" +"`msg` containing the description of the error." +msgstr "" + +#: ../Doc/library/xdrlib.rst:268 +msgid "" +"Class derived from :exc:`Error`. Contains no additional instance variables." +msgstr "" + +#: ../Doc/library/xdrlib.rst:270 +msgid "Here is an example of how you would catch one of these exceptions::" +msgstr "" diff --git a/library/xml.dom.minidom.po b/library/xml.dom.minidom.po new file mode 100644 index 000000000..c23cda6ec --- /dev/null +++ b/library/xml.dom.minidom.po @@ -0,0 +1,344 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2018-09-29 19:35+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/xml.dom.minidom.rst:2 +msgid ":mod:`xml.dom.minidom` --- Minimal DOM implementation" +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:11 +msgid "**Source code:** :source:`Lib/xml/dom/minidom.py`" +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:15 +msgid "" +":mod:`xml.dom.minidom` is a minimal implementation of the Document Object " +"Model interface, with an API similar to that in other languages. It is " +"intended to be simpler than the full DOM and also significantly smaller. " +"Users who are not already proficient with the DOM should consider using the :" +"mod:`xml.etree.ElementTree` module for their XML processing instead." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:24 +msgid "" +"The :mod:`xml.dom.minidom` module is not secure against maliciously " +"constructed data. If you need to parse untrusted or unauthenticated data " +"see :ref:`xml-vulnerabilities`." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:29 +msgid "" +"DOM applications typically start by parsing some XML into a DOM. With :mod:" +"`xml.dom.minidom`, this is done through the parse functions::" +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:41 +msgid "" +"The :func:`parse` function can take either a filename or an open file object." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:46 +msgid "" +"Return a :class:`Document` from the given input. *filename_or_file* may be " +"either a file name, or a file-like object. *parser*, if given, must be a " +"SAX2 parser object. This function will change the document handler of the " +"parser and activate namespace support; other parser configuration (like " +"setting an entity resolver) must have been done in advance." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:52 +msgid "" +"If you have XML in a string, you can use the :func:`parseString` function " +"instead:" +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:58 +msgid "" +"Return a :class:`Document` that represents the *string*. This method creates " +"an :class:`io.StringIO` object for the string and passes that on to :func:" +"`parse`." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:61 +msgid "" +"Both functions return a :class:`Document` object representing the content of " +"the document." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:64 +msgid "" +"What the :func:`parse` and :func:`parseString` functions do is connect an " +"XML parser with a \"DOM builder\" that can accept parse events from any SAX " +"parser and convert them into a DOM tree. The name of the functions are " +"perhaps misleading, but are easy to grasp when learning the interfaces. The " +"parsing of the document will be completed before these functions return; " +"it's simply that these functions do not provide a parser implementation " +"themselves." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:71 +msgid "" +"You can also create a :class:`Document` by calling a method on a \"DOM " +"Implementation\" object. You can get this object either by calling the :" +"func:`getDOMImplementation` function in the :mod:`xml.dom` package or the :" +"mod:`xml.dom.minidom` module. Once you have a :class:`Document`, you can " +"add child nodes to it to populate the DOM::" +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:86 +msgid "" +"Once you have a DOM document object, you can access the parts of your XML " +"document through its properties and methods. These properties are defined " +"in the DOM specification. The main property of the document object is the :" +"attr:`documentElement` property. It gives you the main element in the XML " +"document: the one that holds all others. Here is an example program::" +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:95 +msgid "" +"When you are finished with a DOM tree, you may optionally call the :meth:" +"`unlink` method to encourage early cleanup of the now-unneeded objects. :" +"meth:`unlink` is an :mod:`xml.dom.minidom`\\ -specific extension to the DOM " +"API that renders the node and its descendants are essentially useless. " +"Otherwise, Python's garbage collector will eventually take care of the " +"objects in the tree." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:104 +msgid "" +"`Document Object Model (DOM) Level 1 Specification `_" +msgstr "" +"`Spécification Level 1 Document Object Model (DOM) `_" + +#: ../Doc/library/xml.dom.minidom.rst:105 +msgid "The W3C recommendation for the DOM supported by :mod:`xml.dom.minidom`." +msgstr "" +"La recommandation du *W3C* pour le DOM supporté par :mod:`xml.dom.minidom`." + +#: ../Doc/library/xml.dom.minidom.rst:111 +msgid "DOM Objects" +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:113 +msgid "" +"The definition of the DOM API for Python is given as part of the :mod:`xml." +"dom` module documentation. This section lists the differences between the " +"API and :mod:`xml.dom.minidom`." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:120 +msgid "" +"Break internal references within the DOM so that it will be garbage " +"collected on versions of Python without cyclic GC. Even when cyclic GC is " +"available, using this can make large amounts of memory available sooner, so " +"calling this on DOM objects as soon as they are no longer needed is good " +"practice. This only needs to be called on the :class:`Document` object, but " +"may be called on child nodes to discard children of that node." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:127 +msgid "" +"You can avoid calling this method explicitly by using the :keyword:`with` " +"statement. The following code will automatically unlink *dom* when the :" +"keyword:`!with` block is exited::" +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:137 +msgid "" +"Write XML to the writer object. The writer receives texts but not bytes as " +"input, it should have a :meth:`write` method which matches that of the file " +"object interface. The *indent* parameter is the indentation of the current " +"node. The *addindent* parameter is the incremental indentation to use for " +"subnodes of the current one. The *newl* parameter specifies the string to " +"use to terminate newlines." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:144 +msgid "" +"For the :class:`Document` node, an additional keyword argument *encoding* " +"can be used to specify the encoding field of the XML header." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:150 +msgid "" +"Return a string or byte string containing the XML represented by the DOM " +"node." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:153 +msgid "" +"With an explicit *encoding* [1]_ argument, the result is a byte string in " +"the specified encoding. With no *encoding* argument, the result is a Unicode " +"string, and the XML declaration in the resulting string does not specify an " +"encoding. Encoding this string in an encoding other than UTF-8 is likely " +"incorrect, since UTF-8 is the default encoding of XML." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:162 +msgid "" +"Return a pretty-printed version of the document. *indent* specifies the " +"indentation string and defaults to a tabulator; *newl* specifies the string " +"emitted at the end of each line and defaults to ``\\n``." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:166 +msgid "" +"The *encoding* argument behaves like the corresponding argument of :meth:" +"`toxml`." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:173 +msgid "DOM Example" +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:175 +msgid "" +"This example program is a fairly realistic example of a simple program. In " +"this particular case, we do not take much advantage of the flexibility of " +"the DOM." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:184 +msgid "minidom and the DOM standard" +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:186 +msgid "" +"The :mod:`xml.dom.minidom` module is essentially a DOM 1.0-compatible DOM " +"with some DOM 2 features (primarily namespace features)." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:189 +msgid "" +"Usage of the DOM interface in Python is straight-forward. The following " +"mapping rules apply:" +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:192 +msgid "" +"Interfaces are accessed through instance objects. Applications should not " +"instantiate the classes themselves; they should use the creator functions " +"available on the :class:`Document` object. Derived interfaces support all " +"operations (and attributes) from the base interfaces, plus any new " +"operations." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:197 +msgid "" +"Operations are used as methods. Since the DOM uses only :keyword:`in` " +"parameters, the arguments are passed in normal order (from left to right). " +"There are no optional arguments. ``void`` operations return ``None``." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:201 +msgid "" +"IDL attributes map to instance attributes. For compatibility with the OMG " +"IDL language mapping for Python, an attribute ``foo`` can also be accessed " +"through accessor methods :meth:`_get_foo` and :meth:`_set_foo`. " +"``readonly`` attributes must not be changed; this is not enforced at runtime." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:206 +msgid "" +"The types ``short int``, ``unsigned int``, ``unsigned long long``, and " +"``boolean`` all map to Python integer objects." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:209 +msgid "" +"The type ``DOMString`` maps to Python strings. :mod:`xml.dom.minidom` " +"supports either bytes or strings, but will normally produce strings. Values " +"of type ``DOMString`` may also be ``None`` where allowed to have the IDL " +"``null`` value by the DOM specification from the W3C." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:214 +msgid "" +"``const`` declarations map to variables in their respective scope (e.g. " +"``xml.dom.minidom.Node.PROCESSING_INSTRUCTION_NODE``); they must not be " +"changed." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:217 +msgid "" +"``DOMException`` is currently not supported in :mod:`xml.dom.minidom`. " +"Instead, :mod:`xml.dom.minidom` uses standard Python exceptions such as :exc:" +"`TypeError` and :exc:`AttributeError`." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:221 +msgid "" +":class:`NodeList` objects are implemented using Python's built-in list type. " +"These objects provide the interface defined in the DOM specification, but " +"with earlier versions of Python they do not support the official API. They " +"are, however, much more \"Pythonic\" than the interface defined in the W3C " +"recommendations." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:227 +msgid "" +"The following interfaces have no implementation in :mod:`xml.dom.minidom`:" +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:229 +msgid ":class:`DOMTimeStamp`" +msgstr ":class:`DOMTimeStamp`" + +#: ../Doc/library/xml.dom.minidom.rst:231 +msgid ":class:`EntityReference`" +msgstr ":class:`EntityReference`" + +#: ../Doc/library/xml.dom.minidom.rst:233 +msgid "" +"Most of these reflect information in the XML document that is not of general " +"utility to most DOM users." +msgstr "" + +#: ../Doc/library/xml.dom.minidom.rst:237 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/xml.dom.minidom.rst:238 +msgid "" +"The encoding name included in the XML output should conform to the " +"appropriate standards. For example, \"UTF-8\" is valid, but \"UTF8\" is not " +"valid in an XML document's declaration, even though Python accepts it as an " +"encoding name. See https://www.w3.org/TR/2006/REC-xml11-20060816/#NT-" +"EncodingDecl and https://www.iana.org/assignments/character-sets/character-" +"sets.xhtml." +msgstr "" + +#~ msgid ":class:`DocumentType`" +#~ msgstr ":class:`DocumentType`" + +#~ msgid ":class:`DOMImplementation`" +#~ msgstr ":class:`DOMImplementation`" + +#~ msgid ":class:`CharacterData`" +#~ msgstr ":class:`CharacterData`" + +#~ msgid ":class:`CDATASection`" +#~ msgstr ":class:`CDATASection`" + +#~ msgid ":class:`Notation`" +#~ msgstr ":class:`Notation`" + +#~ msgid ":class:`Entity`" +#~ msgstr ":class:`Entity`" + +#~ msgid ":class:`DocumentFragment`" +#~ msgstr ":class:`DocumentFragment`" diff --git a/library/xml.dom.po b/library/xml.dom.po new file mode 100644 index 000000000..a9df60f09 --- /dev/null +++ b/library/xml.dom.po @@ -0,0 +1,1756 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2019-06-01 23:09+0200\n" +"Last-Translator: Cyprien Le Pannérer \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/library/xml.dom.rst:2 +msgid ":mod:`xml.dom` --- The Document Object Model API" +msgstr ":mod:`xml.dom` — L'API Document Object Model" + +#: ../Doc/library/xml.dom.rst:10 +msgid "**Source code:** :source:`Lib/xml/dom/__init__.py`" +msgstr "**Code source:** :source:`Lib/xml/dom/__init__.py`" + +#: ../Doc/library/xml.dom.rst:14 +msgid "" +"The Document Object Model, or \"DOM,\" is a cross-language API from the " +"World Wide Web Consortium (W3C) for accessing and modifying XML documents. " +"A DOM implementation presents an XML document as a tree structure, or allows " +"client code to build such a structure from scratch. It then gives access to " +"the structure through a set of objects which provided well-known interfaces." +msgstr "" +"Le Document Object Model, ou \"DOM,\" est une API inter-langage du World " +"Wide Web Consortium (*W3C*) pour accéder et modifier les documents XML. Une " +"implémentation DOM présente le document XML comme un arbre ou autorise le " +"code client à construire une telle structure depuis zéro. Il permet alors " +"d'accéder à la structure à l'aide d'un ensemble d'objet qui fournissent des " +"interfaces bien connues." + +#: ../Doc/library/xml.dom.rst:20 +msgid "" +"The DOM is extremely useful for random-access applications. SAX only allows " +"you a view of one bit of the document at a time. If you are looking at one " +"SAX element, you have no access to another. If you are looking at a text " +"node, you have no access to a containing element. When you write a SAX " +"application, you need to keep track of your program's position in the " +"document somewhere in your own code. SAX does not do it for you. Also, if " +"you need to look ahead in the XML document, you are just out of luck." +msgstr "" +"Le DOM est extrêmement utile pour les applications à accès aléatoire. SAX ne " +"vous permet de visualiser qu'un seul morceau du document à la fois. Si vous " +"regardez un élément SAX, vous n'avez pas accès à un autre. Si vous regardez " +"un nœud de texte, vous n'avez pas accès à un élément parent. Lorsque vous " +"écrivez une application SAX, vous devez suivre la position de votre " +"programme dans le document quelque part dans votre propre code. SAX ne le " +"fait pas pour vous. De plus, si vous devez examiner un nœud plus lus loin " +"dans le document XML, vous n'avez pas de chance." + +#: ../Doc/library/xml.dom.rst:28 +msgid "" +"Some applications are simply impossible in an event driven model with no " +"access to a tree. Of course you could build some sort of tree yourself in " +"SAX events, but the DOM allows you to avoid writing that code. The DOM is a " +"standard tree representation for XML data." +msgstr "" +"Il est tout simplement impossible d'implémenter certains algorithmes avec un " +"modèle évènementiel, sans un accès à un arbre. Bien sûr, vous pourriez " +"construire vous même un arbre à partir des événements SAX mais DOM vous " +"permet d'éviter d'écrire ce code. Le DOM est représentation standard en " +"arbre pour des données XML." + +#: ../Doc/library/xml.dom.rst:33 +msgid "" +"The Document Object Model is being defined by the W3C in stages, or \"levels" +"\" in their terminology. The Python mapping of the API is substantially " +"based on the DOM Level 2 recommendation." +msgstr "" +"Le DOM (Document Object Model) est défini par le *W3C* en étapes ou *\"levels" +"\"* (niveaux) selon leur terminologie. Le couplage de l'API de Python est " +"essentiellement basée sur la recommandation DOM Level 2." + +#: ../Doc/library/xml.dom.rst:45 +msgid "" +"DOM applications typically start by parsing some XML into a DOM. How this " +"is accomplished is not covered at all by DOM Level 1, and Level 2 provides " +"only limited improvements: There is a :class:`DOMImplementation` object " +"class which provides access to :class:`Document` creation methods, but no " +"way to access an XML reader/parser/Document builder in an implementation-" +"independent way. There is also no well-defined way to access these methods " +"without an existing :class:`Document` object. In Python, each DOM " +"implementation will provide a function :func:`getDOMImplementation`. DOM " +"Level 3 adds a Load/Store specification, which defines an interface to the " +"reader, but this is not yet available in the Python standard library." +msgstr "" +"Typiquement, les applications DOM commencent par analyser du XML dans du " +"DOM. Comment cela doit être exposé n'est absolument pas décrit par DOM Level " +"1 et Level 2 ne fournit que des améliorations limités. Il existe une classe :" +"class:`DOMImplementation` qui fournit un accès à des méthodes de création " +"de :class:`Document` mais il n'y a pas de moyen d'accéder à un lecteur/" +"analyseur/constructeur de *document* de façon indépendante de " +"l'implémentation. Il n'est pas également très bien définis comment accéder à " +"ces méthodes sans un objet :class:`Document`. En Python, chaque " +"implémentation fournira une fonction :func:`getDOMImplementation` . DOM " +"Level 3 ajoute une spécification *Load/Store* (charge/stocke) qui définie " +"une interface pour le lecteur mais qui n'est pas disponible dans la " +"bibliothèque standard de Python." + +#: ../Doc/library/xml.dom.rst:56 +msgid "" +"Once you have a DOM document object, you can access the parts of your XML " +"document through its properties and methods. These properties are defined " +"in the DOM specification; this portion of the reference manual describes the " +"interpretation of the specification in Python." +msgstr "" +"Une fois que vous avez un objet document DOM, vous pouvez accéder aux " +"parties de votre document XML à travers ses méthodes et propriétés. Ces " +"propriétés sont définis dans les spécifications DOM ; cette portion du " +"manuel de références décrit l'interprétation des ces spécifications en " +"Python." + +#: ../Doc/library/xml.dom.rst:61 +msgid "" +"The specification provided by the W3C defines the DOM API for Java, " +"ECMAScript, and OMG IDL. The Python mapping defined here is based in large " +"part on the IDL version of the specification, but strict compliance is not " +"required (though implementations are free to support the strict mapping from " +"IDL). See section :ref:`dom-conformance` for a detailed discussion of " +"mapping requirements." +msgstr "" +"Les spécifications fournies par le *W3C* définissent les API DOM pour Java, " +"ECMAScript, et OMG IDL. Les correspondances de Python définies ici sont " +"basées pour une grande part sur la version IDL de la spécification mais une " +"conformité stricte n'est pas requise (bien que ces implémentations soient " +"libre d'implémenter le support strict des correspondances de IDL). Voir la " +"section :ref:`dom-conformance` pour une discussion détaillée des pré-requis " +"des correspondances." + +#: ../Doc/library/xml.dom.rst:71 +msgid "" +"`Document Object Model (DOM) Level 2 Specification `_" +msgstr "" +"`Document Object Model (DOM) Level 2 Specification `_" + +#: ../Doc/library/xml.dom.rst:71 +msgid "The W3C recommendation upon which the Python DOM API is based." +msgstr "La recommandation *W3C* sur laquelle l'API DOM de Python est basée." + +#: ../Doc/library/xml.dom.rst:74 +msgid "" +"`Document Object Model (DOM) Level 1 Specification `_" +msgstr "" +"`Spécification Level 1 Document Object Model (DOM) `_" + +#: ../Doc/library/xml.dom.rst:74 +msgid "The W3C recommendation for the DOM supported by :mod:`xml.dom.minidom`." +msgstr "" +"La recommandation du *W3C* pour le DOM supporté par :mod:`xml.dom.minidom`." + +#: ../Doc/library/xml.dom.rst:76 +msgid "" +"`Python Language Mapping Specification `_" +msgstr "" +"`Python Language Mapping Specification `_" + +#: ../Doc/library/xml.dom.rst:77 +msgid "This specifies the mapping from OMG IDL to Python." +msgstr "Ceci spécifies les correspondances depuis OMG IDL vers Python." + +#: ../Doc/library/xml.dom.rst:81 +msgid "Module Contents" +msgstr "Contenu du module" + +#: ../Doc/library/xml.dom.rst:83 +msgid "The :mod:`xml.dom` contains the following functions:" +msgstr "Le :mod:`xml.dom` contient les fonctions suivantes :" + +#: ../Doc/library/xml.dom.rst:88 +msgid "" +"Register the *factory* function with the name *name*. The factory function " +"should return an object which implements the :class:`DOMImplementation` " +"interface. The factory function can return the same object every time, or a " +"new one for each call, as appropriate for the specific implementation (e.g. " +"if that implementation supports some customization)." +msgstr "" +"Enregistre la fonction *factory* avec le nom *name*. La fonction *factory* " +"doit renvoyer un objet qui implémente l'interface de :class:" +"`DOMImplementation`. La fonction *factory* peut renvoyer le même objet à " +"chaque fois ou un nouveau à chaque appel en accord avec les spécificités de " +"l'implémentation (Par exemple si l'implémentation supporte certaines " +"personnalisations)." + +#: ../Doc/library/xml.dom.rst:97 +msgid "" +"Return a suitable DOM implementation. The *name* is either well-known, the " +"module name of a DOM implementation, or ``None``. If it is not ``None``, " +"imports the corresponding module and returns a :class:`DOMImplementation` " +"object if the import succeeds. If no name is given, and if the environment " +"variable :envvar:`PYTHON_DOM` is set, this variable is used to find the " +"implementation." +msgstr "" +"Renvoie une implémentation DOM appropriée. Le *name* est soit connu, soit le " +"nom du module d'une implémentation DOM, soit ``None``. Si ce n'est pas " +"``None``, le module correspondant est importé et retourne un objet :class:" +"`DOMImplementation` si l'importation réussit. Si Aucun *name* n'est donné et " +"que la variable d'environnement :envvar:`PYTHON_DOM` est positionnée, cette " +"variable est utilisée pour trouver l'implémentation." + +#: ../Doc/library/xml.dom.rst:103 +msgid "" +"If name is not given, this examines the available implementations to find " +"one with the required feature set. If no implementation can be found, raise " +"an :exc:`ImportError`. The features list must be a sequence of ``(feature, " +"version)`` pairs which are passed to the :meth:`hasFeature` method on " +"available :class:`DOMImplementation` objects." +msgstr "" +"Si *name* n'est pas donné, la fonction examine les implémentations " +"disponibles pour en trouver une avec l'ensemble des fonctionnalités " +"requises. Si aucune implémentation n'est trouvée, une :exc:`ImportError` est " +"levée. La liste de fonctionnalité doit être une séquence de paires " +"``(feature, version)`` qui est passée à la méthode :meth:`hasFeature` " +"disponible dans les objets :class:`DOMImplementation`." + +#: ../Doc/library/xml.dom.rst:109 +msgid "Some convenience constants are also provided:" +msgstr "Quelques constantes pratiques sont également fournies :" + +#: ../Doc/library/xml.dom.rst:114 +msgid "" +"The value used to indicate that no namespace is associated with a node in " +"the DOM. This is typically found as the :attr:`namespaceURI` of a node, or " +"used as the *namespaceURI* parameter to a namespaces-specific method." +msgstr "" +"La valeur utilisée pour indiquer qu'aucun espace de noms n'est associé à un " +"nœud dans le DOM. Typiquement, ceci est trouvé comme :attr:`namespaceURI` " +"dans un nœud ou utilisé comme le paramètre *namespaceURI* dans une méthode " +"spécifique aux espaces de noms." + +#: ../Doc/library/xml.dom.rst:121 +msgid "" +"The namespace URI associated with the reserved prefix ``xml``, as defined by " +"`Namespaces in XML `_ (section 4)." +msgstr "" +"L'URI de l'espace de noms associé avec le préfixe réservé ``xml`` comme " +"défini par `Namespaces in XML `_ " +"(section 4)." + +#: ../Doc/library/xml.dom.rst:127 +msgid "" +"The namespace URI for namespace declarations, as defined by `Document Object " +"Model (DOM) Level 2 Core Specification `_ (section 1.1.8)." +msgstr "" +"L'URI de l'espace de noms pour la déclaration des espaces de noms, tel que " +"défini par `Document Object Model (DOM) Level 2 Core Specification `_ (section 1.1.8)." + +#: ../Doc/library/xml.dom.rst:134 +msgid "" +"The URI of the XHTML namespace as defined by `XHTML 1.0: The Extensible " +"HyperText Markup Language `_ (section 3.1.1)." +msgstr "" +"L'URI de l'espace de noms XHTML tel que défini par `XHTML 1.0: The " +"Extensible HyperText Markup Language `_ " +"(section 3.1.1)." + +#: ../Doc/library/xml.dom.rst:138 +msgid "" +"In addition, :mod:`xml.dom` contains a base :class:`Node` class and the DOM " +"exception classes. The :class:`Node` class provided by this module does not " +"implement any of the methods or attributes defined by the DOM specification; " +"concrete DOM implementations must provide those. The :class:`Node` class " +"provided as part of this module does provide the constants used for the :" +"attr:`nodeType` attribute on concrete :class:`Node` objects; they are " +"located within the class rather than at the module level to conform with the " +"DOM specifications." +msgstr "" +"Par ailleurs, :mod:`xml.dom` contient une classe de base :class:`Node` et " +"les exceptions de DOM. La classe :class:`Node` fournie par ce module " +"n'implémente aucune des méthodes ou des attributs définis par les " +"spécifications DOM ; les implémentations concrètes des DOM doivent fournir " +"les informations suivantes. La classe :class:`Node` fournie part ce modules " +"fournit les constantes utilisées pour l'attribut :attr:`nodeType` pour des " +"objets concrets :class:`Node` ; ils sont situés dans les classes plutôt " +"qu'au niveau du module en accord avec les spécifications DOM." + +#: ../Doc/library/xml.dom.rst:153 +msgid "Objects in the DOM" +msgstr "Objets dans le DOM" + +#: ../Doc/library/xml.dom.rst:155 +msgid "" +"The definitive documentation for the DOM is the DOM specification from the " +"W3C." +msgstr "La documentation finale pour le DOM est la spécification DOM du *W3C*." + +#: ../Doc/library/xml.dom.rst:157 +msgid "" +"Note that DOM attributes may also be manipulated as nodes instead of as " +"simple strings. It is fairly rare that you must do this, however, so this " +"usage is not yet documented." +msgstr "" +"Notez que les attributs DOM peuvent également être manipulés comme des nœuds " +"au lieu de simples chaînes. Il est relativement rare que vous ayez besoin de " +"faire cela, cependant, cet usage n'est pas encore documenté." + +#: ../Doc/library/xml.dom.rst:162 +msgid "Interface" +msgstr "Interface" + +#: ../Doc/library/xml.dom.rst:162 +msgid "Section" +msgstr "Section" + +#: ../Doc/library/xml.dom.rst:162 +msgid "Purpose" +msgstr "Objectif" + +#: ../Doc/library/xml.dom.rst:164 +msgid ":class:`DOMImplementation`" +msgstr ":class:`DOMImplementation`" + +#: ../Doc/library/xml.dom.rst:164 +msgid ":ref:`dom-implementation-objects`" +msgstr ":ref:`dom-implementation-objects`" + +#: ../Doc/library/xml.dom.rst:164 +msgid "Interface to the underlying implementation." +msgstr "Interface de l'implémentation sous-jacente." + +#: ../Doc/library/xml.dom.rst:167 +msgid ":class:`Node`" +msgstr ":class:`Node`" + +#: ../Doc/library/xml.dom.rst:167 +msgid ":ref:`dom-node-objects`" +msgstr ":ref:`dom-node-objects`" + +#: ../Doc/library/xml.dom.rst:167 +msgid "Base interface for most objects in a document." +msgstr "Interface de base pour la majorité des objets dans un document." + +#: ../Doc/library/xml.dom.rst:170 +msgid ":class:`NodeList`" +msgstr ":class:`NodeList`" + +#: ../Doc/library/xml.dom.rst:170 +msgid ":ref:`dom-nodelist-objects`" +msgstr ":ref:`dom-nodelist-objects`" + +#: ../Doc/library/xml.dom.rst:170 +msgid "Interface for a sequence of nodes." +msgstr "Interface pour une séquence de nœuds." + +#: ../Doc/library/xml.dom.rst:173 +msgid ":class:`DocumentType`" +msgstr ":class:`DocumentType`" + +#: ../Doc/library/xml.dom.rst:173 +msgid ":ref:`dom-documenttype-objects`" +msgstr ":ref:`dom-documenttype-objects`" + +#: ../Doc/library/xml.dom.rst:173 +msgid "Information about the declarations needed to process a document." +msgstr "" +"Informations sur les déclarations nécessaires au traitement d'un document." + +#: ../Doc/library/xml.dom.rst:177 +msgid ":class:`Document`" +msgstr ":class:`Document`" + +#: ../Doc/library/xml.dom.rst:177 +msgid ":ref:`dom-document-objects`" +msgstr ":ref:`dom-document-objects`" + +#: ../Doc/library/xml.dom.rst:177 +msgid "Object which represents an entire document." +msgstr "Objet représentant un document entier." + +#: ../Doc/library/xml.dom.rst:180 +msgid ":class:`Element`" +msgstr ":class:`Element`" + +#: ../Doc/library/xml.dom.rst:180 +msgid ":ref:`dom-element-objects`" +msgstr ":ref:`dom-element-objects`" + +#: ../Doc/library/xml.dom.rst:180 +msgid "Element nodes in the document hierarchy." +msgstr "Nœuds éléments dans la hiérarchie d'un document." + +#: ../Doc/library/xml.dom.rst:183 +msgid ":class:`Attr`" +msgstr ":class:`Attr`" + +#: ../Doc/library/xml.dom.rst:183 +msgid ":ref:`dom-attr-objects`" +msgstr ":ref:`dom-attr-objects`" + +#: ../Doc/library/xml.dom.rst:183 +msgid "Attribute value nodes on element nodes." +msgstr "Valeur des nœuds attributs sur dans des nœuds éléments." + +#: ../Doc/library/xml.dom.rst:186 +msgid ":class:`Comment`" +msgstr ":class:`Comment`" + +#: ../Doc/library/xml.dom.rst:186 +msgid ":ref:`dom-comment-objects`" +msgstr ":ref:`dom-comment-objects`" + +#: ../Doc/library/xml.dom.rst:186 +msgid "Representation of comments in the source document." +msgstr "Représentation des commentaires dans le fichier source du document." + +#: ../Doc/library/xml.dom.rst:189 +msgid ":class:`Text`" +msgstr ":class:`Text`" + +#: ../Doc/library/xml.dom.rst:189 +msgid ":ref:`dom-text-objects`" +msgstr ":ref:`dom-text-objects`" + +#: ../Doc/library/xml.dom.rst:189 +msgid "Nodes containing textual content from the document." +msgstr "Nœud contenant un contenu texte du document." + +#: ../Doc/library/xml.dom.rst:192 +msgid ":class:`ProcessingInstruction`" +msgstr ":class:`ProcessingInstruction`" + +#: ../Doc/library/xml.dom.rst:192 +msgid ":ref:`dom-pi-objects`" +msgstr ":ref:`dom-pi-objects`" + +#: ../Doc/library/xml.dom.rst:192 +msgid "Processing instruction representation." +msgstr "Représentation des *Processing Instructions*." + +#: ../Doc/library/xml.dom.rst:196 +msgid "" +"An additional section describes the exceptions defined for working with the " +"DOM in Python." +msgstr "" +"Une Section additionnelle décrit les exceptions définis pour travailler avec " +"le DOM en Python." + +#: ../Doc/library/xml.dom.rst:203 +msgid "DOMImplementation Objects" +msgstr "Objets DOMImplementation" + +#: ../Doc/library/xml.dom.rst:205 +msgid "" +"The :class:`DOMImplementation` interface provides a way for applications to " +"determine the availability of particular features in the DOM they are using. " +"DOM Level 2 added the ability to create new :class:`Document` and :class:" +"`DocumentType` objects using the :class:`DOMImplementation` as well." +msgstr "" +"L'interface :class:`DOMImplementation` fournit un moyen pour les " +"applications de déterminer la disponibilité de fonctionnalités particulières " +"dans le DOM qu'elles utilisent. *DOM Level 2* ajoute la capacité de créer " +"des nouveaux objets :class:`Document` et :class:`DocumentType` utilisant " +"également :class:`DOMImplementation`." + +#: ../Doc/library/xml.dom.rst:213 +msgid "" +"Return true if the feature identified by the pair of strings *feature* and " +"*version* is implemented." +msgstr "" +"Renvoie vrai si la fonctionnalité identifiée par une paire de chaîne " +"*feature* et *version* est implémentée." + +#: ../Doc/library/xml.dom.rst:219 +msgid "" +"Return a new :class:`Document` object (the root of the DOM), with a child :" +"class:`Element` object having the given *namespaceUri* and *qualifiedName*. " +"The *doctype* must be a :class:`DocumentType` object created by :meth:" +"`createDocumentType`, or ``None``. In the Python DOM API, the first two " +"arguments can also be ``None`` in order to indicate that no :class:`Element` " +"child is to be created." +msgstr "" +"Renvoie un nouvel objet :class:`Document` (la racine du DOM), avec un objet " +"fils :class:`Element` ayant les *namespaceUri* et *qualifiedName* passés en " +"paramètre. Le *doctype* doit être un objet :class:`DocumentType` créé par :" +"meth:`createDocumentType` ou ``None``. Dans l'API DOM de Python, les deux " +"premiers arguments peuvent également être à ``None`` de manière à indiquer " +"qu'aucun enfant :class:`Element` ne soit crée." + +#: ../Doc/library/xml.dom.rst:229 +msgid "" +"Return a new :class:`DocumentType` object that encapsulates the given " +"*qualifiedName*, *publicId*, and *systemId* strings, representing the " +"information contained in an XML document type declaration." +msgstr "" +"Renvoie un nouvel objet :class:`DocumentType` qui encapsule les chaînes " +"*qualifiedName*, *publicId*, et *systemId* passées en paramètre représentant " +"les informations contenues dans dans la déclaration du document XML." + +#: ../Doc/library/xml.dom.rst:237 +msgid "Node Objects" +msgstr "Objets nœuds" + +#: ../Doc/library/xml.dom.rst:239 +msgid "" +"All of the components of an XML document are subclasses of :class:`Node`." +msgstr "" +"Tous les composants d'un document XML sont des sous-classes de :class:`Node`." + +#: ../Doc/library/xml.dom.rst:244 +msgid "" +"An integer representing the node type. Symbolic constants for the types are " +"on the :class:`Node` object: :const:`ELEMENT_NODE`, :const:" +"`ATTRIBUTE_NODE`, :const:`TEXT_NODE`, :const:`CDATA_SECTION_NODE`, :const:" +"`ENTITY_NODE`, :const:`PROCESSING_INSTRUCTION_NODE`, :const:`COMMENT_NODE`, :" +"const:`DOCUMENT_NODE`, :const:`DOCUMENT_TYPE_NODE`, :const:`NOTATION_NODE`. " +"This is a read-only attribute." +msgstr "" +"Un entier représentant le type de nœud. Pour l'objet :class:`Node`, les " +"constantes symboliques pour les types sont :const:`ELEMENT_NODE`, :const:" +"`ATTRIBUTE_NODE`, :const:`TEXT_NODE`, :const:`CDATA_SECTION_NODE`, :const:" +"`ENTITY_NODE`, :const:`PROCESSING_INSTRUCTION_NODE`, :const:`COMMENT_NODE`, :" +"const:`DOCUMENT_NODE`, :const:`DOCUMENT_TYPE_NODE`, :const:`NOTATION_NODE`. " +"Ceci est un attribut en lecture seule." + +#: ../Doc/library/xml.dom.rst:254 +msgid "" +"The parent of the current node, or ``None`` for the document node. The value " +"is always a :class:`Node` object or ``None``. For :class:`Element` nodes, " +"this will be the parent element, except for the root element, in which case " +"it will be the :class:`Document` object. For :class:`Attr` nodes, this is " +"always ``None``. This is a read-only attribute." +msgstr "" +"Le parent du nœud courant ou ``None`` dans le cas du nœud document. La " +"valeur est toujours un objet :class:`Node` ou ``None``. Pour les nœuds :" +"class:`Element`, ce sera le parent de l'élément sauf si l'élément est la " +"racine, dans ce cas ce sera l'objet :class:`Document`. Pour les nœuds :class:" +"`Attr`, cela sera toujours ``None``. Ceci est un attribut en lecture seule." + +#: ../Doc/library/xml.dom.rst:263 +msgid "" +"A :class:`NamedNodeMap` of attribute objects. Only elements have actual " +"values for this; others provide ``None`` for this attribute. This is a read-" +"only attribute." +msgstr "" +"Un objet :class:`NamedNodeMap` d'objet attributs. Seulement les éléments " +"ayant des valeurs seront listés, les autres renverront ``None`` pour cet " +"attribut. Cet attribut est en lecture seule." + +#: ../Doc/library/xml.dom.rst:270 +msgid "" +"The node that immediately precedes this one with the same parent. For " +"instance the element with an end-tag that comes just before the *self* " +"element's start-tag. Of course, XML documents are made up of more than just " +"elements so the previous sibling could be text, a comment, or something " +"else. If this node is the first child of the parent, this attribute will be " +"``None``. This is a read-only attribute." +msgstr "" +"Le nœud avec le même parent qui précède immédiatement le nœud courant. Par " +"exemple, l'élément avec la balise fermente qui est juste avant la balise " +"ouvrante de l'élément *self*. Naturellement, les documents XML sont fait de " +"plus que juste des éléments ; donc le *previous sibling* peut être du texte, " +"un commentaire ou autre chose. Si le nœud courant est le premier fils du " +"parent, cet attribut vaudra ``None``. Cet attribut est en lecture seule." + +#: ../Doc/library/xml.dom.rst:280 +msgid "" +"The node that immediately follows this one with the same parent. See also :" +"attr:`previousSibling`. If this is the last child of the parent, this " +"attribute will be ``None``. This is a read-only attribute." +msgstr "" +"Le nœud qui suit immédiatement le nœud courant dans le même parent. Voir " +"également :attr:`previousSibling`. Si ce nœud est le dernier de son parent, " +"alors l'attribut sera ``None``. Cet attribut est en lecture seule." + +#: ../Doc/library/xml.dom.rst:287 +msgid "" +"A list of nodes contained within this node. This is a read-only attribute." +msgstr "" +"Une liste de nœuds contenu dans le nœud courant. Cet attribut est en lecture " +"seule." + +#: ../Doc/library/xml.dom.rst:292 +msgid "" +"The first child of the node, if there are any, or ``None``. This is a read-" +"only attribute." +msgstr "" +"S'il y a des fils, premier fils du nœud courant, sinon ``None``. Cet " +"attribut est en lecture seule." + +#: ../Doc/library/xml.dom.rst:298 +msgid "" +"The last child of the node, if there are any, or ``None``. This is a read-" +"only attribute." +msgstr "" +"S'il y a des fils, le dernier nœud fils du nœud courant. Sinon ``None``. Cet " +"attribut est en lecture seule." + +#: ../Doc/library/xml.dom.rst:304 +msgid "" +"The part of the :attr:`tagName` following the colon if there is one, else " +"the entire :attr:`tagName`. The value is a string." +msgstr "" +"S'il y a un *:*, contient la partie suivante de :attr:`tagName` ce *:* sinon " +"la valeur complète de :attr:`tagName`. Cette valeur est une chaîne." + +#: ../Doc/library/xml.dom.rst:310 +msgid "" +"The part of the :attr:`tagName` preceding the colon if there is one, else " +"the empty string. The value is a string, or ``None``." +msgstr "" +"La partie de :attr:`tagName` précédent le *:* s'il y en a un. sinon une " +"chaîne vide. La valeur est une chaîne ou ``None``." + +#: ../Doc/library/xml.dom.rst:316 +msgid "" +"The namespace associated with the element name. This will be a string or " +"``None``. This is a read-only attribute." +msgstr "" +"L'espace de noms associé (*namespace* en anglais) au nom de l'élément. Cette " +"valeur est une chaîne ou ``None``. Cet attribut est en lecture seule." + +#: ../Doc/library/xml.dom.rst:322 +msgid "" +"This has a different meaning for each node type; see the DOM specification " +"for details. You can always get the information you would get here from " +"another property such as the :attr:`tagName` property for elements or the :" +"attr:`name` property for attributes. For all node types, the value of this " +"attribute will be either a string or ``None``. This is a read-only " +"attribute." +msgstr "" +"L'attribut a un sens différent pour chaque type de nœud ; se reporter à la " +"spécification DOM pour les détails. Vous obtiendrez toujours l'information " +"que vous obtiendrez à l'aide d'une autre propriété comme :attr:`tagName` " +"pour les éléments ou :attr:`name` pour les attributs. Pour tous les types de " +"nœuds, la valeur sera soit une chaîne soit ``None``. Cet attribut est en " +"lecture seule." + +#: ../Doc/library/xml.dom.rst:331 +msgid "" +"This has a different meaning for each node type; see the DOM specification " +"for details. The situation is similar to that with :attr:`nodeName`. The " +"value is a string or ``None``." +msgstr "" +"L'attribut a un sens différent pour chaque type de nœud ; se reporter à la " +"spécification DOM pour les détails. La situation est similaire à :attr:" +"`nodeName`. La valeur est une chaîne ou ``None``." + +#: ../Doc/library/xml.dom.rst:338 +msgid "Returns true if the node has any attributes." +msgstr "Renvoi vrai si le nœud a des attributs." + +#: ../Doc/library/xml.dom.rst:343 +msgid "Returns true if the node has any child nodes." +msgstr "Renvoi vrai si le nœud a des nœuds fils." + +#: ../Doc/library/xml.dom.rst:348 +msgid "" +"Returns true if *other* refers to the same node as this node. This is " +"especially useful for DOM implementations which use any sort of proxy " +"architecture (because more than one object can refer to the same node)." +msgstr "" +"Renvoi vrai si *other* fait référence au même nœud que le nœud courant. Ceci " +"est particulièrement pratique pour implémentation de DOM qui utilise une " +"architecture proxy (car plus d'un objet peut se référer au même nœud)." + +#: ../Doc/library/xml.dom.rst:354 +msgid "" +"This is based on a proposed DOM Level 3 API which is still in the \"working " +"draft\" stage, but this particular interface appears uncontroversial. " +"Changes from the W3C will not necessarily affect this method in the Python " +"DOM interface (though any new W3C API for this would also be supported)." +msgstr "" +"Ceci est basé sur l'API proposé par * DOM Level 3* qui est toujours à " +"l'étape \"*working draft*\" mais cette interface particulière ne parait pas " +"controversée. Les changement du *W3C* n'affecteront pas nécessairement cette " +"méthode dans l'interface DOM de Python. (bien que toute nouvelle API *W3C* à " +"cet effet soit également supportée)." + +#: ../Doc/library/xml.dom.rst:362 +msgid "" +"Add a new child node to this node at the end of the list of children, " +"returning *newChild*. If the node was already in the tree, it is removed " +"first." +msgstr "" +"Ajoute un nouveau nœud fils à ce nœud à la fin de la liste des fils " +"renvoyant *newChild*. Si ce nœud est déjà dans l'arbre, il sera d'abord " +"retiré." + +#: ../Doc/library/xml.dom.rst:369 +msgid "" +"Insert a new child node before an existing child. It must be the case that " +"*refChild* is a child of this node; if not, :exc:`ValueError` is raised. " +"*newChild* is returned. If *refChild* is ``None``, it inserts *newChild* at " +"the end of the children's list." +msgstr "" +"Insère un nouveau nœud fils avant un fils existant. Il est impératif que " +"*refChild* soit un fils du nœud, sinon :exc:`ValueError` sera levée. " +"*newChild* est renvoyé. Si *refChild* est ``None``, *newChild* est inséré à " +"la fin de la liste des fils." + +#: ../Doc/library/xml.dom.rst:377 +msgid "" +"Remove a child node. *oldChild* must be a child of this node; if not, :exc:" +"`ValueError` is raised. *oldChild* is returned on success. If *oldChild* " +"will not be used further, its :meth:`unlink` method should be called." +msgstr "" +"Retire un nœud fils. *oldChild* doit être un fils de ce nœud ; sinon :exc:" +"`ValueError` sera levée. En cas de succès, *oldChild* est renvoyé. Si " +"*oldChild* n'est plus utilisé, sa méthode :meth:`unlink` doit être appelée." + +#: ../Doc/library/xml.dom.rst:384 +msgid "" +"Replace an existing node with a new node. It must be the case that " +"*oldChild* is a child of this node; if not, :exc:`ValueError` is raised." +msgstr "" +"Remplace un nœud existant avec un nouveau. *oldChild* doit être un fils de " +"ce nœud ; sinon :exc:`ValueError` sera levée." + +#: ../Doc/library/xml.dom.rst:390 +msgid "" +"Join adjacent text nodes so that all stretches of text are stored as single :" +"class:`Text` instances. This simplifies processing text from a DOM tree for " +"many applications." +msgstr "" +"Jointe les nœuds texte adjacents de manière à ce que tous les segments de " +"texte soient stockés dans une seule instance de :class:`Text`. Ceci " +"simplifie le traitement du texte d'un arbre DOM pour de nombreuses " +"applications." + +#: ../Doc/library/xml.dom.rst:397 +msgid "" +"Clone this node. Setting *deep* means to clone all child nodes as well. " +"This returns the clone." +msgstr "" +"Clone ce nœud. Positionner *deep* signifie que tous les nœuds fils seront " +"également clonés. La méthode renvoi le clone." + +#: ../Doc/library/xml.dom.rst:404 +msgid "NodeList Objects" +msgstr "Objet NodeList" + +#: ../Doc/library/xml.dom.rst:406 +msgid "" +"A :class:`NodeList` represents a sequence of nodes. These objects are used " +"in two ways in the DOM Core recommendation: an :class:`Element` object " +"provides one as its list of child nodes, and the :meth:" +"`getElementsByTagName` and :meth:`getElementsByTagNameNS` methods of :class:" +"`Node` return objects with this interface to represent query results." +msgstr "" +":class:`NodeList` représente une séquence de nœuds. Ces objets sont utilisés " +"de deux manières dans la recommandation Dom Core : un objet :class:`Element` " +"fournit en fournis liste des nœud fils et les méthodes :meth:" +"`getElementsByTagName` et :meth:`getElementsByTagNameNS` de :class:`Node` " +"renvoient des objet avec cette interface pour représenter les résultats des " +"requêtes." + +#: ../Doc/library/xml.dom.rst:412 +msgid "" +"The DOM Level 2 recommendation defines one method and one attribute for " +"these objects:" +msgstr "" +"La recommandation DOM Level 2 définit un attribut et une méthode pour ces " +"objets :" + +#: ../Doc/library/xml.dom.rst:418 +msgid "" +"Return the *i*'th item from the sequence, if there is one, or ``None``. The " +"index *i* is not allowed to be less than zero or greater than or equal to " +"the length of the sequence." +msgstr "" +"Renvoie le *i*ème élément de la séquence s'il existe ou ``None``. L'index " +"*i* ne peut pas être inférieur à 0 ou supérieur ou égale à la longueur de la " +"séquence." + +#: ../Doc/library/xml.dom.rst:425 +msgid "The number of nodes in the sequence." +msgstr "Le nombre d'éléments dans la séquence." + +#: ../Doc/library/xml.dom.rst:427 +msgid "" +"In addition, the Python DOM interface requires that some additional support " +"is provided to allow :class:`NodeList` objects to be used as Python " +"sequences. All :class:`NodeList` implementations must include support for :" +"meth:`~object.__len__` and :meth:`~object.__getitem__`; this allows " +"iteration over the :class:`NodeList` in :keyword:`for` statements and proper " +"support for the :func:`len` built-in function." +msgstr "" +"En plus, l'interface DOM de Python requiert quelques ajouts supplémentaires " +"pour permettre que les objet :class:`NodeList` puissent être utilisés comme " +"des séquences Python. Toutes les implémentations de :class:`NodeList` " +"doivent inclure le support de :meth:`~object.__len__` et de :meth:`~object." +"__getitem__` ; ceci permet l'itération sur :class:`NodeList` avec " +"l'instruction :keyword:`for` et un support de la fonction native :func:" +"`len`." + +#: ../Doc/library/xml.dom.rst:435 +msgid "" +"If a DOM implementation supports modification of the document, the :class:" +"`NodeList` implementation must also support the :meth:`~object.__setitem__` " +"and :meth:`~object.__delitem__` methods." +msgstr "" +"Si une implémentation de DOM support les modifications du document, " +"l'implémentation de :class:`NodeList` doit également supporter les méthodes :" +"meth:`~object.__setitem__` et :meth:`~object.__delitem__` ." + +#: ../Doc/library/xml.dom.rst:443 +msgid "DocumentType Objects" +msgstr "Objets DocumnentType" + +#: ../Doc/library/xml.dom.rst:445 +msgid "" +"Information about the notations and entities declared by a document " +"(including the external subset if the parser uses it and can provide the " +"information) is available from a :class:`DocumentType` object. The :class:" +"`DocumentType` for a document is available from the :class:`Document` " +"object's :attr:`doctype` attribute; if there is no ``DOCTYPE`` declaration " +"for the document, the document's :attr:`doctype` attribute will be set to " +"``None`` instead of an instance of this interface." +msgstr "" +"Les objets de type :class:`DocumentType` fournissent des informations sur " +"les notations et les entités déclarées par un document (incluant les données " +"externes si l'analyseur les utilise et peut les fournir). Le :class:" +"`DocumentType` d'un :class:`Document` est accessible via l'attribut :attr:" +"`doctype`. Si le document ne déclare pas de ``DOCTYPE``, l'attribut :attr:" +"`doctype` vaudra ``None`` plutôt qu'une instance de cette interface." + +#: ../Doc/library/xml.dom.rst:453 +msgid "" +":class:`DocumentType` is a specialization of :class:`Node`, and adds the " +"following attributes:" +msgstr "" +":class:`DocumentType` est une spécialisation de :class:`Node` et ajoute les " +"attributs suivants :" + +#: ../Doc/library/xml.dom.rst:459 +msgid "" +"The public identifier for the external subset of the document type " +"definition. This will be a string or ``None``." +msgstr "" +"L'identifiant publique pour un sous ensemble de la définition type de " +"document (*DTD*). Cela sera une chaîne ou ``None``." + +#: ../Doc/library/xml.dom.rst:465 +msgid "" +"The system identifier for the external subset of the document type " +"definition. This will be a URI as a string, or ``None``." +msgstr "" +"L'identifiant système pour un sous ensemble du document de définition type " +"(*DTD*). Cela sera une URI sous la forme d'une chaîne ou ``None``." + +#: ../Doc/library/xml.dom.rst:471 +msgid "" +"A string giving the complete internal subset from the document. This does " +"not include the brackets which enclose the subset. If the document has no " +"internal subset, this should be ``None``." +msgstr "" +"Un chaîne donnant le sous ensemble complet du document. Ceci n'inclut pas " +"les chevrons qui englobe le sous ensemble. Si le document n'a pas de sous " +"ensemble, cela devrait être ``None``." + +#: ../Doc/library/xml.dom.rst:478 +msgid "" +"The name of the root element as given in the ``DOCTYPE`` declaration, if " +"present." +msgstr "" +"Le nom de l'élément racine donné dans la déclaration ``DOCTYPE`` si " +"présente." + +#: ../Doc/library/xml.dom.rst:484 +msgid "" +"This is a :class:`NamedNodeMap` giving the definitions of external entities. " +"For entity names defined more than once, only the first definition is " +"provided (others are ignored as required by the XML recommendation). This " +"may be ``None`` if the information is not provided by the parser, or if no " +"entities are defined." +msgstr "" +"Ceci est un :class:`NamedNodeMap` donnant les définitions des entités " +"externes. Pour les entités définies plusieurs fois seule la première " +"définition est fournie (les suivantes sont ignorées comme requis par la " +"recommandation XML). Ceci peut retourner ``None`` si l'information n'est pas " +"fournie à l'analyseur ou si aucune entités n'est définis." + +#: ../Doc/library/xml.dom.rst:493 +msgid "" +"This is a :class:`NamedNodeMap` giving the definitions of notations. For " +"notation names defined more than once, only the first definition is provided " +"(others are ignored as required by the XML recommendation). This may be " +"``None`` if the information is not provided by the parser, or if no " +"notations are defined." +msgstr "" +"Ceci est un :class:`NamedNodeMap` donnant la définition des notations. Pour " +"les notations définies plus d'une fois, seule la première est fournie (les " +"suivante sont ignorées comme requis par la recommandation XML). Ceci peut " +"retourner ``None`` si l'information n'est pas fournie à l'analyseur ou si " +"aucune entités n'est définis." + +#: ../Doc/library/xml.dom.rst:503 +msgid "Document Objects" +msgstr "Objets Document" + +#: ../Doc/library/xml.dom.rst:505 +msgid "" +"A :class:`Document` represents an entire XML document, including its " +"constituent elements, attributes, processing instructions, comments etc. " +"Remember that it inherits properties from :class:`Node`." +msgstr "" +"Un :class:`Document` représente un document XML en son entier, incluant les " +"éléments qui le constitue, les attributs, les *processing instructions*, " +"commentaires, etc. Rappelez vous qu'il hérite des propriété de :class:`Node`." + +#: ../Doc/library/xml.dom.rst:512 +msgid "The one and only root element of the document." +msgstr "Le seul et unique élément racine du document." + +#: ../Doc/library/xml.dom.rst:517 +msgid "" +"Create and return a new element node. The element is not inserted into the " +"document when it is created. You need to explicitly insert it with one of " +"the other methods such as :meth:`insertBefore` or :meth:`appendChild`." +msgstr "" +"Créé et renvoi un nouveau nœud élément. Ce n'est pas inséré dans le document " +"quand il est créé. Vous avez besoin de l'insérer explicitement avec l'une " +"des autres méthodes comme :meth:`insertBefore` ou :meth:`appendChild`." + +#: ../Doc/library/xml.dom.rst:524 +msgid "" +"Create and return a new element with a namespace. The *tagName* may have a " +"prefix. The element is not inserted into the document when it is created. " +"You need to explicitly insert it with one of the other methods such as :meth:" +"`insertBefore` or :meth:`appendChild`." +msgstr "" +"Créé et renvoi un nouvel élément avec un *namespace*. Le *tagName* peut " +"avoir un préfixe. L'élément ne sera pas insérer dans le document quand il " +"est créé. Vous avez besoin de l'insérer explicitement avec l'une des autres " +"méthodes comme :meth:`insertBefore` ou :meth:`appendChild`." + +#: ../Doc/library/xml.dom.rst:532 +msgid "" +"Create and return a text node containing the data passed as a parameter. As " +"with the other creation methods, this one does not insert the node into the " +"tree." +msgstr "" +"Créé et renvoi un nœud texte contenant les *data* passées en paramètre. " +"Comme pour les autres méthodes de création, la méthode n'insère pas le nœud " +"dans l'arbre." + +#: ../Doc/library/xml.dom.rst:539 +msgid "" +"Create and return a comment node containing the data passed as a parameter. " +"As with the other creation methods, this one does not insert the node into " +"the tree." +msgstr "" +"Créé et renvoi un nœud commentaire contenant les *data* passé en " +"commentaire. Comme pour les autres méthodes de création, la méthode n'insère " +"pas le nœud dans l'arbre." + +#: ../Doc/library/xml.dom.rst:546 +msgid "" +"Create and return a processing instruction node containing the *target* and " +"*data* passed as parameters. As with the other creation methods, this one " +"does not insert the node into the tree." +msgstr "" +"Créé et retourne un nœud *processing instruction* contenant les *target* et " +"*data* passés en paramètres. Comme pour les autres méthodes de création, la " +"méthode n'insère pas le nœud dans l'arbre." + +#: ../Doc/library/xml.dom.rst:553 +msgid "" +"Create and return an attribute node. This method does not associate the " +"attribute node with any particular element. You must use :meth:" +"`setAttributeNode` on the appropriate :class:`Element` object to use the " +"newly created attribute instance." +msgstr "" +"Créé et renvoi un nœud attribut. Cette méthode n'associe le nœud attribut " +"aucun nœud en particulier. Vous devez utiliser la méthode :meth:" +"`setAttributeNode` sur un objet :class:`Element` approprié pour utiliser une " +"instance d'attribut nouvellement créé." + +#: ../Doc/library/xml.dom.rst:561 +msgid "" +"Create and return an attribute node with a namespace. The *tagName* may " +"have a prefix. This method does not associate the attribute node with any " +"particular element. You must use :meth:`setAttributeNode` on the " +"appropriate :class:`Element` object to use the newly created attribute " +"instance." +msgstr "" +"Créé et renvoi un nœud attribut avec un *namespace*. Le *tagName* peut avoir " +"un préfixe. Cette méthode n'associe le nœud attribut à aucun nœud en " +"particulier. Vous devez utiliser la méthode :meth:`setAttributeNode` sur un " +"objet :class:`Element` approprié pour utiliser une instance d'attribut " +"nouvellement créé." + +#: ../Doc/library/xml.dom.rst:569 +msgid "" +"Search for all descendants (direct children, children's children, etc.) with " +"a particular element type name." +msgstr "" +"Cherche tout les descendants (fils directs, fils de fils, etc.) avec un nom " +"de balise particulier." + +#: ../Doc/library/xml.dom.rst:575 +msgid "" +"Search for all descendants (direct children, children's children, etc.) with " +"a particular namespace URI and localname. The localname is the part of the " +"namespace after the prefix." +msgstr "" +"Cherche tous les descendants (fils directs, fils de fils, etc.) avec un " +"*namespace URI* particulier et un *localName*. Le *localName* fait parti du " +"*namespace* après le préfixe." + +#: ../Doc/library/xml.dom.rst:583 +msgid "Element Objects" +msgstr "Objets Elements" + +#: ../Doc/library/xml.dom.rst:585 +msgid "" +":class:`Element` is a subclass of :class:`Node`, so inherits all the " +"attributes of that class." +msgstr "" +":class:`Element` est une une sous classe de :class:`Node` et donc hérite de " +"tout les éléments de cette classe." + +#: ../Doc/library/xml.dom.rst:591 +msgid "" +"The element type name. In a namespace-using document it may have colons in " +"it. The value is a string." +msgstr "" +"Le nom de l'élément type. Dans un document utilisant des *namespace*, il " +"pourrait y avoir des *:* dedans. La valeur est une chaîne." + +#: ../Doc/library/xml.dom.rst:597 ../Doc/library/xml.dom.rst:602 +msgid "Same as equivalent method in the :class:`Document` class." +msgstr "Identique à la méthode équivalente de la classe :class:`Document`." + +#: ../Doc/library/xml.dom.rst:607 +msgid "Returns true if the element has an attribute named by *name*." +msgstr "Renvoi vrai si l'élément a un attribut nommé *name*." + +#: ../Doc/library/xml.dom.rst:612 +msgid "" +"Returns true if the element has an attribute named by *namespaceURI* and " +"*localName*." +msgstr "Renvoi vrai si l'élément a un nommé par *namespaceURI* et *localName*." + +#: ../Doc/library/xml.dom.rst:618 +msgid "" +"Return the value of the attribute named by *name* as a string. If no such " +"attribute exists, an empty string is returned, as if the attribute had no " +"value." +msgstr "" +"Retourne la valeur de l'attribut nommé par *name* comme une chaîne. Si un " +"tel attribue n'existe pas, une chaîne vide est retournée comme si l'attribut " +"n'avait aucune valeur." + +#: ../Doc/library/xml.dom.rst:624 +msgid "Return the :class:`Attr` node for the attribute named by *attrname*." +msgstr "Retourne le nœud :class:`Attr` pour l'attribut nommé par *attrname*." + +#: ../Doc/library/xml.dom.rst:629 +msgid "" +"Return the value of the attribute named by *namespaceURI* and *localName* as " +"a string. If no such attribute exists, an empty string is returned, as if " +"the attribute had no value." +msgstr "" +"Renvoi la valeur de l'attribut nommé par *namespaceURI* et *localName* comme " +"une chaîne. Si un tel attribue n'existe pas, une chaîne vide est retournée " +"comme si l'attribut n'avait aucune valeur." + +#: ../Doc/library/xml.dom.rst:636 +msgid "" +"Return an attribute value as a node, given a *namespaceURI* and *localName*." +msgstr "" +"Renvoi la valeur de l'attribue comme un nœud étant donné *namespaceURI* et " +"*localName*." + +#: ../Doc/library/xml.dom.rst:641 +msgid "" +"Remove an attribute by name. If there is no matching attribute, a :exc:" +"`NotFoundErr` is raised." +msgstr "" +"Retire un attribut nommé *name*. S'il n'y a aucun attribut correspondant " +"une :exc:`NotFoundErr` est levée." + +#: ../Doc/library/xml.dom.rst:647 +msgid "" +"Remove and return *oldAttr* from the attribute list, if present. If " +"*oldAttr* is not present, :exc:`NotFoundErr` is raised." +msgstr "" +"Supprime et renvoi *oldAttr* de la liste des attributs si présent. Si " +"*oldAttr* n'est pas présent, :exc:`NotFoundErr` est levée." + +#: ../Doc/library/xml.dom.rst:653 +msgid "" +"Remove an attribute by name. Note that it uses a localName, not a qname. " +"No exception is raised if there is no matching attribute." +msgstr "" +"Retire un attribut selon son nom. Notez qu'il utilise un *localName* et nom " +"un *qname*. Aucune exception n'est levée s'il n'y a pas d'attribut " +"correspondant." + +#: ../Doc/library/xml.dom.rst:659 +msgid "Set an attribute value from a string." +msgstr "Assigne la valeur à un attribut pour la chaîne." + +#: ../Doc/library/xml.dom.rst:664 +msgid "" +"Add a new attribute node to the element, replacing an existing attribute if " +"necessary if the :attr:`name` attribute matches. If a replacement occurs, " +"the old attribute node will be returned. If *newAttr* is already in use, :" +"exc:`InuseAttributeErr` will be raised." +msgstr "" +"Ajoute un nouveau nœud attribut à l'élément, remplaçant un attribut existant " +"si nécessaire si :attr:`name` corresponds à un attribut. Si l'attribut en " +"remplace un précédent, l'ancien attribut sera retourné. Si *newAttr* est " +"déjà utilisé, :exc:`InuseAttributeErr` sera levée." + +#: ../Doc/library/xml.dom.rst:672 +msgid "" +"Add a new attribute node to the element, replacing an existing attribute if " +"necessary if the :attr:`namespaceURI` and :attr:`localName` attributes " +"match. If a replacement occurs, the old attribute node will be returned. If " +"*newAttr* is already in use, :exc:`InuseAttributeErr` will be raised." +msgstr "" +"Ajoute un nouveau nœud attribut, remplaçant un attribut existant si :attr:" +"`namespaceURI` et :attr:`localName` corresponds à un attribut. S'il y a " +"remplacement, l'ancien nœud sera renvoyé. Si *newAttr* est déjà utilisé, :" +"exc:`InuseAttributeErr` sera levée." + +#: ../Doc/library/xml.dom.rst:680 +msgid "" +"Set an attribute value from a string, given a *namespaceURI* and a *qname*. " +"Note that a qname is the whole attribute name. This is different than above." +msgstr "" +"Assigne la valeur d'un attribut depuis une chaîne étant donnée un " +"*namespaceURI* et un *qname*. Notez que *qname* est le nom de l'attribut en " +"entier. Ceci est différent d'au dessus." + +#: ../Doc/library/xml.dom.rst:687 +msgid "Attr Objects" +msgstr "Objets Attr" + +#: ../Doc/library/xml.dom.rst:689 +msgid "" +":class:`Attr` inherits from :class:`Node`, so inherits all its attributes." +msgstr "" +":class:`Attr` hérite :class:`Node` et donc hérite de tout ces attributs." + +#: ../Doc/library/xml.dom.rst:694 +msgid "" +"The attribute name. In a namespace-using document it may include a colon." +msgstr "" +"Le nom de l'attribut. Dans un document utilisant des *namespaces*, il pourra " +"inclure un *:*." + +#: ../Doc/library/xml.dom.rst:700 +msgid "" +"The part of the name following the colon if there is one, else the entire " +"name. This is a read-only attribute." +msgstr "" +"La partie du nom suivant le *:* s'il y en a un ou le nom entier sinon. Ceci " +"est un attribut en lecture seule." + +#: ../Doc/library/xml.dom.rst:707 +msgid "" +"The part of the name preceding the colon if there is one, else the empty " +"string." +msgstr "La partie du nom précédent le *:* s'il y en a un ou une chaîne vide." + +#: ../Doc/library/xml.dom.rst:713 +msgid "" +"The text value of the attribute. This is a synonym for the :attr:" +"`nodeValue` attribute." +msgstr "" +"La valeur texte de l'attribut. C'est un synonyme de l'attribut :attr:" +"`nodeValue`." + +#: ../Doc/library/xml.dom.rst:720 +msgid "NamedNodeMap Objects" +msgstr "Objets NameNodeMap" + +#: ../Doc/library/xml.dom.rst:722 +msgid ":class:`NamedNodeMap` does *not* inherit from :class:`Node`." +msgstr ":class:`NamedNodeMap` *n'hérite pas* de :class:`Node`." + +#: ../Doc/library/xml.dom.rst:727 +msgid "The length of the attribute list." +msgstr "La longueur de la liste d'attributs." + +#: ../Doc/library/xml.dom.rst:732 +msgid "" +"Return an attribute with a particular index. The order you get the " +"attributes in is arbitrary but will be consistent for the life of a DOM. " +"Each item is an attribute node. Get its value with the :attr:`value` " +"attribute." +msgstr "" +"Renvoi un attribut à un index particulier. L'ordre des attribut est " +"arbitraire mais sera constant durant toute la vie du DOM. Chacun des item " +"sera un nœud attribut. Obtenez sa valeur avec :attr:`value` de l'attribut." + +#: ../Doc/library/xml.dom.rst:736 +msgid "" +"There are also experimental methods that give this class more mapping " +"behavior. You can use them or you can use the standardized :meth:" +"`getAttribute\\*` family of methods on the :class:`Element` objects." +msgstr "" +"Il y existe également des méthodes expérimentales qui donne à cette classe " +"un comportement plus *mappable*. Vous pouvez les utiliser ou utiliser la " +"famille de méthode standardisés :meth:`getAttribute\\*` des objets :class:" +"`Element`." + +#: ../Doc/library/xml.dom.rst:744 +msgid "Comment Objects" +msgstr "Objets Comment" + +#: ../Doc/library/xml.dom.rst:746 +msgid "" +":class:`Comment` represents a comment in the XML document. It is a subclass " +"of :class:`Node`, but cannot have child nodes." +msgstr "" +":class:`Comment` représente un commentaire dans le document XML. C'est une " +"sous classe :class:`Node` mais n'a aucune nœuds fils." + +#: ../Doc/library/xml.dom.rst:752 +msgid "" +"The content of the comment as a string. The attribute contains all " +"characters between the leading ````, " +"but does not include them." +msgstr "" +"Le contenu du commentaire comme une chaîne. L'attribut contient tous les " +"caractères entre ```` mais ne les inclues pas." + +#: ../Doc/library/xml.dom.rst:760 +msgid "Text and CDATASection Objects" +msgstr "Objets Text et CDATASection" + +#: ../Doc/library/xml.dom.rst:762 +msgid "" +"The :class:`Text` interface represents text in the XML document. If the " +"parser and DOM implementation support the DOM's XML extension, portions of " +"the text enclosed in CDATA marked sections are stored in :class:" +"`CDATASection` objects. These two interfaces are identical, but provide " +"different values for the :attr:`nodeType` attribute." +msgstr "" +"L'interface :class:`Text` représente le texte dans un document XML. Si " +"l'analyseur et l'implémentation DOM supporte les extensions XML du DOM, les " +"portion de texte encapsulées dans des section marquées CDATA seront stockées " +"dans des objets :class:`CDATASection`. Ces deux interfaces sont identiques " +"mais fournissent des valeurs différentes pour l'attribut :attr:`nodeType`." + +#: ../Doc/library/xml.dom.rst:768 +msgid "" +"These interfaces extend the :class:`Node` interface. They cannot have child " +"nodes." +msgstr "" +"Ces interfaces étendent l'interface :class:`Node`. Elles ne peuvent pas " +"avoir de nœuds fils." + +#: ../Doc/library/xml.dom.rst:774 +msgid "The content of the text node as a string." +msgstr "Le contenu du nœud texte comme une chaîne." + +#: ../Doc/library/xml.dom.rst:778 +msgid "" +"The use of a :class:`CDATASection` node does not indicate that the node " +"represents a complete CDATA marked section, only that the content of the " +"node was part of a CDATA section. A single CDATA section may be represented " +"by more than one node in the document tree. There is no way to determine " +"whether two adjacent :class:`CDATASection` nodes represent different CDATA " +"marked sections." +msgstr "" +"L'utilisation d'un nœud :class:`CDATASection` n'indique pas que le nœud " +"représente une section complète marquée CDATA, seulement que le contenu du " +"nœud est le contenu d'une section CDATA. Une seule section CDATA peut " +"représenter plus d'un nœud dans l'arbre du document. Il n'y a aucun moyen de " +"déterminer si deux nœuds :class:`CDATASection` adjacents représentent " +"différentes sections CDATA." + +#: ../Doc/library/xml.dom.rst:788 +msgid "ProcessingInstruction Objects" +msgstr "Objets ProcessingInstruction" + +#: ../Doc/library/xml.dom.rst:790 +msgid "" +"Represents a processing instruction in the XML document; this inherits from " +"the :class:`Node` interface and cannot have child nodes." +msgstr "" +"Représente une *processing instruction* dans un document XML. Hérite de " +"l'interface :class:`Node` et ne peut avoir aucun nœud fils." + +#: ../Doc/library/xml.dom.rst:796 +msgid "" +"The content of the processing instruction up to the first whitespace " +"character. This is a read-only attribute." +msgstr "" +"Le contenu de la *processing instruction* jusqu'au premier caractère blanc. " +"Cet attribut est en lecture seule." + +#: ../Doc/library/xml.dom.rst:802 +msgid "" +"The content of the processing instruction following the first whitespace " +"character." +msgstr "" +"Le contenu de la *processing instruction* après le premier caractère blanc." + +#: ../Doc/library/xml.dom.rst:809 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/xml.dom.rst:811 +msgid "" +"The DOM Level 2 recommendation defines a single exception, :exc:" +"`DOMException`, and a number of constants that allow applications to " +"determine what sort of error occurred. :exc:`DOMException` instances carry " +"a :attr:`code` attribute that provides the appropriate value for the " +"specific exception." +msgstr "" +"La recommandation *DOM Level 2* définie une seule exception :exc:" +"`DOMException` et un nombre de constantes qui permettent aux applications à " +"déterminer quelle type d'erreur s'est produit. Les instances de :exc:" +"`DOMException` ont un attribut :attr:`code` qui fourni une valeur approprié " +"pour une exception spécifique." + +#: ../Doc/library/xml.dom.rst:816 +msgid "" +"The Python DOM interface provides the constants, but also expands the set of " +"exceptions so that a specific exception exists for each of the exception " +"codes defined by the DOM. The implementations must raise the appropriate " +"specific exception, each of which carries the appropriate value for the :" +"attr:`code` attribute." +msgstr "" +"L'interface DOM de Python fournit des constant mais également étends un " +"ensemble d'exception pour qu'il existe une exception spécifique pour chaque " +"code d'exception défini par le DOM. L'implémentation doit lever l'exception " +"spécifique appropriée. Chacune ayant la valeur appropriée pour l'attribut :" +"attr:`code`." + +#: ../Doc/library/xml.dom.rst:825 +msgid "" +"Base exception class used for all specific DOM exceptions. This exception " +"class cannot be directly instantiated." +msgstr "" +"Exception de base utilisée pour toutes les exceptions spécifiques du DOM. " +"Cette classe ne peut pas être instanciée directement." + +#: ../Doc/library/xml.dom.rst:831 +msgid "" +"Raised when a specified range of text does not fit into a string. This is " +"not known to be used in the Python DOM implementations, but may be received " +"from DOM implementations not written in Python." +msgstr "" +"Levée quand un intervalle spécifique de texte ne rentre pas dans une chaîne. " +"Cette exception n'est pas réputée être utilisée par les implémentations DOM " +"de Python mais elle peur être levée par des implémentations de DOM qui ne " +"sont pas écrite en Python." + +#: ../Doc/library/xml.dom.rst:838 +msgid "" +"Raised when an attempt is made to insert a node where the node type is not " +"allowed." +msgstr "" +"Levée quand l'insertion d'un nœud est tentée dans un type de nœud " +"incompatible." + +#: ../Doc/library/xml.dom.rst:844 +msgid "" +"Raised when an index or size parameter to a method is negative or exceeds " +"the allowed values." +msgstr "" +"Levée quand un index ou la taille d'un paramètre d'une méthode est négatif " +"ou excède les valeurs autorisées." + +#: ../Doc/library/xml.dom.rst:850 +msgid "" +"Raised when an attempt is made to insert an :class:`Attr` node that is " +"already present elsewhere in the document." +msgstr "" +"Levée quand l'insertion d'un nœud :class:`Attr` est tenté alors que ce nœud " +"est déjà présent ailleurs dans le document." + +#: ../Doc/library/xml.dom.rst:856 +msgid "" +"Raised if a parameter or an operation is not supported on the underlying " +"object." +msgstr "" +"Levée si un paramètre ou une opération n'est pas supporté par l'objet sous-" +"jacent." + +#: ../Doc/library/xml.dom.rst:861 +msgid "" +"This exception is raised when a string parameter contains a character that " +"is not permitted in the context it's being used in by the XML 1.0 " +"recommendation. For example, attempting to create an :class:`Element` node " +"with a space in the element type name will cause this error to be raised." +msgstr "" +"Cette exception est levée quand un paramètre chaîne contient un caractère " +"qui n'est pas autorisé dans le contexte utilisé par la recommandation XML " +"1.0. Par exemple, lors la tentative de création d'un nœud :class:`Element` " +"avec un espace dans le nom de l'élément." + +#: ../Doc/library/xml.dom.rst:869 +msgid "Raised when an attempt is made to modify the type of a node." +msgstr "Levée lors de la tentative de modifier le type de nœud." + +#: ../Doc/library/xml.dom.rst:874 +msgid "" +"Raised when an attempt is made to use an object that is not defined or is no " +"longer usable." +msgstr "" +"Levée quand une tentative est faite d'utiliser un objet non défini ou qui ne " +"sont plus utilisables." + +#: ../Doc/library/xml.dom.rst:880 +msgid "" +"If an attempt is made to change any object in a way that is not permitted " +"with regard to the `Namespaces in XML `_ recommendation, this exception is raised." +msgstr "" +"Si une tentative est faite de changer un objet d'une manière qui n'est pas " +"autorisée selon la recommandation `Namespaces in XML `_ , cette exception est levée." + +#: ../Doc/library/xml.dom.rst:887 +msgid "" +"Exception when a node does not exist in the referenced context. For " +"example, :meth:`NamedNodeMap.removeNamedItem` will raise this if the node " +"passed in does not exist in the map." +msgstr "" +"Exception quand un nœud n'existe pas dans le contexte référencé. Par " +"exemple, :meth:`NamedNodeMap.removeNamedItem` lèvera cette exception si le " +"nœud passé n'appartient pas à la séquence." + +#: ../Doc/library/xml.dom.rst:894 +msgid "" +"Raised when the implementation does not support the requested type of object " +"or operation." +msgstr "" +"Levée si l'implémentation ne supporte pas le type d'objet requis ou " +"l'opération." + +#: ../Doc/library/xml.dom.rst:900 +msgid "" +"This is raised if data is specified for a node which does not support data." +msgstr "Levée si la donnée spécifiée pour un nœud n'est pas supportée." + +#: ../Doc/library/xml.dom.rst:907 +msgid "" +"Raised on attempts to modify an object where modifications are not allowed " +"(such as for read-only nodes)." +msgstr "" +"Levée lors de la tentative de modification sur objet où les modifications ne " +"sont pas autorisées (tels que les nœuds en lecture seule)." + +#: ../Doc/library/xml.dom.rst:913 +msgid "Raised when an invalid or illegal string is specified." +msgstr "Levée quand une chaîne invalide ou illégale est spécifiée." + +#: ../Doc/library/xml.dom.rst:920 +msgid "" +"Raised when a node is inserted in a different document than it currently " +"belongs to, and the implementation does not support migrating the node from " +"one document to the other." +msgstr "" +"Levée quand un nœud est inséré dans un document différent de celui auquel il " +"appartient et que l'implémentation ne supporte pas la migration d'un " +"document à un autre." + +#: ../Doc/library/xml.dom.rst:924 +msgid "" +"The exception codes defined in the DOM recommendation map to the exceptions " +"described above according to this table:" +msgstr "" +"Les codes d'exceptions définis par la recommandation DOM avec leurs " +"correspondances décrites si dessous selon ce tableau :" + +#: ../Doc/library/xml.dom.rst:928 +msgid "Constant" +msgstr "Constante" + +#: ../Doc/library/xml.dom.rst:928 +msgid "Exception" +msgstr "Exception" + +#: ../Doc/library/xml.dom.rst:930 +msgid ":const:`DOMSTRING_SIZE_ERR`" +msgstr ":const:`DOMSTRING_SIZE_ERR`" + +#: ../Doc/library/xml.dom.rst:930 +msgid ":exc:`DomstringSizeErr`" +msgstr ":exc:`DomstringSizeErr`" + +#: ../Doc/library/xml.dom.rst:932 +msgid ":const:`HIERARCHY_REQUEST_ERR`" +msgstr ":const:`HIERARCHY_REQUEST_ERR`" + +#: ../Doc/library/xml.dom.rst:932 +msgid ":exc:`HierarchyRequestErr`" +msgstr ":exc:`HierarchyRequestErr`" + +#: ../Doc/library/xml.dom.rst:934 +msgid ":const:`INDEX_SIZE_ERR`" +msgstr ":const:`INDEX_SIZE_ERR`" + +#: ../Doc/library/xml.dom.rst:934 +msgid ":exc:`IndexSizeErr`" +msgstr ":exc:`IndexSizeErr`" + +#: ../Doc/library/xml.dom.rst:936 +msgid ":const:`INUSE_ATTRIBUTE_ERR`" +msgstr ":const:`INUSE_ATTRIBUTE_ERR`" + +#: ../Doc/library/xml.dom.rst:936 +msgid ":exc:`InuseAttributeErr`" +msgstr ":exc:`InuseAttributeErr`" + +#: ../Doc/library/xml.dom.rst:938 +msgid ":const:`INVALID_ACCESS_ERR`" +msgstr ":const:`INVALID_ACCESS_ERR`" + +#: ../Doc/library/xml.dom.rst:938 +msgid ":exc:`InvalidAccessErr`" +msgstr ":exc:`InvalidAccessErr`" + +#: ../Doc/library/xml.dom.rst:940 +msgid ":const:`INVALID_CHARACTER_ERR`" +msgstr ":const:`INVALID_CHARACTER_ERR`" + +#: ../Doc/library/xml.dom.rst:940 +msgid ":exc:`InvalidCharacterErr`" +msgstr ":exc:`InvalidCharacterErr`" + +#: ../Doc/library/xml.dom.rst:942 +msgid ":const:`INVALID_MODIFICATION_ERR`" +msgstr ":const:`INVALID_MODIFICATION_ERR`" + +#: ../Doc/library/xml.dom.rst:942 +msgid ":exc:`InvalidModificationErr`" +msgstr ":exc:`InvalidModificationErr`" + +#: ../Doc/library/xml.dom.rst:944 +msgid ":const:`INVALID_STATE_ERR`" +msgstr ":const:`INVALID_STATE_ERR`" + +#: ../Doc/library/xml.dom.rst:944 +msgid ":exc:`InvalidStateErr`" +msgstr ":exc:`InvalidStateErr`" + +#: ../Doc/library/xml.dom.rst:946 +msgid ":const:`NAMESPACE_ERR`" +msgstr ":const:`NAMESPACE_ERR`" + +#: ../Doc/library/xml.dom.rst:946 +msgid ":exc:`NamespaceErr`" +msgstr ":exc:`NamespaceErr`" + +#: ../Doc/library/xml.dom.rst:948 +msgid ":const:`NOT_FOUND_ERR`" +msgstr ":const:`NOT_FOUND_ERR`" + +#: ../Doc/library/xml.dom.rst:948 +msgid ":exc:`NotFoundErr`" +msgstr ":exc:`NotFoundErr`" + +#: ../Doc/library/xml.dom.rst:950 +msgid ":const:`NOT_SUPPORTED_ERR`" +msgstr ":const:`NOT_SUPPORTED_ERR`" + +#: ../Doc/library/xml.dom.rst:950 +msgid ":exc:`NotSupportedErr`" +msgstr ":exc:`NotSupportedErr`" + +#: ../Doc/library/xml.dom.rst:952 +msgid ":const:`NO_DATA_ALLOWED_ERR`" +msgstr ":const:`NO_DATA_ALLOWED_ERR`" + +#: ../Doc/library/xml.dom.rst:952 +msgid ":exc:`NoDataAllowedErr`" +msgstr ":exc:`NoDataAllowedErr`" + +#: ../Doc/library/xml.dom.rst:954 +msgid ":const:`NO_MODIFICATION_ALLOWED_ERR`" +msgstr ":const:`NO_MODIFICATION_ALLOWED_ERR`" + +#: ../Doc/library/xml.dom.rst:954 +msgid ":exc:`NoModificationAllowedErr`" +msgstr ":exc:`NoModificationAllowedErr`" + +#: ../Doc/library/xml.dom.rst:956 +msgid ":const:`SYNTAX_ERR`" +msgstr ":const:`SYNTAX_ERR`" + +#: ../Doc/library/xml.dom.rst:956 +msgid ":exc:`SyntaxErr`" +msgstr ":exc:`SyntaxErr`" + +#: ../Doc/library/xml.dom.rst:958 +msgid ":const:`WRONG_DOCUMENT_ERR`" +msgstr ":const:`WRONG_DOCUMENT_ERR`" + +#: ../Doc/library/xml.dom.rst:958 +msgid ":exc:`WrongDocumentErr`" +msgstr ":exc:`WrongDocumentErr`" + +#: ../Doc/library/xml.dom.rst:965 +msgid "Conformance" +msgstr "Conformité" + +#: ../Doc/library/xml.dom.rst:967 +msgid "" +"This section describes the conformance requirements and relationships " +"between the Python DOM API, the W3C DOM recommendations, and the OMG IDL " +"mapping for Python." +msgstr "" +"Cette section décrit la conformité des pré requis et des relations entre " +"l'API DOM de Python, les recommandations *W3C* DOM et les correspondances " +"OMG IDL pour Python." + +#: ../Doc/library/xml.dom.rst:975 +msgid "Type Mapping" +msgstr "Correspondance des types" + +#: ../Doc/library/xml.dom.rst:977 +msgid "" +"The IDL types used in the DOM specification are mapped to Python types " +"according to the following table." +msgstr "" +"Les types IDL utilisés dans la spécification DOM correspondent aux types " +"Python selon le tableau suivant." + +#: ../Doc/library/xml.dom.rst:981 +msgid "IDL Type" +msgstr "Type IDL" + +#: ../Doc/library/xml.dom.rst:981 +msgid "Python Type" +msgstr "Type Python" + +#: ../Doc/library/xml.dom.rst:983 +msgid "``boolean``" +msgstr "``boolean``" + +#: ../Doc/library/xml.dom.rst:983 +msgid "``bool`` or ``int``" +msgstr "``bool`` ou ``int``" + +#: ../Doc/library/xml.dom.rst:985 ../Doc/library/xml.dom.rst:987 +#: ../Doc/library/xml.dom.rst:989 +msgid "``int``" +msgstr "``int``" + +#: ../Doc/library/xml.dom.rst:987 +msgid "``long int``" +msgstr "``long int``" + +#: ../Doc/library/xml.dom.rst:989 +msgid "``unsigned int``" +msgstr "``unsigned int``" + +#: ../Doc/library/xml.dom.rst:991 +msgid "``DOMString``" +msgstr "``DOMString``" + +#: ../Doc/library/xml.dom.rst:991 +msgid "``str`` or ``bytes``" +msgstr "``str`` or ``bytes``" + +#: ../Doc/library/xml.dom.rst:993 +msgid "``null``" +msgstr "``null``" + +#: ../Doc/library/xml.dom.rst:993 +msgid "``None``" +msgstr "``None``" + +#: ../Doc/library/xml.dom.rst:999 +msgid "Accessor Methods" +msgstr "Méthodes d'accès" + +#: ../Doc/library/xml.dom.rst:1001 +msgid "" +"The mapping from OMG IDL to Python defines accessor functions for IDL " +"``attribute`` declarations in much the way the Java mapping does. Mapping " +"the IDL declarations ::" +msgstr "" +"Les correspondance de OMG IDL vers Python définissent des fonction d'accès " +"pour les déclarations ``attribut`` d'IDL à la manière dont Java le fait. " +"Correspondance des déclarations IDL ::" + +#: ../Doc/library/xml.dom.rst:1008 +msgid "" +"yields three accessor functions: a \"get\" method for :attr:`someValue` (:" +"meth:`_get_someValue`), and \"get\" and \"set\" methods for :attr:" +"`anotherValue` (:meth:`_get_anotherValue` and :meth:`_set_anotherValue`). " +"The mapping, in particular, does not require that the IDL attributes are " +"accessible as normal Python attributes: ``object.someValue`` is *not* " +"required to work, and may raise an :exc:`AttributeError`." +msgstr "" +"Donne trois fonctions d'accès : une méthode *get* pour :attr:`someValue` (:" +"meth:`_get_someValue`) et des méthodes *get* et *set* pour :attr:" +"`anotherValue` (:meth:`_get_anotherValue` et :meth:`_set_anotherValue`). Le " +"*mapping*, en particulier, ne requiert pas que les attributs IDL soient " +"accessible comme des attributs Python normaux : ``object.someValue`` n'est " +"*pas* requis de fonctionner et peut lever une :exc:`AttributeError`." + +#: ../Doc/library/xml.dom.rst:1015 +msgid "" +"The Python DOM API, however, *does* require that normal attribute access " +"work. This means that the typical surrogates generated by Python IDL " +"compilers are not likely to work, and wrapper objects may be needed on the " +"client if the DOM objects are accessed via CORBA. While this does require " +"some additional consideration for CORBA DOM clients, the implementers with " +"experience using DOM over CORBA from Python do not consider this a problem. " +"Attributes that are declared ``readonly`` may not restrict write access in " +"all DOM implementations." +msgstr "" +"Cependant, l'API DOM de Python *impose* que les accès par attributs " +"classiques fonctionnent. Par conséquent, les substituts générés par le " +"compilateur IDL de Python ne fonctionneront probablement pas, et des objets " +"façade pourraient être nécessaires côté client si les objets DOM sont " +"manipulés via CORBA. Bien qu'utiliser un client DOM CORBA nécessite une " +"bonne réflexion, les développeurs habitués et expérimentés à l'utilisation " +"de CORBA ne considèrent pas que c'est un problème. Les attributs déclarés " +"``readonly`` pourraient ne pas voir leur accès en écriture restreint dans " +"toutes les implémentations du DOM." + +#: ../Doc/library/xml.dom.rst:1024 +msgid "" +"In the Python DOM API, accessor functions are not required. If provided, " +"they should take the form defined by the Python IDL mapping, but these " +"methods are considered unnecessary since the attributes are accessible " +"directly from Python. \"Set\" accessors should never be provided for " +"``readonly`` attributes." +msgstr "" +"Dans l'API DOM de Python, les fonctions d'accès ne sont pas requises. Si " +"elles sont fournies, elles doivent prendre la forme définie par le *mapping* " +"de Python IDL, mais ces méthodes sont considérées inutiles car les attributs " +"sont directement accessible depuis Python. Les fonctions d'accès \"Set\" ne " +"devraient jamais être fournies pour les attributs ``readonly`` (en lecture " +"seule)." + +#: ../Doc/library/xml.dom.rst:1029 +msgid "" +"The IDL definitions do not fully embody the requirements of the W3C DOM API, " +"such as the notion of certain objects, such as the return value of :meth:" +"`getElementsByTagName`, being \"live\". The Python DOM API does not require " +"implementations to enforce such requirements." +msgstr "" +"Les définitions IDL n'embarquent pas entièrement les pré-requis de l'API de " +"DOM API telle que la notion de objets ou que la valeur de retour de :meth:" +"`getElementsByTagName` est dynamique. L'API DOM de Python ne requiert pas " +"des implémentations d'avoir de tel pré-requis." diff --git a/library/xml.dom.pulldom.po b/library/xml.dom.pulldom.po new file mode 100644 index 000000000..b8199b0f3 --- /dev/null +++ b/library/xml.dom.pulldom.po @@ -0,0 +1,160 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/xml.dom.pulldom.rst:2 +msgid ":mod:`xml.dom.pulldom` --- Support for building partial DOM trees" +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:9 +msgid "**Source code:** :source:`Lib/xml/dom/pulldom.py`" +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:13 +msgid "" +"The :mod:`xml.dom.pulldom` module provides a \"pull parser\" which can also " +"be asked to produce DOM-accessible fragments of the document where " +"necessary. The basic concept involves pulling \"events\" from a stream of " +"incoming XML and processing them. In contrast to SAX which also employs an " +"event-driven processing model together with callbacks, the user of a pull " +"parser is responsible for explicitly pulling events from the stream, looping " +"over those events until either processing is finished or an error condition " +"occurs." +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:24 +msgid "" +"The :mod:`xml.dom.pulldom` module is not secure against maliciously " +"constructed data. If you need to parse untrusted or unauthenticated data " +"see :ref:`xml-vulnerabilities`." +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:30 +msgid "" +"The SAX parser no longer processes general external entities by default to " +"increase security by default. To enable processing of external entities, " +"pass a custom parser instance in::" +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:43 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/xml.dom.pulldom.rst:54 +msgid "``event`` is a constant and can be one of:" +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:56 +msgid ":data:`START_ELEMENT`" +msgstr ":data:`START_ELEMENT`" + +#: ../Doc/library/xml.dom.pulldom.rst:57 +msgid ":data:`END_ELEMENT`" +msgstr ":data:`END_ELEMENT`" + +#: ../Doc/library/xml.dom.pulldom.rst:58 +msgid ":data:`COMMENT`" +msgstr ":data:`COMMENT`" + +#: ../Doc/library/xml.dom.pulldom.rst:59 +msgid ":data:`START_DOCUMENT`" +msgstr ":data:`START_DOCUMENT`" + +#: ../Doc/library/xml.dom.pulldom.rst:60 +msgid ":data:`END_DOCUMENT`" +msgstr ":data:`END_DOCUMENT`" + +#: ../Doc/library/xml.dom.pulldom.rst:61 +msgid ":data:`CHARACTERS`" +msgstr ":data:`CHARACTERS`" + +#: ../Doc/library/xml.dom.pulldom.rst:62 +msgid ":data:`PROCESSING_INSTRUCTION`" +msgstr ":data:`PROCESSING_INSTRUCTION`" + +#: ../Doc/library/xml.dom.pulldom.rst:63 +msgid ":data:`IGNORABLE_WHITESPACE`" +msgstr ":data:`IGNORABLE_WHITESPACE`" + +#: ../Doc/library/xml.dom.pulldom.rst:65 +msgid "" +"``node`` is an object of type :class:`xml.dom.minidom.Document`, :class:`xml." +"dom.minidom.Element` or :class:`xml.dom.minidom.Text`." +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:68 +msgid "" +"Since the document is treated as a \"flat\" stream of events, the document " +"\"tree\" is implicitly traversed and the desired elements are found " +"regardless of their depth in the tree. In other words, one does not need to " +"consider hierarchical issues such as recursive searching of the document " +"nodes, although if the context of elements were important, one would either " +"need to maintain some context-related state (i.e. remembering where one is " +"in the document at any given point) or to make use of the :func:" +"`DOMEventStream.expandNode` method and switch to DOM-related processing." +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:80 ../Doc/library/xml.dom.pulldom.rst:85 +msgid "Subclass of :class:`xml.sax.handler.ContentHandler`." +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:90 +msgid "" +"Return a :class:`DOMEventStream` from the given input. *stream_or_string* " +"may be either a file name, or a file-like object. *parser*, if given, must " +"be an :class:`~xml.sax.xmlreader.XMLReader` object. This function will " +"change the document handler of the parser and activate namespace support; " +"other parser configuration (like setting an entity resolver) must have been " +"done in advance." +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:97 +msgid "" +"If you have XML in a string, you can use the :func:`parseString` function " +"instead:" +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:101 +msgid "" +"Return a :class:`DOMEventStream` that represents the (Unicode) *string*." +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:105 +msgid "Default value for the *bufsize* parameter to :func:`parse`." +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:107 +msgid "" +"The value of this variable can be changed before calling :func:`parse` and " +"the new value will take effect." +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:113 +msgid "DOMEventStream Objects" +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:120 +msgid "" +"Return a tuple containing *event* and the current *node* as :class:`xml.dom." +"minidom.Document` if event equals :data:`START_DOCUMENT`, :class:`xml.dom." +"minidom.Element` if event equals :data:`START_ELEMENT` or :data:" +"`END_ELEMENT` or :class:`xml.dom.minidom.Text` if event equals :data:" +"`CHARACTERS`. The current node does not contain information about its " +"children, unless :func:`expandNode` is called." +msgstr "" + +#: ../Doc/library/xml.dom.pulldom.rst:130 +msgid "Expands all children of *node* into *node*. Example::" +msgstr "" diff --git a/library/xml.etree.elementtree.po b/library/xml.etree.elementtree.po new file mode 100644 index 000000000..b4fcd3395 --- /dev/null +++ b/library/xml.etree.elementtree.po @@ -0,0 +1,1129 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2018-07-04 11:02+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/xml.etree.elementtree.rst:2 +msgid ":mod:`xml.etree.ElementTree` --- The ElementTree XML API" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:9 +msgid "**Source code:** :source:`Lib/xml/etree/ElementTree.py`" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:13 +msgid "" +"The :mod:`xml.etree.ElementTree` module implements a simple and efficient " +"API for parsing and creating XML data." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:16 +msgid "" +"This module will use a fast implementation whenever available. The :mod:`xml." +"etree.cElementTree` module is deprecated." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:23 +msgid "" +"The :mod:`xml.etree.ElementTree` module is not secure against maliciously " +"constructed data. If you need to parse untrusted or unauthenticated data " +"see :ref:`xml-vulnerabilities`." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:28 +msgid "Tutorial" +msgstr "Tutoriel" + +#: ../Doc/library/xml.etree.elementtree.rst:30 +msgid "" +"This is a short tutorial for using :mod:`xml.etree.ElementTree` (``ET`` in " +"short). The goal is to demonstrate some of the building blocks and basic " +"concepts of the module." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:35 +msgid "XML tree and elements" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:37 +msgid "" +"XML is an inherently hierarchical data format, and the most natural way to " +"represent it is with a tree. ``ET`` has two classes for this purpose - :" +"class:`ElementTree` represents the whole XML document as a tree, and :class:" +"`Element` represents a single node in this tree. Interactions with the " +"whole document (reading and writing to/from files) are usually done on the :" +"class:`ElementTree` level. Interactions with a single XML element and its " +"sub-elements are done on the :class:`Element` level." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:48 +msgid "Parsing XML" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:50 +msgid "" +"We'll be using the following XML document as the sample data for this " +"section:" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:78 +msgid "We can import this data by reading from a file::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:84 +msgid "Or directly from a string::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:88 +msgid "" +":func:`fromstring` parses XML from a string directly into an :class:" +"`Element`, which is the root element of the parsed tree. Other parsing " +"functions may create an :class:`ElementTree`. Check the documentation to be " +"sure." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:92 +msgid "" +"As an :class:`Element`, ``root`` has a tag and a dictionary of attributes::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:99 +msgid "It also has children nodes over which we can iterate::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:108 +msgid "Children are nested, and we can access specific child nodes by index::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:116 +msgid "" +"Not all elements of the XML input will end up as elements of the parsed " +"tree. Currently, this module skips over any XML comments, processing " +"instructions, and document type declarations in the input. Nevertheless, " +"trees built using this module's API rather than parsing from XML text can " +"have comments and processing instructions in them; they will be included " +"when generating XML output. A document type declaration may be accessed by " +"passing a custom :class:`TreeBuilder` instance to the :class:`XMLParser` " +"constructor." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:130 +msgid "Pull API for non-blocking parsing" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:132 +msgid "" +"Most parsing functions provided by this module require the whole document to " +"be read at once before returning any result. It is possible to use an :" +"class:`XMLParser` and feed data into it incrementally, but it is a push API " +"that calls methods on a callback target, which is too low-level and " +"inconvenient for most needs. Sometimes what the user really wants is to be " +"able to parse XML incrementally, without blocking operations, while enjoying " +"the convenience of fully constructed :class:`Element` objects." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:140 +msgid "" +"The most powerful tool for doing this is :class:`XMLPullParser`. It does " +"not require a blocking read to obtain the XML data, and is instead fed with " +"data incrementally with :meth:`XMLPullParser.feed` calls. To get the parsed " +"XML elements, call :meth:`XMLPullParser.read_events`. Here is an example::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:156 +msgid "" +"The obvious use case is applications that operate in a non-blocking fashion " +"where the XML data is being received from a socket or read incrementally " +"from some storage device. In such cases, blocking reads are unacceptable." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:160 +msgid "" +"Because it's so flexible, :class:`XMLPullParser` can be inconvenient to use " +"for simpler use-cases. If you don't mind your application blocking on " +"reading XML data but would still like to have incremental parsing " +"capabilities, take a look at :func:`iterparse`. It can be useful when " +"you're reading a large XML document and don't want to hold it wholly in " +"memory." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:167 +msgid "Finding interesting elements" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:169 +msgid "" +":class:`Element` has some useful methods that help iterate recursively over " +"all the sub-tree below it (its children, their children, and so on). For " +"example, :meth:`Element.iter`::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:182 +msgid "" +":meth:`Element.findall` finds only elements with a tag which are direct " +"children of the current element. :meth:`Element.find` finds the *first* " +"child with a particular tag, and :attr:`Element.text` accesses the element's " +"text content. :meth:`Element.get` accesses the element's attributes::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:196 +msgid "" +"More sophisticated specification of which elements to look for is possible " +"by using :ref:`XPath `." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:200 +msgid "Modifying an XML File" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:202 +msgid "" +":class:`ElementTree` provides a simple way to build XML documents and write " +"them to files. The :meth:`ElementTree.write` method serves this purpose." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:205 +msgid "" +"Once created, an :class:`Element` object may be manipulated by directly " +"changing its fields (such as :attr:`Element.text`), adding and modifying " +"attributes (:meth:`Element.set` method), as well as adding new children (for " +"example with :meth:`Element.append`)." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:210 +msgid "" +"Let's say we want to add one to each country's rank, and add an ``updated`` " +"attribute to the rank element::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:220 +#: ../Doc/library/xml.etree.elementtree.rst:258 +msgid "Our XML now looks like this:" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:248 +msgid "" +"We can remove elements using :meth:`Element.remove`. Let's say we want to " +"remove all countries with a rank higher than 50::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:280 +msgid "Building XML documents" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:282 +msgid "" +"The :func:`SubElement` function also provides a convenient way to create new " +"sub-elements for a given element::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:293 +msgid "Parsing XML with Namespaces" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:295 +msgid "" +"If the XML input has `namespaces `__, tags and attributes with prefixes in the form ``prefix:" +"sometag`` get expanded to ``{uri}sometag`` where the *prefix* is replaced by " +"the full *URI*. Also, if there is a `default namespace `__, that full URI gets prepended to all of the non-" +"prefixed tags." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:303 +msgid "" +"Here is an XML example that incorporates two namespaces, one with the prefix " +"\"fictional\" and the other serving as the default namespace:" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:324 +msgid "" +"One way to search and explore this XML example is to manually add the URI to " +"every tag or attribute in the xpath of a :meth:`~Element.find` or :meth:" +"`~Element.findall`::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:335 +msgid "" +"A better way to search the namespaced XML example is to create a dictionary " +"with your own prefixes and use those in the search functions::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:347 +msgid "These two approaches both output::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:359 +msgid "Additional resources" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:361 +msgid "" +"See http://effbot.org/zone/element-index.htm for tutorials and links to " +"other docs." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:368 +msgid "XPath support" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:370 +msgid "" +"This module provides limited support for `XPath expressions `_ for locating elements in a tree. The goal is to support a " +"small subset of the abbreviated syntax; a full XPath engine is outside the " +"scope of the module." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:376 +msgid "Example" +msgstr "Exemple" + +#: ../Doc/library/xml.etree.elementtree.rst:378 +msgid "" +"Here's an example that demonstrates some of the XPath capabilities of the " +"module. We'll be using the ``countrydata`` XML document from the :ref:" +"`Parsing XML ` section::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:403 +msgid "Supported XPath syntax" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:408 +msgid "Syntax" +msgstr "Syntaxe" + +#: ../Doc/library/xml.etree.elementtree.rst:408 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/library/xml.etree.elementtree.rst:410 +msgid "``tag``" +msgstr "``tag``" + +#: ../Doc/library/xml.etree.elementtree.rst:410 +msgid "" +"Selects all child elements with the given tag. For example, ``spam`` selects " +"all child elements named ``spam``, and ``spam/egg`` selects all " +"grandchildren named ``egg`` in all children named ``spam``." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:416 +msgid "``*``" +msgstr "``*``" + +#: ../Doc/library/xml.etree.elementtree.rst:416 +msgid "" +"Selects all child elements. For example, ``*/egg`` selects all " +"grandchildren named ``egg``." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:419 +msgid "``.``" +msgstr "``.``" + +#: ../Doc/library/xml.etree.elementtree.rst:419 +msgid "" +"Selects the current node. This is mostly useful at the beginning of the " +"path, to indicate that it's a relative path." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:423 +msgid "``//``" +msgstr "``//``" + +#: ../Doc/library/xml.etree.elementtree.rst:423 +msgid "" +"Selects all subelements, on all levels beneath the current element. For " +"example, ``.//egg`` selects all ``egg`` elements in the entire tree." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:427 +msgid "``..``" +msgstr "``..``" + +#: ../Doc/library/xml.etree.elementtree.rst:427 +msgid "" +"Selects the parent element. Returns ``None`` if the path attempts to reach " +"the ancestors of the start element (the element ``find`` was called on)." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:431 +msgid "``[@attrib]``" +msgstr "``[@attrib]``" + +#: ../Doc/library/xml.etree.elementtree.rst:431 +msgid "Selects all elements that have the given attribute." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:433 +msgid "``[@attrib='value']``" +msgstr "``[@attrib='value']``" + +#: ../Doc/library/xml.etree.elementtree.rst:433 +msgid "" +"Selects all elements for which the given attribute has the given value. The " +"value cannot contain quotes." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:437 +msgid "``[tag]``" +msgstr "``[tag]``" + +#: ../Doc/library/xml.etree.elementtree.rst:437 +msgid "" +"Selects all elements that have a child named ``tag``. Only immediate " +"children are supported." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:440 +msgid "``[.='text']``" +msgstr "``[.='text']``" + +#: ../Doc/library/xml.etree.elementtree.rst:440 +msgid "" +"Selects all elements whose complete text content, including descendants, " +"equals the given ``text``." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:445 +msgid "``[tag='text']``" +msgstr "``[tag='text']``" + +#: ../Doc/library/xml.etree.elementtree.rst:445 +msgid "" +"Selects all elements that have a child named ``tag`` whose complete text " +"content, including descendants, equals the given ``text``." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:449 +msgid "``[position]``" +msgstr "``[position]``" + +#: ../Doc/library/xml.etree.elementtree.rst:449 +msgid "" +"Selects all elements that are located at the given position. The position " +"can be either an integer (1 is the first position), the expression " +"``last()`` (for the last position), or a position relative to the last " +"position (e.g. ``last()-1``)." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:456 +msgid "" +"Predicates (expressions within square brackets) must be preceded by a tag " +"name, an asterisk, or another predicate. ``position`` predicates must be " +"preceded by a tag name." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:461 +msgid "Reference" +msgstr "Référence" + +#: ../Doc/library/xml.etree.elementtree.rst:466 +msgid "Functions" +msgstr "Fonctions" + +#: ../Doc/library/xml.etree.elementtree.rst:471 +msgid "" +"Comment element factory. This factory function creates a special element " +"that will be serialized as an XML comment by the standard serializer. The " +"comment string can be either a bytestring or a Unicode string. *text* is a " +"string containing the comment string. Returns an element instance " +"representing a comment." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:477 +msgid "" +"Note that :class:`XMLParser` skips over comments in the input instead of " +"creating comment objects for them. An :class:`ElementTree` will only contain " +"comment nodes if they have been inserted into to the tree using one of the :" +"class:`Element` methods." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:484 +msgid "" +"Writes an element tree or element structure to sys.stdout. This function " +"should be used for debugging only." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:487 +msgid "" +"The exact output format is implementation dependent. In this version, it's " +"written as an ordinary XML file." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:490 +msgid "*elem* is an element tree or an individual element." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:495 +msgid "" +"Parses an XML section from a string constant. Same as :func:`XML`. *text* " +"is a string containing XML data. *parser* is an optional parser instance. " +"If not given, the standard :class:`XMLParser` parser is used. Returns an :" +"class:`Element` instance." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:503 +msgid "" +"Parses an XML document from a sequence of string fragments. *sequence* is a " +"list or other sequence containing XML data fragments. *parser* is an " +"optional parser instance. If not given, the standard :class:`XMLParser` " +"parser is used. Returns an :class:`Element` instance." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:513 +msgid "" +"Checks if an object appears to be a valid element object. *element* is an " +"element instance. Returns a true value if this is an element object." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:519 +msgid "" +"Parses an XML section into an element tree incrementally, and reports what's " +"going on to the user. *source* is a filename or :term:`file object` " +"containing XML data. *events* is a sequence of events to report back. The " +"supported events are the strings ``\"start\"``, ``\"end\"``, ``\"start-ns" +"\"`` and ``\"end-ns\"`` (the \"ns\" events are used to get detailed " +"namespace information). If *events* is omitted, only ``\"end\"`` events are " +"reported. *parser* is an optional parser instance. If not given, the " +"standard :class:`XMLParser` parser is used. *parser* must be a subclass of :" +"class:`XMLParser` and can only use the default :class:`TreeBuilder` as a " +"target. Returns an :term:`iterator` providing ``(event, elem)`` pairs." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:530 +msgid "" +"Note that while :func:`iterparse` builds the tree incrementally, it issues " +"blocking reads on *source* (or the file it names). As such, it's unsuitable " +"for applications where blocking reads can't be made. For fully non-blocking " +"parsing, see :class:`XMLPullParser`." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:537 +msgid "" +":func:`iterparse` only guarantees that it has seen the \">\" character of a " +"starting tag when it emits a \"start\" event, so the attributes are defined, " +"but the contents of the text and tail attributes are undefined at that " +"point. The same applies to the element children; they may or may not be " +"present." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:543 +#: ../Doc/library/xml.etree.elementtree.rst:1177 +msgid "If you need a fully populated element, look for \"end\" events instead." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:545 +msgid "The *parser* argument." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:550 +msgid "" +"Parses an XML section into an element tree. *source* is a filename or file " +"object containing XML data. *parser* is an optional parser instance. If " +"not given, the standard :class:`XMLParser` parser is used. Returns an :" +"class:`ElementTree` instance." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:558 +msgid "" +"PI element factory. This factory function creates a special element that " +"will be serialized as an XML processing instruction. *target* is a string " +"containing the PI target. *text* is a string containing the PI contents, if " +"given. Returns an element instance, representing a processing instruction." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:563 +msgid "" +"Note that :class:`XMLParser` skips over processing instructions in the input " +"instead of creating comment objects for them. An :class:`ElementTree` will " +"only contain processing instruction nodes if they have been inserted into to " +"the tree using one of the :class:`Element` methods." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:571 +msgid "" +"Registers a namespace prefix. The registry is global, and any existing " +"mapping for either the given prefix or the namespace URI will be removed. " +"*prefix* is a namespace prefix. *uri* is a namespace uri. Tags and " +"attributes in this namespace will be serialized with the given prefix, if at " +"all possible." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:582 +msgid "" +"Subelement factory. This function creates an element instance, and appends " +"it to an existing element." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:585 +msgid "" +"The element name, attribute names, and attribute values can be either " +"bytestrings or Unicode strings. *parent* is the parent element. *tag* is " +"the subelement name. *attrib* is an optional dictionary, containing element " +"attributes. *extra* contains additional attributes, given as keyword " +"arguments. Returns an element instance." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:595 +msgid "" +"Generates a string representation of an XML element, including all " +"subelements. *element* is an :class:`Element` instance. *encoding* [1]_ is " +"the output encoding (default is US-ASCII). Use ``encoding=\"unicode\"`` to " +"generate a Unicode string (otherwise, a bytestring is generated). *method* " +"is either ``\"xml\"``, ``\"html\"`` or ``\"text\"`` (default is ``\"xml" +"\"``). *short_empty_elements* has the same meaning as in :meth:`ElementTree." +"write`. Returns an (optionally) encoded string containing the XML data." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:603 +#: ../Doc/library/xml.etree.elementtree.rst:622 +#: ../Doc/library/xml.etree.elementtree.rst:949 +msgid "The *short_empty_elements* parameter." +msgstr "Le paramètre *short_empty_elements*." + +#: ../Doc/library/xml.etree.elementtree.rst:610 +msgid "" +"Generates a string representation of an XML element, including all " +"subelements. *element* is an :class:`Element` instance. *encoding* [1]_ is " +"the output encoding (default is US-ASCII). Use ``encoding=\"unicode\"`` to " +"generate a Unicode string (otherwise, a bytestring is generated). *method* " +"is either ``\"xml\"``, ``\"html\"`` or ``\"text\"`` (default is ``\"xml" +"\"``). *short_empty_elements* has the same meaning as in :meth:`ElementTree." +"write`. Returns a list of (optionally) encoded strings containing the XML " +"data. It does not guarantee any specific sequence, except that ``b\"\"." +"join(tostringlist(element)) == tostring(element)``." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:628 +msgid "" +"Parses an XML section from a string constant. This function can be used to " +"embed \"XML literals\" in Python code. *text* is a string containing XML " +"data. *parser* is an optional parser instance. If not given, the standard :" +"class:`XMLParser` parser is used. Returns an :class:`Element` instance." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:636 +msgid "" +"Parses an XML section from a string constant, and also returns a dictionary " +"which maps from element id:s to elements. *text* is a string containing XML " +"data. *parser* is an optional parser instance. If not given, the standard :" +"class:`XMLParser` parser is used. Returns a tuple containing an :class:" +"`Element` instance and a dictionary." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:646 +msgid "Element Objects" +msgstr "Objets Elements" + +#: ../Doc/library/xml.etree.elementtree.rst:650 +msgid "" +"Element class. This class defines the Element interface, and provides a " +"reference implementation of this interface." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:653 +msgid "" +"The element name, attribute names, and attribute values can be either " +"bytestrings or Unicode strings. *tag* is the element name. *attrib* is an " +"optional dictionary, containing element attributes. *extra* contains " +"additional attributes, given as keyword arguments." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:661 +msgid "" +"A string identifying what kind of data this element represents (the element " +"type, in other words)." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:668 +msgid "" +"These attributes can be used to hold additional data associated with the " +"element. Their values are usually strings but may be any application-" +"specific object. If the element is created from an XML file, the *text* " +"attribute holds either the text between the element's start tag and its " +"first child or end tag, or ``None``, and the *tail* attribute holds either " +"the text between the element's end tag and the next tag, or ``None``. For " +"the XML data" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:680 +msgid "" +"the *a* element has ``None`` for both *text* and *tail* attributes, the *b* " +"element has *text* ``\"1\"`` and *tail* ``\"4\"``, the *c* element has " +"*text* ``\"2\"`` and *tail* ``None``, and the *d* element has *text* " +"``None`` and *tail* ``\"3\"``." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:685 +msgid "" +"To collect the inner text of an element, see :meth:`itertext`, for example ``" +"\"\".join(element.itertext())``." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:688 +msgid "Applications may store arbitrary objects in these attributes." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:693 +msgid "" +"A dictionary containing the element's attributes. Note that while the " +"*attrib* value is always a real mutable Python dictionary, an ElementTree " +"implementation may choose to use another internal representation, and create " +"the dictionary only if someone asks for it. To take advantage of such " +"implementations, use the dictionary methods below whenever possible." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:699 +msgid "The following dictionary-like methods work on the element attributes." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:704 +msgid "" +"Resets an element. This function removes all subelements, clears all " +"attributes, and sets the text and tail attributes to ``None``." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:710 +msgid "Gets the element attribute named *key*." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:712 +msgid "" +"Returns the attribute value, or *default* if the attribute was not found." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:717 +msgid "" +"Returns the element attributes as a sequence of (name, value) pairs. The " +"attributes are returned in an arbitrary order." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:723 +msgid "" +"Returns the elements attribute names as a list. The names are returned in " +"an arbitrary order." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:729 +msgid "Set the attribute *key* on the element to *value*." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:731 +msgid "The following methods work on the element's children (subelements)." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:736 +msgid "" +"Adds the element *subelement* to the end of this element's internal list of " +"subelements. Raises :exc:`TypeError` if *subelement* is not an :class:" +"`Element`." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:743 +msgid "" +"Appends *subelements* from a sequence object with zero or more elements. " +"Raises :exc:`TypeError` if a subelement is not an :class:`Element`." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:751 +msgid "" +"Finds the first subelement matching *match*. *match* may be a tag name or " +"a :ref:`path `. Returns an element instance or " +"``None``. *namespaces* is an optional mapping from namespace prefix to full " +"name." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:759 +msgid "" +"Finds all matching subelements, by tag name or :ref:`path `. Returns a list containing all matching elements in document " +"order. *namespaces* is an optional mapping from namespace prefix to full " +"name." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:767 +msgid "" +"Finds text for the first subelement matching *match*. *match* may be a tag " +"name or a :ref:`path `. Returns the text content of the " +"first matching element, or *default* if no element was found. Note that if " +"the matching element has no text content an empty string is returned. " +"*namespaces* is an optional mapping from namespace prefix to full name." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:777 +msgid "Use ``list(elem)`` or iteration." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:783 +msgid "Use method :meth:`Element.iter` instead." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:789 +msgid "" +"Inserts *subelement* at the given position in this element. Raises :exc:" +"`TypeError` if *subelement* is not an :class:`Element`." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:795 +msgid "" +"Creates a tree :term:`iterator` with the current element as the root. The " +"iterator iterates over this element and all elements below it, in document " +"(depth first) order. If *tag* is not ``None`` or ``'*'``, only elements " +"whose tag equals *tag* are returned from the iterator. If the tree " +"structure is modified during iteration, the result is undefined." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:806 +msgid "" +"Finds all matching subelements, by tag name or :ref:`path `. Returns an iterable yielding all matching elements in document " +"order. *namespaces* is an optional mapping from namespace prefix to full " +"name." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:817 +msgid "" +"Creates a text iterator. The iterator loops over this element and all " +"subelements, in document order, and returns all inner text." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:825 +msgid "" +"Creates a new element object of the same type as this element. Do not call " +"this method, use the :func:`SubElement` factory function instead." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:831 +msgid "" +"Removes *subelement* from the element. Unlike the find\\* methods this " +"method compares elements based on the instance identity, not on tag value or " +"contents." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:835 +msgid "" +":class:`Element` objects also support the following sequence type methods " +"for working with subelements: :meth:`~object.__delitem__`, :meth:`~object." +"__getitem__`, :meth:`~object.__setitem__`, :meth:`~object.__len__`." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:840 +msgid "" +"Caution: Elements with no subelements will test as ``False``. This behavior " +"will change in future versions. Use specific ``len(elem)`` or ``elem is " +"None`` test instead. ::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:856 +msgid "ElementTree Objects" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:861 +msgid "" +"ElementTree wrapper class. This class represents an entire element " +"hierarchy, and adds some extra support for serialization to and from " +"standard XML." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:865 +msgid "" +"*element* is the root element. The tree is initialized with the contents of " +"the XML *file* if given." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:871 +msgid "" +"Replaces the root element for this tree. This discards the current contents " +"of the tree, and replaces it with the given element. Use with care. " +"*element* is an element instance." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:878 +msgid "Same as :meth:`Element.find`, starting at the root of the tree." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:883 +msgid "Same as :meth:`Element.findall`, starting at the root of the tree." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:888 +msgid "Same as :meth:`Element.findtext`, starting at the root of the tree." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:893 +msgid "Use method :meth:`ElementTree.iter` instead." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:899 +msgid "Returns the root element for this tree." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:904 +msgid "" +"Creates and returns a tree iterator for the root element. The iterator " +"loops over all elements in this tree, in section order. *tag* is the tag to " +"look for (default is to return all elements)." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:911 +msgid "Same as :meth:`Element.iterfind`, starting at the root of the tree." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:918 +msgid "" +"Loads an external XML section into this element tree. *source* is a file " +"name or :term:`file object`. *parser* is an optional parser instance. If " +"not given, the standard :class:`XMLParser` parser is used. Returns the " +"section root element." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:928 +msgid "" +"Writes the element tree to a file, as XML. *file* is a file name, or a :" +"term:`file object` opened for writing. *encoding* [1]_ is the output " +"encoding (default is US-ASCII). *xml_declaration* controls if an XML " +"declaration should be added to the file. Use ``False`` for never, ``True`` " +"for always, ``None`` for only if not US-ASCII or UTF-8 or Unicode (default " +"is ``None``). *default_namespace* sets the default XML namespace (for \"xmlns" +"\"). *method* is either ``\"xml\"``, ``\"html\"`` or ``\"text\"`` (default " +"is ``\"xml\"``). The keyword-only *short_empty_elements* parameter controls " +"the formatting of elements that contain no content. If ``True`` (the " +"default), they are emitted as a single self-closed tag, otherwise they are " +"emitted as a pair of start/end tags." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:942 +msgid "" +"The output is either a string (:class:`str`) or binary (:class:`bytes`). " +"This is controlled by the *encoding* argument. If *encoding* is ``\"unicode" +"\"``, the output is a string; otherwise, it's binary. Note that this may " +"conflict with the type of *file* if it's an open :term:`file object`; make " +"sure you do not try to write a string to a binary stream and vice versa." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:953 +msgid "This is the XML file that is going to be manipulated::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:965 +msgid "" +"Example of changing the attribute \"target\" of every link in first " +"paragraph::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:984 +msgid "QName Objects" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:989 +msgid "" +"QName wrapper. This can be used to wrap a QName attribute value, in order " +"to get proper namespace handling on output. *text_or_uri* is a string " +"containing the QName value, in the form {uri}local, or, if the tag argument " +"is given, the URI part of a QName. If *tag* is given, the first argument is " +"interpreted as a URI, and this argument is interpreted as a local name. :" +"class:`QName` instances are opaque." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1001 +msgid "TreeBuilder Objects" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1006 +msgid "" +"Generic element structure builder. This builder converts a sequence of " +"start, data, and end method calls to a well-formed element structure. You " +"can use this class to build an element structure using a custom XML parser, " +"or a parser for some other XML-like format. *element_factory*, when given, " +"must be a callable accepting two positional arguments: a tag and a dict of " +"attributes. It is expected to return a new element instance." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1015 +msgid "" +"Flushes the builder buffers, and returns the toplevel document element. " +"Returns an :class:`Element` instance." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1021 +msgid "" +"Adds text to the current element. *data* is a string. This should be " +"either a bytestring, or a Unicode string." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1027 +msgid "" +"Closes the current element. *tag* is the element name. Returns the closed " +"element." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1033 +msgid "" +"Opens a new element. *tag* is the element name. *attrs* is a dictionary " +"containing element attributes. Returns the opened element." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1037 +msgid "" +"In addition, a custom :class:`TreeBuilder` object can provide the following " +"method:" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1042 +msgid "" +"Handles a doctype declaration. *name* is the doctype name. *pubid* is the " +"public identifier. *system* is the system identifier. This method does not " +"exist on the default :class:`TreeBuilder` class." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1052 +msgid "XMLParser Objects" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1057 +msgid "" +"This class is the low-level building block of the module. It uses :mod:`xml." +"parsers.expat` for efficient, event-based parsing of XML. It can be fed XML " +"data incrementally with the :meth:`feed` method, and parsing events are " +"translated to a push API - by invoking callbacks on the *target* object. If " +"*target* is omitted, the standard :class:`TreeBuilder` is used. The *html* " +"argument was historically used for backwards compatibility and is now " +"deprecated. If *encoding* [1]_ is given, the value overrides the encoding " +"specified in the XML file." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1066 +msgid "" +"The *html* argument. The remaining arguments should be passed via keyword " +"to prepare for the removal of the *html* argument." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1072 +msgid "" +"Finishes feeding data to the parser. Returns the result of calling the " +"``close()`` method of the *target* passed during construction; by default, " +"this is the toplevel document element." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1079 +msgid "" +"Define the :meth:`TreeBuilder.doctype` method on a custom TreeBuilder target." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1086 +msgid "Feeds data to the parser. *data* is encoded data." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1088 +msgid "" +":meth:`XMLParser.feed` calls *target*\\'s ``start(tag, attrs_dict)`` method " +"for each opening tag, its ``end(tag)`` method for each closing tag, and data " +"is processed by method ``data(data)``. :meth:`XMLParser.close` calls " +"*target*\\'s method ``close()``. :class:`XMLParser` can be used not only for " +"building a tree structure. This is an example of counting the maximum depth " +"of an XML file::" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1131 +msgid "XMLPullParser Objects" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1135 +msgid "" +"A pull parser suitable for non-blocking applications. Its input-side API is " +"similar to that of :class:`XMLParser`, but instead of pushing calls to a " +"callback target, :class:`XMLPullParser` collects an internal list of parsing " +"events and lets the user read from it. *events* is a sequence of events to " +"report back. The supported events are the strings ``\"start\"``, ``\"end" +"\"``, ``\"start-ns\"`` and ``\"end-ns\"`` (the \"ns\" events are used to get " +"detailed namespace information). If *events* is omitted, only ``\"end\"`` " +"events are reported." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1146 +msgid "Feed the given bytes data to the parser." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1150 +msgid "" +"Signal the parser that the data stream is terminated. Unlike :meth:" +"`XMLParser.close`, this method always returns :const:`None`. Any events not " +"yet retrieved when the parser is closed can still be read with :meth:" +"`read_events`." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1157 +msgid "" +"Return an iterator over the events which have been encountered in the data " +"fed to the parser. The iterator yields ``(event, elem)`` pairs, where " +"*event* is a string representing the type of event (e.g. ``\"end\"``) and " +"*elem* is the encountered :class:`Element` object." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1163 +msgid "" +"Events provided in a previous call to :meth:`read_events` will not be " +"yielded again. Events are consumed from the internal queue only when they " +"are retrieved from the iterator, so multiple readers iterating in parallel " +"over iterators obtained from :meth:`read_events` will have unpredictable " +"results." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1171 +msgid "" +":class:`XMLPullParser` only guarantees that it has seen the \">\" character " +"of a starting tag when it emits a \"start\" event, so the attributes are " +"defined, but the contents of the text and tail attributes are undefined at " +"that point. The same applies to the element children; they may or may not " +"be present." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1182 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/library/xml.etree.elementtree.rst:1186 +msgid "" +"XML parse error, raised by the various parsing methods in this module when " +"parsing fails. The string representation of an instance of this exception " +"will contain a user-friendly error message. In addition, it will have the " +"following attributes available:" +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1193 +msgid "" +"A numeric error code from the expat parser. See the documentation of :mod:" +"`xml.parsers.expat` for the list of error codes and their meanings." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1198 +msgid "" +"A tuple of *line*, *column* numbers, specifying where the error occurred." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1201 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/xml.etree.elementtree.rst:1202 +msgid "" +"The encoding string included in XML output should conform to the appropriate " +"standards. For example, \"UTF-8\" is valid, but \"UTF8\" is not. See " +"https://www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl and https://" +"www.iana.org/assignments/character-sets/character-sets.xhtml." +msgstr "" diff --git a/library/xml.po b/library/xml.po new file mode 100644 index 000000000..72ef2eb3a --- /dev/null +++ b/library/xml.po @@ -0,0 +1,333 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-24 14:22+0100\n" +"PO-Revision-Date: 2018-12-24 14:55+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/library/xml.rst:4 +msgid "XML Processing Modules" +msgstr "Modules de traitement XML" + +#: ../Doc/library/xml.rst:12 +msgid "**Source code:** :source:`Lib/xml/`" +msgstr "**Code source:** :source:`Lib/xml/`" + +#: ../Doc/library/xml.rst:16 +msgid "" +"Python's interfaces for processing XML are grouped in the ``xml`` package." +msgstr "" +"Les interfaces de Python de traitement de XML sont regroupées dans le paquet " +"``xml``." + +#: ../Doc/library/xml.rst:20 +msgid "" +"The XML modules are not secure against erroneous or maliciously constructed " +"data. If you need to parse untrusted or unauthenticated data see the :ref:" +"`xml-vulnerabilities` and :ref:`defused-packages` sections." +msgstr "" +"Les modules XML ne sont pas protégés contre les données mal construites ou " +"malicieuses. Si vous devez parcourir des données douteuses non authentifiées " +"voir les sections :ref:`xml-vulnerabilities` et :ref:`defused-packages`." + +#: ../Doc/library/xml.rst:25 +msgid "" +"It is important to note that modules in the :mod:`xml` package require that " +"there be at least one SAX-compliant XML parser available. The Expat parser " +"is included with Python, so the :mod:`xml.parsers.expat` module will always " +"be available." +msgstr "" +"Il est important de noter que les modules dans le paquet :mod:`xml` " +"nécessitent qu'au moins un analyseur compatible SAX soit disponible. " +"L'analyseur Expat est inclus dans Python, ainsi le module :mod:`xml.parsers." +"expat` est toujours disponible." + +#: ../Doc/library/xml.rst:30 +msgid "" +"The documentation for the :mod:`xml.dom` and :mod:`xml.sax` packages are the " +"definition of the Python bindings for the DOM and SAX interfaces." +msgstr "" +"La documentation des *bindings* des interfaces DOM et SAX se trouve dans :" +"mod:`xml.dom` et :mod:`xml.sax`." + +#: ../Doc/library/xml.rst:33 +msgid "The XML handling submodules are:" +msgstr "Les sous-modules de traitement XML sont :" + +#: ../Doc/library/xml.rst:35 +msgid "" +":mod:`xml.etree.ElementTree`: the ElementTree API, a simple and lightweight " +"XML processor" +msgstr "" +":mod:`xml.etree.ElementTree`: l'API ElementTree, un processeur simple et " +"léger" + +#: ../Doc/library/xml.rst:40 +msgid ":mod:`xml.dom`: the DOM API definition" +msgstr ":mod:`xml.dom`: la définition de l'API DOM" + +#: ../Doc/library/xml.rst:41 +msgid ":mod:`xml.dom.minidom`: a minimal DOM implementation" +msgstr ":mod:`xml.dom.minidom`: une implémentation minimale de DOM" + +#: ../Doc/library/xml.rst:42 +msgid ":mod:`xml.dom.pulldom`: support for building partial DOM trees" +msgstr "" +":mod:`xml.dom.pulldom`: gestion de la construction partiel des arbres DOM" + +#: ../Doc/library/xml.rst:46 +msgid ":mod:`xml.sax`: SAX2 base classes and convenience functions" +msgstr ":mod:`xml.sax`: classes de bases SAX2 base et fonctions utilitaires" + +#: ../Doc/library/xml.rst:47 +msgid ":mod:`xml.parsers.expat`: the Expat parser binding" +msgstr ":mod:`xml.parsers.expat`: le *binding* de l'analyseur Expat" + +#: ../Doc/library/xml.rst:53 +msgid "XML vulnerabilities" +msgstr "Vulnérabilités XML" + +#: ../Doc/library/xml.rst:55 +msgid "" +"The XML processing modules are not secure against maliciously constructed " +"data. An attacker can abuse XML features to carry out denial of service " +"attacks, access local files, generate network connections to other machines, " +"or circumvent firewalls." +msgstr "" +"Les modules de traitement XML ne sont pas sécurisés contre les données " +"construite malicieusement. Un attaquant peut abuser des fonctionnalités XML " +"pour exécuter des attaques par déni de service, accéder des fichiers locaux, " +"générer des connexions réseaux à d'autres machines ou contourner des pare-" +"feux." + +#: ../Doc/library/xml.rst:60 +msgid "" +"The following table gives an overview of the known attacks and whether the " +"various modules are vulnerable to them." +msgstr "" +"Le tableau suivant donne une vue d'ensemble des attaques connues et indique " +"si les différents modules y sont vulnérables." + +#: ../Doc/library/xml.rst:64 +msgid "kind" +msgstr "type" + +#: ../Doc/library/xml.rst:64 +msgid "sax" +msgstr "sax" + +#: ../Doc/library/xml.rst:64 +msgid "etree" +msgstr "etree" + +#: ../Doc/library/xml.rst:64 +msgid "minidom" +msgstr "minidom" + +#: ../Doc/library/xml.rst:64 +msgid "pulldom" +msgstr "pulldom" + +#: ../Doc/library/xml.rst:64 +msgid "xmlrpc" +msgstr "xmlrpc" + +#: ../Doc/library/xml.rst:66 +msgid "billion laughs" +msgstr "*billion laughs*" + +#: ../Doc/library/xml.rst:66 ../Doc/library/xml.rst:67 +#: ../Doc/library/xml.rst:70 +msgid "**Vulnerable**" +msgstr "**Vulnérable**" + +#: ../Doc/library/xml.rst:67 +msgid "quadratic blowup" +msgstr "*quadratic blowup*" + +#: ../Doc/library/xml.rst:68 ../Doc/library/xml.rst:99 +msgid "external entity expansion" +msgstr "*external entity expansion*" + +#: ../Doc/library/xml.rst:68 ../Doc/library/xml.rst:69 +msgid "Safe (4)" +msgstr "Sûr (4)" + +#: ../Doc/library/xml.rst:68 +msgid "Safe (1)" +msgstr "Sûr (1)" + +#: ../Doc/library/xml.rst:68 +msgid "Safe (2)" +msgstr "Sûr (2)" + +#: ../Doc/library/xml.rst:68 +msgid "Safe (3)" +msgstr "Sûr (3)" + +#: ../Doc/library/xml.rst:69 ../Doc/library/xml.rst:104 +msgid "`DTD`_ retrieval" +msgstr "Récupération de `DTD`_" + +#: ../Doc/library/xml.rst:69 ../Doc/library/xml.rst:70 +msgid "Safe" +msgstr "Sûr" + +#: ../Doc/library/xml.rst:70 ../Doc/library/xml.rst:111 +msgid "decompression bomb" +msgstr "*decompression bomb*" + +#: ../Doc/library/xml.rst:73 +msgid "" +":mod:`xml.etree.ElementTree` doesn't expand external entities and raises a :" +"exc:`ParserError` when an entity occurs." +msgstr "" +":mod:`xml.etree.ElementTree` n'étend pas les entités externes et lève une " +"exception :exc:`ParserError` quand une telle entité est rencontrée." + +#: ../Doc/library/xml.rst:75 +msgid "" +":mod:`xml.dom.minidom` doesn't expand external entities and simply returns " +"the unexpanded entity verbatim." +msgstr "" +":mod:`xml.dom.minidom` n'étend pas les entités externe et renvoie simplement " +"le verbatim de l'entité non étendu." + +#: ../Doc/library/xml.rst:77 +msgid ":mod:`xmlrpclib` doesn't expand external entities and omits them." +msgstr ":mod:`xmlrpclib` n'étend pas les entités externes et les omet." + +#: ../Doc/library/xml.rst:78 +msgid "" +"Since Python 3.7.1, external general entities are no longer processed by " +"default." +msgstr "" +"Depuis Python 3.7.1, les entités générales externes ne sont plus traitées " +"par défaut depuis Python." + +#: ../Doc/library/xml.rst:87 +msgid "billion laughs / exponential entity expansion" +msgstr "*billion laughs* / *exponential entity expansion*" + +#: ../Doc/library/xml.rst:83 +msgid "" +"The `Billion Laughs`_ attack -- also known as exponential entity expansion " +"-- uses multiple levels of nested entities. Each entity refers to another " +"entity several times, and the final entity definition contains a small " +"string. The exponential expansion results in several gigabytes of text and " +"consumes lots of memory and CPU time." +msgstr "" +"L'attaque `Billion Laughs`_ -- aussi connue comme *exponential entity " +"expansion* -- utilise de multiples niveaux d'entités imbriquées. Chaque " +"entité se réfère à une autre entité de multiple fois. L'entité finale " +"contiens une chaîne courte. Le résultat de l'expansion exponentielle génère " +"plusieurs gigaoctet de texte et consomme beaucoup de mémoire et de temps " +"processeur." + +#: ../Doc/library/xml.rst:94 +msgid "quadratic blowup entity expansion" +msgstr "*quadratic blowup entity expansion*" + +#: ../Doc/library/xml.rst:90 +msgid "" +"A quadratic blowup attack is similar to a `Billion Laughs`_ attack; it " +"abuses entity expansion, too. Instead of nested entities it repeats one " +"large entity with a couple of thousand chars over and over again. The attack " +"isn't as efficient as the exponential case but it avoids triggering parser " +"countermeasures that forbid deeply-nested entities." +msgstr "" +"Une attaque *quadratic blowup* est similaire à l'attaque `Billion Laughs`_ ; " +"il s'agit également d'un abus d'extension d'entités. Au lieu d'utiliser des " +"entités imbriquées, cette attaque répète encore et encore une seule entité " +"de plusieurs milliers de caractères. Cette attaque n'est pas aussi efficace " +"que la version exponentielle mais contourne les contre-mesures de " +"l'analyseur qui interdit les entités imbriquées de multiples fois." + +#: ../Doc/library/xml.rst:97 +msgid "" +"Entity declarations can contain more than just text for replacement. They " +"can also point to external resources or local files. The XML parser accesses " +"the resource and embeds the content into the XML document." +msgstr "" +"Les déclarations d'entités peuvent contenir plus que du texte de " +"substitution. Elles peuvent également référencer des ressources externes ou " +"des fichiers locaux. L'analyseur XML accède à ces fichiers et inclut les " +"contenus dans le document XML." + +#: ../Doc/library/xml.rst:102 +msgid "" +"Some XML libraries like Python's :mod:`xml.dom.pulldom` retrieve document " +"type definitions from remote or local locations. The feature has similar " +"implications as the external entity expansion issue." +msgstr "" +"Certaines bibliothèques XML comme :mod:`xml.dom.pulldom` de Python récupère " +"les documents de définitions de types (DTD) depuis des emplacements distants " +"ou locaux. La fonctionnalité a des implications similaires que le problème " +"d'extension d'entités externes." + +#: ../Doc/library/xml.rst:107 +msgid "" +"Decompression bombs (aka `ZIP bomb`_) apply to all XML libraries that can " +"parse compressed XML streams such as gzipped HTTP streams or LZMA-compressed " +"files. For an attacker it can reduce the amount of transmitted data by three " +"magnitudes or more." +msgstr "" +"Des bombes de décompression (ou `ZIP bomb`_) sont valables pour toutes les " +"bibliothèques XML qui peuvent analyser des flux XML compressés comme des " +"flux HTTP *gzip* ou des fichiers compressés *LZMA*. Pour L'attaquant, cela " +"permet de réduire d'une magnitude d'ordre 3 ou plus la quantité de données " +"transmises." + +#: ../Doc/library/xml.rst:113 +msgid "" +"The documentation for `defusedxml`_ on PyPI has further information about " +"all known attack vectors with examples and references." +msgstr "" +"La documentation de `defusedxml`_ sur PyPI contient plus d'informations sur " +"tous les vecteurs d'attaques connus ainsi que des exemples et des références." + +#: ../Doc/library/xml.rst:119 +msgid "The :mod:`defusedxml` and :mod:`defusedexpat` Packages" +msgstr "Les paquets :mod:`defusedxml` et :mod:`defusedexpat`" + +#: ../Doc/library/xml.rst:121 +msgid "" +"`defusedxml`_ is a pure Python package with modified subclasses of all " +"stdlib XML parsers that prevent any potentially malicious operation. Use of " +"this package is recommended for any server code that parses untrusted XML " +"data. The package also ships with example exploits and extended " +"documentation on more XML exploits such as XPath injection." +msgstr "" +"`defusedxml`_ est un paquet écrit exclusivement en Python avec des sous-" +"classe modifiées de tous les analyseurs de la *stdlib* XML qui empêche " +"toutes opérations potentiellement malicieuses. L'utilisation de ce paquet " +"est recommandé pour tous serveurs qui analyseraient des donnés XML non " +"fiables. Le paquet inclut également des exemples d'attaques et une " +"documentation plus fournie sur plus d'attaques XML comme *XPath injection*." + +#: ../Doc/library/xml.rst:127 +msgid "" +"`defusedexpat`_ provides a modified libexpat and a patched :mod:`pyexpat` " +"module that have countermeasures against entity expansion DoS attacks. The :" +"mod:`defusedexpat` module still allows a sane and configurable amount of " +"entity expansions. The modifications may be included in some future release " +"of Python, but will not be included in any bugfix releases of Python because " +"they break backward compatibility." +msgstr "" +"`defusedexpat`_ fournit une version modifiée de *libexpat* et le module :mod:" +"`pyexpat` modifiée embarquant des contre-mesures contre les attaques *DoS* " +"par *entity expansion*. Le module :mod:`defusedexpat` autorise un nombre " +"configurable et raisonnable d'extension d'entités. Ces modifications " +"pourraient être incluses dans des futures version de Python mais ne seront " +"incluses dans aucune version corrective de Python pour éviter de casser la " +"compatibilité rétrograde." diff --git a/library/xml.sax.handler.po b/library/xml.sax.handler.po new file mode 100644 index 000000000..880b9e415 --- /dev/null +++ b/library/xml.sax.handler.po @@ -0,0 +1,548 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/xml.sax.handler.rst:2 +msgid ":mod:`xml.sax.handler` --- Base classes for SAX handlers" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:10 +msgid "**Source code:** :source:`Lib/xml/sax/handler.py`" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:14 +msgid "" +"The SAX API defines four kinds of handlers: content handlers, DTD handlers, " +"error handlers, and entity resolvers. Applications normally only need to " +"implement those interfaces whose events they are interested in; they can " +"implement the interfaces in a single object or in multiple objects. Handler " +"implementations should inherit from the base classes provided in the module :" +"mod:`xml.sax.handler`, so that all methods get default implementations." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:24 +msgid "" +"This is the main callback interface in SAX, and the one most important to " +"applications. The order of events in this interface mirrors the order of the " +"information in the document." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:31 +msgid "Handle DTD events." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:33 +msgid "" +"This interface specifies only those DTD events required for basic parsing " +"(unparsed entities and attributes)." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:39 +msgid "" +"Basic interface for resolving entities. If you create an object implementing " +"this interface, then register the object with your Parser, the parser will " +"call the method in your object to resolve all external entities." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:46 +msgid "" +"Interface used by the parser to present error and warning messages to the " +"application. The methods of this object control whether errors are " +"immediately converted to exceptions or are handled in some other way." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:50 +msgid "" +"In addition to these classes, :mod:`xml.sax.handler` provides symbolic " +"constants for the feature and property names." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:56 +msgid "value: ``\"http://xml.org/sax/features/namespaces\"``" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:57 +msgid "true: Perform Namespace processing." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:59 +msgid "" +"false: Optionally do not perform Namespace processing (implies namespace-" +"prefixes; default)." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:60 ../Doc/library/xml.sax.handler.rst:70 +#: ../Doc/library/xml.sax.handler.rst:79 ../Doc/library/xml.sax.handler.rst:88 +#: ../Doc/library/xml.sax.handler.rst:96 ../Doc/library/xml.sax.handler.rst:106 +#: ../Doc/library/xml.sax.handler.rst:138 +msgid "access: (parsing) read-only; (not parsing) read/write" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:65 +msgid "value: ``\"http://xml.org/sax/features/namespace-prefixes\"``" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:67 +msgid "" +"true: Report the original prefixed names and attributes used for Namespace " +"declarations." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:69 +msgid "" +"false: Do not report attributes used for Namespace declarations, and " +"optionally do not report original prefixed names (default)." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:75 +msgid "value: ``\"http://xml.org/sax/features/string-interning\"``" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:77 +msgid "" +"true: All element names, prefixes, attribute names, Namespace URIs, and " +"local names are interned using the built-in intern function." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:78 +msgid "" +"false: Names are not necessarily interned, although they may be (default)." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:84 +msgid "value: ``\"http://xml.org/sax/features/validation\"``" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:86 +msgid "" +"true: Report all validation errors (implies external-general-entities and " +"external-parameter-entities)." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:87 +msgid "false: Do not report validation errors." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:93 +msgid "value: ``\"http://xml.org/sax/features/external-general-entities\"``" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:94 +msgid "true: Include all external general (text) entities." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:95 +msgid "false: Do not include external general entities." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:101 +msgid "value: ``\"http://xml.org/sax/features/external-parameter-entities\"``" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:103 +msgid "" +"true: Include all external parameter entities, including the external DTD " +"subset." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:105 +msgid "" +"false: Do not include any external parameter entities, even the external DTD " +"subset." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:111 +msgid "List of all features." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:116 +msgid "value: ``\"http://xml.org/sax/properties/lexical-handler\"``" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:117 +msgid "data type: xml.sax.sax2lib.LexicalHandler (not supported in Python 2)" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:119 +msgid "" +"description: An optional extension handler for lexical events like comments." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:120 +#: ../Doc/library/xml.sax.handler.rst:129 +msgid "access: read/write" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:125 +msgid "value: ``\"http://xml.org/sax/properties/declaration-handler\"``" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:126 +msgid "data type: xml.sax.sax2lib.DeclHandler (not supported in Python 2)" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:128 +msgid "" +"description: An optional extension handler for DTD-related events other than " +"notations and unparsed entities." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:134 +msgid "value: ``\"http://xml.org/sax/properties/dom-node\"``" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:135 +msgid "data type: org.w3c.dom.Node (not supported in Python 2)" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:137 +msgid "" +"description: When parsing, the current DOM node being visited if this is a " +"DOM iterator; when not parsing, the root DOM node for iteration." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:143 +msgid "value: ``\"http://xml.org/sax/properties/xml-string\"``" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:144 +msgid "data type: String" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:146 +msgid "" +"description: The literal string of characters that was the source for the " +"current event." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:147 +msgid "access: read-only" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:152 +msgid "List of all known property names." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:158 +msgid "ContentHandler Objects" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:160 +msgid "" +"Users are expected to subclass :class:`ContentHandler` to support their " +"application. The following methods are called by the parser on the " +"appropriate events in the input document:" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:167 +msgid "" +"Called by the parser to give the application a locator for locating the " +"origin of document events." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:170 +msgid "" +"SAX parsers are strongly encouraged (though not absolutely required) to " +"supply a locator: if it does so, it must supply the locator to the " +"application by invoking this method before invoking any of the other methods " +"in the DocumentHandler interface." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:175 +msgid "" +"The locator allows the application to determine the end position of any " +"document-related event, even if the parser is not reporting an error. " +"Typically, the application will use this information for reporting its own " +"errors (such as character content that does not match an application's " +"business rules). The information returned by the locator is probably not " +"sufficient for use with a search engine." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:182 +msgid "" +"Note that the locator will return correct information only during the " +"invocation of the events in this interface. The application should not " +"attempt to use it at any other time." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:189 +msgid "Receive notification of the beginning of a document." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:191 +msgid "" +"The SAX parser will invoke this method only once, before any other methods " +"in this interface or in DTDHandler (except for :meth:`setDocumentLocator`)." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:197 +msgid "Receive notification of the end of a document." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:199 +msgid "" +"The SAX parser will invoke this method only once, and it will be the last " +"method invoked during the parse. The parser shall not invoke this method " +"until it has either abandoned parsing (because of an unrecoverable error) or " +"reached the end of input." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:207 +msgid "Begin the scope of a prefix-URI Namespace mapping." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:209 +msgid "" +"The information from this event is not necessary for normal Namespace " +"processing: the SAX XML reader will automatically replace prefixes for " +"element and attribute names when the ``feature_namespaces`` feature is " +"enabled (the default)." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:214 +msgid "" +"There are cases, however, when applications need to use prefixes in " +"character data or in attribute values, where they cannot safely be expanded " +"automatically; the :meth:`startPrefixMapping` and :meth:`endPrefixMapping` " +"events supply the information to the application to expand prefixes in those " +"contexts itself, if necessary." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:222 +msgid "" +"Note that :meth:`startPrefixMapping` and :meth:`endPrefixMapping` events are " +"not guaranteed to be properly nested relative to each-other: all :meth:" +"`startPrefixMapping` events will occur before the corresponding :meth:" +"`startElement` event, and all :meth:`endPrefixMapping` events will occur " +"after the corresponding :meth:`endElement` event, but their order is not " +"guaranteed." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:232 +msgid "End the scope of a prefix-URI mapping." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:234 +msgid "" +"See :meth:`startPrefixMapping` for details. This event will always occur " +"after the corresponding :meth:`endElement` event, but the order of :meth:" +"`endPrefixMapping` events is not otherwise guaranteed." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:241 +msgid "Signals the start of an element in non-namespace mode." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:243 +msgid "" +"The *name* parameter contains the raw XML 1.0 name of the element type as a " +"string and the *attrs* parameter holds an object of the :class:`~xml.sax." +"xmlreader.Attributes` interface (see :ref:`attributes-objects`) containing " +"the attributes of the element. The object passed as *attrs* may be re-used " +"by the parser; holding on to a reference to it is not a reliable way to keep " +"a copy of the attributes. To keep a copy of the attributes, use the :meth:" +"`copy` method of the *attrs* object." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:255 +msgid "Signals the end of an element in non-namespace mode." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:257 +msgid "" +"The *name* parameter contains the name of the element type, just as with " +"the :meth:`startElement` event." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:263 +msgid "Signals the start of an element in namespace mode." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:265 +msgid "" +"The *name* parameter contains the name of the element type as a ``(uri, " +"localname)`` tuple, the *qname* parameter contains the raw XML 1.0 name used " +"in the source document, and the *attrs* parameter holds an instance of the :" +"class:`~xml.sax.xmlreader.AttributesNS` interface (see :ref:`attributes-ns-" +"objects`) containing the attributes of the element. If no namespace is " +"associated with the element, the *uri* component of *name* will be " +"``None``. The object passed as *attrs* may be re-used by the parser; " +"holding on to a reference to it is not a reliable way to keep a copy of the " +"attributes. To keep a copy of the attributes, use the :meth:`copy` method " +"of the *attrs* object." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:276 +msgid "" +"Parsers may set the *qname* parameter to ``None``, unless the " +"``feature_namespace_prefixes`` feature is activated." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:282 +msgid "Signals the end of an element in namespace mode." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:284 +msgid "" +"The *name* parameter contains the name of the element type, just as with " +"the :meth:`startElementNS` method, likewise the *qname* parameter." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:290 +msgid "Receive notification of character data." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:292 +msgid "" +"The Parser will call this method to report each chunk of character data. SAX " +"parsers may return all contiguous character data in a single chunk, or they " +"may split it into several chunks; however, all of the characters in any " +"single event must come from the same external entity so that the Locator " +"provides useful information." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:298 +msgid "" +"*content* may be a string or bytes instance; the ``expat`` reader module " +"always produces strings." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:303 +msgid "" +"The earlier SAX 1 interface provided by the Python XML Special Interest " +"Group used a more Java-like interface for this method. Since most parsers " +"used from Python did not take advantage of the older interface, the simpler " +"signature was chosen to replace it. To convert old code to the new " +"interface, use *content* instead of slicing content with the old *offset* " +"and *length* parameters." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:312 +msgid "Receive notification of ignorable whitespace in element content." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:314 +msgid "" +"Validating Parsers must use this method to report each chunk of ignorable " +"whitespace (see the W3C XML 1.0 recommendation, section 2.10): non-" +"validating parsers may also use this method if they are capable of parsing " +"and using content models." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:319 +msgid "" +"SAX parsers may return all contiguous whitespace in a single chunk, or they " +"may split it into several chunks; however, all of the characters in any " +"single event must come from the same external entity, so that the Locator " +"provides useful information." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:327 +msgid "Receive notification of a processing instruction." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:329 +msgid "" +"The Parser will invoke this method once for each processing instruction " +"found: note that processing instructions may occur before or after the main " +"document element." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:333 +msgid "" +"A SAX parser should never report an XML declaration (XML 1.0, section 2.8) " +"or a text declaration (XML 1.0, section 4.3.1) using this method." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:339 +msgid "Receive notification of a skipped entity." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:341 +msgid "" +"The Parser will invoke this method once for each entity skipped. Non-" +"validating processors may skip entities if they have not seen the " +"declarations (because, for example, the entity was declared in an external " +"DTD subset). All processors may skip external entities, depending on the " +"values of the ``feature_external_ges`` and the ``feature_external_pes`` " +"properties." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:351 +msgid "DTDHandler Objects" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:353 +msgid ":class:`DTDHandler` instances provide the following methods:" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:358 +msgid "Handle a notation declaration event." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:363 +msgid "Handle an unparsed entity declaration event." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:369 +msgid "EntityResolver Objects" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:374 +msgid "" +"Resolve the system identifier of an entity and return either the system " +"identifier to read from as a string, or an InputSource to read from. The " +"default implementation returns *systemId*." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:382 +msgid "ErrorHandler Objects" +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:384 +msgid "" +"Objects with this interface are used to receive error and warning " +"information from the :class:`~xml.sax.xmlreader.XMLReader`. If you create " +"an object that implements this interface, then register the object with " +"your :class:`~xml.sax.xmlreader.XMLReader`, the parser will call the methods " +"in your object to report all warnings and errors. There are three levels of " +"errors available: warnings, (possibly) recoverable errors, and unrecoverable " +"errors. All methods take a :exc:`SAXParseException` as the only parameter. " +"Errors and warnings may be converted to an exception by raising the passed-" +"in exception object." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:397 +msgid "" +"Called when the parser encounters a recoverable error. If this method does " +"not raise an exception, parsing may continue, but further document " +"information should not be expected by the application. Allowing the parser " +"to continue may allow additional errors to be discovered in the input " +"document." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:405 +msgid "" +"Called when the parser encounters an error it cannot recover from; parsing " +"is expected to terminate when this method returns." +msgstr "" + +#: ../Doc/library/xml.sax.handler.rst:411 +msgid "" +"Called when the parser presents minor warning information to the " +"application. Parsing is expected to continue when this method returns, and " +"document information will continue to be passed to the application. Raising " +"an exception in this method will cause parsing to end." +msgstr "" diff --git a/library/xml.sax.po b/library/xml.sax.po new file mode 100644 index 000000000..8f60a8962 --- /dev/null +++ b/library/xml.sax.po @@ -0,0 +1,306 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2018-12-14 10:23+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/library/xml.sax.rst:2 +msgid ":mod:`xml.sax` --- Support for SAX2 parsers" +msgstr ":mod:`xml.sax` — Prise en charge des analyseurs SAX2" + +#: ../Doc/library/xml.sax.rst:11 +msgid "**Source code:** :source:`Lib/xml/sax/__init__.py`" +msgstr "**Code source :** :source:`Lib/xml/sax/__init__.py`" + +#: ../Doc/library/xml.sax.rst:15 +msgid "" +"The :mod:`xml.sax` package provides a number of modules which implement the " +"Simple API for XML (SAX) interface for Python. The package itself provides " +"the SAX exceptions and the convenience functions which will be most used by " +"users of the SAX API." +msgstr "" +"Le paquet :mod:`xml.sax` fournit des modules qui implémentent l'interface " +"*Simple API for XML (SAX)* pour Python. Le paquet en lui même fournit les " +"exceptions SAX et les fonctions les plus utiles qui seront le plus utilisées " +"par les utilisateurs de SAX API." + +#: ../Doc/library/xml.sax.rst:23 +msgid "" +"The :mod:`xml.sax` module is not secure against maliciously constructed " +"data. If you need to parse untrusted or unauthenticated data see :ref:`xml-" +"vulnerabilities`." +msgstr "" +"Le module :mod:`xml.sax` n'est pas sécurisé contre les données construites " +"de façon malveillante. Si vous avez besoin d'analyser des données non " +"sécurisées ou non authentifiées, voir :ref:`xml-vulnerabilities`." + +#: ../Doc/library/xml.sax.rst:29 +msgid "" +"The SAX parser no longer processes general external entities by default to " +"increase security. Before, the parser created network connections to fetch " +"remote files or loaded local files from the file system for DTD and " +"entities. The feature can be enabled again with method :meth:`~xml.sax." +"xmlreader.XMLReader.setFeature` on the parser object and argument :data:" +"`~xml.sax.handler.feature_external_ges`." +msgstr "" +"L'analyseur SAX ne traite plus les entités externes générales par défaut " +"pour augmenter la sécurité. Auparavant, l'analyseur créait des connexions " +"réseau pour extraire des fichiers distants ou des fichiers locaux chargés à " +"partir du système de fichiers pour les DTD et les entités. La fonctionnalité " +"peut être activée à nouveau avec la méthode :meth:`~xml.sax.xmlreader." +"XMLReader.setFeature` sur l'objet analyseur et l'argument :data:`~xml.sax." +"handler.feature_external_ges`." + +#: ../Doc/library/xml.sax.rst:36 +msgid "The convenience functions are:" +msgstr "Les fonctions les plus utiles sont:" + +#: ../Doc/library/xml.sax.rst:41 +msgid "" +"Create and return a SAX :class:`~xml.sax.xmlreader.XMLReader` object. The " +"first parser found will be used. If *parser_list* is provided, it must be a " +"list of strings which name modules that have a function named :func:" +"`create_parser`. Modules listed in *parser_list* will be used before " +"modules in the default list of parsers." +msgstr "" +"Crée et renvoie un objet SAX :class:`~xml.sax.xmlreader.XMLReader`. Le " +"premier analyseur trouvé sera utilisé. Si *parser_list* est fourni, il doit " +"être une liste de chaînes de caractères qui nomme des modules qui ont une " +"fonction nommée :func:`create_parser`. Les modules listés dans *parser_list* " +"seront utilisés avant les modules dans la liste par défaut des analyseurs." + +#: ../Doc/library/xml.sax.rst:50 +msgid "" +"Create a SAX parser and use it to parse a document. The document, passed in " +"as *filename_or_stream*, can be a filename or a file object. The *handler* " +"parameter needs to be a SAX :class:`~handler.ContentHandler` instance. If " +"*error_handler* is given, it must be a SAX :class:`~handler.ErrorHandler` " +"instance; if omitted, :exc:`SAXParseException` will be raised on all " +"errors. There is no return value; all work must be done by the *handler* " +"passed in." +msgstr "" +"Crée un analyseur SAX et l'utilise pour analyser un document. Le document " +"transmis comme *filename_or_stream*, peut être un nom de fichier ou un objet " +"fichier. Le paramètre *handler* doit être une instance SAX :class:`~handler." +"ContentHandler`. Si un *error_handler* est donné, il doit être un SAX :class:" +"`~handler.ErrorHandler` ; si omis, :exc:`SAXParseException` sera levé sur " +"toutes les erreurs. Il n'y a pas de valeur de retour, tout le travail doit " +"être fait par le *handler* transmis." + +#: ../Doc/library/xml.sax.rst:61 +msgid "" +"Similar to :func:`parse`, but parses from a buffer *string* received as a " +"parameter. *string* must be a :class:`str` instance or a :term:`bytes-like " +"object`." +msgstr "" +"Similaire à :func:`parse`, mais qui analyse à partir d'un espace mémoire " +"*string* reçu en tant que paramètre. *string* doit être une instance :class:" +"`str` ou un objet :term:`bytes-like object`." + +#: ../Doc/library/xml.sax.rst:65 +msgid "Added support of :class:`str` instances." +msgstr "Ajout du support des instances :class:`str`." + +#: ../Doc/library/xml.sax.rst:68 +msgid "" +"A typical SAX application uses three kinds of objects: readers, handlers and " +"input sources. \"Reader\" in this context is another term for parser, i.e. " +"some piece of code that reads the bytes or characters from the input source, " +"and produces a sequence of events. The events then get distributed to the " +"handler objects, i.e. the reader invokes a method on the handler. A SAX " +"application must therefore obtain a reader object, create or open the input " +"sources, create the handlers, and connect these objects all together. As " +"the final step of preparation, the reader is called to parse the input. " +"During parsing, methods on the handler objects are called based on " +"structural and syntactic events from the input data." +msgstr "" +"Une application SAX typique utilise trois types d'objets: les *readers*, les " +"*handlers* et les sources d'entrée. \"Reader\" dans ce contexte est un " +"autre terme pour le analyseur, c'est-à-dire un morceau de code qui lit les " +"octets ou les caractères de la source d'entrée et qui produit une séquence " +"d'événements. Les événements sont ensuite distribués aux objets du " +"*handler*, c'est-à-dire que le lecteur appelle une méthode sur le *handler*. " +"L'application doit donc obtenir un objet *reader*, créer ou ouvrir les " +"sources d'entrée, créer les *handlers* et connecter ces objets tous " +"ensemble. La dernière étape de la préparation, le *reader* est appelé à " +"analyser l'entrée. Pendant l'analyse, les méthodes sur les objets du " +"*handler* sont appelées en fonction d'événements structurels et syntaxiques " +"à partir des données d'entrée." + +#: ../Doc/library/xml.sax.rst:79 +msgid "" +"For these objects, only the interfaces are relevant; they are normally not " +"instantiated by the application itself. Since Python does not have an " +"explicit notion of interface, they are formally introduced as classes, but " +"applications may use implementations which do not inherit from the provided " +"classes. The :class:`~xml.sax.xmlreader.InputSource`, :class:`~xml.sax." +"xmlreader.Locator`, :class:`~xml.sax.xmlreader.Attributes`, :class:`~xml.sax." +"xmlreader.AttributesNS`, and :class:`~xml.sax.xmlreader.XMLReader` " +"interfaces are defined in the module :mod:`xml.sax.xmlreader`. The handler " +"interfaces are defined in :mod:`xml.sax.handler`. For convenience, :class:" +"`~xml.sax.xmlreader.InputSource` (which is often instantiated directly) and " +"the handler classes are also available from :mod:`xml.sax`. These " +"interfaces are described below." +msgstr "" +"Pour ces objets, seules les interfaces sont pertinentes; elles ne sont pas " +"normalement instanciées par l'application elle-même. Puisque Python n'a pas " +"de notion explicite d'interface, elles sont formellement introduites en tant " +"que classes, mais les applications peuvent utiliser des implémentations qui " +"n'héritent pas des classes fournies. Les interfaces :class:`~xml.sax." +"xmlreader.InputSource`, :class:`~xml.sax.xmlreader.Locator`, :class:`~xml." +"sax.xmlreader.Attributes`, :class:`~xml.sax.xmlreader.AttributesNS`, et :" +"class:`~xml.sax.xmlreader.XMLReader` sont définies dans le module :mod:`xml." +"sax.xmlreader`. Les interfaces du *handler* sont définies dans :mod:`xml.sax." +"handler`. Pour plus de commodité, :class:`xml.sax.xmlreader.InputSource` " +"(qui est souvent instancié directement) et les classes du *handler* sont " +"également disponibles à partir de :mod:`xml.sax`. Ces interfaces sont " +"décrites ci-dessous." + +#: ../Doc/library/xml.sax.rst:92 +msgid "" +"In addition to these classes, :mod:`xml.sax` provides the following " +"exception classes." +msgstr "" +"En plus de ces classes, :mod:`xml.sax` fournit les classes d'exceptions " +"suivantes." + +#: ../Doc/library/xml.sax.rst:98 +msgid "" +"Encapsulate an XML error or warning. This class can contain basic error or " +"warning information from either the XML parser or the application: it can be " +"subclassed to provide additional functionality or to add localization. Note " +"that although the handlers defined in the :class:`~xml.sax.handler." +"ErrorHandler` interface receive instances of this exception, it is not " +"required to actually raise the exception --- it is also useful as a " +"container for information." +msgstr "" +"Encapsule une erreur ou un avertissement XML. Cette classe peut contenir une " +"erreur de base ou une information d'avertissement soit du analyseur XML ou " +"de l'application: elle peut être sous-classée pour fournir des " +"fonctionnalités supplémentaires ou pour ajouter une localisation. Noter que " +"même si les *handlers* définis dans l'interface :class:`~xml.sax.handler." +"ErrorHandler` reçoivent des instances de cette exception, ce n'est pas " +"nécessaire de lever l'exception --- il est également utile en tant que " +"conteneur pour l'information." + +#: ../Doc/library/xml.sax.rst:106 +msgid "" +"When instantiated, *msg* should be a human-readable description of the " +"error. The optional *exception* parameter, if given, should be ``None`` or " +"an exception that was caught by the parsing code and is being passed along " +"as information." +msgstr "" +"Quand instancié, *msg* devrait être une description lisible par l'homme de " +"l'erreur. Le paramètre optionnel *exception*, s'il est donné, devrait être " +"``None`` ou une exception qui a été interceptée par le code d'analyse et qui " +"est transmise comme information." + +#: ../Doc/library/xml.sax.rst:110 +msgid "This is the base class for the other SAX exception classes." +msgstr "Ceci est la classe de base pour les autres classes d'exception SAX." + +#: ../Doc/library/xml.sax.rst:115 +msgid "" +"Subclass of :exc:`SAXException` raised on parse errors. Instances of this " +"class are passed to the methods of the SAX :class:`~xml.sax.handler." +"ErrorHandler` interface to provide information about the parse error. This " +"class supports the SAX :class:`~xml.sax.xmlreader.Locator` interface as well " +"as the :class:`SAXException` interface." +msgstr "" +"Sous-classe de :exc:`SAXException` élevée sur les erreurs d'analyse. Les " +"instances de cette classe sont passées aux méthodes de l'interface SAX :" +"class:`~xml.sax.handler.ErrorHandler` pour fournir des informations sur " +"l'erreur d'analyse. Cette classe supporte aussi l'interface SAX :class:`~xml." +"sax.xmlreader.Locator` comme l'interface :class:`SAXException`." + +#: ../Doc/library/xml.sax.rst:125 +msgid "" +"Subclass of :exc:`SAXException` raised when a SAX :class:`~xml.sax.xmlreader." +"XMLReader` is confronted with an unrecognized feature or property. SAX " +"applications and extensions may use this class for similar purposes." +msgstr "" +"Sous-classe de :exc:`SAXException` levée quand un SAX :class:`~xml.sax." +"xmlreader. XMLReader` est confronté à une caractéristique ou à une propriété " +"non reconnue. Les applications et les extensions SAX peuvent utiliser cette " +"classe à des fins similaires." + +#: ../Doc/library/xml.sax.rst:133 +msgid "" +"Subclass of :exc:`SAXException` raised when a SAX :class:`~xml.sax.xmlreader." +"XMLReader` is asked to enable a feature that is not supported, or to set a " +"property to a value that the implementation does not support. SAX " +"applications and extensions may use this class for similar purposes." +msgstr "" +"Sous-classe de :exc:`SAXException` levée quand un SAX :class:`~xml.sax." +"xmlreader.XMLReader` est demandé pour activer une fonctionnalité qui n'est " +"pas supportée, ou pour définir une propriété à une valeur que " +"l'implémentation ne prend pas en charge. Les applications et les extensions " +"SAX peuvent utiliser cette classe à des fins similaires." + +#: ../Doc/library/xml.sax.rst:145 +msgid "`SAX: The Simple API for XML `_" +msgstr "`SAX: L'API simple pour XML `_" + +#: ../Doc/library/xml.sax.rst:143 +msgid "" +"This site is the focal point for the definition of the SAX API. It provides " +"a Java implementation and online documentation. Links to implementations " +"and historical information are also available." +msgstr "" +"Ce site est le point focal pour la définition de l'API SAX. Il offre une " +"implémentation Java et une documentation en ligne. Des liens pour " +"l'implémentation et des informations historiques sont également disponibles." + +#: ../Doc/library/xml.sax.rst:148 +msgid "Module :mod:`xml.sax.handler`" +msgstr "Module :mod:`xml.sax.handler`" + +#: ../Doc/library/xml.sax.rst:148 +msgid "Definitions of the interfaces for application-provided objects." +msgstr "Définitions des interfaces pour les objets fournis par l'application." + +#: ../Doc/library/xml.sax.rst:151 +msgid "Module :mod:`xml.sax.saxutils`" +msgstr "Module :mod:`xml.sax.saxutils`" + +#: ../Doc/library/xml.sax.rst:151 +msgid "Convenience functions for use in SAX applications." +msgstr "Fonctions pratiques pour une utilisation dans les applications SAX." + +#: ../Doc/library/xml.sax.rst:153 +msgid "Module :mod:`xml.sax.xmlreader`" +msgstr "Module :mod:`xml.sax.xmlreader`" + +#: ../Doc/library/xml.sax.rst:154 +msgid "Definitions of the interfaces for parser-provided objects." +msgstr "Définitions des interfaces pour les objets fournis par l'analyseur." + +#: ../Doc/library/xml.sax.rst:160 +msgid "SAXException Objects" +msgstr "Les objets SAXException" + +#: ../Doc/library/xml.sax.rst:162 +msgid "" +"The :class:`SAXException` exception class supports the following methods:" +msgstr "" +"La classe d'exception :class:`SAXException` supporte les méthodes suivantes :" + +#: ../Doc/library/xml.sax.rst:167 +msgid "Return a human-readable message describing the error condition." +msgstr "" +"Renvoyer un message lisible par l'homme décrivant la condition d'erreur." + +#: ../Doc/library/xml.sax.rst:172 +msgid "Return an encapsulated exception object, or ``None``." +msgstr "Renvoie un objet d'exception encapsulé, ou``None``." diff --git a/library/xml.sax.reader.po b/library/xml.sax.reader.po new file mode 100644 index 000000000..f79a59006 --- /dev/null +++ b/library/xml.sax.reader.po @@ -0,0 +1,420 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/xml.sax.reader.rst:2 +msgid ":mod:`xml.sax.xmlreader` --- Interface for XML parsers" +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:10 +msgid "**Source code:** :source:`Lib/xml/sax/xmlreader.py`" +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:14 +msgid "" +"SAX parsers implement the :class:`XMLReader` interface. They are implemented " +"in a Python module, which must provide a function :func:`create_parser`. " +"This function is invoked by :func:`xml.sax.make_parser` with no arguments " +"to create a new parser object." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:22 +msgid "Base class which can be inherited by SAX parsers." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:27 +msgid "" +"In some cases, it is desirable not to parse an input source at once, but to " +"feed chunks of the document as they get available. Note that the reader will " +"normally not read the entire file, but read it in chunks as well; still :" +"meth:`parse` won't return until the entire document is processed. So these " +"interfaces should be used if the blocking behaviour of :meth:`parse` is not " +"desirable." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:33 +msgid "" +"When the parser is instantiated it is ready to begin accepting data from the " +"feed method immediately. After parsing has been finished with a call to " +"close the reset method must be called to make the parser ready to accept new " +"data, either from feed or using the parse method." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:38 +msgid "" +"Note that these methods must *not* be called during parsing, that is, after " +"parse has been called and before it returns." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:41 +msgid "" +"By default, the class also implements the parse method of the XMLReader " +"interface using the feed, close and reset methods of the IncrementalParser " +"interface as a convenience to SAX 2.0 driver writers." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:48 +msgid "" +"Interface for associating a SAX event with a document location. A locator " +"object will return valid results only during calls to DocumentHandler " +"methods; at any other time, the results are unpredictable. If information is " +"not available, methods may return ``None``." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:56 +msgid "" +"Encapsulation of the information needed by the :class:`XMLReader` to read " +"entities." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:59 +msgid "" +"This class may include information about the public identifier, system " +"identifier, byte stream (possibly with character encoding information) and/" +"or the character stream of an entity." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:63 +msgid "" +"Applications will create objects of this class for use in the :meth:" +"`XMLReader.parse` method and for returning from EntityResolver.resolveEntity." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:67 +msgid "" +"An :class:`InputSource` belongs to the application, the :class:`XMLReader` " +"is not allowed to modify :class:`InputSource` objects passed to it from the " +"application, although it may make copies and modify those." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:74 +msgid "" +"This is an implementation of the :class:`Attributes` interface (see section :" +"ref:`attributes-objects`). This is a dictionary-like object which " +"represents the element attributes in a :meth:`startElement` call. In " +"addition to the most useful dictionary operations, it supports a number of " +"other methods as described by the interface. Objects of this class should be " +"instantiated by readers; *attrs* must be a dictionary-like object containing " +"a mapping from attribute names to attribute values." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:85 +msgid "" +"Namespace-aware variant of :class:`AttributesImpl`, which will be passed to :" +"meth:`startElementNS`. It is derived from :class:`AttributesImpl`, but " +"understands attribute names as two-tuples of *namespaceURI* and *localname*. " +"In addition, it provides a number of methods expecting qualified names as " +"they appear in the original document. This class implements the :class:" +"`AttributesNS` interface (see section :ref:`attributes-ns-objects`)." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:96 +msgid "XMLReader Objects" +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:98 +msgid "The :class:`XMLReader` interface supports the following methods:" +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:103 +msgid "" +"Process an input source, producing SAX events. The *source* object can be a " +"system identifier (a string identifying the input source -- typically a file " +"name or a URL), a file-like object, or an :class:`InputSource` object. When :" +"meth:`parse` returns, the input is completely processed, and the parser " +"object can be discarded or reset." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:109 +msgid "Added support of character streams." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:115 +msgid "Return the current :class:`~xml.sax.handler.ContentHandler`." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:120 +msgid "" +"Set the current :class:`~xml.sax.handler.ContentHandler`. If no :class:" +"`~xml.sax.handler.ContentHandler` is set, content events will be discarded." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:127 +msgid "Return the current :class:`~xml.sax.handler.DTDHandler`." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:132 +msgid "" +"Set the current :class:`~xml.sax.handler.DTDHandler`. If no :class:`~xml." +"sax.handler.DTDHandler` is set, DTD events will be discarded." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:139 +msgid "Return the current :class:`~xml.sax.handler.EntityResolver`." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:144 +msgid "" +"Set the current :class:`~xml.sax.handler.EntityResolver`. If no :class:" +"`~xml.sax.handler.EntityResolver` is set, attempts to resolve an external " +"entity will result in opening the system identifier for the entity, and fail " +"if it is not available." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:152 +msgid "Return the current :class:`~xml.sax.handler.ErrorHandler`." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:157 +msgid "" +"Set the current error handler. If no :class:`~xml.sax.handler.ErrorHandler` " +"is set, errors will be raised as exceptions, and warnings will be printed." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:163 +msgid "Allow an application to set the locale for errors and warnings." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:165 +msgid "" +"SAX parsers are not required to provide localization for errors and " +"warnings; if they cannot support the requested locale, however, they must " +"raise a SAX exception. Applications may request a locale change in the " +"middle of a parse." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:172 +msgid "" +"Return the current setting for feature *featurename*. If the feature is not " +"recognized, :exc:`SAXNotRecognizedException` is raised. The well-known " +"featurenames are listed in the module :mod:`xml.sax.handler`." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:179 +msgid "" +"Set the *featurename* to *value*. If the feature is not recognized, :exc:" +"`SAXNotRecognizedException` is raised. If the feature or its setting is not " +"supported by the parser, *SAXNotSupportedException* is raised." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:186 +msgid "" +"Return the current setting for property *propertyname*. If the property is " +"not recognized, a :exc:`SAXNotRecognizedException` is raised. The well-known " +"propertynames are listed in the module :mod:`xml.sax.handler`." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:193 +msgid "" +"Set the *propertyname* to *value*. If the property is not recognized, :exc:" +"`SAXNotRecognizedException` is raised. If the property or its setting is not " +"supported by the parser, *SAXNotSupportedException* is raised." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:201 +msgid "IncrementalParser Objects" +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:203 +msgid "" +"Instances of :class:`IncrementalParser` offer the following additional " +"methods:" +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:208 +msgid "Process a chunk of *data*." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:213 +msgid "" +"Assume the end of the document. That will check well-formedness conditions " +"that can be checked only at the end, invoke handlers, and may clean up " +"resources allocated during parsing." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:220 +msgid "" +"This method is called after close has been called to reset the parser so " +"that it is ready to parse new documents. The results of calling parse or " +"feed after close without calling reset are undefined." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:228 +msgid "Locator Objects" +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:230 +msgid "Instances of :class:`Locator` provide these methods:" +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:235 +msgid "Return the column number where the current event begins." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:240 +msgid "Return the line number where the current event begins." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:245 +msgid "Return the public identifier for the current event." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:250 +msgid "Return the system identifier for the current event." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:256 +msgid "InputSource Objects" +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:261 +msgid "Sets the public identifier of this :class:`InputSource`." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:266 +msgid "Returns the public identifier of this :class:`InputSource`." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:271 +msgid "Sets the system identifier of this :class:`InputSource`." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:276 +msgid "Returns the system identifier of this :class:`InputSource`." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:281 +msgid "Sets the character encoding of this :class:`InputSource`." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:283 +msgid "" +"The encoding must be a string acceptable for an XML encoding declaration " +"(see section 4.3.3 of the XML recommendation)." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:286 +msgid "" +"The encoding attribute of the :class:`InputSource` is ignored if the :class:" +"`InputSource` also contains a character stream." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:292 +msgid "Get the character encoding of this InputSource." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:297 +msgid "Set the byte stream (a :term:`binary file`) for this input source." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:299 +msgid "" +"The SAX parser will ignore this if there is also a character stream " +"specified, but it will use a byte stream in preference to opening a URI " +"connection itself." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:302 +msgid "" +"If the application knows the character encoding of the byte stream, it " +"should set it with the setEncoding method." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:308 +msgid "Get the byte stream for this input source." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:310 +msgid "" +"The getEncoding method will return the character encoding for this byte " +"stream, or ``None`` if unknown." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:316 +msgid "Set the character stream (a :term:`text file`) for this input source." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:318 +msgid "" +"If there is a character stream specified, the SAX parser will ignore any " +"byte stream and will not attempt to open a URI connection to the system " +"identifier." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:324 +msgid "Get the character stream for this input source." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:330 +msgid "The :class:`Attributes` Interface" +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:332 +msgid "" +":class:`Attributes` objects implement a portion of the :term:`mapping " +"protocol `, including the methods :meth:`~collections.abc.Mapping." +"copy`, :meth:`~collections.abc.Mapping.get`, :meth:`~object.__contains__`, :" +"meth:`~collections.abc.Mapping.items`, :meth:`~collections.abc.Mapping." +"keys`, and :meth:`~collections.abc.Mapping.values`. The following methods " +"are also provided:" +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:342 +msgid "Return the number of attributes." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:347 +msgid "Return the names of the attributes." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:352 +msgid "" +"Returns the type of the attribute *name*, which is normally ``'CDATA'``." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:357 +msgid "Return the value of attribute *name*." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:366 +msgid "The :class:`AttributesNS` Interface" +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:368 +msgid "" +"This interface is a subtype of the :class:`Attributes` interface (see " +"section :ref:`attributes-objects`). All methods supported by that interface " +"are also available on :class:`AttributesNS` objects." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:372 +msgid "The following methods are also available:" +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:377 +msgid "Return the value for a qualified name." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:382 +msgid "Return the ``(namespace, localname)`` pair for a qualified *name*." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:387 +msgid "Return the qualified name for a ``(namespace, localname)`` pair." +msgstr "" + +#: ../Doc/library/xml.sax.reader.rst:392 +msgid "Return the qualified names of all attributes." +msgstr "" diff --git a/library/xml.sax.utils.po b/library/xml.sax.utils.po new file mode 100644 index 000000000..95e93ccc0 --- /dev/null +++ b/library/xml.sax.utils.po @@ -0,0 +1,160 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-18 10:21+0200\n" +"PO-Revision-Date: 2018-11-30 14:07+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/library/xml.sax.utils.rst:2 +msgid ":mod:`xml.sax.saxutils` --- SAX Utilities" +msgstr ":mod:`xml.sax.saxutils` — Utilitaires SAX" + +#: ../Doc/library/xml.sax.utils.rst:10 +msgid "**Source code:** :source:`Lib/xml/sax/saxutils.py`" +msgstr "**Code source :** :source:`Lib/xml/sax/saxutils.py`" + +#: ../Doc/library/xml.sax.utils.rst:14 +msgid "" +"The module :mod:`xml.sax.saxutils` contains a number of classes and " +"functions that are commonly useful when creating SAX applications, either in " +"direct use, or as base classes." +msgstr "" +"Le module :mod:`xml.sax.saxutils` contient des classes et fonctions qui " +"sont fréquemment utiles en créant des applications SAX, soit en utilisation " +"directe, soit en classes de base." + +#: ../Doc/library/xml.sax.utils.rst:21 +msgid "Escape ``'&'``, ``'<'``, and ``'>'`` in a string of data." +msgstr "" +"Échappe ``'&'``, ``'<'``, et ``'>'`` dans une chaine de caractères de " +"données." + +#: ../Doc/library/xml.sax.utils.rst:23 +msgid "" +"You can escape other strings of data by passing a dictionary as the optional " +"*entities* parameter. The keys and values must all be strings; each key " +"will be replaced with its corresponding value. The characters ``'&'``, " +"``'<'`` and ``'>'`` are always escaped, even if *entities* is provided." +msgstr "" +"Vous pouvez échapper d'autres chaines de caractères de données en passant un " +"dictionnaire au paramètre optionnel *entities*. Les clés et valeurs doivent " +"toutes être des chaines de caractères ; chaque clé sera remplacée par sa " +"valeur correspondante. Les caractères ``'&'``, ``'<'`` et ``'>'`` sont " +"toujours échappés même si *entities* est donné en paramètre." + +#: ../Doc/library/xml.sax.utils.rst:31 +msgid "Unescape ``'&'``, ``'<'``, and ``'>'`` in a string of data." +msgstr "" +"*Parse* ``'&'``, ``'<'``, et ``'>'`` dans une chaine de caractères " +"de données." + +#: ../Doc/library/xml.sax.utils.rst:33 +msgid "" +"You can unescape other strings of data by passing a dictionary as the " +"optional *entities* parameter. The keys and values must all be strings; " +"each key will be replaced with its corresponding value. ``'&'``, " +"``'<'``, and ``'>'`` are always unescaped, even if *entities* is " +"provided." +msgstr "" +"Vous pouvez dé-échapper d'autres chaines de caractères de données en passant " +"un dictionnaire au paramètre optionnel *entities*. Les clés et valeurs " +"doivent toutes être des chaines de caractères ; chaque clé sera remplacée " +"par sa valeur correspondante. Les caractères ``'&'``, ``'<'`` et ``'>'`` " +"sont toujours dé-échappés même si *entities* est donné en paramètre." + +#: ../Doc/library/xml.sax.utils.rst:41 +msgid "" +"Similar to :func:`escape`, but also prepares *data* to be used as an " +"attribute value. The return value is a quoted version of *data* with any " +"additional required replacements. :func:`quoteattr` will select a quote " +"character based on the content of *data*, attempting to avoid encoding any " +"quote characters in the string. If both single- and double-quote characters " +"are already in *data*, the double-quote characters will be encoded and " +"*data* will be wrapped in double-quotes. The resulting string can be used " +"directly as an attribute value::" +msgstr "" +"Similaire à :func:`escape`, mais prépare aussi *data* pour être utilisé " +"comme une valeur d'attribut. La valeur renvoyée est une version entre " +"guillemets de *data* avec tous les remplacements supplémentaires " +"nécessaires. :func:`quoteattr` va sélectionner un caractère guillemet basé " +"sur le contenu de *data*, en essayant d’éviter d'encoder tous les caractères " +"guillemets dans la chaine de caractères. Si les caractères guillemet simple " +"et guillemets sont déjà dans *data*, les caractères guillemets simples " +"seront encodés et *data* sera entouré de guillemets. La chaine de caractères " +"résultante pourra être utilisée en tant que valeur d'attribut ::" + +#: ../Doc/library/xml.sax.utils.rst:53 +msgid "" +"This function is useful when generating attribute values for HTML or any " +"SGML using the reference concrete syntax." +msgstr "" +"Cette fonction est utile quand vous générez des valeurs d'attributs pour du " +"HTML ou n'importe quel SGML en utilisant la syntaxe concrète de référence." + +#: ../Doc/library/xml.sax.utils.rst:59 +msgid "" +"This class implements the :class:`~xml.sax.handler.ContentHandler` interface " +"by writing SAX events back into an XML document. In other words, using an :" +"class:`XMLGenerator` as the content handler will reproduce the original " +"document being parsed. *out* should be a file-like object which will default " +"to *sys.stdout*. *encoding* is the encoding of the output stream which " +"defaults to ``'iso-8859-1'``. *short_empty_elements* controls the formatting " +"of elements that contain no content: if ``False`` (the default) they are " +"emitted as a pair of start/end tags, if set to ``True`` they are emitted as " +"a single self-closed tag." +msgstr "" +"Cette classe implémente l'interface :class:`~xml.sax.handler.ContentHandler` " +"en écrivant les événements SAX dans un document XML. En d'autres termes, " +"utiliser un :class:`XMLGenerator` en tant que gestionnaire de contenu " +"reproduira le document original qui était analysé. *out* devrait être un " +"objet de type fichier qui est par défaut *sys.stdout*. *encoding* est " +"l'encodage du flux de sortie qui est par défaut ``'iso-8859-1'``. " +"*short_empty_elements* contrôle le formatage des éléments qui ne contiennent " +"rien : si ``False`` (par défaut), ils sont émis comme une paire de balises " +"(début, fin). Si la valeur est ``True``, ils sont émis comme une balise " +"seule auto-fermante." + +#: ../Doc/library/xml.sax.utils.rst:69 +msgid "The *short_empty_elements* parameter." +msgstr "Le paramètre *short_empty_elements*." + +#: ../Doc/library/xml.sax.utils.rst:75 +msgid "" +"This class is designed to sit between an :class:`~xml.sax.xmlreader." +"XMLReader` and the client application's event handlers. By default, it does " +"nothing but pass requests up to the reader and events on to the handlers " +"unmodified, but subclasses can override specific methods to modify the event " +"stream or the configuration requests as they pass through." +msgstr "" +"Cette classe est faite pour être entre :class:`~xml.sax.xmlreader.XMLReader` " +"et le gestionnaire des événements de l'application client. Par défaut, elle " +"ne fait rien mais passe les requêtes au lecteur et les événements au " +"gestionnaire sans les modifier, mais des sous-classes peuvent surcharger des " +"méthodes spécifiques pour modifier le flux d’événements ou la configuration " +"des requêtes à leur passage." + +#: ../Doc/library/xml.sax.utils.rst:85 +msgid "" +"This function takes an input source and an optional base URL and returns a " +"fully resolved :class:`~xml.sax.xmlreader.InputSource` object ready for " +"reading. The input source can be given as a string, a file-like object, or " +"an :class:`~xml.sax.xmlreader.InputSource` object; parsers will use this " +"function to implement the polymorphic *source* argument to their :meth:" +"`parse` method." +msgstr "" +"Cette fonction prend en entrée une source et une URL de base optionnelle et " +"retourne un objet complétement résolue :class:`~xml.sax.xmlreader." +"InputSource` prêt pour être lu. La source d'entrée peut être donnée comme " +"une chaine de caractère, un objet type fichier, ou un objet :class:`~xml.sax." +"xmlreader.InputSource` ; Les analyseurs utiliseront cette fonction pour " +"gérer le polymorphisme de l'argument *source* à leur méthode :meth:`parse`." diff --git a/library/xmlrpc.client.po b/library/xmlrpc.client.po new file mode 100644 index 000000000..aeb338da2 --- /dev/null +++ b/library/xmlrpc.client.po @@ -0,0 +1,596 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-17 10:39+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/xmlrpc.client.rst:2 +msgid ":mod:`xmlrpc.client` --- XML-RPC client access" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:10 +msgid "**Source code:** :source:`Lib/xmlrpc/client.py`" +msgstr "**Source code:** :source:`Lib/xmlrpc/client.py`" + +#: ../Doc/library/xmlrpc.client.rst:17 +msgid "" +"XML-RPC is a Remote Procedure Call method that uses XML passed via HTTP(S) " +"as a transport. With it, a client can call methods with parameters on a " +"remote server (the server is named by a URI) and get back structured data. " +"This module supports writing XML-RPC client code; it handles all the details " +"of translating between conformable Python objects and XML on the wire." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:26 +msgid "" +"The :mod:`xmlrpc.client` module is not secure against maliciously " +"constructed data. If you need to parse untrusted or unauthenticated data " +"see :ref:`xml-vulnerabilities`." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:32 +msgid "" +"For HTTPS URIs, :mod:`xmlrpc.client` now performs all the necessary " +"certificate and hostname checks by default." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:39 ../Doc/library/xmlrpc.client.rst:546 +msgid "The *use_builtin_types* flag was added." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:42 +msgid "" +"A :class:`ServerProxy` instance is an object that manages communication with " +"a remote XML-RPC server. The required first argument is a URI (Uniform " +"Resource Indicator), and will normally be the URL of the server. The " +"optional second argument is a transport factory instance; by default it is " +"an internal :class:`SafeTransport` instance for https: URLs and an internal " +"HTTP :class:`Transport` instance otherwise. The optional third argument is " +"an encoding, by default UTF-8. The optional fourth argument is a debugging " +"flag." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:50 +msgid "" +"The following parameters govern the use of the returned proxy instance. If " +"*allow_none* is true, the Python constant ``None`` will be translated into " +"XML; the default behaviour is for ``None`` to raise a :exc:`TypeError`. This " +"is a commonly-used extension to the XML-RPC specification, but isn't " +"supported by all clients and servers; see `http://ontosys.com/xml-rpc/" +"extensions.php `_ for a description. The *use_builtin_types* " +"flag can be used to cause date/time values to be presented as :class:" +"`datetime.datetime` objects and binary data to be presented as :class:" +"`bytes` objects; this flag is false by default. :class:`datetime.datetime`, :" +"class:`bytes` and :class:`bytearray` objects may be passed to calls. The " +"obsolete *use_datetime* flag is similar to *use_builtin_types* but it " +"applies only to date/time values." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:65 +msgid "" +"Both the HTTP and HTTPS transports support the URL syntax extension for HTTP " +"Basic Authentication: ``http://user:pass@host:port/path``. The ``user:" +"pass`` portion will be base64-encoded as an HTTP 'Authorization' header, and " +"sent to the remote server as part of the connection process when invoking an " +"XML-RPC method. You only need to use this if the remote server requires a " +"Basic Authentication user and password. If an HTTPS URL is provided, " +"*context* may be :class:`ssl.SSLContext` and configures the SSL settings of " +"the underlying HTTPS connection." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:74 +msgid "" +"The returned instance is a proxy object with methods that can be used to " +"invoke corresponding RPC calls on the remote server. If the remote server " +"supports the introspection API, the proxy can also be used to query the " +"remote server for the methods it supports (service discovery) and fetch " +"other server-associated metadata." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:80 +msgid "" +"Types that are conformable (e.g. that can be marshalled through XML), " +"include the following (and except where noted, they are unmarshalled as the " +"same Python type):" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:87 +msgid "XML-RPC type" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:87 +msgid "Python type" +msgstr "Type Python" + +#: ../Doc/library/xmlrpc.client.rst:89 +msgid "``boolean``" +msgstr "``boolean``" + +#: ../Doc/library/xmlrpc.client.rst:89 +msgid ":class:`bool`" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:91 +msgid "``int``, ``i1``, ``i2``, ``i4``, ``i8`` or ``biginteger``" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:91 +msgid "" +":class:`int` in range from -2147483648 to 2147483647. Values get the " +"```` tag." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:96 +msgid "``double`` or ``float``" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:96 +msgid ":class:`float`. Values get the ```` tag." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:99 +msgid "``string``" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:99 +msgid ":class:`str`" +msgstr ":class:`str`" + +#: ../Doc/library/xmlrpc.client.rst:101 +msgid "``array``" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:101 +msgid "" +":class:`list` or :class:`tuple` containing conformable elements. Arrays are " +"returned as :class:`lists `." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:105 +msgid "``struct``" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:105 +msgid "" +":class:`dict`. Keys must be strings, values may be any conformable type. " +"Objects of user-defined classes can be passed in; only their :attr:`~object." +"__dict__` attribute is transmitted." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:110 +msgid "``dateTime.iso8601``" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:110 +msgid "" +":class:`DateTime` or :class:`datetime.datetime`. Returned type depends on " +"values of *use_builtin_types* and *use_datetime* flags." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:114 +msgid "``base64``" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:114 +msgid "" +":class:`Binary`, :class:`bytes` or :class:`bytearray`. Returned type " +"depends on the value of the *use_builtin_types* flag." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:118 +msgid "``nil``" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:118 +msgid "" +"The ``None`` constant. Passing is allowed only if *allow_none* is true." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:121 +msgid "``bigdecimal``" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:121 +msgid ":class:`decimal.Decimal`. Returned type only." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:124 +msgid "" +"This is the full set of data types supported by XML-RPC. Method calls may " +"also raise a special :exc:`Fault` instance, used to signal XML-RPC server " +"errors, or :exc:`ProtocolError` used to signal an error in the HTTP/HTTPS " +"transport layer. Both :exc:`Fault` and :exc:`ProtocolError` derive from a " +"base class called :exc:`Error`. Note that the xmlrpc client module " +"currently does not marshal instances of subclasses of built-in types." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:131 +msgid "" +"When passing strings, characters special to XML such as ``<``, ``>``, and " +"``&`` will be automatically escaped. However, it's the caller's " +"responsibility to ensure that the string is free of characters that aren't " +"allowed in XML, such as the control characters with ASCII values between 0 " +"and 31 (except, of course, tab, newline and carriage return); failing to do " +"this will result in an XML-RPC request that isn't well-formed XML. If you " +"have to pass arbitrary bytes via XML-RPC, use :class:`bytes` or :class:" +"`bytearray` classes or the :class:`Binary` wrapper class described below." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:140 +msgid "" +":class:`Server` is retained as an alias for :class:`ServerProxy` for " +"backwards compatibility. New code should use :class:`ServerProxy`." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:143 +msgid "Added the *context* argument." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:146 +msgid "" +"Added support of type tags with prefixes (e.g. ``ex:nil``). Added support of " +"unmarshalling additional types used by Apache XML-RPC implementation for " +"numerics: ``i1``, ``i2``, ``i8``, ``biginteger``, ``float`` and " +"``bigdecimal``. See http://ws.apache.org/xmlrpc/types.html for a description." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:158 +msgid "`XML-RPC HOWTO `_" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:157 +msgid "" +"A good description of XML-RPC operation and client software in several " +"languages. Contains pretty much everything an XML-RPC client developer needs " +"to know." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:161 +msgid "" +"`XML-RPC Introspection `_" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:161 +msgid "Describes the XML-RPC protocol extension for introspection." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:164 +msgid "`XML-RPC Specification `_" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:164 +msgid "The official specification." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:169 +msgid "`Unofficial XML-RPC Errata `_" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:167 +msgid "" +"Fredrik Lundh's \"unofficial errata, intended to clarify certain details in " +"the XML-RPC specification, as well as hint at 'best practices' to use when " +"designing your own XML-RPC implementations.\"" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:175 +msgid "ServerProxy Objects" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:177 +msgid "" +"A :class:`ServerProxy` instance has a method corresponding to each remote " +"procedure call accepted by the XML-RPC server. Calling the method performs " +"an RPC, dispatched by both name and argument signature (e.g. the same method " +"name can be overloaded with multiple argument signatures). The RPC finishes " +"by returning a value, which may be either returned data in a conformant type " +"or a :class:`Fault` or :class:`ProtocolError` object indicating an error." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:184 +msgid "" +"Servers that support the XML introspection API support some common methods " +"grouped under the reserved :attr:`~ServerProxy.system` attribute:" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:190 +msgid "" +"This method returns a list of strings, one for each (non-system) method " +"supported by the XML-RPC server." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:196 +msgid "" +"This method takes one parameter, the name of a method implemented by the XML-" +"RPC server. It returns an array of possible signatures for this method. A " +"signature is an array of types. The first of these types is the return type " +"of the method, the rest are parameters." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:201 +msgid "" +"Because multiple signatures (ie. overloading) is permitted, this method " +"returns a list of signatures rather than a singleton." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:204 +msgid "" +"Signatures themselves are restricted to the top level parameters expected by " +"a method. For instance if a method expects one array of structs as a " +"parameter, and it returns a string, its signature is simply \"string, array" +"\". If it expects three integers and returns a string, its signature is " +"\"string, int, int, int\"." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:209 +msgid "" +"If no signature is defined for the method, a non-array value is returned. In " +"Python this means that the type of the returned value will be something " +"other than list." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:216 +msgid "" +"This method takes one parameter, the name of a method implemented by the XML-" +"RPC server. It returns a documentation string describing the use of that " +"method. If no such string is available, an empty string is returned. The " +"documentation string may contain HTML markup." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:223 +msgid "" +"Instances of :class:`ServerProxy` support the :term:`context manager` " +"protocol for closing the underlying transport." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:227 ../Doc/library/xmlrpc.client.rst:273 +msgid "A working example follows. The server code::" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:239 ../Doc/library/xmlrpc.client.rst:288 +#: ../Doc/library/xmlrpc.client.rst:398 ../Doc/library/xmlrpc.client.rst:504 +msgid "The client code for the preceding server::" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:250 +msgid "DateTime Objects" +msgstr "Objets DateTime" + +#: ../Doc/library/xmlrpc.client.rst:254 +msgid "" +"This class may be initialized with seconds since the epoch, a time tuple, an " +"ISO 8601 time/date string, or a :class:`datetime.datetime` instance. It has " +"the following methods, supported mainly for internal use by the marshalling/" +"unmarshalling code:" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:262 +msgid "Accept a string as the instance's new time value." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:267 +msgid "" +"Write the XML-RPC encoding of this :class:`DateTime` item to the *out* " +"stream object." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:270 +msgid "" +"It also supports certain of Python's built-in operators through rich " +"comparison and :meth:`__repr__` methods." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:303 +msgid "Binary Objects" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:307 +msgid "" +"This class may be initialized from bytes data (which may include NULs). The " +"primary access to the content of a :class:`Binary` object is provided by an " +"attribute:" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:314 +msgid "" +"The binary data encapsulated by the :class:`Binary` instance. The data is " +"provided as a :class:`bytes` object." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:317 +msgid "" +":class:`Binary` objects have the following methods, supported mainly for " +"internal use by the marshalling/unmarshalling code:" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:323 +msgid "" +"Accept a base64 :class:`bytes` object and decode it as the instance's new " +"data." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:328 +msgid "" +"Write the XML-RPC base 64 encoding of this binary item to the *out* stream " +"object." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:330 +msgid "" +"The encoded data will have newlines every 76 characters as per :rfc:`RFC " +"2045 section 6.8 <2045#section-6.8>`, which was the de facto standard base64 " +"specification when the XML-RPC spec was written." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:335 +msgid "" +"It also supports certain of Python's built-in operators through :meth:" +"`__eq__` and :meth:`__ne__` methods." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:338 +msgid "" +"Example usage of the binary objects. We're going to transfer an image over " +"XMLRPC::" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:354 +msgid "The client gets the image and saves it to a file::" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:365 +msgid "Fault Objects" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:369 +msgid "" +"A :class:`Fault` object encapsulates the content of an XML-RPC fault tag. " +"Fault objects have the following attributes:" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:375 +msgid "A string indicating the fault type." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:380 +msgid "A string containing a diagnostic message associated with the fault." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:382 +msgid "" +"In the following example we're going to intentionally cause a :exc:`Fault` " +"by returning a complex type object. The server code::" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:415 +msgid "ProtocolError Objects" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:419 +msgid "" +"A :class:`ProtocolError` object describes a protocol error in the underlying " +"transport layer (such as a 404 'not found' error if the server named by the " +"URI does not exist). It has the following attributes:" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:426 +msgid "The URI or URL that triggered the error." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:431 +msgid "The error code." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:436 +msgid "The error message or diagnostic string." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:441 +msgid "" +"A dict containing the headers of the HTTP/HTTPS request that triggered the " +"error." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:444 +msgid "" +"In the following example we're going to intentionally cause a :exc:" +"`ProtocolError` by providing an invalid URI::" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:462 +msgid "MultiCall Objects" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:464 +msgid "" +"The :class:`MultiCall` object provides a way to encapsulate multiple calls " +"to a remote server into a single request [#]_." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:470 +msgid "" +"Create an object used to boxcar method calls. *server* is the eventual " +"target of the call. Calls can be made to the result object, but they will " +"immediately return ``None``, and only store the call name and parameters in " +"the :class:`MultiCall` object. Calling the object itself causes all stored " +"calls to be transmitted as a single ``system.multicall`` request. The result " +"of this call is a :term:`generator`; iterating over this generator yields " +"the individual results." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:478 +msgid "A usage example of this class follows. The server code::" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:520 +msgid "Convenience Functions" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:524 +msgid "" +"Convert *params* into an XML-RPC request. or into a response if " +"*methodresponse* is true. *params* can be either a tuple of arguments or an " +"instance of the :exc:`Fault` exception class. If *methodresponse* is true, " +"only a single value can be returned, meaning that *params* must be of length " +"1. *encoding*, if supplied, is the encoding to use in the generated XML; the " +"default is UTF-8. Python's :const:`None` value cannot be used in standard " +"XML-RPC; to allow using it via an extension, provide a true value for " +"*allow_none*." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:535 +msgid "" +"Convert an XML-RPC request or response into Python objects, a ``(params, " +"methodname)``. *params* is a tuple of argument; *methodname* is a string, " +"or ``None`` if no method name is present in the packet. If the XML-RPC " +"packet represents a fault condition, this function will raise a :exc:`Fault` " +"exception. The *use_builtin_types* flag can be used to cause date/time " +"values to be presented as :class:`datetime.datetime` objects and binary data " +"to be presented as :class:`bytes` objects; this flag is false by default." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:543 +msgid "" +"The obsolete *use_datetime* flag is similar to *use_builtin_types* but it " +"applies only to date/time values." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:553 +msgid "Example of Client Usage" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:570 +msgid "" +"To access an XML-RPC server through a HTTP proxy, you need to define a " +"custom transport. The following example shows how::" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:595 +msgid "Example of Client and Server Usage" +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:597 +msgid "See :ref:`simplexmlrpcserver-example`." +msgstr "" + +#: ../Doc/library/xmlrpc.client.rst:601 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/library/xmlrpc.client.rst:602 +msgid "" +"This approach has been first presented in `a discussion on xmlrpc.com " +"`_." +msgstr "" diff --git a/library/xmlrpc.po b/library/xmlrpc.po new file mode 100644 index 000000000..3591de6e7 --- /dev/null +++ b/library/xmlrpc.po @@ -0,0 +1,46 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2017-11-08 00:05+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/xmlrpc.rst:2 +msgid ":mod:`xmlrpc` --- XMLRPC server and client modules" +msgstr ":mod:`xmlrpc` — Modules Serveur et Client XMLRPC" + +#: ../Doc/library/xmlrpc.rst:4 +msgid "" +"XML-RPC is a Remote Procedure Call method that uses XML passed via HTTP as a " +"transport. With it, a client can call methods with parameters on a remote " +"server (the server is named by a URI) and get back structured data." +msgstr "" +"XML-RPC est une méthode pour appeler des procédures distantes utilisant XML " +"via HTTP. XML-RPC permet à un client d'appeler des fonctions avec leurs " +"arguments sur un serveur distant (désigné par une URI), et recevoir en " +"retour des données structurées." + +#: ../Doc/library/xmlrpc.rst:8 +msgid "" +"``xmlrpc`` is a package that collects server and client modules implementing " +"XML-RPC. The modules are:" +msgstr "" +"``xmlrpc`` est un paquet rassemblant un client et un serveur XML-RPC. Ces " +"modules sont :" + +#: ../Doc/library/xmlrpc.rst:11 +msgid ":mod:`xmlrpc.client`" +msgstr ":mod:`xmlrpc.client`" + +#: ../Doc/library/xmlrpc.rst:12 +msgid ":mod:`xmlrpc.server`" +msgstr ":mod:`xmlrpc.server`" diff --git a/library/xmlrpc.server.po b/library/xmlrpc.server.po new file mode 100644 index 000000000..4acd12ead --- /dev/null +++ b/library/xmlrpc.server.po @@ -0,0 +1,331 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/library/xmlrpc.server.rst:2 +msgid ":mod:`xmlrpc.server` --- Basic XML-RPC servers" +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:10 +msgid "**Source code:** :source:`Lib/xmlrpc/server.py`" +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:14 +msgid "" +"The :mod:`xmlrpc.server` module provides a basic server framework for XML-" +"RPC servers written in Python. Servers can either be free standing, using :" +"class:`SimpleXMLRPCServer`, or embedded in a CGI environment, using :class:" +"`CGIXMLRPCRequestHandler`." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:22 +msgid "" +"The :mod:`xmlrpc.server` module is not secure against maliciously " +"constructed data. If you need to parse untrusted or unauthenticated data " +"see :ref:`xml-vulnerabilities`." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:31 +msgid "" +"Create a new server instance. This class provides methods for registration " +"of functions that can be called by the XML-RPC protocol. The " +"*requestHandler* parameter should be a factory for request handler " +"instances; it defaults to :class:`SimpleXMLRPCRequestHandler`. The *addr* " +"and *requestHandler* parameters are passed to the :class:`socketserver." +"TCPServer` constructor. If *logRequests* is true (the default), requests " +"will be logged; setting this parameter to false will turn off logging. The " +"*allow_none* and *encoding* parameters are passed on to :mod:`xmlrpc.client` " +"and control the XML-RPC responses that will be returned from the server. The " +"*bind_and_activate* parameter controls whether :meth:`server_bind` and :meth:" +"`server_activate` are called immediately by the constructor; it defaults to " +"true. Setting it to false allows code to manipulate the " +"*allow_reuse_address* class variable before the address is bound. The " +"*use_builtin_types* parameter is passed to the :func:`~xmlrpc.client.loads` " +"function and controls which types are processed when date/times values or " +"binary data are received; it defaults to false." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:47 ../Doc/library/xmlrpc.server.rst:61 +#: ../Doc/library/xmlrpc.server.rst:373 +msgid "The *use_builtin_types* flag was added." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:54 +msgid "" +"Create a new instance to handle XML-RPC requests in a CGI environment. The " +"*allow_none* and *encoding* parameters are passed on to :mod:`xmlrpc.client` " +"and control the XML-RPC responses that will be returned from the server. The " +"*use_builtin_types* parameter is passed to the :func:`~xmlrpc.client.loads` " +"function and controls which types are processed when date/times values or " +"binary data are received; it defaults to false." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:67 +msgid "" +"Create a new request handler instance. This request handler supports " +"``POST`` requests and modifies logging so that the *logRequests* parameter " +"to the :class:`SimpleXMLRPCServer` constructor parameter is honored." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:75 +msgid "SimpleXMLRPCServer Objects" +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:77 +msgid "" +"The :class:`SimpleXMLRPCServer` class is based on :class:`socketserver." +"TCPServer` and provides a means of creating simple, stand alone XML-RPC " +"servers." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:84 ../Doc/library/xmlrpc.server.rst:298 +msgid "" +"Register a function that can respond to XML-RPC requests. If *name* is " +"given, it will be the method name associated with *function*, otherwise " +"``function.__name__`` will be used. *name* is a string, and may contain " +"characters not legal in Python identifiers, including the period character." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:89 ../Doc/library/xmlrpc.server.rst:303 +msgid "" +"This method can also be used as a decorator. When used as a decorator, " +"*name* can only be given as a keyword argument to register *function* under " +"*name*. If no *name* is given, ``function.__name__`` will be used." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:93 ../Doc/library/xmlrpc.server.rst:307 +msgid ":meth:`register_function` can be used as a decorator." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:99 +msgid "" +"Register an object which is used to expose method names which have not been " +"registered using :meth:`register_function`. If *instance* contains a :meth:" +"`_dispatch` method, it is called with the requested method name and the " +"parameters from the request. Its API is ``def _dispatch(self, method, " +"params)`` (note that *params* does not represent a variable argument list). " +"If it calls an underlying function to perform its task, that function is " +"called as ``func(*params)``, expanding the parameter list. The return value " +"from :meth:`_dispatch` is returned to the client as the result. If " +"*instance* does not have a :meth:`_dispatch` method, it is searched for an " +"attribute matching the name of the requested method." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:110 +msgid "" +"If the optional *allow_dotted_names* argument is true and the instance does " +"not have a :meth:`_dispatch` method, then if the requested method name " +"contains periods, each component of the method name is searched for " +"individually, with the effect that a simple hierarchical search is " +"performed. The value found from this search is then called with the " +"parameters from the request, and the return value is passed back to the " +"client." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:119 +msgid "" +"Enabling the *allow_dotted_names* option allows intruders to access your " +"module's global variables and may allow intruders to execute arbitrary code " +"on your machine. Only use this option on a secure, closed network." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:126 +msgid "" +"Registers the XML-RPC introspection functions ``system.listMethods``, " +"``system.methodHelp`` and ``system.methodSignature``." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:132 +msgid "Registers the XML-RPC multicall function system.multicall." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:137 +msgid "" +"An attribute value that must be a tuple listing valid path portions of the " +"URL for receiving XML-RPC requests. Requests posted to other paths will " +"result in a 404 \"no such page\" HTTP error. If this tuple is empty, all " +"paths will be considered valid. The default value is ``('/', '/RPC2')``." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:146 +msgid "SimpleXMLRPCServer Example" +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:147 +msgid "Server code::" +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:181 +msgid "" +"The following client code will call the methods made available by the " +"preceding server::" +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:194 +msgid "" +":meth:`register_function` can also be used as a decorator. The previous " +"server example can register functions in a decorator way::" +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:225 +msgid "" +"The following example included in the :file:`Lib/xmlrpc/server.py` module " +"shows a server allowing dotted names and registering a multicall function." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:230 +msgid "" +"Enabling the *allow_dotted_names* option allows intruders to access your " +"module's global variables and may allow intruders to execute arbitrary code " +"on your machine. Only use this example only within a secure, closed network." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:259 +msgid "This ExampleService demo can be invoked from the command line::" +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:264 +msgid "" +"The client that interacts with the above server is included in `Lib/xmlrpc/" +"client.py`::" +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:284 +msgid "" +"This client which interacts with the demo XMLRPC server can be invoked as::" +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:290 +msgid "CGIXMLRPCRequestHandler" +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:292 +msgid "" +"The :class:`CGIXMLRPCRequestHandler` class can be used to handle XML-RPC " +"requests sent to Python CGI scripts." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:313 +msgid "" +"Register an object which is used to expose method names which have not been " +"registered using :meth:`register_function`. If instance contains a :meth:" +"`_dispatch` method, it is called with the requested method name and the " +"parameters from the request; the return value is returned to the client as " +"the result. If instance does not have a :meth:`_dispatch` method, it is " +"searched for an attribute matching the name of the requested method; if the " +"requested method name contains periods, each component of the method name " +"is searched for individually, with the effect that a simple hierarchical " +"search is performed. The value found from this search is then called with " +"the parameters from the request, and the return value is passed back to " +"the client." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:327 +msgid "" +"Register the XML-RPC introspection functions ``system.listMethods``, " +"``system.methodHelp`` and ``system.methodSignature``." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:333 +msgid "Register the XML-RPC multicall function ``system.multicall``." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:338 +msgid "" +"Handle an XML-RPC request. If *request_text* is given, it should be the POST " +"data provided by the HTTP server, otherwise the contents of stdin will be " +"used." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:341 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/library/xmlrpc.server.rst:357 +msgid "Documenting XMLRPC server" +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:359 +msgid "" +"These classes extend the above classes to serve HTML documentation in " +"response to HTTP GET requests. Servers can either be free standing, using :" +"class:`DocXMLRPCServer`, or embedded in a CGI environment, using :class:" +"`DocCGIXMLRPCRequestHandler`." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:369 +msgid "" +"Create a new server instance. All parameters have the same meaning as for :" +"class:`SimpleXMLRPCServer`; *requestHandler* defaults to :class:" +"`DocXMLRPCRequestHandler`." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:379 +msgid "Create a new instance to handle XML-RPC requests in a CGI environment." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:384 +msgid "" +"Create a new request handler instance. This request handler supports XML-RPC " +"POST requests, documentation GET requests, and modifies logging so that the " +"*logRequests* parameter to the :class:`DocXMLRPCServer` constructor " +"parameter is honored." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:393 +msgid "DocXMLRPCServer Objects" +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:395 +msgid "" +"The :class:`DocXMLRPCServer` class is derived from :class:" +"`SimpleXMLRPCServer` and provides a means of creating self-documenting, " +"stand alone XML-RPC servers. HTTP POST requests are handled as XML-RPC " +"method calls. HTTP GET requests are handled by generating pydoc-style HTML " +"documentation. This allows a server to provide its own web-based " +"documentation." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:404 ../Doc/library/xmlrpc.server.rst:432 +msgid "" +"Set the title used in the generated HTML documentation. This title will be " +"used inside the HTML \"title\" element." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:410 ../Doc/library/xmlrpc.server.rst:438 +msgid "" +"Set the name used in the generated HTML documentation. This name will appear " +"at the top of the generated documentation inside a \"h1\" element." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:416 ../Doc/library/xmlrpc.server.rst:444 +msgid "" +"Set the description used in the generated HTML documentation. This " +"description will appear as a paragraph, below the server name, in the " +"documentation." +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:421 +msgid "DocCGIXMLRPCRequestHandler" +msgstr "" + +#: ../Doc/library/xmlrpc.server.rst:423 +msgid "" +"The :class:`DocCGIXMLRPCRequestHandler` class is derived from :class:" +"`CGIXMLRPCRequestHandler` and provides a means of creating self-documenting, " +"XML-RPC CGI scripts. HTTP POST requests are handled as XML-RPC method calls. " +"HTTP GET requests are handled by generating pydoc-style HTML documentation. " +"This allows a server to provide its own web-based documentation." +msgstr "" diff --git a/library/zipapp.po b/library/zipapp.po new file mode 100644 index 000000000..30a9dae21 --- /dev/null +++ b/library/zipapp.po @@ -0,0 +1,773 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2019-08-06 09:57+0200\n" +"Last-Translator: Zepmanbc \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" + +#: ../Doc/library/zipapp.rst:2 +msgid ":mod:`zipapp` --- Manage executable Python zip archives" +msgstr ":mod:`zipapp` — Gestion des archives zip exécutables Python" + +#: ../Doc/library/zipapp.rst:9 +msgid "**Source code:** :source:`Lib/zipapp.py`" +msgstr "**Code source :** :source:`Lib/zipapp.py`" + +#: ../Doc/library/zipapp.rst:16 +msgid "" +"This module provides tools to manage the creation of zip files containing " +"Python code, which can be :ref:`executed directly by the Python interpreter " +"`. The module provides both a :ref:`zipapp-" +"command-line-interface` and a :ref:`zipapp-python-api`." +msgstr "" +"Ce module fournit des outils pour gérer la création de fichiers zip " +"contenant du code Python, qui peuvent être :ref:`exécutés directement par " +"l'interpréteur Python `. Le module fournit à la " +"fois une interface de ligne de commande :ref:`zipapp-command-line-interface` " +"et une interface :ref:`zipapp-python-api`." + +#: ../Doc/library/zipapp.rst:23 +msgid "Basic Example" +msgstr "Exemple de base" + +#: ../Doc/library/zipapp.rst:25 +msgid "" +"The following example shows how the :ref:`zipapp-command-line-interface` can " +"be used to create an executable archive from a directory containing Python " +"code. When run, the archive will execute the ``main`` function from the " +"module ``myapp`` in the archive." +msgstr "" +"L'exemple suivant montre comment l'interface de ligne de commande :ref:" +"`zipapp-command-line-interface` peut être utilisée pour créer une archive " +"exécutable depuis un répertoire contenant du code Python. Lors de " +"l'exécution, l'archive exécutera la fonction ``main`` du module ``myapp`` " +"dans l'archive." + +#: ../Doc/library/zipapp.rst:40 +msgid "Command-Line Interface" +msgstr "Interface en ligne de commande" + +#: ../Doc/library/zipapp.rst:42 +msgid "" +"When called as a program from the command line, the following form is used:" +msgstr "" +"Lorsqu'il est appelé en tant que programme à partir de la ligne de commande, " +"la syntaxe suivante est utilisée :" + +#: ../Doc/library/zipapp.rst:48 +msgid "" +"If *source* is a directory, this will create an archive from the contents of " +"*source*. If *source* is a file, it should be an archive, and it will be " +"copied to the target archive (or the contents of its shebang line will be " +"displayed if the --info option is specified)." +msgstr "" +"Si *source* est un répertoire, une archive est créée à partir du contenu de " +"*source*. Si *source* est un fichier, ce doit être une archive et il est " +"copié dans l'archive cible (ou le contenu de sa ligne `shebang` est affiché " +"si l'option ``--info`` est indiquée)." + +#: ../Doc/library/zipapp.rst:53 +msgid "The following options are understood:" +msgstr "Les options suivantes sont disponibles :" + +#: ../Doc/library/zipapp.rst:59 +msgid "" +"Write the output to a file named *output*. If this option is not specified, " +"the output filename will be the same as the input *source*, with the " +"extension ``.pyz`` added. If an explicit filename is given, it is used as " +"is (so a ``.pyz`` extension should be included if required)." +msgstr "" +"Écrit la sortie dans un fichier nommé *output*. Si cette option n'est pas " +"spécifiée, le nom du fichier de sortie sera le même que celui de l'entrée " +"*source*, avec l'extension ``.pyz``. Si un nom de fichier explicite est " +"donné, il est utilisé tel quel (une extension ``.pyz`` doit donc être " +"incluse si nécessaire)." + +#: ../Doc/library/zipapp.rst:64 +msgid "" +"An output filename must be specified if the *source* is an archive (and in " +"that case, *output* must not be the same as *source*)." +msgstr "" +"Un nom de fichier de sortie doit être spécifié si la *source* est une " +"archive (et, dans ce cas, la *sortie* ne doit pas être la même que la " +"*source*)." + +#: ../Doc/library/zipapp.rst:69 +msgid "" +"Add a ``#!`` line to the archive specifying *interpreter* as the command to " +"run. Also, on POSIX, make the archive executable. The default is to write " +"no ``#!`` line, and not make the file executable." +msgstr "" +"Ajoute une ligne ``#!`` à l'archive en spécifiant *interpreter* comme " +"commande à exécuter. Aussi, sur un système POSIX, cela rend l'archive " +"exécutable. Le comportement par défaut est de ne pas écrire la ligne ``#!`` " +"et de ne pas rendre le fichier exécutable." + +#: ../Doc/library/zipapp.rst:75 +msgid "" +"Write a ``__main__.py`` file to the archive that executes *mainfn*. The " +"*mainfn* argument should have the form \"pkg.mod:fn\", where \"pkg.mod\" is " +"a package/module in the archive, and \"fn\" is a callable in the given " +"module. The ``__main__.py`` file will execute that callable." +msgstr "" +"Écrit un fichier ``__main__.py`` dans l'archive qui exécute *mainfn*. " +"L'argument *mainfn* est de la forme « *pkg.mod:fn* », où « *pkg.mod* » est " +"un paquet/module dans l'archive, et « *fn* » est un appelable dans le module " +"donné. Le fichier ``__main__.py`` réalise cet appel." + +#: ../Doc/library/zipapp.rst:80 +msgid ":option:`--main` cannot be specified when copying an archive." +msgstr "" +":option:`--main` ne peut pas être spécifié lors de la copie d'une archive." + +#: ../Doc/library/zipapp.rst:84 +msgid "" +"Compress files with the deflate method, reducing the size of the output " +"file. By default, files are stored uncompressed in the archive." +msgstr "" +"Compresse les fichiers avec la méthode *deflate*, réduisant ainsi la taille " +"du fichier de sortie. Par défaut, les fichiers sont stockés non compressés " +"dans l'archive." + +#: ../Doc/library/zipapp.rst:87 +msgid ":option:`--compress` has no effect when copying an archive." +msgstr ":option:`--compress` n'a aucun effet lors de la copie d'une archive." + +#: ../Doc/library/zipapp.rst:93 +msgid "" +"Display the interpreter embedded in the archive, for diagnostic purposes. " +"In this case, any other options are ignored and SOURCE must be an archive, " +"not a directory." +msgstr "" +"Affiche l'interpréteur intégré dans l'archive, à des fins de diagnostic. " +"Dans ce cas, toutes les autres options sont ignorées et SOURCE doit être une " +"archive et non un répertoire." + +#: ../Doc/library/zipapp.rst:99 +msgid "Print a short usage message and exit." +msgstr "Affiche un court message d'aide et quitte." + +#: ../Doc/library/zipapp.rst:105 +msgid "Python API" +msgstr "API Python" + +#: ../Doc/library/zipapp.rst:107 +msgid "The module defines two convenience functions:" +msgstr "Ce module définit deux fonctions utilitaires :" + +#: ../Doc/library/zipapp.rst:112 +msgid "" +"Create an application archive from *source*. The source can be any of the " +"following:" +msgstr "" +"Crée une archive d'application à partir de *source*. La source peut être de " +"natures suivantes :" + +#: ../Doc/library/zipapp.rst:115 +msgid "" +"The name of a directory, or a :term:`path-like object` referring to a " +"directory, in which case a new application archive will be created from the " +"content of that directory." +msgstr "" +"Le nom d'un répertoire, ou un :term:`path-like object` se référant à un " +"répertoire ; dans ce cas, une nouvelle archive d'application sera créée à " +"partir du contenu de ce répertoire." + +#: ../Doc/library/zipapp.rst:118 +msgid "" +"The name of an existing application archive file, or a :term:`path-like " +"object` referring to such a file, in which case the file is copied to the " +"target (modifying it to reflect the value given for the *interpreter* " +"argument). The file name should include the ``.pyz`` extension, if required." +msgstr "" +"Le nom d'un fichier d'archive d'application existant, ou un :term:`path-like " +"object` se référant à un tel fichier ; dans ce cas, le fichier est copié sur " +"la cible (en le modifiant pour refléter la valeur donnée à l'argument " +"*interpreter*). Le nom du fichier doit inclure l'extension ``.pyz``, si " +"nécessaire." + +#: ../Doc/library/zipapp.rst:122 +msgid "" +"A file object open for reading in bytes mode. The content of the file " +"should be an application archive, and the file object is assumed to be " +"positioned at the start of the archive." +msgstr "" +"Un objet fichier ouvert pour la lecture en mode binaire. Le contenu du " +"fichier doit être une archive d'application et Python suppose que l'objet " +"fichier est positionné au début de l'archive." + +#: ../Doc/library/zipapp.rst:126 +msgid "" +"The *target* argument determines where the resulting archive will be written:" +msgstr "L'argument *target* détermine où l'archive résultante sera écrite :" + +#: ../Doc/library/zipapp.rst:129 +msgid "" +"If it is the name of a file, or a :term:`path-like object`, the archive will " +"be written to that file." +msgstr "" +"S'il s'agit d'un nom de fichier, ou d'un :term:`path-like object`, l'archive " +"sera écrite dans ce fichier." + +#: ../Doc/library/zipapp.rst:131 +msgid "" +"If it is an open file object, the archive will be written to that file " +"object, which must be open for writing in bytes mode." +msgstr "" +"S'il s'agit d'un objet fichier ouvert, l'archive sera écrite dans cet objet " +"fichier, qui doit être ouvert pour l'écriture en mode octets." + +#: ../Doc/library/zipapp.rst:133 +msgid "" +"If the target is omitted (or ``None``), the source must be a directory and " +"the target will be a file with the same name as the source, with a ``.pyz`` " +"extension added." +msgstr "" +"Si la cible est omise (ou ``None``), la source doit être un répertoire et la " +"cible sera un fichier portant le même nom que la source, avec une extension " +"``.pyz`` ajoutée." + +#: ../Doc/library/zipapp.rst:137 +msgid "" +"The *interpreter* argument specifies the name of the Python interpreter with " +"which the archive will be executed. It is written as a \"shebang\" line at " +"the start of the archive. On POSIX, this will be interpreted by the OS, and " +"on Windows it will be handled by the Python launcher. Omitting the " +"*interpreter* results in no shebang line being written. If an interpreter " +"is specified, and the target is a filename, the executable bit of the target " +"file will be set." +msgstr "" +"L'argument *interpreter* spécifie le nom de l'interpréteur Python avec " +"lequel l'archive sera exécutée. Il est écrit dans une ligne *shebang* au " +"début de l'archive. Sur un système POSIX, cela est interprété par le " +"système d'exploitation et, sur Windows, il sera géré par le lanceur Python. " +"L'omission de l'*interpreter* n'entraîne pas l'écriture d'une ligne " +"*shebang*. Si un interpréteur est spécifié et que la cible est un nom de " +"fichier, le bit exécutable du fichier cible sera mis à 1." + +#: ../Doc/library/zipapp.rst:145 +msgid "" +"The *main* argument specifies the name of a callable which will be used as " +"the main program for the archive. It can only be specified if the source is " +"a directory, and the source does not already contain a ``__main__.py`` " +"file. The *main* argument should take the form \"pkg.module:callable\" and " +"the archive will be run by importing \"pkg.module\" and executing the given " +"callable with no arguments. It is an error to omit *main* if the source is " +"a directory and does not contain a ``__main__.py`` file, as otherwise the " +"resulting archive would not be executable." +msgstr "" +"L'argument *main* spécifie le nom d'un appelable, utilisé comme programme " +"principal pour l'archive. Il ne peut être spécifié que si la source est un " +"répertoire et si la source ne contient pas déjà un fichier ``__main__.py``. " +"L'argument *main* doit prendre la forme ``pkg.module:callable`` et l'archive " +"sera exécutée en important ``pkg.module`` et en exécutant l'appelable donné " +"sans argument. Omettre *main* est une erreur si la source est un répertoire " +"et ne contient pas un fichier ``__main__.py`` car, dans ce cas, l'archive " +"résultante ne serait pas exécutable." + +#: ../Doc/library/zipapp.rst:155 +msgid "" +"The optional *filter* argument specifies a callback function that is passed " +"a Path object representing the path to the file being added (relative to the " +"source directory). It should return ``True`` if the file is to be added." +msgstr "" +"L'argument optionnel *filter* spécifie une fonction de rappel à laquelle on " +"passe un objet *Path* représentant le chemin du fichier à ajouter (par " +"rapport au répertoire source). Elle doit renvoyer ``True`` si le fichier " +"doit effectivement être ajouté." + +#: ../Doc/library/zipapp.rst:160 +msgid "" +"The optional *compressed* argument determines whether files are compressed. " +"If set to ``True``, files in the archive are compressed with the deflate " +"method; otherwise, files are stored uncompressed. This argument has no " +"effect when copying an existing archive." +msgstr "" +"L'argument optionnel *compressed* détermine si les fichiers doivent être " +"compressés. S'il vaut ``True``, les fichiers de l'archive sont compressés " +"avec l'algorithme *deflate* ; sinon, les fichiers sont stockés non " +"compressés. Cet argument n'a aucun effet lors de la copie d'une archive " +"existante." + +#: ../Doc/library/zipapp.rst:165 +msgid "" +"If a file object is specified for *source* or *target*, it is the caller's " +"responsibility to close it after calling create_archive." +msgstr "" +"Si un objet fichier est spécifié pour *source* ou *target*, il est de la " +"responsabilité de l'appelant de le fermer après avoir appelé " +"``create_archive``." + +#: ../Doc/library/zipapp.rst:168 +msgid "" +"When copying an existing archive, file objects supplied only need ``read`` " +"and ``readline``, or ``write`` methods. When creating an archive from a " +"directory, if the target is a file object it will be passed to the ``zipfile." +"ZipFile`` class, and must supply the methods needed by that class." +msgstr "" +"Lors de la copie d'une archive existante, les objets fichier fournis n'ont " +"besoin que des méthodes ``read`` et ``readline`` ou ``write``. Lors de la " +"création d'une archive à partir d'un répertoire, si la cible est un objet " +"fichier, elle sera passée à la classe ``zipfile.ZipFile`` et devra fournir " +"les méthodes nécessaires à cette classe." + +#: ../Doc/library/zipapp.rst:174 +msgid "Added the *filter* and *compressed* arguments." +msgstr "Ajout des arguments *filter* et *compressed*." + +#: ../Doc/library/zipapp.rst:179 +msgid "" +"Return the interpreter specified in the ``#!`` line at the start of the " +"archive. If there is no ``#!`` line, return :const:`None`. The *archive* " +"argument can be a filename or a file-like object open for reading in bytes " +"mode. It is assumed to be at the start of the archive." +msgstr "" +"Renvoie l'interpréteur spécifié dans la ligne ``#!`` au début de l'archive. " +"S'il n'y a pas de ligne ``#!``, renvoie :const:`None`. L'argument *archive* " +"peut être un nom de fichier ou un objet de type fichier ouvert à la lecture " +"en mode binaire. Python suppose qu'il est au début de l'archive." + +#: ../Doc/library/zipapp.rst:188 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/zipapp.rst:190 +msgid "Pack up a directory into an archive, and run it." +msgstr "Regroupe le contenu d'un répertoire dans une archive, puis l'exécute." + +#: ../Doc/library/zipapp.rst:198 +msgid "The same can be done using the :func:`create_archive` function::" +msgstr "" +"La même chose peut être faite en utilisant la fonction :func:" +"`create_archive` ::" + +#: ../Doc/library/zipapp.rst:203 +msgid "" +"To make the application directly executable on POSIX, specify an interpreter " +"to use." +msgstr "" +"Pour rendre l'application directement exécutable sur un système POSIX, " +"spécifiez un interpréteur à utiliser." + +#: ../Doc/library/zipapp.rst:212 +msgid "" +"To replace the shebang line on an existing archive, create a modified " +"archive using the :func:`create_archive` function::" +msgstr "" +"Pour remplacer la ligne *shebang* sur une archive existante, créez une " +"archive modifiée en utilisant la fonction :func:`create_archive` ::" + +#: ../Doc/library/zipapp.rst:218 +msgid "" +"To update the file in place, do the replacement in memory using a :class:" +"`BytesIO` object, and then overwrite the source afterwards. Note that there " +"is a risk when overwriting a file in place that an error will result in the " +"loss of the original file. This code does not protect against such errors, " +"but production code should do so. Also, this method will only work if the " +"archive fits in memory::" +msgstr "" +"Pour mettre à jour le fichier sans créer de copie locale, effectuez le " +"remplacement en mémoire à l'aide d'un objet :class:`BytesIO`, puis écrasez " +"la source par la suite. Notez qu'il y a un risque lors de l'écrasement d'un " +"fichier local qu'une erreur entraîne la perte du fichier original. Ce code " +"ne protège pas contre de telles erreurs, assurez-vous de prendre les mesures " +"nécessaires en production. De plus, cette méthode ne fonctionnera que si " +"l'archive tient en mémoire ::" + +#: ../Doc/library/zipapp.rst:236 +msgid "Specifying the Interpreter" +msgstr "Spécification de l'interprète" + +#: ../Doc/library/zipapp.rst:238 +msgid "" +"Note that if you specify an interpreter and then distribute your application " +"archive, you need to ensure that the interpreter used is portable. The " +"Python launcher for Windows supports most common forms of POSIX ``#!`` line, " +"but there are other issues to consider:" +msgstr "" +"Notez que si vous spécifiez un interpréteur et que vous distribuez ensuite " +"votre archive d'application, vous devez vous assurer que l'interpréteur " +"utilisé est portable. Le lanceur Python pour Windows gère la plupart des " +"formes courantes de la ligne POSIX ``#!``, mais il y a d'autres problèmes à " +"considérer :" + +#: ../Doc/library/zipapp.rst:243 +msgid "" +"If you use \"/usr/bin/env python\" (or other forms of the \"python\" " +"command, such as \"/usr/bin/python\"), you need to consider that your users " +"may have either Python 2 or Python 3 as their default, and write your code " +"to work under both versions." +msgstr "" +"Si vous utilisez ``/usr/bin/env python`` (ou d'autres formes de la commande " +"*python*, comme ``/usr/bin/python``), vous devez considérer que vos " +"utilisateurs peuvent avoir Python 2 ou Python 3 par défaut, et écrire votre " +"code pour fonctionner dans les deux versions." + +#: ../Doc/library/zipapp.rst:247 +msgid "" +"If you use an explicit version, for example \"/usr/bin/env python3\" your " +"application will not work for users who do not have that version. (This may " +"be what you want if you have not made your code Python 2 compatible)." +msgstr "" +"Si vous utilisez une version explicite, par exemple ``/usr/bin/env python3`` " +"votre application ne fonctionnera pas pour les utilisateurs qui n'ont pas " +"cette version. (C'est peut-être ce que vous voulez si vous n'avez pas rendu " +"votre code compatible Python 2)." + +#: ../Doc/library/zipapp.rst:250 +msgid "" +"There is no way to say \"python X.Y or later\", so be careful of using an " +"exact version like \"/usr/bin/env python3.4\" as you will need to change " +"your shebang line for users of Python 3.5, for example." +msgstr "" +"Il n'y a aucun moyen de dire « python X.Y ou supérieur » donc faites " +"attention si vous utilisez une version exacte comme ``/usr/bin/env " +"python3.4`` car vous devrez changer votre ligne *shebang* pour les " +"utilisateurs de Python 3.5, par exemple." + +#: ../Doc/library/zipapp.rst:254 +msgid "" +"Typically, you should use an \"/usr/bin/env python2\" or \"/usr/bin/env " +"python3\", depending on whether your code is written for Python 2 or 3." +msgstr "" +"Normalement, vous devriez utiliser un ``/usr/bin/env python2`` ou ``/usr/bin/" +"env python3``, selon que votre code soit écrit pour Python 2 ou 3." + +#: ../Doc/library/zipapp.rst:259 +msgid "Creating Standalone Applications with zipapp" +msgstr "Création d'applications autonomes avec *zipapp*" + +#: ../Doc/library/zipapp.rst:261 +msgid "" +"Using the :mod:`zipapp` module, it is possible to create self-contained " +"Python programs, which can be distributed to end users who only need to have " +"a suitable version of Python installed on their system. The key to doing " +"this is to bundle all of the application's dependencies into the archive, " +"along with the application code." +msgstr "" +"En utilisant le module :mod:`zipapp`, il est possible de créer des " +"programmes Python qui peuvent être distribués à des utilisateurs finaux dont " +"le seul pré-requis est d'avoir la bonne version de Python installée sur leur " +"ordinateur. Pour y arriver, la clé est de regrouper toutes les dépendances " +"de l'application dans l'archive avec le code source de l'application." + +#: ../Doc/library/zipapp.rst:267 +msgid "The steps to create a standalone archive are as follows:" +msgstr "Les étapes pour créer une archive autonome sont les suivantes :" + +#: ../Doc/library/zipapp.rst:269 +msgid "" +"Create your application in a directory as normal, so you have a ``myapp`` " +"directory containing a ``__main__.py`` file, and any supporting application " +"code." +msgstr "" +"Créez votre application dans un répertoire comme d'habitude, de manière à " +"avoir un répertoire ``myapp`` contenant un fichier ``__main__.py`` et tout " +"le code de l'application correspondante." + +#: ../Doc/library/zipapp.rst:273 +msgid "" +"Install all of your application's dependencies into the ``myapp`` directory, " +"using pip:" +msgstr "" +"Installez toutes les dépendances de votre application dans le répertoire " +"``myapp`` en utilisant *pip* :" + +#: ../Doc/library/zipapp.rst:280 +msgid "" +"(this assumes you have your project requirements in a ``requirements.txt`` " +"file - if not, you can just list the dependencies manually on the pip " +"command line)." +msgstr "" +"(ceci suppose que vous ayez vos dépendances de projet dans un fichier " +"``requirements.txt`` — sinon vous pouvez simplement lister les dépendances " +"manuellement sur la ligne de commande *pip*)." + +#: ../Doc/library/zipapp.rst:284 +msgid "" +"Optionally, delete the ``.dist-info`` directories created by pip in the " +"``myapp`` directory. These hold metadata for pip to manage the packages, and " +"as you won't be making any further use of pip they aren't required - " +"although it won't do any harm if you leave them." +msgstr "" +"Si nécessaire, supprimez les répertoires ``.dist-info`` créés par *pip* dans " +"le répertoire ``myapp``. Ceux-ci contiennent des métadonnées pour *pip* afin " +"de gérer les paquets et, comme vous n'utiliserez plus *pip*, ils ne sont " +"pas nécessaires (c'est sans conséquence si vous les laissez)." + +#: ../Doc/library/zipapp.rst:289 +msgid "Package the application using:" +msgstr "Regroupez le tout à l'aide de :" + +#: ../Doc/library/zipapp.rst:295 +msgid "" +"This will produce a standalone executable, which can be run on any machine " +"with the appropriate interpreter available. See :ref:`zipapp-specifying-the-" +"interpreter` for details. It can be shipped to users as a single file." +msgstr "" +"Cela produira un exécutable autonome qui peut être exécuté sur n'importe " +"quelle machine avec l'interpréteur approprié disponible. Voir :ref:`zipapp-" +"specifying-the-interpreter` pour plus de détails. Il peut être envoyé aux " +"utilisateurs sous la forme d'un seul fichier." + +#: ../Doc/library/zipapp.rst:299 +msgid "" +"On Unix, the ``myapp.pyz`` file is executable as it stands. You can rename " +"the file to remove the ``.pyz`` extension if you prefer a \"plain\" command " +"name. On Windows, the ``myapp.pyz[w]`` file is executable by virtue of the " +"fact that the Python interpreter registers the ``.pyz`` and ``.pyzw`` file " +"extensions when installed." +msgstr "" +"Sous Unix, le fichier ``myapp.pyz`` est exécutable tel quel. Vous pouvez " +"renommer le fichier pour supprimer l'extension ``.pyz`` si vous préférez un " +"nom de commande « simple ». Sous Windows, le fichier ``myapp.pyz[w]`` est " +"exécutable en vertu du fait que l'interpréteur Python est associé aux " +"extensions de fichier ``.pyz`` et ``.pyzw`` une fois installé." + +#: ../Doc/library/zipapp.rst:307 +msgid "Making a Windows executable" +msgstr "Création d'un exécutable Windows" + +#: ../Doc/library/zipapp.rst:309 +msgid "" +"On Windows, registration of the ``.pyz`` extension is optional, and " +"furthermore, there are certain places that don't recognise registered " +"extensions \"transparently\" (the simplest example is that ``subprocess." +"run(['myapp'])`` won't find your application - you need to explicitly " +"specify the extension)." +msgstr "" +"Sous Windows, l'association de Python à l'extension ``.pyz`` est facultative " +"et, de plus, il y a certains mécanismes qui ne reconnaissent pas les " +"extensions enregistrées de manière « transparente » (l'exemple le plus " +"simple est que ``subprocess.run(['myapp'])`` ne trouvera pas votre " +"application — vous devez explicitement spécifier l'extension)." + +#: ../Doc/library/zipapp.rst:315 +msgid "" +"On Windows, therefore, it is often preferable to create an executable from " +"the zipapp. This is relatively easy, although it does require a C " +"compiler. The basic approach relies on the fact that zipfiles can have " +"arbitrary data prepended, and Windows exe files can have arbitrary data " +"appended. So by creating a suitable launcher and tacking the ``.pyz`` file " +"onto the end of it, you end up with a single-file executable that runs your " +"application." +msgstr "" +"Sous Windows, il est donc souvent préférable de créer un exécutable à partir " +"du *zipapp*. C'est relativement facile bien que cela nécessite un " +"compilateur C. L'astuce repose sur le fait que les fichiers zip peuvent " +"avoir des données arbitraires au début et les fichiers *exe* de Windows " +"peuvent avoir des données arbitraires à la fin. Ainsi, en créant un lanceur " +"approprié et en rajoutant le fichier ``.pyz`` à sa fin, vous obtenez un " +"fichier unique qui exécute votre application." + +#: ../Doc/library/zipapp.rst:322 +msgid "A suitable launcher can be as simple as the following::" +msgstr "Un lanceur approprié peut être aussi simple que ce qui suit ::" + +#: ../Doc/library/zipapp.rst:347 +msgid "" +"If you define the ``WINDOWS`` preprocessor symbol, this will generate a GUI " +"executable, and without it, a console executable." +msgstr "" +"Si vous définissez le symbole du préprocesseur ``WINDOWS`` cela va générer " +"un exécutable IUG, et sans lui, un exécutable console." + +#: ../Doc/library/zipapp.rst:350 +msgid "" +"To compile the executable, you can either just use the standard MSVC command " +"line tools, or you can take advantage of the fact that distutils knows how " +"to compile Python source::" +msgstr "" +"Pour compiler l'exécutable, vous pouvez soit simplement utiliser les outils " +"standards en ligne de commande *MSVC*, soit profiter du fait que *distutils* " +"sait comment compiler les sources Python ::" + +#: ../Doc/library/zipapp.rst:377 +msgid "" +"The resulting launcher uses the \"Limited ABI\", so it will run unchanged " +"with any version of Python 3.x. All it needs is for Python (``python3." +"dll``) to be on the user's ``PATH``." +msgstr "" +"Le lanceur résultant utilise le « Limited ABI » donc il fonctionnera sans " +"changement avec n'importe quelle version de Python 3.x. Tout ce dont il a " +"besoin est que Python (``python3.dll``) soit sur le ``PATH`` de " +"l'utilisateur." + +#: ../Doc/library/zipapp.rst:381 +msgid "" +"For a fully standalone distribution, you can distribute the launcher with " +"your application appended, bundled with the Python \"embedded\" " +"distribution. This will run on any PC with the appropriate architecture (32 " +"bit or 64 bit)." +msgstr "" +"Pour une distribution entièrement autonome vous pouvez distribuer le lanceur " +"avec votre application en fin de fichier, empaqueté avec la distribution " +"*embedded* Python. Ceci fonctionnera sur n'importe quel ordinateur avec " +"l'architecture appropriée (32 bits ou 64 bits)." + +#: ../Doc/library/zipapp.rst:387 +msgid "Caveats" +msgstr "Mises en garde" + +#: ../Doc/library/zipapp.rst:389 +msgid "" +"There are some limitations to the process of bundling your application into " +"a single file. In most, if not all, cases they can be addressed without " +"needing major changes to your application." +msgstr "" +"Il y a certaines limites à l'empaquetage de votre application dans un seul " +"fichier. Dans la plupart des cas, si ce n'est tous, elles peuvent être " +"traitées sans qu'il soit nécessaire d'apporter de modifications majeures à " +"votre application." + +#: ../Doc/library/zipapp.rst:393 +msgid "" +"If your application depends on a package that includes a C extension, that " +"package cannot be run from a zip file (this is an OS limitation, as " +"executable code must be present in the filesystem for the OS loader to load " +"it). In this case, you can exclude that dependency from the zipfile, and " +"either require your users to have it installed, or ship it alongside your " +"zipfile and add code to your ``__main__.py`` to include the directory " +"containing the unzipped module in ``sys.path``. In this case, you will need " +"to make sure to ship appropriate binaries for your target architecture(s) " +"(and potentially pick the correct version to add to ``sys.path`` at runtime, " +"based on the user's machine)." +msgstr "" +"Si votre application dépend d'un paquet qui inclut une extension C, ce " +"paquet ne peut pas être exécuté à partir d'un fichier zip (c'est une " +"limitation du système d'exploitation, car le code exécutable doit être " +"présent dans le système de fichiers pour que le lanceur de l'OS puisse le " +"charger). Dans ce cas, vous pouvez exclure cette dépendance du fichier zip " +"et, soit demander à vos utilisateurs de l'installer, soit la fournir avec " +"votre fichier zip et ajouter du code à votre fichier ``__main__.py`` pour " +"inclure le répertoire contenant le module décompressé dans ``sys.path``. " +"Dans ce cas, vous devrez vous assurer d'envoyer les binaires appropriés pour " +"votre ou vos architecture(s) cible(s) (et éventuellement choisir la bonne " +"version à ajouter à ``sys.path`` au moment de l'exécution, basée sur la " +"machine de l'utilisateur)." + +#: ../Doc/library/zipapp.rst:403 +msgid "" +"If you are shipping a Windows executable as described above, you either need " +"to ensure that your users have ``python3.dll`` on their PATH (which is not " +"the default behaviour of the installer) or you should bundle your " +"application with the embedded distribution." +msgstr "" +"Si vous livrez un exécutable Windows comme décrit ci-dessus, vous devez vous " +"assurer que vos utilisateurs ont ``python3.dll`` sur leur PATH (ce qui n'est " +"pas le comportement par défaut de l'installateur) ou vous devez inclure la " +"distribution intégrée dans votre application." + +#: ../Doc/library/zipapp.rst:408 +msgid "" +"The suggested launcher above uses the Python embedding API. This means that " +"in your application, ``sys.executable`` will be your application, and *not* " +"a conventional Python interpreter. Your code and its dependencies need to " +"be prepared for this possibility. For example, if your application uses " +"the :mod:`multiprocessing` module, it will need to call :func:" +"`multiprocessing.set_executable` to let the module know where to find the " +"standard Python interpreter." +msgstr "" +"Le lanceur suggéré ci-dessus utilise l'API d'intégration Python. Cela " +"signifie que dans votre application ``sys.executable`` sera votre " +"application et *pas* un interpréteur Python classique. Votre code et ses " +"dépendances doivent être préparés à cette possibilité. Par exemple, si " +"votre application utilise le module :mod:`multiprocessing`, elle devra " +"appeler :func:`multiprocessing.set_executable` pour que le module sache où " +"trouver l'interpréteur Python standard." + +#: ../Doc/library/zipapp.rst:418 +msgid "The Python Zip Application Archive Format" +msgstr "Le format d'archive d'application Zip Python" + +#: ../Doc/library/zipapp.rst:420 +msgid "" +"Python has been able to execute zip files which contain a ``__main__.py`` " +"file since version 2.6. In order to be executed by Python, an application " +"archive simply has to be a standard zip file containing a ``__main__.py`` " +"file which will be run as the entry point for the application. As usual for " +"any Python script, the parent of the script (in this case the zip file) will " +"be placed on :data:`sys.path` and thus further modules can be imported from " +"the zip file." +msgstr "" +"Python est capable d'exécuter des fichiers zip qui contiennent un fichier " +"``__main__.py`` depuis la version 2.6. Pour être exécutée par Python, une " +"archive d'application doit simplement être un fichier zip standard contenant " +"un fichier ``__main__.py`` qui sera exécuté comme point d'entrée de " +"l'application. Comme d'habitude pour tout script Python, le parent du " +"script (dans ce cas le fichier zip) sera placé sur :data:`sys.path` et ainsi " +"d'autres modules pourront être importés depuis le fichier zip." + +#: ../Doc/library/zipapp.rst:427 +msgid "" +"The zip file format allows arbitrary data to be prepended to a zip file. " +"The zip application format uses this ability to prepend a standard POSIX " +"\"shebang\" line to the file (``#!/path/to/interpreter``)." +msgstr "" +"Le format de fichier zip permet d'ajouter des données arbitraires à un " +"fichier zip. Le format de l'application zip utilise cette possibilité pour " +"préfixer une ligne *shebang* POSIX standard dans le fichier (``#!/path/to/" +"interpreter``)." + +#: ../Doc/library/zipapp.rst:431 +msgid "Formally, the Python zip application format is therefore:" +msgstr "Formellement, le format d'application zip de Python est donc :" + +#: ../Doc/library/zipapp.rst:433 +msgid "" +"An optional shebang line, containing the characters ``b'#!'`` followed by an " +"interpreter name, and then a newline (``b'\\n'``) character. The " +"interpreter name can be anything acceptable to the OS \"shebang\" " +"processing, or the Python launcher on Windows. The interpreter should be " +"encoded in UTF-8 on Windows, and in :func:`sys.getfilesystemencoding()` on " +"POSIX." +msgstr "" +"Une ligne *shebang* facultative, contenant les caractères ``b'#!`` suivis " +"d'un nom d’interpréteur, puis un caractère fin de ligne (``b'\\n'``). Le " +"nom de l'interpréteur peut être n'importe quoi acceptable pour le traitement " +"*shebang* de l'OS, ou le lanceur Python sous Windows. L'interpréteur doit " +"être encodé en UTF-8 sous Windows, et en :func:`sys.getfilesystemencoding()` " +"sur POSIX." + +#: ../Doc/library/zipapp.rst:438 +msgid "" +"Standard zipfile data, as generated by the :mod:`zipfile` module. The " +"zipfile content *must* include a file called ``__main__.py`` (which must be " +"in the \"root\" of the zipfile - i.e., it cannot be in a subdirectory). The " +"zipfile data can be compressed or uncompressed." +msgstr "" +"Des données *zipfile* standards, telles que générées par le module :mod:" +"`zipfile`. Le contenu du fichier zip *doit* inclure un fichier appelé " +"``__main__.py`` (qui doit se trouver à la racine du fichier zip — c'est-à-" +"dire qu'il ne peut se trouver dans un sous-répertoire). Les données du " +"fichier zip peuvent être compressées ou non." + +#: ../Doc/library/zipapp.rst:443 +msgid "" +"If an application archive has a shebang line, it may have the executable bit " +"set on POSIX systems, to allow it to be executed directly." +msgstr "" +"Si une archive d'application a une ligne *shebang*, elle peut avoir le bit " +"exécutable activé sur les systèmes POSIX, pour lui permettre d'être exécutée " +"directement." + +#: ../Doc/library/zipapp.rst:446 +msgid "" +"There is no requirement that the tools in this module are used to create " +"application archives - the module is a convenience, but archives in the " +"above format created by any means are acceptable to Python." +msgstr "" +"Vous pouvez créer des archives d'applications sans utiliser les outils de ce " +"module — le module existe pour faciliter les choses, mais les archives, " +"créées par n'importe quel moyen tout en respectant le format ci-dessus, sont " +"valides pour Python." diff --git a/library/zipfile.po b/library/zipfile.po new file mode 100644 index 000000000..51ca08399 --- /dev/null +++ b/library/zipfile.po @@ -0,0 +1,1128 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-02-28 09:13+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/library/zipfile.rst:2 +msgid ":mod:`zipfile` --- Work with ZIP archives" +msgstr ":mod:`zipfile` — Travailler avec des archives ZIP" + +#: ../Doc/library/zipfile.rst:10 +msgid "**Source code:** :source:`Lib/zipfile.py`" +msgstr "**Code source :** :source:`Lib/zipfile.py`" + +#: ../Doc/library/zipfile.rst:14 +msgid "" +"The ZIP file format is a common archive and compression standard. This " +"module provides tools to create, read, write, append, and list a ZIP file. " +"Any advanced use of this module will require an understanding of the format, " +"as defined in `PKZIP Application Note`_." +msgstr "" +"Le format de fichier ZIP est une archive et un standard de compression " +"couramment utilisés. Ce module fournit des outils pour créer, écrire, " +"ajouter des données à et lister un fichier ZIP. L'utilisation avancée de ce " +"module requiert une certaine compréhension du format, comme défini dans " +"`PKZIP Application Note`_." + +#: ../Doc/library/zipfile.rst:19 +msgid "" +"This module does not currently handle multi-disk ZIP files. It can handle " +"ZIP files that use the ZIP64 extensions (that is ZIP files that are more " +"than 4 GiB in size). It supports decryption of encrypted files in ZIP " +"archives, but it currently cannot create an encrypted file. Decryption is " +"extremely slow as it is implemented in native Python rather than C." +msgstr "" +"Ce module ne gère pas pour l'instant les fichiers ZIP multi-disque. Il gère " +"les fichiers ZIP qui utilisent les extensions ZIP64 (c'est-à-dire des " +"fichiers d'une taille supérieure à 4 Go). Il gère le chiffrement d'archives " +"ZIP chiffrées, mais il ne peut pas pour l'instant créer de fichier chiffré. " +"Le déchiffrement est extrêmement lent car il est implémenté uniquement en " +"Python plutôt qu'en C." + +#: ../Doc/library/zipfile.rst:26 +msgid "The module defines the following items:" +msgstr "Le module définit les éléments suivants :" + +#: ../Doc/library/zipfile.rst:30 +msgid "The error raised for bad ZIP files." +msgstr "Erreur levée en cas de fichier ZIP non valide." + +#: ../Doc/library/zipfile.rst:37 +msgid "" +"Alias of :exc:`BadZipFile`, for compatibility with older Python versions." +msgstr "" +"Alias de :exc:`BadZipFile`, pour la compatibilité avec les versions de " +"Python précédentes." + +#: ../Doc/library/zipfile.rst:44 +msgid "" +"The error raised when a ZIP file would require ZIP64 functionality but that " +"has not been enabled." +msgstr "" +"Erreur levée quand un fichier ZIP nécessite la fonctionnalité ZIP64 mais " +"qu'elle n'a pas été activée." + +#: ../Doc/library/zipfile.rst:51 +msgid "" +"The class for reading and writing ZIP files. See section :ref:`zipfile-" +"objects` for constructor details." +msgstr "" +"Classe pour lire et écrire des fichiers ZIP. Voir la section :ref:`zipfile-" +"objects` pour les détails du constructeur." + +#: ../Doc/library/zipfile.rst:58 +msgid "Class for creating ZIP archives containing Python libraries." +msgstr "Classe pour créer des archives ZIP contenant des bibliothèques Python." + +#: ../Doc/library/zipfile.rst:63 +msgid "" +"Class used to represent information about a member of an archive. Instances " +"of this class are returned by the :meth:`.getinfo` and :meth:`.infolist` " +"methods of :class:`ZipFile` objects. Most users of the :mod:`zipfile` " +"module will not need to create these, but only use those created by this " +"module. *filename* should be the full name of the archive member, and " +"*date_time* should be a tuple containing six fields which describe the time " +"of the last modification to the file; the fields are described in section :" +"ref:`zipinfo-objects`." +msgstr "" +"Classe utilisée pour représenter les informations d'un membre d'une archive. " +"Les instances de cette classe sont retournées par les méthodes :meth:`." +"getinfo` et :meth:`.infolist` des objets :class:`ZipFile`. La plupart des " +"utilisateurs du module :mod:`zipfile` n'ont pas besoin de créer ces " +"instances mais d'utiliser celles créées par ce module. *filename* doit être " +"le nom complet du membre de l'archive et *date_time* doit être un *tuple* " +"contenant six champs qui décrit la date de dernière modification du " +"fichier ; les champs sont décrits dans la section :ref:`zipinfo-objects`." + +#: ../Doc/library/zipfile.rst:75 +msgid "" +"Returns ``True`` if *filename* is a valid ZIP file based on its magic " +"number, otherwise returns ``False``. *filename* may be a file or file-like " +"object too." +msgstr "" +"Retourne ``True`` si *filename* est un fichier ZIP valide basé sur son " +"nombre magique, sinon retourne ``False``. *filename* peut aussi être un " +"fichier ou un objet fichier-compatible." + +#: ../Doc/library/zipfile.rst:78 +msgid "Support for file and file-like objects." +msgstr "Gestion des objets fichier et fichier-compatibles." + +#: ../Doc/library/zipfile.rst:84 +msgid "The numeric constant for an uncompressed archive member." +msgstr "Constante numérique pour un membre d'une archive décompressée." + +#: ../Doc/library/zipfile.rst:89 +msgid "" +"The numeric constant for the usual ZIP compression method. This requires " +"the :mod:`zlib` module." +msgstr "" +"Constante numérique pour la méthode habituelle de compression de ZIP. " +"Nécessite le module :mod:`zlib`." + +#: ../Doc/library/zipfile.rst:95 +msgid "" +"The numeric constant for the BZIP2 compression method. This requires the :" +"mod:`bz2` module." +msgstr "" +"Constante numérique pour la méthode de compressions BZIP2. Nécessite le " +"module :mod:`bz2`." + +#: ../Doc/library/zipfile.rst:102 +msgid "" +"The numeric constant for the LZMA compression method. This requires the :" +"mod:`lzma` module." +msgstr "" +"Constante numérique pour la méthode de compressions LZMA. Nécessite le " +"module :mod:`lzma`." + +#: ../Doc/library/zipfile.rst:109 +msgid "" +"The ZIP file format specification has included support for bzip2 compression " +"since 2001, and for LZMA compression since 2006. However, some tools " +"(including older Python releases) do not support these compression methods, " +"and may either refuse to process the ZIP file altogether, or fail to extract " +"individual files." +msgstr "" +"La spécification du format de fichier ZIP inclut la gestion de la " +"compression BZIP2 depuis 2001 et LZMA depuis 2006. Néanmoins, certains " +"outils (comme certaines versions de Python) ne gèrent pas ces méthodes de " +"compression et peuvent soit totalement refuser de traiter le fichier ZIP " +"soit ne pas extraire certains fichiers." + +#: ../Doc/library/zipfile.rst:120 +msgid "`PKZIP Application Note`_" +msgstr "`PKZIP Application Note`_" + +#: ../Doc/library/zipfile.rst:119 +msgid "" +"Documentation on the ZIP file format by Phil Katz, the creator of the format " +"and algorithms used." +msgstr "" +"Documentation sur le format de fichier ZIP par Phil Katz, créateur du format " +"et des algorithmes utilisés." + +#: ../Doc/library/zipfile.rst:123 +msgid "`Info-ZIP Home Page `_" +msgstr "`Info-ZIP Home Page `_" + +#: ../Doc/library/zipfile.rst:123 +msgid "" +"Information about the Info-ZIP project's ZIP archive programs and " +"development libraries." +msgstr "" +"Informations sur les programmes et les bibliothèques de développement " +"d'archivage ZIP du projet Info-ZIP." + +#: ../Doc/library/zipfile.rst:130 +msgid "ZipFile Objects" +msgstr "Objets ZipFile" + +#: ../Doc/library/zipfile.rst:136 +msgid "" +"Open a ZIP file, where *file* can be a path to a file (a string), a file-" +"like object or a :term:`path-like object`." +msgstr "" +"Ouvre un fichier ZIP, où *file* peut être un chemin vers un fichier (une " +"chaîne de caractères), un objet fichier-compatible ou un objet chemin-" +"compatible :term:`path-like object`." + +#: ../Doc/library/zipfile.rst:139 +msgid "" +"The *mode* parameter should be ``'r'`` to read an existing file, ``'w'`` to " +"truncate and write a new file, ``'a'`` to append to an existing file, or " +"``'x'`` to exclusively create and write a new file. If *mode* is ``'x'`` and " +"*file* refers to an existing file, a :exc:`FileExistsError` will be raised. " +"If *mode* is ``'a'`` and *file* refers to an existing ZIP file, then " +"additional files are added to it. If *file* does not refer to a ZIP file, " +"then a new ZIP archive is appended to the file. This is meant for adding a " +"ZIP archive to another file (such as :file:`python.exe`). If *mode* is " +"``'a'`` and the file does not exist at all, it is created. If *mode* is " +"``'r'`` or ``'a'``, the file should be seekable." +msgstr "" +"Le paramètre *mode* doit être ``r`` pour lire un fichier existant, ``w`` " +"pour tronquer et écrire un nouveau fichier, ``a`` pour ajouter des données à " +"la fin d'un fichier existant ou ``x`` pour créer et écrire exclusivement un " +"nouveau fichier. Si *mode* est à ``x`` et *file* fait référence à un fichier " +"existant, une exception :exc:`FileExistsError` est levée. Si *mode* est à " +"``a`` et *file* fait référence à un fichier ZIP existant, alors des fichiers " +"supplémentaires y seront ajoutés. Si *file* ne fait pas référence à un " +"fichier ZIP, alors une nouvelle archive ZIP est ajoutée au fichier, afin de " +"prévoir le cas d'ajouter une archive ZIP à un autre fichier (comme par " +"exemple :file:`python.exe`). Si *mode* est à ``r`` ou ``a``, le fichier doit " +"être navigable." + +#: ../Doc/library/zipfile.rst:151 +msgid "" +"*compression* is the ZIP compression method to use when writing the archive, " +"and should be :const:`ZIP_STORED`, :const:`ZIP_DEFLATED`, :const:`ZIP_BZIP2` " +"or :const:`ZIP_LZMA`; unrecognized values will cause :exc:" +"`NotImplementedError` to be raised. If :const:`ZIP_DEFLATED`, :const:" +"`ZIP_BZIP2` or :const:`ZIP_LZMA` is specified but the corresponding module (:" +"mod:`zlib`, :mod:`bz2` or :mod:`lzma`) is not available, :exc:`RuntimeError` " +"is raised. The default is :const:`ZIP_STORED`." +msgstr "" +"Le paramètre *compression* est la méthode de compression ZIP à utiliser lors " +"de l'écriture de l'archive et doit être défini à :const:`ZIP_STORED`, :const:" +"`ZIP_DEFLATED`, :const:`ZIP_BZIP2` ou :const:`ZIP_LZMA` ; les valeurs non " +"reconnues lèveront une exception :exc:`NotImplementedError`. Si :const:" +"`ZIP_DEFLATED`, :const:`ZIP_BZIP2` ou :const:`ZIP_LZMA` est spécifié mais le " +"module correspondant (:mod:`zlib`, :mod:`bz2` ou :mod:`lzma`) n'est pas " +"disponible, une exception :exc:`RuntimeError` est levée. Est défini par " +"défaut à :const:`ZIP_STORED`." + +#: ../Doc/library/zipfile.rst:159 +msgid "" +"If *allowZip64* is ``True`` (the default) zipfile will create ZIP files that " +"use the ZIP64 extensions when the zipfile is larger than 4 GiB. If it is " +"``false`` :mod:`zipfile` will raise an exception when the ZIP file would " +"require ZIP64 extensions." +msgstr "" +"Si *allowZip64* est à ``True`` (par défaut), *zipfile* crée des fichiers ZIP " +"utilisant les extensions ZIP64 quand le fichier ZIP est plus grand que 4 Go. " +"S'il est à ``False``, :mod:`zipfile` lève une exception quand le fichier ZIP " +"nécessiterait les extensions ZIP64." + +#: ../Doc/library/zipfile.rst:164 +msgid "" +"The *compresslevel* parameter controls the compression level to use when " +"writing files to the archive. When using :const:`ZIP_STORED` or :const:" +"`ZIP_LZMA` it has no effect. When using :const:`ZIP_DEFLATED` integers ``0`` " +"through ``9`` are accepted (see :class:`zlib ` for more " +"information). When using :const:`ZIP_BZIP2` integers ``1`` through ``9`` are " +"accepted (see :class:`bz2 ` for more information)." +msgstr "" +"Le paramètre *compresslevel* contrôle le niveau de compression à utiliser " +"lors de l'écriture des fichiers dans l'archive. Avec :const:`ZIP_STORED` ou :" +"const:`ZIP_LZMA`, cela est sans effet. Avec :const:`ZIP_DEFLATED` les " +"entiers de ``0`` à ``9`` sont acceptés (voir :class:`zlib ` pour plus d'informations). Avec :const:`ZIP_BZIP2` les entiers " +"de ``1``à ``9`` sont acceptés (voir :class:`bz2 ` pour plus " +"d'informations)." + +#: ../Doc/library/zipfile.rst:172 +msgid "" +"If the file is created with mode ``'w'``, ``'x'`` or ``'a'`` and then :meth:" +"`closed ` without adding any files to the archive, the appropriate " +"ZIP structures for an empty archive will be written to the file." +msgstr "" +"Si le fichier est créé avec le mode ``'w'``, ``'x'`` ou ``'a'`` et ensuite :" +"meth:`fermé ` sans ajouter de fichiers à l'archive, la structure " +"appropriée pour un fichier archive ZIP vide sera écrite dans le fichier." + +#: ../Doc/library/zipfile.rst:176 +msgid "" +"ZipFile is also a context manager and therefore supports the :keyword:`with` " +"statement. In the example, *myzip* is closed after the :keyword:`!with` " +"statement's suite is finished---even if an exception occurs::" +msgstr "" +"*ZipFile* est aussi un gestionnaire de contexte et gère ainsi la " +"déclaration :keyword:`with`. Dans l'exemple, *myzip* est fermé à la fin de " +"la déclaration :keyword:`!with` --- même si une exception est levée ::" + +#: ../Doc/library/zipfile.rst:183 +msgid "Added the ability to use :class:`ZipFile` as a context manager." +msgstr "" +"Ajout de la possibilité d'utiliser :class:`ZipFile` comme un gestionnaire de " +"contexte." + +#: ../Doc/library/zipfile.rst:186 +msgid "Added support for :mod:`bzip2 ` and :mod:`lzma` compression." +msgstr "" +"Ajout de la gestion de la compression :mod:`bzip2 ` et :mod:`lzma`." + +#: ../Doc/library/zipfile.rst:189 ../Doc/library/zipfile.rst:464 +msgid "ZIP64 extensions are enabled by default." +msgstr "Les extensions ZIP64 sont activées par défaut." + +#: ../Doc/library/zipfile.rst:192 +msgid "" +"Added support for writing to unseekable streams. Added support for the " +"``'x'`` mode." +msgstr "" +"Ajout de la gestion de l'écriture dans des flux non navigables. Ajout de la " +"gestion du mode ``x``." + +#: ../Doc/library/zipfile.rst:196 +msgid "" +"Previously, a plain :exc:`RuntimeError` was raised for unrecognized " +"compression values." +msgstr "" +"Auparavant, une simple exception :exc:`RuntimeError` était levée pour des " +"valeurs de compression non reconnues." + +#: ../Doc/library/zipfile.rst:200 +msgid "The *file* parameter accepts a :term:`path-like object`." +msgstr "" +"Le paramètre *file* accepte un objet fichier-compatible :term:`path-like " +"object`." + +#: ../Doc/library/zipfile.rst:203 +msgid "Add the *compresslevel* parameter." +msgstr "Ajout du paramètre *compresslevel*." + +#: ../Doc/library/zipfile.rst:209 +msgid "" +"Close the archive file. You must call :meth:`close` before exiting your " +"program or essential records will not be written." +msgstr "" +"Ferme l'archive. Vous devez appeler :meth:`close` avant de terminer votre " +"programme ou des informations essentielles n'y seront pas enregistrées." + +#: ../Doc/library/zipfile.rst:215 +msgid "" +"Return a :class:`ZipInfo` object with information about the archive member " +"*name*. Calling :meth:`getinfo` for a name not currently contained in the " +"archive will raise a :exc:`KeyError`." +msgstr "" +"Retourne un objet :class:`ZipInfo` avec les informations du membre *name* de " +"l'archive. Appeler :meth:`getinfo` pour un nom non contenu dans l'archive " +"lève une exception :exc:`KeyError`." + +#: ../Doc/library/zipfile.rst:222 +msgid "" +"Return a list containing a :class:`ZipInfo` object for each member of the " +"archive. The objects are in the same order as their entries in the actual " +"ZIP file on disk if an existing archive was opened." +msgstr "" +"Retourne une liste contenant un objet :class:`ZipInfo` pour chaque membre de " +"l'archive. Les objets ont le même ordre que leurs entrées dans le fichier " +"ZIP présent sur disque s'il s'agissait d'une archive préexistante." + +#: ../Doc/library/zipfile.rst:229 +msgid "Return a list of archive members by name." +msgstr "Retourne une liste des membres de l'archive indexés par leur nom." + +#: ../Doc/library/zipfile.rst:234 +msgid "" +"Access a member of the archive as a binary file-like object. *name* can be " +"either the name of a file within the archive or a :class:`ZipInfo` object. " +"The *mode* parameter, if included, must be ``'r'`` (the default) or " +"``'w'``. *pwd* is the password used to decrypt encrypted ZIP files." +msgstr "" +"Accède un membre de l'archive en tant qu'objet fichier-compatible binaire. " +"*name* peut être soit le nom d'un fichier au sein de l'archive soit un " +"objet :class:`ZipInfo`. Le paramètre *mode*, si inclus, doit être défini à " +"``'r'`` (valeur par défaut) ou ``'w'``. *pwd* est le mot de passe utilisé " +"pour déchiffrer des fichiers ZIP chiffrés." + +#: ../Doc/library/zipfile.rst:239 +msgid "" +":meth:`~ZipFile.open` is also a context manager and therefore supports the :" +"keyword:`with` statement::" +msgstr "" +":meth:`~ZipFile.open` est aussi un gestionnaire de contexte et gère ainsi la " +"déclaration :keyword:`with` ::" + +#: ../Doc/library/zipfile.rst:246 +msgid "" +"With *mode* ``'r'`` the file-like object (``ZipExtFile``) is read-only and " +"provides the following methods: :meth:`~io.BufferedIOBase.read`, :meth:`~io." +"IOBase.readline`, :meth:`~io.IOBase.readlines`, :meth:`~io.IOBase.seek`, :" +"meth:`~io.IOBase.tell`, :meth:`__iter__`, :meth:`~iterator.__next__`. These " +"objects can operate independently of the ZipFile." +msgstr "" +"Avec *mode* à ``r`` l'objet fichier-compatible (``ZipExtFile``) est en " +"lecture seule et fournit les méthodes suivantes : :meth:`~io.BufferedIOBase." +"read`, :meth:`~io.IOBase.readline`, :meth:`~io.IOBase.readlines`, :meth:`~io." +"IOBase.seek`, :meth:`~io.IOBase.tell`, :meth:`__iter__`, et :meth:`~iterator." +"__next__`. Ces objets opèrent indépendamment du fichier ZIP *ZipFile*." + +#: ../Doc/library/zipfile.rst:253 +msgid "" +"With ``mode='w'``, a writable file handle is returned, which supports the :" +"meth:`~io.BufferedIOBase.write` method. While a writable file handle is " +"open, attempting to read or write other files in the ZIP file will raise a :" +"exc:`ValueError`." +msgstr "" +"Avec ``mode='w'`` un descripteur de fichier en écriture est retourné, gérant " +"la méthode :meth:`~io.BufferedIOBase.write`. Quand le descripteur d'un " +"fichier inscriptible est ouvert, tenter de lire ou écrire d'autres fichiers " +"dans le fichier ZIP lève une exception :exc:`ValueError`." + +#: ../Doc/library/zipfile.rst:258 +msgid "" +"When writing a file, if the file size is not known in advance but may exceed " +"2 GiB, pass ``force_zip64=True`` to ensure that the header format is capable " +"of supporting large files. If the file size is known in advance, construct " +"a :class:`ZipInfo` object with :attr:`~ZipInfo.file_size` set, and use that " +"as the *name* parameter." +msgstr "" +"Lors de l'écriture d'un fichier, si la taille du fichier n'est pas connue " +"mais peut être supérieure à 2 GiO, spécifiez ``force_zip64=True`` afin de " +"vous assurer que le format d'en-tête est capable de supporter des fichiers " +"volumineux. Si la taille du fichier est connue à l'avance, instanciez un " +"objet :class:`ZipInfo` avec l'attribut :attr:`~ZipInfo.file_size` défini et " +"utilisez-le en tant que paramètre *name*." + +#: ../Doc/library/zipfile.rst:266 +msgid "" +"The :meth:`.open`, :meth:`read` and :meth:`extract` methods can take a " +"filename or a :class:`ZipInfo` object. You will appreciate this when trying " +"to read a ZIP file that contains members with duplicate names." +msgstr "" +"Les méthodes :meth:`.open`, :meth:`read` et :meth:`extract` peuvent prendre " +"un nom de fichier ou un objet :class:`ZipInfo`. Cela est appréciable " +"lorsqu'on essaie de lire un fichier ZIP qui contient des membres avec des " +"noms en double." + +#: ../Doc/library/zipfile.rst:270 +msgid "" +"Removed support of ``mode='U'``. Use :class:`io.TextIOWrapper` for reading " +"compressed text files in :term:`universal newlines` mode." +msgstr "" +"Suppression de la gestion de ``mode='U'``. Utilisez :class:`io." +"TextIOWrapper` pour lire des fichiers texte compressés en mode :term:" +"`universal newlines`." + +#: ../Doc/library/zipfile.rst:274 +msgid "" +":meth:`open` can now be used to write files into the archive with the " +"``mode='w'`` option." +msgstr "" +"La méthode :meth:`open` peut désormais être utilisée pour écrire des " +"fichiers dans l'archive avec l'option ``mode='w'``." + +#: ../Doc/library/zipfile.rst:278 +msgid "" +"Calling :meth:`.open` on a closed ZipFile will raise a :exc:`ValueError`. " +"Previously, a :exc:`RuntimeError` was raised." +msgstr "" +"Appeler :meth:`.open` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." + +#: ../Doc/library/zipfile.rst:285 +msgid "" +"Extract a member from the archive to the current working directory; *member* " +"must be its full name or a :class:`ZipInfo` object. Its file information is " +"extracted as accurately as possible. *path* specifies a different directory " +"to extract to. *member* can be a filename or a :class:`ZipInfo` object. " +"*pwd* is the password used for encrypted files." +msgstr "" +"Extrait un membre de l'archive dans le répertoire courant ; *member* doit " +"être son nom complet ou un objet :class:`ZipInfo`. Ses propriétés de fichier " +"sont extraites le plus fidèlement possible. *path* spécifie un répertoire " +"différent où l'extraire. *member* peut être un nom de fichier ou un objet :" +"class:`ZipInfo`. *pwd* est le mot de passe utilisé pour les fichiers " +"chiffrés." + +#: ../Doc/library/zipfile.rst:291 +msgid "Returns the normalized path created (a directory or new file)." +msgstr "Retourne le chemin normalisé créé (un dossier ou un nouveau fichier)." + +#: ../Doc/library/zipfile.rst:295 +msgid "" +"If a member filename is an absolute path, a drive/UNC sharepoint and leading " +"(back)slashes will be stripped, e.g.: ``///foo/bar`` becomes ``foo/bar`` on " +"Unix, and ``C:\\foo\\bar`` becomes ``foo\\bar`` on Windows. And all ``\".." +"\"`` components in a member filename will be removed, e.g.: ``../../foo../../" +"ba..r`` becomes ``foo../ba..r``. On Windows illegal characters (``:``, " +"``<``, ``>``, ``|``, ``\"``, ``?``, and ``*``) replaced by underscore " +"(``_``)." +msgstr "" +"Si le nom de fichier d'un membre est un chemin absolu, le disque/partage UNC " +"et les (anti)slashes de départ seront supprimés, par exemple `///foo/bar`` " +"devient ``foo/bar`` sous Unix et ``C:\\foo\\bar`` devient ``foo\\bar`` sous " +"Windows. Et tous les composants ``\"..\"`` dans le nom de fichier d'un " +"membre seront supprimés, par exemple ``../../foo../../ba..r`` devient " +"``foo../ba..r``. Sous Windows les caractères illégaux (``:``, ``<``, ``>``, " +"``|``, ``\"``, ``?`` et ``*``) sont remplacés par un *underscore* (``_``)." + +#: ../Doc/library/zipfile.rst:303 +msgid "" +"Calling :meth:`extract` on a closed ZipFile will raise a :exc:`ValueError`. " +"Previously, a :exc:`RuntimeError` was raised." +msgstr "" +"Appeler :meth:`.extract` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." + +#: ../Doc/library/zipfile.rst:307 ../Doc/library/zipfile.rst:330 +msgid "The *path* parameter accepts a :term:`path-like object`." +msgstr "" +"Le paramètre *path* accepte un objet chemin-compatible :term:`path-like " +"object`." + +#: ../Doc/library/zipfile.rst:313 +msgid "" +"Extract all members from the archive to the current working directory. " +"*path* specifies a different directory to extract to. *members* is optional " +"and must be a subset of the list returned by :meth:`namelist`. *pwd* is the " +"password used for encrypted files." +msgstr "" +"Extrait tous les membres de l'archive dans le répertoire courant. *path* " +"spécifie un dossier de destination différent. *members* est optionnel et " +"doit être un sous-ensemble de la liste retournée par :meth:`namelist`. *pwd* " +"est le mot de passe utilisé pour les fichiers chiffrés." + +#: ../Doc/library/zipfile.rst:320 +msgid "" +"Never extract archives from untrusted sources without prior inspection. It " +"is possible that files are created outside of *path*, e.g. members that have " +"absolute filenames starting with ``\"/\"`` or filenames with two dots ``\".." +"\"``. This module attempts to prevent that. See :meth:`extract` note." +msgstr "" +"N'extrayez jamais d'archives depuis des sources non fiables sans inspection " +"préalable. Il est possible que des fichiers soient créés en dehors de " +"*path*, par exemple des membres qui ont des chemins de fichier absolus " +"commençant par ``\"/\"`` ou des noms de fichier avec deux points ``\".." +"\"``. Ce module essaie de prévenir ceci. Voir la note de :meth:`extract`." + +#: ../Doc/library/zipfile.rst:326 +msgid "" +"Calling :meth:`extractall` on a closed ZipFile will raise a :exc:" +"`ValueError`. Previously, a :exc:`RuntimeError` was raised." +msgstr "" +"Appeler :meth:`.extractall` sur un fichier ZipFile fermé lève une erreur :" +"exc:`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." + +#: ../Doc/library/zipfile.rst:336 +msgid "Print a table of contents for the archive to ``sys.stdout``." +msgstr "Affiche la liste des contenus de l'archive sur ``sys.stdout``." + +#: ../Doc/library/zipfile.rst:341 +msgid "Set *pwd* as default password to extract encrypted files." +msgstr "" +"Définit *pwd* comme mot de passe par défait pour extraire des fichiers " +"chiffrés." + +#: ../Doc/library/zipfile.rst:346 +msgid "" +"Return the bytes of the file *name* in the archive. *name* is the name of " +"the file in the archive, or a :class:`ZipInfo` object. The archive must be " +"open for read or append. *pwd* is the password used for encrypted files " +"and, if specified, it will override the default password set with :meth:" +"`setpassword`. Calling :meth:`read` on a ZipFile that uses a compression " +"method other than :const:`ZIP_STORED`, :const:`ZIP_DEFLATED`, :const:" +"`ZIP_BZIP2` or :const:`ZIP_LZMA` will raise a :exc:`NotImplementedError`. An " +"error will also be raised if the corresponding compression module is not " +"available." +msgstr "" +"Retourne les octets du fichier *name* dans l'archive. *name* est le nom du " +"fichier dans l'archive ou un objet :class:`ZipInfo`. L'archive doit être " +"ouverte en mode lecture ou ajout de données. *pwd* est le mot de passe " +"utilisé pour les fichiers chiffrés et, si spécifié, écrase le mot de passe " +"par défaut défini avec :meth:`setpassword`. Appeler :meth:`.read` sur un " +"fichier ZipFile qui utilise une méthode de compression différente de :const:" +"`ZIP_STORED`, :const:`ZIP_DEFLATED`, :const:`ZIP_BZIP2` ou :const:`ZIP_LZMA` " +"lève une erreur :exc:`NotImplementedError`. Une erreur est également levée " +"si le module de compression n'est pas disponible." + +#: ../Doc/library/zipfile.rst:355 +msgid "" +"Calling :meth:`read` on a closed ZipFile will raise a :exc:`ValueError`. " +"Previously, a :exc:`RuntimeError` was raised." +msgstr "" +"Appeler :meth:`.read` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." + +#: ../Doc/library/zipfile.rst:362 +msgid "" +"Read all the files in the archive and check their CRC's and file headers. " +"Return the name of the first bad file, or else return ``None``." +msgstr "" +"Lit tous les fichiers de l'archive et vérifie leurs sommes CRC et leurs en-" +"têtes. Retourne le nom du premier fichier mauvais ou retourne ``None`` sinon." + +#: ../Doc/library/zipfile.rst:365 +msgid "" +"Calling :meth:`testzip` on a closed ZipFile will raise a :exc:`ValueError`. " +"Previously, a :exc:`RuntimeError` was raised." +msgstr "" +"Appeler :meth:`testzip` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." + +#: ../Doc/library/zipfile.rst:373 +msgid "" +"Write the file named *filename* to the archive, giving it the archive name " +"*arcname* (by default, this will be the same as *filename*, but without a " +"drive letter and with leading path separators removed). If given, " +"*compress_type* overrides the value given for the *compression* parameter to " +"the constructor for the new entry. Similarly, *compresslevel* will override " +"the constructor if given. The archive must be open with mode ``'w'``, " +"``'x'`` or ``'a'``." +msgstr "" +"Écrit le fichier nommé *filename* dans l'archive, lui donnant *arcname* " +"comme nom dans l'archive (par défaut, *arcname* prend la même valeur que " +"*filename* mais sans lettre de disque et séparateur de chemin en première " +"position). Si donné, *compress_type* écrase la valeur donnée pour le " +"paramètre *compression* au constructeur pour la nouvelle entrée. De la même " +"manière, *compression* écrase le constructeur si donné. L'archive doit être " +"ouverte avec le mode ``'w'``, ``'x'`` ou ``'a'``." + +#: ../Doc/library/zipfile.rst:383 +msgid "" +"Archive names should be relative to the archive root, that is, they should " +"not start with a path separator." +msgstr "" +"Les noms d'archive doivent être relatifs à la racine de l'archive, c'est-à-" +"dire qu'ils ne doivent pas commencer par un séparateur de chemin." + +#: ../Doc/library/zipfile.rst:388 +msgid "" +"If ``arcname`` (or ``filename``, if ``arcname`` is not given) contains a " +"null byte, the name of the file in the archive will be truncated at the null " +"byte." +msgstr "" +"Si ``arcname`` (ou ``filename`` si ``arcname`` n'est pas donné) contient un " +"octet nul, le nom du fichier dans l'archive sera tronqué à l'octet nul." + +#: ../Doc/library/zipfile.rst:391 +msgid "" +"Calling :meth:`write` on a ZipFile created with mode ``'r'`` or a closed " +"ZipFile will raise a :exc:`ValueError`. Previously, a :exc:`RuntimeError` " +"was raised." +msgstr "" +"Appeler :meth:`.write` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." + +#: ../Doc/library/zipfile.rst:400 +msgid "" +"Write a file into the archive. The contents is *data*, which may be either " +"a :class:`str` or a :class:`bytes` instance; if it is a :class:`str`, it is " +"encoded as UTF-8 first. *zinfo_or_arcname* is either the file name it will " +"be given in the archive, or a :class:`ZipInfo` instance. If it's an " +"instance, at least the filename, date, and time must be given. If it's a " +"name, the date and time is set to the current date and time. The archive " +"must be opened with mode ``'w'``, ``'x'`` or ``'a'``." +msgstr "" +"Écrit un fichier dans l'archive. Le contenu est *data*, qui peut être soit " +"une instance de :class:`str` ou une instance de :class:`bytes` ; s'il s'agit " +"d'une :class:`str`, il est encodé en UTF-8 au préalable. *zinfo_or_arcname* " +"est soit le nom de fichier qu'il sera donné dans l'archive, soit une " +"instance de :class:`ZipInfo`. Si c'est une instance, au moins le nom de " +"fichier, la date et l'heure doivent être donnés. S'il s'agit d'un nom, la " +"date et l'heure sont définies sur la date et l'heure actuelles. L'archive " +"doit être ouverte avec le mode ``'w'``, ``'x'`` ou ``'a'``." + +#: ../Doc/library/zipfile.rst:408 +msgid "" +"If given, *compress_type* overrides the value given for the *compression* " +"parameter to the constructor for the new entry, or in the *zinfo_or_arcname* " +"(if that is a :class:`ZipInfo` instance). Similarly, *compresslevel* will " +"override the constructor if given." +msgstr "" +"Si donné, *compress_type* écrase la valeur donnée pour le paramètre " +"*compression* au constructeur de la nouvelle entrée ou dans le paramètre " +"*zinfo_or_arcname* (si c'est une instance de :class:`ZipInfo`). De la même " +"manière, *compresslevel* le constructeur si donné." + +#: ../Doc/library/zipfile.rst:415 +msgid "" +"When passing a :class:`ZipInfo` instance as the *zinfo_or_arcname* " +"parameter, the compression method used will be that specified in the " +"*compress_type* member of the given :class:`ZipInfo` instance. By default, " +"the :class:`ZipInfo` constructor sets this member to :const:`ZIP_STORED`." +msgstr "" +"Lorsque l'on passe une instance de :class:`ZipInfo` dans le paramètre " +"*zinfo_or_arcname*, la méthode de compression utilisée sera celle spécifiée " +"dans le membre *compress_type* de l'instance :class:`ZipInfo` donnée. Par " +"défaut, le constructeur de la classe :class:`ZipInfo` définit ce membre à :" +"const:`ZIP_STORED`." + +#: ../Doc/library/zipfile.rst:420 +msgid "The *compress_type* argument." +msgstr "L'argument *compress_type*." + +#: ../Doc/library/zipfile.rst:423 +msgid "" +"Calling :meth:`writestr` on a ZipFile created with mode ``'r'`` or a closed " +"ZipFile will raise a :exc:`ValueError`. Previously, a :exc:`RuntimeError` " +"was raised." +msgstr "" +"Appeler :meth:`.writestr` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." + +#: ../Doc/library/zipfile.rst:429 +msgid "The following data attributes are also available:" +msgstr "Les attributs suivants sont aussi disponibles :" + +#: ../Doc/library/zipfile.rst:433 +msgid "Name of the ZIP file." +msgstr "Nom du fichier ZIP." + +#: ../Doc/library/zipfile.rst:437 +msgid "" +"The level of debug output to use. This may be set from ``0`` (the default, " +"no output) to ``3`` (the most output). Debugging information is written to " +"``sys.stdout``." +msgstr "" +"Le niveau d'affichage de *debug* à utiliser. Peut être défini de ``0`` (par " +"défaut, pas d'affichage) à ``3`` (affichage le plus bavard). Les " +"informations de débogage sont affichées sur ``sys.stdout``." + +#: ../Doc/library/zipfile.rst:443 +msgid "" +"The comment associated with the ZIP file as a :class:`bytes` object. If " +"assigning a comment to a :class:`ZipFile` instance created with mode " +"``'w'``, ``'x'`` or ``'a'``, it should be no longer than 65535 bytes. " +"Comments longer than this will be truncated." +msgstr "" +"Le commentaire associé au fichier ZIP en tant qu'objet :class:`bytes`. Si " +"vous affectez un commentaire à une instance de :class:`ZipFile` créée avec " +"le mode ``'w'``, ``'x'`` ou ``'a'``, il ne doit pas dépasser 65535 octets. " +"Les commentaires plus longs que cette taille seront tronqués." + +#: ../Doc/library/zipfile.rst:453 +msgid "PyZipFile Objects" +msgstr "Objets *PyZipFile*" + +#: ../Doc/library/zipfile.rst:455 +msgid "" +"The :class:`PyZipFile` constructor takes the same parameters as the :class:" +"`ZipFile` constructor, and one additional parameter, *optimize*." +msgstr "" +"Le constructeur de :class:`PyZipFile` prend les mêmes paramètres que le " +"constructeur de :class:`ZipFile` avec un paramètre additionnel *optimize*." + +#: ../Doc/library/zipfile.rst:461 +msgid "The *optimize* parameter." +msgstr "Le paramètre *optimize*." + +#: ../Doc/library/zipfile.rst:467 +msgid "" +"Instances have one method in addition to those of :class:`ZipFile` objects:" +msgstr "" +"Les instances ont une méthode supplémentaire par rapport aux objets :class:" +"`ZipFile` :" + +#: ../Doc/library/zipfile.rst:471 +msgid "" +"Search for files :file:`\\*.py` and add the corresponding file to the " +"archive." +msgstr "" +"Cherche les fichiers :file:`\\*.py` et ajoute le fichier correspondant à " +"l'archive." + +#: ../Doc/library/zipfile.rst:474 +msgid "" +"If the *optimize* parameter to :class:`PyZipFile` was not given or ``-1``, " +"the corresponding file is a :file:`\\*.pyc` file, compiling if necessary." +msgstr "" +"Si le paramètre *optimize* du constructeur de :class:`PyZipFile` n'a pas été " +"donné ou est à ``-1``, le fichier correspondant est un fichier :file:`\\*." +"pyc`, à compiler si nécessaire." + +#: ../Doc/library/zipfile.rst:477 +msgid "" +"If the *optimize* parameter to :class:`PyZipFile` was ``0``, ``1`` or ``2``, " +"only files with that optimization level (see :func:`compile`) are added to " +"the archive, compiling if necessary." +msgstr "" +"Si le paramètre *optimize* du constructeur de :class:`PyZipFile` est à " +"``0``, ``1`` ou ``2``, ne sont ajoutés dans l'archive que les fichiers avec " +"ce niveau d'optimisation (voir :func:`compile`), à compiler si nécessaire." + +#: ../Doc/library/zipfile.rst:481 +msgid "" +"If *pathname* is a file, the filename must end with :file:`.py`, and just " +"the (corresponding :file:`\\*.pyc`) file is added at the top level (no path " +"information). If *pathname* is a file that does not end with :file:`.py`, " +"a :exc:`RuntimeError` will be raised. If it is a directory, and the " +"directory is not a package directory, then all the files :file:`\\*.pyc` are " +"added at the top level. If the directory is a package directory, then all :" +"file:`\\*.pyc` are added under the package name as a file path, and if any " +"subdirectories are package directories, all of these are added recursively " +"in sorted order." +msgstr "" +"Si *pathname* est un fichier, le chemin de fichier doit terminer par :file:" +"`.py` et uniquement le fichier (:file:`\\*.pyc` correspondant) est ajouté au " +"niveau le plus haut (sans information de chemin). Si *pathname* est un " +"fichier ne terminant pas par :file:`.py`, une exception :exc:`RuntimeError` " +"est levée. Si c'est un répertoire et que le répertoire n'est pas un " +"répertoire de paquet, alors tous les fichiers :file:`\\*.pyc` sont ajoutés " +"à la racine. Si le répertoire est un répertoire de paquet, alors tous les :" +"file:`\\*.pyc` sont ajoutés sous le nom du paquet en tant que chemin, et " +"s'il y a des sous-répertoires qui sont des répertoires de paquet, ils sont " +"tous ajoutés récursivement dans un ordre trié." + +#: ../Doc/library/zipfile.rst:491 +msgid "*basename* is intended for internal use only." +msgstr "*basename* n'est sensé être utilisé qu'en interne." + +#: ../Doc/library/zipfile.rst:493 +msgid "" +"*filterfunc*, if given, must be a function taking a single string argument. " +"It will be passed each path (including each individual full file path) " +"before it is added to the archive. If *filterfunc* returns a false value, " +"the path will not be added, and if it is a directory its contents will be " +"ignored. For example, if our test files are all either in ``test`` " +"directories or start with the string ``test_``, we can use a *filterfunc* to " +"exclude them::" +msgstr "" +"*filterfunc*, si donné, doit être une fonction prenant une seule chaîne de " +"caractères en argument. Il lui sera passé chaque chemin (incluant chaque " +"chemin de fichier complet individuel) avant d'être ajouté à l'archive. Si " +"*filterfunc* retourne une valeur fausse, le chemin n'est pas ajouté et si " +"c'est un répertoire son contenu est ignoré. Par exemple, si nos fichiers de " +"test sont tous soit dans des répertoires ``test`` ou commencent par " +"``test_``, nous pouvons utiliser une fonction *filterfunc* pour les " +"exclure ::" + +#: ../Doc/library/zipfile.rst:507 +msgid "The :meth:`writepy` method makes archives with file names like this::" +msgstr "" +"La méthode :meth:`writepy` crée des archives avec des noms de fichier comme " +"suit ::" + +#: ../Doc/library/zipfile.rst:516 +msgid "The *filterfunc* parameter." +msgstr "Le paramètre *filterfunc*." + +#: ../Doc/library/zipfile.rst:519 +msgid "The *pathname* parameter accepts a :term:`path-like object`." +msgstr "" +"Le paramètre *pathname* accepte un objet chemin-compatible :term:`path-like " +"object`." + +#: ../Doc/library/zipfile.rst:522 +msgid "Recursion sorts directory entries." +msgstr "La récursion trie les entrées de dossier." + +#: ../Doc/library/zipfile.rst:529 +msgid "ZipInfo Objects" +msgstr "Objets *ZipInfo*" + +#: ../Doc/library/zipfile.rst:531 +msgid "" +"Instances of the :class:`ZipInfo` class are returned by the :meth:`.getinfo` " +"and :meth:`.infolist` methods of :class:`ZipFile` objects. Each object " +"stores information about a single member of the ZIP archive." +msgstr "" +"Des instances de la classe :class:`ZipInfo` sont retournées par les " +"méthodes :meth:`.getinfo` et :meth:`.infolist` des objets :class:`ZipFile`. " +"Chaque objet stocke des informations sur un seul membre de l'archive ZIP." + +#: ../Doc/library/zipfile.rst:535 +msgid "" +"There is one classmethod to make a :class:`ZipInfo` instance for a " +"filesystem file:" +msgstr "" +"Il y a une méthode de classe pour créer une instance de :class:`ZipInfo` " +"pour un fichier du système de fichiers :" + +#: ../Doc/library/zipfile.rst:540 +msgid "" +"Construct a :class:`ZipInfo` instance for a file on the filesystem, in " +"preparation for adding it to a zip file." +msgstr "" +"Construit une instance de :class:`ZipInfo` pour le fichier du système de " +"fichiers, en préparation de l'ajouter à un fichier ZIP." + +#: ../Doc/library/zipfile.rst:543 +msgid "*filename* should be the path to a file or directory on the filesystem." +msgstr "" +"*filename* doit être un chemin vers un fichier ou un répertoire dans le " +"système de fichiers." + +#: ../Doc/library/zipfile.rst:545 +msgid "" +"If *arcname* is specified, it is used as the name within the archive. If " +"*arcname* is not specified, the name will be the same as *filename*, but " +"with any drive letter and leading path separators removed." +msgstr "" +"Si *arcname* est spécifié, il est utilisé en tant que nom dans l'archive. Si " +"*arcname* n'est pas spécifié, le nom sera le même que *filename* mais sans " +"lettre de disque et sans séparateur de chemin en première position." + +#: ../Doc/library/zipfile.rst:551 +msgid "The *filename* parameter accepts a :term:`path-like object`." +msgstr "" +"Le paramètre *filename* accepte un objet chemin-compatible :term:`path-like " +"object`." + +#: ../Doc/library/zipfile.rst:555 +msgid "Instances have the following methods and attributes:" +msgstr "Les instances ont les méthodes et attributs suivants :" + +#: ../Doc/library/zipfile.rst:559 +msgid "Return ``True`` if this archive member is a directory." +msgstr "Retourne ``True`` si le membre d'archive est un répertoire." + +#: ../Doc/library/zipfile.rst:561 +msgid "This uses the entry's name: directories should always end with ``/``." +msgstr "" +"Utilise le nom de l'entrée : les répertoires doivent toujours se terminer " +"par ``/``." + +#: ../Doc/library/zipfile.rst:568 +msgid "Name of the file in the archive." +msgstr "Nom du fichier dans l'archive." + +#: ../Doc/library/zipfile.rst:573 +msgid "" +"The time and date of the last modification to the archive member. This is a " +"tuple of six values:" +msgstr "" +"Date et heure de dernière modification pour le membre de l'archive. *Tuple* " +"de six valeurs :" + +#: ../Doc/library/zipfile.rst:577 +msgid "Index" +msgstr "Index" + +#: ../Doc/library/zipfile.rst:577 +msgid "Value" +msgstr "Valeur" + +#: ../Doc/library/zipfile.rst:579 +msgid "``0``" +msgstr "``0``" + +#: ../Doc/library/zipfile.rst:579 +msgid "Year (>= 1980)" +msgstr "Année (>= 1980)" + +#: ../Doc/library/zipfile.rst:581 +msgid "``1``" +msgstr "``1``" + +#: ../Doc/library/zipfile.rst:581 +msgid "Month (one-based)" +msgstr "Mois (indexé à partir de 1)" + +#: ../Doc/library/zipfile.rst:583 +msgid "``2``" +msgstr "``2``" + +#: ../Doc/library/zipfile.rst:583 +msgid "Day of month (one-based)" +msgstr "Jour du mois (indexé à partir de 1)" + +#: ../Doc/library/zipfile.rst:585 +msgid "``3``" +msgstr "``3``" + +#: ../Doc/library/zipfile.rst:585 +msgid "Hours (zero-based)" +msgstr "Heures (indexées à partir de 0)" + +#: ../Doc/library/zipfile.rst:587 +msgid "``4``" +msgstr "``4``" + +#: ../Doc/library/zipfile.rst:587 +msgid "Minutes (zero-based)" +msgstr "Minutes (indexées à partir de 0)" + +#: ../Doc/library/zipfile.rst:589 +msgid "``5``" +msgstr "``5``" + +#: ../Doc/library/zipfile.rst:589 +msgid "Seconds (zero-based)" +msgstr "Secondes (indexées à partir de 0)" + +#: ../Doc/library/zipfile.rst:594 +msgid "The ZIP file format does not support timestamps before 1980." +msgstr "Le format de fichier ZIP ne gère pas les horodatages avant 1980." + +#: ../Doc/library/zipfile.rst:599 +msgid "Type of compression for the archive member." +msgstr "Type de compression du membre d'archive." + +#: ../Doc/library/zipfile.rst:604 +msgid "Comment for the individual archive member as a :class:`bytes` object." +msgstr "" +"Commentaire pour le membre d'archive individuel en tant qu'objet :class:" +"`bytes`." + +#: ../Doc/library/zipfile.rst:609 +msgid "" +"Expansion field data. The `PKZIP Application Note`_ contains some comments " +"on the internal structure of the data contained in this :class:`bytes` " +"object." +msgstr "" +"Données du champ d'extension. La documentation `PKZIP Application Note`_ " +"contient quelques commentaires sur la structure interne des données " +"contenues dans cet objet :class:`bytes`." + +#: ../Doc/library/zipfile.rst:616 +msgid "System which created ZIP archive." +msgstr "Système ayant créé l'archive ZIP." + +#: ../Doc/library/zipfile.rst:621 +msgid "PKZIP version which created ZIP archive." +msgstr "Version de PKZIP ayant créé l'archive ZIP." + +#: ../Doc/library/zipfile.rst:626 +msgid "PKZIP version needed to extract archive." +msgstr "Version de PKZIP nécessaire à l'extraction de l'archive ZIP." + +#: ../Doc/library/zipfile.rst:631 +msgid "Must be zero." +msgstr "Doit être à zéro." + +#: ../Doc/library/zipfile.rst:636 +msgid "ZIP flag bits." +msgstr "Bits d'options ZIP." + +#: ../Doc/library/zipfile.rst:641 +msgid "Volume number of file header." +msgstr "Numéro de volume de l'entête du fichier." + +#: ../Doc/library/zipfile.rst:646 +msgid "Internal attributes." +msgstr "Attributs internes." + +#: ../Doc/library/zipfile.rst:651 +msgid "External file attributes." +msgstr "Attributs de fichier externes." + +#: ../Doc/library/zipfile.rst:656 +msgid "Byte offset to the file header." +msgstr "Longueur de l'entête du fichier en octets." + +#: ../Doc/library/zipfile.rst:661 +msgid "CRC-32 of the uncompressed file." +msgstr "CRC-32 du fichier décompressé." + +#: ../Doc/library/zipfile.rst:666 +msgid "Size of the compressed data." +msgstr "Taille des données décompressées." + +#: ../Doc/library/zipfile.rst:671 +msgid "Size of the uncompressed file." +msgstr "Taille du fichier décompressé." + +#: ../Doc/library/zipfile.rst:678 +msgid "Command-Line Interface" +msgstr "Interface en ligne de commande" + +#: ../Doc/library/zipfile.rst:680 +msgid "" +"The :mod:`zipfile` module provides a simple command-line interface to " +"interact with ZIP archives." +msgstr "" +"Le module :mod:`zipfile` fournit une interface en ligne de commande simple " +"pour interagir avec des archives ZIP." + +#: ../Doc/library/zipfile.rst:683 +msgid "" +"If you want to create a new ZIP archive, specify its name after the :option:" +"`-c` option and then list the filename(s) that should be included:" +msgstr "" +"Si vous voulez créer une nouvelle archive ZIP, spécifiez son nom après " +"l'option :option:`-c` et listez ensuite le(s) nom(s) de fichier à inclure :" + +#: ../Doc/library/zipfile.rst:690 +msgid "Passing a directory is also acceptable:" +msgstr "Passer un répertoire est aussi possible :" + +#: ../Doc/library/zipfile.rst:696 +msgid "" +"If you want to extract a ZIP archive into the specified directory, use the :" +"option:`-e` option:" +msgstr "" +"Si vous voulez extraire une archive ZIP dans un répertoire donné, utilisez " +"l'option :option:`-e` :" + +#: ../Doc/library/zipfile.rst:703 +msgid "For a list of the files in a ZIP archive, use the :option:`-l` option:" +msgstr "" +"Pour une liste des fichiers dans une archive ZIP, utilisez l'option :option:" +"`-l` :" + +#: ../Doc/library/zipfile.rst:711 +msgid "Command-line options" +msgstr "Options de la ligne de commande" + +#: ../Doc/library/zipfile.rst:716 +msgid "List files in a zipfile." +msgstr "Liste les fichiers dans un fichier ZIP *zipfile*." + +#: ../Doc/library/zipfile.rst:721 +msgid "Create zipfile from source files." +msgstr "Crée un fichier ZIP *zipfile* à partir des fichiers *source*." + +#: ../Doc/library/zipfile.rst:726 +msgid "Extract zipfile into target directory." +msgstr "" +"Extrait le fichier ZIP *zipfile* vers le répertoire cible *output_dir*." + +#: ../Doc/library/zipfile.rst:731 +msgid "Test whether the zipfile is valid or not." +msgstr "Teste si le fichier zip est valide." + +#~ msgid "" +#~ "There is no official file name encoding for ZIP files. If you have " +#~ "unicode file names, you must convert them to byte strings in your desired " +#~ "encoding before passing them to :meth:`write`. WinZip interprets all file " +#~ "names as encoded in CP437, also known as DOS Latin." +#~ msgstr "" +#~ "Il n'y a pas d'encodage de nom de fichier officiel pour les fichiers ZIP. " +#~ "Si vous avez des noms de fichier *unicode*, vous devez les convertir en " +#~ "chaînes d'octets dans l'encodage désiré avant de les passer à :meth:" +#~ "`write`. *WinZip* interprète tous les noms de fichier comme encodés en " +#~ "CP437, aussi connu sous le nom de DOS Latin." diff --git a/library/zipimport.po b/library/zipimport.po new file mode 100644 index 000000000..9bc695c8c --- /dev/null +++ b/library/zipimport.po @@ -0,0 +1,272 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"PO-Revision-Date: 2019-07-18 20:03+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" + +#: ../Doc/library/zipimport.rst:2 +msgid ":mod:`zipimport` --- Import modules from Zip archives" +msgstr ":mod:`zipimport` — Importer des modules à partir d'archives Zip" + +#: ../Doc/library/zipimport.rst:11 +msgid "" +"This module adds the ability to import Python modules (:file:`\\*.py`, :file:" +"`\\*.pyc`) and packages from ZIP-format archives. It is usually not needed " +"to use the :mod:`zipimport` module explicitly; it is automatically used by " +"the built-in :keyword:`import` mechanism for :data:`sys.path` items that are " +"paths to ZIP archives." +msgstr "" +"Ce module ajoute la possibilité d'importer des modules Python (:file:`\\*." +"py`, :file:`\\*.pyc`) et des paquets depuis des archives au format ZIP. Il " +"n'est généralement pas nécessaire d'utiliser explicitement le module :mod:" +"`zipimport` ; il est automatiquement utilisé par le mécanisme intégré de :" +"keyword:`import` pour les éléments :data:`sys.path` qui sont des chemins " +"vers les archives ZIP." + +#: ../Doc/library/zipimport.rst:17 +msgid "" +"Typically, :data:`sys.path` is a list of directory names as strings. This " +"module also allows an item of :data:`sys.path` to be a string naming a ZIP " +"file archive. The ZIP archive can contain a subdirectory structure to " +"support package imports, and a path within the archive can be specified to " +"only import from a subdirectory. For example, the path :file:`example.zip/" +"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:24 +msgid "" +"Any files may be present in the ZIP archive, but only files :file:`.py` and :" +"file:`.pyc` are available for import. ZIP import of dynamic modules (:file:" +"`.pyd`, :file:`.so`) is disallowed. Note that if an archive only contains :" +"file:`.py` files, Python will not attempt to modify the archive by adding " +"the corresponding :file:`.pyc` file, meaning that if a ZIP archive doesn't " +"contain :file:`.pyc` files, importing may be rather slow." +msgstr "" +"Tous les fichiers peuvent être présents dans l'archive ZIP, mais seuls les " +"fichiers :file:`.py` et :file:`.pyc` sont disponibles pour importation. " +"L'importation ZIP des modules dynamiques (:file:`.pyd`, :file:`.so`) est " +"interdite. Notez que si une archive ne contient que des fichiers :file:`." +"py` , Python n'essaiera pas de modifier l'archive en ajoutant le fichier " +"correspondant :file:`.pyc`, ce qui signifie que si une archive ZIP ne " +"contient pas de fichier: :file:`.pyc`, l'importation peut être assez lente." + +#: ../Doc/library/zipimport.rst:31 +msgid "ZIP archives with an archive comment are currently not supported." +msgstr "" +"Les archives ZIP avec un commentaire ne sont actuellement pas prises en " +"charge." + +#: ../Doc/library/zipimport.rst:37 +msgid "" +"`PKZIP Application Note `_" +msgstr "" +"`PKZIP Application Note `_" + +#: ../Doc/library/zipimport.rst:36 +msgid "" +"Documentation on the ZIP file format by Phil Katz, the creator of the format " +"and algorithms used." +msgstr "" +"Documentation sur le format de fichier ZIP par Phil Katz, créateur du format " +"et des algorithmes utilisés." + +#: ../Doc/library/zipimport.rst:42 +msgid ":pep:`273` - Import Modules from Zip Archives" +msgstr ":pep:`273` - Import Modules from Zip Archives" + +#: ../Doc/library/zipimport.rst:40 +msgid "" +"Written by James C. Ahlstrom, who also provided an implementation. Python " +"2.3 follows the specification in PEP 273, but uses an implementation written " +"by Just van Rossum that uses the import hooks described in PEP 302." +msgstr "" +"Écrit par James C. Ahlstrom, qui a également fourni une mise en œuvre. " +"Python 2.3 suit les spécifications de PEP 273, mais utilise une " +"implémentation écrite par Just van Rossum qui utilise les crochets " +"d'importation décrits dans PEP 302." + +#: ../Doc/library/zipimport.rst:44 +msgid ":pep:`302` - New Import Hooks" +msgstr ":pep:`302` — Nouveaux crochets d'importation" + +#: ../Doc/library/zipimport.rst:45 +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:48 +msgid "This module defines an exception:" +msgstr "Ce module définit une exception :" + +#: ../Doc/library/zipimport.rst:52 +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:59 +msgid "zipimporter Objects" +msgstr "Objets *zimporter*" + +#: ../Doc/library/zipimport.rst:61 +msgid ":class:`zipimporter` is the class for importing ZIP files." +msgstr ":class:`zipimporter` est la classe pour importer des fichiers ZIP." + +#: ../Doc/library/zipimport.rst:65 +msgid "" +"Create a new zipimporter instance. *archivepath* must be a path to a ZIP " +"file, or to a specific path within a ZIP file. For example, an " +"*archivepath* of :file:`foo/bar.zip/lib` will look for modules in the :file:" +"`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:70 +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:75 +msgid "" +"Search for a module specified by *fullname*. *fullname* must be the fully " +"qualified (dotted) module name. It returns the zipimporter instance itself " +"if the module was found, or :const:`None` if it wasn't. The optional *path* " +"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:84 +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:90 +msgid "" +"Return the data associated with *pathname*. Raise :exc:`OSError` if the file " +"wasn't found." +msgstr "" +"Renvoie les données associées à *pathname*. Lève :exc:`OSError` si le " +"fichier n'a pas été trouvé." + +#: ../Doc/library/zipimport.rst:93 +msgid ":exc:`IOError` used to be raised instead of :exc:`OSError`." +msgstr "" +"Précédemment, c'était l'exception :exc:`IOError` qui était levée, au lieu " +"de :exc:`OSError`." + +#: ../Doc/library/zipimport.rst:99 +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:108 +msgid "" +"Return the source code for the specified module. Raise :exc:`ZipImportError` " +"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:116 +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:122 +msgid "" +"Load the module specified by *fullname*. *fullname* must be the fully " +"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:129 +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:135 +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:139 +msgid "" +"The :attr:`archive` and :attr:`prefix` attributes, when combined with a " +"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:147 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/library/zipimport.rst:149 +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é." diff --git a/library/zlib.po b/library/zlib.po new file mode 100644 index 000000000..efcc38084 --- /dev/null +++ b/library/zlib.po @@ -0,0 +1,622 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" +"PO-Revision-Date: 2018-09-28 09:16+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.0.5\n" + +#: ../Doc/library/zlib.rst:2 +msgid ":mod:`zlib` --- Compression compatible with :program:`gzip`" +msgstr ":mod:`zlib` — Compression compatible avec :program:`gzip`" + +#: ../Doc/library/zlib.rst:10 +msgid "" +"For applications that require data compression, the functions in this module " +"allow compression and decompression, using the zlib library. The zlib " +"library has its own home page at http://www.zlib.net. There are known " +"incompatibilities between the Python module and versions of the zlib library " +"earlier than 1.1.3; 1.1.3 has a security vulnerability, so we recommend " +"using 1.1.4 or later." +msgstr "" +"Pour des applications nécessitant de compresser des données, les fonctions " +"de ce module permettent la compression et la décompression via la " +"bibliothèque *zlib*. La bibliothèque *zlib* a sa propre page web sur http://" +"www.zlib.net. Il existe des incompatibilités connues entre le module Python " +"et les versions de la bibliothèque *zlib* plus anciennes que la 1.1.3 ; " +"1.1.3 contient des failles de sécurité et nous recommandons d'utiliser " +"plutôt la version 1.14 ou plus récente." + +#: ../Doc/library/zlib.rst:17 +msgid "" +"zlib's functions have many options and often need to be used in a particular " +"order. This documentation doesn't attempt to cover all of the permutations; " +"consult the zlib manual at http://www.zlib.net/manual.html for authoritative " +"information." +msgstr "" +"Les fonctions *zlib* recèlent de nombreuses options et il est nécessaire de " +"suivre un ordre précis. Cette documentation n'a pas pour but de couvrir la " +"globalité des possibilités. Aussi, veuillez consulter le manuel *zlib* en " +"ligne sur http://www.zlib.net/manual.html pour compléter davantage son " +"utilisation." + +#: ../Doc/library/zlib.rst:22 +msgid "For reading and writing ``.gz`` files see the :mod:`gzip` module." +msgstr "" +"Pour lire ou écrire des fichiers ``.gz`` veuillez consulter le module :mod:" +"`gzip`." + +#: ../Doc/library/zlib.rst:24 +msgid "The available exception and functions in this module are:" +msgstr "Les exceptions et fonctions disponibles dans ce module sont :" + +#: ../Doc/library/zlib.rst:29 +msgid "Exception raised on compression and decompression errors." +msgstr "Exception levée lors d'erreurs de compression et de décompression." + +#: ../Doc/library/zlib.rst:34 +msgid "" +"Computes an Adler-32 checksum of *data*. (An Adler-32 checksum is almost as " +"reliable as a CRC32 but can be computed much more quickly.) The result is " +"an unsigned 32-bit integer. If *value* is present, it is used as the " +"starting value of the checksum; otherwise, a default value of 1 is used. " +"Passing in *value* allows computing a running checksum over the " +"concatenation of several inputs. The algorithm is not cryptographically " +"strong, and should not be used for authentication or digital signatures. " +"Since the algorithm is designed for use as a checksum algorithm, it is not " +"suitable for use as a general hash algorithm." +msgstr "" +"Calcule une somme de contrôle Adler-32 de *data* (une somme de contrôle " +"Adler-32 est aussi fiable qu'un CRC32 mais peut être calculée bien plus " +"rapidement). Le résultat produit est un entier non signé de 32-bit. Si " +"*value* est défini, il devient la valeur initiale de la somme de contrôle ; " +"sinon une valeur par défaut de 1 est utilisée. Définir *value* permet de " +"calculer une somme de contrôle continue pendant la concaténation de " +"plusieurs entrées. Cet algorithme n'a aucune garantie cryptographique " +"puissante, et ne doit pas être utilisé ni pour l'authentification, ni pour " +"des signatures numériques. Conçu comme un algorithme de somme de contrôle, " +"il n'est pas adapté pour une utilisation sous forme de clé de hachage " +"générique." + +#: ../Doc/library/zlib.rst:44 +msgid "" +"Always returns an unsigned value. To generate the same numeric value across " +"all Python versions and platforms, use ``adler32(data) & 0xffffffff``." +msgstr "" +"Renvoie une valeur non-signée. Pour produire la même valeur avec toutes les " +"versions de Python sur différentes plateformes, utilisez ``adler32(data) & " +"0xffffffff``." + +#: ../Doc/library/zlib.rst:52 +msgid "" +"Compresses the bytes in *data*, returning a bytes object containing " +"compressed data. *level* is an integer from ``0`` to ``9`` or ``-1`` " +"controlling the level of compression; ``1`` (Z_BEST_SPEED) is fastest and " +"produces the least compression, ``9`` (Z_BEST_COMPRESSION) is slowest and " +"produces the most. ``0`` (Z_NO_COMPRESSION) is no compression. The default " +"value is ``-1`` (Z_DEFAULT_COMPRESSION). Z_DEFAULT_COMPRESSION represents a " +"default compromise between speed and compression (currently equivalent to " +"level 6). Raises the :exc:`error` exception if any error occurs." +msgstr "" +"Compresse les octets contenus dans *data*, renvoie un objet *bytes* " +"contenant les données compressées. *level* permet d'ajuster le niveau de " +"compression, ce doit être un nombre entier compris entre ``0`` et ``9`` ou " +"``-1`` ; ``1`` étant plus rapide et procède à une compression légère, ``9`` " +"est plus lent mais compresse plus fortement. ``0`` n'effectue aucune " +"compression. La valeur par défaut est ``-1`` (*Z_DEFAULT_COMPRESSION*). " +"*Z_DEFAULT_COMPRESSION* donne une valeur par défaut proposant un équilibre " +"entre vitesse et taux de compression (actuellement équivalente à 6). Si une " +"erreur surgit, l'exception :exc:`error` est levée." + +#: ../Doc/library/zlib.rst:60 +msgid "*level* can now be used as a keyword parameter." +msgstr "*level* peut maintenant être passé par son nom." + +#: ../Doc/library/zlib.rst:66 +msgid "" +"Returns a compression object, to be used for compressing data streams that " +"won't fit into memory at once." +msgstr "" +"Renvoie un objet \"compresseur\", à utiliser pour compresser des flux de " +"données qui ne peuvent pas être stockés entièrement en mémoire." + +#: ../Doc/library/zlib.rst:69 +msgid "" +"*level* is the compression level -- an integer from ``0`` to ``9`` or " +"``-1``. A value of ``1`` (Z_BEST_SPEED) is fastest and produces the least " +"compression, while a value of ``9`` (Z_BEST_COMPRESSION) is slowest and " +"produces the most. ``0`` (Z_NO_COMPRESSION) is no compression. The default " +"value is ``-1`` (Z_DEFAULT_COMPRESSION). Z_DEFAULT_COMPRESSION represents a " +"default compromise between speed and compression (currently equivalent to " +"level 6)." +msgstr "" +"*level* est le taux de compression -- un entier compris entre ``0`` et ``9`` " +"ou ``-1``. La valeur ``1`` est la plus rapide avec taux de compression " +"minimal, tandis que la valeur ``9`` est la plus lente mais produit une " +"compression maximale. ``0`` ne produit aucune compression. La valeur par " +"défaut est ``-1`` (*Z_DEFAULT_COMPRESSION*). La constante " +"*Z_DEFAULT_COMPRESSION* équivaut à un bon compromis par défaut entre " +"rapidité et bonne compression (valeur équivalente au niveau 6)." + +#: ../Doc/library/zlib.rst:76 +msgid "" +"*method* is the compression algorithm. Currently, the only supported value " +"is :const:`DEFLATED`." +msgstr "" +"*method* définit l'algorithme de compression. Pour le moment, la seule " +"valeur acceptée est :const:`DEFLATED`." + +#: ../Doc/library/zlib.rst:79 +msgid "" +"The *wbits* argument controls the size of the history buffer (or the " +"\"window size\") used when compressing data, and whether a header and " +"trailer is included in the output. It can take several ranges of values, " +"defaulting to ``15`` (MAX_WBITS):" +msgstr "" +"L'argument *wbits* contrôle la taille du tampon d'historique (\"*window size*" +"\") utilisé lors de la compression, et si un en-tête et un bloc final seront " +"inclus. Il accepte plusieurs intervalles de valeurs, et vaut ``15`` " +"(MAX_WBITS) par défaut :" + +#: ../Doc/library/zlib.rst:84 +msgid "" +"+9 to +15: The base-two logarithm of the window size, which therefore ranges " +"between 512 and 32768. Larger values produce better compression at the " +"expense of greater memory usage. The resulting output will include a zlib-" +"specific header and trailer." +msgstr "" +"De +9 à +15 : le logarithme binaire de la taille du tampon, par conséquent " +"compris entre 512 et 32 768. Des valeurs plus grandes produisent de " +"meilleures compressions aux dépens d'une utilisation mémoire plus grande. Le " +"résultat final inclus des en-têtes et des blocs spécifiques à *zlib*." + +#: ../Doc/library/zlib.rst:89 +msgid "" +"−9 to −15: Uses the absolute value of *wbits* as the window size logarithm, " +"while producing a raw output stream with no header or trailing checksum." +msgstr "" +"De ``-9`` à ``-15`` : utilise la valeur absolue de *wbits* comme logarithme " +"binaire de la taille du tampon, et ne produit pas d'entêtes ni de bloc final." + +#: ../Doc/library/zlib.rst:93 +msgid "" +"+25 to +31 = 16 + (9 to 15): Uses the low 4 bits of the value as the window " +"size logarithm, while including a basic :program:`gzip` header and trailing " +"checksum in the output." +msgstr "" +"De +25 à +31 = 16 + (9 à 15) : utilise les 4 bits de poids faible comme " +"logarithme binaire de la taille du tampon, tout en incluant un entête :" +"program:`gzip` et une somme de contrôle finale." + +#: ../Doc/library/zlib.rst:97 +msgid "" +"The *memLevel* argument controls the amount of memory used for the internal " +"compression state. Valid values range from ``1`` to ``9``. Higher values use " +"more memory, but are faster and produce smaller output." +msgstr "" +"L'argument *memLevel* permet d'ajuster la quantité de mémoire utilisée pour " +"stocker l'état interne de la compression. Les valeurs valides sont comprises " +"entre ``1`` et ``9``. Des valeurs plus élevées occupent davantage de " +"mémoire, mais sont plus rapides et produisent des sorties plus compressées." + +#: ../Doc/library/zlib.rst:101 +msgid "" +"*strategy* is used to tune the compression algorithm. Possible values are :" +"const:`Z_DEFAULT_STRATEGY`, :const:`Z_FILTERED`, :const:`Z_HUFFMAN_ONLY`, :" +"const:`Z_RLE` (zlib 1.2.0.1) and :const:`Z_FIXED` (zlib 1.2.2.2)." +msgstr "" +"*strategy* permet d'ajuster l'algorithme de compression. Les valeurs " +"possibles sont :const:`Z_DEFAULT_STRATEGY`, :const:`Z_FILTERED`, et :const:" +"`Z_HUFFMAN_ONLY`, :const:`Z_RLE` (*zlib* 1.2.0.1) et :const:`Z_FIXED` " +"(*zlib* 1.2.2.2)." + +#: ../Doc/library/zlib.rst:105 +msgid "" +"*zdict* is a predefined compression dictionary. This is a sequence of bytes " +"(such as a :class:`bytes` object) containing subsequences that are expected " +"to occur frequently in the data that is to be compressed. Those subsequences " +"that are expected to be most common should come at the end of the dictionary." +msgstr "" +"*zdict* est un dictionnaire de compression prédéfini. C'est une séquence " +"d'octets (tel qu'un objet :class:`bytes`) contenant des sous-séquences " +"attendues régulièrement dans les données à compresser. Les sous-séquences " +"les plus fréquentes sont à placer à la fin du dictionnaire." + +#: ../Doc/library/zlib.rst:110 +msgid "Added the *zdict* parameter and keyword argument support." +msgstr "Ajout du paramètre *zdict*." + +#: ../Doc/library/zlib.rst:120 +msgid "" +"Computes a CRC (Cyclic Redundancy Check) checksum of *data*. The result is " +"an unsigned 32-bit integer. If *value* is present, it is used as the " +"starting value of the checksum; otherwise, a default value of 0 is used. " +"Passing in *value* allows computing a running checksum over the " +"concatenation of several inputs. The algorithm is not cryptographically " +"strong, and should not be used for authentication or digital signatures. " +"Since the algorithm is designed for use as a checksum algorithm, it is not " +"suitable for use as a general hash algorithm." +msgstr "" +"Calcule la somme de contrôle CRC (*Cyclic Redundancy Check* en anglais) de " +"l'argument *data*. Il renvoie un entier non signé de 32 bits. Si l'argument " +"*value* est présent, il permet de définir la valeur de départ de la somme de " +"contrôle. Sinon, la valeur par défaut est 0. L'argument *value* permet de " +"calculer la somme de contrôle glissante d'une concaténation de données. " +"L'algorithme n'est pas fort d'un point de vue cryptographique, et ne doit " +"pas être utilisé pour l'authentification ou des signatures numériques. Cet " +"algorithme a été conçu pour être exploité comme un algorithme de somme de " +"contrôle, ce n'est pas un algorithme de hachage générique." + +#: ../Doc/library/zlib.rst:129 +msgid "" +"Always returns an unsigned value. To generate the same numeric value across " +"all Python versions and platforms, use ``crc32(data) & 0xffffffff``." +msgstr "" +"Renvoie une valeur non-signée. Pour obtenir la même valeur sur n'importe " +"quelle version de Python et n'importe quelle plateforme, utilisez " +"``crc32(data) & 0xffffffff``." + +#: ../Doc/library/zlib.rst:137 +msgid "" +"Decompresses the bytes in *data*, returning a bytes object containing the " +"uncompressed data. The *wbits* parameter depends on the format of *data*, " +"and is discussed further below. If *bufsize* is given, it is used as the " +"initial size of the output buffer. Raises the :exc:`error` exception if any " +"error occurs." +msgstr "" +"Décompresse les octets de *data*, renvoyant un objet *bytes* contenant les " +"données décompressées. Le paramètre *wbits* dépend du format des données " +"compressées, et est abordé plus loin. Si l'argument *bufsize* est défini, il " +"est utilisé comme taille initiale du tampon de sortie. En cas d'erreur, " +"l'exception :exc:`error` est levée." + +#: ../Doc/library/zlib.rst:145 +msgid "" +"The *wbits* parameter controls the size of the history buffer (or \"window " +"size\"), and what header and trailer format is expected. It is similar to " +"the parameter for :func:`compressobj`, but accepts more ranges of values:" +msgstr "" +"L'argument *wbits* contrôle la taille du tampon d'historique (\"*window size*" +"\") utilisé lors de la compression, et si un en-tête et un bloc final sont " +"attendus. Similaire au paramètre de :func:`compressobj`, mais accepte une " +"gamme plus large de valeurs :" + +#: ../Doc/library/zlib.rst:150 +msgid "" +"+8 to +15: The base-two logarithm of the window size. The input must " +"include a zlib header and trailer." +msgstr "" +"De +8 à +15 : logarithme binaire pour la taille du tampon. L'entrée doit " +"contenir un en-tête et un bloc *zlib*." + +#: ../Doc/library/zlib.rst:153 +msgid "" +"0: Automatically determine the window size from the zlib header. Only " +"supported since zlib 1.2.3.5." +msgstr "" +"0 : détermine automatiquement la taille du tampon à partir de l'en-tête " +"*zlib*. Géré uniquement depuis *zlib* 1.2.3.5." + +#: ../Doc/library/zlib.rst:156 +msgid "" +"−8 to −15: Uses the absolute value of *wbits* as the window size logarithm. " +"The input must be a raw stream with no header or trailer." +msgstr "" +"De ``-8`` à ``-15`` : utilise la valeur absolue de *wbits* comme logarithme " +"binaire pour la taille du tampon. L'entrée doit être un flux brut, sans en-" +"tête ni bloc final." + +#: ../Doc/library/zlib.rst:159 +msgid "" +"+24 to +31 = 16 + (8 to 15): Uses the low 4 bits of the value as the window " +"size logarithm. The input must include a gzip header and trailer." +msgstr "" +"De +24 à +31 = 16 + (8 à 15) : utilise les 4 de poids faible comme " +"logarithme binaire pour la taille du tampon. L'entrée doit contenir un en-" +"tête *gzip* et son bloc final." + +#: ../Doc/library/zlib.rst:163 +msgid "" +"+40 to +47 = 32 + (8 to 15): Uses the low 4 bits of the value as the window " +"size logarithm, and automatically accepts either the zlib or gzip format." +msgstr "" +"De +40 à +47 = 32 + (8 à 15) : utilise les 4 bits de poids faible comme " +"logarithme binaire pour la taille du tampon, et accepte automatiquement les " +"formats *zlib* ou *gzip*." + +#: ../Doc/library/zlib.rst:167 +msgid "" +"When decompressing a stream, the window size must not be smaller than the " +"size originally used to compress the stream; using a too-small value may " +"result in an :exc:`error` exception. The default *wbits* value corresponds " +"to the largest window size and requires a zlib header and trailer to be " +"included." +msgstr "" +"Lors de la décompression d'un flux, la taille du tampon ne doit pas être " +"inférieure à la taille initialement utilisée pour compresser le flux. " +"L'utilisation d'une valeur trop petite peut déclencher une exception :exc:" +"`error`. La valeur par défaut *wbits* correspond à une taille élevée du " +"tampon et nécessite d'y adjoindre un en-tête *zlib* et son bloc final." + +#: ../Doc/library/zlib.rst:173 +msgid "" +"*bufsize* is the initial size of the buffer used to hold decompressed data. " +"If more space is required, the buffer size will be increased as needed, so " +"you don't have to get this value exactly right; tuning it will only save a " +"few calls to :c:func:`malloc`." +msgstr "" +"L'argument *bufsize* correspond à la taille initiale du tampon utilisé pour " +"contenir les données décompressées. Si plus d'espace est nécessaire, la " +"taille du tampon sera augmentée au besoin, donc vous n'avez pas besoin de " +"deviner la valeur exacte. Un réglage précis n'économisera que quelques " +"appels à :c:func:`malloc`." + +#: ../Doc/library/zlib.rst:178 +msgid "*wbits* and *bufsize* can be used as keyword arguments." +msgstr "*wbits* et *bufsize* peuvent être utilisés comme arguments nommés." + +#: ../Doc/library/zlib.rst:183 +msgid "" +"Returns a decompression object, to be used for decompressing data streams " +"that won't fit into memory at once." +msgstr "" +"Renvoie un objet \"décompresseur\", à utiliser pour décompresser des flux de " +"données qui ne rentrent pas entièrement en mémoire." + +#: ../Doc/library/zlib.rst:186 +msgid "" +"The *wbits* parameter controls the size of the history buffer (or the " +"\"window size\"), and what header and trailer format is expected. It has " +"the same meaning as `described for decompress() <#decompress-wbits>`__." +msgstr "" +"Le paramètre *wbits* contrôle la taille du tampon, et détermine quel format " +"d'en-tête et de bloc sont prévus. Il a la même signification que décrit pour " +"`decompress() <#decompress-wbits>`__." + +#: ../Doc/library/zlib.rst:190 +msgid "" +"The *zdict* parameter specifies a predefined compression dictionary. If " +"provided, this must be the same dictionary as was used by the compressor " +"that produced the data that is to be decompressed." +msgstr "" +"Le paramètre *zdict* définit un dictionnaire de compression prédéfini. S'il " +"est fourni, il doit être identique au dictionnaire utilisé par le " +"compresseur, à l'origine des données à décompresser." + +#: ../Doc/library/zlib.rst:196 +msgid "" +"If *zdict* is a mutable object (such as a :class:`bytearray`), you must not " +"modify its contents between the call to :func:`decompressobj` and the first " +"call to the decompressor's ``decompress()`` method." +msgstr "" +"Si *zdict* est un objet modifiable (tel qu'un :class:`bytearray`, par " +"exemple), vous ne devez pas modifier son contenu entre l'appel à la " +"fonction :func:`decompressobj` et le premier appel à la méthode " +"``decompress()`` du décompresseur." + +#: ../Doc/library/zlib.rst:200 +msgid "Added the *zdict* parameter." +msgstr "Ajout du paramètre *zdict*." + +#: ../Doc/library/zlib.rst:204 +msgid "Compression objects support the following methods:" +msgstr "Les objets de compression gèrent les méthodes suivantes :" + +#: ../Doc/library/zlib.rst:209 +msgid "" +"Compress *data*, returning a bytes object containing compressed data for at " +"least part of the data in *data*. This data should be concatenated to the " +"output produced by any preceding calls to the :meth:`compress` method. Some " +"input may be kept in internal buffers for later processing." +msgstr "" +"Compresse *data* et renvoie au moins une partie des données compressées sous " +"forme d'objet *bytes*. Ces données doivent être concaténées à la suite des " +"appels précédant à :meth:`compress`. Certaines entrées peuvent être " +"conservées dans des tampons internes pour un traitement ultérieur." + +#: ../Doc/library/zlib.rst:217 +msgid "" +"All pending input is processed, and a bytes object containing the remaining " +"compressed output is returned. *mode* can be selected from the constants :" +"const:`Z_NO_FLUSH`, :const:`Z_PARTIAL_FLUSH`, :const:`Z_SYNC_FLUSH`, :const:" +"`Z_FULL_FLUSH`, :const:`Z_BLOCK` (zlib 1.2.3.4), or :const:`Z_FINISH`, " +"defaulting to :const:`Z_FINISH`. Except :const:`Z_FINISH`, all constants " +"allow compressing further bytestrings of data, while :const:`Z_FINISH` " +"finishes the compressed stream and prevents compressing any more data. " +"After calling :meth:`flush` with *mode* set to :const:`Z_FINISH`, the :meth:" +"`compress` method cannot be called again; the only realistic action is to " +"delete the object." +msgstr "" +"Toutes les entrées mises en attente sont traitées et un objet *bytes* " +"contenant la sortie des données compressées restantes est renvoyé. " +"L'argument *mode* accepte l'une des constantes suivantes : :const:" +"`Z_NO_FLUSH`, :const:`Z_PARTIAL_FLUSH`, :const:`Z_SYNC_FLUSH`, :const:" +"`Z_FULL_FLUSH`, :const:`Z_BLOCK` (*zlib* 1.2.3.4), et :const:`Z_FINISH`, par " +"défaut :const:`Z_FINISH`. Sauf :const:`Z_FINISH`, toutes les constantes " +"permettent de compresser d'autres chaînes d'octets, tandis que :const:" +"`Z_FINISH` finalise le flux compressé et bloque toute autre tentative de " +"compression. Suite à l'appel de la méthode :meth:`flush` avec l'argument " +"*mode* défini à :const:`Z_FINISH`, la méthode :meth:`compress` ne peut plus " +"être rappelée. Il ne reste plus qu'à supprimer l'objet." + +#: ../Doc/library/zlib.rst:230 +msgid "" +"Returns a copy of the compression object. This can be used to efficiently " +"compress a set of data that share a common initial prefix." +msgstr "" +"Renvoie une copie de l'objet \"compresseur\". Utile pour compresser " +"efficacement un ensemble de données qui partagent un préfixe initial commun." + +#: ../Doc/library/zlib.rst:234 +msgid "Decompression objects support the following methods and attributes:" +msgstr "" +"Les objets décompresseurs prennent en charge les méthodes et attributs " +"suivants :" + +#: ../Doc/library/zlib.rst:239 +msgid "" +"A bytes object which contains any bytes past the end of the compressed data. " +"That is, this remains ``b\"\"`` until the last byte that contains " +"compression data is available. If the whole bytestring turned out to " +"contain compressed data, this is ``b\"\"``, an empty bytes object." +msgstr "" +"Un objet *bytes* contenant tous les octets restants après les données " +"compressées. Il vaut donc ``b\"\"`` tant que des données compressées sont " +"disponibles. Si toute la chaîne d'octets ne contient que des données " +"compressées, il vaut toujours ``b\"\"``, un objet *bytes* vide." + +#: ../Doc/library/zlib.rst:247 +msgid "" +"A bytes object that contains any data that was not consumed by the last :" +"meth:`decompress` call because it exceeded the limit for the uncompressed " +"data buffer. This data has not yet been seen by the zlib machinery, so you " +"must feed it (possibly with further data concatenated to it) back to a " +"subsequent :meth:`decompress` method call in order to get correct output." +msgstr "" +"Un objet *bytes* contenant toutes les données non-traitées par le dernier " +"appel à la méthode :meth:`decompress`, à cause d'un dépassement de la limite " +"du tampon de données décompressées. Ces données n'ont pas encore été " +"traitées par la bibliothèque *zlib*, vous devez donc les envoyer " +"(potentiellement en y concaténant encore des données) par un appel à la " +"méthode :meth:`decompress` pour obtenir une sortie correcte." + +#: ../Doc/library/zlib.rst:256 +msgid "" +"A boolean indicating whether the end of the compressed data stream has been " +"reached." +msgstr "Booléen qui signale si la fin du flux compressé est atteint." + +#: ../Doc/library/zlib.rst:259 +msgid "" +"This makes it possible to distinguish between a properly-formed compressed " +"stream, and an incomplete or truncated one." +msgstr "" +"Ceci rend possible la distinction entre un flux correctement compressé et un " +"flux incomplet." + +#: ../Doc/library/zlib.rst:267 +msgid "" +"Decompress *data*, returning a bytes object containing the uncompressed data " +"corresponding to at least part of the data in *string*. This data should be " +"concatenated to the output produced by any preceding calls to the :meth:" +"`decompress` method. Some of the input data may be preserved in internal " +"buffers for later processing." +msgstr "" +"Décompresse *data*, renvoie un objet *bytes*, contenant au moins une partie " +"des données décompressées. Ce résultat doit être concaténé aux résultats des " +"appels précédents à :meth:`decompress`. Des données d'entrée peuvent être " +"conservées dans les tampons internes pour un traitement ultérieur." + +#: ../Doc/library/zlib.rst:273 +msgid "" +"If the optional parameter *max_length* is non-zero then the return value " +"will be no longer than *max_length*. This may mean that not all of the " +"compressed input can be processed; and unconsumed data will be stored in the " +"attribute :attr:`unconsumed_tail`. This bytestring must be passed to a " +"subsequent call to :meth:`decompress` if decompression is to continue. If " +"*max_length* is zero then the whole input is decompressed, and :attr:" +"`unconsumed_tail` is empty." +msgstr "" +"Si le paramètre optionnel *max_length* est différent de zéro alors la valeur " +"renvoyée n'est pas plus grande que *max_length*. Cela peut amener à une " +"décompression partielle. Les données non-encore décompressées sont stockées " +"dans l'attribut :attr:`unconsumed_tail`. Cette chaîne d'octets doit être " +"transmise à un appel ultérieur à :meth:`decompress`. Si *max_length* vaut " +"zéro, la totalité de l'entrée est décompressée, et l'attribut :attr:" +"`unconsumed_tail` reste vide." + +#: ../Doc/library/zlib.rst:280 +msgid "*max_length* can be used as a keyword argument." +msgstr "*max_length* peut être utilisé comme un argument nommé." + +#: ../Doc/library/zlib.rst:286 +msgid "" +"All pending input is processed, and a bytes object containing the remaining " +"uncompressed output is returned. After calling :meth:`flush`, the :meth:" +"`decompress` method cannot be called again; the only realistic action is to " +"delete the object." +msgstr "" +"Toutes les entrées en attente sont traitées, et un objet *bytes* est " +"renvoyé, contenant le reste des données à décompresser. Après l'appel à :" +"meth:`flush`, la méthode :meth:`decompress` ne peut pas être rappelée. Il ne " +"reste qu'à détruire l'objet." + +#: ../Doc/library/zlib.rst:291 +msgid "" +"The optional parameter *length* sets the initial size of the output buffer." +msgstr "" +"Le paramètre optionnel *length* définit la taille initiale du tampon de " +"sortie." + +#: ../Doc/library/zlib.rst:296 +msgid "" +"Returns a copy of the decompression object. This can be used to save the " +"state of the decompressor midway through the data stream in order to speed " +"up random seeks into the stream at a future point." +msgstr "" +"Renvoie une copie du décompresseur. Vous pouvez l'utiliser pour sauvegarder " +"l'état de la décompression en cours, afin de pouvoir revenir rapidement à " +"cet endroit plus tard." + +#: ../Doc/library/zlib.rst:301 +msgid "" +"Information about the version of the zlib library in use is available " +"through the following constants:" +msgstr "" +"Des informations relatives à la version de la bibliothèque *zlib* utilisée " +"sont disponibles via les constantes suivantes :" + +#: ../Doc/library/zlib.rst:307 +msgid "" +"The version string of the zlib library that was used for building the " +"module. This may be different from the zlib library actually used at " +"runtime, which is available as :const:`ZLIB_RUNTIME_VERSION`." +msgstr "" +"Version de la bibliothèque *zlib* utilisée lors de la compilation du module. " +"Elle peut être différente de la bibliothèque *zlib* actuellement utilisée " +"par le système, qui est consultable par :const:`ZLIB_RUNTIME_VERSION`." + +#: ../Doc/library/zlib.rst:314 +msgid "" +"The version string of the zlib library actually loaded by the interpreter." +msgstr "" +"Chaîne contenant la version de la bibliothèque *zlib* actuellement utilisée " +"par l'interpréteur." + +#: ../Doc/library/zlib.rst:322 +msgid "Module :mod:`gzip`" +msgstr "Module :mod:`gzip`" + +#: ../Doc/library/zlib.rst:322 +msgid "Reading and writing :program:`gzip`\\ -format files." +msgstr "Lire et écrire des fichiers au format :program:`gzip`." + +#: ../Doc/library/zlib.rst:325 +msgid "http://www.zlib.net" +msgstr "http://www.zlib.net" + +#: ../Doc/library/zlib.rst:325 +msgid "The zlib library home page." +msgstr "Page officielle de la bibliothèque *zlib*." + +#: ../Doc/library/zlib.rst:328 +msgid "http://www.zlib.net/manual.html" +msgstr "http://www.zlib.net/manual.html" + +#: ../Doc/library/zlib.rst:328 +msgid "" +"The zlib manual explains the semantics and usage of the library's many " +"functions." +msgstr "" +"La documentation de *zlib* explique le sens et l'utilisation des nombreuses " +"fonctions fournies par la bibliothèque." diff --git a/license.po b/license.po new file mode 100644 index 000000000..b8e341c73 --- /dev/null +++ b/license.po @@ -0,0 +1,490 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-05-23 19:50+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/license.rst:7 +msgid "History and License" +msgstr "Histoire et licence" + +#: ../Doc/license.rst:11 +msgid "History of the software" +msgstr "Histoire du logiciel" + +#: ../Doc/license.rst:13 +msgid "" +"Python was created in the early 1990s by Guido van Rossum at Stichting " +"Mathematisch Centrum (CWI, see https://www.cwi.nl/) in the Netherlands as a " +"successor of a language called ABC. Guido remains Python's principal " +"author, although it includes many contributions from others." +msgstr "" +"Python a été créé au début des années 1990 par Guido van Rossum, au " +"Stichting Mathematisch Centrum (CWI, voir https://www.cwi.nl/) au Pays-Bas " +"en tant que successeur d'un langage appelé ABC. Guido est l'auteur principal " +"de Python, bien qu'il inclut de nombreuses contributions de la part d'autres " +"personnes." + +#: ../Doc/license.rst:18 +msgid "" +"In 1995, Guido continued his work on Python at the Corporation for National " +"Research Initiatives (CNRI, see https://www.cnri.reston.va.us/) in Reston, " +"Virginia where he released several versions of the software." +msgstr "" +"En 1995, Guido continua son travail sur Python au Corporation for National " +"Research Initiatives (CNRI, voir https://www.cnri.reston.va.us/) de Reston, " +"en Viriginie, d'où il diffusa plusieurs versions du logiciel." + +#: ../Doc/license.rst:22 +msgid "" +"In May 2000, Guido and the Python core development team moved to BeOpen.com " +"to form the BeOpen PythonLabs team. In October of the same year, the " +"PythonLabs team moved to Digital Creations (now Zope Corporation; see http://" +"www.zope.com/). In 2001, the Python Software Foundation (PSF, see https://" +"www.python.org/psf/) was formed, a non-profit organization created " +"specifically to own Python-related Intellectual Property. Zope Corporation " +"is a sponsoring member of the PSF." +msgstr "" +"En mai 2000, Guido et l'équipe de développement centrale de Python sont " +"partis vers BeOpen.com pour former l'équipe BeOpen PythonLabs. En octobre de " +"la même année, l'équipe de PythonLabs est partie vers Digital Creations " +"(désormais Zope Corporation; voir http://www.zope.com/). En 2001, la Python " +"Software Foundation (PSF, voir http://www.python.org/psf/) voit le jour. Il " +"s'agit d'une organisation à but non lucratif détenant les droits de " +"propriété intellectuelle de Python. Zope Corporation en est un sponsor." + +#: ../Doc/license.rst:30 +msgid "" +"All Python releases are Open Source (see https://opensource.org/ for the " +"Open Source Definition). Historically, most, but not all, Python releases " +"have also been GPL-compatible; the table below summarizes the various " +"releases." +msgstr "" +"Toutes les versions de Python sont Open Source (voir https://www.opensource." +"org/ pour la définition d'Open Source). Historiquement, la plupart, mais pas " +"toutes, des versions de Python ont également été compatible avec la GPL, le " +"tableau ci-dessous résume les différentes versions." + +#: ../Doc/license.rst:35 +msgid "Release" +msgstr "Version" + +#: ../Doc/license.rst:35 +msgid "Derived from" +msgstr "Dérivé de" + +#: ../Doc/license.rst:35 +msgid "Year" +msgstr "Année" + +#: ../Doc/license.rst:35 +msgid "Owner" +msgstr "Propriétaire" + +#: ../Doc/license.rst:35 +msgid "GPL compatible?" +msgstr "Compatible avec la GPL ?" + +#: ../Doc/license.rst:37 +msgid "0.9.0 thru 1.2" +msgstr "0.9.0 à 1.2" + +#: ../Doc/license.rst:37 +msgid "n/a" +msgstr "n/a" + +#: ../Doc/license.rst:37 +msgid "1991-1995" +msgstr "1991-1995" + +#: ../Doc/license.rst:37 +msgid "CWI" +msgstr "CWI" + +#: ../Doc/license.rst:37 ../Doc/license.rst:39 ../Doc/license.rst:49 +#: ../Doc/license.rst:51 ../Doc/license.rst:53 ../Doc/license.rst:55 +#: ../Doc/license.rst:57 +msgid "yes" +msgstr "oui" + +#: ../Doc/license.rst:39 +msgid "1.3 thru 1.5.2" +msgstr "1.3 à 1.5.2" + +#: ../Doc/license.rst:39 +msgid "1.2" +msgstr "1.2" + +#: ../Doc/license.rst:39 +msgid "1995-1999" +msgstr "1995-1999" + +#: ../Doc/license.rst:39 ../Doc/license.rst:41 ../Doc/license.rst:45 +msgid "CNRI" +msgstr "CNRI" + +#: ../Doc/license.rst:41 ../Doc/license.rst:43 ../Doc/license.rst:45 +msgid "1.6" +msgstr "1.6" + +#: ../Doc/license.rst:41 +msgid "1.5.2" +msgstr "1.5.2" + +#: ../Doc/license.rst:41 ../Doc/license.rst:43 +msgid "2000" +msgstr "2000" + +#: ../Doc/license.rst:41 ../Doc/license.rst:43 ../Doc/license.rst:45 +#: ../Doc/license.rst:47 +msgid "no" +msgstr "non" + +#: ../Doc/license.rst:43 +msgid "2.0" +msgstr "2.0" + +#: ../Doc/license.rst:43 +msgid "BeOpen.com" +msgstr "BeOpen.com" + +#: ../Doc/license.rst:45 +msgid "1.6.1" +msgstr "1.6.1" + +#: ../Doc/license.rst:45 ../Doc/license.rst:47 ../Doc/license.rst:49 +#: ../Doc/license.rst:51 +msgid "2001" +msgstr "2001" + +#: ../Doc/license.rst:47 +msgid "2.1" +msgstr "2.1" + +#: ../Doc/license.rst:47 ../Doc/license.rst:49 +msgid "2.0+1.6.1" +msgstr "2.0+1.6.1" + +#: ../Doc/license.rst:47 ../Doc/license.rst:49 ../Doc/license.rst:51 +#: ../Doc/license.rst:53 ../Doc/license.rst:55 ../Doc/license.rst:57 +msgid "PSF" +msgstr "PSF" + +#: ../Doc/license.rst:49 +msgid "2.0.1" +msgstr "2.0.1" + +#: ../Doc/license.rst:51 ../Doc/license.rst:53 ../Doc/license.rst:57 +msgid "2.1.1" +msgstr "2.1.1" + +#: ../Doc/license.rst:51 +msgid "2.1+2.0.1" +msgstr "2.1+2.0.1" + +#: ../Doc/license.rst:53 ../Doc/license.rst:55 +msgid "2.1.2" +msgstr "2.1.2" + +#: ../Doc/license.rst:53 ../Doc/license.rst:55 +msgid "2002" +msgstr "2002" + +#: ../Doc/license.rst:55 +msgid "2.1.3" +msgstr "2.1.3" + +#: ../Doc/license.rst:57 +msgid "2.2 and above" +msgstr "2.2 et ultérieure" + +#: ../Doc/license.rst:57 +msgid "2001-now" +msgstr "2001-maintenant" + +#: ../Doc/license.rst:62 +msgid "" +"GPL-compatible doesn't mean that we're distributing Python under the GPL. " +"All Python licenses, unlike the GPL, let you distribute a modified version " +"without making your changes open source. The GPL-compatible licenses make it " +"possible to combine Python with other software that is released under the " +"GPL; the others don't." +msgstr "" +"Compatible GPL ne signifie pas que nous distribuons Python sous licence GPL. " +"Toutes les licences Python, excepté la licence GPL, vous permettent la " +"distribution d'une version modifiée sans rendre open source ces changements. " +"La licence « compatible GPL » rend possible la diffusion de Python avec un " +"autre logiciel qui est lui, diffusé sous la licence GPL ; les licences « non-" +"compatibles GPL » ne le peuvent pas." + +#: ../Doc/license.rst:68 +msgid "" +"Thanks to the many outside volunteers who have worked under Guido's " +"direction to make these releases possible." +msgstr "" +"Merci aux nombreux bénévoles qui ont travaillé sous la direction de Guido " +"pour rendre ces versions possibles." + +#: ../Doc/license.rst:73 +msgid "Terms and conditions for accessing or otherwise using Python" +msgstr "Conditions générales pour accéder à, ou utiliser, Python" + +#: ../Doc/license.rst:77 +msgid "PSF LICENSE AGREEMENT FOR PYTHON |release|" +msgstr "PSF LICENSE AGREEMENT FOR PYTHON |release|" + +#: ../Doc/license.rst:125 +msgid "BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0" +msgstr "LICENCE D'UTILISATION BEOPEN.COM POUR PYTHON 2.0" + +#: ../Doc/license.rst:127 +msgid "BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1" +msgstr "LICENCE D'UTILISATION LIBRE BEOPEN PYTHON VERSION 1" + +#: ../Doc/license.rst:172 +msgid "CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1" +msgstr "LICENCE D'UTILISATION CNRI POUR PYTHON 1.6.1" + +#: ../Doc/license.rst:237 +msgid "CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2" +msgstr "LICENCE D'UTILISATION CWI POUR PYTHON 0.9.0 à 1.2" + +#: ../Doc/license.rst:262 +msgid "Licenses and Acknowledgements for Incorporated Software" +msgstr "Licences et remerciements pour les logiciels tiers" + +#: ../Doc/license.rst:264 +msgid "" +"This section is an incomplete, but growing list of licenses and " +"acknowledgements for third-party software incorporated in the Python " +"distribution." +msgstr "" +"Cette section est une liste incomplète mais grandissante de licences et " +"remerciements pour les logiciels tiers incorporés dans la distribution de " +"Python." + +#: ../Doc/license.rst:269 +msgid "Mersenne Twister" +msgstr "Mersenne twister" + +#: ../Doc/license.rst:271 +msgid "" +"The :mod:`_random` module includes code based on a download from http://www." +"math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html. The following " +"are the verbatim comments from the original code::" +msgstr "" +"Le module :mod:`_random` inclut du code construit à partir d'un " +"téléchargement depuis http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/" +"emt19937ar.html. Voici mot pour mot les commentaires du code original ::" + +#: ../Doc/license.rst:318 +msgid "Sockets" +msgstr "Interfaces de connexion (*sockets*)" + +#: ../Doc/license.rst:320 +msgid "" +"The :mod:`socket` module uses the functions, :func:`getaddrinfo`, and :func:" +"`getnameinfo`, which are coded in separate source files from the WIDE " +"Project, http://www.wide.ad.jp/. ::" +msgstr "" +"Le module :mod:`socket` utilise les fonctions :func:`getaddrinfo` et :func:" +"`getnameinfo` codées dans des fichiers source séparés et provenant du projet " +"WIDE: http://www.wide.ad.jp/. ::" + +#: ../Doc/license.rst:353 +msgid "Asynchronous socket services" +msgstr "Interfaces de connexion asynchrones" + +#: ../Doc/license.rst:355 +msgid "" +"The :mod:`asynchat` and :mod:`asyncore` modules contain the following " +"notice::" +msgstr "" +"Les modules :mod:`asynchat` et :mod:`asyncore` contiennent la note " +"suivante ::" + +#: ../Doc/license.rst:380 +msgid "Cookie management" +msgstr "Gestion de témoin (*cookie*)" + +#: ../Doc/license.rst:382 +msgid "The :mod:`http.cookies` module contains the following notice::" +msgstr "Le module :mod:`http.cookies` contient la note suivante ::" + +#: ../Doc/license.rst:408 +msgid "Execution tracing" +msgstr "Traçage d'exécution" + +#: ../Doc/license.rst:410 +msgid "The :mod:`trace` module contains the following notice::" +msgstr "Le module :mod:`trace` contient la note suivante ::" + +#: ../Doc/license.rst:441 +msgid "UUencode and UUdecode functions" +msgstr "Les fonctions UUencode et UUdecode" + +#: ../Doc/license.rst:443 +msgid "The :mod:`uu` module contains the following notice::" +msgstr "Le module :mod:`uu` contient la note suivante ::" + +#: ../Doc/license.rst:471 +msgid "XML Remote Procedure Calls" +msgstr "" +"Appel de procédures distantes en XML (*RPC*, pour *Remote Procedure Call*)" + +#: ../Doc/license.rst:473 +msgid "The :mod:`xmlrpc.client` module contains the following notice::" +msgstr "Le module :mod:`xmlrpc.client` contient la note suivante ::" + +#: ../Doc/license.rst:504 +msgid "test_epoll" +msgstr "test_epoll" + +#: ../Doc/license.rst:506 +msgid "The :mod:`test_epoll` module contains the following notice::" +msgstr "Le module :mod:`test_epoll` contient la note suivante ::" + +#: ../Doc/license.rst:530 +msgid "Select kqueue" +msgstr "Select kqueue" + +#: ../Doc/license.rst:532 +msgid "" +"The :mod:`select` module contains the following notice for the kqueue " +"interface::" +msgstr "" +"Le module :mod:`select` contient la note suivante pour l'interface " +"*kqueue* ::" + +#: ../Doc/license.rst:561 +msgid "SipHash24" +msgstr "SipHash24" + +#: ../Doc/license.rst:563 +msgid "" +"The file :file:`Python/pyhash.c` contains Marek Majkowski' implementation of " +"Dan Bernstein's SipHash24 algorithm. It contains the following note::" +msgstr "" +"Le fichier :file:`Python/pyhash.c` contient une implémentation par Marek " +"Majkowski de l'algorithme *SipHash24* de Dan Bernstein. Il contient la note " +"suivante ::" + +#: ../Doc/license.rst:590 +msgid "strtod and dtoa" +msgstr "*strtod* et *dtoa*" + +#: ../Doc/license.rst:592 +msgid "" +"The file :file:`Python/dtoa.c`, which supplies C functions dtoa and strtod " +"for conversion of C doubles to and from strings, is derived from the file of " +"the same name by David M. Gay, currently available from http://www.netlib." +"org/fp/. The original file, as retrieved on March 16, 2009, contains the " +"following copyright and licensing notice::" +msgstr "" +"Le fichier :file:`Python/dtoa.c`, qui fournit les fonctions ``dtoa`` et " +"``strtod`` pour la conversion de *doubles* C vers et depuis les chaînes, est " +"tiré d'un fichier du même nom par David M. Gay, actuellement disponible sur " +"http://www.netlib.org/fp/. Le fichier original, tel que récupéré le 16 mars " +"2009, contient la licence suivante ::" + +#: ../Doc/license.rst:620 +msgid "OpenSSL" +msgstr "OpenSSL" + +#: ../Doc/license.rst:622 +msgid "" +"The modules :mod:`hashlib`, :mod:`posix`, :mod:`ssl`, :mod:`crypt` use the " +"OpenSSL library for added performance if made available by the operating " +"system. Additionally, the Windows and Mac OS X installers for Python may " +"include a copy of the OpenSSL libraries, so we include a copy of the OpenSSL " +"license here::" +msgstr "" +"Les modules :mod:`hashlib`, :mod:`posix`, :mod:`ssl`, et :mod:`crypt` " +"utilisent la bibliothèque OpenSSL pour améliorer les performances, si elle " +"est disponible via le système d'exploitation. Aussi les outils " +"d'installation sur Windows et Mac OS X peuvent inclure une copie des " +"bibliothèques d'OpenSSL, donc on colle une copie de la licence d'OpenSSL " +"ici ::" + +#: ../Doc/license.rst:757 +msgid "expat" +msgstr "expat" + +#: ../Doc/license.rst:759 +msgid "" +"The :mod:`pyexpat` extension is built using an included copy of the expat " +"sources unless the build is configured ``--with-system-expat``::" +msgstr "" +"Le module :mod:`pyexpat` est compilé avec une copie des sources d'*expat*, " +"sauf si la compilation est configurée avec ``--with-system-expat`` ::" + +#: ../Doc/license.rst:786 +msgid "libffi" +msgstr "libffi" + +#: ../Doc/license.rst:788 +msgid "" +"The :mod:`_ctypes` extension is built using an included copy of the libffi " +"sources unless the build is configured ``--with-system-libffi``::" +msgstr "" +"Le module :mod:`_ctypes` est compilé en utilisant une copie des sources de " +"la *libffi*, sauf si la compilation est configurée avec ``--with-system-" +"libffi`` ::" + +#: ../Doc/license.rst:815 +msgid "zlib" +msgstr "zlib" + +#: ../Doc/license.rst:817 +msgid "" +"The :mod:`zlib` extension is built using an included copy of the zlib " +"sources if the zlib version found on the system is too old to be used for " +"the build::" +msgstr "" +"Le module :mod:`zlib` est compilé en utilisant une copie du code source de " +"*zlib* si la version de *zlib* trouvée sur le système est trop vieille pour " +"être utilisée ::" + +#: ../Doc/license.rst:846 +msgid "cfuhash" +msgstr "cfuhash" + +#: ../Doc/license.rst:848 +msgid "" +"The implementation of the hash table used by the :mod:`tracemalloc` is based " +"on the cfuhash project::" +msgstr "" +"L'implémentation des dictionnaires, utilisée par le module :mod:" +"`tracemalloc` est basée sur le projet *cfuhash* ::" + +#: ../Doc/license.rst:887 +msgid "libmpdec" +msgstr "libmpdec" + +#: ../Doc/license.rst:889 +msgid "" +"The :mod:`_decimal` module is built using an included copy of the libmpdec " +"library unless the build is configured ``--with-system-libmpdec``::" +msgstr "" +"Le module :mod:`_decimal` est construit en incluant une copie de la " +"bibliothèque *libmpdec*, sauf si elle est compilée avec ``--with-system-" +"libmpdec`` ::" + +#~ msgid "Floating point exception control" +#~ msgstr "Virgule flottante et contrôle d'exception" + +#~ msgid "" +#~ "The source for the :mod:`fpectl` module includes the following notice::" +#~ msgstr "" +#~ "Le code source pour le module :mod:`fpectl` inclut la note suivante ::" diff --git a/make-merge.sh b/make-merge.sh new file mode 100755 index 000000000..11ace5a22 --- /dev/null +++ b/make-merge.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +rm -rf /tmp/cpython +git clone --depth 1 --branch 3.7 --single-branch https://github.com/python/cpython /tmp/cpython + +CPYTHON_LATEST_SHA=$(git -C /tmp/cpython rev-parse --short HEAD) + +git checkout -b make-merge-$CPYTHON_LATEST_SHA + +sed -i "s/COMMIT=[a-z0-9]*/COMMIT=$CPYTHON_LATEST_SHA/" .travis.yml + +make merge + +pip install -U pyhub-pr + +git add -A + +git commit -m "merge pot files." + +git push --set-upstream origin make-merge-$CPYTHON_LATEST_SHA + +pyhub_pr --organisation python --repo python-docs-fr --token $GITHUB_TOKEN --title "Merge from upstream doc" --body "This PR was created from the command line with pyhub-pr." --head $TOKEN_OWNER_USERNAME:make-merge-$(git rev-parse --short HEAD) diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po new file mode 100644 index 000000000..02f04a0d7 --- /dev/null +++ b/reference/compound_stmts.po @@ -0,0 +1,1178 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-24 14:22+0100\n" +"PO-Revision-Date: 2019-06-08 15:20+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/reference/compound_stmts.rst:5 +msgid "Compound statements" +msgstr "Instructions composées" + +#: ../Doc/reference/compound_stmts.rst:9 +msgid "" +"Compound statements contain (groups of) other statements; they affect or " +"control the execution of those other statements in some way. In general, " +"compound statements span multiple lines, although in simple incarnations a " +"whole compound statement may be contained in one line." +msgstr "" +"Les instructions composées contiennent d'autres (groupes d’) instructions ; " +"elles affectent ou contrôlent l'exécution de ces autres instructions d'une " +"manière ou d'une autre. En général, une instruction composée couvre " +"plusieurs lignes bien que, dans sa forme la plus simple, une instruction " +"composée peut tenir sur une seule ligne." + +#: ../Doc/reference/compound_stmts.rst:14 +msgid "" +"The :keyword:`if`, :keyword:`while` and :keyword:`for` statements implement " +"traditional control flow constructs. :keyword:`try` specifies exception " +"handlers and/or cleanup code for a group of statements, while the :keyword:" +"`with` statement allows the execution of initialization and finalization " +"code around a block of code. Function and class definitions are also " +"syntactically compound statements." +msgstr "" +"Les instructions :keyword:`if`, :keyword:`while` et :keyword:`for` " +"implémentent les constructions classiques de contrôle de flux. :keyword:" +"`try` spécifie des gestionnaires d'exception et du code de nettoyage pour un " +"groupe d'instructions, tandis que l'instruction :keyword:`with` permet " +"l'exécution de code d'initialisation et de finalisation autour d'un bloc de " +"code. Les définitions de fonctions et de classes sont également, au sens " +"syntaxique, des instructions composées." + +#: ../Doc/reference/compound_stmts.rst:26 +msgid "" +"A compound statement consists of one or more 'clauses.' A clause consists " +"of a header and a 'suite.' The clause headers of a particular compound " +"statement are all at the same indentation level. Each clause header begins " +"with a uniquely identifying keyword and ends with a colon. A suite is a " +"group of statements controlled by a clause. A suite can be one or more " +"semicolon-separated simple statements on the same line as the header, " +"following the header's colon, or it can be one or more indented statements " +"on subsequent lines. Only the latter form of a suite can contain nested " +"compound statements; the following is illegal, mostly because it wouldn't be " +"clear to which :keyword:`if` clause a following :keyword:`else` clause would " +"belong::" +msgstr "" +"Une instruction composée comporte une ou plusieurs « clauses ». Une clause " +"se compose d'un en-tête et d'une « suite ». Les en-têtes des clauses d'une " +"instruction composée particulière sont toutes placées au même niveau " +"d'indentation. Chaque en-tête de clause commence par un mot-clé spécifique " +"et se termine par le caractère deux-points (`:`) ; une suite est un groupe " +"d'instructions contrôlées par une clause ; une suite se compose, après les " +"deux points de l'en-tête, soit d'une ou plusieurs instructions simples " +"séparées par des points-virgules si elles sont sur la même ligne que l'en-" +"tête, soit d'une ou plusieurs instructions en retrait sur les lignes " +"suivantes. Seule cette dernière forme d'une suite peut contenir des " +"instructions composées ; ce qui suit n'est pas licite, principalement parce " +"qu'il ne serait pas clair de savoir à quelle clause :keyword:`if` se " +"rapporterait une clause :keyword:`else` placée en fin de ligne ::" + +#: ../Doc/reference/compound_stmts.rst:39 +msgid "" +"Also note that the semicolon binds tighter than the colon in this context, " +"so that in the following example, either all or none of the :func:`print` " +"calls are executed::" +msgstr "" +"Notez également que le point-virgule se lie plus étroitement que le deux-" +"points dans ce contexte, de sorte que dans l'exemple suivant, soit tous les " +"appels :func:`print` sont exécutés, soit aucun ne l'est ::" + +#: ../Doc/reference/compound_stmts.rst:45 +msgid "Summarizing:" +msgstr "En résumé :" + +#: ../Doc/reference/compound_stmts.rst:67 +msgid "" +"Note that statements always end in a ``NEWLINE`` possibly followed by a " +"``DEDENT``. Also note that optional continuation clauses always begin with " +"a keyword that cannot start a statement, thus there are no ambiguities (the " +"'dangling :keyword:`else`' problem is solved in Python by requiring nested :" +"keyword:`if` statements to be indented)." +msgstr "" +"Notez que ces instructions se terminent toujours par un lexème ``NEWLINE`` " +"suivi éventuellement d'un ``DEDENT``. Notez également que les clauses " +"facultatives qui suivent commencent toujours par un mot-clé qui ne peut pas " +"commencer une instruction. Ainsi, il n'y a pas d'ambiguïté (le problème du :" +"keyword:`else` dont on ne sait pas à quel ``if`` il est relié est résolu en " +"Python en exigeant que des instructions :keyword:`if` imbriquées soient " +"indentées les unes par rapport aux autres)." + +#: ../Doc/reference/compound_stmts.rst:73 +msgid "" +"The formatting of the grammar rules in the following sections places each " +"clause on a separate line for clarity." +msgstr "" +"L'agencement des règles de grammaire dans les sections qui suivent place " +"chaque clause sur une ligne séparée pour plus de clarté." + +#: ../Doc/reference/compound_stmts.rst:82 +msgid "The :keyword:`!if` statement" +msgstr "L'instruction :keyword:`!if`" + +#: ../Doc/reference/compound_stmts.rst:90 +msgid "The :keyword:`if` statement is used for conditional execution:" +msgstr "" +"L'instruction :keyword:`if` est utilisée pour exécuter des instructions en " +"fonction d'une condition :" + +#: ../Doc/reference/compound_stmts.rst:97 +msgid "" +"It selects exactly one of the suites by evaluating the expressions one by " +"one until one is found to be true (see section :ref:`booleans` for the " +"definition of true and false); then that suite is executed (and no other " +"part of the :keyword:`if` statement is executed or evaluated). If all " +"expressions are false, the suite of the :keyword:`else` clause, if present, " +"is executed." +msgstr "" +"Elle sélectionne exactement une des suites en évaluant les expressions une " +"par une jusqu'à ce qu'une soit vraie (voir la section :ref:`booleans` pour " +"la définition de vrai et faux) ; ensuite cette suite est exécutée (et aucune " +"autre partie de l'instruction :keyword:`if` n'est exécutée ou évaluée). Si " +"toutes les expressions sont fausses, la suite de la clause :keyword:`else`, " +"si elle existe, est exécutée." + +#: ../Doc/reference/compound_stmts.rst:107 +msgid "The :keyword:`!while` statement" +msgstr "L'instruction :keyword:`!while`" + +#: ../Doc/reference/compound_stmts.rst:115 +msgid "" +"The :keyword:`while` statement is used for repeated execution as long as an " +"expression is true:" +msgstr "" +"L'instruction :keyword:`while` est utilisée pour exécuter des instructions " +"de manière répétée tant qu'une expression est vraie :" + +#: ../Doc/reference/compound_stmts.rst:122 +msgid "" +"This repeatedly tests the expression and, if it is true, executes the first " +"suite; if the expression is false (which may be the first time it is tested) " +"the suite of the :keyword:`!else` clause, if present, is executed and the " +"loop terminates." +msgstr "" +"Python évalue l'expression de manière répétée et, tant qu'elle est vraie, " +"exécute la première suite ; si l'expression est fausse (ce qui peut arriver " +"même lors du premier test), la suite de la clause :keyword:`!else`, si elle " +"existe, est exécutée et la boucle se termine." + +#: ../Doc/reference/compound_stmts.rst:131 +msgid "" +"A :keyword:`break` statement executed in the first suite terminates the loop " +"without executing the :keyword:`!else` clause's suite. A :keyword:" +"`continue` statement executed in the first suite skips the rest of the suite " +"and goes back to testing the expression." +msgstr "" +"Une instruction :keyword:`break` exécutée dans la première suite termine la " +"boucle sans exécuter la suite de la clause :keyword:`!else`. Une " +"instruction :keyword:`continue` exécutée dans la première suite saute le " +"reste de la suite et retourne au test de l'expression." + +#: ../Doc/reference/compound_stmts.rst:140 +msgid "The :keyword:`!for` statement" +msgstr "L'instruction :keyword:`!for`" + +#: ../Doc/reference/compound_stmts.rst:151 +msgid "" +"The :keyword:`for` statement is used to iterate over the elements of a " +"sequence (such as a string, tuple or list) or other iterable object:" +msgstr "" +"L'instruction :keyword:`for` est utilisée pour itérer sur les éléments d'une " +"séquence (par exemple une chaîne, un tuple ou une liste) ou un autre objet " +"itérable :" + +#: ../Doc/reference/compound_stmts.rst:158 +msgid "" +"The expression list is evaluated once; it should yield an iterable object. " +"An iterator is created for the result of the ``expression_list``. The suite " +"is then executed once for each item provided by the iterator, in the order " +"returned by the iterator. Each item in turn is assigned to the target list " +"using the standard rules for assignments (see :ref:`assignment`), and then " +"the suite is executed. When the items are exhausted (which is immediately " +"when the sequence is empty or an iterator raises a :exc:`StopIteration` " +"exception), the suite in the :keyword:`!else` clause, if present, is " +"executed, and the loop terminates." +msgstr "" +"La liste des expressions (*expression_list* dans la grammaire ci-dessus) est " +"évaluée une seule fois ; elle doit produire un objet itérable. Un itérateur " +"est créé pour le résultat de cette liste d'expression. La suite est ensuite " +"exécutée une fois pour chaque élément fourni par l'itérateur, dans l'ordre " +"renvoyé par l'itérateur. Chaque élément est assigné, à tour de rôle, à la " +"liste cible (*target_list* dans la grammaire ci-dessus) en utilisant les " +"règles des assignations (voir :ref:`assignment`), et ensuite la suite est " +"exécutée. Lorsque les éléments sont épuisés (ce qui est immédiat lorsque la " +"séquence est vide ou si un itérateur lève une exception :exc:" +"`StopIteration`), la suite de la clause :keyword:`!else`, si elle existe, " +"est exécutée et la boucle se termine." + +#: ../Doc/reference/compound_stmts.rst:171 +msgid "" +"A :keyword:`break` statement executed in the first suite terminates the loop " +"without executing the :keyword:`!else` clause's suite. A :keyword:" +"`continue` statement executed in the first suite skips the rest of the suite " +"and continues with the next item, or with the :keyword:`!else` clause if " +"there is no next item." +msgstr "" +"Une instruction :keyword:`break` exécutée dans la première suite termine la " +"boucle sans exécuter la suite de la clause :keyword:`!else`. Une " +"instruction :keyword:`continue` exécutée dans la première suite saute le " +"reste de la suite et continue avec l'élément suivant, ou avec la clause :" +"keyword:`!else` s'il n'y a pas d'élément suivant." + +#: ../Doc/reference/compound_stmts.rst:177 +msgid "" +"The for-loop makes assignments to the variables(s) in the target list. This " +"overwrites all previous assignments to those variables including those made " +"in the suite of the for-loop::" +msgstr "" +"La boucle ``for`` effectue des affectations aux variables de la liste cible, " +"ce qui écrase toutes les affectations antérieures de ces variables, y " +"compris celles effectuées dans la suite de la boucle ``for`` ::" + +#: ../Doc/reference/compound_stmts.rst:191 +msgid "" +"Names in the target list are not deleted when the loop is finished, but if " +"the sequence is empty, they will not have been assigned to at all by the " +"loop. Hint: the built-in function :func:`range` returns an iterator of " +"integers suitable to emulate the effect of Pascal's ``for i := a to b do``; " +"e.g., ``list(range(3))`` returns the list ``[0, 1, 2]``." +msgstr "" +"Les noms dans la liste cible ne sont pas supprimés lorsque la boucle est " +"terminée mais, si la séquence est vide, ils n'auront pas du tout été " +"assignés par la boucle. Petite astuce : la fonction native :func:`range` " +"renvoie un itérateur sur des entiers approprié pour émuler la boucle " +"classique en Pascal sur des entiers ``for i := a to b do`` ; par exemple, " +"``list(range(3))`` renvoie la liste ``[0, 1, 2]``." + +#: ../Doc/reference/compound_stmts.rst:203 +msgid "" +"There is a subtlety when the sequence is being modified by the loop (this " +"can only occur for mutable sequences, e.g. lists). An internal counter is " +"used to keep track of which item is used next, and this is incremented on " +"each iteration. When this counter has reached the length of the sequence " +"the loop terminates. This means that if the suite deletes the current (or a " +"previous) item from the sequence, the next item will be skipped (since it " +"gets the index of the current item which has already been treated). " +"Likewise, if the suite inserts an item in the sequence before the current " +"item, the current item will be treated again the next time through the loop. " +"This can lead to nasty bugs that can be avoided by making a temporary copy " +"using a slice of the whole sequence, e.g., ::" +msgstr "" +"Il y a une subtilité lorsque la séquence est modifiée par la boucle (cela ne " +"peut se produire que pour les séquences mutables, c'est-à-dire les listes). " +"Un compteur interne est utilisé pour savoir quel est l'élément suivant, et " +"ce compteur est incrémenté à chaque itération. Lorsqu'il a atteint la " +"longueur de la séquence, la boucle se termine. Cela signifie que si la suite " +"supprime l'élément courant (ou un élément précédent) de la séquence, " +"l'élément suivant est sauté (puisqu'il reçoit l'indice de l'élément courant " +"qui a déjà été traité). De même, si la suite insère un élément avant " +"l'élément courant, l'élément courant est traité une deuxième fois à la " +"prochaine itération. Ceci peut conduire à de méchants bugs, que vous pouvez " +"éviter en effectuant une copie temporaire d'une tranche ou de la séquence " +"complète, par exemple ::" + +#: ../Doc/reference/compound_stmts.rst:224 +msgid "The :keyword:`!try` statement" +msgstr "L'instruction :keyword:`!try`" + +#: ../Doc/reference/compound_stmts.rst:234 +msgid "" +"The :keyword:`try` statement specifies exception handlers and/or cleanup " +"code for a group of statements:" +msgstr "" +"L'instruction :keyword:`try` spécifie les gestionnaires d'exception ou le " +"code de nettoyage pour un groupe d'instructions :" + +#: ../Doc/reference/compound_stmts.rst:247 +msgid "" +"The :keyword:`except` clause(s) specify one or more exception handlers. When " +"no exception occurs in the :keyword:`try` clause, no exception handler is " +"executed. When an exception occurs in the :keyword:`!try` suite, a search " +"for an exception handler is started. This search inspects the except " +"clauses in turn until one is found that matches the exception. An " +"expression-less except clause, if present, must be last; it matches any " +"exception. For an except clause with an expression, that expression is " +"evaluated, and the clause matches the exception if the resulting object is " +"\"compatible\" with the exception. An object is compatible with an " +"exception if it is the class or a base class of the exception object or a " +"tuple containing an item compatible with the exception." +msgstr "" +"La ou les clauses :keyword:`except` spécifient un ou plusieurs gestionnaires " +"d'exceptions. Si aucune exception ne se produit dans la clause :keyword:" +"`try`, aucun gestionnaire d'exception n'est exécuté. Lorsqu'une exception se " +"produit dans la suite de :keyword:`!try`, Python recherche un gestionnaire " +"d'exception. Cette recherche inspecte les clauses ``except``, l'une après " +"l'autre, jusqu'à trouver une correspondance. Une clause ``except`` vide " +"(c'est-à-dire sans expression), si elle est présente, doit être la " +"dernière ; elle correspond à toute exception. Pour une clause ``except`` " +"avec une expression, cette expression est évaluée et la clause correspond si " +"l'objet résultant est « compatible » avec l'exception. Un objet est réputé " +"compatible avec une exception s'il est la classe ou une classe de base de " +"l'objet exception ou si c'est un tuple contenant un élément qui est " +"compatible avec l'exception." + +#: ../Doc/reference/compound_stmts.rst:258 +msgid "" +"If no except clause matches the exception, the search for an exception " +"handler continues in the surrounding code and on the invocation stack. [#]_" +msgstr "" +"Si aucune clause ``except`` ne correspond à l'exception, la recherche d'un " +"gestionnaire d'exception se poursuit dans le code englobant et dans la pile " +"d'appels. [#]_" + +#: ../Doc/reference/compound_stmts.rst:261 +msgid "" +"If the evaluation of an expression in the header of an except clause raises " +"an exception, the original search for a handler is canceled and a search " +"starts for the new exception in the surrounding code and on the call stack " +"(it is treated as if the entire :keyword:`try` statement raised the " +"exception)." +msgstr "" +"Si l'évaluation d'une expression dans l'en-tête d'une clause ``except`` lève " +"une exception, la recherche initiale d'un gestionnaire est annulée et une " +"recherche commence pour la nouvelle exception dans le code englobant et dans " +"la pile d'appels (c'est traité comme si l'instruction :keyword:`try` avait " +"levé l'exception)." + +#: ../Doc/reference/compound_stmts.rst:268 +msgid "" +"When a matching except clause is found, the exception is assigned to the " +"target specified after the :keyword:`!as` keyword in that except clause, if " +"present, and the except clause's suite is executed. All except clauses must " +"have an executable block. When the end of this block is reached, execution " +"continues normally after the entire try statement. (This means that if two " +"nested handlers exist for the same exception, and the exception occurs in " +"the try clause of the inner handler, the outer handler will not handle the " +"exception.)" +msgstr "" +"Lorsqu'une clause d'exception correspond, l'exception est assignée à la " +"cible spécifiée après le mot-clé :keyword:`!as` dans cette clause " +"``except``, si cette cible existe, et la suite de clause ``except`` est " +"exécutée. Toutes les clauses ``except`` doivent avoir un bloc exécutable. " +"Lorsque la fin de ce bloc est atteinte, l'exécution continue normalement " +"après l'ensemble de l'instruction ``try`` (cela signifie que si deux " +"gestionnaires imbriqués existent pour la même exception, et que l'exception " +"se produit dans la clause ``try`` du gestionnaire interne, le gestionnaire " +"externe ne gère pas l'exception)." + +#: ../Doc/reference/compound_stmts.rst:276 +msgid "" +"When an exception has been assigned using ``as target``, it is cleared at " +"the end of the except clause. This is as if ::" +msgstr "" +"Lorsqu'une exception a été assignée en utilisant ``as cible``, elle est " +"effacée à la fin de la clause ``except``. C'est comme si ::" + +#: ../Doc/reference/compound_stmts.rst:282 +msgid "was translated to ::" +msgstr "avait été traduit en ::" + +#: ../Doc/reference/compound_stmts.rst:290 +msgid "" +"This means the exception must be assigned to a different name to be able to " +"refer to it after the except clause. Exceptions are cleared because with " +"the traceback attached to them, they form a reference cycle with the stack " +"frame, keeping all locals in that frame alive until the next garbage " +"collection occurs." +msgstr "" +"Cela veut dire que l'exception doit être assignée à un nom différent pour " +"pouvoir s'y référer après la clause ``except``. Les exceptions sont effacées " +"parce qu'avec la trace de la pile d'appels qui leur est attachée, elles " +"créent un cycle dans les pointeurs de références (avec le cadre de la pile), " +"ce qui conduit à conserver tous les noms locaux de ce cadre en mémoire " +"jusqu'au passage du ramasse-miettes." + +#: ../Doc/reference/compound_stmts.rst:299 +msgid "" +"Before an except clause's suite is executed, details about the exception are " +"stored in the :mod:`sys` module and can be accessed via :func:`sys." +"exc_info`. :func:`sys.exc_info` returns a 3-tuple consisting of the " +"exception class, the exception instance and a traceback object (see section :" +"ref:`types`) identifying the point in the program where the exception " +"occurred. :func:`sys.exc_info` values are restored to their previous values " +"(before the call) when returning from a function that handled an exception." +msgstr "" +"Avant l'exécution de la suite d'une clause ``except``, les détails de " +"l'exception sont stockés dans le module :mod:`sys` et sont accessibles " +"*via* :func:`sys.exc_info`. :func:`sys.exc_info` renvoie un triplet composé " +"de la classe de l'exception, de l'instance d'exception et d'un objet trace " +"(voir la section :ref:`types`) identifiant le point du programme où " +"l'exception est survenue. Les valeurs de :func:`sys.exc_info` sont remises à " +"leurs anciennes valeurs (celles d'avant l'appel) au retour d'une fonction " +"qui a géré une exception." + +#: ../Doc/reference/compound_stmts.rst:313 +msgid "" +"The optional :keyword:`!else` clause is executed if the control flow leaves " +"the :keyword:`try` suite, no exception was raised, and no :keyword:" +"`return`, :keyword:`continue`, or :keyword:`break` statement was executed. " +"Exceptions in the :keyword:`!else` clause are not handled by the preceding :" +"keyword:`except` clauses." +msgstr "" +"La clause optionnelle :keyword:`!else` n'est exécutée que si l'exécution " +"atteint la fin de la clause :keyword:`try`, aucune exception n'a été levée, " +"et aucun :keyword:`return`, :keyword:`continue`, ou :keyword:`break` ont " +"étés exécutés. Les exceptions dans la clause :keyword:`!else` ne sont pas " +"gérées par les clauses :keyword:`except` précédentes." + +#: ../Doc/reference/compound_stmts.rst:321 +msgid "" +"If :keyword:`finally` is present, it specifies a 'cleanup' handler. The :" +"keyword:`try` clause is executed, including any :keyword:`except` and :" +"keyword:`!else` clauses. If an exception occurs in any of the clauses and " +"is not handled, the exception is temporarily saved. The :keyword:`!finally` " +"clause is executed. If there is a saved exception it is re-raised at the " +"end of the :keyword:`!finally` clause. If the :keyword:`!finally` clause " +"raises another exception, the saved exception is set as the context of the " +"new exception. If the :keyword:`!finally` clause executes a :keyword:" +"`return` or :keyword:`break` statement, the saved exception is discarded::" +msgstr "" +"Si :keyword:`finally` est présente, elle spécifie un gestionnaire de " +"\"nettoyage\". La clause :keyword:`try` est exécutée, y compris les clauses :" +"keyword:`except` et :keyword:`!else`. Si une exception se produit dans l'une " +"des clauses et n'est pas traitée, l'exception est temporairement " +"sauvegardée. La clause :keyword:`!finally` est exécutée. S'il y a une " +"exception sauvegardée, elle est levée à nouveau à la fin de la clause :" +"keyword:`!finally`. Si la clause :keyword:`!finally` lève une autre " +"exception, l'exception sauvegardée est définie comme le contexte de la " +"nouvelle exception. Si la clause :keyword:`!finally` exécute une " +"instruction :keyword:`return` ou :keyword:`break`, l'exception sauvegardée " +"est jetée ::" + +#: ../Doc/reference/compound_stmts.rst:340 +msgid "" +"The exception information is not available to the program during execution " +"of the :keyword:`finally` clause." +msgstr "" +"L'information relative à l'exception n'est pas disponible pour le programme " +"pendant l'exécution de la clause :keyword:`finally`." + +#: ../Doc/reference/compound_stmts.rst:348 +msgid "" +"When a :keyword:`return`, :keyword:`break` or :keyword:`continue` statement " +"is executed in the :keyword:`try` suite of a :keyword:`!try`...\\ :keyword:`!" +"finally` statement, the :keyword:`finally` clause is also executed 'on the " +"way out.' A :keyword:`continue` statement is illegal in the :keyword:`!" +"finally` clause. (The reason is a problem with the current implementation " +"--- this restriction may be lifted in the future)." +msgstr "" +"Lorsqu'une instruction :keyword:`return`, :keyword:`break` ou :keyword:" +"`continue` est exécutée dans la suite d'une instruction :keyword:`try` d'une " +"construction :keyword:`!try`...\\ :keyword:`!finally`, la clause :keyword:" +"`finally` est aussi exécutée à la sortie. Une instruction :keyword:" +"`continue` est illégale dans une clause :keyword:`!finally` (la raison est " +"que l'implémentation actuelle pose problème --- il est possible que cette " +"restriction soit levée dans le futur)." + +#: ../Doc/reference/compound_stmts.rst:355 +msgid "" +"The return value of a function is determined by the last :keyword:`return` " +"statement executed. Since the :keyword:`finally` clause always executes, a :" +"keyword:`!return` statement executed in the :keyword:`!finally` clause will " +"always be the last one executed::" +msgstr "" +"La valeur de retour d'une fonction est déterminée par la dernière " +"instruction :keyword:`return` exécutée. Puisque la clause :keyword:`finally` " +"s'exécute toujours, une instruction :keyword:`!return` exécutée dans le :" +"keyword:`!finally` sera toujours la dernière clause exécutée ::" + +#: ../Doc/reference/compound_stmts.rst:369 +msgid "" +"Additional information on exceptions can be found in section :ref:" +"`exceptions`, and information on using the :keyword:`raise` statement to " +"generate exceptions may be found in section :ref:`raise`." +msgstr "" +"Vous trouvez des informations supplémentaires relatives aux exceptions dans " +"la section :ref:`exceptions` et, dans la section :ref:`raise`, des " +"informations relatives à l'utilisation de l'instruction :keyword:`raise` " +"pour produire des exceptions." + +#: ../Doc/reference/compound_stmts.rst:378 +msgid "The :keyword:`!with` statement" +msgstr "L'instruction :keyword:`!with`" + +#: ../Doc/reference/compound_stmts.rst:387 +msgid "" +"The :keyword:`with` statement is used to wrap the execution of a block with " +"methods defined by a context manager (see section :ref:`context-managers`). " +"This allows common :keyword:`try`...\\ :keyword:`except`...\\ :keyword:" +"`finally` usage patterns to be encapsulated for convenient reuse." +msgstr "" +"L'instruction :keyword:`with` est utilisée pour encapsuler l'exécution d'un " +"bloc avec des méthodes définies par un gestionnaire de contexte (voir la " +"section :ref:`context-managers`). Cela permet d'utiliser de manière simple " +"le patron de conception classique :keyword:`try`…\\ :keyword:`except`…\\ :" +"keyword:`finally`." + +#: ../Doc/reference/compound_stmts.rst:396 +msgid "" +"The execution of the :keyword:`with` statement with one \"item\" proceeds as " +"follows:" +msgstr "" +"L'exécution de l'instruction :keyword:`with` avec un seul " +"« élément » (*item* dans la grammaire) se déroule comme suit :" + +#: ../Doc/reference/compound_stmts.rst:398 +msgid "" +"The context expression (the expression given in the :token:`with_item`) is " +"evaluated to obtain a context manager." +msgstr "" +"L'expression de contexte (l'expression donnée dans le :token:`with_item`) " +"est évaluée pour obtenir un gestionnaire de contexte." + +#: ../Doc/reference/compound_stmts.rst:401 +msgid "The context manager's :meth:`__exit__` is loaded for later use." +msgstr "" +"La méthode :meth:`__exit__` du gestionnaire de contexte est chargée pour une " +"utilisation ultérieure." + +#: ../Doc/reference/compound_stmts.rst:403 +msgid "The context manager's :meth:`__enter__` method is invoked." +msgstr "La méthode :meth:`__enter__` du gestionnaire de contexte est invoquée." + +#: ../Doc/reference/compound_stmts.rst:405 +msgid "" +"If a target was included in the :keyword:`with` statement, the return value " +"from :meth:`__enter__` is assigned to it." +msgstr "" +"Si une cible (*target* dans la grammaire ci-dessus) a été incluse dans " +"l'instruction :keyword:`with`, la valeur de retour de :meth:`__enter__` lui " +"est assignée." + +#: ../Doc/reference/compound_stmts.rst:410 +msgid "" +"The :keyword:`with` statement guarantees that if the :meth:`__enter__` " +"method returns without an error, then :meth:`__exit__` will always be " +"called. Thus, if an error occurs during the assignment to the target list, " +"it will be treated the same as an error occurring within the suite would be. " +"See step 6 below." +msgstr "" +"L'instruction :keyword:`with` garantit que si la méthode :meth:`__enter__` " +"se termine sans erreur, alors la méthode :meth:`__exit__` est toujours " +"appelée. Ainsi, si une erreur se produit pendant l'assignation à la liste " +"cible, elle est traitée de la même façon qu'une erreur se produisant dans la " +"suite. Voir l'étape 6 ci-dessous." + +#: ../Doc/reference/compound_stmts.rst:416 +msgid "The suite is executed." +msgstr "La suite est exécutée." + +#: ../Doc/reference/compound_stmts.rst:418 +msgid "" +"The context manager's :meth:`__exit__` method is invoked. If an exception " +"caused the suite to be exited, its type, value, and traceback are passed as " +"arguments to :meth:`__exit__`. Otherwise, three :const:`None` arguments are " +"supplied." +msgstr "" +"La méthode :meth:`__exit__` du gestionnaire de contexte est invoquée. Si une " +"exception a causé la sortie de la suite, son type, sa valeur et sa pile " +"d'appels sont passés en arguments à :meth:`__exit__`. Sinon, trois " +"arguments :const:`None` sont fournis." + +#: ../Doc/reference/compound_stmts.rst:423 +msgid "" +"If the suite was exited due to an exception, and the return value from the :" +"meth:`__exit__` method was false, the exception is reraised. If the return " +"value was true, the exception is suppressed, and execution continues with " +"the statement following the :keyword:`with` statement." +msgstr "" +"Si l'on est sorti de la suite en raison d'une exception et que la valeur de " +"retour de la méthode :meth:`__exit__` était fausse, l'exception est levée à " +"nouveau. Si la valeur de retour était vraie, l'exception est supprimée et " +"l'exécution continue avec l'instruction qui suit l'instruction :keyword:" +"`with`." + +#: ../Doc/reference/compound_stmts.rst:428 +msgid "" +"If the suite was exited for any reason other than an exception, the return " +"value from :meth:`__exit__` is ignored, and execution proceeds at the normal " +"location for the kind of exit that was taken." +msgstr "" +"Si l'on est sorti de la suite pour une raison autre qu'une exception, la " +"valeur de retour de :meth:`__exit__` est ignorée et l'exécution se poursuit " +"à l'endroit normal pour le type de sortie prise." + +#: ../Doc/reference/compound_stmts.rst:432 +msgid "" +"With more than one item, the context managers are processed as if multiple :" +"keyword:`with` statements were nested::" +msgstr "" +"Avec plus d'un élément, les gestionnaires de contexte sont traités comme si " +"plusieurs instructions :keyword:`with` étaient imbriquées ::" + +#: ../Doc/reference/compound_stmts.rst:438 +#: ../Doc/reference/compound_stmts.rst:653 +msgid "is equivalent to ::" +msgstr "est équivalente à ::" + +#: ../Doc/reference/compound_stmts.rst:444 +msgid "Support for multiple context expressions." +msgstr "Prise en charge de multiples expressions de contexte." + +#: ../Doc/reference/compound_stmts.rst:450 +msgid ":pep:`343` - The \"with\" statement" +msgstr ":pep:`343` — L'instruction « *with* »" + +#: ../Doc/reference/compound_stmts.rst:450 +msgid "" +"The specification, background, and examples for the Python :keyword:`with` " +"statement." +msgstr "" +"La spécification, les motivations et des exemples de l'instruction :keyword:" +"`with` en Python." + +#: ../Doc/reference/compound_stmts.rst:461 +msgid "Function definitions" +msgstr "Définition de fonctions" + +#: ../Doc/reference/compound_stmts.rst:476 +msgid "" +"A function definition defines a user-defined function object (see section :" +"ref:`types`):" +msgstr "" +"Une définition de fonction définit un objet fonction allogène (voir la " +"section :ref:`types`) :" + +#: ../Doc/reference/compound_stmts.rst:494 +msgid "" +"A function definition is an executable statement. Its execution binds the " +"function name in the current local namespace to a function object (a wrapper " +"around the executable code for the function). This function object contains " +"a reference to the current global namespace as the global namespace to be " +"used when the function is called." +msgstr "" +"Une définition de fonction est une instruction qui est exécutée. Son " +"exécution lie le nom de la fonction, dans l'espace de nommage local courant, " +"à un objet fonction (un objet qui encapsule le code exécutable de la " +"fonction). Cet objet fonction contient une référence à l'espace des noms " +"globaux courant comme espace des noms globaux à utiliser lorsque la fonction " +"est appelée." + +#: ../Doc/reference/compound_stmts.rst:500 +msgid "" +"The function definition does not execute the function body; this gets " +"executed only when the function is called. [#]_" +msgstr "" +"La définition de la fonction n'exécute pas le corps de la fonction ; elle " +"n'est exécutée que lorsque la fonction est appelée. [#]_" + +#: ../Doc/reference/compound_stmts.rst:506 +msgid "" +"A function definition may be wrapped by one or more :term:`decorator` " +"expressions. Decorator expressions are evaluated when the function is " +"defined, in the scope that contains the function definition. The result " +"must be a callable, which is invoked with the function object as the only " +"argument. The returned value is bound to the function name instead of the " +"function object. Multiple decorators are applied in nested fashion. For " +"example, the following code ::" +msgstr "" +"Une définition de fonction peut être encapsulée dans une ou plusieurs " +"expressions :term:`decorator` ; les décorateurs sont évalués lorsque la " +"fonction est définie, dans la portée qui contient la définition de " +"fonction ; le résultat doit être un appelable, qui est invoqué avec l'objet " +"fonction comme seul argument ; la valeur renvoyée est liée au nom de la " +"fonction en lieu et place de l'objet fonction. Lorsqu'il y a plusieurs " +"décorateurs, ils sont appliqués par imbrication ; par exemple, le code " +"suivant ::" + +#: ../Doc/reference/compound_stmts.rst:517 +#: ../Doc/reference/compound_stmts.rst:683 +msgid "is roughly equivalent to ::" +msgstr "est à peu près équivalent à ::" + +#: ../Doc/reference/compound_stmts.rst:522 +msgid "" +"except that the original function is not temporarily bound to the name " +"``func``." +msgstr "" +"sauf que la fonction originale n'est pas temporairement liée au nom ``func``." + +#: ../Doc/reference/compound_stmts.rst:529 +msgid "" +"When one or more :term:`parameters ` have the form *parameter* " +"``=`` *expression*, the function is said to have \"default parameter values." +"\" For a parameter with a default value, the corresponding :term:`argument` " +"may be omitted from a call, in which case the parameter's default value is " +"substituted. If a parameter has a default value, all following parameters " +"up until the \"``*``\" must also have a default value --- this is a " +"syntactic restriction that is not expressed by the grammar." +msgstr "" +"Lorsqu'un ou plusieurs :term:`paramètres ` sont de la forme " +"*parameter* ``=`` *expression*, on dit que la fonction a des « valeurs de " +"paramètres par défaut ». Pour un paramètre avec une valeur par défaut, l’:" +"term:`argument` correspondant peut être omis lors de l'appel, la valeur par " +"défaut du paramètre est alors utilisée. Si un paramètre a une valeur par " +"défaut, tous les paramètres suivants jusqu'à \"``*``\" doivent aussi avoir " +"une valeur par défaut — ceci est une restriction syntaxique qui n'est pas " +"exprimée dans la grammaire." + +#: ../Doc/reference/compound_stmts.rst:537 +msgid "" +"**Default parameter values are evaluated from left to right when the " +"function definition is executed.** This means that the expression is " +"evaluated once, when the function is defined, and that the same \"pre-" +"computed\" value is used for each call. This is especially important to " +"understand when a default parameter is a mutable object, such as a list or a " +"dictionary: if the function modifies the object (e.g. by appending an item " +"to a list), the default value is in effect modified. This is generally not " +"what was intended. A way around this is to use ``None`` as the default, and " +"explicitly test for it in the body of the function, e.g.::" +msgstr "" +"**Les valeurs par défaut des paramètres sont évaluées de la gauche vers la " +"droite quand la définition de la fonction est exécutée**. Cela signifie que " +"l'expression est évaluée une fois, lorsque la fonction est définie, et que " +"c'est la même valeur « pré-calculée » qui est utilisée à chaque appel. C'est " +"particulièrement important à comprendre lorsqu'un paramètre par défaut est " +"un objet mutable, tel qu'une liste ou un dictionnaire : si la fonction " +"modifie l'objet (par exemple en ajoutant un élément à une liste), la valeur " +"par défaut est modifiée. En général, ce n'est pas l'effet voulu. Une façon " +"d'éviter cet écueil est d'utiliser ``None`` par défaut et de tester " +"explicitement la valeur dans le corps de la fonction. Par exemple ::" + +#: ../Doc/reference/compound_stmts.rst:557 +msgid "" +"Function call semantics are described in more detail in section :ref:" +"`calls`. A function call always assigns values to all parameters mentioned " +"in the parameter list, either from position arguments, from keyword " +"arguments, or from default values. If the form \"``*identifier``\" is " +"present, it is initialized to a tuple receiving any excess positional " +"parameters, defaulting to the empty tuple. If the form \"``**identifier``\" " +"is present, it is initialized to a new ordered mapping receiving any excess " +"keyword arguments, defaulting to a new empty mapping of the same type. " +"Parameters after \"``*``\" or \"``*identifier``\" are keyword-only " +"parameters and may only be passed used keyword arguments." +msgstr "" +"La sémantique de l'appel de fonction est décrite plus en détail dans la " +"section :ref:`calls`. Un appel de fonction assigne toujours des valeurs à " +"tous les paramètres mentionnés dans la liste des paramètres, soit à partir " +"d'arguments positionnels, d'arguments par mots-clés ou de valeurs par " +"défaut. S'il y a un paramètre de la forme \"``*identifier``\", il est " +"initialisé à un tuple recevant les paramètres positionnels en surplus, la " +"valeur par défaut étant le tuple vide. S'il y a un paramètre de la forme " +"\"``**identifier``\", il est initialisé à un nouveau tableau associatif " +"ordonné qui récupère tous les arguments par mot-clé en surplus, la valeur " +"par défaut étant un tableau associatif vide. Les paramètres après \"``*``\" " +"ou \"``*identifier``\" sont forcément des paramètres par mot-clé et ne " +"peuvent être passés qu'en utilisant des arguments par mot-clé." + +#: ../Doc/reference/compound_stmts.rst:573 +msgid "" +"Parameters may have an :term:`annotation ` of the form " +"\"``: expression``\" following the parameter name. Any parameter may have " +"an annotation, even those of the form ``*identifier`` or ``**identifier``. " +"Functions may have \"return\" annotation of the form \"``-> expression``\" " +"after the parameter list. These annotations can be any valid Python " +"expression. The presence of annotations does not change the semantics of a " +"function. The annotation values are available as values of a dictionary " +"keyed by the parameters' names in the :attr:`__annotations__` attribute of " +"the function object. If the ``annotations`` import from :mod:`__future__` " +"is used, annotations are preserved as strings at runtime which enables " +"postponed evaluation. Otherwise, they are evaluated when the function " +"definition is executed. In this case annotations may be evaluated in a " +"different order than they appear in the source code." +msgstr "" +"Les paramètres peuvent avoir une :term:`annotation ` " +"sous la forme \"``: expression``\" après le nom du paramètre. Tout paramètre " +"peut avoir une annotation, même ceux de la forme ``*identifier`` ou " +"``**identifier``. Les fonctions peuvent avoir une annotation pour la valeur " +"de retour, sous la forme \"``-> expression``\" après la liste des " +"paramètres. Ces annotations peuvent prendre la forme de toute expression " +"Python valide. Leur présence ne change pas la sémantique de la fonction. Les " +"valeurs des annotations sont accessibles comme valeurs d'un dictionnaire " +"dont les clés sont les noms des paramètres et défini comme attribut :attr:" +"`__annotations__` de l'objet fonction. Si ``annotations`` est importé de :" +"mod:`__future__`, les annotations sont conservées sous la forme de chaînes " +"de caractères, permettant leur évaluation différée. Autrement, elles sont " +"interprétées en même temps que la déclaration des fonctions. Dans le premier " +"cas, les annotations peuvent être interprétées dans un ordre différent de " +"l'ordre dans lequel elles apparaissent dans le fichier." + +#: ../Doc/reference/compound_stmts.rst:588 +msgid "" +"It is also possible to create anonymous functions (functions not bound to a " +"name), for immediate use in expressions. This uses lambda expressions, " +"described in section :ref:`lambda`. Note that the lambda expression is " +"merely a shorthand for a simplified function definition; a function defined " +"in a \":keyword:`def`\" statement can be passed around or assigned to " +"another name just like a function defined by a lambda expression. The \":" +"keyword:`!def`\" form is actually more powerful since it allows the " +"execution of multiple statements and annotations." +msgstr "" +"Il est aussi possible de créer des fonctions anonymes (fonctions non liées à " +"un nom), pour une utilisation immédiate dans des expressions. Utilisez alors " +"des expressions lambda, décrites dans la section :ref:`lambda`. Notez qu'une " +"expression lambda est simplement un raccourci pour définir une fonction " +"simple ; une fonction définie par une instruction \":keyword:`def`\" peut " +"être passée (en argument) ou assignée à un autre nom, tout comme une " +"fonction définie par une expression lambda. La forme \":keyword:`!def`\" est " +"en fait plus puissante puisqu'elle permet l'exécution de plusieurs " +"instructions et les annotations." + +#: ../Doc/reference/compound_stmts.rst:596 +msgid "" +"**Programmer's note:** Functions are first-class objects. A \"``def``\" " +"statement executed inside a function definition defines a local function " +"that can be returned or passed around. Free variables used in the nested " +"function can access the local variables of the function containing the def. " +"See section :ref:`naming` for details." +msgstr "" +"**Note pour les programmeurs :** les fonctions sont des objets de première " +"classe. Une instruction \"``def``\" exécutée à l'intérieur d'une définition " +"de fonction définit une fonction locale qui peut être renvoyée ou passée en " +"tant qu'argument. Les variables libres utilisées dans la fonction imbriquée " +"ont accès aux variables locales de la fonction contenant le \"``def``\". " +"Voir la section :ref:`naming` pour plus de détails." + +#: ../Doc/reference/compound_stmts.rst:605 +msgid ":pep:`3107` - Function Annotations" +msgstr ":pep:`3107` — Annotations de fonctions" + +#: ../Doc/reference/compound_stmts.rst:605 +msgid "The original specification for function annotations." +msgstr "La spécification originale pour les annotations de fonctions." + +#: ../Doc/reference/compound_stmts.rst:608 +msgid ":pep:`484` - Type Hints" +msgstr ":pep:`484` — Indications de types" + +#: ../Doc/reference/compound_stmts.rst:608 +msgid "Definition of a standard meaning for annotations: type hints." +msgstr "" +"Définition de la signification standard pour les annotations : indications " +"de types." + +#: ../Doc/reference/compound_stmts.rst:612 +msgid ":pep:`526` - Syntax for Variable Annotations" +msgstr ":pep:`526` — Syntaxe pour les annotations de variables" + +#: ../Doc/reference/compound_stmts.rst:611 +msgid "" +"Ability to type hint variable declarations, including class variables and " +"instance variables" +msgstr "" +"Capacité d'indiquer des types pour les déclarations de variables, y compris " +"les variables de classes et les variables d'instances" + +#: ../Doc/reference/compound_stmts.rst:615 +msgid ":pep:`563` - Postponed Evaluation of Annotations" +msgstr ":pep:`563` — Évaluation différée des annotations" + +#: ../Doc/reference/compound_stmts.rst:615 +msgid "" +"Support for forward references within annotations by preserving annotations " +"in a string form at runtime instead of eager evaluation." +msgstr "" +"Gestion des références postérieures à l'intérieur des annotations en " +"préservant les annotations sous forme de chaînes à l'exécution au lieu d'une " +"évaluation directe." + +#: ../Doc/reference/compound_stmts.rst:622 +msgid "Class definitions" +msgstr "Définition de classes" + +#: ../Doc/reference/compound_stmts.rst:637 +msgid "A class definition defines a class object (see section :ref:`types`):" +msgstr "" +"Une définition de classe définit un objet classe (voir la section :ref:" +"`types`) :" + +#: ../Doc/reference/compound_stmts.rst:644 +msgid "" +"A class definition is an executable statement. The inheritance list usually " +"gives a list of base classes (see :ref:`metaclasses` for more advanced " +"uses), so each item in the list should evaluate to a class object which " +"allows subclassing. Classes without an inheritance list inherit, by " +"default, from the base class :class:`object`; hence, ::" +msgstr "" +"Une définition de classe est une instruction qui est exécutée. La liste " +"d'héritage (*inheritance* entre crochets dans la grammaire ci-dessus) donne " +"habituellement une liste de classes de base (voir :ref:`metaclasses` pour " +"des utilisations plus avancées). Donc chaque élément de la liste doit " +"pouvoir être évalué comme un objet classe qui autorise les sous-classes. Les " +"classes sans liste d'héritage héritent, par défaut, de la classe de base :" +"class:`object` ; d'où ::" + +#: ../Doc/reference/compound_stmts.rst:658 +msgid "" +"The class's suite is then executed in a new execution frame (see :ref:" +"`naming`), using a newly created local namespace and the original global " +"namespace. (Usually, the suite contains mostly function definitions.) When " +"the class's suite finishes execution, its execution frame is discarded but " +"its local namespace is saved. [#]_ A class object is then created using the " +"inheritance list for the base classes and the saved local namespace for the " +"attribute dictionary. The class name is bound to this class object in the " +"original local namespace." +msgstr "" +"La suite de la classe est ensuite exécutée dans un nouveau cadre d'exécution " +"(voir :ref:`naming`), en utilisant un espace de nommage local nouvellement " +"créé et l'espace de nommage global d'origine (habituellement, la suite " +"contient principalement des définitions de fonctions). Lorsque la suite de " +"la classe termine son exécution, son cadre d'exécution est abandonné mais " +"son espace des noms locaux est sauvegardé [#]_. Un objet classe est alors " +"créé en utilisant la liste d'héritage pour les classes de base et l'espace " +"de nommage sauvegardé comme dictionnaire des attributs. Le nom de classe est " +"lié à l'objet classe dans l'espace de nommage local original." + +#: ../Doc/reference/compound_stmts.rst:667 +msgid "" +"The order in which attributes are defined in the class body is preserved in " +"the new class's ``__dict__``. Note that this is reliable only right after " +"the class is created and only for classes that were defined using the " +"definition syntax." +msgstr "" +"L'ordre dans lequel les attributs sont définis dans le corps de la classe " +"est préservé dans le ``__dict__`` de la nouvelle classe. Notez que ceci " +"n'est fiable que juste après la création de la classe et seulement pour les " +"classes qui ont été définies en utilisant la syntaxe de définition." + +#: ../Doc/reference/compound_stmts.rst:672 +msgid "" +"Class creation can be customized heavily using :ref:`metaclasses " +"`." +msgstr "" +"La création de classes peut être fortement personnalisée en utilisant les :" +"ref:`métaclasses `." + +#: ../Doc/reference/compound_stmts.rst:677 +msgid "Classes can also be decorated: just like when decorating functions, ::" +msgstr "" +"Les classes peuvent aussi être décorées : comme pour les décorateurs de " +"fonctions, ::" + +#: ../Doc/reference/compound_stmts.rst:688 +msgid "" +"The evaluation rules for the decorator expressions are the same as for " +"function decorators. The result is then bound to the class name." +msgstr "" +"Les règles d'évaluation pour les expressions de décorateurs sont les mêmes " +"que pour les décorateurs de fonctions. Le résultat est alors lié au nom de " +"la classe." + +#: ../Doc/reference/compound_stmts.rst:691 +msgid "" +"**Programmer's note:** Variables defined in the class definition are class " +"attributes; they are shared by instances. Instance attributes can be set in " +"a method with ``self.name = value``. Both class and instance attributes are " +"accessible through the notation \"``self.name``\", and an instance attribute " +"hides a class attribute with the same name when accessed in this way. Class " +"attributes can be used as defaults for instance attributes, but using " +"mutable values there can lead to unexpected results. :ref:`Descriptors " +"` can be used to create instance variables with different " +"implementation details." +msgstr "" +"**Note pour les programmeurs :** les variables définies dans la définition " +"de classe sont des attributs de classe ; elles sont partagées par les " +"instances. Les attributs d'instance peuvent être définis dans une méthode en " +"utilisant ``self.name = value``. Les attributs de classe et d'instance sont " +"accessibles par la notation \"``self.name``\", et un attribut d'instance " +"masque un attribut de classe de même nom lorsqu'on y accède de cette façon. " +"Les attributs de classe peuvent être utilisés comme valeurs par défaut pour " +"les attributs d'instances, mais l'utilisation de valeurs mutables peut " +"conduire à des résultats inattendus. Les :ref:`descripteurs ` " +"peuvent être utilisés pour créer des variables d'instances avec des détails " +"d'implémentation différents." + +#: ../Doc/reference/compound_stmts.rst:706 +msgid ":pep:`3115` - Metaclasses in Python 3000" +msgstr ":pep:`3115` — Métaclasses dans Python 3000" + +#: ../Doc/reference/compound_stmts.rst:704 +msgid "" +"The proposal that changed the declaration of metaclasses to the current " +"syntax, and the semantics for how classes with metaclasses are constructed." +msgstr "" +"La proposition qui a modifié la déclaration de métaclasses à la syntaxe " +"actuelle, et la sémantique pour la façon dont les classes avec métaclasses " +"sont construites." + +#: ../Doc/reference/compound_stmts.rst:709 +msgid ":pep:`3129` - Class Decorators" +msgstr ":pep:`3129` — Décorateurs de classes" + +#: ../Doc/reference/compound_stmts.rst:709 +msgid "" +"The proposal that added class decorators. Function and method decorators " +"were introduced in :pep:`318`." +msgstr "" +"La proposition qui a ajouté des décorateurs de classe. Les décorateurs de " +"fonction et de méthode ont été introduits dans :pep:`318`." + +#: ../Doc/reference/compound_stmts.rst:716 +msgid "Coroutines" +msgstr "Coroutines" + +#: ../Doc/reference/compound_stmts.rst:724 +msgid "Coroutine function definition" +msgstr "Définition de fonctions coroutines" + +#: ../Doc/reference/compound_stmts.rst:734 +msgid "" +"Execution of Python coroutines can be suspended and resumed at many points " +"(see :term:`coroutine`). Inside the body of a coroutine function, ``await`` " +"and ``async`` identifiers become reserved keywords; :keyword:`await` " +"expressions, :keyword:`async for` and :keyword:`async with` can only be used " +"in coroutine function bodies." +msgstr "" +"L'exécution de coroutines Python peut être suspendue et reprise à plusieurs " +"endroits (voir :term:`coroutine`). Dans le corps d'une coroutine, tout " +"identificateur ``await`` ou ``async`` devient un mots-clé réservé ; les " +"expressions :keyword:`await`, :keyword:`async for` et :keyword:`async with` " +"ne peuvent être utilisées que dans les corps de coroutines." + +#: ../Doc/reference/compound_stmts.rst:740 +msgid "" +"Functions defined with ``async def`` syntax are always coroutine functions, " +"even if they do not contain ``await`` or ``async`` keywords." +msgstr "" +"Les fonctions définies avec la syntaxe ``async def`` sont toujours des " +"fonctions coroutines, même si elles ne contiennent aucun mot-clé ``await`` " +"ou ``async``." + +#: ../Doc/reference/compound_stmts.rst:743 +msgid "" +"It is a :exc:`SyntaxError` to use a ``yield from`` expression inside the " +"body of a coroutine function." +msgstr "" +"C'est une :exc:`SyntaxError` d'utiliser une expression ``yield from`` dans " +"une coroutine." + +#: ../Doc/reference/compound_stmts.rst:746 +msgid "An example of a coroutine function::" +msgstr "Un exemple de fonction coroutine ::" + +#: ../Doc/reference/compound_stmts.rst:757 +msgid "The :keyword:`!async for` statement" +msgstr "L'instruction :keyword:`!async for`" + +#: ../Doc/reference/compound_stmts.rst:762 +msgid "" +"An :term:`asynchronous iterable` is able to call asynchronous code in its " +"*iter* implementation, and :term:`asynchronous iterator` can call " +"asynchronous code in its *next* method." +msgstr "" +"Un :term:`itérable asynchrone ` est capable d'appeler " +"du code asynchrone dans l'implémentation de sa méthode *iter* ; un :term:" +"`itérateur asynchrone ` peut appeler du code " +"asynchrone dans sa méthode *next*." + +#: ../Doc/reference/compound_stmts.rst:766 +msgid "" +"The ``async for`` statement allows convenient iteration over asynchronous " +"iterators." +msgstr "" +"L'instruction ``async for`` permet d'itérer facilement sur des itérateurs " +"asynchrones." + +#: ../Doc/reference/compound_stmts.rst:769 +#: ../Doc/reference/compound_stmts.rst:809 +msgid "The following code::" +msgstr "Le code suivant ::" + +#: ../Doc/reference/compound_stmts.rst:776 +#: ../Doc/reference/compound_stmts.rst:814 +msgid "Is semantically equivalent to::" +msgstr "est sémantiquement équivalent à ::" + +#: ../Doc/reference/compound_stmts.rst:791 +msgid "See also :meth:`__aiter__` and :meth:`__anext__` for details." +msgstr "" +"Voir aussi :meth:`__aiter__` et :meth:`__anext__` pour plus de détails." + +#: ../Doc/reference/compound_stmts.rst:793 +msgid "" +"It is a :exc:`SyntaxError` to use an ``async for`` statement outside the " +"body of a coroutine function." +msgstr "" +"C'est une :exc:`SyntaxError` d'utiliser une instruction ``async for`` en " +"dehors d'une fonction coroutine." + +#: ../Doc/reference/compound_stmts.rst:801 +msgid "The :keyword:`!async with` statement" +msgstr "L'instruction :keyword:`!async with`" + +#: ../Doc/reference/compound_stmts.rst:806 +msgid "" +"An :term:`asynchronous context manager` is a :term:`context manager` that is " +"able to suspend execution in its *enter* and *exit* methods." +msgstr "" +"Un :term:`gestionnaire de contexte asynchrone ` est un :term:`gestionnaire de contexte ` qui est " +"capable de suspendre l'exécution dans ses méthodes *enter* et *exit*." + +#: ../Doc/reference/compound_stmts.rst:829 +msgid "See also :meth:`__aenter__` and :meth:`__aexit__` for details." +msgstr "" +"Voir aussi :meth:`__aenter__` et :meth:`__aexit__` pour plus de détails." + +#: ../Doc/reference/compound_stmts.rst:831 +msgid "" +"It is a :exc:`SyntaxError` to use an ``async with`` statement outside the " +"body of a coroutine function." +msgstr "" +"C'est une :exc:`SyntaxError` d'utiliser l'instruction ``async with`` en " +"dehors d'une fonction coroutine." + +#: ../Doc/reference/compound_stmts.rst:837 +msgid ":pep:`492` - Coroutines with async and await syntax" +msgstr ":pep:`492` — Coroutines avec les syntaxes *async* et *await*" + +#: ../Doc/reference/compound_stmts.rst:837 +msgid "" +"The proposal that made coroutines a proper standalone concept in Python, and " +"added supporting syntax." +msgstr "" +"La proposition qui a fait que les coroutines soient un concept propre en " +"Python, et a ajouté la syntaxe de prise en charge de celles-ci." + +#: ../Doc/reference/compound_stmts.rst:842 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/reference/compound_stmts.rst:843 +msgid "" +"The exception is propagated to the invocation stack unless there is a :" +"keyword:`finally` clause which happens to raise another exception. That new " +"exception causes the old one to be lost." +msgstr "" +"L'exception est propagée à la pile d'appels à moins qu'il n'y ait une " +"clause :keyword:`finally` qui lève une autre exception, ce qui entraîne la " +"perte de l'ancienne exception. Cette nouvelle exception entraîne la perte " +"pure et simple de l'ancienne." + +#: ../Doc/reference/compound_stmts.rst:847 +msgid "" +"A string literal appearing as the first statement in the function body is " +"transformed into the function's ``__doc__`` attribute and therefore the " +"function's :term:`docstring`." +msgstr "" +"Une chaîne littérale apparaissant comme première instruction dans le corps " +"de la fonction est transformée en attribut ``__doc__`` de la fonction et " +"donc en :term:`docstring` de la fonction." + +#: ../Doc/reference/compound_stmts.rst:851 +msgid "" +"A string literal appearing as the first statement in the class body is " +"transformed into the namespace's ``__doc__`` item and therefore the class's :" +"term:`docstring`." +msgstr "" +"Une chaîne littérale apparaissant comme première instruction dans le corps " +"de la classe est transformée en élément ``__doc__`` de l'espace de nommage " +"et donc en :term:`docstring` de la classe." + +#~ msgid "" +#~ "Currently, control \"flows off the end\" except in the case of an " +#~ "exception or the execution of a :keyword:`return`, :keyword:`continue`, " +#~ "or :keyword:`break` statement." +#~ msgstr "" +#~ "Actuellement, l'exécution \"atteint la fin\" sauf dans le cas d'une " +#~ "exception, de l'exécution de l'instruction :keyword:`return`, :keyword:" +#~ "`continue` ou :keyword:`break`." diff --git a/reference/datamodel.po b/reference/datamodel.po new file mode 100644 index 000000000..1b7502bf0 --- /dev/null +++ b/reference/datamodel.po @@ -0,0 +1,4590 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-18 22:08+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/reference/datamodel.rst:6 +msgid "Data model" +msgstr "Modèle de données" + +#: ../Doc/reference/datamodel.rst:12 +msgid "Objects, values and types" +msgstr "Objets, valeurs et types" + +#: ../Doc/reference/datamodel.rst:18 +msgid "" +":dfn:`Objects` are Python's abstraction for data. All data in a Python " +"program is represented by objects or by relations between objects. (In a " +"sense, and in conformance to Von Neumann's model of a \"stored program " +"computer,\" code is also represented by objects.)" +msgstr "" +"En Python, les données sont représentées sous forme :dfn:`d'objets`. Toutes " +"les données d'un programme Python sont représentées par des objets ou par " +"des relations entre les objets (dans un certain sens, et en conformité avec " +"le modèle de Von Neumann d'« ordinateur à programme enregistré », le code " +"est aussi représenté par des objets)." + +#: ../Doc/reference/datamodel.rst:35 +msgid "" +"Every object has an identity, a type and a value. An object's *identity* " +"never changes once it has been created; you may think of it as the object's " +"address in memory. The ':keyword:`is`' operator compares the identity of " +"two objects; the :func:`id` function returns an integer representing its " +"identity." +msgstr "" +"Chaque objet possède un identifiant, un type et une valeur. *L'identifiant* " +"d'un objet ne change jamais après sa création ; vous pouvez vous le " +"représenter comme l'adresse de l'objet en mémoire. L'opérateur :keyword:`is` " +"compare les identifiants de deux objets ; la fonction :func:`id` renvoie un " +"entier représentant cet identifiant." + +#: ../Doc/reference/datamodel.rst:42 +msgid "For CPython, ``id(x)`` is the memory address where ``x`` is stored." +msgstr "en CPython, ``id(x)`` est l'adresse mémoire où est stocké ``x``." + +#: ../Doc/reference/datamodel.rst:44 +msgid "" +"An object's type determines the operations that the object supports (e.g., " +"\"does it have a length?\") and also defines the possible values for objects " +"of that type. The :func:`type` function returns an object's type (which is " +"an object itself). Like its identity, an object's :dfn:`type` is also " +"unchangeable. [#]_" +msgstr "" +"Le type de l'objet détermine les opérations que l'on peut appliquer à " +"l'objet (par exemple, « a-t-il une longueur ? ») et définit aussi les " +"valeurs possibles pour les objets de ce type. La fonction :func:`type` " +"renvoie le type de l'objet (qui est lui-même un objet). Comme l'identifiant, " +"le :dfn:`type` d'un objet ne peut pas être modifié [#]_." + +#: ../Doc/reference/datamodel.rst:50 +msgid "" +"The *value* of some objects can change. Objects whose value can change are " +"said to be *mutable*; objects whose value is unchangeable once they are " +"created are called *immutable*. (The value of an immutable container object " +"that contains a reference to a mutable object can change when the latter's " +"value is changed; however the container is still considered immutable, " +"because the collection of objects it contains cannot be changed. So, " +"immutability is not strictly the same as having an unchangeable value, it is " +"more subtle.) An object's mutability is determined by its type; for " +"instance, numbers, strings and tuples are immutable, while dictionaries and " +"lists are mutable." +msgstr "" +"La *valeur* de certains objets peut changer. Les objets dont la valeur peut " +"changer sont dits *muables* (*mutable* en anglais) ; les objets dont la " +"valeur est définitivement fixée à leur création sont dits *immuables* " +"(*immutable* en anglais). La valeur d'un objet conteneur immuable qui " +"contient une référence vers un objet muable peut varier lorsque la valeur de " +"l'objet muable change ; cependant, le conteneur est quand même considéré " +"comme immuable parce que l'ensemble des objets qu'il contient ne peut pas " +"être modifié. Ainsi, l'immuabilité n'est pas strictement équivalente au fait " +"d'avoir une valeur non modifiable, c'est plus subtil. La muabilité d'un " +"objet est définie par son type ; par exemple, les nombres, les chaînes de " +"caractères et les tuples sont immuables alors que les dictionnaires et les " +"listes sont muables." + +#: ../Doc/reference/datamodel.rst:65 +msgid "" +"Objects are never explicitly destroyed; however, when they become " +"unreachable they may be garbage-collected. An implementation is allowed to " +"postpone garbage collection or omit it altogether --- it is a matter of " +"implementation quality how garbage collection is implemented, as long as no " +"objects are collected that are still reachable." +msgstr "" +"Un objet n'est jamais explicitement détruit ; cependant, lorsqu'il ne peut " +"plus être atteint, il a vocation à être supprimé par le ramasse-miettes " +"(*garbage-collector* en anglais). L'implémentation peut retarder cette " +"opération ou même ne pas la faire du tout — la façon dont fonctionne le " +"ramasse-miette est particulière à chaque implémentation, l'important étant " +"qu'il ne supprime pas d'objet qui peut encore être atteint." + +#: ../Doc/reference/datamodel.rst:73 +msgid "" +"CPython currently uses a reference-counting scheme with (optional) delayed " +"detection of cyclically linked garbage, which collects most objects as soon " +"as they become unreachable, but is not guaranteed to collect garbage " +"containing circular references. See the documentation of the :mod:`gc` " +"module for information on controlling the collection of cyclic garbage. " +"Other implementations act differently and CPython may change. Do not depend " +"on immediate finalization of objects when they become unreachable (so you " +"should always close files explicitly)." +msgstr "" +"CPython utilise aujourd'hui un mécanisme de compteur de références avec une " +"détection, en temps différé et optionnelle, des cycles d'objets. Ce " +"mécanisme supprime la plupart des objets dès qu'ils ne sont plus accessibles " +"mais il ne garantit pas la suppression des objets où il existe des " +"références circulaires. Consultez la documentation du module :mod:`gc` pour " +"tout ce qui concerne la suppression des cycles. D'autres implémentations " +"agissent différemment et CPython pourrait évoluer. Ne vous reposez pas sur " +"la finalisation immédiate des objets devenus inaccessibles (ainsi, vous " +"devez toujours fermer les fichiers explicitement)." + +#: ../Doc/reference/datamodel.rst:82 +msgid "" +"Note that the use of the implementation's tracing or debugging facilities " +"may keep objects alive that would normally be collectable. Also note that " +"catching an exception with a ':keyword:`try`...\\ :keyword:`except`' " +"statement may keep objects alive." +msgstr "" +"Notez que si vous utilisez les fonctionnalités de débogage ou de trace de " +"l'implémentation, il est possible que des références qui seraient " +"normalement supprimées soient toujours présentes. Notez aussi que capturer " +"une exception avec l'instruction :keyword:`try`...\\ :keyword:`except` peut " +"conserver des objets en vie." + +#: ../Doc/reference/datamodel.rst:87 +msgid "" +"Some objects contain references to \"external\" resources such as open files " +"or windows. It is understood that these resources are freed when the object " +"is garbage-collected, but since garbage collection is not guaranteed to " +"happen, such objects also provide an explicit way to release the external " +"resource, usually a :meth:`close` method. Programs are strongly recommended " +"to explicitly close such objects. The ':keyword:`try`...\\ :keyword:" +"`finally`' statement and the ':keyword:`with`' statement provide convenient " +"ways to do this." +msgstr "" +"Certains objets font référence à des ressources « externes » telles que des " +"fichiers ouverts ou des fenêtres. Ces objets libèrent ces ressources au " +"moment où ils sont supprimés, mais comme le ramasse-miettes ne garantit pas " +"qu'il supprime tous les objets, ces objets fournissent également un moyen " +"explicite de libérer la ressource externe, généralement sous la forme d'une " +"méthode :meth:`close`. Nous incitons fortement les programmeurs à fermer " +"explicitement de tels objets. Les instructions :keyword:`try`...\\ :keyword:" +"`finally` et :keyword:`with` sont très pratiques pour cela." + +#: ../Doc/reference/datamodel.rst:97 +msgid "" +"Some objects contain references to other objects; these are called " +"*containers*. Examples of containers are tuples, lists and dictionaries. " +"The references are part of a container's value. In most cases, when we talk " +"about the value of a container, we imply the values, not the identities of " +"the contained objects; however, when we talk about the mutability of a " +"container, only the identities of the immediately contained objects are " +"implied. So, if an immutable container (like a tuple) contains a reference " +"to a mutable object, its value changes if that mutable object is changed." +msgstr "" +"Certains objets contiennent des références à d'autres objets ; on les " +"appelle *conteneurs*. Comme exemples de conteneurs, nous pouvons citer les " +"tuples, les listes et les dictionnaires. Les références sont parties " +"intégrantes de la valeur d'un conteneur. Dans la plupart des cas, lorsque " +"nous parlons de la valeur d'un conteneur, nous parlons des valeurs, pas des " +"identifiants des objets contenus ; cependant, lorsque nous parlons de la " +"muabilité d'un conteneur, seuls les identifiants des objets immédiatement " +"contenus sont concernés. Ainsi, si un conteneur immuable (comme un tuple) " +"contient une référence à un objet muable, sa valeur change si cet objet " +"muable est modifié." + +#: ../Doc/reference/datamodel.rst:106 +msgid "" +"Types affect almost all aspects of object behavior. Even the importance of " +"object identity is affected in some sense: for immutable types, operations " +"that compute new values may actually return a reference to any existing " +"object with the same type and value, while for mutable objects this is not " +"allowed. E.g., after ``a = 1; b = 1``, ``a`` and ``b`` may or may not refer " +"to the same object with the value one, depending on the implementation, but " +"after ``c = []; d = []``, ``c`` and ``d`` are guaranteed to refer to two " +"different, unique, newly created empty lists. (Note that ``c = d = []`` " +"assigns the same object to both ``c`` and ``d``.)" +msgstr "" +"Presque tous les comportements d'un objet dépendent du type de l'objet. Même " +"son identifiant est concerné dans un certain sens : pour les types " +"immuables, les opérations qui calculent de nouvelles valeurs peuvent en fait " +"renvoyer une référence à n'importe quel objet existant avec le même type et " +"la même valeur, alors que pour les objets muables cela n'est pas autorisé. " +"Par exemple, après ``a = 1 ; b = 1``, ``a`` et ``b`` peuvent ou non se " +"référer au même objet avec la valeur un, en fonction de l'implémentation. " +"Mais après ``c = [] ; d = []``, il est garanti que ``c`` et ``d`` font " +"référence à deux listes vides distinctes nouvellement créées. Notez que ``c " +"= d = []`` attribue le même objet à ``c`` et ``d``." + +#: ../Doc/reference/datamodel.rst:120 +msgid "The standard type hierarchy" +msgstr "Hiérarchie des types standards" + +#: ../Doc/reference/datamodel.rst:129 +msgid "" +"Below is a list of the types that are built into Python. Extension modules " +"(written in C, Java, or other languages, depending on the implementation) " +"can define additional types. Future versions of Python may add types to the " +"type hierarchy (e.g., rational numbers, efficiently stored arrays of " +"integers, etc.), although such additions will often be provided via the " +"standard library instead." +msgstr "" +"Vous trouvez ci-dessous une liste des types natifs de Python. Des modules " +"d'extension (écrits en C, Java ou d'autres langages) peuvent définir des " +"types supplémentaires. Les futures versions de Python pourront ajouter des " +"types à cette hiérarchie (par exemple les nombres rationnels, des tableaux " +"d'entiers stockés efficacement, etc.), bien que de tels ajouts se trouvent " +"souvent plutôt dans la bibliothèque standard." + +#: ../Doc/reference/datamodel.rst:140 +msgid "" +"Some of the type descriptions below contain a paragraph listing 'special " +"attributes.' These are attributes that provide access to the implementation " +"and are not intended for general use. Their definition may change in the " +"future." +msgstr "" +"Quelques descriptions des types ci-dessous contiennent un paragraphe listant " +"des « attributs spéciaux ». Ces attributs donnent accès à l'implémentation " +"et n'ont, en général, pas vocation à être utilisés. Leur définition peut " +"changer dans le futur." + +#: ../Doc/reference/datamodel.rst:150 +msgid "None" +msgstr "``None``" + +#: ../Doc/reference/datamodel.rst:147 +msgid "" +"This type has a single value. There is a single object with this value. " +"This object is accessed through the built-in name ``None``. It is used to " +"signify the absence of a value in many situations, e.g., it is returned from " +"functions that don't explicitly return anything. Its truth value is false." +msgstr "" +"Ce type ne possède qu'une seule valeur. Il n'existe qu'un seul objet avec " +"cette valeur. Vous accédez à cet objet avec le nom natif ``None``. Il est " +"utilisé pour signifier l'absence de valeur dans de nombreux cas, par exemple " +"pour des fonctions qui ne retournent rien explicitement. Sa valeur booléenne " +"est fausse." + +#: ../Doc/reference/datamodel.rst:165 +msgid "NotImplemented" +msgstr "NotImplemented" + +#: ../Doc/reference/datamodel.rst:155 +msgid "" +"This type has a single value. There is a single object with this value. " +"This object is accessed through the built-in name ``NotImplemented``. " +"Numeric methods and rich comparison methods should return this value if they " +"do not implement the operation for the operands provided. (The interpreter " +"will then try the reflected operation, or some other fallback, depending on " +"the operator.) Its truth value is true." +msgstr "" +"Ce type ne possède qu'une seule valeur. Il n'existe qu'un seul objet avec " +"cette valeur. Vous accédez à cet objet avec le nom natif ``NotImplemented``. " +"Les méthodes numériques et les comparaisons riches doivent renvoyer cette " +"valeur si elles n'implémentent pas l'opération pour les opérandes fournis " +"(l'interpréteur essaie alors l'opération en permutant les opérandes ou tout " +"autre stratégie de contournement, en fonction de l'opérateur). Sa valeur " +"booléenne est vraie." + +#: ../Doc/reference/datamodel.rst:162 +msgid "See :ref:`implementing-the-arithmetic-operations` for more details." +msgstr "" +"Consultez :ref:`implementing-the-arithmetic-operations` pour davantage de " +"détails." + +#: ../Doc/reference/datamodel.rst:174 +msgid "Ellipsis" +msgstr "Ellipse" + +#: ../Doc/reference/datamodel.rst:172 +msgid "" +"This type has a single value. There is a single object with this value. " +"This object is accessed through the literal ``...`` or the built-in name " +"``Ellipsis``. Its truth value is true." +msgstr "" +"Ce type ne possède qu'une seule valeur. Il n'existe qu'un seul objet avec " +"cette valeur. Vous accédez à cet objet avec le littéral ``...`` ou le nom " +"natif ``Ellipsis``. Sa valeur booléenne est vraie." + +#: ../Doc/reference/datamodel.rst:244 +msgid ":class:`numbers.Number`" +msgstr ":class:`numbers.Number`" + +#: ../Doc/reference/datamodel.rst:179 +msgid "" +"These are created by numeric literals and returned as results by arithmetic " +"operators and arithmetic built-in functions. Numeric objects are immutable; " +"once created their value never changes. Python numbers are of course " +"strongly related to mathematical numbers, but subject to the limitations of " +"numerical representation in computers." +msgstr "" +"Ces objets sont créés par les littéraux numériques et renvoyés en tant que " +"résultats par les opérateurs et les fonctions arithmétiques natives. Les " +"objets numériques sont immuables ; une fois créés, leur valeur ne change " +"pas. Les nombres Python sont bien sûr très fortement corrélés aux nombres " +"mathématiques mais ils sont soumis aux limitations des représentations " +"numériques par les ordinateurs." + +#: ../Doc/reference/datamodel.rst:185 +msgid "" +"Python distinguishes between integers, floating point numbers, and complex " +"numbers:" +msgstr "" +"Python distingue les entiers, les nombres à virgule flottante et les nombres " +"complexes :" + +#: ../Doc/reference/datamodel.rst:219 +msgid ":class:`numbers.Integral`" +msgstr ":class:`numbers.Integral`" + +#: ../Doc/reference/datamodel.rst:191 +msgid "" +"These represent elements from the mathematical set of integers (positive and " +"negative)." +msgstr "" +"Ils représentent des éléments de l'ensemble mathématique des entiers " +"(positifs ou négatifs)." + +#: ../Doc/reference/datamodel.rst:194 +msgid "There are two types of integers:" +msgstr "Il existe deux types d'entiers :" + +#: ../Doc/reference/datamodel.rst:196 +msgid "Integers (:class:`int`)" +msgstr "Entiers (:class:`int`)" + +#: ../Doc/reference/datamodel.rst:198 +msgid "" +"These represent numbers in an unlimited range, subject to available " +"(virtual) memory only. For the purpose of shift and mask operations, a " +"binary representation is assumed, and negative numbers are represented in a " +"variant of 2's complement which gives the illusion of an infinite string of " +"sign bits extending to the left." +msgstr "" +"Ils représentent les nombres, sans limite de taille, sous réserve de pouvoir " +"être stockés en mémoire (virtuelle). Afin de pouvoir effectuer des décalages " +"et appliquer des masques, on considère qu'ils ont une représentation " +"binaire. Les nombres négatifs sont représentés comme une variante du " +"complément à 2, qui donne l'illusion d'une chaîne infinie de bits de signe " +"s'étendant vers la gauche." + +#: ../Doc/reference/datamodel.rst:214 +msgid "Booleans (:class:`bool`)" +msgstr "Booléens (:class:`bool`)" + +#: ../Doc/reference/datamodel.rst:210 +msgid "" +"These represent the truth values False and True. The two objects " +"representing the values ``False`` and ``True`` are the only Boolean objects. " +"The Boolean type is a subtype of the integer type, and Boolean values behave " +"like the values 0 and 1, respectively, in almost all contexts, the exception " +"being that when converted to a string, the strings ``\"False\"`` or ``\"True" +"\"`` are returned, respectively." +msgstr "" +"Ils représentent les valeurs *faux* et *vrai*. Deux objets, ``False`` et " +"``True``, sont les seuls objets booléens. Le type booléen est un sous-type " +"du type entier et les valeurs booléennes se comportent comme les valeurs 0 " +"(pour ``False``) et 1 (pour ``True``) dans presque tous les contextes. " +"L'exception concerne la conversion en chaîne de caractères où ``\"False\"`` " +"et ``\"True\"`` sont renvoyées." + +#: ../Doc/reference/datamodel.rst:218 +msgid "" +"The rules for integer representation are intended to give the most " +"meaningful interpretation of shift and mask operations involving negative " +"integers." +msgstr "" +"Les règles pour la représentation des entiers ont pour objet de donner " +"l'interprétation la plus naturelle pour les opérations de décalage et " +"masquage qui impliquent des entiers négatifs." + +#: ../Doc/reference/datamodel.rst:234 +msgid ":class:`numbers.Real` (:class:`float`)" +msgstr ":class:`numbers.Real` (:class:`float`)" + +#: ../Doc/reference/datamodel.rst:228 +msgid "" +"These represent machine-level double precision floating point numbers. You " +"are at the mercy of the underlying machine architecture (and C or Java " +"implementation) for the accepted range and handling of overflow. Python does " +"not support single-precision floating point numbers; the savings in " +"processor and memory usage that are usually the reason for using these are " +"dwarfed by the overhead of using objects in Python, so there is no reason to " +"complicate the language with two kinds of floating point numbers." +msgstr "" +"Ils représentent les nombres à virgule flottante en double précision, tels " +"que manipulés directement par la machine. Vous dépendez donc de " +"l'architecture machine sous-jacente (et de l'implémentation C ou Java) pour " +"les intervalles gérés et le traitement des débordements. Python ne gère pas " +"les nombres à virgule flottante en précision simple ; les gains en puissance " +"de calcul et mémoire, qui sont généralement la raison de l'utilisation des " +"nombres en simple précision, sont annihilés par le fait que Python encapsule " +"de toute façon ces nombres dans des objets. Il n'y a donc aucune raison de " +"compliquer le langage avec deux types de nombres à virgule flottante." + +#: ../Doc/reference/datamodel.rst:244 +msgid ":class:`numbers.Complex` (:class:`complex`)" +msgstr ":class:`numbers.Complex` (:class:`complex`)" + +#: ../Doc/reference/datamodel.rst:241 +msgid "" +"These represent complex numbers as a pair of machine-level double precision " +"floating point numbers. The same caveats apply as for floating point " +"numbers. The real and imaginary parts of a complex number ``z`` can be " +"retrieved through the read-only attributes ``z.real`` and ``z.imag``." +msgstr "" +"Ils représentent les nombres complexes, sous la forme d'un couple de nombres " +"à virgule flottante en double précision, tels que manipulés directement par " +"la machine. Les mêmes restrictions s'appliquent que pour les nombres à " +"virgule flottante. La partie réelle et la partie imaginaire d'un nombre " +"complexe ``z`` peuvent être demandées par les attributs en lecture seule ``z." +"real`` et ``z.imag``." + +#: ../Doc/reference/datamodel.rst:361 +msgid "Sequences" +msgstr "Séquences" + +#: ../Doc/reference/datamodel.rst:254 +msgid "" +"These represent finite ordered sets indexed by non-negative numbers. The " +"built-in function :func:`len` returns the number of items of a sequence. " +"When the length of a sequence is *n*, the index set contains the numbers 0, " +"1, ..., *n*-1. Item *i* of sequence *a* is selected by ``a[i]``." +msgstr "" +"Ils représentent des ensembles de taille finie indicés par des entiers " +"positifs ou nuls. La fonction native :func:`len` renvoie le nombre " +"d'éléments de la séquence. Quand la longueur d'une séquence est *n*, " +"l'ensemble des indices contient les entiers 0, 1 ..., *n-1*. On accède à " +"l'élément d'indice *i* de la séquence *a* par ``a[i]``." + +#: ../Doc/reference/datamodel.rst:261 +msgid "" +"Sequences also support slicing: ``a[i:j]`` selects all items with index *k* " +"such that *i* ``<=`` *k* ``<`` *j*. When used as an expression, a slice is " +"a sequence of the same type. This implies that the index set is renumbered " +"so that it starts at 0." +msgstr "" +"Les séquences peuvent aussi être découpées en tranches (*slicing* en " +"anglais) : ``a[i:j]`` sélectionne tous les éléments d'indice *k* tel que *i* " +"``<=`` *k* ``<`` *j*. Quand on l'utilise dans une expression, la tranche est " +"du même type que la séquence. Ceci veut dire que l'ensemble des indices de " +"la tranche est renuméroté de manière à partir de 0." + +#: ../Doc/reference/datamodel.rst:266 +msgid "" +"Some sequences also support \"extended slicing\" with a third \"step\" " +"parameter: ``a[i:j:k]`` selects all items of *a* with index *x* where ``x = " +"i + n*k``, *n* ``>=`` ``0`` and *i* ``<=`` *x* ``<`` *j*." +msgstr "" +"Quelques séquences gèrent le « découpage étendu » (*extended slicing* en " +"anglais) avec un troisième paramètre : ``a[i:j:k]`` sélectionne tous les " +"éléments de *a* d'indice *x* où ``x = i + n*k``, avec *n* ``>=`` ``0`` et " +"*i* ``<=`` *x* ``<`` *j*." + +#: ../Doc/reference/datamodel.rst:270 +msgid "Sequences are distinguished according to their mutability:" +msgstr "Les séquences se différencient en fonction de leur muabilité :" + +#: ../Doc/reference/datamodel.rst:327 +msgid "Immutable sequences" +msgstr "Séquences immuables" + +#: ../Doc/reference/datamodel.rst:277 +msgid "" +"An object of an immutable sequence type cannot change once it is created. " +"(If the object contains references to other objects, these other objects may " +"be mutable and may be changed; however, the collection of objects directly " +"referenced by an immutable object cannot change.)" +msgstr "" +"Un objet de type de séquence immuable ne peut pas être modifié une fois " +"qu'il a été créé. Si l'objet contient des références à d'autres objets, ces " +"autres objets peuvent être muables et peuvent être modifiés ; cependant, les " +"objets directement référencés par un objet immuable ne peuvent pas être " +"modifiés." + +#: ../Doc/reference/datamodel.rst:282 +msgid "The following types are immutable sequences:" +msgstr "Les types suivants sont des séquences immuables :" + +#: ../Doc/reference/datamodel.rst:305 +msgid "Strings" +msgstr "Chaînes de caractères" + +#: ../Doc/reference/datamodel.rst:295 +msgid "" +"A string is a sequence of values that represent Unicode code points. All the " +"code points in the range ``U+0000 - U+10FFFF`` can be represented in a " +"string. Python doesn't have a :c:type:`char` type; instead, every code " +"point in the string is represented as a string object with length ``1``. " +"The built-in function :func:`ord` converts a code point from its string form " +"to an integer in the range ``0 - 10FFFF``; :func:`chr` converts an integer " +"in the range ``0 - 10FFFF`` to the corresponding length ``1`` string " +"object. :meth:`str.encode` can be used to convert a :class:`str` to :class:" +"`bytes` using the given text encoding, and :meth:`bytes.decode` can be used " +"to achieve the opposite." +msgstr "" +"Une chaîne de caractères (*string* en anglais) est une séquence de valeurs " +"qui représentent des caractères Unicode. Tout caractère dont le code est " +"dans l'intervalle ``U+0000 - U+10FFFF`` peut être représenté dans une " +"chaîne. Python ne possède pas de type :c:type:`char` ; à la place, chaque " +"caractère Unicode dans la chaîne est représenté par un objet chaîne de " +"longueur ``1``. La fonction native :func:`ord` convertit un caractère " +"Unicode de la représentation en chaîne vers un entier dans l'intervalle ``0 " +"- 10FFFF`` ; la fonction :func:`chr` convertit un entier de l'intervalle ``0 " +"- 10FFFF`` vers l'objet chaîne de longueur ``1`` correspondant. :meth:`str." +"encode` peut être utilisée pour convertir un objet :class:`str` vers :class:" +"`bytes` selon l'encodage spécifié et :meth:`bytes.decode` effectue " +"l'opération inverse." + +#: ../Doc/reference/datamodel.rst:318 +msgid "Tuples" +msgstr "n-uplets (ou tuples)" + +#: ../Doc/reference/datamodel.rst:313 +msgid "" +"The items of a tuple are arbitrary Python objects. Tuples of two or more " +"items are formed by comma-separated lists of expressions. A tuple of one " +"item (a 'singleton') can be formed by affixing a comma to an expression (an " +"expression by itself does not create a tuple, since parentheses must be " +"usable for grouping of expressions). An empty tuple can be formed by an " +"empty pair of parentheses." +msgstr "" +"Les éléments d'un tuple sont n'importe quels objets Python. Les tuples de " +"deux ou plus éléments sont formés par une liste d'expressions dont les " +"éléments sont séparés par des virgules. Un tuple composé d'un seul élément " +"(un « singleton ») est formé en suffixant une expression avec une virgule " +"(une expression en tant que telle ne crée pas un tuple car les parenthèses " +"doivent rester disponibles pour grouper les expressions). Un tuple vide peut " +"être formé à l'aide d'une paire de parenthèses vide." + +#: ../Doc/reference/datamodel.rst:327 +msgid "Bytes" +msgstr "Bytes" + +#: ../Doc/reference/datamodel.rst:323 +msgid "" +"A bytes object is an immutable array. The items are 8-bit bytes, " +"represented by integers in the range 0 <= x < 256. Bytes literals (like " +"``b'abc'``) and the built-in :func:`bytes()` constructor can be used to " +"create bytes objects. Also, bytes objects can be decoded to strings via " +"the :meth:`~bytes.decode` method." +msgstr "" +"Les objets *bytes* sont des tableaux immuables. Les éléments sont des octets " +"(donc composés de 8 bits), représentés par des entiers dans l'intervalle 0 à " +"255 inclus. Les littéraux *bytes* (tels que ``b'abc'``) et la fonction " +"native constructeur :func:`bytes()` peuvent être utilisés pour créer des " +"objets *bytes*. Aussi, un objet *bytes* peut être décodé vers une chaîne " +"*via* la méthode :meth:`~bytes.decode`." + +#: ../Doc/reference/datamodel.rst:361 +msgid "Mutable sequences" +msgstr "Séquences muables" + +#: ../Doc/reference/datamodel.rst:337 +msgid "" +"Mutable sequences can be changed after they are created. The subscription " +"and slicing notations can be used as the target of assignment and :keyword:" +"`del` (delete) statements." +msgstr "" +"Les séquences muables peuvent être modifiées après leur création. Les " +"notations de tranches et de sous-ensembles peuvent être utilisées en tant " +"que cibles d'une assignation ou de l'instruction :keyword:`del` " +"(suppression)." + +#: ../Doc/reference/datamodel.rst:341 +msgid "There are currently two intrinsic mutable sequence types:" +msgstr "Il existe aujourd'hui deux types intrinsèques de séquences muables :" + +#: ../Doc/reference/datamodel.rst:348 +msgid "Lists" +msgstr "Listes" + +#: ../Doc/reference/datamodel.rst:346 +msgid "" +"The items of a list are arbitrary Python objects. Lists are formed by " +"placing a comma-separated list of expressions in square brackets. (Note that " +"there are no special cases needed to form lists of length 0 or 1.)" +msgstr "" +"N'importe quel objet Python peut être élément d'une liste. Les listes sont " +"créées en plaçant entre crochets une liste d'expressions dont les éléments " +"sont séparés par des virgules (notez que les listes de longueur 0 ou 1 ne " +"sont pas des cas particuliers)." + +#: ../Doc/reference/datamodel.rst:356 +msgid "Byte Arrays" +msgstr "Tableaux d'octets" + +#: ../Doc/reference/datamodel.rst:353 +msgid "" +"A bytearray object is a mutable array. They are created by the built-in :" +"func:`bytearray` constructor. Aside from being mutable (and hence " +"unhashable), byte arrays otherwise provide the same interface and " +"functionality as immutable :class:`bytes` objects." +msgstr "" +"Un objet *bytearray* est un tableau muable. Il est créé par la fonction " +"native constructeur :func:`bytearray`. À part la propriété d'être muable (et " +"donc de ne pas pouvoir calculer son empreinte par hachage), un tableau " +"d'octets possède la même interface et les mêmes fonctionnalités qu'un objet " +"immuable :class:`bytes`." + +#: ../Doc/reference/datamodel.rst:360 +msgid "" +"The extension module :mod:`array` provides an additional example of a " +"mutable sequence type, as does the :mod:`collections` module." +msgstr "" +"Le module d'extension :mod:`array` fournit un autre exemple de type de " +"séquence muable, de même que le module :mod:`collections`." + +#: ../Doc/reference/datamodel.rst:395 +msgid "Set types" +msgstr "Ensembles" + +#: ../Doc/reference/datamodel.rst:368 +msgid "" +"These represent unordered, finite sets of unique, immutable objects. As " +"such, they cannot be indexed by any subscript. However, they can be iterated " +"over, and the built-in function :func:`len` returns the number of items in a " +"set. Common uses for sets are fast membership testing, removing duplicates " +"from a sequence, and computing mathematical operations such as intersection, " +"union, difference, and symmetric difference." +msgstr "" +"Ils représentent les ensembles d'objets, non ordonnés, finis et dont les " +"éléments sont uniques. Tels quels, ils ne peuvent pas être indicés. " +"Cependant, il est possible d'itérer dessus et la fonction native :func:`len` " +"renvoie le nombre d'éléments de l'ensemble. Les utilisations classiques des " +"ensembles sont les tests d'appartenance rapides, la suppression de doublons " +"dans une séquence et le calcul d'opérations mathématiques telles que " +"l'intersection, l'union, la différence et le complémentaire." + +#: ../Doc/reference/datamodel.rst:375 +msgid "" +"For set elements, the same immutability rules apply as for dictionary keys. " +"Note that numeric types obey the normal rules for numeric comparison: if two " +"numbers compare equal (e.g., ``1`` and ``1.0``), only one of them can be " +"contained in a set." +msgstr "" +"Pour les éléments des ensembles, les mêmes règles concernant l'immuabilité " +"s'appliquent que pour les clés de dictionnaires. Notez que les types " +"numériques obéissent aux règles normales pour les comparaisons numériques : " +"si deux nombres sont égaux (pour l'opération de comparaison, par exemple " +"``1`` et ``1.0``), un seul élément est conservé dans l'ensemble." + +#: ../Doc/reference/datamodel.rst:380 +msgid "There are currently two intrinsic set types:" +msgstr "Actuellement, il existe deux types d'ensembles natifs :" + +#: ../Doc/reference/datamodel.rst:387 +msgid "Sets" +msgstr "Ensembles" + +#: ../Doc/reference/datamodel.rst:385 +msgid "" +"These represent a mutable set. They are created by the built-in :func:`set` " +"constructor and can be modified afterwards by several methods, such as :meth:" +"`~set.add`." +msgstr "" +"Ils représentent les ensembles muables. Un ensemble est créé par la fonction " +"native constructeur :func:`set` et peut être modifié par la suite à l'aide " +"de différentes méthodes, par exemple :meth:`~set.add`." + +#: ../Doc/reference/datamodel.rst:395 +msgid "Frozen sets" +msgstr "Ensembles gelés" + +#: ../Doc/reference/datamodel.rst:392 +msgid "" +"These represent an immutable set. They are created by the built-in :func:" +"`frozenset` constructor. As a frozenset is immutable and :term:`hashable`, " +"it can be used again as an element of another set, or as a dictionary key." +msgstr "" +"Ils représentent les ensembles immuables. Ils sont créés par la fonction " +"native constructeur :func:`frozenset`. Comme un ensemble gelé est immuable " +"et :term:`hachable`, il peut être utilisé comme élément d'un autre ensemble " +"ou comme clé de dictionnaire." + +#: ../Doc/reference/datamodel.rst:432 +msgid "Mappings" +msgstr "Tableaux de correspondances" + +#: ../Doc/reference/datamodel.rst:403 +msgid "" +"These represent finite sets of objects indexed by arbitrary index sets. The " +"subscript notation ``a[k]`` selects the item indexed by ``k`` from the " +"mapping ``a``; this can be used in expressions and as the target of " +"assignments or :keyword:`del` statements. The built-in function :func:`len` " +"returns the number of items in a mapping." +msgstr "" +"Ils représentent les ensembles finis d'objets indicés par des ensembles " +"index arbitraires. La notation ``a[k]`` sélectionne l'élément indicé par " +"``k`` dans le tableau de correspondance ``a`` ; elle peut être utilisée dans " +"des expressions, comme cible d'une assignation ou avec l'instruction :" +"keyword:`del`. La fonction native :func:`len` renvoie le nombre d'éléments " +"du tableau de correspondances." + +#: ../Doc/reference/datamodel.rst:409 +msgid "There is currently a single intrinsic mapping type:" +msgstr "" +"Il n'existe actuellement qu'un seul type natif pour les tableaux de " +"correspondances :" + +#: ../Doc/reference/datamodel.rst:432 +msgid "Dictionaries" +msgstr "Dictionnaires" + +#: ../Doc/reference/datamodel.rst:414 +msgid "" +"These represent finite sets of objects indexed by nearly arbitrary values. " +"The only types of values not acceptable as keys are values containing lists " +"or dictionaries or other mutable types that are compared by value rather " +"than by object identity, the reason being that the efficient implementation " +"of dictionaries requires a key's hash value to remain constant. Numeric " +"types used for keys obey the normal rules for numeric comparison: if two " +"numbers compare equal (e.g., ``1`` and ``1.0``) then they can be used " +"interchangeably to index the same dictionary entry." +msgstr "" +"Ils représentent les ensembles finis d'objets indicés par des valeurs " +"presque arbitraires. Les seuls types de valeurs non reconnus comme clés sont " +"les valeurs contenant des listes, des dictionnaires ou les autres types " +"muables qui sont comparés par valeur plutôt que par l'identifiant de " +"l'objet. La raison de cette limitation est qu'une implémentation efficace de " +"dictionnaire requiert que l'empreinte par hachage des clés reste constante " +"dans le temps. Les types numériques obéissent aux règles normales pour les " +"comparaisons numériques : si deux nombres sont égaux pour l'opération de " +"comparaison, par exemple ``1`` et ``1.0``, alors ces deux nombres peuvent " +"être utilisés indifféremment pour désigner la même entrée du dictionnaire." + +#: ../Doc/reference/datamodel.rst:423 +msgid "" +"Dictionaries are mutable; they can be created by the ``{...}`` notation (see " +"section :ref:`dict`)." +msgstr "" +"Les dictionnaires sont muables : ils peuvent être créés par la notation " +"``{...}`` (reportez-vous à la section :ref:`dict`)." + +#: ../Doc/reference/datamodel.rst:430 +msgid "" +"The extension modules :mod:`dbm.ndbm` and :mod:`dbm.gnu` provide additional " +"examples of mapping types, as does the :mod:`collections` module." +msgstr "" +"Les modules d'extensions :mod:`dbm.ndbm` et :mod:`dbm.gnu` apportent " +"d'autres exemples de types tableaux de correspondances, de même que le " +"module :mod:`collections`." + +#: ../Doc/reference/datamodel.rst:694 +msgid "Callable types" +msgstr "Types appelables" + +#: ../Doc/reference/datamodel.rst:441 +msgid "" +"These are the types to which the function call operation (see section :ref:" +"`calls`) can be applied:" +msgstr "" +"Ce sont les types sur lesquels on peut faire un appel de fonction (lisez la " +"section :ref:`calls`) :" + +#: ../Doc/reference/datamodel.rst:542 +msgid "User-defined functions" +msgstr "Fonctions allogènes" + +#: ../Doc/reference/datamodel.rst:450 +msgid "" +"A user-defined function object is created by a function definition (see " +"section :ref:`function`). It should be called with an argument list " +"containing the same number of items as the function's formal parameter list." +msgstr "" +"Un objet fonction allogène (ou fonction définie par l'utilisateur, mais ce " +"n'est pas forcément l'utilisateur courant qui a défini cette fonction) est " +"créé par la définition d'une fonction (voir la section :ref:`function`). Il " +"doit être appelé avec une liste d'arguments contenant le même nombre " +"d'éléments que la liste des paramètres formels de la fonction." + +#: ../Doc/reference/datamodel.rst:455 +msgid "Special attributes:" +msgstr "Attributs spéciaux :" + +#: ../Doc/reference/datamodel.rst:473 +msgid "Attribute" +msgstr "Attribut" + +#: ../Doc/reference/datamodel.rst:473 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/reference/datamodel.rst:475 +msgid ":attr:`__doc__`" +msgstr ":attr:`__doc__`" + +#: ../Doc/reference/datamodel.rst:475 +msgid "" +"The function's documentation string, or ``None`` if unavailable; not " +"inherited by subclasses." +msgstr "" +"Chaîne de documentation de la fonction ou ``None`` s'il n'en existe pas ; " +"n'est pas héritée par les sous-classes" + +#: ../Doc/reference/datamodel.rst:475 ../Doc/reference/datamodel.rst:480 +#: ../Doc/reference/datamodel.rst:483 ../Doc/reference/datamodel.rst:488 +#: ../Doc/reference/datamodel.rst:492 ../Doc/reference/datamodel.rst:498 +#: ../Doc/reference/datamodel.rst:508 ../Doc/reference/datamodel.rst:519 +#: ../Doc/reference/datamodel.rst:526 +msgid "Writable" +msgstr "Accessible en écriture" + +#: ../Doc/reference/datamodel.rst:480 +msgid ":attr:`~definition.\\ __name__`" +msgstr ":attr:`~definition.\\ __name__`" + +#: ../Doc/reference/datamodel.rst:480 +msgid "The function's name." +msgstr "Nom de la fonction" + +#: ../Doc/reference/datamodel.rst:483 +msgid ":attr:`~definition.\\ __qualname__`" +msgstr ":attr:`~definition.\\ __qualname__`" + +#: ../Doc/reference/datamodel.rst:483 +msgid "The function's :term:`qualified name`." +msgstr ":term:`qualified name` de la fonction" + +#: ../Doc/reference/datamodel.rst:488 +msgid ":attr:`__module__`" +msgstr ":attr:`__module__`" + +#: ../Doc/reference/datamodel.rst:488 +msgid "" +"The name of the module the function was defined in, or ``None`` if " +"unavailable." +msgstr "" +"Nom du module où la fonction est définie ou ``None`` si ce nom n'est pas " +"disponible." + +#: ../Doc/reference/datamodel.rst:492 +msgid ":attr:`__defaults__`" +msgstr ":attr:`__defaults__`" + +#: ../Doc/reference/datamodel.rst:492 +msgid "" +"A tuple containing default argument values for those arguments that have " +"defaults, or ``None`` if no arguments have a default value." +msgstr "" +"Tuple contenant les valeurs des arguments par défaut pour ceux qui en sont " +"dotés ou ``None`` si aucun argument n'a de valeur par défaut." + +#: ../Doc/reference/datamodel.rst:498 +msgid ":attr:`__code__`" +msgstr ":attr:`__code__`" + +#: ../Doc/reference/datamodel.rst:498 +msgid "The code object representing the compiled function body." +msgstr "Objet code représentant le corps de la fonction compilée." + +#: ../Doc/reference/datamodel.rst:501 +msgid ":attr:`__globals__`" +msgstr ":attr:`__globals__`" + +#: ../Doc/reference/datamodel.rst:501 +msgid "" +"A reference to the dictionary that holds the function's global variables --- " +"the global namespace of the module in which the function was defined." +msgstr "" +"Référence pointant vers le dictionnaire contenant les variables globales de " +"la fonction — l'espace de noms global du module dans lequel la fonction est " +"définie." + +#: ../Doc/reference/datamodel.rst:501 ../Doc/reference/datamodel.rst:512 +msgid "Read-only" +msgstr "Accessible en lecture seule" + +#: ../Doc/reference/datamodel.rst:508 +msgid ":attr:`~object.__dict__`" +msgstr ":attr:`~object.__dict__`" + +#: ../Doc/reference/datamodel.rst:508 +msgid "The namespace supporting arbitrary function attributes." +msgstr "Espace de nommage accueillant les attributs de la fonction." + +#: ../Doc/reference/datamodel.rst:512 +msgid ":attr:`__closure__`" +msgstr ":attr:`__closure__`" + +#: ../Doc/reference/datamodel.rst:512 +msgid "" +"``None`` or a tuple of cells that contain bindings for the function's free " +"variables. See below for information on the ``cell_contents`` attribute." +msgstr "" +"``None`` ou tuple de cellules qui contient un lien pour chaque variable " +"libre de la fonction. Voir ci-dessous pour les informations relatives à " +"l'attribut ``cell_contents``." + +#: ../Doc/reference/datamodel.rst:519 +msgid ":attr:`__annotations__`" +msgstr ":attr:`__annotations__`" + +#: ../Doc/reference/datamodel.rst:519 +msgid "" +"A dict containing annotations of parameters. The keys of the dict are the " +"parameter names, and ``'return'`` for the return annotation, if provided." +msgstr "" +"Dictionnaire contenant les annotations des paramètres. Les clés du " +"dictionnaire sont les noms des paramètres et la clé ``\"return\"`` est " +"utilisée pour les annotations de la valeur renvoyée. Les entrées du " +"dictionnaire ne sont présentes que si les paramètres sont effectivement " +"annotés." + +#: ../Doc/reference/datamodel.rst:526 +msgid ":attr:`__kwdefaults__`" +msgstr ":attr:`__kwdefaults__`" + +#: ../Doc/reference/datamodel.rst:526 +msgid "A dict containing defaults for keyword-only parameters." +msgstr "" +"Dictionnaire contenant les valeurs par défaut pour les paramètres passés par " +"mot-clé." + +#: ../Doc/reference/datamodel.rst:530 +msgid "" +"Most of the attributes labelled \"Writable\" check the type of the assigned " +"value." +msgstr "" +"La plupart des attributs étiquetés « Accessible en écriture » vérifient le " +"type de la valeur qu'on leur assigne." + +#: ../Doc/reference/datamodel.rst:532 +msgid "" +"Function objects also support getting and setting arbitrary attributes, " +"which can be used, for example, to attach metadata to functions. Regular " +"attribute dot-notation is used to get and set such attributes. *Note that " +"the current implementation only supports function attributes on user-defined " +"functions. Function attributes on built-in functions may be supported in the " +"future.*" +msgstr "" +"Les objets fonctions acceptent également l'assignation et la lecture " +"d'attributs arbitraires. Vous pouvez utiliser cette fonctionnalité pour, par " +"exemple, associer des métadonnées aux fonctions. La notation classique par " +"point est utilisée pour définir et lire de tels attributs. *Notez que " +"l'implémentation actuelle accepte seulement les attributs de fonction sur " +"les fonctions définies par l'utilisateur. Les attributs de fonction pour les " +"fonctions natives seront peut-être acceptés dans le futur.*" + +#: ../Doc/reference/datamodel.rst:538 +msgid "" +"A cell object has the attribute ``cell_contents``. This can be used to get " +"the value of the cell, as well as set the value." +msgstr "" +"Un objet cellule possède un attribut ``cell_contents``. Il peut être utilisé " +"pour obtenir la valeur de la cellule et pour en définir la valeur." + +#: ../Doc/reference/datamodel.rst:541 +msgid "" +"Additional information about a function's definition can be retrieved from " +"its code object; see the description of internal types below." +msgstr "" +"Vous trouvez davantage d'informations sur la définition de fonctions dans le " +"code de cet objet ; la description des types internes est donnée plus bas." + +#: ../Doc/reference/datamodel.rst:611 +msgid "Instance methods" +msgstr "Méthodes d'instances" + +#: ../Doc/reference/datamodel.rst:550 +msgid "" +"An instance method object combines a class, a class instance and any " +"callable object (normally a user-defined function)." +msgstr "" +"Un objet méthode d'instance combine une classe, une instance de classe et " +"tout objet appelable (normalement une fonction définie par l'utilisateur)." + +#: ../Doc/reference/datamodel.rst:560 +msgid "" +"Special read-only attributes: :attr:`__self__` is the class instance " +"object, :attr:`__func__` is the function object; :attr:`__doc__` is the " +"method's documentation (same as ``__func__.__doc__``); :attr:`~definition." +"__name__` is the method name (same as ``__func__.__name__``); :attr:" +"`__module__` is the name of the module the method was defined in, or " +"``None`` if unavailable." +msgstr "" +"Attributs spéciaux en lecture seule : :attr:`__self__` est l'objet instance " +"de classe, :attr:`__func__` est l'objet fonction ; :attr:`__doc__` est la " +"documentation de la méthode (comme ``__func__.__doc__``) ; :attr:" +"`~definition.__name__` est le nom de la méthode (comme ``__func__." +"__name__``) ; :attr:`__module__` est le nom du module où la méthode est " +"définie ou ``None`` s'il n'est pas disponible." + +#: ../Doc/reference/datamodel.rst:566 +msgid "" +"Methods also support accessing (but not setting) the arbitrary function " +"attributes on the underlying function object." +msgstr "" +"Les méthodes savent aussi accéder (mais pas modifier) les attributs de la " +"fonction de l'objet fonction sous-jacent." + +#: ../Doc/reference/datamodel.rst:569 +msgid "" +"User-defined method objects may be created when getting an attribute of a " +"class (perhaps via an instance of that class), if that attribute is a user-" +"defined function object or a class method object." +msgstr "" +"Les objets méthodes définies par l'utilisateur peuvent être créés quand vous " +"récupérez un attribut de classe (par exemple *via* une instance de cette " +"classe) si cet attribut est un objet fonction définie par l'utilisateur ou " +"un objet méthode de classe." + +#: ../Doc/reference/datamodel.rst:573 +msgid "" +"When an instance method object is created by retrieving a user-defined " +"function object from a class via one of its instances, its :attr:`__self__` " +"attribute is the instance, and the method object is said to be bound. The " +"new method's :attr:`__func__` attribute is the original function object." +msgstr "" +"Quand un objet méthode d'instance est créé à partir d'un objet fonction " +"définie par l'utilisateur *via* une des instances, son attribut :attr:" +"`__self__` est l'instance et l'objet méthode est réputé lié. Le nouvel " +"attribut de la méthode :attr:`__func__` est l'objet fonction original." + +#: ../Doc/reference/datamodel.rst:579 +msgid "" +"When a user-defined method object is created by retrieving another method " +"object from a class or instance, the behaviour is the same as for a function " +"object, except that the :attr:`__func__` attribute of the new instance is " +"not the original method object but its :attr:`__func__` attribute." +msgstr "" +"Quand un objet méthode définie par l'utilisateur est créé à partir d'un " +"autre objet méthode de la classe ou de l'instance, son comportement est " +"identique à l'objet fonction sauf pour l'attribut :attr:`__func__` de la " +"nouvelle instance qui n'est pas l'objet méthode original mais son attribut :" +"attr:`__func__`." + +#: ../Doc/reference/datamodel.rst:585 +msgid "" +"When an instance method object is created by retrieving a class method " +"object from a class or instance, its :attr:`__self__` attribute is the class " +"itself, and its :attr:`__func__` attribute is the function object underlying " +"the class method." +msgstr "" +"Quand un objet méthode d'instance est créé à partir d'un autre objet méthode " +"de la classe ou de l'instance, son attribut :attr:`__self__` est la classe " +"elle-même et son attribut :attr:`__func__` est l'objet fonction sous-jacent " +"la méthode de classe." + +#: ../Doc/reference/datamodel.rst:590 +msgid "" +"When an instance method object is called, the underlying function (:attr:" +"`__func__`) is called, inserting the class instance (:attr:`__self__`) in " +"front of the argument list. For instance, when :class:`C` is a class which " +"contains a definition for a function :meth:`f`, and ``x`` is an instance of :" +"class:`C`, calling ``x.f(1)`` is equivalent to calling ``C.f(x, 1)``." +msgstr "" +"Quand un objet méthode d'instance est appelé, la fonction sous-jacente (:" +"attr:`__func__`) est appelée et l'objet instance de la classe (:attr:" +"`__self__`) est inséré en tête de liste des arguments. Par exemple, si :" +"class:`C` est une classe qui contient la définition d'une fonction :meth:`f` " +"et que ``x`` est une instance de :class:`C`, alors appeler ``x.f(1)`` est " +"équivalent à appeler ``C.f(x, 1)``." + +#: ../Doc/reference/datamodel.rst:597 +msgid "" +"When an instance method object is derived from a class method object, the " +"\"class instance\" stored in :attr:`__self__` will actually be the class " +"itself, so that calling either ``x.f(1)`` or ``C.f(1)`` is equivalent to " +"calling ``f(C,1)`` where ``f`` is the underlying function." +msgstr "" +"Quand un objet méthode d'instance est dérivé à partir d'un objet méthode de " +"classe, l'instance de classe stockée dans :attr:`__self__` est en fait la " +"classe elle-même. Ainsi, appeler ``x.f(1)`` ou ``C.f(1)`` est équivalent à " +"appeler ``f(C, 1)`` où ``f`` est la fonction sous-jacente." + +#: ../Doc/reference/datamodel.rst:602 +msgid "" +"Note that the transformation from function object to instance method object " +"happens each time the attribute is retrieved from the instance. In some " +"cases, a fruitful optimization is to assign the attribute to a local " +"variable and call that local variable. Also notice that this transformation " +"only happens for user-defined functions; other callable objects (and all non-" +"callable objects) are retrieved without transformation. It is also " +"important to note that user-defined functions which are attributes of a " +"class instance are not converted to bound methods; this *only* happens when " +"the function is an attribute of the class." +msgstr "" +"Notez que la transformation d'objet fonction en objet méthode d'instance se " +"produit à chaque fois que l'attribut est récupéré à partir de l'instance. " +"Dans certains cas, assigner l'attribut à une variable locale et appeler " +"cette variable locale constitue une bonne optimisation. Notez aussi que " +"cette transformation n'a lieu que pour les fonctions définies par " +"l'utilisateur : les autres objets appelables (et les objets non appelables) " +"sont récupérés sans transformation. Il est aussi important de noter que les " +"fonctions définies par l'utilisateur qui sont attributs d'une instance de " +"classe ne sont pas converties en méthodes liées ; ceci n'a lieu que pour les " +"fonctions qui sont attributs de la classe." + +#: ../Doc/reference/datamodel.rst:626 +msgid "Generator functions" +msgstr "Fonctions générateurs" + +#: ../Doc/reference/datamodel.rst:618 +msgid "" +"A function or method which uses the :keyword:`yield` statement (see section :" +"ref:`yield`) is called a :dfn:`generator function`. Such a function, when " +"called, always returns an iterator object which can be used to execute the " +"body of the function: calling the iterator's :meth:`iterator.__next__` " +"method will cause the function to execute until it provides a value using " +"the :keyword:`!yield` statement. When the function executes a :keyword:" +"`return` statement or falls off the end, a :exc:`StopIteration` exception is " +"raised and the iterator will have reached the end of the set of values to be " +"returned." +msgstr "" +"Une fonction ou une méthode qui utilise l'instruction :keyword:`yield` (voir " +"la section :ref:`yield`) est appelée :dfn:`fonction générateur`. Une telle " +"fonction, lorsqu'elle est appelée, retourne toujours un objet itérateur qui " +"peut être utilisé pour exécuter le corps de la fonction : appeler la " +"méthode :meth:`iterator.__next__` de l'itérateur exécute la fonction jusqu'à " +"ce qu'elle renvoie une valeur à l'aide de l'instruction :keyword:`!yield`. " +"Quand la fonction exécute l'instruction :keyword:`return` ou se termine, une " +"exception :exc:`StopIteration` est levée et l'itérateur a atteint la fin de " +"l'ensemble de valeurs qu'il peut renvoyer." + +#: ../Doc/reference/datamodel.rst:636 +msgid "Coroutine functions" +msgstr "Fonctions coroutines" + +#: ../Doc/reference/datamodel.rst:632 +msgid "" +"A function or method which is defined using :keyword:`async def` is called " +"a :dfn:`coroutine function`. Such a function, when called, returns a :term:" +"`coroutine` object. It may contain :keyword:`await` expressions, as well " +"as :keyword:`async with` and :keyword:`async for` statements. See also the :" +"ref:`coroutine-objects` section." +msgstr "" +"Une fonction ou méthode définie en utilisant :keyword:`async def` est " +"appelée :dfn:`fonction coroutine`. Une telle fonction, quand elle est " +"appelée, renvoie un objet :term:`coroutine`. Elle peut contenir des " +"expressions :keyword:`await` ou :keyword:`async with` ou des instructions :" +"keyword:`async for`. Voir également la section :ref:`coroutine-objects`." + +#: ../Doc/reference/datamodel.rst:655 +msgid "Asynchronous generator functions" +msgstr "Fonctions générateurs asynchrones" + +#: ../Doc/reference/datamodel.rst:643 +msgid "" +"A function or method which is defined using :keyword:`async def` and which " +"uses the :keyword:`yield` statement is called a :dfn:`asynchronous generator " +"function`. Such a function, when called, returns an asynchronous iterator " +"object which can be used in an :keyword:`async for` statement to execute the " +"body of the function." +msgstr "" +"Une fonction ou une méthode définie avec :keyword:`async def` et qui utilise " +"l'instruction :keyword:`yield` est appelée :dfn:`fonction générateur " +"asynchrone`. Une telle fonction, quand elle est appelée, renvoie un objet " +"itérateur asynchrone qui peut être utilisé dans des instructions :keyword:" +"`async for` pour exécuter le corps de la fonction." + +#: ../Doc/reference/datamodel.rst:649 +msgid "" +"Calling the asynchronous iterator's :meth:`aiterator.__anext__` method will " +"return an :term:`awaitable` which when awaited will execute until it " +"provides a value using the :keyword:`yield` expression. When the function " +"executes an empty :keyword:`return` statement or falls off the end, a :exc:" +"`StopAsyncIteration` exception is raised and the asynchronous iterator will " +"have reached the end of the set of values to be yielded." +msgstr "" +"Appeler la méthode :meth:`aiterator.__anext__` de l'itérateur asynchrone " +"renvoie un :term:`awaitable` qui, lorsqu'on l'attend, s'exécute jusqu'à ce " +"qu'il fournisse une valeur à l'aide de l'expression :keyword:`yield`. Quand " +"la fonction exécute une instruction :keyword:`return` (sans valeur) ou " +"arrive à la fin, une exception :exc:`StopAsynciteration` est levée et " +"l'itérateur asynchrone a atteint la fin de l'ensemble des valeurs qu'il peut " +"produire." + +#: ../Doc/reference/datamodel.rst:670 +msgid "Built-in functions" +msgstr "Fonctions natives" + +#: ../Doc/reference/datamodel.rst:663 +msgid "" +"A built-in function object is a wrapper around a C function. Examples of " +"built-in functions are :func:`len` and :func:`math.sin` (:mod:`math` is a " +"standard built-in module). The number and type of the arguments are " +"determined by the C function. Special read-only attributes: :attr:`__doc__` " +"is the function's documentation string, or ``None`` if unavailable; :attr:" +"`~definition.__name__` is the function's name; :attr:`__self__` is set to " +"``None`` (but see the next item); :attr:`__module__` is the name of the " +"module the function was defined in or ``None`` if unavailable." +msgstr "" +"Un objet fonction native est une enveloppe autour d'une fonction C. Nous " +"pouvons citer :func:`len` et :func:`math.sin` (:mod:`math` est un module " +"standard natif) comme fonctions natives. Le nombre et le type des arguments " +"sont déterminés par la fonction C. Des attributs spéciaux en lecture seule " +"existent : :attr:`__doc__` contient la chaîne de documentation de la " +"fonction (ou ``None`` s'il n'y en a pas) ; :attr:`~definition.__name__` est " +"le nom de la fonction ; :attr:`__self__` est défini à ``None`` ; :attr:" +"`__module__` est le nom du module où la fonction est définie ou ``None`` " +"s'il n'est pas disponible." + +#: ../Doc/reference/datamodel.rst:682 +msgid "Built-in methods" +msgstr "Méthodes natives" + +#: ../Doc/reference/datamodel.rst:678 +msgid "" +"This is really a different disguise of a built-in function, this time " +"containing an object passed to the C function as an implicit extra " +"argument. An example of a built-in method is ``alist.append()``, assuming " +"*alist* is a list object. In this case, the special read-only attribute :" +"attr:`__self__` is set to the object denoted by *alist*." +msgstr "" +"Ce sont des fonctions natives déguisées, contenant un objet passé à une " +"fonction C en tant qu'argument supplémentaire implicite. Un exemple de " +"méthode native est ``une_liste.append()`` (``une_liste`` étant un objet " +"liste). Dans ce cas, l'attribut spécial en lecture seule :attr:`__self__` " +"est défini à l'objet *une_liste*." + +#: ../Doc/reference/datamodel.rst:689 +msgid "Classes" +msgstr "Classes" + +#: ../Doc/reference/datamodel.rst:685 +msgid "" +"Classes are callable. These objects normally act as factories for new " +"instances of themselves, but variations are possible for class types that " +"override :meth:`__new__`. The arguments of the call are passed to :meth:" +"`__new__` and, in the typical case, to :meth:`__init__` to initialize the " +"new instance." +msgstr "" +"Les classes sont des appelables. Ces objets sont normalement utilisés pour " +"créer des instances d'elles-mêmes mais des variations sont possibles pour " +"les types de classes qui surchargent :meth:`__new__`. Les arguments de " +"l'appel sont passés à :meth:`__new__` et, dans le cas classique, :meth:" +"`__new__` initialise une nouvelle instance." + +#: ../Doc/reference/datamodel.rst:694 +msgid "Class Instances" +msgstr "Instances de classe" + +#: ../Doc/reference/datamodel.rst:692 +msgid "" +"Instances of arbitrary classes can be made callable by defining a :meth:" +"`__call__` method in their class." +msgstr "" +"Les instances d'une classe peuvent devenir des appelables si vous définissez " +"la méthode :meth:`__call__` de leur classe." + +#: ../Doc/reference/datamodel.rst:744 +msgid "Modules" +msgstr "Modules" + +#: ../Doc/reference/datamodel.rst:701 +msgid "" +"Modules are a basic organizational unit of Python code, and are created by " +"the :ref:`import system ` as invoked either by the :keyword:" +"`import` statement, or by calling functions such as :func:`importlib." +"import_module` and built-in :func:`__import__`. A module object has a " +"namespace implemented by a dictionary object (this is the dictionary " +"referenced by the ``__globals__`` attribute of functions defined in the " +"module). Attribute references are translated to lookups in this dictionary, " +"e.g., ``m.x`` is equivalent to ``m.__dict__[\"x\"]``. A module object does " +"not contain the code object used to initialize the module (since it isn't " +"needed once the initialization is done)." +msgstr "" +"Les modules constituent l'organisation de base du code Python et sont créés " +"par le :ref:`mécanisme d'import ` soit avec l'instruction :" +"keyword:`import`, soit en appelant des fonctions telles que :func:`importlib." +"import_module` ou la fonction native :func:`__import__`. Un objet module " +"possède un espace de nommage implémenté par un objet dictionnaire (c'est le " +"dictionnaire référencé par l'attribut ``__globals__`` des fonctions définies " +"dans le module). Les références à un attribut sont traduites en recherches " +"dans ce dictionnaire, par exemple ``m.x`` est équivalent à ``m.__dict__[\"x" +"\"]``. Un objet module ne contient pas l'objet code utilisé pour initialiser " +"le module (puisque celui-ci n'est plus nécessaire une fois l'initialisation " +"terminée)." + +#: ../Doc/reference/datamodel.rst:713 +msgid "" +"Attribute assignment updates the module's namespace dictionary, e.g., ``m.x " +"= 1`` is equivalent to ``m.__dict__[\"x\"] = 1``." +msgstr "" +"L'assignation d'un attribut met à jour le dictionnaire d'espace de nommage " +"du module, par exemple ``m.x = 1`` est équivalent à ``m.__dict__[\"x\"] = " +"1``." + +#: ../Doc/reference/datamodel.rst:723 +msgid "" +"Predefined (writable) attributes: :attr:`__name__` is the module's name; :" +"attr:`__doc__` is the module's documentation string, or ``None`` if " +"unavailable; :attr:`__annotations__` (optional) is a dictionary containing :" +"term:`variable annotations ` collected during module " +"body execution; :attr:`__file__` is the pathname of the file from which the " +"module was loaded, if it was loaded from a file. The :attr:`__file__` " +"attribute may be missing for certain types of modules, such as C modules " +"that are statically linked into the interpreter; for extension modules " +"loaded dynamically from a shared library, it is the pathname of the shared " +"library file." +msgstr "" +"Attributs prédéfinis (en lecture-écriture) : :attr:`__name__` est le nom du " +"module ; :attr:`__doc__` est la chaîne de documentation du module (ou " +"``None`` s'il n'y en a pas) ; :attr:`__annotations__` (optionnel) est un " +"dictionnaire contenant les :term:`annotations de variables ` collectées durant l'exécution du corps du module ; :attr:" +"`__file__` est le chemin vers le fichier à partir duquel le module a été " +"chargé, s'il a été chargé depuis un fichier. L'attribut :attr:`__file__` " +"peut être manquant pour certains types de modules, tels que les modules C " +"qui sont statiquement liés à l'interpréteur ; pour les modules d'extension " +"chargés dynamiquement à partir d'une bibliothèque partagée, c'est le chemin " +"vers le fichier de la bibliothèque partagée." + +#: ../Doc/reference/datamodel.rst:736 +msgid "" +"Special read-only attribute: :attr:`~object.__dict__` is the module's " +"namespace as a dictionary object." +msgstr "" +"Attribut spécial en lecture seule : :attr:`~object.__dict__` est l'objet " +"dictionnaire répertoriant l'espace de nommage du module." + +#: ../Doc/reference/datamodel.rst:741 +msgid "" +"Because of the way CPython clears module dictionaries, the module dictionary " +"will be cleared when the module falls out of scope even if the dictionary " +"still has live references. To avoid this, copy the dictionary or keep the " +"module around while using its dictionary directly." +msgstr "" +"en raison de la manière dont CPython nettoie les dictionnaires de modules, " +"le dictionnaire du module est effacé quand le module n'est plus visible, " +"même si le dictionnaire possède encore des références actives. Pour éviter " +"ceci, copiez le dictionnaire ou gardez le module dans votre champ de " +"visibilité tant que vous souhaitez utiliser le dictionnaire directement." + +#: ../Doc/reference/datamodel.rst:803 +msgid "Custom classes" +msgstr "Classes déclarées par le développeur" + +#: ../Doc/reference/datamodel.rst:747 +msgid "" +"Custom class types are typically created by class definitions (see section :" +"ref:`class`). A class has a namespace implemented by a dictionary object. " +"Class attribute references are translated to lookups in this dictionary, e." +"g., ``C.x`` is translated to ``C.__dict__[\"x\"]`` (although there are a " +"number of hooks which allow for other means of locating attributes). When " +"the attribute name is not found there, the attribute search continues in the " +"base classes. This search of the base classes uses the C3 method resolution " +"order which behaves correctly even in the presence of 'diamond' inheritance " +"structures where there are multiple inheritance paths leading back to a " +"common ancestor. Additional details on the C3 MRO used by Python can be " +"found in the documentation accompanying the 2.3 release at https://www." +"python.org/download/releases/2.3/mro/." +msgstr "" +"Le type d'une classe déclarée par le développeur est créé au moment de la " +"définition de la classe (voir la section :ref:`class`). Une classe possède " +"un espace de nommage implémenté sous la forme d'un objet dictionnaire. Les " +"références vers les attributs de la classe sont traduits en recherches dans " +"ce dictionnaire, par exemple ``C.x`` est traduit en ``C.__dict__[\"x\"]`` " +"(bien qu'il existe un certain nombre de fonctions automatiques qui " +"permettent de trouver des attributs par d'autres moyens). Si le nom " +"d'attribut n'est pas trouvé dans ce dictionnaire, la recherche continue dans " +"les classes de base. Les classes de base sont trouvées en utilisant l'ordre " +"de résolution des méthodes (*method resolution order* en anglais, ou MRO) " +"*C3* qui a un comportement cohérent même en présence d'héritages en \"diamant" +"\", où différentes branches d'héritages conduisent vers un ancêtre commun. " +"Vous trouverez plus de détails sur l'ordre de résolution des méthodes MRO " +"*C3* utilisé par Python dans la documentation de la version 2.3 disponible " +"sur https://www.python.org/download/releases/2.3/mro/." + +#: ../Doc/reference/datamodel.rst:771 +msgid "" +"When a class attribute reference (for class :class:`C`, say) would yield a " +"class method object, it is transformed into an instance method object whose :" +"attr:`__self__` attribute is :class:`C`. When it would yield a static " +"method object, it is transformed into the object wrapped by the static " +"method object. See section :ref:`descriptors` for another way in which " +"attributes retrieved from a class may differ from those actually contained " +"in its :attr:`~object.__dict__`." +msgstr "" +"Quand une référence à un attribut de classe (disons la classe :class:`C`) " +"pointe vers un objet méthode de classe, elle est transformée en objet " +"méthode d'instance dont l'attribut :attr:`__self__` est :class:`C`. Quand " +"elle pointe vers un objet méthode statique, elle est transformée en objet " +"encapsulé par l'objet méthode statique. Reportez-vous à la section :ref:" +"`descriptors` pour une autre manière dont les attributs d'une classe " +"diffèrent de ceux réellement contenus dans son :attr:`~objet.__dict__`." + +#: ../Doc/reference/datamodel.rst:781 +msgid "" +"Class attribute assignments update the class's dictionary, never the " +"dictionary of a base class." +msgstr "" +"Les assignations d'un attribut de classe mettent à jour le dictionnaire de " +"la classe, jamais le dictionnaire d'une classe de base." + +#: ../Doc/reference/datamodel.rst:786 +msgid "" +"A class object can be called (see above) to yield a class instance (see " +"below)." +msgstr "" +"Un objet classe peut être appelé (voir ci-dessus) pour produire une instance " +"de classe (voir ci-dessous)." + +#: ../Doc/reference/datamodel.rst:796 +msgid "" +"Special attributes: :attr:`~definition.__name__` is the class name; :attr:" +"`__module__` is the module name in which the class was defined; :attr:" +"`~object.__dict__` is the dictionary containing the class's namespace; :attr:" +"`~class.__bases__` is a tuple containing the base classes, in the order of " +"their occurrence in the base class list; :attr:`__doc__` is the class's " +"documentation string, or ``None`` if undefined; :attr:`__annotations__` " +"(optional) is a dictionary containing :term:`variable annotations ` collected during class body execution." +msgstr "" +"Attributs spéciaux : :attr:`~definition.__name__` est le nom de la classe ; :" +"attr:`__module__` est le nom du module dans lequel la classe est définie ; :" +"attr:`~object.__dict__` est le dictionnaire contenant l'espace de nommage de " +"la classe ; :attr:`~class.__bases__` est un tuple contenant les classes de " +"base, dans l'ordre d'apparition dans la liste des classes de base ; :attr:" +"`__doc__` est la chaîne de documentation de la classe (ou ``None`` si elle " +"n'existe pas) ; :attr:`__annotations__` (optionnel) est un dictionnaire " +"contenant les :term:`annotations de variables ` " +"collectées durant l'exécution du corps de la classe." + +#: ../Doc/reference/datamodel.rst:846 +msgid "Class instances" +msgstr "Instances de classes" + +#: ../Doc/reference/datamodel.rst:812 +msgid "" +"A class instance is created by calling a class object (see above). A class " +"instance has a namespace implemented as a dictionary which is the first " +"place in which attribute references are searched. When an attribute is not " +"found there, and the instance's class has an attribute by that name, the " +"search continues with the class attributes. If a class attribute is found " +"that is a user-defined function object, it is transformed into an instance " +"method object whose :attr:`__self__` attribute is the instance. Static " +"method and class method objects are also transformed; see above under " +"\"Classes\". See section :ref:`descriptors` for another way in which " +"attributes of a class retrieved via its instances may differ from the " +"objects actually stored in the class's :attr:`~object.__dict__`. If no " +"class attribute is found, and the object's class has a :meth:`__getattr__` " +"method, that is called to satisfy the lookup." +msgstr "" +"Une instance de classe est créée en appelant un objet classe (voir ci-" +"dessus). Une instance de classe possède un espace de nommage implémenté sous " +"la forme d'un dictionnaire qui est le premier endroit où sont recherchées " +"les références aux attributs. Quand un attribut n'est pas trouvé dans ce " +"dictionnaire et que la classe de l'instance contient un attribut avec ce " +"nom, la recherche continue avec les attributs de la classe. Si un attribut " +"de classe est trouvé et que c'est un objet fonction définie par " +"l'utilisateur, il est transformé en objet méthode d'instance dont " +"l'attribut :attr:`__self__` est l'instance. Les objets méthodes statiques et " +"méthodes de classe sont aussi transformés ; reportez-vous ci-dessous à " +"« Classes ». Lisez la section :ref:`descriptors` pour une autre façon de " +"récupérer les attributs d'une classe, où la récupération *via* ses instances " +"peut différer des objets réellement stockés dans le :attr:`~object.__dict__` " +"de la classe. Si aucun attribut de classe n'est trouvé et que la classe de " +"l'objet possède une méthode :meth:`__getattr__`, cette méthode est appelée " +"pour rechercher une correspondance." + +#: ../Doc/reference/datamodel.rst:828 +msgid "" +"Attribute assignments and deletions update the instance's dictionary, never " +"a class's dictionary. If the class has a :meth:`__setattr__` or :meth:" +"`__delattr__` method, this is called instead of updating the instance " +"dictionary directly." +msgstr "" +"Les assignations et suppressions d'attributs mettent à jour le dictionnaire " +"de l'instance, jamais le dictionnaire de la classe. Si la classe possède une " +"méthode :meth:`__setattr__` ou :meth:`__delattr__`, elle est appelée au lieu " +"de mettre à jour le dictionnaire de l'instance directement." + +#: ../Doc/reference/datamodel.rst:838 +msgid "" +"Class instances can pretend to be numbers, sequences, or mappings if they " +"have methods with certain special names. See section :ref:`specialnames`." +msgstr "" +"Les instances de classes peuvent prétendre être des nombres, des séquences " +"ou des tableaux de correspondance si elles ont des méthodes avec des noms " +"spéciaux. Voir la section :ref:`specialnames`." + +#: ../Doc/reference/datamodel.rst:845 +msgid "" +"Special attributes: :attr:`~object.__dict__` is the attribute dictionary; :" +"attr:`~instance.__class__` is the instance's class." +msgstr "" +"Attributs spéciaux : :attr:`~object.__dict__` est le dictionnaire des " +"attributs ; :attr:`~instance.__class__` est la classe de l'instance." + +#: ../Doc/reference/datamodel.rst:872 +msgid "I/O objects (also known as file objects)" +msgstr "Objets Entrées-Sorties (ou objets fichiers)" + +#: ../Doc/reference/datamodel.rst:862 +msgid "" +"A :term:`file object` represents an open file. Various shortcuts are " +"available to create file objects: the :func:`open` built-in function, and " +"also :func:`os.popen`, :func:`os.fdopen`, and the :meth:`~socket.socket." +"makefile` method of socket objects (and perhaps by other functions or " +"methods provided by extension modules)." +msgstr "" +"Un :term:`objet fichier` représente un fichier ouvert. Différents raccourcis " +"existent pour créer des objets fichiers : la fonction native :func:`open` et " +"aussi :func:`os.popen`, :func:`os.fdopen` ou la méthode :meth:`~socket." +"socket.makefile` des objets connecteurs (et sûrement d'autres fonctions ou " +"méthodes fournies par les modules d'extensions)." + +#: ../Doc/reference/datamodel.rst:868 +msgid "" +"The objects ``sys.stdin``, ``sys.stdout`` and ``sys.stderr`` are initialized " +"to file objects corresponding to the interpreter's standard input, output " +"and error streams; they are all open in text mode and therefore follow the " +"interface defined by the :class:`io.TextIOBase` abstract class." +msgstr "" +"Les objets ``sys.stdin``, ``sys.stdout`` et ``sys.stderr`` sont initialisés " +"à des objets fichiers correspondant à l'entrée standard, la sortie standard " +"et le flux d'erreurs de l'interpréteur ; ils sont tous ouverts en mode texte " +"et se conforment donc à l'interface définie par la classe abstraite :class:" +"`io.TextIOBase`." + +#: ../Doc/reference/datamodel.rst:1110 +msgid "Internal types" +msgstr "Types internes" + +#: ../Doc/reference/datamodel.rst:879 +msgid "" +"A few types used internally by the interpreter are exposed to the user. " +"Their definitions may change with future versions of the interpreter, but " +"they are mentioned here for completeness." +msgstr "" +"Quelques types utilisés en interne par l'interpréteur sont accessibles à " +"l'utilisateur. Leur définition peut changer dans les futures versions de " +"l'interpréteur mais ils sont donnés ci-dessous à fin d'exhaustivité." + +#: ../Doc/reference/datamodel.rst:947 +msgid "Code objects" +msgstr "Objets Code" + +#: ../Doc/reference/datamodel.rst:886 +msgid "" +"Code objects represent *byte-compiled* executable Python code, or :term:" +"`bytecode`. The difference between a code object and a function object is " +"that the function object contains an explicit reference to the function's " +"globals (the module in which it was defined), while a code object contains " +"no context; also the default argument values are stored in the function " +"object, not in the code object (because they represent values calculated at " +"run-time). Unlike function objects, code objects are immutable and contain " +"no references (directly or indirectly) to mutable objects." +msgstr "" +"Un objet code représente le code Python sous sa forme compilée en :term:" +"`bytecode`. La différence entre un objet code et un objet fonction est que " +"l'objet fonction contient une référence explicite vers les globales de la " +"fonction (le module dans lequel elle est définie) alors qu'un objet code ne " +"contient aucun contexte ; par ailleurs, les valeurs par défaut des arguments " +"sont stockées dans l'objet fonction, pas dans l'objet code (parce que ce " +"sont des valeurs calculées au moment de l'exécution). Contrairement aux " +"objets fonctions, les objets codes sont immuables et ne contiennent aucune " +"référence (directe ou indirecte) à des objets muables." + +#: ../Doc/reference/datamodel.rst:911 +msgid "" +"Special read-only attributes: :attr:`co_name` gives the function name; :attr:" +"`co_argcount` is the number of positional arguments (including arguments " +"with default values); :attr:`co_nlocals` is the number of local variables " +"used by the function (including arguments); :attr:`co_varnames` is a tuple " +"containing the names of the local variables (starting with the argument " +"names); :attr:`co_cellvars` is a tuple containing the names of local " +"variables that are referenced by nested functions; :attr:`co_freevars` is a " +"tuple containing the names of free variables; :attr:`co_code` is a string " +"representing the sequence of bytecode instructions; :attr:`co_consts` is a " +"tuple containing the literals used by the bytecode; :attr:`co_names` is a " +"tuple containing the names used by the bytecode; :attr:`co_filename` is the " +"filename from which the code was compiled; :attr:`co_firstlineno` is the " +"first line number of the function; :attr:`co_lnotab` is a string encoding " +"the mapping from bytecode offsets to line numbers (for details see the " +"source code of the interpreter); :attr:`co_stacksize` is the required stack " +"size (including local variables); :attr:`co_flags` is an integer encoding a " +"number of flags for the interpreter." +msgstr "" +"Attributs spéciaux en lecture seule : :attr:`co_name` donne le nom de la " +"fonction ; :attr:`co_argcount` est le nombre d'arguments positionnels (y " +"compris les arguments avec des valeurs par défaut) ; :attr:`co_nlocals` est " +"le nombre de variables locales utilisées par la fonction (y compris les " +"arguments) ; :attr:`co_varnames` est un tuple contenant le nom des variables " +"locales (en commençant par les noms des arguments) ; :attr:`co_cellvars` est " +"un tuple contenant les noms des variables locales qui sont référencées par " +"des fonctions imbriquées ; :attr:`co_freevars` est un tuple contenant les " +"noms des variables libres ; :attr:`co_code` est une chaîne représentant la " +"séquence des instructions de *bytecode* ; :attr:`co_consts` est un tuple " +"contenant les littéraux utilisés par le *bytecode* ; :attr:`co_names` est un " +"tuple contenant les noms utilisés par le *bytecode* ; :attr:`co_filename` " +"est le nom de fichier à partir duquel le code a été compilé ; :attr:" +"`co_firstlineno` est numéro de la première ligne de la fonction ; :attr:" +"`co_lnotab` est une chaîne qui code la correspondance entre les différents " +"endroits du *bytecode* et les numéros de lignes (pour les détails, regardez " +"le code source de l'interpréteur) ; :attr:`co_stacksize` est la taille de " +"pile nécessaire (y compris pour les variables locales) ; :attr:`co_flags` " +"est un entier qui code différents drapeaux pour l'interpréteur." + +#: ../Doc/reference/datamodel.rst:930 +msgid "" +"The following flag bits are defined for :attr:`co_flags`: bit ``0x04`` is " +"set if the function uses the ``*arguments`` syntax to accept an arbitrary " +"number of positional arguments; bit ``0x08`` is set if the function uses the " +"``**keywords`` syntax to accept arbitrary keyword arguments; bit ``0x20`` is " +"set if the function is a generator." +msgstr "" +"Les drapeaux suivants sont codés par des bits dans :attr:`co_flags` : le bit " +"``0x04`` est positionné à 1 si la fonction utilise la syntaxe ``*arguments`` " +"pour accepter un nombre arbitraire d'arguments positionnels ; le bit " +"``0x08`` est positionné à 1 si la fonction utilise la syntaxe ``**keywords`` " +"pour accepter un nombre arbitraire d'arguments nommés ; le bit ``0x20`` est " +"positionné à 1 si la fonction est un générateur." + +#: ../Doc/reference/datamodel.rst:936 +msgid "" +"Future feature declarations (``from __future__ import division``) also use " +"bits in :attr:`co_flags` to indicate whether a code object was compiled with " +"a particular feature enabled: bit ``0x2000`` is set if the function was " +"compiled with future division enabled; bits ``0x10`` and ``0x1000`` were " +"used in earlier versions of Python." +msgstr "" +"Les déclarations de fonctionnalité future ``from __future__ import " +"division`` utilisent aussi des bits dans :attr:`co_flags` pour indiquer si " +"l'objet code a été compilé avec une fonctionnalité future : le bit " +"``0x2000`` est positionné à 1 si la fonction a été compilée avec la division " +"future activée ; les bits ``0x10`` et ``0x1000`` étaient utilisés dans les " +"versions antérieures de Python." + +#: ../Doc/reference/datamodel.rst:942 +msgid "Other bits in :attr:`co_flags` are reserved for internal use." +msgstr "Les autres bits de :attr:`co_flags` sont réservés à un usage interne." + +#: ../Doc/reference/datamodel.rst:946 +msgid "" +"If a code object represents a function, the first item in :attr:`co_consts` " +"is the documentation string of the function, or ``None`` if undefined." +msgstr "" +"Si l'objet code représente une fonction, le premier élément dans :attr:" +"`co_consts` est la chaîne de documentation de la fonction (ou ``None`` s'il " +"n'y en a pas)." + +#: ../Doc/reference/datamodel.rst:1006 +msgid "Frame objects" +msgstr "Objets cadres" + +#: ../Doc/reference/datamodel.rst:954 +msgid "" +"Frame objects represent execution frames. They may occur in traceback " +"objects (see below), and are also passed to registered trace functions." +msgstr "" +"Un objet cadre représente le cadre d'exécution. Il apparait dans des objets " +"traces (voir plus loin) et est passé comme argument aux fonctions de traçage " +"actives." + +#: ../Doc/reference/datamodel.rst:965 +msgid "" +"Special read-only attributes: :attr:`f_back` is to the previous stack frame " +"(towards the caller), or ``None`` if this is the bottom stack frame; :attr:" +"`f_code` is the code object being executed in this frame; :attr:`f_locals` " +"is the dictionary used to look up local variables; :attr:`f_globals` is used " +"for global variables; :attr:`f_builtins` is used for built-in (intrinsic) " +"names; :attr:`f_lasti` gives the precise instruction (this is an index into " +"the bytecode string of the code object)." +msgstr "" +"Attributs spéciaux en lecture seule : :attr:`f_back` pointe vers le cadre " +"précédent (l'appelant) ou ``None`` si c'est le pied de la pile d'appel ; :" +"attr:`f_code` est l'objet code en cours d'exécution dans ce cadre ; :attr:" +"`f_locals` est le dictionnaire dans lequel sont cherchées les variables " +"locales ; :attr:`f_globals` est utilisé pour les variables globales ; :attr:" +"`f_builtins` est utilisé pour les noms natifs ; :attr:`f_lasti` donne " +"l'instruction précise (c'est un indice dans la chaîne de *bytecode* de " +"l'objet code)." + +#: ../Doc/reference/datamodel.rst:979 +msgid "" +"Special writable attributes: :attr:`f_trace`, if not ``None``, is a function " +"called for various events during code execution (this is used by the " +"debugger). Normally an event is triggered for each new source line - this " +"can be disabled by setting :attr:`f_trace_lines` to :const:`False`." +msgstr "" +"Attributs spéciaux en lecture-écriture : :attr:`f_trace`, s'il n'est pas " +"``None``, c'est une fonction appelée à différentes occasions durant " +"l'exécution du code (elle est utilisée par le débogueur). Normalement, un " +"événement est déclenché pour chaque ligne de code source — ce comportement " +"peut être désactivé en définissant :attr:`f_trace_lines` à :const:`False`." + +#: ../Doc/reference/datamodel.rst:984 +msgid "" +"Implementations *may* allow per-opcode events to be requested by setting :" +"attr:`f_trace_opcodes` to :const:`True`. Note that this may lead to " +"undefined interpreter behaviour if exceptions raised by the trace function " +"escape to the function being traced." +msgstr "" +"Une implémentation *peut* autoriser le déclenchement des événements *opcode* " +"par *opcode* en définissant :attr:`f_trace_opcodes` à :const:`True`. Notez " +"que cela peut conduire à un comportement erratique de l'interpréteur si des " +"exceptions levées la fonction de traçage s'échappent vers la fonction en " +"train d'être tracée." + +#: ../Doc/reference/datamodel.rst:989 +msgid "" +":attr:`f_lineno` is the current line number of the frame --- writing to this " +"from within a trace function jumps to the given line (only for the bottom-" +"most frame). A debugger can implement a Jump command (aka Set Next " +"Statement) by writing to f_lineno." +msgstr "" +":attr:`f_lineno` est le numéro de la ligne courante du cadre — écrire dedans " +"depuis une fonction trace fait sauter à la ligne demandée (seulement pour le " +"cadre le plus bas). Un débogueur peut implémenter une commande « sauter " +"vers » (aussi appelée « Définir la prochaine instruction » ou *Set Next " +"Statement* en anglais) en écrivant dans ``f_lineno``." + +#: ../Doc/reference/datamodel.rst:994 +msgid "Frame objects support one method:" +msgstr "Les objets cadres comprennent une méthode :" + +#: ../Doc/reference/datamodel.rst:998 +msgid "" +"This method clears all references to local variables held by the frame. " +"Also, if the frame belonged to a generator, the generator is finalized. " +"This helps break reference cycles involving frame objects (for example when " +"catching an exception and storing its traceback for later use)." +msgstr "" +"Cette méthode efface toutes les références aux variables locales conservées " +"dans le cadre. Par ailleurs, si le cadre est celui d'un générateur, le " +"générateur se termine. Ceci permet de casser des références cycliques qui " +"incluent des objets cadres (par exemple, lors de la capture d'une exception " +"et du stockage de la pile d'appels pour une utilisation future)." + +#: ../Doc/reference/datamodel.rst:1004 +msgid ":exc:`RuntimeError` is raised if the frame is currently executing." +msgstr ":exc:`RuntimeError` est levée si le cadre est en cours d'exécution." + +#: ../Doc/reference/datamodel.rst:1066 +msgid "Traceback objects" +msgstr "Objets traces" + +#: ../Doc/reference/datamodel.rst:1021 +msgid "" +"Traceback objects represent a stack trace of an exception. A traceback " +"object is implicitly created when an exception occurs, and may also be " +"explicitly created by calling :class:`types.TracebackType`." +msgstr "" +"Les objets traces représentent la pile de traces d'une exception. Un objet " +"trace est implicitement créé quand une exception apparaît et peut être " +"explicitement créé en appelant :class:`types.TracebackType`." + +#: ../Doc/reference/datamodel.rst:1025 +msgid "" +"For implicitly created tracebacks, when the search for an exception handler " +"unwinds the execution stack, at each unwound level a traceback object is " +"inserted in front of the current traceback. When an exception handler is " +"entered, the stack trace is made available to the program. (See section :ref:" +"`try`.) It is accessible as the third item of the tuple returned by ``sys." +"exc_info()``, and as the ``__traceback__`` attribute of the caught exception." +msgstr "" +"Pour les traces créées implicitement, quand l'interpréteur recherche un " +"gestionnaire d'exception en remontant la pile d'exécution, un objet trace " +"est inséré devant l'objet trace courant à chaque nouveau niveau. Quand il " +"entre dans le gestionnaire d'exception, la pile d'appels est rendue " +"accessible au programme (voir la section :ref:`try`). Elle est accessible " +"par le troisième élément du tuple renvoyé par ``sys.exc_info()`` et comme " +"attribut ``__traceback__`` de l'exception qui est traitée." + +#: ../Doc/reference/datamodel.rst:1033 +msgid "" +"When the program contains no suitable handler, the stack trace is written " +"(nicely formatted) to the standard error stream; if the interpreter is " +"interactive, it is also made available to the user as ``sys.last_traceback``." +msgstr "" +"Quand le programme ne contient aucun gestionnaire adéquat, la pile de traces " +"est écrite (joliment formatée) sur la sortie d'erreur standard ; si " +"l'interpréteur est interactif, elle est rendue disponible pour l'utilisateur " +"en tant que ``sys.last_traceback``." + +#: ../Doc/reference/datamodel.rst:1038 +msgid "" +"For explicitly created tracebacks, it is up to the creator of the traceback " +"to determine how the ``tb_next`` attributes should be linked to form a full " +"stack trace." +msgstr "" +"Pour les traces créées explicitement, il revient au créateur de la trace de " +"déterminer comment les attributs ``tb_next`` doivent être liés pour former " +"la pile complète des traces." + +#: ../Doc/reference/datamodel.rst:1048 +msgid "" +"Special read-only attributes: :attr:`tb_frame` points to the execution frame " +"of the current level; :attr:`tb_lineno` gives the line number where the " +"exception occurred; :attr:`tb_lasti` indicates the precise instruction. The " +"line number and last instruction in the traceback may differ from the line " +"number of its frame object if the exception occurred in a :keyword:`try` " +"statement with no matching except clause or with a finally clause." +msgstr "" +"Attributs spéciaux en lecture seule : :attr:`tb_frame` pointe vers le cadre " +"d'exécution du niveau courant ; :attr:`tb_lineno` donne le numéro de ligne " +"où l'exception a été levée ; :attr:`tb_lasti` indique l'instruction précise. " +"Le numéro de ligne et la dernière instruction dans la trace peuvent différer " +"du numéro de ligne de l'objet cadre si l'exception a eu lieu dans une " +"instruction :keyword:`try` sans qu'il n'y ait de clause :keyword:`!except` " +"adéquate ou sans clause *finally*." + +#: ../Doc/reference/datamodel.rst:1060 +msgid "" +"Special writable attribute: :attr:`tb_next` is the next level in the stack " +"trace (towards the frame where the exception occurred), or ``None`` if there " +"is no next level." +msgstr "" +"Attributs spéciaux en lecture-écriture :attr:`tb_next` est le niveau suivant " +"dans la pile d'exécution (en direction du cadre où l'exception a eu lieu) ou " +"``None`` s'il n'y a pas de niveau suivant." + +#: ../Doc/reference/datamodel.rst:1064 +msgid "" +"Traceback objects can now be explicitly instantiated from Python code, and " +"the ``tb_next`` attribute of existing instances can be updated." +msgstr "" +"Les objets de traces d'appels peuvent maintenant être explicitement " +"instanciés depuis le code Python et l'attribut ``tb_next`` des instances " +"existantes peut être mis à jour." + +#: ../Doc/reference/datamodel.rst:1092 +msgid "Slice objects" +msgstr "Objets tranches" + +#: ../Doc/reference/datamodel.rst:1071 +msgid "" +"Slice objects are used to represent slices for :meth:`__getitem__` methods. " +"They are also created by the built-in :func:`slice` function." +msgstr "" +"Un objet tranche est utilisé pour représenter des découpes des méthodes :" +"meth:`__getitem__`. Ils sont aussi créés par la fonction native :func:" +"`slice`." + +#: ../Doc/reference/datamodel.rst:1079 +msgid "" +"Special read-only attributes: :attr:`~slice.start` is the lower bound; :attr:" +"`~slice.stop` is the upper bound; :attr:`~slice.step` is the step value; " +"each is ``None`` if omitted. These attributes can have any type." +msgstr "" +"Attributs spéciaux en lecture seule : :attr:`~decoupe.start` est la borne " +"inférieure ; :attr:`~decoupe.stop` est la borne supérieure ; :attr:`~decoupe." +"step` est la valeur du pas ; chaque attribut vaut ``None`` s'il est omis. " +"Ces attributs peuvent être de n'importe quel type." + +#: ../Doc/reference/datamodel.rst:1083 +msgid "Slice objects support one method:" +msgstr "Les objets tranches comprennent une méthode :" + +#: ../Doc/reference/datamodel.rst:1087 +msgid "" +"This method takes a single integer argument *length* and computes " +"information about the slice that the slice object would describe if applied " +"to a sequence of *length* items. It returns a tuple of three integers; " +"respectively these are the *start* and *stop* indices and the *step* or " +"stride length of the slice. Missing or out-of-bounds indices are handled in " +"a manner consistent with regular slices." +msgstr "" +"Cette méthode prend un argument entier *length* et calcule les informations " +"de la tranche que l'objet découpe décrit s'il est appliqué à une séquence de " +"*length* éléments. Elle renvoie un tuple de trois entiers ; respectivement, " +"ce sont les indices de *début* et *fin* ainsi que le *pas* de découpe. Les " +"indices manquants ou en dehors sont gérés de manière cohérente avec les " +"tranches normales." + +#: ../Doc/reference/datamodel.rst:1102 +msgid "Static method objects" +msgstr "Objets méthodes statiques" + +#: ../Doc/reference/datamodel.rst:1095 +msgid "" +"Static method objects provide a way of defeating the transformation of " +"function objects to method objects described above. A static method object " +"is a wrapper around any other object, usually a user-defined method object. " +"When a static method object is retrieved from a class or a class instance, " +"the object actually returned is the wrapped object, which is not subject to " +"any further transformation. Static method objects are not themselves " +"callable, although the objects they wrap usually are. Static method objects " +"are created by the built-in :func:`staticmethod` constructor." +msgstr "" +"Les objets méthodes statiques permettent la transformation des objets " +"fonctions en objets méthodes décrits au-dessus. Un objet méthode statique " +"encapsule tout autre objet, souvent un objet méthode définie par " +"l'utilisateur. Quand un objet méthode statique est récupéré depuis une " +"classe ou une instance de classe, l'objet réellement renvoyé est un objet " +"encapsulé, qui n'a pas vocation à être transformé encore une fois. Les " +"objets méthodes statiques ne sont pas appelables en tant que tels, bien que " +"les objets qu'ils encapsulent le soient souvent. Les objets méthodes " +"statiques sont créés par le constructeur natif :func:`staticmethod`." + +#: ../Doc/reference/datamodel.rst:1110 +msgid "Class method objects" +msgstr "Objets méthodes de classes" + +#: ../Doc/reference/datamodel.rst:1105 +msgid "" +"A class method object, like a static method object, is a wrapper around " +"another object that alters the way in which that object is retrieved from " +"classes and class instances. The behaviour of class method objects upon such " +"retrieval is described above, under \"User-defined methods\". Class method " +"objects are created by the built-in :func:`classmethod` constructor." +msgstr "" +"Un objet méthode de classe, comme un objet méthode statique, encapsule un " +"autre objet afin de modifier la façon dont cet objet est récupéré depuis les " +"classes et instances de classes. Le comportement des objets méthodes de " +"classes dans le cas d'une telle récupération est décrit plus haut, dans " +"« méthodes définies par l'utilisateur ». Les objets méthodes de classes sont " +"créés par le constructeur natif :func:`classmethod`." + +#: ../Doc/reference/datamodel.rst:1115 +msgid "Special method names" +msgstr "Méthodes spéciales" + +#: ../Doc/reference/datamodel.rst:1121 +msgid "" +"A class can implement certain operations that are invoked by special syntax " +"(such as arithmetic operations or subscripting and slicing) by defining " +"methods with special names. This is Python's approach to :dfn:`operator " +"overloading`, allowing classes to define their own behavior with respect to " +"language operators. For instance, if a class defines a method named :meth:" +"`__getitem__`, and ``x`` is an instance of this class, then ``x[i]`` is " +"roughly equivalent to ``type(x).__getitem__(x, i)``. Except where " +"mentioned, attempts to execute an operation raise an exception when no " +"appropriate method is defined (typically :exc:`AttributeError` or :exc:" +"`TypeError`)." +msgstr "" +"Une classe peut implémenter certaines opérations que l'on invoque par une " +"syntaxe spéciale (telles que les opérations arithmétiques ou la découpe en " +"tranches) en définissant des méthodes aux noms particuliers. C'est " +"l'approche utilisée par Python pour la :dfn:`surcharge d'opérateur`, " +"permettant à une classe de définir son propre comportement vis-à-vis des " +"opérateurs du langage. Par exemple, si une classe définit une méthode :meth:" +"`__getitem__` et que ``x`` est une instance de cette classe, alors ``x[i]`` " +"est globalement équivalent à ``type(x).__getitem__(x, i)``. Sauf lorsque " +"c'est mentionné, toute tentative d'appliquer une opération alors que la " +"méthode appropriée n'est pas définie lève une exception (typiquement :exc:" +"`AttributeError` ou :exc:`TypeError`)." + +#: ../Doc/reference/datamodel.rst:1131 +msgid "" +"Setting a special method to ``None`` indicates that the corresponding " +"operation is not available. For example, if a class sets :meth:`__iter__` " +"to ``None``, the class is not iterable, so calling :func:`iter` on its " +"instances will raise a :exc:`TypeError` (without falling back to :meth:" +"`__getitem__`). [#]_" +msgstr "" +"Définir une méthode spéciale à ``None`` indique que l'opération " +"correspondante n'est pas disponible. Par exemple, si une classe assigne " +"``None`` à :meth:`__iter__`, vous ne pouvez pas itérer sur la classe et " +"appeler :func:`iter` sur une instance lève :exc:`TypeError` (sans se replier " +"sur :meth:`__getitem__`) [#]_." + +#: ../Doc/reference/datamodel.rst:1137 +msgid "" +"When implementing a class that emulates any built-in type, it is important " +"that the emulation only be implemented to the degree that it makes sense for " +"the object being modelled. For example, some sequences may work well with " +"retrieval of individual elements, but extracting a slice may not make " +"sense. (One example of this is the :class:`~xml.dom.NodeList` interface in " +"the W3C's Document Object Model.)" +msgstr "" +"Lorsque vous implémentez une classe qui émule un type natif, il est " +"important que cette émulation n'implémente que ce qui fait sens pour l'objet " +"qui est modélisé. Par exemple, la recherche d'éléments individuels d'une " +"séquence peut faire sens, mais pas l'extraction d'une tranche (un exemple " +"est l'interface de :class:`~xml.dom.NodeList` dans le modèle objet des " +"documents W3C)." + +#: ../Doc/reference/datamodel.rst:1148 +msgid "Basic customization" +msgstr "Personnalisation de base" + +#: ../Doc/reference/datamodel.rst:1154 +msgid "" +"Called to create a new instance of class *cls*. :meth:`__new__` is a static " +"method (special-cased so you need not declare it as such) that takes the " +"class of which an instance was requested as its first argument. The " +"remaining arguments are those passed to the object constructor expression " +"(the call to the class). The return value of :meth:`__new__` should be the " +"new object instance (usually an instance of *cls*)." +msgstr "" +"Appelée pour créer une nouvelle instance de la classe *cls*. La méthode :" +"meth:`__new__` est statique (c'est un cas particulier, vous n'avez pas " +"besoin de la déclarer comme telle) qui prend comme premier argument la " +"classe pour laquelle on veut créer une instance. Les autres arguments sont " +"ceux passés à l'expression de l'objet constructeur (l'appel à la classe). La " +"valeur de retour de :meth:`__new__` doit être l'instance du nouvel objet " +"(classiquement une instance de *cls*)." + +#: ../Doc/reference/datamodel.rst:1161 +msgid "" +"Typical implementations create a new instance of the class by invoking the " +"superclass's :meth:`__new__` method using ``super().__new__(cls[, ...])`` " +"with appropriate arguments and then modifying the newly-created instance as " +"necessary before returning it." +msgstr "" +"Une implémentation typique crée une nouvelle instance de la classe en " +"invoquant la méthode :meth:`__new__` de la superclasse à l'aide de ``super()." +"__new__(cls[, ...])`` avec les arguments adéquats, puis modifie l'instance " +"nouvellement créée en tant que de besoin avant de la renvoyer." + +#: ../Doc/reference/datamodel.rst:1166 +msgid "" +"If :meth:`__new__` returns an instance of *cls*, then the new instance's :" +"meth:`__init__` method will be invoked like ``__init__(self[, ...])``, where " +"*self* is the new instance and the remaining arguments are the same as were " +"passed to :meth:`__new__`." +msgstr "" +"Si :meth:`__new__` renvoie une instance de *cls*, alors la méthode :meth:" +"`__init__` de la nouvelle instance est invoquée avec " +"``__init__(self[, ...])`` où *self* est la nouvelle instance et les autres " +"arguments sont les mêmes que ceux passés à :meth:`__new__`." + +#: ../Doc/reference/datamodel.rst:1171 +msgid "" +"If :meth:`__new__` does not return an instance of *cls*, then the new " +"instance's :meth:`__init__` method will not be invoked." +msgstr "" +"Si :meth:`__new__` ne renvoie pas une instance de *cls*, alors la méthode :" +"meth:`__init__` de la nouvelle instance n'est pas invoquée." + +#: ../Doc/reference/datamodel.rst:1174 +msgid "" +":meth:`__new__` is intended mainly to allow subclasses of immutable types " +"(like int, str, or tuple) to customize instance creation. It is also " +"commonly overridden in custom metaclasses in order to customize class " +"creation." +msgstr "" +"L'objectif de :meth:`__new__` est principalement, pour les sous-classes de " +"types immuables (comme ``int``, ``str`` ou ``tuple``), d'autoriser la " +"création sur mesure des instances. Elle est aussi souvent surchargée dans " +"les méta-classes pour particulariser la création des classes." + +#: ../Doc/reference/datamodel.rst:1183 +msgid "" +"Called after the instance has been created (by :meth:`__new__`), but before " +"it is returned to the caller. The arguments are those passed to the class " +"constructor expression. If a base class has an :meth:`__init__` method, the " +"derived class's :meth:`__init__` method, if any, must explicitly call it to " +"ensure proper initialization of the base class part of the instance; for " +"example: ``super().__init__([args...])``." +msgstr "" +"Appelée après la création de l'instance (par :meth:`__new__`), mais avant le " +"retour vers l'appelant. Les arguments sont ceux passés à l'expression du " +"constructeur de classe. Si une classe de base possède une méthode :meth:" +"`__init__`, la méthode :meth:`__init__` de la classe dérivée, si elle " +"existe, doit explicitement appeler cette méthode pour assurer une " +"initialisation correcte de la partie classe de base de l'instance ; par " +"exemple : ``super().__init__([args...])``." + +#: ../Doc/reference/datamodel.rst:1190 +msgid "" +"Because :meth:`__new__` and :meth:`__init__` work together in constructing " +"objects (:meth:`__new__` to create it, and :meth:`__init__` to customize " +"it), no non-``None`` value may be returned by :meth:`__init__`; doing so " +"will cause a :exc:`TypeError` to be raised at runtime." +msgstr "" +"Comme :meth:`__new__` et :meth:`__init__` travaillent ensemble pour créer " +"des objets (:meth:`__new__` pour le créer, :meth:`__init__` pour le " +"particulariser), :meth:`__init__` ne doit pas renvoyer de valeur ``None`` ; " +"sinon une exception :exc:`TypeError` est levée à l'exécution." + +#: ../Doc/reference/datamodel.rst:1203 +msgid "" +"Called when the instance is about to be destroyed. This is also called a " +"finalizer or (improperly) a destructor. If a base class has a :meth:" +"`__del__` method, the derived class's :meth:`__del__` method, if any, must " +"explicitly call it to ensure proper deletion of the base class part of the " +"instance." +msgstr "" +"Appelée au moment où une instance est sur le point d'être détruite. On " +"l'appelle aussi finaliseur ou (improprement) destructeur. Si une classe de " +"base possède une méthode :meth:`__del__`, la méthode :meth:`__del__` de la " +"classe dérivée, si elle existe, doit explicitement l'appeler pour s'assurer " +"de l'effacement correct de la partie classe de base de l'instance." + +#: ../Doc/reference/datamodel.rst:1209 +msgid "" +"It is possible (though not recommended!) for the :meth:`__del__` method to " +"postpone destruction of the instance by creating a new reference to it. " +"This is called object *resurrection*. It is implementation-dependent " +"whether :meth:`__del__` is called a second time when a resurrected object is " +"about to be destroyed; the current :term:`CPython` implementation only calls " +"it once." +msgstr "" +"Il est possible (mais pas recommandé) que la méthode :meth:`__del__` retarde " +"la destruction de l'instance en créant une nouvelle référence vers cet " +"objet. Python appelle ceci la *résurrection* d'objet. En fonction de " +"l'implémentation, :meth:`__del__` peut être appelée une deuxième fois au " +"moment où l'objet ressuscité va être détruit ; l'implémentation actuelle de :" +"term:`CPython` ne l'appelle qu'une fois." + +#: ../Doc/reference/datamodel.rst:1216 +msgid "" +"It is not guaranteed that :meth:`__del__` methods are called for objects " +"that still exist when the interpreter exits." +msgstr "" +"Il n'est pas garanti que soient appelées les méthodes :meth:`__del__` des " +"objets qui existent toujours quand l'interpréteur termine." + +#: ../Doc/reference/datamodel.rst:1221 +msgid "" +"``del x`` doesn't directly call ``x.__del__()`` --- the former decrements " +"the reference count for ``x`` by one, and the latter is only called when " +"``x``'s reference count reaches zero." +msgstr "" +"``del x`` n'appelle pas directement ``x.__del__()`` — la première décrémente " +"le compteur de références de ``x``. La seconde n'est appelée que quand le " +"compteur de références de ``x`` atteint zéro." + +#: ../Doc/reference/datamodel.rst:1236 +msgid "Documentation for the :mod:`gc` module." +msgstr "Documentation du module :mod:`gc`." + +#: ../Doc/reference/datamodel.rst:1240 +msgid "" +"Due to the precarious circumstances under which :meth:`__del__` methods are " +"invoked, exceptions that occur during their execution are ignored, and a " +"warning is printed to ``sys.stderr`` instead. In particular:" +msgstr "" +"En raison des conditions particulières qui règnent quand :meth:`__del__` est " +"appelée, les exceptions levées pendant son exécution sont ignorées et, à la " +"place, un avertissement est affiché sur ``sys.stderr``. En particulier :" + +#: ../Doc/reference/datamodel.rst:1244 +msgid "" +":meth:`__del__` can be invoked when arbitrary code is being executed, " +"including from any arbitrary thread. If :meth:`__del__` needs to take a " +"lock or invoke any other blocking resource, it may deadlock as the resource " +"may already be taken by the code that gets interrupted to execute :meth:" +"`__del__`." +msgstr "" +":meth:`__del__` peut être invoquée quand du code arbitraire est en cours " +"d'exécution, et ce dans n'importe quel fil d'exécution. Si :meth:`__del__` a " +"besoin de poser un verrou ou d'accéder à tout autre ressource bloquante, " +"elle peut provoquer un blocage mutuel (*deadlock* en anglais) car la " +"ressource peut être déjà utilisée par le code qui est interrompu pour " +"exécuter la méthode :meth:`__del__`." + +#: ../Doc/reference/datamodel.rst:1250 +msgid "" +":meth:`__del__` can be executed during interpreter shutdown. As a " +"consequence, the global variables it needs to access (including other " +"modules) may already have been deleted or set to ``None``. Python guarantees " +"that globals whose name begins with a single underscore are deleted from " +"their module before other globals are deleted; if no other references to " +"such globals exist, this may help in assuring that imported modules are " +"still available at the time when the :meth:`__del__` method is called." +msgstr "" +":meth:`__del__` peut être exécutée pendant que l'interpréteur se ferme. En " +"conséquence, les variables globales auxquelles elle souhaite accéder (y " +"compris les autres modules) peuvent déjà être détruites ou assignées à " +"``None``. Python garantit que les variables globales dont le nom commence " +"par un tiret bas sont supprimées de leur module avant que les autres " +"variables globales ne le soient ; si aucune autre référence vers ces " +"variables globales n'existe, cela peut aider à s'assurer que les modules " +"importés soient toujours accessibles au moment où la méthode :meth:`__del__` " +"est appelée." + +#: ../Doc/reference/datamodel.rst:1265 +msgid "" +"Called by the :func:`repr` built-in function to compute the \"official\" " +"string representation of an object. If at all possible, this should look " +"like a valid Python expression that could be used to recreate an object with " +"the same value (given an appropriate environment). If this is not possible, " +"a string of the form ``<...some useful description...>`` should be returned. " +"The return value must be a string object. If a class defines :meth:" +"`__repr__` but not :meth:`__str__`, then :meth:`__repr__` is also used when " +"an \"informal\" string representation of instances of that class is required." +msgstr "" +"Appelée par la fonction native :func:`repr` pour calculer la représentation " +"« officielle » en chaîne de caractères d'un objet. Tout est fait pour que " +"celle-ci ressemble à une expression Python valide pouvant être utilisée pour " +"recréer un objet avec la même valeur (dans un environnement donné). Si ce " +"n'est pas possible, une chaîne de la forme ``<...une description utile...>`` " +"est renvoyée. La valeur renvoyée doit être un objet chaîne de caractères. Si " +"une classe définit :meth:`__repr__` mais pas :meth:`__str__`, alors :meth:" +"`__repr__` est aussi utilisée quand une représentation « informelle » en " +"chaîne de caractères est demandée pour une instance de cette classe." + +#: ../Doc/reference/datamodel.rst:1274 +msgid "" +"This is typically used for debugging, so it is important that the " +"representation is information-rich and unambiguous." +msgstr "" +"Cette fonction est principalement utilisée à fins de débogage, il est donc " +"important que la représentation donne beaucoup d'informations et ne soit pas " +"ambigüe." + +#: ../Doc/reference/datamodel.rst:1285 +msgid "" +"Called by :func:`str(object) ` and the built-in functions :func:" +"`format` and :func:`print` to compute the \"informal\" or nicely printable " +"string representation of an object. The return value must be a :ref:`string " +"` object." +msgstr "" +"Appelée par :func:`str(objet)` ainsi que les fonctions natives :func:" +"`format` et :func:`print` pour calculer une chaîne de caractères " +"« informelle » ou joliment mise en forme de représentation de l'objet. La " +"valeur renvoyée doit être un objet :ref:`string `." + +#: ../Doc/reference/datamodel.rst:1290 +msgid "" +"This method differs from :meth:`object.__repr__` in that there is no " +"expectation that :meth:`__str__` return a valid Python expression: a more " +"convenient or concise representation can be used." +msgstr "" +"Cette méthode diffère de :meth:`object.__repr__` car il n'est pas attendu " +"que :meth:`__str__` renvoie une expression Python valide : une " +"représentation plus agréable à lire ou plus concise peut être utilisée." + +#: ../Doc/reference/datamodel.rst:1294 +msgid "" +"The default implementation defined by the built-in type :class:`object` " +"calls :meth:`object.__repr__`." +msgstr "" +"C'est l'implémentation par défaut des appels à :meth:`object.__repr__` du " +"type natif :class:`object`." + +#: ../Doc/reference/datamodel.rst:1304 +msgid "" +"Called by :ref:`bytes ` to compute a byte-string representation " +"of an object. This should return a :class:`bytes` object." +msgstr "" +"Appelée par :ref:`bytes ` pour calculer une représentation en " +"chaîne *bytes* d'un objet. Elle doit renvoyer un objet :class:`bytes`." + +#: ../Doc/reference/datamodel.rst:1315 +msgid "" +"Called by the :func:`format` built-in function, and by extension, evaluation " +"of :ref:`formatted string literals ` and the :meth:`str.format` " +"method, to produce a \"formatted\" string representation of an object. The " +"*format_spec* argument is a string that contains a description of the " +"formatting options desired. The interpretation of the *format_spec* argument " +"is up to the type implementing :meth:`__format__`, however most classes will " +"either delegate formatting to one of the built-in types, or use a similar " +"formatting option syntax." +msgstr "" +"Appelée par la fonction native :func:`format` et, par extension, lors de " +"l'évaluation de :ref:`formatted string literals ` et la méthode :" +"meth:`str.format`. Elle produit une chaîne de caractères « formatée » " +"représentant un objet. L'argument ``format_spec`` est une chaîne de " +"caractères contenant la description des options de formatage voulues. " +"L'interprétation de l'argument ``format_spec`` est laissée au type " +"implémentant :meth:`__format__`. Cependant, la plupart des classes délèguent " +"le formatage aux types natifs ou utilisent une syntaxe similaire d'options " +"de formatage." + +#: ../Doc/reference/datamodel.rst:1325 +msgid "" +"See :ref:`formatspec` for a description of the standard formatting syntax." +msgstr "" +"Lisez :ref:`formatspec` pour une description de la syntaxe standard du " +"formatage." + +#: ../Doc/reference/datamodel.rst:1327 +msgid "The return value must be a string object." +msgstr "La valeur renvoyée doit être un objet chaîne de caractères." + +#: ../Doc/reference/datamodel.rst:1329 +msgid "" +"The __format__ method of ``object`` itself raises a :exc:`TypeError` if " +"passed any non-empty string." +msgstr "" +"La méthode ``__format__`` de ``object`` lui-même lève une :exc:`TypeError` " +"si vous lui passez une chaîne non vide." + +#: ../Doc/reference/datamodel.rst:1333 +msgid "" +"``object.__format__(x, '')`` is now equivalent to ``str(x)`` rather than " +"``format(str(self), '')``." +msgstr "" +"``object.__format__(x, '')`` est maintenant équivalent à ``str(x)`` plutôt " +"qu'à ``format(str(self), '')``." + +#: ../Doc/reference/datamodel.rst:1349 +msgid "" +"These are the so-called \"rich comparison\" methods. The correspondence " +"between operator symbols and method names is as follows: ``xy`` calls ``x.__gt__(y)``, and ``x>=y`` " +"calls ``x.__ge__(y)``." +msgstr "" +"Ce sont les méthodes dites de « comparaisons riches ». La correspondance " +"entre les symboles opérateurs et les noms de méthodes est la suivante : " +"``xy`` appelle " +"``x.__gt__(y)`` et ``x>=y`` appelle ``x.__ge__(y)``." + +#: ../Doc/reference/datamodel.rst:1355 +msgid "" +"A rich comparison method may return the singleton ``NotImplemented`` if it " +"does not implement the operation for a given pair of arguments. By " +"convention, ``False`` and ``True`` are returned for a successful comparison. " +"However, these methods can return any value, so if the comparison operator " +"is used in a Boolean context (e.g., in the condition of an ``if`` " +"statement), Python will call :func:`bool` on the value to determine if the " +"result is true or false." +msgstr "" +"Une méthode de comparaison riche peut renvoyer le singleton " +"``NotImplemented`` si elle n'implémente pas l'opération pour une paire " +"donnée d'arguments. Par convention, ``False`` et ``True`` sont renvoyées " +"pour une comparaison qui a réussi. Cependant, ces méthodes peuvent renvoyer " +"n'importe quelle valeur donc, si l'opérateur de comparaison est utilisé dans " +"un contexte booléen (par exemple dans une condition d'une instruction " +"``if``), Python appelle :func:`bool` sur la valeur pour déterminer si le " +"résultat est faux ou vrai." + +#: ../Doc/reference/datamodel.rst:1362 +msgid "" +"By default, :meth:`__ne__` delegates to :meth:`__eq__` and inverts the " +"result unless it is ``NotImplemented``. There are no other implied " +"relationships among the comparison operators, for example, the truth of " +"``(x.__hash__``." +msgstr "" +"Si une classe qui surcharge :meth:`__eq__` a besoin de conserver " +"l'implémentation de :meth:`__hash__` de la classe parente, vous devez " +"l'indiquer explicitement à l'interpréteur en définissant ``__hash__ = " +".__hash__``." + +#: ../Doc/reference/datamodel.rst:1436 +msgid "" +"If a class that does not override :meth:`__eq__` wishes to suppress hash " +"support, it should include ``__hash__ = None`` in the class definition. A " +"class which defines its own :meth:`__hash__` that explicitly raises a :exc:" +"`TypeError` would be incorrectly identified as hashable by an " +"``isinstance(obj, collections.abc.Hashable)`` call." +msgstr "" +"Si une classe ne surcharge pas :meth:`__eq__` et veut supprimer le calcul " +"des empreintes, elle doit inclure ``__hash__ = None`` dans la définition de " +"la classe. Une classe qui définit sa propre méthode :meth:`__hash__` qui " +"lève explicitement :exc:`TypeError` serait incorrectement identifiée comme " +"hachable par un appel à ``isinstance(obj, collections.abc.Hashable)``." + +#: ../Doc/reference/datamodel.rst:1445 +msgid "" +"By default, the :meth:`__hash__` values of str, bytes and datetime objects " +"are \"salted\" with an unpredictable random value. Although they remain " +"constant within an individual Python process, they are not predictable " +"between repeated invocations of Python." +msgstr "" +"Par défaut, les valeurs renvoyées par :meth:`__hash__` pour les chaînes, " +"*bytes* et objets *datetime* sont *salées* avec une valeur aléatoire non " +"prévisible. Bien qu'une empreinte reste constante tout au long d'un " +"processus Python, sa valeur n'est pas prévisible entre deux invocations de " +"Python." + +#: ../Doc/reference/datamodel.rst:1450 +msgid "" +"This is intended to provide protection against a denial-of-service caused by " +"carefully-chosen inputs that exploit the worst case performance of a dict " +"insertion, O(n^2) complexity. See http://www.ocert.org/advisories/" +"ocert-2011-003.html for details." +msgstr "" +"C'est un comportement voulu pour se protéger contre un déni de service qui " +"utiliserait des entrées malicieusement choisies pour effectuer des " +"insertions dans le dictionnaire dans le pire cas, avec une complexité en " +"O(n^2). Lisez http://www.ocert.org/advisories/ocert-2011-003.html pour en " +"obtenir les détails (article en anglais)." + +#: ../Doc/reference/datamodel.rst:1455 +msgid "" +"Changing hash values affects the iteration order of sets. Python has never " +"made guarantees about this ordering (and it typically varies between 32-bit " +"and 64-bit builds)." +msgstr "" +"Modifier les empreintes obtenues par hachage modifie l'ordre d'itération sur " +"les *sets*. Python n'a jamais donné de garantie sur cet ordre (d'ailleurs, " +"l'ordre n'est pas le même entre les implémentations 32 et 64 bits)." + +#: ../Doc/reference/datamodel.rst:1459 +msgid "See also :envvar:`PYTHONHASHSEED`." +msgstr "Voir aussi :envvar:`PYTHONHASHSEED`." + +#: ../Doc/reference/datamodel.rst:1461 +msgid "Hash randomization is enabled by default." +msgstr "la randomisation des empreintes est activée par défaut." + +#: ../Doc/reference/datamodel.rst:1469 +msgid "" +"Called to implement truth value testing and the built-in operation " +"``bool()``; should return ``False`` or ``True``. When this method is not " +"defined, :meth:`__len__` is called, if it is defined, and the object is " +"considered true if its result is nonzero. If a class defines neither :meth:" +"`__len__` nor :meth:`__bool__`, all its instances are considered true." +msgstr "" +"Appelée pour implémenter les tests booléens et l'opération native " +"``bool()`` ; elle doit renvoyer ``False`` ou ``True``. Quand cette méthode " +"n'est pas définie, :meth:`__len__` est appelée, si elle est définie, et " +"l'objet est considéré vrai si le résultat est non nul. Si une classe ne " +"définit ni :meth:`__len__` ni :meth:`__bool__`, toutes ses instances sont " +"considérées comme vraies." + +#: ../Doc/reference/datamodel.rst:1480 +msgid "Customizing attribute access" +msgstr "Personnalisation de l'accès aux attributs" + +#: ../Doc/reference/datamodel.rst:1482 +msgid "" +"The following methods can be defined to customize the meaning of attribute " +"access (use of, assignment to, or deletion of ``x.name``) for class " +"instances." +msgstr "" +"Les méthodes suivantes peuvent être définies pour personnaliser l'accès aux " +"attributs (utilisation, assignation, suppression de ``x.name``) pour les " +"instances de classes." + +#: ../Doc/reference/datamodel.rst:1490 +msgid "" +"Called when the default attribute access fails with an :exc:`AttributeError` " +"(either :meth:`__getattribute__` raises an :exc:`AttributeError` because " +"*name* is not an instance attribute or an attribute in the class tree for " +"``self``; or :meth:`__get__` of a *name* property raises :exc:" +"`AttributeError`). This method should either return the (computed) " +"attribute value or raise an :exc:`AttributeError` exception." +msgstr "" +"Appelée lorsque l'accès par défaut à l'attribut échoue en levant :exc:" +"`AttributeError` (soit :meth:`__getattribute__` lève :exc:`AttributeError` " +"car *name* n'est pas un attribut de l'instance ou un attribut dans " +"l'arborescence de la classe de ``self`` ; ou :meth:`__get__` de la propriété " +"*name* lève :exc:`AttributeError`). Cette méthode doit retourner soit la " +"valeur (calculée) de l'attribut, soit lever une exception :exc:" +"`AttributeError`." + +#: ../Doc/reference/datamodel.rst:1497 +msgid "" +"Note that if the attribute is found through the normal mechanism, :meth:" +"`__getattr__` is not called. (This is an intentional asymmetry between :" +"meth:`__getattr__` and :meth:`__setattr__`.) This is done both for " +"efficiency reasons and because otherwise :meth:`__getattr__` would have no " +"way to access other attributes of the instance. Note that at least for " +"instance variables, you can fake total control by not inserting any values " +"in the instance attribute dictionary (but instead inserting them in another " +"object). See the :meth:`__getattribute__` method below for a way to " +"actually get total control over attribute access." +msgstr "" +"Notez que si l'attribut est trouvé par le mécanisme normal, :meth:" +"`__getattr__` n'est pas appelée (c'est une asymétrie voulue entre :meth:" +"`__getattr__` et :meth:`__setattr__`). Ce comportement est adopté à la fois " +"pour des raisons de performance et parce que, sinon, :meth:`__getattr__` " +"n'aurait aucun moyen d'accéder aux autres attributs de l'instance. Notez " +"que, au moins pour ce qui concerne les variables d'instance, vous pouvez " +"simuler un contrôle total en n'insérant aucune valeur dans le dictionnaire " +"des attributs de l'instance (mais en les insérant dans un autre objet à la " +"place). Lisez la partie relative à la méthode :meth:`__getattribute__` ci-" +"dessous pour obtenir un contrôle total effectif sur l'accès aux attributs." + +#: ../Doc/reference/datamodel.rst:1510 +msgid "" +"Called unconditionally to implement attribute accesses for instances of the " +"class. If the class also defines :meth:`__getattr__`, the latter will not be " +"called unless :meth:`__getattribute__` either calls it explicitly or raises " +"an :exc:`AttributeError`. This method should return the (computed) attribute " +"value or raise an :exc:`AttributeError` exception. In order to avoid " +"infinite recursion in this method, its implementation should always call the " +"base class method with the same name to access any attributes it needs, for " +"example, ``object.__getattribute__(self, name)``." +msgstr "" +"Appelée de manière inconditionnelle pour implémenter l'accès aux attributs " +"des instances de la classe. Si la classe définit également :meth:" +"`__getattr__`, cette dernière n'est pas appelée à moins que :meth:" +"`__getattribute__` ne l'appelle explicitement ou ne lève une exception :exc:" +"`AttributeError`. Cette méthode doit renvoyer la valeur (calculée) de " +"l'attribut ou lever une exception :exc:`AttributeError`. Afin d'éviter une " +"récursion infinie sur cette méthode, son implémentation doit toujours " +"appeler la méthode de la classe de base avec le même paramètre *name* pour " +"accéder à n'importe quel attribut dont elle a besoin. Par exemple, ``object." +"__getattribute__(self, name)``." + +#: ../Doc/reference/datamodel.rst:1521 +msgid "" +"This method may still be bypassed when looking up special methods as the " +"result of implicit invocation via language syntax or built-in functions. " +"See :ref:`special-lookup`." +msgstr "" +"Cette méthode peut être shuntée lorsque la recherche porte sur les méthodes " +"spéciales en tant que résultat d'une invocation implicite *via* la syntaxe " +"du langage ou les fonctions natives. Lisez :ref:`special-lookup`." + +#: ../Doc/reference/datamodel.rst:1528 +msgid "" +"Called when an attribute assignment is attempted. This is called instead of " +"the normal mechanism (i.e. store the value in the instance dictionary). " +"*name* is the attribute name, *value* is the value to be assigned to it." +msgstr "" +"Appelée lors d'une assignation d'attribut. Elle est appelée à la place du " +"mécanisme normal (c'est-à-dire stocker la valeur dans le dictionnaire de " +"l'instance). *name* est le nom de l'attribut, *value* est la valeur à " +"assigner à cet attribut." + +#: ../Doc/reference/datamodel.rst:1532 +msgid "" +"If :meth:`__setattr__` wants to assign to an instance attribute, it should " +"call the base class method with the same name, for example, ``object." +"__setattr__(self, name, value)``." +msgstr "" +"Si :meth:`__setattr__` veut assigner un attribut d'instance, elle doit " +"appeler la méthode de la classe de base avec le même nom, par exemple " +"``object.__setattr__(self, name, value)``." + +#: ../Doc/reference/datamodel.rst:1539 +msgid "" +"Like :meth:`__setattr__` but for attribute deletion instead of assignment. " +"This should only be implemented if ``del obj.name`` is meaningful for the " +"object." +msgstr "" +"Comme :meth:`__setattr__` mais pour supprimer un attribut au lieu de " +"l'assigner. Elle ne doit être implémentée que si ``del obj.name`` a du sens " +"pour cet objet." + +#: ../Doc/reference/datamodel.rst:1545 +msgid "" +"Called when :func:`dir` is called on the object. A sequence must be " +"returned. :func:`dir` converts the returned sequence to a list and sorts it." +msgstr "" +"Appelée quand :func:`dir` est appelée sur l'objet. Elle doit renvoyer une " +"séquence. :func:`dir` convertit la séquence renvoyée en liste et effectue le " +"classement." + +#: ../Doc/reference/datamodel.rst:1550 +msgid "Customizing module attribute access" +msgstr "Personnalisation de l'accès aux attributs d'un module" + +#: ../Doc/reference/datamodel.rst:1557 +msgid "" +"Special names ``__getattr__`` and ``__dir__`` can be also used to customize " +"access to module attributes. The ``__getattr__`` function at the module " +"level should accept one argument which is the name of an attribute and " +"return the computed value or raise an :exc:`AttributeError`. If an attribute " +"is not found on a module object through the normal lookup, i.e. :meth:" +"`object.__getattribute__`, then ``__getattr__`` is searched in the module " +"``__dict__`` before raising an :exc:`AttributeError`. If found, it is called " +"with the attribute name and the result is returned." +msgstr "" +"Les noms spéciaux ``__getattr__`` et ``__dir__`` peuvent aussi être " +"personnalisés pour accéder aux attributs du module. La fonction " +"``__getattr__`` au niveau du module doit accepter un argument qui est un nom " +"d'attribut et doit renvoyer la valeur calculée ou lever une :exc:" +"`AttributeError`. Si un attribut n'est pas trouvé dans l'objet module en " +"utilisant la recherche normale, c'est-à-dire :meth:`object." +"__getattribute__`, alors Python recherche ``__getattr__`` dans le " +"``__dict__`` du module avant de lever une :exc:`AttributeError`. S'il la " +"trouve, il l'appelle avec le nom de l'attribut et renvoie le résultat." + +#: ../Doc/reference/datamodel.rst:1566 +msgid "" +"The ``__dir__`` function should accept no arguments, and return a list of " +"strings that represents the names accessible on module. If present, this " +"function overrides the standard :func:`dir` search on a module." +msgstr "" +"La fonction ``__dir__`` ne prend aucun argument et renvoie une liste de " +"chaînes qui représente les noms accessibles du module. Si elle existe, cette " +"fonction surcharge la fonction de recherche standard :func:`dir` du module." + +#: ../Doc/reference/datamodel.rst:1570 +msgid "" +"For a more fine grained customization of the module behavior (setting " +"attributes, properties, etc.), one can set the ``__class__`` attribute of a " +"module object to a subclass of :class:`types.ModuleType`. For example::" +msgstr "" +"Pour une personnalisation plus fine du comportement d'un module (assignation " +"des attributs, propriétés, etc.), vous pouvez assigner l'attribut " +"``__class__`` d'un objet module à une sous-classe de :class:`types." +"ModuleType`. Par exemple ::" + +#: ../Doc/reference/datamodel.rst:1588 +msgid "" +"Defining module ``__getattr__`` and setting module ``__class__`` only affect " +"lookups made using the attribute access syntax -- directly accessing the " +"module globals (whether by code within the module, or via a reference to the " +"module's globals dictionary) is unaffected." +msgstr "" +"Définir ``__getattr__`` du module et ``__class__`` pour le module affecte " +"uniquement les recherches qui utilisent la syntaxe d'accès aux attributs — " +"accéder directement aux globales d'un module (soit par le code dans le " +"module, soit *via* une référence au dictionnaire des variables globales du " +"module) fonctionne toujours de la même façon." + +#: ../Doc/reference/datamodel.rst:1593 +msgid "``__class__`` module attribute is now writable." +msgstr "l'attribut ``__class__`` du module est maintenant en lecture-écriture." + +#: ../Doc/reference/datamodel.rst:1596 +msgid "``__getattr__`` and ``__dir__`` module attributes." +msgstr "attributs ``__getattr__`` et ``__dir__`` du module." + +#: ../Doc/reference/datamodel.rst:1601 +msgid ":pep:`562` - Module __getattr__ and __dir__" +msgstr ":pep:`562` — ``__getattr__`` et ``__dir__`` pour un module" + +#: ../Doc/reference/datamodel.rst:1602 +msgid "Describes the ``__getattr__`` and ``__dir__`` functions on modules." +msgstr "Décrit les fonctions ``__getattr__`` et ``__dir__`` des modules." + +#: ../Doc/reference/datamodel.rst:1608 +msgid "Implementing Descriptors" +msgstr "Implémentation de descripteurs" + +#: ../Doc/reference/datamodel.rst:1610 +msgid "" +"The following methods only apply when an instance of the class containing " +"the method (a so-called *descriptor* class) appears in an *owner* class (the " +"descriptor must be in either the owner's class dictionary or in the class " +"dictionary for one of its parents). In the examples below, \"the attribute" +"\" refers to the attribute whose name is the key of the property in the " +"owner class' :attr:`~object.__dict__`." +msgstr "" +"Les méthodes qui suivent s'appliquent seulement quand une instance de la " +"classe (dite classe *descripteur*) contenant la méthode apparaît dans une " +"classe *propriétaire* (*owner* en anglais) ; la classe descripteur doit " +"figurer dans le dictionnaire de la classe propriétaire ou dans le " +"dictionnaire de la classe d'un des parents. Dans les exemples ci-dessous, " +"« l'attribut » fait référence à l'attribut dont le nom est une clé du :attr:" +"`~object.__dict__` de la classe propriétaire." + +#: ../Doc/reference/datamodel.rst:1620 +msgid "" +"Called to get the attribute of the owner class (class attribute access) or " +"of an instance of that class (instance attribute access). *owner* is always " +"the owner class, while *instance* is the instance that the attribute was " +"accessed through, or ``None`` when the attribute is accessed through the " +"*owner*. This method should return the (computed) attribute value or raise " +"an :exc:`AttributeError` exception." +msgstr "" +"Appelée pour obtenir l'attribut de la classe propriétaire (accès à un " +"attribut de classe) ou d'une instance de cette classe (accès à un attribut " +"d'instance). *owner* est toujours la classe propriétaire alors que " +"*instance* est l'instance par laquelle on accède à l'attribut ou ``None`` " +"lorsque l'on accède par la classe *owner*. Cette méthode doit renvoyer la " +"valeur (calculée) de l'attribut ou lever une exception :exc:`AttributeError`." + +#: ../Doc/reference/datamodel.rst:1630 +msgid "" +"Called to set the attribute on an instance *instance* of the owner class to " +"a new value, *value*." +msgstr "" +"Appelée pour définir l'attribut d'une instance *instance* de la classe " +"propriétaire à la nouvelle valeur *value*." + +#: ../Doc/reference/datamodel.rst:1636 +msgid "" +"Called to delete the attribute on an instance *instance* of the owner class." +msgstr "" +"Appelée pour supprimer l'attribut de l'instance *instance* de la classe " +"propriétaire." + +#: ../Doc/reference/datamodel.rst:1641 +msgid "" +"Called at the time the owning class *owner* is created. The descriptor has " +"been assigned to *name*." +msgstr "" +"Appelée au moment où la classe propriétaire *owner* est créée. La classe " +"descripteur a été assignée à *name*." + +#: ../Doc/reference/datamodel.rst:1647 +msgid "" +"The attribute :attr:`__objclass__` is interpreted by the :mod:`inspect` " +"module as specifying the class where this object was defined (setting this " +"appropriately can assist in runtime introspection of dynamic class " +"attributes). For callables, it may indicate that an instance of the given " +"type (or a subclass) is expected or required as the first positional " +"argument (for example, CPython sets this attribute for unbound methods that " +"are implemented in C)." +msgstr "" +"L'attribut :attr:`__objclass__` est interprété par le module :mod:`inspect` " +"comme spécifiant la classe où cet objet a été défini (le définir " +"correctement peut vous aider dans l'introspection des classes dynamiques à " +"l'exécution). Pour les appelables, cela peut indiquer qu'une instance d'un " +"certain type (ou d'une certaine sous-classe) est attendue ou requise comme " +"premier argument positionnel (par exemple, CPython définit cet attribut pour " +"les méthodes non liées qui sont implémentées en C)." + +#: ../Doc/reference/datamodel.rst:1658 +msgid "Invoking Descriptors" +msgstr "Invocation des descripteurs" + +#: ../Doc/reference/datamodel.rst:1660 +msgid "" +"In general, a descriptor is an object attribute with \"binding behavior\", " +"one whose attribute access has been overridden by methods in the descriptor " +"protocol: :meth:`__get__`, :meth:`__set__`, and :meth:`__delete__`. If any " +"of those methods are defined for an object, it is said to be a descriptor." +msgstr "" +"En général, un descripteur est un attribut d'objet dont le comportement est " +"« lié » (*binding dehavior* en anglais), c'est-à-dire que les accès aux " +"attributs ont été surchargés par des méthodes conformes au protocole des " +"descripteurs : :meth:`__get__`, :meth:`__set__` et :meth:`__delete__`. Si " +"l'une de ces méthodes est définie pour un objet, il est réputé être un " +"descripteur." + +#: ../Doc/reference/datamodel.rst:1665 +msgid "" +"The default behavior for attribute access is to get, set, or delete the " +"attribute from an object's dictionary. For instance, ``a.x`` has a lookup " +"chain starting with ``a.__dict__['x']``, then ``type(a).__dict__['x']``, and " +"continuing through the base classes of ``type(a)`` excluding metaclasses." +msgstr "" +"Le comportement par défaut pour la gestion d'un attribut est de définir, " +"obtenir et supprimer cet attribut du dictionnaire de l'objet. Par exemple, " +"pour ``a.x`` Python commence d'abord par rechercher ``a.__dict__['x']``, " +"puis ``type(a).__dict__['x']`` ; ensuite Python continue en remontant les " +"classes de base de ``type(a)``, en excluant les méta-classes." + +#: ../Doc/reference/datamodel.rst:1670 +msgid "" +"However, if the looked-up value is an object defining one of the descriptor " +"methods, then Python may override the default behavior and invoke the " +"descriptor method instead. Where this occurs in the precedence chain " +"depends on which descriptor methods were defined and how they were called." +msgstr "" +"Cependant, si la valeur cherchée est un objet qui définit une des méthodes " +"de descripteur, alors Python modifie son comportement et invoque la méthode " +"du descripteur à la place. Le moment où cela intervient dans la recherche " +"citée ci-dessus dépend de l'endroit où a été définie la méthode de " +"descripteur et comment elle a été appelée." + +#: ../Doc/reference/datamodel.rst:1675 +msgid "" +"The starting point for descriptor invocation is a binding, ``a.x``. How the " +"arguments are assembled depends on ``a``:" +msgstr "" +"Le point de départ pour une invocation de descripteur est la liaison ``a." +"x``. La façon dont les arguments sont assemblés dépend de ``a`` :" + +#: ../Doc/reference/datamodel.rst:1680 +msgid "Direct Call" +msgstr "Appel direct" + +#: ../Doc/reference/datamodel.rst:1679 +msgid "" +"The simplest and least common call is when user code directly invokes a " +"descriptor method: ``x.__get__(a)``." +msgstr "" +"Le plus simple et le plus rare des appels est quand l'utilisateur code " +"directement l'appel à la méthode du descripteur : ``x.__get__(a)``." + +#: ../Doc/reference/datamodel.rst:1684 +msgid "Instance Binding" +msgstr "Liaison avec une instance" + +#: ../Doc/reference/datamodel.rst:1683 +msgid "" +"If binding to an object instance, ``a.x`` is transformed into the call: " +"``type(a).__dict__['x'].__get__(a, type(a))``." +msgstr "" +"Si elle est liée à un objet instance, ``a.x`` est transformé en l'appel " +"suivant : ``type(a).__dict__['x'].__get__(a, type(a))``." + +#: ../Doc/reference/datamodel.rst:1688 +msgid "Class Binding" +msgstr "Liaison avec une classe" + +#: ../Doc/reference/datamodel.rst:1687 +msgid "" +"If binding to a class, ``A.x`` is transformed into the call: ``A." +"__dict__['x'].__get__(None, A)``." +msgstr "" +"Si elle est liée à une classe, ``A.x`` est transformé en l'appel suivant : " +"``A.__dict__['x'].__get__(None, A)``." + +#: ../Doc/reference/datamodel.rst:1694 +msgid "Super Binding" +msgstr "Liaison super" + +#: ../Doc/reference/datamodel.rst:1691 +msgid "" +"If ``a`` is an instance of :class:`super`, then the binding ``super(B, obj)." +"m()`` searches ``obj.__class__.__mro__`` for the base class ``A`` " +"immediately preceding ``B`` and then invokes the descriptor with the call: " +"``A.__dict__['m'].__get__(obj, obj.__class__)``." +msgstr "" +"Si ``a`` est une instance de :class:`super`, alors ``super(B, obj).m()`` " +"recherche ``obj.__class__.__mro__`` pour la classe de base ``A`` " +"immédiatement avant ``B`` puis invoque le descripteur avec l'appel suivant : " +"``A.__dict__['m'].__get__(obj, obj.__class__)``." + +#: ../Doc/reference/datamodel.rst:1696 +msgid "" +"For instance bindings, the precedence of descriptor invocation depends on " +"the which descriptor methods are defined. A descriptor can define any " +"combination of :meth:`__get__`, :meth:`__set__` and :meth:`__delete__`. If " +"it does not define :meth:`__get__`, then accessing the attribute will return " +"the descriptor object itself unless there is a value in the object's " +"instance dictionary. If the descriptor defines :meth:`__set__` and/or :meth:" +"`__delete__`, it is a data descriptor; if it defines neither, it is a non-" +"data descriptor. Normally, data descriptors define both :meth:`__get__` " +"and :meth:`__set__`, while non-data descriptors have just the :meth:" +"`__get__` method. Data descriptors with :meth:`__set__` and :meth:`__get__` " +"defined always override a redefinition in an instance dictionary. In " +"contrast, non-data descriptors can be overridden by instances." +msgstr "" +"Pour des liaisons avec des instances, la priorité à l'invocation du " +"descripteur dépend des méthodes que le descripteur a définies. Un " +"descripteur peut définir n'importe quelle combinaison de :meth:`__get__`, :" +"meth:`__set__` et :meth:`__delete__`. S'il ne définit pas :meth:`__get__`, " +"alors accéder à l'attribut retourne l'objet descripteur lui-même sauf s'il " +"existe une valeur dans le dictionnaire de l'objet instance. Si le " +"descripteur définit :meth:`__set__` ou :meth:`__delete__`, c'est un " +"descripteur de données ; s'il ne définit aucune méthode, c'est un " +"descripteur hors-donnée. Normalement, les descripteurs de données " +"définissent à la fois :meth:`__get__` et :meth:`__set__`, alors que les " +"descripteurs hors-données définissent seulement la méthode :meth:`__get__`. " +"Les descripteurs de données qui définissent :meth:`__set__` et :meth:" +"`__get__` sont toujours prioritaires face à une redéfinition du dictionnaire " +"de l'instance. En revanche, les descripteurs hors-données peuvent être " +"shuntés par les instances." + +#: ../Doc/reference/datamodel.rst:1709 +msgid "" +"Python methods (including :func:`staticmethod` and :func:`classmethod`) are " +"implemented as non-data descriptors. Accordingly, instances can redefine " +"and override methods. This allows individual instances to acquire behaviors " +"that differ from other instances of the same class." +msgstr "" +"Les méthodes Python (y compris :func:`staticmethod` et :func:`classmethod`) " +"sont implémentées comme des descripteurs hors-donnée. De la même manière, " +"les instances peuvent redéfinir et surcharger les méthodes. Ceci permet à " +"chaque instance d'avoir un comportement qui diffère des autres instances de " +"la même classe." + +#: ../Doc/reference/datamodel.rst:1714 +msgid "" +"The :func:`property` function is implemented as a data descriptor. " +"Accordingly, instances cannot override the behavior of a property." +msgstr "" +"La fonction :func:`property` est implémentée en tant que descripteur de " +"données. Ainsi, les instances ne peuvent pas surcharger le comportement " +"d'une propriété." + +#: ../Doc/reference/datamodel.rst:1721 +msgid "__slots__" +msgstr "``__slots__``" + +#: ../Doc/reference/datamodel.rst:1723 +msgid "" +"*__slots__* allow us to explicitly declare data members (like properties) " +"and deny the creation of *__dict__* and *__weakref__* (unless explicitly " +"declared in *__slots__* or available in a parent.)" +msgstr "" +"Les ``__slots__`` vous permettent de déclarer des membres d'une donnée " +"(comme une propriété) et d'interdire la création de *__dict__* ou de " +"*__weakref__* (à moins qu'ils ne soient explicitement déclarés dans le " +"``__slots__`` ou présent dans le parent)." + +#: ../Doc/reference/datamodel.rst:1727 +msgid "" +"The space saved over using *__dict__* can be significant. Attribute lookup " +"speed can be significantly improved as well." +msgstr "" +"L'espace gagné par rapport à l'utilisation d'un *__dict__* peut être " +"significatif. La recherche d'attribut peut aussi s'avérer beaucoup plus " +"rapide." + +#: ../Doc/reference/datamodel.rst:1732 +msgid "" +"This class variable can be assigned a string, iterable, or sequence of " +"strings with variable names used by instances. *__slots__* reserves space " +"for the declared variables and prevents the automatic creation of *__dict__* " +"and *__weakref__* for each instance." +msgstr "" +"Cette variable de classe peut être assignée avec une chaîne, un itérable ou " +"une séquence de chaînes avec les noms de variables utilisés par les " +"instances. *__slots__* réserve de la place pour ces variables déclarées et " +"interdit la création automatique de *__dict__* et *__weakref__* pour chaque " +"instance." + +#: ../Doc/reference/datamodel.rst:1739 +msgid "Notes on using *__slots__*" +msgstr "Note sur l'utilisation de *__slots__*" + +#: ../Doc/reference/datamodel.rst:1741 +msgid "" +"When inheriting from a class without *__slots__*, the *__dict__* and " +"*__weakref__* attribute of the instances will always be accessible." +msgstr "" +"Lorsque vous héritez d'une classe sans *__slots__*, les attributs *__dict__* " +"et *__weakref__* des instances sont toujours accessibles." + +#: ../Doc/reference/datamodel.rst:1744 +msgid "" +"Without a *__dict__* variable, instances cannot be assigned new variables " +"not listed in the *__slots__* definition. Attempts to assign to an unlisted " +"variable name raises :exc:`AttributeError`. If dynamic assignment of new " +"variables is desired, then add ``'__dict__'`` to the sequence of strings in " +"the *__slots__* declaration." +msgstr "" +"Sans variable *__dict__*, les instances ne peuvent pas assigner de nouvelles " +"variables (non listées dans la définition de *__slots__*). Les tentatives " +"d'assignation sur un nom de variable non listé lève :exc:`AttributeError`. " +"Si l'assignation dynamique de nouvelles variables est nécessaire, ajoutez " +"``'__dict__'`` à la séquence de chaînes dans la déclaration *__slots__*." + +#: ../Doc/reference/datamodel.rst:1750 +msgid "" +"Without a *__weakref__* variable for each instance, classes defining " +"*__slots__* do not support weak references to its instances. If weak " +"reference support is needed, then add ``'__weakref__'`` to the sequence of " +"strings in the *__slots__* declaration." +msgstr "" +"Sans variable *__weakref__* pour chaque instance, les classes qui " +"définissent *__slots__* ne gèrent pas les références faibles vers leurs " +"instances. Si vous avez besoin de gérer des références faibles, ajoutez " +"``'__weakref__'`` à la séquence de chaînes dans la déclaration de " +"*__slots__*." + +#: ../Doc/reference/datamodel.rst:1755 +msgid "" +"*__slots__* are implemented at the class level by creating descriptors (:ref:" +"`descriptors`) for each variable name. As a result, class attributes cannot " +"be used to set default values for instance variables defined by *__slots__*; " +"otherwise, the class attribute would overwrite the descriptor assignment." +msgstr "" +"Les *__slots__* sont implémentés au niveau de la classe en créant des " +"descripteurs (:ref:`descriptors`) pour chaque nom de variable. Ainsi, les " +"attributs de classe ne peuvent pas être utilisés pour des valeurs par défaut " +"aux variables d'instances définies par *__slots__* ; sinon, l'attribut de " +"classe surchargerait l'assignation par descripteur." + +#: ../Doc/reference/datamodel.rst:1761 +msgid "" +"The action of a *__slots__* declaration is not limited to the class where it " +"is defined. *__slots__* declared in parents are available in child classes. " +"However, child subclasses will get a *__dict__* and *__weakref__* unless " +"they also define *__slots__* (which should only contain names of any " +"*additional* slots)." +msgstr "" +"L'action de la déclaration du *__slots__* ne se limite pas à la classe où il " +"est défini. Les *__slots__* déclarés par les parents sont disponibles dans " +"les classes enfants. Cependant, les sous-classes enfants ont un *__dict__* " +"et un *__weakref__* à moins qu'elles ne définissent aussi un *__slots__* " +"(qui ne doit contenir alors que les noms *supplémentaires* du *slot*)." + +#: ../Doc/reference/datamodel.rst:1767 +msgid "" +"If a class defines a slot also defined in a base class, the instance " +"variable defined by the base class slot is inaccessible (except by " +"retrieving its descriptor directly from the base class). This renders the " +"meaning of the program undefined. In the future, a check may be added to " +"prevent this." +msgstr "" +"Si une classe définit un *slot* déjà défini dans une classe de base, la " +"variable d'instance définie par la classe de base est inaccessible (sauf à " +"utiliser le descripteur de la classe de base directement). Cela rend la " +"signification du programme indéfinie. Dans le futur, une vérification sera " +"ajoutée pour empêcher cela." + +#: ../Doc/reference/datamodel.rst:1772 +msgid "" +"Nonempty *__slots__* does not work for classes derived from \"variable-length" +"\" built-in types such as :class:`int`, :class:`bytes` and :class:`tuple`." +msgstr "" +"Un *__slot__* non vide ne fonctionne pas pour les classes dérivées des types " +"natifs à longueur variable tels que :class:`int`, :class:`bytes` et :class:" +"`tuple`." + +#: ../Doc/reference/datamodel.rst:1775 +msgid "" +"Any non-string iterable may be assigned to *__slots__*. Mappings may also be " +"used; however, in the future, special meaning may be assigned to the values " +"corresponding to each key." +msgstr "" +"Tout itérable qui n'est pas une chaîne peut être assigné à un *__slots__*. " +"Les tableaux de correspondance peuvent aussi être utilisés ; cependant, dans " +"le futur, des significations spéciales pourraient être associées à chacune " +"des clés." + +#: ../Doc/reference/datamodel.rst:1779 +msgid "" +"*__class__* assignment works only if both classes have the same *__slots__*." +msgstr "" +"Les assignations de *__class__* ne fonctionnent que si les deux classes ont " +"le même *__slots__*." + +#: ../Doc/reference/datamodel.rst:1781 +msgid "" +"Multiple inheritance with multiple slotted parent classes can be used, but " +"only one parent is allowed to have attributes created by slots (the other " +"bases must have empty slot layouts) - violations raise :exc:`TypeError`." +msgstr "" +"L'héritage multiple avec plusieurs classes parentes qui ont des *__slots__* " +"est possible, mais seul un parent peut avoir des attributs créés par " +"*__slots__* (les autres classes parentes doivent avoir des *__slots__* " +"vides). La violation de cette règle lève :exc:`TypeError`." + +#: ../Doc/reference/datamodel.rst:1789 +msgid "Customizing class creation" +msgstr "Personnalisation de la création de classes" + +#: ../Doc/reference/datamodel.rst:1791 +msgid "" +"Whenever a class inherits from another class, *__init_subclass__* is called " +"on that class. This way, it is possible to write classes which change the " +"behavior of subclasses. This is closely related to class decorators, but " +"where class decorators only affect the specific class they're applied to, " +"``__init_subclass__`` solely applies to future subclasses of the class " +"defining the method." +msgstr "" +"Quand une classe hérite d'une classe parente, *__init_subclass__* de la " +"classe parente est appelée. Ainsi, il est possible d'écrire des classes qui " +"modifient le comportement des sous-classes. Ce comportement est corrélé aux " +"décorateurs de classes mais, alors que les décorateurs de classes agissent " +"seulement sur la classe qu'ils décorent, ``__init_subclass__`` agit " +"uniquement sur les futures sous-classes de la classe qui définit cette " +"méthode." + +#: ../Doc/reference/datamodel.rst:1800 +msgid "" +"This method is called whenever the containing class is subclassed. *cls* is " +"then the new subclass. If defined as a normal instance method, this method " +"is implicitly converted to a class method." +msgstr "" +"Cette méthode est appelée quand la classe est sous-classée. *cls* est alors " +"la nouvelle sous-classe. Si elle est définie en tant que méthode d'instance " +"normale, cette méthode est implicitement convertie en méthode de classe." + +#: ../Doc/reference/datamodel.rst:1804 +msgid "" +"Keyword arguments which are given to a new class are passed to the parent's " +"class ``__init_subclass__``. For compatibility with other classes using " +"``__init_subclass__``, one should take out the needed keyword arguments and " +"pass the others over to the base class, as in::" +msgstr "" +"Les arguments nommés qui sont donnés à la nouvelle classe sont passés à " +"``__init_subclass__`` de la classe parente. Par souci de compatibilité avec " +"les autres classes qui utilisent ``__init_subclass__``, vous devez enlever " +"les arguments nommés dont vous avez besoin et passer les autres à la classe " +"de base, comme ci-dessous ::" + +#: ../Doc/reference/datamodel.rst:1818 +msgid "" +"The default implementation ``object.__init_subclass__`` does nothing, but " +"raises an error if it is called with any arguments." +msgstr "" +"L'implémentation par défaut ``object.__init_subclass__`` ne fait rien mais " +"lève une erreur si elle est appelée avec un argument." + +#: ../Doc/reference/datamodel.rst:1823 +msgid "" +"The metaclass hint ``metaclass`` is consumed by the rest of the type " +"machinery, and is never passed to ``__init_subclass__`` implementations. The " +"actual metaclass (rather than the explicit hint) can be accessed as " +"``type(cls)``." +msgstr "" +"L'indication de méta-classe ``metaclass`` est absorbée par le reste du " +"mécanisme de types et n'est jamais passée à l'implémentation de " +"``__init_subclass__``. La méta-classe réelle (plutôt que l'indication " +"explicite) peut être récupérée par ``type(cls)``." + +#: ../Doc/reference/datamodel.rst:1834 +msgid "Metaclasses" +msgstr "Méta-classes" + +#: ../Doc/reference/datamodel.rst:1841 +msgid "" +"By default, classes are constructed using :func:`type`. The class body is " +"executed in a new namespace and the class name is bound locally to the " +"result of ``type(name, bases, namespace)``." +msgstr "" +"Par défaut, les classes sont construites en utilisant :func:`type`. Le corps " +"de la classe est exécuté dans un nouvel espace de nommage et le nom de la " +"classe est lié localement au résultat de `type(name, bases, namespace)``." + +#: ../Doc/reference/datamodel.rst:1845 +msgid "" +"The class creation process can be customized by passing the ``metaclass`` " +"keyword argument in the class definition line, or by inheriting from an " +"existing class that included such an argument. In the following example, " +"both ``MyClass`` and ``MySubclass`` are instances of ``Meta``::" +msgstr "" +"Le déroulement de création de la classe peut être personnalisé en passant " +"l'argument nommé ``metaclass`` dans la ligne de définition de la classe ou " +"en héritant d'une classe existante qui comporte déjà un tel argument. Dans " +"l'exemple qui suit, ``MyClass`` et ``MySubclass`` sont des instances de " +"``Meta`` ::" + +#: ../Doc/reference/datamodel.rst:1859 +msgid "" +"Any other keyword arguments that are specified in the class definition are " +"passed through to all metaclass operations described below." +msgstr "" +"Tout autre argument nommé spécifié dans la définition de la classe est passé " +"aux opérations de méta-classes décrites auparavant." + +#: ../Doc/reference/datamodel.rst:1862 +msgid "When a class definition is executed, the following steps occur:" +msgstr "" +"Quand la définition d'une classe est exécutée, les différentes étapes " +"suivies sont :" + +#: ../Doc/reference/datamodel.rst:1864 +msgid "MRO entries are resolved;" +msgstr "Les entrées MRO sont résolues ;" + +#: ../Doc/reference/datamodel.rst:1865 +msgid "the appropriate metaclass is determined;" +msgstr "la méta-classe appropriée est déterminée ;" + +#: ../Doc/reference/datamodel.rst:1866 +msgid "the class namespace is prepared;" +msgstr "l'espace de nommage de la classe est préparé ;" + +#: ../Doc/reference/datamodel.rst:1867 +msgid "the class body is executed;" +msgstr "le corps de la classe est exécuté ;" + +#: ../Doc/reference/datamodel.rst:1868 +msgid "the class object is created." +msgstr "l'objet classe est crée." + +#: ../Doc/reference/datamodel.rst:1872 +msgid "Resolving MRO entries" +msgstr "Résolution des entrées MRO" + +#: ../Doc/reference/datamodel.rst:1874 +msgid "" +"If a base that appears in class definition is not an instance of :class:" +"`type`, then an ``__mro_entries__`` method is searched on it. If found, it " +"is called with the original bases tuple. This method must return a tuple of " +"classes that will be used instead of this base. The tuple may be empty, in " +"such case the original base is ignored." +msgstr "" +"Si une classe de base qui apparaît dans la définition d'une classe n'est pas " +"une instance de :class:`type`, alors Python y recherche une méthode " +"``__mro_entries__``. S'il la trouve, il l'appelle avec le tuple original des " +"classes de bases. Cette méthode doit renvoyer un tuple de classes qui est " +"utilisé à la place de la classe de base. Le tuple peut être vide, dans ce " +"cas la classe de base originale est ignorée." + +#: ../Doc/reference/datamodel.rst:1882 ../Doc/reference/datamodel.rst:2070 +msgid ":pep:`560` - Core support for typing module and generic types" +msgstr "" +":pep:`560` — Gestion de base pour les types modules et les types génériques" + +#: ../Doc/reference/datamodel.rst:1886 +msgid "Determining the appropriate metaclass" +msgstr "Détermination de la méta-classe appropriée" + +#: ../Doc/reference/datamodel.rst:1890 +msgid "" +"The appropriate metaclass for a class definition is determined as follows:" +msgstr "" +"La méta-classe appropriée pour une définition de classe est déterminée de la " +"manière suivante :" + +#: ../Doc/reference/datamodel.rst:1892 +msgid "" +"if no bases and no explicit metaclass are given, then :func:`type` is used;" +msgstr "" +"si aucune classe et aucune métaclasse n'est donnée, alors :func:`type` est " +"utilisée ;" + +#: ../Doc/reference/datamodel.rst:1893 +msgid "" +"if an explicit metaclass is given and it is *not* an instance of :func:" +"`type`, then it is used directly as the metaclass;" +msgstr "" +"si une méta-classe explicite est donnée et que *ce n'est pas* une instance " +"de :func:`type`, alors elle est utilisée directement en tant que méta-" +"classe ;" + +#: ../Doc/reference/datamodel.rst:1895 +msgid "" +"if an instance of :func:`type` is given as the explicit metaclass, or bases " +"are defined, then the most derived metaclass is used." +msgstr "" +"Si une instance de :func:`type` est donnée comme méta-classe explicite ou si " +"*bases* est définie, alors la méta-classe la plus dérivée est utilisée." + +#: ../Doc/reference/datamodel.rst:1898 +msgid "" +"The most derived metaclass is selected from the explicitly specified " +"metaclass (if any) and the metaclasses (i.e. ``type(cls)``) of all specified " +"base classes. The most derived metaclass is one which is a subtype of *all* " +"of these candidate metaclasses. If none of the candidate metaclasses meets " +"that criterion, then the class definition will fail with ``TypeError``." +msgstr "" +"La méta-classe la plus dérivée est choisie à partir des méta-classes " +"explicitement spécifiées (s'il y en a) et les méta-classes (c'est-à-dire les " +"``type(cls)``) de toutes les classes de base spécifiées. La méta-classe la " +"plus dérivée est celle qui est un sous-type de *toutes* ces méta-classes " +"candidates. Si aucune des méta-classes candidates ne remplit ce critère, " +"alors la définition de la classe échoue en levant ``TypeError``." + +#: ../Doc/reference/datamodel.rst:1908 +msgid "Preparing the class namespace" +msgstr "Préparation de l'espace de nommage de la classe" + +#: ../Doc/reference/datamodel.rst:1913 +msgid "" +"Once the appropriate metaclass has been identified, then the class namespace " +"is prepared. If the metaclass has a ``__prepare__`` attribute, it is called " +"as ``namespace = metaclass.__prepare__(name, bases, **kwds)`` (where the " +"additional keyword arguments, if any, come from the class definition)." +msgstr "" +"Une fois que la méta-classe appropriée est identifiée, l'espace de nommage " +"de la classe est préparé. Si la méta-classe possède un attribut " +"``__prepare__``, il est appelé avec ``namespace = metaclass." +"__prepare__(name, bases, **kwds)`` (où les arguments nommés supplémentaires, " +"s'il y en a, viennent de la définition de la classe)." + +#: ../Doc/reference/datamodel.rst:1918 +msgid "" +"If the metaclass has no ``__prepare__`` attribute, then the class namespace " +"is initialised as an empty ordered mapping." +msgstr "" +"Si la méta-classe ne possède pas d'attribut ``__prepare__``, alors l'espace " +"de nommage de la classe est initialisé en tant que tableau de " +"correspondances ordonné." + +#: ../Doc/reference/datamodel.rst:1923 +msgid ":pep:`3115` - Metaclasses in Python 3000" +msgstr ":pep:`3115` — Méta-classes dans Python 3000" + +#: ../Doc/reference/datamodel.rst:1924 +msgid "Introduced the ``__prepare__`` namespace hook" +msgstr "" +"introduction de la fonction automatique ``__prepare__`` de l'espace de " +"nommage" + +#: ../Doc/reference/datamodel.rst:1928 +msgid "Executing the class body" +msgstr "Exécution du corps de la classe" + +#: ../Doc/reference/datamodel.rst:1933 +msgid "" +"The class body is executed (approximately) as ``exec(body, globals(), " +"namespace)``. The key difference from a normal call to :func:`exec` is that " +"lexical scoping allows the class body (including any methods) to reference " +"names from the current and outer scopes when the class definition occurs " +"inside a function." +msgstr "" +"Le corps de la classe est exécuté (approximativement) avec ``exec(body, " +"globals(), namespace)``. La principale différence avec un appel normal à :" +"func:`exec` est que la portée lexicale autorise le corps de la classe (y " +"compris les méthodes) à faire référence aux noms de la portée courante et " +"des portées externes lorsque la définition de classe a lieu dans une " +"fonction." + +#: ../Doc/reference/datamodel.rst:1939 +msgid "" +"However, even when the class definition occurs inside the function, methods " +"defined inside the class still cannot see names defined at the class scope. " +"Class variables must be accessed through the first parameter of instance or " +"class methods, or through the implicit lexically scoped ``__class__`` " +"reference described in the next section." +msgstr "" +"Cependant, même quand une définition de classe intervient dans une fonction, " +"les méthodes définies à l'intérieur de la classe ne peuvent pas voir les " +"noms définis en dehors de la portée de la classe. On accède aux variables de " +"la classe *via* le premier paramètre des méthodes d'instance ou de classe, " +"ou *via* la référence implicite ``__class__`` incluse dans la portée " +"lexicale et décrite dans la section suivante." + +#: ../Doc/reference/datamodel.rst:1948 +msgid "Creating the class object" +msgstr "Création de l'objet classe" + +#: ../Doc/reference/datamodel.rst:1955 +msgid "" +"Once the class namespace has been populated by executing the class body, the " +"class object is created by calling ``metaclass(name, bases, namespace, " +"**kwds)`` (the additional keywords passed here are the same as those passed " +"to ``__prepare__``)." +msgstr "" +"Quand l'espace de nommage a été rempli en exécutant le corps de la classe, " +"l'objet classe est créé en appelant ``metaclass(name, bases, namespace, " +"**kwds)`` (les arguments nommés supplémentaires passés ici sont les mêmes " +"que ceux passés à ``__prepare__``)." + +#: ../Doc/reference/datamodel.rst:1960 +msgid "" +"This class object is the one that will be referenced by the zero-argument " +"form of :func:`super`. ``__class__`` is an implicit closure reference " +"created by the compiler if any methods in a class body refer to either " +"``__class__`` or ``super``. This allows the zero argument form of :func:" +"`super` to correctly identify the class being defined based on lexical " +"scoping, while the class or instance that was used to make the current call " +"is identified based on the first argument passed to the method." +msgstr "" +"Cet objet classe est celui qui est référencé par la forme sans argument de :" +"func:`super`. ``__class__`` est une référence implicite créée par le " +"compilateur si une méthode du corps de la classe fait référence soit à " +"``__class__``, soit à ``super``. Ceci permet que la forme sans argument de :" +"func:`super` identifie la classe en cours de définition en fonction de la " +"portée lexicale, tandis que la classe ou l'instance utilisée pour effectuer " +"l'appel en cours est identifiée en fonction du premier argument transmis à " +"la méthode." + +#: ../Doc/reference/datamodel.rst:1970 +msgid "" +"In CPython 3.6 and later, the ``__class__`` cell is passed to the metaclass " +"as a ``__classcell__`` entry in the class namespace. If present, this must " +"be propagated up to the ``type.__new__`` call in order for the class to be " +"initialised correctly. Failing to do so will result in a :exc:" +"`DeprecationWarning` in Python 3.6, and a :exc:`RuntimeError` in Python 3.8." +msgstr "" +"Dans CPython 3.6 et suivants, la cellule ``__class__`` est passée à la méta-" +"classe en tant qu'entrée ``__classcell__`` dans l'espace de nommage de la " +"classe. Si elle est présente, elle doit être propagée à l'appel ``type .__ " +"new__`` pour que la classe soit correctement initialisée. Ne pas le faire se " +"traduit par un avertissement :exc:`DeprecationWarning` dans Python 3.6 et " +"un :exc:`RuntimeError` dans Python 3.8." + +#: ../Doc/reference/datamodel.rst:1977 +msgid "" +"When using the default metaclass :class:`type`, or any metaclass that " +"ultimately calls ``type.__new__``, the following additional customisation " +"steps are invoked after creating the class object:" +msgstr "" +"Quand vous utilisez la méta-classe par défaut :class:`type` ou toute autre " +"méta-classe qui finit par appeler ``type.__new__``, les étapes de " +"personnalisation supplémentaires suivantes sont suivies après la création de " +"l'objet classe :" + +#: ../Doc/reference/datamodel.rst:1981 +msgid "" +"first, ``type.__new__`` collects all of the descriptors in the class " +"namespace that define a :meth:`~object.__set_name__` method;" +msgstr "" +"d'abord, ``type.__new__`` récupère, dans l'espace de nommage de la classe, " +"tous les descripteurs qui définissent une méthode :meth:`~object." +"__set_name__` ;" + +#: ../Doc/reference/datamodel.rst:1983 +msgid "" +"second, all of these ``__set_name__`` methods are called with the class " +"being defined and the assigned name of that particular descriptor;" +msgstr "" +"ensuite, toutes ces méthodes ``__set_name__`` sont appelées avec la classe " +"en cours de définition et le nom assigné à chaque descripteur ;" + +#: ../Doc/reference/datamodel.rst:1985 +msgid "" +"finally, the :meth:`~object.__init_subclass__` hook is called on the " +"immediate parent of the new class in its method resolution order." +msgstr "" +"finalement, la méthode automatique :meth:`~object.__init_subclass__` est " +"appelée sur le parent immédiat de la nouvelle classe en utilisant l'ordre de " +"résolution des méthodes." + +#: ../Doc/reference/datamodel.rst:1988 +msgid "" +"After the class object is created, it is passed to the class decorators " +"included in the class definition (if any) and the resulting object is bound " +"in the local namespace as the defined class." +msgstr "" +"Après la création de l'objet classe, il est passé aux décorateurs de la " +"classe, y compris ceux inclus dans la définition de la classe (s'il y en a) " +"et l'objet résultant est lié à l'espace de nommage local en tant que classe " +"définie." + +#: ../Doc/reference/datamodel.rst:1992 +msgid "" +"When a new class is created by ``type.__new__``, the object provided as the " +"namespace parameter is copied to a new ordered mapping and the original " +"object is discarded. The new copy is wrapped in a read-only proxy, which " +"becomes the :attr:`~object.__dict__` attribute of the class object." +msgstr "" +"Quand une nouvelle classe est créée *via* ``type.__new__``, l'objet fourni " +"en tant que paramètre d'espace de nommage est copié vers un nouveau tableau " +"de correspondances ordonné et l'objet original est laissé de côté. La " +"nouvelle copie est encapsulée dans un mandataire en lecture seule qui " +"devient l'attribut :attr:`~object.__dict__` de l'objet classe." + +#: ../Doc/reference/datamodel.rst:1999 +msgid ":pep:`3135` - New super" +msgstr ":pep:`3135` — Nouvelle méthode super" + +#: ../Doc/reference/datamodel.rst:2000 +msgid "Describes the implicit ``__class__`` closure reference" +msgstr "" +"Décrit la référence à la fermeture (*closure* en anglais) de la " +"``__class__`` implicite" + +#: ../Doc/reference/datamodel.rst:2004 +msgid "Uses for metaclasses" +msgstr "Cas d'utilisations des métaclasses" + +#: ../Doc/reference/datamodel.rst:2006 +msgid "" +"The potential uses for metaclasses are boundless. Some ideas that have been " +"explored include enum, logging, interface checking, automatic delegation, " +"automatic property creation, proxies, frameworks, and automatic resource " +"locking/synchronization." +msgstr "" +"Les utilisations possibles des méta-classes sont immenses. Quelques pistes " +"ont déjà été explorées comme l'énumération, la gestion des traces, le " +"contrôle des interfaces, la délégation automatique, la création automatique " +"de propriétés, les mandataires, les *frameworks* ainsi que le verrouillage " +"ou la synchronisation automatique de ressources." + +#: ../Doc/reference/datamodel.rst:2013 +msgid "Customizing instance and subclass checks" +msgstr "Personnalisation des instances et vérification des sous-classes" + +#: ../Doc/reference/datamodel.rst:2015 +msgid "" +"The following methods are used to override the default behavior of the :func:" +"`isinstance` and :func:`issubclass` built-in functions." +msgstr "" +"Les méthodes suivantes sont utilisées pour surcharger le comportement par " +"défaut des fonctions natives :func:`isinstance` et :func:`issubclass`." + +#: ../Doc/reference/datamodel.rst:2018 +msgid "" +"In particular, the metaclass :class:`abc.ABCMeta` implements these methods " +"in order to allow the addition of Abstract Base Classes (ABCs) as \"virtual " +"base classes\" to any class or type (including built-in types), including " +"other ABCs." +msgstr "" +"En particulier, la méta-classe :class:`abc.ABCMeta` implémente ces méthodes " +"pour autoriser l'ajout de classes de base abstraites (ABC pour *Abstract " +"Base Classes* en anglais) en tant que « classes de base virtuelles » pour " +"toute classe ou type (y compris les types natifs)." + +#: ../Doc/reference/datamodel.rst:2025 +msgid "" +"Return true if *instance* should be considered a (direct or indirect) " +"instance of *class*. If defined, called to implement ``isinstance(instance, " +"class)``." +msgstr "" +"Renvoie ``True`` si *instance* doit être considérée comme une instance " +"(directe ou indirecte) de *class*. Si elle est définie, elle est appelée " +"pour implémenter ``isinstance(instance, class)``." + +#: ../Doc/reference/datamodel.rst:2032 +msgid "" +"Return true if *subclass* should be considered a (direct or indirect) " +"subclass of *class*. If defined, called to implement ``issubclass(subclass, " +"class)``." +msgstr "" +"Renvoie ``True`` si *subclass* doit être considérée comme une sous-classe " +"(directe ou indirecte) de *class*. Si elle est définie, appelée pour " +"implémenter ``issubclass(subclass, class)``." + +#: ../Doc/reference/datamodel.rst:2037 +msgid "" +"Note that these methods are looked up on the type (metaclass) of a class. " +"They cannot be defined as class methods in the actual class. This is " +"consistent with the lookup of special methods that are called on instances, " +"only in this case the instance is itself a class." +msgstr "" +"Notez que ces méthodes sont recherchées dans le type (la méta-classe) d'une " +"classe. Elles ne peuvent pas être définies en tant que méthodes de classe " +"dans la classe réelle. C'est cohérent avec la recherche des méthodes " +"spéciales qui sont appelées pour les instances, sauf qu'ici l'instance est " +"elle-même une classe." + +#: ../Doc/reference/datamodel.rst:2048 +msgid ":pep:`3119` - Introducing Abstract Base Classes" +msgstr ":pep:`3119` — Introduction aux classes de bases abstraites" + +#: ../Doc/reference/datamodel.rst:2045 +msgid "" +"Includes the specification for customizing :func:`isinstance` and :func:" +"`issubclass` behavior through :meth:`~class.__instancecheck__` and :meth:" +"`~class.__subclasscheck__`, with motivation for this functionality in the " +"context of adding Abstract Base Classes (see the :mod:`abc` module) to the " +"language." +msgstr "" +"Inclut la spécification pour la personnalisation du comportement de :func:" +"`isinstance` et :func:`issubclass` à travers :meth:`~class." +"__instancecheck__` et :meth:`~class.__subclasscheck__`, avec comme " +"motivation pour cette fonctionnalité l'ajout les classes de base abstraites " +"(voir le module :mod:`abc`) au langage." + +#: ../Doc/reference/datamodel.rst:2053 +msgid "Emulating generic types" +msgstr "Émulation de types génériques" + +#: ../Doc/reference/datamodel.rst:2055 +msgid "" +"One can implement the generic class syntax as specified by :pep:`484` (for " +"example ``List[int]``) by defining a special method:" +msgstr "" +"Vous pouvez implémenter la syntaxe générique des classes comme spécifié par " +"la :pep:`484` (par exemple ``List[int]``) en définissant une méthode " +"spéciale :" + +#: ../Doc/reference/datamodel.rst:2060 +msgid "" +"Return an object representing the specialization of a generic class by type " +"arguments found in *key*." +msgstr "" +"Renvoie un objet représentant la spécialisation d'une classe générique en " +"fonction des arguments types trouvés dans *key*." + +#: ../Doc/reference/datamodel.rst:2063 +msgid "" +"This method is looked up on the class object itself, and when defined in the " +"class body, this method is implicitly a class method. Note, this mechanism " +"is primarily reserved for use with static type hints, other usage is " +"discouraged." +msgstr "" +"Python recherche cette méthode dans l'objet de classe lui-même et, " +"lorsqu'elle est définie dans le corps de la classe, cette méthode est " +"implicitement une méthode de classe. Notez que ce mécanisme est " +"principalement réservé à une utilisation avec des indications de type " +"statiques, d'autres utilisations sont déconseillées." + +#: ../Doc/reference/datamodel.rst:2076 +msgid "Emulating callable objects" +msgstr "Émulation d'objets appelables" + +#: ../Doc/reference/datamodel.rst:2083 +msgid "" +"Called when the instance is \"called\" as a function; if this method is " +"defined, ``x(arg1, arg2, ...)`` is a shorthand for ``x.__call__(arg1, " +"arg2, ...)``." +msgstr "" +"Appelée quand l'instance est « appelée » en tant que fonction ; si la " +"méthode est définie, ``x(arg1, arg2, ...)`` est un raccourci pour ``x." +"__call__(arg1, arg2, ...)``." + +#: ../Doc/reference/datamodel.rst:2090 +msgid "Emulating container types" +msgstr "Émulation de types conteneurs" + +#: ../Doc/reference/datamodel.rst:2092 +msgid "" +"The following methods can be defined to implement container objects. " +"Containers usually are sequences (such as lists or tuples) or mappings (like " +"dictionaries), but can represent other containers as well. The first set of " +"methods is used either to emulate a sequence or to emulate a mapping; the " +"difference is that for a sequence, the allowable keys should be the integers " +"*k* for which ``0 <= k < N`` where *N* is the length of the sequence, or " +"slice objects, which define a range of items. It is also recommended that " +"mappings provide the methods :meth:`keys`, :meth:`values`, :meth:`items`, :" +"meth:`get`, :meth:`clear`, :meth:`setdefault`, :meth:`pop`, :meth:" +"`popitem`, :meth:`!copy`, and :meth:`update` behaving similar to those for " +"Python's standard dictionary objects. The :mod:`collections.abc` module " +"provides a :class:`~collections.abc.MutableMapping` abstract base class to " +"help create those methods from a base set of :meth:`__getitem__`, :meth:" +"`__setitem__`, :meth:`__delitem__`, and :meth:`keys`. Mutable sequences " +"should provide methods :meth:`append`, :meth:`count`, :meth:`index`, :meth:" +"`extend`, :meth:`insert`, :meth:`pop`, :meth:`remove`, :meth:`reverse` and :" +"meth:`sort`, like Python standard list objects. Finally, sequence types " +"should implement addition (meaning concatenation) and multiplication " +"(meaning repetition) by defining the methods :meth:`__add__`, :meth:" +"`__radd__`, :meth:`__iadd__`, :meth:`__mul__`, :meth:`__rmul__` and :meth:" +"`__imul__` described below; they should not define other numerical " +"operators. It is recommended that both mappings and sequences implement " +"the :meth:`__contains__` method to allow efficient use of the ``in`` " +"operator; for mappings, ``in`` should search the mapping's keys; for " +"sequences, it should search through the values. It is further recommended " +"that both mappings and sequences implement the :meth:`__iter__` method to " +"allow efficient iteration through the container; for mappings, :meth:" +"`__iter__` should be the same as :meth:`keys`; for sequences, it should " +"iterate through the values." +msgstr "" +"Les fonctions suivantes peuvent être définies pour implémenter des objets " +"conteneurs. Les conteneurs sont habituellement des séquences (telles que les " +"tuples ou les listes) ou des tableaux de correspondances (comme les " +"dictionnaires), mais ils peuvent aussi représenter d'autres conteneurs. Le " +"premier ensemble de méthodes est utilisé soit pour émuler une séquence, soit " +"pour émuler un tableau de correspondances ; la différence est que, pour une " +"séquence, les clés doivent être soit des entiers *k* tels que ``0 <= k < N`` " +"où *N* est la longueur de la séquence, soit des objets tranches qui " +"définissent un intervalle d'éléments. Il est aussi recommandé que les " +"tableaux de correspondances fournissent les méthodes :meth:`keys`, :meth:" +"`values`, :meth:`items`, :meth:`get`, :meth:`clear`, :meth:`setdefault`, :" +"meth:`pop`, :meth:`popitem`, :meth:`!copy` et :meth:`update` avec un " +"comportement similaire aux objets dictionnaires standards de Python. Le " +"module :mod:`collections.abc` fournit une classe de base abstraite :class:" +"`~collections.abc.MutableMapping` pour aider à la création de ces méthodes à " +"partir d'un ensemble de base composé de :meth:`__getitem__`, :meth:" +"`__setitem__`, :meth:`__delitem__` et :meth:`keys`. Les séquences muables " +"doivent fournir les méthodes :meth:`append`, :meth:`count`, :meth:`index`, :" +"meth:`extend`, :meth:`insert`, :meth:`pop`, :meth:`remove`, :meth:`reverse` " +"et :meth:`sort`, comme les objets listes standards de Python. Enfin, les " +"types séquences doivent implémenter l'addition (dans le sens de la " +"concaténation) et la multiplication (dans le sens de la répétition) en " +"définissant les méthodes :meth:`__add__`, :meth:`__radd__`, :meth:" +"`__iadd__`, :meth:`__mul__`, :meth:`__rmul__` et :meth:`__imul__` décrites " +"ci-dessous ; ils ne doivent pas définir d'autres opérateurs numériques. Il " +"est recommandé que les tableaux de correspondances et les séquences " +"implémentent la méthode :meth:`__contains__` pour permettre l'utilisation " +"efficace de l'opérateur ``in`` ; concernant les tableaux de correspondances, " +"``in`` doit rechercher dans les clés du tableau ; pour les séquences, il " +"doit chercher dans les valeurs. Il est de plus recommandé que les tableaux " +"de correspondances et les séquences implémentent la méthode :meth:`__iter__` " +"pour permettre une itération efficace dans le conteneur ; pour les tableaux " +"de correspondances, :meth:`__iter__` doit être la même que :meth:`keys` ; " +"pour les séquences, elle doit itérer sur les valeurs." + +#: ../Doc/reference/datamodel.rst:2127 +msgid "" +"Called to implement the built-in function :func:`len`. Should return the " +"length of the object, an integer ``>=`` 0. Also, an object that doesn't " +"define a :meth:`__bool__` method and whose :meth:`__len__` method returns " +"zero is considered to be false in a Boolean context." +msgstr "" +"Appelée pour implémenter la fonction native :func:`len`. Elle doit renvoyer " +"la longueur de l'objet, un entier ``>=`` 0. Par ailleurs, un objet qui ne " +"définit pas de méthode :meth:`__bool__` et dont la méthode :meth:`__len__` " +"renvoie zéro est considéré comme valant ``False`` dans un contexte booléen." + +#: ../Doc/reference/datamodel.rst:2134 +msgid "" +"In CPython, the length is required to be at most :attr:`sys.maxsize`. If the " +"length is larger than :attr:`!sys.maxsize` some features (such as :func:" +"`len`) may raise :exc:`OverflowError`. To prevent raising :exc:`!" +"OverflowError` by truth value testing, an object must define a :meth:" +"`__bool__` method." +msgstr "" +"En CPython, la longueur doit valoir au maximum :attr:`sys.maxsize`. Si la " +"longueur est plus grande que :attr:`!sys.maxsize`, des propriétés (telles " +"que :func:`len`) peuvent lever :exc:`OverflowError`. Afin d'éviter de lever :" +"exc:`!OverflowError` lors de tests booléens, un objet doit définir la " +"méthode :meth:`__bool__`." + +#: ../Doc/reference/datamodel.rst:2143 +msgid "" +"Called to implement :func:`operator.length_hint`. Should return an estimated " +"length for the object (which may be greater or less than the actual length). " +"The length must be an integer ``>=`` 0. This method is purely an " +"optimization and is never required for correctness." +msgstr "" +"Appelée pour implémenter :func:`operator.length_hint`. Elle doit renvoyer " +"une longueur estimée de l'objet (qui peut être plus grande ou plus petite " +"que la longueur réelle). La longueur doit être un entier ``>=`` 0. Cette " +"méthode est utilisée uniquement pour optimiser les traitements et n'est " +"jamais tenue de renvoyer un résultat exact." + +#: ../Doc/reference/datamodel.rst:2155 +msgid "" +"Slicing is done exclusively with the following three methods. A call like ::" +msgstr "" +"Le découpage est effectué uniquement à l'aide des trois méthodes suivantes. " +"Un appel comme ::" + +#: ../Doc/reference/datamodel.rst:2159 +msgid "is translated to ::" +msgstr "est traduit en ::" + +#: ../Doc/reference/datamodel.rst:2163 +msgid "and so forth. Missing slice items are always filled in with ``None``." +msgstr "et ainsi de suite. Les éléments manquants sont remplacés par ``None``." + +#: ../Doc/reference/datamodel.rst:2168 +msgid "" +"Called to implement evaluation of ``self[key]``. For sequence types, the " +"accepted keys should be integers and slice objects. Note that the special " +"interpretation of negative indexes (if the class wishes to emulate a " +"sequence type) is up to the :meth:`__getitem__` method. If *key* is of an " +"inappropriate type, :exc:`TypeError` may be raised; if of a value outside " +"the set of indexes for the sequence (after any special interpretation of " +"negative values), :exc:`IndexError` should be raised. For mapping types, if " +"*key* is missing (not in the container), :exc:`KeyError` should be raised." +msgstr "" +"Appelée pour implémenter l'évaluation de ``self[key]``. Pour les types " +"séquences, les clés autorisées sont les entiers et les objets tranches " +"(*slice*). Notez que l'interprétation spéciale des indices négatifs (si la " +"classe souhaite émuler un type séquence) est du ressort de la méthode :meth:" +"`__getitem__`. Si *key* n'est pas du bon type, une :exc:`TypeError` peut " +"être levée ; si la valeur est en dehors de l'ensemble des indices de la " +"séquence (après interprétation éventuelle des valeurs négatives), une :exc:" +"`IndexError` doit être levée. Pour les tableaux de correspondances, si *key* " +"n'existe pas dans le conteneur, une :exc:`KeyError` doit être levée." + +#: ../Doc/reference/datamodel.rst:2179 +msgid "" +":keyword:`for` loops expect that an :exc:`IndexError` will be raised for " +"illegal indexes to allow proper detection of the end of the sequence." +msgstr "" +":keyword:`for` s'attend à ce qu'une :exc:`IndexError` soit levée en cas " +"d'indice illégal afin de détecter correctement la fin de la séquence." + +#: ../Doc/reference/datamodel.rst:2185 +msgid "" +"Called to implement assignment to ``self[key]``. Same note as for :meth:" +"`__getitem__`. This should only be implemented for mappings if the objects " +"support changes to the values for keys, or if new keys can be added, or for " +"sequences if elements can be replaced. The same exceptions should be raised " +"for improper *key* values as for the :meth:`__getitem__` method." +msgstr "" +"Appelée pour implémenter l'assignation à ``self[key]``. La même note que " +"pour :meth:`__getitem__` s'applique. Elle ne doit être implémentée que pour " +"les tableaux de correspondances qui autorisent les modifications de valeurs " +"des clés, ceux pour lesquels on peut ajouter de nouvelles clés ou, pour les " +"séquences, celles dont les éléments peuvent être remplacés. Les mêmes " +"exceptions que pour la méthode :meth:`__getitem__` doivent être levées en " +"cas de mauvaises valeurs de clés." + +#: ../Doc/reference/datamodel.rst:2194 +msgid "" +"Called to implement deletion of ``self[key]``. Same note as for :meth:" +"`__getitem__`. This should only be implemented for mappings if the objects " +"support removal of keys, or for sequences if elements can be removed from " +"the sequence. The same exceptions should be raised for improper *key* " +"values as for the :meth:`__getitem__` method." +msgstr "" +"Appelée pour implémenter la suppression de ``self[key]``. La même note que " +"pour :meth:`__getitem__` s'applique. Elle ne doit être implémentée que pour " +"les tableaux de correspondances qui autorisent les suppressions de clés ou " +"pour les séquences dont les éléments peuvent être supprimés de la séquence. " +"Les mêmes exceptions que pour la méthode :meth:`__getitem__` doivent être " +"levées en cas de mauvaises valeurs de clés." + +#: ../Doc/reference/datamodel.rst:2203 +msgid "" +"Called by :class:`dict`\\ .\\ :meth:`__getitem__` to implement ``self[key]`` " +"for dict subclasses when key is not in the dictionary." +msgstr "" +"Appelée par :class:`dict`\\ .\\ :meth:`__getitem__` pour implémenter " +"``self[key]`` dans les sous-classes de dictionnaires lorsque la clé n'est " +"pas dans le dictionnaire." + +#: ../Doc/reference/datamodel.rst:2209 +msgid "" +"This method is called when an iterator is required for a container. This " +"method should return a new iterator object that can iterate over all the " +"objects in the container. For mappings, it should iterate over the keys of " +"the container." +msgstr "" +"Cette méthode est appelée quand un itérateur est requis pour un conteneur. " +"Cette méthode doit renvoyer un nouvel objet itérateur qui peut itérer sur " +"tous les objets du conteneur. Pour les tableaux de correspondances, elle " +"doit itérer sur les clés du conteneur." + +#: ../Doc/reference/datamodel.rst:2213 +msgid "" +"Iterator objects also need to implement this method; they are required to " +"return themselves. For more information on iterator objects, see :ref:" +"`typeiter`." +msgstr "" +"Les objets itérateurs doivent aussi implémenter cette méthode ; ils doivent " +"alors se renvoyer eux-mêmes. Pour plus d'information sur les objets " +"itérateurs, lisez :ref:`typeiter`." + +#: ../Doc/reference/datamodel.rst:2219 +msgid "" +"Called (if present) by the :func:`reversed` built-in to implement reverse " +"iteration. It should return a new iterator object that iterates over all " +"the objects in the container in reverse order." +msgstr "" +"Appelée (si elle existe) par la fonction native :func:`reversed` pour " +"implémenter l'itération en sens inverse. Elle doit renvoyer un nouvel objet " +"itérateur qui itère sur tous les objets du conteneur en sens inverse." + +#: ../Doc/reference/datamodel.rst:2223 +msgid "" +"If the :meth:`__reversed__` method is not provided, the :func:`reversed` " +"built-in will fall back to using the sequence protocol (:meth:`__len__` and :" +"meth:`__getitem__`). Objects that support the sequence protocol should only " +"provide :meth:`__reversed__` if they can provide an implementation that is " +"more efficient than the one provided by :func:`reversed`." +msgstr "" +"Si la méthode :meth:`__reversed__` n'est pas fournie, la fonction native :" +"func:`reversed` se replie sur le protocole de séquence (:meth:`__len__` et :" +"meth:`__getitem__`). Les objets qui connaissent le protocole de séquence ne " +"doivent fournir :meth:`__reversed__` que si l'implémentation qu'ils " +"proposent est plus efficace que celle de :func:`reversed`." + +#: ../Doc/reference/datamodel.rst:2230 +msgid "" +"The membership test operators (:keyword:`in` and :keyword:`not in`) are " +"normally implemented as an iteration through a sequence. However, container " +"objects can supply the following special method with a more efficient " +"implementation, which also does not require the object be a sequence." +msgstr "" +"Les opérateurs de tests d'appartenance (:keyword:`in` et :keyword:`not in`) " +"sont normalement implémentés comme des itérations sur la séquence. " +"Cependant, les objets conteneurs peuvent fournir les méthodes spéciales " +"suivantes avec une implémentation plus efficace, qui ne requièrent " +"d'ailleurs pas que l'objet soit une séquence." + +#: ../Doc/reference/datamodel.rst:2237 +msgid "" +"Called to implement membership test operators. Should return true if *item* " +"is in *self*, false otherwise. For mapping objects, this should consider " +"the keys of the mapping rather than the values or the key-item pairs." +msgstr "" +"Appelée pour implémenter les opérateurs de test d'appartenance. Elle doit " +"renvoyer ``True`` si *item* est dans *self* et ``False`` sinon. Pour les " +"tableaux de correspondances, seules les clés sont considérées (pas les " +"valeurs des paires clés-valeurs)." + +#: ../Doc/reference/datamodel.rst:2241 +msgid "" +"For objects that don't define :meth:`__contains__`, the membership test " +"first tries iteration via :meth:`__iter__`, then the old sequence iteration " +"protocol via :meth:`__getitem__`, see :ref:`this section in the language " +"reference `." +msgstr "" +"Pour les objets qui ne définissent pas :meth:`__contains__`, les tests " +"d'appartenance essaient d'abord d'itérer avec :meth:`__iter__` puis avec le " +"vieux protocole d'itération sur les séquences *via* :meth:`__getitem__`, " +"reportez-vous à :ref:`cette section dans la référence du langage `." + +#: ../Doc/reference/datamodel.rst:2250 +msgid "Emulating numeric types" +msgstr "Émulation de types numériques" + +#: ../Doc/reference/datamodel.rst:2252 +msgid "" +"The following methods can be defined to emulate numeric objects. Methods " +"corresponding to operations that are not supported by the particular kind of " +"number implemented (e.g., bitwise operations for non-integral numbers) " +"should be left undefined." +msgstr "" +"Les méthodes suivantes peuvent être définies pour émuler des objets " +"numériques. Les méthodes correspondant à des opérations qui ne sont pas " +"autorisées pour la catégorie de nombres considérée (par exemple, les " +"opérations bit à bit pour les nombres qui ne sont pas entiers) doivent être " +"laissées indéfinies." + +#: ../Doc/reference/datamodel.rst:2278 +msgid "" +"These methods are called to implement the binary arithmetic operations (``" +"+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:`pow`, " +"``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``). For instance, to evaluate the " +"expression ``x + y``, where *x* is an instance of a class that has an :meth:" +"`__add__` method, ``x.__add__(y)`` is called. The :meth:`__divmod__` method " +"should be the equivalent to using :meth:`__floordiv__` and :meth:`__mod__`; " +"it should not be related to :meth:`__truediv__`. Note that :meth:`__pow__` " +"should be defined to accept an optional third argument if the ternary " +"version of the built-in :func:`pow` function is to be supported." +msgstr "" +"Ces méthodes sont appelées pour implémenter les opérations arithmétiques " +"binaires (``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :" +"func:`pow`, ``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``). Par exemple, pour " +"évaluer l'expression ``x + y``, où *x* est une instance d'une classe qui " +"possède une méthode :meth:`__add__`, ``x.__add__(y)`` est appelée. La " +"méthode :meth:`__divmod__` doit être l'équivalent d'appeler :meth:" +"`__floordiv__` et :meth:`__mod__` ; elle ne doit pas être reliée à :meth:" +"`__truediv__`. Notez que :meth:`__pow__` doit être définie de manière à " +"accepter un troisième argument optionnel si la version ternaire de la " +"fonction native :func:`pow` est autorisée." + +#: ../Doc/reference/datamodel.rst:2289 +msgid "" +"If one of those methods does not support the operation with the supplied " +"arguments, it should return ``NotImplemented``." +msgstr "" +"Si l'une de ces méthodes n'autorise pas l'opération avec les arguments " +"donnés, elle doit renvoyer ``NotImplemented``." + +#: ../Doc/reference/datamodel.rst:2312 +msgid "" +"These methods are called to implement the binary arithmetic operations (``" +"+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:`pow`, " +"``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``) with reflected (swapped) " +"operands. These functions are only called if the left operand does not " +"support the corresponding operation [#]_ and the operands are of different " +"types. [#]_ For instance, to evaluate the expression ``x - y``, where *y* is " +"an instance of a class that has an :meth:`__rsub__` method, ``y." +"__rsub__(x)`` is called if ``x.__sub__(y)`` returns *NotImplemented*." +msgstr "" +"Ces méthodes sont appelées pour implémenter les opérations arithmétiques " +"binaires (``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :" +"func:`pow`, ``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``) avec des opérandes " +"renversés (intervertis). Ces fonctions ne sont appelées que si l'opérande de " +"gauche n'autorise pas l'opération correspondante [#]_ et si les opérandes " +"sont de types différents [#]_. Par exemple, pour évaluer l'expression ``x - " +"y``, où *y* est une instance d'une classe qui possède une méthode :meth:" +"`__rsub__`, ``y.__rsub__(x)`` est appelée si ``x.__sub__(y)`` renvoie " +"*NotImplemented*." + +#: ../Doc/reference/datamodel.rst:2323 +msgid "" +"Note that ternary :func:`pow` will not try calling :meth:`__rpow__` (the " +"coercion rules would become too complicated)." +msgstr "" +"Notez que la fonction ternaire :func:`pow` n'essaie pas d'appeler :meth:" +"`__rpow__` (les règles de coercition seraient trop compliquées)." + +#: ../Doc/reference/datamodel.rst:2328 +msgid "" +"If the right operand's type is a subclass of the left operand's type and " +"that subclass provides the reflected method for the operation, this method " +"will be called before the left operand's non-reflected method. This " +"behavior allows subclasses to override their ancestors' operations." +msgstr "" +"Si le type de l'opérande de droite est une sous-classe du type de l'opérande " +"de gauche et que cette sous-classe fournit la méthode symétrique pour " +"l'opération, cette méthode sera appelée avant la méthode originelle de " +"l'opérande gauche. Ce comportement permet à des sous-classes de surcharger " +"les opérations de leurs ancêtres." + +#: ../Doc/reference/datamodel.rst:2348 +msgid "" +"These methods are called to implement the augmented arithmetic assignments " +"(``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, ``**=``, ``<<=``, " +"``>>=``, ``&=``, ``^=``, ``|=``). These methods should attempt to do the " +"operation in-place (modifying *self*) and return the result (which could be, " +"but does not have to be, *self*). If a specific method is not defined, the " +"augmented assignment falls back to the normal methods. For instance, if *x* " +"is an instance of a class with an :meth:`__iadd__` method, ``x += y`` is " +"equivalent to ``x = x.__iadd__(y)`` . Otherwise, ``x.__add__(y)`` and ``y." +"__radd__(x)`` are considered, as with the evaluation of ``x + y``. In " +"certain situations, augmented assignment can result in unexpected errors " +"(see :ref:`faq-augmented-assignment-tuple-error`), but this behavior is in " +"fact part of the data model." +msgstr "" +"Ces méthodes sont appelées pour implémenter les assignations arithmétiques " +"augmentées (``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, " +"``**=``, ``<<=``, ``>>=``, ``&=``, ``^=``, ``|=``). Ces méthodes doivent " +"essayer d'effectuer l'opération « sur place » (c'est-à-dire de modifier " +"*self*) et de renvoyer le résultat (qui peut être, mais pas nécessairement, " +"*self*). Si une méthode spécifique n'est pas définie, l'assignation " +"augmentée se replie vers la méthode normale correspondante. Par exemple, si " +"*x* est une instance d'une classe qui possède une méthode :meth:`__iadd__`, " +"``x += y`` est équivalent à ``x = x.__iadd__(y)`` . Sinon, ``x.__add__(y)`` " +"et ``y.__radd__(x)`` sont essayées, comme pour l'évaluation de ``x + y``. " +"Dans certaines situations, les assignations augmentées peuvent causer des " +"erreurs inattendues (voir :ref:`faq-augmented-assignment-tuple-error`), mais " +"ce comportement est en fait partie intégrante du modèle de données." + +#: ../Doc/reference/datamodel.rst:2369 +msgid "" +"Called to implement the unary arithmetic operations (``-``, ``+``, :func:" +"`abs` and ``~``)." +msgstr "" +"Appelée pour implémenter les opérations arithmétiques unaires (``-``, ``" +"+``, :func:`abs` et ``~``)." + +#: ../Doc/reference/datamodel.rst:2382 +msgid "" +"Called to implement the built-in functions :func:`complex`, :func:`int` and :" +"func:`float`. Should return a value of the appropriate type." +msgstr "" +"Appelées pour implémenter les fonctions natives :func:`complex`, :func:`int` " +"et :func:`float`. Elles doivent renvoyer une valeur du type approprié." + +#: ../Doc/reference/datamodel.rst:2389 +msgid "" +"Called to implement :func:`operator.index`, and whenever Python needs to " +"losslessly convert the numeric object to an integer object (such as in " +"slicing, or in the built-in :func:`bin`, :func:`hex` and :func:`oct` " +"functions). Presence of this method indicates that the numeric object is an " +"integer type. Must return an integer." +msgstr "" +"Appelée pour implémenter :func:`operator.index` et lorsque Python a besoin " +"de convertir sans perte un objet numérique en objet entier (pour un " +"découpage ou dans les fonctions natives :func:`bin`, :func:`hex` et :func:" +"`oct`). La présence de cette méthode indique que l'objet numérique est un " +"type entier. Elle doit renvoyer un entier." + +#: ../Doc/reference/datamodel.rst:2397 +msgid "" +"In order to have a coherent integer type class, when :meth:`__index__` is " +"defined :meth:`__int__` should also be defined, and both should return the " +"same value." +msgstr "" +"Afin d'avoir un type de classe entier cohérent, lorsque :meth:`__index__` " +"est définie alors :meth:`__int__` doit aussi être définie et les deux " +"doivent renvoyer la même valeur." + +#: ../Doc/reference/datamodel.rst:2409 +msgid "" +"Called to implement the built-in function :func:`round` and :mod:`math` " +"functions :func:`~math.trunc`, :func:`~math.floor` and :func:`~math.ceil`. " +"Unless *ndigits* is passed to :meth:`!__round__` all these methods should " +"return the value of the object truncated to an :class:`~numbers.Integral` " +"(typically an :class:`int`)." +msgstr "" +"Appelée pour implémenter la fonction native :func:`round` et les fonctions " +"du module :mod:`math` :func:`~math.trunc`, :func:`~math.floor` et :func:" +"`~math.ceil`. À moins que *ndigits* ne soit passé à :meth:`!__round__`, " +"toutes ces méthodes doivent renvoyer la valeur de l'objet tronquée pour " +"donner un :class:`~numbers.Integral` (typiquement un :class:`int`)." + +#: ../Doc/reference/datamodel.rst:2415 +msgid "" +"If :meth:`__int__` is not defined then the built-in function :func:`int` " +"falls back to :meth:`__trunc__`." +msgstr "" +"Si :meth:`__int__` n'est pas définie, alors la fonction native :func:`int` " +"se replie sur :meth:`__trunc__`." + +#: ../Doc/reference/datamodel.rst:2422 +msgid "With Statement Context Managers" +msgstr "Gestionnaire de contexte With" + +#: ../Doc/reference/datamodel.rst:2424 +msgid "" +"A :dfn:`context manager` is an object that defines the runtime context to be " +"established when executing a :keyword:`with` statement. The context manager " +"handles the entry into, and the exit from, the desired runtime context for " +"the execution of the block of code. Context managers are normally invoked " +"using the :keyword:`!with` statement (described in section :ref:`with`), but " +"can also be used by directly invoking their methods." +msgstr "" +"Un :dfn:`gestionnaire de contexte` est un objet qui met en place un contexte " +"prédéfini au moment de l'exécution de l'instruction :keyword:`with`. Le " +"gestionnaire de contexte gère l'entrée et la sortie de ce contexte " +"d'exécution pour tout un bloc de code. Les gestionnaires de contextes sont " +"normalement invoqués en utilisant une instruction :keyword:`!with` (décrite " +"dans la section :ref:`with`), mais ils peuvent aussi être directement " +"invoqués par leurs méthodes." + +#: ../Doc/reference/datamodel.rst:2435 +msgid "" +"Typical uses of context managers include saving and restoring various kinds " +"of global state, locking and unlocking resources, closing opened files, etc." +msgstr "" +"Les utilisations classiques des gestionnaires de contexte sont la sauvegarde " +"et la restauration d'états divers, le verrouillage et le déverrouillage de " +"ressources, la fermeture de fichiers ouverts, etc." + +#: ../Doc/reference/datamodel.rst:2438 +msgid "" +"For more information on context managers, see :ref:`typecontextmanager`." +msgstr "" +"Pour plus d'informations sur les gestionnaires de contexte, lisez :ref:" +"`typecontextmanager`." + +#: ../Doc/reference/datamodel.rst:2443 +msgid "" +"Enter the runtime context related to this object. The :keyword:`with` " +"statement will bind this method's return value to the target(s) specified in " +"the :keyword:`!as` clause of the statement, if any." +msgstr "" +"Entre dans le contexte d'exécution relatif à cet objet. L'instruction :" +"keyword:`with` lie la valeur de retour de cette méthode à une (ou plusieurs) " +"cible spécifiée par la clause :keyword:`!as` de l'instruction, si elle est " +"spécifiée." + +#: ../Doc/reference/datamodel.rst:2450 +msgid "" +"Exit the runtime context related to this object. The parameters describe the " +"exception that caused the context to be exited. If the context was exited " +"without an exception, all three arguments will be :const:`None`." +msgstr "" +"Sort du contexte d'exécution relatif à cet objet. Les paramètres décrivent " +"l'exception qui a causé la sortie du contexte. Si l'on sort du contexte sans " +"exception, les trois arguments sont à :const:`None`." + +#: ../Doc/reference/datamodel.rst:2454 +msgid "" +"If an exception is supplied, and the method wishes to suppress the exception " +"(i.e., prevent it from being propagated), it should return a true value. " +"Otherwise, the exception will be processed normally upon exit from this " +"method." +msgstr "" +"Si une exception est indiquée et que la méthode souhaite supprimer " +"l'exception (c'est-à-dire qu'elle ne veut pas que l'exception soit " +"propagée), elle doit renvoyer ``True``. Sinon, l'exception est traitée " +"normalement à la sortie de cette méthode." + +#: ../Doc/reference/datamodel.rst:2458 +msgid "" +"Note that :meth:`__exit__` methods should not reraise the passed-in " +"exception; this is the caller's responsibility." +msgstr "" +"Notez qu'une méthode :meth:`__exit__` ne doit pas lever à nouveau " +"l'exception qu'elle reçoit ; c'est du ressort de l'appelant." + +#: ../Doc/reference/datamodel.rst:2465 +msgid ":pep:`343` - The \"with\" statement" +msgstr ":pep:`343` — L'instruction ``with``" + +#: ../Doc/reference/datamodel.rst:2465 +msgid "" +"The specification, background, and examples for the Python :keyword:`with` " +"statement." +msgstr "" +"La spécification, les motivations et des exemples de l'instruction :keyword:" +"`with` en Python." + +#: ../Doc/reference/datamodel.rst:2472 +msgid "Special method lookup" +msgstr "Recherche des méthodes spéciales" + +#: ../Doc/reference/datamodel.rst:2474 +msgid "" +"For custom classes, implicit invocations of special methods are only " +"guaranteed to work correctly if defined on an object's type, not in the " +"object's instance dictionary. That behaviour is the reason why the " +"following code raises an exception::" +msgstr "" +"Pour les classes définies par le développeur, l'invocation implicite de " +"méthodes spéciales n'est garantie que si ces méthodes sont définies par le " +"type d'objet, pas dans le dictionnaire de l'objet instance. Ce comportement " +"explique pourquoi le code suivant lève une exception ::" + +#: ../Doc/reference/datamodel.rst:2489 +msgid "" +"The rationale behind this behaviour lies with a number of special methods " +"such as :meth:`__hash__` and :meth:`__repr__` that are implemented by all " +"objects, including type objects. If the implicit lookup of these methods " +"used the conventional lookup process, they would fail when invoked on the " +"type object itself::" +msgstr "" +"La raison de ce comportement vient de certaines méthodes spéciales telles " +"que :meth:`__hash__` et :meth:`__repr__` qui sont implémentées par tous les " +"objets, y compris les objets types. Si la recherche effectuée par ces " +"méthodes utilisait le processus normal de recherche, elles ne " +"fonctionneraient pas si on les appelait sur l'objet type lui-même ::" + +#: ../Doc/reference/datamodel.rst:2502 +msgid "" +"Incorrectly attempting to invoke an unbound method of a class in this way is " +"sometimes referred to as 'metaclass confusion', and is avoided by bypassing " +"the instance when looking up special methods::" +msgstr "" +"Essayer d'invoquer une méthode non liée d'une classe de cette manière est " +"parfois appelé « confusion de méta-classe » et se contourne en shuntant " +"l'instance lors de la recherche des méthodes spéciales ::" + +#: ../Doc/reference/datamodel.rst:2511 +msgid "" +"In addition to bypassing any instance attributes in the interest of " +"correctness, implicit special method lookup generally also bypasses the :" +"meth:`__getattribute__` method even of the object's metaclass::" +msgstr "" +"En plus de shunter les attributs des instances pour fonctionner " +"correctement, la recherche des méthodes spéciales implicites shunte aussi la " +"méthode :meth:`__getattribute__` même dans la méta-classe de l'objet ::" + +#: ../Doc/reference/datamodel.rst:2537 +msgid "" +"Bypassing the :meth:`__getattribute__` machinery in this fashion provides " +"significant scope for speed optimisations within the interpreter, at the " +"cost of some flexibility in the handling of special methods (the special " +"method *must* be set on the class object itself in order to be consistently " +"invoked by the interpreter)." +msgstr "" +"En shuntant le mécanisme de :meth:`__getattribute__` de cette façon, cela " +"permet d'optimiser la vitesse de l'interpréteur moyennant une certaine " +"manœuvre dans la gestion des méthodes spéciales (la méthode spéciale *doit* " +"être définie sur l'objet classe lui-même afin d'être invoquée de manière " +"cohérente par l'interpréteur)." + +#: ../Doc/reference/datamodel.rst:2548 +msgid "Coroutines" +msgstr "Coroutines" + +#: ../Doc/reference/datamodel.rst:2552 +msgid "Awaitable Objects" +msgstr "Objets *attendables* (*awaitables*)" + +#: ../Doc/reference/datamodel.rst:2554 +msgid "" +"An :term:`awaitable` object generally implements an :meth:`__await__` " +"method. :term:`Coroutine` objects returned from :keyword:`async def` " +"functions are awaitable." +msgstr "" +"Un objet :term:`awaitable` implémente généralement une méthode :meth:" +"`__await__`. Les objets :term:`Coroutine` renvoyés par les fonctions :" +"keyword:`async def` sont des *awaitables*." + +#: ../Doc/reference/datamodel.rst:2560 +msgid "" +"The :term:`generator iterator` objects returned from generators decorated " +"with :func:`types.coroutine` or :func:`asyncio.coroutine` are also " +"awaitable, but they do not implement :meth:`__await__`." +msgstr "" +"Les objets :term:`itérateur de générateur` renvoyés par les générateurs " +"décorés par :func:`types.coroutine` ou :func:`asyncio.coroutine` sont aussi " +"des *awaitables*, mais ils n'implémentent pas :meth:`__await__`." + +#: ../Doc/reference/datamodel.rst:2566 +msgid "" +"Must return an :term:`iterator`. Should be used to implement :term:" +"`awaitable` objects. For instance, :class:`asyncio.Future` implements this " +"method to be compatible with the :keyword:`await` expression." +msgstr "" +"Doit renvoyer un :term:`itérateur`. Doit être utilisé pour implémenter les " +"objets :term:`awaitable`. Par exemple, :class:`asyncio.Future` implémente " +"cette méthode pour être compatible avec les expressions :keyword:`await`." + +#: ../Doc/reference/datamodel.rst:2572 +msgid ":pep:`492` for additional information about awaitable objects." +msgstr ":pep:`492` pour les informations relatives aux objets *awaitables*." + +#: ../Doc/reference/datamodel.rst:2578 +msgid "Coroutine Objects" +msgstr "Objets coroutines" + +#: ../Doc/reference/datamodel.rst:2580 +msgid "" +":term:`Coroutine` objects are :term:`awaitable` objects. A coroutine's " +"execution can be controlled by calling :meth:`__await__` and iterating over " +"the result. When the coroutine has finished executing and returns, the " +"iterator raises :exc:`StopIteration`, and the exception's :attr:" +"`~StopIteration.value` attribute holds the return value. If the coroutine " +"raises an exception, it is propagated by the iterator. Coroutines should " +"not directly raise unhandled :exc:`StopIteration` exceptions." +msgstr "" +"Les objets :term:`Coroutine` sont des objets :term:`awaitable`. L'exécution " +"d'une coroutine peut être contrôlée en appelant :meth:`__await__` et en " +"itérant sur le résultat. Quand la coroutine a fini de s'exécuter et termine, " +"l'itérateur lève :exc:`StopIteration` et l'attribut :attr:`~StopIteration." +"value` de l'exception contient la valeur de retour. Si la coroutine lève une " +"exception, elle est propagée par l'itérateur. Les coroutines ne doivent pas " +"lever directement des exceptions :exc:`StopIteration` non gérées." + +#: ../Doc/reference/datamodel.rst:2588 +msgid "" +"Coroutines also have the methods listed below, which are analogous to those " +"of generators (see :ref:`generator-methods`). However, unlike generators, " +"coroutines do not directly support iteration." +msgstr "" +"Les coroutines disposent aussi des méthodes listées ci-dessous, analogues à " +"celles des générateurs (voir :ref:`generator-methods`). Cependant, au " +"contraire des générateurs, vous ne pouvez pas itérer directement sur des " +"coroutines." + +#: ../Doc/reference/datamodel.rst:2592 +msgid "It is a :exc:`RuntimeError` to await on a coroutine more than once." +msgstr "" +"Utiliser *await* plus d'une fois sur une coroutine lève une :exc:" +"`RuntimeError`." + +#: ../Doc/reference/datamodel.rst:2598 +msgid "" +"Starts or resumes execution of the coroutine. If *value* is ``None``, this " +"is equivalent to advancing the iterator returned by :meth:`__await__`. If " +"*value* is not ``None``, this method delegates to the :meth:`~generator." +"send` method of the iterator that caused the coroutine to suspend. The " +"result (return value, :exc:`StopIteration`, or other exception) is the same " +"as when iterating over the :meth:`__await__` return value, described above." +msgstr "" +"Démarre ou reprend l'exécution d'une coroutine. Si *value* est ``None``, " +"c'est équivalent à avancer l'itérateur renvoyé par :meth:`__await__`. Si " +"*value* ne vaut pas ``None``, cette méthode appelle la méthode :meth:" +"`~generator.send` de l'itérateur qui a causé la suspension de la coroutine. " +"Le résultat (valeur de retour, :exc:`StopIteration` ou une autre exception) " +"est le même que lorsque vous itérez sur la valeur de retour de :meth:" +"`__await__`, décrite ci-dessus." + +#: ../Doc/reference/datamodel.rst:2608 +msgid "" +"Raises the specified exception in the coroutine. This method delegates to " +"the :meth:`~generator.throw` method of the iterator that caused the " +"coroutine to suspend, if it has such a method. Otherwise, the exception is " +"raised at the suspension point. The result (return value, :exc:" +"`StopIteration`, or other exception) is the same as when iterating over the :" +"meth:`__await__` return value, described above. If the exception is not " +"caught in the coroutine, it propagates back to the caller." +msgstr "" +"Lève l'exception spécifiée dans la coroutine. Cette méthode délègue à la " +"méthode :meth:`~generator.throw` de l'itérateur qui a causé la suspension de " +"la coroutine, s'il possède une telle méthode. Sinon, l'exception est levée " +"au point de suspension. Le résultat (valeur de retour, :exc:`StopIteration` " +"ou une autre exception) est le même que lorsque vous itérez sur la valeur de " +"retour de :meth:`__await__`, décrite ci-dessus. Si l'exception n'est pas " +"gérée par la coroutine, elle est propagée à l'appelant." + +#: ../Doc/reference/datamodel.rst:2619 +msgid "" +"Causes the coroutine to clean itself up and exit. If the coroutine is " +"suspended, this method first delegates to the :meth:`~generator.close` " +"method of the iterator that caused the coroutine to suspend, if it has such " +"a method. Then it raises :exc:`GeneratorExit` at the suspension point, " +"causing the coroutine to immediately clean itself up. Finally, the coroutine " +"is marked as having finished executing, even if it was never started." +msgstr "" +"Demande à la coroutine de faire le ménage et de se terminer. Si la coroutine " +"est suspendue, cette méthode délègue d'abord à la méthode :meth:`~generator." +"close` de l'itérateur qui a causé la suspension de la coroutine, s'il " +"possède une telle méthode. Ensuite, elle lève :exc:`GeneratorExit` au point " +"de suspension, ce qui fait le ménage dans la coroutine immédiatement. Enfin, " +"la coroutine est marquée comme ayant terminé son exécution, même si elle n'a " +"jamais démarré." + +#: ../Doc/reference/datamodel.rst:2627 +msgid "" +"Coroutine objects are automatically closed using the above process when they " +"are about to be destroyed." +msgstr "" +"Les objets coroutines sont automatiquement fermés en utilisant le processus " +"décrit au-dessus au moment où ils sont détruits." + +#: ../Doc/reference/datamodel.rst:2633 +msgid "Asynchronous Iterators" +msgstr "Itérateurs asynchrones" + +#: ../Doc/reference/datamodel.rst:2635 +msgid "" +"An *asynchronous iterator* can call asynchronous code in its ``__anext__`` " +"method." +msgstr "" +"Un *itérateur asynchrone* peut appeler du code asynchrone dans sa méthode " +"``__anext__``." + +#: ../Doc/reference/datamodel.rst:2638 +msgid "" +"Asynchronous iterators can be used in an :keyword:`async for` statement." +msgstr "" +"Les itérateurs asynchrones peuvent être utilisés dans des instructions :" +"keyword:`async for`." + +#: ../Doc/reference/datamodel.rst:2642 +msgid "Must return an *asynchronous iterator* object." +msgstr "Doit renvoyer un objet *itérateur asynchrone*." + +#: ../Doc/reference/datamodel.rst:2646 +msgid "" +"Must return an *awaitable* resulting in a next value of the iterator. " +"Should raise a :exc:`StopAsyncIteration` error when the iteration is over." +msgstr "" +"Doit renvoyer un *awaitable* qui se traduit par la valeur suivante de " +"l'itérateur. Doit lever une :exc:`StopAsyncIteration` quand l'itération est " +"terminée." + +#: ../Doc/reference/datamodel.rst:2649 +msgid "An example of an asynchronous iterable object::" +msgstr "Un exemple d'objet itérateur asynchrone ::" + +#: ../Doc/reference/datamodel.rst:2666 +msgid "" +"Prior to Python 3.7, ``__aiter__`` could return an *awaitable* that would " +"resolve to an :term:`asynchronous iterator `." +msgstr "" +"Avant Python 3.7, ``__aiter__`` pouvait renvoyer un *awaitable* qui se " +"résolvait potentiellement en un :term:`itérateur asynchrone `." + +#: ../Doc/reference/datamodel.rst:2671 +msgid "" +"Starting with Python 3.7, ``__aiter__`` must return an asynchronous iterator " +"object. Returning anything else will result in a :exc:`TypeError` error." +msgstr "" +"À partir de Python 3.7, ``__aiter__`` doit renvoyer un objet itérateur " +"asynchrone. Renvoyer autre chose entraine une erreur :exc:`TypeError`." + +#: ../Doc/reference/datamodel.rst:2679 +msgid "Asynchronous Context Managers" +msgstr "Gestionnaires de contexte asynchrones" + +#: ../Doc/reference/datamodel.rst:2681 +msgid "" +"An *asynchronous context manager* is a *context manager* that is able to " +"suspend execution in its ``__aenter__`` and ``__aexit__`` methods." +msgstr "" +"Un *gestionnaire de contexte asynchrone* est un *gestionnaire de contexte* " +"qui est capable de suspendre son exécution dans ses méthodes ``__aenter__`` " +"et ``__aexit__``." + +#: ../Doc/reference/datamodel.rst:2684 +msgid "" +"Asynchronous context managers can be used in an :keyword:`async with` " +"statement." +msgstr "" +"Les gestionnaires de contexte asynchrones peuvent être utilisés dans des " +"instructions :keyword:`async with`." + +#: ../Doc/reference/datamodel.rst:2688 +msgid "" +"This method is semantically similar to the :meth:`__enter__`, with only " +"difference that it must return an *awaitable*." +msgstr "" +"Cette méthode est sémantiquement équivalente à :meth:`__enter__`, à la seule " +"différence près qu'elle doit renvoyer un *awaitable*." + +#: ../Doc/reference/datamodel.rst:2693 +msgid "" +"This method is semantically similar to the :meth:`__exit__`, with only " +"difference that it must return an *awaitable*." +msgstr "" +"Cette méthode est sémantiquement équivalente à :meth:`__exit__`, à la seule " +"différence près qu'elle doit renvoyer un *awaitable*." + +#: ../Doc/reference/datamodel.rst:2696 +msgid "An example of an asynchronous context manager class::" +msgstr "Un exemple de classe de gestionnaire de contexte asynchrone ::" + +#: ../Doc/reference/datamodel.rst:2709 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/reference/datamodel.rst:2710 +msgid "" +"It *is* possible in some cases to change an object's type, under certain " +"controlled conditions. It generally isn't a good idea though, since it can " +"lead to some very strange behaviour if it is handled incorrectly." +msgstr "" +"Il *est* possible, dans certains cas, de changer le type d'un objet, sous " +"certaines conditions. Cependant, ce n'est généralement pas une bonne idée " +"car cela peut conduire à un comportement très étrange si ce n'est pas géré " +"correctement." + +#: ../Doc/reference/datamodel.rst:2714 +msgid "" +"The :meth:`__hash__`, :meth:`__iter__`, :meth:`__reversed__`, and :meth:" +"`__contains__` methods have special handling for this; others will still " +"raise a :exc:`TypeError`, but may do so by relying on the behavior that " +"``None`` is not callable." +msgstr "" +"Les méthodes :meth:`__hash__`, :meth:`__iter__`, :meth:`__reversed__` et :" +"meth:`__contains__` ont une gestion particulière pour cela ; les autres " +"lèvent toujours :exc:`TypeError`, mais le font en considérant que ``None`` " +"n'est pas un appelable." + +#: ../Doc/reference/datamodel.rst:2719 +msgid "" +"\"Does not support\" here means that the class has no such method, or the " +"method returns ``NotImplemented``. Do not set the method to ``None`` if you " +"want to force fallback to the right operand's reflected method—that will " +"instead have the opposite effect of explicitly *blocking* such fallback." +msgstr "" +"*n'autorise pas* signifie ici que la classe ne possède pas de méthode " +"adéquate ou que la méthode renvoie ``NotImplemented``. N'assignez pas " +"``None`` à la méthode si vous voulez un repli vers la méthode symétrique de " +"l'opérande de droite — cela aurait pour effet de *bloquer* un tel repli." + +#: ../Doc/reference/datamodel.rst:2725 +msgid "" +"For operands of the same type, it is assumed that if the non-reflected " +"method (such as :meth:`__add__`) fails the operation is not supported, which " +"is why the reflected method is not called." +msgstr "" +"Pour des opérandes de même type, on considère que si la méthode originelle " +"(telle que :meth:`__add__`) échoue, l'opération n'est pas autorisée et donc " +"la méthode symétrique n'est pas appelée." + +#~ msgid "Metaclass example" +#~ msgstr "Exemple de méta-classe" + +#~ msgid "" +#~ "Here is an example of a metaclass that uses an :class:`collections." +#~ "OrderedDict` to remember the order that class variables are defined::" +#~ msgstr "" +#~ "Voici un exemple de méta-classe qui utilise une :class:`collections." +#~ "OrderedDict` pour mémoriser l'ordre dans lequel les variables de classe " +#~ "sont définies ::" + +#~ msgid "" +#~ "When the class definition for *A* gets executed, the process begins with " +#~ "calling the metaclass's :meth:`__prepare__` method which returns an " +#~ "empty :class:`collections.OrderedDict`. That mapping records the methods " +#~ "and attributes of *A* as they are defined within the body of the class " +#~ "statement. Once those definitions are executed, the ordered dictionary is " +#~ "fully populated and the metaclass's :meth:`__new__` method gets invoked. " +#~ "That method builds the new type and it saves the ordered dictionary keys " +#~ "in an attribute called ``members``." +#~ msgstr "" +#~ "Quand la définition de la classe *A* s'exécute, le processus commence par " +#~ "appeler la méthode :meth:`__prepare__` de la méta-classe qui renvoie un :" +#~ "class:`collections.OrderedDict` vide. Ce tableau de correspondances " +#~ "enregistre les méthodes et attributs de *A* au fur et à mesure de leurs " +#~ "définitions dans les instructions du corps de la classe. Une fois que ces " +#~ "définitions ont été exécutées, le dictionnaire ordonné est complètement " +#~ "peuplé et la méthode :meth:`__new__` de la méta-classe est appelée. Cette " +#~ "méthode construit un nouveau type et sauve les clés du dictionnaire " +#~ "ordonné dans un attribut appelé ``members``." diff --git a/reference/executionmodel.po b/reference/executionmodel.po new file mode 100644 index 000000000..e8356ab1a --- /dev/null +++ b/reference/executionmodel.po @@ -0,0 +1,456 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 21:53+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/reference/executionmodel.rst:6 +msgid "Execution model" +msgstr "Modèle d'exécution" + +#: ../Doc/reference/executionmodel.rst:15 +msgid "Structure of a program" +msgstr "Structure d'un programme" + +#: ../Doc/reference/executionmodel.rst:19 +msgid "" +"A Python program is constructed from code blocks. A :dfn:`block` is a piece " +"of Python program text that is executed as a unit. The following are blocks: " +"a module, a function body, and a class definition. Each command typed " +"interactively is a block. A script file (a file given as standard input to " +"the interpreter or specified as a command line argument to the interpreter) " +"is a code block. A script command (a command specified on the interpreter " +"command line with the :option:`-c` option) is a code block. The string " +"argument passed to the built-in functions :func:`eval` and :func:`exec` is a " +"code block." +msgstr "" +"Un programme Python est construit à partir de blocs de code. Un :dfn:`block` " +"est un morceau de texte de programme Python qui est exécuté en tant " +"qu'unité. Les éléments suivants sont des blocs : un module, un corps de " +"fonction et une définition de classe. Chaque commande écrite dans " +"l'interpréteur interactif de Python est un bloc. Un fichier de script (un " +"fichier donné en entrée standard à l'interpréteur ou spécifié en tant " +"qu'argument de ligne de commande à l'interpréteur) est un bloc de code. Une " +"commande de script (une commande spécifiée sur la ligne de commande de " +"l'interpréteur avec l'option :option:`-c`) est un bloc de code. La chaîne " +"passée en argument aux fonctions natives :func:`eval` et :func:`exec` est un " +"bloc de code." + +#: ../Doc/reference/executionmodel.rst:31 +msgid "" +"A code block is executed in an :dfn:`execution frame`. A frame contains " +"some administrative information (used for debugging) and determines where " +"and how execution continues after the code block's execution has completed." +msgstr "" +"Un bloc de code est exécuté dans un :dfn:`cadre d'exécution`. Un cadre " +"contient des informations administratives (utilisées pour le débogage) et " +"détermine où et comment l'exécution se poursuit après la fin de l'exécution " +"du bloc de code." + +#: ../Doc/reference/executionmodel.rst:38 +msgid "Naming and binding" +msgstr "Noms et liaisons" + +#: ../Doc/reference/executionmodel.rst:47 +msgid "Binding of names" +msgstr "Liaisons des noms" + +#: ../Doc/reference/executionmodel.rst:53 +msgid "" +":dfn:`Names` refer to objects. Names are introduced by name binding " +"operations." +msgstr "" +"Les :dfn:`noms` sont des références aux objets. Ils sont créés lors des " +"opérations de liaisons de noms (*name binding* en anglais)." + +#: ../Doc/reference/executionmodel.rst:57 +msgid "" +"The following constructs bind names: formal parameters to functions, :" +"keyword:`import` statements, class and function definitions (these bind the " +"class or function name in the defining block), and targets that are " +"identifiers if occurring in an assignment, :keyword:`for` loop header, or " +"after :keyword:`!as` in a :keyword:`with` statement or :keyword:`except` " +"clause. The :keyword:`!import` statement of the form ``from ... import *`` " +"binds all names defined in the imported module, except those beginning with " +"an underscore. This form may only be used at the module level." +msgstr "" +"Les constructions suivantes conduisent à des opérations de liaison à des " +"noms : les paramètres formels d'une fonction, les instructions :keyword:" +"`import`, les définitions de fonctions et de classes (le nom de la classe ou " +"de la fonction est lié au bloc qui la définit) et les cibles qui sont des " +"identifiants dans les assignations, les entêtes de boucles :keyword:`for` ou " +"après :keyword:`!as` dans une instruction :keyword:`with` ou une clause :" +"keyword:`except`. L'instruction :keyword:`!import` sous la forme ``from ... " +"import *`` lie tous les noms définis dans le module importé, sauf ceux qui " +"commencent par un tiret bas (`'_'`). Cette forme ne doit être utilisée qu'au " +"niveau du module." + +#: ../Doc/reference/executionmodel.rst:67 +msgid "" +"A target occurring in a :keyword:`del` statement is also considered bound " +"for this purpose (though the actual semantics are to unbind the name)." +msgstr "" +"Une cible qui apparaît dans une instruction :keyword:`del` est aussi " +"considérée comme une liaison à un nom dans ce cadre (bien que la sémantique " +"véritable soit de délier le nom)." + +#: ../Doc/reference/executionmodel.rst:70 +msgid "" +"Each assignment or import statement occurs within a block defined by a class " +"or function definition or at the module level (the top-level code block)." +msgstr "" +"Chaque assignation ou instruction *import* a lieu dans un bloc défini par " +"une définition de classe ou de fonction ou au niveau du module (le bloc de " +"code de plus haut niveau)." + +#: ../Doc/reference/executionmodel.rst:75 +msgid "" +"If a name is bound in a block, it is a local variable of that block, unless " +"declared as :keyword:`nonlocal` or :keyword:`global`. If a name is bound at " +"the module level, it is a global variable. (The variables of the module " +"code block are local and global.) If a variable is used in a code block but " +"not defined there, it is a :dfn:`free variable`." +msgstr "" +"Si un nom est lié dans un bloc, c'est une variable locale de ce bloc, à " +"moins qu'il ne soit déclaré :keyword:`nonlocal` ou :keyword:`global`. Si un " +"nom est lié au niveau du module, c'est une variable globale (les variables " +"du bloc de code de niveau module sont locales et globales). Si une variable " +"est utilisée dans un bloc de code alors qu'elle n'y est pas définie, c'est " +"une :dfn:`variable libre`." + +#: ../Doc/reference/executionmodel.rst:81 +msgid "" +"Each occurrence of a name in the program text refers to the :dfn:`binding` " +"of that name established by the following name resolution rules." +msgstr "" +"Chaque occurrence d'un nom dans un programme fait référence à la :dfn:" +"`liaison` de ce nom établie par les règles de résolution des noms suivantes." + +#: ../Doc/reference/executionmodel.rst:87 +msgid "Resolution of names" +msgstr "Résolution des noms" + +#: ../Doc/reference/executionmodel.rst:91 +msgid "" +"A :dfn:`scope` defines the visibility of a name within a block. If a local " +"variable is defined in a block, its scope includes that block. If the " +"definition occurs in a function block, the scope extends to any blocks " +"contained within the defining one, unless a contained block introduces a " +"different binding for the name." +msgstr "" +"La :dfn:`portée` définit la visibilité d'un nom dans un bloc. Si une " +"variable locale est définie dans un bloc, sa portée comprend ce bloc. Si la " +"définition intervient dans le bloc d'une fonction, la portée s'étend à tous " +"les blocs contenus dans celui qui comprend la définition, à moins qu'un bloc " +"intérieur ne définisse une autre liaison pour ce nom." + +#: ../Doc/reference/executionmodel.rst:99 +msgid "" +"When a name is used in a code block, it is resolved using the nearest " +"enclosing scope. The set of all such scopes visible to a code block is " +"called the block's :dfn:`environment`." +msgstr "" +"Quand un nom est utilisé dans un bloc de code, la résolution utilise la " +"portée la plus petite. L'ensemble de toutes les portées visibles dans un " +"bloc de code s'appelle :dfn:`l'environnement` du bloc." + +#: ../Doc/reference/executionmodel.rst:107 +msgid "" +"When a name is not found at all, a :exc:`NameError` exception is raised. If " +"the current scope is a function scope, and the name refers to a local " +"variable that has not yet been bound to a value at the point where the name " +"is used, an :exc:`UnboundLocalError` exception is raised. :exc:" +"`UnboundLocalError` is a subclass of :exc:`NameError`." +msgstr "" +"Quand un nom n'est trouvé nulle part, une exception :exc:`NameError` est " +"levée. Si la portée courante est celle d'une fonction et que le nom fait " +"référence à une variable locale qui n'a pas encore été liée au moment où le " +"nom est utilisé, une exception :exc:`UnboundLocalError` est levée. :exc:" +"`UnboundLocalError` est une sous-classe de :exc:`NameError`." + +#: ../Doc/reference/executionmodel.rst:113 +msgid "" +"If a name binding operation occurs anywhere within a code block, all uses of " +"the name within the block are treated as references to the current block. " +"This can lead to errors when a name is used within a block before it is " +"bound. This rule is subtle. Python lacks declarations and allows name " +"binding operations to occur anywhere within a code block. The local " +"variables of a code block can be determined by scanning the entire text of " +"the block for name binding operations." +msgstr "" +"Si une opération de liaison intervient dans un bloc de code, toutes les " +"utilisations du nom dans le bloc sont considérées comme des références au " +"bloc courant. Ceci peut conduire à des erreurs quand un nom est utilisé à " +"l'intérieur d'un bloc avant d'être lié. La règle est subtile. Python " +"n'attend pas de déclaration de variables et autorise les opérations de " +"liaison n'importe où dans un bloc de code. Les variables locales d'un bloc " +"de code peuvent être déterminées en parcourant tout le texte du bloc à la " +"recherche des opérations de liaisons." + +#: ../Doc/reference/executionmodel.rst:120 +msgid "" +"If the :keyword:`global` statement occurs within a block, all uses of the " +"name specified in the statement refer to the binding of that name in the top-" +"level namespace. Names are resolved in the top-level namespace by searching " +"the global namespace, i.e. the namespace of the module containing the code " +"block, and the builtins namespace, the namespace of the module :mod:" +"`builtins`. The global namespace is searched first. If the name is not " +"found there, the builtins namespace is searched. The :keyword:`!global` " +"statement must precede all uses of the name." +msgstr "" +"Si l'instruction :keyword:`global` apparaît dans un bloc, toutes les " +"utilisations du nom spécifié dans l'instruction font référence à la liaison " +"de ce nom dans l'espace de nommage de plus haut niveau. Les noms sont " +"résolus dans cet espace de nommage de plus haut niveau en recherchant " +"l'espace des noms globaux, c'est-à-dire l'espace de nommage du module " +"contenant le bloc de code ainsi que dans l'espace de nommage natif, celui du " +"module :mod:`builtins`. La recherche commence dans l'espace de nommage " +"globaux. Si le nom n'y est pas trouvé, la recherche se poursuit dans " +"l'espace de nommage natif. L'instruction :keyword:`!global` doit précéder " +"toute utilisation du nom considéré." + +#: ../Doc/reference/executionmodel.rst:129 +msgid "" +"The :keyword:`global` statement has the same scope as a name binding " +"operation in the same block. If the nearest enclosing scope for a free " +"variable contains a global statement, the free variable is treated as a " +"global." +msgstr "" +"L'instruction :keyword:`global` a la même porte qu'une opération de liaison " +"du même bloc. Si la portée englobante la plus petite pour une variable libre " +"contient une instruction *global*, la variable libre est considérée globale." + +#: ../Doc/reference/executionmodel.rst:135 +msgid "" +"The :keyword:`nonlocal` statement causes corresponding names to refer to " +"previously bound variables in the nearest enclosing function scope. :exc:" +"`SyntaxError` is raised at compile time if the given name does not exist in " +"any enclosing function scope." +msgstr "" +"L'instruction :keyword:`nonlocal` fait que les noms correspondants font " +"référence aux variables liées précédemment dans la portée de fonction " +"englobante la plus petite possible. :exc:`SyntaxError` est levée à la " +"compilation si le nom donné n'existe dans aucune portée de fonction " +"englobante." + +#: ../Doc/reference/executionmodel.rst:142 +msgid "" +"The namespace for a module is automatically created the first time a module " +"is imported. The main module for a script is always called :mod:`__main__`." +msgstr "" +"L'espace de nommage pour un module est créé automatiquement la première fois " +"que le module est importé. Le module principal d'un script s'appelle " +"toujours :mod:`__main__`." + +#: ../Doc/reference/executionmodel.rst:145 +msgid "" +"Class definition blocks and arguments to :func:`exec` and :func:`eval` are " +"special in the context of name resolution. A class definition is an " +"executable statement that may use and define names. These references follow " +"the normal rules for name resolution with an exception that unbound local " +"variables are looked up in the global namespace. The namespace of the class " +"definition becomes the attribute dictionary of the class. The scope of names " +"defined in a class block is limited to the class block; it does not extend " +"to the code blocks of methods -- this includes comprehensions and generator " +"expressions since they are implemented using a function scope. This means " +"that the following will fail::" +msgstr "" +"Les blocs de définition de classe et les arguments de :func:`exec` ainsi " +"que :func:`eval` sont traités de manière spéciale dans le cadre de la " +"résolution des noms. Une définition de classe est une instruction exécutable " +"qui peut utiliser et définir des noms. Toutes ces références suivent les " +"règles normales de la résolution des noms à l'exception des variables " +"locales non liées qui sont recherchées dans l'espace des noms globaux. " +"L'espace de nommage de la définition de classe devient le dictionnaire des " +"attributs de la classe. La portée des noms définis dans un bloc de classe " +"est limitée au bloc de la classe ; elle ne s'étend pas aux blocs de code des " +"méthodes — y compris les compréhensions et les expressions générateurs " +"puisque celles-ci sont implémentées en utilisant une portée de fonction. " +"Ainsi, les instructions suivantes échouent ::" + +#: ../Doc/reference/executionmodel.rst:163 +msgid "Builtins and restricted execution" +msgstr "Noms natifs et restrictions d'exécution" + +#: ../Doc/reference/executionmodel.rst:169 +msgid "" +"Users should not touch ``__builtins__``; it is strictly an implementation " +"detail. Users wanting to override values in the builtins namespace should :" +"keyword:`import` the :mod:`builtins` module and modify its attributes " +"appropriately." +msgstr "" +"L'utilisateur ne doit pas toucher à ``__builtins__`` ; c'est et cela doit " +"rester réservé aux besoins de l'implémentation. Les utilisateurs qui " +"souhaitent surcharger des valeurs dans l'espace de nommage natif doivent :" +"keyword:`importer ` le module :mod:`builtins` et modifier ses " +"attributs judicieusement." + +#: ../Doc/reference/executionmodel.rst:174 +msgid "" +"The builtins namespace associated with the execution of a code block is " +"actually found by looking up the name ``__builtins__`` in its global " +"namespace; this should be a dictionary or a module (in the latter case the " +"module's dictionary is used). By default, when in the :mod:`__main__` " +"module, ``__builtins__`` is the built-in module :mod:`builtins`; when in any " +"other module, ``__builtins__`` is an alias for the dictionary of the :mod:" +"`builtins` module itself." +msgstr "" +"L'espace de nommage natif associé à l'exécution d'un bloc de code est " +"effectivement trouvé en cherchant le nom ``__builtins__`` dans l'espace de " +"nommage globaux ; ce doit être un dictionnaire ou un module (dans ce dernier " +"cas, le dictionnaire du module est utilisé). Par défaut, lorsque l'on se " +"trouve dans le module :mod:`__main__`, ``__builtins__`` est le module natif :" +"mod:`builtins` ; lorsque l'on se trouve dans tout autre module, " +"``__builtins__`` est un pseudonyme du dictionnaire du module :mod:`builtins` " +"lui-même." + +#: ../Doc/reference/executionmodel.rst:186 +msgid "Interaction with dynamic features" +msgstr "Interaction avec les fonctionnalités dynamiques" + +#: ../Doc/reference/executionmodel.rst:188 +msgid "" +"Name resolution of free variables occurs at runtime, not at compile time. " +"This means that the following code will print 42::" +msgstr "" +"La résolution des noms de variables libres intervient à l'exécution, pas à " +"la compilation. Cela signifie que le code suivant affiche 42 ::" + +#: ../Doc/reference/executionmodel.rst:199 +msgid "" +"The :func:`eval` and :func:`exec` functions do not have access to the full " +"environment for resolving names. Names may be resolved in the local and " +"global namespaces of the caller. Free variables are not resolved in the " +"nearest enclosing namespace, but in the global namespace. [#]_ The :func:" +"`exec` and :func:`eval` functions have optional arguments to override the " +"global and local namespace. If only one namespace is specified, it is used " +"for both." +msgstr "" +"Les fonctions :func:`eval` et :func:`exec` n'ont pas accès à l'environnement " +"complet pour résoudre les noms. Les noms doivent être résolus dans les " +"espaces de nommage locaux et globaux de l'appelant. Les variables libres ne " +"sont pas résolues dans l'espace de nommage englobant le plus proche mais " +"dans l'espace de nommage globaux [#]_. Les fonctions :func:`eval` et :func:" +"`exec` possèdent des arguments optionnels pour surcharger les espaces de " +"nommage globaux et locaux. Si seulement un espace de nommage est spécifié, " +"il est utilisé pour les deux." + +#: ../Doc/reference/executionmodel.rst:210 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/reference/executionmodel.rst:221 +msgid "" +"Exceptions are a means of breaking out of the normal flow of control of a " +"code block in order to handle errors or other exceptional conditions. An " +"exception is *raised* at the point where the error is detected; it may be " +"*handled* by the surrounding code block or by any code block that directly " +"or indirectly invoked the code block where the error occurred." +msgstr "" +"Les exceptions sont un moyen de sortir du flot normal d'exécution d'un bloc " +"de code de manière à gérer des erreurs ou des conditions exceptionnelles. " +"Une exception est *levée* au moment où l'erreur est détectée ; elle doit " +"être *gérée* par le bloc de code qui l'entoure ou par tout bloc de code qui " +"a, directement ou indirectement, invoqué le bloc de code où l'erreur s'est " +"produite." + +#: ../Doc/reference/executionmodel.rst:227 +msgid "" +"The Python interpreter raises an exception when it detects a run-time error " +"(such as division by zero). A Python program can also explicitly raise an " +"exception with the :keyword:`raise` statement. Exception handlers are " +"specified with the :keyword:`try` ... :keyword:`except` statement. The :" +"keyword:`finally` clause of such a statement can be used to specify cleanup " +"code which does not handle the exception, but is executed whether an " +"exception occurred or not in the preceding code." +msgstr "" +"L'interpréteur Python lève une exception quand il détecte une erreur à " +"l'exécution (telle qu'une division par zéro). Un programme Python peut aussi " +"lever explicitement une exception avec l'instruction :keyword:`raise`. Les " +"gestionnaires d'exception sont spécifiés avec l'instruction :keyword:`try` " +"… :keyword:`except`. La clause :keyword:`finally` d'une telle instruction " +"peut être utilisée pour spécifier un code de nettoyage qui ne gère pas " +"l'exception mais qui est exécuté quoi qu'il arrive (exception ou pas)." + +#: ../Doc/reference/executionmodel.rst:237 +msgid "" +"Python uses the \"termination\" model of error handling: an exception " +"handler can find out what happened and continue execution at an outer level, " +"but it cannot repair the cause of the error and retry the failing operation " +"(except by re-entering the offending piece of code from the top)." +msgstr "" +"Python utilise le modèle par *terminaison* de gestion des erreurs : un " +"gestionnaire d'exception peut trouver ce qui est arrivé et continuer " +"l'exécution à un niveau plus élevé, mais il ne peut pas réparer l'origine de " +"l'erreur et ré-essayer l'opération qui a échoué (sauf à entrer à nouveau " +"dans le code en question par le haut)." + +#: ../Doc/reference/executionmodel.rst:244 +msgid "" +"When an exception is not handled at all, the interpreter terminates " +"execution of the program, or returns to its interactive main loop. In " +"either case, it prints a stack traceback, except when the exception is :exc:" +"`SystemExit`." +msgstr "" +"Quand une exception n'est pas du tout gérée, l'interpréteur termine " +"l'exécution du programme ou retourne à la boucle interactive. Dans ces cas, " +"il affiche une trace de la pile d'appels, sauf si l'exception est :exc:" +"`SystemExit`." + +#: ../Doc/reference/executionmodel.rst:248 +msgid "" +"Exceptions are identified by class instances. The :keyword:`except` clause " +"is selected depending on the class of the instance: it must reference the " +"class of the instance or a base class thereof. The instance can be received " +"by the handler and can carry additional information about the exceptional " +"condition." +msgstr "" +"Les exceptions sont identifiées par des instances de classe. La clause :" +"keyword:`except` sélectionnée dépend de la classe de l'instance : elle doit " +"faire référence à la classe de l'instance ou à une de ses classes ancêtres. " +"L'instance peut être transmise au gestionnaire et peut apporter des " +"informations complémentaires sur les conditions de l'exception." + +#: ../Doc/reference/executionmodel.rst:255 +msgid "" +"Exception messages are not part of the Python API. Their contents may " +"change from one version of Python to the next without warning and should not " +"be relied on by code which will run under multiple versions of the " +"interpreter." +msgstr "" +"Les messages d'exception ne font pas partie de l'API Python. Leur contenu " +"peut changer d'une version de Python à une autre sans avertissement et le " +"code ne doit pas reposer sur ceux-ci s'il doit fonctionner sur plusieurs " +"versions de l'interpréteur." + +#: ../Doc/reference/executionmodel.rst:259 +msgid "" +"See also the description of the :keyword:`try` statement in section :ref:" +"`try` and :keyword:`raise` statement in section :ref:`raise`." +msgstr "" +"Reportez-vous aussi aux descriptions de l'instruction :keyword:`try` dans la " +"section :ref:`try` et de l'instruction :keyword:`raise` dans la section :ref:" +"`raise`." + +#: ../Doc/reference/executionmodel.rst:264 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/reference/executionmodel.rst:265 +msgid "" +"This limitation occurs because the code that is executed by these operations " +"is not available at the time the module is compiled." +msgstr "" +"En effet, le code qui est exécuté par ces opérations n'est pas connu au " +"moment où le module est compilé." diff --git a/reference/expressions.po b/reference/expressions.po new file mode 100644 index 000000000..36b270103 --- /dev/null +++ b/reference/expressions.po @@ -0,0 +1,3022 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-06-19 21:43+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/reference/expressions.rst:6 +msgid "Expressions" +msgstr "Expressions" + +#: ../Doc/reference/expressions.rst:10 +msgid "" +"This chapter explains the meaning of the elements of expressions in Python." +msgstr "" +"Ce chapitre explique la signification des éléments des expressions en Python." + +#: ../Doc/reference/expressions.rst:12 +msgid "" +"**Syntax Notes:** In this and the following chapters, extended BNF notation " +"will be used to describe syntax, not lexical analysis. When (one " +"alternative of) a syntax rule has the form" +msgstr "" +"**Notes sur la syntaxe :** dans ce chapitre et le suivant, nous utilisons la " +"notation BNF étendue pour décrire la syntaxe, pas l'analyse lexicale. Quand " +"une règle de syntaxe est de la forme" + +#: ../Doc/reference/expressions.rst:19 +msgid "" +"and no semantics are given, the semantics of this form of ``name`` are the " +"same as for ``othername``." +msgstr "" +"et qu'aucune sémantique n'est donnée, la sémantique de ``name`` est la même " +"que celle de ``othername``." + +#: ../Doc/reference/expressions.rst:26 +msgid "Arithmetic conversions" +msgstr "Conversions arithmétiques" + +#: ../Doc/reference/expressions.rst:30 +msgid "" +"When a description of an arithmetic operator below uses the phrase \"the " +"numeric arguments are converted to a common type,\" this means that the " +"operator implementation for built-in types works as follows:" +msgstr "" +"Quand la description d'un opérateur arithmétique ci-dessous utilise la " +"phrase « les arguments numériques sont convertis vers un type commun », cela " +"signifie que l'implémentation de l'opérateur fonctionne de la manière " +"suivante pour les types natifs :" + +#: ../Doc/reference/expressions.rst:34 +msgid "" +"If either argument is a complex number, the other is converted to complex;" +msgstr "" +"Si l'un des deux arguments est du type nombre complexe, l'autre est converti " +"en nombre complexe ;" + +#: ../Doc/reference/expressions.rst:36 +msgid "" +"otherwise, if either argument is a floating point number, the other is " +"converted to floating point;" +msgstr "" +"sinon, si l'un des arguments est un nombre à virgule flottante, l'autre est " +"converti en nombre à virgule flottante ;" + +#: ../Doc/reference/expressions.rst:39 +msgid "otherwise, both must be integers and no conversion is necessary." +msgstr "" +"sinon, les deux doivent être des entiers et aucune conversion n'est " +"nécessaire." + +#: ../Doc/reference/expressions.rst:41 +msgid "" +"Some additional rules apply for certain operators (e.g., a string as a left " +"argument to the '%' operator). Extensions must define their own conversion " +"behavior." +msgstr "" +"Des règles supplémentaires s'appliquent pour certains opérateurs (par " +"exemple, une chaîne comme opérande de gauche pour l'opérateur ``%``). Les " +"extensions doivent définir leurs propres règles de conversion." + +#: ../Doc/reference/expressions.rst:49 +msgid "Atoms" +msgstr "Atomes" + +#: ../Doc/reference/expressions.rst:53 +msgid "" +"Atoms are the most basic elements of expressions. The simplest atoms are " +"identifiers or literals. Forms enclosed in parentheses, brackets or braces " +"are also categorized syntactically as atoms. The syntax for atoms is:" +msgstr "" +"Les atomes sont les éléments de base des expressions. Les atomes les plus " +"simples sont les identifiants et les littéraux. Les expressions entre " +"parenthèses, crochets ou accolades sont aussi classées syntaxiquement comme " +"des atomes. La syntaxe pour les atomes est :" + +#: ../Doc/reference/expressions.rst:66 +msgid "Identifiers (Names)" +msgstr "Identifiants (noms)" + +#: ../Doc/reference/expressions.rst:70 +msgid "" +"An identifier occurring as an atom is a name. See section :ref:" +"`identifiers` for lexical definition and section :ref:`naming` for " +"documentation of naming and binding." +msgstr "" +"Un identifiant qui apparaît en tant qu'atome est un nom. Lisez la section :" +"ref:`identifiers` pour la définition lexicale et la section :ref:`naming` " +"pour la documentation sur les noms et les liaisons afférentes." + +#: ../Doc/reference/expressions.rst:76 +msgid "" +"When the name is bound to an object, evaluation of the atom yields that " +"object. When a name is not bound, an attempt to evaluate it raises a :exc:" +"`NameError` exception." +msgstr "" +"Quand un nom est lié à un objet, l'évaluation de l'atome produit cet objet. " +"Quand le nom n'est pas lié, toute tentative de l'évaluer lève une exception :" +"exc:`NameError`." + +#: ../Doc/reference/expressions.rst:84 +msgid "" +"**Private name mangling:** When an identifier that textually occurs in a " +"class definition begins with two or more underscore characters and does not " +"end in two or more underscores, it is considered a :dfn:`private name` of " +"that class. Private names are transformed to a longer form before code is " +"generated for them. The transformation inserts the class name, with leading " +"underscores removed and a single underscore inserted, in front of the name. " +"For example, the identifier ``__spam`` occurring in a class named ``Ham`` " +"will be transformed to ``_Ham__spam``. This transformation is independent " +"of the syntactical context in which the identifier is used. If the " +"transformed name is extremely long (longer than 255 characters), " +"implementation defined truncation may happen. If the class name consists " +"only of underscores, no transformation is done." +msgstr "" +"**Transformation des noms privés :** lorsqu'un identificateur qui apparaît " +"textuellement dans la définition d'une classe commence par deux (ou plus) " +"caractères de soulignement et ne se termine pas par deux (ou plus) " +"caractères de soulignement, il est considéré comme un :dfn:`nom privé " +"` de cette classe. Les noms privés sont transformés en une " +"forme plus longue avant que le code ne soit généré pour eux. La " +"transformation insère le nom de la classe, avec les soulignés enlevés et un " +"seul souligné inséré devant le nom. Par exemple, l'identificateur ``__spam`` " +"apparaissant dans une classe nommée ``Ham`` est transformé en " +"``_Ham__spam``. Cette transformation est indépendante du contexte syntaxique " +"dans lequel l'identificateur est utilisé. Si le nom transformé est " +"extrêmement long (plus de 255 caractères), l'implémentation peut le " +"tronquer. Si le nom de la classe est constitué uniquement de traits de " +"soulignement, aucune transformation n'est effectuée." + +#: ../Doc/reference/expressions.rst:100 +msgid "Literals" +msgstr "Littéraux" + +#: ../Doc/reference/expressions.rst:104 +msgid "Python supports string and bytes literals and various numeric literals:" +msgstr "" +"Python gère les littéraux de chaînes de caractères, de chaînes d'octets et " +"de plusieurs autres types numériques :" + +#: ../Doc/reference/expressions.rst:110 +msgid "" +"Evaluation of a literal yields an object of the given type (string, bytes, " +"integer, floating point number, complex number) with the given value. The " +"value may be approximated in the case of floating point and imaginary " +"(complex) literals. See section :ref:`literals` for details." +msgstr "" +"L'évaluation d'un littéral produit un objet du type donné (chaîne de " +"caractères, chaîne d'octets, entier, nombre à virgule flottante, nombre " +"complexe) avec la valeur donnée. La valeur peut être approximée dans le cas " +"des nombres à virgule flottante et des nombres imaginaires (complexes). " +"Reportez-vous à la section :ref:`literals` pour les détails." + +#: ../Doc/reference/expressions.rst:119 +msgid "" +"All literals correspond to immutable data types, and hence the object's " +"identity is less important than its value. Multiple evaluations of literals " +"with the same value (either the same occurrence in the program text or a " +"different occurrence) may obtain the same object or a different object with " +"the same value." +msgstr "" +"Tous les littéraux sont de types immuables et donc l'identifiant de l'objet " +"est moins important que sa valeur. Des évaluations multiples de littéraux " +"avec la même valeur (soit la même occurrence dans le texte du programme, " +"soit une autre occurrence) résultent dans le même objet ou un objet " +"différent avec la même valeur." + +#: ../Doc/reference/expressions.rst:129 +msgid "Parenthesized forms" +msgstr "Formes parenthésées" + +#: ../Doc/reference/expressions.rst:135 +msgid "" +"A parenthesized form is an optional expression list enclosed in parentheses:" +msgstr "" +"Une forme parenthésée est une liste d'expressions (cette liste est en fait " +"optionnelle) placée à l'intérieur de parenthèses :" + +#: ../Doc/reference/expressions.rst:140 +msgid "" +"A parenthesized expression list yields whatever that expression list yields: " +"if the list contains at least one comma, it yields a tuple; otherwise, it " +"yields the single expression that makes up the expression list." +msgstr "" +"Une liste d'expressions entre parenthèses produit ce que la liste de ces " +"expressions produirait : si la liste contient au moins une virgule, elle " +"produit un n-uplet (type *tuple*) ; sinon, elle produit l'expression elle-" +"même (qui constitue donc elle-même la liste d'expressions)." + +#: ../Doc/reference/expressions.rst:146 +msgid "" +"An empty pair of parentheses yields an empty tuple object. Since tuples are " +"immutable, the same rules as for literals apply (i.e., two occurrences of " +"the empty tuple may or may not yield the same object)." +msgstr "" +"Une paire de parenthèses vide produit un objet n-uplet vide. Comme les n-" +"uplets sont immuables, la même règle que pour les littéraux s'applique " +"(c'est-à-dire que deux occurrences du n-uplet vide peuvent, ou pas, produire " +"le même objet)." + +#: ../Doc/reference/expressions.rst:155 +msgid "" +"Note that tuples are not formed by the parentheses, but rather by use of the " +"comma operator. The exception is the empty tuple, for which parentheses " +"*are* required --- allowing unparenthesized \"nothing\" in expressions would " +"cause ambiguities and allow common typos to pass uncaught." +msgstr "" +"Notez que les *tuples* ne sont pas créés par les parenthèses mais par " +"l'utilisation de la virgule. L'exception est le tuple vide, pour lequel les " +"parenthèses *sont requises* (autoriser que « rien » ne soit pas parenthésé " +"dans les expressions aurait généré des ambigüités et aurait permis à " +"certaines coquilles de passer inaperçu)." + +#: ../Doc/reference/expressions.rst:164 +msgid "Displays for lists, sets and dictionaries" +msgstr "Agencements des listes, ensembles et dictionnaires" + +#: ../Doc/reference/expressions.rst:166 +msgid "" +"For constructing a list, a set or a dictionary Python provides special " +"syntax called \"displays\", each of them in two flavors:" +msgstr "" +"Pour construire une liste, un ensemble ou un dictionnaire, Python fournit " +"des syntaxes spéciales dites « agencements » (*displays* en anglais), chaque " +"agencement comportant deux variantes :" + +#: ../Doc/reference/expressions.rst:169 +msgid "either the container contents are listed explicitly, or" +msgstr "soit le contenu du conteneur est listé explicitement," + +#: ../Doc/reference/expressions.rst:171 +msgid "" +"they are computed via a set of looping and filtering instructions, called a :" +"dfn:`comprehension`." +msgstr "" +"soit il est calculé à l'aide de la combinaison d'une boucle et " +"d'instructions de filtrage, appelée une :dfn:`compréhension` (dans le sens " +"de ce qui sert à définir un concept, par opposition à *extension*)." + +#: ../Doc/reference/expressions.rst:179 +msgid "Common syntax elements for comprehensions are:" +msgstr "" +"Les compréhensions sont constituées des éléments de syntaxe communs " +"suivants :" + +#: ../Doc/reference/expressions.rst:187 +msgid "" +"The comprehension consists of a single expression followed by at least one :" +"keyword:`!for` clause and zero or more :keyword:`!for` or :keyword:`!if` " +"clauses. In this case, the elements of the new container are those that " +"would be produced by considering each of the :keyword:`!for` or :keyword:`!" +"if` clauses a block, nesting from left to right, and evaluating the " +"expression to produce an element each time the innermost block is reached." +msgstr "" +"Une compréhension est constituée par une seule expression suivie par au " +"moins une clause :keyword:`!for` et zéro ou plus clauses :keyword:`!for` ou :" +"keyword:`!if`. Dans ce cas, les éléments du nouveau conteneur sont ceux qui " +"auraient été produits si l'on avait considéré toutes les clauses :keyword:`!" +"for` ou :keyword:`!if` comme des blocs, imbriqués de la gauche vers la " +"droite, et évalué l'expression pour produire un élément à chaque fois que le " +"bloc le plus imbriqué était atteint." + +#: ../Doc/reference/expressions.rst:194 +msgid "" +"However, aside from the iterable expression in the leftmost :keyword:`!for` " +"clause, the comprehension is executed in a separate implicitly nested scope. " +"This ensures that names assigned to in the target list don't \"leak\" into " +"the enclosing scope." +msgstr "" +"Cependant, à part l'expression de l'itérable dans la clause :keyword:`!for` " +"la plus à gauche, la compréhension est exécutée dans une portée séparée, " +"implicitement imbriquée. Ceci assure que les noms assignés dans la liste " +"cible ne « fuient » pas en dehors de cette portée." + +#: ../Doc/reference/expressions.rst:198 +msgid "" +"The iterable expression in the leftmost :keyword:`!for` clause is evaluated " +"directly in the enclosing scope and then passed as an argument to the " +"implictly nested scope. Subsequent :keyword:`!for` clauses and any filter " +"condition in the leftmost :keyword:`!for` clause cannot be evaluated in the " +"enclosing scope as they may depend on the values obtained from the leftmost " +"iterable. For example: ``[x*y for x in range(10) for y in range(x, x+10)]``." +msgstr "" +"L'expression de l'itérable dans la clause :keyword:`!for` la plus à gauche " +"est évaluée directement dans la portée englobante puis passée en tant " +"qu'argument à la portée implicite imbriquée. Les clauses :keyword:`!for` " +"suivantes et les filtres conditionnels de la clause :keyword:`!for` la plus " +"à gauche ne peuvent pas être évalués dans la portée englobante car ils " +"peuvent dépendre de valeurs obtenues à partir de l'itérable le plus à " +"gauche. Par exemple : ``[x*y for x in range(10) for y in range(x, x+10)]``." + +#: ../Doc/reference/expressions.rst:205 +msgid "" +"To ensure the comprehension always results in a container of the appropriate " +"type, ``yield`` and ``yield from`` expressions are prohibited in the " +"implicitly nested scope (in Python 3.7, such expressions emit :exc:" +"`DeprecationWarning` when compiled, in Python 3.8+ they will emit :exc:" +"`SyntaxError`)." +msgstr "" +"Pour assurer que le résultat de la compréhension soit un conteneur du type " +"approprié, les expressions ``yield`` et ``yield from`` sont interdites dans " +"la portée implicite imbriquée (dans Python 3.7, de telles expressions lèvent " +"un :exc:`DeprecationWarning` à la compilation, dans Python 3.8 et suivants, " +"elles lèveront une :exc:`SyntaxError`)." + +#: ../Doc/reference/expressions.rst:213 +msgid "" +"Since Python 3.6, in an :keyword:`async def` function, an :keyword:`!async " +"for` clause may be used to iterate over a :term:`asynchronous iterator`. A " +"comprehension in an :keyword:`!async def` function may consist of either a :" +"keyword:`!for` or :keyword:`!async for` clause following the leading " +"expression, may contain additional :keyword:`!for` or :keyword:`!async for` " +"clauses, and may also use :keyword:`await` expressions. If a comprehension " +"contains either :keyword:`!async for` clauses or :keyword:`!await` " +"expressions it is called an :dfn:`asynchronous comprehension`. An " +"asynchronous comprehension may suspend the execution of the coroutine " +"function in which it appears. See also :pep:`530`." +msgstr "" +"Depuis Python 3.6, dans une fonction :keyword:`async def`, une clause :" +"keyword:`!async for` peut être utilisée pour itérer sur un :term:`itérateur " +"asynchrone `. Une compréhension dans une fonction :" +"keyword:`!async def` consiste alors à avoir une clause :keyword:`!for` or :" +"keyword:`!async for` suivie par des clauses :keyword:`!for` ou :keyword:`!" +"async for` additionnelles facultatives et, possiblement, des expressions :" +"keyword:`await`. Si la compréhension contient soit des clauses :keyword:`!" +"async for`, soit des expressions :keyword:`!await`, elle est appelée :dfn:" +"`compréhension asynchrone`. Une compréhension asynchrone peut suspendre " +"l'exécution de la fonction coroutine dans laquelle elle apparaît. Voir aussi " +"la :pep:`530`." + +#: ../Doc/reference/expressions.rst:225 +msgid "Asynchronous comprehensions were introduced." +msgstr "Les compréhensions asynchrones ont été introduites." + +#: ../Doc/reference/expressions.rst:228 ../Doc/reference/expressions.rst:395 +msgid "``yield`` and ``yield from`` deprecated in the implicitly nested scope." +msgstr "" +"``yield`` et ``yield from`` sont obsolètes dans la portée implicite " +"imbriquée." + +#: ../Doc/reference/expressions.rst:235 +msgid "List displays" +msgstr "Agencements de listes" + +#: ../Doc/reference/expressions.rst:245 +msgid "" +"A list display is a possibly empty series of expressions enclosed in square " +"brackets:" +msgstr "" +"Un agencement de liste est une suite (possiblement vide) d'expressions à " +"l'intérieur de crochets :" + +#: ../Doc/reference/expressions.rst:251 +msgid "" +"A list display yields a new list object, the contents being specified by " +"either a list of expressions or a comprehension. When a comma-separated " +"list of expressions is supplied, its elements are evaluated from left to " +"right and placed into the list object in that order. When a comprehension " +"is supplied, the list is constructed from the elements resulting from the " +"comprehension." +msgstr "" +"Un agencement de liste produit un nouvel objet liste, dont le contenu est " +"spécifié soit par une liste d'expression soit par une compréhension. Quand " +"une liste d'expressions (dont les éléments sont séparés par des virgules) " +"est fournie, ces éléments sont évalués de la gauche vers la droite et placés " +"dans l'objet liste, dans cet ordre. Quand c'est une compréhension qui est " +"fournie, la liste est construite à partir des éléments produits par la " +"compréhension." + +#: ../Doc/reference/expressions.rst:261 +msgid "Set displays" +msgstr "Agencements d'ensembles" + +#: ../Doc/reference/expressions.rst:269 +msgid "" +"A set display is denoted by curly braces and distinguishable from dictionary " +"displays by the lack of colons separating keys and values:" +msgstr "" +"Un agencement d'ensemble (type *set*) est délimité par des accolades et se " +"distingue de l'agencement d'un dictionnaire par le fait qu'il n'y a pas de " +"« deux points » ``:`` pour séparer les clés et les valeurs :" + +#: ../Doc/reference/expressions.rst:275 +msgid "" +"A set display yields a new mutable set object, the contents being specified " +"by either a sequence of expressions or a comprehension. When a comma-" +"separated list of expressions is supplied, its elements are evaluated from " +"left to right and added to the set object. When a comprehension is " +"supplied, the set is constructed from the elements resulting from the " +"comprehension." +msgstr "" +"Un agencement d'ensemble produit un nouvel objet ensemble muable, le contenu " +"étant spécifié soit par une séquence d'expression, soit par une " +"compréhension. Quand une liste (dont les éléments sont séparés par des " +"virgules) est fournie, ses éléments sont évalués de la gauche vers la droite " +"et ajoutés à l'objet ensemble. Quand une compréhension est fournie, " +"l'ensemble est construit à partir des éléments produits par la compréhension." + +#: ../Doc/reference/expressions.rst:281 +msgid "" +"An empty set cannot be constructed with ``{}``; this literal constructs an " +"empty dictionary." +msgstr "" +"Un ensemble vide ne peut pas être construit par ``{}`` ; cette écriture " +"construit un dictionnaire vide." + +#: ../Doc/reference/expressions.rst:288 +msgid "Dictionary displays" +msgstr "Agencements de dictionnaires" + +#: ../Doc/reference/expressions.rst:298 +msgid "" +"A dictionary display is a possibly empty series of key/datum pairs enclosed " +"in curly braces:" +msgstr "" +"Un agencement de dictionnaire est une série (possiblement vide) de couples " +"clés-valeurs entourée par des accolades :" + +#: ../Doc/reference/expressions.rst:307 +msgid "A dictionary display yields a new dictionary object." +msgstr "Un agencement de dictionnaire produit un nouvel objet dictionnaire." + +#: ../Doc/reference/expressions.rst:309 +msgid "" +"If a comma-separated sequence of key/datum pairs is given, they are " +"evaluated from left to right to define the entries of the dictionary: each " +"key object is used as a key into the dictionary to store the corresponding " +"datum. This means that you can specify the same key multiple times in the " +"key/datum list, and the final dictionary's value for that key will be the " +"last one given." +msgstr "" +"Si une séquence (dont les éléments sont séparés par des virgules) de couples " +"clés-valeurs est fournie, les couples sont évalués de la gauche vers la " +"droite pour définir les entrées du dictionnaire : chaque objet clé est " +"utilisé comme clé dans le dictionnaire pour stocker la donnée " +"correspondante. Cela signifie que vous pouvez spécifier la même clé " +"plusieurs fois dans la liste des couples clés-valeurs et, dans ce cas, la " +"valeur finalement stockée dans le dictionnaire est la dernière donnée." + +#: ../Doc/reference/expressions.rst:319 +msgid "" +"A double asterisk ``**`` denotes :dfn:`dictionary unpacking`. Its operand " +"must be a :term:`mapping`. Each mapping item is added to the new " +"dictionary. Later values replace values already set by earlier key/datum " +"pairs and earlier dictionary unpackings." +msgstr "" +"Une double astérisque ``**`` demande de :dfn:`dépaqueter le dictionnaire`. " +"L'opérande doit être un :term:`tableau de correspondances `. Chaque " +"élément du tableau de correspondances est ajouté au nouveau dictionnaire. " +"Les valeurs les plus récentes remplacent les valeurs déjà définies par des " +"couples clés-valeurs antérieurs ou par d'autres dépaquetages de " +"dictionnaires antérieurs." + +#: ../Doc/reference/expressions.rst:324 +msgid "Unpacking into dictionary displays, originally proposed by :pep:`448`." +msgstr "" +"le dépaquetage peut se faire vers un agencement de dictionnaire, proposé à " +"l'origine par la :pep:`448`." + +#: ../Doc/reference/expressions.rst:327 +msgid "" +"A dict comprehension, in contrast to list and set comprehensions, needs two " +"expressions separated with a colon followed by the usual \"for\" and \"if\" " +"clauses. When the comprehension is run, the resulting key and value elements " +"are inserted in the new dictionary in the order they are produced." +msgstr "" +"Une compréhension de dictionnaire, au contraire des compréhensions de listes " +"ou d'ensembles, requiert deux expressions séparées par une virgule et " +"suivies par les clauses usuelles \"for\" et \"if\". Quand la compréhension " +"est exécutée, les éléments clés-valeurs sont insérés dans le nouveau " +"dictionnaire dans l'ordre dans lequel ils sont produits." + +#: ../Doc/reference/expressions.rst:335 +msgid "" +"Restrictions on the types of the key values are listed earlier in section :" +"ref:`types`. (To summarize, the key type should be :term:`hashable`, which " +"excludes all mutable objects.) Clashes between duplicate keys are not " +"detected; the last datum (textually rightmost in the display) stored for a " +"given key value prevails." +msgstr "" +"Les restrictions relatives aux types des clés sont données dans la section :" +"ref:`types` (pour résumer, le type de la clé doit être :term:`hachable " +"`, ce qui exclut tous les objets muables). Les collisions entre " +"les clés dupliquées ne sont pas détectées ; la dernière valeur (celle qui " +"apparaît le plus à droite dans l'agencement) stockée prévaut pour une clé " +"donnée." + +#: ../Doc/reference/expressions.rst:345 +msgid "Generator expressions" +msgstr "Expressions génératrices" + +#: ../Doc/reference/expressions.rst:352 +msgid "A generator expression is a compact generator notation in parentheses:" +msgstr "" +"Une expression génératrice est une notation concise pour un générateur, " +"entourée de parenthèses :" + +#: ../Doc/reference/expressions.rst:357 +msgid "" +"A generator expression yields a new generator object. Its syntax is the " +"same as for comprehensions, except that it is enclosed in parentheses " +"instead of brackets or curly braces." +msgstr "" +"Une expression génératrice produit un nouvel objet générateur. Sa syntaxe " +"est la même que celle des compréhensions, sauf qu'elle est entourée de " +"parenthèses au lieu de crochets ou d'accolades." + +#: ../Doc/reference/expressions.rst:361 +msgid "" +"Variables used in the generator expression are evaluated lazily when the :" +"meth:`~generator.__next__` method is called for the generator object (in the " +"same fashion as normal generators). However, the iterable expression in the " +"leftmost :keyword:`!for` clause is immediately evaluated, so that an error " +"produced by it will be emitted at the point where the generator expression " +"is defined, rather than at the point where the first value is retrieved. " +"Subsequent :keyword:`!for` clauses and any filter condition in the leftmost :" +"keyword:`!for` clause cannot be evaluated in the enclosing scope as they may " +"depend on the values obtained from the leftmost iterable. For example: " +"``(x*y for x in range(10) for y in range(x, x+10))``." +msgstr "" +"Les variables utilisées dans une expression génératrice sont évaluées " +"paresseusement, au moment où la méthode :meth:`~generator.__next__` de " +"l'objet générateur est appelée (de la même manière que pour les générateurs " +"classiques). Cependant, l'expression de l'itérable dans la clause :keyword:`!" +"for` la plus à gauche est immédiatement évaluée, de manière à ce qu'une " +"erreur dans cette partie soit signalée à l'endroit où l'expression " +"génératrice est définie plutôt qu'à l'endroit où la première valeur est " +"récupérée. Les clauses :keyword:`!for` suivantes ne peuvent pas être " +"évaluées dans la portée implicite imbriquée car elles peuvent dépendre de " +"valeurs obtenues à partir de boucles :keyword:`!for` plus à gauche. Par " +"exemple, ``(x*y for x in range(10) for y in range(x, x+10))``." + +#: ../Doc/reference/expressions.rst:372 +msgid "" +"The parentheses can be omitted on calls with only one argument. See " +"section :ref:`calls` for details." +msgstr "" +"Les parenthèses peuvent être omises pour les appels qui ne possèdent qu'un " +"seul argument. Voir la section :ref:`calls` pour les détails." + +#: ../Doc/reference/expressions.rst:375 +msgid "" +"To avoid interfering with the expected operation of the generator expression " +"itself, ``yield`` and ``yield from`` expressions are prohibited in the " +"implicitly defined generator (in Python 3.7, such expressions emit :exc:" +"`DeprecationWarning` when compiled, in Python 3.8+ they will emit :exc:" +"`SyntaxError`)." +msgstr "" +"Pour éviter d'interférer avec l'opération attendue de l'expression " +"générateur elle-même, les expressions ``yield`` et ``yield from`` sont " +"interdites dans les générateurs définis de manière implicite (dans Python " +"3.7, ces expressions signalent un :exc:`DeprecationWarning` à la " +"compilation. En Python 3.8+ elles lèvent une :exc:`SyntaxError`)." + +#: ../Doc/reference/expressions.rst:381 +msgid "" +"If a generator expression contains either :keyword:`!async for` clauses or :" +"keyword:`await` expressions it is called an :dfn:`asynchronous generator " +"expression`. An asynchronous generator expression returns a new " +"asynchronous generator object, which is an asynchronous iterator (see :ref:" +"`async-iterators`)." +msgstr "" +"Si une expression génératrice contient une ou des expressions :keyword:`!" +"async for` ou :keyword:`await`, elle est appelée :dfn:`expression " +"génératrice asynchrone `. Une expression " +"génératrice asynchrone produit un nouvel objet générateur asynchrone qui est " +"un itérateur asynchrone (voir :ref:`async-iterators`)." + +#: ../Doc/reference/expressions.rst:387 +msgid "Asynchronous generator expressions were introduced." +msgstr "les expressions génératrices asynchrones ont été introduites." + +#: ../Doc/reference/expressions.rst:390 +msgid "" +"Prior to Python 3.7, asynchronous generator expressions could only appear " +"in :keyword:`async def` coroutines. Starting with 3.7, any function can use " +"asynchronous generator expressions." +msgstr "" +"Avant Python 3.7, les expressions génératrices asynchrones ne pouvaient " +"apparaître que dans les coroutines :keyword:`async def`. À partir de la " +"version 3.7, toute fonction peut utiliser des expressions génératrices " +"asynchrones." + +#: ../Doc/reference/expressions.rst:402 +msgid "Yield expressions" +msgstr "Expressions ``yield``" + +#: ../Doc/reference/expressions.rst:414 +msgid "" +"The yield expression is used when defining a :term:`generator` function or " +"an :term:`asynchronous generator` function and thus can only be used in the " +"body of a function definition. Using a yield expression in a function's " +"body causes that function to be a generator, and using it in an :keyword:" +"`async def` function's body causes that coroutine function to be an " +"asynchronous generator. For example::" +msgstr "" +"Une expression ``yield`` est utilisée pour définir une fonction :term:" +"`générateur` ou une fonction :term:`génératrice asynchrone ` et ne peut donc être utilisée que dans le corps de la définition " +"d'une fonction. L'utilisation d'une expression ``yield`` dans le corps d'une " +"fonction entraîne que cette fonction devient un générateur et son " +"utilisation dans le corps d'une fonction :keyword:`async def` entraine que " +"cette fonction coroutine devient un générateur asynchrone. Par exemple ::" + +#: ../Doc/reference/expressions.rst:427 +msgid "" +"Due to their side effects on the containing scope, ``yield`` expressions are " +"not permitted as part of the implicitly defined scopes used to implement " +"comprehensions and generator expressions (in Python 3.7, such expressions " +"emit :exc:`DeprecationWarning` when compiled, in Python 3.8+ they will emit :" +"exc:`SyntaxError`).." +msgstr "" +"En raison des effets de bords sur la portée contenant, les expressions " +"``yield`` ne sont pas autorisées dans la portée implicite utilisée dans " +"l'implémentation des compréhensions et des expressions générateurs (dans " +"Python 3.7, de telles expressions lèvent un :exc:`DeprecationWarning` à la " +"compilation ; à partir de Python 3.8, elles lèveront une :exc:`SyntaxError`)." + +#: ../Doc/reference/expressions.rst:433 +msgid "" +"Yield expressions deprecated in the implicitly nested scopes used to " +"implement comprehensions and generator expressions." +msgstr "" +"Les expressions `yield` sont obsolètes dans la portée implicite imbriquée " +"utilisée dans l'implémentation des compréhensions et des expressions " +"générateurs." + +#: ../Doc/reference/expressions.rst:437 +msgid "" +"Generator functions are described below, while asynchronous generator " +"functions are described separately in section :ref:`asynchronous-generator-" +"functions`." +msgstr "" +"Les fonctions génératrices sont décrites plus loin alors que les fonctions " +"générateurs asynchrones sont décrites séparément dans la section :ref:" +"`asynchronous-generator-functions`." + +#: ../Doc/reference/expressions.rst:441 +msgid "" +"When a generator function is called, it returns an iterator known as a " +"generator. That generator then controls the execution of the generator " +"function. The execution starts when one of the generator's methods is " +"called. At that time, the execution proceeds to the first yield expression, " +"where it is suspended again, returning the value of :token:`expression_list` " +"to the generator's caller. By suspended, we mean that all local state is " +"retained, including the current bindings of local variables, the instruction " +"pointer, the internal evaluation stack, and the state of any exception " +"handling. When the execution is resumed by calling one of the generator's " +"methods, the function can proceed exactly as if the yield expression were " +"just another external call. The value of the yield expression after " +"resuming depends on the method which resumed the execution. If :meth:" +"`~generator.__next__` is used (typically via either a :keyword:`for` or the :" +"func:`next` builtin) then the result is :const:`None`. Otherwise, if :meth:" +"`~generator.send` is used, then the result will be the value passed in to " +"that method." +msgstr "" +"Lorsqu'une fonction génératrice est appelée, elle renvoie un itérateur que " +"l'on appelle générateur. Ce générateur contrôle l'exécution de la fonction " +"génératrice. L'exécution commence lorsque l'une des méthodes du générateur " +"est appelée. À ce moment, l'exécution se déroule jusqu'à la première " +"expression ``yield``, où elle se suspend, renvoyant la valeur de :token:" +"`expression_list` à l'appelant du générateur. Cette suspension conserve tous " +"les états locaux, y compris les liaisons en cours des variables locales, le " +"pointeur d'instruction, la pile d'évaluation interne et l'état de tous les " +"gestionnaires d'exceptions. Lorsque l'exécution reprend en appelant l'une " +"des méthodes du générateur, la fonction s'exécute exactement comme si " +"l'expression ``yield`` n'avait été qu'un simple appel externe. La valeur de " +"l'expression ``yield`` après reprise dépend de la méthode qui a permis la " +"reprise de l'exécution. Si c'est :meth:`~generator.__next__` qui a été " +"utilisée (typiquement *via* un :keyword:`for` ou la fonction native :func:" +"`next`) alors le résultat est :const:`None`. Sinon, si c'est :meth:" +"`~generator.send` qui a été utilisée, alors le résultat est la valeur " +"transmise à cette méthode." + +#: ../Doc/reference/expressions.rst:460 +msgid "" +"All of this makes generator functions quite similar to coroutines; they " +"yield multiple times, they have more than one entry point and their " +"execution can be suspended. The only difference is that a generator " +"function cannot control where the execution should continue after it yields; " +"the control is always transferred to the generator's caller." +msgstr "" +"Tout ceci rend les fonctions génératrices très similaires aux coroutines : " +"elles produisent plusieurs objets *via* des expressions ``yield``, elles " +"possèdent plus qu'un seul point d'entrée et leur exécution peut être " +"suspendue. La seule différence est qu'une fonction génératrice ne peut pas " +"contrôler où l'exécution doit se poursuivre après une instruction " +"``yield`` ; ce contrôle est toujours du ressort de l'appelant au générateur." + +#: ../Doc/reference/expressions.rst:466 +msgid "" +"Yield expressions are allowed anywhere in a :keyword:`try` construct. If " +"the generator is not resumed before it is finalized (by reaching a zero " +"reference count or by being garbage collected), the generator-iterator's :" +"meth:`~generator.close` method will be called, allowing any pending :keyword:" +"`finally` clauses to execute." +msgstr "" +"Les expressions ``yield`` sont autorisées partout dans un bloc :keyword:" +"`try`. Si l'exécution du générateur ne reprend pas avant qu'il ne soit " +"finalisé (parce que son compteur de référence est tombé à zéro ou parce " +"qu'il est nettoyé par le ramasse-miettes), la méthode :meth:`~generator." +"close` du générateur-itérateur est appelée, ce qui permet l'exécution de " +"toutes les clauses :keyword:`finally` en attente." + +#: ../Doc/reference/expressions.rst:475 +msgid "" +"When ``yield from `` is used, it treats the supplied expression as a " +"subiterator. All values produced by that subiterator are passed directly to " +"the caller of the current generator's methods. Any values passed in with :" +"meth:`~generator.send` and any exceptions passed in with :meth:`~generator." +"throw` are passed to the underlying iterator if it has the appropriate " +"methods. If this is not the case, then :meth:`~generator.send` will raise :" +"exc:`AttributeError` or :exc:`TypeError`, while :meth:`~generator.throw` " +"will just raise the passed in exception immediately." +msgstr "" +"L'utilisation de ``yield from `` traite l'expression passée en " +"paramètre comme un sous-itérateur. Toutes les valeurs produites par ce sous-" +"itérateur sont directement passées à l'appelant des méthodes du générateur " +"courant. Toute valeur passée par :meth:`~generator.send` ou toute exception " +"passée par :meth:`~generator.throw` est transmise à l'itérateur sous-jacent " +"s'il possède les méthodes appropriées. Si ce n'est pas le cas, alors :meth:" +"`~generator.send` lève une :exc:`AttributeError` ou une :exc:`TypeError`, " +"alors que :meth:`~generator.throw` ne fait que propager l'exception " +"immédiatement." + +#: ../Doc/reference/expressions.rst:484 +msgid "" +"When the underlying iterator is complete, the :attr:`~StopIteration.value` " +"attribute of the raised :exc:`StopIteration` instance becomes the value of " +"the yield expression. It can be either set explicitly when raising :exc:" +"`StopIteration`, or automatically when the subiterator is a generator (by " +"returning a value from the subgenerator)." +msgstr "" +"Quand l'itérateur sous-jacent a terminé, l'attribut :attr:`~StopIteration." +"value` de l'instance :exc:`StopIteration` qui a été levée devient la valeur " +"produite par l'expression ``yield``. Elle peut être définie explicitement " +"quand vous levez :exc:`StopIteration` ou automatiquement que le sous-" +"itérateur est un générateur (en renvoyant une valeur par le sous-générateur)." + +#: ../Doc/reference/expressions.rst:490 +msgid "Added ``yield from `` to delegate control flow to a subiterator." +msgstr "" +"``yield from `` a été ajoutée pour déléguer le contrôle du flot " +"d'exécution à un sous-itérateur." + +#: ../Doc/reference/expressions.rst:493 +msgid "" +"The parentheses may be omitted when the yield expression is the sole " +"expression on the right hand side of an assignment statement." +msgstr "" +"Les parenthèses peuvent être omises quand l'expression ``yield`` est la " +"seule expression à droite de l'instruction de l'instruction d'assignation." + +#: ../Doc/reference/expressions.rst:499 +msgid ":pep:`255` - Simple Generators" +msgstr ":pep:`255` : Générateurs simples" + +#: ../Doc/reference/expressions.rst:499 +msgid "" +"The proposal for adding generators and the :keyword:`yield` statement to " +"Python." +msgstr "" +"La proposition d'ajouter à Python des générateurs et l'instruction :keyword:" +"`yield`." + +#: ../Doc/reference/expressions.rst:503 +msgid ":pep:`342` - Coroutines via Enhanced Generators" +msgstr ":pep:`342` -- Coroutines *via* des générateurs améliorés" + +#: ../Doc/reference/expressions.rst:502 +msgid "" +"The proposal to enhance the API and syntax of generators, making them usable " +"as simple coroutines." +msgstr "" +"Proposition d'améliorer l'API et la syntaxe des générateurs, de manière à " +"pouvoir les utiliser comme de simples coroutines." + +#: ../Doc/reference/expressions.rst:507 +msgid ":pep:`380` - Syntax for Delegating to a Subgenerator" +msgstr ":pep:`380` -- Syntaxe pour déléguer à un sous-générateur" + +#: ../Doc/reference/expressions.rst:506 +msgid "" +"The proposal to introduce the :token:`yield_from` syntax, making delegation " +"to subgenerators easy." +msgstr "" +"Proposition d'introduire la syntaxe :token:`yield_from`, de manière à " +"déléguer facilement l'exécution à un sous-générateur." + +#: ../Doc/reference/expressions.rst:510 +msgid ":pep:`525` - Asynchronous Generators" +msgstr ":pep:`525` : Générateurs asynchrones" + +#: ../Doc/reference/expressions.rst:510 +msgid "" +"The proposal that expanded on :pep:`492` by adding generator capabilities to " +"coroutine functions." +msgstr "" +"La proposition qui a amélioré la :pep:`492` en ajoutant des capacités de " +"générateur pour les coroutines." + +#: ../Doc/reference/expressions.rst:517 +msgid "Generator-iterator methods" +msgstr "Méthodes des générateurs-itérateurs" + +#: ../Doc/reference/expressions.rst:519 +msgid "" +"This subsection describes the methods of a generator iterator. They can be " +"used to control the execution of a generator function." +msgstr "" +"Cette sous-section décrit les méthodes des générateurs-itérateurs. Elles " +"peuvent être utilisées pour contrôler l'exécution des fonctions générateurs." + +#: ../Doc/reference/expressions.rst:522 +msgid "" +"Note that calling any of the generator methods below when the generator is " +"already executing raises a :exc:`ValueError` exception." +msgstr "" +"Notez que l'appel à une méthode ci-dessous d'un générateur alors que le " +"générateur est déjà en cours d'exécution lève une exception :exc:" +"`ValueError`." + +#: ../Doc/reference/expressions.rst:530 +msgid "" +"Starts the execution of a generator function or resumes it at the last " +"executed yield expression. When a generator function is resumed with a :" +"meth:`~generator.__next__` method, the current yield expression always " +"evaluates to :const:`None`. The execution then continues to the next yield " +"expression, where the generator is suspended again, and the value of the :" +"token:`expression_list` is returned to :meth:`__next__`'s caller. If the " +"generator exits without yielding another value, a :exc:`StopIteration` " +"exception is raised." +msgstr "" +"Démarre l'exécution d'une fonction générateur ou la reprend à la dernière " +"expression ``yield`` exécutée. Quand une fonction générateur est reprise par " +"une méthode :meth:`~generator.__next__`, l'expression ``yield`` en cours " +"s'évalue toujours à :const:`None`. L'exécution continue ensuite jusqu'à " +"l'expression ``yield`` suivante, où le générateur est à nouveau suspendu et " +"la valeur de :token:`expression_list` est renvoyée à la méthode :meth:" +"`__next__` de l'appelant. Si le générateur termine sans donner une autre " +"valeur, une exception :exc:`StopIteration` est levée." + +#: ../Doc/reference/expressions.rst:539 +msgid "" +"This method is normally called implicitly, e.g. by a :keyword:`for` loop, or " +"by the built-in :func:`next` function." +msgstr "" +"Cette méthode est normalement appelée implicitement, par exemple par une " +"boucle :keyword:`for` ou par la fonction native :func:`next`." + +#: ../Doc/reference/expressions.rst:545 +msgid "" +"Resumes the execution and \"sends\" a value into the generator function. " +"The *value* argument becomes the result of the current yield expression. " +"The :meth:`send` method returns the next value yielded by the generator, or " +"raises :exc:`StopIteration` if the generator exits without yielding another " +"value. When :meth:`send` is called to start the generator, it must be " +"called with :const:`None` as the argument, because there is no yield " +"expression that could receive the value." +msgstr "" +"Reprend l'exécution et « envoie » une valeur à la fonction générateur. " +"L'argument *value* devient le résultat de l'expression ``yield`` courante. " +"La méthode :meth:`send` renvoie la valeur suivante produite par le " +"générateur ou lève :exc:`StopIteration` si le générateur termine sans " +"produire de nouvelle valeur. Quand :meth:`send` est utilisée pour démarrer " +"le générateur, elle doit avoir :const:`None` comme argument, car il n'y a " +"aucune expression ``yield`` qui peut recevoir la valeur." + +#: ../Doc/reference/expressions.rst:556 +msgid "" +"Raises an exception of type ``type`` at the point where the generator was " +"paused, and returns the next value yielded by the generator function. If " +"the generator exits without yielding another value, a :exc:`StopIteration` " +"exception is raised. If the generator function does not catch the passed-in " +"exception, or raises a different exception, then that exception propagates " +"to the caller." +msgstr "" +"Lève une exception de type ``type`` à l'endroit où le générateur est en " +"pause et renvoie la valeur suivante produite par la fonction générateur. Si " +"le générateur termine sans produire de nouvelle valeur, une exception :exc:" +"`StopIteration` est levée. Si la fonction génératrice ne gère pas " +"l'exception passée ou lève une autre exception, alors cette exception est " +"propagée vers l'appelant." + +#: ../Doc/reference/expressions.rst:567 +msgid "" +"Raises a :exc:`GeneratorExit` at the point where the generator function was " +"paused. If the generator function then exits gracefully, is already closed, " +"or raises :exc:`GeneratorExit` (by not catching the exception), close " +"returns to its caller. If the generator yields a value, a :exc:" +"`RuntimeError` is raised. If the generator raises any other exception, it " +"is propagated to the caller. :meth:`close` does nothing if the generator " +"has already exited due to an exception or normal exit." +msgstr "" +"Lève une :exc:`GeneratorExit` à l'endroit où la fonction génératrice a été " +"mise en pause. Si la fonction génératrice termine, est déjà fermée ou lève :" +"exc:`GeneratorExit` (parce qu'elle ne gère pas l'exception), *close* revient " +"vers l'appelant. Si le générateur produit une valeur, une :exc:" +"`RuntimeError` est levée. Si le générateur lève une autre exception, elle " +"est propagée à l'appelant. La méthode :meth:`close` ne fait rien si le " +"générateur a déjà terminé en raison d'une exception ou d'une fin normale." + +#: ../Doc/reference/expressions.rst:578 +msgid "Examples" +msgstr "Exemples" + +#: ../Doc/reference/expressions.rst:580 +msgid "" +"Here is a simple example that demonstrates the behavior of generators and " +"generator functions::" +msgstr "" +"Voici un exemple simple qui montre le comportement des générateurs et des " +"fonctions génératrices ::" + +#: ../Doc/reference/expressions.rst:607 +msgid "" +"For examples using ``yield from``, see :ref:`pep-380` in \"What's New in " +"Python.\"" +msgstr "" +"Pour des exemples d'utilisation de ``yield from``, lisez la :ref:`pep-380` " +"dans « Les nouveautés de Python »." + +#: ../Doc/reference/expressions.rst:613 +msgid "Asynchronous generator functions" +msgstr "Fonctions génératrices asynchrones" + +#: ../Doc/reference/expressions.rst:615 +msgid "" +"The presence of a yield expression in a function or method defined using :" +"keyword:`async def` further defines the function as an :term:`asynchronous " +"generator` function." +msgstr "" +"La présence d'une expression *yield* dans une fonction ou une méthode " +"définie en utilisant :keyword:`async def` transforme cette fonction en " +"fonction :term:`générateur asynchrone `." + +#: ../Doc/reference/expressions.rst:619 +msgid "" +"When an asynchronous generator function is called, it returns an " +"asynchronous iterator known as an asynchronous generator object. That object " +"then controls the execution of the generator function. An asynchronous " +"generator object is typically used in an :keyword:`async for` statement in a " +"coroutine function analogously to how a generator object would be used in a :" +"keyword:`for` statement." +msgstr "" +"Quand une fonction génératrice asynchrone est appelée, elle renvoie un " +"itérateur asynchrone, autrement appelé objet générateur asynchrone. Cet " +"objet contrôle l'exécution de la fonction génératrice. Un objet générateur " +"asynchrone est typiquement utilisé dans une instruction :keyword:`async for` " +"à l'intérieur d'une fonction coroutine de la même manière qu'un objet " +"générateur serait utilisé dans une instruction :keyword:`for`." + +#: ../Doc/reference/expressions.rst:626 +msgid "" +"Calling one of the asynchronous generator's methods returns an :term:" +"`awaitable` object, and the execution starts when this object is awaited on. " +"At that time, the execution proceeds to the first yield expression, where it " +"is suspended again, returning the value of :token:`expression_list` to the " +"awaiting coroutine. As with a generator, suspension means that all local " +"state is retained, including the current bindings of local variables, the " +"instruction pointer, the internal evaluation stack, and the state of any " +"exception handling. When the execution is resumed by awaiting on the next " +"object returned by the asynchronous generator's methods, the function can " +"proceed exactly as if the yield expression were just another external call. " +"The value of the yield expression after resuming depends on the method which " +"resumed the execution. If :meth:`~agen.__anext__` is used then the result " +"is :const:`None`. Otherwise, if :meth:`~agen.asend` is used, then the result " +"will be the value passed in to that method." +msgstr "" +"L'appel d'une méthode du générateur asynchrone renvoie un objet :term:" +"`awaitable` et l'exécution commence au moment où l'on atteint une " +"instruction ``await`` le concernant. À ce moment, l'exécution se déroule " +"jusqu'à la première expression ``yield``, où elle est suspendue et renvoie " +"la valeur de :token:`expression_list` à la coroutine en attente. Comme pour " +"un générateur, la suspension signifie que tous les états locaux sont " +"conservés, y compris les liaisons des variables locales, le pointeur " +"d'instruction, la pile d'évaluation interne et l'état de tous les " +"gestionnaires d'exceptions. Lorsque l'exécution reprend parce que l'appelant " +"a atteint une instruction ``await`` sur l'objet suivant retourné par les " +"méthodes du générateur asynchrone, la fonction s'exécute exactement comme si " +"l'expression ``yield`` n'avait été qu'un simple appel externe. La valeur de " +"l'expression ``yield`` au moment de la reprise dépend de la méthode qui a " +"relancé l'exécution. Si c'est :meth:`~agen.__anext__` qui a été utilisée, " +"alors le résultat est :const:`None`. Sinon, si c'est :meth:`~agen.asend` qui " +"a été utilisée, alors le résultat est la valeur transmise à cette méthode." + +#: ../Doc/reference/expressions.rst:642 +msgid "" +"In an asynchronous generator function, yield expressions are allowed " +"anywhere in a :keyword:`try` construct. However, if an asynchronous " +"generator is not resumed before it is finalized (by reaching a zero " +"reference count or by being garbage collected), then a yield expression " +"within a :keyword:`!try` construct could result in a failure to execute " +"pending :keyword:`finally` clauses. In this case, it is the responsibility " +"of the event loop or scheduler running the asynchronous generator to call " +"the asynchronous generator-iterator's :meth:`~agen.aclose` method and run " +"the resulting coroutine object, thus allowing any pending :keyword:`!" +"finally` clauses to execute." +msgstr "" +"Dans une fonction génératrice asynchrone, les expressions ``yield`` sont " +"autorisées n'importe où dans une construction :keyword:`try`. Cependant, si " +"l'exécution d'un générateur asynchrone n'a pas repris avant que le " +"générateur ne soit finalisé (parce que son compteur de référence a atteint " +"zéro ou parce qu'il est nettoyé par le ramasse-miettes), alors une " +"expression ``yield`` dans une construction :keyword:`!try` pourrait ne pas " +"atteindre la clause :keyword:`finally` en attente. Dans ce cas, c'est la " +"responsabilité de la boucle d'événements ou du programmateur exécutant le " +"générateur asynchrone d'appeler la méthode :meth:`~agen.aclose` du " +"générateur asynchrone et d'exécuter l'objet coroutine résultant, permettant " +"ainsi à toute clause :keyword:`!finally` en attente d'être exécutée." + +#: ../Doc/reference/expressions.rst:653 +msgid "" +"To take care of finalization, an event loop should define a *finalizer* " +"function which takes an asynchronous generator-iterator and presumably " +"calls :meth:`~agen.aclose` and executes the coroutine. This *finalizer* may " +"be registered by calling :func:`sys.set_asyncgen_hooks`. When first iterated " +"over, an asynchronous generator-iterator will store the registered " +"*finalizer* to be called upon finalization. For a reference example of a " +"*finalizer* method see the implementation of ``asyncio.Loop." +"shutdown_asyncgens`` in :source:`Lib/asyncio/base_events.py`." +msgstr "" +"Pour effectuer correctement la finalisation, une boucle d'événements doit " +"définir une fonction *finalizer* qui prend un générateur-itérateur " +"asynchrone, appelle sans doute :meth:`~agen.aclose` et exécute la coroutine. " +"Ce *finalizer* peut s'enregistrer en appelant :func:`sys." +"set_asyncgen_hooks`. Lors de la première itération, un générateur-itérateur " +"asynchrone stocke le *finalizer* enregistré à appeler lors de la " +"finalisation. Pour un exemple de référence relatif à une méthode de " +"*finalizer*, regardez l'implémentation de ``asyncio.Loop." +"shutdown_asyncgens`` dans :source:`Lib/asyncio/base_events.py`." + +#: ../Doc/reference/expressions.rst:662 +msgid "" +"The expression ``yield from `` is a syntax error when used in an " +"asynchronous generator function." +msgstr "" +"L'expression ``yield from `` produit une erreur de syntaxe quand elle " +"est utilisée dans une fonction génératrice asynchrone." + +#: ../Doc/reference/expressions.rst:669 +msgid "Asynchronous generator-iterator methods" +msgstr "Méthodes des générateurs-itérateurs asynchrones" + +#: ../Doc/reference/expressions.rst:671 +msgid "" +"This subsection describes the methods of an asynchronous generator iterator, " +"which are used to control the execution of a generator function." +msgstr "" +"Cette sous-section décrit les méthodes des générateurs-itérateurs " +"asynchrones. Elles sont utilisées pour contrôler l’exécution des fonctions " +"génératrices." + +#: ../Doc/reference/expressions.rst:679 +msgid "" +"Returns an awaitable which when run starts to execute the asynchronous " +"generator or resumes it at the last executed yield expression. When an " +"asynchronous generator function is resumed with an :meth:`~agen.__anext__` " +"method, the current yield expression always evaluates to :const:`None` in " +"the returned awaitable, which when run will continue to the next yield " +"expression. The value of the :token:`expression_list` of the yield " +"expression is the value of the :exc:`StopIteration` exception raised by the " +"completing coroutine. If the asynchronous generator exits without yielding " +"another value, the awaitable instead raises a :exc:`StopAsyncIteration` " +"exception, signalling that the asynchronous iteration has completed." +msgstr "" +"Renvoie un *awaitable* qui, quand il a la main, démarre l'exécution du " +"générateur asynchrone ou reprend son exécution à l'endroit de la dernière " +"expression ``yield`` exécutée. Quand une fonction générateur asynchrone est " +"reprise par une méthode :meth:`~agen.__anext__`, l’expression ``yield`` en " +"cours s’évalue toujours à :const:`None` dans le *awaitable* renvoyé, et elle " +"continue son exécution jusqu’à l’expression ``yield`` suivante. La valeur " +"de :token:`expression_list` de l'expression ``yield`` est la valeur de " +"l'exception :exc:`StopIteration` levée par la coroutine qui termine. Si le " +"générateur asynchrone termine sans produire d'autre valeur, le *awaitable* " +"lève une exception :exc:`StopAsyncIteration` qui signale que l'itération " +"asynchrone est terminée." + +#: ../Doc/reference/expressions.rst:691 +msgid "" +"This method is normally called implicitly by a :keyword:`async for` loop." +msgstr "" +"Cette méthode est normalement appelée implicitement par une boucle :keyword:" +"`async for`." + +#: ../Doc/reference/expressions.rst:696 +msgid "" +"Returns an awaitable which when run resumes the execution of the " +"asynchronous generator. As with the :meth:`~generator.send()` method for a " +"generator, this \"sends\" a value into the asynchronous generator function, " +"and the *value* argument becomes the result of the current yield expression. " +"The awaitable returned by the :meth:`asend` method will return the next " +"value yielded by the generator as the value of the raised :exc:" +"`StopIteration`, or raises :exc:`StopAsyncIteration` if the asynchronous " +"generator exits without yielding another value. When :meth:`asend` is " +"called to start the asynchronous generator, it must be called with :const:" +"`None` as the argument, because there is no yield expression that could " +"receive the value." +msgstr "" +"Renvoie un *awaitable* qui, lorsqu'il a la main, reprend l'exécution du " +"générateur asynchrone. Comme pour la méthode :meth:`~generator.send()` d'un " +"générateur, elle « envoie » une valeur *value* à la fonction générateur " +"asynchrone et cet argument devient le résultat de l'expression ``yield`` " +"courante. Le *awaitable* renvoyé par la méthode :meth:`asend` renvoie la " +"valeur suivante produite par le générateur comme valeur de l'exception :exc:" +"`StopIteration` levée ou lève :exc:`StopAsyncIteration` si le générateur " +"asynchrone termine sans produire de nouvelle valeur. Quand :meth:`asend` est " +"appelée pour démarrer le générateur asynchrone, l'argument doit être :const:" +"`None` car il n'y a pas d'expression ``yield`` pour recevoir la valeur." + +#: ../Doc/reference/expressions.rst:711 +msgid "" +"Returns an awaitable that raises an exception of type ``type`` at the point " +"where the asynchronous generator was paused, and returns the next value " +"yielded by the generator function as the value of the raised :exc:" +"`StopIteration` exception. If the asynchronous generator exits without " +"yielding another value, a :exc:`StopAsyncIteration` exception is raised by " +"the awaitable. If the generator function does not catch the passed-in " +"exception, or raises a different exception, then when the awaitable is run " +"that exception propagates to the caller of the awaitable." +msgstr "" +"Renvoie un *awaitable* qui lève une exception du type ``type`` à l'endroit " +"où le générateur asynchrone a été mis en pause et renvoie la valeur suivante " +"produite par la fonction génératrice comme valeur de l'exception :exc:" +"`StopIteration` qui a été levée. Si le générateur asynchrone termine sans " +"produire de nouvelle valeur, une exception :exc:`StopAsyncIteration` est " +"levée par le *awaitable*. Si la fonction génératrice ne traite pas " +"l'exception reçue ou lève une autre exception alors, quand le *awaitable* " +"est lancé, cette exception est propagée vers l'appelant du *awaitable*." + +#: ../Doc/reference/expressions.rst:726 +msgid "" +"Returns an awaitable that when run will throw a :exc:`GeneratorExit` into " +"the asynchronous generator function at the point where it was paused. If the " +"asynchronous generator function then exits gracefully, is already closed, or " +"raises :exc:`GeneratorExit` (by not catching the exception), then the " +"returned awaitable will raise a :exc:`StopIteration` exception. Any further " +"awaitables returned by subsequent calls to the asynchronous generator will " +"raise a :exc:`StopAsyncIteration` exception. If the asynchronous generator " +"yields a value, a :exc:`RuntimeError` is raised by the awaitable. If the " +"asynchronous generator raises any other exception, it is propagated to the " +"caller of the awaitable. If the asynchronous generator has already exited " +"due to an exception or normal exit, then further calls to :meth:`aclose` " +"will return an awaitable that does nothing." +msgstr "" +"Renvoie un *awaitable* qui, quand il s'exécute, lève une exception :exc:" +"`GeneratorExit` dans la fonction génératrice asynchrone à l'endroit où le " +"générateur était en pause. Si la fonction génératrice asynchrone termine " +"normalement, est déjà fermée ou lève :exc:`GeneratorExit` (parce qu'elle ne " +"gère pas l'exception), alors le *awaitable* renvoyé lève une exception :exc:" +"`StopIteration`. Tout nouveau *awaitable* produit par un appel postérieur au " +"générateur asynchrone lève une exception :exc:`StopAsyncIteration`. Si le " +"générateur asynchrone produit une valeur, une :exc:`RuntimeError` est levée " +"par le *awaitable*. Si le générateur asynchrone lève une autre exception, " +"elle est propagée à l'appelant du *awaitable*. Si le générateur asynchrone a " +"déjà terminé (soit par une exception, soit normalement), alors tout nouvel " +"appel à :meth:`aclose` renvoie un *awaitable* qui ne fait rien." + +#: ../Doc/reference/expressions.rst:742 +msgid "Primaries" +msgstr "Primaires" + +#: ../Doc/reference/expressions.rst:746 +msgid "" +"Primaries represent the most tightly bound operations of the language. Their " +"syntax is:" +msgstr "" +"Les primaires (*primary* dans la grammaire formelle ci-dessous) représentent " +"les opérations qui se lient au plus proche dans le langage. Leur syntaxe " +"est :" + +#: ../Doc/reference/expressions.rst:756 +msgid "Attribute references" +msgstr "Références à des attributs" + +#: ../Doc/reference/expressions.rst:762 +msgid "An attribute reference is a primary followed by a period and a name:" +msgstr "" +"Une référence à un attribut (*attributeref* dans la grammaire formelle ci-" +"dessous) est une primaire suivie par un point et un nom :" + +#: ../Doc/reference/expressions.rst:772 +msgid "" +"The primary must evaluate to an object of a type that supports attribute " +"references, which most objects do. This object is then asked to produce the " +"attribute whose name is the identifier. This production can be customized " +"by overriding the :meth:`__getattr__` method. If this attribute is not " +"available, the exception :exc:`AttributeError` is raised. Otherwise, the " +"type and value of the object produced is determined by the object. Multiple " +"evaluations of the same attribute reference may yield different objects." +msgstr "" +"La primaire doit s'évaluer à un objet d'un type qui gère les références aux " +"attributs, ce qui est le cas de la plupart des objets. Cet objet doit alors " +"produire l'attribut dont le nom est « identifier ». Cette production peut " +"être personnalisée en surchargeant la méthode :meth:`__getattr__`. Si " +"l'attribut n'est pas disponible, une exception :exc:`AttributeError` est " +"levée. Sinon, le type et la valeur de l'objet produit sont déterminés par " +"l'objet. Plusieurs évaluations successives d'une référence à un même " +"attribut peuvent produire différents objets." + +#: ../Doc/reference/expressions.rst:784 +msgid "Subscriptions" +msgstr "Sélections" + +#: ../Doc/reference/expressions.rst:799 +msgid "" +"A subscription selects an item of a sequence (string, tuple or list) or " +"mapping (dictionary) object:" +msgstr "" +"Une sélection (*subscription* dans la grammaire formelle ci-dessous) désigne " +"un élément dans un objet séquence (chaîne, n-uplet ou liste) ou tableau de " +"correspondances (dictionnaire) :" + +#: ../Doc/reference/expressions.rst:805 +msgid "" +"The primary must evaluate to an object that supports subscription (lists or " +"dictionaries for example). User-defined objects can support subscription by " +"defining a :meth:`__getitem__` method." +msgstr "" +"La primaire doit s'appliquer à un objet qui gère les sélections (une liste " +"ou un dictionnaire par exemple). Les objets définis par l'utilisateur " +"peuvent gérer les sélections en définissant une méthode :meth:`__getitem__`." + +#: ../Doc/reference/expressions.rst:809 +msgid "" +"For built-in objects, there are two types of objects that support " +"subscription:" +msgstr "Pour les objets natifs, deux types d'objets gèrent la sélection :" + +#: ../Doc/reference/expressions.rst:811 +msgid "" +"If the primary is a mapping, the expression list must evaluate to an object " +"whose value is one of the keys of the mapping, and the subscription selects " +"the value in the mapping that corresponds to that key. (The expression list " +"is a tuple except if it has exactly one item.)" +msgstr "" +"Si la primaire est un tableau de correspondances, la liste d'expressions " +"(*expression_list* dans la grammaire formelle ci-dessous) doit pouvoir être " +"évaluée comme un objet dont la valeur est une des clés du tableau de " +"correspondances et la sélection désigne la valeur qui correspond à cette clé " +"(la liste d'expressions est un n-uplet sauf si elle comporte exactement un " +"élément)." + +#: ../Doc/reference/expressions.rst:816 +msgid "" +"If the primary is a sequence, the expression list must evaluate to an " +"integer or a slice (as discussed in the following section)." +msgstr "" +"Si la primaire est une séquence, la liste d'expressions (*expression_list* " +"dans la grammaire) doit pouvoir être évaluée comme un entier ou une tranche " +"(comme expliqué dans la section suivante)." + +#: ../Doc/reference/expressions.rst:819 +msgid "" +"The formal syntax makes no special provision for negative indices in " +"sequences; however, built-in sequences all provide a :meth:`__getitem__` " +"method that interprets negative indices by adding the length of the sequence " +"to the index (so that ``x[-1]`` selects the last item of ``x``). The " +"resulting value must be a nonnegative integer less than the number of items " +"in the sequence, and the subscription selects the item whose index is that " +"value (counting from zero). Since the support for negative indices and " +"slicing occurs in the object's :meth:`__getitem__` method, subclasses " +"overriding this method will need to explicitly add that support." +msgstr "" +"La syntaxe formelle ne traite pas des cas d'indices négatifs dans les " +"séquences ; cependant, toutes les séquences natives possèdent une méthode :" +"meth:`__getitem__` qui interprète les indices négatifs en ajoutant la " +"longueur de la séquence à l'indice (de manière à ce que ``x[-1]`` " +"sélectionne le dernier élément de ``x``). La valeur résultante doit être un " +"entier positif ou nul, inférieur au nombre d'éléments dans la séquence ; la " +"sélection désigne alors l'élément dont l'indice est cette valeur (en " +"comptant à partir de zéro). Comme la gestion des indices négatifs et des " +"tranches est faite par la méthode :meth:`__getitem__`, les sous-classes qui " +"surchargent cette méthode doivent aussi savoir les gérer, de manière " +"explicite." + +#: ../Doc/reference/expressions.rst:833 +msgid "" +"A string's items are characters. A character is not a separate data type " +"but a string of exactly one character." +msgstr "" +"Les éléments des chaînes sont des caractères. Un caractère n'est pas un type " +"en tant que tel, c'est une chaîne de longueur un." + +#: ../Doc/reference/expressions.rst:840 +msgid "Slicings" +msgstr "Tranches" + +#: ../Doc/reference/expressions.rst:854 +msgid "" +"A slicing selects a range of items in a sequence object (e.g., a string, " +"tuple or list). Slicings may be used as expressions or as targets in " +"assignment or :keyword:`del` statements. The syntax for a slicing:" +msgstr "" +"Une tranche (*slicing* dans la grammaire formelle ci-dessous) sélectionne un " +"intervalle d'éléments d'un objet séquence (par exemple une chaîne, un n-" +"uplet ou une liste, respectivement les types *string*, *tuple* et *list*). " +"Les tranches peuvent être utilisées comme des expressions ou des cibles dans " +"les assignations ou les instructions :keyword:`del`. La syntaxe est la " +"suivante :" + +#: ../Doc/reference/expressions.rst:867 +msgid "" +"There is ambiguity in the formal syntax here: anything that looks like an " +"expression list also looks like a slice list, so any subscription can be " +"interpreted as a slicing. Rather than further complicating the syntax, this " +"is disambiguated by defining that in this case the interpretation as a " +"subscription takes priority over the interpretation as a slicing (this is " +"the case if the slice list contains no proper slice)." +msgstr "" +"Il existe une ambigüité dans la syntaxe formelle ci-dessus : tout ce qui " +"ressemble à une liste d'expressions (*expression_list* vue avant) ressemble " +"aussi à une liste de tranches (*slice_list* dans la grammaire ci-dessus). En " +"conséquence, toute sélection (*subscription* dans la grammaire) peut être " +"interprétée comme une tranche. Plutôt que de compliquer encore la syntaxe, " +"l'ambigüité est levée en disant que, dans ce cas, l'interprétation en tant " +"que sélection (*subscription*) est prioritaire sur l'interprétation en tant " +"que tranche (c'est le cas si la liste de tranches (*slice_list*) ne contient " +"aucune tranche en tant que telle)." + +#: ../Doc/reference/expressions.rst:879 +msgid "" +"The semantics for a slicing are as follows. The primary is indexed (using " +"the same :meth:`__getitem__` method as normal subscription) with a key that " +"is constructed from the slice list, as follows. If the slice list contains " +"at least one comma, the key is a tuple containing the conversion of the " +"slice items; otherwise, the conversion of the lone slice item is the key. " +"The conversion of a slice item that is an expression is that expression. " +"The conversion of a proper slice is a slice object (see section :ref:" +"`types`) whose :attr:`~slice.start`, :attr:`~slice.stop` and :attr:`~slice." +"step` attributes are the values of the expressions given as lower bound, " +"upper bound and stride, respectively, substituting ``None`` for missing " +"expressions." +msgstr "" +"La sémantique pour une tranche est définie comme suit. La primaire est " +"indicée (en utilisant la même méthode :meth:`__getitem__` que pour les " +"sélections normales) avec une clé qui est construite à partir de la liste de " +"tranches (*slice_list* dans la grammaire), de cette manière : si la liste de " +"tranches contient au moins une virgule (``,``), la clé est un n-uplet " +"contenant la conversion des éléments de la tranche ; sinon, la conversion du " +"seul élément de la tranche est la clé. La conversion d'un élément de tranche " +"qui est une expression est cette expression. La conversion d'une tranche en " +"tant que telle est un objet *slice* (voir la section :ref:`types`) dont les " +"attributs :attr:`~slice.start`, :attr:`~slice.stop` et :attr:`~slice.step` " +"sont les valeurs des expressions données pour la borne inférieure " +"(*lower_bound* dans la grammaire), la borne supérieure (*upper_bound* dans " +"la grammaire) et le pas (*stride* dans la grammaire), respectivement. En cas " +"d'expression manquante, la valeur par défaut est ``None``." + +#: ../Doc/reference/expressions.rst:903 +msgid "Calls" +msgstr "Appels" + +#: ../Doc/reference/expressions.rst:905 +msgid "" +"A call calls a callable object (e.g., a :term:`function`) with a possibly " +"empty series of :term:`arguments `:" +msgstr "" +"Un appel (*call* dans la grammaire ci-dessous) appelle un objet appelable " +"(par exemple, une :term:`fonction `) avec, possiblement, une liste " +"d'\\ :term:`arguments ` :" + +#: ../Doc/reference/expressions.rst:921 +msgid "" +"An optional trailing comma may be present after the positional and keyword " +"arguments but does not affect the semantics." +msgstr "" +"Une virgule finale (optionnelle) peut être présente, après les arguments " +"positionnels et par mots-clés, mais elle n'affecte pas la sémantique." + +#: ../Doc/reference/expressions.rst:927 +msgid "" +"The primary must evaluate to a callable object (user-defined functions, " +"built-in functions, methods of built-in objects, class objects, methods of " +"class instances, and all objects having a :meth:`__call__` method are " +"callable). All argument expressions are evaluated before the call is " +"attempted. Please refer to section :ref:`function` for the syntax of " +"formal :term:`parameter` lists." +msgstr "" +"La primaire doit s'évaluer à un objet appelable (une fonction définie par " +"l'utilisateur, une fonction native, une méthode d'objet natif, un objet de " +"classe, une méthode d'instance de classe ou tout objet possédant une " +"méthode :meth:`__call__` est un appelable). Toutes les expressions des " +"arguments sont évaluées avant que l'appel ne soit exécuté. Référez-vous à la " +"section :ref:`function` pour la syntaxe des listes de :term:`paramètres " +"` formels." + +#: ../Doc/reference/expressions.rst:935 +msgid "" +"If keyword arguments are present, they are first converted to positional " +"arguments, as follows. First, a list of unfilled slots is created for the " +"formal parameters. If there are N positional arguments, they are placed in " +"the first N slots. Next, for each keyword argument, the identifier is used " +"to determine the corresponding slot (if the identifier is the same as the " +"first formal parameter name, the first slot is used, and so on). If the " +"slot is already filled, a :exc:`TypeError` exception is raised. Otherwise, " +"the value of the argument is placed in the slot, filling it (even if the " +"expression is ``None``, it fills the slot). When all arguments have been " +"processed, the slots that are still unfilled are filled with the " +"corresponding default value from the function definition. (Default values " +"are calculated, once, when the function is defined; thus, a mutable object " +"such as a list or dictionary used as default value will be shared by all " +"calls that don't specify an argument value for the corresponding slot; this " +"should usually be avoided.) If there are any unfilled slots for which no " +"default value is specified, a :exc:`TypeError` exception is raised. " +"Otherwise, the list of filled slots is used as the argument list for the " +"call." +msgstr "" +"Si des arguments par mots-clés sont présents, ils sont d'abord convertis en " +"arguments positionnels, comme suit. Pour commencer, une liste de *slots* " +"vides est créée pour les paramètres formels. S'il y a N arguments " +"positionnels, ils sont placés dans les N premiers *slots*. Ensuite, pour " +"chaque argument par mot-clé, l'identifiant est utilisé pour déterminer le " +"*slot* correspondant (si l'identifiant est le même que le nom du premier " +"paramètre formel, le premier *slot* est utilisé, et ainsi de suite). Si le " +"*slot* est déjà rempli, une exception :exc:`TypeError` est levée. Sinon, la " +"valeur de l'argument est placée dans le *slot*, ce qui le remplit (même si " +"l'expression est ``None``, cela remplit le *slot*). Quand tous les arguments " +"ont été traités, les *slots* qui sont toujours vides sont remplis avec la " +"valeur par défaut correspondante dans la définition de la fonction (les " +"valeurs par défaut sont calculées, une seule fois, lorsque la fonction est " +"définie ; ainsi, un objet mutable tel qu'une liste ou un dictionnaire " +"utilisé en tant valeur par défaut sera partagé entre tous les appels qui ne " +"spécifient pas de valeur d argument pour ce *slot* ; on évite généralement " +"de faire ça). S'il reste des *slots* pour lesquels aucune valeur par défaut " +"n'est définie, une exception :exc:`TypeError` est levée. Sinon, la liste des " +"*slots* remplie est utilisée en tant que liste des arguments pour l'appel." + +#: ../Doc/reference/expressions.rst:955 +msgid "" +"An implementation may provide built-in functions whose positional parameters " +"do not have names, even if they are 'named' for the purpose of " +"documentation, and which therefore cannot be supplied by keyword. In " +"CPython, this is the case for functions implemented in C that use :c:func:" +"`PyArg_ParseTuple` to parse their arguments." +msgstr "" +"Une implémentation peut fournir des fonctions natives dont les paramètres " +"positionnels n'ont pas de nom, même s'ils sont « nommés » pour les besoins " +"de la documentation. Ils ne peuvent donc pas être spécifiés par mot-clé. En " +"CPython, les fonctions implémentées en C qui utilisent :c:func:" +"`PyArg_ParseTuple` pour analyser leurs arguments en font partie." + +#: ../Doc/reference/expressions.rst:961 +msgid "" +"If there are more positional arguments than there are formal parameter " +"slots, a :exc:`TypeError` exception is raised, unless a formal parameter " +"using the syntax ``*identifier`` is present; in this case, that formal " +"parameter receives a tuple containing the excess positional arguments (or an " +"empty tuple if there were no excess positional arguments)." +msgstr "" +"S'il y a plus d'arguments positionnels que de *slots* de paramètres formels, " +"une exception :exc:`TypeError` est levée, à moins qu'un paramètre formel " +"n'utilise la syntaxe ``*identifier`` ; dans ce cas, le paramètre formel " +"reçoit un n-uplet contenant les arguments positionnels en supplément (ou un " +"n-uplet vide s'il n'y avait pas d'arguments positionnel en trop)." + +#: ../Doc/reference/expressions.rst:967 +msgid "" +"If any keyword argument does not correspond to a formal parameter name, a :" +"exc:`TypeError` exception is raised, unless a formal parameter using the " +"syntax ``**identifier`` is present; in this case, that formal parameter " +"receives a dictionary containing the excess keyword arguments (using the " +"keywords as keys and the argument values as corresponding values), or a " +"(new) empty dictionary if there were no excess keyword arguments." +msgstr "" +"Si un argument par mot-clé ne correspond à aucun nom de paramètre formel, " +"une exception :exc:`TypeError` est levée, à moins qu'un paramètre formel " +"n'utilise la syntaxe ``**identifier`` ; dans ce cas, le paramètre formel " +"reçoit un dictionnaire contenant les arguments par mot-clé en trop (en " +"utilisant les mots-clés comme clés et les arguments comme valeurs pour ce " +"dictionnaire), ou un (nouveau) dictionnaire vide s'il n'y a pas d'argument " +"par mot-clé en trop." + +#: ../Doc/reference/expressions.rst:978 +msgid "" +"If the syntax ``*expression`` appears in the function call, ``expression`` " +"must evaluate to an :term:`iterable`. Elements from these iterables are " +"treated as if they were additional positional arguments. For the call " +"``f(x1, x2, *y, x3, x4)``, if *y* evaluates to a sequence *y1*, ..., *yM*, " +"this is equivalent to a call with M+4 positional arguments *x1*, *x2*, " +"*y1*, ..., *yM*, *x3*, *x4*." +msgstr "" +"Si la syntaxe ``*expression`` apparaît dans l'appel de la fonction, " +"``expression`` doit pouvoir s'évaluer à un :term:`itérable `. Les " +"éléments de ces itérables sont traités comme s'ils étaient des arguments " +"positionnels supplémentaires. Pour l'appel ``f(x1, x2, *y, x3, x4)``, si *y* " +"s'évalue comme une séquence *y1*, ..., *yM*, c'est équivalent à un appel " +"avec M+4 arguments positionnels *x1*, *x2*, *y1*, ..., *yM*, *x3*, *x4*." + +#: ../Doc/reference/expressions.rst:985 +msgid "" +"A consequence of this is that although the ``*expression`` syntax may appear " +"*after* explicit keyword arguments, it is processed *before* the keyword " +"arguments (and any ``**expression`` arguments -- see below). So::" +msgstr "" +"Une conséquence est que bien que la syntaxe ``*expression`` puisse " +"apparaître *après* les arguments par mots-clés explicites, ils sont traités " +"*avant* les arguments par mots-clés (et avant tout argument ``**expression`` " +"-- voir ci-dessous). Ainsi ::" + +#: ../Doc/reference/expressions.rst:1001 +msgid "" +"It is unusual for both keyword arguments and the ``*expression`` syntax to " +"be used in the same call, so in practice this confusion does not arise." +msgstr "" +"Il est inhabituel que les syntaxes d'arguments par mots-clés et " +"``*expression`` soient utilisés simultanément dans un même appel, ce qui " +"fait que la confusion reste hypothétique." + +#: ../Doc/reference/expressions.rst:1007 +msgid "" +"If the syntax ``**expression`` appears in the function call, ``expression`` " +"must evaluate to a :term:`mapping`, the contents of which are treated as " +"additional keyword arguments. If a keyword is already present (as an " +"explicit keyword argument, or from another unpacking), a :exc:`TypeError` " +"exception is raised." +msgstr "" +"Si la syntaxe ``**expression`` apparaît dans un appel de fonction, " +"``expression`` doit pouvoir s'évaluer comme un :term:`tableau de " +"correspondances `, dont le contenu est traité comme des arguments " +"par mots-clés supplémentaires. Si un mot-clé est déjà présent (en tant " +"qu'argument par mot-clé explicite, ou venant d'un autre dépaquetage), une " +"exception :exc:`TypeError` est levée." + +#: ../Doc/reference/expressions.rst:1013 +msgid "" +"Formal parameters using the syntax ``*identifier`` or ``**identifier`` " +"cannot be used as positional argument slots or as keyword argument names." +msgstr "" +"Les paramètres formels qui utilisent la syntaxe ``*identifier`` ou " +"``**identifier`` ne peuvent pas être utilisés comme arguments positionnels " +"ou comme noms d'arguments par mots-clés." + +#: ../Doc/reference/expressions.rst:1016 +msgid "" +"Function calls accept any number of ``*`` and ``**`` unpackings, positional " +"arguments may follow iterable unpackings (``*``), and keyword arguments may " +"follow dictionary unpackings (``**``). Originally proposed by :pep:`448`." +msgstr "" +"Les appels de fonction acceptent n'importe quel nombre de dépaquetages par " +"``*`` ou ``**``. Des arguments positionnels peuvent suivre les dépaquetages " +"d'itérables (``*``) et les arguments par mots-clés peuvent suivre les " +"dépaquetages de dictionnaires (``**``). Proposé pour la première fois par " +"la :pep:`448`." + +#: ../Doc/reference/expressions.rst:1022 +msgid "" +"A call always returns some value, possibly ``None``, unless it raises an " +"exception. How this value is computed depends on the type of the callable " +"object." +msgstr "" +"Un appel renvoie toujours une valeur, possiblement ``None``, à moins qu'il " +"ne lève une exception. La façon dont celle valeur est calculée dépend du " +"type de l'objet appelable." + +#: ../Doc/reference/expressions.rst:1026 +msgid "If it is---" +msgstr "Si c'est ---" + +#: ../Doc/reference/expressions.rst:1039 +msgid "a user-defined function:" +msgstr "une fonction définie par l'utilisateur :" + +#: ../Doc/reference/expressions.rst:1035 +msgid "" +"The code block for the function is executed, passing it the argument list. " +"The first thing the code block will do is bind the formal parameters to the " +"arguments; this is described in section :ref:`function`. When the code " +"block executes a :keyword:`return` statement, this specifies the return " +"value of the function call." +msgstr "" +"le bloc de code de la fonction est exécuté, il reçoit la liste des " +"arguments. La première chose que le bloc de code fait est de lier les " +"paramètres formels aux arguments ; ceci est décrit dans la section :ref:" +"`function`. Quand le bloc de code exécute l'instruction :keyword:`return`, " +"cela spécifie la valeur de retour de l'appel de la fonction." + +#: ../Doc/reference/expressions.rst:1053 +msgid "a built-in function or method:" +msgstr "une fonction ou une méthode native :" + +#: ../Doc/reference/expressions.rst:1052 +msgid "" +"The result is up to the interpreter; see :ref:`built-in-funcs` for the " +"descriptions of built-in functions and methods." +msgstr "" +"le résultat dépend de l'interpréteur ; lisez :ref:`built-in-funcs` pour une " +"description des fonctions et méthodes natives." + +#: ../Doc/reference/expressions.rst:1060 +msgid "a class object:" +msgstr "un objet classe :" + +#: ../Doc/reference/expressions.rst:1060 +msgid "A new instance of that class is returned." +msgstr "une nouvelle instance de cette classe est renvoyée." + +#: ../Doc/reference/expressions.rst:1070 +msgid "a class instance method:" +msgstr "une méthode d'instance de classe :" + +#: ../Doc/reference/expressions.rst:1068 +msgid "" +"The corresponding user-defined function is called, with an argument list " +"that is one longer than the argument list of the call: the instance becomes " +"the first argument." +msgstr "" +"la fonction correspondante définie par l'utilisateur est appelée, avec la " +"liste d'arguments qui est plus grande d'un élément que la liste des " +"arguments de l'appel : l'instance est placée en tête des arguments." + +#: ../Doc/reference/expressions.rst:1079 +msgid "a class instance:" +msgstr "une instance de classe :" + +#: ../Doc/reference/expressions.rst:1077 +msgid "" +"The class must define a :meth:`__call__` method; the effect is then the same " +"as if that method was called." +msgstr "" +"la classe doit définir une méthode :meth:`__call__` ; l'effet est le même " +"que si cette méthode était appelée." + +#: ../Doc/reference/expressions.rst:1085 ../Doc/reference/expressions.rst:1831 +msgid "Await expression" +msgstr "Expression ``await``" + +#: ../Doc/reference/expressions.rst:1087 +msgid "" +"Suspend the execution of :term:`coroutine` on an :term:`awaitable` object. " +"Can only be used inside a :term:`coroutine function`." +msgstr "" +"Suspend l'exécution de la :term:`coroutine` sur un objet :term:`awaitable`. " +"Ne peut être utilisée qu'à l'intérieur d'une :term:`coroutine function`." + +#: ../Doc/reference/expressions.rst:1099 +msgid "The power operator" +msgstr "L'opérateur puissance" + +#: ../Doc/reference/expressions.rst:1105 +msgid "" +"The power operator binds more tightly than unary operators on its left; it " +"binds less tightly than unary operators on its right. The syntax is:" +msgstr "" +"L'opérateur puissance est plus prioritaire que les opérateurs unaires sur sa " +"gauche ; il est moins prioritaire que les opérateurs unaires sur sa droite. " +"La syntaxe est :" + +#: ../Doc/reference/expressions.rst:1111 +msgid "" +"Thus, in an unparenthesized sequence of power and unary operators, the " +"operators are evaluated from right to left (this does not constrain the " +"evaluation order for the operands): ``-1**2`` results in ``-1``." +msgstr "" +"Ainsi, dans une séquence sans parenthèse de puissance et d'opérateurs " +"unaires, les opérateurs sont évalués de droite à gauche (ceci ne contraint " +"pas l'ordre d'évaluation des opérandes) : ``-1**2`` donne ``-1``." + +#: ../Doc/reference/expressions.rst:1115 +msgid "" +"The power operator has the same semantics as the built-in :func:`pow` " +"function, when called with two arguments: it yields its left argument raised " +"to the power of its right argument. The numeric arguments are first " +"converted to a common type, and the result is of that type." +msgstr "" +"L'opérateur puissance possède la même sémantique que la fonction native :" +"func:`pow` lorsqu'elle est appelée avec deux arguments : il produit son " +"argument de gauche élevé à la puissance de son argument de droite. Les " +"arguments numériques sont d'abord convertis vers un type commun et le " +"résultat est de ce type." + +#: ../Doc/reference/expressions.rst:1120 +msgid "" +"For int operands, the result has the same type as the operands unless the " +"second argument is negative; in that case, all arguments are converted to " +"float and a float result is delivered. For example, ``10**2`` returns " +"``100``, but ``10**-2`` returns ``0.01``." +msgstr "" +"Pour les opérandes entiers, le résultat est du même type à moins que le " +"deuxième argument ne soit négatif ; dans ce cas, tous les arguments sont " +"convertis en nombres à virgule flottante et le résultat est un nombre à " +"virgule flottante. Par exemple, ``10**2`` renvoie ``100`` mais ``10**-2`` " +"renvoie ``0.01``." + +#: ../Doc/reference/expressions.rst:1125 +msgid "" +"Raising ``0.0`` to a negative power results in a :exc:`ZeroDivisionError`. " +"Raising a negative number to a fractional power results in a :class:" +"`complex` number. (In earlier versions it raised a :exc:`ValueError`.)" +msgstr "" +"Élever ``0.0`` à une puissance négative entraîne une :exc:" +"`ZeroDivisionError`. Élever un nombre négatif à une puissance fractionnaire " +"renvoie un nombre :class:`complexe ` (dans les versions " +"antérieures, cela levait une :exc:`ValueError`)." + +#: ../Doc/reference/expressions.rst:1133 +msgid "Unary arithmetic and bitwise operations" +msgstr "Arithmétique unaire et opérations sur les bits" + +#: ../Doc/reference/expressions.rst:1139 +msgid "All unary arithmetic and bitwise operations have the same priority:" +msgstr "" +"Toute l'arithmétique unaire et les opérations sur les bits ont la même " +"priorité :" + +#: ../Doc/reference/expressions.rst:1150 +msgid "" +"The unary ``-`` (minus) operator yields the negation of its numeric argument." +msgstr "" +"L'opérateur unaire ``-`` (moins) produit l'opposé de son argument numérique." + +#: ../Doc/reference/expressions.rst:1157 +msgid "The unary ``+`` (plus) operator yields its numeric argument unchanged." +msgstr "" +"L'opérateur unaire ``+`` (plus) produit son argument numérique inchangé." + +#: ../Doc/reference/expressions.rst:1163 +msgid "" +"The unary ``~`` (invert) operator yields the bitwise inversion of its " +"integer argument. The bitwise inversion of ``x`` is defined as ``-(x+1)``. " +"It only applies to integral numbers." +msgstr "" +"L'opérateur unaire ``~`` (inversion) produit l'inversion bit à bit de son " +"argument entier. L'inversion bit à bit de ``x`` est définie comme ``-(x" +"+1)``. Elle s'applique uniquement aux nombres entiers." + +#: ../Doc/reference/expressions.rst:1169 +msgid "" +"In all three cases, if the argument does not have the proper type, a :exc:" +"`TypeError` exception is raised." +msgstr "" +"Dans ces trois cas, si l'argument n'est pas du bon type, une exception :exc:" +"`TypeError` est levée." + +#: ../Doc/reference/expressions.rst:1176 +msgid "Binary arithmetic operations" +msgstr "Opérations arithmétiques binaires" + +#: ../Doc/reference/expressions.rst:1180 +msgid "" +"The binary arithmetic operations have the conventional priority levels. " +"Note that some of these operations also apply to certain non-numeric types. " +"Apart from the power operator, there are only two levels, one for " +"multiplicative operators and one for additive operators:" +msgstr "" +"Les opérations arithmétiques binaires suivent les conventions pour les " +"priorités. Notez que certaines de ces opérations s'appliquent aussi à des " +"types non numériques. À part l'opérateur puissance, il n'y a que deux " +"niveaux, le premier pour les opérateurs multiplicatifs et le second pour les " +"opérateurs additifs :" + +#: ../Doc/reference/expressions.rst:1195 +msgid "" +"The ``*`` (multiplication) operator yields the product of its arguments. " +"The arguments must either both be numbers, or one argument must be an " +"integer and the other must be a sequence. In the former case, the numbers " +"are converted to a common type and then multiplied together. In the latter " +"case, sequence repetition is performed; a negative repetition factor yields " +"an empty sequence." +msgstr "" +"L'opérateur ``*`` (multiplication) produit le produit de ses arguments. Les " +"deux arguments doivent être des nombres ou alors le premier argument doit " +"être un entier et l'autre doit être une séquence. Dans le premier cas, les " +"nombres sont convertis dans un type commun puis sont multipliés entre eux. " +"Dans le dernier cas, la séquence est répétée ; une répétition négative " +"produit une séquence vide." + +#: ../Doc/reference/expressions.rst:1205 +msgid "" +"The ``@`` (at) operator is intended to be used for matrix multiplication. " +"No builtin Python types implement this operator." +msgstr "" +"L'opérateur ``@`` (prononcé *at* en anglais) a vocation à multiplier des " +"matrices. Aucun type Python natif n'implémente cet opérateur." + +#: ../Doc/reference/expressions.rst:1216 +msgid "" +"The ``/`` (division) and ``//`` (floor division) operators yield the " +"quotient of their arguments. The numeric arguments are first converted to a " +"common type. Division of integers yields a float, while floor division of " +"integers results in an integer; the result is that of mathematical division " +"with the 'floor' function applied to the result. Division by zero raises " +"the :exc:`ZeroDivisionError` exception." +msgstr "" +"Les opérateurs ``/`` (division) et ``//`` (division entière ou *floor " +"division* en anglais) produisent le quotient de leurs arguments. Les " +"arguments numériques sont d'abord convertis vers un type commun. La division " +"d'entiers produit un nombre à virgule flottante alors que la division " +"entière d'entiers produit un entier ; le résultat est celui de la division " +"mathématique suivie de la fonction ``floor`` appliquée au résultat. Une " +"division par zéro lève une exception :exc:`ZeroDivisionError`." + +#: ../Doc/reference/expressions.rst:1227 +msgid "" +"The ``%`` (modulo) operator yields the remainder from the division of the " +"first argument by the second. The numeric arguments are first converted to " +"a common type. A zero right argument raises the :exc:`ZeroDivisionError` " +"exception. The arguments may be floating point numbers, e.g., ``3.14%0.7`` " +"equals ``0.34`` (since ``3.14`` equals ``4*0.7 + 0.34``.) The modulo " +"operator always yields a result with the same sign as its second operand (or " +"zero); the absolute value of the result is strictly smaller than the " +"absolute value of the second operand [#]_." +msgstr "" +"L'opérateur ``%`` (modulo) produit le reste de la division entière du " +"premier argument par le second. Les arguments numériques sont d'abord " +"convertis vers un type commun. Un zéro en second argument lève une " +"exception :exc:`ZeroDivisionError`. Les arguments peuvent être des nombres à " +"virgule flottante, par exemple ``3.14%0.7`` vaut ``0.34`` (puisque ``3.14`` " +"égale ``4*0.7+0.34``). L'opérateur modulo produit toujours un résultat du " +"même signe que le second opérande (ou zéro) ; la valeur absolue du résultat " +"est strictement inférieure à la valeur absolue du second opérande [#]_." + +#: ../Doc/reference/expressions.rst:1236 +msgid "" +"The floor division and modulo operators are connected by the following " +"identity: ``x == (x//y)*y + (x%y)``. Floor division and modulo are also " +"connected with the built-in function :func:`divmod`: ``divmod(x, y) == (x//" +"y, x%y)``. [#]_." +msgstr "" +"Les opérateurs division entière et modulo sont liés par la relation " +"suivante : ``x == (x//y)*y + (x%y)``. La division entière et le module sont " +"aussi liés à la fonction native :func:`divmod` : ``divmod(x, y) == (x//y, x" +"%y)`` [#]_." + +#: ../Doc/reference/expressions.rst:1241 +msgid "" +"In addition to performing the modulo operation on numbers, the ``%`` " +"operator is also overloaded by string objects to perform old-style string " +"formatting (also known as interpolation). The syntax for string formatting " +"is described in the Python Library Reference, section :ref:`old-string-" +"formatting`." +msgstr "" +"En plus de calculer le modulo sur les nombres, l'opérateur ``%`` est aussi " +"surchargé par les objets chaînes de caractères pour effectuer le formatage " +"de chaîne « à l'ancienne ». La syntaxe pour le formatage de chaînes est " +"décrit dans la référence de la bibliothèque Python, dans la section :ref:" +"`old-string-formatting`." + +#: ../Doc/reference/expressions.rst:1246 +msgid "" +"The floor division operator, the modulo operator, and the :func:`divmod` " +"function are not defined for complex numbers. Instead, convert to a " +"floating point number using the :func:`abs` function if appropriate." +msgstr "" +"L'opérateur de division entière, l'opérateur modulo et la fonction :func:" +"`divmod` ne sont pas définis pour les nombres complexes. À la place, vous " +"pouvez, si cela a du sens pour ce que vous voulez faire, les convertir vers " +"des nombres à virgule flottante en utilisant la fonction :func:`abs`." + +#: ../Doc/reference/expressions.rst:1255 +msgid "" +"The ``+`` (addition) operator yields the sum of its arguments. The " +"arguments must either both be numbers or both be sequences of the same " +"type. In the former case, the numbers are converted to a common type and " +"then added together. In the latter case, the sequences are concatenated." +msgstr "" +"L'opérateur ``+`` (addition) produit la somme de ses arguments. Les " +"arguments doivent être tous les deux des nombres ou des séquences du même " +"type. Dans le premier cas, les nombres sont convertis vers un type commun " +"puis sont additionnés entre eux. Dans le dernier cas, les séquences sont " +"concaténées." + +#: ../Doc/reference/expressions.rst:1265 +msgid "" +"The ``-`` (subtraction) operator yields the difference of its arguments. " +"The numeric arguments are first converted to a common type." +msgstr "" +"L'opérateur ``-`` (soustraction) produit la différence entre ses arguments. " +"Les arguments numériques sont d'abord convertis vers un type commun." + +#: ../Doc/reference/expressions.rst:1272 +msgid "Shifting operations" +msgstr "Opérations de décalage" + +#: ../Doc/reference/expressions.rst:1279 +msgid "" +"The shifting operations have lower priority than the arithmetic operations:" +msgstr "" +"Les opérations de décalage sont moins prioritaires que les opérations " +"arithmétiques :" + +#: ../Doc/reference/expressions.rst:1284 +msgid "" +"These operators accept integers as arguments. They shift the first argument " +"to the left or right by the number of bits given by the second argument." +msgstr "" +"Ces opérateurs prennent des entiers comme arguments. Ils décalent le premier " +"argument vers la gauche ou vers la droite du nombre de bits donné par le " +"deuxième argument." + +#: ../Doc/reference/expressions.rst:1289 +msgid "" +"A right shift by *n* bits is defined as floor division by ``pow(2,n)``. A " +"left shift by *n* bits is defined as multiplication with ``pow(2,n)``." +msgstr "" +"Un décalage à droite de *n* bits est défini comme la division entière par " +"``pow(2,n)``. Un décalage à gauche de *n* bits est défini comme la " +"multiplication par ``pow(2,n)``." + +#: ../Doc/reference/expressions.rst:1296 +msgid "Binary bitwise operations" +msgstr "Opérations binaires bit à bit" + +#: ../Doc/reference/expressions.rst:1300 +msgid "Each of the three bitwise operations has a different priority level:" +msgstr "" +"Chacune des trois opérations binaires bit à bit possède une priorité " +"différente :" + +#: ../Doc/reference/expressions.rst:1311 +msgid "" +"The ``&`` operator yields the bitwise AND of its arguments, which must be " +"integers." +msgstr "" +"L'opérateur ``&`` produit le ET logique de ses arguments, qui doivent être " +"des entiers." + +#: ../Doc/reference/expressions.rst:1319 +msgid "" +"The ``^`` operator yields the bitwise XOR (exclusive OR) of its arguments, " +"which must be integers." +msgstr "" +"L'opérateur ``^`` produit le OU EXCLUSIF (XOR) logique de ses arguments, qui " +"doivent être des entiers." + +#: ../Doc/reference/expressions.rst:1327 +msgid "" +"The ``|`` operator yields the bitwise (inclusive) OR of its arguments, which " +"must be integers." +msgstr "" +"L'opérateur ``|`` produit le OU logique de ses arguments, qui doivent être " +"des entiers." + +#: ../Doc/reference/expressions.rst:1334 +msgid "Comparisons" +msgstr "Comparaisons" + +#: ../Doc/reference/expressions.rst:1346 +msgid "" +"Unlike C, all comparison operations in Python have the same priority, which " +"is lower than that of any arithmetic, shifting or bitwise operation. Also " +"unlike C, expressions like ``a < b < c`` have the interpretation that is " +"conventional in mathematics:" +msgstr "" +"Au contraire du C, toutes les opérations de comparaison en Python possèdent " +"la même priorité, qui est plus faible que celle des opérations " +"arithmétiques, décalages ou binaires bit à bit. Toujours contrairement au C, " +"les expressions telles que ``a < b < c`` sont interprétées comme elles le " +"seraient conventionnellement en mathématiques :" + +#: ../Doc/reference/expressions.rst:1356 +msgid "Comparisons yield boolean values: ``True`` or ``False``." +msgstr "" +"Les comparaisons produisent des valeurs booléennes : ``True`` ou ``False``." + +#: ../Doc/reference/expressions.rst:1360 +msgid "" +"Comparisons can be chained arbitrarily, e.g., ``x < y <= z`` is equivalent " +"to ``x < y and y <= z``, except that ``y`` is evaluated only once (but in " +"both cases ``z`` is not evaluated at all when ``x < y`` is found to be " +"false)." +msgstr "" +"Les comparaisons peuvent être enchaînées arbitrairement, par exemple ``x < y " +"<= z`` est équivalent à ``x < y and y <= z``, sauf que ``y`` est évalué " +"seulement une fois (mais dans les deux cas, ``z`` n'est pas évalué du tout " +"si ``x < y`` s'avère être faux)." + +#: ../Doc/reference/expressions.rst:1364 +msgid "" +"Formally, if *a*, *b*, *c*, ..., *y*, *z* are expressions and *op1*, " +"*op2*, ..., *opN* are comparison operators, then ``a op1 b op2 c ... y opN " +"z`` is equivalent to ``a op1 b and b op2 c and ... y opN z``, except that " +"each expression is evaluated at most once." +msgstr "" +"Formellement, si *a*, *b*, *c*, ..., *y*, *z* sont des expressions et *op1*, " +"*op2*, ..., *opN* sont des opérateurs de comparaison, alors ``a op1 b op2 " +"c ... y opN z`` est équivalent à ``a op1 b and b op2 c and ... y opN z``, " +"sauf que chaque expression est évaluée au maximum une fois." + +#: ../Doc/reference/expressions.rst:1369 +msgid "" +"Note that ``a op1 b op2 c`` doesn't imply any kind of comparison between *a* " +"and *c*, so that, e.g., ``x < y > z`` is perfectly legal (though perhaps not " +"pretty)." +msgstr "" +"Notez que ``a op1 b op2 c`` n'implique aucune comparaison entre *a* et *c*. " +"Ainsi, par exemple, ``x < y > z`` est parfaitement légal (mais peut-être pas " +"très élégant)." + +#: ../Doc/reference/expressions.rst:1374 +msgid "Value comparisons" +msgstr "Comparaisons de valeurs" + +#: ../Doc/reference/expressions.rst:1376 +msgid "" +"The operators ``<``, ``>``, ``==``, ``>=``, ``<=``, and ``!=`` compare the " +"values of two objects. The objects do not need to have the same type." +msgstr "" +"Les opérateurs ``<``, ``>``, ``==``, ``>=``, ``<=`` et ``!=`` comparent les " +"valeurs de deux objets. Les objets n'ont pas besoin d'être du même type." + +#: ../Doc/reference/expressions.rst:1379 +msgid "" +"Chapter :ref:`objects` states that objects have a value (in addition to type " +"and identity). The value of an object is a rather abstract notion in " +"Python: For example, there is no canonical access method for an object's " +"value. Also, there is no requirement that the value of an object should be " +"constructed in a particular way, e.g. comprised of all its data attributes. " +"Comparison operators implement a particular notion of what the value of an " +"object is. One can think of them as defining the value of an object " +"indirectly, by means of their comparison implementation." +msgstr "" +"Le chapitre :ref:`objects` indique que les objets ont une valeur (en plus " +"d'un type et d'un identifiant). La valeur d'un objet est une notion plutôt " +"abstraite en Python : par exemple, il n'existe pas de méthode canonique pour " +"accéder à la valeur d'un objet. De la même manière, il n'y a aucune " +"obligation concernant la construction de la valeur d'un objet, par exemple " +"qu'elle prenne en compte toutes les données de ses attributs. Les opérateurs " +"de comparaison implémentent une notion particulière de ce qu'est la valeur " +"d'un objet. Vous pouvez vous le représenter comme une définition indirecte " +"de la valeur d'un objet, *via* l'implémentation de leur comparaison." + +#: ../Doc/reference/expressions.rst:1388 +msgid "" +"Because all types are (direct or indirect) subtypes of :class:`object`, they " +"inherit the default comparison behavior from :class:`object`. Types can " +"customize their comparison behavior by implementing :dfn:`rich comparison " +"methods` like :meth:`__lt__`, described in :ref:`customization`." +msgstr "" +"Comme tous les types sont des sous-types (directs ou indirects) de la " +"classe :class:`object`, ils héritent du comportement de comparaison par " +"défaut de :class:`object`. Les types peuvent personnaliser le comportement " +"des comparaisons en implémentant des :dfn:`méthodes de comparaisons riches`, " +"comme :meth:`__lt__`, décrites dans :ref:`customization`." + +#: ../Doc/reference/expressions.rst:1394 +msgid "" +"The default behavior for equality comparison (``==`` and ``!=``) is based on " +"the identity of the objects. Hence, equality comparison of instances with " +"the same identity results in equality, and equality comparison of instances " +"with different identities results in inequality. A motivation for this " +"default behavior is the desire that all objects should be reflexive (i.e. " +"``x is y`` implies ``x == y``)." +msgstr "" +"Le comportement par défaut pour le test d'égalité (``==`` et ``!=``) se base " +"sur les identifiants des objets. Ainsi, un test d'égalité entre deux " +"instances qui ont le même identifiant est vrai, un test d'égalité entre deux " +"instances qui ont des identifiants différents est faux. La raison de ce " +"choix est que Python souhaite que tous les objets soient réflexifs, c'est-à-" +"dire que ``x is y`` implique ``x == y``." + +#: ../Doc/reference/expressions.rst:1401 +msgid "" +"A default order comparison (``<``, ``>``, ``<=``, and ``>=``) is not " +"provided; an attempt raises :exc:`TypeError`. A motivation for this default " +"behavior is the lack of a similar invariant as for equality." +msgstr "" +"La relation d'ordre (``<``, ``>``, ``<=`` et ``>=``) n'est pas fournie par " +"défaut ; une tentative se solde par une :exc:`TypeError`. La raison de ce " +"choix est qu'il n'existe pas d'invariant similaire à celui de l'égalité." + +#: ../Doc/reference/expressions.rst:1405 +msgid "" +"The behavior of the default equality comparison, that instances with " +"different identities are always unequal, may be in contrast to what types " +"will need that have a sensible definition of object value and value-based " +"equality. Such types will need to customize their comparison behavior, and " +"in fact, a number of built-in types have done that." +msgstr "" +"Le comportement du test d'égalité par défaut, à savoir que les instances " +"avec des identités différentes ne sont jamais égales, peut être en " +"contradiction avec les types qui définissent la « valeur » d'un objet et se " +"basent sur cette « valeur » pour l'égalité. De tels types doivent " +"personnaliser leurs tests de comparaison et, en fait, c'est ce qu'ont fait " +"un certain nombre de types natifs." + +#: ../Doc/reference/expressions.rst:1411 +msgid "" +"The following list describes the comparison behavior of the most important " +"built-in types." +msgstr "" +"La liste suivante décrit le comportement des tests d'égalité pour les types " +"natifs les plus importants." + +#: ../Doc/reference/expressions.rst:1414 +msgid "" +"Numbers of built-in numeric types (:ref:`typesnumeric`) and of the standard " +"library types :class:`fractions.Fraction` and :class:`decimal.Decimal` can " +"be compared within and across their types, with the restriction that complex " +"numbers do not support order comparison. Within the limits of the types " +"involved, they compare mathematically (algorithmically) correct without loss " +"of precision." +msgstr "" +"Beaucoup de types numériques natifs (:ref:`typesnumeric`) et de types de la " +"bibliothèque standard :class:`fractions.Fraction` ainsi que :class:`decimal." +"decimal` peuvent être comparés, au sein de leur propre classe ou avec " +"d'autres objets de classes différentes. Une exception notable concerne les " +"nombres complexes qui ne gèrent pas la relation d'ordre. Dans les limites " +"des types concernés, la comparaison mathématique équivaut à la comparaison " +"algorithmique, sans perte de précision." + +#: ../Doc/reference/expressions.rst:1421 +msgid "" +"The not-a-number values ``float('NaN')`` and ``decimal.Decimal('NaN')`` are " +"special. Any ordered comparison of a number to a not-a-number value is " +"false. A counter-intuitive implication is that not-a-number values are not " +"equal to themselves. For example, if ``x = float('NaN')``, ``3 < x``, ``x < " +"3``, ``x == x``, ``x != x`` are all false. This behavior is compliant with " +"IEEE 754." +msgstr "" +"Les valeurs non numériques ``float('NaN')`` et ``decimal.Decimal('NaN')`` " +"sont spéciales : toute comparaison entre un nombre et une valeur non " +"numérique est fausse. Une implication contre-intuitive à cela est que les " +"valeurs non numériques ne sont pas égales à elles-mêmes. Par exemple, avec " +"``x = float('NaN')``, ``3 < x``, ``x < 3``, ``x == x``, ``x != x`` sont " +"toutes fausses. Ce comportement est en accord avec IEEE 754." + +#: ../Doc/reference/expressions.rst:1427 +msgid "" +"Binary sequences (instances of :class:`bytes` or :class:`bytearray`) can be " +"compared within and across their types. They compare lexicographically " +"using the numeric values of their elements." +msgstr "" +"Les séquences binaires (instances du type :class:`bytes` ou :class:" +"`bytearray`) peuvent être comparées au sein de la classe et entre classes. " +"La comparaison est lexicographique, en utilisant la valeur numérique des " +"éléments." + +#: ../Doc/reference/expressions.rst:1431 +msgid "" +"Strings (instances of :class:`str`) compare lexicographically using the " +"numerical Unicode code points (the result of the built-in function :func:" +"`ord`) of their characters. [#]_" +msgstr "" +"Les chaînes de caractères (instances de :class:`str`) respectent l'ordre " +"lexicographique en utilisant la valeur Unicode (le résultat de la fonction " +"native :func:`ord`) des caractères [#]_." + +#: ../Doc/reference/expressions.rst:1435 +msgid "Strings and binary sequences cannot be directly compared." +msgstr "" +"Les chaînes de caractères et les séquences binaires ne peuvent pas être " +"comparées directement." + +#: ../Doc/reference/expressions.rst:1437 +msgid "" +"Sequences (instances of :class:`tuple`, :class:`list`, or :class:`range`) " +"can be compared only within each of their types, with the restriction that " +"ranges do not support order comparison. Equality comparison across these " +"types results in inequality, and ordering comparison across these types " +"raises :exc:`TypeError`." +msgstr "" +"Les séquences (instances de :class:`tuple`, :class:`list` ou :class:`range`) " +"peuvent être comparées uniquement entre instances de même type, en sachant " +"que les intervalles (*range*) ne gèrent pas la relation d'ordre. Le test " +"d'égalité entre ces types renvoie faux et une comparaison entre instances de " +"types différents lève une :exc:`TypeError`." + +#: ../Doc/reference/expressions.rst:1443 +msgid "" +"Sequences compare lexicographically using comparison of corresponding " +"elements, whereby reflexivity of the elements is enforced." +msgstr "" +"Les séquences suivent l'ordre lexicographique en utilisant la comparaison de " +"leurs éléments, sachant que la réflexivité des éléments est appliquée." + +#: ../Doc/reference/expressions.rst:1446 +msgid "" +"In enforcing reflexivity of elements, the comparison of collections assumes " +"that for a collection element ``x``, ``x == x`` is always true. Based on " +"that assumption, element identity is compared first, and element comparison " +"is performed only for distinct elements. This approach yields the same " +"result as a strict element comparison would, if the compared elements are " +"reflexive. For non-reflexive elements, the result is different than for " +"strict element comparison, and may be surprising: The non-reflexive not-a-" +"number values for example result in the following comparison behavior when " +"used in a list::" +msgstr "" +"Dans l'application de la réflexivité des éléments, la comparaison des " +"collections suppose que pour un élément de collection ``x``, ``x == x`` est " +"toujours vrai. Sur la base de cette hypothèse, l'identité des éléments est " +"d'abord testée, puis la comparaison des éléments n'est effectuée que pour " +"des éléments distincts. Cette approche donne le même résultat qu'une " +"comparaison stricte d'éléments, si les éléments comparés sont réflexifs. " +"Pour les éléments non réflexifs, le résultat est différent de celui de la " +"comparaison stricte des éléments, voire peut être surprenant : les valeurs " +"non réflexives qui ne sont pas des nombres, par exemple, aboutissent au " +"comportement suivant lorsqu'elles sont utilisées dans une liste ::" + +#: ../Doc/reference/expressions.rst:1464 +msgid "" +"Lexicographical comparison between built-in collections works as follows:" +msgstr "" +"L'ordre lexicographique pour les collections natives fonctionne comme suit :" + +#: ../Doc/reference/expressions.rst:1466 +msgid "" +"For two collections to compare equal, they must be of the same type, have " +"the same length, and each pair of corresponding elements must compare equal " +"(for example, ``[1,2] == (1,2)`` is false because the type is not the same)." +msgstr "" +"Deux collections sont égales si elles sont du même type, ont la même " +"longueur et si les éléments correspondants de chaque paire sont égaux. Par " +"exemple, ``[1,2] == (1,2)`` est faux car les types sont différents." + +#: ../Doc/reference/expressions.rst:1471 +msgid "" +"Collections that support order comparison are ordered the same as their " +"first unequal elements (for example, ``[1,2,x] <= [1,2,y]`` has the same " +"value as ``x <= y``). If a corresponding element does not exist, the " +"shorter collection is ordered first (for example, ``[1,2] < [1,2,3]`` is " +"true)." +msgstr "" +"Les collections qui gèrent la relation d'ordre sont ordonnées comme leur " +"premier élément différent (par exemple, ``[1,2,x] <= [1,2,y]`` a la même " +"valeur que ``x <= y``). Si un élément n'a pas de correspondant, la " +"collection la plus courte est la plus petite (par exemple, ``[1,2] < " +"[1,2,3]`` est vrai)." + +#: ../Doc/reference/expressions.rst:1477 +msgid "" +"Mappings (instances of :class:`dict`) compare equal if and only if they have " +"equal `(key, value)` pairs. Equality comparison of the keys and values " +"enforces reflexivity." +msgstr "" +"Les tableaux de correspondances (instances de :class:`dict`) sont égales si " +"et seulement si toutes leurs paires `(clé, valeur)` sont égales. L'égalité " +"des clés et des valeurs met en œuvre la réflexivité." + +#: ../Doc/reference/expressions.rst:1481 +msgid "" +"Order comparisons (``<``, ``>``, ``<=``, and ``>=``) raise :exc:`TypeError`." +msgstr "" +"Les comparaisons (``<``, ``>``, ``<=`` et ``>=``) lèvent :exc:`TypeError`." + +#: ../Doc/reference/expressions.rst:1483 +msgid "" +"Sets (instances of :class:`set` or :class:`frozenset`) can be compared " +"within and across their types." +msgstr "" +"Les ensembles (instances de :class:`set` ou :class:`frozenset`) peuvent être " +"comparés au sein de leur propre type et entre types différents." + +#: ../Doc/reference/expressions.rst:1486 +msgid "" +"They define order comparison operators to mean subset and superset tests. " +"Those relations do not define total orderings (for example, the two sets " +"``{1,2}`` and ``{2,3}`` are not equal, nor subsets of one another, nor " +"supersets of one another). Accordingly, sets are not appropriate arguments " +"for functions which depend on total ordering (for example, :func:`min`, :" +"func:`max`, and :func:`sorted` produce undefined results given a list of " +"sets as inputs)." +msgstr "" +"Les opérateurs d'inclusion et de sur-ensemble sont définis. Ces relations ne " +"sont pas des relations d'ordre total (par exemple, les deux ensembles ``{1,2}" +"`` et ``{2,3}`` ne sont pas égaux, l'un n'est pas inclus dans l'autre, l'un " +"n'est pas un sur-ensemble de l'autre). Ainsi, les ensembles ne sont pas des " +"arguments appropriés pour les fonctions qui dépendent d'un ordre total (par " +"exemple, les fonctions :func:`min`, :func:`max` et :func:`sorted` produisent " +"des résultats indéfinis si on leur donne des listes d'ensembles en entrée)." + +#: ../Doc/reference/expressions.rst:1494 +msgid "Comparison of sets enforces reflexivity of its elements." +msgstr "La comparaison des ensembles met en œuvre la réflexivité des éléments." + +#: ../Doc/reference/expressions.rst:1496 +msgid "" +"Most other built-in types have no comparison methods implemented, so they " +"inherit the default comparison behavior." +msgstr "" +"La plupart des autres types natifs n'implémentent pas de méthodes de " +"comparaisons, ils héritent donc du comportement par défaut." + +#: ../Doc/reference/expressions.rst:1499 +msgid "" +"User-defined classes that customize their comparison behavior should follow " +"some consistency rules, if possible:" +msgstr "" +"Les classes allogènes qui particularisent les opérations de comparaison " +"doivent, si possible, respecter quelques règles pour la cohérence :" + +#: ../Doc/reference/expressions.rst:1502 +msgid "" +"Equality comparison should be reflexive. In other words, identical objects " +"should compare equal:" +msgstr "" +"Le test d'égalité doit être réflexif. En d'autres termes, des objets " +"identiques doivent être égaux :" + +#: ../Doc/reference/expressions.rst:1505 +msgid "``x is y`` implies ``x == y``" +msgstr "``x is y`` implique ``x == y``" + +#: ../Doc/reference/expressions.rst:1507 +msgid "" +"Comparison should be symmetric. In other words, the following expressions " +"should have the same result:" +msgstr "" +"La comparaison doit être symétrique. En d'autres termes, les expressions " +"suivantes doivent donner le même résultat :" + +#: ../Doc/reference/expressions.rst:1510 +msgid "``x == y`` and ``y == x``" +msgstr "``x == y`` et ``y == x``" + +#: ../Doc/reference/expressions.rst:1512 +msgid "``x != y`` and ``y != x``" +msgstr "``x != y`` et ``y != x``" + +#: ../Doc/reference/expressions.rst:1514 +msgid "``x < y`` and ``y > x``" +msgstr "``x < y`` et ``y > x``" + +#: ../Doc/reference/expressions.rst:1516 +msgid "``x <= y`` and ``y >= x``" +msgstr "``x <= y`` et ``y >= x``" + +#: ../Doc/reference/expressions.rst:1518 +msgid "" +"Comparison should be transitive. The following (non-exhaustive) examples " +"illustrate that:" +msgstr "" +"La comparaison doit être transitive. Les exemples suivants (liste non " +"exhaustive) illustrent ce concept :" + +#: ../Doc/reference/expressions.rst:1521 +msgid "``x > y and y > z`` implies ``x > z``" +msgstr "``x > y and y > z`` implique ``x > z``" + +#: ../Doc/reference/expressions.rst:1523 +msgid "``x < y and y <= z`` implies ``x < z``" +msgstr "``x < y and y <= z`` implique ``x < z``" + +#: ../Doc/reference/expressions.rst:1525 +msgid "" +"Inverse comparison should result in the boolean negation. In other words, " +"the following expressions should have the same result:" +msgstr "" +"Si vous inversez la comparaison, cela doit en produire la négation " +"booléenne. En d'autres termes, les expressions suivantes doivent produire le " +"même résultat :" + +#: ../Doc/reference/expressions.rst:1528 +msgid "``x == y`` and ``not x != y``" +msgstr "``x == y`` et ``not x != y``" + +#: ../Doc/reference/expressions.rst:1530 +msgid "``x < y`` and ``not x >= y`` (for total ordering)" +msgstr "``x < y`` et ``not x >= y`` (pour une relation d'ordre total)" + +#: ../Doc/reference/expressions.rst:1532 +msgid "``x > y`` and ``not x <= y`` (for total ordering)" +msgstr "``x > y`` et ``not x <= y`` (pour une relation d'ordre total)" + +#: ../Doc/reference/expressions.rst:1534 +msgid "" +"The last two expressions apply to totally ordered collections (e.g. to " +"sequences, but not to sets or mappings). See also the :func:`~functools." +"total_ordering` decorator." +msgstr "" +"Ces deux dernières expressions s'appliquent pour les collections totalement " +"ordonnées (par exemple, les séquences mais pas les ensembles ou les tableaux " +"de correspondances). Regardez aussi le décorateur :func:`~functools." +"total_ordering`." + +#: ../Doc/reference/expressions.rst:1538 +msgid "" +"The :func:`hash` result should be consistent with equality. Objects that are " +"equal should either have the same hash value, or be marked as unhashable." +msgstr "" +"Le résultat de :func:`hash` doit être cohérent avec l'égalité. Les objets " +"qui sont égaux doivent avoir la même empreinte ou être marqués comme non-" +"hachables." + +#: ../Doc/reference/expressions.rst:1542 +msgid "" +"Python does not enforce these consistency rules. In fact, the not-a-number " +"values are an example for not following these rules." +msgstr "" +"Python ne vérifie pas ces règles de cohérence. En fait, l'utilisation de " +"valeurs non numériques est un exemple de non-respect de ces règles." + +#: ../Doc/reference/expressions.rst:1551 +msgid "Membership test operations" +msgstr "Opérations de tests d’appartenance à un ensemble" + +#: ../Doc/reference/expressions.rst:1553 +msgid "" +"The operators :keyword:`in` and :keyword:`not in` test for membership. ``x " +"in s`` evaluates to ``True`` if *x* is a member of *s*, and ``False`` " +"otherwise. ``x not in s`` returns the negation of ``x in s``. All built-in " +"sequences and set types support this as well as dictionary, for which :" +"keyword:`!in` tests whether the dictionary has a given key. For container " +"types such as list, tuple, set, frozenset, dict, or collections.deque, the " +"expression ``x in y`` is equivalent to ``any(x is e or x == e for e in y)``." +msgstr "" +"Les opérateurs :keyword:`in` et :keyword:`not in` testent l’appartenance. " +"``x in s`` s’évalue à ``True`` si *x* appartient à *s* et à ``False`` sinon. " +"``x not in s`` renvoie la négation de ``x in s``. Tous les types séquences " +"et ensembles natifs gèrent ces opérateurs, ainsi que les dictionnaires pour " +"lesquels :keyword:`!in` teste si dictionnaire possède une clé donnée. Pour " +"les types conteneurs tels que les listes, n-uplets (*tuple*), ensembles " +"(*set*), ensembles gelés (*frozen set*), dictionnaires (*dict*) ou " +"*collections.deque*, l’expression ``x in y`` est équivalente à ``any(x is e " +"or x == e for e in y)``." + +#: ../Doc/reference/expressions.rst:1561 +msgid "" +"For the string and bytes types, ``x in y`` is ``True`` if and only if *x* is " +"a substring of *y*. An equivalent test is ``y.find(x) != -1``. Empty " +"strings are always considered to be a substring of any other string, so ``" +"\"\" in \"abc\"`` will return ``True``." +msgstr "" +"Pour les chaînes de caractères et chaînes d'octets, ``x in y`` vaut ``True`` " +"si et seulement si *x* est une sous-chaîne de *y*. Un test équivalent est " +"``y.find(x) != -1``. Une chaîne vide est considérée comme une sous-chaîne de " +"toute autre chaîne, ainsi ``\"\" in \"abc\"`` renvoie ``True``." + +#: ../Doc/reference/expressions.rst:1566 +msgid "" +"For user-defined classes which define the :meth:`__contains__` method, ``x " +"in y`` returns ``True`` if ``y.__contains__(x)`` returns a true value, and " +"``False`` otherwise." +msgstr "" +"Pour les classes allogènes qui définissent la méthode :meth:`__contains__`, " +"``x in y`` renvoie ``True`` si ``y.__contains__(x)`` renvoie vrai, et " +"``False`` sinon." + +#: ../Doc/reference/expressions.rst:1570 +msgid "" +"For user-defined classes which do not define :meth:`__contains__` but do " +"define :meth:`__iter__`, ``x in y`` is ``True`` if some value ``z``, for " +"which the expression ``x is z or x == z`` is true, is produced while " +"iterating over ``y``. If an exception is raised during the iteration, it is " +"as if :keyword:`in` raised that exception." +msgstr "" +"Pour les classes allogènes qui ne définissent pas :meth:`__contains__` mais " +"qui définissent :meth:`__iter__`, ``x in y`` vaut ``True`` s'il existe une " +"valeur ``z`` telle que l'expression ``x is z or x == z`` renvoie vrai lors " +"de l'itération sur ``y``. Si une exception est levée pendant l'itération, " +"c'est comme si :keyword:`in` avait levé cette exception." + +#: ../Doc/reference/expressions.rst:1576 +msgid "" +"Lastly, the old-style iteration protocol is tried: if a class defines :meth:" +"`__getitem__`, ``x in y`` is ``True`` if and only if there is a non-negative " +"integer index *i* such that ``x is y[i] or x == y[i]``, and no lower integer " +"index raises the :exc:`IndexError` exception. (If any other exception is " +"raised, it is as if :keyword:`in` raised that exception)." +msgstr "" +"Enfin, le protocole d'itération « à l'ancienne » est essayé : si la classe " +"définit :meth:`__getitem__`, ``x in y`` est ``True`` si et seulement si il " +"existe un entier positif ou nul *i*, représentant l'indice, tel que ``x is " +"y[i] or x == y[i]`` et qu'aucun indice inférieur ne lève d'exception :exc:" +"`IndexError` (si toute autre exception est levée, c'est comme si :keyword:" +"`in` avait levé cette exception)." + +#: ../Doc/reference/expressions.rst:1588 +msgid "" +"The operator :keyword:`not in` is defined to have the inverse truth value " +"of :keyword:`in`." +msgstr "" +"L'opérateur :keyword:`not in` est défini comme produisant le contraire de :" +"keyword:`in`." + +#: ../Doc/reference/expressions.rst:1601 +msgid "Identity comparisons" +msgstr "Comparaisons d'identifiants" + +#: ../Doc/reference/expressions.rst:1603 +msgid "" +"The operators :keyword:`is` and :keyword:`is not` test for an object's " +"identity: ``x is y`` is true if and only if *x* and *y* are the same " +"object. An Object's identity is determined using the :meth:`id` function. " +"``x is not y`` yields the inverse truth value. [#]_" +msgstr "" +"Les opérateurs :keyword:`is` et :keyword:`is not` testent l'égalité des " +"identifiants des objets : ``x is y`` est vrai si et seulement si *x* et *y* " +"sont le même objet. L'identifiant d'un objet est déterminé en utilisant la " +"fonction :meth:`id`. ``x is not y`` renvoie le résultat contraire de " +"l'égalité des identifiants [#]_." + +#: ../Doc/reference/expressions.rst:1615 +msgid "Boolean operations" +msgstr "Opérations booléennes" + +#: ../Doc/reference/expressions.rst:1626 +msgid "" +"In the context of Boolean operations, and also when expressions are used by " +"control flow statements, the following values are interpreted as false: " +"``False``, ``None``, numeric zero of all types, and empty strings and " +"containers (including strings, tuples, lists, dictionaries, sets and " +"frozensets). All other values are interpreted as true. User-defined " +"objects can customize their truth value by providing a :meth:`__bool__` " +"method." +msgstr "" +"Dans le contexte des opérations booléennes et quand des expressions sont " +"utilisées par des instructions de contrôle du flux d'exécution, les valeurs " +"suivantes sont considérées comme fausses : ``False``, ``None``, zéro quel " +"que soit le type, la chaîne vide et tout conteneur vide (y compris les " +"chaînes, n-uplets, listes, dictionnaires, ensembles, ensembles gelés). " +"Toutes les autres valeurs sont considérées comme vraies. Les objets " +"allogènes peuvent personnaliser leur table de vérité en implémentant une " +"méthode :meth:`__bool__`." + +#: ../Doc/reference/expressions.rst:1635 +msgid "" +"The operator :keyword:`not` yields ``True`` if its argument is false, " +"``False`` otherwise." +msgstr "" +"L'opérateur :keyword:`not` produit ``True`` si son argument est faux, " +"``False`` sinon." + +#: ../Doc/reference/expressions.rst:1640 +msgid "" +"The expression ``x and y`` first evaluates *x*; if *x* is false, its value " +"is returned; otherwise, *y* is evaluated and the resulting value is returned." +msgstr "" +"L'expression ``x and y`` commence par évaluer *x* ; si *x* est faux, sa " +"valeur est renvoyée ; sinon, *y* est évalué et la valeur résultante est " +"renvoyée." + +#: ../Doc/reference/expressions.rst:1645 +msgid "" +"The expression ``x or y`` first evaluates *x*; if *x* is true, its value is " +"returned; otherwise, *y* is evaluated and the resulting value is returned." +msgstr "" +"L'expression ``x or y`` commence par évaluer *x* ; si *x* est vrai, sa " +"valeur est renvoyée ; sinon, *y* est évalué et la valeur résultante est " +"renvoyée." + +#: ../Doc/reference/expressions.rst:1648 +msgid "" +"Note that neither :keyword:`and` nor :keyword:`or` restrict the value and " +"type they return to ``False`` and ``True``, but rather return the last " +"evaluated argument. This is sometimes useful, e.g., if ``s`` is a string " +"that should be replaced by a default value if it is empty, the expression " +"``s or 'foo'`` yields the desired value. Because :keyword:`not` has to " +"create a new value, it returns a boolean value regardless of the type of its " +"argument (for example, ``not 'foo'`` produces ``False`` rather than ``''``.)" +msgstr "" +"Notez que ni :keyword:`and` ni :keyword:`or` ne restreignent la valeur et le " +"type qu'ils renvoient à ``False`` et ``True`` : ils renvoient le dernier " +"argument évalué. Ceci peut être utile, par exemple : si une chaîne ``s`` " +"doit être remplacée par une valeur par défaut si elle est vide, l'expression " +"``s or 'truc'`` produit la valeur voulue. Comme :keyword:`not` doit créer " +"une nouvelle valeur, il renvoie une valeur booléenne quel que soit le type " +"de son argument (par exemple, ``not 'truc'`` produit ``False`` plutôt que " +"``''``." + +#: ../Doc/reference/expressions.rst:1660 +msgid "Conditional expressions" +msgstr "Expressions conditionnelles" + +#: ../Doc/reference/expressions.rst:1673 +msgid "" +"Conditional expressions (sometimes called a \"ternary operator\") have the " +"lowest priority of all Python operations." +msgstr "" +"Les expressions conditionnelles (parfois appelées « opérateur ternaire ») " +"sont les moins prioritaires de toutes les opérations Python." + +#: ../Doc/reference/expressions.rst:1676 +msgid "" +"The expression ``x if C else y`` first evaluates the condition, *C* rather " +"than *x*. If *C* is true, *x* is evaluated and its value is returned; " +"otherwise, *y* is evaluated and its value is returned." +msgstr "" +"L'expression ``x if C else y`` commence par évaluer la condition *C*. Si *C* " +"est vrai, alors *x* est évalué et sa valeur est renvoyée ; sinon, *y* est " +"évalué et sa valeur est renvoyée." + +#: ../Doc/reference/expressions.rst:1680 +msgid "See :pep:`308` for more details about conditional expressions." +msgstr "" +"Voir la :pep:`308` pour plus de détails sur les expressions conditionnelles." + +#: ../Doc/reference/expressions.rst:1687 +msgid "Lambdas" +msgstr "Expressions lambda" + +#: ../Doc/reference/expressions.rst:1699 +msgid "" +"Lambda expressions (sometimes called lambda forms) are used to create " +"anonymous functions. The expression ``lambda parameters: expression`` yields " +"a function object. The unnamed object behaves like a function object " +"defined with:" +msgstr "" +"Les expressions lambda sont utilisées pour créer des fonctions anonymes. " +"L'expression ``lambda parameters: expression`` produit un objet fonction. " +"Cet objet anonyme se comporte comme un objet fonction défini par :" + +#: ../Doc/reference/expressions.rst:1708 +msgid "" +"See section :ref:`function` for the syntax of parameter lists. Note that " +"functions created with lambda expressions cannot contain statements or " +"annotations." +msgstr "" +"Voir la section :ref:`function` pour la syntaxe des listes de paramètres. " +"Notez que les fonctions créées par des expressions lambda ne peuvent pas " +"contenir d'instructions ou d'annotations." + +#: ../Doc/reference/expressions.rst:1716 +msgid "Expression lists" +msgstr "Listes d'expressions" + +#: ../Doc/reference/expressions.rst:1730 +msgid "" +"Except when part of a list or set display, an expression list containing at " +"least one comma yields a tuple. The length of the tuple is the number of " +"expressions in the list. The expressions are evaluated from left to right." +msgstr "" +"Sauf lorsqu'elle fait partie d'un agencement de liste ou d'ensemble, une " +"liste d'expressions qui contient au moins une virgule produit un n-uplet " +"(*tuple*). La longueur du n-uplet est le nombre d'expressions dans la liste. " +"Les expressions sont évaluées de la gauche vers la droite." + +#: ../Doc/reference/expressions.rst:1739 +msgid "" +"An asterisk ``*`` denotes :dfn:`iterable unpacking`. Its operand must be " +"an :term:`iterable`. The iterable is expanded into a sequence of items, " +"which are included in the new tuple, list, or set, at the site of the " +"unpacking." +msgstr "" +"Un astérisque ``*`` indique :dfn:`dépaquetage d'itérable` (*iterable " +"unpacking* en anglais). Son opérande doit être un :term:`iterable`. " +"L'itérable est développé en une séquence d'éléments qui sont inclus dans un " +"nouvel objet *tuple*, *list* ou *set* à l'emplacement du dépaquetage." + +#: ../Doc/reference/expressions.rst:1744 +msgid "" +"Iterable unpacking in expression lists, originally proposed by :pep:`448`." +msgstr "" +"dépaquetage d'itérables dans les listes d'expressions, proposé à l'origine " +"par la :pep:`448`." + +#: ../Doc/reference/expressions.rst:1749 +msgid "" +"The trailing comma is required only to create a single tuple (a.k.a. a " +"*singleton*); it is optional in all other cases. A single expression " +"without a trailing comma doesn't create a tuple, but rather yields the value " +"of that expression. (To create an empty tuple, use an empty pair of " +"parentheses: ``()``.)" +msgstr "" +"La virgule finale est nécessaire pour créer un singleton (c'est-à-dire un n-" +"uplet composé d'un seul élément) : elle est optionnelle dans tous les autres " +"cas. Une expression seule sans virgule finale ne crée pas un n-uplet mais " +"produit la valeur de cette expression (pour créer un *tuple* vide, utilisez " +"une paire de parenthèses vide : ``()``)." + +#: ../Doc/reference/expressions.rst:1759 +msgid "Evaluation order" +msgstr "Ordre d'évaluation" + +#: ../Doc/reference/expressions.rst:1763 +msgid "" +"Python evaluates expressions from left to right. Notice that while " +"evaluating an assignment, the right-hand side is evaluated before the left-" +"hand side." +msgstr "" +"Python évalue les expressions de la gauche vers la droite. Remarquez que " +"lors de l'évaluation d'une assignation, la partie droite de l'assignation " +"est évaluée avant la partie gauche." + +#: ../Doc/reference/expressions.rst:1766 +msgid "" +"In the following lines, expressions will be evaluated in the arithmetic " +"order of their suffixes::" +msgstr "" +"Dans les lignes qui suivent, les expressions sont évaluées suivant l'ordre " +"arithmétique de leurs suffixes ::" + +#: ../Doc/reference/expressions.rst:1780 +msgid "Operator precedence" +msgstr "Priorités des opérateurs" + +#: ../Doc/reference/expressions.rst:1785 +msgid "" +"The following table summarizes the operator precedence in Python, from " +"lowest precedence (least binding) to highest precedence (most binding). " +"Operators in the same box have the same precedence. Unless the syntax is " +"explicitly given, operators are binary. Operators in the same box group " +"left to right (except for exponentiation, which groups from right to left)." +msgstr "" +"Le tableau suivant résume les priorités des opérateurs en Python, du moins " +"prioritaire au plus prioritaire. Les opérateurs qui sont dans la même case " +"ont la même priorité. À moins que la syntaxe ne soit explicitement indiquée, " +"les opérateurs sont binaires. Les opérateurs dans la même cases regroupent " +"de la gauche vers la droite (sauf pour la puissance qui regroupe de la " +"droite vers la gauche)." + +#: ../Doc/reference/expressions.rst:1791 +msgid "" +"Note that comparisons, membership tests, and identity tests, all have the " +"same precedence and have a left-to-right chaining feature as described in " +"the :ref:`comparisons` section." +msgstr "" +"Notez que les comparaisons, les tests d'appartenance et les tests " +"d'identifiants possèdent tous la même priorité et s'enchaînent de la gauche " +"vers la droite comme décrit dans la section :ref:`comparisons`." + +#: ../Doc/reference/expressions.rst:1797 +msgid "Operator" +msgstr "Opérateur" + +#: ../Doc/reference/expressions.rst:1797 +msgid "Description" +msgstr "Description" + +#: ../Doc/reference/expressions.rst:1799 +msgid ":keyword:`lambda`" +msgstr ":keyword:`lambda`" + +#: ../Doc/reference/expressions.rst:1799 +msgid "Lambda expression" +msgstr "Expression lambda" + +#: ../Doc/reference/expressions.rst:1801 +msgid ":keyword:`if ` -- :keyword:`!else`" +msgstr ":keyword:`if ` -- :keyword:`!else`" + +#: ../Doc/reference/expressions.rst:1801 +msgid "Conditional expression" +msgstr "Expressions conditionnelle" + +#: ../Doc/reference/expressions.rst:1803 +msgid ":keyword:`or`" +msgstr ":keyword:`or`" + +#: ../Doc/reference/expressions.rst:1803 +msgid "Boolean OR" +msgstr "OR (booléen)" + +#: ../Doc/reference/expressions.rst:1805 +msgid ":keyword:`and`" +msgstr ":keyword:`and`" + +#: ../Doc/reference/expressions.rst:1805 +msgid "Boolean AND" +msgstr "AND (booléen)" + +#: ../Doc/reference/expressions.rst:1807 +msgid ":keyword:`not` ``x``" +msgstr ":keyword:`not` ``x``" + +#: ../Doc/reference/expressions.rst:1807 +msgid "Boolean NOT" +msgstr "NOT (booléen)" + +#: ../Doc/reference/expressions.rst:1809 +msgid "" +":keyword:`in`, :keyword:`not in`, :keyword:`is`, :keyword:`is not`, ``<``, " +"``<=``, ``>``, ``>=``, ``!=``, ``==``" +msgstr "" +":keyword:`in`, :keyword:`not in`, :keyword:`is`, :keyword:`is not`, ``<``, " +"``<=``, ``>``, ``>=``, ``!=``, ``==``" + +#: ../Doc/reference/expressions.rst:1809 +msgid "Comparisons, including membership tests and identity tests" +msgstr "" +"Comparaisons, y compris les tests d'appartenance et les tests d'identifiants" + +#: ../Doc/reference/expressions.rst:1813 +msgid "``|``" +msgstr "``|``" + +#: ../Doc/reference/expressions.rst:1813 +msgid "Bitwise OR" +msgstr "OR (bit à bit)" + +#: ../Doc/reference/expressions.rst:1815 +msgid "``^``" +msgstr "``^``" + +#: ../Doc/reference/expressions.rst:1815 +msgid "Bitwise XOR" +msgstr "XOR (bit à bit)" + +#: ../Doc/reference/expressions.rst:1817 +msgid "``&``" +msgstr "``&``" + +#: ../Doc/reference/expressions.rst:1817 +msgid "Bitwise AND" +msgstr "AND (bit à bit)" + +#: ../Doc/reference/expressions.rst:1819 +msgid "``<<``, ``>>``" +msgstr "``<<``, ``>>``" + +#: ../Doc/reference/expressions.rst:1819 +msgid "Shifts" +msgstr "décalages" + +#: ../Doc/reference/expressions.rst:1821 +msgid "``+``, ``-``" +msgstr "``+``, ``-``" + +#: ../Doc/reference/expressions.rst:1821 +msgid "Addition and subtraction" +msgstr "Addition et soustraction" + +#: ../Doc/reference/expressions.rst:1823 +msgid "``*``, ``@``, ``/``, ``//``, ``%``" +msgstr "``*``, ``@``, ``/``, ``//``, ``%``" + +#: ../Doc/reference/expressions.rst:1823 +msgid "" +"Multiplication, matrix multiplication, division, floor division, remainder " +"[#]_" +msgstr "" +"Multiplication, multiplication de matrices, division, division entière, " +"reste [#]_" + +#: ../Doc/reference/expressions.rst:1827 +msgid "``+x``, ``-x``, ``~x``" +msgstr "``+x``, ``-x``, ``~x``" + +#: ../Doc/reference/expressions.rst:1827 +msgid "Positive, negative, bitwise NOT" +msgstr "NOT (positif, négatif, bit à bit)" + +#: ../Doc/reference/expressions.rst:1829 +msgid "``**``" +msgstr "``**``" + +#: ../Doc/reference/expressions.rst:1829 +msgid "Exponentiation [#]_" +msgstr "Puissance [#]_" + +#: ../Doc/reference/expressions.rst:1831 +msgid ":keyword:`await` ``x``" +msgstr ":keyword:`await` ``x``" + +#: ../Doc/reference/expressions.rst:1833 +msgid "``x[index]``, ``x[index:index]``, ``x(arguments...)``, ``x.attribute``" +msgstr "" +"``x[indice]``, ``x[indice:indice]``, ``x(arguments...)``, ``x.attribut``" + +#: ../Doc/reference/expressions.rst:1833 +msgid "Subscription, slicing, call, attribute reference" +msgstr "indiçage, tranches, appel, référence à un attribut" + +#: ../Doc/reference/expressions.rst:1836 +msgid "" +"``(expressions...)``, ``[expressions...]``, ``{key: value...}``, " +"``{expressions...}``" +msgstr "" +"``(expressions...)``, ``[expressions...]``, ``{clé: valeur...}``, " +"``{expressions...}``" + +#: ../Doc/reference/expressions.rst:1836 +msgid "Binding or tuple display, list display, dictionary display, set display" +msgstr "" +"liaison ou agencement de n-uplet, agencement de liste, agencement de " +"dictionnaire, agencement d'ensemble" + +#: ../Doc/reference/expressions.rst:1844 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/reference/expressions.rst:1845 +msgid "" +"While ``abs(x%y) < abs(y)`` is true mathematically, for floats it may not be " +"true numerically due to roundoff. For example, and assuming a platform on " +"which a Python float is an IEEE 754 double-precision number, in order that " +"``-1e-100 % 1e100`` have the same sign as ``1e100``, the computed result is " +"``-1e-100 + 1e100``, which is numerically exactly equal to ``1e100``. The " +"function :func:`math.fmod` returns a result whose sign matches the sign of " +"the first argument instead, and so returns ``-1e-100`` in this case. Which " +"approach is more appropriate depends on the application." +msgstr "" +"Bien que ``abs(x%y) < abs(y)`` soit vrai mathématiquement, ce n'est pas " +"toujours vrai pour les nombres à virgule flottante en raison des arrondis. " +"Par exemple, en supposant que Python tourne sur une plateforme où les " +"*float* sont des nombres à double précision IEEE 754, afin que ``-1e-100 % " +"1e100`` soit du même signe que ``1e100``, le résultat calculé est ``-1e-100 " +"+ 1e100``, qui vaut exactement ``1e100`` dans ce standard. Or, la fonction :" +"func:`math.fmod` renvoie un résultat dont le signe est le signe du premier " +"argument, c'est-à-dire ``-1e-100`` dans ce cas. La meilleure approche dépend " +"de l'application." + +#: ../Doc/reference/expressions.rst:1854 +msgid "" +"If x is very close to an exact integer multiple of y, it's possible for ``x//" +"y`` to be one larger than ``(x-x%y)//y`` due to rounding. In such cases, " +"Python returns the latter result, in order to preserve that ``divmod(x,y)[0] " +"* y + x % y`` be very close to ``x``." +msgstr "" +"Si x est très proche d'un multiple entier de y, il est possible que ``x/y`` " +"soit supérieur de un par rapport à ``(x-x%y)//y`` en raison des arrondis. " +"Dans de tels cas, Python renvoie le second résultat afin d'avoir ``divmod(x," +"y)[0] * y + x % y`` le plus proche de ``x``." + +#: ../Doc/reference/expressions.rst:1859 +msgid "" +"The Unicode standard distinguishes between :dfn:`code points` (e.g. U+0041) " +"and :dfn:`abstract characters` (e.g. \"LATIN CAPITAL LETTER A\"). While most " +"abstract characters in Unicode are only represented using one code point, " +"there is a number of abstract characters that can in addition be represented " +"using a sequence of more than one code point. For example, the abstract " +"character \"LATIN CAPITAL LETTER C WITH CEDILLA\" can be represented as a " +"single :dfn:`precomposed character` at code position U+00C7, or as a " +"sequence of a :dfn:`base character` at code position U+0043 (LATIN CAPITAL " +"LETTER C), followed by a :dfn:`combining character` at code position U+0327 " +"(COMBINING CEDILLA)." +msgstr "" +"Le standard Unicode distingue les :dfn:`points codes` (*code points* en " +"anglais, par exemple *U+0041*) et les :dfn:`caractères abstraits` (*abstract " +"characters* en anglais, par exemple « LATIN CAPITAL LETTER A »). Bien que la " +"plupart des caractères abstraits de l'Unicode ne sont représentés que par un " +"seul point code, il y a un certain nombre de caractères abstraits qui " +"peuvent être représentés par une séquence de plus qu'un point code. Par " +"exemple, le caractère abstrait « LATIN CAPITAL LETTER C WITH CEDILLA » peut " +"être représenté comme un unique :dfn:`caractère précomposé` au point code *U" +"+00C7*, ou en tant que séquence d'un :dfn:`caractère de base` à la position " +"*U+0043* (LATIN CAPITAL LETTER C) du code, suivi par un :dfn:`caractère " +"combiné` à la position *U+0327* (*COMBINING CEDILLA*) du code." + +#: ../Doc/reference/expressions.rst:1870 +msgid "" +"The comparison operators on strings compare at the level of Unicode code " +"points. This may be counter-intuitive to humans. For example, ``\"\\u00C7\" " +"== \"\\u0043\\u0327\"`` is ``False``, even though both strings represent the " +"same abstract character \"LATIN CAPITAL LETTER C WITH CEDILLA\"." +msgstr "" +"Les opérateurs de comparaison des chaînes opèrent au niveau des points codes " +"Unicode. Cela peut être déroutant pour des humains. Par exemple, ``" +"\"\\u00C7\" == \"\\u0043\\u0327\"`` renvoie ``False``, bien que les deux " +"chaînes représentent le même caractère abstrait \"LATIN CAPITAL LETTER C " +"WITH CEDILLA\"." + +#: ../Doc/reference/expressions.rst:1875 +msgid "" +"To compare strings at the level of abstract characters (that is, in a way " +"intuitive to humans), use :func:`unicodedata.normalize`." +msgstr "" +"Pour comparer des chaînes au niveau des caractères abstraits (afin d'avoir " +"quelque chose d'intuitif pour les humains), utilisez :func:`unicodedata." +"normalize`." + +#: ../Doc/reference/expressions.rst:1878 +msgid "" +"Due to automatic garbage-collection, free lists, and the dynamic nature of " +"descriptors, you may notice seemingly unusual behaviour in certain uses of " +"the :keyword:`is` operator, like those involving comparisons between " +"instance methods, or constants. Check their documentation for more info." +msgstr "" +"En raison du ramasse-miettes automatique et de la nature dynamique des " +"descripteurs, vous pouvez être confronté à un comportement semblant bizarre " +"lors de certaines utilisations de l'opérateur :keyword:`is`, par exemple si " +"cela implique des comparaisons entre des méthodes d'instances ou des " +"constantes. Allez vérifier dans la documentation pour plus d'informations." + +#: ../Doc/reference/expressions.rst:1883 +msgid "" +"The ``%`` operator is also used for string formatting; the same precedence " +"applies." +msgstr "" +"L'opérateur ``%`` est aussi utilisé pour formater les chaînes de " +"caractères ; il y possède la même priorité." + +#: ../Doc/reference/expressions.rst:1886 +msgid "" +"The power operator ``**`` binds less tightly than an arithmetic or bitwise " +"unary operator on its right, that is, ``2**-1`` is ``0.5``." +msgstr "" +"L'opérateur puissance ``**`` est moins prioritaire qu'un opérateur unaire " +"arithmétique ou bit à bit sur sa droite. Ainsi, ``2**-1`` vaut ``0.5``." + +#~ msgid "``await`` ``x``" +#~ msgstr "``await`` ``x``" + +#~ msgid "" +#~ "The not-a-number values :const:`float('NaN')` and :const:`Decimal('NaN')` " +#~ "are special. They are identical to themselves (``x is x`` is true) but " +#~ "are not equal to themselves (``x == x`` is false). Additionally, " +#~ "comparing any number to a not-a-number value will return ``False``. For " +#~ "example, both ``3 < float('NaN')`` and ``float('NaN') < 3`` will return " +#~ "``False``." +#~ msgstr "" +#~ "Les valeurs qui ne sont pas des nombres, :const:`float('NaN')` et :const:" +#~ "`Decimal('NaN')`, ont un traitement spécial. " + +#~ msgid "" +#~ "In the current implementation, the right-hand operand is required to be " +#~ "at most :attr:`sys.maxsize`. If the right-hand operand is larger than :" +#~ "attr:`sys.maxsize` an :exc:`OverflowError` exception is raised." +#~ msgstr "" +#~ "Dans l'implémentation actuelle, l'opérande de droite doit être au " +#~ "maximum :attr:`sys.maxsize`. Si l'opérande de droite est plus grand que :" +#~ "attr:`sys.maxsize`, une exception :exc:`OverflowError` est levée." diff --git a/reference/grammar.po b/reference/grammar.po new file mode 100644 index 000000000..a8bf8f8cf --- /dev/null +++ b/reference/grammar.po @@ -0,0 +1,28 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-10-05 08:42+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/reference/grammar.rst:2 +msgid "Full Grammar specification" +msgstr "Spécification complète de la grammaire" + +#: ../Doc/reference/grammar.rst:4 +msgid "" +"This is the full Python grammar, as it is read by the parser generator and " +"used to parse Python source files:" +msgstr "" +"Ceci est la grammaire de Python, exhaustive, telle qu'elle est lue par le " +"générateur d'analyseur, et utilisée pour analyser des fichiers sources en " +"Python :" diff --git a/reference/import.po b/reference/import.po new file mode 100644 index 000000000..6f5d013c1 --- /dev/null +++ b/reference/import.po @@ -0,0 +1,2135 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-01 23:45+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/reference/import.rst:6 +msgid "The import system" +msgstr "Le système d'importation" + +#: ../Doc/reference/import.rst:10 +msgid "" +"Python code in one :term:`module` gains access to the code in another module " +"by the process of :term:`importing` it. The :keyword:`import` statement is " +"the most common way of invoking the import machinery, but it is not the only " +"way. Functions such as :func:`importlib.import_module` and built-in :func:" +"`__import__` can also be used to invoke the import machinery." +msgstr "" +"Le code Python d'un :term:`module` peut accéder à du code d'un autre module " +"par un mécanisme qui consiste à :term:`importer` cet autre module. " +"L'instruction :keyword:`import` est la façon la plus courante faire appel à " +"ce système d'importation, mais ce n'est pas la seule. Les fonctions telles " +"que :func:`importlib.import_module` et :func:`__import__` peuvent aussi être " +"utilisées pour mettre en œuvre le mécanisme d'importation." + +#: ../Doc/reference/import.rst:16 +msgid "" +"The :keyword:`import` statement combines two operations; it searches for the " +"named module, then it binds the results of that search to a name in the " +"local scope. The search operation of the :keyword:`!import` statement is " +"defined as a call to the :func:`__import__` function, with the appropriate " +"arguments. The return value of :func:`__import__` is used to perform the " +"name binding operation of the :keyword:`!import` statement. See the :" +"keyword:`!import` statement for the exact details of that name binding " +"operation." +msgstr "" +"L'instruction :keyword:`import` effectue deux opérations ; elle cherche le " +"module dont le nom a été donné puis elle lie le résultat de cette recherche " +"à un nom dans la portée locale. L'opération de recherche de l'instruction :" +"keyword:`!import` consiste à appeler la fonction :func:`__import__` avec les " +"arguments adéquats. La valeur renvoyée par :func:`__import__` est utilisée " +"pour effectuer l'opération de liaison avec le nom fourni à l'instruction :" +"keyword:`!import`. Reportez-vous à l'instruction :keyword:`!import` pour les " +"détails exacts de l'opération de liaison avec le nom." + +#: ../Doc/reference/import.rst:25 +msgid "" +"A direct call to :func:`__import__` performs only the module search and, if " +"found, the module creation operation. While certain side-effects may occur, " +"such as the importing of parent packages, and the updating of various caches " +"(including :data:`sys.modules`), only the :keyword:`import` statement " +"performs a name binding operation." +msgstr "" +"Un appel direct à :func:`__import__` effectue seulement la recherche du " +"module et, s'il est trouvé, l'opération de création du module. Bien que des " +"effets collatéraux puissent se produire, tels que l'importation de paquets " +"parents et la mise à jour de divers caches (y compris :data:`sys.modules`), " +"il n'y a que l'instruction :keyword:`import` qui déclenche l'opération de " +"liaison avec le nom." + +#: ../Doc/reference/import.rst:31 +msgid "" +"When an :keyword:`import` statement is executed, the standard builtin :func:" +"`__import__` function is called. Other mechanisms for invoking the import " +"system (such as :func:`importlib.import_module`) may choose to bypass :func:" +"`__import__` and use their own solutions to implement import semantics." +msgstr "" +"Quand une instruction :keyword:`import` est exécutée, la fonction native :" +"func:`__import__` est appelée. D'autres mécanismes d'appel au système " +"d'importation (tels que :func:`importlib.import_module`) peuvent choisir " +"d'ignorer :func:`__import__` et utiliser leurs propres solutions pour " +"implémenter la sémantique d'importation." + +#: ../Doc/reference/import.rst:36 +msgid "" +"When a module is first imported, Python searches for the module and if " +"found, it creates a module object [#fnmo]_, initializing it. If the named " +"module cannot be found, a :exc:`ModuleNotFoundError` is raised. Python " +"implements various strategies to search for the named module when the import " +"machinery is invoked. These strategies can be modified and extended by " +"using various hooks described in the sections below." +msgstr "" +"Quand un module est importé pour la première fois, Python recherche le " +"module et, s'il est trouvé, créé un objet module [#fnmo]_ en l'initialisant. " +"Si le module n'est pas trouvé, une :exc:`ModuleNotFoundError` est levée. " +"Python implémente plusieurs stratégies pour rechercher le module d'un nom " +"donné quand le mécanisme d'import est invoqué. Ces stratégies peuvent être " +"modifiées et étendues par divers moyens décrits dans les sections suivantes." + +#: ../Doc/reference/import.rst:43 +msgid "" +"The import system has been updated to fully implement the second phase of :" +"pep:`302`. There is no longer any implicit import machinery - the full " +"import system is exposed through :data:`sys.meta_path`. In addition, native " +"namespace package support has been implemented (see :pep:`420`)." +msgstr "" +"Le système d'importation a été mis à jour pour implémenter complètement la " +"deuxième partie de la :pep:`302`. Il n'existe plus de mécanisme implicite " +"d'importation (le système d'importation complet est exposé *via* :data:`sys." +"meta_path`). En complément, la gestion du paquet des noms natifs a été " +"implémenté (voir la :pep:`420`)." + +#: ../Doc/reference/import.rst:51 +msgid ":mod:`importlib`" +msgstr ":mod:`importlib`" + +#: ../Doc/reference/import.rst:53 +msgid "" +"The :mod:`importlib` module provides a rich API for interacting with the " +"import system. For example :func:`importlib.import_module` provides a " +"recommended, simpler API than built-in :func:`__import__` for invoking the " +"import machinery. Refer to the :mod:`importlib` library documentation for " +"additional detail." +msgstr "" +"Le module :mod:`importlib` fournit une API riche pour interagir avec le " +"système d'import. Par exemple, :func:`importlib.import_module` fournit une " +"API (que nous vous recommandons) plus simple que la fonction native :func:" +"`__import__` pour mettre en œuvre le mécanisme d'import. Reportez-vous à la " +"documentation de la bibliothèque :mod:`importlib` pour obtenir davantage de " +"détails." + +#: ../Doc/reference/import.rst:62 +msgid "Packages" +msgstr "Les paquets" + +#: ../Doc/reference/import.rst:67 +msgid "" +"Python has only one type of module object, and all modules are of this type, " +"regardless of whether the module is implemented in Python, C, or something " +"else. To help organize modules and provide a naming hierarchy, Python has a " +"concept of :term:`packages `." +msgstr "" +"Python ne connait qu'un seul type d'objet module et tous les modules sont " +"donc de ce type, que le module soit implémenté en Python, en C ou quoi que " +"ce soit d'autre. Pour aider à l'organisation des modules et fournir une " +"hiérarchie des noms, Python développe le concept de :term:`paquets " +"`." + +#: ../Doc/reference/import.rst:72 +msgid "" +"You can think of packages as the directories on a file system and modules as " +"files within directories, but don't take this analogy too literally since " +"packages and modules need not originate from the file system. For the " +"purposes of this documentation, we'll use this convenient analogy of " +"directories and files. Like file system directories, packages are organized " +"hierarchically, and packages may themselves contain subpackages, as well as " +"regular modules." +msgstr "" +"Vous pouvez vous représenter les paquets comme des répertoires dans le " +"système de fichiers et les modules comme des fichiers dans ces répertoires. " +"Mais ne prenez pas trop cette analogie au pied de la lettre car les paquets " +"et les modules ne proviennent pas obligatoirement du système de fichiers. " +"Dans le cadre de cette documentation, nous utilisons cette analogie bien " +"pratique des répertoires et des fichiers. Comme les répertoires du système " +"de fichiers, les paquets sont organisés de manière hiérarchique et les " +"paquets peuvent eux-mêmes contenir des sous-paquets ou des modules." + +#: ../Doc/reference/import.rst:80 +msgid "" +"It's important to keep in mind that all packages are modules, but not all " +"modules are packages. Or put another way, packages are just a special kind " +"of module. Specifically, any module that contains a ``__path__`` attribute " +"is considered a package." +msgstr "" +"Il est important de garder à l'esprit que tous les paquets sont des modules " +"mais que tous les modules ne sont pas des paquets. Formulé autrement, les " +"paquets sont juste un certain type de modules. Spécifiquement, tout module " +"qui contient un attribut ``__path__`` est réputé être un paquet." + +#: ../Doc/reference/import.rst:85 +msgid "" +"All modules have a name. Subpackage names are separated from their parent " +"package name by dots, akin to Python's standard attribute access syntax. " +"Thus you might have a module called :mod:`sys` and a package called :mod:" +"`email`, which in turn has a subpackage called :mod:`email.mime` and a " +"module within that subpackage called :mod:`email.mime.text`." +msgstr "" +"Tous les modules ont un nom. Les noms des sous-paquets sont séparés du nom " +"du paquet parent par des points (`.`), à l'instar de la syntaxe standard " +"d'accès aux attributs en Python. Ainsi, vous pouvez avoir un module nommé :" +"mod:`sys` et un paquet nommé :mod:`email`, qui à son tour possède un sous-" +"paquet nommé :mod:`email.mime` avec un module dans ce sous-paquet nommé :mod:" +"`email.mime.text`." + +#: ../Doc/reference/import.rst:93 +msgid "Regular packages" +msgstr "Paquets classiques" + +#: ../Doc/reference/import.rst:98 +msgid "" +"Python defines two types of packages, :term:`regular packages ` and :term:`namespace packages `. Regular " +"packages are traditional packages as they existed in Python 3.2 and earlier. " +"A regular package is typically implemented as a directory containing an " +"``__init__.py`` file. When a regular package is imported, this ``__init__." +"py`` file is implicitly executed, and the objects it defines are bound to " +"names in the package's namespace. The ``__init__.py`` file can contain the " +"same Python code that any other module can contain, and Python will add some " +"additional attributes to the module when it is imported." +msgstr "" +"Python définit deux types de paquets, les :term:`paquets classiques ` et les :term:`paquets espaces de nommage `. Les " +"paquets classiques sont les paquets traditionnels tels qu'ils existaient " +"dans Python 3.2 et antérieurs. Un paquet classique est typiquement " +"implémenté sous la forme d'un répertoire contenant un fichier ``__init__." +"py``. Quand un paquet classique est importé, ce fichier ``__init__.py`` est " +"implicitement exécuté." + +#: ../Doc/reference/import.rst:108 +msgid "" +"For example, the following file system layout defines a top level ``parent`` " +"package with three subpackages::" +msgstr "" +"Par exemple, l'arborescence suivante définit un paquet ``parent`` au niveau " +"le plus haut avec trois sous-paquets ::" + +#: ../Doc/reference/import.rst:120 +msgid "" +"Importing ``parent.one`` will implicitly execute ``parent/__init__.py`` and " +"``parent/one/__init__.py``. Subsequent imports of ``parent.two`` or " +"``parent.three`` will execute ``parent/two/__init__.py`` and ``parent/three/" +"__init__.py`` respectively." +msgstr "" +"Importer ``parent.one`` exécute implicitement ``parent/__init__.py`` et " +"``parent/one/__init__.py``. Les importations postérieures de ``parent.two`` " +"ou ``parent.three`` respectivement exécutent ``parent/two/__init__.py`` ou " +"``parent/three/__init__.py`` respectivement." + +#: ../Doc/reference/import.rst:127 +msgid "Namespace packages" +msgstr "Paquets espaces de nommage" + +#: ../Doc/reference/import.rst:133 +msgid "" +"A namespace package is a composite of various :term:`portions `, " +"where each portion contributes a subpackage to the parent package. Portions " +"may reside in different locations on the file system. Portions may also be " +"found in zip files, on the network, or anywhere else that Python searches " +"during import. Namespace packages may or may not correspond directly to " +"objects on the file system; they may be virtual modules that have no " +"concrete representation." +msgstr "" +"Un paquet-espace de nommage est la combinaison de plusieurs :term:`portions " +"` où chaque portion fournit un sous-paquet au paquet parent. Les " +"portions peuvent être situées à différents endroits du système de fichiers. " +"Les portions peuvent aussi être stockées dans des fichiers zip, sur le " +"réseau ou à tout autre endroit dans lequel Python cherche pendant " +"l'importation. Les paquets-espaces de nommage peuvent correspondre " +"directement à des objets du système de fichiers, ou pas ; ils peuvent être " +"des modules virtuels qui n'ont aucune représentation concrète." + +#: ../Doc/reference/import.rst:141 +msgid "" +"Namespace packages do not use an ordinary list for their ``__path__`` " +"attribute. They instead use a custom iterable type which will automatically " +"perform a new search for package portions on the next import attempt within " +"that package if the path of their parent package (or :data:`sys.path` for a " +"top level package) changes." +msgstr "" +"Les paquets-espaces de nommage n'utilisent pas une liste ordinaire pour leur " +"attribut ``__path__``. Ils utilisent en lieu et place un type itérable " +"personnalisé qui effectue automatiquement une nouvelle recherche de portions " +"de paquets à la tentative suivante d'importation dans le paquet si le chemin " +"de leur paquet parent (ou :data:`sys.path` pour les paquets de plus haut " +"niveau) change." + +#: ../Doc/reference/import.rst:147 +msgid "" +"With namespace packages, there is no ``parent/__init__.py`` file. In fact, " +"there may be multiple ``parent`` directories found during import search, " +"where each one is provided by a different portion. Thus ``parent/one`` may " +"not be physically located next to ``parent/two``. In this case, Python will " +"create a namespace package for the top-level ``parent`` package whenever it " +"or one of its subpackages is imported." +msgstr "" +"Pour les paquets-espaces de nommage, il n'existe pas de fichier ``parent/" +"__init__.py``. En fait, il peut y avoir plusieurs répertoires ``parent`` " +"trouvés pendant le processus d'importation, où chacun est apporté par une " +"portion différente. Ainsi, ``parent/one`` n'est pas forcément physiquement à " +"côté de ``parent/two``. Dans ce cas, Python crée un paquet-espace de nommage " +"pour le paquet de plus haut niveau ``parent`` dès que lui ou l'un de ses " +"sous-paquet est importé." + +#: ../Doc/reference/import.rst:154 +msgid "See also :pep:`420` for the namespace package specification." +msgstr "" +"Voir aussi la :pep:`420` pour les spécifications des paquets-espaces de " +"nommage." + +#: ../Doc/reference/import.rst:158 +msgid "Searching" +msgstr "Recherche" + +#: ../Doc/reference/import.rst:160 +msgid "" +"To begin the search, Python needs the :term:`fully qualified ` name of the module (or package, but for the purposes of this " +"discussion, the difference is immaterial) being imported. This name may " +"come from various arguments to the :keyword:`import` statement, or from the " +"parameters to the :func:`importlib.import_module` or :func:`__import__` " +"functions." +msgstr "" +"Pour commencer la recherche, Python a besoin du :term:`nom qualifié " +"` du module (ou du paquet, mais ici cela ne fait pas de " +"différence) que vous souhaitez importer. Le nom peut être donné en argument " +"à l'instruction :keyword:`import` ou comme paramètre aux fonctions :func:" +"`importlib.import_module` ou :func:`__import__`." + +#: ../Doc/reference/import.rst:166 +msgid "" +"This name will be used in various phases of the import search, and it may be " +"the dotted path to a submodule, e.g. ``foo.bar.baz``. In this case, Python " +"first tries to import ``foo``, then ``foo.bar``, and finally ``foo.bar." +"baz``. If any of the intermediate imports fail, a :exc:`ModuleNotFoundError` " +"is raised." +msgstr "" +"Le nom est utilisé dans plusieurs phases de la recherche et peut être un " +"chemin séparé par des points pour un sous-module, par exemple ``truc.machin." +"bidule``. Dans ce cas, Python essaie d'abord d'importer ``truc`` puis ``truc." +"machin`` et enfin ``truc.machin.bidule``. Si n'importe laquelle des " +"importations intermédiaires échoue, une :exc:`ModuleNotFoundError` est levée." + +#: ../Doc/reference/import.rst:173 +msgid "The module cache" +msgstr "Cache des modules" + +#: ../Doc/reference/import.rst:178 +msgid "" +"The first place checked during import search is :data:`sys.modules`. This " +"mapping serves as a cache of all modules that have been previously imported, " +"including the intermediate paths. So if ``foo.bar.baz`` was previously " +"imported, :data:`sys.modules` will contain entries for ``foo``, ``foo.bar``, " +"and ``foo.bar.baz``. Each key will have as its value the corresponding " +"module object." +msgstr "" +"Le premier endroit vérifié pendant la recherche d'une importation est :data:" +"`sys.modules`. Ce tableau de correspondances est utilisé comme cache de tous " +"les modules déjà importés, y compris les chemins intermédiaires. Ainsi, si " +"``truc.machin.bidule`` a déjà été importé, :data:`sys.modules` contient les " +"entrées correspondantes à ``truc``, ``truc.machin`` et ``truc.machin." +"bidule``. À chaque chemin correspond une clé." + +#: ../Doc/reference/import.rst:185 +msgid "" +"During import, the module name is looked up in :data:`sys.modules` and if " +"present, the associated value is the module satisfying the import, and the " +"process completes. However, if the value is ``None``, then a :exc:" +"`ModuleNotFoundError` is raised. If the module name is missing, Python will " +"continue searching for the module." +msgstr "" +"Pendant l'importation, le nom de module est cherché dans :data:`sys.modules` " +"et, s'il est trouvé, la valeur associée est le module recherché et le " +"processus est fini. Cependant, si la valeur est ``None``, alors une :exc:" +"`ModuleNotFoundError` est levée. Si le nom du module n'est pas trouvé, " +"Python continue la recherche du module." + +#: ../Doc/reference/import.rst:191 +msgid "" +":data:`sys.modules` is writable. Deleting a key may not destroy the " +"associated module (as other modules may hold references to it), but it will " +"invalidate the cache entry for the named module, causing Python to search " +"anew for the named module upon its next import. The key can also be assigned " +"to ``None``, forcing the next import of the module to result in a :exc:" +"`ModuleNotFoundError`." +msgstr "" +":data:`sys.modules` est accessible en lecture-écriture. Supprimer une clé " +"peut ne pas détruire le module associé (car d'autres modules contiennent " +"possiblement des références vers ce module), mais cela invalide l'entrée du " +"cache pour ce nom de module. Python cherche alors un nouveau module pour ce " +"nom. La clé peut aussi être assignée à ``None`` de manière à forcer une :exc:" +"`ModuleNotFoundError` lors de la prochaine importation du module." + +#: ../Doc/reference/import.rst:198 +msgid "" +"Beware though, as if you keep a reference to the module object, invalidate " +"its cache entry in :data:`sys.modules`, and then re-import the named module, " +"the two module objects will *not* be the same. By contrast, :func:`importlib." +"reload` will reuse the *same* module object, and simply reinitialise the " +"module contents by rerunning the module's code." +msgstr "" +"Attention cependant : s'il reste une référence à l'objet module et que vous " +"invalidez l'entrée dans le cache de :data:`sys.modules` puis ré-importez le " +"module, les deux objets modules ne seront pas les mêmes. À l'inverse, :func:" +"`importlib.reload` ré-utilise le *même* objet module et ré-initialise " +"simplement le contenu du module en ré-exécutant le code du module." + +#: ../Doc/reference/import.rst:206 +msgid "Finders and loaders" +msgstr "Chercheurs et chargeurs" + +#: ../Doc/reference/import.rst:213 +msgid "" +"If the named module is not found in :data:`sys.modules`, then Python's " +"import protocol is invoked to find and load the module. This protocol " +"consists of two conceptual objects, :term:`finders ` and :term:" +"`loaders `. A finder's job is to determine whether it can find the " +"named module using whatever strategy it knows about. Objects that implement " +"both of these interfaces are referred to as :term:`importers ` - " +"they return themselves when they find that they can load the requested " +"module." +msgstr "" +"Si le module n'est pas trouvé dans :data:`sys.modules`, alors Python utilise " +"son protocole d'importation pour chercher et charger le module. Ce protocole " +"se compose de deux objets conceptuels : les :term:`chercheurs ` et " +"les :term:`chargeurs `. Le travail du chercheur consiste à trouver, " +"à l'aide de différentes stratégies, le module dont le nom a été fourni. Les " +"objets qui implémentent ces deux interfaces sont connus sous le vocable \":" +"term:`importateurs `\" (ils renvoient une référence vers eux-mêmes " +"quand ils trouvent un module qui répond aux attentes)." + +#: ../Doc/reference/import.rst:221 +msgid "" +"Python includes a number of default finders and importers. The first one " +"knows how to locate built-in modules, and the second knows how to locate " +"frozen modules. A third default finder searches an :term:`import path` for " +"modules. The :term:`import path` is a list of locations that may name file " +"system paths or zip files. It can also be extended to search for any " +"locatable resource, such as those identified by URLs." +msgstr "" +"Python inclut plusieurs chercheurs et importateurs par défaut. Le premier " +"sait comment trouver les modules natifs et le deuxième sait comment trouver " +"les modules gelés. Un troisième chercheur recherche les modules dans :term:" +"`import path`. :term:`import path` est une énumération sous forme de liste " +"de chemins ou de fichiers zip. Il peut être étendu pour rechercher aussi " +"dans toute ressource qui dispose d'un identifiant pour la localiser, une URL " +"par exemple." + +#: ../Doc/reference/import.rst:228 +msgid "" +"The import machinery is extensible, so new finders can be added to extend " +"the range and scope of module searching." +msgstr "" +"Le mécanisme d'importation est extensible, vous pouvez donc ajouter de " +"nouveaux chercheurs pour étendre le domaine de recherche des modules." + +#: ../Doc/reference/import.rst:231 +msgid "" +"Finders do not actually load modules. If they can find the named module, " +"they return a :dfn:`module spec`, an encapsulation of the module's import-" +"related information, which the import machinery then uses when loading the " +"module." +msgstr "" +"Les chercheurs ne chargent pas les modules. S'il trouve le module demandé, " +"un chercheur renvoie un :dfn:`spécificateur de module`, qui contient toutes " +"les informations nécessaires pour importer le module ; celui-ci sera alors " +"utilisé par le mécanisme d'importation pour charger le module." + +#: ../Doc/reference/import.rst:235 +msgid "" +"The following sections describe the protocol for finders and loaders in more " +"detail, including how you can create and register new ones to extend the " +"import machinery." +msgstr "" +"Les sections suivantes décrivent plus en détail le protocole utilisé par les " +"chercheurs et les chargeurs, y compris la manière de les créer et les " +"enregistrer pour étendre le mécanisme d'importation." + +#: ../Doc/reference/import.rst:239 +msgid "" +"In previous versions of Python, finders returned :term:`loaders ` " +"directly, whereas now they return module specs which *contain* loaders. " +"Loaders are still used during import but have fewer responsibilities." +msgstr "" +"Dans les versions précédentes de Python, les chercheurs renvoyaient " +"directement les :term:`chargeurs `. Dorénavant, ils renvoient des " +"spécificateurs de modules qui *contiennent* les chargeurs. Les chargeurs " +"sont encore utilisés lors de l'importation mais ont moins de responsabilités." + +#: ../Doc/reference/import.rst:245 +msgid "Import hooks" +msgstr "Points d'entrées automatiques pour l'importation" + +#: ../Doc/reference/import.rst:255 +msgid "" +"The import machinery is designed to be extensible; the primary mechanism for " +"this are the *import hooks*. There are two types of import hooks: *meta " +"hooks* and *import path hooks*." +msgstr "" +"Le mécanisme d'importation est conçu pour être extensible ; vous pouvez y " +"insérer des *points d'entrée automatique* (*hooks* en anglais). Il existe " +"deux types de points d'entrée automatique pour l'importation : les *méta-" +"points d'entrée* et les *points d'entrée sur le chemin des importations*." + +#: ../Doc/reference/import.rst:259 +msgid "" +"Meta hooks are called at the start of import processing, before any other " +"import processing has occurred, other than :data:`sys.modules` cache look " +"up. This allows meta hooks to override :data:`sys.path` processing, frozen " +"modules, or even built-in modules. Meta hooks are registered by adding new " +"finder objects to :data:`sys.meta_path`, as described below." +msgstr "" +"Les méta-points d'entrée sont appelés au début du processus d'importation, " +"juste après la vérification dans le cache :data:`sys.modules` mais avant " +"tout le reste. Ceci permet aux méta-points d'entrée de surcharger le " +"traitement effectué sur :data:`sys.path`, les modules gelés ou même les " +"modules natifs. L'enregistrement des méta-points d'entrée se fait en " +"ajoutant de nouveaux objets chercheurs à :data:`sys.meta_path`, comme décrit " +"ci-dessous." + +#: ../Doc/reference/import.rst:265 +msgid "" +"Import path hooks are called as part of :data:`sys.path` (or ``package." +"__path__``) processing, at the point where their associated path item is " +"encountered. Import path hooks are registered by adding new callables to :" +"data:`sys.path_hooks` as described below." +msgstr "" +"Les points d'entrée sur le chemin des importations sont appelés pendant le " +"traitement de :data:`sys.path` (ou ``package.__path__``), au moment où le " +"chemin qui leur correspond est atteint. Les points d'entrée sur le chemin " +"des importations sont enregistrés en ajoutant de nouveaux appelables à :data:" +"`sys.path_hooks`, comme décrit ci-dessous." + +#: ../Doc/reference/import.rst:272 +msgid "The meta path" +msgstr "Méta-chemins" + +#: ../Doc/reference/import.rst:278 +msgid "" +"When the named module is not found in :data:`sys.modules`, Python next " +"searches :data:`sys.meta_path`, which contains a list of meta path finder " +"objects. These finders are queried in order to see if they know how to " +"handle the named module. Meta path finders must implement a method called :" +"meth:`~importlib.abc.MetaPathFinder.find_spec()` which takes three " +"arguments: a name, an import path, and (optionally) a target module. The " +"meta path finder can use any strategy it wants to determine whether it can " +"handle the named module or not." +msgstr "" +"Quand le module demandé n'est pas trouvé dans :data:`sys.modules`, Python " +"recherche alors dans :data:`sys.meta_path` qui contient une liste d'objets " +"chercheurs dans des méta-chemins. Ces chercheurs sont interrogés dans " +"l'ordre pour voir s'ils savent prendre en charge le module passé en " +"paramètre. Les chercheurs dans les méta-chemins implémentent une méthode :" +"meth:`~importlib.abc.MetaPathFinder.find_spec()` qui prend trois arguments : " +"un nom, un chemin d'import et (optionnellement) un module cible. Un " +"chercheur dans les méta-chemins peut utiliser n'importe quelle stratégie " +"pour déterminer s'il est apte à prendre en charge le module." + +#: ../Doc/reference/import.rst:287 +msgid "" +"If the meta path finder knows how to handle the named module, it returns a " +"spec object. If it cannot handle the named module, it returns ``None``. " +"If :data:`sys.meta_path` processing reaches the end of its list without " +"returning a spec, then a :exc:`ModuleNotFoundError` is raised. Any other " +"exceptions raised are simply propagated up, aborting the import process." +msgstr "" +"Si un chercheur dans les méta-chemins sait prendre en charge le module " +"donné, il renvoie un objet spécificateur. S'il ne sait pas, il renvoie " +"``None``. Si le traitement de :data:`sys.meta_path` arrive à la fin de la " +"liste sans qu'aucun chercheur n'a renvoyé un objet spécificateur, alors une :" +"exc:`ModuleNotFoundError` est levée. Toute autre exception levée est " +"simplement propagée à l'appelant, mettant fin au processus d'importation." + +#: ../Doc/reference/import.rst:293 +msgid "" +"The :meth:`~importlib.abc.MetaPathFinder.find_spec()` method of meta path " +"finders is called with two or three arguments. The first is the fully " +"qualified name of the module being imported, for example ``foo.bar.baz``. " +"The second argument is the path entries to use for the module search. For " +"top-level modules, the second argument is ``None``, but for submodules or " +"subpackages, the second argument is the value of the parent package's " +"``__path__`` attribute. If the appropriate ``__path__`` attribute cannot be " +"accessed, a :exc:`ModuleNotFoundError` is raised. The third argument is an " +"existing module object that will be the target of loading later. The import " +"system passes in a target module only during reload." +msgstr "" +"La méthode :meth:`~importlib.abc.MetaPathFinder.find_spec()` des chercheurs " +"dans les méta-chemins est appelée avec deux ou trois arguments. Le premier " +"est le nom complètement qualifié du module à importer, par exemple ``truc." +"machin.bidule``. Le deuxième argument est l'ensemble des chemins dans " +"lesquels chercher. Pour les modules de plus haut niveau, le deuxième " +"argument est ``None`` mais pour les sous-modules ou les paquets, le deuxième " +"argument est la valeur de l'attribut ``__path__`` du paquet parent. Si " +"l'attribut ``__path__`` approprié n'est pas accessible, une :exc:" +"`ModuleNotFoundError` est levée. Le troisième argument est un objet module " +"existant qui va être la cible du chargement (plus tard). Le système " +"d'importation ne passe le module cible en paramètre que lors d'un " +"rechargement." + +#: ../Doc/reference/import.rst:304 +msgid "" +"The meta path may be traversed multiple times for a single import request. " +"For example, assuming none of the modules involved has already been cached, " +"importing ``foo.bar.baz`` will first perform a top level import, calling " +"``mpf.find_spec(\"foo\", None, None)`` on each meta path finder (``mpf``). " +"After ``foo`` has been imported, ``foo.bar`` will be imported by traversing " +"the meta path a second time, calling ``mpf.find_spec(\"foo.bar\", foo." +"__path__, None)``. Once ``foo.bar`` has been imported, the final traversal " +"will call ``mpf.find_spec(\"foo.bar.baz\", foo.bar.__path__, None)``." +msgstr "" +"Le méta-chemin peut être parcouru plusieurs fois pour une seule requête " +"d'importation. Par exemple, si nous supposons qu'aucun des modules concernés " +"n'a déjà été mis en cache, importer ``truc.machin.bidule`` effectue une " +"première importation au niveau le plus haut, en appelant ``c_m_c." +"find_spec(\"truc\", None, None)`` pour chaque chercheur dans les méta-" +"chemins (``c_m_c``). Après que ``truc`` a été importé, ``truc.machin`` est " +"importé en parcourant le méta-chemin une deuxième fois, appelant ``c_m_c." +"find_spec(\"truc.machin\", truc.__path__, None)``. Une fois ``truc.machin`` " +"importé, le parcours final appelle ``c_m_c.find_spec(\"truc.machin.bidule\", " +"truc.machin.__path__, None)``." + +#: ../Doc/reference/import.rst:314 +msgid "" +"Some meta path finders only support top level imports. These importers will " +"always return ``None`` when anything other than ``None`` is passed as the " +"second argument." +msgstr "" +"Quelques chercheurs dans les méta-chemins ne gèrent que les importations de " +"plus haut niveau. Ces importateurs renvoient toujours ``None`` si on leur " +"passe un deuxième argument autre que ``None``." + +#: ../Doc/reference/import.rst:318 +msgid "" +"Python's default :data:`sys.meta_path` has three meta path finders, one that " +"knows how to import built-in modules, one that knows how to import frozen " +"modules, and one that knows how to import modules from an :term:`import " +"path` (i.e. the :term:`path based finder`)." +msgstr "" +"Le :data:`sys.meta_path` de Python comprend trois chercheurs par défaut : un " +"qui sait importer les modules natifs, un qui sait importer les modules gelés " +"et un qui sait importer les modules depuis un :term:`chemin des importations " +"` (c'est le :term:`chercheur dans path `)." + +#: ../Doc/reference/import.rst:323 +msgid "" +"The :meth:`~importlib.abc.MetaPathFinder.find_spec` method of meta path " +"finders replaced :meth:`~importlib.abc.MetaPathFinder.find_module`, which is " +"now deprecated. While it will continue to work without change, the import " +"machinery will try it only if the finder does not implement ``find_spec()``." +msgstr "" +"La méthode :meth:`~importlib.abc.MetaPathFinder.find_spec` des chercheurs " +"dans les méta-chemins a remplacé :meth:`~importlib.abc.MetaPathFinder." +"find_module`, devenue obsolète. Bien qu'elle continue de fonctionner comme " +"avant, le mécanisme d'importation essaie ``find_module()`` uniquement si le " +"chercheur n'implémente pas ``find_spec()``." + +#: ../Doc/reference/import.rst:332 +msgid "Loading" +msgstr "Chargement" + +#: ../Doc/reference/import.rst:334 +msgid "" +"If and when a module spec is found, the import machinery will use it (and " +"the loader it contains) when loading the module. Here is an approximation " +"of what happens during the loading portion of import::" +msgstr "" +"Quand un spécificateur de module est trouvé, le mécanisme d'importation " +"l'utilise (et le chargeur qu'il contient) pour charger le module. Voici à " +"peu près ce qui se passe au sein de l'importation pendant la phase de " +"chargement ::" + +#: ../Doc/reference/import.rst:369 +msgid "Note the following details:" +msgstr "Notez les détails suivants :" + +#: ../Doc/reference/import.rst:371 +msgid "" +"If there is an existing module object with the given name in :data:`sys." +"modules`, import will have already returned it." +msgstr "" +"S'il existe un objet module dans :data:`sys.modules` avec le même nom, " +"import l'aurait déjà renvoyé." + +#: ../Doc/reference/import.rst:374 +msgid "" +"The module will exist in :data:`sys.modules` before the loader executes the " +"module code. This is crucial because the module code may (directly or " +"indirectly) import itself; adding it to :data:`sys.modules` beforehand " +"prevents unbounded recursion in the worst case and multiple loading in the " +"best." +msgstr "" +"Le module existe dans :data:`sys.modules` avant que le chargeur exécute le " +"code du module. C'est crucial car le code du module peut (directement ou " +"indirectement) s'importer lui-même ; l'ajouter à :data:`sys.modules` avant " +"évite les récursions infinies dans le pire cas et le chargement multiple " +"dans le meilleur des cas." + +#: ../Doc/reference/import.rst:380 +msgid "" +"If loading fails, the failing module -- and only the failing module -- gets " +"removed from :data:`sys.modules`. Any module already in the :data:`sys." +"modules` cache, and any module that was successfully loaded as a side-" +"effect, must remain in the cache. This contrasts with reloading where even " +"the failing module is left in :data:`sys.modules`." +msgstr "" +"Si le chargement échoue, le module en cause (et seulement ce module) est " +"enlevé de :data:`sys.modules`. Tout module déjà dans le cache de :data:`sys." +"modules` et tout module qui a été chargé avec succès par effet de bord doit " +"rester dans le cache. C'est différent dans le cas d'un rechargement où même " +"le module qui a échoué est conservé dans :data:`sys.modules`." + +#: ../Doc/reference/import.rst:386 +msgid "" +"After the module is created but before execution, the import machinery sets " +"the import-related module attributes (\"_init_module_attrs\" in the pseudo-" +"code example above), as summarized in a :ref:`later section `." +msgstr "" +"Après que le module est créé mais avant son exécution, le mécanisme " +"d'importation définit les attributs relatifs à l'importation " +"(``_init_module_attrs`` dans l'exemple de pseudo-code ci-dessus), comme " +"indiqué brièvement dans une :ref:`section ` que nous " +"abordons ensuite." + +#: ../Doc/reference/import.rst:391 +msgid "" +"Module execution is the key moment of loading in which the module's " +"namespace gets populated. Execution is entirely delegated to the loader, " +"which gets to decide what gets populated and how." +msgstr "" +"L'exécution du module est le moment clé du chargement dans lequel l'espace " +"de nommage du module est peuplé. L'exécution est entièrement déléguée au " +"chargeur qui doit décider ce qui est peuplé et comment." + +#: ../Doc/reference/import.rst:395 +msgid "" +"The module created during loading and passed to exec_module() may not be the " +"one returned at the end of import [#fnlo]_." +msgstr "" +"Le modulé créé pendant le chargement et passé à ``exec_module()`` peut ne " +"pas être celui qui est renvoyé à la fin de l'importation [#fnlo]_." + +#: ../Doc/reference/import.rst:398 +msgid "" +"The import system has taken over the boilerplate responsibilities of " +"loaders. These were previously performed by the :meth:`importlib.abc.Loader." +"load_module` method." +msgstr "" +"Le système d'importation a pris en charge les responsabilités des chargeurs. " +"Celles-ci étaient auparavant effectuées par la méthode :meth:`importlib.abc." +"Loader.load_module`." + +#: ../Doc/reference/import.rst:404 +msgid "Loaders" +msgstr "Chargeurs" + +#: ../Doc/reference/import.rst:406 +msgid "" +"Module loaders provide the critical function of loading: module execution. " +"The import machinery calls the :meth:`importlib.abc.Loader.exec_module` " +"method with a single argument, the module object to execute. Any value " +"returned from :meth:`~importlib.abc.Loader.exec_module` is ignored." +msgstr "" +"Les chargeurs de modules fournissent la fonction critique du chargement : " +"l'exécution du module. Le mécanisme d'importation appelle la méthode :meth:" +"`importlib.abc.Loader.exec_module` avec un unique argument, l'objet module à " +"exécuter. Toute valeur renvoyée par :meth:`~importlib.abc.Loader." +"exec_module` est ignorée." + +#: ../Doc/reference/import.rst:411 +msgid "Loaders must satisfy the following requirements:" +msgstr "Les chargeurs doivent satisfaire les conditions suivantes :" + +#: ../Doc/reference/import.rst:413 +msgid "" +"If the module is a Python module (as opposed to a built-in module or a " +"dynamically loaded extension), the loader should execute the module's code " +"in the module's global name space (``module.__dict__``)." +msgstr "" +"Si le module est un module Python (par opposition aux modules natifs ou aux " +"extensions chargées dynamiquement), le chargeur doit exécuter le code du " +"module dans l'espace des noms globaux du module (``module.__dict__``)." + +#: ../Doc/reference/import.rst:417 +msgid "" +"If the loader cannot execute the module, it should raise an :exc:" +"`ImportError`, although any other exception raised during :meth:`~importlib." +"abc.Loader.exec_module` will be propagated." +msgstr "" +"Si le chargeur ne peut pas exécuter le module, il doit lever une :exc:" +"`ImportError`, alors que toute autre exception levée durant :meth:" +"`~importlib.abc.Loader.exec_module` est propagée." + +#: ../Doc/reference/import.rst:421 +msgid "" +"In many cases, the finder and loader can be the same object; in such cases " +"the :meth:`~importlib.abc.MetaPathFinder.find_spec` method would just return " +"a spec with the loader set to ``self``." +msgstr "" +"Souvent, le chercheur et le chargeur sont le même objet ; dans ce cas, la " +"méthode :meth:`~importlib.abc.MetaPathFinder.find_spec` doit juste renvoyer " +"un spécificateur avec le chargeur défini à ``self``." + +#: ../Doc/reference/import.rst:425 +msgid "" +"Module loaders may opt in to creating the module object during loading by " +"implementing a :meth:`~importlib.abc.Loader.create_module` method. It takes " +"one argument, the module spec, and returns the new module object to use " +"during loading. ``create_module()`` does not need to set any attributes on " +"the module object. If the method returns ``None``, the import machinery " +"will create the new module itself." +msgstr "" +"Les chargeurs de modules peuvent choisir de créer l'objet module pendant le " +"chargement en implémentant une méthode :meth:`~importlib.abc.Loader." +"create_module`. Elle prend un argument, l'objet spécificateur du module et " +"renvoie le nouvel objet du module à utiliser pendant le chargement. Notez " +"que ``create_module()`` n'a besoin de définir aucun attribut sur l'objet " +"module. Si cette méthode renvoie ``None``, le mécanisme d'importation crée " +"le nouveau module lui-même." + +#: ../Doc/reference/import.rst:432 +msgid "The :meth:`~importlib.abc.Loader.create_module` method of loaders." +msgstr "La méthode :meth:`~importlib.abc.Loader.create_module` des chargeurs." + +#: ../Doc/reference/import.rst:435 +msgid "" +"The :meth:`~importlib.abc.Loader.load_module` method was replaced by :meth:" +"`~importlib.abc.Loader.exec_module` and the import machinery assumed all the " +"boilerplate responsibilities of loading." +msgstr "" +"La méthode :meth:`~importlib.abc.Loader.load_module` a été remplacée par :" +"meth:`~importlib.abc.Loader.exec_module` et le mécanisme d'import assume " +"toutes les responsabilités du chargement." + +#: ../Doc/reference/import.rst:440 +msgid "" +"For compatibility with existing loaders, the import machinery will use the " +"``load_module()`` method of loaders if it exists and the loader does not " +"also implement ``exec_module()``. However, ``load_module()`` has been " +"deprecated and loaders should implement ``exec_module()`` instead." +msgstr "" +"Par compatibilité avec les chargeurs existants, le mécanisme d'importation " +"utilise la méthode ``load_module()`` des chargeurs si elle existe et si le " +"chargeur n'implémente pas ``exec_module()``. Cependant, ``load_module()`` " +"est déclarée obsolète et les chargeurs doivent implémenter ``exec_module()`` " +"à la place." + +#: ../Doc/reference/import.rst:445 +msgid "" +"The ``load_module()`` method must implement all the boilerplate loading " +"functionality described above in addition to executing the module. All the " +"same constraints apply, with some additional clarification:" +msgstr "" +"La méthode ``load_module()`` *doit* implémenter toutes les fonctionnalités " +"de chargement décrites ci-dessus en plus de l'exécution du module. Toutes " +"les contraintes s'appliquent aussi, avec quelques précisions " +"supplémentaires :" + +#: ../Doc/reference/import.rst:449 +msgid "" +"If there is an existing module object with the given name in :data:`sys." +"modules`, the loader must use that existing module. (Otherwise, :func:" +"`importlib.reload` will not work correctly.) If the named module does not " +"exist in :data:`sys.modules`, the loader must create a new module object and " +"add it to :data:`sys.modules`." +msgstr "" +"S'il y a un objet module existant avec le même nom dans :data:`sys.modules`, " +"le chargeur doit utiliser le module existant (sinon, :func:`importlib." +"reload` ne fonctionnera pas correctement). Si le module considéré n'est pas " +"trouvé dans :data:`sys.modules`, le chargeur doit créer un nouvel objet " +"module et l'ajouter à :data:`sys.modules`." + +#: ../Doc/reference/import.rst:455 +msgid "" +"The module *must* exist in :data:`sys.modules` before the loader executes " +"the module code, to prevent unbounded recursion or multiple loading." +msgstr "" +"Le module *doit* exister dans :data:`sys.modules` avant que le chargeur " +"n'exécute le code du module, afin d'éviter les récursions infinies ou le " +"chargement multiple." + +#: ../Doc/reference/import.rst:459 +msgid "" +"If loading fails, the loader must remove any modules it has inserted into :" +"data:`sys.modules`, but it must remove **only** the failing module(s), and " +"only if the loader itself has loaded the module(s) explicitly." +msgstr "" +"Si le chargement échoue, le chargeur ne doit enlever de :data:`sys.modules` " +"**que** le (ou les) module ayant échoué et seulement si le chargeur lui-même " +"a chargé le module explicitement." + +#: ../Doc/reference/import.rst:464 +msgid "" +"A :exc:`DeprecationWarning` is raised when ``exec_module()`` is defined but " +"``create_module()`` is not." +msgstr "" +"Un avertissement :exc:`DeprecationWarning` est levé quand ``exec_module()`` " +"est définie mais ``create_module()`` ne l'est pas." + +#: ../Doc/reference/import.rst:468 +msgid "" +"An :exc:`ImportError` is raised when ``exec_module()`` is defined but " +"``create_module()`` is not." +msgstr "" +"Une exception :exc:`ImportError` est levée quand ``exec_module()`` est " +"définie mais ``create_module()`` ne l'est pas." + +#: ../Doc/reference/import.rst:473 +msgid "Submodules" +msgstr "Sous-modules" + +#: ../Doc/reference/import.rst:475 +msgid "" +"When a submodule is loaded using any mechanism (e.g. ``importlib`` APIs, the " +"``import`` or ``import-from`` statements, or built-in ``__import__()``) a " +"binding is placed in the parent module's namespace to the submodule object. " +"For example, if package ``spam`` has a submodule ``foo``, after importing " +"``spam.foo``, ``spam`` will have an attribute ``foo`` which is bound to the " +"submodule. Let's say you have the following directory structure::" +msgstr "" +"Quand un sous-module est chargé, quel que soit le mécanisme (par exemple " +"avec les instructions ``import``, ``import-from`` ou avec la fonction native " +"``__import__()``), une liaison est créée dans l'espace de nommage du module " +"parent vers l'objet sous-module. Par exemple, si le paquet ``spam`` possède " +"un sous-module ``foo``, après l'importation de ``spam.foo``, ``spam`` " +"possède un attribut ``foo`` qui est lié au sous-module. Supposons que nous " +"ayons l'arborescence suivante ::" + +#: ../Doc/reference/import.rst:487 +msgid "and ``spam/__init__.py`` has the following lines in it::" +msgstr "et que le contenu de ``spam/__init__.py`` soit ::" + +#: ../Doc/reference/import.rst:492 +msgid "" +"then executing the following puts a name binding to ``foo`` and ``bar`` in " +"the ``spam`` module::" +msgstr "" +"alors exécuter les lignes suivantes crée des liens vers ``foo`` et ``bar`` " +"dans le module ``spam`` ::" + +#: ../Doc/reference/import.rst:501 +msgid "" +"Given Python's familiar name binding rules this might seem surprising, but " +"it's actually a fundamental feature of the import system. The invariant " +"holding is that if you have ``sys.modules['spam']`` and ``sys.modules['spam." +"foo']`` (as you would after the above import), the latter must appear as the " +"``foo`` attribute of the former." +msgstr "" +"Connaissant la façon habituelle dont Python effectue les liens, cela peut " +"sembler surprenant. Mais c'est en fait une fonctionnalité fondamentale du " +"système d'importation. Si vous avez quelque part ``sys.modules['spam']`` et " +"``sys.modules['spam.foo']`` (comme dans c'est le cas ci-dessus après " +"l'importation), alors le dernier doit apparaître comme l'attribut ``foo`` du " +"premier." + +#: ../Doc/reference/import.rst:508 +msgid "Module spec" +msgstr "Spécificateurs de modules" + +#: ../Doc/reference/import.rst:510 +msgid "" +"The import machinery uses a variety of information about each module during " +"import, especially before loading. Most of the information is common to all " +"modules. The purpose of a module's spec is to encapsulate this import-" +"related information on a per-module basis." +msgstr "" +"Le mécanisme d'importation utilise diverses informations de chaque module " +"pendant l'importation, spécialement avant le chargement. La plupart de ces " +"informations sont communes à tous les modules. Le but d'un spécificateur de " +"module est d'encapsuler ces informations relatives à l'importation au sein " +"de chaque module." + +#: ../Doc/reference/import.rst:515 +msgid "" +"Using a spec during import allows state to be transferred between import " +"system components, e.g. between the finder that creates the module spec and " +"the loader that executes it. Most importantly, it allows the import " +"machinery to perform the boilerplate operations of loading, whereas without " +"a module spec the loader had that responsibility." +msgstr "" +"Utiliser un spécificateur pendant l'importation permet de transférer l'état " +"entre les composants du système d'importation, par exemple entre le " +"chercheur qui crée le spécificateur de module et le chargeur qui l'exécute. " +"Surtout, cela permet au mécanisme d'importation d'effectuer toutes les " +"opérations classiques de chargement, alors que c'était le chargeur qui en " +"avait la responsabilité quand il n'y avait pas de spécificateur." + +#: ../Doc/reference/import.rst:521 +msgid "" +"The module's spec is exposed as the ``__spec__`` attribute on a module " +"object. See :class:`~importlib.machinery.ModuleSpec` for details on the " +"contents of the module spec." +msgstr "" +"Le spécificateur de module est accessible par l'attribut ``__spec__`` de " +"l'objet module. Lisez :class:`~importlib.machinery.ModuleSpec` pour " +"davantage d'informations sur le contenu du spécificateur de module." + +#: ../Doc/reference/import.rst:530 +msgid "Import-related module attributes" +msgstr "Attributs des modules importés" + +#: ../Doc/reference/import.rst:532 +msgid "" +"The import machinery fills in these attributes on each module object during " +"loading, based on the module's spec, before the loader executes the module." +msgstr "" +"Le mécanisme d'importation renseigne ces attributs pour chaque objet module " +"pendant le chargement, sur la base du spécificateur de module et avant que " +"le chargeur n'exécute le module." + +#: ../Doc/reference/import.rst:538 +msgid "" +"The ``__name__`` attribute must be set to the fully-qualified name of the " +"module. This name is used to uniquely identify the module in the import " +"system." +msgstr "" +"L'attribut ``__name__`` doit contenir le nom complètement qualifié du " +"module. Ce nom est utilisé pour identifier de manière non équivoque le " +"module dans le mécanisme d'importation." + +#: ../Doc/reference/import.rst:544 +msgid "" +"The ``__loader__`` attribute must be set to the loader object that the " +"import machinery used when loading the module. This is mostly for " +"introspection, but can be used for additional loader-specific functionality, " +"for example getting data associated with a loader." +msgstr "" +"L'attribut ``__loader__`` doit pointer vers l'objet chargeur que le " +"mécanisme d'importation a utilisé pour charger le module. L'utilisation " +"principale concerne l'introspection, mais il peut être utilisé pour d'autres " +"fonctionnalités relatives au chargement. Par exemple, obtenir des données " +"par l'intermédiaire du chargeur." + +#: ../Doc/reference/import.rst:551 +msgid "" +"The module's ``__package__`` attribute must be set. Its value must be a " +"string, but it can be the same value as its ``__name__``. When the module " +"is a package, its ``__package__`` value should be set to its ``__name__``. " +"When the module is not a package, ``__package__`` should be set to the empty " +"string for top-level modules, or for submodules, to the parent package's " +"name. See :pep:`366` for further details." +msgstr "" +"L'attribut ``__package__`` du module doit être défini. Sa valeur doit être " +"une chaîne de caractères, qui peut être la même que son attribut " +"``__name__``. Quand le module est un paquet, la valeur de ``__package__`` " +"doit être définie à la même valeur que son ``__name__``. Quand le module " +"n'est pas un paquet, ``__package__`` doit être la chaîne vide pour les " +"modules de niveau le plus haut, et le nom du paquet parent pour les sous-" +"modules. Voir la :pep:`366` pour plus de détails." + +#: ../Doc/reference/import.rst:559 +msgid "" +"This attribute is used instead of ``__name__`` to calculate explicit " +"relative imports for main modules, as defined in :pep:`366`. It is expected " +"to have the same value as ``__spec__.parent``." +msgstr "" +"Cet attribut est utilisé à la place de ``__name__`` pour calculer les " +"importations relatives explicites des modules principaux, comme défini dans " +"la :pep:`366`. Il devrait avoir la même valeur que ``__spec__.parent``." + +#: ../Doc/reference/import.rst:563 +msgid "" +"The value of ``__package__`` is expected to be the same as ``__spec__." +"parent``." +msgstr "" +"La valeur de ``__package__`` devrait être la même que celle de ``__spec__." +"parent``." + +#: ../Doc/reference/import.rst:569 +msgid "" +"The ``__spec__`` attribute must be set to the module spec that was used when " +"importing the module. Setting ``__spec__`` appropriately applies equally to :" +"ref:`modules initialized during interpreter startup `. The one " +"exception is ``__main__``, where ``__spec__`` is :ref:`set to None in some " +"cases `." +msgstr "" +"L'attribut ``__spec__`` doit contenir un lien vers le spécificateur de " +"module qui a été utilisé lors de l'importation du module. Définir " +"``__spec__`` correctement s'applique aussi pour :ref:`l'initialisation des " +"modules au démarrage de l'interpréteur `. La seule exception " +"concerne ``__main__`` où la valeur de ``__spec__`` est :ref:`None dans " +"certains cas `." + +#: ../Doc/reference/import.rst:575 +msgid "" +"When ``__package__`` is not defined, ``__spec__.parent`` is used as a " +"fallback." +msgstr "" +"Quand ``__package__`` n'est pas défini, ``__spec__.parent`` est utilisé par " +"défaut." + +#: ../Doc/reference/import.rst:580 +msgid "" +"``__spec__.parent`` is used as a fallback when ``__package__`` is not " +"defined." +msgstr "" +"``__spec__.parent`` est utilisé par défaut quand ``__package__`` n'est pas " +"défini." + +#: ../Doc/reference/import.rst:586 +msgid "" +"If the module is a package (either regular or namespace), the module " +"object's ``__path__`` attribute must be set. The value must be iterable, " +"but may be empty if ``__path__`` has no further significance. If " +"``__path__`` is not empty, it must produce strings when iterated over. More " +"details on the semantics of ``__path__`` are given :ref:`below `." +msgstr "" +"Si le module est un paquet (classique ou espace de nommage), l'attribut " +"``__path__`` de l'objet module doit être défini. La valeur doit être un " +"itérable mais peut être vide si ``__path__`` n'a pas de sens dans le " +"contexte. Si ``__path__`` n'est pas vide, il doit produire des chaînes " +"lorsque l'on itère dessus. Vous trouvez plus de détails sur la sémantique de " +"``__path__`` :ref:`plus loin ci-dessous `." + +#: ../Doc/reference/import.rst:593 +msgid "Non-package modules should not have a ``__path__`` attribute." +msgstr "" +"Les modules qui ne sont pas des paquets ne doivent pas avoir d'attribut " +"``__path__``." + +#: ../Doc/reference/import.rst:598 +msgid "" +"``__file__`` is optional. If set, this attribute's value must be a string. " +"The import system may opt to leave ``__file__`` unset if it has no semantic " +"meaning (e.g. a module loaded from a database)." +msgstr "" +"``__file__`` est optionnel. S'il est défini, la valeur de cet attribut doit " +"être une chaîne. Le système d'importation peut décider de laisser " +"``__file__`` indéfini si cela ne fait pas sens de le définir (par exemple, " +"lorsqu'on charge un module depuis une base de données)." + +#: ../Doc/reference/import.rst:602 +msgid "" +"If ``__file__`` is set, it may also be appropriate to set the ``__cached__`` " +"attribute which is the path to any compiled version of the code (e.g. byte-" +"compiled file). The file does not need to exist to set this attribute; the " +"path can simply point to where the compiled file would exist (see :pep:" +"`3147`)." +msgstr "" +"Si ``__file__`` est défini, il peut être judicieux de définir l'attribut " +"``__cached__`` dont la valeur est le chemin vers une version compilée du " +"code (par exemple, le fichier *bytecode*). Le fichier n'a pas besoin " +"d'exister pour définir cet attribut : le chemin peut simplement pointer vers " +"l'endroit où le fichier compilé aurait été placé (voir la :pep:`3147`)." + +#: ../Doc/reference/import.rst:608 +msgid "" +"It is also appropriate to set ``__cached__`` when ``__file__`` is not set. " +"However, that scenario is quite atypical. Ultimately, the loader is what " +"makes use of ``__file__`` and/or ``__cached__``. So if a loader can load " +"from a cached module but otherwise does not load from a file, that atypical " +"scenario may be appropriate." +msgstr "" +"Vous pouvez aussi définir ``__cached__`` quand ``__file__`` n'est pas " +"défini. Cependant, ce scénario semble rare. Au final, c'est le chargeur qui " +"utilise les valeurs de ``__file__`` ou ``__cached__``. Donc, si le chargeur " +"peut charger depuis un module mis en cache mais ne peut pas charger depuis " +"un fichier, ce scénario a du sens." + +#: ../Doc/reference/import.rst:617 +msgid "module.__path__" +msgstr "module.__path__" + +#: ../Doc/reference/import.rst:619 +msgid "" +"By definition, if a module has a ``__path__`` attribute, it is a package." +msgstr "" +"Par définition, si un module possède un attribut ``__path__``, c'est un " +"paquet." + +#: ../Doc/reference/import.rst:621 +msgid "" +"A package's ``__path__`` attribute is used during imports of its " +"subpackages. Within the import machinery, it functions much the same as :" +"data:`sys.path`, i.e. providing a list of locations to search for modules " +"during import. However, ``__path__`` is typically much more constrained " +"than :data:`sys.path`." +msgstr "" +"L'attribut ``__path__`` d'un paquet est utilisé pendant l'importation des " +"sous-paquets. Dans le mécanisme d'importation, son fonctionnement ressemble " +"beaucoup à :data:`sys.path`, c'est-à-dire qu'il fournit une liste " +"d'emplacements où rechercher les modules pendant l'importation. Cependant, " +"``__path__`` est beaucoup plus contraint que :data:`sys.path`." + +#: ../Doc/reference/import.rst:627 +msgid "" +"``__path__`` must be an iterable of strings, but it may be empty. The same " +"rules used for :data:`sys.path` also apply to a package's ``__path__``, and :" +"data:`sys.path_hooks` (described below) are consulted when traversing a " +"package's ``__path__``." +msgstr "" +"``__path__`` doit être un itérable de chaînes de caractères, mais il peut " +"être vide. Les mêmes règles que pour :data:`sys.path` s'appliquent au " +"``__path__`` d'un paquet et :data:`sys.path_hooks` (dont la description est " +"donnée plus bas) est consulté pendant le parcours de ``__path__`` du paquet." + +#: ../Doc/reference/import.rst:632 +msgid "" +"A package's ``__init__.py`` file may set or alter the package's ``__path__`` " +"attribute, and this was typically the way namespace packages were " +"implemented prior to :pep:`420`. With the adoption of :pep:`420`, namespace " +"packages no longer need to supply ``__init__.py`` files containing only " +"``__path__`` manipulation code; the import machinery automatically sets " +"``__path__`` correctly for the namespace package." +msgstr "" +"Le fichier ``__init__.py`` d'un paquet peut définir ou modifier l'attribut " +"``__path__`` d'un paquet, et c'est ainsi qu'étaient implémentés les paquets-" +"espaces de nommage avant la :pep:`420`. Depuis l'adoption de la :pep:`420`, " +"les paquets-espaces de nommage n'ont plus besoin d'avoir des fichiers " +"``__init__.py`` qui ne font que de la manipulation de ``__path__`` ; le " +"mécanisme d'importation définit automatiquement ``__path__`` correctement " +"pour un paquet-espace de nommage." + +#: ../Doc/reference/import.rst:640 +msgid "Module reprs" +msgstr "Représentation textuelle d'un module" + +#: ../Doc/reference/import.rst:642 +msgid "" +"By default, all modules have a usable repr, however depending on the " +"attributes set above, and in the module's spec, you can more explicitly " +"control the repr of module objects." +msgstr "" +"Par défaut, tous les modules ont une représentation textuelle utilisable. " +"Cependant, en utilisant les attributs définis ci-dessus et dans le " +"spécificateur de module, vous pouvez explicitement mieux contrôler " +"l'affichage des objets modules." + +#: ../Doc/reference/import.rst:646 +msgid "" +"If the module has a spec (``__spec__``), the import machinery will try to " +"generate a repr from it. If that fails or there is no spec, the import " +"system will craft a default repr using whatever information is available on " +"the module. It will try to use the ``module.__name__``, ``module." +"__file__``, and ``module.__loader__`` as input into the repr, with defaults " +"for whatever information is missing." +msgstr "" +"Si le module possède un spécificateur (``__spec__``), le mécanisme " +"d'importation essaie de générer une représentation avec celui-ci. S'il " +"échoue ou s'il n'y a pas de spécificateur, le système d'importation " +"construit une représentation par défaut en utilisant toute information " +"disponible sur le module. Il tente d'utiliser ``module.__name__``, ``module." +"__file__`` et ``module.__loader__`` comme entrées pour la représentation, " +"avec des valeurs par défaut lorsque l'information est manquante." + +#: ../Doc/reference/import.rst:653 +msgid "Here are the exact rules used:" +msgstr "Les règles exactes utilisées sont :" + +#: ../Doc/reference/import.rst:655 +msgid "" +"If the module has a ``__spec__`` attribute, the information in the spec is " +"used to generate the repr. The \"name\", \"loader\", \"origin\", and " +"\"has_location\" attributes are consulted." +msgstr "" +"Si le module possède un attribut ``__spec__``, la valeur est utilisée pour " +"générer la représentation. Les attributs *name*, *loader*, *origin* et " +"*has_location* sont consultés." + +#: ../Doc/reference/import.rst:659 +msgid "" +"If the module has a ``__file__`` attribute, this is used as part of the " +"module's repr." +msgstr "" +"Si le module possède un attribut ``__file__``, il est utilisé pour " +"construire la représentation du module." + +#: ../Doc/reference/import.rst:662 +msgid "" +"If the module has no ``__file__`` but does have a ``__loader__`` that is not " +"``None``, then the loader's repr is used as part of the module's repr." +msgstr "" +"Si le module ne possède pas d'attribut ``__file__`` mais possède un " +"``__loader__`` qui n'est pas ``None``, alors la représentation du chargeur " +"est utilisée pour construire la représentation du module." + +#: ../Doc/reference/import.rst:665 +msgid "Otherwise, just use the module's ``__name__`` in the repr." +msgstr "" +"Sinon, il utilise juste le ``__name__`` du module dans la représentation." + +#: ../Doc/reference/import.rst:667 +msgid "" +"Use of :meth:`loader.module_repr() ` has " +"been deprecated and the module spec is now used by the import machinery to " +"generate a module repr." +msgstr "" +"L'utilisation de :meth:`loader.module_repr() ` est devenue obsolète et le spécificateur de module est utilisé " +"dorénavant par le mécanisme d'importation pour générer la représentation " +"textuelle du module." + +#: ../Doc/reference/import.rst:672 +msgid "" +"For backward compatibility with Python 3.3, the module repr will be " +"generated by calling the loader's :meth:`~importlib.abc.Loader.module_repr` " +"method, if defined, before trying either approach described above. However, " +"the method is deprecated." +msgstr "" +"Par compatibilité descendante avec Python 3.3, la représentation textuelle " +"du module est générée en appelant la méthode :meth:`~importlib.abc.Loader." +"module_repr` du chargeur, si elle est définie, avant même d'essayer " +"l'approche décrite ci-dessus. Cependant, cette méthode est obsolète." + +#: ../Doc/reference/import.rst:680 +msgid "Cached bytecode invalidation" +msgstr "Invalidation de *bytecode* mis en cache" + +#: ../Doc/reference/import.rst:682 +msgid "" +"Before Python loads cached bytecode from ``.pyc`` file, it checks whether " +"the cache is up-to-date with the source ``.py`` file. By default, Python " +"does this by storing the source's last-modified timestamp and size in the " +"cache file when writing it. At runtime, the import system then validates the " +"cache file by checking the stored metadata in the cache file against at " +"source's metadata." +msgstr "" +"Avant que Python ne charge du *bytecode* en cache à partir d'un fichier ``." +"pyc``, il vérifie si ce cache est bien à jour par rapport au fichier source " +"``.py``. Python effectue cette vérification en stockant l'horodatage de la " +"dernière modification de la source ainsi que sa taille dans le fichier cache " +"au moment où il l'écrit. À l'exécution, le système d'importation valide le " +"fichier cache en comparant les métadonnées que le cache contient avec les " +"métadonnées de la source." + +#: ../Doc/reference/import.rst:689 +msgid "" +"Python also supports \"hash-based\" cache files, which store a hash of the " +"source file's contents rather than its metadata. There are two variants of " +"hash-based ``.pyc`` files: checked and unchecked. For checked hash-based ``." +"pyc`` files, Python validates the cache file by hashing the source file and " +"comparing the resulting hash with the hash in the cache file. If a checked " +"hash-based cache file is found to be invalid, Python regenerates it and " +"writes a new checked hash-based cache file. For unchecked hash-based ``." +"pyc`` files, Python simply assumes the cache file is valid if it exists. " +"Hash-based ``.pyc`` files validation behavior may be overridden with the :" +"option:`--check-hash-based-pycs` flag." +msgstr "" +"Python gère également les fichiers caches \"avec empreintes\", qui stockent " +"une empreinte (*hash* en anglais) du contenu de la source plutôt que des " +"métadonnées. Il existe deux variations des fichiers ``.pyc`` avec " +"empreintes : vérifiés et non-vérifiés. Pour les fichiers ``.pyc`` avec " +"empreinte vérifiés, Python valide le fichier cache en calculant l'empreinte " +"du fichier source et compare les empreintes. Si l'empreinte stockée dans le " +"fichier cache est invalide, Python la recalcule et écrit un nouveau fichier " +"cache avec empreinte. Pour les fichiers ``.pyc`` avec empreinte non " +"vérifiés, Python considère simplement que le fichier cache est valide s'il " +"existe. La validation (ou non) des fichiers ``.pyc`` avec empreinte peut " +"être définie avec l'option :option:`--check-hash-based-pycs`." + +#: ../Doc/reference/import.rst:700 +msgid "" +"Added hash-based ``.pyc`` files. Previously, Python only supported timestamp-" +"based invalidation of bytecode caches." +msgstr "" +"Ajout des fichiers ``.pyc`` avec empreinte. Auparavant, Python gérait les " +"caches de *bytecode* sur la base de l'horodatage." + +#: ../Doc/reference/import.rst:706 +msgid "The Path Based Finder" +msgstr "Le chercheur dans *path*" + +#: ../Doc/reference/import.rst:711 +msgid "" +"As mentioned previously, Python comes with several default meta path " +"finders. One of these, called the :term:`path based finder` (:class:" +"`~importlib.machinery.PathFinder`), searches an :term:`import path`, which " +"contains a list of :term:`path entries `. Each path entry names " +"a location to search for modules." +msgstr "" +"Comme indiqué précédemment, Python est livré par défaut avec plusieurs " +"chercheurs dans les méta-chemins. L'un deux, appelé :term:`chercheur dans " +"path ` (:class:`~importlib.machinery.PathFinder`), " +"recherche dans le :term:`chemin des importations ` qui contient " +"une liste :term:`d'entrées dans path `. Chaque entrée désigne un " +"emplacement où rechercher des modules." + +#: ../Doc/reference/import.rst:717 +msgid "" +"The path based finder itself doesn't know how to import anything. Instead, " +"it traverses the individual path entries, associating each of them with a " +"path entry finder that knows how to handle that particular kind of path." +msgstr "" +"Le chercheur dans *path* en tant que tel ne sait pas comment importer quoi " +"que ce soit. Il ne fait que parcourir chaque entrée de *path* et associe à " +"chacune d'elle un \"chercheur d'entrée dans *path*\" qui sait comment gérer " +"le type particulier de chemin considéré." + +#: ../Doc/reference/import.rst:721 +msgid "" +"The default set of path entry finders implement all the semantics for " +"finding modules on the file system, handling special file types such as " +"Python source code (``.py`` files), Python byte code (``.pyc`` files) and " +"shared libraries (e.g. ``.so`` files). When supported by the :mod:" +"`zipimport` module in the standard library, the default path entry finders " +"also handle loading all of these file types (other than shared libraries) " +"from zipfiles." +msgstr "" +"L'ensemble par défaut des \"chercheurs d'entrée dans *path*\" implémente " +"toute la sémantique pour trouver des modules dans le système de fichiers, " +"gérer des fichiers spéciaux tels que le code source Python (fichiers ``." +"py``), le *bytecode* Python (fichiers ``.pyc``) et les bibliothèques " +"partagées (par exemple les fichiers ``.so``). Quand le module :mod:" +"`zipimport` de la bibliothèque standard le permet, les \"chercheurs d'entrée " +"dans *path*\" par défaut savent aussi gérer tous ces types de fichiers " +"(autres que les bibliothèques partagées) encapsulés dans des fichiers zip." + +#: ../Doc/reference/import.rst:728 +msgid "" +"Path entries need not be limited to file system locations. They can refer " +"to URLs, database queries, or any other location that can be specified as a " +"string." +msgstr "" +"Les chemins ne sont pas limités au système de fichiers. Ils peuvent faire " +"référence à des URL, des requêtes dans des bases de données ou tout autre " +"emplacement qui peut être spécifié dans une chaîne de caractères." + +#: ../Doc/reference/import.rst:732 +msgid "" +"The path based finder provides additional hooks and protocols so that you " +"can extend and customize the types of searchable path entries. For example, " +"if you wanted to support path entries as network URLs, you could write a " +"hook that implements HTTP semantics to find modules on the web. This hook " +"(a callable) would return a :term:`path entry finder` supporting the " +"protocol described below, which was then used to get a loader for the module " +"from the web." +msgstr "" +"Le chercheur dans *path* fournit aussi des points d'entrées (ou *hooks*) et " +"des protocoles de manière à pouvoir étendre et personnaliser les types de " +"chemins dans lesquels chercher. Par exemple, si vous voulez pouvoir chercher " +"dans des URL réseau, vous pouvez écrire une fonction « point d'entrée » qui " +"implémente la sémantique HTTP pour chercher des modules sur la toile. Ce " +"point d'entrée (qui doit être un appelable) doit renvoyer un :term:" +"`chercheur d'entrée dans path ` qui gère le protocole " +"décrit plus bas et qui sera utilisé pour obtenir un chargeur de module sur " +"la toile." + +#: ../Doc/reference/import.rst:740 +msgid "" +"A word of warning: this section and the previous both use the term *finder*, " +"distinguishing between them by using the terms :term:`meta path finder` and :" +"term:`path entry finder`. These two types of finders are very similar, " +"support similar protocols, and function in similar ways during the import " +"process, but it's important to keep in mind that they are subtly different. " +"In particular, meta path finders operate at the beginning of the import " +"process, as keyed off the :data:`sys.meta_path` traversal." +msgstr "" +"Avertissement : cette section et la précédente utilisent toutes les deux le " +"terme *chercheur*, dans un cas :term:`chercheur dans les méta-chemins ` et dans l'autre :term:`chercheur d'entrée dans path `. Ces deux types de chercheurs sont très similaires, gèrent " +"des protocoles similaires et fonctionnent de manière semblable pendant le " +"processus d'importation, mais il est important de garder à l'esprit qu'ils " +"sont subtilement différents. En particulier, les chercheurs dans les méta-" +"chemins opèrent au début du processus d'importation, comme clé de parcours " +"de :data:`sys.meta_path`." + +#: ../Doc/reference/import.rst:748 +msgid "" +"By contrast, path entry finders are in a sense an implementation detail of " +"the path based finder, and in fact, if the path based finder were to be " +"removed from :data:`sys.meta_path`, none of the path entry finder semantics " +"would be invoked." +msgstr "" +"Au contraire, les \"chercheurs d'entrée dans *path*\" sont, dans un sens, un " +"détail d'implémentation du chercheur dans *path* et, en fait, si le " +"chercheur dans *path* était enlevé de :data:`sys.meta_path`, aucune des " +"sémantiques des \"chercheurs d'entrée dans *path*\" ne serait invoquée." + +#: ../Doc/reference/import.rst:755 +msgid "Path entry finders" +msgstr "Chercheurs d'entrée dans *path*" + +#: ../Doc/reference/import.rst:763 +msgid "" +"The :term:`path based finder` is responsible for finding and loading Python " +"modules and packages whose location is specified with a string :term:`path " +"entry`. Most path entries name locations in the file system, but they need " +"not be limited to this." +msgstr "" +"Le :term:`chercheur dans path ` (*path based finder* en " +"anglais) est responsable de trouver et charger les modules et les paquets " +"Python dont l'emplacement est spécifié par une chaîne dite :term:`d'entrée " +"dans path `. La plupart de ces entrées désignent des " +"emplacements sur le système de fichiers, mais il n'y a aucune raison de les " +"limiter à ça." + +#: ../Doc/reference/import.rst:768 +msgid "" +"As a meta path finder, the :term:`path based finder` implements the :meth:" +"`~importlib.abc.MetaPathFinder.find_spec` protocol previously described, " +"however it exposes additional hooks that can be used to customize how " +"modules are found and loaded from the :term:`import path`." +msgstr "" +"En tant que chercheur dans les méta-chemins, un :term:`chercheur dans path " +"` implémente le protocole :meth:`~importlib.abc." +"MetaPathFinder.find_spec` décrit précédemment. Cependant, il autorise des " +"points d'entrée (*hooks* en anglais) supplémentaires qui peuvent être " +"utilisés pour personnaliser la façon dont les modules sont trouvés et " +"chargés depuis le :term:`chemin des importations `." + +#: ../Doc/reference/import.rst:773 +msgid "" +"Three variables are used by the :term:`path based finder`, :data:`sys." +"path`, :data:`sys.path_hooks` and :data:`sys.path_importer_cache`. The " +"``__path__`` attributes on package objects are also used. These provide " +"additional ways that the import machinery can be customized." +msgstr "" +"Trois variables sont utilisées par le :term:`chercheur dans path ` : :data:`sys.path`, :data:`sys.path_hooks` et :data:`sys." +"path_importer_cache`. L'attribut ``__path__`` des objets paquets est aussi " +"utilisé. Il permet de personnaliser encore davantage le mécanisme " +"d'importation." + +#: ../Doc/reference/import.rst:778 +msgid "" +":data:`sys.path` contains a list of strings providing search locations for " +"modules and packages. It is initialized from the :data:`PYTHONPATH` " +"environment variable and various other installation- and implementation-" +"specific defaults. Entries in :data:`sys.path` can name directories on the " +"file system, zip files, and potentially other \"locations\" (see the :mod:" +"`site` module) that should be searched for modules, such as URLs, or " +"database queries. Only strings and bytes should be present on :data:`sys." +"path`; all other data types are ignored. The encoding of bytes entries is " +"determined by the individual :term:`path entry finders `." +msgstr "" +":data:`sys.path` contient une liste de chaînes de caractères indiquant des " +"emplacements où chercher des modules ou des paquets. Elle est initialisée à " +"partir de la variable d'environnement :data:`PYTHONPATH` et de plusieurs " +"autres valeurs par défaut qui dépendent de l'installation et de " +"l'implémentation. Les entrées de :data:`sys.path` désignent des répertoires " +"du système de fichiers, des fichiers zip et possiblement d'autres \"endroits" +"\" (lisez le module :mod:`site`) tels que des URL ou des requêtes dans des " +"bases de données où Python doit rechercher des modules. :data:`sys.path` ne " +"doit contenir que des chaînes de caractères ou d'octets ; tous les autres " +"types sont ignorés. L'encodage des entrées de chaînes d'octets est déterminé " +"par chaque :term:`chercheur d'entrée dans path `." + +#: ../Doc/reference/import.rst:789 +msgid "" +"The :term:`path based finder` is a :term:`meta path finder`, so the import " +"machinery begins the :term:`import path` search by calling the path based " +"finder's :meth:`~importlib.machinery.PathFinder.find_spec` method as " +"described previously. When the ``path`` argument to :meth:`~importlib." +"machinery.PathFinder.find_spec` is given, it will be a list of string paths " +"to traverse - typically a package's ``__path__`` attribute for an import " +"within that package. If the ``path`` argument is ``None``, this indicates a " +"top level import and :data:`sys.path` is used." +msgstr "" +"Le :term:`chercheur dans path ` est un :term:`chercheur " +"dans les méta-chemins `, donc le mécanisme d'importation " +"commence la recherche dans le :term:`chemin des importations ` " +"par un appel à la méthode :meth:`~importlib.machinery.PathFinder.find_spec` " +"du chercheur dans *path*, comme décrit précédemment. Quand l'argument *path* " +"de :meth:`~importlib.machinery.PathFinder.find_spec` est donné, c'est une " +"liste de chemins à parcourir, typiquement un attribut ``__path__`` pour une " +"importation à l'intérieur d'un paquet. Si l'argument *path* est ``None``, " +"cela indique une importation de niveau le plus haut et :data:`sys.path` est " +"utilisée." + +#: ../Doc/reference/import.rst:798 +msgid "" +"The path based finder iterates over every entry in the search path, and for " +"each of these, looks for an appropriate :term:`path entry finder` (:class:" +"`~importlib.abc.PathEntryFinder`) for the path entry. Because this can be " +"an expensive operation (e.g. there may be `stat()` call overheads for this " +"search), the path based finder maintains a cache mapping path entries to " +"path entry finders. This cache is maintained in :data:`sys." +"path_importer_cache` (despite the name, this cache actually stores finder " +"objects rather than being limited to :term:`importer` objects). In this way, " +"the expensive search for a particular :term:`path entry` location's :term:" +"`path entry finder` need only be done once. User code is free to remove " +"cache entries from :data:`sys.path_importer_cache` forcing the path based " +"finder to perform the path entry search again [#fnpic]_." +msgstr "" +"Le chercheur dans *path* itère sur chaque entrée dans le *path* et, pour " +"chacune, regarde s'il trouve un :term:`chercheur d'entrée dans path ` (:class:`~importlib.abc.PathEntryFinder`) approprié à cette " +"entrée. Comme cette opération est coûteuse (elle peut faire appel à " +"plusieurs `stat()` pour cela), le chercheur dans *path* maintient un cache " +"de correspondance entre les entrées et les \"chercheurs d'entrée dans *path*" +"\". Ce cache est géré par :data:`sys.path_importer_cache` (en dépit de son " +"nom, ce cache stocke les objets chercheurs plutôt que les simples objets :" +"term:`importateurs `). Ainsi, la recherche coûteuse pour une :term:" +"`entrée de path ` spécifique n'a besoin d'être effectuée qu'une " +"seule fois par le :term:`chercheur d'entrée dans path `. " +"Le code de l'utilisateur peut très bien supprimer les entrées du cache :data:" +"`sys.path_importer_cache`, forçant ainsi le chercheur dans *path* à " +"effectuer une nouvelle fois la recherche sur chaque entrée [#fnpic]_." + +#: ../Doc/reference/import.rst:811 +msgid "" +"If the path entry is not present in the cache, the path based finder " +"iterates over every callable in :data:`sys.path_hooks`. Each of the :term:" +"`path entry hooks ` in this list is called with a single " +"argument, the path entry to be searched. This callable may either return a :" +"term:`path entry finder` that can handle the path entry, or it may raise :" +"exc:`ImportError`. An :exc:`ImportError` is used by the path based finder " +"to signal that the hook cannot find a :term:`path entry finder` for that :" +"term:`path entry`. The exception is ignored and :term:`import path` " +"iteration continues. The hook should expect either a string or bytes " +"object; the encoding of bytes objects is up to the hook (e.g. it may be a " +"file system encoding, UTF-8, or something else), and if the hook cannot " +"decode the argument, it should raise :exc:`ImportError`." +msgstr "" +"Si une entrée n'est pas présente dans le cache, le chercheur dans *path* " +"itère sur chaque *callable* de :data:`sys.path_hooks`. Chaque :term:`point " +"d'entrée sur une entrée de path ` de cette liste est appelé " +"avec un unique argument, l'entrée dans laquelle chercher. L'appelable peut " +"soit renvoyer un :term:`chercheur d'entrée dans path ` " +"apte à prendre en charge l'entrée ou lever une :exc:`ImportError`. Une :exc:" +"`ImportError` est utilisée par le chercheur dans *path* pour signaler que le " +"point d'entrée n'a pas trouvé de :term:`chercheur d'entrée dans path ` pour cette :term:`entrée `. L'exception est " +"ignorée et l'itération sur le :term:`chemin des importations ` " +"se poursuit. Le point d'entrée doit attendre qu'on lui passe soit une chaîne " +"de caractères soit une chaîne d'octets ; l'encodage des chaînes d'octets est " +"à la main du point d'entrée (par exemple, ce peut être l'encodage du système " +"de fichiers, de l'UTF-8 ou autre chose) et, si le point d'entrée n'arrive " +"pas à décoder l'argument, il doit lever une :exc:`ImportError`." + +#: ../Doc/reference/import.rst:825 +msgid "" +"If :data:`sys.path_hooks` iteration ends with no :term:`path entry finder` " +"being returned, then the path based finder's :meth:`~importlib.machinery." +"PathFinder.find_spec` method will store ``None`` in :data:`sys." +"path_importer_cache` (to indicate that there is no finder for this path " +"entry) and return ``None``, indicating that this :term:`meta path finder` " +"could not find the module." +msgstr "" +"Si l'itération sur :data:`sys.path_hooks` se termine sans qu'aucun :term:" +"`chercheur d'entrée dans path ` ne soit renvoyé, alors la " +"méthode :meth:`~importlib.machinery.PathFinder.find_spec` du chercheur dans " +"*path* stocke ``None`` dans le :data:`sys.path_importer_cache` (pour " +"indiquer qu'il n'y a pas de chercheur pour cette entrée) et renvoie " +"``None``, indiquant que ce :term:`chercheur dans les méta-chemins ` n'a pas trouvé le module." + +#: ../Doc/reference/import.rst:832 +msgid "" +"If a :term:`path entry finder` *is* returned by one of the :term:`path entry " +"hook` callables on :data:`sys.path_hooks`, then the following protocol is " +"used to ask the finder for a module spec, which is then used when loading " +"the module." +msgstr "" +"Si un :term:`chercheur d'entrée dans path ` *est* renvoyé " +"par un des :term:`points d'entrée ` de :data:`sys." +"path_hooks`, alors le protocole suivant est utilisé pour demander un " +"spécificateur de module au chercheur, spécificateur qui sera utilisé pour " +"charger le module." + +#: ../Doc/reference/import.rst:837 +msgid "" +"The current working directory -- denoted by an empty string -- is handled " +"slightly differently from other entries on :data:`sys.path`. First, if the " +"current working directory is found to not exist, no value is stored in :data:" +"`sys.path_importer_cache`. Second, the value for the current working " +"directory is looked up fresh for each module lookup. Third, the path used " +"for :data:`sys.path_importer_cache` and returned by :meth:`importlib." +"machinery.PathFinder.find_spec` will be the actual current working directory " +"and not the empty string." +msgstr "" +"Le répertoire de travail courant — noté sous la forme d'une chaîne de " +"caractères vide — est géré d'une manière légèrement différente des autres " +"entrées de :data:`sys.path`. D'abord, si le répertoire de travail courant " +"s'avère ne pas exister, aucune valeur n'est stockée dans :data:`sys." +"path_importer_cache`. Ensuite, la valeur pour le répertoire de travail " +"courant est vérifiée à chaque recherche de module. Enfin, le chemin utilisé " +"pour :data:`sys.path_importer_cache` et renvoyée par :meth:`importlib." +"machinery.PathFinder.find_spec` est le nom réel du répertoire de travail " +"courant et non pas la chaîne vide." + +#: ../Doc/reference/import.rst:847 +msgid "Path entry finder protocol" +msgstr "Protocole des chercheurs d'entrée dans *path*" + +#: ../Doc/reference/import.rst:849 +msgid "" +"In order to support imports of modules and initialized packages and also to " +"contribute portions to namespace packages, path entry finders must implement " +"the :meth:`~importlib.abc.PathEntryFinder.find_spec` method." +msgstr "" +"Afin de gérer les importations de modules, l'initialisation des paquets et " +"d'être capables de contribuer aux portions des paquets-espaces de nommage, " +"les chercheurs d'entrée dans *path* doivent implémenter la méthode :meth:" +"`~importlib.abc.PathEntryFinder.find_spec`." + +#: ../Doc/reference/import.rst:853 +msgid "" +":meth:`~importlib.abc.PathEntryFinder.find_spec` takes two argument, the " +"fully qualified name of the module being imported, and the (optional) target " +"module. ``find_spec()`` returns a fully populated spec for the module. This " +"spec will always have \"loader\" set (with one exception)." +msgstr "" +"La méthode :meth:`~importlib.abc.PathEntryFinder.find_spec` prend deux " +"arguments, le nom complètement qualifié du module en cours d'importation et " +"(optionnellement) le module cible. ``find_spec()`` renvoie un spécificateur " +"de module pleinement peuplé. Ce spécificateur doit avoir son chargeur " +"(attribut \"loader\" ) défini, à une exception près." + +#: ../Doc/reference/import.rst:858 +msgid "" +"To indicate to the import machinery that the spec represents a namespace :" +"term:`portion`. the path entry finder sets \"loader\" on the spec to " +"``None`` and \"submodule_search_locations\" to a list containing the portion." +msgstr "" +"Pour indiquer au mécanisme d'importation que le spécificateur représente " +"une :term:`portion ` d'un espace de nommage, le chercheur d'entrée " +"dans *path* définit le chargeur du spécificateur à ``None`` et l'attribut " +"*submodule_search_locations* à une liste contenant la portion." + +#: ../Doc/reference/import.rst:863 +msgid "" +":meth:`~importlib.abc.PathEntryFinder.find_spec` replaced :meth:`~importlib." +"abc.PathEntryFinder.find_loader` and :meth:`~importlib.abc.PathEntryFinder." +"find_module`, both of which are now deprecated, but will be used if " +"``find_spec()`` is not defined." +msgstr "" +"La méthode :meth:`~importlib.abc.PathEntryFinder.find_spec` remplace :meth:" +"`~importlib.abc.PathEntryFinder.find_loader` et :meth:`~importlib.abc." +"PathEntryFinder.find_module`, ces deux méthodes étant dorénavant obsolètes " +"mais restant utilisées si ``find_spec()`` n'est pas définie." + +#: ../Doc/reference/import.rst:869 +msgid "" +"Older path entry finders may implement one of these two deprecated methods " +"instead of ``find_spec()``. The methods are still respected for the sake of " +"backward compatibility. However, if ``find_spec()`` is implemented on the " +"path entry finder, the legacy methods are ignored." +msgstr "" +"Les vieux chercheurs d'entrée dans *path* peuvent implémenter une des deux " +"méthodes obsolètes à la place de ``find_spec()``. Ces méthodes sont toujours " +"prises en compte dans le cadre de la compatibilité descendante. Cependant, " +"si ``find_spec()`` est implémentée par le chercheur d'entrée dans *path*, " +"les méthodes historiques sont ignorées." + +#: ../Doc/reference/import.rst:874 +msgid "" +":meth:`~importlib.abc.PathEntryFinder.find_loader` takes one argument, the " +"fully qualified name of the module being imported. ``find_loader()`` " +"returns a 2-tuple where the first item is the loader and the second item is " +"a namespace :term:`portion`. When the first item (i.e. the loader) is " +"``None``, this means that while the path entry finder does not have a loader " +"for the named module, it knows that the path entry contributes to a " +"namespace portion for the named module. This will almost always be the case " +"where Python is asked to import a namespace package that has no physical " +"presence on the file system. When a path entry finder returns ``None`` for " +"the loader, the second item of the 2-tuple return value must be a sequence, " +"although it can be empty." +msgstr "" +"La méthode :meth:`~importlib.abc.PathEntryFinder.find_loader` prend un " +"argument, le nom complètement qualifié du module en cours d'importation. " +"``find_loader()`` renvoie un couple dont le premier élément est le chargeur " +"et le second est une :term:`portion ` d'espace de nommage. Quand le " +"premier élément (c'est-à-dire le chargeur) est ``None``, cela signifie que, " +"bien que le chercheur d'entrée dans *path* n'a pas de chargeur pour le " +"module considéré, il sait que cette entrée contribue à une portion d'espace " +"de nommage pour le module considéré. C'est presque toujours le cas quand " +"vous demandez à Python d'importer un paquet-espace de nommage qui n'est pas " +"présent physiquement sur le système de fichiers. Quand un chercheur d'entrée " +"dans *path* renvoie ``None`` pour le chargeur, la valeur du second élément " +"du couple renvoyé doit être une séquence, éventuellement vide." + +#: ../Doc/reference/import.rst:886 +msgid "" +"If ``find_loader()`` returns a non-``None`` loader value, the portion is " +"ignored and the loader is returned from the path based finder, terminating " +"the search through the path entries." +msgstr "" +"Si ``find_loader()`` renvoie une valeur de chargeur qui n'est pas ``None``, " +"la portion est ignorée et le chargeur est renvoyé par le chercheur dans " +"*path*, mettant un terme à la recherche dans les chemins." + +#: ../Doc/reference/import.rst:890 +msgid "" +"For backwards compatibility with other implementations of the import " +"protocol, many path entry finders also support the same, traditional " +"``find_module()`` method that meta path finders support. However path entry " +"finder ``find_module()`` methods are never called with a ``path`` argument " +"(they are expected to record the appropriate path information from the " +"initial call to the path hook)." +msgstr "" +"À fin de compatibilité descendante avec d'autres implémentations du " +"protocole d'importation, beaucoup de chercheurs d'entrée dans *path* gèrent " +"aussi la méthode traditionnelle ``find_module()`` que l'on trouve dans les " +"chercheurs dans les méta-chemins. Cependant, les méthodes ``find_module()`` " +"des chercheurs d'entrée dans *path* ne sont jamais appelées avec un argument " +"*path* (il est convenu qu'elles enregistrent les informations relatives au " +"chemin approprié au moment de leur appel initial au point d'entrée)." + +#: ../Doc/reference/import.rst:897 +msgid "" +"The ``find_module()`` method on path entry finders is deprecated, as it does " +"not allow the path entry finder to contribute portions to namespace " +"packages. If both ``find_loader()`` and ``find_module()`` exist on a path " +"entry finder, the import system will always call ``find_loader()`` in " +"preference to ``find_module()``." +msgstr "" +"La méthode ``find_module()`` des chercheurs d'entrée dans *path* est " +"obsolète car elle n'autorise pas le chercheur d'entrée dans *path* à " +"contribuer aux portions d'espaces de nommage des paquets-espaces de nommage. " +"Si à la fois ``find_loader()`` et ``find_module()`` sont définies pour un " +"chercheur d'entrée dans *path*, le système d'importation utilise toujours " +"``find_loader()`` plutôt que ``find_module()``." + +#: ../Doc/reference/import.rst:905 +msgid "Replacing the standard import system" +msgstr "Remplacement du système d'importation standard" + +#: ../Doc/reference/import.rst:907 +msgid "" +"The most reliable mechanism for replacing the entire import system is to " +"delete the default contents of :data:`sys.meta_path`, replacing them " +"entirely with a custom meta path hook." +msgstr "" +"La manière la plus fiable de remplacer tout le système d'importation est de " +"supprimer le contenu par défaut de :data:`sys.meta_path` et de le remplacer " +"complètement par un chercheur dans les méta-chemins sur mesure." + +#: ../Doc/reference/import.rst:911 +msgid "" +"If it is acceptable to only alter the behaviour of import statements without " +"affecting other APIs that access the import system, then replacing the " +"builtin :func:`__import__` function may be sufficient. This technique may " +"also be employed at the module level to only alter the behaviour of import " +"statements within that module." +msgstr "" +"S'il convient juste de modifier le comportement de l'instruction import sans " +"affecter les autres API qui utilisent le système d'importation, alors " +"remplacer la fonction native :func:`__import__` peut être suffisant. Cette " +"technique peut aussi être employée au niveau d'un module pour n'altérer le " +"comportement des importations qu'à l'intérieur de ce module." + +#: ../Doc/reference/import.rst:917 +msgid "" +"To selectively prevent import of some modules from a hook early on the meta " +"path (rather than disabling the standard import system entirely), it is " +"sufficient to raise :exc:`ModuleNotFoundError` directly from :meth:" +"`~importlib.abc.MetaPathFinder.find_spec` instead of returning ``None``. The " +"latter indicates that the meta path search should continue, while raising an " +"exception terminates it immediately." +msgstr "" +"Pour empêcher sélectivement l'importation de certains modules par un point " +"d'entrée placé en tête dans le méta-chemin (plutôt que de désactiver " +"complètement le système d'importation), il suffit de lever une :exc:" +"`ModuleNotFoundError` directement depuis :meth:`~importlib.abc." +"MetaPathFinder.find_spec` au lieu de renvoyer ``None``. En effet, ``None`` " +"indique que la recherche dans le méta-chemin peut continuer alors que la " +"levée de l'exception termine immédiatement la recherche." + +#: ../Doc/reference/import.rst:927 +msgid "Package Relative Imports" +msgstr "Importations relatives au paquet" + +#: ../Doc/reference/import.rst:929 +msgid "" +"Relative imports use leading dots. A single leading dot indicates a relative " +"import, starting with the current package. Two or more leading dots indicate " +"a relative import to the parent(s) of the current package, one level per dot " +"after the first. For example, given the following package layout::" +msgstr "" +"Les importations relatives commencent par une suite de points. Un seul point " +"avant indique une importation relative, démarrant avec le paquet actuel. " +"Deux points ou plus avant indiquent une importation relative au parent du " +"paquet actuel, un niveau par point avant le premier. Par exemple, en ayant " +"le contenu suivant ::" + +#: ../Doc/reference/import.rst:945 +msgid "" +"In either ``subpackage1/moduleX.py`` or ``subpackage1/__init__.py``, the " +"following are valid relative imports::" +msgstr "" +"Dans ``subpackage1/moduleX.py`` ou ``subpackage1/__init__.py``, les " +"importations suivantes sont des importations relatives valides ::" + +#: ../Doc/reference/import.rst:955 +msgid "" +"Absolute imports may use either the ``import <>`` or ``from <> import <>`` " +"syntax, but relative imports may only use the second form; the reason for " +"this is that::" +msgstr "" +"Les importations absolues peuvent utiliser soit la syntaxe ``import <>``, " +"soit ``from <> import <>``, mais les importations relatives doivent " +"seulement utiliser la deuxième forme, la raison étant ::" + +#: ../Doc/reference/import.rst:961 +msgid "" +"should expose ``XXX.YYY.ZZZ`` as a usable expression, but .moduleY is not a " +"valid expression." +msgstr "" +"devrait exposer ``XXX.YYY.ZZZ`` comme une expression utilisable, mais ``." +"moduleY`` n’est pas une expression valide." + +#: ../Doc/reference/import.rst:966 +msgid "Special considerations for __main__" +msgstr "Cas particulier de ``__main__``" + +#: ../Doc/reference/import.rst:968 +msgid "" +"The :mod:`__main__` module is a special case relative to Python's import " +"system. As noted :ref:`elsewhere `, the ``__main__`` module is " +"directly initialized at interpreter startup, much like :mod:`sys` and :mod:" +"`builtins`. However, unlike those two, it doesn't strictly qualify as a " +"built-in module. This is because the manner in which ``__main__`` is " +"initialized depends on the flags and other options with which the " +"interpreter is invoked." +msgstr "" +"Le module :mod:`__main__` est un cas particulier pour le système " +"d'importation de Python. Comme indiqué par :ref:`ailleurs `, le " +"module ``__main__`` est initialisé directement au démarrage de " +"l'interpréteur, un peu comme :mod:`sys` et :mod:`builtins`. Cependant, au " +"contraire des deux cités précédemment, ce n'est pas vraiment un module " +"natif. Effectivement, la manière dont est initialisé ``__main__`` dépend des " +"drapeaux et options avec lesquels l'interpréteur est lancé." + +#: ../Doc/reference/import.rst:979 +msgid "__main__.__spec__" +msgstr "``__main__.__spec__``" + +#: ../Doc/reference/import.rst:981 +msgid "" +"Depending on how :mod:`__main__` is initialized, ``__main__.__spec__`` gets " +"set appropriately or to ``None``." +msgstr "" +"En fonction de la manière dont :mod:`__main__` est initialisé, ``__main__." +"__spec__`` est défini de manière conforme ou mis à ``None``." + +#: ../Doc/reference/import.rst:984 +msgid "" +"When Python is started with the :option:`-m` option, ``__spec__`` is set to " +"the module spec of the corresponding module or package. ``__spec__`` is also " +"populated when the ``__main__`` module is loaded as part of executing a " +"directory, zipfile or other :data:`sys.path` entry." +msgstr "" +"Quand Python est démarré avec l'option :option:`-m`, ``__spec__`` est défini " +"à la valeur du spécificateur du module ou paquet correspondant. Python " +"peuple aussi ``__spec__`` quand le module ``__main__`` est chargé en tant " +"que partie de l'exécution d'un répertoire, d'un fichier zip ou d'une entrée " +"de :data:`sys.path`." + +#: ../Doc/reference/import.rst:989 +msgid "" +"In :ref:`the remaining cases ` ``__main__." +"__spec__`` is set to ``None``, as the code used to populate the :mod:" +"`__main__` does not correspond directly with an importable module:" +msgstr "" +"Dans :ref:`les autres cas `, ``__main__." +"__spec__`` est mis à ``None``, car le code qui peuple :mod:`__main__` ne " +"trouve pas de correspondance directe avec un module que l'on importe :" + +#: ../Doc/reference/import.rst:993 +msgid "interactive prompt" +msgstr "invite de commande interactive" + +#: ../Doc/reference/import.rst:994 +msgid ":option:`-c` option" +msgstr "l'option :option:`-c`" + +#: ../Doc/reference/import.rst:995 +msgid "running from stdin" +msgstr "lecture depuis l'entrée standard" + +#: ../Doc/reference/import.rst:996 +msgid "running directly from a source or bytecode file" +msgstr "lecture depuis un fichier de code source ou de *bytecode*" + +#: ../Doc/reference/import.rst:998 +msgid "" +"Note that ``__main__.__spec__`` is always ``None`` in the last case, *even " +"if* the file could technically be imported directly as a module instead. Use " +"the :option:`-m` switch if valid module metadata is desired in :mod:" +"`__main__`." +msgstr "" +"Notez que ``__main__.__spec__`` vaut toujours ``None`` dans le dernier cas, " +"*même si* le fichier pourrait techniquement être importé directement en tant " +"que module. Utilisez l'option :option:`-m` si vous souhaitez disposer de " +"métadonnées valides du module dans :mod:`__main__`." + +#: ../Doc/reference/import.rst:1003 +msgid "" +"Note also that even when ``__main__`` corresponds with an importable module " +"and ``__main__.__spec__`` is set accordingly, they're still considered " +"*distinct* modules. This is due to the fact that blocks guarded by ``if " +"__name__ == \"__main__\":`` checks only execute when the module is used to " +"populate the ``__main__`` namespace, and not during normal import." +msgstr "" +"Notez aussi que même quand ``__main__`` correspond à un module importable et " +"que ``__main__.__spec__`` est défini en conséquence, ils seront toujours " +"considérés comme des modules *distincts*. Cela est dû au fait que le bloc " +"encadré par ``if __name__ == \"__main__\":`` ne s'exécute que quand le " +"module est utilisé pour peupler l'espace de nommage de ``__main__``, et pas " +"durant une importation normale." + +#: ../Doc/reference/import.rst:1011 +msgid "Open issues" +msgstr "Idées d'amélioration" + +#: ../Doc/reference/import.rst:1013 +msgid "XXX It would be really nice to have a diagram." +msgstr "XXX Ce serait vraiment bien de disposer d'un diagramme." + +#: ../Doc/reference/import.rst:1015 +msgid "" +"XXX * (import_machinery.rst) how about a section devoted just to the " +"attributes of modules and packages, perhaps expanding upon or supplanting " +"the related entries in the data model reference page?" +msgstr "" +"XXX * (``import_machinery.rst``) Pourquoi pas une section dédiée aux " +"attributs des modules et paquets, développant ou remplaçant les entrées " +"associées dans la page de référence du modèle de données ?" + +#: ../Doc/reference/import.rst:1019 +msgid "" +"XXX runpy, pkgutil, et al in the library manual should all get \"See Also\" " +"links at the top pointing to the new import system section." +msgstr "" +"XXX *runpy*, *pkgutil* et autres dans le manuel de la bibliothèque devraient " +"comporter un lien \"Lisez aussi\" en début de page pointant vers la section " +"du nouveau mécanisme d'import." + +#: ../Doc/reference/import.rst:1022 +msgid "" +"XXX Add more explanation regarding the different ways in which ``__main__`` " +"is initialized?" +msgstr "" +"XXX Ajouter des explications sur les différentes manières dont ``__main__`` " +"est initialisé ?" + +#: ../Doc/reference/import.rst:1025 +msgid "" +"XXX Add more info on ``__main__`` quirks/pitfalls (i.e. copy from :pep:" +"`395`)." +msgstr "" +"XXX Ajouter des informations sur les pièges et bizarreries de ``__main__`` " +"(c-à-d des extraits de la :pep:`395`)." + +#: ../Doc/reference/import.rst:1030 +msgid "References" +msgstr "Références" + +#: ../Doc/reference/import.rst:1032 +msgid "" +"The import machinery has evolved considerably since Python's early days. " +"The original `specification for packages `_ is still available to read, although some details have changed " +"since the writing of that document." +msgstr "" +"Le mécanisme d'importation a considérablement évolué depuis les débuts de " +"Python. La `spécification des paquets `_ originale est toujours disponible, bien que quelques détails " +"ont changé depuis l'écriture de ce document." + +#: ../Doc/reference/import.rst:1037 +msgid "" +"The original specification for :data:`sys.meta_path` was :pep:`302`, with " +"subsequent extension in :pep:`420`." +msgstr "" +"La spécification originale de :data:`sys.meta_path` se trouve dans la :pep:" +"`302`. La :pep:`420` contient des extensions significatives." + +#: ../Doc/reference/import.rst:1040 +msgid "" +":pep:`420` introduced :term:`namespace packages ` for " +"Python 3.3. :pep:`420` also introduced the :meth:`find_loader` protocol as " +"an alternative to :meth:`find_module`." +msgstr "" +"La :pep:`420` a introduit les :term:`paquets-espaces de nommage ` pour Python 3.3. La :pep:`420` a aussi introduit le protocole :" +"meth:`recherche du chargeur ` comme une alternative à :meth:" +"`find_module`." + +#: ../Doc/reference/import.rst:1044 +msgid "" +":pep:`366` describes the addition of the ``__package__`` attribute for " +"explicit relative imports in main modules." +msgstr "" +"La :pep:`366` décrit l'ajout de l'attribut ``__package__`` pour les " +"importations relatives explicites dans les modules principaux." + +#: ../Doc/reference/import.rst:1047 +msgid "" +":pep:`328` introduced absolute and explicit relative imports and initially " +"proposed ``__name__`` for semantics :pep:`366` would eventually specify for " +"``__package__``." +msgstr "" +"La :pep:`328` a introduit les importations absolues et les importations " +"relatives explicites. Elle a aussi proposé ``__name__`` pour la sémantique " +"que la :pep:`366` attribuait à ``__package__``." + +#: ../Doc/reference/import.rst:1051 +msgid ":pep:`338` defines executing modules as scripts." +msgstr ":pep:`338` définit l'exécution de modules en tant que scripts." + +#: ../Doc/reference/import.rst:1053 +msgid "" +":pep:`451` adds the encapsulation of per-module import state in spec " +"objects. It also off-loads most of the boilerplate responsibilities of " +"loaders back onto the import machinery. These changes allow the deprecation " +"of several APIs in the import system and also addition of new methods to " +"finders and loaders." +msgstr "" +":pep:`451` ajoute l'encapsulation dans les objets spécificateurs de l'état " +"des importations, module par module. Elle reporte aussi la majorité des " +"responsabilités des chargeurs vers le mécanisme d'import. Ces changements " +"permettent de supprimer plusieurs API dans le système d'importation et " +"d'ajouter de nouvelles méthodes aux chercheurs et chargeurs." + +#: ../Doc/reference/import.rst:1060 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/reference/import.rst:1061 +msgid "See :class:`types.ModuleType`." +msgstr "Voir :class:`types.ModuleType`." + +#: ../Doc/reference/import.rst:1063 +msgid "" +"The importlib implementation avoids using the return value directly. " +"Instead, it gets the module object by looking the module name up in :data:" +"`sys.modules`. The indirect effect of this is that an imported module may " +"replace itself in :data:`sys.modules`. This is implementation-specific " +"behavior that is not guaranteed to work in other Python implementations." +msgstr "" +"L'implémentation de *importlib* évite d'utiliser directement la valeur de " +"retour. À la place, elle récupère l'objet module en recherchant le nom du " +"module dans :data:`sys.modules`. L'effet indirect est que le module importé " +"peut remplacer le module de même nom dans :data:`sys.modules`. C'est un " +"comportement spécifique à l'implémentation dont le résultat n'est pas " +"garanti pour les autres implémentations de Python." + +#: ../Doc/reference/import.rst:1070 +msgid "" +"In legacy code, it is possible to find instances of :class:`imp." +"NullImporter` in the :data:`sys.path_importer_cache`. It is recommended " +"that code be changed to use ``None`` instead. See :ref:`portingpythoncode` " +"for more details." +msgstr "" +"Dans du code historique, il est possible de trouver des instances de :class:" +"`imp.NullImporter` dans :data:`sys.path_importer_cache`. Il est recommandé " +"de modifier ce code afin d'utiliser ``None`` à la place. Lisez :ref:" +"`portingpythoncode` pour plus de détails." + +#~ msgid "-c switch" +#~ msgstr "option *-c* de la ligne de commande" diff --git a/reference/index.po b/reference/index.po new file mode 100644 index 000000000..3f6b27e3e --- /dev/null +++ b/reference/index.po @@ -0,0 +1,39 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-10-05 08:54+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/reference/index.rst:5 +msgid "The Python Language Reference" +msgstr "La référence du langage Python" + +#: ../Doc/reference/index.rst:7 +msgid "" +"This reference manual describes the syntax and \"core semantics\" of the " +"language. It is terse, but attempts to be exact and complete. The semantics " +"of non-essential built-in object types and of the built-in functions and " +"modules are described in :ref:`library-index`. For an informal introduction " +"to the language, see :ref:`tutorial-index`. For C or C++ programmers, two " +"additional manuals exist: :ref:`extending-index` describes the high-level " +"picture of how to write a Python extension module, and the :ref:`c-api-" +"index` describes the interfaces available to C/C++ programmers in detail." +msgstr "" +"Cette documentation décrit la syntaxe et la « sémantique interne » du " +"langage. Elle peut être laconique, mais essaye d'être exhaustive et exacte. " +"La sémantique des objets natifs secondaires, des fonctions, et des modules " +"est documentée dans :ref:`library-index`. Pour une présentation informelle " +"du langage, voyez plutôt :ref:`tutorial-index`. Pour les développeurs C ou C+" +"+, deux manuels supplémentaires existent : :ref:`extending-index` survole " +"l'écriture d'extensions, et :ref:`c-api-index` décrit l'interface C/C++ en " +"détail." diff --git a/reference/introduction.po b/reference/introduction.po new file mode 100644 index 000000000..dc0191232 --- /dev/null +++ b/reference/introduction.po @@ -0,0 +1,299 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-02 00:10+0200\n" +"PO-Revision-Date: 2018-10-07 19:09+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.1.1\n" + +#: ../Doc/reference/introduction.rst:6 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/reference/introduction.rst:8 +msgid "" +"This reference manual describes the Python programming language. It is not " +"intended as a tutorial." +msgstr "" +"Ce manuel de référence décrit le langage de programmation Python. Il n'a pas " +"vocation à être un tutoriel." + +#: ../Doc/reference/introduction.rst:11 +msgid "" +"While I am trying to be as precise as possible, I chose to use English " +"rather than formal specifications for everything except syntax and lexical " +"analysis. This should make the document more understandable to the average " +"reader, but will leave room for ambiguities. Consequently, if you were " +"coming from Mars and tried to re-implement Python from this document alone, " +"you might have to guess things and in fact you would probably end up " +"implementing quite a different language. On the other hand, if you are using " +"Python and wonder what the precise rules about a particular area of the " +"language are, you should definitely be able to find them here. If you would " +"like to see a more formal definition of the language, maybe you could " +"volunteer your time --- or invent a cloning machine :-)." +msgstr "" +"Nous essayons d'être le plus précis possible et nous utilisons le français " +"(NdT : ou l’anglais pour les parties qui ne sont pas encore traduites) " +"plutôt que des spécifications formelles, sauf pour la syntaxe et l’analyse " +"lexicale. Nous espérons ainsi rendre ce document plus compréhensible pour un " +"grand nombre de lecteurs, même si cela laisse un peu de place à l’ambiguïté. " +"En conséquence, si vous arrivez de Mars et que vous essayez de ré-" +"implémenter Python à partir de cet unique document, vous devrez faire des " +"hypothèses et, finalement, vous aurez certainement implémenté un langage " +"sensiblement différent. D’un autre côté, si vous utilisez Python et que vous " +"vous demandez quelles règles s’appliquent pour telle partie du langage, vous " +"devriez trouver une réponse satisfaisante ici. Si vous souhaitez voir une " +"définition plus formelle du langage, nous acceptons toutes les bonnes " +"volontés (ou bien inventez une machine pour nous cloner ☺)." + +#: ../Doc/reference/introduction.rst:23 +msgid "" +"It is dangerous to add too many implementation details to a language " +"reference document --- the implementation may change, and other " +"implementations of the same language may work differently. On the other " +"hand, CPython is the one Python implementation in widespread use (although " +"alternate implementations continue to gain support), and its particular " +"quirks are sometimes worth being mentioned, especially where the " +"implementation imposes additional limitations. Therefore, you'll find short " +"\"implementation notes\" sprinkled throughout the text." +msgstr "" +"S’agissant du manuel de référence d’un langage, il est dangereux de rentrer " +"profondément dans les détails d’implémentation ; l’implémentation peut " +"changer et d’autres implémentations du même langage peuvent fonctionner " +"différemment. En même temps, CPython est l’implémentation de Python la plus " +"répandue (bien que d’autres implémentations gagnent en popularité) et " +"certaines de ses bizarreries méritent parfois d’être mentionnées, en " +"particulier lorsque l’implémentation impose des limitations supplémentaires. " +"Par conséquent, vous trouvez de courtes \"notes d’implémentation\" " +"saupoudrées dans le texte." + +#: ../Doc/reference/introduction.rst:32 +msgid "" +"Every Python implementation comes with a number of built-in and standard " +"modules. These are documented in :ref:`library-index`. A few built-in " +"modules are mentioned when they interact in a significant way with the " +"language definition." +msgstr "" +"Chaque implémentation de Python est livrée avec un certain nombre de modules " +"natifs. Ceux-ci sont documentés dans :ref:`library-index`. Quelques modules " +"natifs sont mentionnés quand ils interagissent significativement avec la " +"définition du langage." + +#: ../Doc/reference/introduction.rst:41 +msgid "Alternate Implementations" +msgstr "Autres implémentations" + +#: ../Doc/reference/introduction.rst:43 +msgid "" +"Though there is one Python implementation which is by far the most popular, " +"there are some alternate implementations which are of particular interest to " +"different audiences." +msgstr "" +"Bien qu’il existe une implémentation Python qui soit de loin la plus " +"populaire, il existe d’autres implémentations qui présentent un intérêt " +"particulier pour différents publics." + +#: ../Doc/reference/introduction.rst:47 +msgid "Known implementations include:" +msgstr "Parmi les implémentations les plus connues, nous pouvons citer :" + +#: ../Doc/reference/introduction.rst:51 +msgid "CPython" +msgstr "CPython" + +#: ../Doc/reference/introduction.rst:50 +msgid "" +"This is the original and most-maintained implementation of Python, written " +"in C. New language features generally appear here first." +msgstr "" +"C’est l’implémentation originelle et la plus entretenue de Python, écrite en " +"C. Elle implémente généralement en premier les nouvelles fonctionnalités du " +"langage." + +#: ../Doc/reference/introduction.rst:57 +msgid "Jython" +msgstr "Jython" + +#: ../Doc/reference/introduction.rst:54 +msgid "" +"Python implemented in Java. This implementation can be used as a scripting " +"language for Java applications, or can be used to create applications using " +"the Java class libraries. It is also often used to create tests for Java " +"libraries. More information can be found at `the Jython website `_." +msgstr "" +"Python implémenté en Java. Cette implémentation peut être utilisée comme " +"langage de script pour les applications Java ou pour créer des applications " +"utilisant des bibliothèques Java. Elle est également souvent utilisée pour " +"créer des tests de bibliothèques Java. Plus d’informations peuvent être " +"trouvées sur `the Jython website `_ (site en " +"anglais)." + +#: ../Doc/reference/introduction.rst:63 +msgid "Python for .NET" +msgstr "Python pour .NET" + +#: ../Doc/reference/introduction.rst:60 +msgid "" +"This implementation actually uses the CPython implementation, but is a " +"managed .NET application and makes .NET libraries available. It was created " +"by Brian Lloyd. For more information, see the `Python for .NET home page " +"`_." +msgstr "" +"Cette implémentation utilise en fait l’implémentation CPython, mais c’est " +"une application .NET et permet un accès aux bibliothèques .NET. Elle a été " +"créée par Brian Lloyd. Pour plus d’informations, consultez la page d’accueil " +"`Python pour .NET `_ (site en anglais)." + +#: ../Doc/reference/introduction.rst:69 +msgid "IronPython" +msgstr "IronPython" + +#: ../Doc/reference/introduction.rst:66 +msgid "" +"An alternate Python for .NET. Unlike Python.NET, this is a complete Python " +"implementation that generates IL, and compiles Python code directly to .NET " +"assemblies. It was created by Jim Hugunin, the original creator of Jython. " +"For more information, see `the IronPython website `_." +msgstr "" +"Un autre Python pour .NET. Contrairement à Python.NET, il s’agit d’une " +"implémentation Python complète qui génère du code intermédiaire (IL) .NET et " +"compile le code Python directement en assemblages .NET. Il a été créé par " +"Jim Hugunin, le programmeur à l’origine de Jython. Pour plus d’informations, " +"voir `the IronPython website `_ (site en anglais)." + +#: ../Doc/reference/introduction.rst:77 +msgid "PyPy" +msgstr "PyPy" + +#: ../Doc/reference/introduction.rst:72 +msgid "" +"An implementation of Python written completely in Python. It supports " +"several advanced features not found in other implementations like stackless " +"support and a Just in Time compiler. One of the goals of the project is to " +"encourage experimentation with the language itself by making it easier to " +"modify the interpreter (since it is written in Python). Additional " +"information is available on `the PyPy project's home page `_." +msgstr "" +"Une implémentation de Python complètement écrite en Python. Elle apporte des " +"fonctionnalités avancées introuvables dans d'autres implémentations, telles " +"que le fonctionnement sans pile (*stackless* en anglais) et un compilateur à " +"la volée (*Just in Time compiler* en anglais). L'un des objectifs du projet " +"est d'encourager l'expérimentation du langage lui-même en facilitant la " +"modification de l'interpréteur (puisqu'il est écrit en Python). Des " +"informations complémentaires sont disponibles sur la `page d'accueil du " +"projet PyPy `_ (site en anglais)." + +#: ../Doc/reference/introduction.rst:79 +msgid "" +"Each of these implementations varies in some way from the language as " +"documented in this manual, or introduces specific information beyond what's " +"covered in the standard Python documentation. Please refer to the " +"implementation-specific documentation to determine what else you need to " +"know about the specific implementation you're using." +msgstr "" +"Chacune de ces implémentations diffère d'une manière ou d'une autre par " +"rapport au langage décrit dans ce manuel, ou comporte des spécificités que " +"la documentation standard de Python ne couvre pas. Reportez-vous à la " +"documentation spécifique à l'implémentation pour déterminer ce que vous " +"devez savoir sur l'implémentation que vous utilisez." + +#: ../Doc/reference/introduction.rst:89 +msgid "Notation" +msgstr "Notations" + +#: ../Doc/reference/introduction.rst:93 +msgid "" +"The descriptions of lexical analysis and syntax use a modified BNF grammar " +"notation. This uses the following style of definition:" +msgstr "" +"Les descriptions de l'analyse lexicale et de la syntaxe utilisent une " +"notation de grammaire BNF modifiée. Le style utilisé est le suivant :" + +#: ../Doc/reference/introduction.rst:100 +msgid "" +"The first line says that a ``name`` is an ``lc_letter`` followed by a " +"sequence of zero or more ``lc_letter``\\ s and underscores. An " +"``lc_letter`` in turn is any of the single characters ``'a'`` through " +"``'z'``. (This rule is actually adhered to for the names defined in lexical " +"and grammar rules in this document.)" +msgstr "" +"La première ligne indique qu'un ``name`` est un ``lc_letter`` suivi d'une " +"suite de zéro ou plus ``lc_letter``\\s ou tiret bas. Un ``lc_letter`` est, à " +"son tour, l'un des caractères ``'a'`` à ``'z'`` (cette règle est " +"effectivement respectée pour les noms définis dans les règles lexicales et " +"grammaticales de ce document)." + +#: ../Doc/reference/introduction.rst:105 +msgid "" +"Each rule begins with a name (which is the name defined by the rule) and ``::" +"=``. A vertical bar (``|``) is used to separate alternatives; it is the " +"least binding operator in this notation. A star (``*``) means zero or more " +"repetitions of the preceding item; likewise, a plus (``+``) means one or " +"more repetitions, and a phrase enclosed in square brackets (``[ ]``) means " +"zero or one occurrences (in other words, the enclosed phrase is optional). " +"The ``*`` and ``+`` operators bind as tightly as possible; parentheses are " +"used for grouping. Literal strings are enclosed in quotes. White space is " +"only meaningful to separate tokens. Rules are normally contained on a single " +"line; rules with many alternatives may be formatted alternatively with each " +"line after the first beginning with a vertical bar." +msgstr "" +"Chaque règle commence par un nom (qui est le nom que la règle définit) et " +"``::=``. Une barre verticale (``|``) est utilisée pour séparer les " +"alternatives ; c'est l'opérateur le moins prioritaire de cette notation. Une " +"étoile (``*``) signifie zéro ou plusieurs répétitions de l'élément " +"précédent ; de même, un plus (``+``) signifie une ou plusieurs répétitions, " +"et une expression entre crochets (``[ ]``) signifie zéro ou une occurrence " +"(en d'autres termes, l'expression encadrée est facultative). Les opérateurs " +"``*`` et ``+`` agissent aussi étroitement que possible ; les parenthèses " +"sont utilisées pour le regroupement. Les chaînes littérales sont entourées " +"de guillemets anglais ``\"``. L'espace n'est utilisée que pour séparer les " +"lexèmes. Les règles sont normalement contenues sur une seule ligne ; les " +"règles avec de nombreuses alternatives peuvent être formatées avec chaque " +"ligne représentant une alternative (et donc débutant par une barre " +"verticale, sauf la première)." + +#: ../Doc/reference/introduction.rst:119 +msgid "" +"In lexical definitions (as the example above), two more conventions are " +"used: Two literal characters separated by three dots mean a choice of any " +"single character in the given (inclusive) range of ASCII characters. A " +"phrase between angular brackets (``<...>``) gives an informal description of " +"the symbol defined; e.g., this could be used to describe the notion of " +"'control character' if needed." +msgstr "" +"Dans les définitions lexicales (comme dans l'exemple ci-dessus), deux autres " +"conventions sont utilisées : deux caractères littéraux séparés par des " +"points de suspension signifient le choix d'un seul caractère dans la plage " +"donnée (en incluant les bornes) de caractères ASCII. Une phrase entre les " +"signes inférieur et supérieur (``<...>``) donne une description informelle " +"du symbole défini ; par exemple, pour décrire la notion de \"caractère de " +"contrôle\" si nécessaire." + +#: ../Doc/reference/introduction.rst:126 +msgid "" +"Even though the notation used is almost the same, there is a big difference " +"between the meaning of lexical and syntactic definitions: a lexical " +"definition operates on the individual characters of the input source, while " +"a syntax definition operates on the stream of tokens generated by the " +"lexical analysis. All uses of BNF in the next chapter (\"Lexical Analysis\") " +"are lexical definitions; uses in subsequent chapters are syntactic " +"definitions." +msgstr "" +"Même si la notation utilisée est presque la même, il existe une grande " +"différence entre la signification des définitions lexicales et syntaxiques : " +"une définition lexicale opère sur les caractères individuels de l'entrée, " +"tandis qu'une définition syntaxique opère sur le flux de lexèmes générés par " +"l'analyse lexicale. Toutes les notations sous la forme BNF dans le chapitre " +"suivant (« Analyse lexicale ») sont des définitions lexicales ; les " +"notations dans les chapitres suivants sont des définitions syntaxiques." diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po new file mode 100644 index 000000000..b61534bb3 --- /dev/null +++ b/reference/lexical_analysis.po @@ -0,0 +1,1441 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 21:51+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/reference/lexical_analysis.rst:6 +msgid "Lexical analysis" +msgstr "Analyse lexicale" + +#: ../Doc/reference/lexical_analysis.rst:10 +msgid "" +"A Python program is read by a *parser*. Input to the parser is a stream of " +"*tokens*, generated by the *lexical analyzer*. This chapter describes how " +"the lexical analyzer breaks a file into tokens." +msgstr "" +"Un programme Python est lu par un analyseur syntaxique (*parser* en " +"anglais). En entrée de cet analyseur syntaxique, nous trouvons des lexèmes " +"(*tokens* en anglais), produits par un analyseur lexical. Ce chapitre décrit " +"comment l'analyseur lexical découpe le fichier en lexèmes." + +#: ../Doc/reference/lexical_analysis.rst:14 +msgid "" +"Python reads program text as Unicode code points; the encoding of a source " +"file can be given by an encoding declaration and defaults to UTF-8, see :pep:" +"`3120` for details. If the source file cannot be decoded, a :exc:" +"`SyntaxError` is raised." +msgstr "" +"Python lit le texte du programme comme des suites de caractères Unicode ; " +"l'encodage du fichier source peut être spécifié par une déclaration " +"d'encodage et vaut par défaut UTF-8, voir la :pep:`3120` pour les détails. " +"Si le fichier source ne peut pas être décodé, une exception :exc:" +"`SyntaxError` (erreur de syntaxe) est levée." + +#: ../Doc/reference/lexical_analysis.rst:23 +msgid "Line structure" +msgstr "Structure des lignes" + +#: ../Doc/reference/lexical_analysis.rst:27 +msgid "A Python program is divided into a number of *logical lines*." +msgstr "Un programme en Python est divisé en *lignes logiques*." + +#: ../Doc/reference/lexical_analysis.rst:33 +msgid "Logical lines" +msgstr "Lignes logiques" + +#: ../Doc/reference/lexical_analysis.rst:37 +msgid "" +"The end of a logical line is represented by the token NEWLINE. Statements " +"cannot cross logical line boundaries except where NEWLINE is allowed by the " +"syntax (e.g., between statements in compound statements). A logical line is " +"constructed from one or more *physical lines* by following the explicit or " +"implicit *line joining* rules." +msgstr "" +"La fin d'une ligne logique est représentée par le lexème NEWLINE. Les " +"instructions ne peuvent pas traverser les limites des lignes logiques, sauf " +"quand NEWLINE est autorisé par la syntaxe (par exemple, entre les " +"instructions des instructions composées). Une ligne logique est constituée " +"d'une ou plusieurs *lignes physiques* en fonction des règles, explicites ou " +"implicites, de *continuation de ligne*." + +#: ../Doc/reference/lexical_analysis.rst:47 +msgid "Physical lines" +msgstr "Lignes physiques" + +#: ../Doc/reference/lexical_analysis.rst:49 +msgid "" +"A physical line is a sequence of characters terminated by an end-of-line " +"sequence. In source files and strings, any of the standard platform line " +"termination sequences can be used - the Unix form using ASCII LF (linefeed), " +"the Windows form using the ASCII sequence CR LF (return followed by " +"linefeed), or the old Macintosh form using the ASCII CR (return) character. " +"All of these forms can be used equally, regardless of platform. The end of " +"input also serves as an implicit terminator for the final physical line." +msgstr "" +"Une ligne physique est une suite de caractères terminée par une séquence de " +"fin de ligne. Dans les fichiers sources et les chaînes de caractères, " +"n'importe quelle séquence de fin de ligne des plateformes standards peut " +"être utilisée ; Unix utilise le caractère ASCII LF (pour *linefeed*, saut de " +"ligne en français), Windows utilise la séquence CR LF (*carriage return* " +"suivi de *linefeed*) et Macintosh utilisait le caractère ASCII CR. Toutes " +"ces séquences peuvent être utilisées, quelle que soit la plateforme. La fin " +"de l'entrée est aussi une fin de ligne physique implicite." + +#: ../Doc/reference/lexical_analysis.rst:57 +msgid "" +"When embedding Python, source code strings should be passed to Python APIs " +"using the standard C conventions for newline characters (the ``\\n`` " +"character, representing ASCII LF, is the line terminator)." +msgstr "" +"Lorsque vous encapsulez Python, les chaînes de code source doivent être " +"passées à l'API Python en utilisant les conventions du C standard pour les " +"caractères de fin de ligne : le caractère ``\\n``, dont le code ASCII est LF." + +#: ../Doc/reference/lexical_analysis.rst:65 +msgid "Comments" +msgstr "Commentaires" + +#: ../Doc/reference/lexical_analysis.rst:70 +msgid "" +"A comment starts with a hash character (``#``) that is not part of a string " +"literal, and ends at the end of the physical line. A comment signifies the " +"end of the logical line unless the implicit line joining rules are invoked. " +"Comments are ignored by the syntax." +msgstr "" +"Un commentaire commence par le caractère croisillon (``#``, *hash* en " +"anglais et qui ressemble au symbole musical dièse, c'est pourquoi il est " +"souvent improprement appelé caractère dièse) situé en dehors d'une chaine de " +"caractères littérale et se termine à la fin de la ligne physique. Un " +"commentaire signifie la fin de la ligne logique à moins qu'une règle de " +"continuation de ligne implicite ne s'applique. Les commentaires sont ignorés " +"au niveau syntaxique, ce ne sont pas des lexèmes." + +#: ../Doc/reference/lexical_analysis.rst:79 +msgid "Encoding declarations" +msgstr "Déclaration d'encodage" + +#: ../Doc/reference/lexical_analysis.rst:84 +msgid "" +"If a comment in the first or second line of the Python script matches the " +"regular expression ``coding[=:]\\s*([-\\w.]+)``, this comment is processed " +"as an encoding declaration; the first group of this expression names the " +"encoding of the source code file. The encoding declaration must appear on a " +"line of its own. If it is the second line, the first line must also be a " +"comment-only line. The recommended forms of an encoding expression are ::" +msgstr "" +"Si un commentaire placé sur la première ou deuxième ligne du script Python " +"correspond à l'expression rationnelle ``coding[=:]\\s*([-\\w.]+)``, ce " +"commentaire est analysé comme une déclaration d'encodage ; le premier groupe " +"de cette expression désigne l'encodage du fichier source. Cette déclaration " +"d'encodage doit être seule sur sa ligne et, si elle est sur la deuxième " +"ligne, la première ligne doit aussi être une ligne composée uniquement d'un " +"commentaire. Les formes recommandées pour l'expression de l'encodage sont ::" + +#: ../Doc/reference/lexical_analysis.rst:93 +msgid "which is recognized also by GNU Emacs, and ::" +msgstr "qui est reconnue aussi par GNU Emacs et ::" + +#: ../Doc/reference/lexical_analysis.rst:97 +msgid "which is recognized by Bram Moolenaar's VIM." +msgstr "qui est reconnue par VIM de Bram Moolenaar." + +#: ../Doc/reference/lexical_analysis.rst:99 +msgid "" +"If no encoding declaration is found, the default encoding is UTF-8. In " +"addition, if the first bytes of the file are the UTF-8 byte-order mark " +"(``b'\\xef\\xbb\\xbf'``), the declared file encoding is UTF-8 (this is " +"supported, among others, by Microsoft's :program:`notepad`)." +msgstr "" +"Si aucune déclaration d'encodage n'est trouvée, l'encodage par défaut est " +"utilisé : UTF-8. En plus, si les premiers octets du fichier sont " +"l'indicateur d'ordre des octets UTF-8 (``b'\\xef\\xbb\\xbf'``, *BOM* en " +"anglais pour *byte order mark*), le fichier est considéré comme étant en " +"UTF-8 (cette convention est reconnue, entre autres, par :program:`notepad` " +"de Microsoft)." + +#: ../Doc/reference/lexical_analysis.rst:104 +msgid "" +"If an encoding is declared, the encoding name must be recognized by Python. " +"The encoding is used for all lexical analysis, including string literals, " +"comments and identifiers." +msgstr "" +"Si un encodage est déclaré, le nom de l'encodage doit être reconnu par " +"Python. L'encodage est utilisé pour toute l'analyse lexicale, y compris les " +"chaînes de caractères, les commentaires et les identifiants." + +#: ../Doc/reference/lexical_analysis.rst:114 +msgid "Explicit line joining" +msgstr "Continuation de ligne explicite" + +#: ../Doc/reference/lexical_analysis.rst:118 +msgid "" +"Two or more physical lines may be joined into logical lines using backslash " +"characters (``\\``), as follows: when a physical line ends in a backslash " +"that is not part of a string literal or comment, it is joined with the " +"following forming a single logical line, deleting the backslash and the " +"following end-of-line character. For example::" +msgstr "" +"Deux lignes physiques, ou plus, peuvent être jointes pour former une seule " +"ligne logique en utilisant la barre oblique inversée (``\\``) selon la règle " +"suivante : quand la ligne physique se termine par une barre oblique inversée " +"qui ne fait pas partie d'une chaine de caractères ou d'un commentaire, la " +"ligne immédiatement suivante lui est adjointe pour former une seule ligne " +"logique, en supprimant la barre oblique inversée et le caractère de fin de " +"ligne. Par exemple ::" + +#: ../Doc/reference/lexical_analysis.rst:129 +msgid "" +"A line ending in a backslash cannot carry a comment. A backslash does not " +"continue a comment. A backslash does not continue a token except for string " +"literals (i.e., tokens other than string literals cannot be split across " +"physical lines using a backslash). A backslash is illegal elsewhere on a " +"line outside a string literal." +msgstr "" +"Une ligne que se termine par une barre oblique inversée ne peut pas avoir de " +"commentaire. La barre oblique inversée ne permet pas de continuer un " +"commentaire. La barre oblique inversée ne permet pas de continuer un lexème, " +"sauf s'il s'agit d'une chaîne de caractères (par exemple, les lexèmes autres " +"que les chaînes de caractères ne peuvent pas être répartis sur plusieurs " +"lignes en utilisant une barre oblique inversée). La barre oblique inversée " +"n'est pas autorisée ailleurs sur la ligne, en dehors d'une chaîne de " +"caractères." + +#: ../Doc/reference/lexical_analysis.rst:139 +msgid "Implicit line joining" +msgstr "Continuation de ligne implicite" + +#: ../Doc/reference/lexical_analysis.rst:141 +msgid "" +"Expressions in parentheses, square brackets or curly braces can be split " +"over more than one physical line without using backslashes. For example::" +msgstr "" +"Les expressions entre parenthèses, crochets ou accolades peuvent être " +"réparties sur plusieurs lignes sans utiliser de barre oblique inversée. Par " +"exemple ::" + +#: ../Doc/reference/lexical_analysis.rst:149 +msgid "" +"Implicitly continued lines can carry comments. The indentation of the " +"continuation lines is not important. Blank continuation lines are allowed. " +"There is no NEWLINE token between implicit continuation lines. Implicitly " +"continued lines can also occur within triple-quoted strings (see below); in " +"that case they cannot carry comments." +msgstr "" +"Les lignes continuées implicitement peuvent avoir des commentaires. " +"L'indentation des lignes de continuation n'est pas importante. Une ligne " +"blanche est autorisée comme ligne de continuation. Il ne doit pas y avoir de " +"lexème NEWLINE entre des lignes implicitement continuées. Les lignes " +"continuées implicitement peuvent être utilisées dans des chaînes entre " +"triples guillemets (voir ci-dessous) ; dans ce cas, elles ne peuvent pas " +"avoir de commentaires." + +#: ../Doc/reference/lexical_analysis.rst:159 +msgid "Blank lines" +msgstr "Lignes vierges" + +#: ../Doc/reference/lexical_analysis.rst:163 +msgid "" +"A logical line that contains only spaces, tabs, formfeeds and possibly a " +"comment, is ignored (i.e., no NEWLINE token is generated). During " +"interactive input of statements, handling of a blank line may differ " +"depending on the implementation of the read-eval-print loop. In the " +"standard interactive interpreter, an entirely blank logical line (i.e. one " +"containing not even whitespace or a comment) terminates a multi-line " +"statement." +msgstr "" +"Une ligne logique qui ne contient que des espaces, tabulations, caractères " +"de saut de page (*formfeed* en anglais) ou commentaires est ignorée (c'est-à-" +"dire que le lexème NEWLINE n'est pas produit). Pendant l'édition interactive " +"d'instructions, la gestion des lignes vierges peut différer en fonction de " +"l'implémentation de la boucle REPL. Dans l'interpréteur standard, une ligne " +"complètement vierge (c'est-à-dire ne contenant strictement rien, même pas " +"une espace ou un commentaire) termine une instruction multi-lignes." + +#: ../Doc/reference/lexical_analysis.rst:174 +msgid "Indentation" +msgstr "Indentation" + +#: ../Doc/reference/lexical_analysis.rst:178 +msgid "" +"Leading whitespace (spaces and tabs) at the beginning of a logical line is " +"used to compute the indentation level of the line, which in turn is used to " +"determine the grouping of statements." +msgstr "" +"Des espaces ou tabulations au début d’une ligne logique sont utilisées pour " +"connaître le niveau d’indentation de la ligne, qui est ensuite utilisé pour " +"déterminer comment les instructions sont groupées." + +#: ../Doc/reference/lexical_analysis.rst:182 +msgid "" +"Tabs are replaced (from left to right) by one to eight spaces such that the " +"total number of characters up to and including the replacement is a multiple " +"of eight (this is intended to be the same rule as used by Unix). The total " +"number of spaces preceding the first non-blank character then determines the " +"line's indentation. Indentation cannot be split over multiple physical " +"lines using backslashes; the whitespace up to the first backslash determines " +"the indentation." +msgstr "" +"Les tabulations sont remplacées (de la gauche vers la droite) par une à huit " +"espaces de manière à ce que le nombre de caractères remplacés soit un " +"multiple de huit (nous avons ainsi la même règle que celle d'Unix). Le " +"nombre total d'espaces précédant le premier caractère non blanc détermine " +"alors le niveau d'indentation de la ligne. L'indentation ne peut pas être " +"répartie sur plusieurs lignes physiques à l'aide de barres obliques " +"inversées ; les espaces jusqu'à la première barre oblique inversée " +"déterminent l'indentation." + +#: ../Doc/reference/lexical_analysis.rst:190 +msgid "" +"Indentation is rejected as inconsistent if a source file mixes tabs and " +"spaces in a way that makes the meaning dependent on the worth of a tab in " +"spaces; a :exc:`TabError` is raised in that case." +msgstr "" +"L'indentation est déclarée inconsistante et rejetée si, dans un même fichier " +"source, le mélange des tabulations et des espaces est tel que la " +"signification dépend du nombre d'espaces que représente une tabulation. Une " +"exception :exc:`TabError` est levée dans ce cas." + +#: ../Doc/reference/lexical_analysis.rst:194 +msgid "" +"**Cross-platform compatibility note:** because of the nature of text editors " +"on non-UNIX platforms, it is unwise to use a mixture of spaces and tabs for " +"the indentation in a single source file. It should also be noted that " +"different platforms may explicitly limit the maximum indentation level." +msgstr "" +"**Note de compatibilité entre les plateformes :** en raison de la nature des " +"éditeurs de texte sur les plateformes non Unix, il n'est pas judicieux " +"d'utiliser un mélange d'espaces et de tabulations pour l'indentation dans un " +"seul fichier source. Il convient également de noter que des plateformes " +"peuvent explicitement limiter le niveau d'indentation maximal." + +#: ../Doc/reference/lexical_analysis.rst:199 +msgid "" +"A formfeed character may be present at the start of the line; it will be " +"ignored for the indentation calculations above. Formfeed characters " +"occurring elsewhere in the leading whitespace have an undefined effect (for " +"instance, they may reset the space count to zero)." +msgstr "" +"Un caractère de saut de page peut être présent au début de la ligne ; il est " +"ignoré pour les calculs d'indentation ci-dessus. Les caractères de saut de " +"page se trouvant ailleurs avec les espaces en tête de ligne ont un effet " +"indéfini (par exemple, ils peuvent remettre à zéro le nombre d'espaces)." + +#: ../Doc/reference/lexical_analysis.rst:206 +msgid "" +"The indentation levels of consecutive lines are used to generate INDENT and " +"DEDENT tokens, using a stack, as follows." +msgstr "" +"Les niveaux d'indentation de lignes consécutives sont utilisés pour générer " +"les lexèmes INDENT et DEDENT, en utilisant une pile, de cette façon :" + +#: ../Doc/reference/lexical_analysis.rst:209 +msgid "" +"Before the first line of the file is read, a single zero is pushed on the " +"stack; this will never be popped off again. The numbers pushed on the stack " +"will always be strictly increasing from bottom to top. At the beginning of " +"each logical line, the line's indentation level is compared to the top of " +"the stack. If it is equal, nothing happens. If it is larger, it is pushed on " +"the stack, and one INDENT token is generated. If it is smaller, it *must* " +"be one of the numbers occurring on the stack; all numbers on the stack that " +"are larger are popped off, and for each number popped off a DEDENT token is " +"generated. At the end of the file, a DEDENT token is generated for each " +"number remaining on the stack that is larger than zero." +msgstr "" +"Avant que la première ligne du fichier ne soit lue, un « zéro » est posé sur " +"la pile ; il ne sera plus jamais enlevé. Les nombres empilés sont toujours " +"strictement croissants de bas en haut. Au début de chaque ligne logique, le " +"niveau d'indentation de la ligne est comparé au sommet de la pile. S'ils " +"sont égaux, il ne se passe rien. S'il est plus grand, il est empilé et un " +"lexème INDENT est produit. S'il est plus petit, il *doit* être l'un des " +"nombres présents dans la pile ; tous les nombres de la pile qui sont plus " +"grands sont retirés et, pour chaque nombre retiré, un lexème DEDENT est " +"produit. À la fin du fichier, un lexème DEDENT est produit pour chaque " +"nombre supérieur à zéro restant sur la pile." + +#: ../Doc/reference/lexical_analysis.rst:220 +msgid "" +"Here is an example of a correctly (though confusingly) indented piece of " +"Python code::" +msgstr "" +"Voici un exemple de code Python correctement indenté (bien que très " +"confus) ::" + +#: ../Doc/reference/lexical_analysis.rst:235 +msgid "The following example shows various indentation errors::" +msgstr "L'exemple suivant montre plusieurs erreurs d'indentation ::" + +#: ../Doc/reference/lexical_analysis.rst:245 +msgid "" +"(Actually, the first three errors are detected by the parser; only the last " +"error is found by the lexical analyzer --- the indentation of ``return r`` " +"does not match a level popped off the stack.)" +msgstr "" +"En fait, les trois premières erreurs sont détectées par l'analyseur " +"syntaxique ; seule la dernière erreur est trouvée par l'analyseur lexical " +"(l'indentation de ``return r`` ne correspond à aucun niveau dans la pile)." + +#: ../Doc/reference/lexical_analysis.rst:253 +msgid "Whitespace between tokens" +msgstr "Espaces entre lexèmes" + +#: ../Doc/reference/lexical_analysis.rst:255 +msgid "" +"Except at the beginning of a logical line or in string literals, the " +"whitespace characters space, tab and formfeed can be used interchangeably to " +"separate tokens. Whitespace is needed between two tokens only if their " +"concatenation could otherwise be interpreted as a different token (e.g., ab " +"is one token, but a b is two tokens)." +msgstr "" +"Sauf au début d'une ligne logique ou dans les chaînes de caractères, les " +"caractères « blancs » espace, tabulation et saut de page peuvent être " +"utilisés de manière interchangeable pour séparer les lexèmes. Un blanc n'est " +"nécessaire entre deux lexèmes que si leur concaténation pourrait être " +"interprétée comme un lexème différent (par exemple, ab est un lexème, mais a " +"b comporte deux lexèmes)." + +#: ../Doc/reference/lexical_analysis.rst:265 +msgid "Other tokens" +msgstr "Autres lexèmes" + +#: ../Doc/reference/lexical_analysis.rst:267 +msgid "" +"Besides NEWLINE, INDENT and DEDENT, the following categories of tokens " +"exist: *identifiers*, *keywords*, *literals*, *operators*, and *delimiters*. " +"Whitespace characters (other than line terminators, discussed earlier) are " +"not tokens, but serve to delimit tokens. Where ambiguity exists, a token " +"comprises the longest possible string that forms a legal token, when read " +"from left to right." +msgstr "" +"Outre NEWLINE, INDENT et DEDENT, il existe les catégories de lexèmes " +"suivantes : *identifiants*, *mots clés*, *littéraux*, *opérateurs* et " +"*délimiteurs*. Les blancs (autres que les fins de lignes, vus auparavant) ne " +"sont pas des lexèmes mais servent à délimiter les lexèmes. Quand une " +"ambiguïté existe, le lexème correspond à la plus grande chaîne possible qui " +"forme un lexème licite, en lisant de la gauche vers la droite." + +#: ../Doc/reference/lexical_analysis.rst:277 +msgid "Identifiers and keywords" +msgstr "Identifiants et mots-clés" + +#: ../Doc/reference/lexical_analysis.rst:281 +msgid "" +"Identifiers (also referred to as *names*) are described by the following " +"lexical definitions." +msgstr "" +"Les identifiants (aussi appelés *noms*) sont décrits par les définitions " +"lexicales suivantes." + +#: ../Doc/reference/lexical_analysis.rst:284 +msgid "" +"The syntax of identifiers in Python is based on the Unicode standard annex " +"UAX-31, with elaboration and changes as defined below; see also :pep:`3131` " +"for further details." +msgstr "" +"La syntaxe des identifiants en Python est basée sur l'annexe UAX-31 du " +"standard Unicode avec les modifications définies ci-dessous ; consultez la :" +"pep:`3131` pour plus de détails." + +#: ../Doc/reference/lexical_analysis.rst:288 +msgid "" +"Within the ASCII range (U+0001..U+007F), the valid characters for " +"identifiers are the same as in Python 2.x: the uppercase and lowercase " +"letters ``A`` through ``Z``, the underscore ``_`` and, except for the first " +"character, the digits ``0`` through ``9``." +msgstr "" +"Dans l'intervalle ASCII (*U+0001..U+007F*), les caractères licites pour les " +"identifiants sont les mêmes que pour Python 2.x : les lettres minuscules et " +"majuscules de ``A`` à ``Z``, le souligné (ou *underscore*) ``_`` et, sauf " +"pour le premier caractère, les chiffres de ``0`` à ``9``." + +#: ../Doc/reference/lexical_analysis.rst:293 +msgid "" +"Python 3.0 introduces additional characters from outside the ASCII range " +"(see :pep:`3131`). For these characters, the classification uses the " +"version of the Unicode Character Database as included in the :mod:" +"`unicodedata` module." +msgstr "" +"Python 3.0 introduit des caractères supplémentaires en dehors de " +"l'intervalle ASCII (voir la :pep:`3131`). Pour ces caractères, la " +"classification utilise la version de la « base de données des caractères " +"Unicode » telle qu'incluse dans le module :mod:`unicodedata`." + +#: ../Doc/reference/lexical_analysis.rst:297 +msgid "Identifiers are unlimited in length. Case is significant." +msgstr "" +"Les identifiants n'ont pas de limite de longueur. La casse est prise en " +"compte." + +#: ../Doc/reference/lexical_analysis.rst:306 +msgid "The Unicode category codes mentioned above stand for:" +msgstr "Les codes de catégories Unicode cités ci-dessus signifient :" + +#: ../Doc/reference/lexical_analysis.rst:308 +msgid "*Lu* - uppercase letters" +msgstr "*Lu* — lettres majuscules" + +#: ../Doc/reference/lexical_analysis.rst:309 +msgid "*Ll* - lowercase letters" +msgstr "*Ll* — lettres minuscules" + +#: ../Doc/reference/lexical_analysis.rst:310 +msgid "*Lt* - titlecase letters" +msgstr "" +"*Lt* — lettres majuscules particulières (catégorie *titlecase* de l'Unicode)" + +#: ../Doc/reference/lexical_analysis.rst:311 +msgid "*Lm* - modifier letters" +msgstr "*Lm* — lettres modificatives avec chasse" + +#: ../Doc/reference/lexical_analysis.rst:312 +msgid "*Lo* - other letters" +msgstr "*Lo* — autres lettres" + +#: ../Doc/reference/lexical_analysis.rst:313 +msgid "*Nl* - letter numbers" +msgstr "*Nl* — nombres lettres (par exemple, les nombres romains)" + +#: ../Doc/reference/lexical_analysis.rst:314 +msgid "*Mn* - nonspacing marks" +msgstr "" +"*Mn* — symboles que l'on combine avec d'autres (accents ou autres) sans " +"générer d'espace (*nonspacing marks* en anglais)" + +#: ../Doc/reference/lexical_analysis.rst:315 +msgid "*Mc* - spacing combining marks" +msgstr "" +"*Mc* — symboles que l'on combine avec d'autres en générant une espace " +"(*spacing combining marks* en anglais)" + +#: ../Doc/reference/lexical_analysis.rst:316 +msgid "*Nd* - decimal numbers" +msgstr "*Nd* — chiffres (arabes et autres)" + +#: ../Doc/reference/lexical_analysis.rst:317 +msgid "*Pc* - connector punctuations" +msgstr "*Pc* — connecteurs (tirets et autres lignes)" + +#: ../Doc/reference/lexical_analysis.rst:318 +msgid "" +"*Other_ID_Start* - explicit list of characters in `PropList.txt `_ to support backwards " +"compatibility" +msgstr "" +"*Other_ID_Start* -- liste explicite des caractères de `PropList.txt `_ pour la compatibilité " +"descendante" + +#: ../Doc/reference/lexical_analysis.rst:321 +msgid "*Other_ID_Continue* - likewise" +msgstr "*Other_ID_Continue* — pareillement" + +#: ../Doc/reference/lexical_analysis.rst:323 +msgid "" +"All identifiers are converted into the normal form NFKC while parsing; " +"comparison of identifiers is based on NFKC." +msgstr "" +"Tous les identifiants sont convertis dans la forme normale NFKC pendant " +"l'analyse syntaxique : la comparaison des identifiants se base sur leur " +"forme NFKC." + +#: ../Doc/reference/lexical_analysis.rst:326 +msgid "" +"A non-normative HTML file listing all valid identifier characters for " +"Unicode 4.1 can be found at https://www.dcl.hpi.uni-potsdam.de/home/loewis/" +"table-3131.html." +msgstr "" +"Un fichier HTML, ne faisant pas référence, listant tous les caractères " +"valides pour Unicode 4.1 se trouve à https://www.dcl.hpi.uni-potsdam.de/home/" +"loewis/table-3131.html." + +#: ../Doc/reference/lexical_analysis.rst:334 +msgid "Keywords" +msgstr "Mots-clés" + +#: ../Doc/reference/lexical_analysis.rst:340 +msgid "" +"The following identifiers are used as reserved words, or *keywords* of the " +"language, and cannot be used as ordinary identifiers. They must be spelled " +"exactly as written here:" +msgstr "" +"Les identifiants suivants sont des mots réservés par le langage et ne " +"peuvent pas être utilisés en tant qu'identifiants normaux. Ils doivent être " +"écrits exactement comme ci-dessous :" + +#: ../Doc/reference/lexical_analysis.rst:360 +msgid "Reserved classes of identifiers" +msgstr "Classes réservées pour les identifiants" + +#: ../Doc/reference/lexical_analysis.rst:362 +msgid "" +"Certain classes of identifiers (besides keywords) have special meanings. " +"These classes are identified by the patterns of leading and trailing " +"underscore characters:" +msgstr "" +"Certaines classes d'identifiants (outre les mots-clés) ont une signification " +"particulière. Ces classes se reconnaissent par des caractères de " +"soulignement en tête et en queue d'identifiant :" + +#: ../Doc/reference/lexical_analysis.rst:376 +msgid "``_*``" +msgstr "``_*``" + +#: ../Doc/reference/lexical_analysis.rst:367 +msgid "" +"Not imported by ``from module import *``. The special identifier ``_`` is " +"used in the interactive interpreter to store the result of the last " +"evaluation; it is stored in the :mod:`builtins` module. When not in " +"interactive mode, ``_`` has no special meaning and is not defined. See " +"section :ref:`import`." +msgstr "" +"L'identifiant spécial ``_`` n'est pas importé par ``from module import *``. " +"Il est utilisé dans l'interpréteur interactif pour stocker le résultat de la " +"dernière évaluation ; il est stocké dans le module :mod:`builtins`. Lorsque " +"vous n'êtes pas en mode interactif, ``_`` n'a pas de signification " +"particulière et n'est pas défini. Voir la section :ref:`import`." + +#: ../Doc/reference/lexical_analysis.rst:374 +msgid "" +"The name ``_`` is often used in conjunction with internationalization; refer " +"to the documentation for the :mod:`gettext` module for more information on " +"this convention." +msgstr "" +"Le nom ``_`` est souvent utilisé pour internationaliser l'affichage ; " +"reportez-vous à la documentation du module :mod:`gettext` pour plus " +"d'informations sur cette convention." + +#: ../Doc/reference/lexical_analysis.rst:384 +msgid "``__*__``" +msgstr "``__*__``" + +#: ../Doc/reference/lexical_analysis.rst:379 +msgid "" +"System-defined names. These names are defined by the interpreter and its " +"implementation (including the standard library). Current system names are " +"discussed in the :ref:`specialnames` section and elsewhere. More will " +"likely be defined in future versions of Python. *Any* use of ``__*__`` " +"names, in any context, that does not follow explicitly documented use, is " +"subject to breakage without warning." +msgstr "" +"Noms définis par le système. Ces noms sont définis par l'interpréteur et son " +"implémentation (y compris la bibliothèque standard). Les noms actuels " +"définis par le système sont abordés dans la section :ref:`specialnames`, " +"mais aussi ailleurs. D'autres noms seront probablement définis dans les " +"futures versions de Python. Toute utilisation de noms de la forme ``__*__``, " +"dans n'importe quel contexte, qui n'est pas conforme à ce qu'indique " +"explicitement la documentation, est sujette à des mauvaises surprises sans " +"avertissement." + +#: ../Doc/reference/lexical_analysis.rst:391 +msgid "``__*``" +msgstr "``__*``" + +#: ../Doc/reference/lexical_analysis.rst:387 +msgid "" +"Class-private names. Names in this category, when used within the context " +"of a class definition, are re-written to use a mangled form to help avoid " +"name clashes between \"private\" attributes of base and derived classes. See " +"section :ref:`atom-identifiers`." +msgstr "" +"Noms privés pour une classe. Les noms de cette forme, lorsqu'ils sont " +"utilisés dans le contexte d'une définition de classe, sont réécrits sous une " +"forme modifiée pour éviter les conflits de noms entre les attributs " +"« privés » des classes de base et les classes dérivées. Voir la section :ref:" +"`atom-identifiers`." + +#: ../Doc/reference/lexical_analysis.rst:396 +msgid "Literals" +msgstr "Littéraux" + +#: ../Doc/reference/lexical_analysis.rst:400 +msgid "Literals are notations for constant values of some built-in types." +msgstr "" +"Les littéraux sont des notations pour indiquer des valeurs constantes de " +"certains types natifs." + +#: ../Doc/reference/lexical_analysis.rst:411 +msgid "String and Bytes literals" +msgstr "Littéraux de chaînes de caractères et de suites d'octets" + +#: ../Doc/reference/lexical_analysis.rst:413 +msgid "String literals are described by the following lexical definitions:" +msgstr "" +"Les chaînes de caractères littérales sont définies par les définitions " +"lexicales suivantes :" + +#: ../Doc/reference/lexical_analysis.rst:438 +msgid "" +"One syntactic restriction not indicated by these productions is that " +"whitespace is not allowed between the :token:`stringprefix` or :token:" +"`bytesprefix` and the rest of the literal. The source character set is " +"defined by the encoding declaration; it is UTF-8 if no encoding declaration " +"is given in the source file; see section :ref:`encodings`." +msgstr "" +"Une restriction syntaxique non indiquée par ces règles est qu'aucun blanc " +"n'est autorisé entre le :token:`stringprefix` ou :token:`bytesprefix` et le " +"reste du littéral. Le jeu de caractères source est défini par la déclaration " +"d'encodage ; il vaut UTF-8 si aucune déclaration d'encodage n'est donnée " +"dans le fichier source ; voir la section :ref:`encodings`." + +#: ../Doc/reference/lexical_analysis.rst:448 +msgid "" +"In plain English: Both types of literals can be enclosed in matching single " +"quotes (``'``) or double quotes (``\"``). They can also be enclosed in " +"matching groups of three single or double quotes (these are generally " +"referred to as *triple-quoted strings*). The backslash (``\\``) character " +"is used to escape characters that otherwise have a special meaning, such as " +"newline, backslash itself, or the quote character." +msgstr "" +"Description en français : les deux types de littéraux peuvent être encadrés " +"par une paire de guillemets simples (``'``) ou doubles (``\"``). Ils peuvent " +"aussi être encadrés par une paire de trois guillemets simples ou une paire " +"de trois guillemets doubles (on appelle alors généralement ces chaînes " +"*entre triples guillemets*). La barre oblique inversée peut être utilisée " +"pour échapper des caractères qui auraient sinon une signification spéciale, " +"tels que le retour à la ligne, la barre oblique inversée elle-même ou le " +"guillemet utilisé pour délimiter la chaîne." + +#: ../Doc/reference/lexical_analysis.rst:459 +msgid "" +"Bytes literals are always prefixed with ``'b'`` or ``'B'``; they produce an " +"instance of the :class:`bytes` type instead of the :class:`str` type. They " +"may only contain ASCII characters; bytes with a numeric value of 128 or " +"greater must be expressed with escapes." +msgstr "" +"Les littéraux de suites d'octets sont toujours préfixés par ``'b'`` ou " +"``'B'`` ; cela crée une instance de type :class:`bytes` au lieu du type :" +"class:`str`. Ils ne peuvent contenir que des caractères ASCII ; les octets " +"dont la valeur est supérieure ou égale à 128 doivent être exprimés à l'aide " +"d'échappements." + +#: ../Doc/reference/lexical_analysis.rst:468 +msgid "" +"Both string and bytes literals may optionally be prefixed with a letter " +"``'r'`` or ``'R'``; such strings are called :dfn:`raw strings` and treat " +"backslashes as literal characters. As a result, in string literals, " +"``'\\U'`` and ``'\\u'`` escapes in raw strings are not treated specially. " +"Given that Python 2.x's raw unicode literals behave differently than Python " +"3.x's the ``'ur'`` syntax is not supported." +msgstr "" +"Les chaînes et suites d'octets littérales peuvent être préfixées par la " +"lettre ``'r'`` ou ``'R'`` ; de telles chaînes sont appelées :dfn:`chaines " +"brutes` (*raw strings* en anglais) et traitent la barre oblique inversée " +"comme un caractère normal. En conséquence, les chaînes littérales ``'\\U'`` " +"et ``'\\u'`` ne sont pas considérées comme spéciales. Comme les littéraux " +"Unicode de Python 2.x se comportent différemment, la syntaxe ``'ur'`` n'est " +"pas reconnue en Python 3.x." + +#: ../Doc/reference/lexical_analysis.rst:475 +msgid "" +"The ``'rb'`` prefix of raw bytes literals has been added as a synonym of " +"``'br'``." +msgstr "" +"le préfixe ``'rb'`` a été ajouté comme synonyme de ``'br'`` pour les " +"littéraux de suites d'octets." + +#: ../Doc/reference/lexical_analysis.rst:479 +msgid "" +"Support for the unicode legacy literal (``u'value'``) was reintroduced to " +"simplify the maintenance of dual Python 2.x and 3.x codebases. See :pep:" +"`414` for more information." +msgstr "" +"le support du préfixe historique pour les chaînes Unicode a été réintroduit " +"afin de simplifier la maintenance de code compatible Python 2.x et 3.x. Voir " +"la :pep:`414` pour davantage d'informations." + +#: ../Doc/reference/lexical_analysis.rst:488 +msgid "" +"A string literal with ``'f'`` or ``'F'`` in its prefix is a :dfn:`formatted " +"string literal`; see :ref:`f-strings`. The ``'f'`` may be combined with " +"``'r'``, but not with ``'b'`` or ``'u'``, therefore raw formatted strings " +"are possible, but formatted bytes literals are not." +msgstr "" +"Une chaîne littérale qui contient ``'f'`` ou ``'F'`` dans le préfixe est " +"une :dfn:`chaîne de caractères littérale formatée` ; lisez :ref:`f-strings`. " +"Le ``'f'`` peut être combiné avec ``'r'`` mais pas avec ``'b'`` ou ``'u'``, " +"donc les chaînes de caractères formatées sont possibles mais les littéraux " +"de suites d'octets ne peuvent pas l'être." + +#: ../Doc/reference/lexical_analysis.rst:493 +msgid "" +"In triple-quoted literals, unescaped newlines and quotes are allowed (and " +"are retained), except that three unescaped quotes in a row terminate the " +"literal. (A \"quote\" is the character used to open the literal, i.e. " +"either ``'`` or ``\"``.)" +msgstr "" +"Dans les chaînes entre triples guillemets, les sauts de ligne et guillemets " +"peuvent ne pas être échappés (et sont donc pris en compte), mais trois " +"guillemets non échappés à la suite terminent le littéral (on entend par " +"guillemet le caractère utilisé pour commencer le littéral, c'est-à-dire " +"``'`` ou ``\"``)." + +#: ../Doc/reference/lexical_analysis.rst:512 +msgid "" +"Unless an ``'r'`` or ``'R'`` prefix is present, escape sequences in string " +"and bytes literals are interpreted according to rules similar to those used " +"by Standard C. The recognized escape sequences are:" +msgstr "" +"À moins que le préfixe ``'r'`` ou ``'R'`` ne soit présent, les séquences " +"d'échappement dans les littéraux de chaînes et suites d'octets sont " +"interprétées comme elles le seraient par le C Standard. Les séquences " +"d'échappement reconnues sont :" + +#: ../Doc/reference/lexical_analysis.rst:517 +#: ../Doc/reference/lexical_analysis.rst:550 +msgid "Escape Sequence" +msgstr "Séquence d'échappement" + +#: ../Doc/reference/lexical_analysis.rst:517 +#: ../Doc/reference/lexical_analysis.rst:550 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/reference/lexical_analysis.rst:517 +#: ../Doc/reference/lexical_analysis.rst:550 +msgid "Notes" +msgstr "Notes" + +#: ../Doc/reference/lexical_analysis.rst:519 +msgid "``\\newline``" +msgstr "``\\newline``" + +#: ../Doc/reference/lexical_analysis.rst:519 +msgid "Backslash and newline ignored" +msgstr "barre oblique inversée et retour à la ligne ignorés" + +#: ../Doc/reference/lexical_analysis.rst:521 +msgid "``\\\\``" +msgstr "``\\\\``" + +#: ../Doc/reference/lexical_analysis.rst:521 +msgid "Backslash (``\\``)" +msgstr "barre oblique inversée (``\\``)" + +#: ../Doc/reference/lexical_analysis.rst:523 +msgid "``\\'``" +msgstr "``\\'``" + +#: ../Doc/reference/lexical_analysis.rst:523 +msgid "Single quote (``'``)" +msgstr "guillemet simple (``'``)" + +#: ../Doc/reference/lexical_analysis.rst:525 +msgid "``\\\"``" +msgstr "``\\\"``" + +#: ../Doc/reference/lexical_analysis.rst:525 +msgid "Double quote (``\"``)" +msgstr "guillemet double (``\"``)" + +#: ../Doc/reference/lexical_analysis.rst:527 +msgid "``\\a``" +msgstr "``\\a``" + +#: ../Doc/reference/lexical_analysis.rst:527 +msgid "ASCII Bell (BEL)" +msgstr "cloche ASCII (BEL)" + +#: ../Doc/reference/lexical_analysis.rst:529 +msgid "``\\b``" +msgstr "``\\b``" + +#: ../Doc/reference/lexical_analysis.rst:529 +msgid "ASCII Backspace (BS)" +msgstr "retour arrière ASCII (BS)" + +#: ../Doc/reference/lexical_analysis.rst:531 +msgid "``\\f``" +msgstr "``\\f``" + +#: ../Doc/reference/lexical_analysis.rst:531 +msgid "ASCII Formfeed (FF)" +msgstr "saut de page ASCII (FF)" + +#: ../Doc/reference/lexical_analysis.rst:533 +msgid "``\\n``" +msgstr "``\\n``" + +#: ../Doc/reference/lexical_analysis.rst:533 +msgid "ASCII Linefeed (LF)" +msgstr "saut de ligne ASCII (LF)" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "``\\r``" +msgstr "``\\r``" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "ASCII Carriage Return (CR)" +msgstr "retour à la ligne ASCII (CR)" + +#: ../Doc/reference/lexical_analysis.rst:537 +msgid "``\\t``" +msgstr "``\\t``" + +#: ../Doc/reference/lexical_analysis.rst:537 +msgid "ASCII Horizontal Tab (TAB)" +msgstr "tabulation horizontale ASCII (TAB)" + +#: ../Doc/reference/lexical_analysis.rst:539 +msgid "``\\v``" +msgstr "``\\v``" + +#: ../Doc/reference/lexical_analysis.rst:539 +msgid "ASCII Vertical Tab (VT)" +msgstr "tabulation verticale ASCII (VT)" + +#: ../Doc/reference/lexical_analysis.rst:541 +msgid "``\\ooo``" +msgstr "``\\ooo``" + +#: ../Doc/reference/lexical_analysis.rst:541 +msgid "Character with octal value *ooo*" +msgstr "caractère dont le code est *ooo* en octal" + +#: ../Doc/reference/lexical_analysis.rst:541 +msgid "(1,3)" +msgstr "(1,3)" + +#: ../Doc/reference/lexical_analysis.rst:544 +msgid "``\\xhh``" +msgstr "``\\xhh``" + +#: ../Doc/reference/lexical_analysis.rst:544 +msgid "Character with hex value *hh*" +msgstr "caractère dont le code est *ooo* en hexadécimal" + +#: ../Doc/reference/lexical_analysis.rst:544 +msgid "(2,3)" +msgstr "(2,3)" + +#: ../Doc/reference/lexical_analysis.rst:547 +msgid "Escape sequences only recognized in string literals are:" +msgstr "" +"Les séquences d'échappement reconnues seulement dans les chaînes littérales " +"sont :" + +#: ../Doc/reference/lexical_analysis.rst:552 +msgid "``\\N{name}``" +msgstr "``\\N{name}``" + +#: ../Doc/reference/lexical_analysis.rst:552 +msgid "Character named *name* in the Unicode database" +msgstr "caractère dont le nom est *name* dans la base de données Unicode" + +#: ../Doc/reference/lexical_analysis.rst:552 +msgid "\\(4)" +msgstr "\\(4)" + +#: ../Doc/reference/lexical_analysis.rst:555 +msgid "``\\uxxxx``" +msgstr "``\\uxxxx``" + +#: ../Doc/reference/lexical_analysis.rst:555 +msgid "Character with 16-bit hex value *xxxx*" +msgstr "caractère dont le code est *xxxx* en hexadécimal" + +#: ../Doc/reference/lexical_analysis.rst:555 +msgid "\\(5)" +msgstr "\\(5)" + +#: ../Doc/reference/lexical_analysis.rst:558 +msgid "``\\Uxxxxxxxx``" +msgstr "``\\Uxxxxxxxx``" + +#: ../Doc/reference/lexical_analysis.rst:558 +msgid "Character with 32-bit hex value *xxxxxxxx*" +msgstr "caractère dont le code est *xxxxxxxx* en hexadécimal sur 32 bits" + +#: ../Doc/reference/lexical_analysis.rst:558 +msgid "\\(6)" +msgstr "\\(6)" + +#: ../Doc/reference/lexical_analysis.rst:562 +msgid "Notes:" +msgstr "Notes :" + +#: ../Doc/reference/lexical_analysis.rst:565 +msgid "As in Standard C, up to three octal digits are accepted." +msgstr "" +"Comme dans le C Standard, jusqu'à trois chiffres en base huit sont acceptés." + +#: ../Doc/reference/lexical_analysis.rst:568 +msgid "Unlike in Standard C, exactly two hex digits are required." +msgstr "" +"Contrairement au C Standard, il est obligatoire de fournir deux chiffres " +"hexadécimaux." + +#: ../Doc/reference/lexical_analysis.rst:571 +msgid "" +"In a bytes literal, hexadecimal and octal escapes denote the byte with the " +"given value. In a string literal, these escapes denote a Unicode character " +"with the given value." +msgstr "" +"Dans un littéral de suite d'octets, un échappement hexadécimal ou octal est " +"un octet dont la valeur est donnée. Dans une chaîne littérale, un " +"échappement est un caractère Unicode dont le code est donné." + +#: ../Doc/reference/lexical_analysis.rst:576 +msgid "Support for name aliases [#]_ has been added." +msgstr "Ajout du support pour les alias de noms [#]_." + +#: ../Doc/reference/lexical_analysis.rst:580 +msgid "Exactly four hex digits are required." +msgstr "Exactement quatre chiffres hexadécimaux sont requis." + +#: ../Doc/reference/lexical_analysis.rst:583 +msgid "" +"Any Unicode character can be encoded this way. Exactly eight hex digits are " +"required." +msgstr "" +"N'importe quel caractère Unicode peut être encodé de cette façon. Exactement " +"huit chiffres hexadécimaux sont requis." + +#: ../Doc/reference/lexical_analysis.rst:589 +msgid "" +"Unlike Standard C, all unrecognized escape sequences are left in the string " +"unchanged, i.e., *the backslash is left in the result*. (This behavior is " +"useful when debugging: if an escape sequence is mistyped, the resulting " +"output is more easily recognized as broken.) It is also important to note " +"that the escape sequences only recognized in string literals fall into the " +"category of unrecognized escapes for bytes literals." +msgstr "" +"Contrairement au C standard, toutes les séquences d'échappement non " +"reconnues sont laissées inchangées dans la chaîne, c'est-à-dire que *la " +"barre oblique inversée est laissée dans le résultat* (ce comportement est " +"utile en cas de débogage : si une séquence d'échappement est mal tapée, la " +"sortie résultante est plus facilement reconnue comme source de l'erreur). " +"Notez bien également que les séquences d'échappement reconnues uniquement " +"dans les littéraux de chaînes de caractères ne sont pas reconnues pour les " +"littéraux de suites d'octets." + +#: ../Doc/reference/lexical_analysis.rst:596 +msgid "" +"Unrecognized escape sequences produce a DeprecationWarning. In some future " +"version of Python they will be a SyntaxError." +msgstr "" +"Les séquences d'échappement non reconnues produisent un avertissement " +"DeprecationWarning. Dans les futures versions de Python, elles génèreront " +"une erreur de syntaxe." + +#: ../Doc/reference/lexical_analysis.rst:600 +msgid "" +"Even in a raw literal, quotes can be escaped with a backslash, but the " +"backslash remains in the result; for example, ``r\"\\\"\"`` is a valid " +"string literal consisting of two characters: a backslash and a double quote; " +"``r\"\\\"`` is not a valid string literal (even a raw string cannot end in " +"an odd number of backslashes). Specifically, *a raw literal cannot end in a " +"single backslash* (since the backslash would escape the following quote " +"character). Note also that a single backslash followed by a newline is " +"interpreted as those two characters as part of the literal, *not* as a line " +"continuation." +msgstr "" +"Même dans une chaîne littérale brute, les guillemets peuvent être échappés " +"avec une barre oblique inversée mais la barre oblique inversée reste dans le " +"résultat ; par exemple, ``r\"\\\"\"`` est une chaîne de caractères valide " +"composée de deux caractères : une barre oblique inversée et un guillemet " +"double ; ``r\"\\\"`` n'est pas une chaîne de caractères valide (même une " +"chaîne de caractères brute ne peut pas se terminer par un nombre impair de " +"barres obliques inversées). Plus précisément, *une chaîne littérale brute ne " +"peut pas se terminer par une seule barre oblique inversée* (puisque la barre " +"oblique inversée échappe le guillemet suivant). Notez également qu'une " +"simple barre oblique inversée suivie d'un saut de ligne est interprétée " +"comme deux caractères faisant partie du littéral et *non* comme une " +"continuation de ligne." + +#: ../Doc/reference/lexical_analysis.rst:613 +msgid "String literal concatenation" +msgstr "Concaténation de chaînes de caractères" + +#: ../Doc/reference/lexical_analysis.rst:615 +msgid "" +"Multiple adjacent string or bytes literals (delimited by whitespace), " +"possibly using different quoting conventions, are allowed, and their meaning " +"is the same as their concatenation. Thus, ``\"hello\" 'world'`` is " +"equivalent to ``\"helloworld\"``. This feature can be used to reduce the " +"number of backslashes needed, to split long strings conveniently across long " +"lines, or even to add comments to parts of strings, for example::" +msgstr "" +"Plusieurs chaînes de caractères ou suites d'octets adjacentes (séparées par " +"des blancs), utilisant éventuellement des conventions de guillemets " +"différentes, sont autorisées. La signification est la même que leur " +"concaténation. Ainsi, ``\"hello\" 'world'`` est l'équivalent de ``" +"\"helloworld\"``. Cette fonctionnalité peut être utilisée pour réduire le " +"nombre de barres obliques inverses, pour diviser de longues chaînes de " +"caractères sur plusieurs lignes ou même pour ajouter des commentaires à des " +"portions de chaînes de caractères. Par exemple ::" + +#: ../Doc/reference/lexical_analysis.rst:626 +msgid "" +"Note that this feature is defined at the syntactical level, but implemented " +"at compile time. The '+' operator must be used to concatenate string " +"expressions at run time. Also note that literal concatenation can use " +"different quoting styles for each component (even mixing raw strings and " +"triple quoted strings), and formatted string literals may be concatenated " +"with plain string literals." +msgstr "" +"Notez que cette fonctionnalité agit au niveau syntaxique mais est " +"implémentée au moment de la compilation. Pour concaténer les expressions des " +"chaînes de caractères au moment de l'exécution, vous devez utiliser " +"l'opérateur ``+``. Notez également que la concaténation littérale peut " +"utiliser un style différent de guillemets pour chaque composant (et même " +"mélanger des chaînes de caractères brutes et des chaînes de caractères entre " +"triples guillemets). Enfin, les chaînes de caractères formatées peuvent être " +"concaténées avec des chaînes de caractères ordinaires." + +#: ../Doc/reference/lexical_analysis.rst:645 +msgid "Formatted string literals" +msgstr "Chaînes de caractères formatées littérales" + +#: ../Doc/reference/lexical_analysis.rst:649 +msgid "" +"A :dfn:`formatted string literal` or :dfn:`f-string` is a string literal " +"that is prefixed with ``'f'`` or ``'F'``. These strings may contain " +"replacement fields, which are expressions delimited by curly braces ``{}``. " +"While other string literals always have a constant value, formatted strings " +"are really expressions evaluated at run time." +msgstr "" +"Une :dfn:`chaine de caractères formatée littérale` ou :dfn:`f-string` est " +"une chaine de caractères littérale préfixée par ``'f'`` ou ``'F'``. Ces " +"chaines peuvent contenir des champs à remplacer, c'est-à-dire des " +"expressions délimitées par des accolades ``{}``. Alors que les autres " +"littéraux de chaines ont des valeurs constantes, les chaines formatées sont " +"de vraies expressions évaluées à l'exécution." + +#: ../Doc/reference/lexical_analysis.rst:655 +msgid "" +"Escape sequences are decoded like in ordinary string literals (except when a " +"literal is also marked as a raw string). After decoding, the grammar for " +"the contents of the string is:" +msgstr "" +"Les séquences d'échappement sont décodées comme à l'intérieur des chaînes de " +"caractères ordinaires (sauf lorsqu'une chaîne de caractères est également " +"marquée comme une chaîne brute). Après décodage, la grammaire s'appliquant " +"au contenu de la chaîne de caractères est :" + +#: ../Doc/reference/lexical_analysis.rst:669 +msgid "" +"The parts of the string outside curly braces are treated literally, except " +"that any doubled curly braces ``'{{'`` or ``'}}'`` are replaced with the " +"corresponding single curly brace. A single opening curly bracket ``'{'`` " +"marks a replacement field, which starts with a Python expression. After the " +"expression, there may be a conversion field, introduced by an exclamation " +"point ``'!'``. A format specifier may also be appended, introduced by a " +"colon ``':'``. A replacement field ends with a closing curly bracket " +"``'}'``." +msgstr "" +"Les portions qui sont en dehors des accolades sont traitées comme les " +"littéraux, sauf les doubles accolades ``'{{'`` ou ``'}}'`` qui sont " +"remplacées par la simple accolade correspondante. Une simple accolade " +"ouvrante ``'{'`` marque le début du champ à remplacer, qui commence par une " +"expression Python. Après l'expression, il peut y avoir un champ de " +"conversion, introduit par un point d'exclamation ``'!'``. Une spécification " +"de format peut aussi être ajoutée, introduite par le caractère deux-points " +"``':'``. Le champ à remplacer se termine par une accolade fermante ``'}'``." + +#: ../Doc/reference/lexical_analysis.rst:678 +msgid "" +"Expressions in formatted string literals are treated like regular Python " +"expressions surrounded by parentheses, with a few exceptions. An empty " +"expression is not allowed, and a :keyword:`lambda` expression must be " +"surrounded by explicit parentheses. Replacement expressions can contain " +"line breaks (e.g. in triple-quoted strings), but they cannot contain " +"comments. Each expression is evaluated in the context where the formatted " +"string literal appears, in order from left to right." +msgstr "" +"Les expressions dans les chaînes de caractères formatées littérales sont " +"traitées comme des expressions Python normales entourées de parenthèses, à " +"quelques exceptions près. Une expression vide n'est pas autorisée et une " +"expression :keyword:`lambda` doit être explicitement entourée de " +"parenthèses. Les expressions de remplacement peuvent contenir des sauts de " +"ligne (par exemple dans les chaînes de caractères entre triples guillemets) " +"mais elles ne peuvent pas contenir de commentaire. Chaque expression est " +"évaluée dans le contexte où la chaîne de caractères formatée apparaît, de " +"gauche à droite." + +#: ../Doc/reference/lexical_analysis.rst:686 +msgid "" +"If a conversion is specified, the result of evaluating the expression is " +"converted before formatting. Conversion ``'!s'`` calls :func:`str` on the " +"result, ``'!r'`` calls :func:`repr`, and ``'!a'`` calls :func:`ascii`." +msgstr "" +"Si une conversion est spécifiée, le résultat de l'évaluation de l'expression " +"est converti avant d'être formaté. La conversion ``'!s'`` appelle :func:" +"`str` sur le résultat, ``'!r'`` appelle :func:`repr` et ``'!a'`` appelle :" +"func:`ascii`." + +#: ../Doc/reference/lexical_analysis.rst:690 +msgid "" +"The result is then formatted using the :func:`format` protocol. The format " +"specifier is passed to the :meth:`__format__` method of the expression or " +"conversion result. An empty string is passed when the format specifier is " +"omitted. The formatted result is then included in the final value of the " +"whole string." +msgstr "" +"Le résultat est ensuite formaté en utilisant le protocole de :func:`format`. " +"La spécification du format est passée à la méthode :meth:`__format__` de " +"l'expression ou du résultat de la conversion. Une chaîne vide est passée " +"lorsque la spécification de format est omise. Le résultat formaté est alors " +"inclus dans la valeur finale de la chaîne complète." + +#: ../Doc/reference/lexical_analysis.rst:696 +msgid "" +"Top-level format specifiers may include nested replacement fields. These " +"nested fields may include their own conversion fields and :ref:`format " +"specifiers `, but may not include more deeply-nested replacement " +"fields. The :ref:`format specifier mini-language ` is the same " +"as that used by the string .format() method." +msgstr "" +"Les spécifications de format peuvent inclure des champs de remplacement " +"imbriqués. Ces champs imbriqués peuvent inclure leurs propres champs de " +"conversion et :ref:`spécifications de format ` mais " +"l'imbrication ne doit pas aller plus profond. Le :ref:`mini-langage de " +"spécification de format ` est le même que celui utilisé par la " +"méthode ``.format()`` du type ``str``." + +#: ../Doc/reference/lexical_analysis.rst:702 +msgid "" +"Formatted string literals may be concatenated, but replacement fields cannot " +"be split across literals." +msgstr "" +"Les chaînes formatées littérales peuvent être concaténées mais les champs à " +"remplacer ne peuvent pas être divisés entre les littéraux." + +#: ../Doc/reference/lexical_analysis.rst:705 +msgid "Some examples of formatted string literals::" +msgstr "Quelques exemples de chaines formatées littérales ::" + +#: ../Doc/reference/lexical_analysis.rst:724 +msgid "" +"A consequence of sharing the same syntax as regular string literals is that " +"characters in the replacement fields must not conflict with the quoting used " +"in the outer formatted string literal::" +msgstr "" +"Une conséquence de partager la même syntaxe avec les chaînes littérales " +"normales est que les caractères dans les champs à remplacer ne doivent pas " +"entrer en conflit avec le guillemet utilisé pour encadrer la chaine formatée " +"littérale ::" + +#: ../Doc/reference/lexical_analysis.rst:731 +msgid "" +"Backslashes are not allowed in format expressions and will raise an error::" +msgstr "" +"La barre oblique inversée (ou antislash) n'est pas autorisée dans les " +"expressions des champs à remplacer et son utilisation génère une erreur ::" + +#: ../Doc/reference/lexical_analysis.rst:736 +msgid "" +"To include a value in which a backslash escape is required, create a " +"temporary variable." +msgstr "" +"Pour inclure une valeur où l'échappement par barre oblique inversée est " +"nécessaire, vous devez créer une variable temporaire." + +#: ../Doc/reference/lexical_analysis.rst:743 +msgid "" +"Formatted string literals cannot be used as docstrings, even if they do not " +"include expressions." +msgstr "" +"Une chaine formatée littérale ne peut pas être utilisée en tant que " +"*docstring*, même si elle ne comporte pas d'expression." + +#: ../Doc/reference/lexical_analysis.rst:754 +msgid "" +"See also :pep:`498` for the proposal that added formatted string literals, " +"and :meth:`str.format`, which uses a related format string mechanism." +msgstr "" +"Consultez aussi la :pep:`498` qui propose l'ajout des chaines formatées " +"littérales et :meth:`str.format` qui utilise un mécanisme similaire pour " +"formater les chaînes de caractères." + +#: ../Doc/reference/lexical_analysis.rst:761 +msgid "Numeric literals" +msgstr "Littéraux numériques" + +#: ../Doc/reference/lexical_analysis.rst:767 +msgid "" +"There are three types of numeric literals: integers, floating point numbers, " +"and imaginary numbers. There are no complex literals (complex numbers can " +"be formed by adding a real number and an imaginary number)." +msgstr "" +"Il existe trois types de littéraux numériques : les entiers, les nombres à " +"virgule flottante et les nombres imaginaires. Il n'y a pas de littéraux " +"complexes (les nombres complexes peuvent être construits en ajoutant un " +"nombre réel et un nombre imaginaire)." + +#: ../Doc/reference/lexical_analysis.rst:771 +msgid "" +"Note that numeric literals do not include a sign; a phrase like ``-1`` is " +"actually an expression composed of the unary operator '``-``' and the " +"literal ``1``." +msgstr "" +"Notez que les littéraux numériques ne comportent pas de signe ; une phrase " +"telle que ``-1`` est en fait une expression composée de l'opérateur unitaire " +"``-`` et du littéral ``1``." + +#: ../Doc/reference/lexical_analysis.rst:785 +msgid "Integer literals" +msgstr "Entiers littéraux" + +#: ../Doc/reference/lexical_analysis.rst:787 +msgid "Integer literals are described by the following lexical definitions:" +msgstr "" +"Les entiers littéraux sont décrits par les définitions lexicales suivantes :" + +#: ../Doc/reference/lexical_analysis.rst:801 +msgid "" +"There is no limit for the length of integer literals apart from what can be " +"stored in available memory." +msgstr "" +"Il n'y a pas de limite pour la longueur des entiers littéraux, sauf celle " +"relative à la capacité mémoire." + +#: ../Doc/reference/lexical_analysis.rst:804 +msgid "" +"Underscores are ignored for determining the numeric value of the literal. " +"They can be used to group digits for enhanced readability. One underscore " +"can occur between digits, and after base specifiers like ``0x``." +msgstr "" +"Les tirets bas sont ignorés pour déterminer la valeur numérique du littéral. " +"Ils peuvent être utilisés pour grouper les chiffres afin de faciliter la " +"lecture. Un souligné peut être placé entre des chiffres ou après la " +"spécification de la base telle que ``0x``." + +#: ../Doc/reference/lexical_analysis.rst:808 +msgid "" +"Note that leading zeros in a non-zero decimal number are not allowed. This " +"is for disambiguation with C-style octal literals, which Python used before " +"version 3.0." +msgstr "" +"Notez que placer des zéros en tête de nombre pour un nombre décimal " +"différent de zéro n'est pas autorisé. Cela permet d'éviter l’ambigüité avec " +"les littéraux en base octale selon le style C que Python utilisait avant la " +"version 3.0." + +#: ../Doc/reference/lexical_analysis.rst:812 +msgid "Some examples of integer literals::" +msgstr "Quelques exemples d'entiers littéraux ::" + +#: ../Doc/reference/lexical_analysis.rst:818 +#: ../Doc/reference/lexical_analysis.rst:850 +msgid "Underscores are now allowed for grouping purposes in literals." +msgstr "Les tirets bas ne sont pas autorisés pour grouper les littéraux." + +#: ../Doc/reference/lexical_analysis.rst:829 +msgid "Floating point literals" +msgstr "Nombres à virgule flottante littéraux" + +#: ../Doc/reference/lexical_analysis.rst:831 +msgid "" +"Floating point literals are described by the following lexical definitions:" +msgstr "" +"Les nombres à virgule flottante littéraux sont décrits par les définitions " +"lexicales suivantes :" + +#: ../Doc/reference/lexical_analysis.rst:841 +msgid "" +"Note that the integer and exponent parts are always interpreted using radix " +"10. For example, ``077e010`` is legal, and denotes the same number as " +"``77e10``. The allowed range of floating point literals is implementation-" +"dependent. As in integer literals, underscores are supported for digit " +"grouping." +msgstr "" +"Notez que la partie entière et l'exposant sont toujours interprétés comme " +"étant en base 10. Par exemple, ``077e010`` est licite et désigne le même " +"nombre que ``77e10``. La plage autorisée pour les littéraux de nombres à " +"virgule flottante dépend de l'implémentation. Comme pour les entiers " +"littéraux, les soulignés permettent de grouper des chiffres." + +#: ../Doc/reference/lexical_analysis.rst:846 +msgid "Some examples of floating point literals::" +msgstr "Quelques exemples de nombres à virgule flottante littéraux ::" + +#: ../Doc/reference/lexical_analysis.rst:859 +msgid "Imaginary literals" +msgstr "Imaginaires littéraux" + +#: ../Doc/reference/lexical_analysis.rst:861 +msgid "Imaginary literals are described by the following lexical definitions:" +msgstr "" +"Les nombres imaginaires sont décrits par les définitions lexicales " +"suivantes :" + +#: ../Doc/reference/lexical_analysis.rst:866 +msgid "" +"An imaginary literal yields a complex number with a real part of 0.0. " +"Complex numbers are represented as a pair of floating point numbers and have " +"the same restrictions on their range. To create a complex number with a " +"nonzero real part, add a floating point number to it, e.g., ``(3+4j)``. " +"Some examples of imaginary literals::" +msgstr "" +"Un littéral imaginaire produit un nombre complexe dont la partie réelle est " +"``0.0``. Les nombres complexes sont représentés comme une paire de nombres à " +"virgule flottante et possèdent les mêmes restrictions concernant les plages " +"autorisées. Pour créer un nombre complexe dont la partie réelle est non " +"nulle, ajoutez un nombre à virgule flottante à votre littéral imaginaire. " +"Par exemple ``(3+4j)``. Voici d'autres exemples de littéraux imaginaires ::" + +#: ../Doc/reference/lexical_analysis.rst:878 +msgid "Operators" +msgstr "Opérateurs" + +#: ../Doc/reference/lexical_analysis.rst:882 +msgid "The following tokens are operators:" +msgstr "Les lexèmes suivants sont des opérateurs :" + +#: ../Doc/reference/lexical_analysis.rst:895 +msgid "Delimiters" +msgstr "Délimiteurs" + +#: ../Doc/reference/lexical_analysis.rst:899 +msgid "The following tokens serve as delimiters in the grammar:" +msgstr "Les lexèmes suivants servent de délimiteurs dans la grammaire :" + +#: ../Doc/reference/lexical_analysis.rst:908 +msgid "" +"The period can also occur in floating-point and imaginary literals. A " +"sequence of three periods has a special meaning as an ellipsis literal. The " +"second half of the list, the augmented assignment operators, serve lexically " +"as delimiters, but also perform an operation." +msgstr "" +"Le point peut aussi apparaître dans les littéraux de nombres à virgule " +"flottante et imaginaires. Une suite de trois points possède une " +"signification spéciale : c'est une ellipse littérale. La deuxième partie de " +"la liste, les opérateurs d'assignation augmentés, servent de délimiteurs " +"pour l'analyseur lexical mais sont aussi des opérateurs." + +#: ../Doc/reference/lexical_analysis.rst:913 +msgid "" +"The following printing ASCII characters have special meaning as part of " +"other tokens or are otherwise significant to the lexical analyzer:" +msgstr "" +"Les caractères ASCII suivants ont une signification spéciale en tant que " +"partie d'autres lexèmes ou ont une signification particulière pour " +"l'analyseur lexical :" + +#: ../Doc/reference/lexical_analysis.rst:920 +msgid "" +"The following printing ASCII characters are not used in Python. Their " +"occurrence outside string literals and comments is an unconditional error:" +msgstr "" +"Les caractères ASCII suivants ne sont pas utilisés en Python. S'ils " +"apparaissent en dehors de chaines littérales ou de commentaires, ils " +"produisent une erreur :" + +#: ../Doc/reference/lexical_analysis.rst:929 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/reference/lexical_analysis.rst:930 +msgid "http://www.unicode.org/Public/11.0.0/ucd/NameAliases.txt" +msgstr "http://www.unicode.org/Public/11.0.0/ucd/NameAliases.txt" diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po new file mode 100644 index 000000000..dc55bf4bd --- /dev/null +++ b/reference/simple_stmts.po @@ -0,0 +1,1489 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-01 23:56+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" + +#: ../Doc/reference/simple_stmts.rst:6 +msgid "Simple statements" +msgstr "Les instructions simples" + +#: ../Doc/reference/simple_stmts.rst:10 +msgid "" +"A simple statement is comprised within a single logical line. Several simple " +"statements may occur on a single line separated by semicolons. The syntax " +"for simple statements is:" +msgstr "" +"Une instruction simple est contenue dans une seule ligne logique. Plusieurs " +"instructions simples peuvent être écrites sur une seule ligne, séparées par " +"des points-virgules. La syntaxe d'une instruction simple est :" + +#: ../Doc/reference/simple_stmts.rst:36 +msgid "Expression statements" +msgstr "Les expressions" + +#: ../Doc/reference/simple_stmts.rst:43 +msgid "" +"Expression statements are used (mostly interactively) to compute and write a " +"value, or (usually) to call a procedure (a function that returns no " +"meaningful result; in Python, procedures return the value ``None``). Other " +"uses of expression statements are allowed and occasionally useful. The " +"syntax for an expression statement is:" +msgstr "" +"Les expressions sont utilisées (généralement de manière interactive) comme " +"instructions pour calculer et écrire des valeurs, appeler une procédure (une " +"fonction dont le résultat renvoyé n'a pas d'importance ; en Python, les " +"procédures renvoient la valeur ``None``). D'autres utilisations des " +"expressions sont autorisées et parfois utiles. La syntaxe pour une " +"expression en tant qu'instruction est :" + +#: ../Doc/reference/simple_stmts.rst:52 +msgid "" +"An expression statement evaluates the expression list (which may be a single " +"expression)." +msgstr "" +"Ce genre d'instruction évalue la liste d'expressions (qui peut se limiter à " +"une seule expression)." + +#: ../Doc/reference/simple_stmts.rst:64 +msgid "" +"In interactive mode, if the value is not ``None``, it is converted to a " +"string using the built-in :func:`repr` function and the resulting string is " +"written to standard output on a line by itself (except if the result is " +"``None``, so that procedure calls do not cause any output.)" +msgstr "" +"En mode interactif, si la valeur n'est pas ``None``, elle est convertie en " +"chaîne en utilisant la fonction native :func:`repr` et la chaîne résultante " +"est écrite sur la sortie standard sur sa propre ligne. Si le résultat est " +"``None``, rien n'est écrit ce qui est usuel pour les appels de procédures." + +#: ../Doc/reference/simple_stmts.rst:72 +msgid "Assignment statements" +msgstr "Les assignations" + +#: ../Doc/reference/simple_stmts.rst:82 +msgid "" +"Assignment statements are used to (re)bind names to values and to modify " +"attributes or items of mutable objects:" +msgstr "" +"Les assignations sont utilisées pour lier ou relier des noms à des valeurs " +"et modifier des attributs ou des éléments d'objets muables :" + +#: ../Doc/reference/simple_stmts.rst:96 +msgid "" +"(See section :ref:`primaries` for the syntax definitions for *attributeref*, " +"*subscription*, and *slicing*.)" +msgstr "" +"Voir la section :ref:`primaries` pour la définition des syntaxes de " +"*attributeref*, *subscription* et *slicing*." + +#: ../Doc/reference/simple_stmts.rst:99 +msgid "" +"An assignment statement evaluates the expression list (remember that this " +"can be a single expression or a comma-separated list, the latter yielding a " +"tuple) and assigns the single resulting object to each of the target lists, " +"from left to right." +msgstr "" +"Une assignation évalue la liste d'expressions (gardez en mémoire que ce peut " +"être une simple expression ou une liste dont les éléments sont séparés par " +"des virgules, cette dernière produisant un n-uplet) et assigne l'unique " +"objet résultant à chaque liste cible, de la gauche vers la droite." + +#: ../Doc/reference/simple_stmts.rst:108 +msgid "" +"Assignment is defined recursively depending on the form of the target " +"(list). When a target is part of a mutable object (an attribute reference, " +"subscription or slicing), the mutable object must ultimately perform the " +"assignment and decide about its validity, and may raise an exception if the " +"assignment is unacceptable. The rules observed by various types and the " +"exceptions raised are given with the definition of the object types (see " +"section :ref:`types`)." +msgstr "" +"Une assignation est définie récursivement en fonction de la forme de la " +"cible (une liste). Quand la cible est une partie d'un objet muable (une " +"référence à un attribut, une sélection ou une tranche), l'objet muable doit " +"effectuer l'assignation au final et décider de sa validité, voire lever une " +"exception si l'assignation n'est pas acceptable. Les règles suivies par les " +"différents types et les exceptions levées sont données dans les définitions " +"des types d'objets (voir la section :ref:`types`)." + +#: ../Doc/reference/simple_stmts.rst:121 +msgid "" +"Assignment of an object to a target list, optionally enclosed in parentheses " +"or square brackets, is recursively defined as follows." +msgstr "" +"L'assignation d'un objet à une liste cible, optionnellement entourée par des " +"parenthèses ou des crochets, est définie récursivement comme suit." + +#: ../Doc/reference/simple_stmts.rst:124 +msgid "" +"If the target list is a single target with no trailing comma, optionally in " +"parentheses, the object is assigned to that target." +msgstr "" +"Si la liste cible est une cible unique sans virgule de fin, optionnellement " +"entre parenthèses, l'objet est assigné à cette cible." + +#: ../Doc/reference/simple_stmts.rst:127 ../Doc/reference/simple_stmts.rst:139 +msgid "" +"Else: The object must be an iterable with the same number of items as there " +"are targets in the target list, and the items are assigned, from left to " +"right, to the corresponding targets." +msgstr "" +"Sinon : l'objet doit être un itérable avec le même nombre d'éléments qu'il y " +"a de cibles dans la liste cible ; les éléments sont assignés, de la gauche " +"vers la droite, vers les cibles correspondantes." + +#: ../Doc/reference/simple_stmts.rst:131 +msgid "" +"If the target list contains one target prefixed with an asterisk, called a " +"\"starred\" target: The object must be an iterable with at least as many " +"items as there are targets in the target list, minus one. The first items " +"of the iterable are assigned, from left to right, to the targets before the " +"starred target. The final items of the iterable are assigned to the targets " +"after the starred target. A list of the remaining items in the iterable is " +"then assigned to the starred target (the list can be empty)." +msgstr "" +"Si la liste cible contient une cible préfixée par un astérisque, appelée " +"cible *étoilée* (*starred target* en anglais) : l'objet doit être un " +"itérable avec au moins autant d'éléments qu'il y a de cibles dans la liste " +"cible, moins un. Les premiers éléments de l'itérable sont assignés, de la " +"gauche vers la droite, aux cibles avant la cible étoilée. Les éléments de " +"queue de l'itérable sont assignés aux cibles après la cible étoilée. Une " +"liste des éléments restants dans l'itérable est alors assignée à la cible " +"étoilée (cette liste peut être vide)." + +#: ../Doc/reference/simple_stmts.rst:143 +msgid "" +"Assignment of an object to a single target is recursively defined as follows." +msgstr "" +"L'assignation d'un objet vers une cible unique est définie récursivement " +"comme suit." + +#: ../Doc/reference/simple_stmts.rst:145 +msgid "If the target is an identifier (name):" +msgstr "Si la cible est une variable (un nom) :" + +#: ../Doc/reference/simple_stmts.rst:147 +msgid "" +"If the name does not occur in a :keyword:`global` or :keyword:`nonlocal` " +"statement in the current code block: the name is bound to the object in the " +"current local namespace." +msgstr "" +"si le nom n'apparaît pas dans une instruction :keyword:`global` ou :keyword:" +"`nonlocal` (respectivement) du bloc de code courant, le nom est lié à " +"l'objet dans l'espace courant des noms locaux ;" + +#: ../Doc/reference/simple_stmts.rst:151 +msgid "" +"Otherwise: the name is bound to the object in the global namespace or the " +"outer namespace determined by :keyword:`nonlocal`, respectively." +msgstr "" +"sinon le nom est lié à l'objet dans l'espace des noms globaux ou dans un " +"espace de nommage plus large déterminé par :keyword:`nonlocal`, " +"respectivement." + +#: ../Doc/reference/simple_stmts.rst:156 +msgid "" +"The name is rebound if it was already bound. This may cause the reference " +"count for the object previously bound to the name to reach zero, causing the " +"object to be deallocated and its destructor (if it has one) to be called." +msgstr "" +"Le lien du nom est modifié si le nom était déjà lié. Ceci peut faire que le " +"compteur de références de l'objet auquel le nom était précédemment lié tombe " +"à zéro, entrainant la dé-allocation de l'objet et l'appel de son destructeur " +"(s'il existe)." + +#: ../Doc/reference/simple_stmts.rst:162 +msgid "" +"If the target is an attribute reference: The primary expression in the " +"reference is evaluated. It should yield an object with assignable " +"attributes; if this is not the case, :exc:`TypeError` is raised. That " +"object is then asked to assign the assigned object to the given attribute; " +"if it cannot perform the assignment, it raises an exception (usually but not " +"necessarily :exc:`AttributeError`)." +msgstr "" +"Si la cible est une référence à un attribut : l'expression primaire de la " +"référence est évaluée. Elle doit produire un objet avec des attributs que " +"l'on peut assigner : si ce n'est pas le cas, une :exc:`TypeError` est levée. " +"Python demande alors à cet objet d'assigner l'attribut donné ; si ce n'est " +"pas possible, une exception est levée (habituellement, mais pas " +"nécessairement, :exc:`AttributeError`)." + +#: ../Doc/reference/simple_stmts.rst:171 +msgid "" +"Note: If the object is a class instance and the attribute reference occurs " +"on both sides of the assignment operator, the RHS expression, ``a.x`` can " +"access either an instance attribute or (if no instance attribute exists) a " +"class attribute. The LHS target ``a.x`` is always set as an instance " +"attribute, creating it if necessary. Thus, the two occurrences of ``a.x`` " +"do not necessarily refer to the same attribute: if the RHS expression refers " +"to a class attribute, the LHS creates a new instance attribute as the target " +"of the assignment::" +msgstr "" +"Note : si l'objet est une instance de classe et que la référence à " +"l'attribut apparaît des deux côtés de l'opérateur d'assignation, " +"l'expression \"à droite\", ``a.x`` peut accéder soit à l'attribut d'instance " +"ou (si cet attribut d'instance n'existe pas) à l'attribut de classe. " +"L'expression cible \"à gauche\" ``a.x`` est toujours définie comme un " +"attribut d'instance, en le créant si nécessaire. Ainsi, les deux occurrences " +"de ``a.x`` ne font pas nécessairement référence au même attribut : si " +"l'expression \"à droite\" fait référence à un attribut de classe, " +"l'expression \"à gauche\" crée un nouvel attribut d'instance comme cible de " +"l'assignation ::" + +#: ../Doc/reference/simple_stmts.rst:185 +msgid "" +"This description does not necessarily apply to descriptor attributes, such " +"as properties created with :func:`property`." +msgstr "" +"Cette description ne s'applique pas nécessairement aux attributs des " +"descripteurs, telles que les propriétés créées avec :func:`property`." + +#: ../Doc/reference/simple_stmts.rst:192 +msgid "" +"If the target is a subscription: The primary expression in the reference is " +"evaluated. It should yield either a mutable sequence object (such as a " +"list) or a mapping object (such as a dictionary). Next, the subscript " +"expression is evaluated." +msgstr "" +"Si la cible est une sélection : l'expression primaire de la référence est " +"évaluée. Elle doit produire soit un objet séquence mutable (telle qu'une " +"liste) ou un objet tableau de correspondances (tel qu'un dictionnaire). " +"Ensuite, l'expression de la sélection est évaluée." + +#: ../Doc/reference/simple_stmts.rst:201 +msgid "" +"If the primary is a mutable sequence object (such as a list), the subscript " +"must yield an integer. If it is negative, the sequence's length is added to " +"it. The resulting value must be a nonnegative integer less than the " +"sequence's length, and the sequence is asked to assign the assigned object " +"to its item with that index. If the index is out of range, :exc:" +"`IndexError` is raised (assignment to a subscripted sequence cannot add new " +"items to a list)." +msgstr "" +"Si la primaire est un objet séquence mutable (telle qu'une liste), la " +"sélection doit produire un entier. S'il est négatif, la longueur de la " +"séquence lui est ajoutée. La valeur résultante doit être un entier positif " +"ou nul, plus petit que la longueur de la séquence, et Python demande à la " +"séquence d'assigner l'objet à l'élément se trouvant à cet indice. Si " +"l'indice est hors limites, une :exc:`IndexError` est levée (une assignation " +"à une sélection dans une séquence ne peut pas ajouter de nouveaux éléments à " +"une liste)." + +#: ../Doc/reference/simple_stmts.rst:212 +msgid "" +"If the primary is a mapping object (such as a dictionary), the subscript " +"must have a type compatible with the mapping's key type, and the mapping is " +"then asked to create a key/datum pair which maps the subscript to the " +"assigned object. This can either replace an existing key/value pair with " +"the same key value, or insert a new key/value pair (if no key with the same " +"value existed)." +msgstr "" +"Si la primaire est un objet tableau de correspondances (tel qu'un " +"dictionnaire), la sélection doit être d'un type compatible avec le type des " +"clés ; Python demande alors au tableau de correspondances de créer un couple " +"clé-valeur qui associe la sélection à l'objet assigné. Ceci peut remplacer " +"une correspondance déjà existante pour une clé donnée ou insérer un nouveau " +"couple clé-valeur." + +#: ../Doc/reference/simple_stmts.rst:218 +msgid "" +"For user-defined objects, the :meth:`__setitem__` method is called with " +"appropriate arguments." +msgstr "" +"Pour les objets allogènes, la méthode :meth:`__setitem__` est appelée avec " +"les arguments appropriés." + +#: ../Doc/reference/simple_stmts.rst:223 +msgid "" +"If the target is a slicing: The primary expression in the reference is " +"evaluated. It should yield a mutable sequence object (such as a list). The " +"assigned object should be a sequence object of the same type. Next, the " +"lower and upper bound expressions are evaluated, insofar they are present; " +"defaults are zero and the sequence's length. The bounds should evaluate to " +"integers. If either bound is negative, the sequence's length is added to " +"it. The resulting bounds are clipped to lie between zero and the sequence's " +"length, inclusive. Finally, the sequence object is asked to replace the " +"slice with the items of the assigned sequence. The length of the slice may " +"be different from the length of the assigned sequence, thus changing the " +"length of the target sequence, if the target sequence allows it." +msgstr "" +"Si la cible est une tranche : l'expression primaire de la référence est " +"évaluée. Elle doit produire un objet séquence mutable (telle qu'une liste). " +"L'objet assigné doit être un objet séquence du même type. Ensuite, les " +"expressions de la borne inférieure et de la borne supérieure sont évaluées, " +"dans la mesure où elles sont spécifiées (les valeurs par défaut sont zéro et " +"la longueur de la séquence). Les bornes doivent être des entiers. Si une " +"borne est négative, la longueur de la séquence lui est ajoutée. Les bornes " +"résultantes sont coupées pour être dans l'intervalle zéro -- longueur de la " +"séquence, inclus. Finalement, Python demande à l'objet séquence de remplacer " +"la tranche avec les éléments de la séquence à assigner. La longueur de la " +"tranche peut être différente de la longueur de la séquence à assigner, ce " +"qui modifie alors la longueur de la séquence cible, si celle-ci le permet." + +#: ../Doc/reference/simple_stmts.rst:237 +msgid "" +"In the current implementation, the syntax for targets is taken to be the " +"same as for expressions, and invalid syntax is rejected during the code " +"generation phase, causing less detailed error messages." +msgstr "" +"Dans l'implémentation actuelle, la syntaxe pour les cibles est similaire à " +"celle des expressions. Toute syntaxe invalide est rejetée pendant la phase " +"de génération de code, ce qui produit des messages d'erreurs moins détaillés." + +#: ../Doc/reference/simple_stmts.rst:241 +msgid "" +"Although the definition of assignment implies that overlaps between the left-" +"hand side and the right-hand side are 'simultaneous' (for example ``a, b = " +"b, a`` swaps two variables), overlaps *within* the collection of assigned-to " +"variables occur left-to-right, sometimes resulting in confusion. For " +"instance, the following program prints ``[0, 2]``::" +msgstr "" +"Bien que la définition de l'assignation implique que le passage entre le " +"côté gauche et le côté droit soient « simultanés » (par exemple, ``a, b = b, " +"a`` permute les deux variables), le passage *à l'intérieur* des collections " +"de variables que l'on assigne intervient de la gauche vers la droite, ce qui " +"peut entraîner quelques confusions. Par exemple, le programme suivant " +"affiche ``[0, 2]`` ::" + +#: ../Doc/reference/simple_stmts.rst:255 +msgid ":pep:`3132` - Extended Iterable Unpacking" +msgstr ":pep:`3132` -- dépaquetage étendu d'itérable" + +#: ../Doc/reference/simple_stmts.rst:256 +msgid "The specification for the ``*target`` feature." +msgstr "Spécification de la fonctionnalité ``*cible``." + +#: ../Doc/reference/simple_stmts.rst:262 +msgid "Augmented assignment statements" +msgstr "Les assignations augmentées" + +#: ../Doc/reference/simple_stmts.rst:280 +msgid "" +"Augmented assignment is the combination, in a single statement, of a binary " +"operation and an assignment statement:" +msgstr "" +"Une assignation augmentée est la combinaison, dans une seule instruction, " +"d'une opération binaire et d'une assignation :" + +#: ../Doc/reference/simple_stmts.rst:289 +msgid "" +"(See section :ref:`primaries` for the syntax definitions of the last three " +"symbols.)" +msgstr "" +"Voir la section :ref:`primaries` pour la définition des syntaxes des trois " +"derniers symboles." + +#: ../Doc/reference/simple_stmts.rst:292 +msgid "" +"An augmented assignment evaluates the target (which, unlike normal " +"assignment statements, cannot be an unpacking) and the expression list, " +"performs the binary operation specific to the type of assignment on the two " +"operands, and assigns the result to the original target. The target is only " +"evaluated once." +msgstr "" +"Une assignation augmentée évalue la cible (qui, au contraire des " +"assignations normales, ne peut pas être un dépaquetage) et la liste " +"d'expressions, effectue l'opération binaire (spécifique au type " +"d'assignation) sur les deux opérandes et assigne le résultat à la cible " +"originale. La cible n'est évaluée qu'une seule fois." + +#: ../Doc/reference/simple_stmts.rst:297 +msgid "" +"An augmented assignment expression like ``x += 1`` can be rewritten as ``x = " +"x + 1`` to achieve a similar, but not exactly equal effect. In the augmented " +"version, ``x`` is only evaluated once. Also, when possible, the actual " +"operation is performed *in-place*, meaning that rather than creating a new " +"object and assigning that to the target, the old object is modified instead." +msgstr "" +"Une assignation augmentée comme ``x += 1`` peut être ré-écrite en ``x = x + " +"1`` pour obtenir un effet similaire, mais pas exactement équivalent. Dans la " +"version augmentée. ``x`` n'est évalué qu'une seule fois. Aussi, lorsque " +"c'est possible, l'opération concrète est effectuée *sur place*, c'est-à-dire " +"que plutôt que de créer un nouvel objet et l'assigner à la cible, c'est le " +"vieil objet qui est modifié." + +#: ../Doc/reference/simple_stmts.rst:303 +msgid "" +"Unlike normal assignments, augmented assignments evaluate the left-hand side " +"*before* evaluating the right-hand side. For example, ``a[i] += f(x)`` " +"first looks-up ``a[i]``, then it evaluates ``f(x)`` and performs the " +"addition, and lastly, it writes the result back to ``a[i]``." +msgstr "" +"Au contraire des assignations normales, les assignations augmentées évaluent " +"la partie gauche *avant* d'évaluer la partie droite. Par exemple, ``a[i] += " +"f(x)`` commence par s'intéresser à ``a[i]``, puis Python évalue ``f(x)``, " +"effectue l'addition et, enfin, écrit le résultat dans ``a[i]``." + +#: ../Doc/reference/simple_stmts.rst:308 +msgid "" +"With the exception of assigning to tuples and multiple targets in a single " +"statement, the assignment done by augmented assignment statements is handled " +"the same way as normal assignments. Similarly, with the exception of the " +"possible *in-place* behavior, the binary operation performed by augmented " +"assignment is the same as the normal binary operations." +msgstr "" +"À l'exception de l'assignation de tuples et de cibles multiples dans une " +"seule instruction, l'assignation effectuée par une assignation augmentée est " +"traitée de la même manière qu'une assignation normale. De même, à " +"l'exception du comportement possible *sur place*, l'opération binaire " +"effectuée par assignation augmentée est la même que les opérations binaires " +"normales." + +#: ../Doc/reference/simple_stmts.rst:314 +msgid "" +"For targets which are attribute references, the same :ref:`caveat about " +"class and instance attributes ` applies as for regular " +"assignments." +msgstr "" +"Pour les cibles qui sont des références à des attributs, la même :ref:`mise " +"en garde sur les attributs de classe et d'instances ` " +"s'applique que pour les assignations normales." + +#: ../Doc/reference/simple_stmts.rst:321 +msgid "Annotated assignment statements" +msgstr "Les assignations annotées" + +#: ../Doc/reference/simple_stmts.rst:328 +msgid "" +":term:`Annotation ` assignment is the combination, in a " +"single statement, of a variable or attribute annotation and an optional " +"assignment statement:" +msgstr "" +"Une assignation :term:`annotée ` est la combinaison, " +"dans une seule instruction, d'une annotation de variable ou d'attribut et " +"d'une assignation optionnelle :" + +#: ../Doc/reference/simple_stmts.rst:334 +msgid "" +"The difference from normal :ref:`assignment` is that only single target and " +"only single right hand side value is allowed." +msgstr "" +"La différence avec une assignation normale (voir :ref:`ci-dessus " +"`) est qu'une seule cible et qu'une seule valeur à droite ne " +"sont autorisées." + +#: ../Doc/reference/simple_stmts.rst:337 +msgid "" +"For simple names as assignment targets, if in class or module scope, the " +"annotations are evaluated and stored in a special class or module attribute :" +"attr:`__annotations__` that is a dictionary mapping from variable names " +"(mangled if private) to evaluated annotations. This attribute is writable " +"and is automatically created at the start of class or module body execution, " +"if annotations are found statically." +msgstr "" +"Pour des noms simples en tant que cibles d'assignation, dans une portée de " +"classe ou de module, les annotations sont évaluées et stockées dans un " +"attribut de classe ou de module spécial, :attr:`__annotations__`, qui est un " +"dictionnaire dont les clés sont les noms de variables (réécrits si le nom " +"est privé) et les valeurs sont les annotations. Cet attribut est accessible " +"en écriture et est automatiquement créé au démarrage de l'exécution du corps " +"de la classe ou du module, si les annotations sont trouvées statiquement." + +#: ../Doc/reference/simple_stmts.rst:345 +msgid "" +"For expressions as assignment targets, the annotations are evaluated if in " +"class or module scope, but not stored." +msgstr "" +"Pour les expressions en tant que cibles d'assignations, les annotations sont " +"évaluées dans la portée de la classe ou du module, mais ne sont pas stockées." + +#: ../Doc/reference/simple_stmts.rst:348 +msgid "" +"If a name is annotated in a function scope, then this name is local for that " +"scope. Annotations are never evaluated and stored in function scopes." +msgstr "" +"Si le nom est annoté dans la portée d'une fonction, alors ce nom est local à " +"cette portée. Les annotations ne sont jamais évaluées et stockées dans les " +"portées des fonctions." + +#: ../Doc/reference/simple_stmts.rst:351 +msgid "" +"If the right hand side is present, an annotated assignment performs the " +"actual assignment before evaluating annotations (where applicable). If the " +"right hand side is not present for an expression target, then the " +"interpreter evaluates the target except for the last :meth:`__setitem__` or :" +"meth:`__setattr__` call." +msgstr "" +"Si la partie droite est présente, une assignation annotée effectue " +"l'assignation en tant que telle avant d'évaluer les annotations (là où c'est " +"possible). Si la partie droite n'est pas présente pour une cible " +"d'expression, alors l'interpréteur évalue la cible sauf pour le dernier " +"appel à :meth:`__setitem__` ou :meth:`__setattr__`." + +#: ../Doc/reference/simple_stmts.rst:362 +msgid ":pep:`526` - Syntax for Variable Annotations" +msgstr ":pep:`526` -- Syntaxe pour les annotations de variables" + +#: ../Doc/reference/simple_stmts.rst:360 +msgid "" +"The proposal that added syntax for annotating the types of variables " +"(including class variables and instance variables), instead of expressing " +"them through comments." +msgstr "" +"La proposition qui a ajouté la syntaxe pour annoter les types de variables " +"(y compris les variables de classe et les variables d'instance), au lieu de " +"les exprimer par le biais de commentaires." + +#: ../Doc/reference/simple_stmts.rst:366 +msgid ":pep:`484` - Type hints" +msgstr ":pep:`484` -- Indices de type" + +#: ../Doc/reference/simple_stmts.rst:365 +msgid "" +"The proposal that added the :mod:`typing` module to provide a standard " +"syntax for type annotations that can be used in static analysis tools and " +"IDEs." +msgstr "" +"La proposition qui a ajouté le module :mod:`typing` pour fournir une syntaxe " +"standard pour les annotations de type qui peuvent être utilisées dans les " +"outils d'analyse statique et les EDIs." + +#: ../Doc/reference/simple_stmts.rst:373 +msgid "The :keyword:`!assert` statement" +msgstr "L'instruction :keyword:`!assert`" + +#: ../Doc/reference/simple_stmts.rst:380 +msgid "" +"Assert statements are a convenient way to insert debugging assertions into a " +"program:" +msgstr "" +"Les instructions ``assert`` sont une manière pratique d'insérer des tests de " +"débogage au sein d'un programme :" + +#: ../Doc/reference/simple_stmts.rst:386 +msgid "The simple form, ``assert expression``, is equivalent to ::" +msgstr "La forme la plus simple, ``assert expression``, est équivalente à ::" + +#: ../Doc/reference/simple_stmts.rst:391 +msgid "" +"The extended form, ``assert expression1, expression2``, is equivalent to ::" +msgstr "" +"La forme étendue, ``assert expression1, expression2``, est équivalente à ::" + +#: ../Doc/reference/simple_stmts.rst:400 +msgid "" +"These equivalences assume that :const:`__debug__` and :exc:`AssertionError` " +"refer to the built-in variables with those names. In the current " +"implementation, the built-in variable :const:`__debug__` is ``True`` under " +"normal circumstances, ``False`` when optimization is requested (command line " +"option :option:`-O`). The current code generator emits no code for an " +"assert statement when optimization is requested at compile time. Note that " +"it is unnecessary to include the source code for the expression that failed " +"in the error message; it will be displayed as part of the stack trace." +msgstr "" +"Ces équivalences supposent que :const:`__debug__` et :exc:`AssertionError` " +"font référence aux variables natives ainsi nommées. Dans l'implémentation " +"actuelle, la variable native :const:`__debug__` vaut ``True`` dans des " +"circonstances normales, ``False`` quand les optimisations sont demandées " +"(ligne de commande avec l'option :option:`-O`). Le générateur de code actuel " +"ne produit aucun code pour une instruction ``assert`` quand vous demandez " +"les optimisations à la compilation. Notez qu'il est superflu d'inclure le " +"code source dans le message d'erreur pour l'expression qui a échoué : il est " +"affiché dans la pile d'appels." + +#: ../Doc/reference/simple_stmts.rst:409 +msgid "" +"Assignments to :const:`__debug__` are illegal. The value for the built-in " +"variable is determined when the interpreter starts." +msgstr "" +"Assigner vers :const:`__debug__` est illégal. La valeur de cette variable " +"native est déterminée au moment où l'interpréteur démarre." + +#: ../Doc/reference/simple_stmts.rst:416 +msgid "The :keyword:`!pass` statement" +msgstr "L'instruction :keyword:`!pass`" + +#: ../Doc/reference/simple_stmts.rst:426 +msgid "" +":keyword:`pass` is a null operation --- when it is executed, nothing " +"happens. It is useful as a placeholder when a statement is required " +"syntactically, but no code needs to be executed, for example::" +msgstr "" +":keyword:`pass` est une opération vide --- quand elle est exécutée, rien ne " +"se passe. Elle est utile comme bouche-trou lorsqu'une instruction est " +"syntaxiquement requise mais qu'aucun code ne doit être exécuté. Par " +"exemple ::" + +#: ../Doc/reference/simple_stmts.rst:438 +msgid "The :keyword:`!del` statement" +msgstr "L'instruction :keyword:`!del`" + +#: ../Doc/reference/simple_stmts.rst:448 +msgid "" +"Deletion is recursively defined very similar to the way assignment is " +"defined. Rather than spelling it out in full details, here are some hints." +msgstr "" +"La suppression est récursivement définie de la même manière que " +"l'assignation. Plutôt que de détailler cela de manière approfondie, voici " +"quelques indices." + +#: ../Doc/reference/simple_stmts.rst:451 +msgid "" +"Deletion of a target list recursively deletes each target, from left to " +"right." +msgstr "" +"La suppression d'une liste cible (*target_list* dans la grammaire ci-dessus) " +"supprime récursivement chaque cible, de la gauche vers la droite." + +#: ../Doc/reference/simple_stmts.rst:457 +msgid "" +"Deletion of a name removes the binding of that name from the local or global " +"namespace, depending on whether the name occurs in a :keyword:`global` " +"statement in the same code block. If the name is unbound, a :exc:" +"`NameError` exception will be raised." +msgstr "" +"La suppression d'un nom détruit le lien entre ce nom dans l'espace des noms " +"locaux, ou l'espace des noms globaux si ce nom apparaît dans une " +"instruction :keyword:`global` dans le même bloc de code. Si le nom n'est pas " +"lié, une exception :exc:`NameError` est levée." + +#: ../Doc/reference/simple_stmts.rst:464 +msgid "" +"Deletion of attribute references, subscriptions and slicings is passed to " +"the primary object involved; deletion of a slicing is in general equivalent " +"to assignment of an empty slice of the right type (but even this is " +"determined by the sliced object)." +msgstr "" +"La suppression d'une référence à un attribut, une sélection ou une tranche " +"est passée à l'objet primaire concerné : la suppression d'une tranche est en " +"général équivalente à l'assignation d'une tranche vide du type adéquat (mais " +"ceci est au final déterminé par l'objet que l'on tranche)." + +#: ../Doc/reference/simple_stmts.rst:469 +msgid "" +"Previously it was illegal to delete a name from the local namespace if it " +"occurs as a free variable in a nested block." +msgstr "" +"Auparavant, il était illégal de supprimer un nom dans l'espace des noms " +"locaux si celui-ci apparaissait comme variable libre dans un bloc imbriqué." + +#: ../Doc/reference/simple_stmts.rst:477 +msgid "The :keyword:`!return` statement" +msgstr "L'instruction :keyword:`!return`" + +#: ../Doc/reference/simple_stmts.rst:487 +msgid "" +":keyword:`return` may only occur syntactically nested in a function " +"definition, not within a nested class definition." +msgstr "" +":keyword:`return` ne peut être placée qu'à l'intérieur d'une définition de " +"fonction, pas à l'intérieur d'une définition de classe." + +#: ../Doc/reference/simple_stmts.rst:490 +msgid "" +"If an expression list is present, it is evaluated, else ``None`` is " +"substituted." +msgstr "" +"Si une liste d'expressions (*expression_list* dans la grammaire ci-dessus) " +"est présente, elle est évaluée, sinon ``None`` est utilisée comme valeur par " +"défaut." + +#: ../Doc/reference/simple_stmts.rst:492 +msgid "" +":keyword:`return` leaves the current function call with the expression list " +"(or ``None``) as return value." +msgstr "" +":keyword:`return` quitte l'appel à la fonction courante avec la liste " +"d'expressions (ou ``None``) comme valeur de retour." + +#: ../Doc/reference/simple_stmts.rst:497 +msgid "" +"When :keyword:`return` passes control out of a :keyword:`try` statement with " +"a :keyword:`finally` clause, that :keyword:`!finally` clause is executed " +"before really leaving the function." +msgstr "" +"Quand :keyword:`return` fait sortir d'une instruction :keyword:`try` avec " +"une clause :keyword:`finally`, cette clause :keyword:`!finally` est exécutée " +"avant de réellement quitter la fonction." + +#: ../Doc/reference/simple_stmts.rst:501 +msgid "" +"In a generator function, the :keyword:`return` statement indicates that the " +"generator is done and will cause :exc:`StopIteration` to be raised. The " +"returned value (if any) is used as an argument to construct :exc:" +"`StopIteration` and becomes the :attr:`StopIteration.value` attribute." +msgstr "" +"Dans une fonction générateur, l'instruction :keyword:`return` indique que le " +"générateur est terminé et provoque la levée d'une :exc:`StopIteration`. La " +"valeur de retour (s'il y en a une) est utilisée comme argument pour " +"construire l'exception :exc:`StopIteration` et devient l'attribut :attr:" +"`StopIteration.value`." + +#: ../Doc/reference/simple_stmts.rst:506 +msgid "" +"In an asynchronous generator function, an empty :keyword:`return` statement " +"indicates that the asynchronous generator is done and will cause :exc:" +"`StopAsyncIteration` to be raised. A non-empty :keyword:`!return` statement " +"is a syntax error in an asynchronous generator function." +msgstr "" +"Dans une fonction générateur asynchrone, une instruction :keyword:`return` " +"vide indique que le générateur asynchrone est terminé et provoque la levée " +"d'une :exc:`StopAsyncIteration`. Une instruction :keyword:`!return` non vide " +"est une erreur de syntaxe dans une fonction générateur asynchrone." + +#: ../Doc/reference/simple_stmts.rst:514 +msgid "The :keyword:`!yield` statement" +msgstr "L'instruction :keyword:`!yield`" + +#: ../Doc/reference/simple_stmts.rst:526 +msgid "" +"A :keyword:`yield` statement is semantically equivalent to a :ref:`yield " +"expression `. The yield statement can be used to omit the " +"parentheses that would otherwise be required in the equivalent yield " +"expression statement. For example, the yield statements ::" +msgstr "" +"L'instruction :keyword:`yield` est sémantiquement équivalente à une :ref:" +"`expression yield `. L'instruction *yield* peut être utilisée " +"pour omettre les parenthèses qui seraient autrement requises dans " +"l'instruction équivalente d'expression *yield*. Par exemple, les " +"instructions *yield* ::" + +#: ../Doc/reference/simple_stmts.rst:534 +msgid "are equivalent to the yield expression statements ::" +msgstr "sont équivalentes aux instructions expressions *yield* ::" + +#: ../Doc/reference/simple_stmts.rst:539 +msgid "" +"Yield expressions and statements are only used when defining a :term:" +"`generator` function, and are only used in the body of the generator " +"function. Using yield in a function definition is sufficient to cause that " +"definition to create a generator function instead of a normal function." +msgstr "" +"Les expressions et les instructions *yield* sont utilisées seulement dans la " +"définition des fonctions :term:`générateurs ` et apparaissent " +"uniquement dans le corps de la fonction générateur. L'utilisation de *yield* " +"dans la définition d'une fonction est suffisant pour que cette définition " +"crée une fonction générateur au lieu d'une fonction normale." + +#: ../Doc/reference/simple_stmts.rst:544 +msgid "" +"For full details of :keyword:`yield` semantics, refer to the :ref:" +"`yieldexpr` section." +msgstr "" +"Pour tous les détails sur la sémantique de :keyword:`yield`, reportez-vous à " +"la section :ref:`yieldexpr`." + +#: ../Doc/reference/simple_stmts.rst:550 +msgid "The :keyword:`!raise` statement" +msgstr "L'instruction :keyword:`!raise`" + +#: ../Doc/reference/simple_stmts.rst:561 +msgid "" +"If no expressions are present, :keyword:`raise` re-raises the last exception " +"that was active in the current scope. If no exception is active in the " +"current scope, a :exc:`RuntimeError` exception is raised indicating that " +"this is an error." +msgstr "" +"Si aucune expression n'est présente, :keyword:`raise` propage la dernière " +"exception active dans la portée courante. Si aucune exception n'est active " +"dans la portée courante, une exception :exc:`RuntimeError` est levée, " +"indiquant que c'est une erreur." + +#: ../Doc/reference/simple_stmts.rst:566 +msgid "" +"Otherwise, :keyword:`raise` evaluates the first expression as the exception " +"object. It must be either a subclass or an instance of :class:" +"`BaseException`. If it is a class, the exception instance will be obtained " +"when needed by instantiating the class with no arguments." +msgstr "" +"Sinon, :keyword:`raise` évalue la première expression en tant qu'objet " +"exception. Ce doit être une sous-classe ou une instance de :class:" +"`BaseException`. Si c'est une classe, l'instance de l'exception est obtenue " +"en instanciant la classe sans argument (au moment voulu)." + +#: ../Doc/reference/simple_stmts.rst:571 +msgid "" +"The :dfn:`type` of the exception is the exception instance's class, the :dfn:" +"`value` is the instance itself." +msgstr "" +"Le :dfn:`type` de l'exception est la classe de l'instance de l'exception, " +"la :dfn:`value` est l'instance elle-même." + +#: ../Doc/reference/simple_stmts.rst:576 +msgid "" +"A traceback object is normally created automatically when an exception is " +"raised and attached to it as the :attr:`__traceback__` attribute, which is " +"writable. You can create an exception and set your own traceback in one step " +"using the :meth:`with_traceback` exception method (which returns the same " +"exception instance, with its traceback set to its argument), like so::" +msgstr "" +"Normalement, un objet *trace d'appels* est créé automatiquement quand une " +"exception est levée et il lui est rattaché comme attribut :attr:" +"`__traceback__`, en lecture-écriture. Vous pouvez créer une exception et " +"définir votre propre trace d'appels d'un seul coup en utilisant la méthode " +"des exceptions :meth:`with_traceback` (qui renvoie la même instance " +"d'exception avec sa trace d'appels passée en argument), comme ceci ::" + +#: ../Doc/reference/simple_stmts.rst:588 +msgid "" +"The ``from`` clause is used for exception chaining: if given, the second " +"*expression* must be another exception class or instance, which will then be " +"attached to the raised exception as the :attr:`__cause__` attribute (which " +"is writable). If the raised exception is not handled, both exceptions will " +"be printed::" +msgstr "" +"La clause ``from`` est utilisée pour chaîner les exceptions : si vous la " +"fournissez, la seconde « expression » doit être une autre classe ou instance " +"d'exception, qui est rattachée à l'exception levée en tant qu'attribut :attr:" +"`__cause__` (en lecture-écriture). Si l'exception levée n'est pas gérée, les " +"deux exceptions sont affichées ::" + +#: ../Doc/reference/simple_stmts.rst:609 +msgid "" +"A similar mechanism works implicitly if an exception is raised inside an " +"exception handler or a :keyword:`finally` clause: the previous exception is " +"then attached as the new exception's :attr:`__context__` attribute::" +msgstr "" +"Un mécanisme similaire est mis en œuvre implicitement si une exception est " +"levée à l'intérieur d'un gestionnaire d'exception ou d'une clause :keyword:" +"`finally` : la première exception est rattachée à l'attribut :attr:" +"`__context__` de la nouvelle exception ::" + +#: ../Doc/reference/simple_stmts.rst:628 +msgid "" +"Exception chaining can be explicitly suppressed by specifying :const:`None` " +"in the ``from`` clause::" +msgstr "" +"Le chaînage d'exceptions peut être explicitement supprimé en spécifiant :" +"const:`None` dans la clause ``from`` ::" + +#: ../Doc/reference/simple_stmts.rst:640 +msgid "" +"Additional information on exceptions can be found in section :ref:" +"`exceptions`, and information about handling exceptions is in section :ref:" +"`try`." +msgstr "" +"Des informations complémentaires sur les exceptions sont disponibles dans la " +"section :ref:`exceptions` et sur la gestion des exceptions dans la section :" +"ref:`try`." + +#: ../Doc/reference/simple_stmts.rst:643 +msgid ":const:`None` is now permitted as ``Y`` in ``raise X from Y``." +msgstr "" +":const:`None` est dorénavant autorisée en tant que ``Y`` dans ``raise X from " +"Y``." + +#: ../Doc/reference/simple_stmts.rst:646 +msgid "" +"The ``__suppress_context__`` attribute to suppress automatic display of the " +"exception context." +msgstr "" +"L'attribut ``__suppress_context__`` pour supprimer l'affichage automatique " +"du contexte de l'exception." + +#: ../Doc/reference/simple_stmts.rst:653 +msgid "The :keyword:`!break` statement" +msgstr "L'instruction :keyword:`!break`" + +#: ../Doc/reference/simple_stmts.rst:664 +msgid "" +":keyword:`break` may only occur syntactically nested in a :keyword:`for` or :" +"keyword:`while` loop, but not nested in a function or class definition " +"within that loop." +msgstr "" +"Une instruction :keyword:`break` ne peut apparaître qu'à l'intérieur d'une " +"boucle :keyword:`for` ou :keyword:`while`, mais pas dans une définition de " +"fonction ou de classe à l'intérieur de cette boucle." + +#: ../Doc/reference/simple_stmts.rst:671 +msgid "" +"It terminates the nearest enclosing loop, skipping the optional :keyword:`!" +"else` clause if the loop has one." +msgstr "" +"Elle termine la boucle la plus imbriquée, shuntant l'éventuelle clause :" +"keyword:`!else` de la boucle." + +#: ../Doc/reference/simple_stmts.rst:674 +msgid "" +"If a :keyword:`for` loop is terminated by :keyword:`break`, the loop control " +"target keeps its current value." +msgstr "" +"Si une boucle :keyword:`for` est terminée par un :keyword:`break`, la cible " +"qui contrôle la boucle garde sa valeur." + +#: ../Doc/reference/simple_stmts.rst:679 +msgid "" +"When :keyword:`break` passes control out of a :keyword:`try` statement with " +"a :keyword:`finally` clause, that :keyword:`!finally` clause is executed " +"before really leaving the loop." +msgstr "" +"Quand :keyword:`break` passe le contrôle en dehors d'une instruction :" +"keyword:`try` qui comporte une clause :keyword:`finally`, cette clause :" +"keyword:`!finally` est exécutée avant de quitter la boucle." + +#: ../Doc/reference/simple_stmts.rst:687 +msgid "The :keyword:`!continue` statement" +msgstr "L'instruction :keyword:`!continue`" + +#: ../Doc/reference/simple_stmts.rst:699 +msgid "" +":keyword:`continue` may only occur syntactically nested in a :keyword:`for` " +"or :keyword:`while` loop, but not nested in a function or class definition " +"or :keyword:`finally` clause within that loop. It continues with the next " +"cycle of the nearest enclosing loop." +msgstr "" +"L'instruction :keyword:`continue` ne peut apparaître qu'à l'intérieur d'une " +"boucle :keyword:`for` ou :keyword:`while`, mais pas dans une définition de " +"fonction ou de classe ni dans une clause :keyword:`finally`, à l'intérieur " +"de cette boucle. Elle fait continuer le flot d'exécution au prochain cycle " +"de la boucle la plus imbriquée." + +#: ../Doc/reference/simple_stmts.rst:704 +msgid "" +"When :keyword:`continue` passes control out of a :keyword:`try` statement " +"with a :keyword:`finally` clause, that :keyword:`!finally` clause is " +"executed before really starting the next loop cycle." +msgstr "" +"Quand :keyword:`continue` passe le contrôle en dehors d'une instruction :" +"keyword:`try` qui comporte une clause :keyword:`finally`, cette clause :" +"keyword:`!finally` est exécutée avant de commencer le cycle suivant de la " +"boucle." + +#: ../Doc/reference/simple_stmts.rst:713 +msgid "The :keyword:`!import` statement" +msgstr "L'instruction :keyword:`!import`" + +#: ../Doc/reference/simple_stmts.rst:734 +msgid "" +"The basic import statement (no :keyword:`from` clause) is executed in two " +"steps:" +msgstr "" +"L'instruction de base *import* (sans clause :keyword:`from`) est exécutée en " +"deux étapes :" + +#: ../Doc/reference/simple_stmts.rst:737 +msgid "find a module, loading and initializing it if necessary" +msgstr "trouve un module, le charge et l'initialise si nécessaire" + +#: ../Doc/reference/simple_stmts.rst:738 +msgid "" +"define a name or names in the local namespace for the scope where the :" +"keyword:`import` statement occurs." +msgstr "" +"définit un ou des noms (*name* dans la grammaire ci-dessus) dans l'espace " +"des noms locaux de la portée où l'instruction :keyword:`import` apparaît." + +#: ../Doc/reference/simple_stmts.rst:741 +msgid "" +"When the statement contains multiple clauses (separated by commas) the two " +"steps are carried out separately for each clause, just as though the clauses " +"had been separated out into individual import statements." +msgstr "" +"Quand l'instruction contient plusieurs clauses (séparées par des virgules), " +"les deux étapes sont menées séparément pour chaque clause, comme si les " +"clauses étaient séparées dans des instructions d'importations individuelles." + +#: ../Doc/reference/simple_stmts.rst:746 +msgid "" +"The details of the first step, finding and loading modules are described in " +"greater detail in the section on the :ref:`import system `, " +"which also describes the various types of packages and modules that can be " +"imported, as well as all the hooks that can be used to customize the import " +"system. Note that failures in this step may indicate either that the module " +"could not be located, *or* that an error occurred while initializing the " +"module, which includes execution of the module's code." +msgstr "" +"Les détails de la première étape, de recherche et de chargement des modules " +"sont décrits largement dans la section relative au :ref:`système " +"d'importation `, qui décrit également les différents types de " +"paquets et modules qui peuvent être importés, de même que les points " +"d'entrée pouvant être utilisés pour personnaliser le système d'importation. " +"Notez que des erreurs dans cette étape peuvent indiquer soit que le module " +"n'a pas été trouvé, soit qu'une erreur s'est produite lors de " +"l'initialisation du module, ce qui comprend l'exécution du code du module." + +#: ../Doc/reference/simple_stmts.rst:754 +msgid "" +"If the requested module is retrieved successfully, it will be made available " +"in the local namespace in one of three ways:" +msgstr "" +"Si le module requis est bien récupéré, il est mis à disposition de l'espace " +"de nommage local suivant l'une des trois façons suivantes :" + +#: ../Doc/reference/simple_stmts.rst:759 +msgid "" +"If the module name is followed by :keyword:`!as`, then the name following :" +"keyword:`!as` is bound directly to the imported module." +msgstr "" +"Si le nom du module est suivi par :keyword:`!as`, alors le nom suivant :" +"keyword:`!as` est directement lié au module importé." + +#: ../Doc/reference/simple_stmts.rst:761 +msgid "" +"If no other name is specified, and the module being imported is a top level " +"module, the module's name is bound in the local namespace as a reference to " +"the imported module" +msgstr "" +"si aucun autre nom n'est spécifié et que le module en cours d'importation " +"est un module de niveau le plus haut, le nom du module est lié dans l'espace " +"des noms locaux au module importé ;" + +#: ../Doc/reference/simple_stmts.rst:764 +msgid "" +"If the module being imported is *not* a top level module, then the name of " +"the top level package that contains the module is bound in the local " +"namespace as a reference to the top level package. The imported module must " +"be accessed using its full qualified name rather than directly" +msgstr "" +"si le module en cours d'importation n'est *pas* un module de plus haut " +"niveau, alors le nom du paquet de plus haut niveau qui contient ce module " +"est lié dans l'espace des noms locaux au paquet de plus haut niveau. Vous " +"pouvez accéder au module importé en utilisant son nom pleinement qualifié et " +"non directement." + +#: ../Doc/reference/simple_stmts.rst:774 +msgid "The :keyword:`from` form uses a slightly more complex process:" +msgstr "La forme :keyword:`from` utilise un processus un peu plus complexe :" + +#: ../Doc/reference/simple_stmts.rst:776 +msgid "" +"find the module specified in the :keyword:`from` clause, loading and " +"initializing it if necessary;" +msgstr "" +"trouve le module spécifié dans la clause :keyword:`from`, le charge et " +"l'initialise si nécessaire ;" + +#: ../Doc/reference/simple_stmts.rst:778 +msgid "for each of the identifiers specified in the :keyword:`import` clauses:" +msgstr "pour chaque nom spécifié dans les clauses :keyword:`import` :" + +#: ../Doc/reference/simple_stmts.rst:780 +msgid "check if the imported module has an attribute by that name" +msgstr "vérifie si le module importé possède un attribut avec ce nom ;" + +#: ../Doc/reference/simple_stmts.rst:781 +msgid "" +"if not, attempt to import a submodule with that name and then check the " +"imported module again for that attribute" +msgstr "" +"si non, essaie d'importer un sous-module avec ce nom puis vérifie si le " +"module importé possède lui-même cet attribut ;" + +#: ../Doc/reference/simple_stmts.rst:783 +msgid "if the attribute is not found, :exc:`ImportError` is raised." +msgstr "si l'attribut n'est pas trouvé, une :exc:`ImportError` est levée." + +#: ../Doc/reference/simple_stmts.rst:784 +msgid "" +"otherwise, a reference to that value is stored in the local namespace, using " +"the name in the :keyword:`!as` clause if it is present, otherwise using the " +"attribute name" +msgstr "" +"sinon, une référence à cette valeur est stockée dans l'espace des noms " +"locaux, en utilisant le nom de la clause :keyword:`!as` si elle est " +"présente, sinon en utilisant le nom de l'attribut." + +#: ../Doc/reference/simple_stmts.rst:788 +msgid "Examples::" +msgstr "Exemples ::" + +#: ../Doc/reference/simple_stmts.rst:798 +msgid "" +"If the list of identifiers is replaced by a star (``'*'``), all public names " +"defined in the module are bound in the local namespace for the scope where " +"the :keyword:`import` statement occurs." +msgstr "" +"Si la liste des noms est remplacée par une étoile (``'*'``), tous les noms " +"publics définis dans le module sont liés dans l'espace des noms locaux de la " +"portée où apparaît l'instruction :keyword:`import`." + +#: ../Doc/reference/simple_stmts.rst:804 +msgid "" +"The *public names* defined by a module are determined by checking the " +"module's namespace for a variable named ``__all__``; if defined, it must be " +"a sequence of strings which are names defined or imported by that module. " +"The names given in ``__all__`` are all considered public and are required to " +"exist. If ``__all__`` is not defined, the set of public names includes all " +"names found in the module's namespace which do not begin with an underscore " +"character (``'_'``). ``__all__`` should contain the entire public API. It " +"is intended to avoid accidentally exporting items that are not part of the " +"API (such as library modules which were imported and used within the module)." +msgstr "" +"Les *noms publics* définis par un module sont déterminés en cherchant dans " +"l'espace de nommage du module une variable nommée ``__all__`` ; Si elle est " +"définie, elle doit être une séquence de chaînes désignant les noms définis " +"ou importés par ce module. Les noms donnés dans ``__all__`` sont tous " +"considérés publics et doivent exister. Si ``__all__`` n'est pas définie, " +"l'ensemble des noms publics contient tous les noms trouvés dans l'espace des " +"noms du module qui ne commencent pas par un caractère souligné (``_``). " +"``__all__`` doit contenir toute l'API publique. Elle est destinée à éviter " +"l'exportation accidentelle d'éléments qui ne font pas partie de l'API (tels " +"que des modules de bibliothèques qui ont été importés et utilisés à " +"l'intérieur du module)." + +#: ../Doc/reference/simple_stmts.rst:814 +msgid "" +"The wild card form of import --- ``from module import *`` --- is only " +"allowed at the module level. Attempting to use it in class or function " +"definitions will raise a :exc:`SyntaxError`." +msgstr "" +"La forme d'\\ *import* avec astérisque --- ``from module import *`` --- est " +"autorisée seulement au niveau du module. Si vous essayez de l'utiliser dans " +"une définition de classe ou de fonction, cela lève une :exc:`SyntaxError`." + +#: ../Doc/reference/simple_stmts.rst:821 +msgid "" +"When specifying what module to import you do not have to specify the " +"absolute name of the module. When a module or package is contained within " +"another package it is possible to make a relative import within the same top " +"package without having to mention the package name. By using leading dots in " +"the specified module or package after :keyword:`from` you can specify how " +"high to traverse up the current package hierarchy without specifying exact " +"names. One leading dot means the current package where the module making the " +"import exists. Two dots means up one package level. Three dots is up two " +"levels, etc. So if you execute ``from . import mod`` from a module in the " +"``pkg`` package then you will end up importing ``pkg.mod``. If you execute " +"``from ..subpkg2 import mod`` from within ``pkg.subpkg1`` you will import " +"``pkg.subpkg2.mod``. The specification for relative imports is contained in " +"the :ref:`relativeimports` section." +msgstr "" +"Quand vous spécifiez les modules à importer, vous n'avez pas besoin de " +"spécifier les noms absolus des modules. Quand un module ou un paquet est " +"contenu dans un autre paquet, il est possible d'effectuer une importation " +"relative à l'intérieur du même paquet de plus haut niveau sans avoir à " +"mentionner le nom du paquet. En utilisant des points en entête du module ou " +"du paquet spécifié après :keyword:`from`, vous pouvez spécifier combien de " +"niveaux vous souhaitez remonter dans la hiérarchie du paquet courant sans " +"spécifier de nom exact. Un seul point en tête signifie le paquet courant où " +"se situe le module qui effectue l'importation. Deux points signifient de " +"remonter d'un niveau. Trois points, remonter de deux niveaux et ainsi de " +"suite. Ainsi, si vous exécutez ``from . import mod`` dans un module du " +"paquet ``pkg``, vous importez finalement ``pkg.mod``. Et si vous exécutez " +"``from ..souspkg2 import mod`` depuis ``pkg.souspkg1``, vous importez " +"finalement ``pkg.souspkg2.mod``. La spécification des importations relatives " +"se situe dans la section :ref:`relativeimports`." + +#: ../Doc/reference/simple_stmts.rst:835 +msgid "" +":func:`importlib.import_module` is provided to support applications that " +"determine dynamically the modules to be loaded." +msgstr "" +":func:`importlib.import_module` est fournie pour gérer les applications qui " +"déterminent dynamiquement les modules à charger." + +#: ../Doc/reference/simple_stmts.rst:842 +msgid "Future statements" +msgstr "L'instruction future" + +#: ../Doc/reference/simple_stmts.rst:848 +msgid "" +"A :dfn:`future statement` is a directive to the compiler that a particular " +"module should be compiled using syntax or semantics that will be available " +"in a specified future release of Python where the feature becomes standard." +msgstr "" +"Une :dfn:`instruction future` est une directive à l'attention du compilateur " +"afin qu'un module particulier soit compilé en utilisant une syntaxe ou une " +"sémantique qui sera disponible dans une future version de Python où cette " +"fonctionnalité est devenue un standard." + +#: ../Doc/reference/simple_stmts.rst:852 +msgid "" +"The future statement is intended to ease migration to future versions of " +"Python that introduce incompatible changes to the language. It allows use " +"of the new features on a per-module basis before the release in which the " +"feature becomes standard." +msgstr "" +"L'instruction *future* a vocation à faciliter les migrations vers les " +"futures versions de Python qui introduisent des changements incompatibles au " +"langage. Cela permet l'utilisation de nouvelles fonctionnalités module par " +"module avant qu'une version n'officialise cette fonctionnalité comme un " +"standard." + +#: ../Doc/reference/simple_stmts.rst:864 +msgid "" +"A future statement must appear near the top of the module. The only lines " +"that can appear before a future statement are:" +msgstr "" +"Une instruction *future* doit apparaître en haut du module. Les seules " +"lignes autorisées avant une instruction *future* sont :" + +#: ../Doc/reference/simple_stmts.rst:867 +msgid "the module docstring (if any)," +msgstr "la chaîne de documentation du module (si elle existe)," + +#: ../Doc/reference/simple_stmts.rst:868 +msgid "comments," +msgstr "des commentaires," + +#: ../Doc/reference/simple_stmts.rst:869 +msgid "blank lines, and" +msgstr "des lignes vides et" + +#: ../Doc/reference/simple_stmts.rst:870 +msgid "other future statements." +msgstr "d'autres instructions *future*." + +#: ../Doc/reference/simple_stmts.rst:872 +msgid "" +"The only feature in Python 3.7 that requires using the future statement is " +"``annotations``." +msgstr "" +"La seule fonctionnalité dans Python 3.7 qui nécessite l'utilisation de " +"l'instruction `future` est ``annotations``." + +#: ../Doc/reference/simple_stmts.rst:875 +msgid "" +"All historical features enabled by the future statement are still recognized " +"by Python 3. The list includes ``absolute_import``, ``division``, " +"``generators``, ``generator_stop``, ``unicode_literals``, " +"``print_function``, ``nested_scopes`` and ``with_statement``. They are all " +"redundant because they are always enabled, and only kept for backwards " +"compatibility." +msgstr "" +"Toutes les fonctionnalités (*feature* dans la grammaire ci-dessus) " +"autorisées par l'instruction `future` sont toujours reconnues par Python 3. " +"Cette liste comprend ``absolute_import``, ``division``, ``generators``, " +"``generator_stop``, ``unicode_literals``, ``print_function``, " +"``nested_scopes`` et ``with_statement``. Elles sont toutes redondantes car " +"elles sont de toute manière activées ; elles ne sont conservées que par " +"souci de compatibilité descendante." + +#: ../Doc/reference/simple_stmts.rst:882 +msgid "" +"A future statement is recognized and treated specially at compile time: " +"Changes to the semantics of core constructs are often implemented by " +"generating different code. It may even be the case that a new feature " +"introduces new incompatible syntax (such as a new reserved word), in which " +"case the compiler may need to parse the module differently. Such decisions " +"cannot be pushed off until runtime." +msgstr "" +"Une instruction *future* est reconnue et traitée spécialement au moment de " +"la compilation : les modifications à la sémantique des constructions de base " +"sont souvent implémentées en générant un code différent. Il peut même " +"arriver qu'une nouvelle fonctionnalité ait une syntaxe incompatible (tel " +"qu'un nouveau mot réservé) ; dans ce cas, le compilateur a besoin d'analyser " +"le module de manière différente. De telles décisions ne peuvent pas être " +"différées au moment de l'exécution." + +#: ../Doc/reference/simple_stmts.rst:889 +msgid "" +"For any given release, the compiler knows which feature names have been " +"defined, and raises a compile-time error if a future statement contains a " +"feature not known to it." +msgstr "" +"Pour une version donnée, le compilateur sait quelles fonctionnalités ont été " +"définies et lève une erreur à la compilation si une instruction *future* " +"contient une fonctionnalité qui lui est inconnue." + +#: ../Doc/reference/simple_stmts.rst:893 +msgid "" +"The direct runtime semantics are the same as for any import statement: there " +"is a standard module :mod:`__future__`, described later, and it will be " +"imported in the usual way at the time the future statement is executed." +msgstr "" +"La sémantique à l'exécution est la même que pour toute autre instruction " +"d'importation : il existe un module standard :mod:`__future__`, décrit plus " +"loin, qui est importé comme les autres au moment où l'instruction *future* " +"est exécutée." + +#: ../Doc/reference/simple_stmts.rst:897 +msgid "" +"The interesting runtime semantics depend on the specific feature enabled by " +"the future statement." +msgstr "" +"La sémantique particulière à l'exécution dépend des fonctionnalités " +"apportées par l'instruction *future*." + +#: ../Doc/reference/simple_stmts.rst:900 +msgid "Note that there is nothing special about the statement::" +msgstr "Notez que l'instruction suivante est tout à fait normale ::" + +#: ../Doc/reference/simple_stmts.rst:904 +msgid "" +"That is not a future statement; it's an ordinary import statement with no " +"special semantics or syntax restrictions." +msgstr "" +"Ce n'est pas une instruction *future* ; c'est une instruction d'importation " +"ordinaire qui n'a aucune sémantique particulière ou restriction de syntaxe." + +#: ../Doc/reference/simple_stmts.rst:907 +msgid "" +"Code compiled by calls to the built-in functions :func:`exec` and :func:" +"`compile` that occur in a module :mod:`M` containing a future statement " +"will, by default, use the new syntax or semantics associated with the future " +"statement. This can be controlled by optional arguments to :func:`compile` " +"--- see the documentation of that function for details." +msgstr "" +"Le code compilé par des appels aux fonctions natives :func:`exec` et :func:" +"`compile` dans un module :mod:`M` comportant une instruction *future* " +"utilise, par défaut, la nouvelle syntaxe ou sémantique associée à " +"l'instruction *future*. Ceci peut être contrôle par des arguments optionnels " +"à :func:`compile` — voir la documentation de cette fonction pour les détails." + +#: ../Doc/reference/simple_stmts.rst:913 +msgid "" +"A future statement typed at an interactive interpreter prompt will take " +"effect for the rest of the interpreter session. If an interpreter is " +"started with the :option:`-i` option, is passed a script name to execute, " +"and the script includes a future statement, it will be in effect in the " +"interactive session started after the script is executed." +msgstr "" +"Une instruction *future* entrée à l'invite de l'interpréteur interactif est " +"effective pour le reste de la session de l'interpréteur. Si l'interpréteur " +"est démarré avec l'option :option:`-i`, qu'un nom de script est passé pour " +"être exécuté et que ce script contient une instruction *future*, elle est " +"effective pour la session interactive qui démarre après l'exécution du " +"script." + +#: ../Doc/reference/simple_stmts.rst:921 +msgid ":pep:`236` - Back to the __future__" +msgstr ":pep:`236` — retour vers le ``__future__``" + +#: ../Doc/reference/simple_stmts.rst:922 +msgid "The original proposal for the __future__ mechanism." +msgstr "La proposition originale pour le mécanisme de ``__future__``." + +#: ../Doc/reference/simple_stmts.rst:928 +msgid "The :keyword:`!global` statement" +msgstr "L'instruction :keyword:`!global`" + +#: ../Doc/reference/simple_stmts.rst:938 +msgid "" +"The :keyword:`global` statement is a declaration which holds for the entire " +"current code block. It means that the listed identifiers are to be " +"interpreted as globals. It would be impossible to assign to a global " +"variable without :keyword:`!global`, although free variables may refer to " +"globals without being declared global." +msgstr "" +"L'instruction :keyword:`global` est une déclaration qui couvre l'ensemble du " +"bloc de code courant. Elle signifie que les noms (*identifier* dans la " +"grammaire ci-dessus) listés doivent être interprétés comme globaux. Il est " +"impossible d'assigner une variable globale sans :keyword:`!global`, mais " +"rappelez-vous que les variables libres peuvent faire référence à des " +"variables globales sans avoir été déclarées en tant que telles." + +#: ../Doc/reference/simple_stmts.rst:944 +msgid "" +"Names listed in a :keyword:`global` statement must not be used in the same " +"code block textually preceding that :keyword:`!global` statement." +msgstr "" +"Les noms listés dans l'instruction :keyword:`global` ne doivent pas être " +"utilisés, dans le même bloc de code, avant l'instruction :keyword:`!global`." + +#: ../Doc/reference/simple_stmts.rst:947 +msgid "" +"Names listed in a :keyword:`global` statement must not be defined as formal " +"parameters or in a :keyword:`for` loop control target, :keyword:`class` " +"definition, function definition, :keyword:`import` statement, or variable " +"annotation." +msgstr "" +"Les noms listés dans l'instruction :keyword:`global` ne doivent pas être " +"définis en tant que paramètre formel, cible d'une boucle :keyword:`for`, " +"dans une définition de :keyword:`class`, de fonction, d'instruction :keyword:" +"`import` ou une annotation de variable." + +#: ../Doc/reference/simple_stmts.rst:954 +msgid "" +"The current implementation does not enforce some of these restrictions, but " +"programs should not abuse this freedom, as future implementations may " +"enforce them or silently change the meaning of the program." +msgstr "" +"L'implémentation actuelle ne vérifie pas toutes ces interdictions mais " +"n'abusez pas de cette liberté car les implémentations futures pourraient " +"faire la vérification ou modifier le comportement du programme sans vous " +"avertir." + +#: ../Doc/reference/simple_stmts.rst:963 +msgid "" +"**Programmer's note:** :keyword:`global` is a directive to the parser. It " +"applies only to code parsed at the same time as the :keyword:`!global` " +"statement. In particular, a :keyword:`!global` statement contained in a " +"string or code object supplied to the built-in :func:`exec` function does " +"not affect the code block *containing* the function call, and code contained " +"in such a string is unaffected by :keyword:`!global` statements in the code " +"containing the function call. The same applies to the :func:`eval` and :" +"func:`compile` functions." +msgstr "" +"**Note pour les programmeurs :** :keyword:`global` est une directive à " +"l'attention de l'analyseur syntaxique. Elle s'applique uniquement au code " +"analysé en même temps que l'instruction :keyword:`!global`. En particulier, " +"une instruction :keyword:`!global` contenue dans une chaîne ou un objet code " +"fourni à la fonction native :func:`exec` n'affecte pas le code *contenant* " +"cet appel et le code contenu dans un telle chaîne n'est pas affecté par une " +"instruction :keyword:`!global` placée dans le code contenant l'appel. Il en " +"est de même pour les fonctions :func:`eval` et :func:`compile`." + +#: ../Doc/reference/simple_stmts.rst:975 +msgid "The :keyword:`!nonlocal` statement" +msgstr "L'instruction :keyword:`!nonlocal`" + +#: ../Doc/reference/simple_stmts.rst:987 +msgid "" +"The :keyword:`nonlocal` statement causes the listed identifiers to refer to " +"previously bound variables in the nearest enclosing scope excluding globals. " +"This is important because the default behavior for binding is to search the " +"local namespace first. The statement allows encapsulated code to rebind " +"variables outside of the local scope besides the global (module) scope." +msgstr "" +"L'instruction :keyword:`nonlocal` fait que les noms listés font référence " +"aux variables liées précédemment, dans la portée la plus petite entourant " +"l'instruction, à l'exception des variables globales. C'est important car le " +"comportement par défaut pour les liaisons consiste à chercher d'abord dans " +"l'espace des noms locaux. Cette instruction permet à du code encapsulé de se " +"lier à des variables en dehors de la portée locale du code mais sans avoir " +"de portée globale (c'est-à-dire de niveau module)." + +#: ../Doc/reference/simple_stmts.rst:997 +msgid "" +"Names listed in a :keyword:`nonlocal` statement, unlike those listed in a :" +"keyword:`global` statement, must refer to pre-existing bindings in an " +"enclosing scope (the scope in which a new binding should be created cannot " +"be determined unambiguously)." +msgstr "" +"Les noms (*identifier* dans la grammaire ci-dessus) listés dans " +"l'instruction :keyword:`nonlocal`, au contraire de ceux listés dans une " +"instruction :keyword:`global`, doivent faire référence à des liaisons pré-" +"existantes dans les portées englobantes (en effet, la portée dans laquelle " +"devrait être créée la liaison ne peut pas être déterminée *a priori*)." + +#: ../Doc/reference/simple_stmts.rst:1002 +msgid "" +"Names listed in a :keyword:`nonlocal` statement must not collide with pre-" +"existing bindings in the local scope." +msgstr "" +"Les noms listés dans l'instruction :keyword:`nonlocal` ne doivent entrer en " +"collision avec des liaisons déjà établies dans la portée locale." + +#: ../Doc/reference/simple_stmts.rst:1007 +msgid ":pep:`3104` - Access to Names in Outer Scopes" +msgstr ":pep:`3104` -- Accès à des noms en dehors de la portée locale" + +#: ../Doc/reference/simple_stmts.rst:1008 +msgid "The specification for the :keyword:`nonlocal` statement." +msgstr "Les spécifications pour l'instruction :keyword:`nonlocal`." + +#~ msgid "" +#~ "If the target list is empty: The object must also be an empty iterable." +#~ msgstr "" +#~ "si la liste cible est vide : l'objet doit aussi être un itérable vide." + +#~ msgid "" +#~ "If the target list is a comma-separated list of targets, or a single " +#~ "target in square brackets: The object must be an iterable with the same " +#~ "number of items as there are targets in the target list, and the items " +#~ "are assigned, from left to right, to the corresponding targets." +#~ msgstr "" +#~ "Si la liste cible est une liste de cibles dont les éléments sont séparés " +#~ "par des virgules, ou une cible unique entourée par des crochets : l'objet " +#~ "doit être un itérable avec le même nombre d'éléments qu'il y a de cibles " +#~ "dans la liste cible ; les éléments sont alors assignés, de la gauche vers " +#~ "la droite, aux cibles correspondantes." + +#~ msgid "" +#~ ":pep:`526` - Variable and attribute annotation syntax :pep:`484` - Type " +#~ "hints" +#~ msgstr "" +#~ ":pep:`526` -- Syntaxe pour les annotations de variables et d'attributs, :" +#~ "pep:`484` -- Indications de types" diff --git a/reference/toplevel_components.po b/reference/toplevel_components.po new file mode 100644 index 000000000..e3ac130aa --- /dev/null +++ b/reference/toplevel_components.po @@ -0,0 +1,156 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2019-03-19 23:26+0100\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/reference/toplevel_components.rst:6 +msgid "Top-level components" +msgstr "Composants de plus haut niveau" + +#: ../Doc/reference/toplevel_components.rst:10 +msgid "" +"The Python interpreter can get its input from a number of sources: from a " +"script passed to it as standard input or as program argument, typed in " +"interactively, from a module source file, etc. This chapter gives the " +"syntax used in these cases." +msgstr "" +"L'entrée de l'interpréteur Python peut provenir d'un certain nombre de " +"sources : d'un script passé en entrée standard ou en argument de programme, " +"tapée de manière interactive, à partir d'un fichier source de module, etc. " +"Ce chapitre donne la syntaxe utilisée dans ces différents cas." + +#: ../Doc/reference/toplevel_components.rst:19 +msgid "Complete Python programs" +msgstr "Programmes Python complets" + +#: ../Doc/reference/toplevel_components.rst:28 +msgid "" +"While a language specification need not prescribe how the language " +"interpreter is invoked, it is useful to have a notion of a complete Python " +"program. A complete Python program is executed in a minimally initialized " +"environment: all built-in and standard modules are available, but none have " +"been initialized, except for :mod:`sys` (various system services), :mod:" +"`builtins` (built-in functions, exceptions and ``None``) and :mod:" +"`__main__`. The latter is used to provide the local and global namespace " +"for execution of the complete program." +msgstr "" +"Bien que les spécifications d'un langage n'ont pas à préciser comment " +"l'interpréteur du langage est invoqué, il est utile d'avoir des notions sur " +"ce qu'est un programme Python complet. Un programme Python complet est " +"exécuté dans un environnement dont l'initialisation est minimale : tous les " +"modules intégrés et standard sont disponibles mais aucun n'a été initialisé, " +"à l'exception de :mod:`sys` (divers services système), :mod:`builtins` " +"(fonctions natives, exceptions et ``None``) et :mod:`__main__`. Ce dernier " +"est utilisé pour avoir des espaces de nommage locaux et globaux pour " +"l'exécution du programme complet." + +#: ../Doc/reference/toplevel_components.rst:36 +msgid "" +"The syntax for a complete Python program is that for file input, described " +"in the next section." +msgstr "" +"La syntaxe d'un programme Python complet est celle d'un fichier d'entrée, " +"dont la description est donnée dans la section suivante." + +#: ../Doc/reference/toplevel_components.rst:43 +msgid "" +"The interpreter may also be invoked in interactive mode; in this case, it " +"does not read and execute a complete program but reads and executes one " +"statement (possibly compound) at a time. The initial environment is " +"identical to that of a complete program; each statement is executed in the " +"namespace of :mod:`__main__`." +msgstr "" +"L'interpréteur peut également être invoqué en mode interactif ; dans ce cas, " +"il ne lit et n'exécute pas un programme complet mais lit et exécute une " +"seule instruction (éventuellement composée) à la fois. L'environnement " +"initial est identique à celui d'un programme complet ; chaque instruction " +"est exécutée dans l'espace de nommage de :mod:`__main__`." + +#: ../Doc/reference/toplevel_components.rst:55 +msgid "" +"A complete program can be passed to the interpreter in three forms: with " +"the :option:`-c` *string* command line option, as a file passed as the first " +"command line argument, or as standard input. If the file or standard input " +"is a tty device, the interpreter enters interactive mode; otherwise, it " +"executes the file as a complete program." +msgstr "" +"Un programme complet peut être transmis à l'interpréteur sous trois formes : " +"avec l'option :option:`-c` *chaîne* en ligne de commande, avec un fichier " +"passé comme premier argument de ligne de commande ou comme entrée standard. " +"Si le fichier ou l'entrée standard est un périphérique tty, l'interpréteur " +"entre en mode interactif ; sinon, il exécute le fichier comme un programme " +"complet." + +#: ../Doc/reference/toplevel_components.rst:65 +msgid "File input" +msgstr "Fichier d'entrée" + +#: ../Doc/reference/toplevel_components.rst:67 +msgid "All input read from non-interactive files has the same form:" +msgstr "" +"Toutes les entrées lues à partir de fichiers non interactifs sont de la même " +"forme :" + +#: ../Doc/reference/toplevel_components.rst:72 +msgid "This syntax is used in the following situations:" +msgstr "Cette syntaxe est utilisée dans les situations suivantes :" + +#: ../Doc/reference/toplevel_components.rst:74 +msgid "when parsing a complete Python program (from a file or from a string);" +msgstr "" +"lors de l'analyse d'un programme Python complet (à partir d'un fichier ou " +"d'une chaîne de caractères) ;" + +#: ../Doc/reference/toplevel_components.rst:76 +msgid "when parsing a module;" +msgstr "lors de l'analyse d'un module ;" + +#: ../Doc/reference/toplevel_components.rst:78 +msgid "when parsing a string passed to the :func:`exec` function;" +msgstr "" +"lors de l'analyse d'une chaîne de caractères passée à la fonction :func:" +"`exec`." + +#: ../Doc/reference/toplevel_components.rst:84 +msgid "Interactive input" +msgstr "Entrée interactive" + +#: ../Doc/reference/toplevel_components.rst:86 +msgid "Input in interactive mode is parsed using the following grammar:" +msgstr "" +"L'entrée en mode interactif est analysée à l'aide de la grammaire suivante :" + +#: ../Doc/reference/toplevel_components.rst:91 +msgid "" +"Note that a (top-level) compound statement must be followed by a blank line " +"in interactive mode; this is needed to help the parser detect the end of the " +"input." +msgstr "" +"Notez qu'une instruction composée (de niveau supérieur) doit être suivie " +"d'une ligne blanche en mode interactif ; c'est nécessaire pour aider " +"l'analyseur à détecter la fin de l'entrée." + +#: ../Doc/reference/toplevel_components.rst:98 +msgid "Expression input" +msgstr "Entrée d'expression" + +#: ../Doc/reference/toplevel_components.rst:103 +msgid "" +":func:`eval` is used for expression input. It ignores leading whitespace. " +"The string argument to :func:`eval` must have the following form:" +msgstr "" +":func:`eval` est utilisée pour évaluer les expressions entrées. Elle ignore " +"les espaces en tête. L'argument de :func:`eval`, de type chaîne de " +"caractères, doit être de la forme suivante :" diff --git a/sphinx.po b/sphinx.po new file mode 100644 index 000000000..5a7d0b9b7 --- /dev/null +++ b/sphinx.po @@ -0,0 +1,313 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"PO-Revision-Date: 2019-08-16 22:54+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/tools/templates/customsourcelink.html:3 +msgid "This Page" +msgstr "Cette page" + +#: ../Doc/tools/templates/customsourcelink.html:5 +msgid "Report a Bug" +msgstr "Signalement de bogue" + +#: ../Doc/tools/templates/customsourcelink.html:8 +msgid "Show Source" +msgstr "Voir la source" + +#: ../Doc/tools/templates/dummy.html:6 +msgid "CPython implementation detail:" +msgstr "Particularité de l'implémentation CPython :" + +#: ../Doc/tools/templates/dummy.html:7 +msgid "" +"Deprecated since version {deprecated}, will be removed in version {removed}" +msgstr "" +"Obsolète depuis la version {deprecated}, sera retirée dans la version " +"{removed}" + +#: ../Doc/tools/templates/indexcontent.html:8 +msgid "Welcome! This is the documentation for Python %(release)s." +msgstr "Bienvenue sur la documentation de Python %(release)s." + +#: ../Doc/tools/templates/indexcontent.html:10 +msgid "Parts of the documentation:" +msgstr "La documentation :" + +#: ../Doc/tools/templates/indexcontent.html:13 +msgid "What's new in Python %(version)s?" +msgstr "Les nouveautés de Python %(version)s" + +#: ../Doc/tools/templates/indexcontent.html:14 +msgid "" +"or all \"What's new\" documents since 2.0" +msgstr "" +"ou toutes les nouveautés depuis la 2.0" + +#: ../Doc/tools/templates/indexcontent.html:15 +msgid "Tutorial" +msgstr "Tutoriel" + +#: ../Doc/tools/templates/indexcontent.html:16 +msgid "start here" +msgstr "démarrez ici" + +#: ../Doc/tools/templates/indexcontent.html:17 +msgid "Library Reference" +msgstr "Référence de la bibliothèque" + +#: ../Doc/tools/templates/indexcontent.html:18 +msgid "keep this under your pillow" +msgstr "gardez-ça sous votre oreiller" + +#: ../Doc/tools/templates/indexcontent.html:19 +msgid "Language Reference" +msgstr "Référence du langage" + +#: ../Doc/tools/templates/indexcontent.html:20 +msgid "describes syntax and language elements" +msgstr "décrit la syntaxe et les éléments du langage" + +#: ../Doc/tools/templates/indexcontent.html:21 +msgid "Python Setup and Usage" +msgstr "Installation et utilisation de Python" + +#: ../Doc/tools/templates/indexcontent.html:22 +msgid "how to use Python on different platforms" +msgstr "utilisation de Python sur différentes plateformes" + +#: ../Doc/tools/templates/indexcontent.html:23 +msgid "Python HOWTOs" +msgstr "Les HOWTOs de Python" + +#: ../Doc/tools/templates/indexcontent.html:24 +msgid "in-depth documents on specific topics" +msgstr "documents explorant certains sujets en profondeur" + +#: ../Doc/tools/templates/indexcontent.html:26 +msgid "Installing Python Modules" +msgstr "Installation de modules Python" + +#: ../Doc/tools/templates/indexcontent.html:27 +msgid "installing from the Python Package Index & other sources" +msgstr "installation depuis le *Python Package Index* ou d'autres sources" + +#: ../Doc/tools/templates/indexcontent.html:28 +msgid "Distributing Python Modules" +msgstr "Distribuer des modules Python" + +#: ../Doc/tools/templates/indexcontent.html:29 +msgid "publishing modules for installation by others" +msgstr "publier des modules pour que d'autres puissent les installer" + +#: ../Doc/tools/templates/indexcontent.html:30 +msgid "Extending and Embedding" +msgstr "Amélioration et intégration" + +#: ../Doc/tools/templates/indexcontent.html:31 +msgid "tutorial for C/C++ programmers" +msgstr "tutoriel pour les développeurs C/C++" + +#: ../Doc/tools/templates/indexcontent.html:32 +msgid "Python/C API" +msgstr "Python/C API" + +#: ../Doc/tools/templates/indexcontent.html:33 +msgid "reference for C/C++ programmers" +msgstr "référence pour les développeurs C/C++" + +#: ../Doc/tools/templates/indexcontent.html:34 +msgid "FAQs" +msgstr "FAQs" + +#: ../Doc/tools/templates/indexcontent.html:35 +msgid "frequently asked questions (with answers!)" +msgstr "foire aux questions (avec les réponses !)" + +#: ../Doc/tools/templates/indexcontent.html:39 +msgid "Indices and tables:" +msgstr "Index et tables des matières :" + +#: ../Doc/tools/templates/indexcontent.html:42 +msgid "Global Module Index" +msgstr "Index global des modules" + +#: ../Doc/tools/templates/indexcontent.html:43 +msgid "quick access to all modules" +msgstr "accès rapide à tous les modules" + +#: ../Doc/tools/templates/indexcontent.html:44 +msgid "General Index" +msgstr "Index général" + +#: ../Doc/tools/templates/indexcontent.html:45 +msgid "all functions, classes, terms" +msgstr "toutes les fonctions, classes et termes" + +#: ../Doc/tools/templates/indexcontent.html:46 +msgid "Glossary" +msgstr "Glossaire" + +#: ../Doc/tools/templates/indexcontent.html:47 +msgid "the most important terms explained" +msgstr "explication des mots les plus importants" + +#: ../Doc/tools/templates/indexcontent.html:49 +msgid "Search page" +msgstr "Page de recherche" + +#: ../Doc/tools/templates/indexcontent.html:50 +msgid "search this documentation" +msgstr "recherche dans cette documentation" + +#: ../Doc/tools/templates/indexcontent.html:51 +msgid "Complete Table of Contents" +msgstr "Table des matières complète" + +#: ../Doc/tools/templates/indexcontent.html:52 +msgid "lists all sections and subsections" +msgstr "liste complète des sections et sous-sections" + +#: ../Doc/tools/templates/indexcontent.html:56 +msgid "Meta information:" +msgstr "Méta informations :" + +#: ../Doc/tools/templates/indexcontent.html:59 +msgid "Reporting bugs" +msgstr "Signalement de bogue" + +#: ../Doc/tools/templates/indexcontent.html:60 +msgid "About the documentation" +msgstr "À propos de la documentation" + +#: ../Doc/tools/templates/indexcontent.html:62 +msgid "History and License of Python" +msgstr "Histoire et licence de Python" + +#: ../Doc/tools/templates/indexcontent.html:63 +#: ../Doc/tools/templates/layout.html:127 +msgid "Copyright" +msgstr "Copyright" + +#: ../Doc/tools/templates/indexsidebar.html:1 +msgid "Download" +msgstr "Téléchargement" + +#: ../Doc/tools/templates/indexsidebar.html:2 +msgid "Download these documents" +msgstr "Téléchargement de ces documentations" + +#: ../Doc/tools/templates/indexsidebar.html:3 +msgid "Docs by version" +msgstr "Docs par version" + +#: ../Doc/tools/templates/indexsidebar.html:5 +msgid "Python 3.9 (in development)" +msgstr "Python 3.9 (en développement)" + +#: ../Doc/tools/templates/indexsidebar.html:6 +msgid "Python 3.8 (pre-release)" +msgstr "Python 3.8 (pré-lancement)" + +#: ../Doc/tools/templates/indexsidebar.html:7 +msgid "Python 3.7 (stable)" +msgstr "Python 3.7 (stable)" + +#: ../Doc/tools/templates/indexsidebar.html:8 +msgid "Python 3.6 (security-fixes)" +msgstr "Python 3.6 (correctifs de sécurité)" + +#: ../Doc/tools/templates/indexsidebar.html:9 +msgid "Python 3.5 (security-fixes)" +msgstr "Python 3.5 (correctifs de sécurité)" + +#: ../Doc/tools/templates/indexsidebar.html:10 +msgid "Python 2.7 (stable)" +msgstr "Python 2.7 (stable)" + +#: ../Doc/tools/templates/indexsidebar.html:11 +msgid "All versions" +msgstr "Toutes les versions" + +#: ../Doc/tools/templates/indexsidebar.html:14 +msgid "Other resources" +msgstr "Autres ressources" + +#: ../Doc/tools/templates/indexsidebar.html:17 +msgid "PEP Index" +msgstr "Index des PEP" + +#: ../Doc/tools/templates/indexsidebar.html:18 +msgid "Beginner's Guide" +msgstr "Guide du débutant" + +#: ../Doc/tools/templates/indexsidebar.html:19 +msgid "Book List" +msgstr "Liste de livres" + +#: ../Doc/tools/templates/indexsidebar.html:20 +msgid "Audio/Visual Talks" +msgstr "Documents multimédia" + +#: ../Doc/tools/templates/layout.html:6 +msgid "" +"This document is for an old version of Python that is no longer supported.\n" +" You should upgrade, and read the " +msgstr "" +"Ce document est relatif à une vieille version de Python qui n'est plus " +"soutenue.\n" +" Mettez à jour votre version et lisez " + +#: ../Doc/tools/templates/layout.html:8 +msgid " Python documentation for the current stable release" +msgstr "Bienvenue sur la documentation de la version stable actuelle de Python" + +#: ../Doc/tools/templates/layout.html:21 +msgid "Documentation " +msgstr "Documentation" + +#: ../Doc/tools/templates/layout.html:32 +msgid "Quick search" +msgstr "Recherche rapide" + +#: ../Doc/tools/templates/layout.html:33 +msgid "Go" +msgstr "C'est parti" + +#: ../Doc/tools/templates/layout.html:129 +msgid "The Python Software Foundation is a non-profit corporation." +msgstr "La Python Software Foundation est une organisation à but non lucratif." + +#: ../Doc/tools/templates/layout.html:130 +msgid "Please donate." +msgstr "Les dons sont bienvenus." + +#: ../Doc/tools/templates/layout.html:132 +msgid "Last updated on %(last_updated)s." +msgstr "Dernière mise-à-jour le %(last_updated)s." + +#: ../Doc/tools/templates/layout.html:133 +msgid "Found a bug?" +msgstr "Vous avez trouvé un bogue ?" + +#: ../Doc/tools/templates/layout.html:135 +msgid "" +"Created using Sphinx " +"%(sphinx_version)s." +msgstr "" +"Créé via Sphinx %(sphinx_version)s." + +#~ msgid "Python 3.6 (stable)" +#~ msgstr "Python 3.6 (stable)" diff --git a/tutorial/appendix.po b/tutorial/appendix.po new file mode 100644 index 000000000..0e1cd4fa4 --- /dev/null +++ b/tutorial/appendix.po @@ -0,0 +1,215 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2019-03-19 23:11+0100\n" +"Last-Translator: Christophe Nanteuil \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/tutorial/appendix.rst:5 +msgid "Appendix" +msgstr "Annexe" + +#: ../Doc/tutorial/appendix.rst:11 +msgid "Interactive Mode" +msgstr "Mode interactif" + +#: ../Doc/tutorial/appendix.rst:16 +msgid "Error Handling" +msgstr "Gestion des erreurs" + +#: ../Doc/tutorial/appendix.rst:18 +msgid "" +"When an error occurs, the interpreter prints an error message and a stack " +"trace. In interactive mode, it then returns to the primary prompt; when " +"input came from a file, it exits with a nonzero exit status after printing " +"the stack trace. (Exceptions handled by an :keyword:`except` clause in a :" +"keyword:`try` statement are not errors in this context.) Some errors are " +"unconditionally fatal and cause an exit with a nonzero exit; this applies to " +"internal inconsistencies and some cases of running out of memory. All error " +"messages are written to the standard error stream; normal output from " +"executed commands is written to standard output." +msgstr "" +"Quand une erreur se produit, l'interpréteur affiche un message d'erreur et " +"la trace d'appels. En mode interactif, il revient à l'invite de commande " +"primaire ; si l'entrée provient d'un fichier, l'interpréteur se termine avec " +"un code de sortie non nul après avoir affiché la trace d'appels (les " +"exceptions gérées par une clause :keyword:`except` dans une instruction :" +"keyword:`try` ne sont pas considérées comme des erreurs dans ce contexte). " +"Certaines erreurs sont inconditionnellement fatales et provoquent la fin du " +"programme avec un code de sortie non nul ; les incohérences internes et, " +"dans certains cas, les pénuries de mémoire sont traitées de la sorte. Tous " +"les messages d'erreur sont écrits sur le flux d'erreur standard ; " +"l'affichage normal des commandes exécutées est écrit sur la sortie standard." + +#: ../Doc/tutorial/appendix.rst:28 +msgid "" +"Typing the interrupt character (usually :kbd:`Control-C` or :kbd:`Delete`) " +"to the primary or secondary prompt cancels the input and returns to the " +"primary prompt. [#]_ Typing an interrupt while a command is executing raises " +"the :exc:`KeyboardInterrupt` exception, which may be handled by a :keyword:" +"`try` statement." +msgstr "" +"Taper le caractère d'interruption (généralement :kbd:`Ctrl+C` ou :kbd:" +"`Supprimer`) au niveau de l'invite de commande primaire annule l'entrée et " +"revient à l'invite [#]_. Saisir une interruption tandis qu'une commande " +"s'exécute lève une exception :exc:`KeyboardInterrupt` qui peut être gérée " +"par une instruction :keyword:`try`." + +#: ../Doc/tutorial/appendix.rst:38 +msgid "Executable Python Scripts" +msgstr "Scripts Python exécutables" + +#: ../Doc/tutorial/appendix.rst:40 +msgid "" +"On BSD'ish Unix systems, Python scripts can be made directly executable, " +"like shell scripts, by putting the line ::" +msgstr "" +"Sur les systèmes Unix, un script Python peut être rendu directement " +"exécutable, comme un script *shell*, en ajoutant la ligne ::" + +#: ../Doc/tutorial/appendix.rst:45 +msgid "" +"(assuming that the interpreter is on the user's :envvar:`PATH`) at the " +"beginning of the script and giving the file an executable mode. The ``#!`` " +"must be the first two characters of the file. On some platforms, this first " +"line must end with a Unix-style line ending (``'\\n'``), not a Windows " +"(``'\\r\\n'``) line ending. Note that the hash, or pound, character, " +"``'#'``, is used to start a comment in Python." +msgstr "" +"(en supposant que l'interpréteur est dans le :envvar:`PATH` de " +"l'utilisateur) au début du script et en rendant le fichier exécutable. " +"``'#!'`` doivent être les deux premiers caractères du fichier. Sur certaines " +"plateformes, cette première ligne doit finir avec une fin de ligne de type " +"Unix (``'\\n'``) et pas de type Windows (``'\\r\\n'``). Notez que le " +"caractère croisillon, ``'#'``, est utilisé pour initier un commentaire en " +"Python." + +#: ../Doc/tutorial/appendix.rst:52 +msgid "" +"The script can be given an executable mode, or permission, using the :" +"program:`chmod` command." +msgstr "" +"Un script peut être rendu exécutable en utilisant la commande :program:" +"`chmod`." + +#: ../Doc/tutorial/appendix.rst:59 +msgid "" +"On Windows systems, there is no notion of an \"executable mode\". The " +"Python installer automatically associates ``.py`` files with ``python.exe`` " +"so that a double-click on a Python file will run it as a script. The " +"extension can also be ``.pyw``, in that case, the console window that " +"normally appears is suppressed." +msgstr "" +"Sur les systèmes Windows il n'y a pas de \"mode exécutable\". L'installateur " +"Python associe automatiquement les fichiers en ``.py`` avec ``python.exe`` " +"de telle sorte qu'un double clic sur un fichier Python le lance comme un " +"script. L'extension peut aussi être ``.pyw``. Dans ce cas, la console " +"n'apparait pas." + +#: ../Doc/tutorial/appendix.rst:69 +msgid "The Interactive Startup File" +msgstr "Configuration du mode interactif" + +#: ../Doc/tutorial/appendix.rst:71 +msgid "" +"When you use Python interactively, it is frequently handy to have some " +"standard commands executed every time the interpreter is started. You can " +"do this by setting an environment variable named :envvar:`PYTHONSTARTUP` to " +"the name of a file containing your start-up commands. This is similar to " +"the :file:`.profile` feature of the Unix shells." +msgstr "" +"En mode interactif, il peut être pratique de faire exécuter quelques " +"commandes au lancement de l’interpréteur. Configurez la variable " +"d'environnement :envvar:`PYTHONSTARTUP` avec le nom d'un fichier contenant " +"les instructions à exécuter, à la même manière du :file:`.profile` pour un " +"*shell* Unix." + +#: ../Doc/tutorial/appendix.rst:77 +msgid "" +"This file is only read in interactive sessions, not when Python reads " +"commands from a script, and not when :file:`/dev/tty` is given as the " +"explicit source of commands (which otherwise behaves like an interactive " +"session). It is executed in the same namespace where interactive commands " +"are executed, so that objects that it defines or imports can be used without " +"qualification in the interactive session. You can also change the prompts " +"``sys.ps1`` and ``sys.ps2`` in this file." +msgstr "" +"Ce fichier n'est lu qu'en mode interactif, pas quand Python lit les " +"instructions depuis un fichier, ni quand :file:`/dev/tty` est donné " +"explicitement comme fichier source (pour tout le reste, Python se comporte " +"alors comme dans une session interactive). Les instructions de ce fichier " +"sont exécutées dans le même espace de nommage que vos commandes, donc les " +"objets définis et modules importés peuvent être utilisés directement dans la " +"session interactive. Dans ce fichier, il est aussi possible de changer les " +"invites de commande ``sys.ps1`` et ``sys.ps2``." + +#: ../Doc/tutorial/appendix.rst:85 +msgid "" +"If you want to read an additional start-up file from the current directory, " +"you can program this in the global start-up file using code like ``if os." +"path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())``. If you " +"want to use the startup file in a script, you must do this explicitly in the " +"script::" +msgstr "" +"Si vous voulez exécuter d'autres fichiers du dossier courant au démarrage, " +"vous pouvez le programmer dans le fichier de démarrage global, par exemple " +"avec le code suivant : ``if os.path.isfile('.pythonrc.py'): exec(open('." +"pythonrc.py').read())``. Et si vous voulez exécuter le fichier de démarrage " +"depuis un script, vous devez le faire explicitement dans le script ::" + +#: ../Doc/tutorial/appendix.rst:102 +msgid "The Customization Modules" +msgstr "Modules de personnalisation" + +#: ../Doc/tutorial/appendix.rst:104 +msgid "" +"Python provides two hooks to let you customize it: :mod:`sitecustomize` and :" +"mod:`usercustomize`. To see how it works, you need first to find the " +"location of your user site-packages directory. Start Python and run this " +"code::" +msgstr "" +"Python peut être personnalisé *via* les modules :mod:`sitecustomize` et :mod:" +"`usercustomize`. Pour découvrir comment ils fonctionnent, vous devez d'abord " +"trouver l'emplacement de votre dossier « site-packages » utilisateur. " +"Démarrez Python et exécutez ce code ::" + +#: ../Doc/tutorial/appendix.rst:112 +msgid "" +"Now you can create a file named :file:`usercustomize.py` in that directory " +"and put anything you want in it. It will affect every invocation of Python, " +"unless it is started with the :option:`-s` option to disable the automatic " +"import." +msgstr "" +"Vous pouvez maintenant y créer un fichier :file:`usercustomize.py` et y " +"écrire ce que vous voulez. Il est toujours pris en compte par Python, peu " +"importe le mode, sauf lorsque vous démarrez avec l'option :option:`-s` qui " +"désactive l'importation automatique." + +#: ../Doc/tutorial/appendix.rst:116 +msgid "" +":mod:`sitecustomize` works in the same way, but is typically created by an " +"administrator of the computer in the global site-packages directory, and is " +"imported before :mod:`usercustomize`. See the documentation of the :mod:" +"`site` module for more details." +msgstr "" +":mod:`sitecustomize` fonctionne de la même manière mais est généralement " +"créé par un administrateur et stocké dans le dossier site-packages global. " +"Il est importé avant :mod:`usercustomize`. Pour plus de détails, consultez " +"la documentation de :mod:`site`." + +#: ../Doc/tutorial/appendix.rst:123 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/tutorial/appendix.rst:124 +msgid "A problem with the GNU Readline package may prevent this." +msgstr "Un problème avec GNU *Readline* peut l'en empêcher." diff --git a/tutorial/appetite.po b/tutorial/appetite.po new file mode 100644 index 000000000..9b66c2d93 --- /dev/null +++ b/tutorial/appetite.po @@ -0,0 +1,226 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-08 09:58+0100\n" +"PO-Revision-Date: 2019-06-18 22:05+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/tutorial/appetite.rst:5 +msgid "Whetting Your Appetite" +msgstr "Mise en bouche" + +#: ../Doc/tutorial/appetite.rst:7 +msgid "" +"If you do much work on computers, eventually you find that there's some task " +"you'd like to automate. For example, you may wish to perform a search-and-" +"replace over a large number of text files, or rename and rearrange a bunch " +"of photo files in a complicated way. Perhaps you'd like to write a small " +"custom database, or a specialized GUI application, or a simple game." +msgstr "" +"Lorsqu'on travaille beaucoup sur ordinateur, on finit souvent par vouloir " +"automatiser certaines tâches : par exemple, effectuer une recherche et un " +"remplacement sur un grand nombre de fichiers de texte ; ou renommer et " +"réorganiser des photos d'une manière un peu compliquée. Pour vous, ce peut " +"être créer une petite base de données, une application graphique ou un " +"simple jeu." + +#: ../Doc/tutorial/appetite.rst:13 +msgid "" +"If you're a professional software developer, you may have to work with " +"several C/C++/Java libraries but find the usual write/compile/test/re-" +"compile cycle is too slow. Perhaps you're writing a test suite for such a " +"library and find writing the testing code a tedious task. Or maybe you've " +"written a program that could use an extension language, and you don't want " +"to design and implement a whole new language for your application." +msgstr "" +"Quand on est un développeur professionnel, le besoin peut se faire sentir de " +"travailler avec des bibliothèques C/C++/Java, mais on trouve que le cycle " +"habituel écriture/compilation/test/compilation est trop lourd. Vous écrivez " +"peut-être une suite de tests pour une telle bibliothèque et vous trouvez que " +"l'écriture du code de test est pénible. Ou bien vous avez écrit un logiciel " +"qui a besoin d'être extensible grâce à un langage de script, mais vous ne " +"voulez pas concevoir ni implémenter un nouveau langage pour votre " +"application." + +#: ../Doc/tutorial/appetite.rst:20 +msgid "Python is just the language for you." +msgstr "Python est le langage parfait pour vous." + +#: ../Doc/tutorial/appetite.rst:22 +msgid "" +"You could write a Unix shell script or Windows batch files for some of these " +"tasks, but shell scripts are best at moving around files and changing text " +"data, not well-suited for GUI applications or games. You could write a C/C++/" +"Java program, but it can take a lot of development time to get even a first-" +"draft program. Python is simpler to use, available on Windows, Mac OS X, " +"and Unix operating systems, and will help you get the job done more quickly." +msgstr "" +"Vous pouvez écrire un script shell Unix ou des fichiers batch Windows pour " +"certaines de ces tâches. Les scripts shell sont appropriés pour déplacer des " +"fichiers et modifier des données textuelles, mais pas pour une application " +"ayant une interface graphique ni pour des jeux. Vous pouvez écrire un " +"programme en C/C++/Java, mais cela peut prendre beaucoup de temps, ne serait-" +"ce que pour avoir une première maquette. Python est plus facile à utiliser " +"et il vous aidera à terminer plus rapidement votre travail, que ce soit sous " +"Windows, Mac OS X ou Unix." + +#: ../Doc/tutorial/appetite.rst:29 +msgid "" +"Python is simple to use, but it is a real programming language, offering " +"much more structure and support for large programs than shell scripts or " +"batch files can offer. On the other hand, Python also offers much more " +"error checking than C, and, being a *very-high-level language*, it has high-" +"level data types built in, such as flexible arrays and dictionaries. " +"Because of its more general data types Python is applicable to a much larger " +"problem domain than Awk or even Perl, yet many things are at least as easy " +"in Python as in those languages." +msgstr "" +"Python reste facile à utiliser, mais c'est un vrai langage de " +"programmation : il offre une bien meilleure structure et prise en charge des " +"grands programmes que les scripts shell ou les fichiers batch. Par ailleurs, " +"Python permet de beaucoup mieux vérifier les erreurs que le langage C et, en " +"tant que *langage de très haut niveau*, il possède nativement des types de " +"données très évolués tels que les tableaux de taille variable ou les " +"dictionnaires. Grâce à ses types de données plus universels, Python est " +"utilisable pour des domaines beaucoup plus variés que ne peuvent l'être " +"*Awk* ou même Perl. Pourtant, vous pouvez faire de nombreuses choses au " +"moins aussi facilement en Python que dans ces langages." + +#: ../Doc/tutorial/appetite.rst:37 +msgid "" +"Python allows you to split your program into modules that can be reused in " +"other Python programs. It comes with a large collection of standard modules " +"that you can use as the basis of your programs --- or as examples to start " +"learning to program in Python. Some of these modules provide things like " +"file I/O, system calls, sockets, and even interfaces to graphical user " +"interface toolkits like Tk." +msgstr "" +"Python vous permet de découper votre programme en modules qui peuvent être " +"réutilisés dans d'autres programmes Python. Il est fourni avec une grande " +"variété de modules standards que vous pouvez utiliser comme base de vos " +"programmes, ou comme exemples pour apprendre à programmer. Certains de ces " +"modules donnent accès aux entrées/sorties, aux appels système, aux " +"connecteurs réseaux et même aux outils comme Tk pour créer des interfaces " +"graphiques." + +#: ../Doc/tutorial/appetite.rst:44 +msgid "" +"Python is an interpreted language, which can save you considerable time " +"during program development because no compilation and linking is necessary. " +"The interpreter can be used interactively, which makes it easy to experiment " +"with features of the language, to write throw-away programs, or to test " +"functions during bottom-up program development. It is also a handy desk " +"calculator." +msgstr "" +"Python est un langage interprété, ce qui peut vous faire gagner un temps " +"considérable pendant le développement de vos programmes car aucune " +"compilation ni édition de liens n'est nécessaire. L'interpréteur peut être " +"utilisé de manière interactive, pour vous permettre d'expérimenter les " +"fonctionnalités du langage, d'écrire des programmes jetables ou de tester " +"des fonctions lors d'un développement incrémental. C'est aussi une " +"calculatrice de bureau bien pratique." + +#: ../Doc/tutorial/appetite.rst:50 +msgid "" +"Python enables programs to be written compactly and readably. Programs " +"written in Python are typically much shorter than equivalent C, C++, or " +"Java programs, for several reasons:" +msgstr "" +"Python permet d'écrire des programmes compacts et lisibles. Les programmes " +"écrits en Python sont généralement beaucoup plus courts que leurs " +"équivalents en C, C++ ou Java. Et ceci pour plusieurs raisons :" + +#: ../Doc/tutorial/appetite.rst:54 +msgid "" +"the high-level data types allow you to express complex operations in a " +"single statement;" +msgstr "" +"les types de données de haut niveau vous permettent d'exprimer des " +"opérations complexes en une seule instruction ;" + +#: ../Doc/tutorial/appetite.rst:57 +msgid "" +"statement grouping is done by indentation instead of beginning and ending " +"brackets;" +msgstr "" +"les instructions sont regroupées entre elles grâce à l'indentation, plutôt " +"que par l'utilisation d'accolades ;" + +#: ../Doc/tutorial/appetite.rst:60 +msgid "no variable or argument declarations are necessary." +msgstr "aucune déclaration de variable ou d'argument n'est nécessaire." + +#: ../Doc/tutorial/appetite.rst:62 +msgid "" +"Python is *extensible*: if you know how to program in C it is easy to add a " +"new built-in function or module to the interpreter, either to perform " +"critical operations at maximum speed, or to link Python programs to " +"libraries that may only be available in binary form (such as a vendor-" +"specific graphics library). Once you are really hooked, you can link the " +"Python interpreter into an application written in C and use it as an " +"extension or command language for that application." +msgstr "" +"Python est *extensible* : si vous savez écrire un programme en C, une " +"nouvelle fonction ou module peut être facilement ajouté à l'interpréteur " +"afin de l'étendre, que ce soit pour effectuer des opérations critiques à " +"vitesse maximale ou pour lier des programmes en Python à des bibliothèques " +"disponibles uniquement sous forme binaire (par exemple des bibliothèques " +"graphiques dédiées à un matériel). Une fois que vous êtes à l'aise avec ces " +"principes, vous pouvez relier l'interpréteur Python à une application écrite " +"en C et l'utiliser comme un langage d'extensions ou de commandes pour cette " +"application." + +#: ../Doc/tutorial/appetite.rst:70 +msgid "" +"By the way, the language is named after the BBC show \"Monty Python's Flying " +"Circus\" and has nothing to do with reptiles. Making references to Monty " +"Python skits in documentation is not only allowed, it is encouraged!" +msgstr "" +"Au fait, le nom du langage provient de l'émission de la BBC « Monty Python's " +"Flying Circus » et n'a rien à voir avec les reptiles. Faire référence aux " +"sketchs des Monty Python dans la documentation n'est pas seulement permis, " +"c'est encouragé !" + +#: ../Doc/tutorial/appetite.rst:74 +msgid "" +"Now that you are all excited about Python, you'll want to examine it in some " +"more detail. Since the best way to learn a language is to use it, the " +"tutorial invites you to play with the Python interpreter as you read." +msgstr "" +"Maintenant que vos papilles ont été chatouillées, nous allons pouvoir " +"rentrer dans le vif du sujet Python. Et comme la meilleure façon d'apprendre " +"un langage est de l'utiliser, ce tutoriel vous invite à jouer avec " +"l'interpréteur au fur et à mesure de votre lecture." + +#: ../Doc/tutorial/appetite.rst:78 +msgid "" +"In the next chapter, the mechanics of using the interpreter are explained. " +"This is rather mundane information, but essential for trying out the " +"examples shown later." +msgstr "" +"Dans le prochain chapitre, nous expliquons l'utilisation de l'interpréteur. " +"Ce n'est pas la section la plus passionnante, mais c'est un passage obligé " +"pour que vous puissiez mettre en pratique les exemples donnés plus loin." + +#: ../Doc/tutorial/appetite.rst:82 +msgid "" +"The rest of the tutorial introduces various features of the Python language " +"and system through examples, beginning with simple expressions, statements " +"and data types, through functions and modules, and finally touching upon " +"advanced concepts like exceptions and user-defined classes." +msgstr "" +"Le reste du tutoriel présente diverses fonctionnalités du langage et du " +"système Python au travers d'exemples, en commençant par les expressions " +"simples, les instructions et les types de données, jusqu'à aborder des " +"concepts avancés comme les exceptions et les classes, en passant par les " +"fonctions et modules." diff --git a/tutorial/classes.po b/tutorial/classes.po new file mode 100644 index 000000000..c56359133 --- /dev/null +++ b/tutorial/classes.po @@ -0,0 +1,1472 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-07-08 22:45+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/tutorial/classes.rst:5 +msgid "Classes" +msgstr "Classes" + +#: ../Doc/tutorial/classes.rst:7 +msgid "" +"Classes provide a means of bundling data and functionality together. " +"Creating a new class creates a new *type* of object, allowing new " +"*instances* of that type to be made. Each class instance can have " +"attributes attached to it for maintaining its state. Class instances can " +"also have methods (defined by its class) for modifying its state." +msgstr "" +"Les classes sont un moyen de réunir des données et des fonctionnalités. " +"Créer une nouvelle classe crée un nouveau *type* d'objet et ainsi de " +"nouvelles *instances* de ce type peuvent être construites. Chaque instance " +"peut avoir ses propres attributs, ce qui définit son état. Une instance peut " +"aussi avoir des méthodes (définies par la classe de l'instance) pour " +"modifier son état." + +#: ../Doc/tutorial/classes.rst:13 +msgid "" +"Compared with other programming languages, Python's class mechanism adds " +"classes with a minimum of new syntax and semantics. It is a mixture of the " +"class mechanisms found in C++ and Modula-3. Python classes provide all the " +"standard features of Object Oriented Programming: the class inheritance " +"mechanism allows multiple base classes, a derived class can override any " +"methods of its base class or classes, and a method can call the method of a " +"base class with the same name. Objects can contain arbitrary amounts and " +"kinds of data. As is true for modules, classes partake of the dynamic " +"nature of Python: they are created at runtime, and can be modified further " +"after creation." +msgstr "" +"La notion de classes en Python s'inscrit dans le langage avec un minimum de " +"syntaxe et de sémantique nouvelles. C'est un mélange des mécanismes " +"rencontrés dans C++ et Modula-3. Les classes fournissent toutes les " +"fonctionnalités standards de la programmation orientée objet : l'héritage de " +"classes autorise les héritages multiples, une classe dérivée peut surcharger " +"les méthodes de sa ou ses classes de base et une méthode peut appeler la " +"méthode d'une classe de base qui possède le même nom. Les objets peuvent " +"contenir n'importe quel nombre ou type de données. De la même manière que " +"les modules, les classes participent à la nature dynamique de Python : elles " +"sont créées pendant l'exécution et peuvent être modifiées après leur " +"création." + +#: ../Doc/tutorial/classes.rst:23 +msgid "" +"In C++ terminology, normally class members (including the data members) are " +"*public* (except see below :ref:`tut-private`), and all member functions are " +"*virtual*. As in Modula-3, there are no shorthands for referencing the " +"object's members from its methods: the method function is declared with an " +"explicit first argument representing the object, which is provided " +"implicitly by the call. As in Smalltalk, classes themselves are objects. " +"This provides semantics for importing and renaming. Unlike C++ and " +"Modula-3, built-in types can be used as base classes for extension by the " +"user. Also, like in C++, most built-in operators with special syntax " +"(arithmetic operators, subscripting etc.) can be redefined for class " +"instances." +msgstr "" +"Dans la terminologie C++, les membres des classes (y compris les données) " +"sont *publics* (sauf exception, voir :ref:`tut-private`) et toutes les " +"fonctions membres sont *virtuelles*. Comme avec Modula-3, il n'y a aucune " +"façon d'accéder aux membres d'un objet à partir de ses méthodes : une " +"méthode est déclarée avec un premier argument explicite représentant l'objet " +"et cet argument est transmis de manière implicite lors de l'appel. Comme " +"avec Smalltalk, les classes elles-mêmes sont des objets. Il existe ainsi une " +"sémantique pour les importer et les renommer. Au contraire de C++ et " +"Modula-3, les types natifs peuvent être utilisés comme classes de base pour " +"être étendus par l'utilisateur. Enfin, comme en C++, la plupart des " +"opérateurs natifs avec une syntaxe spéciale (opérateurs arithmétiques, " +"indiçage, etc.) peuvent être redéfinis pour les instances de classes." + +#: ../Doc/tutorial/classes.rst:34 +msgid "" +"(Lacking universally accepted terminology to talk about classes, I will make " +"occasional use of Smalltalk and C++ terms. I would use Modula-3 terms, " +"since its object-oriented semantics are closer to those of Python than C++, " +"but I expect that few readers have heard of it.)" +msgstr "" +"En l'absence d'une terminologie communément admise pour parler des classes, " +"nous utilisons parfois des termes de Smalltalk et C++. Nous voulions " +"utiliser les termes de Modula-3 puisque sa sémantique orientée objet est " +"plus proche de celle de Python que C++, mais il est probable que seul un " +"petit nombre de lecteurs les connaissent." + +#: ../Doc/tutorial/classes.rst:43 +msgid "A Word About Names and Objects" +msgstr "Objets et noms : préambule" + +#: ../Doc/tutorial/classes.rst:45 +msgid "" +"Objects have individuality, and multiple names (in multiple scopes) can be " +"bound to the same object. This is known as aliasing in other languages. " +"This is usually not appreciated on a first glance at Python, and can be " +"safely ignored when dealing with immutable basic types (numbers, strings, " +"tuples). However, aliasing has a possibly surprising effect on the " +"semantics of Python code involving mutable objects such as lists, " +"dictionaries, and most other types. This is usually used to the benefit of " +"the program, since aliases behave like pointers in some respects. For " +"example, passing an object is cheap since only a pointer is passed by the " +"implementation; and if a function modifies an object passed as an argument, " +"the caller will see the change --- this eliminates the need for two " +"different argument passing mechanisms as in Pascal." +msgstr "" +"Les objets possèdent une existence propre et plusieurs noms peuvent être " +"utilisés (dans divers contextes) pour faire référence à un même objet. Ce " +"concept est connu sous le nom d'alias dans d'autres langages. Il n'apparaît " +"pas au premier coup d'œil en Python et il peut être ignoré tant qu'on " +"travaille avec des types de base immuables (nombres, chaînes, tuples). " +"Cependant, les alias peuvent produire des effets surprenants sur la " +"sémantique d'un code Python mettant en jeu des objets muables comme les " +"listes, les dictionnaires et la plupart des autres types. En général, leur " +"utilisation est bénéfique au programme car les alias se comportent, d'un " +"certain point de vue, comme des pointeurs. Par exemple, transmettre un objet " +"n'a aucun coût car c'est simplement un pointeur qui est transmis par " +"l'implémentation ; et si une fonction modifie un objet passé en argument, le " +"code à l'origine de l'appel voit le changement. Ceci élimine le besoin " +"d'avoir deux mécanismes de transmission d'arguments comme en Pascal." + +#: ../Doc/tutorial/classes.rst:61 +msgid "Python Scopes and Namespaces" +msgstr "Portées et espaces de nommage en Python" + +#: ../Doc/tutorial/classes.rst:63 +msgid "" +"Before introducing classes, I first have to tell you something about " +"Python's scope rules. Class definitions play some neat tricks with " +"namespaces, and you need to know how scopes and namespaces work to fully " +"understand what's going on. Incidentally, knowledge about this subject is " +"useful for any advanced Python programmer." +msgstr "" +"Avant de présenter les classes, nous devons aborder la notion de portée en " +"Python. Les définitions de classes font d'habiles manipulations avec les " +"espaces de nommage, vous devez donc savoir comment les portées et les " +"espaces de nommage fonctionnent. Soit dit en passant, la connaissance de ce " +"sujet est aussi utile aux développeurs Python expérimentés." + +#: ../Doc/tutorial/classes.rst:69 +msgid "Let's begin with some definitions." +msgstr "Commençons par quelques définitions." + +#: ../Doc/tutorial/classes.rst:71 +msgid "" +"A *namespace* is a mapping from names to objects. Most namespaces are " +"currently implemented as Python dictionaries, but that's normally not " +"noticeable in any way (except for performance), and it may change in the " +"future. Examples of namespaces are: the set of built-in names (containing " +"functions such as :func:`abs`, and built-in exception names); the global " +"names in a module; and the local names in a function invocation. In a sense " +"the set of attributes of an object also form a namespace. The important " +"thing to know about namespaces is that there is absolutely no relation " +"between names in different namespaces; for instance, two different modules " +"may both define a function ``maximize`` without confusion --- users of the " +"modules must prefix it with the module name." +msgstr "" +"Un *espace de nommage* est une table de correspondance entre des noms et des " +"objets. La plupart des espaces de nommage sont actuellement implémentés sous " +"forme de dictionnaires Python, mais ceci n'est normalement pas visible (sauf " +"pour les performances) et peut changer dans le futur. Comme exemples " +"d'espaces de nommage, nous pouvons citer les primitives (fonctions comme :" +"func:`abs` et les noms des exceptions de base) ; les noms globaux dans un " +"module ; et les noms locaux lors d'un appel de fonction. D'une certaine " +"manière, l'ensemble des attributs d'un objet forme lui-même un espace de " +"nommage. L'important à retenir concernant les espaces de nommage est qu'il " +"n'y a absolument aucun lien entre les noms de différents espaces de " +"nommage ; par exemple, deux modules différents peuvent définir une fonction " +"``maximize`` sans qu'il n'y ait de confusion. Les utilisateurs des modules " +"doivent préfixer le nom de la fonction avec celui du module." + +#: ../Doc/tutorial/classes.rst:82 +msgid "" +"By the way, I use the word *attribute* for any name following a dot --- for " +"example, in the expression ``z.real``, ``real`` is an attribute of the " +"object ``z``. Strictly speaking, references to names in modules are " +"attribute references: in the expression ``modname.funcname``, ``modname`` is " +"a module object and ``funcname`` is an attribute of it. In this case there " +"happens to be a straightforward mapping between the module's attributes and " +"the global names defined in the module: they share the same namespace! [#]_" +msgstr "" +"À ce propos, nous utilisons le mot *attribut* pour tout nom suivant un " +"point. Par exemple, dans l'expression ``z.real``, ``real`` est un attribut " +"de l'objet ``z``. Rigoureusement parlant, les références à des noms dans des " +"modules sont des références d'attributs : dans l'expression ``nommodule." +"nomfonction``, ``nommodule`` est un objet module et ``nomfonction`` est un " +"attribut de cet objet. Dans ces conditions, il existe une correspondance " +"directe entre les attributs du module et les noms globaux définis dans le " +"module : ils partagent le même espace de nommage [#]_ !" + +#: ../Doc/tutorial/classes.rst:90 +msgid "" +"Attributes may be read-only or writable. In the latter case, assignment to " +"attributes is possible. Module attributes are writable: you can write " +"``modname.the_answer = 42``. Writable attributes may also be deleted with " +"the :keyword:`del` statement. For example, ``del modname.the_answer`` will " +"remove the attribute :attr:`the_answer` from the object named by ``modname``." +msgstr "" +"Les attributs peuvent être en lecture seule ou modifiables. S'ils sont " +"modifiables, l'affectation à un attribut est possible. Les attributs de " +"modules sont modifiables : vous pouvez écrire ``nommodule.la_reponse = 42``. " +"Les attributs modifiables peuvent aussi être effacés avec l'instruction :" +"keyword:`del`. Par exemple, ``del nommodule.la_reponse`` supprime " +"l'attribut :attr:`la_reponse` de l'objet nommé ``nommodule``." + +#: ../Doc/tutorial/classes.rst:96 +msgid "" +"Namespaces are created at different moments and have different lifetimes. " +"The namespace containing the built-in names is created when the Python " +"interpreter starts up, and is never deleted. The global namespace for a " +"module is created when the module definition is read in; normally, module " +"namespaces also last until the interpreter quits. The statements executed " +"by the top-level invocation of the interpreter, either read from a script " +"file or interactively, are considered part of a module called :mod:" +"`__main__`, so they have their own global namespace. (The built-in names " +"actually also live in a module; this is called :mod:`builtins`.)" +msgstr "" +"Les espaces de nommage sont créés à différents moments et ont différentes " +"durées de vie. L'espace de nommage contenant les primitives est créé au " +"démarrage de l'interpréteur Python et n'est jamais effacé. L'espace de " +"nommage globaux pour un module est créé lorsque la définition du module est " +"lue. Habituellement, les espaces de nommage des modules durent aussi jusqu'à " +"l'arrêt de l'interpréteur. Les instructions exécutées par la première " +"invocation de l'interpréteur, qu'elles soient lues depuis un fichier de " +"script ou de manière interactive, sont considérées comme faisant partie d'un " +"module appelé :mod:`__main__`, de façon qu'elles possèdent leur propre " +"espace de nommage (les primitives vivent elles-mêmes dans un module, appelé :" +"mod:`builtins`)." + +#: ../Doc/tutorial/classes.rst:106 +msgid "" +"The local namespace for a function is created when the function is called, " +"and deleted when the function returns or raises an exception that is not " +"handled within the function. (Actually, forgetting would be a better way to " +"describe what actually happens.) Of course, recursive invocations each have " +"their own local namespace." +msgstr "" +"L'espace des noms locaux d'une fonction est créé lors de son appel, puis " +"effacé lorsqu'elle renvoie un résultat ou lève une exception non prise en " +"charge (en fait, « oublié » serait une meilleure façon de décrire ce qui se " +"passe réellement). Bien sûr, des invocations récursives ont chacune leur " +"propre espace de nommage." + +#: ../Doc/tutorial/classes.rst:112 +msgid "" +"A *scope* is a textual region of a Python program where a namespace is " +"directly accessible. \"Directly accessible\" here means that an unqualified " +"reference to a name attempts to find the name in the namespace." +msgstr "" +"La *portée* est la zone textuelle d'un programme Python où un espace de " +"nommage est directement accessible. « Directement accessible » signifie ici " +"qu'une référence non qualifiée à un nom est cherchée dans l'espace de " +"nommage." + +#: ../Doc/tutorial/classes.rst:116 +msgid "" +"Although scopes are determined statically, they are used dynamically. At any " +"time during execution, there are at least three nested scopes whose " +"namespaces are directly accessible:" +msgstr "" +"Bien que les portées soient déterminées de manière statique, elles sont " +"utilisées de manière dynamique. À n'importe quel moment de l'exécution, il y " +"a au minimum trois portées imbriquées dont les espaces de nommage sont " +"directement accessibles :" + +#: ../Doc/tutorial/classes.rst:120 +msgid "the innermost scope, which is searched first, contains the local names" +msgstr "" +"la portée la plus au centre, celle qui est consultée en premier, contient " +"les noms locaux ;" + +#: ../Doc/tutorial/classes.rst:121 +msgid "" +"the scopes of any enclosing functions, which are searched starting with the " +"nearest enclosing scope, contains non-local, but also non-global names" +msgstr "" +"les portées des fonctions englobantes, qui sont consultées en commençant " +"avec la portée englobante la plus proche, contiennent des noms non-locaux " +"mais aussi non-globaux ;" + +#: ../Doc/tutorial/classes.rst:123 +msgid "the next-to-last scope contains the current module's global names" +msgstr "l'avant-dernière portée contient les noms globaux du module courant ;" + +#: ../Doc/tutorial/classes.rst:124 +msgid "" +"the outermost scope (searched last) is the namespace containing built-in " +"names" +msgstr "" +"la portée englobante, consultée en dernier, est l'espace de nommage " +"contenant les primitives." + +#: ../Doc/tutorial/classes.rst:126 +msgid "" +"If a name is declared global, then all references and assignments go " +"directly to the middle scope containing the module's global names. To " +"rebind variables found outside of the innermost scope, the :keyword:" +"`nonlocal` statement can be used; if not declared nonlocal, those variables " +"are read-only (an attempt to write to such a variable will simply create a " +"*new* local variable in the innermost scope, leaving the identically named " +"outer variable unchanged)." +msgstr "" +"Si un nom est déclaré comme global, alors toutes les références et " +"affectations vont directement dans la portée intermédiaire contenant les " +"noms globaux du module. Pour pointer une variable qui se trouve en dehors de " +"la portée la plus locale, vous pouvez utiliser l'instruction :keyword:" +"`nonlocal`. Si une telle variable n'est pas déclarée *nonlocal*, elle est en " +"lecture seule (toute tentative de la modifier crée simplement une *nouvelle* " +"variable dans la portée la plus locale, en laissant inchangée la variable du " +"même nom dans sa portée d'origine)." + +#: ../Doc/tutorial/classes.rst:133 +msgid "" +"Usually, the local scope references the local names of the (textually) " +"current function. Outside functions, the local scope references the same " +"namespace as the global scope: the module's namespace. Class definitions " +"place yet another namespace in the local scope." +msgstr "" +"Habituellement, la portée locale référence les noms locaux de la fonction " +"courante. En dehors des fonctions, la portée locale référence le même espace " +"de nommage que la portée globale : l'espace de nommage du module. Les " +"définitions de classes créent un nouvel espace de nommage dans la portée " +"locale." + +#: ../Doc/tutorial/classes.rst:138 +msgid "" +"It is important to realize that scopes are determined textually: the global " +"scope of a function defined in a module is that module's namespace, no " +"matter from where or by what alias the function is called. On the other " +"hand, the actual search for names is done dynamically, at run time --- " +"however, the language definition is evolving towards static name resolution, " +"at \"compile\" time, so don't rely on dynamic name resolution! (In fact, " +"local variables are already determined statically.)" +msgstr "" +"Il est important de réaliser que les portées sont déterminées de manière " +"textuelle : la portée globale d'une fonction définie dans un module est " +"l'espace de nommage de ce module, quelle que soit la provenance de l'appel à " +"la fonction. En revanche, la recherche réelle des noms est faite " +"dynamiquement au moment de l'exécution. Cependant la définition du langage " +"est en train d'évoluer vers une résolution statique des noms au moment de la " +"« compilation », donc ne vous basez pas sur une résolution dynamique (en " +"réalité, les variables locales sont déjà déterminées de manière statique) !" + +#: ../Doc/tutorial/classes.rst:146 +msgid "" +"A special quirk of Python is that -- if no :keyword:`global` statement is in " +"effect -- assignments to names always go into the innermost scope. " +"Assignments do not copy data --- they just bind names to objects. The same " +"is true for deletions: the statement ``del x`` removes the binding of ``x`` " +"from the namespace referenced by the local scope. In fact, all operations " +"that introduce new names use the local scope: in particular, :keyword:" +"`import` statements and function definitions bind the module or function " +"name in the local scope." +msgstr "" +"Une particularité de Python est que, si aucune instruction :keyword:`global` " +"n'est active, les affectations de noms vont toujours dans la portée la plus " +"proche. Les affectations ne copient aucune donnée : elles se contentent de " +"lier des noms à des objets. Ceci est également vrai pour l'effacement : " +"l'instruction ``del x`` supprime la liaison de ``x`` dans l'espace de " +"nommage référencé par la portée locale. En réalité, toutes les opérations " +"qui impliquent des nouveaux noms utilisent la portée locale : en " +"particulier, les instructions :keyword:`import` et les définitions de " +"fonctions effectuent une liaison du module ou du nom de fonction dans la " +"portée locale." + +#: ../Doc/tutorial/classes.rst:154 +msgid "" +"The :keyword:`global` statement can be used to indicate that particular " +"variables live in the global scope and should be rebound there; the :keyword:" +"`nonlocal` statement indicates that particular variables live in an " +"enclosing scope and should be rebound there." +msgstr "" +"L'instruction :keyword:`global` peut être utilisée pour indiquer que " +"certaines variables existent dans la portée globale et doivent être reliées " +"en local ; l'instruction :keyword:`nonlocal` indique que certaines variables " +"existent dans une portée supérieure et doivent être reliées en local." + +#: ../Doc/tutorial/classes.rst:162 +msgid "Scopes and Namespaces Example" +msgstr "Exemple de portées et d'espaces de nommage" + +#: ../Doc/tutorial/classes.rst:164 +msgid "" +"This is an example demonstrating how to reference the different scopes and " +"namespaces, and how :keyword:`global` and :keyword:`nonlocal` affect " +"variable binding::" +msgstr "" +"Ceci est un exemple montrant comment utiliser les différentes portées et " +"espaces de nommage, et comment :keyword:`global` et :keyword:`nonlocal` " +"modifient l'affectation de variable ::" + +#: ../Doc/tutorial/classes.rst:191 +msgid "The output of the example code is:" +msgstr "Ce code donne le résultat suivant :" + +#: ../Doc/tutorial/classes.rst:200 +msgid "" +"Note how the *local* assignment (which is default) didn't change *scope_test*" +"\\'s binding of *spam*. The :keyword:`nonlocal` assignment changed " +"*scope_test*\\'s binding of *spam*, and the :keyword:`global` assignment " +"changed the module-level binding." +msgstr "" +"Vous pouvez constater que l'affectation *locale* (qui est effectuée par " +"défaut) n'a pas modifié la liaison de *spam* dans *scope_test*. " +"L'affectation :keyword:`nonlocal` a changé la liaison de *spam* dans " +"*scope_test* et l'affectation :keyword:`global` a changé la liaison au " +"niveau du module." + +#: ../Doc/tutorial/classes.rst:205 +msgid "" +"You can also see that there was no previous binding for *spam* before the :" +"keyword:`global` assignment." +msgstr "" +"Vous pouvez également voir qu'aucune liaison pour *spam* n'a été faite avant " +"l'affectation :keyword:`global`." + +#: ../Doc/tutorial/classes.rst:212 +msgid "A First Look at Classes" +msgstr "Une première approche des classes" + +#: ../Doc/tutorial/classes.rst:214 +msgid "" +"Classes introduce a little bit of new syntax, three new object types, and " +"some new semantics." +msgstr "" +"Le concept de classe introduit un peu de syntaxe nouvelle, trois nouveaux " +"types d'objets ainsi que quelques nouveaux éléments de sémantique." + +#: ../Doc/tutorial/classes.rst:221 +msgid "Class Definition Syntax" +msgstr "Syntaxe de définition des classes" + +#: ../Doc/tutorial/classes.rst:223 +msgid "The simplest form of class definition looks like this::" +msgstr "La forme la plus simple de définition d'une classe est la suivante ::" + +#: ../Doc/tutorial/classes.rst:232 +msgid "" +"Class definitions, like function definitions (:keyword:`def` statements) " +"must be executed before they have any effect. (You could conceivably place " +"a class definition in a branch of an :keyword:`if` statement, or inside a " +"function.)" +msgstr "" +"Les définitions de classes, comme les définitions de fonctions (définitions :" +"keyword:`def`), doivent être exécutées avant d'avoir un effet. Vous pouvez " +"tout à fait placer une définition de classe dans une branche d'une " +"instruction conditionnelle :keyword:`if` ou encore à l'intérieur d'une " +"fonction." + +#: ../Doc/tutorial/classes.rst:236 +msgid "" +"In practice, the statements inside a class definition will usually be " +"function definitions, but other statements are allowed, and sometimes useful " +"--- we'll come back to this later. The function definitions inside a class " +"normally have a peculiar form of argument list, dictated by the calling " +"conventions for methods --- again, this is explained later." +msgstr "" +"Dans la pratique, les déclarations dans une définition de classe sont " +"généralement des définitions de fonctions mais d'autres déclarations sont " +"permises et parfois utiles (nous revenons sur ce point plus tard). Les " +"définitions de fonction à l'intérieur d'une classe ont normalement une forme " +"particulière de liste d'arguments, dictée par les conventions d'appel aux " +"méthodes (à nouveau, tout ceci est expliqué plus loin)." + +#: ../Doc/tutorial/classes.rst:242 +msgid "" +"When a class definition is entered, a new namespace is created, and used as " +"the local scope --- thus, all assignments to local variables go into this " +"new namespace. In particular, function definitions bind the name of the new " +"function here." +msgstr "" +"Quand une classe est définie, un nouvel espace de nommage est créé et " +"utilisé comme portée locale --- Ainsi, toutes les affectations de variables " +"locales entrent dans ce nouvel espace de nommage. En particulier, les " +"définitions de fonctions y lient le nom de la nouvelle fonction." + +#: ../Doc/tutorial/classes.rst:247 +msgid "" +"When a class definition is left normally (via the end), a *class object* is " +"created. This is basically a wrapper around the contents of the namespace " +"created by the class definition; we'll learn more about class objects in the " +"next section. The original local scope (the one in effect just before the " +"class definition was entered) is reinstated, and the class object is bound " +"here to the class name given in the class definition header (:class:" +"`ClassName` in the example)." +msgstr "" +"À la fin de la définition d'une classe, un *objet classe* est créé. C'est, " +"pour simplifier, une encapsulation du contenu de l'espace de nommage créé " +"par la définition de classe. Nous revoyons les objets classes dans la " +"prochaine section. La portée locale initiale (celle qui prévaut avant le " +"début de la définition de la classe) est ré-instanciée et l'objet de classe " +"est lié ici au nom de classe donné dans l'en-tête de définition de classe (:" +"class:`ClassName` dans l'exemple)." + +#: ../Doc/tutorial/classes.rst:259 +msgid "Class Objects" +msgstr "Objets classes" + +#: ../Doc/tutorial/classes.rst:261 +msgid "" +"Class objects support two kinds of operations: attribute references and " +"instantiation." +msgstr "" +"Les objets classes prennent en charge deux types d'opérations : des " +"références à des attributs et l'instanciation." + +#: ../Doc/tutorial/classes.rst:264 +msgid "" +"*Attribute references* use the standard syntax used for all attribute " +"references in Python: ``obj.name``. Valid attribute names are all the names " +"that were in the class's namespace when the class object was created. So, " +"if the class definition looked like this::" +msgstr "" +"Les *références d'attributs* utilisent la syntaxe standard utilisée pour " +"toutes les références d'attributs en Python : ``obj.nom``. Les noms " +"d'attribut valides sont tous les noms qui se trouvaient dans l'espace de " +"nommage de la classe quand l'objet classe a été créé. Donc, si la définition " +"de classe est de cette forme ::" + +#: ../Doc/tutorial/classes.rst:276 +msgid "" +"then ``MyClass.i`` and ``MyClass.f`` are valid attribute references, " +"returning an integer and a function object, respectively. Class attributes " +"can also be assigned to, so you can change the value of ``MyClass.i`` by " +"assignment. :attr:`__doc__` is also a valid attribute, returning the " +"docstring belonging to the class: ``\"A simple example class\"``." +msgstr "" +"alors ``MyClass.i`` et ``MyClass.f`` sont des références valides à des " +"attributs, renvoyant respectivement un entier et un objet fonction. Les " +"attributs de classes peuvent également être affectés, de sorte que vous " +"pouvez modifier la valeur de ``MyClass.i`` par affectation. :attr:`__doc__` " +"est aussi un attribut valide, renvoyant la *docstring* appartenant à la " +"classe : ``\"A simple example class\"``." + +# Apostrophe transformée en guillemets car devant une astérisque. +#: ../Doc/tutorial/classes.rst:282 +msgid "" +"Class *instantiation* uses function notation. Just pretend that the class " +"object is a parameterless function that returns a new instance of the class. " +"For example (assuming the above class)::" +msgstr "" +"L'*instanciation* de classes utilise la notation des fonctions. Considérez " +"simplement que l'objet classe est une fonction sans paramètre qui renvoie " +"une nouvelle instance de la classe. Par exemple (en considérant la classe " +"définie ci-dessus) ::" + +#: ../Doc/tutorial/classes.rst:288 +msgid "" +"creates a new *instance* of the class and assigns this object to the local " +"variable ``x``." +msgstr "" +"crée une nouvelle *instance* de la classe et affecte cet objet à la variable " +"locale ``x``." + +#: ../Doc/tutorial/classes.rst:291 +msgid "" +"The instantiation operation (\"calling\" a class object) creates an empty " +"object. Many classes like to create objects with instances customized to a " +"specific initial state. Therefore a class may define a special method named :" +"meth:`__init__`, like this::" +msgstr "" +"L'opération d'instanciation (en \"appelant\" un objet classe) crée un objet " +"vide. De nombreuses classes aiment créer des instances personnalisées " +"correspondant à un état initial spécifique. À cet effet, une classe peut " +"définir une méthode spéciale nommée :meth:`__init__`, comme ceci ::" + +#: ../Doc/tutorial/classes.rst:299 +msgid "" +"When a class defines an :meth:`__init__` method, class instantiation " +"automatically invokes :meth:`__init__` for the newly-created class " +"instance. So in this example, a new, initialized instance can be obtained " +"by::" +msgstr "" +"Quand une classe définit une méthode :meth:`__init__`, l'instanciation de la " +"classe appelle automatiquement :meth:`__init__` pour la nouvelle instance de " +"la classe. Donc, dans cet exemple, l'initialisation d'une nouvelle instance " +"peut être obtenue par ::" + +#: ../Doc/tutorial/classes.rst:305 +msgid "" +"Of course, the :meth:`__init__` method may have arguments for greater " +"flexibility. In that case, arguments given to the class instantiation " +"operator are passed on to :meth:`__init__`. For example, ::" +msgstr "" +"Bien sûr, la méthode :meth:`__init__` peut avoir des arguments pour une plus " +"grande flexibilité. Dans ce cas, les arguments donnés à l'opérateur " +"d'instanciation de classe sont transmis à :meth:`__init__`. Par exemple ::" + +#: ../Doc/tutorial/classes.rst:322 +msgid "Instance Objects" +msgstr "Objets instances" + +#: ../Doc/tutorial/classes.rst:324 +msgid "" +"Now what can we do with instance objects? The only operations understood by " +"instance objects are attribute references. There are two kinds of valid " +"attribute names, data attributes and methods." +msgstr "" +"Maintenant, que pouvons-nous faire avec des objets instances ? Les seules " +"opérations comprises par les objets instances sont des références " +"d'attributs. Il y a deux sortes de noms d'attributs valides, les attributs " +"'données' et les méthodes." + +#: ../Doc/tutorial/classes.rst:328 +msgid "" +"*data attributes* correspond to \"instance variables\" in Smalltalk, and to " +"\"data members\" in C++. Data attributes need not be declared; like local " +"variables, they spring into existence when they are first assigned to. For " +"example, if ``x`` is the instance of :class:`MyClass` created above, the " +"following piece of code will print the value ``16``, without leaving a " +"trace::" +msgstr "" +"Les *attributs 'données'* correspondent à des \"variables d'instance\" en " +"Smalltalk et aux \"membres de données\" en C++. Les attributs 'données' " +"n'ont pas à être déclarés. Comme les variables locales, ils existent dès " +"lors qu'ils sont assignés une première fois. Par exemple, si ``x`` est " +"l'instance de :class:`MyClass` créée ci-dessus, le code suivant affiche la " +"valeur ``16``, sans laisser de trace ::" + +#: ../Doc/tutorial/classes.rst:340 +msgid "" +"The other kind of instance attribute reference is a *method*. A method is a " +"function that \"belongs to\" an object. (In Python, the term method is not " +"unique to class instances: other object types can have methods as well. For " +"example, list objects have methods called append, insert, remove, sort, and " +"so on. However, in the following discussion, we'll use the term method " +"exclusively to mean methods of class instance objects, unless explicitly " +"stated otherwise.)" +msgstr "" +"L'autre type de référence à un attribut d'instance est une *méthode*. Une " +"méthode est une fonction qui \"appartient à\" un objet (en Python, le terme " +"de méthode n'est pas unique aux instances de classes : d'autres types " +"d'objets peuvent aussi avoir des méthodes. Par exemple, les objets listes " +"ont des méthodes appelées ``append``, ``insert``, ``remove``, ``sort`` et " +"ainsi de suite. Toutefois, dans la discussion qui suit, sauf indication " +"contraire, nous utilisons le terme de méthode exclusivement en référence à " +"des méthodes d'objets instances de classe)." + +#: ../Doc/tutorial/classes.rst:349 +msgid "" +"Valid method names of an instance object depend on its class. By " +"definition, all attributes of a class that are function objects define " +"corresponding methods of its instances. So in our example, ``x.f`` is a " +"valid method reference, since ``MyClass.f`` is a function, but ``x.i`` is " +"not, since ``MyClass.i`` is not. But ``x.f`` is not the same thing as " +"``MyClass.f`` --- it is a *method object*, not a function object." +msgstr "" +"Les noms de méthodes valides d'un objet instance dépendent de sa classe. Par " +"définition, tous les attributs d'une classe qui sont des objets fonctions " +"définissent les méthodes correspondantes de ses instances. Donc, dans notre " +"exemple, ``x.f`` est une référence valide à une méthode car ``MyClass.f`` " +"est une fonction, mais pas ``x.i`` car ``MyClass.i`` n'en est pas une. " +"Attention cependant, ``x.f`` n'est pas la même chose que ``MyClass.f`` --- " +"Il s'agit d'un *objet méthode*, pas d'un objet fonction." + +#: ../Doc/tutorial/classes.rst:360 +msgid "Method Objects" +msgstr "Objets méthode" + +#: ../Doc/tutorial/classes.rst:362 +msgid "Usually, a method is called right after it is bound::" +msgstr "Le plus souvent, une méthode est appelée juste après avoir été liée ::" + +#: ../Doc/tutorial/classes.rst:366 +msgid "" +"In the :class:`MyClass` example, this will return the string ``'hello " +"world'``. However, it is not necessary to call a method right away: ``x.f`` " +"is a method object, and can be stored away and called at a later time. For " +"example::" +msgstr "" +"Dans l'exemple de la classe :class:`MyClass`, cela renvoie la chaîne de " +"caractères ``hello world``. Toutefois, il n'est pas nécessaire d'appeler la " +"méthode directement : ``x.f`` est un objet méthode, il peut être gardé de " +"côté et être appelé plus tard. Par exemple ::" + +#: ../Doc/tutorial/classes.rst:374 +msgid "will continue to print ``hello world`` until the end of time." +msgstr "affiche ``hello world`` jusqu'à la fin des temps." + +#: ../Doc/tutorial/classes.rst:376 +msgid "" +"What exactly happens when a method is called? You may have noticed that ``x." +"f()`` was called without an argument above, even though the function " +"definition for :meth:`f` specified an argument. What happened to the " +"argument? Surely Python raises an exception when a function that requires an " +"argument is called without any --- even if the argument isn't actually " +"used..." +msgstr "" +"Que se passe-t-il exactement quand une méthode est appelée ? Vous avez dû " +"remarquer que ``x.f()`` a été appelée dans le code ci-dessus sans argument, " +"alors que la définition de la méthode :meth:`f` spécifie bien qu'elle prend " +"un argument. Qu'est-il arrivé à l'argument ? Python doit sûrement lever une " +"exception lorsqu'une fonction qui requiert un argument est appelée sans -- " +"même si l'argument n'est pas utilisé…" + +#: ../Doc/tutorial/classes.rst:382 +msgid "" +"Actually, you may have guessed the answer: the special thing about methods " +"is that the instance object is passed as the first argument of the " +"function. In our example, the call ``x.f()`` is exactly equivalent to " +"``MyClass.f(x)``. In general, calling a method with a list of *n* arguments " +"is equivalent to calling the corresponding function with an argument list " +"that is created by inserting the method's instance object before the first " +"argument." +msgstr "" +"En fait, vous avez peut-être deviné la réponse : la particularité des " +"méthodes est que l'objet est passé comme premier argument de la fonction. " +"Dans notre exemple, l'appel ``x.f()`` est exactement équivalent à ``MyClass." +"f(x)``. En général, appeler une méthode avec une liste de *n* arguments est " +"équivalent à appeler la fonction correspondante avec une liste d'arguments " +"créée en ajoutant l'instance de l'objet de la méthode avant le premier " +"argument." + +#: ../Doc/tutorial/classes.rst:389 +msgid "" +"If you still don't understand how methods work, a look at the implementation " +"can perhaps clarify matters. When a non-data attribute of an instance is " +"referenced, the instance's class is searched. If the name denotes a valid " +"class attribute that is a function object, a method object is created by " +"packing (pointers to) the instance object and the function object just found " +"together in an abstract object: this is the method object. When the method " +"object is called with an argument list, a new argument list is constructed " +"from the instance object and the argument list, and the function object is " +"called with this new argument list." +msgstr "" +"Si vous ne comprenez toujours pas comment les méthodes fonctionnent, un coup " +"d'œil à l'implémentation vous aidera peut-être. Lorsque un attribut d'une " +"instance est référencé et que ce n'est pas un attribut 'données', sa classe " +"est recherchée. Si le nom correspond à un attribut valide et que c'est un " +"objet fonction, un objet méthode est créé en générant un objet abstrait qui " +"regroupe (des pointeurs vers) l'objet instance et l'objet fonction qui vient " +"d'être trouvé : c'est l'objet méthode. Quand l'objet méthode est appelé avec " +"une liste d'arguments, une nouvelle liste d'arguments est construite à " +"partir de l'objet instance et de la liste des arguments. L'objet fonction " +"est alors appelé avec cette nouvelle liste d'arguments." + +#: ../Doc/tutorial/classes.rst:403 +msgid "Class and Instance Variables" +msgstr "Classes et variables d'instance" + +#: ../Doc/tutorial/classes.rst:405 +msgid "" +"Generally speaking, instance variables are for data unique to each instance " +"and class variables are for attributes and methods shared by all instances " +"of the class::" +msgstr "" +"En général, les variables d'instance stockent des informations relatives à " +"chaque instance alors que les variables de classe servent à stocker les " +"attributs et méthodes communes à toutes les instances de la classe ::" + +#: ../Doc/tutorial/classes.rst:427 +msgid "" +"As discussed in :ref:`tut-object`, shared data can have possibly surprising " +"effects with involving :term:`mutable` objects such as lists and " +"dictionaries. For example, the *tricks* list in the following code should " +"not be used as a class variable because just a single list would be shared " +"by all *Dog* instances::" +msgstr "" +"Comme nous l'avons vu dans :ref:`tut-object`, les données partagées :term:" +"`muable ` (telles que les listes, dictionnaires, etc.) peuvent avoir " +"des effets surprenants. Par exemple, la liste *tricks* dans le code suivant " +"ne devrait pas être utilisée en tant que variable de classe car, dans ce " +"cas, une seule liste est partagée par toutes les instances de *Dog* ::" + +#: ../Doc/tutorial/classes.rst:450 +msgid "Correct design of the class should use an instance variable instead::" +msgstr "" +"Une conception correcte de la classe est d'utiliser une variable d'instance " +"à la place ::" + +#: ../Doc/tutorial/classes.rst:474 +msgid "Random Remarks" +msgstr "Remarques diverses" + +#: ../Doc/tutorial/classes.rst:478 +msgid "" +"Data attributes override method attributes with the same name; to avoid " +"accidental name conflicts, which may cause hard-to-find bugs in large " +"programs, it is wise to use some kind of convention that minimizes the " +"chance of conflicts. Possible conventions include capitalizing method " +"names, prefixing data attribute names with a small unique string (perhaps " +"just an underscore), or using verbs for methods and nouns for data " +"attributes." +msgstr "" +"Les attributs 'données' surchargent les méthodes avec le même nom ; pour " +"éviter des conflits de nommage, qui peuvent causer des bugs difficiles à " +"trouver dans de grands programmes, il est sage d'adopter certaines " +"conventions qui minimisent les risques de conflits. Parmi les conventions " +"possibles, on peut citer la mise en majuscule des noms de méthodes, le " +"préfixe des noms d'attributs 'données' par une chaîne courte et unique " +"(parfois juste la caractère souligné) ou l'utilisation de verbes pour les " +"méthodes et de noms pour les attributs 'données'." + +#: ../Doc/tutorial/classes.rst:485 +msgid "" +"Data attributes may be referenced by methods as well as by ordinary users " +"(\"clients\") of an object. In other words, classes are not usable to " +"implement pure abstract data types. In fact, nothing in Python makes it " +"possible to enforce data hiding --- it is all based upon convention. (On " +"the other hand, the Python implementation, written in C, can completely hide " +"implementation details and control access to an object if necessary; this " +"can be used by extensions to Python written in C.)" +msgstr "" +"Les attributs 'données' peuvent être référencés par des méthodes comme par " +"des utilisateurs ordinaires (\"clients\") d'un objet. En d'autres termes, " +"les classes ne sont pas utilisables pour implémenter des types de données " +"purement abstraits. En fait, il n'est pas possible en Python d'imposer de " +"masquer des données — tout est basé sur des conventions (d'un autre côté, " +"l'implémentation de Python, écrite en C, peut complètement masquer les " +"détails d'implémentation et contrôler l'accès à un objet si nécessaire ; " +"ceci peut être utilisé par des extensions de Python écrites en C)." + +#: ../Doc/tutorial/classes.rst:493 +msgid "" +"Clients should use data attributes with care --- clients may mess up " +"invariants maintained by the methods by stamping on their data attributes. " +"Note that clients may add data attributes of their own to an instance object " +"without affecting the validity of the methods, as long as name conflicts are " +"avoided --- again, a naming convention can save a lot of headaches here." +msgstr "" +"Les clients doivent utiliser les attributs 'données' avec précaution --- ils " +"pourraient mettre le désordre dans les invariants gérés par les méthodes " +"avec leurs propres valeurs d'attributs. Remarquez que les clients peuvent " +"ajouter leurs propres attributs 'données' à une instance d'objet sans " +"altérer la validité des méthodes, pour autant que les noms n'entrent pas en " +"conflit --- là aussi, adopter une convention de nommage peut éviter bien des " +"problèmes." + +#: ../Doc/tutorial/classes.rst:499 +msgid "" +"There is no shorthand for referencing data attributes (or other methods!) " +"from within methods. I find that this actually increases the readability of " +"methods: there is no chance of confusing local variables and instance " +"variables when glancing through a method." +msgstr "" +"Il n'y a pas de notation abrégée pour référencer des attributs 'données' (ou " +"les autres méthodes !) depuis les méthodes. Nous pensons que ceci améliore " +"en fait la lisibilité des méthodes : il n'y a aucune chance de confondre " +"variables locales et variables d'instances quand on regarde le code d'une " +"méthode." + +#: ../Doc/tutorial/classes.rst:504 +msgid "" +"Often, the first argument of a method is called ``self``. This is nothing " +"more than a convention: the name ``self`` has absolutely no special meaning " +"to Python. Note, however, that by not following the convention your code " +"may be less readable to other Python programmers, and it is also conceivable " +"that a *class browser* program might be written that relies upon such a " +"convention." +msgstr "" +"Souvent, le premier argument d'une méthode est nommé ``self``. Ce n'est " +"qu'une convention : le nom ``self`` n'a aucune signification particulière en " +"Python. Notez cependant que si vous ne suivez pas cette convention, votre " +"code risque d'être moins lisible pour d'autres programmeurs Python et il est " +"aussi possible qu'un programme qui fasse l'introspection de classes repose " +"sur une telle convention." + +#: ../Doc/tutorial/classes.rst:510 +msgid "" +"Any function object that is a class attribute defines a method for instances " +"of that class. It is not necessary that the function definition is " +"textually enclosed in the class definition: assigning a function object to a " +"local variable in the class is also ok. For example::" +msgstr "" +"Tout objet fonction qui est un attribut de classe définit une méthode pour " +"des instances de cette classe. Il n'est pas nécessaire que le texte de " +"définition de la fonction soit dans la définition de la classe : il est " +"possible d'affecter un objet fonction à une variable locale de la classe. " +"Par exemple ::" + +#: ../Doc/tutorial/classes.rst:527 +msgid "" +"Now ``f``, ``g`` and ``h`` are all attributes of class :class:`C` that refer " +"to function objects, and consequently they are all methods of instances of :" +"class:`C` --- ``h`` being exactly equivalent to ``g``. Note that this " +"practice usually only serves to confuse the reader of a program." +msgstr "" +"Maintenant, ``f``, ``g`` et ``h`` sont toutes des attributs de la classe :" +"class:`C` et font référence à des fonctions objets. Par conséquent, ce sont " +"toutes des méthodes des instances de :class:`C` --- ``h`` est exactement " +"identique à ``g``. Remarquez qu'en pratique, ceci ne sert qu'à embrouiller " +"le lecteur d'un programme." + +#: ../Doc/tutorial/classes.rst:532 +msgid "" +"Methods may call other methods by using method attributes of the ``self`` " +"argument::" +msgstr "" +"Les méthodes peuvent appeler d'autres méthodes en utilisant des méthodes qui " +"sont des attributs de l'argument ``self`` ::" + +#: ../Doc/tutorial/classes.rst:546 +msgid "" +"Methods may reference global names in the same way as ordinary functions. " +"The global scope associated with a method is the module containing its " +"definition. (A class is never used as a global scope.) While one rarely " +"encounters a good reason for using global data in a method, there are many " +"legitimate uses of the global scope: for one thing, functions and modules " +"imported into the global scope can be used by methods, as well as functions " +"and classes defined in it. Usually, the class containing the method is " +"itself defined in this global scope, and in the next section we'll find some " +"good reasons why a method would want to reference its own class." +msgstr "" +"Les méthodes peuvent faire référence à des noms globaux de la même manière " +"que les fonctions. La portée globale associée à une méthode est le module " +"contenant la définition de la classe (la classe elle-même n'est jamais " +"utilisée en tant que portée globale). Alors qu'il est rare d'avoir une bonne " +"raison d'utiliser des données globales dans une méthode, il y a de " +"nombreuses utilisations légitimes de la portée globale : par exemple, les " +"fonctions et modules importés dans une portée globale peuvent être utilisés " +"par des méthodes, de même que les fonctions et classes définies dans cette " +"même portée. Habituellement, la classe contenant la méthode est elle-même " +"définie dans cette portée globale et, dans la section suivante, nous verrons " +"de bonnes raisons pour qu'une méthode référence sa propre classe." + +#: ../Doc/tutorial/classes.rst:556 +msgid "" +"Each value is an object, and therefore has a *class* (also called its " +"*type*). It is stored as ``object.__class__``." +msgstr "" +"Toute valeur est un objet et a donc une *classe* (appelée aussi son *type*). " +"Elle est stockée dans ``objet.__class__``." + +#: ../Doc/tutorial/classes.rst:563 +msgid "Inheritance" +msgstr "Héritage" + +#: ../Doc/tutorial/classes.rst:565 +msgid "" +"Of course, a language feature would not be worthy of the name \"class\" " +"without supporting inheritance. The syntax for a derived class definition " +"looks like this::" +msgstr "" +"Bien sûr, ce terme de \"classe\" ne serait pas utilisé s'il n'y avait pas " +"d'héritage. La syntaxe pour définir une sous-classe est de cette forme ::" + +#: ../Doc/tutorial/classes.rst:576 +msgid "" +"The name :class:`BaseClassName` must be defined in a scope containing the " +"derived class definition. In place of a base class name, other arbitrary " +"expressions are also allowed. This can be useful, for example, when the " +"base class is defined in another module::" +msgstr "" +"Le nom :class:`BaseClassName` doit être défini dans une portée contenant la " +"définition de la classe dérivée. À la place du nom d'une classe de base, une " +"expression est aussi autorisée. Ceci peut être utile, par exemple, lorsque " +"la classe est définie dans un autre module ::" + +#: ../Doc/tutorial/classes.rst:583 +msgid "" +"Execution of a derived class definition proceeds the same as for a base " +"class. When the class object is constructed, the base class is remembered. " +"This is used for resolving attribute references: if a requested attribute is " +"not found in the class, the search proceeds to look in the base class. This " +"rule is applied recursively if the base class itself is derived from some " +"other class." +msgstr "" +"L'exécution d'une définition de classe dérivée se déroule comme pour une " +"classe de base. Quand l'objet de la classe est construit, la classe de base " +"est mémorisée. Elle est utilisée pour la résolution des références " +"d'attributs : si un attribut n'est pas trouvé dans la classe, la recherche " +"se poursuit en regardant dans la classe de base. Cette règle est appliquée " +"récursivement si la classe de base est elle-même dérivée d'une autre classe." + +#: ../Doc/tutorial/classes.rst:589 +msgid "" +"There's nothing special about instantiation of derived classes: " +"``DerivedClassName()`` creates a new instance of the class. Method " +"references are resolved as follows: the corresponding class attribute is " +"searched, descending down the chain of base classes if necessary, and the " +"method reference is valid if this yields a function object." +msgstr "" +"Il n'y a rien de particulier dans l'instanciation des classes dérivées : " +"``DerivedClassName()`` crée une nouvelle instance de la classe. Les " +"références aux méthodes sont résolues comme suit : l'attribut correspondant " +"de la classe est recherché, en remontant la hiérarchie des classes de base " +"si nécessaire, et la référence de méthode est valide si cela conduit à une " +"fonction." + +#: ../Doc/tutorial/classes.rst:595 +msgid "" +"Derived classes may override methods of their base classes. Because methods " +"have no special privileges when calling other methods of the same object, a " +"method of a base class that calls another method defined in the same base " +"class may end up calling a method of a derived class that overrides it. " +"(For C++ programmers: all methods in Python are effectively ``virtual``.)" +msgstr "" +"Les classes dérivées peuvent surcharger des méthodes de leurs classes de " +"base. Comme les méthodes n'ont aucun privilège particulier quand elles " +"appellent d'autres méthodes d'un même objet, une méthode d'une classe de " +"base qui appelle une autre méthode définie dans la même classe peut en fait " +"appeler une méthode d'une classe dérivée qui la surcharge (pour les " +"programmeurs C++ : toutes les méthodes de Python sont en effet \"virtuelles" +"\")." + +#: ../Doc/tutorial/classes.rst:601 +msgid "" +"An overriding method in a derived class may in fact want to extend rather " +"than simply replace the base class method of the same name. There is a " +"simple way to call the base class method directly: just call ``BaseClassName." +"methodname(self, arguments)``. This is occasionally useful to clients as " +"well. (Note that this only works if the base class is accessible as " +"``BaseClassName`` in the global scope.)" +msgstr "" +"Une méthode dans une classe dérivée peut aussi, en fait, vouloir étendre " +"plutôt que simplement remplacer la méthode du même nom de sa classe de base. " +"L'appel direct à la méthode de la classe de base s'écrit simplement " +"``BaseClassName.nomMethode(self, arguments)``. C'est parfois utile également " +"aux clients (notez bien que ceci ne fonctionne que si la classe de base est " +"accessible en tant que ``BaseClassName`` dans la portée globale)." + +#: ../Doc/tutorial/classes.rst:608 +msgid "Python has two built-in functions that work with inheritance:" +msgstr "Python définit deux fonctions primitives pour gérer l'héritage :" + +#: ../Doc/tutorial/classes.rst:610 +msgid "" +"Use :func:`isinstance` to check an instance's type: ``isinstance(obj, int)`` " +"will be ``True`` only if ``obj.__class__`` is :class:`int` or some class " +"derived from :class:`int`." +msgstr "" +"utilisez :func:`isinstance` pour tester le type d'une instance : " +"``isinstance(obj, int)`` renvoie ``True`` seulement si ``obj.__class__`` est " +"égal à :class:`int` ou à une autre classe dérivée de :class:`int` ;" + +#: ../Doc/tutorial/classes.rst:614 +msgid "" +"Use :func:`issubclass` to check class inheritance: ``issubclass(bool, int)`` " +"is ``True`` since :class:`bool` is a subclass of :class:`int`. However, " +"``issubclass(float, int)`` is ``False`` since :class:`float` is not a " +"subclass of :class:`int`." +msgstr "" +"utilisez :func:`issubclass` pour tester l'héritage d'une classe : " +"``issubclass(bool, int)`` renvoie ``True`` car la classe :class:`bool` est " +"une sous-classe de :class:`int`. Cependant, ``issubclass(float, int)`` " +"renvoie ``False`` car :class:`float` n'est pas une sous-classe de :class:" +"`int`." + +#: ../Doc/tutorial/classes.rst:624 +msgid "Multiple Inheritance" +msgstr "Héritage multiple" + +#: ../Doc/tutorial/classes.rst:626 +msgid "" +"Python supports a form of multiple inheritance as well. A class definition " +"with multiple base classes looks like this::" +msgstr "" +"Python gère également une forme d'héritage multiple. Une définition de " +"classe ayant plusieurs classes de base est de cette forme ::" + +#: ../Doc/tutorial/classes.rst:636 +msgid "" +"For most purposes, in the simplest cases, you can think of the search for " +"attributes inherited from a parent class as depth-first, left-to-right, not " +"searching twice in the same class where there is an overlap in the " +"hierarchy. Thus, if an attribute is not found in :class:`DerivedClassName`, " +"it is searched for in :class:`Base1`, then (recursively) in the base classes " +"of :class:`Base1`, and if it was not found there, it was searched for in :" +"class:`Base2`, and so on." +msgstr "" +"Dans la plupart des cas, vous pouvez vous représenter la recherche " +"d'attributs dans les classes parentes comme étant : le plus profond d'abord, " +"de gauche à droite, sans chercher deux fois dans la même classe si elle " +"apparaît plusieurs fois dans la hiérarchie. Ainsi, si un attribut n'est pas " +"trouvé dans :class:`DerivedClassName`, il est recherché dans :class:`Base1`, " +"puis (récursivement) dans les classes de base de :class:`Base1` ; s'il n'y " +"est pas trouvé, il est recherché dans :class:`Base2` et ses classes de base, " +"et ainsi de suite." + +#: ../Doc/tutorial/classes.rst:643 +msgid "" +"In fact, it is slightly more complex than that; the method resolution order " +"changes dynamically to support cooperative calls to :func:`super`. This " +"approach is known in some other multiple-inheritance languages as call-next-" +"method and is more powerful than the super call found in single-inheritance " +"languages." +msgstr "" +"Dans les faits, c'est un peu plus complexe que ça ; l'ordre de la recherche " +"(*method resolution order, ou MRO* en anglais) change dynamiquement pour " +"gérer des appels coopératifs à :func:`super`. Cette approche est connue sous " +"le nom de la \"appel de la méthode la plus proche\" (*call-next-method* en " +"anglais) dans d'autres langages avec héritage multiple. Elle est plus " +"puissante que le simple appel à super que l'on trouve dans les langages à " +"héritage simple." + +#: ../Doc/tutorial/classes.rst:649 +msgid "" +"Dynamic ordering is necessary because all cases of multiple inheritance " +"exhibit one or more diamond relationships (where at least one of the parent " +"classes can be accessed through multiple paths from the bottommost class). " +"For example, all classes inherit from :class:`object`, so any case of " +"multiple inheritance provides more than one path to reach :class:`object`. " +"To keep the base classes from being accessed more than once, the dynamic " +"algorithm linearizes the search order in a way that preserves the left-to-" +"right ordering specified in each class, that calls each parent only once, " +"and that is monotonic (meaning that a class can be subclassed without " +"affecting the precedence order of its parents). Taken together, these " +"properties make it possible to design reliable and extensible classes with " +"multiple inheritance. For more detail, see https://www.python.org/download/" +"releases/2.3/mro/." +msgstr "" +"L'ordre défini dynamiquement est nécessaire car tous les cas d'héritage " +"multiple comportent une ou plusieurs relations en losange (où au moins une " +"classe peut être accédée à partir de plusieurs chemins en partant de la " +"classe la plus basse). Par exemple, puisque toutes les classes héritent de :" +"class:`object`, tout héritage multiple ouvre plusieurs chemins pour " +"atteindre :class:`object`. Pour qu'une classe de base ne soit pas appelée " +"plusieurs fois, l'algorithme dynamique linéarise l'ordre de recherche d'une " +"façon qui préserve l'ordre d'héritage, de la gauche vers la droite, spécifié " +"dans chaque classe, qui appelle chaque classe parente une seule fois, qui " +"est monotone (ce qui signifie qu'une classe peut être sous-classée sans " +"affecter l'ordre d'héritage de ses parents). Prises ensemble, ces propriétés " +"permettent de concevoir des classes de façon fiable et extensible dans un " +"contexte d'héritage multiple. Pour plus de détails, consultez http://www." +"python.org/download/releases/2.3/mro/." + +#: ../Doc/tutorial/classes.rst:666 +msgid "Private Variables" +msgstr "Variables privées" + +#: ../Doc/tutorial/classes.rst:668 +msgid "" +"\"Private\" instance variables that cannot be accessed except from inside an " +"object don't exist in Python. However, there is a convention that is " +"followed by most Python code: a name prefixed with an underscore (e.g. " +"``_spam``) should be treated as a non-public part of the API (whether it is " +"a function, a method or a data member). It should be considered an " +"implementation detail and subject to change without notice." +msgstr "" +"Les membres \"privés\", qui ne peuvent être accédés que depuis l'intérieur " +"d'un objet, n'existent pas en Python. Toutefois, il existe une convention " +"respectée par la majorité du code Python : un nom préfixé par un tiret bas " +"(comme ``_spam``) doit être considéré comme une partie non publique de l'API " +"(qu'il s'agisse d'une fonction, d'une méthode ou d'un attribut 'données'). " +"Il doit être vu comme un détail d'implémentation pouvant faire l'objet de " +"modifications futures sans préavis." + +#: ../Doc/tutorial/classes.rst:678 +msgid "" +"Since there is a valid use-case for class-private members (namely to avoid " +"name clashes of names with names defined by subclasses), there is limited " +"support for such a mechanism, called :dfn:`name mangling`. Any identifier " +"of the form ``__spam`` (at least two leading underscores, at most one " +"trailing underscore) is textually replaced with ``_classname__spam``, where " +"``classname`` is the current class name with leading underscore(s) " +"stripped. This mangling is done without regard to the syntactic position of " +"the identifier, as long as it occurs within the definition of a class." +msgstr "" +"Dès lors qu'il y a un cas d'utilisation valable pour avoir des attributs " +"privés aux classes (notamment pour éviter des conflits avec des noms définis " +"dans des sous-classes), il existe un support (certes limité) pour un tel " +"mécanisme, appelé :dfn:`name mangling`. Tout identifiant de la forme " +"``__spam`` (avec au moins deux tirets bas en tête et au plus un à la fin) " +"est remplacé textuellement par ``_classname__spam``, où ``classname`` est le " +"nom de la classe sans le ou les premiers tirets-bas. Ce \"découpage\" est " +"effectué sans tenir compte de la position syntaxique de l'identifiant, tant " +"qu'il est présent dans la définition d'une classe." + +#: ../Doc/tutorial/classes.rst:687 +msgid "" +"Name mangling is helpful for letting subclasses override methods without " +"breaking intraclass method calls. For example::" +msgstr "" +"Ce changement de nom est utile pour permettre à des sous-classes de " +"surcharger des méthodes sans casser les appels de méthodes à l'intérieur " +"d'une classe. Par exemple ::" + +#: ../Doc/tutorial/classes.rst:709 +msgid "" +"The above example would work even if ``MappingSubclass`` were to introduce a " +"``__update`` identifier since it is replaced with ``_Mapping__update`` in " +"the ``Mapping`` class and ``_MappingSubclass__update`` in the " +"``MappingSubclass`` class respectively." +msgstr "" +"L'exemple si dessus fonctionnerait même si ``MappingSubclass`` introduisait " +"un identifieur ``__update`` puisqu'il a été remplacé avec " +"``_Mapping__update`` dans la classe ``Mapping`` et " +"``_MappingSubclass__update`` dans la classe ``MappingSubclass`` " +"respectivement." + +#: ../Doc/tutorial/classes.rst:714 +msgid "" +"Note that the mangling rules are designed mostly to avoid accidents; it " +"still is possible to access or modify a variable that is considered " +"private. This can even be useful in special circumstances, such as in the " +"debugger." +msgstr "" +"Notez que ces règles sont conçues avant tout pour éviter les accidents ; il " +"reste possible d'accéder ou de modifier une variable considérée comme " +"privée. Ceci peut même être utile dans certaines circonstances, comme au " +"sein du débogueur." + +#: ../Doc/tutorial/classes.rst:718 +msgid "" +"Notice that code passed to ``exec()`` or ``eval()`` does not consider the " +"classname of the invoking class to be the current class; this is similar to " +"the effect of the ``global`` statement, the effect of which is likewise " +"restricted to code that is byte-compiled together. The same restriction " +"applies to ``getattr()``, ``setattr()`` and ``delattr()``, as well as when " +"referencing ``__dict__`` directly." +msgstr "" +"Remarquez que le code que vous passez à ``exec()``, ``eval()`` ne considère " +"pas le nom de la classe appelante comme étant la classe courante ; le même " +"effet s'applique à la directive ``global`` dont l'effet est, de la même " +"façon, restreint au code compilé dans le même ensemble de byte-code. Les " +"mêmes restrictions s'appliquent à ``getattr()``, ``setattr()`` et " +"``delattr()``, ainsi qu'aux références directes à ``__dict__``." + +#: ../Doc/tutorial/classes.rst:729 +msgid "Odds and Ends" +msgstr "Trucs et astuces" + +#: ../Doc/tutorial/classes.rst:731 +msgid "" +"Sometimes it is useful to have a data type similar to the Pascal \"record\" " +"or C \"struct\", bundling together a few named data items. An empty class " +"definition will do nicely::" +msgstr "" +"Il est parfois utile d'avoir un type de donnée similaire au \"record\" du " +"Pascal ou au *struct* du C, qui regroupent ensemble quelques attributs " +"'données' nommés. La définition d'une classe vide remplit parfaitement ce " +"besoin ::" + +#: ../Doc/tutorial/classes.rst:745 +msgid "" +"A piece of Python code that expects a particular abstract data type can " +"often be passed a class that emulates the methods of that data type " +"instead. For instance, if you have a function that formats some data from a " +"file object, you can define a class with methods :meth:`read` and :meth:`!" +"readline` that get the data from a string buffer instead, and pass it as an " +"argument." +msgstr "" +"À du code Python qui s'attend à recevoir un type de donnée abstrait " +"spécifique, on peut souvent fournir une classe qui simule les méthodes de ce " +"type. Par exemple, à une fonction qui formate des données extraites d'un " +"objet fichier, vous pouvez lui passer comme argument une instance d'une " +"classe qui implémente les méthodes :meth:`read` et :meth:`!readline` en " +"puisant ses données à partir d'un tampon de chaînes de caractères." + +#: ../Doc/tutorial/classes.rst:756 +msgid "" +"Instance method objects have attributes, too: ``m.__self__`` is the instance " +"object with the method :meth:`m`, and ``m.__func__`` is the function object " +"corresponding to the method." +msgstr "" +"Les objets méthodes d'instances ont aussi des attributs : ``m.__self__`` est " +"l'instance d'objet avec la méthode :meth:`m` et ``m.__func__`` est l'objet " +"fonction correspondant à la méthode." + +#: ../Doc/tutorial/classes.rst:764 +msgid "Iterators" +msgstr "Itérateurs" + +#: ../Doc/tutorial/classes.rst:766 +msgid "" +"By now you have probably noticed that most container objects can be looped " +"over using a :keyword:`for` statement::" +msgstr "" +"Vous avez maintenant certainement remarqué que l'on peut itérer sur la " +"plupart des objets conteneurs en utilisant une instruction :keyword:`for` ::" + +#: ../Doc/tutorial/classes.rst:780 +msgid "" +"This style of access is clear, concise, and convenient. The use of " +"iterators pervades and unifies Python. Behind the scenes, the :keyword:" +"`for` statement calls :func:`iter` on the container object. The function " +"returns an iterator object that defines the method :meth:`~iterator." +"__next__` which accesses elements in the container one at a time. When " +"there are no more elements, :meth:`~iterator.__next__` raises a :exc:" +"`StopIteration` exception which tells the :keyword:`!for` loop to " +"terminate. You can call the :meth:`~iterator.__next__` method using the :" +"func:`next` built-in function; this example shows how it all works::" +msgstr "" +"Ce style est simple, concis et pratique. L'utilisation d'itérateurs imprègne " +"et unifie Python. En arrière plan, l'instruction :keyword:`for` appelle la " +"fonction :func:`iter` sur l'objet conteneur. Cette fonction renvoie un objet " +"itérateur qui définit la méthode :meth:`~iterator.__next__`, laquelle accède " +"aux éléments du conteneur un par un. Lorsqu'il n'y a plus d'élément, :meth:" +"`~iterator.__next__` lève une exception :exc:`StopIteration` qui indique à " +"la boucle de l'instruction :keyword:`!for` de se terminer. Vous pouvez " +"appeler la méthode :meth:`~iterator.__next__` en utilisant la fonction " +"native :func:`next`. Cet exemple montre comment tout cela fonctionne ::" + +#: ../Doc/tutorial/classes.rst:805 +msgid "" +"Having seen the mechanics behind the iterator protocol, it is easy to add " +"iterator behavior to your classes. Define an :meth:`__iter__` method which " +"returns an object with a :meth:`~iterator.__next__` method. If the class " +"defines :meth:`__next__`, then :meth:`__iter__` can just return ``self``::" +msgstr "" +"Une fois compris les mécanismes de gestion des itérateurs, il est simple " +"d'ajouter ce comportement à vos classes. Définissez une méthode :meth:" +"`__iter__` qui renvoie un objet disposant d'une méthode :meth:`~iterator." +"__next__`. Si la classe définit elle-même la méthode :meth:`__next__`, " +"alors :meth:`__iter__` peut simplement renvoyer ``self`` ::" + +#: ../Doc/tutorial/classes.rst:842 +msgid "Generators" +msgstr "Générateurs" + +#: ../Doc/tutorial/classes.rst:844 +msgid "" +":term:`Generator`\\s are a simple and powerful tool for creating iterators. " +"They are written like regular functions but use the :keyword:`yield` " +"statement whenever they want to return data. Each time :func:`next` is " +"called on it, the generator resumes where it left off (it remembers all the " +"data values and which statement was last executed). An example shows that " +"generators can be trivially easy to create::" +msgstr "" +"Les :term:`générateurs ` sont des outils simples et puissants " +"pour créer des itérateurs. Ils sont écrits comme des fonctions classiques " +"mais utilisent l'instruction :keyword:`yield` lorsqu'ils veulent renvoyer " +"des données. À chaque fois qu'il est appelé par :func:`next`, le générateur " +"reprend son exécution là où il s'était arrêté (en conservant tout son " +"contexte d'exécution). Un exemple montre très bien combien les générateurs " +"sont simples à créer ::" + +#: ../Doc/tutorial/classes.rst:865 +msgid "" +"Anything that can be done with generators can also be done with class-based " +"iterators as described in the previous section. What makes generators so " +"compact is that the :meth:`__iter__` and :meth:`~generator.__next__` methods " +"are created automatically." +msgstr "" +"Tout ce qui peut être fait avec des générateurs peut également être fait " +"avec des itérateurs basés sur des classes, comme décrit dans le paragraphe " +"précédent. Ce qui rend les générateurs si compacts, c'est que les méthodes :" +"meth:`__iter__` et :meth:`~generator.__next__` sont créées automatiquement." + +#: ../Doc/tutorial/classes.rst:870 +msgid "" +"Another key feature is that the local variables and execution state are " +"automatically saved between calls. This made the function easier to write " +"and much more clear than an approach using instance variables like ``self." +"index`` and ``self.data``." +msgstr "" +"Une autre fonctionnalité clé est que les variables locales ainsi que le " +"contexte d'exécution sont sauvegardés automatiquement entre les appels. Cela " +"simplifie d'autant plus l'écriture de ces fonctions et rend leur code " +"beaucoup plus lisible qu'avec une approche utilisant des variables " +"d'instance telles que ``self.index`` et ``self.data``." + +#: ../Doc/tutorial/classes.rst:875 +msgid "" +"In addition to automatic method creation and saving program state, when " +"generators terminate, they automatically raise :exc:`StopIteration`. In " +"combination, these features make it easy to create iterators with no more " +"effort than writing a regular function." +msgstr "" +"En plus de la création automatique de méthodes et de la sauvegarde du " +"contexte d'exécution, les générateurs lèvent automatiquement une exception :" +"exc:`StopIteration` lorsqu'ils terminent leur exécution. La combinaison de " +"ces fonctionnalités rend très simple la création d'itérateurs, sans plus " +"d'effort que l'écriture d'une fonction classique." + +#: ../Doc/tutorial/classes.rst:884 +msgid "Generator Expressions" +msgstr "Expressions et générateurs" + +#: ../Doc/tutorial/classes.rst:886 +msgid "" +"Some simple generators can be coded succinctly as expressions using a syntax " +"similar to list comprehensions but with parentheses instead of square " +"brackets. These expressions are designed for situations where the generator " +"is used right away by an enclosing function. Generator expressions are more " +"compact but less versatile than full generator definitions and tend to be " +"more memory friendly than equivalent list comprehensions." +msgstr "" +"Des générateurs simples peuvent être codés très rapidement avec des " +"expressions utilisant la même syntaxe que les compréhensions de listes, mais " +"en utilisant des parenthèses à la place des crochets. Ces expressions sont " +"conçues pour des situations où le générateur est utilisé tout de suite dans " +"une fonction. Ces expressions sont plus compactes mais moins souples que des " +"définitions complètes de générateurs et ont tendance à être plus économes en " +"mémoire que leur équivalent en compréhension de listes." + +#: ../Doc/tutorial/classes.rst:893 +msgid "Examples::" +msgstr "Exemples ::" + +#: ../Doc/tutorial/classes.rst:917 +msgid "Footnotes" +msgstr "Notes de bas de page" + +#: ../Doc/tutorial/classes.rst:918 +msgid "" +"Except for one thing. Module objects have a secret read-only attribute " +"called :attr:`~object.__dict__` which returns the dictionary used to " +"implement the module's namespace; the name :attr:`~object.__dict__` is an " +"attribute but not a global name. Obviously, using this violates the " +"abstraction of namespace implementation, and should be restricted to things " +"like post-mortem debuggers." +msgstr "" +"Il existe une exception : les modules disposent d'un attribut secret en " +"lecture seule appelé :attr:`~object.__dict__` qui renvoie le dictionnaire " +"utilisé pour implémenter l'espace de nommage du module ; le nom :attr:" +"`~object.__dict__` est un attribut mais pas un nom global. Évidemment, si " +"vous l'utilisez, vous brisez l'abstraction de l'implémentation des espaces " +"de nommage. Il est donc réservé à des choses comme les débogueurs post-" +"mortem." + +#~ msgid "Exceptions Are Classes Too" +#~ msgstr "Les exceptions sont aussi des classes" + +#~ msgid "" +#~ "User-defined exceptions are identified by classes as well. Using this " +#~ "mechanism it is possible to create extensible hierarchies of exceptions." +#~ msgstr "" +#~ "Les exceptions définies par l'utilisateur sont également définies par des " +#~ "classes. En utilisant ce mécanisme, il est possible de créer des " +#~ "hiérarchies d'exceptions extensibles." + +#~ msgid "" +#~ "There are two new valid (semantic) forms for the :keyword:`raise` " +#~ "statement::" +#~ msgstr "" +#~ "Il y a deux nouvelles formes (sémantiques) pour l'instruction :keyword:" +#~ "`raise` ::" + +#~ msgid "" +#~ "In the first form, ``Class`` must be an instance of :class:`type` or of a " +#~ "class derived from it. The first form is a shorthand for::" +#~ msgstr "" +#~ "Dans la première forme, ``Class`` doit être une instance de :class:`type` " +#~ "ou d'une classe dérivée. La seconde forme est un raccourci pour ::" + +#~ msgid "" +#~ "A class in an :keyword:`except` clause is compatible with an exception if " +#~ "it is the same class or a base class thereof (but not the other way " +#~ "around --- an except clause listing a derived class is not compatible " +#~ "with a base class). For example, the following code will print B, C, D " +#~ "in that order::" +#~ msgstr "" +#~ "Une classe dans une clause :keyword:`except` est compatible avec une " +#~ "exception si elle est de la même classe ou d'une de ses classes dérivées. " +#~ "Mais l'inverse n'est pas vrai, une clause ``except`` spécifiant une " +#~ "classe dérivée n'est pas compatible avec une classe de base. Par exemple, " +#~ "le code suivant affiche B, C et D dans cet ordre ::" + +#~ msgid "" +#~ "Note that if the except clauses were reversed (with ``except B`` first), " +#~ "it would have printed B, B, B --- the first matching except clause is " +#~ "triggered." +#~ msgstr "" +#~ "Notez que si les clauses ``except`` avaient été inversées (avec ``except " +#~ "B`` en premier), il aurait affiché B, B, B --- la première clause " +#~ "``except`` correspondante étant déclenchée." + +#~ msgid "" +#~ "When an error message is printed for an unhandled exception, the " +#~ "exception's class name is printed, then a colon and a space, and finally " +#~ "the instance converted to a string using the built-in function :func:" +#~ "`str`." +#~ msgstr "" +#~ "Quand un message d'erreur est imprimé pour une exception non traitée, la " +#~ "classe de l'exception est indiquée, suivie de deux points, d'un espace et " +#~ "de l'instance convertie en chaîne de caractères via la fonction :func:" +#~ "`str`." diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po new file mode 100644 index 000000000..8c46e2f33 --- /dev/null +++ b/tutorial/controlflow.po @@ -0,0 +1,961 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-06-19 21:37+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/tutorial/controlflow.rst:5 +msgid "More Control Flow Tools" +msgstr "D'autres outils de contrôle de flux" + +#: ../Doc/tutorial/controlflow.rst:7 +msgid "" +"Besides the :keyword:`while` statement just introduced, Python knows the " +"usual control flow statements known from other languages, with some twists." +msgstr "" +"En plus de l'instruction :keyword:`while` qui vient d'être présentée, Python " +"dispose des instructions de contrôle de flux classiques que l'on trouve dans " +"d'autres langages, mais toujours avec ses propres tournures." + +#: ../Doc/tutorial/controlflow.rst:14 +msgid ":keyword:`!if` Statements" +msgstr "L'instruction :keyword:`!if`" + +#: ../Doc/tutorial/controlflow.rst:16 +msgid "" +"Perhaps the most well-known statement type is the :keyword:`if` statement. " +"For example::" +msgstr "" +"L'instruction :keyword:`if` est sans doute la plus connue. Par exemple ::" + +#: ../Doc/tutorial/controlflow.rst:33 +msgid "" +"There can be zero or more :keyword:`elif` parts, and the :keyword:`else` " +"part is optional. The keyword ':keyword:`!elif`' is short for 'else if', " +"and is useful to avoid excessive indentation. An :keyword:`!if` ... :" +"keyword:`!elif` ... :keyword:`!elif` ... sequence is a substitute for the " +"``switch`` or ``case`` statements found in other languages." +msgstr "" +"Il peut y avoir un nombre quelconque de parties :keyword:`elif` et la " +"partie :keyword:`else` est facultative. Le mot clé :keyword:`!elif` est un " +"raccourci pour *else if*, mais permet de gagner un niveau d'indentation. Une " +"séquence :keyword:`!if` ... :keyword:`!elif` ... :keyword:`!elif` ... est " +"par ailleurs équivalente aux instructions ``switch`` ou ``case`` disponibles " +"dans d'autres langages." + +#: ../Doc/tutorial/controlflow.rst:43 +msgid ":keyword:`!for` Statements" +msgstr "L'instruction :keyword:`!for`" + +#: ../Doc/tutorial/controlflow.rst:48 +msgid "" +"The :keyword:`for` statement in Python differs a bit from what you may be " +"used to in C or Pascal. Rather than always iterating over an arithmetic " +"progression of numbers (like in Pascal), or giving the user the ability to " +"define both the iteration step and halting condition (as C), Python's :" +"keyword:`!for` statement iterates over the items of any sequence (a list or " +"a string), in the order that they appear in the sequence. For example (no " +"pun intended):" +msgstr "" +"L'instruction :keyword:`for` que propose Python est un peu différente de " +"celle que l'on peut trouver en C ou en Pascal. Au lieu de toujours itérer " +"sur une suite arithmétique de nombres (comme en Pascal), ou de donner à " +"l'utilisateur la possibilité de définir le pas d'itération et la condition " +"de fin (comme en C), l'instruction :keyword:`!for` en Python itère sur les " +"éléments d'une séquence (qui peut être une liste, une chaîne de " +"caractères…), dans l'ordre dans lequel ils apparaissent dans la séquence. " +"Par exemple :" + +#: ../Doc/tutorial/controlflow.rst:69 +msgid "" +"If you need to modify the sequence you are iterating over while inside the " +"loop (for example to duplicate selected items), it is recommended that you " +"first make a copy. Iterating over a sequence does not implicitly make a " +"copy. The slice notation makes this especially convenient::" +msgstr "" +"Si vous devez modifier la séquence sur laquelle s'effectue l'itération à " +"l'intérieur de la boucle (par exemple pour dupliquer ou supprimer un " +"élément), il est plus que recommandé de commencer par en faire une copie, " +"celle-ci n'étant pas implicite. La notation \"par tranches\" rend cette " +"opération particulièrement simple ::" + +#: ../Doc/tutorial/controlflow.rst:81 +msgid "" +"With ``for w in words:``, the example would attempt to create an infinite " +"list, inserting ``defenestrate`` over and over again." +msgstr "" +"Avec ``for w in words:``, l'exemple tenterait de créer une liste infinie, en " +"insérant ``defenestrate`` indéfiniment." + +#: ../Doc/tutorial/controlflow.rst:88 +msgid "The :func:`range` Function" +msgstr "La fonction :func:`range`" + +#: ../Doc/tutorial/controlflow.rst:90 +msgid "" +"If you do need to iterate over a sequence of numbers, the built-in function :" +"func:`range` comes in handy. It generates arithmetic progressions::" +msgstr "" +"Si vous devez itérer sur une suite de nombres, la fonction native :func:" +"`range` est faite pour cela. Elle génère des suites arithmétiques ::" + +#: ../Doc/tutorial/controlflow.rst:102 +msgid "" +"The given end point is never part of the generated sequence; ``range(10)`` " +"generates 10 values, the legal indices for items of a sequence of length " +"10. It is possible to let the range start at another number, or to specify " +"a different increment (even negative; sometimes this is called the 'step')::" +msgstr "" +"Le dernier élément fourni en paramètre ne fait jamais partie de la liste " +"générée ; ``range(10)`` génère une liste de 10 valeurs, dont les valeurs " +"vont de 0 à 9. Il est possible de spécifier une valeur de début et une " +"valeur d'incrément différentes (y compris négative pour cette dernière, que " +"l'on appelle également parfois le 'pas') ::" + +#: ../Doc/tutorial/controlflow.rst:116 +msgid "" +"To iterate over the indices of a sequence, you can combine :func:`range` " +"and :func:`len` as follows::" +msgstr "" +"Pour itérer sur les indices d'une séquence, on peut combiner les fonctions :" +"func:`range` et :func:`len` ::" + +#: ../Doc/tutorial/controlflow.rst:129 +msgid "" +"In most such cases, however, it is convenient to use the :func:`enumerate` " +"function, see :ref:`tut-loopidioms`." +msgstr "" +"Cependant, dans la plupart des cas, il est plus pratique d'utiliser la " +"fonction :func:`enumerate`. Voyez pour cela :ref:`tut-loopidioms`." + +#: ../Doc/tutorial/controlflow.rst:132 +msgid "A strange thing happens if you just print a range::" +msgstr "Une chose étrange se produit lorsqu'on affiche un range ::" + +#: ../Doc/tutorial/controlflow.rst:137 +msgid "" +"In many ways the object returned by :func:`range` behaves as if it is a " +"list, but in fact it isn't. It is an object which returns the successive " +"items of the desired sequence when you iterate over it, but it doesn't " +"really make the list, thus saving space." +msgstr "" +"L'objet renvoyé par :func:`range` se comporte presque comme une liste, mais " +"ce n'en est pas une. Cet objet génère les éléments de la séquence au fur et " +"à mesure de l'itération, sans réellement produire la liste en tant que " +"telle, économisant ainsi de l'espace." + +#: ../Doc/tutorial/controlflow.rst:142 +msgid "" +"We say such an object is *iterable*, that is, suitable as a target for " +"functions and constructs that expect something from which they can obtain " +"successive items until the supply is exhausted. We have seen that the :" +"keyword:`for` statement is such an *iterator*. The function :func:`list` is " +"another; it creates lists from iterables::" +msgstr "" +"On appelle de tels objets des *iterables*, c'est à dire des objets qui " +"conviennent à des *iterateurs*, des fonctions ou constructions qui " +"s'attendent à quelque chose duquel ils peuvent tirer des éléments, " +"successivement, jusqu'à épuisement. On a vu que l'instruction :keyword:`for` " +"est un itérateur. La fonction :func:`list` en est un autre, qui crée des " +"listes à partir d'itérables ::" + +#: ../Doc/tutorial/controlflow.rst:152 +msgid "" +"Later we will see more functions that return iterables and take iterables as " +"argument." +msgstr "" +"Plus loin nous voyons d'autres fonctions qui donnent des itérables ou en " +"prennent en paramètre." + +#: ../Doc/tutorial/controlflow.rst:158 +msgid "" +":keyword:`!break` and :keyword:`!continue` Statements, and :keyword:`!else` " +"Clauses on Loops" +msgstr "" +"Les instructions :keyword:`!break`, :keyword:`!continue` et les clauses :" +"keyword:`!else` au sein des boucles" + +#: ../Doc/tutorial/controlflow.rst:160 +msgid "" +"The :keyword:`break` statement, like in C, breaks out of the innermost " +"enclosing :keyword:`for` or :keyword:`while` loop." +msgstr "" +"L'instruction :keyword:`break`, comme en C, interrompt la boucle :keyword:" +"`for` ou :keyword:`while` la plus profonde." + +#: ../Doc/tutorial/controlflow.rst:163 +msgid "" +"Loop statements may have an :keyword:`!else` clause; it is executed when the " +"loop terminates through exhaustion of the list (with :keyword:`for`) or when " +"the condition becomes false (with :keyword:`while`), but not when the loop " +"is terminated by a :keyword:`break` statement. This is exemplified by the " +"following loop, which searches for prime numbers::" +msgstr "" +"Les boucles peuvent également disposer d'une instruction :keyword:`!else` ; " +"celle-ci est exécutée lorsqu'une boucle se termine alors que tous ses " +"éléments ont été traités (dans le cas d'un :keyword:`for`) ou que la " +"condition devient fausse (dans le cas d'un :keyword:`while`), mais pas " +"lorsque la boucle est interrompue par une instruction :keyword:`break`. " +"L'exemple suivant, qui effectue une recherche de nombres premiers, en est " +"une démonstration ::" + +#: ../Doc/tutorial/controlflow.rst:187 +msgid "" +"(Yes, this is the correct code. Look closely: the ``else`` clause belongs " +"to the :keyword:`for` loop, **not** the :keyword:`if` statement.)" +msgstr "" +"(Oui, ce code est correct. Regardez attentivement : l'instruction ``else`` " +"est rattachée à la boucle :keyword:`for`, et **non** à l'instruction :" +"keyword:`if`.)" + +#: ../Doc/tutorial/controlflow.rst:190 +msgid "" +"When used with a loop, the ``else`` clause has more in common with the " +"``else`` clause of a :keyword:`try` statement than it does that of :keyword:" +"`if` statements: a :keyword:`!try` statement's ``else`` clause runs when no " +"exception occurs, and a loop's ``else`` clause runs when no ``break`` " +"occurs. For more on the :keyword:`!try` statement and exceptions, see :ref:" +"`tut-handling`." +msgstr "" +"Lorsqu'elle utilisée dans une boucle, la clause ``else`` est donc plus " +"proche de celle associée à une instruction :keyword:`try` que de celle " +"associée à une instruction :keyword:`if` : la clause ``else`` d'une " +"instruction :keyword:`!try` s'exécute lorsqu'aucune exception n'est " +"déclenchée, et celle d'une boucle lorsque aucun ``break`` n'intervient. Plus " +"plus d'informations sur l'instruction :keyword:`!try` et le traitement des " +"exceptions, consultez :ref:`tut-handling`." + +#: ../Doc/tutorial/controlflow.rst:197 +msgid "" +"The :keyword:`continue` statement, also borrowed from C, continues with the " +"next iteration of the loop::" +msgstr "" +"L'instruction :keyword:`continue`, également empruntée au C, fait passer la " +"boucle à son itération suivante ::" + +#: ../Doc/tutorial/controlflow.rst:217 +msgid ":keyword:`!pass` Statements" +msgstr "L'instruction :keyword:`!pass`" + +#: ../Doc/tutorial/controlflow.rst:219 +msgid "" +"The :keyword:`pass` statement does nothing. It can be used when a statement " +"is required syntactically but the program requires no action. For example::" +msgstr "" +"L'instruction :keyword:`pass` ne fait rien. Elle peut être utilisée " +"lorsqu'une instruction est nécessaire pour fournir une syntaxe correcte, " +"mais qu'aucune action ne doit être effectuée. Par exemple ::" + +#: ../Doc/tutorial/controlflow.rst:226 +msgid "This is commonly used for creating minimal classes::" +msgstr "" +"On utilise couramment cette instruction pour créer des classes minimales ::" + +#: ../Doc/tutorial/controlflow.rst:232 +msgid "" +"Another place :keyword:`pass` can be used is as a place-holder for a " +"function or conditional body when you are working on new code, allowing you " +"to keep thinking at a more abstract level. The :keyword:`!pass` is silently " +"ignored::" +msgstr "" +"Un autre cas d'utilisation du :keyword:`pass` est de réserver un espace en " +"phase de développement pour une fonction ou un traitement conditionnel, vous " +"permettant ainsi de construire votre code à un niveau plus abstrait. " +"L'instruction :keyword:`!pass` est alors ignorée silencieusement ::" + +#: ../Doc/tutorial/controlflow.rst:243 +msgid "Defining Functions" +msgstr "Définir des fonctions" + +#: ../Doc/tutorial/controlflow.rst:245 +msgid "" +"We can create a function that writes the Fibonacci series to an arbitrary " +"boundary::" +msgstr "" +"On peut créer une fonction qui écrit la suite de Fibonacci jusqu'à une " +"limite imposée ::" + +#: ../Doc/tutorial/controlflow.rst:265 +msgid "" +"The keyword :keyword:`def` introduces a function *definition*. It must be " +"followed by the function name and the parenthesized list of formal " +"parameters. The statements that form the body of the function start at the " +"next line, and must be indented." +msgstr "" +"Le mot-clé :keyword:`def` introduit une *définition* de fonction. Il doit " +"être suivi du nom de la fonction et d'une liste, entre parenthèses, de ses " +"paramètres. L'instruction qui constitue le corps de la fonction débute à la " +"ligne suivante et doit être indentée." + +#: ../Doc/tutorial/controlflow.rst:270 +msgid "" +"The first statement of the function body can optionally be a string literal; " +"this string literal is the function's documentation string, or :dfn:" +"`docstring`. (More about docstrings can be found in the section :ref:`tut-" +"docstrings`.) There are tools which use docstrings to automatically produce " +"online or printed documentation, or to let the user interactively browse " +"through code; it's good practice to include docstrings in code that you " +"write, so make a habit of it." +msgstr "" +"La première instruction d'une fonction peut, de façon facultative, être une " +"chaîne de caractères littérale ; cette chaîne de caractères sera alors la " +"chaîne de documentation de la fonction, appelée :dfn:`docstring` (consultez " +"la section :ref:`tut-docstrings` pour en savoir plus). Il existe des outils " +"qui utilisent ces chaînes de documentation pour générer automatiquement une " +"documentation en ligne ou imprimée, ou pour permettre à l'utilisateur de " +"naviguer de façon interactive dans le code ; prenez-en l'habitude, c'est une " +"bonne pratique que de documenter le code que vous écrivez." + +#: ../Doc/tutorial/controlflow.rst:277 +msgid "" +"The *execution* of a function introduces a new symbol table used for the " +"local variables of the function. More precisely, all variable assignments " +"in a function store the value in the local symbol table; whereas variable " +"references first look in the local symbol table, then in the local symbol " +"tables of enclosing functions, then in the global symbol table, and finally " +"in the table of built-in names. Thus, global variables and variables of " +"enclosing functions cannot be directly assigned a value within a function " +"(unless, for global variables, named in a :keyword:`global` statement, or, " +"for variables of enclosing functions, named in a :keyword:`nonlocal` " +"statement), although they may be referenced." +msgstr "" +"*L'exécution* d'une fonction introduit une nouvelle table de symboles " +"utilisée par les variables locales de la fonction. Plus précisément, toutes " +"les affectations de variables effectuées au sein d'une fonction stockent la " +"valeur dans la table de symboles locale ; en revanche, les références de " +"variables sont recherchées dans la table de symboles locale, puis dans la " +"table de symboles locale des fonctions englobantes, puis dans la table de " +"symboles globale et finalement dans la table de noms des primitives. Par " +"conséquent, bien qu'elles puissent être référencées, il est impossible " +"d'affecter une valeur à une variable globale ou à une variable d'une " +"fonction englobante (sauf pour les variables globales désignées dans une " +"instruction :keyword:`global` et pour les variables des fonctions " +"englobantes désignées dans une instruction :keyword:`nonlocal`)." + +#: ../Doc/tutorial/controlflow.rst:288 +msgid "" +"The actual parameters (arguments) to a function call are introduced in the " +"local symbol table of the called function when it is called; thus, arguments " +"are passed using *call by value* (where the *value* is always an object " +"*reference*, not the value of the object). [#]_ When a function calls " +"another function, a new local symbol table is created for that call." +msgstr "" +"Les paramètres effectifs (arguments) d'une fonction sont introduits dans la " +"table de symboles locale de la fonction appelée au moment où elle est " +"appelée ; par conséquent, les passages de paramètres se font *par valeur*, " +"la *valeur* étant toujours une *référence* à un objet et non la valeur de " +"l'objet lui-même. [#]_ Lorsqu'une fonction appelle une autre fonction, une " +"nouvelle table de symboles locale est créée pour cet appel." + +#: ../Doc/tutorial/controlflow.rst:294 +msgid "" +"A function definition introduces the function name in the current symbol " +"table. The value of the function name has a type that is recognized by the " +"interpreter as a user-defined function. This value can be assigned to " +"another name which can then also be used as a function. This serves as a " +"general renaming mechanism::" +msgstr "" +"Une définition de fonction introduit le nom de la fonction dans la table de " +"symboles courante. La valeur du nom de la fonction est un type qui est " +"reconnu par l'interpréteur comme une fonction définie par l'utilisateur. " +"Cette valeur peut être affectée à un autre nom qui pourra alors être utilisé " +"également comme une fonction. Ceci fournit un mécanisme de renommage " +"général ::" + +#: ../Doc/tutorial/controlflow.rst:306 +msgid "" +"Coming from other languages, you might object that ``fib`` is not a function " +"but a procedure since it doesn't return a value. In fact, even functions " +"without a :keyword:`return` statement do return a value, albeit a rather " +"boring one. This value is called ``None`` (it's a built-in name). Writing " +"the value ``None`` is normally suppressed by the interpreter if it would be " +"the only value written. You can see it if you really want to using :func:" +"`print`::" +msgstr "" +"Si vous venez d'autres langages, vous pouvez penser que ``fib`` n'est pas " +"une fonction mais une procédure, puisqu'elle ne renvoie pas de résultat. En " +"fait, même les fonctions sans instruction :keyword:`return` renvoient une " +"valeur, quoique ennuyeuse. Cette valeur est appelée ``None`` (c'est le nom " +"d'une primitive). Écrire la valeur ``None`` est normalement supprimé par " +"l'interpréteur lorsqu'il s'agit de la seule valeur qui doit être écrite. " +"Vous pouvez le constater, si vous y tenez vraiment, en utilisant :func:" +"`print` ::" + +#: ../Doc/tutorial/controlflow.rst:317 +msgid "" +"It is simple to write a function that returns a list of the numbers of the " +"Fibonacci series, instead of printing it::" +msgstr "" +"Il est facile d'écrire une fonction qui renvoie une liste de la série de " +"Fibonacci au lieu de l'afficher ::" + +#: ../Doc/tutorial/controlflow.rst:333 +msgid "This example, as usual, demonstrates some new Python features:" +msgstr "" +"Cet exemple, comme d'habitude, illustre de nouvelles fonctionnalités de " +"Python :" + +#: ../Doc/tutorial/controlflow.rst:335 +msgid "" +"The :keyword:`return` statement returns with a value from a function. :" +"keyword:`!return` without an expression argument returns ``None``. Falling " +"off the end of a function also returns ``None``." +msgstr "" +"L'instruction :keyword:`return` provoque la sortie de la fonction en " +"renvoyant une valeur. :keyword:`!return` sans expression en paramètre " +"renvoie ``None``. Arriver à la fin d'une fonction renvoie également ``None``." + +#: ../Doc/tutorial/controlflow.rst:339 +msgid "" +"The statement ``result.append(a)`` calls a *method* of the list object " +"``result``. A method is a function that 'belongs' to an object and is named " +"``obj.methodname``, where ``obj`` is some object (this may be an " +"expression), and ``methodname`` is the name of a method that is defined by " +"the object's type. Different types define different methods. Methods of " +"different types may have the same name without causing ambiguity. (It is " +"possible to define your own object types and methods, using *classes*, see :" +"ref:`tut-classes`) The method :meth:`append` shown in the example is defined " +"for list objects; it adds a new element at the end of the list. In this " +"example it is equivalent to ``result = result + [a]``, but more efficient." +msgstr "" +"L'instruction ``result.append(a)`` appelle une *méthode* de l'objet " +"``result`` qui est une liste. Une méthode est une fonction qui \"appartient" +"\" à un objet et qui est nommée ``obj.methodname``, où ``obj`` est un objet " +"(il peut également s'agir d'une expression) et ``methodname`` est le nom " +"d'une méthode que le type de l'objet définit. Différents types définissent " +"différentes méthodes. Des méthodes de différents types peuvent porter le " +"même nom sans qu'il n'y ait d'ambigüité (vous pouvez définir vos propres " +"types d'objets et leurs méthodes en utilisant des *classes*, voir :ref:`tut-" +"classes`). La méthode :meth:`append` donnée dans cet exemple est définie " +"pour les listes ; elle ajoute un nouvel élément à la fin de la liste. Dans " +"cet exemple, elle est l'équivalent de ``result = result + [a]``, mais elle " +"est plus efficace." + +#: ../Doc/tutorial/controlflow.rst:354 +msgid "More on Defining Functions" +msgstr "D'avantage sur la définition des fonctions" + +#: ../Doc/tutorial/controlflow.rst:356 +msgid "" +"It is also possible to define functions with a variable number of arguments. " +"There are three forms, which can be combined." +msgstr "" +"Il est également possible de définir des fonctions avec un nombre variable " +"d'arguments. Trois syntaxes peuvent être utilisées, éventuellement combinées." + +#: ../Doc/tutorial/controlflow.rst:363 +msgid "Default Argument Values" +msgstr "Valeur par défaut des arguments" + +#: ../Doc/tutorial/controlflow.rst:365 +msgid "" +"The most useful form is to specify a default value for one or more " +"arguments. This creates a function that can be called with fewer arguments " +"than it is defined to allow. For example::" +msgstr "" +"La forme la plus utile consiste à indiquer une valeur par défaut pour " +"certains arguments. Ceci crée une fonction qui pourra être appelée avec " +"moins d'arguments que ceux présents dans sa définition. Par exemple ::" + +#: ../Doc/tutorial/controlflow.rst:381 +msgid "This function can be called in several ways:" +msgstr "Cette fonction peut être appelée de plusieurs façons :" + +#: ../Doc/tutorial/controlflow.rst:383 +msgid "" +"giving only the mandatory argument: ``ask_ok('Do you really want to quit?')``" +msgstr "" +"en ne fournissant que les arguments obligatoires : ``ask_ok('Do you really " +"want to quit?')``" + +#: ../Doc/tutorial/controlflow.rst:385 +msgid "" +"giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', " +"2)``" +msgstr "" +"en fournissant une partie des arguments facultatifs : ``ask_ok('OK to " +"overwrite the file?', 2)``" + +#: ../Doc/tutorial/controlflow.rst:387 +msgid "" +"or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come " +"on, only yes or no!')``" +msgstr "" +"en fournissant tous les arguments : ``ask_ok('OK to overwrite the file?', 2, " +"'Come on, only yes or no!')``" + +#: ../Doc/tutorial/controlflow.rst:390 +msgid "" +"This example also introduces the :keyword:`in` keyword. This tests whether " +"or not a sequence contains a certain value." +msgstr "" +"Cet exemple présente également le mot-clé :keyword:`in`. Celui-ci permet de " +"tester si une séquence contient une certaine valeur." + +#: ../Doc/tutorial/controlflow.rst:393 +msgid "" +"The default values are evaluated at the point of function definition in the " +"*defining* scope, so that ::" +msgstr "" +"Les valeurs par défaut sont évaluées lors de la définition de la fonction " +"dans la portée de *définition*, de telle sorte que ::" + +#: ../Doc/tutorial/controlflow.rst:404 +msgid "will print ``5``." +msgstr "affiche ``5``." + +#: ../Doc/tutorial/controlflow.rst:406 +msgid "" +"**Important warning:** The default value is evaluated only once. This makes " +"a difference when the default is a mutable object such as a list, " +"dictionary, or instances of most classes. For example, the following " +"function accumulates the arguments passed to it on subsequent calls::" +msgstr "" +"**Avertissement important :** la valeur par défaut n'est évaluée qu'une " +"seule fois. Ceci fait une différence lorsque cette valeur par défaut est un " +"objet muable tel qu'une liste, un dictionnaire ou des instances de la " +"plupart des classes. Par exemple, la fonction suivante accumule les " +"arguments qui lui sont passés au fil des appels successifs ::" + +#: ../Doc/tutorial/controlflow.rst:419 +msgid "This will print ::" +msgstr "Ceci affiche ::" + +#: ../Doc/tutorial/controlflow.rst:425 +msgid "" +"If you don't want the default to be shared between subsequent calls, you can " +"write the function like this instead::" +msgstr "" +"Si vous ne voulez pas que cette valeur par défaut soit partagée entre des " +"appels successifs, vous pouvez écrire la fonction de cette façon ::" + +#: ../Doc/tutorial/controlflow.rst:438 +msgid "Keyword Arguments" +msgstr "Les arguments nommés" + +#: ../Doc/tutorial/controlflow.rst:440 +msgid "" +"Functions can also be called using :term:`keyword arguments ` of the form ``kwarg=value``. For instance, the following " +"function::" +msgstr "" +"Les fonctions peuvent également être appelées en utilisant des :term:" +"`arguments nommés ` sous la forme ``kwarg=value``. Par " +"exemple, la fonction suivante ::" + +#: ../Doc/tutorial/controlflow.rst:449 +msgid "" +"accepts one required argument (``voltage``) and three optional arguments " +"(``state``, ``action``, and ``type``). This function can be called in any " +"of the following ways::" +msgstr "" +"accepte un argument obligatoire (``voltage``) et trois arguments facultatifs " +"(``state``, ``action`` et ``type``). Cette fonction peut être appelée de " +"n'importe laquelle des façons suivantes ::" + +#: ../Doc/tutorial/controlflow.rst:460 +msgid "but all the following calls would be invalid::" +msgstr "mais tous les appels qui suivent sont incorrects ::" + +#: ../Doc/tutorial/controlflow.rst:467 +msgid "" +"In a function call, keyword arguments must follow positional arguments. All " +"the keyword arguments passed must match one of the arguments accepted by the " +"function (e.g. ``actor`` is not a valid argument for the ``parrot`` " +"function), and their order is not important. This also includes non-" +"optional arguments (e.g. ``parrot(voltage=1000)`` is valid too). No argument " +"may receive a value more than once. Here's an example that fails due to this " +"restriction::" +msgstr "" +"Dans un appel de fonction, les arguments nommés doivent suivre les arguments " +"positionnés. Tous les arguments nommés doivent correspondre à l'un des " +"arguments acceptés par la fonction (par exemple, ``actor`` n'est pas un " +"argument accepté par la fonction ``parrot``), mais leur ordre n'est pas " +"important. Ceci inclut également les arguments obligatoires " +"(``parrot(voltage=1000)`` est également correct). Aucun argument ne peut " +"recevoir une valeur plus d'une fois, comme l'illustre cet exemple incorrect " +"du fait de cette restriction ::" + +#: ../Doc/tutorial/controlflow.rst:483 +msgid "" +"When a final formal parameter of the form ``**name`` is present, it receives " +"a dictionary (see :ref:`typesmapping`) containing all keyword arguments " +"except for those corresponding to a formal parameter. This may be combined " +"with a formal parameter of the form ``*name`` (described in the next " +"subsection) which receives a :ref:`tuple ` containing the " +"positional arguments beyond the formal parameter list. (``*name`` must " +"occur before ``**name``.) For example, if we define a function like this::" +msgstr "" +"Quand un dernier paramètre formel est présent sous la forme ``**name``, il " +"reçoit un dictionnaire (voir :ref:`typesmapping`) contenant tous les " +"arguments nommés à l'exception de ceux correspondant à un paramètre formel. " +"Ceci peut être combiné à un paramètre formel sous la forme ``*name`` (décrit " +"dans la section suivante) qui lui reçoit un :ref:`n-uplet ` " +"contenant les arguments positionnés au-delà de la liste des paramètres " +"formels (``*name`` doit être présent avant ``**name``). Par exemple, si vous " +"définissez une fonction comme ceci ::" + +#: ../Doc/tutorial/controlflow.rst:500 +msgid "It could be called like this::" +msgstr "Elle pourrait être appelée comme ceci ::" + +#: ../Doc/tutorial/controlflow.rst:508 +msgid "and of course it would print:" +msgstr "et, bien sûr, elle affiche :" + +#: ../Doc/tutorial/controlflow.rst:521 +msgid "" +"Note that the order in which the keyword arguments are printed is guaranteed " +"to match the order in which they were provided in the function call." +msgstr "" +"Notez que Python garantit que l'ordre d'affichage des arguments est le même " +"que l'ordre dans lesquels ils sont fournis lors de l'appel à la fonction." + +#: ../Doc/tutorial/controlflow.rst:528 +msgid "Arbitrary Argument Lists" +msgstr "Listes d'arguments arbitraires" + +#: ../Doc/tutorial/controlflow.rst:533 +msgid "" +"Finally, the least frequently used option is to specify that a function can " +"be called with an arbitrary number of arguments. These arguments will be " +"wrapped up in a tuple (see :ref:`tut-tuples`). Before the variable number " +"of arguments, zero or more normal arguments may occur. ::" +msgstr "" +"Pour terminer, l'option la moins fréquente consiste à indiquer qu'une " +"fonction peut être appelée avec un nombre arbitraire d'arguments. Ces " +"arguments sont intégrés dans un tuple (voir :ref:`tut-tuples`). Avant le " +"nombre variable d'arguments, zéro arguments normaux ou plus peuvent " +"apparaître ::" + +#: ../Doc/tutorial/controlflow.rst:542 +msgid "" +"Normally, these ``variadic`` arguments will be last in the list of formal " +"parameters, because they scoop up all remaining input arguments that are " +"passed to the function. Any formal parameters which occur after the " +"``*args`` parameter are 'keyword-only' arguments, meaning that they can only " +"be used as keywords rather than positional arguments. ::" +msgstr "" +"Normalement, ces arguments ``variadiques`` sont les derniers paramètres, " +"parce qu'ils agrègent toutes les valeurs suivantes. Tout paramètre placé " +"après le paramètre ``*arg`` ne pourra être utilisé que par son nom. ::" + +#: ../Doc/tutorial/controlflow.rst:559 +msgid "Unpacking Argument Lists" +msgstr "Séparation des listes d'arguments" + +#: ../Doc/tutorial/controlflow.rst:561 +msgid "" +"The reverse situation occurs when the arguments are already in a list or " +"tuple but need to be unpacked for a function call requiring separate " +"positional arguments. For instance, the built-in :func:`range` function " +"expects separate *start* and *stop* arguments. If they are not available " +"separately, write the function call with the ``*`` operator to unpack the " +"arguments out of a list or tuple::" +msgstr "" +"La situation inverse intervient lorsque les arguments sont déjà dans une " +"liste ou un tuple mais doivent être séparés pour un appel de fonction " +"nécessitant des arguments positionnés séparés. Par exemple, la primitive :" +"func:`range` attend des arguments *start* et *stop* distincts. S'ils ne sont " +"pas disponibles séparément, écrivez l'appel de fonction en utilisant " +"l'opérateur ``*`` pour séparer les arguments présents dans une liste ou un " +"tuple ::" + +#: ../Doc/tutorial/controlflow.rst:577 +msgid "" +"In the same fashion, dictionaries can deliver keyword arguments with the " +"``**`` operator::" +msgstr "" +"De la même façon, les dictionnaires peuvent fournir des arguments nommés en " +"utilisant l'opérateur ``**`` ::" + +#: ../Doc/tutorial/controlflow.rst:593 +msgid "Lambda Expressions" +msgstr "Fonctions anonymes" + +#: ../Doc/tutorial/controlflow.rst:595 +msgid "" +"Small anonymous functions can be created with the :keyword:`lambda` keyword. " +"This function returns the sum of its two arguments: ``lambda a, b: a+b``. " +"Lambda functions can be used wherever function objects are required. They " +"are syntactically restricted to a single expression. Semantically, they are " +"just syntactic sugar for a normal function definition. Like nested function " +"definitions, lambda functions can reference variables from the containing " +"scope::" +msgstr "" +"Avec le mot-clé :keyword:`lambda`, vous pouvez créer de petites fonctions " +"anonymes. En voici une qui renvoie la somme de ses deux arguments : ``lambda " +"a, b: a+b``. Les fonctions lambda peuvent être utilisées partout où un objet " +"fonction est attendu. Elles sont syntaxiquement restreintes à une seule " +"expression. Sémantiquement, elles ne sont que du sucre syntaxique pour une " +"définition de fonction normale. Comme les fonctions imbriquées, les " +"fonctions lambda peuvent référencer des variables de la portée englobante ::" + +#: ../Doc/tutorial/controlflow.rst:612 +msgid "" +"The above example uses a lambda expression to return a function. Another " +"use is to pass a small function as an argument::" +msgstr "" +"L'exemple précédent utilise une fonction anonyme pour renvoyer une fonction. " +"Une autre utilisation classique est de donner une fonction minimaliste " +"directement en tant que paramètre ::" + +#: ../Doc/tutorial/controlflow.rst:624 +msgid "Documentation Strings" +msgstr "Chaînes de documentation" + +#: ../Doc/tutorial/controlflow.rst:631 +msgid "" +"Here are some conventions about the content and formatting of documentation " +"strings." +msgstr "" +"Voici quelques conventions concernant le contenu et le format des chaînes de " +"documentation." + +#: ../Doc/tutorial/controlflow.rst:634 +msgid "" +"The first line should always be a short, concise summary of the object's " +"purpose. For brevity, it should not explicitly state the object's name or " +"type, since these are available by other means (except if the name happens " +"to be a verb describing a function's operation). This line should begin " +"with a capital letter and end with a period." +msgstr "" +"La première ligne devrait toujours être courte et résumer de manière concise " +"l'utilité de l'objet. Afin d'être bref, nul besoin de rappeler le nom de " +"l'objet ou son type, qui sont accessibles par d'autres moyens (sauf si le " +"nom est un verbe qui décrit une opération). Cette ligne devrait commencer " +"avec une majuscule et se terminer par un point." + +#: ../Doc/tutorial/controlflow.rst:640 +msgid "" +"If there are more lines in the documentation string, the second line should " +"be blank, visually separating the summary from the rest of the description. " +"The following lines should be one or more paragraphs describing the object's " +"calling conventions, its side effects, etc." +msgstr "" +"S'il y a d'autres lignes dans la chaîne de documentation, la deuxième ligne " +"devrait être vide, pour la séparer visuellement du reste de la description. " +"Les autres lignes peuvent alors constituer un ou plusieurs paragraphes " +"décrivant le mode d'utilisation de l'objet, ses effets de bord, etc." + +#: ../Doc/tutorial/controlflow.rst:645 +msgid "" +"The Python parser does not strip indentation from multi-line string literals " +"in Python, so tools that process documentation have to strip indentation if " +"desired. This is done using the following convention. The first non-blank " +"line *after* the first line of the string determines the amount of " +"indentation for the entire documentation string. (We can't use the first " +"line since it is generally adjacent to the string's opening quotes so its " +"indentation is not apparent in the string literal.) Whitespace \"equivalent" +"\" to this indentation is then stripped from the start of all lines of the " +"string. Lines that are indented less should not occur, but if they occur " +"all their leading whitespace should be stripped. Equivalence of whitespace " +"should be tested after expansion of tabs (to 8 spaces, normally)." +msgstr "" +"L'analyseur de code Python ne supprime pas l'indentation des chaînes de " +"caractères littérales multi-lignes, donc les outils qui utilisent la " +"documentation doivent si besoin faire cette opération eux-mêmes. La " +"convention suivante s'applique : la première ligne non vide *après* la " +"première détermine la profondeur d'indentation de l'ensemble de la chaîne de " +"documentation (on ne peut pas utiliser la première ligne qui est " +"généralement accolée aux guillemets d'ouverture de la chaîne de caractères " +"et dont l'indentation n'est donc pas visible). Les espaces \"correspondant\" " +"à cette profondeur d'indentation sont alors supprimés du début de chacune " +"des lignes de la chaîne. Aucune ligne ne devrait présenter un niveau " +"d'indentation inférieur mais si cela arrive, toutes les espaces situés en " +"début de ligne doivent être supprimées. L'équivalent des espaces doit être " +"testé après expansion des tabulations (normalement remplacés par 4 espaces)." + +#: ../Doc/tutorial/controlflow.rst:657 +msgid "Here is an example of a multi-line docstring::" +msgstr "Voici un exemple de chaîne de documentation multi-lignes ::" + +#: ../Doc/tutorial/controlflow.rst:675 +msgid "Function Annotations" +msgstr "Annotations de fonctions" + +#: ../Doc/tutorial/controlflow.rst:683 +msgid "" +":ref:`Function annotations ` are completely optional metadata " +"information about the types used by user-defined functions (see :pep:`3107` " +"and :pep:`484` for more information)." +msgstr "" +":ref:`Les annotations de fonction ` sont des métadonnées " +"optionnelles décrivant les types utilisés par une fonction définie par " +"l'utilisateur (voir les :pep:`3107` et :pep:`484` pour plus d'informations)." + +#: ../Doc/tutorial/controlflow.rst:687 +msgid "" +":term:`Annotations ` are stored in the :attr:" +"`__annotations__` attribute of the function as a dictionary and have no " +"effect on any other part of the function. Parameter annotations are defined " +"by a colon after the parameter name, followed by an expression evaluating to " +"the value of the annotation. Return annotations are defined by a literal ``-" +">``, followed by an expression, between the parameter list and the colon " +"denoting the end of the :keyword:`def` statement. The following example has " +"a positional argument, a keyword argument, and the return value annotated::" +msgstr "" +"Les :term:`annotations ` sont stockées dans l'attribut :" +"attr:`__annotations__` de la fonction, sous forme d'un dictionnaire, et " +"n'ont aucun autre effet. Les annotations sur les paramètres sont définies " +"par deux points (`:`) après le nom du paramètre suivi d'une expression " +"donnant la valeur de l'annotation. Les annotations de retour sont définies " +"par ``->`` suivi d'une expression, entre la liste des paramètres et les deux " +"points de fin de l'instruction :keyword:`def`. L'exemple suivant a un " +"paramètre positionnel, un paramètre nommé et la valeur de retour annotés ::" + +#: ../Doc/tutorial/controlflow.rst:709 +msgid "Intermezzo: Coding Style" +msgstr "Aparté : le style de codage" + +#: ../Doc/tutorial/controlflow.rst:714 +msgid "" +"Now that you are about to write longer, more complex pieces of Python, it is " +"a good time to talk about *coding style*. Most languages can be written (or " +"more concise, *formatted*) in different styles; some are more readable than " +"others. Making it easy for others to read your code is always a good idea, " +"and adopting a nice coding style helps tremendously for that." +msgstr "" +"Maintenant que vous êtes prêt à écrire des programmes plus longs et plus " +"complexes, il est temps de parler du *style de codage*. La plupart des " +"langages peuvent être écrits (ou plutôt *formatés*) selon différents " +"styles ; certains sont plus lisibles que d'autres. Rendre la lecture de " +"votre code plus facile aux autres est toujours une bonne idée et adopter un " +"bon style de codage peut énormément vous y aider." + +#: ../Doc/tutorial/controlflow.rst:720 +msgid "" +"For Python, :pep:`8` has emerged as the style guide that most projects " +"adhere to; it promotes a very readable and eye-pleasing coding style. Every " +"Python developer should read it at some point; here are the most important " +"points extracted for you:" +msgstr "" +"En Python, la plupart des projets adhèrent au style défini dans la :pep:" +"`8` ; elle met en avant un style de codage très lisible et agréable à l’œil. " +"Chaque développeur Python se doit donc de la lire et de s'en inspirer autant " +"que possible ; voici ses principaux points notables :" + +#: ../Doc/tutorial/controlflow.rst:725 +msgid "Use 4-space indentation, and no tabs." +msgstr "Utilisez des indentations de 4 espaces et pas de tabulation." + +#: ../Doc/tutorial/controlflow.rst:727 +msgid "" +"4 spaces are a good compromise between small indentation (allows greater " +"nesting depth) and large indentation (easier to read). Tabs introduce " +"confusion, and are best left out." +msgstr "" +"4 espaces constituent un bon compromis entre une indentation courte (qui " +"permet une profondeur d'imbrication plus importante) et une longue (qui rend " +"le code plus facile à lire). Les tabulations introduisent de la confusion et " +"doivent être proscrites autant que possible." + +#: ../Doc/tutorial/controlflow.rst:731 +msgid "Wrap lines so that they don't exceed 79 characters." +msgstr "" +"Faites en sorte que les lignes ne dépassent pas 79 caractères, au besoin en " +"insérant des retours à la ligne." + +#: ../Doc/tutorial/controlflow.rst:733 +msgid "" +"This helps users with small displays and makes it possible to have several " +"code files side-by-side on larger displays." +msgstr "" +"Vous facilitez ainsi la lecture pour les utilisateurs qui n'ont qu'un petit " +"écran et, pour les autres, cela leur permet de visualiser plusieurs fichiers " +"côte à côte." + +#: ../Doc/tutorial/controlflow.rst:736 +msgid "" +"Use blank lines to separate functions and classes, and larger blocks of code " +"inside functions." +msgstr "" +"Utilisez des lignes vides pour séparer les fonctions et les classes, ou pour " +"scinder de gros blocs de code à l'intérieur de fonctions." + +#: ../Doc/tutorial/controlflow.rst:739 +msgid "When possible, put comments on a line of their own." +msgstr "" +"Lorsque c'est possible, placez les commentaires sur leurs propres lignes." + +#: ../Doc/tutorial/controlflow.rst:741 +msgid "Use docstrings." +msgstr "Utilisez les chaînes de documentation." + +#: ../Doc/tutorial/controlflow.rst:743 +msgid "" +"Use spaces around operators and after commas, but not directly inside " +"bracketing constructs: ``a = f(1, 2) + g(3, 4)``." +msgstr "" +"Utilisez des espaces autour des opérateurs et après les virgules, mais pas " +"juste à l'intérieur des parenthèses : ``a = f(1, 2) + g(3, 4)``." + +#: ../Doc/tutorial/controlflow.rst:746 +msgid "" +"Name your classes and functions consistently; the convention is to use " +"``CamelCase`` for classes and ``lower_case_with_underscores`` for functions " +"and methods. Always use ``self`` as the name for the first method argument " +"(see :ref:`tut-firstclasses` for more on classes and methods)." +msgstr "" +"Nommez toujours vos classes et fonctions de la même manière ; la convention " +"est d'utiliser une notation ``CamelCase`` pour les classes, et " +"``minuscules_avec_trait_bas`` pour les fonctions et méthodes. Utilisez " +"toujours ``self`` comme nom du premier argument des méthodes (voyez :ref:" +"`tut-firstclasses` pour en savoir plus sur les classes et les méthodes)." + +#: ../Doc/tutorial/controlflow.rst:751 +msgid "" +"Don't use fancy encodings if your code is meant to be used in international " +"environments. Python's default, UTF-8, or even plain ASCII work best in any " +"case." +msgstr "" +"N'utilisez pas d'encodage exotique dès lors que votre code est censé être " +"utilisé dans des environnements internationaux. Par défaut, Python travaille " +"en UTF-8. Pour couvrir tous les cas, préférez le simple ASCII." + +#: ../Doc/tutorial/controlflow.rst:755 +msgid "" +"Likewise, don't use non-ASCII characters in identifiers if there is only the " +"slightest chance people speaking a different language will read or maintain " +"the code." +msgstr "" +"De la même manière, n'utilisez que des caractères ASCII pour vos noms de " +"variables s'il est envisageable qu'une personne parlant une autre langue " +"lise ou doive modifier votre code." + +#: ../Doc/tutorial/controlflow.rst:761 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/tutorial/controlflow.rst:762 +msgid "" +"Actually, *call by object reference* would be a better description, since if " +"a mutable object is passed, the caller will see any changes the callee makes " +"to it (items inserted into a list)." +msgstr "" +"En fait, *appels par référence d'objets* serait sans doute une description " +"plus juste dans la mesure où, si un objet muable est passé en argument, " +"l'appelant verra toutes les modifications qui lui auront été apportées par " +"l'appelé (insertion d'éléments dans une liste…)." + +#~ msgid "" +#~ "Note that the list of keyword argument names is created by sorting the " +#~ "result of the keywords dictionary's ``keys()`` method before printing its " +#~ "contents; if this is not done, the order in which the arguments are " +#~ "printed is undefined." +#~ msgstr "" +#~ "Notez que la liste des arguments nommés est créée en classant les clés du " +#~ "dictionnaire extraites par la méthode ``keys()`` avant de les afficher. " +#~ "Si cela n'est pas fait, l'ordre dans lequel les arguments sont affichés " +#~ "n'est pas défini." diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po new file mode 100644 index 000000000..3ae70c371 --- /dev/null +++ b/tutorial/datastructures.po @@ -0,0 +1,834 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-02-17 18:53+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/tutorial/datastructures.rst:5 +msgid "Data Structures" +msgstr "Structures de données" + +#: ../Doc/tutorial/datastructures.rst:7 +msgid "" +"This chapter describes some things you've learned about already in more " +"detail, and adds some new things as well." +msgstr "" +"Ce chapitre reprend plus en détail quelques points déjà décrits précédemment " +"et introduit également de nouvelles notions." + +#: ../Doc/tutorial/datastructures.rst:13 +msgid "More on Lists" +msgstr "Compléments sur les listes" + +#: ../Doc/tutorial/datastructures.rst:15 +msgid "" +"The list data type has some more methods. Here are all of the methods of " +"list objects:" +msgstr "" +"Le type liste dispose de méthodes supplémentaires. Voici toutes les méthodes " +"des objets de type liste :" + +#: ../Doc/tutorial/datastructures.rst:22 +msgid "" +"Add an item to the end of the list. Equivalent to ``a[len(a):] = [x]``." +msgstr "" +"Ajoute un élément à la fin de la liste. Équivalent à ``a[len(a):] = [x]``." + +#: ../Doc/tutorial/datastructures.rst:28 +msgid "" +"Extend the list by appending all the items from the iterable. Equivalent to " +"``a[len(a):] = iterable``." +msgstr "" +"Étend la liste en y ajoutant tous les éléments de l'itérable. Équivalent à " +"``a[len(a):] = iterable``." + +#: ../Doc/tutorial/datastructures.rst:35 +msgid "" +"Insert an item at a given position. The first argument is the index of the " +"element before which to insert, so ``a.insert(0, x)`` inserts at the front " +"of the list, and ``a.insert(len(a), x)`` is equivalent to ``a.append(x)``." +msgstr "" +"Insère un élément à la position indiquée. Le premier argument est la " +"position de l'élément courant avant lequel l'insertion doit s'effectuer, " +"donc ``a.insert(0, x)`` insère l'élément en tête de la liste et ``a." +"insert(len(a), x)`` est équivalent à ``a.append(x)``." + +#: ../Doc/tutorial/datastructures.rst:43 +msgid "" +"Remove the first item from the list whose value is equal to *x*. It raises " +"a :exc:`ValueError` if there is no such item." +msgstr "" +"Supprime de la liste le premier élément dont la valeur est égale à *x*. Une " +"exception :exc:`ValueError` est levée s'il n'existe aucun élément avec cette " +"valeur." + +#: ../Doc/tutorial/datastructures.rst:50 +msgid "" +"Remove the item at the given position in the list, and return it. If no " +"index is specified, ``a.pop()`` removes and returns the last item in the " +"list. (The square brackets around the *i* in the method signature denote " +"that the parameter is optional, not that you should type square brackets at " +"that position. You will see this notation frequently in the Python Library " +"Reference.)" +msgstr "" +"Enlève de la liste l'élément situé à la position indiquée et le renvoie en " +"valeur de retour. Si aucune position n'est spécifiée, ``a.pop()`` enlève et " +"renvoie le dernier élément de la liste (les crochets autour du *i* dans la " +"signature de la méthode indiquent que ce paramètre est facultatif et non que " +"vous devez placer des crochets dans votre code ! Vous retrouverez cette " +"notation fréquemment dans le Guide de Référence de la Bibliothèque Python)." + +#: ../Doc/tutorial/datastructures.rst:60 +msgid "Remove all items from the list. Equivalent to ``del a[:]``." +msgstr "Supprime tous les éléments de la liste. Équivalent à ``del a[:]``." + +#: ../Doc/tutorial/datastructures.rst:66 +msgid "" +"Return zero-based index in the list of the first item whose value is equal " +"to *x*. Raises a :exc:`ValueError` if there is no such item." +msgstr "" +"Renvoie la position du premier élément de la liste dont la valeur égale *x* " +"(en commençant à compter les positions à partir de zéro). Une exception :exc:" +"`ValueError` est levée si aucun élément n'est trouvé." + +#: ../Doc/tutorial/datastructures.rst:69 +msgid "" +"The optional arguments *start* and *end* are interpreted as in the slice " +"notation and are used to limit the search to a particular subsequence of the " +"list. The returned index is computed relative to the beginning of the full " +"sequence rather than the *start* argument." +msgstr "" +"Les arguments optionnels *start* et *end* sont interprétés de la même " +"manière que dans la notation des tranches et sont utilisés pour limiter la " +"recherche à une sous-séquence particulière. L'indice renvoyé est calculé " +"relativement au début de la séquence complète et non relativement à *start*." + +#: ../Doc/tutorial/datastructures.rst:78 +msgid "Return the number of times *x* appears in the list." +msgstr "Renvoie le nombre d'éléments ayant la valeur *x* dans la liste." + +#: ../Doc/tutorial/datastructures.rst:84 +msgid "" +"Sort the items of the list in place (the arguments can be used for sort " +"customization, see :func:`sorted` for their explanation)." +msgstr "" +"Ordonne les éléments dans la liste (les arguments peuvent personnaliser " +"l'ordonnancement, voir :func:`sorted` pour leur explication)." + +#: ../Doc/tutorial/datastructures.rst:91 +msgid "Reverse the elements of the list in place." +msgstr "Inverse l'ordre des éléments dans la liste." + +#: ../Doc/tutorial/datastructures.rst:97 +msgid "Return a shallow copy of the list. Equivalent to ``a[:]``." +msgstr "Renvoie une copie superficielle de la liste. Équivalent à ``a[:]``." + +#: ../Doc/tutorial/datastructures.rst:100 +msgid "An example that uses most of the list methods::" +msgstr "L'exemple suivant utilise la plupart des méthodes des listes ::" + +#: ../Doc/tutorial/datastructures.rst:123 +msgid "" +"You might have noticed that methods like ``insert``, ``remove`` or ``sort`` " +"that only modify the list have no return value printed -- they return the " +"default ``None``. [1]_ This is a design principle for all mutable data " +"structures in Python." +msgstr "" +"Vous avez probablement remarqué que les méthodes telles que ``insert``, " +"``remove`` ou ``sort``, qui ne font que modifier la liste, n'affichent pas " +"de valeur de retour (elles renvoient ``None``) [1]_. C'est un principe " +"respecté par toutes les structures de données variables en Python." + +#: ../Doc/tutorial/datastructures.rst:132 +msgid "Using Lists as Stacks" +msgstr "Utilisation des listes comme des piles" + +#: ../Doc/tutorial/datastructures.rst:137 +msgid "" +"The list methods make it very easy to use a list as a stack, where the last " +"element added is the first element retrieved (\"last-in, first-out\"). To " +"add an item to the top of the stack, use :meth:`append`. To retrieve an " +"item from the top of the stack, use :meth:`pop` without an explicit index. " +"For example::" +msgstr "" +"Les méthodes des listes rendent très facile leur utilisation comme des " +"piles, où le dernier élément ajouté est le premier récupéré (« dernier " +"entré, premier sorti » ou LIFO pour *last-in, first-out* en anglais). Pour " +"ajouter un élément sur la pile, utilisez la méthode :meth:`append`. Pour " +"récupérer l'objet au sommet de la pile, utilisez la méthode :meth:`pop` sans " +"indicateur de position. Par exemple ::" + +#: ../Doc/tutorial/datastructures.rst:162 +msgid "Using Lists as Queues" +msgstr "Utilisation des listes comme des files" + +#: ../Doc/tutorial/datastructures.rst:166 +msgid "" +"It is also possible to use a list as a queue, where the first element added " +"is the first element retrieved (\"first-in, first-out\"); however, lists are " +"not efficient for this purpose. While appends and pops from the end of list " +"are fast, doing inserts or pops from the beginning of a list is slow " +"(because all of the other elements have to be shifted by one)." +msgstr "" +"Il est également possible d'utiliser une liste comme une file, où le premier " +"élément ajouté est le premier récupéré (« premier entré, premier sorti » ou " +"FIFO pour *first-in, first-out*) ; toutefois, les listes ne sont pas très " +"efficaces pour réaliser ce type de traitement. Alors que les ajouts et " +"suppressions en fin de liste sont rapides, les opérations d'insertions ou de " +"retraits en début de liste sont lentes (car tous les autres éléments doivent " +"être décalés d'une position)." + +#: ../Doc/tutorial/datastructures.rst:172 +msgid "" +"To implement a queue, use :class:`collections.deque` which was designed to " +"have fast appends and pops from both ends. For example::" +msgstr "" +"Pour implémenter une file, utilisez la classe :class:`collections.deque` qui " +"a été conçue pour réaliser rapidement les opérations d'ajouts et de retraits " +"aux deux extrémités. Par exemple ::" + +#: ../Doc/tutorial/datastructures.rst:190 +msgid "List Comprehensions" +msgstr "Compréhensions de listes" + +#: ../Doc/tutorial/datastructures.rst:192 +msgid "" +"List comprehensions provide a concise way to create lists. Common " +"applications are to make new lists where each element is the result of some " +"operations applied to each member of another sequence or iterable, or to " +"create a subsequence of those elements that satisfy a certain condition." +msgstr "" +"Les compréhensions de listes fournissent un moyen de construire des listes " +"de manière très concise. Une application classique est la construction de " +"nouvelles listes où chaque élément est le résultat d'une opération appliquée " +"à chaque élément d'une autre séquence ; ou de créer une sous-séquence des " +"éléments satisfaisant une condition spécifique." + +#: ../Doc/tutorial/datastructures.rst:197 +msgid "For example, assume we want to create a list of squares, like::" +msgstr "" +"Par exemple, supposons que l'on veuille créer une liste de carrés, comme ::" + +#: ../Doc/tutorial/datastructures.rst:206 +msgid "" +"Note that this creates (or overwrites) a variable named ``x`` that still " +"exists after the loop completes. We can calculate the list of squares " +"without any side effects using::" +msgstr "" +"Notez que cela crée (ou remplace) une variable nommée ``x`` qui existe " +"toujours après l'exécution de la boucle. On peut calculer une liste de " +"carrés sans effet de bord avec ::" + +#: ../Doc/tutorial/datastructures.rst:212 +msgid "or, equivalently::" +msgstr "ou, de manière équivalente ::" + +#: ../Doc/tutorial/datastructures.rst:216 +msgid "which is more concise and readable." +msgstr "qui est plus court et lisible." + +#: ../Doc/tutorial/datastructures.rst:218 +msgid "" +"A list comprehension consists of brackets containing an expression followed " +"by a :keyword:`!for` clause, then zero or more :keyword:`!for` or :keyword:`!" +"if` clauses. The result will be a new list resulting from evaluating the " +"expression in the context of the :keyword:`!for` and :keyword:`!if` clauses " +"which follow it. For example, this listcomp combines the elements of two " +"lists if they are not equal::" +msgstr "" +"Une compréhension de liste consiste à placer entre crochets une expression " +"suivie par une clause :keyword:`!for` puis par zéro ou plus clauses :keyword:" +"`!for` ou :keyword:`!if`. Le résultat est une nouvelle liste résultat de " +"l'évaluation de l'expression dans le contexte des clauses :keyword:`!for` " +"et :keyword:`!if` qui la suivent. Par exemple, cette compréhension de liste " +"combine les éléments de deux listes s'ils ne sont pas égaux ::" + +#: ../Doc/tutorial/datastructures.rst:228 +msgid "and it's equivalent to::" +msgstr "et c'est équivalent à ::" + +#: ../Doc/tutorial/datastructures.rst:239 +msgid "" +"Note how the order of the :keyword:`for` and :keyword:`if` statements is the " +"same in both these snippets." +msgstr "" +"Notez que l'ordre des instructions :keyword:`for` et :keyword:`if` est le " +"même dans ces différents extraits de code." + +#: ../Doc/tutorial/datastructures.rst:242 +msgid "" +"If the expression is a tuple (e.g. the ``(x, y)`` in the previous example), " +"it must be parenthesized. ::" +msgstr "" +"Si l'expression est un n-uplet (c'est-à-dire ``(x, y)`` dans cet exemple), " +"elle doit être entourée par des parenthèses ::" + +#: ../Doc/tutorial/datastructures.rst:273 +msgid "" +"List comprehensions can contain complex expressions and nested functions::" +msgstr "" +"Les compréhensions de listes peuvent contenir des expressions complexes et " +"des fonctions imbriquées ::" + +#: ../Doc/tutorial/datastructures.rst:280 +msgid "Nested List Comprehensions" +msgstr "Compréhensions de listes imbriquées" + +#: ../Doc/tutorial/datastructures.rst:282 +msgid "" +"The initial expression in a list comprehension can be any arbitrary " +"expression, including another list comprehension." +msgstr "" +"La première expression dans une compréhension de liste peut être n'importe " +"quelle expression, y compris une autre compréhension de liste." + +#: ../Doc/tutorial/datastructures.rst:285 +msgid "" +"Consider the following example of a 3x4 matrix implemented as a list of 3 " +"lists of length 4::" +msgstr "" +"Voyez l'exemple suivant d'une matrice de 3 par 4, implémentée sous la forme " +"de 3 listes de 4 éléments ::" + +#: ../Doc/tutorial/datastructures.rst:294 +msgid "The following list comprehension will transpose rows and columns::" +msgstr "Cette compréhension de liste transpose les lignes et les colonnes ::" + +#: ../Doc/tutorial/datastructures.rst:299 +msgid "" +"As we saw in the previous section, the nested listcomp is evaluated in the " +"context of the :keyword:`for` that follows it, so this example is equivalent " +"to::" +msgstr "" +"Comme nous l'avons vu dans la section précédente, la compréhension de liste " +"imbriquée est évaluée dans le contexte de l'instruction :keyword:`for` qui " +"la suit, donc cet exemple est équivalent à ::" + +#: ../Doc/tutorial/datastructures.rst:310 +msgid "which, in turn, is the same as::" +msgstr "lequel à son tour est équivalent à ::" + +#: ../Doc/tutorial/datastructures.rst:323 +msgid "" +"In the real world, you should prefer built-in functions to complex flow " +"statements. The :func:`zip` function would do a great job for this use case::" +msgstr "" +"Dans des cas concrets, il est toujours préférable d'utiliser des fonctions " +"natives plutôt que des instructions de contrôle de flux complexes. La " +"fonction :func:`zip` ferait dans ce cas un excellent travail ::" + +#: ../Doc/tutorial/datastructures.rst:329 +msgid "" +"See :ref:`tut-unpacking-arguments` for details on the asterisk in this line." +msgstr "" +"Voyez :ref:`tut-unpacking-arguments` pour plus de détails sur l'astérisque " +"de cette ligne." + +#: ../Doc/tutorial/datastructures.rst:334 +msgid "The :keyword:`!del` statement" +msgstr "L'instruction :keyword:`!del`" + +#: ../Doc/tutorial/datastructures.rst:336 +msgid "" +"There is a way to remove an item from a list given its index instead of its " +"value: the :keyword:`del` statement. This differs from the :meth:`pop` " +"method which returns a value. The :keyword:`!del` statement can also be " +"used to remove slices from a list or clear the entire list (which we did " +"earlier by assignment of an empty list to the slice). For example::" +msgstr "" +"Il existe un moyen de retirer un élément d'une liste à partir de sa position " +"au lieu de sa valeur : l'instruction :keyword:`del`. Elle diffère de la " +"méthode :meth:`pop` qui, elle, renvoie une valeur. L'instruction :keyword:`!" +"del` peut également être utilisée pour supprimer des tranches d'une liste ou " +"la vider complètement (ce que nous avions fait auparavant en affectant une " +"liste vide à la tranche). Par exemple ::" + +#: ../Doc/tutorial/datastructures.rst:353 +msgid ":keyword:`del` can also be used to delete entire variables::" +msgstr "" +":keyword:`del` peut aussi être utilisée pour supprimer des variables ::" + +#: ../Doc/tutorial/datastructures.rst:357 +msgid "" +"Referencing the name ``a`` hereafter is an error (at least until another " +"value is assigned to it). We'll find other uses for :keyword:`del` later." +msgstr "" +"À partir de là, référencer le nom ``a`` est une erreur (au moins jusqu'à ce " +"qu'une autre valeur lui soit affectée). Vous trouverez d'autres utilisations " +"de la fonction :keyword:`del` plus tard." + +#: ../Doc/tutorial/datastructures.rst:364 +msgid "Tuples and Sequences" +msgstr "Tuples et séquences" + +#: ../Doc/tutorial/datastructures.rst:366 +msgid "" +"We saw that lists and strings have many common properties, such as indexing " +"and slicing operations. They are two examples of *sequence* data types " +"(see :ref:`typesseq`). Since Python is an evolving language, other sequence " +"data types may be added. There is also another standard sequence data type: " +"the *tuple*." +msgstr "" +"Nous avons vu que les listes et les chaînes de caractères ont beaucoup de " +"propriétés en commun, comme l'indiçage et les opérations sur des tranches. " +"Ce sont deux exemples de *séquences* (voir :ref:`typesseq`). Comme Python " +"est un langage en constante évolution, d'autres types de séquences y seront " +"peut-être ajoutés. Il existe également un autre type standard de séquence : " +"le *tuple* (ou n-uplet, dénomination que nous utiliserons dans la suite de " +"cette documentation)." + +#: ../Doc/tutorial/datastructures.rst:372 +msgid "" +"A tuple consists of a number of values separated by commas, for instance::" +msgstr "" +"Un n-uplet consiste en différentes valeurs séparées par des virgules, par " +"exemple ::" + +#: ../Doc/tutorial/datastructures.rst:394 +msgid "" +"As you see, on output tuples are always enclosed in parentheses, so that " +"nested tuples are interpreted correctly; they may be input with or without " +"surrounding parentheses, although often parentheses are necessary anyway (if " +"the tuple is part of a larger expression). It is not possible to assign to " +"the individual items of a tuple, however it is possible to create tuples " +"which contain mutable objects, such as lists." +msgstr "" +"Comme vous pouvez le voir, les n-uplets sont toujours affichés entre " +"parenthèses, de façon à ce que des n-uplets imbriqués soient interprétés " +"correctement ; ils peuvent être saisis avec ou sans parenthèses, même si " +"celles-ci sont souvent nécessaires (notamment lorsqu'un n-uplet fait partie " +"d'une expression plus longue). Il n'est pas possible d'affecter de valeur à " +"un élément d'un n-uplet ; par contre, il est possible de créer des n-uplets " +"contenant des objets muables, comme des listes." + +#: ../Doc/tutorial/datastructures.rst:401 +msgid "" +"Though tuples may seem similar to lists, they are often used in different " +"situations and for different purposes. Tuples are :term:`immutable`, and " +"usually contain a heterogeneous sequence of elements that are accessed via " +"unpacking (see later in this section) or indexing (or even by attribute in " +"the case of :func:`namedtuples `). Lists are :term:" +"`mutable`, and their elements are usually homogeneous and are accessed by " +"iterating over the list." +msgstr "" +"Si les n-uplets peuvent sembler similaires aux listes, ils sont souvent " +"utilisés dans des cas différents et pour des raisons différentes. Les n-" +"uplets sont :term:`immuable`\\s et contiennent souvent des séquences " +"hétérogènes d'éléments qui sont accédés par « dissociation » (*unpacking* en " +"anglais, voir plus loin) ou par indice (ou même par attributs dans le cas " +"des :func:`namedtuples `). Les listes sont souvent :" +"term:`muable `\\s et contiennent des éléments généralement homogènes " +"qui sont accédés par itération sur la liste." + +#: ../Doc/tutorial/datastructures.rst:409 +msgid "" +"A special problem is the construction of tuples containing 0 or 1 items: the " +"syntax has some extra quirks to accommodate these. Empty tuples are " +"constructed by an empty pair of parentheses; a tuple with one item is " +"constructed by following a value with a comma (it is not sufficient to " +"enclose a single value in parentheses). Ugly, but effective. For example::" +msgstr "" +"Un problème spécifique est la construction de n-uplets ne contenant aucun ou " +"un seul élément : la syntaxe a quelques tournures spécifiques pour s'en " +"accommoder. Les n-uplets vides sont construits par une paire de parenthèses " +"vides ; un n-uplet avec un seul élément est construit en faisant suivre la " +"valeur par une virgule (il n'est pas suffisant de placer cette valeur entre " +"parenthèses). Pas très joli, mais efficace. Par exemple ::" + +#: ../Doc/tutorial/datastructures.rst:424 +msgid "" +"The statement ``t = 12345, 54321, 'hello!'`` is an example of *tuple " +"packing*: the values ``12345``, ``54321`` and ``'hello!'`` are packed " +"together in a tuple. The reverse operation is also possible::" +msgstr "" +"L'instruction ``t = 12345, 54321, 'hello !'`` est un exemple d'un " +"*d'agrégation de n-uplet* (*tuple packing* en anglais) : les valeurs " +"``12345``, ``54321`` et ``hello !`` sont agrégées ensemble dans un n-uplet. " +"L'opération inverse est aussi possible ::" + +#: ../Doc/tutorial/datastructures.rst:430 +msgid "" +"This is called, appropriately enough, *sequence unpacking* and works for any " +"sequence on the right-hand side. Sequence unpacking requires that there are " +"as many variables on the left side of the equals sign as there are elements " +"in the sequence. Note that multiple assignment is really just a combination " +"of tuple packing and sequence unpacking." +msgstr "" +"Ceci est appelé, de façon plus ou moins appropriée, un *dissociation de " +"séquence* (*sequence unpacking* en anglais) et fonctionne pour toute " +"séquence placée à droite de l'expression. Cette dissociation requiert autant " +"de variables dans la partie gauche qu'il y a d'éléments dans la séquence. " +"Notez également que cette affectation multiple est juste une combinaison " +"entre une agrégation de n-uplet et une dissociation de séquence." + +#: ../Doc/tutorial/datastructures.rst:440 +msgid "Sets" +msgstr "Ensembles" + +#: ../Doc/tutorial/datastructures.rst:442 +msgid "" +"Python also includes a data type for *sets*. A set is an unordered " +"collection with no duplicate elements. Basic uses include membership " +"testing and eliminating duplicate entries. Set objects also support " +"mathematical operations like union, intersection, difference, and symmetric " +"difference." +msgstr "" +"Python fournit également un type de donnée pour les *ensembles*. Un ensemble " +"est une collection non ordonnée sans élément dupliqué. Des utilisations " +"basiques concernent par exemple des tests d'appartenance ou des suppressions " +"de doublons. Les ensembles savent également effectuer les opérations " +"mathématiques telles que les unions, intersections, différences et " +"différences symétriques." + +#: ../Doc/tutorial/datastructures.rst:447 +msgid "" +"Curly braces or the :func:`set` function can be used to create sets. Note: " +"to create an empty set you have to use ``set()``, not ``{}``; the latter " +"creates an empty dictionary, a data structure that we discuss in the next " +"section." +msgstr "" +"Des accolades ou la fonction :func:`set` peuvent être utilisés pour créer " +"des ensembles. Notez que pour créer un ensemble vide, ``{}`` ne fonctionne " +"pas, cela crée un dictionnaire vide. Utilisez plutôt ``set()``." + +#: ../Doc/tutorial/datastructures.rst:451 +msgid "Here is a brief demonstration::" +msgstr "Voici une brève démonstration ::" + +#: ../Doc/tutorial/datastructures.rst:476 +msgid "" +"Similarly to :ref:`list comprehensions `, set comprehensions " +"are also supported::" +msgstr "" +"Tout comme pour les :ref:`compréhensions de listes `, il est " +"possible d'écrire des compréhensions d'ensembles ::" + +#: ../Doc/tutorial/datastructures.rst:487 +msgid "Dictionaries" +msgstr "Dictionnaires" + +#: ../Doc/tutorial/datastructures.rst:489 +msgid "" +"Another useful data type built into Python is the *dictionary* (see :ref:" +"`typesmapping`). Dictionaries are sometimes found in other languages as " +"\"associative memories\" or \"associative arrays\". Unlike sequences, which " +"are indexed by a range of numbers, dictionaries are indexed by *keys*, which " +"can be any immutable type; strings and numbers can always be keys. Tuples " +"can be used as keys if they contain only strings, numbers, or tuples; if a " +"tuple contains any mutable object either directly or indirectly, it cannot " +"be used as a key. You can't use lists as keys, since lists can be modified " +"in place using index assignments, slice assignments, or methods like :meth:" +"`append` and :meth:`extend`." +msgstr "" +"Un autre type de donnée très utile, natif dans Python, est le *dictionnaire* " +"(voir :ref:`typesmapping`). Ces dictionnaires sont parfois présents dans " +"d'autres langages sous le nom de « mémoires associatives » ou de « tableaux " +"associatifs ». À la différence des séquences, qui sont indexées par des " +"nombres, les dictionnaires sont indexés par des *clés*, qui peuvent être de " +"n'importe quel type immuable ; les chaînes de caractères et les nombres " +"peuvent toujours être des clés. Des n-uplets peuvent être utilisés comme " +"clés s'ils ne contiennent que des chaînes, des nombres ou des n-uplets ; si " +"un n-uplet contient un objet muable, de façon directe ou indirecte, il ne " +"peut pas être utilisé comme une clé. Vous ne pouvez pas utiliser des listes " +"comme clés, car les listes peuvent être modifiées en place en utilisant des " +"affectations par position, par tranches ou via des méthodes comme :meth:" +"`append` ou :meth:`extend`." + +#: ../Doc/tutorial/datastructures.rst:500 +msgid "" +"It is best to think of a dictionary as a set of *key: value* pairs, with the " +"requirement that the keys are unique (within one dictionary). A pair of " +"braces creates an empty dictionary: ``{}``. Placing a comma-separated list " +"of key:value pairs within the braces adds initial key:value pairs to the " +"dictionary; this is also the way dictionaries are written on output." +msgstr "" +"Le plus simple est de considérer les dictionnaires comme des ensembles de " +"paires *clé: valeur*, les clés devant être uniques (au sein d'un " +"dictionnaire). Une paire d'accolades crée un dictionnaire vide : ``{}``. " +"Placer une liste de paires clé:valeur séparées par des virgules à " +"l'intérieur des accolades ajoute les valeurs correspondantes au " +"dictionnaire ; c'est également de cette façon que les dictionnaires sont " +"affichés." + +#: ../Doc/tutorial/datastructures.rst:506 +msgid "" +"The main operations on a dictionary are storing a value with some key and " +"extracting the value given the key. It is also possible to delete a key:" +"value pair with ``del``. If you store using a key that is already in use, " +"the old value associated with that key is forgotten. It is an error to " +"extract a value using a non-existent key." +msgstr "" +"Les opérations classiques sur un dictionnaire consistent à stocker une " +"valeur pour une clé et à extraire la valeur correspondant à une clé. Il est " +"également possible de supprimer une paire clé:valeur avec ``del``. Si vous " +"stockez une valeur pour une clé qui est déjà utilisée, l'ancienne valeur " +"associée à cette clé est perdue. Si vous tentez d'extraire une valeur " +"associée à une clé qui n'existe pas, une exception est levée." + +#: ../Doc/tutorial/datastructures.rst:512 +msgid "" +"Performing ``list(d)`` on a dictionary returns a list of all the keys used " +"in the dictionary, in insertion order (if you want it sorted, just use " +"``sorted(d)`` instead). To check whether a single key is in the dictionary, " +"use the :keyword:`in` keyword." +msgstr "" +"Exécuter ``list(d)`` sur un dictionnaire ``d`` renvoie une liste de toutes " +"les clés utilisées dans le dictionnaire, dans l'ordre d'insertion (si vous " +"voulez qu'elles soient ordonnées, utilisez ``sorted(d)``). Pour tester si " +"une clé est dans le dictionnaire, utilisez le mot-clé :keyword:`in`." + +#: ../Doc/tutorial/datastructures.rst:517 +msgid "Here is a small example using a dictionary::" +msgstr "Voici un petit exemple utilisant un dictionnaire ::" + +#: ../Doc/tutorial/datastructures.rst:538 +msgid "" +"The :func:`dict` constructor builds dictionaries directly from sequences of " +"key-value pairs::" +msgstr "" +"Le constructeur :func:`dict` fabrique un dictionnaire directement à partir " +"d'une liste de paires clé-valeur stockées sous la forme de n-uplets ::" + +#: ../Doc/tutorial/datastructures.rst:544 +msgid "" +"In addition, dict comprehensions can be used to create dictionaries from " +"arbitrary key and value expressions::" +msgstr "" +"De plus, il est possible de créer des dictionnaires par compréhension depuis " +"un jeu de clef et valeurs ::" + +#: ../Doc/tutorial/datastructures.rst:550 +msgid "" +"When the keys are simple strings, it is sometimes easier to specify pairs " +"using keyword arguments::" +msgstr "" +"Lorsque les clés sont de simples chaînes de caractères, il est parfois plus " +"facile de spécifier les paires en utilisant des paramètres nommés ::" + +#: ../Doc/tutorial/datastructures.rst:560 +msgid "Looping Techniques" +msgstr "Techniques de boucles" + +#: ../Doc/tutorial/datastructures.rst:562 +msgid "" +"When looping through dictionaries, the key and corresponding value can be " +"retrieved at the same time using the :meth:`items` method. ::" +msgstr "" +"Lorsque vous faites une boucle sur un dictionnaire, les clés et leurs " +"valeurs peuvent être récupérées en même temps en utilisant la méthode :meth:" +"`items` ::" + +#: ../Doc/tutorial/datastructures.rst:572 +msgid "" +"When looping through a sequence, the position index and corresponding value " +"can be retrieved at the same time using the :func:`enumerate` function. ::" +msgstr "" +"Lorsque vous itérez sur une séquence, la position et la valeur " +"correspondante peuvent être récupérées en même temps en utilisant la " +"fonction :func:`enumerate`. ::" + +#: ../Doc/tutorial/datastructures.rst:582 +msgid "" +"To loop over two or more sequences at the same time, the entries can be " +"paired with the :func:`zip` function. ::" +msgstr "" +"Pour faire des boucles sur deux séquences ou plus en même temps, les " +"éléments peuvent être associés par la fonction :func:`zip` ::" + +#: ../Doc/tutorial/datastructures.rst:594 +msgid "" +"To loop over a sequence in reverse, first specify the sequence in a forward " +"direction and then call the :func:`reversed` function. ::" +msgstr "" +"Pour faire une boucle en sens inverse sur une séquence, commencez par " +"spécifier la séquence dans son ordre normal, puis appliquez la fonction :" +"func:`reversed` ::" + +#: ../Doc/tutorial/datastructures.rst:606 +msgid "" +"To loop over a sequence in sorted order, use the :func:`sorted` function " +"which returns a new sorted list while leaving the source unaltered. ::" +msgstr "" +"Pour parcourir les éléments d'une séquence de manière ordonnée, utilisez la " +"fonction :func:`sorted`, elle renvoie une nouvelle liste ordonnée sans " +"altérer la source ::" + +#: ../Doc/tutorial/datastructures.rst:618 +msgid "" +"It is sometimes tempting to change a list while you are looping over it; " +"however, it is often simpler and safer to create a new list instead. ::" +msgstr "" +"Il est parfois tentant de modifier une liste pendant son itération. " +"Cependant, c'est souvent plus simple et plus sûr de créer une nouvelle liste " +"à la place. ::" + +#: ../Doc/tutorial/datastructures.rst:635 +msgid "More on Conditions" +msgstr "Plus d'informations sur les conditions" + +#: ../Doc/tutorial/datastructures.rst:637 +msgid "" +"The conditions used in ``while`` and ``if`` statements can contain any " +"operators, not just comparisons." +msgstr "" +"Les conditions utilisées dans une instruction ``while`` ou ``if`` peuvent " +"contenir n'importe quel opérateur, pas seulement des comparaisons." + +#: ../Doc/tutorial/datastructures.rst:640 +msgid "" +"The comparison operators ``in`` and ``not in`` check whether a value occurs " +"(does not occur) in a sequence. The operators ``is`` and ``is not`` compare " +"whether two objects are really the same object; this only matters for " +"mutable objects like lists. All comparison operators have the same " +"priority, which is lower than that of all numerical operators." +msgstr "" +"Les opérateurs de comparaison ``in`` et ``not in`` testent si une valeur est " +"présente ou non dans une séquence. Les opérateurs ``is`` et ``is not`` " +"testent si deux objets sont vraiment le même objet ; ceci n'est important " +"que pour des objets muables comme des listes. Tous les opérateurs de " +"comparaison ont la même priorité, qui est plus faible que celle des " +"opérateurs numériques." + +#: ../Doc/tutorial/datastructures.rst:646 +msgid "" +"Comparisons can be chained. For example, ``a < b == c`` tests whether ``a`` " +"is less than ``b`` and moreover ``b`` equals ``c``." +msgstr "" +"Les comparaisons peuvent être enchaînées. Par exemple, ``a < b == c`` teste " +"si ``a`` est inférieur à ``b`` et si, de plus, ``b`` égale ``c``." + +#: ../Doc/tutorial/datastructures.rst:649 +msgid "" +"Comparisons may be combined using the Boolean operators ``and`` and ``or``, " +"and the outcome of a comparison (or of any other Boolean expression) may be " +"negated with ``not``. These have lower priorities than comparison " +"operators; between them, ``not`` has the highest priority and ``or`` the " +"lowest, so that ``A and not B or C`` is equivalent to ``(A and (not B)) or " +"C``. As always, parentheses can be used to express the desired composition." +msgstr "" +"Les comparaisons peuvent être combinées en utilisant les opérateurs booléens " +"``and`` et ``or``, le résultat d'une comparaison (ou de toute expression " +"booléenne) pouvant être inversé avec ``not``. Ces opérateurs ont une " +"priorité inférieure à celle des opérateurs de comparaison ; entre eux, " +"``not`` a la priorité la plus élevée et ``or`` la plus faible, de telle " +"sorte que ``A and not B or C`` est équivalent à ``(A and (not B)) or C``. " +"Comme toujours, des parenthèses peuvent être utilisées pour exprimer " +"l'instruction désirée." + +#: ../Doc/tutorial/datastructures.rst:656 +msgid "" +"The Boolean operators ``and`` and ``or`` are so-called *short-circuit* " +"operators: their arguments are evaluated from left to right, and evaluation " +"stops as soon as the outcome is determined. For example, if ``A`` and ``C`` " +"are true but ``B`` is false, ``A and B and C`` does not evaluate the " +"expression ``C``. When used as a general value and not as a Boolean, the " +"return value of a short-circuit operator is the last evaluated argument." +msgstr "" +"Les opérateurs booléens ``and`` et ``or`` sont appelés opérateurs *en " +"circuit court* : leurs arguments sont évalués de la gauche vers la droite et " +"l'évaluation s'arrête dès que le résultat est déterminé. Par exemple, si " +"``A`` et ``C`` sont vrais et ``B`` est faux, ``A and B and C`` n'évalue pas " +"l'expression ``C``. Lorsqu'elle est utilisée en tant que valeur et non en " +"tant que booléen, la valeur de retour d'un opérateur en circuit court est " +"celle du dernier argument évalué." + +#: ../Doc/tutorial/datastructures.rst:663 +msgid "" +"It is possible to assign the result of a comparison or other Boolean " +"expression to a variable. For example, ::" +msgstr "" +"Il est possible d'affecter le résultat d'une comparaison ou d'une autre " +"expression booléenne à une variable. Par exemple ::" + +#: ../Doc/tutorial/datastructures.rst:671 +msgid "" +"Note that in Python, unlike C, assignment cannot occur inside expressions. C " +"programmers may grumble about this, but it avoids a common class of problems " +"encountered in C programs: typing ``=`` in an expression when ``==`` was " +"intended." +msgstr "" +"Notez qu'en Python, à la différence du C, des affectations ne peuvent pas " +"intervenir à l'intérieur d'expressions. Les programmeurs C râleront peut-" +"être après cela, mais cela évite des erreurs fréquentes que l'on rencontre " +"en C, lorsque l'on tape ``=`` alors que l'on voulait faire un test avec " +"``==``." + +#: ../Doc/tutorial/datastructures.rst:680 +msgid "Comparing Sequences and Other Types" +msgstr "Comparer des séquences avec d'autres types" + +#: ../Doc/tutorial/datastructures.rst:682 +msgid "" +"Sequence objects may be compared to other objects with the same sequence " +"type. The comparison uses *lexicographical* ordering: first the first two " +"items are compared, and if they differ this determines the outcome of the " +"comparison; if they are equal, the next two items are compared, and so on, " +"until either sequence is exhausted. If two items to be compared are " +"themselves sequences of the same type, the lexicographical comparison is " +"carried out recursively. If all items of two sequences compare equal, the " +"sequences are considered equal. If one sequence is an initial sub-sequence " +"of the other, the shorter sequence is the smaller (lesser) one. " +"Lexicographical ordering for strings uses the Unicode code point number to " +"order individual characters. Some examples of comparisons between sequences " +"of the same type::" +msgstr "" +"Des séquences peuvent être comparées avec d'autres séquences du même type. " +"La comparaison utilise un ordre *lexicographique* : les deux premiers " +"éléments de chaque séquence sont comparés et, s'ils diffèrent, cela " +"détermine le résultat de la comparaison ; s'ils sont égaux, les deux " +"éléments suivants sont comparés à leur tour et ainsi de suite jusqu'à ce que " +"l'une des séquences soit épuisée. Si deux éléments à comparer sont eux-mêmes " +"des séquences du même type, alors la comparaison lexicographique est " +"effectuée récursivement. Si tous les éléments des deux séquences sont égaux, " +"les deux séquences sont alors considérées comme égales. Si une séquence est " +"une sous-séquence de l'autre, la séquence la plus courte est celle dont la " +"valeur est inférieure. La comparaison lexicographique des chaînes de " +"caractères utilise le code Unicode des caractères. Voici quelques exemples " +"de comparaisons entre séquences de même type ::" + +#: ../Doc/tutorial/datastructures.rst:702 +msgid "" +"Note that comparing objects of different types with ``<`` or ``>`` is legal " +"provided that the objects have appropriate comparison methods. For example, " +"mixed numeric types are compared according to their numeric value, so 0 " +"equals 0.0, etc. Otherwise, rather than providing an arbitrary ordering, " +"the interpreter will raise a :exc:`TypeError` exception." +msgstr "" +"Comparer des objets de type différents avec ``<`` ou ``>`` est autorisé si " +"les objets ont des méthodes de comparaison appropriées. Par exemple, les " +"types numériques sont comparés via leur valeur numérique, donc 0 égale 0,0, " +"etc. Dans les autres cas, au lieu de donner un ordre imprévisible, " +"l'interpréteur lève une exception :exc:`TypeError`." + +#: ../Doc/tutorial/datastructures.rst:710 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/tutorial/datastructures.rst:711 +msgid "" +"Other languages may return the mutated object, which allows method chaining, " +"such as ``d->insert(\"a\")->remove(\"b\")->sort();``." +msgstr "" +"D'autres langages renvoient l'objet modifié, ce qui permet de chaîner les " +"méthodes comme ceci : ``d->insert(\"a\")->remove(\"b\")->sort();``." + +#~ msgid "" +#~ "Calling ``d.keys()`` will return a :dfn:`dictionary view` object. It " +#~ "supports operations like membership test and iteration, but its contents " +#~ "are not independent of the original dictionary -- it is only a *view*." +#~ msgstr "" +#~ "Appeler ``d.keys()`` renvoie un objet :dfn:`dictionary view` qui gère les " +#~ "opérations du type test d'appartenance (``in``) et l'itération. Mais son " +#~ "contenu n'est pas indépendant du dictionnaire d'origine, c'est une simple " +#~ "*vue*." diff --git a/tutorial/errors.po b/tutorial/errors.po new file mode 100644 index 000000000..dea012df4 --- /dev/null +++ b/tutorial/errors.po @@ -0,0 +1,513 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-01-03 17:19+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/tutorial/errors.rst:5 +msgid "Errors and Exceptions" +msgstr "Erreurs et exceptions" + +#: ../Doc/tutorial/errors.rst:7 +msgid "" +"Until now error messages haven't been more than mentioned, but if you have " +"tried out the examples you have probably seen some. There are (at least) " +"two distinguishable kinds of errors: *syntax errors* and *exceptions*." +msgstr "" +"Jusqu'ici, les messages d'erreurs ont seulement été mentionnés. Mais si vous " +"avez essayé les exemples vous avez certainement vu plus que cela. En fait, " +"il y a au moins deux types d'erreurs à distinguer : les *erreurs de syntaxe* " +"et les *exceptions*." + +#: ../Doc/tutorial/errors.rst:15 +msgid "Syntax Errors" +msgstr "Les erreurs de syntaxe" + +#: ../Doc/tutorial/errors.rst:17 +msgid "" +"Syntax errors, also known as parsing errors, are perhaps the most common " +"kind of complaint you get while you are still learning Python::" +msgstr "" +"Les erreurs de syntaxe, qui sont des erreurs d'analyse du code, sont peut-" +"être celles que vous rencontrez le plus souvent lorsque vous êtes encore en " +"phase d'apprentissage de Python ::" + +#: ../Doc/tutorial/errors.rst:26 +msgid "" +"The parser repeats the offending line and displays a little 'arrow' pointing " +"at the earliest point in the line where the error was detected. The error " +"is caused by (or at least detected at) the token *preceding* the arrow: in " +"the example, the error is detected at the function :func:`print`, since a " +"colon (``':'``) is missing before it. File name and line number are printed " +"so you know where to look in case the input came from a script." +msgstr "" +"L'analyseur indique la ligne incriminée et affiche une petite « flèche » " +"pointant vers le premier endroit de la ligne où l'erreur a été détectée. " +"L'erreur est causée (ou, au moins, a été détectée comme telle) par le " +"symbole placé *avant* la flèche. Dans cet exemple la flèche est sur la " +"fonction :func:`print` car il manque deux points (``':'``) juste avant. Le " +"nom du fichier et le numéro de ligne sont affichés pour vous permettre de " +"localiser facilement l'erreur lorsque le code provient d'un script." + +#: ../Doc/tutorial/errors.rst:37 +msgid "Exceptions" +msgstr "Exceptions" + +#: ../Doc/tutorial/errors.rst:39 +msgid "" +"Even if a statement or expression is syntactically correct, it may cause an " +"error when an attempt is made to execute it. Errors detected during " +"execution are called *exceptions* and are not unconditionally fatal: you " +"will soon learn how to handle them in Python programs. Most exceptions are " +"not handled by programs, however, and result in error messages as shown " +"here::" +msgstr "" +"Même si une instruction ou une expression est syntaxiquement correcte, elle " +"peut générer une erreur lors de son exécution. Les erreurs détectées durant " +"l'exécution sont appelées des *exceptions* et ne sont pas toujours fatales : " +"nous apprendrons bientôt comment les traiter dans vos programmes. La plupart " +"des exceptions toutefois ne sont pas prises en charge par les programmes, ce " +"qui génère des messages d'erreurs comme celui-ci ::" + +#: ../Doc/tutorial/errors.rst:58 +msgid "" +"The last line of the error message indicates what happened. Exceptions come " +"in different types, and the type is printed as part of the message: the " +"types in the example are :exc:`ZeroDivisionError`, :exc:`NameError` and :exc:" +"`TypeError`. The string printed as the exception type is the name of the " +"built-in exception that occurred. This is true for all built-in exceptions, " +"but need not be true for user-defined exceptions (although it is a useful " +"convention). Standard exception names are built-in identifiers (not reserved " +"keywords)." +msgstr "" +"La dernière ligne du message d'erreur indique ce qui s'est passé. Les " +"exceptions peuvent être de différents types et ce type est indiqué dans le " +"message : les types indiqués dans l'exemple sont :exc:`ZeroDivisionError`, :" +"exc:`NameError` et :exc:`TypeError`. Le texte affiché comme type de " +"l'exception est le nom de l'exception native qui a été déclenchée. Ceci est " +"vrai pour toutes les exceptions natives mais n'est pas une obligation pour " +"les exceptions définies par l'utilisateur (même si c'est une convention bien " +"pratique). Les noms des exceptions standards sont des identifiants natifs " +"(pas des mots-clef réservés)." + +#: ../Doc/tutorial/errors.rst:66 +msgid "" +"The rest of the line provides detail based on the type of exception and what " +"caused it." +msgstr "" +"Le reste de la ligne fournit plus de détails en fonction du type de " +"l'exception et de ce qui l'a causée." + +#: ../Doc/tutorial/errors.rst:69 +msgid "" +"The preceding part of the error message shows the context where the " +"exception happened, in the form of a stack traceback. In general it contains " +"a stack traceback listing source lines; however, it will not display lines " +"read from standard input." +msgstr "" +"La partie précédente du message d'erreur indique le contexte dans lequel " +"s'est produite l'exception, sous la forme d'une trace de pile d'exécution. " +"En général, celle-ci contient les lignes du code source ; toutefois, les " +"lignes lues à partir de l'entrée standard ne sont pas affichées." + +#: ../Doc/tutorial/errors.rst:74 +msgid "" +":ref:`bltin-exceptions` lists the built-in exceptions and their meanings." +msgstr "" +"Vous trouvez la liste des exceptions natives et leur signification dans :ref:" +"`bltin-exceptions`." + +#: ../Doc/tutorial/errors.rst:80 +msgid "Handling Exceptions" +msgstr "Gestion des exceptions" + +#: ../Doc/tutorial/errors.rst:82 +msgid "" +"It is possible to write programs that handle selected exceptions. Look at " +"the following example, which asks the user for input until a valid integer " +"has been entered, but allows the user to interrupt the program (using :kbd:" +"`Control-C` or whatever the operating system supports); note that a user-" +"generated interruption is signalled by raising the :exc:`KeyboardInterrupt` " +"exception. ::" +msgstr "" +"Il est possible d'écrire des programmes qui prennent en charge certaines " +"exceptions. Regardez l'exemple suivant, qui demande une saisie à " +"l'utilisateur jusqu'à ce qu'un entier valide ait été entré, mais permet à " +"l'utilisateur d'interrompre le programme (en utilisant :kbd:`Control-C` ou " +"un autre raccourci que le système accepte) ; notez qu'une interruption " +"générée par l'utilisateur est signalée en levant l'exception :exc:" +"`KeyboardInterrupt`. ::" + +#: ../Doc/tutorial/errors.rst:96 +msgid "The :keyword:`try` statement works as follows." +msgstr "L'instruction :keyword:`try` fonctionne comme ceci :" + +#: ../Doc/tutorial/errors.rst:98 +msgid "" +"First, the *try clause* (the statement(s) between the :keyword:`try` and :" +"keyword:`except` keywords) is executed." +msgstr "" +"premièrement, la *clause try* (instruction(s) placée(s) entre les mots-clés :" +"keyword:`try` et :keyword:`except`) est exécutée." + +#: ../Doc/tutorial/errors.rst:101 +msgid "" +"If no exception occurs, the *except clause* is skipped and execution of the :" +"keyword:`try` statement is finished." +msgstr "" +"si aucune exception n'intervient, la clause ``except`` est sautée et " +"l'exécution de l'instruction :keyword:`try` est terminée." + +#: ../Doc/tutorial/errors.rst:104 +msgid "" +"If an exception occurs during execution of the try clause, the rest of the " +"clause is skipped. Then if its type matches the exception named after the :" +"keyword:`except` keyword, the except clause is executed, and then execution " +"continues after the :keyword:`try` statement." +msgstr "" +"si une exception intervient pendant l'exécution de la clause ``try``, le " +"reste de cette clause est sauté. Si le type d'exception levée correspond à " +"un nom indiqué après le mot-clé :keyword:`except`, la clause ``except`` " +"correspondante est exécutée, puis l'exécution continue après l'instruction :" +"keyword:`try`." + +#: ../Doc/tutorial/errors.rst:109 +msgid "" +"If an exception occurs which does not match the exception named in the " +"except clause, it is passed on to outer :keyword:`try` statements; if no " +"handler is found, it is an *unhandled exception* and execution stops with a " +"message as shown above." +msgstr "" +"si une exception intervient et ne correspond à aucune exception mentionnée " +"dans la clause ``except``, elle est transmise à l'instruction :keyword:`try` " +"de niveau supérieur ; si aucun gestionnaire d'exception n'est trouvé, il " +"s'agit d'une *exception non gérée* et l'exécution s'arrête avec un message " +"comme indiqué ci-dessus." + +#: ../Doc/tutorial/errors.rst:114 +msgid "" +"A :keyword:`try` statement may have more than one except clause, to specify " +"handlers for different exceptions. At most one handler will be executed. " +"Handlers only handle exceptions that occur in the corresponding try clause, " +"not in other handlers of the same :keyword:`!try` statement. An except " +"clause may name multiple exceptions as a parenthesized tuple, for example::" +msgstr "" +"Une instruction :keyword:`try` peut comporter plusieurs clauses ``except`` " +"pour permettre la prise en charge de différentes exceptions. Mais un seul " +"gestionnaire, au plus, sera exécuté. Les gestionnaires ne prennent en charge " +"que les exceptions qui interviennent dans la clause `!try` correspondante, " +"pas dans d'autres gestionnaires de la même instruction :keyword:`!try`. Mais " +"une même clause ``except`` peut citer plusieurs exceptions sous la forme " +"d'un tuple entre parenthèses, comme dans cet exemple ::" + +#: ../Doc/tutorial/errors.rst:123 +msgid "" +"A class in an :keyword:`except` clause is compatible with an exception if it " +"is the same class or a base class thereof (but not the other way around --- " +"an except clause listing a derived class is not compatible with a base " +"class). For example, the following code will print B, C, D in that order::" +msgstr "" +"Une classe dans une clause :keyword:`except` est compatible avec une " +"exception si elle est de la même classe ou d'une de ses classes dérivées. " +"Mais l'inverse n'est pas vrai, une clause ``except`` spécifiant une classe " +"dérivée n'est pas compatible avec une classe de base. Par exemple, le code " +"suivant affiche B, C et D dans cet ordre ::" + +#: ../Doc/tutorial/errors.rst:147 +msgid "" +"Note that if the except clauses were reversed (with ``except B`` first), it " +"would have printed B, B, B --- the first matching except clause is triggered." +msgstr "" +"Notez que si les clauses ``except`` avaient été inversées (avec ``except B`` " +"en premier), il aurait affiché B, B, B — la première clause ``except`` qui " +"correspond est déclenchée." + +#: ../Doc/tutorial/errors.rst:150 +msgid "" +"The last except clause may omit the exception name(s), to serve as a " +"wildcard. Use this with extreme caution, since it is easy to mask a real " +"programming error in this way! It can also be used to print an error " +"message and then re-raise the exception (allowing a caller to handle the " +"exception as well)::" +msgstr "" +"La dernière clause ``except`` peut omettre le(s) nom(s) d'exception(s) et " +"joue alors le rôle de joker. C'est toutefois à utiliser avec beaucoup de " +"précautions car il est facile de masquer une vraie erreur de programmation " +"par ce biais. Elle peut aussi être utilisée pour afficher un message " +"d'erreur avant de propager l'exception (en permettant à un appelant de gérer " +"également l'exception) ::" + +#: ../Doc/tutorial/errors.rst:169 +msgid "" +"The :keyword:`try` ... :keyword:`except` statement has an optional *else " +"clause*, which, when present, must follow all except clauses. It is useful " +"for code that must be executed if the try clause does not raise an " +"exception. For example::" +msgstr "" +"L'instruction :keyword:`try` ... :keyword:`except` accepte également une " +"*clause else* optionnelle qui, lorsqu'elle est présente, doit se placer " +"après toutes les clauses ``except``. Elle est utile pour du code qui doit " +"être exécuté lorsqu'aucune exception n'a été levée par la clause ``try``. " +"Par exemple ::" + +#: ../Doc/tutorial/errors.rst:183 +msgid "" +"The use of the :keyword:`!else` clause is better than adding additional code " +"to the :keyword:`try` clause because it avoids accidentally catching an " +"exception that wasn't raised by the code being protected by the :keyword:`!" +"try` ... :keyword:`!except` statement." +msgstr "" +"Il vaut mieux utiliser la clause :keyword:`!else` plutôt que d'ajouter du " +"code à la clause :keyword:`try` car cela évite de capturer accidentellement " +"une exception qui n'a pas été levée par le code initialement protégé par " +"l'instruction :keyword:`!try` ... :keyword:`!except`." + +#: ../Doc/tutorial/errors.rst:188 +msgid "" +"When an exception occurs, it may have an associated value, also known as the " +"exception's *argument*. The presence and type of the argument depend on the " +"exception type." +msgstr "" +"Quand une exception intervient, une valeur peut lui être associée, que l'on " +"appelle *l'argument* de l'exception. La présence de cet argument et son type " +"dépendent du type de l'exception." + +#: ../Doc/tutorial/errors.rst:192 +msgid "" +"The except clause may specify a variable after the exception name. The " +"variable is bound to an exception instance with the arguments stored in " +"``instance.args``. For convenience, the exception instance defines :meth:" +"`__str__` so the arguments can be printed directly without having to " +"reference ``.args``. One may also instantiate an exception first before " +"raising it and add any attributes to it as desired. ::" +msgstr "" +"La clause ``except`` peut spécifier un nom de variable après le nom de " +"l'exception. Cette variable est liée à une instance d'exception avec les " +"arguments stockés dans ``instance.args``. Pour plus de commodité, l'instance " +"de l'exception définit la méthode :meth:`__str__` afin que les arguments " +"puissent être affichés directement sans avoir à référencer ``.args``. Il est " +"possible de construire une exception, y ajouter ses attributs, puis la lever " +"plus tard. ::" + +#: ../Doc/tutorial/errors.rst:216 +msgid "" +"If an exception has arguments, they are printed as the last part ('detail') " +"of the message for unhandled exceptions." +msgstr "" +"Si une exception a un argument, il est affiché dans la dernière partie du " +"message des exceptions non gérées." + +#: ../Doc/tutorial/errors.rst:219 +msgid "" +"Exception handlers don't just handle exceptions if they occur immediately in " +"the try clause, but also if they occur inside functions that are called " +"(even indirectly) in the try clause. For example::" +msgstr "" +"Les gestionnaires d'exceptions n'interceptent pas que les exceptions qui " +"sont levées immédiatement dans leur clause ``try``, mais aussi celles qui " +"sont levées au sein de fonctions appelées (parfois indirectement) dans la " +"clause ``try``. Par exemple ::" + +#: ../Doc/tutorial/errors.rst:237 +msgid "Raising Exceptions" +msgstr "Déclencher des exceptions" + +#: ../Doc/tutorial/errors.rst:239 +msgid "" +"The :keyword:`raise` statement allows the programmer to force a specified " +"exception to occur. For example::" +msgstr "" +"L'instruction :keyword:`raise` permet au programmeur de déclencher une " +"exception spécifique. Par exemple ::" + +#: ../Doc/tutorial/errors.rst:247 +msgid "" +"The sole argument to :keyword:`raise` indicates the exception to be raised. " +"This must be either an exception instance or an exception class (a class " +"that derives from :class:`Exception`). If an exception class is passed, it " +"will be implicitly instantiated by calling its constructor with no " +"arguments::" +msgstr "" +"Le seul argument à :keyword:`raise` indique l'exception à déclencher. Cela " +"peut être soit une instance d'exception, soit une classe d'exception (une " +"classe dérivée de :class:`Exception`). Si une classe est donnée, elle est " +"implicitement instanciée *via* l'appel de son constructeur, sans argument ::" + +#: ../Doc/tutorial/errors.rst:254 +msgid "" +"If you need to determine whether an exception was raised but don't intend to " +"handle it, a simpler form of the :keyword:`raise` statement allows you to re-" +"raise the exception::" +msgstr "" +"Si vous avez besoin de savoir si une exception a été levée mais que vous " +"n'avez pas intention de la gérer, une forme plus simple de l'instruction :" +"keyword:`raise` permet de propager l'exception ::" + +#: ../Doc/tutorial/errors.rst:273 +msgid "User-defined Exceptions" +msgstr "Exceptions définies par l'utilisateur" + +#: ../Doc/tutorial/errors.rst:275 +msgid "" +"Programs may name their own exceptions by creating a new exception class " +"(see :ref:`tut-classes` for more about Python classes). Exceptions should " +"typically be derived from the :exc:`Exception` class, either directly or " +"indirectly." +msgstr "" +"Les programmes peuvent nommer leurs propres exceptions en créant une " +"nouvelle classe d'exception (voir :ref:`tut-classes` pour en savoir plus sur " +"les classes de Python). Les exceptions sont typiquement dérivées de la " +"classe :exc:`Exception`, directement ou non." + +#: ../Doc/tutorial/errors.rst:279 +msgid "" +"Exception classes can be defined which do anything any other class can do, " +"but are usually kept simple, often only offering a number of attributes that " +"allow information about the error to be extracted by handlers for the " +"exception. When creating a module that can raise several distinct errors, a " +"common practice is to create a base class for exceptions defined by that " +"module, and subclass that to create specific exception classes for different " +"error conditions::" +msgstr "" +"Les classes d'exceptions peuvent être définies pour faire tout ce qu'une " +"autre classe peut faire. Elles sont le plus souvent gardées assez simples, " +"n'offrant que les attributs permettant aux gestionnaires de ces exceptions " +"d'extraire les informations relatives à l'erreur qui s'est produite. Lorsque " +"l'on crée un module qui peut déclencher plusieurs types d'erreurs distincts, " +"une pratique courante est de créer une classe de base pour l'ensemble des " +"exceptions définies dans ce module et de créer des sous-classes spécifiques " +"d'exceptions pour les différentes conditions d'erreurs ::" + +#: ../Doc/tutorial/errors.rst:317 +msgid "" +"Most exceptions are defined with names that end in \"Error\", similar to the " +"naming of the standard exceptions." +msgstr "" +"La plupart des exceptions sont définies avec des noms qui se terminent par " +"\"Error\", comme les exceptions standards." + +#: ../Doc/tutorial/errors.rst:320 +msgid "" +"Many standard modules define their own exceptions to report errors that may " +"occur in functions they define. More information on classes is presented in " +"chapter :ref:`tut-classes`." +msgstr "" +"Beaucoup de modules standards définissent leurs propres exceptions pour " +"signaler les erreurs possibles dans les fonctions qu'ils définissent. Plus " +"d'informations sur les classes sont présentées dans le chapitre :ref:`tut-" +"classes`." + +#: ../Doc/tutorial/errors.rst:328 +msgid "Defining Clean-up Actions" +msgstr "Définition d'actions de nettoyage" + +#: ../Doc/tutorial/errors.rst:330 +msgid "" +"The :keyword:`try` statement has another optional clause which is intended " +"to define clean-up actions that must be executed under all circumstances. " +"For example::" +msgstr "" +"L'instruction :keyword:`try` a une autre clause optionnelle qui est destinée " +"à définir des actions de nettoyage devant être exécutées dans certaines " +"circonstances. Par exemple ::" + +#: ../Doc/tutorial/errors.rst:344 +msgid "" +"A *finally clause* is always executed before leaving the :keyword:`try` " +"statement, whether an exception has occurred or not. When an exception has " +"occurred in the :keyword:`!try` clause and has not been handled by an :" +"keyword:`except` clause (or it has occurred in an :keyword:`!except` or :" +"keyword:`!else` clause), it is re-raised after the :keyword:`finally` clause " +"has been executed. The :keyword:`!finally` clause is also executed \"on the " +"way out\" when any other clause of the :keyword:`!try` statement is left via " +"a :keyword:`break`, :keyword:`continue` or :keyword:`return` statement. A " +"more complicated example::" +msgstr "" +"Une *clause finally* est toujours exécutée avant de quitter l'instruction :" +"keyword:`try`, qu'une exception ait été levée ou non. Quand une exception a " +"été levée dans la clause :keyword:`!try` et n'a pas été prise en charge par " +"une clause :keyword:`except` (ou si elle a été levée dans une clause :" +"keyword:`!except` ou :keyword:`!else`), elle est propagée après l'exécution " +"de la clause :keyword:`finally`. La clause :keyword:`!finally` est également " +"exécutée \"à la sortie\" quand n'importe quelle autre clause de " +"l'instruction :keyword:`!try` est abandonnée par une instruction :keyword:" +"`break`, :keyword:`continue` ou :keyword:`return`. Voici un exemple plus " +"compliqué ::" + +#: ../Doc/tutorial/errors.rst:377 +msgid "" +"As you can see, the :keyword:`finally` clause is executed in any event. " +"The :exc:`TypeError` raised by dividing two strings is not handled by the :" +"keyword:`except` clause and therefore re-raised after the :keyword:`!" +"finally` clause has been executed." +msgstr "" +"Comme vous pouvez le voir, la clause :keyword:`finally` est exécutée dans " +"tous les cas. L'exception de type :exc:`TypeError`, déclenchée en divisant " +"deux chaînes de caractères, n'est pas prise en charge par la clause :keyword:" +"`except` et est donc propagée après que la clause :keyword:`!finally` a été " +"exécutée." + +#: ../Doc/tutorial/errors.rst:382 +msgid "" +"In real world applications, the :keyword:`finally` clause is useful for " +"releasing external resources (such as files or network connections), " +"regardless of whether the use of the resource was successful." +msgstr "" +"Dans les vraies applications, la clause :keyword:`finally` est notamment " +"utile pour libérer des ressources externes (telles que des fichiers ou des " +"connexions réseau), quelle qu'ait été l'utilisation de ces ressources." + +#: ../Doc/tutorial/errors.rst:390 +msgid "Predefined Clean-up Actions" +msgstr "Actions de nettoyage prédéfinies" + +#: ../Doc/tutorial/errors.rst:392 +msgid "" +"Some objects define standard clean-up actions to be undertaken when the " +"object is no longer needed, regardless of whether or not the operation using " +"the object succeeded or failed. Look at the following example, which tries " +"to open a file and print its contents to the screen. ::" +msgstr "" +"Certains objets définissent des actions de nettoyage standards qui doivent " +"être exécutées lorsque l'objet n'est plus nécessaire, indépendamment du fait " +"que l'opération ayant utilisé l'objet ait réussi ou non. Regardez l'exemple " +"suivant, qui tente d'ouvrir un fichier et d'afficher son contenu à l'écran ::" + +#: ../Doc/tutorial/errors.rst:400 +msgid "" +"The problem with this code is that it leaves the file open for an " +"indeterminate amount of time after this part of the code has finished " +"executing. This is not an issue in simple scripts, but can be a problem for " +"larger applications. The :keyword:`with` statement allows objects like files " +"to be used in a way that ensures they are always cleaned up promptly and " +"correctly. ::" +msgstr "" +"Le problème avec ce code est qu'il laisse le fichier ouvert pendant une " +"durée indéterminée après que le code a fini de s'exécuter. Ce n'est pas un " +"problème avec des scripts simples, mais peut l'être au sein d'applications " +"plus conséquentes. L'instruction :keyword:`with` permet d'utiliser certains " +"objets comme des fichiers d'une façon qui assure qu'ils seront toujours " +"nettoyés rapidement et correctement. ::" + +#: ../Doc/tutorial/errors.rst:410 +msgid "" +"After the statement is executed, the file *f* is always closed, even if a " +"problem was encountered while processing the lines. Objects which, like " +"files, provide predefined clean-up actions will indicate this in their " +"documentation." +msgstr "" +"Après l'exécution du bloc, le fichier *f* est toujours fermé, même si un " +"problème est survenu pendant l'exécution de ces lignes. D'autres objets qui, " +"comme pour les fichiers, fournissent des actions de nettoyage prédéfinies " +"l'indiquent dans leur documentation." diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po new file mode 100644 index 000000000..15a0bdeee --- /dev/null +++ b/tutorial/floatingpoint.po @@ -0,0 +1,509 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-08-01 00:34+0200\n" +"Last-Translator: Christophe Nanteuil \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/tutorial/floatingpoint.rst:9 +msgid "Floating Point Arithmetic: Issues and Limitations" +msgstr "Arithmétique en nombres à virgule flottante : problèmes et limites" + +#: ../Doc/tutorial/floatingpoint.rst:14 +msgid "" +"Floating-point numbers are represented in computer hardware as base 2 " +"(binary) fractions. For example, the decimal fraction ::" +msgstr "" +"Les nombres à virgule flottante sont représentés, au niveau matériel, en " +"fractions de nombres binaires (base 2). Par exemple, la fraction décimale ::" + +#: ../Doc/tutorial/floatingpoint.rst:19 +msgid "" +"has value 1/10 + 2/100 + 5/1000, and in the same way the binary fraction ::" +msgstr "" +"a la valeur 1/10 + 2/100 + 5/1000 et, de la même manière, la fraction " +"binaire ::" + +#: ../Doc/tutorial/floatingpoint.rst:23 +msgid "" +"has value 0/2 + 0/4 + 1/8. These two fractions have identical values, the " +"only real difference being that the first is written in base 10 fractional " +"notation, and the second in base 2." +msgstr "" +"a la valeur 0/2 + 0/4 + 1/8. Ces deux fractions ont une valeur identique, la " +"seule différence est que la première est une fraction décimale, la seconde " +"est une fraction binaire." + +#: ../Doc/tutorial/floatingpoint.rst:27 +msgid "" +"Unfortunately, most decimal fractions cannot be represented exactly as " +"binary fractions. A consequence is that, in general, the decimal floating-" +"point numbers you enter are only approximated by the binary floating-point " +"numbers actually stored in the machine." +msgstr "" +"Malheureusement, la plupart des fractions décimales ne peuvent pas avoir de " +"représentation exacte en fractions binaires. Par conséquent, en général, les " +"nombres à virgule flottante que vous donnez sont seulement approximés en " +"fractions binaires pour être stockés dans la machine." + +#: ../Doc/tutorial/floatingpoint.rst:32 +msgid "" +"The problem is easier to understand at first in base 10. Consider the " +"fraction 1/3. You can approximate that as a base 10 fraction::" +msgstr "" +"Le problème est plus simple à aborder en base 10. Prenons par exemple, la " +"fraction 1/3. Vous pouvez l'approximer en une fraction décimale ::" + +#: ../Doc/tutorial/floatingpoint.rst:37 ../Doc/tutorial/floatingpoint.rst:41 +msgid "or, better, ::" +msgstr "ou, mieux, ::" + +#: ../Doc/tutorial/floatingpoint.rst:45 +msgid "" +"and so on. No matter how many digits you're willing to write down, the " +"result will never be exactly 1/3, but will be an increasingly better " +"approximation of 1/3." +msgstr "" +"etc. Peu importe le nombre de décimales que vous écrivez, le résultat ne " +"vaut jamais exactement 1/3, mais c'est une estimation s'en approchant " +"toujours mieux." + +#: ../Doc/tutorial/floatingpoint.rst:49 +msgid "" +"In the same way, no matter how many base 2 digits you're willing to use, the " +"decimal value 0.1 cannot be represented exactly as a base 2 fraction. In " +"base 2, 1/10 is the infinitely repeating fraction ::" +msgstr "" +"De la même manière, peu importe combien de décimales en base 2 vous " +"utilisez, la valeur décimale 0.1 ne peut pas être représentée exactement en " +"fraction binaire. En base 2, 1/10 est le nombre périodique suivant ::" + +#: ../Doc/tutorial/floatingpoint.rst:55 +msgid "" +"Stop at any finite number of bits, and you get an approximation. On most " +"machines today, floats are approximated using a binary fraction with the " +"numerator using the first 53 bits starting with the most significant bit and " +"with the denominator as a power of two. In the case of 1/10, the binary " +"fraction is ``3602879701896397 / 2 ** 55`` which is close to but not exactly " +"equal to the true value of 1/10." +msgstr "" +"En se limitant à une quantité finie de bits, on ne peut obtenir qu'une " +"approximation. Sur la majorité des machines aujourd'hui, les nombres à " +"virgule flottante sont approximés par une fraction binaire avec les 53 " +"premiers bits comme numérateur et une puissance de deux au dénominateur. " +"Dans le cas de 1/10, la fraction binaire est ``3602879701896397 / 2 ** 55`` " +"qui est proche mais ne vaut pas exactement 1/10." + +#: ../Doc/tutorial/floatingpoint.rst:62 +msgid "" +"Many users are not aware of the approximation because of the way values are " +"displayed. Python only prints a decimal approximation to the true decimal " +"value of the binary approximation stored by the machine. On most machines, " +"if Python were to print the true decimal value of the binary approximation " +"stored for 0.1, it would have to display ::" +msgstr "" +"Du fait de la manière dont les flottants sont affichés par l'interpréteur, " +"il est facile d'oublier que la valeur stockée est une approximation de la " +"fraction décimale d'origine. Python n'affiche qu'une approximation décimale " +"de la valeur stockée en binaire. Si Python devait afficher la vraie valeur " +"décimale de l'approximation binaire stockée pour 0,1, il afficherait ::" + +#: ../Doc/tutorial/floatingpoint.rst:71 +msgid "" +"That is more digits than most people find useful, so Python keeps the number " +"of digits manageable by displaying a rounded value instead ::" +msgstr "" +"C'est bien plus de décimales que ce qu'attendent la plupart des " +"utilisateurs, donc Python affiche une valeur arrondie afin d'améliorer la " +"lisibilité ::" + +#: ../Doc/tutorial/floatingpoint.rst:77 +msgid "" +"Just remember, even though the printed result looks like the exact value of " +"1/10, the actual stored value is the nearest representable binary fraction." +msgstr "" +"Rappelez-vous simplement que, bien que la valeur affichée ressemble à la " +"valeur exacte de 1/10, la valeur stockée est la représentation la plus " +"proche en fraction binaire." + +#: ../Doc/tutorial/floatingpoint.rst:80 +msgid "" +"Interestingly, there are many different decimal numbers that share the same " +"nearest approximate binary fraction. For example, the numbers ``0.1`` and " +"``0.10000000000000001`` and " +"``0.1000000000000000055511151231257827021181583404541015625`` are all " +"approximated by ``3602879701896397 / 2 ** 55``. Since all of these decimal " +"values share the same approximation, any one of them could be displayed " +"while still preserving the invariant ``eval(repr(x)) == x``." +msgstr "" +"Il existe beaucoup de nombres décimaux qui partagent une même approximation " +"en fraction binaire. Par exemple, ``0.1``, ``0.10000000000000001`` et " +"``0.1000000000000000055511151231257827021181583404541015625`` ont tous pour " +"approximation ``3602879701896397 / 2 ** 55``. Puisque toutes ces valeurs " +"décimales partagent la même approximation, chacune peut être affichée tout " +"en respectant ``eval(repr(x)) == x``." + +#: ../Doc/tutorial/floatingpoint.rst:88 +msgid "" +"Historically, the Python prompt and built-in :func:`repr` function would " +"choose the one with 17 significant digits, ``0.10000000000000001``. " +"Starting with Python 3.1, Python (on most systems) is now able to choose the " +"shortest of these and simply display ``0.1``." +msgstr "" +"Historiquement, le mode interactif de Python et la primitive :func:`repr` " +"choisissaient la version avec 17 décimales significatives, " +"``0.10000000000000001``. Python, depuis la version 3.1 (sur la majorité des " +"systèmes) est maintenant capable de choisir la plus courte représentation et " +"n'affiche que ``0.1``." + +#: ../Doc/tutorial/floatingpoint.rst:93 +msgid "" +"Note that this is in the very nature of binary floating-point: this is not a " +"bug in Python, and it is not a bug in your code either. You'll see the same " +"kind of thing in all languages that support your hardware's floating-point " +"arithmetic (although some languages may not *display* the difference by " +"default, or in all output modes)." +msgstr "" +"Ce comportement est inhérent à la nature même de la représentation des " +"nombres à virgule flottante dans la machine : ce n'est pas un bogue dans " +"Python et ce n'est pas non plus un bogue dans votre code. Vous pouvez " +"observer le même type de comportement dans tous les autres langages " +"utilisant le support matériel pour le calcul des nombres à virgule flottante " +"(bien que certains langages ne rendent pas visible la différence par défaut, " +"ou pas dans tous les modes d'affichage)." + +#: ../Doc/tutorial/floatingpoint.rst:99 +msgid "" +"For more pleasant output, you may wish to use string formatting to produce a " +"limited number of significant digits::" +msgstr "" +"Pour obtenir un affichage plus plaisant, les fonctions de formatage de " +"chaînes de caractères peuvent limiter le nombre de décimales significatives " +"affichées ::" + +#: ../Doc/tutorial/floatingpoint.rst:111 +msgid "" +"It's important to realize that this is, in a real sense, an illusion: you're " +"simply rounding the *display* of the true machine value." +msgstr "" +"Il est important de comprendre que tout cela n'est, au sens propre, qu'une " +"illusion : vous demandez simplement à Python d'arrondir la valeur stockée " +"réellement dans la machine à *l'affichage*." + +#: ../Doc/tutorial/floatingpoint.rst:114 +msgid "" +"One illusion may beget another. For example, since 0.1 is not exactly 1/10, " +"summing three values of 0.1 may not yield exactly 0.3, either::" +msgstr "" +"Une autre conséquence du fait que 0,1 n'est pas exactement stocké 1/10 est " +"que la somme de trois valeurs de 0,1 ne donne pas 0,3 non plus ::" + +#: ../Doc/tutorial/floatingpoint.rst:120 +msgid "" +"Also, since the 0.1 cannot get any closer to the exact value of 1/10 and 0.3 " +"cannot get any closer to the exact value of 3/10, then pre-rounding with :" +"func:`round` function cannot help::" +msgstr "" +"Aussi, puisque 0,1 ne peut pas être stocké avec une représentation plus " +"proche de sa valeur exacte 1/10, comme 0,3 qui ne peut pas être plus proche " +"de sa valeur exacte 3/10, arrondir au préalable avec la fonction :func:" +"`round` n'aide en rien ::" + +#: ../Doc/tutorial/floatingpoint.rst:127 +msgid "" +"Though the numbers cannot be made closer to their intended exact values, " +"the :func:`round` function can be useful for post-rounding so that results " +"with inexact values become comparable to one another::" +msgstr "" +"Bien que les nombres ne peuvent se rapprocher plus de la valeur qu’on attend " +"qu’ils aient, la fonction :func:`round` peut être utile à postériori pour " +"arrondir deux valeurs inexactes et pouvoir les comparer ::" + +#: ../Doc/tutorial/floatingpoint.rst:134 +msgid "" +"Binary floating-point arithmetic holds many surprises like this. The " +"problem with \"0.1\" is explained in precise detail below, in the " +"\"Representation Error\" section. See `The Perils of Floating Point `_ for a more complete account of other common " +"surprises." +msgstr "" +"L'arithmétique des nombres binaires à virgule flottante réserve beaucoup de " +"surprises de ce genre. Le problème avec \"0.1\" est expliqué en détails ci-" +"dessous, dans la section \"Erreurs de représentation\". Voir `The Perils of " +"Floating Point `_ pour une liste plus " +"complète de ce genre de surprises." + +#: ../Doc/tutorial/floatingpoint.rst:139 +msgid "" +"As that says near the end, \"there are no easy answers.\" Still, don't be " +"unduly wary of floating-point! The errors in Python float operations are " +"inherited from the floating-point hardware, and on most machines are on the " +"order of no more than 1 part in 2\\*\\*53 per operation. That's more than " +"adequate for most tasks, but you do need to keep in mind that it's not " +"decimal arithmetic and that every float operation can suffer a new rounding " +"error." +msgstr "" +"Même s'il est vrai qu'il n'existe pas de réponse simple, ce n'est pas la " +"peine de vous méfier outre mesure des nombres à virgule flottante ! Les " +"erreurs, en Python, dans les opérations de nombres à virgule flottante sont " +"dues au matériel sous-jacent et, sur la plupart des machines, sont de " +"l'ordre de 1 sur 2\\*\\*53 par opération. C'est plus que suffisant pour la " +"plupart des tâches, mais vous devez garder à l'esprit que ce ne sont pas des " +"opérations décimales et que chaque opération sur des nombres à virgule " +"flottante peut souffrir d'une nouvelle erreur." + +#: ../Doc/tutorial/floatingpoint.rst:146 +msgid "" +"While pathological cases do exist, for most casual use of floating-point " +"arithmetic you'll see the result you expect in the end if you simply round " +"the display of your final results to the number of decimal digits you " +"expect. :func:`str` usually suffices, and for finer control see the :meth:" +"`str.format` method's format specifiers in :ref:`formatstrings`." +msgstr "" +"Bien que des cas pathologiques existent, pour la plupart des cas " +"d'utilisations courants vous obtiendrez le résultat attendu à la fin en " +"arrondissant simplement au nombre de décimales désirées à l'affichage avec :" +"func:`str`. Pour un contrôle fin sur la manière dont les décimales sont " +"affichées, consultez dans :ref:`formatstrings` les spécifications de " +"formatage de la méthode :meth:`str.format`." + +#: ../Doc/tutorial/floatingpoint.rst:152 +msgid "" +"For use cases which require exact decimal representation, try using the :mod:" +"`decimal` module which implements decimal arithmetic suitable for accounting " +"applications and high-precision applications." +msgstr "" +"Pour les cas requérant une représentation décimale exacte, le module :mod:" +"`decimal` peut être utile : il implémente l'arithmétique décimale et peut " +"donc être un choix adapté pour des applications nécessitant une grande " +"précision." + +#: ../Doc/tutorial/floatingpoint.rst:156 +msgid "" +"Another form of exact arithmetic is supported by the :mod:`fractions` module " +"which implements arithmetic based on rational numbers (so the numbers like " +"1/3 can be represented exactly)." +msgstr "" +"Une autre forme d'arithmétique exacte est implémentée dans le module :mod:" +"`fractions` qui se base sur les nombres rationnels (donc 1/3 peut y être " +"représenté exactement)." + +#: ../Doc/tutorial/floatingpoint.rst:160 +msgid "" +"If you are a heavy user of floating point operations you should take a look " +"at the Numerical Python package and many other packages for mathematical and " +"statistical operations supplied by the SciPy project. See ." +msgstr "" +"Si vous êtes un utilisateur intensif des opérations sur les nombres à " +"virgule flottante, nous vous conseillons de considérer le paquet *Numerical " +"Python* ainsi que les paquets pour les opérations statistiques et " +"mathématiques fournis par le projet SciPy. Consultez ." + +#: ../Doc/tutorial/floatingpoint.rst:164 +msgid "" +"Python provides tools that may help on those rare occasions when you really " +"*do* want to know the exact value of a float. The :meth:`float." +"as_integer_ratio` method expresses the value of a float as a fraction::" +msgstr "" +"Python fournit des outils qui peuvent être utiles dans les rares occasions " +"où vous voulez réellement connaître la valeur exacte d'un nombre à virgule " +"flottante. La méthode :meth:`float.as_integer_ratio` donne la valeur du " +"nombre sous forme de fraction ::" + +#: ../Doc/tutorial/floatingpoint.rst:173 +msgid "" +"Since the ratio is exact, it can be used to losslessly recreate the original " +"value::" +msgstr "" +"Puisque le ratio est exact, il peut être utilisé pour recréer la valeur " +"originale sans perte ::" + +#: ../Doc/tutorial/floatingpoint.rst:179 +msgid "" +"The :meth:`float.hex` method expresses a float in hexadecimal (base 16), " +"again giving the exact value stored by your computer::" +msgstr "" +"La méthode :meth:`float.hex` donne le nombre en hexadécimal (base 16), " +"donnant ici aussi la valeur exacte stockée par la machine ::" + +#: ../Doc/tutorial/floatingpoint.rst:185 +msgid "" +"This precise hexadecimal representation can be used to reconstruct the float " +"value exactly::" +msgstr "" +"Cette représentation hexadécimale petit être utilisée pour reconstruire, " +"sans approximation, le *float* ::" + +#: ../Doc/tutorial/floatingpoint.rst:191 +msgid "" +"Since the representation is exact, it is useful for reliably porting values " +"across different versions of Python (platform independence) and exchanging " +"data with other languages that support the same format (such as Java and " +"C99)." +msgstr "" +"Puisque cette représentation est exacte, elle est pratique pour échanger des " +"valeurs entre différentes versions de Python (indépendamment de la machine) " +"ou d'autres langages qui comprennent ce format (tels que Java et C99)." + +#: ../Doc/tutorial/floatingpoint.rst:195 +msgid "" +"Another helpful tool is the :func:`math.fsum` function which helps mitigate " +"loss-of-precision during summation. It tracks \"lost digits\" as values are " +"added onto a running total. That can make a difference in overall accuracy " +"so that the errors do not accumulate to the point where they affect the " +"final total:" +msgstr "" +"Une autre fonction utile est :func:`math.fsum`, elle aide à diminuer les " +"pertes de précision lors des additions. Elle surveille les *décimales " +"perdues* au fur et à mesure que les valeurs sont ajoutées au total. Cela " +"peut faire une différence au niveau de la précision globale en empêchant les " +"erreurs de s'accumuler jusqu'à affecter le résultat final :" + +#: ../Doc/tutorial/floatingpoint.rst:209 +msgid "Representation Error" +msgstr "Erreurs de représentation" + +#: ../Doc/tutorial/floatingpoint.rst:211 +msgid "" +"This section explains the \"0.1\" example in detail, and shows how you can " +"perform an exact analysis of cases like this yourself. Basic familiarity " +"with binary floating-point representation is assumed." +msgstr "" +"Cette section explique en détail l'exemple du \"0.1\" et montre comment vous " +"pouvez effectuer une analyse exacte de ce type de cas par vous-même. Nous " +"supposons que la représentation binaire des nombres flottants vous est " +"familière." + +#: ../Doc/tutorial/floatingpoint.rst:215 +msgid "" +":dfn:`Representation error` refers to the fact that some (most, actually) " +"decimal fractions cannot be represented exactly as binary (base 2) " +"fractions. This is the chief reason why Python (or Perl, C, C++, Java, " +"Fortran, and many others) often won't display the exact decimal number you " +"expect." +msgstr "" +"Le terme :dfn:`Erreur de représentation` (*representation error* en anglais) " +"signifie que la plupart des fractions décimales ne peuvent être représentées " +"exactement en binaire. C'est la principale raison pour laquelle Python (ou " +"Perl, C, C++, Java, Fortran et beaucoup d'autres) n'affiche habituellement " +"pas le résultat exact en décimal." + +#: ../Doc/tutorial/floatingpoint.rst:220 +msgid "" +"Why is that? 1/10 is not exactly representable as a binary fraction. Almost " +"all machines today (November 2000) use IEEE-754 floating point arithmetic, " +"and almost all platforms map Python floats to IEEE-754 \"double precision" +"\". 754 doubles contain 53 bits of precision, so on input the computer " +"strives to convert 0.1 to the closest fraction it can of the form *J*/2**\\ " +"*N* where *J* is an integer containing exactly 53 bits. Rewriting ::" +msgstr "" +"Pourquoi ? 1/10 n'est pas représentable de manière exacte en fraction " +"binaire. Cependant, toutes les machines d'aujourd'hui (novembre 2000) " +"suivent la norme IEEE-754 en ce qui concerne l'arithmétique des nombres à " +"virgule flottante et la plupart des plateformes utilisent un « IEEE-754 " +"double précision » pour représenter les *floats* de Python. Les « IEEE-754 " +"double précision » utilisent 53 bits de précision donc, à la lecture, " +"l'ordinateur essaie de convertir 0,1 dans la fraction la plus proche " +"possible de la forme *J*/2**\\ *N* avec *J* un nombre entier d'exactement 53 " +"bits. Pour réécrire ::" + +#: ../Doc/tutorial/floatingpoint.rst:229 +msgid "as ::" +msgstr "en ::" + +#: ../Doc/tutorial/floatingpoint.rst:233 +msgid "" +"and recalling that *J* has exactly 53 bits (is ``>= 2**52`` but ``< " +"2**53``), the best value for *N* is 56::" +msgstr "" +"en se rappelant que *J* fait exactement 53 bits (donc ``>= 2**52`` mais ``< " +"2**53``), la meilleure valeur possible pour *N* est 56 ::" + +#: ../Doc/tutorial/floatingpoint.rst:239 +msgid "" +"That is, 56 is the only value for *N* that leaves *J* with exactly 53 bits. " +"The best possible value for *J* is then that quotient rounded::" +msgstr "" +"Donc 56 est la seule valeur possible pour *N* qui laisse exactement 53 bits " +"pour *J*. La meilleure valeur possible pour *J* est donc ce quotient, " +"arrondi ::" + +#: ../Doc/tutorial/floatingpoint.rst:246 +msgid "" +"Since the remainder is more than half of 10, the best approximation is " +"obtained by rounding up::" +msgstr "" +"Puisque la retenue est plus grande que la moitié de 10, la meilleure " +"approximation est obtenue en arrondissant par le haut ::" + +#: ../Doc/tutorial/floatingpoint.rst:252 +msgid "" +"Therefore the best possible approximation to 1/10 in 754 double precision " +"is::" +msgstr "" +"Par conséquent la meilleure approximation possible pour 1/10 en « IEEE-754 " +"double précision » est celle au-dessus de 2\\*\\*56, soit ::" + +#: ../Doc/tutorial/floatingpoint.rst:256 +msgid "" +"Dividing both the numerator and denominator by two reduces the fraction to::" +msgstr "" +"Diviser le numérateur et le dénominateur par deux réduit la fraction à ::" + +#: ../Doc/tutorial/floatingpoint.rst:260 +msgid "" +"Note that since we rounded up, this is actually a little bit larger than " +"1/10; if we had not rounded up, the quotient would have been a little bit " +"smaller than 1/10. But in no case can it be *exactly* 1/10!" +msgstr "" +"Notez que puisque l'arrondi a été fait vers le haut, le résultat est en " +"réalité légèrement plus grand que 1/10 ; si nous n'avions pas arrondi par le " +"haut, le quotient aurait été légèrement plus petit que 1/10. Mais dans aucun " +"cas il ne vaut *exactement* 1/10 !" + +#: ../Doc/tutorial/floatingpoint.rst:264 +msgid "" +"So the computer never \"sees\" 1/10: what it sees is the exact fraction " +"given above, the best 754 double approximation it can get::" +msgstr "" +"Donc l'ordinateur ne \"voit\" jamais 1/10 : ce qu'il voit est la fraction " +"exacte donnée ci-dessus, la meilleure approximation utilisant les nombres à " +"virgule flottante double précision de l'« IEEE-754 » ::" + +#: ../Doc/tutorial/floatingpoint.rst:270 +msgid "" +"If we multiply that fraction by 10\\*\\*55, we can see the value out to 55 " +"decimal digits::" +msgstr "" +"Si nous multiplions cette fraction par 10\\*\\*30, nous pouvons observer les " +"valeurs de ses 55 décimales de poids fort ::" + +#: ../Doc/tutorial/floatingpoint.rst:276 +msgid "" +"meaning that the exact number stored in the computer is equal to the decimal " +"value 0.1000000000000000055511151231257827021181583404541015625. Instead of " +"displaying the full decimal value, many languages (including older versions " +"of Python), round the result to 17 significant digits::" +msgstr "" +"La valeur stockée dans l'ordinateur est donc égale à " +"0,1000000000000000055511151231257827021181583404541015625. Au lieu " +"d'afficher toutes les décimales, beaucoup de langages (dont les vieilles " +"versions de Python) arrondissent le résultat à la 17\\ :sup:`e` décimale " +"significative ::" + +#: ../Doc/tutorial/floatingpoint.rst:284 +msgid "" +"The :mod:`fractions` and :mod:`decimal` modules make these calculations " +"easy::" +msgstr "" +"Les modules :mod:`fractions` et :mod:`decimal` rendent simples ces calculs ::" diff --git a/tutorial/index.po b/tutorial/index.po new file mode 100644 index 000000000..fb10f597f --- /dev/null +++ b/tutorial/index.po @@ -0,0 +1,110 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-08 09:58+0100\n" +"PO-Revision-Date: 2018-01-27 23:09+0100\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/tutorial/index.rst:5 +msgid "The Python Tutorial" +msgstr "Le tutoriel Python" + +#: ../Doc/tutorial/index.rst:7 +msgid "" +"Python is an easy to learn, powerful programming language. It has efficient " +"high-level data structures and a simple but effective approach to object-" +"oriented programming. Python's elegant syntax and dynamic typing, together " +"with its interpreted nature, make it an ideal language for scripting and " +"rapid application development in many areas on most platforms." +msgstr "" +"Python est un langage de programmation puissant et facile à apprendre. Il " +"dispose de structures de données de haut niveau et permet une approche " +"simple mais efficace de la programmation orientée objet. Parce que sa " +"syntaxe est élégante, que son typage est dynamique et qu'il est interprété, " +"Python est un langage idéal pour l'écriture de scripts et le développement " +"rapide d'applications dans de nombreux domaines et sur la plupart des " +"plateformes." + +#: ../Doc/tutorial/index.rst:13 +msgid "" +"The Python interpreter and the extensive standard library are freely " +"available in source or binary form for all major platforms from the Python " +"Web site, https://www.python.org/, and may be freely distributed. The same " +"site also contains distributions of and pointers to many free third party " +"Python modules, programs and tools, and additional documentation." +msgstr "" +"L'interpréteur Python et sa vaste bibliothèque standard sont disponibles " +"librement, sous forme de sources ou de binaires, pour toutes les plateformes " +"majeures depuis le site Internet https://www.python.org/ et peuvent être " +"librement redistribués. Ce même site distribue et pointe vers des modules, " +"des programmes et des outils tiers. Enfin, il constitue une source de " +"documentation." + +#: ../Doc/tutorial/index.rst:19 +msgid "" +"The Python interpreter is easily extended with new functions and data types " +"implemented in C or C++ (or other languages callable from C). Python is also " +"suitable as an extension language for customizable applications." +msgstr "" +"L'interpréteur Python peut être facilement étendu par de nouvelles fonctions " +"et types de données implémentés en C ou C++ (ou tout autre langage appelable " +"depuis le C). Python est également adapté comme langage d'extension pour " +"personnaliser des applications." + +#: ../Doc/tutorial/index.rst:23 +msgid "" +"This tutorial introduces the reader informally to the basic concepts and " +"features of the Python language and system. It helps to have a Python " +"interpreter handy for hands-on experience, but all examples are self-" +"contained, so the tutorial can be read off-line as well." +msgstr "" +"Dans ce tutoriel, nous introduisons, de façon informelle, les concepts de " +"base ainsi que les fonctionnalités du langage Python et de son écosystème. " +"Il est utile de disposer d'un interpréteur Python à portée de main pour " +"mettre en pratique les notions abordées. Si ce n'est pas possible, pas de " +"souci, les exemples sont inclus et le tutoriel est adapté à une lecture " +"\"hors ligne\"." + +#: ../Doc/tutorial/index.rst:28 +msgid "" +"For a description of standard objects and modules, see :ref:`library-" +"index`. :ref:`reference-index` gives a more formal definition of the " +"language. To write extensions in C or C++, read :ref:`extending-index` and :" +"ref:`c-api-index`. There are also several books covering Python in depth." +msgstr "" +"Pour une description des objets et modules de la bibliothèque standard, " +"reportez-vous à :ref:`library-index`. :ref:`reference-index` présente le " +"langage de manière plus formelle. Pour écrire des extensions en C ou en C++, " +"lisez :ref:`extending-index` et :ref:`c-api-index`. Des livres sont " +"également disponibles qui couvrent Python dans le détail." + +#: ../Doc/tutorial/index.rst:33 +msgid "" +"This tutorial does not attempt to be comprehensive and cover every single " +"feature, or even every commonly used feature. Instead, it introduces many of " +"Python's most noteworthy features, and will give you a good idea of the " +"language's flavor and style. After reading it, you will be able to read and " +"write Python modules and programs, and you will be ready to learn more about " +"the various Python library modules described in :ref:`library-index`." +msgstr "" +"L'ambition de ce tutoriel n'est pas d'être exhaustif et de couvrir chaque " +"fonctionnalité, ni même toutes les fonctionnalités les plus utilisées. Il " +"vise, en revanche, à introduire les fonctionnalités les plus notables et à " +"vous donner une bonne idée de la saveur et du style du langage. Après " +"l'avoir lu, vous serez capable de lire et d'écrire des modules et des " +"programmes Python et vous serez prêt à en apprendre davantage sur les " +"modules de la bibliothèque Python décrits dans :ref:`library-index`." + +#: ../Doc/tutorial/index.rst:40 +msgid "The :ref:`glossary` is also worth going through." +msgstr "Pensez aussi à consulter le :ref:`glossary`." diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po new file mode 100644 index 000000000..60b7bf01f --- /dev/null +++ b/tutorial/inputoutput.po @@ -0,0 +1,712 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2019-01-03 17:12+0100\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.1.1\n" + +#: ../Doc/tutorial/inputoutput.rst:5 +msgid "Input and Output" +msgstr "Les entrées/sorties" + +#: ../Doc/tutorial/inputoutput.rst:7 +msgid "" +"There are several ways to present the output of a program; data can be " +"printed in a human-readable form, or written to a file for future use. This " +"chapter will discuss some of the possibilities." +msgstr "" +"Il existe bien des moyens de présenter les sorties d'un programmes ; les " +"données peuvent être affichées sous une forme lisible par un être humain ou " +"sauvegardées dans un fichier pour une utilisation future. Ce chapitre " +"présente quelques possibilités." + +#: ../Doc/tutorial/inputoutput.rst:15 +msgid "Fancier Output Formatting" +msgstr "Formatage de données" + +#: ../Doc/tutorial/inputoutput.rst:17 +msgid "" +"So far we've encountered two ways of writing values: *expression statements* " +"and the :func:`print` function. (A third way is using the :meth:`write` " +"method of file objects; the standard output file can be referenced as ``sys." +"stdout``. See the Library Reference for more information on this.)" +msgstr "" +"Jusqu'ici, nous avons rencontré deux moyens d'écrire des données : les " +"*déclarations d'expressions* et la fonction :func:`print`. Une troisième " +"méthode consiste à utiliser la méthode :meth:`write` des fichiers, avec le " +"fichier de sortie standard référencé en tant que ``sys.stdout``. Voyez le " +"Guide de Référence de la Bibliothèque Standard pour en savoir plus." + +#: ../Doc/tutorial/inputoutput.rst:22 +msgid "" +"Often you'll want more control over the formatting of your output than " +"simply printing space-separated values. There are several ways to format " +"output." +msgstr "" +"Souvent vous voudrez plus de contrôle sur le formatage de vos sorties et " +"aller au delà d’un affichage de valeurs séparées par des espaces. Il y a " +"plusieurs moyens de les formater." + +#: ../Doc/tutorial/inputoutput.rst:25 +msgid "" +"To use :ref:`formatted string literals `, begin a string with " +"``f`` or ``F`` before the opening quotation mark or triple quotation mark. " +"Inside this string, you can write a Python expression between ``{`` and ``}" +"`` characters that can refer to variables or literal values." +msgstr "" +"Pour utiliser :ref:`les expressions formatées `, commencez " +"une chaine de caractère avec ``f`` ou ``F`` avant d’ouvrir vos guillemets " +"doubles ou triples. Dans ces chaines de caractère, vous pouvez entrer des " +"expressions Python entre les caractères ``{`` et ``}`` qui peuvent contenir " +"des variables ou des valeurs littérales." + +#: ../Doc/tutorial/inputoutput.rst:37 +msgid "" +"The :meth:`str.format` method of strings requires more manual effort. " +"You'll still use ``{`` and ``}`` to mark where a variable will be " +"substituted and can provide detailed formatting directives, but you'll also " +"need to provide the information to be formatted." +msgstr "" +"La méthode :meth:`str.format` sur les chaines de caractères exige un plus " +"grand effort manuel. Vous utiliserez toujours les caractères ``{`` et ``}`` " +"pour indiquer où une variable sera substituée et donner des détails sur son " +"formatage, mais vous devrez également fournir les informations à formater." + +#: ../Doc/tutorial/inputoutput.rst:50 +msgid "" +"Finally, you can do all the string handling yourself by using string slicing " +"and concatenation operations to create any layout you can imagine. The " +"string type has some methods that perform useful operations for padding " +"strings to a given column width." +msgstr "" +"Enfin, vous pouvez construire des concaténations de tranches de chaînes vous-" +"même, et ainsi créer n'importe quel agencement. Le type des chaînes a des " +"méthodes utiles pour aligner des chaînes dans une largeur de taille fixe." + +#: ../Doc/tutorial/inputoutput.rst:55 +msgid "" +"When you don't need fancy output but just want a quick display of some " +"variables for debugging purposes, you can convert any value to a string with " +"the :func:`repr` or :func:`str` functions." +msgstr "" +"Lorsque qu'un affichage basique suffit, pour afficher simplement une " +"variable pour en inspecter le contenu, vous pouvez convertir n'importe " +"quelle valeur en chaîne de caractères en utilisant la fonction :func:`repr` " +"ou la fonction :func:`str`." + +#: ../Doc/tutorial/inputoutput.rst:59 +msgid "" +"The :func:`str` function is meant to return representations of values which " +"are fairly human-readable, while :func:`repr` is meant to generate " +"representations which can be read by the interpreter (or will force a :exc:" +"`SyntaxError` if there is no equivalent syntax). For objects which don't " +"have a particular representation for human consumption, :func:`str` will " +"return the same value as :func:`repr`. Many values, such as numbers or " +"structures like lists and dictionaries, have the same representation using " +"either function. Strings, in particular, have two distinct representations." +msgstr "" +"La fonction :func:`str` est destinée à représenter les valeurs sous une " +"forme lisible par un être humain, alors que la fonction :func:`repr` est " +"destinée à générer des représentations qui puissent être lues par " +"l'interpréteur (ou qui lèvera une :exc:`SyntaxError` s'il n'existe aucune " +"syntaxe équivalente). Pour les objets qui n'ont pas de représentation " +"humaine spécifique, :func:`str` renvoie la même valeur que :func:`repr`. " +"Beaucoup de valeurs, comme les nombres ou les structures telles que les " +"listes ou les dictionnaires, ont la même représentation en utilisant les " +"deux fonctions. Les chaînes de caractères, en particulier, ont deux " +"représentations distinctes." + +#: ../Doc/tutorial/inputoutput.rst:68 +msgid "Some examples::" +msgstr "Quelques exemples ::" + +#: ../Doc/tutorial/inputoutput.rst:91 +msgid "" +"The :mod:`string` module contains a :class:`~string.Template` class that " +"offers yet another way to substitute values into strings, using placeholders " +"like ``$x`` and replacing them with values from a dictionary, but offers " +"much less control of the formatting." +msgstr "" +"Le module :mod:`string` contient une classe :class:`~string.Template` qui " +"permet aussi de remplacer des valeurs au sein de chaînes de caractères, en " +"utilisant des marqueurs comme ``$x``, et en les remplaçant par les valeurs " +"d'un dictionnaire, mais sa capacité à formater les chaînes est plus limitée." + +#: ../Doc/tutorial/inputoutput.rst:100 +msgid "Formatted String Literals" +msgstr "Les chaines de caractères formatées (*f-strings*)" + +#: ../Doc/tutorial/inputoutput.rst:102 +msgid "" +":ref:`Formatted string literals ` (also called f-strings for " +"short) let you include the value of Python expressions inside a string by " +"prefixing the string with ``f`` or ``F`` and writing expressions as " +"``{expression}``." +msgstr "" +":ref:`Les chaines de caractères formatées ` (aussi appelées f-" +"strings) vous permettent d’inclure la valeur d’expressions Python dans des " +"chaines de caractères en les préfixant avec ``f`` ou ``F`` et écrire des " +"expressions comme ``{expression}``." + +#: ../Doc/tutorial/inputoutput.rst:107 +msgid "" +"An optional format specifier can follow the expression. This allows greater " +"control over how the value is formatted. The following example rounds pi to " +"three places after the decimal::" +msgstr "" +"L'expression peut être suivie d'un spécificateur de format. Cela permet un " +"plus grand contrôle sur la façon dont la valeur est rendue. L'exemple " +"suivant arrondit pi à trois décimales après la virgule ::" + +#: ../Doc/tutorial/inputoutput.rst:115 +msgid "" +"Passing an integer after the ``':'`` will cause that field to be a minimum " +"number of characters wide. This is useful for making columns line up. ::" +msgstr "" +"Donner un entier après le ``':'`` indique la largeur minimale de ce champ en " +"nombre de caractères. C'est utile pour faire de jolis tableaux ::" + +#: ../Doc/tutorial/inputoutput.rst:126 +msgid "" +"Other modifiers can be used to convert the value before it is formatted. ``'!" +"a'`` applies :func:`ascii`, ``'!s'`` applies :func:`str`, and ``'!r'`` " +"applies :func:`repr`::" +msgstr "" +"D’autres modificateurs peuvent être utilisés pour convertir la valeur avant " +"son formatage. ``'!a'`` applique :func:`ascii`, ``'!s'`` applique :func:" +"`str`, et ``'!r'`` applique :func:`repr` ::" + +#: ../Doc/tutorial/inputoutput.rst:136 +msgid "" +"For a reference on these format specifications, see the reference guide for " +"the :ref:`formatspec`." +msgstr "" +"Pour une référence sur ces spécifications de formats, voir le guide de " +"référence pour les :ref:`formatspec`." + +#: ../Doc/tutorial/inputoutput.rst:142 +msgid "The String format() Method" +msgstr "La méthode de chaine de caractères ``format()``" + +#: ../Doc/tutorial/inputoutput.rst:144 +msgid "Basic usage of the :meth:`str.format` method looks like this::" +msgstr "" +"L'utilisation de base de la méthode :meth:`str.format` ressemble à ceci ::" + +#: ../Doc/tutorial/inputoutput.rst:149 +msgid "" +"The brackets and characters within them (called format fields) are replaced " +"with the objects passed into the :meth:`str.format` method. A number in the " +"brackets can be used to refer to the position of the object passed into the :" +"meth:`str.format` method. ::" +msgstr "" +"Les accolades et les caractères à l'intérieur (appelés les champs de " +"formatage) sont remplacés par les objets passés en paramètres à la méthode :" +"meth:`str.format`. Un nombre entre accolades se réfère à la position de " +"l'objet passé à la méthode :meth:`str.format`. ::" + +#: ../Doc/tutorial/inputoutput.rst:159 +msgid "" +"If keyword arguments are used in the :meth:`str.format` method, their values " +"are referred to by using the name of the argument. ::" +msgstr "" +"Si des arguments nommés sont utilisés dans la méthode :meth:`str.format`, " +"leurs valeurs sont utilisées en se basant sur le nom des arguments ::" + +#: ../Doc/tutorial/inputoutput.rst:166 +msgid "Positional and keyword arguments can be arbitrarily combined::" +msgstr "" +"Les arguments positionnés et nommés peuvent être combinés arbitrairement ::" + +#: ../Doc/tutorial/inputoutput.rst:172 +msgid "" +"If you have a really long format string that you don't want to split up, it " +"would be nice if you could reference the variables to be formatted by name " +"instead of by position. This can be done by simply passing the dict and " +"using square brackets ``'[]'`` to access the keys ::" +msgstr "" +"Si vous avez une chaîne de formatage vraiment longue que vous ne voulez pas " +"découper, il est possible de référencer les variables à formater par leur " +"nom plutôt que par leur position. Utilisez simplement un dictionnaire et la " +"notation entre crochets ``'[]'`` pour accéder aux clés ::" + +#: ../Doc/tutorial/inputoutput.rst:182 +msgid "" +"This could also be done by passing the table as keyword arguments with the " +"'**' notation. ::" +msgstr "" +"Vous pouvez obtenir le même résultat en passant le tableau comme des " +"arguments nommés en utilisant la notation ``**`` ::" + +#: ../Doc/tutorial/inputoutput.rst:189 +msgid "" +"This is particularly useful in combination with the built-in function :func:" +"`vars`, which returns a dictionary containing all local variables." +msgstr "" +"C'est particulièrement utile en combinaison avec la fonction native :func:" +"`vars` qui renvoie un dictionnaire contenant toutes les variables locales." + +#: ../Doc/tutorial/inputoutput.rst:192 +msgid "" +"As an example, the following lines produce a tidily-aligned set of columns " +"giving integers and their squares and cubes::" +msgstr "" +"A titre d’exemple, les lignes suivantes produisent un ensemble de colonnes " +"alignées de façon ordonnée donnant les entiers, leurs carrés et leurs " +"cubes ::" + +#: ../Doc/tutorial/inputoutput.rst:209 +msgid "" +"For a complete overview of string formatting with :meth:`str.format`, see :" +"ref:`formatstrings`." +msgstr "" +"Pour avoir une description complète du formatage des chaînes de caractères " +"avec la méthode :meth:`str.format`, lisez : :ref:`formatstrings`." + +#: ../Doc/tutorial/inputoutput.rst:214 +msgid "Manual String Formatting" +msgstr "Formatage de chaînes à la main" + +#: ../Doc/tutorial/inputoutput.rst:216 +msgid "Here's the same table of squares and cubes, formatted manually::" +msgstr "Voici le même tableau de carrés et de cubes, formaté à la main ::" + +#: ../Doc/tutorial/inputoutput.rst:234 +msgid "" +"(Note that the one space between each column was added by the way :func:" +"`print` works: it always adds spaces between its arguments.)" +msgstr "" +"(Remarquez que l'espace séparant les colonnes vient de la manière donc :func:" +"`print` fonctionne : il ajoute toujours des espaces entre ses arguments.)" + +#: ../Doc/tutorial/inputoutput.rst:237 +msgid "" +"The :meth:`str.rjust` method of string objects right-justifies a string in a " +"field of a given width by padding it with spaces on the left. There are " +"similar methods :meth:`str.ljust` and :meth:`str.center`. These methods do " +"not write anything, they just return a new string. If the input string is " +"too long, they don't truncate it, but return it unchanged; this will mess up " +"your column lay-out but that's usually better than the alternative, which " +"would be lying about a value. (If you really want truncation you can always " +"add a slice operation, as in ``x.ljust(n)[:n]``.)" +msgstr "" +"La méthode :meth:`str.rjust` des chaînes de caractères justifie à droite une " +"chaîne dans un champ d'une largeur donnée en ajoutant des espaces sur la " +"gauche. Il existe des méthodes similaires :meth:`str.ljust` et :meth:`str." +"center`. Ces méthodes n'écrivent rien, elles renvoient simplement une " +"nouvelle chaîne. Si la chaîne passée en paramètre est trop longue, elle " +"n'est pas tronquée mais renvoyée sans modification ; cela peut chambouler " +"votre mise en page mais c'est souvent préférable à l'alternative, qui " +"pourrait mentir sur une valeur (et si vous voulez vraiment tronquer vos " +"valeurs, vous pouvez toujours utiliser une tranche, comme dans ``x.ljust(n)[:" +"n]``)." + +#: ../Doc/tutorial/inputoutput.rst:246 +msgid "" +"There is another method, :meth:`str.zfill`, which pads a numeric string on " +"the left with zeros. It understands about plus and minus signs::" +msgstr "" +"Il existe une autre méthode, :meth:`str.zfill`, qui comble une chaîne " +"numérique à gauche avec des zéros. Elle comprend les signes plus et moins ::" + +#: ../Doc/tutorial/inputoutput.rst:258 +msgid "Old string formatting" +msgstr "Anciennes méthodes de formatage de chaînes" + +#: ../Doc/tutorial/inputoutput.rst:260 +msgid "" +"The ``%`` operator can also be used for string formatting. It interprets the " +"left argument much like a :c:func:`sprintf`\\ -style format string to be " +"applied to the right argument, and returns the string resulting from this " +"formatting operation. For example::" +msgstr "" +"L'opérateur ``%`` peut aussi être utilisé pour formater des chaînes. Il " +"interprète l'argument de gauche pratiquement comme une chaîne de formatage " +"de la fonction :c:func:`sprintf` à appliquer à l'argument de droite, et il " +"renvoie la chaîne résultant de cette opération de formatage. Par exemple ::" + +#: ../Doc/tutorial/inputoutput.rst:269 +msgid "" +"More information can be found in the :ref:`old-string-formatting` section." +msgstr "" +"Vous trouvez plus d'informations dans la section :ref:`old-string-" +"formatting`." + +#: ../Doc/tutorial/inputoutput.rst:275 +msgid "Reading and Writing Files" +msgstr "Lecture et écriture de fichiers" + +#: ../Doc/tutorial/inputoutput.rst:281 +msgid "" +":func:`open` returns a :term:`file object`, and is most commonly used with " +"two arguments: ``open(filename, mode)``." +msgstr "" +"La fonction :func:`open` renvoie un :term:`objet fichier` et est le plus " +"souvent utilisée avec deux arguments : ``open(nomfichier, mode)``." + +#: ../Doc/tutorial/inputoutput.rst:293 +msgid "" +"The first argument is a string containing the filename. The second argument " +"is another string containing a few characters describing the way in which " +"the file will be used. *mode* can be ``'r'`` when the file will only be " +"read, ``'w'`` for only writing (an existing file with the same name will be " +"erased), and ``'a'`` opens the file for appending; any data written to the " +"file is automatically added to the end. ``'r+'`` opens the file for both " +"reading and writing. The *mode* argument is optional; ``'r'`` will be " +"assumed if it's omitted." +msgstr "" +"Le premier argument est une chaîne contenant le nom du fichier. Le deuxième " +"argument est une autre chaîne contenant quelques caractères décrivant la " +"façon dont le fichier est utilisé. *mode* peut être ``'r'`` quand le fichier " +"n'est accédé qu'en lecture, ``'w'`` en écriture seulement (un fichier " +"existant portant le même nom sera alors écrasé) et ``'a'`` ouvre le fichier " +"en mode ajout (toute donnée écrite dans le fichier est automatiquement " +"ajoutée à la fin). ``'r+'`` ouvre le fichier en mode lecture/écriture. " +"L'argument *mode* est optionnel, sa valeur par défaut est ``'r'``." + +#: ../Doc/tutorial/inputoutput.rst:302 +msgid "" +"Normally, files are opened in :dfn:`text mode`, that means, you read and " +"write strings from and to the file, which are encoded in a specific " +"encoding. If encoding is not specified, the default is platform dependent " +"(see :func:`open`). ``'b'`` appended to the mode opens the file in :dfn:" +"`binary mode`: now the data is read and written in the form of bytes " +"objects. This mode should be used for all files that don't contain text." +msgstr "" +"Normalement, les fichiers sont ouverts en :dfn:`mode texte`, c'est-à-dire " +"que vous lisez et écrivez des chaînes de caractères depuis et dans ce " +"fichier, suivant un encodage donné. Si aucun encodage n'est spécifié, " +"l'encodage par défaut dépend de la plateforme (voir :func:`open`). ``'b'`` " +"collé à la fin du mode indique que le fichier doit être ouvert en :dfn:`mode " +"binaire` c'est-à-dire que les données sont lues et écrites sous formes " +"d'octets (type *bytes*). Ce mode est à utiliser pour les fichiers contenant " +"autre chose que du texte." + +#: ../Doc/tutorial/inputoutput.rst:309 +msgid "" +"In text mode, the default when reading is to convert platform-specific line " +"endings (``\\n`` on Unix, ``\\r\\n`` on Windows) to just ``\\n``. When " +"writing in text mode, the default is to convert occurrences of ``\\n`` back " +"to platform-specific line endings. This behind-the-scenes modification to " +"file data is fine for text files, but will corrupt binary data like that in :" +"file:`JPEG` or :file:`EXE` files. Be very careful to use binary mode when " +"reading and writing such files." +msgstr "" +"En mode texte, le comportement par défaut, à la lecture, est de convertir " +"les fin de lignes spécifiques à la plateforme (``\\n`` sur Unix, ``\\r\\n`` " +"sur Windows etc...) en simples ``\\n``. Lors de l'écriture, le comportement " +"par défaut est d'appliquer l'opération inverse : les ``\\n`` sont convertis " +"dans leur équivalent sur la plateforme courante. Ces modifications " +"effectuées automatiquement sont normales pour du texte mais détérioreraient " +"des données binaires contenues dans un fichier de type :file:`JPEG` ou :file:" +"`EXE`. Soyez particulièrement attentifs à ouvrir ces fichiers binaires en " +"mode binaire." + +#: ../Doc/tutorial/inputoutput.rst:317 +msgid "" +"It is good practice to use the :keyword:`with` keyword when dealing with " +"file objects. The advantage is that the file is properly closed after its " +"suite finishes, even if an exception is raised at some point. Using :" +"keyword:`!with` is also much shorter than writing equivalent :keyword:`try`" +"\\ -\\ :keyword:`finally` blocks::" +msgstr "" +"C'est une bonne pratique d'utiliser le mot-clé :keyword:`with` lorsque vous " +"traitez des fichiers. Vous fermez ainsi toujours correctement le fichier, " +"même si une exception est levée. Utiliser :keyword:`!with` est aussi " +"beaucoup plus court que d'utiliser l'équivalent avec des blocs :keyword:`try`" +"\\ -\\ :keyword:`finally` ::" + +#: ../Doc/tutorial/inputoutput.rst:328 +msgid "" +"If you're not using the :keyword:`with` keyword, then you should call ``f." +"close()`` to close the file and immediately free up any system resources " +"used by it. If you don't explicitly close a file, Python's garbage collector " +"will eventually destroy the object and close the open file for you, but the " +"file may stay open for a while. Another risk is that different Python " +"implementations will do this clean-up at different times." +msgstr "" +"Si vous n'utilisez pas le mot clef :keyword:`with`, vous devez appeler ``f." +"close()`` pour fermer le fichier et immédiatement libérer les ressources " +"système qu'il utilise. Si vous ne fermez pas explicitement le fichier, le " +"ramasse-miette de Python finira par détruire l'objet et fermer le fichier " +"pour vous, mais le fichier peut rester ouvert pendant un moment. Un autre " +"risque est que différentes implémentations de Python risquent faire ce " +"nettoyage à des moments différents." + +#: ../Doc/tutorial/inputoutput.rst:336 +msgid "" +"After a file object is closed, either by a :keyword:`with` statement or by " +"calling ``f.close()``, attempts to use the file object will automatically " +"fail. ::" +msgstr "" +"Après la fermeture du fichier, que ce soit *via* une instruction :keyword:" +"`with` ou en appelant ``f.close()``, toute tentative d'utilisation de " +"l'objet fichier échoue systématiquement. ::" + +#: ../Doc/tutorial/inputoutput.rst:350 +msgid "Methods of File Objects" +msgstr "Méthodes des objets fichiers" + +#: ../Doc/tutorial/inputoutput.rst:352 +msgid "" +"The rest of the examples in this section will assume that a file object " +"called ``f`` has already been created." +msgstr "" +"Les derniers exemples de cette section supposent qu'un objet fichier appelé " +"``f`` a déjà été créé." + +#: ../Doc/tutorial/inputoutput.rst:355 +msgid "" +"To read a file's contents, call ``f.read(size)``, which reads some quantity " +"of data and returns it as a string (in text mode) or bytes object (in binary " +"mode). *size* is an optional numeric argument. When *size* is omitted or " +"negative, the entire contents of the file will be read and returned; it's " +"your problem if the file is twice as large as your machine's memory. " +"Otherwise, at most *size* bytes are read and returned. If the end of the " +"file has been reached, ``f.read()`` will return an empty string (``''``). ::" +msgstr "" +"Pour lire le contenu d'un fichier, appelez ``f.read(taille)`` : elle lit une " +"certaine quantité de données et les donne sous la forme d'une chaîne (en " +"mode texte) ou dans un objet *bytes* (en mode binaire). *taille* est un " +"argument numérique optionnel. Quand *taille* est omis ou négatif, le contenu " +"entier du fichier est lu et donné, c'est votre problème si le fichier est " +"deux fois plus gros que la mémoire de votre machine. Sinon, un maximum de " +"*taille* octets sont lus et donnés. Lorsque la fin du fichier est atteinte, " +"``f.read()`` renvoie une chaîne vide (``''``). ::" + +#: ../Doc/tutorial/inputoutput.rst:369 +msgid "" +"``f.readline()`` reads a single line from the file; a newline character (``" +"\\n``) is left at the end of the string, and is only omitted on the last " +"line of the file if the file doesn't end in a newline. This makes the " +"return value unambiguous; if ``f.readline()`` returns an empty string, the " +"end of the file has been reached, while a blank line is represented by " +"``'\\n'``, a string containing only a single newline. ::" +msgstr "" +"``f.readline()`` lit une seule ligne du fichier ; un caractère de fin de " +"ligne (``\\n``) est laissé à la fin de la chaîne. Il n'est omis que sur la " +"dernière ligne du fichier si celui-ci ne se termine pas un caractère de fin " +"de ligne. Ceci permet de rendre la valeur de retour non ambigüe : si ``f." +"readline()`` renvoie une chaîne vide, c'est que la fin du fichier a été " +"atteinte, alors qu'une ligne vide est représentée par ``'\\n'`` (une chaîne " +"de caractères ne contenant qu'une fin de ligne). ::" + +#: ../Doc/tutorial/inputoutput.rst:383 +msgid "" +"For reading lines from a file, you can loop over the file object. This is " +"memory efficient, fast, and leads to simple code::" +msgstr "" +"Pour lire ligne à ligne, vous pouvez aussi boucler sur l'objet fichier. " +"C'est plus efficace en terme de gestion mémoire, plus rapide et donne un " +"code plus simple ::" + +#: ../Doc/tutorial/inputoutput.rst:392 +msgid "" +"If you want to read all the lines of a file in a list you can also use " +"``list(f)`` or ``f.readlines()``." +msgstr "" +"Pour construire une liste avec toutes les lignes d'un fichier, il est aussi " +"possible d'utiliser ``list(f)`` ou ``f.readlines()``." + +#: ../Doc/tutorial/inputoutput.rst:395 +msgid "" +"``f.write(string)`` writes the contents of *string* to the file, returning " +"the number of characters written. ::" +msgstr "" +"``f.write(chaine)`` écrit le contenu de *chaine* dans le fichier et renvoie " +"le nombre de caractères écrits. ::" + +#: ../Doc/tutorial/inputoutput.rst:401 +msgid "" +"Other types of objects need to be converted -- either to a string (in text " +"mode) or a bytes object (in binary mode) -- before writing them::" +msgstr "" +"Les autres types doivent être convertis, soit en une chaîne (en mode texte), " +"soit en objet *bytes* (en mode binaire) avant de les écrire ::" + +#: ../Doc/tutorial/inputoutput.rst:409 +msgid "" +"``f.tell()`` returns an integer giving the file object's current position in " +"the file represented as number of bytes from the beginning of the file when " +"in binary mode and an opaque number when in text mode." +msgstr "" +"``f.tell()`` renvoie un entier indiquant la position actuelle dans le " +"fichier, mesurée en octets à partir du début du fichier lorsque le fichier " +"est ouvert en mode binaire, ou un nombre obscur en mode texte." + +#: ../Doc/tutorial/inputoutput.rst:413 +msgid "" +"To change the file object's position, use ``f.seek(offset, from_what)``. " +"The position is computed from adding *offset* to a reference point; the " +"reference point is selected by the *from_what* argument. A *from_what* " +"value of 0 measures from the beginning of the file, 1 uses the current file " +"position, and 2 uses the end of the file as the reference point. " +"*from_what* can be omitted and defaults to 0, using the beginning of the " +"file as the reference point. ::" +msgstr "" +"Pour modifier la position dans le fichier, utilisez ``f.seek(decalage, " +"a_partir_de)``. La position est calculée en ajoutant *decalage* à un point " +"de référence ; ce point de référence est déterminé par l'argument " +"*a_partir_de* : 0 pour le début du fichier, 1 pour la position actuelle et 2 " +"pour la fin du fichier. *a_partir_de* peut être omis et sa valeur par défaut " +"est 0 (Python utilise le début du fichier comme point de référence) ::" + +#: ../Doc/tutorial/inputoutput.rst:432 +msgid "" +"In text files (those opened without a ``b`` in the mode string), only seeks " +"relative to the beginning of the file are allowed (the exception being " +"seeking to the very file end with ``seek(0, 2)``) and the only valid " +"*offset* values are those returned from the ``f.tell()``, or zero. Any other " +"*offset* value produces undefined behaviour." +msgstr "" +"Sur un fichier en mode texte (ceux ouverts sans ``b`` dans le mode), seuls " +"les changements de position relatifs au début du fichier sont autorisés " +"(sauf une exception : se rendre à la fin du fichier avec ``seek(0, 2)``) et " +"les seules valeurs possibles pour le paramètre *decalage* sont les valeurs " +"renvoyées par ``f.tell()``, ou zéro. Toute autre valeur pour le paramètre " +"*decalage* produit un comportement indéfini." + +#: ../Doc/tutorial/inputoutput.rst:438 +msgid "" +"File objects have some additional methods, such as :meth:`~file.isatty` and :" +"meth:`~file.truncate` which are less frequently used; consult the Library " +"Reference for a complete guide to file objects." +msgstr "" +"Les fichiers disposent de méthodes supplémentaires, telles que :meth:`~file." +"isatty` et :meth:`~file.truncate` qui sont moins souvent utilisées ; " +"consultez la Référence de la Bibliothèque Standard pour avoir un guide " +"complet des objets fichiers." + +#: ../Doc/tutorial/inputoutput.rst:446 +msgid "Saving structured data with :mod:`json`" +msgstr "Sauvegarde de données structurées avec le module :mod:`json`" + +#: ../Doc/tutorial/inputoutput.rst:450 +msgid "" +"Strings can easily be written to and read from a file. Numbers take a bit " +"more effort, since the :meth:`read` method only returns strings, which will " +"have to be passed to a function like :func:`int`, which takes a string like " +"``'123'`` and returns its numeric value 123. When you want to save more " +"complex data types like nested lists and dictionaries, parsing and " +"serializing by hand becomes complicated." +msgstr "" +"Les chaînes de caractères peuvent facilement être écrites dans un fichier et " +"relues. Les nombres nécessitent un peu plus d'effort, car la méthode :meth:" +"`read` ne renvoie que des chaînes. Elles doivent donc être passées à une " +"fonction comme :func:`int`, qui prend une chaîne comme ``'123'`` en entrée " +"et renvoie sa valeur numérique 123. Mais dès que vous voulez enregistrer des " +"types de données plus complexes comme des listes, des dictionnaires ou des " +"instances de classes, le traitement lecture/écriture à la main devient vite " +"compliqué." + +#: ../Doc/tutorial/inputoutput.rst:457 +msgid "" +"Rather than having users constantly writing and debugging code to save " +"complicated data types to files, Python allows you to use the popular data " +"interchange format called `JSON (JavaScript Object Notation) `_. The standard module called :mod:`json` can take Python data " +"hierarchies, and convert them to string representations; this process is " +"called :dfn:`serializing`. Reconstructing the data from the string " +"representation is called :dfn:`deserializing`. Between serializing and " +"deserializing, the string representing the object may have been stored in a " +"file or data, or sent over a network connection to some distant machine." +msgstr "" +"Plutôt que de passer son temps à écrire et déboguer du code permettant de " +"sauvegarder des types de données compliqués, Python permet d'utiliser `JSON " +"(JavaScript Object Notation) `_, un format répandu de " +"représentation et d'échange de données. Le module standard appelé :mod:" +"`json` peut transformer des données hiérarchisées Python en une " +"représentation sous forme de chaîne de caractères. Ce processus est nommé :" +"dfn:`sérialiser`. Reconstruire les données à partir de leur représentation " +"sous forme de chaîne est appelé :dfn:`déserialiser`. Entre sa sérialisation " +"et sa dé-sérialisation, la chaîne représentant les données peut avoir été " +"stockée ou transmise à une autre machine." + +#: ../Doc/tutorial/inputoutput.rst:468 +msgid "" +"The JSON format is commonly used by modern applications to allow for data " +"exchange. Many programmers are already familiar with it, which makes it a " +"good choice for interoperability." +msgstr "" +"Le format JSON est couramment utilisé dans les applications modernes pour " +"échanger des données. Beaucoup de développeurs le maîtrise, ce qui en fait " +"un format de prédilection pour l'interopérabilité." + +#: ../Doc/tutorial/inputoutput.rst:472 +msgid "" +"If you have an object ``x``, you can view its JSON string representation " +"with a simple line of code::" +msgstr "" +"Si vous avez un objet ``x``, vous pouvez voir sa représentation JSON en " +"tapant simplement ::" + +#: ../Doc/tutorial/inputoutput.rst:479 +msgid "" +"Another variant of the :func:`~json.dumps` function, called :func:`~json." +"dump`, simply serializes the object to a :term:`text file`. So if ``f`` is " +"a :term:`text file` object opened for writing, we can do this::" +msgstr "" +"Une variante de la fonction :func:`~json.dumps`, nommée :func:`~json.dump`, " +"sérialise simplement l'objet donné vers un :term:`fichier texte `. Donc si ``f`` est un :term:`fichier texte ` ouvert en " +"écriture, il est possible de faire ::" + +#: ../Doc/tutorial/inputoutput.rst:485 +msgid "" +"To decode the object again, if ``f`` is a :term:`text file` object which has " +"been opened for reading::" +msgstr "" +"Pour reconstruire l'objet, si ``f`` est cette fois un :term:`fichier texte` " +"ouvert en lecture ::" + +#: ../Doc/tutorial/inputoutput.rst:490 +msgid "" +"This simple serialization technique can handle lists and dictionaries, but " +"serializing arbitrary class instances in JSON requires a bit of extra " +"effort. The reference for the :mod:`json` module contains an explanation of " +"this." +msgstr "" +"Cette méthode de sérialisation peut sérialiser des listes et des " +"dictionnaires. Mais sérialiser d'autres types de données requiert un peu " +"plus de travail. La documentation du module :mod:`json` explique comment " +"faire." + +#: ../Doc/tutorial/inputoutput.rst:496 +msgid ":mod:`pickle` - the pickle module" +msgstr "Le module :mod:`pickle`" + +#: ../Doc/tutorial/inputoutput.rst:498 +msgid "" +"Contrary to :ref:`JSON `, *pickle* is a protocol which allows the " +"serialization of arbitrarily complex Python objects. As such, it is " +"specific to Python and cannot be used to communicate with applications " +"written in other languages. It is also insecure by default: deserializing " +"pickle data coming from an untrusted source can execute arbitrary code, if " +"the data was crafted by a skilled attacker." +msgstr "" +"Au contraire de :ref:`JSON `, *pickle* est un protocole permettant " +"la sérialisation d'objets Python arbitrairement complexes. Il est donc " +"spécifique à Python et ne peut pas être utilisé pour communiquer avec " +"d'autres langages. Il est aussi, par défaut, une source de vulnérabilité : " +"dé-sérialiser des données au format *pickle* provenant d'une source " +"malveillante et particulièrement habile peut mener à exécuter du code " +"arbitraire." + +#~ msgid "" +#~ "``'!a'`` (apply :func:`ascii`), ``'!s'`` (apply :func:`str`) and ``'!r'`` " +#~ "(apply :func:`repr`) can be used to convert the value before it is " +#~ "formatted::" +#~ msgstr "" +#~ "``'!a'`` (appliquer :func:`ascii`), ``'!s'`` (appliquer :func:`str`) et " +#~ "``'!r'`` (appliquer :func:`repr`) peuvent être utilisées pour convertir " +#~ "les valeurs avant leur formatage ::" diff --git a/tutorial/interactive.po b/tutorial/interactive.po new file mode 100644 index 000000000..8cec2a8fb --- /dev/null +++ b/tutorial/interactive.po @@ -0,0 +1,100 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"PO-Revision-Date: 2018-03-01 22:10+0100\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/tutorial/interactive.rst:5 +msgid "Interactive Input Editing and History Substitution" +msgstr "Édition interactive des entrées et substitution d'historique" + +#: ../Doc/tutorial/interactive.rst:7 +msgid "" +"Some versions of the Python interpreter support editing of the current input " +"line and history substitution, similar to facilities found in the Korn shell " +"and the GNU Bash shell. This is implemented using the `GNU Readline`_ " +"library, which supports various styles of editing. This library has its own " +"documentation which we won't duplicate here." +msgstr "" +"Certaines versions de l'interpréteur Python prennent en charge l'édition de " +"la ligne d'entrée courante et la substitution d'historique, similaires aux " +"facilités que l'on trouve dans le shell Korn et dans le shell GNU Bash. Ces " +"implémentations utilisent la bibliothèque `GNU Readline`_, qui gère " +"plusieurs styles d'édition. La bibliothèque a sa propre documentation, nous " +"ne la dupliquons pas ici." + +#: ../Doc/tutorial/interactive.rst:17 +msgid "Tab Completion and History Editing" +msgstr "Complétion automatique et édition de l'historique" + +#: ../Doc/tutorial/interactive.rst:19 +msgid "" +"Completion of variable and module names is :ref:`automatically enabled " +"` at interpreter startup so that the :kbd:`Tab` key " +"invokes the completion function; it looks at Python statement names, the " +"current local variables, and the available module names. For dotted " +"expressions such as ``string.a``, it will evaluate the expression up to the " +"final ``'.'`` and then suggest completions from the attributes of the " +"resulting object. Note that this may execute application-defined code if an " +"object with a :meth:`__getattr__` method is part of the expression. The " +"default configuration also saves your history into a file named :file:`." +"python_history` in your user directory. The history will be available again " +"during the next interactive interpreter session." +msgstr "" +"La complétion de noms de variables et de modules est :ref:`automatiquement " +"activée ` au démarrage de l'interpréteur. Ainsi, la " +"touche :kbd:`Tab` invoque la fonction de complétion ; la recherche " +"s'effectue dans les noms d'instructions Python, les noms des variables " +"locales et les noms de modules disponibles. Pour les expressions pointées " +"telles que ``string.a``, l'expression est évaluée jusqu'au dernier ``'.'`` " +"avant de suggérer les options disponibles à partir des attributs de l'objet " +"résultant de cette évaluation. Notez bien que ceci peut exécuter une partie " +"du code de l'application si un objet disposant d'une méthode :meth:" +"`__getattr__` fait partie de l'expression. La configuration par défaut " +"sauvegarde l'historique dans un fichier nommé :file:`.python_history` dans " +"votre dossier d'utilisateur. L'historique est ainsi conservé entre les " +"sessions interactives successives." + +#: ../Doc/tutorial/interactive.rst:36 +msgid "Alternatives to the Interactive Interpreter" +msgstr "Alternatives à l'interpréteur interactif" + +#: ../Doc/tutorial/interactive.rst:38 +msgid "" +"This facility is an enormous step forward compared to earlier versions of " +"the interpreter; however, some wishes are left: It would be nice if the " +"proper indentation were suggested on continuation lines (the parser knows if " +"an indent token is required next). The completion mechanism might use the " +"interpreter's symbol table. A command to check (or even suggest) matching " +"parentheses, quotes, etc., would also be useful." +msgstr "" +"Cette facilité constitue un énorme pas en avant comparé aux versions " +"précédentes de l'interpréteur. Toutefois, il reste des fonctions à " +"implémenter comme l'indentation correcte sur les lignes de continuation " +"(l'analyseur sait si une indentation doit suivre) ; le mécanisme de " +"complétion devrait utiliser la table de symboles de l'interpréteur. Une " +"commande pour vérifier (ou même suggérer) les correspondances de " +"parenthèses, de guillemets, etc., serait également utile." + +#: ../Doc/tutorial/interactive.rst:45 +msgid "" +"One alternative enhanced interactive interpreter that has been around for " +"quite some time is IPython_, which features tab completion, object " +"exploration and advanced history management. It can also be thoroughly " +"customized and embedded into other applications. Another similar enhanced " +"interactive environment is bpython_." +msgstr "" +"Une alternative améliorée de l'interpréteur interactif est développée depuis " +"maintenant quelques temps : IPython_. Il fournit la complétion, " +"l'exploration d'objets et une gestion avancée de l'historique. Il peut " +"également être personnalisé en profondeur et embarqué dans d'autres " +"applications. Un autre environnement interactif amélioré similaire est " +"bpython_." diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po new file mode 100644 index 000000000..3b64a3cf5 --- /dev/null +++ b/tutorial/interpreter.po @@ -0,0 +1,327 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"PO-Revision-Date: 2019-04-11 21:43+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/tutorial/interpreter.rst:5 +msgid "Using the Python Interpreter" +msgstr "Mode d'emploi de l'interpréteur Python" + +#: ../Doc/tutorial/interpreter.rst:11 +msgid "Invoking the Interpreter" +msgstr "Lancement de l'interpréteur" + +#: ../Doc/tutorial/interpreter.rst:13 +msgid "" +"The Python interpreter is usually installed as :file:`/usr/local/bin/" +"python3.7` on those machines where it is available; putting :file:`/usr/" +"local/bin` in your Unix shell's search path makes it possible to start it by " +"typing the command:" +msgstr "" +"L'interpréteur Python se trouve en général comme :file:`/usr/local/bin/" +"python3.7` sur ces machines où il est disponible ; ajoutez :file:`/usr/local/" +"bin` au chemin de recherche de votre shell Unix afin de pouvoir le lancer en " +"tapant la commande : ::" + +#: ../Doc/tutorial/interpreter.rst:21 +msgid "" +"to the shell. [#]_ Since the choice of the directory where the interpreter " +"lives is an installation option, other places are possible; check with your " +"local Python guru or system administrator. (E.g., :file:`/usr/local/python` " +"is a popular alternative location.)" +msgstr "" +"dans le shell. [#]_ Le choix du répertoire où se trouve l'interpréteur étant " +"une option d'installation, d'autres chemins sont possibles ; voyez avec " +"votre gourou Python local ou votre administrateur système (par exemple, :" +"file:`/usr/local/python` est un endroit courant)." + +#: ../Doc/tutorial/interpreter.rst:26 +msgid "" +"On Windows machines, the Python installation is usually placed in :file:`C:\\" +"\\Python37`, though you can change this when you're running the installer. " +"To add this directory to your path, you can type the following command " +"into :ref:`a command prompt window `::" +msgstr "" +"Sur les machines Windows, Python est habituellement installé dans :file:`C:\\" +"\\Python37`, même si vous pouvez changer cela lorsque vous lancez " +"l'installateur. Pour ajouter ce dossier à votre chemin de recherche, vous " +"pouvez taper la commande suivante dans :ref:`une invite de commande Windows " +"` : ::" + +#: ../Doc/tutorial/interpreter.rst:33 +msgid "" +"Typing an end-of-file character (:kbd:`Control-D` on Unix, :kbd:`Control-Z` " +"on Windows) at the primary prompt causes the interpreter to exit with a zero " +"exit status. If that doesn't work, you can exit the interpreter by typing " +"the following command: ``quit()``." +msgstr "" +"Tapez un caractère de fin de fichier (:kbd:`Ctrl-D` sous Unix, :kbd:`Ctrl-Z` " +"sous Windows) dans une invite de commande primaire provoque la fermeture de " +"l'interpréteur avec un code de sortie nul. Si cela ne fonctionne pas, vous " +"pouvez fermer l'interpréteur en tapant la commande ``quit()``." + +#: ../Doc/tutorial/interpreter.rst:38 +msgid "" +"The interpreter's line-editing features include interactive editing, history " +"substitution and code completion on systems that support readline. Perhaps " +"the quickest check to see whether command line editing is supported is " +"typing :kbd:`Control-P` to the first Python prompt you get. If it beeps, " +"you have command line editing; see Appendix :ref:`tut-interacting` for an " +"introduction to the keys. If nothing appears to happen, or if ``^P`` is " +"echoed, command line editing isn't available; you'll only be able to use " +"backspace to remove characters from the current line." +msgstr "" +"Les fonctionnalités d'édition de l'interpréteur comprennent l'édition " +"interactive, la substitution depuis l'historique et la complétion sur les " +"systèmes qui gèrent *readline*. Un moyen rapide de tester comment est gérée " +"l'édition de la ligne de commande, c'est de taper :kbd:`Control-P` à la " +"première invite de commande que vous rencontrez. Si cela bipe, vous disposez " +"de l'édition de la ligne de commande ; lisez l'appendice :ref:`tut-" +"interacting` pour une introduction aux touches. Si rien ne semble se " +"produire ou si ``^P`` s'affiche, l'édition de la ligne de commande n'est pas " +"disponible ; vous serez seulement en mesure d'utiliser la touche retour " +"arrière pour supprimer des caractères de la ligne courante." + +#: ../Doc/tutorial/interpreter.rst:47 +msgid "" +"The interpreter operates somewhat like the Unix shell: when called with " +"standard input connected to a tty device, it reads and executes commands " +"interactively; when called with a file name argument or with a file as " +"standard input, it reads and executes a *script* from that file." +msgstr "" +"L'interpréteur fonctionne de façon similaire au shell Unix : lorsqu'il est " +"appelé avec l'entrée standard connectée à un périphérique tty, il lit et " +"exécute les commandes de façon interactive ; lorsqu'il est appelé avec un " +"nom de fichier en argument ou avec un fichier comme entrée standard, il lit " +"et exécute un *script* depuis ce fichier." + +#: ../Doc/tutorial/interpreter.rst:52 +msgid "" +"A second way of starting the interpreter is ``python -c command [arg] ...``, " +"which executes the statement(s) in *command*, analogous to the shell's :" +"option:`-c` option. Since Python statements often contain spaces or other " +"characters that are special to the shell, it is usually advised to quote " +"*command* in its entirety with single quotes." +msgstr "" +"Une autre façon de lancer l'interpréteur est ``python -c commande [arg] ..." +"``. Cela exécute les instructions de *commande* de façon analogue à " +"l'option :option:`-c` du shell. Parce que les instructions Python " +"contiennent souvent des espaces et d'autres caractères spéciaux pour le " +"shell, il est généralement conseillé de mettre *commande* entre guillemets " +"simples." + +#: ../Doc/tutorial/interpreter.rst:58 +msgid "" +"Some Python modules are also useful as scripts. These can be invoked using " +"``python -m module [arg] ...``, which executes the source file for *module* " +"as if you had spelled out its full name on the command line." +msgstr "" +"Certains modules Python sont aussi utiles en tant que scripts. Ils peuvent " +"être appelés avec ``python -m module [arg] ...`` qui exécute le fichier " +"source de *module* comme si vous aviez tapé son nom complet dans la ligne de " +"commande." + +#: ../Doc/tutorial/interpreter.rst:62 +msgid "" +"When a script file is used, it is sometimes useful to be able to run the " +"script and enter interactive mode afterwards. This can be done by passing :" +"option:`-i` before the script." +msgstr "" +"Quand un fichier de script est utilisé, il est parfois utile de pouvoir " +"lancer le script puis d'entrer dans le mode interactif après coup. Cela est " +"possible en passant :option:`-i` avant le script." + +#: ../Doc/tutorial/interpreter.rst:66 +msgid "All command line options are described in :ref:`using-on-general`." +msgstr "" +"Tous les paramètres utilisables en ligne de commande sont documentés dans :" +"ref:`using-on-general`." + +#: ../Doc/tutorial/interpreter.rst:72 +msgid "Argument Passing" +msgstr "Passage d'arguments" + +#: ../Doc/tutorial/interpreter.rst:74 +msgid "" +"When known to the interpreter, the script name and additional arguments " +"thereafter are turned into a list of strings and assigned to the ``argv`` " +"variable in the ``sys`` module. You can access this list by executing " +"``import sys``. The length of the list is at least one; when no script and " +"no arguments are given, ``sys.argv[0]`` is an empty string. When the script " +"name is given as ``'-'`` (meaning standard input), ``sys.argv[0]`` is set " +"to ``'-'``. When :option:`-c` *command* is used, ``sys.argv[0]`` is set to " +"``'-c'``. When :option:`-m` *module* is used, ``sys.argv[0]`` is set to " +"the full name of the located module. Options found after :option:`-c` " +"*command* or :option:`-m` *module* are not consumed by the Python " +"interpreter's option processing but left in ``sys.argv`` for the command or " +"module to handle." +msgstr "" +"Lorsqu'ils sont connus de l'interpréteur, le nom du script et les arguments " +"additionnels sont représentés sous forme d'une liste assignée à la variable " +"``argv`` du module ``sys``. Vous pouvez y accéder en exécutant ``import " +"sys``. La liste contient au minimum un élément ; quand aucun script ni aucun " +"argument n'est donné, ``sys.argv[0]`` est une chaine vide. Quand ``'-'`` " +"(qui représente l'entrée standard) est passé comme nom de script, ``sys." +"argv[0]`` contient ``'-'``. Quand :option:`-c` *commande* est utilisé, ``sys." +"argv[0]`` contient ``'-c'``. Enfin, quand :option:`-m` *module* est utilisé, " +"le nom complet du module est assigné à ``sys.argv[0]``. Les options trouvées " +"après :option:`-c` *commande* ou :option:`-m` *module* ne sont pas lues " +"comme options de l'interpréteur Python mais laissées dans ``sys.argv`` pour " +"être utilisées par le module ou la commande." + +#: ../Doc/tutorial/interpreter.rst:90 +msgid "Interactive Mode" +msgstr "Mode interactif" + +#: ../Doc/tutorial/interpreter.rst:92 +msgid "" +"When commands are read from a tty, the interpreter is said to be in " +"*interactive mode*. In this mode it prompts for the next command with the " +"*primary prompt*, usually three greater-than signs (``>>>``); for " +"continuation lines it prompts with the *secondary prompt*, by default three " +"dots (``...``). The interpreter prints a welcome message stating its version " +"number and a copyright notice before printing the first prompt:" +msgstr "" +"Lorsque des commandes sont lues depuis un tty, l'interpréteur est dit être " +"en *mode interactif*. Dans ce mode, il demande la commande suivante avec le " +"*prompt primaire*, en général trois signes plus-grand-que (``>>>``) ; pour " +"les lignes de continuation, il affiche le *prompt secondaire*, par défaut " +"trois points (``...``). L'interpréteur affiche un message de bienvenue " +"indiquant son numéro de version et une notice de copyright avant d'afficher " +"le premier prompt :" + +#: ../Doc/tutorial/interpreter.rst:109 +msgid "" +"Continuation lines are needed when entering a multi-line construct. As an " +"example, take a look at this :keyword:`if` statement::" +msgstr "" +"Les lignes de continuation sont nécessaires pour entrer une construction " +"multi-lignes. Par exemple, regardez cette instruction :keyword:`if` ::" + +#: ../Doc/tutorial/interpreter.rst:119 +msgid "For more on interactive mode, see :ref:`tut-interac`." +msgstr "" +"Pour plus d'informations sur le mode interactif, voir :ref:`tut-interac`." + +#: ../Doc/tutorial/interpreter.rst:125 +msgid "The Interpreter and Its Environment" +msgstr "L'interpréteur et son environnement" + +#: ../Doc/tutorial/interpreter.rst:131 +msgid "Source Code Encoding" +msgstr "Encodage du code source" + +#: ../Doc/tutorial/interpreter.rst:133 +msgid "" +"By default, Python source files are treated as encoded in UTF-8. In that " +"encoding, characters of most languages in the world can be used " +"simultaneously in string literals, identifiers and comments --- although the " +"standard library only uses ASCII characters for identifiers, a convention " +"that any portable code should follow. To display all these characters " +"properly, your editor must recognize that the file is UTF-8, and it must use " +"a font that supports all the characters in the file." +msgstr "" +"Par défaut, Python considère que ses fichiers sources sont encodés en UTF-8. " +"Dans cet encodage, les caractères de la plupart des langues peuvent être " +"utilisés ensemble dans les chaînes de caractères, identifiants et " +"commentaires. Notez que la bibliothèque standard n'utilise que des " +"caractères ASCII dans ses identifiants et que nous considérons que c'est une " +"bonne habitude que tout code portable devrait suivre. Pour afficher " +"correctement tous ces caractères, votre éditeur doit reconnaître que le " +"fichier est en UTF-8 et utiliser une police qui comprend tous les caractères " +"utilisés dans le fichier." + +#: ../Doc/tutorial/interpreter.rst:141 +msgid "" +"To declare an encoding other than the default one, a special comment line " +"should be added as the *first* line of the file. The syntax is as follows::" +msgstr "" +"Pour annoncer un encodage différent de l'encodage par défaut, une ligne de " +"commentaire particulière doit être ajoutée en tant que *première* ligne du " +"fichier. Sa syntaxe est la suivante ::" + +#: ../Doc/tutorial/interpreter.rst:146 +msgid "where *encoding* is one of the valid :mod:`codecs` supported by Python." +msgstr "où *encoding* est un des :mod:`codecs` supporté par Python." + +#: ../Doc/tutorial/interpreter.rst:148 +msgid "" +"For example, to declare that Windows-1252 encoding is to be used, the first " +"line of your source code file should be::" +msgstr "" +"Par exemple, pour déclarer un encodage *Windows-1252*, la première ligne de " +"votre code source doit être ::" + +#: ../Doc/tutorial/interpreter.rst:153 +msgid "" +"One exception to the *first line* rule is when the source code starts with " +"a :ref:`UNIX \"shebang\" line `. In this case, the encoding " +"declaration should be added as the second line of the file. For example::" +msgstr "" +"Une exception à la règle *première ligne* est lorsque la première ligne est " +"un :ref:`shebang UNIX `. Dans ce cas, la déclaration de " +"l'encodage doit être placée sur la deuxième ligne du fichier. Par exemple ::" + +#: ../Doc/tutorial/interpreter.rst:161 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/tutorial/interpreter.rst:162 +msgid "" +"On Unix, the Python 3.x interpreter is by default not installed with the " +"executable named ``python``, so that it does not conflict with a " +"simultaneously installed Python 2.x executable." +msgstr "" +"Sous Unix, par défaut, l'interpréteur Python 3.x n'est pas installé sous le " +"nom de ``python`` afin de ne pas entrer en conflit avec une éventuelle " +"installation de Python 2.x." + +#~ msgid "" +#~ "It is also possible to specify a different encoding for source files. In " +#~ "order to do this, put one more special comment line right after the ``#!" +#~ "`` line to define the source file encoding::" +#~ msgstr "" +#~ "Il est possible d'utiliser un autre encodage dans un fichier source " +#~ "Python. La meilleure façon de faire est de placer un commentaire spécial " +#~ "supplémentaire juste après le ``#!`` pour définir l'encodage du fichier " +#~ "source ::" + +#~ msgid "" +#~ "With that declaration, everything in the source file will be treated as " +#~ "having the encoding *encoding* instead of UTF-8. The list of possible " +#~ "encodings can be found in the Python Library Reference, in the section " +#~ "on :mod:`codecs`." +#~ msgstr "" +#~ "Avec cette déclaration, tous les caractères du fichier source sont " +#~ "traités comme étant dans l'encodage *encoding* au lieu d'UTF-8. La liste " +#~ "des encodages disponibles peut être trouvée dans la référence de la " +#~ "bibliothèque Python dans la partie à propos de :mod:`codecs`." + +#~ msgid "" +#~ "For example, if your editor of choice does not support UTF-8 encoded " +#~ "files and insists on using some other encoding, say Windows-1252, you can " +#~ "write::" +#~ msgstr "" +#~ "Par exemple, si votre éditeur de gère pas l'UTF-8 et insiste pour " +#~ "utiliser un autre encodage, disons Windows-1252, vous pouvez écrire ::" + +#~ msgid "" +#~ "and still use all characters in the Windows-1252 character set in the " +#~ "source files. The special encoding comment must be in the *first or " +#~ "second* line within the file." +#~ msgstr "" +#~ "et continuer d'utiliser tous les caractères de Windows-1252 dans votre " +#~ "code. Ce commentaire spécial spécifiant l'encodage doit être à *la " +#~ "première ou deuxième* ligne du fichier." diff --git a/tutorial/introduction.po b/tutorial/introduction.po new file mode 100644 index 000000000..e6b9b8d2c --- /dev/null +++ b/tutorial/introduction.po @@ -0,0 +1,666 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-05-23 23:05+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/tutorial/introduction.rst:5 +msgid "An Informal Introduction to Python" +msgstr "Introduction informelle à Python" + +#: ../Doc/tutorial/introduction.rst:7 +msgid "" +"In the following examples, input and output are distinguished by the " +"presence or absence of prompts (:term:`>>>` and :term:`...`): to repeat the " +"example, you must type everything after the prompt, when the prompt appears; " +"lines that do not begin with a prompt are output from the interpreter. Note " +"that a secondary prompt on a line by itself in an example means you must " +"type a blank line; this is used to end a multi-line command." +msgstr "" +"Dans les exemples qui suivent, les entrées et sorties se distinguent par la " +"présence ou l'absence d'invite (:term:`>>>` et :term:`...`) : pour " +"reproduire les exemples, vous devez taper tout ce qui est après l'invite, au " +"moment où celle-ci apparaît ; les lignes qui n'affichent pas d'invite sont " +"les sorties de l'interpréteur. Notez qu'une invite secondaire affichée seule " +"sur une ligne dans un exemple indique que vous devez entrer une ligne vide ; " +"ceci est utilisé pour terminer une commande multi-lignes." + +#: ../Doc/tutorial/introduction.rst:16 +msgid "" +"Many of the examples in this manual, even those entered at the interactive " +"prompt, include comments. Comments in Python start with the hash character, " +"``#``, and extend to the end of the physical line. A comment may appear at " +"the start of a line or following whitespace or code, but not within a string " +"literal. A hash character within a string literal is just a hash character. " +"Since comments are to clarify code and are not interpreted by Python, they " +"may be omitted when typing in examples." +msgstr "" +"Beaucoup d'exemples de ce manuel, même ceux saisis à l'invite de " +"l'interpréteur, incluent des commentaires. Les commentaires en Python " +"commencent avec un caractère croisillon, ``#``, et s'étendent jusqu'à la fin " +"de la ligne. Un commentaire peut apparaître au début d'une ligne ou à la " +"suite d'un espace ou de code, mais pas à l'intérieur d'une chaîne de " +"caractères littérale. Un caractère croisillon à l'intérieur d'une chaîne de " +"caractères est juste un caractère croisillon. Comme les commentaires ne " +"servent qu'à expliquer le code et ne sont pas interprétés par Python, ils " +"peuvent être ignorés lorsque vous tapez les exemples." + +#: ../Doc/tutorial/introduction.rst:24 +msgid "Some examples::" +msgstr "Quelques exemples ::" + +#: ../Doc/tutorial/introduction.rst:35 +msgid "Using Python as a Calculator" +msgstr "Utilisation de Python comme une calculatrice" + +#: ../Doc/tutorial/introduction.rst:37 +msgid "" +"Let's try some simple Python commands. Start the interpreter and wait for " +"the primary prompt, ``>>>``. (It shouldn't take long.)" +msgstr "" +"Essayons quelques commandes Python simples. Démarrez l'interpréteur et " +"attendez l'invite primaire, ``>>>``. Ça ne devrait pas être long." + +#: ../Doc/tutorial/introduction.rst:44 +msgid "Numbers" +msgstr "Les nombres" + +#: ../Doc/tutorial/introduction.rst:46 +msgid "" +"The interpreter acts as a simple calculator: you can type an expression at " +"it and it will write the value. Expression syntax is straightforward: the " +"operators ``+``, ``-``, ``*`` and ``/`` work just like in most other " +"languages (for example, Pascal or C); parentheses (``()``) can be used for " +"grouping. For example::" +msgstr "" +"L'interpréteur agit comme une simple calculatrice : vous pouvez lui entrer " +"une expression et il vous affiche la valeur. La syntaxe des expressions est " +"simple : les opérateurs ``+``, ``-``, ``*`` et ``/`` fonctionnent comme dans " +"la plupart des langages (par exemple, Pascal ou C) ; les parenthèses peuvent " +"être utilisées pour faire des regroupements. Par exemple ::" + +#: ../Doc/tutorial/introduction.rst:61 +msgid "" +"The integer numbers (e.g. ``2``, ``4``, ``20``) have type :class:`int`, the " +"ones with a fractional part (e.g. ``5.0``, ``1.6``) have type :class:" +"`float`. We will see more about numeric types later in the tutorial." +msgstr "" +"Les nombres entiers (comme ``2``, ``4``, ``20``) sont de type :class:`int`, " +"alors que les décimaux (comme ``5.0``, ``1.6``) sont de type :class:`float`. " +"Vous trouvez plus de détails sur les types numériques plus loin dans ce " +"tutoriel." + +#: ../Doc/tutorial/introduction.rst:65 +msgid "" +"Division (``/``) always returns a float. To do :term:`floor division` and " +"get an integer result (discarding any fractional result) you can use the ``//" +"`` operator; to calculate the remainder you can use ``%``::" +msgstr "" +"Les divisions (``/``) donnent toujours des :class:`float`. Utilisez " +"l'opérateur ``//`` pour effectuer des divisions entières et donc obtenir un " +"résultat entier. Pour obtenir le reste d'une division entière, utilisez " +"l'opérateur ``%`` ::" + +#: ../Doc/tutorial/introduction.rst:79 +msgid "" +"With Python, it is possible to use the ``**`` operator to calculate powers " +"[#]_::" +msgstr "" +"En Python, il est possible de calculer des puissances avec l'opérateur " +"``**`` [#]_ ::" + +#: ../Doc/tutorial/introduction.rst:86 +msgid "" +"The equal sign (``=``) is used to assign a value to a variable. Afterwards, " +"no result is displayed before the next interactive prompt::" +msgstr "" +"Le signe égal (``=``) est utilisé pour affecter une valeur à une variable. " +"Dans ce cas, aucun résultat n'est affiché avant l'invite suivante ::" + +#: ../Doc/tutorial/introduction.rst:94 +msgid "" +"If a variable is not \"defined\" (assigned a value), trying to use it will " +"give you an error::" +msgstr "" +"Si une variable n'est pas \"définie\" (si aucune valeur ne lui a été " +"affectée), son utilisation produit une erreur ::" + +#: ../Doc/tutorial/introduction.rst:102 +msgid "" +"There is full support for floating point; operators with mixed type operands " +"convert the integer operand to floating point::" +msgstr "" +"Les nombres à virgule flottante sont tout à fait admis (NdT : Python utilise " +"le point *.* comme séparateur entre la partie entière et la partie décimale " +"des nombres, c'est la convention anglo-saxonne) ; les opérateurs avec des " +"opérandes de types différents convertissent l'opérande de type entier en " +"type virgule flottante ::" + +#: ../Doc/tutorial/introduction.rst:108 +msgid "" +"In interactive mode, the last printed expression is assigned to the variable " +"``_``. This means that when you are using Python as a desk calculator, it " +"is somewhat easier to continue calculations, for example::" +msgstr "" +"En mode interactif, la dernière expression affichée est affectée à la " +"variable ``_``. Ainsi, lorsque vous utilisez Python comme calculatrice, cela " +"vous permet de continuer des calculs facilement, par exemple ::" + +#: ../Doc/tutorial/introduction.rst:121 +msgid "" +"This variable should be treated as read-only by the user. Don't explicitly " +"assign a value to it --- you would create an independent local variable with " +"the same name masking the built-in variable with its magic behavior." +msgstr "" +"Cette variable doit être considérée comme une variable en lecture seule par " +"l'utilisateur. Ne lui affectez pas de valeur explicitement --- vous créeriez " +"ainsi une variable locale indépendante, avec le même nom, qui masquerait la " +"variable native et son fonctionnement magique." + +#: ../Doc/tutorial/introduction.rst:125 +msgid "" +"In addition to :class:`int` and :class:`float`, Python supports other types " +"of numbers, such as :class:`~decimal.Decimal` and :class:`~fractions." +"Fraction`. Python also has built-in support for :ref:`complex numbers " +"`, and uses the ``j`` or ``J`` suffix to indicate the " +"imaginary part (e.g. ``3+5j``)." +msgstr "" +"En plus des :class:`int` et des :class:`float`, il existe les :class:" +"`~decimal.Decimal` et les :class:`~fractions.Fraction`. Python gère aussi " +"les :ref:`nombres complexes `, en utilisant le suffixe ``j`` " +"ou ``J`` pour indiquer la partie imaginaire (tel que ``3+5j``)." + +#: ../Doc/tutorial/introduction.rst:135 +msgid "Strings" +msgstr "Chaînes de caractères" + +#: ../Doc/tutorial/introduction.rst:137 +msgid "" +"Besides numbers, Python can also manipulate strings, which can be expressed " +"in several ways. They can be enclosed in single quotes (``'...'``) or " +"double quotes (``\"...\"``) with the same result [#]_. ``\\`` can be used " +"to escape quotes::" +msgstr "" +"En plus des nombres, Python sait aussi manipuler des chaînes de caractères, " +"qui peuvent être exprimées de différentes manières. Elles peuvent être " +"écrites entre guillemets simples (``'...'``) ou entre guillemets (``\"..." +"\"``) sans distinction [#]_. ``\\`` peut être utilisé pour protéger un " +"guillemet ::" + +#: ../Doc/tutorial/introduction.rst:155 +msgid "" +"In the interactive interpreter, the output string is enclosed in quotes and " +"special characters are escaped with backslashes. While this might sometimes " +"look different from the input (the enclosing quotes could change), the two " +"strings are equivalent. The string is enclosed in double quotes if the " +"string contains a single quote and no double quotes, otherwise it is " +"enclosed in single quotes. The :func:`print` function produces a more " +"readable output, by omitting the enclosing quotes and by printing escaped " +"and special characters::" +msgstr "" +"En mode interactif, l'interpréteur affiche les chaînes de caractères entre " +"guillemets. Les guillemets et autres caractères spéciaux sont protégés avec " +"des barres obliques inverses (*backslash* en anglais). Bien que cela puisse " +"être affiché différemment de ce qui a été entré (les guillemets peuvent " +"changer), les deux formats sont équivalents. La chaîne est affichée entre " +"guillemets si elle contient un guillemet simple et aucun guillemet, sinon " +"elle est affichée entre guillemets simples. La fonction :func:`print` " +"affiche les chaînes de manière plus lisible, en retirant les guillemets et " +"en affichant les caractères spéciaux qui étaient protégés par une barre " +"oblique inverse ::" + +#: ../Doc/tutorial/introduction.rst:175 +msgid "" +"If you don't want characters prefaced by ``\\`` to be interpreted as special " +"characters, you can use *raw strings* by adding an ``r`` before the first " +"quote::" +msgstr "" +"Si vous ne voulez pas que les caractères précédés d'un ``\\`` soient " +"interprétés comme étant spéciaux, utilisez les *chaînes brutes* (*raw " +"strings* en anglais) en préfixant la chaîne d'un ``r`` ::" + +#: ../Doc/tutorial/introduction.rst:185 +msgid "" +"String literals can span multiple lines. One way is using triple-quotes: ``" +"\"\"\"...\"\"\"`` or ``'''...'''``. End of lines are automatically included " +"in the string, but it's possible to prevent this by adding a ``\\`` at the " +"end of the line. The following example::" +msgstr "" +"Les chaînes de caractères peuvent s'étendre sur plusieurs lignes. Utilisez " +"alors des triples guillemets, simples ou doubles : ``'''...'''`` ou ``" +"\"\"\"...\"\"\"``. Les retours à la ligne sont automatiquement inclus, mais " +"on peut l'empêcher en ajoutant ``\\`` à la fin de la ligne. L'exemple " +"suivant ::" + +#: ../Doc/tutorial/introduction.rst:196 +msgid "" +"produces the following output (note that the initial newline is not " +"included):" +msgstr "" +"produit l'affichage suivant (notez que le premier retour à la ligne n'est " +"pas inclus) :" + +#: ../Doc/tutorial/introduction.rst:204 +msgid "" +"Strings can be concatenated (glued together) with the ``+`` operator, and " +"repeated with ``*``::" +msgstr "" +"Les chaînes peuvent être concaténées (collées ensemble) avec l'opérateur ``" +"+`` et répétées avec l'opérateur ``*`` ::" + +#: ../Doc/tutorial/introduction.rst:211 +msgid "" +"Two or more *string literals* (i.e. the ones enclosed between quotes) next " +"to each other are automatically concatenated. ::" +msgstr "" +"Plusieurs chaînes de caractères, écrites littéralement (c'est-à-dire entre " +"guillemets), côte à côte, sont automatiquement concaténées. ::" + +#: ../Doc/tutorial/introduction.rst:217 +msgid "" +"This feature is particularly useful when you want to break long strings::" +msgstr "" +"Cette fonctionnalité est surtout intéressante pour couper des chaînes trop " +"longues ::" + +#: ../Doc/tutorial/introduction.rst:224 +msgid "" +"This only works with two literals though, not with variables or expressions::" +msgstr "" +"Cela ne fonctionne cependant qu'avec les chaînes littérales, pas avec les " +"variables ni les expressions ::" + +#: ../Doc/tutorial/introduction.rst:238 +msgid "" +"If you want to concatenate variables or a variable and a literal, use ``+``::" +msgstr "" +"Pour concaténer des variables, ou des variables avec des chaînes littérales, " +"utilisez l'opérateur ``+`` ::" + +#: ../Doc/tutorial/introduction.rst:243 +msgid "" +"Strings can be *indexed* (subscripted), with the first character having " +"index 0. There is no separate character type; a character is simply a string " +"of size one::" +msgstr "" +"Les chaînes de caractères peuvent être indexées (i.e. on peut accéder aux " +"caractères par leur position), le premier caractère d'une chaîne étant à la " +"position 0. Il n'existe pas de type distinct pour les caractères, un " +"caractère est simplement une chaîne de longueur 1 ::" + +#: ../Doc/tutorial/introduction.rst:253 +msgid "" +"Indices may also be negative numbers, to start counting from the right::" +msgstr "" +"Les indices peuvent également être négatifs, on compte alors en partant de " +"la droite. Par exemple ::" + +#: ../Doc/tutorial/introduction.rst:262 +msgid "Note that since -0 is the same as 0, negative indices start from -1." +msgstr "" +"Notez que, comme ``-0`` égale ``0``, les indices négatifs commencent par " +"``-1``." + +#: ../Doc/tutorial/introduction.rst:264 +msgid "" +"In addition to indexing, *slicing* is also supported. While indexing is " +"used to obtain individual characters, *slicing* allows you to obtain " +"substring::" +msgstr "" +"En plus d'accéder à un élément par son indice, il est aussi possible de " +"\"trancher\" (*slice* en anglais) une chaîne. Accéder à une chaîne par un " +"indice permet d'obtenir un caractère, *trancher* permet d'obtenir une sous-" +"chaîne ::" + +#: ../Doc/tutorial/introduction.rst:272 +msgid "" +"Note how the start is always included, and the end always excluded. This " +"makes sure that ``s[:i] + s[i:]`` is always equal to ``s``::" +msgstr "" +"Notez que le début est toujours inclus et la fin toujours exclue. Cela " +"assure que ``s[:i] + s[i:]`` est toujours égal à ``s`` ::" + +#: ../Doc/tutorial/introduction.rst:280 +msgid "" +"Slice indices have useful defaults; an omitted first index defaults to zero, " +"an omitted second index defaults to the size of the string being sliced. ::" +msgstr "" +"Les valeurs par défaut des indices de tranches ont une utilité ; le premier " +"indice vaut zéro par défaut (i.e. lorsqu'il est omis), le deuxième " +"correspond par défaut à la taille de la chaîne de caractères ::" + +#: ../Doc/tutorial/introduction.rst:290 +msgid "" +"One way to remember how slices work is to think of the indices as pointing " +"*between* characters, with the left edge of the first character numbered 0. " +"Then the right edge of the last character of a string of *n* characters has " +"index *n*, for example::" +msgstr "" +"Pour mémoriser la façon dont les tranches fonctionnent, vous pouvez imaginer " +"que les indices pointent *entre* les caractères, le côté gauche du premier " +"caractère ayant la position 0. Le côté droit du dernier caractère d'une " +"chaîne de *n* caractères a alors pour indice *n*. Par exemple ::" + +#: ../Doc/tutorial/introduction.rst:301 +msgid "" +"The first row of numbers gives the position of the indices 0...6 in the " +"string; the second row gives the corresponding negative indices. The slice " +"from *i* to *j* consists of all characters between the edges labeled *i* and " +"*j*, respectively." +msgstr "" +"La première ligne de nombres donne la position des indices 0…6 dans la " +"chaîne ; la deuxième ligne donne l'indice négatif correspondant. La tranche " +"de *i* à *j* est constituée de tous les caractères situés entre les bords " +"libellés *i* et *j*, respectivement." + +#: ../Doc/tutorial/introduction.rst:306 +msgid "" +"For non-negative indices, the length of a slice is the difference of the " +"indices, if both are within bounds. For example, the length of " +"``word[1:3]`` is 2." +msgstr "" +"Pour des indices non négatifs, la longueur d'une tranche est la différence " +"entre ces indices, si les deux sont entre les bornes. Par exemple, la " +"longueur de ``word[1:3]`` est 2." + +#: ../Doc/tutorial/introduction.rst:310 +msgid "Attempting to use an index that is too large will result in an error::" +msgstr "Utiliser un indice trop grand produit une erreur ::" + +#: ../Doc/tutorial/introduction.rst:317 +msgid "" +"However, out of range slice indexes are handled gracefully when used for " +"slicing::" +msgstr "" +"Cependant, les indices hors bornes sont gérés silencieusement lorsqu'ils " +"sont utilisés dans des tranches ::" + +#: ../Doc/tutorial/introduction.rst:325 +msgid "" +"Python strings cannot be changed --- they are :term:`immutable`. Therefore, " +"assigning to an indexed position in the string results in an error::" +msgstr "" +"Les chaînes de caractères, en Python, ne peuvent pas être modifiées. On dit " +"qu'elles sont :term:`immuables `. Affecter une nouvelle valeur à " +"un indice dans une chaîne produit une erreur ::" + +#: ../Doc/tutorial/introduction.rst:337 +msgid "If you need a different string, you should create a new one::" +msgstr "" +"Si vous avez besoin d'une chaîne différente, vous devez en créer une " +"nouvelle ::" + +#: ../Doc/tutorial/introduction.rst:344 +msgid "The built-in function :func:`len` returns the length of a string::" +msgstr "La fonction native :func:`len` renvoie la longueur d'une chaîne ::" + +#: ../Doc/tutorial/introduction.rst:355 +msgid ":ref:`textseq`" +msgstr ":ref:`textseq`" + +#: ../Doc/tutorial/introduction.rst:354 +msgid "" +"Strings are examples of *sequence types*, and support the common operations " +"supported by such types." +msgstr "" +"Les chaînes de caractères sont des exemples de *types séquences* ; elles " +"acceptent donc les opérations classiques prises en charge par ces types." + +#: ../Doc/tutorial/introduction.rst:359 +msgid ":ref:`string-methods`" +msgstr ":ref:`string-methods`" + +#: ../Doc/tutorial/introduction.rst:358 +msgid "" +"Strings support a large number of methods for basic transformations and " +"searching." +msgstr "" +"Les chaînes de caractères gèrent un large éventail de méthodes de " +"transformations basiques et de recherche." + +#: ../Doc/tutorial/introduction.rst:362 +msgid ":ref:`f-strings`" +msgstr ":ref:`f-strings`" + +#: ../Doc/tutorial/introduction.rst:362 +msgid "String literals that have embedded expressions." +msgstr "Des chaînes littérales qui contiennent des expressions." + +#: ../Doc/tutorial/introduction.rst:365 +msgid ":ref:`formatstrings`" +msgstr ":ref:`formatstrings`" + +#: ../Doc/tutorial/introduction.rst:365 +msgid "Information about string formatting with :meth:`str.format`." +msgstr "" +"Informations sur le formatage des chaînes avec la méthode :meth:`str.format`." + +#: ../Doc/tutorial/introduction.rst:368 +msgid ":ref:`old-string-formatting`" +msgstr ":ref:`old-string-formatting`" + +#: ../Doc/tutorial/introduction.rst:368 +msgid "" +"The old formatting operations invoked when strings are the left operand of " +"the ``%`` operator are described in more detail here." +msgstr "" +"Description détaillée des anciennes méthodes de mise en forme, appelées " +"lorsque les chaînes de caractères sont à gauche de l'opérateur ``%``." + +#: ../Doc/tutorial/introduction.rst:375 +msgid "Lists" +msgstr "Listes" + +#: ../Doc/tutorial/introduction.rst:377 +msgid "" +"Python knows a number of *compound* data types, used to group together other " +"values. The most versatile is the *list*, which can be written as a list of " +"comma-separated values (items) between square brackets. Lists might contain " +"items of different types, but usually the items all have the same type. ::" +msgstr "" +"Python connaît différents types de données *combinés*, utilisés pour " +"regrouper plusieurs valeurs. Le plus souple est la *liste*, qui peut être " +"écrit comme une suite, placée entre crochets, de valeurs (éléments) séparées " +"par des virgules. Les éléments d'une liste ne sont pas obligatoirement tous " +"du même type, bien qu'à l'usage ce soit souvent le cas. ::" + +#: ../Doc/tutorial/introduction.rst:386 +msgid "" +"Like strings (and all other built-in :term:`sequence` types), lists can be " +"indexed and sliced::" +msgstr "" +"Comme les chaînes de caractères (et toute autre type de :term:`sequence`), " +"les listes peuvent être indicées et découpées ::" + +#: ../Doc/tutorial/introduction.rst:396 +msgid "" +"All slice operations return a new list containing the requested elements. " +"This means that the following slice returns a new (shallow) copy of the " +"list::" +msgstr "" +"Toutes les opérations par tranches renvoient une nouvelle liste contenant " +"les éléments demandés. Cela signifie que l'opération suivante renvoie une " +"copie (superficielle) de la liste ::" + +#: ../Doc/tutorial/introduction.rst:402 +msgid "Lists also support operations like concatenation::" +msgstr "Les listes gèrent aussi les opérations comme les concaténations ::" + +#: ../Doc/tutorial/introduction.rst:407 +msgid "" +"Unlike strings, which are :term:`immutable`, lists are a :term:`mutable` " +"type, i.e. it is possible to change their content::" +msgstr "" +"Mais à la différence des chaînes qui sont :term:`immuables `, les " +"listes sont :term:`muables ` : il est possible de modifier leur " +"contenu ::" + +#: ../Doc/tutorial/introduction.rst:417 +msgid "" +"You can also add new items at the end of the list, by using the :meth:`~list." +"append` *method* (we will see more about methods later)::" +msgstr "" +"Il est aussi possible d'ajouter de nouveaux éléments à la fin d'une liste " +"avec la méthode :meth:`~list.append` (les méthodes sont abordées plus " +"tard) ::" + +#: ../Doc/tutorial/introduction.rst:425 +msgid "" +"Assignment to slices is also possible, and this can even change the size of " +"the list or clear it entirely::" +msgstr "" +"Des affectations de tranches sont également possibles, ce qui peut même " +"modifier la taille de la liste ou la vider complètement ::" + +#: ../Doc/tutorial/introduction.rst:444 +msgid "The built-in function :func:`len` also applies to lists::" +msgstr "La primitive :func:`len` s'applique aussi aux listes ::" + +#: ../Doc/tutorial/introduction.rst:450 +msgid "" +"It is possible to nest lists (create lists containing other lists), for " +"example::" +msgstr "" +"Il est possible d'imbriquer des listes (i.e. créer des listes contenant " +"d'autres listes). Par exemple ::" + +#: ../Doc/tutorial/introduction.rst:466 +msgid "First Steps Towards Programming" +msgstr "Premiers pas vers la programmation" + +#: ../Doc/tutorial/introduction.rst:468 +msgid "" +"Of course, we can use Python for more complicated tasks than adding two and " +"two together. For instance, we can write an initial sub-sequence of the " +"`Fibonacci series `_ as " +"follows::" +msgstr "" +"Bien entendu, on peut utiliser Python pour des tâches plus compliquées que " +"d'additionner deux et deux. Par exemple, on peut écrire le début de la " +"`suite de Fibonacci `_ " +"comme ceci ::" + +#: ../Doc/tutorial/introduction.rst:488 +msgid "This example introduces several new features." +msgstr "Cet exemple introduit plusieurs nouvelles fonctionnalités." + +#: ../Doc/tutorial/introduction.rst:490 +msgid "" +"The first line contains a *multiple assignment*: the variables ``a`` and " +"``b`` simultaneously get the new values 0 and 1. On the last line this is " +"used again, demonstrating that the expressions on the right-hand side are " +"all evaluated first before any of the assignments take place. The right-" +"hand side expressions are evaluated from the left to the right." +msgstr "" +"La première ligne contient une *affectation multiple* : les variables ``a`` " +"et ``b`` se voient affecter simultanément leurs nouvelles valeurs 0 et 1. " +"Cette méthode est encore utilisée à la dernière ligne, pour démontrer que " +"les expressions sur la partie droite de l'affectation sont toutes évaluées " +"avant que les affectations ne soient effectuées. Ces expressions en partie " +"droite sont toujours évaluées de la gauche vers la droite." + +#: ../Doc/tutorial/introduction.rst:496 +msgid "" +"The :keyword:`while` loop executes as long as the condition (here: ``a < " +"10``) remains true. In Python, like in C, any non-zero integer value is " +"true; zero is false. The condition may also be a string or list value, in " +"fact any sequence; anything with a non-zero length is true, empty sequences " +"are false. The test used in the example is a simple comparison. The " +"standard comparison operators are written the same as in C: ``<`` (less " +"than), ``>`` (greater than), ``==`` (equal to), ``<=`` (less than or equal " +"to), ``>=`` (greater than or equal to) and ``!=`` (not equal to)." +msgstr "" +"La boucle :keyword:`while` s'exécute tant que la condition (ici : ``a < " +"10``) reste vraie. En Python, comme en C, tout entier différent de zéro est " +"vrai et zéro est faux. La condition peut aussi être une chaîne de " +"caractères, une liste, ou en fait toute séquence ; une séquence avec une " +"valeur non nulle est vraie, une séquence vide est fausse. Le test utilisé " +"dans l'exemple est une simple comparaison. Les opérateurs de comparaison " +"standards sont écrits comme en C : ``<`` (inférieur), ``>`` (supérieur), " +"``==`` (égal), ``<=`` (inférieur ou égal), ``>=`` (supérieur ou égal) et ``!" +"=`` (non égal)." + +#: ../Doc/tutorial/introduction.rst:505 +msgid "" +"The *body* of the loop is *indented*: indentation is Python's way of " +"grouping statements. At the interactive prompt, you have to type a tab or " +"space(s) for each indented line. In practice you will prepare more " +"complicated input for Python with a text editor; all decent text editors " +"have an auto-indent facility. When a compound statement is entered " +"interactively, it must be followed by a blank line to indicate completion " +"(since the parser cannot guess when you have typed the last line). Note " +"that each line within a basic block must be indented by the same amount." +msgstr "" +"Le *corps* de la boucle est *indenté* : l'indentation est la méthode " +"utilisée par Python pour regrouper des instructions. En mode interactif, " +"vous devez saisir une tabulation ou des espaces pour chaque ligne indentée. " +"En pratique, vous aurez intérêt à utiliser un éditeur de texte pour les " +"saisies plus compliquées ; tous les éditeurs de texte dignes de ce nom " +"disposent d'une fonction d'auto-indentation. Lorsqu'une expression composée " +"est saisie en mode interactif, elle doit être suivie d'une ligne vide pour " +"indiquer qu'elle est terminée (car l'analyseur ne peut pas deviner que vous " +"venez de saisir la dernière ligne). Notez bien que toutes les lignes à " +"l'intérieur d'un bloc doivent être indentées au même niveau." + +#: ../Doc/tutorial/introduction.rst:514 +msgid "" +"The :func:`print` function writes the value of the argument(s) it is given. " +"It differs from just writing the expression you want to write (as we did " +"earlier in the calculator examples) in the way it handles multiple " +"arguments, floating point quantities, and strings. Strings are printed " +"without quotes, and a space is inserted between items, so you can format " +"things nicely, like this::" +msgstr "" +"La fonction :func:`print` écrit les valeurs des paramètres qui lui sont " +"fournis. Ce n'est pas la même chose que d'écrire l'expression que vous " +"voulez afficher (comme nous l'avons fait dans l'exemple de la calculatrice), " +"en raison de la manière qu'a ``print`` de gérer les paramètres multiples, " +"les nombres décimaux et les chaînes. Les chaînes sont affichées sans " +"apostrophe et une espace est insérée entre les éléments de telle sorte que " +"vous pouvez facilement formater les choses, comme ceci ::" + +#: ../Doc/tutorial/introduction.rst:525 +msgid "" +"The keyword argument *end* can be used to avoid the newline after the " +"output, or end the output with a different string::" +msgstr "" +"Le paramètre nommé *end* peut servir pour enlever le retour à la ligne ou " +"pour terminer la ligne par une autre chaîne ::" + +#: ../Doc/tutorial/introduction.rst:537 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/tutorial/introduction.rst:538 +msgid "" +"Since ``**`` has higher precedence than ``-``, ``-3**2`` will be interpreted " +"as ``-(3**2)`` and thus result in ``-9``. To avoid this and get ``9``, you " +"can use ``(-3)**2``." +msgstr "" +"Puisque ``**`` est prioritaire sur ``-``, ``-3 ** 2`` est interprété ``-(3 " +"** 2)`` et vaut donc ``-9``. Pour éviter cela et obtenir ``9``, utilisez des " +"parenthèses : ``(-3) ** 2``." + +#: ../Doc/tutorial/introduction.rst:542 +msgid "" +"Unlike other languages, special characters such as ``\\n`` have the same " +"meaning with both single (``'...'``) and double (``\"...\"``) quotes. The " +"only difference between the two is that within single quotes you don't need " +"to escape ``\"`` (but you have to escape ``\\'``) and vice versa." +msgstr "" +"Contrairement à d'autres langages, les caractères spéciaux comme ``\\n`` ont " +"la même signification entre guillemets (``\"...\"``) ou entre guillemets " +"simples (``'...'``). La seule différence est que, dans une chaîne entre " +"guillemets, il n'est pas nécessaire de protéger les guillemets simples et " +"vice-versa." diff --git a/tutorial/modules.po b/tutorial/modules.po new file mode 100644 index 000000000..2e99e1dcb --- /dev/null +++ b/tutorial/modules.po @@ -0,0 +1,853 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"PO-Revision-Date: 2019-06-19 22:03+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/tutorial/modules.rst:5 +msgid "Modules" +msgstr "Modules" + +#: ../Doc/tutorial/modules.rst:7 +msgid "" +"If you quit from the Python interpreter and enter it again, the definitions " +"you have made (functions and variables) are lost. Therefore, if you want to " +"write a somewhat longer program, you are better off using a text editor to " +"prepare the input for the interpreter and running it with that file as input " +"instead. This is known as creating a *script*. As your program gets " +"longer, you may want to split it into several files for easier maintenance. " +"You may also want to use a handy function that you've written in several " +"programs without copying its definition into each program." +msgstr "" +"Lorsque vous quittez et entrez à nouveau dans l'interpréteur Python, tout ce " +"que vous avez déclaré dans la session précédente est perdu. Afin de rédiger " +"des programmes plus longs, vous devez utiliser un éditeur de texte, préparer " +"votre code dans un fichier et exécuter Python avec ce fichier en paramètre. " +"Cela s'appelle créer un *script*. Lorsque votre programme grandit, vous " +"pouvez séparer votre code dans plusieurs fichiers. Ainsi, il vous est facile " +"de réutiliser des fonctions écrites pour un programme dans un autre sans " +"avoir à les copier." + +#: ../Doc/tutorial/modules.rst:16 +msgid "" +"To support this, Python has a way to put definitions in a file and use them " +"in a script or in an interactive instance of the interpreter. Such a file is " +"called a *module*; definitions from a module can be *imported* into other " +"modules or into the *main* module (the collection of variables that you have " +"access to in a script executed at the top level and in calculator mode)." +msgstr "" +"Pour gérer cela, Python vous permet de placer des définitions dans un " +"fichier et de les utiliser dans un script ou une session interactive. Un tel " +"fichier est appelé un *module* et les définitions d'un module peuvent être " +"importées dans un autre module ou dans le module *main* (qui est le module " +"qui contient vos variables et définitions lors de l'exécution d'un script au " +"niveau le plus haut ou en mode interactif)." + +#: ../Doc/tutorial/modules.rst:22 +msgid "" +"A module is a file containing Python definitions and statements. The file " +"name is the module name with the suffix :file:`.py` appended. Within a " +"module, the module's name (as a string) is available as the value of the " +"global variable ``__name__``. For instance, use your favorite text editor " +"to create a file called :file:`fibo.py` in the current directory with the " +"following contents::" +msgstr "" +"Un module est un fichier contenant des définitions et des instructions. Son " +"nom de fichier est le nom du module suffixé de :file:`.py`. À l'intérieur " +"d'un module, son propre nom est accessible par la variable ``__name__``. Par " +"exemple, prenez votre éditeur favori et créez un fichier :file:`fibo.py` " +"dans le répertoire courant qui contient ::" + +#: ../Doc/tutorial/modules.rst:45 +msgid "" +"Now enter the Python interpreter and import this module with the following " +"command::" +msgstr "Maintenant, ouvrez un interpréteur et importez le module en tapant ::" + +#: ../Doc/tutorial/modules.rst:50 +msgid "" +"This does not enter the names of the functions defined in ``fibo`` directly " +"in the current symbol table; it only enters the module name ``fibo`` there. " +"Using the module name you can access the functions::" +msgstr "" +"Cela n'importe pas les noms des fonctions définies dans ``fibo`` directement " +"dans la table des symboles courants mais y ajoute simplement ``fibo``. Vous " +"pouvez donc appeler les fonctions *via* le nom du module ::" + +#: ../Doc/tutorial/modules.rst:61 +msgid "" +"If you intend to use a function often you can assign it to a local name::" +msgstr "" +"Si vous avez l'intention d'utiliser souvent une fonction, il est possible de " +"lui assigner un nom local ::" + +#: ../Doc/tutorial/modules.rst:71 +msgid "More on Modules" +msgstr "Les modules en détail" + +#: ../Doc/tutorial/modules.rst:73 +msgid "" +"A module can contain executable statements as well as function definitions. " +"These statements are intended to initialize the module. They are executed " +"only the *first* time the module name is encountered in an import statement. " +"[#]_ (They are also run if the file is executed as a script.)" +msgstr "" +"Un module peut contenir aussi bien des instructions que des déclarations de " +"fonctions. Ces instructions permettent d'initialiser le module. Elles ne " +"sont exécutées que la *première* fois que le nom d'un module est trouvé dans " +"un ``import`` [#]_ (elles sont aussi exécutées lorsque le fichier est " +"exécuté en tant que script)." + +#: ../Doc/tutorial/modules.rst:78 +msgid "" +"Each module has its own private symbol table, which is used as the global " +"symbol table by all functions defined in the module. Thus, the author of a " +"module can use global variables in the module without worrying about " +"accidental clashes with a user's global variables. On the other hand, if you " +"know what you are doing you can touch a module's global variables with the " +"same notation used to refer to its functions, ``modname.itemname``." +msgstr "" +"Chaque module possède sa propre table de symboles, utilisée comme table de " +"symboles globaux par toutes les fonctions définies par le module. Ainsi " +"l'auteur d'un module peut utiliser des variables globales dans un module " +"sans se soucier de collisions de noms avec des variables globales définies " +"par l'utilisateur du module. Cependant, si vous savez ce que vous faites, " +"vous pouvez modifier une variable globale d'un module avec la même notation " +"que pour accéder aux fonctions : ``nommodule.nomelement``." + +#: ../Doc/tutorial/modules.rst:85 +msgid "" +"Modules can import other modules. It is customary but not required to place " +"all :keyword:`import` statements at the beginning of a module (or script, " +"for that matter). The imported module names are placed in the importing " +"module's global symbol table." +msgstr "" +"Des modules peuvent importer d'autres modules. Il est courant, mais pas " +"obligatoire, de ranger tous les :keyword:`import` au début du module (ou du " +"script). Les noms des modules importés sont insérés dans la table des " +"symboles globaux du module qui importe." + +#: ../Doc/tutorial/modules.rst:90 +msgid "" +"There is a variant of the :keyword:`import` statement that imports names " +"from a module directly into the importing module's symbol table. For " +"example::" +msgstr "" +"Il existe une variante de l'instruction :keyword:`import` qui importe les " +"noms d'un module directement dans la table de symboles du module qui " +"l'importe, par exemple ::" + +#: ../Doc/tutorial/modules.rst:97 +msgid "" +"This does not introduce the module name from which the imports are taken in " +"the local symbol table (so in the example, ``fibo`` is not defined)." +msgstr "" +"Cela n'insère pas le nom du module depuis lequel les définitions sont " +"récupérées dans la table des symboles locaux (dans cet exemple, ``fibo`` " +"n'est pas défini)." + +#: ../Doc/tutorial/modules.rst:100 +msgid "There is even a variant to import all names that a module defines::" +msgstr "" +"Il existe même une variante permettant d'importer tous les noms qu'un module " +"définit ::" + +#: ../Doc/tutorial/modules.rst:106 +msgid "" +"This imports all names except those beginning with an underscore (``_``). In " +"most cases Python programmers do not use this facility since it introduces " +"an unknown set of names into the interpreter, possibly hiding some things " +"you have already defined." +msgstr "" +"Tous les noms ne commençant pas par un tiret bas (``_``) sont importés. Dans " +"la grande majorité des cas, les développeurs n'utilisent pas cette syntaxe " +"puisqu'en important un ensemble indéfini de noms, des noms déjà définis " +"peuvent se retrouver masqués." + +#: ../Doc/tutorial/modules.rst:111 +msgid "" +"Note that in general the practice of importing ``*`` from a module or " +"package is frowned upon, since it often causes poorly readable code. " +"However, it is okay to use it to save typing in interactive sessions." +msgstr "" +"Notez qu'en général, importer ``*`` d'un module ou d'un paquet est " +"déconseillé. Souvent, le code devient difficilement lisible. Son utilisation " +"en mode interactif est acceptée pour gagner quelques secondes." + +#: ../Doc/tutorial/modules.rst:115 +msgid "" +"If the module name is followed by :keyword:`!as`, then the name following :" +"keyword:`!as` is bound directly to the imported module." +msgstr "" +"Si le nom du module est suivi par :keyword:`!as`, alors le nom suivant :" +"keyword:`!as` est directement lié au module importé." + +#: ../Doc/tutorial/modules.rst:124 +msgid "" +"This is effectively importing the module in the same way that ``import " +"fibo`` will do, with the only difference of it being available as ``fib``." +msgstr "" +"Dans les faits, le module est importé de la même manière qu'avec ``import " +"fibo``, la seule différence est qu'il sera disponible sous le nom de ``fib``." + +#: ../Doc/tutorial/modules.rst:127 +msgid "" +"It can also be used when utilising :keyword:`from` with similar effects::" +msgstr "C'est aussi valide en utilisant :keyword:`from`, et a le même effet ::" + +#: ../Doc/tutorial/modules.rst:136 +msgid "" +"For efficiency reasons, each module is only imported once per interpreter " +"session. Therefore, if you change your modules, you must restart the " +"interpreter -- or, if it's just one module you want to test interactively, " +"use :func:`importlib.reload`, e.g. ``import importlib; importlib." +"reload(modulename)``." +msgstr "" +"pour des raisons de performance, chaque module n'est importé qu'une fois par " +"session. Si vous changez le code d'un module vous devez donc redémarrer " +"l'interpréteur afin d'en voir l'impact ; ou, s'il s'agit simplement d'un " +"seul module que vous voulez tester en mode interactif, vous pouvez le ré-" +"importer explicitement en utilisant :func:`importlib.reload`, par exemple : " +"``import importlib; importlib.reload(nommodule)``." + +#: ../Doc/tutorial/modules.rst:146 +msgid "Executing modules as scripts" +msgstr "Exécuter des modules comme des scripts" + +#: ../Doc/tutorial/modules.rst:148 +msgid "When you run a Python module with ::" +msgstr "Lorsque vous exécutez un module Python avec ::" + +#: ../Doc/tutorial/modules.rst:152 +msgid "" +"the code in the module will be executed, just as if you imported it, but " +"with the ``__name__`` set to ``\"__main__\"``. That means that by adding " +"this code at the end of your module::" +msgstr "" +"le code du module est exécuté comme si vous l'aviez importé mais son " +"``__name__`` vaut ``\"__main__\"``. Donc, en ajoutant ces lignes à la fin du " +"module ::" + +#: ../Doc/tutorial/modules.rst:160 +msgid "" +"you can make the file usable as a script as well as an importable module, " +"because the code that parses the command line only runs if the module is " +"executed as the \"main\" file:" +msgstr "" +"vous pouvez rendre le fichier utilisable comme script aussi bien que comme " +"module importable, car le code qui analyse la ligne de commande n'est lancé " +"que si le module est exécuté comme fichier « main » :" + +#: ../Doc/tutorial/modules.rst:169 +msgid "If the module is imported, the code is not run::" +msgstr "Si le fichier est importé, le code n'est pas exécuté ::" + +#: ../Doc/tutorial/modules.rst:174 +msgid "" +"This is often used either to provide a convenient user interface to a " +"module, or for testing purposes (running the module as a script executes a " +"test suite)." +msgstr "" +"C'est typiquement utilisé soit pour proposer une interface utilisateur pour " +"un module, soit pour lancer les tests sur le module (exécuter le module en " +"tant que script lance les tests)." + +#: ../Doc/tutorial/modules.rst:181 +msgid "The Module Search Path" +msgstr "Les dossiers de recherche de modules" + +#: ../Doc/tutorial/modules.rst:185 +msgid "" +"When a module named :mod:`spam` is imported, the interpreter first searches " +"for a built-in module with that name. If not found, it then searches for a " +"file named :file:`spam.py` in a list of directories given by the variable :" +"data:`sys.path`. :data:`sys.path` is initialized from these locations:" +msgstr "" +"Lorsqu'un module nommé par exemple :mod:`spam` est importé, il est d'abord " +"recherché parmi les modules natifs puis, s'il n'est pas trouvé, " +"l'interpréteur cherche un fichier nommé :file:`spam.py` dans une liste de " +"dossiers donnée par la variable :data:`sys.path`. Par défaut, :data:`sys." +"path` est initialisée à ::" + +#: ../Doc/tutorial/modules.rst:190 +msgid "" +"The directory containing the input script (or the current directory when no " +"file is specified)." +msgstr "" +"le dossier contenant le script courant (ou le dossier courant si aucun " +"script n'est donné) ;" + +#: ../Doc/tutorial/modules.rst:192 +msgid "" +":envvar:`PYTHONPATH` (a list of directory names, with the same syntax as the " +"shell variable :envvar:`PATH`)." +msgstr "" +":envvar:`PYTHONPATH` (une liste de dossiers, utilisant la même syntaxe que " +"la variable shell :envvar:`PATH`) ;" + +#: ../Doc/tutorial/modules.rst:194 +msgid "The installation-dependent default." +msgstr "la valeur par défaut, dépendante de l'installation." + +#: ../Doc/tutorial/modules.rst:197 +msgid "" +"On file systems which support symlinks, the directory containing the input " +"script is calculated after the symlink is followed. In other words the " +"directory containing the symlink is **not** added to the module search path." +msgstr "" +"sur les systèmes qui gèrent les liens symboliques, le dossier contenant le " +"script courant est résolu après avoir suivi le lien symbolique du script. " +"Autrement dit, le dossier contenant le lien symbolique n'est **pas** ajouté " +"aux dossiers de recherche de modules." + +#: ../Doc/tutorial/modules.rst:201 +msgid "" +"After initialization, Python programs can modify :data:`sys.path`. The " +"directory containing the script being run is placed at the beginning of the " +"search path, ahead of the standard library path. This means that scripts in " +"that directory will be loaded instead of modules of the same name in the " +"library directory. This is an error unless the replacement is intended. See " +"section :ref:`tut-standardmodules` for more information." +msgstr "" +"Après leur initialisation, les programmes Python peuvent modifier leur :data:" +"`sys.path`. Le dossier contenant le script courant est placé au début de la " +"liste des dossiers à rechercher, avant les dossiers de bibliothèques. Cela " +"signifie qu'un module dans ce dossier, ayant le même nom qu'un module, sera " +"chargé à sa place. C'est une erreur typique, à moins que ce ne soit voulu. " +"Voir :ref:`tut-standardmodules` pour plus d'informations." + +#: ../Doc/tutorial/modules.rst:212 +msgid "\"Compiled\" Python files" +msgstr "Fichiers Python \"compilés\"" + +#: ../Doc/tutorial/modules.rst:214 +msgid "" +"To speed up loading modules, Python caches the compiled version of each " +"module in the ``__pycache__`` directory under the name :file:`module." +"{version}.pyc`, where the version encodes the format of the compiled file; " +"it generally contains the Python version number. For example, in CPython " +"release 3.3 the compiled version of spam.py would be cached as ``__pycache__/" +"spam.cpython-33.pyc``. This naming convention allows compiled modules from " +"different releases and different versions of Python to coexist." +msgstr "" +"Pour accélérer le chargement des modules, Python cache une version compilée " +"de chaque module dans un fichier nommé :file:`module(version).pyc` (ou " +"*version* représente le format du fichier compilé, typiquement une version " +"de Python) dans le dossier ``__pycache__``. Par exemple, avec CPython 3.3, " +"la version compilée de *spam.py* serait ``__pycache__/spam.cpython-33.pyc``. " +"Cette règle de nommage permet à des versions compilées par des versions " +"différentes de Python de coexister." + +#: ../Doc/tutorial/modules.rst:222 +msgid "" +"Python checks the modification date of the source against the compiled " +"version to see if it's out of date and needs to be recompiled. This is a " +"completely automatic process. Also, the compiled modules are platform-" +"independent, so the same library can be shared among systems with different " +"architectures." +msgstr "" +"Python compare les dates de modification du fichier source et de sa version " +"compilée pour voir si le module doit être recompilé. Ce processus est " +"entièrement automatique. Par ailleurs, les versions compilées sont " +"indépendantes de la plateforme et peuvent donc être partagées entre des " +"systèmes d'architectures différentes." + +#: ../Doc/tutorial/modules.rst:227 +msgid "" +"Python does not check the cache in two circumstances. First, it always " +"recompiles and does not store the result for the module that's loaded " +"directly from the command line. Second, it does not check the cache if " +"there is no source module. To support a non-source (compiled only) " +"distribution, the compiled module must be in the source directory, and there " +"must not be a source module." +msgstr "" +"Il existe deux situations où Python ne vérifie pas le cache : le premier cas " +"est lorsque le module est donné par la ligne de commande (cas où le module " +"est toujours recompilé, sans même cacher sa version compilée) ; le second " +"cas est lorsque le module n'a pas de source. Pour gérer un module sans " +"source (où seule la version compilée est fournie), le module compilé doit se " +"trouver dans le dossier source et sa source ne doit pas être présente." + +#: ../Doc/tutorial/modules.rst:234 +msgid "Some tips for experts:" +msgstr "Astuces pour les experts :" + +#: ../Doc/tutorial/modules.rst:236 +msgid "" +"You can use the :option:`-O` or :option:`-OO` switches on the Python command " +"to reduce the size of a compiled module. The ``-O`` switch removes assert " +"statements, the ``-OO`` switch removes both assert statements and __doc__ " +"strings. Since some programs may rely on having these available, you should " +"only use this option if you know what you're doing. \"Optimized\" modules " +"have an ``opt-`` tag and are usually smaller. Future releases may change " +"the effects of optimization." +msgstr "" +"vous pouvez utiliser les options :option:`-O` ou :option:`-OO` lors de " +"l'appel à Python pour réduire la taille des modules compilés. L'option ``-" +"O`` supprime les instructions ``assert`` et l'option ``-OO`` supprime aussi " +"les documentations ``__doc__``. Cependant, puisque certains programmes ont " +"besoin de ces ``__doc__``, vous ne devriez utiliser ``-OO`` que si vous " +"savez ce que vous faites. Les modules \"optimisés\" sont marqués d'un ``opt-" +"`` et sont généralement plus petits. Les versions futures de Python " +"pourraient changer les effets de l'optimisation ;" + +#: ../Doc/tutorial/modules.rst:244 +msgid "" +"A program doesn't run any faster when it is read from a ``.pyc`` file than " +"when it is read from a ``.py`` file; the only thing that's faster about ``." +"pyc`` files is the speed with which they are loaded." +msgstr "" +"un programme ne s'exécute pas plus vite lorsqu'il est lu depuis un ``.pyc``, " +"il est juste chargé plus vite ;" + +#: ../Doc/tutorial/modules.rst:248 +msgid "" +"The module :mod:`compileall` can create .pyc files for all modules in a " +"directory." +msgstr "" +"le module :mod:`compileall` peut créer des fichiers ``.pyc`` pour tous les " +"modules d'un dossier ;" + +#: ../Doc/tutorial/modules.rst:251 +msgid "" +"There is more detail on this process, including a flow chart of the " +"decisions, in :pep:`3147`." +msgstr "" +"vous trouvez plus de détails sur ce processus, ainsi qu'un organigramme des " +"décisions, dans la :pep:`3147`." + +#: ../Doc/tutorial/modules.rst:258 +msgid "Standard Modules" +msgstr "Modules standards" + +#: ../Doc/tutorial/modules.rst:262 +msgid "" +"Python comes with a library of standard modules, described in a separate " +"document, the Python Library Reference (\"Library Reference\" hereafter). " +"Some modules are built into the interpreter; these provide access to " +"operations that are not part of the core of the language but are " +"nevertheless built in, either for efficiency or to provide access to " +"operating system primitives such as system calls. The set of such modules " +"is a configuration option which also depends on the underlying platform. " +"For example, the :mod:`winreg` module is only provided on Windows systems. " +"One particular module deserves some attention: :mod:`sys`, which is built " +"into every Python interpreter. The variables ``sys.ps1`` and ``sys.ps2`` " +"define the strings used as primary and secondary prompts::" +msgstr "" +"Python est accompagné d'une bibliothèque de modules standards, décrits dans " +"la documentation de la Bibliothèque Python, plus loin. Certains modules sont " +"intégrés dans l'interpréteur, ils exposent des outils qui ne font pas partie " +"du langage mais qui font tout de même partie de l'interpréteur, soit pour le " +"côté pratique, soit pour exposer des outils essentiels tels que l'accès aux " +"appels système. La composition de ces modules est configurable à la " +"compilation et dépend aussi de la plateforme cible. Par exemple, le module :" +"mod:`winreg` n'est proposé que sur les systèmes Windows. Un module mérite " +"une attention particulière, le module :mod:`sys`, qui est présent dans tous " +"les interpréteurs Python. Les variables ``sys.ps1`` et ``sys.ps2`` " +"définissent les chaînes d'invites principales et secondaires ::" + +#: ../Doc/tutorial/modules.rst:285 +msgid "" +"These two variables are only defined if the interpreter is in interactive " +"mode." +msgstr "" +"Ces deux variables ne sont définies que si l'interpréteur est en mode " +"interactif." + +#: ../Doc/tutorial/modules.rst:287 +msgid "" +"The variable ``sys.path`` is a list of strings that determines the " +"interpreter's search path for modules. It is initialized to a default path " +"taken from the environment variable :envvar:`PYTHONPATH`, or from a built-in " +"default if :envvar:`PYTHONPATH` is not set. You can modify it using " +"standard list operations::" +msgstr "" +"La variable ``sys.path`` est une liste de chaînes qui détermine les chemins " +"de recherche de modules pour l'interpréteur. Elle est initialisée à un " +"chemin par défaut pris de la variable d'environnement :envvar:`PYTHONPATH` " +"ou d'une valeur par défaut interne si :envvar:`PYTHONPATH` n'est pas " +"définie. ``sys.path`` est modifiable en utilisant les opérations habituelles " +"des listes ::" + +#: ../Doc/tutorial/modules.rst:300 +msgid "The :func:`dir` Function" +msgstr "La fonction :func:`dir`" + +#: ../Doc/tutorial/modules.rst:302 +msgid "" +"The built-in function :func:`dir` is used to find out which names a module " +"defines. It returns a sorted list of strings::" +msgstr "" +"La fonction interne :func:`dir` est utilisée pour trouver quels noms sont " +"définis par un module. Elle donne une liste de chaînes classées par ordre " +"lexicographique ::" + +#: ../Doc/tutorial/modules.rst:327 +msgid "" +"Without arguments, :func:`dir` lists the names you have defined currently::" +msgstr "Sans paramètre, :func:`dir` liste les noms actuellement définis ::" + +#: ../Doc/tutorial/modules.rst:335 +msgid "" +"Note that it lists all types of names: variables, modules, functions, etc." +msgstr "" +"Notez qu'elle liste tous les types de noms : les variables, fonctions, " +"modules, etc." + +#: ../Doc/tutorial/modules.rst:339 +msgid "" +":func:`dir` does not list the names of built-in functions and variables. If " +"you want a list of those, they are defined in the standard module :mod:" +"`builtins`::" +msgstr "" +":func:`dir` ne liste ni les fonctions primitives, ni les variables internes. " +"Si vous voulez les lister, elles sont définies dans le module :mod:" +"`builtins` ::" + +#: ../Doc/tutorial/modules.rst:378 +msgid "Packages" +msgstr "Les paquets" + +#: ../Doc/tutorial/modules.rst:380 +msgid "" +"Packages are a way of structuring Python's module namespace by using " +"\"dotted module names\". For example, the module name :mod:`A.B` designates " +"a submodule named ``B`` in a package named ``A``. Just like the use of " +"modules saves the authors of different modules from having to worry about " +"each other's global variable names, the use of dotted module names saves the " +"authors of multi-module packages like NumPy or Pillow from having to worry " +"about each other's module names." +msgstr "" +"Les paquets sont un moyen de structurer les espaces de nommage des modules " +"Python en utilisant une notation \"pointée\". Par exemple, le nom de module :" +"mod:`A.B` désigne le sous-module ``B`` du paquet ``A``. De la même manière " +"que l'utilisation des modules évite aux auteurs de différents modules " +"d'avoir à se soucier des noms de variables globales des autres, " +"l'utilisation des noms de modules avec des points évite aux auteurs de " +"paquets contenant plusieurs modules tel que NumPy ou Pillow d'avoir à se " +"soucier des noms des modules des autres." + +#: ../Doc/tutorial/modules.rst:388 +msgid "" +"Suppose you want to design a collection of modules (a \"package\") for the " +"uniform handling of sound files and sound data. There are many different " +"sound file formats (usually recognized by their extension, for example: :" +"file:`.wav`, :file:`.aiff`, :file:`.au`), so you may need to create and " +"maintain a growing collection of modules for the conversion between the " +"various file formats. There are also many different operations you might " +"want to perform on sound data (such as mixing, adding echo, applying an " +"equalizer function, creating an artificial stereo effect), so in addition " +"you will be writing a never-ending stream of modules to perform these " +"operations. Here's a possible structure for your package (expressed in " +"terms of a hierarchical filesystem):" +msgstr "" +"Imaginez que vous voulez construire un ensemble de modules (un \"paquet\") " +"pour gérer uniformément les fichiers contenant du son et des données " +"sonores. Il existe un grand nombre de formats de fichiers pour stocker du " +"son (généralement identifiés par leur extension, par exemple :file:`.wav`, :" +"file:`.aiff`, :file:`.au`), vous avez donc besoin de créer et maintenir un " +"nombre croissant de modules pour gérer la conversion entre tous ces formats. " +"Vous voulez aussi pouvoir appliquer un certain nombre d'opérations sur ces " +"sons : mixer, ajouter de l'écho, égaliser, ajouter un effet stéréo " +"artificiel, etc. Donc, en plus des modules de conversion, vous allez écrire " +"une myriade de modules permettant d'effectuer ces opérations. Voici une " +"structure possible pour votre paquet (exprimée sous la forme d'une " +"arborescence de fichiers :" + +#: ../Doc/tutorial/modules.rst:425 +msgid "" +"When importing the package, Python searches through the directories on ``sys." +"path`` looking for the package subdirectory." +msgstr "" +"Lorsqu'il importe des paquets, Python cherche dans chaque dossier de ``sys." +"path`` un sous-dossier du nom du paquet." + +#: ../Doc/tutorial/modules.rst:428 +msgid "" +"The :file:`__init__.py` files are required to make Python treat directories " +"containing the file as packages. This prevents directories with a common " +"name, such as ``string``, unintentionally hiding valid modules that occur " +"later on the module search path. In the simplest case, :file:`__init__.py` " +"can just be an empty file, but it can also execute initialization code for " +"the package or set the ``__all__`` variable, described later." +msgstr "" +"Les fichiers :file:`__init__.py` sont nécessaires pour que Python considère " +"un dossier contenant ce fichier comme un paquet. Cela évite que des dossiers " +"ayant des noms courants comme ``string`` ne masquent des modules qui " +"auraient été trouvés plus tard dans la recherche des dossiers. Dans le plus " +"simple des cas, :file:`__init__.py` peut être vide, mais il peut aussi " +"exécuter du code d'initialisation pour son paquet ou configurer la variable " +"``__all__`` (documentée plus loin)." + +#: ../Doc/tutorial/modules.rst:435 +msgid "" +"Users of the package can import individual modules from the package, for " +"example::" +msgstr "" +"Les utilisateurs d'un module peuvent importer ses modules individuellement, " +"par exemple ::" + +#: ../Doc/tutorial/modules.rst:440 +msgid "" +"This loads the submodule :mod:`sound.effects.echo`. It must be referenced " +"with its full name. ::" +msgstr "" +"charge le sous-module :mod:`sound.effects.echo`. Il doit alors être " +"référencé par son nom complet. ::" + +#: ../Doc/tutorial/modules.rst:445 +msgid "An alternative way of importing the submodule is::" +msgstr "Une autre manière d'importer des sous-modules est ::" + +#: ../Doc/tutorial/modules.rst:449 +msgid "" +"This also loads the submodule :mod:`echo`, and makes it available without " +"its package prefix, so it can be used as follows::" +msgstr "" +"charge aussi le sous-module :mod:`echo` et le rend disponible sans avoir à " +"indiquer le préfixe du paquet. Il peut donc être utilisé comme ceci ::" + +#: ../Doc/tutorial/modules.rst:454 +msgid "" +"Yet another variation is to import the desired function or variable " +"directly::" +msgstr "" +"Une autre méthode consiste à importer la fonction ou la variable désirée " +"directement ::" + +#: ../Doc/tutorial/modules.rst:458 +msgid "" +"Again, this loads the submodule :mod:`echo`, but this makes its function :" +"func:`echofilter` directly available::" +msgstr "" +"Le sous-module :mod:`echo` est toujours chargé mais ici la fonction :func:" +"`echofilter` est disponible directement ::" + +#: ../Doc/tutorial/modules.rst:463 +msgid "" +"Note that when using ``from package import item``, the item can be either a " +"submodule (or subpackage) of the package, or some other name defined in the " +"package, like a function, class or variable. The ``import`` statement first " +"tests whether the item is defined in the package; if not, it assumes it is a " +"module and attempts to load it. If it fails to find it, an :exc:" +"`ImportError` exception is raised." +msgstr "" +"Notez que lorsque vous utilisez ``from package import element``, ``element`` " +"peut aussi bien être un sous-module, un sous-paquet ou simplement un nom " +"déclaré dans le paquet (une variable, une fonction ou une classe). " +"L'instruction ``import`` cherche en premier si ``element`` est défini dans " +"le paquet ; s'il ne l'est pas, elle cherche à charger un module et, si elle " +"n'en trouve pas, une exception :exc:`ImportError` est levée." + +#: ../Doc/tutorial/modules.rst:470 +msgid "" +"Contrarily, when using syntax like ``import item.subitem.subsubitem``, each " +"item except for the last must be a package; the last item can be a module or " +"a package but can't be a class or function or variable defined in the " +"previous item." +msgstr "" +"Au contraire, en utilisant la syntaxe ``import element.souselement." +"soussouselement``, chaque ``element`` sauf le dernier doit être un paquet. " +"Le dernier ``element`` peut être un module ou un paquet, mais ne peut être " +"ni une fonction, ni une classe, ni une variable définie dans l'élément " +"précédent." + +#: ../Doc/tutorial/modules.rst:479 +msgid "Importing \\* From a Package" +msgstr "Importer \\* depuis un paquet" + +#: ../Doc/tutorial/modules.rst:483 +msgid "" +"Now what happens when the user writes ``from sound.effects import *``? " +"Ideally, one would hope that this somehow goes out to the filesystem, finds " +"which submodules are present in the package, and imports them all. This " +"could take a long time and importing sub-modules might have unwanted side-" +"effects that should only happen when the sub-module is explicitly imported." +msgstr "" +"Qu'arrive-t-il lorsqu'un utilisateur écrit ``from sound.effects import *`` ? " +"Idéalement, on pourrait espérer que Python aille chercher tous les sous-" +"modules du paquet sur le système de fichiers et qu'ils seraient tous " +"importés. Cela pourrait être long et importer certains sous-modules pourrait " +"avoir des effets secondaires indésirables ou, du moins, désirés seulement " +"lorsque le sous-module est importé explicitement." + +#: ../Doc/tutorial/modules.rst:489 +msgid "" +"The only solution is for the package author to provide an explicit index of " +"the package. The :keyword:`import` statement uses the following convention: " +"if a package's :file:`__init__.py` code defines a list named ``__all__``, it " +"is taken to be the list of module names that should be imported when ``from " +"package import *`` is encountered. It is up to the package author to keep " +"this list up-to-date when a new version of the package is released. Package " +"authors may also decide not to support it, if they don't see a use for " +"importing \\* from their package. For example, the file :file:`sound/" +"effects/__init__.py` could contain the following code::" +msgstr "" +"La seule solution, pour l'auteur du paquet, est de fournir un index " +"explicite du contenu du paquet. L'instruction :keyword:`import` utilise la " +"convention suivante : si le fichier :file:`__init__.py` du paquet définit " +"une liste nommée ``__all__``, cette liste est utilisée comme liste des noms " +"de modules devant être importés lorsque ``from package import *`` est " +"utilisé. Il est de la responsabilité de l'auteur du paquet de maintenir " +"cette liste à jour lorsque de nouvelles versions du paquet sont publiées. Un " +"auteur de paquet peut aussi décider de ne pas autoriser d'importer ``*`` " +"pour son paquet. Par exemple, le fichier :file:`sound/effects/__init__.py` " +"peut contenir le code suivant ::" + +#: ../Doc/tutorial/modules.rst:501 +msgid "" +"This would mean that ``from sound.effects import *`` would import the three " +"named submodules of the :mod:`sound` package." +msgstr "" +"Cela signifie que ``from sound.effects import *`` importe les trois sous-" +"modules explicitement désignés du paquet :mod:`sound`." + +#: ../Doc/tutorial/modules.rst:504 +msgid "" +"If ``__all__`` is not defined, the statement ``from sound.effects import *`` " +"does *not* import all submodules from the package :mod:`sound.effects` into " +"the current namespace; it only ensures that the package :mod:`sound.effects` " +"has been imported (possibly running any initialization code in :file:" +"`__init__.py`) and then imports whatever names are defined in the package. " +"This includes any names defined (and submodules explicitly loaded) by :file:" +"`__init__.py`. It also includes any submodules of the package that were " +"explicitly loaded by previous :keyword:`import` statements. Consider this " +"code::" +msgstr "" +"Si ``__all__`` n'est pas définie, l'instruction ``from sound.effects import " +"*`` n'importe *pas* tous les sous-modules du paquet :mod:`sound.effects` " +"dans l'espace de nommage courant mais s'assure seulement que le paquet :mod:" +"`sound.effects` a été importé (i.e. que tout le code du fichier :file:" +"`__init__.py` a été exécuté) et importe ensuite les noms définis dans le " +"paquet. Cela inclut tous les noms définis (et sous-modules chargés " +"explicitement) par :file:`__init__.py`. Sont aussi inclus tous les sous-" +"modules du paquet ayant été chargés explicitement par une instruction :" +"keyword:`import`. Typiquement ::" + +#: ../Doc/tutorial/modules.rst:517 +msgid "" +"In this example, the :mod:`echo` and :mod:`surround` modules are imported in " +"the current namespace because they are defined in the :mod:`sound.effects` " +"package when the ``from...import`` statement is executed. (This also works " +"when ``__all__`` is defined.)" +msgstr "" +"Dans cet exemple, les modules :mod:`echo` et :mod:`surround` sont importés " +"dans l'espace de nommage courant lorsque ``from...import`` est exécuté parce " +"qu'ils sont définis dans le paquet :mod:`sound.effects` (cela fonctionne " +"aussi lorsque ``__all__`` est définie)." + +#: ../Doc/tutorial/modules.rst:522 +msgid "" +"Although certain modules are designed to export only names that follow " +"certain patterns when you use ``import *``, it is still considered bad " +"practice in production code." +msgstr "" +"Bien que certains modules ont été pensés pour n'exporter que les noms " +"respectant une certaine structure lorsque ``import *`` est utilisé, ``import " +"*`` reste considéré comme une mauvaise pratique dans du code à destination " +"d'un environnement de production." + +#: ../Doc/tutorial/modules.rst:526 +msgid "" +"Remember, there is nothing wrong with using ``from package import " +"specific_submodule``! In fact, this is the recommended notation unless the " +"importing module needs to use submodules with the same name from different " +"packages." +msgstr "" +"Rappelez-vous que rien ne vous empêche d'utiliser ``from paquet import " +"sous_module_specifique`` ! C'est d'ailleurs la manière recommandée, à moins " +"que le module qui fait les importations ait besoin de sous-modules ayant le " +"même nom mais provenant de paquets différents." + +#: ../Doc/tutorial/modules.rst:533 +msgid "Intra-package References" +msgstr "Références internes dans un paquet" + +#: ../Doc/tutorial/modules.rst:535 +msgid "" +"When packages are structured into subpackages (as with the :mod:`sound` " +"package in the example), you can use absolute imports to refer to submodules " +"of siblings packages. For example, if the module :mod:`sound.filters." +"vocoder` needs to use the :mod:`echo` module in the :mod:`sound.effects` " +"package, it can use ``from sound.effects import echo``." +msgstr "" +"Lorsque les paquets sont organisés en sous-paquets (comme le paquet :mod:" +"`sound` par exemple), vous pouvez utiliser des importations absolues pour " +"cibler des paquets voisins. Par exemple, si le module :mod:`sound.filters." +"vocoder` a besoin du module :mod:`echo` du paquet :mod:`sound.effects`, il " +"peut utiliser ``from sound.effects import echo``." + +#: ../Doc/tutorial/modules.rst:541 +msgid "" +"You can also write relative imports, with the ``from module import name`` " +"form of import statement. These imports use leading dots to indicate the " +"current and parent packages involved in the relative import. From the :mod:" +"`surround` module for example, you might use::" +msgstr "" +"Il est aussi possible d'écrire des importations relatives de la forme ``from " +"module import name``. Ces importations relatives sont préfixées par des " +"points pour indiquer leur origine (paquet courant ou parent). Depuis le " +"module :mod:`surround`, par exemple vous pouvez écrire ::" + +#: ../Doc/tutorial/modules.rst:550 +msgid "" +"Note that relative imports are based on the name of the current module. " +"Since the name of the main module is always ``\"__main__\"``, modules " +"intended for use as the main module of a Python application must always use " +"absolute imports." +msgstr "" +"Notez que les importations relatives se fient au nom du module actuel. " +"Puisque le nom du module principal est toujours ``\"__main__\"``, les " +"modules utilisés par le module principal d'une application ne peuvent être " +"importés que par des importations absolues." + +#: ../Doc/tutorial/modules.rst:556 +msgid "Packages in Multiple Directories" +msgstr "Paquets dans plusieurs dossiers" + +#: ../Doc/tutorial/modules.rst:558 +msgid "" +"Packages support one more special attribute, :attr:`__path__`. This is " +"initialized to be a list containing the name of the directory holding the " +"package's :file:`__init__.py` before the code in that file is executed. " +"This variable can be modified; doing so affects future searches for modules " +"and subpackages contained in the package." +msgstr "" +"Les paquets possèdent un attribut supplémentaire, :attr:`__path__`, qui est " +"une liste initialisée avant l'exécution du fichier :file:`__init__.py`, " +"contenant le nom de son dossier dans le système de fichiers. Cette liste " +"peut être modifiée, altérant ainsi les futures recherches de modules et sous-" +"paquets contenus dans le paquet." + +#: ../Doc/tutorial/modules.rst:564 +msgid "" +"While this feature is not often needed, it can be used to extend the set of " +"modules found in a package." +msgstr "" +"Bien que cette fonctionnalité ne soit que rarement utile, elle peut servir à " +"élargir la liste des modules trouvés dans un paquet." + +#: ../Doc/tutorial/modules.rst:569 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/tutorial/modules.rst:570 +msgid "" +"In fact function definitions are also 'statements' that are 'executed'; the " +"execution of a module-level function definition enters the function name in " +"the module's global symbol table." +msgstr "" +"En réalité, la déclaration d'une fonction est elle-même une instruction ; " +"son exécution enregistre le nom de la fonction dans la table des symboles " +"globaux du module." diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po new file mode 100644 index 000000000..35e8780c9 --- /dev/null +++ b/tutorial/stdlib.po @@ -0,0 +1,375 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: 2018-07-31 23:46+0200\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/tutorial/stdlib.rst:5 +msgid "Brief Tour of the Standard Library" +msgstr "Survol de la bibliothèque standard" + +#: ../Doc/tutorial/stdlib.rst:11 +msgid "Operating System Interface" +msgstr "Interface avec le système d'exploitation" + +#: ../Doc/tutorial/stdlib.rst:13 +msgid "" +"The :mod:`os` module provides dozens of functions for interacting with the " +"operating system::" +msgstr "" +"Le module :mod:`os` propose des dizaines de fonctions pour interagir avec le " +"système d'exploitation ::" + +#: ../Doc/tutorial/stdlib.rst:23 +msgid "" +"Be sure to use the ``import os`` style instead of ``from os import *``. " +"This will keep :func:`os.open` from shadowing the built-in :func:`open` " +"function which operates much differently." +msgstr "" +"Veillez bien à utiliser ``import os`` plutôt que ``from os import *``, " +"sinon :func:`os.open` cache la primitive :func:`open` qui fonctionne " +"différemment." + +#: ../Doc/tutorial/stdlib.rst:29 +msgid "" +"The built-in :func:`dir` and :func:`help` functions are useful as " +"interactive aids for working with large modules like :mod:`os`::" +msgstr "" +"Les primitives :func:`dir` et :func:`help` sont des aides utiles lorsque " +"vous travaillez en mode interactif avez des gros modules comme :mod:`os` ::" + +#: ../Doc/tutorial/stdlib.rst:38 +msgid "" +"For daily file and directory management tasks, the :mod:`shutil` module " +"provides a higher level interface that is easier to use::" +msgstr "" +"Pour la gestion des fichiers et dossiers, le module :mod:`shutil` expose une " +"interface plus abstraite et plus facile à utiliser ::" + +#: ../Doc/tutorial/stdlib.rst:51 +msgid "File Wildcards" +msgstr "Jokers sur les noms de fichiers" + +#: ../Doc/tutorial/stdlib.rst:53 +msgid "" +"The :mod:`glob` module provides a function for making file lists from " +"directory wildcard searches::" +msgstr "" +"Le module :mod:`glob` fournit une fonction pour construire des listes de " +"fichiers à partir de motifs ::" + +#: ../Doc/tutorial/stdlib.rst:64 +msgid "Command Line Arguments" +msgstr "Paramètres passés en ligne de commande" + +#: ../Doc/tutorial/stdlib.rst:66 +msgid "" +"Common utility scripts often need to process command line arguments. These " +"arguments are stored in the :mod:`sys` module's *argv* attribute as a list. " +"For instance the following output results from running ``python demo.py one " +"two three`` at the command line::" +msgstr "" +"Typiquement, les outils en ligne de commande ont besoin de lire les " +"paramètres qui leur sont donnés. Ces paramètres sont stockés dans la " +"variable ``argv`` du module :mod:`sys` sous la forme d'une liste. Par " +"exemple, l'affichage suivant vient de l'exécution de ``python demo.py one " +"two three`` depuis la ligne de commande ::" + +#: ../Doc/tutorial/stdlib.rst:75 +msgid "" +"The :mod:`getopt` module processes *sys.argv* using the conventions of the " +"Unix :func:`getopt` function. More powerful and flexible command line " +"processing is provided by the :mod:`argparse` module." +msgstr "" +"Le module :mod:`getopt` analyse *sys.argv* en utilisant les conventions " +"habituelles de la fonction Unix :func:`getopt`. Des outils d'analyse des " +"paramètres de la ligne de commande plus flexibles et avancés sont " +"disponibles dans le module :mod:`argparse`." + +#: ../Doc/tutorial/stdlib.rst:83 +msgid "Error Output Redirection and Program Termination" +msgstr "Redirection de la sortie d'erreur et fin d'exécution" + +#: ../Doc/tutorial/stdlib.rst:85 +msgid "" +"The :mod:`sys` module also has attributes for *stdin*, *stdout*, and " +"*stderr*. The latter is useful for emitting warnings and error messages to " +"make them visible even when *stdout* has been redirected::" +msgstr "" +"Le module :mod:`sys` a aussi des attributs pour *stdin*, *stdout* et " +"*stderr*. Ce dernier est utile pour émettre des messages d'avertissement ou " +"d'erreur qui restent visibles même si *stdout* est redirigé ::" + +#: ../Doc/tutorial/stdlib.rst:92 +msgid "The most direct way to terminate a script is to use ``sys.exit()``." +msgstr "" +"Le moyen le plus direct de terminer un script est d'utiliser ``sys.exit()``." + +#: ../Doc/tutorial/stdlib.rst:98 +msgid "String Pattern Matching" +msgstr "Recherche de motifs dans les chaînes" + +#: ../Doc/tutorial/stdlib.rst:100 +msgid "" +"The :mod:`re` module provides regular expression tools for advanced string " +"processing. For complex matching and manipulation, regular expressions offer " +"succinct, optimized solutions::" +msgstr "" +"Le module :mod:`re` fournit des outils basés sur les expressions " +"rationnelles permettant des opérations complexes sur les chaînes. C'est une " +"solution optimisée, utilisant une syntaxe concise, pour rechercher des " +"motifs complexes ou effectuer des remplacements complexes dans les chaînes ::" + +#: ../Doc/tutorial/stdlib.rst:110 +msgid "" +"When only simple capabilities are needed, string methods are preferred " +"because they are easier to read and debug::" +msgstr "" +"Lorsque les opérations sont simples, il est préférable d'utiliser les " +"méthodes des chaînes. Elles sont plus lisibles et plus faciles à déboguer ::" + +#: ../Doc/tutorial/stdlib.rst:120 +msgid "Mathematics" +msgstr "Mathématiques" + +#: ../Doc/tutorial/stdlib.rst:122 +msgid "" +"The :mod:`math` module gives access to the underlying C library functions " +"for floating point math::" +msgstr "" +"Le module :mod:`math` donne accès aux fonctions sur les nombres à virgule " +"flottante (*float* en anglais) de la bibliothèque C ::" + +#: ../Doc/tutorial/stdlib.rst:131 +msgid "The :mod:`random` module provides tools for making random selections::" +msgstr "" +"Le module :mod:`random` offre des outils pour faire des tirages aléatoires ::" + +#: ../Doc/tutorial/stdlib.rst:143 +msgid "" +"The :mod:`statistics` module calculates basic statistical properties (the " +"mean, median, variance, etc.) of numeric data::" +msgstr "" +"Le module :mod:`statistics` permet de calculer des valeurs statistiques " +"basiques (moyenne, médiane, variance…) ::" + +#: ../Doc/tutorial/stdlib.rst:155 +msgid "" +"The SciPy project has many other modules for numerical " +"computations." +msgstr "" +"Le projet SciPy contient beaucoup d'autres modules " +"dédiés aux calculs numériques." + +#: ../Doc/tutorial/stdlib.rst:161 +msgid "Internet Access" +msgstr "Accès à internet" + +#: ../Doc/tutorial/stdlib.rst:163 +msgid "" +"There are a number of modules for accessing the internet and processing " +"internet protocols. Two of the simplest are :mod:`urllib.request` for " +"retrieving data from URLs and :mod:`smtplib` for sending mail::" +msgstr "" +"Il existe beaucoup de modules permettant d'accéder à internet et gérer les " +"protocoles réseaux. Les deux plus simples sont :mod:`urllib.request` qui " +"permet de récupérer des données à partir d'une URL et :mod:`smtplib` pour " +"envoyer des courriers électroniques ::" + +#: ../Doc/tutorial/stdlib.rst:186 +msgid "(Note that the second example needs a mailserver running on localhost.)" +msgstr "" +"(Notez que le deuxième exemple a besoin d'un serveur mail tournant " +"localement.)" + +#: ../Doc/tutorial/stdlib.rst:192 +msgid "Dates and Times" +msgstr "Dates et heures" + +#: ../Doc/tutorial/stdlib.rst:194 +msgid "" +"The :mod:`datetime` module supplies classes for manipulating dates and times " +"in both simple and complex ways. While date and time arithmetic is " +"supported, the focus of the implementation is on efficient member extraction " +"for output formatting and manipulation. The module also supports objects " +"that are timezone aware. ::" +msgstr "" +"Le module :mod:`datetime` propose des classes pour manipuler les dates et " +"les heures de manière simple ou plus complexe. Bien que faire des calculs de " +"dates et d'heures soit possible, la priorité de l'implémentation est mise " +"sur l'extraction efficace des attributs pour le formatage et la " +"manipulation. Le module gère aussi les objets dépendant des fuseaux " +"horaires ::" + +#: ../Doc/tutorial/stdlib.rst:218 +msgid "Data Compression" +msgstr "Compression de données" + +#: ../Doc/tutorial/stdlib.rst:220 +msgid "" +"Common data archiving and compression formats are directly supported by " +"modules including: :mod:`zlib`, :mod:`gzip`, :mod:`bz2`, :mod:`lzma`, :mod:" +"`zipfile` and :mod:`tarfile`. ::" +msgstr "" +"Les formats d'archivage et de compression les plus communs sont directement " +"gérés par les modules :mod:`zlib`, :mod:`gzip`, :mod:`bz2`, :mod:`lzma`, :" +"mod:`zipfile` et :mod:`tarfile` ::" + +#: ../Doc/tutorial/stdlib.rst:240 +msgid "Performance Measurement" +msgstr "Mesure des performances" + +#: ../Doc/tutorial/stdlib.rst:242 +msgid "" +"Some Python users develop a deep interest in knowing the relative " +"performance of different approaches to the same problem. Python provides a " +"measurement tool that answers those questions immediately." +msgstr "" +"Certains utilisateurs de Python sont très intéressés par les performances de " +"différentes approches d'un même problème. Python propose un outil de mesure " +"répondant simplement à ces questions." + +#: ../Doc/tutorial/stdlib.rst:246 +msgid "" +"For example, it may be tempting to use the tuple packing and unpacking " +"feature instead of the traditional approach to swapping arguments. The :mod:" +"`timeit` module quickly demonstrates a modest performance advantage::" +msgstr "" +"Par exemple, pour échanger deux variables, il peut être tentant d'utiliser " +"l'empaquetage et le dépaquetage de tuples plutôt que la méthode " +"traditionnelle. Le module :mod:`timeit` montre rapidement le léger gain de " +"performance obtenu ::" + +#: ../Doc/tutorial/stdlib.rst:256 +msgid "" +"In contrast to :mod:`timeit`'s fine level of granularity, the :mod:`profile` " +"and :mod:`pstats` modules provide tools for identifying time critical " +"sections in larger blocks of code." +msgstr "" +"En opposition à :mod:`timeit` et sa granularité fine, :mod:`profile` et :mod:" +"`pstats` fournissent des outils permettant d'identifier les parties les plus " +"gourmandes en temps d'exécution dans des volumes de code plus grands." + +#: ../Doc/tutorial/stdlib.rst:264 +msgid "Quality Control" +msgstr "Contrôle qualité" + +#: ../Doc/tutorial/stdlib.rst:266 +msgid "" +"One approach for developing high quality software is to write tests for each " +"function as it is developed and to run those tests frequently during the " +"development process." +msgstr "" +"Une approche possible pour développer des applications de très bonne qualité " +"est d'écrire des tests pour chaque fonction au fur et à mesure de son " +"développement, puis d'exécuter ces tests fréquemment lors du processus de " +"développement." + +#: ../Doc/tutorial/stdlib.rst:270 +msgid "" +"The :mod:`doctest` module provides a tool for scanning a module and " +"validating tests embedded in a program's docstrings. Test construction is " +"as simple as cutting-and-pasting a typical call along with its results into " +"the docstring. This improves the documentation by providing the user with an " +"example and it allows the doctest module to make sure the code remains true " +"to the documentation::" +msgstr "" +"Le module :mod:`doctest` cherche des tests dans les chaînes de " +"documentation. Un test ressemble à un simple copier-coller d'un appel et son " +"résultat depuis le mode interactif. Cela améliore la documentation en " +"fournissant des exemples tout en prouvant qu'ils sont justes ::" + +#: ../Doc/tutorial/stdlib.rst:288 +msgid "" +"The :mod:`unittest` module is not as effortless as the :mod:`doctest` " +"module, but it allows a more comprehensive set of tests to be maintained in " +"a separate file::" +msgstr "" +"Le module :mod:`unittest` requiert plus d'efforts que le module :mod:" +"`doctest` mais il permet de construire un jeu de tests plus complet que l'on " +"fait évoluer dans un fichier séparé ::" + +#: ../Doc/tutorial/stdlib.rst:310 +msgid "Batteries Included" +msgstr "Piles fournies" + +#: ../Doc/tutorial/stdlib.rst:312 +msgid "" +"Python has a \"batteries included\" philosophy. This is best seen through " +"the sophisticated and robust capabilities of its larger packages. For " +"example:" +msgstr "" +"Python adopte le principe des \"piles fournies\". Vous pouvez le constater " +"au travers des fonctionnalités évoluées et solides fournies par ses plus " +"gros paquets. Par exemple :" + +#: ../Doc/tutorial/stdlib.rst:315 +msgid "" +"The :mod:`xmlrpc.client` and :mod:`xmlrpc.server` modules make implementing " +"remote procedure calls into an almost trivial task. Despite the modules " +"names, no direct knowledge or handling of XML is needed." +msgstr "" +"Les modules :mod:`xmlrpc.client` et :mod:`xmlrpc.server` permettent " +"d'appeler des fonctions à distance quasiment sans effort. En dépit du nom " +"des modules, aucune connaissance du XML n'est nécessaire." + +#: ../Doc/tutorial/stdlib.rst:319 +msgid "" +"The :mod:`email` package is a library for managing email messages, including " +"MIME and other :rfc:`2822`-based message documents. Unlike :mod:`smtplib` " +"and :mod:`poplib` which actually send and receive messages, the email " +"package has a complete toolset for building or decoding complex message " +"structures (including attachments) and for implementing internet encoding " +"and header protocols." +msgstr "" +"Le paquet :mod:`email` est une bibliothèque pour gérer les messages " +"électroniques, incluant les MIME et autres encodages basés sur la :rfc:" +"`2822`. Contrairement à :mod:`smtplib` et :mod:`poplib` qui envoient et " +"reçoivent des messages, le paquet *email* est une boite à outils pour " +"construire, lire des structures de messages complexes (comprenant des pièces " +"jointes) ou implémenter des encodages et protocoles." + +#: ../Doc/tutorial/stdlib.rst:326 +msgid "" +"The :mod:`json` package provides robust support for parsing this popular " +"data interchange format. The :mod:`csv` module supports direct reading and " +"writing of files in Comma-Separated Value format, commonly supported by " +"databases and spreadsheets. XML processing is supported by the :mod:`xml." +"etree.ElementTree`, :mod:`xml.dom` and :mod:`xml.sax` packages. Together, " +"these modules and packages greatly simplify data interchange between Python " +"applications and other tools." +msgstr "" +"Le paquet :mod:`json` permet de lire et d'écrire du JSON, format d'encodage " +"de données répandu. Le module :mod:`csv` gère la lecture et l'écriture de " +"données stockées sous forme de valeurs séparées par des virgules dans des " +"fichiers (*Comma-Separated Values* en anglais), format typiquement " +"interopérable avec les bases de données et les feuilles de calculs. Pour la " +"lecture du XML, utilisez les paquets :mod:`xml.etree.ElementTree`, :mod:`xml." +"dom` et :mod:`xml.sax`. Combinés, ces modules et paquets simplifient " +"grandement l'échange de données entre les applications Python et les autres " +"outils." + +#: ../Doc/tutorial/stdlib.rst:335 +msgid "" +"The :mod:`sqlite3` module is a wrapper for the SQLite database library, " +"providing a persistent database that can be updated and accessed using " +"slightly nonstandard SQL syntax." +msgstr "" +"Le module :mod:`sqlite3` est une abstraction de la bibliothèque SQLite, " +"permettant de manipuler une base de données persistante, accédée et " +"manipulée en utilisant une syntaxe SQL quasi standard." + +#: ../Doc/tutorial/stdlib.rst:339 +msgid "" +"Internationalization is supported by a number of modules including :mod:" +"`gettext`, :mod:`locale`, and the :mod:`codecs` package." +msgstr "" +"L'internationalisation est possible grâce à de nombreux paquets tels que :" +"mod:`gettext`, :mod:`locale` ou :mod:`codecs`." diff --git a/tutorial/stdlib2.po b/tutorial/stdlib2.po new file mode 100644 index 000000000..97c87860a --- /dev/null +++ b/tutorial/stdlib2.po @@ -0,0 +1,460 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"PO-Revision-Date: 2019-06-18 22:06+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/tutorial/stdlib2.rst:5 +msgid "Brief Tour of the Standard Library --- Part II" +msgstr "Survol de la bibliothèque standard -- Deuxième partie" + +#: ../Doc/tutorial/stdlib2.rst:7 +msgid "" +"This second tour covers more advanced modules that support professional " +"programming needs. These modules rarely occur in small scripts." +msgstr "" +"Cette deuxième partie aborde des modules plus à destination des programmeurs " +"professionnels. Ces modules sont rarement nécessaires dans de petits scripts." + +#: ../Doc/tutorial/stdlib2.rst:14 +msgid "Output Formatting" +msgstr "Formatage de l'affichage" + +#: ../Doc/tutorial/stdlib2.rst:16 +msgid "" +"The :mod:`reprlib` module provides a version of :func:`repr` customized for " +"abbreviated displays of large or deeply nested containers::" +msgstr "" +"Le module :mod:`reprlib` est une variante de la fonction :func:`repr`, " +"spécialisé dans l'affichage concis de conteneurs volumineux ou fortement " +"imbriqués ::" + +#: ../Doc/tutorial/stdlib2.rst:23 +msgid "" +"The :mod:`pprint` module offers more sophisticated control over printing " +"both built-in and user defined objects in a way that is readable by the " +"interpreter. When the result is longer than one line, the \"pretty printer\" " +"adds line breaks and indentation to more clearly reveal data structure::" +msgstr "" +"Le module :mod:`pprint` propose un contrôle plus fin de l'affichage des " +"objets, aussi bien natifs que ceux définis par l'utilisateur, de manière à " +"être lisible par l'interpréteur. Lorsque le résultat fait plus d'une ligne, " +"il est séparé sur plusieurs lignes et est indenté pour rendre la structure " +"plus visible ::" + +#: ../Doc/tutorial/stdlib2.rst:39 +msgid "" +"The :mod:`textwrap` module formats paragraphs of text to fit a given screen " +"width::" +msgstr "" +"Le module :mod:`textwrap` formate des paragraphes de texte pour tenir sur un " +"écran d'une largeur donnée ::" + +#: ../Doc/tutorial/stdlib2.rst:53 +msgid "" +"The :mod:`locale` module accesses a database of culture specific data " +"formats. The grouping attribute of locale's format function provides a " +"direct way of formatting numbers with group separators::" +msgstr "" +"Le module :mod:`locale` utilise une base de données des formats spécifiques " +"à chaque région pour les dates, nombres, etc. L'attribut ``grouping`` de la " +"fonction de formatage permet de formater directement des nombres avec un " +"séparateur ::" + +#: ../Doc/tutorial/stdlib2.rst:72 +msgid "Templating" +msgstr "Gabarits (*templates* en anglais)" + +#: ../Doc/tutorial/stdlib2.rst:74 +msgid "" +"The :mod:`string` module includes a versatile :class:`~string.Template` " +"class with a simplified syntax suitable for editing by end-users. This " +"allows users to customize their applications without having to alter the " +"application." +msgstr "" +"Le module :mod:`string` contient une classe polyvalente : :class:`~string." +"Template`. Elle permet d'écrire des gabarits (*templates* en anglais) avec " +"une syntaxe simple, dans le but d'être utilisable par des non-développeurs. " +"Ainsi, vos utilisateurs peuvent personnaliser leur application sans la " +"modifier." + +#: ../Doc/tutorial/stdlib2.rst:78 +msgid "" +"The format uses placeholder names formed by ``$`` with valid Python " +"identifiers (alphanumeric characters and underscores). Surrounding the " +"placeholder with braces allows it to be followed by more alphanumeric " +"letters with no intervening spaces. Writing ``$$`` creates a single escaped " +"``$``::" +msgstr "" +"Le format utilise des marqueurs formés d'un ``$`` suivi d'un identifiant " +"Python valide (caractères alphanumériques et tirets-bas). Entourer le " +"marqueur d'accolades permet de lui coller d'autres caractères " +"alphanumériques sans intercaler une espace. Écrire ``$$`` produit un simple " +"``$`` ::" + +#: ../Doc/tutorial/stdlib2.rst:88 +msgid "" +"The :meth:`~string.Template.substitute` method raises a :exc:`KeyError` when " +"a placeholder is not supplied in a dictionary or a keyword argument. For " +"mail-merge style applications, user supplied data may be incomplete and the :" +"meth:`~string.Template.safe_substitute` method may be more appropriate --- " +"it will leave placeholders unchanged if data is missing::" +msgstr "" +"La méthode :meth:`~string.Template.substitute` lève une exception :exc:" +"`KeyError` lorsqu'un marqueur n'a pas été fourni, ni dans un dictionnaire, " +"ni sous forme d'un paramètre nommé. Dans certains cas, lorsque la donnée à " +"appliquer peut n'être fournie que partiellement par l'utilisateur, la " +"méthode :meth:`~string.Template.safe_substitute` est plus appropriée car " +"elle laisse tels quels les marqueurs manquants ::" + +#: ../Doc/tutorial/stdlib2.rst:103 +msgid "" +"Template subclasses can specify a custom delimiter. For example, a batch " +"renaming utility for a photo browser may elect to use percent signs for " +"placeholders such as the current date, image sequence number, or file " +"format::" +msgstr "" +"Les classes filles de ``Template`` peuvent définir leur propre délimiteur. " +"Typiquement, un script de renommage de photos par lots peut choisir le " +"symbole pourcent comme marqueur pour les champs tels que la date actuelle, " +"le numéro de l'image ou son format ::" + +#: ../Doc/tutorial/stdlib2.rst:125 +msgid "" +"Another application for templating is separating program logic from the " +"details of multiple output formats. This makes it possible to substitute " +"custom templates for XML files, plain text reports, and HTML web reports." +msgstr "" +"Une autre utilisation des gabarits consiste à séparer la logique métier des " +"détails spécifiques à chaque format de sortie. Il est ainsi possible de " +"générer des gabarits spécifiques pour les fichiers XML, texte, HTML…" + +#: ../Doc/tutorial/stdlib2.rst:133 +msgid "Working with Binary Data Record Layouts" +msgstr "Traitement des données binaires" + +#: ../Doc/tutorial/stdlib2.rst:135 +msgid "" +"The :mod:`struct` module provides :func:`~struct.pack` and :func:`~struct." +"unpack` functions for working with variable length binary record formats. " +"The following example shows how to loop through header information in a ZIP " +"file without using the :mod:`zipfile` module. Pack codes ``\"H\"`` and ``\"I" +"\"`` represent two and four byte unsigned numbers respectively. The ``\"<" +"\"`` indicates that they are standard size and in little-endian byte order::" +msgstr "" +"Le module :mod:`struct` expose les fonctions :func:`~struct.pack` et :func:" +"`~struct.unpack` permettant de travailler avec des données binaires. " +"L'exemple suivant montre comment parcourir un entête de fichier ZIP sans " +"recourir au module :mod:`zipfile`. Les marqueurs ``\"H\"`` et ``\"I\"`` " +"représentent des nombres entiers non signés, stockés respectivement sur deux " +"et quatre octets. Le ``\"<\"`` indique qu'ils ont une taille standard et " +"utilisent la convention petit-boutiste ::" + +#: ../Doc/tutorial/stdlib2.rst:166 +msgid "Multi-threading" +msgstr "Fils d'exécution" + +#: ../Doc/tutorial/stdlib2.rst:168 +msgid "" +"Threading is a technique for decoupling tasks which are not sequentially " +"dependent. Threads can be used to improve the responsiveness of " +"applications that accept user input while other tasks run in the " +"background. A related use case is running I/O in parallel with computations " +"in another thread." +msgstr "" +"Des tâches indépendantes peuvent être exécutées de manière non séquentielle " +"en utilisant des fils d'exécution (*threading* en anglais). Les fils " +"d'exécution peuvent être utilisés pour améliorer la réactivité d'une " +"application qui interagit avec l'utilisateur pendant que d'autres " +"traitements sont exécutés en arrière-plan. Une autre utilisation typique est " +"de séparer sur deux fils d'exécution distincts les entrées / sorties et le " +"calcul." + +#: ../Doc/tutorial/stdlib2.rst:173 +msgid "" +"The following code shows how the high level :mod:`threading` module can run " +"tasks in background while the main program continues to run::" +msgstr "" +"Le code suivant donne un exemple d'utilisation du module :mod:`threading` " +"exécutant des tâches en arrière-plan pendant que le programme principal " +"continue de s'exécuter ::" + +#: ../Doc/tutorial/stdlib2.rst:197 +msgid "" +"The principal challenge of multi-threaded applications is coordinating " +"threads that share data or other resources. To that end, the threading " +"module provides a number of synchronization primitives including locks, " +"events, condition variables, and semaphores." +msgstr "" +"Le principal défi des applications avec plusieurs fils d'exécution consiste " +"à coordonner ces fils qui partagent des données ou des ressources. Pour ce " +"faire, le module ``threading`` expose quelques outils dédiés à la " +"synchronisation comme les verrous (*locks* en anglais), les événements " +"(*events* en anglais), les variables conditionnelles (*condition variables* " +"en anglais) et les sémaphores (*semaphore* en anglais)." + +#: ../Doc/tutorial/stdlib2.rst:202 +msgid "" +"While those tools are powerful, minor design errors can result in problems " +"that are difficult to reproduce. So, the preferred approach to task " +"coordination is to concentrate all access to a resource in a single thread " +"and then use the :mod:`queue` module to feed that thread with requests from " +"other threads. Applications using :class:`~queue.Queue` objects for inter-" +"thread communication and coordination are easier to design, more readable, " +"and more reliable." +msgstr "" +"Bien que ces outils soient puissants, de petites erreurs de conception " +"peuvent engendrer des problèmes difficiles à reproduire. Donc, l'approche " +"classique pour coordonner des tâches est de restreindre l'accès d'une " +"ressource à un seul fil d'exécution et d'utiliser le module :mod:`queue` " +"pour alimenter ce fil d'exécution en requêtes venant d'autres fils " +"d'exécution. Les applications utilisant des :class:`~queue.Queue` pour leurs " +"communication et coordination entre fils d'exécution sont plus simples à " +"concevoir, plus lisibles et plus fiables." + +#: ../Doc/tutorial/stdlib2.rst:213 +msgid "Logging" +msgstr "Journalisation" + +#: ../Doc/tutorial/stdlib2.rst:215 +msgid "" +"The :mod:`logging` module offers a full featured and flexible logging " +"system. At its simplest, log messages are sent to a file or to ``sys." +"stderr``::" +msgstr "" +"Le module :mod:`logging` est un système de journalisation complet. Dans son " +"utilisation la plus élémentaire, les messages sont simplement envoyés dans " +"un fichier ou sur ``sys.stderr`` ::" + +#: ../Doc/tutorial/stdlib2.rst:225 +msgid "This produces the following output:" +msgstr "Cela produit l'affichage suivant :" + +#: ../Doc/tutorial/stdlib2.rst:233 +msgid "" +"By default, informational and debugging messages are suppressed and the " +"output is sent to standard error. Other output options include routing " +"messages through email, datagrams, sockets, or to an HTTP Server. New " +"filters can select different routing based on message priority: :const:" +"`~logging.DEBUG`, :const:`~logging.INFO`, :const:`~logging.WARNING`, :const:" +"`~logging.ERROR`, and :const:`~logging.CRITICAL`." +msgstr "" +"Par défaut, les messages d'information et de débogage sont ignorés, les " +"autres sont envoyés vers la sortie standard. Il est aussi possible d'envoyer " +"les messages par courriel, datagrammes, en utilisant des connecteurs réseau " +"ou vers un serveur HTTP. Des nouveaux filtres permettent d'utiliser des " +"sorties différentes en fonction de la priorité du message : :const:`~logging." +"DEBUG`, :const:`~logging.INFO`, :const:`~logging.WARNING`, :const:`~logging." +"ERROR` et :const:`~logging.CRITICAL`." + +#: ../Doc/tutorial/stdlib2.rst:240 +msgid "" +"The logging system can be configured directly from Python or can be loaded " +"from a user editable configuration file for customized logging without " +"altering the application." +msgstr "" +"La configuration de la journalisation peut être effectuée directement dans " +"le code Python ou peut être chargée depuis un fichier de configuration, " +"permettant de personnaliser la journalisation sans modifier l'application." + +#: ../Doc/tutorial/stdlib2.rst:248 +msgid "Weak References" +msgstr "Références faibles" + +#: ../Doc/tutorial/stdlib2.rst:250 +msgid "" +"Python does automatic memory management (reference counting for most objects " +"and :term:`garbage collection` to eliminate cycles). The memory is freed " +"shortly after the last reference to it has been eliminated." +msgstr "" +"Python gère lui-même la mémoire (par comptage des références pour la plupart " +"des objets et en utilisant un :term:`ramasse-miettes` (*garbage collector* " +"en anglais) pour éliminer les cycles). La mémoire est libérée rapidement " +"lorsque sa dernière référence est supprimée." + +#: ../Doc/tutorial/stdlib2.rst:254 +msgid "" +"This approach works fine for most applications but occasionally there is a " +"need to track objects only as long as they are being used by something else. " +"Unfortunately, just tracking them creates a reference that makes them " +"permanent. The :mod:`weakref` module provides tools for tracking objects " +"without creating a reference. When the object is no longer needed, it is " +"automatically removed from a weakref table and a callback is triggered for " +"weakref objects. Typical applications include caching objects that are " +"expensive to create::" +msgstr "" +"Cette approche fonctionne bien pour la majorité des applications mais, " +"parfois, il est nécessaire de surveiller un objet seulement durant son " +"utilisation par quelque chose d'autre. Malheureusement, le simple fait de le " +"suivre crée une référence qui rend l'objet permanent. Le module :mod:" +"`weakref` expose des outils pour suivre les objets sans pour autant créer " +"une référence. Lorsqu'un objet n'est pas utilisé, il est automatiquement " +"supprimé du tableau des références faibles et une fonction de rappel " +"(*callback* en anglais) est appelée. Un exemple typique est le cache " +"d'objets coûteux à créer ::" + +#: ../Doc/tutorial/stdlib2.rst:289 +msgid "Tools for Working with Lists" +msgstr "Outils pour les listes" + +#: ../Doc/tutorial/stdlib2.rst:291 +msgid "" +"Many data structure needs can be met with the built-in list type. However, " +"sometimes there is a need for alternative implementations with different " +"performance trade-offs." +msgstr "" +"Beaucoup de structures de données peuvent être représentées avec les listes " +"natives. Cependant, d'autres besoins peuvent émerger pour des structures " +"ayant des caractéristiques différentes, typiquement en termes de performance." + +#: ../Doc/tutorial/stdlib2.rst:295 +msgid "" +"The :mod:`array` module provides an :class:`~array.array()` object that is " +"like a list that stores only homogeneous data and stores it more compactly. " +"The following example shows an array of numbers stored as two byte unsigned " +"binary numbers (typecode ``\"H\"``) rather than the usual 16 bytes per entry " +"for regular lists of Python int objects::" +msgstr "" +"Le module :mod:`array` fournit un objet :class:`~array.array()` ne " +"permettant de stocker que des listes homogènes mais d'une manière plus " +"compacte. L'exemple suivant montre une liste de nombres stockés chacun sur " +"deux octets non signés (marqueur ``\"H\"``) plutôt que d'utiliser 16 octets " +"comme l'aurait fait une liste classique ::" + +#: ../Doc/tutorial/stdlib2.rst:308 +msgid "" +"The :mod:`collections` module provides a :class:`~collections.deque()` " +"object that is like a list with faster appends and pops from the left side " +"but slower lookups in the middle. These objects are well suited for " +"implementing queues and breadth first tree searches::" +msgstr "" +"Le module :mod:`collections` fournit la classe :class:`~collections." +"deque()`. Elle ressemble à une liste mais est plus rapide pour l'insertion " +"ou l'extraction des éléments par la gauche et plus lente pour accéder aux " +"éléments du milieu. Ces objets sont particulièrement adaptés pour construire " +"des queues ou des algorithmes de parcours d'arbres en largeur (ou BFS, pour " +"*Breadth First Search* en anglais) ::" + +#: ../Doc/tutorial/stdlib2.rst:329 +msgid "" +"In addition to alternative list implementations, the library also offers " +"other tools such as the :mod:`bisect` module with functions for manipulating " +"sorted lists::" +msgstr "" +"En plus de fournir des implémentations de listes alternatives, la " +"bibliothèque fournit des outils tels que :mod:`bisect`, un module contenant " +"des fonctions de manipulation de listes triées ::" + +#: ../Doc/tutorial/stdlib2.rst:339 +msgid "" +"The :mod:`heapq` module provides functions for implementing heaps based on " +"regular lists. The lowest valued entry is always kept at position zero. " +"This is useful for applications which repeatedly access the smallest element " +"but do not want to run a full list sort::" +msgstr "" +"Le module :mod:`heapq` permet d'implémenter des tas (*heap* en anglais) à " +"partir de simples listes. La valeur la plus faible est toujours à la " +"première position (indice 0). C'est utile dans les cas où l'application " +"accède souvent à l'élément le plus petit mais sans vouloir classer " +"entièrement la liste ::" + +#: ../Doc/tutorial/stdlib2.rst:355 +msgid "Decimal Floating Point Arithmetic" +msgstr "Arithmétique décimale à virgule flottante" + +#: ../Doc/tutorial/stdlib2.rst:357 +msgid "" +"The :mod:`decimal` module offers a :class:`~decimal.Decimal` datatype for " +"decimal floating point arithmetic. Compared to the built-in :class:`float` " +"implementation of binary floating point, the class is especially helpful for" +msgstr "" +"Le module :mod:`decimal` exporte la classe :class:`~decimal.Decimal` : elle " +"est spécialisée dans le calcul de nombres décimaux représentés en virgule " +"flottante. Par rapport à la classe native :class:`float`, elle est " +"particulièrement utile pour :" + +#: ../Doc/tutorial/stdlib2.rst:361 +msgid "" +"financial applications and other uses which require exact decimal " +"representation," +msgstr "" +"les applications traitant de finance et autres utilisations nécessitant une " +"représentation décimale exacte," + +#: ../Doc/tutorial/stdlib2.rst:363 +msgid "control over precision," +msgstr "le contrôle de la précision," + +#: ../Doc/tutorial/stdlib2.rst:364 +msgid "control over rounding to meet legal or regulatory requirements," +msgstr "" +"le contrôle sur les arrondis pour répondre à des obligations légales ou " +"réglementaires," + +#: ../Doc/tutorial/stdlib2.rst:365 +msgid "tracking of significant decimal places, or" +msgstr "suivre les décimales significatives, ou" + +#: ../Doc/tutorial/stdlib2.rst:366 +msgid "" +"applications where the user expects the results to match calculations done " +"by hand." +msgstr "" +"les applications pour lesquelles l'utilisateur attend des résultats " +"identiques aux calculs faits à la main." + +#: ../Doc/tutorial/stdlib2.rst:369 +msgid "" +"For example, calculating a 5% tax on a 70 cent phone charge gives different " +"results in decimal floating point and binary floating point. The difference " +"becomes significant if the results are rounded to the nearest cent::" +msgstr "" +"Par exemple, calculer 5 % de taxe sur une facture de 70 centimes donne un " +"résultat différent en nombre à virgule flottante binaire et décimale. La " +"différence devient significative lorsqu'on arrondit le résultat au centime " +"près ::" + +#: ../Doc/tutorial/stdlib2.rst:379 +msgid "" +"The :class:`~decimal.Decimal` result keeps a trailing zero, automatically " +"inferring four place significance from multiplicands with two place " +"significance. Decimal reproduces mathematics as done by hand and avoids " +"issues that can arise when binary floating point cannot exactly represent " +"decimal quantities." +msgstr "" +"Le résultat d'un calcul donné par :class:`~decimal.Decimal` conserve les " +"zéros non-significatifs. La classe conserve automatiquement quatre décimales " +"significatives pour des opérandes à deux décimales significatives. La classe " +"``Decimal`` imite les mathématiques telles qu'elles pourraient être " +"effectuées à la main, évitant les problèmes typiques de l'arithmétique " +"binaire à virgule flottante qui n'est pas capable de représenter exactement " +"certaines quantités décimales." + +#: ../Doc/tutorial/stdlib2.rst:385 +msgid "" +"Exact representation enables the :class:`~decimal.Decimal` class to perform " +"modulo calculations and equality tests that are unsuitable for binary " +"floating point::" +msgstr "" +"La représentation exacte de la classe :class:`~decimal.Decimal` lui permet " +"de faire des calculs de modulo ou des tests d'égalité qui ne seraient pas " +"possibles avec une représentation à virgule flottante binaire ::" + +#: ../Doc/tutorial/stdlib2.rst:399 +msgid "" +"The :mod:`decimal` module provides arithmetic with as much precision as " +"needed::" +msgstr "" +"Le module :mod:`decimal` permet de faire des calculs avec autant de " +"précision que nécessaire ::" diff --git a/tutorial/venv.po b/tutorial/venv.po new file mode 100644 index 000000000..ae5ee54e6 --- /dev/null +++ b/tutorial/venv.po @@ -0,0 +1,258 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: 2018-07-31 23:45+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/tutorial/venv.rst:6 +msgid "Virtual Environments and Packages" +msgstr "Environnements virtuels et paquets" + +#: ../Doc/tutorial/venv.rst:9 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/tutorial/venv.rst:11 +msgid "" +"Python applications will often use packages and modules that don't come as " +"part of the standard library. Applications will sometimes need a specific " +"version of a library, because the application may require that a particular " +"bug has been fixed or the application may be written using an obsolete " +"version of the library's interface." +msgstr "" +"Les programmes Python utilisent souvent des paquets et modules qui ne font " +"pas partie de la bibliothèque standard. Ils nécessitent aussi, parfois, une " +"version spécifique d'une bibliothèque, par exemple parce qu'un certain bug a " +"été corrigé ou encore que le programme a été implémenté en utilisant une " +"version obsolète de l'interface de cette bibliothèque." + +#: ../Doc/tutorial/venv.rst:17 +msgid "" +"This means it may not be possible for one Python installation to meet the " +"requirements of every application. If application A needs version 1.0 of a " +"particular module but application B needs version 2.0, then the requirements " +"are in conflict and installing either version 1.0 or 2.0 will leave one " +"application unable to run." +msgstr "" +"Cela signifie qu'il n'est pas toujours possible, pour une installation " +"unique de Python, de couvrir tous les besoins de toutes les applications. " +"Basiquement, si une application A dépend de la version 1.0 d'un module et " +"qu'une application B dépend de la version 2.0, ces dépendances entrent en " +"conflit et installer la version 1.0 ou 2.0 laisse une des deux applications " +"incapable de fonctionner." + +#: ../Doc/tutorial/venv.rst:23 +msgid "" +"The solution for this problem is to create a :term:`virtual environment`, a " +"self-contained directory tree that contains a Python installation for a " +"particular version of Python, plus a number of additional packages." +msgstr "" +"La solution est de créer un :term:`environnement virtuel`, un dossier auto-" +"suffisant qui contient une installation de Python pour une version " +"particulière de Python ainsi que des paquets additionnels." + +#: ../Doc/tutorial/venv.rst:27 +msgid "" +"Different applications can then use different virtual environments. To " +"resolve the earlier example of conflicting requirements, application A can " +"have its own virtual environment with version 1.0 installed while " +"application B has another virtual environment with version 2.0. If " +"application B requires a library be upgraded to version 3.0, this will not " +"affect application A's environment." +msgstr "" +"Différentes applications peuvent alors utiliser des environnements virtuels " +"différents. Pour résoudre l'exemple précédent où il existe un conflit de " +"dépendances, l'application A a son environnement virtuel avec la version 1.0 " +"installée pendant que l'application B a un autre environnement virtuel avec " +"la version 2.0. Si l'application B requiert que la bibliothèque soit mise à " +"jour à la version 3.0, cela n'affecte pas l'environnement de A." + +#: ../Doc/tutorial/venv.rst:36 +msgid "Creating Virtual Environments" +msgstr "Création d'environnements virtuels" + +#: ../Doc/tutorial/venv.rst:38 +msgid "" +"The module used to create and manage virtual environments is called :mod:" +"`venv`. :mod:`venv` will usually install the most recent version of Python " +"that you have available. If you have multiple versions of Python on your " +"system, you can select a specific Python version by running ``python3`` or " +"whichever version you want." +msgstr "" +"Le module utilisé pour créer et gérer des environnements virtuels s'appelle :" +"mod:`venv`. :mod:`venv` installe en général la version de Python la plus " +"récente dont vous disposez. Si plusieurs versions de Python sont sur votre " +"système, vous pouvez choisir une version particulière en exécutant ``python3." +"X`` où X indique la version de votre choix." + +#: ../Doc/tutorial/venv.rst:44 +msgid "" +"To create a virtual environment, decide upon a directory where you want to " +"place it, and run the :mod:`venv` module as a script with the directory " +"path::" +msgstr "" +"Pour créer un environnement virtuel, décidez d'un dossier où vous voulez le " +"placer et exécutez le module :mod:`venv` comme un script avec le chemin du " +"dossier ::" + +#: ../Doc/tutorial/venv.rst:49 +msgid "" +"This will create the ``tutorial-env`` directory if it doesn't exist, and " +"also create directories inside it containing a copy of the Python " +"interpreter, the standard library, and various supporting files." +msgstr "" +"Cela crée le dossier ``tutorial-env`` (s'il n'existe pas) et des sous-" +"dossiers contenant une copie de l'interpréteur Python, de la bibliothèque " +"standard et quelques autres fichiers utiles." + +#: ../Doc/tutorial/venv.rst:53 +msgid "Once you've created a virtual environment, you may activate it." +msgstr "Une fois l'environnement virtuel créé, vous pouvez l'activer." + +#: ../Doc/tutorial/venv.rst:55 +msgid "On Windows, run::" +msgstr "Sur Windows, lancez ::" + +#: ../Doc/tutorial/venv.rst:59 +msgid "On Unix or MacOS, run::" +msgstr "Sur Unix et MacOS, lancez ::" + +#: ../Doc/tutorial/venv.rst:63 +msgid "" +"(This script is written for the bash shell. If you use the :program:`csh` " +"or :program:`fish` shells, there are alternate ``activate.csh`` and " +"``activate.fish`` scripts you should use instead.)" +msgstr "" +"(Ce script est écrit pour le shell :program:`bash`. Si vous utilisez :" +"program:`csh` ou :program:`fish`, utilisez les variantes ``activate.csh`` ou " +"``activate.fish``.)" + +#: ../Doc/tutorial/venv.rst:68 +msgid "" +"Activating the virtual environment will change your shell's prompt to show " +"what virtual environment you're using, and modify the environment so that " +"running ``python`` will get you that particular version and installation of " +"Python. For example:" +msgstr "" +"Activer l'environnement virtuel change le prompt de votre ligne de commande " +"pour afficher le nom de l'environnement virtuel que vous utilisez. Cela " +"modifie aussi l'environnement afin, lorsque vous tapez ``python``, " +"d'exécuter la version spécifique de Python installée dans l'environnement. " +"Par exemple ::" + +#: ../Doc/tutorial/venv.rst:87 +msgid "Managing Packages with pip" +msgstr "Gestion des paquets avec *pip*" + +#: ../Doc/tutorial/venv.rst:89 +msgid "" +"You can install, upgrade, and remove packages using a program called :" +"program:`pip`. By default ``pip`` will install packages from the Python " +"Package Index, . You can browse the Python Package Index " +"by going to it in your web browser, or you can use ``pip``'s limited search " +"feature:" +msgstr "" +"Vous pouvez installer, mettre à jour et supprimer des paquets en utilisant " +"un programme appelé :program:`pip`. Par défaut, ``pip`` installe les paquets " +"du Python Package Index, . Vous pouvez parcourir le Python " +"Package Index avec un navigateur ou utiliser la fonction de recherche " +"(assez) limitée de ``pip`` ::" + +#: ../Doc/tutorial/venv.rst:105 +msgid "" +"``pip`` has a number of subcommands: \"search\", \"install\", \"uninstall\", " +"\"freeze\", etc. (Consult the :ref:`installing-index` guide for complete " +"documentation for ``pip``.)" +msgstr "" +"``pip`` a plusieurs sous-commandes : ``search``, ``install``, ``uninstall``, " +"``freeze``, etc. Consultez le guide :ref:`installing-index` pour une " +"documentation exhaustive sur ``pip``." + +#: ../Doc/tutorial/venv.rst:109 +msgid "" +"You can install the latest version of a package by specifying a package's " +"name:" +msgstr "" +"Vous pouvez installer la dernière version d'un paquet en indiquant son nom ::" + +#: ../Doc/tutorial/venv.rst:120 +msgid "" +"You can also install a specific version of a package by giving the package " +"name followed by ``==`` and the version number:" +msgstr "" +"Vous pouvez installer une version spécifique d'un paquet en donnant le nom " +"du paquet suivi de ``==`` et du numéro de version souhaitée ::" + +#: ../Doc/tutorial/venv.rst:131 +msgid "" +"If you re-run this command, ``pip`` will notice that the requested version " +"is already installed and do nothing. You can supply a different version " +"number to get that version, or you can run ``pip install --upgrade`` to " +"upgrade the package to the latest version:" +msgstr "" +"Si vous relancez cette commande, ``pip`` remarque que la version demandée " +"est déjà installée et ne fait rien. Vous pouvez fournir un numéro de version " +"différent pour récupérer cette version ou lancer ``pip install --upgrade`` " +"pour mettre à jour le paquet à la dernière version ::" + +#: ../Doc/tutorial/venv.rst:146 +msgid "" +"``pip uninstall`` followed by one or more package names will remove the " +"packages from the virtual environment." +msgstr "" +"``pip uninstall`` suivi d'un ou plusieurs noms de paquets les supprime de " +"votre environnement virtuel." + +#: ../Doc/tutorial/venv.rst:149 +msgid "``pip show`` will display information about a particular package:" +msgstr "``pip show`` affiche des informations à propos d'un paquet précis :" + +#: ../Doc/tutorial/venv.rst:166 +msgid "" +"``pip list`` will display all of the packages installed in the virtual " +"environment:" +msgstr "" +"``pip list`` liste tous les paquets installés dans l'environnement virtuel ::" + +#: ../Doc/tutorial/venv.rst:178 +msgid "" +"``pip freeze`` will produce a similar list of the installed packages, but " +"the output uses the format that ``pip install`` expects. A common convention " +"is to put this list in a ``requirements.txt`` file:" +msgstr "" +"``pip freeze`` produit une liste similaire des paquets installés mais " +"l'affichage adopte un format que ``pip install`` peut lire. La convention " +"habituelle est de mettre cette liste dans un fichier ``requirements.txt`` :" + +#: ../Doc/tutorial/venv.rst:190 +msgid "" +"The ``requirements.txt`` can then be committed to version control and " +"shipped as part of an application. Users can then install all the necessary " +"packages with ``install -r``:" +msgstr "" +"Le fichier ``requirements.txt`` peut alors être ajouté dans un système de " +"gestion de versions comme faisant partie de votre application. Les " +"utilisateurs peuvent alors installer tous les paquets nécessaires à " +"l'application avec ``install -r`` :" + +#: ../Doc/tutorial/venv.rst:207 +msgid "" +"``pip`` has many more options. Consult the :ref:`installing-index` guide " +"for complete documentation for ``pip``. When you've written a package and " +"want to make it available on the Python Package Index, consult the :ref:" +"`distributing-index` guide." +msgstr "" +"``pip`` reconnait beaucoup d'autres options, documentées dans le guide :ref:" +"`installing-index`. Lorsque vous avez écrit un paquet, si vous voulez le " +"rendre disponible sur PyPI, lisez le guide :ref:`distributing-index`." diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po new file mode 100644 index 000000000..a056d0736 --- /dev/null +++ b/tutorial/whatnow.po @@ -0,0 +1,197 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-05-23 23:43+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" + +#: ../Doc/tutorial/whatnow.rst:5 +msgid "What Now?" +msgstr "Pour aller plus loin" + +#: ../Doc/tutorial/whatnow.rst:7 +msgid "" +"Reading this tutorial has probably reinforced your interest in using Python " +"--- you should be eager to apply Python to solving your real-world problems. " +"Where should you go to learn more?" +msgstr "" +"La lecture de ce tutoriel a probablement renforcé votre intérêt pour Python " +"et vous devez être impatient de l'utiliser pour résoudre des vrais " +"problèmes. Où aller pour en apprendre plus ?" + +#: ../Doc/tutorial/whatnow.rst:11 +msgid "" +"This tutorial is part of Python's documentation set. Some other documents " +"in the set are:" +msgstr "" +"Ce tutoriel fait partie de la documentation de Python, et la documentation " +"de Python est vaste ::" + +#: ../Doc/tutorial/whatnow.rst:14 +msgid ":ref:`library-index`:" +msgstr ":ref:`library-index` :" + +#: ../Doc/tutorial/whatnow.rst:16 +msgid "" +"You should browse through this manual, which gives complete (though terse) " +"reference material about types, functions, and the modules in the standard " +"library. The standard Python distribution includes a *lot* of additional " +"code. There are modules to read Unix mailboxes, retrieve documents via HTTP, " +"generate random numbers, parse command-line options, write CGI programs, " +"compress data, and many other tasks. Skimming through the Library Reference " +"will give you an idea of what's available." +msgstr "" +"Nous vous conseillons de naviguer dans le manuel, c'est une référence " +"complète (quoique laconique) sur les types, fonctions et modules de la " +"bibliothèque standard. La distribution standard de Python inclut " +"*énormément* de code supplémentaire. Il existe des modules pour lire les " +"courriels, récupérer des documents *via* HTTP, générer des nombres " +"aléatoires, analyser les paramètres de la ligne de commande, écrire des " +"programmes CGI, compresser des données et beaucoup d'autres fonctions. Une " +"balade dans la documentation de la bibliothèque vous donnera une idée de ce " +"qui est disponible." + +#: ../Doc/tutorial/whatnow.rst:24 +msgid "" +":ref:`installing-index` explains how to install additional modules written " +"by other Python users." +msgstr "" +":ref:`installing-index` explique comment installer des paquets écrits par " +"d'autres utilisateurs de Python." + +#: ../Doc/tutorial/whatnow.rst:27 +msgid "" +":ref:`reference-index`: A detailed explanation of Python's syntax and " +"semantics. It's heavy reading, but is useful as a complete guide to the " +"language itself." +msgstr "" +":ref:`reference-index` contient une explication détaillée de la syntaxe et " +"sémantique de Python. C'est une lecture fastidieuse, mais elle a sa place " +"dans une documentation exhaustive." + +#: ../Doc/tutorial/whatnow.rst:31 +msgid "More Python resources:" +msgstr "D'autres ressources :" + +#: ../Doc/tutorial/whatnow.rst:33 +msgid "" +"https://www.python.org: The major Python Web site. It contains code, " +"documentation, and pointers to Python-related pages around the Web. This " +"Web site is mirrored in various places around the world, such as Europe, " +"Japan, and Australia; a mirror may be faster than the main site, depending " +"on your geographical location." +msgstr "" +"https://www.python.org est le site principal pour Python. Il contient du " +"code, de la documentation, des liens vers d'autres sites traitant de Python " +"partout sur Internet. Il est répliqué dans différents endroits autour du " +"globe, comme en Europe, au Japon et en Australie. Ces répliques peuvent dans " +"certains cas être plus rapides que le site principal, en fonction de " +"l'endroit où vous vous trouvez." + +#: ../Doc/tutorial/whatnow.rst:39 +msgid "https://docs.python.org: Fast access to Python's documentation." +msgstr "" +"https://docs.python.org/fr/ offre un accès rapide à la documentation de " +"Python en français." + +#: ../Doc/tutorial/whatnow.rst:41 +msgid "" +"https://pypi.org: The Python Package Index, previously also nicknamed the " +"Cheese Shop [#]_, is an index of user-created Python modules that are " +"available for download. Once you begin releasing code, you can register it " +"here so that others can find it." +msgstr "" +"https://pypi.org (*The Python Package Index* en anglais, pour le " +"\"répertoire des paquets Python\") : auparavant surnommé \"La Fromagerie" +"\" [#]_ (*The Cheese Shop* en anglais), c'est un catalogue de modules Python " +"disponibles au téléchargement, construit par les utilisateurs. Lorsque vous " +"commencez à distribuer du code, vous pouvez l'inscrire ici afin que les " +"autres puissent le trouver." + +#: ../Doc/tutorial/whatnow.rst:46 +msgid "" +"https://code.activestate.com/recipes/langs/python/: The Python Cookbook is a " +"sizable collection of code examples, larger modules, and useful scripts. " +"Particularly notable contributions are collected in a book also titled " +"Python Cookbook (O'Reilly & Associates, ISBN 0-596-00797-3.)" +msgstr "" +"https://code.activestate.com/recipes/langs/python/ : \"The Python Cookbook\" " +"est un recueil assez imposant d'exemples de code, de modules et de scripts. " +"Les contributions les plus remarquables y sont regroupées dans le livre " +"\"Python Cookbook\" (O'Reilly & Associates, ISBN 0-596-00797-3)." + +#: ../Doc/tutorial/whatnow.rst:51 +msgid "" +"http://www.pyvideo.org collects links to Python-related videos from " +"conferences and user-group meetings." +msgstr "" +"http://www.pyvideo.org regroupe des liens vers des vidéos relatives à " +"Python, enregistrées lors de conférences ou de réunions de groupes " +"d'utilisateurs." + +#: ../Doc/tutorial/whatnow.rst:54 +msgid "" +"https://scipy.org: The Scientific Python project includes modules for fast " +"array computations and manipulations plus a host of packages for such things " +"as linear algebra, Fourier transforms, non-linear solvers, random number " +"distributions, statistical analysis and the like." +msgstr "" +"https://scipy.org : le projet \"The Scientific Python\" contient des modules " +"pour manipuler et calculer rapidement sur des tableaux. Le projet héberge " +"aussi divers paquets sur l'algèbre linéaire, les transformées de Fourier, " +"des résolveurs non-linéaires, différentes distributions de nombres " +"aléatoires, l'analyse statistique et d'autres choses du domaine scientifique." + +#: ../Doc/tutorial/whatnow.rst:59 +msgid "" +"For Python-related questions and problem reports, you can post to the " +"newsgroup :newsgroup:`comp.lang.python`, or send them to the mailing list at " +"python-list@python.org. The newsgroup and mailing list are gatewayed, so " +"messages posted to one will automatically be forwarded to the other. There " +"are hundreds of postings a day, asking (and answering) questions, suggesting " +"new features, and announcing new modules. Mailing list archives are " +"available at https://mail.python.org/pipermail/." +msgstr "" +"Pour poser des questions ou remonter des problèmes liés à Python, vous " +"pouvez écrire sur le forum :newsgroup:`comp.lang.python` ou les envoyer à la " +"liste de diffusion . Le forum et la liste de " +"diffusion sont liées, un message publié sur l'un sera automatiquement " +"transféré sur l'autre. Des centaines de messages y sont publiés chaque jour, " +"posant (ou répondant à) des questions, suggérant de nouvelles " +"fonctionnalités et annonçant des nouveaux modules. Les archives sont " +"disponibles à https://mail.python.org/pipermail/." + +#: ../Doc/tutorial/whatnow.rst:67 +msgid "" +"Before posting, be sure to check the list of :ref:`Frequently Asked " +"Questions ` (also called the FAQ). The FAQ answers many of the " +"questions that come up again and again, and may already contain the solution " +"for your problem." +msgstr "" +"Avant de publier un message, assurez-vous d'avoir lu la liste de la :ref:" +"`Foire Aux Questions ` (aussi appelée FAQ). La FAQ répond à " +"beaucoup de questions fréquentes et contient probablement une solution à " +"votre problème." + +#: ../Doc/tutorial/whatnow.rst:73 +msgid "Footnotes" +msgstr "Notes" + +#: ../Doc/tutorial/whatnow.rst:74 +msgid "" +"\"Cheese Shop\" is a Monty Python's sketch: a customer enters a cheese shop, " +"but whatever cheese he asks for, the clerk says it's missing." +msgstr "" +"« Cheese Shop » est un sketch de Monty Python : un client entre dans une " +"fromagerie, mais peu importe le fromage que demande le client, le vendeur " +"dit qu’il n’en a pas." diff --git a/using/cmdline.po b/using/cmdline.po new file mode 100644 index 000000000..b16856cae --- /dev/null +++ b/using/cmdline.po @@ -0,0 +1,1776 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2019-03-19 23:22+0100\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/using/cmdline.rst:9 +msgid "Command line and environment" +msgstr "Ligne de commande et environnement" + +#: ../Doc/using/cmdline.rst:11 +msgid "" +"The CPython interpreter scans the command line and the environment for " +"various settings." +msgstr "" +"L'interpréteur CPython analyse la ligne de commande et l'environnement à la " +"recherche de différents paramètres." + +#: ../Doc/using/cmdline.rst:16 +msgid "" +"Other implementations' command line schemes may differ. See :ref:" +"`implementations` for further resources." +msgstr "" +"Le format des lignes de commande utilisé par d'autres implémentations peut " +"s'avérer différent. Voir :ref:`implementations` pour plus d'informations." + +#: ../Doc/using/cmdline.rst:23 +msgid "Command line" +msgstr "Ligne de commande" + +#: ../Doc/using/cmdline.rst:25 +msgid "When invoking Python, you may specify any of these options::" +msgstr "" +"Quand vous invoquez Python, vous pouvez spécifier n’importe laquelle de ces " +"options ::" + +#: ../Doc/using/cmdline.rst:29 +msgid "" +"The most common use case is, of course, a simple invocation of a script::" +msgstr "" +"Le cas d'utilisation le plus courant est, bien entendu, la simple invocation " +"d'un script ::" + +#: ../Doc/using/cmdline.rst:37 +msgid "Interface options" +msgstr "Options de l'interface" + +#: ../Doc/using/cmdline.rst:39 +msgid "" +"The interpreter interface resembles that of the UNIX shell, but provides " +"some additional methods of invocation:" +msgstr "" +"L'interface de l’interpréteur ressemble à celle du shell UNIX mais fournit " +"quelques méthodes d'invocation supplémentaires :" + +#: ../Doc/using/cmdline.rst:42 +msgid "" +"When called with standard input connected to a tty device, it prompts for " +"commands and executes them until an EOF (an end-of-file character, you can " +"produce that with :kbd:`Ctrl-D` on UNIX or :kbd:`Ctrl-Z, Enter` on Windows) " +"is read." +msgstr "" +"Quand l'interpréteur est appelé avec l'entrée standard connectée à un " +"périphérique tty, il lit les lignes de commande et les exécute jusqu'à ce " +"qu'un caractère EOF (caractère fin de fichier, que vous pouvez produire " +"avec :kbd:`Ctrl-D` sous UNIX ou :kbd:`Ctrl-Z, Enter` sous Windows) soit lu." + +#: ../Doc/using/cmdline.rst:45 +msgid "" +"When called with a file name argument or with a file as standard input, it " +"reads and executes a script from that file." +msgstr "" +"Quand l'interpréteur est appelé avec un argument correspondant à un nom de " +"fichier ou avec un fichier comme entrée standard, il lit et exécute le " +"script contenu dans ce fichier." + +#: ../Doc/using/cmdline.rst:47 +msgid "" +"When called with a directory name argument, it reads and executes an " +"appropriately named script from that directory." +msgstr "" +"Quand l'interpréteur est appelé avec un argument correspondant à un " +"répertoire, il lit et exécute un script d’un certain nom dans ce répertoire." + +#: ../Doc/using/cmdline.rst:49 +msgid "" +"When called with ``-c command``, it executes the Python statement(s) given " +"as *command*. Here *command* may contain multiple statements separated by " +"newlines. Leading whitespace is significant in Python statements!" +msgstr "" +"Quand l'interpréteur est appelé avec l'option ``-c commande``, il exécute la " +"ou les instructions Python données comme *commande*. Ici *commande* peut " +"contenir plusieurs instructions séparées par des fins de ligne. Les blancs " +"en début de ligne ne sont pas ignorés dans les instructions Python !" + +#: ../Doc/using/cmdline.rst:52 +msgid "" +"When called with ``-m module-name``, the given module is located on the " +"Python module path and executed as a script." +msgstr "" +"Quand l'interpréteur est appelé avec l'option ``-m nom-de-module``, le " +"module donné est recherché dans le chemin des modules Python et est exécuté " +"en tant que script." + +#: ../Doc/using/cmdline.rst:55 +msgid "" +"In non-interactive mode, the entire input is parsed before it is executed." +msgstr "" +"En mode non-interactif, toute l’entrée est analysée avant d’être exécutée." + +#: ../Doc/using/cmdline.rst:57 +msgid "" +"An interface option terminates the list of options consumed by the " +"interpreter, all consecutive arguments will end up in :data:`sys.argv` -- " +"note that the first element, subscript zero (``sys.argv[0]``), is a string " +"reflecting the program's source." +msgstr "" +"Une option d'interface termine la liste des options consommées par " +"l'interpréteur ; tous les arguments atterrissent dans :data:`sys.argv` " +"— notez que le premier élément, à l'indice zéro (``sys.argv|0]``), est une " +"chaîne de caractères indiquant la source du programme." + +#: ../Doc/using/cmdline.rst:64 +msgid "" +"Execute the Python code in *command*. *command* can be one or more " +"statements separated by newlines, with significant leading whitespace as in " +"normal module code." +msgstr "" +"Exécute le code Python dans *command*. *command* peut être une ou plusieurs " +"instructions, séparées par des fins de ligne, dont les espaces en début de " +"ligne sont significatives, comme dans le code d’un module." + +#: ../Doc/using/cmdline.rst:68 +msgid "" +"If this option is given, the first element of :data:`sys.argv` will be ``\"-c" +"\"`` and the current directory will be added to the start of :data:`sys." +"path` (allowing modules in that directory to be imported as top level " +"modules)." +msgstr "" +"Si cette option est donnée, le premier élément de :data:`sys.argv` est ``\"-c" +"\"`` et le répertoire courant est ajouté au début de :data:`sys.path` " +"(permettant aux modules de ce répertoire d'être importés comme des modules " +"de premier niveau)." + +#: ../Doc/using/cmdline.rst:76 +msgid "" +"Search :data:`sys.path` for the named module and execute its contents as " +"the :mod:`__main__` module." +msgstr "" +"Parcourt :data:`sys.path` à la recherche du module donné et exécute son " +"contenu en tant que module :mod:`__main__`." + +#: ../Doc/using/cmdline.rst:79 +msgid "" +"Since the argument is a *module* name, you must not give a file extension " +"(``.py``). The module name should be a valid absolute Python module name, " +"but the implementation may not always enforce this (e.g. it may allow you to " +"use a name that includes a hyphen)." +msgstr "" +"L'argument étant un nom de *module*, vous ne devez pas fournir d’extension " +"de fichier (``.py``). Le nom du module doit être un nom de module Python " +"valide, absolu, mais l'implémentation peut ne pas l'imposer (par exemple, " +"l'utilisation d'un trait d'union peut être autorisée)." + +#: ../Doc/using/cmdline.rst:84 +msgid "" +"Package names (including namespace packages) are also permitted. When a " +"package name is supplied instead of a normal module, the interpreter will " +"execute ``.__main__`` as the main module. This behaviour is " +"deliberately similar to the handling of directories and zipfiles that are " +"passed to the interpreter as the script argument." +msgstr "" +"Les noms de paquets sont aussi autorisés (ainsi que les paquets-espace de " +"nommage, *namespace packages* en anglais). Quand un nom de paquet est donné " +"à la place d'un simple module, l'interpréteur exécute ``.__main__`` " +"comme module principal. Ce comportement est délibérément identique au " +"traitement d'un dossier ou d'un fichier zip donné en argument à " +"l'interpréteur comme script." + +#: ../Doc/using/cmdline.rst:93 +msgid "" +"This option cannot be used with built-in modules and extension modules " +"written in C, since they do not have Python module files. However, it can " +"still be used for precompiled modules, even if the original source file is " +"not available." +msgstr "" +"Cette option ne peut pas être utilisée avec les modules natifs et les " +"modules d'extension écrits en C, étant donné qu'ils ne possèdent pas de " +"fichiers modules en Python. Cependant, elle peut toujours être utilisée pour " +"les modules pré-compilés, même si le fichier source original n'est pas " +"disponible." + +#: ../Doc/using/cmdline.rst:98 +msgid "" +"If this option is given, the first element of :data:`sys.argv` will be the " +"full path to the module file (while the module file is being located, the " +"first element will be set to ``\"-m\"``). As with the :option:`-c` option, " +"the current directory will be added to the start of :data:`sys.path`." +msgstr "" +"Si cette option est donnée, le premier élément de :data:`sys.argv` est le " +"chemin complet d'accès au fichier du module (pendant que le fichier est " +"recherché, le premier élément est mis à ``\"-m\"``). Comme avec l'option :" +"option:`-c`, le dossier courant est ajouté au début de :data:`sys.path`." + +#: ../Doc/using/cmdline.rst:103 +msgid "" +"Many standard library modules contain code that is invoked on their " +"execution as a script. An example is the :mod:`timeit` module::" +msgstr "" +"De nombreux modules de la bibliothèque standard contiennent du code qui est " +"invoqué quand ils sont exécutés comme scripts. Un exemple est le module :mod:" +"`timeit`\\ ::" + +#: ../Doc/using/cmdline.rst:111 +msgid ":func:`runpy.run_module`" +msgstr ":func:`runpy.run_module`" + +#: ../Doc/using/cmdline.rst:111 ../Doc/using/cmdline.rst:153 +msgid "Equivalent functionality directly available to Python code" +msgstr "Fonctionnalité équivalente directement disponible en code Python" + +#: ../Doc/using/cmdline.rst:113 +msgid ":pep:`338` -- Executing modules as scripts" +msgstr ":pep:`338` -- Exécuter des modules en tant que scripts" + +#: ../Doc/using/cmdline.rst:116 +msgid "Supply the package name to run a ``__main__`` submodule." +msgstr "Fournir le nom d'un paquet pour exécuter un sous-module ``__main__``." + +#: ../Doc/using/cmdline.rst:119 +msgid "namespace packages are also supported" +msgstr "les paquets-espaces de nommage sont aussi gérés" + +#: ../Doc/using/cmdline.rst:125 +msgid "" +"Read commands from standard input (:data:`sys.stdin`). If standard input is " +"a terminal, :option:`-i` is implied." +msgstr "" +"Lit les commandes depuis l'entrée standard (:data:`sys.stdin`). Si l'entrée " +"standard est un terminal, l'option :option:`-i` est activée implicitement." + +#: ../Doc/using/cmdline.rst:128 +msgid "" +"If this option is given, the first element of :data:`sys.argv` will be ``\"-" +"\"`` and the current directory will be added to the start of :data:`sys." +"path`." +msgstr "" +"Si cette option est donnée, le premier élément de :data:`sys.argv` est ``\"-" +"\"`` et le dossier courant est ajouté au début de :data:`sys.path`." + +#: ../Doc/using/cmdline.rst:135 +msgid "" +"Execute the Python code contained in *script*, which must be a filesystem " +"path (absolute or relative) referring to either a Python file, a directory " +"containing a ``__main__.py`` file, or a zipfile containing a ``__main__.py`` " +"file." +msgstr "" +"Exécute le code Python contenu dans *script*, qui doit être un chemin " +"d'accès (absolu ou relatif) à un fichier, faisant référence à un fichier " +"Python, à un répertoire contenant un fichier ``__main__.py`` ou à un fichier " +"zip contenant un fichier ``__main__.py``." + +#: ../Doc/using/cmdline.rst:140 +msgid "" +"If this option is given, the first element of :data:`sys.argv` will be the " +"script name as given on the command line." +msgstr "" +"Si cette option est donnée, le premier élément de :data:`sys.argv` est le " +"nom du script tel que donné sur la ligne de commande." + +#: ../Doc/using/cmdline.rst:143 +msgid "" +"If the script name refers directly to a Python file, the directory " +"containing that file is added to the start of :data:`sys.path`, and the file " +"is executed as the :mod:`__main__` module." +msgstr "" +"Si le nom du script se réfère directement à un fichier Python, le répertoire " +"contenant ce fichier est ajouté au début de :data:`sys.path` et le fichier " +"est exécuté en tant que module :mod:`__main__`." + +#: ../Doc/using/cmdline.rst:147 +msgid "" +"If the script name refers to a directory or zipfile, the script name is " +"added to the start of :data:`sys.path` and the ``__main__.py`` file in that " +"location is executed as the :mod:`__main__` module." +msgstr "" +"Si le nom du script fait référence à un dossier ou à un fichier zip, le nom " +"du script est ajouté au début de :data:`sys.path` et le fichier ``__main__." +"py`` à cet endroit est exécuté en tant que module :mod:`__main__`." + +#: ../Doc/using/cmdline.rst:152 +msgid ":func:`runpy.run_path`" +msgstr ":func:`runpy.run_path`" + +#: ../Doc/using/cmdline.rst:156 +msgid "" +"If no interface option is given, :option:`-i` is implied, ``sys.argv[0]`` is " +"an empty string (``\"\"``) and the current directory will be added to the " +"start of :data:`sys.path`. Also, tab-completion and history editing is " +"automatically enabled, if available on your platform (see :ref:`rlcompleter-" +"config`)." +msgstr "" +"Si aucune option d'interface n'est donnée, l'option :option:`-i` est activée " +"implicitement, ``sys.argv[0]`` est une chaine vide (``\"\"``) et le dossier " +"courant est ajouté au début de :data:`sys.path`. Aussi, la complétion par " +"tabulation et l'édition de l'historique sont automatiquement activés, s'ils " +"sont disponibles sur votre système (voir :ref:`rlcompleter-config`)." + +#: ../Doc/using/cmdline.rst:162 +msgid ":ref:`tut-invoking`" +msgstr ":ref:`tut-invoking`" + +#: ../Doc/using/cmdline.rst:164 +msgid "Automatic enabling of tab-completion and history editing." +msgstr "" +"Activation automatique de la complétion par tabulation et édition de " +"l'historique." + +#: ../Doc/using/cmdline.rst:169 +msgid "Generic options" +msgstr "Options génériques" + +#: ../Doc/using/cmdline.rst:175 +msgid "Print a short description of all command line options." +msgstr "" +"Affiche une brève description de toutes les options de la ligne de commande." + +#: ../Doc/using/cmdline.rst:181 +msgid "Print the Python version number and exit. Example output could be:" +msgstr "Affiche la version de Python et termine. Par exemple :" + +#: ../Doc/using/cmdline.rst:187 +msgid "When given twice, print more information about the build, like:" +msgstr "" +"Lorsque l'option est doublée, affiche davantage d'informations sur la " +"manière dont Python a été compilé, comme :" + +#: ../Doc/using/cmdline.rst:194 +msgid "The ``-VV`` option." +msgstr "L'option ``-VV``." + +#: ../Doc/using/cmdline.rst:200 +msgid "Miscellaneous options" +msgstr "Options diverses" + +#: ../Doc/using/cmdline.rst:204 +msgid "" +"Issue a warning when comparing :class:`bytes` or :class:`bytearray` with :" +"class:`str` or :class:`bytes` with :class:`int`. Issue an error when the " +"option is given twice (:option:`!-bb`)." +msgstr "" +"Affiche un avertissement (*warning* en anglais) lors d'une comparaison d'un " +"objet de type :class:`bytes` ou :class:`bytearray` avec un objet de type :" +"class:`str` ou un objet de type :class:`bytes` avec un objet de type :class:" +"`int`. Lève une erreur si cette option est doublée (:option:`!-bb`)." + +#: ../Doc/using/cmdline.rst:208 +msgid "Affects comparisons of :class:`bytes` with :class:`int`." +msgstr "Concerne les comparaisons de :class:`bytes` avec :class:`int`." + +#: ../Doc/using/cmdline.rst:213 +msgid "" +"If given, Python won't try to write ``.pyc`` files on the import of source " +"modules. See also :envvar:`PYTHONDONTWRITEBYTECODE`." +msgstr "" +"S'il est donné, Python ne tente pas d'écrire de fichier ``.pyc`` ou ``.pyo`` " +"à l'importation des modules sources. Voir aussi :envvar:" +"`PYTHONDONTWRITEBYTECODE`." + +#: ../Doc/using/cmdline.rst:219 +msgid "" +"Control the validation behavior of hash-based ``.pyc`` files. See :ref:`pyc-" +"invalidation`. When set to ``default``, checked and unchecked hash-based " +"bytecode cache files are validated according to their default semantics. " +"When set to ``always``, all hash-based ``.pyc`` files, whether checked or " +"unchecked, are validated against their corresponding source file. When set " +"to ``never``, hash-based ``.pyc`` files are not validated against their " +"corresponding source files." +msgstr "" +"Contrôle la façon dont sont validés les fichiers ``.pyc`` avec empreinte " +"(voir :ref:`pyc-invalidation`). Quand la valeur est ``default``, les caches " +"de fichiers de code intermédiaire sont validés en fonction de leur " +"sémantique par défaut. Quand la valeur est ``always``, tous les fichiers ``." +"pyc``, qu'ils soient vérifiés ou non, sont validés par rapport à leurs " +"fichiers sources correspondants. Quand la valeur est ``never``, les fichiers " +"``.pyc`` ne sont pas validés par rapport à leurs fichiers sources " +"correspondants." + +#: ../Doc/using/cmdline.rst:227 +msgid "" +"The semantics of timestamp-based ``.pyc`` files are unaffected by this " +"option." +msgstr "" +"La sémantique des fichiers ``.pyc`` générés en fonction de l'horodatage " +"n'est pas affectée par cette option." + +#: ../Doc/using/cmdline.rst:233 +msgid "" +"Turn on parser debugging output (for expert only, depending on compilation " +"options). See also :envvar:`PYTHONDEBUG`." +msgstr "" +"Active la sortie de l'analyseur en mode débogage (pour les experts " +"uniquement, en fonction des options de compilation). Voir aussi :envvar:" +"`PYTHONDEBUG`." + +#: ../Doc/using/cmdline.rst:239 +msgid "" +"Ignore all :envvar:`PYTHON*` environment variables, e.g. :envvar:" +"`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." +msgstr "" +"Ignore toutes les variables d'environnement :envvar:`PYTHON*` qui pourraient " +"être définies. Par exemple, :envvar:`PYTHONPATH` et :envvar:`PYTHONHOME`." + +#: ../Doc/using/cmdline.rst:245 +msgid "" +"When a script is passed as first argument or the :option:`-c` option is " +"used, enter interactive mode after executing the script or the command, even " +"when :data:`sys.stdin` does not appear to be a terminal. The :envvar:" +"`PYTHONSTARTUP` file is not read." +msgstr "" +"Quand un script est passé comme premier argument ou que l'option :option:`-" +"c` est utilisée, entre en mode interactif après avoir exécuté le script ou " +"la commande, même lorsque :data:`sys.stdin` ne semble pas être un terminal. " +"Le fichier :envvar:`PYTHONSTARTUP` n'est pas lu." + +#: ../Doc/using/cmdline.rst:250 +msgid "" +"This can be useful to inspect global variables or a stack trace when a " +"script raises an exception. See also :envvar:`PYTHONINSPECT`." +msgstr "" +"Cela peut être utile pour examiner les variables globales ou une trace de la " +"pile lorsque le script lève une exception. Voir aussi :envvar:" +"`PYTHONINSPECT`." + +#: ../Doc/using/cmdline.rst:256 +msgid "" +"Run Python in isolated mode. This also implies -E and -s. In isolated mode :" +"data:`sys.path` contains neither the script's directory nor the user's site-" +"packages directory. All :envvar:`PYTHON*` environment variables are ignored, " +"too. Further restrictions may be imposed to prevent the user from injecting " +"malicious code." +msgstr "" +"Lance Python en mode isolé. Cela implique aussi *-E* et *-s*. En mode " +"isolé, :data:`sys.path` ne contient ni le répertoire du script ni le " +"répertoire *site-packages* de l'utilisateur. Toutes les variables " +"d'environnement :envvar:`PYTHON*` sont aussi ignorées. Davantage de " +"restrictions peuvent être imposées pour éviter que l'utilisateur n'injecte " +"du code malicieux." + +#: ../Doc/using/cmdline.rst:267 +msgid "" +"Remove assert statements and any code conditional on the value of :const:" +"`__debug__`. Augment the filename for compiled (:term:`bytecode`) files by " +"adding ``.opt-1`` before the ``.pyc`` extension (see :pep:`488`). See also :" +"envvar:`PYTHONOPTIMIZE`." +msgstr "" +"Enlève les instructions *assert* et tout le code qui dépend de la valeur de :" +"const:`__debug__`. Ajoute ``.opt-1`` au nom de fichier du code intermédiaire " +"(:term:`bytecode`), avant l'extension ``.pyc`` (voir la :pep:`488`). Voir " +"aussi :envvar:`PYTHONOPTIMIZE`." + +#: ../Doc/using/cmdline.rst:272 ../Doc/using/cmdline.rst:282 +msgid "Modify ``.pyc`` filenames according to :pep:`488`." +msgstr "modifie les noms de fichiers ``.pyc`` suivant la :pep:`488`." + +#: ../Doc/using/cmdline.rst:278 +msgid "" +"Do :option:`-O` and also discard docstrings. Augment the filename for " +"compiled (:term:`bytecode`) files by adding ``.opt-2`` before the ``.pyc`` " +"extension (see :pep:`488`)." +msgstr "" +"Agit comme :option:`-O` et ignore aussi les *docstrings*. Ajoute ``.opt-2`` " +"au nom de fichier du code intermédiaire (:term:`bytecode`), avant " +"l'extension ``.pyc`` (voir la :pep:`488`)." + +#: ../Doc/using/cmdline.rst:288 +msgid "" +"Don't display the copyright and version messages even in interactive mode." +msgstr "N'affiche pas le copyright et la version, même en mode interactif." + +#: ../Doc/using/cmdline.rst:295 +msgid "" +"Turn on hash randomization. This option only has an effect if the :envvar:" +"`PYTHONHASHSEED` environment variable is set to ``0``, since hash " +"randomization is enabled by default." +msgstr "" +"Active l'imprévisibilité du hachage. Cette option ne produit un effet que si " +"la variable d'environnement :envvar:`PYTHONHASHSEED` est mise à ``0``, " +"puisque l'imprévisibilité du hachage est activée par défaut." + +#: ../Doc/using/cmdline.rst:299 +msgid "" +"On previous versions of Python, this option turns on hash randomization, so " +"that the :meth:`__hash__` values of str, bytes and datetime are \"salted\" " +"with an unpredictable random value. Although they remain constant within an " +"individual Python process, they are not predictable between repeated " +"invocations of Python." +msgstr "" +"Sur les versions précédentes de Python, cette option activait " +"l'imprévisibilité des empreintes de manière à ce que les :meth:`__hash__` de " +"chaînes, bytes et ``datetime`` soient \"salés\" avec une valeur aléatoire " +"non prévisible. Bien que ce sel soit constant durant le déroulement d'un " +"processus Python, il n'est pas prévisible pour des invocations répétées de " +"code Python." + +#: ../Doc/using/cmdline.rst:305 +msgid "" +"Hash randomization is intended to provide protection against a denial-of-" +"service caused by carefully-chosen inputs that exploit the worst case " +"performance of a dict construction, O(n^2) complexity. See http://www.ocert." +"org/advisories/ocert-2011-003.html for details." +msgstr "" +"L'imprévisibilité des empreintes a pour objectif de se protéger contre les " +"dénis de service qui utiliseraient des valeurs d'entrée judicieusement " +"choisies afin de forcer la construction des dictionnaires dans le pire cas, " +"c'est-à-dire avec une complexité en O(n\\ :sup:`2`). Voir http://www.ocert." +"org/advisories/ocert-2011-003.html pour obtenir les détails." + +#: ../Doc/using/cmdline.rst:310 +msgid "" +":envvar:`PYTHONHASHSEED` allows you to set a fixed value for the hash seed " +"secret." +msgstr "" +":envvar:`PYTHONHASHSEED` vous permet de définir vous-même la valeur du sel " +"pour l'algorithme de calcul des empreintes." + +#: ../Doc/using/cmdline.rst:313 +msgid "The option is no longer ignored." +msgstr "cette option n'est plus ignorée." + +#: ../Doc/using/cmdline.rst:321 +msgid "" +"Don't add the :data:`user site-packages directory ` to :data:" +"`sys.path`." +msgstr "" +"N'ajoute pas le répertoire utilisateur :data:`site-packages ` à :data:`sys.path`." + +#: ../Doc/using/cmdline.rst:326 ../Doc/using/cmdline.rst:634 +#: ../Doc/using/cmdline.rst:646 +msgid ":pep:`370` -- Per user site-packages directory" +msgstr ":pep:`370` — Répertoire site-packages propre à l'utilisateur" + +#: ../Doc/using/cmdline.rst:331 +msgid "" +"Disable the import of the module :mod:`site` and the site-dependent " +"manipulations of :data:`sys.path` that it entails. Also disable these " +"manipulations if :mod:`site` is explicitly imported later (call :func:`site." +"main` if you want them to be triggered)." +msgstr "" +"Désactive l’importation du module :mod:`site` et les modifications locales " +"de :data:`sys.path` qu’il implique. Désactive aussi ces manipulations si :" +"mod:`site` est importé explicitement plus tard (appelez :func:`site.main` si " +"vous voulez les déclencher)." + +#: ../Doc/using/cmdline.rst:339 +msgid "" +"Force the stdout and stderr streams to be unbuffered. This option has no " +"effect on the stdin stream." +msgstr "" +"Force les flux de sortie et d'erreur standards à ne pas utiliser de tampon. " +"Cette option n'a pas d'effet sur le flux d'entrée standard." + +#: ../Doc/using/cmdline.rst:342 +msgid "See also :envvar:`PYTHONUNBUFFERED`." +msgstr "Voir aussi :envvar:`PYTHONUNBUFFERED`." + +#: ../Doc/using/cmdline.rst:344 +msgid "The text layer of the stdout and stderr streams now is unbuffered." +msgstr "" +"la couche texte des flux de sortie et d'erreur standards n'utilise " +"maintenant plus de tampon." + +#: ../Doc/using/cmdline.rst:350 +msgid "" +"Print a message each time a module is initialized, showing the place " +"(filename or built-in module) from which it is loaded. When given twice (:" +"option:`!-vv`), print a message for each file that is checked for when " +"searching for a module. Also provides information on module cleanup at " +"exit. See also :envvar:`PYTHONVERBOSE`." +msgstr "" +"Affiche un message chaque fois qu'un module est initialisé, montrant " +"l'emplacement (nom du fichier ou module natif) à partir duquel il est " +"chargé. Lorsque l'option est doublée (:option:`!-vv`), affiche un message " +"pour chaque fichier vérifié lors de la recherche du module. Fournit aussi " +"des informations sur le nettoyage des modules à la fin. Voir aussi :envvar:" +"`PYTHONVERBOSE`." + +#: ../Doc/using/cmdline.rst:360 +msgid "" +"Warning control. Python's warning machinery by default prints warning " +"messages to :data:`sys.stderr`. A typical warning message has the following " +"form:" +msgstr "" +"Contrôle des avertissements. Le mécanisme d'avertissement de Python, par " +"défaut, affiche les messages d'avertissement sur :data:`sys.stderr`. Un " +"message d'avertissement type est de la forme suivante :" + +#: ../Doc/using/cmdline.rst:368 +msgid "" +"By default, each warning is printed once for each source line where it " +"occurs. This option controls how often warnings are printed." +msgstr "" +"Par défaut, chaque avertissement est affiché une seule fois pour chaque " +"ligne de source où il se trouve. Cette option définit à quelle fréquence " +"afficher ces avertissements." + +#: ../Doc/using/cmdline.rst:371 +msgid "" +"Multiple :option:`-W` options may be given; when a warning matches more than " +"one option, the action for the last matching option is performed. Invalid :" +"option:`-W` options are ignored (though, a warning message is printed about " +"invalid options when the first warning is issued)." +msgstr "" +"L'option :option:`-W` peut être répétée ; lorsqu'un avertissement correspond " +"à plus d'une option, l'action associée à la dernière correspondance est " +"effectuée. Les options :option:`-W` invalides sont ignorées (cependant, un " +"message d'avertissement est affiché sur les options invalides au moment où " +"le premier avertissement est généré)." + +#: ../Doc/using/cmdline.rst:376 +msgid "" +"Warnings can also be controlled using the :envvar:`PYTHONWARNINGS` " +"environment variable and from within a Python program using the :mod:" +"`warnings` module." +msgstr "" +"Les avertissements peuvent aussi être contrôlés en utilisant la variable " +"d'environnement :envvar:`PYTHONWARNINGS` et depuis un programme Python en " +"utilisant le module :mod:`warnings`." + +#: ../Doc/using/cmdline.rst:380 ../Doc/using/cmdline.rst:662 +msgid "" +"The simplest settings apply a particular action unconditionally to all " +"warnings emitted by a process (even those that are otherwise ignored by " +"default)::" +msgstr "" +"Les configurations les plus simples forcent l'application de l'action à tous " +"les avertissements émis par un processus (même ceux qui auraient été ignorés " +"par défaut) ::" + +#: ../Doc/using/cmdline.rst:391 +msgid "" +"The action names can be abbreviated as desired (e.g. ``-Wi``, ``-Wd``, ``-" +"Wa``, ``-We``) and the interpreter will resolve them to the appropriate " +"action name." +msgstr "" +"Les noms des actions peuvent être abrégés à votre convenance (par exemple. " +"``-Wi``, ``-Wd``, ``-Wa``, ``-We``), l'interpréteur fait la résolution vers " +"le nom adéquat." + +#: ../Doc/using/cmdline.rst:395 ../Doc/using/cmdline.rst:673 +msgid "" +"See :ref:`warning-filter` and :ref:`describing-warning-filters` for more " +"details." +msgstr "" +"Voir :ref:`warning-filter` et :ref:`describing-warning-filters` pour plus " +"de détails." + +#: ../Doc/using/cmdline.rst:401 +msgid "" +"Skip the first line of the source, allowing use of non-Unix forms of ``#!" +"cmd``. This is intended for a DOS specific hack only." +msgstr "" +"Saute la première ligne du code source, autorisant ainsi les directives de " +"type ``#!cmd`` non conformes au standard Unix. L'objectif est de proposer " +"une astuce spécifique pour le DOS." + +#: ../Doc/using/cmdline.rst:407 +msgid "" +"Reserved for various implementation-specific options. CPython currently " +"defines the following possible values:" +msgstr "" +"Réservée pour les options spécifiques aux différentes implémentations. " +"CPython reconnaît actuellement les valeurs suivantes :" + +#: ../Doc/using/cmdline.rst:410 +msgid "``-X faulthandler`` to enable :mod:`faulthandler`;" +msgstr "``-X faulthandler`` pour activer :mod:`faulthandler` ;" + +#: ../Doc/using/cmdline.rst:411 +msgid "" +"``-X showrefcount`` to output the total reference count and number of used " +"memory blocks when the program finishes or after each statement in the " +"interactive interpreter. This only works on debug builds." +msgstr "" +"``-X showrefcount`` pour afficher le compteur des références et le nombre de " +"blocs mémoire utilisés lorsque le programme se termine ou après chaque " +"entrée de l'interpréteur interactif. Ceci ne fonctionne que sur les versions " +"compilées en mode débogage." + +#: ../Doc/using/cmdline.rst:414 +msgid "" +"``-X tracemalloc`` to start tracing Python memory allocations using the :mod:" +"`tracemalloc` module. By default, only the most recent frame is stored in a " +"traceback of a trace. Use ``-X tracemalloc=NFRAME`` to start tracing with a " +"traceback limit of *NFRAME* frames. See the :func:`tracemalloc.start` for " +"more information." +msgstr "" +"``-X tracemalloc`` pour lancer le suivi des allocations mémoire par Python " +"en utilisant le module :mod:`tracemalloc`. Par défaut, seul l'appel (la " +"*frame* en anglais) le plus récent est stocké dans la trace de la pile " +"d'appels. Utilisez ``-X tracemalloc=NFRAME`` pour lancer le suivi avec une " +"limite des traces à *NFRAME* appels. Voir :func:`tracemalloc.start` pour " +"plus d'informations." + +#: ../Doc/using/cmdline.rst:419 +msgid "" +"``-X showalloccount`` to output the total count of allocated objects for " +"each type when the program finishes. This only works when Python was built " +"with ``COUNT_ALLOCS`` defined." +msgstr "" +"``-X showalloccount`` pour afficher à la fin de l'exécution du programme le " +"total des objets alloués pour chaque type. Ceci ne fonctionne que si Python " +"a été compilé avec l'option ``COUNT_ALLOCS``." + +#: ../Doc/using/cmdline.rst:422 +msgid "" +"``-X importtime`` to show how long each import takes. It shows module name, " +"cumulative time (including nested imports) and self time (excluding nested " +"imports). Note that its output may be broken in multi-threaded " +"application. Typical usage is ``python3 -X importtime -c 'import " +"asyncio'``. See also :envvar:`PYTHONPROFILEIMPORTTIME`." +msgstr "" +"``-X importtime`` affiche le temps mis pour chaque importation. Le temps " +"total par module est affiché (y compris le temps pris par les importations " +"imbriquées) ainsi que le temps propre du module (c-à-d sans les importations " +"imbriquées). Notez que l'affichage peut être perturbé dans une application " +"avec de multiples fils d'exécution. L'utilisation classique est ``python3 -" +"X importtime -c 'import asyncio'``. Voir aussi :envvar:" +"`PYTHONPROFILEIMPORTTIME`." + +#: ../Doc/using/cmdline.rst:427 +msgid "" +"``-X dev``: enable CPython's \"development mode\", introducing additional " +"runtime checks which are too expensive to be enabled by default. It should " +"not be more verbose than the default if the code is correct: new warnings " +"are only emitted when an issue is detected. Effect of the developer mode:" +msgstr "" +"``-X dev``: active le \"mode développeur\" de CPython, injectant des " +"vérifications à l'exécution qui ne sont pas actives par défaut. Ce n'est pas " +"plus verbeux que le mode par défaut si le code est correct : les " +"avertissements supplémentaires ne sont émis que quand un problème est " +"détecté. Effets du mode développeur :" + +#: ../Doc/using/cmdline.rst:432 +msgid "Add ``default`` warning filter, as :option:`-W` ``default``." +msgstr "" +"ajoute le filtre ``default`` pour les avertissements, comme l'option :option:" +"`-W` ``default``." + +#: ../Doc/using/cmdline.rst:433 +msgid "" +"Install debug hooks on memory allocators: see the :c:func:" +"`PyMem_SetupDebugHooks` C function." +msgstr "" +"Installe des points d'entrée (*hook* en anglais) pour le débogage dans les " +"allocateurs de mémoire : voir la fonction C :c:func:`PyMem_SetupDebugHooks`." + +#: ../Doc/using/cmdline.rst:435 +msgid "" +"Enable the :mod:`faulthandler` module to dump the Python traceback on a " +"crash." +msgstr "" +"Active le module :mod:`faulthandler` pour décharger la pile d'appels de " +"Python en cas de crash." + +#: ../Doc/using/cmdline.rst:437 +msgid "Enable :ref:`asyncio debug mode `." +msgstr "Active le :ref:`mode de débogage d'asyncio `." + +#: ../Doc/using/cmdline.rst:438 +msgid "" +"Set the :attr:`~sys.flags.dev_mode` attribute of :attr:`sys.flags` to " +"``True``" +msgstr "" +"Définit l'attribut :attr:`~sys.flags.dev_mode` de :attr:`sys.flags` à " +"``True``." + +#: ../Doc/using/cmdline.rst:441 +msgid "" +"``-X utf8`` enables UTF-8 mode for operating system interfaces, overriding " +"the default locale-aware mode. ``-X utf8=0`` explicitly disables UTF-8 mode " +"(even when it would otherwise activate automatically). See :envvar:" +"`PYTHONUTF8` for more details." +msgstr "" +"``-X utf8`` active le mode UTF-8 pour les interfaces avec le système " +"d'exploitation, prenant le dessus sur le mode par défaut qui s'appuie sur la " +"configuration régionale. ``-X utf8=0`` désactive explicitement le mode UTF-8 " +"(même s'il avait du s'activer automatiquement). Voir :envvar:`PYTHONUTF8` " +"pour plus de détails." + +#: ../Doc/using/cmdline.rst:446 +msgid "" +"It also allows passing arbitrary values and retrieving them through the :" +"data:`sys._xoptions` dictionary." +msgstr "" +"Il est aussi possible de passer des valeurs arbitraires et de les récupérer " +"par le dictionnaire :data:`sys._xoptions`." + +#: ../Doc/using/cmdline.rst:449 +msgid "The :option:`-X` option was added." +msgstr "l'option :option:`-X` a été ajoutée." + +#: ../Doc/using/cmdline.rst:452 +msgid "The ``-X faulthandler`` option." +msgstr "option ``-X faulthandler``." + +#: ../Doc/using/cmdline.rst:455 +msgid "The ``-X showrefcount`` and ``-X tracemalloc`` options." +msgstr "options ``-X showrefcount`` et ``-X tracemalloc`` ." + +#: ../Doc/using/cmdline.rst:458 +msgid "The ``-X showalloccount`` option." +msgstr "option ``-X showalloccount``." + +#: ../Doc/using/cmdline.rst:461 +msgid "The ``-X importtime``, ``-X dev`` and ``-X utf8`` options." +msgstr "les options ``-X importtime``, ``-X dev`` et ``-X utf8``." + +#: ../Doc/using/cmdline.rst:466 +msgid "Options you shouldn't use" +msgstr "Options à ne pas utiliser" + +#: ../Doc/using/cmdline.rst:470 +msgid "Reserved for use by Jython_." +msgstr "Utilisation réservée à Jython_." + +#: ../Doc/using/cmdline.rst:478 +msgid "Environment variables" +msgstr "Variables d'environnement" + +#: ../Doc/using/cmdline.rst:480 +msgid "" +"These environment variables influence Python's behavior, they are processed " +"before the command-line switches other than -E or -I. It is customary that " +"command-line switches override environmental variables where there is a " +"conflict." +msgstr "" +"Les variables d'environnement suivantes modifient le comportement de Python. " +"Elles sont analysées avant les options de la ligne de commande, autres que *-" +"E* ou *-I*. Il est d'usage que les options de la ligne de commande prennent " +"le pas sur les variables d'environnement en cas de conflit." + +#: ../Doc/using/cmdline.rst:487 +msgid "" +"Change the location of the standard Python libraries. By default, the " +"libraries are searched in :file:`{prefix}/lib/python{version}` and :file:" +"`{exec_prefix}/lib/python{version}`, where :file:`{prefix}` and :file:" +"`{exec_prefix}` are installation-dependent directories, both defaulting to :" +"file:`/usr/local`." +msgstr "" +"Modifie l'emplacement des bibliothèques standards de Python. Par défaut, les " +"bibliothèques sont recherchées dans :file:`{préfixe}/lib/python{version}` " +"et :file:`{préfixe_exec}/lib/python{version}` où :file:`{préfixe}` et :file:" +"`{préfixe_exec}` sont des répertoires qui dépendent de l'installation (leur " +"valeur par défaut étant :file:`/usr/local`)." + +#: ../Doc/using/cmdline.rst:493 +msgid "" +"When :envvar:`PYTHONHOME` is set to a single directory, its value replaces " +"both :file:`{prefix}` and :file:`{exec_prefix}`. To specify different " +"values for these, set :envvar:`PYTHONHOME` to :file:`{prefix}:{exec_prefix}`." +msgstr "" +"Quand :envvar:`PYTHONHOME` est défini à un simple répertoire, sa valeur " +"remplace à la fois :file:`{préfixe}` et :file:`{préfixe_exec}`. Pour " +"spécifier des valeurs différentes à ces variables, définissez :envvar:" +"`PYTHONHOME` à :file:`{préfixe}:{préfixe_exec}`." + +#: ../Doc/using/cmdline.rst:500 +msgid "" +"Augment the default search path for module files. The format is the same as " +"the shell's :envvar:`PATH`: one or more directory pathnames separated by :" +"data:`os.pathsep` (e.g. colons on Unix or semicolons on Windows). Non-" +"existent directories are silently ignored." +msgstr "" +"Augmente le chemin de recherche par défaut des fichiers de modules. Le " +"format est le même que pour :envvar:`PATH` du shell : un ou plusieurs " +"chemins de répertoires séparés par :data:`os.pathsep` (par exemple, le " +"caractère deux-points sous Unix et point-virgule sous Windows). Les " +"répertoires qui n'existent pas sont ignorés silencieusement." + +#: ../Doc/using/cmdline.rst:505 +msgid "" +"In addition to normal directories, individual :envvar:`PYTHONPATH` entries " +"may refer to zipfiles containing pure Python modules (in either source or " +"compiled form). Extension modules cannot be imported from zipfiles." +msgstr "" +"En plus des répertoires normaux, des entrées individuelles de :envvar:" +"`PYTHONPATH` peuvent faire référence à des fichiers zip contenant des " +"modules en pur Python (soit sous forme de code source, soit sous forme " +"compilée). Les modules d'extensions ne peuvent pas être importés à partir de " +"fichiers zip." + +#: ../Doc/using/cmdline.rst:509 +msgid "" +"The default search path is installation dependent, but generally begins " +"with :file:`{prefix}/lib/python{version}` (see :envvar:`PYTHONHOME` above). " +"It is *always* appended to :envvar:`PYTHONPATH`." +msgstr "" +"Le chemin de recherche par défaut dépend de l'installation mais commence " +"généralement par :file:`{préfixe}/lib/python{version}` (voir :envvar:" +"`PYTHONHOME` ci-dessus). Il est *toujours* ajouté à :envvar:`PYTHONPATH`." + +#: ../Doc/using/cmdline.rst:513 +msgid "" +"An additional directory will be inserted in the search path in front of :" +"envvar:`PYTHONPATH` as described above under :ref:`using-on-interface-" +"options`. The search path can be manipulated from within a Python program as " +"the variable :data:`sys.path`." +msgstr "" +"Comme indiqué ci-dessus dans :ref:`using-on-interface-options`, un " +"répertoire supplémentaire est inséré dans le chemin de recherche devant :" +"envvar:`PYTHONPATH`. Le chemin de recherche peut être manipulé depuis un " +"programme Python avec la variable :data:`sys.path`." + +#: ../Doc/using/cmdline.rst:521 +msgid "" +"If this is the name of a readable file, the Python commands in that file are " +"executed before the first prompt is displayed in interactive mode. The file " +"is executed in the same namespace where interactive commands are executed so " +"that objects defined or imported in it can be used without qualification in " +"the interactive session. You can also change the prompts :data:`sys.ps1` " +"and :data:`sys.ps2` and the hook :data:`sys.__interactivehook__` in this " +"file." +msgstr "" +"S'il s'agit d'un nom de fichier accessible en lecture, les commandes Python " +"de ce fichier sont exécutées avant que la première invite ne soit affichée " +"en mode interactif. Le fichier est exécuté dans le même espace de nommage " +"que les commandes interactives, de manière à ce que les objets définis ou " +"importés puissent être utilisés sans qualificatif dans la session " +"interactive. Vous pouvez aussi changer les invites :data:`sys.ps1` et :data:" +"`sys.ps2` ainsi que le point d'entrée (*hook* en anglais) :data:`sys." +"__interactivehook__` dans ce fichier." + +#: ../Doc/using/cmdline.rst:531 +msgid "" +"If this is set to a non-empty string it is equivalent to specifying the :" +"option:`-O` option. If set to an integer, it is equivalent to specifying :" +"option:`-O` multiple times." +msgstr "" +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " +"l'option :option:`-O`. Si elle est définie à un entier, c'est équivalent à " +"spécifier l'option :option:`-O` plusieurs fois." + +#: ../Doc/using/cmdline.rst:538 +msgid "" +"If this is set, it names a callable using dotted-path notation. The module " +"containing the callable will be imported and then the callable will be run " +"by the default implementation of :func:`sys.breakpointhook` which itself is " +"called by built-in :func:`breakpoint`. If not set, or set to the empty " +"string, it is equivalent to the value \"pdb.set_trace\". Setting this to " +"the string \"0\" causes the default implementation of :func:`sys." +"breakpointhook` to do nothing but return immediately." +msgstr "" +"Si elle est définie, elle fait référence à un appelable en utilisant la " +"notation des chemins délimités par des points. Le module contenant " +"l'appelable est importé et l'appelable est alors lancé par l'implémentation " +"par défaut de :func:`sys.breakpointhook`, elle-même étant appelée par la " +"fonction native :func:`breakpoint`. Si elle n'est pas définie ou définie par " +"une chaîne vide, elle vaut la même chose que `pdb.set_trace`. La définir à " +"la chaîne \"0\" entraine que l'implémentation par défaut de :func:`sys." +"breakpointhook` ne fait rien et s'interrompt immédiatement." + +#: ../Doc/using/cmdline.rst:550 +msgid "" +"If this is set to a non-empty string it is equivalent to specifying the :" +"option:`-d` option. If set to an integer, it is equivalent to specifying :" +"option:`-d` multiple times." +msgstr "" +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " +"l'option :option:`-d`. Si elle est définie à un entier, c'est équivalent à " +"spécifier l'option :option:`-d` plusieurs fois." + +#: ../Doc/using/cmdline.rst:557 +msgid "" +"If this is set to a non-empty string it is equivalent to specifying the :" +"option:`-i` option." +msgstr "" +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " +"l'option :option:`-i`." + +#: ../Doc/using/cmdline.rst:560 +msgid "" +"This variable can also be modified by Python code using :data:`os.environ` " +"to force inspect mode on program termination." +msgstr "" +"Cette variable peut aussi être modifiée par du code Python en utilisant :" +"data:`os.environ` pour forcer le mode introspectif à la fin du programme." + +#: ../Doc/using/cmdline.rst:566 +msgid "" +"If this is set to a non-empty string it is equivalent to specifying the :" +"option:`-u` option." +msgstr "" +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " +"l'option :option:`-u`." + +#: ../Doc/using/cmdline.rst:572 +msgid "" +"If this is set to a non-empty string it is equivalent to specifying the :" +"option:`-v` option. If set to an integer, it is equivalent to specifying :" +"option:`-v` multiple times." +msgstr "" +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " +"l'option :option:`-v`. Si elle est définie à un entier, c'est équivalent à " +"spécifier l'option :option:`-v` plusieurs fois." + +#: ../Doc/using/cmdline.rst:579 +msgid "" +"If this is set, Python ignores case in :keyword:`import` statements. This " +"only works on Windows and OS X." +msgstr "" +"Si elle est définie, Python ignore la casse dans les instructions :keyword:" +"`import`. Ceci ne fonctionne que sous Windows et OS X." + +#: ../Doc/using/cmdline.rst:585 +msgid "" +"If this is set to a non-empty string, Python won't try to write ``.pyc`` " +"files on the import of source modules. This is equivalent to specifying " +"the :option:`-B` option." +msgstr "" +"Si elle est définie et n'est pas une chaîne vide, Python n'écrit pas de " +"fichier ``.pyc`` à l'importation des modules sources. C'est équivalent à " +"spécifier l'option :option:`-B`." + +#: ../Doc/using/cmdline.rst:592 +msgid "" +"If this variable is not set or set to ``random``, a random value is used to " +"seed the hashes of str, bytes and datetime objects." +msgstr "" +"Si cette variable n'est pas définie ou définie à ``random``, une valeur " +"aléatoire est utilisée pour saler les empreintes des objets de type chaine, " +"``bytes`` et ``datetime``." + +#: ../Doc/using/cmdline.rst:595 +msgid "" +"If :envvar:`PYTHONHASHSEED` is set to an integer value, it is used as a " +"fixed seed for generating the hash() of the types covered by the hash " +"randomization." +msgstr "" +"Si :envvar:`PYTHONHASHSEED` est définie à une valeur entière, elle est " +"utilisée comme valeur de salage pour générer les empreintes des types " +"utilisant l'imprévisibilité du hachage." + +#: ../Doc/using/cmdline.rst:599 +msgid "" +"Its purpose is to allow repeatable hashing, such as for selftests for the " +"interpreter itself, or to allow a cluster of python processes to share hash " +"values." +msgstr "" +"L'objectif est d'avoir des empreintes reproductibles, pour des tests de " +"l'interpréteur lui-même ou pour qu'un groupe de processus Python puisse " +"partager des empreintes." + +#: ../Doc/using/cmdline.rst:603 +msgid "" +"The integer must be a decimal number in the range [0,4294967295]. " +"Specifying the value 0 will disable hash randomization." +msgstr "" +"Le nombre entier doit être écrit en base 10 et être compris entre 0 et " +"4 294 967 295. Spécifier la valeur 0 désactive l'imprévisibilité des " +"empreintes." + +#: ../Doc/using/cmdline.rst:611 +msgid "" +"If this is set before running the interpreter, it overrides the encoding " +"used for stdin/stdout/stderr, in the syntax ``encodingname:errorhandler``. " +"Both the ``encodingname`` and the ``:errorhandler`` parts are optional and " +"have the same meaning as in :func:`str.encode`." +msgstr "" +"Si la variable est définie sous la forme ``nom_encodage:" +"gestionnaire_erreur`` avant le lancement de l'interpréteur, cela prend le " +"pas sur l'encodage utilisé pour l'entrée standard, la sortie standard ou la " +"sortie d'erreur. ``nom_encodage`` et ``:gestionnaire_erreur`` sont " +"facultatifs tous les deux et possèdent la même signification que dans :func:" +"`str.encode`." + +#: ../Doc/using/cmdline.rst:616 +msgid "" +"For stderr, the ``:errorhandler`` part is ignored; the handler will always " +"be ``'backslashreplace'``." +msgstr "" +"Pour la sortie d'erreur, la partie ``:gestionnaire_erreur`` est ignorée : le " +"gestionnaire est toujours ``'backslashreplace'``." + +#: ../Doc/using/cmdline.rst:619 +msgid "The ``encodingname`` part is now optional." +msgstr "la partie ``nom_encodage`` est maintenant optionnelle." + +#: ../Doc/using/cmdline.rst:622 +msgid "" +"On Windows, the encoding specified by this variable is ignored for " +"interactive console buffers unless :envvar:`PYTHONLEGACYWINDOWSSTDIO` is " +"also specified. Files and pipes redirected through the standard streams are " +"not affected." +msgstr "" +"sous Windows, l'encodage spécifié par cette variable est ignoré pour le " +"tampon des consoles interactives à moins que :envvar:" +"`PYTHONLEGACYWINDOWSSTDIO` ne soit aussi spécifié. Les fichiers et tubes " +"(*pipes* en anglais) redirigés vers les flux standards ne sont pas concernés." + +#: ../Doc/using/cmdline.rst:629 +msgid "" +"If this is set, Python won't add the :data:`user site-packages directory " +"` to :data:`sys.path`." +msgstr "" +"Si elle est définie, Python n'ajoute pas le répertoire :data:`site-packages " +"propre à l'utilisateur ` à :data:`sys.path`." + +#: ../Doc/using/cmdline.rst:639 +msgid "" +"Defines the :data:`user base directory `, which is used to " +"compute the path of the :data:`user site-packages directory ` and :ref:`Distutils installation paths ` " +"for ``python setup.py install --user``." +msgstr "" +"Définit le répertoire :data:`base utilisateur `. Celui-ci " +"est utilisé pour déterminer le chemin du :data:`répertoire site-packages " +"propre à l'utilisateur ` et des :ref:`schémas d'installation " +"de Distutils ` pour ``python setup.py install --" +"user``." + +#: ../Doc/using/cmdline.rst:651 +msgid "" +"If this environment variable is set, ``sys.argv[0]`` will be set to its " +"value instead of the value got through the C runtime. Only works on Mac OS " +"X." +msgstr "" +"Si cette variable d'environnement est définie, ``sys.argv[0]`` est définie à " +"cette valeur au lieu de la valeur fournie par l'exécutable. Ne fonctionne " +"que sur Mac OS X." + +#: ../Doc/using/cmdline.rst:657 +msgid "" +"This is equivalent to the :option:`-W` option. If set to a comma separated " +"string, it is equivalent to specifying :option:`-W` multiple times, with " +"filters later in the list taking precedence over those earlier in the list." +msgstr "" +"C'est équivalent à spécifier l'option :option:`-W`. Si la valeur est une " +"chaîne séparée par des virgules, c'est équivalent à spécifier l'option :" +"option:`-W` plusieurs fois. Dans ce cas, les filtres spécifiés en derniers " +"prennent le pas sur ceux qui les précèdent dans la liste." + +#: ../Doc/using/cmdline.rst:679 +msgid "" +"If this environment variable is set to a non-empty string, :func:" +"`faulthandler.enable` is called at startup: install a handler for :const:" +"`SIGSEGV`, :const:`SIGFPE`, :const:`SIGABRT`, :const:`SIGBUS` and :const:" +"`SIGILL` signals to dump the Python traceback. This is equivalent to :" +"option:`-X` ``faulthandler`` option." +msgstr "" +"Si elle est définie à une chaîne non vide, :func:`faulthandler.enable` est " +"appelée au démarrage : ceci installe un gestionnaire pour les signaux :const:" +"`SIGSEGV`, :const:`SIGFPE`, :const:`SIGABRT`, :const:`SIGBUS` et :const:" +"`SIGILL` afin de générer une trace de la pile d'appels. C'est équivalent à " +"spécifier l'option :option:`-X` ``faulthandler``." + +#: ../Doc/using/cmdline.rst:690 +msgid "" +"If this environment variable is set to a non-empty string, start tracing " +"Python memory allocations using the :mod:`tracemalloc` module. The value of " +"the variable is the maximum number of frames stored in a traceback of a " +"trace. For example, ``PYTHONTRACEMALLOC=1`` stores only the most recent " +"frame. See the :func:`tracemalloc.start` for more information." +msgstr "" +"Si elle est définie à une chaîne non vide, lance le suivi des allocations " +"mémoire par Python en utilisant le module :mod:`tracemalloc`. La valeur de " +"la variable définit le nombre maximum d'appels (les *frames* en anglais) " +"stockés dans la trace de pile d'appels. Par exemple, ``PYTHONTRACEMALLOC=1`` " +"ne stocke que l'appel le plus récent. Voir :func:`tracemalloc.start` pour " +"davantage d'informations." + +#: ../Doc/using/cmdline.rst:701 +msgid "" +"If this environment variable is set to a non-empty string, Python will show " +"how long each import takes. This is exactly equivalent to setting ``-X " +"importtime`` on the command line." +msgstr "" +"Si elle est définie et n'est pas une chaîne vide, Python affiche le temps " +"pris par les importations. C'est exactement équivalent à donner ``-X " +"importtime`` en ligne de commande." + +#: ../Doc/using/cmdline.rst:710 +msgid "" +"If this environment variable is set to a non-empty string, enable the :ref:" +"`debug mode ` of the :mod:`asyncio` module." +msgstr "" +"Si elle est définie à une chaîne non vide, active le :ref:`mode debogage " +"` du module :mod:`asyncio`." + +#: ../Doc/using/cmdline.rst:718 +msgid "Set the Python memory allocators and/or install debug hooks." +msgstr "" +"Définit l'allocateur mémoire de Python ou installe des points d'entrée " +"(*hooks* en anglais) de débogage." + +#: ../Doc/using/cmdline.rst:720 +msgid "Set the family of memory allocators used by Python:" +msgstr "Définit la famille d'allocateurs mémoire utilisés par Python :" + +#: ../Doc/using/cmdline.rst:722 +msgid "" +"``default``: use the :ref:`default memory allocators `." +msgstr "" +"``default``: utilise les :ref:`allocateurs de mémoire par défaut `." + +#: ../Doc/using/cmdline.rst:724 +msgid "" +"``malloc``: use the :c:func:`malloc` function of the C library for all " +"domains (:c:data:`PYMEM_DOMAIN_RAW`, :c:data:`PYMEM_DOMAIN_MEM`, :c:data:" +"`PYMEM_DOMAIN_OBJ`)." +msgstr "" +"``malloc`` : utilise la fonction :c:func:`malloc` de la bibliothèque C " +"standard pour tous les domaines (:c:data:`PYMEM_DOMAIN_RAW`, :c:data:" +"`PYMEM_DOMAIN_MEM`, :c:data:`PYMEM_DOMAIN_OBJ`)." + +#: ../Doc/using/cmdline.rst:727 +msgid "" +"``pymalloc``: use the :ref:`pymalloc allocator ` for :c:data:" +"`PYMEM_DOMAIN_MEM` and :c:data:`PYMEM_DOMAIN_OBJ` domains and use the :c:" +"func:`malloc` function for the :c:data:`PYMEM_DOMAIN_RAW` domain." +msgstr "" +"``pymalloc`` : utilise l’:ref:`allocateur pymalloc ` pour les " +"domaines :c:data:`PYMEM_DOMAIN_MEM` ainsi que :c:data:`PYMEM_DOMAIN_OBJ` et " +"utilise la fonction :c:func:`malloc` pour le domaine :c:data:" +"`PYMEM_DOMAIN_RAW`." + +#: ../Doc/using/cmdline.rst:731 +msgid "Install debug hooks:" +msgstr "Installe des points d'entrée de débogage :" + +#: ../Doc/using/cmdline.rst:733 +msgid "" +"``debug``: install debug hooks on top of the :ref:`default memory allocators " +"`." +msgstr "" +"``debug`` : installe des points d'entrée de débogage pour :ref:`l'allocateur " +"de mémoire par défaut `." + +#: ../Doc/using/cmdline.rst:735 +msgid "``malloc_debug``: same as ``malloc`` but also install debug hooks" +msgstr "" +"``malloc_debug``: identique à ``malloc`` mais installe aussi des points " +"d'entrée de débogage." + +#: ../Doc/using/cmdline.rst:736 +msgid "``pymalloc_debug``: same as ``pymalloc`` but also install debug hooks" +msgstr "" +"``pymalloc_debug``: identique à ``pymalloc`` mais installe aussi des points " +"d'entrée de débogage." + +#: ../Doc/using/cmdline.rst:738 +msgid "" +"See the :ref:`default memory allocators ` and " +"the :c:func:`PyMem_SetupDebugHooks` function (install debug hooks on Python " +"memory allocators)." +msgstr "" +"Reportez-vous au chapitre :ref:`default-memory-allocators` et à la fonction :" +"c:func:`PyMem_SetupDebugHooks` (configure des points d'entrée de débogage " +"sur les allocateurs de mémoire de Python)." + +#: ../Doc/using/cmdline.rst:742 +msgid "Added the ``\"default\"`` allocator." +msgstr "l'allocateur ``default`` a été ajouté." + +#: ../Doc/using/cmdline.rst:750 +msgid "" +"If set to a non-empty string, Python will print statistics of the :ref:" +"`pymalloc memory allocator ` every time a new pymalloc object " +"arena is created, and on shutdown." +msgstr "" +"Si elle est définie à une chaîne non vide, Python affiche des statistiques " +"relatives à l’:ref:`allocateur mémoire pymalloc ` chaque fois " +"qu'un objet est créé par ce gestionnaire, ainsi qu'à la fin de l'exécution " +"du programme." + +#: ../Doc/using/cmdline.rst:754 +msgid "" +"This variable is ignored if the :envvar:`PYTHONMALLOC` environment variable " +"is used to force the :c:func:`malloc` allocator of the C library, or if " +"Python is configured without ``pymalloc`` support." +msgstr "" +"Cette variable est ignorée si la variable d'environnement :envvar:" +"`PYTHONMALLOC` est utilisée pour forcer l'allocateur :c:func:`malloc` de la " +"bibliothèque C standard ou si Python est configuré sans le support de " +"``pymalloc``." + +#: ../Doc/using/cmdline.rst:758 +msgid "" +"This variable can now also be used on Python compiled in release mode. It " +"now has no effect if set to an empty string." +msgstr "" +"cette variable peut maintenant être utilisée avec Python compilé en mode " +"*release*. Elle n'a pas d'effet si elle est définie à une chaine vide." + +#: ../Doc/using/cmdline.rst:765 +msgid "" +"If set to a non-empty string, the default filesystem encoding and errors " +"mode will revert to their pre-3.6 values of 'mbcs' and 'replace', " +"respectively. Otherwise, the new defaults 'utf-8' and 'surrogatepass' are " +"used." +msgstr "" +"Si elle est définie et n’est pas une chaîne vide, l'encodage par défaut " +"respectivement du système de fichiers et des erreurs reviennent à leur " +"valeur pré-3.6, respectivement ``'mbcs'`` et ``'replace'``. Sinon, les " +"nouvelles valeurs par défaut ``\"UTF-8\"`` et ``\"surrogatepass\"`` sont " +"utilisées." + +#: ../Doc/using/cmdline.rst:769 +msgid "" +"This may also be enabled at runtime with :func:`sys." +"_enablelegacywindowsfsencoding()`." +msgstr "" +"Vous pouvez aussi activer ceci à l'exécution avec :func:`sys." +"_enablelegacywindowsfsencoding()`." + +#: ../Doc/using/cmdline.rst:773 ../Doc/using/cmdline.rst:787 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilité ` : Windows." + +#: ../Doc/using/cmdline.rst:774 +msgid "See :pep:`529` for more details." +msgstr "voir la :pep:`529` pour plus d'informations." + +#: ../Doc/using/cmdline.rst:779 +msgid "" +"If set to a non-empty string, does not use the new console reader and " +"writer. This means that Unicode characters will be encoded according to the " +"active console code page, rather than using utf-8." +msgstr "" +"Si elle est définie et n’est pas une chaîne vide, n'utilise pas les lecteur " +"et écrivain de la nouvelle console. Cela signifie que les caractères Unicode " +"sont encodés avec l'encodage de la console active plutôt qu'en UTF-8." + +#: ../Doc/using/cmdline.rst:783 +msgid "" +"This variable is ignored if the standard streams are redirected (to files or " +"pipes) rather than referring to console buffers." +msgstr "" +"Cette variable est ignorée si les flux standards sont redirigés (vers des " +"fichiers ou des tubes) plutôt que pointant vers des mémoires tampons de " +"console." + +#: ../Doc/using/cmdline.rst:793 +msgid "" +"If set to the value ``0``, causes the main Python command line application " +"to skip coercing the legacy ASCII-based C and POSIX locales to a more " +"capable UTF-8 based alternative." +msgstr "" +"Si elle est définie à la valeur ``0``, l'application en ligne de commande " +"principale Python ne prend pas en compte les configurations régionales C et " +"POSIX à base ASCII, mais bascule sur une alternative basée sur l'UTF-8 qui " +"doit posséder plus de possibilités." + +#: ../Doc/using/cmdline.rst:797 +msgid "" +"If this variable is *not* set (or is set to a value other than ``0``), the " +"``LC_ALL`` locale override environment variable is also not set, and the " +"current locale reported for the ``LC_CTYPE`` category is either the default " +"``C`` locale, or else the explicitly ASCII-based ``POSIX`` locale, then the " +"Python CLI will attempt to configure the following locales for the " +"``LC_CTYPE`` category in the order listed before loading the interpreter " +"runtime:" +msgstr "" +"Si cette variable n'est pas définie (ou est définie à une valeur autre que " +"``0``), que la variable d'environnement de configuration régionale " +"``LC_ALL`` est également non définie et que la configuration régionale " +"indiquée dans la catégorie ``LC_TYPE`` est soit la région par défaut ``C``, " +"soit la région ``POSIX`` qui demande explicitement de l'ASCII, alors " +"l'interpréteur en ligne de commande Python essaie de configurer les " +"paramètres régionaux pour la catégorie ``LC_TYPE`` dans l'ordre suivant " +"avant de charger l'exécutable de l'interpréteur :" + +#: ../Doc/using/cmdline.rst:805 +msgid "``C.UTF-8``" +msgstr "``C.UTF-8``" + +#: ../Doc/using/cmdline.rst:806 +msgid "``C.utf8``" +msgstr "``C.utf8``" + +#: ../Doc/using/cmdline.rst:807 +msgid "``UTF-8``" +msgstr "``UTF-8``" + +#: ../Doc/using/cmdline.rst:809 +msgid "" +"If setting one of these locale categories succeeds, then the ``LC_CTYPE`` " +"environment variable will also be set accordingly in the current process " +"environment before the Python runtime is initialized. This ensures that in " +"addition to being seen by both the interpreter itself and other locale-aware " +"components running in the same process (such as the GNU ``readline`` " +"library), the updated setting is also seen in subprocesses (regardless of " +"whether or not those processes are running a Python interpreter), as well as " +"in operations that query the environment rather than the current C locale " +"(such as Python's own :func:`locale.getdefaultlocale`)." +msgstr "" +"Si la définition d'une des configurations régionales fonctionne, la variable " +"d'environnement ``LC_TYPE`` est aussi définie ainsi dans l'environnement du " +"processus avant que l'exécutable Python ne soit initialisé. Ceci assure que, " +"en plus d'être vue par l'interpréteur lui-même et tous les autres composants " +"prenant en charge la configuration régionale dans le même processus (telle " +"que la bibliothèque GNU ``readline``), la configuration mise à jour est " +"aussi valable pour les sous-processus (indépendamment du fait qu'ils " +"utilisent un interpréteur Python ou non) ainsi que pour les opérations qui " +"font appel à l'environnement (qui utiliseraient sinon la configuration " +"régionale C courante, tel que c'est le cas pour la propre fonction Python :" +"func:`locale.getdefaultlocale`)." + +#: ../Doc/using/cmdline.rst:819 +msgid "" +"Configuring one of these locales (either explicitly or via the above " +"implicit locale coercion) automatically enables the ``surrogateescape`` :ref:" +"`error handler ` for :data:`sys.stdin` and :data:`sys." +"stdout` (:data:`sys.stderr` continues to use ``backslashreplace`` as it does " +"in any other locale). This stream handling behavior can be overridden using :" +"envvar:`PYTHONIOENCODING` as usual." +msgstr "" +"La configuration d'une de ces variables régionales (soit explicitement, soit " +"*via* le mécanisme décrit ci-dessus) active automatiquement " +"``surrogateescape`` pour la :ref:`gestion des erreurs ` de :" +"data:`sys.stdin` et :data:`sys.stdout` (:data:`sys.stderr` continue " +"d'utiliser ``backslashreplace`` comme pour toute autre configuration " +"régionale). Ce comportement relatif à la gestion des flux standards peut " +"être surchargé, comme d'habitude, par :envvar:`PYTHONIOENCODING`." + +#: ../Doc/using/cmdline.rst:826 +msgid "" +"For debugging purposes, setting ``PYTHONCOERCECLOCALE=warn`` will cause " +"Python to emit warning messages on ``stderr`` if either the locale coercion " +"activates, or else if a locale that *would* have triggered coercion is still " +"active when the Python runtime is initialized." +msgstr "" +"À fin de débogage, définir ``PYTHONCOERCECLOCALE=warn`` indique à Python " +"d'émettre les messages d'avertissement sur ``stderr`` si la configuration " +"régionale est activée, ou si une configuration régionale qui *aurait* activé " +"est toujours active quand l'interpréteur Python est initialisé." + +#: ../Doc/using/cmdline.rst:831 +msgid "" +"Also note that even when locale coercion is disabled, or when it fails to " +"find a suitable target locale, :envvar:`PYTHONUTF8` will still activate by " +"default in legacy ASCII-based locales. Both features must be disabled in " +"order to force the interpreter to use ``ASCII`` instead of ``UTF-8`` for " +"system interfaces." +msgstr "" +"Notez également que même si la contrainte sur la configuration régionale est " +"désactivée, ou si elle ne trouve pas une configuration satisfaisante et " +"échoue, :envvar:`PYTHONUTF8` s'active par défaut avec une configuration " +"régionale par défaut à base ASCII. Ces fonctionnalités doivent être " +"désactivées pour forcer l'interpréteur à utiliser ``ASCII`` en lieu et place " +"de ``UTF-8`` pour les interfaces avec le système." + +#: ../Doc/using/cmdline.rst:838 ../Doc/using/cmdline.rst:899 +msgid ":ref:`Availability `: \\*nix." +msgstr ":ref:`Disponibilité ` : systèmes de type UNIX." + +#: ../Doc/using/cmdline.rst:839 +msgid "See :pep:`538` for more details." +msgstr "voir la :pep:`538` pour plus d'informations." + +#: ../Doc/using/cmdline.rst:845 +msgid "" +"If this environment variable is set to a non-empty string, enable the " +"CPython \"development mode\". See the :option:`-X` ``dev`` option." +msgstr "" +"Si cette variable d'environnement est définie et non vide, active le \"mode " +"développeur\" de CPython. Voir l'option :option:`-X` ``dev``." + +#: ../Doc/using/cmdline.rst:852 +msgid "" +"If set to ``1``, enables the interpreter's UTF-8 mode, where ``UTF-8`` is " +"used as the text encoding for system interfaces, regardless of the current " +"locale setting." +msgstr "" +"Si elle vaut ``1``, active le mode UTF-8 pour l'interpréteur, où ``UTF-8`` " +"est utilisé pour encoder le texte en interface avec le système, quelle que " +"soit la configuration régionale en vigueur." + +#: ../Doc/using/cmdline.rst:856 +msgid "This means that:" +msgstr "Ce qui signifie que :" + +#: ../Doc/using/cmdline.rst:858 +msgid "" +":func:`sys.getfilesystemencoding()` returns ``'UTF-8'`` (the locale encoding " +"is ignored)." +msgstr "" +":func:`sys.getfilesystemencoding()` renvoie ``'UTF-8'`` (l'encodage défini " +"par la configuration régionale est ignoré)." + +#: ../Doc/using/cmdline.rst:860 +msgid "" +":func:`locale.getpreferredencoding()` returns ``'UTF-8'`` (the locale " +"encoding is ignored, and the function's ``do_setlocale`` parameter has no " +"effect)." +msgstr "" +":func:`locale.getpreferredencoding()` renvoie ``'UTF-8'`` (l'encodage défini " +"par la configuration régionale est ignoré et le paramètre ``do_setlocale`` " +"de la fonction n'a aucun effet)." + +#: ../Doc/using/cmdline.rst:863 +msgid "" +":data:`sys.stdin`, :data:`sys.stdout`, and :data:`sys.stderr` all use UTF-8 " +"as their text encoding, with the ``surrogateescape`` :ref:`error handler " +"` being enabled for :data:`sys.stdin` and :data:`sys.stdout` " +"(:data:`sys.stderr` continues to use ``backslashreplace`` as it does in the " +"default locale-aware mode)" +msgstr "" +":data:`sys.stdin`, :data:`sys.stdout` et :data:`sys.stderr` utilisent tous " +"l'UTF-8 pour l'encodage du texte, avec le :ref:`gestionnaire d'erreurs " +"` ``surrogateescape`` activé pour :data:`sys.stdin` et :data:" +"`sys.stdout` (:data:`sys.stderr` continue d'utiliser ``backslashreplace`` " +"comme pour le mode par défaut où il prend en compte la configuration " +"régionale)." + +#: ../Doc/using/cmdline.rst:869 +msgid "" +"As a consequence of the changes in those lower level APIs, other higher " +"level APIs also exhibit different default behaviours:" +msgstr "" +"En raison des changements apportés à ces API de bas-niveau, les API de haut-" +"niveau ont un comportement par défaut différent :" + +#: ../Doc/using/cmdline.rst:872 +msgid "" +"Command line arguments, environment variables and filenames are decoded to " +"text using the UTF-8 encoding." +msgstr "" +"les arguments en ligne de commande, les variables d'environnement et les " +"noms de fichiers sont décodés en texte en utilisant l'UTF-8." + +#: ../Doc/using/cmdline.rst:874 +msgid ":func:`os.fsdecode()` and :func:`os.fsencode()` use the UTF-8 encoding." +msgstr "" +":func:`os.fsdecode()` et :func:`os.fsencode()` utilisent l'encodage UTF-8." + +#: ../Doc/using/cmdline.rst:875 +msgid "" +":func:`open()`, :func:`io.open()`, and :func:`codecs.open()` use the UTF-8 " +"encoding by default. However, they still use the strict error handler by " +"default so that attempting to open a binary file in text mode is likely to " +"raise an exception rather than producing nonsense data." +msgstr "" +":func:`open()`, :func:`io.open()` et :func:`codecs.open()` utilisent " +"l'encodage UTF-8 par défaut. Cependant, elles utilisent le gestionnaire " +"d'erreurs \"strict\" par défaut, de manière à ce qu'ouvrir un fichier " +"binaire en mode texte lève une exception plutôt que de produire de la donnée " +"sans aucun sens." + +#: ../Doc/using/cmdline.rst:880 +msgid "" +"Note that the standard stream settings in UTF-8 mode can be overridden by :" +"envvar:`PYTHONIOENCODING` (just as they can be in the default locale-aware " +"mode)." +msgstr "" +"Notez que la configuration des flux standards en mode UTF-8 peut être " +"surchargée par :envvar:`PYTHONIOENCODING` (de la même manière qu'elles " +"peuvent l'être dans le mode par défaut qui est configuré pour la région " +"locale)." + +#: ../Doc/using/cmdline.rst:884 +msgid "If set to ``0``, the interpreter runs in its default locale-aware mode." +msgstr "" +"Si elle vaut ``0``, l'interpréteur fonctionne dans le mode configuré pour la " +"région locale (mode par défaut)." + +#: ../Doc/using/cmdline.rst:886 +msgid "" +"Setting any other non-empty string causes an error during interpreter " +"initialisation." +msgstr "" +"Définir une valeur autre (non vide) entraine une erreur pendant " +"l'initialisation de l'interpréteur." + +#: ../Doc/using/cmdline.rst:889 +msgid "" +"If this environment variable is not set at all, then the interpreter " +"defaults to using the current locale settings, *unless* the current locale " +"is identified as a legacy ASCII-based locale (as described for :envvar:" +"`PYTHONCOERCECLOCALE`), and locale coercion is either disabled or fails. In " +"such legacy locales, the interpreter will default to enabling UTF-8 mode " +"unless explicitly instructed not to do so." +msgstr "" +"Si cette variable d'environnement n'est pas définie, l'interpréteur se " +"configure pour utiliser la configuration régionale en cours, *à moins que* " +"cette configuration régionale ne soit identifiée comme ASCII (comme décrit " +"pour :envvar:`PYTHONCOERCECLOCALE`), et que soit la contrainte est " +"désactivée, soit elle échoue. Dans cette configuration régionale, " +"l'interpréteur active par défaut le mode UTF-8 à moins que vous n'indiquiez " +"explicitement de ne pas le faire." + +#: ../Doc/using/cmdline.rst:896 +msgid "Also available as the :option:`-X` ``utf8`` option." +msgstr "Également disponible en tant qu'option :option:`-X` ``utf8``." + +#: ../Doc/using/cmdline.rst:900 +msgid "See :pep:`540` for more details." +msgstr "voir la :pep:`540` pour plus d'informations." + +#: ../Doc/using/cmdline.rst:905 +msgid "Debug-mode variables" +msgstr "Variables en mode débogage" + +#: ../Doc/using/cmdline.rst:907 +msgid "" +"Setting these variables only has an effect in a debug build of Python, that " +"is, if Python was configured with the ``--with-pydebug`` build option." +msgstr "" +"Définir ces variables n'a d'effet que si Python a été compilé en mode " +"débogage, c'est-à-dire que l'option de compilation ``--with-pydebug`` a été " +"spécifiée." + +#: ../Doc/using/cmdline.rst:912 +msgid "If set, Python will print threading debug info." +msgstr "" +"Si elle est définie, Python affiche des informations de débogage relatives " +"aux différents fils d'exécution." + +#: ../Doc/using/cmdline.rst:917 +msgid "" +"If set, Python will dump objects and reference counts still alive after " +"shutting down the interpreter." +msgstr "" +"Si elle est définie, Python affiche (de manière brute) les objets et les " +"compteurs de références toujours existant après la fermeture de " +"l'interpréteur." + +#~ msgid "" +#~ "Kept for compatibility. On Python 3.3 and greater, hash randomization is " +#~ "turned on by default." +#~ msgstr "" +#~ "Conservé pour compatibilité ascendante. Sur Python 3.3 ou supérieur, la " +#~ "randomisation des empreintes (*hash* en anglais) est activée par défaut." + +#~ msgid "" +#~ "Force the binary layer of the stdout and stderr streams (which is " +#~ "available as their ``buffer`` attribute) to be unbuffered. The text I/O " +#~ "layer will still be line-buffered if writing to the console, or block-" +#~ "buffered if redirected to a non-interactive file." +#~ msgstr "" +#~ "Désactive les mémoires tampons de la couche binaire des flux de la sortie " +#~ "standard (*stdout*) et de la sortie d'erreurs (*stderr*) (ils restent " +#~ "accessibles *via* leur attribut ``buffer``). La couche d’entrée-sortie " +#~ "est mise en tampon ligne par ligne lors de l'écriture sur la console, ou " +#~ "par blocs si elle est redirigée sur un fichier non-interactif." + +#~ msgid "" +#~ "The simplest form of argument is one of the following action strings (or " +#~ "a unique abbreviation):" +#~ msgstr "" +#~ "La forme la plus simple de l'argument est l'une des chaînes d'actions " +#~ "suivantes (ou une abréviation unique) :" + +#~ msgid "Ignore all warnings." +#~ msgstr "Ignore tous les avertissements." + +#~ msgid "" +#~ "Explicitly request the default behavior (printing each warning once per " +#~ "source line)." +#~ msgstr "" +#~ "Demande explicitement le comportement par défaut (affiche chaque " +#~ "avertissement une fois par ligne de code source)." + +#~ msgid "``all``" +#~ msgstr "``all``" + +#~ msgid "" +#~ "Print a warning each time it occurs (this may generate many messages if a " +#~ "warning is triggered repeatedly for the same source line, such as inside " +#~ "a loop)." +#~ msgstr "" +#~ "Affiche un avertissement à chaque fois qu'il se produit (ce qui peut " +#~ "générer beaucoup de messages si l'avertissement est déclenché à plusieurs " +#~ "reprises, comme à l'intérieur d'une boucle)." + +#~ msgid "``module``" +#~ msgstr "``module``" + +#~ msgid "Print each warning only the first time it occurs in each module." +#~ msgstr "" +#~ "Affiche chaque avertissement uniquement la première fois qu'il apparaît " +#~ "dans chaque module." + +#~ msgid "Print each warning only the first time it occurs in the program." +#~ msgstr "" +#~ "Affiche chaque avertissement uniquement la première fois qu'il apparaît " +#~ "dans le programme." + +#~ msgid "Raise an exception instead of printing a warning message." +#~ msgstr "" +#~ "Déclenche une exception au lieu d'afficher un message d'avertissement." + +#~ msgid "The full form of argument is::" +#~ msgstr "La forme complète de l'argument est ::" + +#~ msgid "" +#~ "Here, *action* is as explained above but only applies to messages that " +#~ "match the remaining fields. Empty fields match all values; trailing " +#~ "empty fields may be omitted. The *message* field matches the start of " +#~ "the warning message printed; this match is case-insensitive. The " +#~ "*category* field matches the warning category. This must be a class " +#~ "name; the match tests whether the actual warning category of the message " +#~ "is a subclass of the specified warning category. The full class name " +#~ "must be given. The *module* field matches the (fully-qualified) module " +#~ "name; this match is case-sensitive. The *line* field matches the line " +#~ "number, where zero matches all line numbers and is thus equivalent to an " +#~ "omitted line number." +#~ msgstr "" +#~ "Ici, *action* est tel qu'expliqué ci-dessus, mais s'applique uniquement " +#~ "aux messages qui correspondent aux champs restants. Les champs vides " +#~ "correspondent à toutes les valeurs ; les champs vides de fin peuvent être " +#~ "omis. Le champ *message* correspond au début du message d'avertissement " +#~ "affiché, cette expression est insensible à la casse. Le champ *category* " +#~ "correspond à la catégorie d'avertissement. Ce nom doit être un nom " +#~ "complet de classe ; La règle s'applique à tous les messages d'alertes " +#~ "construits avec une classe qui hérite de celle spécifiée. Le nom de la " +#~ "classe complète doit être donnée. Le champ *module* correspond au nom " +#~ "(pleinement qualifié) du module, cette correspondance est sensible à la " +#~ "casse. Le champ *line* correspond au numéro de ligne, où zéro correspond " +#~ "à n'importe quel numéro de ligne et correspond donc à l'option par défaut." + +#~ msgid ":mod:`warnings` -- the warnings module" +#~ msgstr ":mod:`warnings` -- le module qui gère les avertissements." + +#~ msgid ":pep:`230` -- Warning framework" +#~ msgstr ":pep:`230` -- Gestion des alertes" + +#~ msgid "" +#~ "When Python is compiled in release mode, the default is ``pymalloc``. " +#~ "When compiled in debug mode, the default is ``pymalloc_debug`` and the " +#~ "debug hooks are used automatically." +#~ msgstr "" +#~ "Quand Python est compilé en mode *release*, la valeur par défaut est " +#~ "``pymalloc``. Quand il est compilé en mode débogage, la valeur par défaut " +#~ "est ``pymalloc_debug`` et les fonctions automatiques de débogage sont " +#~ "utilisées automatiquement." + +#~ msgid "" +#~ "If Python is configured without ``pymalloc`` support, ``pymalloc`` and " +#~ "``pymalloc_debug`` are not available, the default is ``malloc`` in " +#~ "release mode and ``malloc_debug`` in debug mode." +#~ msgstr "" +#~ "Si Python est configuré sans le support de ``pymalloc``, ``pymalloc`` et " +#~ "``pymalloc_debug`` ne sont pas disponibles. Les valeurs par défaut sont " +#~ "``malloc`` en mode *release* et ``malloc_debug`` en mode débogage." + +#~ msgid "Turn on basic optimizations. See also :envvar:`PYTHONOPTIMIZE`." +#~ msgstr "" +#~ "Active les optimisations basiques. Voir aussi :envvar:`PYTHONOPTIMIZE`." + +#~ msgid "Discard docstrings in addition to the :option:`-O` optimizations." +#~ msgstr "" +#~ "Supprime les *docstrings* en plus des optimisations réalisées par :option:" +#~ "`-O`." + +#~ msgid "The line numbers in error messages will be off by one." +#~ msgstr "" +#~ "Les numéros de ligne dans les messages d'erreur seront décalés de un." + +#, fuzzy +#~ msgid "all" +#~ msgstr "``all``" diff --git a/using/index.po b/using/index.po new file mode 100644 index 000000000..55df1683d --- /dev/null +++ b/using/index.po @@ -0,0 +1,31 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 00:20+0200\n" +"PO-Revision-Date: 2018-02-15 01:00+0100\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/using/index.rst:5 +msgid "Python Setup and Usage" +msgstr "Installation et utilisation de Python" + +#: ../Doc/using/index.rst:8 +msgid "" +"This part of the documentation is devoted to general information on the " +"setup of the Python environment on different platforms, the invocation of " +"the interpreter and things that make working with Python easier." +msgstr "" +"Cette partie de la documentation est consacrée aux informations générales au " +"sujet de l'installation de l'environnement Python sur différentes " +"plateformes, l'invocation de l'interpréteur et des choses qui facilitent le " +"travail avec Python." diff --git a/using/mac.po b/using/mac.po new file mode 100644 index 000000000..f36571290 --- /dev/null +++ b/using/mac.po @@ -0,0 +1,399 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-12 14:38+0200\n" +"PO-Revision-Date: 2018-11-23 10:07+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/using/mac.rst:6 +msgid "Using Python on a Macintosh" +msgstr "Utilisation de Python sur un Macintosh" + +#: ../Doc/using/mac.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/using/mac.rst:8 +msgid "Bob Savage " +msgstr "Bob Savage " + +#: ../Doc/using/mac.rst:11 +msgid "" +"Python on a Macintosh running Mac OS X is in principle very similar to " +"Python on any other Unix platform, but there are a number of additional " +"features such as the IDE and the Package Manager that are worth pointing out." +msgstr "" +"Python sur un Macintosh exécutant Mac OS X est en principe très similaire à " +"Python sur n'importe quelle autre plateforme Unix, mais il y a un certain " +"nombre de fonctionnalités additionnelle telle que l'IDE et le gestionnaire " +"de paquets qui méritent d'être soulignées." + +#: ../Doc/using/mac.rst:18 +msgid "Getting and Installing MacPython" +msgstr "Obtenir et installer MacPython" + +#: ../Doc/using/mac.rst:20 +msgid "" +"Mac OS X 10.8 comes with Python 2.7 pre-installed by Apple. If you wish, " +"you are invited to install the most recent version of Python 3 from the " +"Python website (https://www.python.org). A current \"universal binary\" " +"build of Python, which runs natively on the Mac's new Intel and legacy PPC " +"CPU's, is available there." +msgstr "" +"Mac OS X 10.8 contient déjà Python 2.7 pré-installé par Apple. Si vous le " +"souhaitez, vous êtes invités à installer la version la plus récente de " +"Python 3 à partir du site de Python (https://www.python.org). Une version " +"\"binaire universelle\" de Python, qui s'exécute nativement sur les nouveaux " +"processeurs Intel de Mac et les processeurs PPC, CPUs hérités de Mac, y est " +"disponible." + +#: ../Doc/using/mac.rst:26 +msgid "What you get after installing is a number of things:" +msgstr "Vous obtiendrez un certain nombre de choses après installation:" + +#: ../Doc/using/mac.rst:28 +#, fuzzy +msgid "" +"A :file:`Python 3.7` folder in your :file:`Applications` folder. In here you " +"find IDLE, the development environment that is a standard part of official " +"Python distributions; PythonLauncher, which handles double-clicking Python " +"scripts from the Finder; and the \"Build Applet\" tool, which allows you to " +"package Python scripts as standalone applications on your system." +msgstr "" +"Un dossier :file:`MacPython 3.6` dans votre dossier :file:`Applications`. " +"Dedans vous trouverez **IDLE**, l'environnement de développement qui fait " +"partie des distributions Python officielles ; **PythonLauncher**, qui gère " +"le lancement de scripts Python depuis le ``Finder`` ; et l'outil **\"Build " +"Applet\"**, qui permets d'empaqueter des scripts Python en tant " +"qu'applications à part entière sur votre système." + +#: ../Doc/using/mac.rst:34 +msgid "" +"A framework :file:`/Library/Frameworks/Python.framework`, which includes the " +"Python executable and libraries. The installer adds this location to your " +"shell path. To uninstall MacPython, you can simply remove these three " +"things. A symlink to the Python executable is placed in /usr/local/bin/." +msgstr "" +"Un **framework** :file:`/Library/Frameworks/Python.framework`, qui inclut " +"l’exécutable Python et ses bibliothèques. L’installateur ajoute ce chemin à " +"votre **PATH**. Pour désinstaller MacPython, vous pouvez simplement " +"supprimer ces trois choses. Un lien symbolique vers l'exécutable Python est " +"placé dans ``/usr/local/bin/``." + +#: ../Doc/using/mac.rst:39 +msgid "" +"The Apple-provided build of Python is installed in :file:`/System/Library/" +"Frameworks/Python.framework` and :file:`/usr/bin/python`, respectively. You " +"should never modify or delete these, as they are Apple-controlled and are " +"used by Apple- or third-party software. Remember that if you choose to " +"install a newer Python version from python.org, you will have two different " +"but functional Python installations on your computer, so it will be " +"important that your paths and usages are consistent with what you want to do." +msgstr "" +"Le **build** Python fourni par Apple est installé dans :file:`/System/" +"Library/Frameworks/Python.framework` et :file:`/usr/bin/python`. Vous ne " +"devriez jamais les modifier ou supprimer, car ils sont contrôlés et utilisés " +"par Apple (ou d'autres logiciels). Rappelez vous que si vous choisissez " +"d'installer un Python plus récent depuis python.org, vous aurez deux " +"installations de Python différentes et fonctionnelles sur votre ordinateur, " +"il est donc important que vos chemins et utilisations soit cohérentes avec " +"ce que vous voulez faire." + +#: ../Doc/using/mac.rst:47 +msgid "" +"IDLE includes a help menu that allows you to access Python documentation. If " +"you are completely new to Python you should start reading the tutorial " +"introduction in that document." +msgstr "" +"**IDLE** inclut un menu d'aide qui vous permet d’accéder à la documentation " +"Python. Si vous êtes entièrement novice, vous devriez commencer par lire le " +"tutoriel d'introduction dans ce document." + +#: ../Doc/using/mac.rst:51 +msgid "" +"If you are familiar with Python on other Unix platforms you should read the " +"section on running Python scripts from the Unix shell." +msgstr "" +"Si vous êtes familier avec Python sur d'autres plateformes Unix, vous " +"devriez lire la section sur comment exécuter des scripts Python depuis un " +"shell Unix." + +#: ../Doc/using/mac.rst:56 +msgid "How to run a Python script" +msgstr "Comment exécuter un script Python" + +#: ../Doc/using/mac.rst:58 +msgid "" +"Your best way to get started with Python on Mac OS X is through the IDLE " +"integrated development environment, see section :ref:`ide` and use the Help " +"menu when the IDE is running." +msgstr "" +"Le meilleur moyen de démarrer avec Python sur Max OS X est d'utiliser " +"l'environnement de développement intégré **IDLE**, voir la section :ref:" +"`ide` et utilisez le menu d'aide (**Help**) quand l'``IDE`` est lancé." + +#: ../Doc/using/mac.rst:62 +msgid "" +"If you want to run Python scripts from the Terminal window command line or " +"from the Finder you first need an editor to create your script. Mac OS X " +"comes with a number of standard Unix command line editors, :program:`vim` " +"and :program:`emacs` among them. If you want a more Mac-like editor, :" +"program:`BBEdit` or :program:`TextWrangler` from Bare Bones Software (see " +"http://www.barebones.com/products/bbedit/index.html) are good choices, as " +"is :program:`TextMate` (see https://macromates.com/). Other editors include :" +"program:`Gvim` (http://macvim-dev.github.io/macvim/) and :program:`Aquamacs` " +"(http://aquamacs.org/)." +msgstr "" +"Si vous souhaitez exécuter des scripts Python depuis l'invite de commande " +"dans la fenêtre Terminal, ou depuis le **Finder**, vous avez d'abord besoin " +"d'un éditeur pour créer votre script. Max OS X propose un certain nombre " +"d’éditeurs shell Unix standards, dont :program:`vim` et :program:`emacs`. Si " +"vous voulez une interface plus Mac, :program:`BBEdit` ou :program:" +"`TextWrangler` de Bare Bones Software (voir http://www.barebones.com/" +"products/bbedit/index.html) sont de bons choix, tout comme :program:" +"`TextMate` (voir https://macromates.com/). D'autres éditeurs existent comme :" +"program:`Gvim` (http://macvim-dev.github.io/macvim/) et :program:`Aquamacs` " +"(http://aquamacs.org/)." + +#: ../Doc/using/mac.rst:72 +msgid "" +"To run your script from the Terminal window you must make sure that :file:`/" +"usr/local/bin` is in your shell search path." +msgstr "" +"Pour exécuter votre script depuis la fenêtre Terminal, vous devez vous " +"assurer que :file:`/usr/local/bin` est dans le chemin de recherche de votre " +"shell (**PATH**)." + +#: ../Doc/using/mac.rst:75 +msgid "To run your script from the Finder you have two options:" +msgstr "Pour exécuter votre script depuis le Finder vous avez deux options :" + +#: ../Doc/using/mac.rst:77 +msgid "Drag it to :program:`PythonLauncher`" +msgstr "Glissez-le vers :program:`PythonLauncher`" + +#: ../Doc/using/mac.rst:79 +msgid "" +"Select :program:`PythonLauncher` as the default application to open your " +"script (or any .py script) through the finder Info window and double-click " +"it. :program:`PythonLauncher` has various preferences to control how your " +"script is launched. Option-dragging allows you to change these for one " +"invocation, or use its Preferences menu to change things globally." +msgstr "" +"Sélectionnez :program:`PythonLauncher` en tant qu'application par défaut " +"pour ouvrir votre script (ou n'importe quel script ``.py``) depuis la " +"fenêtre **info** de votre Finder puis double-cliquez votre script. :program:" +"`PythonLauncher` a des préférences variées pour contrôler comment votre " +"script est exécuté. Glisser des options permets de les changer pour une " +"invocation, ou utilisez le menu Préférences pour changer les choses " +"globalement." + +#: ../Doc/using/mac.rst:89 +msgid "Running scripts with a GUI" +msgstr "Lancer des scripts avec une interface graphique" + +#: ../Doc/using/mac.rst:91 +msgid "" +"With older versions of Python, there is one Mac OS X quirk that you need to " +"be aware of: programs that talk to the Aqua window manager (in other words, " +"anything that has a GUI) need to be run in a special way. Use :program:" +"`pythonw` instead of :program:`python` to start such scripts." +msgstr "" +"Avec les anciennes versions de Python, il y a une bizarrerie Max OS X dont " +"vous devez être au courant : les programmes qui communiquent avec le " +"gestionnaires de fenêtre **Aqua** (en d'autres termes, tout ce qui a une " +"interface graphique) doivent être exécutés de façon spécifique. Utilisez :" +"program:`pythonw` au lieu de :program:`python` pour exécuter ce genre de " +"scripts." + +#: ../Doc/using/mac.rst:96 +#, fuzzy +msgid "" +"With Python 3.7, you can use either :program:`python` or :program:`pythonw`." +msgstr "" +"Avec Python 3.6, vous pouvez utilisez :program:`python` ou :program:" +"`pythonw`." + +#: ../Doc/using/mac.rst:100 +msgid "Configuration" +msgstr "Configuration" + +#: ../Doc/using/mac.rst:102 +msgid "" +"Python on OS X honors all standard Unix environment variables such as :" +"envvar:`PYTHONPATH`, but setting these variables for programs started from " +"the Finder is non-standard as the Finder does not read your :file:`.profile` " +"or :file:`.cshrc` at startup. You need to create a file :file:`~/.MacOSX/" +"environment.plist`. See Apple's Technical Document QA1067 for details." +msgstr "" +"Python sur OS X respecte tous les standards Unix pour les variables " +"d'environnement comme :envvar:`PYTHONPATH`, mais définir ces variables pour " +"des programmes exécutés depuis le Finder n'est pas standard car le Finder ne " +"lit pas votre :file:`.profile` ou :file:`.cshrc` au démarrage. Vous devez " +"créer un fichier :file:`~/.MacOSX/environment.plist`. Voir le document " +"technique d'Apple QA1067 pour plus de détails." + +#: ../Doc/using/mac.rst:109 +msgid "" +"For more information on installation Python packages in MacPython, see " +"section :ref:`mac-package-manager`." +msgstr "" +"Pour plus d'informations sur l'installation de paquets Python dans " +"**MacPython**, voir la section :ref:`mac-package-manager`." + +#: ../Doc/using/mac.rst:116 +msgid "The IDE" +msgstr "L'*IDE*" + +#: ../Doc/using/mac.rst:118 +msgid "" +"MacPython ships with the standard IDLE development environment. A good " +"introduction to using IDLE can be found at http://www.hashcollision.org/hkn/" +"python/idle_intro/index.html." +msgstr "" +"**MacPython** est livré avec l'environnement de développement standard " +"**IDLE**. Une bonne introduction sur l’utilisation d'**IDLE** peut être " +"trouvée à http://www.hashcollision.org/hkn/python/idle_intro/index.html." + +#: ../Doc/using/mac.rst:126 +msgid "Installing Additional Python Packages" +msgstr "Installation de paquets Python additionnels" + +#: ../Doc/using/mac.rst:128 +msgid "There are several methods to install additional Python packages:" +msgstr "" +"Il y a plusieurs méthodes pour installer des paquets Python supplémentaires :" + +#: ../Doc/using/mac.rst:130 +msgid "" +"Packages can be installed via the standard Python distutils mode (``python " +"setup.py install``)." +msgstr "" +"Les paquets peuvent être installés en utilisant **distutils** (``python " +"setup.py install``)." + +#: ../Doc/using/mac.rst:133 +msgid "" +"Many packages can also be installed via the :program:`setuptools` extension " +"or :program:`pip` wrapper, see https://pip.pypa.io/." +msgstr "" +"Beaucoup de paquets peuvent aussi être installés via l'extension :program:" +"`setuptools` ou :program:`pip`, voir https://pip.pypa.io/." + +#: ../Doc/using/mac.rst:138 +msgid "GUI Programming on the Mac" +msgstr "Programmation d'interface graphique sur le Mac" + +#: ../Doc/using/mac.rst:140 +msgid "" +"There are several options for building GUI applications on the Mac with " +"Python." +msgstr "" +"Il y a plusieurs options pour construire des applications avec interface " +"graphique sur le Mac avec Python." + +#: ../Doc/using/mac.rst:142 +msgid "" +"*PyObjC* is a Python binding to Apple's Objective-C/Cocoa framework, which " +"is the foundation of most modern Mac development. Information on PyObjC is " +"available from https://pypi.org/project/pyobjc/." +msgstr "" +"*PyObjC* est un **binding** Python vers le **framework** Objective-C/Cocoa " +"d'Apple, qui est la base de la plupart des développements modernes sur Mac. " +"Des informations sur PyObjC sont disponible à https://pypi.org/project/" +"pyobjc/." + +#: ../Doc/using/mac.rst:146 +msgid "" +"The standard Python GUI toolkit is :mod:`tkinter`, based on the cross-" +"platform Tk toolkit (https://www.tcl.tk). An Aqua-native version of Tk is " +"bundled with OS X by Apple, and the latest version can be downloaded and " +"installed from https://www.activestate.com; it can also be built from source." +msgstr "" +"La boîte à outils standard de Python pour des interfaces graphique est :mod:" +"`tkinter`, basé sur la boite a outils multi-plateformes **Tk** (https://www." +"tcl.tk). Une version native **Aqua** de **Tk** est empaquetée avec OS X par " +"Apple, et la dernière version peut être téléchargée et installée depuis " +"https://www.activestate.com ; elle peut aussi être construite depuis les " +"sources." + +#: ../Doc/using/mac.rst:151 +msgid "" +"*wxPython* is another popular cross-platform GUI toolkit that runs natively " +"on Mac OS X. Packages and documentation are available from https://www." +"wxpython.org." +msgstr "" +"*wxPython* est une boîte à outils multi-plateformes pour interfaces " +"graphique populaire qui tourne nativement sur Mac OS X. Les paquets et la " +"documentation sont disponibles sur https://www.wxpython.org." + +#: ../Doc/using/mac.rst:154 +msgid "" +"*PyQt* is another popular cross-platform GUI toolkit that runs natively on " +"Mac OS X. More information can be found at https://riverbankcomputing.com/" +"software/pyqt/intro." +msgstr "" +"*PyQt* est une boîte à outils multi-plateformes pour interfaces graphique " +"populaire qui tourne nativement sur Mac OS X. Plus d'informations disponible " +"sur https://riverbankcomputing.com/software/pyqt/intro." + +#: ../Doc/using/mac.rst:160 +msgid "Distributing Python Applications on the Mac" +msgstr "Distribuer des Applications Python sur le Mac" + +#: ../Doc/using/mac.rst:162 +msgid "" +"The \"Build Applet\" tool that is placed in the MacPython 3.6 folder is fine " +"for packaging small Python scripts on your own machine to run as a standard " +"Mac application. This tool, however, is not robust enough to distribute " +"Python applications to other users." +msgstr "" +"L'outil \"Build Applet\" qui est placé dans le dossier MacPython 3.6 est " +"suffisant pour empaqueter des petits scripts Python sur votre propre machine " +"et pour les exécuter en tant qu'application Mac standard. Cependant, cet " +"outil n'est pas assez robuste pour distribuer des applications Python à " +"d'autres utilisateurs." + +#: ../Doc/using/mac.rst:167 +msgid "" +"The standard tool for deploying standalone Python applications on the Mac " +"is :program:`py2app`. More information on installing and using py2app can be " +"found at http://undefined.org/python/#py2app." +msgstr "" +"L'outil standard pour déployer des applications Python sur le Mac est :" +"program:`py2app`. Plus d'information sur l'installation et l'utilisation de " +"**py2app** sur http://undefined.org/python/#py2app." + +#: ../Doc/using/mac.rst:173 +msgid "Other Resources" +msgstr "Autres ressources" + +#: ../Doc/using/mac.rst:175 +msgid "" +"The MacPython mailing list is an excellent support resource for Python users " +"and developers on the Mac:" +msgstr "" +"La liste de diffusion courriel **MacPython** est une excellente ressource " +"support pour les utilisateurs et développeurs Python sur Mac :" + +#: ../Doc/using/mac.rst:178 +msgid "https://www.python.org/community/sigs/current/pythonmac-sig/" +msgstr "https://www.python.org/community/sigs/current/pythonmac-sig/" + +#: ../Doc/using/mac.rst:180 +msgid "Another useful resource is the MacPython wiki:" +msgstr "Une autre ressource utile est le wiki **MacPython** :" + +#: ../Doc/using/mac.rst:182 +msgid "https://wiki.python.org/moin/MacPython" +msgstr "https://wiki.python.org/moin/MacPython" diff --git a/using/unix.po b/using/unix.po new file mode 100644 index 000000000..2097ebac1 --- /dev/null +++ b/using/unix.po @@ -0,0 +1,294 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"PO-Revision-Date: 2018-12-14 10:10+0100\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" + +#: ../Doc/using/unix.rst:7 +msgid "Using Python on Unix platforms" +msgstr "Utilisation de Python sur les plateformes Unix" + +#: ../Doc/using/unix.rst:13 +msgid "Getting and installing the latest version of Python" +msgstr "Récupérer et installer la dernière version de Python" + +#: ../Doc/using/unix.rst:16 +msgid "On Linux" +msgstr "Sur Linux" + +#: ../Doc/using/unix.rst:18 +msgid "" +"Python comes preinstalled on most Linux distributions, and is available as a " +"package on all others. However there are certain features you might want to " +"use that are not available on your distro's package. You can easily compile " +"the latest version of Python from source." +msgstr "" +"Python est pré-installé sur la plupart des distributions Linux, et est " +"disponible en paquet sur toutes les autres. Cependant, il y a certaines " +"fonctionnalités que vous voudrez utiliser qui ne seront pas disponibles sur " +"le paquet de votre distribution. Vous pouvez facilement compiler la dernière " +"version de Python depuis les sources." + +#: ../Doc/using/unix.rst:23 +msgid "" +"In the event that Python doesn't come preinstalled and isn't in the " +"repositories as well, you can easily make packages for your own distro. " +"Have a look at the following links:" +msgstr "" +"Dans le cas où Python n'est pas pré-installé et n'est pas dans les dépôts " +"non plus, vous pouvez facilement faire les paquets pour votre propre " +"distribution. Jetez un œil à ces liens :" + +#: ../Doc/using/unix.rst:29 +msgid "https://www.debian.org/doc/manuals/maint-guide/first.en.html" +msgstr "https://www.debian.org/doc/manuals/maint-guide/first.fr.html" + +#: ../Doc/using/unix.rst:30 +msgid "for Debian users" +msgstr "pour les utilisateurs de Debian" + +#: ../Doc/using/unix.rst:31 +msgid "https://en.opensuse.org/Portal:Packaging" +msgstr "https://en.opensuse.org/Portal:Packaging" + +#: ../Doc/using/unix.rst:32 +msgid "for OpenSuse users" +msgstr "pour les utilisateurs d'OpenSuse" + +#: ../Doc/using/unix.rst:33 +msgid "" +"https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/" +"RPM_Guide/ch-creating-rpms.html" +msgstr "" +"https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/" +"RPM_Guide/ch-creating-rpms.html" + +#: ../Doc/using/unix.rst:34 +msgid "for Fedora users" +msgstr "pour les utilisateurs de Fedora" + +#: ../Doc/using/unix.rst:35 +msgid "http://www.slackbook.org/html/package-management-making-packages.html" +msgstr "http://www.slackbook.org/html/package-management-making-packages.html" + +#: ../Doc/using/unix.rst:36 +msgid "for Slackware users" +msgstr "pour les utilisateurs de Slackware" + +#: ../Doc/using/unix.rst:40 +msgid "On FreeBSD and OpenBSD" +msgstr "Sur FreeBSD et OpenBSD" + +#: ../Doc/using/unix.rst:42 +msgid "FreeBSD users, to add the package use::" +msgstr "Utilisateurs de FreeBSD, pour installer le paquet, utilisez ::" + +#: ../Doc/using/unix.rst:46 +msgid "OpenBSD users, to add the package use::" +msgstr "Utilisateurs d'OpenBSD, pour installer le paquet, utilisez ::" + +#: ../Doc/using/unix.rst:52 +msgid "For example i386 users get the 2.5.1 version of Python using::" +msgstr "" +"Par exemple les utilisateurs d'``i386`` récupèrent la version 2.5.1 de " +"Python en faisant ::" + +#: ../Doc/using/unix.rst:58 +msgid "On OpenSolaris" +msgstr "Sur OpenSolaris" + +#: ../Doc/using/unix.rst:60 +msgid "" +"You can get Python from `OpenCSW `_. Various " +"versions of Python are available and can be installed with e.g. ``pkgutil -i " +"python27``." +msgstr "" +"Vous pouvez récupérer Python depuis `OpenCSW `_. " +"Différentes versions de Python sont disponibles et peuvent être installées. " +"Exemple : ``pkgutil -i python27``." + +#: ../Doc/using/unix.rst:67 +msgid "Building Python" +msgstr "Compiler Python" + +#: ../Doc/using/unix.rst:69 +msgid "" +"If you want to compile CPython yourself, first thing you should do is get " +"the `source `_. You can download " +"either the latest release's source or just grab a fresh `clone `_. (If you want to " +"contribute patches, you will need a clone.)" +msgstr "" +"Si vous voulez compiler CPython vous-même, la première chose à faire est de " +"récupérer le `code source `_. Vous " +"pouvez télécharger la dernière version ou faire un `clone `_. (Si vous voulez contribuer à " +"des correctifs, il vous faut un clone.)" + +#: ../Doc/using/unix.rst:75 +msgid "The build process consists in the usual ::" +msgstr "Le processus de compilation est le suivant ::" + +#: ../Doc/using/unix.rst:81 +msgid "" +"invocations. Configuration options and caveats for specific Unix platforms " +"are extensively documented in the :source:`README.rst` file in the root of " +"the Python source tree." +msgstr "" +"Les options de configuration et mises en garde pour certaines plateformes " +"Unix spécifiques sont largement documentées dans le fichier :source:`README." +"rst` à la racine du dossier des sources Python." + +#: ../Doc/using/unix.rst:87 +msgid "" +"``make install`` can overwrite or masquerade the :file:`python3` binary. " +"``make altinstall`` is therefore recommended instead of ``make install`` " +"since it only installs :file:`{exec_prefix}/bin/python{version}`." +msgstr "" +"``make install`` peut écraser ou cacher le binaire :file:`python3`. ``make " +"altinstall`` est donc recommandé à la place de ``make install`` puisqu'il " +"installe seulement :file:`{exec_prefix}/bin/python{version}`." + +#: ../Doc/using/unix.rst:93 +msgid "Python-related paths and files" +msgstr "Fichiers et chemins liés à Python" + +#: ../Doc/using/unix.rst:95 +msgid "" +"These are subject to difference depending on local installation " +"conventions; :envvar:`prefix` (``${prefix}``) and :envvar:`exec_prefix` (``" +"${exec_prefix}``) are installation-dependent and should be interpreted as " +"for GNU software; they may be the same." +msgstr "" +"Ceux-ci sont sujets à des différences en fonction des conventions locales " +"d'installation ; :envvar:`prefix` (``${prefix}``) et :envvar:`exec_prefix` " +"(``${exec_prefix}``) sont dépendants de l’installation et doivent être " +"interprétés comme pour des logiciels GNU ; ils peuvent être égaux." + +#: ../Doc/using/unix.rst:100 +msgid "" +"For example, on most Linux systems, the default for both is :file:`/usr`." +msgstr "" +"Par exemple, sur la plupart des systèmes Linux, leur valeur par défaut est :" +"file:`/usr`." + +#: ../Doc/using/unix.rst:103 +msgid "File/directory" +msgstr "Fichier/dossier" + +#: ../Doc/using/unix.rst:103 +msgid "Meaning" +msgstr "Signification" + +#: ../Doc/using/unix.rst:105 +msgid ":file:`{exec_prefix}/bin/python3`" +msgstr ":file:`{exec_prefix}/bin/python3`" + +#: ../Doc/using/unix.rst:105 +msgid "Recommended location of the interpreter." +msgstr "Emplacement recommandé de l'interpréteur." + +#: ../Doc/using/unix.rst:107 +msgid "" +":file:`{prefix}/lib/python{version}`, :file:`{exec_prefix}/lib/" +"python{version}`" +msgstr "" +":file:`{prefix}/lib/python{version}`, :file:`{exec_prefix}/lib/" +"python{version}`" + +#: ../Doc/using/unix.rst:107 +msgid "" +"Recommended locations of the directories containing the standard modules." +msgstr "Emplacements recommandés des dossiers contenant les modules standards." + +#: ../Doc/using/unix.rst:110 +msgid "" +":file:`{prefix}/include/python{version}`, :file:`{exec_prefix}/include/" +"python{version}`" +msgstr "" +":file:`{prefix}/include/python{version}`, :file:`{exec_prefix}/include/" +"python{version}`" + +#: ../Doc/using/unix.rst:110 +msgid "" +"Recommended locations of the directories containing the include files needed " +"for developing Python extensions and embedding the interpreter." +msgstr "" +"Emplacements recommandés des dossiers contenant les entêtes nécessaires au " +"développement d'extensions Python et à l'intégration de l'interpréteur." + +#: ../Doc/using/unix.rst:118 +msgid "Miscellaneous" +msgstr "Divers" + +#: ../Doc/using/unix.rst:120 +msgid "" +"To easily use Python scripts on Unix, you need to make them executable, e.g. " +"with" +msgstr "" +"Pour utiliser facilement des scripts Python sur Unix, vous devez les rendre " +"exécutables, par exemple avec" + +#: ../Doc/using/unix.rst:127 +msgid "" +"and put an appropriate Shebang line at the top of the script. A good choice " +"is usually ::" +msgstr "" +"et mettre un *shebang* approprié en haut du script. Un bon choix est " +"généralement ::" + +#: ../Doc/using/unix.rst:132 +msgid "" +"which searches for the Python interpreter in the whole :envvar:`PATH`. " +"However, some Unices may not have the :program:`env` command, so you may " +"need to hardcode ``/usr/bin/python3`` as the interpreter path." +msgstr "" +"qui cherche l’interpréteur Python dans le :envvar:`PATH` complet. Cependant, " +"certains systèmes Unix peuvent ne pas avoir la commande :program:`env`, donc " +"vous devrez littéralement écrire ``/usr/bin/python3`` en tant que chemin " +"d’interpréteur." + +#: ../Doc/using/unix.rst:136 +msgid "" +"To use shell commands in your Python scripts, look at the :mod:`subprocess` " +"module." +msgstr "" +"Pour utiliser des commandes *shell* dans vos scripts Python, regardez le " +"module :mod:`subprocess`." + +#: ../Doc/using/unix.rst:140 +msgid "Editors and IDEs" +msgstr "Éditeurs et IDEs" + +#: ../Doc/using/unix.rst:142 +msgid "" +"There are a number of IDEs that support Python programming language. Many " +"editors and IDEs provide syntax highlighting, debugging tools, and :pep:`8` " +"checks." +msgstr "" +"Il y a un grand nombre d'environnement de développement qui gèrent le " +"langage de programmation Python. Beaucoup d'éditeurs et d'EDIs proposent une " +"mise en surbrillance de la syntaxe, des outils de débogage et une " +"vérification PEP-8." + +#: ../Doc/using/unix.rst:145 +msgid "" +"Please go to `Python Editors `_ " +"and `Integrated Development Environments `_ for a comprehensive list." +msgstr "" +"Merci d'aller sur `Python Editors `_ et `Integrated Development Environments `_ pour une liste " +"exhaustive." diff --git a/using/windows.po b/using/windows.po new file mode 100644 index 000000000..268ec5a4d --- /dev/null +++ b/using/windows.po @@ -0,0 +1,2516 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2019-08-16 23:27+0200\n" +"Last-Translator: Jules Lasne \n" +"Language-Team: FRENCH \n" +"Language: fr_FR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.2.1\n" +"X-Poedit-SourceCharset: UTF-8\n" + +#: ../Doc/using/windows.rst:7 +msgid "Using Python on Windows" +msgstr "Utilisation de Python sur Windows" + +#: ../Doc/using/windows.rst:12 +msgid "" +"This document aims to give an overview of Windows-specific behaviour you " +"should know about when using Python on Microsoft Windows." +msgstr "" +"Ce document a pour but de donner une vue d'ensemble des comportements " +"spécifiques à Windows dont vous devriez être au courant si vous utilisez " +"Python sur Microsoft Windows." + +#: ../Doc/using/windows.rst:15 +msgid "" +"Unlike most Unix systems and services, Windows does not include a system " +"supported installation of Python. To make Python available, the CPython team " +"has compiled Windows installers (MSI packages) with every `release `_ for many years. These installers are " +"primarily intended to add a per-user installation of Python, with the core " +"interpreter and library being used by a single user. The installer is also " +"able to install for all users of a single machine, and a separate ZIP file " +"is available for application-local distributions." +msgstr "" +"Contrairement à la plupart des systèmes Unix, Windows n'inclut pas " +"d'installation de Python par défaut. Pour rendre Python disponible, l’équipe " +"CPython a compilé des installateurs (paquets MSI) pour chaque `release " +"`_ depuis plusieurs années. Ces " +"installateurs sont principalement destinés à une installation par " +"utilisateur de Python, avec l’interpréteur et la bibliothèque standard " +"utilisés par un seul utilisateur. Cet installateur peut aussi installer " +"Python pour tous les utilisateurs sur une seule machine et un fichier ZIP " +"séparé est disponible pour intégrer Python dans d'autres applications." + +#: ../Doc/using/windows.rst:24 +msgid "" +"As specified in :pep:`11`, a Python release only supports a Windows platform " +"while Microsoft considers the platform under extended support. This means " +"that Python |version| supports Windows Vista and newer. If you require " +"Windows XP support then please install Python 3.4." +msgstr "" +"Comme spécifié dans la :pep:`11`, une *release* Python ne gère qu'une " +"plateforme Windows alors que Microsoft considère la plateforme sous support " +"étendu. Ce qui veut dire que Python |version| supporte Windows Vista et " +"plus. Si vous avez besoin de compatibilité Windows XP, vous devez utiliser " +"Python 3.4." + +#: ../Doc/using/windows.rst:29 +msgid "" +"There are a number of different installers available for Windows, each with " +"certain benefits and downsides." +msgstr "" +"Il existe un certain nombre d'installateurs différents disponibles pour " +"Windows, chacun avec certains avantages et inconvénients." + +#: ../Doc/using/windows.rst:32 +msgid "" +":ref:`windows-full` contains all components and is the best option for " +"developers using Python for any kind of project." +msgstr "" +":ref:`windows-full` contient tous les composants et est la meilleure option " +"pour les développeurs utilisant Python pour tout type de projet." + +#: ../Doc/using/windows.rst:35 +msgid "" +":ref:`windows-store` is a simple installation of Python that is suitable for " +"running scripts and packages, and using IDLE or other development " +"environments. It requires Windows 10, but can be safely installed without " +"corrupting other programs. It also provides many convenient commands for " +"launching Python and its tools." +msgstr "" +":ref:`windows-store` est une simple installation de Python qui convient à " +"l'exécution de scripts, de paquets et à l’utilisation d’IDLE ou d'autres " +"environnements de développement. Il nécessite Windows 10, mais peut être " +"installé en toute sécurité sans endommager d'autres programmes. Il fournit " +"également de nombreuses commandes pratiques pour lancer Python et ses outils." + +#: ../Doc/using/windows.rst:41 +msgid "" +":ref:`windows-nuget` are lightweight installations intended for continuous " +"integration systems. It can be used to build Python packages or run scripts, " +"but is not updateable and has no user interface tools." +msgstr "" +":ref:`windows-nuget` sont des installations légères destinées aux systèmes " +"d'intégration continue. Ils peuvent être utilisés pour créer des packages " +"Python ou exécuter des scripts, mais ne sont pas modifiables et n'ont pas " +"d'outils d'interface utilisateur." + +#: ../Doc/using/windows.rst:45 +msgid "" +":ref:`windows-embeddable` is a minimal package of Python suitable for " +"embedding into a larger application." +msgstr "" +":ref:`windows-embeddable` est un paquet minimal de Python approprié pour " +"l'intégration dans une plus grande application." + +#: ../Doc/using/windows.rst:52 +msgid "The full installer" +msgstr "L'installateur complet" + +#: ../Doc/using/windows.rst:55 +msgid "Installation steps" +msgstr "Étapes d'installation" + +#: ../Doc/using/windows.rst:57 +msgid "" +"Four Python |version| installers are available for download - two each for " +"the 32-bit and 64-bit versions of the interpreter. The *web installer* is a " +"small initial download, and it will automatically download the required " +"components as necessary. The *offline installer* includes the components " +"necessary for a default installation and only requires an internet " +"connection for optional features. See :ref:`install-layout-option` for other " +"ways to avoid downloading during installation." +msgstr "" +"Quatre installateurs Python |version| sont disponibles au téléchargement — " +"deux de chaque pour les versions 32-bit et 64-bit de l'interpréteur. " +"L'**installateur web** est léger, et téléchargera automatiquement les " +"composants nécessaires. L'**installateur hors-ligne** inclut les composants " +"nécessaires pour une installation par défaut et n'a besoin d'une connexion " +"internet que pour des fonctionnalités optionnelles. Voir :ref:`install-" +"layout-option` pour d'autres moyens d’éviter des téléchargements durant " +"l'installation." + +#: ../Doc/using/windows.rst:65 +msgid "After starting the installer, one of two options may be selected:" +msgstr "Après avoir lancé l'installateur, deux options s'affichent :" + +#: ../Doc/using/windows.rst:69 +msgid "If you select \"Install Now\":" +msgstr "Si vous sélectionnez \"Installer Maintenant\" (``Install Now``):" + +#: ../Doc/using/windows.rst:71 +msgid "" +"You will *not* need to be an administrator (unless a system update for the C " +"Runtime Library is required or you install the :ref:`launcher` for all users)" +msgstr "" +"Vous n'aurez *pas* besoin d'avoir les droits d'administrateur (sauf si une " +"mise à jour de la bibliothèque d'exécution C est nécessaire ou si vous " +"installez le :ref:`launcher` pour tous les utilisateurs)" + +#: ../Doc/using/windows.rst:74 +msgid "Python will be installed into your user directory" +msgstr "Python sera installé dans votre répertoire utilisateur" + +#: ../Doc/using/windows.rst:75 +msgid "" +"The :ref:`launcher` will be installed according to the option at the bottom " +"of the first page" +msgstr "" +"Le :ref:`launcher` sera installé suivant l'option en bas de la première page" + +#: ../Doc/using/windows.rst:77 +msgid "The standard library, test suite, launcher and pip will be installed" +msgstr "" +"La bibliothèque standard, la suite de tests, le lanceur et *pip* seront " +"installés" + +#: ../Doc/using/windows.rst:78 +msgid "If selected, the install directory will be added to your :envvar:`PATH`" +msgstr "" +"Si l'option est cochée, le dossier d'installation sera ajouté à votre :" +"envvar:`PATH`" + +#: ../Doc/using/windows.rst:79 +msgid "Shortcuts will only be visible for the current user" +msgstr "Les raccourcis ne seront visibles que pour l'utilisateur actuel" + +#: ../Doc/using/windows.rst:81 +msgid "" +"Selecting \"Customize installation\" will allow you to select the features " +"to install, the installation location and other options or post-install " +"actions. To install debugging symbols or binaries, you will need to use this " +"option." +msgstr "" +"Sélectionner \"Personnaliser l'installation\" (``Customize installation``) " +"vous permettra de sélectionner les fonctionnalités à installer, le chemin " +"d'installation et d'autres options ou des options post-installation. Pour " +"installer des binaires ou symboles de débogage, vous devrez utiliser cette " +"option." + +#: ../Doc/using/windows.rst:85 +msgid "" +"To perform an all-users installation, you should select \"Customize " +"installation\". In this case:" +msgstr "" +"Pour effectuer une installation pour tous les utilisateurs, vous devez " +"sélectionner \"Personnaliser l'installation\". Dans ce cas :" + +#: ../Doc/using/windows.rst:88 +msgid "You may be required to provide administrative credentials or approval" +msgstr "" +"Vous pouvez avoir à donner une approbation ou des identifiants administrateur" + +#: ../Doc/using/windows.rst:89 +msgid "Python will be installed into the Program Files directory" +msgstr "Python sera installé dans le dossier *Program Files*" + +#: ../Doc/using/windows.rst:90 +msgid "The :ref:`launcher` will be installed into the Windows directory" +msgstr "Le :ref:`launcher` sera installé dans le dossier *Windows*" + +#: ../Doc/using/windows.rst:91 +msgid "Optional features may be selected during installation" +msgstr "" +"Des fonctionnalités optionnelles peuvent être sélectionnées durant " +"l'installation" + +#: ../Doc/using/windows.rst:92 +msgid "The standard library can be pre-compiled to bytecode" +msgstr "" +"La bibliothèque standard peut être pré-compilée en code intermédiaire " +"(*bytecode* en anglais)" + +#: ../Doc/using/windows.rst:93 +msgid "" +"If selected, the install directory will be added to the system :envvar:`PATH`" +msgstr "" +"Si sélectionné, le chemin d'installation sera ajouté au :envvar:`PATH` " +"système" + +#: ../Doc/using/windows.rst:94 +msgid "Shortcuts are available for all users" +msgstr "Les raccourcis sont disponibles pour tous les utilisateurs" + +#: ../Doc/using/windows.rst:99 +msgid "Removing the MAX_PATH Limitation" +msgstr "Suppression de la limitation `MAX_PATH`" + +#: ../Doc/using/windows.rst:101 +msgid "" +"Windows historically has limited path lengths to 260 characters. This meant " +"that paths longer than this would not resolve and errors would result." +msgstr "" +"Historiquement les chemins sous Windows étaient limités 260 caractères. Cela " +"impliquait que les chemins plus longs n'étaient pas résolus, et seraient une " +"cause d'erreurs." + +#: ../Doc/using/windows.rst:104 +msgid "" +"In the latest versions of Windows, this limitation can be expanded to " +"approximately 32,000 characters. Your administrator will need to activate " +"the \"Enable Win32 long paths\" group policy, or set the registry value " +"``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control" +"\\FileSystem@LongPathsEnabled`` to ``1``." +msgstr "" +"Dans les dernières versions de Windows, cette limitation peut être étendue à " +"approximativement 32.000 caractères. Votre administrateur devra activer la " +"stratégie de groupe \"**Enable Win32 long paths**\" ou mettre la valeur du " +"registre ``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control" +"\\FileSystem@LongPathsEnabled`` à ``1``." + +#: ../Doc/using/windows.rst:110 +msgid "" +"This allows the :func:`open` function, the :mod:`os` module and most other " +"path functionality to accept and return paths longer than 260 characters " +"when using strings. (Use of bytes as paths is deprecated on Windows, and " +"this feature is not available when using bytes.)" +msgstr "" +"Ceci permet à la fonction :func:`open`, le module :mod:`os` et la plupart " +"des autres fonctionnalités utilisant des chemins d'accepter et de renvoyer " +"des chemins plus longs que 260 caractères quand vous utilisez des chaînes. " +"(L'utilisation de chemins sous forme de `bytes` obsolète sur Windows, et " +"cette fonctionnalité n'est pas disponible quand vous utilisez des `bytes`.)" + +#: ../Doc/using/windows.rst:115 +msgid "After changing the above option, no further configuration is required." +msgstr "" +"Après avoir changé l'option si-dessus, aucune configuration supplémentaire " +"n'est requise." + +#: ../Doc/using/windows.rst:119 +msgid "Support for long paths was enabled in Python." +msgstr "Gestion des chemins longs." + +#: ../Doc/using/windows.rst:124 +msgid "Installing Without UI" +msgstr "Installation sans l'interface utilisateur" + +#: ../Doc/using/windows.rst:126 +msgid "" +"All of the options available in the installer UI can also be specified from " +"the command line, allowing scripted installers to replicate an installation " +"on many machines without user interaction. These options may also be set " +"without suppressing the UI in order to change some of the defaults." +msgstr "" +"Toutes les options disponibles dans l'installateur graphique peuvent aussi " +"être spécifiées dans l'invite de commande, permettant à des installateurs " +"scriptés de répliquer une installation sur plusieurs machines sans " +"interaction humaine. Ces options peuvent aussi être ajoutées sans enlever " +"l'interface graphique pour changer les valeurs par défauts." + +#: ../Doc/using/windows.rst:131 +msgid "" +"To completely hide the installer UI and install Python silently, pass the ``/" +"quiet`` option. To skip past the user interaction but still display progress " +"and errors, pass the ``/passive`` option. The ``/uninstall`` option may be " +"passed to immediately begin removing Python - no prompt will be displayed." +msgstr "" +"Pour complétement cacher l'interface de l'installateur et installer Python " +"silencieusement, passez l'option ``/quiet``. Pour sauter les interactions " +"utilisateur mais afficher la progression et les erreurs, passez l'option ``/" +"passive``. L'option ``/uninstall`` peut être passée pour immédiatement " +"démarrer la suppression de Python -- Aucune confirmation ne sera demandée." + +#: ../Doc/using/windows.rst:137 +msgid "" +"All other options are passed as ``name=value``, where the value is usually " +"``0`` to disable a feature, ``1`` to enable a feature, or a path. The full " +"list of available options is shown below." +msgstr "" +"Toutes les autres options sont passées sous la forme ``name=value``, ou " +"``value`` est normalement soit ``0`` pour désactiver une fonctionnalité, " +"soit ``1`` pour activer une fonctionnalité, soit un chemin. Ci-dessous la " +"liste complète des options." + +#: ../Doc/using/windows.rst:142 +msgid "Name" +msgstr "Nom" + +#: ../Doc/using/windows.rst:142 +msgid "Description" +msgstr "Description" + +#: ../Doc/using/windows.rst:142 +msgid "Default" +msgstr "Valeur par défaut" + +#: ../Doc/using/windows.rst:144 +msgid "InstallAllUsers" +msgstr "InstallAllUsers" + +#: ../Doc/using/windows.rst:144 +msgid "Perform a system-wide installation." +msgstr "Effectue une installation pour tous les utilisateurs." + +#: ../Doc/using/windows.rst:144 ../Doc/using/windows.rst:167 +#: ../Doc/using/windows.rst:170 ../Doc/using/windows.rst:179 +#: ../Doc/using/windows.rst:197 ../Doc/using/windows.rst:205 +#: ../Doc/using/windows.rst:208 +msgid "0" +msgstr "0" + +#: ../Doc/using/windows.rst:146 +msgid "TargetDir" +msgstr "TargetDir" + +#: ../Doc/using/windows.rst:146 +msgid "The installation directory" +msgstr "Le dossier d'installation" + +#: ../Doc/using/windows.rst:146 +msgid "Selected based on InstallAllUsers" +msgstr "Sélection basée sur InstallAllUsers" + +#: ../Doc/using/windows.rst:149 +msgid "DefaultAllUsersTargetDir" +msgstr "DefaultAllUsersTargetDir" + +#: ../Doc/using/windows.rst:149 +msgid "The default installation directory for all-user installs" +msgstr "" +"Le dossier d'installation par défaut pour les installations pour tous les " +"utilisateurs" + +#: ../Doc/using/windows.rst:149 +msgid "" +":file:`%ProgramFiles%\\\\\\ Python X.Y` or :file:`\\ %ProgramFiles(x86)%\\\\" +"\\ Python X.Y`" +msgstr "" +":file:`%ProgramFiles%\\\\\\ Python X.Y` ou :file:`\\ %ProgramFiles(x86)%\\\\" +"\\ Python X.Y`" + +#: ../Doc/using/windows.rst:154 +msgid "DefaultJustForMeTargetDir" +msgstr "DefaultJustForMeTargetDir" + +#: ../Doc/using/windows.rst:154 +msgid "The default install directory for just-for-me installs" +msgstr "" +"Le dossier d'installation par défaut pour des installations juste pour soi" + +#: ../Doc/using/windows.rst:154 +msgid "" +":file:`%LocalAppData%\\\\\\ Programs\\\\PythonXY` or :file:`%LocalAppData%\\" +"\\\\ Programs\\\\PythonXY-32` or :file:`%LocalAppData%\\\\\\ Programs\\" +"\\PythonXY-64`" +msgstr "" +":file:`%LocalAppData%\\\\\\ Programs\\\\PythonXY` ou :file:`%LocalAppData%\\" +"\\\\ Programs\\\\PythonXY-32` ou :file:`%LocalAppData%\\\\\\ Programs\\" +"\\PythonXY-64`" + +#: ../Doc/using/windows.rst:161 +msgid "DefaultCustomTargetDir" +msgstr "DefaultCustomTargetDir" + +#: ../Doc/using/windows.rst:161 +msgid "The default custom install directory displayed in the UI" +msgstr "" +"Le dossier d'installation personnalisé par défaut affiché par l'interface " +"utilisateur" + +#: ../Doc/using/windows.rst:161 ../Doc/using/windows.rst:210 +msgid "(empty)" +msgstr "(vide)" + +#: ../Doc/using/windows.rst:164 +msgid "AssociateFiles" +msgstr "AssociateFiles" + +#: ../Doc/using/windows.rst:164 +msgid "Create file associations if the launcher is also installed." +msgstr "Crée les associations de fichiers si le lanceur est aussi installé." + +#: ../Doc/using/windows.rst:164 ../Doc/using/windows.rst:174 +#: ../Doc/using/windows.rst:177 ../Doc/using/windows.rst:181 +#: ../Doc/using/windows.rst:184 ../Doc/using/windows.rst:187 +#: ../Doc/using/windows.rst:189 ../Doc/using/windows.rst:192 +#: ../Doc/using/windows.rst:195 ../Doc/using/windows.rst:199 +#: ../Doc/using/windows.rst:201 ../Doc/using/windows.rst:203 +msgid "1" +msgstr "1" + +#: ../Doc/using/windows.rst:167 +msgid "CompileAll" +msgstr "CompileAll" + +#: ../Doc/using/windows.rst:167 +msgid "Compile all ``.py`` files to ``.pyc``." +msgstr "Compile tous les fichiers ``.py`` en ``.pyc``." + +#: ../Doc/using/windows.rst:170 +msgid "PrependPath" +msgstr "PrependPath" + +#: ../Doc/using/windows.rst:170 +msgid "" +"Add install and Scripts directories to :envvar:`PATH` and ``.PY`` to :envvar:" +"`PATHEXT`" +msgstr "" +"Ajoute les dossiers ``install`` et ``Scripts`` à :envvar:`PATH` et assigne " +"``.PY`` à :envvar:`PATHEXT`" + +#: ../Doc/using/windows.rst:174 +msgid "Shortcuts" +msgstr "Shortcuts" + +#: ../Doc/using/windows.rst:174 +msgid "" +"Create shortcuts for the interpreter, documentation and IDLE if installed." +msgstr "" +"Crée des raccourcis pour l'interpréteur, la documentation et IDLE si " +"installé." + +#: ../Doc/using/windows.rst:177 +msgid "Include_doc" +msgstr "Include_doc" + +#: ../Doc/using/windows.rst:177 +msgid "Install Python manual" +msgstr "Installe le manuel Python" + +#: ../Doc/using/windows.rst:179 +msgid "Include_debug" +msgstr "Include_debug" + +#: ../Doc/using/windows.rst:179 +msgid "Install debug binaries" +msgstr "Installe les binaires de débogage" + +#: ../Doc/using/windows.rst:181 +msgid "Include_dev" +msgstr "Include_dev" + +#: ../Doc/using/windows.rst:181 +msgid "Install developer headers and libraries" +msgstr "Installe les fichiers d'en-tête et les bibliothèques développeur" + +#: ../Doc/using/windows.rst:184 +msgid "Include_exe" +msgstr "Include_exe" + +#: ../Doc/using/windows.rst:184 +msgid "Install :file:`python.exe` and related files" +msgstr "Installe :file:`python.exe` et les fichiers connexes" + +#: ../Doc/using/windows.rst:187 +msgid "Include_launcher" +msgstr "Include_launcher" + +#: ../Doc/using/windows.rst:187 +msgid "Install :ref:`launcher`." +msgstr "Installe le :ref:`launcher`." + +#: ../Doc/using/windows.rst:189 +msgid "InstallLauncherAllUsers" +msgstr "InstallLauncherAllUsers" + +#: ../Doc/using/windows.rst:189 +msgid "Installs :ref:`launcher` for all users." +msgstr "Installe le :ref:`launcher` pour tous les utilisateurs." + +#: ../Doc/using/windows.rst:192 +msgid "Include_lib" +msgstr "Include_lib" + +#: ../Doc/using/windows.rst:192 +msgid "Install standard library and extension modules" +msgstr "Installe la bibliothèque standard et les modules d'extension" + +#: ../Doc/using/windows.rst:195 +msgid "Include_pip" +msgstr "Include_pip" + +#: ../Doc/using/windows.rst:195 +msgid "Install bundled pip and setuptools" +msgstr "Installe ``pip`` et ``setuptools``" + +#: ../Doc/using/windows.rst:197 +msgid "Include_symbols" +msgstr "Include_symbols" + +#: ../Doc/using/windows.rst:197 +msgid "Install debugging symbols (`*`.pdb)" +msgstr "Installe les symboles de débogage (``*.pdb``)" + +#: ../Doc/using/windows.rst:199 +msgid "Include_tcltk" +msgstr "Include_tcltk" + +#: ../Doc/using/windows.rst:199 +msgid "Install Tcl/Tk support and IDLE" +msgstr "Installe Tcl/Tk et IDLE" + +#: ../Doc/using/windows.rst:201 +msgid "Include_test" +msgstr "Include_test" + +#: ../Doc/using/windows.rst:201 +msgid "Install standard library test suite" +msgstr "Installe la suite de tests de la bibliothèque standard" + +#: ../Doc/using/windows.rst:203 +msgid "Include_tools" +msgstr "Include_tools" + +#: ../Doc/using/windows.rst:203 +msgid "Install utility scripts" +msgstr "Installe les scripts utilitaires" + +#: ../Doc/using/windows.rst:205 +msgid "LauncherOnly" +msgstr "LauncherOnly" + +#: ../Doc/using/windows.rst:205 +msgid "Only installs the launcher. This will override most other options." +msgstr "" +"Installe seulement le lanceur. Ceci écrasera la plupart des autres options." + +#: ../Doc/using/windows.rst:208 +msgid "SimpleInstall" +msgstr "SimpleInstall" + +#: ../Doc/using/windows.rst:208 +msgid "Disable most install UI" +msgstr "Désactive la plupart de l'interface d'installation" + +#: ../Doc/using/windows.rst:210 +msgid "SimpleInstallDescription" +msgstr "SimpleInstallDescription" + +#: ../Doc/using/windows.rst:210 +msgid "A custom message to display when the simplified install UI is used." +msgstr "" +"Un message personnalisé à afficher quand l'interface d'installation " +"simplifiée est utilisée." + +#: ../Doc/using/windows.rst:214 +msgid "" +"For example, to silently install a default, system-wide Python installation, " +"you could use the following command (from an elevated command prompt)::" +msgstr "" +"Par exemple, pour installer silencieusement Python sur tout le système, vous " +"pourriez utilisez la commande suivante (depuis une invite de commande " +"administrateur) ::" + +#: ../Doc/using/windows.rst:219 +msgid "" +"To allow users to easily install a personal copy of Python without the test " +"suite, you could provide a shortcut with the following command. This will " +"display a simplified initial page and disallow customization::" +msgstr "" +"Pour permettre à l'utilisateur d'installer facilement une copie de Python " +"sans la suite de tests, vous pouvez proposer un raccourci avec la commande " +"suivante. Cela affichera une page initiale simplifiée et interdira la " +"personnalisation ::" + +#: ../Doc/using/windows.rst:226 +msgid "" +"(Note that omitting the launcher also omits file associations, and is only " +"recommended for per-user installs when there is also a system-wide " +"installation that included the launcher.)" +msgstr "" +"(Notez qu'omettre le lanceur omet aussi les associations de fichiers, et " +"n'est recommandé que pour les installations par utilisateur quand il y a " +"aussi une installation complète sur le système qui a inclus de lanceur.)" + +#: ../Doc/using/windows.rst:230 +msgid "" +"The options listed above can also be provided in a file named ``unattend." +"xml`` alongside the executable. This file specifies a list of options and " +"values. When a value is provided as an attribute, it will be converted to a " +"number if possible. Values provided as element text are always left as " +"strings. This example file sets the same options as the previous example:" +msgstr "" +"Les options listées ci-dessus peuvent aussi être passées dans un fichier " +"nommé ``unattend.xml`` à côté de l'exécutable. Ce fichier spécifie une liste " +"d'options et de valeurs. Quand une valeur est donnée en tant qu'attribut, " +"elle sera convertie en nombre si possible. Les valeurs données en élément " +"texte sont toujours laissées en tant que chaînes de caractères. Ce fichier " +"d'exemple propose les mêmes options que l'exemple précédent :" + +#: ../Doc/using/windows.rst:249 +msgid "Installing Without Downloading" +msgstr "Installation sans téléchargement" + +#: ../Doc/using/windows.rst:251 +msgid "" +"As some features of Python are not included in the initial installer " +"download, selecting those features may require an internet connection. To " +"avoid this need, all possible components may be downloaded on-demand to " +"create a complete *layout* that will no longer require an internet " +"connection regardless of the selected features. Note that this download may " +"be bigger than required, but where a large number of installations are going " +"to be performed it is very useful to have a locally cached copy." +msgstr "" +"Comme certaines fonctionnalités de Python ne sont pas incluses dans " +"l'installateur initial, la sélection de certaines de ces fonctionnalités " +"peut demander une connexion Internet. Pour éviter ce besoin, tous les " +"composants nécessaires peuvent être téléchargés à la demande pour créer un " +"installateur complet qui ne demandera plus de connexion Internet " +"indépendamment des options sélectionnées. Notez que ce téléchargement peut " +"être plus gros que nécessaire, mais lorsqu'un un grand nombre " +"d'installations doivent être faites, il est très utile d'avoir une copie " +"locale." + +#: ../Doc/using/windows.rst:259 +msgid "" +"Execute the following command from Command Prompt to download all possible " +"required files. Remember to substitute ``python-3.7.0.exe`` for the actual " +"name of your installer, and to create layouts in their own directories to " +"avoid collisions between files with the same name." +msgstr "" +"Exécutez la commande suivante depuis l'invite de commande pour télécharger " +"tous les fichiers requis possibles. Rappelez-vous de remplacer " +"``python-3.7.0.exe`` par le nom actuel de votre installateur, et pour créer " +"des *couches* dans leurs propres dossiers pour éviter les conflits entre " +"fichiers du même nom." + +#: ../Doc/using/windows.rst:268 +msgid "" +"You may also specify the ``/quiet`` option to hide the progress display." +msgstr "" +"Vous pouvez aussi spécifier l'option ``/quiet`` pour masquer la progression." + +#: ../Doc/using/windows.rst:271 +msgid "Modifying an install" +msgstr "Modification d'une installation" + +#: ../Doc/using/windows.rst:273 +msgid "" +"Once Python has been installed, you can add or remove features through the " +"Programs and Features tool that is part of Windows. Select the Python entry " +"and choose \"Uninstall/Change\" to open the installer in maintenance mode." +msgstr "" +"Une fois Python installé, vous pouvez ajouter ou supprimer des " +"fonctionnalités depuis l'outil Windows *Programs and Features* (Programmes " +"et Fonctionnalités). Sélectionnez la ligne `Python` et choisissez " +"\"Uninstall/Change\" (Désinstaller/Modifier) pour ouvrir l'installateur en " +"mode maintenance." + +#: ../Doc/using/windows.rst:277 +msgid "" +"\"Modify\" allows you to add or remove features by modifying the checkboxes " +"- unchanged checkboxes will not install or remove anything. Some options " +"cannot be changed in this mode, such as the install directory; to modify " +"these, you will need to remove and then reinstall Python completely." +msgstr "" +"\"Modify\" vous permet d'ajouter ou d'enlever des fonctionnalités en " +"modifiant les cases à cocher (les cases inchangées n'installeront ou ne " +"supprimeront rien). Certaines options ne peuvent pas être modifiées dans ce " +"mode, comme le dossier d'installation. Pour modifier ces options, vous " +"devrez ré-installer Python entièrement." + +#: ../Doc/using/windows.rst:282 +msgid "" +"\"Repair\" will verify all the files that should be installed using the " +"current settings and replace any that have been removed or modified." +msgstr "" +"\"Repair\" vérifiera tous les fichiers qui doivent être installés avec les " +"paramètres actuels le sont, et remplacera ceux qui ont étés supprimés ou " +"modifiés." + +#: ../Doc/using/windows.rst:285 +msgid "" +"\"Uninstall\" will remove Python entirely, with the exception of the :ref:" +"`launcher`, which has its own entry in Programs and Features." +msgstr "" +"\"Uninstall\" désinstallera Python entièrement, à l'exception du :ref:" +"`launcher` qui à sa propre ligne dans *Programs and Features*." + +#: ../Doc/using/windows.rst:292 +msgid "The Microsoft Store package" +msgstr "Le paquet Microsoft Store" + +#: ../Doc/using/windows.rst:297 +msgid "" +"The Microsoft Store package is currently considered unstable while its " +"interactions with other tools and other copies of Python are evaluated. " +"While Python itself is stable, this installation method may change its " +"behavior and capabilities during Python 3.7 releases." +msgstr "" +"Le paquet *Microsoft Store* est actuellement considéré comme instable le " +"temps que ses interactions avec d'autres outils et d'autres copies de Python " +"soient évaluées. Bien que Python lui-même soit stable, cette méthode " +"d'installation peut modifier son comportement et ses capacités durant les " +"versions de Python 3.7." + +#: ../Doc/using/windows.rst:302 +msgid "" +"The Microsoft Store package is an easily installable Python interpreter that " +"is intended mainly for interactive use, for example, by students." +msgstr "" +"Le paquet *Microsoft Store* est un interpréteur Python facilement " +"installable qui est destiné principalement à une utilisation interactive, " +"par exemple, par des étudiants." + +#: ../Doc/using/windows.rst:305 +msgid "" +"To install the package, ensure you have the latest Windows 10 updates and " +"search the Microsoft Store app for \"Python |version|\". Ensure that the app " +"you select is published by the Python Software Foundation, and install it." +msgstr "" +"Pour installer le paquet, assurez-vous d'avoir les dernières mises à jour de " +"Windows 10 et de chercher dans l'application *Microsoft Store* “Python |" +"version|”. Assurez-vous que l'application que vous sélectionnez est publiée " +"par la *Python Software Foundation* et installez-la." + +#: ../Doc/using/windows.rst:310 +msgid "" +"Python will always be available for free on the Microsoft Store. If you are " +"asked to pay for it, you have not selected the correct package." +msgstr "" +"Python sera toujours disponible gratuitement sur le Microsoft Store. Si vous " +"êtes invité à payer, vous n'avez pas sélectionné le bon paquet." + +#: ../Doc/using/windows.rst:313 +msgid "" +"After installation, Python may be launched by finding it in Start. " +"Alternatively, it will be available from any Command Prompt or PowerShell " +"session by typing ``python``. Further, pip and IDLE may be used by typing " +"``pip`` or ``idle``. IDLE can also be found in Start." +msgstr "" +"Après l'installation, Python peut être lancé depuis le menu Démarrer. Il est " +"aussi disponible à partir de n'importe quelle invite de commande ou session " +"PowerShell en entrant ``python``. De plus, pip et IDLE peuvent être utilisés " +"en entrant ``pip`` ou ``idle`` . IDLE peut également être trouvé dans le " +"menu Démarrer." + +#: ../Doc/using/windows.rst:318 +msgid "" +"All three commands are also available with version number suffixes, for " +"example, as ``python3.exe`` and ``python3.x.exe`` as well as ``python.exe`` " +"(where ``3.x`` is the specific version you want to launch, such as |" +"version|)." +msgstr "" +"Les trois commandes sont également disponibles avec les suffixes de numéro " +"de version, par exemple, ``python3.exe`` et ``python3.x.exe`` ainsi que " +"``python.exe`` (ou ``3.x`` est la version spécifique que vous souhaitez " +"lancer, tel que |version|)." + +#: ../Doc/using/windows.rst:323 +msgid "" +"Virtual environments can be created with ``python -m venv`` and activated " +"and used as normal." +msgstr "" +"Les environnements virtuels peuvent être créés avec ``python -m venv`` et " +"activés et utilisés normalement." + +#: ../Doc/using/windows.rst:326 +msgid "" +"If you have installed another version of Python and added it to your " +"``PATH`` variable, it will be available as ``python.exe`` rather than the " +"one from the Microsoft Store. To access the new installation, use ``python3." +"exe`` or ``python3.x.exe``." +msgstr "" +"Si vous avez installé une autre version de Python et l'avez ajoutée à votre " +"variable d'environnement ``PATH``, elle sera disponible en tant que ``python." +"exe`` plutôt que celle de la boutique Microsoft. Pour accéder à la nouvelle " +"installation, utilisez ``python3.exe`` ou ``python3.x.exe``." + +#: ../Doc/using/windows.rst:331 +msgid "" +"To remove Python, open Settings and use Apps and Features, or else find " +"Python in Start and right-click to select Uninstall. Uninstalling will " +"remove all packages you installed directly into this Python installation, " +"but will not remove any virtual environments" +msgstr "" +"Pour supprimer Python, depuis les paramètres Windows ouvrez *Apps and " +"Features* (Applications et Fonctionnalités), ou bien trouvez Python dans le " +"menu Démarrer et cliquez avec le bouton droit pour sélectionner " +"désinstaller. La désinstallation supprimera tous les paquets que vous avez " +"installés directement dans cette installation Python, mais ne supprimera " +"aucun environnement virtuel" + +#: ../Doc/using/windows.rst:337 +msgid "Known Issues" +msgstr "Problèmes connus" + +#: ../Doc/using/windows.rst:339 +msgid "" +"Currently, the ``py.exe`` launcher cannot be used to start Python when it " +"has been installed from the Microsoft Store." +msgstr "" +"Actuellement, le lanceur ``py.exe`` ne peut pas être utilisé pour démarrer " +"Python lorsqu'il a été installé à partir de la boutique Microsoft." + +#: ../Doc/using/windows.rst:342 +msgid "" +"Because of restrictions on Microsoft Store apps, Python scripts may not have " +"full write access to shared locations such as ``TEMP`` and the registry. " +"Instead, it will write to a private copy. If your scripts must modify the " +"shared locations, you will need to install the full installer." +msgstr "" +"En raison de restrictions sur les applications Microsoft Store, les scripts " +"Python peuvent ne pas avoir un accès en écriture complet aux emplacements " +"partagés tels que ``TEMP`` et le registre. Au lieu de cela, il écrira sur " +"une copie privée. Si vos scripts doivent modifier les emplacements partagés, " +"vous devrez installer le programme d'installation complet." + +#: ../Doc/using/windows.rst:351 +msgid "The nuget.org packages" +msgstr "Les paquets *nuget.org*" + +#: ../Doc/using/windows.rst:355 +msgid "" +"The nuget.org package is a reduced size Python environment intended for use " +"on continuous integration and build systems that do not have a system-wide " +"install of Python. While nuget is \"the package manager for .NET\", it also " +"works perfectly fine for packages containing build-time tools." +msgstr "" +"Le paquet *nuget.org* est un environnement Python de taille réduite destiné " +"à être utilisé sur des systèmes d'intégration et de génération continus qui " +"n'ont pas Python d'installé. Alors que *nuget* est “le gestionnaire de " +"package pour .NET”, il fonctionne également parfaitement bien pour les " +"packages contenant des outils de *build-time*." + +#: ../Doc/using/windows.rst:360 +msgid "" +"Visit `nuget.org `_ for the most up-to-date " +"information on using nuget. What follows is a summary that is sufficient for " +"Python developers." +msgstr "" +"Visitez `nuget.org `_ pour les informations les plus " +"à jour sur l'utilisation de *nuget*. Ce qui suit est un résumé suffisant " +"pour les développeurs Python." + +#: ../Doc/using/windows.rst:364 +msgid "" +"The ``nuget.exe`` command line tool may be downloaded directly from " +"``https://aka.ms/nugetclidl``, for example, using curl or PowerShell. With " +"the tool, the latest version of Python for 64-bit or 32-bit machines is " +"installed using::" +msgstr "" +"L'outil de ligne de commande ``nuget.exe`` peut être téléchargé directement " +"à partir de ``https://aka.ms/nugetclidl``, par exemple, à l'aide de *curl* " +"ou de PowerShell. Avec l'outil, la dernière version de Python pour les " +"machines 64 bits ou 32 bits est installée à l'aide de ::" + +#: ../Doc/using/windows.rst:372 +msgid "" +"To select a particular version, add a ``-Version 3.x.y``. The output " +"directory may be changed from ``.``, and the package will be installed into " +"a subdirectory. By default, the subdirectory is named the same as the " +"package, and without the ``-ExcludeVersion`` option this name will include " +"the specific version installed. Inside the subdirectory is a ``tools`` " +"directory that contains the Python installation::" +msgstr "" +"Pour sélectionner une version particulière, ajoutez un ``-Version 3.x.y``. " +"Le répertoire d'installation être modifié (de ``.``), et le paquet sera " +"installé dans un sous-répertoire. Par défaut, le sous-répertoire est nommé " +"comme le paquet, et sans l'option ``-ExcludeVersion``, ce nom inclura la " +"version spécifique installée. À l'intérieur du sous-répertoire se trouve un " +"répertoire ``tools`` qui contient l'installation Python ::" + +#: ../Doc/using/windows.rst:387 +msgid "" +"In general, nuget packages are not upgradeable, and newer versions should be " +"installed side-by-side and referenced using the full path. Alternatively, " +"delete the package directory manually and install it again. Many CI systems " +"will do this automatically if they do not preserve files between builds." +msgstr "" +"En général, les paquets *nuget* ne peuvent pas êtres mis à jour et les " +"versions plus récentes doivent être installées côte à côte et référencées à " +"l'aide du chemin d'accès complet. Vous pouvez également supprimer le " +"répertoire du paquet manuellement et l'installer à nouveau. De nombreux " +"systèmes CI le feront automatiquement s'ils ne conservent pas les fichiers " +"entre les *builds*." + +#: ../Doc/using/windows.rst:392 +msgid "" +"Alongside the ``tools`` directory is a ``build\\native`` directory. This " +"contains a MSBuild properties file ``python.props`` that can be used in a C+" +"+ project to reference the Python install. Including the settings will " +"automatically use the headers and import libraries in your build." +msgstr "" +"À côté du répertoire ``tools`` est un répertoire ``build\\native``. Il " +"contient un fichier de propriétés MSBuild ``python.props`` qui peut être " +"utilisé dans un projet C++ pour référencer l'installation de Python. " +"L'inclusion des paramètres utilisera automatiquement les en-têtes et les " +"bibliothèques d'importation dans votre *build*." + +#: ../Doc/using/windows.rst:397 +msgid "" +"The package information pages on nuget.org are `www.nuget.org/packages/" +"python `_ for the 64-bit version and " +"`www.nuget.org/packages/pythonx86 `_ for the 32-bit version." +msgstr "" +"Les pages d’information sur *nuget.org* sont `www.nuget.org/packages/python " +"`_ pour la version 64 Bits et `www." +"nuget.org/packages/pythonx86 `_ " +"pour la version 32 Bits." + +#: ../Doc/using/windows.rst:406 +msgid "The embeddable package" +msgstr "Le paquet intégrable" + +#: ../Doc/using/windows.rst:410 +msgid "" +"The embedded distribution is a ZIP file containing a minimal Python " +"environment. It is intended for acting as part of another application, " +"rather than being directly accessed by end-users." +msgstr "" +"La distribution embarquée est un fichier ZIP contenant un environnement " +"Python minimal. Il est destiné à agir dans le cadre d'une autre application, " +"plutôt que d'être directement accessible par les utilisateurs finaux." + +#: ../Doc/using/windows.rst:414 +msgid "" +"When extracted, the embedded distribution is (almost) fully isolated from " +"the user's system, including environment variables, system registry " +"settings, and installed packages. The standard library is included as pre-" +"compiled and optimized ``.pyc`` files in a ZIP, and ``python3.dll``, " +"``python37.dll``, ``python.exe`` and ``pythonw.exe`` are all provided. Tcl/" +"tk (including all dependants, such as Idle), pip and the Python " +"documentation are not included." +msgstr "" +"Une fois extrait, la distribution intégrée est (presque) entièrement isolée " +"du système de l'utilisateur, y compris les variables d'environnement, les " +"paramètres du registre système et les paquets installés. La bibliothèque " +"standard est incluse en tant que fichiers pré-compilés et optimisés ``.pyc`` " +"dans un fichier ZIP, et ``python3.dll``, ``python37.dll``, ``python.exe`` et " +"``pythonw.exe`` sont tous fournis. *Tcl/Tk* (y compris tous les dépendants, " +"telles que IDLE), pip et la documentation Python ne sont pas inclus." + +#: ../Doc/using/windows.rst:423 +msgid "" +"The embedded distribution does not include the `Microsoft C Runtime `_ and it is the " +"responsibility of the application installer to provide this. The runtime may " +"have already been installed on a user's system previously or automatically " +"via Windows Update, and can be detected by finding ``ucrtbase.dll`` in the " +"system directory." +msgstr "" +"La distribution intégrée n'inclut pas le `Microsoft C Runtime `_ et il est de la " +"responsabilité de l'installateur d'application de le fournir. Le *runtime* " +"peut avoir déjà été installé sur le système d'un utilisateur précédemment ou " +"automatiquement via Windows Update, et peut être détecté en trouvant " +"``ucrtbase.dll`` dans le répertoire système." + +#: ../Doc/using/windows.rst:430 +msgid "" +"Third-party packages should be installed by the application installer " +"alongside the embedded distribution. Using pip to manage dependencies as for " +"a regular Python installation is not supported with this distribution, " +"though with some care it may be possible to include and use pip for " +"automatic updates. In general, third-party packages should be treated as " +"part of the application (\"vendoring\") so that the developer can ensure " +"compatibility with newer versions before providing updates to users." +msgstr "" +"Les paquets tiers doivent être installés par le programme d'installation de " +"l'application parallèlement à la distribution embarquée. L'utilisation de " +"pip pour gérer les dépendances comme pour une installation Python régulière " +"n'est pas prise en charge avec cette distribution, mais il reste possible " +"d'inclure et d'utiliser pip pour les mises à jour automatiques. En général, " +"les paquets tiers doivent être traités dans le cadre de l'application " +"(*vendoring*) afin que le développeur puisse assurer la compatibilité avec " +"les versions plus récentes avant de fournir des mises à jour aux " +"utilisateurs." + +#: ../Doc/using/windows.rst:438 +msgid "" +"The two recommended use cases for this distribution are described below." +msgstr "" +"Les deux cas d'utilisation recommandés pour cette distribution sont décrits " +"ci-dessous." + +#: ../Doc/using/windows.rst:441 +msgid "Python Application" +msgstr "Application Python" + +#: ../Doc/using/windows.rst:443 +msgid "" +"An application written in Python does not necessarily require users to be " +"aware of that fact. The embedded distribution may be used in this case to " +"include a private version of Python in an install package. Depending on how " +"transparent it should be (or conversely, how professional it should appear), " +"there are two options." +msgstr "" +"Une application écrite en Python n'exige pas nécessairement que les " +"utilisateurs soient au courant de ce fait. La distribution embarquée peut " +"être utilisée dans ce cas pour inclure une version privée de Python dans un " +"package d'installation. Selon la façon dont il devrait être transparent (ou " +"inversement, à quel point il doit paraître professionnel), il y a deux " +"options." + +#: ../Doc/using/windows.rst:449 +msgid "" +"Using a specialized executable as a launcher requires some coding, but " +"provides the most transparent experience for users. With a customized " +"launcher, there are no obvious indications that the program is running on " +"Python: icons can be customized, company and version information can be " +"specified, and file associations behave properly. In most cases, a custom " +"launcher should simply be able to call ``Py_Main`` with a hard-coded command " +"line." +msgstr "" +"L'utilisation d'un exécutable spécialisé en tant que lanceur nécessite de la " +"programmation, mais fournit l'expérience la plus transparente pour les " +"utilisateurs. Avec un lanceur personnalisé, il n'y a pas d'indications " +"évidentes que le programme s'exécute sur Python : les icônes peuvent être " +"personnalisées, les informations de la société et de la version peuvent être " +"spécifiées, et les associations de fichiers se comportent correctement. Dans " +"la plupart des cas, un lanceur personnalisé devrait simplement pouvoir " +"appeler ``Py_Main`` avec une ligne de commande codée en dur." + +#: ../Doc/using/windows.rst:456 +msgid "" +"The simpler approach is to provide a batch file or generated shortcut that " +"directly calls the ``python.exe`` or ``pythonw.exe`` with the required " +"command-line arguments. In this case, the application will appear to be " +"Python and not its actual name, and users may have trouble distinguishing it " +"from other running Python processes or file associations." +msgstr "" +"L'approche la plus simple consiste à fournir un fichier batch ou un " +"raccourci généré qui appelle directement le ``python.exe`` ou ``pythonw." +"exe`` avec les arguments de ligne de commande requis. Dans ce cas, " +"l'application semble être Python et non son nom réel, et les utilisateurs " +"peuvent avoir du mal à le distinguer des autres processus Python en cours " +"d'exécution ou des associations de fichiers." + +#: ../Doc/using/windows.rst:462 +msgid "" +"With the latter approach, packages should be installed as directories " +"alongside the Python executable to ensure they are available on the path. " +"With the specialized launcher, packages can be located in other locations as " +"there is an opportunity to specify the search path before launching the " +"application." +msgstr "" +"Avec cette dernière approche, les packages doivent être installés en tant " +"que répertoires à côté de l'exécutable Python pour s'assurer qu'ils soient " +"visibles par Python. Avec le lanceur spécialisé, les paquets peuvent être " +"installés dans d'autres emplacements car il y a une possibilité de spécifier " +"le chemin de recherche avant de lancer l'application." + +#: ../Doc/using/windows.rst:468 +msgid "Embedding Python" +msgstr "Embarquer Python" + +#: ../Doc/using/windows.rst:470 +msgid "" +"Applications written in native code often require some form of scripting " +"language, and the embedded Python distribution can be used for this purpose. " +"In general, the majority of the application is in native code, and some part " +"will either invoke ``python.exe`` or directly use ``python3.dll``. For " +"either case, extracting the embedded distribution to a subdirectory of the " +"application installation is sufficient to provide a loadable Python " +"interpreter." +msgstr "" +"Les applications écrites en code natif nécessitent souvent une certaine " +"forme de langage de *scripting*, et la distribution Python intégrée peut " +"être utilisée à cette fin. En général, la majorité de l'application est dans " +"le code natif, qui soit invoque ``python.exe`` soit utilise directement " +"``python3.dll``. Dans les deux cas, l'extraction de la distribution intégrée " +"dans un sous-répertoire de l'installation de l'application est suffisante " +"pour fournir un interpréteur Python chargeable." + +#: ../Doc/using/windows.rst:477 +msgid "" +"As with the application use, packages can be installed to any location as " +"there is an opportunity to specify search paths before initializing the " +"interpreter. Otherwise, there is no fundamental differences between using " +"the embedded distribution and a regular installation." +msgstr "" +"Comme pour l'utilisation de l'application, les paquets peuvent être " +"installés sur n'importe quel emplacement, car il est possible de spécifier " +"des chemins de recherche avant d'initialiser l'interpréteur. Sinon, il n'y a " +"pas de différences fondamentales entre l'utilisation de la distribution " +"embarquée et une installation classique." + +#: ../Doc/using/windows.rst:484 +msgid "Alternative bundles" +msgstr "Paquets alternatifs" + +#: ../Doc/using/windows.rst:486 +msgid "" +"Besides the standard CPython distribution, there are modified packages " +"including additional functionality. The following is a list of popular " +"versions and their key features:" +msgstr "" +"À part la distribution standard CPython, il y a des paquets modifiés " +"incluant des fonctionnalités additionnelles. La liste qui suit est une liste " +"de versions populaires et de leurs fonctionnalités principales :" + +#: ../Doc/using/windows.rst:491 +msgid "`ActivePython `_" +msgstr "`ActivePython `_" + +#: ../Doc/using/windows.rst:491 +msgid "Installer with multi-platform compatibility, documentation, PyWin32" +msgstr "" +"Installeur avec une compatibilité multi-plateforme, de la documentation, et " +"*PyWin32*" + +#: ../Doc/using/windows.rst:495 +msgid "`Anaconda `_" +msgstr "`Anaconda `_" + +#: ../Doc/using/windows.rst:494 +msgid "" +"Popular scientific modules (such as numpy, scipy and pandas) and the " +"``conda`` package manager." +msgstr "" +"Des modules scientifiques populaires (comme *numpy*, *scipy* et *pandas*) et " +"le gestionnaire de paquets ``conda``." + +#: ../Doc/using/windows.rst:499 +msgid "`Canopy `_" +msgstr "`Canopy `_" + +#: ../Doc/using/windows.rst:498 +msgid "" +"A \"comprehensive Python analysis environment\" with editors and other " +"development tools." +msgstr "" +"Un \"environnement d'analyse complet Python\" avec des éditeurs et autres " +"outils de développement." + +#: ../Doc/using/windows.rst:503 +msgid "`WinPython `_" +msgstr "`WinPython `_" + +#: ../Doc/using/windows.rst:502 +msgid "" +"Windows-specific distribution with prebuilt scientific packages and tools " +"for building packages." +msgstr "" +"Distribution spécifique à Windows avec des paquets scientifiques pré-" +"compilés et des outils pour construire des paquets." + +#: ../Doc/using/windows.rst:505 +msgid "" +"Note that these packages may not include the latest versions of Python or " +"other libraries, and are not maintained or supported by the core Python team." +msgstr "" +"Notez que ces paquets peuvent ne pas inclure la dernière version de Python " +"ou d'autres bibliothèques, et ne sont pas maintenus ni supportés par les " +"*core devs* Python." + +#: ../Doc/using/windows.rst:511 +msgid "Configuring Python" +msgstr "Configurer Python" + +#: ../Doc/using/windows.rst:513 +msgid "" +"To run Python conveniently from a command prompt, you might consider " +"changing some default environment variables in Windows. While the installer " +"provides an option to configure the PATH and PATHEXT variables for you, this " +"is only reliable for a single, system-wide installation. If you regularly " +"use multiple versions of Python, consider using the :ref:`launcher`." +msgstr "" +"Pour exécuter Python confortablement à partir d'une invite de commandes, " +"vous pouvez envisager de modifier certaines variables d'environnement par " +"défaut dans Windows. Bien que l'installateur offre une option pour " +"configurer les variables ``PATH`` et ``PATHEXT`` pour vous, ce n'est fiable " +"que pour une seule installation à l'échelle du système. Si vous utilisez " +"régulièrement plusieurs versions de Python, pensez à utiliser le :ref:" +"`launcher`." + +#: ../Doc/using/windows.rst:523 +msgid "Excursus: Setting environment variables" +msgstr "Digression : Définition des variables d'environnement" + +#: ../Doc/using/windows.rst:525 +msgid "" +"Windows allows environment variables to be configured permanently at both " +"the User level and the System level, or temporarily in a command prompt." +msgstr "" +"Windows permet de configurer les variables d'environnement de façon " +"permanente au niveau de l'utilisateur et du système, ou temporairement dans " +"une invite de commandes." + +#: ../Doc/using/windows.rst:528 +msgid "" +"To temporarily set environment variables, open Command Prompt and use the :" +"command:`set` command:" +msgstr "" +"Pour définir temporairement les variables d'environnement, ouvrez l'invite " +"de commandes et utilisez la commande :command:`set` :" + +#: ../Doc/using/windows.rst:537 +msgid "" +"These changes will apply to any further commands executed in that console, " +"and will be inherited by any applications started from the console." +msgstr "" +"Ces modifications s'appliqueront à toutes les autres commandes exécutées " +"dans cette console et seront héritées par toutes les applications démarrées " +"à partir de cette console." + +#: ../Doc/using/windows.rst:540 +msgid "" +"Including the variable name within percent signs will expand to the existing " +"value, allowing you to add your new value at either the start or the end. " +"Modifying :envvar:`PATH` by adding the directory containing :program:`python." +"exe` to the start is a common way to ensure the correct version of Python is " +"launched." +msgstr "" +"Un nom de variable entre des signes pour cent sera remplacé par sa valeur, " +"vous permettant d'ajouter votre nouvelle valeur au début ou à la fin. " +"Ajouter :program:`python.exe` au début de :envvar:`PATH` est un moyen " +"courant de s'assurer que la version correcte de Python est lancée." + +#: ../Doc/using/windows.rst:546 +msgid "" +"To permanently modify the default environment variables, click Start and " +"search for 'edit environment variables', or open System properties, :" +"guilabel:`Advanced system settings` and click the :guilabel:`Environment " +"Variables` button. In this dialog, you can add or modify User and System " +"variables. To change System variables, you need non-restricted access to " +"your machine (i.e. Administrator rights)." +msgstr "" +"Pour modifier définitivement les variables d'environnement par défaut, " +"recherchez « modifier les variables d'environnement », via le menu démarrer, " +"ou ouvrez « Propriétés Système », :guilabel:`Paramètres Système Avancés` et " +"cliquez sur le bouton :guilabel:`Variables d'Environnement`. Dans cette " +"boîte de dialogue, vous pouvez ajouter ou modifier des variables " +"utilisateurs et systèmes. Pour modifier les variables systèmes, vous avez " +"besoin d'un accès non restreint à votre ordinateur (c'est-à-dire aux droits " +"d'administrateur)." + +#: ../Doc/using/windows.rst:555 +msgid "" +"Windows will concatenate User variables *after* System variables, which may " +"cause unexpected results when modifying :envvar:`PATH`." +msgstr "" +"Windows va concaténer les variables utilisateurs *après* les variables " +"systèmes, ce qui peut provoquer des résultats inattendus lors de la " +"modification de :envvar:`PATH`." + +#: ../Doc/using/windows.rst:558 +msgid "" +"The :envvar:`PYTHONPATH` variable is used by all versions of Python 2 and " +"Python 3, so you should not permanently configure this variable unless it " +"only includes code that is compatible with all of your installed Python " +"versions." +msgstr "" +"La variable :envvar:`PYTHONPATH` est utilisée par toutes les versions de " +"Python 2 et Python 3, vous ne devez donc pas configurer cette variable de " +"façon permanente à moins qu'elle n'ajoute que du code compatible avec toutes " +"les versions de Python installées." + +#: ../Doc/using/windows.rst:566 +msgid "https://www.microsoft.com/en-us/wdsi/help/folder-variables" +msgstr "https://www.microsoft.com/en-us/wdsi/help/folder-variables" + +#: ../Doc/using/windows.rst:566 +msgid "Environment variables in Windows NT" +msgstr "Variables d'environnement dans Windows NT" + +#: ../Doc/using/windows.rst:569 +msgid "https://technet.microsoft.com/en-us/library/cc754250.aspx" +msgstr "https://technet.microsoft.com/en-us/library/cc754250.aspx" + +#: ../Doc/using/windows.rst:569 +msgid "The SET command, for temporarily modifying environment variables" +msgstr "" +"La commande SET, pour modifier temporairement les variables d'environnement" + +#: ../Doc/using/windows.rst:572 +msgid "https://technet.microsoft.com/en-us/library/cc755104.aspx" +msgstr "https://technet.microsoft.com/en-us/library/cc755104.aspx" + +#: ../Doc/using/windows.rst:572 +msgid "The SETX command, for permanently modifying environment variables" +msgstr "" +"La commande SETX, pour modifier de façon permanente les variables " +"d'environnement" + +#: ../Doc/using/windows.rst:575 +msgid "" +"https://support.microsoft.com/en-us/help/310519/how-to-manage-environment-" +"variables-in-windows-xp" +msgstr "" +"https://support.microsoft.com/en-us/help/310519/how-to-manage-environment-" +"variables-in-windows-xp" + +#: ../Doc/using/windows.rst:575 +msgid "How To Manage Environment Variables in Windows XP" +msgstr "Comment gérer les variables d'environnement sous Windows XP" + +#: ../Doc/using/windows.rst:577 +msgid "https://www.chem.gla.ac.uk/~louis/software/faq/q1.html" +msgstr "https://www.chem.gla.ac.uk/~louis/software/faq/q1.html" + +#: ../Doc/using/windows.rst:578 +msgid "Setting Environment variables, Louis J. Farrugia" +msgstr "Définir les variables d'environnement, *Louis J. Farrugia*" + +#: ../Doc/using/windows.rst:583 +msgid "Finding the Python executable" +msgstr "Trouver l'exécutable Python" + +#: ../Doc/using/windows.rst:587 +msgid "" +"Besides using the automatically created start menu entry for the Python " +"interpreter, you might want to start Python in the command prompt. The " +"installer has an option to set that up for you." +msgstr "" +"En plus d'utiliser l'entrée du menu Démarrer automatiquement créée pour " +"l'interpréteur Python, vous souhaiterez peut-être démarrer Python depuis " +"l'invite de commandes. L'installateur a une option pour installer cela pour " +"vous." + +#: ../Doc/using/windows.rst:591 +msgid "" +"On the first page of the installer, an option labelled \"Add Python to PATH" +"\" may be selected to have the installer add the install location into the :" +"envvar:`PATH`. The location of the :file:`Scripts\\\\` folder is also " +"added. This allows you to type :command:`python` to run the interpreter, " +"and :command:`pip` for the package installer. Thus, you can also execute " +"your scripts with command line options, see :ref:`using-on-cmdline` " +"documentation." +msgstr "" +"Sur la première page de l'installateur, une option intitulée \"Ajouter " +"Python au *PATH*\" peut être sélectionnée pour que l'installateur ajoute " +"l'emplacement d'installation dans le :envvar:`PATH`. L'emplacement du " +"dossier :file:`Scripts\\\\` y est également ajouté. Cela vous permet de " +"taper :command:`Python` pour exécuter l'interpréteur, et :command:`pip` pour " +"l'installateur de paquets. Ainsi, vous pouvez également exécuter vos scripts " +"avec les options de ligne de commande, voir la documentation :ref:`using-on-" +"cmdline`." + +#: ../Doc/using/windows.rst:598 +msgid "" +"If you don't enable this option at install time, you can always re-run the " +"installer, select Modify, and enable it. Alternatively, you can manually " +"modify the :envvar:`PATH` using the directions in :ref:`setting-envvars`. " +"You need to set your :envvar:`PATH` environment variable to include the " +"directory of your Python installation, delimited by a semicolon from other " +"entries. An example variable could look like this (assuming the first two " +"entries already existed)::" +msgstr "" +"Si vous n'activez pas cette option au moment de l'installation, vous pouvez " +"toujours ré-exécuter l'installateur, sélectionner Modifier et l'activer. " +"Vous pouvez également modifier manuellement le :envvar:`PATH` à l'aide des " +"instructions de :ref:`setting-envvars`. Vous devez définir votre variable " +"d'environnement :envvar:`PATH` pour inclure le répertoire de votre " +"installation Python, délimité par un point-virgule des autres entrées. Une " +"variable d'exemple pourrait ressembler à ceci (en supposant que les deux " +"premières entrées existaient déjà) ::" + +#: ../Doc/using/windows.rst:611 +msgid "Python Launcher for Windows" +msgstr "Lanceur Python pour Windows" + +#: ../Doc/using/windows.rst:615 +msgid "" +"The Python launcher for Windows is a utility which aids in locating and " +"executing of different Python versions. It allows scripts (or the command-" +"line) to indicate a preference for a specific Python version, and will " +"locate and execute that version." +msgstr "" +"Le lanceur Python pour Windows est un utilitaire qui facilite la recherche " +"et l'exécution de différentes versions de Python. Il permet aux scripts (ou " +"à la ligne de commande) d'indiquer une préférence pour une version Python " +"spécifique, cherchera et exécutera cette version." + +#: ../Doc/using/windows.rst:620 +msgid "" +"Unlike the :envvar:`PATH` variable, the launcher will correctly select the " +"most appropriate version of Python. It will prefer per-user installations " +"over system-wide ones, and orders by language version rather than using the " +"most recently installed version." +msgstr "" +"Contrairement à la variable :envvar:`PATH`, le lanceur sélectionne " +"correctement la version la plus appropriée de Python. Il préfère les " +"installations par utilisateur sur celles du système, et les trie par version " +"plutôt que d'utiliser la version la plus récente installée." + +#: ../Doc/using/windows.rst:625 +msgid "The launcher was originally specified in :pep:`397`." +msgstr "Le lanceur a été initialement spécifié dans :pep:`397`." + +#: ../Doc/using/windows.rst:628 +msgid "Getting started" +msgstr "Pour commencer" + +#: ../Doc/using/windows.rst:631 +msgid "From the command-line" +msgstr "Depuis la ligne de commande" + +#: ../Doc/using/windows.rst:635 +msgid "" +"System-wide installations of Python 3.3 and later will put the launcher on " +"your :envvar:`PATH`. The launcher is compatible with all available versions " +"of Python, so it does not matter which version is installed. To check that " +"the launcher is available, execute the following command in Command Prompt:" +msgstr "" +"Les installations systèmes de Python 3.3 et ultérieur mettent le lanceur " +"dans votre :envvar:`PATH`. Le lanceur est compatible avec toutes les " +"versions disponibles de Python, peu importe lesquelles sont installées. Pour " +"vérifier que le lanceur est disponible, exécutez la commande suivante dans " +"l'invite de commandes :" + +#: ../Doc/using/windows.rst:644 +msgid "" +"You should find that the latest version of Python you have installed is " +"started - it can be exited as normal, and any additional command-line " +"arguments specified will be sent directly to Python." +msgstr "" +"Vous devriez voir se lancer la dernière version de Python installée — il " +"peut être quitté normalement, et tous les arguments de ligne de commande " +"supplémentaires spécifiés seront envoyés directement à Python." + +#: ../Doc/using/windows.rst:648 +msgid "" +"If you have multiple versions of Python installed (e.g., 2.7 and |version|) " +"you will have noticed that Python |version| was started - to launch Python " +"2.7, try the command:" +msgstr "" +"Si plusieurs versions de Python sont installées (par exemple, 2.7 et |" +"version|), vous aurez remarqué que Python |version| se lance -- pour lancer " +"Python 2.7, essayez la commande :" + +#: ../Doc/using/windows.rst:656 +msgid "" +"If you want the latest version of Python 2.x you have installed, try the " +"command:" +msgstr "" +"Si vous voulez que la dernière version de Python 2.x que vous avez installé, " +"essayez la commande :" + +#: ../Doc/using/windows.rst:663 +msgid "You should find the latest version of Python 2.x starts." +msgstr "Remarquez que la dernière version de Python 2.x démarre." + +#: ../Doc/using/windows.rst:665 +msgid "If you see the following error, you do not have the launcher installed:" +msgstr "Si vous voyez l'erreur suivante, le lanceur n'est pas installé :" + +#: ../Doc/using/windows.rst:672 +msgid "" +"Per-user installations of Python do not add the launcher to :envvar:`PATH` " +"unless the option was selected on installation." +msgstr "" +"Les installations par utilisateur de Python n'ajoutent pas le lanceur à :" +"envvar:`PATH` sauf si l'option a été sélectionnée lors de l'installation." + +#: ../Doc/using/windows.rst:676 +msgid "Virtual environments" +msgstr "Environnements virtuels" + +#: ../Doc/using/windows.rst:680 +msgid "" +"If the launcher is run with no explicit Python version specification, and a " +"virtual environment (created with the standard library :mod:`venv` module or " +"the external ``virtualenv`` tool) active, the launcher will run the virtual " +"environment's interpreter rather than the global one. To run the global " +"interpreter, either deactivate the virtual environment, or explicitly " +"specify the global Python version." +msgstr "" +"Si le lanceur est exécuté sans version de Python explicite et qu'un " +"environnement virtuel (créé avec le module de la bibliothèque standard :mod:" +"`venv` ou l'outil externe ``virtualenv``) est actif, le lanceur exécute " +"l'interpréteur de l'environnement virtuel plutôt que l'interpréteur global. " +"Pour exécuter l'interpréteur global, désactivez l'environnement virtuel ou " +"spécifiez explicitement la version Python globale." + +#: ../Doc/using/windows.rst:688 +msgid "From a script" +msgstr "À partir d'un script" + +#: ../Doc/using/windows.rst:690 +msgid "" +"Let's create a test Python script - create a file called ``hello.py`` with " +"the following contents" +msgstr "" +"Créons un script Python de test, créez un fichier appelé ``hello.py`` avec " +"le contenu suivant" + +#: ../Doc/using/windows.rst:699 +msgid "From the directory in which hello.py lives, execute the command:" +msgstr "" +"À partir du répertoire dans lequel se trouve ``hello.py``, exécutez la " +"commande :" + +#: ../Doc/using/windows.rst:705 +msgid "" +"You should notice the version number of your latest Python 2.x installation " +"is printed. Now try changing the first line to be:" +msgstr "" +"Vous devriez voir le numéro de version du Python 2.x le plus récemment " +"installé. Maintenant, essayez de changer la première ligne en :" + +#: ../Doc/using/windows.rst:712 +msgid "" +"Re-executing the command should now print the latest Python 3.x information. " +"As with the above command-line examples, you can specify a more explicit " +"version qualifier. Assuming you have Python 2.6 installed, try changing the " +"first line to ``#! python2.6`` and you should find the 2.6 version " +"information printed." +msgstr "" +"La commande doit maintenant afficher les dernières informations de Python 3." +"x. Comme pour les exemples de ligne de commande ci-dessus, vous pouvez " +"spécifier un qualificateur de version plus explicite. En supposant que vous " +"avez installé Python 2.6, essayez de changer la première ligne à ``#! " +"python2.6`` et vous devriez trouver les informations de version 2.6 " +"imprimées." + +#: ../Doc/using/windows.rst:718 +msgid "" +"Note that unlike interactive use, a bare \"python\" will use the latest " +"version of Python 2.x that you have installed. This is for backward " +"compatibility and for compatibility with Unix, where the command ``python`` " +"typically refers to Python 2." +msgstr "" +"Notez que, contrairement à l'utilisation interactive, un \"python\" nu " +"utilisera la dernière version de Python 2.x que vous avez installé. C'est " +"pour la compatibilité ascendante et pour la compatibilité avec UNIX, où la " +"commande ``python`` fait généralement référence à Python 2." + +#: ../Doc/using/windows.rst:724 +msgid "From file associations" +msgstr "À partir d'associations de fichiers" + +#: ../Doc/using/windows.rst:726 +msgid "" +"The launcher should have been associated with Python files (i.e. ``.py``, ``." +"pyw``, ``.pyc`` files) when it was installed. This means that when you " +"double-click on one of these files from Windows explorer the launcher will " +"be used, and therefore you can use the same facilities described above to " +"have the script specify the version which should be used." +msgstr "" +"Le lanceur aurait dû être associé à des fichiers Python (des fichiers comme " +"``.py``, ``.pyw``, ``.pyc``) lorsqu'il a été installé. Cela signifie que " +"lorsque vous double-cliquez sur l'un de ces fichiers à partir de " +"l'Explorateur Windows, le lanceur sera utilisé, et donc vous pouvez utiliser " +"les mêmes installations décrites ci-dessus pour que le script spécifie la " +"version qui doit être utilisée." + +#: ../Doc/using/windows.rst:732 +msgid "" +"The key benefit of this is that a single launcher can support multiple " +"Python versions at the same time depending on the contents of the first line." +msgstr "" +"L'avantage principal de ceci est qu'un seul lanceur peut prendre en charge " +"plusieurs versions de Python en même temps en fonction du contenu de la " +"première ligne." + +#: ../Doc/using/windows.rst:736 +msgid "Shebang Lines" +msgstr "Lignes Shebang" + +#: ../Doc/using/windows.rst:738 +msgid "" +"If the first line of a script file starts with ``#!``, it is known as a " +"\"shebang\" line. Linux and other Unix like operating systems have native " +"support for such lines and they are commonly used on such systems to " +"indicate how a script should be executed. This launcher allows the same " +"facilities to be used with Python scripts on Windows and the examples above " +"demonstrate their use." +msgstr "" +"Si la première ligne d'un fichier de script commence par ``#!``, elle est " +"connue sous le nom de ligne \"*shebang*\". Linux et d'autres systèmes basés " +"sur Unix ont une prise en charge native de ces lignes et les *shebangs* sont " +"couramment utilisés sur ces systèmes pour indiquer comment un script doit " +"être exécuté. Ce lanceur permet aux mêmes installations d'être utilisés avec " +"des scripts Python sur Windows et les exemples ci-dessus démontrent leur " +"utilisation." + +#: ../Doc/using/windows.rst:745 +msgid "" +"To allow shebang lines in Python scripts to be portable between Unix and " +"Windows, this launcher supports a number of 'virtual' commands to specify " +"which interpreter to use. The supported virtual commands are:" +msgstr "" +"Pour permettre aux *shebang* dans les scripts Python d'être portables entre " +"UNIX et Windows, ce lanceur prend en charge un certain nombre de commandes " +"« virtuelles » pour spécifier l'interpréteur à utiliser. Les commandes " +"virtuelles prises en charge sont :" + +#: ../Doc/using/windows.rst:749 +msgid "``/usr/bin/env python``" +msgstr "``/usr/bin/env python``" + +#: ../Doc/using/windows.rst:750 +msgid "``/usr/bin/python``" +msgstr "``/usr/bin/python``" + +#: ../Doc/using/windows.rst:751 +msgid "``/usr/local/bin/python``" +msgstr "``/usr/local/bin/python``" + +#: ../Doc/using/windows.rst:752 +msgid "``python``" +msgstr "``python``" + +#: ../Doc/using/windows.rst:754 +msgid "For example, if the first line of your script starts with" +msgstr "Par exemple, si la première ligne de votre script commence par" + +#: ../Doc/using/windows.rst:760 +msgid "" +"The default Python will be located and used. As many Python scripts written " +"to work on Unix will already have this line, you should find these scripts " +"can be used by the launcher without modification. If you are writing a new " +"script on Windows which you hope will be useful on Unix, you should use one " +"of the shebang lines starting with ``/usr``." +msgstr "" +"Le Python par défaut sera trouvé et utilisé. Comme de nombreux scripts " +"Python écrits pour fonctionner sur UNIX auront déjà cette ligne, ils " +"devraient fonctionner avec le lanceur sans modification. Si vous écrivez un " +"nouveau script sur Windows et que vous pensez qu'il sera utile sur UNIX, " +"vous devez utiliser l'une des lignes *shebang* commençant par ``/usr``." + +#: ../Doc/using/windows.rst:766 +msgid "" +"Any of the above virtual commands can be suffixed with an explicit version " +"(either just the major version, or the major and minor version). Furthermore " +"the 32-bit version can be requested by adding \"-32\" after the minor " +"version. I.e. ``/usr/bin/python2.7-32`` will request usage of the 32-bit " +"python 2.7." +msgstr "" +"Les commandes virtuelles ci-dessus peuvent être suffixées avec une version " +"explicite (soit seulement la version principale, soit la version principale " +"et mineure). De plus la version 32-bit peut être demandée en ajoutant " +"**-32** après le numéro de version mineur. Par exemple ``/usr/bin/" +"python2.7-32`` demande d’utiliser la version 32-bit de Python 2.7." + +#: ../Doc/using/windows.rst:774 +msgid "" +"Beginning with python launcher 3.7 it is possible to request 64-bit version " +"by the \"-64\" suffix. Furthermore it is possible to specify a major and " +"architecture without minor (i.e. ``/usr/bin/python3-64``)." +msgstr "" +"Depuis la version 3.7 du lanceur Python, il est possible de demander une " +"version *64-bit* en utilisant le suffixe **-64**. De plus il est possible de " +"spécifier une version majeure et une architecture sans version mineure (par " +"exemple ``/usr/bin/python3-64``)." + +#: ../Doc/using/windows.rst:778 +msgid "" +"The ``/usr/bin/env`` form of shebang line has one further special property. " +"Before looking for installed Python interpreters, this form will search the " +"executable :envvar:`PATH` for a Python executable. This corresponds to the " +"behaviour of the Unix ``env`` program, which performs a :envvar:`PATH` " +"search." +msgstr "" +"La forme ``/usr/bin/env`` de ligne *shebang* possède une autre propriété " +"spéciale. Avant de rechercher les interpréteurs Python installés, cette " +"forme recherche d'abord l'exécutable dans le :envvar:`PATH`. Cela correspond " +"au comportement du programme Unix ``env``, qui effectue une recherche dans :" +"envvar:`PATH`." + +#: ../Doc/using/windows.rst:784 +msgid "Arguments in shebang lines" +msgstr "Arguments dans les lignes *shebang*" + +#: ../Doc/using/windows.rst:786 +msgid "" +"The shebang lines can also specify additional options to be passed to the " +"Python interpreter. For example, if you have a shebang line:" +msgstr "" +"Les lignes *shebang* peuvent également spécifier des options supplémentaires " +"à passer à l'interpréteur Python. Par exemple, si vous avez une ligne " +"*shebang* :" + +#: ../Doc/using/windows.rst:793 +msgid "Then Python will be started with the ``-v`` option" +msgstr "Alors, Python sera démarré avec l'option ``-v``" + +#: ../Doc/using/windows.rst:796 +msgid "Customization" +msgstr "Personnalisation" + +#: ../Doc/using/windows.rst:799 +msgid "Customization via INI files" +msgstr "Personnalisation via des fichiers INI" + +#: ../Doc/using/windows.rst:801 +msgid "" +"Two .ini files will be searched by the launcher - ``py.ini`` in the current " +"user's \"application data\" directory (i.e. the directory returned by " +"calling the Windows function ``SHGetFolderPath`` with " +"``CSIDL_LOCAL_APPDATA``) and ``py.ini`` in the same directory as the " +"launcher. The same .ini files are used for both the 'console' version of the " +"launcher (i.e. py.exe) and for the 'windows' version (i.e. pyw.exe)." +msgstr "" +"Deux fichiers ``.ini`` seront recherchés par le lanceur -- ``py.ini`` dans " +"le répertoire \"Application Data\" de l'utilisateur actuel (c'est-à-dire le " +"répertoire retourné en appelant la fonction Windows ``SHGetFolderPath`` avec " +"``CSIDL_LOCAL_APPDATA``) et ``py.ini`` dans le même répertoire que le " +"lanceur. Les mêmes fichiers ``.ini`` sont utilisés à la fois pour la version " +"« console » du lanceur (c'est-à-dire ``py.exe``) et pour la version " +"« fenêtrée » (c'est-à-dire ``pyw.exe``)." + +#: ../Doc/using/windows.rst:808 +msgid "" +"Customization specified in the \"application directory\" will have " +"precedence over the one next to the executable, so a user, who may not have " +"write access to the .ini file next to the launcher, can override commands in " +"that global .ini file." +msgstr "" +"La personnalisation spécifiée dans le \"répertoire de l'application\" aura " +"la priorité sur celle à côté de l'exécutable, de sorte qu'un utilisateur, " +"qui peut ne pas avoir accès en écriture au fichier ``.ini`` à côté du " +"lanceur, peut substituer des commandes dans ce fichier ``.ini`` global)" + +#: ../Doc/using/windows.rst:813 +msgid "Customizing default Python versions" +msgstr "Personnalisation des versions Python par défaut" + +#: ../Doc/using/windows.rst:815 +msgid "" +"In some cases, a version qualifier can be included in a command to dictate " +"which version of Python will be used by the command. A version qualifier " +"starts with a major version number and can optionally be followed by a " +"period ('.') and a minor version specifier. Furthermore it is possible to " +"specifiy if a 32 or 64 bit implementation shall be requested by adding " +"\"-32\" or \"-64\"." +msgstr "" +"Dans certains cas, un qualificateur de version peut être inclus dans une " +"commande pour dicter quelle version de Python sera utilisée par la commande. " +"Un qualificateur de version commence par un numéro de version majeure et " +"peut éventuellement être suivi d'un point (``.``) et d'un spécificateur de " +"version secondaire. De plus il est possible de préciser si une " +"implémentation 32 ou 64 bit doit être demandée en ajoutant **-32** ou " +"**-64**." + +#: ../Doc/using/windows.rst:821 +msgid "" +"For example, a shebang line of ``#!python`` has no version qualifier, while " +"``#!python3`` has a version qualifier which specifies only a major version." +msgstr "" +"Par exemple, une ligne *shebang* valant ``#!python`` n'a pas de " +"qualificateur de version, tandis que ``#!python3`` a un qualificateur de " +"version qui ne spécifie qu'une version majeure." + +#: ../Doc/using/windows.rst:824 +msgid "" +"If no version qualifiers are found in a command, the environment variable :" +"envvar:`PY_PYTHON` can be set to specify the default version qualifier. If " +"it is not set, the default is \"3\". The variable can specify any value that " +"may be passed on the command line, such as \"3\", \"3.7\", \"3.7-32\" or " +"\"3.7-64\". (Note that the \"-64\" option is only available with the " +"launcher included with Python 3.7 or newer.)" +msgstr "" +"Si aucun qualificateur de version n'est trouvé dans une commande, la " +"variable d'environnement :envvar:`PY_PYTHON` peut être définie pour " +"spécifier le qualificateur de version par défaut. Si non définie, la valeur " +"par défaut est ``3``. La variable peut spécifier n’importe quelle valeur qui " +"peut être passée dans la ligne de commande telle que ``3``, ``3.7``, " +"``3.7-32`` ou ``3.7-64``. (Notez que l’option **-64** est seulement " +"disponible avec le lanceur inclus avec Python 3.7 ou plus récent.)" + +#: ../Doc/using/windows.rst:831 +msgid "" +"If no minor version qualifiers are found, the environment variable " +"``PY_PYTHON{major}`` (where ``{major}`` is the current major version " +"qualifier as determined above) can be set to specify the full version. If no " +"such option is found, the launcher will enumerate the installed Python " +"versions and use the latest minor release found for the major version, which " +"is likely, although not guaranteed, to be the most recently installed " +"version in that family." +msgstr "" +"Si aucun qualificateur de version mineure n'est trouvé, la variable " +"d'environnement ``PY_PYTHON{major}`` (où ``{major}`` est le qualificateur de " +"version principale actuelle tel que déterminé ci-dessus) peut être définie " +"pour spécifier la version complète. Si aucune option de ce type n'est " +"trouvée, le lanceur énumérera les versions de Python installées et utilisera " +"la dernière version mineure trouvée pour la version principale, qui est " +"probablement la plus récemment installée dans cette famille." + +#: ../Doc/using/windows.rst:839 +msgid "" +"On 64-bit Windows with both 32-bit and 64-bit implementations of the same " +"(major.minor) Python version installed, the 64-bit version will always be " +"preferred. This will be true for both 32-bit and 64-bit implementations of " +"the launcher - a 32-bit launcher will prefer to execute a 64-bit Python " +"installation of the specified version if available. This is so the behavior " +"of the launcher can be predicted knowing only what versions are installed on " +"the PC and without regard to the order in which they were installed (i.e., " +"without knowing whether a 32 or 64-bit version of Python and corresponding " +"launcher was installed last). As noted above, an optional \"-32\" or \"-64\" " +"suffix can be used on a version specifier to change this behaviour." +msgstr "" +"Sur Windows 64-bits avec les implémentations 32-bits et 64-bits de la même " +"version Python (``major.minor``) installée, la version 64-bit est toujours " +"préférée. Cela est vrai pour les implémentations 32-bits et 64-bits du " +"lanceur – un lanceur 32-bits préfère exécuter une installation Python de 64-" +"bits de la version spécifiée si elle est disponible. Le comportement du " +"lanceur est donc prévisible en sachant seulement quelles versions sont " +"installées sur le PC et sans tenir compte de l'ordre dans lequel ils ont été " +"installés (i.e., sans savoir si une version 32 ou 64-bit de Python et le " +"lanceur correspondant a été installé en dernier). Comme indiqué ci-dessus, " +"un suffixe optionnel ``-32`` ou ``-64`` peut être utilisé sur un " +"spécificateur de version pour modifier ce comportement." + +#: ../Doc/using/windows.rst:850 +msgid "Examples:" +msgstr "Exemples :" + +#: ../Doc/using/windows.rst:852 +msgid "" +"If no relevant options are set, the commands ``python`` and ``python2`` will " +"use the latest Python 2.x version installed and the command ``python3`` will " +"use the latest Python 3.x installed." +msgstr "" +"Si aucune option pertinente n'est définie, les commandes ``python`` et " +"``python2`` utiliseront la dernière version de Python 2.x installée et la " +"commande ``python3`` utilisera le dernier Python 3.x installé." + +#: ../Doc/using/windows.rst:856 +msgid "" +"The commands ``python3.1`` and ``python2.7`` will not consult any options at " +"all as the versions are fully specified." +msgstr "" +"Les commandes ``python3.1`` et ``python2.7`` ne consultent aucune option du " +"tout car les versions sont entièrement spécifiées." + +#: ../Doc/using/windows.rst:859 +msgid "" +"If ``PY_PYTHON=3``, the commands ``python`` and ``python3`` will both use " +"the latest installed Python 3 version." +msgstr "" +"Si ``PY_PYTHON=3``, les commandes ``python`` et ``python3`` utiliseront la " +"dernière version de Python 3 installée." + +#: ../Doc/using/windows.rst:862 +msgid "" +"If ``PY_PYTHON=3.1-32``, the command ``python`` will use the 32-bit " +"implementation of 3.1 whereas the command ``python3`` will use the latest " +"installed Python (PY_PYTHON was not considered at all as a major version was " +"specified.)" +msgstr "" +"Si ``PY_PYTHON=3.1-32``, la commande ``python`` utilisera l'implémentation " +"32-bits de 3.1 alors que la commande ``python3`` utilisera le dernier Python " +"installé (*PY_PYTHON* n'a pas été considéré du tout comme une version " +"majeure a été spécifiée.)" + +#: ../Doc/using/windows.rst:867 +msgid "" +"If ``PY_PYTHON=3`` and ``PY_PYTHON3=3.1``, the commands ``python`` and " +"``python3`` will both use specifically 3.1" +msgstr "" +"Si ``PY_PYTHON=3`` et ``PY_PYTHON3=3.1``, les commandes ``python`` et " +"``python3`` utiliseront spécifiquement 3.1" + +#: ../Doc/using/windows.rst:870 +msgid "" +"In addition to environment variables, the same settings can be configured in " +"the .INI file used by the launcher. The section in the INI file is called " +"``[defaults]`` and the key name will be the same as the environment " +"variables without the leading ``PY_`` prefix (and note that the key names in " +"the INI file are case insensitive.) The contents of an environment variable " +"will override things specified in the INI file." +msgstr "" +"En plus des variables d'environnement, les mêmes paramètres peuvent être " +"configurés dans le ``.INI`` utilisé par le lanceur. La section dans le " +"fichier INI est appelée ``[defaults]`` et le nom de la clé sera le même que " +"les variables d'environnement sans le préfixe ``PY_`` principal (et notez " +"que les noms de clés dans le fichier **INI** sont insensibles à la case.) Le " +"contenu d'une variable d'environnement remplacera les éléments spécifiés " +"dans le fichier *INI*." + +#: ../Doc/using/windows.rst:877 +msgid "For example:" +msgstr "Par exemple :" + +#: ../Doc/using/windows.rst:879 +msgid "Setting ``PY_PYTHON=3.1`` is equivalent to the INI file containing:" +msgstr "Le paramètre ``PY_PYTHON=3.1`` équivaut au fichier **INI** contenant :" + +#: ../Doc/using/windows.rst:886 +msgid "" +"Setting ``PY_PYTHON=3`` and ``PY_PYTHON3=3.1`` is equivalent to the INI file " +"containing:" +msgstr "" +"Le paramètre ``PY_PYTHON=3`` et ``PY_PYTHON3=3.1`` équivaut au fichier *INI* " +"contenant :" + +#: ../Doc/using/windows.rst:896 +msgid "Diagnostics" +msgstr "Diagnostics" + +#: ../Doc/using/windows.rst:898 +msgid "" +"If an environment variable ``PYLAUNCH_DEBUG`` is set (to any value), the " +"launcher will print diagnostic information to stderr (i.e. to the console). " +"While this information manages to be simultaneously verbose *and* terse, it " +"should allow you to see what versions of Python were located, why a " +"particular version was chosen and the exact command-line used to execute the " +"target Python." +msgstr "" +"Si une variable d'environnement ``PYLAUNCH_DEBUG`` est définie (à n'importe " +"quelle valeur), le lanceur affichera des informations de diagnostic sur " +"*stderr* (c'est-à-dire sur la console). Bien que ces informations " +"parviennent à être en même temps nombreuses et concises, elles devraient " +"vous permettre de voir quelles versions de Python ont été trouvées, pourquoi " +"une version particulière a été choisie et la ligne de commande exacte " +"utilisée pour exécuter le Python cible." + +#: ../Doc/using/windows.rst:910 +msgid "Finding modules" +msgstr "Recherche de modules" + +#: ../Doc/using/windows.rst:912 +msgid "" +"Python usually stores its library (and thereby your site-packages folder) in " +"the installation directory. So, if you had installed Python to :file:`C:\\" +"\\Python\\\\`, the default library would reside in :file:`C:\\\\Python\\\\Lib" +"\\\\` and third-party modules should be stored in :file:`C:\\\\Python\\\\Lib" +"\\\\site-packages\\\\`." +msgstr "" +"Python stocke généralement sa bibliothèque (et donc votre dossier ``site-" +"packages``) dans le répertoire d'installation. Donc, si vous aviez installé " +"Python dans :file:`C:\\\\Python\\\\`, la bibliothèque par défaut résiderait " +"dans :file:`C:\\\\Python\\\\Lib\\\\` et les modules tiers devraient être " +"stockés dans :file:`C:\\\\Python\\\\Lib\\\\site-packages\\\\`." + +#: ../Doc/using/windows.rst:918 +msgid "" +"To completely override :data:`sys.path`, create a ``._pth`` file with the " +"same name as the DLL (``python37._pth``) or the executable (``python._pth``) " +"and specify one line for each path to add to :data:`sys.path`. The file " +"based on the DLL name overrides the one based on the executable, which " +"allows paths to be restricted for any program loading the runtime if desired." +msgstr "" +"Pour remplacer complètement :data:`sys.path`, créez un fichier ``._pth`` " +"portant le même nom que le DLL (``python37._pth``) ou l'exécutable (``python." +"_pth``) et spécifiez une ligne pour chaque chemin à ajouter à :data:`sys." +"path`. Le fichier basé sur le nom de la DLL remplace celui basé sur " +"l'exécutable, qui permet aux chemins d'être restreints pour tout programme " +"chargeant le *runtime* si désiré." + +#: ../Doc/using/windows.rst:924 +msgid "" +"When the file exists, all registry and environment variables are ignored, " +"isolated mode is enabled, and :mod:`site` is not imported unless one line in " +"the file specifies ``import site``. Blank paths and lines starting with " +"``#`` are ignored. Each path may be absolute or relative to the location of " +"the file. Import statements other than to ``site`` are not permitted, and " +"arbitrary code cannot be specified." +msgstr "" +"Lorsque le fichier existe, toutes les variables de registre et " +"d'environnement sont ignorées, le mode isolé est activé et :mod:`site` n'est " +"pas importé, sauf si une ligne du fichier spécifie ``import site``. Les " +"chemins et les lignes vides commençant par ``#`` sont ignorés. Chaque chemin " +"d'accès peut être absolu ou relatif à l'emplacement du fichier. Les " +"importations autres que vers *site* ne sont pas autorisées, ni n'importe " +"quelle instruction Python." + +#: ../Doc/using/windows.rst:931 +msgid "" +"Note that ``.pth`` files (without leading underscore) will be processed " +"normally by the :mod:`site` module when ``import site`` has been specified." +msgstr "" +"Notez que les fichiers ``.pth`` (sans `underscore` précédant le ``pth``) " +"seront traités normalement par le module :mod:`site` lorsque ``import site`` " +"a été spécifié." + +#: ../Doc/using/windows.rst:934 +msgid "" +"When no ``._pth`` file is found, this is how :data:`sys.path` is populated " +"on Windows:" +msgstr "" +"Lorsque aucun fichier ``._pth`` n'est trouvé, voilà comment :data:`sys.path` " +"est construit sur Windows :" + +#: ../Doc/using/windows.rst:937 +msgid "" +"An empty entry is added at the start, which corresponds to the current " +"directory." +msgstr "" +"Une entrée vide est ajoutée au début, qui correspond au répertoire courant." + +#: ../Doc/using/windows.rst:940 +msgid "" +"If the environment variable :envvar:`PYTHONPATH` exists, as described in :" +"ref:`using-on-envvars`, its entries are added next. Note that on Windows, " +"paths in this variable must be separated by semicolons, to distinguish them " +"from the colon used in drive identifiers (``C:\\`` etc.)." +msgstr "" +"Si la variable d'environnement :envvar:`PYTHONPATH` existe, comme décrit " +"dans :ref:`using-on-envvars`, ses entrées sont ajoutées ensuite. Notez que " +"sur Windows, les chemins d'accès de cette variable doivent être séparés par " +"des points-virgules, pour les distinguer des deux points utilisés dans les " +"identificateurs de lecteur (``C:\\`` etc.)." + +#: ../Doc/using/windows.rst:945 +msgid "" +"Additional \"application paths\" can be added in the registry as subkeys of :" +"samp:`\\\\SOFTWARE\\\\Python\\\\PythonCore\\\\{version}\\\\PythonPath` under " +"both the ``HKEY_CURRENT_USER`` and ``HKEY_LOCAL_MACHINE`` hives. Subkeys " +"which have semicolon-delimited path strings as their default value will " +"cause each path to be added to :data:`sys.path`. (Note that all known " +"installers only use HKLM, so HKCU is typically empty.)" +msgstr "" +"Des \"chemins d'accès d'application\" supplémentaires peuvent être ajoutés " +"dans le registre en tant que sous-clés de :samp:`\\\\SOFTWARE\\\\Python\\" +"\\PythonCore\\\\{version}\\\\PythonPath` sous les ruches " +"``HKEY_CURRENT_USER`` et ``HKEY_LOCAL_MACHINE``. Les sous-clés qui ont des " +"chaînes de chemin délimitées par des points-virgules comme valeur par défaut " +"entraînent l'ajout de chaque chemin d'accès à :data:`sys.path`. (Notez que " +"tous les installateurs connus utilisent seulement HKLM, donc HKCU est " +"généralement vide.)" + +#: ../Doc/using/windows.rst:952 +msgid "" +"If the environment variable :envvar:`PYTHONHOME` is set, it is assumed as " +"\"Python Home\". Otherwise, the path of the main Python executable is used " +"to locate a \"landmark file\" (either ``Lib\\os.py`` or ``pythonXY.zip``) to " +"deduce the \"Python Home\". If a Python home is found, the relevant sub-" +"directories added to :data:`sys.path` (``Lib``, ``plat-win``, etc) are based " +"on that folder. Otherwise, the core Python path is constructed from the " +"PythonPath stored in the registry." +msgstr "" +"Si la variable d'environnement :envvar:`PYTHONHOME` est définie, elle est " +"supposée comme \"Python Home\". Sinon, le chemin de l'exécutable principal " +"de Python est utilisé pour chercher un \"fichier de repère\" (soit ``Lib\\os." +"py`` ou ``pythonXY.zip``) pour déduire le \"Python Home\". Si un \"Python " +"Home\" est trouvé, les sous-répertoires correspondants ajoutés à :data:`sys." +"path` (``Lib``, ``plat-win``, etc) sont basés sur ce dossier. Sinon, le " +"chemin d'accès Python principal est construit à partir du PythonPath stocké " +"dans le registre." + +#: ../Doc/using/windows.rst:960 +msgid "" +"If the Python Home cannot be located, no :envvar:`PYTHONPATH` is specified " +"in the environment, and no registry entries can be found, a default path " +"with relative entries is used (e.g. ``.\\Lib;.\\plat-win``, etc)." +msgstr "" +"Si le \"Python Home\" ne peut pas être trouvé, :envvar:`PYTHONPATH` n'est " +"pas spécifié dans l'environnement et aucune entrée de registre ne peut être " +"trouvée, un chemin par défaut avec des entrées relatives est utilisé (par " +"exemple ``.\\Lib`` ; ``.\\plat-win``, etc.)." + +#: ../Doc/using/windows.rst:964 +msgid "" +"If a ``pyvenv.cfg`` file is found alongside the main executable or in the " +"directory one level above the executable, the following variations apply:" +msgstr "" +"Si un fichier ``pyvenv.cfg`` se trouve à côté de l'exécutable principal ou " +"dans le répertoire un niveau au-dessus de l'exécutable, les variantes " +"suivantes s'appliquent :" + +#: ../Doc/using/windows.rst:967 +msgid "" +"If ``home`` is an absolute path and :envvar:`PYTHONHOME` is not set, this " +"path is used instead of the path to the main executable when deducing the " +"home location." +msgstr "" +"Si ``home`` est un chemin absolu et :envvar:`PYTHONHOME` n'est pas défini, " +"ce chemin d'accès est utilisé au lieu du chemin d'accès à l'exécutable " +"principal lors de la déduction de l'emplacement du `home`." + +#: ../Doc/using/windows.rst:971 +msgid "The end result of all this is:" +msgstr "Le résultat final de tout ceci est :" + +#: ../Doc/using/windows.rst:973 +msgid "" +"When running :file:`python.exe`, or any other .exe in the main Python " +"directory (either an installed version, or directly from the PCbuild " +"directory), the core path is deduced, and the core paths in the registry are " +"ignored. Other \"application paths\" in the registry are always read." +msgstr "" +"Lors de l'exécution de :file:`python.exe`, ou tout autre ``.exe`` dans le " +"répertoire principal de Python (soit une version installée, soit directement " +"à partir du répertoire PCbuild), le chemin principal est déduit et les " +"chemins d'accès principaux dans le Registre sont ignorés. D'autres \"chemins " +"d'application\" dans le registre sont toujours lus." + +#: ../Doc/using/windows.rst:978 +msgid "" +"When Python is hosted in another .exe (different directory, embedded via " +"COM, etc), the \"Python Home\" will not be deduced, so the core path from " +"the registry is used. Other \"application paths\" in the registry are " +"always read." +msgstr "" +"Lorsque Python est hébergé dans un autre fichier ``.exe`` (répertoire " +"différent, intégré via COM, etc.), le \"Python Home\" ne sera pas déduit, de " +"sorte que le chemin d'accès principal du registre est utilisé. D'autres " +"\"chemins d'application\" dans le registre sont toujours lus." + +#: ../Doc/using/windows.rst:982 +msgid "" +"If Python can't find its home and there are no registry value (frozen .exe, " +"some very strange installation setup) you get a path with some default, but " +"relative, paths." +msgstr "" +"Si Python ne peut pas trouver son \"home\" et il n'y a pas de valeur de " +"registre (*.exe* gelé, une installation très étrange) vous obtenez un chemin " +"d'accès avec certains chemins par défaut, mais relatif." + +#: ../Doc/using/windows.rst:986 +msgid "" +"For those who want to bundle Python into their application or distribution, " +"the following advice will prevent conflicts with other installations:" +msgstr "" +"Pour ceux qui veulent intégrer Python dans leur application ou leur " +"distribution, les conseils suivants empêcheront les conflits avec d'autres " +"installations :" + +#: ../Doc/using/windows.rst:989 +msgid "" +"Include a ``._pth`` file alongside your executable containing the " +"directories to include. This will ignore paths listed in the registry and " +"environment variables, and also ignore :mod:`site` unless ``import site`` is " +"listed." +msgstr "" +"Incluez un fichier ``._pth`` à côté de votre exécutable contenant les " +"répertoires à inclure. Ceci ignorera les chemins répertoriés dans le " +"registre et les variables d'environnement, et ignorera également :mod:`site` " +"à moins que ``import site`` soit listé." + +#: ../Doc/using/windows.rst:994 +msgid "" +"If you are loading :file:`python3.dll` or :file:`python37.dll` in your own " +"executable, explicitly call :c:func:`Py_SetPath` or (at least) :c:func:" +"`Py_SetProgramName` before :c:func:`Py_Initialize`." +msgstr "" +"Si vous chargez :file:`python3.dll` ou :file:`python37.dll` dans votre " +"propre exécutable, appelez explicitement :c:func:`Py_SetPath` ou (au moins) :" +"c:func:`Py_SetProgramName` avant :c:func:`Py_Initialize`." + +#: ../Doc/using/windows.rst:998 +msgid "" +"Clear and/or overwrite :envvar:`PYTHONPATH` and set :envvar:`PYTHONHOME` " +"before launching :file:`python.exe` from your application." +msgstr "" +"Effacer et/ou écraser :envvar:`PYTHONPATH` et configurez :envvar:" +"`PYTHONHOME` avant de lancer le :file:`python.exe` de votre application." + +#: ../Doc/using/windows.rst:1001 +msgid "" +"If you cannot use the previous suggestions (for example, you are a " +"distribution that allows people to run :file:`python.exe` directly), ensure " +"that the landmark file (:file:`Lib\\\\os.py`) exists in your install " +"directory. (Note that it will not be detected inside a ZIP file, but a " +"correctly named ZIP file will be detected instead.)" +msgstr "" +"Si vous ne pouvez pas utiliser les suggestions précédentes (par exemple, " +"vous êtes une distribution qui permet aux gens d'exécuter :file:`python.exe` " +"directement), assurez-vous que le point de repère :file:`Lib\\\\os.py` " +"existe dans votre répertoire d'installation. (Notez qu'il ne sera pas " +"détecté à l'intérieur d'un fichier ZIP, mais un fichier ZIP correctement " +"nommé sera détecté à la place.)" + +#: ../Doc/using/windows.rst:1007 +msgid "" +"These will ensure that the files in a system-wide installation will not take " +"precedence over the copy of the standard library bundled with your " +"application. Otherwise, your users may experience problems using your " +"application. Note that the first suggestion is the best, as the others may " +"still be susceptible to non-standard paths in the registry and user site-" +"packages." +msgstr "" +"Ceux-ci garantiront que les fichiers d'une installation à l'échelle du " +"système n'auront pas la priorité sur la copie de la bibliothèque standard " +"livrée avec votre application. Sinon, vos utilisateurs pourraient rencontrer " +"des problèmes en utilisant votre application. Notez que la première " +"suggestion est la meilleure, car les autres peuvent encore être sensibles " +"aux chemins non-standard dans le registre et le *site-packages* utilisateur." + +#: ../Doc/using/windows.rst:1016 +msgid "" +"Adds ``._pth`` file support and removes ``applocal`` option from ``pyvenv." +"cfg``." +msgstr "" +"Ajout de la gestion des ``._pth`` et suppression de l'option ``applocal`` de " +"``pyvenv.cfg``." + +#: ../Doc/using/windows.rst:1018 +msgid "" +"Adds ``pythonXX.zip`` as a potential landmark when directly adjacent to the " +"executable." +msgstr "" +"Ajout de ``pythonXX.zip`` comme point de repère potentiel lorsqu'il est " +"directement adjacent à l'exécutable." + +#: ../Doc/using/windows.rst:1024 +msgid "" +"Modules specified in the registry under ``Modules`` (not ``PythonPath``) may " +"be imported by :class:`importlib.machinery.WindowsRegistryFinder`. This " +"finder is enabled on Windows in 3.6.0 and earlier, but may need to be " +"explicitly added to :attr:`sys.meta_path` in the future." +msgstr "" +"Les modules spécifiés dans le registre sous ``Modules`` (pas ``PythonPath``) " +"peuvent être importés par :class:`importlib.machinery." +"WindowsRegistryFinder`. Ce Finder est activé sur Windows dans 3.6.0 et plus " +"récent, mais il pourrait être nécessaire de l'ajouter explicitement à :attr:" +"`sys.meta_path` à l'avenir." + +#: ../Doc/using/windows.rst:1030 +msgid "Additional modules" +msgstr "Modules supplémentaires" + +#: ../Doc/using/windows.rst:1032 +msgid "" +"Even though Python aims to be portable among all platforms, there are " +"features that are unique to Windows. A couple of modules, both in the " +"standard library and external, and snippets exist to use these features." +msgstr "" +"Même si Python a l'ambition d'être portable parmi toutes les plates-formes, " +"il existe des fonctionnalités propres à Windows. Certains modules, à la fois " +"dans la bibliothèque standard et externe, et des exemples existent pour " +"utiliser ces fonctionnalités." + +#: ../Doc/using/windows.rst:1036 +msgid "" +"The Windows-specific standard modules are documented in :ref:`mswin-specific-" +"services`." +msgstr "" +"Les modules standard de Windows sont documentés dans :ref:`mswin-specific-" +"services`." + +#: ../Doc/using/windows.rst:1040 +msgid "PyWin32" +msgstr "PyWin32" + +#: ../Doc/using/windows.rst:1042 +msgid "" +"The `PyWin32 `_ module by Mark Hammond is " +"a collection of modules for advanced Windows-specific support. This " +"includes utilities for:" +msgstr "" +"Le module `PyWin32 `_ de Mark Hammond est " +"une collection de modules pour un support avancé spécifique à Windows. Cela " +"inclut les services pour :" + +#: ../Doc/using/windows.rst:1046 +msgid "" +"`Component Object Model `_ (COM)" +msgstr "" +"`Component Object Model `_ (COM)" + +#: ../Doc/using/windows.rst:1049 +msgid "Win32 API calls" +msgstr "Appels à l'API Win32" + +#: ../Doc/using/windows.rst:1050 +msgid "Registry" +msgstr "Registre" + +#: ../Doc/using/windows.rst:1051 +msgid "Event log" +msgstr "Journal d'événement" + +#: ../Doc/using/windows.rst:1052 +msgid "" +"`Microsoft Foundation Classes `_ (MFC) user interfaces" +msgstr "" +"`Microsoft Foundation Classes `_ (MFC) interfaces utilisateur" + +#: ../Doc/using/windows.rst:1055 +msgid "" +"`PythonWin `_ is a sample MFC application shipped with PyWin32. " +"It is an embeddable IDE with a built-in debugger." +msgstr "" +"`PythonWin `_ est un exemple d'application MFC livrée avec PyWin32. " +"Il s'agit d'un IDE embarqué avec débogueur intégré." + +#: ../Doc/using/windows.rst:1062 +msgid "" +"`Win32 How Do I...? `_" +msgstr "" +"`Win32 How Do I...? `_" + +#: ../Doc/using/windows.rst:1062 +msgid "by Tim Golden" +msgstr "par Tim Golden" + +#: ../Doc/using/windows.rst:1064 +msgid "`Python and COM `_" +msgstr "`Python and COM `_" + +#: ../Doc/using/windows.rst:1065 +msgid "by David and Paul Boddie" +msgstr "par David et Paul Boddie" + +#: ../Doc/using/windows.rst:1069 +msgid "cx_Freeze" +msgstr "cx_Freeze" + +#: ../Doc/using/windows.rst:1071 +msgid "" +"`cx_Freeze `_ is a :mod:" +"`distutils` extension (see :ref:`extending-distutils`) which wraps Python " +"scripts into executable Windows programs (:file:`{*}.exe` files). When you " +"have done this, you can distribute your application without requiring your " +"users to install Python." +msgstr "" +"`cx_Freeze `_ est une " +"extension :mod:`distutils` (voir :ref:`extending-distutils`) qui encapsule " +"des scripts Python dans des programmes exécutables Windows (Fichiers :file:" +"`{*}.exe`). Lorsque vous l'avez fait, vous pouvez distribuer votre " +"application sans demander à vos utilisateurs d'installer Python." + +#: ../Doc/using/windows.rst:1079 +msgid "WConio" +msgstr "WConio" + +#: ../Doc/using/windows.rst:1081 +msgid "" +"Since Python's advanced terminal handling layer, :mod:`curses`, is " +"restricted to Unix-like systems, there is a library exclusive to Windows as " +"well: Windows Console I/O for Python." +msgstr "" +"Depuis la couche avancée de gestion de terminal de Python, :mod:`curses`, " +"est limité aux systèmes de type UNIX, il existe une bibliothèque exclusive à " +"Windows : *Windows Console I/O for Python*." + +#: ../Doc/using/windows.rst:1085 +msgid "" +"`WConio `_ is a wrapper " +"for Turbo-C's :file:`CONIO.H`, used to create text user interfaces." +msgstr "" +"`WConio `_ est un " +"*wrapper* pour les fichiers Turbo-C :file:`CONIO.H`, utilisé pour créer des " +"interfaces texte utilisateur." + +#: ../Doc/using/windows.rst:1091 +msgid "Compiling Python on Windows" +msgstr "Compiler Python sous Windows" + +#: ../Doc/using/windows.rst:1093 +msgid "" +"If you want to compile CPython yourself, first thing you should do is get " +"the `source `_. You can download " +"either the latest release's source or just grab a fresh `checkout `_." +msgstr "" +"Si vous voulez compiler CPython vous-même, la première chose à faire est " +"obtenir la `source `_. Vous pouvez " +"télécharger soit la source de la dernière version ou tout simplement prendre " +"un `checkout `_." + +#: ../Doc/using/windows.rst:1098 +msgid "" +"The source tree contains a build solution and project files for Microsoft " +"Visual Studio 2015, which is the compiler used to build the official Python " +"releases. These files are in the :file:`PCbuild` directory." +msgstr "" +"L'arborescence source contient une solution de compilation et des fichiers " +"projet pour Microsoft Visual Studio 2015, qui est le compilateur utilisé " +"pour générer les versions officielles de Python. Ces fichiers se trouvent " +"dans le répertoire :file:`PCbuild`." + +#: ../Doc/using/windows.rst:1102 +msgid "" +"Check :file:`PCbuild/readme.txt` for general information on the build " +"process." +msgstr "" +"Consultez :file:`PC/readme.txt` pour des informations générales sur le " +"processus de construction." + +#: ../Doc/using/windows.rst:1105 +msgid "For extension modules, consult :ref:`building-on-windows`." +msgstr "Pour les modules d'extension, consultez :ref:`building-on-windows`." + +#: ../Doc/using/windows.rst:1112 +msgid "" +"`Python + Windows + distutils + SWIG + gcc MinGW `_" +msgstr "" +"`Python + Windows + distutils + SWIG + gcc MinGW `_" + +#: ../Doc/using/windows.rst:1110 +msgid "" +"or \"Creating Python extensions in C/C++ with SWIG and compiling them with " +"MinGW gcc under Windows\" or \"Installing Python extension with distutils " +"and without Microsoft Visual C++\" by Sébastien Sauvage, 2003" +msgstr "" +"ou \"*Creating Python extensions in C/C++ with SWIG and compiling them with " +"MinGW gcc under Windows*\" ou \"*Installing Python extension with distutils " +"and without Microsoft Visual C++*\" par Sébastien Sauvage, 2003" + +#: ../Doc/using/windows.rst:1114 +msgid "`MingW -- Python extensions `_" +msgstr "`MingW -- Python extensions `_" + +#: ../Doc/using/windows.rst:1118 +msgid "Other Platforms" +msgstr "Autres plateformes" + +#: ../Doc/using/windows.rst:1120 +msgid "" +"With ongoing development of Python, some platforms that used to be supported " +"earlier are no longer supported (due to the lack of users or developers). " +"Check :pep:`11` for details on all unsupported platforms." +msgstr "" +"Avec le développement continu de Python, certaines plateformes qui étaient " +"auparavant prises en charge ne sont plus prises en charge (en raison du " +"manque d'utilisateurs ou de développeurs). Voir :pep:`11` pour plus de " +"détails sur toutes les plateformes non prises en charge." + +#: ../Doc/using/windows.rst:1124 +msgid "`Windows CE `_ is still supported." +msgstr "" +"`Windows CE `_ est toujours pris en charge." + +#: ../Doc/using/windows.rst:1125 +msgid "" +"The `Cygwin `_ installer offers to install the Python " +"interpreter as well (cf. `Cygwin package source `_, `Maintainer " +"releases `_)" +msgstr "" +"L’installateur `Cygwin `_ offre d’installer " +"l’interpréteur Python (cf. `Cygwin package source `_, `Maintainer " +"releases `_)" + +#: ../Doc/using/windows.rst:1131 +msgid "" +"See `Python for Windows `_ for " +"detailed information about platforms with pre-compiled installers." +msgstr "" +"Voir `Python pour Windows `_ pour " +"des instructions détaillées sur les plateformes avec installateurs pré-" +"compilés." + +#~ msgid "by Trent Apted et al, 2007" +#~ msgstr "par Trent Apted et al, 2007" + +#~ msgid "Installing Python" +#~ msgstr "Installer Python" + +#~ msgid "Supported Versions" +#~ msgstr "Versions supportées" + +#~ msgid "Other resources" +#~ msgstr "Autres ressources" + +#~ msgid "" +#~ "\"Help for Windows Programmers\" by Mark Hammond and Andy Robinson, " +#~ "O'Reilly Media, 2000, ISBN 1-56592-621-8" +#~ msgstr "" +#~ "\"Help for Windows Programmers\" de Mark Hammond et Andy Robinson, " +#~ "O'Reilly Media, 2000, ISBN 1-56592-621-8" + +#~ msgid "by Amanda Birmingham, 2004" +#~ msgstr "par Amanda Birmingham, 2004" + +#, fuzzy +#~ msgid "Installing on Windows" +#~ msgstr "Installer Python" + +#, fuzzy +#~ msgid "WinPython" +#~ msgstr "Installer Python" + +#, fuzzy +#~ msgid "MingW -- Python extensions" +#~ msgstr "Utiliser Python sur Windows" + +#, fuzzy +#~ msgid "A Python for Windows Tutorial" +#~ msgstr "Utiliser Python sur Windows" diff --git a/whatsnew/2.0.po b/whatsnew/2.0.po new file mode 100644 index 000000000..5aaf5fcfc --- /dev/null +++ b/whatsnew/2.0.po @@ -0,0 +1,1760 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2018-07-31 23:43+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.4\n" + +#: ../Doc/whatsnew/2.0.rst:3 +msgid "What's New in Python 2.0" +msgstr "Nouveautés de Python 2.0" + +#: ../Doc/whatsnew/2.0.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/whatsnew/2.0.rst:5 +msgid "A.M. Kuchling and Moshe Zadka" +msgstr "A.M. Kuchling et Moshe Zadka" + +#: ../Doc/whatsnew/2.0.rst:13 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/whatsnew/2.0.rst:15 +msgid "" +"A new release of Python, version 2.0, was released on October 16, 2000. This " +"article covers the exciting new features in 2.0, highlights some other " +"useful changes, and points out a few incompatible changes that may require " +"rewriting code." +msgstr "" +"Une nouvelle version de Python, la version 2.0, est sortie le 16 octobre " +"2000. Cet article traite des nouvelles fonctionnalités intéressantes de " +"cette version, met en évidence d'autres changements utiles, et souligne " +"quelques incompatibilités qui peuvent nécessiter la réécriture du code." + +#: ../Doc/whatsnew/2.0.rst:20 +msgid "" +"Python's development never completely stops between releases, and a steady " +"flow of bug fixes and improvements are always being submitted. A host of " +"minor fixes, a few optimizations, additional docstrings, and better error " +"messages went into 2.0; to list them all would be impossible, but they're " +"certainly significant. Consult the publicly-available CVS logs if you want " +"to see the full list. This progress is due to the five developers working " +"for PythonLabs are now getting paid to spend their days fixing bugs, and " +"also due to the improved communication resulting from moving to SourceForge." +msgstr "" +"Le développement de Python n'a jamais complètement été arrêté entre chaque " +"versions, et un flux constant de corrections de bogues et d'améliorations " +"ont toujours été soumis. Une foule de corrections mineures, quelques " +"optimisations, des *docstrings* supplémentaires, et de meilleurs messages " +"d'erreur sont apparus avec l'arrivée de la version 2.0; tous les énumérer " +"serait impossible, mais ils sont certainement significatif. Consultez les " +"journaux CVS publics disponibles pour obtenir la liste complète. Ce progrès " +"est dû aux cinq développeurs travaillant pour PythonLabs qui sont désormais " +"payés pour passer leurs journées à corriger les bugs, mais aussi en raison " +"de l'amélioration de la communication résultant du passage à SourceForge." + +#: ../Doc/whatsnew/2.0.rst:33 +msgid "What About Python 1.6?" +msgstr "À propos de Python 1.6" + +#: ../Doc/whatsnew/2.0.rst:35 +msgid "" +"Python 1.6 can be thought of as the Contractual Obligations Python release. " +"After the core development team left CNRI in May 2000, CNRI requested that a " +"1.6 release be created, containing all the work on Python that had been " +"performed at CNRI. Python 1.6 therefore represents the state of the CVS " +"tree as of May 2000, with the most significant new feature being Unicode " +"support. Development continued after May, of course, so the 1.6 tree " +"received a few fixes to ensure that it's forward-compatible with Python " +"2.0. 1.6 is therefore part of Python's evolution, and not a side branch." +msgstr "" +"Python 1.6 peut être vu comme la version des obligations contractuelles. " +"Après que l’équipe de développement eût quitté le CNRI en mai 2000, celui-ci " +"a demandé la création d’une version 1.6, contenant tout le travail sur " +"Python réalisé au CNRI. Python 1.6 représente de ce fait l’état de l’arbre " +"*CVS* tel qu’il était en mai 2000, la nouvelle fonctionnalité la plus " +"remarquable étant le support d’Unicode. Le développement a continué après " +"mai bien sûr, donc la branche 1.6 a reçu quelques corrections pour être sûr " +"qu’elle soit compatible avec Python 2.0. La version 1.6 fait donc partie de " +"l’évolution de Python, ce n’est pas une branche séparée." + +#: ../Doc/whatsnew/2.0.rst:44 +msgid "" +"So, should you take much interest in Python 1.6? Probably not. The " +"1.6final and 2.0beta1 releases were made on the same day (September 5, " +"2000), the plan being to finalize Python 2.0 within a month or so. If you " +"have applications to maintain, there seems little point in breaking things " +"by moving to 1.6, fixing them, and then having another round of breakage " +"within a month by moving to 2.0; you're better off just going straight to " +"2.0. Most of the really interesting features described in this document are " +"only in 2.0, because a lot of work was done between May and September." +msgstr "" +"Alors, devriez-vous vous intéresser à Python 1.6 ? Probablement pas. Les " +"versions *1.6final* et *2.0beta1* sont sorties le même jour (5 septembre " +"2000), le plan étant de finaliser Python 2.0 environ un mois plus tard. Si " +"vous avez des applications à maintenir, il n’y a pas vraiment d’intérêt à " +"casser des choses en migrant sur la version 1.6, les réparer, puis avoir de " +"nouveau des choses cassées à peine un mois plus tard en passant à la 2.0; il " +"vaut mieux partir directement de la 2.0. La plupart des fonctionnalités " +"vraiment intéressantes décrites dans ce document sont seulement dans la 2.0, " +"parce que beaucoup de travail a été réalisé entre mai et septembre." + +#: ../Doc/whatsnew/2.0.rst:57 +msgid "New Development Process" +msgstr "Nouveau processus de développement" + +#: ../Doc/whatsnew/2.0.rst:59 +msgid "" +"The most important change in Python 2.0 may not be to the code at all, but " +"to how Python is developed: in May 2000 the Python developers began using " +"the tools made available by SourceForge for storing source code, tracking " +"bug reports, and managing the queue of patch submissions. To report bugs or " +"submit patches for Python 2.0, use the bug tracking and patch manager tools " +"available from Python's project page, located at https://sourceforge.net/" +"projects/python/." +msgstr "" +"Le changement le plus important dans Python 2.0 ne concerne peut-être pas le " +"code, mais le développement de Python : en mai 2000, les développeurs Python " +"ont commencé à utiliser les outils mis à disposition par SourceForge pour " +"stocker le code source, suivre les rapports de bogues et gérer la file " +"d’attente des soumissions de correctifs. Pour signaler des bogues ou " +"soumettre des correctifs pour Python 2.0, utilisez les outils de suivi des " +"bogues et de gestion des correctifs disponibles sur la page du projet " +"Python, à l’adresse https://sourceforge.net/projects/python/." + +#: ../Doc/whatsnew/2.0.rst:66 +msgid "" +"The most important of the services now hosted at SourceForge is the Python " +"CVS tree, the version-controlled repository containing the source code for " +"Python. Previously, there were roughly 7 or so people who had write access " +"to the CVS tree, and all patches had to be inspected and checked in by one " +"of the people on this short list. Obviously, this wasn't very scalable. By " +"moving the CVS tree to SourceForge, it became possible to grant write access " +"to more people; as of September 2000 there were 27 people able to check in " +"changes, a fourfold increase. This makes possible large-scale changes that " +"wouldn't be attempted if they'd have to be filtered through the small group " +"of core developers. For example, one day Peter Schneider-Kamp took it into " +"his head to drop K&R C compatibility and convert the C source for Python to " +"ANSI C. After getting approval on the python-dev mailing list, he launched " +"into a flurry of checkins that lasted about a week, other developers joined " +"in to help, and the job was done. If there were only 5 people with write " +"access, probably that task would have been viewed as \"nice, but not worth " +"the time and effort needed\" and it would never have gotten done." +msgstr "" +"Le plus important des services maintenant hébergé chez SourceForge est " +"l’arborescence CVS Python, le référentiel sous contrôle de version contenant " +"le code source de Python. Auparavant, environ 7 personnes avaient un accès " +"en écriture à l’arborescence CVS et tous les correctifs devaient être " +"inspectés et archivés par l’une des personnes figurant sur cette liste " +"restreinte. Évidemment, ce n’était pas très évolutif. En déplaçant " +"l’arborescence CVS vers SourceForge, il est devenu possible d’accorder un " +"accès en écriture à davantage de personnes ; en septembre 2000, 27 personnes " +"pouvaient enregistrer les modifications, soit quatre fois plus. Cela rend " +"possible des modifications à grande échelle qui ne seraient pas tentées si " +"elles devaient être filtrées par le petit groupe de développeurs principaux. " +"Par exemple, un jour, Peter Schneider-Kamp a eu l’idée de supprimer la " +"compatibilité K&R C et de convertir le code source C de Python en ANSI C. " +"Après avoir obtenu l’approbation de la liste de diffusion *python-dev*, il " +"s’est lancé dans une série d’archives qui ont duré environ une semaine, " +"d’autres développeurs l'ont rejoint et le travail a été fait. S’il n’y avait " +"eut que 5 personnes ayant un accès en écriture, cette tâche aurait " +"probablement été considérée comme « agréable, mais ne valant pas le temps ni " +"les efforts nécessaires » et cela ne se serait jamais fait." + +#: ../Doc/whatsnew/2.0.rst:83 +msgid "" +"The shift to using SourceForge's services has resulted in a remarkable " +"increase in the speed of development. Patches now get submitted, commented " +"on, revised by people other than the original submitter, and bounced back " +"and forth between people until the patch is deemed worth checking in. Bugs " +"are tracked in one central location and can be assigned to a specific person " +"for fixing, and we can count the number of open bugs to measure progress. " +"This didn't come without a cost: developers now have more e-mail to deal " +"with, more mailing lists to follow, and special tools had to be written for " +"the new environment. For example, SourceForge sends default patch and bug " +"notification e-mail messages that are completely unhelpful, so Ka-Ping Yee " +"wrote an HTML screen-scraper that sends more useful messages." +msgstr "" +"Le passage à l’utilisation des services de SourceForge a entraîné une " +"augmentation remarquable du rythme de développement. Les correctifs sont " +"maintenant soumis, commentés, révisés par des personnes autres que l’auteur " +"d’origine et échangés entre les personnes jusqu’à ce que le correctif soit " +"jugé utile. Les bogues sont suivis dans un emplacement central et peuvent " +"être attribués à une personne spécifique pour être corrigés. , et nous " +"pouvons compter le nombre de bogues ouverts pour mesurer les progrès. Cela " +"n’a pas coûté cher: les développeurs ont désormais plus de courrier " +"électronique à traiter, davantage de listes de diffusion à suivre et des " +"outils spéciaux ont dû être créés pour le nouvel environnement. Par exemple, " +"SourceForge envoie des messages électroniques de correctif et de " +"notification de bogues par défaut qui ne sont d’aucune utilité, Ka-Ping Yee " +"a donc créé un *scraper* HTML qui envoie des messages plus utiles." + +#: ../Doc/whatsnew/2.0.rst:95 +msgid "" +"The ease of adding code caused a few initial growing pains, such as code was " +"checked in before it was ready or without getting clear agreement from the " +"developer group. The approval process that has emerged is somewhat similar " +"to that used by the Apache group. Developers can vote +1, +0, -0, or -1 on a " +"patch; +1 and -1 denote acceptance or rejection, while +0 and -0 mean the " +"developer is mostly indifferent to the change, though with a slight positive " +"or negative slant. The most significant change from the Apache model is " +"that the voting is essentially advisory, letting Guido van Rossum, who has " +"Benevolent Dictator For Life status, know what the general opinion is. He " +"can still ignore the result of a vote, and approve or reject a change even " +"if the community disagrees with him." +msgstr "" +"La facilité d’ajout de code a provoqué quelques problèmes de croissance " +"initiaux, tels que le code a été archivé avant qu’il ne soit prêt ou sans " +"l’accord clair du groupe de développeurs. Le processus d’approbation qui a " +"émergé est quelque peu similaire à celui utilisé par le groupe Apache. Les " +"développeurs peuvent voter *+1*, *+0*, *-0* ou *-1* sur un patch; *+1* et " +"*-1* indiquent une acceptation ou un rejet, tandis que *+0* et *-0* " +"signifient que le développeur est généralement indifférent au changement, " +"bien qu’il présente une légère inclinaison positive ou négative. Le " +"changement le plus important par rapport au modèle Apache est que le vote " +"est essentiellement consultatif, permettant à Guido van Rossum, détenteur du " +"statut de « dictateur bienveillant à vie », de connaître l’opinion générale. " +"Il peut toujours ignorer le résultat d’un vote et approuver ou rejeter un " +"changement même si la communauté n’est pas d’accord avec lui." + +#: ../Doc/whatsnew/2.0.rst:106 +msgid "" +"Producing an actual patch is the last step in adding a new feature, and is " +"usually easy compared to the earlier task of coming up with a good design. " +"Discussions of new features can often explode into lengthy mailing list " +"threads, making the discussion hard to follow, and no one can read every " +"posting to python-dev. Therefore, a relatively formal process has been set " +"up to write Python Enhancement Proposals (PEPs), modelled on the Internet " +"RFC process. PEPs are draft documents that describe a proposed new feature, " +"and are continually revised until the community reaches a consensus, either " +"accepting or rejecting the proposal. Quoting from the introduction to PEP " +"1, \"PEP Purpose and Guidelines\":" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:120 +msgid "" +"PEP stands for Python Enhancement Proposal. A PEP is a design document " +"providing information to the Python community, or describing a new feature " +"for Python. The PEP should provide a concise technical specification of the " +"feature and a rationale for the feature." +msgstr "" +"PEP signifie *Python Enhancement Proposition*. Une PEP est un document de " +"conception fournissant des informations à la communauté Python ou décrivant " +"une nouvelle fonctionnalité de Python. La PEP devrait fournir une " +"spécification technique concise de la fonctionnalité et une justification de " +"celle-ci." + +#: ../Doc/whatsnew/2.0.rst:125 +msgid "" +"We intend PEPs to be the primary mechanisms for proposing new features, for " +"collecting community input on an issue, and for documenting the design " +"decisions that have gone into Python. The PEP author is responsible for " +"building consensus within the community and documenting dissenting opinions." +msgstr "" +"Nous souhaitons que les PEP soient les principaux mécanismes permettant de " +"proposer de nouvelles fonctionnalités, de recueillir les commentaires de la " +"communauté sur un problème et de documenter les décisions de conception " +"prises dans Python. L’auteur du PPE est chargé de créer un consensus au sein " +"de la communauté et de documenter les opinions divergentes." + +#: ../Doc/whatsnew/2.0.rst:130 +msgid "" +"Read the rest of PEP 1 for the details of the PEP editorial process, style, " +"and format. PEPs are kept in the Python CVS tree on SourceForge, though " +"they're not part of the Python 2.0 distribution, and are also available in " +"HTML form from https://www.python.org/dev/peps/. As of September 2000, " +"there are 25 PEPS, ranging from PEP 201, \"Lockstep Iteration\", to PEP 225, " +"\"Elementwise/Objectwise Operators\"." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:141 +msgid "Unicode" +msgstr "Unicode" + +#: ../Doc/whatsnew/2.0.rst:143 +msgid "" +"The largest new feature in Python 2.0 is a new fundamental data type: " +"Unicode strings. Unicode uses 16-bit numbers to represent characters " +"instead of the 8-bit number used by ASCII, meaning that 65,536 distinct " +"characters can be supported." +msgstr "" +"La plus grande nouveauté de Python 2.0 est un nouveau type de données " +"fondamental: les chaînes Unicode. Unicode utilise des nombres à 16 bits pour " +"représenter des caractères au lieu du nombre à 8 bits utilisé par ASCII, ce " +"qui signifie que 65 536 caractères distincts peuvent être pris en charge." + +#: ../Doc/whatsnew/2.0.rst:148 +msgid "" +"The final interface for Unicode support was arrived at through countless " +"often-stormy discussions on the python-dev mailing list, and mostly " +"implemented by Marc-André Lemburg, based on a Unicode string type " +"implementation by Fredrik Lundh. A detailed explanation of the interface " +"was written up as :pep:`100`, \"Python Unicode Integration\". This article " +"will simply cover the most significant points about the Unicode interfaces." +msgstr "" +"La dernière interface de prise en charge Unicode a été mise au point après " +"de nombreuses discussions souvent houleuses sur la liste de diffusion " +"*python-dev*, et principalement implémentée par Marc-André Lemburg, basée " +"sur une implémentation de type chaîne Unicode de Fredrik Lundh. Une " +"explication détaillée de l’interface a été écrite ainsi :pep:" +"`100`, \"Intégration Python Unicode\". Cet article couvrira simplement les " +"points les plus significatifs sur les interfaces Unicode." + +#: ../Doc/whatsnew/2.0.rst:155 +msgid "" +"In Python source code, Unicode strings are written as ``u\"string\"``. " +"Arbitrary Unicode characters can be written using a new escape sequence, ``" +"\\uHHHH``, where *HHHH* is a 4-digit hexadecimal number from 0000 to FFFF. " +"The existing ``\\xHHHH`` escape sequence can also be used, and octal escapes " +"can be used for characters up to U+01FF, which is represented by ``\\777``." +msgstr "" +"Dans le code source Python, les chaînes Unicode sont écrites sous la forme " +"``u\"string\"``. Les caractères Unicode arbitraires peuvent être écrits en " +"utilisant une nouvelle séquence d'échappement, ``\\uHHHH``, où *HHHH* est un " +"nombre hexadécimal à 4 chiffres de 0000 à FFFF. La séquence d'échappement ``" +"\\xHHHH`` peut également être utilisée, et les échappements octaux peuvent " +"être utilisés pour les caractères allant jusqu'à U+01FF, représenté par ``" +"\\777``." + +#: ../Doc/whatsnew/2.0.rst:161 +msgid "" +"Unicode strings, just like regular strings, are an immutable sequence type. " +"They can be indexed and sliced, but not modified in place. Unicode strings " +"have an ``encode( [encoding] )`` method that returns an 8-bit string in the " +"desired encoding. Encodings are named by strings, such as ``'ascii'``, " +"``'utf-8'``, ``'iso-8859-1'``, or whatever. A codec API is defined for " +"implementing and registering new encodings that are then available " +"throughout a Python program. If an encoding isn't specified, the default " +"encoding is usually 7-bit ASCII, though it can be changed for your Python " +"installation by calling the ``sys.setdefaultencoding(encoding)`` function in " +"a customized version of :file:`site.py`." +msgstr "" +"Les chaînes Unicode, tout comme les chaînes ordinaires, sont un type de " +"séquence immuable. Ils peuvent être indexés et tranchés, mais pas modifiés " +"en place. Les chaînes Unicode ont une méthode ``encoder([encoding])`` qui " +"renvoie une chaîne de 8 bits dans l’encodage souhaité. Les codages sont " +"nommés par des chaînes, telles que ``’ascii’``, ``’utf-8’``, " +"``’iso-8859-1’``, ou autre chose. Une API de codec est définie pour " +"l’implémentation et l’enregistrement de nouveaux codages disponibles dans " +"tout un programme Python. Si aucun codage n’est spécifié, le codage par " +"défaut est généralement du code ASCII 7-bits, bien qu’il puisse être modifié " +"pour votre installation Python en appelant la fonction ``sys." +"setdefaultencoding (encoding)`` dans une version personnalisée de :file:" +"`site.py`." + +#: ../Doc/whatsnew/2.0.rst:172 +msgid "" +"Combining 8-bit and Unicode strings always coerces to Unicode, using the " +"default ASCII encoding; the result of ``'a' + u'bc'`` is ``u'abc'``." +msgstr "" +"La combinaison de chaînes 8 bits et Unicode est toujours forcée en Unicode, " +"à l’aide du codage ASCII par défaut; le résultat de ``’a’ + u’bc’`` est " +"``u’abc’``." + +#: ../Doc/whatsnew/2.0.rst:175 +msgid "" +"New built-in functions have been added, and existing built-ins modified to " +"support Unicode:" +msgstr "" +"De nouvelles fonctions primitives ont été ajoutées, et des fonctions " +"existantes ont été modifiées pour supporter Unicode :" + +#: ../Doc/whatsnew/2.0.rst:178 +msgid "" +"``unichr(ch)`` returns a Unicode string 1 character long, containing the " +"character *ch*." +msgstr "" +"``unichr(ch)`` renvoie une chaîne Unicode de longueur 1, contenant le " +"caractère *ch*." + +#: ../Doc/whatsnew/2.0.rst:181 +msgid "" +"``ord(u)``, where *u* is a 1-character regular or Unicode string, returns " +"the number of the character as an integer." +msgstr "" +"``ord(u)``, quand *u* est une chaîne normale ou Unicode de longueur 1, " +"renvoie un entier représentant le nombre de caractères." + +#: ../Doc/whatsnew/2.0.rst:184 +msgid "" +"``unicode(string [, encoding] [, errors] )`` creates a Unicode string from " +"an 8-bit string. ``encoding`` is a string naming the encoding to use. The " +"``errors`` parameter specifies the treatment of characters that are invalid " +"for the current encoding; passing ``'strict'`` as the value causes an " +"exception to be raised on any encoding error, while ``'ignore'`` causes " +"errors to be silently ignored and ``'replace'`` uses U+FFFD, the official " +"replacement character, in case of any problems." +msgstr "" +"``unicode(string [, encoding] [, errors] )`` crée une chaîne Unicode à " +"partir d’une chaîne de 8 bits. ``encoding`` est une chaîne nommant le codage " +"à utiliser. Le paramètre ``errors`` spécifie le traitement des caractères " +"non valides pour l’ encodage en cours; en passant ``’strict’`` comme valeur, " +"une exception est générée pour toute erreur de codage, alors que " +"``’ignore’`` fait en sorte que les erreurs soient ignorées en silence et que " +"``’replace’`` utilise U+FFFD, caractère de remplacement officiel, en cas de " +"problème." + +#: ../Doc/whatsnew/2.0.rst:192 +msgid "" +"The ``exec`` statement, and various built-ins such as ``eval()``, " +"``getattr()``, and ``setattr()`` will also accept Unicode strings as well as " +"regular strings. (It's possible that the process of fixing this missed some " +"built-ins; if you find a built-in function that accepts strings but doesn't " +"accept Unicode strings at all, please report it as a bug.)" +msgstr "" +"L’instruction ``exec`` et divers éléments intégrés tels que ``eval()``, " +"``getattr()`` et ``setattr()`` accepteront également les chaînes Unicode " +"ainsi que les chaînes ordinaires. (Il est possible que le processus de " +"résolution de ce problème ait échappé à certaines fonctions intégrées ; si " +"vous trouvez une fonction intégrée qui accepte les chaînes mais n’accepte " +"pas les chaînes Unicode, signalez-la comme un bogue.)" + +#: ../Doc/whatsnew/2.0.rst:198 +msgid "" +"A new module, :mod:`unicodedata`, provides an interface to Unicode character " +"properties. For example, ``unicodedata.category(u'A')`` returns the 2-" +"character string 'Lu', the 'L' denoting it's a letter, and 'u' meaning that " +"it's uppercase. ``unicodedata.bidirectional(u'\\u0660')`` returns 'AN', " +"meaning that U+0660 is an Arabic number." +msgstr "" +"Un nouveau module, :mod:`unicodedata`, fournit une interface aux propriétés " +"de caractère Unicode. Par exemple, ``unicodedata.category(u'A')`` renvoie la " +"chaîne de 2 caractères « Lu », le « L » désignant une lettre et « u » " +"signifiant qu’il s’agit d’une majuscule. ``unicodedata." +"bidirectional(u'\\u0660')`` renvoie « AN », ce qui signifie que U+0660 est " +"un nombre arabe." + +#: ../Doc/whatsnew/2.0.rst:204 +msgid "" +"The :mod:`codecs` module contains functions to look up existing encodings " +"and register new ones. Unless you want to implement a new encoding, you'll " +"most often use the ``codecs.lookup(encoding)`` function, which returns a 4-" +"element tuple: ``(encode_func, decode_func, stream_reader, stream_writer)``." +msgstr "" +"Le module :mod:`codecs` contient des fonctions pour rechercher les codages " +"existants et en enregistrer de nouveaux. À moins que vous ne souhaitiez " +"implémenter un nouvel encodage, vous utiliserez le plus souvent la fonction " +"``codecs.lookup(encoding)``, qui renvoie un n-uplet à 4 éléments : " +"``(encode_func, decode_func, stream_reader, stream_writer)``." + +#: ../Doc/whatsnew/2.0.rst:209 +msgid "" +"*encode_func* is a function that takes a Unicode string, and returns a 2-" +"tuple ``(string, length)``. *string* is an 8-bit string containing a " +"portion (perhaps all) of the Unicode string converted into the given " +"encoding, and *length* tells you how much of the Unicode string was " +"converted." +msgstr "" +"*encode_func* est une fonction qui prend une chaîne Unicode, et renvoie un n-" +"uplet de longueur 2 ``(string, length)``. *string* est une chaîne de " +"caractères à 8 bits contenant une partie (ou la totalité) de la chaîne " +"Unicode convertie en codage donné, et *length* vous indique le nombre de " +"caractères de la chaîne qui ont été convertis." + +#: ../Doc/whatsnew/2.0.rst:214 +msgid "" +"*decode_func* is the opposite of *encode_func*, taking an 8-bit string and " +"returning a 2-tuple ``(ustring, length)``, consisting of the resulting " +"Unicode string *ustring* and the integer *length* telling how much of the 8-" +"bit string was consumed." +msgstr "" +"*decode_func* est l’opposé de *encode_func*, en prenant une chaîne de " +"caractères à 8 bits et le retour d’un n-uplet de longueur 2 ``(ustring, " +"longueur)``, composé de la chaîne Unicode résultante *ustring* et l’entier " +"*length* indiquant combien de caractères de la chaîne de caractères à 8 bits " +"ont été consommés." + +#: ../Doc/whatsnew/2.0.rst:219 +msgid "" +"*stream_reader* is a class that supports decoding input from a stream. " +"*stream_reader(file_obj)* returns an object that supports the :meth:`read`, :" +"meth:`readline`, and :meth:`readlines` methods. These methods will all " +"translate from the given encoding and return Unicode strings." +msgstr "" +"*stream_reader* est une classe qui prend en charge le décodage de l’entrée " +"d’un flux. *stream_reader(file_obj)* renvoie un objet qui prend en charge " +"les méthodes :meth:`read`, :meth:`readline` et :meth:`readlines`. Ces " +"méthodes se traduisent toutes à partir de l’encodage donné et retourneront " +"une chaînes de caractère Unicode." + +#: ../Doc/whatsnew/2.0.rst:224 +msgid "" +"*stream_writer*, similarly, is a class that supports encoding output to a " +"stream. *stream_writer(file_obj)* returns an object that supports the :meth:" +"`write` and :meth:`writelines` methods. These methods expect Unicode " +"strings, translating them to the given encoding on output." +msgstr "" +"De même, *stream_writer* est une classe qui prend en charge le codage de " +"sortie d’un flux. *stream_writer(file_obj)* renvoie un objet qui prend en " +"charge les méthodes :meth:`write` et :meth:`writelines`. Ces méthodes " +"prennent en entrée des chaînes Unicode, qu'elles renvoient, traduites à " +"l'encodage donné, sur la sortie." + +#: ../Doc/whatsnew/2.0.rst:229 +msgid "" +"For example, the following code writes a Unicode string into a file, " +"encoding it as UTF-8::" +msgstr "" +"Par exemple, le code suivant écrit une chaîne Unicode dans un fichier, en " +"l’encodant en UTF-8 ::" + +#: ../Doc/whatsnew/2.0.rst:243 +msgid "The following code would then read UTF-8 input from the file::" +msgstr "Le code suivant lirait ensuite le texte UTF-8 du fichier ::" + +#: ../Doc/whatsnew/2.0.rst:249 +msgid "" +"Unicode-aware regular expressions are available through the :mod:`re` " +"module, which has a new underlying implementation called SRE written by " +"Fredrik Lundh of Secret Labs AB." +msgstr "" +"Des expressions rationnelles supportant l’Unicode sont disponibles dans le " +"module :mod:`re`, qui a une implémentation sous-jacente appelée SRE écrite " +"par Fredrik Lundh de Secret Labs AB." + +#: ../Doc/whatsnew/2.0.rst:253 +msgid "" +"A ``-U`` command line option was added which causes the Python compiler to " +"interpret all string literals as Unicode string literals. This is intended " +"to be used in testing and future-proofing your Python code, since some " +"future version of Python may drop support for 8-bit strings and provide only " +"Unicode strings." +msgstr "" +"Une option de ligne de commande ``-U`` a été ajoutée, ce qui fait que le " +"compilateur Python interprète toutes les chaînes de caractères comme des " +"chaînes de caractères Unicode. Ceci est destiné à être utilisé dans les " +"tests et rendre votre code Python compatible avec les versions futures, car " +"une version future de Python peut abandonner la prise en charge des chaînes " +"de caractères 8-bits et fournir uniquement des chaînes de caractères Unicode." + +#: ../Doc/whatsnew/2.0.rst:262 +msgid "List Comprehensions" +msgstr "Compréhensions de listes" + +#: ../Doc/whatsnew/2.0.rst:264 +msgid "" +"Lists are a workhorse data type in Python, and many programs manipulate a " +"list at some point. Two common operations on lists are to loop over them, " +"and either pick out the elements that meet a certain criterion, or apply " +"some function to each element. For example, given a list of strings, you " +"might want to pull out all the strings containing a given substring, or " +"strip off trailing whitespace from each line." +msgstr "" +"Les listes sont un type de données crucial dans Python, et de nombreux " +"programmes manipulent une liste à un moment donné. Deux opérations communes " +"sur les listes sont de boucler sur elles, soit de choisir les éléments qui " +"répondent à un certain critère, ou d’appliquer une certaine fonction à " +"chaque élément. Par exemple, à partir d’une liste de chaînes de caractères, " +"vous pouvez retirer toutes les chaînes contenant une sous-chaîne donnée, ou " +"enlever les espaces de chaque ligne." + +#: ../Doc/whatsnew/2.0.rst:271 +msgid "" +"The existing :func:`map` and :func:`filter` functions can be used for this " +"purpose, but they require a function as one of their arguments. This is " +"fine if there's an existing built-in function that can be passed directly, " +"but if there isn't, you have to create a little function to do the required " +"work, and Python's scoping rules make the result ugly if the little function " +"needs additional information. Take the first example in the previous " +"paragraph, finding all the strings in the list containing a given " +"substring. You could write the following to do it::" +msgstr "" +"Les fonctions existantes :func:`map` et :func:`filter` peuvent être " +"utilisées à cette fin, mais elles nécessitent une fonction en leurs " +"arguments. C’est très bien s’il y a une fonction intégrée existante qui " +"peut être passé directement, mais s’il n’y a pas, vous devez créer une " +"petite fonction pour faire le travail requis, et les règles de portée de " +"Python rendent le résultat laid si la petite fonction a besoin " +"d’informations supplémentaires. Prenons le premier exemple du paragraphe " +"précédent, en trouvant toutes les chaînes de la liste contenant une sous-" +"chaîne donnée. Vous pouvez écrire ce qui suit pour le faire::" + +#: ../Doc/whatsnew/2.0.rst:286 +msgid "" +"Because of Python's scoping rules, a default argument is used so that the " +"anonymous function created by the :keyword:`lambda` expression knows what " +"substring is being searched for. List comprehensions make this cleaner::" +msgstr "" +"En raison des règles de portée de Python, un argument par défaut est utilisé " +"de sorte que la fonction anonyme créée par l’expression :keyword:`lambda` " +"sait quelle sous-chaîne est recherchée. Les listes en compréhension rendent " +"ceci plus propre :" + +#: ../Doc/whatsnew/2.0.rst:292 +msgid "List comprehensions have the form::" +msgstr "Les compréhensions de liste sont de la forme suivante ::" + +#: ../Doc/whatsnew/2.0.rst:299 +msgid "" +"The :keyword:`!for`...\\ :keyword:`!in` clauses contain the sequences to be " +"iterated over. The sequences do not have to be the same length, because " +"they are *not* iterated over in parallel, but from left to right; this is " +"explained more clearly in the following paragraphs. The elements of the " +"generated list will be the successive values of *expression*. The final :" +"keyword:`!if` clause is optional; if present, *expression* is only evaluated " +"and added to the result if *condition* is true." +msgstr "" +"Le :keyword:`!for`…\\ :keyword:`!in` clauses contiennent les séquences à " +"itérer. Les séquences n’ont pas à être de la même longueur, parce qu’elles " +"ne sont *pas* itérées en parallèle, mais de gauche à droite; cela est " +"expliqué plus clairement dans les paragraphes suivants. Les éléments de la " +"liste générée seront les valeurs successives de l’expression. La clause " +"finale :keyword:`!if` clause est facultative ; si présent, l’*expression* " +"n’est évaluée et ajoutée au résultat que si la *condition* est vraie." + +#: ../Doc/whatsnew/2.0.rst:307 +msgid "" +"To make the semantics very clear, a list comprehension is equivalent to the " +"following Python code::" +msgstr "" +"Pour que la sémantique soit très claire, une compréhension de liste est " +"équivalente au code Python suivant ::" + +#: ../Doc/whatsnew/2.0.rst:319 +msgid "" +"This means that when there are multiple :keyword:`!for`...\\ :keyword:`!in` " +"clauses, the resulting list will be equal to the product of the lengths of " +"all the sequences. If you have two lists of length 3, the output list is 9 " +"elements long::" +msgstr "" +"Cela signifie que lorsqu’il y a plusieurs :keyword:`!for`…\\ :keyword:`!in` " +"clauses, la liste résultante sera égale au produit des longueurs de toutes " +"les séquences. Si vous avez deux listes de longueur 3, la liste de sortie " +"est de longueur 9::" + +#: ../Doc/whatsnew/2.0.rst:330 +msgid "" +"To avoid introducing an ambiguity into Python's grammar, if *expression* is " +"creating a tuple, it must be surrounded with parentheses. The first list " +"comprehension below is a syntax error, while the second one is correct::" +msgstr "" +"Afin de ne pas introduire une ambiguïté dans la grammaire de Python, " +"*expression* doit être encadrée par des parenthèses si elle produit un n-" +"uplet. La première compréhension de liste ci-dessous n'est pas valide " +"syntaxiquement, tandis que la seconde l'est ::" + +#: ../Doc/whatsnew/2.0.rst:339 +msgid "" +"The idea of list comprehensions originally comes from the functional " +"programming language Haskell (https://www.haskell.org). Greg Ewing argued " +"most effectively for adding them to Python and wrote the initial list " +"comprehension patch, which was then discussed for a seemingly endless time " +"on the python-dev mailing list and kept up-to-date by Skip Montanaro." +msgstr "" +"Le concept des liste en compréhension provient à l’origine du langage de " +"programmation fonctionnelle Haskell (https://www.haskell.org). Greg Ewing a " +"plaidé le plus efficacement pour les ajouter à Python et a écrit le patch de " +"compréhension de liste initiale, qui a ensuite été discuté pendant un temps " +"apparemment sans fin sur la liste de diffusion *python-dev* et maintenu à " +"jour par Skip Montanaro." + +#: ../Doc/whatsnew/2.0.rst:349 +msgid "Augmented Assignment" +msgstr "Opérateurs d’affectation augmentées" + +#: ../Doc/whatsnew/2.0.rst:351 +msgid "" +"Augmented assignment operators, another long-requested feature, have been " +"added to Python 2.0. Augmented assignment operators include ``+=``, ``-=``, " +"``*=``, and so forth. For example, the statement ``a += 2`` increments the " +"value of the variable ``a`` by 2, equivalent to the slightly lengthier ``a " +"= a + 2``." +msgstr "" +"Les opérateurs d’affectation soudées, une autre fonctionnalité demandée " +"depuis longtemps, ont été ajoutés à Python 2.0. Les opérateurs " +"d’affectations augmentées comprennent ``+=``, ``-=``, ``*=`` et ainsi de " +"suite. Par exemple, l’instruction ``a += 2`` incrémente la valeur de la " +"variable ``a`` par 2, équivalente à l’opération ``a = a + 2`` ." + +#: ../Doc/whatsnew/2.0.rst:356 +msgid "" +"The full list of supported assignment operators is ``+=``, ``-=``, ``*=``, " +"``/=``, ``%=``, ``**=``, ``&=``, ``|=``, ``^=``, ``>>=``, and ``<<=``. " +"Python classes can override the augmented assignment operators by defining " +"methods named :meth:`__iadd__`, :meth:`__isub__`, etc. For example, the " +"following :class:`Number` class stores a number and supports using += to " +"create a new instance with an incremented value." +msgstr "" +"La liste complète des opérateurs d’affectations pris en charge est ``+=``, " +"``-=``, ``*=``, ``/=``, ``%=``, ``**=``, ``&=``, ``|=``, ``^=``, ``>>=``, et " +"``<<=``. Les classes Python peuvent remplacer les opérateurs d’affectations " +"augmentées en définissant des méthodes nommées :meth:`__iadd__`, :meth:" +"`__isub__`, etc. Par exemple, la classe :class:`Number` stocke un nombre et " +"prend en charge l’utilisation de += en créant une nouvelle instance avec une " +"valeur incrémentée." + +#: ../Doc/whatsnew/2.0.rst:377 +msgid "" +"The :meth:`__iadd__` special method is called with the value of the " +"increment, and should return a new instance with an appropriately modified " +"value; this return value is bound as the new value of the variable on the " +"left-hand side." +msgstr "" +"La méthode spéciale :meth:`__iadd__` est appelée avec la valeur de " +"l’incrément, et doit renvoyer une nouvelle instance avec une valeur " +"correctement modifiée ; cette valeur de rendement est liée comme la nouvelle " +"valeur de la variable sur le côté gauche." + +#: ../Doc/whatsnew/2.0.rst:381 +msgid "" +"Augmented assignment operators were first introduced in the C programming " +"language, and most C-derived languages, such as :program:`awk`, C++, Java, " +"Perl, and PHP also support them. The augmented assignment patch was " +"implemented by Thomas Wouters." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:390 +msgid "String Methods" +msgstr "Méthodes de chaînes de caractères" + +#: ../Doc/whatsnew/2.0.rst:392 +msgid "" +"Until now string-manipulation functionality was in the :mod:`string` module, " +"which was usually a front-end for the :mod:`strop` module written in C. The " +"addition of Unicode posed a difficulty for the :mod:`strop` module, because " +"the functions would all need to be rewritten in order to accept either 8-bit " +"or Unicode strings. For functions such as :func:`string.replace`, which " +"takes 3 string arguments, that means eight possible permutations, and " +"correspondingly complicated code." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:400 +msgid "" +"Instead, Python 2.0 pushes the problem onto the string type, making string " +"manipulation functionality available through methods on both 8-bit strings " +"and Unicode strings. ::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:411 +msgid "" +"One thing that hasn't changed, a noteworthy April Fools' joke " +"notwithstanding, is that Python strings are immutable. Thus, the string " +"methods return new strings, and do not modify the string on which they " +"operate." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:415 +msgid "" +"The old :mod:`string` module is still around for backwards compatibility, " +"but it mostly acts as a front-end to the new string methods." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:418 +msgid "" +"Two methods which have no parallel in pre-2.0 versions, although they did " +"exist in JPython for quite some time, are :meth:`startswith` and :meth:" +"`endswith`. ``s.startswith(t)`` is equivalent to ``s[:len(t)] == t``, while " +"``s.endswith(t)`` is equivalent to ``s[-len(t):] == t``." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:423 +msgid "" +"One other method which deserves special mention is :meth:`join`. The :meth:" +"`join` method of a string receives one parameter, a sequence of strings, and " +"is equivalent to the :func:`string.join` function from the old :mod:`string` " +"module, with the arguments reversed. In other words, ``s.join(seq)`` is " +"equivalent to the old ``string.join(seq, s)``." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:433 +msgid "Garbage Collection of Cycles" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:435 +msgid "" +"The C implementation of Python uses reference counting to implement garbage " +"collection. Every Python object maintains a count of the number of " +"references pointing to itself, and adjusts the count as references are " +"created or destroyed. Once the reference count reaches zero, the object is " +"no longer accessible, since you need to have a reference to an object to " +"access it, and if the count is zero, no references exist any longer." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:442 +msgid "" +"Reference counting has some pleasant properties: it's easy to understand and " +"implement, and the resulting implementation is portable, fairly fast, and " +"reacts well with other libraries that implement their own memory handling " +"schemes. The major problem with reference counting is that it sometimes " +"doesn't realise that objects are no longer accessible, resulting in a memory " +"leak. This happens when there are cycles of references." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:449 +msgid "" +"Consider the simplest possible cycle, a class instance which has a " +"reference to itself::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:455 +msgid "" +"After the above two lines of code have been executed, the reference count of " +"``instance`` is 2; one reference is from the variable named ``'instance'``, " +"and the other is from the ``myself`` attribute of the instance." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:459 +msgid "" +"If the next line of code is ``del instance``, what happens? The reference " +"count of ``instance`` is decreased by 1, so it has a reference count of 1; " +"the reference in the ``myself`` attribute still exists. Yet the instance is " +"no longer accessible through Python code, and it could be deleted. Several " +"objects can participate in a cycle if they have references to each other, " +"causing all of the objects to be leaked." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:466 +msgid "" +"Python 2.0 fixes this problem by periodically executing a cycle detection " +"algorithm which looks for inaccessible cycles and deletes the objects " +"involved. A new :mod:`gc` module provides functions to perform a garbage " +"collection, obtain debugging statistics, and tuning the collector's " +"parameters." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:471 +msgid "" +"Running the cycle detection algorithm takes some time, and therefore will " +"result in some additional overhead. It is hoped that after we've gotten " +"experience with the cycle collection from using 2.0, Python 2.1 will be able " +"to minimize the overhead with careful tuning. It's not yet obvious how much " +"performance is lost, because benchmarking this is tricky and depends " +"crucially on how often the program creates and destroys objects. The " +"detection of cycles can be disabled when Python is compiled, if you can't " +"afford even a tiny speed penalty or suspect that the cycle collection is " +"buggy, by specifying the :option:`!--without-cycle-gc` switch when running " +"the :program:`configure` script." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:482 +msgid "" +"Several people tackled this problem and contributed to a solution. An early " +"implementation of the cycle detection approach was written by Toby Kelsey. " +"The current algorithm was suggested by Eric Tiedemann during a visit to " +"CNRI, and Guido van Rossum and Neil Schemenauer wrote two different " +"implementations, which were later integrated by Neil. Lots of other people " +"offered suggestions along the way; the March 2000 archives of the python-dev " +"mailing list contain most of the relevant discussion, especially in the " +"threads titled \"Reference cycle collection for Python\" and \"Finalization " +"again\"." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:495 +msgid "Other Core Changes" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:497 +msgid "" +"Various minor changes have been made to Python's syntax and built-in " +"functions. None of the changes are very far-reaching, but they're handy " +"conveniences." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:502 +msgid "Minor Language Changes" +msgstr "Changements mineurs du langage" + +#: ../Doc/whatsnew/2.0.rst:504 +msgid "" +"A new syntax makes it more convenient to call a given function with a tuple " +"of arguments and/or a dictionary of keyword arguments. In Python 1.5 and " +"earlier, you'd use the :func:`apply` built-in function: ``apply(f, args, " +"kw)`` calls the function :func:`f` with the argument tuple *args* and the " +"keyword arguments in the dictionary *kw*. :func:`apply` is the same in " +"2.0, but thanks to a patch from Greg Ewing, ``f(*args, **kw)`` is a shorter " +"and clearer way to achieve the same effect. This syntax is symmetrical with " +"the syntax for defining functions::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:518 +msgid "" +"The ``print`` statement can now have its output directed to a file-like " +"object by following the ``print`` with ``>> file``, similar to the " +"redirection operator in Unix shells. Previously you'd either have to use " +"the :meth:`write` method of the file-like object, which lacks the " +"convenience and simplicity of ``print``, or you could assign a new value to " +"``sys.stdout`` and then restore the old value. For sending output to " +"standard error, it's much easier to write this::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:528 +msgid "" +"Modules can now be renamed on importing them, using the syntax ``import " +"module as name`` or ``from module import name as othername``. The patch was " +"submitted by Thomas Wouters." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:532 +msgid "" +"A new format style is available when using the ``%`` operator; '%r' will " +"insert the :func:`repr` of its argument. This was also added from symmetry " +"considerations, this time for symmetry with the existing '%s' format style, " +"which inserts the :func:`str` of its argument. For example, ``'%r %s' % " +"('abc', 'abc')`` returns a string containing ``'abc' abc``." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:538 +msgid "" +"Previously there was no way to implement a class that overrode Python's " +"built-in :keyword:`in` operator and implemented a custom version. ``obj in " +"seq`` returns true if *obj* is present in the sequence *seq*; Python " +"computes this by simply trying every index of the sequence until either " +"*obj* is found or an :exc:`IndexError` is encountered. Moshe Zadka " +"contributed a patch which adds a :meth:`__contains__` magic method for " +"providing a custom implementation for :keyword:`!in`. Additionally, new " +"built-in objects written in C can define what :keyword:`!in` means for them " +"via a new slot in the sequence protocol." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:547 +msgid "" +"Earlier versions of Python used a recursive algorithm for deleting objects. " +"Deeply nested data structures could cause the interpreter to fill up the C " +"stack and crash; Christian Tismer rewrote the deletion logic to fix this " +"problem. On a related note, comparing recursive objects recursed infinitely " +"and crashed; Jeremy Hylton rewrote the code to no longer crash, producing a " +"useful result instead. For example, after this code::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:559 +msgid "" +"The comparison ``a==b`` returns true, because the two recursive data " +"structures are isomorphic. See the thread \"trashcan and PR#7\" in the April " +"2000 archives of the python-dev mailing list for the discussion leading up " +"to this implementation, and some useful relevant links. Note that " +"comparisons can now also raise exceptions. In earlier versions of Python, a " +"comparison operation such as ``cmp(a,b)`` would always produce an answer, " +"even if a user-defined :meth:`__cmp__` method encountered an error, since " +"the resulting exception would simply be silently swallowed." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:571 +msgid "" +"Work has been done on porting Python to 64-bit Windows on the Itanium " +"processor, mostly by Trent Mick of ActiveState. (Confusingly, ``sys." +"platform`` is still ``'win32'`` on Win64 because it seems that for ease of " +"porting, MS Visual C++ treats code as 32 bit on Itanium.) PythonWin also " +"supports Windows CE; see the Python CE page at http://pythonce.sourceforge." +"net/ for more information." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:577 +msgid "" +"Another new platform is Darwin/MacOS X; initial support for it is in Python " +"2.0. Dynamic loading works, if you specify \"configure --with-dyld --with-" +"suffix=.x\". Consult the README in the Python source distribution for more " +"instructions." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:581 +msgid "" +"An attempt has been made to alleviate one of Python's warts, the often-" +"confusing :exc:`NameError` exception when code refers to a local variable " +"before the variable has been assigned a value. For example, the following " +"code raises an exception on the ``print`` statement in both 1.5.2 and 2.0; " +"in 1.5.2 a :exc:`NameError` exception is raised, while 2.0 raises a new :exc:" +"`UnboundLocalError` exception. :exc:`UnboundLocalError` is a subclass of :" +"exc:`NameError`, so any existing code that expects :exc:`NameError` to be " +"raised should still work. ::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:595 +msgid "" +"Two new exceptions, :exc:`TabError` and :exc:`IndentationError`, have been " +"introduced. They're both subclasses of :exc:`SyntaxError`, and are raised " +"when Python code is found to be improperly indented." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:601 +msgid "Changes to Built-in Functions" +msgstr "Changements concernant les fonctions primitives" + +#: ../Doc/whatsnew/2.0.rst:603 +msgid "" +"A new built-in, ``zip(seq1, seq2, ...)``, has been added. :func:`zip` " +"returns a list of tuples where each tuple contains the i-th element from " +"each of the argument sequences. The difference between :func:`zip` and " +"``map(None, seq1, seq2)`` is that :func:`map` pads the sequences with " +"``None`` if the sequences aren't all of the same length, while :func:`zip` " +"truncates the returned list to the length of the shortest argument sequence." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:610 +msgid "" +"The :func:`int` and :func:`long` functions now accept an optional \"base\" " +"parameter when the first argument is a string. ``int('123', 10)`` returns " +"123, while ``int('123', 16)`` returns 291. ``int(123, 16)`` raises a :exc:" +"`TypeError` exception with the message \"can't convert non-string with " +"explicit base\"." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:616 +msgid "" +"A new variable holding more detailed version information has been added to " +"the :mod:`sys` module. ``sys.version_info`` is a tuple ``(major, minor, " +"micro, level, serial)`` For example, in a hypothetical 2.0.1beta1, ``sys." +"version_info`` would be ``(2, 0, 1, 'beta', 1)``. *level* is a string such " +"as ``\"alpha\"``, ``\"beta\"``, or ``\"final\"`` for a final release." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:622 +msgid "" +"Dictionaries have an odd new method, ``setdefault(key, default)``, which " +"behaves similarly to the existing :meth:`get` method. However, if the key " +"is missing, :meth:`setdefault` both returns the value of *default* as :meth:" +"`get` would do, and also inserts it into the dictionary as the value for " +"*key*. Thus, the following lines of code::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:633 +msgid "" +"can be reduced to a single ``return dict.setdefault(key, [])`` statement." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:635 +msgid "" +"The interpreter sets a maximum recursion depth in order to catch runaway " +"recursion before filling the C stack and causing a core dump or GPF.. " +"Previously this limit was fixed when you compiled Python, but in 2.0 the " +"maximum recursion depth can be read and modified using :func:`sys." +"getrecursionlimit` and :func:`sys.setrecursionlimit`. The default value is " +"1000, and a rough maximum value for a given platform can be found by running " +"a new script, :file:`Misc/find_recursionlimit.py`." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:647 +msgid "Porting to 2.0" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:649 +msgid "" +"New Python releases try hard to be compatible with previous releases, and " +"the record has been pretty good. However, some changes are considered " +"useful enough, usually because they fix initial design decisions that turned " +"out to be actively mistaken, that breaking backward compatibility can't " +"always be avoided. This section lists the changes in Python 2.0 that may " +"cause old Python code to break." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:656 +msgid "" +"The change which will probably break the most code is tightening up the " +"arguments accepted by some methods. Some methods would take multiple " +"arguments and treat them as a tuple, particularly various list methods such " +"as :meth:`append` and :meth:`insert`. In earlier versions of Python, if " +"``L`` is a list, ``L.append( 1,2 )`` appends the tuple ``(1,2)`` to the " +"list. In Python 2.0 this causes a :exc:`TypeError` exception to be raised, " +"with the message: 'append requires exactly 1 argument; 2 given'. The fix is " +"to simply add an extra set of parentheses to pass both values as a tuple: " +"``L.append( (1,2) )``." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:665 +msgid "" +"The earlier versions of these methods were more forgiving because they used " +"an old function in Python's C interface to parse their arguments; 2.0 " +"modernizes them to use :func:`PyArg_ParseTuple`, the current argument " +"parsing function, which provides more helpful error messages and treats " +"multi-argument calls as errors. If you absolutely must use 2.0 but can't " +"fix your code, you can edit :file:`Objects/listobject.c` and define the " +"preprocessor symbol ``NO_STRICT_LIST_APPEND`` to preserve the old behaviour; " +"this isn't recommended." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:673 +msgid "" +"Some of the functions in the :mod:`socket` module are still forgiving in " +"this way. For example, :func:`socket.connect( ('hostname', 25) )` is the " +"correct form, passing a tuple representing an IP address, but :func:`socket." +"connect( 'hostname', 25 )` also works. :func:`socket.connect_ex` and :func:" +"`socket.bind` are similarly easy-going. 2.0alpha1 tightened these functions " +"up, but because the documentation actually used the erroneous multiple " +"argument form, many people wrote code which would break with the stricter " +"checking. GvR backed out the changes in the face of public reaction, so for " +"the :mod:`socket` module, the documentation was fixed and the multiple " +"argument form is simply marked as deprecated; it *will* be tightened up " +"again in a future Python version." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:684 +msgid "" +"The ``\\x`` escape in string literals now takes exactly 2 hex digits. " +"Previously it would consume all the hex digits following the 'x' and take " +"the lowest 8 bits of the result, so ``\\x123456`` was equivalent to ``" +"\\x56``." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:688 +msgid "" +"The :exc:`AttributeError` and :exc:`NameError` exceptions have a more " +"friendly error message, whose text will be something like ``'Spam' instance " +"has no attribute 'eggs'`` or ``name 'eggs' is not defined``. Previously the " +"error message was just the missing attribute name ``eggs``, and code written " +"to take advantage of this fact will break in 2.0." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:694 +msgid "" +"Some work has been done to make integers and long integers a bit more " +"interchangeable. In 1.5.2, large-file support was added for Solaris, to " +"allow reading files larger than 2 GiB; this made the :meth:`tell` method of " +"file objects return a long integer instead of a regular integer. Some code " +"would subtract two file offsets and attempt to use the result to multiply a " +"sequence or slice a string, but this raised a :exc:`TypeError`. In 2.0, " +"long integers can be used to multiply or slice a sequence, and it'll behave " +"as you'd intuitively expect it to; ``3L * 'abc'`` produces 'abcabcabc', and " +"``(0,1,2,3)[2L:4L]`` produces (2,3). Long integers can also be used in " +"various contexts where previously only integers were accepted, such as in " +"the :meth:`seek` method of file objects, and in the formats supported by the " +"``%`` operator (``%d``, ``%i``, ``%x``, etc.). For example, ``\"%d\" % " +"2L**64`` will produce the string ``18446744073709551616``." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:708 +msgid "" +"The subtlest long integer change of all is that the :func:`str` of a long " +"integer no longer has a trailing 'L' character, though :func:`repr` still " +"includes it. The 'L' annoyed many people who wanted to print long integers " +"that looked just like regular integers, since they had to go out of their " +"way to chop off the character. This is no longer a problem in 2.0, but code " +"which does ``str(longval)[:-1]`` and assumes the 'L' is there, will now lose " +"the final digit." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:716 +msgid "" +"Taking the :func:`repr` of a float now uses a different formatting precision " +"than :func:`str`. :func:`repr` uses ``%.17g`` format string for C's :func:" +"`sprintf`, while :func:`str` uses ``%.12g`` as before. The effect is that :" +"func:`repr` may occasionally show more decimal places than :func:`str`, for " +"certain numbers. For example, the number 8.1 can't be represented exactly " +"in binary, so ``repr(8.1)`` is ``'8.0999999999999996'``, while str(8.1) is " +"``'8.1'``." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:724 +msgid "" +"The ``-X`` command-line option, which turned all standard exceptions into " +"strings instead of classes, has been removed; the standard exceptions will " +"now always be classes. The :mod:`exceptions` module containing the standard " +"exceptions was translated from Python to a built-in C module, written by " +"Barry Warsaw and Fredrik Lundh." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:740 +msgid "Extending/Embedding Changes" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:742 +msgid "" +"Some of the changes are under the covers, and will only be apparent to " +"people writing C extension modules or embedding a Python interpreter in a " +"larger application. If you aren't dealing with Python's C API, you can " +"safely skip this section." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:747 +msgid "" +"The version number of the Python C API was incremented, so C extensions " +"compiled for 1.5.2 must be recompiled in order to work with 2.0. On " +"Windows, it's not possible for Python 2.0 to import a third party extension " +"built for Python 1.5.x due to how Windows DLLs work, so Python will raise an " +"exception and the import will fail." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:753 +msgid "" +"Users of Jim Fulton's ExtensionClass module will be pleased to find out that " +"hooks have been added so that ExtensionClasses are now supported by :func:" +"`isinstance` and :func:`issubclass`. This means you no longer have to " +"remember to write code such as ``if type(obj) == myExtensionClass``, but can " +"use the more natural ``if isinstance(obj, myExtensionClass)``." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:759 +msgid "" +"The :file:`Python/importdl.c` file, which was a mass of #ifdefs to support " +"dynamic loading on many different platforms, was cleaned up and reorganised " +"by Greg Stein. :file:`importdl.c` is now quite small, and platform-specific " +"code has been moved into a bunch of :file:`Python/dynload_\\*.c` files. " +"Another cleanup: there were also a number of :file:`my\\*.h` files in the " +"Include/ directory that held various portability hacks; they've been merged " +"into a single file, :file:`Include/pyport.h`." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:767 +msgid "" +"Vladimir Marangozov's long-awaited malloc restructuring was completed, to " +"make it easy to have the Python interpreter use a custom allocator instead " +"of C's standard :func:`malloc`. For documentation, read the comments in :" +"file:`Include/pymem.h` and :file:`Include/objimpl.h`. For the lengthy " +"discussions during which the interface was hammered out, see the Web " +"archives of the 'patches' and 'python-dev' lists at python.org." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:774 +msgid "" +"Recent versions of the GUSI development environment for MacOS support POSIX " +"threads. Therefore, Python's POSIX threading support now works on the " +"Macintosh. Threading support using the user-space GNU ``pth`` library was " +"also contributed." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:779 +msgid "" +"Threading support on Windows was enhanced, too. Windows supports thread " +"locks that use kernel objects only in case of contention; in the common case " +"when there's no contention, they use simpler functions which are an order of " +"magnitude faster. A threaded version of Python 1.5.2 on NT is twice as slow " +"as an unthreaded version; with the 2.0 changes, the difference is only 10%. " +"These improvements were contributed by Yakov Markovitch." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:786 +msgid "" +"Python 2.0's source now uses only ANSI C prototypes, so compiling Python now " +"requires an ANSI C compiler, and can no longer be done using a compiler that " +"only supports K&R C." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:790 +msgid "" +"Previously the Python virtual machine used 16-bit numbers in its bytecode, " +"limiting the size of source files. In particular, this affected the maximum " +"size of literal lists and dictionaries in Python source; occasionally people " +"who are generating Python code would run into this limit. A patch by " +"Charles G. Waldman raises the limit from ``2^16`` to ``2^{32}``." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:796 +msgid "" +"Three new convenience functions intended for adding constants to a module's " +"dictionary at module initialization time were added: :func:" +"`PyModule_AddObject`, :func:`PyModule_AddIntConstant`, and :func:" +"`PyModule_AddStringConstant`. Each of these functions takes a module " +"object, a null-terminated C string containing the name to be added, and a " +"third argument for the value to be assigned to the name. This third " +"argument is, respectively, a Python object, a C long, or a C string." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:804 +msgid "" +"A wrapper API was added for Unix-style signal handlers. :func:`PyOS_getsig` " +"gets a signal handler and :func:`PyOS_setsig` will set a new handler." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:811 +msgid "Distutils: Making Modules Easy to Install" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:813 +msgid "" +"Before Python 2.0, installing modules was a tedious affair -- there was no " +"way to figure out automatically where Python is installed, or what compiler " +"options to use for extension modules. Software authors had to go through an " +"arduous ritual of editing Makefiles and configuration files, which only " +"really work on Unix and leave Windows and MacOS unsupported. Python users " +"faced wildly differing installation instructions which varied between " +"different extension packages, which made administering a Python installation " +"something of a chore." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:821 +msgid "" +"The SIG for distribution utilities, shepherded by Greg Ward, has created the " +"Distutils, a system to make package installation much easier. They form " +"the :mod:`distutils` package, a new part of Python's standard library. In " +"the best case, installing a Python module from source will require the same " +"steps: first you simply mean unpack the tarball or zip archive, and the run " +"\"``python setup.py install``\". The platform will be automatically " +"detected, the compiler will be recognized, C extension modules will be " +"compiled, and the distribution installed into the proper directory. " +"Optional command-line arguments provide more control over the installation " +"process, the distutils package offers many places to override defaults -- " +"separating the build from the install, building or installing in non-default " +"directories, and more." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:833 +msgid "" +"In order to use the Distutils, you need to write a :file:`setup.py` script. " +"For the simple case, when the software contains only .py files, a minimal :" +"file:`setup.py` can be just a few lines long::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:841 +msgid "" +"The :file:`setup.py` file isn't much more complicated if the software " +"consists of a few packages::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:848 +msgid "" +"A C extension can be the most complicated case; here's an example taken from " +"the PyXML package::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:864 +msgid "" +"The Distutils can also take care of creating source and binary " +"distributions. The \"sdist\" command, run by \"``python setup.py sdist``', " +"builds a source distribution such as :file:`foo-1.0.tar.gz`. Adding new " +"commands isn't difficult, \"bdist_rpm\" and \"bdist_wininst\" commands have " +"already been contributed to create an RPM distribution and a Windows " +"installer for the software, respectively. Commands to create other " +"distribution formats such as Debian packages and Solaris :file:`.pkg` files " +"are in various stages of development." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:873 +msgid "" +"All this is documented in a new manual, *Distributing Python Modules*, that " +"joins the basic set of Python documentation." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:880 +msgid "XML Modules" +msgstr "Modules XML" + +#: ../Doc/whatsnew/2.0.rst:882 +msgid "" +"Python 1.5.2 included a simple XML parser in the form of the :mod:`xmllib` " +"module, contributed by Sjoerd Mullender. Since 1.5.2's release, two " +"different interfaces for processing XML have become common: SAX2 (version 2 " +"of the Simple API for XML) provides an event-driven interface with some " +"similarities to :mod:`xmllib`, and the DOM (Document Object Model) provides " +"a tree-based interface, transforming an XML document into a tree of nodes " +"that can be traversed and modified. Python 2.0 includes a SAX2 interface " +"and a stripped-down DOM interface as part of the :mod:`xml` package. Here we " +"will give a brief overview of these new interfaces; consult the Python " +"documentation or the source code for complete details. The Python XML SIG is " +"also working on improved documentation." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:896 +msgid "SAX2 Support" +msgstr "Support de SAX2" + +#: ../Doc/whatsnew/2.0.rst:898 +msgid "" +"SAX defines an event-driven interface for parsing XML. To use SAX, you must " +"write a SAX handler class. Handler classes inherit from various classes " +"provided by SAX, and override various methods that will then be called by " +"the XML parser. For example, the :meth:`startElement` and :meth:" +"`endElement` methods are called for every starting and end tag encountered " +"by the parser, the :meth:`characters` method is called for every chunk of " +"character data, and so forth." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:906 +msgid "" +"The advantage of the event-driven approach is that the whole document " +"doesn't have to be resident in memory at any one time, which matters if you " +"are processing really huge documents. However, writing the SAX handler " +"class can get very complicated if you're trying to modify the document " +"structure in some elaborate way." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:912 +msgid "" +"For example, this little example program defines a handler that prints a " +"message for every starting and ending tag, and then parses the file :file:" +"`hamlet.xml` using it::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:935 +msgid "" +"For more information, consult the Python documentation, or the XML HOWTO at " +"http://pyxml.sourceforge.net/topics/howto/xml-howto.html." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:940 +msgid "DOM Support" +msgstr "Support du DOM" + +#: ../Doc/whatsnew/2.0.rst:942 +msgid "" +"The Document Object Model is a tree-based representation for an XML " +"document. A top-level :class:`Document` instance is the root of the tree, " +"and has a single child which is the top-level :class:`Element` instance. " +"This :class:`Element` has children nodes representing character data and any " +"sub-elements, which may have further children of their own, and so forth. " +"Using the DOM you can traverse the resulting tree any way you like, access " +"element and attribute values, insert and delete nodes, and convert the tree " +"back into XML." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:950 +msgid "" +"The DOM is useful for modifying XML documents, because you can create a DOM " +"tree, modify it by adding new nodes or rearranging subtrees, and then " +"produce a new XML document as output. You can also construct a DOM tree " +"manually and convert it to XML, which can be a more flexible way of " +"producing XML output than simply writing ````...\\ ```` to a " +"file." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:956 +msgid "" +"The DOM implementation included with Python lives in the :mod:`xml.dom." +"minidom` module. It's a lightweight implementation of the Level 1 DOM with " +"support for XML namespaces. The :func:`parse` and :func:`parseString` " +"convenience functions are provided for generating a DOM tree::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:964 +msgid "" +"``doc`` is a :class:`Document` instance. :class:`Document`, like all the " +"other DOM classes such as :class:`Element` and :class:`Text`, is a subclass " +"of the :class:`Node` base class. All the nodes in a DOM tree therefore " +"support certain common methods, such as :meth:`toxml` which returns a string " +"containing the XML representation of the node and its children. Each class " +"also has special methods of its own; for example, :class:`Element` and :" +"class:`Document` instances have a method to find all child elements with a " +"given tag name. Continuing from the previous 2-line example::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:977 +msgid "For the *Hamlet* XML file, the above few lines output::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:982 +msgid "" +"The root element of the document is available as ``doc.documentElement``, " +"and its children can be easily modified by deleting, adding, or removing " +"nodes::" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:997 +msgid "" +"Again, I will refer you to the Python documentation for a complete listing " +"of the different :class:`Node` classes and their various methods." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1002 +msgid "Relationship to PyXML" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1004 +msgid "" +"The XML Special Interest Group has been working on XML-related Python code " +"for a while. Its code distribution, called PyXML, is available from the " +"SIG's Web pages at https://www.python.org/community/sigs/current/xml-sig. " +"The PyXML distribution also used the package name ``xml``. If you've " +"written programs that used PyXML, you're probably wondering about its " +"compatibility with the 2.0 :mod:`xml` package." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1010 +msgid "" +"The answer is that Python 2.0's :mod:`xml` package isn't compatible with " +"PyXML, but can be made compatible by installing a recent version PyXML. " +"Many applications can get by with the XML support that is included with " +"Python 2.0, but more complicated applications will require that the full " +"PyXML package will be installed. When installed, PyXML versions 0.6.0 or " +"greater will replace the :mod:`xml` package shipped with Python, and will be " +"a strict superset of the standard package, adding a bunch of additional " +"features. Some of the additional features in PyXML include:" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1019 +msgid "4DOM, a full DOM implementation from FourThought, Inc." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1021 +msgid "The xmlproc validating parser, written by Lars Marius Garshol." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1023 +msgid "The :mod:`sgmlop` parser accelerator module, written by Fredrik Lundh." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1029 +msgid "Module changes" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1031 +msgid "" +"Lots of improvements and bugfixes were made to Python's extensive standard " +"library; some of the affected modules include :mod:`readline`, :mod:" +"`ConfigParser`, :mod:`cgi`, :mod:`calendar`, :mod:`posix`, :mod:`readline`, :" +"mod:`xmllib`, :mod:`aifc`, :mod:`chunk, wave`, :mod:`random`, :mod:`shelve`, " +"and :mod:`nntplib`. Consult the CVS logs for the exact patch-by-patch " +"details." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1037 +msgid "" +"Brian Gallew contributed OpenSSL support for the :mod:`socket` module. " +"OpenSSL is an implementation of the Secure Socket Layer, which encrypts the " +"data being sent over a socket. When compiling Python, you can edit :file:" +"`Modules/Setup` to include SSL support, which adds an additional function to " +"the :mod:`socket` module: ``socket.ssl(socket, keyfile, certfile)``, which " +"takes a socket object and returns an SSL socket. The :mod:`httplib` and :" +"mod:`urllib` modules were also changed to support ``https://`` URLs, though " +"no one has implemented FTP or SMTP over SSL." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1046 +msgid "" +"The :mod:`httplib` module has been rewritten by Greg Stein to support " +"HTTP/1.1. Backward compatibility with the 1.5 version of :mod:`httplib` is " +"provided, though using HTTP/1.1 features such as pipelining will require " +"rewriting code to use a different set of interfaces." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1051 +msgid "" +"The :mod:`Tkinter` module now supports Tcl/Tk version 8.1, 8.2, or 8.3, and " +"support for the older 7.x versions has been dropped. The Tkinter module now " +"supports displaying Unicode strings in Tk widgets. Also, Fredrik Lundh " +"contributed an optimization which makes operations like ``create_line`` and " +"``create_polygon`` much faster, especially when using lots of coordinates." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1057 +msgid "" +"The :mod:`curses` module has been greatly extended, starting from Oliver " +"Andrich's enhanced version, to provide many additional functions from " +"ncurses and SYSV curses, such as colour, alternative character set support, " +"pads, and mouse support. This means the module is no longer compatible with " +"operating systems that only have BSD curses, but there don't seem to be any " +"currently maintained OSes that fall into this category." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1064 +msgid "" +"As mentioned in the earlier discussion of 2.0's Unicode support, the " +"underlying implementation of the regular expressions provided by the :mod:" +"`re` module has been changed. SRE, a new regular expression engine written " +"by Fredrik Lundh and partially funded by Hewlett Packard, supports matching " +"against both 8-bit strings and Unicode strings." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1074 +msgid "New modules" +msgstr "Nouveaux modules" + +#: ../Doc/whatsnew/2.0.rst:1076 +msgid "" +"A number of new modules were added. We'll simply list them with brief " +"descriptions; consult the 2.0 documentation for the details of a particular " +"module." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1080 +msgid "" +":mod:`atexit`: For registering functions to be called before the Python " +"interpreter exits. Code that currently sets ``sys.exitfunc`` directly should " +"be changed to use the :mod:`atexit` module instead, importing :mod:`atexit` " +"and calling :func:`atexit.register` with the function to be called on exit. " +"(Contributed by Skip Montanaro.)" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1086 +msgid "" +":mod:`codecs`, :mod:`encodings`, :mod:`unicodedata`: Added as part of the " +"new Unicode support." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1089 +msgid "" +":mod:`filecmp`: Supersedes the old :mod:`cmp`, :mod:`cmpcache` and :mod:" +"`dircmp` modules, which have now become deprecated. (Contributed by Gordon " +"MacMillan and Moshe Zadka.)" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1093 +msgid "" +":mod:`gettext`: This module provides internationalization (I18N) and " +"localization (L10N) support for Python programs by providing an interface to " +"the GNU gettext message catalog library. (Integrated by Barry Warsaw, from " +"separate contributions by Martin von Löwis, Peter Funk, and James " +"Henstridge.)" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1098 +msgid "" +":mod:`linuxaudiodev`: Support for the :file:`/dev/audio` device on Linux, a " +"twin to the existing :mod:`sunaudiodev` module. (Contributed by Peter Bosch, " +"with fixes by Jeremy Hylton.)" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1102 +msgid "" +":mod:`mmap`: An interface to memory-mapped files on both Windows and Unix. " +"A file's contents can be mapped directly into memory, at which point it " +"behaves like a mutable string, so its contents can be read and modified. " +"They can even be passed to functions that expect ordinary strings, such as " +"the :mod:`re` module. (Contributed by Sam Rushing, with some extensions by A." +"M. Kuchling.)" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1108 +msgid "" +":mod:`pyexpat`: An interface to the Expat XML parser. (Contributed by Paul " +"Prescod.)" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1111 +msgid "" +":mod:`robotparser`: Parse a :file:`robots.txt` file, which is used for " +"writing Web spiders that politely avoid certain areas of a Web site. The " +"parser accepts the contents of a :file:`robots.txt` file, builds a set of " +"rules from it, and can then answer questions about the fetchability of a " +"given URL. (Contributed by Skip Montanaro.)" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1117 +msgid "" +":mod:`tabnanny`: A module/script to check Python source code for ambiguous " +"indentation. (Contributed by Tim Peters.)" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1120 +msgid "" +":mod:`UserString`: A base class useful for deriving objects that behave like " +"strings." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1123 +msgid "" +":mod:`webbrowser`: A module that provides a platform independent way to " +"launch a web browser on a specific URL. For each platform, various browsers " +"are tried in a specific order. The user can alter which browser is launched " +"by setting the *BROWSER* environment variable. (Originally inspired by Eric " +"S. Raymond's patch to :mod:`urllib` which added similar functionality, but " +"the final module comes from code originally implemented by Fred Drake as :" +"file:`Tools/idle/BrowserControl.py`, and adapted for the standard library by " +"Fred.)" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1132 +msgid "" +":mod:`_winreg`: An interface to the Windows registry. :mod:`_winreg` is an " +"adaptation of functions that have been part of PythonWin since 1995, but has " +"now been added to the core distribution, and enhanced to support Unicode. :" +"mod:`_winreg` was written by Bill Tutt and Mark Hammond." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1137 +msgid "" +":mod:`zipfile`: A module for reading and writing ZIP-format archives. These " +"are archives produced by :program:`PKZIP` on DOS/Windows or :program:`zip` " +"on Unix, not to be confused with :program:`gzip`\\ -format files (which are " +"supported by the :mod:`gzip` module) (Contributed by James C. Ahlstrom.)" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1142 +msgid "" +":mod:`imputil`: A module that provides a simpler way for writing customized " +"import hooks, in comparison to the existing :mod:`ihooks` module. " +"(Implemented by Greg Stein, with much discussion on python-dev along the " +"way.)" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1150 +msgid "IDLE Improvements" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1152 +msgid "" +"IDLE is the official Python cross-platform IDE, written using Tkinter. " +"Python 2.0 includes IDLE 0.6, which adds a number of new features and " +"improvements. A partial list:" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1156 +msgid "" +"UI improvements and optimizations, especially in the area of syntax " +"highlighting and auto-indentation." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1159 +msgid "" +"The class browser now shows more information, such as the top level " +"functions in a module." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1162 +msgid "" +"Tab width is now a user settable option. When opening an existing Python " +"file, IDLE automatically detects the indentation conventions, and adapts." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1165 +msgid "" +"There is now support for calling browsers on various platforms, used to open " +"the Python documentation in a browser." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1168 +msgid "" +"IDLE now has a command line, which is largely similar to the vanilla Python " +"interpreter." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1171 +msgid "Call tips were added in many places." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1173 +msgid "IDLE can now be installed as a package." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1175 +msgid "In the editor window, there is now a line/column bar at the bottom." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1177 +msgid "" +"Three new keystroke commands: Check module (:kbd:`Alt-F5`), Import module (:" +"kbd:`F5`) and Run script (:kbd:`Ctrl-F5`)." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1184 +msgid "Deleted and Deprecated Modules" +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1186 +msgid "" +"A few modules have been dropped because they're obsolete, or because there " +"are now better ways to do the same thing. The :mod:`stdwin` module is gone; " +"it was for a platform-independent windowing toolkit that's no longer " +"developed." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1190 +msgid "" +"A number of modules have been moved to the :file:`lib-old` subdirectory: :" +"mod:`cmp`, :mod:`cmpcache`, :mod:`dircmp`, :mod:`dump`, :mod:`find`, :mod:" +"`grep`, :mod:`packmail`, :mod:`poly`, :mod:`util`, :mod:`whatsound`, :mod:" +"`zmod`. If you have code which relies on a module that's been moved to :" +"file:`lib-old`, you can simply add that directory to ``sys.path`` to get " +"them back, but you're encouraged to update any code that uses these modules." +msgstr "" + +#: ../Doc/whatsnew/2.0.rst:1199 +msgid "Acknowledgements" +msgstr "Remerciements" + +#: ../Doc/whatsnew/2.0.rst:1201 +msgid "" +"The authors would like to thank the following people for offering " +"suggestions on various drafts of this article: David Bolen, Mark Hammond, " +"Gregg Hauser, Jeremy Hylton, Fredrik Lundh, Detlef Lannert, Aahz Maruch, " +"Skip Montanaro, Vladimir Marangozov, Tobias Polzin, Guido van Rossum, Neil " +"Schemenauer, and Russ Schmidt." +msgstr "" diff --git a/whatsnew/2.1.po b/whatsnew/2.1.po new file mode 100644 index 000000000..d2cf5e014 --- /dev/null +++ b/whatsnew/2.1.po @@ -0,0 +1,1013 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2018-07-31 23:42+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/whatsnew/2.1.rst:3 +msgid "What's New in Python 2.1" +msgstr "Nouveautés de Python 2.1" + +#: ../Doc/whatsnew/2.1.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/whatsnew/2.1.rst:5 +msgid "A.M. Kuchling" +msgstr "A.M. Kuchling" + +#: ../Doc/whatsnew/2.1.rst:13 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/whatsnew/2.1.rst:15 +msgid "" +"This article explains the new features in Python 2.1. While there aren't as " +"many changes in 2.1 as there were in Python 2.0, there are still some " +"pleasant surprises in store. 2.1 is the first release to be steered through " +"the use of Python Enhancement Proposals, or PEPs, so most of the sizable " +"changes have accompanying PEPs that provide more complete documentation and " +"a design rationale for the change. This article doesn't attempt to document " +"the new features completely, but simply provides an overview of the new " +"features for Python programmers. Refer to the Python 2.1 documentation, or " +"to the specific PEP, for more details about any new feature that " +"particularly interests you." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:25 +msgid "" +"One recent goal of the Python development team has been to accelerate the " +"pace of new releases, with a new release coming every 6 to 9 months. 2.1 is " +"the first release to come out at this faster pace, with the first alpha " +"appearing in January, 3 months after the final version of 2.0 was released." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:30 +msgid "The final release of Python 2.1 was made on April 17, 2001." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:36 +msgid "PEP 227: Nested Scopes" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:38 +msgid "" +"The largest change in Python 2.1 is to Python's scoping rules. In Python " +"2.0, at any given time there are at most three namespaces used to look up " +"variable names: local, module-level, and the built-in namespace. This often " +"surprised people because it didn't match their intuitive expectations. For " +"example, a nested recursive function definition doesn't work::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:51 +msgid "" +"The function :func:`g` will always raise a :exc:`NameError` exception, " +"because the binding of the name ``g`` isn't in either its local namespace or " +"in the module-level namespace. This isn't much of a problem in practice " +"(how often do you recursively define interior functions like this?), but " +"this also made using the :keyword:`lambda` expression clumsier, and this was " +"a problem in practice. In code which uses :keyword:`lambda` you can often " +"find local variables being copied by passing them as the default values of " +"arguments. ::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:65 +msgid "" +"The readability of Python code written in a strongly functional style " +"suffers greatly as a result." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:68 +msgid "" +"The most significant change to Python 2.1 is that static scoping has been " +"added to the language to fix this problem. As a first effect, the " +"``name=name`` default argument is now unnecessary in the above example. Put " +"simply, when a given variable name is not assigned a value within a function " +"(by an assignment, or the :keyword:`def`, :keyword:`class`, or :keyword:" +"`import` statements), references to the variable will be looked up in the " +"local namespace of the enclosing scope. A more detailed explanation of the " +"rules, and a dissection of the implementation, can be found in the PEP." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:77 +msgid "" +"This change may cause some compatibility problems for code where the same " +"variable name is used both at the module level and as a local variable " +"within a function that contains further function definitions. This seems " +"rather unlikely though, since such code would have been pretty confusing to " +"read in the first place." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:83 +msgid "" +"One side effect of the change is that the ``from module import *`` and " +"``exec`` statements have been made illegal inside a function scope under " +"certain conditions. The Python reference manual has said all along that " +"``from module import *`` is only legal at the top level of a module, but the " +"CPython interpreter has never enforced this before. As part of the " +"implementation of nested scopes, the compiler which turns Python source into " +"bytecodes has to generate different code to access variables in a containing " +"scope. ``from module import *`` and ``exec`` make it impossible for the " +"compiler to figure this out, because they add names to the local namespace " +"that are unknowable at compile time. Therefore, if a function contains " +"function definitions or :keyword:`lambda` expressions with free variables, " +"the compiler will flag this by raising a :exc:`SyntaxError` exception." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:96 +msgid "To make the preceding explanation a bit clearer, here's an example::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:105 +msgid "" +"Line 4 containing the ``exec`` statement is a syntax error, since ``exec`` " +"would define a new local variable named ``x`` whose value should be accessed " +"by :func:`g`." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:109 +msgid "" +"This shouldn't be much of a limitation, since ``exec`` is rarely used in " +"most Python code (and when it is used, it's often a sign of a poor design " +"anyway)." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:113 +msgid "" +"Compatibility concerns have led to nested scopes being introduced gradually; " +"in Python 2.1, they aren't enabled by default, but can be turned on within a " +"module by using a future statement as described in PEP 236. (See the " +"following section for further discussion of PEP 236.) In Python 2.2, nested " +"scopes will become the default and there will be no way to turn them off, " +"but users will have had all of 2.1's lifetime to fix any breakage resulting " +"from their introduction." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:123 +msgid ":pep:`227` - Statically Nested Scopes" +msgstr ":pep:`227` - Statically Nested Scopes" + +#: ../Doc/whatsnew/2.1.rst:124 +msgid "Written and implemented by Jeremy Hylton." +msgstr "Écrit et implémenté par Jeremy Hylton." + +#: ../Doc/whatsnew/2.1.rst:130 +msgid "PEP 236: __future__ Directives" +msgstr "PEP 236 : Directives __future__" + +#: ../Doc/whatsnew/2.1.rst:132 +msgid "" +"The reaction to nested scopes was widespread concern about the dangers of " +"breaking code with the 2.1 release, and it was strong enough to make the " +"Pythoneers take a more conservative approach. This approach consists of " +"introducing a convention for enabling optional functionality in release N " +"that will become compulsory in release N+1." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:138 +msgid "" +"The syntax uses a ``from...import`` statement using the reserved module " +"name :mod:`__future__`. Nested scopes can be enabled by the following " +"statement::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:143 +msgid "" +"While it looks like a normal :keyword:`import` statement, it's not; there " +"are strict rules on where such a future statement can be put. They can only " +"be at the top of a module, and must precede any Python code or regular :" +"keyword:`!import` statements. This is because such statements can affect " +"how the Python bytecode compiler parses code and generates bytecode, so they " +"must precede any statement that will result in bytecodes being produced." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:153 +msgid ":pep:`236` - Back to the :mod:`__future__`" +msgstr ":pep:`236` -- Retour vers le :mod:`__future__`" + +#: ../Doc/whatsnew/2.1.rst:154 +msgid "Written by Tim Peters, and primarily implemented by Jeremy Hylton." +msgstr "Écrit par Tim Peters, et implémenté principalement par Jeremy Hylton." + +#: ../Doc/whatsnew/2.1.rst:160 +msgid "PEP 207: Rich Comparisons" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:162 +msgid "" +"In earlier versions, Python's support for implementing comparisons on user-" +"defined classes and extension types was quite simple. Classes could " +"implement a :meth:`__cmp__` method that was given two instances of a class, " +"and could only return 0 if they were equal or +1 or -1 if they weren't; the " +"method couldn't raise an exception or return anything other than a Boolean " +"value. Users of Numeric Python often found this model too weak and " +"restrictive, because in the number-crunching programs that numeric Python is " +"used for, it would be more useful to be able to perform elementwise " +"comparisons of two matrices, returning a matrix containing the results of a " +"given comparison for each element. If the two matrices are of different " +"sizes, then the compare has to be able to raise an exception to signal the " +"error." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:174 +msgid "" +"In Python 2.1, rich comparisons were added in order to support this need. " +"Python classes can now individually overload each of the ``<``, ``<=``, " +"``>``, ``>=``, ``==``, and ``!=`` operations. The new magic method names " +"are:" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:179 +msgid "Operation" +msgstr "Opération" + +#: ../Doc/whatsnew/2.1.rst:179 +msgid "Method name" +msgstr "Nom de méthode" + +#: ../Doc/whatsnew/2.1.rst:181 +msgid "``<``" +msgstr "``<``" + +#: ../Doc/whatsnew/2.1.rst:181 +msgid ":meth:`__lt__`" +msgstr ":meth:`__lt__`" + +#: ../Doc/whatsnew/2.1.rst:183 +msgid "``<=``" +msgstr "``<=``" + +#: ../Doc/whatsnew/2.1.rst:183 +msgid ":meth:`__le__`" +msgstr ":meth:`__le__`" + +#: ../Doc/whatsnew/2.1.rst:185 +msgid "``>``" +msgstr "``>``" + +#: ../Doc/whatsnew/2.1.rst:185 +msgid ":meth:`__gt__`" +msgstr ":meth:`__gt__`" + +#: ../Doc/whatsnew/2.1.rst:187 +msgid "``>=``" +msgstr "``>=``" + +#: ../Doc/whatsnew/2.1.rst:187 +msgid ":meth:`__ge__`" +msgstr ":meth:`__ge__`" + +#: ../Doc/whatsnew/2.1.rst:189 +msgid "``==``" +msgstr "``==``" + +#: ../Doc/whatsnew/2.1.rst:189 +msgid ":meth:`__eq__`" +msgstr ":meth:`__eq__`" + +#: ../Doc/whatsnew/2.1.rst:191 +msgid "``!=``" +msgstr "``!=``" + +#: ../Doc/whatsnew/2.1.rst:191 +msgid ":meth:`__ne__`" +msgstr ":meth:`__ne__`" + +#: ../Doc/whatsnew/2.1.rst:194 +msgid "" +"(The magic methods are named after the corresponding Fortran operators ``.LT." +"``. ``.LE.``, &c. Numeric programmers are almost certainly quite familiar " +"with these names and will find them easy to remember.)" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:198 +msgid "" +"Each of these magic methods is of the form ``method(self, other)``, where " +"``self`` will be the object on the left-hand side of the operator, while " +"``other`` will be the object on the right-hand side. For example, the " +"expression ``A < B`` will cause ``A.__lt__(B)`` to be called." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:203 +msgid "" +"Each of these magic methods can return anything at all: a Boolean, a matrix, " +"a list, or any other Python object. Alternatively they can raise an " +"exception if the comparison is impossible, inconsistent, or otherwise " +"meaningless." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:207 +msgid "" +"The built-in ``cmp(A,B)`` function can use the rich comparison machinery, " +"and now accepts an optional argument specifying which comparison operation " +"to use; this is given as one of the strings ``\"<\"``, ``\"<=\"``, ``\">" +"\"``, ``\">=\"``, ``\"==\"``, or ``\"!=\"``. If called without the optional " +"third argument, :func:`cmp` will only return -1, 0, or +1 as in previous " +"versions of Python; otherwise it will call the appropriate method and can " +"return any Python object." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:214 +msgid "" +"There are also corresponding changes of interest to C programmers; there's a " +"new slot ``tp_richcmp`` in type objects and an API for performing a given " +"rich comparison. I won't cover the C API here, but will refer you to PEP " +"207, or to 2.1's C API documentation, for the full list of related functions." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:223 +msgid ":pep:`207` - Rich Comparisons" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:223 +msgid "" +"Written by Guido van Rossum, heavily based on earlier work by David Ascher, " +"and implemented by Guido van Rossum." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:230 +msgid "PEP 230: Warning Framework" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:232 +msgid "" +"Over its 10 years of existence, Python has accumulated a certain number of " +"obsolete modules and features along the way. It's difficult to know when a " +"feature is safe to remove, since there's no way of knowing how much code " +"uses it --- perhaps no programs depend on the feature, or perhaps many do. " +"To enable removing old features in a more structured way, a warning " +"framework was added. When the Python developers want to get rid of a " +"feature, it will first trigger a warning in the next version of Python. The " +"following Python version can then drop the feature, and users will have had " +"a full release cycle to remove uses of the old feature." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:242 +msgid "" +"Python 2.1 adds the warning framework to be used in this scheme. It adds a :" +"mod:`warnings` module that provide functions to issue warnings, and to " +"filter out warnings that you don't want to be displayed. Third-party modules " +"can also use this framework to deprecate old features that they no longer " +"wish to support." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:248 +msgid "" +"For example, in Python 2.1 the :mod:`regex` module is deprecated, so " +"importing it causes a warning to be printed::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:256 +msgid "Warnings can be issued by calling the :func:`warnings.warn` function::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:260 +msgid "" +"The first parameter is the warning message; an additional optional " +"parameters can be used to specify a particular warning category." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:263 +msgid "" +"Filters can be added to disable certain warnings; a regular expression " +"pattern can be applied to the message or to the module name in order to " +"suppress a warning. For example, you may have a program that uses the :mod:" +"`regex` module and not want to spare the time to convert it to use the :mod:" +"`re` module right now. The warning can be suppressed by calling ::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:275 +msgid "" +"This adds a filter that will apply only to warnings of the class :class:" +"`DeprecationWarning` triggered in the :mod:`__main__` module, and applies a " +"regular expression to only match the message about the :mod:`regex` module " +"being deprecated, and will cause such warnings to be ignored. Warnings can " +"also be printed only once, printed every time the offending code is " +"executed, or turned into exceptions that will cause the program to stop " +"(unless the exceptions are caught in the usual way, of course)." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:283 +msgid "" +"Functions were also added to Python's C API for issuing warnings; refer to " +"PEP 230 or to Python's API documentation for the details." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:293 +msgid ":pep:`5` - Guidelines for Language Evolution" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:290 +msgid "" +"Written by Paul Prescod, to specify procedures to be followed when removing " +"old features from Python. The policy described in this PEP hasn't been " +"officially adopted, but the eventual policy probably won't be too different " +"from Prescod's proposal." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:295 +msgid ":pep:`230` - Warning Framework" +msgstr ":pep:`230` - Warning Framework" + +#: ../Doc/whatsnew/2.1.rst:296 +msgid "Written and implemented by Guido van Rossum." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:302 +msgid "PEP 229: New Build System" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:304 +msgid "" +"When compiling Python, the user had to go in and edit the :file:`Modules/" +"Setup` file in order to enable various additional modules; the default set " +"is relatively small and limited to modules that compile on most Unix " +"platforms. This means that on Unix platforms with many more features, most " +"notably Linux, Python installations often don't contain all useful modules " +"they could." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:310 +msgid "" +"Python 2.0 added the Distutils, a set of modules for distributing and " +"installing extensions. In Python 2.1, the Distutils are used to compile " +"much of the standard library of extension modules, autodetecting which ones " +"are supported on the current machine. It's hoped that this will make Python " +"installations easier and more featureful." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:316 +msgid "" +"Instead of having to edit the :file:`Modules/Setup` file in order to enable " +"modules, a :file:`setup.py` script in the top directory of the Python source " +"distribution is run at build time, and attempts to discover which modules " +"can be enabled by examining the modules and header files on the system. If " +"a module is configured in :file:`Modules/Setup`, the :file:`setup.py` script " +"won't attempt to compile that module and will defer to the :file:`Modules/" +"Setup` file's contents. This provides a way to specific any strange command-" +"line flags or libraries that are required for a specific platform." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:325 +msgid "" +"In another far-reaching change to the build mechanism, Neil Schemenauer " +"restructured things so Python now uses a single makefile that isn't " +"recursive, instead of makefiles in the top directory and in each of the :" +"file:`Python/`, :file:`Parser/`, :file:`Objects/`, and :file:`Modules/` " +"subdirectories. This makes building Python faster and also makes hacking " +"the Makefiles clearer and simpler." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:335 +msgid ":pep:`229` - Using Distutils to Build Python" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:336 ../Doc/whatsnew/2.1.rst:571 +msgid "Written and implemented by A.M. Kuchling." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:342 +msgid "PEP 205: Weak References" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:344 +msgid "" +"Weak references, available through the :mod:`weakref` module, are a minor " +"but useful new data type in the Python programmer's toolbox." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:347 +msgid "" +"Storing a reference to an object (say, in a dictionary or a list) has the " +"side effect of keeping that object alive forever. There are a few specific " +"cases where this behaviour is undesirable, object caches being the most " +"common one, and another being circular references in data structures such as " +"trees." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:352 +msgid "" +"For example, consider a memoizing function that caches the results of " +"another function ``f(x)`` by storing the function's argument and its result " +"in a dictionary::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:368 +msgid "" +"This version works for simple things such as integers, but it has a side " +"effect; the ``_cache`` dictionary holds a reference to the return values, so " +"they'll never be deallocated until the Python process exits and cleans up. " +"This isn't very noticeable for integers, but if :func:`f` returns an object, " +"or a data structure that takes up a lot of memory, this can be a problem." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:374 +msgid "" +"Weak references provide a way to implement a cache that won't keep objects " +"alive beyond their time. If an object is only accessible through weak " +"references, the object will be deallocated and the weak references will now " +"indicate that the object it referred to no longer exists. A weak reference " +"to an object *obj* is created by calling ``wr = weakref.ref(obj)``. The " +"object being referred to is returned by calling the weak reference as if it " +"were a function: ``wr()``. It will return the referenced object, or " +"``None`` if the object no longer exists." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:382 +msgid "" +"This makes it possible to write a :func:`memoize` function whose cache " +"doesn't keep objects alive, by storing weak references in the cache. ::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:400 +msgid "" +"The :mod:`weakref` module also allows creating proxy objects which behave " +"like weak references --- an object referenced only by proxy objects is " +"deallocated -- but instead of requiring an explicit call to retrieve the " +"object, the proxy transparently forwards all operations to the object as " +"long as the object still exists. If the object is deallocated, attempting " +"to use a proxy will cause a :exc:`weakref.ReferenceError` exception to be " +"raised. ::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:416 +msgid ":pep:`205` - Weak References" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:417 +msgid "Written and implemented by Fred L. Drake, Jr." +msgstr "Écrit et implémenté par Fred L. Drake, Jr." + +#: ../Doc/whatsnew/2.1.rst:423 +msgid "PEP 232: Function Attributes" +msgstr "PEP 232 : Attributs de fonctions" + +#: ../Doc/whatsnew/2.1.rst:425 +msgid "" +"In Python 2.1, functions can now have arbitrary information attached to " +"them. People were often using docstrings to hold information about functions " +"and methods, because the ``__doc__`` attribute was the only way of attaching " +"any information to a function. For example, in the Zope Web application " +"server, functions are marked as safe for public access by having a " +"docstring, and in John Aycock's SPARK parsing framework, docstrings hold " +"parts of the BNF grammar to be parsed. This overloading is unfortunate, " +"since docstrings are really intended to hold a function's documentation; for " +"example, it means you can't properly document functions intended for private " +"use in Zope." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:435 +msgid "" +"Arbitrary attributes can now be set and retrieved on functions using the " +"regular Python syntax::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:444 +msgid "" +"The dictionary containing attributes can be accessed as the function's :attr:" +"`~object.__dict__`. Unlike the :attr:`~object.__dict__` attribute of class " +"instances, in functions you can actually assign a new dictionary to :attr:" +"`~object.__dict__`, though the new value is restricted to a regular Python " +"dictionary; you *can't* be tricky and set it to a :class:`UserDict` " +"instance, or any other random object that behaves like a mapping." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:454 +msgid ":pep:`232` - Function Attributes" +msgstr ":pep:`232` -- Attributs de fonctions" + +#: ../Doc/whatsnew/2.1.rst:455 +msgid "Written and implemented by Barry Warsaw." +msgstr "Écrit et implémenté par Barry Warsaw." + +#: ../Doc/whatsnew/2.1.rst:461 +msgid "PEP 235: Importing Modules on Case-Insensitive Platforms" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:463 +msgid "" +"Some operating systems have filesystems that are case-insensitive, MacOS and " +"Windows being the primary examples; on these systems, it's impossible to " +"distinguish the filenames ``FILE.PY`` and ``file.py``, even though they do " +"store the file's name in its original case (they're case-preserving, too)." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:468 +msgid "" +"In Python 2.1, the :keyword:`import` statement will work to simulate case-" +"sensitivity on case-insensitive platforms. Python will now search for the " +"first case-sensitive match by default, raising an :exc:`ImportError` if no " +"such file is found, so ``import file`` will not import a module named ``FILE." +"PY``. Case-insensitive matching can be requested by setting the :envvar:" +"`PYTHONCASEOK` environment variable before starting the Python interpreter." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:479 +msgid "PEP 217: Interactive Display Hook" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:481 +msgid "" +"When using the Python interpreter interactively, the output of commands is " +"displayed using the built-in :func:`repr` function. In Python 2.1, the " +"variable :func:`sys.displayhook` can be set to a callable object which will " +"be called instead of :func:`repr`. For example, you can set it to a special " +"pretty-printing function::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:502 +msgid ":pep:`217` - Display Hook for Interactive Use" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:503 +msgid "Written and implemented by Moshe Zadka." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:509 +msgid "PEP 208: New Coercion Model" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:511 +msgid "" +"How numeric coercion is done at the C level was significantly modified. " +"This will only affect the authors of C extensions to Python, allowing them " +"more flexibility in writing extension types that support numeric operations." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:515 +msgid "" +"Extension types can now set the type flag ``Py_TPFLAGS_CHECKTYPES`` in their " +"``PyTypeObject`` structure to indicate that they support the new coercion " +"model. In such extension types, the numeric slot functions can no longer " +"assume that they'll be passed two arguments of the same type; instead they " +"may be passed two arguments of differing types, and can then perform their " +"own internal coercion. If the slot function is passed a type it can't " +"handle, it can indicate the failure by returning a reference to the " +"``Py_NotImplemented`` singleton value. The numeric functions of the other " +"type will then be tried, and perhaps they can handle the operation; if the " +"other type also returns ``Py_NotImplemented``, then a :exc:`TypeError` will " +"be raised. Numeric methods written in Python can also return " +"``Py_NotImplemented``, causing the interpreter to act as if the method did " +"not exist (perhaps raising a :exc:`TypeError`, perhaps trying another " +"object's numeric methods)." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:534 +msgid ":pep:`208` - Reworking the Coercion Model" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:533 +msgid "" +"Written and implemented by Neil Schemenauer, heavily based upon earlier work " +"by Marc-André Lemburg. Read this to understand the fine points of how " +"numeric operations will now be processed at the C level." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:541 +msgid "PEP 241: Metadata in Python Packages" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:543 +msgid "" +"A common complaint from Python users is that there's no single catalog of " +"all the Python modules in existence. T. Middleton's Vaults of Parnassus at " +"http://www.vex.net/parnassus/ are the largest catalog of Python modules, but " +"registering software at the Vaults is optional, and many people don't bother." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:548 +msgid "" +"As a first small step toward fixing the problem, Python software packaged " +"using the Distutils :command:`sdist` command will include a file named :file:" +"`PKG-INFO` containing information about the package such as its name, " +"version, and author (metadata, in cataloguing terminology). PEP 241 " +"contains the full list of fields that can be present in the :file:`PKG-INFO` " +"file. As people began to package their software using Python 2.1, more and " +"more packages will include metadata, making it possible to build automated " +"cataloguing systems and experiment with them. With the result experience, " +"perhaps it'll be possible to design a really good catalog and then build " +"support for it into Python 2.2. For example, the Distutils :command:`sdist` " +"and :command:`bdist_\\*` commands could support an ``upload`` option that " +"would automatically upload your package to a catalog server." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:561 +msgid "" +"You can start creating packages containing :file:`PKG-INFO` even if you're " +"not using Python 2.1, since a new release of the Distutils will be made for " +"users of earlier Python versions. Version 1.0.2 of the Distutils includes " +"the changes described in PEP 241, as well as various bugfixes and " +"enhancements. It will be available from the Distutils SIG at https://www." +"python.org/community/sigs/current/distutils-sig/." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:571 +msgid ":pep:`241` - Metadata for Python Software Packages" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:574 +msgid ":pep:`243` - Module Repository Upload Mechanism" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:574 +msgid "" +"Written by Sean Reifschneider, this draft PEP describes a proposed mechanism " +"for uploading Python packages to a central server." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:581 +msgid "New and Improved Modules" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:583 +msgid "" +"Ka-Ping Yee contributed two new modules: :mod:`inspect.py`, a module for " +"getting information about live Python code, and :mod:`pydoc.py`, a module " +"for interactively converting docstrings to HTML or text. As a bonus, :file:" +"`Tools/scripts/pydoc`, which is now automatically installed, uses :mod:" +"`pydoc.py` to display documentation given a Python module, package, or class " +"name. For example, ``pydoc xml.dom`` displays the following::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:605 +msgid "" +":file:`pydoc` also includes a Tk-based interactive help browser. :file:" +"`pydoc` quickly becomes addictive; try it out!" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:608 +msgid "" +"Two different modules for unit testing were added to the standard library. " +"The :mod:`doctest` module, contributed by Tim Peters, provides a testing " +"framework based on running embedded examples in docstrings and comparing the " +"results against the expected output. PyUnit, contributed by Steve Purcell, " +"is a unit testing framework inspired by JUnit, which was in turn an " +"adaptation of Kent Beck's Smalltalk testing framework. See http://pyunit." +"sourceforge.net/ for more information about PyUnit." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:616 +msgid "" +"The :mod:`difflib` module contains a class, :class:`SequenceMatcher`, which " +"compares two sequences and computes the changes required to transform one " +"sequence into the other. For example, this module can be used to write a " +"tool similar to the Unix :program:`diff` program, and in fact the sample " +"program :file:`Tools/scripts/ndiff.py` demonstrates how to write such a " +"script." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:622 +msgid "" +":mod:`curses.panel`, a wrapper for the panel library, part of ncurses and of " +"SYSV curses, was contributed by Thomas Gellekum. The panel library provides " +"windows with the additional feature of depth. Windows can be moved higher or " +"lower in the depth ordering, and the panel library figures out where panels " +"overlap and which sections are visible." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:628 +msgid "" +"The PyXML package has gone through a few releases since Python 2.0, and " +"Python 2.1 includes an updated version of the :mod:`xml` package. Some of " +"the noteworthy changes include support for Expat 1.2 and later versions, the " +"ability for Expat parsers to handle files in any encoding supported by " +"Python, and various bugfixes for SAX, DOM, and the :mod:`minidom` module." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:634 +msgid "" +"Ping also contributed another hook for handling uncaught exceptions. :func:" +"`sys.excepthook` can be set to a callable object. When an exception isn't " +"caught by any :keyword:`try`...\\ :keyword:`except` blocks, the exception " +"will be passed to :func:`sys.excepthook`, which can then do whatever it " +"likes. At the Ninth Python Conference, Ping demonstrated an application for " +"this hook: printing an extended traceback that not only lists the stack " +"frames, but also lists the function arguments and the local variables for " +"each frame." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:642 +msgid "" +"Various functions in the :mod:`time` module, such as :func:`asctime` and :" +"func:`localtime`, require a floating point argument containing the time in " +"seconds since the epoch. The most common use of these functions is to work " +"with the current time, so the floating point argument has been made " +"optional; when a value isn't provided, the current time will be used. For " +"example, log file entries usually need a string containing the current time; " +"in Python 2.1, ``time.asctime()`` can be used, instead of the lengthier " +"``time.asctime(time.localtime(time.time()))`` that was previously required." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:651 +msgid "This change was proposed and implemented by Thomas Wouters." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:653 +msgid "" +"The :mod:`ftplib` module now defaults to retrieving files in passive mode, " +"because passive mode is more likely to work from behind a firewall. This " +"request came from the Debian bug tracking system, since other Debian " +"packages use :mod:`ftplib` to retrieve files and then don't work from behind " +"a firewall. It's deemed unlikely that this will cause problems for anyone, " +"because Netscape defaults to passive mode and few people complain, but if " +"passive mode is unsuitable for your application or network setup, call " +"``set_pasv(0)`` on FTP objects to disable passive mode." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:662 +msgid "" +"Support for raw socket access has been added to the :mod:`socket` module, " +"contributed by Grant Edwards." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:665 +msgid "" +"The :mod:`pstats` module now contains a simple interactive statistics " +"browser for displaying timing profiles for Python programs, invoked when the " +"module is run as a script. Contributed by Eric S. Raymond." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:669 +msgid "" +"A new implementation-dependent function, ``sys._getframe([depth])``, has " +"been added to return a given frame object from the current call stack. :func:" +"`sys._getframe` returns the frame at the top of the call stack; if the " +"optional integer argument *depth* is supplied, the function returns the " +"frame that is *depth* calls below the top of the stack. For example, ``sys." +"_getframe(1)`` returns the caller's frame object." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:676 +msgid "" +"This function is only present in CPython, not in Jython or the .NET " +"implementation. Use it for debugging, and resist the temptation to put it " +"into production code." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:684 +msgid "Other Changes and Fixes" +msgstr "Autres changements et corrections" + +#: ../Doc/whatsnew/2.1.rst:686 +msgid "" +"There were relatively few smaller changes made in Python 2.1 due to the " +"shorter release cycle. A search through the CVS change logs turns up 117 " +"patches applied, and 136 bugs fixed; both figures are likely to be " +"underestimates. Some of the more notable changes are:" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:691 +msgid "" +"A specialized object allocator is now optionally available, that should be " +"faster than the system :func:`malloc` and have less memory overhead. The " +"allocator uses C's :func:`malloc` function to get large pools of memory, and " +"then fulfills smaller memory requests from these pools. It can be enabled " +"by providing the :option:`!--with-pymalloc` option to the :program:" +"`configure` script; see :file:`Objects/obmalloc.c` for the implementation " +"details." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:698 +msgid "" +"Authors of C extension modules should test their code with the object " +"allocator enabled, because some incorrect code may break, causing core dumps " +"at runtime. There are a bunch of memory allocation functions in Python's C " +"API that have previously been just aliases for the C library's :func:" +"`malloc` and :func:`free`, meaning that if you accidentally called " +"mismatched functions, the error wouldn't be noticeable. When the object " +"allocator is enabled, these functions aren't aliases of :func:`malloc` and :" +"func:`free` any more, and calling the wrong function to free memory will get " +"you a core dump. For example, if memory was allocated using :func:" +"`PyMem_New`, it has to be freed using :func:`PyMem_Del`, not :func:`free`. " +"A few modules included with Python fell afoul of this and had to be fixed; " +"doubtless there are more third-party modules that will have the same problem." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:711 +msgid "The object allocator was contributed by Vladimir Marangozov." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:713 +msgid "" +"The speed of line-oriented file I/O has been improved because people often " +"complain about its lack of speed, and because it's often been used as a " +"naïve benchmark. The :meth:`readline` method of file objects has therefore " +"been rewritten to be much faster. The exact amount of the speedup will vary " +"from platform to platform depending on how slow the C library's :func:`getc` " +"was, but is around 66%, and potentially much faster on some particular " +"operating systems. Tim Peters did much of the benchmarking and coding for " +"this change, motivated by a discussion in comp.lang.python." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:722 +msgid "" +"A new module and method for file objects was also added, contributed by Jeff " +"Epler. The new method, :meth:`xreadlines`, is similar to the existing :func:" +"`xrange` built-in. :func:`xreadlines` returns an opaque sequence object " +"that only supports being iterated over, reading a line on every iteration " +"but not reading the entire file into memory as the existing :meth:" +"`readlines` method does. You'd use it like this::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:733 +msgid "" +"For a fuller discussion of the line I/O changes, see the python-dev summary " +"for January 1--15, 2001 at https://mail.python.org/pipermail/python-dev/2001-" +"January/." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:736 +msgid "" +"A new method, :meth:`popitem`, was added to dictionaries to enable " +"destructively iterating through the contents of a dictionary; this can be " +"faster for large dictionaries because there's no need to construct a list " +"containing all the keys or values. ``D.popitem()`` removes a random ``(key, " +"value)`` pair from the dictionary ``D`` and returns it as a 2-tuple. This " +"was implemented mostly by Tim Peters and Guido van Rossum, after a " +"suggestion and preliminary patch by Moshe Zadka." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:744 +msgid "" +"Modules can now control which names are imported when ``from module import " +"*`` is used, by defining an ``__all__`` attribute containing a list of names " +"that will be imported. One common complaint is that if the module imports " +"other modules such as :mod:`sys` or :mod:`string`, ``from module import *`` " +"will add them to the importing module's namespace. To fix this, simply list " +"the public names in ``__all__``::" +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:754 +msgid "" +"A stricter version of this patch was first suggested and implemented by Ben " +"Wolfson, but after some python-dev discussion, a weaker final version was " +"checked in." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:758 +msgid "" +"Applying :func:`repr` to strings previously used octal escapes for non-" +"printable characters; for example, a newline was ``'\\012'``. This was a " +"vestigial trace of Python's C ancestry, but today octal is of very little " +"practical use. Ka-Ping Yee suggested using hex escapes instead of octal " +"ones, and using the ``\\n``, ``\\t``, ``\\r`` escapes for the appropriate " +"characters, and implemented this new formatting." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:765 +msgid "" +"Syntax errors detected at compile-time can now raise exceptions containing " +"the filename and line number of the error, a pleasant side effect of the " +"compiler reorganization done by Jeremy Hylton." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:769 +msgid "" +"C extensions which import other modules have been changed to use :func:" +"`PyImport_ImportModule`, which means that they will use any import hooks " +"that have been installed. This is also encouraged for third-party " +"extensions that need to import some other module from C code." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:774 +msgid "" +"The size of the Unicode character database was shrunk by another 340K thanks " +"to Fredrik Lundh." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:777 +msgid "" +"Some new ports were contributed: MacOS X (by Steven Majewski), Cygwin (by " +"Jason Tishler); RISCOS (by Dietmar Schwertberger); Unixware 7 (by Billy G. " +"Allie)." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:781 +msgid "" +"And there's the usual list of minor bugfixes, minor memory leaks, docstring " +"edits, and other tweaks, too lengthy to be worth itemizing; see the CVS logs " +"for the full details if you want them." +msgstr "" + +#: ../Doc/whatsnew/2.1.rst:789 +msgid "Acknowledgements" +msgstr "Remerciements" + +#: ../Doc/whatsnew/2.1.rst:791 +msgid "" +"The author would like to thank the following people for offering suggestions " +"on various drafts of this article: Graeme Cross, David Goodger, Jay Graves, " +"Michael Hudson, Marc-André Lemburg, Fredrik Lundh, Neil Schemenauer, Thomas " +"Wouters." +msgstr "" diff --git a/whatsnew/2.2.po b/whatsnew/2.2.po new file mode 100644 index 000000000..cf7472f08 --- /dev/null +++ b/whatsnew/2.2.po @@ -0,0 +1,1529 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2018-08-01 00:07+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/whatsnew/2.2.rst:3 +msgid "What's New in Python 2.2" +msgstr "Nouveautés de Python 2.2" + +#: ../Doc/whatsnew/2.2.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/whatsnew/2.2.rst:5 +msgid "A.M. Kuchling" +msgstr "A.M. Kuchling" + +#: ../Doc/whatsnew/2.2.rst:13 +msgid "Introduction" +msgstr "Introduction" + +#: ../Doc/whatsnew/2.2.rst:15 +msgid "" +"This article explains the new features in Python 2.2.2, released on October " +"14, 2002. Python 2.2.2 is a bugfix release of Python 2.2, originally " +"released on December 21, 2001." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:19 +msgid "" +"Python 2.2 can be thought of as the \"cleanup release\". There are some " +"features such as generators and iterators that are completely new, but most " +"of the changes, significant and far-reaching though they may be, are aimed " +"at cleaning up irregularities and dark corners of the language design." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:24 +msgid "" +"This article doesn't attempt to provide a complete specification of the new " +"features, but instead provides a convenient overview. For full details, you " +"should refer to the documentation for Python 2.2, such as the `Python " +"Library Reference `_ and the " +"`Python Reference Manual `_. If " +"you want to understand the complete implementation and design rationale for " +"a change, refer to the PEP for a particular new feature." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:43 +msgid "PEPs 252 and 253: Type and Class Changes" +msgstr "PEP 252 et 253 : Changements concernant les types et classes" + +#: ../Doc/whatsnew/2.2.rst:45 +msgid "" +"The largest and most far-reaching changes in Python 2.2 are to Python's " +"model of objects and classes. The changes should be backward compatible, so " +"it's likely that your code will continue to run unchanged, but the changes " +"provide some amazing new capabilities. Before beginning this, the longest " +"and most complicated section of this article, I'll provide an overview of " +"the changes and offer some comments." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:52 +msgid "" +"A long time ago I wrote a Web page listing flaws in Python's design. One of " +"the most significant flaws was that it's impossible to subclass Python types " +"implemented in C. In particular, it's not possible to subclass built-in " +"types, so you can't just subclass, say, lists in order to add a single " +"useful method to them. The :mod:`UserList` module provides a class that " +"supports all of the methods of lists and that can be subclassed further, but " +"there's lots of C code that expects a regular Python list and won't accept " +"a :class:`UserList` instance." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:61 +msgid "" +"Python 2.2 fixes this, and in the process adds some exciting new " +"capabilities. A brief summary:" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:64 +msgid "" +"You can subclass built-in types such as lists and even integers, and your " +"subclasses should work in every place that requires the original type." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:67 +msgid "" +"It's now possible to define static and class methods, in addition to the " +"instance methods available in previous versions of Python." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:70 +msgid "" +"It's also possible to automatically call methods on accessing or setting an " +"instance attribute by using a new mechanism called :dfn:`properties`. Many " +"uses of :meth:`__getattr__` can be rewritten to use properties instead, " +"making the resulting code simpler and faster. As a small side benefit, " +"attributes can now have docstrings, too." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:76 +msgid "" +"The list of legal attributes for an instance can be limited to a particular " +"set using :dfn:`slots`, making it possible to safeguard against typos and " +"perhaps make more optimizations possible in future versions of Python." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:80 +msgid "" +"Some users have voiced concern about all these changes. Sure, they say, the " +"new features are neat and lend themselves to all sorts of tricks that " +"weren't possible in previous versions of Python, but they also make the " +"language more complicated. Some people have said that they've always " +"recommended Python for its simplicity, and feel that its simplicity is being " +"lost." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:86 +msgid "" +"Personally, I think there's no need to worry. Many of the new features are " +"quite esoteric, and you can write a lot of Python code without ever needed " +"to be aware of them. Writing a simple class is no more difficult than it " +"ever was, so you don't need to bother learning or teaching them unless " +"they're actually needed. Some very complicated tasks that were previously " +"only possible from C will now be possible in pure Python, and to my mind " +"that's all for the better." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:93 +msgid "" +"I'm not going to attempt to cover every single corner case and small change " +"that were required to make the new features work. Instead this section will " +"paint only the broad strokes. See section :ref:`sect-rellinks`, \"Related " +"Links\", for further sources of information about Python 2.2's new object " +"model." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:100 +msgid "Old and New Classes" +msgstr "Anciennes et nouvelles classes" + +#: ../Doc/whatsnew/2.2.rst:102 +msgid "" +"First, you should know that Python 2.2 really has two kinds of classes: " +"classic or old-style classes, and new-style classes. The old-style class " +"model is exactly the same as the class model in earlier versions of Python. " +"All the new features described in this section apply only to new-style " +"classes. This divergence isn't intended to last forever; eventually old-" +"style classes will be dropped, possibly in Python 3.0." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:109 +msgid "" +"So how do you define a new-style class? You do it by subclassing an " +"existing new-style class. Most of Python's built-in types, such as " +"integers, lists, dictionaries, and even files, are new-style classes now. A " +"new-style class named :class:`object`, the base class for all built-in " +"types, has also been added so if no built-in type is suitable, you can just " +"subclass :class:`object`::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:121 +msgid "" +"This means that :keyword:`class` statements that don't have any base classes " +"are always classic classes in Python 2.2. (Actually you can also change " +"this by setting a module-level variable named :attr:`__metaclass__` --- see :" +"pep:`253` for the details --- but it's easier to just subclass :class:" +"`object`.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:126 +msgid "" +"The type objects for the built-in types are available as built-ins, named " +"using a clever trick. Python has always had built-in functions named :func:" +"`int`, :func:`float`, and :func:`str`. In 2.2, they aren't functions any " +"more, but type objects that behave as factories when called. ::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:136 +msgid "" +"To make the set of types complete, new type objects such as :func:`dict` " +"and :func:`file` have been added. Here's a more interesting example, adding " +"a :meth:`lock` method to file objects::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:146 +msgid "" +"The now-obsolete :mod:`posixfile` module contained a class that emulated all " +"of a file object's methods and also added a :meth:`lock` method, but this " +"class couldn't be passed to internal functions that expected a built-in " +"file, something which is possible with our new :class:`LockableFile`." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:153 +msgid "Descriptors" +msgstr "Descripteurs" + +#: ../Doc/whatsnew/2.2.rst:155 +msgid "" +"In previous versions of Python, there was no consistent way to discover what " +"attributes and methods were supported by an object. There were some informal " +"conventions, such as defining :attr:`__members__` and :attr:`__methods__` " +"attributes that were lists of names, but often the author of an extension " +"type or a class wouldn't bother to define them. You could fall back on " +"inspecting the :attr:`~object.__dict__` of an object, but when class " +"inheritance or an arbitrary :meth:`__getattr__` hook were in use this could " +"still be inaccurate." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:163 +msgid "" +"The one big idea underlying the new class model is that an API for " +"describing the attributes of an object using :dfn:`descriptors` has been " +"formalized. Descriptors specify the value of an attribute, stating whether " +"it's a method or a field. With the descriptor API, static methods and class " +"methods become possible, as well as more exotic constructs." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:169 +msgid "" +"Attribute descriptors are objects that live inside class objects, and have a " +"few attributes of their own:" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:172 +msgid ":attr:`~definition.__name__` is the attribute's name." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:174 +msgid ":attr:`__doc__` is the attribute's docstring." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:176 +msgid "" +"``__get__(object)`` is a method that retrieves the attribute value from " +"*object*." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:179 +msgid "``__set__(object, value)`` sets the attribute on *object* to *value*." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:181 +msgid "" +"``__delete__(object, value)`` deletes the *value* attribute of *object*." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:183 +msgid "" +"For example, when you write ``obj.x``, the steps that Python actually " +"performs are::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:189 +msgid "" +"For methods, :meth:`descriptor.__get__` returns a temporary object that's " +"callable, and wraps up the instance and the method to be called on it. This " +"is also why static methods and class methods are now possible; they have " +"descriptors that wrap up just the method, or the method and the class. As a " +"brief explanation of these new kinds of methods, static methods aren't " +"passed the instance, and therefore resemble regular functions. Class " +"methods are passed the class of the object, but not the object itself. " +"Static and class methods are defined like this::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:207 +msgid "" +"The :func:`staticmethod` function takes the function :func:`f`, and returns " +"it wrapped up in a descriptor so it can be stored in the class object. You " +"might expect there to be special syntax for creating such methods (``def " +"static f``, ``defstatic f()``, or something like that) but no such syntax " +"has been defined yet; that's been left for future versions of Python." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:213 +msgid "" +"More new features, such as slots and properties, are also implemented as new " +"kinds of descriptors, and it's not difficult to write a descriptor class " +"that does something novel. For example, it would be possible to write a " +"descriptor class that made it possible to write Eiffel-style preconditions " +"and postconditions for a method. A class that used this feature might be " +"defined like this::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:235 +msgid "" +"Note that a person using the new :func:`eiffelmethod` doesn't have to " +"understand anything about descriptors. This is why I think the new features " +"don't increase the basic complexity of the language. There will be a few " +"wizards who need to know about it in order to write :func:`eiffelmethod` or " +"the ZODB or whatever, but most users will just write code on top of the " +"resulting libraries and ignore the implementation details." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:244 +msgid "Multiple Inheritance: The Diamond Rule" +msgstr "Héritage multiple : la règle du diamant" + +#: ../Doc/whatsnew/2.2.rst:246 +msgid "" +"Multiple inheritance has also been made more useful through changing the " +"rules under which names are resolved. Consider this set of classes (diagram " +"taken from :pep:`253` by Guido van Rossum)::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:264 +msgid "" +"The lookup rule for classic classes is simple but not very smart; the base " +"classes are searched depth-first, going from left to right. A reference to :" +"meth:`D.save` will search the classes :class:`D`, :class:`B`, and then :" +"class:`A`, where :meth:`save` would be found and returned. :meth:`C.save` " +"would never be found at all. This is bad, because if :class:`C`'s :meth:" +"`save` method is saving some internal state specific to :class:`C`, not " +"calling it will result in that state never getting saved." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:272 +msgid "" +"New-style classes follow a different algorithm that's a bit more complicated " +"to explain, but does the right thing in this situation. (Note that Python " +"2.3 changes this algorithm to one that produces the same results in most " +"cases, but produces more useful results for really complicated inheritance " +"graphs.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:277 +msgid "" +"List all the base classes, following the classic lookup rule and include a " +"class multiple times if it's visited repeatedly. In the above example, the " +"list of visited classes is [:class:`D`, :class:`B`, :class:`A`, :class:`C`, :" +"class:`A`]." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:282 +msgid "" +"Scan the list for duplicated classes. If any are found, remove all but one " +"occurrence, leaving the *last* one in the list. In the above example, the " +"list becomes [:class:`D`, :class:`B`, :class:`C`, :class:`A`] after dropping " +"duplicates." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:287 +msgid "" +"Following this rule, referring to :meth:`D.save` will return :meth:`C.save`, " +"which is the behaviour we're after. This lookup rule is the same as the one " +"followed by Common Lisp. A new built-in function, :func:`super`, provides a " +"way to get at a class's superclasses without having to reimplement Python's " +"algorithm. The most commonly used form will be ``super(class, obj)``, which " +"returns a bound superclass object (not the actual class object). This form " +"will be used in methods to call a method in the superclass; for example, :" +"class:`D`'s :meth:`save` method would look like this::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:303 +msgid "" +":func:`super` can also return unbound superclass objects when called as " +"``super(class)`` or ``super(class1, class2)``, but this probably won't often " +"be useful." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:309 +msgid "Attribute Access" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:311 +msgid "" +"A fair number of sophisticated Python classes define hooks for attribute " +"access using :meth:`__getattr__`; most commonly this is done for " +"convenience, to make code more readable by automatically mapping an " +"attribute access such as ``obj.parent`` into a method call such as ``obj." +"get_parent``. Python 2.2 adds some new ways of controlling attribute access." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:317 +msgid "" +"First, ``__getattr__(attr_name)`` is still supported by new-style classes, " +"and nothing about it has changed. As before, it will be called when an " +"attempt is made to access ``obj.foo`` and no attribute named ``foo`` is " +"found in the instance's dictionary." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:322 +msgid "" +"New-style classes also support a new method, " +"``__getattribute__(attr_name)``. The difference between the two methods is " +"that :meth:`__getattribute__` is *always* called whenever any attribute is " +"accessed, while the old :meth:`__getattr__` is only called if ``foo`` isn't " +"found in the instance's dictionary." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:328 +msgid "" +"However, Python 2.2's support for :dfn:`properties` will often be a simpler " +"way to trap attribute references. Writing a :meth:`__getattr__` method is " +"complicated because to avoid recursion you can't use regular attribute " +"accesses inside them, and instead have to mess around with the contents of :" +"attr:`~object.__dict__`. :meth:`__getattr__` methods also end up being " +"called by Python when it checks for other methods such as :meth:`__repr__` " +"or :meth:`__coerce__`, and so have to be written with this in mind. Finally, " +"calling a function on every attribute access results in a sizable " +"performance loss." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:337 +msgid "" +":class:`property` is a new built-in type that packages up three functions " +"that get, set, or delete an attribute, and a docstring. For example, if you " +"want to define a :attr:`size` attribute that's computed, but also settable, " +"you could write::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:357 +msgid "" +"That is certainly clearer and easier to write than a pair of :meth:" +"`__getattr__`/:meth:`__setattr__` methods that check for the :attr:`size` " +"attribute and handle it specially while retrieving all other attributes from " +"the instance's :attr:`~object.__dict__`. Accesses to :attr:`size` are also " +"the only ones which have to perform the work of calling a function, so " +"references to other attributes run at their usual speed." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:364 +msgid "" +"Finally, it's possible to constrain the list of attributes that can be " +"referenced on an object using the new :attr:`~object.__slots__` class " +"attribute. Python objects are usually very dynamic; at any time it's " +"possible to define a new attribute on an instance by just doing ``obj." +"new_attr=1``. A new-style class can define a class attribute named :attr:" +"`~object.__slots__` to limit the legal attributes to a particular set of " +"names. An example will make this clear::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:385 +msgid "" +"Note how you get an :exc:`AttributeError` on the attempt to assign to an " +"attribute not listed in :attr:`~object.__slots__`." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:392 +msgid "Related Links" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:394 +msgid "" +"This section has just been a quick overview of the new features, giving " +"enough of an explanation to start you programming, but many details have " +"been simplified or ignored. Where should you go to get a more complete " +"picture?" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:398 +msgid "" +"https://docs.python.org/dev/howto/descriptor.html is a lengthy tutorial " +"introduction to the descriptor features, written by Guido van Rossum. If my " +"description has whetted your appetite, go read this tutorial next, because " +"it goes into much more detail about the new features while still remaining " +"quite easy to read." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:403 +msgid "" +"Next, there are two relevant PEPs, :pep:`252` and :pep:`253`. :pep:`252` is " +"titled \"Making Types Look More Like Classes\", and covers the descriptor " +"API. :pep:`253` is titled \"Subtyping Built-in Types\", and describes the " +"changes to type objects that make it possible to subtype built-in objects. :" +"pep:`253` is the more complicated PEP of the two, and at a few points the " +"necessary explanations of types and meta-types may cause your head to " +"explode. Both PEPs were written and implemented by Guido van Rossum, with " +"substantial assistance from the rest of the Zope Corp. team." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:412 +msgid "" +"Finally, there's the ultimate authority: the source code. Most of the " +"machinery for the type handling is in :file:`Objects/typeobject.c`, but you " +"should only resort to it after all other avenues have been exhausted, " +"including posting a question to python-list or python-dev." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:421 +msgid "PEP 234: Iterators" +msgstr "PEP 234 : Itérateurs" + +#: ../Doc/whatsnew/2.2.rst:423 +msgid "" +"Another significant addition to 2.2 is an iteration interface at both the C " +"and Python levels. Objects can define how they can be looped over by " +"callers." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:426 +msgid "" +"In Python versions up to 2.1, the usual way to make ``for item in obj`` work " +"is to define a :meth:`__getitem__` method that looks something like this::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:432 +msgid "" +":meth:`__getitem__` is more properly used to define an indexing operation on " +"an object so that you can write ``obj[5]`` to retrieve the sixth element. " +"It's a bit misleading when you're using this only to support :keyword:`for` " +"loops. Consider some file-like object that wants to be looped over; the " +"*index* parameter is essentially meaningless, as the class probably assumes " +"that a series of :meth:`__getitem__` calls will be made with *index* " +"incrementing by one each time. In other words, the presence of the :meth:" +"`__getitem__` method doesn't mean that using ``file[5]`` to randomly access " +"the sixth element will work, though it really should." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:442 +msgid "" +"In Python 2.2, iteration can be implemented separately, and :meth:" +"`__getitem__` methods can be limited to classes that really do support " +"random access. The basic idea of iterators is simple. A new built-in " +"function, ``iter(obj)`` or ``iter(C, sentinel)``, is used to get an " +"iterator. ``iter(obj)`` returns an iterator for the object *obj*, while " +"``iter(C, sentinel)`` returns an iterator that will invoke the callable " +"object *C* until it returns *sentinel* to signal that the iterator is done." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:450 +msgid "" +"Python classes can define an :meth:`__iter__` method, which should create " +"and return a new iterator for the object; if the object is its own iterator, " +"this method can just return ``self``. In particular, iterators will usually " +"be their own iterators. Extension types implemented in C can implement a :c:" +"member:`~PyTypeObject.tp_iter` function in order to return an iterator, and " +"extension types that want to behave as iterators can define a :c:member:" +"`~PyTypeObject.tp_iternext` function." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:457 +msgid "" +"So, after all this, what do iterators actually do? They have one required " +"method, :meth:`next`, which takes no arguments and returns the next value. " +"When there are no more values to be returned, calling :meth:`next` should " +"raise the :exc:`StopIteration` exception. ::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:478 +msgid "" +"In 2.2, Python's :keyword:`for` statement no longer expects a sequence; it " +"expects something for which :func:`iter` will return an iterator. For " +"backward compatibility and convenience, an iterator is automatically " +"constructed for sequences that don't implement :meth:`__iter__` or a :c:" +"member:`~PyTypeObject.tp_iter` slot, so ``for i in [1,2,3]`` will still " +"work. Wherever the Python interpreter loops over a sequence, it's been " +"changed to use the iterator protocol. This means you can do things like " +"this::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:492 +msgid "" +"Iterator support has been added to some of Python's basic types. Calling :" +"func:`iter` on a dictionary will return an iterator which loops over its " +"keys::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:512 +msgid "" +"That's just the default behaviour. If you want to iterate over keys, " +"values, or key/value pairs, you can explicitly call the :meth:`iterkeys`, :" +"meth:`itervalues`, or :meth:`iteritems` methods to get an appropriate " +"iterator. In a minor related change, the :keyword:`in` operator now works on " +"dictionaries, so ``key in dict`` is now equivalent to ``dict.has_key(key)``." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:518 +msgid "" +"Files also provide an iterator, which calls the :meth:`readline` method " +"until there are no more lines in the file. This means you can now read each " +"line of a file using code like this::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:526 +msgid "" +"Note that you can only go forward in an iterator; there's no way to get the " +"previous element, reset the iterator, or make a copy of it. An iterator " +"object could provide such additional capabilities, but the iterator protocol " +"only requires a :meth:`next` method." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:535 +msgid ":pep:`234` - Iterators" +msgstr ":pep:`234` -- Itérateurs" + +#: ../Doc/whatsnew/2.2.rst:535 +msgid "" +"Written by Ka-Ping Yee and GvR; implemented by the Python Labs crew, mostly " +"by GvR and Tim Peters." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:542 +msgid "PEP 255: Simple Generators" +msgstr "PEP 255 : Générateurs simples" + +#: ../Doc/whatsnew/2.2.rst:544 +msgid "" +"Generators are another new feature, one that interacts with the introduction " +"of iterators." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:547 +msgid "" +"You're doubtless familiar with how function calls work in Python or C. When " +"you call a function, it gets a private namespace where its local variables " +"are created. When the function reaches a :keyword:`return` statement, the " +"local variables are destroyed and the resulting value is returned to the " +"caller. A later call to the same function will get a fresh new set of local " +"variables. But, what if the local variables weren't thrown away on exiting a " +"function? What if you could later resume the function where it left off? " +"This is what generators provide; they can be thought of as resumable " +"functions." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:556 +msgid "Here's the simplest example of a generator function::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:562 +msgid "" +"A new keyword, :keyword:`yield`, was introduced for generators. Any " +"function containing a :keyword:`!yield` statement is a generator function; " +"this is detected by Python's bytecode compiler which compiles the function " +"specially as a result. Because a new keyword was introduced, generators " +"must be explicitly enabled in a module by including a ``from __future__ " +"import generators`` statement near the top of the module's source code. In " +"Python 2.3 this statement will become unnecessary." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:570 +msgid "" +"When you call a generator function, it doesn't return a single value; " +"instead it returns a generator object that supports the iterator protocol. " +"On executing the :keyword:`yield` statement, the generator outputs the value " +"of ``i``, similar to a :keyword:`return` statement. The big difference " +"between :keyword:`!yield` and a :keyword:`!return` statement is that on " +"reaching a :keyword:`!yield` the generator's state of execution is suspended " +"and local variables are preserved. On the next call to the generator's " +"``next()`` method, the function will resume executing immediately after the :" +"keyword:`!yield` statement. (For complicated reasons, the :keyword:`!yield` " +"statement isn't allowed inside the :keyword:`!try` block of a :keyword:" +"`try`...\\ :keyword:`finally` statement; read :pep:`255` for a full " +"explanation of the interaction between :keyword:`!yield` and exceptions.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:583 +msgid "Here's a sample usage of the :func:`generate_ints` generator::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:600 +msgid "" +"You could equally write ``for i in generate_ints(5)``, or ``a,b,c = " +"generate_ints(3)``." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:603 +msgid "" +"Inside a generator function, the :keyword:`return` statement can only be " +"used without a value, and signals the end of the procession of values; " +"afterwards the generator cannot return any further values. :keyword:`!" +"return` with a value, such as ``return 5``, is a syntax error inside a " +"generator function. The end of the generator's results can also be " +"indicated by raising :exc:`StopIteration` manually, or by just letting the " +"flow of execution fall off the bottom of the function." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:611 +msgid "" +"You could achieve the effect of generators manually by writing your own " +"class and storing all the local variables of the generator as instance " +"variables. For example, returning a list of integers could be done by " +"setting ``self.count`` to 0, and having the :meth:`next` method increment " +"``self.count`` and return it. However, for a moderately complicated " +"generator, writing a corresponding class would be much messier. :file:`Lib/" +"test/test_generators.py` contains a number of more interesting examples. " +"The simplest one implements an in-order traversal of a tree using generators " +"recursively. ::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:629 +msgid "" +"Two other examples in :file:`Lib/test/test_generators.py` produce solutions " +"for the N-Queens problem (placing $N$ queens on an $NxN$ chess board so that " +"no queen threatens another) and the Knight's Tour (a route that takes a " +"knight to every square of an $NxN$ chessboard without visiting any square " +"twice)." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:634 +msgid "" +"The idea of generators comes from other programming languages, especially " +"Icon (https://www.cs.arizona.edu/icon/), where the idea of generators is " +"central. In Icon, every expression and function call behaves like a " +"generator. One example from \"An Overview of the Icon Programming Language" +"\" at https://www.cs.arizona.edu/icon/docs/ipd266.htm gives an idea of what " +"this looks like::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:644 +msgid "" +"In Icon the :func:`find` function returns the indexes at which the substring " +"\"or\" is found: 3, 23, 33. In the :keyword:`if` statement, ``i`` is first " +"assigned a value of 3, but 3 is less than 5, so the comparison fails, and " +"Icon retries it with the second value of 23. 23 is greater than 5, so the " +"comparison now succeeds, and the code prints the value 23 to the screen." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:650 +msgid "" +"Python doesn't go nearly as far as Icon in adopting generators as a central " +"concept. Generators are considered a new part of the core Python language, " +"but learning or using them isn't compulsory; if they don't solve any " +"problems that you have, feel free to ignore them. One novel feature of " +"Python's interface as compared to Icon's is that a generator's state is " +"represented as a concrete object (the iterator) that can be passed around to " +"other functions or stored in a data structure." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:662 +msgid ":pep:`255` - Simple Generators" +msgstr ":pep:`255`: Générateurs simples" + +#: ../Doc/whatsnew/2.2.rst:662 +msgid "" +"Written by Neil Schemenauer, Tim Peters, Magnus Lie Hetland. Implemented " +"mostly by Neil Schemenauer and Tim Peters, with other fixes from the Python " +"Labs crew." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:669 +msgid "PEP 237: Unifying Long Integers and Integers" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:671 +msgid "" +"In recent versions, the distinction between regular integers, which are 32-" +"bit values on most machines, and long integers, which can be of arbitrary " +"size, was becoming an annoyance. For example, on platforms that support " +"files larger than ``2**32`` bytes, the :meth:`tell` method of file objects " +"has to return a long integer. However, there were various bits of Python " +"that expected plain integers and would raise an error if a long integer was " +"provided instead. For example, in Python 1.5, only regular integers could " +"be used as a slice index, and ``'abc'[1L:]`` would raise a :exc:`TypeError` " +"exception with the message 'slice index must be int'." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:681 +msgid "" +"Python 2.2 will shift values from short to long integers as required. The " +"'L' suffix is no longer needed to indicate a long integer literal, as now " +"the compiler will choose the appropriate type. (Using the 'L' suffix will " +"be discouraged in future 2.x versions of Python, triggering a warning in " +"Python 2.4, and probably dropped in Python 3.0.) Many operations that used " +"to raise an :exc:`OverflowError` will now return a long integer as their " +"result. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:694 +msgid "" +"In most cases, integers and long integers will now be treated identically. " +"You can still distinguish them with the :func:`type` built-in function, but " +"that's rarely needed." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:702 +msgid ":pep:`237` - Unifying Long Integers and Integers" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:702 +msgid "" +"Written by Moshe Zadka and Guido van Rossum. Implemented mostly by Guido " +"van Rossum." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:709 +msgid "PEP 238: Changing the Division Operator" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:711 +msgid "" +"The most controversial change in Python 2.2 heralds the start of an effort " +"to fix an old design flaw that's been in Python from the beginning. " +"Currently Python's division operator, ``/``, behaves like C's division " +"operator when presented with two integer arguments: it returns an integer " +"result that's truncated down when there would be a fractional part. For " +"example, ``3/2`` is 1, not 1.5, and ``(-1)/2`` is -1, not -0.5. This means " +"that the results of division can vary unexpectedly depending on the type of " +"the two operands and because Python is dynamically typed, it can be " +"difficult to determine the possible types of the operands." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:721 +msgid "" +"(The controversy is over whether this is *really* a design flaw, and whether " +"it's worth breaking existing code to fix this. It's caused endless " +"discussions on python-dev, and in July 2001 erupted into a storm of acidly " +"sarcastic postings on :newsgroup:`comp.lang.python`. I won't argue for " +"either side here and will stick to describing what's implemented in 2.2. " +"Read :pep:`238` for a summary of arguments and counter-arguments.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:728 +msgid "" +"Because this change might break code, it's being introduced very gradually. " +"Python 2.2 begins the transition, but the switch won't be complete until " +"Python 3.0." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:732 +msgid "" +"First, I'll borrow some terminology from :pep:`238`. \"True division\" is " +"the division that most non-programmers are familiar with: 3/2 is 1.5, 1/4 is " +"0.25, and so forth. \"Floor division\" is what Python's ``/`` operator " +"currently does when given integer operands; the result is the floor of the " +"value returned by true division. \"Classic division\" is the current mixed " +"behaviour of ``/``; it returns the result of floor division when the " +"operands are integers, and returns the result of true division when one of " +"the operands is a floating-point number." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:740 +msgid "Here are the changes 2.2 introduces:" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:742 +msgid "" +"A new operator, ``//``, is the floor division operator. (Yes, we know it " +"looks like C++'s comment symbol.) ``//`` *always* performs floor division " +"no matter what the types of its operands are, so ``1 // 2`` is 0 and " +"``1.0 // 2.0`` is also 0.0." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:747 +msgid "" +"``//`` is always available in Python 2.2; you don't need to enable it using " +"a ``__future__`` statement." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:750 +msgid "" +"By including a ``from __future__ import division`` in a module, the ``/`` " +"operator will be changed to return the result of true division, so ``1/2`` " +"is 0.5. Without the ``__future__`` statement, ``/`` still means classic " +"division. The default meaning of ``/`` will not change until Python 3.0." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:755 +msgid "" +"Classes can define methods called :meth:`__truediv__` and :meth:" +"`__floordiv__` to overload the two division operators. At the C level, " +"there are also slots in the :c:type:`PyNumberMethods` structure so extension " +"types can define the two operators." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:760 +msgid "" +"Python 2.2 supports some command-line arguments for testing whether code " +"will work with the changed division semantics. Running python with :option:" +"`!-Q warn` will cause a warning to be issued whenever division is applied to " +"two integers. You can use this to find code that's affected by the change " +"and fix it. By default, Python 2.2 will simply perform classic division " +"without a warning; the warning will be turned on by default in Python 2.3." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:770 +msgid ":pep:`238` - Changing the Division Operator" +msgstr ":pep:`238` - Changing the Division Operator" + +#: ../Doc/whatsnew/2.2.rst:771 +msgid "" +"Written by Moshe Zadka and Guido van Rossum. Implemented by Guido van " +"Rossum.." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:777 +msgid "Unicode Changes" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:779 +msgid "" +"Python's Unicode support has been enhanced a bit in 2.2. Unicode strings " +"are usually stored as UCS-2, as 16-bit unsigned integers. Python 2.2 can " +"also be compiled to use UCS-4, 32-bit unsigned integers, as its internal " +"encoding by supplying :option:`!--enable-unicode=ucs4` to the configure " +"script. (It's also possible to specify :option:`!--disable-unicode` to " +"completely disable Unicode support.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:786 +msgid "" +"When built to use UCS-4 (a \"wide Python\"), the interpreter can natively " +"handle Unicode characters from U+000000 to U+110000, so the range of legal " +"values for the :func:`unichr` function is expanded accordingly. Using an " +"interpreter compiled to use UCS-2 (a \"narrow Python\"), values greater than " +"65535 will still cause :func:`unichr` to raise a :exc:`ValueError` " +"exception. This is all described in :pep:`261`, \"Support for 'wide' Unicode " +"characters\"; consult it for further details." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:794 +msgid "" +"Another change is simpler to explain. Since their introduction, Unicode " +"strings have supported an :meth:`encode` method to convert the string to a " +"selected encoding such as UTF-8 or Latin-1. A symmetric " +"``decode([*encoding*])`` method has been added to 8-bit strings (though not " +"to Unicode strings) in 2.2. :meth:`decode` assumes that the string is in the " +"specified encoding and decodes it, returning whatever is returned by the " +"codec." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:801 +msgid "" +"Using this new feature, codecs have been added for tasks not directly " +"related to Unicode. For example, codecs have been added for uu-encoding, " +"MIME's base64 encoding, and compression with the :mod:`zlib` module::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:822 +msgid "" +"To convert a class instance to Unicode, a :meth:`__unicode__` method can be " +"defined by a class, analogous to :meth:`__str__`." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:825 +msgid "" +":meth:`encode`, :meth:`decode`, and :meth:`__unicode__` were implemented by " +"Marc-André Lemburg. The changes to support using UCS-4 internally were " +"implemented by Fredrik Lundh and Martin von Löwis." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:832 +msgid ":pep:`261` - Support for 'wide' Unicode characters" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:833 +msgid "Written by Paul Prescod." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:839 +msgid "PEP 227: Nested Scopes" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:841 +msgid "" +"In Python 2.1, statically nested scopes were added as an optional feature, " +"to be enabled by a ``from __future__ import nested_scopes`` directive. In " +"2.2 nested scopes no longer need to be specially enabled, and are now always " +"present. The rest of this section is a copy of the description of nested " +"scopes from my \"What's New in Python 2.1\" document; if you read it when " +"2.1 came out, you can skip the rest of this section." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:848 +msgid "" +"The largest change introduced in Python 2.1, and made complete in 2.2, is to " +"Python's scoping rules. In Python 2.0, at any given time there are at most " +"three namespaces used to look up variable names: local, module-level, and " +"the built-in namespace. This often surprised people because it didn't match " +"their intuitive expectations. For example, a nested recursive function " +"definition doesn't work::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:862 +msgid "" +"The function :func:`g` will always raise a :exc:`NameError` exception, " +"because the binding of the name ``g`` isn't in either its local namespace or " +"in the module-level namespace. This isn't much of a problem in practice " +"(how often do you recursively define interior functions like this?), but " +"this also made using the :keyword:`lambda` expression clumsier, and this was " +"a problem in practice. In code which uses :keyword:`!lambda` you can often " +"find local variables being copied by passing them as the default values of " +"arguments. ::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:876 +msgid "" +"The readability of Python code written in a strongly functional style " +"suffers greatly as a result." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:879 +msgid "" +"The most significant change to Python 2.2 is that static scoping has been " +"added to the language to fix this problem. As a first effect, the " +"``name=name`` default argument is now unnecessary in the above example. Put " +"simply, when a given variable name is not assigned a value within a function " +"(by an assignment, or the :keyword:`def`, :keyword:`class`, or :keyword:" +"`import` statements), references to the variable will be looked up in the " +"local namespace of the enclosing scope. A more detailed explanation of the " +"rules, and a dissection of the implementation, can be found in the PEP." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:888 +msgid "" +"This change may cause some compatibility problems for code where the same " +"variable name is used both at the module level and as a local variable " +"within a function that contains further function definitions. This seems " +"rather unlikely though, since such code would have been pretty confusing to " +"read in the first place." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:894 +msgid "" +"One side effect of the change is that the ``from module import *`` and " +"``exec`` statements have been made illegal inside a function scope under " +"certain conditions. The Python reference manual has said all along that " +"``from module import *`` is only legal at the top level of a module, but the " +"CPython interpreter has never enforced this before. As part of the " +"implementation of nested scopes, the compiler which turns Python source into " +"bytecodes has to generate different code to access variables in a containing " +"scope. ``from module import *`` and ``exec`` make it impossible for the " +"compiler to figure this out, because they add names to the local namespace " +"that are unknowable at compile time. Therefore, if a function contains " +"function definitions or :keyword:`lambda` expressions with free variables, " +"the compiler will flag this by raising a :exc:`SyntaxError` exception." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:907 +msgid "To make the preceding explanation a bit clearer, here's an example::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:916 +msgid "" +"Line 4 containing the ``exec`` statement is a syntax error, since ``exec`` " +"would define a new local variable named ``x`` whose value should be accessed " +"by :func:`g`." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:920 +msgid "" +"This shouldn't be much of a limitation, since ``exec`` is rarely used in " +"most Python code (and when it is used, it's often a sign of a poor design " +"anyway)." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:927 +msgid ":pep:`227` - Statically Nested Scopes" +msgstr ":pep:`227` - Statically Nested Scopes" + +#: ../Doc/whatsnew/2.2.rst:928 +msgid "Written and implemented by Jeremy Hylton." +msgstr "Écrit et implémenté par Jeremy Hylton." + +#: ../Doc/whatsnew/2.2.rst:934 +msgid "New and Improved Modules" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:936 +msgid "" +"The :mod:`xmlrpclib` module was contributed to the standard library by " +"Fredrik Lundh, providing support for writing XML-RPC clients. XML-RPC is a " +"simple remote procedure call protocol built on top of HTTP and XML. For " +"example, the following snippet retrieves a list of RSS channels from the " +"O'Reilly Network, and then lists the recent headlines for one channel::" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:959 +msgid "" +"The :mod:`SimpleXMLRPCServer` module makes it easy to create straightforward " +"XML-RPC servers. See http://xmlrpc.scripting.com/ for more information " +"about XML-RPC." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:962 +msgid "" +"The new :mod:`hmac` module implements the HMAC algorithm described by :rfc:" +"`2104`. (Contributed by Gerhard Häring.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:965 +msgid "" +"Several functions that originally returned lengthy tuples now return pseudo-" +"sequences that still behave like tuples but also have mnemonic attributes " +"such as memberst_mtime or :attr:`tm_year`. The enhanced functions include :" +"func:`stat`, :func:`fstat`, :func:`statvfs`, and :func:`fstatvfs` in the :" +"mod:`os` module, and :func:`localtime`, :func:`gmtime`, and :func:`strptime` " +"in the :mod:`time` module." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:972 +msgid "" +"For example, to obtain a file's size using the old tuples, you'd end up " +"writing something like ``file_size = os.stat(filename)[stat.ST_SIZE]``, but " +"now this can be written more clearly as ``file_size = os.stat(filename)." +"st_size``." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:976 +msgid "The original patch for this feature was contributed by Nick Mathewson." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:978 +msgid "" +"The Python profiler has been extensively reworked and various errors in its " +"output have been corrected. (Contributed by Fred L. Drake, Jr. and Tim " +"Peters.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:981 +msgid "" +"The :mod:`socket` module can be compiled to support IPv6; specify the :" +"option:`!--enable-ipv6` option to Python's configure script. (Contributed " +"by Jun-ichiro \"itojun\" Hagino.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:985 +msgid "" +"Two new format characters were added to the :mod:`struct` module for 64-bit " +"integers on platforms that support the C :c:type:`long long` type. ``q`` is " +"for a signed 64-bit integer, and ``Q`` is for an unsigned one. The value is " +"returned in Python's long integer type. (Contributed by Tim Peters.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:990 +msgid "" +"In the interpreter's interactive mode, there's a new built-in function :func:" +"`help` that uses the :mod:`pydoc` module introduced in Python 2.1 to provide " +"interactive help. ``help(object)`` displays any available help text about " +"*object*. :func:`help` with no argument puts you in an online help utility, " +"where you can enter the names of functions, classes, or modules to read " +"their help text. (Contributed by Guido van Rossum, using Ka-Ping Yee's :mod:" +"`pydoc` module.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:998 +msgid "" +"Various bugfixes and performance improvements have been made to the SRE " +"engine underlying the :mod:`re` module. For example, the :func:`re.sub` " +"and :func:`re.split` functions have been rewritten in C. Another " +"contributed patch speeds up certain Unicode character ranges by a factor of " +"two, and a new :meth:`finditer` method that returns an iterator over all " +"the non-overlapping matches in a given string. (SRE is maintained by " +"Fredrik Lundh. The BIGCHARSET patch was contributed by Martin von Löwis.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1006 +msgid "" +"The :mod:`smtplib` module now supports :rfc:`2487`, \"Secure SMTP over TLS" +"\", so it's now possible to encrypt the SMTP traffic between a Python " +"program and the mail transport agent being handed a message. :mod:`smtplib` " +"also supports SMTP authentication. (Contributed by Gerhard Häring.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1011 +msgid "" +"The :mod:`imaplib` module, maintained by Piers Lauder, has support for " +"several new extensions: the NAMESPACE extension defined in :rfc:`2342`, " +"SORT, GETACL and SETACL. (Contributed by Anthony Baxter and Michel " +"Pelletier.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1015 +msgid "" +"The :mod:`rfc822` module's parsing of email addresses is now compliant with :" +"rfc:`2822`, an update to :rfc:`822`. (The module's name is *not* going to " +"be changed to ``rfc2822``.) A new package, :mod:`email`, has also been " +"added for parsing and generating e-mail messages. (Contributed by Barry " +"Warsaw, and arising out of his work on Mailman.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1021 +msgid "" +"The :mod:`difflib` module now contains a new :class:`Differ` class for " +"producing human-readable lists of changes (a \"delta\") between two " +"sequences of lines of text. There are also two generator functions, :func:" +"`ndiff` and :func:`restore`, which respectively return a delta from two " +"sequences, or one of the original sequences from a delta. (Grunt work " +"contributed by David Goodger, from ndiff.py code by Tim Peters who then did " +"the generatorization.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1028 +msgid "" +"New constants :const:`ascii_letters`, :const:`ascii_lowercase`, and :const:" +"`ascii_uppercase` were added to the :mod:`string` module. There were " +"several modules in the standard library that used :const:`string.letters` to " +"mean the ranges A-Za-z, but that assumption is incorrect when locales are in " +"use, because :const:`string.letters` varies depending on the set of legal " +"characters defined by the current locale. The buggy modules have all been " +"fixed to use :const:`ascii_letters` instead. (Reported by an unknown person; " +"fixed by Fred L. Drake, Jr.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1037 +msgid "" +"The :mod:`mimetypes` module now makes it easier to use alternative MIME-type " +"databases by the addition of a :class:`MimeTypes` class, which takes a list " +"of filenames to be parsed. (Contributed by Fred L. Drake, Jr.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1041 +msgid "" +"A :class:`Timer` class was added to the :mod:`threading` module that allows " +"scheduling an activity to happen at some future time. (Contributed by " +"Itamar Shtull-Trauring.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1049 +msgid "Interpreter Changes and Fixes" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1051 +msgid "" +"Some of the changes only affect people who deal with the Python interpreter " +"at the C level because they're writing Python extension modules, embedding " +"the interpreter, or just hacking on the interpreter itself. If you only " +"write Python code, none of the changes described here will affect you very " +"much." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1056 +msgid "" +"Profiling and tracing functions can now be implemented in C, which can " +"operate at much higher speeds than Python-based functions and should reduce " +"the overhead of profiling and tracing. This will be of interest to authors " +"of development environments for Python. Two new C functions were added to " +"Python's API, :c:func:`PyEval_SetProfile` and :c:func:`PyEval_SetTrace`. The " +"existing :func:`sys.setprofile` and :func:`sys.settrace` functions still " +"exist, and have simply been changed to use the new C-level interface. " +"(Contributed by Fred L. Drake, Jr.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1065 +msgid "" +"Another low-level API, primarily of interest to implementors of Python " +"debuggers and development tools, was added. :c:func:" +"`PyInterpreterState_Head` and :c:func:`PyInterpreterState_Next` let a caller " +"walk through all the existing interpreter objects; :c:func:" +"`PyInterpreterState_ThreadHead` and :c:func:`PyThreadState_Next` allow " +"looping over all the thread states for a given interpreter. (Contributed by " +"David Beazley.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1072 +msgid "" +"The C-level interface to the garbage collector has been changed to make it " +"easier to write extension types that support garbage collection and to debug " +"misuses of the functions. Various functions have slightly different " +"semantics, so a bunch of functions had to be renamed. Extensions that use " +"the old API will still compile but will *not* participate in garbage " +"collection, so updating them for 2.2 should be considered fairly high " +"priority." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1079 +msgid "" +"To upgrade an extension module to the new API, perform the following steps:" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1081 +msgid "Rename :c:func:`Py_TPFLAGS_GC` to :c:func:`PyTPFLAGS_HAVE_GC`." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1084 +msgid "" +"Use :c:func:`PyObject_GC_New` or :c:func:`PyObject_GC_NewVar` to allocate" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1084 +msgid "objects, and :c:func:`PyObject_GC_Del` to deallocate them." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1087 +msgid "Rename :c:func:`PyObject_GC_Init` to :c:func:`PyObject_GC_Track` and" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1087 +msgid ":c:func:`PyObject_GC_Fini` to :c:func:`PyObject_GC_UnTrack`." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1089 +msgid "Remove :c:func:`PyGC_HEAD_SIZE` from object size calculations." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1091 +msgid "" +"Remove calls to :c:func:`PyObject_AS_GC` and :c:func:`PyObject_FROM_GC`." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1093 +msgid "" +"A new ``et`` format sequence was added to :c:func:`PyArg_ParseTuple`; ``et`` " +"takes both a parameter and an encoding name, and converts the parameter to " +"the given encoding if the parameter turns out to be a Unicode string, or " +"leaves it alone if it's an 8-bit string, assuming it to already be in the " +"desired encoding. This differs from the ``es`` format character, which " +"assumes that 8-bit strings are in Python's default ASCII encoding and " +"converts them to the specified new encoding. (Contributed by M.-A. Lemburg, " +"and used for the MBCS support on Windows described in the following section.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1102 +msgid "" +"A different argument parsing function, :c:func:`PyArg_UnpackTuple`, has been " +"added that's simpler and presumably faster. Instead of specifying a format " +"string, the caller simply gives the minimum and maximum number of arguments " +"expected, and a set of pointers to :c:type:`PyObject\\*` variables that will " +"be filled in with argument values." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1108 +msgid "" +"Two new flags :const:`METH_NOARGS` and :const:`METH_O` are available in " +"method definition tables to simplify implementation of methods with no " +"arguments or a single untyped argument. Calling such methods is more " +"efficient than calling a corresponding method that uses :const:" +"`METH_VARARGS`. Also, the old :const:`METH_OLDARGS` style of writing C " +"methods is now officially deprecated." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1114 +msgid "" +"Two new wrapper functions, :c:func:`PyOS_snprintf` and :c:func:" +"`PyOS_vsnprintf` were added to provide cross-platform implementations for " +"the relatively new :c:func:`snprintf` and :c:func:`vsnprintf` C lib APIs. In " +"contrast to the standard :c:func:`sprintf` and :c:func:`vsprintf` functions, " +"the Python versions check the bounds of the buffer used to protect against " +"buffer overruns. (Contributed by M.-A. Lemburg.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1121 +msgid "" +"The :c:func:`_PyTuple_Resize` function has lost an unused parameter, so now " +"it takes 2 parameters instead of 3. The third argument was never used, and " +"can simply be discarded when porting code from earlier versions to Python " +"2.2." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1129 +msgid "Other Changes and Fixes" +msgstr "Autres changements et corrections" + +#: ../Doc/whatsnew/2.2.rst:1131 +msgid "" +"As usual there were a bunch of other improvements and bugfixes scattered " +"throughout the source tree. A search through the CVS change logs finds " +"there were 527 patches applied and 683 bugs fixed between Python 2.1 and " +"2.2; 2.2.1 applied 139 patches and fixed 143 bugs; 2.2.2 applied 106 patches " +"and fixed 82 bugs. These figures are likely to be underestimates." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1137 +msgid "Some of the more notable changes are:" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1139 +msgid "" +"The code for the MacOS port for Python, maintained by Jack Jansen, is now " +"kept in the main Python CVS tree, and many changes have been made to support " +"MacOS X." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1142 +msgid "" +"The most significant change is the ability to build Python as a framework, " +"enabled by supplying the :option:`!--enable-framework` option to the " +"configure script when compiling Python. According to Jack Jansen, \"This " +"installs a self-contained Python installation plus the OS X framework \"glue" +"\" into :file:`/Library/Frameworks/Python.framework` (or another location of " +"choice). For now there is little immediate added benefit to this (actually, " +"there is the disadvantage that you have to change your PATH to be able to " +"find Python), but it is the basis for creating a full-blown Python " +"application, porting the MacPython IDE, possibly using Python as a standard " +"OSA scripting language and much more.\"" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1153 +msgid "" +"Most of the MacPython toolbox modules, which interface to MacOS APIs such as " +"windowing, QuickTime, scripting, etc. have been ported to OS X, but they've " +"been left commented out in :file:`setup.py`. People who want to experiment " +"with these modules can uncomment them manually." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1176 +msgid "" +"Keyword arguments passed to built-in functions that don't take them now " +"cause a :exc:`TypeError` exception to be raised, with the message " +"\"*function* takes no keyword arguments\"." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1180 +msgid "" +"Weak references, added in Python 2.1 as an extension module, are now part of " +"the core because they're used in the implementation of new-style classes. " +"The :exc:`ReferenceError` exception has therefore moved from the :mod:" +"`weakref` module to become a built-in exception." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1185 +msgid "" +"A new script, :file:`Tools/scripts/cleanfuture.py` by Tim Peters, " +"automatically removes obsolete ``__future__`` statements from Python source " +"code." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1189 +msgid "" +"An additional *flags* argument has been added to the built-in function :func:" +"`compile`, so the behaviour of ``__future__`` statements can now be " +"correctly observed in simulated shells, such as those presented by IDLE and " +"other development environments. This is described in :pep:`264`. " +"(Contributed by Michael Hudson.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1195 +msgid "" +"The new license introduced with Python 1.6 wasn't GPL-compatible. This is " +"fixed by some minor textual changes to the 2.2 license, so it's now legal to " +"embed Python inside a GPLed program again. Note that Python itself is not " +"GPLed, but instead is under a license that's essentially equivalent to the " +"BSD license, same as it always was. The license changes were also applied " +"to the Python 2.0.1 and 2.1.1 releases." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1202 +msgid "" +"When presented with a Unicode filename on Windows, Python will now convert " +"it to an MBCS encoded string, as used by the Microsoft file APIs. As MBCS " +"is explicitly used by the file APIs, Python's choice of ASCII as the default " +"encoding turns out to be an annoyance. On Unix, the locale's character set " +"is used if ``locale.nl_langinfo(CODESET)`` is available. (Windows support " +"was contributed by Mark Hammond with assistance from Marc-André Lemburg. " +"Unix support was added by Martin von Löwis.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1210 +msgid "" +"Large file support is now enabled on Windows. (Contributed by Tim Peters.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1212 +msgid "" +"The :file:`Tools/scripts/ftpmirror.py` script now parses a :file:`.netrc` " +"file, if you have one. (Contributed by Mike Romberg.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1215 +msgid "" +"Some features of the object returned by the :func:`xrange` function are now " +"deprecated, and trigger warnings when they're accessed; they'll disappear in " +"Python 2.3. :class:`xrange` objects tried to pretend they were full sequence " +"types by supporting slicing, sequence multiplication, and the :keyword:`in` " +"operator, but these features were rarely used and therefore buggy. The :" +"meth:`tolist` method and the :attr:`start`, :attr:`stop`, and :attr:`step` " +"attributes are also being deprecated. At the C level, the fourth argument " +"to the :c:func:`PyRange_New` function, ``repeat``, has also been deprecated." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1224 +msgid "" +"There were a bunch of patches to the dictionary implementation, mostly to " +"fix potential core dumps if a dictionary contains objects that sneakily " +"changed their hash value, or mutated the dictionary they were contained in. " +"For a while python-dev fell into a gentle rhythm of Michael Hudson finding a " +"case that dumped core, Tim Peters fixing the bug, Michael finding another " +"case, and round and round it went." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1231 +msgid "" +"On Windows, Python can now be compiled with Borland C thanks to a number of " +"patches contributed by Stephen Hansen, though the result isn't fully " +"functional yet. (But this *is* progress...)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1235 +msgid "" +"Another Windows enhancement: Wise Solutions generously offered PythonLabs " +"use of their InstallerMaster 8.1 system. Earlier PythonLabs Windows " +"installers used Wise 5.0a, which was beginning to show its age. (Packaged " +"up by Tim Peters.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1239 +msgid "" +"Files ending in ``.pyw`` can now be imported on Windows. ``.pyw`` is a " +"Windows-only thing, used to indicate that a script needs to be run using " +"PYTHONW.EXE instead of PYTHON.EXE in order to prevent a DOS console from " +"popping up to display the output. This patch makes it possible to import " +"such scripts, in case they're also usable as modules. (Implemented by David " +"Bolen.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1245 +msgid "" +"On platforms where Python uses the C :c:func:`dlopen` function to load " +"extension modules, it's now possible to set the flags used by :c:func:" +"`dlopen` using the :func:`sys.getdlopenflags` and :func:`sys.setdlopenflags` " +"functions. (Contributed by Bram Stolk.)" +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1250 +msgid "" +"The :func:`pow` built-in function no longer supports 3 arguments when " +"floating-point numbers are supplied. ``pow(x, y, z)`` returns ``(x**y) % " +"z``, but this is never useful for floating point numbers, and the final " +"result varies unpredictably depending on the platform. A call such as " +"``pow(2.0, 8.0, 7.0)`` will now raise a :exc:`TypeError` exception." +msgstr "" + +#: ../Doc/whatsnew/2.2.rst:1260 +msgid "Acknowledgements" +msgstr "Remerciements" + +#: ../Doc/whatsnew/2.2.rst:1262 +msgid "" +"The author would like to thank the following people for offering " +"suggestions, corrections and assistance with various drafts of this article: " +"Fred Bremmer, Keith Briggs, Andrew Dalke, Fred L. Drake, Jr., Carel " +"Fellinger, David Goodger, Mark Hammond, Stephen Hansen, Michael Hudson, Jack " +"Jansen, Marc-André Lemburg, Martin von Löwis, Fredrik Lundh, Michael McLay, " +"Nick Mathewson, Paul Moore, Gustavo Niemeyer, Don O'Donnell, Joonas " +"Paalasma, Tim Peters, Jens Quade, Tom Reinhardt, Neil Schemenauer, Guido van " +"Rossum, Greg Ward, Edward Welbourne." +msgstr "" diff --git a/whatsnew/2.3.po b/whatsnew/2.3.po new file mode 100644 index 000000000..a1d829797 --- /dev/null +++ b/whatsnew/2.3.po @@ -0,0 +1,2345 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2018-07-31 23:42+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/whatsnew/2.3.rst:3 +msgid "What's New in Python 2.3" +msgstr "Nouveautés de Python 2.3" + +#: ../Doc/whatsnew/2.3.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/whatsnew/2.3.rst:5 +msgid "A.M. Kuchling" +msgstr "A.M. Kuchling" + +#: ../Doc/whatsnew/2.3.rst:11 +msgid "" +"This article explains the new features in Python 2.3. Python 2.3 was " +"released on July 29, 2003." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:14 +msgid "" +"The main themes for Python 2.3 are polishing some of the features added in " +"2.2, adding various small but useful enhancements to the core language, and " +"expanding the standard library. The new object model introduced in the " +"previous version has benefited from 18 months of bugfixes and from " +"optimization efforts that have improved the performance of new-style " +"classes. A few new built-in functions have been added such as :func:`sum` " +"and :func:`enumerate`. The :keyword:`in` operator can now be used for " +"substring searches (e.g. ``\"ab\" in \"abc\"`` returns :const:`True`)." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:23 +msgid "" +"Some of the many new library features include Boolean, set, heap, and date/" +"time data types, the ability to import modules from ZIP-format archives, " +"metadata support for the long-awaited Python catalog, an updated version of " +"IDLE, and modules for logging messages, wrapping text, parsing CSV files, " +"processing command-line options, using BerkeleyDB databases... the list of " +"new and enhanced modules is lengthy." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:30 +msgid "" +"This article doesn't attempt to provide a complete specification of the new " +"features, but instead provides a convenient overview. For full details, you " +"should refer to the documentation for Python 2.3, such as the Python Library " +"Reference and the Python Reference Manual. If you want to understand the " +"complete implementation and design rationale, refer to the PEP for a " +"particular new feature." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:41 +msgid "PEP 218: A Standard Set Datatype" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:43 +msgid "" +"The new :mod:`sets` module contains an implementation of a set datatype. " +"The :class:`Set` class is for mutable sets, sets that can have members added " +"and removed. The :class:`ImmutableSet` class is for sets that can't be " +"modified, and instances of :class:`ImmutableSet` can therefore be used as " +"dictionary keys. Sets are built on top of dictionaries, so the elements " +"within a set must be hashable." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:50 +msgid "Here's a simple example::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:66 +msgid "" +"The union and intersection of sets can be computed with the :meth:`union` " +"and :meth:`intersection` methods; an alternative notation uses the bitwise " +"operators ``&`` and ``|``. Mutable sets also have in-place versions of these " +"methods, :meth:`union_update` and :meth:`intersection_update`. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:86 +msgid "" +"It's also possible to take the symmetric difference of two sets. This is " +"the set of all elements in the union that aren't in the intersection. " +"Another way of putting it is that the symmetric difference contains all " +"elements that are in exactly one set. Again, there's an alternative " +"notation (``^``), and an in-place version with the ungainly name :meth:" +"`symmetric_difference_update`. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:100 +msgid "" +"There are also :meth:`issubset` and :meth:`issuperset` methods for checking " +"whether one set is a subset or superset of another::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:117 +msgid ":pep:`218` - Adding a Built-In Set Object Type" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:117 +msgid "" +"PEP written by Greg V. Wilson. Implemented by Greg V. Wilson, Alex Martelli, " +"and GvR." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:126 +msgid "PEP 255: Simple Generators" +msgstr "PEP 255 : Générateurs simples" + +#: ../Doc/whatsnew/2.3.rst:128 +msgid "" +"In Python 2.2, generators were added as an optional feature, to be enabled " +"by a ``from __future__ import generators`` directive. In 2.3 generators no " +"longer need to be specially enabled, and are now always present; this means " +"that :keyword:`yield` is now always a keyword. The rest of this section is " +"a copy of the description of generators from the \"What's New in Python " +"2.2\" document; if you read it back when Python 2.2 came out, you can skip " +"the rest of this section." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:136 +msgid "" +"You're doubtless familiar with how function calls work in Python or C. When " +"you call a function, it gets a private namespace where its local variables " +"are created. When the function reaches a :keyword:`return` statement, the " +"local variables are destroyed and the resulting value is returned to the " +"caller. A later call to the same function will get a fresh new set of local " +"variables. But, what if the local variables weren't thrown away on exiting a " +"function? What if you could later resume the function where it left off? " +"This is what generators provide; they can be thought of as resumable " +"functions." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:145 +msgid "Here's the simplest example of a generator function::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:151 +msgid "" +"A new keyword, :keyword:`yield`, was introduced for generators. Any " +"function containing a :keyword:`!yield` statement is a generator function; " +"this is detected by Python's bytecode compiler which compiles the function " +"specially as a result." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:156 +msgid "" +"When you call a generator function, it doesn't return a single value; " +"instead it returns a generator object that supports the iterator protocol. " +"On executing the :keyword:`yield` statement, the generator outputs the value " +"of ``i``, similar to a :keyword:`return` statement. The big difference " +"between :keyword:`!yield` and a :keyword:`!return` statement is that on " +"reaching a :keyword:`!yield` the generator's state of execution is suspended " +"and local variables are preserved. On the next call to the generator's ``." +"next()`` method, the function will resume executing immediately after the :" +"keyword:`!yield` statement. (For complicated reasons, the :keyword:`!yield` " +"statement isn't allowed inside the :keyword:`try` block of a :keyword:`!" +"try`...\\ :keyword:`!finally` statement; read :pep:`255` for a full " +"explanation of the interaction between :keyword:`!yield` and exceptions.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:169 +msgid "Here's a sample usage of the :func:`generate_ints` generator::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:186 +msgid "" +"You could equally write ``for i in generate_ints(5)``, or ``a,b,c = " +"generate_ints(3)``." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:189 +msgid "" +"Inside a generator function, the :keyword:`return` statement can only be " +"used without a value, and signals the end of the procession of values; " +"afterwards the generator cannot return any further values. :keyword:`!" +"return` with a value, such as ``return 5``, is a syntax error inside a " +"generator function. The end of the generator's results can also be " +"indicated by raising :exc:`StopIteration` manually, or by just letting the " +"flow of execution fall off the bottom of the function." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:197 +msgid "" +"You could achieve the effect of generators manually by writing your own " +"class and storing all the local variables of the generator as instance " +"variables. For example, returning a list of integers could be done by " +"setting ``self.count`` to 0, and having the :meth:`next` method increment " +"``self.count`` and return it. However, for a moderately complicated " +"generator, writing a corresponding class would be much messier. :file:`Lib/" +"test/test_generators.py` contains a number of more interesting examples. " +"The simplest one implements an in-order traversal of a tree using generators " +"recursively. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:215 +msgid "" +"Two other examples in :file:`Lib/test/test_generators.py` produce solutions " +"for the N-Queens problem (placing $N$ queens on an $NxN$ chess board so that " +"no queen threatens another) and the Knight's Tour (a route that takes a " +"knight to every square of an $NxN$ chessboard without visiting any square " +"twice)." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:220 +msgid "" +"The idea of generators comes from other programming languages, especially " +"Icon (https://www.cs.arizona.edu/icon/), where the idea of generators is " +"central. In Icon, every expression and function call behaves like a " +"generator. One example from \"An Overview of the Icon Programming Language" +"\" at https://www.cs.arizona.edu/icon/docs/ipd266.htm gives an idea of what " +"this looks like::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:230 +msgid "" +"In Icon the :func:`find` function returns the indexes at which the substring " +"\"or\" is found: 3, 23, 33. In the :keyword:`if` statement, ``i`` is first " +"assigned a value of 3, but 3 is less than 5, so the comparison fails, and " +"Icon retries it with the second value of 23. 23 is greater than 5, so the " +"comparison now succeeds, and the code prints the value 23 to the screen." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:236 +msgid "" +"Python doesn't go nearly as far as Icon in adopting generators as a central " +"concept. Generators are considered part of the core Python language, but " +"learning or using them isn't compulsory; if they don't solve any problems " +"that you have, feel free to ignore them. One novel feature of Python's " +"interface as compared to Icon's is that a generator's state is represented " +"as a concrete object (the iterator) that can be passed around to other " +"functions or stored in a data structure." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:248 +msgid ":pep:`255` - Simple Generators" +msgstr ":pep:`255`: Générateurs simples" + +#: ../Doc/whatsnew/2.3.rst:248 +msgid "" +"Written by Neil Schemenauer, Tim Peters, Magnus Lie Hetland. Implemented " +"mostly by Neil Schemenauer and Tim Peters, with other fixes from the Python " +"Labs crew." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:257 +msgid "PEP 263: Source Code Encodings" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:259 +msgid "" +"Python source files can now be declared as being in different character set " +"encodings. Encodings are declared by including a specially formatted " +"comment in the first or second line of the source file. For example, a " +"UTF-8 file can be declared with::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:267 +msgid "" +"Without such an encoding declaration, the default encoding used is 7-bit " +"ASCII. Executing or importing modules that contain string literals with 8-" +"bit characters and have no encoding declaration will result in a :exc:" +"`DeprecationWarning` being signalled by Python 2.3; in 2.4 this will be a " +"syntax error." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:273 +msgid "" +"The encoding declaration only affects Unicode string literals, which will be " +"converted to Unicode using the specified encoding. Note that Python " +"identifiers are still restricted to ASCII characters, so you can't have " +"variable names that use characters outside of the usual alphanumerics." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:282 +msgid ":pep:`263` - Defining Python Source Code Encodings" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:282 +msgid "" +"Written by Marc-André Lemburg and Martin von Löwis; implemented by Suzuki " +"Hisao and Martin von Löwis." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:289 +msgid "PEP 273: Importing Modules from ZIP Archives" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:291 +msgid "" +"The new :mod:`zipimport` module adds support for importing modules from a " +"ZIP-format archive. You don't need to import the module explicitly; it will " +"be automatically imported if a ZIP archive's filename is added to ``sys." +"path``. For example:" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:314 +msgid "" +"An entry in ``sys.path`` can now be the filename of a ZIP archive. The ZIP " +"archive can contain any kind of files, but only files named :file:`\\*.py`, :" +"file:`\\*.pyc`, or :file:`\\*.pyo` can be imported. If an archive only " +"contains :file:`\\*.py` files, Python will not attempt to modify the archive " +"by adding the corresponding :file:`\\*.pyc` file, meaning that if a ZIP " +"archive doesn't contain :file:`\\*.pyc` files, importing may be rather slow." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:321 +msgid "" +"A path within the archive can also be specified to only import from a " +"subdirectory; for example, the path :file:`/tmp/example.zip/lib/` would only " +"import from the :file:`lib/` subdirectory within the archive." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:331 +msgid ":pep:`273` - Import Modules from Zip Archives" +msgstr ":pep:`273` - Import Modules from Zip Archives" + +#: ../Doc/whatsnew/2.3.rst:329 +msgid "" +"Written by James C. Ahlstrom, who also provided an implementation. Python " +"2.3 follows the specification in :pep:`273`, but uses an implementation " +"written by Just van Rossum that uses the import hooks described in :pep:" +"`302`. See section :ref:`section-pep302` for a description of the new import " +"hooks." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:338 +msgid "PEP 277: Unicode file name support for Windows NT" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:340 +msgid "" +"On Windows NT, 2000, and XP, the system stores file names as Unicode " +"strings. Traditionally, Python has represented file names as byte strings, " +"which is inadequate because it renders some file names inaccessible." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:344 +msgid "" +"Python now allows using arbitrary Unicode strings (within the limitations of " +"the file system) for all functions that expect file names, most notably the :" +"func:`open` built-in function. If a Unicode string is passed to :func:`os." +"listdir`, Python now returns a list of Unicode strings. A new function, :" +"func:`os.getcwdu`, returns the current directory as a Unicode string." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:350 +msgid "" +"Byte strings still work as file names, and on Windows Python will " +"transparently convert them to Unicode using the ``mbcs`` encoding." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:353 +msgid "" +"Other systems also allow Unicode strings as file names but convert them to " +"byte strings before passing them to the system, which can cause a :exc:" +"`UnicodeError` to be raised. Applications can test whether arbitrary Unicode " +"strings are supported as file names by checking :attr:`os.path." +"supports_unicode_filenames`, a Boolean value." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:359 +msgid "Under MacOS, :func:`os.listdir` may now return Unicode filenames." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:365 +msgid ":pep:`277` - Unicode file name support for Windows NT" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:365 +msgid "" +"Written by Neil Hodgson; implemented by Neil Hodgson, Martin von Löwis, and " +"Mark Hammond." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:375 +msgid "PEP 278: Universal Newline Support" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:377 +msgid "" +"The three major operating systems used today are Microsoft Windows, Apple's " +"Macintosh OS, and the various Unix derivatives. A minor irritation of cross-" +"platform work is that these three platforms all use different characters to " +"mark the ends of lines in text files. Unix uses the linefeed (ASCII " +"character 10), MacOS uses the carriage return (ASCII character 13), and " +"Windows uses a two-character sequence of a carriage return plus a newline." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:384 +msgid "" +"Python's file objects can now support end of line conventions other than the " +"one followed by the platform on which Python is running. Opening a file with " +"the mode ``'U'`` or ``'rU'`` will open a file for reading in :term:" +"`universal newlines` mode. All three line ending conventions will be " +"translated to a ``'\\n'`` in the strings returned by the various file " +"methods such as :meth:`read` and :meth:`readline`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:391 +msgid "" +"Universal newline support is also used when importing modules and when " +"executing a file with the :func:`execfile` function. This means that Python " +"modules can be shared between all three operating systems without needing to " +"convert the line-endings." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:396 +msgid "" +"This feature can be disabled when compiling Python by specifying the :option:" +"`!--without-universal-newlines` switch when running Python's :program:" +"`configure` script." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:403 +msgid ":pep:`278` - Universal Newline Support" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:404 +msgid "Written and implemented by Jack Jansen." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:412 +msgid "PEP 279: enumerate()" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:414 +msgid "" +"A new built-in function, :func:`enumerate`, will make certain loops a bit " +"clearer. ``enumerate(thing)``, where *thing* is either an iterator or a " +"sequence, returns an iterator that will return ``(0, thing[0])``, ``(1, " +"thing[1])``, ``(2, thing[2])``, and so forth." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:419 +msgid "A common idiom to change every element of a list looks like this::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:426 +msgid "This can be rewritten using :func:`enumerate` as::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:435 +msgid ":pep:`279` - The enumerate() built-in function" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:436 +msgid "Written and implemented by Raymond D. Hettinger." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:442 +msgid "PEP 282: The logging Package" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:444 +msgid "" +"A standard package for writing logs, :mod:`logging`, has been added to " +"Python 2.3. It provides a powerful and flexible mechanism for generating " +"logging output which can then be filtered and processed in various ways. A " +"configuration file written in a standard format can be used to control the " +"logging behavior of a program. Python includes handlers that will write log " +"records to standard error or to a file or socket, send them to the system " +"log, or even e-mail them to a particular address; of course, it's also " +"possible to write your own handler classes." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:453 +msgid "" +"The :class:`Logger` class is the primary class. Most application code will " +"deal with one or more :class:`Logger` objects, each one used by a particular " +"subsystem of the application. Each :class:`Logger` is identified by a name, " +"and names are organized into a hierarchy using ``.`` as the component " +"separator. For example, you might have :class:`Logger` instances named " +"``server``, ``server.auth`` and ``server.network``. The latter two " +"instances are below ``server`` in the hierarchy. This means that if you " +"turn up the verbosity for ``server`` or direct ``server`` messages to a " +"different handler, the changes will also apply to records logged to ``server." +"auth`` and ``server.network``. There's also a root :class:`Logger` that's " +"the parent of all other loggers." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:464 +msgid "" +"For simple uses, the :mod:`logging` package contains some convenience " +"functions that always use the root log::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:475 ../Doc/whatsnew/2.3.rst:500 +msgid "This produces the following output::" +msgstr "Ceci produit l’affichage suivant ::" + +#: ../Doc/whatsnew/2.3.rst:481 +msgid "" +"In the default configuration, informational and debugging messages are " +"suppressed and the output is sent to standard error. You can enable the " +"display of informational and debugging messages by calling the :meth:" +"`setLevel` method on the root logger." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:486 +msgid "" +"Notice the :func:`warning` call's use of string formatting operators; all of " +"the functions for logging messages take the arguments ``(msg, arg1, " +"arg2, ...)`` and log the string resulting from ``msg % (arg1, arg2, ...)``." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:490 +msgid "" +"There's also an :func:`exception` function that records the most recent " +"traceback. Any of the other functions will also record the traceback if you " +"specify a true value for the keyword argument *exc_info*. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:508 +msgid "" +"Slightly more advanced programs will use a logger other than the root " +"logger. The ``getLogger(name)`` function is used to get a particular log, " +"creating it if it doesn't exist yet. ``getLogger(None)`` returns the root " +"logger. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:519 +msgid "" +"Log records are usually propagated up the hierarchy, so a message logged to " +"``server.auth`` is also seen by ``server`` and ``root``, but a :class:" +"`Logger` can prevent this by setting its :attr:`propagate` attribute to :" +"const:`False`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:523 +msgid "" +"There are more classes provided by the :mod:`logging` package that can be " +"customized. When a :class:`Logger` instance is told to log a message, it " +"creates a :class:`LogRecord` instance that is sent to any number of " +"different :class:`Handler` instances. Loggers and handlers can also have an " +"attached list of filters, and each filter can cause the :class:`LogRecord` " +"to be ignored or can modify the record before passing it along. When " +"they're finally output, :class:`LogRecord` instances are converted to text " +"by a :class:`Formatter` class. All of these classes can be replaced by your " +"own specially-written classes." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:533 +msgid "" +"With all of these features the :mod:`logging` package should provide enough " +"flexibility for even the most complicated applications. This is only an " +"incomplete overview of its features, so please see the package's reference " +"documentation for all of the details. Reading :pep:`282` will also be " +"helpful." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:541 +msgid ":pep:`282` - A Logging System" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:542 +msgid "Written by Vinay Sajip and Trent Mick; implemented by Vinay Sajip." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:550 +msgid "PEP 285: A Boolean Type" +msgstr "PEP 285 : Un type booléen" + +#: ../Doc/whatsnew/2.3.rst:552 +msgid "" +"A Boolean type was added to Python 2.3. Two new constants were added to " +"the :mod:`__builtin__` module, :const:`True` and :const:`False`. (:const:" +"`True` and :const:`False` constants were added to the built-ins in Python " +"2.2.1, but the 2.2.1 versions are simply set to integer values of 1 and 0 " +"and aren't a different type.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:558 +msgid "" +"The type object for this new type is named :class:`bool`; the constructor " +"for it takes any Python value and converts it to :const:`True` or :const:" +"`False`. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:570 +msgid "" +"Most of the standard library modules and built-in functions have been " +"changed to return Booleans. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:581 +msgid "" +"Python's Booleans were added with the primary goal of making code clearer. " +"For example, if you're reading a function and encounter the statement " +"``return 1``, you might wonder whether the ``1`` represents a Boolean truth " +"value, an index, or a coefficient that multiplies some other quantity. If " +"the statement is ``return True``, however, the meaning of the return value " +"is quite clear." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:587 +msgid "" +"Python's Booleans were *not* added for the sake of strict type-checking. A " +"very strict language such as Pascal would also prevent you performing " +"arithmetic with Booleans, and would require that the expression in an :" +"keyword:`if` statement always evaluate to a Boolean result. Python is not " +"this strict and never will be, as :pep:`285` explicitly says. This means " +"you can still use any expression in an :keyword:`!if` statement, even ones " +"that evaluate to a list or tuple or some random object. The Boolean type is " +"a subclass of the :class:`int` class so that arithmetic using a Boolean " +"still works. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:605 +msgid "" +"To sum up :const:`True` and :const:`False` in a sentence: they're " +"alternative ways to spell the integer values 1 and 0, with the single " +"difference that :func:`str` and :func:`repr` return the strings ``'True'`` " +"and ``'False'`` instead of ``'1'`` and ``'0'``." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:613 +msgid ":pep:`285` - Adding a bool type" +msgstr ":pep:`285` -- Ajout d'un type *bool*" + +#: ../Doc/whatsnew/2.3.rst:614 +msgid "Written and implemented by GvR." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:620 +msgid "PEP 293: Codec Error Handling Callbacks" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:622 +msgid "" +"When encoding a Unicode string into a byte string, unencodable characters " +"may be encountered. So far, Python has allowed specifying the error " +"processing as either \"strict\" (raising :exc:`UnicodeError`), \"ignore" +"\" (skipping the character), or \"replace\" (using a question mark in the " +"output string), with \"strict\" being the default behavior. It may be " +"desirable to specify alternative processing of such errors, such as " +"inserting an XML character reference or HTML entity reference into the " +"converted string." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:630 +msgid "" +"Python now has a flexible framework to add different processing strategies. " +"New error handlers can be added with :func:`codecs.register_error`, and " +"codecs then can access the error handler with :func:`codecs.lookup_error`. " +"An equivalent C API has been added for codecs written in C. The error " +"handler gets the necessary state information such as the string being " +"converted, the position in the string where the error was detected, and the " +"target encoding. The handler can then either raise an exception or return a " +"replacement string." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:638 +msgid "" +"Two additional error handlers have been implemented using this framework: " +"\"backslashreplace\" uses Python backslash quoting to represent unencodable " +"characters and \"xmlcharrefreplace\" emits XML character references." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:645 +msgid ":pep:`293` - Codec Error Handling Callbacks" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:646 +msgid "Written and implemented by Walter Dörwald." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:654 +msgid "PEP 301: Package Index and Metadata for Distutils" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:656 +msgid "" +"Support for the long-requested Python catalog makes its first appearance in " +"2.3." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:658 +msgid "" +"The heart of the catalog is the new Distutils :command:`register` command. " +"Running ``python setup.py register`` will collect the metadata describing a " +"package, such as its name, version, maintainer, description, &c., and send " +"it to a central catalog server. The resulting catalog is available from " +"https://pypi.org." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:664 +msgid "" +"To make the catalog a bit more useful, a new optional *classifiers* keyword " +"argument has been added to the Distutils :func:`setup` function. A list of " +"`Trove `_-style strings can be supplied to help " +"classify the software." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:669 +msgid "" +"Here's an example :file:`setup.py` with classifiers, written to be " +"compatible with older versions of the Distutils::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:688 +msgid "" +"The full list of classifiers can be obtained by running ``python setup.py " +"register --list-classifiers``." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:694 +msgid ":pep:`301` - Package Index and Metadata for Distutils" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:695 +msgid "Written and implemented by Richard Jones." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:703 +msgid "PEP 302: New Import Hooks" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:705 +msgid "" +"While it's been possible to write custom import hooks ever since the :mod:" +"`ihooks` module was introduced in Python 1.3, no one has ever been really " +"happy with it because writing new import hooks is difficult and messy. " +"There have been various proposed alternatives such as the :mod:`imputil` " +"and :mod:`iu` modules, but none of them has ever gained much acceptance, and " +"none of them were easily usable from C code." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:712 +msgid "" +":pep:`302` borrows ideas from its predecessors, especially from Gordon " +"McMillan's :mod:`iu` module. Three new items are added to the :mod:`sys` " +"module:" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:716 +msgid "" +"``sys.path_hooks`` is a list of callable objects; most often they'll be " +"classes. Each callable takes a string containing a path and either returns " +"an importer object that will handle imports from this path or raises an :exc:" +"`ImportError` exception if it can't handle this path." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:721 +msgid "" +"``sys.path_importer_cache`` caches importer objects for each path, so ``sys." +"path_hooks`` will only need to be traversed once for each path." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:724 +msgid "" +"``sys.meta_path`` is a list of importer objects that will be traversed " +"before ``sys.path`` is checked. This list is initially empty, but user code " +"can add objects to it. Additional built-in and frozen modules can be " +"imported by an object added to this list." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:729 +msgid "" +"Importer objects must have a single method, ``find_module(fullname, " +"path=None)``. *fullname* will be a module or package name, e.g. ``string`` " +"or ``distutils.core``. :meth:`find_module` must return a loader object that " +"has a single method, ``load_module(fullname)``, that creates and returns the " +"corresponding module object." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:735 +msgid "" +"Pseudo-code for Python's new import logic, therefore, looks something like " +"this (simplified a bit; see :pep:`302` for the full details)::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:760 +msgid ":pep:`302` - New Import Hooks" +msgstr ":pep:`302` — Nouveaux crochets d'importation" + +#: ../Doc/whatsnew/2.3.rst:761 +msgid "" +"Written by Just van Rossum and Paul Moore. Implemented by Just van Rossum." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:769 +msgid "PEP 305: Comma-separated Files" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:771 +msgid "" +"Comma-separated files are a format frequently used for exporting data from " +"databases and spreadsheets. Python 2.3 adds a parser for comma-separated " +"files." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:774 +msgid "Comma-separated format is deceptively simple at first glance::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:778 +msgid "" +"Read a line and call ``line.split(',')``: what could be simpler? But toss in " +"string data that can contain commas, and things get more complicated::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:783 +msgid "" +"A big ugly regular expression can parse this, but using the new :mod:`csv` " +"package is much simpler::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:793 +msgid "" +"The :func:`reader` function takes a number of different options. The field " +"separator isn't limited to the comma and can be changed to any character, " +"and so can the quoting and line-ending characters." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:797 +msgid "" +"Different dialects of comma-separated files can be defined and registered; " +"currently there are two dialects, both used by Microsoft Excel. A separate :" +"class:`csv.writer` class will generate comma-separated files from a " +"succession of tuples or lists, quoting strings that contain the delimiter." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:806 +msgid ":pep:`305` - CSV File API" +msgstr ":pep:`305` -- Interface des fichiers CSV" + +#: ../Doc/whatsnew/2.3.rst:806 +msgid "" +"Written and implemented by Kevin Altis, Dave Cole, Andrew McNamara, Skip " +"Montanaro, Cliff Wells." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:815 +msgid "PEP 307: Pickle Enhancements" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:817 +msgid "" +"The :mod:`pickle` and :mod:`cPickle` modules received some attention during " +"the 2.3 development cycle. In 2.2, new-style classes could be pickled " +"without difficulty, but they weren't pickled very compactly; :pep:`307` " +"quotes a trivial example where a new-style class results in a pickled string " +"three times longer than that for a classic class." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:823 +msgid "" +"The solution was to invent a new pickle protocol. The :func:`pickle.dumps` " +"function has supported a text-or-binary flag for a long time. In 2.3, this " +"flag is redefined from a Boolean to an integer: 0 is the old text-mode " +"pickle format, 1 is the old binary format, and now 2 is a new 2.3-specific " +"format. A new constant, :const:`pickle.HIGHEST_PROTOCOL`, can be used to " +"select the fanciest protocol available." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:830 +msgid "" +"Unpickling is no longer considered a safe operation. 2.2's :mod:`pickle` " +"provided hooks for trying to prevent unsafe classes from being unpickled " +"(specifically, a :attr:`__safe_for_unpickling__` attribute), but none of " +"this code was ever audited and therefore it's all been ripped out in 2.3. " +"You should not unpickle untrusted data in any version of Python." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:836 +msgid "" +"To reduce the pickling overhead for new-style classes, a new interface for " +"customizing pickling was added using three special methods: :meth:" +"`__getstate__`, :meth:`__setstate__`, and :meth:`__getnewargs__`. Consult :" +"pep:`307` for the full semantics of these methods." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:841 +msgid "" +"As a way to compress pickles yet further, it's now possible to use integer " +"codes instead of long strings to identify pickled classes. The Python " +"Software Foundation will maintain a list of standardized codes; there's also " +"a range of codes for private use. Currently no codes have been specified." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:849 +msgid ":pep:`307` - Extensions to the pickle protocol" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:850 +msgid "Written and implemented by Guido van Rossum and Tim Peters." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:858 +msgid "Extended Slices" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:860 +msgid "" +"Ever since Python 1.4, the slicing syntax has supported an optional third " +"\"step\" or \"stride\" argument. For example, these are all legal Python " +"syntax: ``L[1:10:2]``, ``L[:-1:1]``, ``L[::-1]``. This was added to Python " +"at the request of the developers of Numerical Python, which uses the third " +"argument extensively. However, Python's built-in list, tuple, and string " +"sequence types have never supported this feature, raising a :exc:`TypeError` " +"if you tried it. Michael Hudson contributed a patch to fix this shortcoming." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:868 +msgid "" +"For example, you can now easily extract the elements of a list that have " +"even indexes::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:875 +msgid "" +"Negative values also work to make a copy of the same list in reverse order::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:880 +msgid "This also works for tuples, arrays, and strings::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:888 +msgid "" +"If you have a mutable sequence such as a list or an array you can assign to " +"or delete an extended slice, but there are some differences between " +"assignment to extended and regular slices. Assignment to a regular slice " +"can be used to change the length of the sequence::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:900 +msgid "" +"Extended slices aren't this flexible. When assigning to an extended slice, " +"the list on the right hand side of the statement must contain the same " +"number of items as the slice it is replacing::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:917 +msgid "Deletion is more straightforward::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:928 +msgid "" +"One can also now pass slice objects to the :meth:`__getitem__` methods of " +"the built-in sequences::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:934 +msgid "Or use slice objects directly in subscripts::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:939 +msgid "" +"To simplify implementing sequences that support extended slicing, slice " +"objects now have a method ``indices(length)`` which, given the length of a " +"sequence, returns a ``(start, stop, step)`` tuple that can be passed " +"directly to :func:`range`. :meth:`indices` handles omitted and out-of-bounds " +"indices in a manner consistent with regular slices (and this innocuous " +"phrase hides a welter of confusing details!). The method is intended to be " +"used like this::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:957 +msgid "" +"From this example you can also see that the built-in :class:`slice` object " +"is now the type object for the slice type, and is no longer a function. " +"This is consistent with Python 2.2, where :class:`int`, :class:`str`, etc., " +"underwent the same change." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:966 +msgid "Other Language Changes" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:968 +msgid "" +"Here are all of the changes that Python 2.3 makes to the core Python " +"language." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:970 +msgid "" +"The :keyword:`yield` statement is now always a keyword, as described in " +"section :ref:`section-generators` of this document." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:973 +msgid "" +"A new built-in function :func:`enumerate` was added, as described in " +"section :ref:`section-enumerate` of this document." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:976 +msgid "" +"Two new constants, :const:`True` and :const:`False` were added along with " +"the built-in :class:`bool` type, as described in section :ref:`section-bool` " +"of this document." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:980 +msgid "" +"The :func:`int` type constructor will now return a long integer instead of " +"raising an :exc:`OverflowError` when a string or floating-point number is " +"too large to fit into an integer. This can lead to the paradoxical result " +"that ``isinstance(int(expression), int)`` is false, but that seems unlikely " +"to cause problems in practice." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:986 +msgid "" +"Built-in types now support the extended slicing syntax, as described in " +"section :ref:`section-slices` of this document." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:989 +msgid "" +"A new built-in function, ``sum(iterable, start=0)``, adds up the numeric " +"items in the iterable object and returns their sum. :func:`sum` only " +"accepts numbers, meaning that you can't use it to concatenate a bunch of " +"strings. (Contributed by Alex Martelli.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:994 +msgid "" +"``list.insert(pos, value)`` used to insert *value* at the front of the list " +"when *pos* was negative. The behaviour has now been changed to be " +"consistent with slice indexing, so when *pos* is -1 the value will be " +"inserted before the last element, and so forth." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:999 +msgid "" +"``list.index(value)``, which searches for *value* within the list and " +"returns its index, now takes optional *start* and *stop* arguments to limit " +"the search to only part of the list." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1003 +msgid "" +"Dictionaries have a new method, ``pop(key[, *default*])``, that returns the " +"value corresponding to *key* and removes that key/value pair from the " +"dictionary. If the requested key isn't present in the dictionary, *default* " +"is returned if it's specified and :exc:`KeyError` raised if it isn't. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1025 +msgid "" +"There's also a new class method, ``dict.fromkeys(iterable, value)``, that " +"creates a dictionary with keys taken from the supplied iterator *iterable* " +"and all values set to *value*, defaulting to ``None``." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1029 +msgid "(Patches contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1031 +msgid "" +"Also, the :func:`dict` constructor now accepts keyword arguments to simplify " +"creating small dictionaries::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1037 +msgid "(Contributed by Just van Rossum.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1039 +msgid "" +"The :keyword:`assert` statement no longer checks the ``__debug__`` flag, so " +"you can no longer disable assertions by assigning to ``__debug__``. Running " +"Python with the :option:`-O` switch will still generate code that doesn't " +"execute any assertions." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1044 +msgid "" +"Most type objects are now callable, so you can use them to create new " +"objects such as functions, classes, and modules. (This means that the :mod:" +"`new` module can be deprecated in a future Python version, because you can " +"now use the type objects available in the :mod:`types` module.) For example, " +"you can create a new module object with the following code:" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1059 +msgid "" +"A new warning, :exc:`PendingDeprecationWarning` was added to indicate " +"features which are in the process of being deprecated. The warning will " +"*not* be printed by default. To check for use of features that will be " +"deprecated in the future, supply :option:`-Walways::" +"PendingDeprecationWarning:: <-W>` on the command line or use :func:`warnings." +"filterwarnings`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1065 +msgid "" +"The process of deprecating string-based exceptions, as in ``raise \"Error " +"occurred\"``, has begun. Raising a string will now trigger :exc:" +"`PendingDeprecationWarning`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1069 +msgid "" +"Using ``None`` as a variable name will now result in a :exc:`SyntaxWarning` " +"warning. In a future version of Python, ``None`` may finally become a " +"keyword." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1072 +msgid "" +"The :meth:`xreadlines` method of file objects, introduced in Python 2.1, is " +"no longer necessary because files now behave as their own iterator. :meth:" +"`xreadlines` was originally introduced as a faster way to loop over all the " +"lines in a file, but now you can simply write ``for line in file_obj``. File " +"objects also have a new read-only :attr:`encoding` attribute that gives the " +"encoding used by the file; Unicode strings written to the file will be " +"automatically converted to bytes using the given encoding." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1080 +msgid "" +"The method resolution order used by new-style classes has changed, though " +"you'll only notice the difference if you have a really complicated " +"inheritance hierarchy. Classic classes are unaffected by this change. " +"Python 2.2 originally used a topological sort of a class's ancestors, but " +"2.3 now uses the C3 algorithm as described in the paper `\"A Monotonic " +"Superclass Linearization for Dylan\" `_. To understand the motivation for this " +"change, read Michele Simionato's article `\"Python 2.3 Method Resolution " +"Order\" `_, or read the " +"thread on python-dev starting with the message at https://mail.python.org/" +"pipermail/python-dev/2002-October/029035.html. Samuele Pedroni first pointed " +"out the problem and also implemented the fix by coding the C3 algorithm." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1093 +msgid "" +"Python runs multithreaded programs by switching between threads after " +"executing N bytecodes. The default value for N has been increased from 10 " +"to 100 bytecodes, speeding up single-threaded applications by reducing the " +"switching overhead. Some multithreaded applications may suffer slower " +"response time, but that's easily fixed by setting the limit back to a lower " +"number using ``sys.setcheckinterval(N)``. The limit can be retrieved with " +"the new :func:`sys.getcheckinterval` function." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1101 +msgid "" +"One minor but far-reaching change is that the names of extension types " +"defined by the modules included with Python now contain the module and a " +"``'.'`` in front of the type name. For example, in Python 2.2, if you " +"created a socket and printed its :attr:`__class__`, you'd get this output::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1110 +msgid "In 2.3, you get this::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1115 +msgid "" +"One of the noted incompatibilities between old- and new-style classes has " +"been removed: you can now assign to the :attr:`~definition.__name__` and :" +"attr:`~class.__bases__` attributes of new-style classes. There are some " +"restrictions on what can be assigned to :attr:`~class.__bases__` along the " +"lines of those relating to assigning to an instance's :attr:`~instance." +"__class__` attribute." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1125 +msgid "String Changes" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1127 +msgid "" +"The :keyword:`in` operator now works differently for strings. Previously, " +"when evaluating ``X in Y`` where *X* and *Y* are strings, *X* could only be " +"a single character. That's now changed; *X* can be a string of any length, " +"and ``X in Y`` will return :const:`True` if *X* is a substring of *Y*. If " +"*X* is the empty string, the result is always :const:`True`. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1140 +msgid "" +"Note that this doesn't tell you where the substring starts; if you need that " +"information, use the :meth:`find` string method." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1143 +msgid "" +"The :meth:`strip`, :meth:`lstrip`, and :meth:`rstrip` string methods now " +"have an optional argument for specifying the characters to strip. The " +"default is still to remove all whitespace characters::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1157 +msgid "(Suggested by Simon Brunning and implemented by Walter Dörwald.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1159 +msgid "" +"The :meth:`startswith` and :meth:`endswith` string methods now accept " +"negative numbers for the *start* and *end* parameters." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1162 +msgid "" +"Another new string method is :meth:`zfill`, originally a function in the :" +"mod:`string` module. :meth:`zfill` pads a numeric string with zeros on the " +"left until it's the specified width. Note that the ``%`` operator is still " +"more flexible and powerful than :meth:`zfill`. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1174 +msgid "(Contributed by Walter Dörwald.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1176 +msgid "" +"A new type object, :class:`basestring`, has been added. Both 8-bit strings " +"and Unicode strings inherit from this type, so ``isinstance(obj, " +"basestring)`` will return :const:`True` for either kind of string. It's a " +"completely abstract type, so you can't create :class:`basestring` instances." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1181 +msgid "" +"Interned strings are no longer immortal and will now be garbage-collected in " +"the usual way when the only reference to them is from the internal " +"dictionary of interned strings. (Implemented by Oren Tirosh.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1189 +msgid "Optimizations" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1191 +msgid "" +"The creation of new-style class instances has been made much faster; they're " +"now faster than classic classes!" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1194 +msgid "" +"The :meth:`sort` method of list objects has been extensively rewritten by " +"Tim Peters, and the implementation is significantly faster." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1197 +msgid "" +"Multiplication of large long integers is now much faster thanks to an " +"implementation of Karatsuba multiplication, an algorithm that scales better " +"than the O(n\\*n) required for the grade-school multiplication algorithm. " +"(Original patch by Christopher A. Craig, and significantly reworked by Tim " +"Peters.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1202 +msgid "" +"The ``SET_LINENO`` opcode is now gone. This may provide a small speed " +"increase, depending on your compiler's idiosyncrasies. See section :ref:" +"`23section-other` for a longer explanation. (Removed by Michael Hudson.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1206 +msgid "" +":func:`xrange` objects now have their own iterator, making ``for i in " +"xrange(n)`` slightly faster than ``for i in range(n)``. (Patch by Raymond " +"Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1210 +msgid "" +"A number of small rearrangements have been made in various hotspots to " +"improve performance, such as inlining a function or removing some code. " +"(Implemented mostly by GvR, but lots of people have contributed single " +"changes.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1214 +msgid "" +"The net result of the 2.3 optimizations is that Python 2.3 runs the pystone " +"benchmark around 25% faster than Python 2.2." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1221 +msgid "New, Improved, and Deprecated Modules" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1223 +msgid "" +"As usual, Python's standard library received a number of enhancements and " +"bug fixes. Here's a partial list of the most notable changes, sorted " +"alphabetically by module name. Consult the :file:`Misc/NEWS` file in the " +"source tree for a more complete list of changes, or look through the CVS " +"logs for all the details." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1228 +msgid "" +"The :mod:`array` module now supports arrays of Unicode characters using the " +"``'u'`` format character. Arrays also now support using the ``+=`` " +"assignment operator to add another array's contents, and the ``*=`` " +"assignment operator to repeat an array. (Contributed by Jason Orendorff.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1233 +msgid "" +"The :mod:`bsddb` module has been replaced by version 4.1.6 of the `PyBSDDB " +"`_ package, providing a more complete " +"interface to the transactional features of the BerkeleyDB library." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1237 +msgid "" +"The old version of the module has been renamed to :mod:`bsddb185` and is no " +"longer built automatically; you'll have to edit :file:`Modules/Setup` to " +"enable it. Note that the new :mod:`bsddb` package is intended to be " +"compatible with the old module, so be sure to file bugs if you discover any " +"incompatibilities. When upgrading to Python 2.3, if the new interpreter is " +"compiled with a new version of the underlying BerkeleyDB library, you will " +"almost certainly have to convert your database files to the new version. " +"You can do this fairly easily with the new scripts :file:`db2pickle.py` and :" +"file:`pickle2db.py` which you will find in the distribution's :file:`Tools/" +"scripts` directory. If you've already been using the PyBSDDB package and " +"importing it as :mod:`bsddb3`, you will have to change your ``import`` " +"statements to import it as :mod:`bsddb`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1249 +msgid "" +"The new :mod:`bz2` module is an interface to the bz2 data compression " +"library. bz2-compressed data is usually smaller than corresponding :mod:" +"`zlib`\\ -compressed data. (Contributed by Gustavo Niemeyer.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1253 +msgid "" +"A set of standard date/time types has been added in the new :mod:`datetime` " +"module. See the following section for more details." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1256 +msgid "" +"The Distutils :class:`Extension` class now supports an extra constructor " +"argument named *depends* for listing additional source files that an " +"extension depends on. This lets Distutils recompile the module if any of " +"the dependency files are modified. For example, if :file:`sampmodule.c` " +"includes the header file :file:`sample.h`, you would create the :class:" +"`Extension` object like this::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1267 +msgid "" +"Modifying :file:`sample.h` would then cause the module to be recompiled. " +"(Contributed by Jeremy Hylton.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1270 +msgid "" +"Other minor changes to Distutils: it now checks for the :envvar:`CC`, :" +"envvar:`CFLAGS`, :envvar:`CPP`, :envvar:`LDFLAGS`, and :envvar:`CPPFLAGS` " +"environment variables, using them to override the settings in Python's " +"configuration (contributed by Robert Weber)." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1275 +msgid "" +"Previously the :mod:`doctest` module would only search the docstrings of " +"public methods and functions for test cases, but it now also examines " +"private ones as well. The :func:`DocTestSuite` function creates a :class:" +"`unittest.TestSuite` object from a set of :mod:`doctest` tests." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1280 +msgid "" +"The new ``gc.get_referents(object)`` function returns a list of all the " +"objects referenced by *object*." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1283 +msgid "" +"The :mod:`getopt` module gained a new function, :func:`gnu_getopt`, that " +"supports the same arguments as the existing :func:`getopt` function but uses " +"GNU-style scanning mode. The existing :func:`getopt` stops processing " +"options as soon as a non-option argument is encountered, but in GNU-style " +"mode processing continues, meaning that options and arguments can be mixed. " +"For example::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1294 +msgid "(Contributed by Peter Åstrand.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1296 +msgid "" +"The :mod:`grp`, :mod:`pwd`, and :mod:`resource` modules now return enhanced " +"tuples::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1304 +msgid "The :mod:`gzip` module can now handle files exceeding 2 GiB." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1306 +msgid "" +"The new :mod:`heapq` module contains an implementation of a heap queue " +"algorithm. A heap is an array-like data structure that keeps items in a " +"partially sorted order such that, for every index *k*, ``heap[k] <= heap[2*k" +"+1]`` and ``heap[k] <= heap[2*k+2]``. This makes it quick to remove the " +"smallest item, and inserting a new item while maintaining the heap property " +"is O(lg n). (See https://xlinux.nist.gov/dads//HTML/priorityque.html for " +"more information about the priority queue data structure.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1314 +msgid "" +"The :mod:`heapq` module provides :func:`heappush` and :func:`heappop` " +"functions for adding and removing items while maintaining the heap property " +"on top of some other mutable Python sequence type. Here's an example that " +"uses a Python list::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1332 +msgid "(Contributed by Kevin O'Connor.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1334 +msgid "" +"The IDLE integrated development environment has been updated using the code " +"from the IDLEfork project (http://idlefork.sourceforge.net). The most " +"notable feature is that the code being developed is now executed in a " +"subprocess, meaning that there's no longer any need for manual ``reload()`` " +"operations. IDLE's core code has been incorporated into the standard library " +"as the :mod:`idlelib` package." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1340 +msgid "" +"The :mod:`imaplib` module now supports IMAP over SSL. (Contributed by Piers " +"Lauder and Tino Lange.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1343 +msgid "" +"The :mod:`itertools` contains a number of useful functions for use with " +"iterators, inspired by various functions provided by the ML and Haskell " +"languages. For example, ``itertools.ifilter(predicate, iterator)`` returns " +"all elements in the iterator for which the function :func:`predicate` " +"returns :const:`True`, and ``itertools.repeat(obj, N)`` returns ``obj`` *N* " +"times. There are a number of other functions in the module; see the " +"package's reference documentation for details. (Contributed by Raymond " +"Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1352 +msgid "" +"Two new functions in the :mod:`math` module, ``degrees(rads)`` and " +"``radians(degs)``, convert between radians and degrees. Other functions in " +"the :mod:`math` module such as :func:`math.sin` and :func:`math.cos` have " +"always required input values measured in radians. Also, an optional *base* " +"argument was added to :func:`math.log` to make it easier to compute " +"logarithms for bases other than ``e`` and ``10``. (Contributed by Raymond " +"Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1359 +msgid "" +"Several new POSIX functions (:func:`getpgid`, :func:`killpg`, :func:" +"`lchown`, :func:`loadavg`, :func:`major`, :func:`makedev`, :func:`minor`, " +"and :func:`mknod`) were added to the :mod:`posix` module that underlies the :" +"mod:`os` module. (Contributed by Gustavo Niemeyer, Geert Jansen, and Denis " +"S. Otkidach.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1365 +msgid "" +"In the :mod:`os` module, the :func:`\\*stat` family of functions can now " +"report fractions of a second in a timestamp. Such time stamps are " +"represented as floats, similar to the value returned by :func:`time.time`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1369 +msgid "" +"During testing, it was found that some applications will break if time " +"stamps are floats. For compatibility, when using the tuple interface of " +"the :class:`stat_result` time stamps will be represented as integers. When " +"using named fields (a feature first introduced in Python 2.2), time stamps " +"are still represented as integers, unless :func:`os.stat_float_times` is " +"invoked to enable float return values::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1382 +msgid "In Python 2.4, the default will change to always returning floats." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1384 +msgid "" +"Application developers should enable this feature only if all their " +"libraries work properly when confronted with floating point time stamps, or " +"if they use the tuple API. If used, the feature should be activated on an " +"application level instead of trying to enable it on a per-use basis." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1389 +msgid "" +"The :mod:`optparse` module contains a new parser for command-line arguments " +"that can convert option values to a particular Python type and will " +"automatically generate a usage message. See the following section for more " +"details." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1394 +msgid "" +"The old and never-documented :mod:`linuxaudiodev` module has been " +"deprecated, and a new version named :mod:`ossaudiodev` has been added. The " +"module was renamed because the OSS sound drivers can be used on platforms " +"other than Linux, and the interface has also been tidied and brought up to " +"date in various ways. (Contributed by Greg Ward and Nicholas FitzRoy-Dale.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1400 +msgid "" +"The new :mod:`platform` module contains a number of functions that try to " +"determine various properties of the platform you're running on. There are " +"functions for getting the architecture, CPU type, the Windows OS version, " +"and even the Linux distribution version. (Contributed by Marc-André Lemburg.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1405 +msgid "" +"The parser objects provided by the :mod:`pyexpat` module can now optionally " +"buffer character data, resulting in fewer calls to your character data " +"handler and therefore faster performance. Setting the parser object's :attr:" +"`buffer_text` attribute to :const:`True` will enable buffering." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1410 +msgid "" +"The ``sample(population, k)`` function was added to the :mod:`random` " +"module. *population* is a sequence or :class:`xrange` object containing the " +"elements of a population, and :func:`sample` chooses *k* elements from the " +"population without replacing chosen elements. *k* can be any value up to " +"``len(population)``. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1432 +msgid "" +"The :mod:`random` module now uses a new algorithm, the Mersenne Twister, " +"implemented in C. It's faster and more extensively studied than the " +"previous algorithm." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1436 +msgid "(All changes contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1438 +msgid "" +"The :mod:`readline` module also gained a number of new functions: :func:" +"`get_history_item`, :func:`get_current_history_length`, and :func:" +"`redisplay`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1442 +msgid "" +"The :mod:`rexec` and :mod:`Bastion` modules have been declared dead, and " +"attempts to import them will fail with a :exc:`RuntimeError`. New-style " +"classes provide new ways to break out of the restricted execution " +"environment provided by :mod:`rexec`, and no one has interest in fixing them " +"or time to do so. If you have applications using :mod:`rexec`, rewrite them " +"to use something else." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1448 +msgid "" +"(Sticking with Python 2.2 or 2.1 will not make your applications any safer " +"because there are known bugs in the :mod:`rexec` module in those versions. " +"To repeat: if you're using :mod:`rexec`, stop using it immediately.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1452 +msgid "" +"The :mod:`rotor` module has been deprecated because the algorithm it uses " +"for encryption is not believed to be secure. If you need encryption, use " +"one of the several AES Python modules that are available separately." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1456 +msgid "" +"The :mod:`shutil` module gained a ``move(src, dest)`` function that " +"recursively moves a file or directory to a new location." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1459 +msgid "" +"Support for more advanced POSIX signal handling was added to the :mod:" +"`signal` but then removed again as it proved impossible to make it work " +"reliably across platforms." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1463 +msgid "" +"The :mod:`socket` module now supports timeouts. You can call the " +"``settimeout(t)`` method on a socket object to set a timeout of *t* seconds. " +"Subsequent socket operations that take longer than *t* seconds to complete " +"will abort and raise a :exc:`socket.timeout` exception." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1468 +msgid "" +"The original timeout implementation was by Tim O'Malley. Michael Gilfix " +"integrated it into the Python :mod:`socket` module and shepherded it through " +"a lengthy review. After the code was checked in, Guido van Rossum rewrote " +"parts of it. (This is a good example of a collaborative development process " +"in action.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1474 +msgid "" +"On Windows, the :mod:`socket` module now ships with Secure Sockets Layer " +"(SSL) support." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1477 +msgid "" +"The value of the C :const:`PYTHON_API_VERSION` macro is now exposed at the " +"Python level as ``sys.api_version``. The current exception can be cleared " +"by calling the new :func:`sys.exc_clear` function." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1481 +msgid "" +"The new :mod:`tarfile` module allows reading from and writing to :program:" +"`tar`\\ -format archive files. (Contributed by Lars Gustäbel.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1484 +msgid "" +"The new :mod:`textwrap` module contains functions for wrapping strings " +"containing paragraphs of text. The ``wrap(text, width)`` function takes a " +"string and returns a list containing the text split into lines of no more " +"than the chosen width. The ``fill(text, width)`` function returns a single " +"string, reformatted to fit into lines no longer than the chosen width. (As " +"you can guess, :func:`fill` is built on top of :func:`wrap`. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1506 +msgid "" +"The module also contains a :class:`TextWrapper` class that actually " +"implements the text wrapping strategy. Both the :class:`TextWrapper` class " +"and the :func:`wrap` and :func:`fill` functions support a number of " +"additional keyword arguments for fine-tuning the formatting; consult the " +"module's documentation for details. (Contributed by Greg Ward.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1512 +msgid "" +"The :mod:`thread` and :mod:`threading` modules now have companion modules, :" +"mod:`dummy_thread` and :mod:`dummy_threading`, that provide a do-nothing " +"implementation of the :mod:`thread` module's interface for platforms where " +"threads are not supported. The intention is to simplify thread-aware " +"modules (ones that *don't* rely on threads to run) by putting the following " +"code at the top::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1524 +msgid "" +"In this example, :mod:`_threading` is used as the module name to make it " +"clear that the module being used is not necessarily the actual :mod:" +"`threading` module. Code can call functions and use classes in :mod:" +"`_threading` whether or not threads are supported, avoiding an :keyword:`if` " +"statement and making the code slightly clearer. This module will not " +"magically make multithreaded code run without threads; code that waits for " +"another thread to return or to do something will simply hang forever." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1532 +msgid "" +"The :mod:`time` module's :func:`strptime` function has long been an " +"annoyance because it uses the platform C library's :func:`strptime` " +"implementation, and different platforms sometimes have odd bugs. Brett " +"Cannon contributed a portable implementation that's written in pure Python " +"and should behave identically on all platforms." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1538 +msgid "" +"The new :mod:`timeit` module helps measure how long snippets of Python code " +"take to execute. The :file:`timeit.py` file can be run directly from the " +"command line, or the module's :class:`Timer` class can be imported and used " +"directly. Here's a short example that figures out whether it's faster to " +"convert an 8-bit string to Unicode by appending an empty Unicode string to " +"it or by using the :func:`unicode` function::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1558 +msgid "" +"The :mod:`Tix` module has received various bug fixes and updates for the " +"current version of the Tix package." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1561 +msgid "" +"The :mod:`Tkinter` module now works with a thread-enabled version of Tcl. " +"Tcl's threading model requires that widgets only be accessed from the thread " +"in which they're created; accesses from another thread can cause Tcl to " +"panic. For certain Tcl interfaces, :mod:`Tkinter` will now automatically " +"avoid this when a widget is accessed from a different thread by marshalling " +"a command, passing it to the correct thread, and waiting for the results. " +"Other interfaces can't be handled automatically but :mod:`Tkinter` will now " +"raise an exception on such an access so that you can at least find out about " +"the problem. See https://mail.python.org/pipermail/python-dev/2002-" +"December/031107.html for a more detailed explanation of this change. " +"(Implemented by Martin von Löwis.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1572 +msgid "" +"Calling Tcl methods through :mod:`_tkinter` no longer returns only strings. " +"Instead, if Tcl returns other objects those objects are converted to their " +"Python equivalent, if one exists, or wrapped with a :class:`_tkinter." +"Tcl_Obj` object if no Python equivalent exists. This behavior can be " +"controlled through the :meth:`wantobjects` method of :class:`tkapp` objects." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1578 +msgid "" +"When using :mod:`_tkinter` through the :mod:`Tkinter` module (as most " +"Tkinter applications will), this feature is always activated. It should not " +"cause compatibility problems, since Tkinter would always convert string " +"results to Python types where possible." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1583 +msgid "" +"If any incompatibilities are found, the old behavior can be restored by " +"setting the :attr:`wantobjects` variable in the :mod:`Tkinter` module to " +"false before creating the first :class:`tkapp` object. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1590 +msgid "Any breakage caused by this change should be reported as a bug." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1592 +msgid "" +"The :mod:`UserDict` module has a new :class:`DictMixin` class which defines " +"all dictionary methods for classes that already have a minimum mapping " +"interface. This greatly simplifies writing classes that need to be " +"substitutable for dictionaries, such as the classes in the :mod:`shelve` " +"module." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1598 +msgid "" +"Adding the mix-in as a superclass provides the full dictionary interface " +"whenever the class defines :meth:`__getitem__`, :meth:`__setitem__`, :meth:" +"`__delitem__`, and :meth:`keys`. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1639 +msgid "(Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1641 +msgid "" +"The DOM implementation in :mod:`xml.dom.minidom` can now generate XML output " +"in a particular encoding by providing an optional encoding argument to the :" +"meth:`toxml` and :meth:`toprettyxml` methods of DOM nodes." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1645 +msgid "" +"The :mod:`xmlrpclib` module now supports an XML-RPC extension for handling " +"nil data values such as Python's ``None``. Nil values are always supported " +"on unmarshalling an XML-RPC response. To generate requests containing " +"``None``, you must supply a true value for the *allow_none* parameter when " +"creating a :class:`Marshaller` instance." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1651 +msgid "" +"The new :mod:`DocXMLRPCServer` module allows writing self-documenting XML-" +"RPC servers. Run it in demo mode (as a program) to see it in action. " +"Pointing the Web browser to the RPC server produces pydoc-style " +"documentation; pointing xmlrpclib to the server allows invoking the actual " +"methods. (Contributed by Brian Quinlan.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1657 +msgid "" +"Support for internationalized domain names (RFCs 3454, 3490, 3491, and 3492) " +"has been added. The \"idna\" encoding can be used to convert between a " +"Unicode domain name and the ASCII-compatible encoding (ACE) of that name. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1664 +msgid "" +"The :mod:`socket` module has also been extended to transparently convert " +"Unicode hostnames to the ACE version before passing them to the C library. " +"Modules that deal with hostnames such as :mod:`httplib` and :mod:`ftplib`) " +"also support Unicode host names; :mod:`httplib` also sends HTTP ``Host`` " +"headers using the ACE version of the domain name. :mod:`urllib` supports " +"Unicode URLs with non-ASCII host names as long as the ``path`` part of the " +"URL is ASCII only." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1672 +msgid "" +"To implement this change, the :mod:`stringprep` module, the " +"``mkstringprep`` tool and the ``punycode`` encoding have been added." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1679 +msgid "Date/Time Type" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1681 +msgid "" +"Date and time types suitable for expressing timestamps were added as the :" +"mod:`datetime` module. The types don't support different calendars or many " +"fancy features, and just stick to the basics of representing time." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1685 +msgid "" +"The three primary types are: :class:`date`, representing a day, month, and " +"year; :class:`~datetime.time`, consisting of hour, minute, and second; and :" +"class:`~datetime.datetime`, which contains all the attributes of both :class:" +"`date` and :class:`~datetime.time`. There's also a :class:`timedelta` class " +"representing differences between two points in time, and time zone logic is " +"implemented by classes inheriting from the abstract :class:`tzinfo` class." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1692 +msgid "" +"You can create instances of :class:`date` and :class:`~datetime.time` by " +"either supplying keyword arguments to the appropriate constructor, e.g. " +"``datetime.date(year=1972, month=10, day=15)``, or by using one of a number " +"of class methods. For example, the :meth:`date.today` class method returns " +"the current local date." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1698 +msgid "" +"Once created, instances of the date/time classes are all immutable. There " +"are a number of methods for producing formatted strings from objects::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1710 +msgid "" +"The :meth:`replace` method allows modifying one or more fields of a :class:" +"`date` or :class:`~datetime.datetime` instance, returning a new instance::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1720 +msgid "" +"Instances can be compared, hashed, and converted to strings (the result is " +"the same as that of :meth:`isoformat`). :class:`date` and :class:`~datetime." +"datetime` instances can be subtracted from each other, and added to :class:" +"`timedelta` instances. The largest missing feature is that there's no " +"standard library support for parsing strings and getting back a :class:" +"`date` or :class:`~datetime.datetime`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1727 +msgid "" +"For more information, refer to the module's reference documentation. " +"(Contributed by Tim Peters.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1734 +msgid "The optparse Module" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1736 +msgid "" +"The :mod:`getopt` module provides simple parsing of command-line arguments. " +"The new :mod:`optparse` module (originally named Optik) provides more " +"elaborate command-line parsing that follows the Unix conventions, " +"automatically creates the output for :option:`!--help`, and can perform " +"different actions for different options." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1742 +msgid "" +"You start by creating an instance of :class:`OptionParser` and telling it " +"what your program's options are. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1756 +msgid "" +"Parsing a command line is then done by calling the :meth:`parse_args` " +"method. ::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1762 +msgid "" +"This returns an object containing all of the option values, and a list of " +"strings containing the remaining arguments." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1765 +msgid "" +"Invoking the script with the various arguments now works as you'd expect it " +"to. Note that the length argument is automatically converted to an integer." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1778 +msgid "The help message is automatically generated for you:" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1793 +msgid "See the module's documentation for more details." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1796 +msgid "" +"Optik was written by Greg Ward, with suggestions from the readers of the " +"Getopt SIG." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1805 +msgid "Pymalloc: A Specialized Object Allocator" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1807 +msgid "" +"Pymalloc, a specialized object allocator written by Vladimir Marangozov, was " +"a feature added to Python 2.1. Pymalloc is intended to be faster than the " +"system :c:func:`malloc` and to have less memory overhead for allocation " +"patterns typical of Python programs. The allocator uses C's :c:func:`malloc` " +"function to get large pools of memory and then fulfills smaller memory " +"requests from these pools." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1813 +msgid "" +"In 2.1 and 2.2, pymalloc was an experimental feature and wasn't enabled by " +"default; you had to explicitly enable it when compiling Python by providing " +"the :option:`!--with-pymalloc` option to the :program:`configure` script. " +"In 2.3, pymalloc has had further enhancements and is now enabled by default; " +"you'll have to supply :option:`!--without-pymalloc` to disable it." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1819 +msgid "" +"This change is transparent to code written in Python; however, pymalloc may " +"expose bugs in C extensions. Authors of C extension modules should test " +"their code with pymalloc enabled, because some incorrect code may cause core " +"dumps at runtime." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1824 +msgid "" +"There's one particularly common error that causes problems. There are a " +"number of memory allocation functions in Python's C API that have previously " +"just been aliases for the C library's :c:func:`malloc` and :c:func:`free`, " +"meaning that if you accidentally called mismatched functions the error " +"wouldn't be noticeable. When the object allocator is enabled, these " +"functions aren't aliases of :c:func:`malloc` and :c:func:`free` any more, " +"and calling the wrong function to free memory may get you a core dump. For " +"example, if memory was allocated using :c:func:`PyObject_Malloc`, it has to " +"be freed using :c:func:`PyObject_Free`, not :c:func:`free`. A few modules " +"included with Python fell afoul of this and had to be fixed; doubtless there " +"are more third-party modules that will have the same problem." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1836 +msgid "" +"As part of this change, the confusing multiple interfaces for allocating " +"memory have been consolidated down into two API families. Memory allocated " +"with one family must not be manipulated with functions from the other " +"family. There is one family for allocating chunks of memory and another " +"family of functions specifically for allocating Python objects." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1842 +msgid "" +"To allocate and free an undistinguished chunk of memory use the \"raw memory" +"\" family: :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc`, and :c:func:" +"`PyMem_Free`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1845 +msgid "" +"The \"object memory\" family is the interface to the pymalloc facility " +"described above and is biased towards a large number of \"small\" " +"allocations: :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc`, and :c:" +"func:`PyObject_Free`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1849 +msgid "" +"To allocate and free Python objects, use the \"object\" family :c:func:" +"`PyObject_New`, :c:func:`PyObject_NewVar`, and :c:func:`PyObject_Del`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1852 +msgid "" +"Thanks to lots of work by Tim Peters, pymalloc in 2.3 also provides " +"debugging features to catch memory overwrites and doubled frees in both " +"extension modules and in the interpreter itself. To enable this support, " +"compile a debugging version of the Python interpreter by running :program:" +"`configure` with :option:`!--with-pydebug`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1858 +msgid "" +"To aid extension writers, a header file :file:`Misc/pymemcompat.h` is " +"distributed with the source to Python 2.3 that allows Python extensions to " +"use the 2.3 interfaces to memory allocation while compiling against any " +"version of Python since 1.5.2. You would copy the file from Python's source " +"distribution and bundle it with the source of your extension." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1869 +msgid "https://hg.python.org/cpython/file/default/Objects/obmalloc.c" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1868 +msgid "" +"For the full details of the pymalloc implementation, see the comments at the " +"top of the file :file:`Objects/obmalloc.c` in the Python source code. The " +"above link points to the file within the python.org SVN browser." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1876 +msgid "Build and C API Changes" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1878 +msgid "Changes to Python's build process and to the C API include:" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1880 +msgid "" +"The cycle detection implementation used by the garbage collection has proven " +"to be stable, so it's now been made mandatory. You can no longer compile " +"Python without it, and the :option:`!--with-cycle-gc` switch to :program:" +"`configure` has been removed." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1885 +msgid "" +"Python can now optionally be built as a shared library (:file:`libpython2.3." +"so`) by supplying :option:`!--enable-shared` when running Python's :program:" +"`configure` script. (Contributed by Ondrej Palkovsky.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1889 +msgid "" +"The :c:macro:`DL_EXPORT` and :c:macro:`DL_IMPORT` macros are now deprecated. " +"Initialization functions for Python extension modules should now be declared " +"using the new macro :c:macro:`PyMODINIT_FUNC`, while the Python core will " +"generally use the :c:macro:`PyAPI_FUNC` and :c:macro:`PyAPI_DATA` macros." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1894 +msgid "" +"The interpreter can be compiled without any docstrings for the built-in " +"functions and modules by supplying :option:`!--without-doc-strings` to the :" +"program:`configure` script. This makes the Python executable about 10% " +"smaller, but will also mean that you can't get help for Python's built-ins. " +"(Contributed by Gustavo Niemeyer.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1900 +msgid "" +"The :c:func:`PyArg_NoArgs` macro is now deprecated, and code that uses it " +"should be changed. For Python 2.2 and later, the method definition table " +"can specify the :const:`METH_NOARGS` flag, signalling that there are no " +"arguments, and the argument checking can then be removed. If compatibility " +"with pre-2.2 versions of Python is important, the code could use " +"``PyArg_ParseTuple(args, \"\")`` instead, but this will be slower than " +"using :const:`METH_NOARGS`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1907 +msgid "" +":c:func:`PyArg_ParseTuple` accepts new format characters for various sizes " +"of unsigned integers: ``B`` for :c:type:`unsigned char`, ``H`` for :c:type:" +"`unsigned short int`, ``I`` for :c:type:`unsigned int`, and ``K`` for :c:" +"type:`unsigned long long`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1912 +msgid "" +"A new function, ``PyObject_DelItemString(mapping, char *key)`` was added as " +"shorthand for ``PyObject_DelItem(mapping, PyString_New(key))``." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1915 +msgid "" +"File objects now manage their internal string buffer differently, increasing " +"it exponentially when needed. This results in the benchmark tests in :file:" +"`Lib/test/test_bufio.py` speeding up considerably (from 57 seconds to 1.7 " +"seconds, according to one measurement)." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1920 +msgid "" +"It's now possible to define class and static methods for a C extension type " +"by setting either the :const:`METH_CLASS` or :const:`METH_STATIC` flags in a " +"method's :c:type:`PyMethodDef` structure." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1924 +msgid "" +"Python now includes a copy of the Expat XML parser's source code, removing " +"any dependence on a system version or local installation of Expat." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1927 +msgid "" +"If you dynamically allocate type objects in your extension, you should be " +"aware of a change in the rules relating to the :attr:`__module__` and :attr:" +"`~definition.__name__` attributes. In summary, you will want to ensure the " +"type's dictionary contains a ``'__module__'`` key; making the module name " +"the part of the type name leading up to the final period will no longer have " +"the desired effect. For more detail, read the API reference documentation " +"or the source." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1938 +msgid "Port-Specific Changes" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1940 +msgid "" +"Support for a port to IBM's OS/2 using the EMX runtime environment was " +"merged into the main Python source tree. EMX is a POSIX emulation layer " +"over the OS/2 system APIs. The Python port for EMX tries to support all the " +"POSIX-like capability exposed by the EMX runtime, and mostly succeeds; :func:" +"`fork` and :func:`fcntl` are restricted by the limitations of the underlying " +"emulation layer. The standard OS/2 port, which uses IBM's Visual Age " +"compiler, also gained support for case-sensitive import semantics as part of " +"the integration of the EMX port into CVS. (Contributed by Andrew MacIntyre.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1949 +msgid "" +"On MacOS, most toolbox modules have been weaklinked to improve backward " +"compatibility. This means that modules will no longer fail to load if a " +"single routine is missing on the current OS version. Instead calling the " +"missing routine will raise an exception. (Contributed by Jack Jansen.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1954 +msgid "" +"The RPM spec files, found in the :file:`Misc/RPM/` directory in the Python " +"source distribution, were updated for 2.3. (Contributed by Sean " +"Reifschneider.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1957 +msgid "" +"Other new platforms now supported by Python include AtheOS (http://www." +"atheos.cx/), GNU/Hurd, and OpenVMS." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1966 +msgid "Other Changes and Fixes" +msgstr "Autres changements et corrections" + +#: ../Doc/whatsnew/2.3.rst:1968 +msgid "" +"As usual, there were a bunch of other improvements and bugfixes scattered " +"throughout the source tree. A search through the CVS change logs finds " +"there were 523 patches applied and 514 bugs fixed between Python 2.2 and " +"2.3. Both figures are likely to be underestimates." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1973 +msgid "Some of the more notable changes are:" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1975 +msgid "" +"If the :envvar:`PYTHONINSPECT` environment variable is set, the Python " +"interpreter will enter the interactive prompt after running a Python " +"program, as if Python had been invoked with the :option:`-i` option. The " +"environment variable can be set before running the Python interpreter, or it " +"can be set by the Python program as part of its execution." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1981 +msgid "" +"The :file:`regrtest.py` script now provides a way to allow \"all resources " +"except *foo*.\" A resource name passed to the :option:`!-u` option can now " +"be prefixed with a hyphen (``'-'``) to mean \"remove this resource.\" For " +"example, the option '``-uall,-bsddb``' could be used to enable the use of " +"all resources except ``bsddb``." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1987 +msgid "" +"The tools used to build the documentation now work under Cygwin as well as " +"Unix." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1990 +msgid "" +"The ``SET_LINENO`` opcode has been removed. Back in the mists of time, this " +"opcode was needed to produce line numbers in tracebacks and support trace " +"functions (for, e.g., :mod:`pdb`). Since Python 1.5, the line numbers in " +"tracebacks have been computed using a different mechanism that works with " +"\"python -O\". For Python 2.3 Michael Hudson implemented a similar scheme " +"to determine when to call the trace function, removing the need for " +"``SET_LINENO`` entirely." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:1998 +msgid "" +"It would be difficult to detect any resulting difference from Python code, " +"apart from a slight speed up when Python is run without :option:`-O`." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2001 +msgid "" +"C extensions that access the :attr:`f_lineno` field of frame objects should " +"instead call ``PyCode_Addr2Line(f->f_code, f->f_lasti)``. This will have the " +"added effect of making the code work as desired under \"python -O\" in " +"earlier versions of Python." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2006 +msgid "" +"A nifty new feature is that trace functions can now assign to the :attr:" +"`f_lineno` attribute of frame objects, changing the line that will be " +"executed next. A ``jump`` command has been added to the :mod:`pdb` debugger " +"taking advantage of this new feature. (Implemented by Richie Hindle.)" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2015 +msgid "Porting to Python 2.3" +msgstr "Portage vers Python 2.3" + +#: ../Doc/whatsnew/2.3.rst:2017 +msgid "" +"This section lists previously described changes that may require changes to " +"your code:" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2020 +msgid "" +":keyword:`yield` is now always a keyword; if it's used as a variable name in " +"your code, a different name must be chosen." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2023 +msgid "" +"For strings *X* and *Y*, ``X in Y`` now works if *X* is more than one " +"character long." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2026 +msgid "" +"The :func:`int` type constructor will now return a long integer instead of " +"raising an :exc:`OverflowError` when a string or floating-point number is " +"too large to fit into an integer." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2030 +msgid "" +"If you have Unicode strings that contain 8-bit characters, you must declare " +"the file's encoding (UTF-8, Latin-1, or whatever) by adding a comment to the " +"top of the file. See section :ref:`section-encodings` for more information." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2034 +msgid "" +"Calling Tcl methods through :mod:`_tkinter` no longer returns only strings. " +"Instead, if Tcl returns other objects those objects are converted to their " +"Python equivalent, if one exists, or wrapped with a :class:`_tkinter." +"Tcl_Obj` object if no Python equivalent exists." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2039 +msgid "" +"Large octal and hex literals such as ``0xffffffff`` now trigger a :exc:" +"`FutureWarning`. Currently they're stored as 32-bit numbers and result in a " +"negative value, but in Python 2.4 they'll become positive long integers." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2043 +msgid "" +"There are a few ways to fix this warning. If you really need a positive " +"number, just add an ``L`` to the end of the literal. If you're trying to " +"get a 32-bit integer with low bits set and have previously used an " +"expression such as ``~(1 << 31)``, it's probably clearest to start with all " +"bits set and clear the desired upper bits. For example, to clear just the " +"top bit (bit 31), you could write ``0xffffffffL &~(1L<<31)``." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2050 +msgid "You can no longer disable assertions by assigning to ``__debug__``." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2052 +msgid "" +"The Distutils :func:`setup` function has gained various new keyword " +"arguments such as *depends*. Old versions of the Distutils will abort if " +"passed unknown keywords. A solution is to check for the presence of the " +"new :func:`get_distutil_options` function in your :file:`setup.py` and only " +"uses the new keywords with a version of the Distutils that supports them::" +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2065 +msgid "" +"Using ``None`` as a variable name will now result in a :exc:`SyntaxWarning` " +"warning." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2068 +msgid "" +"Names of extension types defined by the modules included with Python now " +"contain the module and a ``'.'`` in front of the type name." +msgstr "" + +#: ../Doc/whatsnew/2.3.rst:2077 +msgid "Acknowledgements" +msgstr "Remerciements" + +#: ../Doc/whatsnew/2.3.rst:2079 +msgid "" +"The author would like to thank the following people for offering " +"suggestions, corrections and assistance with various drafts of this article: " +"Jeff Bauer, Simon Brunning, Brett Cannon, Michael Chermside, Andrew Dalke, " +"Scott David Daniels, Fred L. Drake, Jr., David Fraser, Kelly Gerber, " +"Raymond Hettinger, Michael Hudson, Chris Lambert, Detlef Lannert, Martin von " +"Löwis, Andrew MacIntyre, Lalo Martins, Chad Netzer, Gustavo Niemeyer, Neal " +"Norwitz, Hans Nowak, Chris Reedy, Francesco Ricciardi, Vinay Sajip, Neil " +"Schemenauer, Roman Suzi, Jason Tishler, Just van Rossum." +msgstr "" diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po new file mode 100644 index 000000000..6ee513072 --- /dev/null +++ b/whatsnew/2.4.po @@ -0,0 +1,1809 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"PO-Revision-Date: 2018-08-01 00:06+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/whatsnew/2.4.rst:3 +msgid "What's New in Python 2.4" +msgstr "Nouveautés de Python 2.4" + +#: ../Doc/whatsnew/2.4.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/whatsnew/2.4.rst:5 +msgid "A.M. Kuchling" +msgstr "A.M. Kuchling" + +#: ../Doc/whatsnew/2.4.rst:14 +msgid "" +"This article explains the new features in Python 2.4.1, released on March " +"30, 2005." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:17 +msgid "" +"Python 2.4 is a medium-sized release. It doesn't introduce as many changes " +"as the radical Python 2.2, but introduces more features than the " +"conservative 2.3 release. The most significant new language features are " +"function decorators and generator expressions; most other changes are to the " +"standard library." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:22 +msgid "" +"According to the CVS change logs, there were 481 patches applied and 502 " +"bugs fixed between Python 2.3 and 2.4. Both figures are likely to be " +"underestimates." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:25 +msgid "" +"This article doesn't attempt to provide a complete specification of every " +"single new feature, but instead provides a brief introduction to each " +"feature. For full details, you should refer to the documentation for Python " +"2.4, such as the Python Library Reference and the Python Reference Manual. " +"Often you will be referred to the PEP for a particular new feature for " +"explanations of the implementation and design rationale." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:36 +msgid "PEP 218: Built-In Set Objects" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:38 +msgid "" +"Python 2.3 introduced the :mod:`sets` module. C implementations of set data " +"types have now been added to the Python core as two new built-in types, " +"``set(iterable)`` and ``frozenset(iterable)``. They provide high speed " +"operations for membership testing, for eliminating duplicates from " +"sequences, and for mathematical operations like unions, intersections, " +"differences, and symmetric differences. ::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:71 +msgid "" +"The :func:`frozenset` type is an immutable version of :func:`set`. Since it " +"is immutable and hashable, it may be used as a dictionary key or as a member " +"of another set." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:75 +msgid "" +"The :mod:`sets` module remains in the standard library, and may be useful if " +"you wish to subclass the :class:`Set` or :class:`ImmutableSet` classes. " +"There are currently no plans to deprecate the module." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:83 +msgid ":pep:`218` - Adding a Built-In Set Object Type" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:83 +msgid "" +"Originally proposed by Greg Wilson and ultimately implemented by Raymond " +"Hettinger." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:90 +msgid "PEP 237: Unifying Long Integers and Integers" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:92 +msgid "" +"The lengthy transition process for this PEP, begun in Python 2.2, takes " +"another step forward in Python 2.4. In 2.3, certain integer operations that " +"would behave differently after int/long unification triggered :exc:" +"`FutureWarning` warnings and returned values limited to 32 or 64 bits " +"(depending on your platform). In 2.4, these expressions no longer produce a " +"warning and instead produce a different result that's usually a long integer." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:99 +msgid "" +"The problematic expressions are primarily left shifts and lengthy " +"hexadecimal and octal constants. For example, ``2 << 32`` results in a " +"warning in 2.3, evaluating to 0 on 32-bit platforms. In Python 2.4, this " +"expression now returns the correct answer, 8589934592." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:108 +msgid ":pep:`237` - Unifying Long Integers and Integers" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:108 +msgid "" +"Original PEP written by Moshe Zadka and GvR. The changes for 2.4 were " +"implemented by Kalle Svensson." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:115 +msgid "PEP 289: Generator Expressions" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:117 +msgid "" +"The iterator feature introduced in Python 2.2 and the :mod:`itertools` " +"module make it easier to write programs that loop through large data sets " +"without having the entire data set in memory at one time. List " +"comprehensions don't fit into this picture very well because they produce a " +"Python list object containing all of the items. This unavoidably pulls all " +"of the objects into memory, which can be a problem if your data set is very " +"large. When trying to write a functionally-styled program, it would be " +"natural to write something like::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:129 +msgid "instead of ::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:136 +msgid "" +"The first form is more concise and perhaps more readable, but if you're " +"dealing with a large number of link objects you'd have to write the second " +"form to avoid having all link objects in memory at the same time." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:140 +msgid "" +"Generator expressions work similarly to list comprehensions but don't " +"materialize the entire list; instead they create a generator that will " +"return elements one by one. The above example could be written as::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:148 +msgid "" +"Generator expressions always have to be written inside parentheses, as in " +"the above example. The parentheses signalling a function call also count, " +"so if you want to create an iterator that will be immediately passed to a " +"function you could write::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:155 +msgid "" +"Generator expressions differ from list comprehensions in various small ways. " +"Most notably, the loop variable (*obj* in the above example) is not " +"accessible outside of the generator expression. List comprehensions leave " +"the variable assigned to its last value; future versions of Python will " +"change this, making list comprehensions match generator expressions in this " +"respect." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:165 +msgid ":pep:`289` - Generator Expressions" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:165 +msgid "" +"Proposed by Raymond Hettinger and implemented by Jiwon Seo with early " +"efforts steered by Hye-Shik Chang." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:172 +msgid "PEP 292: Simpler String Substitutions" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:174 +msgid "" +"Some new classes in the standard library provide an alternative mechanism " +"for substituting variables into strings; this style of substitution may be " +"better for applications where untrained users need to edit templates." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:178 +msgid "The usual way of substituting variables by name is the ``%`` operator::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:183 +msgid "" +"When writing the template string, it can be easy to forget the ``i`` or " +"``s`` after the closing parenthesis. This isn't a big problem if the " +"template is in a Python module, because you run the code, get an " +"\"Unsupported format character\" :exc:`ValueError`, and fix the problem. " +"However, consider an application such as Mailman where template strings or " +"translations are being edited by users who aren't aware of the Python " +"language. The format string's syntax is complicated to explain to such " +"users, and if they make a mistake, it's difficult to provide helpful " +"feedback to them." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:192 +msgid "" +"PEP 292 adds a :class:`Template` class to the :mod:`string` module that uses " +"``$`` to indicate a substitution::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:200 +msgid "" +"If a key is missing from the dictionary, the :meth:`substitute` method will " +"raise a :exc:`KeyError`. There's also a :meth:`safe_substitute` method that " +"ignores missing keys::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:211 +msgid ":pep:`292` - Simpler String Substitutions" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:212 +msgid "Written and implemented by Barry Warsaw." +msgstr "Écrit et implémenté par Barry Warsaw." + +#: ../Doc/whatsnew/2.4.rst:218 +msgid "PEP 318: Decorators for Functions and Methods" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:220 +msgid "" +"Python 2.2 extended Python's object model by adding static methods and class " +"methods, but it didn't extend Python's syntax to provide any new way of " +"defining static or class methods. Instead, you had to write a :keyword:" +"`def` statement in the usual way, and pass the resulting method to a :func:" +"`staticmethod` or :func:`classmethod` function that would wrap up the " +"function as a method of the new type. Your code would look like this::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:233 +msgid "" +"If the method was very long, it would be easy to miss or forget the :func:" +"`classmethod` invocation after the function body." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:236 +msgid "" +"The intention was always to add some syntax to make such definitions more " +"readable, but at the time of 2.2's release a good syntax was not obvious. " +"Today a good syntax *still* isn't obvious but users are asking for easier " +"access to the feature; a new syntactic feature has been added to meet this " +"need." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:241 +msgid "" +"The new feature is called \"function decorators\". The name comes from the " +"idea that :func:`classmethod`, :func:`staticmethod`, and friends are storing " +"additional information on a function object; they're *decorating* functions " +"with more details." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:246 +msgid "" +"The notation borrows from Java and uses the ``'@'`` character as an " +"indicator. Using the new syntax, the example above would be written::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:256 +msgid "" +"The ``@classmethod`` is shorthand for the ``meth=classmethod(meth)`` " +"assignment. More generally, if you have the following::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:265 +msgid "It's equivalent to the following pre-decorator code::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:270 +msgid "" +"Decorators must come on the line before a function definition, one decorator " +"per line, and can't be on the same line as the def statement, meaning that " +"``@A def f(): ...`` is illegal. You can only decorate function definitions, " +"either at the module level or inside a class; you can't decorate class " +"definitions." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:275 +msgid "" +"A decorator is just a function that takes the function to be decorated as an " +"argument and returns either the same function or some new object. The " +"return value of the decorator need not be callable (though it typically is), " +"unless further decorators will be applied to the result. It's easy to write " +"your own decorators. The following simple example just sets an attribute on " +"the function object::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:295 +msgid "" +"As a slightly more realistic example, the following decorator checks that " +"the supplied argument is an integer::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:313 +msgid "" +"An example in :pep:`318` contains a fancier version of this idea that lets " +"you both specify the required type and check the returned type." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:316 +msgid "" +"Decorator functions can take arguments. If arguments are supplied, your " +"decorator function is called with only those arguments and must return a new " +"decorator function; this function must take a single function and return a " +"function, as previously described. In other words, ``@A @B @C(args)`` " +"becomes::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:325 +msgid "" +"Getting this right can be slightly brain-bending, but it's not too difficult." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:327 +msgid "" +"A small related change makes the :attr:`func_name` attribute of functions " +"writable. This attribute is used to display function names in tracebacks, " +"so decorators should change the name of any new function that's constructed " +"and returned." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:338 +msgid ":pep:`318` - Decorators for Functions, Methods and Classes" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:336 +msgid "" +"Written by Kevin D. Smith, Jim Jewett, and Skip Montanaro. Several people " +"wrote patches implementing function decorators, but the one that was " +"actually checked in was patch #979728, written by Mark Russell." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:340 +msgid "https://wiki.python.org/moin/PythonDecoratorLibrary" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:341 +msgid "This Wiki page contains several examples of decorators." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:347 +msgid "PEP 322: Reverse Iteration" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:349 +msgid "" +"A new built-in function, ``reversed(seq)``, takes a sequence and returns an " +"iterator that loops over the elements of the sequence in reverse order. ::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:359 +msgid "" +"Compared to extended slicing, such as ``range(1,4)[::-1]``, :func:`reversed` " +"is easier to read, runs faster, and uses substantially less memory." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:362 +msgid "" +"Note that :func:`reversed` only accepts sequences, not arbitrary iterators. " +"If you want to reverse an iterator, first convert it to a list with :func:" +"`list`. ::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:376 +msgid ":pep:`322` - Reverse Iteration" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:377 +msgid "Written and implemented by Raymond Hettinger." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:383 +msgid "PEP 324: New subprocess Module" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:385 +msgid "" +"The standard library provides a number of ways to execute a subprocess, " +"offering different features and different levels of complexity. ``os." +"system(command)`` is easy to use, but slow (it runs a shell process which " +"executes the command) and dangerous (you have to be careful about escaping " +"the shell's metacharacters). The :mod:`popen2` module offers classes that " +"can capture standard output and standard error from the subprocess, but the " +"naming is confusing. The :mod:`subprocess` module cleans this up, " +"providing a unified interface that offers all the features you might need." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:394 +msgid "" +"Instead of :mod:`popen2`'s collection of classes, :mod:`subprocess` contains " +"a single class called :class:`Popen` whose constructor supports a number of " +"different keyword arguments. ::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:404 +msgid "" +"*args* is commonly a sequence of strings that will be the arguments to the " +"program executed as the subprocess. (If the *shell* argument is true, " +"*args* can be a string which will then be passed on to the shell for " +"interpretation, just as :func:`os.system` does.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:409 +msgid "" +"*stdin*, *stdout*, and *stderr* specify what the subprocess's input, output, " +"and error streams will be. You can provide a file object or a file " +"descriptor, or you can use the constant ``subprocess.PIPE`` to create a pipe " +"between the subprocess and the parent." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:417 +msgid "The constructor has a number of handy options:" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:419 +msgid "" +"*close_fds* requests that all file descriptors be closed before running the " +"subprocess." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:422 +msgid "" +"*cwd* specifies the working directory in which the subprocess will be " +"executed (defaulting to whatever the parent's working directory is)." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:425 +msgid "*env* is a dictionary specifying environment variables." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:427 +msgid "" +"*preexec_fn* is a function that gets called before the child is started." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:429 +msgid "" +"*universal_newlines* opens the child's input and output using Python's :term:" +"`universal newlines` feature." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:432 +msgid "" +"Once you've created the :class:`Popen` instance, you can call its :meth:" +"`wait` method to pause until the subprocess has exited, :meth:`poll` to " +"check if it's exited without pausing, or ``communicate(data)`` to send the " +"string *data* to the subprocess's standard input. ``communicate(data)`` " +"then reads any data that the subprocess has sent to its standard output or " +"standard error, returning a tuple ``(stdout_data, stderr_data)``." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:439 +msgid "" +":func:`call` is a shortcut that passes its arguments along to the :class:" +"`Popen` constructor, waits for the command to complete, and returns the " +"status code of the subprocess. It can serve as a safer analog to :func:`os." +"system`::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:451 +msgid "" +"The command is invoked without use of the shell. If you really do want to " +"use the shell, you can add ``shell=True`` as a keyword argument and provide " +"a string instead of a sequence::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:457 +msgid "" +"The PEP takes various examples of shell and Python code and shows how they'd " +"be translated into Python code that uses :mod:`subprocess`. Reading this " +"section of the PEP is highly recommended." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:465 +msgid ":pep:`324` - subprocess - New process module" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:465 +msgid "" +"Written and implemented by Peter Åstrand, with assistance from Fredrik Lundh " +"and others." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:472 +msgid "PEP 327: Decimal Data Type" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:474 +msgid "" +"Python has always supported floating-point (FP) numbers, based on the " +"underlying C :c:type:`double` type, as a data type. However, while most " +"programming languages provide a floating-point type, many people (even " +"programmers) are unaware that floating-point numbers don't represent certain " +"decimal fractions accurately. The new :class:`Decimal` type can represent " +"these fractions accurately, up to a user-specified precision limit." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:483 +msgid "Why is Decimal needed?" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:485 +msgid "" +"The limitations arise from the representation used for floating-point " +"numbers. FP numbers are made up of three components:" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:488 +msgid "The sign, which is positive or negative." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:490 +msgid "" +"The mantissa, which is a single-digit binary number followed by a " +"fractional part. For example, ``1.01`` in base-2 notation is ``1 + 0/2 + " +"1/4``, or 1.25 in decimal notation." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:494 +msgid "" +"The exponent, which tells where the decimal point is located in the number " +"represented." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:497 +msgid "" +"For example, the number 1.25 has positive sign, a mantissa value of 1.01 (in " +"binary), and an exponent of 0 (the decimal point doesn't need to be " +"shifted). The number 5 has the same sign and mantissa, but the exponent is 2 " +"because the mantissa is multiplied by 4 (2 to the power of the exponent 2); " +"1.25 \\* 4 equals 5." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:503 +msgid "" +"Modern systems usually provide floating-point support that conforms to a " +"standard called IEEE 754. C's :c:type:`double` type is usually implemented " +"as a 64-bit IEEE 754 number, which uses 52 bits of space for the mantissa. " +"This means that numbers can only be specified to 52 bits of precision. If " +"you're trying to represent numbers whose expansion repeats endlessly, the " +"expansion is cut off after 52 bits. Unfortunately, most software needs to " +"produce output in base 10, and common fractions in base 10 are often " +"repeating decimals in binary. For example, 1.1 decimal is binary " +"``1.0001100110011 ...``; .1 = 1/16 + 1/32 + 1/256 plus an infinite number of " +"additional terms. IEEE 754 has to chop off that infinitely repeated decimal " +"after 52 digits, so the representation is slightly inaccurate." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:515 +msgid "Sometimes you can see this inaccuracy when the number is printed::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:520 +msgid "" +"The inaccuracy isn't always visible when you print the number because the FP-" +"to-decimal-string conversion is provided by the C library, and most C " +"libraries try to produce sensible output. Even if it's not displayed, " +"however, the inaccuracy is still there and subsequent operations can magnify " +"the error." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:525 +msgid "" +"For many applications this doesn't matter. If I'm plotting points and " +"displaying them on my monitor, the difference between 1.1 and " +"1.1000000000000001 is too small to be visible. Reports often limit output " +"to a certain number of decimal places, and if you round the number to two or " +"three or even eight decimal places, the error is never apparent. However, " +"for applications where it does matter, it's a lot of work to implement your " +"own custom arithmetic routines." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:533 +msgid "Hence, the :class:`Decimal` type was created." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:537 +msgid "The :class:`Decimal` type" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:539 +msgid "" +"A new module, :mod:`decimal`, was added to Python's standard library. It " +"contains two classes, :class:`Decimal` and :class:`Context`. :class:" +"`Decimal` instances represent numbers, and :class:`Context` instances are " +"used to wrap up various settings such as the precision and default rounding " +"mode." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:544 +msgid "" +":class:`Decimal` instances are immutable, like regular Python integers and " +"FP numbers; once it's been created, you can't change the value an instance " +"represents. :class:`Decimal` instances can be created from integers or " +"strings::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:555 +msgid "" +"You can also provide tuples containing the sign, the mantissa represented " +"as a tuple of decimal digits, and the exponent::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:561 +msgid "" +"Cautionary note: the sign bit is a Boolean value, so 0 is positive and 1 is " +"negative." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:564 +msgid "" +"Converting from floating-point numbers poses a bit of a problem: should the " +"FP number representing 1.1 turn into the decimal number for exactly 1.1, or " +"for 1.1 plus whatever inaccuracies are introduced? The decision was to dodge " +"the issue and leave such a conversion out of the API. Instead, you should " +"convert the floating-point number into a string using the desired precision " +"and pass the string to the :class:`Decimal` constructor::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:577 +msgid "" +"Once you have :class:`Decimal` instances, you can perform the usual " +"mathematical operations on them. One limitation: exponentiation requires an " +"integer exponent::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:598 +msgid "" +"You can combine :class:`Decimal` instances with integers, but not with " +"floating-point numbers::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:609 +msgid "" +":class:`Decimal` numbers can be used with the :mod:`math` and :mod:`cmath` " +"modules, but note that they'll be immediately converted to floating-point " +"numbers before the operation is performed, resulting in a possible loss of " +"precision and accuracy. You'll also get back a regular floating-point " +"number and not a :class:`Decimal`. ::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:622 +msgid "" +":class:`Decimal` instances have a :meth:`sqrt` method that returns a :class:" +"`Decimal`, but if you need other things such as trigonometric functions " +"you'll have to implement them. ::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:631 +msgid "The :class:`Context` type" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:633 +msgid "" +"Instances of the :class:`Context` class encapsulate several settings for " +"decimal operations:" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:636 +msgid ":attr:`prec` is the precision, the number of decimal places." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:638 +msgid "" +":attr:`rounding` specifies the rounding mode. The :mod:`decimal` module has " +"constants for the various possibilities: :const:`ROUND_DOWN`, :const:" +"`ROUND_CEILING`, :const:`ROUND_HALF_EVEN`, and various others." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:642 +msgid "" +":attr:`traps` is a dictionary specifying what happens on encountering " +"certain error conditions: either an exception is raised or a value is " +"returned. Some examples of error conditions are division by zero, loss of " +"precision, and overflow." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:647 +msgid "" +"There's a thread-local default context available by calling :func:" +"`getcontext`; you can change the properties of this context to alter the " +"default precision, rounding, or trap handling. The following example shows " +"the effect of changing the precision of the default context::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:660 +msgid "" +"The default action for error conditions is selectable; the module can either " +"return a special value such as infinity or not-a-number, or exceptions can " +"be raised::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:673 +msgid "" +"The :class:`Context` instance also has various methods for formatting " +"numbers such as :meth:`to_eng_string` and :meth:`to_sci_string`." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:676 +msgid "" +"For more information, see the documentation for the :mod:`decimal` module, " +"which includes a quick-start tutorial and a reference." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:684 +msgid ":pep:`327` - Decimal Data Type" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:683 +msgid "" +"Written by Facundo Batista and implemented by Facundo Batista, Eric Price, " +"Raymond Hettinger, Aahz, and Tim Peters." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:688 +msgid "http://www.lahey.com/float.htm" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:687 +msgid "" +"The article uses Fortran code to illustrate many of the problems that " +"floating-point inaccuracy can cause." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:692 +msgid "http://speleotrove.com/decimal/" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:691 +msgid "" +"A description of a decimal-based representation. This representation is " +"being proposed as a standard, and underlies the new Python decimal type. " +"Much of this material was written by Mike Cowlishaw, designer of the Rexx " +"language." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:699 +msgid "PEP 328: Multi-line Imports" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:701 +msgid "" +"One language change is a small syntactic tweak aimed at making it easier to " +"import many names from a module. In a ``from module import names`` " +"statement, *names* is a sequence of names separated by commas. If the " +"sequence is very long, you can either write multiple imports from the same " +"module, or you can use backslashes to escape the line endings like this::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:712 +msgid "" +"The syntactic change in Python 2.4 simply allows putting the names within " +"parentheses. Python ignores newlines within a parenthesized expression, so " +"the backslashes are no longer needed::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:721 +msgid "" +"The PEP also proposes that all :keyword:`import` statements be absolute " +"imports, with a leading ``.`` character to indicate a relative import. This " +"part of the PEP was not implemented for Python 2.4, but was completed for " +"Python 2.5." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:728 +msgid ":pep:`328` - Imports: Multi-Line and Absolute/Relative" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:729 +msgid "Written by Aahz. Multi-line imports were implemented by Dima Dorfman." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:735 +msgid "PEP 331: Locale-Independent Float/String Conversions" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:737 +msgid "" +"The :mod:`locale` modules lets Python software select various conversions " +"and display conventions that are localized to a particular country or " +"language. However, the module was careful to not change the numeric locale " +"because various functions in Python's implementation required that the " +"numeric locale remain set to the ``'C'`` locale. Often this was because the " +"code was using the C library's :c:func:`atof` function." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:744 +msgid "" +"Not setting the numeric locale caused trouble for extensions that used third-" +"party C libraries, however, because they wouldn't have the correct locale " +"set. The motivating example was GTK+, whose user interface widgets weren't " +"displaying numbers in the current locale." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:749 +msgid "" +"The solution described in the PEP is to add three new functions to the " +"Python API that perform ASCII-only conversions, ignoring the locale setting:" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:752 +msgid "" +"``PyOS_ascii_strtod(str, ptr)`` and ``PyOS_ascii_atof(str, ptr)`` both " +"convert a string to a C :c:type:`double`." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:755 +msgid "" +"``PyOS_ascii_formatd(buffer, buf_len, format, d)`` converts a :c:type:" +"`double` to an ASCII string." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:758 +msgid "" +"The code for these functions came from the GLib library (https://developer." +"gnome.org/glib/stable/), whose developers kindly relicensed the relevant " +"functions and donated them to the Python Software Foundation. The :mod:" +"`locale` module can now change the numeric locale, letting extensions such " +"as GTK+ produce the correct results." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:767 +msgid ":pep:`331` - Locale-Independent Float/String Conversions" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:768 +msgid "Written by Christian R. Reis, and implemented by Gustavo Carneiro." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:774 +msgid "Other Language Changes" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:776 +msgid "" +"Here are all of the changes that Python 2.4 makes to the core Python " +"language." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:778 +msgid "Decorators for functions and methods were added (:pep:`318`)." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:780 +msgid "" +"Built-in :func:`set` and :func:`frozenset` types were added (:pep:`218`). " +"Other new built-ins include the ``reversed(seq)`` function (:pep:`322`)." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:783 +msgid "Generator expressions were added (:pep:`289`)." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:785 +msgid "" +"Certain numeric expressions no longer return values restricted to 32 or 64 " +"bits (:pep:`237`)." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:788 +msgid "" +"You can now put parentheses around the list of names in a ``from module " +"import names`` statement (:pep:`328`)." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:791 +msgid "" +"The :meth:`dict.update` method now accepts the same argument forms as the :" +"class:`dict` constructor. This includes any mapping, any iterable of key/" +"value pairs, and keyword arguments. (Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:795 +msgid "" +"The string methods :meth:`ljust`, :meth:`rjust`, and :meth:`center` now take " +"an optional argument for specifying a fill character other than a space. " +"(Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:799 +msgid "" +"Strings also gained an :meth:`rsplit` method that works like the :meth:" +"`split` method but splits from the end of the string. (Contributed by Sean " +"Reifschneider.) ::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:808 +msgid "" +"Three keyword parameters, *cmp*, *key*, and *reverse*, were added to the :" +"meth:`sort` method of lists. These parameters make some common usages of :" +"meth:`sort` simpler. All of these parameters are optional." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:812 +msgid "" +"For the *cmp* parameter, the value should be a comparison function that " +"takes two parameters and returns -1, 0, or +1 depending on how the " +"parameters compare. This function will then be used to sort the list. " +"Previously this was the only parameter that could be provided to :meth:" +"`sort`." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:817 +msgid "" +"*key* should be a single-parameter function that takes a list element and " +"returns a comparison key for the element. The list is then sorted using the " +"comparison keys. The following example sorts a list case-insensitively::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:834 +msgid "" +"The last example, which uses the *cmp* parameter, is the old way to perform " +"a case-insensitive sort. It works but is slower than using a *key* " +"parameter. Using *key* calls :meth:`lower` method once for each element in " +"the list while using *cmp* will call it twice for each comparison, so using " +"*key* saves on invocations of the :meth:`lower` method." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:840 +msgid "" +"For simple key functions and comparison functions, it is often possible to " +"avoid a :keyword:`lambda` expression by using an unbound method instead. " +"For example, the above case-insensitive sort is best written as::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:848 +msgid "" +"Finally, the *reverse* parameter takes a Boolean value. If the value is " +"true, the list will be sorted into reverse order. Instead of ``L.sort(); L." +"reverse()``, you can now write ``L.sort(reverse=True)``." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:852 +msgid "" +"The results of sorting are now guaranteed to be stable. This means that two " +"entries with equal keys will be returned in the same order as they were " +"input. For example, you can sort a list of people by name, and then sort the " +"list by age, resulting in a list sorted by age where people with the same " +"age are in name-sorted order." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:858 +msgid "(All changes to :meth:`sort` contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:860 +msgid "" +"There is a new built-in function ``sorted(iterable)`` that works like the in-" +"place :meth:`list.sort` method but can be used in expressions. The " +"differences are:" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:864 +msgid "the input may be any iterable;" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:866 +msgid "a newly formed copy is sorted, leaving the original intact; and" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:868 +msgid "the expression returns the new sorted copy" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:891 ../Doc/whatsnew/2.4.rst:919 +#: ../Doc/whatsnew/2.4.rst:1212 +msgid "(Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:893 ../Doc/whatsnew/2.4.rst:1519 +msgid "" +"Integer operations will no longer trigger an :exc:`OverflowWarning`. The :" +"exc:`OverflowWarning` warning will disappear in Python 2.5." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:896 +msgid "" +"The interpreter gained a new switch, :option:`-m`, that takes a name, " +"searches for the corresponding module on ``sys.path``, and runs the module " +"as a script. For example, you can now run the Python profiler with ``python " +"-m profile``. (Contributed by Nick Coghlan.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:901 +msgid "" +"The ``eval(expr, globals, locals)`` and ``execfile(filename, globals, " +"locals)`` functions and the ``exec`` statement now accept any mapping type " +"for the *locals* parameter. Previously this had to be a regular Python " +"dictionary. (Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:906 +msgid "" +"The :func:`zip` built-in function and :func:`itertools.izip` now return an " +"empty list if called with no arguments. Previously they raised a :exc:" +"`TypeError` exception. This makes them more suitable for use with variable " +"length argument lists::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:921 +msgid "" +"Encountering a failure while importing a module no longer leaves a partially-" +"initialized module object in ``sys.modules``. The incomplete module object " +"left behind would fool further imports of the same module into succeeding, " +"leading to confusing errors. (Fixed by Tim Peters.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:926 +msgid "" +":const:`None` is now a constant; code that binds a new value to the name " +"``None`` is now a syntax error. (Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:933 +msgid "Optimizations" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:935 +msgid "" +"The inner loops for list and tuple slicing were optimized and now run about " +"one-third faster. The inner loops for dictionaries were also optimized, " +"resulting in performance boosts for :meth:`keys`, :meth:`values`, :meth:" +"`items`, :meth:`iterkeys`, :meth:`itervalues`, and :meth:`iteritems`. " +"(Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:941 +msgid "" +"The machinery for growing and shrinking lists was optimized for speed and " +"for space efficiency. Appending and popping from lists now runs faster due " +"to more efficient code paths and less frequent use of the underlying system :" +"c:func:`realloc`. List comprehensions also benefit. :meth:`list.extend` " +"was also optimized and no longer converts its argument into a temporary list " +"before extending the base list. (Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:948 +msgid "" +":func:`list`, :func:`tuple`, :func:`map`, :func:`filter`, and :func:`zip` " +"now run several times faster with non-sequence arguments that supply a :meth:" +"`__len__` method. (Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:952 +msgid "" +"The methods :meth:`list.__getitem__`, :meth:`dict.__getitem__`, and :meth:" +"`dict.__contains__` are now implemented as :class:`method_descriptor` " +"objects rather than :class:`wrapper_descriptor` objects. This form of " +"access doubles their performance and makes them more suitable for use as " +"arguments to functionals: ``map(mydict.__getitem__, keylist)``. (Contributed " +"by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:959 +msgid "" +"Added a new opcode, ``LIST_APPEND``, that simplifies the generated bytecode " +"for list comprehensions and speeds them up by about a third. (Contributed " +"by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:963 +msgid "" +"The peephole bytecode optimizer has been improved to produce shorter, " +"faster bytecode; remarkably, the resulting bytecode is more readable. " +"(Enhanced by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:967 +msgid "" +"String concatenations in statements of the form ``s = s + \"abc\"`` and ``s " +"+= \"abc\"`` are now performed more efficiently in certain circumstances. " +"This optimization won't be present in other Python implementations such as " +"Jython, so you shouldn't rely on it; using the :meth:`join` method of " +"strings is still recommended when you want to efficiently glue a large " +"number of strings together. (Contributed by Armin Rigo.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:974 +msgid "" +"The net result of the 2.4 optimizations is that Python 2.4 runs the pystone " +"benchmark around 5% faster than Python 2.3 and 35% faster than Python 2.2. " +"(pystone is not a particularly good benchmark, but it's the most commonly " +"used measurement of Python's performance. Your own applications may show " +"greater or smaller benefits from Python 2.4.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:990 +msgid "New, Improved, and Deprecated Modules" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:992 +msgid "" +"As usual, Python's standard library received a number of enhancements and " +"bug fixes. Here's a partial list of the most notable changes, sorted " +"alphabetically by module name. Consult the :file:`Misc/NEWS` file in the " +"source tree for a more complete list of changes, or look through the CVS " +"logs for all the details." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:997 +msgid "" +"The :mod:`asyncore` module's :func:`loop` function now has a *count* " +"parameter that lets you perform a limited number of passes through the " +"polling loop. The default is still to loop forever." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1001 +msgid "" +"The :mod:`base64` module now has more complete :rfc:`3548` support for " +"Base64, Base32, and Base16 encoding and decoding, including optional case " +"folding and optional alternative alphabets. (Contributed by Barry Warsaw.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1005 +msgid "" +"The :mod:`bisect` module now has an underlying C implementation for improved " +"performance. (Contributed by Dmitry Vasiliev.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1008 +msgid "" +"The CJKCodecs collections of East Asian codecs, maintained by Hye-Shik " +"Chang, was integrated into 2.4. The new encodings are:" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1011 +msgid "Chinese (PRC): gb2312, gbk, gb18030, big5hkscs, hz" +msgstr "Chinois (PRC) : *gb2312*, *gbk*, *gb18030*, *big5hkscs*, *hz*" + +#: ../Doc/whatsnew/2.4.rst:1013 +msgid "Chinese (ROC): big5, cp950" +msgstr "Chinois (ROC) : *big5*, *cp950*" + +#: ../Doc/whatsnew/2.4.rst:1017 +msgid "Japanese: cp932, euc-jis-2004, euc-jp, euc-jisx0213, iso-2022-jp," +msgstr "" +"Japonais : *cp932*, *euc-jis-2004*, *euc-jp*, *euc-jisx0213*, *iso-2022-jp*," + +#: ../Doc/whatsnew/2.4.rst:1016 +msgid "" +"iso-2022-jp-1, iso-2022-jp-2, iso-2022-jp-3, iso-2022-jp-ext, iso-2022-" +"jp-2004, shift-jis, shift-jisx0213, shift-jis-2004" +msgstr "" +"*iso-2022-jp-1*, *iso-2022-jp-2*, *iso-2022-jp-3*, *iso-2022-jp-ext*, " +"*iso-2022-jp-2004*, *shift-jis*, *shift-jisx0213*, *shift-jis-2004*" + +#: ../Doc/whatsnew/2.4.rst:1019 +msgid "Korean: cp949, euc-kr, johab, iso-2022-kr" +msgstr "Coréen : *cp949*, *euc-kr*, *johab*, *iso-2022-kr*" + +#: ../Doc/whatsnew/2.4.rst:1021 +msgid "" +"Some other new encodings were added: HP Roman8, ISO_8859-11, ISO_8859-16, " +"PCTP-154, and TIS-620." +msgstr "" +"D’autres encodages ont été ajoutés : HP Roman8, ISO_8859-11, ISO_8859-16, " +"PCTP-154, et TIS-620." + +#: ../Doc/whatsnew/2.4.rst:1024 +msgid "" +"The UTF-8 and UTF-16 codecs now cope better with receiving partial input. " +"Previously the :class:`StreamReader` class would try to read more data, " +"making it impossible to resume decoding from the stream. The :meth:`read` " +"method will now return as much data as it can and future calls will resume " +"decoding where previous ones left off. (Implemented by Walter Dörwald.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1030 +msgid "" +"There is a new :mod:`collections` module for various specialized collection " +"datatypes. Currently it contains just one type, :class:`deque`, a double-" +"ended queue that supports efficiently adding and removing elements from " +"either end::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1050 +msgid "" +"Several modules, such as the :mod:`Queue` and :mod:`threading` modules, now " +"take advantage of :class:`collections.deque` for improved performance. " +"(Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1054 +msgid "" +"The :mod:`ConfigParser` classes have been enhanced slightly. The :meth:" +"`read` method now returns a list of the files that were successfully parsed, " +"and the :meth:`set` method raises :exc:`TypeError` if passed a *value* " +"argument that isn't a string. (Contributed by John Belmonte and David " +"Goodger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1059 +msgid "" +"The :mod:`curses` module now supports the ncurses extension :func:" +"`use_default_colors`. On platforms where the terminal supports " +"transparency, this makes it possible to use a transparent background. " +"(Contributed by Jörg Lehmann.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1064 +msgid "" +"The :mod:`difflib` module now includes an :class:`HtmlDiff` class that " +"creates an HTML table showing a side by side comparison of two versions of a " +"text. (Contributed by Dan Gass.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1068 +msgid "" +"The :mod:`email` package was updated to version 3.0, which dropped various " +"deprecated APIs and removes support for Python versions earlier than 2.3. " +"The 3.0 version of the package uses a new incremental parser for MIME " +"messages, available in the :mod:`email.FeedParser` module. The new parser " +"doesn't require reading the entire message into memory, and doesn't raise " +"exceptions if a message is malformed; instead it records any problems in " +"the :attr:`defect` attribute of the message. (Developed by Anthony Baxter, " +"Barry Warsaw, Thomas Wouters, and others.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1077 +msgid "" +"The :mod:`heapq` module has been converted to C. The resulting tenfold " +"improvement in speed makes the module suitable for handling high volumes of " +"data. In addition, the module has two new functions :func:`nlargest` and :" +"func:`nsmallest` that use heaps to find the N largest or smallest values in " +"a dataset without the expense of a full sort. (Contributed by Raymond " +"Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1083 +msgid "" +"The :mod:`httplib` module now contains constants for HTTP status codes " +"defined in various HTTP-related RFC documents. Constants have names such " +"as :const:`OK`, :const:`CREATED`, :const:`CONTINUE`, and :const:" +"`MOVED_PERMANENTLY`; use pydoc to get a full list. (Contributed by Andrew " +"Eland.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1089 +msgid "" +"The :mod:`imaplib` module now supports IMAP's THREAD command (contributed by " +"Yves Dionne) and new :meth:`deleteacl` and :meth:`myrights` methods " +"(contributed by Arnaud Mazin)." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1093 +msgid "" +"The :mod:`itertools` module gained a ``groupby(iterable[, *func*])`` " +"function. *iterable* is something that can be iterated over to return a " +"stream of elements, and the optional *func* parameter is a function that " +"takes an element and returns a key value; if omitted, the key is simply the " +"element itself. :func:`groupby` then groups the elements into subsequences " +"which have matching values of the key, and returns a series of 2-tuples " +"containing the key value and an iterator over the subsequence." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1101 +msgid "" +"Here's an example to make this clearer. The *key* function simply returns " +"whether a number is even or odd, so the result of :func:`groupby` is to " +"return consecutive runs of odd or even numbers. ::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1117 +msgid "" +":func:`groupby` is typically used with sorted input. The logic for :func:" +"`groupby` is similar to the Unix ``uniq`` filter which makes it handy for " +"eliminating, counting, or identifying duplicate elements::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1140 +msgid "(Contributed by Hye-Shik Chang.)" +msgstr "(Contribution par Hye-Shik Chang.)" + +#: ../Doc/whatsnew/2.4.rst:1142 +msgid "" +":mod:`itertools` also gained a function named ``tee(iterator, N)`` that " +"returns *N* independent iterators that replicate *iterator*. If *N* is " +"omitted, the default is 2. ::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1155 +msgid "" +"Note that :func:`tee` has to keep copies of the values returned by the " +"iterator; in the worst case, it may need to keep all of them. This should " +"therefore be used carefully if the leading iterator can run far ahead of the " +"trailing iterator in a long stream of inputs. If the separation is large, " +"then you might as well use :func:`list` instead. When the iterators track " +"closely with one another, :func:`tee` is ideal. Possible applications " +"include bookmarking, windowing, or lookahead iterators. (Contributed by " +"Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1164 +msgid "" +"A number of functions were added to the :mod:`locale` module, such as :func:" +"`bind_textdomain_codeset` to specify a particular encoding and a family of :" +"func:`l\\*gettext` functions that return messages in the chosen encoding. " +"(Contributed by Gustavo Niemeyer.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1169 +msgid "" +"Some keyword arguments were added to the :mod:`logging` package's :func:" +"`basicConfig` function to simplify log configuration. The default behavior " +"is to log messages to standard error, but various keyword arguments can be " +"specified to log to a particular file, change the logging format, or set the " +"logging level. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1180 +msgid "" +"Other additions to the :mod:`logging` package include a ``log(level, msg)`` " +"convenience method, as well as a :class:`TimedRotatingFileHandler` class " +"that rotates its log files at a timed interval. The module already had :" +"class:`RotatingFileHandler`, which rotated logs once the file exceeded a " +"certain size. Both classes derive from a new :class:`BaseRotatingHandler` " +"class that can be used to implement other rotating handlers." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1187 +msgid "(Changes implemented by Vinay Sajip.)" +msgstr "(Changements implémentés par Vinay Sajip.)" + +#: ../Doc/whatsnew/2.4.rst:1189 +msgid "" +"The :mod:`marshal` module now shares interned strings on unpacking a data " +"structure. This may shrink the size of certain pickle strings, but the " +"primary effect is to make :file:`.pyc` files significantly smaller. " +"(Contributed by Martin von Löwis.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1194 +msgid "" +"The :mod:`nntplib` module's :class:`NNTP` class gained :meth:`description` " +"and :meth:`descriptions` methods to retrieve newsgroup descriptions for a " +"single group or for a range of groups. (Contributed by Jürgen A. Erhard.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1198 +msgid "" +"Two new functions were added to the :mod:`operator` module, " +"``attrgetter(attr)`` and ``itemgetter(index)``. Both functions return " +"callables that take a single argument and return the corresponding attribute " +"or item; these callables make excellent data extractors when used with :func:" +"`map` or :func:`sorted`. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1214 +msgid "" +"The :mod:`optparse` module was updated in various ways. The module now " +"passes its messages through :func:`gettext.gettext`, making it possible to " +"internationalize Optik's help and error messages. Help messages for options " +"can now include the string ``'%default'``, which will be replaced by the " +"option's default value. (Contributed by Greg Ward.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1220 +msgid "" +"The long-term plan is to deprecate the :mod:`rfc822` module in some future " +"Python release in favor of the :mod:`email` package. To this end, the :func:" +"`email.Utils.formatdate` function has been changed to make it usable as a " +"replacement for :func:`rfc822.formatdate`. You may want to write new e-mail " +"processing code with this in mind. (Change implemented by Anthony Baxter.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1226 +msgid "" +"A new ``urandom(n)`` function was added to the :mod:`os` module, returning a " +"string containing *n* bytes of random data. This function provides access " +"to platform-specific sources of randomness such as :file:`/dev/urandom` on " +"Linux or the Windows CryptoAPI. (Contributed by Trevor Perrin.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1231 +msgid "" +"Another new function: ``os.path.lexists(path)`` returns true if the file " +"specified by *path* exists, whether or not it's a symbolic link. This " +"differs from the existing ``os.path.exists(path)`` function, which returns " +"false if *path* is a symlink that points to a destination that doesn't " +"exist. (Contributed by Beni Cherniavsky.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1237 +msgid "" +"A new :func:`getsid` function was added to the :mod:`posix` module that " +"underlies the :mod:`os` module. (Contributed by J. Raynor.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1240 +msgid "" +"The :mod:`poplib` module now supports POP over SSL. (Contributed by Hector " +"Urtubia.)" +msgstr "" +"Le module :mod:`poplib` supporte maintenant POP sur SSL. (Contribution par " +"Hector Urtubia.)" + +#: ../Doc/whatsnew/2.4.rst:1243 +msgid "" +"The :mod:`profile` module can now profile C extension functions. " +"(Contributed by Nick Bastin.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1246 +msgid "" +"The :mod:`random` module has a new method called ``getrandbits(N)`` that " +"returns a long integer *N* bits in length. The existing :meth:`randrange` " +"method now uses :meth:`getrandbits` where appropriate, making generation of " +"arbitrarily large random numbers more efficient. (Contributed by Raymond " +"Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1252 +msgid "" +"The regular expression language accepted by the :mod:`re` module was " +"extended with simple conditional expressions, written as ``(?(group)A|B)``. " +"*group* is either a numeric group ID or a group name defined with ``(?" +"P...)`` earlier in the expression. If the specified group matched, " +"the regular expression pattern *A* will be tested against the string; if the " +"group didn't match, the pattern *B* will be used instead. (Contributed by " +"Gustavo Niemeyer.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1259 +msgid "" +"The :mod:`re` module is also no longer recursive, thanks to a massive amount " +"of work by Gustavo Niemeyer. In a recursive regular expression engine, " +"certain patterns result in a large amount of C stack space being consumed, " +"and it was possible to overflow the stack. For example, if you matched a " +"30000-byte string of ``a`` characters against the expression ``(a|b)+``, one " +"stack frame was consumed per character. Python 2.3 tried to check for stack " +"overflow and raise a :exc:`RuntimeError` exception, but certain patterns " +"could sidestep the checking and if you were unlucky Python could segfault. " +"Python 2.4's regular expression engine can match this pattern without " +"problems." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1269 +msgid "" +"The :mod:`signal` module now performs tighter error-checking on the " +"parameters to the :func:`signal.signal` function. For example, you can't " +"set a handler on the :const:`SIGKILL` signal; previous versions of Python " +"would quietly accept this, but 2.4 will raise a :exc:`RuntimeError` " +"exception." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1274 +msgid "" +"Two new functions were added to the :mod:`socket` module. :func:`socketpair` " +"returns a pair of connected sockets and ``getservbyport(port)`` looks up the " +"service name for a given port number. (Contributed by Dave Cole and Barry " +"Warsaw.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1279 +msgid "" +"The :func:`sys.exitfunc` function has been deprecated. Code should be using " +"the existing :mod:`atexit` module, which correctly handles calling multiple " +"exit functions. Eventually :func:`sys.exitfunc` will become a purely " +"internal interface, accessed only by :mod:`atexit`." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1284 +msgid "" +"The :mod:`tarfile` module now generates GNU-format tar files by default. " +"(Contributed by Lars Gustäbel.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1287 +msgid "" +"The :mod:`threading` module now has an elegantly simple way to support " +"thread-local data. The module contains a :class:`local` class whose " +"attribute values are local to different threads. ::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1297 +msgid "" +"Other threads can assign and retrieve their own values for the :attr:" +"`number` and :attr:`url` attributes. You can subclass :class:`local` to " +"initialize attributes or to add methods. (Contributed by Jim Fulton.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1301 +msgid "" +"The :mod:`timeit` module now automatically disables periodic garbage " +"collection during the timing loop. This change makes consecutive timings " +"more comparable. (Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1305 +msgid "" +"The :mod:`weakref` module now supports a wider variety of objects including " +"Python functions, class instances, sets, frozensets, deques, arrays, files, " +"sockets, and regular expression pattern objects. (Contributed by Raymond " +"Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1310 +msgid "" +"The :mod:`xmlrpclib` module now supports a multi-call extension for " +"transmitting multiple XML-RPC calls in a single HTTP operation. (Contributed " +"by Brian Quinlan.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1314 +msgid "" +"The :mod:`mpz`, :mod:`rotor`, and :mod:`xreadlines` modules have been " +"removed." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1323 +msgid "cookielib" +msgstr "cookielib" + +#: ../Doc/whatsnew/2.4.rst:1325 +msgid "" +"The :mod:`cookielib` library supports client-side handling for HTTP cookies, " +"mirroring the :mod:`Cookie` module's server-side cookie support. Cookies are " +"stored in cookie jars; the library transparently stores cookies offered by " +"the web server in the cookie jar, and fetches the cookie from the jar when " +"connecting to the server. As in web browsers, policy objects control whether " +"cookies are accepted or not." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1332 +msgid "" +"In order to store cookies across sessions, two implementations of cookie " +"jars are provided: one that stores cookies in the Netscape format so " +"applications can use the Mozilla or Lynx cookie files, and one that stores " +"cookies in the same format as the Perl libwww library." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1337 +msgid "" +":mod:`urllib2` has been changed to interact with :mod:`cookielib`: :class:" +"`HTTPCookieProcessor` manages a cookie jar that is used when accessing URLs." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1341 +msgid "This module was contributed by John J. Lee." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1347 +msgid "doctest" +msgstr "doctest" + +#: ../Doc/whatsnew/2.4.rst:1349 +msgid "" +"The :mod:`doctest` module underwent considerable refactoring thanks to " +"Edward Loper and Tim Peters. Testing can still be as simple as running :" +"func:`doctest.testmod`, but the refactorings allow customizing the module's " +"operation in various ways" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1354 +msgid "" +"The new :class:`DocTestFinder` class extracts the tests from a given " +"object's docstrings::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1370 +msgid "" +"The new :class:`DocTestRunner` class then runs individual tests and can " +"produce a summary of the results::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1379 +msgid "The above example produces the following output::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1387 +msgid "" +":class:`DocTestRunner` uses an instance of the :class:`OutputChecker` class " +"to compare the expected output with the actual output. This class takes a " +"number of different flags that customize its behaviour; ambitious users can " +"also write a completely new subclass of :class:`OutputChecker`." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1392 +msgid "" +"The default output checker provides a number of handy features. For example, " +"with the :const:`doctest.ELLIPSIS` option flag, an ellipsis (``...``) in the " +"expected output matches any substring, making it easier to accommodate " +"outputs that vary in minor ways::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1403 +msgid "Another special string, ````, matches a blank line::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1411 +msgid "" +"Another new capability is producing a diff-style display of the output by " +"specifying the :const:`doctest.REPORT_UDIFF` (unified diffs), :const:" +"`doctest.REPORT_CDIFF` (context diffs), or :const:`doctest.REPORT_NDIFF` " +"(delta-style) option flags. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1427 +msgid "" +"Running the above function's tests with :const:`doctest.REPORT_UDIFF` " +"specified, you get the following output:" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1448 +msgid "Build and C API Changes" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1450 +msgid "Some of the changes to Python's build process and to the C API are:" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1452 +msgid "" +"Three new convenience macros were added for common return values from " +"extension functions: :c:macro:`Py_RETURN_NONE`, :c:macro:`Py_RETURN_TRUE`, " +"and :c:macro:`Py_RETURN_FALSE`. (Contributed by Brett Cannon.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1456 +msgid "" +"Another new macro, :c:macro:`Py_CLEAR(obj)`, decreases the reference count " +"of *obj* and sets *obj* to the null pointer. (Contributed by Jim Fulton.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1459 +msgid "" +"A new function, ``PyTuple_Pack(N, obj1, obj2, ..., objN)``, constructs " +"tuples from a variable length argument list of Python objects. (Contributed " +"by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1463 +msgid "" +"A new function, ``PyDict_Contains(d, k)``, implements fast dictionary " +"lookups without masking exceptions raised during the look-up process. " +"(Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1467 +msgid "" +"The :c:macro:`Py_IS_NAN(X)` macro returns 1 if its float or double argument " +"*X* is a NaN. (Contributed by Tim Peters.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1470 +msgid "" +"C code can avoid unnecessary locking by using the new :c:func:" +"`PyEval_ThreadsInitialized` function to tell if any thread operations have " +"been performed. If this function returns false, no lock operations are " +"needed. (Contributed by Nick Coghlan.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1475 +msgid "" +"A new function, :c:func:`PyArg_VaParseTupleAndKeywords`, is the same as :c:" +"func:`PyArg_ParseTupleAndKeywords` but takes a :c:type:`va_list` instead of " +"a number of arguments. (Contributed by Greg Chapman.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1479 +msgid "" +"A new method flag, :const:`METH_COEXISTS`, allows a function defined in " +"slots to co-exist with a :c:type:`PyCFunction` having the same name. This " +"can halve the access time for a method such as :meth:`set.__contains__`. " +"(Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1484 +msgid "" +"Python can now be built with additional profiling for the interpreter " +"itself, intended as an aid to people developing the Python core. Providing :" +"option:`!--enable-profiling` to the :program:`configure` script will let you " +"profile the interpreter with :program:`gprof`, and providing the :option:`!--" +"with-tsc` switch enables profiling using the Pentium's Time-Stamp-Counter " +"register. Note that the :option:`!--with-tsc` switch is slightly misnamed, " +"because the profiling feature also works on the PowerPC platform, though " +"that processor architecture doesn't call that register \"the TSC register" +"\". (Contributed by Jeremy Hylton.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1494 +msgid "" +"The :c:type:`tracebackobject` type has been renamed to :c:type:" +"`PyTracebackObject`." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1501 +msgid "Port-Specific Changes" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1503 +msgid "" +"The Windows port now builds under MSVC++ 7.1 as well as version 6. " +"(Contributed by Martin von Löwis.)" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1510 +msgid "Porting to Python 2.4" +msgstr "Portage vers Python 2.4" + +#: ../Doc/whatsnew/2.4.rst:1512 +msgid "" +"This section lists previously described changes that may require changes to " +"your code:" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1515 +msgid "" +"Left shifts and hexadecimal/octal constants that are too large no longer " +"trigger a :exc:`FutureWarning` and return a value limited to 32 or 64 bits; " +"instead they return a long integer." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1522 +msgid "" +"The :func:`zip` built-in function and :func:`itertools.izip` now return an " +"empty list instead of raising a :exc:`TypeError` exception if called with no " +"arguments." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1526 +msgid "" +"You can no longer compare the :class:`date` and :class:`~datetime.datetime` " +"instances provided by the :mod:`datetime` module. Two instances of " +"different classes will now always be unequal, and relative comparisons " +"(``<``, ``>``) will raise a :exc:`TypeError`." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1531 +msgid "" +":func:`dircache.listdir` now passes exceptions to the caller instead of " +"returning empty lists." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1534 +msgid "" +":func:`LexicalHandler.startDTD` used to receive the public and system IDs in " +"the wrong order. This has been corrected; applications relying on the wrong " +"order need to be fixed." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1538 +msgid "" +":func:`fcntl.ioctl` now warns if the *mutate* argument is omitted and " +"relevant." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1541 +msgid "" +"The :mod:`tarfile` module now generates GNU-format tar files by default." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1543 +msgid "" +"Encountering a failure while importing a module no longer leaves a partially-" +"initialized module object in ``sys.modules``." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1546 +msgid "" +":const:`None` is now a constant; code that binds a new value to the name " +"``None`` is now a syntax error." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1549 +msgid "" +"The :func:`signals.signal` function now raises a :exc:`RuntimeError` " +"exception for certain illegal values; previously these errors would pass " +"silently. For example, you can no longer set a handler on the :const:" +"`SIGKILL` signal." +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:1559 +msgid "Acknowledgements" +msgstr "Remerciements" + +#: ../Doc/whatsnew/2.4.rst:1561 +msgid "" +"The author would like to thank the following people for offering " +"suggestions, corrections and assistance with various drafts of this article: " +"Koray Can, Hye-Shik Chang, Michael Dyck, Raymond Hettinger, Brian Hurt, " +"Hamish Lawson, Fredrik Lundh, Sean Reifschneider, Sadruddin Rejeb." +msgstr "" diff --git a/whatsnew/2.5.po b/whatsnew/2.5.po new file mode 100644 index 000000000..4f85cd2d8 --- /dev/null +++ b/whatsnew/2.5.po @@ -0,0 +1,2744 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2018-07-31 23:32+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/whatsnew/2.5.rst:3 +msgid "What's New in Python 2.5" +msgstr "Nouveautés de Python 2.5" + +#: ../Doc/whatsnew/2.5.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/whatsnew/2.5.rst:5 +msgid "A.M. Kuchling" +msgstr "A.M. Kuchling" + +#: ../Doc/whatsnew/2.5.rst:12 +msgid "" +"This article explains the new features in Python 2.5. The final release of " +"Python 2.5 is scheduled for August 2006; :pep:`356` describes the planned " +"release schedule." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:16 +msgid "" +"The changes in Python 2.5 are an interesting mix of language and library " +"improvements. The library enhancements will be more important to Python's " +"user community, I think, because several widely-useful packages were added. " +"New modules include ElementTree for XML processing (:mod:`xml.etree`), the " +"SQLite database module (:mod:`sqlite`), and the :mod:`ctypes` module for " +"calling C functions." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:23 +msgid "" +"The language changes are of middling significance. Some pleasant new " +"features were added, but most of them aren't features that you'll use every " +"day. Conditional expressions were finally added to the language using a " +"novel syntax; see section :ref:`pep-308`. The new ':keyword:`with`' " +"statement will make writing cleanup code easier (section :ref:`pep-343`). " +"Values can now be passed into generators (section :ref:`pep-342`). Imports " +"are now visible as either absolute or relative (section :ref:`pep-328`). " +"Some corner cases of exception handling are handled better (section :ref:" +"`pep-341`). All these improvements are worthwhile, but they're improvements " +"to one specific language feature or another; none of them are broad " +"modifications to Python's semantics." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:34 +msgid "" +"As well as the language and library additions, other improvements and " +"bugfixes were made throughout the source tree. A search through the SVN " +"change logs finds there were 353 patches applied and 458 bugs fixed between " +"Python 2.4 and 2.5. (Both figures are likely to be underestimates.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:39 +msgid "" +"This article doesn't try to be a complete specification of the new features; " +"instead changes are briefly introduced using helpful examples. For full " +"details, you should always refer to the documentation for Python 2.5 at " +"https://docs.python.org. If you want to understand the complete " +"implementation and design rationale, refer to the PEP for a particular new " +"feature." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:45 +msgid "" +"Comments, suggestions, and error reports for this document are welcome; " +"please e-mail them to the author or open a bug in the Python bug tracker." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:54 +msgid "PEP 308: Conditional Expressions" +msgstr "PEP 308 : Expressions conditionnelles" + +#: ../Doc/whatsnew/2.5.rst:56 +msgid "" +"For a long time, people have been requesting a way to write conditional " +"expressions, which are expressions that return value A or value B depending " +"on whether a Boolean value is true or false. A conditional expression lets " +"you write a single assignment statement that has the same effect as the " +"following::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:66 +msgid "" +"There have been endless tedious discussions of syntax on both python-dev and " +"comp.lang.python. A vote was even held that found the majority of voters " +"wanted conditional expressions in some form, but there was no syntax that " +"was preferred by a clear majority. Candidates included C's ``cond ? true_v : " +"false_v``, ``if cond then true_v else false_v``, and 16 other variations." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:72 +msgid "Guido van Rossum eventually chose a surprising syntax::" +msgstr "Guido van Rossum a finalement choisi une syntaxe surprenante ::" + +#: ../Doc/whatsnew/2.5.rst:76 +msgid "" +"Evaluation is still lazy as in existing Boolean expressions, so the order of " +"evaluation jumps around a bit. The *condition* expression in the middle is " +"evaluated first, and the *true_value* expression is evaluated only if the " +"condition was true. Similarly, the *false_value* expression is only " +"evaluated when the condition is false." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:82 +msgid "" +"This syntax may seem strange and backwards; why does the condition go in the " +"*middle* of the expression, and not in the front as in C's ``c ? x : y``? " +"The decision was checked by applying the new syntax to the modules in the " +"standard library and seeing how the resulting code read. In many cases " +"where a conditional expression is used, one value seems to be the 'common " +"case' and one value is an 'exceptional case', used only on rarer occasions " +"when the condition isn't met. The conditional syntax makes this pattern a " +"bit more obvious::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:92 +msgid "" +"I read the above statement as meaning \"here *contents* is usually assigned " +"a value of ``doc+'\\n'``; sometimes *doc* is empty, in which special case " +"an empty string is returned.\" I doubt I will use conditional expressions " +"very often where there isn't a clear common and uncommon case." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:97 +msgid "" +"There was some discussion of whether the language should require surrounding " +"conditional expressions with parentheses. The decision was made to *not* " +"require parentheses in the Python language's grammar, but as a matter of " +"style I think you should always use them. Consider these two statements::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:108 +msgid "" +"In the first version, I think a reader's eye might group the statement into " +"'level = 1', 'if logging', 'else 0', and think that the condition decides " +"whether the assignment to *level* is performed. The second version reads " +"better, in my opinion, because it makes it clear that the assignment is " +"always performed and the choice is being made between two values." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:114 +msgid "" +"Another reason for including the brackets: a few odd combinations of list " +"comprehensions and lambdas could look like incorrect conditional " +"expressions. See :pep:`308` for some examples. If you put parentheses " +"around your conditional expressions, you won't run into this case." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:123 +msgid ":pep:`308` - Conditional Expressions" +msgstr ":pep:`308` -- Expressions conditionnelles" + +#: ../Doc/whatsnew/2.5.rst:123 +msgid "" +"PEP written by Guido van Rossum and Raymond D. Hettinger; implemented by " +"Thomas Wouters." +msgstr "" +"PEP écrite par Guido van Rossum et Raymond D. Hettinger; implémentée par " +"Thomas Wouters." + +#: ../Doc/whatsnew/2.5.rst:132 +msgid "PEP 309: Partial Function Application" +msgstr "PEP 309 : Application partielle de fonction" + +#: ../Doc/whatsnew/2.5.rst:134 +msgid "" +"The :mod:`functools` module is intended to contain tools for functional-" +"style programming." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:137 +msgid "" +"One useful tool in this module is the :func:`partial` function. For programs " +"written in a functional style, you'll sometimes want to construct variants " +"of existing functions that have some of the parameters filled in. Consider " +"a Python function ``f(a, b, c)``; you could create a new function ``g(b, " +"c)`` that was equivalent to ``f(1, b, c)``. This is called \"partial " +"function application\"." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:144 +msgid "" +":func:`partial` takes the arguments ``(function, arg1, arg2, ... " +"kwarg1=value1, kwarg2=value2)``. The resulting object is callable, so you " +"can just call it to invoke *function* with the filled-in arguments." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:148 +msgid "Here's a small but realistic example::" +msgstr "Voici un exemple court mais réaliste ::" + +#: ../Doc/whatsnew/2.5.rst:160 +msgid "" +"Here's another example, from a program that uses PyGTK. Here a context-" +"sensitive pop-up menu is being constructed dynamically. The callback " +"provided for the menu option is a partially applied version of the :meth:" +"`open_item` method, where the first argument has been provided. ::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:173 +msgid "" +"Another function in the :mod:`functools` module is the " +"``update_wrapper(wrapper, wrapped)`` function that helps you write well-" +"behaved decorators. :func:`update_wrapper` copies the name, module, and " +"docstring attribute to a wrapper function so that tracebacks inside the " +"wrapped function are easier to understand. For example, you might write::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:186 +msgid "" +":func:`wraps` is a decorator that can be used inside your own decorators to " +"copy the wrapped function's information. An alternate version of the " +"previous example would be::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:201 +msgid ":pep:`309` - Partial Function Application" +msgstr ":pep:`309` -- Application partielle de fonction" + +#: ../Doc/whatsnew/2.5.rst:201 +msgid "" +"PEP proposed and written by Peter Harris; implemented by Hye-Shik Chang and " +"Nick Coghlan, with adaptations by Raymond Hettinger." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:210 +msgid "PEP 314: Metadata for Python Software Packages v1.1" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:212 +msgid "" +"Some simple dependency support was added to Distutils. The :func:`setup` " +"function now has ``requires``, ``provides``, and ``obsoletes`` keyword " +"parameters. When you build a source distribution using the ``sdist`` " +"command, the dependency information will be recorded in the :file:`PKG-INFO` " +"file." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:217 +msgid "" +"Another new keyword parameter is ``download_url``, which should be set to a " +"URL for the package's source code. This means it's now possible to look up " +"an entry in the package index, determine the dependencies for a package, and " +"download the required packages. ::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:231 +msgid "" +"Another new enhancement to the Python package index at https://pypi.org is " +"storing source and binary archives for a package. The new :command:`upload` " +"Distutils command will upload a package to the repository." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:236 +msgid "" +"Before a package can be uploaded, you must be able to build a distribution " +"using the :command:`sdist` Distutils command. Once that works, you can run " +"``python setup.py upload`` to add your package to the PyPI archive. " +"Optionally you can GPG-sign the package by supplying the :option:`!--sign` " +"and :option:`!--identity` options." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:242 +msgid "" +"Package uploading was implemented by Martin von Löwis and Richard Jones." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:248 +msgid ":pep:`314` - Metadata for Python Software Packages v1.1" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:248 +msgid "" +"PEP proposed and written by A.M. Kuchling, Richard Jones, and Fred Drake; " +"implemented by Richard Jones and Fred Drake." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:257 +msgid "PEP 328: Absolute and Relative Imports" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:259 +msgid "" +"The simpler part of PEP 328 was implemented in Python 2.4: parentheses could " +"now be used to enclose the names imported from a module using the ``from ... " +"import ...`` statement, making it easier to import many different names." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:263 +msgid "" +"The more complicated part has been implemented in Python 2.5: importing a " +"module can be specified to use absolute or package-relative imports. The " +"plan is to move toward making absolute imports the default in future " +"versions of Python." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:267 +msgid "Let's say you have a package directory like this::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:274 +msgid "" +"This defines a package named :mod:`pkg` containing the :mod:`pkg.main` and :" +"mod:`pkg.string` submodules." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:277 +msgid "" +"Consider the code in the :file:`main.py` module. What happens if it " +"executes the statement ``import string``? In Python 2.4 and earlier, it " +"will first look in the package's directory to perform a relative import, " +"finds :file:`pkg/string.py`, imports the contents of that file as the :mod:" +"`pkg.string` module, and that module is bound to the name ``string`` in the :" +"mod:`pkg.main` module's namespace." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:284 +msgid "" +"That's fine if :mod:`pkg.string` was what you wanted. But what if you " +"wanted Python's standard :mod:`string` module? There's no clean way to " +"ignore :mod:`pkg.string` and look for the standard module; generally you had " +"to look at the contents of ``sys.modules``, which is slightly unclean. " +"Holger Krekel's :mod:`py.std` package provides a tidier way to perform " +"imports from the standard library, ``import py; py.std.string.join()``, but " +"that package isn't available on all Python installations." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:292 +msgid "" +"Reading code which relies on relative imports is also less clear, because a " +"reader may be confused about which module, :mod:`string` or :mod:`pkg." +"string`, is intended to be used. Python users soon learned not to duplicate " +"the names of standard library modules in the names of their packages' " +"submodules, but you can't protect against having your submodule's name being " +"used for a new module added in a future version of Python." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:299 +msgid "" +"In Python 2.5, you can switch :keyword:`import`'s behaviour to absolute " +"imports using a ``from __future__ import absolute_import`` directive. This " +"absolute-import behaviour will become the default in a future version " +"(probably Python 2.7). Once absolute imports are the default, ``import " +"string`` will always find the standard library's version. It's suggested " +"that users should begin using absolute imports as much as possible, so it's " +"preferable to begin writing ``from pkg import string`` in your code." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:307 +msgid "" +"Relative imports are still possible by adding a leading period to the " +"module name when using the ``from ... import`` form::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:315 +msgid "" +"This imports the :mod:`string` module relative to the current package, so " +"in :mod:`pkg.main` this will import *name1* and *name2* from :mod:`pkg." +"string`. Additional leading periods perform the relative import starting " +"from the parent of the current package. For example, code in the :mod:`A.B." +"C` module can do::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:324 +msgid "" +"Leading periods cannot be used with the ``import modname`` form of the " +"import statement, only the ``from ... import`` form." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:331 +msgid ":pep:`328` - Imports: Multi-Line and Absolute/Relative" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:331 +msgid "PEP written by Aahz; implemented by Thomas Wouters." +msgstr "PEP écrite par Aahz; implémentée par Thomas Wouters." + +#: ../Doc/whatsnew/2.5.rst:333 +msgid "https://pylib.readthedocs.io/" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:334 +msgid "" +"The py library by Holger Krekel, which contains the :mod:`py.std` package." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:342 +msgid "PEP 338: Executing Modules as Scripts" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:344 +msgid "" +"The :option:`-m` switch added in Python 2.4 to execute a module as a script " +"gained a few more abilities. Instead of being implemented in C code inside " +"the Python interpreter, the switch now uses an implementation in a new " +"module, :mod:`runpy`." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:349 +msgid "" +"The :mod:`runpy` module implements a more sophisticated import mechanism so " +"that it's now possible to run modules in a package such as :mod:`pychecker." +"checker`. The module also supports alternative import mechanisms such as " +"the :mod:`zipimport` module. This means you can add a .zip archive's path " +"to ``sys.path`` and then use the :option:`-m` switch to execute code from " +"the archive." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:359 +msgid ":pep:`338` - Executing modules as scripts" +msgstr ":pep:`338` - Executing modules as scripts" + +#: ../Doc/whatsnew/2.5.rst:360 +msgid "PEP written and implemented by Nick Coghlan." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:368 +msgid "PEP 341: Unified try/except/finally" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:370 +msgid "" +"Until Python 2.5, the :keyword:`try` statement came in two flavours. You " +"could use a :keyword:`finally` block to ensure that code is always executed, " +"or one or more :keyword:`except` blocks to catch specific exceptions. You " +"couldn't combine both :keyword:`!except` blocks and a :keyword:`!finally` " +"block, because generating the right bytecode for the combined version was " +"complicated and it wasn't clear what the semantics of the combined statement " +"should be." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:377 +msgid "" +"Guido van Rossum spent some time working with Java, which does support the " +"equivalent of combining :keyword:`except` blocks and a :keyword:`finally` " +"block, and this clarified what the statement should mean. In Python 2.5, " +"you can now write::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:393 +msgid "" +"The code in *block-1* is executed. If the code raises an exception, the " +"various :keyword:`except` blocks are tested: if the exception is of class :" +"class:`Exception1`, *handler-1* is executed; otherwise if it's of class :" +"class:`Exception2`, *handler-2* is executed, and so forth. If no exception " +"is raised, the *else-block* is executed." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:399 +msgid "" +"No matter what happened previously, the *final-block* is executed once the " +"code block is complete and any raised exceptions handled. Even if there's an " +"error in an exception handler or the *else-block* and a new exception is " +"raised, the code in the *final-block* is still run." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:407 +msgid ":pep:`341` - Unifying try-except and try-finally" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:408 +msgid "PEP written by Georg Brandl; implementation by Thomas Lee." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:416 +msgid "PEP 342: New Generator Features" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:418 +msgid "" +"Python 2.5 adds a simple way to pass values *into* a generator. As " +"introduced in Python 2.3, generators only produce output; once a generator's " +"code was invoked to create an iterator, there was no way to pass any new " +"information into the function when its execution is resumed. Sometimes the " +"ability to pass in some information would be useful. Hackish solutions to " +"this include making the generator's code look at a global variable and then " +"changing the global variable's value, or passing in some mutable object that " +"callers then modify." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:426 +msgid "To refresh your memory of basic generators, here's a simple example::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:434 +msgid "" +"When you call ``counter(10)``, the result is an iterator that returns the " +"values from 0 up to 9. On encountering the :keyword:`yield` statement, the " +"iterator returns the provided value and suspends the function's execution, " +"preserving the local variables. Execution resumes on the following call to " +"the iterator's :meth:`next` method, picking up after the :keyword:`!yield` " +"statement." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:440 +msgid "" +"In Python 2.3, :keyword:`yield` was a statement; it didn't return any " +"value. In 2.5, :keyword:`!yield` is now an expression, returning a value " +"that can be assigned to a variable or otherwise operated on::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:446 +msgid "" +"I recommend that you always put parentheses around a :keyword:`yield` " +"expression when you're doing something with the returned value, as in the " +"above example. The parentheses aren't always necessary, but it's easier to " +"always add them instead of having to remember when they're needed." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:451 +msgid "" +"(:pep:`342` explains the exact rules, which are that a :keyword:`yield`\\ -" +"expression must always be parenthesized except when it occurs at the top-" +"level expression on the right-hand side of an assignment. This means you " +"can write ``val = yield i`` but have to use parentheses when there's an " +"operation, as in ``val = (yield i) + 12``.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:458 +msgid "" +"Values are sent into a generator by calling its ``send(value)`` method. The " +"generator's code is then resumed and the :keyword:`yield` expression returns " +"the specified *value*. If the regular :meth:`next` method is called, the :" +"keyword:`!yield` returns :const:`None`." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:463 +msgid "" +"Here's the previous example, modified to allow changing the value of the " +"internal counter. ::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:476 +msgid "And here's an example of changing the counter::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:493 +msgid "" +":keyword:`yield` will usually return :const:`None`, so you should always " +"check for this case. Don't just use its value in expressions unless you're " +"sure that the :meth:`send` method will be the only method used to resume " +"your generator function." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:498 +msgid "" +"In addition to :meth:`send`, there are two other new methods on generators:" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:500 +msgid "" +"``throw(type, value=None, traceback=None)`` is used to raise an exception " +"inside the generator; the exception is raised by the :keyword:`yield` " +"expression where the generator's execution is paused." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:504 +msgid "" +":meth:`close` raises a new :exc:`GeneratorExit` exception inside the " +"generator to terminate the iteration. On receiving this exception, the " +"generator's code must either raise :exc:`GeneratorExit` or :exc:" +"`StopIteration`. Catching the :exc:`GeneratorExit` exception and returning " +"a value is illegal and will trigger a :exc:`RuntimeError`; if the function " +"raises some other exception, that exception is propagated to the caller. :" +"meth:`close` will also be called by Python's garbage collector when the " +"generator is garbage-collected." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:512 +msgid "" +"If you need to run cleanup code when a :exc:`GeneratorExit` occurs, I " +"suggest using a ``try: ... finally:`` suite instead of catching :exc:" +"`GeneratorExit`." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:515 +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:518 +msgid "" +"Generators also become *coroutines*, a more generalized form of subroutines. " +"Subroutines are entered at one point and exited at another point (the top of " +"the function, and a :keyword:`return` statement), but coroutines can be " +"entered, exited, and resumed at many different points (the :keyword:`yield` " +"statements). We'll have to figure out patterns for using coroutines " +"effectively in Python." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:524 +msgid "" +"The addition of the :meth:`close` method has one side effect that isn't " +"obvious. :meth:`close` is called when a generator is garbage-collected, so " +"this means the generator's code gets one last chance to run before the " +"generator is destroyed. This last chance means that ``try...finally`` " +"statements in generators can now be guaranteed to work; the :keyword:" +"`finally` clause will now always get a chance to run. The syntactic " +"restriction that you couldn't mix :keyword:`yield` statements with a ``try..." +"finally`` suite has therefore been removed. This seems like a minor bit of " +"language trivia, but using generators and ``try...finally`` is actually " +"necessary in order to implement the :keyword:`with` statement described by " +"PEP 343. I'll look at this new statement in the following section." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:536 +msgid "" +"Another even more esoteric effect of this change: previously, the :attr:" +"`gi_frame` attribute of a generator was always a frame object. It's now " +"possible for :attr:`gi_frame` to be ``None`` once the generator has been " +"exhausted." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:549 +msgid ":pep:`342` - Coroutines via Enhanced Generators" +msgstr ":pep:`342` -- Coroutines *via* des générateurs améliorés" + +#: ../Doc/whatsnew/2.5.rst:545 +msgid "" +"PEP written by Guido van Rossum and Phillip J. Eby; implemented by Phillip " +"J. Eby. Includes examples of some fancier uses of generators as coroutines." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:548 +msgid "" +"Earlier versions of these features were proposed in :pep:`288` by Raymond " +"Hettinger and :pep:`325` by Samuele Pedroni." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:552 +msgid "https://en.wikipedia.org/wiki/Coroutine" +msgstr "https://en.wikipedia.org/wiki/Coroutine" + +#: ../Doc/whatsnew/2.5.rst:552 +msgid "The Wikipedia entry for coroutines." +msgstr "L’article de Wikipédia sur les coroutines." + +#: ../Doc/whatsnew/2.5.rst:554 +msgid "http://www.sidhe.org/~dan/blog/archives/000178.html" +msgstr "http://www.sidhe.org/~dan/blog/archives/000178.html" + +#: ../Doc/whatsnew/2.5.rst:555 +msgid "" +"An explanation of coroutines from a Perl point of view, written by Dan " +"Sugalski." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:563 +msgid "PEP 343: The 'with' statement" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:565 +msgid "" +"The ':keyword:`with`' statement clarifies code that previously would use " +"``try...finally`` blocks to ensure that clean-up code is executed. In this " +"section, I'll discuss the statement as it will commonly be used. In the " +"next section, I'll examine the implementation details and show how to write " +"objects for use with this statement." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:571 +msgid "" +"The ':keyword:`with`' statement is a new control-flow structure whose basic " +"structure is::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:577 +msgid "" +"The expression is evaluated, and it should result in an object that supports " +"the context management protocol (that is, has :meth:`__enter__` and :meth:" +"`__exit__` methods." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:581 +msgid "" +"The object's :meth:`__enter__` is called before *with-block* is executed and " +"therefore can run set-up code. It also may return a value that is bound to " +"the name *variable*, if given. (Note carefully that *variable* is *not* " +"assigned the result of *expression*.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:586 +msgid "" +"After execution of the *with-block* is finished, the object's :meth:" +"`__exit__` method is called, even if the block raised an exception, and can " +"therefore run clean-up code." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:590 +msgid "" +"To enable the statement in Python 2.5, you need to add the following " +"directive to your module::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:595 +msgid "The statement will always be enabled in Python 2.6." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:597 +msgid "" +"Some standard Python objects now support the context management protocol and " +"can be used with the ':keyword:`with`' statement. File objects are one " +"example::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:605 +msgid "" +"After this statement has executed, the file object in *f* will have been " +"automatically closed, even if the :keyword:`for` loop raised an exception " +"part-way through the block." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:611 +msgid "" +"In this case, *f* is the same object created by :func:`open`, because :meth:" +"`file.__enter__` returns *self*." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:614 +msgid "" +"The :mod:`threading` module's locks and condition variables also support " +"the ':keyword:`with`' statement::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:622 +msgid "" +"The lock is acquired before the block is executed and always released once " +"the block is complete." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:625 +msgid "" +"The new :func:`localcontext` function in the :mod:`decimal` module makes it " +"easy to save and restore the current decimal context, which encapsulates the " +"desired precision and rounding characteristics for computations::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:644 +msgid "Writing Context Managers" +msgstr "Écrire des gestionnaires de contexte" + +#: ../Doc/whatsnew/2.5.rst:646 +msgid "" +"Under the hood, the ':keyword:`with`' statement is fairly complicated. Most " +"people will only use ':keyword:`!with`' in company with existing objects and " +"don't need to know these details, so you can skip the rest of this section " +"if you like. Authors of new objects will need to understand the details of " +"the underlying implementation and should keep reading." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:652 +msgid "A high-level explanation of the context management protocol is:" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:654 +msgid "" +"The expression is evaluated and should result in an object called a " +"\"context manager\". The context manager must have :meth:`__enter__` and :" +"meth:`__exit__` methods." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:658 +msgid "" +"The context manager's :meth:`__enter__` method is called. The value " +"returned is assigned to *VAR*. If no ``'as VAR'`` clause is present, the " +"value is simply discarded." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:662 +msgid "The code in *BLOCK* is executed." +msgstr "Le code dans *BLOCK* est exécuté." + +#: ../Doc/whatsnew/2.5.rst:664 +msgid "" +"If *BLOCK* raises an exception, the ``__exit__(type, value, traceback)`` is " +"called with the exception details, the same values returned by :func:`sys." +"exc_info`. The method's return value controls whether the exception is re-" +"raised: any false value re-raises the exception, and ``True`` will result in " +"suppressing it. You'll only rarely want to suppress the exception, because " +"if you do the author of the code containing the ':keyword:`with`' statement " +"will never realize anything went wrong." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:672 +msgid "" +"If *BLOCK* didn't raise an exception, the :meth:`__exit__` method is still " +"called, but *type*, *value*, and *traceback* are all ``None``." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:675 +msgid "" +"Let's think through an example. I won't present detailed code but will only " +"sketch the methods necessary for a database that supports transactions." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:678 +msgid "" +"(For people unfamiliar with database terminology: a set of changes to the " +"database are grouped into a transaction. Transactions can be either " +"committed, meaning that all the changes are written into the database, or " +"rolled back, meaning that the changes are all discarded and the database is " +"unchanged. See any database textbook for more information.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:684 +msgid "" +"Let's assume there's an object representing a database connection. Our goal " +"will be to let the user write code like this::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:693 +msgid "" +"The transaction should be committed if the code in the block runs flawlessly " +"or rolled back if there's an exception. Here's the basic interface for :" +"class:`DatabaseConnection` that I'll assume::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:706 +msgid "" +"The :meth:`__enter__` method is pretty easy, having only to start a new " +"transaction. For this application the resulting cursor object would be a " +"useful result, so the method will return it. The user can then add ``as " +"cursor`` to their ':keyword:`with`' statement to bind the cursor to a " +"variable name. ::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:718 +msgid "" +"The :meth:`__exit__` method is the most complicated because it's where most " +"of the work has to be done. The method has to check if an exception " +"occurred. If there was no exception, the transaction is committed. The " +"transaction is rolled back if there was an exception." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:723 +msgid "" +"In the code below, execution will just fall off the end of the function, " +"returning the default value of ``None``. ``None`` is false, so the " +"exception will be re-raised automatically. If you wished, you could be more " +"explicit and add a :keyword:`return` statement at the marked location. ::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:743 +msgid "The contextlib module" +msgstr "Le module *contextlib*" + +#: ../Doc/whatsnew/2.5.rst:745 +msgid "" +"The new :mod:`contextlib` module provides some functions and a decorator " +"that are useful for writing objects for use with the ':keyword:`with`' " +"statement." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:748 +msgid "" +"The decorator is called :func:`contextmanager`, and lets you write a single " +"generator function instead of defining a new class. The generator should " +"yield exactly one value. The code up to the :keyword:`yield` will be " +"executed as the :meth:`__enter__` method, and the value yielded will be the " +"method's return value that will get bound to the variable in the ':keyword:" +"`with`' statement's :keyword:`!as` clause, if any. The code after the :" +"keyword:`yield` will be executed in the :meth:`__exit__` method. Any " +"exception raised in the block will be raised by the :keyword:`!yield` " +"statement." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:757 +msgid "" +"Our database example from the previous section could be written using this " +"decorator as::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:777 +msgid "" +"The :mod:`contextlib` module also has a ``nested(mgr1, mgr2, ...)`` function " +"that combines a number of context managers so you don't need to write nested " +"':keyword:`with`' statements. In this example, the single ':keyword:`!" +"with`' statement both starts a database transaction and acquires a thread " +"lock::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:786 +msgid "" +"Finally, the ``closing(object)`` function returns *object* so that it can be " +"bound to a variable, and calls ``object.close`` at the end of the block. ::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:803 +msgid ":pep:`343` - The \"with\" statement" +msgstr ":pep:`343` - The \"with\" statement" + +#: ../Doc/whatsnew/2.5.rst:800 +msgid "" +"PEP written by Guido van Rossum and Nick Coghlan; implemented by Mike Bland, " +"Guido van Rossum, and Neal Norwitz. The PEP shows the code generated for a " +"':keyword:`with`' statement, which can be helpful in learning how the " +"statement works." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:805 +msgid "The documentation for the :mod:`contextlib` module." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:813 +msgid "PEP 352: Exceptions as New-Style Classes" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:815 +msgid "" +"Exception classes can now be new-style classes, not just classic classes, " +"and the built-in :exc:`Exception` class and all the standard built-in " +"exceptions (:exc:`NameError`, :exc:`ValueError`, etc.) are now new-style " +"classes." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:819 +msgid "" +"The inheritance hierarchy for exceptions has been rearranged a bit. In 2.5, " +"the inheritance relationships are::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:828 +msgid "" +"This rearrangement was done because people often want to catch all " +"exceptions that indicate program errors. :exc:`KeyboardInterrupt` and :exc:" +"`SystemExit` aren't errors, though, and usually represent an explicit action " +"such as the user hitting :kbd:`Control-C` or code calling :func:`sys.exit`. " +"A bare ``except:`` will catch all exceptions, so you commonly need to list :" +"exc:`KeyboardInterrupt` and :exc:`SystemExit` in order to re-raise them. " +"The usual pattern is::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:843 +msgid "" +"In Python 2.5, you can now write ``except Exception`` to achieve the same " +"result, catching all the exceptions that usually indicate errors but " +"leaving :exc:`KeyboardInterrupt` and :exc:`SystemExit` alone. As in " +"previous versions, a bare ``except:`` still catches all exceptions." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:848 +msgid "" +"The goal for Python 3.0 is to require any class raised as an exception to " +"derive from :exc:`BaseException` or some descendant of :exc:`BaseException`, " +"and future releases in the Python 2.x series may begin to enforce this " +"constraint. Therefore, I suggest you begin making all your exception classes " +"derive from :exc:`Exception` now. It's been suggested that the bare " +"``except:`` form should be removed in Python 3.0, but Guido van Rossum " +"hasn't decided whether to do this or not." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:856 +msgid "" +"Raising of strings as exceptions, as in the statement ``raise \"Error " +"occurred\"``, is deprecated in Python 2.5 and will trigger a warning. The " +"aim is to be able to remove the string-exception feature in a few releases." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:863 +msgid ":pep:`352` - Required Superclass for Exceptions" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:864 +msgid "" +"PEP written by Brett Cannon and Guido van Rossum; implemented by Brett " +"Cannon." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:872 +msgid "PEP 353: Using ssize_t as the index type" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:874 +msgid "" +"A wide-ranging change to Python's C API, using a new :c:type:`Py_ssize_t` " +"type definition instead of :c:type:`int`, will permit the interpreter to " +"handle more data on 64-bit platforms. This change doesn't affect Python's " +"capacity on 32-bit platforms." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:879 +msgid "" +"Various pieces of the Python interpreter used C's :c:type:`int` type to " +"store sizes or counts; for example, the number of items in a list or tuple " +"were stored in an :c:type:`int`. The C compilers for most 64-bit platforms " +"still define :c:type:`int` as a 32-bit type, so that meant that lists could " +"only hold up to ``2**31 - 1`` = 2147483647 items. (There are actually a few " +"different programming models that 64-bit C compilers can use -- see http://" +"www.unix.org/version2/whatsnew/lp64_wp.html for a discussion -- but the most " +"commonly available model leaves :c:type:`int` as 32 bits.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:888 +msgid "" +"A limit of 2147483647 items doesn't really matter on a 32-bit platform " +"because you'll run out of memory before hitting the length limit. Each list " +"item requires space for a pointer, which is 4 bytes, plus space for a :c:" +"type:`PyObject` representing the item. 2147483647\\*4 is already more bytes " +"than a 32-bit address space can contain." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:894 +msgid "" +"It's possible to address that much memory on a 64-bit platform, however. " +"The pointers for a list that size would only require 16 GiB of space, so " +"it's not unreasonable that Python programmers might construct lists that " +"large. Therefore, the Python interpreter had to be changed to use some type " +"other than :c:type:`int`, and this will be a 64-bit type on 64-bit " +"platforms. The change will cause incompatibilities on 64-bit machines, so " +"it was deemed worth making the transition now, while the number of 64-bit " +"users is still relatively small. (In 5 or 10 years, we may *all* be on 64-" +"bit machines, and the transition would be more painful then.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:904 +msgid "" +"This change most strongly affects authors of C extension modules. Python " +"strings and container types such as lists and tuples now use :c:type:" +"`Py_ssize_t` to store their size. Functions such as :c:func:`PyList_Size` " +"now return :c:type:`Py_ssize_t`. Code in extension modules may therefore " +"need to have some variables changed to :c:type:`Py_ssize_t`." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:910 +msgid "" +"The :c:func:`PyArg_ParseTuple` and :c:func:`Py_BuildValue` functions have a " +"new conversion code, ``n``, for :c:type:`Py_ssize_t`. :c:func:" +"`PyArg_ParseTuple`'s ``s#`` and ``t#`` still output :c:type:`int` by " +"default, but you can define the macro :c:macro:`PY_SSIZE_T_CLEAN` before " +"including :file:`Python.h` to make them return :c:type:`Py_ssize_t`." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:916 +msgid "" +":pep:`353` has a section on conversion guidelines that extension authors " +"should read to learn about supporting 64-bit platforms." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:922 +msgid ":pep:`353` - Using ssize_t as the index type" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:923 +msgid "PEP written and implemented by Martin von Löwis." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:931 +msgid "PEP 357: The '__index__' method" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:933 +msgid "" +"The NumPy developers had a problem that could only be solved by adding a new " +"special method, :meth:`__index__`. When using slice notation, as in " +"``[start:stop:step]``, the values of the *start*, *stop*, and *step* indexes " +"must all be either integers or long integers. NumPy defines a variety of " +"specialized integer types corresponding to unsigned and signed integers of " +"8, 16, 32, and 64 bits, but there was no way to signal that these types " +"could be used as slice indexes." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:941 +msgid "" +"Slicing can't just use the existing :meth:`__int__` method because that " +"method is also used to implement coercion to integers. If slicing used :" +"meth:`__int__`, floating-point numbers would also become legal slice indexes " +"and that's clearly an undesirable behaviour." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:946 +msgid "" +"Instead, a new special method called :meth:`__index__` was added. It takes " +"no arguments and returns an integer giving the slice index to use. For " +"example::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:953 +msgid "" +"The return value must be either a Python integer or long integer. The " +"interpreter will check that the type returned is correct, and raises a :exc:" +"`TypeError` if this requirement isn't met." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:957 +msgid "" +"A corresponding :attr:`nb_index` slot was added to the C-level :c:type:" +"`PyNumberMethods` structure to let C extensions implement this protocol. " +"``PyNumber_Index(obj)`` can be used in extension code to call the :meth:" +"`__index__` function and retrieve its result." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:965 +msgid ":pep:`357` - Allowing Any Object to be Used for Slicing" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:966 +msgid "PEP written and implemented by Travis Oliphant." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:974 +msgid "Other Language Changes" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:976 +msgid "" +"Here are all of the changes that Python 2.5 makes to the core Python " +"language." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:978 +msgid "" +"The :class:`dict` type has a new hook for letting subclasses provide a " +"default value when a key isn't contained in the dictionary. When a key isn't " +"found, the dictionary's ``__missing__(key)`` method will be called. This " +"hook is used to implement the new :class:`defaultdict` class in the :mod:" +"`collections` module. The following example defines a dictionary that " +"returns zero for any missing key::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:993 +msgid "" +"Both 8-bit and Unicode strings have new ``partition(sep)`` and " +"``rpartition(sep)`` methods that simplify a common use case." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:996 +msgid "" +"The ``find(S)`` method is often used to get an index which is then used to " +"slice the string and obtain the pieces that are before and after the " +"separator. ``partition(sep)`` condenses this pattern into a single method " +"call that returns a 3-tuple containing the substring before the separator, " +"the separator itself, and the substring after the separator. If the " +"separator isn't found, the first element of the tuple is the entire string " +"and the other two elements are empty. ``rpartition(sep)`` also returns a 3-" +"tuple but starts searching from the end of the string; the ``r`` stands for " +"'reverse'." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1005 +msgid "Some examples::" +msgstr "Quelques exemples ::" + +#: ../Doc/whatsnew/2.5.rst:1018 +msgid "" +"(Implemented by Fredrik Lundh following a suggestion by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1020 +msgid "" +"The :meth:`startswith` and :meth:`endswith` methods of string types now " +"accept tuples of strings to check for. ::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1026 +msgid "(Implemented by Georg Brandl following a suggestion by Tom Lynn.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1030 +msgid "" +"The :func:`min` and :func:`max` built-in functions gained a ``key`` keyword " +"parameter analogous to the ``key`` argument for :meth:`sort`. This " +"parameter supplies a function that takes a single argument and is called for " +"every value in the list; :func:`min`/:func:`max` will return the element " +"with the smallest/largest return value from this function. For example, to " +"find the longest string in a list, you can do::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1043 +msgid "(Contributed by Steven Bethard and Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1045 +msgid "" +"Two new built-in functions, :func:`any` and :func:`all`, evaluate whether an " +"iterator contains any true or false values. :func:`any` returns :const:" +"`True` if any value returned by the iterator is true; otherwise it will " +"return :const:`False`. :func:`all` returns :const:`True` only if all of the " +"values returned by the iterator evaluate as true. (Suggested by Guido van " +"Rossum, and implemented by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1052 +msgid "" +"The result of a class's :meth:`__hash__` method can now be either a long " +"integer or a regular integer. If a long integer is returned, the hash of " +"that value is taken. In earlier versions the hash value was required to be " +"a regular integer, but in 2.5 the :func:`id` built-in was changed to always " +"return non-negative numbers, and users often seem to use ``id(self)`` in :" +"meth:`__hash__` methods (though this is discouraged)." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1061 +msgid "" +"ASCII is now the default encoding for modules. It's now a syntax error if " +"a module contains string literals with 8-bit characters but doesn't have an " +"encoding declaration. In Python 2.4 this triggered a warning, not a syntax " +"error. See :pep:`263` for how to declare a module's encoding; for example, " +"you might add a line like this near the top of the source file::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1069 +msgid "" +"A new warning, :class:`UnicodeWarning`, is triggered when you attempt to " +"compare a Unicode string and an 8-bit string that can't be converted to " +"Unicode using the default ASCII encoding. The result of the comparison is " +"false::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1081 +msgid "" +"Previously this would raise a :class:`UnicodeDecodeError` exception, but in " +"2.5 this could result in puzzling problems when accessing a dictionary. If " +"you looked up ``unichr(128)`` and ``chr(128)`` was being used as a key, " +"you'd get a :class:`UnicodeDecodeError` exception. Other changes in 2.5 " +"resulted in this exception being raised instead of suppressed by the code " +"in :file:`dictobject.c` that implements dictionaries." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1088 +msgid "" +"Raising an exception for such a comparison is strictly correct, but the " +"change might have broken code, so instead :class:`UnicodeWarning` was " +"introduced." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1091 +msgid "(Implemented by Marc-André Lemburg.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1093 +msgid "" +"One error that Python programmers sometimes make is forgetting to include " +"an :file:`__init__.py` module in a package directory. Debugging this mistake " +"can be confusing, and usually requires running Python with the :option:`-v` " +"switch to log all the paths searched. In Python 2.5, a new :exc:" +"`ImportWarning` warning is triggered when an import would have picked up a " +"directory as a package but no :file:`__init__.py` was found. This warning " +"is silently ignored by default; provide the :option:`-Wd <-W>` option when " +"running the Python executable to display the warning message. (Implemented " +"by Thomas Wouters.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1102 +msgid "" +"The list of base classes in a class definition can now be empty. As an " +"example, this is now legal::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1108 +msgid "(Implemented by Brett Cannon.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1116 +msgid "Interactive Interpreter Changes" +msgstr "Changements de l’interpréteur interactif" + +#: ../Doc/whatsnew/2.5.rst:1118 +msgid "" +"In the interactive interpreter, ``quit`` and ``exit`` have long been " +"strings so that new users get a somewhat helpful message when they try to " +"quit::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1124 +msgid "" +"In Python 2.5, ``quit`` and ``exit`` are now objects that still produce " +"string representations of themselves, but are also callable. Newbies who try " +"``quit()`` or ``exit()`` will now exit the interpreter as they expect. " +"(Implemented by Georg Brandl.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1129 +msgid "" +"The Python executable now accepts the standard long options :option:`--" +"help` and :option:`--version`; on Windows, it also accepts the :option:`/? " +"<-?>` option for displaying a help message. (Implemented by Georg Brandl.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1139 +msgid "Optimizations" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1141 +msgid "" +"Several of the optimizations were developed at the NeedForSpeed sprint, an " +"event held in Reykjavik, Iceland, from May 21--28 2006. The sprint focused " +"on speed enhancements to the CPython implementation and was funded by EWT " +"LLC with local support from CCP Games. Those optimizations added at this " +"sprint are specially marked in the following list." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1147 +msgid "" +"When they were introduced in Python 2.4, the built-in :class:`set` and :" +"class:`frozenset` types were built on top of Python's dictionary type. In " +"2.5 the internal data structure has been customized for implementing sets, " +"and as a result sets will use a third less memory and are somewhat faster. " +"(Implemented by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1153 +msgid "" +"The speed of some Unicode operations, such as finding substrings, string " +"splitting, and character map encoding and decoding, has been improved. " +"(Substring search and splitting improvements were added by Fredrik Lundh and " +"Andrew Dalke at the NeedForSpeed sprint. Character maps were improved by " +"Walter Dörwald and Martin von Löwis.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1161 +msgid "" +"The ``long(str, base)`` function is now faster on long digit strings because " +"fewer intermediate results are calculated. The peak is for strings of " +"around 800--1000 digits where the function is 6 times faster. (Contributed " +"by Alan McIntyre and committed at the NeedForSpeed sprint.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1168 +msgid "" +"It's now illegal to mix iterating over a file with ``for line in file`` and " +"calling the file object's :meth:`read`/:meth:`readline`/:meth:`readlines` " +"methods. Iteration uses an internal buffer and the :meth:`read\\*` methods " +"don't use that buffer. Instead they would return the data following the " +"buffer, causing the data to appear out of order. Mixing iteration and these " +"methods will now trigger a :exc:`ValueError` from the :meth:`read\\*` " +"method. (Implemented by Thomas Wouters.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1178 +msgid "" +"The :mod:`struct` module now compiles structure format strings into an " +"internal representation and caches this representation, yielding a 20% " +"speedup. (Contributed by Bob Ippolito at the NeedForSpeed sprint.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1182 +msgid "" +"The :mod:`re` module got a 1 or 2% speedup by switching to Python's " +"allocator functions instead of the system's :c:func:`malloc` and :c:func:" +"`free`. (Contributed by Jack Diederich at the NeedForSpeed sprint.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1186 +msgid "" +"The code generator's peephole optimizer now performs simple constant folding " +"in expressions. If you write something like ``a = 2+3``, the code generator " +"will do the arithmetic and produce code corresponding to ``a = 5``. " +"(Proposed and implemented by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1191 +msgid "" +"Function calls are now faster because code objects now keep the most " +"recently finished frame (a \"zombie frame\") in an internal field of the " +"code object, reusing it the next time the code object is invoked. (Original " +"patch by Michael Hudson, modified by Armin Rigo and Richard Jones; committed " +"at the NeedForSpeed sprint.) Frame objects are also slightly smaller, which " +"may improve cache locality and reduce memory usage a bit. (Contributed by " +"Neal Norwitz.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1201 +msgid "" +"Python's built-in exceptions are now new-style classes, a change that speeds " +"up instantiation considerably. Exception handling in Python 2.5 is " +"therefore about 30% faster than in 2.4. (Contributed by Richard Jones, Georg " +"Brandl and Sean Reifschneider at the NeedForSpeed sprint.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1206 +msgid "" +"Importing now caches the paths tried, recording whether they exist or not " +"so that the interpreter makes fewer :c:func:`open` and :c:func:`stat` calls " +"on startup. (Contributed by Martin von Löwis and Georg Brandl.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1218 +msgid "New, Improved, and Removed Modules" +msgstr "Modules ajoutés, modifiés, et supprimés" + +#: ../Doc/whatsnew/2.5.rst:1220 +msgid "" +"The standard library received many enhancements and bug fixes in Python 2.5. " +"Here's a partial list of the most notable changes, sorted alphabetically by " +"module name. Consult the :file:`Misc/NEWS` file in the source tree for a " +"more complete list of changes, or look through the SVN logs for all the " +"details." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1225 +msgid "" +"The :mod:`audioop` module now supports the a-LAW encoding, and the code for " +"u-LAW encoding has been improved. (Contributed by Lars Immisch.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1228 +msgid "" +"The :mod:`codecs` module gained support for incremental codecs. The :func:" +"`codec.lookup` function now returns a :class:`CodecInfo` instance instead of " +"a tuple. :class:`CodecInfo` instances behave like a 4-tuple to preserve " +"backward compatibility but also have the attributes :attr:`encode`, :attr:" +"`decode`, :attr:`incrementalencoder`, :attr:`incrementaldecoder`, :attr:" +"`streamwriter`, and :attr:`streamreader`. Incremental codecs can receive " +"input and produce output in multiple chunks; the output is the same as if " +"the entire input was fed to the non-incremental codec. See the :mod:`codecs` " +"module documentation for details. (Designed and implemented by Walter " +"Dörwald.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1240 +msgid "" +"The :mod:`collections` module gained a new type, :class:`defaultdict`, that " +"subclasses the standard :class:`dict` type. The new type mostly behaves " +"like a dictionary but constructs a default value when a key isn't present, " +"automatically adding it to the dictionary for the requested key value." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1245 +msgid "" +"The first argument to :class:`defaultdict`'s constructor is a factory " +"function that gets called whenever a key is requested but not found. This " +"factory function receives no arguments, so you can use built-in type " +"constructors such as :func:`list` or :func:`int`. For example, you can " +"make an index of words based on their initial letter like this::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1261 +msgid "Printing ``index`` results in the following output::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1269 +msgid "(Contributed by Guido van Rossum.)" +msgstr "(Contribution par Guido van Rossum.)" + +#: ../Doc/whatsnew/2.5.rst:1271 +msgid "" +"The :class:`deque` double-ended queue type supplied by the :mod:" +"`collections` module now has a ``remove(value)`` method that removes the " +"first occurrence of *value* in the queue, raising :exc:`ValueError` if the " +"value isn't found. (Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1276 +msgid "" +"New module: The :mod:`contextlib` module contains helper functions for use " +"with the new ':keyword:`with`' statement. See section :ref:`contextlibmod` " +"for more about this module." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1280 +msgid "" +"New module: The :mod:`cProfile` module is a C implementation of the " +"existing :mod:`profile` module that has much lower overhead. The module's " +"interface is the same as :mod:`profile`: you run ``cProfile.run('main()')`` " +"to profile a function, can save profile data to a file, etc. It's not yet " +"known if the Hotshot profiler, which is also written in C but doesn't match " +"the :mod:`profile` module's interface, will continue to be maintained in " +"future versions of Python. (Contributed by Armin Rigo.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1288 +msgid "" +"Also, the :mod:`pstats` module for analyzing the data measured by the " +"profiler now supports directing the output to any file object by supplying a " +"*stream* argument to the :class:`Stats` constructor. (Contributed by Skip " +"Montanaro.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1292 +msgid "" +"The :mod:`csv` module, which parses files in comma-separated value format, " +"received several enhancements and a number of bugfixes. You can now set the " +"maximum size in bytes of a field by calling the ``csv." +"field_size_limit(new_limit)`` function; omitting the *new_limit* argument " +"will return the currently-set limit. The :class:`reader` class now has a :" +"attr:`line_num` attribute that counts the number of physical lines read from " +"the source; records can span multiple physical lines, so :attr:`line_num` is " +"not the same as the number of records read." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1301 +msgid "" +"The CSV parser is now stricter about multi-line quoted fields. Previously, " +"if a line ended within a quoted field without a terminating newline " +"character, a newline would be inserted into the returned field. This " +"behavior caused problems when reading files that contained carriage return " +"characters within fields, so the code was changed to return the field " +"without inserting newlines. As a consequence, if newlines embedded within " +"fields are important, the input should be split into lines in a manner that " +"preserves the newline characters." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1309 +msgid "(Contributed by Skip Montanaro and Andrew McNamara.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1311 +msgid "" +"The :class:`~datetime.datetime` class in the :mod:`datetime` module now has " +"a ``strptime(string, format)`` method for parsing date strings, contributed " +"by Josh Spoerri. It uses the same format characters as :func:`time.strptime` " +"and :func:`time.strftime`::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1321 +msgid "" +"The :meth:`SequenceMatcher.get_matching_blocks` method in the :mod:`difflib` " +"module now guarantees to return a minimal list of blocks describing matching " +"subsequences. Previously, the algorithm would occasionally break a block of " +"matching elements into two list entries. (Enhancement by Tim Peters.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1326 +msgid "" +"The :mod:`doctest` module gained a ``SKIP`` option that keeps an example " +"from being executed at all. This is intended for code snippets that are " +"usage examples intended for the reader and aren't actually test cases." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1330 +msgid "" +"An *encoding* parameter was added to the :func:`testfile` function and the :" +"class:`DocFileSuite` class to specify the file's encoding. This makes it " +"easier to use non-ASCII characters in tests contained within a docstring. " +"(Contributed by Bjorn Tillenius.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1337 +msgid "" +"The :mod:`email` package has been updated to version 4.0. (Contributed by " +"Barry Warsaw.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1345 +msgid "" +"The :mod:`fileinput` module was made more flexible. Unicode filenames are " +"now supported, and a *mode* parameter that defaults to ``\"r\"`` was added " +"to the :func:`input` function to allow opening files in binary or :term:" +"`universal newlines` mode. Another new parameter, *openhook*, lets you use " +"a function other than :func:`open` to open the input files. Once you're " +"iterating over the set of files, the :class:`FileInput` object's new :meth:" +"`fileno` returns the file descriptor for the currently opened file. " +"(Contributed by Georg Brandl.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1354 +msgid "" +"In the :mod:`gc` module, the new :func:`get_count` function returns a 3-" +"tuple containing the current collection counts for the three GC " +"generations. This is accounting information for the garbage collector; when " +"these counts reach a specified threshold, a garbage collection sweep will be " +"made. The existing :func:`gc.collect` function now takes an optional " +"*generation* argument of 0, 1, or 2 to specify which generation to collect. " +"(Contributed by Barry Warsaw.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1361 +msgid "" +"The :func:`nsmallest` and :func:`nlargest` functions in the :mod:`heapq` " +"module now support a ``key`` keyword parameter similar to the one provided " +"by the :func:`min`/:func:`max` functions and the :meth:`sort` methods. For " +"example::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1373 ../Doc/whatsnew/2.5.rst:1382 +msgid "(Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1375 +msgid "" +"The :func:`itertools.islice` function now accepts ``None`` for the start and " +"step arguments. This makes it more compatible with the attributes of slice " +"objects, so that you can now write the following::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1384 +msgid "" +"The :func:`format` function in the :mod:`locale` module has been modified " +"and two new functions were added, :func:`format_string` and :func:`currency`." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1387 +msgid "" +"The :func:`format` function's *val* parameter could previously be a string " +"as long as no more than one %char specifier appeared; now the parameter must " +"be exactly one %char specifier with no surrounding text. An optional " +"*monetary* parameter was also added which, if ``True``, will use the " +"locale's rules for formatting currency in placing a separator between groups " +"of three digits." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1393 +msgid "" +"To format strings with multiple %char specifiers, use the new :func:" +"`format_string` function that works like :func:`format` but also supports " +"mixing %char specifiers with arbitrary text." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1397 +msgid "" +"A new :func:`currency` function was also added that formats a number " +"according to the current locale's settings." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1400 +msgid "(Contributed by Georg Brandl.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1404 +msgid "" +"The :mod:`mailbox` module underwent a massive rewrite to add the capability " +"to modify mailboxes in addition to reading them. A new set of classes that " +"include :class:`mbox`, :class:`MH`, and :class:`Maildir` are used to read " +"mailboxes, and have an ``add(message)`` method to add messages, " +"``remove(key)`` to remove messages, and :meth:`lock`/:meth:`unlock` to lock/" +"unlock the mailbox. The following example converts a maildir-format mailbox " +"into an mbox-format one::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1422 +msgid "" +"(Contributed by Gregory K. Johnson. Funding was provided by Google's 2005 " +"Summer of Code.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1425 +msgid "" +"New module: the :mod:`msilib` module allows creating Microsoft Installer :" +"file:`.msi` files and CAB files. Some support for reading the :file:`.msi` " +"database is also included. (Contributed by Martin von Löwis.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1429 +msgid "" +"The :mod:`nis` module now supports accessing domains other than the system " +"default domain by supplying a *domain* argument to the :func:`nis.match` " +"and :func:`nis.maps` functions. (Contributed by Ben Bell.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1433 +msgid "" +"The :mod:`operator` module's :func:`itemgetter` and :func:`attrgetter` " +"functions now support multiple fields. A call such as ``operator." +"attrgetter('a', 'b')`` will return a function that retrieves the :attr:`a` " +"and :attr:`b` attributes. Combining this new feature with the :meth:`sort` " +"method's ``key`` parameter lets you easily sort lists using multiple " +"fields. (Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1440 +msgid "" +"The :mod:`optparse` module was updated to version 1.5.1 of the Optik " +"library. The :class:`OptionParser` class gained an :attr:`epilog` attribute, " +"a string that will be printed after the help message, and a :meth:`destroy` " +"method to break reference cycles created by the object. (Contributed by Greg " +"Ward.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1445 +msgid "" +"The :mod:`os` module underwent several changes. The :attr:" +"`stat_float_times` variable now defaults to true, meaning that :func:`os." +"stat` will now return time values as floats. (This doesn't necessarily mean " +"that :func:`os.stat` will return times that are precise to fractions of a " +"second; not all systems support such precision.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1451 +msgid "" +"Constants named :attr:`os.SEEK_SET`, :attr:`os.SEEK_CUR`, and :attr:`os." +"SEEK_END` have been added; these are the parameters to the :func:`os.lseek` " +"function. Two new constants for locking are :attr:`os.O_SHLOCK` and :attr:" +"`os.O_EXLOCK`." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1456 +msgid "" +"Two new functions, :func:`wait3` and :func:`wait4`, were added. They're " +"similar the :func:`waitpid` function which waits for a child process to exit " +"and returns a tuple of the process ID and its exit status, but :func:`wait3` " +"and :func:`wait4` return additional information. :func:`wait3` doesn't take " +"a process ID as input, so it waits for any child process to exit and returns " +"a 3-tuple of *process-id*, *exit-status*, *resource-usage* as returned from " +"the :func:`resource.getrusage` function. ``wait4(pid)`` does take a process " +"ID. (Contributed by Chad J. Schroeder.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1465 +msgid "" +"On FreeBSD, the :func:`os.stat` function now returns times with nanosecond " +"resolution, and the returned object now has :attr:`st_gen` and :attr:" +"`st_birthtime`. The :attr:`st_flags` attribute is also available, if the " +"platform supports it. (Contributed by Antti Louko and Diego Pettenò.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1472 +msgid "" +"The Python debugger provided by the :mod:`pdb` module can now store lists of " +"commands to execute when a breakpoint is reached and execution stops. Once " +"breakpoint #1 has been created, enter ``commands 1`` and enter a series of " +"commands to be executed, finishing the list with ``end``. The command list " +"can include commands that resume execution, such as ``continue`` or " +"``next``. (Contributed by Grégoire Dooms.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1481 +msgid "" +"The :mod:`pickle` and :mod:`cPickle` modules no longer accept a return value " +"of ``None`` from the :meth:`__reduce__` method; the method must return a " +"tuple of arguments instead. The ability to return ``None`` was deprecated " +"in Python 2.4, so this completes the removal of the feature." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1486 +msgid "" +"The :mod:`pkgutil` module, containing various utility functions for finding " +"packages, was enhanced to support PEP 302's import hooks and now also works " +"for packages stored in ZIP-format archives. (Contributed by Phillip J. Eby.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1490 +msgid "" +"The pybench benchmark suite by Marc-André Lemburg is now included in the :" +"file:`Tools/pybench` directory. The pybench suite is an improvement on the " +"commonly used :file:`pystone.py` program because pybench provides a more " +"detailed measurement of the interpreter's speed. It times particular " +"operations such as function calls, tuple slicing, method lookups, and " +"numeric operations, instead of performing many different operations and " +"reducing the result to a single number as :file:`pystone.py` does." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1498 +msgid "" +"The :mod:`pyexpat` module now uses version 2.0 of the Expat parser. " +"(Contributed by Trent Mick.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1501 +msgid "" +"The :class:`~queue.Queue` class provided by the :mod:`Queue` module gained " +"two new methods. :meth:`join` blocks until all items in the queue have been " +"retrieved and all processing work on the items have been completed. Worker " +"threads call the other new method, :meth:`task_done`, to signal that " +"processing for an item has been completed. (Contributed by Raymond " +"Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1507 +msgid "" +"The old :mod:`regex` and :mod:`regsub` modules, which have been deprecated " +"ever since Python 2.0, have finally been deleted. Other deleted modules: :" +"mod:`statcache`, :mod:`tzparse`, :mod:`whrandom`." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1511 +msgid "" +"Also deleted: the :file:`lib-old` directory, which includes ancient modules " +"such as :mod:`dircmp` and :mod:`ni`, was removed. :file:`lib-old` wasn't on " +"the default ``sys.path``, so unless your programs explicitly added the " +"directory to ``sys.path``, this removal shouldn't affect your code." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1516 +msgid "" +"The :mod:`rlcompleter` module is no longer dependent on importing the :mod:" +"`readline` module and therefore now works on non-Unix platforms. (Patch from " +"Robert Kiendl.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1522 +msgid "" +"The :mod:`SimpleXMLRPCServer` and :mod:`DocXMLRPCServer` classes now have " +"a :attr:`rpc_paths` attribute that constrains XML-RPC operations to a " +"limited set of URL paths; the default is to allow only ``'/'`` and ``'/" +"RPC2'``. Setting :attr:`rpc_paths` to ``None`` or an empty tuple disables " +"this path checking." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1529 +msgid "" +"The :mod:`socket` module now supports :const:`AF_NETLINK` sockets on Linux, " +"thanks to a patch from Philippe Biondi. Netlink sockets are a Linux-" +"specific mechanism for communications between a user-space process and " +"kernel code; an introductory article about them is at https://www." +"linuxjournal.com/article/7356. In Python code, netlink addresses are " +"represented as a tuple of 2 integers, ``(pid, group_mask)``." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1536 +msgid "" +"Two new methods on socket objects, ``recv_into(buffer)`` and " +"``recvfrom_into(buffer)``, store the received data in an object that " +"supports the buffer protocol instead of returning the data as a string. " +"This means you can put the data directly into an array or a memory-mapped " +"file." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1541 +msgid "" +"Socket objects also gained :meth:`getfamily`, :meth:`gettype`, and :meth:" +"`getproto` accessor methods to retrieve the family, type, and protocol " +"values for the socket." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1545 +msgid "" +"New module: the :mod:`spwd` module provides functions for accessing the " +"shadow password database on systems that support shadow passwords." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1548 +msgid "" +"The :mod:`struct` is now faster because it compiles format strings into :" +"class:`Struct` objects with :meth:`pack` and :meth:`unpack` methods. This " +"is similar to how the :mod:`re` module lets you create compiled regular " +"expression objects. You can still use the module-level :func:`pack` and :" +"func:`unpack` functions; they'll create :class:`Struct` objects and cache " +"them. Or you can use :class:`Struct` instances directly::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1560 +msgid "" +"You can also pack and unpack data to and from buffer objects directly using " +"the ``pack_into(buffer, offset, v1, v2, ...)`` and ``unpack_from(buffer, " +"offset)`` methods. This lets you store data directly into an array or a " +"memory-mapped file." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1565 +msgid "" +"(:class:`Struct` objects were implemented by Bob Ippolito at the " +"NeedForSpeed sprint. Support for buffer objects was added by Martin Blais, " +"also at the NeedForSpeed sprint.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1569 +msgid "" +"The Python developers switched from CVS to Subversion during the 2.5 " +"development process. Information about the exact build version is available " +"as the ``sys.subversion`` variable, a 3-tuple of ``(interpreter-name, branch-" +"name, revision-range)``. For example, at the time of writing my copy of 2.5 " +"was reporting ``('CPython', 'trunk', '45313:45315')``." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1575 +msgid "" +"This information is also available to C extensions via the :c:func:" +"`Py_GetBuildInfo` function that returns a string of build information like " +"this: ``\"trunk:45355:45356M, Apr 13 2006, 07:42:19\"``. (Contributed by " +"Barry Warsaw.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1580 +msgid "" +"Another new function, :func:`sys._current_frames`, returns the current stack " +"frames for all running threads as a dictionary mapping thread identifiers to " +"the topmost stack frame currently active in that thread at the time the " +"function is called. (Contributed by Tim Peters.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1585 +msgid "" +"The :class:`TarFile` class in the :mod:`tarfile` module now has an :meth:" +"`extractall` method that extracts all members from the archive into the " +"current working directory. It's also possible to set a different directory " +"as the extraction target, and to unpack only a subset of the archive's " +"members." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1590 +msgid "" +"The compression used for a tarfile opened in stream mode can now be " +"autodetected using the mode ``'r|*'``. (Contributed by Lars Gustäbel.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1595 +msgid "" +"The :mod:`threading` module now lets you set the stack size used when new " +"threads are created. The ``stack_size([*size*])`` function returns the " +"currently configured stack size, and supplying the optional *size* parameter " +"sets a new value. Not all platforms support changing the stack size, but " +"Windows, POSIX threading, and OS/2 all do. (Contributed by Andrew MacIntyre.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1603 +msgid "" +"The :mod:`unicodedata` module has been updated to use version 4.1.0 of the " +"Unicode character database. Version 3.2.0 is required by some " +"specifications, so it's still available as :attr:`unicodedata.ucd_3_2_0`." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1607 +msgid "" +"New module: the :mod:`uuid` module generates universally unique " +"identifiers (UUIDs) according to :rfc:`4122`. The RFC defines several " +"different UUID versions that are generated from a starting string, from " +"system properties, or purely randomly. This module contains a :class:`UUID` " +"class and functions named :func:`uuid1`, :func:`uuid3`, :func:`uuid4`, " +"and :func:`uuid5` to generate different versions of UUID. (Version 2 " +"UUIDs are not specified in :rfc:`4122` and are not supported by this " +"module.) ::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1632 +msgid "(Contributed by Ka-Ping Yee.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1634 +msgid "" +"The :mod:`weakref` module's :class:`WeakKeyDictionary` and :class:" +"`WeakValueDictionary` types gained new methods for iterating over the weak " +"references contained in the dictionary. :meth:`iterkeyrefs` and :meth:" +"`keyrefs` methods were added to :class:`WeakKeyDictionary`, and :meth:" +"`itervaluerefs` and :meth:`valuerefs` were added to :class:" +"`WeakValueDictionary`. (Contributed by Fred L. Drake, Jr.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1641 +msgid "" +"The :mod:`webbrowser` module received a number of enhancements. It's now " +"usable as a script with ``python -m webbrowser``, taking a URL as the " +"argument; there are a number of switches to control the behaviour (:option:" +"`!-n` for a new browser window, :option:`!-t` for a new tab). New module-" +"level functions, :func:`open_new` and :func:`open_new_tab`, were added to " +"support this. The module's :func:`open` function supports an additional " +"feature, an *autoraise* parameter that signals whether to raise the open " +"window when possible. A number of additional browsers were added to the " +"supported list such as Firefox, Opera, Konqueror, and elinks. (Contributed " +"by Oleg Broytmann and Georg Brandl.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1653 +msgid "" +"The :mod:`xmlrpclib` module now supports returning :class:`~datetime." +"datetime` objects for the XML-RPC date type. Supply ``use_datetime=True`` " +"to the :func:`loads` function or the :class:`Unmarshaller` class to enable " +"this feature. (Contributed by Skip Montanaro.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1660 +msgid "" +"The :mod:`zipfile` module now supports the ZIP64 version of the format, " +"meaning that a .zip archive can now be larger than 4 GiB and can contain " +"individual files larger than 4 GiB. (Contributed by Ronald Oussoren.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1666 +msgid "" +"The :mod:`zlib` module's :class:`Compress` and :class:`Decompress` objects " +"now support a :meth:`copy` method that makes a copy of the object's " +"internal state and returns a new :class:`Compress` or :class:`Decompress` " +"object. (Contributed by Chris AtLee.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1679 +msgid "The ctypes package" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1681 +msgid "" +"The :mod:`ctypes` package, written by Thomas Heller, has been added to the " +"standard library. :mod:`ctypes` lets you call arbitrary functions in " +"shared libraries or DLLs. Long-time users may remember the :mod:`dl` " +"module, which provides functions for loading shared libraries and calling " +"functions in them. The :mod:`ctypes` package is much fancier." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1687 +msgid "" +"To load a shared library or DLL, you must create an instance of the :class:" +"`CDLL` class and provide the name or path of the shared library or DLL. Once " +"that's done, you can call arbitrary functions by accessing them as " +"attributes of the :class:`CDLL` object. ::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1697 +msgid "" +"Type constructors for the various C types are provided: :func:`c_int`, :func:" +"`c_float`, :func:`c_double`, :func:`c_char_p` (equivalent to :c:type:`char " +"\\*`), and so forth. Unlike Python's types, the C versions are all mutable; " +"you can assign to their :attr:`value` attribute to change the wrapped " +"value. Python integers and strings will be automatically converted to the " +"corresponding C types, but for other types you must call the correct type " +"constructor. (And I mean *must*; getting it wrong will often result in the " +"interpreter crashing with a segmentation fault.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1706 +msgid "" +"You shouldn't use :func:`c_char_p` with a Python string when the C function " +"will be modifying the memory area, because Python strings are supposed to " +"be immutable; breaking this rule will cause puzzling bugs. When you need a " +"modifiable memory area, use :func:`create_string_buffer`::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1715 +msgid "" +"C functions are assumed to return integers, but you can set the :attr:" +"`restype` attribute of the function object to change this::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1724 +msgid "" +":mod:`ctypes` also provides a wrapper for Python's C API as the ``ctypes." +"pythonapi`` object. This object does *not* release the global interpreter " +"lock before calling a function, because the lock must be held when calling " +"into the interpreter's code. There's a :class:`py_object()` type " +"constructor that will create a :c:type:`PyObject \\*` pointer. A simple " +"usage::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1737 +msgid "" +"Don't forget to use :class:`py_object()`; if it's omitted you end up with a " +"segmentation fault." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1740 +msgid "" +":mod:`ctypes` has been around for a while, but people still write and " +"distribution hand-coded extension modules because you can't rely on :mod:" +"`ctypes` being present. Perhaps developers will begin to write Python " +"wrappers atop a library accessed through :mod:`ctypes` instead of extension " +"modules, now that :mod:`ctypes` is included with core Python." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1750 +msgid "http://starship.python.net/crew/theller/ctypes/" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1750 +msgid "The ctypes web page, with a tutorial, reference, and FAQ." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1752 +msgid "The documentation for the :mod:`ctypes` module." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1760 +msgid "The ElementTree package" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1762 +msgid "" +"A subset of Fredrik Lundh's ElementTree library for processing XML has been " +"added to the standard library as :mod:`xml.etree`. The available modules " +"are :mod:`ElementTree`, :mod:`ElementPath`, and :mod:`ElementInclude` from " +"ElementTree 1.2.6. The :mod:`cElementTree` accelerator module is also " +"included." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1768 +msgid "" +"The rest of this section will provide a brief overview of using ElementTree. " +"Full documentation for ElementTree is available at http://effbot.org/zone/" +"element-index.htm." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1772 +msgid "" +"ElementTree represents an XML document as a tree of element nodes. The text " +"content of the document is stored as the :attr:`text` and :attr:`tail` " +"attributes of (This is one of the major differences between ElementTree and " +"the Document Object Model; in the DOM there are many different types of " +"node, including :class:`TextNode`.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1778 +msgid "" +"The most commonly used parsing function is :func:`parse`, that takes either " +"a string (assumed to contain a filename) or a file-like object and returns " +"an :class:`ElementTree` instance::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1790 +msgid "" +"Once you have an :class:`ElementTree` instance, you can call its :meth:" +"`getroot` method to get the root :class:`Element` node." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1793 +msgid "" +"There's also an :func:`XML` function that takes a string literal and returns " +"an :class:`Element` node (not an :class:`ElementTree`). This function " +"provides a tidy way to incorporate XML fragments, approaching the " +"convenience of an XML literal::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1803 +msgid "" +"Each XML element supports some dictionary-like and some list-like access " +"methods. Dictionary-like operations are used to access attribute values, " +"and list-like operations are used to access child nodes." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1808 +msgid "Operation" +msgstr "Opération" + +#: ../Doc/whatsnew/2.5.rst:1808 +msgid "Result" +msgstr "Résultat" + +#: ../Doc/whatsnew/2.5.rst:1810 +msgid "``elem[n]``" +msgstr "``elem[n]``" + +#: ../Doc/whatsnew/2.5.rst:1810 +msgid "Returns n'th child element." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1812 +msgid "``elem[m:n]``" +msgstr "``elem[m:n]``" + +#: ../Doc/whatsnew/2.5.rst:1812 +msgid "Returns list of m'th through n'th child elements." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1815 +msgid "``len(elem)``" +msgstr "``len(elem)``" + +#: ../Doc/whatsnew/2.5.rst:1815 +msgid "Returns number of child elements." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1817 +msgid "``list(elem)``" +msgstr "``list(elem)``" + +#: ../Doc/whatsnew/2.5.rst:1817 +msgid "Returns list of child elements." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1819 +msgid "``elem.append(elem2)``" +msgstr "``elem.append(elem2)``" + +#: ../Doc/whatsnew/2.5.rst:1819 +msgid "Adds *elem2* as a child." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1821 +msgid "``elem.insert(index, elem2)``" +msgstr "``elem.insert(index, elem2)``" + +#: ../Doc/whatsnew/2.5.rst:1821 +msgid "Inserts *elem2* at the specified location." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1823 +msgid "``del elem[n]``" +msgstr "``del elem[n]``" + +#: ../Doc/whatsnew/2.5.rst:1823 +msgid "Deletes n'th child element." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1825 +msgid "``elem.keys()``" +msgstr "``elem.keys()``" + +#: ../Doc/whatsnew/2.5.rst:1825 +msgid "Returns list of attribute names." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1827 +msgid "``elem.get(name)``" +msgstr "``elem.get(name)``" + +#: ../Doc/whatsnew/2.5.rst:1827 +msgid "Returns value of attribute *name*." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1829 +msgid "``elem.set(name, value)``" +msgstr "``elem.set(name, value)``" + +#: ../Doc/whatsnew/2.5.rst:1829 +msgid "Sets new value for attribute *name*." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1831 +msgid "``elem.attrib``" +msgstr "``elem.attrib``" + +#: ../Doc/whatsnew/2.5.rst:1831 +msgid "Retrieves the dictionary containing attributes." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1834 +msgid "``del elem.attrib[name]``" +msgstr "``del elem.attrib[name]``" + +#: ../Doc/whatsnew/2.5.rst:1834 +msgid "Deletes attribute *name*." +msgstr "Supprime l’attribut *name*." + +#: ../Doc/whatsnew/2.5.rst:1837 +msgid "" +"Comments and processing instructions are also represented as :class:" +"`Element` nodes. To check if a node is a comment or processing " +"instructions::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1845 +msgid "" +"To generate XML output, you should call the :meth:`ElementTree.write` " +"method. Like :func:`parse`, it can take either a string or a file-like " +"object::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1855 +msgid "" +"(Caution: the default encoding used for output is ASCII. For general XML " +"work, where an element's name may contain arbitrary Unicode characters, " +"ASCII isn't a very useful encoding because it will raise an exception if an " +"element's name contains any characters with values greater than 127. " +"Therefore, it's best to specify a different encoding such as UTF-8 that can " +"handle any Unicode character.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1862 +msgid "" +"This section is only a partial description of the ElementTree interfaces. " +"Please read the package's official documentation for more details." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1868 +msgid "http://effbot.org/zone/element-index.htm" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1869 +msgid "Official documentation for ElementTree." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1877 +msgid "The hashlib package" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1879 +msgid "" +"A new :mod:`hashlib` module, written by Gregory P. Smith, has been added to " +"replace the :mod:`md5` and :mod:`sha` modules. :mod:`hashlib` adds support " +"for additional secure hashes (SHA-224, SHA-256, SHA-384, and SHA-512). When " +"available, the module uses OpenSSL for fast platform optimized " +"implementations of algorithms." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1885 +msgid "" +"The old :mod:`md5` and :mod:`sha` modules still exist as wrappers around " +"hashlib to preserve backwards compatibility. The new module's interface is " +"very close to that of the old modules, but not identical. The most " +"significant difference is that the constructor functions for creating new " +"hashing objects are named differently. ::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1914 +msgid "" +"Once a hash object has been created, its methods are the same as before: " +"``update(string)`` hashes the specified string into the current digest " +"state, :meth:`digest` and :meth:`hexdigest` return the digest value as a " +"binary string or a string of hex digits, and :meth:`copy` returns a new " +"hashing object with the same digest state." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1923 +msgid "The documentation for the :mod:`hashlib` module." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1931 +msgid "The sqlite3 package" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1933 +msgid "" +"The pysqlite module (http://www.pysqlite.org), a wrapper for the SQLite " +"embedded database, has been added to the standard library under the package " +"name :mod:`sqlite3`." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1937 +msgid "" +"SQLite is a C library that provides a lightweight disk-based database that " +"doesn't require a separate server process and allows accessing the database " +"using a nonstandard variant of the SQL query language. Some applications can " +"use SQLite for internal data storage. It's also possible to prototype an " +"application using SQLite and then port the code to a larger database such as " +"PostgreSQL or Oracle." +msgstr "" +"SQLite est une bibliothèque C qui fournit une base de données légère sur " +"disque ne nécessitant pas de processus serveur et qui utilise une variante " +"(non standard) du langage de requête SQL pour accéder aux données. Certaines " +"applications peuvent utiliser SQLite pour le stockage de données internes. " +"Il est également possible de créer une application prototype utilisant " +"SQLite, puis de modifier le code pour utiliser une base de données plus " +"robuste telle que PostgreSQL ou Oracle." + +#: ../Doc/whatsnew/2.5.rst:1944 +msgid "" +"pysqlite was written by Gerhard Häring and provides a SQL interface " +"compliant with the DB-API 2.0 specification described by :pep:`249`." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1947 +msgid "" +"If you're compiling the Python source yourself, note that the source tree " +"doesn't include the SQLite code, only the wrapper module. You'll need to " +"have the SQLite libraries and headers installed before compiling Python, and " +"the build process will compile the module when the necessary headers are " +"available." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1952 +msgid "" +"To use the module, you must first create a :class:`Connection` object that " +"represents the database. Here the data will be stored in the :file:`/tmp/" +"example` file::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1958 +msgid "" +"You can also supply the special name ``:memory:`` to create a database in " +"RAM." +msgstr "" +"Vous pouvez également fournir le nom spécial ``:memory:`` pour créer une " +"base de données dans la mémoire vive." + +#: ../Doc/whatsnew/2.5.rst:1960 +msgid "" +"Once you have a :class:`Connection`, you can create a :class:`Cursor` " +"object and call its :meth:`execute` method to perform SQL commands::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1974 +msgid "" +"Usually your SQL operations will need to use values from Python variables. " +"You shouldn't assemble your query using Python's string operations because " +"doing so is insecure; it makes your program vulnerable to an SQL injection " +"attack." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1978 +msgid "" +"Instead, use the DB-API's parameter substitution. Put ``?`` as a " +"placeholder wherever you want to use a value, and then provide a tuple of " +"values as the second argument to the cursor's :meth:`execute` method. " +"(Other database modules may use a different placeholder, such as ``%s`` or " +"``:1``.) For example::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1998 +msgid "" +"To retrieve data after executing a SELECT statement, you can either treat " +"the cursor as an iterator, call the cursor's :meth:`fetchone` method to " +"retrieve a single matching row, or call :meth:`fetchall` to get a list of " +"the matching rows." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2003 +msgid "This example uses the iterator form::" +msgstr "Cet exemple utilise la forme itérateur ::" + +#: ../Doc/whatsnew/2.5.rst:2016 +msgid "" +"For more information about the SQL dialect supported by SQLite, see https://" +"www.sqlite.org." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2023 +msgid "http://www.pysqlite.org" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2023 +msgid "The pysqlite web page." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2027 +msgid "https://www.sqlite.org" +msgstr "https://www.sqlite.org" + +#: ../Doc/whatsnew/2.5.rst:2026 +msgid "" +"The SQLite web page; the documentation describes the syntax and the " +"available data types for the supported SQL dialect." +msgstr "" +"Dans la page Web de SQLite, la documentation décrit la syntaxe et les types " +"de données disponibles qui sont pris en charge par cette variante SQL." + +#: ../Doc/whatsnew/2.5.rst:2029 +msgid "The documentation for the :mod:`sqlite3` module." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2031 +msgid ":pep:`249` - Database API Specification 2.0" +msgstr ":pep:`249` — Spécifications de l'API 2.0 pour la base de données" + +#: ../Doc/whatsnew/2.5.rst:2032 +msgid "PEP written by Marc-André Lemburg." +msgstr "PEP écrite par Marc-André Lemburg." + +#: ../Doc/whatsnew/2.5.rst:2040 +msgid "The wsgiref package" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2042 +msgid "" +"The Web Server Gateway Interface (WSGI) v1.0 defines a standard interface " +"between web servers and Python web applications and is described in :pep:" +"`333`. The :mod:`wsgiref` package is a reference implementation of the WSGI " +"specification." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2049 +msgid "" +"The package includes a basic HTTP server that will run a WSGI application; " +"this server is useful for debugging but isn't intended for production use. " +"Setting up a server takes only a few lines of code::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2069 +msgid "http://www.wsgi.org" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2069 +msgid "A central web site for WSGI-related resources." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2071 +msgid ":pep:`333` - Python Web Server Gateway Interface v1.0" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2072 +msgid "PEP written by Phillip J. Eby." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2080 +msgid "Build and C API Changes" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2082 +msgid "Changes to Python's build process and to the C API include:" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2084 +msgid "" +"The Python source tree was converted from CVS to Subversion, in a complex " +"migration procedure that was supervised and flawlessly carried out by Martin " +"von Löwis. The procedure was developed as :pep:`347`." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2088 +msgid "" +"Coverity, a company that markets a source code analysis tool called Prevent, " +"provided the results of their examination of the Python source code. The " +"analysis found about 60 bugs that were quickly fixed. Many of the bugs " +"were refcounting problems, often occurring in error-handling code. See " +"https://scan.coverity.com for the statistics." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2094 +msgid "" +"The largest change to the C API came from :pep:`353`, which modifies the " +"interpreter to use a :c:type:`Py_ssize_t` type definition instead of :c:type:" +"`int`. See the earlier section :ref:`pep-353` for a discussion of this " +"change." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2099 +msgid "" +"The design of the bytecode compiler has changed a great deal, no longer " +"generating bytecode by traversing the parse tree. Instead the parse tree is " +"converted to an abstract syntax tree (or AST), and it is the abstract " +"syntax tree that's traversed to produce the bytecode." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2104 +msgid "" +"It's possible for Python code to obtain AST objects by using the :func:" +"`compile` built-in and specifying ``_ast.PyCF_ONLY_AST`` as the value of " +"the *flags* parameter::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2117 +msgid "" +"No official documentation has been written for the AST code yet, but :pep:" +"`339` discusses the design. To start learning about the code, read the " +"definition of the various AST nodes in :file:`Parser/Python.asdl`. A Python " +"script reads this file and generates a set of C structure definitions in :" +"file:`Include/Python-ast.h`. The :c:func:`PyParser_ASTFromString` and :c:" +"func:`PyParser_ASTFromFile`, defined in :file:`Include/pythonrun.h`, take " +"Python source as input and return the root of an AST representing the " +"contents. This AST can then be turned into a code object by :c:func:" +"`PyAST_Compile`. For more information, read the source code, and then ask " +"questions on python-dev." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2127 +msgid "" +"The AST code was developed under Jeremy Hylton's management, and implemented " +"by (in alphabetical order) Brett Cannon, Nick Coghlan, Grant Edwards, John " +"Ehresman, Kurt Kaiser, Neal Norwitz, Tim Peters, Armin Rigo, and Neil " +"Schemenauer, plus the participants in a number of AST sprints at conferences " +"such as PyCon." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2136 +msgid "" +"Evan Jones's patch to obmalloc, first described in a talk at PyCon DC 2005, " +"was applied. Python 2.4 allocated small objects in 256K-sized arenas, but " +"never freed arenas. With this patch, Python will free arenas when they're " +"empty. The net effect is that on some platforms, when you allocate many " +"objects, Python's memory usage may actually drop when you delete them and " +"the memory may be returned to the operating system. (Implemented by Evan " +"Jones, and reworked by Tim Peters.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2144 +msgid "" +"Note that this change means extension modules must be more careful when " +"allocating memory. Python's API has many different functions for allocating " +"memory that are grouped into families. For example, :c:func:" +"`PyMem_Malloc`, :c:func:`PyMem_Realloc`, and :c:func:`PyMem_Free` are one " +"family that allocates raw memory, while :c:func:`PyObject_Malloc`, :c:func:" +"`PyObject_Realloc`, and :c:func:`PyObject_Free` are another family that's " +"supposed to be used for creating Python objects." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2152 +msgid "" +"Previously these different families all reduced to the platform's :c:func:" +"`malloc` and :c:func:`free` functions. This meant it didn't matter if you " +"got things wrong and allocated memory with the :c:func:`PyMem` function but " +"freed it with the :c:func:`PyObject` function. With 2.5's changes to " +"obmalloc, these families now do different things and mismatches will " +"probably result in a segfault. You should carefully test your C extension " +"modules with Python 2.5." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2159 +msgid "" +"The built-in set types now have an official C API. Call :c:func:`PySet_New` " +"and :c:func:`PyFrozenSet_New` to create a new set, :c:func:`PySet_Add` and :" +"c:func:`PySet_Discard` to add and remove elements, and :c:func:" +"`PySet_Contains` and :c:func:`PySet_Size` to examine the set's state. " +"(Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2165 +msgid "" +"C code can now obtain information about the exact revision of the Python " +"interpreter by calling the :c:func:`Py_GetBuildInfo` function that returns " +"a string of build information like this: ``\"trunk:45355:45356M, Apr 13 " +"2006, 07:42:19\"``. (Contributed by Barry Warsaw.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2170 +msgid "" +"Two new macros can be used to indicate C functions that are local to the " +"current file so that a faster calling convention can be used. " +"``Py_LOCAL(type)`` declares the function as returning a value of the " +"specified *type* and uses a fast-calling qualifier. " +"``Py_LOCAL_INLINE(type)`` does the same thing and also requests the function " +"be inlined. If :c:func:`PY_LOCAL_AGGRESSIVE` is defined before :file:" +"`python.h` is included, a set of more aggressive optimizations are enabled " +"for the module; you should benchmark the results to find out if these " +"optimizations actually make the code faster. (Contributed by Fredrik Lundh " +"at the NeedForSpeed sprint.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2181 +msgid "" +"``PyErr_NewException(name, base, dict)`` can now accept a tuple of base " +"classes as its *base* argument. (Contributed by Georg Brandl.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2184 +msgid "" +"The :c:func:`PyErr_Warn` function for issuing warnings is now deprecated in " +"favour of ``PyErr_WarnEx(category, message, stacklevel)`` which lets you " +"specify the number of stack frames separating this function and the caller. " +"A *stacklevel* of 1 is the function calling :c:func:`PyErr_WarnEx`, 2 is the " +"function above that, and so forth. (Added by Neal Norwitz.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2190 +msgid "" +"The CPython interpreter is still written in C, but the code can now be " +"compiled with a C++ compiler without errors. (Implemented by Anthony " +"Baxter, Martin von Löwis, Skip Montanaro.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2194 +msgid "" +"The :c:func:`PyRange_New` function was removed. It was never documented, " +"never used in the core code, and had dangerously lax error checking. In the " +"unlikely case that your extensions were using it, you can replace it by " +"something like the following::" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2208 +msgid "Port-Specific Changes" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2210 +msgid "" +"MacOS X (10.3 and higher): dynamic loading of modules now uses the :c:func:" +"`dlopen` function instead of MacOS-specific functions." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2213 +msgid "" +"MacOS X: an :option:`!--enable-universalsdk` switch was added to the :" +"program:`configure` script that compiles the interpreter as a universal " +"binary able to run on both PowerPC and Intel processors. (Contributed by " +"Ronald Oussoren; :issue:`2573`.)" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2218 +msgid "" +"Windows: :file:`.dll` is no longer supported as a filename extension for " +"extension modules. :file:`.pyd` is now the only filename extension that " +"will be searched for." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2228 +msgid "Porting to Python 2.5" +msgstr "Portage vers Python 2.5" + +#: ../Doc/whatsnew/2.5.rst:2230 +msgid "" +"This section lists previously described changes that may require changes to " +"your code:" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2233 +msgid "" +"ASCII is now the default encoding for modules. It's now a syntax error if " +"a module contains string literals with 8-bit characters but doesn't have an " +"encoding declaration. In Python 2.4 this triggered a warning, not a syntax " +"error." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2238 +msgid "" +"Previously, the :attr:`gi_frame` attribute of a generator was always a frame " +"object. Because of the :pep:`342` changes described in section :ref:" +"`pep-342`, it's now possible for :attr:`gi_frame` to be ``None``." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2242 +msgid "" +"A new warning, :class:`UnicodeWarning`, is triggered when you attempt to " +"compare a Unicode string and an 8-bit string that can't be converted to " +"Unicode using the default ASCII encoding. Previously such comparisons would " +"raise a :class:`UnicodeDecodeError` exception." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2247 +msgid "" +"Library: the :mod:`csv` module is now stricter about multi-line quoted " +"fields. If your files contain newlines embedded within fields, the input " +"should be split into lines in a manner which preserves the newline " +"characters." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2251 +msgid "" +"Library: the :mod:`locale` module's :func:`format` function's would " +"previously accept any string as long as no more than one %char specifier " +"appeared. In Python 2.5, the argument must be exactly one %char specifier " +"with no surrounding text." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2256 +msgid "" +"Library: The :mod:`pickle` and :mod:`cPickle` modules no longer accept a " +"return value of ``None`` from the :meth:`__reduce__` method; the method must " +"return a tuple of arguments instead. The modules also no longer accept the " +"deprecated *bin* keyword parameter." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2261 +msgid "" +"Library: The :mod:`SimpleXMLRPCServer` and :mod:`DocXMLRPCServer` classes " +"now have a :attr:`rpc_paths` attribute that constrains XML-RPC operations to " +"a limited set of URL paths; the default is to allow only ``'/'`` and ``'/" +"RPC2'``. Setting :attr:`rpc_paths` to ``None`` or an empty tuple disables " +"this path checking." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2267 +msgid "" +"C API: Many functions now use :c:type:`Py_ssize_t` instead of :c:type:`int` " +"to allow processing more data on 64-bit machines. Extension code may need " +"to make the same change to avoid warnings and to support 64-bit machines. " +"See the earlier section :ref:`pep-353` for a discussion of this change." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2272 +msgid "" +"C API: The obmalloc changes mean that you must be careful to not mix usage " +"of the :c:func:`PyMem_\\*` and :c:func:`PyObject_\\*` families of functions. " +"Memory allocated with one family's :c:func:`\\*_Malloc` must be freed with " +"the corresponding family's :c:func:`\\*_Free` function." +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:2281 +msgid "Acknowledgements" +msgstr "Remerciements" + +#: ../Doc/whatsnew/2.5.rst:2283 +msgid "" +"The author would like to thank the following people for offering " +"suggestions, corrections and assistance with various drafts of this article: " +"Georg Brandl, Nick Coghlan, Phillip J. Eby, Lars Gustäbel, Raymond " +"Hettinger, Ralf W. Grosse-Kunstleve, Kent Johnson, Iain Lowe, Martin von " +"Löwis, Fredrik Lundh, Andrew McNamara, Skip Montanaro, Gustavo Niemeyer, " +"Paul Prescod, James Pryor, Mike Rovner, Scott Weikart, Barry Warsaw, Thomas " +"Wouters." +msgstr "" diff --git a/whatsnew/2.6.po b/whatsnew/2.6.po new file mode 100644 index 000000000..b90566310 --- /dev/null +++ b/whatsnew/2.6.po @@ -0,0 +1,3695 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2018-07-31 23:37+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/whatsnew/2.6.rst:5 +msgid "What's New in Python 2.6" +msgstr "Nouveautés de Python 2.6" + +#: ../Doc/whatsnew/2.6.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/whatsnew/2.6.rst:9 +msgid "A.M. Kuchling (amk at amk.ca)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:52 +msgid "" +"This article explains the new features in Python 2.6, released on October 1 " +"2008. The release schedule is described in :pep:`361`." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:55 +msgid "" +"The major theme of Python 2.6 is preparing the migration path to Python 3.0, " +"a major redesign of the language. Whenever possible, Python 2.6 " +"incorporates new features and syntax from 3.0 while remaining compatible " +"with existing code by not removing older features or syntax. When it's not " +"possible to do that, Python 2.6 tries to do what it can, adding " +"compatibility functions in a :mod:`future_builtins` module and a :option:" +"`!-3` switch to warn about usages that will become unsupported in 3.0." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:64 +msgid "" +"Some significant new packages have been added to the standard library, such " +"as the :mod:`multiprocessing` and :mod:`json` modules, but there aren't many " +"new features that aren't related to Python 3.0 in some way." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:69 +msgid "" +"Python 2.6 also sees a number of improvements and bugfixes throughout the " +"source. A search through the change logs finds there were 259 patches " +"applied and 612 bugs fixed between Python 2.5 and 2.6. Both figures are " +"likely to be underestimates." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:74 +msgid "" +"This article doesn't attempt to provide a complete specification of the new " +"features, but instead provides a convenient overview. For full details, you " +"should refer to the documentation for Python 2.6. If you want to understand " +"the rationale for the design and implementation, refer to the PEP for a " +"particular new feature. Whenever possible, \"What's New in Python\" links to " +"the bug/patch item for each change." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:90 +msgid "Python 3.0" +msgstr "Python 3.0" + +#: ../Doc/whatsnew/2.6.rst:92 +msgid "" +"The development cycle for Python versions 2.6 and 3.0 was synchronized, with " +"the alpha and beta releases for both versions being made on the same days. " +"The development of 3.0 has influenced many features in 2.6." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:97 +msgid "" +"Python 3.0 is a far-ranging redesign of Python that breaks compatibility " +"with the 2.x series. This means that existing Python code will need some " +"conversion in order to run on Python 3.0. However, not all the changes in " +"3.0 necessarily break compatibility. In cases where new features won't " +"cause existing code to break, they've been backported to 2.6 and are " +"described in this document in the appropriate place. Some of the 3.0-" +"derived features are:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:106 +msgid "" +"A :meth:`__complex__` method for converting objects to a complex number." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:107 +msgid "Alternate syntax for catching exceptions: ``except TypeError as exc``." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:108 +msgid "" +"The addition of :func:`functools.reduce` as a synonym for the built-in :func:" +"`reduce` function." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:111 +msgid "" +"Python 3.0 adds several new built-in functions and changes the semantics of " +"some existing builtins. Functions that are new in 3.0 such as :func:`bin` " +"have simply been added to Python 2.6, but existing builtins haven't been " +"changed; instead, the :mod:`future_builtins` module has versions with the " +"new 3.0 semantics. Code written to be compatible with 3.0 can do ``from " +"future_builtins import hex, map`` as necessary." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:119 +msgid "" +"A new command-line switch, :option:`!-3`, enables warnings about features " +"that will be removed in Python 3.0. You can run code with this switch to " +"see how much work will be necessary to port code to 3.0. The value of this " +"switch is available to Python code as the boolean variable :data:`sys." +"py3kwarning`, and to C extension code as :c:data:`Py_Py3kWarningFlag`." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:128 +msgid "" +"The 3xxx series of PEPs, which contains proposals for Python 3.0. :pep:" +"`3000` describes the development process for Python 3.0. Start with :pep:" +"`3100` that describes the general goals for Python 3.0, and then explore the " +"higher-numbered PEPS that propose specific features." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:136 +msgid "Changes to the Development Process" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:138 +msgid "" +"While 2.6 was being developed, the Python development process underwent two " +"significant changes: we switched from SourceForge's issue tracker to a " +"customized Roundup installation, and the documentation was converted from " +"LaTeX to reStructuredText." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:145 +msgid "New Issue Tracker: Roundup" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:147 +msgid "" +"For a long time, the Python developers had been growing increasingly annoyed " +"by SourceForge's bug tracker. SourceForge's hosted solution doesn't permit " +"much customization; for example, it wasn't possible to customize the life " +"cycle of issues." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:152 +msgid "" +"The infrastructure committee of the Python Software Foundation therefore " +"posted a call for issue trackers, asking volunteers to set up different " +"products and import some of the bugs and patches from SourceForge. Four " +"different trackers were examined: `Jira `__, `Launchpad `__, `Roundup `__, and `Trac `__. The " +"committee eventually settled on Jira and Roundup as the two candidates. " +"Jira is a commercial product that offers no-cost hosted instances to free-" +"software projects; Roundup is an open-source project that requires " +"volunteers to administer it and a server to host it." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:166 +msgid "" +"After posting a call for volunteers, a new Roundup installation was set up " +"at https://bugs.python.org. One installation of Roundup can host multiple " +"trackers, and this server now also hosts issue trackers for Jython and for " +"the Python web site. It will surely find other uses in the future. Where " +"possible, this edition of \"What's New in Python\" links to the bug/patch " +"item for each change." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:174 +msgid "" +"Hosting of the Python bug tracker is kindly provided by `Upfront Systems " +"`__ of Stellenbosch, South Africa. Martin " +"von Löwis put a lot of effort into importing existing bugs and patches from " +"SourceForge; his scripts for this import operation are at http://svn.python." +"org/view/tracker/importer/ and may be useful to other projects wishing to " +"move from SourceForge to Roundup." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:185 +msgid "https://bugs.python.org" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:185 +msgid "The Python bug tracker." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:188 +msgid "http://bugs.jython.org:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:188 +msgid "The Jython bug tracker." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:191 +msgid "http://roundup.sourceforge.net/" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:191 +msgid "Roundup downloads and documentation." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:193 +msgid "http://svn.python.org/view/tracker/importer/" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:194 +msgid "Martin von Löwis's conversion scripts." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:197 +msgid "New Documentation Format: reStructuredText Using Sphinx" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:199 +msgid "" +"The Python documentation was written using LaTeX since the project started " +"around 1989. In the 1980s and early 1990s, most documentation was printed " +"out for later study, not viewed online. LaTeX was widely used because it " +"provided attractive printed output while remaining straightforward to write " +"once the basic rules of the markup were learned." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:206 +msgid "" +"Today LaTeX is still used for writing publications destined for printing, " +"but the landscape for programming tools has shifted. We no longer print out " +"reams of documentation; instead, we browse through it online and HTML has " +"become the most important format to support. Unfortunately, converting LaTeX " +"to HTML is fairly complicated and Fred L. Drake Jr., the long-time Python " +"documentation editor, spent a lot of time maintaining the conversion " +"process. Occasionally people would suggest converting the documentation " +"into SGML and later XML, but performing a good conversion is a major task " +"and no one ever committed the time required to finish the job." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:217 +msgid "" +"During the 2.6 development cycle, Georg Brandl put a lot of effort into " +"building a new toolchain for processing the documentation. The resulting " +"package is called Sphinx, and is available from http://sphinx-doc.org/." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:222 +msgid "" +"Sphinx concentrates on HTML output, producing attractively styled and modern " +"HTML; printed output is still supported through conversion to LaTeX. The " +"input format is reStructuredText, a markup syntax supporting custom " +"extensions and directives that is commonly used in the Python community." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:228 +msgid "" +"Sphinx is a standalone package that can be used for writing, and almost two " +"dozen other projects (`listed on the Sphinx web site `__) have adopted Sphinx as their documentation " +"tool." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:236 +msgid "`Documenting Python `__" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:236 +msgid "Describes how to write for Python's documentation." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:239 +msgid "`Sphinx `__" +msgstr "`Sphinx `__" + +#: ../Doc/whatsnew/2.6.rst:239 +msgid "Documentation and code for the Sphinx toolchain." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:241 +msgid "`Docutils `__" +msgstr "`Docutils `__" + +#: ../Doc/whatsnew/2.6.rst:242 +msgid "The underlying reStructuredText parser and toolset." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:248 +msgid "PEP 343: The 'with' statement" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:250 +msgid "" +"The previous version, Python 2.5, added the ':keyword:`with`' statement as " +"an optional feature, to be enabled by a ``from __future__ import " +"with_statement`` directive. In 2.6 the statement no longer needs to be " +"specially enabled; this means that :keyword:`!with` is now always a " +"keyword. The rest of this section is a copy of the corresponding section " +"from the \"What's New in Python 2.5\" document; if you're familiar with the " +"':keyword:`!with`' statement from Python 2.5, you can skip this section." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:259 +msgid "" +"The ':keyword:`with`' statement clarifies code that previously would use " +"``try...finally`` blocks to ensure that clean-up code is executed. In this " +"section, I'll discuss the statement as it will commonly be used. In the " +"next section, I'll examine the implementation details and show how to write " +"objects for use with this statement." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:265 +msgid "" +"The ':keyword:`with`' statement is a control-flow structure whose basic " +"structure is::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:271 +msgid "" +"The expression is evaluated, and it should result in an object that supports " +"the context management protocol (that is, has :meth:`__enter__` and :meth:" +"`__exit__` methods)." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:275 +msgid "" +"The object's :meth:`__enter__` is called before *with-block* is executed and " +"therefore can run set-up code. It also may return a value that is bound to " +"the name *variable*, if given. (Note carefully that *variable* is *not* " +"assigned the result of *expression*.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:280 +msgid "" +"After execution of the *with-block* is finished, the object's :meth:" +"`__exit__` method is called, even if the block raised an exception, and can " +"therefore run clean-up code." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:284 +msgid "" +"Some standard Python objects now support the context management protocol and " +"can be used with the ':keyword:`with`' statement. File objects are one " +"example::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:292 +msgid "" +"After this statement has executed, the file object in *f* will have been " +"automatically closed, even if the :keyword:`for` loop raised an exception " +"part-way through the block." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:298 +msgid "" +"In this case, *f* is the same object created by :func:`open`, because :meth:" +"`file.__enter__` returns *self*." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:301 +msgid "" +"The :mod:`threading` module's locks and condition variables also support " +"the ':keyword:`with`' statement::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:309 +msgid "" +"The lock is acquired before the block is executed and always released once " +"the block is complete." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:312 +msgid "" +"The :func:`localcontext` function in the :mod:`decimal` module makes it easy " +"to save and restore the current decimal context, which encapsulates the " +"desired precision and rounding characteristics for computations::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:331 +msgid "Writing Context Managers" +msgstr "Écrire des gestionnaires de contexte" + +#: ../Doc/whatsnew/2.6.rst:333 +msgid "" +"Under the hood, the ':keyword:`with`' statement is fairly complicated. Most " +"people will only use ':keyword:`!with`' in company with existing objects and " +"don't need to know these details, so you can skip the rest of this section " +"if you like. Authors of new objects will need to understand the details of " +"the underlying implementation and should keep reading." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:339 +msgid "A high-level explanation of the context management protocol is:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:341 +msgid "" +"The expression is evaluated and should result in an object called a " +"\"context manager\". The context manager must have :meth:`__enter__` and :" +"meth:`__exit__` methods." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:345 +msgid "" +"The context manager's :meth:`__enter__` method is called. The value " +"returned is assigned to *VAR*. If no ``as VAR`` clause is present, the " +"value is simply discarded." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:349 +msgid "The code in *BLOCK* is executed." +msgstr "Le code dans *BLOCK* est exécuté." + +#: ../Doc/whatsnew/2.6.rst:351 +msgid "" +"If *BLOCK* raises an exception, the context manager's :meth:`__exit__` " +"method is called with three arguments, the exception details (``type, value, " +"traceback``, the same values returned by :func:`sys.exc_info`, which can " +"also be ``None`` if no exception occurred). The method's return value " +"controls whether an exception is re-raised: any false value re-raises the " +"exception, and ``True`` will result in suppressing it. You'll only rarely " +"want to suppress the exception, because if you do the author of the code " +"containing the ':keyword:`with`' statement will never realize anything went " +"wrong." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:360 +msgid "" +"If *BLOCK* didn't raise an exception, the :meth:`__exit__` method is still " +"called, but *type*, *value*, and *traceback* are all ``None``." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:363 +msgid "" +"Let's think through an example. I won't present detailed code but will only " +"sketch the methods necessary for a database that supports transactions." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:366 +msgid "" +"(For people unfamiliar with database terminology: a set of changes to the " +"database are grouped into a transaction. Transactions can be either " +"committed, meaning that all the changes are written into the database, or " +"rolled back, meaning that the changes are all discarded and the database is " +"unchanged. See any database textbook for more information.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:372 +msgid "" +"Let's assume there's an object representing a database connection. Our goal " +"will be to let the user write code like this::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:381 +msgid "" +"The transaction should be committed if the code in the block runs flawlessly " +"or rolled back if there's an exception. Here's the basic interface for :" +"class:`DatabaseConnection` that I'll assume::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:394 +msgid "" +"The :meth:`__enter__` method is pretty easy, having only to start a new " +"transaction. For this application the resulting cursor object would be a " +"useful result, so the method will return it. The user can then add ``as " +"cursor`` to their ':keyword:`with`' statement to bind the cursor to a " +"variable name. ::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:406 +msgid "" +"The :meth:`__exit__` method is the most complicated because it's where most " +"of the work has to be done. The method has to check if an exception " +"occurred. If there was no exception, the transaction is committed. The " +"transaction is rolled back if there was an exception." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:411 +msgid "" +"In the code below, execution will just fall off the end of the function, " +"returning the default value of ``None``. ``None`` is false, so the " +"exception will be re-raised automatically. If you wished, you could be more " +"explicit and add a :keyword:`return` statement at the marked location. ::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:431 +msgid "The contextlib module" +msgstr "Le module *contextlib*" + +#: ../Doc/whatsnew/2.6.rst:433 +msgid "" +"The :mod:`contextlib` module provides some functions and a decorator that " +"are useful when writing objects for use with the ':keyword:`with`' statement." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:436 +msgid "" +"The decorator is called :func:`contextmanager`, and lets you write a single " +"generator function instead of defining a new class. The generator should " +"yield exactly one value. The code up to the :keyword:`yield` will be " +"executed as the :meth:`__enter__` method, and the value yielded will be the " +"method's return value that will get bound to the variable in the ':keyword:" +"`with`' statement's :keyword:`!as` clause, if any. The code after the :" +"keyword:`!yield` will be executed in the :meth:`__exit__` method. Any " +"exception raised in the block will be raised by the :keyword:`!yield` " +"statement." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:445 +msgid "" +"Using this decorator, our database example from the previous section could " +"be written as::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:465 +msgid "" +"The :mod:`contextlib` module also has a ``nested(mgr1, mgr2, ...)`` function " +"that combines a number of context managers so you don't need to write nested " +"':keyword:`with`' statements. In this example, the single ':keyword:`!" +"with`' statement both starts a database transaction and acquires a thread " +"lock::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:474 +msgid "" +"Finally, the :func:`closing` function returns its argument so that it can be " +"bound to a variable, and calls the argument's ``.close()`` method at the end " +"of the block. ::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:492 +msgid ":pep:`343` - The \"with\" statement" +msgstr ":pep:`343` - The \"with\" statement" + +#: ../Doc/whatsnew/2.6.rst:489 +msgid "" +"PEP written by Guido van Rossum and Nick Coghlan; implemented by Mike Bland, " +"Guido van Rossum, and Neal Norwitz. The PEP shows the code generated for a " +"':keyword:`with`' statement, which can be helpful in learning how the " +"statement works." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:494 +msgid "The documentation for the :mod:`contextlib` module." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:501 +msgid "PEP 366: Explicit Relative Imports From a Main Module" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:503 +msgid "" +"Python's :option:`-m` switch allows running a module as a script. When you " +"ran a module that was located inside a package, relative imports didn't work " +"correctly." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:507 +msgid "" +"The fix for Python 2.6 adds a :attr:`__package__` attribute to modules. " +"When this attribute is present, relative imports will be relative to the " +"value of this attribute instead of the :attr:`__name__` attribute." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:512 +msgid "" +"PEP 302-style importers can then set :attr:`__package__` as necessary. The :" +"mod:`runpy` module that implements the :option:`-m` switch now does this, so " +"relative imports will now work correctly in scripts running from inside a " +"package." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:522 +msgid "PEP 370: Per-user ``site-packages`` Directory" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:524 +msgid "" +"When you run Python, the module search path ``sys.path`` usually includes a " +"directory whose path ends in ``\"site-packages\"``. This directory is " +"intended to hold locally-installed packages available to all users using a " +"machine or a particular site installation." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:529 +msgid "" +"Python 2.6 introduces a convention for user-specific site directories. The " +"directory varies depending on the platform:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:532 +msgid "Unix and Mac OS X: :file:`~/.local/`" +msgstr "UNIX et Mac OS X : :file:`~/.local/`" + +#: ../Doc/whatsnew/2.6.rst:533 +msgid "Windows: :file:`%APPDATA%/Python`" +msgstr "Windows : :file:`%APPDATA%/Python`" + +#: ../Doc/whatsnew/2.6.rst:535 +msgid "" +"Within this directory, there will be version-specific subdirectories, such " +"as :file:`lib/python2.6/site-packages` on Unix/Mac OS and :file:`Python26/" +"site-packages` on Windows." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:539 +msgid "" +"If you don't like the default directory, it can be overridden by an " +"environment variable. :envvar:`PYTHONUSERBASE` sets the root directory used " +"for all Python versions supporting this feature. On Windows, the directory " +"for application-specific data can be changed by setting the :envvar:" +"`APPDATA` environment variable. You can also modify the :file:`site.py` " +"file for your Python installation." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:546 +msgid "" +"The feature can be disabled entirely by running Python with the :option:`-s` " +"option or setting the :envvar:`PYTHONNOUSERSITE` environment variable." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:552 +msgid ":pep:`370` - Per-user ``site-packages`` Directory" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:553 +msgid "PEP written and implemented by Christian Heimes." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:561 +msgid "PEP 371: The ``multiprocessing`` Package" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:563 +msgid "" +"The new :mod:`multiprocessing` package lets Python programs create new " +"processes that will perform a computation and return a result to the " +"parent. The parent and child processes can communicate using queues and " +"pipes, synchronize their operations using locks and semaphores, and can " +"share simple arrays of data." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:569 +msgid "" +"The :mod:`multiprocessing` module started out as an exact emulation of the :" +"mod:`threading` module using processes instead of threads. That goal was " +"discarded along the path to Python 2.6, but the general approach of the " +"module is still similar. The fundamental class is the :class:`Process`, " +"which is passed a callable object and a collection of arguments. The :meth:" +"`start` method sets the callable running in a subprocess, after which you " +"can call the :meth:`is_alive` method to check whether the subprocess is " +"still running and the :meth:`join` method to wait for the process to exit." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:579 +msgid "" +"Here's a simple example where the subprocess will calculate a factorial. " +"The function doing the calculation is written strangely so that it takes " +"significantly longer when the input argument is a multiple of 4." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:616 +msgid "" +"A :class:`~queue.Queue` is used to communicate the result of the factorial. " +"The :class:`~queue.Queue` object is stored in a global variable. The child " +"process will use the value of the variable when the child was created; " +"because it's a :class:`~queue.Queue`, parent and child can use the object to " +"communicate. (If the parent were to change the value of the global " +"variable, the child's value would be unaffected, and vice versa.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:624 +msgid "" +"Two other classes, :class:`Pool` and :class:`Manager`, provide higher-level " +"interfaces. :class:`Pool` will create a fixed number of worker processes, " +"and requests can then be distributed to the workers by calling :meth:`apply` " +"or :meth:`apply_async` to add a single request, and :meth:`map` or :meth:" +"`map_async` to add a number of requests. The following code uses a :class:" +"`Pool` to spread requests across 5 worker processes and retrieve a list of " +"results::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:642 +msgid "This produces the following output::" +msgstr "Ceci produit l’affichage suivant ::" + +#: ../Doc/whatsnew/2.6.rst:651 +msgid "" +"The other high-level interface, the :class:`Manager` class, creates a " +"separate server process that can hold master copies of Python data " +"structures. Other processes can then access and modify these data " +"structures using proxy objects. The following example creates a shared " +"dictionary by calling the :meth:`dict` method; the worker processes then " +"insert values into the dictionary. (Locking is not done for you " +"automatically, which doesn't matter in this example. :class:`Manager`'s " +"methods also include :meth:`Lock`, :meth:`RLock`, and :meth:`Semaphore` to " +"create shared locks.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:695 +msgid "This will produce the output::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:706 +msgid "The documentation for the :mod:`multiprocessing` module." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:709 +msgid ":pep:`371` - Addition of the multiprocessing package" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:709 +msgid "" +"PEP written by Jesse Noller and Richard Oudkerk; implemented by Richard " +"Oudkerk and Jesse Noller." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:718 +msgid "PEP 3101: Advanced String Formatting" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:720 +msgid "" +"In Python 3.0, the `%` operator is supplemented by a more powerful string " +"formatting method, :meth:`format`. Support for the :meth:`str.format` " +"method has been backported to Python 2.6." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:724 +msgid "" +"In 2.6, both 8-bit and Unicode strings have a `.format()` method that treats " +"the string as a template and takes the arguments to be formatted. The " +"formatting template uses curly brackets (`{`, `}`) as special characters::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:737 +msgid "Curly brackets can be escaped by doubling them::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:742 +msgid "" +"Field names can be integers indicating positional arguments, such as ``{0}" +"``, ``{1}``, etc. or names of keyword arguments. You can also supply " +"compound field names that read attributes or access dictionary keys::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:756 +msgid "" +"Note that when using dictionary-style notation such as ``[.mp4]``, you don't " +"need to put any quotation marks around the string; it will look up the value " +"using ``.mp4`` as the key. Strings beginning with a number will be " +"converted to an integer. You can't write more complicated expressions " +"inside a format string." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:762 +msgid "" +"So far we've shown how to specify which field to substitute into the " +"resulting string. The precise formatting used is also controllable by " +"adding a colon followed by a format specifier. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:776 +msgid "Format specifiers can reference other fields through nesting::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:786 +msgid "The alignment of a field within the desired width can be specified:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:789 +msgid "Character" +msgstr "Caractère" + +#: ../Doc/whatsnew/2.6.rst:789 +msgid "Effect" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:791 +msgid "< (default)" +msgstr "< (par défaut)" + +#: ../Doc/whatsnew/2.6.rst:791 +msgid "Left-align" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:792 +msgid ">" +msgstr ">" + +#: ../Doc/whatsnew/2.6.rst:792 +msgid "Right-align" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:793 +msgid "^" +msgstr "^" + +#: ../Doc/whatsnew/2.6.rst:793 +msgid "Center" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:794 +msgid "=" +msgstr "=" + +#: ../Doc/whatsnew/2.6.rst:794 +msgid "(For numeric types only) Pad after the sign." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:797 +msgid "" +"Format specifiers can also include a presentation type, which controls how " +"the value is formatted. For example, floating-point numbers can be " +"formatted as a general number or in exponential notation::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:806 +msgid "" +"A variety of presentation types are available. Consult the 2.6 " +"documentation for a :ref:`complete list `; here's a sample:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:810 +msgid "``b``" +msgstr "``b``" + +#: ../Doc/whatsnew/2.6.rst:810 +msgid "Binary. Outputs the number in base 2." +msgstr "Format binaire. Affiche le nombre en base 2." + +#: ../Doc/whatsnew/2.6.rst:811 +msgid "``c``" +msgstr "``c``" + +#: ../Doc/whatsnew/2.6.rst:811 +msgid "" +"Character. Converts the integer to the corresponding Unicode character " +"before printing." +msgstr "" +"Caractère. Convertit l'entier en le caractère Unicode associé avant de " +"l'afficher." + +#: ../Doc/whatsnew/2.6.rst:813 +msgid "``d``" +msgstr "``d``" + +#: ../Doc/whatsnew/2.6.rst:813 +msgid "Decimal Integer. Outputs the number in base 10." +msgstr "Entier décimal. Affiche le nombre en base 10." + +#: ../Doc/whatsnew/2.6.rst:814 +msgid "``o``" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:814 +msgid "Octal format. Outputs the number in base 8." +msgstr "Format octal. Affiche le nombre en base 8." + +#: ../Doc/whatsnew/2.6.rst:815 +msgid "``x``" +msgstr "``x``" + +#: ../Doc/whatsnew/2.6.rst:815 +msgid "" +"Hex format. Outputs the number in base 16, using lower-case letters for the " +"digits above 9." +msgstr "" +"Format hexadécimal. Affiche le nombre en base 16 en utilisant les lettres " +"minuscules pour les chiffres au-dessus de 9." + +#: ../Doc/whatsnew/2.6.rst:817 +msgid "``e``" +msgstr "``e``" + +#: ../Doc/whatsnew/2.6.rst:817 +msgid "" +"Exponent notation. Prints the number in scientific notation using the letter " +"'e' to indicate the exponent." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:819 +msgid "``g``" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:819 +msgid "" +"General format. This prints the number as a fixed-point number, unless the " +"number is too large, in which case it switches to 'e' exponent notation." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:822 +msgid "``n``" +msgstr "``n``" + +#: ../Doc/whatsnew/2.6.rst:822 +msgid "" +"Number. This is the same as 'g' (for floats) or 'd' (for integers), except " +"that it uses the current locale setting to insert the appropriate number " +"separator characters." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:825 +msgid "``%``" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:825 +msgid "" +"Percentage. Multiplies the number by 100 and displays in fixed ('f') format, " +"followed by a percent sign." +msgstr "" +"Pourcentage. Multiplie le nombre par 100 et l'affiche en virgule fixe ('f'), " +"suivi d'un symbole pourcent ``'%'``." + +#: ../Doc/whatsnew/2.6.rst:829 +msgid "" +"Classes and types can define a :meth:`__format__` method to control how " +"they're formatted. It receives a single argument, the format specifier::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:838 +msgid "" +"There's also a :func:`format` builtin that will format a single value. It " +"calls the type's :meth:`__format__` method with the provided specifier::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:849 +msgid ":ref:`formatstrings`" +msgstr ":ref:`formatstrings`" + +#: ../Doc/whatsnew/2.6.rst:849 +msgid "The reference documentation for format fields." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:851 +msgid ":pep:`3101` - Advanced String Formatting" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:852 +msgid "PEP written by Talin. Implemented by Eric Smith." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:859 +msgid "PEP 3105: ``print`` As a Function" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:861 +msgid "" +"The ``print`` statement becomes the :func:`print` function in Python 3.0. " +"Making :func:`print` a function makes it possible to replace the function by " +"doing ``def print(...)`` or importing a new function from somewhere else." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:865 +msgid "" +"Python 2.6 has a ``__future__`` import that removes ``print`` as language " +"syntax, letting you use the functional form instead. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:871 +msgid "The signature of the new function is::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:876 +msgid "The parameters are:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:878 +msgid "*args*: positional arguments whose values will be printed out." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:879 +msgid "*sep*: the separator, which will be printed between arguments." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:880 +msgid "" +"*end*: the ending text, which will be printed after all of the arguments " +"have been output." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:882 +msgid "*file*: the file object to which the output will be sent." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:886 +msgid ":pep:`3105` - Make print a function" +msgstr ":pep:`3105` - Make print a function" + +#: ../Doc/whatsnew/2.6.rst:887 +msgid "PEP written by Georg Brandl." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:894 +msgid "PEP 3110: Exception-Handling Changes" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:896 +msgid "" +"One error that Python programmers occasionally make is writing the following " +"code::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:904 +msgid "" +"The author is probably trying to catch both :exc:`TypeError` and :exc:" +"`ValueError` exceptions, but this code actually does something different: it " +"will catch :exc:`TypeError` and bind the resulting exception object to the " +"local name ``\"ValueError\"``. The :exc:`ValueError` exception will not be " +"caught at all. The correct code specifies a tuple of exceptions::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:916 +msgid "" +"This error happens because the use of the comma here is ambiguous: does it " +"indicate two different nodes in the parse tree, or a single node that's a " +"tuple?" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:920 +msgid "" +"Python 3.0 makes this unambiguous by replacing the comma with the word \"as" +"\". To catch an exception and store the exception object in the variable " +"``exc``, you must write::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:929 +msgid "" +"Python 3.0 will only support the use of \"as\", and therefore interprets the " +"first example as catching two different exceptions. Python 2.6 supports " +"both the comma and \"as\", so existing code will continue to work. We " +"therefore suggest using \"as\" when writing new Python code that will only " +"be executed with 2.6." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:937 +msgid ":pep:`3110` - Catching Exceptions in Python 3000" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:938 +msgid "PEP written and implemented by Collin Winter." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:945 +msgid "PEP 3112: Byte Literals" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:947 +msgid "" +"Python 3.0 adopts Unicode as the language's fundamental string type and " +"denotes 8-bit literals differently, either as ``b'string'`` or using a :" +"class:`bytes` constructor. For future compatibility, Python 2.6 adds :class:" +"`bytes` as a synonym for the :class:`str` type, and it also supports the " +"``b''`` notation." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:954 +msgid "" +"The 2.6 :class:`str` differs from 3.0's :class:`bytes` type in various ways; " +"most notably, the constructor is completely different. In 3.0, ``bytes([65, " +"66, 67])`` is 3 elements long, containing the bytes representing ``ABC``; in " +"2.6, ``bytes([65, 66, 67])`` returns the 12-byte string representing the :" +"func:`str` of the list." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:960 +msgid "" +"The primary use of :class:`bytes` in 2.6 will be to write tests of object " +"type such as ``isinstance(x, bytes)``. This will help the 2to3 converter, " +"which can't tell whether 2.x code intends strings to contain either " +"characters or 8-bit bytes; you can now use either :class:`bytes` or :class:" +"`str` to represent your intention exactly, and the resulting code will also " +"be correct in Python 3.0." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:967 +msgid "" +"There's also a ``__future__`` import that causes all string literals to " +"become Unicode strings. This means that ``\\u`` escape sequences can be " +"used to include Unicode characters::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:979 +msgid "" +"At the C level, Python 3.0 will rename the existing 8-bit string type, " +"called :c:type:`PyStringObject` in Python 2.x, to :c:type:`PyBytesObject`. " +"Python 2.6 uses ``#define`` to support using the names :c:func:" +"`PyBytesObject`, :c:func:`PyBytes_Check`, :c:func:" +"`PyBytes_FromStringAndSize`, and all the other functions and macros used " +"with strings." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:986 +msgid "" +"Instances of the :class:`bytes` type are immutable just as strings are. A " +"new :class:`bytearray` type stores a mutable sequence of bytes::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1001 +msgid "" +"Byte arrays support most of the methods of string types, such as :meth:" +"`startswith`/:meth:`endswith`, :meth:`find`/:meth:`rfind`, and some of the " +"methods of lists, such as :meth:`append`, :meth:`pop`, and :meth:`reverse`." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1014 +msgid "" +"There's also a corresponding C API, with :c:func:`PyByteArray_FromObject`, :" +"c:func:`PyByteArray_FromStringAndSize`, and various other functions." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1021 +msgid ":pep:`3112` - Bytes literals in Python 3000" +msgstr ":pep:`3112` - Bytes literals in Python 3000" + +#: ../Doc/whatsnew/2.6.rst:1022 +msgid "PEP written by Jason Orendorff; backported to 2.6 by Christian Heimes." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1029 +msgid "PEP 3116: New I/O Library" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1031 +msgid "" +"Python's built-in file objects support a number of methods, but file-like " +"objects don't necessarily support all of them. Objects that imitate files " +"usually support :meth:`read` and :meth:`write`, but they may not support :" +"meth:`readline`, for example. Python 3.0 introduces a layered I/O library " +"in the :mod:`io` module that separates buffering and text-handling features " +"from the fundamental read and write operations." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1039 +msgid "" +"There are three levels of abstract base classes provided by the :mod:`io` " +"module:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1042 +msgid "" +":class:`RawIOBase` defines raw I/O operations: :meth:`read`, :meth:" +"`readinto`, :meth:`write`, :meth:`seek`, :meth:`tell`, :meth:`truncate`, " +"and :meth:`close`. Most of the methods of this class will often map to a " +"single system call. There are also :meth:`readable`, :meth:`writable`, and :" +"meth:`seekable` methods for determining what operations a given object will " +"allow." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1050 +msgid "" +"Python 3.0 has concrete implementations of this class for files and sockets, " +"but Python 2.6 hasn't restructured its file and socket objects in this way." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1056 +msgid "" +":class:`BufferedIOBase` is an abstract base class that buffers data in " +"memory to reduce the number of system calls used, making I/O processing more " +"efficient. It supports all of the methods of :class:`RawIOBase`, and adds a :" +"attr:`raw` attribute holding the underlying raw object." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1062 +msgid "" +"There are five concrete classes implementing this ABC. :class:" +"`BufferedWriter` and :class:`BufferedReader` are for objects that support " +"write-only or read-only usage that have a :meth:`seek` method for random " +"access. :class:`BufferedRandom` objects support read and write access upon " +"the same underlying stream, and :class:`BufferedRWPair` is for objects such " +"as TTYs that have both read and write operations acting upon unconnected " +"streams of data. The :class:`BytesIO` class supports reading, writing, and " +"seeking over an in-memory buffer." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1075 +msgid "" +":class:`TextIOBase`: Provides functions for reading and writing strings " +"(remember, strings will be Unicode in Python 3.0), and supporting :term:" +"`universal newlines`. :class:`TextIOBase` defines the :meth:`readline` " +"method and supports iteration upon objects." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1081 +msgid "" +"There are two concrete implementations. :class:`TextIOWrapper` wraps a " +"buffered I/O object, supporting all of the methods for text I/O and adding " +"a :attr:`buffer` attribute for access to the underlying object. :class:" +"`StringIO` simply buffers everything in memory without ever writing anything " +"to disk." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1087 +msgid "" +"(In Python 2.6, :class:`io.StringIO` is implemented in pure Python, so it's " +"pretty slow. You should therefore stick with the existing :mod:`StringIO` " +"module or :mod:`cStringIO` for now. At some point Python 3.0's :mod:`io` " +"module will be rewritten into C for speed, and perhaps the C implementation " +"will be backported to the 2.x releases.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1093 +msgid "" +"In Python 2.6, the underlying implementations haven't been restructured to " +"build on top of the :mod:`io` module's classes. The module is being " +"provided to make it easier to write code that's forward-compatible with 3.0, " +"and to save developers the effort of writing their own implementations of " +"buffering and text I/O." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1103 +msgid ":pep:`3116` - New I/O" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1102 +msgid "" +"PEP written by Daniel Stutzbach, Mike Verdone, and Guido van Rossum. Code by " +"Guido van Rossum, Georg Brandl, Walter Doerwald, Jeremy Hylton, Martin von " +"Löwis, Tony Lownds, and others." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1111 +msgid "PEP 3118: Revised Buffer Protocol" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1113 +msgid "" +"The buffer protocol is a C-level API that lets Python types exchange " +"pointers into their internal representations. A memory-mapped file can be " +"viewed as a buffer of characters, for example, and this lets another module " +"such as :mod:`re` treat memory-mapped files as a string of characters to be " +"searched." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1119 +msgid "" +"The primary users of the buffer protocol are numeric-processing packages " +"such as NumPy, which expose the internal representation of arrays so that " +"callers can write data directly into an array instead of going through a " +"slower API. This PEP updates the buffer protocol in light of experience " +"from NumPy development, adding a number of new features such as indicating " +"the shape of an array or locking a memory region." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1126 +msgid "" +"The most important new C API function is ``PyObject_GetBuffer(PyObject *obj, " +"Py_buffer *view, int flags)``, which takes an object and a set of flags, and " +"fills in the ``Py_buffer`` structure with information about the object's " +"memory representation. Objects can use this operation to lock memory in " +"place while an external caller could be modifying the contents, so there's a " +"corresponding ``PyBuffer_Release(Py_buffer *view)`` to indicate that the " +"external caller is done." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1138 +msgid "" +"The *flags* argument to :c:func:`PyObject_GetBuffer` specifies constraints " +"upon the memory returned. Some examples are:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1141 +msgid ":const:`PyBUF_WRITABLE` indicates that the memory must be writable." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1143 +msgid "" +":const:`PyBUF_LOCK` requests a read-only or exclusive lock on the memory." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1145 +msgid "" +":const:`PyBUF_C_CONTIGUOUS` and :const:`PyBUF_F_CONTIGUOUS` requests a C-" +"contiguous (last dimension varies the fastest) or Fortran-contiguous (first " +"dimension varies the fastest) array layout." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1149 +msgid "" +"Two new argument codes for :c:func:`PyArg_ParseTuple`, ``s*`` and ``z*``, " +"return locked buffer objects for a parameter." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1155 +msgid ":pep:`3118` - Revising the buffer protocol" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1155 +msgid "" +"PEP written by Travis Oliphant and Carl Banks; implemented by Travis " +"Oliphant." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1164 +msgid "PEP 3119: Abstract Base Classes" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1166 +msgid "" +"Some object-oriented languages such as Java support interfaces, declaring " +"that a class has a given set of methods or supports a given access " +"protocol. Abstract Base Classes (or ABCs) are an equivalent feature for " +"Python. The ABC support consists of an :mod:`abc` module containing a " +"metaclass called :class:`ABCMeta`, special handling of this metaclass by " +"the :func:`isinstance` and :func:`issubclass` builtins, and a collection of " +"basic ABCs that the Python developers think will be widely useful. Future " +"versions of Python will probably add more ABCs." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1176 +msgid "" +"Let's say you have a particular class and wish to know whether it supports " +"dictionary-style access. The phrase \"dictionary-style\" is vague, however. " +"It probably means that accessing items with ``obj[1]`` works. Does it imply " +"that setting items with ``obj[2] = value`` works? Or that the object will " +"have :meth:`keys`, :meth:`values`, and :meth:`items` methods? What about " +"the iterative variants such as :meth:`iterkeys`? :meth:`copy` and :meth:" +"`update`? Iterating over the object with :func:`iter`?" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1184 +msgid "" +"The Python 2.6 :mod:`collections` module includes a number of different ABCs " +"that represent these distinctions. :class:`Iterable` indicates that a class " +"defines :meth:`__iter__`, and :class:`Container` means the class defines a :" +"meth:`__contains__` method and therefore supports ``x in y`` expressions. " +"The basic dictionary interface of getting items, setting items, and :meth:" +"`keys`, :meth:`values`, and :meth:`items`, is defined by the :class:" +"`MutableMapping` ABC." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1193 +msgid "" +"You can derive your own classes from a particular ABC to indicate they " +"support that ABC's interface::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1202 +msgid "" +"Alternatively, you could write the class without deriving from the desired " +"ABC and instead register the class by calling the ABC's :meth:`register` " +"method::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1213 +msgid "" +"For classes that you write, deriving from the ABC is probably clearer. The :" +"meth:`register` method is useful when you've written a new ABC that can " +"describe an existing type or class, or if you want to declare that some " +"third-party class implements an ABC. For example, if you defined a :class:" +"`PrintableType` ABC, it's legal to do::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1225 +msgid "" +"Classes should obey the semantics specified by an ABC, but Python can't " +"check this; it's up to the class author to understand the ABC's requirements " +"and to implement the code accordingly." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1229 +msgid "" +"To check whether an object supports a particular interface, you can now " +"write::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1236 +msgid "" +"Don't feel that you must now begin writing lots of checks as in the above " +"example. Python has a strong tradition of duck-typing, where explicit type-" +"checking is never done and code simply calls methods on an object, trusting " +"that those methods will be there and raising an exception if they aren't. " +"Be judicious in checking for ABCs and only do it where it's absolutely " +"necessary." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1243 +msgid "" +"You can write your own ABCs by using ``abc.ABCMeta`` as the metaclass in a " +"class definition::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1264 +msgid "" +"In the :class:`Drawable` ABC above, the :meth:`draw_doubled` method renders " +"the object at twice its size and can be implemented in terms of other " +"methods described in :class:`Drawable`. Classes implementing this ABC " +"therefore don't need to provide their own implementation of :meth:" +"`draw_doubled`, though they can do so. An implementation of :meth:`draw` is " +"necessary, though; the ABC can't provide a useful generic implementation." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1272 +msgid "" +"You can apply the ``@abstractmethod`` decorator to methods such as :meth:" +"`draw` that must be implemented; Python will then raise an exception for " +"classes that don't define the method. Note that the exception is only raised " +"when you actually try to create an instance of a subclass lacking the " +"method::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1287 +msgid "" +"Abstract data attributes can be declared using the ``@abstractproperty`` " +"decorator::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1297 +msgid "Subclasses must then define a :meth:`readonly` property." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1303 +msgid ":pep:`3119` - Introducing Abstract Base Classes" +msgstr ":pep:`3119` -- Introduction aux classes de bases abstraites" + +#: ../Doc/whatsnew/2.6.rst:1302 +msgid "" +"PEP written by Guido van Rossum and Talin. Implemented by Guido van Rossum. " +"Backported to 2.6 by Benjamin Aranguren, with Alex Martelli." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1311 +msgid "PEP 3127: Integer Literal Support and Syntax" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1313 +msgid "" +"Python 3.0 changes the syntax for octal (base-8) integer literals, prefixing " +"them with \"0o\" or \"0O\" instead of a leading zero, and adds support for " +"binary (base-2) integer literals, signalled by a \"0b\" or \"0B\" prefix." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1318 +msgid "" +"Python 2.6 doesn't drop support for a leading 0 signalling an octal number, " +"but it does add support for \"0o\" and \"0b\"::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1326 +msgid "" +"The :func:`oct` builtin still returns numbers prefixed with a leading zero, " +"and a new :func:`bin` builtin returns the binary representation for a " +"number::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1337 +msgid "" +"The :func:`int` and :func:`long` builtins will now accept the \"0o\" and \"0b" +"\" prefixes when base-8 or base-2 are requested, or when the *base* argument " +"is zero (signalling that the base used should be determined from the " +"string)::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1355 +msgid ":pep:`3127` - Integer Literal Support and Syntax" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1355 +msgid "PEP written by Patrick Maupin; backported to 2.6 by Eric Smith." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1363 +msgid "PEP 3129: Class Decorators" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1365 +msgid "" +"Decorators have been extended from functions to classes. It's now legal to " +"write::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1373 +msgid "This is equivalent to::" +msgstr "C’est équivalent à ::" + +#: ../Doc/whatsnew/2.6.rst:1382 +msgid ":pep:`3129` - Class Decorators" +msgstr ":pep:`3129` -- Décorateurs de classes" + +#: ../Doc/whatsnew/2.6.rst:1383 +msgid "PEP written by Collin Winter." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1390 +msgid "PEP 3141: A Type Hierarchy for Numbers" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1392 +msgid "" +"Python 3.0 adds several abstract base classes for numeric types inspired by " +"Scheme's numeric tower. These classes were backported to 2.6 as the :mod:" +"`numbers` module." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1396 +msgid "" +"The most general ABC is :class:`Number`. It defines no operations at all, " +"and only exists to allow checking if an object is a number by doing " +"``isinstance(obj, Number)``." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1400 +msgid "" +":class:`Complex` is a subclass of :class:`Number`. Complex numbers can " +"undergo the basic operations of addition, subtraction, multiplication, " +"division, and exponentiation, and you can retrieve the real and imaginary " +"parts and obtain a number's conjugate. Python's built-in complex type is an " +"implementation of :class:`Complex`." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1406 +msgid "" +":class:`Real` further derives from :class:`Complex`, and adds operations " +"that only work on real numbers: :func:`floor`, :func:`trunc`, rounding, " +"taking the remainder mod N, floor division, and comparisons." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1411 +msgid "" +":class:`Rational` numbers derive from :class:`Real`, have :attr:`numerator` " +"and :attr:`denominator` properties, and can be converted to floats. Python " +"2.6 adds a simple rational-number class, :class:`Fraction`, in the :mod:" +"`fractions` module. (It's called :class:`Fraction` instead of :class:" +"`Rational` to avoid a name clash with :class:`numbers.Rational`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1418 +msgid "" +":class:`Integral` numbers derive from :class:`Rational`, and can be shifted " +"left and right with ``<<`` and ``>>``, combined using bitwise operations " +"such as ``&`` and ``|``, and can be used as array indexes and slice " +"boundaries." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1423 +msgid "" +"In Python 3.0, the PEP slightly redefines the existing builtins :func:" +"`round`, :func:`math.floor`, :func:`math.ceil`, and adds a new one, :func:" +"`math.trunc`, that's been backported to Python 2.6. :func:`math.trunc` " +"rounds toward zero, returning the closest :class:`Integral` that's between " +"the function's argument and zero." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1432 +msgid ":pep:`3141` - A Type Hierarchy for Numbers" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1432 +msgid "PEP written by Jeffrey Yasskin." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1434 +msgid "" +"`Scheme's numerical tower `__, from the Guile manual." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1436 +msgid "" +"`Scheme's number datatypes `__ from the R5RS Scheme specification." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1440 +msgid "The :mod:`fractions` Module" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1442 +msgid "" +"To fill out the hierarchy of numeric types, the :mod:`fractions` module " +"provides a rational-number class. Rational numbers store their values as a " +"numerator and denominator forming a fraction, and can exactly represent " +"numbers such as ``2/3`` that floating-point numbers can only approximate." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1448 +msgid "" +"The :class:`Fraction` constructor takes two :class:`Integral` values that " +"will be the numerator and denominator of the resulting fraction. ::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1461 +msgid "" +"For converting floating-point numbers to rationals, the float type now has " +"an :meth:`as_integer_ratio()` method that returns the numerator and " +"denominator for a fraction that evaluates to the same floating-point value::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1473 +msgid "" +"Note that values that can only be approximated by floating-point numbers, " +"such as 1./3, are not simplified to the number being approximated; the " +"fraction attempts to match the floating-point value **exactly**." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1478 +msgid "" +"The :mod:`fractions` module is based upon an implementation by Sjoerd " +"Mullender that was in Python's :file:`Demo/classes/` directory for a long " +"time. This implementation was significantly updated by Jeffrey Yasskin." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1485 +msgid "Other Language Changes" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1487 +msgid "Some smaller changes made to the core Python language are:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1489 +msgid "" +"Directories and zip archives containing a :file:`__main__.py` file can now " +"be executed directly by passing their name to the interpreter. The directory " +"or zip archive is automatically inserted as the first entry in sys.path. " +"(Suggestion and initial patch by Andy Chu, subsequently revised by Phillip " +"J. Eby and Nick Coghlan; :issue:`1739468`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1496 +msgid "" +"The :func:`hasattr` function was catching and ignoring all errors, under the " +"assumption that they meant a :meth:`__getattr__` method was failing somehow " +"and the return value of :func:`hasattr` would therefore be ``False``. This " +"logic shouldn't be applied to :exc:`KeyboardInterrupt` and :exc:" +"`SystemExit`, however; Python 2.6 will no longer discard such exceptions " +"when :func:`hasattr` encounters them. (Fixed by Benjamin Peterson; :issue:" +"`2196`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1504 +msgid "" +"When calling a function using the ``**`` syntax to provide keyword " +"arguments, you are no longer required to use a Python dictionary; any " +"mapping will now work::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1517 +msgid "(Contributed by Alexander Belopolsky; :issue:`1686487`.)" +msgstr "(Contribution par Alexander Belopolsky; :issue:`1686487`.)" + +#: ../Doc/whatsnew/2.6.rst:1519 +msgid "" +"It's also become legal to provide keyword arguments after a ``*args`` " +"argument to a function call. ::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1528 +msgid "" +"Previously this would have been a syntax error. (Contributed by Amaury " +"Forgeot d'Arc; :issue:`3473`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1531 +msgid "" +"A new builtin, ``next(iterator, [default])`` returns the next item from the " +"specified iterator. If the *default* argument is supplied, it will be " +"returned if *iterator* has been exhausted; otherwise, the :exc:" +"`StopIteration` exception will be raised. (Backported in :issue:`2719`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1537 +msgid "" +"Tuples now have :meth:`index` and :meth:`count` methods matching the list " +"type's :meth:`index` and :meth:`count` methods::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1546 +msgid "(Contributed by Raymond Hettinger)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1548 +msgid "" +"The built-in types now have improved support for extended slicing syntax, " +"accepting various combinations of ``(start, stop, step)``. Previously, the " +"support was partial and certain corner cases wouldn't work. (Implemented by " +"Thomas Wouters.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1555 +msgid "" +"Properties now have three attributes, :attr:`getter`, :attr:`setter` and :" +"attr:`deleter`, that are decorators providing useful shortcuts for adding a " +"getter, setter or deleter function to an existing property. You would use " +"them like this::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1582 +msgid "" +"Several methods of the built-in set types now accept multiple iterables: :" +"meth:`intersection`, :meth:`intersection_update`, :meth:`union`, :meth:" +"`update`, :meth:`difference` and :meth:`difference_update`." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1596 ../Doc/whatsnew/2.6.rst:1880 +#: ../Doc/whatsnew/2.6.rst:1901 +msgid "(Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1598 +msgid "" +"Many floating-point features were added. The :func:`float` function will " +"now turn the string ``nan`` into an IEEE 754 Not A Number value, and ``" +"+inf`` and ``-inf`` into positive or negative infinity. This works on any " +"platform with IEEE 754 semantics. (Contributed by Christian Heimes; :issue:" +"`1635`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1604 +msgid "" +"Other functions in the :mod:`math` module, :func:`isinf` and :func:`isnan`, " +"return true if their floating-point argument is infinite or Not A Number. (:" +"issue:`1640`)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1608 +msgid "" +"Conversion functions were added to convert floating-point numbers into " +"hexadecimal strings (:issue:`3008`). These functions convert floats to and " +"from a string representation without introducing rounding errors from the " +"conversion between decimal and binary. Floats have a :meth:`hex` method " +"that returns a string representation, and the ``float.fromhex()`` method " +"converts a string back into a number::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1625 +msgid "" +"A numerical nicety: when creating a complex number from two floats on " +"systems that support signed zeros (-0 and +0), the :func:`complex` " +"constructor will now preserve the sign of the zero. (Fixed by Mark T. " +"Dickinson; :issue:`1507`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1630 +msgid "" +"Classes that inherit a :meth:`__hash__` method from a parent class can set " +"``__hash__ = None`` to indicate that the class isn't hashable. This will " +"make ``hash(obj)`` raise a :exc:`TypeError` and the class will not be " +"indicated as implementing the :class:`Hashable` ABC." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1636 +msgid "" +"You should do this when you've defined a :meth:`__cmp__` or :meth:`__eq__` " +"method that compares objects by their value rather than by identity. All " +"objects have a default hash method that uses ``id(obj)`` as the hash value. " +"There's no tidy way to remove the :meth:`__hash__` method inherited from a " +"parent class, so assigning ``None`` was implemented as an override. At the " +"C level, extensions can set ``tp_hash`` to :c:func:" +"`PyObject_HashNotImplemented`. (Fixed by Nick Coghlan and Amaury Forgeot " +"d'Arc; :issue:`2235`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1646 +msgid "" +"The :exc:`GeneratorExit` exception now subclasses :exc:`BaseException` " +"instead of :exc:`Exception`. This means that an exception handler that does " +"``except Exception:`` will not inadvertently catch :exc:`GeneratorExit`. " +"(Contributed by Chad Austin; :issue:`1537`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1652 +msgid "" +"Generator objects now have a :attr:`gi_code` attribute that refers to the " +"original code object backing the generator. (Contributed by Collin Winter; :" +"issue:`1473257`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1656 +msgid "" +"The :func:`compile` built-in function now accepts keyword arguments as well " +"as positional parameters. (Contributed by Thomas Wouters; :issue:`1444529`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1660 +msgid "" +"The :func:`complex` constructor now accepts strings containing parenthesized " +"complex numbers, meaning that ``complex(repr(cplx))`` will now round-trip " +"values. For example, ``complex('(3+4j)')`` now returns the value (3+4j). (:" +"issue:`1491866`)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1665 +msgid "" +"The string :meth:`translate` method now accepts ``None`` as the translation " +"table parameter, which is treated as the identity transformation. This " +"makes it easier to carry out operations that only delete characters. " +"(Contributed by Bengt Richter and implemented by Raymond Hettinger; :issue:" +"`1193128`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1671 +msgid "" +"The built-in :func:`dir` function now checks for a :meth:`__dir__` method on " +"the objects it receives. This method must return a list of strings " +"containing the names of valid attributes for the object, and lets the object " +"control the value that :func:`dir` produces. Objects that have :meth:" +"`__getattr__` or :meth:`__getattribute__` methods can use this to advertise " +"pseudo-attributes they will honor. (:issue:`1591665`)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1679 +msgid "" +"Instance method objects have new attributes for the object and function " +"comprising the method; the new synonym for :attr:`im_self` is :attr:" +"`__self__`, and :attr:`im_func` is also available as :attr:`__func__`. The " +"old names are still supported in Python 2.6, but are gone in 3.0." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1684 +msgid "" +"An obscure change: when you use the :func:`locals` function inside a :" +"keyword:`class` statement, the resulting dictionary no longer returns free " +"variables. (Free variables, in this case, are variables referenced in the :" +"keyword:`!class` statement that aren't attributes of the class.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1693 +msgid "Optimizations" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1695 +msgid "" +"The :mod:`warnings` module has been rewritten in C. This makes it possible " +"to invoke warnings from the parser, and may also make the interpreter's " +"startup faster. (Contributed by Neal Norwitz and Brett Cannon; :issue:" +"`1631171`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1700 +msgid "" +"Type objects now have a cache of methods that can reduce the work required " +"to find the correct method implementation for a particular class; once " +"cached, the interpreter doesn't need to traverse base classes to figure out " +"the right method to call. The cache is cleared if a base class or the class " +"itself is modified, so the cache should remain correct even in the face of " +"Python's dynamic nature. (Original optimization implemented by Armin Rigo, " +"updated for Python 2.6 by Kevin Jacobs; :issue:`1700288`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1710 +msgid "" +"By default, this change is only applied to types that are included with the " +"Python core. Extension modules may not necessarily be compatible with this " +"cache, so they must explicitly add :c:macro:`Py_TPFLAGS_HAVE_VERSION_TAG` to " +"the module's ``tp_flags`` field to enable the method cache. (To be " +"compatible with the method cache, the extension module's code must not " +"directly access and modify the ``tp_dict`` member of any of the types it " +"implements. Most modules don't do this, but it's impossible for the Python " +"interpreter to determine that. See :issue:`1878` for some discussion.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1721 +msgid "" +"Function calls that use keyword arguments are significantly faster by doing " +"a quick pointer comparison, usually saving the time of a full string " +"comparison. (Contributed by Raymond Hettinger, after an initial " +"implementation by Antoine Pitrou; :issue:`1819`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1726 +msgid "" +"All of the functions in the :mod:`struct` module have been rewritten in C, " +"thanks to work at the Need For Speed sprint. (Contributed by Raymond " +"Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1730 +msgid "" +"Some of the standard built-in types now set a bit in their type objects. " +"This speeds up checking whether an object is a subclass of one of these " +"types. (Contributed by Neal Norwitz.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1734 +msgid "" +"Unicode strings now use faster code for detecting whitespace and line " +"breaks; this speeds up the :meth:`split` method by about 25% and :meth:" +"`splitlines` by 35%. (Contributed by Antoine Pitrou.) Memory usage is " +"reduced by using pymalloc for the Unicode string's data." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1740 +msgid "" +"The ``with`` statement now stores the :meth:`__exit__` method on the stack, " +"producing a small speedup. (Implemented by Jeffrey Yasskin.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1743 +msgid "" +"To reduce memory usage, the garbage collector will now clear internal free " +"lists when garbage-collecting the highest generation of objects. This may " +"return memory to the operating system sooner." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1752 +msgid "Interpreter Changes" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1754 +msgid "" +"Two command-line options have been reserved for use by other Python " +"implementations. The :option:`-J` switch has been reserved for use by " +"Jython for Jython-specific options, such as switches that are passed to the " +"underlying JVM. :option:`-X` has been reserved for options specific to a " +"particular implementation of Python such as CPython, Jython, or IronPython. " +"If either option is used with Python 2.6, the interpreter will report that " +"the option isn't currently used." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1762 +msgid "" +"Python can now be prevented from writing :file:`.pyc` or :file:`.pyo` files " +"by supplying the :option:`-B` switch to the Python interpreter, or by " +"setting the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable before " +"running the interpreter. This setting is available to Python programs as " +"the ``sys.dont_write_bytecode`` variable, and Python code can change the " +"value to modify the interpreter's behaviour. (Contributed by Neal Norwitz " +"and Georg Brandl.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1770 +msgid "" +"The encoding used for standard input, output, and standard error can be " +"specified by setting the :envvar:`PYTHONIOENCODING` environment variable " +"before running the interpreter. The value should be a string in the form " +"```` or ``:``. The *encoding* part " +"specifies the encoding's name, e.g. ``utf-8`` or ``latin-1``; the optional " +"*errorhandler* part specifies what to do with characters that can't be " +"handled by the encoding, and should be one of \"error\", \"ignore\", or " +"\"replace\". (Contributed by Martin von Löwis.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1783 +msgid "New and Improved Modules" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1785 +msgid "" +"As in every release, Python's standard library received a number of " +"enhancements and bug fixes. Here's a partial list of the most notable " +"changes, sorted alphabetically by module name. Consult the :file:`Misc/NEWS` " +"file in the source tree for a more complete list of changes, or look through " +"the Subversion logs for all the details." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1791 +msgid "" +"The :mod:`asyncore` and :mod:`asynchat` modules are being actively " +"maintained again, and a number of patches and bugfixes were applied. " +"(Maintained by Josiah Carlson; see :issue:`1736190` for one patch.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1796 +msgid "" +"The :mod:`bsddb` module also has a new maintainer, Jesús Cea Avión, and the " +"package is now available as a standalone package. The web page for the " +"package is `www.jcea.es/programacion/pybsddb.htm `__. The plan is to remove the package from the " +"standard library in Python 3.0, because its pace of releases is much more " +"frequent than Python's." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1804 +msgid "" +"The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol " +"available, instead of restricting itself to protocol 1. (Contributed by W. " +"Barnes.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1808 +msgid "" +"The :mod:`cgi` module will now read variables from the query string of an " +"HTTP POST request. This makes it possible to use form actions with URLs " +"that include query strings such as \"/cgi-bin/add.py?category=1\". " +"(Contributed by Alexandre Fiori and Nubis; :issue:`1817`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1814 +msgid "" +"The :func:`parse_qs` and :func:`parse_qsl` functions have been relocated " +"from the :mod:`cgi` module to the :mod:`urlparse` module. The versions still " +"available in the :mod:`cgi` module will trigger :exc:" +"`PendingDeprecationWarning` messages in 2.6 (:issue:`600362`)." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1820 +msgid "" +"The :mod:`cmath` module underwent extensive revision, contributed by Mark " +"Dickinson and Christian Heimes. Five new functions were added:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1824 +msgid "" +":func:`polar` converts a complex number to polar form, returning the modulus " +"and argument of the complex number." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1827 +msgid "" +":func:`rect` does the opposite, turning a modulus, argument pair back into " +"the corresponding complex number." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1830 +msgid "" +":func:`phase` returns the argument (also called the angle) of a complex " +"number." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1833 +msgid "" +":func:`isnan` returns True if either the real or imaginary part of its " +"argument is a NaN." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1836 +msgid "" +":func:`isinf` returns True if either the real or imaginary part of its " +"argument is infinite." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1839 +msgid "" +"The revisions also improved the numerical soundness of the :mod:`cmath` " +"module. For all functions, the real and imaginary parts of the results are " +"accurate to within a few units of least precision (ulps) whenever possible. " +"See :issue:`1381` for the details. The branch cuts for :func:`asinh`, :func:" +"`atanh`: and :func:`atan` have also been corrected." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1846 +msgid "" +"The tests for the module have been greatly expanded; nearly 2000 new test " +"cases exercise the algebraic functions." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1849 +msgid "" +"On IEEE 754 platforms, the :mod:`cmath` module now handles IEEE 754 special " +"values and floating-point exceptions in a manner consistent with Annex 'G' " +"of the C99 standard." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1853 +msgid "" +"A new data type in the :mod:`collections` module: :class:" +"`namedtuple(typename, fieldnames)` is a factory function that creates " +"subclasses of the standard tuple whose fields are accessible by name as well " +"as index. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1875 +msgid "" +"Several places in the standard library that returned tuples have been " +"modified to return :class:`namedtuple` instances. For example, the :meth:" +"`Decimal.as_tuple` method now returns a named tuple with :attr:`sign`, :attr:" +"`digits`, and :attr:`exponent` fields." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1882 +msgid "" +"Another change to the :mod:`collections` module is that the :class:`deque` " +"type now supports an optional *maxlen* parameter; if supplied, the deque's " +"size will be restricted to no more than *maxlen* items. Adding more items " +"to a full deque causes old items to be discarded." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1903 +msgid "" +"The :mod:`Cookie` module's :class:`Morsel` objects now support an :attr:" +"`httponly` attribute. In some browsers. cookies with this attribute set " +"cannot be accessed or manipulated by JavaScript code. (Contributed by Arvin " +"Schnell; :issue:`1638033`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1908 +msgid "" +"A new window method in the :mod:`curses` module, :meth:`chgat`, changes the " +"display attributes for a certain number of characters on a single line. " +"(Contributed by Fabian Kreutz.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1918 +msgid "" +"The :class:`Textbox` class in the :mod:`curses.textpad` module now supports " +"editing in insert mode as well as overwrite mode. Insert mode is enabled by " +"supplying a true value for the *insert_mode* parameter when creating the :" +"class:`Textbox` instance." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1923 +msgid "" +"The :mod:`datetime` module's :meth:`strftime` methods now support a ``%f`` " +"format code that expands to the number of microseconds in the object, zero-" +"padded on the left to six places. (Contributed by Skip Montanaro; :issue:" +"`1158`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1928 +msgid "" +"The :mod:`decimal` module was updated to version 1.66 of `the General " +"Decimal Specification `__. " +"New features include some methods for some basic mathematical functions such " +"as :meth:`exp` and :meth:`log10`::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1940 +msgid "" +"The :meth:`as_tuple` method of :class:`Decimal` objects now returns a named " +"tuple with :attr:`sign`, :attr:`digits`, and :attr:`exponent` fields." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1943 +msgid "" +"(Implemented by Facundo Batista and Mark Dickinson. Named tuple support " +"added by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1946 +msgid "" +"The :mod:`difflib` module's :class:`SequenceMatcher` class now returns named " +"tuples representing matches, with :attr:`a`, :attr:`b`, and :attr:`size` " +"attributes. (Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1951 +msgid "" +"An optional ``timeout`` parameter, specifying a timeout measured in seconds, " +"was added to the :class:`ftplib.FTP` class constructor as well as the :meth:" +"`connect` method. (Added by Facundo Batista.) Also, the :class:`FTP` " +"class's :meth:`storbinary` and :meth:`storlines` now take an optional " +"*callback* parameter that will be called with each block of data after the " +"data has been sent. (Contributed by Phil Schwartz; :issue:`1221598`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1959 +msgid "" +"The :func:`reduce` built-in function is also available in the :mod:" +"`functools` module. In Python 3.0, the builtin has been dropped and :func:" +"`reduce` is only available from :mod:`functools`; currently there are no " +"plans to drop the builtin in the 2.x series. (Patched by Christian Heimes; :" +"issue:`1739906`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1965 +msgid "" +"When possible, the :mod:`getpass` module will now use :file:`/dev/tty` to " +"print a prompt message and read the password, falling back to standard error " +"and standard input. If the password may be echoed to the terminal, a " +"warning is printed before the prompt is displayed. (Contributed by Gregory " +"P. Smith.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1971 +msgid "" +"The :func:`glob.glob` function can now return Unicode filenames if a Unicode " +"path was used and Unicode filenames are matched within the directory. (:" +"issue:`1001604`)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1975 +msgid "" +"A new function in the :mod:`heapq` module, ``merge(iter1, iter2, ...)``, " +"takes any number of iterables returning data in sorted order, and returns a " +"new generator that returns the contents of all the iterators, also in sorted " +"order. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1983 +msgid "" +"Another new function, ``heappushpop(heap, item)``, pushes *item* onto " +"*heap*, then pops off and returns the smallest item. This is more efficient " +"than making a call to :func:`heappush` and then :func:`heappop`." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1988 +msgid "" +":mod:`heapq` is now implemented to only use less-than comparison, instead of " +"the less-than-or-equal comparison it previously used. This makes :mod:" +"`heapq`'s usage of a type match the :meth:`list.sort` method. (Contributed " +"by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1994 +msgid "" +"An optional ``timeout`` parameter, specifying a timeout measured in seconds, " +"was added to the :class:`httplib.HTTPConnection` and :class:" +"`HTTPSConnection` class constructors. (Added by Facundo Batista.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1999 +msgid "" +"Most of the :mod:`inspect` module's functions, such as :func:`getmoduleinfo` " +"and :func:`getargs`, now return named tuples. In addition to behaving like " +"tuples, the elements of the return value can also be accessed as " +"attributes. (Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2005 +msgid "" +"Some new functions in the module include :func:`isgenerator`, :func:" +"`isgeneratorfunction`, and :func:`isabstract`." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2009 +msgid "The :mod:`itertools` module gained several new functions." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2011 +msgid "" +"``izip_longest(iter1, iter2, ...[, fillvalue])`` makes tuples from each of " +"the elements; if some of the iterables are shorter than others, the missing " +"values are set to *fillvalue*. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2018 +msgid "" +"``product(iter1, iter2, ..., [repeat=N])`` returns the Cartesian product of " +"the supplied iterables, a set of tuples containing every possible " +"combination of the elements returned from each iterable. ::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2027 +msgid "" +"The optional *repeat* keyword argument is used for taking the product of an " +"iterable or a set of iterables with themselves, repeated *N* times. With a " +"single iterable argument, *N*-tuples are returned::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2036 +msgid "With two iterables, *2N*-tuples are returned. ::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2044 +msgid "" +"``combinations(iterable, r)`` returns sub-sequences of length *r* from the " +"elements of *iterable*. ::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2055 +msgid "" +"``permutations(iter[, r])`` returns all the permutations of length *r* of " +"the iterable's elements. If *r* is not specified, it will default to the " +"number of elements produced by the iterable. ::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2065 +msgid "" +"``itertools.chain(*iterables)`` is an existing function in :mod:`itertools` " +"that gained a new constructor in Python 2.6. ``itertools.chain." +"from_iterable(iterable)`` takes a single iterable that should return other " +"iterables. :func:`chain` will then return all the elements of the first " +"iterable, then all the elements of the second, and so on. ::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2075 +msgid "(All contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2077 +msgid "" +"The :mod:`logging` module's :class:`FileHandler` class and its subclasses :" +"class:`WatchedFileHandler`, :class:`RotatingFileHandler`, and :class:" +"`TimedRotatingFileHandler` now have an optional *delay* parameter to their " +"constructors. If *delay* is true, opening of the log file is deferred until " +"the first :meth:`emit` call is made. (Contributed by Vinay Sajip.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2084 +msgid "" +":class:`TimedRotatingFileHandler` also has a *utc* constructor parameter. " +"If the argument is true, UTC time will be used in determining when midnight " +"occurs and in generating filenames; otherwise local time will be used." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2089 +msgid "Several new functions were added to the :mod:`math` module:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2091 +msgid "" +":func:`~math.isinf` and :func:`~math.isnan` determine whether a given float " +"is a (positive or negative) infinity or a NaN (Not a Number), respectively." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2094 +msgid "" +":func:`~math.copysign` copies the sign bit of an IEEE 754 number, returning " +"the absolute value of *x* combined with the sign bit of *y*. For example, " +"``math.copysign(1, -0.0)`` returns -1.0. (Contributed by Christian Heimes.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2099 +msgid "" +":func:`~math.factorial` computes the factorial of a number. (Contributed by " +"Raymond Hettinger; :issue:`2138`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2102 +msgid "" +":func:`~math.fsum` adds up the stream of numbers from an iterable, and is " +"careful to avoid loss of precision through using partial sums. (Contributed " +"by Jean Brouwers, Raymond Hettinger, and Mark Dickinson; :issue:`2819`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2107 +msgid "" +":func:`~math.acosh`, :func:`~math.asinh` and :func:`~math.atanh` compute the " +"inverse hyperbolic functions." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2110 +msgid ":func:`~math.log1p` returns the natural logarithm of *1+x* (base *e*)." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2113 +msgid "" +":func:`trunc` rounds a number toward zero, returning the closest :class:" +"`Integral` that's between the function's argument and zero. Added as part of " +"the backport of `PEP 3141's type hierarchy for numbers <#pep-3141>`__." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2118 +msgid "" +"The :mod:`math` module has been improved to give more consistent behaviour " +"across platforms, especially with respect to handling of floating-point " +"exceptions and IEEE 754 special values." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2122 +msgid "" +"Whenever possible, the module follows the recommendations of the C99 " +"standard about 754's special values. For example, ``sqrt(-1.)`` should now " +"give a :exc:`ValueError` across almost all platforms, while " +"``sqrt(float('NaN'))`` should return a NaN on all IEEE 754 platforms. Where " +"Annex 'F' of the C99 standard recommends signaling 'divide-by-zero' or " +"'invalid', Python will raise :exc:`ValueError`. Where Annex 'F' of the C99 " +"standard recommends signaling 'overflow', Python will raise :exc:" +"`OverflowError`. (See :issue:`711019` and :issue:`1640`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2132 +msgid "(Contributed by Christian Heimes and Mark Dickinson.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2134 +msgid "" +":class:`~mmap.mmap` objects now have a :meth:`rfind` method that searches " +"for a substring beginning at the end of the string and searching backwards. " +"The :meth:`find` method also gained an *end* parameter giving an index at " +"which to stop searching. (Contributed by John Lenton.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2140 +msgid "" +"The :mod:`operator` module gained a :func:`methodcaller` function that takes " +"a name and an optional set of arguments, returning a callable that will call " +"the named function on any arguments passed to it. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2150 +msgid "(Contributed by Georg Brandl, after a suggestion by Gregory Petrosyan.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2152 +msgid "" +"The :func:`attrgetter` function now accepts dotted names and performs the " +"corresponding attribute lookups::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2162 +msgid "(Contributed by Georg Brandl, after a suggestion by Barry Warsaw.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2164 +msgid "" +"The :mod:`os` module now wraps several new system calls. ``fchmod(fd, " +"mode)`` and ``fchown(fd, uid, gid)`` change the mode and ownership of an " +"opened file, and ``lchmod(path, mode)`` changes the mode of a symlink. " +"(Contributed by Georg Brandl and Christian Heimes.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2170 +msgid "" +":func:`chflags` and :func:`lchflags` are wrappers for the corresponding " +"system calls (where they're available), changing the flags set on a file. " +"Constants for the flag values are defined in the :mod:`stat` module; some " +"possible values include :const:`UF_IMMUTABLE` to signal the file may not be " +"changed and :const:`UF_APPEND` to indicate that data can only be appended to " +"the file. (Contributed by M. Levinson.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2178 +msgid "" +"``os.closerange(low, high)`` efficiently closes all file descriptors from " +"*low* to *high*, ignoring any errors and not including *high* itself. This " +"function is now used by the :mod:`subprocess` module to make starting " +"processes faster. (Contributed by Georg Brandl; :issue:`1663329`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2183 +msgid "" +"The ``os.environ`` object's :meth:`clear` method will now unset the " +"environment variables using :func:`os.unsetenv` in addition to clearing the " +"object's keys. (Contributed by Martin Horcicka; :issue:`1181`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2187 +msgid "" +"The :func:`os.walk` function now has a ``followlinks`` parameter. If set to " +"True, it will follow symlinks pointing to directories and visit the " +"directory's contents. For backward compatibility, the parameter's default " +"value is false. Note that the function can fall into an infinite recursion " +"if there's a symlink that points to a parent directory. (:issue:`1273829`)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2194 +msgid "" +"In the :mod:`os.path` module, the :func:`splitext` function has been changed " +"to not split on leading period characters. This produces better results when " +"operating on Unix's dot-files. For example, ``os.path.splitext('.ipython')`` " +"now returns ``('.ipython', '')`` instead of ``('', '.ipython')``. (:issue:" +"`1115886`)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2201 +msgid "" +"A new function, ``os.path.relpath(path, start='.')``, returns a relative " +"path from the ``start`` path, if it's supplied, or from the current working " +"directory to the destination ``path``. (Contributed by Richard Barran; :" +"issue:`1339796`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2206 +msgid "" +"On Windows, :func:`os.path.expandvars` will now expand environment variables " +"given in the form \"%var%\", and \"~user\" will be expanded into the user's " +"home directory path. (Contributed by Josiah Carlson; :issue:`957650`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2211 +msgid "" +"The Python debugger provided by the :mod:`pdb` module gained a new command: " +"\"run\" restarts the Python program being debugged and can optionally take " +"new command-line arguments for the program. (Contributed by Rocky " +"Bernstein; :issue:`1393667`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2216 +msgid "" +"The :func:`pdb.post_mortem` function, used to begin debugging a traceback, " +"will now use the traceback returned by :func:`sys.exc_info` if no traceback " +"is supplied. (Contributed by Facundo Batista; :issue:`1106316`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2221 +msgid "" +"The :mod:`pickletools` module now has an :func:`optimize` function that " +"takes a string containing a pickle and removes some unused opcodes, " +"returning a shorter pickle that contains the same data structure. " +"(Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2226 +msgid "" +"A :func:`get_data` function was added to the :mod:`pkgutil` module that " +"returns the contents of resource files included with an installed Python " +"package. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2241 +msgid "(Contributed by Paul Moore; :issue:`2439`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2243 +msgid "" +"The :mod:`pyexpat` module's :class:`Parser` objects now allow setting their :" +"attr:`buffer_size` attribute to change the size of the buffer used to hold " +"character data. (Contributed by Achim Gaedke; :issue:`1137`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2248 +msgid "" +"The :mod:`Queue` module now provides queue variants that retrieve entries in " +"different orders. The :class:`PriorityQueue` class stores queued items in a " +"heap and retrieves them in priority order, and :class:`LifoQueue` retrieves " +"the most recently added entries first, meaning that it behaves like a stack. " +"(Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2255 +msgid "" +"The :mod:`random` module's :class:`Random` objects can now be pickled on a " +"32-bit system and unpickled on a 64-bit system, and vice versa. " +"Unfortunately, this change also means that Python 2.6's :class:`Random` " +"objects can't be unpickled correctly on earlier versions of Python. " +"(Contributed by Shawn Ligocki; :issue:`1727780`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2262 +msgid "" +"The new ``triangular(low, high, mode)`` function returns random numbers " +"following a triangular distribution. The returned values are between *low* " +"and *high*, not including *high* itself, and with *mode* as the most " +"frequently occurring value in the distribution. (Contributed by Wladmir van " +"der Laan and Raymond Hettinger; :issue:`1681432`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2269 +msgid "" +"Long regular expression searches carried out by the :mod:`re` module will " +"check for signals being delivered, so time-consuming searches can now be " +"interrupted. (Contributed by Josh Hoyt and Ralf Schmitt; :issue:`846388`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2274 +msgid "" +"The regular expression module is implemented by compiling bytecodes for a " +"tiny regex-specific virtual machine. Untrusted code could create malicious " +"strings of bytecode directly and cause crashes, so Python 2.6 includes a " +"verifier for the regex bytecode. (Contributed by Guido van Rossum from work " +"for Google App Engine; :issue:`3487`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2281 +msgid "" +"The :mod:`rlcompleter` module's :meth:`Completer.complete()` method will now " +"ignore exceptions triggered while evaluating a name. (Fixed by Lorenz " +"Quack; :issue:`2250`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2285 +msgid "" +"The :mod:`sched` module's :class:`scheduler` instances now have a read-only :" +"attr:`queue` attribute that returns the contents of the scheduler's queue, " +"represented as a list of named tuples with the fields ``(time, priority, " +"action, argument)``. (Contributed by Raymond Hettinger; :issue:`1861`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2291 +msgid "" +"The :mod:`select` module now has wrapper functions for the Linux :c:func:" +"`epoll` and BSD :c:func:`kqueue` system calls. :meth:`modify` method was " +"added to the existing :class:`poll` objects; ``pollobj.modify(fd, " +"eventmask)`` takes a file descriptor or file object and an event mask, " +"modifying the recorded event mask for that file. (Contributed by Christian " +"Heimes; :issue:`1657`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2299 +msgid "" +"The :func:`shutil.copytree` function now has an optional *ignore* argument " +"that takes a callable object. This callable will receive each directory " +"path and a list of the directory's contents, and returns a list of names " +"that will be ignored, not copied." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2304 +msgid "" +"The :mod:`shutil` module also provides an :func:`ignore_patterns` function " +"for use with this new parameter. :func:`ignore_patterns` takes an arbitrary " +"number of glob-style patterns and returns a callable that will ignore any " +"files and directories that match any of these patterns. The following " +"example copies a directory tree, but skips both :file:`.svn` directories and " +"Emacs backup files, which have names ending with '~'::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2315 +msgid "(Contributed by Tarek Ziadé; :issue:`2663`.)" +msgstr "(Contribution par Tarek Ziadé; :issue:`2663`.)" + +#: ../Doc/whatsnew/2.6.rst:2317 +msgid "" +"Integrating signal handling with GUI handling event loops like those used by " +"Tkinter or GTk+ has long been a problem; most software ends up polling, " +"waking up every fraction of a second to check if any GUI events have " +"occurred. The :mod:`signal` module can now make this more efficient. Calling " +"``signal.set_wakeup_fd(fd)`` sets a file descriptor to be used; when a " +"signal is received, a byte is written to that file descriptor. There's also " +"a C-level function, :c:func:`PySignal_SetWakeupFd`, for setting the " +"descriptor." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2327 +msgid "" +"Event loops will use this by opening a pipe to create two descriptors, one " +"for reading and one for writing. The writable descriptor will be passed to :" +"func:`set_wakeup_fd`, and the readable descriptor will be added to the list " +"of descriptors monitored by the event loop via :c:func:`select` or :c:func:" +"`poll`. On receiving a signal, a byte will be written and the main event " +"loop will be woken up, avoiding the need to poll." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2335 +msgid "(Contributed by Adam Olsen; :issue:`1583`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2337 +msgid "" +"The :func:`siginterrupt` function is now available from Python code, and " +"allows changing whether signals can interrupt system calls or not. " +"(Contributed by Ralf Schmitt.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2341 +msgid "" +"The :func:`setitimer` and :func:`getitimer` functions have also been added " +"(where they're available). :func:`setitimer` allows setting interval timers " +"that will cause a signal to be delivered to the process after a specified " +"time, measured in wall-clock time, consumed process time, or combined process" +"+system time. (Contributed by Guilherme Polo; :issue:`2240`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2348 +msgid "" +"The :mod:`smtplib` module now supports SMTP over SSL thanks to the addition " +"of the :class:`SMTP_SSL` class. This class supports an interface identical " +"to the existing :class:`SMTP` class. (Contributed by Monty Taylor.) Both " +"class constructors also have an optional ``timeout`` parameter that " +"specifies a timeout for the initial connection attempt, measured in " +"seconds. (Contributed by Facundo Batista.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2356 +msgid "" +"An implementation of the LMTP protocol (:rfc:`2033`) was also added to the " +"module. LMTP is used in place of SMTP when transferring e-mail between " +"agents that don't manage a mail queue. (LMTP implemented by Leif Hedstrom; :" +"issue:`957003`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2361 +msgid "" +":meth:`SMTP.starttls` now complies with :rfc:`3207` and forgets any " +"knowledge obtained from the server not obtained from the TLS negotiation " +"itself. (Patch contributed by Bill Fenner; :issue:`829951`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2366 +msgid "" +"The :mod:`socket` module now supports TIPC (http://tipc.sourceforge.net/), a " +"high-performance non-IP-based protocol designed for use in clustered " +"environments. TIPC addresses are 4- or 5-tuples. (Contributed by Alberto " +"Bertogli; :issue:`1646`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2371 +msgid "" +"A new function, :func:`create_connection`, takes an address and connects to " +"it using an optional timeout value, returning the connected socket object. " +"This function also looks up the address's type and connects to it using IPv4 " +"or IPv6 as appropriate. Changing your code to use :func:`create_connection` " +"instead of ``socket(socket.AF_INET, ...)`` may be all that's required to " +"make your code work with IPv6." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2379 +msgid "" +"The base classes in the :mod:`SocketServer` module now support calling a :" +"meth:`handle_timeout` method after a span of inactivity specified by the " +"server's :attr:`timeout` attribute. (Contributed by Michael Pomraning.) " +"The :meth:`serve_forever` method now takes an optional poll interval " +"measured in seconds, controlling how often the server will check for a " +"shutdown request. (Contributed by Pedro Werneck and Jeffrey Yasskin; :issue:" +"`742598`, :issue:`1193577`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2388 +msgid "" +"The :mod:`sqlite3` module, maintained by Gerhard Häring, has been updated " +"from version 2.3.2 in Python 2.5 to version 2.4.1." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2392 +msgid "" +"The :mod:`struct` module now supports the C99 :c:type:`_Bool` type, using " +"the format character ``'?'``. (Contributed by David Remahl.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2396 +msgid "" +"The :class:`Popen` objects provided by the :mod:`subprocess` module now " +"have :meth:`terminate`, :meth:`kill`, and :meth:`send_signal` methods. On " +"Windows, :meth:`send_signal` only supports the :const:`SIGTERM` signal, and " +"all these methods are aliases for the Win32 API function :c:func:" +"`TerminateProcess`. (Contributed by Christian Heimes.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2403 +msgid "" +"A new variable in the :mod:`sys` module, :attr:`float_info`, is an object " +"containing information derived from the :file:`float.h` file about the " +"platform's floating-point support. Attributes of this object include :attr:" +"`mant_dig` (number of digits in the mantissa), :attr:`epsilon` (smallest " +"difference between 1.0 and the next largest value representable), and " +"several others. (Contributed by Christian Heimes; :issue:`1534`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2411 +msgid "" +"Another new variable, :attr:`dont_write_bytecode`, controls whether Python " +"writes any :file:`.pyc` or :file:`.pyo` files on importing a module. If this " +"variable is true, the compiled files are not written. The variable is " +"initially set on start-up by supplying the :option:`-B` switch to the Python " +"interpreter, or by setting the :envvar:`PYTHONDONTWRITEBYTECODE` environment " +"variable before running the interpreter. Python code can subsequently " +"change the value of this variable to control whether bytecode files are " +"written or not. (Contributed by Neal Norwitz and Georg Brandl.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2422 +msgid "" +"Information about the command-line arguments supplied to the Python " +"interpreter is available by reading attributes of a named tuple available as " +"``sys.flags``. For example, the :attr:`verbose` attribute is true if Python " +"was executed in verbose mode, :attr:`debug` is true in debugging mode, etc. " +"These attributes are all read-only. (Contributed by Christian Heimes.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2430 +msgid "" +"A new function, :func:`getsizeof`, takes a Python object and returns the " +"amount of memory used by the object, measured in bytes. Built-in objects " +"return correct results; third-party extensions may not, but can define a :" +"meth:`__sizeof__` method to return the object's size. (Contributed by Robert " +"Schuppenies; :issue:`2898`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2437 +msgid "" +"It's now possible to determine the current profiler and tracer functions by " +"calling :func:`sys.getprofile` and :func:`sys.gettrace`. (Contributed by " +"Georg Brandl; :issue:`1648`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2441 +msgid "" +"The :mod:`tarfile` module now supports POSIX.1-2001 (pax) tarfiles in " +"addition to the POSIX.1-1988 (ustar) and GNU tar formats that were already " +"supported. The default format is GNU tar; specify the ``format`` parameter " +"to open a file using a different format::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2449 +msgid "" +"The new ``encoding`` and ``errors`` parameters specify an encoding and an " +"error handling scheme for character conversions. ``'strict'``, " +"``'ignore'``, and ``'replace'`` are the three standard ways Python can " +"handle errors,; ``'utf-8'`` is a special value that replaces bad characters " +"with their UTF-8 representation. (Character conversions occur because the " +"PAX format supports Unicode filenames, defaulting to UTF-8 encoding.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2457 +msgid "" +"The :meth:`TarFile.add` method now accepts an ``exclude`` argument that's a " +"function that can be used to exclude certain filenames from an archive. The " +"function must take a filename and return true if the file should be excluded " +"or false if it should be archived. The function is applied to both the name " +"initially passed to :meth:`add` and to the names of files in recursively-" +"added directories." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2465 +msgid "(All changes contributed by Lars Gustäbel)." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2467 +msgid "" +"An optional ``timeout`` parameter was added to the :class:`telnetlib.Telnet` " +"class constructor, specifying a timeout measured in seconds. (Added by " +"Facundo Batista.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2471 +msgid "" +"The :class:`tempfile.NamedTemporaryFile` class usually deletes the temporary " +"file it created when the file is closed. This behaviour can now be changed " +"by passing ``delete=False`` to the constructor. (Contributed by Damien " +"Miller; :issue:`1537850`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2476 +msgid "" +"A new class, :class:`SpooledTemporaryFile`, behaves like a temporary file " +"but stores its data in memory until a maximum size is exceeded. On reaching " +"that limit, the contents will be written to an on-disk temporary file. " +"(Contributed by Dustin J. Mitchell.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2481 +msgid "" +"The :class:`NamedTemporaryFile` and :class:`SpooledTemporaryFile` classes " +"both work as context managers, so you can write ``with tempfile." +"NamedTemporaryFile() as tmp: ...``. (Contributed by Alexander Belopolsky; :" +"issue:`2021`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2486 +msgid "" +"The :mod:`test.test_support` module gained a number of context managers " +"useful for writing tests. :func:`EnvironmentVarGuard` is a context manager " +"that temporarily changes environment variables and automatically restores " +"them to their old values." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2492 +msgid "" +"Another context manager, :class:`TransientResource`, can surround calls to " +"resources that may or may not be available; it will catch and ignore a " +"specified list of exceptions. For example, a network test may ignore " +"certain failures when connecting to an external web site::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2503 +msgid "" +"Finally, :func:`check_warnings` resets the :mod:`warning` module's warning " +"filters and returns an object that will record all warning messages " +"triggered (:issue:`3781`)::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2513 +msgid "(Contributed by Brett Cannon.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2515 +msgid "" +"The :mod:`textwrap` module can now preserve existing whitespace at the " +"beginnings and ends of the newly-created lines by specifying " +"``drop_whitespace=False`` as an argument::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2534 +msgid "(Contributed by Dwayne Bailey; :issue:`1581073`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2536 +msgid "" +"The :mod:`threading` module API is being changed to use properties such as :" +"attr:`daemon` instead of :meth:`setDaemon` and :meth:`isDaemon` methods, and " +"some methods have been renamed to use underscores instead of camel-case; for " +"example, the :meth:`activeCount` method is renamed to :meth:`active_count`. " +"Both the 2.6 and 3.0 versions of the module support the same properties and " +"renamed methods, but don't remove the old methods. No date has been set for " +"the deprecation of the old APIs in Python 3.x; the old APIs won't be removed " +"in any 2.x version. (Carried out by several people, most notably Benjamin " +"Peterson.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2547 +msgid "" +"The :mod:`threading` module's :class:`Thread` objects gained an :attr:" +"`ident` property that returns the thread's identifier, a nonzero integer. " +"(Contributed by Gregory P. Smith; :issue:`2871`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2552 +msgid "" +"The :mod:`timeit` module now accepts callables as well as strings for the " +"statement being timed and for the setup code. Two convenience functions were " +"added for creating :class:`Timer` instances: ``repeat(stmt, setup, time, " +"repeat, number)`` and ``timeit(stmt, setup, time, number)`` create an " +"instance and call the corresponding method. (Contributed by Erik Demaine; :" +"issue:`1533909`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2561 +msgid "" +"The :mod:`Tkinter` module now accepts lists and tuples for options, " +"separating the elements by spaces before passing the resulting value to Tcl/" +"Tk. (Contributed by Guilherme Polo; :issue:`2906`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2566 +msgid "" +"The :mod:`turtle` module for turtle graphics was greatly enhanced by Gregor " +"Lingl. New features in the module include:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2569 +msgid "Better animation of turtle movement and rotation." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2570 +msgid "" +"Control over turtle movement using the new :meth:`delay`, :meth:`tracer`, " +"and :meth:`speed` methods." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2572 +msgid "" +"The ability to set new shapes for the turtle, and to define a new coordinate " +"system." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2574 +msgid "Turtles now have an :meth:`undo()` method that can roll back actions." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2575 +msgid "" +"Simple support for reacting to input events such as mouse and keyboard " +"activity, making it possible to write simple games." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2577 +msgid "" +"A :file:`turtle.cfg` file can be used to customize the starting appearance " +"of the turtle's screen." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2579 +msgid "" +"The module's docstrings can be replaced by new docstrings that have been " +"translated into another language." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2582 +msgid "(:issue:`1513695`)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2584 +msgid "" +"An optional ``timeout`` parameter was added to the :func:`urllib.urlopen` " +"function and the :class:`urllib.ftpwrapper` class constructor, as well as " +"the :func:`urllib2.urlopen` function. The parameter specifies a timeout " +"measured in seconds. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2597 +msgid "(Added by Facundo Batista.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2599 +msgid "" +"The Unicode database provided by the :mod:`unicodedata` module has been " +"updated to version 5.1.0. (Updated by Martin von Löwis; :issue:`3811`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2603 +msgid "" +"The :mod:`warnings` module's :func:`formatwarning` and :func:`showwarning` " +"gained an optional *line* argument that can be used to supply the line of " +"source code. (Added as part of :issue:`1631171`, which re-implemented part " +"of the :mod:`warnings` module in C code.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2608 +msgid "" +"A new function, :func:`catch_warnings`, is a context manager intended for " +"testing purposes that lets you temporarily modify the warning filters and " +"then restore their original values (:issue:`3781`)." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2612 +msgid "" +"The XML-RPC :class:`SimpleXMLRPCServer` and :class:`DocXMLRPCServer` classes " +"can now be prevented from immediately opening and binding to their socket by " +"passing ``False`` as the *bind_and_activate* constructor parameter. This " +"can be used to modify the instance's :attr:`allow_reuse_address` attribute " +"before calling the :meth:`server_bind` and :meth:`server_activate` methods " +"to open the socket and begin listening for connections. (Contributed by " +"Peter Parente; :issue:`1599845`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2621 +msgid "" +":class:`SimpleXMLRPCServer` also has a :attr:`_send_traceback_header` " +"attribute; if true, the exception and formatted traceback are returned as " +"HTTP headers \"X-Exception\" and \"X-Traceback\". This feature is for " +"debugging purposes only and should not be used on production servers because " +"the tracebacks might reveal passwords or other sensitive information. " +"(Contributed by Alan McIntyre as part of his project for Google's Summer of " +"Code 2007.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2629 +msgid "" +"The :mod:`xmlrpclib` module no longer automatically converts :class:" +"`datetime.date` and :class:`datetime.time` to the :class:`xmlrpclib." +"DateTime` type; the conversion semantics were not necessarily correct for " +"all applications. Code using :mod:`xmlrpclib` should convert :class:`date` " +"and :class:`~datetime.time` instances. (:issue:`1330538`) The code can also " +"handle dates before 1900 (contributed by Ralf Schmitt; :issue:`2014`) and 64-" +"bit integers represented by using ```` in XML-RPC responses (contributed " +"by Riku Lindblad; :issue:`2985`)." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2639 +msgid "" +"The :mod:`zipfile` module's :class:`ZipFile` class now has :meth:`extract` " +"and :meth:`extractall` methods that will unpack a single file or all the " +"files in the archive to the current directory, or to a specified directory::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2653 +msgid "(Contributed by Alan McIntyre; :issue:`467924`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2655 +msgid "" +"The :meth:`open`, :meth:`read` and :meth:`extract` methods can now take " +"either a filename or a :class:`ZipInfo` object. This is useful when an " +"archive accidentally contains a duplicated filename. (Contributed by Graham " +"Horler; :issue:`1775025`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2660 +msgid "" +"Finally, :mod:`zipfile` now supports using Unicode filenames for archived " +"files. (Contributed by Alexey Borzenkov; :issue:`1734346`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2667 +msgid "The :mod:`ast` module" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2669 +msgid "" +"The :mod:`ast` module provides an Abstract Syntax Tree representation of " +"Python code, and Armin Ronacher contributed a set of helper functions that " +"perform a variety of common tasks. These will be useful for HTML templating " +"packages, code analyzers, and similar tools that process Python code." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2676 +msgid "" +"The :func:`parse` function takes an expression and returns an AST. The :func:" +"`dump` function outputs a representation of a tree, suitable for debugging::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2690 +msgid "This outputs a deeply nested tree::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2723 +msgid "" +"The :func:`literal_eval` method takes a string or an AST representing a " +"literal expression, parses and evaluates it, and returns the resulting " +"value. A literal expression is a Python expression containing only strings, " +"numbers, dictionaries, etc. but no statements or function calls. If you " +"need to evaluate an expression but cannot accept the security risk of using " +"an :func:`eval` call, :func:`literal_eval` will handle it safely::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2739 +msgid "" +"The module also includes :class:`NodeVisitor` and :class:`NodeTransformer` " +"classes for traversing and modifying an AST, and functions for common " +"transformations such as changing line numbers." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2747 +msgid "The :mod:`future_builtins` module" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2749 +msgid "" +"Python 3.0 makes many changes to the repertoire of built-in functions, and " +"most of the changes can't be introduced in the Python 2.x series because " +"they would break compatibility. The :mod:`future_builtins` module provides " +"versions of these built-in functions that can be imported when writing 3.0-" +"compatible code." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2756 +msgid "The functions in this module currently include:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2758 +msgid "" +"``ascii(obj)``: equivalent to :func:`repr`. In Python 3.0, :func:`repr` " +"will return a Unicode string, while :func:`ascii` will return a pure ASCII " +"bytestring." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2762 +msgid "" +"``filter(predicate, iterable)``, ``map(func, iterable1, ...)``: the 3.0 " +"versions return iterators, unlike the 2.x builtins which return lists." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2766 +msgid "" +"``hex(value)``, ``oct(value)``: instead of calling the :meth:`__hex__` or :" +"meth:`__oct__` methods, these versions will call the :meth:`__index__` " +"method and convert the result to hexadecimal or octal. :func:`oct` will use " +"the new ``0o`` notation for its result." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2775 +msgid "The :mod:`json` module: JavaScript Object Notation" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2777 +msgid "" +"The new :mod:`json` module supports the encoding and decoding of Python " +"types in JSON (Javascript Object Notation). JSON is a lightweight " +"interchange format often used in web applications. For more information " +"about JSON, see http://www.json.org." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2782 +msgid "" +":mod:`json` comes with support for decoding and encoding most built-in " +"Python types. The following example encodes and decodes a dictionary::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2793 +msgid "" +"It's also possible to write your own decoders and encoders to support more " +"types. Pretty-printing of the JSON strings is also supported." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2796 +msgid ":mod:`json` (originally called simplejson) was written by Bob Ippolito." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2803 +msgid "The :mod:`plistlib` module: A Property-List Parser" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2805 +msgid "" +"The ``.plist`` format is commonly used on Mac OS X to store basic data types " +"(numbers, strings, lists, and dictionaries) by serializing them into an XML-" +"based format. It resembles the XML-RPC serialization of data types." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2810 +msgid "" +"Despite being primarily used on Mac OS X, the format has nothing Mac-" +"specific about it and the Python implementation works on any platform that " +"Python supports, so the :mod:`plistlib` module has been promoted to the " +"standard library." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2815 +msgid "Using the module is simple::" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2842 +msgid "ctypes Enhancements" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2844 +msgid "" +"Thomas Heller continued to maintain and enhance the :mod:`ctypes` module." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2847 +msgid "" +":mod:`ctypes` now supports a :class:`c_bool` datatype that represents the " +"C99 ``bool`` type. (Contributed by David Remahl; :issue:`1649190`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2851 +msgid "" +"The :mod:`ctypes` string, buffer and array types have improved support for " +"extended slicing syntax, where various combinations of ``(start, stop, " +"step)`` are supplied. (Implemented by Thomas Wouters.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2858 +msgid "" +"All :mod:`ctypes` data types now support :meth:`from_buffer` and :meth:" +"`from_buffer_copy` methods that create a ctypes instance based on a provided " +"buffer object. :meth:`from_buffer_copy` copies the contents of the object, " +"while :meth:`from_buffer` will share the same memory area." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2865 +msgid "" +"A new calling convention tells :mod:`ctypes` to clear the ``errno`` or Win32 " +"LastError variables at the outset of each wrapped call. (Implemented by " +"Thomas Heller; :issue:`1798`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2869 +msgid "" +"You can now retrieve the Unix ``errno`` variable after a function call. " +"When creating a wrapped function, you can supply ``use_errno=True`` as a " +"keyword parameter to the :func:`DLL` function and then call the module-level " +"methods :meth:`set_errno` and :meth:`get_errno` to set and retrieve the " +"error value." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2875 +msgid "" +"The Win32 LastError variable is similarly supported by the :func:`DLL`, :" +"func:`OleDLL`, and :func:`WinDLL` functions. You supply " +"``use_last_error=True`` as a keyword parameter and then call the module-" +"level methods :meth:`set_last_error` and :meth:`get_last_error`." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2881 +msgid "" +"The :func:`byref` function, used to retrieve a pointer to a ctypes instance, " +"now has an optional *offset* parameter that is a byte count that will be " +"added to the returned pointer." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2888 +msgid "Improved SSL Support" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2890 +msgid "" +"Bill Janssen made extensive improvements to Python 2.6's support for the " +"Secure Sockets Layer by adding a new module, :mod:`ssl`, that's built atop " +"the `OpenSSL `__ library. This new module provides " +"more control over the protocol negotiated, the X.509 certificates used, and " +"has better support for writing SSL servers (as opposed to clients) in " +"Python. The existing SSL support in the :mod:`socket` module hasn't been " +"removed and continues to work, though it will be removed in Python 3.0." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2899 +msgid "" +"To use the new module, you must first create a TCP connection in the usual " +"way and then pass it to the :func:`ssl.wrap_socket` function. It's possible " +"to specify whether a certificate is required, and to obtain certificate info " +"by calling the :meth:`getpeercert` method." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2906 +msgid "The documentation for the :mod:`ssl` module." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2911 +msgid "Deprecations and Removals" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2913 ../Doc/whatsnew/2.6.rst:3241 +msgid "" +"String exceptions have been removed. Attempting to use them raises a :exc:" +"`TypeError`." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2916 +msgid "" +"Changes to the :class:`Exception` interface as dictated by :pep:`352` " +"continue to be made. For 2.6, the :attr:`message` attribute is being " +"deprecated in favor of the :attr:`args` attribute." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2921 +msgid "" +"(3.0-warning mode) Python 3.0 will feature a reorganized standard library " +"that will drop many outdated modules and rename others. Python 2.6 running " +"in 3.0-warning mode will warn about these modules when they are imported." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2926 +msgid "" +"The list of deprecated modules is: :mod:`audiodev`, :mod:`bgenlocations`, :" +"mod:`buildtools`, :mod:`bundlebuilder`, :mod:`Canvas`, :mod:`compiler`, :mod:" +"`dircache`, :mod:`dl`, :mod:`fpformat`, :mod:`gensuitemodule`, :mod:" +"`ihooks`, :mod:`imageop`, :mod:`imgfile`, :mod:`linuxaudiodev`, :mod:" +"`mhlib`, :mod:`mimetools`, :mod:`multifile`, :mod:`new`, :mod:`pure`, :mod:" +"`statvfs`, :mod:`sunaudiodev`, :mod:`test.testall`, and :mod:`toaiff`." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2951 +msgid "The :mod:`gopherlib` module has been removed." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2953 +msgid "" +"The :mod:`MimeWriter` module and :mod:`mimify` module have been deprecated; " +"use the :mod:`email` package instead." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2957 +msgid "" +"The :mod:`md5` module has been deprecated; use the :mod:`hashlib` module " +"instead." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2960 +msgid "" +"The :mod:`posixfile` module has been deprecated; :func:`fcntl.lockf` " +"provides better locking." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2963 +msgid "" +"The :mod:`popen2` module has been deprecated; use the :mod:`subprocess` " +"module." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2966 +msgid "The :mod:`rgbimg` module has been removed." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2968 +msgid "" +"The :mod:`sets` module has been deprecated; it's better to use the built-in :" +"class:`set` and :class:`frozenset` types." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2971 +msgid "" +"The :mod:`sha` module has been deprecated; use the :mod:`hashlib` module " +"instead." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2979 +msgid "Build and C API Changes" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2981 +msgid "Changes to Python's build process and to the C API include:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2983 +msgid "" +"Python now must be compiled with C89 compilers (after 19 years!). This " +"means that the Python source tree has dropped its own implementations of :c:" +"func:`memmove` and :c:func:`strerror`, which are in the C89 standard library." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2988 +msgid "" +"Python 2.6 can be built with Microsoft Visual Studio 2008 (version 9.0), and " +"this is the new default compiler. See the :file:`PCbuild` directory for the " +"build files. (Implemented by Christian Heimes.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:2993 +msgid "" +"On Mac OS X, Python 2.6 can be compiled as a 4-way universal build. The :" +"program:`configure` script can take a :option:`!--with-universal-archs=[32-" +"bit|64-bit|all]` switch, controlling whether the binaries are built for 32-" +"bit architectures (x86, PowerPC), 64-bit (x86-64 and PPC-64), or both. " +"(Contributed by Ronald Oussoren.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3000 +msgid "" +"The BerkeleyDB module now has a C API object, available as ``bsddb.db." +"api``. This object can be used by other C extensions that wish to use the :" +"mod:`bsddb` module for their own purposes. (Contributed by Duncan Grisby.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3005 +msgid "" +"The new buffer interface, previously described in `the PEP 3118 section " +"<#pep-3118-revised-buffer-protocol>`__, adds :c:func:`PyObject_GetBuffer` " +"and :c:func:`PyBuffer_Release`, as well as a few other functions." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3010 +msgid "" +"Python's use of the C stdio library is now thread-safe, or at least as " +"thread-safe as the underlying library is. A long-standing potential bug " +"occurred if one thread closed a file object while another thread was reading " +"from or writing to the object. In 2.6 file objects have a reference count, " +"manipulated by the :c:func:`PyFile_IncUseCount` and :c:func:" +"`PyFile_DecUseCount` functions. File objects can't be closed unless the " +"reference count is zero. :c:func:`PyFile_IncUseCount` should be called " +"while the GIL is still held, before carrying out an I/O operation using the " +"``FILE *`` pointer, and :c:func:`PyFile_DecUseCount` should be called " +"immediately after the GIL is re-acquired. (Contributed by Antoine Pitrou and " +"Gregory P. Smith.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3023 +msgid "" +"Importing modules simultaneously in two different threads no longer " +"deadlocks; it will now raise an :exc:`ImportError`. A new API function, :c:" +"func:`PyImport_ImportModuleNoBlock`, will look for a module in ``sys." +"modules`` first, then try to import it after acquiring an import lock. If " +"the import lock is held by another thread, an :exc:`ImportError` is raised. " +"(Contributed by Christian Heimes.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3031 +msgid "" +"Several functions return information about the platform's floating-point " +"support. :c:func:`PyFloat_GetMax` returns the maximum representable " +"floating point value, and :c:func:`PyFloat_GetMin` returns the minimum " +"positive value. :c:func:`PyFloat_GetInfo` returns an object containing more " +"information from the :file:`float.h` file, such as ``\"mant_dig\"`` (number " +"of digits in the mantissa), ``\"epsilon\"`` (smallest difference between 1.0 " +"and the next largest value representable), and several others. (Contributed " +"by Christian Heimes; :issue:`1534`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3042 +msgid "" +"C functions and methods that use :c:func:`PyComplex_AsCComplex` will now " +"accept arguments that have a :meth:`__complex__` method. In particular, the " +"functions in the :mod:`cmath` module will now accept objects with this " +"method. This is a backport of a Python 3.0 change. (Contributed by Mark " +"Dickinson; :issue:`1675423`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3049 +msgid "" +"Python's C API now includes two functions for case-insensitive string " +"comparisons, ``PyOS_stricmp(char*, char*)`` and ``PyOS_strnicmp(char*, " +"char*, Py_ssize_t)``. (Contributed by Christian Heimes; :issue:`1635`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3054 +msgid "" +"Many C extensions define their own little macro for adding integers and " +"strings to the module's dictionary in the ``init*`` function. Python 2.6 " +"finally defines standard macros for adding values to a module, :c:macro:" +"`PyModule_AddStringMacro` and :c:macro:`PyModule_AddIntMacro()`. " +"(Contributed by Christian Heimes.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3061 +msgid "" +"Some macros were renamed in both 3.0 and 2.6 to make it clearer that they " +"are macros, not functions. :c:macro:`Py_Size()` became :c:macro:" +"`Py_SIZE()`, :c:macro:`Py_Type()` became :c:macro:`Py_TYPE()`, and :c:macro:" +"`Py_Refcnt()` became :c:macro:`Py_REFCNT()`. The mixed-case macros are still " +"available in Python 2.6 for backward compatibility. (:issue:`1629`)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3070 +msgid "" +"Distutils now places C extensions it builds in a different directory when " +"running on a debug version of Python. (Contributed by Collin Winter; :issue:" +"`1530959`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3074 +msgid "" +"Several basic data types, such as integers and strings, maintain internal " +"free lists of objects that can be re-used. The data structures for these " +"free lists now follow a naming convention: the variable is always named " +"``free_list``, the counter is always named ``numfree``, and a macro " +"``Py_MAXFREELIST`` is always defined." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3081 +msgid "" +"A new Makefile target, \"make patchcheck\", prepares the Python source tree " +"for making a patch: it fixes trailing whitespace in all modified ``.py`` " +"files, checks whether the documentation has been changed, and reports " +"whether the :file:`Misc/ACKS` and :file:`Misc/NEWS` files have been updated. " +"(Contributed by Brett Cannon.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3088 +msgid "" +"Another new target, \"make profile-opt\", compiles a Python binary using " +"GCC's profile-guided optimization. It compiles Python with profiling " +"enabled, runs the test suite to obtain a set of profiling results, and then " +"compiles using these results for optimization. (Contributed by Gregory P. " +"Smith.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3097 +msgid "Port-Specific Changes: Windows" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3099 +msgid "" +"The support for Windows 95, 98, ME and NT4 has been dropped. Python 2.6 " +"requires at least Windows 2000 SP4." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3102 +msgid "" +"The new default compiler on Windows is Visual Studio 2008 (version 9.0). The " +"build directories for Visual Studio 2003 (version 7.1) and 2005 (version " +"8.0) were moved into the PC/ directory. The new :file:`PCbuild` directory " +"supports cross compilation for X64, debug builds and Profile Guided " +"Optimization (PGO). PGO builds are roughly 10% faster than normal builds. " +"(Contributed by Christian Heimes with help from Amaury Forgeot d'Arc and " +"Martin von Löwis.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3110 +msgid "" +"The :mod:`msvcrt` module now supports both the normal and wide char variants " +"of the console I/O API. The :func:`getwch` function reads a keypress and " +"returns a Unicode value, as does the :func:`getwche` function. The :func:" +"`putwch` function takes a Unicode character and writes it to the console. " +"(Contributed by Christian Heimes.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3117 +msgid "" +":func:`os.path.expandvars` will now expand environment variables in the form " +"\"%var%\", and \"~user\" will be expanded into the user's home directory " +"path. (Contributed by Josiah Carlson; :issue:`957650`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3121 +msgid "" +"The :mod:`socket` module's socket objects now have an :meth:`ioctl` method " +"that provides a limited interface to the :c:func:`WSAIoctl` system interface." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3125 +msgid "" +"The :mod:`_winreg` module now has a function, :func:" +"`ExpandEnvironmentStrings`, that expands environment variable references " +"such as ``%NAME%`` in an input string. The handle objects provided by this " +"module now support the context protocol, so they can be used in :keyword:" +"`with` statements. (Contributed by Christian Heimes.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3132 +msgid "" +":mod:`_winreg` also has better support for x64 systems, exposing the :func:" +"`DisableReflectionKey`, :func:`EnableReflectionKey`, and :func:" +"`QueryReflectionKey` functions, which enable and disable registry reflection " +"for 32-bit processes running on 64-bit systems. (:issue:`1753245`)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3138 +msgid "" +"The :mod:`msilib` module's :class:`Record` object gained :meth:`GetInteger` " +"and :meth:`GetString` methods that return field values as an integer or a " +"string. (Contributed by Floris Bruynooghe; :issue:`2125`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3146 +msgid "Port-Specific Changes: Mac OS X" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3148 +msgid "" +"When compiling a framework build of Python, you can now specify the " +"framework name to be used by providing the :option:`!--with-framework-name=` " +"option to the :program:`configure` script." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3153 +msgid "" +"The :mod:`macfs` module has been removed. This in turn required the :func:" +"`macostools.touched` function to be removed because it depended on the :mod:" +"`macfs` module. (:issue:`1490190`)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3157 +msgid "" +"Many other Mac OS modules have been deprecated and will be removed in Python " +"3.0: :mod:`_builtinSuites`, :mod:`aepack`, :mod:`aetools`, :mod:`aetypes`, :" +"mod:`applesingle`, :mod:`appletrawmain`, :mod:`appletrunner`, :mod:" +"`argvemulator`, :mod:`Audio_mac`, :mod:`autoGIL`, :mod:`Carbon`, :mod:" +"`cfmfile`, :mod:`CodeWarrior`, :mod:`ColorPicker`, :mod:`EasyDialogs`, :mod:" +"`Explorer`, :mod:`Finder`, :mod:`FrameWork`, :mod:`findertools`, :mod:`ic`, :" +"mod:`icglue`, :mod:`icopen`, :mod:`macerrors`, :mod:`MacOS`, :mod:`macfs`, :" +"mod:`macostools`, :mod:`macresource`, :mod:`MiniAEFrame`, :mod:`Nav`, :mod:" +"`Netscape`, :mod:`OSATerminology`, :mod:`pimp`, :mod:`PixMapWrapper`, :mod:" +"`StdSuites`, :mod:`SystemEvents`, :mod:`Terminal`, and :mod:" +"`terminalcommand`." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3200 +msgid "Port-Specific Changes: IRIX" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3202 +msgid "" +"A number of old IRIX-specific modules were deprecated and will be removed in " +"Python 3.0: :mod:`al` and :mod:`AL`, :mod:`cd`, :mod:`cddb`, :mod:" +"`cdplayer`, :mod:`CL` and :mod:`cl`, :mod:`DEVICE`, :mod:`ERRNO`, :mod:" +"`FILE`, :mod:`FL` and :mod:`fl`, :mod:`flp`, :mod:`fm`, :mod:`GET`, :mod:" +"`GLWS`, :mod:`GL` and :mod:`gl`, :mod:`IN`, :mod:`IOCTL`, :mod:`jpeg`, :mod:" +"`panelparser`, :mod:`readcd`, :mod:`SV` and :mod:`sv`, :mod:`torgb`, :mod:" +"`videoreader`, and :mod:`WAIT`." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3232 +msgid "Porting to Python 2.6" +msgstr "Portage vers Python 2.6" + +#: ../Doc/whatsnew/2.6.rst:3234 +msgid "" +"This section lists previously described changes and other bugfixes that may " +"require changes to your code:" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3237 +msgid "" +"Classes that aren't supposed to be hashable should set ``__hash__ = None`` " +"in their definitions to indicate the fact." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3244 +msgid "" +"The :meth:`__init__` method of :class:`collections.deque` now clears any " +"existing contents of the deque before adding elements from the iterable. " +"This change makes the behavior match ``list.__init__()``." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3249 +msgid "" +":meth:`object.__init__` previously accepted arbitrary arguments and keyword " +"arguments, ignoring them. In Python 2.6, this is no longer allowed and will " +"result in a :exc:`TypeError`. This will affect :meth:`__init__` methods " +"that end up calling the corresponding method on :class:`object` (perhaps " +"through using :func:`super`). See :issue:`1683368` for discussion." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3256 +msgid "" +"The :class:`Decimal` constructor now accepts leading and trailing whitespace " +"when passed a string. Previously it would raise an :exc:`InvalidOperation` " +"exception. On the other hand, the :meth:`create_decimal` method of :class:" +"`Context` objects now explicitly disallows extra whitespace, raising a :exc:" +"`ConversionSyntax` exception." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3263 +msgid "" +"Due to an implementation accident, if you passed a file path to the built-" +"in :func:`__import__` function, it would actually import the specified " +"file. This was never intended to work, however, and the implementation now " +"explicitly checks for this case and raises an :exc:`ImportError`." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3269 +msgid "" +"C API: the :c:func:`PyImport_Import` and :c:func:`PyImport_ImportModule` " +"functions now default to absolute imports, not relative imports. This will " +"affect C extensions that import other modules." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3273 +msgid "" +"C API: extension data types that shouldn't be hashable should define their " +"``tp_hash`` slot to :c:func:`PyObject_HashNotImplemented`." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3277 +msgid "" +"The :mod:`socket` module exception :exc:`socket.error` now inherits from :" +"exc:`IOError`. Previously it wasn't a subclass of :exc:`StandardError` but " +"now it is, through :exc:`IOError`. (Implemented by Gregory P. Smith; :issue:" +"`1706815`.)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3282 +msgid "" +"The :mod:`xmlrpclib` module no longer automatically converts :class:" +"`datetime.date` and :class:`datetime.time` to the :class:`xmlrpclib." +"DateTime` type; the conversion semantics were not necessarily correct for " +"all applications. Code using :mod:`xmlrpclib` should convert :class:`date` " +"and :class:`~datetime.time` instances. (:issue:`1330538`)" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3289 +msgid "" +"(3.0-warning mode) The :class:`Exception` class now warns when accessed " +"using slicing or index access; having :class:`Exception` behave like a tuple " +"is being phased out." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3293 +msgid "" +"(3.0-warning mode) inequality comparisons between two dictionaries or two " +"objects that don't implement comparison methods are reported as warnings. " +"``dict1 == dict2`` still works, but ``dict1 < dict2`` is being phased out." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3298 +msgid "" +"Comparisons between cells, which are an implementation detail of Python's " +"scoping rules, also cause warnings because such comparisons are forbidden " +"entirely in 3.0." +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:3308 +msgid "Acknowledgements" +msgstr "Remerciements" + +#: ../Doc/whatsnew/2.6.rst:3310 +msgid "" +"The author would like to thank the following people for offering " +"suggestions, corrections and assistance with various drafts of this article: " +"Georg Brandl, Steve Brown, Nick Coghlan, Ralph Corderoy, Jim Jewett, Kent " +"Johnson, Chris Lambacher, Martin Michlmayr, Antoine Pitrou, Brian Warner." +msgstr "" diff --git a/whatsnew/2.7.po b/whatsnew/2.7.po new file mode 100644 index 000000000..3b4361a8f --- /dev/null +++ b/whatsnew/2.7.po @@ -0,0 +1,3306 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2017-08-10 00:52+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/whatsnew/2.7.rst:3 +msgid "What's New in Python 2.7" +msgstr "Nouveautés de Python 2.7" + +#: ../Doc/whatsnew/2.7.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/whatsnew/2.7.rst:5 +msgid "A.M. Kuchling (amk at amk.ca)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:52 +msgid "" +"This article explains the new features in Python 2.7. Python 2.7 was " +"released on July 3, 2010." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:55 +msgid "" +"Numeric handling has been improved in many ways, for both floating-point " +"numbers and for the :class:`~decimal.Decimal` class. There are some useful " +"additions to the standard library, such as a greatly enhanced :mod:" +"`unittest` module, the :mod:`argparse` module for parsing command-line " +"options, convenient :class:`~collections.OrderedDict` and :class:" +"`~collections.Counter` classes in the :mod:`collections` module, and many " +"other improvements." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:63 +msgid "" +"Python 2.7 is planned to be the last of the 2.x releases, so we worked on " +"making it a good release for the long term. To help with porting to Python " +"3, several new features from the Python 3.x series have been included in 2.7." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:68 +msgid "" +"This article doesn't attempt to provide a complete specification of the new " +"features, but instead provides a convenient overview. For full details, you " +"should refer to the documentation for Python 2.7 at https://docs.python.org. " +"If you want to understand the rationale for the design and implementation, " +"refer to the PEP for a particular new feature or the issue on https://bugs." +"python.org in which a change was discussed. Whenever possible, \"What's New " +"in Python\" links to the bug/patch item for each change." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:80 +msgid "The Future for Python 2.x" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:82 +msgid "" +"Python 2.7 is the last major release in the 2.x series, as the Python " +"maintainers have shifted the focus of their new feature development efforts " +"to the Python 3.x series. This means that while Python 2 continues to " +"receive bug fixes, and to be updated to build correctly on new hardware and " +"versions of supported operated systems, there will be no new full feature " +"releases for the language or standard library." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:89 +msgid "" +"However, while there is a large common subset between Python 2.7 and Python " +"3, and many of the changes involved in migrating to that common subset, or " +"directly to Python 3, can be safely automated, some other changes (notably " +"those associated with Unicode handling) may require careful consideration, " +"and preferably robust automated regression test suites, to migrate " +"effectively." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:96 +msgid "" +"This means that Python 2.7 will remain in place for a long time, providing a " +"stable and supported base platform for production systems that have not yet " +"been ported to Python 3. The full expected lifecycle of the Python 2.7 " +"series is detailed in :pep:`373`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:101 +msgid "Some key consequences of the long-term significance of 2.7 are:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:103 +msgid "" +"As noted above, the 2.7 release has a much longer period of maintenance when " +"compared to earlier 2.x versions. Python 2.7 is currently expected to remain " +"supported by the core development team (receiving security updates and other " +"bug fixes) until at least 2020 (10 years after its initial release, compared " +"to the more typical support period of 18--24 months)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:109 +msgid "" +"As the Python 2.7 standard library ages, making effective use of the Python " +"Package Index (either directly or via a redistributor) becomes more " +"important for Python 2 users. In addition to a wide variety of third party " +"packages for various tasks, the available packages include backports of new " +"modules and features from the Python 3 standard library that are compatible " +"with Python 2, as well as various tools and libraries that can make it " +"easier to migrate to Python 3. The `Python Packaging User Guide `__ provides guidance on downloading and installing " +"software from the Python Package Index." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:119 +msgid "" +"While the preferred approach to enhancing Python 2 is now the publication of " +"new packages on the Python Package Index, this approach doesn't necessarily " +"work in all cases, especially those related to network security. In " +"exceptional cases that cannot be handled adequately by publishing new or " +"updated packages on PyPI, the Python Enhancement Proposal process may be " +"used to make the case for adding new features directly to the Python 2 " +"standard library. Any such additions, and the maintenance releases where " +"they were added, will be noted in the :ref:`py27-maintenance-enhancements` " +"section below." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:129 +msgid "" +"For projects wishing to migrate from Python 2 to Python 3, or for library " +"and framework developers wishing to support users on both Python 2 and " +"Python 3, there are a variety of tools and guides available to help decide " +"on a suitable approach and manage some of the technical details involved. " +"The recommended starting point is the :ref:`pyporting-howto` HOWTO guide." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:137 +msgid "Changes to the Handling of Deprecation Warnings" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:139 +msgid "" +"For Python 2.7, a policy decision was made to silence warnings only of " +"interest to developers by default. :exc:`DeprecationWarning` and its " +"descendants are now ignored unless otherwise requested, preventing users " +"from seeing warnings triggered by an application. This change was also made " +"in the branch that became Python 3.2. (Discussed on stdlib-sig and carried " +"out in :issue:`7319`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:146 +msgid "" +"In previous releases, :exc:`DeprecationWarning` messages were enabled by " +"default, providing Python developers with a clear indication of where their " +"code may break in a future major version of Python." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:151 +msgid "" +"However, there are increasingly many users of Python-based applications who " +"are not directly involved in the development of those applications. :exc:" +"`DeprecationWarning` messages are irrelevant to such users, making them " +"worry about an application that's actually working correctly and burdening " +"application developers with responding to these concerns." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:158 +msgid "" +"You can re-enable display of :exc:`DeprecationWarning` messages by running " +"Python with the :option:`-Wdefault <-W>` (short form: :option:`-Wd <-W>`) " +"switch, or by setting the :envvar:`PYTHONWARNINGS` environment variable to ``" +"\"default\"`` (or ``\"d\"``) before running Python. Python code can also re-" +"enable them by calling ``warnings.simplefilter('default')``." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:165 +msgid "" +"The ``unittest`` module also automatically reenables deprecation warnings " +"when running tests." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:170 +msgid "Python 3.1 Features" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:172 +msgid "" +"Much as Python 2.6 incorporated features from Python 3.0, version 2.7 " +"incorporates some of the new features in Python 3.1. The 2.x series " +"continues to provide tools for migrating to the 3.x series." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:177 +msgid "A partial list of 3.1 features that were backported to 2.7:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:179 +msgid "The syntax for set literals (``{1,2,3}`` is a mutable set)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:180 +msgid "Dictionary and set comprehensions (``{i: i*2 for i in range(3)}``)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:181 +msgid "Multiple context managers in a single :keyword:`with` statement." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:182 +msgid "A new version of the :mod:`io` library, rewritten in C for performance." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:183 +msgid "The ordered-dictionary type described in :ref:`pep-0372`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:184 +msgid "The new ``\",\"`` format specifier described in :ref:`pep-0378`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:185 +msgid "The :class:`memoryview` object." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:186 +msgid "" +"A small subset of the :mod:`importlib` module, `described below <#importlib-" +"section>`__." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:188 +msgid "" +"The :func:`repr` of a float ``x`` is shorter in many cases: it's now based " +"on the shortest decimal string that's guaranteed to round back to ``x``. As " +"in previous versions of Python, it's guaranteed that ``float(repr(x))`` " +"recovers ``x``." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:192 +msgid "" +"Float-to-string and string-to-float conversions are correctly rounded. The :" +"func:`round` function is also now correctly rounded." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:194 +msgid "" +"The :c:type:`PyCapsule` type, used to provide a C API for extension modules." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:195 +msgid "The :c:func:`PyLong_AsLongAndOverflow` C API function." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:197 +msgid "Other new Python3-mode warnings include:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:199 +msgid "" +":func:`operator.isCallable` and :func:`operator.sequenceIncludes`, which are " +"not supported in 3.x, now trigger warnings." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:201 +msgid "" +"The :option:`!-3` switch now automatically enables the :option:`!-Qwarn` " +"switch that causes warnings about using classic division with integers and " +"long integers." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:214 +msgid "PEP 372: Adding an Ordered Dictionary to collections" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:216 +msgid "" +"Regular Python dictionaries iterate over key/value pairs in arbitrary order. " +"Over the years, a number of authors have written alternative implementations " +"that remember the order that the keys were originally inserted. Based on " +"the experiences from those implementations, 2.7 introduces a new :class:" +"`~collections.OrderedDict` class in the :mod:`collections` module." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:222 +msgid "" +"The :class:`~collections.OrderedDict` API provides the same interface as " +"regular dictionaries but iterates over keys and values in a guaranteed order " +"depending on when a key was first inserted::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:233 +msgid "" +"If a new entry overwrites an existing entry, the original insertion position " +"is left unchanged::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:240 +msgid "Deleting an entry and reinserting it will move it to the end::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:247 +msgid "" +"The :meth:`~collections.OrderedDict.popitem` method has an optional *last* " +"argument that defaults to ``True``. If *last* is true, the most recently " +"added key is returned and removed; if it's false, the oldest key is " +"selected::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:262 +msgid "" +"Comparing two ordered dictionaries checks both the keys and values, and " +"requires that the insertion order was the same::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:278 +msgid "" +"Comparing an :class:`~collections.OrderedDict` with a regular dictionary " +"ignores the insertion order and just compares the keys and values." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:281 +msgid "" +"How does the :class:`~collections.OrderedDict` work? It maintains a doubly-" +"linked list of keys, appending new keys to the list as they're inserted. A " +"secondary dictionary maps keys to their corresponding list node, so deletion " +"doesn't have to traverse the entire linked list and therefore remains O(1)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:287 +msgid "" +"The standard library now supports use of ordered dictionaries in several " +"modules." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:290 +msgid "" +"The :mod:`ConfigParser` module uses them by default, meaning that " +"configuration files can now be read, modified, and then written back in " +"their original order." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:294 +msgid "" +"The :meth:`~collections.somenamedtuple._asdict()` method for :func:" +"`collections.namedtuple` now returns an ordered dictionary with the values " +"appearing in the same order as the underlying tuple indices." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:298 +msgid "" +"The :mod:`json` module's :class:`~json.JSONDecoder` class constructor was " +"extended with an *object_pairs_hook* parameter to allow :class:`OrderedDict` " +"instances to be built by the decoder. Support was also added for third-party " +"tools like `PyYAML `_." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:307 +msgid ":pep:`372` - Adding an ordered dictionary to collections" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:307 +msgid "" +"PEP written by Armin Ronacher and Raymond Hettinger; implemented by Raymond " +"Hettinger." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:313 +msgid "PEP 378: Format Specifier for Thousands Separator" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:315 +msgid "" +"To make program output more readable, it can be useful to add separators to " +"large numbers, rendering them as 18,446,744,073,709,551,616 instead of " +"18446744073709551616." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:319 +msgid "" +"The fully general solution for doing this is the :mod:`locale` module, which " +"can use different separators (\",\" in North America, \".\" in Europe) and " +"different grouping sizes, but :mod:`locale` is complicated to use and " +"unsuitable for multi-threaded applications where different threads are " +"producing output for different locales." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:325 +msgid "" +"Therefore, a simple comma-grouping mechanism has been added to the mini-" +"language used by the :meth:`str.format` method. When formatting a floating-" +"point number, simply include a comma between the width and the precision::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:333 +msgid "When formatting an integer, include the comma after the width:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:338 +msgid "" +"This mechanism is not adaptable at all; commas are always used as the " +"separator and the grouping is always into three-digit groups. The comma-" +"formatting mechanism isn't as general as the :mod:`locale` module, but it's " +"easier to use." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:345 +msgid ":pep:`378` - Format Specifier for Thousands Separator" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:346 +msgid "PEP written by Raymond Hettinger; implemented by Eric Smith." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:349 +msgid "PEP 389: The argparse Module for Parsing Command Lines" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:351 +msgid "" +"The :mod:`argparse` module for parsing command-line arguments was added as a " +"more powerful replacement for the :mod:`optparse` module." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:355 +msgid "" +"This means Python now supports three different modules for parsing command-" +"line arguments: :mod:`getopt`, :mod:`optparse`, and :mod:`argparse`. The :" +"mod:`getopt` module closely resembles the C library's :c:func:`getopt` " +"function, so it remains useful if you're writing a Python prototype that " +"will eventually be rewritten in C. :mod:`optparse` becomes redundant, but " +"there are no plans to remove it because there are many scripts still using " +"it, and there's no automated way to update these scripts. (Making the :mod:" +"`argparse` API consistent with :mod:`optparse`'s interface was discussed but " +"rejected as too messy and difficult.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:366 +msgid "" +"In short, if you're writing a new script and don't need to worry about " +"compatibility with earlier versions of Python, use :mod:`argparse` instead " +"of :mod:`optparse`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:370 +msgid "Here's an example::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:393 +msgid "" +"Unless you override it, :option:`!-h` and :option:`!--help` switches are " +"automatically added, and produce neatly formatted output::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:410 +msgid "" +"As with :mod:`optparse`, the command-line switches and arguments are " +"returned as an object with attributes named by the *dest* parameters::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:425 +msgid "" +":mod:`argparse` has much fancier validation than :mod:`optparse`; you can " +"specify an exact number of arguments as an integer, 0 or more arguments by " +"passing ``'*'``, 1 or more by passing ``'+'``, or an optional argument with " +"``'?'``. A top-level parser can contain sub-parsers to define subcommands " +"that have different sets of switches, as in ``svn commit``, ``svn " +"checkout``, etc. You can specify an argument's type as :class:`~argparse." +"FileType`, which will automatically open files for you and understands that " +"``'-'`` means standard input or output." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:438 +msgid ":mod:`argparse` documentation" +msgstr "Documentation du module :mod:`argparse`" + +#: ../Doc/whatsnew/2.7.rst:438 +msgid "The documentation page of the argparse module." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:442 +msgid ":ref:`upgrading-optparse-code`" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:441 +msgid "" +"Part of the Python documentation, describing how to convert code that uses :" +"mod:`optparse`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:444 +msgid ":pep:`389` - argparse - New Command Line Parsing Module" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:445 +msgid "PEP written and implemented by Steven Bethard." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:448 +msgid "PEP 391: Dictionary-Based Configuration For Logging" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:450 +msgid "" +"The :mod:`logging` module is very flexible; applications can define a tree " +"of logging subsystems, and each logger in this tree can filter out certain " +"messages, format them differently, and direct messages to a varying number " +"of handlers." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:455 +msgid "" +"All this flexibility can require a lot of configuration. You can write " +"Python statements to create objects and set their properties, but a complex " +"set-up requires verbose but boring code. :mod:`logging` also supports a :" +"func:`~logging.fileConfig` function that parses a file, but the file format " +"doesn't support configuring filters, and it's messier to generate " +"programmatically." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:462 +msgid "" +"Python 2.7 adds a :func:`~logging.dictConfig` function that uses a " +"dictionary to configure logging. There are many ways to produce a " +"dictionary from different sources: construct one with code; parse a file " +"containing JSON; or use a YAML parsing library if one is installed. For " +"more information see :ref:`logging-config-api`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:468 +msgid "" +"The following example configures two loggers, the root logger and a logger " +"named \"network\". Messages sent to the root logger will be sent to the " +"system log using the syslog protocol, and messages to the \"network\" logger " +"will be written to a :file:`network.log` file that will be rotated once the " +"log reaches 1MB." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:518 +msgid "" +"Three smaller enhancements to the :mod:`logging` module, all implemented by " +"Vinay Sajip, are:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:523 +msgid "" +"The :class:`~logging.handlers.SysLogHandler` class now supports syslogging " +"over TCP. The constructor has a *socktype* parameter giving the type of " +"socket to use, either :const:`socket.SOCK_DGRAM` for UDP or :const:`socket." +"SOCK_STREAM` for TCP. The default protocol remains UDP." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:529 +msgid "" +":class:`~logging.Logger` instances gained a :meth:`~logging.Logger.getChild` " +"method that retrieves a descendant logger using a relative path. For " +"example, once you retrieve a logger by doing ``log = getLogger('app')``, " +"calling ``log.getChild('network.listen')`` is equivalent to ``getLogger('app." +"network.listen')``." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:535 +msgid "" +"The :class:`~logging.LoggerAdapter` class gained an :meth:`~logging." +"LoggerAdapter.isEnabledFor` method that takes a *level* and returns whether " +"the underlying logger would process a message of that level of importance." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:544 +msgid ":pep:`391` - Dictionary-Based Configuration For Logging" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:545 +msgid "PEP written and implemented by Vinay Sajip." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:548 +msgid "PEP 3106: Dictionary Views" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:550 +msgid "" +"The dictionary methods :meth:`~dict.keys`, :meth:`~dict.values`, and :meth:" +"`~dict.items` are different in Python 3.x. They return an object called a :" +"dfn:`view` instead of a fully materialized list." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:554 +msgid "" +"It's not possible to change the return values of :meth:`~dict.keys`, :meth:" +"`~dict.values`, and :meth:`~dict.items` in Python 2.7 because too much code " +"would break. Instead the 3.x versions were added under the new names :meth:" +"`~dict.viewkeys`, :meth:`~dict.viewvalues`, and :meth:`~dict.viewitems`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:568 +msgid "" +"Views can be iterated over, but the key and item views also behave like " +"sets. The ``&`` operator performs intersection, and ``|`` performs a union::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:579 +msgid "" +"The view keeps track of the dictionary and its contents change as the " +"dictionary is modified::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:589 +msgid "" +"However, note that you can't add or remove keys while you're iterating over " +"the view::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:599 +msgid "" +"You can use the view methods in Python 2.x code, and the 2to3 converter will " +"change them to the standard :meth:`~dict.keys`, :meth:`~dict.values`, and :" +"meth:`~dict.items` methods." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:606 +msgid ":pep:`3106` - Revamping dict.keys(), .values() and .items()" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:606 +msgid "" +"PEP written by Guido van Rossum. Backported to 2.7 by Alexandre Vassalotti; :" +"issue:`1967`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:611 +msgid "PEP 3137: The memoryview Object" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:613 +msgid "" +"The :class:`memoryview` object provides a view of another object's memory " +"content that matches the :class:`bytes` type's interface." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:631 +msgid "" +"The content of the view can be converted to a string of bytes or a list of " +"integers:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:643 +msgid "" +":class:`memoryview` objects allow modifying the underlying object if it's a " +"mutable object." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:666 +msgid ":pep:`3137` - Immutable Bytes and Mutable Buffer" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:665 +msgid "" +"PEP written by Guido van Rossum. Implemented by Travis Oliphant, Antoine " +"Pitrou and others. Backported to 2.7 by Antoine Pitrou; :issue:`2396`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:672 +msgid "Other Language Changes" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:674 +msgid "Some smaller changes made to the core Python language are:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:676 +msgid "" +"The syntax for set literals has been backported from Python 3.x. Curly " +"brackets are used to surround the contents of the resulting mutable set; set " +"literals are distinguished from dictionaries by not containing colons and " +"values. ``{}`` continues to represent an empty dictionary; use ``set()`` for " +"an empty set." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:693 +msgid "Backported by Alexandre Vassalotti; :issue:`2335`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:695 +msgid "" +"Dictionary and set comprehensions are another feature backported from 3.x, " +"generalizing list/generator comprehensions to use the literal syntax for " +"sets and dictionaries." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:707 +msgid "Backported by Alexandre Vassalotti; :issue:`2333`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:709 +msgid "" +"The :keyword:`with` statement can now use multiple context managers in one " +"statement. Context managers are processed from left to right and each one " +"is treated as beginning a new :keyword:`!with` statement. This means that::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:717 +msgid "is equivalent to::" +msgstr "est équivalente à ::" + +#: ../Doc/whatsnew/2.7.rst:723 +msgid "" +"The :func:`contextlib.nested` function provides a very similar function, so " +"it's no longer necessary and has been deprecated." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:726 +msgid "" +"(Proposed in https://codereview.appspot.com/53094; implemented by Georg " +"Brandl.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:729 +msgid "" +"Conversions between floating-point numbers and strings are now correctly " +"rounded on most platforms. These conversions occur in many different " +"places: :func:`str` on floats and complex numbers; the :class:`float` and :" +"class:`complex` constructors; numeric formatting; serializing and " +"deserializing floats and complex numbers using the :mod:`marshal`, :mod:" +"`pickle` and :mod:`json` modules; parsing of float and imaginary literals in " +"Python code; and :class:`~decimal.Decimal`-to-float conversion." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:741 +msgid "" +"Related to this, the :func:`repr` of a floating-point number *x* now returns " +"a result based on the shortest decimal string that's guaranteed to round " +"back to *x* under correct rounding (with round-half-to-even rounding mode). " +"Previously it gave a string based on rounding x to 17 decimal digits." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:749 +msgid "" +"The rounding library responsible for this improvement works on Windows and " +"on Unix platforms using the gcc, icc, or suncc compilers. There may be a " +"small number of platforms where correct operation of this code cannot be " +"guaranteed, so the code is not used on such systems. You can find out which " +"code is being used by checking :data:`sys.float_repr_style`, which will be " +"``short`` if the new code is in use and ``legacy`` if it isn't." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:757 +msgid "" +"Implemented by Eric Smith and Mark Dickinson, using David Gay's :file:`dtoa." +"c` library; :issue:`7117`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:760 +msgid "" +"Conversions from long integers and regular integers to floating point now " +"round differently, returning the floating-point number closest to the " +"number. This doesn't matter for small integers that can be converted " +"exactly, but for large numbers that will unavoidably lose precision, Python " +"2.7 now approximates more closely. For example, Python 2.6 computed the " +"following::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:773 +msgid "" +"Python 2.7's floating-point result is larger, but much closer to the true " +"value::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:782 +msgid "(Implemented by Mark Dickinson; :issue:`3166`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:784 +msgid "" +"Integer division is also more accurate in its rounding behaviours. (Also " +"implemented by Mark Dickinson; :issue:`1811`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:787 +msgid "" +"Implicit coercion for complex numbers has been removed; the interpreter will " +"no longer ever attempt to call a :meth:`__coerce__` method on complex " +"objects. (Removed by Meador Inge and Mark Dickinson; :issue:`5211`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:791 +msgid "" +"The :meth:`str.format` method now supports automatic numbering of the " +"replacement fields. This makes using :meth:`str.format` more closely " +"resemble using ``%s`` formatting::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:800 +msgid "" +"The auto-numbering takes the fields from left to right, so the first ``{...}" +"`` specifier will use the first argument to :meth:`str.format`, the next " +"specifier will use the next argument, and so on. You can't mix auto-" +"numbering and explicit numbering -- either number all of your specifier " +"fields or none of them -- but you can mix auto-numbering and named fields, " +"as in the second example above. (Contributed by Eric Smith; :issue:`5237`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:807 +msgid "" +"Complex numbers now correctly support usage with :func:`format`, and default " +"to being right-aligned. Specifying a precision or comma-separation applies " +"to both the real and imaginary parts of the number, but a specified field " +"width and alignment is applied to the whole of the resulting ``1.5+3j`` " +"output. (Contributed by Eric Smith; :issue:`1588` and :issue:`7988`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:814 +msgid "" +"The 'F' format code now always formats its output using uppercase " +"characters, so it will now produce 'INF' and 'NAN'. (Contributed by Eric " +"Smith; :issue:`3382`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:818 +msgid "" +"A low-level change: the :meth:`object.__format__` method now triggers a :exc:" +"`PendingDeprecationWarning` if it's passed a format string, because the :" +"meth:`__format__` method for :class:`object` converts the object to a string " +"representation and formats that. Previously the method silently applied the " +"format string to the string representation, but that could hide mistakes in " +"Python code. If you're supplying formatting information such as an " +"alignment or precision, presumably you're expecting the formatting to be " +"applied in some object-specific way. (Fixed by Eric Smith; :issue:`7994`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:828 +msgid "" +"The :func:`int` and :func:`long` types gained a ``bit_length`` method that " +"returns the number of bits necessary to represent its argument in binary::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:843 +msgid "(Contributed by Fredrik Johansson and Victor Stinner; :issue:`3439`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:845 +msgid "" +"The :keyword:`import` statement will no longer try an absolute import if a " +"relative import (e.g. ``from .os import sep``) fails. This fixes a bug, but " +"could possibly break certain :keyword:`!import` statements that were only " +"working by accident. (Fixed by Meador Inge; :issue:`7902`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:851 +msgid "" +"It's now possible for a subclass of the built-in :class:`unicode` type to " +"override the :meth:`__unicode__` method. (Implemented by Victor Stinner; :" +"issue:`1583863`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:855 +msgid "" +"The :class:`bytearray` type's :meth:`~bytearray.translate` method now " +"accepts ``None`` as its first argument. (Fixed by Georg Brandl; :issue:" +"`4759`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:861 +msgid "" +"When using ``@classmethod`` and ``@staticmethod`` to wrap methods as class " +"or static methods, the wrapper object now exposes the wrapped function as " +"their :attr:`__func__` attribute. (Contributed by Amaury Forgeot d'Arc, " +"after a suggestion by George Sakkis; :issue:`5982`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:867 ../Doc/whatsnew/2.7.rst:2462 +msgid "" +"When a restricted set of attributes were set using ``__slots__``, deleting " +"an unset attribute would not raise :exc:`AttributeError` as you would " +"expect. Fixed by Benjamin Peterson; :issue:`7604`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:871 +msgid "" +"Two new encodings are now supported: \"cp720\", used primarily for Arabic " +"text; and \"cp858\", a variant of CP 850 that adds the euro symbol. (CP720 " +"contributed by Alexander Belchenko and Amaury Forgeot d'Arc in :issue:" +"`1616979`; CP858 contributed by Tim Hatch in :issue:`8016`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:877 +msgid "" +"The :class:`file` object will now set the :attr:`filename` attribute on the :" +"exc:`IOError` exception when trying to open a directory on POSIX platforms " +"(noted by Jan Kaliszewski; :issue:`4764`), and now explicitly checks for and " +"forbids writing to read-only file objects instead of trusting the C library " +"to catch and report the error (fixed by Stefan Krah; :issue:`5677`)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:884 +msgid "" +"The Python tokenizer now translates line endings itself, so the :func:" +"`compile` built-in function now accepts code using any line-ending " +"convention. Additionally, it no longer requires that the code end in a " +"newline." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:889 +msgid "" +"Extra parentheses in function definitions are illegal in Python 3.x, meaning " +"that you get a syntax error from ``def f((x)): pass``. In Python3-warning " +"mode, Python 2.7 will now warn about this odd usage. (Noted by James " +"Lingard; :issue:`7362`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:894 +msgid "" +"It's now possible to create weak references to old-style class objects. New-" +"style classes were always weak-referenceable. (Fixed by Antoine Pitrou; :" +"issue:`8268`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:898 +msgid "" +"When a module object is garbage-collected, the module's dictionary is now " +"only cleared if no one else is holding a reference to the dictionary (:issue:" +"`7140`)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:907 +msgid "Interpreter Changes" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:909 +msgid "" +"A new environment variable, :envvar:`PYTHONWARNINGS`, allows controlling " +"warnings. It should be set to a string containing warning settings, " +"equivalent to those used with the :option:`-W` switch, separated by commas. " +"(Contributed by Brian Curtin; :issue:`7301`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:915 +msgid "" +"For example, the following setting will print warnings every time they " +"occur, but turn warnings from the :mod:`Cookie` module into an error. (The " +"exact syntax for setting an environment variable varies across operating " +"systems and shells.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:928 +msgid "Optimizations" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:930 +msgid "Several performance enhancements have been added:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:932 +msgid "" +"A new opcode was added to perform the initial setup for :keyword:`with` " +"statements, looking up the :meth:`__enter__` and :meth:`__exit__` methods. " +"(Contributed by Benjamin Peterson.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:936 +msgid "" +"The garbage collector now performs better for one common usage pattern: when " +"many objects are being allocated without deallocating any of them. This " +"would previously take quadratic time for garbage collection, but now the " +"number of full garbage collections is reduced as the number of objects on " +"the heap grows. The new logic only performs a full garbage collection pass " +"when the middle generation has been collected 10 times and when the number " +"of survivor objects from the middle generation exceeds 10% of the number of " +"objects in the oldest generation. (Suggested by Martin von Löwis and " +"implemented by Antoine Pitrou; :issue:`4074`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:947 +msgid "" +"The garbage collector tries to avoid tracking simple containers which can't " +"be part of a cycle. In Python 2.7, this is now true for tuples and dicts " +"containing atomic types (such as ints, strings, etc.). Transitively, a dict " +"containing tuples of atomic types won't be tracked either. This helps reduce " +"the cost of each garbage collection by decreasing the number of objects to " +"be considered and traversed by the collector. (Contributed by Antoine " +"Pitrou; :issue:`4688`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:956 +msgid "" +"Long integers are now stored internally either in base 2**15 or in base " +"2**30, the base being determined at build time. Previously, they were " +"always stored in base 2**15. Using base 2**30 gives significant performance " +"improvements on 64-bit machines, but benchmark results on 32-bit machines " +"have been mixed. Therefore, the default is to use base 2**30 on 64-bit " +"machines and base 2**15 on 32-bit machines; on Unix, there's a new configure " +"option :option:`!--enable-big-digits` that can be used to override this " +"default." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:965 +msgid "" +"Apart from the performance improvements this change should be invisible to " +"end users, with one exception: for testing and debugging purposes there's a " +"new structseq :data:`sys.long_info` that provides information about the " +"internal format, giving the number of bits per digit and the size in bytes " +"of the C type used to store each digit::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:976 +msgid "(Contributed by Mark Dickinson; :issue:`4258`.)" +msgstr "(Contribution par Mark Dickinson; :issue:`4258`.)" + +#: ../Doc/whatsnew/2.7.rst:978 +msgid "" +"Another set of changes made long objects a few bytes smaller: 2 bytes " +"smaller on 32-bit systems and 6 bytes on 64-bit. (Contributed by Mark " +"Dickinson; :issue:`5260`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:982 +msgid "" +"The division algorithm for long integers has been made faster by tightening " +"the inner loop, doing shifts instead of multiplications, and fixing an " +"unnecessary extra iteration. Various benchmarks show speedups of between 50% " +"and 150% for long integer divisions and modulo operations. (Contributed by " +"Mark Dickinson; :issue:`5512`.) Bitwise operations are also significantly " +"faster (initial patch by Gregory Smith; :issue:`1087418`)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:991 +msgid "" +"The implementation of ``%`` checks for the left-side operand being a Python " +"string and special-cases it; this results in a 1--3% performance increase " +"for applications that frequently use ``%`` with strings, such as templating " +"libraries. (Implemented by Collin Winter; :issue:`5176`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:997 +msgid "" +"List comprehensions with an ``if`` condition are compiled into faster " +"bytecode. (Patch by Antoine Pitrou, back-ported to 2.7 by Jeffrey Yasskin; :" +"issue:`4715`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1001 +msgid "" +"Converting an integer or long integer to a decimal string was made faster by " +"special-casing base 10 instead of using a generalized conversion function " +"that supports arbitrary bases. (Patch by Gawain Bolton; :issue:`6713`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1006 +msgid "" +"The :meth:`split`, :meth:`replace`, :meth:`rindex`, :meth:`rpartition`, and :" +"meth:`rsplit` methods of string-like types (strings, Unicode strings, and :" +"class:`bytearray` objects) now use a fast reverse-search algorithm instead " +"of a character-by-character scan. This is sometimes faster by a factor of " +"10. (Added by Florent Xicluna; :issue:`7462` and :issue:`7622`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1013 +msgid "" +"The :mod:`pickle` and :mod:`cPickle` modules now automatically intern the " +"strings used for attribute names, reducing memory usage of the objects " +"resulting from unpickling. (Contributed by Jake McGuire; :issue:`5084`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1018 +msgid "" +"The :mod:`cPickle` module now special-cases dictionaries, nearly halving the " +"time required to pickle them. (Contributed by Collin Winter; :issue:`5670`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1025 +msgid "New and Improved Modules" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1027 +msgid "" +"As in every release, Python's standard library received a number of " +"enhancements and bug fixes. Here's a partial list of the most notable " +"changes, sorted alphabetically by module name. Consult the :file:`Misc/NEWS` " +"file in the source tree for a more complete list of changes, or look through " +"the Subversion logs for all the details." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1033 +msgid "" +"The :mod:`bdb` module's base debugging class :class:`~bdb.Bdb` gained a " +"feature for skipping modules. The constructor now takes an iterable " +"containing glob-style patterns such as ``django.*``; the debugger will not " +"step into stack frames from a module that matches one of these patterns. " +"(Contributed by Maru Newby after a suggestion by Senthil Kumaran; :issue:" +"`5142`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1041 +msgid "" +"The :mod:`binascii` module now supports the buffer API, so it can be used " +"with :class:`memoryview` instances and other similar buffer objects. " +"(Backported from 3.x by Florent Xicluna; :issue:`7703`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1045 +msgid "" +"Updated module: the :mod:`bsddb` module has been updated from 4.7.2devel9 to " +"version 4.8.4 of `the pybsddb package `__. The new version features better Python 3.x compatibility, " +"various bug fixes, and adds several new BerkeleyDB flags and methods. " +"(Updated by Jesús Cea Avión; :issue:`8156`. The pybsddb changelog can be " +"read at http://hg.jcea.es/pybsddb/file/tip/ChangeLog.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1053 +msgid "" +"The :mod:`bz2` module's :class:`~bz2.BZ2File` now supports the context " +"management protocol, so you can write ``with bz2.BZ2File(...) as f:``. " +"(Contributed by Hagen Fürstenau; :issue:`3860`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1057 +msgid "" +"New class: the :class:`~collections.Counter` class in the :mod:`collections` " +"module is useful for tallying data. :class:`~collections.Counter` instances " +"behave mostly like dictionaries but return zero for missing keys instead of " +"raising a :exc:`KeyError`:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1079 +msgid "" +"There are three additional :class:`~collections.Counter` methods. :meth:" +"`~collections.Counter.most_common` returns the N most common elements and " +"their counts. :meth:`~collections.Counter.elements` returns an iterator " +"over the contained elements, repeating each element as many times as its " +"count. :meth:`~collections.Counter.subtract` takes an iterable and subtracts " +"one for each element instead of adding; if the argument is a dictionary or " +"another :class:`Counter`, the counts are subtracted. ::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1102 +msgid "Contributed by Raymond Hettinger; :issue:`1696199`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1106 +msgid "" +"New class: :class:`~collections.OrderedDict` is described in the earlier " +"section :ref:`pep-0372`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1109 +msgid "" +"New method: The :class:`~collections.deque` data type now has a :meth:" +"`~collections.deque.count` method that returns the number of contained " +"elements equal to the supplied argument *x*, and a :meth:`~collections.deque." +"reverse` method that reverses the elements of the deque in-place. :class:" +"`~collections.deque` also exposes its maximum length as the read-only :attr:" +"`~collections.deque.maxlen` attribute. (Both features added by Raymond " +"Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1117 +msgid "" +"The :class:`~collections.namedtuple` class now has an optional *rename* " +"parameter. If *rename* is true, field names that are invalid because they've " +"been repeated or aren't legal Python identifiers will be renamed to legal " +"names that are derived from the field's position within the list of fields:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1128 +msgid "(Added by Raymond Hettinger; :issue:`1818`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1130 +msgid "" +"Finally, the :class:`~collections.Mapping` abstract base class now returns :" +"const:`NotImplemented` if a mapping is compared to another type that isn't " +"a :class:`Mapping`. (Fixed by Daniel Stutzbach; :issue:`8729`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1135 +msgid "" +"Constructors for the parsing classes in the :mod:`ConfigParser` module now " +"take an *allow_no_value* parameter, defaulting to false; if true, options " +"without values will be allowed. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1157 +msgid "(Contributed by Mats Kindahl; :issue:`7005`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1159 +msgid "" +"Deprecated function: :func:`contextlib.nested`, which allows handling more " +"than one context manager with a single :keyword:`with` statement, has been " +"deprecated, because the :keyword:`!with` statement now supports multiple " +"context managers." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1164 +msgid "" +"The :mod:`cookielib` module now ignores cookies that have an invalid version " +"field, one that doesn't contain an integer value. (Fixed by John J. Lee; :" +"issue:`3924`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1168 +msgid "" +"The :mod:`copy` module's :func:`~copy.deepcopy` function will now correctly " +"copy bound instance methods. (Implemented by Robert Collins; :issue:`1515`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1172 +msgid "" +"The :mod:`ctypes` module now always converts ``None`` to a C NULL pointer " +"for arguments declared as pointers. (Changed by Thomas Heller; :issue:" +"`4606`.) The underlying `libffi library `__ " +"has been updated to version 3.0.9, containing various fixes for different " +"platforms. (Updated by Matthias Klose; :issue:`8142`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1179 +msgid "" +"New method: the :mod:`datetime` module's :class:`~datetime.timedelta` class " +"gained a :meth:`~datetime.timedelta.total_seconds` method that returns the " +"number of seconds in the duration. (Contributed by Brian Quinlan; :issue:" +"`5788`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1183 +msgid "" +"New method: the :class:`~decimal.Decimal` class gained a :meth:`~decimal." +"Decimal.from_float` class method that performs an exact conversion of a " +"floating-point number to a :class:`~decimal.Decimal`. This exact conversion " +"strives for the closest decimal approximation to the floating-point " +"representation's value; the resulting decimal value will therefore still " +"include the inaccuracy, if any. For example, ``Decimal.from_float(0.1)`` " +"returns " +"``Decimal('0.1000000000000000055511151231257827021181583404541015625')``. " +"(Implemented by Raymond Hettinger; :issue:`4796`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1194 +msgid "" +"Comparing instances of :class:`~decimal.Decimal` with floating-point numbers " +"now produces sensible results based on the numeric values of the operands. " +"Previously such comparisons would fall back to Python's default rules for " +"comparing objects, which produced arbitrary results based on their type. " +"Note that you still cannot combine :class:`Decimal` and floating-point in " +"other operations such as addition, since you should be explicitly choosing " +"how to convert between float and :class:`~decimal.Decimal`. (Fixed by Mark " +"Dickinson; :issue:`2531`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1203 +msgid "" +"The constructor for :class:`~decimal.Decimal` now accepts floating-point " +"numbers (added by Raymond Hettinger; :issue:`8257`) and non-European Unicode " +"characters such as Arabic-Indic digits (contributed by Mark Dickinson; :" +"issue:`6595`)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1208 +msgid "" +"Most of the methods of the :class:`~decimal.Context` class now accept " +"integers as well as :class:`~decimal.Decimal` instances; the only exceptions " +"are the :meth:`~decimal.Context.canonical` and :meth:`~decimal.Context." +"is_canonical` methods. (Patch by Juan José Conti; :issue:`7633`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1213 +msgid "" +"When using :class:`~decimal.Decimal` instances with a string's :meth:`~str." +"format` method, the default alignment was previously left-alignment. This " +"has been changed to right-alignment, which is more sensible for numeric " +"types. (Changed by Mark Dickinson; :issue:`6857`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1218 +msgid "" +"Comparisons involving a signaling NaN value (or ``sNAN``) now signal :const:" +"`InvalidOperation` instead of silently returning a true or false value " +"depending on the comparison operator. Quiet NaN values (or ``NaN``) are now " +"hashable. (Fixed by Mark Dickinson; :issue:`7279`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1224 +msgid "" +"The :mod:`difflib` module now produces output that is more compatible with " +"modern :command:`diff`/:command:`patch` tools through one small change, " +"using a tab character instead of spaces as a separator in the header giving " +"the filename. (Fixed by Anatoly Techtonik; :issue:`7585`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1230 +msgid "" +"The Distutils ``sdist`` command now always regenerates the :file:`MANIFEST` " +"file, since even if the :file:`MANIFEST.in` or :file:`setup.py` files " +"haven't been modified, the user might have created some new files that " +"should be included. (Fixed by Tarek Ziadé; :issue:`8688`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1236 +msgid "" +"The :mod:`doctest` module's :const:`IGNORE_EXCEPTION_DETAIL` flag will now " +"ignore the name of the module containing the exception being tested. (Patch " +"by Lennart Regebro; :issue:`7490`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1240 +msgid "" +"The :mod:`email` module's :class:`~email.message.Message` class will now " +"accept a Unicode-valued payload, automatically converting the payload to the " +"encoding specified by :attr:`output_charset`. (Added by R. David Murray; :" +"issue:`1368247`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1245 +msgid "" +"The :class:`~fractions.Fraction` class now accepts a single float or :class:" +"`~decimal.Decimal` instance, or two rational numbers, as arguments to its " +"constructor. (Implemented by Mark Dickinson; rationals added in :issue:" +"`5812`, and float/decimal in :issue:`8294`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1251 +msgid "" +"Ordering comparisons (``<``, ``<=``, ``>``, ``>=``) between fractions and " +"complex numbers now raise a :exc:`TypeError`. This fixes an oversight, " +"making the :class:`~fractions.Fraction` match the other numeric types." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1258 +msgid "" +"New class: :class:`~ftplib.FTP_TLS` in the :mod:`ftplib` module provides " +"secure FTP connections using TLS encapsulation of authentication as well as " +"subsequent control and data transfers. (Contributed by Giampaolo Rodola; :" +"issue:`2054`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1264 +msgid "" +"The :meth:`~ftplib.FTP.storbinary` method for binary uploads can now restart " +"uploads thanks to an added *rest* parameter (patch by Pablo Mouzo; :issue:" +"`6845`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1268 +msgid "" +"New class decorator: :func:`~functools.total_ordering` in the :mod:" +"`functools` module takes a class that defines an :meth:`__eq__` method and " +"one of :meth:`__lt__`, :meth:`__le__`, :meth:`__gt__`, or :meth:`__ge__`, " +"and generates the missing comparison methods. Since the :meth:`__cmp__` " +"method is being deprecated in Python 3.x, this decorator makes it easier to " +"define ordered classes. (Added by Raymond Hettinger; :issue:`5479`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1276 +msgid "" +"New function: :func:`~functools.cmp_to_key` will take an old-style " +"comparison function that expects two arguments and return a new callable " +"that can be used as the *key* parameter to functions such as :func:" +"`sorted`, :func:`min` and :func:`max`, etc. The primary intended use is to " +"help with making code compatible with Python 3.x. (Added by Raymond " +"Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1283 +msgid "" +"New function: the :mod:`gc` module's :func:`~gc.is_tracked` returns true if " +"a given instance is tracked by the garbage collector, false otherwise. " +"(Contributed by Antoine Pitrou; :issue:`4688`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1287 +msgid "" +"The :mod:`gzip` module's :class:`~gzip.GzipFile` now supports the context " +"management protocol, so you can write ``with gzip.GzipFile(...) as f:`` " +"(contributed by Hagen Fürstenau; :issue:`3860`), and it now implements the :" +"class:`io.BufferedIOBase` ABC, so you can wrap it with :class:`io." +"BufferedReader` for faster processing (contributed by Nir Aides; :issue:" +"`7471`). It's also now possible to override the modification time recorded " +"in a gzipped file by providing an optional timestamp to the constructor. " +"(Contributed by Jacques Frechet; :issue:`4272`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1297 +msgid "" +"Files in gzip format can be padded with trailing zero bytes; the :mod:`gzip` " +"module will now consume these trailing bytes. (Fixed by Tadek Pietraszek " +"and Brian Curtin; :issue:`2846`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1301 +msgid "" +"New attribute: the :mod:`hashlib` module now has an :attr:`~hashlib.hashlib." +"algorithms` attribute containing a tuple naming the supported algorithms. In " +"Python 2.7, ``hashlib.algorithms`` contains ``('md5', 'sha1', 'sha224', " +"'sha256', 'sha384', 'sha512')``. (Contributed by Carl Chenet; :issue:`7418`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1307 +msgid "" +"The default :class:`~httplib.HTTPResponse` class used by the :mod:`httplib` " +"module now supports buffering, resulting in much faster reading of HTTP " +"responses. (Contributed by Kristján Valur Jónsson; :issue:`4879`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1311 +msgid "" +"The :class:`~httplib.HTTPConnection` and :class:`~httplib.HTTPSConnection` " +"classes now support a *source_address* parameter, a ``(host, port)`` 2-tuple " +"giving the source address that will be used for the connection. (Contributed " +"by Eldon Ziegler; :issue:`3972`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1316 +msgid "" +"The :mod:`ihooks` module now supports relative imports. Note that :mod:" +"`ihooks` is an older module for customizing imports, superseded by the :mod:" +"`imputil` module added in Python 2.0. (Relative import support added by Neil " +"Schemenauer.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1323 +msgid "" +"The :mod:`imaplib` module now supports IPv6 addresses. (Contributed by Derek " +"Morr; :issue:`1655`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1326 +msgid "" +"New function: the :mod:`inspect` module's :func:`~inspect.getcallargs` takes " +"a callable and its positional and keyword arguments, and figures out which " +"of the callable's parameters will receive each argument, returning a " +"dictionary mapping argument names to their values. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1343 +msgid "Contributed by George Sakkis; :issue:`3135`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1345 +msgid "" +"Updated module: The :mod:`io` library has been upgraded to the version " +"shipped with Python 3.1. For 3.1, the I/O library was entirely rewritten in " +"C and is 2 to 20 times faster depending on the task being performed. The " +"original Python version was renamed to the :mod:`_pyio` module." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1350 +msgid "" +"One minor resulting change: the :class:`io.TextIOBase` class now has an :" +"attr:`errors` attribute giving the error setting used for encoding and " +"decoding errors (one of ``'strict'``, ``'replace'``, ``'ignore'``)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1355 +msgid "" +"The :class:`io.FileIO` class now raises an :exc:`OSError` when passed an " +"invalid file descriptor. (Implemented by Benjamin Peterson; :issue:" +"`4991`.) The :meth:`~io.IOBase.truncate` method now preserves the file " +"position; previously it would change the file position to the end of the new " +"file. (Fixed by Pascal Chambon; :issue:`6939`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1361 +msgid "" +"New function: ``itertools.compress(data, selectors)`` takes two iterators. " +"Elements of *data* are returned if the corresponding value in *selectors* is " +"true::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1370 +msgid "" +"New function: ``itertools.combinations_with_replacement(iter, r)`` returns " +"all the possible *r*-length combinations of elements from the iterable " +"*iter*. Unlike :func:`~itertools.combinations`, individual elements can be " +"repeated in the generated combinations::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1379 +msgid "" +"Note that elements are treated as unique depending on their position in the " +"input, not their actual values." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1382 +msgid "" +"The :func:`itertools.count` function now has a *step* argument that allows " +"incrementing by values other than 1. :func:`~itertools.count` also now " +"allows keyword arguments, and using non-integer values such as floats or :" +"class:`~decimal.Decimal` instances. (Implemented by Raymond Hettinger; :" +"issue:`5032`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1388 +msgid "" +":func:`itertools.combinations` and :func:`itertools.product` previously " +"raised :exc:`ValueError` for values of *r* larger than the input iterable. " +"This was deemed a specification error, so they now return an empty " +"iterator. (Fixed by Raymond Hettinger; :issue:`4816`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1393 +msgid "" +"Updated module: The :mod:`json` module was upgraded to version 2.0.9 of the " +"simplejson package, which includes a C extension that makes encoding and " +"decoding faster. (Contributed by Bob Ippolito; :issue:`4136`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1398 +msgid "" +"To support the new :class:`collections.OrderedDict` type, :func:`json.load` " +"now has an optional *object_pairs_hook* parameter that will be called with " +"any object literal that decodes to a list of pairs. (Contributed by Raymond " +"Hettinger; :issue:`5381`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1403 +msgid "" +"The :mod:`mailbox` module's :class:`~mailbox.Maildir` class now records the " +"timestamp on the directories it reads, and only re-reads them if the " +"modification time has subsequently changed. This improves performance by " +"avoiding unneeded directory scans. (Fixed by A.M. Kuchling and Antoine " +"Pitrou; :issue:`1607951`, :issue:`6896`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1409 +msgid "" +"New functions: the :mod:`math` module gained :func:`~math.erf` and :func:" +"`~math.erfc` for the error function and the complementary error function, :" +"func:`~math.expm1` which computes ``e**x - 1`` with more precision than " +"using :func:`~math.exp` and subtracting 1, :func:`~math.gamma` for the Gamma " +"function, and :func:`~math.lgamma` for the natural log of the Gamma " +"function. (Contributed by Mark Dickinson and nirinA raseliarison; :issue:" +"`3366`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1417 +msgid "" +"The :mod:`multiprocessing` module's :class:`Manager*` classes can now be " +"passed a callable that will be called whenever a subprocess is started, " +"along with a set of arguments that will be passed to the callable. " +"(Contributed by lekma; :issue:`5585`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1423 +msgid "" +"The :class:`~multiprocessing.Pool` class, which controls a pool of worker " +"processes, now has an optional *maxtasksperchild* parameter. Worker " +"processes will perform the specified number of tasks and then exit, causing " +"the :class:`~multiprocessing.Pool` to start a new worker. This is useful if " +"tasks may leak memory or other resources, or if some tasks will cause the " +"worker to become very large. (Contributed by Charles Cazabon; :issue:`6963`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1431 +msgid "" +"The :mod:`nntplib` module now supports IPv6 addresses. (Contributed by Derek " +"Morr; :issue:`1664`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1434 +msgid "" +"New functions: the :mod:`os` module wraps the following POSIX system calls: :" +"func:`~os.getresgid` and :func:`~os.getresuid`, which return the real, " +"effective, and saved GIDs and UIDs; :func:`~os.setresgid` and :func:`~os." +"setresuid`, which set real, effective, and saved GIDs and UIDs to new " +"values; :func:`~os.initgroups`, which initialize the group access list for " +"the current process. (GID/UID functions contributed by Travis H.; :issue:" +"`6508`. Support for initgroups added by Jean-Paul Calderone; :issue:`7333`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1444 +msgid "" +"The :func:`os.fork` function now re-initializes the import lock in the child " +"process; this fixes problems on Solaris when :func:`~os.fork` is called from " +"a thread. (Fixed by Zsolt Cserna; :issue:`7242`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1448 +msgid "" +"In the :mod:`os.path` module, the :func:`~os.path.normpath` and :func:`~os." +"path.abspath` functions now preserve Unicode; if their input path is a " +"Unicode string, the return value is also a Unicode string. (:meth:`~os.path." +"normpath` fixed by Matt Giuca in :issue:`5827`; :meth:`~os.path.abspath` " +"fixed by Ezio Melotti in :issue:`3426`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1454 +msgid "" +"The :mod:`pydoc` module now has help for the various symbols that Python " +"uses. You can now do ``help('<<')`` or ``help('@')``, for example. " +"(Contributed by David Laban; :issue:`4739`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1458 +msgid "" +"The :mod:`re` module's :func:`~re.split`, :func:`~re.sub`, and :func:`~re." +"subn` now accept an optional *flags* argument, for consistency with the " +"other functions in the module. (Added by Gregory P. Smith.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1462 +msgid "" +"New function: :func:`~runpy.run_path` in the :mod:`runpy` module will " +"execute the code at a provided *path* argument. *path* can be the path of a " +"Python source file (:file:`example.py`), a compiled bytecode file (:file:" +"`example.pyc`), a directory (:file:`./package/`), or a zip archive (:file:" +"`example.zip`). If a directory or zip path is provided, it will be added to " +"the front of ``sys.path`` and the module :mod:`__main__` will be imported. " +"It's expected that the directory or zip contains a :file:`__main__.py`; if " +"it doesn't, some other :file:`__main__.py` might be imported from a location " +"later in ``sys.path``. This makes more of the machinery of :mod:`runpy` " +"available to scripts that want to mimic the way Python's command line " +"processes an explicit path name. (Added by Nick Coghlan; :issue:`6816`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1476 +msgid "" +"New function: in the :mod:`shutil` module, :func:`~shutil.make_archive` " +"takes a filename, archive type (zip or tar-format), and a directory path, " +"and creates an archive containing the directory's contents. (Added by Tarek " +"Ziadé.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1481 +msgid "" +":mod:`shutil`'s :func:`~shutil.copyfile` and :func:`~shutil.copytree` " +"functions now raise a :exc:`~shutil.SpecialFileError` exception when asked " +"to copy a named pipe. Previously the code would treat named pipes like a " +"regular file by opening them for reading, and this would block " +"indefinitely. (Fixed by Antoine Pitrou; :issue:`3002`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1487 +msgid "" +"The :mod:`signal` module no longer re-installs the signal handler unless " +"this is truly necessary, which fixes a bug that could make it impossible to " +"catch the EINTR signal robustly. (Fixed by Charles-Francois Natali; :issue:" +"`8354`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1492 +msgid "" +"New functions: in the :mod:`site` module, three new functions return various " +"site- and user-specific paths. :func:`~site.getsitepackages` returns a list " +"containing all global site-packages directories, :func:`~site." +"getusersitepackages` returns the path of the user's site-packages directory, " +"and :func:`~site.getuserbase` returns the value of the :envvar:`USER_BASE` " +"environment variable, giving the path to a directory that can be used to " +"store data. (Contributed by Tarek Ziadé; :issue:`6693`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1503 +msgid "" +"The :mod:`site` module now reports exceptions occurring when the :mod:" +"`sitecustomize` module is imported, and will no longer catch and swallow " +"the :exc:`KeyboardInterrupt` exception. (Fixed by Victor Stinner; :issue:" +"`3137`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1508 +msgid "" +"The :func:`~socket.create_connection` function gained a *source_address* " +"parameter, a ``(host, port)`` 2-tuple giving the source address that will be " +"used for the connection. (Contributed by Eldon Ziegler; :issue:`3972`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1513 +msgid "" +"The :meth:`~socket.socket.recv_into` and :meth:`~socket.socket." +"recvfrom_into` methods will now write into objects that support the buffer " +"API, most usefully the :class:`bytearray` and :class:`memoryview` objects. " +"(Implemented by Antoine Pitrou; :issue:`8104`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1518 +msgid "" +"The :mod:`SocketServer` module's :class:`~SocketServer.TCPServer` class now " +"supports socket timeouts and disabling the Nagle algorithm. The :attr:" +"`~SocketServer.TCPServer.disable_nagle_algorithm` class attribute defaults " +"to ``False``; if overridden to be true, new request connections will have " +"the TCP_NODELAY option set to prevent buffering many small sends into a " +"single TCP packet. The :attr:`~SocketServer.BaseServer.timeout` class " +"attribute can hold a timeout in seconds that will be applied to the request " +"socket; if no request is received within that time, :meth:`~SocketServer." +"BaseServer.handle_timeout` will be called and :meth:`~SocketServer." +"BaseServer.handle_request` will return. (Contributed by Kristján Valur " +"Jónsson; :issue:`6192` and :issue:`6267`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1530 +msgid "" +"Updated module: the :mod:`sqlite3` module has been updated to version 2.6.0 " +"of the `pysqlite package `__. Version " +"2.6.0 includes a number of bugfixes, and adds the ability to load SQLite " +"extensions from shared libraries. Call the ``enable_load_extension(True)`` " +"method to enable extensions, and then call :meth:`~sqlite3.Connection." +"load_extension` to load a particular shared library. (Updated by Gerhard " +"Häring.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1537 +msgid "" +"The :mod:`ssl` module's :class:`~ssl.SSLSocket` objects now support the " +"buffer API, which fixed a test suite failure (fix by Antoine Pitrou; :issue:" +"`7133`) and automatically set OpenSSL's :c:macro:`SSL_MODE_AUTO_RETRY`, " +"which will prevent an error code being returned from :meth:`recv` operations " +"that trigger an SSL renegotiation (fix by Antoine Pitrou; :issue:`8222`)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1544 +msgid "" +"The :func:`ssl.wrap_socket` constructor function now takes a *ciphers* " +"argument that's a string listing the encryption algorithms to be allowed; " +"the format of the string is described `in the OpenSSL documentation `__. " +"(Added by Antoine Pitrou; :issue:`8322`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1551 +msgid "" +"Another change makes the extension load all of OpenSSL's ciphers and digest " +"algorithms so that they're all available. Some SSL certificates couldn't be " +"verified, reporting an \"unknown algorithm\" error. (Reported by Beda " +"Kosata, and fixed by Antoine Pitrou; :issue:`8484`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1557 +msgid "" +"The version of OpenSSL being used is now available as the module attributes :" +"data:`ssl.OPENSSL_VERSION` (a string), :data:`ssl.OPENSSL_VERSION_INFO` (a 5-" +"tuple), and :data:`ssl.OPENSSL_VERSION_NUMBER` (an integer). (Added by " +"Antoine Pitrou; :issue:`8321`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1563 +msgid "" +"The :mod:`struct` module will no longer silently ignore overflow errors when " +"a value is too large for a particular integer format code (one of " +"``bBhHiIlLqQ``); it now always raises a :exc:`struct.error` exception. " +"(Changed by Mark Dickinson; :issue:`1523`.) The :func:`~struct.pack` " +"function will also attempt to use :meth:`__index__` to convert and pack non-" +"integers before trying the :meth:`__int__` method or reporting an error. " +"(Changed by Mark Dickinson; :issue:`8300`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1572 +msgid "" +"New function: the :mod:`subprocess` module's :func:`~subprocess." +"check_output` runs a command with a specified set of arguments and returns " +"the command's output as a string when the command runs without error, or " +"raises a :exc:`~subprocess.CalledProcessError` exception otherwise." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1587 +msgid "(Contributed by Gregory P. Smith.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1589 +msgid "" +"The :mod:`subprocess` module will now retry its internal system calls on " +"receiving an :const:`EINTR` signal. (Reported by several people; final " +"patch by Gregory P. Smith in :issue:`1068268`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1593 +msgid "" +"New function: :func:`~symtable.Symbol.is_declared_global` in the :mod:" +"`symtable` module returns true for variables that are explicitly declared to " +"be global, false for ones that are implicitly global. (Contributed by Jeremy " +"Hylton.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1598 ../Doc/whatsnew/2.7.rst:2496 +msgid "" +"The :mod:`syslog` module will now use the value of ``sys.argv[0]`` as the " +"identifier instead of the previous default value of ``'python'``. (Changed " +"by Sean Reifschneider; :issue:`8451`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1602 +msgid "" +"The ``sys.version_info`` value is now a named tuple, with attributes named :" +"attr:`major`, :attr:`minor`, :attr:`micro`, :attr:`releaselevel`, and :attr:" +"`serial`. (Contributed by Ross Light; :issue:`4285`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1607 +msgid "" +":func:`sys.getwindowsversion` also returns a named tuple, with attributes " +"named :attr:`major`, :attr:`minor`, :attr:`build`, :attr:`platform`, :attr:" +"`service_pack`, :attr:`service_pack_major`, :attr:`service_pack_minor`, :" +"attr:`suite_mask`, and :attr:`product_type`. (Contributed by Brian Curtin; :" +"issue:`7766`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1613 ../Doc/whatsnew/2.7.rst:2500 +msgid "" +"The :mod:`tarfile` module's default error handling has changed, to no longer " +"suppress fatal errors. The default error level was previously 0, which " +"meant that errors would only result in a message being written to the debug " +"log, but because the debug log is not activated by default, these errors go " +"unnoticed. The default error level is now 1, which raises an exception if " +"there's an error. (Changed by Lars Gustäbel; :issue:`7357`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1621 +msgid "" +":mod:`tarfile` now supports filtering the :class:`~tarfile.TarInfo` objects " +"being added to a tar file. When you call :meth:`~tarfile.TarFile.add`, you " +"may supply an optional *filter* argument that's a callable. The *filter* " +"callable will be passed the :class:`~tarfile.TarInfo` for every file being " +"added, and can modify and return it. If the callable returns ``None``, the " +"file will be excluded from the resulting archive. This is more powerful " +"than the existing *exclude* argument, which has therefore been deprecated. " +"(Added by Lars Gustäbel; :issue:`6856`.) The :class:`~tarfile.TarFile` class " +"also now supports the context management protocol. (Added by Lars Gustäbel; :" +"issue:`7232`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1633 +msgid "" +"The :meth:`~threading.Event.wait` method of the :class:`threading.Event` " +"class now returns the internal flag on exit. This means the method will " +"usually return true because :meth:`~threading.Event.wait` is supposed to " +"block until the internal flag becomes true. The return value will only be " +"false if a timeout was provided and the operation timed out. (Contributed by " +"Tim Lesher; :issue:`1674032`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1640 +msgid "" +"The Unicode database provided by the :mod:`unicodedata` module is now used " +"internally to determine which characters are numeric, whitespace, or " +"represent line breaks. The database also includes information from the :" +"file:`Unihan.txt` data file (patch by Anders Chrigström and Amaury Forgeot " +"d'Arc; :issue:`1571184`) and has been updated to version 5.2.0 (updated by " +"Florent Xicluna; :issue:`8024`)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1648 ../Doc/whatsnew/2.7.rst:2508 +msgid "" +"The :mod:`urlparse` module's :func:`~urlparse.urlsplit` now handles unknown " +"URL schemes in a fashion compliant with :rfc:`3986`: if the URL is of the " +"form ``\"://...\"``, the text before the ``://`` is treated as " +"the scheme, even if it's a made-up scheme that the module doesn't know " +"about. This change may break code that worked around the old behaviour. " +"For example, Python 2.6.4 or 2.5 will return the following:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1663 ../Doc/whatsnew/2.7.rst:2523 +msgid "Python 2.7 (and Python 2.6.5) will return:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1672 ../Doc/whatsnew/2.7.rst:2532 +msgid "" +"(Python 2.7 actually produces slightly different output, since it returns a " +"named tuple instead of a standard tuple.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1675 +msgid "" +"The :mod:`urlparse` module also supports IPv6 literal addresses as defined " +"by :rfc:`2732` (contributed by Senthil Kumaran; :issue:`2987`)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1685 +msgid "" +"New class: the :class:`~weakref.WeakSet` class in the :mod:`weakref` module " +"is a set that only holds weak references to its elements; elements will be " +"removed once there are no references pointing to them. (Originally " +"implemented in Python 3.x by Raymond Hettinger, and backported to 2.7 by " +"Michael Foord.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1691 +msgid "" +"The ElementTree library, :mod:`xml.etree`, no longer escapes ampersands and " +"angle brackets when outputting an XML processing instruction (which looks " +"like ````) or comment (which looks like " +"````). (Patch by Neil Muller; :issue:`2746`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1697 +msgid "" +"The XML-RPC client and server, provided by the :mod:`xmlrpclib` and :mod:" +"`SimpleXMLRPCServer` modules, have improved performance by supporting " +"HTTP/1.1 keep-alive and by optionally using gzip encoding to compress the " +"XML being exchanged. The gzip compression is controlled by the :attr:" +"`encode_threshold` attribute of :class:`SimpleXMLRPCRequestHandler`, which " +"contains a size in bytes; responses larger than this will be compressed. " +"(Contributed by Kristján Valur Jónsson; :issue:`6267`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1706 +msgid "" +"The :mod:`zipfile` module's :class:`~zipfile.ZipFile` now supports the " +"context management protocol, so you can write ``with zipfile.ZipFile(...) as " +"f:``. (Contributed by Brian Curtin; :issue:`5511`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1710 +msgid "" +":mod:`zipfile` now also supports archiving empty directories and extracts " +"them correctly. (Fixed by Kuba Wieczorek; :issue:`4710`.) Reading files out " +"of an archive is faster, and interleaving :meth:`~zipfile.ZipFile.read` and :" +"meth:`~zipfile.ZipFile.readline` now works correctly. (Contributed by Nir " +"Aides; :issue:`7610`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1716 +msgid "" +"The :func:`~zipfile.is_zipfile` function now accepts a file object, in " +"addition to the path names accepted in earlier versions. (Contributed by " +"Gabriel Genellina; :issue:`4756`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1720 +msgid "" +"The :meth:`~zipfile.ZipFile.writestr` method now has an optional " +"*compress_type* parameter that lets you override the default compression " +"method specified in the :class:`~zipfile.ZipFile` constructor. (Contributed " +"by Ronald Oussoren; :issue:`6003`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1733 +msgid "New module: importlib" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1735 +msgid "" +"Python 3.1 includes the :mod:`importlib` package, a re-implementation of the " +"logic underlying Python's :keyword:`import` statement. :mod:`importlib` is " +"useful for implementors of Python interpreters and to users who wish to " +"write new importers that can participate in the import process. Python 2.7 " +"doesn't contain the complete :mod:`importlib` package, but instead has a " +"tiny subset that contains a single function, :func:`~importlib." +"import_module`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1743 +msgid "" +"``import_module(name, package=None)`` imports a module. *name* is a string " +"containing the module or package's name. It's possible to do relative " +"imports by providing a string that begins with a ``.`` character, such as " +"``..utils.errors``. For relative imports, the *package* argument must be " +"provided and is the name of the package that will be used as the anchor for " +"the relative import. :func:`~importlib.import_module` both inserts the " +"imported module into ``sys.modules`` and returns the module object." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1752 +msgid "Here are some examples::" +msgstr "Voici quelques exemples :" + +#: ../Doc/whatsnew/2.7.rst:1763 +msgid "" +":mod:`importlib` was implemented by Brett Cannon and introduced in Python " +"3.1." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1768 +msgid "New module: sysconfig" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1770 +msgid "" +"The :mod:`sysconfig` module has been pulled out of the Distutils package, " +"becoming a new top-level module in its own right. :mod:`sysconfig` provides " +"functions for getting information about Python's build process: compiler " +"switches, installation paths, the platform name, and whether Python is " +"running from its source directory." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1777 +msgid "Some of the functions in the module are:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1779 +msgid "" +":func:`~sysconfig.get_config_var` returns variables from Python's Makefile " +"and the :file:`pyconfig.h` file." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1781 +msgid "" +":func:`~sysconfig.get_config_vars` returns a dictionary containing all of " +"the configuration variables." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1783 +msgid "" +":func:`~sysconfig.get_path` returns the configured path for a particular " +"type of module: the standard library, site-specific modules, platform-" +"specific modules, etc." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1786 +msgid "" +":func:`~sysconfig.is_python_build` returns true if you're running a binary " +"from a Python source tree, and false otherwise." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1789 +msgid "" +"Consult the :mod:`sysconfig` documentation for more details and for a " +"complete list of functions." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1792 +msgid "" +"The Distutils package and :mod:`sysconfig` are now maintained by Tarek " +"Ziadé, who has also started a Distutils2 package (source repository at " +"https://hg.python.org/distutils2/) for developing a next-generation version " +"of Distutils." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1799 +msgid "ttk: Themed Widgets for Tk" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1801 +msgid "" +"Tcl/Tk 8.5 includes a set of themed widgets that re-implement basic Tk " +"widgets but have a more customizable appearance and can therefore more " +"closely resemble the native platform's widgets. This widget set was " +"originally called Tile, but was renamed to Ttk (for \"themed Tk\") on being " +"added to Tcl/Tck release 8.5." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1807 +msgid "" +"To learn more, read the :mod:`ttk` module documentation. You may also wish " +"to read the Tcl/Tk manual page describing the Ttk theme engine, available at " +"https://www.tcl.tk/man/tcl8.5/TkCmd/ttk_intro.htm. Some screenshots of the " +"Python/Ttk code in use are at https://code.google.com/archive/p/python-ttk/" +"wikis/Screenshots.wiki." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1814 +msgid "" +"The :mod:`ttk` module was written by Guilherme Polo and added in :issue:" +"`2983`. An alternate version called ``Tile.py``, written by Martin Franklin " +"and maintained by Kevin Walzer, was proposed for inclusion in :issue:`2618`, " +"but the authors argued that Guilherme Polo's work was more comprehensive." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1824 +msgid "Updated module: unittest" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1826 +msgid "" +"The :mod:`unittest` module was greatly enhanced; many new features were " +"added. Most of these features were implemented by Michael Foord, unless " +"otherwise noted. The enhanced version of the module is downloadable " +"separately for use with Python versions 2.4 to 2.6, packaged as the :mod:" +"`unittest2` package, from https://pypi.org/project/unittest2." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1833 +msgid "" +"When used from the command line, the module can automatically discover " +"tests. It's not as fancy as `py.test `__ or `nose " +"`__, but provides a simple way to run tests " +"kept within a set of package directories. For example, the following " +"command will search the :file:`test/` subdirectory for any importable test " +"files named ``test*.py``::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1842 +msgid "" +"Consult the :mod:`unittest` module documentation for more details. " +"(Developed in :issue:`6001`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1845 +msgid "The :func:`~unittest.main` function supports some other new options:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1847 +msgid "" +":option:`-b ` or :option:`!--buffer` will buffer the standard " +"output and standard error streams during each test. If the test passes, any " +"resulting output will be discarded; on failure, the buffered output will be " +"displayed." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1852 +msgid "" +":option:`-c ` or :option:`!--catch` will cause the control-C " +"interrupt to be handled more gracefully. Instead of interrupting the test " +"process immediately, the currently running test will be completed and then " +"the partial results up to the interruption will be reported. If you're " +"impatient, a second press of control-C will cause an immediate interruption." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1859 +msgid "" +"This control-C handler tries to avoid causing problems when the code being " +"tested or the tests being run have defined a signal handler of their own, by " +"noticing that a signal handler was already set and calling it. If this " +"doesn't work for you, there's a :func:`~unittest.removeHandler` decorator " +"that can be used to mark tests that should have the control-C handling " +"disabled." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1866 +msgid "" +":option:`-f ` or :option:`!--failfast` makes test execution " +"stop immediately when a test fails instead of continuing to execute further " +"tests. (Suggested by Cliff Dyer and implemented by Michael Foord; :issue:" +"`8074`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1871 +msgid "" +"The progress messages now show 'x' for expected failures and 'u' for " +"unexpected successes when run in verbose mode. (Contributed by Benjamin " +"Peterson.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1875 +msgid "" +"Test cases can raise the :exc:`~unittest.SkipTest` exception to skip a test " +"(:issue:`1034053`)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1878 +msgid "" +"The error messages for :meth:`~unittest.TestCase.assertEqual`, :meth:" +"`~unittest.TestCase.assertTrue`, and :meth:`~unittest.TestCase.assertFalse` " +"failures now provide more information. If you set the :attr:`~unittest." +"TestCase.longMessage` attribute of your :class:`~unittest.TestCase` classes " +"to true, both the standard error message and any additional message you " +"provide will be printed for failures. (Added by Michael Foord; :issue:" +"`5663`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1885 +msgid "" +"The :meth:`~unittest.TestCase.assertRaises` method now returns a context " +"handler when called without providing a callable object to run. For " +"example, you can write this::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1892 +msgid "(Implemented by Antoine Pitrou; :issue:`4444`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1896 +msgid "" +"Module- and class-level setup and teardown fixtures are now supported. " +"Modules can contain :func:`~unittest.setUpModule` and :func:`~unittest." +"tearDownModule` functions. Classes can have :meth:`~unittest.TestCase." +"setUpClass` and :meth:`~unittest.TestCase.tearDownClass` methods that must " +"be defined as class methods (using ``@classmethod`` or equivalent). These " +"functions and methods are invoked when the test runner switches to a test " +"case in a different module or class." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1904 +msgid "" +"The methods :meth:`~unittest.TestCase.addCleanup` and :meth:`~unittest." +"TestCase.doCleanups` were added. :meth:`~unittest.TestCase.addCleanup` lets " +"you add cleanup functions that will be called unconditionally (after :meth:" +"`~unittest.TestCase.setUp` if :meth:`~unittest.TestCase.setUp` fails, " +"otherwise after :meth:`~unittest.TestCase.tearDown`). This allows for much " +"simpler resource allocation and deallocation during tests (:issue:`5679`)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1912 +msgid "" +"A number of new methods were added that provide more specialized tests. " +"Many of these methods were written by Google engineers for use in their test " +"suites; Gregory P. Smith, Michael Foord, and GvR worked on merging them into " +"Python's version of :mod:`unittest`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1917 +msgid "" +":meth:`~unittest.TestCase.assertIsNone` and :meth:`~unittest.TestCase." +"assertIsNotNone` take one expression and verify that the result is or is not " +"``None``." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1920 +msgid "" +":meth:`~unittest.TestCase.assertIs` and :meth:`~unittest.TestCase." +"assertIsNot` take two values and check whether the two values evaluate to " +"the same object or not. (Added by Michael Foord; :issue:`2578`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1924 +msgid "" +":meth:`~unittest.TestCase.assertIsInstance` and :meth:`~unittest.TestCase." +"assertNotIsInstance` check whether the resulting object is an instance of a " +"particular class, or of one of a tuple of classes. (Added by Georg Brandl; :" +"issue:`7031`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1929 +msgid "" +":meth:`~unittest.TestCase.assertGreater`, :meth:`~unittest.TestCase." +"assertGreaterEqual`, :meth:`~unittest.TestCase.assertLess`, and :meth:" +"`~unittest.TestCase.assertLessEqual` compare two quantities." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1933 +msgid "" +":meth:`~unittest.TestCase.assertMultiLineEqual` compares two strings, and if " +"they're not equal, displays a helpful comparison that highlights the " +"differences in the two strings. This comparison is now used by default when " +"Unicode strings are compared with :meth:`~unittest.TestCase.assertEqual`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1938 +msgid "" +":meth:`~unittest.TestCase.assertRegexpMatches` and :meth:`~unittest.TestCase." +"assertNotRegexpMatches` checks whether the first argument is a string " +"matching or not matching the regular expression provided as the second " +"argument (:issue:`8038`)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1943 +msgid "" +":meth:`~unittest.TestCase.assertRaisesRegexp` checks whether a particular " +"exception is raised, and then also checks that the string representation of " +"the exception matches the provided regular expression." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1947 +msgid "" +":meth:`~unittest.TestCase.assertIn` and :meth:`~unittest.TestCase." +"assertNotIn` tests whether *first* is or is not in *second*." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1950 +msgid "" +":meth:`~unittest.TestCase.assertItemsEqual` tests whether two provided " +"sequences contain the same elements." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1953 +msgid "" +":meth:`~unittest.TestCase.assertSetEqual` compares whether two sets are " +"equal, and only reports the differences between the sets in case of error." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1956 +msgid "" +"Similarly, :meth:`~unittest.TestCase.assertListEqual` and :meth:`~unittest." +"TestCase.assertTupleEqual` compare the specified types and explain any " +"differences without necessarily printing their full values; these methods " +"are now used by default when comparing lists and tuples using :meth:" +"`~unittest.TestCase.assertEqual`. More generally, :meth:`~unittest.TestCase." +"assertSequenceEqual` compares two sequences and can optionally check whether " +"both sequences are of a particular type." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1964 +msgid "" +":meth:`~unittest.TestCase.assertDictEqual` compares two dictionaries and " +"reports the differences; it's now used by default when you compare two " +"dictionaries using :meth:`~unittest.TestCase.assertEqual`. :meth:`~unittest." +"TestCase.assertDictContainsSubset` checks whether all of the key/value pairs " +"in *first* are found in *second*." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1969 +msgid "" +":meth:`~unittest.TestCase.assertAlmostEqual` and :meth:`~unittest.TestCase." +"assertNotAlmostEqual` test whether *first* and *second* are approximately " +"equal. This method can either round their difference to an optionally-" +"specified number of *places* (the default is 7) and compare it to zero, or " +"require the difference to be smaller than a supplied *delta* value." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1975 +msgid "" +":meth:`~unittest.TestLoader.loadTestsFromName` properly honors the :attr:" +"`~unittest.TestLoader.suiteClass` attribute of the :class:`~unittest." +"TestLoader`. (Fixed by Mark Roddy; :issue:`6866`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1979 +msgid "" +"A new hook lets you extend the :meth:`~unittest.TestCase.assertEqual` method " +"to handle new data types. The :meth:`~unittest.TestCase." +"addTypeEqualityFunc` method takes a type object and a function. The function " +"will be used when both of the objects being compared are of the specified " +"type. This function should compare the two objects and raise an exception " +"if they don't match; it's a good idea for the function to provide additional " +"information about why the two objects aren't matching, much as the new " +"sequence comparison methods do." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1988 +msgid "" +":func:`unittest.main` now takes an optional ``exit`` argument. If false, :" +"func:`~unittest.main` doesn't call :func:`sys.exit`, allowing :func:" +"`~unittest.main` to be used from the interactive interpreter. (Contributed " +"by J. Pablo Fernández; :issue:`3379`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1993 +msgid "" +":class:`~unittest.TestResult` has new :meth:`~unittest.TestResult." +"startTestRun` and :meth:`~unittest.TestResult.stopTestRun` methods that are " +"called immediately before and after a test run. (Contributed by Robert " +"Collins; :issue:`5728`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:1997 +msgid "" +"With all these changes, the :file:`unittest.py` was becoming awkwardly " +"large, so the module was turned into a package and the code split into " +"several files (by Benjamin Peterson). This doesn't affect how the module is " +"imported or used." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2005 +msgid "http://www.voidspace.org.uk/python/articles/unittest2.shtml" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2005 +msgid "" +"Describes the new features, how to use them, and the rationale for various " +"design decisions. (By Michael Foord.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2011 +msgid "Updated module: ElementTree 1.3" +msgstr "Module mis-à-jour : ElementTree 1.3" + +#: ../Doc/whatsnew/2.7.rst:2013 +msgid "" +"The version of the ElementTree library included with Python was updated to " +"version 1.3. Some of the new features are:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2016 +msgid "" +"The various parsing functions now take a *parser* keyword argument giving " +"an :class:`~xml.etree.ElementTree.XMLParser` instance that will be used. " +"This makes it possible to override the file's internal encoding::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2023 +msgid "" +"Errors in parsing XML now raise a :exc:`ParseError` exception, whose " +"instances have a :attr:`position` attribute containing a (*line*, *column*) " +"tuple giving the location of the problem." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2027 +msgid "" +"ElementTree's code for converting trees to a string has been significantly " +"reworked, making it roughly twice as fast in many cases. The :meth:" +"`ElementTree.write() ` and :meth:" +"`Element.write` methods now have a *method* parameter that can be \"xml" +"\" (the default), \"html\", or \"text\". HTML mode will output empty " +"elements as ```` instead of ````, and text mode will " +"skip over elements and only output the text chunks. If you set the :attr:" +"`tag` attribute of an element to ``None`` but leave its children in place, " +"the element will be omitted when the tree is written out, so you don't need " +"to do more extensive rearrangement to remove a single element." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2039 +msgid "" +"Namespace handling has also been improved. All ``xmlns:`` " +"declarations are now output on the root element, not scattered throughout " +"the resulting XML. You can set the default namespace for a tree by setting " +"the :attr:`default_namespace` attribute and can register new prefixes with :" +"meth:`~xml.etree.ElementTree.register_namespace`. In XML mode, you can use " +"the true/false *xml_declaration* parameter to suppress the XML declaration." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2047 +msgid "" +"New :class:`~xml.etree.ElementTree.Element` method: :meth:`~xml.etree." +"ElementTree.Element.extend` appends the items from a sequence to the " +"element's children. Elements themselves behave like sequences, so it's easy " +"to move children from one element to another::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2064 +msgid "" +"New :class:`Element` method: :meth:`~xml.etree.ElementTree.Element.iter` " +"yields the children of the element as a generator. It's also possible to " +"write ``for child in elem:`` to loop over an element's children. The " +"existing method :meth:`getiterator` is now deprecated, as is :meth:" +"`getchildren` which constructs and returns a list of children." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2071 +msgid "" +"New :class:`Element` method: :meth:`~xml.etree.ElementTree.Element.itertext` " +"yields all chunks of text that are descendants of the element. For example::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2082 +msgid "" +"Deprecated: using an element as a Boolean (i.e., ``if elem:``) would return " +"true if the element had any children, or false if there were no children. " +"This behaviour is confusing -- ``None`` is false, but so is a childless " +"element? -- so it will now trigger a :exc:`FutureWarning`. In your code, " +"you should be explicit: write ``len(elem) != 0`` if you're interested in the " +"number of children, or ``elem is not None``." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2090 +msgid "" +"Fredrik Lundh develops ElementTree and produced the 1.3 version; you can " +"read his article describing 1.3 at http://effbot.org/zone/elementtree-13-" +"intro.htm. Florent Xicluna updated the version included with Python, after " +"discussions on python-dev and in :issue:`6472`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2100 +msgid "Build and C API Changes" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2102 +msgid "Changes to Python's build process and to the C API include:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2104 +msgid "" +"The latest release of the GNU Debugger, GDB 7, can be `scripted using Python " +"`__. When you " +"begin debugging an executable program P, GDB will look for a file named ``P-" +"gdb.py`` and automatically read it. Dave Malcolm contributed a :file:" +"`python-gdb.py` that adds a number of commands useful when debugging Python " +"itself. For example, ``py-up`` and ``py-down`` go up or down one Python " +"stack frame, which usually corresponds to several C stack frames. ``py-" +"print`` prints the value of a Python variable, and ``py-bt`` prints the " +"Python stack trace. (Added as a result of :issue:`8032`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2116 +msgid "" +"If you use the :file:`.gdbinit` file provided with Python, the \"pyo\" macro " +"in the 2.7 version now works correctly when the thread being debugged " +"doesn't hold the GIL; the macro now acquires it before printing. " +"(Contributed by Victor Stinner; :issue:`3632`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2121 +msgid "" +":c:func:`Py_AddPendingCall` is now thread-safe, letting any worker thread " +"submit notifications to the main Python thread. This is particularly useful " +"for asynchronous IO operations. (Contributed by Kristján Valur Jónsson; :" +"issue:`4293`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2126 +msgid "" +"New function: :c:func:`PyCode_NewEmpty` creates an empty code object; only " +"the filename, function name, and first line number are required. This is " +"useful for extension modules that are attempting to construct a more useful " +"traceback stack. Previously such extensions needed to call :c:func:" +"`PyCode_New`, which had many more arguments. (Added by Jeffrey Yasskin.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2133 +msgid "" +"New function: :c:func:`PyErr_NewExceptionWithDoc` creates a new exception " +"class, just as the existing :c:func:`PyErr_NewException` does, but takes an " +"extra ``char *`` argument containing the docstring for the new exception " +"class. (Added by 'lekma' on the Python bug tracker; :issue:`7033`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2139 +msgid "" +"New function: :c:func:`PyFrame_GetLineNumber` takes a frame object and " +"returns the line number that the frame is currently executing. Previously " +"code would need to get the index of the bytecode instruction currently " +"executing, and then look up the line number corresponding to that address. " +"(Added by Jeffrey Yasskin.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2145 +msgid "" +"New functions: :c:func:`PyLong_AsLongAndOverflow` and :c:func:" +"`PyLong_AsLongLongAndOverflow` approximates a Python long integer as a C :c:" +"type:`long` or :c:type:`long long`. If the number is too large to fit into " +"the output type, an *overflow* flag is set and returned to the caller. " +"(Contributed by Case Van Horsen; :issue:`7528` and :issue:`7767`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2152 +msgid "" +"New function: stemming from the rewrite of string-to-float conversion, a " +"new :c:func:`PyOS_string_to_double` function was added. The old :c:func:" +"`PyOS_ascii_strtod` and :c:func:`PyOS_ascii_atof` functions are now " +"deprecated." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2157 +msgid "" +"New function: :c:func:`PySys_SetArgvEx` sets the value of ``sys.argv`` and " +"can optionally update ``sys.path`` to include the directory containing the " +"script named by ``sys.argv[0]`` depending on the value of an *updatepath* " +"parameter." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2162 +msgid "" +"This function was added to close a security hole for applications that embed " +"Python. The old function, :c:func:`PySys_SetArgv`, would always update " +"``sys.path``, and sometimes it would add the current directory. This meant " +"that, if you ran an application embedding Python in a directory controlled " +"by someone else, attackers could put a Trojan-horse module in the directory " +"(say, a file named :file:`os.py`) that your application would then import " +"and run." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2170 +msgid "" +"If you maintain a C/C++ application that embeds Python, check whether you're " +"calling :c:func:`PySys_SetArgv` and carefully consider whether the " +"application should be using :c:func:`PySys_SetArgvEx` with *updatepath* set " +"to false." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2175 +msgid "" +"Security issue reported as `CVE-2008-5983 `_; discussed in :issue:`5753`, and fixed by " +"Antoine Pitrou." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2179 +msgid "" +"New macros: the Python header files now define the following macros: :c:" +"macro:`Py_ISALNUM`, :c:macro:`Py_ISALPHA`, :c:macro:`Py_ISDIGIT`, :c:macro:" +"`Py_ISLOWER`, :c:macro:`Py_ISSPACE`, :c:macro:`Py_ISUPPER`, :c:macro:" +"`Py_ISXDIGIT`, :c:macro:`Py_TOLOWER`, and :c:macro:`Py_TOUPPER`. All of " +"these functions are analogous to the C standard macros for classifying " +"characters, but ignore the current locale setting, because in several places " +"Python needs to analyze characters in a locale-independent way. (Added by " +"Eric Smith; :issue:`5793`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2197 +msgid "" +"Removed function: :c:macro:`PyEval_CallObject` is now only available as a " +"macro. A function version was being kept around to preserve ABI linking " +"compatibility, but that was in 1997; it can certainly be deleted by now. " +"(Removed by Antoine Pitrou; :issue:`8276`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2202 +msgid "" +"New format codes: the :c:func:`PyFormat_FromString`, :c:func:" +"`PyFormat_FromStringV`, and :c:func:`PyErr_Format` functions now accept ``" +"%lld`` and ``%llu`` format codes for displaying C's :c:type:`long long` " +"types. (Contributed by Mark Dickinson; :issue:`7228`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2208 +msgid "" +"The complicated interaction between threads and process forking has been " +"changed. Previously, the child process created by :func:`os.fork` might " +"fail because the child is created with only a single thread running, the " +"thread performing the :func:`os.fork`. If other threads were holding a lock, " +"such as Python's import lock, when the fork was performed, the lock would " +"still be marked as \"held\" in the new process. But in the child process " +"nothing would ever release the lock, since the other threads weren't " +"replicated, and the child process would no longer be able to perform imports." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2218 +msgid "" +"Python 2.7 acquires the import lock before performing an :func:`os.fork`, " +"and will also clean up any locks created using the :mod:`threading` module. " +"C extension modules that have internal locks, or that call :c:func:`fork()` " +"themselves, will not benefit from this clean-up." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2224 +msgid "(Fixed by Thomas Wouters; :issue:`1590864`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2226 +msgid "" +"The :c:func:`Py_Finalize` function now calls the internal :func:`threading." +"_shutdown` function; this prevents some exceptions from being raised when an " +"interpreter shuts down. (Patch by Adam Olsen; :issue:`1722344`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2231 +msgid "" +"When using the :c:type:`PyMemberDef` structure to define attributes of a " +"type, Python will no longer let you try to delete or set a :const:" +"`T_STRING_INPLACE` attribute." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2237 +msgid "" +"Global symbols defined by the :mod:`ctypes` module are now prefixed with " +"``Py``, or with ``_ctypes``. (Implemented by Thomas Heller; :issue:`3102`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2241 +msgid "" +"New configure option: the :option:`!--with-system-expat` switch allows " +"building the :mod:`pyexpat` module to use the system Expat library. " +"(Contributed by Arfrever Frehtes Taifersar Arahesis; :issue:`7609`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2245 +msgid "" +"New configure option: the :option:`!--with-valgrind` option will now disable " +"the pymalloc allocator, which is difficult for the Valgrind memory-error " +"detector to analyze correctly. Valgrind will therefore be better at " +"detecting memory leaks and overruns. (Contributed by James Henstridge; :" +"issue:`2422`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2252 +msgid "" +"New configure option: you can now supply an empty string to :option:`!--with-" +"dbmliborder=` in order to disable all of the various DBM modules. (Added by " +"Arfrever Frehtes Taifersar Arahesis; :issue:`6491`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2257 +msgid "" +"The :program:`configure` script now checks for floating-point rounding bugs " +"on certain 32-bit Intel chips and defines a :c:macro:`X87_DOUBLE_ROUNDING` " +"preprocessor definition. No code currently uses this definition, but it's " +"available if anyone wishes to use it. (Added by Mark Dickinson; :issue:" +"`2937`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2263 +msgid "" +":program:`configure` also now sets a :envvar:`LDCXXSHARED` Makefile variable " +"for supporting C++ linking. (Contributed by Arfrever Frehtes Taifersar " +"Arahesis; :issue:`1222585`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2267 +msgid "" +"The build process now creates the necessary files for pkg-config support. " +"(Contributed by Clinton Roy; :issue:`3585`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2270 +msgid "" +"The build process now supports Subversion 1.7. (Contributed by Arfrever " +"Frehtes Taifersar Arahesis; :issue:`6094`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2277 +msgid "Capsules" +msgstr "Capsules" + +#: ../Doc/whatsnew/2.7.rst:2279 +msgid "" +"Python 3.1 adds a new C datatype, :c:type:`PyCapsule`, for providing a C API " +"to an extension module. A capsule is essentially the holder of a C ``void " +"*`` pointer, and is made available as a module attribute; for example, the :" +"mod:`socket` module's API is exposed as ``socket.CAPI``, and :mod:" +"`unicodedata` exposes ``ucnhash_CAPI``. Other extensions can import the " +"module, access its dictionary to get the capsule object, and then get the " +"``void *`` pointer, which will usually point to an array of pointers to the " +"module's various API functions." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2288 +msgid "" +"There is an existing data type already used for this, :c:type:`PyCObject`, " +"but it doesn't provide type safety. Evil code written in pure Python could " +"cause a segmentation fault by taking a :c:type:`PyCObject` from module A and " +"somehow substituting it for the :c:type:`PyCObject` in module B. Capsules " +"know their own name, and getting the pointer requires providing the name:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2306 +msgid "" +"You are assured that ``vtable`` points to whatever you're expecting. If a " +"different capsule was passed in, :c:func:`PyCapsule_IsValid` would detect " +"the mismatched name and return false. Refer to :ref:`using-capsules` for " +"more information on using these objects." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2311 +msgid "" +"Python 2.7 now uses capsules internally to provide various extension-module " +"APIs, but the :c:func:`PyCObject_AsVoidPtr` was modified to handle capsules, " +"preserving compile-time compatibility with the :c:type:`CObject` interface. " +"Use of :c:func:`PyCObject_AsVoidPtr` will signal a :exc:" +"`PendingDeprecationWarning`, which is silent by default." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2318 +msgid "" +"Implemented in Python 3.1 and backported to 2.7 by Larry Hastings; discussed " +"in :issue:`5630`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2325 +msgid "Port-Specific Changes: Windows" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2327 +msgid "" +"The :mod:`msvcrt` module now contains some constants from the :file:" +"`crtassem.h` header file: :data:`CRT_ASSEMBLY_VERSION`, :data:" +"`VC_ASSEMBLY_PUBLICKEYTOKEN`, and :data:`LIBRARIES_ASSEMBLY_NAME_PREFIX`. " +"(Contributed by David Cournapeau; :issue:`4365`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2334 +msgid "" +"The :mod:`_winreg` module for accessing the registry now implements the :" +"func:`~_winreg.CreateKeyEx` and :func:`~_winreg.DeleteKeyEx` functions, " +"extended versions of previously-supported functions that take several extra " +"arguments. The :func:`~_winreg.DisableReflectionKey`, :func:`~_winreg." +"EnableReflectionKey`, and :func:`~_winreg.QueryReflectionKey` were also " +"tested and documented. (Implemented by Brian Curtin: :issue:`7347`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2342 +msgid "" +"The new :c:func:`_beginthreadex` API is used to start threads, and the " +"native thread-local storage functions are now used. (Contributed by Kristján " +"Valur Jónsson; :issue:`3582`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2346 +msgid "" +"The :func:`os.kill` function now works on Windows. The signal value can be " +"the constants :const:`CTRL_C_EVENT`, :const:`CTRL_BREAK_EVENT`, or any " +"integer. The first two constants will send :kbd:`Control-C` and :kbd:" +"`Control-Break` keystroke events to subprocesses; any other value will use " +"the :c:func:`TerminateProcess` API. (Contributed by Miki Tebeka; :issue:" +"`1220212`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2353 +msgid "" +"The :func:`os.listdir` function now correctly fails for an empty path. " +"(Fixed by Hirokazu Yamamoto; :issue:`5913`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2356 +msgid "" +"The :mod:`mimelib` module will now read the MIME database from the Windows " +"registry when initializing. (Patch by Gabriel Genellina; :issue:`4969`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2363 +msgid "Port-Specific Changes: Mac OS X" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2365 +msgid "" +"The path ``/Library/Python/2.7/site-packages`` is now appended to ``sys." +"path``, in order to share added packages between the system installation and " +"a user-installed copy of the same version. (Changed by Ronald Oussoren; :" +"issue:`4865`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2372 +msgid "" +"As of 2.7.13, this change was removed. ``/Library/Python/2.7/site-" +"packages``, the site-packages directory used by the Apple-supplied system " +"Python 2.7 is no longer appended to ``sys.path`` for user-installed Pythons " +"such as from the python.org installers. As of macOS 10.12, Apple changed " +"how the system site-packages directory is configured, which could cause " +"installation of pip components, like setuptools, to fail. Packages " +"installed for the system Python will no longer be shared with user-installed " +"Pythons. (:issue:`28440`)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2383 +msgid "Port-Specific Changes: FreeBSD" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2385 +msgid "" +"FreeBSD 7.1's :const:`SO_SETFIB` constant, used with :func:`~socket." +"getsockopt`/:func:`~socket.setsockopt` to select an alternate routing table, " +"is now available in the :mod:`socket` module. (Added by Kyle VanderBeek; :" +"issue:`8235`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2391 +msgid "Other Changes and Fixes" +msgstr "Autres changements et corrections" + +#: ../Doc/whatsnew/2.7.rst:2393 +msgid "" +"Two benchmark scripts, :file:`iobench` and :file:`ccbench`, were added to " +"the :file:`Tools` directory. :file:`iobench` measures the speed of the " +"built-in file I/O objects returned by :func:`open` while performing various " +"operations, and :file:`ccbench` is a concurrency benchmark that tries to " +"measure computing throughput, thread switching latency, and IO processing " +"bandwidth when performing several tasks using a varying number of threads." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2401 +msgid "" +"The :file:`Tools/i18n/msgfmt.py` script now understands plural forms in :" +"file:`.po` files. (Fixed by Martin von Löwis; :issue:`5464`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2405 +msgid "" +"When importing a module from a :file:`.pyc` or :file:`.pyo` file with an " +"existing :file:`.py` counterpart, the :attr:`co_filename` attributes of the " +"resulting code objects are overwritten when the original filename is " +"obsolete. This can happen if the file has been renamed, moved, or is " +"accessed through different paths. (Patch by Ziga Seilnacht and Jean-Paul " +"Calderone; :issue:`1180193`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2412 +msgid "" +"The :file:`regrtest.py` script now takes a :option:`!--randseed=` switch " +"that takes an integer that will be used as the random seed for the :option:" +"`!-r` option that executes tests in random order. The :option:`!-r` option " +"also reports the seed that was used (Added by Collin Winter.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2418 +msgid "" +"Another :file:`regrtest.py` switch is :option:`!-j`, which takes an integer " +"specifying how many tests run in parallel. This allows reducing the total " +"runtime on multi-core machines. This option is compatible with several other " +"options, including the :option:`!-R` switch which is known to produce long " +"runtimes. (Added by Antoine Pitrou, :issue:`6152`.) This can also be used " +"with a new :option:`!-F` switch that runs selected tests in a loop until " +"they fail. (Added by Antoine Pitrou; :issue:`7312`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2427 +msgid "" +"When executed as a script, the :file:`py_compile.py` module now accepts " +"``'-'`` as an argument, which will read standard input for the list of " +"filenames to be compiled. (Contributed by Piotr Ożarowski; :issue:`8233`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2435 +msgid "Porting to Python 2.7" +msgstr "Portage vers Python 2.7" + +#: ../Doc/whatsnew/2.7.rst:2437 +msgid "" +"This section lists previously described changes and other bugfixes that may " +"require changes to your code:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2440 +msgid "" +"The :func:`range` function processes its arguments more consistently; it " +"will now call :meth:`__int__` on non-float, non-integer arguments that are " +"supplied to it. (Fixed by Alexander Belopolsky; :issue:`1533`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2445 +msgid "" +"The string :meth:`format` method changed the default precision used for " +"floating-point and complex numbers from 6 decimal places to 12, which " +"matches the precision used by :func:`str`. (Changed by Eric Smith; :issue:" +"`5920`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2450 +msgid "" +"Because of an optimization for the :keyword:`with` statement, the special " +"methods :meth:`__enter__` and :meth:`__exit__` must belong to the object's " +"type, and cannot be directly attached to the object's instance. This " +"affects new-style classes (derived from :class:`object`) and C extension " +"types. (:issue:`6101`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2456 +msgid "" +"Due to a bug in Python 2.6, the *exc_value* parameter to :meth:`__exit__` " +"methods was often the string representation of the exception, not an " +"instance. This was fixed in 2.7, so *exc_value* will be an instance as " +"expected. (Fixed by Florent Xicluna; :issue:`7853`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2466 +msgid "In the standard library:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2468 +msgid "" +"Operations with :class:`~datetime.datetime` instances that resulted in a " +"year falling outside the supported range didn't always raise :exc:" +"`OverflowError`. Such errors are now checked more carefully and will now " +"raise the exception. (Reported by Mark Leander, patch by Anand B. Pillai and " +"Alexander Belopolsky; :issue:`7150`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2474 +msgid "" +"When using :class:`~decimal.Decimal` instances with a string's :meth:" +"`format` method, the default alignment was previously left-alignment. This " +"has been changed to right-alignment, which might change the output of your " +"programs. (Changed by Mark Dickinson; :issue:`6857`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2480 +msgid "" +"Comparisons involving a signaling NaN value (or ``sNAN``) now signal :const:" +"`~decimal.InvalidOperation` instead of silently returning a true or false " +"value depending on the comparison operator. Quiet NaN values (or ``NaN``) " +"are now hashable. (Fixed by Mark Dickinson; :issue:`7279`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2486 +msgid "" +"The ElementTree library, :mod:`xml.etree`, no longer escapes ampersands and " +"angle brackets when outputting an XML processing instruction (which looks " +"like ``) or comment (which looks like " +"``). (Patch by Neil Muller; :issue:`2746`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2492 +msgid "" +"The :meth:`~StringIO.StringIO.readline` method of :class:`~StringIO." +"StringIO` objects now does nothing when a negative length is requested, as " +"other file-like objects do. (:issue:`7348`)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2535 +msgid "For C extensions:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2537 +msgid "" +"C extensions that use integer format codes with the ``PyArg_Parse*`` family " +"of functions will now raise a :exc:`TypeError` exception instead of " +"triggering a :exc:`DeprecationWarning` (:issue:`5080`)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2541 +msgid "" +"Use the new :c:func:`PyOS_string_to_double` function instead of the old :c:" +"func:`PyOS_ascii_strtod` and :c:func:`PyOS_ascii_atof` functions, which are " +"now deprecated." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2545 +msgid "For applications that embed Python:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2547 +msgid "" +"The :c:func:`PySys_SetArgvEx` function was added, letting applications close " +"a security hole when the existing :c:func:`PySys_SetArgv` function was " +"used. Check whether you're calling :c:func:`PySys_SetArgv` and carefully " +"consider whether the application should be using :c:func:`PySys_SetArgvEx` " +"with *updatepath* set to false." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2560 +msgid "New Features Added to Python 2.7 Maintenance Releases" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2562 +msgid "" +"New features may be added to Python 2.7 maintenance releases when the " +"situation genuinely calls for it. Any such additions must go through the " +"Python Enhancement Proposal process, and make a compelling case for why they " +"can't be adequately addressed by either adding the new feature solely to " +"Python 3, or else by publishing it on the Python Package Index." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2568 +msgid "" +"In addition to the specific proposals listed below, there is a general " +"exemption allowing new ``-3`` warnings to be added in any Python 2.7 " +"maintenance release." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2574 +msgid "Two new environment variables for debug mode" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2576 +msgid "" +"In debug mode, the ``[xxx refs]`` statistic is not written by default, the :" +"envvar:`PYTHONSHOWREFCOUNT` environment variable now must also be set. " +"(Contributed by Victor Stinner; :issue:`31733`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2580 +msgid "" +"When Python is compiled with ``COUNT_ALLOC`` defined, allocation counts are " +"no longer dumped by default anymore: the :envvar:`PYTHONSHOWALLOCCOUNT` " +"environment variable must now also be set. Moreover, allocation counts are " +"now dumped into stderr, rather than stdout. (Contributed by Victor Stinner; :" +"issue:`31692`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2589 +msgid "PEP 434: IDLE Enhancement Exception for All Branches" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2591 +msgid "" +":pep:`434` describes a general exemption for changes made to the IDLE " +"development environment shipped along with Python. This exemption makes it " +"possible for the IDLE developers to provide a more consistent user " +"experience across all supported versions of Python 2 and 3." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2596 +msgid "" +"For details of any IDLE changes, refer to the NEWS file for the specific " +"release." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2601 +msgid "PEP 466: Network Security Enhancements for Python 2.7" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2603 +msgid "" +":pep:`466` describes a number of network security enhancement proposals that " +"have been approved for inclusion in Python 2.7 maintenance releases, with " +"the first of those changes appearing in the Python 2.7.7 release." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2607 +msgid ":pep:`466` related features added in Python 2.7.7:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2609 +msgid "" +":func:`hmac.compare_digest` was backported from Python 3 to make a timing " +"attack resistant comparison operation available to Python 2 applications. " +"(Contributed by Alex Gaynor; :issue:`21306`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2613 +msgid "" +"OpenSSL 1.0.1g was upgraded in the official Windows installers published on " +"python.org. (Contributed by Zachary Ware; :issue:`21462`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2616 +msgid ":pep:`466` related features added in Python 2.7.8:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2618 +msgid "" +":func:`hashlib.pbkdf2_hmac` was backported from Python 3 to make a hashing " +"algorithm suitable for secure password storage broadly available to Python 2 " +"applications. (Contributed by Alex Gaynor; :issue:`21304`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2622 +msgid "" +"OpenSSL 1.0.1h was upgraded for the official Windows installers published on " +"python.org. (contributed by Zachary Ware in :issue:`21671` for CVE-2014-0224)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2625 +msgid ":pep:`466` related features added in Python 2.7.9:" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2627 +msgid "" +"Most of Python 3.4's :mod:`ssl` module was backported. This means :mod:`ssl` " +"now supports Server Name Indication, TLS1.x settings, access to the platform " +"certificate store, the :class:`~ssl.SSLContext` class, and other features. " +"(Contributed by Alex Gaynor and David Reid; :issue:`21308`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2632 +msgid "" +"Refer to the \"Version added: 2.7.9\" notes in the module documentation for " +"specific details." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2635 +msgid "" +":func:`os.urandom` was changed to cache a file descriptor to ``/dev/" +"urandom`` instead of reopening ``/dev/urandom`` on every call. (Contributed " +"by Alex Gaynor; :issue:`21305`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2639 +msgid "" +":data:`hashlib.algorithms_guaranteed` and :data:`hashlib." +"algorithms_available` were backported from Python 3 to make it easier for " +"Python 2 applications to select the strongest available hash algorithm. " +"(Contributed by Alex Gaynor in :issue:`21307`)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2646 +msgid "PEP 477: Backport ensurepip (PEP 453) to Python 2.7" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2648 +msgid "" +":pep:`477` approves the inclusion of the :pep:`453` ensurepip module and the " +"improved documentation that was enabled by it in the Python 2.7 maintenance " +"releases, appearing first in the Python 2.7.9 release." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2654 +msgid "Bootstrapping pip By Default" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2656 +msgid "" +"The new :mod:`ensurepip` module (defined in :pep:`453`) provides a standard " +"cross-platform mechanism to bootstrap the pip installer into Python " +"installations. The version of ``pip`` included with Python 2.7.9 is ``pip`` " +"1.5.6, and future 2.7.x maintenance releases will update the bundled version " +"to the latest version of ``pip`` that is available at the time of creating " +"the release candidate." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2663 +msgid "" +"By default, the commands ``pip``, ``pipX`` and ``pipX.Y`` will be installed " +"on all platforms (where X.Y stands for the version of the Python " +"installation), along with the ``pip`` Python package and its dependencies." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2667 +msgid "" +"For CPython :ref:`source builds on POSIX systems `, " +"the ``make install`` and ``make altinstall`` commands do not bootstrap " +"``pip`` by default. This behaviour can be controlled through configure " +"options, and overridden through Makefile options." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2672 +msgid "" +"On Windows and Mac OS X, the CPython installers now default to installing " +"``pip`` along with CPython itself (users may opt out of installing it during " +"the installation process). Window users will need to opt in to the automatic " +"``PATH`` modifications to have ``pip`` available from the command line by " +"default, otherwise it can still be accessed through the Python launcher for " +"Windows as ``py -m pip``." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2679 +msgid "" +"As `discussed in the PEP`__, platform packagers may choose not to install " +"these commands by default, as long as, when invoked, they provide clear and " +"simple directions on how to install them on that platform (usually using the " +"system package manager)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2688 +msgid "Documentation Changes" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2690 +msgid "" +"As part of this change, the :ref:`installing-index` and :ref:`distributing-" +"index` sections of the documentation have been completely redesigned as " +"short getting started and FAQ documents. Most packaging documentation has " +"now been moved out to the Python Packaging Authority maintained `Python " +"Packaging User Guide `__ and the documentation " +"of the individual projects." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2698 +msgid "" +"However, as this migration is currently still incomplete, the legacy " +"versions of those guides remaining available as :ref:`install-index` and :" +"ref:`distutils-index`." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2705 +msgid ":pep:`453` -- Explicit bootstrapping of pip in Python installations" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2705 +msgid "" +"PEP written by Donald Stufft and Nick Coghlan, implemented by Donald Stufft, " +"Nick Coghlan, Martin von Löwis and Ned Deily." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2709 +msgid "" +"PEP 476: Enabling certificate verification by default for stdlib http clients" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2711 +msgid "" +":pep:`476` updated :mod:`httplib` and modules which use it, such as :mod:" +"`urllib2` and :mod:`xmlrpclib`, to now verify that the server presents a " +"certificate which is signed by a Certificate Authority in the platform trust " +"store and whose hostname matches the hostname being requested by default, " +"significantly improving security for many applications. This change was made " +"in the Python 2.7.9 release." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2718 +msgid "" +"For applications which require the old previous behavior, they can pass an " +"alternate context::" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2735 +msgid "PEP 493: HTTPS verification migration tools for Python 2.7" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2737 +msgid "" +":pep:`493` provides additional migration tools to support a more incremental " +"infrastructure upgrade process for environments containing applications and " +"services relying on the historically permissive processing of server " +"certificates when establishing client HTTPS connections. These additions " +"were made in the Python 2.7.12 release." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2743 +msgid "" +"These tools are intended for use in cases where affected applications and " +"services can't be modified to explicitly pass a more permissive SSL context " +"when establishing the connection." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2747 +msgid "" +"For applications and services which can't be modified at all, the new " +"``PYTHONHTTPSVERIFY`` environment variable may be set to ``0`` to revert an " +"entire Python process back to the default permissive behaviour of Python " +"2.7.8 and earlier." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2752 +msgid "" +"For cases where the connection establishment code can't be modified, but the " +"overall application can be, the new :func:`ssl._https_verify_certificates` " +"function can be used to adjust the default behaviour at runtime." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2758 +msgid "New ``make regen-all`` build target" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2760 +msgid "" +"To simplify cross-compilation, and to ensure that CPython can reliably be " +"compiled without requiring an existing version of Python to already be " +"available, the autotools-based build system no longer attempts to implicitly " +"recompile generated files based on file modification times." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2765 +msgid "" +"Instead, a new ``make regen-all`` command has been added to force " +"regeneration of these files when desired (e.g. after an initial version of " +"Python has already been built based on the pregenerated versions)." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2769 +msgid "" +"More selective regeneration targets are also defined - see :source:`Makefile." +"pre.in` for details." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2772 ../Doc/whatsnew/2.7.rst:2785 +msgid "(Contributed by Victor Stinner in :issue:`23404`.)" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2778 +msgid "Removal of ``make touch`` build target" +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2780 +msgid "" +"The ``make touch`` build target previously used to request implicit " +"regeneration of generated files by updating their modification times has " +"been removed." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2783 +msgid "It has been replaced by the new ``make regen-all`` target." +msgstr "" + +#: ../Doc/whatsnew/2.7.rst:2794 +msgid "Acknowledgements" +msgstr "Remerciements" + +#: ../Doc/whatsnew/2.7.rst:2796 +msgid "" +"The author would like to thank the following people for offering " +"suggestions, corrections and assistance with various drafts of this article: " +"Nick Coghlan, Philip Jenvey, Ryan Lovett, R. David Murray, Hugh Secker-" +"Walker." +msgstr "" diff --git a/whatsnew/3.0.po b/whatsnew/3.0.po new file mode 100644 index 000000000..9feb8223c --- /dev/null +++ b/whatsnew/3.0.po @@ -0,0 +1,1321 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: 2017-09-22 10:11+0200\n" +"Last-Translator: \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.4\n" + +#: ../Doc/whatsnew/3.0.rst:3 +msgid "What's New In Python 3.0" +msgstr "Nouveautés de Python 3.0" + +#: ../Doc/whatsnew/3.0.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/whatsnew/3.0.rst:7 +msgid "Guido van Rossum" +msgstr "Guido van Rossum" + +#: ../Doc/whatsnew/3.0.rst:54 +msgid "" +"This article explains the new features in Python 3.0, compared to 2.6. " +"Python 3.0, also known as \"Python 3000\" or \"Py3K\", is the first ever " +"*intentionally backwards incompatible* Python release. There are more " +"changes than in a typical release, and more that are important for all " +"Python users. Nevertheless, after digesting the changes, you'll find that " +"Python really hasn't changed all that much -- by and large, we're mostly " +"fixing well-known annoyances and warts, and removing a lot of old cruft." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:63 +msgid "" +"This article doesn't attempt to provide a complete specification of all new " +"features, but instead tries to give a convenient overview. For full details, " +"you should refer to the documentation for Python 3.0, and/or the many PEPs " +"referenced in the text. If you want to understand the complete " +"implementation and design rationale for a particular feature, PEPs usually " +"have more details than the regular documentation; but note that PEPs usually " +"are not kept up-to-date once a feature has been fully implemented." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:72 +msgid "" +"Due to time constraints this document is not as complete as it should have " +"been. As always for a new release, the ``Misc/NEWS`` file in the source " +"distribution contains a wealth of detailed information about every small " +"thing that was changed." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:89 +msgid "Common Stumbling Blocks" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:91 +msgid "" +"This section lists those few changes that are most likely to trip you up if " +"you're used to Python 2.5." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:95 +msgid "Print Is A Function" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:97 +msgid "" +"The ``print`` statement has been replaced with a :func:`print` function, " +"with keyword arguments to replace most of the special syntax of the old " +"``print`` statement (:pep:`3105`). Examples::" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:116 +msgid "You can also customize the separator between items, e.g.::" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:120 +msgid "which produces:" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:126 +msgid "Note:" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:128 +msgid "" +"The :func:`print` function doesn't support the \"softspace\" feature of the " +"old ``print`` statement. For example, in Python 2.x, ``print \"A\\n\", \"B" +"\"`` would write ``\"A\\nB\\n\"``; but in Python 3.0, ``print(\"A\\n\", \"B" +"\")`` writes ``\"A\\n B\\n\"``." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:133 +msgid "" +"Initially, you'll be finding yourself typing the old ``print x`` a lot in " +"interactive mode. Time to retrain your fingers to type ``print(x)`` instead!" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:137 +msgid "" +"When using the ``2to3`` source-to-source conversion tool, all ``print`` " +"statements are automatically converted to :func:`print` function calls, so " +"this is mostly a non-issue for larger projects." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:143 +msgid "Views And Iterators Instead Of Lists" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:145 +msgid "Some well-known APIs no longer return lists:" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:147 +msgid "" +":class:`dict` methods :meth:`dict.keys`, :meth:`dict.items` and :meth:`dict." +"values` return \"views\" instead of lists. For example, this no longer " +"works: ``k = d.keys(); k.sort()``. Use ``k = sorted(d)`` instead (this " +"works in Python 2.5 too and is just as efficient)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:153 +msgid "" +"Also, the :meth:`dict.iterkeys`, :meth:`dict.iteritems` and :meth:`dict." +"itervalues` methods are no longer supported." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:156 +msgid "" +":func:`map` and :func:`filter` return iterators. If you really need a list " +"and the input sequences are all of equal length, a quick fix is to wrap :" +"func:`map` in :func:`list`, e.g. ``list(map(...))``, but a better fix is " +"often to use a list comprehension (especially when the original code uses :" +"keyword:`lambda`), or rewriting the code so it doesn't need a list at all. " +"Particularly tricky is :func:`map` invoked for the side effects of the " +"function; the correct transformation is to use a regular :keyword:`for` loop " +"(since creating a list would just be wasteful)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:167 +msgid "" +"If the input sequences are not of equal length, :func:`map` will stop at the " +"termination of the shortest of the sequences. For full compatibility with :" +"func:`map` from Python 2.x, also wrap the sequences in :func:`itertools." +"zip_longest`, e.g. ``map(func, *sequences)`` becomes ``list(map(func, " +"itertools.zip_longest(*sequences)))``." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:173 +msgid "" +":func:`range` now behaves like :func:`xrange` used to behave, except it " +"works with values of arbitrary size. The latter no longer exists." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:177 +msgid ":func:`zip` now returns an iterator." +msgstr ":func:`zip` renvoie maintenant un itérateur." + +#: ../Doc/whatsnew/3.0.rst:180 +msgid "Ordering Comparisons" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:182 +msgid "Python 3.0 has simplified the rules for ordering comparisons:" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:184 +msgid "" +"The ordering comparison operators (``<``, ``<=``, ``>=``, ``>``) raise a " +"TypeError exception when the operands don't have a meaningful natural " +"ordering. Thus, expressions like ``1 < ''``, ``0 > None`` or ``len <= len`` " +"are no longer valid, and e.g. ``None < None`` raises :exc:`TypeError` " +"instead of returning ``False``. A corollary is that sorting a heterogeneous " +"list no longer makes sense -- all the elements must be comparable to each " +"other. Note that this does not apply to the ``==`` and ``!=`` operators: " +"objects of different incomparable types always compare unequal to each other." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:195 +msgid "" +":meth:`builtin.sorted` and :meth:`list.sort` no longer accept the *cmp* " +"argument providing a comparison function. Use the *key* argument instead. N." +"B. the *key* and *reverse* arguments are now \"keyword-only\"." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:200 +msgid "" +"The :func:`cmp` function should be treated as gone, and the :meth:`__cmp__` " +"special method is no longer supported. Use :meth:`__lt__` for sorting, :" +"meth:`__eq__` with :meth:`__hash__`, and other rich comparisons as needed. " +"(If you really need the :func:`cmp` functionality, you could use the " +"expression ``(a > b) - (a < b)`` as the equivalent for ``cmp(a, b)``.)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:207 +msgid "Integers" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:209 +msgid "" +":pep:`237`: Essentially, :class:`long` renamed to :class:`int`. That is, " +"there is only one built-in integral type, named :class:`int`; but it behaves " +"mostly like the old :class:`long` type." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:213 +msgid "" +":pep:`238`: An expression like ``1/2`` returns a float. Use ``1//2`` to get " +"the truncating behavior. (The latter syntax has existed for years, at least " +"since Python 2.2.)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:217 +msgid "" +"The :data:`sys.maxint` constant was removed, since there is no longer a " +"limit to the value of integers. However, :data:`sys.maxsize` can be used as " +"an integer larger than any practical list or string index. It conforms to " +"the implementation's \"natural\" integer size and is typically the same as :" +"data:`sys.maxint` in previous releases on the same platform (assuming the " +"same build options)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:224 +msgid "" +"The :func:`repr` of a long integer doesn't include the trailing ``L`` " +"anymore, so code that unconditionally strips that character will chop off " +"the last digit instead. (Use :func:`str` instead.)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:228 +msgid "" +"Octal literals are no longer of the form ``0720``; use ``0o720`` instead." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:232 +msgid "Text Vs. Data Instead Of Unicode Vs. 8-bit" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:234 +msgid "" +"Everything you thought you knew about binary data and Unicode has changed." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:237 +msgid "" +"Python 3.0 uses the concepts of *text* and (binary) *data* instead of " +"Unicode strings and 8-bit strings. All text is Unicode; however *encoded* " +"Unicode is represented as binary data. The type used to hold text is :class:" +"`str`, the type used to hold data is :class:`bytes`. The biggest difference " +"with the 2.x situation is that any attempt to mix text and data in Python " +"3.0 raises :exc:`TypeError`, whereas if you were to mix Unicode and 8-bit " +"strings in Python 2.x, it would work if the 8-bit string happened to contain " +"only 7-bit (ASCII) bytes, but you would get :exc:`UnicodeDecodeError` if it " +"contained non-ASCII values. This value-specific behavior has caused " +"numerous sad faces over the years." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:250 +msgid "" +"As a consequence of this change in philosophy, pretty much all code that " +"uses Unicode, encodings or binary data most likely has to change. The " +"change is for the better, as in the 2.x world there were numerous bugs " +"having to do with mixing encoded and unencoded text. To be prepared in " +"Python 2.x, start using :class:`unicode` for all unencoded text, and :class:" +"`str` for binary or encoded data only. Then the ``2to3`` tool will do most " +"of the work for you." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:258 +msgid "" +"You can no longer use ``u\"...\"`` literals for Unicode text. However, you " +"must use ``b\"...\"`` literals for binary data." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:261 +msgid "" +"As the :class:`str` and :class:`bytes` types cannot be mixed, you must " +"always explicitly convert between them. Use :meth:`str.encode` to go from :" +"class:`str` to :class:`bytes`, and :meth:`bytes.decode` to go from :class:" +"`bytes` to :class:`str`. You can also use ``bytes(s, encoding=...)`` and " +"``str(b, encoding=...)``, respectively." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:268 +msgid "" +"Like :class:`str`, the :class:`bytes` type is immutable. There is a " +"separate *mutable* type to hold buffered binary data, :class:`bytearray`. " +"Nearly all APIs that accept :class:`bytes` also accept :class:`bytearray`. " +"The mutable API is based on :class:`collections.MutableSequence`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:274 +msgid "" +"All backslashes in raw string literals are interpreted literally. This means " +"that ``'\\U'`` and ``'\\u'`` escapes in raw strings are not treated " +"specially. For example, ``r'\\u20ac'`` is a string of 6 characters in " +"Python 3.0, whereas in 2.6, ``ur'\\u20ac'`` was the single \"euro\" " +"character. (Of course, this change only affects raw string literals; the " +"euro character is ``'\\u20ac'`` in Python 3.0.)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:281 +msgid "" +"The built-in :class:`basestring` abstract type was removed. Use :class:" +"`str` instead. The :class:`str` and :class:`bytes` types don't have " +"functionality enough in common to warrant a shared base class. The ``2to3`` " +"tool (see below) replaces every occurrence of :class:`basestring` with :" +"class:`str`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:287 +msgid "" +"Files opened as text files (still the default mode for :func:`open`) always " +"use an encoding to map between strings (in memory) and bytes (on disk). " +"Binary files (opened with a ``b`` in the mode argument) always use bytes in " +"memory. This means that if a file is opened using an incorrect mode or " +"encoding, I/O will likely fail loudly, instead of silently producing " +"incorrect data. It also means that even Unix users will have to specify the " +"correct mode (text or binary) when opening a file. There is a platform-" +"dependent default encoding, which on Unixy platforms can be set with the " +"``LANG`` environment variable (and sometimes also with some other platform-" +"specific locale-related environment variables). In many cases, but not all, " +"the system default is UTF-8; you should never count on this default. Any " +"application reading or writing more than pure ASCII text should probably " +"have a way to override the encoding. There is no longer any need for using " +"the encoding-aware streams in the :mod:`codecs` module." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:304 +msgid "" +"The initial values of :data:`sys.stdin`, :data:`sys.stdout` and :data:`sys." +"stderr` are now unicode-only text files (i.e., they are instances of :class:" +"`io.TextIOBase`). To read and write bytes data with these streams, you need " +"to use their :data:`io.TextIOBase.buffer` attribute." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:310 +msgid "" +"Filenames are passed to and returned from APIs as (Unicode) strings. This " +"can present platform-specific problems because on some platforms filenames " +"are arbitrary byte strings. (On the other hand, on Windows filenames are " +"natively stored as Unicode.) As a work-around, most APIs (e.g. :func:`open` " +"and many functions in the :mod:`os` module) that take filenames accept :" +"class:`bytes` objects as well as strings, and a few APIs have a way to ask " +"for a :class:`bytes` return value. Thus, :func:`os.listdir` returns a list " +"of :class:`bytes` instances if the argument is a :class:`bytes` instance, " +"and :func:`os.getcwdb` returns the current working directory as a :class:" +"`bytes` instance. Note that when :func:`os.listdir` returns a list of " +"strings, filenames that cannot be decoded properly are omitted rather than " +"raising :exc:`UnicodeError`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:325 +msgid "" +"Some system APIs like :data:`os.environ` and :data:`sys.argv` can also " +"present problems when the bytes made available by the system is not " +"interpretable using the default encoding. Setting the ``LANG`` variable and " +"rerunning the program is probably the best approach." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:330 +msgid "" +":pep:`3138`: The :func:`repr` of a string no longer escapes non-ASCII " +"characters. It still escapes control characters and code points with non-" +"printable status in the Unicode standard, however." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:334 +msgid ":pep:`3120`: The default source encoding is now UTF-8." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:336 +msgid "" +":pep:`3131`: Non-ASCII letters are now allowed in identifiers. (However, the " +"standard library remains ASCII-only with the exception of contributor names " +"in comments.)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:340 +msgid "" +"The :mod:`StringIO` and :mod:`cStringIO` modules are gone. Instead, import " +"the :mod:`io` module and use :class:`io.StringIO` or :class:`io.BytesIO` for " +"text and data respectively." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:344 +msgid "See also the :ref:`unicode-howto`, which was updated for Python 3.0." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:348 +msgid "Overview Of Syntax Changes" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:350 +msgid "" +"This section gives a brief overview of every *syntactic* change in Python " +"3.0." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:354 +msgid "New Syntax" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:356 +msgid "" +":pep:`3107`: Function argument and return value annotations. This provides " +"a standardized way of annotating a function's parameters and return value. " +"There are no semantics attached to such annotations except that they can be " +"introspected at runtime using the :attr:`__annotations__` attribute. The " +"intent is to encourage experimentation through metaclasses, decorators or " +"frameworks." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:363 +msgid "" +":pep:`3102`: Keyword-only arguments. Named parameters occurring after " +"``*args`` in the parameter list *must* be specified using keyword syntax in " +"the call. You can also use a bare ``*`` in the parameter list to indicate " +"that you don't accept a variable-length argument list, but you do have " +"keyword-only arguments." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:369 +msgid "" +"Keyword arguments are allowed after the list of base classes in a class " +"definition. This is used by the new convention for specifying a metaclass " +"(see next section), but can be used for other purposes as well, as long as " +"the metaclass supports it." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:374 +msgid "" +":pep:`3104`: :keyword:`nonlocal` statement. Using ``nonlocal x`` you can " +"now assign directly to a variable in an outer (but non-global) scope. :" +"keyword:`!nonlocal` is a new reserved word." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:378 +msgid "" +":pep:`3132`: Extended Iterable Unpacking. You can now write things like " +"``a, b, *rest = some_sequence``. And even ``*rest, a = stuff``. The " +"``rest`` object is always a (possibly empty) list; the right-hand side may " +"be any iterable. Example::" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:385 +msgid "This sets *a* to ``0``, *b* to ``4``, and *rest* to ``[1, 2, 3]``." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:387 +msgid "" +"Dictionary comprehensions: ``{k: v for k, v in stuff}`` means the same thing " +"as ``dict(stuff)`` but is more flexible. (This is :pep:`274` vindicated. :-)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:391 +msgid "" +"Set literals, e.g. ``{1, 2}``. Note that ``{}`` is an empty dictionary; use " +"``set()`` for an empty set. Set comprehensions are also supported; e.g., " +"``{x for x in stuff}`` means the same thing as ``set(stuff)`` but is more " +"flexible." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:396 +msgid "" +"New octal literals, e.g. ``0o720`` (already in 2.6). The old octal literals " +"(``0720``) are gone." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:399 +msgid "" +"New binary literals, e.g. ``0b1010`` (already in 2.6), and there is a new " +"corresponding built-in function, :func:`bin`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:402 +msgid "" +"Bytes literals are introduced with a leading ``b`` or ``B``, and there is a " +"new corresponding built-in function, :func:`bytes`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:406 +msgid "Changed Syntax" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:408 +msgid "" +":pep:`3109` and :pep:`3134`: new :keyword:`raise` statement syntax: :samp:" +"`raise [{expr} [from {expr}]]`. See below." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:411 +msgid "" +":keyword:`!as` and :keyword:`with` are now reserved words. (Since 2.6, " +"actually.)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:414 +msgid "" +"``True``, ``False``, and ``None`` are reserved words. (2.6 partially " +"enforced the restrictions on ``None`` already.)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:417 +msgid "" +"Change from :keyword:`except` *exc*, *var* to :keyword:`!except` *exc* :" +"keyword:`!as` *var*. See :pep:`3110`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:420 +msgid ":pep:`3115`: New Metaclass Syntax. Instead of::" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:426 +msgid "you must now use::" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:431 +msgid "" +"The module-global :data:`__metaclass__` variable is no longer supported. " +"(It was a crutch to make it easier to default to new-style classes without " +"deriving every class from :class:`object`.)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:436 +msgid "" +"List comprehensions no longer support the syntactic form :samp:`[... for " +"{var} in {item1}, {item2}, ...]`. Use :samp:`[... for {var} in ({item1}, " +"{item2}, ...)]` instead. Also note that list comprehensions have different " +"semantics: they are closer to syntactic sugar for a generator expression " +"inside a :func:`list` constructor, and in particular the loop control " +"variables are no longer leaked into the surrounding scope." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:444 +msgid "" +"The *ellipsis* (``...``) can be used as an atomic expression anywhere. " +"(Previously it was only allowed in slices.) Also, it *must* now be spelled " +"as ``...``. (Previously it could also be spelled as ``. . .``, by a mere " +"accident of the grammar.)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:450 +msgid "Removed Syntax" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:452 +msgid "" +":pep:`3113`: Tuple parameter unpacking removed. You can no longer write " +"``def foo(a, (b, c)): ...``. Use ``def foo(a, b_c): b, c = b_c`` instead." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:456 +msgid "Removed backticks (use :func:`repr` instead)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:458 +msgid "Removed ``<>`` (use ``!=`` instead)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:460 +msgid "" +"Removed keyword: :func:`exec` is no longer a keyword; it remains as a " +"function. (Fortunately the function syntax was also accepted in 2.x.) Also " +"note that :func:`exec` no longer takes a stream argument; instead of " +"``exec(f)`` you can use ``exec(f.read())``." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:465 +msgid "Integer literals no longer support a trailing ``l`` or ``L``." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:467 +msgid "String literals no longer support a leading ``u`` or ``U``." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:469 +msgid "" +"The :keyword:`from` *module* :keyword:`import` ``*`` syntax is only allowed " +"at the module level, no longer inside functions." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:472 +msgid "" +"The only acceptable syntax for relative imports is :samp:`from .[{module}] " +"import {name}`. All :keyword:`import` forms not starting with ``.`` are " +"interpreted as absolute imports. (:pep:`328`)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:476 +msgid "Classic classes are gone." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:480 +msgid "Changes Already Present In Python 2.6" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:482 +msgid "" +"Since many users presumably make the jump straight from Python 2.5 to Python " +"3.0, this section reminds the reader of new features that were originally " +"designed for Python 3.0 but that were back-ported to Python 2.6. The " +"corresponding sections in :ref:`whats-new-in-2.6` should be consulted for " +"longer descriptions." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:488 +msgid "" +":ref:`pep-0343`. The :keyword:`with` statement is now a standard feature " +"and no longer needs to be imported from the :mod:`__future__`. Also check " +"out :ref:`new-26-context-managers` and :ref:`new-module-contextlib`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:493 +msgid "" +":ref:`pep-0366`. This enhances the usefulness of the :option:`-m` option " +"when the referenced module lives in a package." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:496 +msgid ":ref:`pep-0370`." +msgstr ":ref:`pep-0370`." + +#: ../Doc/whatsnew/3.0.rst:498 +msgid ":ref:`pep-0371`." +msgstr ":ref:`pep-0371`." + +#: ../Doc/whatsnew/3.0.rst:500 +msgid "" +":ref:`pep-3101`. Note: the 2.6 description mentions the :meth:`format` " +"method for both 8-bit and Unicode strings. In 3.0, only the :class:`str` " +"type (text strings with Unicode support) supports this method; the :class:" +"`bytes` type does not. The plan is to eventually make this the only API for " +"string formatting, and to start deprecating the ``%`` operator in Python 3.1." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:507 +msgid "" +":ref:`pep-3105`. This is now a standard feature and no longer needs to be " +"imported from :mod:`__future__`. More details were given above." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:510 +msgid "" +":ref:`pep-3110`. The :keyword:`except` *exc* :keyword:`!as` *var* syntax is " +"now standard and :keyword:`!except` *exc*, *var* is no longer supported. " +"(Of course, the :keyword:`!as` *var* part is still optional.)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:515 +msgid "" +":ref:`pep-3112`. The ``b\"...\"`` string literal notation (and its variants " +"like ``b'...'``, ``b\"\"\"...\"\"\"``, and ``br\"...\"``) now produces a " +"literal of type :class:`bytes`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:519 +msgid "" +":ref:`pep-3116`. The :mod:`io` module is now the standard way of doing file " +"I/O. The built-in :func:`open` function is now an alias for :func:`io.open` " +"and has additional keyword arguments *encoding*, *errors*, *newline* and " +"*closefd*. Also note that an invalid *mode* argument now raises :exc:" +"`ValueError`, not :exc:`IOError`. The binary file object underlying a text " +"file object can be accessed as :attr:`f.buffer` (but beware that the text " +"object maintains a buffer of itself in order to speed up the encoding and " +"decoding operations)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:529 +msgid "" +":ref:`pep-3118`. The old builtin :func:`buffer` is now really gone; the new " +"builtin :func:`memoryview` provides (mostly) similar functionality." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:533 +msgid "" +":ref:`pep-3119`. The :mod:`abc` module and the ABCs defined in the :mod:" +"`collections` module plays a somewhat more prominent role in the language " +"now, and built-in collection types like :class:`dict` and :class:`list` " +"conform to the :class:`collections.MutableMapping` and :class:`collections." +"MutableSequence` ABCs, respectively." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:539 +msgid "" +":ref:`pep-3127`. As mentioned above, the new octal literal notation is the " +"only one supported, and binary literals have been added." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:543 +msgid ":ref:`pep-3129`." +msgstr ":ref:`pep-3129`." + +#: ../Doc/whatsnew/3.0.rst:545 +msgid "" +":ref:`pep-3141`. The :mod:`numbers` module is another new use of ABCs, " +"defining Python's \"numeric tower\". Also note the new :mod:`fractions` " +"module which implements :class:`numbers.Rational`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:551 +msgid "Library Changes" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:553 +msgid "" +"Due to time constraints, this document does not exhaustively cover the very " +"extensive changes to the standard library. :pep:`3108` is the reference for " +"the major changes to the library. Here's a capsule review:" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:558 +msgid "" +"Many old modules were removed. Some, like :mod:`gopherlib` (no longer used) " +"and :mod:`md5` (replaced by :mod:`hashlib`), were already deprecated by :pep:" +"`4`. Others were removed as a result of the removal of support for various " +"platforms such as Irix, BeOS and Mac OS 9 (see :pep:`11`). Some modules " +"were also selected for removal in Python 3.0 due to lack of use or because a " +"better replacement exists. See :pep:`3108` for an exhaustive list." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:566 +msgid "" +"The :mod:`bsddb3` package was removed because its presence in the core " +"standard library has proved over time to be a particular burden for the core " +"developers due to testing instability and Berkeley DB's release schedule. " +"However, the package is alive and well, externally maintained at https://www." +"jcea.es/programacion/pybsddb.htm." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:572 +msgid "" +"Some modules were renamed because their old name disobeyed :pep:`8`, or for " +"various other reasons. Here's the list:" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:576 +msgid "Old Name" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:576 +msgid "New Name" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:578 +msgid "_winreg" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:578 +msgid "winreg" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:579 +msgid "ConfigParser" +msgstr "ConfigParser" + +#: ../Doc/whatsnew/3.0.rst:579 +msgid "configparser" +msgstr "configparser" + +#: ../Doc/whatsnew/3.0.rst:580 +msgid "copy_reg" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:580 +msgid "copyreg" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:581 +msgid "Queue" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:581 +msgid "queue" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:582 +msgid "SocketServer" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:582 +msgid "socketserver" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:583 +msgid "markupbase" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:583 +msgid "_markupbase" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:584 +msgid "repr" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:584 +msgid "reprlib" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:585 +msgid "test.test_support" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:585 +msgid "test.support" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:588 +msgid "" +"A common pattern in Python 2.x is to have one version of a module " +"implemented in pure Python, with an optional accelerated version implemented " +"as a C extension; for example, :mod:`pickle` and :mod:`cPickle`. This " +"places the burden of importing the accelerated version and falling back on " +"the pure Python version on each user of these modules. In Python 3.0, the " +"accelerated versions are considered implementation details of the pure " +"Python versions. Users should always import the standard version, which " +"attempts to import the accelerated version and falls back to the pure Python " +"version. The :mod:`pickle` / :mod:`cPickle` pair received this treatment. " +"The :mod:`profile` module is on the list for 3.1. The :mod:`StringIO` " +"module has been turned into a class in the :mod:`io` module." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:602 +msgid "" +"Some related modules have been grouped into packages, and usually the " +"submodule names have been simplified. The resulting new packages are:" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:606 +msgid "" +":mod:`dbm` (:mod:`anydbm`, :mod:`dbhash`, :mod:`dbm`, :mod:`dumbdbm`, :mod:" +"`gdbm`, :mod:`whichdb`)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:609 +msgid ":mod:`html` (:mod:`HTMLParser`, :mod:`htmlentitydefs`)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:611 +msgid "" +":mod:`http` (:mod:`httplib`, :mod:`BaseHTTPServer`, :mod:`CGIHTTPServer`, :" +"mod:`SimpleHTTPServer`, :mod:`Cookie`, :mod:`cookielib`)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:615 +msgid "" +":mod:`tkinter` (all :mod:`Tkinter`-related modules except :mod:`turtle`). " +"The target audience of :mod:`turtle` doesn't really care about :mod:" +"`tkinter`. Also note that as of Python 2.6, the functionality of :mod:" +"`turtle` has been greatly enhanced." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:620 +msgid "" +":mod:`urllib` (:mod:`urllib`, :mod:`urllib2`, :mod:`urlparse`, :mod:" +"`robotparse`)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:623 +msgid "" +":mod:`xmlrpc` (:mod:`xmlrpclib`, :mod:`DocXMLRPCServer`, :mod:" +"`SimpleXMLRPCServer`)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:626 +msgid "" +"Some other changes to standard library modules, not covered by :pep:`3108`:" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:629 +msgid "Killed :mod:`sets`. Use the built-in :func:`set` class." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:631 +msgid "" +"Cleanup of the :mod:`sys` module: removed :func:`sys.exitfunc`, :func:`sys." +"exc_clear`, :data:`sys.exc_type`, :data:`sys.exc_value`, :data:`sys." +"exc_traceback`. (Note that :data:`sys.last_type` etc. remain.)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:636 +msgid "" +"Cleanup of the :class:`array.array` type: the :meth:`read` and :meth:`write` " +"methods are gone; use :meth:`fromfile` and :meth:`tofile` instead. Also, " +"the ``'c'`` typecode for array is gone -- use either ``'b'`` for bytes or " +"``'u'`` for Unicode characters." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:642 +msgid "" +"Cleanup of the :mod:`operator` module: removed :func:`sequenceIncludes` and :" +"func:`isCallable`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:645 +msgid "" +"Cleanup of the :mod:`thread` module: :func:`acquire_lock` and :func:" +"`release_lock` are gone; use :func:`acquire` and :func:`release` instead." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:649 +msgid "Cleanup of the :mod:`random` module: removed the :func:`jumpahead` API." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:651 +msgid "The :mod:`new` module is gone." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:653 +msgid "" +"The functions :func:`os.tmpnam`, :func:`os.tempnam` and :func:`os.tmpfile` " +"have been removed in favor of the :mod:`tempfile` module." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:657 +msgid "" +"The :mod:`tokenize` module has been changed to work with bytes. The main " +"entry point is now :func:`tokenize.tokenize`, instead of generate_tokens." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:661 +msgid "" +":data:`string.letters` and its friends (:data:`string.lowercase` and :data:" +"`string.uppercase`) are gone. Use :data:`string.ascii_letters` etc. " +"instead. (The reason for the removal is that :data:`string.letters` and " +"friends had locale-specific behavior, which is a bad idea for such " +"attractively-named global \"constants\".)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:668 +msgid "" +"Renamed module :mod:`__builtin__` to :mod:`builtins` (removing the " +"underscores, adding an 's'). The :data:`__builtins__` variable found in " +"most global namespaces is unchanged. To modify a builtin, you should use :" +"mod:`builtins`, not :data:`__builtins__`!" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:675 +msgid ":pep:`3101`: A New Approach To String Formatting" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:677 +msgid "" +"A new system for built-in string formatting operations replaces the ``%`` " +"string formatting operator. (However, the ``%`` operator is still " +"supported; it will be deprecated in Python 3.1 and removed from the " +"language at some later time.) Read :pep:`3101` for the full scoop." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:685 +msgid "Changes To Exceptions" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:687 +msgid "" +"The APIs for raising and catching exception have been cleaned up and new " +"powerful features added:" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:690 +msgid "" +":pep:`352`: All exceptions must be derived (directly or indirectly) from :" +"exc:`BaseException`. This is the root of the exception hierarchy. This is " +"not new as a recommendation, but the *requirement* to inherit from :exc:" +"`BaseException` is new. (Python 2.6 still allowed classic classes to be " +"raised, and placed no restriction on what you can catch.) As a consequence, " +"string exceptions are finally truly and utterly dead." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:698 +msgid "" +"Almost all exceptions should actually derive from :exc:`Exception`; :exc:" +"`BaseException` should only be used as a base class for exceptions that " +"should only be handled at the top level, such as :exc:`SystemExit` or :exc:" +"`KeyboardInterrupt`. The recommended idiom for handling all exceptions " +"except for this latter category is to use :keyword:`except` :exc:`Exception`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:705 +msgid ":exc:`StandardError` was removed." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:707 +msgid "" +"Exceptions no longer behave as sequences. Use the :attr:`args` attribute " +"instead." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:710 +msgid "" +":pep:`3109`: Raising exceptions. You must now use :samp:`raise {Exception}" +"({args})` instead of :samp:`raise {Exception}, {args}`. Additionally, you " +"can no longer explicitly specify a traceback; instead, if you *have* to do " +"this, you can assign directly to the :attr:`__traceback__` attribute (see " +"below)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:716 +msgid "" +":pep:`3110`: Catching exceptions. You must now use :samp:`except " +"{SomeException} as {variable}` instead of :samp:`except {SomeException}, " +"{variable}`. Moreover, the *variable* is explicitly deleted when the :" +"keyword:`except` block is left." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:722 +msgid "" +":pep:`3134`: Exception chaining. There are two cases: implicit chaining and " +"explicit chaining. Implicit chaining happens when an exception is raised in " +"an :keyword:`except` or :keyword:`finally` handler block. This usually " +"happens due to a bug in the handler block; we call this a *secondary* " +"exception. In this case, the original exception (that was being handled) is " +"saved as the :attr:`__context__` attribute of the secondary exception. " +"Explicit chaining is invoked with this syntax::" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:733 +msgid "" +"(where *primary_exception* is any expression that produces an exception " +"object, probably an exception that was previously caught). In this case, the " +"primary exception is stored on the :attr:`__cause__` attribute of the " +"secondary exception. The traceback printed when an unhandled exception " +"occurs walks the chain of :attr:`__cause__` and :attr:`__context__` " +"attributes and prints a separate traceback for each component of the chain, " +"with the primary exception at the top. (Java users may recognize this " +"behavior.)" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:742 +msgid "" +":pep:`3134`: Exception objects now store their traceback as the :attr:" +"`__traceback__` attribute. This means that an exception object now contains " +"all the information pertaining to an exception, and there are fewer reasons " +"to use :func:`sys.exc_info` (though the latter is not removed)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:748 +msgid "" +"A few exception messages are improved when Windows fails to load an " +"extension module. For example, ``error code 193`` is now ``%1 is not a " +"valid Win32 application``. Strings now deal with non-English locales." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:755 +msgid "Miscellaneous Other Changes" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:758 +msgid "Operators And Special Methods" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:760 +msgid "" +"``!=`` now returns the opposite of ``==``, unless ``==`` returns :data:" +"`NotImplemented`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:763 +msgid "" +"The concept of \"unbound methods\" has been removed from the language. When " +"referencing a method as a class attribute, you now get a plain function " +"object." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:767 +msgid "" +":meth:`__getslice__`, :meth:`__setslice__` and :meth:`__delslice__` were " +"killed. The syntax ``a[i:j]`` now translates to ``a.__getitem__(slice(i, " +"j))`` (or :meth:`__setitem__` or :meth:`__delitem__`, when used as an " +"assignment or deletion target, respectively)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:773 +msgid "" +":pep:`3114`: the standard :meth:`next` method has been renamed to :meth:" +"`~iterator.__next__`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:776 +msgid "" +"The :meth:`__oct__` and :meth:`__hex__` special methods are removed -- :func:" +"`oct` and :func:`hex` use :meth:`__index__` now to convert the argument to " +"an integer." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:780 +msgid "Removed support for :attr:`__members__` and :attr:`__methods__`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:782 +msgid "" +"The function attributes named :attr:`func_X` have been renamed to use the :" +"data:`__X__` form, freeing up these names in the function attribute " +"namespace for user-defined attributes. To wit, :attr:`func_closure`, :attr:" +"`func_code`, :attr:`func_defaults`, :attr:`func_dict`, :attr:`func_doc`, :" +"attr:`func_globals`, :attr:`func_name` were renamed to :attr:`__closure__`, :" +"attr:`__code__`, :attr:`__defaults__`, :attr:`~object.__dict__`, :attr:" +"`__doc__`, :attr:`__globals__`, :attr:`~definition.__name__`, respectively." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:792 +msgid ":meth:`__nonzero__` is now :meth:`__bool__`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:795 +msgid "Builtins" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:797 +msgid "" +":pep:`3135`: New :func:`super`. You can now invoke :func:`super` without " +"arguments and (assuming this is in a regular instance method defined inside " +"a :keyword:`class` statement) the right class and instance will " +"automatically be chosen. With arguments, the behavior of :func:`super` is " +"unchanged." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:803 +msgid "" +":pep:`3111`: :func:`raw_input` was renamed to :func:`input`. That is, the " +"new :func:`input` function reads a line from :data:`sys.stdin` and returns " +"it with the trailing newline stripped. It raises :exc:`EOFError` if the " +"input is terminated prematurely. To get the old behavior of :func:`input`, " +"use ``eval(input())``." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:809 +msgid "" +"A new built-in function :func:`next` was added to call the :meth:`~iterator." +"__next__` method on an object." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:812 +msgid "" +"The :func:`round` function rounding strategy and return type have changed. " +"Exact halfway cases are now rounded to the nearest even result instead of " +"away from zero. (For example, ``round(2.5)`` now returns ``2`` rather than " +"``3``.) ``round(x[, n])`` now delegates to ``x.__round__([n])`` instead of " +"always returning a float. It generally returns an integer when called with " +"a single argument and a value of the same type as ``x`` when called with two " +"arguments." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:821 +msgid "Moved :func:`intern` to :func:`sys.intern`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:823 +msgid "" +"Removed: :func:`apply`. Instead of ``apply(f, args)`` use ``f(*args)``." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:826 +msgid "" +"Removed :func:`callable`. Instead of ``callable(f)`` you can use " +"``isinstance(f, collections.Callable)``. The :func:`operator.isCallable` " +"function is also gone." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:830 +msgid "" +"Removed :func:`coerce`. This function no longer serves a purpose now that " +"classic classes are gone." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:833 +msgid "" +"Removed :func:`execfile`. Instead of ``execfile(fn)`` use ``exec(open(fn)." +"read())``." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:836 +msgid "" +"Removed the :class:`file` type. Use :func:`open`. There are now several " +"different kinds of streams that open can return in the :mod:`io` module." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:839 +msgid "" +"Removed :func:`reduce`. Use :func:`functools.reduce` if you really need it; " +"however, 99 percent of the time an explicit :keyword:`for` loop is more " +"readable." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:843 +msgid "Removed :func:`reload`. Use :func:`imp.reload`." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:845 +msgid "" +"Removed. :meth:`dict.has_key` -- use the :keyword:`in` operator instead." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:852 +msgid "Build and C API Changes" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:854 +msgid "" +"Due to time constraints, here is a *very* incomplete list of changes to the " +"C API." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:857 +msgid "" +"Support for several platforms was dropped, including but not limited to Mac " +"OS 9, BeOS, RISCOS, Irix, and Tru64." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:860 +msgid ":pep:`3118`: New Buffer API." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:862 +msgid ":pep:`3121`: Extension Module Initialization & Finalization." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:864 +msgid ":pep:`3123`: Making :c:macro:`PyObject_HEAD` conform to standard C." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:866 +msgid "No more C API support for restricted execution." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:868 +msgid "" +":c:func:`PyNumber_Coerce`, :c:func:`PyNumber_CoerceEx`, :c:func:" +"`PyMember_Get`, and :c:func:`PyMember_Set` C APIs are removed." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:871 +msgid "" +"New C API :c:func:`PyImport_ImportModuleNoBlock`, works like :c:func:" +"`PyImport_ImportModule` but won't block on the import lock (returning an " +"error instead)." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:875 +msgid "" +"Renamed the boolean conversion C-level slot and method: ``nb_nonzero`` is " +"now ``nb_bool``." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:878 +msgid "" +"Removed :c:macro:`METH_OLDARGS` and :c:macro:`WITH_CYCLE_GC` from the C API." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:884 +msgid "Performance" +msgstr "Performances" + +#: ../Doc/whatsnew/3.0.rst:886 +msgid "" +"The net result of the 3.0 generalizations is that Python 3.0 runs the " +"pystone benchmark around 10% slower than Python 2.5. Most likely the " +"biggest cause is the removal of special-casing for small integers. There's " +"room for improvement, but it will happen after 3.0 is released!" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:896 +msgid "Porting To Python 3.0" +msgstr "Portage vers Python 3.0" + +#: ../Doc/whatsnew/3.0.rst:898 +msgid "" +"For porting existing Python 2.5 or 2.6 source code to Python 3.0, the best " +"strategy is the following:" +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:901 +msgid "(Prerequisite:) Start with excellent test coverage." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:903 +msgid "" +"Port to Python 2.6. This should be no more work than the average port from " +"Python 2.x to Python 2.(x+1). Make sure all your tests pass." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:907 +msgid "" +"(Still using 2.6:) Turn on the :option:`!-3` command line switch. This " +"enables warnings about features that will be removed (or change) in 3.0. " +"Run your test suite again, and fix code that you get warnings about until " +"there are no warnings left, and all your tests still pass." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:913 +msgid "" +"Run the ``2to3`` source-to-source translator over your source code tree. " +"(See :ref:`2to3-reference` for more on this tool.) Run the result of the " +"translation under Python 3.0. Manually fix up any remaining issues, fixing " +"problems until all tests pass again." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:918 +msgid "" +"It is not recommended to try to write source code that runs unchanged under " +"both Python 2.6 and 3.0; you'd have to use a very contorted coding style, e." +"g. avoiding ``print`` statements, metaclasses, and much more. If you are " +"maintaining a library that needs to support both Python 2.6 and Python 3.0, " +"the best approach is to modify step 3 above by editing the 2.6 version of " +"the source code and running the ``2to3`` translator again, rather than " +"editing the 3.0 version of the source code." +msgstr "" + +#: ../Doc/whatsnew/3.0.rst:927 +msgid "" +"For porting C extensions to Python 3.0, please see :ref:`cporting-howto`." +msgstr "" diff --git a/whatsnew/3.1.po b/whatsnew/3.1.po new file mode 100644 index 000000000..244df1c5d --- /dev/null +++ b/whatsnew/3.1.po @@ -0,0 +1,687 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2018-07-31 23:30+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/whatsnew/3.1.rst:3 +msgid "What's New In Python 3.1" +msgstr "Nouveautés de Python 3.1" + +#: ../Doc/whatsnew/3.1.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/whatsnew/3.1.rst:5 +msgid "Raymond Hettinger" +msgstr "Raymond Hettinger" + +#: ../Doc/whatsnew/3.1.rst:49 +msgid "This article explains the new features in Python 3.1, compared to 3.0." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:53 +msgid "PEP 372: Ordered Dictionaries" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:55 +msgid "" +"Regular Python dictionaries iterate over key/value pairs in arbitrary order. " +"Over the years, a number of authors have written alternative implementations " +"that remember the order that the keys were originally inserted. Based on " +"the experiences from those implementations, a new :class:`collections." +"OrderedDict` class has been introduced." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:61 +msgid "" +"The OrderedDict API is substantially the same as regular dictionaries but " +"will iterate over keys and values in a guaranteed order depending on when a " +"key was first inserted. If a new entry overwrites an existing entry, the " +"original insertion position is left unchanged. Deleting an entry and " +"reinserting it will move it to the end." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:67 +msgid "" +"The standard library now supports use of ordered dictionaries in several " +"modules. The :mod:`configparser` module uses them by default. This lets " +"configuration files be read, modified, and then written back in their " +"original order. The *_asdict()* method for :func:`collections.namedtuple` " +"now returns an ordered dictionary with the values appearing in the same " +"order as the underlying tuple indices. The :mod:`json` module is being " +"built-out with an *object_pairs_hook* to allow OrderedDicts to be built by " +"the decoder. Support was also added for third-party tools like `PyYAML " +"`_." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:79 +msgid ":pep:`372` - Ordered Dictionaries" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:79 +msgid "" +"PEP written by Armin Ronacher and Raymond Hettinger. Implementation written " +"by Raymond Hettinger." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:84 +msgid "PEP 378: Format Specifier for Thousands Separator" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:86 +msgid "" +"The built-in :func:`format` function and the :meth:`str.format` method use a " +"mini-language that now includes a simple, non-locale aware way to format a " +"number with a thousands separator. That provides a way to humanize a " +"program's output, improving its professional appearance and readability::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:100 +msgid "" +"The supported types are :class:`int`, :class:`float`, :class:`complex` and :" +"class:`decimal.Decimal`." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:103 +msgid "" +"Discussions are underway about how to specify alternative separators like " +"dots, spaces, apostrophes, or underscores. Locale-aware applications should " +"use the existing *n* format specifier which already has some support for " +"thousands separators." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:111 +msgid ":pep:`378` - Format Specifier for Thousands Separator" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:111 +msgid "" +"PEP written by Raymond Hettinger and implemented by Eric Smith and Mark " +"Dickinson." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:116 +msgid "Other Language Changes" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:118 +msgid "Some smaller changes made to the core Python language are:" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:120 +msgid "" +"Directories and zip archives containing a :file:`__main__.py` file can now " +"be executed directly by passing their name to the interpreter. The directory/" +"zipfile is automatically inserted as the first entry in sys.path. " +"(Suggestion and initial patch by Andy Chu; revised patch by Phillip J. Eby " +"and Nick Coghlan; :issue:`1739468`.)" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:126 +msgid "" +"The :func:`int` type gained a ``bit_length`` method that returns the number " +"of bits necessary to represent its argument in binary::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:140 +msgid "" +"(Contributed by Fredrik Johansson, Victor Stinner, Raymond Hettinger, and " +"Mark Dickinson; :issue:`3439`.)" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:143 +msgid "" +"The fields in :func:`format` strings can now be automatically numbered::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:149 +msgid "" +"Formerly, the string would have required numbered fields such as: ``'Sir {0} " +"of {1}'``." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:152 +msgid "(Contributed by Eric Smith; :issue:`5237`.)" +msgstr "(Contribution par Eric Smith; :issue:`5237`.)" + +#: ../Doc/whatsnew/3.1.rst:154 +msgid "" +"The :func:`string.maketrans` function is deprecated and is replaced by new " +"static methods, :meth:`bytes.maketrans` and :meth:`bytearray.maketrans`. " +"This change solves the confusion around which types were supported by the :" +"mod:`string` module. Now, :class:`str`, :class:`bytes`, and :class:" +"`bytearray` each have their own **maketrans** and **translate** methods with " +"intermediate translation tables of the appropriate type." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:161 +msgid "(Contributed by Georg Brandl; :issue:`5675`.)" +msgstr "(Contribution par Georg Brandl; :issue:`5675`.)" + +#: ../Doc/whatsnew/3.1.rst:163 +msgid "" +"The syntax of the :keyword:`with` statement now allows multiple context " +"managers in a single statement::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:171 +msgid "" +"With the new syntax, the :func:`contextlib.nested` function is no longer " +"needed and is now deprecated." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:174 +msgid "" +"(Contributed by Georg Brandl and Mattias Brändström; `appspot issue 53094 " +"`_.)" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:177 +msgid "" +"``round(x, n)`` now returns an integer if *x* is an integer. Previously it " +"returned a float::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:183 +msgid "(Contributed by Mark Dickinson; :issue:`4707`.)" +msgstr "(Contribution par Mark Dickinson; :issue:`4707`.)" + +#: ../Doc/whatsnew/3.1.rst:185 +msgid "" +"Python now uses David Gay's algorithm for finding the shortest floating " +"point representation that doesn't change its value. This should help " +"mitigate some of the confusion surrounding binary floating point numbers." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:190 +msgid "" +"The significance is easily seen with a number like ``1.1`` which does not " +"have an exact equivalent in binary floating point. Since there is no exact " +"equivalent, an expression like ``float('1.1')`` evaluates to the nearest " +"representable value which is ``0x1.199999999999ap+0`` in hex or " +"``1.100000000000000088817841970012523233890533447265625`` in decimal. That " +"nearest value was and still is used in subsequent floating point " +"calculations." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:198 +msgid "" +"What is new is how the number gets displayed. Formerly, Python used a " +"simple approach. The value of ``repr(1.1)`` was computed as ``format(1.1, " +"'.17g')`` which evaluated to ``'1.1000000000000001'``. The advantage of " +"using 17 digits was that it relied on IEEE-754 guarantees to assure that " +"``eval(repr(1.1))`` would round-trip exactly to its original value. The " +"disadvantage is that many people found the output to be confusing (mistaking " +"intrinsic limitations of binary floating point representation as being a " +"problem with Python itself)." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:207 +msgid "" +"The new algorithm for ``repr(1.1)`` is smarter and returns ``'1.1'``. " +"Effectively, it searches all equivalent string representations (ones that " +"get stored with the same underlying float value) and returns the shortest " +"representation." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:212 +msgid "" +"The new algorithm tends to emit cleaner representations when possible, but " +"it does not change the underlying values. So, it is still the case that " +"``1.1 + 2.2 != 3.3`` even though the representations may suggest otherwise." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:216 +msgid "" +"The new algorithm depends on certain features in the underlying floating " +"point implementation. If the required features are not found, the old " +"algorithm will continue to be used. Also, the text pickle protocols assure " +"cross-platform portability by using the old algorithm." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:221 +msgid "(Contributed by Eric Smith and Mark Dickinson; :issue:`1580`)" +msgstr "(Contribution par Eric Smith et Mark Dickinson; :issue:`1580`.)" + +#: ../Doc/whatsnew/3.1.rst:224 +msgid "New, Improved, and Deprecated Modules" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:226 +msgid "" +"Added a :class:`collections.Counter` class to support convenient counting of " +"unique items in a sequence or iterable::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:232 +msgid "(Contributed by Raymond Hettinger; :issue:`1696199`.)" +msgstr "(Contribution par Raymond Hettinger; :issue:`1696199`.)" + +#: ../Doc/whatsnew/3.1.rst:234 +msgid "" +"Added a new module, :mod:`tkinter.ttk` for access to the Tk themed widget " +"set. The basic idea of ttk is to separate, to the extent possible, the code " +"implementing a widget's behavior from the code implementing its appearance." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:238 +msgid "(Contributed by Guilherme Polo; :issue:`2983`.)" +msgstr "(Contribution par Guilherme Polo; :issue:`2983`.)" + +#: ../Doc/whatsnew/3.1.rst:240 +msgid "" +"The :class:`gzip.GzipFile` and :class:`bz2.BZ2File` classes now support the " +"context management protocol::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:247 +msgid "(Contributed by Antoine Pitrou.)" +msgstr "(Contribution par Antoine Pitrou)" + +#: ../Doc/whatsnew/3.1.rst:249 +msgid "" +"The :mod:`decimal` module now supports methods for creating a decimal object " +"from a binary :class:`float`. The conversion is exact but can sometimes be " +"surprising::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:256 +msgid "" +"The long decimal result shows the actual binary fraction being stored for " +"*1.1*. The fraction has many digits because *1.1* cannot be exactly " +"represented in binary." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:260 +msgid "(Contributed by Raymond Hettinger and Mark Dickinson.)" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:262 +msgid "" +"The :mod:`itertools` module grew two new functions. The :func:`itertools." +"combinations_with_replacement` function is one of four for generating " +"combinatorics including permutations and Cartesian products. The :func:" +"`itertools.compress` function mimics its namesake from APL. Also, the " +"existing :func:`itertools.count` function now has an optional *step* " +"argument and can accept any type of counting sequence including :class:" +"`fractions.Fraction` and :class:`decimal.Decimal`::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:281 +msgid "(Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:283 +msgid "" +":func:`collections.namedtuple` now supports a keyword argument *rename* " +"which lets invalid fieldnames be automatically converted to positional names " +"in the form _0, _1, etc. This is useful when the field names are being " +"created by an external source such as a CSV header, SQL field list, or user " +"input::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:300 +msgid "(Contributed by Raymond Hettinger; :issue:`1818`.)" +msgstr "(Contribution par Raymond Hettinger; :issue:`1818`.)" + +#: ../Doc/whatsnew/3.1.rst:302 +msgid "" +"The :func:`re.sub`, :func:`re.subn` and :func:`re.split` functions now " +"accept a flags parameter." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:305 +msgid "(Contributed by Gregory Smith.)" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:307 +msgid "" +"The :mod:`logging` module now implements a simple :class:`logging." +"NullHandler` class for applications that are not using logging but are " +"calling library code that does. Setting-up a null handler will suppress " +"spurious warnings such as \"No handlers could be found for logger foo\"::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:315 +msgid "(Contributed by Vinay Sajip; :issue:`4384`)." +msgstr "(Contribution par Vinay Sajip ; :issue:`4384`)." + +#: ../Doc/whatsnew/3.1.rst:317 +msgid "" +"The :mod:`runpy` module which supports the ``-m`` command line switch now " +"supports the execution of packages by looking for and executing a " +"``__main__`` submodule when a package name is supplied." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:321 +msgid "(Contributed by Andi Vajda; :issue:`4195`.)" +msgstr "(Contribution par Andi Vajda; :issue:`4195`.)" + +#: ../Doc/whatsnew/3.1.rst:323 +msgid "" +"The :mod:`pdb` module can now access and display source code loaded via :mod:" +"`zipimport` (or any other conformant :pep:`302` loader)." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:326 +msgid "(Contributed by Alexander Belopolsky; :issue:`4201`.)" +msgstr "(Contribution par Alexander Belopolsky; :issue:`4201`.)" + +#: ../Doc/whatsnew/3.1.rst:328 +msgid ":class:`functools.partial` objects can now be pickled." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:330 +msgid "" +"(Suggested by Antoine Pitrou and Jesse Noller. Implemented by Jack " +"Diederich; :issue:`5228`.)" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:333 +msgid "" +"Add :mod:`pydoc` help topics for symbols so that ``help('@')`` works as " +"expected in the interactive environment." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:336 +msgid "(Contributed by David Laban; :issue:`4739`.)" +msgstr "(Contribution par David Laban; :issue:`4739`.)" + +#: ../Doc/whatsnew/3.1.rst:338 +msgid "" +"The :mod:`unittest` module now supports skipping individual tests or classes " +"of tests. And it supports marking a test as an expected failure, a test that " +"is known to be broken, but shouldn't be counted as a failure on a " +"TestResult::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:353 +msgid "" +"Also, tests for exceptions have been builtout to work with context managers " +"using the :keyword:`with` statement::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:360 +msgid "" +"In addition, several new assertion methods were added including :func:" +"`assertSetEqual`, :func:`assertDictEqual`, :func:" +"`assertDictContainsSubset`, :func:`assertListEqual`, :func:" +"`assertTupleEqual`, :func:`assertSequenceEqual`, :func:" +"`assertRaisesRegexp`, :func:`assertIsNone`, and :func:`assertIsNotNone`." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:367 +msgid "(Contributed by Benjamin Peterson and Antoine Pitrou.)" +msgstr "(Contribution par Benjamin Peterson et Antoine Pitrou)" + +#: ../Doc/whatsnew/3.1.rst:369 +msgid "" +"The :mod:`io` module has three new constants for the :meth:`seek` method :" +"data:`SEEK_SET`, :data:`SEEK_CUR`, and :data:`SEEK_END`." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:372 +msgid "The :attr:`sys.version_info` tuple is now a named tuple::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:377 +msgid "(Contributed by Ross Light; :issue:`4285`.)" +msgstr "(Contribution par Ross Ligh; :issue:`4285`.)" + +#: ../Doc/whatsnew/3.1.rst:379 +msgid "The :mod:`nntplib` and :mod:`imaplib` modules now support IPv6." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:381 +msgid "(Contributed by Derek Morr; :issue:`1655` and :issue:`1664`.)" +msgstr "(Contribution par Derek Morr; :issue:`1655` et :issue:`1664`)" + +#: ../Doc/whatsnew/3.1.rst:383 +msgid "" +"The :mod:`pickle` module has been adapted for better interoperability with " +"Python 2.x when used with protocol 2 or lower. The reorganization of the " +"standard library changed the formal reference for many objects. For " +"example, ``__builtin__.set`` in Python 2 is called ``builtins.set`` in " +"Python 3. This change confounded efforts to share data between different " +"versions of Python. But now when protocol 2 or lower is selected, the " +"pickler will automatically use the old Python 2 names for both loading and " +"dumping. This remapping is turned-on by default but can be disabled with the " +"*fix_imports* option::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:399 +msgid "" +"An unfortunate but unavoidable side-effect of this change is that protocol 2 " +"pickles produced by Python 3.1 won't be readable with Python 3.0. The latest " +"pickle protocol, protocol 3, should be used when migrating data between " +"Python 3.x implementations, as it doesn't attempt to remain compatible with " +"Python 2.x." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:405 +msgid "" +"(Contributed by Alexandre Vassalotti and Antoine Pitrou, :issue:`6137`.)" +msgstr "" +"(Contribution par Alexandre Vassalotti et Antoine Pitrou; :issue:`6137`.)" + +#: ../Doc/whatsnew/3.1.rst:407 +msgid "" +"A new module, :mod:`importlib` was added. It provides a complete, portable, " +"pure Python reference implementation of the :keyword:`import` statement and " +"its counterpart, the :func:`__import__` function. It represents a " +"substantial step forward in documenting and defining the actions that take " +"place during imports." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:413 +msgid "(Contributed by Brett Cannon.)" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:416 +msgid "Optimizations" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:418 +msgid "Major performance enhancements have been added:" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:420 +msgid "" +"The new I/O library (as defined in :pep:`3116`) was mostly written in Python " +"and quickly proved to be a problematic bottleneck in Python 3.0. In Python " +"3.1, the I/O library has been entirely rewritten in C and is 2 to 20 times " +"faster depending on the task at hand. The pure Python version is still " +"available for experimentation purposes through the ``_pyio`` module." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:427 +msgid "(Contributed by Amaury Forgeot d'Arc and Antoine Pitrou.)" +msgstr "(Contribution par Amaury Forgeot d'Arc et Antoine Pitrou)" + +#: ../Doc/whatsnew/3.1.rst:429 +msgid "" +"Added a heuristic so that tuples and dicts containing only untrackable " +"objects are not tracked by the garbage collector. This can reduce the size " +"of collections and therefore the garbage collection overhead on long-running " +"programs, depending on their particular use of datatypes." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:434 +msgid "(Contributed by Antoine Pitrou, :issue:`4688`.)" +msgstr "(Contribution par Antoine Pitrou; :issue:`4688`.)" + +#: ../Doc/whatsnew/3.1.rst:436 +msgid "" +"Enabling a configure option named ``--with-computed-gotos`` on compilers " +"that support it (notably: gcc, SunPro, icc), the bytecode evaluation loop is " +"compiled with a new dispatch mechanism which gives speedups of up to 20%, " +"depending on the system, the compiler, and the benchmark." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:442 +msgid "" +"(Contributed by Antoine Pitrou along with a number of other participants, :" +"issue:`4753`)." +msgstr "" +"(Contribution par Antoine Pitrou ainsi qu’un certain nombre d’autres " +"participants ; :issue:`4753`)." + +#: ../Doc/whatsnew/3.1.rst:445 +msgid "" +"The decoding of UTF-8, UTF-16 and LATIN-1 is now two to four times faster." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:448 +msgid "" +"(Contributed by Antoine Pitrou and Amaury Forgeot d'Arc, :issue:`4868`.)" +msgstr "" +"(Contribution par Antoine Pitrou et Amaury Forgeot d'Arc; :issue:`4868`.)" + +#: ../Doc/whatsnew/3.1.rst:450 +msgid "" +"The :mod:`json` module now has a C extension to substantially improve its " +"performance. In addition, the API was modified so that json works only " +"with :class:`str`, not with :class:`bytes`. That change makes the module " +"closely match the `JSON specification `_ which is defined " +"in terms of Unicode." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:456 +msgid "" +"(Contributed by Bob Ippolito and converted to Py3.1 by Antoine Pitrou and " +"Benjamin Peterson; :issue:`4136`.)" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:459 +msgid "" +"Unpickling now interns the attribute names of pickled objects. This saves " +"memory and allows pickles to be smaller." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:462 +msgid "(Contributed by Jake McGuire and Antoine Pitrou; :issue:`5084`.)" +msgstr "(Contribution par Jake McGuire et Antoine Pitrou; :issue:`5084`.)" + +#: ../Doc/whatsnew/3.1.rst:465 +msgid "IDLE" +msgstr "IDLE" + +#: ../Doc/whatsnew/3.1.rst:467 +msgid "" +"IDLE's format menu now provides an option to strip trailing whitespace from " +"a source file." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:470 +msgid "(Contributed by Roger D. Serwy; :issue:`5150`.)" +msgstr "(Contribution par Roger D. Serwy; :issue:`5150`.)" + +#: ../Doc/whatsnew/3.1.rst:473 +msgid "Build and C API Changes" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:475 +msgid "Changes to Python's build process and to the C API include:" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:477 +msgid "" +"Integers are now stored internally either in base 2**15 or in base 2**30, " +"the base being determined at build time. Previously, they were always " +"stored in base 2**15. Using base 2**30 gives significant performance " +"improvements on 64-bit machines, but benchmark results on 32-bit machines " +"have been mixed. Therefore, the default is to use base 2**30 on 64-bit " +"machines and base 2**15 on 32-bit machines; on Unix, there's a new configure " +"option ``--enable-big-digits`` that can be used to override this default." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:486 +msgid "" +"Apart from the performance improvements this change should be invisible to " +"end users, with one exception: for testing and debugging purposes there's a " +"new :attr:`sys.int_info` that provides information about the internal " +"format, giving the number of bits per digit and the size in bytes of the C " +"type used to store each digit::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:496 +msgid "(Contributed by Mark Dickinson; :issue:`4258`.)" +msgstr "(Contribution par Mark Dickinson; :issue:`4258`.)" + +#: ../Doc/whatsnew/3.1.rst:498 +msgid "" +"The :c:func:`PyLong_AsUnsignedLongLong()` function now handles a negative " +"*pylong* by raising :exc:`OverflowError` instead of :exc:`TypeError`." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:501 +msgid "(Contributed by Mark Dickinson and Lisandro Dalcrin; :issue:`5175`.)" +msgstr "(Contribution par Mark Dickinson et Lisandro Dalcrin; :issue:`5175`)" + +#: ../Doc/whatsnew/3.1.rst:503 +msgid "" +"Deprecated :c:func:`PyNumber_Int`. Use :c:func:`PyNumber_Long` instead." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:505 +msgid "(Contributed by Mark Dickinson; :issue:`4910`.)" +msgstr "(Contribution par Mark Dickinson; :issue:`4910`)" + +#: ../Doc/whatsnew/3.1.rst:507 +msgid "" +"Added a new :c:func:`PyOS_string_to_double` function to replace the " +"deprecated functions :c:func:`PyOS_ascii_strtod` and :c:func:" +"`PyOS_ascii_atof`." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:510 +msgid "(Contributed by Mark Dickinson; :issue:`5914`.)" +msgstr "(Contribution par Mark Dickinson; :issue:`5914`)" + +#: ../Doc/whatsnew/3.1.rst:512 +msgid "" +"Added :c:type:`PyCapsule` as a replacement for the :c:type:`PyCObject` API. " +"The principal difference is that the new type has a well defined interface " +"for passing typing safety information and a less complicated signature for " +"calling a destructor. The old type had a problematic API and is now " +"deprecated." +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:518 +msgid "(Contributed by Larry Hastings; :issue:`5630`.)" +msgstr "(Contribution par Larry Hastings; :issue:`5630`)" + +#: ../Doc/whatsnew/3.1.rst:521 +msgid "Porting to Python 3.1" +msgstr "Portage vers Python 3.1" + +#: ../Doc/whatsnew/3.1.rst:523 +msgid "" +"This section lists previously described changes and other bugfixes that may " +"require changes to your code:" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:526 +msgid "" +"The new floating point string representations can break existing doctests. " +"For example::" +msgstr "" + +#: ../Doc/whatsnew/3.1.rst:549 +msgid "" +"The automatic name remapping in the pickle module for protocol 2 or lower " +"can make Python 3.1 pickles unreadable in Python 3.0. One solution is to " +"use protocol 3. Another solution is to set the *fix_imports* option to " +"``False``. See the discussion above for more details." +msgstr "" diff --git a/whatsnew/3.2.po b/whatsnew/3.2.po new file mode 100644 index 000000000..9547dc3bd --- /dev/null +++ b/whatsnew/3.2.po @@ -0,0 +1,3254 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2018-07-03 11:14+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/whatsnew/3.2.rst:3 +msgid "What's New In Python 3.2" +msgstr "Nouveautés de Python 3.2" + +#: ../Doc/whatsnew/3.2.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/whatsnew/3.2.rst:5 +msgid "Raymond Hettinger" +msgstr "Raymond Hettinger" + +#: ../Doc/whatsnew/3.2.rst:51 +msgid "" +"This article explains the new features in Python 3.2 as compared to 3.1. It " +"focuses on a few highlights and gives a few examples. For full details, see " +"the `Misc/NEWS `_ file." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:59 +msgid ":pep:`392` - Python 3.2 Release Schedule" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:63 +msgid "PEP 384: Defining a Stable ABI" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:65 +msgid "" +"In the past, extension modules built for one Python version were often not " +"usable with other Python versions. Particularly on Windows, every feature " +"release of Python required rebuilding all extension modules that one wanted " +"to use. This requirement was the result of the free access to Python " +"interpreter internals that extension modules could use." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:71 +msgid "" +"With Python 3.2, an alternative approach becomes available: extension " +"modules which restrict themselves to a limited API (by defining " +"Py_LIMITED_API) cannot use many of the internals, but are constrained to a " +"set of API functions that are promised to be stable for several releases. As " +"a consequence, extension modules built for 3.2 in that mode will also work " +"with 3.3, 3.4, and so on. Extension modules that make use of details of " +"memory structures can still be built, but will need to be recompiled for " +"every feature release." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:82 +msgid ":pep:`384` - Defining a Stable ABI" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:83 +msgid "PEP written by Martin von Löwis." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:87 +msgid "PEP 389: Argparse Command Line Parsing Module" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:89 +msgid "" +"A new module for command line parsing, :mod:`argparse`, was introduced to " +"overcome the limitations of :mod:`optparse` which did not provide support " +"for positional arguments (not just options), subcommands, required options " +"and other common patterns of specifying and validating options." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:94 +msgid "" +"This module has already had widespread success in the community as a third-" +"party module. Being more fully featured than its predecessor, the :mod:" +"`argparse` module is now the preferred module for command-line processing. " +"The older module is still being kept available because of the substantial " +"amount of legacy code that depends on it." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:100 +msgid "" +"Here's an annotated example parser showing features like limiting results to " +"a set of choices, specifying a *metavar* in the help screen, validating that " +"one or more positional arguments is present, and making a required option::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:119 +msgid "Example of calling the parser on a command string::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:130 +msgid "Example of the parser's automatically generated help::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:149 +msgid "" +"An especially nice :mod:`argparse` feature is the ability to define " +"subparsers, each with their own argument patterns and help displays::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:175 +msgid ":pep:`389` - New Command Line Parsing Module" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:175 +msgid "PEP written by Steven Bethard." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:177 +msgid "" +":ref:`upgrading-optparse-code` for details on the differences from :mod:" +"`optparse`." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:181 +msgid "PEP 391: Dictionary Based Configuration for Logging" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:183 +msgid "" +"The :mod:`logging` module provided two kinds of configuration, one style " +"with function calls for each option or another style driven by an external " +"file saved in a :mod:`ConfigParser` format. Those options did not provide " +"the flexibility to create configurations from JSON or YAML files, nor did " +"they support incremental configuration, which is needed for specifying " +"logger options from a command line." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:190 +msgid "" +"To support a more flexible style, the module now offers :func:`logging." +"config.dictConfig` for specifying logging configuration with plain Python " +"dictionaries. The configuration options include formatters, handlers, " +"filters, and loggers. Here's a working example of a configuration " +"dictionary::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:214 +msgid "" +"If that dictionary is stored in a file called :file:`conf.json`, it can be " +"loaded and called with code like this::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:229 +msgid ":pep:`391` - Dictionary Based Configuration for Logging" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:230 +msgid "PEP written by Vinay Sajip." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:234 +msgid "PEP 3148: The ``concurrent.futures`` module" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:236 +msgid "" +"Code for creating and managing concurrency is being collected in a new top-" +"level namespace, *concurrent*. Its first member is a *futures* package " +"which provides a uniform high-level interface for managing threads and " +"processes." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:240 +msgid "" +"The design for :mod:`concurrent.futures` was inspired by the *java.util." +"concurrent* package. In that model, a running call and its result are " +"represented by a :class:`~concurrent.futures.Future` object that abstracts " +"features common to threads, processes, and remote procedure calls. That " +"object supports status checks (running or done), timeouts, cancellations, " +"adding callbacks, and access to results or exceptions." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:247 +msgid "" +"The primary offering of the new module is a pair of executor classes for " +"launching and managing calls. The goal of the executors is to make it " +"easier to use existing tools for making parallel calls. They save the effort " +"needed to setup a pool of resources, launch the calls, create a results " +"queue, add time-out handling, and limit the total number of threads, " +"processes, or remote procedure calls." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:254 +msgid "" +"Ideally, each application should share a single executor across multiple " +"components so that process and thread limits can be centrally managed. This " +"solves the design challenge that arises when each component has its own " +"competing strategy for resource management." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:259 +msgid "" +"Both classes share a common interface with three methods: :meth:`~concurrent." +"futures.Executor.submit` for scheduling a callable and returning a :class:" +"`~concurrent.futures.Future` object; :meth:`~concurrent.futures.Executor." +"map` for scheduling many asynchronous calls at a time, and :meth:" +"`~concurrent.futures.Executor.shutdown` for freeing resources. The class is " +"a :term:`context manager` and can be used in a :keyword:`with` statement to " +"assure that resources are automatically released when currently pending " +"futures are done executing." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:268 +msgid "" +"A simple of example of :class:`~concurrent.futures.ThreadPoolExecutor` is a " +"launch of four parallel threads for copying files::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:281 +msgid ":pep:`3148` - Futures -- Execute Computations Asynchronously" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:281 +msgid "PEP written by Brian Quinlan." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:283 +msgid "" +":ref:`Code for Threaded Parallel URL reads`, an " +"example using threads to fetch multiple web pages in parallel." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:286 +msgid "" +":ref:`Code for computing prime numbers in parallel`, an example demonstrating :class:`~concurrent.futures." +"ProcessPoolExecutor`." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:292 +msgid "PEP 3147: PYC Repository Directories" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:294 +msgid "" +"Python's scheme for caching bytecode in *.pyc* files did not work well in " +"environments with multiple Python interpreters. If one interpreter " +"encountered a cached file created by another interpreter, it would recompile " +"the source and overwrite the cached file, thus losing the benefits of " +"caching." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:299 +msgid "" +"The issue of \"pyc fights\" has become more pronounced as it has become " +"commonplace for Linux distributions to ship with multiple versions of " +"Python. These conflicts also arise with CPython alternatives such as Unladen " +"Swallow." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:303 +msgid "" +"To solve this problem, Python's import machinery has been extended to use " +"distinct filenames for each interpreter. Instead of Python 3.2 and Python " +"3.3 and Unladen Swallow each competing for a file called \"mymodule.pyc\", " +"they will now look for \"mymodule.cpython-32.pyc\", \"mymodule.cpython-33.pyc" +"\", and \"mymodule.unladen10.pyc\". And to prevent all of these new files " +"from cluttering source directories, the *pyc* files are now collected in a " +"\"__pycache__\" directory stored under the package directory." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:311 +msgid "" +"Aside from the filenames and target directories, the new scheme has a few " +"aspects that are visible to the programmer:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:314 +msgid "" +"Imported modules now have a :attr:`__cached__` attribute which stores the " +"name of the actual file that was imported:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:321 +msgid "" +"The tag that is unique to each interpreter is accessible from the :mod:`imp` " +"module:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:328 +msgid "" +"Scripts that try to deduce source filename from the imported file now need " +"to be smarter. It is no longer sufficient to simply strip the \"c\" from a " +"\".pyc\" filename. Instead, use the new functions in the :mod:`imp` module:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:337 +msgid "" +"The :mod:`py_compile` and :mod:`compileall` modules have been updated to " +"reflect the new naming convention and target directory. The command-line " +"invocation of *compileall* has new options: ``-i`` for specifying a list of " +"files and directories to compile and ``-b`` which causes bytecode files to " +"be written to their legacy location rather than *__pycache__*." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:344 +msgid "" +"The :mod:`importlib.abc` module has been updated with new :term:`abstract " +"base classes ` for loading bytecode files. The " +"obsolete ABCs, :class:`~importlib.abc.PyLoader` and :class:`~importlib.abc." +"PyPycLoader`, have been deprecated (instructions on how to stay Python 3.1 " +"compatible are included with the documentation)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:352 +msgid ":pep:`3147` - PYC Repository Directories" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:353 ../Doc/whatsnew/3.2.rst:384 +msgid "PEP written by Barry Warsaw." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:357 +msgid "PEP 3149: ABI Version Tagged .so Files" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:359 +msgid "" +"The PYC repository directory allows multiple bytecode cache files to be co-" +"located. This PEP implements a similar mechanism for shared object files by " +"giving them a common directory and distinct names for each version." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:363 +msgid "" +"The common directory is \"pyshared\" and the file names are made distinct by " +"identifying the Python implementation (such as CPython, PyPy, Jython, etc.), " +"the major and minor version numbers, and optional build flags (such as \"d\" " +"for debug, \"m\" for pymalloc, \"u\" for wide-unicode). For an arbitrary " +"package \"foo\", you may see these files when the distribution package is " +"installed::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:372 +msgid "" +"In Python itself, the tags are accessible from functions in the :mod:" +"`sysconfig` module::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:383 +msgid ":pep:`3149` - ABI Version Tagged .so Files" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:388 +msgid "PEP 3333: Python Web Server Gateway Interface v1.0.1" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:390 +msgid "" +"This informational PEP clarifies how bytes/text issues are to be handled by " +"the WSGI protocol. The challenge is that string handling in Python 3 is " +"most conveniently handled with the :class:`str` type even though the HTTP " +"protocol is itself bytes oriented." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:395 +msgid "" +"The PEP differentiates so-called *native strings* that are used for request/" +"response headers and metadata versus *byte strings* which are used for the " +"bodies of requests and responses." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:399 +msgid "" +"The *native strings* are always of type :class:`str` but are restricted to " +"code points between *U+0000* through *U+00FF* which are translatable to " +"bytes using *Latin-1* encoding. These strings are used for the keys and " +"values in the environment dictionary and for response headers and statuses " +"in the :func:`start_response` function. They must follow :rfc:`2616` with " +"respect to encoding. That is, they must either be *ISO-8859-1* characters or " +"use :rfc:`2047` MIME encoding." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:407 +msgid "" +"For developers porting WSGI applications from Python 2, here are the salient " +"points:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:410 +msgid "" +"If the app already used strings for headers in Python 2, no change is needed." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:412 +msgid "" +"If instead, the app encoded output headers or decoded input headers, then " +"the headers will need to be re-encoded to Latin-1. For example, an output " +"header encoded in utf-8 was using ``h.encode('utf-8')`` now needs to convert " +"from bytes to native strings using ``h.encode('utf-8').decode('latin-1')``." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:417 +msgid "" +"Values yielded by an application or sent using the :meth:`write` method must " +"be byte strings. The :func:`start_response` function and environ must use " +"native strings. The two cannot be mixed." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:421 +msgid "" +"For server implementers writing CGI-to-WSGI pathways or other CGI-style " +"protocols, the users must to be able access the environment using native " +"strings even though the underlying platform may have a different " +"convention. To bridge this gap, the :mod:`wsgiref` module has a new " +"function, :func:`wsgiref.handlers.read_environ` for transcoding CGI " +"variables from :attr:`os.environ` into native strings and returning a new " +"dictionary." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:430 +msgid ":pep:`3333` - Python Web Server Gateway Interface v1.0.1" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:431 +msgid "PEP written by Phillip Eby." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:435 +msgid "Other Language Changes" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:437 +msgid "Some smaller changes made to the core Python language are:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:439 +msgid "" +"String formatting for :func:`format` and :meth:`str.format` gained new " +"capabilities for the format character **#**. Previously, for integers in " +"binary, octal, or hexadecimal, it caused the output to be prefixed with " +"'0b', '0o', or '0x' respectively. Now it can also handle floats, complex, " +"and Decimal, causing the output to always have a decimal point even when no " +"digits follow it." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:451 +msgid "" +"(Suggested by Mark Dickinson and implemented by Eric Smith in :issue:`7094`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:453 +msgid "" +"There is also a new :meth:`str.format_map` method that extends the " +"capabilities of the existing :meth:`str.format` method by accepting " +"arbitrary :term:`mapping` objects. This new method makes it possible to use " +"string formatting with any of Python's many dictionary-like objects such as :" +"class:`~collections.defaultdict`, :class:`~shelve.Shelf`, :class:" +"`~configparser.ConfigParser`, or :mod:`dbm`. It is also useful with custom :" +"class:`dict` subclasses that normalize keys before look-up or that supply a :" +"meth:`__missing__` method for unknown keys::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:480 +msgid "" +"(Suggested by Raymond Hettinger and implemented by Eric Smith in :issue:" +"`6081`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:483 +msgid "" +"The interpreter can now be started with a quiet option, ``-q``, to prevent " +"the copyright and version information from being displayed in the " +"interactive mode. The option can be introspected using the :attr:`sys." +"flags` attribute:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:495 +msgid "(Contributed by Marcin Wojdyr in :issue:`1772833`)." +msgstr "(Contribution par Marcin Wojdyr; :issue:`1772833`)." + +#: ../Doc/whatsnew/3.2.rst:497 +msgid "" +"The :func:`hasattr` function works by calling :func:`getattr` and detecting " +"whether an exception is raised. This technique allows it to detect methods " +"created dynamically by :meth:`__getattr__` or :meth:`__getattribute__` which " +"would otherwise be absent from the class dictionary. Formerly, *hasattr* " +"would catch any exception, possibly masking genuine errors. Now, *hasattr* " +"has been tightened to only catch :exc:`AttributeError` and let other " +"exceptions pass through::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:516 +msgid "" +"(Discovered by Yury Selivanov and fixed by Benjamin Peterson; :issue:`9666`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:518 +msgid "" +"The :func:`str` of a float or complex number is now the same as its :func:" +"`repr`. Previously, the :func:`str` form was shorter but that just caused " +"confusion and is no longer needed now that the shortest possible :func:" +"`repr` is displayed by default:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:529 +msgid "(Proposed and implemented by Mark Dickinson; :issue:`9337`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:531 +msgid "" +":class:`memoryview` objects now have a :meth:`~memoryview.release()` method " +"and they also now support the context management protocol. This allows " +"timely release of any resources that were acquired when requesting a buffer " +"from the original object." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:540 +msgid "(Added by Antoine Pitrou; :issue:`9757`.)" +msgstr "(Contribution par Antoine Pitrou; :issue:`9757`.)" + +#: ../Doc/whatsnew/3.2.rst:542 +msgid "" +"Previously it was illegal to delete a name from the local namespace if it " +"occurs as a free variable in a nested block::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:551 +msgid "" +"This is now allowed. Remember that the target of an :keyword:`except` " +"clause is cleared, so this code which used to work with Python 2.6, raised " +"a :exc:`SyntaxError` with Python 3.1 and now works again::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:564 +msgid "(See :issue:`4617`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:566 +msgid "" +"The internal :c:type:`structsequence` tool now creates subclasses of tuple. " +"This means that C structures like those returned by :func:`os.stat`, :func:" +"`time.gmtime`, and :attr:`sys.version_info` now work like a :term:`named " +"tuple` and now work with functions and methods that expect a tuple as an " +"argument. This is a big step forward in making the C structures as flexible " +"as their pure Python counterparts:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:579 +msgid "" +"(Suggested by Arfrever Frehtes Taifersar Arahesis and implemented by " +"Benjamin Peterson in :issue:`8413`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:582 +msgid "" +"Warnings are now easier to control using the :envvar:`PYTHONWARNINGS` " +"environment variable as an alternative to using ``-W`` at the command line:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:589 +msgid "" +"(Suggested by Barry Warsaw and implemented by Philip Jenvey in :issue:" +"`7301`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:591 +msgid "" +"A new warning category, :exc:`ResourceWarning`, has been added. It is " +"emitted when potential issues with resource consumption or cleanup are " +"detected. It is silenced by default in normal release builds but can be " +"enabled through the means provided by the :mod:`warnings` module, or on the " +"command line." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:597 +msgid "" +"A :exc:`ResourceWarning` is issued at interpreter shutdown if the :data:`gc." +"garbage` list isn't empty, and if :attr:`gc.DEBUG_UNCOLLECTABLE` is set, all " +"uncollectable objects are printed. This is meant to make the programmer " +"aware that their code contains object finalization issues." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:602 +msgid "" +"A :exc:`ResourceWarning` is also issued when a :term:`file object` is " +"destroyed without having been explicitly closed. While the deallocator for " +"such object ensures it closes the underlying operating system resource " +"(usually, a file descriptor), the delay in deallocating the object could " +"produce various issues, especially under Windows. Here is an example of " +"enabling the warning from the command line:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:616 +msgid "" +"(Added by Antoine Pitrou and Georg Brandl in :issue:`10093` and :issue:" +"`477863`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:618 +msgid "" +":class:`range` objects now support *index* and *count* methods. This is part " +"of an effort to make more objects fully implement the :class:`collections." +"Sequence` :term:`abstract base class`. As a result, the language will have " +"a more uniform API. In addition, :class:`range` objects now support slicing " +"and negative indices, even with values larger than :attr:`sys.maxsize`. " +"This makes *range* more interoperable with lists::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:634 +msgid "" +"(Contributed by Daniel Stutzbach in :issue:`9213`, by Alexander Belopolsky " +"in :issue:`2690`, and by Nick Coghlan in :issue:`10889`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:637 +msgid "" +"The :func:`callable` builtin function from Py2.x was resurrected. It " +"provides a concise, readable alternative to using an :term:`abstract base " +"class` in an expression like ``isinstance(x, collections.Callable)``:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:646 +msgid "(See :issue:`10518`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:648 +msgid "" +"Python's import mechanism can now load modules installed in directories with " +"non-ASCII characters in the path name. This solved an aggravating problem " +"with home directories for users with non-ASCII characters in their usernames." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:652 +msgid "(Required extensive work by Victor Stinner in :issue:`9425`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:656 +msgid "New, Improved, and Deprecated Modules" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:658 +msgid "" +"Python's standard library has undergone significant maintenance efforts and " +"quality improvements." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:661 +msgid "" +"The biggest news for Python 3.2 is that the :mod:`email` package, :mod:" +"`mailbox` module, and :mod:`nntplib` modules now work correctly with the " +"bytes/text model in Python 3. For the first time, there is correct handling " +"of messages with mixed encodings." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:666 +msgid "" +"Throughout the standard library, there has been more careful attention to " +"encodings and text versus bytes issues. In particular, interactions with " +"the operating system are now better able to exchange non-ASCII data using " +"the Windows MBCS encoding, locale-aware encodings, or UTF-8." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:671 +msgid "" +"Another significant win is the addition of substantially better support for " +"*SSL* connections and security certificates." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:674 +msgid "" +"In addition, more classes now implement a :term:`context manager` to support " +"convenient and reliable resource clean-up using a :keyword:`with` statement." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:678 +msgid "email" +msgstr "email" + +#: ../Doc/whatsnew/3.2.rst:680 +msgid "" +"The usability of the :mod:`email` package in Python 3 has been mostly fixed " +"by the extensive efforts of R. David Murray. The problem was that emails " +"are typically read and stored in the form of :class:`bytes` rather than :" +"class:`str` text, and they may contain multiple encodings within a single " +"email. So, the email package had to be extended to parse and generate email " +"messages in bytes format." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:687 +msgid "" +"New functions :func:`~email.message_from_bytes` and :func:`~email." +"message_from_binary_file`, and new classes :class:`~email.parser." +"BytesFeedParser` and :class:`~email.parser.BytesParser` allow binary message " +"data to be parsed into model objects." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:692 +msgid "" +"Given bytes input to the model, :meth:`~email.message.Message.get_payload` " +"will by default decode a message body that has a :mailheader:`Content-" +"Transfer-Encoding` of *8bit* using the charset specified in the MIME headers " +"and return the resulting string." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:697 +msgid "" +"Given bytes input to the model, :class:`~email.generator.Generator` will " +"convert message bodies that have a :mailheader:`Content-Transfer-Encoding` " +"of *8bit* to instead have a *7bit* :mailheader:`Content-Transfer-Encoding`." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:701 +msgid "" +"Headers with unencoded non-ASCII bytes are deemed to be :rfc:`2047`\\ -" +"encoded using the *unknown-8bit* character set." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:704 +msgid "" +"A new class :class:`~email.generator.BytesGenerator` produces bytes as " +"output, preserving any unchanged non-ASCII data that was present in the " +"input used to build the model, including message bodies with a :mailheader:" +"`Content-Transfer-Encoding` of *8bit*." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:709 +msgid "" +"The :mod:`smtplib` :class:`~smtplib.SMTP` class now accepts a byte string " +"for the *msg* argument to the :meth:`~smtplib.SMTP.sendmail` method, and a " +"new method, :meth:`~smtplib.SMTP.send_message` accepts a :class:`~email." +"message.Message` object and can optionally obtain the *from_addr* and " +"*to_addrs* addresses directly from the object." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:715 +msgid "" +"(Proposed and implemented by R. David Murray, :issue:`4661` and :issue:" +"`10321`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:718 +msgid "elementtree" +msgstr "elementtree" + +#: ../Doc/whatsnew/3.2.rst:720 +msgid "" +"The :mod:`xml.etree.ElementTree` package and its :mod:`xml.etree." +"cElementTree` counterpart have been updated to version 1.3." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:723 +msgid "Several new and useful functions and methods have been added:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:725 +msgid "" +":func:`xml.etree.ElementTree.fromstringlist` which builds an XML document " +"from a sequence of fragments" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:727 +msgid "" +":func:`xml.etree.ElementTree.register_namespace` for registering a global " +"namespace prefix" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:729 +msgid "" +":func:`xml.etree.ElementTree.tostringlist` for string representation " +"including all sublists" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:731 +msgid "" +":meth:`xml.etree.ElementTree.Element.extend` for appending a sequence of " +"zero or more elements" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:733 +msgid "" +":meth:`xml.etree.ElementTree.Element.iterfind` searches an element and " +"subelements" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:735 +msgid "" +":meth:`xml.etree.ElementTree.Element.itertext` creates a text iterator over " +"an element and its subelements" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:737 +msgid "" +":meth:`xml.etree.ElementTree.TreeBuilder.end` closes the current element" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:738 +msgid "" +":meth:`xml.etree.ElementTree.TreeBuilder.doctype` handles a doctype " +"declaration" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:741 +msgid "Two methods have been deprecated:" +msgstr "Deux méthodes ont été dépréciées :" + +#: ../Doc/whatsnew/3.2.rst:743 +msgid ":meth:`xml.etree.ElementTree.getchildren` use ``list(elem)`` instead." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:744 +msgid ":meth:`xml.etree.ElementTree.getiterator` use ``Element.iter`` instead." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:746 +msgid "" +"For details of the update, see `Introducing ElementTree `_ on Fredrik Lundh's website." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:749 +msgid "(Contributed by Florent Xicluna and Fredrik Lundh, :issue:`6472`.)" +msgstr "(Contribution par Florent Xicluna et Fredrik Lundh; :issue:`6472`)" + +#: ../Doc/whatsnew/3.2.rst:752 +msgid "functools" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:754 +msgid "" +"The :mod:`functools` module includes a new decorator for caching function " +"calls. :func:`functools.lru_cache` can save repeated queries to an external " +"resource whenever the results are expected to be the same." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:758 +msgid "" +"For example, adding a caching decorator to a database query function can " +"save database accesses for popular searches:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:771 +msgid "" +"To help with choosing an effective cache size, the wrapped function is " +"instrumented for tracking cache statistics:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:777 +msgid "" +"If the phonelist table gets updated, the outdated contents of the cache can " +"be cleared with:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:782 +msgid "" +"(Contributed by Raymond Hettinger and incorporating design ideas from Jim " +"Baker, Miki Tebeka, and Nick Coghlan; see `recipe 498245 `_\\, `recipe 577479 `_\\, :issue:`10586`, and :issue:`10593`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:788 +msgid "" +"The :func:`functools.wraps` decorator now adds a :attr:`__wrapped__` " +"attribute pointing to the original callable function. This allows wrapped " +"functions to be introspected. It also copies :attr:`__annotations__` if " +"defined. And now it also gracefully skips over missing attributes such as :" +"attr:`__doc__` which might not be defined for the wrapped callable." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:794 +msgid "" +"In the above example, the cache can be removed by recovering the original " +"function:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:799 +msgid "" +"(By Nick Coghlan and Terrence Cole; :issue:`9567`, :issue:`3445`, and :issue:" +"`8814`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:802 +msgid "" +"To help write classes with rich comparison methods, a new decorator :func:" +"`functools.total_ordering` will use existing equality and inequality methods " +"to fill in the remaining methods." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:806 +msgid "" +"For example, supplying *__eq__* and *__lt__* will enable :func:`~functools." +"total_ordering` to fill-in *__le__*, *__gt__* and *__ge__*::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:819 +msgid "" +"With the *total_ordering* decorator, the remaining comparison methods are " +"filled in automatically." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:822 ../Doc/whatsnew/3.2.rst:834 +#: ../Doc/whatsnew/3.2.rst:878 ../Doc/whatsnew/3.2.rst:899 +#: ../Doc/whatsnew/3.2.rst:913 ../Doc/whatsnew/3.2.rst:1783 +#: ../Doc/whatsnew/3.2.rst:1828 +msgid "(Contributed by Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:824 +msgid "" +"To aid in porting programs from Python 2, the :func:`functools.cmp_to_key` " +"function converts an old-style comparison function to modern :term:`key " +"function`:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:831 +msgid "" +"For sorting examples and a brief sorting tutorial, see the `Sorting HowTo " +"`_ tutorial." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:837 +msgid "itertools" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:839 +msgid "" +"The :mod:`itertools` module has a new :func:`~itertools.accumulate` function " +"modeled on APL's *scan* operator and Numpy's *accumulate* function:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:850 +msgid "" +"For an example using :func:`~itertools.accumulate`, see the :ref:`examples " +"for the random module `." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:853 +msgid "" +"(Contributed by Raymond Hettinger and incorporating design suggestions from " +"Mark Dickinson.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:857 +msgid "collections" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:859 +msgid "" +"The :class:`collections.Counter` class now has two forms of in-place " +"subtraction, the existing *-=* operator for `saturating subtraction `_ and the new :meth:" +"`~collections.Counter.subtract` method for regular subtraction. The former " +"is suitable for `multisets `_ which " +"only have positive counts, and the latter is more suitable for use cases " +"that allow negative counts:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:880 +msgid "" +"The :class:`collections.OrderedDict` class has a new method :meth:" +"`~collections.OrderedDict.move_to_end` which takes an existing key and moves " +"it to either the first or last position in the ordered sequence." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:884 +msgid "" +"The default is to move an item to the last position. This is equivalent of " +"renewing an entry with ``od[k] = od.pop(k)``." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:887 +msgid "" +"A fast move-to-end operation is useful for resequencing entries. For " +"example, an ordered dictionary can be used to track order of access by aging " +"entries from the oldest to the most recently accessed." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:901 +msgid "" +"The :class:`collections.deque` class grew two new methods :meth:" +"`~collections.deque.count` and :meth:`~collections.deque.reverse` that make " +"them more substitutable for :class:`list` objects:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:916 +msgid "threading" +msgstr "threading" + +#: ../Doc/whatsnew/3.2.rst:918 +msgid "" +"The :mod:`threading` module has a new :class:`~threading.Barrier` " +"synchronization class for making multiple threads wait until all of them " +"have reached a common barrier point. Barriers are useful for making sure " +"that a task with multiple preconditions does not run until all of the " +"predecessor tasks are complete." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:924 +msgid "" +"Barriers can work with an arbitrary number of threads. This is a " +"generalization of a `Rendezvous `_ which is defined for only two threads." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:928 +msgid "" +"Implemented as a two-phase cyclic barrier, :class:`~threading.Barrier` " +"objects are suitable for use in loops. The separate *filling* and " +"*draining* phases assure that all threads get released (drained) before any " +"one of them can loop back and re-enter the barrier. The barrier fully " +"resets after each cycle." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:933 +msgid "Example of using barriers::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:947 +msgid "" +"In this example, the barrier enforces a rule that votes cannot be counted at " +"any polling site until all polls are closed. Notice how a solution with a " +"barrier is similar to one with :meth:`threading.Thread.join`, but the " +"threads stay alive and continue to do work (summarizing ballots) after the " +"barrier point is crossed." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:953 +msgid "" +"If any of the predecessor tasks can hang or be delayed, a barrier can be " +"created with an optional *timeout* parameter. Then if the timeout period " +"elapses before all the predecessor tasks reach the barrier point, all " +"waiting threads are released and a :exc:`~threading.BrokenBarrierError` " +"exception is raised::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:969 +msgid "" +"In this example, the barrier enforces a more robust rule. If some election " +"sites do not finish before midnight, the barrier times-out and the ballots " +"are sealed and deposited in a queue for later handling." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:973 +msgid "" +"See `Barrier Synchronization Patterns `_ for more examples " +"of how barriers can be used in parallel computing. Also, there is a simple " +"but thorough explanation of barriers in `The Little Book of Semaphores " +"`_, " +"*section 3.6*." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:979 +msgid "" +"(Contributed by Kristján Valur Jónsson with an API review by Jeffrey Yasskin " +"in :issue:`8777`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:983 +msgid "datetime and time" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:985 +msgid "" +"The :mod:`datetime` module has a new type :class:`~datetime.timezone` that " +"implements the :class:`~datetime.tzinfo` interface by returning a fixed UTC " +"offset and timezone name. This makes it easier to create timezone-aware " +"datetime objects::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:998 +msgid "" +"Also, :class:`~datetime.timedelta` objects can now be multiplied by :class:" +"`float` and divided by :class:`float` and :class:`int` objects. And :class:" +"`~datetime.timedelta` objects can now divide one another." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1002 +msgid "" +"The :meth:`datetime.date.strftime` method is no longer restricted to years " +"after 1900. The new supported year range is from 1000 to 9999 inclusive." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1005 +msgid "" +"Whenever a two-digit year is used in a time tuple, the interpretation has " +"been governed by :attr:`time.accept2dyear`. The default is ``True`` which " +"means that for a two-digit year, the century is guessed according to the " +"POSIX rules governing the ``%y`` strptime format." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1010 +msgid "" +"Starting with Py3.2, use of the century guessing heuristic will emit a :exc:" +"`DeprecationWarning`. Instead, it is recommended that :attr:`time." +"accept2dyear` be set to ``False`` so that large date ranges can be used " +"without guesswork::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1029 +msgid "" +"Several functions now have significantly expanded date ranges. When :attr:" +"`time.accept2dyear` is false, the :func:`time.asctime` function will accept " +"any year that fits in a C int, while the :func:`time.mktime` and :func:`time." +"strftime` functions will accept the full range supported by the " +"corresponding operating system functions." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1035 +msgid "" +"(Contributed by Alexander Belopolsky and Victor Stinner in :issue:" +"`1289118`, :issue:`5094`, :issue:`6641`, :issue:`2706`, :issue:`1777412`, :" +"issue:`8013`, and :issue:`10827`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1042 +msgid "math" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1044 +msgid "" +"The :mod:`math` module has been updated with six new functions inspired by " +"the C99 standard." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1047 +msgid "" +"The :func:`~math.isfinite` function provides a reliable and fast way to " +"detect special values. It returns ``True`` for regular numbers and " +"``False`` for *Nan* or *Infinity*:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1055 +msgid "" +"The :func:`~math.expm1` function computes ``e**x-1`` for small values of *x* " +"without incurring the loss of precision that usually accompanies the " +"subtraction of nearly equal quantities:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1063 +msgid "" +"The :func:`~math.erf` function computes a probability integral or `Gaussian " +"error function `_. The " +"complementary error function, :func:`~math.erfc`, is ``1 - erf(x)``:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1078 +msgid "" +"The :func:`~math.gamma` function is a continuous extension of the factorial " +"function. See https://en.wikipedia.org/wiki/Gamma_function for details. " +"Because the function is related to factorials, it grows large even for small " +"values of *x*, so there is also a :func:`~math.lgamma` function for " +"computing the natural logarithm of the gamma function:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1090 +msgid "(Contributed by Mark Dickinson.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1093 +msgid "abc" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1095 +msgid "" +"The :mod:`abc` module now supports :func:`~abc.abstractclassmethod` and :" +"func:`~abc.abstractstaticmethod`." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1098 +msgid "" +"These tools make it possible to define an :term:`abstract base class` that " +"requires a particular :func:`classmethod` or :func:`staticmethod` to be " +"implemented::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1110 +msgid "(Patch submitted by Daniel Urban; :issue:`5867`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1113 +msgid "io" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1115 +msgid "" +"The :class:`io.BytesIO` has a new method, :meth:`~io.BytesIO.getbuffer`, " +"which provides functionality similar to :func:`memoryview`. It creates an " +"editable view of the data without making a copy. The buffer's random access " +"and support for slice notation are well-suited to in-place editing::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1141 +msgid "(Contributed by Antoine Pitrou in :issue:`5506`.)" +msgstr "(Contribution par Antoine Pitrou; :issue:`5506`.)" + +#: ../Doc/whatsnew/3.2.rst:1144 +msgid "reprlib" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1146 +msgid "" +"When writing a :meth:`__repr__` method for a custom container, it is easy to " +"forget to handle the case where a member refers back to the container " +"itself. Python's builtin objects such as :class:`list` and :class:`set` " +"handle self-reference by displaying \"...\" in the recursive part of the " +"representation string." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1152 +msgid "" +"To help write such :meth:`__repr__` methods, the :mod:`reprlib` module has a " +"new decorator, :func:`~reprlib.recursive_repr`, for detecting recursive " +"calls to :meth:`__repr__` and substituting a placeholder string instead::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1167 +msgid "(Contributed by Raymond Hettinger in :issue:`9826` and :issue:`9840`.)" +msgstr "(Contribution par Raymond Hettinger; :issue:`9826` et issue:`9840`)" + +#: ../Doc/whatsnew/3.2.rst:1170 +msgid "logging" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1172 +msgid "" +"In addition to dictionary-based configuration described above, the :mod:" +"`logging` package has many other improvements." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1175 +msgid "" +"The logging documentation has been augmented by a :ref:`basic tutorial " +"`\\, an :ref:`advanced tutorial `\\, and a :ref:`cookbook ` of logging recipes. " +"These documents are the fastest way to learn about logging." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1180 +msgid "" +"The :func:`logging.basicConfig` set-up function gained a *style* argument to " +"support three different types of string formatting. It defaults to \"%\" " +"for traditional %-formatting, can be set to \"{\" for the new :meth:`str." +"format` style, or can be set to \"$\" for the shell-style formatting " +"provided by :class:`string.Template`. The following three configurations " +"are equivalent::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1191 +msgid "" +"If no configuration is set-up before a logging event occurs, there is now a " +"default configuration using a :class:`~logging.StreamHandler` directed to :" +"attr:`sys.stderr` for events of ``WARNING`` level or higher. Formerly, an " +"event occurring before a configuration was set-up would either raise an " +"exception or silently drop the event depending on the value of :attr:" +"`logging.raiseExceptions`. The new default handler is stored in :attr:" +"`logging.lastResort`." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1199 +msgid "" +"The use of filters has been simplified. Instead of creating a :class:" +"`~logging.Filter` object, the predicate can be any Python callable that " +"returns ``True`` or ``False``." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1203 +msgid "" +"There were a number of other improvements that add flexibility and simplify " +"configuration. See the module documentation for a full listing of changes " +"in Python 3.2." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1208 +msgid "csv" +msgstr "csv" + +#: ../Doc/whatsnew/3.2.rst:1210 +msgid "" +"The :mod:`csv` module now supports a new dialect, :class:`~csv." +"unix_dialect`, which applies quoting for all fields and a traditional Unix " +"style with ``'\\n'`` as the line terminator. The registered dialect name is " +"``unix``." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1214 +msgid "" +"The :class:`csv.DictWriter` has a new method, :meth:`~csv.DictWriter." +"writeheader` for writing-out an initial row to document the field names::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1228 +msgid "" +"(New dialect suggested by Jay Talbot in :issue:`5975`, and the new method " +"suggested by Ed Abraham in :issue:`1537721`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1232 +msgid "contextlib" +msgstr "contextlib" + +#: ../Doc/whatsnew/3.2.rst:1234 +msgid "" +"There is a new and slightly mind-blowing tool :class:`~contextlib." +"ContextDecorator` that is helpful for creating a :term:`context manager` " +"that does double duty as a function decorator." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1238 +msgid "" +"As a convenience, this new functionality is used by :func:`~contextlib." +"contextmanager` so that no extra effort is needed to support both roles." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1242 +msgid "" +"The basic idea is that both context managers and function decorators can be " +"used for pre-action and post-action wrappers. Context managers wrap a group " +"of statements using a :keyword:`with` statement, and function decorators " +"wrap a group of statements enclosed in a function. So, occasionally there " +"is a need to write a pre-action or post-action wrapper that can be used in " +"either role." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1248 +msgid "" +"For example, it is sometimes useful to wrap functions or groups of " +"statements with a logger that can track the time of entry and time of exit. " +"Rather than writing both a function decorator and a context manager for the " +"task, the :func:`~contextlib.contextmanager` provides both capabilities in a " +"single definition::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1265 +msgid "Formerly, this would have only been usable as a context manager::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1271 +msgid "Now, it can be used as a decorator as well::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1278 +msgid "" +"Trying to fulfill two roles at once places some limitations on the " +"technique. Context managers normally have the flexibility to return an " +"argument usable by a :keyword:`with` statement, but there is no parallel for " +"function decorators." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1282 +msgid "" +"In the above example, there is not a clean way for the " +"*track_entry_and_exit* context manager to return a logging instance for use " +"in the body of enclosed statements." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1286 +msgid "(Contributed by Michael Foord in :issue:`9110`.)" +msgstr "(Contribution par Michael Foord; :issue:`9110`)" + +#: ../Doc/whatsnew/3.2.rst:1289 +msgid "decimal and fractions" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1291 +msgid "" +"Mark Dickinson crafted an elegant and efficient scheme for assuring that " +"different numeric datatypes will have the same hash value whenever their " +"actual values are equal (:issue:`8188`)::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1298 +msgid "" +"Some of the hashing details are exposed through a new attribute, :attr:`sys." +"hash_info`, which describes the bit width of the hash value, the prime " +"modulus, the hash values for *infinity* and *nan*, and the multiplier used " +"for the imaginary part of a number:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1306 +msgid "" +"An early decision to limit the inter-operability of various numeric types " +"has been relaxed. It is still unsupported (and ill-advised) to have " +"implicit mixing in arithmetic expressions such as ``Decimal('1.1') + " +"float('1.1')`` because the latter loses information in the process of " +"constructing the binary float. However, since existing floating point value " +"can be converted losslessly to either a decimal or rational representation, " +"it makes sense to add them to the constructor and to support mixed-type " +"comparisons." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1314 +msgid "" +"The :class:`decimal.Decimal` constructor now accepts :class:`float` objects " +"directly so there in no longer a need to use the :meth:`~decimal.Decimal." +"from_float` method (:issue:`8257`)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1318 +msgid "" +"Mixed type comparisons are now fully supported so that :class:`~decimal." +"Decimal` objects can be directly compared with :class:`float` and :class:" +"`fractions.Fraction` (:issue:`2531` and :issue:`8188`)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1322 +msgid "" +"Similar changes were made to :class:`fractions.Fraction` so that the :meth:" +"`~fractions.Fraction.from_float()` and :meth:`~fractions.Fraction." +"from_decimal` methods are no longer needed (:issue:`8294`):" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1333 +msgid "" +"Another useful change for the :mod:`decimal` module is that the :attr:" +"`Context.clamp` attribute is now public. This is useful in creating " +"contexts that correspond to the decimal interchange formats specified in " +"IEEE 754 (see :issue:`8540`)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1338 +msgid "(Contributed by Mark Dickinson and Raymond Hettinger.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1341 +msgid "ftp" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1343 +msgid "" +"The :class:`ftplib.FTP` class now supports the context management protocol " +"to unconditionally consume :exc:`socket.error` exceptions and to close the " +"FTP connection when done::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1358 +msgid "" +"Other file-like objects such as :class:`mmap.mmap` and :func:`fileinput." +"input` also grew auto-closing context managers::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1365 +msgid "" +"(Contributed by Tarek Ziadé and Giampaolo Rodolà in :issue:`4972`, and by " +"Georg Brandl in :issue:`8046` and :issue:`1286`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1368 +msgid "" +"The :class:`~ftplib.FTP_TLS` class now accepts a *context* parameter, which " +"is a :class:`ssl.SSLContext` object allowing bundling SSL configuration " +"options, certificates and private keys into a single (potentially long-" +"lived) structure." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1372 +msgid "(Contributed by Giampaolo Rodolà; :issue:`8806`.)" +msgstr "(Contribution par Giampaolo Rodolà; :issue:`8806`)" + +#: ../Doc/whatsnew/3.2.rst:1375 +msgid "popen" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1377 +msgid "" +"The :func:`os.popen` and :func:`subprocess.Popen` functions now support :" +"keyword:`with` statements for auto-closing of the file descriptors." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1380 +msgid "" +"(Contributed by Antoine Pitrou and Brian Curtin in :issue:`7461` and :issue:" +"`10554`.)" +msgstr "" +"(Contribution par Antoine Pitrou et Brian Curtin; :issue:`7461` et :issue:" +"`10554`)" + +#: ../Doc/whatsnew/3.2.rst:1384 +msgid "select" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1386 +msgid "" +"The :mod:`select` module now exposes a new, constant attribute, :attr:" +"`~select.PIPE_BUF`, which gives the minimum number of bytes which are " +"guaranteed not to block when :func:`select.select` says a pipe is ready for " +"writing." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1395 +msgid "(Available on Unix systems. Patch by Sébastien Sablé in :issue:`9862`)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1398 +msgid "gzip and zipfile" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1400 +msgid "" +":class:`gzip.GzipFile` now implements the :class:`io.BufferedIOBase` :term:" +"`abstract base class` (except for ``truncate()``). It also has a :meth:" +"`~gzip.GzipFile.peek` method and supports unseekable as well as zero-padded " +"file objects." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1405 +msgid "" +"The :mod:`gzip` module also gains the :func:`~gzip.compress` and :func:" +"`~gzip.decompress` functions for easier in-memory compression and " +"decompression. Keep in mind that text needs to be encoded as :class:`bytes` " +"before compressing and decompressing:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1422 +msgid "" +"(Contributed by Anand B. Pillai in :issue:`3488`; and by Antoine Pitrou, Nir " +"Aides and Brian Curtin in :issue:`9962`, :issue:`1675951`, :issue:`7471` " +"and :issue:`2846`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1426 +msgid "" +"Also, the :class:`zipfile.ZipExtFile` class was reworked internally to " +"represent files stored inside an archive. The new implementation is " +"significantly faster and can be wrapped in an :class:`io.BufferedReader` " +"object for more speedups. It also solves an issue where interleaved calls " +"to *read* and *readline* gave the wrong results." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1432 +msgid "(Patch submitted by Nir Aides in :issue:`7610`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1435 +msgid "tarfile" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1437 +msgid "" +"The :class:`~tarfile.TarFile` class can now be used as a context manager. " +"In addition, its :meth:`~tarfile.TarFile.add` method has a new option, " +"*filter*, that controls which files are added to the archive and allows the " +"file metadata to be edited." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1442 +msgid "" +"The new *filter* option replaces the older, less flexible *exclude* " +"parameter which is now deprecated. If specified, the optional *filter* " +"parameter needs to be a :term:`keyword argument`. The user-supplied filter " +"function accepts a :class:`~tarfile.TarInfo` object and returns an updated :" +"class:`~tarfile.TarInfo` object, or if it wants the file to be excluded, the " +"function can return ``None``::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1466 +msgid "" +"(Proposed by Tarek Ziadé and implemented by Lars Gustäbel in :issue:`6856`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1469 +msgid "hashlib" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1471 +msgid "" +"The :mod:`hashlib` module has two new constant attributes listing the " +"hashing algorithms guaranteed to be present in all implementations and those " +"available on the current implementation::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1486 +msgid "(Suggested by Carl Chenet in :issue:`7418`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1489 +msgid "ast" +msgstr "ast" + +#: ../Doc/whatsnew/3.2.rst:1491 +msgid "" +"The :mod:`ast` module has a wonderful a general-purpose tool for safely " +"evaluating expression strings using the Python literal syntax. The :func:" +"`ast.literal_eval` function serves as a secure alternative to the builtin :" +"func:`eval` function which is easily abused. Python 3.2 adds :class:`bytes` " +"and :class:`set` literals to the list of supported types: strings, bytes, " +"numbers, tuples, lists, dicts, sets, booleans, and ``None``." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1512 +msgid "(Implemented by Benjamin Peterson and Georg Brandl.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1515 +msgid "os" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1517 +msgid "" +"Different operating systems use various encodings for filenames and " +"environment variables. The :mod:`os` module provides two new functions, :" +"func:`~os.fsencode` and :func:`~os.fsdecode`, for encoding and decoding " +"filenames:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1527 +msgid "" +"Some operating systems allow direct access to encoded bytes in the " +"environment. If so, the :attr:`os.supports_bytes_environ` constant will be " +"true." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1531 +msgid "" +"For direct access to encoded environment variables (if available), use the " +"new :func:`os.getenvb` function or use :data:`os.environb` which is a bytes " +"version of :data:`os.environ`." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1535 +msgid "(Contributed by Victor Stinner.)" +msgstr "(Contribution par Victor Stinner)" + +#: ../Doc/whatsnew/3.2.rst:1538 +msgid "shutil" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1540 +msgid "The :func:`shutil.copytree` function has two new options:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1542 +msgid "" +"*ignore_dangling_symlinks*: when ``symlinks=False`` so that the function " +"copies a file pointed to by a symlink, not the symlink itself. This option " +"will silence the error raised if the file doesn't exist." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1546 +msgid "" +"*copy_function*: is a callable that will be used to copy files. :func:" +"`shutil.copy2` is used by default." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1549 ../Doc/whatsnew/3.2.rst:1587 +msgid "(Contributed by Tarek Ziadé.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1551 +msgid "" +"In addition, the :mod:`shutil` module now supports :ref:`archiving " +"operations ` for zipfiles, uncompressed tarfiles, " +"gzipped tarfiles, and bzipped tarfiles. And there are functions for " +"registering additional archiving file formats (such as xz compressed " +"tarfiles or custom formats)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1556 +msgid "" +"The principal functions are :func:`~shutil.make_archive` and :func:`~shutil." +"unpack_archive`. By default, both operate on the current directory (which " +"can be set by :func:`os.chdir`) and on any sub-directories. The archive " +"filename needs to be specified with a full pathname. The archiving step is " +"non-destructive (the original files are left unchanged)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1590 +msgid "sqlite3" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1592 +msgid "" +"The :mod:`sqlite3` module was updated to pysqlite version 2.6.0. It has two " +"new capabilities." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1594 +msgid "" +"The :attr:`sqlite3.Connection.in_transit` attribute is true if there is an " +"active transaction for uncommitted changes." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1597 +msgid "" +"The :meth:`sqlite3.Connection.enable_load_extension` and :meth:`sqlite3." +"Connection.load_extension` methods allows you to load SQLite extensions from " +"\".so\" files. One well-known extension is the fulltext-search extension " +"distributed with SQLite." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1602 +msgid "(Contributed by R. David Murray and Shashwat Anand; :issue:`8845`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1605 +msgid "html" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1607 +msgid "" +"A new :mod:`html` module was introduced with only a single function, :func:" +"`~html.escape`, which is used for escaping reserved characters from HTML " +"markup:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1616 +msgid "socket" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1618 +msgid "The :mod:`socket` module has two new improvements." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1620 +msgid "" +"Socket objects now have a :meth:`~socket.socket.detach()` method which puts " +"the socket into closed state without actually closing the underlying file " +"descriptor. The latter can then be reused for other purposes. (Added by " +"Antoine Pitrou; :issue:`8524`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1625 +msgid "" +":func:`socket.create_connection` now supports the context management " +"protocol to unconditionally consume :exc:`socket.error` exceptions and to " +"close the socket when done. (Contributed by Giampaolo Rodolà; :issue:`9794`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1631 +msgid "ssl" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1633 +msgid "" +"The :mod:`ssl` module added a number of features to satisfy common " +"requirements for secure (encrypted, authenticated) internet connections:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1636 +msgid "" +"A new class, :class:`~ssl.SSLContext`, serves as a container for persistent " +"SSL data, such as protocol settings, certificates, private keys, and various " +"other options. It includes a :meth:`~ssl.SSLContext.wrap_socket` for " +"creating an SSL socket from an SSL context." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1641 +msgid "" +"A new function, :func:`ssl.match_hostname`, supports server identity " +"verification for higher-level protocols by implementing the rules of HTTPS " +"(from :rfc:`2818`) which are also suitable for other protocols." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1645 +msgid "" +"The :func:`ssl.wrap_socket` constructor function now takes a *ciphers* " +"argument. The *ciphers* string lists the allowed encryption algorithms " +"using the format described in the `OpenSSL documentation `__." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1650 +msgid "" +"When linked against recent versions of OpenSSL, the :mod:`ssl` module now " +"supports the Server Name Indication extension to the TLS protocol, allowing " +"multiple \"virtual hosts\" using different certificates on a single IP port. " +"This extension is only supported in client mode, and is activated by passing " +"the *server_hostname* argument to :meth:`ssl.SSLContext.wrap_socket`." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1656 +msgid "" +"Various options have been added to the :mod:`ssl` module, such as :data:" +"`~ssl.OP_NO_SSLv2` which disables the insecure and obsolete SSLv2 protocol." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1660 +msgid "" +"The extension now loads all the OpenSSL ciphers and digest algorithms. If " +"some SSL certificates cannot be verified, they are reported as an \"unknown " +"algorithm\" error." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1664 +msgid "" +"The version of OpenSSL being used is now accessible using the module " +"attributes :data:`ssl.OPENSSL_VERSION` (a string), :data:`ssl." +"OPENSSL_VERSION_INFO` (a 5-tuple), and :data:`ssl.OPENSSL_VERSION_NUMBER` " +"(an integer)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1669 +msgid "" +"(Contributed by Antoine Pitrou in :issue:`8850`, :issue:`1589`, :issue:" +"`8322`, :issue:`5639`, :issue:`4870`, :issue:`8484`, and :issue:`8321`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1673 +msgid "nntp" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1675 +msgid "" +"The :mod:`nntplib` module has a revamped implementation with better bytes " +"and text semantics as well as more practical APIs. These improvements break " +"compatibility with the nntplib version in Python 3.1, which was partly " +"dysfunctional in itself." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1680 +msgid "" +"Support for secure connections through both implicit (using :class:`nntplib." +"NNTP_SSL`) and explicit (using :meth:`nntplib.NNTP.starttls`) TLS has also " +"been added." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1684 +msgid "" +"(Contributed by Antoine Pitrou in :issue:`9360` and Andrew Vant in :issue:" +"`1926`.)" +msgstr "" +"(Contribution par Antoine Pitrou, :issue:`9360`, et Andrew Vant, :issue:" +"`1926`)" + +#: ../Doc/whatsnew/3.2.rst:1687 +msgid "certificates" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1689 +msgid "" +":class:`http.client.HTTPSConnection`, :class:`urllib.request.HTTPSHandler` " +"and :func:`urllib.request.urlopen` now take optional arguments to allow for " +"server certificate checking against a set of Certificate Authorities, as " +"recommended in public uses of HTTPS." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1694 +msgid "(Added by Antoine Pitrou, :issue:`9003`.)" +msgstr "(Ajouté par Antoine Pitrou; :issue:`9003`.)" + +#: ../Doc/whatsnew/3.2.rst:1697 +msgid "imaplib" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1699 +msgid "" +"Support for explicit TLS on standard IMAP4 connections has been added " +"through the new :mod:`imaplib.IMAP4.starttls` method." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1702 +msgid "(Contributed by Lorenzo M. Catucci and Antoine Pitrou, :issue:`4471`.)" +msgstr "" +"(Contribution par Lorenzo M. Catucci et Antoine Pitrou; :issue:`4471`.)" + +#: ../Doc/whatsnew/3.2.rst:1705 +msgid "http.client" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1707 +msgid "" +"There were a number of small API improvements in the :mod:`http.client` " +"module. The old-style HTTP 0.9 simple responses are no longer supported and " +"the *strict* parameter is deprecated in all classes." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1711 +msgid "" +"The :class:`~http.client.HTTPConnection` and :class:`~http.client." +"HTTPSConnection` classes now have a *source_address* parameter for a (host, " +"port) tuple indicating where the HTTP connection is made from." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1716 +msgid "" +"Support for certificate checking and HTTPS virtual hosts were added to :" +"class:`~http.client.HTTPSConnection`." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1719 +msgid "" +"The :meth:`~http.client.HTTPConnection.request` method on connection objects " +"allowed an optional *body* argument so that a :term:`file object` could be " +"used to supply the content of the request. Conveniently, the *body* " +"argument now also accepts an :term:`iterable` object so long as it includes " +"an explicit ``Content-Length`` header. This extended interface is much more " +"flexible than before." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1726 +msgid "" +"To establish an HTTPS connection through a proxy server, there is a new :" +"meth:`~http.client.HTTPConnection.set_tunnel` method that sets the host and " +"port for HTTP Connect tunneling." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1730 +msgid "" +"To match the behavior of :mod:`http.server`, the HTTP client library now " +"also encodes headers with ISO-8859-1 (Latin-1) encoding. It was already " +"doing that for incoming headers, so now the behavior is consistent for both " +"incoming and outgoing traffic. (See work by Armin Ronacher in :issue:" +"`10980`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1736 +msgid "unittest" +msgstr "unittest" + +#: ../Doc/whatsnew/3.2.rst:1738 +msgid "" +"The unittest module has a number of improvements supporting test discovery " +"for packages, easier experimentation at the interactive prompt, new testcase " +"methods, improved diagnostic messages for test failures, and better method " +"names." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1743 +msgid "" +"The command-line call ``python -m unittest`` can now accept file paths " +"instead of module names for running specific tests (:issue:`10620`). The " +"new test discovery can find tests within packages, locating any test " +"importable from the top-level directory. The top-level directory can be " +"specified with the `-t` option, a pattern for matching files with ``-p``, " +"and a directory to start discovery with ``-s``:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1754 ../Doc/whatsnew/3.2.rst:1763 +#: ../Doc/whatsnew/3.2.rst:1919 +msgid "(Contributed by Michael Foord.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1756 +msgid "" +"Experimentation at the interactive prompt is now easier because the :class:" +"`unittest.case.TestCase` class can now be instantiated without arguments:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1765 +msgid "" +"The :mod:`unittest` module has two new methods, :meth:`~unittest.TestCase." +"assertWarns` and :meth:`~unittest.TestCase.assertWarnsRegex` to verify that " +"a given warning type is triggered by the code under test::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1773 +msgid "(Contributed by Antoine Pitrou, :issue:`9754`.)" +msgstr "(Contribution par Antoine Pitrou; :issue:`9754`.)" + +#: ../Doc/whatsnew/3.2.rst:1775 +msgid "" +"Another new method, :meth:`~unittest.TestCase.assertCountEqual` is used to " +"compare two iterables to determine if their element counts are equal " +"(whether the same elements are present with the same number of occurrences " +"regardless of order)::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1785 +msgid "" +"A principal feature of the unittest module is an effort to produce " +"meaningful diagnostics when a test fails. When possible, the failure is " +"recorded along with a diff of the output. This is especially helpful for " +"analyzing log files of failed test runs. However, since diffs can sometime " +"be voluminous, there is a new :attr:`~unittest.TestCase.maxDiff` attribute " +"that sets maximum length of diffs displayed." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1792 +msgid "" +"In addition, the method names in the module have undergone a number of clean-" +"ups." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1794 +msgid "" +"For example, :meth:`~unittest.TestCase.assertRegex` is the new name for :" +"meth:`~unittest.TestCase.assertRegexpMatches` which was misnamed because the " +"test uses :func:`re.search`, not :func:`re.match`. Other methods using " +"regular expressions are now named using short form \"Regex\" in preference " +"to \"Regexp\" -- this matches the names used in other unittest " +"implementations, matches Python's old name for the :mod:`re` module, and it " +"has unambiguous camel-casing." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1802 +msgid "(Contributed by Raymond Hettinger and implemented by Ezio Melotti.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1804 +msgid "" +"To improve consistency, some long-standing method aliases are being " +"deprecated in favor of the preferred names:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1808 +msgid "Old Name" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1808 +msgid "Preferred Name" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1810 +msgid ":meth:`assert_`" +msgstr ":meth:`assert_`" + +#: ../Doc/whatsnew/3.2.rst:1810 +msgid ":meth:`.assertTrue`" +msgstr ":meth:`.assertTrue`" + +#: ../Doc/whatsnew/3.2.rst:1811 +msgid ":meth:`assertEquals`" +msgstr ":meth:`assertEquals`" + +#: ../Doc/whatsnew/3.2.rst:1811 +msgid ":meth:`.assertEqual`" +msgstr ":meth:`.assertEqual`" + +#: ../Doc/whatsnew/3.2.rst:1812 +msgid ":meth:`assertNotEquals`" +msgstr ":meth:`assertNotEquals`" + +#: ../Doc/whatsnew/3.2.rst:1812 +msgid ":meth:`.assertNotEqual`" +msgstr ":meth:`.assertNotEqual`" + +#: ../Doc/whatsnew/3.2.rst:1813 +msgid ":meth:`assertAlmostEquals`" +msgstr ":meth:`assertAlmostEquals`" + +#: ../Doc/whatsnew/3.2.rst:1813 +msgid ":meth:`.assertAlmostEqual`" +msgstr ":meth:`.assertAlmostEqual`" + +#: ../Doc/whatsnew/3.2.rst:1814 +msgid ":meth:`assertNotAlmostEquals`" +msgstr ":meth:`assertNotAlmostEquals`" + +#: ../Doc/whatsnew/3.2.rst:1814 +msgid ":meth:`.assertNotAlmostEqual`" +msgstr ":meth:`.assertNotAlmostEqual`" + +#: ../Doc/whatsnew/3.2.rst:1817 +msgid "" +"Likewise, the ``TestCase.fail*`` methods deprecated in Python 3.1 are " +"expected to be removed in Python 3.3. Also see the :ref:`deprecated-" +"aliases` section in the :mod:`unittest` documentation." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1821 +msgid "(Contributed by Ezio Melotti; :issue:`9424`.)" +msgstr "(Contribution par Ezio Melotti; :issue:`9424`)" + +#: ../Doc/whatsnew/3.2.rst:1823 +msgid "" +"The :meth:`~unittest.TestCase.assertDictContainsSubset` method was " +"deprecated because it was misimplemented with the arguments in the wrong " +"order. This created hard-to-debug optical illusions where tests like " +"``TestCase().assertDictContainsSubset({'a':1, 'b':2}, {'a':1})`` would fail." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1831 +msgid "random" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1833 +msgid "" +"The integer methods in the :mod:`random` module now do a better job of " +"producing uniform distributions. Previously, they computed selections with " +"``int(n*random())`` which had a slight bias whenever *n* was not a power of " +"two. Now, multiple selections are made from a range up to the next power of " +"two and a selection is kept only when it falls within the range ``0 <= x < " +"n``. The functions and methods affected are :func:`~random.randrange`, :" +"func:`~random.randint`, :func:`~random.choice`, :func:`~random.shuffle` and :" +"func:`~random.sample`." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1842 +msgid "(Contributed by Raymond Hettinger; :issue:`9025`.)" +msgstr "(Contribution par Raymond Hettinger; :issue:`9025`)" + +#: ../Doc/whatsnew/3.2.rst:1845 +msgid "poplib" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1847 +msgid "" +":class:`~poplib.POP3_SSL` class now accepts a *context* parameter, which is " +"a :class:`ssl.SSLContext` object allowing bundling SSL configuration " +"options, certificates and private keys into a single (potentially long-" +"lived) structure." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1852 +msgid "(Contributed by Giampaolo Rodolà; :issue:`8807`.)" +msgstr "(Contribution par Giampaolo Rodolà; :issue:`8807`)" + +#: ../Doc/whatsnew/3.2.rst:1855 +msgid "asyncore" +msgstr "asyncore" + +#: ../Doc/whatsnew/3.2.rst:1857 +msgid "" +":class:`asyncore.dispatcher` now provides a :meth:`~asyncore.dispatcher." +"handle_accepted()` method returning a `(sock, addr)` pair which is called " +"when a connection has actually been established with a new remote endpoint. " +"This is supposed to be used as a replacement for old :meth:`~asyncore." +"dispatcher.handle_accept()` and avoids the user to call :meth:`~asyncore." +"dispatcher.accept()` directly." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1864 +msgid "(Contributed by Giampaolo Rodolà; :issue:`6706`.)" +msgstr "(Contribution par Giampaolo Rodolà; :issue:`6706`)" + +#: ../Doc/whatsnew/3.2.rst:1867 +msgid "tempfile" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1869 +msgid "" +"The :mod:`tempfile` module has a new context manager, :class:`~tempfile." +"TemporaryDirectory` which provides easy deterministic cleanup of temporary " +"directories::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1876 +msgid "(Contributed by Neil Schemenauer and Nick Coghlan; :issue:`5178`.)" +msgstr "(Contribution par Neil Schemenauer et Nick Coghlan; :issue:`5178`.)" + +#: ../Doc/whatsnew/3.2.rst:1879 +msgid "inspect" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1881 +msgid "" +"The :mod:`inspect` module has a new function :func:`~inspect." +"getgeneratorstate` to easily identify the current state of a generator-" +"iterator::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1899 +msgid "(Contributed by Rodolpho Eckhardt and Nick Coghlan, :issue:`10220`.)" +msgstr "(Contribution par Rodolpho Eckhardt et Nick Coghlan; :issue:`10220`.)" + +#: ../Doc/whatsnew/3.2.rst:1901 +msgid "" +"To support lookups without the possibility of activating a dynamic " +"attribute, the :mod:`inspect` module has a new function, :func:`~inspect." +"getattr_static`. Unlike :func:`hasattr`, this is a true read-only search, " +"guaranteed not to change state while it is searching::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1922 +msgid "pydoc" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1924 +msgid "" +"The :mod:`pydoc` module now provides a much-improved Web server interface, " +"as well as a new command-line option ``-b`` to automatically open a browser " +"window to display that server:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1932 +msgid "(Contributed by Ron Adam; :issue:`2001`.)" +msgstr "(Contribution par Ron Adam; :issue:`2001`.)" + +#: ../Doc/whatsnew/3.2.rst:1935 +msgid "dis" +msgstr "dis" + +#: ../Doc/whatsnew/3.2.rst:1937 +msgid "" +"The :mod:`dis` module gained two new functions for inspecting code, :func:" +"`~dis.code_info` and :func:`~dis.show_code`. Both provide detailed code " +"object information for the supplied function, method, source code string or " +"code object. The former returns a string and the latter prints it::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1964 +msgid "" +"In addition, the :func:`~dis.dis` function now accepts string arguments so " +"that the common idiom ``dis(compile(s, '', 'eval'))`` can be shortened to " +"``dis(s)``::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1986 +msgid "" +"Taken together, these improvements make it easier to explore how CPython is " +"implemented and to see for yourself what the language syntax does under-the-" +"hood." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1990 +msgid "(Contributed by Nick Coghlan in :issue:`9147`.)" +msgstr "(Contribution par Nick Coghlan; :issue:`9147`.)" + +#: ../Doc/whatsnew/3.2.rst:1993 +msgid "dbm" +msgstr "dbm" + +#: ../Doc/whatsnew/3.2.rst:1995 +msgid "" +"All database modules now support the :meth:`get` and :meth:`setdefault` " +"methods." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:1997 +msgid "(Suggested by Ray Allen in :issue:`9523`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2000 +msgid "ctypes" +msgstr "ctypes" + +#: ../Doc/whatsnew/3.2.rst:2002 +msgid "" +"A new type, :class:`ctypes.c_ssize_t` represents the C :c:type:`ssize_t` " +"datatype." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2005 +msgid "site" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2007 +msgid "" +"The :mod:`site` module has three new functions useful for reporting on the " +"details of a given Python installation." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2010 +msgid "" +":func:`~site.getsitepackages` lists all global site-packages directories." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2012 +msgid "" +":func:`~site.getuserbase` reports on the user's base directory where data " +"can be stored." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2015 +msgid "" +":func:`~site.getusersitepackages` reveals the user-specific site-packages " +"directory path." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2030 +msgid "" +"Conveniently, some of site's functionality is accessible directly from the " +"command-line:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2040 +msgid "(Contributed by Tarek Ziadé in :issue:`6693`.)" +msgstr "(Contribution par Tarek Ziadé; :issue:`6693`.)" + +#: ../Doc/whatsnew/3.2.rst:2043 +msgid "sysconfig" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2045 +msgid "" +"The new :mod:`sysconfig` module makes it straightforward to discover " +"installation paths and configuration variables that vary across platforms " +"and installations." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2049 +msgid "" +"The module offers access simple access functions for platform and version " +"information:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2052 +msgid "" +":func:`~sysconfig.get_platform` returning values like *linux-i586* or " +"*macosx-10.6-ppc*." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2054 +msgid "" +":func:`~sysconfig.get_python_version` returns a Python version string such " +"as \"3.2\"." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2057 +msgid "" +"It also provides access to the paths and variables corresponding to one of " +"seven named schemes used by :mod:`distutils`. Those include *posix_prefix*, " +"*posix_home*, *posix_user*, *nt*, *nt_user*, *os2*, *os2_home*:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2061 +msgid "" +":func:`~sysconfig.get_paths` makes a dictionary containing installation " +"paths for the current installation scheme." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2063 +msgid "" +":func:`~sysconfig.get_config_vars` returns a dictionary of platform specific " +"variables." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2066 +msgid "There is also a convenient command-line interface:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2105 +msgid "(Moved out of Distutils by Tarek Ziadé.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2108 +msgid "pdb" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2110 +msgid "" +"The :mod:`pdb` debugger module gained a number of usability improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2112 +msgid "" +":file:`pdb.py` now has a ``-c`` option that executes commands as given in a :" +"file:`.pdbrc` script file." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2114 +msgid "" +"A :file:`.pdbrc` script file can contain ``continue`` and ``next`` commands " +"that continue debugging." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2116 +msgid "The :class:`Pdb` class constructor now accepts a *nosigint* argument." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2117 +msgid "" +"New commands: ``l(list)``, ``ll(long list)`` and ``source`` for listing " +"source code." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2119 +msgid "" +"New commands: ``display`` and ``undisplay`` for showing or hiding the value " +"of an expression if it has changed." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2121 +msgid "" +"New command: ``interact`` for starting an interactive interpreter containing " +"the global and local names found in the current scope." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2123 +msgid "Breakpoints can be cleared by breakpoint number." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2125 +msgid "(Contributed by Georg Brandl, Antonio Cuni and Ilya Sandler.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2128 +msgid "configparser" +msgstr "configparser" + +#: ../Doc/whatsnew/3.2.rst:2130 +msgid "" +"The :mod:`configparser` module was modified to improve usability and " +"predictability of the default parser and its supported INI syntax. The old :" +"class:`ConfigParser` class was removed in favor of :class:`SafeConfigParser` " +"which has in turn been renamed to :class:`~configparser.ConfigParser`. " +"Support for inline comments is now turned off by default and section or " +"option duplicates are not allowed in a single configuration source." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2137 +msgid "Config parsers gained a new API based on the mapping protocol::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2165 +msgid "" +"The new API is implemented on top of the classical API, so custom parser " +"subclasses should be able to use it without modifications." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2168 +msgid "" +"The INI file structure accepted by config parsers can now be customized. " +"Users can specify alternative option/value delimiters and comment prefixes, " +"change the name of the *DEFAULT* section or switch the interpolation syntax." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2172 +msgid "" +"There is support for pluggable interpolation including an additional " +"interpolation handler :class:`~configparser.ExtendedInterpolation`::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2205 +msgid "" +"A number of smaller features were also introduced, like support for " +"specifying encoding in read operations, specifying fallback values for get-" +"functions, or reading directly from dictionaries and strings." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2209 +msgid "(All changes contributed by Łukasz Langa.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2214 +msgid "urllib.parse" +msgstr "urllib.parse" + +#: ../Doc/whatsnew/3.2.rst:2216 +msgid "" +"A number of usability improvements were made for the :mod:`urllib.parse` " +"module." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2218 +msgid "" +"The :func:`~urllib.parse.urlparse` function now supports `IPv6 `_ addresses as described in :rfc:`2732`:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2230 +msgid "" +"The :func:`~urllib.parse.urldefrag` function now returns a :term:`named " +"tuple`::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2240 +msgid "" +"And, the :func:`~urllib.parse.urlencode` function is now much more flexible, " +"accepting either a string or bytes type for the *query* argument. If it is " +"a string, then the *safe*, *encoding*, and *error* parameters are sent to :" +"func:`~urllib.parse.quote_plus` for encoding::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2251 +msgid "" +"As detailed in :ref:`parsing-ascii-encoded-bytes`, all the :mod:`urllib." +"parse` functions now accept ASCII-encoded byte strings as input, so long as " +"they are not mixed with regular strings. If ASCII-encoded byte strings are " +"given as parameters, the return types will also be an ASCII-encoded byte " +"strings:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2260 +msgid "" +"(Work by Nick Coghlan, Dan Mahn, and Senthil Kumaran in :issue:`2987`, :" +"issue:`5468`, and :issue:`9873`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2264 +msgid "mailbox" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2266 +msgid "" +"Thanks to a concerted effort by R. David Murray, the :mod:`mailbox` module " +"has been fixed for Python 3.2. The challenge was that mailbox had been " +"originally designed with a text interface, but email messages are best " +"represented with :class:`bytes` because various parts of a message may have " +"different encodings." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2271 +msgid "" +"The solution harnessed the :mod:`email` package's binary support for parsing " +"arbitrary email messages. In addition, the solution required a number of " +"API changes." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2275 +msgid "" +"As expected, the :meth:`~mailbox.Mailbox.add` method for :class:`mailbox." +"Mailbox` objects now accepts binary input." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2278 +msgid "" +":class:`~io.StringIO` and text file input are deprecated. Also, string " +"input will fail early if non-ASCII characters are used. Previously it would " +"fail when the email was processed in a later step." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2282 +msgid "" +"There is also support for binary output. The :meth:`~mailbox.Mailbox." +"get_file` method now returns a file in the binary mode (where it used to " +"incorrectly set the file to text-mode). There is also a new :meth:`~mailbox." +"Mailbox.get_bytes` method that returns a :class:`bytes` representation of a " +"message corresponding to a given *key*." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2288 +msgid "" +"It is still possible to get non-binary output using the old API's :meth:" +"`~mailbox.Mailbox.get_string` method, but that approach is not very useful. " +"Instead, it is best to extract messages from a :class:`~mailbox.Message` " +"object or to load them from binary input." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2293 +msgid "" +"(Contributed by R. David Murray, with efforts from Steffen Daode Nurpmeso " +"and an initial patch by Victor Stinner in :issue:`9124`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2297 +msgid "turtledemo" +msgstr "turtledemo" + +#: ../Doc/whatsnew/3.2.rst:2299 +msgid "" +"The demonstration code for the :mod:`turtle` module was moved from the " +"*Demo* directory to main library. It includes over a dozen sample scripts " +"with lively displays. Being on :attr:`sys.path`, it can now be run directly " +"from the command-line:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2308 +msgid "" +"(Moved from the Demo directory by Alexander Belopolsky in :issue:`10199`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2311 +msgid "Multi-threading" +msgstr "Fils d'exécution" + +#: ../Doc/whatsnew/3.2.rst:2313 +msgid "" +"The mechanism for serializing execution of concurrently running Python " +"threads (generally known as the :term:`GIL` or :term:`Global Interpreter " +"Lock`) has been rewritten. Among the objectives were more predictable " +"switching intervals and reduced overhead due to lock contention and the " +"number of ensuing system calls. The notion of a \"check interval\" to allow " +"thread switches has been abandoned and replaced by an absolute duration " +"expressed in seconds. This parameter is tunable through :func:`sys." +"setswitchinterval()`. It currently defaults to 5 milliseconds." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2322 +msgid "" +"Additional details about the implementation can be read from a `python-dev " +"mailing-list message `_ (however, \"priority requests\" as exposed in this " +"message have not been kept for inclusion)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2328 +msgid "(Contributed by Antoine Pitrou.)" +msgstr "(Contribution par Antoine Pitrou)" + +#: ../Doc/whatsnew/3.2.rst:2330 +msgid "" +"Regular and recursive locks now accept an optional *timeout* argument to " +"their :meth:`~threading.Lock.acquire` method. (Contributed by Antoine " +"Pitrou; :issue:`7316`.)" +msgstr "" +"Les verrous standards et récursifs acceptent désormais un argument optionnel " +"*timeout* à leur méthode :meth:`~threading.Lock.acquire`. (Contribution par " +"Antoine Pitrou; :issue:`7316`)." + +#: ../Doc/whatsnew/3.2.rst:2334 +msgid "" +"Similarly, :meth:`threading.Semaphore.acquire` also gained a *timeout* " +"argument. (Contributed by Torsten Landschoff; :issue:`850728`.)" +msgstr "" +"Pareillement, :meth:`threading.Semaphore.acquire` acquière un argument " +"*timeout* (Contribution par Torsten Landschoff; :issue:`850728`)." + +#: ../Doc/whatsnew/3.2.rst:2337 +msgid "" +"Regular and recursive lock acquisitions can now be interrupted by signals on " +"platforms using Pthreads. This means that Python programs that deadlock " +"while acquiring locks can be successfully killed by repeatedly sending " +"SIGINT to the process (by pressing :kbd:`Ctrl+C` in most shells). " +"(Contributed by Reid Kleckner; :issue:`8844`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2345 +msgid "Optimizations" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2347 +msgid "A number of small performance enhancements have been added:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2349 +msgid "" +"Python's peephole optimizer now recognizes patterns such ``x in {1, 2, 3}`` " +"as being a test for membership in a set of constants. The optimizer recasts " +"the :class:`set` as a :class:`frozenset` and stores the pre-built constant." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2353 +msgid "" +"Now that the speed penalty is gone, it is practical to start writing " +"membership tests using set-notation. This style is both semantically clear " +"and operationally fast::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2361 +msgid "" +"(Patch and additional tests contributed by Dave Malcolm; :issue:`6690`)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2363 +msgid "" +"Serializing and unserializing data using the :mod:`pickle` module is now " +"several times faster." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2366 +msgid "" +"(Contributed by Alexandre Vassalotti, Antoine Pitrou and the Unladen Swallow " +"team in :issue:`9410` and :issue:`3873`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2369 +msgid "" +"The `Timsort algorithm `_ used in :" +"meth:`list.sort` and :func:`sorted` now runs faster and uses less memory " +"when called with a :term:`key function`. Previously, every element of a " +"list was wrapped with a temporary object that remembered the key value " +"associated with each element. Now, two arrays of keys and values are sorted " +"in parallel. This saves the memory consumed by the sort wrappers, and it " +"saves time lost to delegating comparisons." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2377 +msgid "(Patch by Daniel Stutzbach in :issue:`9915`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2379 +msgid "" +"JSON decoding performance is improved and memory consumption is reduced " +"whenever the same string is repeated for multiple keys. Also, JSON encoding " +"now uses the C speedups when the ``sort_keys`` argument is true." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2383 +msgid "" +"(Contributed by Antoine Pitrou in :issue:`7451` and by Raymond Hettinger and " +"Antoine Pitrou in :issue:`10314`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2386 +msgid "" +"Recursive locks (created with the :func:`threading.RLock` API) now benefit " +"from a C implementation which makes them as fast as regular locks, and " +"between 10x and 15x faster than their previous pure Python implementation." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2390 +msgid "(Contributed by Antoine Pitrou; :issue:`3001`.)" +msgstr "(Contribution par Antoine Pitrou; :issue:`3001`.)" + +#: ../Doc/whatsnew/3.2.rst:2392 +msgid "" +"The fast-search algorithm in stringlib is now used by the :meth:`split`, :" +"meth:`rsplit`, :meth:`splitlines` and :meth:`replace` methods on :class:" +"`bytes`, :class:`bytearray` and :class:`str` objects. Likewise, the " +"algorithm is also used by :meth:`rfind`, :meth:`rindex`, :meth:`rsplit` and :" +"meth:`rpartition`." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2398 +msgid "(Patch by Florent Xicluna in :issue:`7622` and :issue:`7462`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2401 +msgid "" +"Integer to string conversions now work two \"digits\" at a time, reducing " +"the number of division and modulo operations." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2404 +msgid "(:issue:`6713` by Gawain Bolton, Mark Dickinson, and Victor Stinner.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2406 +msgid "" +"There were several other minor optimizations. Set differencing now runs " +"faster when one operand is much larger than the other (patch by Andress " +"Bennetts in :issue:`8685`). The :meth:`array.repeat` method has a faster " +"implementation (:issue:`1569291` by Alexander Belopolsky). The :class:" +"`BaseHTTPRequestHandler` has more efficient buffering (:issue:`3709` by " +"Andrew Schaaf). The :func:`operator.attrgetter` function has been sped-up (:" +"issue:`10160` by Christos Georgiou). And :class:`ConfigParser` loads multi-" +"line arguments a bit faster (:issue:`7113` by Łukasz Langa)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2417 +msgid "Unicode" +msgstr "Unicode" + +#: ../Doc/whatsnew/3.2.rst:2419 +msgid "" +"Python has been updated to `Unicode 6.0.0 `_. The update to the standard adds over 2,000 new characters " +"including `emoji `_ symbols which are " +"important for mobile phones." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2424 +msgid "" +"In addition, the updated standard has altered the character properties for " +"two Kannada characters (U+0CF1, U+0CF2) and one New Tai Lue numeric " +"character (U+19DA), making the former eligible for use in identifiers while " +"disqualifying the latter. For more information, see `Unicode Character " +"Database Changes `_." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2432 +msgid "Codecs" +msgstr "Codecs" + +#: ../Doc/whatsnew/3.2.rst:2434 +msgid "Support was added for *cp720* Arabic DOS encoding (:issue:`1616979`)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2436 +msgid "" +"MBCS encoding no longer ignores the error handler argument. In the default " +"strict mode, it raises an :exc:`UnicodeDecodeError` when it encounters an " +"undecodable byte sequence and an :exc:`UnicodeEncodeError` for an " +"unencodable character." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2441 +msgid "" +"The MBCS codec supports ``'strict'`` and ``'ignore'`` error handlers for " +"decoding, and ``'strict'`` and ``'replace'`` for encoding." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2444 +msgid "" +"To emulate Python3.1 MBCS encoding, select the ``'ignore'`` handler for " +"decoding and the ``'replace'`` handler for encoding." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2447 +msgid "" +"On Mac OS X, Python decodes command line arguments with ``'utf-8'`` rather " +"than the locale encoding." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2450 +msgid "" +"By default, :mod:`tarfile` uses ``'utf-8'`` encoding on Windows (instead of " +"``'mbcs'``) and the ``'surrogateescape'`` error handler on all operating " +"systems." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2456 +msgid "Documentation" +msgstr "Documentation" + +#: ../Doc/whatsnew/3.2.rst:2458 +msgid "The documentation continues to be improved." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2460 +msgid "" +"A table of quick links has been added to the top of lengthy sections such " +"as :ref:`built-in-funcs`. In the case of :mod:`itertools`, the links are " +"accompanied by tables of cheatsheet-style summaries to provide an overview " +"and memory jog without having to read all of the docs." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2465 +msgid "" +"In some cases, the pure Python source code can be a helpful adjunct to the " +"documentation, so now many modules now feature quick links to the latest " +"version of the source code. For example, the :mod:`functools` module " +"documentation has a quick link at the top labeled:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2470 +msgid "**Source code** :source:`Lib/functools.py`." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2472 +msgid "" +"(Contributed by Raymond Hettinger; see `rationale `_.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2475 +msgid "" +"The docs now contain more examples and recipes. In particular, :mod:`re` " +"module has an extensive section, :ref:`re-examples`. Likewise, the :mod:" +"`itertools` module continues to be updated with new :ref:`itertools-recipes`." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2480 +msgid "" +"The :mod:`datetime` module now has an auxiliary implementation in pure " +"Python. No functionality was changed. This just provides an easier-to-read " +"alternate implementation." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2484 +msgid "(Contributed by Alexander Belopolsky in :issue:`9528`.)" +msgstr "(Contribution par Alexander Belopolsky; :issue:`9528`.)" + +#: ../Doc/whatsnew/3.2.rst:2486 +msgid "" +"The unmaintained :file:`Demo` directory has been removed. Some demos were " +"integrated into the documentation, some were moved to the :file:`Tools/demo` " +"directory, and others were removed altogether." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2490 +msgid "(Contributed by Georg Brandl in :issue:`7962`.)" +msgstr "(Contribution par Georg Brandl; :issue:`7962`.)" + +#: ../Doc/whatsnew/3.2.rst:2494 +msgid "IDLE" +msgstr "IDLE" + +#: ../Doc/whatsnew/3.2.rst:2496 +msgid "" +"The format menu now has an option to clean source files by stripping " +"trailing whitespace." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2499 +msgid "(Contributed by Raymond Hettinger; :issue:`5150`.)" +msgstr "(Contribution par Raymond Hettinger; :issue:`5150`.)" + +#: ../Doc/whatsnew/3.2.rst:2501 +msgid "IDLE on Mac OS X now works with both Carbon AquaTk and Cocoa AquaTk." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2503 +msgid "" +"(Contributed by Kevin Walzer, Ned Deily, and Ronald Oussoren; :issue:`6075`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2506 +msgid "Code Repository" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2508 +msgid "" +"In addition to the existing Subversion code repository at http://svn.python." +"org there is now a `Mercurial `_ repository " +"at https://hg.python.org/\\ ." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2512 +msgid "" +"After the 3.2 release, there are plans to switch to Mercurial as the primary " +"repository. This distributed version control system should make it easier " +"for members of the community to create and share external changesets. See :" +"pep:`385` for details." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2517 +msgid "" +"To learn to use the new version control system, see the `Quick Start " +"`_ or the `Guide to Mercurial " +"Workflows `_." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2523 +msgid "Build and C API Changes" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2525 +msgid "Changes to Python's build process and to the C API include:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2527 +msgid "" +"The *idle*, *pydoc* and *2to3* scripts are now installed with a version-" +"specific suffix on ``make altinstall`` (:issue:`10679`)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2530 +msgid "" +"The C functions that access the Unicode Database now accept and return " +"characters from the full Unicode range, even on narrow unicode builds " +"(Py_UNICODE_TOLOWER, Py_UNICODE_ISDECIMAL, and others). A visible " +"difference in Python is that :func:`unicodedata.numeric` now returns the " +"correct value for large code points, and :func:`repr` may consider more " +"characters as printable." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2537 +msgid "" +"(Reported by Bupjoe Lee and fixed by Amaury Forgeot D'Arc; :issue:`5127`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2539 +msgid "" +"Computed gotos are now enabled by default on supported compilers (which are " +"detected by the configure script). They can still be disabled selectively " +"by specifying ``--without-computed-gotos``." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2543 +msgid "(Contributed by Antoine Pitrou; :issue:`9203`.)" +msgstr "(Contribution par Antoine Pitrou; :issue:`9203`.)" + +#: ../Doc/whatsnew/3.2.rst:2545 +msgid "" +"The option ``--with-wctype-functions`` was removed. The built-in unicode " +"database is now used for all functions." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2548 +msgid "(Contributed by Amaury Forgeot D'Arc; :issue:`9210`.)" +msgstr "(Contribution par Amaury Forgeot D'Arc; :issue:`9210`.)" + +#: ../Doc/whatsnew/3.2.rst:2550 +msgid "" +"Hash values are now values of a new type, :c:type:`Py_hash_t`, which is " +"defined to be the same size as a pointer. Previously they were of type " +"long, which on some 64-bit operating systems is still only 32 bits long. As " +"a result of this fix, :class:`set` and :class:`dict` can now hold more than " +"``2**32`` entries on builds with 64-bit pointers (previously, they could " +"grow to that size but their performance degraded catastrophically)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2557 +msgid "" +"(Suggested by Raymond Hettinger and implemented by Benjamin Peterson; :issue:" +"`9778`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2560 +msgid "" +"A new macro :c:macro:`Py_VA_COPY` copies the state of the variable argument " +"list. It is equivalent to C99 *va_copy* but available on all Python " +"platforms (:issue:`2443`)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2564 +msgid "" +"A new C API function :c:func:`PySys_SetArgvEx` allows an embedded " +"interpreter to set :attr:`sys.argv` without also modifying :attr:`sys.path` " +"(:issue:`5753`)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2568 +msgid "" +":c:macro:`PyEval_CallObject` is now only available in macro form. The " +"function declaration, which was kept for backwards compatibility reasons, is " +"now removed -- the macro was introduced in 1997 (:issue:`8276`)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2572 +msgid "" +"There is a new function :c:func:`PyLong_AsLongLongAndOverflow` which is " +"analogous to :c:func:`PyLong_AsLongAndOverflow`. They both serve to convert " +"Python :class:`int` into a native fixed-width type while providing detection " +"of cases where the conversion won't fit (:issue:`7767`)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2577 +msgid "" +"The :c:func:`PyUnicode_CompareWithASCIIString` function now returns *not " +"equal* if the Python string is *NUL* terminated." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2580 +msgid "" +"There is a new function :c:func:`PyErr_NewExceptionWithDoc` that is like :c:" +"func:`PyErr_NewException` but allows a docstring to be specified. This lets " +"C exceptions have the same self-documenting capabilities as their pure " +"Python counterparts (:issue:`7033`)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2585 +msgid "" +"When compiled with the ``--with-valgrind`` option, the pymalloc allocator " +"will be automatically disabled when running under Valgrind. This gives " +"improved memory leak detection when running under Valgrind, while taking " +"advantage of pymalloc at other times (:issue:`2422`)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2590 +msgid "" +"Removed the ``O?`` format from the *PyArg_Parse* functions. The format is " +"no longer used and it had never been documented (:issue:`8837`)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2593 +msgid "" +"There were a number of other small changes to the C-API. See the :source:" +"`Misc/NEWS` file for a complete list." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2596 +msgid "" +"Also, there were a number of updates to the Mac OS X build, see :source:`Mac/" +"BuildScript/README.txt` for details. For users running a 32/64-bit build, " +"there is a known problem with the default Tcl/Tk on Mac OS X 10.6. " +"Accordingly, we recommend installing an updated alternative such as " +"`ActiveState Tcl/Tk 8.5.9 `_" +"\\. See https://www.python.org/download/mac/tcltk/ for additional details." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2604 +msgid "Porting to Python 3.2" +msgstr "Portage vers Python 3.2" + +#: ../Doc/whatsnew/3.2.rst:2606 +msgid "" +"This section lists previously described changes and other bugfixes that may " +"require changes to your code:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2609 +msgid "" +"The :mod:`configparser` module has a number of clean-ups. The major change " +"is to replace the old :class:`ConfigParser` class with long-standing " +"preferred alternative :class:`SafeConfigParser`. In addition there are a " +"number of smaller incompatibilities:" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2614 +msgid "" +"The interpolation syntax is now validated on :meth:`~configparser." +"ConfigParser.get` and :meth:`~configparser.ConfigParser.set` operations. In " +"the default interpolation scheme, only two tokens with percent signs are " +"valid: ``%(name)s`` and ``%%``, the latter being an escaped percent sign." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2620 +msgid "" +"The :meth:`~configparser.ConfigParser.set` and :meth:`~configparser." +"ConfigParser.add_section` methods now verify that values are actual " +"strings. Formerly, unsupported types could be introduced unintentionally." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2625 +msgid "" +"Duplicate sections or options from a single source now raise either :exc:" +"`~configparser.DuplicateSectionError` or :exc:`~configparser." +"DuplicateOptionError`. Formerly, duplicates would silently overwrite a " +"previous entry." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2630 +msgid "" +"Inline comments are now disabled by default so now the **;** character can " +"be safely used in values." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2633 +msgid "" +"Comments now can be indented. Consequently, for **;** or **#** to appear at " +"the start of a line in multiline values, it has to be interpolated. This " +"keeps comment prefix characters in values from being mistaken as comments." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2637 +msgid "" +"``\"\"`` is now a valid value and is no longer automatically converted to an " +"empty string. For empty strings, use ``\"option =\"`` in a line." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2640 +msgid "" +"The :mod:`nntplib` module was reworked extensively, meaning that its APIs " +"are often incompatible with the 3.1 APIs." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2643 +msgid "" +":class:`bytearray` objects can no longer be used as filenames; instead, they " +"should be converted to :class:`bytes`." +msgstr "" +"Les objets :class:`bytearray` ne peuvent plus être utilisés en tant que nom " +"de fichiers : ils doivent être convertis en :class:`bytes` à la place." + +#: ../Doc/whatsnew/3.2.rst:2646 +msgid "" +"The :meth:`array.tostring` and :meth:`array.fromstring` have been renamed " +"to :meth:`array.tobytes` and :meth:`array.frombytes` for clarity. The old " +"names have been deprecated. (See :issue:`8990`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2650 +msgid "``PyArg_Parse*()`` functions:" +msgstr "Les fonctions ``PyArg_Parse*()`` :" + +#: ../Doc/whatsnew/3.2.rst:2652 +msgid "\"t#\" format has been removed: use \"s#\" or \"s*\" instead" +msgstr "Le format \"t#\" a été supprimé : utiliser \"s#\" ou \"s*\" à la place" + +#: ../Doc/whatsnew/3.2.rst:2653 +msgid "\"w\" and \"w#\" formats has been removed: use \"w*\" instead" +msgstr "" +"Les formats \"w\" et \"w#\" ont été supprimés : utiliser \"w*\" à la place" + +#: ../Doc/whatsnew/3.2.rst:2655 +msgid "" +"The :c:type:`PyCObject` type, deprecated in 3.1, has been removed. To wrap " +"opaque C pointers in Python objects, the :c:type:`PyCapsule` API should be " +"used instead; the new type has a well-defined interface for passing typing " +"safety information and a less complicated signature for calling a destructor." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2660 +msgid "" +"The :func:`sys.setfilesystemencoding` function was removed because it had a " +"flawed design." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2663 +msgid "" +"The :func:`random.seed` function and method now salt string seeds with an " +"sha512 hash function. To access the previous version of *seed* in order to " +"reproduce Python 3.1 sequences, set the *version* argument to *1*, ``random." +"seed(s, version=1)``." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2668 +msgid "" +"The previously deprecated :func:`string.maketrans` function has been removed " +"in favor of the static methods :meth:`bytes.maketrans` and :meth:`bytearray." +"maketrans`. This change solves the confusion around which types were " +"supported by the :mod:`string` module. Now, :class:`str`, :class:`bytes`, " +"and :class:`bytearray` each have their own **maketrans** and **translate** " +"methods with intermediate translation tables of the appropriate type." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2676 +msgid "(Contributed by Georg Brandl; :issue:`5675`.)" +msgstr "(Contribution par Georg Brandl; :issue:`5675`.)" + +#: ../Doc/whatsnew/3.2.rst:2678 +msgid "" +"The previously deprecated :func:`contextlib.nested` function has been " +"removed in favor of a plain :keyword:`with` statement which can accept " +"multiple context managers. The latter technique is faster (because it is " +"built-in), and it does a better job finalizing multiple context managers " +"when one of them raises an exception::" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2689 +msgid "" +"(Contributed by Georg Brandl and Mattias Brändström; `appspot issue 53094 " +"`_.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2692 +msgid "" +":func:`struct.pack` now only allows bytes for the ``s`` string pack code. " +"Formerly, it would accept text arguments and implicitly encode them to bytes " +"using UTF-8. This was problematic because it made assumptions about the " +"correct encoding and because a variable-length encoding can fail when " +"writing to fixed length segment of a structure." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2698 +msgid "" +"Code such as ``struct.pack('<6sHHBBB', 'GIF87a', x, y)`` should be rewritten " +"with to use bytes instead of text, ``struct.pack('<6sHHBBB', b'GIF87a', x, " +"y)``." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2701 +msgid "" +"(Discovered by David Beazley and fixed by Victor Stinner; :issue:`10783`.)" +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2703 +msgid "" +"The :class:`xml.etree.ElementTree` class now raises an :exc:`xml.etree." +"ElementTree.ParseError` when a parse fails. Previously it raised an :exc:" +"`xml.parsers.expat.ExpatError`." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2707 +msgid "" +"The new, longer :func:`str` value on floats may break doctests which rely on " +"the old output format." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2710 +msgid "" +"In :class:`subprocess.Popen`, the default value for *close_fds* is now " +"``True`` under Unix; under Windows, it is ``True`` if the three standard " +"streams are set to ``None``, ``False`` otherwise. Previously, *close_fds* " +"was always ``False`` by default, which produced difficult to solve bugs or " +"race conditions when open file descriptors would leak into the child process." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2717 +msgid "" +"Support for legacy HTTP 0.9 has been removed from :mod:`urllib.request` and :" +"mod:`http.client`. Such support is still present on the server side (in :" +"mod:`http.server`)." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2721 +msgid "(Contributed by Antoine Pitrou, :issue:`10711`.)" +msgstr "(Contribution par Antoine Pitrou; :issue:`10711`.)" + +#: ../Doc/whatsnew/3.2.rst:2723 +msgid "" +"SSL sockets in timeout mode now raise :exc:`socket.timeout` when a timeout " +"occurs, rather than a generic :exc:`~ssl.SSLError`." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2726 +msgid "(Contributed by Antoine Pitrou, :issue:`10272`.)" +msgstr "(Contribution par Antoine Pitrou; :issue:`10272`.)" + +#: ../Doc/whatsnew/3.2.rst:2728 +msgid "" +"The misleading functions :c:func:`PyEval_AcquireLock()` and :c:func:" +"`PyEval_ReleaseLock()` have been officially deprecated. The thread-state " +"aware APIs (such as :c:func:`PyEval_SaveThread()` and :c:func:" +"`PyEval_RestoreThread()`) should be used instead." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2733 +msgid "" +"Due to security risks, :func:`asyncore.handle_accept` has been deprecated, " +"and a new function, :func:`asyncore.handle_accepted`, was added to replace " +"it." +msgstr "" + +#: ../Doc/whatsnew/3.2.rst:2736 +msgid "(Contributed by Giampaolo Rodola in :issue:`6706`.)" +msgstr "(Contribution par Giampaolo Rodola; :issue:`6706`.)" + +#: ../Doc/whatsnew/3.2.rst:2738 +msgid "" +"Due to the new :term:`GIL` implementation, :c:func:`PyEval_InitThreads()` " +"cannot be called before :c:func:`Py_Initialize()` anymore." +msgstr "" diff --git a/whatsnew/3.3.po b/whatsnew/3.3.po new file mode 100644 index 000000000..713f2f41d --- /dev/null +++ b/whatsnew/3.3.po @@ -0,0 +1,3853 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"PO-Revision-Date: 2018-07-31 23:09+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/whatsnew/3.3.rst:3 +msgid "What's New In Python 3.3" +msgstr "Nouveautés de Python 3.3" + +#: ../Doc/whatsnew/3.3.rst:45 +msgid "" +"This article explains the new features in Python 3.3, compared to 3.2. " +"Python 3.3 was released on September 29, 2012. For full details, see the " +"`changelog `_." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:51 +msgid ":pep:`398` - Python 3.3 Release Schedule" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:55 +msgid "Summary -- Release highlights" +msgstr "Résumé – Points forts de la publication" + +#: ../Doc/whatsnew/3.3.rst:60 +msgid "New syntax features:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:62 +msgid "" +"New ``yield from`` expression for :ref:`generator delegation `." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:63 +msgid "The ``u'unicode'`` syntax is accepted again for :class:`str` objects." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:65 +msgid "New library modules:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:67 +msgid ":mod:`faulthandler` (helps debugging low-level crashes)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:68 +msgid "" +":mod:`ipaddress` (high-level objects representing IP addresses and masks)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:69 +msgid ":mod:`lzma` (compress data using the XZ / LZMA algorithm)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:70 +msgid "" +":mod:`unittest.mock` (replace parts of your system under test with mock " +"objects)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:71 +msgid "" +":mod:`venv` (Python :ref:`virtual environments `, as in the popular " +"``virtualenv`` package)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:74 +msgid "New built-in features:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:76 +msgid "Reworked :ref:`I/O exception hierarchy `." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:78 +msgid "Implementation improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:80 +msgid "" +"Rewritten :ref:`import machinery ` based on :mod:`importlib`." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:81 +msgid "More compact :ref:`unicode strings `." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:82 +msgid "More compact :ref:`attribute dictionaries `." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:84 +msgid "Significantly Improved Library Modules:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:86 +msgid "C Accelerator for the :ref:`decimal ` module." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:87 +msgid "" +"Better unicode handling in the :ref:`email ` module (:term:" +"`provisional `)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:90 +msgid "Security improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:92 +msgid "Hash randomization is switched on by default." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:94 +msgid "Please read on for a comprehensive list of user-facing changes." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:100 +msgid "PEP 405: Virtual Environments" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:102 +msgid "" +"Virtual environments help create separate Python setups while sharing a " +"system-wide base install, for ease of maintenance. Virtual environments " +"have their own set of private site packages (i.e. locally-installed " +"libraries), and are optionally segregated from the system-wide site " +"packages. Their concept and implementation are inspired by the popular " +"``virtualenv`` third-party package, but benefit from tighter integration " +"with the interpreter core." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:110 +msgid "" +"This PEP adds the :mod:`venv` module for programmatic access, and the " +"``pyvenv`` script for command-line access and administration. The Python " +"interpreter checks for a ``pyvenv.cfg``, file whose existence signals the " +"base of a virtual environment's directory tree." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:118 +msgid ":pep:`405` - Python Virtual Environments" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:119 +msgid "PEP written by Carl Meyer; implementation by Carl Meyer and Vinay Sajip" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:123 +msgid "PEP 420: Implicit Namespace Packages" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:125 +msgid "" +"Native support for package directories that don't require ``__init__.py`` " +"marker files and can automatically span multiple path segments (inspired by " +"various third party approaches to namespace packages, as described in :pep:" +"`420`)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:133 +msgid ":pep:`420` - Implicit Namespace Packages" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:133 +msgid "" +"PEP written by Eric V. Smith; implementation by Eric V. Smith and Barry " +"Warsaw" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:140 +msgid "" +"PEP 3118: New memoryview implementation and buffer protocol documentation" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:142 +msgid "The implementation of :pep:`3118` has been significantly improved." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:144 +msgid "" +"The new memoryview implementation comprehensively fixes all ownership and " +"lifetime issues of dynamically allocated fields in the Py_buffer struct that " +"led to multiple crash reports. Additionally, several functions that crashed " +"or returned incorrect results for non-contiguous or multi-dimensional input " +"have been fixed." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:150 +msgid "" +"The memoryview object now has a PEP-3118 compliant getbufferproc() that " +"checks the consumer's request type. Many new features have been added, most " +"of them work in full generality for non-contiguous arrays and arrays with " +"suboffsets." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:155 +msgid "" +"The documentation has been updated, clearly spelling out responsibilities " +"for both exporters and consumers. Buffer request flags are grouped into " +"basic and compound flags. The memory layout of non-contiguous and multi-" +"dimensional NumPy-style arrays is explained." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:161 ../Doc/whatsnew/3.3.rst:1122 +msgid "Features" +msgstr "Caractéristiques" + +#: ../Doc/whatsnew/3.3.rst:163 +msgid "" +"All native single character format specifiers in struct module syntax " +"(optionally prefixed with '@') are now supported." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:166 +msgid "" +"With some restrictions, the cast() method allows changing of format and " +"shape of C-contiguous arrays." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:169 +msgid "" +"Multi-dimensional list representations are supported for any array type." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:171 +msgid "Multi-dimensional comparisons are supported for any array type." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:173 +msgid "" +"One-dimensional memoryviews of hashable (read-only) types with formats B, b " +"or c are now hashable. (Contributed by Antoine Pitrou in :issue:`13411`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:176 +msgid "" +"Arbitrary slicing of any 1-D arrays type is supported. For example, it is " +"now possible to reverse a memoryview in O(1) by using a negative step." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:180 ../Doc/whatsnew/3.3.rst:1132 +msgid "API changes" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:182 +msgid "The maximum number of dimensions is officially limited to 64." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:184 +msgid "" +"The representation of empty shape, strides and suboffsets is now an empty " +"tuple instead of ``None``." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:187 +msgid "" +"Accessing a memoryview element with format 'B' (unsigned bytes) now returns " +"an integer (in accordance with the struct module syntax). For returning a " +"bytes object the view must be cast to 'c' first." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:191 +msgid "" +"memoryview comparisons now use the logical structure of the operands and " +"compare all array elements by value. All format strings in struct module " +"syntax are supported. Views with unrecognised format strings are still " +"permitted, but will always compare as unequal, regardless of view contents." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:197 +msgid "" +"For further changes see `Build and C API Changes`_ and `Porting C code`_." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:199 +msgid "(Contributed by Stefan Krah in :issue:`10181`.)" +msgstr "(Contribution par Stefan Krah; :issue:`10181`.)" + +#: ../Doc/whatsnew/3.3.rst:203 +msgid ":pep:`3118` - Revising the Buffer Protocol" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:209 +msgid "PEP 393: Flexible String Representation" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:211 +msgid "" +"The Unicode string type is changed to support multiple internal " +"representations, depending on the character with the largest Unicode ordinal " +"(1, 2, or 4 bytes) in the represented string. This allows a space-efficient " +"representation in common cases, but gives access to full UCS-4 on all " +"systems. For compatibility with existing APIs, several representations may " +"exist in parallel; over time, this compatibility should be phased out." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:218 +msgid "On the Python side, there should be no downside to this change." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:220 +msgid "" +"On the C API side, PEP 393 is fully backward compatible. The legacy API " +"should remain available at least five years. Applications using the legacy " +"API will not fully benefit of the memory reduction, or - worse - may use a " +"bit more memory, because Python may have to maintain two versions of each " +"string (in the legacy format and in the new efficient storage)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:227 +msgid "Functionality" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:229 +msgid "Changes introduced by :pep:`393` are the following:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:231 +msgid "" +"Python now always supports the full range of Unicode code points, including " +"non-BMP ones (i.e. from ``U+0000`` to ``U+10FFFF``). The distinction " +"between narrow and wide builds no longer exists and Python now behaves like " +"a wide build, even under Windows." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:236 +msgid "" +"With the death of narrow builds, the problems specific to narrow builds have " +"also been fixed, for example:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:239 +msgid "" +":func:`len` now always returns 1 for non-BMP characters, so " +"``len('\\U0010FFFF') == 1``;" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:242 +msgid "" +"surrogate pairs are not recombined in string literals, so ``'\\uDBFF" +"\\uDFFF' != '\\U0010FFFF'``;" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:245 +msgid "" +"indexing or slicing non-BMP characters returns the expected value, so " +"``'\\U0010FFFF'[0]`` now returns ``'\\U0010FFFF'`` and not ``'\\uDBFF'``;" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:248 +msgid "" +"all other functions in the standard library now correctly handle non-BMP " +"code points." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:251 +msgid "" +"The value of :data:`sys.maxunicode` is now always ``1114111`` (``0x10FFFF`` " +"in hexadecimal). The :c:func:`PyUnicode_GetMax` function still returns " +"either ``0xFFFF`` or ``0x10FFFF`` for backward compatibility, and it should " +"not be used with the new Unicode API (see :issue:`13054`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:256 +msgid "The :file:`./configure` flag ``--with-wide-unicode`` has been removed." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:259 +msgid "Performance and resource usage" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:261 +msgid "" +"The storage of Unicode strings now depends on the highest code point in the " +"string:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:263 +msgid "" +"pure ASCII and Latin1 strings (``U+0000-U+00FF``) use 1 byte per code point;" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:265 +msgid "BMP strings (``U+0000-U+FFFF``) use 2 bytes per code point;" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:267 +msgid "non-BMP strings (``U+10000-U+10FFFF``) use 4 bytes per code point." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:269 +msgid "" +"The net effect is that for most applications, memory usage of string storage " +"should decrease significantly - especially compared to former wide unicode " +"builds - as, in many cases, strings will be pure ASCII even in international " +"contexts (because many strings store non-human language data, such as XML " +"fragments, HTTP headers, JSON-encoded data, etc.). We also hope that it " +"will, for the same reasons, increase CPU cache efficiency on non-trivial " +"applications. The memory usage of Python 3.3 is two to three times smaller " +"than Python 3.2, and a little bit better than Python 2.7, on a Django " +"benchmark (see the PEP for details)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:283 +msgid ":pep:`393` - Flexible String Representation" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:283 +msgid "" +"PEP written by Martin von Löwis; implementation by Torsten Becker and Martin " +"von Löwis." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:290 +msgid "PEP 397: Python Launcher for Windows" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:292 +msgid "" +"The Python 3.3 Windows installer now includes a ``py`` launcher application " +"that can be used to launch Python applications in a version independent " +"fashion." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:296 +msgid "" +"This launcher is invoked implicitly when double-clicking ``*.py`` files. If " +"only a single Python version is installed on the system, that version will " +"be used to run the file. If multiple versions are installed, the most recent " +"version is used by default, but this can be overridden by including a Unix-" +"style \"shebang line\" in the Python script." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:302 +msgid "" +"The launcher can also be used explicitly from the command line as the ``py`` " +"application. Running ``py`` follows the same version selection rules as " +"implicitly launching scripts, but a more specific version can be selected by " +"passing appropriate arguments (such as ``-3`` to request Python 3 when " +"Python 2 is also installed, or ``-2.6`` to specifically request an earlier " +"Python version when a more recent version is installed)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:309 +msgid "" +"In addition to the launcher, the Windows installer now includes an option to " +"add the newly installed Python to the system PATH. (Contributed by Brian " +"Curtin in :issue:`3561`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:317 +msgid ":pep:`397` - Python Launcher for Windows" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:316 +msgid "" +"PEP written by Mark Hammond and Martin v. Löwis; implementation by Vinay " +"Sajip." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:319 +msgid "Launcher documentation: :ref:`launcher`" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:321 +msgid "Installer PATH modification: :ref:`windows-path-mod`" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:327 +msgid "PEP 3151: Reworking the OS and IO exception hierarchy" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:329 +msgid "" +"The hierarchy of exceptions raised by operating system errors is now both " +"simplified and finer-grained." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:332 +msgid "" +"You don't have to worry anymore about choosing the appropriate exception " +"type between :exc:`OSError`, :exc:`IOError`, :exc:`EnvironmentError`, :exc:" +"`WindowsError`, :exc:`mmap.error`, :exc:`socket.error` or :exc:`select." +"error`. All these exception types are now only one: :exc:`OSError`. The " +"other names are kept as aliases for compatibility reasons." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:339 +msgid "" +"Also, it is now easier to catch a specific error condition. Instead of " +"inspecting the ``errno`` attribute (or ``args[0]``) for a particular " +"constant from the :mod:`errno` module, you can catch the adequate :exc:" +"`OSError` subclass. The available subclasses are the following:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:344 +msgid ":exc:`BlockingIOError`" +msgstr ":exc:`BlockingIOError`" + +#: ../Doc/whatsnew/3.3.rst:345 +msgid ":exc:`ChildProcessError`" +msgstr ":exc:`ChildProcessError`" + +#: ../Doc/whatsnew/3.3.rst:346 +msgid ":exc:`ConnectionError`" +msgstr ":exc:`ConnectionError`" + +#: ../Doc/whatsnew/3.3.rst:347 +msgid ":exc:`FileExistsError`" +msgstr ":exc:`FileExistsError`" + +#: ../Doc/whatsnew/3.3.rst:348 +msgid ":exc:`FileNotFoundError`" +msgstr ":exc:`FileNotFoundError`" + +#: ../Doc/whatsnew/3.3.rst:349 +msgid ":exc:`InterruptedError`" +msgstr ":exc:`InterruptedError`" + +#: ../Doc/whatsnew/3.3.rst:350 +msgid ":exc:`IsADirectoryError`" +msgstr ":exc:`IsADirectoryError`" + +#: ../Doc/whatsnew/3.3.rst:351 +msgid ":exc:`NotADirectoryError`" +msgstr ":exc:`NotADirectoryError`" + +#: ../Doc/whatsnew/3.3.rst:352 +msgid ":exc:`PermissionError`" +msgstr ":exc:`PermissionError`" + +#: ../Doc/whatsnew/3.3.rst:353 +msgid ":exc:`ProcessLookupError`" +msgstr ":exc:`ProcessLookupError`" + +#: ../Doc/whatsnew/3.3.rst:354 +msgid ":exc:`TimeoutError`" +msgstr ":exc:`TimeoutError`" + +#: ../Doc/whatsnew/3.3.rst:356 +msgid "And the :exc:`ConnectionError` itself has finer-grained subclasses:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:358 +msgid ":exc:`BrokenPipeError`" +msgstr ":exc:`BrokenPipeError`" + +#: ../Doc/whatsnew/3.3.rst:359 +msgid ":exc:`ConnectionAbortedError`" +msgstr ":exc:`ConnectionAbortedError`" + +#: ../Doc/whatsnew/3.3.rst:360 +msgid ":exc:`ConnectionRefusedError`" +msgstr ":exc:`ConnectionRefusedError`" + +#: ../Doc/whatsnew/3.3.rst:361 +msgid ":exc:`ConnectionResetError`" +msgstr ":exc:`ConnectionResetError`" + +#: ../Doc/whatsnew/3.3.rst:363 +msgid "" +"Thanks to the new exceptions, common usages of the :mod:`errno` can now be " +"avoided. For example, the following code written for Python 3.2::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:379 +msgid "" +"can now be written without the :mod:`errno` import and without manual " +"inspection of exception attributes::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:392 +msgid ":pep:`3151` - Reworking the OS and IO Exception Hierarchy" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:393 +msgid "PEP written and implemented by Antoine Pitrou" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:402 +msgid "PEP 380: Syntax for Delegating to a Subgenerator" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:404 +msgid "" +"PEP 380 adds the ``yield from`` expression, allowing a :term:`generator` to " +"delegate part of its operations to another generator. This allows a section " +"of code containing :keyword:`yield` to be factored out and placed in another " +"generator. Additionally, the subgenerator is allowed to return with a value, " +"and the value is made available to the delegating generator." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:411 +msgid "" +"While designed primarily for use in delegating to a subgenerator, the " +"``yield from`` expression actually allows delegation to arbitrary " +"subiterators." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:414 +msgid "" +"For simple iterators, ``yield from iterable`` is essentially just a " +"shortened form of ``for item in iterable: yield item``::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:424 +msgid "" +"However, unlike an ordinary loop, ``yield from`` allows subgenerators to " +"receive sent and thrown values directly from the calling scope, and return a " +"final value to the outer generator::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:455 +msgid "" +"The main principle driving this change is to allow even generators that are " +"designed to be used with the ``send`` and ``throw`` methods to be split into " +"multiple subgenerators as easily as a single large function can be split " +"into multiple subfunctions." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:464 +msgid ":pep:`380` - Syntax for Delegating to a Subgenerator" +msgstr ":pep:`380` -- Syntaxe pour déléguer à un sous-générateur" + +#: ../Doc/whatsnew/3.3.rst:463 +msgid "" +"PEP written by Greg Ewing; implementation by Greg Ewing, integrated into 3.3 " +"by Renaud Blanch, Ryan Kelly and Nick Coghlan; documentation by Zbigniew " +"Jędrzejewski-Szmek and Nick Coghlan" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:469 +msgid "PEP 409: Suppressing exception context" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:471 +msgid "" +"PEP 409 introduces new syntax that allows the display of the chained " +"exception context to be disabled. This allows cleaner error messages in " +"applications that convert between exception types::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:490 +msgid "" +"Without the ``from None`` suffix to suppress the cause, the original " +"exception would be displayed by default::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:514 +msgid "" +"No debugging capability is lost, as the original exception context remains " +"available if needed (for example, if an intervening library has incorrectly " +"suppressed valuable underlying details)::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:528 +msgid ":pep:`409` - Suppressing exception context" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:528 +msgid "" +"PEP written by Ethan Furman; implemented by Ethan Furman and Nick Coghlan." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:533 +msgid "PEP 414: Explicit Unicode literals" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:535 +msgid "" +"To ease the transition from Python 2 for Unicode aware Python applications " +"that make heavy use of Unicode literals, Python 3.3 once again supports the " +"\"``u``\" prefix for string literals. This prefix has no semantic " +"significance in Python 3, it is provided solely to reduce the number of " +"purely mechanical changes in migrating to Python 3, making it easier for " +"developers to focus on the more significant semantic changes (such as the " +"stricter default separation of binary and text data)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:545 +msgid ":pep:`414` - Explicit Unicode literals" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:546 +msgid "PEP written by Armin Ronacher." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:550 +msgid "PEP 3155: Qualified name for classes and functions" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:552 +msgid "" +"Functions and class objects have a new ``__qualname__`` attribute " +"representing the \"path\" from the module top-level to their definition. " +"For global functions and classes, this is the same as ``__name__``. For " +"other functions and classes, it provides better information about where they " +"were actually defined, and how they might be accessible from the global " +"scope." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:558 +msgid "Example with (non-bound) methods::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:568 +msgid "Example with nested classes::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:584 +msgid "Example with nested functions::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:596 +msgid "" +"The string representation of those objects is also changed to include the " +"new, more precise information::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:606 +msgid ":pep:`3155` - Qualified name for classes and functions" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:607 +msgid "PEP written and implemented by Antoine Pitrou." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:613 +msgid "PEP 412: Key-Sharing Dictionary" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:615 +msgid "" +"Dictionaries used for the storage of objects' attributes are now able to " +"share part of their internal storage between each other (namely, the part " +"which stores the keys and their respective hashes). This reduces the memory " +"consumption of programs creating many instances of non-builtin types." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:622 +msgid ":pep:`412` - Key-Sharing Dictionary" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:623 +msgid "PEP written and implemented by Mark Shannon." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:627 +msgid "PEP 362: Function Signature Object" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:629 +msgid "" +"A new function :func:`inspect.signature` makes introspection of python " +"callables easy and straightforward. A broad range of callables is " +"supported: python functions, decorated or not, classes, and :func:`functools." +"partial` objects. New classes :class:`inspect.Signature`, :class:`inspect." +"Parameter` and :class:`inspect.BoundArguments` hold information about the " +"call signatures, such as, annotations, default values, parameters kinds, and " +"bound arguments, which considerably simplifies writing decorators and any " +"code that validates or amends calling signatures or arguments." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:641 +msgid ":pep:`362`: - Function Signature Object" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:641 +msgid "" +"PEP written by Brett Cannon, Yury Selivanov, Larry Hastings, Jiwon Seo; " +"implemented by Yury Selivanov." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:646 +msgid "PEP 421: Adding sys.implementation" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:648 +msgid "" +"A new attribute on the :mod:`sys` module exposes details specific to the " +"implementation of the currently running interpreter. The initial set of " +"attributes on :attr:`sys.implementation` are ``name``, ``version``, " +"``hexversion``, and ``cache_tag``." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:653 +msgid "" +"The intention of ``sys.implementation`` is to consolidate into one namespace " +"the implementation-specific data used by the standard library. This allows " +"different Python implementations to share a single standard library code " +"base much more easily. In its initial state, ``sys.implementation`` holds " +"only a small portion of the implementation-specific data. Over time that " +"ratio will shift in order to make the standard library more portable." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:660 +msgid "" +"One example of improved standard library portability is ``cache_tag``. As " +"of Python 3.3, ``sys.implementation.cache_tag`` is used by :mod:`importlib` " +"to support :pep:`3147` compliance. Any Python implementation that uses " +"``importlib`` for its built-in import system may use ``cache_tag`` to " +"control the caching behavior for modules." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:667 +msgid "SimpleNamespace" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:669 +msgid "" +"The implementation of ``sys.implementation`` also introduces a new type to " +"Python: :class:`types.SimpleNamespace`. In contrast to a mapping-based " +"namespace, like :class:`dict`, ``SimpleNamespace`` is attribute-based, like :" +"class:`object`. However, unlike ``object``, ``SimpleNamespace`` instances " +"are writable. This means that you can add, remove, and modify the namespace " +"through normal attribute access." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:678 +msgid ":pep:`421` - Adding sys.implementation" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:679 +msgid "PEP written and implemented by Eric Snow." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:685 +msgid "Using importlib as the Implementation of Import" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:686 +msgid "" +":issue:`2377` - Replace __import__ w/ importlib.__import__ :issue:`13959` - " +"Re-implement parts of :mod:`imp` in pure Python :issue:`14605` - Make import " +"machinery explicit :issue:`14646` - Require loaders set __loader__ and " +"__package__" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:691 +msgid "" +"The :func:`__import__` function is now powered by :func:`importlib." +"__import__`. This work leads to the completion of \"phase 2\" of :pep:`302`. " +"There are multiple benefits to this change. First, it has allowed for more " +"of the machinery powering import to be exposed instead of being implicit and " +"hidden within the C code. It also provides a single implementation for all " +"Python VMs supporting Python 3.3 to use, helping to end any VM-specific " +"deviations in import semantics. And finally it eases the maintenance of " +"import, allowing for future growth to occur." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:700 +msgid "" +"For the common user, there should be no visible change in semantics. For " +"those whose code currently manipulates import or calls import " +"programmatically, the code changes that might possibly be required are " +"covered in the `Porting Python code`_ section of this document." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:706 +msgid "New APIs" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:707 +msgid "" +"One of the large benefits of this work is the exposure of what goes into " +"making the import statement work. That means the various importers that were " +"once implicit are now fully exposed as part of the :mod:`importlib` package." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:711 +msgid "" +"The abstract base classes defined in :mod:`importlib.abc` have been expanded " +"to properly delineate between :term:`meta path finders ` " +"and :term:`path entry finders ` by introducing :class:" +"`importlib.abc.MetaPathFinder` and :class:`importlib.abc.PathEntryFinder`, " +"respectively. The old ABC of :class:`importlib.abc.Finder` is now only " +"provided for backwards-compatibility and does not enforce any method " +"requirements." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:719 +msgid "" +"In terms of finders, :class:`importlib.machinery.FileFinder` exposes the " +"mechanism used to search for source and bytecode files of a module. " +"Previously this class was an implicit member of :attr:`sys.path_hooks`." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:723 +msgid "" +"For loaders, the new abstract base class :class:`importlib.abc.FileLoader` " +"helps write a loader that uses the file system as the storage mechanism for " +"a module's code. The loader for source files (:class:`importlib.machinery." +"SourceFileLoader`), sourceless bytecode files (:class:`importlib.machinery." +"SourcelessFileLoader`), and extension modules (:class:`importlib.machinery." +"ExtensionFileLoader`) are now available for direct use." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:731 +msgid "" +":exc:`ImportError` now has ``name`` and ``path`` attributes which are set " +"when there is relevant data to provide. The message for failed imports will " +"also provide the full name of the module now instead of just the tail end of " +"the module's name." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:736 +msgid "" +"The :func:`importlib.invalidate_caches` function will now call the method " +"with the same name on all finders cached in :attr:`sys.path_importer_cache` " +"to help clean up any stored state as necessary." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:741 +msgid "Visible Changes" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:743 +msgid "" +"For potential required changes to code, see the `Porting Python code`_ " +"section." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:746 +msgid "" +"Beyond the expanse of what :mod:`importlib` now exposes, there are other " +"visible changes to import. The biggest is that :attr:`sys.meta_path` and :" +"attr:`sys.path_hooks` now store all of the meta path finders and path entry " +"hooks used by import. Previously the finders were implicit and hidden " +"within the C code of import instead of being directly exposed. This means " +"that one can now easily remove or change the order of the various finders to " +"fit one's needs." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:753 +msgid "" +"Another change is that all modules have a ``__loader__`` attribute, storing " +"the loader used to create the module. :pep:`302` has been updated to make " +"this attribute mandatory for loaders to implement, so in the future once 3rd-" +"party loaders have been updated people will be able to rely on the existence " +"of the attribute. Until such time, though, import is setting the module post-" +"load." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:759 +msgid "" +"Loaders are also now expected to set the ``__package__`` attribute from :pep:" +"`366`. Once again, import itself is already setting this on all loaders " +"from :mod:`importlib` and import itself is setting the attribute post-load." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:763 +msgid "" +"``None`` is now inserted into :attr:`sys.path_importer_cache` when no finder " +"can be found on :attr:`sys.path_hooks`. Since :class:`imp.NullImporter` is " +"not directly exposed on :attr:`sys.path_hooks` it could no longer be relied " +"upon to always be available to use as a value representing no finder found." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:768 +msgid "" +"All other changes relate to semantic changes which should be taken into " +"consideration when updating code for Python 3.3, and thus should be read " +"about in the `Porting Python code`_ section of this document." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:772 +msgid "(Implementation by Brett Cannon)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:776 +msgid "Other Language Changes" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:778 +msgid "Some smaller changes made to the core Python language are:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:780 +msgid "" +"Added support for Unicode name aliases and named sequences. Both :func:" +"`unicodedata.lookup()` and ``'\\N{...}'`` now resolve name aliases, and :" +"func:`unicodedata.lookup()` resolves named sequences too." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:784 +msgid "(Contributed by Ezio Melotti in :issue:`12753`.)" +msgstr "(Contribution par Ezio Melotti; :issue:`12753`.)" + +#: ../Doc/whatsnew/3.3.rst:786 +msgid "Unicode database updated to UCD version 6.1.0" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:788 +msgid "" +"Equality comparisons on :func:`range` objects now return a result reflecting " +"the equality of the underlying sequences generated by those range objects. (:" +"issue:`13201`)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:792 +msgid "" +"The ``count()``, ``find()``, ``rfind()``, ``index()`` and ``rindex()`` " +"methods of :class:`bytes` and :class:`bytearray` objects now accept an " +"integer between 0 and 255 as their first argument." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:796 +msgid "(Contributed by Petri Lehtinen in :issue:`12170`.)" +msgstr "(Contribution par Petri Lehtinen; :issue:`12170`.)" + +#: ../Doc/whatsnew/3.3.rst:798 +msgid "" +"The ``rjust()``, ``ljust()``, and ``center()`` methods of :class:`bytes` " +"and :class:`bytearray` now accept a :class:`bytearray` for the ``fill`` " +"argument. (Contributed by Petri Lehtinen in :issue:`12380`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:802 +msgid "" +"New methods have been added to :class:`list` and :class:`bytearray`: " +"``copy()`` and ``clear()`` (:issue:`10516`). Consequently, :class:" +"`~collections.abc.MutableSequence` now also defines a :meth:`~collections." +"abc.MutableSequence.clear` method (:issue:`11388`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:807 +msgid "" +"Raw bytes literals can now be written ``rb\"...\"`` as well as ``br\"...\"``." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:809 +msgid "(Contributed by Antoine Pitrou in :issue:`13748`.)" +msgstr "(Contribution par Antoine Pitrou; :issue:`13748`.)" + +#: ../Doc/whatsnew/3.3.rst:811 +msgid "" +":meth:`dict.setdefault` now does only one lookup for the given key, making " +"it atomic when used with built-in types." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:814 +msgid "(Contributed by Filip Gruszczyński in :issue:`13521`.)" +msgstr "(Contribution par Filip Gruszczyński; :issue:`13521`.)" + +#: ../Doc/whatsnew/3.3.rst:816 +msgid "" +"The error messages produced when a function call does not match the function " +"signature have been significantly improved." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:819 +msgid "(Contributed by Benjamin Peterson.)" +msgstr "(Contribution par Benjamin Peterson)" + +#: ../Doc/whatsnew/3.3.rst:823 +msgid "A Finer-Grained Import Lock" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:825 +msgid "" +"Previous versions of CPython have always relied on a global import lock. " +"This led to unexpected annoyances, such as deadlocks when importing a module " +"would trigger code execution in a different thread as a side-effect. Clumsy " +"workarounds were sometimes employed, such as the :c:func:" +"`PyImport_ImportModuleNoBlock` C API function." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:831 +msgid "" +"In Python 3.3, importing a module takes a per-module lock. This correctly " +"serializes importation of a given module from multiple threads (preventing " +"the exposure of incompletely initialized modules), while eliminating the " +"aforementioned annoyances." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:836 +msgid "(Contributed by Antoine Pitrou in :issue:`9260`.)" +msgstr "(Contribution par Antoine Pitrou; :issue:`9260`.)" + +#: ../Doc/whatsnew/3.3.rst:840 +msgid "Builtin functions and types" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:842 +msgid "" +":func:`open` gets a new *opener* parameter: the underlying file descriptor " +"for the file object is then obtained by calling *opener* with (*file*, " +"*flags*). It can be used to use custom flags like :data:`os.O_CLOEXEC` for " +"example. The ``'x'`` mode was added: open for exclusive creation, failing if " +"the file already exists." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:847 +msgid "" +":func:`print`: added the *flush* keyword argument. If the *flush* keyword " +"argument is true, the stream is forcibly flushed." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:849 +msgid "" +":func:`hash`: hash randomization is enabled by default, see :meth:`object." +"__hash__` and :envvar:`PYTHONHASHSEED`." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:851 +msgid "" +"The :class:`str` type gets a new :meth:`~str.casefold` method: return a " +"casefolded copy of the string, casefolded strings may be used for caseless " +"matching. For example, ``'ß'.casefold()`` returns ``'ss'``." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:854 +msgid "" +"The sequence documentation has been substantially rewritten to better " +"explain the binary/text sequence distinction and to provide specific " +"documentation sections for the individual builtin sequence types (:issue:" +"`4966`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:861 +msgid "New Modules" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:864 +msgid "faulthandler" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:866 +msgid "" +"This new debug module :mod:`faulthandler` contains functions to dump Python " +"tracebacks explicitly, on a fault (a crash like a segmentation fault), after " +"a timeout, or on a user signal. Call :func:`faulthandler.enable` to install " +"fault handlers for the :const:`SIGSEGV`, :const:`SIGFPE`, :const:`SIGABRT`, :" +"const:`SIGBUS`, and :const:`SIGILL` signals. You can also enable them at " +"startup by setting the :envvar:`PYTHONFAULTHANDLER` environment variable or " +"by using :option:`-X` ``faulthandler`` command line option." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:874 +msgid "Example of a segmentation fault on Linux:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:890 +msgid "ipaddress" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:892 +msgid "" +"The new :mod:`ipaddress` module provides tools for creating and manipulating " +"objects representing IPv4 and IPv6 addresses, networks and interfaces (i.e. " +"an IP address associated with a specific IP subnet)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:896 +msgid "(Contributed by Google and Peter Moody in :pep:`3144`.)" +msgstr "(Contribution par Google et Peter Moody; :pep:`3144`)" + +#: ../Doc/whatsnew/3.3.rst:899 +msgid "lzma" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:901 +msgid "" +"The newly-added :mod:`lzma` module provides data compression and " +"decompression using the LZMA algorithm, including support for the ``.xz`` " +"and ``.lzma`` file formats." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:905 +msgid "(Contributed by Nadeem Vawda and Per Øyvind Karlsen in :issue:`6715`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:909 +msgid "Improved Modules" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:912 +msgid "abc" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:914 +msgid "" +"Improved support for abstract base classes containing descriptors composed " +"with abstract methods. The recommended approach to declaring abstract " +"descriptors is now to provide :attr:`__isabstractmethod__` as a dynamically " +"updated property. The built-in descriptors have been updated accordingly." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:919 ../Doc/whatsnew/3.3.rst:2245 +msgid "" +":class:`abc.abstractproperty` has been deprecated, use :class:`property` " +"with :func:`abc.abstractmethod` instead." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:921 ../Doc/whatsnew/3.3.rst:2247 +msgid "" +":class:`abc.abstractclassmethod` has been deprecated, use :class:" +"`classmethod` with :func:`abc.abstractmethod` instead." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:923 ../Doc/whatsnew/3.3.rst:2249 +msgid "" +":class:`abc.abstractstaticmethod` has been deprecated, use :class:" +"`staticmethod` with :func:`abc.abstractmethod` instead." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:926 +msgid "(Contributed by Darren Dale in :issue:`11610`.)" +msgstr "(Contribution par Darren Dale; :issue:`11610`.)" + +#: ../Doc/whatsnew/3.3.rst:928 +msgid "" +":meth:`abc.ABCMeta.register` now returns the registered subclass, which " +"means it can now be used as a class decorator (:issue:`10868`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:933 +msgid "array" +msgstr "*array*" + +#: ../Doc/whatsnew/3.3.rst:935 +msgid "" +"The :mod:`array` module supports the :c:type:`long long` type using ``q`` " +"and ``Q`` type codes." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:938 +msgid "(Contributed by Oren Tirosh and Hirokazu Yamamoto in :issue:`1172711`.)" +msgstr "(Contribution par Oren Tirosh et Hirokazu Yamamoto; :issue:`1172711`.)" + +#: ../Doc/whatsnew/3.3.rst:942 +msgid "base64" +msgstr "base64" + +#: ../Doc/whatsnew/3.3.rst:944 +msgid "" +"ASCII-only Unicode strings are now accepted by the decoding functions of " +"the :mod:`base64` modern interface. For example, ``base64." +"b64decode('YWJj')`` returns ``b'abc'``. (Contributed by Catalin Iacob in :" +"issue:`13641`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:950 +msgid "binascii" +msgstr "binascii" + +#: ../Doc/whatsnew/3.3.rst:952 +msgid "" +"In addition to the binary objects they normally accept, the ``a2b_`` " +"functions now all also accept ASCII-only strings as input. (Contributed by " +"Antoine Pitrou in :issue:`13637`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:958 +msgid "bz2" +msgstr "bz2" + +#: ../Doc/whatsnew/3.3.rst:960 +msgid "" +"The :mod:`bz2` module has been rewritten from scratch. In the process, " +"several new features have been added:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:963 +msgid "" +"New :func:`bz2.open` function: open a bzip2-compressed file in binary or " +"text mode." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:966 +msgid "" +":class:`bz2.BZ2File` can now read from and write to arbitrary file-like " +"objects, by means of its constructor's *fileobj* argument." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:969 +msgid "(Contributed by Nadeem Vawda in :issue:`5863`.)" +msgstr "(Contribution par Nadeem Vawda; :issue:`5863`.)" + +#: ../Doc/whatsnew/3.3.rst:971 +msgid "" +":class:`bz2.BZ2File` and :func:`bz2.decompress` can now decompress multi-" +"stream inputs (such as those produced by the :program:`pbzip2` tool). :class:" +"`bz2.BZ2File` can now also be used to create this type of file, using the " +"``'a'`` (append) mode." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:976 +msgid "(Contributed by Nir Aides in :issue:`1625`.)" +msgstr "(Contribution par Nir Aides; :issue:`1625`.)" + +#: ../Doc/whatsnew/3.3.rst:978 +msgid "" +":class:`bz2.BZ2File` now implements all of the :class:`io.BufferedIOBase` " +"API, except for the :meth:`detach` and :meth:`truncate` methods." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:983 +msgid "codecs" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:985 +msgid "" +"The :mod:`~encodings.mbcs` codec has been rewritten to handle correctly " +"``replace`` and ``ignore`` error handlers on all Windows versions. The :mod:" +"`~encodings.mbcs` codec now supports all error handlers, instead of only " +"``replace`` to encode and ``ignore`` to decode." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:990 +msgid "" +"A new Windows-only codec has been added: ``cp65001`` (:issue:`13216`). It is " +"the Windows code page 65001 (Windows UTF-8, ``CP_UTF8``). For example, it " +"is used by ``sys.stdout`` if the console output code page is set to cp65001 " +"(e.g., using ``chcp 65001`` command)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:995 +msgid "" +"Multibyte CJK decoders now resynchronize faster. They only ignore the first " +"byte of an invalid byte sequence. For example, ``b'\\xff\\n'." +"decode('gb2312', 'replace')`` now returns a ``\\n`` after the replacement " +"character." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:999 +msgid "(:issue:`12016`)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1001 +msgid "" +"Incremental CJK codec encoders are no longer reset at each call to their " +"encode() methods. For example::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1009 +msgid "" +"This example gives ``b'~{Np~}~{J)~}~{l6~}~{HK~}~{!#~} Bye.'`` with older " +"Python versions." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1012 +msgid "(:issue:`12100`)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1014 +msgid "The ``unicode_internal`` codec has been deprecated." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1018 +msgid "collections" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1020 +msgid "" +"Addition of a new :class:`~collections.ChainMap` class to allow treating a " +"number of mappings as a single unit. (Written by Raymond Hettinger for :" +"issue:`11089`, made public in :issue:`11297`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1024 +msgid "" +"The abstract base classes have been moved in a new :mod:`collections.abc` " +"module, to better differentiate between the abstract and the concrete " +"collections classes. Aliases for ABCs are still present in the :mod:" +"`collections` module to preserve existing imports. (:issue:`11085`)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1031 +msgid "" +"The :class:`~collections.Counter` class now supports the unary ``+`` and ``-" +"`` operators, as well as the in-place operators ``+=``, ``-=``, ``|=``, and " +"``&=``. (Contributed by Raymond Hettinger in :issue:`13121`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1037 +msgid "contextlib" +msgstr "contextlib" + +#: ../Doc/whatsnew/3.3.rst:1039 +msgid "" +":class:`~contextlib.ExitStack` now provides a solid foundation for " +"programmatic manipulation of context managers and similar cleanup " +"functionality. Unlike the previous ``contextlib.nested`` API (which was " +"deprecated and removed), the new API is designed to work correctly " +"regardless of whether context managers acquire their resources in their " +"``__init__`` method (for example, file objects) or in their ``__enter__`` " +"method (for example, synchronisation objects from the :mod:`threading` " +"module)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1048 +msgid "(:issue:`13585`)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1052 +msgid "crypt" +msgstr "crypt" + +#: ../Doc/whatsnew/3.3.rst:1054 +msgid "" +"Addition of salt and modular crypt format (hashing method) and the :func:" +"`~crypt.mksalt` function to the :mod:`crypt` module." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1057 +msgid "(:issue:`10924`)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1060 +msgid "curses" +msgstr "curses" + +#: ../Doc/whatsnew/3.3.rst:1062 +msgid "" +"If the :mod:`curses` module is linked to the ncursesw library, use Unicode " +"functions when Unicode strings or characters are passed (e.g. :c:func:" +"`waddwstr`), and bytes functions otherwise (e.g. :c:func:`waddstr`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1065 +msgid "Use the locale encoding instead of ``utf-8`` to encode Unicode strings." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1066 +msgid "" +":class:`curses.window` has a new :attr:`curses.window.encoding` attribute." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1067 +msgid "" +"The :class:`curses.window` class has a new :meth:`~curses.window.get_wch` " +"method to get a wide character" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1069 +msgid "" +"The :mod:`curses` module has a new :meth:`~curses.unget_wch` function to " +"push a wide character so the next :meth:`~curses.window.get_wch` will return " +"it" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1073 +msgid "(Contributed by Iñigo Serna in :issue:`6755`.)" +msgstr "(Contribution par Iñigo Serna; :issue:`6755`.)" + +#: ../Doc/whatsnew/3.3.rst:1076 +msgid "datetime" +msgstr "datetime" + +#: ../Doc/whatsnew/3.3.rst:1078 +msgid "" +"Equality comparisons between naive and aware :class:`~datetime.datetime` " +"instances now return :const:`False` instead of raising :exc:`TypeError` (:" +"issue:`15006`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1081 +msgid "" +"New :meth:`datetime.datetime.timestamp` method: Return POSIX timestamp " +"corresponding to the :class:`~datetime.datetime` instance." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1083 +msgid "" +"The :meth:`datetime.datetime.strftime` method supports formatting years " +"older than 1000." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1085 +msgid "" +"The :meth:`datetime.datetime.astimezone` method can now be called without " +"arguments to convert datetime instance to the system timezone." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1093 +msgid "decimal" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1096 +msgid ":issue:`7652` - integrate fast native decimal arithmetic." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1096 +msgid "C-module and libmpdec written by Stefan Krah." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1098 +msgid "" +"The new C version of the decimal module integrates the high speed libmpdec " +"library for arbitrary precision correctly-rounded decimal floating point " +"arithmetic. libmpdec conforms to IBM's General Decimal Arithmetic " +"Specification." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1102 +msgid "" +"Performance gains range from 10x for database applications to 100x for " +"numerically intensive applications. These numbers are expected gains for " +"standard precisions used in decimal floating point arithmetic. Since the " +"precision is user configurable, the exact figures may vary. For example, in " +"integer bignum arithmetic the differences can be significantly higher." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1108 +msgid "" +"The following table is meant as an illustration. Benchmarks are available at " +"http://www.bytereef.org/mpdecimal/quickstart.html." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1112 +msgid "decimal.py" +msgstr "decimal.py" + +#: ../Doc/whatsnew/3.3.rst:1112 +msgid "_decimal" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1112 +msgid "speedup" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1114 +msgid "pi" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1114 +msgid "42.02s" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1114 +msgid "0.345s" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1114 +msgid "120x" +msgstr "120x" + +#: ../Doc/whatsnew/3.3.rst:1116 +msgid "telco" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1116 +msgid "172.19s" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1116 +msgid "5.68s" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1116 +msgid "30x" +msgstr "30x" + +#: ../Doc/whatsnew/3.3.rst:1118 +msgid "psycopg" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1118 +msgid "3.57s" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1118 +msgid "0.29s" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1118 +msgid "12x" +msgstr "12x" + +#: ../Doc/whatsnew/3.3.rst:1124 +msgid "" +"The :exc:`~decimal.FloatOperation` signal optionally enables stricter " +"semantics for mixing floats and Decimals." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1127 +msgid "" +"If Python is compiled without threads, the C version automatically disables " +"the expensive thread local context machinery. In this case, the variable :" +"data:`~decimal.HAVE_THREADS` is set to ``False``." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1134 +msgid "" +"The C module has the following context limits, depending on the machine " +"architecture:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1138 +msgid "32-bit" +msgstr "32-bit" + +#: ../Doc/whatsnew/3.3.rst:1138 +msgid "64-bit" +msgstr "64-bit" + +#: ../Doc/whatsnew/3.3.rst:1140 +msgid ":const:`MAX_PREC`" +msgstr ":const:`MAX_PREC`" + +#: ../Doc/whatsnew/3.3.rst:1140 ../Doc/whatsnew/3.3.rst:1142 +msgid ":const:`425000000`" +msgstr ":const:`425000000`" + +#: ../Doc/whatsnew/3.3.rst:1140 ../Doc/whatsnew/3.3.rst:1142 +msgid ":const:`999999999999999999`" +msgstr ":const:`999999999999999999`" + +#: ../Doc/whatsnew/3.3.rst:1142 +msgid ":const:`MAX_EMAX`" +msgstr ":const:`MAX_EMAX`" + +#: ../Doc/whatsnew/3.3.rst:1144 +msgid ":const:`MIN_EMIN`" +msgstr ":const:`MIN_EMIN`" + +#: ../Doc/whatsnew/3.3.rst:1144 +msgid ":const:`-425000000`" +msgstr ":const:`-425000000`" + +#: ../Doc/whatsnew/3.3.rst:1144 +msgid ":const:`-999999999999999999`" +msgstr ":const:`-999999999999999999`" + +#: ../Doc/whatsnew/3.3.rst:1147 +msgid "" +"In the context templates (:class:`~decimal.DefaultContext`, :class:`~decimal." +"BasicContext` and :class:`~decimal.ExtendedContext`) the magnitude of :attr:" +"`~decimal.Context.Emax` and :attr:`~decimal.Context.Emin` has changed to :" +"const:`999999`." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1152 +msgid "" +"The :class:`~decimal.Decimal` constructor in decimal.py does not observe the " +"context limits and converts values with arbitrary exponents or precision " +"exactly. Since the C version has internal limits, the following scheme is " +"used: If possible, values are converted exactly, otherwise :exc:`~decimal." +"InvalidOperation` is raised and the result is NaN. In the latter case it is " +"always possible to use :meth:`~decimal.Context.create_decimal` in order to " +"obtain a rounded or inexact value." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1161 +msgid "" +"The power function in decimal.py is always correctly-rounded. In the C " +"version, it is defined in terms of the correctly-rounded :meth:`~decimal." +"Decimal.exp` and :meth:`~decimal.Decimal.ln` functions, but the final result " +"is only \"almost always correctly rounded\"." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1167 +msgid "" +"In the C version, the context dictionary containing the signals is a :class:" +"`~collections.abc.MutableMapping`. For speed reasons, :attr:`~decimal." +"Context.flags` and :attr:`~decimal.Context.traps` always refer to the same :" +"class:`~collections.abc.MutableMapping` that the context was initialized " +"with. If a new signal dictionary is assigned, :attr:`~decimal.Context.flags` " +"and :attr:`~decimal.Context.traps` are updated with the new values, but they " +"do not reference the RHS dictionary." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1177 +msgid "" +"Pickling a :class:`~decimal.Context` produces a different output in order to " +"have a common interchange format for the Python and C versions." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1181 +msgid "" +"The order of arguments in the :class:`~decimal.Context` constructor has been " +"changed to match the order displayed by :func:`repr`." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1185 +msgid "" +"The ``watchexp`` parameter in the :meth:`~decimal.Decimal.quantize` method " +"is deprecated." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1192 +msgid "email" +msgstr "email" + +#: ../Doc/whatsnew/3.3.rst:1195 +msgid "Policy Framework" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1197 +msgid "" +"The email package now has a :mod:`~email.policy` framework. A :class:" +"`~email.policy.Policy` is an object with several methods and properties that " +"control how the email package behaves. The primary policy for Python 3.3 is " +"the :class:`~email.policy.Compat32` policy, which provides backward " +"compatibility with the email package in Python 3.2. A ``policy`` can be " +"specified when an email message is parsed by a :mod:`~email.parser`, or when " +"a :class:`~email.message.Message` object is created, or when an email is " +"serialized using a :mod:`~email.generator`. Unless overridden, a policy " +"passed to a ``parser`` is inherited by all the ``Message`` object and sub-" +"objects created by the ``parser``. By default a ``generator`` will use the " +"policy of the ``Message`` object it is serializing. The default policy is :" +"data:`~email.policy.compat32`." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1210 +msgid "The minimum set of controls implemented by all ``policy`` objects are:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1215 +msgid "max_line_length" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1215 +msgid "" +"The maximum length, excluding the linesep character(s), individual lines may " +"have when a ``Message`` is serialized. Defaults to 78." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1219 +msgid "linesep" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1219 +msgid "" +"The character used to separate individual lines when a ``Message`` is " +"serialized. Defaults to ``\\n``." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1222 +msgid "cte_type" +msgstr "cte_type" + +#: ../Doc/whatsnew/3.3.rst:1222 +msgid "" +"``7bit`` or ``8bit``. ``8bit`` applies only to a ``Bytes`` ``generator``, " +"and means that non-ASCII may be used where allowed by the protocol (or where " +"it exists in the original input)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1227 +msgid "raise_on_defect" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1227 +msgid "" +"Causes a ``parser`` to raise error when defects are encountered instead of " +"adding them to the ``Message`` object's ``defects`` list." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1232 +msgid "" +"A new policy instance, with new settings, is created using the :meth:`~email." +"policy.Policy.clone` method of policy objects. ``clone`` takes any of the " +"above controls as keyword arguments. Any control not specified in the call " +"retains its default value. Thus you can create a policy that uses ``\\r" +"\\n`` linesep characters like this::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1240 +msgid "" +"Policies can be used to make the generation of messages in the format needed " +"by your application simpler. Instead of having to remember to specify " +"``linesep='\\r\\n'`` in all the places you call a ``generator``, you can " +"specify it once, when you set the policy used by the ``parser`` or the " +"``Message``, whichever your program uses to create ``Message`` objects. On " +"the other hand, if you need to generate messages in multiple forms, you can " +"still specify the parameters in the appropriate ``generator`` call. Or you " +"can have custom policy instances for your different cases, and pass those in " +"when you create the ``generator``." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1252 +msgid "Provisional Policy with New Header API" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1254 +msgid "" +"While the policy framework is worthwhile all by itself, the main motivation " +"for introducing it is to allow the creation of new policies that implement " +"new features for the email package in a way that maintains backward " +"compatibility for those who do not use the new policies. Because the new " +"policies introduce a new API, we are releasing them in Python 3.3 as a :term:" +"`provisional policy `. Backwards incompatible changes " +"(up to and including removal of the code) may occur if deemed necessary by " +"the core developers." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1262 +msgid "" +"The new policies are instances of :class:`~email.policy.EmailPolicy`, and " +"add the following additional controls:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1268 +msgid "refold_source" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1268 +msgid "" +"Controls whether or not headers parsed by a :mod:`~email.parser` are " +"refolded by the :mod:`~email.generator`. It can be ``none``, ``long``, or " +"``all``. The default is ``long``, which means that source headers with a " +"line longer than ``max_line_length`` get refolded. ``none`` means no line " +"get refolded, and ``all`` means that all lines get refolded." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1277 +msgid "header_factory" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1277 +msgid "" +"A callable that take a ``name`` and ``value`` and produces a custom header " +"object." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1281 +msgid "" +"The ``header_factory`` is the key to the new features provided by the new " +"policies. When one of the new policies is used, any header retrieved from a " +"``Message`` object is an object produced by the ``header_factory``, and any " +"time you set a header on a ``Message`` it becomes an object produced by " +"``header_factory``. All such header objects have a ``name`` attribute equal " +"to the header name. Address and Date headers have additional attributes " +"that give you access to the parsed data of the header. This means you can " +"now do things like this::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1309 +msgid "" +"You will note that the unicode display name is automatically encoded as " +"``utf-8`` when the message is serialized, but that when the header is " +"accessed directly, you get the unicode version. This eliminates any need to " +"deal with the :mod:`email.header` :meth:`~email.header.decode_header` or :" +"meth:`~email.header.make_header` functions." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1315 +msgid "You can also create addresses from parts::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1325 +msgid "Decoding to unicode is done automatically::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1331 +msgid "" +"When you parse a message, you can use the ``addresses`` and ``groups`` " +"attributes of the header objects to access the groups and individual " +"addresses::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1340 +msgid "" +"In summary, if you use one of the new policies, header manipulation works " +"the way it ought to: your application works with unicode strings, and the " +"email package transparently encodes and decodes the unicode to and from the " +"RFC standard Content Transfer Encodings." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1346 +msgid "Other API Changes" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1348 +msgid "" +"New :class:`~email.parser.BytesHeaderParser`, added to the :mod:`~email." +"parser` module to complement :class:`~email.parser.HeaderParser` and " +"complete the Bytes API." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1352 +msgid "New utility functions:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1354 +msgid "" +":func:`~email.utils.format_datetime`: given a :class:`~datetime.datetime`, " +"produce a string formatted for use in an email header." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1357 +msgid "" +":func:`~email.utils.parsedate_to_datetime`: given a date string from an " +"email header, convert it into an aware :class:`~datetime.datetime`, or a " +"naive :class:`~datetime.datetime` if the offset is ``-0000``." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1361 +msgid "" +":func:`~email.utils.localtime`: With no argument, returns the current local " +"time as an aware :class:`~datetime.datetime` using the local :class:" +"`~datetime.timezone`. Given an aware :class:`~datetime.datetime`, converts " +"it into an aware :class:`~datetime.datetime` using the local :class:" +"`~datetime.timezone`." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1369 +msgid "ftplib" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1371 +msgid "" +":class:`ftplib.FTP` now accepts a ``source_address`` keyword argument to " +"specify the ``(host, port)`` to use as the source address in the bind call " +"when creating the outgoing socket. (Contributed by Giampaolo Rodolà in :" +"issue:`8594`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1376 +msgid "" +"The :class:`~ftplib.FTP_TLS` class now provides a new :func:`~ftplib.FTP_TLS." +"ccc` function to revert control channel back to plaintext. This can be " +"useful to take advantage of firewalls that know how to handle NAT with non-" +"secure FTP without opening fixed ports. (Contributed by Giampaolo Rodolà " +"in :issue:`12139`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1382 +msgid "" +"Added :meth:`ftplib.FTP.mlsd` method which provides a parsable directory " +"listing format and deprecates :meth:`ftplib.FTP.nlst` and :meth:`ftplib.FTP." +"dir`. (Contributed by Giampaolo Rodolà in :issue:`11072`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1388 +msgid "functools" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1390 +msgid "" +"The :func:`functools.lru_cache` decorator now accepts a ``typed`` keyword " +"argument (that defaults to ``False`` to ensure that it caches values of " +"different types that compare equal in separate cache slots. (Contributed by " +"Raymond Hettinger in :issue:`13227`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1397 +msgid "gc" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1399 +msgid "" +"It is now possible to register callbacks invoked by the garbage collector " +"before and after collection using the new :data:`~gc.callbacks` list." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1404 +msgid "hmac" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1406 +msgid "" +"A new :func:`~hmac.compare_digest` function has been added to prevent side " +"channel attacks on digests through timing analysis. (Contributed by Nick " +"Coghlan and Christian Heimes in :issue:`15061`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1412 +msgid "http" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1414 +msgid "" +":class:`http.server.BaseHTTPRequestHandler` now buffers the headers and " +"writes them all at once when :meth:`~http.server.BaseHTTPRequestHandler." +"end_headers` is called. A new method :meth:`~http.server." +"BaseHTTPRequestHandler.flush_headers` can be used to directly manage when " +"the accumulated headers are sent. (Contributed by Andrew Schaaf in :issue:" +"`3709`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1420 +msgid "" +":class:`http.server` now produces valid ``HTML 4.01 strict`` output. " +"(Contributed by Ezio Melotti in :issue:`13295`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1423 +msgid "" +":class:`http.client.HTTPResponse` now has a :meth:`~http.client.HTTPResponse." +"readinto` method, which means it can be used as an :class:`io.RawIOBase` " +"class. (Contributed by John Kuhn in :issue:`13464`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1430 +msgid "html" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1432 +msgid "" +":class:`html.parser.HTMLParser` is now able to parse broken markup without " +"raising errors, therefore the *strict* argument of the constructor and the :" +"exc:`~html.parser.HTMLParseError` exception are now deprecated. The ability " +"to parse broken markup is the result of a number of bug fixes that are also " +"available on the latest bug fix releases of Python 2.7/3.2. (Contributed by " +"Ezio Melotti in :issue:`15114`, and :issue:`14538`, :issue:`13993`, :issue:" +"`13960`, :issue:`13358`, :issue:`1745761`, :issue:`755670`, :issue:`13357`, :" +"issue:`12629`, :issue:`1200313`, :issue:`670664`, :issue:`13273`, :issue:" +"`12888`, :issue:`7311`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1442 +msgid "" +"A new :data:`~html.entities.html5` dictionary that maps HTML5 named " +"character references to the equivalent Unicode character(s) (e.g. " +"``html5['gt;'] == '>'``) has been added to the :mod:`html.entities` module. " +"The dictionary is now also used by :class:`~html.parser.HTMLParser`. " +"(Contributed by Ezio Melotti in :issue:`11113` and :issue:`15156`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1450 +msgid "imaplib" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1452 +msgid "" +"The :class:`~imaplib.IMAP4_SSL` constructor now accepts an SSLContext " +"parameter to control parameters of the secure channel." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1455 +msgid "(Contributed by Sijin Joseph in :issue:`8808`.)" +msgstr "(Contribution par Sijin Joseph; :issue:`8808`.)" + +#: ../Doc/whatsnew/3.3.rst:1459 +msgid "inspect" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1461 +msgid "" +"A new :func:`~inspect.getclosurevars` function has been added. This function " +"reports the current binding of all names referenced from the function body " +"and where those names were resolved, making it easier to verify correct " +"internal state when testing code that relies on stateful closures." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1466 +msgid "(Contributed by Meador Inge and Nick Coghlan in :issue:`13062`.)" +msgstr "(Contribution par Meador Inge et Nick Coghlan; :issue:`13062`.)" + +#: ../Doc/whatsnew/3.3.rst:1468 +msgid "" +"A new :func:`~inspect.getgeneratorlocals` function has been added. This " +"function reports the current binding of local variables in the generator's " +"stack frame, making it easier to verify correct internal state when testing " +"generators." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1473 +msgid "(Contributed by Meador Inge in :issue:`15153`.)" +msgstr "(Contribution par Meador Inge; :issue:`15153`.)" + +#: ../Doc/whatsnew/3.3.rst:1476 +msgid "io" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1478 +msgid "" +"The :func:`~io.open` function has a new ``'x'`` mode that can be used to " +"exclusively create a new file, and raise a :exc:`FileExistsError` if the " +"file already exists. It is based on the C11 'x' mode to fopen()." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1482 +msgid "(Contributed by David Townshend in :issue:`12760`.)" +msgstr "(Contribution par David Townshend; :issue:`12760`.)" + +#: ../Doc/whatsnew/3.3.rst:1484 +msgid "" +"The constructor of the :class:`~io.TextIOWrapper` class has a new " +"*write_through* optional argument. If *write_through* is ``True``, calls to :" +"meth:`~io.TextIOWrapper.write` are guaranteed not to be buffered: any data " +"written on the :class:`~io.TextIOWrapper` object is immediately handled to " +"its underlying binary buffer." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1492 +msgid "itertools" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1494 +msgid "" +":func:`~itertools.accumulate` now takes an optional ``func`` argument for " +"providing a user-supplied binary function." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1499 +msgid "logging" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1501 +msgid "" +"The :func:`~logging.basicConfig` function now supports an optional " +"``handlers`` argument taking an iterable of handlers to be added to the root " +"logger." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1504 +msgid "" +"A class level attribute :attr:`~logging.handlers.SysLogHandler.append_nul` " +"has been added to :class:`~logging.handlers.SysLogHandler` to allow control " +"of the appending of the ``NUL`` (``\\000``) byte to syslog records, since " +"for some daemons it is required while for others it is passed through to the " +"log." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1512 +msgid "math" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1514 +msgid "" +"The :mod:`math` module has a new function, :func:`~math.log2`, which " +"returns the base-2 logarithm of *x*." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1517 +msgid "(Written by Mark Dickinson in :issue:`11888`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1521 +msgid "mmap" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1523 +msgid "" +"The :meth:`~mmap.mmap.read` method is now more compatible with other file-" +"like objects: if the argument is omitted or specified as ``None``, it " +"returns the bytes from the current file position to the end of the mapping. " +"(Contributed by Petri Lehtinen in :issue:`12021`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1530 +msgid "multiprocessing" +msgstr "multiprocessing" + +#: ../Doc/whatsnew/3.3.rst:1532 +msgid "" +"The new :func:`multiprocessing.connection.wait` function allows polling " +"multiple objects (such as connections, sockets and pipes) with a timeout. " +"(Contributed by Richard Oudkerk in :issue:`12328`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1536 +msgid "" +":class:`multiprocessing.Connection` objects can now be transferred over " +"multiprocessing connections. (Contributed by Richard Oudkerk in :issue:" +"`4892`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1540 +msgid "" +":class:`multiprocessing.Process` now accepts a ``daemon`` keyword argument " +"to override the default behavior of inheriting the ``daemon`` flag from the " +"parent process (:issue:`6064`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1544 +msgid "" +"New attribute :data:`multiprocessing.Process.sentinel` allows a program to " +"wait on multiple :class:`~multiprocessing.Process` objects at one time using " +"the appropriate OS primitives (for example, :mod:`select` on posix systems)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1549 +msgid "" +"New methods :meth:`multiprocessing.pool.Pool.starmap` and :meth:" +"`~multiprocessing.pool.Pool.starmap_async` provide :func:`itertools.starmap` " +"equivalents to the existing :meth:`multiprocessing.pool.Pool.map` and :meth:" +"`~multiprocessing.pool.Pool.map_async` functions. (Contributed by Hynek " +"Schlawack in :issue:`12708`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1558 +msgid "nntplib" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1560 +msgid "" +"The :class:`nntplib.NNTP` class now supports the context management protocol " +"to unconditionally consume :exc:`socket.error` exceptions and to close the " +"NNTP connection when done::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1571 +msgid "(Contributed by Giampaolo Rodolà in :issue:`9795`.)" +msgstr "(Contribution par Giampaolo Rodolà; :issue:`9795`.)" + +#: ../Doc/whatsnew/3.3.rst:1575 +msgid "os" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1577 +msgid "" +"The :mod:`os` module has a new :func:`~os.pipe2` function that makes it " +"possible to create a pipe with :data:`~os.O_CLOEXEC` or :data:`~os." +"O_NONBLOCK` flags set atomically. This is especially useful to avoid race " +"conditions in multi-threaded programs." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1582 +msgid "" +"The :mod:`os` module has a new :func:`~os.sendfile` function which provides " +"an efficient \"zero-copy\" way for copying data from one file (or socket) " +"descriptor to another. The phrase \"zero-copy\" refers to the fact that all " +"of the copying of data between the two descriptors is done entirely by the " +"kernel, with no copying of data into userspace buffers. :func:`~os.sendfile` " +"can be used to efficiently copy data from a file on disk to a network " +"socket, e.g. for downloading a file." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1590 +msgid "" +"(Patch submitted by Ross Lagerwall and Giampaolo Rodolà in :issue:`10882`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1592 +msgid "" +"To avoid race conditions like symlink attacks and issues with temporary " +"files and directories, it is more reliable (and also faster) to manipulate " +"file descriptors instead of file names. Python 3.3 enhances existing " +"functions and introduces new functions to work on file descriptors (:issue:" +"`4761`, :issue:`10755` and :issue:`14626`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1598 +msgid "" +"The :mod:`os` module has a new :func:`~os.fwalk` function similar to :func:" +"`~os.walk` except that it also yields file descriptors referring to the " +"directories visited. This is especially useful to avoid symlink races." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1602 +msgid "" +"The following functions get new optional *dir_fd* (:ref:`paths relative to " +"directory descriptors `) and/or *follow_symlinks* (:ref:`not " +"following symlinks `): :func:`~os.access`, :func:`~os." +"chflags`, :func:`~os.chmod`, :func:`~os.chown`, :func:`~os.link`, :func:`~os." +"lstat`, :func:`~os.mkdir`, :func:`~os.mkfifo`, :func:`~os.mknod`, :func:`~os." +"open`, :func:`~os.readlink`, :func:`~os.remove`, :func:`~os.rename`, :func:" +"`~os.replace`, :func:`~os.rmdir`, :func:`~os.stat`, :func:`~os.symlink`, :" +"func:`~os.unlink`, :func:`~os.utime`. Platform support for using these " +"parameters can be checked via the sets :data:`os.supports_dir_fd` and :data:" +"`os.supports_follows_symlinks`." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1613 +msgid "" +"The following functions now support a file descriptor for their path " +"argument: :func:`~os.chdir`, :func:`~os.chmod`, :func:`~os.chown`, :func:" +"`~os.execve`, :func:`~os.listdir`, :func:`~os.pathconf`, :func:`~os.path." +"exists`, :func:`~os.stat`, :func:`~os.statvfs`, :func:`~os.utime`. Platform " +"support for this can be checked via the :data:`os.supports_fd` set." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1619 +msgid "" +":func:`~os.access` accepts an ``effective_ids`` keyword argument to turn on " +"using the effective uid/gid rather than the real uid/gid in the access " +"check. Platform support for this can be checked via the :data:`~os." +"supports_effective_ids` set." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1624 +msgid "" +"The :mod:`os` module has two new functions: :func:`~os.getpriority` and :" +"func:`~os.setpriority`. They can be used to get or set process niceness/" +"priority in a fashion similar to :func:`os.nice` but extended to all " +"processes instead of just the current one." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1629 +msgid "(Patch submitted by Giampaolo Rodolà in :issue:`10784`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1631 +msgid "" +"The new :func:`os.replace` function allows cross-platform renaming of a file " +"with overwriting the destination. With :func:`os.rename`, an existing " +"destination file is overwritten under POSIX, but raises an error under " +"Windows. (Contributed by Antoine Pitrou in :issue:`8828`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1637 +msgid "" +"The stat family of functions (:func:`~os.stat`, :func:`~os.fstat`, and :func:" +"`~os.lstat`) now support reading a file's timestamps with nanosecond " +"precision. Symmetrically, :func:`~os.utime` can now write file timestamps " +"with nanosecond precision. (Contributed by Larry Hastings in :issue:" +"`14127`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1643 +msgid "" +"The new :func:`os.get_terminal_size` function queries the size of the " +"terminal attached to a file descriptor. See also :func:`shutil." +"get_terminal_size`. (Contributed by Zbigniew Jędrzejewski-Szmek in :issue:" +"`13609`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1650 +msgid "" +"New functions to support Linux extended attributes (:issue:`12720`): :func:" +"`~os.getxattr`, :func:`~os.listxattr`, :func:`~os.removexattr`, :func:`~os." +"setxattr`." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1654 +msgid "" +"New interface to the scheduler. These functions control how a process is " +"allocated CPU time by the operating system. New functions: :func:`~os." +"sched_get_priority_max`, :func:`~os.sched_get_priority_min`, :func:`~os." +"sched_getaffinity`, :func:`~os.sched_getparam`, :func:`~os." +"sched_getscheduler`, :func:`~os.sched_rr_get_interval`, :func:`~os." +"sched_setaffinity`, :func:`~os.sched_setparam`, :func:`~os." +"sched_setscheduler`, :func:`~os.sched_yield`," +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1663 +msgid "New functions to control the file system:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1665 +msgid "" +":func:`~os.posix_fadvise`: Announces an intention to access data in a " +"specific pattern thus allowing the kernel to make optimizations." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1667 +msgid "" +":func:`~os.posix_fallocate`: Ensures that enough disk space is allocated for " +"a file." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1669 +msgid ":func:`~os.sync`: Force write of everything to disk." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1671 +msgid "Additional new posix functions:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1673 +msgid "" +":func:`~os.lockf`: Apply, test or remove a POSIX lock on an open file " +"descriptor." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1674 +msgid "" +":func:`~os.pread`: Read from a file descriptor at an offset, the file offset " +"remains unchanged." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1676 +msgid "" +":func:`~os.pwrite`: Write to a file descriptor from an offset, leaving the " +"file offset unchanged." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1678 +msgid "" +":func:`~os.readv`: Read from a file descriptor into a number of writable " +"buffers." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1679 +msgid "" +":func:`~os.truncate`: Truncate the file corresponding to *path*, so that it " +"is at most *length* bytes in size." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1681 +msgid "" +":func:`~os.waitid`: Wait for the completion of one or more child processes." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1682 +msgid "" +":func:`~os.writev`: Write the contents of *buffers* to a file descriptor, " +"where *buffers* is an arbitrary sequence of buffers." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1684 +msgid "" +":func:`~os.getgrouplist` (:issue:`9344`): Return list of group ids that " +"specified user belongs to." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1687 +msgid "" +":func:`~os.times` and :func:`~os.uname`: Return type changed from a tuple to " +"a tuple-like object with named attributes." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1690 +msgid "" +"Some platforms now support additional constants for the :func:`~os.lseek` " +"function, such as ``os.SEEK_HOLE`` and ``os.SEEK_DATA``." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1693 +msgid "" +"New constants :data:`~os.RTLD_LAZY`, :data:`~os.RTLD_NOW`, :data:`~os." +"RTLD_GLOBAL`, :data:`~os.RTLD_LOCAL`, :data:`~os.RTLD_NODELETE`, :data:`~os." +"RTLD_NOLOAD`, and :data:`~os.RTLD_DEEPBIND` are available on platforms that " +"support them. These are for use with the :func:`sys.setdlopenflags` " +"function, and supersede the similar constants defined in :mod:`ctypes` and :" +"mod:`DLFCN`. (Contributed by Victor Stinner in :issue:`13226`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1701 +msgid "" +":func:`os.symlink` now accepts (and ignores) the ``target_is_directory`` " +"keyword argument on non-Windows platforms, to ease cross-platform support." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1706 +msgid "pdb" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1708 +msgid "" +"Tab-completion is now available not only for command names, but also their " +"arguments. For example, for the ``break`` command, function and file names " +"are completed." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1712 +msgid "(Contributed by Georg Brandl in :issue:`14210`)" +msgstr "(Contribution par Georg Brandl; :issue:`14210`.)" + +#: ../Doc/whatsnew/3.3.rst:1716 +msgid "pickle" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1718 +msgid "" +":class:`pickle.Pickler` objects now have an optional :attr:`~pickle.Pickler." +"dispatch_table` attribute allowing per-pickler reduction functions to be set." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1722 +msgid "(Contributed by Richard Oudkerk in :issue:`14166`.)" +msgstr "(Contribution par Richard Oudkerk; :issue:`14166`.)" + +#: ../Doc/whatsnew/3.3.rst:1726 +msgid "pydoc" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1728 +msgid "" +"The Tk GUI and the :func:`~pydoc.serve` function have been removed from the :" +"mod:`pydoc` module: ``pydoc -g`` and :func:`~pydoc.serve` have been " +"deprecated in Python 3.2." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1734 +msgid "re" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1736 +msgid "" +":class:`str` regular expressions now support ``\\u`` and ``\\U`` escapes." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1738 +msgid "(Contributed by Serhiy Storchaka in :issue:`3665`.)" +msgstr "(Contribution par Serhiy Storchaka; :issue:`3665`.)" + +#: ../Doc/whatsnew/3.3.rst:1742 +msgid "sched" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1744 +msgid "" +":meth:`~sched.scheduler.run` now accepts a *blocking* parameter which when " +"set to false makes the method execute the scheduled events due to expire " +"soonest (if any) and then return immediately. This is useful in case you " +"want to use the :class:`~sched.scheduler` in non-blocking applications. " +"(Contributed by Giampaolo Rodolà in :issue:`13449`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1750 +msgid "" +":class:`~sched.scheduler` class can now be safely used in multi-threaded " +"environments. (Contributed by Josiah Carlson and Giampaolo Rodolà in :issue:" +"`8684`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1754 +msgid "" +"*timefunc* and *delayfunct* parameters of :class:`~sched.scheduler` class " +"constructor are now optional and defaults to :func:`time.time` and :func:" +"`time.sleep` respectively. (Contributed by Chris Clark in :issue:`13245`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1759 +msgid "" +":meth:`~sched.scheduler.enter` and :meth:`~sched.scheduler.enterabs` " +"*argument* parameter is now optional. (Contributed by Chris Clark in :issue:" +"`13245`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1763 +msgid "" +":meth:`~sched.scheduler.enter` and :meth:`~sched.scheduler.enterabs` now " +"accept a *kwargs* parameter. (Contributed by Chris Clark in :issue:`13245`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1769 +msgid "select" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1771 +msgid "" +"Solaris and derivative platforms have a new class :class:`select.devpoll` " +"for high performance asynchronous sockets via :file:`/dev/poll`. " +"(Contributed by Jesús Cea Avión in :issue:`6397`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1777 +msgid "shlex" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1779 +msgid "" +"The previously undocumented helper function ``quote`` from the :mod:`pipes` " +"modules has been moved to the :mod:`shlex` module and documented. :func:" +"`~shlex.quote` properly escapes all characters in a string that might be " +"otherwise given special meaning by the shell." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1786 +msgid "shutil" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1788 +msgid "New functions:" +msgstr "Nouvelles fonctions :" + +#: ../Doc/whatsnew/3.3.rst:1790 +msgid "" +":func:`~shutil.disk_usage`: provides total, used and free disk space " +"statistics. (Contributed by Giampaolo Rodolà in :issue:`12442`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1792 +msgid "" +":func:`~shutil.chown`: allows one to change user and/or group of the given " +"path also specifying the user/group names and not only their numeric ids. " +"(Contributed by Sandro Tosi in :issue:`12191`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1795 +msgid "" +":func:`shutil.get_terminal_size`: returns the size of the terminal window to " +"which the interpreter is attached. (Contributed by Zbigniew Jędrzejewski-" +"Szmek in :issue:`13609`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1799 +msgid "" +":func:`~shutil.copy2` and :func:`~shutil.copystat` now preserve file " +"timestamps with nanosecond precision on platforms that support it. They also " +"preserve file \"extended attributes\" on Linux. (Contributed by Larry " +"Hastings in :issue:`14127` and :issue:`15238`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1804 +msgid "" +"Several functions now take an optional ``symlinks`` argument: when that " +"parameter is true, symlinks aren't dereferenced and the operation instead " +"acts on the symlink itself (or creates one, if relevant). (Contributed by " +"Hynek Schlawack in :issue:`12715`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1809 +msgid "" +"When copying files to a different file system, :func:`~shutil.move` now " +"handles symlinks the way the posix ``mv`` command does, recreating the " +"symlink rather than copying the target file contents. (Contributed by " +"Jonathan Niehof in :issue:`9993`.) :func:`~shutil.move` now also returns " +"the ``dst`` argument as its result." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1815 +msgid "" +":func:`~shutil.rmtree` is now resistant to symlink attacks on platforms " +"which support the new ``dir_fd`` parameter in :func:`os.open` and :func:`os." +"unlink`. (Contributed by Martin von Löwis and Hynek Schlawack in :issue:" +"`4489`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1822 +msgid "signal" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1824 +msgid "The :mod:`signal` module has new functions:" +msgstr "Le module :mod:`signal` a de nouvelles fonctions :" + +#: ../Doc/whatsnew/3.3.rst:1826 +msgid "" +":func:`~signal.pthread_sigmask`: fetch and/or change the signal mask of the " +"calling thread (Contributed by Jean-Paul Calderone in :issue:`8407`);" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1828 +msgid ":func:`~signal.pthread_kill`: send a signal to a thread;" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1829 +msgid ":func:`~signal.sigpending`: examine pending functions;" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1830 +msgid ":func:`~signal.sigwait`: wait a signal;" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1831 +msgid "" +":func:`~signal.sigwaitinfo`: wait for a signal, returning detailed " +"information about it;" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1833 +msgid "" +":func:`~signal.sigtimedwait`: like :func:`~signal.sigwaitinfo` but with a " +"timeout." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1836 +msgid "" +"The signal handler writes the signal number as a single byte instead of a " +"nul byte into the wakeup file descriptor. So it is possible to wait more " +"than one signal and know which signals were raised." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1840 +msgid "" +":func:`signal.signal` and :func:`signal.siginterrupt` raise an OSError, " +"instead of a RuntimeError: OSError has an errno attribute." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1845 +msgid "smtpd" +msgstr "smtpd" + +#: ../Doc/whatsnew/3.3.rst:1847 +msgid "" +"The :mod:`smtpd` module now supports :rfc:`5321` (extended SMTP) and :rfc:" +"`1870` (size extension). Per the standard, these extensions are enabled if " +"and only if the client initiates the session with an ``EHLO`` command." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1851 +msgid "" +"(Initial ``ELHO`` support by Alberto Trevino. Size extension by Juhana " +"Jauhiainen. Substantial additional work on the patch contributed by Michele " +"Orrù and Dan Boswell. :issue:`8739`)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1857 +msgid "smtplib" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1859 +msgid "" +"The :class:`~smtplib.SMTP`, :class:`~smtplib.SMTP_SSL`, and :class:`~smtplib." +"LMTP` classes now accept a ``source_address`` keyword argument to specify " +"the ``(host, port)`` to use as the source address in the bind call when " +"creating the outgoing socket. (Contributed by Paulo Scardine in :issue:" +"`11281`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1865 +msgid "" +":class:`~smtplib.SMTP` now supports the context management protocol, " +"allowing an ``SMTP`` instance to be used in a ``with`` statement. " +"(Contributed by Giampaolo Rodolà in :issue:`11289`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1869 +msgid "" +"The :class:`~smtplib.SMTP_SSL` constructor and the :meth:`~smtplib.SMTP." +"starttls` method now accept an SSLContext parameter to control parameters of " +"the secure channel. (Contributed by Kasun Herath in :issue:`8809`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1875 +msgid "socket" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1877 +msgid "" +"The :class:`~socket.socket` class now exposes additional methods to process " +"ancillary data when supported by the underlying platform:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1880 +msgid ":func:`~socket.socket.sendmsg`" +msgstr ":func:`~socket.socket.sendmsg`" + +#: ../Doc/whatsnew/3.3.rst:1881 +msgid ":func:`~socket.socket.recvmsg`" +msgstr ":func:`~socket.socket.recvmsg`" + +#: ../Doc/whatsnew/3.3.rst:1882 +msgid ":func:`~socket.socket.recvmsg_into`" +msgstr ":func:`~socket.socket.recvmsg_into`" + +#: ../Doc/whatsnew/3.3.rst:1884 +msgid "" +"(Contributed by David Watson in :issue:`6560`, based on an earlier patch by " +"Heiko Wundram)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1887 +msgid "" +"The :class:`~socket.socket` class now supports the PF_CAN protocol family " +"(https://en.wikipedia.org/wiki/Socketcan), on Linux (https://lwn.net/" +"Articles/253425)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1891 +msgid "" +"(Contributed by Matthias Fuchs, updated by Tiago Gonçalves in :issue:" +"`10141`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1893 +msgid "" +"The :class:`~socket.socket` class now supports the PF_RDS protocol family " +"(https://en.wikipedia.org/wiki/Reliable_Datagram_Sockets and https://oss." +"oracle.com/projects/rds/)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1897 +msgid "" +"The :class:`~socket.socket` class now supports the ``PF_SYSTEM`` protocol " +"family on OS X. (Contributed by Michael Goderbauer in :issue:`13777`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1900 +msgid "" +"New function :func:`~socket.sethostname` allows the hostname to be set on " +"unix systems if the calling process has sufficient privileges. (Contributed " +"by Ross Lagerwall in :issue:`10866`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1906 +msgid "socketserver" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1908 +msgid "" +":class:`~socketserver.BaseServer` now has an overridable method :meth:" +"`~socketserver.BaseServer.service_actions` that is called by the :meth:" +"`~socketserver.BaseServer.serve_forever` method in the service loop. :class:" +"`~socketserver.ForkingMixIn` now uses this to clean up zombie child " +"processes. (Contributed by Justin Warkentin in :issue:`11109`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1916 +msgid "sqlite3" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1918 +msgid "" +"New :class:`sqlite3.Connection` method :meth:`~sqlite3.Connection." +"set_trace_callback` can be used to capture a trace of all sql commands " +"processed by sqlite. (Contributed by Torsten Landschoff in :issue:`11688`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1925 +msgid "ssl" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1927 +msgid "The :mod:`ssl` module has two new random generation functions:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1929 +msgid "" +":func:`~ssl.RAND_bytes`: generate cryptographically strong pseudo-random " +"bytes." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1931 +msgid ":func:`~ssl.RAND_pseudo_bytes`: generate pseudo-random bytes." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1933 +msgid "(Contributed by Victor Stinner in :issue:`12049`.)" +msgstr "(Contribution par Victor Stinner; :issue:`12049`.)" + +#: ../Doc/whatsnew/3.3.rst:1935 +msgid "" +"The :mod:`ssl` module now exposes a finer-grained exception hierarchy in " +"order to make it easier to inspect the various kinds of errors. (Contributed " +"by Antoine Pitrou in :issue:`11183`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1939 +msgid "" +":meth:`~ssl.SSLContext.load_cert_chain` now accepts a *password* argument to " +"be used if the private key is encrypted. (Contributed by Adam Simpkins in :" +"issue:`12803`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1943 +msgid "" +"Diffie-Hellman key exchange, both regular and Elliptic Curve-based, is now " +"supported through the :meth:`~ssl.SSLContext.load_dh_params` and :meth:`~ssl." +"SSLContext.set_ecdh_curve` methods. (Contributed by Antoine Pitrou in :issue:" +"`13626` and :issue:`13627`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1948 +msgid "" +"SSL sockets have a new :meth:`~ssl.SSLSocket.get_channel_binding` method " +"allowing the implementation of certain authentication mechanisms such as " +"SCRAM-SHA-1-PLUS. (Contributed by Jacek Konieczny in :issue:`12551`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1952 +msgid "" +"You can query the SSL compression algorithm used by an SSL socket, thanks to " +"its new :meth:`~ssl.SSLSocket.compression` method. The new attribute :attr:" +"`~ssl.OP_NO_COMPRESSION` can be used to disable compression. (Contributed by " +"Antoine Pitrou in :issue:`13634`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1957 +msgid "" +"Support has been added for the Next Protocol Negotiation extension using " +"the :meth:`ssl.SSLContext.set_npn_protocols` method. (Contributed by Colin " +"Marc in :issue:`14204`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1961 +msgid "" +"SSL errors can now be introspected more easily thanks to :attr:`~ssl." +"SSLError.library` and :attr:`~ssl.SSLError.reason` attributes. (Contributed " +"by Antoine Pitrou in :issue:`14837`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1965 +msgid "" +"The :func:`~ssl.get_server_certificate` function now supports IPv6. " +"(Contributed by Charles-François Natali in :issue:`11811`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1968 +msgid "" +"New attribute :attr:`~ssl.OP_CIPHER_SERVER_PREFERENCE` allows setting SSLv3 " +"server sockets to use the server's cipher ordering preference rather than " +"the client's (:issue:`13635`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1974 +msgid "stat" +msgstr "stat" + +#: ../Doc/whatsnew/3.3.rst:1976 +msgid "" +"The undocumented tarfile.filemode function has been moved to :func:`stat." +"filemode`. It can be used to convert a file's mode to a string of the form '-" +"rwxrwxrwx'." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1980 +msgid "(Contributed by Giampaolo Rodolà in :issue:`14807`.)" +msgstr "(Contribution par Giampaolo Rodolà; :issue:`14807`.)" + +#: ../Doc/whatsnew/3.3.rst:1984 +msgid "struct" +msgstr "struct" + +#: ../Doc/whatsnew/3.3.rst:1986 +msgid "" +"The :mod:`struct` module now supports ``ssize_t`` and ``size_t`` via the new " +"codes ``n`` and ``N``, respectively. (Contributed by Antoine Pitrou in :" +"issue:`3163`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1992 +msgid "subprocess" +msgstr "subprocess" + +#: ../Doc/whatsnew/3.3.rst:1994 +msgid "" +"Command strings can now be bytes objects on posix platforms. (Contributed " +"by Victor Stinner in :issue:`8513`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:1997 +msgid "" +"A new constant :data:`~subprocess.DEVNULL` allows suppressing output in a " +"platform-independent fashion. (Contributed by Ross Lagerwall in :issue:" +"`5870`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2003 +msgid "sys" +msgstr "sys" + +#: ../Doc/whatsnew/3.3.rst:2005 +msgid "" +"The :mod:`sys` module has a new :data:`~sys.thread_info` :term:`struct " +"sequence` holding information about the thread implementation (:issue:" +"`11223`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2011 +msgid "tarfile" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2013 +msgid "" +":mod:`tarfile` now supports ``lzma`` encoding via the :mod:`lzma` module. " +"(Contributed by Lars Gustäbel in :issue:`5689`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2018 +msgid "tempfile" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2020 +msgid "" +":class:`tempfile.SpooledTemporaryFile`\\'s :meth:`~tempfile." +"SpooledTemporaryFile.truncate` method now accepts a ``size`` parameter. " +"(Contributed by Ryan Kelly in :issue:`9957`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2026 +msgid "textwrap" +msgstr "textwrap" + +#: ../Doc/whatsnew/3.3.rst:2028 +msgid "" +"The :mod:`textwrap` module has a new :func:`~textwrap.indent` that makes it " +"straightforward to add a common prefix to selected lines in a block of text " +"(:issue:`13857`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2034 +msgid "threading" +msgstr "threading" + +#: ../Doc/whatsnew/3.3.rst:2036 +msgid "" +":class:`threading.Condition`, :class:`threading.Semaphore`, :class:" +"`threading.BoundedSemaphore`, :class:`threading.Event`, and :class:" +"`threading.Timer`, all of which used to be factory functions returning a " +"class instance, are now classes and may be subclassed. (Contributed by Éric " +"Araujo in :issue:`10968`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2042 +msgid "" +"The :class:`threading.Thread` constructor now accepts a ``daemon`` keyword " +"argument to override the default behavior of inheriting the ``daemon`` flag " +"value from the parent thread (:issue:`6064`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2046 +msgid "" +"The formerly private function ``_thread.get_ident`` is now available as the " +"public function :func:`threading.get_ident`. This eliminates several cases " +"of direct access to the ``_thread`` module in the stdlib. Third party code " +"that used ``_thread.get_ident`` should likewise be changed to use the new " +"public interface." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2054 +msgid "time" +msgstr "time" + +#: ../Doc/whatsnew/3.3.rst:2056 +msgid "The :pep:`418` added new functions to the :mod:`time` module:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2058 +msgid ":func:`~time.get_clock_info`: Get information on a clock." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2059 +msgid "" +":func:`~time.monotonic`: Monotonic clock (cannot go backward), not affected " +"by system clock updates." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2061 +msgid "" +":func:`~time.perf_counter`: Performance counter with the highest available " +"resolution to measure a short duration." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2063 +msgid "" +":func:`~time.process_time`: Sum of the system and user CPU time of the " +"current process." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2066 +msgid "Other new functions:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2068 +msgid "" +":func:`~time.clock_getres`, :func:`~time.clock_gettime` and :func:`~time." +"clock_settime` functions with ``CLOCK_xxx`` constants. (Contributed by " +"Victor Stinner in :issue:`10278`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2072 +msgid "" +"To improve cross platform consistency, :func:`~time.sleep` now raises a :exc:" +"`ValueError` when passed a negative sleep value. Previously this was an " +"error on posix, but produced an infinite sleep on Windows." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2078 +msgid "types" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2080 +msgid "" +"Add a new :class:`types.MappingProxyType` class: Read-only proxy of a " +"mapping. (:issue:`14386`)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2084 +msgid "" +"The new functions :func:`types.new_class` and :func:`types.prepare_class` " +"provide support for PEP 3115 compliant dynamic type creation. (:issue:" +"`14588`)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2089 +msgid "unittest" +msgstr "unittest" + +#: ../Doc/whatsnew/3.3.rst:2091 +msgid "" +":meth:`.assertRaises`, :meth:`.assertRaisesRegex`, :meth:`.assertWarns`, " +"and :meth:`.assertWarnsRegex` now accept a keyword argument *msg* when used " +"as context managers. (Contributed by Ezio Melotti and Winston Ewert in :" +"issue:`10775`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2096 +msgid "" +":meth:`unittest.TestCase.run` now returns the :class:`~unittest.TestResult` " +"object." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2101 +msgid "urllib" +msgstr "urllib" + +#: ../Doc/whatsnew/3.3.rst:2103 +msgid "" +"The :class:`~urllib.request.Request` class, now accepts a *method* argument " +"used by :meth:`~urllib.request.Request.get_method` to determine what HTTP " +"method should be used. For example, this will send a ``'HEAD'`` request::" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2109 +msgid "(:issue:`1673007`)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2113 +msgid "webbrowser" +msgstr "webbrowser" + +#: ../Doc/whatsnew/3.3.rst:2115 +msgid "" +"The :mod:`webbrowser` module supports more \"browsers\": Google Chrome " +"(named :program:`chrome`, :program:`chromium`, :program:`chrome-browser` or :" +"program:`chromium-browser` depending on the version and operating system), " +"and the generic launchers :program:`xdg-open`, from the FreeDesktop.org " +"project, and :program:`gvfs-open`, which is the default URI handler for " +"GNOME 3. (The former contributed by Arnaud Calmettes in :issue:`13620`, the " +"latter by Matthias Klose in :issue:`14493`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2125 +msgid "xml.etree.ElementTree" +msgstr "xml.etree.ElementTree" + +#: ../Doc/whatsnew/3.3.rst:2127 +msgid "" +"The :mod:`xml.etree.ElementTree` module now imports its C accelerator by " +"default; there is no longer a need to explicitly import :mod:`xml.etree." +"cElementTree` (this module stays for backwards compatibility, but is now " +"deprecated). In addition, the ``iter`` family of methods of :class:`~xml." +"etree.ElementTree.Element` has been optimized (rewritten in C). The module's " +"documentation has also been greatly improved with added examples and a more " +"detailed reference." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2137 +msgid "zlib" +msgstr "zlib" + +#: ../Doc/whatsnew/3.3.rst:2139 +msgid "" +"New attribute :attr:`zlib.Decompress.eof` makes it possible to distinguish " +"between a properly-formed compressed stream and an incomplete or truncated " +"one. (Contributed by Nadeem Vawda in :issue:`12646`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2143 +msgid "" +"New attribute :attr:`zlib.ZLIB_RUNTIME_VERSION` reports the version string " +"of the underlying ``zlib`` library that is loaded at runtime. (Contributed " +"by Torsten Landschoff in :issue:`12306`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2149 +msgid "Optimizations" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2151 +msgid "Major performance enhancements have been added:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2153 +msgid "" +"Thanks to :pep:`393`, some operations on Unicode strings have been optimized:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2155 +msgid "the memory footprint is divided by 2 to 4 depending on the text" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2156 +msgid "" +"encode an ASCII string to UTF-8 doesn't need to encode characters anymore, " +"the UTF-8 representation is shared with the ASCII representation" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2158 +msgid "the UTF-8 encoder has been optimized" +msgstr "l’encodeur UTF-8 a été optimisé" + +#: ../Doc/whatsnew/3.3.rst:2159 +msgid "" +"repeating a single ASCII letter and getting a substring of an ASCII string " +"is 4 times faster" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2162 +msgid "UTF-8 is now 2x to 4x faster. UTF-16 encoding is now up to 10x faster." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2164 +msgid "" +"(Contributed by Serhiy Storchaka, :issue:`14624`, :issue:`14738` and :issue:" +"`15026`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2169 +msgid "Build and C API Changes" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2171 +msgid "Changes to Python's build process and to the C API include:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2173 +msgid "New :pep:`3118` related function:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2175 +msgid ":c:func:`PyMemoryView_FromMemory`" +msgstr ":c:func:`PyMemoryView_FromMemory`" + +#: ../Doc/whatsnew/3.3.rst:2177 +msgid ":pep:`393` added new Unicode types, macros and functions:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2179 +msgid "High-level API:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2181 +msgid ":c:func:`PyUnicode_CopyCharacters`" +msgstr ":c:func:`PyUnicode_CopyCharacters`" + +#: ../Doc/whatsnew/3.3.rst:2182 +msgid ":c:func:`PyUnicode_FindChar`" +msgstr ":c:func:`PyUnicode_FindChar`" + +#: ../Doc/whatsnew/3.3.rst:2183 +msgid ":c:func:`PyUnicode_GetLength`, :c:macro:`PyUnicode_GET_LENGTH`" +msgstr ":c:func:`PyUnicode_GetLength`, :c:macro:`PyUnicode_GET_LENGTH`" + +#: ../Doc/whatsnew/3.3.rst:2184 +msgid ":c:func:`PyUnicode_New`" +msgstr ":c:func:`PyUnicode_New`" + +#: ../Doc/whatsnew/3.3.rst:2185 +msgid ":c:func:`PyUnicode_Substring`" +msgstr ":c:func:`PyUnicode_Substring`" + +#: ../Doc/whatsnew/3.3.rst:2186 +msgid ":c:func:`PyUnicode_ReadChar`, :c:func:`PyUnicode_WriteChar`" +msgstr ":c:func:`PyUnicode_ReadChar`, :c:func:`PyUnicode_WriteChar`" + +#: ../Doc/whatsnew/3.3.rst:2188 +msgid "Low-level API:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2190 +msgid ":c:type:`Py_UCS1`, :c:type:`Py_UCS2`, :c:type:`Py_UCS4` types" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2191 +msgid ":c:type:`PyASCIIObject` and :c:type:`PyCompactUnicodeObject` structures" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2192 +msgid ":c:macro:`PyUnicode_READY`" +msgstr ":c:macro:`PyUnicode_READY`" + +#: ../Doc/whatsnew/3.3.rst:2193 +msgid ":c:func:`PyUnicode_FromKindAndData`" +msgstr ":c:func:`PyUnicode_FromKindAndData`" + +#: ../Doc/whatsnew/3.3.rst:2194 +msgid ":c:func:`PyUnicode_AsUCS4`, :c:func:`PyUnicode_AsUCS4Copy`" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2195 +msgid "" +":c:macro:`PyUnicode_DATA`, :c:macro:`PyUnicode_1BYTE_DATA`, :c:macro:" +"`PyUnicode_2BYTE_DATA`, :c:macro:`PyUnicode_4BYTE_DATA`" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2197 +msgid "" +":c:macro:`PyUnicode_KIND` with :c:type:`PyUnicode_Kind` enum: :c:data:" +"`PyUnicode_WCHAR_KIND`, :c:data:`PyUnicode_1BYTE_KIND`, :c:data:" +"`PyUnicode_2BYTE_KIND`, :c:data:`PyUnicode_4BYTE_KIND`" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2200 +msgid "" +":c:macro:`PyUnicode_READ`, :c:macro:`PyUnicode_READ_CHAR`, :c:macro:" +"`PyUnicode_WRITE`" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2201 +msgid ":c:macro:`PyUnicode_MAX_CHAR_VALUE`" +msgstr ":c:macro:`PyUnicode_MAX_CHAR_VALUE`" + +#: ../Doc/whatsnew/3.3.rst:2203 +msgid "" +":c:macro:`PyArg_ParseTuple` now accepts a :class:`bytearray` for the ``c`` " +"format (:issue:`12380`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2209 +msgid "Deprecated" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2212 +msgid "Unsupported Operating Systems" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2214 +msgid "OS/2 and VMS are no longer supported due to the lack of a maintainer." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2216 +msgid "" +"Windows 2000 and Windows platforms which set ``COMSPEC`` to ``command.com`` " +"are no longer supported due to maintenance burden." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2219 +msgid "OSF support, which was deprecated in 3.2, has been completely removed." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2223 +msgid "Deprecated Python modules, functions and methods" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2225 +msgid "" +"Passing a non-empty string to ``object.__format__()`` is deprecated, and " +"will produce a :exc:`TypeError` in Python 3.4 (:issue:`9856`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2227 +msgid "" +"The ``unicode_internal`` codec has been deprecated because of the :pep:" +"`393`, use UTF-8, UTF-16 (``utf-16-le`` or ``utf-16-be``), or UTF-32 " +"(``utf-32-le`` or ``utf-32-be``)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2230 +msgid "" +":meth:`ftplib.FTP.nlst` and :meth:`ftplib.FTP.dir`: use :meth:`ftplib.FTP." +"mlsd`" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2232 +msgid "" +":func:`platform.popen`: use the :mod:`subprocess` module. Check especially " +"the :ref:`subprocess-replacements` section (:issue:`11377`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2234 +msgid "" +":issue:`13374`: The Windows bytes API has been deprecated in the :mod:`os` " +"module. Use Unicode filenames, instead of bytes filenames, to not depend on " +"the ANSI code page anymore and to support any filename." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2237 +msgid "" +":issue:`13988`: The :mod:`xml.etree.cElementTree` module is deprecated. The " +"accelerator is used automatically whenever available." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2239 +msgid "" +"The behaviour of :func:`time.clock` depends on the platform: use the new :" +"func:`time.perf_counter` or :func:`time.process_time` function instead, " +"depending on your requirements, to have a well defined behaviour." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2242 +msgid "The :func:`os.stat_float_times` function is deprecated." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2243 +msgid ":mod:`abc` module:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2252 +msgid ":mod:`importlib` package:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2254 +msgid "" +":meth:`importlib.abc.SourceLoader.path_mtime` is now deprecated in favour " +"of :meth:`importlib.abc.SourceLoader.path_stats` as bytecode files now store " +"both the modification time and size of the source file the bytecode file was " +"compiled from." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2264 +msgid "Deprecated functions and types of the C API" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2266 +msgid "" +"The :c:type:`Py_UNICODE` has been deprecated by :pep:`393` and will be " +"removed in Python 4. All functions using this type are deprecated:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2269 +msgid "" +"Unicode functions and methods using :c:type:`Py_UNICODE` and :c:type:" +"`Py_UNICODE*` types:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2272 +msgid "" +":c:macro:`PyUnicode_FromUnicode`: use :c:func:`PyUnicode_FromWideChar` or :c:" +"func:`PyUnicode_FromKindAndData`" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2274 +msgid "" +":c:macro:`PyUnicode_AS_UNICODE`, :c:func:`PyUnicode_AsUnicode`, :c:func:" +"`PyUnicode_AsUnicodeAndSize`: use :c:func:`PyUnicode_AsWideCharString`" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2276 +msgid "" +":c:macro:`PyUnicode_AS_DATA`: use :c:macro:`PyUnicode_DATA` with :c:macro:" +"`PyUnicode_READ` and :c:macro:`PyUnicode_WRITE`" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2278 +msgid "" +":c:macro:`PyUnicode_GET_SIZE`, :c:func:`PyUnicode_GetSize`: use :c:macro:" +"`PyUnicode_GET_LENGTH` or :c:func:`PyUnicode_GetLength`" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2280 +msgid "" +":c:macro:`PyUnicode_GET_DATA_SIZE`: use ``PyUnicode_GET_LENGTH(str) * " +"PyUnicode_KIND(str)`` (only work on ready strings)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2283 +msgid "" +":c:func:`PyUnicode_AsUnicodeCopy`: use :c:func:`PyUnicode_AsUCS4Copy` or :c:" +"func:`PyUnicode_AsWideCharString`" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2285 +msgid ":c:func:`PyUnicode_GetMax`" +msgstr ":c:func:`PyUnicode_GetMax`" + +#: ../Doc/whatsnew/3.3.rst:2288 +msgid "Functions and macros manipulating Py_UNICODE* strings:" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2290 +msgid "" +":c:macro:`Py_UNICODE_strlen`: use :c:func:`PyUnicode_GetLength` or :c:macro:" +"`PyUnicode_GET_LENGTH`" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2292 +msgid "" +":c:macro:`Py_UNICODE_strcat`: use :c:func:`PyUnicode_CopyCharacters` or :c:" +"func:`PyUnicode_FromFormat`" +msgstr "" +":c:macro:`Py_UNICODE_strcat` : utilisez :c:func:`PyUnicode_CopyCharacters` " +"ou :c:func:`PyUnicode_FromFormat`" + +#: ../Doc/whatsnew/3.3.rst:2294 +msgid "" +":c:macro:`Py_UNICODE_strcpy`, :c:macro:`Py_UNICODE_strncpy`, :c:macro:" +"`Py_UNICODE_COPY`: use :c:func:`PyUnicode_CopyCharacters` or :c:func:" +"`PyUnicode_Substring`" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2297 +msgid ":c:macro:`Py_UNICODE_strcmp`: use :c:func:`PyUnicode_Compare`" +msgstr ":c:macro:`Py_UNICODE_strcmp` : utilisez :c:func:`PyUnicode_Compare`" + +#: ../Doc/whatsnew/3.3.rst:2298 +msgid ":c:macro:`Py_UNICODE_strncmp`: use :c:func:`PyUnicode_Tailmatch`" +msgstr ":c:macro:`Py_UNICODE_strncmp` : utilisez :c:func:`PyUnicode_Tailmatch`" + +#: ../Doc/whatsnew/3.3.rst:2299 +msgid "" +":c:macro:`Py_UNICODE_strchr`, :c:macro:`Py_UNICODE_strrchr`: use :c:func:" +"`PyUnicode_FindChar`" +msgstr "" +":c:macro:`Py_UNICODE_strchr`, :c:macro:`Py_UNICODE_strrchr` : utilisez :c:" +"func:`PyUnicode_FindChar`" + +#: ../Doc/whatsnew/3.3.rst:2301 +msgid ":c:macro:`Py_UNICODE_FILL`: use :c:func:`PyUnicode_Fill`" +msgstr ":c:macro:`Py_UNICODE_FILL` : utilisez :c:func:`PyUnicode_Fill`" + +#: ../Doc/whatsnew/3.3.rst:2302 +msgid ":c:macro:`Py_UNICODE_MATCH`" +msgstr ":c:macro:`Py_UNICODE_MATCH`" + +#: ../Doc/whatsnew/3.3.rst:2304 +msgid "Encoders:" +msgstr "Encodeurs :" + +#: ../Doc/whatsnew/3.3.rst:2306 +msgid ":c:func:`PyUnicode_Encode`: use :c:func:`PyUnicode_AsEncodedObject`" +msgstr "" +":c:func:`PyUnicode_Encode` : utilisez :c:func:`PyUnicode_AsEncodedObject`" + +#: ../Doc/whatsnew/3.3.rst:2307 +msgid ":c:func:`PyUnicode_EncodeUTF7`" +msgstr ":c:func:`PyUnicode_EncodeUTF7`" + +#: ../Doc/whatsnew/3.3.rst:2308 +msgid "" +":c:func:`PyUnicode_EncodeUTF8`: use :c:func:`PyUnicode_AsUTF8` or :c:func:" +"`PyUnicode_AsUTF8String`" +msgstr "" +":c:func:`PyUnicode_EncodeUTF8` : utilisez :c:func:`PyUnicode_AsUTF8` ou :c:" +"func:`PyUnicode_AsUTF8String`" + +#: ../Doc/whatsnew/3.3.rst:2310 +msgid ":c:func:`PyUnicode_EncodeUTF32`" +msgstr ":c:func:`PyUnicode_EncodeUTF32`" + +#: ../Doc/whatsnew/3.3.rst:2311 +msgid ":c:func:`PyUnicode_EncodeUTF16`" +msgstr ":c:func:`PyUnicode_EncodeUTF16`" + +#: ../Doc/whatsnew/3.3.rst:2312 +msgid "" +":c:func:`PyUnicode_EncodeUnicodeEscape:` use :c:func:" +"`PyUnicode_AsUnicodeEscapeString`" +msgstr "" +":c:func:`PyUnicode_EncodeUnicodeEscape:` utilisez :c:func:" +"`PyUnicode_AsUnicodeEscapeString`" + +#: ../Doc/whatsnew/3.3.rst:2314 +msgid "" +":c:func:`PyUnicode_EncodeRawUnicodeEscape:` use :c:func:" +"`PyUnicode_AsRawUnicodeEscapeString`" +msgstr "" +":c:func:`PyUnicode_EncodeRawUnicodeEscape:` utilisez :c:func:" +"`PyUnicode_AsRawUnicodeEscapeString`" + +#: ../Doc/whatsnew/3.3.rst:2316 +msgid "" +":c:func:`PyUnicode_EncodeLatin1`: use :c:func:`PyUnicode_AsLatin1String`" +msgstr "" +":c:func:`PyUnicode_EncodeLatin1` : utilisez :c:func:" +"`PyUnicode_AsLatin1String`" + +#: ../Doc/whatsnew/3.3.rst:2317 +msgid ":c:func:`PyUnicode_EncodeASCII`: use :c:func:`PyUnicode_AsASCIIString`" +msgstr "" +":c:func:`PyUnicode_EncodeASCII` : utilisez :c:func:`PyUnicode_AsASCIIString`" + +#: ../Doc/whatsnew/3.3.rst:2318 +msgid ":c:func:`PyUnicode_EncodeCharmap`" +msgstr ":c:func:`PyUnicode_EncodeCharmap`" + +#: ../Doc/whatsnew/3.3.rst:2319 +msgid ":c:func:`PyUnicode_TranslateCharmap`" +msgstr ":c:func:`PyUnicode_TranslateCharmap`" + +#: ../Doc/whatsnew/3.3.rst:2320 +msgid "" +":c:func:`PyUnicode_EncodeMBCS`: use :c:func:`PyUnicode_AsMBCSString` or :c:" +"func:`PyUnicode_EncodeCodePage` (with ``CP_ACP`` code_page)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2322 +msgid "" +":c:func:`PyUnicode_EncodeDecimal`, :c:func:" +"`PyUnicode_TransformDecimalToASCII`" +msgstr "" +":c:func:`PyUnicode_EncodeDecimal`, :c:func:" +"`PyUnicode_TransformDecimalToASCII`" + +#: ../Doc/whatsnew/3.3.rst:2327 +msgid "Deprecated features" +msgstr "Fonctionnalités obsolètes" + +#: ../Doc/whatsnew/3.3.rst:2329 +msgid "" +"The :mod:`array` module's ``'u'`` format code is now deprecated and will be " +"removed in Python 4 together with the rest of the (:c:type:`Py_UNICODE`) API." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2334 +msgid "Porting to Python 3.3" +msgstr "Portage vers Python 3.3" + +#: ../Doc/whatsnew/3.3.rst:2336 +msgid "" +"This section lists previously described changes and other bugfixes that may " +"require changes to your code." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2342 +msgid "Porting Python code" +msgstr "Portage de code Python" + +#: ../Doc/whatsnew/3.3.rst:2344 +msgid "" +"Hash randomization is enabled by default. Set the :envvar:`PYTHONHASHSEED` " +"environment variable to ``0`` to disable hash randomization. See also the :" +"meth:`object.__hash__` method." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2348 +msgid "" +":issue:`12326`: On Linux, sys.platform doesn't contain the major version " +"anymore. It is now always 'linux', instead of 'linux2' or 'linux3' depending " +"on the Linux version used to build Python. Replace sys.platform == 'linux2' " +"with sys.platform.startswith('linux'), or directly sys.platform == 'linux' " +"if you don't need to support older Python versions." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2354 +msgid "" +":issue:`13847`, :issue:`14180`: :mod:`time` and :mod:`datetime`: :exc:" +"`OverflowError` is now raised instead of :exc:`ValueError` if a timestamp is " +"out of range. :exc:`OSError` is now raised if C functions :c:func:`gmtime` " +"or :c:func:`localtime` failed." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2359 +msgid "" +"The default finders used by import now utilize a cache of what is contained " +"within a specific directory. If you create a Python source file or " +"sourceless bytecode file, make sure to call :func:`importlib." +"invalidate_caches` to clear out the cache for the finders to notice the new " +"file." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2364 +msgid "" +":exc:`ImportError` now uses the full name of the module that was attempted " +"to be imported. Doctests that check ImportErrors' message will need to be " +"updated to use the full name of the module instead of just the tail of the " +"name." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2369 +msgid "" +"The *index* argument to :func:`__import__` now defaults to 0 instead of -1 " +"and no longer support negative values. It was an oversight when :pep:`328` " +"was implemented that the default value remained -1. If you need to continue " +"to perform a relative import followed by an absolute import, then perform " +"the relative import using an index of 1, followed by another import using an " +"index of 0. It is preferred, though, that you use :func:`importlib." +"import_module` rather than call :func:`__import__` directly." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2377 +msgid "" +":func:`__import__` no longer allows one to use an index value other than 0 " +"for top-level modules. E.g. ``__import__('sys', level=1)`` is now an error." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2380 +msgid "" +"Because :attr:`sys.meta_path` and :attr:`sys.path_hooks` now have finders on " +"them by default, you will most likely want to use :meth:`list.insert` " +"instead of :meth:`list.append` to add to those lists." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2384 +msgid "" +"Because ``None`` is now inserted into :attr:`sys.path_importer_cache`, if " +"you are clearing out entries in the dictionary of paths that do not have a " +"finder, you will need to remove keys paired with values of ``None`` **and** :" +"class:`imp.NullImporter` to be backwards-compatible. This will lead to extra " +"overhead on older versions of Python that re-insert ``None`` into :attr:`sys." +"path_importer_cache` where it represents the use of implicit finders, but " +"semantically it should not change anything." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2392 +msgid "" +":class:`importlib.abc.Finder` no longer specifies a `find_module()` abstract " +"method that must be implemented. If you were relying on subclasses to " +"implement that method, make sure to check for the method's existence first. " +"You will probably want to check for `find_loader()` first, though, in the " +"case of working with :term:`path entry finders `." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2398 +msgid "" +":mod:`pkgutil` has been converted to use :mod:`importlib` internally. This " +"eliminates many edge cases where the old behaviour of the PEP 302 import " +"emulation failed to match the behaviour of the real import system. The " +"import emulation itself is still present, but is now deprecated. The :func:" +"`pkgutil.iter_importers` and :func:`pkgutil.walk_packages` functions special " +"case the standard import hooks so they are still supported even though they " +"do not provide the non-standard ``iter_modules()`` method." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2406 +msgid "" +"A longstanding RFC-compliance bug (:issue:`1079`) in the parsing done by :" +"func:`email.header.decode_header` has been fixed. Code that uses the " +"standard idiom to convert encoded headers into unicode " +"(``str(make_header(decode_header(h))``) will see no change, but code that " +"looks at the individual tuples returned by decode_header will see that " +"whitespace that precedes or follows ``ASCII`` sections is now included in " +"the ``ASCII`` section. Code that builds headers using ``make_header`` " +"should also continue to work without change, since ``make_header`` continues " +"to add whitespace between ``ASCII`` and non-``ASCII`` sections if it is not " +"already present in the input strings." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2417 +msgid "" +":func:`email.utils.formataddr` now does the correct content transfer " +"encoding when passed non-``ASCII`` display names. Any code that depended on " +"the previous buggy behavior that preserved the non-``ASCII`` unicode in the " +"formatted output string will need to be changed (:issue:`1690608`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2422 +msgid "" +":meth:`poplib.POP3.quit` may now raise protocol errors like all other " +"``poplib`` methods. Code that assumes ``quit`` does not raise :exc:`poplib." +"error_proto` errors may need to be changed if errors on ``quit`` are " +"encountered by a particular application (:issue:`11291`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2427 +msgid "" +"The ``strict`` argument to :class:`email.parser.Parser`, deprecated since " +"Python 2.4, has finally been removed." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2430 +msgid "" +"The deprecated method ``unittest.TestCase.assertSameElements`` has been " +"removed." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2433 +msgid "The deprecated variable ``time.accept2dyear`` has been removed." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2435 +msgid "" +"The deprecated ``Context._clamp`` attribute has been removed from the :mod:" +"`decimal` module. It was previously replaced by the public attribute :attr:" +"`~decimal.Context.clamp`. (See :issue:`8540`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2439 +msgid "" +"The undocumented internal helper class ``SSLFakeFile`` has been removed " +"from :mod:`smtplib`, since its functionality has long been provided directly " +"by :meth:`socket.socket.makefile`." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2443 +msgid "" +"Passing a negative value to :func:`time.sleep` on Windows now raises an " +"error instead of sleeping forever. It has always raised an error on posix." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2446 +msgid "" +"The ``ast.__version__`` constant has been removed. If you need to make " +"decisions affected by the AST version, use :attr:`sys.version_info` to make " +"the decision." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2450 +msgid "" +"Code that used to work around the fact that the :mod:`threading` module used " +"factory functions by subclassing the private classes will need to change to " +"subclass the now-public classes." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2454 +msgid "" +"The undocumented debugging machinery in the threading module has been " +"removed, simplifying the code. This should have no effect on production " +"code, but is mentioned here in case any application debug frameworks were " +"interacting with it (:issue:`13550`)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2461 +msgid "Porting C code" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2463 +msgid "" +"In the course of changes to the buffer API the undocumented :c:member:" +"`~Py_buffer.smalltable` member of the :c:type:`Py_buffer` structure has been " +"removed and the layout of the :c:type:`PyMemoryViewObject` has changed." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2468 +msgid "" +"All extensions relying on the relevant parts in ``memoryobject.h`` or " +"``object.h`` must be rebuilt." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2471 +msgid "" +"Due to :ref:`PEP 393 `, the :c:type:`Py_UNICODE` type and all " +"functions using this type are deprecated (but will stay available for at " +"least five years). If you were using low-level Unicode APIs to construct " +"and access unicode objects and you want to benefit of the memory footprint " +"reduction provided by PEP 393, you have to convert your code to the new :doc:" +"`Unicode API <../c-api/unicode>`." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2478 +msgid "" +"However, if you only have been using high-level functions such as :c:func:" +"`PyUnicode_Concat()`, :c:func:`PyUnicode_Join` or :c:func:" +"`PyUnicode_FromFormat()`, your code will automatically take advantage of the " +"new unicode representations." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2483 +msgid ":c:func:`PyImport_GetMagicNumber` now returns ``-1`` upon failure." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2485 +msgid "" +"As a negative value for the *level* argument to :func:`__import__` is no " +"longer valid, the same now holds for :c:func:`PyImport_ImportModuleLevel`. " +"This also means that the value of *level* used by :c:func:" +"`PyImport_ImportModuleEx` is now ``0`` instead of ``-1``." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2492 +msgid "Building C extensions" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2494 +msgid "" +"The range of possible file names for C extensions has been narrowed. Very " +"rarely used spellings have been suppressed: under POSIX, files named " +"``xxxmodule.so``, ``xxxmodule.abi3.so`` and ``xxxmodule.cpython-*.so`` are " +"no longer recognized as implementing the ``xxx`` module. If you had been " +"generating such files, you have to switch to the other spellings (i.e., " +"remove the ``module`` string from the file names)." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2502 +msgid "(implemented in :issue:`14040`.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2506 +msgid "Command Line Switch Changes" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2508 +msgid "" +"The -Q command-line flag and related artifacts have been removed. Code " +"checking sys.flags.division_warning will need updating." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2511 +msgid "(:issue:`10998`, contributed by Éric Araujo.)" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2513 +msgid "" +"When :program:`python` is started with :option:`-S`, ``import site`` will no " +"longer add site-specific paths to the module search paths. In previous " +"versions, it did." +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:2517 +msgid "" +"(:issue:`11591`, contributed by Carl Meyer with editions by Éric Araujo.)" +msgstr "" diff --git a/whatsnew/3.4.po b/whatsnew/3.4.po new file mode 100644 index 000000000..34ecbb58a --- /dev/null +++ b/whatsnew/3.4.po @@ -0,0 +1,3518 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/whatsnew/3.4.rst:3 +msgid "What's New In Python 3.4" +msgstr "Nouveautés de Python 3.4" + +#: ../Doc/whatsnew/3.4.rst:0 +msgid "Author" +msgstr "Auteur" + +#: ../Doc/whatsnew/3.4.rst:5 +msgid "R. David Murray (Editor)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:63 +msgid "" +"This article explains the new features in Python 3.4, compared to 3.3. " +"Python 3.4 was released on March 16, 2014. For full details, see the " +"`changelog `_." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:70 +msgid ":pep:`429` -- Python 3.4 Release Schedule" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:75 +msgid "Summary -- Release Highlights" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:80 +msgid "New syntax features:" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:82 +msgid "No new syntax features were added in Python 3.4." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:84 +msgid "Other new features:" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:86 +msgid ":ref:`pip should always be available ` (:pep:`453`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:87 +msgid "" +":ref:`Newly created file descriptors are non-inheritable ` " +"(:pep:`446`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:89 +msgid "" +"command line option for :ref:`isolated mode ` (:" +"issue:`16499`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:91 +msgid "" +":ref:`improvements in the handling of codecs ` " +"that are not text encodings (multiple issues)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:93 +msgid "" +":ref:`A ModuleSpec Type ` for the Import System (:pep:" +"`451`). (Affects importer authors.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:95 +msgid "" +"The :mod:`marshal` format has been made :ref:`more compact and efficient " +"` (:issue:`16475`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:98 +msgid "New library modules:" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:100 +msgid "" +":mod:`asyncio`: :ref:`New provisional API for asynchronous IO ` (:pep:`3156`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:102 +msgid "" +":mod:`ensurepip`: :ref:`Bootstrapping the pip installer ` (:pep:`453`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:104 +msgid "" +":mod:`enum`: :ref:`Support for enumeration types ` (:pep:" +"`435`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:106 +msgid "" +":mod:`pathlib`: :ref:`Object-oriented filesystem paths ` (:" +"pep:`428`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:108 +msgid "" +":mod:`selectors`: :ref:`High-level and efficient I/O multiplexing `, built upon the :mod:`select` module primitives (part of :pep:" +"`3156`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:111 +msgid "" +":mod:`statistics`: A basic :ref:`numerically stable statistics library " +"` (:pep:`450`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:113 +msgid "" +":mod:`tracemalloc`: :ref:`Trace Python memory allocations ` (:pep:`454`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:116 +msgid "Significantly improved library modules:" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:118 +msgid "" +":ref:`Single-dispatch generic functions ` in :mod:" +"`functools` (:pep:`443`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:120 +msgid "" +"New :mod:`pickle` :ref:`protocol 4 ` (:pep:`3154`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:121 +msgid "" +":mod:`multiprocessing` now has :ref:`an option to avoid using os.fork on " +"Unix ` (:issue:`8713`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:123 +msgid "" +":mod:`email` has a new submodule, :mod:`~email.contentmanager`, and a new :" +"mod:`~email.message.Message` subclass (:class:`~email.contentmanager." +"EmailMessage`) that :ref:`simplify MIME handling " +"` (:issue:`18891`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:127 +msgid "" +"The :mod:`inspect` and :mod:`pydoc` modules are now capable of correct " +"introspection of a much wider variety of callable objects, which improves " +"the output of the Python :func:`help` system." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:130 +msgid "The :mod:`ipaddress` module API has been declared stable" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:132 +msgid "Security improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:134 +msgid "" +":ref:`Secure and interchangeable hash algorithm ` (:pep:" +"`456`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:136 +msgid "" +":ref:`Make newly created file descriptors non-inheritable ` (:pep:`446`) to avoid leaking file descriptors to child processes." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:138 +msgid "" +"New command line option for :ref:`isolated mode `, (:" +"issue:`16499`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:140 +msgid "" +":mod:`multiprocessing` now has :ref:`an option to avoid using os.fork on " +"Unix `. *spawn* and *forkserver* are more " +"secure because they avoid sharing data with child processes." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:143 +msgid "" +":mod:`multiprocessing` child processes on Windows no longer inherit all of " +"the parent's inheritable handles, only the necessary ones." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:145 +msgid "" +"A new :func:`hashlib.pbkdf2_hmac` function provides the `PKCS#5 password-" +"based key derivation function 2 `_." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:148 +msgid ":ref:`TLSv1.1 and TLSv1.2 support ` for :mod:`ssl`." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:149 +msgid "" +":ref:`Retrieving certificates from the Windows system cert store support " +"` for :mod:`ssl`." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:151 +msgid "" +":ref:`Server-side SNI (Server Name Indication) support ` " +"for :mod:`ssl`." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:153 +msgid "" +"The :class:`ssl.SSLContext` class has a :ref:`lot of improvements " +"`." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:155 +msgid "" +"All modules in the standard library that support SSL now support server " +"certificate verification, including hostname matching (:func:`ssl." +"match_hostname`) and CRLs (Certificate Revocation lists, see :func:`ssl." +"SSLContext.load_verify_locations`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:160 +msgid "CPython implementation improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:162 +msgid ":ref:`Safe object finalization ` (:pep:`442`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:163 +msgid "" +"Leveraging :pep:`442`, in most cases :ref:`module globals are no longer set " +"to None during finalization ` (:issue:`18214`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:165 +msgid ":ref:`Configurable memory allocators ` (:pep:`445`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:166 +msgid ":ref:`Argument Clinic ` (:pep:`436`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:168 +msgid "" +"Please read on for a comprehensive list of user-facing changes, including " +"many other smaller improvements, CPython optimizations, deprecations, and " +"potential porting issues." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:175 +msgid "New Features" +msgstr "Nouvelles fonctionnalités" + +#: ../Doc/whatsnew/3.4.rst:180 +msgid "PEP 453: Explicit Bootstrapping of PIP in Python Installations" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:183 +msgid "Bootstrapping pip By Default" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:185 +msgid "" +"The new :mod:`ensurepip` module (defined in :pep:`453`) provides a standard " +"cross-platform mechanism to bootstrap the pip installer into Python " +"installations and virtual environments. The version of ``pip`` included with " +"Python 3.4.0 is ``pip`` 1.5.4, and future 3.4.x maintenance releases will " +"update the bundled version to the latest version of ``pip`` that is " +"available at the time of creating the release candidate." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:192 +msgid "" +"By default, the commands ``pipX`` and ``pipX.Y`` will be installed on all " +"platforms (where X.Y stands for the version of the Python installation), " +"along with the ``pip`` Python package and its dependencies. On Windows and " +"in virtual environments on all platforms, the unversioned ``pip`` command " +"will also be installed. On other platforms, the system wide unversioned " +"``pip`` command typically refers to the separately installed Python 2 " +"version." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:200 +msgid "" +"The ``pyvenv`` command line utility and the :mod:`venv` module make use of " +"the :mod:`ensurepip` module to make ``pip`` readily available in virtual " +"environments. When using the command line utility, ``pip`` is installed by " +"default, while when using the :mod:`venv` module :ref:`venv-api` " +"installation of ``pip`` must be requested explicitly." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:206 +msgid "" +"For CPython :ref:`source builds on POSIX systems `, " +"the ``make install`` and ``make altinstall`` commands bootstrap ``pip`` by " +"default. This behaviour can be controlled through configure options, and " +"overridden through Makefile options." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:211 +msgid "" +"On Windows and Mac OS X, the CPython installers now default to installing " +"``pip`` along with CPython itself (users may opt out of installing it during " +"the installation process). Window users will need to opt in to the automatic " +"``PATH`` modifications to have ``pip`` available from the command line by " +"default, otherwise it can still be accessed through the Python launcher for " +"Windows as ``py -m pip``." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:218 +msgid "" +"As `discussed in the PEP`__, platform packagers may choose not to install " +"these commands by default, as long as, when invoked, they provide clear and " +"simple directions on how to install them on that platform (usually using the " +"system package manager)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:227 +msgid "" +"To avoid conflicts between parallel Python 2 and Python 3 installations, " +"only the versioned ``pip3`` and ``pip3.4`` commands are bootstrapped by " +"default when ``ensurepip`` is invoked directly - the ``--default-pip`` " +"option is needed to also request the unversioned ``pip`` command. ``pyvenv`` " +"and the Windows installer ensure that the unqualified ``pip`` command is " +"made available in those environments, and ``pip`` can always be invoked via " +"the ``-m`` switch rather than directly to avoid ambiguity on systems with " +"multiple Python installations." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:238 +msgid "Documentation Changes" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:240 +msgid "" +"As part of this change, the :ref:`installing-index` and :ref:`distributing-" +"index` sections of the documentation have been completely redesigned as " +"short getting started and FAQ documents. Most packaging documentation has " +"now been moved out to the Python Packaging Authority maintained `Python " +"Packaging User Guide `__ and the documentation " +"of the individual projects." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:248 +msgid "" +"However, as this migration is currently still incomplete, the legacy " +"versions of those guides remaining available as :ref:`install-index` and :" +"ref:`distutils-index`." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:255 +msgid ":pep:`453` -- Explicit bootstrapping of pip in Python installations" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:255 +msgid "" +"PEP written by Donald Stufft and Nick Coghlan, implemented by Donald Stufft, " +"Nick Coghlan, Martin von Löwis and Ned Deily." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:262 +msgid "PEP 446: Newly Created File Descriptors Are Non-Inheritable" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:264 +msgid "" +":pep:`446` makes newly created file descriptors :ref:`non-inheritable " +"`. In general, this is the behavior an application will " +"want: when launching a new process, having currently open files also open in " +"the new process can lead to all sorts of hard to find bugs, and potentially " +"to security issues." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:270 +msgid "" +"However, there are occasions when inheritance is desired. To support these " +"cases, the following new functions and methods are available:" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:273 +msgid ":func:`os.get_inheritable`, :func:`os.set_inheritable`" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:274 +msgid ":func:`os.get_handle_inheritable`, :func:`os.set_handle_inheritable`" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:275 +msgid "" +":meth:`socket.socket.get_inheritable`, :meth:`socket.socket.set_inheritable`" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:279 +msgid ":pep:`446` -- Make newly created file descriptors non-inheritable" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:280 ../Doc/whatsnew/3.4.rst:1812 +msgid "PEP written and implemented by Victor Stinner." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:286 +msgid "Improvements to Codec Handling" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:288 +msgid "" +"Since it was first introduced, the :mod:`codecs` module has always been " +"intended to operate as a type-neutral dynamic encoding and decoding system. " +"However, its close coupling with the Python text model, especially the type " +"restricted convenience methods on the builtin :class:`str`, :class:`bytes` " +"and :class:`bytearray` types, has historically obscured that fact." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:295 +msgid "" +"As a key step in clarifying the situation, the :meth:`codecs.encode` and :" +"meth:`codecs.decode` convenience functions are now properly documented in " +"Python 2.7, 3.3 and 3.4. These functions have existed in the :mod:`codecs` " +"module (and have been covered by the regression test suite) since Python " +"2.4, but were previously only discoverable through runtime introspection." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:301 +msgid "" +"Unlike the convenience methods on :class:`str`, :class:`bytes` and :class:" +"`bytearray`, the :mod:`codecs` convenience functions support arbitrary " +"codecs in both Python 2 and Python 3, rather than being limited to Unicode " +"text encodings (in Python 3) or ``basestring`` <-> ``basestring`` " +"conversions (in Python 2)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:307 +msgid "" +"In Python 3.4, the interpreter is able to identify the known non-text " +"encodings provided in the standard library and direct users towards these " +"general purpose convenience functions when appropriate::" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:326 +msgid "" +"In a related change, whenever it is feasible without breaking backwards " +"compatibility, exceptions raised during encoding and decoding operations are " +"wrapped in a chained exception of the same type that mentions the name of " +"the codec responsible for producing the error::" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:359 +msgid "" +"Finally, as the examples above show, these improvements have permitted the " +"restoration of the convenience aliases for the non-Unicode codecs that were " +"themselves restored in Python 3.2. This means that encoding binary data to " +"and from its hexadecimal representation (for example) can now be written as::" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:371 +msgid "" +"The binary and text transforms provided in the standard library are detailed " +"in :ref:`binary-transforms` and :ref:`text-transforms`." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:374 +msgid "" +"(Contributed by Nick Coghlan in :issue:`7475`, :issue:`17827`, :issue:" +"`17828` and :issue:`19619`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:381 +msgid "PEP 451: A ModuleSpec Type for the Import System" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:383 +msgid "" +":pep:`451` provides an encapsulation of the information about a module that " +"the import machinery will use to load it (that is, a module specification). " +"This helps simplify both the import implementation and several import-" +"related APIs. The change is also a stepping stone for `several future import-" +"related improvements`__." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:391 +msgid "" +"The public-facing changes from the PEP are entirely backward-compatible. " +"Furthermore, they should be transparent to everyone but importer authors. " +"Key finder and loader methods have been deprecated, but they will continue " +"working. New importers should use the new methods described in the PEP. " +"Existing importers should be updated to implement the new methods. See the :" +"ref:`deprecated-3.4` section for a list of methods that should be replaced " +"and their replacements." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:401 +msgid "Other Language Changes" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:403 +msgid "Some smaller changes made to the core Python language are:" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:405 +msgid "Unicode database updated to UCD version 6.3." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:407 +msgid "" +":func:`min` and :func:`max` now accept a *default* keyword-only argument " +"that can be used to specify the value they return if the iterable they are " +"evaluating has no elements. (Contributed by Julian Berman in :issue:" +"`18111`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:412 +msgid "Module objects are now :mod:`weakref`'able." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:414 +msgid "" +"Module ``__file__`` attributes (and related values) should now always " +"contain absolute paths by default, with the sole exception of ``__main__." +"__file__`` when a script has been executed directly using a relative path. " +"(Contributed by Brett Cannon in :issue:`18416`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:419 +msgid "" +"All the UTF-\\* codecs (except UTF-7) now reject surrogates during both " +"encoding and decoding unless the ``surrogatepass`` error handler is used, " +"with the exception of the UTF-16 decoder (which accepts valid surrogate " +"pairs) and the UTF-16 encoder (which produces them while encoding non-BMP " +"characters). (Contributed by Victor Stinner, Kang-Hao (Kenny) Lu and Serhiy " +"Storchaka in :issue:`12892`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:426 +msgid "" +"New German EBCDIC :ref:`codec ` ``cp273``. (Contributed " +"by Michael Bierenfeld and Andrew Kuchling in :issue:`1097797`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:429 +msgid "" +"New Ukrainian :ref:`codec ` ``cp1125``. (Contributed by " +"Serhiy Storchaka in :issue:`19668`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:432 +msgid "" +":class:`bytes`.join() and :class:`bytearray`.join() now accept arbitrary " +"buffer objects as arguments. (Contributed by Antoine Pitrou in :issue:" +"`15958`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:436 +msgid "" +"The :class:`int` constructor now accepts any object that has an " +"``__index__`` method for its *base* argument. (Contributed by Mark " +"Dickinson in :issue:`16772`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:440 +msgid "" +"Frame objects now have a :func:`~frame.clear` method that clears all " +"references to local variables from the frame. (Contributed by Antoine " +"Pitrou in :issue:`17934`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:444 +msgid "" +":class:`memoryview` is now registered as a :class:`Sequence `, and supports the :func:`reversed` builtin. (Contributed by Nick " +"Coghlan and Claudiu Popa in :issue:`18690` and :issue:`19078`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:448 +msgid "" +"Signatures reported by :func:`help` have been modified and improved in " +"several cases as a result of the introduction of Argument Clinic and other " +"changes to the :mod:`inspect` and :mod:`pydoc` modules." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:452 +msgid "" +":meth:`~object.__length_hint__` is now part of the formal language " +"specification (see :pep:`424`). (Contributed by Armin Ronacher in :issue:" +"`16148`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:458 +msgid "New Modules" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:464 +msgid "asyncio" +msgstr "asyncio" + +#: ../Doc/whatsnew/3.4.rst:466 +msgid "" +"The new :mod:`asyncio` module (defined in :pep:`3156`) provides a standard " +"pluggable event loop model for Python, providing solid asynchronous IO " +"support in the standard library, and making it easier for other event loop " +"implementations to interoperate with the standard library and each other." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:471 ../Doc/whatsnew/3.4.rst:534 +msgid "For Python 3.4, this module is considered a :term:`provisional API`." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:475 +msgid ":pep:`3156` -- Asynchronous IO Support Rebooted: the \"asyncio\" Module" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:476 +msgid "PEP written and implementation led by Guido van Rossum." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:482 +msgid "ensurepip" +msgstr "ensurepip" + +#: ../Doc/whatsnew/3.4.rst:484 +msgid "" +"The new :mod:`ensurepip` module is the primary infrastructure for the :pep:" +"`453` implementation. In the normal course of events end users will not " +"need to interact with this module, but it can be used to manually bootstrap " +"``pip`` if the automated bootstrapping into an installation or virtual " +"environment was declined." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:490 +msgid "" +":mod:`ensurepip` includes a bundled copy of ``pip``, up-to-date as of the " +"first release candidate of the release of CPython with which it ships (this " +"applies to both maintenance releases and feature releases). ``ensurepip`` " +"does not access the internet. If the installation has Internet access, " +"after ``ensurepip`` is run the bundled ``pip`` can be used to upgrade " +"``pip`` to a more recent release than the bundled one. (Note that such an " +"upgraded version of ``pip`` is considered to be a separately installed " +"package and will not be removed if Python is uninstalled.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:499 +msgid "" +"The module is named *ensure*\\ pip because if called when ``pip`` is already " +"installed, it does nothing. It also has an ``--upgrade`` option that will " +"cause it to install the bundled copy of ``pip`` if the existing installed " +"version of ``pip`` is older than the bundled copy." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:508 +msgid "enum" +msgstr "enum" + +#: ../Doc/whatsnew/3.4.rst:510 +msgid "" +"The new :mod:`enum` module (defined in :pep:`435`) provides a standard " +"implementation of enumeration types, allowing other modules (such as :mod:" +"`socket`) to provide more informative error messages and better debugging " +"support by replacing opaque integer constants with backwards compatible " +"enumeration values." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:519 +msgid ":pep:`435` -- Adding an Enum type to the Python standard library" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:519 +msgid "" +"PEP written by Barry Warsaw, Eli Bendersky and Ethan Furman, implemented by " +"Ethan Furman." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:526 +msgid "pathlib" +msgstr "pathlib" + +#: ../Doc/whatsnew/3.4.rst:528 +msgid "" +"The new :mod:`pathlib` module offers classes representing filesystem paths " +"with semantics appropriate for different operating systems. Path classes " +"are divided between *pure paths*, which provide purely computational " +"operations without I/O, and *concrete paths*, which inherit from pure paths " +"but also provide I/O operations." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:538 +msgid ":pep:`428` -- The pathlib module -- object-oriented filesystem paths" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:539 ../Doc/whatsnew/3.4.rst:1835 +msgid "PEP written and implemented by Antoine Pitrou." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:545 +msgid "selectors" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:547 +msgid "" +"The new :mod:`selectors` module (created as part of implementing :pep:" +"`3156`) allows high-level and efficient I/O multiplexing, built upon the :" +"mod:`select` module primitives." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:555 +msgid "statistics" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:557 +msgid "" +"The new :mod:`statistics` module (defined in :pep:`450`) offers some core " +"statistics functionality directly in the standard library. This module " +"supports calculation of the mean, median, mode, variance and standard " +"deviation of a data series." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:564 +msgid ":pep:`450` -- Adding A Statistics Module To The Standard Library" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:565 +msgid "PEP written and implemented by Steven D'Aprano" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:571 +msgid "tracemalloc" +msgstr "tracemalloc" + +#: ../Doc/whatsnew/3.4.rst:573 +msgid "" +"The new :mod:`tracemalloc` module (defined in :pep:`454`) is a debug tool to " +"trace memory blocks allocated by Python. It provides the following " +"information:" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:576 +msgid "Trace where an object was allocated" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:577 +msgid "" +"Statistics on allocated memory blocks per filename and per line number: " +"total size, number and average size of allocated memory blocks" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:579 +msgid "Compute the differences between two snapshots to detect memory leaks" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:583 +msgid "" +":pep:`454` -- Add a new tracemalloc module to trace Python memory allocations" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:584 +msgid "PEP written and implemented by Victor Stinner" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:589 +msgid "Improved Modules" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:593 +msgid "abc" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:595 +msgid "" +"New function :func:`abc.get_cache_token` can be used to know when to " +"invalidate caches that are affected by changes in the object graph. " +"(Contributed by Łukasz Langa in :issue:`16832`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:599 +msgid "" +"New class :class:`~abc.ABC` has :class:`~abc.ABCMeta` as its meta class. " +"Using ``ABC`` as a base class has essentially the same effect as specifying " +"``metaclass=abc.ABCMeta``, but is simpler to type and easier to read. " +"(Contributed by Bruno Dupuis in :issue:`16049`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:606 +msgid "aifc" +msgstr "aifc" + +#: ../Doc/whatsnew/3.4.rst:608 +msgid "" +"The :meth:`~aifc.aifc.getparams` method now returns a namedtuple rather than " +"a plain tuple. (Contributed by Claudiu Popa in :issue:`17818`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:611 +msgid "" +":func:`aifc.open` now supports the context management protocol: when used in " +"a :keyword:`with` block, the :meth:`~aifc.aifc.close` method of the returned " +"object will be called automatically at the end of the block. (Contributed " +"by Serhiy Storchacha in :issue:`16486`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:616 +msgid "" +"The :meth:`~aifc.aifc.writeframesraw` and :meth:`~aifc.aifc.writeframes` " +"methods now accept any :term:`bytes-like object`. (Contributed by Serhiy " +"Storchaka in :issue:`8311`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:622 +msgid "argparse" +msgstr "argparse" + +#: ../Doc/whatsnew/3.4.rst:624 +msgid "" +"The :class:`~argparse.FileType` class now accepts *encoding* and *errors* " +"arguments, which are passed through to :func:`open`. (Contributed by Lucas " +"Maystre in :issue:`11175`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:630 +msgid "audioop" +msgstr "audioop" + +#: ../Doc/whatsnew/3.4.rst:632 +msgid "" +":mod:`audioop` now supports 24-bit samples. (Contributed by Serhiy " +"Storchaka in :issue:`12866`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:635 +msgid "" +"New :func:`~audioop.byteswap` function converts big-endian samples to little-" +"endian and vice versa. (Contributed by Serhiy Storchaka in :issue:`19641`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:639 +msgid "" +"All :mod:`audioop` functions now accept any :term:`bytes-like object`. " +"Strings are not accepted: they didn't work before, now they raise an error " +"right away. (Contributed by Serhiy Storchaka in :issue:`16685`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:645 +msgid "base64" +msgstr "base64" + +#: ../Doc/whatsnew/3.4.rst:647 +msgid "" +"The encoding and decoding functions in :mod:`base64` now accept any :term:" +"`bytes-like object` in cases where it previously required a :class:`bytes` " +"or :class:`bytearray` instance. (Contributed by Nick Coghlan in :issue:" +"`17839`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:652 +msgid "" +"New functions :func:`~base64.a85encode`, :func:`~base64.a85decode`, :func:" +"`~base64.b85encode`, and :func:`~base64.b85decode` provide the ability to " +"encode and decode binary data from and to ``Ascii85`` and the git/mercurial " +"``Base85`` formats, respectively. The ``a85`` functions have options that " +"can be used to make them compatible with the variants of the ``Ascii85`` " +"encoding, including the Adobe variant. (Contributed by Martin Morrison, the " +"Mercurial project, Serhiy Storchaka, and Antoine Pitrou in :issue:`17618`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:662 +msgid "collections" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:664 +msgid "" +"The :meth:`.ChainMap.new_child` method now accepts an *m* argument " +"specifying the child map to add to the chain. This allows an existing " +"mapping and/or a custom mapping type to be used for the child. (Contributed " +"by Vinay Sajip in :issue:`16613`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:671 +msgid "colorsys" +msgstr "colorsys" + +#: ../Doc/whatsnew/3.4.rst:673 +msgid "" +"The number of digits in the coefficients for the RGB --- YIQ conversions " +"have been expanded so that they match the FCC NTSC versions. The change in " +"results should be less than 1% and may better match results found elsewhere. " +"(Contributed by Brian Landers and Serhiy Storchaka in :issue:`14323`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:680 +msgid "contextlib" +msgstr "contextlib" + +#: ../Doc/whatsnew/3.4.rst:682 +msgid "" +"The new :class:`contextlib.suppress` context manager helps to clarify the " +"intent of code that deliberately suppresses exceptions from a single " +"statement. (Contributed by Raymond Hettinger in :issue:`15806` and Zero " +"Piraeus in :issue:`19266`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:687 +msgid "" +"The new :func:`contextlib.redirect_stdout` context manager makes it easier " +"for utility scripts to handle inflexible APIs that write their output to :" +"data:`sys.stdout` and don't provide any options to redirect it. Using the " +"context manager, the :data:`sys.stdout` output can be redirected to any " +"other stream or, in conjunction with :class:`io.StringIO`, to a string. The " +"latter can be especially useful, for example, to capture output from a " +"function that was written to implement a command line interface. It is " +"recommended only for utility scripts because it affects the global state of :" +"data:`sys.stdout`. (Contributed by Raymond Hettinger in :issue:`15805`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:698 +msgid "" +"The :mod:`contextlib` documentation has also been updated to include a :ref:" +"`discussion ` of the differences " +"between single use, reusable and reentrant context managers." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:704 +msgid "dbm" +msgstr "dbm" + +#: ../Doc/whatsnew/3.4.rst:706 +msgid "" +":func:`dbm.open` objects now support the context management protocol. When " +"used in a :keyword:`with` statement, the ``close`` method of the database " +"object will be called automatically at the end of the block. (Contributed " +"by Claudiu Popa and Nick Coghlan in :issue:`19282`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:713 +msgid "dis" +msgstr "dis" + +#: ../Doc/whatsnew/3.4.rst:715 +msgid "" +"Functions :func:`~dis.show_code`, :func:`~dis.dis`, :func:`~dis.distb`, and :" +"func:`~dis.disassemble` now accept a keyword-only *file* argument that " +"controls where they write their output." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:719 +msgid "" +"The :mod:`dis` module is now built around an :class:`~dis.Instruction` class " +"that provides object oriented access to the details of each individual " +"bytecode operation." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:723 +msgid "" +"A new method, :func:`~dis.get_instructions`, provides an iterator that emits " +"the Instruction stream for a given piece of Python code. Thus it is now " +"possible to write a program that inspects and manipulates a bytecode object " +"in ways different from those provided by the :mod:`~dis` module itself. For " +"example::" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:737 +msgid "" +"The various display tools in the :mod:`dis` module have been rewritten to " +"use these new components." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:740 +msgid "" +"In addition, a new application-friendly class :class:`~dis.Bytecode` " +"provides an object-oriented API for inspecting bytecode in both in human-" +"readable form and for iterating over instructions. The :class:`~dis." +"Bytecode` constructor takes the same arguments that :func:`~dis." +"get_instruction` does (plus an optional *current_offset*), and the resulting " +"object can be iterated to produce :class:`~dis.Instruction` objects. But it " +"also has a :mod:`~dis.Bytecode.dis` method, equivalent to calling :mod:`~dis." +"dis` on the constructor argument, but returned as a multi-line string::" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:762 +msgid "" +":class:`~dis.Bytecode` also has a class method, :meth:`~dis.Bytecode." +"from_traceback`, that provides the ability to manipulate a traceback (that " +"is, ``print(Bytecode.from_traceback(tb).dis())`` is equivalent to " +"``distb(tb)``)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:767 +msgid "" +"(Contributed by Nick Coghlan, Ryan Kelly and Thomas Kluyver in :issue:" +"`11816` and Claudiu Popa in :issue:`17916`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:770 +msgid "" +"New function :func:`~dis.stack_effect` computes the effect on the Python " +"stack of a given opcode and argument, information that is not otherwise " +"available. (Contributed by Larry Hastings in :issue:`19722`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:776 +msgid "doctest" +msgstr "doctest" + +#: ../Doc/whatsnew/3.4.rst:778 +msgid "" +"A new :ref:`option flag `, :data:`~doctest.FAIL_FAST`, " +"halts test running as soon as the first failure is detected. (Contributed " +"by R. David Murray and Daniel Urban in :issue:`16522`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:782 +msgid "" +"The :mod:`doctest` command line interface now uses :mod:`argparse`, and has " +"two new options, ``-o`` and ``-f``. ``-o`` allows :ref:`doctest options " +"` to be specified on the command line, and ``-f`` is a " +"shorthand for ``-o FAIL_FAST`` (to parallel the similar option supported by " +"the :mod:`unittest` CLI). (Contributed by R. David Murray in :issue:" +"`11390`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:788 +msgid "" +":mod:`doctest` will now find doctests in extension module ``__doc__`` " +"strings. (Contributed by Zachary Ware in :issue:`3158`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:793 +msgid "email" +msgstr "email" + +#: ../Doc/whatsnew/3.4.rst:795 +msgid "" +":meth:`~email.message.Message.as_string` now accepts a *policy* argument to " +"override the default policy of the message when generating a string " +"representation of it. This means that ``as_string`` can now be used in more " +"circumstances, instead of having to create and use a :mod:`~email.generator` " +"in order to pass formatting parameters to its ``flatten`` method. " +"(Contributed by R. David Murray in :issue:`18600`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:802 +msgid "" +"New method :meth:`~email.message.Message.as_bytes` added to produce a bytes " +"representation of the message in a fashion similar to how ``as_string`` " +"produces a string representation. It does not accept the *maxheaderlen* " +"argument, but does accept the *unixfrom* and *policy* arguments. The :class:" +"`~email.message.Message` :meth:`~email.message.Message.__bytes__` method " +"calls it, meaning that ``bytes(mymsg)`` will now produce the intuitive " +"result: a bytes object containing the fully formatted message. " +"(Contributed by R. David Murray in :issue:`18600`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:811 +msgid "" +"The :meth:`.Message.set_param` message now accepts a *replace* keyword " +"argument. When specified, the associated header will be updated without " +"changing its location in the list of headers. For backward compatibility, " +"the default is ``False``. (Contributed by R. David Murray in :issue:" +"`18891`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:819 +msgid "" +"A pair of new subclasses of :class:`~email.message.Message` have been added " +"(:class:`.EmailMessage` and :class:`.MIMEPart`), along with a new sub-" +"module, :mod:`~email.contentmanager` and a new :mod:`~email.policy` " +"attribute :attr:`~email.policy.EmailPolicy.content_manager`. All " +"documentation is currently in the new module, which is being added as part " +"of email's new :term:`provisional API`. These classes provide a number of " +"new methods that make extracting content from and inserting content into " +"email messages much easier. For details, see the :mod:`~email." +"contentmanager` documentation and the :ref:`email-examples`. These API " +"additions complete the bulk of the work that was planned as part of the " +"email6 project. The currently provisional API is scheduled to become final " +"in Python 3.5 (possibly with a few minor additions in the area of error " +"handling). (Contributed by R. David Murray in :issue:`18891`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:835 +msgid "filecmp" +msgstr "filecmp" + +#: ../Doc/whatsnew/3.4.rst:837 +msgid "" +"A new :func:`~filecmp.clear_cache` function provides the ability to clear " +"the :mod:`filecmp` comparison cache, which uses :func:`os.stat` information " +"to determine if the file has changed since the last compare. This can be " +"used, for example, if the file might have been changed and re-checked in " +"less time than the resolution of a particular filesystem's file modification " +"time field. (Contributed by Mark Levitt in :issue:`18149`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:844 +msgid "" +"New module attribute :data:`~filecmp.DEFAULT_IGNORES` provides the list of " +"directories that are used as the default value for the *ignore* parameter of " +"the :func:`~filecmp.dircmp` function. (Contributed by Eli Bendersky in :" +"issue:`15442`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:851 +msgid "functools" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:853 +msgid "" +"The new :func:`~functools.partialmethod` descriptor brings partial argument " +"application to descriptors, just as :func:`~functools.partial` provides for " +"normal callables. The new descriptor also makes it easier to get arbitrary " +"callables (including :func:`~functools.partial` instances) to behave like " +"normal instance methods when included in a class definition. (Contributed by " +"Alon Horev and Nick Coghlan in :issue:`4331`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:862 +msgid "" +"The new :func:`~functools.singledispatch` decorator brings support for " +"single-dispatch generic functions to the Python standard library. Where " +"object oriented programming focuses on grouping multiple operations on a " +"common set of data into a class, a generic function focuses on grouping " +"multiple implementations of an operation that allows it to work with " +"*different* kinds of data." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:871 +msgid ":pep:`443` -- Single-dispatch generic functions" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:872 +msgid "PEP written and implemented by Łukasz Langa." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:874 +msgid "" +":func:`~functools.total_ordering` now supports a return value of :const:" +"`NotImplemented` from the underlying comparison function. (Contributed by " +"Katie Miller in :issue:`10042`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:878 +msgid "" +"A pure-python version of the :func:`~functools.partial` function is now in " +"the stdlib; in CPython it is overridden by the C accelerated version, but it " +"is available for other implementations to use. (Contributed by Brian Thorne " +"in :issue:`12428`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:885 +msgid "gc" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:887 +msgid "" +"New function :func:`~gc.get_stats` returns a list of three per-generation " +"dictionaries containing the collections statistics since interpreter " +"startup. (Contributed by Antoine Pitrou in :issue:`16351`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:893 +msgid "glob" +msgstr "glob" + +#: ../Doc/whatsnew/3.4.rst:895 +msgid "" +"A new function :func:`~glob.escape` provides a way to escape special " +"characters in a filename so that they do not become part of the globbing " +"expansion but are instead matched literally. (Contributed by Serhiy " +"Storchaka in :issue:`8402`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:901 +msgid "hashlib" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:903 +msgid "" +"A new :func:`hashlib.pbkdf2_hmac` function provides the `PKCS#5 password-" +"based key derivation function 2 `_. " +"(Contributed by Christian Heimes in :issue:`18582`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:908 +msgid "" +"The :attr:`~hashlib.hash.name` attribute of :mod:`hashlib` hash objects is " +"now a formally supported interface. It has always existed in CPython's :mod:" +"`hashlib` (although it did not return lower case names for all supported " +"hashes), but it was not a public interface and so some other Python " +"implementations have not previously supported it. (Contributed by Jason R. " +"Coombs in :issue:`18532`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:917 +msgid "hmac" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:919 +msgid "" +":mod:`hmac` now accepts ``bytearray`` as well as ``bytes`` for the *key* " +"argument to the :func:`~hmac.new` function, and the *msg* parameter to both " +"the :func:`~hmac.new` function and the :meth:`~hmac.HMAC.update` method now " +"accepts any type supported by the :mod:`hashlib` module. (Contributed by " +"Jonas Borgström in :issue:`18240`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:925 +msgid "" +"The *digestmod* argument to the :func:`hmac.new` function may now be any " +"hash digest name recognized by :mod:`hashlib`. In addition, the current " +"behavior in which the value of *digestmod* defaults to ``MD5`` is " +"deprecated: in a future version of Python there will be no default value. " +"(Contributed by Christian Heimes in :issue:`17276`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:931 +msgid "" +"With the addition of :attr:`~hmac.HMAC.block_size` and :attr:`~hmac.HMAC." +"name` attributes (and the formal documentation of the :attr:`~hmac.HMAC." +"digest_size` attribute), the :mod:`hmac` module now conforms fully to the :" +"pep:`247` API. (Contributed by Christian Heimes in :issue:`18775`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:938 +msgid "html" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:940 +msgid "" +"New function :func:`~html.unescape` function converts HTML5 character " +"references to the corresponding Unicode characters. (Contributed by Ezio " +"Melotti in :issue:`2927`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:944 +msgid "" +":class:`~html.parser.HTMLParser` accepts a new keyword argument " +"*convert_charrefs* that, when ``True``, automatically converts all character " +"references. For backward-compatibility, its value defaults to ``False``, " +"but it will change to ``True`` in a future version of Python, so you are " +"invited to set it explicitly and update your code to use this new feature. " +"(Contributed by Ezio Melotti in :issue:`13633`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:951 +msgid "" +"The *strict* argument of :class:`~html.parser.HTMLParser` is now deprecated. " +"(Contributed by Ezio Melotti in :issue:`15114`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:956 +msgid "http" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:958 +msgid "" +":meth:`~http.server.BaseHTTPRequestHandler.send_error` now accepts an " +"optional additional *explain* parameter which can be used to provide an " +"extended error description, overriding the hardcoded default if there is " +"one. This extended error description will be formatted using the :attr:" +"`~http.server.HTTP.error_message_format` attribute and sent as the body of " +"the error response. (Contributed by Karl Cow in :issue:`12921`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:965 +msgid "" +"The :mod:`http.server` :ref:`command line interface ` now " +"has a ``-b/--bind`` option that causes the server to listen on a specific " +"address. (Contributed by Malte Swart in :issue:`17764`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:971 +msgid "idlelib and IDLE" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:973 +msgid "" +"Since idlelib implements the IDLE shell and editor and is not intended for " +"import by other programs, it gets improvements with every release. See :file:" +"`Lib/idlelib/NEWS.txt` for a cumulative list of changes since 3.3.0, as well " +"as changes made in future 3.4.x releases. This file is also available from " +"the IDLE :menuselection:`Help --> About IDLE` dialog." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:981 +msgid "importlib" +msgstr "importlib" + +#: ../Doc/whatsnew/3.4.rst:983 +msgid "" +"The :class:`~importlib.abc.InspectLoader` ABC defines a new method, :meth:" +"`~importlib.abc.InspectLoader.source_to_code` that accepts source data and a " +"path and returns a code object. The default implementation is equivalent to " +"``compile(data, path, 'exec', dont_inherit=True)``. (Contributed by Eric " +"Snow and Brett Cannon in :issue:`15627`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:989 +msgid "" +":class:`~importlib.abc.InspectLoader` also now has a default implementation " +"for the :meth:`~importlib.abc.InspectLoader.get_code` method. However, it " +"will normally be desirable to override the default implementation for " +"performance reasons. (Contributed by Brett Cannon in :issue:`18072`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:994 +msgid "" +"The :func:`~importlib.reload` function has been moved from :mod:`imp` to :" +"mod:`importlib` as part of the :mod:`imp` module deprecation. (Contributed " +"by Berker Peksag in :issue:`18193`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:998 +msgid "" +":mod:`importlib.util` now has a :data:`~importlib.util.MAGIC_NUMBER` " +"attribute providing access to the bytecode version number. This replaces " +"the :func:`~imp.get_magic` function in the deprecated :mod:`imp` module. " +"(Contributed by Brett Cannon in :issue:`18192`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1003 +msgid "" +"New :mod:`importlib.util` functions :func:`~importlib.util." +"cache_from_source` and :func:`~importlib.util.source_from_cache` replace the " +"same-named functions in the deprecated :mod:`imp` module. (Contributed by " +"Brett Cannon in :issue:`18194`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1008 +msgid "" +"The :mod:`importlib` bootstrap :class:`.NamespaceLoader` now conforms to " +"the :class:`.InspectLoader` ABC, which means that ``runpy`` and ``python -" +"m`` can now be used with namespace packages. (Contributed by Brett Cannon " +"in :issue:`18058`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1013 +msgid "" +":mod:`importlib.util` has a new function :func:`~importlib.util." +"decode_source` that decodes source from bytes using universal newline " +"processing. This is useful for implementing :meth:`.InspectLoader." +"get_source` methods." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1017 +msgid "" +":class:`importlib.machinery.ExtensionFileLoader` now has a :meth:`~importlib." +"machinery.ExtensionFileLoader.get_filename` method. This was inadvertently " +"omitted in the original implementation. (Contributed by Eric Snow in :issue:" +"`19152`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1024 +msgid "inspect" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1026 +msgid "" +"The :mod:`inspect` module now offers a basic :ref:`command line interface " +"` to quickly display source code and other information " +"for modules, classes and functions. (Contributed by Claudiu Popa and Nick " +"Coghlan in :issue:`18626`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1031 +msgid "" +":func:`~inspect.unwrap` makes it easy to unravel wrapper function chains " +"created by :func:`functools.wraps` (and any other API that sets the " +"``__wrapped__`` attribute on a wrapper function). (Contributed by Daniel " +"Urban, Aaron Iles and Nick Coghlan in :issue:`13266`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1036 +msgid "" +"As part of the implementation of the new :mod:`enum` module, the :mod:" +"`inspect` module now has substantially better support for custom ``__dir__`` " +"methods and dynamic class attributes provided through metaclasses. " +"(Contributed by Ethan Furman in :issue:`18929` and :issue:`19030`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1042 +msgid "" +":func:`~inspect.getfullargspec` and :func:`~inspect.getargspec` now use the :" +"func:`~inspect.signature` API. This allows them to support a much broader " +"range of callables, including those with ``__signature__`` attributes, those " +"with metadata provided by argument clinic, :func:`functools.partial` objects " +"and more. Note that, unlike :func:`~inspect.signature`, these functions " +"still ignore ``__wrapped__`` attributes, and report the already bound first " +"argument for bound methods, so it is still necessary to update your code to " +"use :func:`~inspect.signature` directly if those features are desired. " +"(Contributed by Yury Selivanov in :issue:`17481`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1053 +msgid "" +":func:`~inspect.signature` now supports duck types of CPython functions, " +"which adds support for functions compiled with Cython. (Contributed by " +"Stefan Behnel and Yury Selivanov in :issue:`17159`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1059 +msgid "ipaddress" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1061 +msgid "" +":mod:`ipaddress` was added to the standard library in Python 3.3 as a :term:" +"`provisional API`. With the release of Python 3.4, this qualification has " +"been removed: :mod:`ipaddress` is now considered a stable API, covered by " +"the normal standard library requirements to maintain backwards compatibility." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1067 +msgid "" +"A new :attr:`~ipaddress.IPv4Address.is_global` property is ``True`` if an " +"address is globally routeable. (Contributed by Peter Moody in :issue:" +"`17400`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1073 +msgid "logging" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1075 +msgid "" +"The :class:`~logging.handlers.TimedRotatingFileHandler` has a new *atTime* " +"parameter that can be used to specify the time of day when rollover should " +"happen. (Contributed by Ronald Oussoren in :issue:`9556`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1079 +msgid "" +":class:`~logging.handlers.SocketHandler` and :class:`~logging.handlers." +"DatagramHandler` now support Unix domain sockets (by setting *port* to " +"``None``). (Contributed by Vinay Sajip in commit ce46195b56a9.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1084 +msgid "" +":func:`~logging.config.fileConfig` now accepts a :class:`configparser." +"RawConfigParser` subclass instance for the *fname* parameter. This " +"facilitates using a configuration file when logging configuration is just a " +"part of the overall application configuration, or where the application " +"modifies the configuration before passing it to :func:`~logging.config." +"fileConfig`. (Contributed by Vinay Sajip in :issue:`16110`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1092 +msgid "" +"Logging configuration data received from a socket via the :func:`logging." +"config.listen` function can now be validated before being processed by " +"supplying a verification function as the argument to the new *verify* " +"keyword argument. (Contributed by Vinay Sajip in :issue:`15452`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1101 +msgid "marshal" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1103 +msgid "" +"The default :mod:`marshal` version has been bumped to 3. The code " +"implementing the new version restores the Python2 behavior of recording only " +"one copy of interned strings and preserving the interning on " +"deserialization, and extends this \"one copy\" ability to any object type " +"(including handling recursive references). This reduces both the size of ``." +"pyc`` files and the amount of memory a module occupies in memory when it is " +"loaded from a ``.pyc`` (or ``.pyo``) file. (Contributed by Kristján Valur " +"Jónsson in :issue:`16475`, with additional speedups by Antoine Pitrou in :" +"issue:`19219`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1114 +msgid "mmap" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1116 +msgid "" +"mmap objects can now be :mod:`weakref`\\ ed. (Contributed by Valerie " +"Lambert in :issue:`4885`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1121 +msgid "multiprocessing" +msgstr "multiprocessing" + +#: ../Doc/whatsnew/3.4.rst:1125 +msgid "" +"On Unix two new :ref:`start methods `, " +"``spawn`` and ``forkserver``, have been added for starting processes using :" +"mod:`multiprocessing`. These make the mixing of processes with threads more " +"robust, and the ``spawn`` method matches the semantics that multiprocessing " +"has always used on Windows. New function :func:`~multiprocessing." +"get_all_start_methods` reports all start methods available on the platform, :" +"func:`~multiprocessing.get_start_method` reports the current start method, " +"and :func:`~multiprocessing.set_start_method` sets the start method. " +"(Contributed by Richard Oudkerk in :issue:`8713`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1135 +msgid "" +":mod:`multiprocessing` also now has the concept of a ``context``, which " +"determines how child processes are created. New function :func:" +"`~multiprocessing.get_context` returns a context that uses a specified start " +"method. It has the same API as the :mod:`multiprocessing` module itself, so " +"you can use it to create :class:`~multiprocessing.pool.Pool`\\ s and other " +"objects that will operate within that context. This allows a framework and " +"an application or different parts of the same application to use " +"multiprocessing without interfering with each other. (Contributed by " +"Richard Oudkerk in :issue:`18999`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1145 +msgid "" +"Except when using the old *fork* start method, child processes no longer " +"inherit unneeded handles/file descriptors from their parents (part of :issue:" +"`8713`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1149 +msgid "" +":mod:`multiprocessing` now relies on :mod:`runpy` (which implements the ``-" +"m`` switch) to initialise ``__main__`` appropriately in child processes when " +"using the ``spawn`` or ``forkserver`` start methods. This resolves some edge " +"cases where combining multiprocessing, the ``-m`` command line switch, and " +"explicit relative imports could cause obscure failures in child processes. " +"(Contributed by Nick Coghlan in :issue:`19946`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1158 +msgid "operator" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1160 +msgid "" +"New function :func:`~operator.length_hint` provides an implementation of the " +"specification for how the :meth:`~object.__length_hint__` special method " +"should be used, as part of the :pep:`424` formal specification of this " +"language feature. (Contributed by Armin Ronacher in :issue:`16148`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1165 +msgid "" +"There is now a pure-python version of the :mod:`operator` module available " +"for reference and for use by alternate implementations of Python. " +"(Contributed by Zachary Ware in :issue:`16694`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1171 +msgid "os" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1173 +msgid "" +"There are new functions to get and set the :ref:`inheritable flag " +"` of a file descriptor (:func:`os.get_inheritable`, :func:" +"`os.set_inheritable`) or a Windows handle (:func:`os." +"get_handle_inheritable`, :func:`os.set_handle_inheritable`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1178 +msgid "" +"New function :func:`~os.cpu_count` reports the number of CPUs available on " +"the platform on which Python is running (or ``None`` if the count can't be " +"determined). The :func:`multiprocessing.cpu_count` function is now " +"implemented in terms of this function). (Contributed by Trent Nelson, " +"Yogesh Chaudhari, Victor Stinner, and Charles-François Natali in :issue:" +"`17914`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1184 +msgid "" +":func:`os.path.samestat` is now available on the Windows platform (and the :" +"func:`os.path.samefile` implementation is now shared between Unix and " +"Windows). (Contributed by Brian Curtin in :issue:`11939`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1188 +msgid "" +":func:`os.path.ismount` now recognizes volumes mounted below a drive root on " +"Windows. (Contributed by Tim Golden in :issue:`9035`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1191 +msgid "" +":func:`os.open` supports two new flags on platforms that provide them, :data:" +"`~os.O_PATH` (un-opened file descriptor), and :data:`~os.O_TMPFILE` (unnamed " +"temporary file; as of 3.4.0 release available only on Linux systems with a " +"kernel version of 3.11 or newer that have uapi headers). (Contributed by " +"Christian Heimes in :issue:`18673` and Benjamin Peterson, respectively.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1199 +msgid "pdb" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1201 +msgid "" +":mod:`pdb` has been enhanced to handle generators, :keyword:`yield`, and " +"``yield from`` in a more useful fashion. This is especially helpful when " +"debugging :mod:`asyncio` based programs. (Contributed by Andrew Svetlov and " +"Xavier de Gaye in :issue:`16596`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1206 +msgid "" +"The ``print`` command has been removed from :mod:`pdb`, restoring access to " +"the Python :func:`print` function from the pdb command line. Python2's " +"``pdb`` did not have a ``print`` command; instead, entering ``print`` " +"executed the ``print`` statement. In Python3 ``print`` was mistakenly made " +"an alias for the pdb :pdbcmd:`p` command. ``p``, however, prints the " +"``repr`` of its argument, not the ``str`` like the Python2 ``print`` command " +"did. Worse, the Python3 ``pdb print`` command shadowed the Python3 " +"``print`` function, making it inaccessible at the ``pdb`` prompt. " +"(Contributed by Connor Osborn in :issue:`18764`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1220 +msgid "pickle" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1222 +msgid "" +":mod:`pickle` now supports (but does not use by default) a new pickle " +"protocol, protocol 4. This new protocol addresses a number of issues that " +"were present in previous protocols, such as the serialization of nested " +"classes, very large strings and containers, and classes whose :meth:" +"`__new__` method takes keyword-only arguments. It also provides some " +"efficiency improvements." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1230 +msgid ":pep:`3154` -- Pickle protocol 4" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1231 +msgid "PEP written by Antoine Pitrou and implemented by Alexandre Vassalotti." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1235 +msgid "plistlib" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1237 +msgid "" +":mod:`plistlib` now has an API that is similar to the standard pattern for " +"stdlib serialization protocols, with new :func:`~plistlib.load`, :func:" +"`~plistlib.dump`, :func:`~plistlib.loads`, and :func:`~plistlib.dumps` " +"functions. (The older API is now deprecated.) In addition to the already " +"supported XML plist format (:data:`~plistlib.FMT_XML`), it also now supports " +"the binary plist format (:data:`~plistlib.FMT_BINARY`). (Contributed by " +"Ronald Oussoren and others in :issue:`14455`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1247 +msgid "poplib" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1249 +msgid "" +"Two new methods have been added to :mod:`poplib`: :meth:`~poplib.POP3.capa`, " +"which returns the list of capabilities advertised by the POP server, and :" +"meth:`~poplib.POP3.stls`, which switches a clear-text POP3 session into an " +"encrypted POP3 session if the POP server supports it. (Contributed by " +"Lorenzo Catucci in :issue:`4473`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1257 +msgid "pprint" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1259 +msgid "" +"The :mod:`pprint` module's :class:`~pprint.PrettyPrinter` class and its :" +"func:`~pprint.pformat`, and :func:`~pprint.pprint` functions have a new " +"option, *compact*, that controls how the output is formatted. Currently " +"setting *compact* to ``True`` means that sequences will be printed with as " +"many sequence elements as will fit within *width* on each (indented) line. " +"(Contributed by Serhiy Storchaka in :issue:`19132`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1266 +msgid "" +"Long strings are now wrapped using Python's normal line continuation " +"syntax. (Contributed by Antoine Pitrou in :issue:`17150`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1271 +msgid "pty" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1273 +msgid "" +":func:`pty.spawn` now returns the status value from :func:`os.waitpid` on " +"the child process, instead of ``None``. (Contributed by Gregory P. Smith.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1278 +msgid "pydoc" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1280 +msgid "" +"The :mod:`pydoc` module is now based directly on the :func:`inspect." +"signature` introspection API, allowing it to provide signature information " +"for a wider variety of callable objects. This change also means that " +"``__wrapped__`` attributes are now taken into account when displaying help " +"information. (Contributed by Larry Hastings in :issue:`19674`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1286 +msgid "" +"The :mod:`pydoc` module no longer displays the ``self`` parameter for " +"already bound methods. Instead, it aims to always display the exact current " +"signature of the supplied callable. (Contributed by Larry Hastings in :" +"issue:`20710`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1291 +msgid "" +"In addition to the changes that have been made to :mod:`pydoc` directly, its " +"handling of custom ``__dir__`` methods and various descriptor behaviours has " +"also been improved substantially by the underlying changes in the :mod:" +"`inspect` module." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1296 +msgid "" +"As the :func:`help` builtin is based on :mod:`pydoc`, the above changes also " +"affect the behaviour of :func:`help`." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1301 +msgid "re" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1303 +msgid "" +"New :func:`~re.fullmatch` function and :meth:`.regex.fullmatch` method " +"anchor the pattern at both ends of the string to match. This provides a way " +"to be explicit about the goal of the match, which avoids a class of subtle " +"bugs where ``$`` characters get lost during code changes or the addition of " +"alternatives to an existing regular expression. (Contributed by Matthew " +"Barnett in :issue:`16203`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1310 +msgid "" +"The repr of :ref:`regex objects ` now includes the pattern and " +"the flags; the repr of :ref:`match objects ` now includes the " +"start, end, and the part of the string that matched. (Contributed by Hugo " +"Lopes Tavares and Serhiy Storchaka in :issue:`13592` and :issue:`17087`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1318 +msgid "resource" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1320 +msgid "" +"New :func:`~resource.prlimit` function, available on Linux platforms with a " +"kernel version of 2.6.36 or later and glibc of 2.13 or later, provides the " +"ability to query or set the resource limits for processes other than the one " +"making the call. (Contributed by Christian Heimes in :issue:`16595`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1325 +msgid "" +"On Linux kernel version 2.6.36 or later, there are also some new Linux " +"specific constants: :attr:`~resource.RLIMIT_MSGQUEUE`, :attr:`~resource." +"RLIMIT_NICE`, :attr:`~resource.RLIMIT_RTPRIO`, :attr:`~resource." +"RLIMIT_RTTIME`, and :attr:`~resource.RLIMIT_SIGPENDING`. (Contributed by " +"Christian Heimes in :issue:`19324`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1331 +msgid "" +"On FreeBSD version 9 and later, there some new FreeBSD specific constants: :" +"attr:`~resource.RLIMIT_SBSIZE`, :attr:`~resource.RLIMIT_SWAP`, and :attr:" +"`~resource.RLIMIT_NPTS`. (Contributed by Claudiu Popa in :issue:`19343`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1338 +msgid "select" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1340 +msgid "" +":class:`~select.epoll` objects now support the context management protocol. " +"When used in a :keyword:`with` statement, the :meth:`~select.epoll.close` " +"method will be called automatically at the end of the block. (Contributed " +"by Serhiy Storchaka in :issue:`16488`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1345 +msgid "" +":class:`~select.devpoll` objects now have :meth:`~select.devpoll.fileno` " +"and :meth:`~select.devpoll.close` methods, as well as a new attribute :attr:" +"`~select.devpoll.closed`. (Contributed by Victor Stinner in :issue:`18794`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1352 +msgid "shelve" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1354 +msgid "" +":class:`~shelve.Shelf` instances may now be used in :keyword:`with` " +"statements, and will be automatically closed at the end of the :keyword:`!" +"with` block. (Contributed by Filip Gruszczyński in :issue:`13896`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1360 +msgid "shutil" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1362 +msgid "" +":func:`~shutil.copyfile` now raises a specific :exc:`~shutil.Error` " +"subclass, :exc:`~shutil.SameFileError`, when the source and destination are " +"the same file, which allows an application to take appropriate action on " +"this specific error. (Contributed by Atsuo Ishimoto and Hynek Schlawack in :" +"issue:`1492704`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1370 +msgid "smtpd" +msgstr "smtpd" + +#: ../Doc/whatsnew/3.4.rst:1372 +msgid "" +"The :class:`~smtpd.SMTPServer` and :class:`~smtpd.SMTPChannel` classes now " +"accept a *map* keyword argument which, if specified, is passed in to :class:" +"`asynchat.async_chat` as its *map* argument. This allows an application to " +"avoid affecting the global socket map. (Contributed by Vinay Sajip in :" +"issue:`11959`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1380 +msgid "smtplib" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1382 +msgid "" +":exc:`~smtplib.SMTPException` is now a subclass of :exc:`OSError`, which " +"allows both socket level errors and SMTP protocol level errors to be caught " +"in one try/except statement by code that only cares whether or not an error " +"occurred. (Contributed by Ned Jackson Lovely in :issue:`2118`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1389 +msgid "socket" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1391 +msgid "" +"The socket module now supports the :data:`~socket.CAN_BCM` protocol on " +"platforms that support it. (Contributed by Brian Thorne in :issue:`15359`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1394 +msgid "" +"Socket objects have new methods to get or set their :ref:`inheritable flag " +"`, :meth:`~socket.socket.get_inheritable` and :meth:`~socket." +"socket.set_inheritable`." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1398 +msgid "" +"The ``socket.AF_*`` and ``socket.SOCK_*`` constants are now enumeration " +"values using the new :mod:`enum` module. This allows meaningful names to be " +"printed during debugging, instead of integer \"magic numbers\"." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1402 +msgid "The :data:`~socket.AF_LINK` constant is now available on BSD and OSX." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1404 +msgid "" +":func:`~socket.inet_pton` and :func:`~socket.inet_ntop` are now supported on " +"Windows. (Contributed by Atsuo Ishimoto in :issue:`7171`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1409 +msgid "sqlite3" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1411 +msgid "" +"A new boolean parameter to the :func:`~sqlite3.connect` function, *uri*, can " +"be used to indicate that the *database* parameter is a ``uri`` (see the " +"`SQLite URI documentation `_). " +"(Contributed by poq in :issue:`13773`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1418 +msgid "ssl" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1422 +msgid "" +":data:`~ssl.PROTOCOL_TLSv1_1` and :data:`~ssl.PROTOCOL_TLSv1_2` (TLSv1.1 and " +"TLSv1.2 support) have been added; support for these protocols is only " +"available if Python is linked with OpenSSL 1.0.1 or later. (Contributed by " +"Michele Orrù and Antoine Pitrou in :issue:`16692`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1429 +msgid "" +"New function :func:`~ssl.create_default_context` provides a standard way to " +"obtain an :class:`~ssl.SSLContext` whose settings are intended to be a " +"reasonable balance between compatibility and security. These settings are " +"more stringent than the defaults provided by the :class:`~ssl.SSLContext` " +"constructor, and may be adjusted in the future, without prior deprecation, " +"if best-practice security requirements change. The new recommended best " +"practice for using stdlib libraries that support SSL is to use :func:`~ssl." +"create_default_context` to obtain an :class:`~ssl.SSLContext` object, modify " +"it if needed, and then pass it as the *context* argument of the appropriate " +"stdlib API. (Contributed by Christian Heimes in :issue:`19689`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1441 +msgid "" +":class:`~ssl.SSLContext` method :meth:`~ssl.SSLContext." +"load_verify_locations` accepts a new optional argument *cadata*, which can " +"be used to provide PEM or DER encoded certificates directly via strings or " +"bytes, respectively. (Contributed by Christian Heimes in :issue:`18138`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1446 +msgid "" +"New function :func:`~ssl.get_default_verify_paths` returns a named tuple of " +"the paths and environment variables that the :meth:`~ssl.SSLContext." +"set_default_verify_paths` method uses to set OpenSSL's default ``cafile`` " +"and ``capath``. This can be an aid in debugging default verification " +"issues. (Contributed by Christian Heimes in :issue:`18143`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1453 +msgid "" +":class:`~ssl.SSLContext` has a new method, :meth:`~ssl.SSLContext." +"cert_store_stats`, that reports the number of loaded ``X.509`` certs, " +"``X.509 CA`` certs, and certificate revocation lists (``crl``\\ s), as well " +"as a :meth:`~ssl.SSLContext.get_ca_certs` method that returns a list of the " +"loaded ``CA`` certificates. (Contributed by Christian Heimes in :issue:" +"`18147`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1460 +msgid "" +"If OpenSSL 0.9.8 or later is available, :class:`~ssl.SSLContext` has a new " +"attribute :attr:`~ssl.SSLContext.verify_flags` that can be used to control " +"the certificate verification process by setting it to some combination of " +"the new constants :data:`~ssl.VERIFY_DEFAULT`, :data:`~ssl." +"VERIFY_CRL_CHECK_LEAF`, :data:`~ssl.VERIFY_CRL_CHECK_CHAIN`, or :data:`~ssl." +"VERIFY_X509_STRICT`. OpenSSL does not do any CRL verification by default. " +"(Contributed by Christien Heimes in :issue:`8813`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1468 +msgid "" +"New :class:`~ssl.SSLContext` method :meth:`~ssl.SSLContext." +"load_default_certs` loads a set of default \"certificate authority\" (CA) " +"certificates from default locations, which vary according to the platform. " +"It can be used to load both TLS web server authentication certificates " +"(``purpose=``:data:`~ssl.Purpose.SERVER_AUTH`) for a client to use to verify " +"a server, and certificates for a server to use in verifying client " +"certificates (``purpose=``:data:`~ssl.Purpose.CLIENT_AUTH`). (Contributed " +"by Christian Heimes in :issue:`19292`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1479 +msgid "" +"Two new windows-only functions, :func:`~ssl.enum_certificates` and :func:" +"`~ssl.enum_crls` provide the ability to retrieve certificates, certificate " +"information, and CRLs from the Windows cert store. (Contributed by " +"Christian Heimes in :issue:`17134`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1486 +msgid "" +"Support for server-side SNI (Server Name Indication) using the new :meth:" +"`ssl.SSLContext.set_servername_callback` method. (Contributed by Daniel " +"Black in :issue:`8109`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1490 +msgid "" +"The dictionary returned by :meth:`.SSLSocket.getpeercert` contains " +"additional ``X509v3`` extension items: ``crlDistributionPoints``, " +"``calIssuers``, and ``OCSP`` URIs. (Contributed by Christian Heimes in :" +"issue:`18379`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1496 +msgid "stat" +msgstr "stat" + +#: ../Doc/whatsnew/3.4.rst:1498 +msgid "" +"The :mod:`stat` module is now backed by a C implementation in :mod:`_stat`. " +"A C implementation is required as most of the values aren't standardized and " +"are platform-dependent. (Contributed by Christian Heimes in :issue:`11016`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1502 +msgid "" +"The module supports new :mod:`~stat.ST_MODE` flags, :mod:`~stat.S_IFDOOR`, :" +"attr:`~stat.S_IFPORT`, and :attr:`~stat.S_IFWHT`. (Contributed by Christian " +"Hiemes in :issue:`11016`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1508 +msgid "struct" +msgstr "struct" + +#: ../Doc/whatsnew/3.4.rst:1510 +msgid "" +"New function :mod:`~struct.iter_unpack` and a new :meth:`struct.Struct." +"iter_unpack` method on compiled formats provide streamed unpacking of a " +"buffer containing repeated instances of a given format of data. (Contributed " +"by Antoine Pitrou in :issue:`17804`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1517 +msgid "subprocess" +msgstr "subprocess" + +#: ../Doc/whatsnew/3.4.rst:1519 +msgid "" +":func:`~subprocess.check_output` now accepts an *input* argument that can be " +"used to provide the contents of ``stdin`` for the command that is run. " +"(Contributed by Zack Weinberg in :issue:`16624`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1523 +msgid "" +":func:`~subprocess.getstatus` and :func:`~subprocess.getstatusoutput` now " +"work on Windows. This change was actually inadvertently made in 3.3.4. " +"(Contributed by Tim Golden in :issue:`10197`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1529 +msgid "sunau" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1531 +msgid "" +"The :meth:`~sunau.getparams` method now returns a namedtuple rather than a " +"plain tuple. (Contributed by Claudiu Popa in :issue:`18901`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1534 +msgid "" +":meth:`sunau.open` now supports the context management protocol: when used " +"in a :keyword:`with` block, the ``close`` method of the returned object will " +"be called automatically at the end of the block. (Contributed by Serhiy " +"Storchaka in :issue:`18878`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1539 +msgid "" +":meth:`.AU_write.setsampwidth` now supports 24 bit samples, thus adding " +"support for writing 24 sample using the module. (Contributed by Serhiy " +"Storchaka in :issue:`19261`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1543 +msgid "" +"The :meth:`~sunau.AU_write.writeframesraw` and :meth:`~sunau.AU_write." +"writeframes` methods now accept any :term:`bytes-like object`. (Contributed " +"by Serhiy Storchaka in :issue:`8311`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1549 +msgid "sys" +msgstr "sys" + +#: ../Doc/whatsnew/3.4.rst:1551 +msgid "" +"New function :func:`sys.getallocatedblocks` returns the current number of " +"blocks allocated by the interpreter. (In CPython with the default ``--with-" +"pymalloc`` setting, this is allocations made through the :c:func:" +"`PyObject_Malloc` API.) This can be useful for tracking memory leaks, " +"especially if automated via a test suite. (Contributed by Antoine Pitrou " +"in :issue:`13390`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1558 +msgid "" +"When the Python interpreter starts in :ref:`interactive mode `, it checks for an :data:`~sys.__interactivehook__` attribute " +"on the :mod:`sys` module. If the attribute exists, its value is called with " +"no arguments just before interactive mode is started. The check is made " +"after the :envvar:`PYTHONSTARTUP` file is read, so it can be set there. " +"The :mod:`site` module :ref:`sets it ` to a function " +"that enables tab completion and history saving (in :file:`~/.python-" +"history`) if the platform supports :mod:`readline`. If you do not want this " +"(new) behavior, you can override it in :envvar:`PYTHONSTARTUP`, :mod:" +"`sitecustomize`, or :mod:`usercustomize` by deleting this attribute from :" +"mod:`sys` (or setting it to some other callable). (Contributed by Éric " +"Araujo and Antoine Pitrou in :issue:`5845`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1573 +msgid "tarfile" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1575 +msgid "" +"The :mod:`tarfile` module now supports a simple :ref:`tarfile-commandline` " +"when called as a script directly or via ``-m``. This can be used to create " +"and extract tarfile archives. (Contributed by Berker Peksag in :issue:" +"`13477`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1581 +msgid "textwrap" +msgstr "textwrap" + +#: ../Doc/whatsnew/3.4.rst:1583 +msgid "" +"The :class:`~textwrap.TextWrapper` class has two new attributes/constructor " +"arguments: :attr:`~textwrap.TextWrapper.max_lines`, which limits the number " +"of lines in the output, and :attr:`~textwrap.TextWrapper.placeholder`, which " +"is a string that will appear at the end of the output if it has been " +"truncated because of *max_lines*. Building on these capabilities, a new " +"convenience function :func:`~textwrap.shorten` collapses all of the " +"whitespace in the input to single spaces and produces a single line of a " +"given *width* that ends with the *placeholder* (by default, ``[...]``). " +"(Contributed by Antoine Pitrou and Serhiy Storchaka in :issue:`18585` and :" +"issue:`18725`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1595 +msgid "threading" +msgstr "threading" + +#: ../Doc/whatsnew/3.4.rst:1597 +msgid "" +"The :class:`~threading.Thread` object representing the main thread can be " +"obtained from the new :func:`~threading.main_thread` function. In normal " +"conditions this will be the thread from which the Python interpreter was " +"started. (Contributed by Andrew Svetlov in :issue:`18882`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1604 +msgid "traceback" +msgstr "traceback" + +#: ../Doc/whatsnew/3.4.rst:1606 +msgid "" +"A new :func:`traceback.clear_frames` function takes a traceback object and " +"clears the local variables in all of the frames it references, reducing the " +"amount of memory consumed. (Contributed by Andrew Kuchling in :issue:" +"`1565525`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1613 +msgid "types" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1615 +msgid "" +"A new :func:`~types.DynamicClassAttribute` descriptor provides a way to " +"define an attribute that acts normally when looked up through an instance " +"object, but which is routed to the *class* ``__getattr__`` when looked up " +"through the class. This allows one to have properties active on a class, " +"and have virtual attributes on the class with the same name (see :mod:`Enum` " +"for an example). (Contributed by Ethan Furman in :issue:`19030`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1624 +msgid "urllib" +msgstr "urllib" + +#: ../Doc/whatsnew/3.4.rst:1626 +msgid "" +":mod:`urllib.request` now supports ``data:`` URLs via the :class:`~urllib." +"request.DataHandler` class. (Contributed by Mathias Panzenböck in :issue:" +"`16423`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1630 +msgid "" +"The http method that will be used by a :class:`~urllib.request.Request` " +"class can now be specified by setting a :class:`~urllib.request.Request." +"method` class attribute on the subclass. (Contributed by Jason R Coombs in :" +"issue:`18978`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1635 +msgid "" +":class:`~urllib.request.Request` objects are now reusable: if the :attr:" +"`~urllib.request.Request.full_url` or :attr:`~urllib.request.Request.data` " +"attributes are modified, all relevant internal properties are updated. This " +"means, for example, that it is now possible to use the same :class:`~urllib." +"request.Request` object in more than one :meth:`.OpenerDirector.open` call " +"with different *data* arguments, or to modify a :class:`~urllib.request." +"Request`\\ 's ``url`` rather than recomputing it from scratch. There is " +"also a new :meth:`~urllib.request.Request.remove_header` method that can be " +"used to remove headers from a :class:`~urllib.request.Request`. " +"(Contributed by Alexey Kachayev in :issue:`16464`, Daniel Wozniak in :issue:" +"`17485`, and Damien Brecht and Senthil Kumaran in :issue:`17272`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1648 +msgid "" +":class:`~urllib.error.HTTPError` objects now have a :attr:`~urllib.error." +"HTTPError.headers` attribute that provides access to the HTTP response " +"headers associated with the error. (Contributed by Berker Peksag in :issue:" +"`15701`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1655 +msgid "unittest" +msgstr "unittest" + +#: ../Doc/whatsnew/3.4.rst:1657 +msgid "" +"The :class:`~unittest.TestCase` class has a new method, :meth:`~unittest." +"TestCase.subTest`, that produces a context manager whose :keyword:`with` " +"block becomes a \"sub-test\". This context manager allows a test method to " +"dynamically generate subtests by, say, calling the ``subTest`` context " +"manager inside a loop. A single test method can thereby produce an " +"indefinite number of separately-identified and separately-counted tests, all " +"of which will run even if one or more of them fail. For example::" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1671 +msgid "" +"will result in six subtests, each identified in the unittest verbose output " +"with a label consisting of the variable name ``i`` and a particular value " +"for that variable (``i=0``, ``i=1``, etc). See :ref:`subtests` for the full " +"version of this example. (Contributed by Antoine Pitrou in :issue:`16997`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1676 +msgid "" +":func:`unittest.main` now accepts an iterable of test names for " +"*defaultTest*, where previously it only accepted a single test name as a " +"string. (Contributed by Jyrki Pulliainen in :issue:`15132`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1680 +msgid "" +"If :class:`~unittest.SkipTest` is raised during test discovery (that is, at " +"the module level in the test file), it is now reported as a skip instead of " +"an error. (Contributed by Zach Ware in :issue:`16935`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1684 +msgid "" +":meth:`~unittest.TestLoader.discover` now sorts the discovered files to " +"provide consistent test ordering. (Contributed by Martin Melin and Jeff " +"Ramnani in :issue:`16709`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1688 +msgid "" +":class:`~unittest.TestSuite` now drops references to tests as soon as the " +"test has been run, if the test is successful. On Python interpreters that " +"do garbage collection, this allows the tests to be garbage collected if " +"nothing else is holding a reference to the test. It is possible to override " +"this behavior by creating a :class:`~unittest.TestSuite` subclass that " +"defines a custom ``_removeTestAtIndex`` method. (Contributed by Tom " +"Wardill, Matt McClure, and Andrew Svetlov in :issue:`11798`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1696 +msgid "" +"A new test assertion context-manager, :meth:`~unittest.TestCase.assertLogs`, " +"will ensure that a given block of code emits a log message using the :mod:" +"`logging` module. By default the message can come from any logger and have " +"a priority of ``INFO`` or higher, but both the logger name and an " +"alternative minimum logging level may be specified. The object returned by " +"the context manager can be queried for the :class:`~logging.LogRecord`\\ s " +"and/or formatted messages that were logged. (Contributed by Antoine Pitrou " +"in :issue:`18937`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1705 +msgid "" +"Test discovery now works with namespace packages (Contributed by Claudiu " +"Popa in :issue:`17457`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1708 +msgid "" +":mod:`unittest.mock` objects now inspect their specification signatures when " +"matching calls, which means an argument can now be matched by either " +"position or name, instead of only by position. (Contributed by Antoine " +"Pitrou in :issue:`17015`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1713 +msgid "" +":func:`~mock.mock_open` objects now have ``readline`` and ``readlines`` " +"methods. (Contributed by Toshio Kuratomi in :issue:`17467`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1718 +msgid "venv" +msgstr "venv" + +#: ../Doc/whatsnew/3.4.rst:1720 +msgid "" +":mod:`venv` now includes activation scripts for the ``csh`` and ``fish`` " +"shells. (Contributed by Andrew Svetlov in :issue:`15417`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1723 +msgid "" +":class:`~venv.EnvBuilder` and the :func:`~venv.create` convenience function " +"take a new keyword argument *with_pip*, which defaults to ``False``, that " +"controls whether or not :class:`~venv.EnvBuilder` ensures that ``pip`` is " +"installed in the virtual environment. (Contributed by Nick Coghlan in :" +"issue:`19552` as part of the :pep:`453` implementation.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1731 +msgid "wave" +msgstr "wave" + +#: ../Doc/whatsnew/3.4.rst:1733 +msgid "" +"The :meth:`~wave.getparams` method now returns a namedtuple rather than a " +"plain tuple. (Contributed by Claudiu Popa in :issue:`17487`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1736 +msgid "" +":meth:`wave.open` now supports the context management protocol. " +"(Contributed by Claudiu Popa in :issue:`17616`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1739 +msgid "" +":mod:`wave` can now :ref:`write output to unseekable files `. (Contributed by David Jones, Guilherme Polo, and Serhiy " +"Storchaka in :issue:`5202`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1743 +msgid "" +"The :meth:`~wave.Wave_write.writeframesraw` and :meth:`~wave.Wave_write." +"writeframes` methods now accept any :term:`bytes-like object`. (Contributed " +"by Serhiy Storchaka in :issue:`8311`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1749 +msgid "weakref" +msgstr "weakref" + +#: ../Doc/whatsnew/3.4.rst:1751 +msgid "" +"New :class:`~weakref.WeakMethod` class simulates weak references to bound " +"methods. (Contributed by Antoine Pitrou in :issue:`14631`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1754 +msgid "" +"New :class:`~weakref.finalize` class makes it possible to register a " +"callback to be invoked when an object is garbage collected, without needing " +"to carefully manage the lifecycle of the weak reference itself. " +"(Contributed by Richard Oudkerk in :issue:`15528`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1759 +msgid "" +"The callback, if any, associated with a :class:`~weakref.ref` is now exposed " +"via the :attr:`~weakref.ref.__callback__` attribute. (Contributed by Mark " +"Dickinson in :issue:`17643`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1765 +msgid "xml.etree" +msgstr "xml.etree" + +#: ../Doc/whatsnew/3.4.rst:1767 +msgid "" +"A new parser, :class:`~xml.etree.ElementTree.XMLPullParser`, allows a non-" +"blocking applications to parse XML documents. An example can be seen at :" +"ref:`elementtree-pull-parsing`. (Contributed by Antoine Pitrou in :issue:" +"`17741`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1772 +msgid "" +"The :mod:`xml.etree.ElementTree` :func:`~xml.etree.ElementTree.tostring` " +"and :func:`~xml.etree.ElementTree.tostringlist` functions, and the :class:" +"`~xml.etree.ElementTree.ElementTree` :meth:`~xml.etree.ElementTree." +"ElementTree.write` method, now have a *short_empty_elements* :ref:`keyword-" +"only parameter ` providing control over whether " +"elements with no content are written in abbreviated (````) or " +"expanded (````) form. (Contributed by Ariel Poliak and Serhiy " +"Storchaka in :issue:`14377`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1783 +msgid "zipfile" +msgstr "zipfile" + +#: ../Doc/whatsnew/3.4.rst:1785 +msgid "" +"The :meth:`~zipfile.PyZipFile.writepy` method of the :class:`~zipfile." +"PyZipFile` class has a new *filterfunc* option that can be used to control " +"which directories and files are added to the archive. For example, this " +"could be used to exclude test files from the archive. (Contributed by " +"Christian Tismer in :issue:`19274`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1791 +msgid "" +"The *allowZip64* parameter to :class:`~zipfile.ZipFile` and :class:`~zipfile." +"PyZipfile` is now ``True`` by default. (Contributed by William Mallard in :" +"issue:`17201`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1798 +msgid "CPython Implementation Changes" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1804 +msgid "PEP 445: Customization of CPython Memory Allocators" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1806 +msgid "" +":pep:`445` adds new C level interfaces to customize memory allocation in the " +"CPython interpreter." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1811 +msgid ":pep:`445` -- Add new APIs to customize Python memory allocators" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1818 +msgid "PEP 442: Safe Object Finalization" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1820 +msgid "" +":pep:`442` removes the current limitations and quirks of object finalization " +"in CPython. With it, objects with :meth:`__del__` methods, as well as " +"generators with :keyword:`finally` clauses, can be finalized when they are " +"part of a reference cycle." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1825 +msgid "" +"As part of this change, module globals are no longer forcibly set to :const:" +"`None` during interpreter shutdown in most cases, instead relying on the " +"normal operation of the cyclic garbage collector. This avoids a whole class " +"of interpreter-shutdown-time errors, usually involving ``__del__`` methods, " +"that have plagued Python since the cyclic GC was first introduced." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1834 +msgid ":pep:`442` -- Safe object finalization" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1841 +msgid "PEP 456: Secure and Interchangeable Hash Algorithm" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1843 +msgid "" +":pep:`456` follows up on earlier security fix work done on Python's hash " +"algorithm to address certain DOS attacks to which public facing APIs backed " +"by dictionary lookups may be subject. (See :issue:`14621` for the start of " +"the current round of improvements.) The PEP unifies CPython's hash code to " +"make it easier for a packager to substitute a different hash algorithm, and " +"switches Python's default implementation to a SipHash implementation on " +"platforms that have a 64 bit data type. Any performance differences in " +"comparison with the older FNV algorithm are trivial." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1852 +msgid "" +"The PEP adds additional fields to the :attr:`sys.hash_info` struct sequence " +"to describe the hash algorithm in use by the currently executing binary. " +"Otherwise, the PEP does not alter any existing CPython APIs." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1860 +msgid "PEP 436: Argument Clinic" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1862 +msgid "" +"\"Argument Clinic\" (:pep:`436`) is now part of the CPython build process " +"and can be used to simplify the process of defining and maintaining accurate " +"signatures for builtins and standard library extension modules implemented " +"in C." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1867 +msgid "" +"Some standard library extension modules have been converted to use Argument " +"Clinic in Python 3.4, and :mod:`pydoc` and :mod:`inspect` have been updated " +"accordingly." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1871 +msgid "" +"It is expected that signature metadata for programmatic introspection will " +"be added to additional callables implemented in C as part of Python 3.4 " +"maintenance releases." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1876 +msgid "" +"The Argument Clinic PEP is not fully up to date with the state of the " +"implementation. This has been deemed acceptable by the release manager and " +"core development team in this case, as Argument Clinic will not be made " +"available as a public API for third party use in Python 3.4." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1883 +msgid ":pep:`436` -- The Argument Clinic DSL" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1884 +msgid "PEP written and implemented by Larry Hastings." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1888 +msgid "Other Build and C API Changes" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1890 +msgid "" +"The new :c:func:`PyType_GetSlot` function has been added to the stable ABI, " +"allowing retrieval of function pointers from named type slots when using the " +"limited API. (Contributed by Martin von Löwis in :issue:`17162`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1894 +msgid "" +"The new :c:func:`Py_SetStandardStreamEncoding` pre-initialization API allows " +"applications embedding the CPython interpreter to reliably force a " +"particular encoding and error handler for the standard streams. (Contributed " +"by Bastien Montagne and Nick Coghlan in :issue:`16129`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1899 +msgid "" +"Most Python C APIs that don't mutate string arguments are now correctly " +"marked as accepting ``const char *`` rather than ``char *``. (Contributed " +"by Serhiy Storchaka in :issue:`1772673`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1903 +msgid "" +"A new shell version of ``python-config`` can be used even when a python " +"interpreter is not available (for example, in cross compilation scenarios)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1906 +msgid "" +":c:func:`PyUnicode_FromFormat` now supports width and precision " +"specifications for ``%s``, ``%A``, ``%U``, ``%V``, ``%S``, and ``%R``. " +"(Contributed by Ysj Ray and Victor Stinner in :issue:`7330`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1910 +msgid "" +"New function :c:func:`PyStructSequence_InitType2` supplements the existing :" +"c:func:`PyStructSequence_InitType` function. The difference is that it " +"returns ``0`` on success and ``-1`` on failure." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1914 +msgid "" +"The CPython source can now be compiled using the address sanity checking " +"features of recent versions of GCC and clang: the false alarms in the small " +"object allocator have been silenced. (Contributed by Dhiru Kholia in :issue:" +"`18596`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1919 +msgid "" +"The Windows build now uses `Address Space Layout Randomization `_ and `Data Execution " +"Prevention `_. " +"(Contributed by Christian Heimes in :issue:`16632`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1924 +msgid "" +"New function :c:func:`PyObject_LengthHint` is the C API equivalent of :func:" +"`operator.length_hint`. (Contributed by Armin Ronacher in :issue:`16148`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1932 +msgid "Other Improvements" +msgstr "Autres Améliorations" + +#: ../Doc/whatsnew/3.4.rst:1936 +msgid "" +"The :ref:`python ` command has a new :ref:`option `, ``-I``, which causes it to run in \"isolated mode\", " +"which means that :data:`sys.path` contains neither the script's directory " +"nor the user's ``site-packages`` directory, and all :envvar:`PYTHON*` " +"environment variables are ignored (it implies both ``-s`` and ``-E``). " +"Other restrictions may also be applied in the future, with the goal being to " +"isolate the execution of a script from the user's environment. This is " +"appropriate, for example, when Python is used to run a system script. On " +"most POSIX systems it can and should be used in the ``#!`` line of system " +"scripts. (Contributed by Christian Heimes in :issue:`16499`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1947 +msgid "" +"Tab-completion is now enabled by default in the interactive interpreter on " +"systems that support :mod:`readline`. History is also enabled by default, " +"and is written to (and read from) the file :file:`~/.python-history`. " +"(Contributed by Antoine Pitrou and Éric Araujo in :issue:`5845`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1952 +msgid "" +"Invoking the Python interpreter with ``--version`` now outputs the version " +"to standard output instead of standard error (:issue:`18338`). Similar " +"changes were made to :mod:`argparse` (:issue:`18920`) and other modules that " +"have script-like invocation capabilities (:issue:`18922`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1957 +msgid "" +"The CPython Windows installer now adds ``.py`` to the :envvar:`PATHEXT` " +"variable when extensions are registered, allowing users to run a python " +"script at the windows command prompt by just typing its name without the ``." +"py`` extension. (Contributed by Paul Moore in :issue:`18569`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1962 +msgid "" +"A new ``make`` target `coverage-report `_ will build python, run " +"the test suite, and generate an HTML coverage report for the C codebase " +"using ``gcov`` and `lcov `_." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1968 +msgid "" +"The ``-R`` option to the :ref:`python regression test suite ` now " +"also checks for memory allocation leaks, using :func:`sys." +"getallocatedblocks()`. (Contributed by Antoine Pitrou in :issue:`13390`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1973 +msgid "``python -m`` now works with namespace packages." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1975 +msgid "" +"The :mod:`stat` module is now implemented in C, which means it gets the " +"values for its constants from the C header files, instead of having the " +"values hard-coded in the python module as was previously the case." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1979 +msgid "" +"Loading multiple python modules from a single OS module (``.so``, ``.dll``) " +"now works correctly (previously it silently returned the first python module " +"in the file). (Contributed by Václav Šmilauer in :issue:`16421`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1983 +msgid "" +"A new opcode, :opcode:`LOAD_CLASSDEREF`, has been added to fix a bug in the " +"loading of free variables in class bodies that could be triggered by certain " +"uses of :ref:`__prepare__ `. (Contributed by Benjamin Peterson in :" +"issue:`17853`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1988 +msgid "" +"A number of MemoryError-related crashes were identified and fixed by Victor " +"Stinner using his :pep:`445`-based ``pyfailmalloc`` tool (:issue:`18408`, :" +"issue:`18520`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1992 +msgid "" +"The ``pyvenv`` command now accepts a ``--copies`` option to use copies " +"rather than symlinks even on systems where symlinks are the default. " +"(Contributed by Vinay Sajip in :issue:`18807`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:1996 +msgid "" +"The ``pyvenv`` command also accepts a ``--without-pip`` option to suppress " +"the otherwise-automatic bootstrapping of pip into the virtual environment. " +"(Contributed by Nick Coghlan in :issue:`19552` as part of the :pep:`453` " +"implementation.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2001 +msgid "" +"The encoding name is now optional in the value set for the :envvar:" +"`PYTHONIOENCODING` environment variable. This makes it possible to set just " +"the error handler, without changing the default encoding. (Contributed by " +"Serhiy Storchaka in :issue:`18818`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2006 +msgid "" +"The :mod:`bz2`, :mod:`lzma`, and :mod:`gzip` module ``open`` functions now " +"support ``x`` (exclusive creation) mode. (Contributed by Tim Heaney and " +"Vajrasky Kok in :issue:`19201`, :issue:`19222`, and :issue:`19223`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2012 +msgid "Significant Optimizations" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2014 +msgid "" +"The UTF-32 decoder is now 3x to 4x faster. (Contributed by Serhiy Storchaka " +"in :issue:`14625`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2017 +msgid "" +"The cost of hash collisions for sets is now reduced. Each hash table probe " +"now checks a series of consecutive, adjacent key/hash pairs before " +"continuing to make random probes through the hash table. This exploits " +"cache locality to make collision resolution less expensive. The collision " +"resolution scheme can be described as a hybrid of linear probing and open " +"addressing. The number of additional linear probes defaults to nine. This " +"can be changed at compile-time by defining LINEAR_PROBES to be any value. " +"Set LINEAR_PROBES=0 to turn-off linear probing entirely. (Contributed by " +"Raymond Hettinger in :issue:`18771`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2028 +msgid "" +"The interpreter starts about 30% faster. A couple of measures lead to the " +"speedup. The interpreter loads fewer modules on startup, e.g. the :mod:" +"`re`, :mod:`collections` and :mod:`locale` modules and their dependencies " +"are no longer imported by default. The marshal module has been improved to " +"load compiled Python code faster. (Contributed by Antoine Pitrou, Christian " +"Heimes and Victor Stinner in :issue:`19219`, :issue:`19218`, :issue:" +"`19209`, :issue:`19205` and :issue:`9548`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2036 +msgid "" +":class:`bz2.BZ2File` is now as fast or faster than the Python2 version for " +"most cases. :class:`lzma.LZMAFile` has also been optimized. (Contributed " +"by Serhiy Storchaka and Nadeem Vawda in :issue:`16034`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2040 +msgid "" +":func:`random.getrandbits` is 20%-40% faster for small integers (the most " +"common use case). (Contributed by Serhiy Storchaka in :issue:`16674`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2043 +msgid "" +"By taking advantage of the new storage format for strings, pickling of " +"strings is now significantly faster. (Contributed by Victor Stinner and " +"Antoine Pitrou in :issue:`15596`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2047 +msgid "" +"A performance issue in :meth:`io.FileIO.readall` has been solved. This " +"particularly affects Windows, and significantly speeds up the case of piping " +"significant amounts of data through :mod:`subprocess`. (Contributed by " +"Richard Oudkerk in :issue:`15758`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2052 +msgid "" +":func:`html.escape` is now 10x faster. (Contributed by Matt Bryant in :" +"issue:`18020`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2055 +msgid "" +"On Windows, the native ``VirtualAlloc`` is now used instead of the CRT " +"``malloc`` in ``obmalloc``. Artificial benchmarks show about a 3% memory " +"savings." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2059 +msgid "" +":func:`os.urandom` now uses a lazily-opened persistent file descriptor so as " +"to avoid using many file descriptors when run in parallel from multiple " +"threads. (Contributed by Antoine Pitrou in :issue:`18756`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2067 +msgid "Deprecated" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2069 +msgid "" +"This section covers various APIs and other features that have been " +"deprecated in Python 3.4, and will be removed in Python 3.5 or later. In " +"most (but not all) cases, using the deprecated APIs will produce a :exc:" +"`DeprecationWarning` when the interpreter is run with deprecation warnings " +"enabled (for example, by using ``-Wd``)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2077 +msgid "Deprecations in the Python API" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2079 +msgid "" +"As mentioned in :ref:`whatsnew-pep-451`, a number of :mod:`importlib` " +"methods and functions are deprecated: :meth:`importlib.find_loader` is " +"replaced by :func:`importlib.util.find_spec`; :meth:`importlib.machinery." +"PathFinder.find_module` is replaced by :meth:`importlib.machinery.PathFinder." +"find_spec`; :meth:`importlib.abc.MetaPathFinder.find_module` is replaced by :" +"meth:`importlib.abc.MetaPathFinder.find_spec`; :meth:`importlib.abc." +"PathEntryFinder.find_loader` and :meth:`~importlib.abc.PathEntryFinder." +"find_module` are replaced by :meth:`importlib.abc.PathEntryFinder." +"find_spec`; all of the ``xxxLoader`` ABC ``load_module`` methods (:meth:" +"`importlib.abc.Loader.load_module`, :meth:`importlib.abc.InspectLoader." +"load_module`, :meth:`importlib.abc.FileLoader.load_module`, :meth:`importlib." +"abc.SourceLoader.load_module`) should no longer be implemented, instead " +"loaders should implement an ``exec_module`` method (:meth:`importlib.abc." +"Loader.exec_module`, :meth:`importlib.abc.InspectLoader.exec_module` :meth:" +"`importlib.abc.SourceLoader.exec_module`) and let the import system take " +"care of the rest; and :meth:`importlib.abc.Loader.module_repr`, :meth:" +"`importlib.util.module_for_loader`, :meth:`importlib.util.set_loader`, and :" +"meth:`importlib.util.set_package` are no longer needed because their " +"functions are now handled automatically by the import system." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2104 +msgid "" +"The :mod:`imp` module is pending deprecation. To keep compatibility with " +"Python 2/3 code bases, the module's removal is currently not scheduled." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2107 +msgid "" +"The :mod:`formatter` module is pending deprecation and is slated for removal " +"in Python 3.6." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2110 +msgid "" +"``MD5`` as the default *digestmod* for the :func:`hmac.new` function is " +"deprecated. Python 3.6 will require an explicit digest name or constructor " +"as *digestmod* argument." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2114 +msgid "" +"The internal ``Netrc`` class in the :mod:`ftplib` module has been documented " +"as deprecated in its docstring for quite some time. It now emits a :exc:" +"`DeprecationWarning` and will be removed completely in Python 3.5." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2118 +msgid "" +"The undocumented *endtime* argument to :meth:`subprocess.Popen.wait` should " +"not have been exposed and is hopefully not in use; it is deprecated and will " +"mostly likely be removed in Python 3.5." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2122 +msgid "" +"The *strict* argument of :class:`~html.parser.HTMLParser` is deprecated." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2124 +msgid "" +"The :mod:`plistlib` :func:`~plistlib.readPlist`, :func:`~plistlib." +"writePlist`, :func:`~plistlib.readPlistFromBytes`, and :func:`~plistlib." +"writePlistToBytes` functions are deprecated in favor of the corresponding " +"new functions :func:`~plistlib.load`, :func:`~plistlib.dump`, :func:" +"`~plistlib.loads`, and :func:`~plistlib.dumps`. :func:`~plistlib.Data` is " +"deprecated in favor of just using the :class:`bytes` constructor." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2131 +msgid "" +"The :mod:`sysconfig` key ``SO`` is deprecated, it has been replaced by " +"``EXT_SUFFIX``." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2134 +msgid "" +"The ``U`` mode accepted by various ``open`` functions is deprecated. In " +"Python3 it does not do anything useful, and should be replaced by " +"appropriate uses of :class:`io.TextIOWrapper` (if needed) and its *newline* " +"argument." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2139 +msgid "" +"The *parser* argument of :func:`xml.etree.ElementTree.iterparse` has been " +"deprecated, as has the *html* argument of :func:`~xml.etree.ElementTree." +"XMLParser`. To prepare for the removal of the latter, all arguments to " +"``XMLParser`` should be passed by keyword." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2146 +msgid "Deprecated Features" +msgstr "Fonctionnalités obsolètes" + +#: ../Doc/whatsnew/3.4.rst:2148 +msgid "" +"Running :ref:`idle` with the ``-n`` flag (no subprocess) is deprecated. " +"However, the feature will not be removed until :issue:`18823` is resolved." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2151 +msgid "" +"The site module adding a \"site-python\" directory to sys.path, if it " +"exists, is deprecated (:issue:`19375`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2157 +msgid "Removed" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2161 +msgid "Operating Systems No Longer Supported" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2163 +msgid "" +"Support for the following operating systems has been removed from the source " +"and build tools:" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2166 +msgid "OS/2 (:issue:`16135`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2167 +msgid "Windows 2000 (changeset e52df05b496a)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2168 +msgid "" +"Windows systems where ``COMSPEC`` points to ``command.com`` (:issue:`14470`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2169 +msgid "VMS (:issue:`16136`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2173 +msgid "API and Feature Removals" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2175 +msgid "" +"The following obsolete and previously deprecated APIs and features have been " +"removed:" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2178 +msgid "" +"The unmaintained ``Misc/TextMate`` and ``Misc/vim`` directories have been " +"removed (see the `devguide `_ for suggestions " +"on what to use instead)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2182 +msgid "" +"The ``SO`` makefile macro is removed (it was replaced by the " +"``SHLIB_SUFFIX`` and ``EXT_SUFFIX`` macros) (:issue:`16754`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2185 +msgid "" +"The ``PyThreadState.tick_counter`` field has been removed; its value has " +"been meaningless since Python 3.2, when the \"new GIL\" was introduced (:" +"issue:`19199`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2189 +msgid "" +"``PyLoader`` and ``PyPycLoader`` have been removed from :mod:`importlib`. " +"(Contributed by Taras Lyapun in :issue:`15641`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2192 +msgid "" +"The *strict* argument to :class:`~http.client.HTTPConnection` and :class:" +"`~http.client.HTTPSConnection` has been removed. HTTP 0.9-style \"Simple " +"Responses\" are no longer supported." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2196 +msgid "" +"The deprecated :mod:`urllib.request.Request` getter and setter methods " +"``add_data``, ``has_data``, ``get_data``, ``get_type``, ``get_host``, " +"``get_selector``, ``set_proxy``, ``get_origin_req_host``, and " +"``is_unverifiable`` have been removed (use direct attribute access instead)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2201 +msgid "" +"Support for loading the deprecated ``TYPE_INT64`` has been removed from :mod:" +"`marshal`. (Contributed by Dan Riti in :issue:`15480`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2204 +msgid "" +":class:`inspect.Signature`: positional-only parameters are now required to " +"have a valid name." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2207 +msgid "" +":meth:`object.__format__` no longer accepts non-empty format strings, it now " +"raises a :exc:`TypeError` instead. Using a non-empty string has been " +"deprecated since Python 3.2. This change has been made to prevent a " +"situation where previously working (but incorrect) code would start failing " +"if an object gained a __format__ method, which means that your code may now " +"raise a :exc:`TypeError` if you are using an ``'s'`` format code with " +"objects that do not have a __format__ method that handles it. See :issue:" +"`7994` for background." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2216 +msgid "" +":meth:`difflib.SequenceMatcher.isbjunk` and :meth:`difflib.SequenceMatcher." +"isbpopular` were deprecated in 3.2, and have now been removed: use ``x in sm." +"bjunk`` and ``x in sm.bpopular``, where *sm* is a :class:`~difflib." +"SequenceMatcher` object (:issue:`13248`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2224 +msgid "Code Cleanups" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2226 +msgid "" +"The unused and undocumented internal ``Scanner`` class has been removed from " +"the :mod:`pydoc` module." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2229 +msgid "" +"The private and effectively unused ``_gestalt`` module has been removed, " +"along with the private :mod:`platform` functions ``_mac_ver_lookup``, " +"``_mac_ver_gstalt``, and ``_bcd2str``, which would only have ever been " +"called on badly broken OSX systems (see :issue:`18393`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2234 +msgid "" +"The hardcoded copies of certain :mod:`stat` constants that were included in " +"the :mod:`tarfile` module namespace have been removed." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2240 +msgid "Porting to Python 3.4" +msgstr "Portage vers Python 3.4" + +#: ../Doc/whatsnew/3.4.rst:2242 +msgid "" +"This section lists previously described changes and other bugfixes that may " +"require changes to your code." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2247 +msgid "Changes in 'python' Command Behavior" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2249 +msgid "" +"In a posix shell, setting the :envvar:`PATH` environment variable to an " +"empty value is equivalent to not setting it at all. However, setting :" +"envvar:`PYTHONPATH` to an empty value was *not* equivalent to not setting it " +"at all: setting :envvar:`PYTHONPATH` to an empty value was equivalent to " +"setting it to ``.``, which leads to confusion when reasoning by analogy to " +"how :envvar:`PATH` works. The behavior now conforms to the posix convention " +"for :envvar:`PATH`." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2257 +msgid "" +"The [X refs, Y blocks] output of a debug (``--with-pydebug``) build of the " +"CPython interpreter is now off by default. It can be re-enabled using the " +"``-X showrefcount`` option. (Contributed by Ezio Melotti in :issue:`17323`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2261 +msgid "" +"The python command and most stdlib scripts (as well as :mod:`argparse`) now " +"output ``--version`` information to ``stdout`` instead of ``stderr`` (for " +"issue list see :ref:`other-improvements-3.4` above)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2267 +msgid "Changes in the Python API" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2269 +msgid "" +"The ABCs defined in :mod:`importlib.abc` now either raise the appropriate " +"exception or return a default value instead of raising :exc:" +"`NotImplementedError` blindly. This will only affect code calling :func:" +"`super` and falling through all the way to the ABCs. For compatibility, " +"catch both :exc:`NotImplementedError` or the appropriate exception as needed." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2275 +msgid "" +"The module type now initializes the :attr:`__package__` and :attr:" +"`__loader__` attributes to ``None`` by default. To determine if these " +"attributes were set in a backwards-compatible fashion, use e.g. " +"``getattr(module, '__loader__', None) is not None``. (:issue:`17115`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2280 +msgid "" +":meth:`importlib.util.module_for_loader` now sets ``__loader__`` and " +"``__package__`` unconditionally to properly support reloading. If this is " +"not desired then you will need to set these attributes manually. You can " +"use :func:`importlib.util.module_to_load` for module management." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2285 +msgid "" +"Import now resets relevant attributes (e.g. ``__name__``, ``__loader__``, " +"``__package__``, ``__file__``, ``__cached__``) unconditionally when " +"reloading. Note that this restores a pre-3.3 behavior in that it means a " +"module is re-found when re-loaded (:issue:`19413`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2290 +msgid "" +"Frozen packages no longer set ``__path__`` to a list containing the package " +"name, they now set it to an empty list. The previous behavior could cause " +"the import system to do the wrong thing on submodule imports if there was " +"also a directory with the same name as the frozen package. The correct way " +"to determine if a module is a package or not is to use ``hasattr(module, " +"'__path__')`` (:issue:`18065`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2297 +msgid "" +"Frozen modules no longer define a ``__file__`` attribute. It's semantically " +"incorrect for frozen modules to set the attribute as they are not loaded " +"from any explicit location. If you must know that a module comes from frozen " +"code then you can see if the module's ``__spec__.location`` is set to " +"``'frozen'``, check if the loader is a subclass of :class:`importlib." +"machinery.FrozenImporter`, or if Python 2 compatibility is necessary you can " +"use :func:`imp.is_frozen`." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2305 +msgid "" +":func:`py_compile.compile` now raises :exc:`FileExistsError` if the file " +"path it would write to is a symlink or a non-regular file. This is to act as " +"a warning that import will overwrite those files with a regular file " +"regardless of what type of file path they were originally." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2310 +msgid "" +":meth:`importlib.abc.SourceLoader.get_source` no longer raises :exc:" +"`ImportError` when the source code being loaded triggers a :exc:" +"`SyntaxError` or :exc:`UnicodeDecodeError`. As :exc:`ImportError` is meant " +"to be raised only when source code cannot be found but it should, it was " +"felt to be over-reaching/overloading of that meaning when the source code is " +"found but improperly structured. If you were catching ImportError before and " +"wish to continue to ignore syntax or decoding issues, catch all three " +"exceptions now." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2319 +msgid "" +":func:`functools.update_wrapper` and :func:`functools.wraps` now correctly " +"set the ``__wrapped__`` attribute to the function being wrapped, even if " +"that function also had its ``__wrapped__`` attribute set. This means " +"``__wrapped__`` attributes now correctly link a stack of decorated functions " +"rather than every ``__wrapped__`` attribute in the chain referring to the " +"innermost function. Introspection libraries that assumed the previous " +"behaviour was intentional can use :func:`inspect.unwrap` to access the first " +"function in the chain that has no ``__wrapped__`` attribute." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2329 +msgid "" +":func:`inspect.getfullargspec` has been reimplemented on top of :func:" +"`inspect.signature` and hence handles a much wider variety of callable " +"objects than it did in the past. It is expected that additional builtin and " +"extension module callables will gain signature metadata over the course of " +"the Python 3.4 series. Code that assumes that :func:`inspect.getfullargspec` " +"will fail on non-Python callables may need to be adjusted accordingly." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2337 +msgid "" +":class:`importlib.machinery.PathFinder` now passes on the current working " +"directory to objects in :data:`sys.path_hooks` for the empty string. This " +"results in :data:`sys.path_importer_cache` never containing ``''``, thus " +"iterating through :data:`sys.path_importer_cache` based on :data:`sys.path` " +"will not find all keys. A module's ``__file__`` when imported in the current " +"working directory will also now have an absolute path, including when using " +"``-m`` with the interpreter (except for ``__main__.__file__`` when a script " +"has been executed directly using a relative path) (Contributed by Brett " +"Cannon in :issue:`18416`). is specified on the command-line) (:issue:" +"`18416`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2348 +msgid "" +"The removal of the *strict* argument to :class:`~http.client.HTTPConnection` " +"and :class:`~http.client.HTTPSConnection` changes the meaning of the " +"remaining arguments if you are specifying them positionally rather than by " +"keyword. If you've been paying attention to deprecation warnings your code " +"should already be specifying any additional arguments via keywords." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2354 +msgid "" +"Strings between ``from __future__ import ...`` statements now *always* raise " +"a :exc:`SyntaxError`. Previously if there was no leading docstring, an " +"interstitial string would sometimes be ignored. This brings CPython into " +"compliance with the language spec; Jython and PyPy already were. (:issue:" +"`17434`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2360 +msgid "" +":meth:`ssl.SSLSocket.getpeercert` and :meth:`ssl.SSLSocket.do_handshake` now " +"raise an :exc:`OSError` with ``ENOTCONN`` when the ``SSLSocket`` is not " +"connected, instead of the previous behavior of raising an :exc:" +"`AttributeError`. In addition, :meth:`~ssl.SSLSocket.getpeercert` will " +"raise a :exc:`ValueError` if the handshake has not yet been done." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2366 +msgid "" +":func:`base64.b32decode` now raises a :exc:`binascii.Error` when the input " +"string contains non-b32-alphabet characters, instead of a :exc:`TypeError`. " +"This particular :exc:`TypeError` was missed when the other :exc:`TypeError`" +"\\ s were converted. (Contributed by Serhiy Storchaka in :issue:`18011`.) " +"Note: this change was also inadvertently applied in Python 3.3.3." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2373 +msgid "" +"The :attr:`~cgi.FieldStorage.file` attribute is now automatically closed " +"when the creating :class:`cgi.FieldStorage` instance is garbage collected. " +"If you were pulling the file object out separately from the :class:`cgi." +"FieldStorage` instance and not keeping the instance alive, then you should " +"either store the entire :class:`cgi.FieldStorage` instance or read the " +"contents of the file before the :class:`cgi.FieldStorage` instance is " +"garbage collected." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2380 +msgid "" +"Calling ``read`` or ``write`` on a closed SSL socket now raises an " +"informative :exc:`ValueError` rather than the previous more mysterious :exc:" +"`AttributeError` (:issue:`9177`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2384 +msgid "" +":meth:`slice.indices` no longer produces an :exc:`OverflowError` for huge " +"values. As a consequence of this fix, :meth:`slice.indices` now raises a :" +"exc:`ValueError` if given a negative length; previously it returned nonsense " +"values (:issue:`14794`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2389 +msgid "" +"The :class:`complex` constructor, unlike the :mod:`cmath` functions, was " +"incorrectly accepting :class:`float` values if an object's ``__complex__`` " +"special method returned one. This now raises a :exc:`TypeError`. (:issue:" +"`16290`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2394 +msgid "" +"The :class:`int` constructor in 3.2 and 3.3 erroneously accepts :class:" +"`float` values for the *base* parameter. It is unlikely anyone was doing " +"this, but if so, it will now raise a :exc:`TypeError` (:issue:`16772`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2398 +msgid "" +"Defaults for keyword-only arguments are now evaluated *after* defaults for " +"regular keyword arguments, instead of before. Hopefully no one wrote any " +"code that depends on the previous buggy behavior (:issue:`16967`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2402 +msgid "" +"Stale thread states are now cleared after :func:`~os.fork`. This may cause " +"some system resources to be released that previously were incorrectly kept " +"perpetually alive (for example, database connections kept in thread-local " +"storage). (:issue:`17094`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2407 +msgid "" +"Parameter names in ``__annotations__`` dicts are now mangled properly, " +"similarly to ``__kwdefaults__``. (Contributed by Yury Selivanov in :issue:" +"`20625`.)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2411 +msgid "" +":attr:`hashlib.hash.name` now always returns the identifier in lower case. " +"Previously some builtin hashes had uppercase names, but now that it is a " +"formal public interface the naming has been made consistent (:issue:`18532`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2415 +msgid "" +"Because :mod:`unittest.TestSuite` now drops references to tests after they " +"are run, test harnesses that re-use a :class:`~unittest.TestSuite` to re-run " +"a set of tests may fail. Test suites should not be re-used in this fashion " +"since it means state is retained between test runs, breaking the test " +"isolation that :mod:`unittest` is designed to provide. However, if the lack " +"of isolation is considered acceptable, the old behavior can be restored by " +"creating a :mod:`~unittest.TestSuite` subclass that defines a " +"``_removeTestAtIndex`` method that does nothing (see :meth:`.TestSuite." +"__iter__`) (:issue:`11798`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2425 +msgid "" +":mod:`unittest` now uses :mod:`argparse` for command line parsing. There " +"are certain invalid command forms that used to work that are no longer " +"allowed; in theory this should not cause backward compatibility issues since " +"the disallowed command forms didn't make any sense and are unlikely to be in " +"use." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2430 +msgid "" +"The :func:`re.split`, :func:`re.findall`, and :func:`re.sub` functions, and " +"the :meth:`~re.match.group` and :meth:`~re.match.groups` methods of " +"``match`` objects now always return a *bytes* object when the string to be " +"matched is a :term:`bytes-like object`. Previously the return type matched " +"the input type, so if your code was depending on the return value being, " +"say, a ``bytearray``, you will need to change your code." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2437 +msgid "" +":mod:`audioop` functions now raise an error immediately if passed string " +"input, instead of failing randomly later on (:issue:`16685`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2440 +msgid "" +"The new *convert_charrefs* argument to :class:`~html.parser.HTMLParser` " +"currently defaults to ``False`` for backward compatibility, but will " +"eventually be changed to default to ``True``. It is recommended that you " +"add this keyword, with the appropriate value, to any :class:`~html.parser." +"HTMLParser` calls in your code (:issue:`13633`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2446 +msgid "" +"Since the *digestmod* argument to the :func:`hmac.new` function will in the " +"future have no default, all calls to :func:`hmac.new` should be changed to " +"explicitly specify a *digestmod* (:issue:`17276`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2450 +msgid "" +"Calling :func:`sysconfig.get_config_var` with the ``SO`` key, or looking " +"``SO`` up in the results of a call to :func:`sysconfig.get_config_vars` is " +"deprecated. This key should be replaced by ``EXT_SUFFIX`` or " +"``SHLIB_SUFFIX``, depending on the context (:issue:`19555`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2455 +msgid "" +"Any calls to ``open`` functions that specify ``U`` should be modified. ``U`` " +"is ineffective in Python3 and will eventually raise an error if used. " +"Depending on the function, the equivalent of its old Python2 behavior can be " +"achieved using either a *newline* argument, or if necessary by wrapping the " +"stream in :mod:`~io.TextIOWrapper` to use its *newline* argument (:issue:" +"`15204`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2462 +msgid "" +"If you use ``pyvenv`` in a script and desire that pip *not* be installed, " +"you must add ``--without-pip`` to your command invocation." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2466 +msgid "" +"The default behavior of :func:`json.dump` and :func:`json.dumps` when an " +"indent is specified has changed: it no longer produces trailing spaces after " +"the item separating commas at the ends of lines. This will matter only if " +"you have tests that are doing white-space-sensitive comparisons of such " +"output (:issue:`16333`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2472 +msgid "" +":mod:`doctest` now looks for doctests in extension module ``__doc__`` " +"strings, so if your doctest test discovery includes extension modules that " +"have things that look like doctests in them you may see test failures you've " +"never seen before when running your tests (:issue:`3158`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2477 +msgid "" +"The :mod:`collections.abc` module has been slightly refactored as part of " +"the Python startup improvements. As a consequence of this, it is no longer " +"the case that importing :mod:`collections` automatically imports :mod:" +"`collections.abc`. If your program depended on the (undocumented) implicit " +"import, you will need to add an explicit ``import collections.abc`` (:issue:" +"`20784`)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2486 +msgid "Changes in the C API" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2488 +msgid "" +":c:func:`PyEval_EvalFrameEx`, :c:func:`PyObject_Repr`, and :c:func:" +"`PyObject_Str`, along with some other internal C APIs, now include a " +"debugging assertion that ensures they are not used in situations where they " +"may silently discard a currently active exception. In cases where discarding " +"the active exception is expected and desired (for example, because it has " +"already been saved locally with :c:func:`PyErr_Fetch` or is being " +"deliberately replaced with a different exception), an explicit :c:func:" +"`PyErr_Clear` call will be needed to avoid triggering the assertion when " +"invoking these operations (directly or indirectly) and running against a " +"version of Python that is compiled with assertions enabled." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2500 +msgid "" +":c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg** " +"argument is not set. Previously only ``NULL`` was returned with no exception " +"set." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2504 +msgid "" +"The result of the :c:data:`PyOS_ReadlineFunctionPointer` callback must now " +"be a string allocated by :c:func:`PyMem_RawMalloc` or :c:func:" +"`PyMem_RawRealloc`, or *NULL* if an error occurred, instead of a string " +"allocated by :c:func:`PyMem_Malloc` or :c:func:`PyMem_Realloc` (:issue:" +"`16742`)" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2510 +msgid "" +":c:func:`PyThread_set_key_value` now always set the value. In Python 3.3, " +"the function did nothing if the key already exists (if the current value is " +"a non-NULL pointer)." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2514 +msgid "" +"The ``f_tstate`` (thread state) field of the :c:type:`PyFrameObject` " +"structure has been removed to fix a bug: see :issue:`14432` for the " +"rationale." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2519 +msgid "Changed in 3.4.3" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2524 +msgid "" +"PEP 476: Enabling certificate verification by default for stdlib http clients" +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2526 +msgid "" +":mod:`http.client` and modules which use it, such as :mod:`urllib.request` " +"and :mod:`xmlrpc.client`, will now verify that the server presents a " +"certificate which is signed by a CA in the platform trust store and whose " +"hostname matches the hostname being requested by default, significantly " +"improving security for many applications." +msgstr "" + +#: ../Doc/whatsnew/3.4.rst:2532 +msgid "" +"For applications which require the old previous behavior, they can pass an " +"alternate context::" +msgstr "" diff --git a/whatsnew/3.5.po b/whatsnew/3.5.po new file mode 100644 index 000000000..9801125ab --- /dev/null +++ b/whatsnew/3.5.po @@ -0,0 +1,3353 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"PO-Revision-Date: 2017-08-10 00:52+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/whatsnew/3.5.rst:3 +msgid "What's New In Python 3.5" +msgstr "Nouveautés de Python 3.5" + +#: ../Doc/whatsnew/3.5.rst:0 +msgid "Editors" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:5 +msgid "Elvis Pranskevichus , Yury Selivanov " +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:47 +msgid "" +"This article explains the new features in Python 3.5, compared to 3.4. " +"Python 3.5 was released on September 13, 2015.  See the `changelog `_ for a full list of changes." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:54 +msgid ":pep:`478` - Python 3.5 Release Schedule" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:58 +msgid "Summary -- Release highlights" +msgstr "Résumé – Points forts de la publication" + +#: ../Doc/whatsnew/3.5.rst:60 +msgid "New syntax features:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:62 +msgid "" +":ref:`PEP 492 `, coroutines with async and await syntax." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:63 +msgid "" +":ref:`PEP 465 `, a new matrix multiplication operator: ``a " +"@ b``." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:64 +msgid "" +":ref:`PEP 448 `, additional unpacking generalizations." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:67 +msgid "New library modules:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:69 +msgid ":mod:`typing`: :ref:`PEP 484 -- Type Hints `." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:70 +msgid "" +":mod:`zipapp`: :ref:`PEP 441 Improving Python ZIP Application Support " +"`." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:74 +msgid "New built-in features:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:76 +msgid "" +"``bytes % args``, ``bytearray % args``: :ref:`PEP 461 ` -- " +"Adding ``%`` formatting to bytes and bytearray." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:79 +msgid "" +"New :meth:`bytes.hex`, :meth:`bytearray.hex` and :meth:`memoryview.hex` " +"methods. (Contributed by Arnon Yaari in :issue:`9951`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:82 +msgid "" +":class:`memoryview` now supports tuple indexing (including multi-" +"dimensional). (Contributed by Antoine Pitrou in :issue:`23632`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:85 +msgid "" +"Generators have a new ``gi_yieldfrom`` attribute, which returns the object " +"being iterated by ``yield from`` expressions. (Contributed by Benno Leslie " +"and Yury Selivanov in :issue:`24450`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:89 +msgid "" +"A new :exc:`RecursionError` exception is now raised when maximum recursion " +"depth is reached. (Contributed by Georg Brandl in :issue:`19235`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:94 +msgid "CPython implementation improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:96 +msgid "" +"When the ``LC_TYPE`` locale is the POSIX locale (``C`` locale), :py:data:" +"`sys.stdin` and :py:data:`sys.stdout` now use the ``surrogateescape`` error " +"handler, instead of the ``strict`` error handler. (Contributed by Victor " +"Stinner in :issue:`19977`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:101 +msgid "" +"``.pyo`` files are no longer used and have been replaced by a more flexible " +"scheme that includes the optimization level explicitly in ``.pyc`` name. " +"(See :ref:`PEP 488 overview `.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:105 +msgid "" +"Builtin and extension modules are now initialized in a multi-phase process, " +"which is similar to how Python modules are loaded. (See :ref:`PEP 489 " +"overview `.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:110 +msgid "Significant improvements in the standard library:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:112 +msgid "" +":class:`collections.OrderedDict` is now :ref:`implemented in C `, which makes it 4 to 100 times faster." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:116 +msgid "" +"The :mod:`ssl` module gained :ref:`support for Memory BIO `, which decouples SSL protocol handling from network IO." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:120 +msgid "" +"The new :func:`os.scandir` function provides a :ref:`better and " +"significantly faster way ` of directory traversal." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:124 +msgid "" +":func:`functools.lru_cache` has been mostly :ref:`reimplemented in C " +"`, yielding much better performance." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:128 +msgid "" +"The new :func:`subprocess.run` function provides a :ref:`streamlined way to " +"run subprocesses `." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:131 +msgid "" +"The :mod:`traceback` module has been significantly :ref:`enhanced ` for improved performance and developer convenience." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:136 +msgid "Security improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:138 +msgid "" +"SSLv3 is now disabled throughout the standard library. It can still be " +"enabled by instantiating a :class:`ssl.SSLContext` manually. (See :issue:" +"`22638` for more details; this change was backported to CPython 3.4 and 2.7.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:143 +msgid "" +"HTTP cookie parsing is now stricter, in order to protect against potential " +"injection attacks. (Contributed by Antoine Pitrou in :issue:`22796`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:148 +msgid "Windows improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:150 +msgid "" +"A new installer for Windows has replaced the old MSI. See :ref:`using-on-" +"windows` for more information." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:153 +msgid "" +"Windows builds now use Microsoft Visual C++ 14.0, and extension modules " +"should use the same." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:157 +msgid "" +"Please read on for a comprehensive list of user-facing changes, including " +"many other smaller improvements, CPython optimizations, deprecations, and " +"potential porting issues." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:163 +msgid "New Features" +msgstr "Nouvelles fonctionnalités" + +#: ../Doc/whatsnew/3.5.rst:168 +msgid "PEP 492 - Coroutines with async and await syntax" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:170 +msgid "" +":pep:`492` greatly improves support for asynchronous programming in Python " +"by adding :term:`awaitable objects `, :term:`coroutine functions " +"`, :term:`asynchronous iteration `, and :term:`asynchronous context managers `." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:176 +msgid "" +"Coroutine functions are declared using the new :keyword:`async def` syntax::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:181 +msgid "" +"Inside a coroutine function, the new :keyword:`await` expression can be used " +"to suspend coroutine execution until the result is available. Any object " +"can be *awaited*, as long as it implements the :term:`awaitable` protocol by " +"defining the :meth:`__await__` method." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:186 +msgid "" +"PEP 492 also adds :keyword:`async for` statement for convenient iteration " +"over asynchronous iterables." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:189 +msgid "An example of a rudimentary HTTP client written using the new syntax::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:215 +msgid "" +"Similarly to asynchronous iteration, there is a new syntax for asynchronous " +"context managers. The following script::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:235 +msgid "will output::" +msgstr "affichera ::" + +#: ../Doc/whatsnew/3.5.rst:244 +msgid "" +"Note that both :keyword:`async for` and :keyword:`async with` can only be " +"used inside a coroutine function declared with :keyword:`async def`." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:247 +msgid "" +"Coroutine functions are intended to be run inside a compatible event loop, " +"such as the :ref:`asyncio loop `." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:253 +msgid "" +"Starting with CPython 3.5.2, ``__aiter__`` can directly return :term:" +"`asynchronous iterators `. Returning an :term:" +"`awaitable` object will result in a :exc:`PendingDeprecationWarning`." +msgstr "" +"À partir de CPython 3.5.2, ``__aiter__`` peut directement renvoyer des :term:" +"`itérateurs asynchrones `. Renvoyer un objet :term:" +"`awaitable` entraine un avertissement :exc:`PendingDeprecationWarning`." + +#: ../Doc/whatsnew/3.5.rst:259 +msgid "See more details in the :ref:`async-iterators` documentation section." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:265 +msgid ":pep:`492` -- Coroutines with async and await syntax" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:266 +msgid "PEP written and implemented by Yury Selivanov." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:272 +msgid "PEP 465 - A dedicated infix operator for matrix multiplication" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:274 +msgid "" +":pep:`465` adds the ``@`` infix operator for matrix multiplication. " +"Currently, no builtin Python types implement the new operator, however, it " +"can be implemented by defining :meth:`__matmul__`, :meth:`__rmatmul__`, and :" +"meth:`__imatmul__` for regular, reflected, and in-place matrix " +"multiplication. The semantics of these methods is similar to that of " +"methods defining other infix arithmetic operators." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:281 +msgid "" +"Matrix multiplication is a notably common operation in many fields of " +"mathematics, science, engineering, and the addition of ``@`` allows writing " +"cleaner code::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:287 +msgid "instead of::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:292 +msgid "NumPy 1.10 has support for the new operator::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:312 +msgid ":pep:`465` -- A dedicated infix operator for matrix multiplication" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:313 +msgid "PEP written by Nathaniel J. Smith; implemented by Benjamin Peterson." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:319 +msgid "PEP 448 - Additional Unpacking Generalizations" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:321 +msgid "" +":pep:`448` extends the allowed uses of the ``*`` iterable unpacking operator " +"and ``**`` dictionary unpacking operator. It is now possible to use an " +"arbitrary number of unpackings in :ref:`function calls `::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:335 +msgid "" +"Similarly, tuple, list, set, and dictionary displays allow multiple " +"unpackings (see :ref:`exprlists` and :ref:`dict`)::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:353 +msgid ":pep:`448` -- Additional Unpacking Generalizations" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:353 +msgid "" +"PEP written by Joshua Landau; implemented by Neil Girdhar, Thomas Wouters, " +"and Joshua Landau." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:360 +msgid "PEP 461 - percent formatting support for bytes and bytearray" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:362 +msgid "" +":pep:`461` adds support for the ``%`` :ref:`interpolation operator ` to :class:`bytes` and :class:`bytearray`." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:366 +msgid "" +"While interpolation is usually thought of as a string operation, there are " +"cases where interpolation on ``bytes`` or ``bytearrays`` makes sense, and " +"the work needed to make up for this missing functionality detracts from the " +"overall readability of the code. This issue is particularly important when " +"dealing with wire format protocols, which are often a mixture of binary and " +"ASCII compatible text." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:373 ../Doc/whatsnew/3.5.rst:1848 +msgid "Examples::" +msgstr "Exemples ::" + +#: ../Doc/whatsnew/3.5.rst:381 +msgid "" +"Unicode is not allowed for ``%b``, but it is accepted by ``%a`` (equivalent " +"of ``repr(obj).encode('ascii', 'backslashreplace')``)::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:392 +msgid "" +"Note that ``%s`` and ``%r`` conversion types, although supported, should " +"only be used in codebases that need compatibility with Python 2." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:398 +msgid ":pep:`461` -- Adding % formatting to bytes and bytearray" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:398 +msgid "" +"PEP written by Ethan Furman; implemented by Neil Schemenauer and Ethan " +"Furman." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:405 +msgid "PEP 484 - Type Hints" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:407 +msgid "" +"Function annotation syntax has been a Python feature since version 3.0 (:pep:" +"`3107`), however the semantics of annotations has been left undefined." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:410 +msgid "" +"Experience has shown that the majority of function annotation uses were to " +"provide type hints to function parameters and return values. It became " +"evident that it would be beneficial for Python users, if the standard " +"library included the base definitions and tools for type annotations." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:415 +msgid "" +":pep:`484` introduces a :term:`provisional module ` to " +"provide these standard definitions and tools, along with some conventions " +"for situations where annotations are not available." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:419 +msgid "" +"For example, here is a simple function whose argument and return type are " +"declared in the annotations::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:425 +msgid "" +"While these annotations are available at runtime through the usual :attr:" +"`__annotations__` attribute, *no automatic type checking happens at " +"runtime*. Instead, it is assumed that a separate off-line type checker (e." +"g. `mypy `_) will be used for on-demand source code " +"analysis." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:431 +msgid "" +"The type system supports unions, generic types, and a special type named :" +"class:`~typing.Any` which is consistent with (i.e. assignable to and from) " +"all types." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:437 +msgid ":mod:`typing` module documentation" +msgstr "Documentation du module :mod:`typing`" + +#: ../Doc/whatsnew/3.5.rst:439 +msgid ":pep:`484` -- Type Hints" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:439 +msgid "" +"PEP written by Guido van Rossum, Jukka Lehtosalo, and Łukasz Langa; " +"implemented by Guido van Rossum." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:441 +msgid ":pep:`483` -- The Theory of Type Hints" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:442 +msgid "PEP written by Guido van Rossum" +msgstr "PEP écrite par Guido van Rossum" + +#: ../Doc/whatsnew/3.5.rst:448 +msgid "" +"PEP 471 - os.scandir() function -- a better and faster directory iterator" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:450 +msgid "" +":pep:`471` adds a new directory iteration function, :func:`os.scandir`, to " +"the standard library. Additionally, :func:`os.walk` is now implemented " +"using ``scandir``, which makes it 3 to 5 times faster on POSIX systems and 7 " +"to 20 times faster on Windows systems. This is largely achieved by greatly " +"reducing the number of calls to :func:`os.stat` required to walk a directory " +"tree." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:457 +msgid "" +"Additionally, ``scandir`` returns an iterator, as opposed to returning a " +"list of file names, which improves memory efficiency when iterating over " +"very large directories." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:461 +msgid "" +"The following example shows a simple use of :func:`os.scandir` to display " +"all the files (excluding directories) in the given *path* that don't start " +"with ``'.'``. The :meth:`entry.is_file() ` call will " +"generally not make an additional system call::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:472 +msgid "" +":pep:`471` -- os.scandir() function -- a better and faster directory iterator" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:473 +msgid "" +"PEP written and implemented by Ben Hoyt with the help of Victor Stinner." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:479 +msgid "PEP 475: Retry system calls failing with EINTR" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:481 +msgid "" +"An :py:data:`errno.EINTR` error code is returned whenever a system call, " +"that is waiting for I/O, is interrupted by a signal. Previously, Python " +"would raise :exc:`InterruptedError` in such cases. This meant that, when " +"writing a Python application, the developer had two choices:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:486 +msgid "Ignore the ``InterruptedError``." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:487 +msgid "" +"Handle the ``InterruptedError`` and attempt to restart the interrupted " +"system call at every call site." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:490 +msgid "" +"The first option makes an application fail intermittently. The second option " +"adds a large amount of boilerplate that makes the code nearly unreadable. " +"Compare::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:496 +msgid "and::" +msgstr "et  ::" + +#: ../Doc/whatsnew/3.5.rst:505 +msgid "" +":pep:`475` implements automatic retry of system calls on ``EINTR``. This " +"removes the burden of dealing with ``EINTR`` or :exc:`InterruptedError` in " +"user code in most situations and makes Python programs, including the " +"standard library, more robust. Note that the system call is only retried if " +"the signal handler does not raise an exception." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:512 +msgid "" +"Below is a list of functions which are now retried when interrupted by a " +"signal:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:515 +msgid ":func:`open` and :func:`io.open`;" +msgstr ":func:`open` et :func:`io.open`;" + +#: ../Doc/whatsnew/3.5.rst:517 +msgid "functions of the :mod:`faulthandler` module;" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:519 +msgid "" +":mod:`os` functions: :func:`~os.fchdir`, :func:`~os.fchmod`, :func:`~os." +"fchown`, :func:`~os.fdatasync`, :func:`~os.fstat`, :func:`~os.fstatvfs`, :" +"func:`~os.fsync`, :func:`~os.ftruncate`, :func:`~os.mkfifo`, :func:`~os." +"mknod`, :func:`~os.open`, :func:`~os.posix_fadvise`, :func:`~os." +"posix_fallocate`, :func:`~os.pread`, :func:`~os.pwrite`, :func:`~os.read`, :" +"func:`~os.readv`, :func:`~os.sendfile`, :func:`~os.wait3`, :func:`~os." +"wait4`, :func:`~os.wait`, :func:`~os.waitid`, :func:`~os.waitpid`, :func:" +"`~os.write`, :func:`~os.writev`;" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:529 +msgid "" +"special cases: :func:`os.close` and :func:`os.dup2` now ignore :py:data:" +"`~errno.EINTR` errors; the syscall is not retried (see the PEP for the " +"rationale);" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:533 +msgid "" +":mod:`select` functions: :func:`devpoll.poll() `, :func:" +"`epoll.poll() `, :func:`kqueue.control() `, :func:`poll.poll() `, :func:`~select.select`;" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:538 +msgid "" +"methods of the :class:`~socket.socket` class: :meth:`~socket.socket." +"accept`, :meth:`~socket.socket.connect` (except for non-blocking sockets), :" +"meth:`~socket.socket.recv`, :meth:`~socket.socket.recvfrom`, :meth:`~socket." +"socket.recvmsg`, :meth:`~socket.socket.send`, :meth:`~socket.socket." +"sendall`, :meth:`~socket.socket.sendmsg`, :meth:`~socket.socket.sendto`;" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:545 +msgid ":func:`signal.sigtimedwait` and :func:`signal.sigwaitinfo`;" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:547 +msgid ":func:`time.sleep`." +msgstr ":func:`time.sleep`." + +#: ../Doc/whatsnew/3.5.rst:552 +msgid ":pep:`475` -- Retry system calls failing with EINTR" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:552 +msgid "" +"PEP and implementation written by Charles-François Natali and Victor " +"Stinner, with the help of Antoine Pitrou (the French connection)." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:559 +msgid "PEP 479: Change StopIteration handling inside generators" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:561 +msgid "" +"The interaction of generators and :exc:`StopIteration` in Python 3.4 and " +"earlier was sometimes surprising, and could conceal obscure bugs. " +"Previously, ``StopIteration`` raised accidentally inside a generator " +"function was interpreted as the end of the iteration by the loop construct " +"driving the generator." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:567 +msgid "" +":pep:`479` changes the behavior of generators: when a ``StopIteration`` " +"exception is raised inside a generator, it is replaced with a :exc:" +"`RuntimeError` before it exits the generator frame. The main goal of this " +"change is to ease debugging in the situation where an unguarded :func:`next` " +"call raises ``StopIteration`` and causes the iteration controlled by the " +"generator to terminate silently. This is particularly pernicious in " +"combination with the ``yield from`` construct." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:575 +msgid "" +"This is a backwards incompatible change, so to enable the new behavior, a :" +"term:`__future__` import is necessary::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:595 +msgid "" +"Without a ``__future__`` import, a :exc:`PendingDeprecationWarning` will be " +"raised whenever a :exc:`StopIteration` exception is raised inside a " +"generator." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:601 +msgid ":pep:`479` -- Change StopIteration handling inside generators" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:601 +msgid "" +"PEP written by Chris Angelico and Guido van Rossum. Implemented by Chris " +"Angelico, Yury Selivanov and Nick Coghlan." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:608 +msgid "PEP 485: A function for testing approximate equality" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:610 +msgid "" +":pep:`485` adds the :func:`math.isclose` and :func:`cmath.isclose` functions " +"which tell whether two values are approximately equal or \"close\" to each " +"other. Whether or not two values are considered close is determined " +"according to given absolute and relative tolerances. Relative tolerance is " +"the maximum allowed difference between ``isclose`` arguments, relative to " +"the larger absolute value::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:625 +msgid "" +"It is also possible to compare two values using absolute tolerance, which " +"must be a non-negative value::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:639 +msgid ":pep:`485` -- A function for testing approximate equality" +msgstr ":pep:`485` -- Une fonction pour tester des égalités approximées" + +#: ../Doc/whatsnew/3.5.rst:639 +msgid "" +"PEP written by Christopher Barker; implemented by Chris Barker and Tal Einat." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:646 +msgid "PEP 486: Make the Python Launcher aware of virtual environments" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:648 +msgid "" +":pep:`486` makes the Windows launcher (see :pep:`397`) aware of an active " +"virtual environment. When the default interpreter would be used and the " +"``VIRTUAL_ENV`` environment variable is set, the interpreter in the virtual " +"environment will be used." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:655 +msgid ":pep:`486` -- Make the Python Launcher aware of virtual environments" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:656 +msgid "PEP written and implemented by Paul Moore." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:662 +msgid "PEP 488: Elimination of PYO files" +msgstr "PEP 488 : Élimination des fichiers PYO" + +#: ../Doc/whatsnew/3.5.rst:664 +msgid "" +":pep:`488` does away with the concept of ``.pyo`` files. This means that ``." +"pyc`` files represent both unoptimized and optimized bytecode. To prevent " +"the need to constantly regenerate bytecode files, ``.pyc`` files now have an " +"optional ``opt-`` tag in their name when the bytecode is optimized. This has " +"the side-effect of no more bytecode file name clashes when running under " +"either :option:`-O` or :option:`-OO`. Consequently, bytecode files generated " +"from :option:`-O`, and :option:`-OO` may now exist simultaneously. :func:" +"`importlib.util.cache_from_source` has an updated API to help with this " +"change." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:676 +msgid ":pep:`488` -- Elimination of PYO files" +msgstr ":pep:`488` : Élimination des fichiers PYO" + +#: ../Doc/whatsnew/3.5.rst:677 +msgid "PEP written and implemented by Brett Cannon." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:683 +msgid "PEP 489: Multi-phase extension module initialization" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:685 +msgid "" +":pep:`489` updates extension module initialization to take advantage of the " +"two step module loading mechanism introduced by :pep:`451` in Python 3.4." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:688 +msgid "" +"This change brings the import semantics of extension modules that opt-in to " +"using the new mechanism much closer to those of Python source and bytecode " +"modules, including the ability to use any valid identifier as a module name, " +"rather than being restricted to ASCII." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:696 +msgid ":pep:`489` -- Multi-phase extension module initialization" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:696 +msgid "" +"PEP written by Petr Viktorin, Stefan Behnel, and Nick Coghlan; implemented " +"by Petr Viktorin." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:701 +msgid "Other Language Changes" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:703 +msgid "Some smaller changes made to the core Python language are:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:705 +msgid "" +"Added the ``\"namereplace\"`` error handlers. The ``\"backslashreplace\"`` " +"error handlers now work with decoding and translating. (Contributed by " +"Serhiy Storchaka in :issue:`19676` and :issue:`22286`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:709 +msgid "" +"The :option:`-b` option now affects comparisons of :class:`bytes` with :" +"class:`int`. (Contributed by Serhiy Storchaka in :issue:`23681`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:712 +msgid "" +"New Kazakh ``kz1048`` and Tajik ``koi8_t`` :ref:`codecs `. (Contributed by Serhiy Storchaka in :issue:`22682` and :issue:" +"`22681`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:715 +msgid "" +"Property docstrings are now writable. This is especially useful for :func:" +"`collections.namedtuple` docstrings. (Contributed by Berker Peksag in :issue:" +"`24064`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:719 +msgid "" +"Circular imports involving relative imports are now supported. (Contributed " +"by Brett Cannon and Antoine Pitrou in :issue:`17636`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:724 +msgid "New Modules" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:727 +msgid "typing" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:729 +msgid "" +"The new :mod:`typing` :term:`provisional ` module provides " +"standard definitions and tools for function type annotations. See :ref:`Type " +"Hints ` for more information." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:736 +msgid "zipapp" +msgstr "zipapp" + +#: ../Doc/whatsnew/3.5.rst:738 +msgid "" +"The new :mod:`zipapp` module (specified in :pep:`441`) provides an API and " +"command line tool for creating executable Python Zip Applications, which " +"were introduced in Python 2.6 in :issue:`1739468`, but which were not well " +"publicized, either at the time or since." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:743 +msgid "" +"With the new module, bundling your application is as simple as putting all " +"the files, including a ``__main__.py`` file, into a directory ``myapp`` and " +"running:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:752 +msgid "" +"The module implementation has been contributed by Paul Moore in :issue:" +"`23491`." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:757 +msgid ":pep:`441` -- Improving Python ZIP Application Support" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:761 +msgid "Improved Modules" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:764 +msgid "argparse" +msgstr "argparse" + +#: ../Doc/whatsnew/3.5.rst:766 +msgid "" +"The :class:`~argparse.ArgumentParser` class now allows disabling :ref:" +"`abbreviated usage ` of long options by setting :ref:" +"`allow_abbrev` to ``False``. (Contributed by Jonathan Paugh, Steven " +"Bethard, paul j3 and Daniel Eriksson in :issue:`14910`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:773 +msgid "asyncio" +msgstr "asyncio" + +#: ../Doc/whatsnew/3.5.rst:775 +msgid "" +"Since the :mod:`asyncio` module is :term:`provisional `, " +"all changes introduced in Python 3.5 have also been backported to Python 3.4." +"x." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:778 +msgid "Notable changes in the :mod:`asyncio` module since Python 3.4.0:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:780 +msgid "" +"New debugging APIs: :meth:`loop.set_debug() ` and :" +"meth:`loop.get_debug() ` methods. (Contributed by " +"Victor Stinner.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:784 +msgid "" +"The proactor event loop now supports SSL. (Contributed by Antoine Pitrou and " +"Victor Stinner in :issue:`22560`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:787 +msgid "" +"A new :meth:`loop.is_closed() ` method to check if " +"the event loop is closed. (Contributed by Victor Stinner in :issue:`21326`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:791 +msgid "" +"A new :meth:`loop.create_task() ` to conveniently " +"create and schedule a new :class:`~asyncio.Task` for a coroutine. The " +"``create_task`` method is also used by all asyncio functions that wrap " +"coroutines into tasks, such as :func:`asyncio.wait`, :func:`asyncio.gather`, " +"etc. (Contributed by Victor Stinner.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:798 +msgid "" +"A new :meth:`transport.get_write_buffer_limits() ` method to inquire for *high-* and *low-* water " +"limits of the flow control. (Contributed by Victor Stinner.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:803 +msgid "" +"The :func:`~asyncio.async` function is deprecated in favor of :func:" +"`~asyncio.ensure_future`. (Contributed by Yury Selivanov.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:807 +msgid "" +"New :meth:`loop.set_task_factory() ` and :" +"meth:`loop.get_task_factory() ` methods to " +"customize the task factory that :meth:`loop.create_task() ` method uses. (Contributed by Yury Selivanov.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:814 +msgid "" +"New :meth:`Queue.join() ` and :meth:`Queue.task_done() " +"` queue methods. (Contributed by Victor Stinner.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:818 +msgid "" +"The ``JoinableQueue`` class was removed, in favor of the :class:`asyncio." +"Queue` class. (Contributed by Victor Stinner.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:822 +msgid "Updates in 3.5.1:" +msgstr "Nouveautés dans la 3.5.1 :" + +#: ../Doc/whatsnew/3.5.rst:824 +msgid "" +"The :func:`~asyncio.ensure_future` function and all functions that use it, " +"such as :meth:`loop.run_until_complete() `, " +"now accept all kinds of :term:`awaitable objects `. (Contributed " +"by Yury Selivanov.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:829 +msgid "" +"New :func:`~asyncio.run_coroutine_threadsafe` function to submit coroutines " +"to event loops from other threads. (Contributed by Vincent Michel.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:833 +msgid "" +"New :meth:`Transport.is_closing() ` method " +"to check if the transport is closing or closed. (Contributed by Yury " +"Selivanov.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:837 +msgid "" +"The :meth:`loop.create_server() ` method can now " +"accept a list of hosts. (Contributed by Yann Sionneau.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:841 +msgid "Updates in 3.5.2:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:843 +msgid "" +"New :meth:`loop.create_future() ` method to " +"create Future objects. This allows alternative event loop implementations, " +"such as `uvloop `_, to provide a " +"faster :class:`asyncio.Future` implementation. (Contributed by Yury " +"Selivanov.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:850 +msgid "" +"New :meth:`loop.get_exception_handler() ` method to get the current exception handler. " +"(Contributed by Yury Selivanov.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:854 +msgid "" +"New :meth:`StreamReader.readuntil() ` method " +"to read data from the stream until a separator bytes sequence appears. " +"(Contributed by Mark Korenberg.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:859 +msgid "" +"The :meth:`loop.create_connection() ` and :" +"meth:`loop.create_server() ` methods are " +"optimized to avoid calling the system ``getaddrinfo`` function if the " +"address is already resolved. (Contributed by A. Jesse Jiryu Davis.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:865 +msgid "" +"The :meth:`loop.sock_connect(sock, address) ` no " +"longer requires the *address* to be resolved prior to the call. (Contributed " +"by A. Jesse Jiryu Davis.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:871 +msgid "bz2" +msgstr "bz2" + +#: ../Doc/whatsnew/3.5.rst:873 +msgid "" +"The :meth:`BZ2Decompressor.decompress ` " +"method now accepts an optional *max_length* argument to limit the maximum " +"size of decompressed data. (Contributed by Nikolaus Rath in :issue:`15955`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:879 +msgid "cgi" +msgstr "cgi" + +#: ../Doc/whatsnew/3.5.rst:881 +msgid "" +"The :class:`~cgi.FieldStorage` class now supports the :term:`context " +"manager` protocol. (Contributed by Berker Peksag in :issue:`20289`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:886 +msgid "cmath" +msgstr "cmath" + +#: ../Doc/whatsnew/3.5.rst:888 +msgid "" +"A new function :func:`~cmath.isclose` provides a way to test for approximate " +"equality. (Contributed by Chris Barker and Tal Einat in :issue:`24270`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:893 +msgid "code" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:895 +msgid "" +"The :func:`InteractiveInterpreter.showtraceback() ` method now prints the full chained " +"traceback, just like the interactive interpreter. (Contributed by Claudiu " +"Popa in :issue:`17442`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:901 +msgid "collections" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:905 +msgid "" +"The :class:`~collections.OrderedDict` class is now implemented in C, which " +"makes it 4 to 100 times faster. (Contributed by Eric Snow in :issue:" +"`16991`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:908 +msgid "" +":meth:`OrderedDict.items() `, :meth:" +"`OrderedDict.keys() `, :meth:`OrderedDict." +"values() ` views now support :func:" +"`reversed` iteration. (Contributed by Serhiy Storchaka in :issue:`19505`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:914 +msgid "" +"The :class:`~collections.deque` class now defines :meth:`~collections.deque." +"index`, :meth:`~collections.deque.insert`, and :meth:`~collections.deque." +"copy`, and supports the ``+`` and ``*`` operators. This allows deques to be " +"recognized as a :class:`~collections.abc.MutableSequence` and improves their " +"substitutability for lists. (Contributed by Raymond Hettinger in :issue:" +"`23704`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:921 +msgid "" +"Docstrings produced by :func:`~collections.namedtuple` can now be updated::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:928 +msgid "(Contributed by Berker Peksag in :issue:`24064`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:930 +msgid "" +"The :class:`~collections.UserString` class now implements the :meth:" +"`__getnewargs__`, :meth:`__rmod__`, :meth:`~str.casefold`, :meth:`~str." +"format_map`, :meth:`~str.isprintable`, and :meth:`~str.maketrans` methods to " +"match the corresponding methods of :class:`str`. (Contributed by Joe Jevnik " +"in :issue:`22189`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:938 +msgid "collections.abc" +msgstr "collections.abc" + +#: ../Doc/whatsnew/3.5.rst:940 +msgid "" +"The :meth:`Sequence.index() ` method now " +"accepts *start* and *stop* arguments to match the corresponding methods of :" +"class:`tuple`, :class:`list`, etc. (Contributed by Devin Jeanpierre in :" +"issue:`23086`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:945 +msgid "" +"A new :class:`~collections.abc.Generator` abstract base class. (Contributed " +"by Stefan Behnel in :issue:`24018`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:948 +msgid "" +"New :class:`~collections.abc.Awaitable`, :class:`~collections.abc." +"Coroutine`, :class:`~collections.abc.AsyncIterator`, and :class:" +"`~collections.abc.AsyncIterable` abstract base classes. (Contributed by Yury " +"Selivanov in :issue:`24184`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:953 +msgid "" +"For earlier Python versions, a backport of the new ABCs is available in an " +"external `PyPI package `_." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:958 +msgid "compileall" +msgstr "compileall" + +#: ../Doc/whatsnew/3.5.rst:960 +msgid "" +"A new :mod:`compileall` option, :samp:`-j {N}`, allows running *N* workers " +"simultaneously to perform parallel bytecode compilation. The :func:" +"`~compileall.compile_dir` function has a corresponding ``workers`` " +"parameter. (Contributed by Claudiu Popa in :issue:`16104`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:965 +msgid "" +"Another new option, ``-r``, allows controlling the maximum recursion level " +"for subdirectories. (Contributed by Claudiu Popa in :issue:`19628`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:968 +msgid "" +"The ``-q`` command line option can now be specified more than once, in which " +"case all output, including errors, will be suppressed. The corresponding " +"``quiet`` parameter in :func:`~compileall.compile_dir`, :func:`~compileall." +"compile_file`, and :func:`~compileall.compile_path` can now accept an " +"integer value indicating the level of output suppression. (Contributed by " +"Thomas Kluyver in :issue:`21338`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:977 +msgid "concurrent.futures" +msgstr "concurrent.futures" + +#: ../Doc/whatsnew/3.5.rst:979 +msgid "" +"The :meth:`Executor.map() ` method now " +"accepts a *chunksize* argument to allow batching of tasks to improve " +"performance when :meth:`~concurrent.futures.ProcessPoolExecutor` is used. " +"(Contributed by Dan O'Reilly in :issue:`11271`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:984 +msgid "" +"The number of workers in the :class:`~concurrent.futures.ThreadPoolExecutor` " +"constructor is optional now. The default value is 5 times the number of " +"CPUs. (Contributed by Claudiu Popa in :issue:`21527`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:990 +msgid "configparser" +msgstr "configparser" + +#: ../Doc/whatsnew/3.5.rst:992 +msgid "" +":mod:`configparser` now provides a way to customize the conversion of values " +"by specifying a dictionary of converters in the :class:`~configparser." +"ConfigParser` constructor, or by defining them as methods in " +"``ConfigParser`` subclasses. Converters defined in a parser instance are " +"inherited by its section proxies." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:998 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/whatsnew/3.5.rst:1016 +msgid "(Contributed by Łukasz Langa in :issue:`18159`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1020 +msgid "contextlib" +msgstr "contextlib" + +#: ../Doc/whatsnew/3.5.rst:1022 +msgid "" +"The new :func:`~contextlib.redirect_stderr` :term:`context manager` (similar " +"to :func:`~contextlib.redirect_stdout`) makes it easier for utility scripts " +"to handle inflexible APIs that write their output to :data:`sys.stderr` and " +"don't provide any options to redirect it::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1035 +msgid "(Contributed by Berker Peksag in :issue:`22389`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1039 +msgid "csv" +msgstr "csv" + +#: ../Doc/whatsnew/3.5.rst:1041 +msgid "" +"The :meth:`~csv.csvwriter.writerow` method now supports arbitrary iterables, " +"not just sequences. (Contributed by Serhiy Storchaka in :issue:`23171`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1046 +msgid "curses" +msgstr "curses" + +#: ../Doc/whatsnew/3.5.rst:1048 +msgid "" +"The new :func:`~curses.update_lines_cols` function updates the :envvar:" +"`LINES` and :envvar:`COLS` environment variables. This is useful for " +"detecting manual screen resizing. (Contributed by Arnon Yaari in :issue:" +"`4254`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1054 +msgid "dbm" +msgstr "dbm" + +#: ../Doc/whatsnew/3.5.rst:1056 +msgid "" +":func:`dumb.open ` always creates a new database when the " +"flag has the value ``\"n\"``. (Contributed by Claudiu Popa in :issue:" +"`18039`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1061 +msgid "difflib" +msgstr "difflib" + +#: ../Doc/whatsnew/3.5.rst:1063 +msgid "" +"The charset of HTML documents generated by :meth:`HtmlDiff.make_file() " +"` can now be customized by using a new *charset* " +"keyword-only argument. The default charset of HTML document changed from ``" +"\"ISO-8859-1\"`` to ``\"utf-8\"``. (Contributed by Berker Peksag in :issue:" +"`2052`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1070 +msgid "" +"The :func:`~difflib.diff_bytes` function can now compare lists of byte " +"strings. This fixes a regression from Python 2. (Contributed by Terry J. " +"Reedy and Greg Ward in :issue:`17445`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1076 +msgid "distutils" +msgstr "distutils" + +#: ../Doc/whatsnew/3.5.rst:1078 +msgid "" +"Both the ``build`` and ``build_ext`` commands now accept a ``-j`` option to " +"enable parallel building of extension modules. (Contributed by Antoine " +"Pitrou in :issue:`5309`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1082 +msgid "" +"The :mod:`distutils` module now supports ``xz`` compression, and can be " +"enabled by passing ``xztar`` as an argument to ``bdist --format``. " +"(Contributed by Serhiy Storchaka in :issue:`16314`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1088 +msgid "doctest" +msgstr "doctest" + +#: ../Doc/whatsnew/3.5.rst:1090 +msgid "" +"The :func:`~doctest.DocTestSuite` function returns an empty :class:`unittest." +"TestSuite` if *module* contains no docstrings, instead of raising :exc:" +"`ValueError`. (Contributed by Glenn Jones in :issue:`15916`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1096 +msgid "email" +msgstr "email" + +#: ../Doc/whatsnew/3.5.rst:1098 +msgid "" +"A new policy option :attr:`Policy.mangle_from_ ` controls whether or not lines that start with ``\"From \"`` " +"in email bodies are prefixed with a ``\">\"`` character by generators. The " +"default is ``True`` for :attr:`~email.policy.compat32` and ``False`` for all " +"other policies. (Contributed by Milan Oberkirch in :issue:`20098`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1104 +msgid "" +"A new :meth:`Message.get_content_disposition() ` method provides easy access to a canonical value " +"for the :mailheader:`Content-Disposition` header. (Contributed by Abhilash " +"Raj in :issue:`21083`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1110 +msgid "" +"A new policy option :attr:`EmailPolicy.utf8 ` " +"can be set to ``True`` to encode email headers using the UTF-8 charset " +"instead of using encoded words. This allows ``Messages`` to be formatted " +"according to :rfc:`6532` and used with an SMTP server that supports the :rfc:" +"`6531` ``SMTPUTF8`` extension. (Contributed by R. David Murray in :issue:" +"`24211`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1117 +msgid "" +"The :class:`mime.text.MIMEText ` constructor now " +"accepts a :class:`charset.Charset ` instance. " +"(Contributed by Claude Paroz and Berker Peksag in :issue:`16324`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1123 +msgid "enum" +msgstr "enum" + +#: ../Doc/whatsnew/3.5.rst:1125 +msgid "" +"The :class:`~enum.Enum` callable has a new parameter *start* to specify the " +"initial number of enum values if only *names* are provided::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1134 +msgid "(Contributed by Ethan Furman in :issue:`21706`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1138 +msgid "faulthandler" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1140 +msgid "" +"The :func:`~faulthandler.enable`, :func:`~faulthandler.register`, :func:" +"`~faulthandler.dump_traceback` and :func:`~faulthandler." +"dump_traceback_later` functions now accept file descriptors in addition to " +"file-like objects. (Contributed by Wei Wu in :issue:`23566`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1148 +msgid "functools" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1152 +msgid "" +"Most of the :func:`~functools.lru_cache` machinery is now implemented in C, " +"making it significantly faster. (Contributed by Matt Joiner, Alexey " +"Kachayev, and Serhiy Storchaka in :issue:`14373`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1158 +msgid "glob" +msgstr "glob" + +#: ../Doc/whatsnew/3.5.rst:1160 +msgid "" +"The :func:`~glob.iglob` and :func:`~glob.glob` functions now support " +"recursive search in subdirectories, using the ``\"**\"`` pattern. " +"(Contributed by Serhiy Storchaka in :issue:`13968`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1166 +msgid "gzip" +msgstr "gzip" + +#: ../Doc/whatsnew/3.5.rst:1168 +msgid "" +"The *mode* argument of the :class:`~gzip.GzipFile` constructor now accepts ``" +"\"x\"`` to request exclusive creation. (Contributed by Tim Heaney in :issue:" +"`19222`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1174 +msgid "heapq" +msgstr "heapq" + +#: ../Doc/whatsnew/3.5.rst:1176 +msgid "" +"Element comparison in :func:`~heapq.merge` can now be customized by passing " +"a :term:`key function` in a new optional *key* keyword argument, and a new " +"optional *reverse* keyword argument can be used to reverse element " +"comparison::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1189 +msgid "(Contributed by Raymond Hettinger in :issue:`13742`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1193 +msgid "http" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1195 +msgid "" +"A new :class:`HTTPStatus ` enum that defines a set of HTTP " +"status codes, reason phrases and long descriptions written in English. " +"(Contributed by Demian Brecht in :issue:`21793`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1201 +msgid "http.client" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1203 +msgid "" +":meth:`HTTPConnection.getresponse() ` now raises a :exc:`~http.client.RemoteDisconnected` exception " +"when a remote server connection is closed unexpectedly. Additionally, if a :" +"exc:`ConnectionError` (of which ``RemoteDisconnected`` is a subclass) is " +"raised, the client socket is now closed automatically, and will reconnect on " +"the next request::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1219 +msgid "(Contributed by Martin Panter in :issue:`3566`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1223 +msgid "idlelib and IDLE" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1225 +msgid "" +"Since idlelib implements the IDLE shell and editor and is not intended for " +"import by other programs, it gets improvements with every release. See :" +"file:`Lib/idlelib/NEWS.txt` for a cumulative list of changes since 3.4.0, as " +"well as changes made in future 3.5.x releases. This file is also available " +"from the IDLE :menuselection:`Help --> About IDLE` dialog." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1233 +msgid "imaplib" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1235 +msgid "" +"The :class:`~imaplib.IMAP4` class now supports the :term:`context manager` " +"protocol. When used in a :keyword:`with` statement, the IMAP4 ``LOGOUT`` " +"command will be called automatically at the end of the block. (Contributed " +"by Tarek Ziadé and Serhiy Storchaka in :issue:`4972`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1240 +msgid "" +"The :mod:`imaplib` module now supports :rfc:`5161` (ENABLE Extension) and :" +"rfc:`6855` (UTF-8 Support) via the :meth:`IMAP4.enable() ` method. A new :attr:`IMAP4.utf8_enabled ` attribute tracks whether or not :rfc:`6855` support is " +"enabled. (Contributed by Milan Oberkirch, R. David Murray, and Maciej Szulik " +"in :issue:`21800`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1247 +msgid "" +"The :mod:`imaplib` module now automatically encodes non-ASCII string " +"usernames and passwords using UTF-8, as recommended by the RFCs. " +"(Contributed by Milan Oberkirch in :issue:`21800`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1253 +msgid "imghdr" +msgstr "imghdr" + +#: ../Doc/whatsnew/3.5.rst:1255 +msgid "" +"The :func:`~imghdr.what` function now recognizes the `OpenEXR `_ format (contributed by Martin Vignali and Claudiu Popa in :" +"issue:`20295`), and the `WebP `_ format " +"(contributed by Fabrice Aneche and Claudiu Popa in :issue:`20197`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1263 +msgid "importlib" +msgstr "importlib" + +#: ../Doc/whatsnew/3.5.rst:1265 +msgid "" +"The :class:`util.LazyLoader ` class allows for " +"lazy loading of modules in applications where startup time is important. " +"(Contributed by Brett Cannon in :issue:`17621`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1269 +msgid "" +"The :func:`abc.InspectLoader.source_to_code() ` method is now a static method. This makes it easier to " +"initialize a module object with code compiled from a string by running " +"``exec(code, module.__dict__)``. (Contributed by Brett Cannon in :issue:" +"`21156`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1275 +msgid "" +"The new :func:`util.module_from_spec() ` " +"function is now the preferred way to create a new module. As opposed to " +"creating a :class:`types.ModuleType` instance directly, this new function " +"will set the various import-controlled attributes based on the passed-in " +"spec object. (Contributed by Brett Cannon in :issue:`20383`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1283 +msgid "inspect" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1285 +msgid "" +"Both the :class:`~inspect.Signature` and :class:`~inspect.Parameter` classes " +"are now picklable and hashable. (Contributed by Yury Selivanov in :issue:" +"`20726` and :issue:`20334`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1289 +msgid "" +"A new :meth:`BoundArguments.apply_defaults() ` method provides a way to set default values for missing " +"arguments::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1299 +msgid "(Contributed by Yury Selivanov in :issue:`24190`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1301 +msgid "" +"A new class method :meth:`Signature.from_callable() ` makes subclassing of :class:`~inspect.Signature` easier. " +"(Contributed by Yury Selivanov and Eric Snow in :issue:`17373`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1306 +msgid "" +"The :func:`~inspect.signature` function now accepts a *follow_wrapped* " +"optional keyword argument, which, when set to ``False``, disables automatic " +"following of ``__wrapped__`` links. (Contributed by Yury Selivanov in :issue:" +"`20691`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1311 +msgid "" +"A set of new functions to inspect :term:`coroutine functions ` and :term:`coroutine objects ` has been added: :func:" +"`~inspect.iscoroutine`, :func:`~inspect.iscoroutinefunction`, :func:" +"`~inspect.isawaitable`, :func:`~inspect.getcoroutinelocals`, and :func:" +"`~inspect.getcoroutinestate`. (Contributed by Yury Selivanov in :issue:" +"`24017` and :issue:`24400`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1319 +msgid "" +"The :func:`~inspect.stack`, :func:`~inspect.trace`, :func:`~inspect." +"getouterframes`, and :func:`~inspect.getinnerframes` functions now return a " +"list of named tuples. (Contributed by Daniel Shahaf in :issue:`16808`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1326 +msgid "io" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1328 +msgid "" +"A new :meth:`BufferedIOBase.readinto1() ` " +"method, that uses at most one call to the underlying raw stream's :meth:" +"`RawIOBase.read() ` or :meth:`RawIOBase.readinto() ` methods. (Contributed by Nikolaus Rath in :issue:" +"`20578`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1336 +msgid "ipaddress" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1338 +msgid "" +"Both the :class:`~ipaddress.IPv4Network` and :class:`~ipaddress.IPv6Network` " +"classes now accept an ``(address, netmask)`` tuple argument, so as to easily " +"construct network objects from existing addresses::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1348 +msgid "(Contributed by Peter Moody and Antoine Pitrou in :issue:`16531`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1350 +msgid "" +"A new :attr:`~ipaddress.IPv4Network.reverse_pointer` attribute for the :" +"class:`~ipaddress.IPv4Network` and :class:`~ipaddress.IPv6Network` classes " +"returns the name of the reverse DNS PTR record::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1362 +msgid "(Contributed by Leon Weber in :issue:`20480`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1366 +msgid "json" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1368 +msgid "" +"The :mod:`json.tool` command line interface now preserves the order of keys " +"in JSON objects passed in input. The new ``--sort-keys`` option can be used " +"to sort the keys alphabetically. (Contributed by Berker Peksag in :issue:" +"`21650`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1373 +msgid "" +"JSON decoder now raises :exc:`~json.JSONDecodeError` instead of :exc:" +"`ValueError` to provide better context information about the error. " +"(Contributed by Serhiy Storchaka in :issue:`19361`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1379 +msgid "linecache" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1381 +msgid "" +"A new :func:`~linecache.lazycache` function can be used to capture " +"information about a non-file-based module to permit getting its lines later " +"via :func:`~linecache.getline`. This avoids doing I/O until a line is " +"actually needed, without having to carry the module globals around " +"indefinitely. (Contributed by Robert Collins in :issue:`17911`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1389 +msgid "locale" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1391 +msgid "" +"A new :func:`~locale.delocalize` function can be used to convert a string " +"into a normalized number string, taking the ``LC_NUMERIC`` settings into " +"account::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1404 +msgid "(Contributed by Cédric Krier in :issue:`13918`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1408 +msgid "logging" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1410 +msgid "" +"All logging methods (:class:`~logging.Logger` :meth:`~logging.Logger.log`, :" +"meth:`~logging.Logger.exception`, :meth:`~logging.Logger.critical`, :meth:" +"`~logging.Logger.debug`, etc.), now accept exception instances as an " +"*exc_info* argument, in addition to boolean values and exception tuples::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1423 +msgid "(Contributed by Yury Selivanov in :issue:`20537`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1425 +msgid "" +"The :class:`handlers.HTTPHandler ` class now " +"accepts an optional :class:`ssl.SSLContext` instance to configure SSL " +"settings used in an HTTP connection. (Contributed by Alex Gaynor in :issue:" +"`22788`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1430 +msgid "" +"The :class:`handlers.QueueListener ` class " +"now takes a *respect_handler_level* keyword argument which, if set to " +"``True``, will pass messages to handlers taking handler levels into account. " +"(Contributed by Vinay Sajip.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1437 +msgid "lzma" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1439 +msgid "" +"The :meth:`LZMADecompressor.decompress() ` " +"method now accepts an optional *max_length* argument to limit the maximum " +"size of decompressed data. (Contributed by Martin Panter in :issue:`15955`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1446 +msgid "math" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1448 +msgid "" +"Two new constants have been added to the :mod:`math` module: :data:`~math." +"inf` and :data:`~math.nan`. (Contributed by Mark Dickinson in :issue:" +"`23185`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1451 +msgid "" +"A new function :func:`~math.isclose` provides a way to test for approximate " +"equality. (Contributed by Chris Barker and Tal Einat in :issue:`24270`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1454 +msgid "" +"A new :func:`~math.gcd` function has been added. The :func:`fractions.gcd` " +"function is now deprecated. (Contributed by Mark Dickinson and Serhiy " +"Storchaka in :issue:`22486`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1460 +msgid "multiprocessing" +msgstr "multiprocessing" + +#: ../Doc/whatsnew/3.5.rst:1462 +msgid "" +":func:`sharedctypes.synchronized() ` objects now support the :term:`context manager` protocol. " +"(Contributed by Charles-François Natali in :issue:`21565`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1468 +msgid "operator" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1470 +msgid "" +":func:`~operator.attrgetter`, :func:`~operator.itemgetter`, and :func:" +"`~operator.methodcaller` objects now support pickling. (Contributed by Josh " +"Rosenberg and Serhiy Storchaka in :issue:`22955`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1474 +msgid "" +"New :func:`~operator.matmul` and :func:`~operator.imatmul` functions to " +"perform matrix multiplication. (Contributed by Benjamin Peterson in :issue:" +"`21176`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1480 +msgid "os" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1482 +msgid "" +"The new :func:`~os.scandir` function returning an iterator of :class:`~os." +"DirEntry` objects has been added. If possible, :func:`~os.scandir` extracts " +"file attributes while scanning a directory, removing the need to perform " +"subsequent system calls to determine file type or attributes, which may " +"significantly improve performance. (Contributed by Ben Hoyt with the help " +"of Victor Stinner in :issue:`22524`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1489 +msgid "" +"On Windows, a new :attr:`stat_result.st_file_attributes ` attribute is now available. It corresponds to the " +"``dwFileAttributes`` member of the ``BY_HANDLE_FILE_INFORMATION`` structure " +"returned by ``GetFileInformationByHandle()``. (Contributed by Ben Hoyt in :" +"issue:`21719`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1495 +msgid "" +"The :func:`~os.urandom` function now uses the ``getrandom()`` syscall on " +"Linux 3.17 or newer, and ``getentropy()`` on OpenBSD 5.6 and newer, removing " +"the need to use ``/dev/urandom`` and avoiding failures due to potential file " +"descriptor exhaustion. (Contributed by Victor Stinner in :issue:`22181`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1500 +msgid "" +"New :func:`~os.get_blocking` and :func:`~os.set_blocking` functions allow " +"getting and setting a file descriptor's blocking mode (:data:`~os." +"O_NONBLOCK`.) (Contributed by Victor Stinner in :issue:`22054`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1504 +msgid "" +"The :func:`~os.truncate` and :func:`~os.ftruncate` functions are now " +"supported on Windows. (Contributed by Steve Dower in :issue:`23668`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1507 +msgid "" +"There is a new :func:`os.path.commonpath` function returning the longest " +"common sub-path of each passed pathname. Unlike the :func:`os.path." +"commonprefix` function, it always returns a valid path::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1518 +msgid "(Contributed by Rafik Draoui and Serhiy Storchaka in :issue:`10395`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1522 +msgid "pathlib" +msgstr "pathlib" + +#: ../Doc/whatsnew/3.5.rst:1524 +msgid "" +"The new :meth:`Path.samefile() ` method can be used " +"to check whether the path points to the same file as another path, which can " +"be either another :class:`~pathlib.Path` object, or a string::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1534 +msgid "(Contributed by Vajrasky Kok and Antoine Pitrou in :issue:`19775`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1536 +msgid "" +"The :meth:`Path.mkdir() ` method now accepts a new " +"optional *exist_ok* argument to match ``mkdir -p`` and :func:`os.makedirs` " +"functionality. (Contributed by Berker Peksag in :issue:`21539`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1540 +msgid "" +"There is a new :meth:`Path.expanduser() ` method to " +"expand ``~`` and ``~user`` prefixes. (Contributed by Serhiy Storchaka and " +"Claudiu Popa in :issue:`19776`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1544 +msgid "" +"A new :meth:`Path.home() ` class method can be used to " +"get a :class:`~pathlib.Path` instance representing the user’s home " +"directory. (Contributed by Victor Salgado and Mayank Tripathi in :issue:" +"`19777`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1549 +msgid "" +"New :meth:`Path.write_text() `, :meth:`Path." +"read_text() `, :meth:`Path.write_bytes() `, :meth:`Path.read_bytes() ` " +"methods to simplify read/write operations on files." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1555 +msgid "" +"The following code snippet will create or rewrite existing file ``~/" +"spam42``::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1563 +msgid "(Contributed by Christopher Welborn in :issue:`20218`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1567 +msgid "pickle" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1569 +msgid "" +"Nested objects, such as unbound methods or nested classes, can now be " +"pickled using :ref:`pickle protocols ` older than protocol " +"version 4. Protocol version 4 already supports these cases. (Contributed by " +"Serhiy Storchaka in :issue:`23611`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1576 +msgid "poplib" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1578 +msgid "" +"A new :meth:`POP3.utf8() ` command enables :rfc:`6856` " +"(Internationalized Email) support, if a POP server supports it. (Contributed " +"by Milan OberKirch in :issue:`21804`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1584 +msgid "re" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1586 +msgid "" +"References and conditional references to groups with fixed length are now " +"allowed in lookbehind assertions::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1596 +msgid "(Contributed by Serhiy Storchaka in :issue:`9179`.)" +msgstr "(Contribution par Serhiy Storchaka; :issue:`9179`.)" + +#: ../Doc/whatsnew/3.5.rst:1598 +msgid "" +"The number of capturing groups in regular expressions is no longer limited " +"to 100. (Contributed by Serhiy Storchaka in :issue:`22437`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1601 +msgid "" +"The :func:`~re.sub` and :func:`~re.subn` functions now replace unmatched " +"groups with empty strings instead of raising an exception. (Contributed by " +"Serhiy Storchaka in :issue:`1519638`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1605 +msgid "" +"The :class:`re.error` exceptions have new attributes, :attr:`~re.error." +"msg`, :attr:`~re.error.pattern`, :attr:`~re.error.pos`, :attr:`~re.error." +"lineno`, and :attr:`~re.error.colno`, that provide better context " +"information about the error::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1619 +msgid "(Contributed by Serhiy Storchaka in :issue:`22578`.)" +msgstr "(Contribution par Serhiy Storchaka; :issue:`22578`.)" + +#: ../Doc/whatsnew/3.5.rst:1623 +msgid "readline" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1625 +msgid "" +"A new :func:`~readline.append_history_file` function can be used to append " +"the specified number of trailing elements in history to the given file. " +"(Contributed by Bruno Cauet in :issue:`22940`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1631 +msgid "selectors" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1633 +msgid "" +"The new :class:`~selectors.DevpollSelector` supports efficient ``/dev/poll`` " +"polling on Solaris. (Contributed by Giampaolo Rodola' in :issue:`18931`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1639 +msgid "shutil" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1641 +msgid "" +"The :func:`~shutil.move` function now accepts a *copy_function* argument, " +"allowing, for example, the :func:`~shutil.copy` function to be used instead " +"of the default :func:`~shutil.copy2` if there is a need to ignore file " +"metadata when moving. (Contributed by Claudiu Popa in :issue:`19840`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1647 +msgid "" +"The :func:`~shutil.make_archive` function now supports the *xztar* format. " +"(Contributed by Serhiy Storchaka in :issue:`5411`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1652 +msgid "signal" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1654 +msgid "" +"On Windows, the :func:`~signal.set_wakeup_fd` function now also supports " +"socket handles. (Contributed by Victor Stinner in :issue:`22018`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1657 +msgid "" +"Various ``SIG*`` constants in the :mod:`signal` module have been converted " +"into :mod:`Enums `. This allows meaningful names to be printed during " +"debugging, instead of integer \"magic numbers\". (Contributed by Giampaolo " +"Rodola' in :issue:`21076`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1664 +msgid "smtpd" +msgstr "smtpd" + +#: ../Doc/whatsnew/3.5.rst:1666 +msgid "" +"Both the :class:`~smtpd.SMTPServer` and :class:`~smtpd.SMTPChannel` classes " +"now accept a *decode_data* keyword argument to determine if the ``DATA`` " +"portion of the SMTP transaction is decoded using the ``\"utf-8\"`` codec or " +"is instead provided to the :meth:`SMTPServer.process_message() ` method as a byte string. The default is " +"``True`` for backward compatibility reasons, but will change to ``False`` in " +"Python 3.6. If *decode_data* is set to ``False``, the ``process_message`` " +"method must be prepared to accept keyword arguments. (Contributed by Maciej " +"Szulik in :issue:`19662`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1677 +msgid "" +"The :class:`~smtpd.SMTPServer` class now advertises the ``8BITMIME`` " +"extension (:rfc:`6152`) if *decode_data* has been set ``True``. If the " +"client specifies ``BODY=8BITMIME`` on the ``MAIL`` command, it is passed to :" +"meth:`SMTPServer.process_message() ` via " +"the *mail_options* keyword. (Contributed by Milan Oberkirch and R. David " +"Murray in :issue:`21795`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1684 +msgid "" +"The :class:`~smtpd.SMTPServer` class now also supports the ``SMTPUTF8`` " +"extension (:rfc:`6531`: Internationalized Email). If the client specified " +"``SMTPUTF8 BODY=8BITMIME`` on the ``MAIL`` command, they are passed to :meth:" +"`SMTPServer.process_message() ` via the " +"*mail_options* keyword. It is the responsibility of the ``process_message`` " +"method to correctly handle the ``SMTPUTF8`` data. (Contributed by Milan " +"Oberkirch in :issue:`21725`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1692 +msgid "" +"It is now possible to provide, directly or via name resolution, IPv6 " +"addresses in the :class:`~smtpd.SMTPServer` constructor, and have it " +"successfully connect. (Contributed by Milan Oberkirch in :issue:`14758`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1698 +msgid "smtplib" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1700 +msgid "" +"A new :meth:`SMTP.auth() ` method provides a convenient " +"way to implement custom authentication mechanisms. (Contributed by Milan " +"Oberkirch in :issue:`15014`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1704 +msgid "" +"The :meth:`SMTP.set_debuglevel() ` method now " +"accepts an additional debuglevel (2), which enables timestamps in debug " +"messages. (Contributed by Gavin Chappell and Maciej Szulik in :issue:" +"`16914`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1708 +msgid "" +"Both the :meth:`SMTP.sendmail() ` and :meth:`SMTP." +"send_message() ` methods now support :rfc:`6531` " +"(SMTPUTF8). (Contributed by Milan Oberkirch and R. David Murray in :issue:" +"`22027`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1715 +msgid "sndhdr" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1717 +msgid "" +"The :func:`~sndhdr.what` and :func:`~sndhdr.whathdr` functions now return " +"a :func:`~collections.namedtuple`. (Contributed by Claudiu Popa in :issue:" +"`18615`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1723 +msgid "socket" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1725 +msgid "" +"Functions with timeouts now use a monotonic clock, instead of a system " +"clock. (Contributed by Victor Stinner in :issue:`22043`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1728 +msgid "" +"A new :meth:`socket.sendfile() ` method allows " +"sending a file over a socket by using the high-performance :func:`os." +"sendfile` function on UNIX, resulting in uploads being from 2 to 3 times " +"faster than when using plain :meth:`socket.send() `. " +"(Contributed by Giampaolo Rodola' in :issue:`17552`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1734 +msgid "" +"The :meth:`socket.sendall() ` method no longer resets " +"the socket timeout every time bytes are received or sent. The socket " +"timeout is now the maximum total duration to send all data. (Contributed by " +"Victor Stinner in :issue:`23853`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1739 +msgid "" +"The *backlog* argument of the :meth:`socket.listen() ` " +"method is now optional. By default it is set to :data:`SOMAXCONN ` or to ``128``, whichever is less. (Contributed by Charles-" +"François Natali in :issue:`21455`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1746 +msgid "ssl" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1751 +msgid "Memory BIO Support" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1753 +msgid "(Contributed by Geert Jansen in :issue:`21965`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1755 +msgid "" +"The new :class:`~ssl.SSLObject` class has been added to provide SSL protocol " +"support for cases when the network I/O capabilities of :class:`~ssl." +"SSLSocket` are not necessary or are suboptimal. ``SSLObject`` represents an " +"SSL protocol instance, but does not implement any network I/O methods, and " +"instead provides a memory buffer interface. The new :class:`~ssl.MemoryBIO` " +"class can be used to pass data between Python and an SSL protocol instance." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1762 +msgid "" +"The memory BIO SSL support is primarily intended to be used in frameworks " +"implementing asynchronous I/O for which :class:`~ssl.SSLSocket`'s readiness " +"model (\"select/poll\") is inefficient." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1766 +msgid "" +"A new :meth:`SSLContext.wrap_bio() ` method can be " +"used to create a new ``SSLObject`` instance." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1771 +msgid "Application-Layer Protocol Negotiation Support" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1773 +msgid "(Contributed by Benjamin Peterson in :issue:`20188`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1775 +msgid "" +"Where OpenSSL support is present, the :mod:`ssl` module now implements the " +"*Application-Layer Protocol Negotiation* TLS extension as described in :rfc:" +"`7301`." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1779 +msgid "" +"The new :meth:`SSLContext.set_alpn_protocols() ` can be used to specify which protocols a socket should " +"advertise during the TLS handshake." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1783 +msgid "" +"The new :meth:`SSLSocket.selected_alpn_protocol() ` returns the protocol that was selected during the " +"TLS handshake. The :data:`~ssl.HAS_ALPN` flag indicates whether ALPN support " +"is present." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1790 +msgid "Other Changes" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1792 +msgid "" +"There is a new :meth:`SSLSocket.version() ` method to " +"query the actual protocol version in use. (Contributed by Antoine Pitrou in :" +"issue:`20421`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1796 +msgid "" +"The :class:`~ssl.SSLSocket` class now implements a :meth:`SSLSocket." +"sendfile() ` method. (Contributed by Giampaolo " +"Rodola' in :issue:`17552`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1800 +msgid "" +"The :meth:`SSLSocket.send() ` method now raises either " +"the :exc:`ssl.SSLWantReadError` or :exc:`ssl.SSLWantWriteError` exception on " +"a non-blocking socket if the operation would block. Previously, it would " +"return ``0``. (Contributed by Nikolaus Rath in :issue:`20951`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1805 +msgid "" +"The :func:`~ssl.cert_time_to_seconds` function now interprets the input time " +"as UTC and not as local time, per :rfc:`5280`. Additionally, the return " +"value is always an :class:`int`. (Contributed by Akira Li in :issue:`19940`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1809 +msgid "" +"New :meth:`SSLObject.shared_ciphers() ` and :" +"meth:`SSLSocket.shared_ciphers() ` methods " +"return the list of ciphers sent by the client during the handshake. " +"(Contributed by Benjamin Peterson in :issue:`23186`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1814 +msgid "" +"The :meth:`SSLSocket.do_handshake() `, :meth:" +"`SSLSocket.read() `, :meth:`SSLSocket.shutdown() `, and :meth:`SSLSocket.write() ` " +"methods of the :class:`~ssl.SSLSocket` class no longer reset the socket " +"timeout every time bytes are received or sent. The socket timeout is now the " +"maximum total duration of the method. (Contributed by Victor Stinner in :" +"issue:`23853`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1822 +msgid "" +"The :func:`~ssl.match_hostname` function now supports matching of IP " +"addresses. (Contributed by Antoine Pitrou in :issue:`23239`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1827 +msgid "sqlite3" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1829 +msgid "" +"The :class:`~sqlite3.Row` class now fully supports the sequence protocol, in " +"particular :func:`reversed` iteration and slice indexing. (Contributed by " +"Claudiu Popa in :issue:`10203`; by Lucas Sinclair, Jessica McKellar, and " +"Serhiy Storchaka in :issue:`13583`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1838 +msgid "subprocess" +msgstr "subprocess" + +#: ../Doc/whatsnew/3.5.rst:1840 +msgid "" +"The new :func:`~subprocess.run` function has been added. It runs the " +"specified command and returns a :class:`~subprocess.CompletedProcess` " +"object, which describes a finished process. The new API is more consistent " +"and is the recommended approach to invoking subprocesses in Python code that " +"does not need to maintain compatibility with earlier Python versions. " +"(Contributed by Thomas Kluyver in :issue:`23342`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1864 +msgid "sys" +msgstr "sys" + +#: ../Doc/whatsnew/3.5.rst:1866 +msgid "" +"A new :func:`~sys.set_coroutine_wrapper` function allows setting a global " +"hook that will be called whenever a :term:`coroutine object ` is " +"created by an :keyword:`async def` function. A corresponding :func:`~sys." +"get_coroutine_wrapper` can be used to obtain a currently set wrapper. Both " +"functions are :term:`provisional `, and are intended for " +"debugging purposes only. (Contributed by Yury Selivanov in :issue:`24017`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1874 +msgid "" +"A new :func:`~sys.is_finalizing` function can be used to check if the Python " +"interpreter is :term:`shutting down `. (Contributed by " +"Antoine Pitrou in :issue:`22696`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1880 +msgid "sysconfig" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1882 +msgid "" +"The name of the user scripts directory on Windows now includes the first two " +"components of the Python version. (Contributed by Paul Moore in :issue:" +"`23437`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1888 +msgid "tarfile" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1890 +msgid "" +"The *mode* argument of the :func:`~tarfile.open` function now accepts ``\"x" +"\"`` to request exclusive creation. (Contributed by Berker Peksag in :issue:" +"`21717`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1893 +msgid "" +"The :meth:`TarFile.extractall() ` and :meth:" +"`TarFile.extract() ` methods now take a keyword " +"argument *numeric_owner*. If set to ``True``, the extracted files and " +"directories will be owned by the numeric ``uid`` and ``gid`` from the " +"tarfile. If set to ``False`` (the default, and the behavior in versions " +"prior to 3.5), they will be owned by the named user and group in the " +"tarfile. (Contributed by Michael Vogt and Eric Smith in :issue:`23193`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1901 +msgid "" +"The :meth:`TarFile.list() ` now accepts an optional " +"*members* keyword argument that can be set to a subset of the list returned " +"by :meth:`TarFile.getmembers() `. (Contributed " +"by Serhiy Storchaka in :issue:`21549`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1908 +msgid "threading" +msgstr "threading" + +#: ../Doc/whatsnew/3.5.rst:1910 +msgid "" +"Both the :meth:`Lock.acquire() ` and :meth:`RLock." +"acquire() ` methods now use a monotonic clock for " +"timeout management. (Contributed by Victor Stinner in :issue:`22043`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1917 +msgid "time" +msgstr "time" + +#: ../Doc/whatsnew/3.5.rst:1919 +msgid "" +"The :func:`~time.monotonic` function is now always available. (Contributed " +"by Victor Stinner in :issue:`22043`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1924 +msgid "timeit" +msgstr "timeit" + +#: ../Doc/whatsnew/3.5.rst:1926 +msgid "" +"A new command line option ``-u`` or :samp:`--unit={U}` can be used to " +"specify the time unit for the timer output. Supported options are ``usec``, " +"``msec``, or ``sec``. (Contributed by Julian Gindi in :issue:`18983`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1930 +msgid "" +"The :func:`~timeit.timeit` function has a new *globals* parameter for " +"specifying the namespace in which the code will be running. (Contributed by " +"Ben Roberts in :issue:`2527`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1936 +msgid "tkinter" +msgstr "tkinter" + +#: ../Doc/whatsnew/3.5.rst:1938 +msgid "" +"The :mod:`tkinter._fix` module used for setting up the Tcl/Tk environment on " +"Windows has been replaced by a private function in the :mod:`_tkinter` " +"module which makes no permanent changes to environment variables. " +"(Contributed by Zachary Ware in :issue:`20035`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1947 +msgid "traceback" +msgstr "traceback" + +#: ../Doc/whatsnew/3.5.rst:1949 +msgid "" +"New :func:`~traceback.walk_stack` and :func:`~traceback.walk_tb` functions " +"to conveniently traverse frame and traceback objects. (Contributed by Robert " +"Collins in :issue:`17911`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1953 +msgid "" +"New lightweight classes: :class:`~traceback.TracebackException`, :class:" +"`~traceback.StackSummary`, and :class:`~traceback.FrameSummary`. " +"(Contributed by Robert Collins in :issue:`17911`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1957 +msgid "" +"Both the :func:`~traceback.print_tb` and :func:`~traceback.print_stack` " +"functions now support negative values for the *limit* argument. (Contributed " +"by Dmitry Kazakov in :issue:`22619`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1963 +msgid "types" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1965 +msgid "" +"A new :func:`~types.coroutine` function to transform :term:`generator " +"` and :class:`generator-like ` objects into :term:`awaitables `. (Contributed by " +"Yury Selivanov in :issue:`24017`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1971 +msgid "" +"A new type called :class:`~types.CoroutineType`, which is used for :term:" +"`coroutine` objects created by :keyword:`async def` functions. (Contributed " +"by Yury Selivanov in :issue:`24400`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1977 +msgid "unicodedata" +msgstr "unicodedata" + +#: ../Doc/whatsnew/3.5.rst:1979 +msgid "" +"The :mod:`unicodedata` module now uses data from `Unicode 8.0.0 `_." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1984 +msgid "unittest" +msgstr "unittest" + +#: ../Doc/whatsnew/3.5.rst:1986 +msgid "" +"The :meth:`TestLoader.loadTestsFromModule() ` method now accepts a keyword-only argument *pattern* " +"which is passed to ``load_tests`` as the third argument. Found packages are " +"now checked for ``load_tests`` regardless of whether their path matches " +"*pattern*, because it is impossible for a package name to match the default " +"pattern. (Contributed by Robert Collins and Barry A. Warsaw in :issue:" +"`16662`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1993 +msgid "" +"Unittest discovery errors now are exposed in the :data:`TestLoader.errors " +"` attribute of the :class:`~unittest.TestLoader` " +"instance. (Contributed by Robert Collins in :issue:`19746`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:1998 +msgid "" +"A new command line option ``--locals`` to show local variables in " +"tracebacks. (Contributed by Robert Collins in :issue:`22936`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2003 +msgid "unittest.mock" +msgstr "unittest.mock" + +#: ../Doc/whatsnew/3.5.rst:2005 +msgid "The :class:`~unittest.mock.Mock` class has the following improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2007 +msgid "" +"The class constructor has a new *unsafe* parameter, which causes mock " +"objects to raise :exc:`AttributeError` on attribute names starting with ``" +"\"assert\"``. (Contributed by Kushal Das in :issue:`21238`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2012 +msgid "" +"A new :meth:`Mock.assert_not_called() ` method to check if the mock object was called. " +"(Contributed by Kushal Das in :issue:`21262`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2016 +msgid "" +"The :class:`~unittest.mock.MagicMock` class now supports :meth:" +"`__truediv__`, :meth:`__divmod__` and :meth:`__matmul__` operators. " +"(Contributed by Johannes Baiter in :issue:`20968`, and Håkan Lövdahl in :" +"issue:`23581` and :issue:`23568`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2021 +msgid "" +"It is no longer necessary to explicitly pass ``create=True`` to the :func:" +"`~unittest.mock.patch` function when patching builtin names. (Contributed by " +"Kushal Das in :issue:`17660`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2027 +msgid "urllib" +msgstr "urllib" + +#: ../Doc/whatsnew/3.5.rst:2029 +msgid "" +"A new :class:`request.HTTPPasswordMgrWithPriorAuth ` class allows HTTP Basic Authentication " +"credentials to be managed so as to eliminate unnecessary ``401`` response " +"handling, or to unconditionally send credentials on the first request in " +"order to communicate with servers that return a ``404`` response instead of " +"a ``401`` if the ``Authorization`` header is not sent. (Contributed by Matej " +"Cepl in :issue:`19494` and Akshit Khurana in :issue:`7159`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2038 +msgid "" +"A new *quote_via* argument for the :func:`parse.urlencode() ` function provides a way to control the encoding of query parts " +"if needed. (Contributed by Samwyse and Arnon Yaari in :issue:`13866`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2043 +msgid "" +"The :func:`request.urlopen() ` function accepts an :" +"class:`ssl.SSLContext` object as a *context* argument, which will be used " +"for the HTTPS connection. (Contributed by Alex Gaynor in :issue:`22366`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2047 +msgid "" +"The :func:`parse.urljoin() ` was updated to use the :" +"rfc:`3986` semantics for the resolution of relative URLs, rather than :rfc:" +"`1808` and :rfc:`2396`. (Contributed by Demian Brecht and Senthil Kumaran " +"in :issue:`22118`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2054 +msgid "wsgiref" +msgstr "wsgiref" + +#: ../Doc/whatsnew/3.5.rst:2056 +msgid "" +"The *headers* argument of the :class:`headers.Headers ` class constructor is now optional. (Contributed by Pablo Torres " +"Navarrete and SilentGhost in :issue:`5800`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2062 +msgid "xmlrpc" +msgstr "xmlrpc" + +#: ../Doc/whatsnew/3.5.rst:2064 +msgid "" +"The :class:`client.ServerProxy ` class now " +"supports the :term:`context manager` protocol. (Contributed by Claudiu Popa " +"in :issue:`20627`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2068 +msgid "" +"The :class:`client.ServerProxy ` constructor now " +"accepts an optional :class:`ssl.SSLContext` instance. (Contributed by Alex " +"Gaynor in :issue:`22960`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2074 +msgid "xml.sax" +msgstr "xml.sax" + +#: ../Doc/whatsnew/3.5.rst:2076 +msgid "" +"SAX parsers now support a character stream of the :class:`xmlreader." +"InputSource ` object. (Contributed by Serhiy " +"Storchaka in :issue:`2175`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2080 +msgid "" +":func:`~xml.sax.parseString` now accepts a :class:`str` instance. " +"(Contributed by Serhiy Storchaka in :issue:`10590`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2085 +msgid "zipfile" +msgstr "zipfile" + +#: ../Doc/whatsnew/3.5.rst:2087 +msgid "" +"ZIP output can now be written to unseekable streams. (Contributed by Serhiy " +"Storchaka in :issue:`23252`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2090 +msgid "" +"The *mode* argument of :meth:`ZipFile.open() ` method " +"now accepts ``\"x\"`` to request exclusive creation. (Contributed by Serhiy " +"Storchaka in :issue:`21717`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2096 +msgid "Other module-level changes" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2098 +msgid "" +"Many functions in the :mod:`mmap`, :mod:`ossaudiodev`, :mod:`socket`, :mod:" +"`ssl`, and :mod:`codecs` modules now accept writable :term:`bytes-like " +"objects `. (Contributed by Serhiy Storchaka in :issue:" +"`23001`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2105 +msgid "Optimizations" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2107 +msgid "" +"The :func:`os.walk` function has been sped up by 3 to 5 times on POSIX " +"systems, and by 7 to 20 times on Windows. This was done using the new :func:" +"`os.scandir` function, which exposes file information from the underlying " +"``readdir`` or ``FindFirstFile``/``FindNextFile`` system calls. " +"(Contributed by Ben Hoyt with help from Victor Stinner in :issue:`23605`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2113 +msgid "" +"Construction of ``bytes(int)`` (filled by zero bytes) is faster and uses " +"less memory for large objects. ``calloc()`` is used instead of ``malloc()`` " +"to allocate memory for these objects. (Contributed by Victor Stinner in :" +"issue:`21233`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2118 +msgid "" +"Some operations on :mod:`ipaddress` :class:`~ipaddress.IPv4Network` and :" +"class:`~ipaddress.IPv6Network` have been massively sped up, such as :meth:" +"`~ipaddress.IPv4Network.subnets`, :meth:`~ipaddress.IPv4Network.supernet`, :" +"func:`~ipaddress.summarize_address_range`, :func:`~ipaddress." +"collapse_addresses`. The speed up can range from 3 to 15 times. (Contributed " +"by Antoine Pitrou, Michel Albert, and Markus in :issue:`21486`, :issue:" +"`21487`, :issue:`20826`, :issue:`23266`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2126 +msgid "" +"Pickling of :mod:`ipaddress` objects was optimized to produce significantly " +"smaller output. (Contributed by Serhiy Storchaka in :issue:`23133`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2129 +msgid "" +"Many operations on :class:`io.BytesIO` are now 50% to 100% faster. " +"(Contributed by Serhiy Storchaka in :issue:`15381` and David Wilson in :" +"issue:`22003`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2133 +msgid "" +"The :func:`marshal.dumps` function is now faster: 65--85% with versions 3 " +"and 4, 20--25% with versions 0 to 2 on typical data, and up to 5 times in " +"best cases. (Contributed by Serhiy Storchaka in :issue:`20416` and :issue:" +"`23344`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2138 +msgid "" +"The UTF-32 encoder is now 3 to 7 times faster. (Contributed by Serhiy " +"Storchaka in :issue:`15027`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2141 +msgid "" +"Regular expressions are now parsed up to 10% faster. (Contributed by Serhiy " +"Storchaka in :issue:`19380`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2144 +msgid "" +"The :func:`json.dumps` function was optimized to run with " +"``ensure_ascii=False`` as fast as with ``ensure_ascii=True``. (Contributed " +"by Naoki Inada in :issue:`23206`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2148 +msgid "" +"The :c:func:`PyObject_IsInstance` and :c:func:`PyObject_IsSubclass` " +"functions have been sped up in the common case that the second argument has :" +"class:`type` as its metaclass. (Contributed Georg Brandl by in :issue:" +"`22540`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2153 +msgid "" +"Method caching was slightly improved, yielding up to 5% performance " +"improvement in some benchmarks. (Contributed by Antoine Pitrou in :issue:" +"`22847`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2157 +msgid "" +"Objects from the :mod:`random` module now use 50% less memory on 64-bit " +"builds. (Contributed by Serhiy Storchaka in :issue:`23488`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2160 +msgid "" +"The :func:`property` getter calls are up to 25% faster. (Contributed by Joe " +"Jevnik in :issue:`23910`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2163 +msgid "" +"Instantiation of :class:`fractions.Fraction` is now up to 30% faster. " +"(Contributed by Stefan Behnel in :issue:`22464`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2166 +msgid "" +"String methods :meth:`~str.find`, :meth:`~str.rfind`, :meth:`~str.split`, :" +"meth:`~str.partition` and the :keyword:`in` string operator are now " +"significantly faster for searching 1-character substrings. (Contributed by " +"Serhiy Storchaka in :issue:`23573`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2173 +msgid "Build and C API Changes" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2175 +msgid "New ``calloc`` functions were added:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2177 +msgid ":c:func:`PyMem_RawCalloc`," +msgstr ":c:func:`PyMem_RawCalloc`," + +#: ../Doc/whatsnew/3.5.rst:2178 +msgid ":c:func:`PyMem_Calloc`," +msgstr ":c:func:`PyMem_Calloc`," + +#: ../Doc/whatsnew/3.5.rst:2179 +msgid ":c:func:`PyObject_Calloc`." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2181 +msgid "(Contributed by Victor Stinner in :issue:`21233`.)" +msgstr "(Contribution par Victor Stinner; :issue:`21233`.)" + +#: ../Doc/whatsnew/3.5.rst:2183 +msgid "New encoding/decoding helper functions:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2185 +msgid ":c:func:`Py_DecodeLocale` (replaced ``_Py_char2wchar()``)," +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2186 +msgid ":c:func:`Py_EncodeLocale` (replaced ``_Py_wchar2char()``)." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2188 +msgid "(Contributed by Victor Stinner in :issue:`18395`.)" +msgstr "(Contribution par Victor Stinner; :issue:`18395`.)" + +#: ../Doc/whatsnew/3.5.rst:2190 +msgid "" +"A new :c:func:`PyCodec_NameReplaceErrors` function to replace the unicode " +"encode error with ``\\N{...}`` escapes. (Contributed by Serhiy Storchaka in :" +"issue:`19676`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2194 +msgid "" +"A new :c:func:`PyErr_FormatV` function similar to :c:func:`PyErr_Format`, " +"but accepts a ``va_list`` argument. (Contributed by Antoine Pitrou in :issue:" +"`18711`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2198 +msgid "" +"A new :c:data:`PyExc_RecursionError` exception. (Contributed by Georg Brandl " +"in :issue:`19235`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2201 +msgid "" +"New :c:func:`PyModule_FromDefAndSpec`, :c:func:`PyModule_FromDefAndSpec2`, " +"and :c:func:`PyModule_ExecDef` functions introduced by :pep:`489` -- multi-" +"phase extension module initialization. (Contributed by Petr Viktorin in :" +"issue:`24268`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2206 +msgid "" +"New :c:func:`PyNumber_MatrixMultiply` and :c:func:" +"`PyNumber_InPlaceMatrixMultiply` functions to perform matrix multiplication. " +"(Contributed by Benjamin Peterson in :issue:`21176`. See also :pep:`465` " +"for details.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2212 +msgid "" +"The :c:member:`PyTypeObject.tp_finalize` slot is now part of the stable ABI." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2214 +msgid "" +"Windows builds now require Microsoft Visual C++ 14.0, which is available as " +"part of `Visual Studio 2015 `_." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2217 +msgid "" +"Extension modules now include a platform information tag in their filename " +"on some platforms (the tag is optional, and CPython will import extensions " +"without it, although if the tag is present and mismatched, the extension " +"won't be loaded):" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2222 +msgid "" +"On Linux, extension module filenames end with ``.cpython-m-" +"-.pyd``:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2225 ../Doc/whatsnew/3.5.rst:2242 +msgid "" +"```` is the major number of the Python version; for Python 3.5 this " +"is ``3``." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2228 ../Doc/whatsnew/3.5.rst:2245 +msgid "" +"```` is the minor number of the Python version; for Python 3.5 this " +"is ``5``." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2231 +msgid "" +"```` is the hardware architecture the extension module was " +"built to run on. It's most commonly either ``i386`` for 32-bit Intel " +"platforms or ``x86_64`` for 64-bit Intel (and AMD) platforms." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2235 +msgid "" +"```` is always ``linux-gnu``, except for extensions built to talk to the " +"32-bit ABI on 64-bit platforms, in which case it is ``linux-gnu32`` (and " +"```` will be ``x86_64``)." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2239 +msgid "" +"On Windows, extension module filenames end with ``.cp-" +".pyd``:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2248 +msgid "" +"```` is the platform the extension module was built for, either " +"``win32`` for Win32, ``win_amd64`` for Win64, ``win_ia64`` for Windows " +"Itanium 64, and ``win_arm`` for Windows on ARM." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2252 +msgid "" +"If built in debug mode, ```` will be ``_d``, otherwise it will be " +"blank." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2255 +msgid "" +"On OS X platforms, extension module filenames now end with ``-darwin.so``." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2257 +msgid "" +"On all other platforms, extension module filenames are the same as they were " +"with Python 3.4." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2262 +msgid "Deprecated" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2265 +msgid "New Keywords" +msgstr "Nouveaux mot-clefs" + +#: ../Doc/whatsnew/3.5.rst:2267 +msgid "" +"``async`` and ``await`` are not recommended to be used as variable, class, " +"function or module names. Introduced by :pep:`492` in Python 3.5, they will " +"become proper keywords in Python 3.7." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2273 +msgid "Deprecated Python Behavior" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2275 +msgid "" +"Raising the :exc:`StopIteration` exception inside a generator will now " +"generate a silent :exc:`PendingDeprecationWarning`, which will become a non-" +"silent deprecation warning in Python 3.6 and will trigger a :exc:" +"`RuntimeError` in Python 3.7. See :ref:`PEP 479: Change StopIteration " +"handling inside generators ` for details." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2283 +msgid "Unsupported Operating Systems" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2285 +msgid "" +"Windows XP is no longer supported by Microsoft, thus, per :PEP:`11`, CPython " +"3.5 is no longer officially supported on this OS." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2290 +msgid "Deprecated Python modules, functions and methods" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2292 +msgid "" +"The :mod:`formatter` module has now graduated to full deprecation and is " +"still slated for removal in Python 3.6." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2295 +msgid "" +"The :func:`asyncio.async` function is deprecated in favor of :func:`~asyncio." +"ensure_future`." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2298 +msgid "" +"The :mod:`smtpd` module has in the past always decoded the DATA portion of " +"email messages using the ``utf-8`` codec. This can now be controlled by the " +"new *decode_data* keyword to :class:`~smtpd.SMTPServer`. The default value " +"is ``True``, but this default is deprecated. Specify the *decode_data* " +"keyword with an appropriate value to avoid the deprecation warning." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2304 +msgid "" +"Directly assigning values to the :attr:`~http.cookies.Morsel.key`, :attr:" +"`~http.cookies.Morsel.value` and :attr:`~http.cookies.Morsel.coded_value` " +"of :class:`http.cookies.Morsel` objects is deprecated. Use the :meth:`~http." +"cookies.Morsel.set` method instead. In addition, the undocumented " +"*LegalChars* parameter of :meth:`~http.cookies.Morsel.set` is deprecated, " +"and is now ignored." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2311 +msgid "" +"Passing a format string as keyword argument *format_string* to the :meth:" +"`~string.Formatter.format` method of the :class:`string.Formatter` class has " +"been deprecated. (Contributed by Serhiy Storchaka in :issue:`23671`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2316 +msgid "" +"The :func:`platform.dist` and :func:`platform.linux_distribution` functions " +"are now deprecated. Linux distributions use too many different ways of " +"describing themselves, so the functionality is left to a package. " +"(Contributed by Vajrasky Kok and Berker Peksag in :issue:`1322`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2321 +msgid "" +"The previously undocumented ``from_function`` and ``from_builtin`` methods " +"of :class:`inspect.Signature` are deprecated. Use the new :meth:`Signature." +"from_callable() ` method instead. " +"(Contributed by Yury Selivanov in :issue:`24248`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2326 +msgid "" +"The :func:`inspect.getargspec` function is deprecated and scheduled to be " +"removed in Python 3.6. (See :issue:`20438` for details.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2329 +msgid "" +"The :mod:`inspect` :func:`~inspect.getfullargspec`, :func:`~inspect." +"getcallargs`, and :func:`~inspect.formatargspec` functions are deprecated in " +"favor of the :func:`inspect.signature` API. (Contributed by Yury Selivanov " +"in :issue:`20438`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2334 +msgid "" +":func:`~inspect.getargvalues` and :func:`~inspect.formatargvalues` functions " +"were inadvertently marked as deprecated with the release of Python 3.5.0." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2337 +msgid "" +"Use of :const:`re.LOCALE` flag with str patterns or :const:`re.ASCII` is now " +"deprecated. (Contributed by Serhiy Storchaka in :issue:`22407`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2340 +msgid "" +"Use of unrecognized special sequences consisting of ``'\\'`` and an ASCII " +"letter in regular expression patterns and replacement patterns now raises a " +"deprecation warning and will be forbidden in Python 3.6. (Contributed by " +"Serhiy Storchaka in :issue:`23622`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2345 +msgid "" +"The undocumented and unofficial *use_load_tests* default argument of the :" +"meth:`unittest.TestLoader.loadTestsFromModule` method now is deprecated and " +"ignored. (Contributed by Robert Collins and Barry A. Warsaw in :issue:" +"`16662`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2352 +msgid "Removed" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2355 +msgid "API and Feature Removals" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2357 +msgid "" +"The following obsolete and previously deprecated APIs and features have been " +"removed:" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2360 +msgid "" +"The ``__version__`` attribute has been dropped from the email package. The " +"email code hasn't been shipped separately from the stdlib for a long time, " +"and the ``__version__`` string was not updated in the last few releases." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2364 +msgid "" +"The internal ``Netrc`` class in the :mod:`ftplib` module was deprecated in " +"3.4, and has now been removed. (Contributed by Matt Chaput in :issue:`6623`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2368 +msgid "The concept of ``.pyo`` files has been removed." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2370 +msgid "" +"The JoinableQueue class in the provisional :mod:`asyncio` module was " +"deprecated in 3.4.4 and is now removed. (Contributed by A. Jesse Jiryu Davis " +"in :issue:`23464`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2376 +msgid "Porting to Python 3.5" +msgstr "Portage vers Python 3.5" + +#: ../Doc/whatsnew/3.5.rst:2378 +msgid "" +"This section lists previously described changes and other bugfixes that may " +"require changes to your code." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2383 +msgid "Changes in Python behavior" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2385 +msgid "" +"Due to an oversight, earlier Python versions erroneously accepted the " +"following syntax::" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2391 +msgid "" +"Python 3.5 now correctly raises a :exc:`SyntaxError`, as generator " +"expressions must be put in parentheses if not a sole argument to a function." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2396 +msgid "Changes in the Python API" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2398 +msgid "" +":pep:`475`: System calls are now retried when interrupted by a signal " +"instead of raising :exc:`InterruptedError` if the Python signal handler does " +"not raise an exception." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2402 +msgid "" +"Before Python 3.5, a :class:`datetime.time` object was considered to be " +"false if it represented midnight in UTC. This behavior was considered " +"obscure and error-prone and has been removed in Python 3.5. See :issue:" +"`13936` for full details." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2407 +msgid "" +"The :meth:`ssl.SSLSocket.send()` method now raises either :exc:`ssl." +"SSLWantReadError` or :exc:`ssl.SSLWantWriteError` on a non-blocking socket " +"if the operation would block. Previously, it would return ``0``. " +"(Contributed by Nikolaus Rath in :issue:`20951`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2412 +msgid "" +"The ``__name__`` attribute of generators is now set from the function name, " +"instead of being set from the code name. Use ``gen.gi_code.co_name`` to " +"retrieve the code name. Generators also have a new ``__qualname__`` " +"attribute, the qualified name, which is now used for the representation of a " +"generator (``repr(gen)``). (Contributed by Victor Stinner in :issue:`21205`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2419 +msgid "" +"The deprecated \"strict\" mode and argument of :class:`~html.parser." +"HTMLParser`, :meth:`HTMLParser.error`, and the :exc:`HTMLParserError` " +"exception have been removed. (Contributed by Ezio Melotti in :issue:" +"`15114`.) The *convert_charrefs* argument of :class:`~html.parser." +"HTMLParser` is now ``True`` by default. (Contributed by Berker Peksag in :" +"issue:`21047`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2425 +msgid "" +"Although it is not formally part of the API, it is worth noting for porting " +"purposes (ie: fixing tests) that error messages that were previously of the " +"form \"'sometype' does not support the buffer protocol\" are now of the form " +"\"a :term:`bytes-like object` is required, not 'sometype'\". (Contributed by " +"Ezio Melotti in :issue:`16518`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2431 +msgid "" +"If the current directory is set to a directory that no longer exists then :" +"exc:`FileNotFoundError` will no longer be raised and instead :meth:" +"`~importlib.machinery.FileFinder.find_spec` will return ``None`` **without** " +"caching ``None`` in :data:`sys.path_importer_cache`, which is different than " +"the typical case (:issue:`22834`)." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2437 +msgid "" +"HTTP status code and messages from :mod:`http.client` and :mod:`http.server` " +"were refactored into a common :class:`~http.HTTPStatus` enum. The values " +"in :mod:`http.client` and :mod:`http.server` remain available for backwards " +"compatibility. (Contributed by Demian Brecht in :issue:`21793`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2442 +msgid "" +"When an import loader defines :meth:`importlib.machinery.Loader.exec_module` " +"it is now expected to also define :meth:`~importlib.machinery.Loader." +"create_module` (raises a :exc:`DeprecationWarning` now, will be an error in " +"Python 3.6). If the loader inherits from :class:`importlib.abc.Loader` then " +"there is nothing to do, else simply define :meth:`~importlib.machinery." +"Loader.create_module` to return ``None``. (Contributed by Brett Cannon in :" +"issue:`23014`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2450 +msgid "" +"The :func:`re.split` function always ignored empty pattern matches, so the ``" +"\"x*\"`` pattern worked the same as ``\"x+\"``, and the ``\"\\b\"`` pattern " +"never worked. Now :func:`re.split` raises a warning if the pattern could " +"match an empty string. For compatibility, use patterns that never match an " +"empty string (e.g. ``\"x+\"`` instead of ``\"x*\"``). Patterns that could " +"only match an empty string (such as ``\"\\b\"``) now raise an error. " +"(Contributed by Serhiy Storchaka in :issue:`22818`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2458 +msgid "" +"The :class:`http.cookies.Morsel` dict-like interface has been made self " +"consistent: morsel comparison now takes the :attr:`~http.cookies.Morsel." +"key` and :attr:`~http.cookies.Morsel.value` into account, :meth:`~http." +"cookies.Morsel.copy` now results in a :class:`~http.cookies.Morsel` instance " +"rather than a :class:`dict`, and :meth:`~http.cookies.Morsel.update` will " +"now raise an exception if any of the keys in the update dictionary are " +"invalid. In addition, the undocumented *LegalChars* parameter of :func:" +"`~http.cookies.Morsel.set` is deprecated and is now ignored. (Contributed " +"by Demian Brecht in :issue:`2211`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2468 +msgid "" +":pep:`488` has removed ``.pyo`` files from Python and introduced the " +"optional ``opt-`` tag in ``.pyc`` file names. The :func:`importlib.util." +"cache_from_source` has gained an *optimization* parameter to help control " +"the ``opt-`` tag. Because of this, the *debug_override* parameter of the " +"function is now deprecated. `.pyo` files are also no longer supported as a " +"file argument to the Python interpreter and thus serve no purpose when " +"distributed on their own (i.e. sourceless code distribution). Due to the " +"fact that the magic number for bytecode has changed in Python 3.5, all old `." +"pyo` files from previous versions of Python are invalid regardless of this " +"PEP." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2479 +msgid "" +"The :mod:`socket` module now exports the :data:`~socket.CAN_RAW_FD_FRAMES` " +"constant on linux 3.6 and greater." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2482 +msgid "" +"The :func:`ssl.cert_time_to_seconds` function now interprets the input time " +"as UTC and not as local time, per :rfc:`5280`. Additionally, the return " +"value is always an :class:`int`. (Contributed by Akira Li in :issue:`19940`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2486 +msgid "" +"The ``pygettext.py`` Tool now uses the standard +NNNN format for timezones " +"in the POT-Creation-Date header." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2489 +msgid "" +"The :mod:`smtplib` module now uses :data:`sys.stderr` instead of the " +"previous module-level :data:`stderr` variable for debug output. If your " +"(test) program depends on patching the module-level variable to capture the " +"debug output, you will need to update it to capture sys.stderr instead." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2494 +msgid "" +"The :meth:`str.startswith` and :meth:`str.endswith` methods no longer return " +"``True`` when finding the empty string and the indexes are completely out of " +"range. (Contributed by Serhiy Storchaka in :issue:`24284`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2498 +msgid "" +"The :func:`inspect.getdoc` function now returns documentation strings " +"inherited from base classes. Documentation strings no longer need to be " +"duplicated if the inherited documentation is appropriate. To suppress an " +"inherited string, an empty string must be specified (or the documentation " +"may be filled in). This change affects the output of the :mod:`pydoc` " +"module and the :func:`help` function. (Contributed by Serhiy Storchaka in :" +"issue:`15582`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2506 +msgid "" +"Nested :func:`functools.partial` calls are now flattened. If you were " +"relying on the previous behavior, you can now either add an attribute to a :" +"func:`functools.partial` object or you can create a subclass of :func:" +"`functools.partial`. (Contributed by Alexander Belopolsky in :issue:`7830`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2513 +msgid "Changes in the C API" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2515 +msgid "" +"The undocumented :c:member:`~PyMemoryViewObject.format` member of the (non-" +"public) :c:type:`PyMemoryViewObject` structure has been removed. All " +"extensions relying on the relevant parts in ``memoryobject.h`` must be " +"rebuilt." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2520 +msgid "" +"The :c:type:`PyMemAllocator` structure was renamed to :c:type:" +"`PyMemAllocatorEx` and a new ``calloc`` field was added." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2523 +msgid "" +"Removed non-documented macro :c:macro:`PyObject_REPR` which leaked " +"references. Use format character ``%R`` in :c:func:`PyUnicode_FromFormat`-" +"like functions to format the :func:`repr` of the object. (Contributed by " +"Serhiy Storchaka in :issue:`22453`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2528 +msgid "" +"Because the lack of the :attr:`__module__` attribute breaks pickling and " +"introspection, a deprecation warning is now raised for builtin types without " +"the :attr:`__module__` attribute. This would be an AttributeError in the " +"future. (Contributed by Serhiy Storchaka in :issue:`20204`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2534 +msgid "" +"As part of the :pep:`492` implementation, the ``tp_reserved`` slot of :c:" +"type:`PyTypeObject` was replaced with a :c:member:`tp_as_async` slot. Refer " +"to :ref:`coro-objects` for new types, structures and functions." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2541 +msgid "Notable changes in Python 3.5.4" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2544 +msgid "New ``make regen-all`` build target" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2546 +msgid "" +"To simplify cross-compilation, and to ensure that CPython can reliably be " +"compiled without requiring an existing version of Python to already be " +"available, the autotools-based build system no longer attempts to implicitly " +"recompile generated files based on file modification times." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2551 +msgid "" +"Instead, a new ``make regen-all`` command has been added to force " +"regeneration of these files when desired (e.g. after an initial version of " +"Python has already been built based on the pregenerated versions)." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2555 +msgid "" +"More selective regeneration targets are also defined - see :source:`Makefile." +"pre.in` for details." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2558 ../Doc/whatsnew/3.5.rst:2571 +msgid "(Contributed by Victor Stinner in :issue:`23404`.)" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2564 +msgid "Removal of ``make touch`` build target" +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2566 +msgid "" +"The ``make touch`` build target previously used to request implicit " +"regeneration of generated files by updating their modification times has " +"been removed." +msgstr "" + +#: ../Doc/whatsnew/3.5.rst:2569 +msgid "It has been replaced by the new ``make regen-all`` target." +msgstr "" diff --git a/whatsnew/3.6.po b/whatsnew/3.6.po new file mode 100644 index 000000000..4c1a0be9c --- /dev/null +++ b/whatsnew/3.6.po @@ -0,0 +1,3215 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"PO-Revision-Date: 2018-10-13 17:48+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/whatsnew/3.6.rst:3 +msgid "What's New In Python 3.6" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:0 +msgid "Editors" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:5 +msgid "Elvis Pranskevichus , Yury Selivanov " +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:47 +msgid "" +"This article explains the new features in Python 3.6, compared to 3.5. " +"Python 3.6 was released on December 23, 2016.  See the `changelog `_ for a full list of changes." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:54 +msgid ":pep:`494` - Python 3.6 Release Schedule" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:58 +msgid "Summary -- Release highlights" +msgstr "Résumé – Points forts de la publication" + +#: ../Doc/whatsnew/3.6.rst:60 +msgid "New syntax features:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:62 +msgid ":ref:`PEP 498 `, formatted string literals." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:64 +msgid ":ref:`PEP 515 `, underscores in numeric literals." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:66 +msgid ":ref:`PEP 526 `, syntax for variable annotations." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:68 +msgid ":ref:`PEP 525 `, asynchronous generators." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:70 +msgid ":ref:`PEP 530 `: asynchronous comprehensions." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:73 +msgid "New library modules:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:75 +msgid "" +":mod:`secrets`: :ref:`PEP 506 -- Adding A Secrets Module To The Standard " +"Library `." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:78 +msgid "CPython implementation improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:80 +msgid "" +"The :ref:`dict ` type has been reimplemented to use a :ref:" +"`more compact representation ` based on `a proposal " +"by Raymond Hettinger `_ and similar to the `PyPy dict implementation`_. " +"This resulted in dictionaries using 20% to 25% less memory when compared to " +"Python 3.5." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:87 +msgid "" +"Customization of class creation has been simplified with the :ref:`new " +"protocol `." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:90 +msgid "" +"The class attribute definition order is :ref:`now preserved `." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:93 +msgid "" +"The order of elements in ``**kwargs`` now :ref:`corresponds to the order " +"` in which keyword arguments were passed to the function." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:97 +msgid "" +"DTrace and SystemTap :ref:`probing support ` has been " +"added." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:100 +msgid "" +"The new :ref:`PYTHONMALLOC ` environment variable " +"can now be used to debug the interpreter memory allocation and access errors." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:105 +msgid "Significant improvements in the standard library:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:107 +msgid "" +"The :mod:`asyncio` module has received new features, significant usability " +"and performance improvements, and a fair amount of bug fixes. Starting with " +"Python 3.6 the ``asyncio`` module is no longer provisional and its API is " +"considered stable." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:112 +msgid "" +"A new :ref:`file system path protocol ` has been " +"implemented to support :term:`path-like objects `. All " +"standard library functions operating on paths have been updated to work with " +"the new protocol." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:117 +msgid "" +"The :mod:`datetime` module has gained support for :ref:`Local Time " +"Disambiguation `." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:120 +msgid "" +"The :mod:`typing` module received a number of :ref:`improvements `." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:123 +msgid "" +"The :mod:`tracemalloc` module has been significantly reworked and is now " +"used to provide better output for :exc:`ResourceWarning` as well as provide " +"better diagnostics for memory allocation errors. See the :ref:`PYTHONMALLOC " +"section ` for more information." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:130 +msgid "Security improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:132 +msgid "" +"The new :mod:`secrets` module has been added to simplify the generation of " +"cryptographically strong pseudo-random numbers suitable for managing secrets " +"such as account authentication, tokens, and similar." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:136 ../Doc/whatsnew/3.6.rst:1283 +msgid "" +"On Linux, :func:`os.urandom` now blocks until the system urandom entropy " +"pool is initialized to increase the security. See the :pep:`524` for the " +"rationale." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:140 +msgid "The :mod:`hashlib` and :mod:`ssl` modules now support OpenSSL 1.1.0." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:142 +msgid "" +"The default settings and feature set of the :mod:`ssl` module have been " +"improved." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:145 +msgid "" +"The :mod:`hashlib` module received support for the BLAKE2, SHA-3 and SHAKE " +"hash algorithms and the :func:`~hashlib.scrypt` key derivation function." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:149 +msgid "Windows improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:151 +msgid "" +":ref:`PEP 528 ` and :ref:`PEP 529 `, " +"Windows filesystem and console encoding changed to UTF-8." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:154 +msgid "" +"The ``py.exe`` launcher, when used interactively, no longer prefers Python 2 " +"over Python 3 when the user doesn't specify a version (via command line " +"arguments or a config file). Handling of shebang lines remains unchanged - " +"\"python\" refers to Python 2 in that case." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:159 +msgid "" +"``python.exe`` and ``pythonw.exe`` have been marked as long-path aware, " +"which means that the 260 character path limit may no longer apply. See :ref:" +"`removing the MAX_PATH limitation ` for details." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:163 +msgid "" +"A ``._pth`` file can be added to force isolated mode and fully specify all " +"search paths to avoid registry and environment lookup. See :ref:`the " +"documentation ` for more information." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:167 +msgid "" +"A ``python36.zip`` file now works as a landmark to infer :envvar:" +"`PYTHONHOME`. See :ref:`the documentation ` for more " +"information." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:176 +msgid "New Features" +msgstr "Nouvelles fonctionnalités" + +#: ../Doc/whatsnew/3.6.rst:181 +msgid "PEP 498: Formatted string literals" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:183 +msgid "" +":pep:`498` introduces a new kind of string literals: *f-strings*, or :ref:" +"`formatted string literals `." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:186 +msgid "" +"Formatted string literals are prefixed with ``'f'`` and are similar to the " +"format strings accepted by :meth:`str.format`. They contain replacement " +"fields surrounded by curly braces. The replacement fields are expressions, " +"which are evaluated at run time, and then formatted using the :func:`format` " +"protocol::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:204 +msgid ":pep:`498` -- Literal String Interpolation." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:204 +msgid "PEP written and implemented by Eric V. Smith." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:206 +msgid ":ref:`Feature documentation `." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:212 +msgid "PEP 526: Syntax for variable annotations" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:214 +msgid "" +":pep:`484` introduced the standard for type annotations of function " +"parameters, a.k.a. type hints. This PEP adds syntax to Python for annotating " +"the types of variables including class variables and instance variables::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:225 +msgid "" +"Just as for function annotations, the Python interpreter does not attach any " +"particular meaning to variable annotations and only stores them in the " +"``__annotations__`` attribute of a class or module." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:229 +msgid "" +"In contrast to variable declarations in statically typed languages, the goal " +"of annotation syntax is to provide an easy way to specify structured type " +"metadata for third party tools and libraries via the abstract syntax tree " +"and the ``__annotations__`` attribute." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:238 +msgid ":pep:`526` -- Syntax for variable annotations." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:237 +msgid "" +"PEP written by Ryan Gonzalez, Philip House, Ivan Levkivskyi, Lisa Roach, and " +"Guido van Rossum. Implemented by Ivan Levkivskyi." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:240 +msgid "" +"Tools that use or will use the new syntax: `mypy `_, `pytype `_, PyCharm, etc." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:248 +msgid "PEP 515: Underscores in Numeric Literals" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:250 +msgid "" +":pep:`515` adds the ability to use underscores in numeric literals for " +"improved readability. For example::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:258 +msgid "" +"Single underscores are allowed between digits and after any base specifier. " +"Leading, trailing, or multiple underscores in a row are not allowed." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:262 +msgid "" +"The :ref:`string formatting ` language also now has support for " +"the ``'_'`` option to signal the use of an underscore for a thousands " +"separator for floating point presentation types and for integer presentation " +"type ``'d'``. For integer presentation types ``'b'``, ``'o'``, ``'x'``, and " +"``'X'``, underscores will be inserted every 4 digits::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:276 +msgid ":pep:`515` -- Underscores in Numeric Literals" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:277 +msgid "PEP written by Georg Brandl and Serhiy Storchaka." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:283 +msgid "PEP 525: Asynchronous Generators" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:285 +msgid "" +":pep:`492` introduced support for native coroutines and ``async`` / " +"``await`` syntax to Python 3.5. A notable limitation of the Python 3.5 " +"implementation is that it was not possible to use ``await`` and ``yield`` in " +"the same function body. In Python 3.6 this restriction has been lifted, " +"making it possible to define *asynchronous generators*::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:297 +msgid "The new syntax allows for faster and more concise code." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:301 +msgid ":pep:`525` -- Asynchronous Generators" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:302 ../Doc/whatsnew/3.6.rst:323 +msgid "PEP written and implemented by Yury Selivanov." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:308 +msgid "PEP 530: Asynchronous Comprehensions" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:310 +msgid "" +":pep:`530` adds support for using ``async for`` in list, set, dict " +"comprehensions and generator expressions::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:315 +msgid "" +"Additionally, ``await`` expressions are supported in all kinds of " +"comprehensions::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:322 +msgid ":pep:`530` -- Asynchronous Comprehensions" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:329 +msgid "PEP 487: Simpler customization of class creation" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:331 +msgid "" +"It is now possible to customize subclass creation without using a metaclass. " +"The new ``__init_subclass__`` classmethod will be called on the base class " +"whenever a new subclass is created::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:348 +msgid "" +"In order to allow zero-argument :func:`super` calls to work correctly from :" +"meth:`~object.__init_subclass__` implementations, custom metaclasses must " +"ensure that the new ``__classcell__`` namespace entry is propagated to " +"``type.__new__`` (as described in :ref:`class-object-creation`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:356 ../Doc/whatsnew/3.6.rst:394 +msgid ":pep:`487` -- Simpler customization of class creation" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:356 ../Doc/whatsnew/3.6.rst:394 +msgid "PEP written and implemented by Martin Teichmann." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:358 +msgid ":ref:`Feature documentation `" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:364 +msgid "PEP 487: Descriptor Protocol Enhancements" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:366 +msgid "" +":pep:`487` extends the descriptor protocol to include the new optional :meth:" +"`~object.__set_name__` method. Whenever a new class is defined, the new " +"method will be called on all descriptors included in the definition, " +"providing them with a reference to the class being defined and the name " +"given to the descriptor within the class namespace. In other words, " +"instances of descriptors can now know the attribute name of the descriptor " +"in the owner class::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:396 +msgid ":ref:`Feature documentation `" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:402 +msgid "PEP 519: Adding a file system path protocol" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:404 +msgid "" +"File system paths have historically been represented as :class:`str` or :" +"class:`bytes` objects. This has led to people who write code which operate " +"on file system paths to assume that such objects are only one of those two " +"types (an :class:`int` representing a file descriptor does not count as that " +"is not a file path). Unfortunately that assumption prevents alternative " +"object representations of file system paths like :mod:`pathlib` from working " +"with pre-existing code, including Python's standard library." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:413 +msgid "" +"To fix this situation, a new interface represented by :class:`os.PathLike` " +"has been defined. By implementing the :meth:`~os.PathLike.__fspath__` " +"method, an object signals that it represents a path. An object can then " +"provide a low-level representation of a file system path as a :class:`str` " +"or :class:`bytes` object. This means an object is considered :term:`path-" +"like ` if it implements :class:`os.PathLike` or is a :" +"class:`str` or :class:`bytes` object which represents a file system path. " +"Code can use :func:`os.fspath`, :func:`os.fsdecode`, or :func:`os.fsencode` " +"to explicitly get a :class:`str` and/or :class:`bytes` representation of a " +"path-like object." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:426 +msgid "" +"The built-in :func:`open` function has been updated to accept :class:`os." +"PathLike` objects, as have all relevant functions in the :mod:`os` and :mod:" +"`os.path` modules, and most other functions and classes in the standard " +"library. The :class:`os.DirEntry` class and relevant classes in :mod:" +"`pathlib` have also been updated to implement :class:`os.PathLike`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:433 +msgid "" +"The hope is that updating the fundamental functions for operating on file " +"system paths will lead to third-party code to implicitly support all :term:" +"`path-like objects ` without any code changes, or at least " +"very minimal ones (e.g. calling :func:`os.fspath` at the beginning of code " +"before operating on a path-like object)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:440 +msgid "" +"Here are some examples of how the new interface allows for :class:`pathlib." +"Path` to be used more easily and transparently with pre-existing code::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:457 +msgid "" +"(Implemented by Brett Cannon, Ethan Furman, Dusty Phillips, and Jelle " +"Zijlstra.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:461 +msgid ":pep:`519` -- Adding a file system path protocol" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:462 +msgid "PEP written by Brett Cannon and Koos Zevenhoven." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:468 +msgid "PEP 495: Local Time Disambiguation" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:470 +msgid "" +"In most world locations, there have been and will be times when local clocks " +"are moved back. In those times, intervals are introduced in which local " +"clocks show the same time twice in the same day. In these situations, the " +"information displayed on a local clock (or stored in a Python datetime " +"instance) is insufficient to identify a particular moment in time." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:476 +msgid "" +":pep:`495` adds the new *fold* attribute to instances of :class:`datetime." +"datetime` and :class:`datetime.time` classes to differentiate between two " +"moments in time for which local times are the same::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:491 +msgid "" +"The values of the :attr:`fold ` attribute have the " +"value ``0`` for all instances except those that represent the second " +"(chronologically) moment in time in an ambiguous case." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:498 +msgid ":pep:`495` -- Local Time Disambiguation" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:498 +msgid "" +"PEP written by Alexander Belopolsky and Tim Peters, implementation by " +"Alexander Belopolsky." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:505 +msgid "PEP 529: Change Windows filesystem encoding to UTF-8" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:507 +msgid "" +"Representing filesystem paths is best performed with str (Unicode) rather " +"than bytes. However, there are some situations where using bytes is " +"sufficient and correct." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:511 +msgid "" +"Prior to Python 3.6, data loss could result when using bytes paths on " +"Windows. With this change, using bytes to represent paths is now supported " +"on Windows, provided those bytes are encoded with the encoding returned by :" +"func:`sys.getfilesystemencoding()`, which now defaults to ``'utf-8'``." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:516 +msgid "" +"Applications that do not use str to represent paths should use :func:`os." +"fsencode()` and :func:`os.fsdecode()` to ensure their bytes are correctly " +"encoded. To revert to the previous behaviour, set :envvar:" +"`PYTHONLEGACYWINDOWSFSENCODING` or call :func:`sys." +"_enablelegacywindowsfsencoding`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:522 +msgid "" +"See :pep:`529` for more information and discussion of code modifications " +"that may be required." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:529 +msgid "PEP 528: Change Windows console encoding to UTF-8" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:531 +msgid "" +"The default console on Windows will now accept all Unicode characters and " +"provide correctly read str objects to Python code. ``sys.stdin``, ``sys." +"stdout`` and ``sys.stderr`` now default to utf-8 encoding." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:535 +msgid "" +"This change only applies when using an interactive console, and not when " +"redirecting files or pipes. To revert to the previous behaviour for " +"interactive console use, set :envvar:`PYTHONLEGACYWINDOWSSTDIO`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:541 +msgid ":pep:`528` -- Change Windows console encoding to UTF-8" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:542 +msgid "PEP written and implemented by Steve Dower." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:548 +msgid "PEP 520: Preserving Class Attribute Definition Order" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:550 +msgid "" +"Attributes in a class definition body have a natural ordering: the same " +"order in which the names appear in the source. This order is now preserved " +"in the new class's :attr:`~object.__dict__` attribute." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:554 +msgid "" +"Also, the effective default class *execution* namespace (returned from :ref:" +"`type.__prepare__() `) is now an insertion-order-preserving mapping." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:560 +msgid ":pep:`520` -- Preserving Class Attribute Definition Order" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:561 ../Doc/whatsnew/3.6.rst:575 +msgid "PEP written and implemented by Eric Snow." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:567 +msgid "PEP 468: Preserving Keyword Argument Order" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:569 +msgid "" +"``**kwargs`` in a function signature is now guaranteed to be an insertion-" +"order-preserving mapping." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:574 +msgid ":pep:`468` -- Preserving Keyword Argument Order" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:581 +msgid "New :ref:`dict ` implementation" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:583 +msgid "" +"The :ref:`dict ` type now uses a \"compact\" representation " +"based on `a proposal by Raymond Hettinger `_ which was `first implemented by PyPy " +"`_. The memory usage of the new :func:`dict` is between 20% and 25% " +"smaller compared to Python 3.5." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:591 +msgid "" +"The order-preserving aspect of this new implementation is considered an " +"implementation detail and should not be relied upon (this may change in the " +"future, but it is desired to have this new dict implementation in the " +"language for a few releases before changing the language spec to mandate " +"order-preserving semantics for all current and future Python " +"implementations; this also helps preserve backwards-compatibility with older " +"versions of the language where random iteration order is still in effect, e." +"g. Python 3.5)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:600 +msgid "" +"(Contributed by INADA Naoki in :issue:`27350`. Idea `originally suggested by " +"Raymond Hettinger `_.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:608 +msgid "PEP 523: Adding a frame evaluation API to CPython" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:610 +msgid "" +"While Python provides extensive support to customize how code executes, one " +"place it has not done so is in the evaluation of frame objects. If you " +"wanted some way to intercept frame evaluation in Python there really wasn't " +"any way without directly manipulating function pointers for defined " +"functions." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:616 +msgid "" +":pep:`523` changes this by providing an API to make frame evaluation " +"pluggable at the C level. This will allow for tools such as debuggers and " +"JITs to intercept frame evaluation before the execution of Python code " +"begins. This enables the use of alternative evaluation implementations for " +"Python code, tracking frame evaluation, etc." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:623 +msgid "" +"This API is not part of the limited C API and is marked as private to signal " +"that usage of this API is expected to be limited and only applicable to very " +"select, low-level use-cases. Semantics of the API will change with Python as " +"necessary." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:630 +msgid ":pep:`523` -- Adding a frame evaluation API to CPython" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:631 +msgid "PEP written by Brett Cannon and Dino Viehland." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:637 +msgid "PYTHONMALLOC environment variable" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:639 +msgid "" +"The new :envvar:`PYTHONMALLOC` environment variable allows setting the " +"Python memory allocators and installing debug hooks." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:642 +msgid "" +"It is now possible to install debug hooks on Python memory allocators on " +"Python compiled in release mode using ``PYTHONMALLOC=debug``. Effects of " +"debug hooks:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:645 +msgid "Newly allocated memory is filled with the byte ``0xCB``" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:646 +msgid "Freed memory is filled with the byte ``0xDB``" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:647 +msgid "" +"Detect violations of the Python memory allocator API. For example, :c:func:" +"`PyObject_Free` called on a memory block allocated by :c:func:`PyMem_Malloc`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:650 +msgid "Detect writes before the start of a buffer (buffer underflows)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:651 +msgid "Detect writes after the end of a buffer (buffer overflows)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:652 +msgid "" +"Check that the :term:`GIL ` is held when allocator " +"functions of :c:data:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) and :" +"c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are called." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:656 +msgid "Checking if the GIL is held is also a new feature of Python 3.6." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:658 +msgid "" +"See the :c:func:`PyMem_SetupDebugHooks` function for debug hooks on Python " +"memory allocators." +msgstr "" +"Reportez-vous à la fonction :c:func:`PyMem_SetupDebugHooks` pour ce qui " +"concerne les fonctions de débogage de l'allocateur mémoire de Python." + +#: ../Doc/whatsnew/3.6.rst:661 +msgid "" +"It is now also possible to force the usage of the :c:func:`malloc` allocator " +"of the C library for all Python memory allocations using " +"``PYTHONMALLOC=malloc``. This is helpful when using external memory " +"debuggers like Valgrind on a Python compiled in release mode." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:666 +msgid "" +"On error, the debug hooks on Python memory allocators now use the :mod:" +"`tracemalloc` module to get the traceback where a memory block was allocated." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:670 +msgid "" +"Example of fatal error on buffer overflow using ``python3.6 -X " +"tracemalloc=5`` (store 5 frames in traces)::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:707 +msgid "(Contributed by Victor Stinner in :issue:`26516` and :issue:`26564`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:713 +msgid "DTrace and SystemTap probing support" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:715 +msgid "" +"Python can now be built ``--with-dtrace`` which enables static markers for " +"the following events in the interpreter:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:718 +msgid "function call/return" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:720 +msgid "garbage collection started/finished" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:722 +msgid "line of code executed." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:724 +msgid "" +"This can be used to instrument running interpreters in production, without " +"the need to recompile specific debug builds or providing application-" +"specific profiling/debugging code." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:728 +msgid "More details in :ref:`instrumentation`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:730 +msgid "" +"The current implementation is tested on Linux and macOS. Additional markers " +"may be added in the future." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:733 +msgid "" +"(Contributed by Łukasz Langa in :issue:`21590`, based on patches by Jesús " +"Cea Avión, David Malcolm, and Nikhil Benesch.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:738 +msgid "Other Language Changes" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:740 +msgid "Some smaller changes made to the core Python language are:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:742 +msgid "" +"A ``global`` or ``nonlocal`` statement must now textually appear before the " +"first use of the affected name in the same scope. Previously this was a :exc:" +"`SyntaxWarning`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:746 +msgid "" +"It is now possible to set a :ref:`special method ` to ``None`` " +"to indicate that the corresponding operation is not available. For example, " +"if a class sets :meth:`__iter__` to ``None``, the class is not iterable. " +"(Contributed by Andrew Barnert and Ivan Levkivskyi in :issue:`25958`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:752 +msgid "" +"Long sequences of repeated traceback lines are now abbreviated as ``" +"\"[Previous line repeated {count} more times]\"`` (see :ref:`whatsnew36-" +"traceback` for an example). (Contributed by Emanuel Barry in :issue:`26823`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:757 +msgid "" +"Import now raises the new exception :exc:`ModuleNotFoundError` (subclass of :" +"exc:`ImportError`) when it cannot find a module. Code that currently checks " +"for ImportError (in try-except) will still work. (Contributed by Eric Snow " +"in :issue:`15767`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:762 +msgid "" +"Class methods relying on zero-argument ``super()`` will now work correctly " +"when called from metaclass methods during class creation. (Contributed by " +"Martin Teichmann in :issue:`23722`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:768 +msgid "New Modules" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:773 +msgid "secrets" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:775 +msgid "" +"The main purpose of the new :mod:`secrets` module is to provide an obvious " +"way to reliably generate cryptographically strong pseudo-random values " +"suitable for managing secrets, such as account authentication, tokens, and " +"similar." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:781 +msgid "" +"Note that the pseudo-random generators in the :mod:`random` module should " +"*NOT* be used for security purposes. Use :mod:`secrets` on Python 3.6+ and :" +"func:`os.urandom()` on Python 3.5 and earlier." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:787 +msgid ":pep:`506` -- Adding A Secrets Module To The Standard Library" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:788 +msgid "PEP written and implemented by Steven D'Aprano." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:792 +msgid "Improved Modules" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:795 +msgid "array" +msgstr "*array*" + +#: ../Doc/whatsnew/3.6.rst:797 +msgid "" +"Exhausted iterators of :class:`array.array` will now stay exhausted even if " +"the iterated array is extended. This is consistent with the behavior of " +"other mutable sequences." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:801 +msgid "Contributed by Serhiy Storchaka in :issue:`26492`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:804 +msgid "ast" +msgstr "ast" + +#: ../Doc/whatsnew/3.6.rst:806 +msgid "" +"The new :class:`ast.Constant` AST node has been added. It can be used by " +"external AST optimizers for the purposes of constant folding." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:809 +msgid "Contributed by Victor Stinner in :issue:`26146`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:813 +msgid "asyncio" +msgstr "asyncio" + +#: ../Doc/whatsnew/3.6.rst:815 +msgid "" +"Starting with Python 3.6 the ``asyncio`` module is no longer provisional and " +"its API is considered stable." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:818 +msgid "" +"Notable changes in the :mod:`asyncio` module since Python 3.5.0 (all " +"backported to 3.5.x due to the provisional status):" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:821 +msgid "" +"The :func:`~asyncio.get_event_loop` function has been changed to always " +"return the currently running loop when called from coroutines and callbacks. " +"(Contributed by Yury Selivanov in :issue:`28613`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:826 +msgid "" +"The :func:`~asyncio.ensure_future` function and all functions that use it, " +"such as :meth:`loop.run_until_complete() `, " +"now accept all kinds of :term:`awaitable objects `. (Contributed " +"by Yury Selivanov.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:831 +msgid "" +"New :func:`~asyncio.run_coroutine_threadsafe` function to submit coroutines " +"to event loops from other threads. (Contributed by Vincent Michel.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:835 +msgid "" +"New :meth:`Transport.is_closing() ` method " +"to check if the transport is closing or closed. (Contributed by Yury " +"Selivanov.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:839 +msgid "" +"The :meth:`loop.create_server() ` method can now " +"accept a list of hosts. (Contributed by Yann Sionneau.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:843 +msgid "" +"New :meth:`loop.create_future() ` method to " +"create Future objects. This allows alternative event loop implementations, " +"such as `uvloop `_, to provide a " +"faster :class:`asyncio.Future` implementation. (Contributed by Yury " +"Selivanov in :issue:`27041`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:850 +msgid "" +"New :meth:`loop.get_exception_handler() ` method to get the current exception handler. " +"(Contributed by Yury Selivanov in :issue:`27040`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:854 +msgid "" +"New :meth:`StreamReader.readuntil() ` method " +"to read data from the stream until a separator bytes sequence appears. " +"(Contributed by Mark Korenberg.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:859 +msgid "" +"The performance of :meth:`StreamReader.readexactly() ` has been improved. (Contributed by Mark Korenberg in :issue:" +"`28370`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:863 +msgid "" +"The :meth:`loop.getaddrinfo() ` method is " +"optimized to avoid calling the system ``getaddrinfo`` function if the " +"address is already resolved. (Contributed by A. Jesse Jiryu Davis.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:868 +msgid "" +"The :meth:`loop.stop() ` method has been changed to stop " +"the loop immediately after the current iteration. Any new callbacks " +"scheduled as a result of the last iteration will be discarded. (Contributed " +"by Guido van Rossum in :issue:`25593`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:874 +msgid "" +":meth:`Future.set_exception ` will now " +"raise :exc:`TypeError` when passed an instance of the :exc:`StopIteration` " +"exception. (Contributed by Chris Angelico in :issue:`26221`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:879 +msgid "" +"New :meth:`loop.connect_accepted_socket() ` method to be used by servers that accept " +"connections outside of asyncio, but that use asyncio to handle them. " +"(Contributed by Jim Fulton in :issue:`27392`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:884 +msgid "" +"``TCP_NODELAY`` flag is now set for all TCP transports by default. " +"(Contributed by Yury Selivanov in :issue:`27456`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:887 +msgid "" +"New :meth:`loop.shutdown_asyncgens() ` to " +"properly close pending asynchronous generators before closing the loop. " +"(Contributed by Yury Selivanov in :issue:`28003`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:892 +msgid "" +":class:`Future ` and :class:`Task ` classes " +"now have an optimized C implementation which makes asyncio code up to 30% " +"faster. (Contributed by Yury Selivanov and INADA Naoki in :issue:`26081` " +"and :issue:`28544`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:900 +msgid "binascii" +msgstr "binascii" + +#: ../Doc/whatsnew/3.6.rst:902 +msgid "" +"The :func:`~binascii.b2a_base64` function now accepts an optional *newline* " +"keyword argument to control whether the newline character is appended to the " +"return value. (Contributed by Victor Stinner in :issue:`25357`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:909 +msgid "cmath" +msgstr "cmath" + +#: ../Doc/whatsnew/3.6.rst:911 +msgid "" +"The new :const:`cmath.tau` (*τ*) constant has been added. (Contributed by " +"Lisa Roach in :issue:`12345`, see :pep:`628` for details.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:914 +msgid "" +"New constants: :const:`cmath.inf` and :const:`cmath.nan` to match :const:" +"`math.inf` and :const:`math.nan`, and also :const:`cmath.infj` and :const:" +"`cmath.nanj` to match the format used by complex repr. (Contributed by Mark " +"Dickinson in :issue:`23229`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:921 +msgid "collections" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:923 +msgid "" +"The new :class:`~collections.abc.Collection` abstract base class has been " +"added to represent sized iterable container classes. (Contributed by Ivan " +"Levkivskyi, docs by Neil Girdhar in :issue:`27598`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:927 +msgid "" +"The new :class:`~collections.abc.Reversible` abstract base class represents " +"iterable classes that also provide the :meth:`__reversed__` method. " +"(Contributed by Ivan Levkivskyi in :issue:`25987`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:931 +msgid "" +"The new :class:`~collections.abc.AsyncGenerator` abstract base class " +"represents asynchronous generators. (Contributed by Yury Selivanov in :issue:" +"`28720`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:935 +msgid "" +"The :func:`~collections.namedtuple` function now accepts an optional keyword " +"argument *module*, which, when specified, is used for the ``__module__`` " +"attribute of the returned named tuple class. (Contributed by Raymond " +"Hettinger in :issue:`17941`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:940 ../Doc/whatsnew/3.6.rst:2278 +msgid "" +"The *verbose* and *rename* arguments for :func:`~collections.namedtuple` are " +"now keyword-only. (Contributed by Raymond Hettinger in :issue:`25628`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:944 +msgid "" +"Recursive :class:`collections.deque` instances can now be pickled. " +"(Contributed by Serhiy Storchaka in :issue:`26482`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:949 +msgid "concurrent.futures" +msgstr "concurrent.futures" + +#: ../Doc/whatsnew/3.6.rst:951 +msgid "" +"The :class:`ThreadPoolExecutor ` " +"class constructor now accepts an optional *thread_name_prefix* argument to " +"make it possible to customize the names of the threads created by the pool. " +"(Contributed by Gregory P. Smith in :issue:`27664`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:959 +msgid "contextlib" +msgstr "contextlib" + +#: ../Doc/whatsnew/3.6.rst:961 +msgid "" +"The :class:`contextlib.AbstractContextManager` class has been added to " +"provide an abstract base class for context managers. It provides a sensible " +"default implementation for `__enter__()` which returns ``self`` and leaves " +"`__exit__()` an abstract method. A matching class has been added to the :" +"mod:`typing` module as :class:`typing.ContextManager`. (Contributed by Brett " +"Cannon in :issue:`25609`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:971 +msgid "datetime" +msgstr "datetime" + +#: ../Doc/whatsnew/3.6.rst:973 +msgid "" +"The :class:`~datetime.datetime` and :class:`~datetime.time` classes have the " +"new :attr:`~time.fold` attribute used to disambiguate local time when " +"necessary. Many functions in the :mod:`datetime` have been updated to " +"support local time disambiguation. See :ref:`Local Time Disambiguation " +"` section for more information. (Contributed by Alexander " +"Belopolsky in :issue:`24773`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:981 +msgid "" +"The :meth:`datetime.strftime() ` and :meth:`date." +"strftime() ` methods now support ISO 8601 date " +"directives ``%G``, ``%u`` and ``%V``. (Contributed by Ashley Anderson in :" +"issue:`12006`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:986 +msgid "" +"The :func:`datetime.isoformat() ` function now " +"accepts an optional *timespec* argument that specifies the number of " +"additional components of the time value to include. (Contributed by " +"Alessandro Cucci and Alexander Belopolsky in :issue:`19475`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:991 +msgid "" +"The :meth:`datetime.combine() ` now accepts an " +"optional *tzinfo* argument. (Contributed by Alexander Belopolsky in :issue:" +"`27661`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:997 +msgid "decimal" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:999 +msgid "" +"New :meth:`Decimal.as_integer_ratio() ` " +"method that returns a pair ``(n, d)`` of integers that represent the given :" +"class:`~decimal.Decimal` instance as a fraction, in lowest terms and with a " +"positive denominator::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1007 +msgid "(Contributed by Stefan Krah amd Mark Dickinson in :issue:`25928`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1012 ../Doc/whatsnew/3.6.rst:1986 +msgid "distutils" +msgstr "distutils" + +#: ../Doc/whatsnew/3.6.rst:1014 +msgid "" +"The ``default_format`` attribute has been removed from :class:`distutils." +"command.sdist.sdist` and the ``formats`` attribute defaults to " +"``['gztar']``. Although not anticipated, any code relying on the presence of " +"``default_format`` may need to be adapted. See :issue:`27819` for more " +"details." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1022 +msgid "email" +msgstr "email" + +#: ../Doc/whatsnew/3.6.rst:1024 +msgid "" +"The new email API, enabled via the *policy* keyword to various constructors, " +"is no longer provisional. The :mod:`email` documentation has been " +"reorganized and rewritten to focus on the new API, while retaining the old " +"documentation for the legacy API. (Contributed by R. David Murray in :issue:" +"`24277`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1029 +msgid "" +"The :mod:`email.mime` classes now all accept an optional *policy* keyword. " +"(Contributed by Berker Peksag in :issue:`27331`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1032 +msgid "" +"The :class:`~email.generator.DecodedGenerator` now supports the *policy* " +"keyword." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1035 +msgid "" +"There is a new :mod:`~email.policy` attribute, :attr:`~email.policy.Policy." +"message_factory`, that controls what class is used by default when the " +"parser creates new message objects. For the :attr:`email.policy.compat32` " +"policy this is :class:`~email.message.Message`, for the new policies it is :" +"class:`~email.message.EmailMessage`. (Contributed by R. David Murray in :" +"issue:`20476`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1044 +msgid "encodings" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1046 +msgid "" +"On Windows, added the ``'oem'`` encoding to use ``CP_OEMCP``, and the " +"``'ansi'`` alias for the existing ``'mbcs'`` encoding, which uses the " +"``CP_ACP`` code page. (Contributed by Steve Dower in :issue:`27959`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1052 +msgid "enum" +msgstr "enum" + +#: ../Doc/whatsnew/3.6.rst:1054 +msgid "" +"Two new enumeration base classes have been added to the :mod:`enum` module: :" +"class:`~enum.Flag` and :class:`~enum.IntFlags`. Both are used to define " +"constants that can be combined using the bitwise operators. (Contributed by " +"Ethan Furman in :issue:`23591`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1059 +msgid "" +"Many standard library modules have been updated to use the :class:`~enum." +"IntFlags` class for their constants." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1062 +msgid "" +"The new :class:`enum.auto` value can be used to assign values to enum " +"members automatically::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1076 +msgid "faulthandler" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1078 +msgid "" +"On Windows, the :mod:`faulthandler` module now installs a handler for " +"Windows exceptions: see :func:`faulthandler.enable`. (Contributed by Victor " +"Stinner in :issue:`23848`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1084 +msgid "fileinput" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1086 +msgid "" +":func:`~fileinput.hook_encoded` now supports the *errors* argument. " +"(Contributed by Joseph Hackman in :issue:`25788`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1091 +msgid "hashlib" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1093 +msgid "" +":mod:`hashlib` supports OpenSSL 1.1.0. The minimum recommend version is " +"1.0.2. (Contributed by Christian Heimes in :issue:`26470`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1096 +msgid "" +"BLAKE2 hash functions were added to the module. :func:`~hashlib.blake2b` " +"and :func:`~hashlib.blake2s` are always available and support the full " +"feature set of BLAKE2. (Contributed by Christian Heimes in :issue:`26798` " +"based on code by Dmitry Chestnykh and Samuel Neves. Documentation written by " +"Dmitry Chestnykh.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1102 +msgid "" +"The SHA-3 hash functions :func:`~hashlib.sha3_224`, :func:`~hashlib." +"sha3_256`, :func:`~hashlib.sha3_384`, :func:`~hashlib.sha3_512`, and SHAKE " +"hash functions :func:`~hashlib.shake_128` and :func:`~hashlib.shake_256` " +"were added. (Contributed by Christian Heimes in :issue:`16113`. Keccak Code " +"Package by Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche, " +"and Ronny Van Keer.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1109 +msgid "" +"The password-based key derivation function :func:`~hashlib.scrypt` is now " +"available with OpenSSL 1.1.0 and newer. (Contributed by Christian Heimes in :" +"issue:`27928`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1114 +msgid "http.client" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1116 +msgid "" +":meth:`HTTPConnection.request() ` and :" +"meth:`~http.client.HTTPConnection.endheaders` both now support chunked " +"encoding request bodies. (Contributed by Demian Brecht and Rolf Krahl in :" +"issue:`12319`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1123 +msgid "idlelib and IDLE" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1125 +msgid "" +"The idlelib package is being modernized and refactored to make IDLE look and " +"work better and to make the code easier to understand, test, and improve. " +"Part of making IDLE look better, especially on Linux and Mac, is using ttk " +"widgets, mostly in the dialogs. As a result, IDLE no longer runs with tcl/" +"tk 8.4. It now requires tcl/tk 8.5 or 8.6. We recommend running the latest " +"release of either." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1132 +msgid "" +"'Modernizing' includes renaming and consolidation of idlelib modules. The " +"renaming of files with partial uppercase names is similar to the renaming " +"of, for instance, Tkinter and TkFont to tkinter and tkinter.font in 3.0. As " +"a result, imports of idlelib files that worked in 3.5 will usually not work " +"in 3.6. At least a module name change will be needed (see idlelib/README." +"txt), sometimes more. (Name changes contributed by Al Swiegart and Terry " +"Reedy in :issue:`24225`. Most idlelib patches since have been and will be " +"part of the process.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1141 +msgid "" +"In compensation, the eventual result with be that some idlelib classes will " +"be easier to use, with better APIs and docstrings explaining them. " +"Additional useful information will be added to idlelib when available." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1145 +msgid "New in 3.6.2:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1147 +msgid "" +"Multiple fixes for autocompletion. (Contributed by Louie Lu in :issue:" +"`15786`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1149 +msgid "New in 3.6.3:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1151 +msgid "" +"Module Browser (on the File menu, formerly called Class Browser), now " +"displays nested functions and classes in addition to top-level functions and " +"classes. (Contributed by Guilherme Polo, Cheryl Sabella, and Terry Jan Reedy " +"in :issue:`1612262`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1157 +msgid "" +"The IDLE features formerly implemented as extensions have been reimplemented " +"as normal features. Their settings have been moved from the Extensions tab " +"to other dialog tabs. (Contributed by Charles Wohlganger and Terry Jan Reedy " +"in :issue:`27099`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1162 +msgid "" +"The Settings dialog (Options, Configure IDLE) has been partly rewritten to " +"improve both appearance and function. (Contributed by Cheryl Sabella and " +"Terry Jan Reedy in multiple issues.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1166 +msgid "New in 3.6.4:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1168 +msgid "" +"The font sample now includes a selection of non-Latin characters so that " +"users can better see the effect of selecting a particular font. (Contributed " +"by Terry Jan Reedy in :issue:`13802`.) The sample can be edited to include " +"other characters. (Contributed by Serhiy Storchaka in :issue:`31860`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1174 +msgid "New in 3.6.6:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1176 +msgid "" +"Editor code context option revised. Box displays all context lines up to " +"maxlines. Clicking on a context line jumps the editor to that line. " +"Context colors for custom themes is added to Highlights tab of Settings " +"dialog. (Contributed by Cheryl Sabella and Terry Jan Reedy in :issue:" +"`33642`, :issue:`33768`, and :issue:`33679`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1182 +msgid "" +"On Windows, a new API call tells Windows that tk scales for DPI. On Windows " +"8.1+ or 10, with DPI compatibility properties of the Python binary " +"unchanged, and a monitor resolution greater than 96 DPI, this should make " +"text and lines sharper. It should otherwise have no effect. (Contributed by " +"Terry Jan Reedy in :issue:`33656`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1188 +msgid "New in 3.6.7:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1190 +msgid "" +"Output over N lines (50 by default) is squeezed down to a button. N can be " +"changed in the PyShell section of the General page of the Settings dialog. " +"Fewer, but possibly extra long, lines can be squeezed by right clicking on " +"the output. Squeezed output can be expanded in place by double-clicking the " +"button or into the clipboard or a separate window by right-clicking the " +"button. (Contributed by Tal Einat in :issue:`1529353`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1199 ../Doc/whatsnew/3.6.rst:2003 +msgid "importlib" +msgstr "importlib" + +#: ../Doc/whatsnew/3.6.rst:1201 +msgid "" +"Import now raises the new exception :exc:`ModuleNotFoundError` (subclass of :" +"exc:`ImportError`) when it cannot find a module. Code that current checks " +"for ``ImportError`` (in try-except) will still work. (Contributed by Eric " +"Snow in :issue:`15767`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1206 +msgid "" +":class:`importlib.util.LazyLoader` now calls :meth:`~importlib.abc.Loader." +"create_module` on the wrapped loader, removing the restriction that :class:" +"`importlib.machinery.BuiltinImporter` and :class:`importlib.machinery." +"ExtensionFileLoader` couldn't be used with :class:`importlib.util." +"LazyLoader`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1212 +msgid "" +":func:`importlib.util.cache_from_source`, :func:`importlib.util." +"source_from_cache`, and :func:`importlib.util.spec_from_file_location` now " +"accept a :term:`path-like object`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1219 +msgid "inspect" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1221 +msgid "" +"The :func:`inspect.signature() ` function now reports the " +"implicit ``.0`` parameters generated by the compiler for comprehension and " +"generator expression scopes as if they were positional-only parameters " +"called ``implicit0``. (Contributed by Jelle Zijlstra in :issue:`19611`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1226 +msgid "" +"To reduce code churn when upgrading from Python 2.7 and the legacy :func:" +"`inspect.getargspec` API, the previously documented deprecation of :func:" +"`inspect.getfullargspec` has been reversed. While this function is " +"convenient for single/source Python 2/3 code bases, the richer :func:" +"`inspect.signature` interface remains the recommended approach for new code. " +"(Contributed by Nick Coghlan in :issue:`27172`)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1235 +msgid "json" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1237 +msgid "" +":func:`json.load` and :func:`json.loads` now support binary input. Encoded " +"JSON should be represented using either UTF-8, UTF-16, or UTF-32. " +"(Contributed by Serhiy Storchaka in :issue:`17909`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1243 +msgid "logging" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1245 +msgid "" +"The new :meth:`WatchedFileHandler.reopenIfNeeded() ` method has been added to add the ability " +"to check if the log file needs to be reopened. (Contributed by Marian Horban " +"in :issue:`24884`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1252 +msgid "math" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1254 +msgid "" +"The tau (*τ*) constant has been added to the :mod:`math` and :mod:`cmath` " +"modules. (Contributed by Lisa Roach in :issue:`12345`, see :pep:`628` for " +"details.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1260 +msgid "multiprocessing" +msgstr "multiprocessing" + +#: ../Doc/whatsnew/3.6.rst:1262 +msgid "" +":ref:`Proxy Objects ` returned by :func:" +"`multiprocessing.Manager` can now be nested. (Contributed by Davin Potts in :" +"issue:`6766`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1268 ../Doc/whatsnew/3.6.rst:2017 +msgid "os" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1270 +msgid "" +"See the summary of :ref:`PEP 519 ` for details on how " +"the :mod:`os` and :mod:`os.path` modules now support :term:`path-like " +"objects `." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1274 +msgid ":func:`~os.scandir` now supports :class:`bytes` paths on Windows." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1276 +msgid "" +"A new :meth:`~os.scandir.close` method allows explicitly closing a :func:" +"`~os.scandir` iterator. The :func:`~os.scandir` iterator now supports the :" +"term:`context manager` protocol. If a :func:`scandir` iterator is neither " +"exhausted nor explicitly closed a :exc:`ResourceWarning` will be emitted in " +"its destructor. (Contributed by Serhiy Storchaka in :issue:`25994`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1286 +msgid "" +"The Linux ``getrandom()`` syscall (get random bytes) is now exposed as the " +"new :func:`os.getrandom` function. (Contributed by Victor Stinner, part of " +"the :pep:`524`)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1292 +msgid "pathlib" +msgstr "pathlib" + +#: ../Doc/whatsnew/3.6.rst:1294 +msgid "" +":mod:`pathlib` now supports :term:`path-like objects `. " +"(Contributed by Brett Cannon in :issue:`27186`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1297 +msgid "See the summary of :ref:`PEP 519 ` for details." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1301 +msgid "pdb" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1303 +msgid "" +"The :class:`~pdb.Pdb` class constructor has a new optional *readrc* argument " +"to control whether ``.pdbrc`` files should be read." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1308 +msgid "pickle" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1310 +msgid "" +"Objects that need ``__new__`` called with keyword arguments can now be " +"pickled using :ref:`pickle protocols ` older than protocol " +"version 4. Protocol version 4 already supports this case. (Contributed by " +"Serhiy Storchaka in :issue:`24164`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1317 +msgid "pickletools" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1319 +msgid "" +":func:`pickletools.dis()` now outputs the implicit memo index for the " +"``MEMOIZE`` opcode. (Contributed by Serhiy Storchaka in :issue:`25382`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1325 +msgid "pydoc" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1327 +msgid "" +"The :mod:`pydoc` module has learned to respect the ``MANPAGER`` environment " +"variable. (Contributed by Matthias Klose in :issue:`8637`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1331 +msgid "" +":func:`help` and :mod:`pydoc` can now list named tuple fields in the order " +"they were defined rather than alphabetically. (Contributed by Raymond " +"Hettinger in :issue:`24879`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1337 +msgid "random" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1339 +msgid "" +"The new :func:`~random.choices` function returns a list of elements of " +"specified size from the given population with optional weights. (Contributed " +"by Raymond Hettinger in :issue:`18844`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1345 ../Doc/whatsnew/3.6.rst:2025 +msgid "re" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1347 +msgid "" +"Added support of modifier spans in regular expressions. Examples: ``'(?i:" +"p)ython'`` matches ``'python'`` and ``'Python'``, but not ``'PYTHON'``; ``'(?" +"i)g(?-i:v)r'`` matches ``'GvR'`` and ``'gvr'``, but not ``'GVR'``. " +"(Contributed by Serhiy Storchaka in :issue:`433028`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1352 +msgid "" +"Match object groups can be accessed by ``__getitem__``, which is equivalent " +"to ``group()``. So ``mo['name']`` is now equivalent to ``mo." +"group('name')``. (Contributed by Eric Smith in :issue:`24454`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1356 +msgid "" +":class:`~re.Match` objects now support :meth:`index-like objects ` as group indices. (Contributed by Jeroen Demeyer and Xiang Zhang " +"in :issue:`27177`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1363 +msgid "readline" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1365 +msgid "" +"Added :func:`~readline.set_auto_history` to enable or disable automatic " +"addition of input to the history list. (Contributed by Tyler Crompton in :" +"issue:`26870`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1371 +msgid "rlcompleter" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1373 +msgid "" +"Private and special attribute names now are omitted unless the prefix starts " +"with underscores. A space or a colon is added after some completed " +"keywords. (Contributed by Serhiy Storchaka in :issue:`25011` and :issue:" +"`25209`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1379 +msgid "shlex" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1381 +msgid "" +"The :class:`~shlex.shlex` has much :ref:`improved shell compatibility " +"` through the new *punctuation_chars* argument " +"to control which characters are treated as punctuation. (Contributed by " +"Vinay Sajip in :issue:`1521950`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1389 +msgid "site" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1391 +msgid "" +"When specifying paths to add to :attr:`sys.path` in a `.pth` file, you may " +"now specify file paths on top of directories (e.g. zip files). (Contributed " +"by Wolfgang Langner in :issue:`26587`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1397 +msgid "sqlite3" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1399 +msgid "" +":attr:`sqlite3.Cursor.lastrowid` now supports the ``REPLACE`` statement. " +"(Contributed by Alex LordThorsen in :issue:`16864`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1404 +msgid "socket" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1406 +msgid "" +"The :func:`~socket.socket.ioctl` function now supports the :data:`~socket." +"SIO_LOOPBACK_FAST_PATH` control code. (Contributed by Daniel Stokes in :" +"issue:`26536`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1410 +msgid "" +"The :meth:`~socket.socket.getsockopt` constants ``SO_DOMAIN``, " +"``SO_PROTOCOL``, ``SO_PEERSEC``, and ``SO_PASSSEC`` are now supported. " +"(Contributed by Christian Heimes in :issue:`26907`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1414 +msgid "" +"The :meth:`~socket.socket.setsockopt` now supports the ``setsockopt(level, " +"optname, None, optlen: int)`` form. (Contributed by Christian Heimes in :" +"issue:`27744`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1418 +msgid "" +"The socket module now supports the address family :data:`~socket.AF_ALG` to " +"interface with Linux Kernel crypto API. ``ALG_*``, ``SOL_ALG`` and :meth:" +"`~socket.socket.sendmsg_afalg` were added. (Contributed by Christian Heimes " +"in :issue:`27744` with support from Victor Stinner.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1424 +msgid "" +"New Linux constants ``TCP_USER_TIMEOUT`` and ``TCP_CONGESTION`` were added. " +"(Contributed by Omar Sandoval, issue:`26273`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1429 +msgid "socketserver" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1431 +msgid "" +"Servers based on the :mod:`socketserver` module, including those defined in :" +"mod:`http.server`, :mod:`xmlrpc.server` and :mod:`wsgiref.simple_server`, " +"now support the :term:`context manager` protocol. (Contributed by Aviv " +"Palivoda in :issue:`26404`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1437 +msgid "" +"The :attr:`~socketserver.StreamRequestHandler.wfile` attribute of :class:" +"`~socketserver.StreamRequestHandler` classes now implements the :class:`io." +"BufferedIOBase` writable interface. In particular, calling :meth:`~io." +"BufferedIOBase.write` is now guaranteed to send the data in full. " +"(Contributed by Martin Panter in :issue:`26721`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1445 ../Doc/whatsnew/3.6.rst:2033 +msgid "ssl" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1447 +msgid "" +":mod:`ssl` supports OpenSSL 1.1.0. The minimum recommend version is 1.0.2. " +"(Contributed by Christian Heimes in :issue:`26470`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1450 +msgid "" +"3DES has been removed from the default cipher suites and ChaCha20 Poly1305 " +"cipher suites have been added. (Contributed by Christian Heimes in :issue:" +"`27850` and :issue:`27766`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1454 +msgid "" +":class:`~ssl.SSLContext` has better default configuration for options and " +"ciphers. (Contributed by Christian Heimes in :issue:`28043`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1458 +msgid "" +"SSL session can be copied from one client-side connection to another with " +"the new :class:`~ssl.SSLSession` class. TLS session resumption can speed up " +"the initial handshake, reduce latency and improve performance (Contributed " +"by Christian Heimes in :issue:`19500` based on a draft by Alex Warhawk.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1464 +msgid "" +"The new :meth:`~ssl.SSLContext.get_ciphers` method can be used to get a list " +"of enabled ciphers in order of cipher priority." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1467 +msgid "" +"All constants and flags have been converted to :class:`~enum.IntEnum` and :" +"class:`~enum.IntFlags`. (Contributed by Christian Heimes in :issue:`28025`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1471 +msgid "" +"Server and client-side specific TLS protocols for :class:`~ssl.SSLContext` " +"were added. (Contributed by Christian Heimes in :issue:`28085`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1477 +msgid "statistics" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1479 +msgid "" +"A new :func:`~statistics.harmonic_mean` function has been added. " +"(Contributed by Steven D'Aprano in :issue:`27181`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1484 +msgid "struct" +msgstr "struct" + +#: ../Doc/whatsnew/3.6.rst:1486 +msgid "" +":mod:`struct` now supports IEEE 754 half-precision floats via the ``'e'`` " +"format specifier. (Contributed by Eli Stevens, Mark Dickinson in :issue:" +"`11734`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1492 +msgid "subprocess" +msgstr "subprocess" + +#: ../Doc/whatsnew/3.6.rst:1494 +msgid "" +":class:`subprocess.Popen` destructor now emits a :exc:`ResourceWarning` " +"warning if the child process is still running. Use the context manager " +"protocol (``with proc: ...``) or explicitly call the :meth:`~subprocess." +"Popen.wait` method to read the exit status of the child process. " +"(Contributed by Victor Stinner in :issue:`26741`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1500 +msgid "" +"The :class:`subprocess.Popen` constructor and all functions that pass " +"arguments through to it now accept *encoding* and *errors* arguments. " +"Specifying either of these will enable text mode for the *stdin*, *stdout* " +"and *stderr* streams. (Contributed by Steve Dower in :issue:`6135`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1507 +msgid "sys" +msgstr "sys" + +#: ../Doc/whatsnew/3.6.rst:1509 +msgid "" +"The new :func:`~sys.getfilesystemencodeerrors` function returns the name of " +"the error mode used to convert between Unicode filenames and bytes " +"filenames. (Contributed by Steve Dower in :issue:`27781`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1513 +msgid "" +"On Windows the return value of the :func:`~sys.getwindowsversion` function " +"now includes the *platform_version* field which contains the accurate major " +"version, minor version and build number of the current operating system, " +"rather than the version that is being emulated for the process (Contributed " +"by Steve Dower in :issue:`27932`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1521 +msgid "telnetlib" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1523 +msgid "" +":class:`~telnetlib.Telnet` is now a context manager (contributed by Stéphane " +"Wirtel in :issue:`25485`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1528 +msgid "time" +msgstr "time" + +#: ../Doc/whatsnew/3.6.rst:1530 +msgid "" +"The :class:`~time.struct_time` attributes :attr:`tm_gmtoff` and :attr:" +"`tm_zone` are now available on all platforms." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1535 +msgid "timeit" +msgstr "timeit" + +#: ../Doc/whatsnew/3.6.rst:1537 +msgid "" +"The new :meth:`Timer.autorange() ` convenience " +"method has been added to call :meth:`Timer.timeit() ` " +"repeatedly so that the total run time is greater or equal to 200 " +"milliseconds. (Contributed by Steven D'Aprano in :issue:`6422`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1542 +msgid "" +":mod:`timeit` now warns when there is substantial (4x) variance between best " +"and worst times. (Contributed by Serhiy Storchaka in :issue:`23552`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1548 ../Doc/whatsnew/3.6.rst:2050 +msgid "tkinter" +msgstr "tkinter" + +#: ../Doc/whatsnew/3.6.rst:1550 +msgid "" +"Added methods :meth:`~tkinter.Variable.trace_add`, :meth:`~tkinter.Variable." +"trace_remove` and :meth:`~tkinter.Variable.trace_info` in the :class:" +"`tkinter.Variable` class. They replace old methods :meth:`~tkinter.Variable." +"trace_variable`, :meth:`~tkinter.Variable.trace`, :meth:`~tkinter.Variable." +"trace_vdelete` and :meth:`~tkinter.Variable.trace_vinfo` that use obsolete " +"Tcl commands and might not work in future versions of Tcl. (Contributed by " +"Serhiy Storchaka in :issue:`22115`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1563 +msgid "traceback" +msgstr "traceback" + +#: ../Doc/whatsnew/3.6.rst:1565 +msgid "" +"Both the traceback module and the interpreter's builtin exception display " +"now abbreviate long sequences of repeated lines in tracebacks as shown in " +"the following example::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1580 +msgid "(Contributed by Emanuel Barry in :issue:`26823`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1584 +msgid "tracemalloc" +msgstr "tracemalloc" + +#: ../Doc/whatsnew/3.6.rst:1586 +msgid "" +"The :mod:`tracemalloc` module now supports tracing memory allocations in " +"multiple different address spaces." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1589 +msgid "" +"The new :class:`~tracemalloc.DomainFilter` filter class has been added to " +"filter block traces by their address space (domain)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1592 +msgid "(Contributed by Victor Stinner in :issue:`26588`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1598 +msgid "typing" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1600 +msgid "" +"Since the :mod:`typing` module is :term:`provisional `, all " +"changes introduced in Python 3.6 have also been backported to Python 3.5.x." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1604 +msgid "" +"The :mod:`typing` module has a much improved support for generic type " +"aliases. For example ``Dict[str, Tuple[S, T]]`` is now a valid type " +"annotation. (Contributed by Guido van Rossum in `Github #195 `_.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1610 +msgid "" +"The :class:`typing.ContextManager` class has been added for representing :" +"class:`contextlib.AbstractContextManager`. (Contributed by Brett Cannon in :" +"issue:`25609`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1614 +msgid "" +"The :class:`typing.Collection` class has been added for representing :class:" +"`collections.abc.Collection`. (Contributed by Ivan Levkivskyi in :issue:" +"`27598`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1618 +msgid "" +"The :const:`typing.ClassVar` type construct has been added to mark class " +"variables. As introduced in :pep:`526`, a variable annotation wrapped in " +"ClassVar indicates that a given attribute is intended to be used as a class " +"variable and should not be set on instances of that class. (Contributed by " +"Ivan Levkivskyi in `Github #280 `_.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1625 +msgid "" +"A new :const:`~typing.TYPE_CHECKING` constant that is assumed to be ``True`` " +"by the static type checkers, but is ``False`` at runtime. (Contributed by " +"Guido van Rossum in `Github #230 `_.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1630 +msgid "" +"A new :func:`~typing.NewType` helper function has been added to create " +"lightweight distinct types for annotations::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1638 +msgid "" +"The static type checker will treat the new type as if it were a subclass of " +"the original type. (Contributed by Ivan Levkivskyi in `Github #189 `_.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1644 +msgid "unicodedata" +msgstr "unicodedata" + +#: ../Doc/whatsnew/3.6.rst:1646 +msgid "" +"The :mod:`unicodedata` module now uses data from `Unicode 9.0.0 `_. (Contributed by Benjamin Peterson.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1652 +msgid "unittest.mock" +msgstr "unittest.mock" + +#: ../Doc/whatsnew/3.6.rst:1654 +msgid "The :class:`~unittest.mock.Mock` class has the following improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1656 +msgid "" +"Two new methods, :meth:`Mock.assert_called() ` and :meth:`Mock.assert_called_once() ` to check if the mock object was called. (Contributed by " +"Amit Saha in :issue:`26323`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1662 +msgid "" +"The :meth:`Mock.reset_mock() ` method now has " +"two optional keyword only arguments: *return_value* and *side_effect*. " +"(Contributed by Kushal Das in :issue:`21271`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1669 +msgid "urllib.request" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1671 +msgid "" +"If a HTTP request has a file or iterable body (other than a bytes object) " +"but no ``Content-Length`` header, rather than throwing an error, :class:" +"`~urllib.request.AbstractHTTPHandler` now falls back to use chunked transfer " +"encoding. (Contributed by Demian Brecht and Rolf Krahl in :issue:`12319`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1679 +msgid "urllib.robotparser" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1681 +msgid "" +":class:`~urllib.robotparser.RobotFileParser` now supports the ``Crawl-" +"delay`` and ``Request-rate`` extensions. (Contributed by Nikolay Bogoychev " +"in :issue:`16099`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1687 ../Doc/whatsnew/3.6.rst:2056 +msgid "venv" +msgstr "venv" + +#: ../Doc/whatsnew/3.6.rst:1689 +msgid "" +":mod:`venv` accepts a new parameter ``--prompt``. This parameter provides an " +"alternative prefix for the virtual environment. (Proposed by Łukasz " +"Balcerzak and ported to 3.6 by Stéphane Wirtel in :issue:`22829`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1695 +msgid "warnings" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1697 +msgid "" +"A new optional *source* parameter has been added to the :func:`warnings." +"warn_explicit` function: the destroyed object which emitted a :exc:" +"`ResourceWarning`. A *source* attribute has also been added to :class:" +"`warnings.WarningMessage` (contributed by Victor Stinner in :issue:`26568` " +"and :issue:`26567`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1703 +msgid "" +"When a :exc:`ResourceWarning` warning is logged, the :mod:`tracemalloc` " +"module is now used to try to retrieve the traceback where the destroyed " +"object was allocated." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1706 +msgid "Example with the script ``example.py``::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1716 +msgid "Output of the command ``python3.6 -Wd -X tracemalloc=5 example.py``::" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1726 +msgid "" +"The \"Object allocated at\" traceback is new and is only displayed if :mod:" +"`tracemalloc` is tracing Python memory allocations and if the :mod:" +"`warnings` module was already imported." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1732 +msgid "winreg" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1734 +msgid "" +"Added the 64-bit integer type :data:`REG_QWORD `. " +"(Contributed by Clement Rouault in :issue:`23026`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1739 +msgid "winsound" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1741 +msgid "" +"Allowed keyword arguments to be passed to :func:`Beep `, :" +"func:`MessageBeep `, and :func:`PlaySound ` (:issue:`27982`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1747 +msgid "xmlrpc.client" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1749 +msgid "" +"The :mod:`xmlrpc.client` module now supports unmarshalling additional data " +"types used by the Apache XML-RPC implementation for numerics and ``None``. " +"(Contributed by Serhiy Storchaka in :issue:`26885`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1756 +msgid "zipfile" +msgstr "zipfile" + +#: ../Doc/whatsnew/3.6.rst:1758 +msgid "" +"A new :meth:`ZipInfo.from_file() ` class method " +"allows making a :class:`~zipfile.ZipInfo` instance from a filesystem file. A " +"new :meth:`ZipInfo.is_dir() ` method can be used to " +"check if the :class:`~zipfile.ZipInfo` instance represents a directory. " +"(Contributed by Thomas Kluyver in :issue:`26039`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1764 +msgid "" +"The :meth:`ZipFile.open() ` method can now be used to " +"write data into a ZIP file, as well as for extracting data. (Contributed by " +"Thomas Kluyver in :issue:`26039`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1770 +msgid "zlib" +msgstr "zlib" + +#: ../Doc/whatsnew/3.6.rst:1772 +msgid "" +"The :func:`~zlib.compress` and :func:`~zlib.decompress` functions now accept " +"keyword arguments. (Contributed by Aviv Palivoda in :issue:`26243` and Xiang " +"Zhang in :issue:`16764` respectively.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1779 +msgid "Optimizations" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1781 +msgid "" +"The Python interpreter now uses a 16-bit wordcode instead of bytecode which " +"made a number of opcode optimizations possible. (Contributed by Demur Rumed " +"with input and reviews from Serhiy Storchaka and Victor Stinner in :issue:" +"`26647` and :issue:`28050`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1786 +msgid "" +"The :class:`asyncio.Future` class now has an optimized C implementation. " +"(Contributed by Yury Selivanov and INADA Naoki in :issue:`26081`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1789 +msgid "" +"The :class:`asyncio.Task` class now has an optimized C implementation. " +"(Contributed by Yury Selivanov in :issue:`28544`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1792 +msgid "" +"Various implementation improvements in the :mod:`typing` module (such as " +"caching of generic types) allow up to 30 times performance improvements and " +"reduced memory footprint." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1796 +msgid "" +"The ASCII decoder is now up to 60 times as fast for error handlers " +"``surrogateescape``, ``ignore`` and ``replace`` (Contributed by Victor " +"Stinner in :issue:`24870`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1800 +msgid "" +"The ASCII and the Latin1 encoders are now up to 3 times as fast for the " +"error handler ``surrogateescape`` (Contributed by Victor Stinner in :issue:" +"`25227`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1804 +msgid "" +"The UTF-8 encoder is now up to 75 times as fast for error handlers " +"``ignore``, ``replace``, ``surrogateescape``, ``surrogatepass`` (Contributed " +"by Victor Stinner in :issue:`25267`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1808 +msgid "" +"The UTF-8 decoder is now up to 15 times as fast for error handlers " +"``ignore``, ``replace`` and ``surrogateescape`` (Contributed by Victor " +"Stinner in :issue:`25301`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1812 +msgid "" +"``bytes % args`` is now up to 2 times faster. (Contributed by Victor Stinner " +"in :issue:`25349`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1815 +msgid "" +"``bytearray % args`` is now between 2.5 and 5 times faster. (Contributed by " +"Victor Stinner in :issue:`25399`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1818 +msgid "" +"Optimize :meth:`bytes.fromhex` and :meth:`bytearray.fromhex`: they are now " +"between 2x and 3.5x faster. (Contributed by Victor Stinner in :issue:" +"`25401`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1821 +msgid "" +"Optimize ``bytes.replace(b'', b'.')`` and ``bytearray.replace(b'', b'.')``: " +"up to 80% faster. (Contributed by Josh Snider in :issue:`26574`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1824 +msgid "" +"Allocator functions of the :c:func:`PyMem_Malloc` domain (:c:data:" +"`PYMEM_DOMAIN_MEM`) now use the :ref:`pymalloc memory allocator ` " +"instead of :c:func:`malloc` function of the C library. The pymalloc " +"allocator is optimized for objects smaller or equal to 512 bytes with a " +"short lifetime, and use :c:func:`malloc` for larger memory blocks. " +"(Contributed by Victor Stinner in :issue:`26249`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1831 +msgid "" +":func:`pickle.load` and :func:`pickle.loads` are now up to 10% faster when " +"deserializing many small objects (Contributed by Victor Stinner in :issue:" +"`27056`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1835 +msgid "" +"Passing :term:`keyword arguments ` to a function has an " +"overhead in comparison with passing :term:`positional arguments `. Now in extension functions implemented with using Argument " +"Clinic this overhead is significantly decreased. (Contributed by Serhiy " +"Storchaka in :issue:`27574`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1841 +msgid "" +"Optimized :func:`~glob.glob` and :func:`~glob.iglob` functions in the :mod:" +"`glob` module; they are now about 3--6 times faster. (Contributed by Serhiy " +"Storchaka in :issue:`25596`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1845 +msgid "" +"Optimized globbing in :mod:`pathlib` by using :func:`os.scandir`; it is now " +"about 1.5--4 times faster. (Contributed by Serhiy Storchaka in :issue:" +"`26032`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1849 +msgid "" +":class:`xml.etree.ElementTree` parsing, iteration and deepcopy performance " +"has been significantly improved. (Contributed by Serhiy Storchaka in :issue:" +"`25638`, :issue:`25873`, and :issue:`25869`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1854 +msgid "" +"Creation of :class:`fractions.Fraction` instances from floats and decimals " +"is now 2 to 3 times faster. (Contributed by Serhiy Storchaka in :issue:" +"`25971`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1860 +msgid "Build and C API Changes" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1862 +msgid "" +"Python now requires some C99 support in the toolchain to build. Most " +"notably, Python now uses standard integer types and macros in place of " +"custom macros like ``PY_LONG_LONG``. For more information, see :pep:`7` and :" +"issue:`17884`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1867 +msgid "" +"Cross-compiling CPython with the Android NDK and the Android API level set " +"to 21 (Android 5.0 Lollipop) or greater runs successfully. While Android is " +"not yet a supported platform, the Python test suite runs on the Android " +"emulator with only about 16 tests failures. See the Android meta-issue :" +"issue:`26865`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1872 +msgid "" +"The ``--enable-optimizations`` configure flag has been added. Turning it on " +"will activate expensive optimizations like PGO. (Original patch by " +"Alecsandru Patrascu of Intel in :issue:`26359`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1876 +msgid "" +"The :term:`GIL ` must now be held when allocator " +"functions of :c:data:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) and :" +"c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are called." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1880 +msgid "" +"New :c:func:`Py_FinalizeEx` API which indicates if flushing buffered data " +"failed. (Contributed by Martin Panter in :issue:`5319`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1884 +msgid "" +":c:func:`PyArg_ParseTupleAndKeywords` now supports :ref:`positional-only " +"parameters `. Positional-only parameters are " +"defined by empty names. (Contributed by Serhiy Storchaka in :issue:`26282`)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1889 +msgid "" +"``PyTraceback_Print`` method now abbreviates long sequences of repeated " +"lines as ``\"[Previous line repeated {count} more times]\"``. (Contributed " +"by Emanuel Barry in :issue:`26823`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1893 +msgid "" +"The new :c:func:`PyErr_SetImportErrorSubclass` function allows for " +"specifying a subclass of :exc:`ImportError` to raise. (Contributed by Eric " +"Snow in :issue:`15767`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1897 +msgid "" +"The new :c:func:`PyErr_ResourceWarning` function can be used to generate a :" +"exc:`ResourceWarning` providing the source of the resource allocation. " +"(Contributed by Victor Stinner in :issue:`26567`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1901 +msgid "" +"The new :c:func:`PyOS_FSPath` function returns the file system " +"representation of a :term:`path-like object`. (Contributed by Brett Cannon " +"in :issue:`27186`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1905 +msgid "" +"The :c:func:`PyUnicode_FSConverter` and :c:func:`PyUnicode_FSDecoder` " +"functions will now accept :term:`path-like objects `." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1910 +msgid "Other Improvements" +msgstr "Autres Améliorations" + +#: ../Doc/whatsnew/3.6.rst:1912 +msgid "" +"When :option:`--version` (short form: :option:`-V`) is supplied twice, " +"Python prints :data:`sys.version` for detailed information." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1923 +msgid "Deprecated" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1926 +msgid "New Keywords" +msgstr "Nouveaux mot-clefs" + +#: ../Doc/whatsnew/3.6.rst:1928 +msgid "" +"``async`` and ``await`` are not recommended to be used as variable, class, " +"function or module names. Introduced by :pep:`492` in Python 3.5, they will " +"become proper keywords in Python 3.7. Starting in Python 3.6, the use of " +"``async`` or ``await`` as names will generate a :exc:`DeprecationWarning`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1935 +msgid "Deprecated Python behavior" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1937 +msgid "" +"Raising the :exc:`StopIteration` exception inside a generator will now " +"generate a :exc:`DeprecationWarning`, and will trigger a :exc:`RuntimeError` " +"in Python 3.7. See :ref:`whatsnew-pep-479` for details." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1941 +msgid "" +"The :meth:`__aiter__` method is now expected to return an asynchronous " +"iterator directly instead of returning an awaitable as previously. Doing the " +"former will trigger a :exc:`DeprecationWarning`. Backward compatibility " +"will be removed in Python 3.7. (Contributed by Yury Selivanov in :issue:" +"`27243`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1947 +msgid "" +"A backslash-character pair that is not a valid escape sequence now generates " +"a :exc:`DeprecationWarning`. Although this will eventually become a :exc:" +"`SyntaxError`, that will not be for several Python releases. (Contributed by " +"Emanuel Barry in :issue:`27364`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1952 +msgid "" +"When performing a relative import, falling back on ``__name__`` and " +"``__path__`` from the calling module when ``__spec__`` or ``__package__`` " +"are not defined now raises an :exc:`ImportWarning`. (Contributed by Rose " +"Ames in :issue:`25791`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1959 +msgid "Deprecated Python modules, functions and methods" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1962 +msgid "asynchat" +msgstr "asynchat" + +#: ../Doc/whatsnew/3.6.rst:1964 +msgid "" +"The :mod:`asynchat` has been deprecated in favor of :mod:`asyncio`. " +"(Contributed by Mariatta in :issue:`25002`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1969 +msgid "asyncore" +msgstr "asyncore" + +#: ../Doc/whatsnew/3.6.rst:1971 +msgid "" +"The :mod:`asyncore` has been deprecated in favor of :mod:`asyncio`. " +"(Contributed by Mariatta in :issue:`25002`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1976 +msgid "dbm" +msgstr "dbm" + +#: ../Doc/whatsnew/3.6.rst:1978 +msgid "" +"Unlike other :mod:`dbm` implementations, the :mod:`dbm.dumb` module creates " +"databases with the ``'rw'`` mode and allows modifying the database opened " +"with the ``'r'`` mode. This behavior is now deprecated and will be removed " +"in 3.8. (Contributed by Serhiy Storchaka in :issue:`21708`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1988 +msgid "" +"The undocumented ``extra_path`` argument to the :class:`~distutils." +"Distribution` constructor is now considered deprecated and will raise a " +"warning if set. Support for this parameter will be removed in a future " +"Python release. See :issue:`27919` for details." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1995 +msgid "grp" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:1997 +msgid "" +"The support of non-integer arguments in :func:`~grp.getgrgid` has been " +"deprecated. (Contributed by Serhiy Storchaka in :issue:`26129`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2005 +msgid "" +"The :meth:`importlib.machinery.SourceFileLoader.load_module` and :meth:" +"`importlib.machinery.SourcelessFileLoader.load_module` methods are now " +"deprecated. They were the only remaining implementations of :meth:`importlib." +"abc.Loader.load_module` in :mod:`importlib` that had not been deprecated in " +"previous versions of Python in favour of :meth:`importlib.abc.Loader." +"exec_module`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2012 +msgid "" +"The :class:`importlib.machinery.WindowsRegistryFinder` class is now " +"deprecated. As of 3.6.0, it is still added to :attr:`sys.meta_path` by " +"default (on Windows), but this may change in future releases." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2019 +msgid "" +"Undocumented support of general :term:`bytes-like objects ` as paths in :mod:`os` functions, :func:`compile` and similar " +"functions is now deprecated. (Contributed by Serhiy Storchaka in :issue:" +"`25791` and :issue:`26754`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2027 +msgid "" +"Support for inline flags ``(?letters)`` in the middle of the regular " +"expression has been deprecated and will be removed in a future Python " +"version. Flags at the start of a regular expression are still allowed. " +"(Contributed by Serhiy Storchaka in :issue:`22493`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2035 +msgid "" +"OpenSSL 0.9.8, 1.0.0 and 1.0.1 are deprecated and no longer supported. In " +"the future the :mod:`ssl` module will require at least OpenSSL 1.0.2 or " +"1.1.0." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2039 +msgid "" +"SSL-related arguments like ``certfile``, ``keyfile`` and ``check_hostname`` " +"in :mod:`ftplib`, :mod:`http.client`, :mod:`imaplib`, :mod:`poplib`, and :" +"mod:`smtplib` have been deprecated in favor of ``context``. (Contributed by " +"Christian Heimes in :issue:`28022`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2044 +msgid "" +"A couple of protocols and functions of the :mod:`ssl` module are now " +"deprecated. Some features will no longer be available in future versions of " +"OpenSSL. Other features are deprecated in favor of a different API. " +"(Contributed by Christian Heimes in :issue:`28022` and :issue:`26470`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2052 +msgid "" +"The :mod:`tkinter.tix` module is now deprecated. :mod:`tkinter` users " +"should use :mod:`tkinter.ttk` instead." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2058 +msgid "" +"The ``pyvenv`` script has been deprecated in favour of ``python3 -m venv``. " +"This prevents confusion as to what Python interpreter ``pyvenv`` is " +"connected to and thus what Python interpreter will be used by the virtual " +"environment. (Contributed by Brett Cannon in :issue:`25154`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2065 +msgid "Deprecated functions and types of the C API" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2067 +msgid "" +"Undocumented functions :c:func:`PyUnicode_AsEncodedObject`, :c:func:" +"`PyUnicode_AsDecodedObject`, :c:func:`PyUnicode_AsEncodedUnicode` and :c:" +"func:`PyUnicode_AsDecodedUnicode` are deprecated now. Use the :ref:`generic " +"codec based API ` instead." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2074 +msgid "Deprecated Build Options" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2076 +msgid "" +"The ``--with-system-ffi`` configure flag is now on by default on non-macOS " +"UNIX platforms. It may be disabled by using ``--without-system-ffi``, but " +"using the flag is deprecated and will not be accepted in Python 3.7. macOS " +"is unaffected by this change. Note that many OS distributors already use " +"the ``--with-system-ffi`` flag when building their system Python." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2084 +msgid "Removed" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2087 +msgid "API and Feature Removals" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2089 +msgid "" +"Unknown escapes consisting of ``'\\'`` and an ASCII letter in regular " +"expressions will now cause an error. In replacement templates for :func:`re." +"sub` they are still allowed, but deprecated. The :const:`re.LOCALE` flag can " +"now only be used with binary patterns." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2094 +msgid "" +"``inspect.getmoduleinfo()`` was removed (was deprecated since CPython 3.3). :" +"func:`inspect.getmodulename` should be used for obtaining the module name " +"for a given path. (Contributed by Yury Selivanov in :issue:`13248`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2099 +msgid "" +"``traceback.Ignore`` class and ``traceback.usage``, ``traceback.modname``, " +"``traceback.fullmodname``, ``traceback.find_lines_from_code``, ``traceback." +"find_lines``, ``traceback.find_strings``, ``traceback." +"find_executable_lines`` methods were removed from the :mod:`traceback` " +"module. They were undocumented methods deprecated since Python 3.2 and " +"equivalent functionality is available from private methods." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2106 +msgid "" +"The ``tk_menuBar()`` and ``tk_bindForTraversal()`` dummy methods in :mod:" +"`tkinter` widget classes were removed (corresponding Tk commands were " +"obsolete since Tk 4.0)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2110 +msgid "" +"The :meth:`~zipfile.ZipFile.open` method of the :class:`zipfile.ZipFile` " +"class no longer supports the ``'U'`` mode (was deprecated since Python 3.4). " +"Use :class:`io.TextIOWrapper` for reading compressed text files in :term:" +"`universal newlines` mode." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2115 +msgid "" +"The undocumented ``IN``, ``CDROM``, ``DLFCN``, ``TYPES``, ``CDIO``, and " +"``STROPTS`` modules have been removed. They had been available in the " +"platform specific ``Lib/plat-*/`` directories, but were chronically out of " +"date, inconsistently available across platforms, and unmaintained. The " +"script that created these modules is still available in the source " +"distribution at :source:`Tools/scripts/h2py.py`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2122 +msgid "The deprecated ``asynchat.fifo`` class has been removed." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2126 +msgid "Porting to Python 3.6" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2128 +msgid "" +"This section lists previously described changes and other bugfixes that may " +"require changes to your code." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2132 +msgid "Changes in 'python' Command Behavior" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2134 +msgid "" +"The output of a special Python build with defined ``COUNT_ALLOCS``, " +"``SHOW_ALLOC_COUNT`` or ``SHOW_TRACK_COUNT`` macros is now off by default. " +"It can be re-enabled using the ``-X showalloccount`` option. It now outputs " +"to ``stderr`` instead of ``stdout``. (Contributed by Serhiy Storchaka in :" +"issue:`23034`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2142 +msgid "Changes in the Python API" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2144 +msgid "" +":func:`open() ` will no longer allow combining the ``'U'`` mode flag " +"with ``'+'``. (Contributed by Jeff Balogh and John O'Connor in :issue:" +"`2091`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2148 +msgid "" +":mod:`sqlite3` no longer implicitly commits an open transaction before DDL " +"statements." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2151 +msgid "" +"On Linux, :func:`os.urandom` now blocks until the system urandom entropy " +"pool is initialized to increase the security." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2154 +msgid "" +"When :meth:`importlib.abc.Loader.exec_module` is defined, :meth:`importlib." +"abc.Loader.create_module` must also be defined." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2157 +msgid "" +":c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg** " +"argument is not set. Previously only ``NULL`` was returned." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2160 +msgid "" +"The format of the ``co_lnotab`` attribute of code objects changed to support " +"a negative line number delta. By default, Python does not emit bytecode with " +"a negative line number delta. Functions using ``frame.f_lineno``, " +"``PyFrame_GetLineNumber()`` or ``PyCode_Addr2Line()`` are not affected. " +"Functions directly decoding ``co_lnotab`` should be updated to use a signed " +"8-bit integer type for the line number delta, but this is only required to " +"support applications using a negative line number delta. See ``Objects/" +"lnotab_notes.txt`` for the ``co_lnotab`` format and how to decode it, and " +"see the :pep:`511` for the rationale." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2170 +msgid "" +"The functions in the :mod:`compileall` module now return booleans instead of " +"``1`` or ``0`` to represent success or failure, respectively. Thanks to " +"booleans being a subclass of integers, this should only be an issue if you " +"were doing identity checks for ``1`` or ``0``. See :issue:`25768`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2175 +msgid "" +"Reading the :attr:`~urllib.parse.SplitResult.port` attribute of :func:" +"`urllib.parse.urlsplit` and :func:`~urllib.parse.urlparse` results now " +"raises :exc:`ValueError` for out-of-range values, rather than returning :" +"const:`None`. See :issue:`20059`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2180 +msgid "" +"The :mod:`imp` module now raises a :exc:`DeprecationWarning` instead of :exc:" +"`PendingDeprecationWarning`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2183 +msgid "" +"The following modules have had missing APIs added to their :attr:`__all__` " +"attributes to match the documented APIs: :mod:`calendar`, :mod:`cgi`, :mod:" +"`csv`, :mod:`~xml.etree.ElementTree`, :mod:`enum`, :mod:`fileinput`, :mod:" +"`ftplib`, :mod:`logging`, :mod:`mailbox`, :mod:`mimetypes`, :mod:" +"`optparse`, :mod:`plistlib`, :mod:`smtpd`, :mod:`subprocess`, :mod:" +"`tarfile`, :mod:`threading` and :mod:`wave`. This means they will export " +"new symbols when ``import *`` is used. (Contributed by Joel Taddei and Jacek " +"Kołodziej in :issue:`23883`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2194 +msgid "" +"When performing a relative import, if ``__package__`` does not compare equal " +"to ``__spec__.parent`` then :exc:`ImportWarning` is raised. (Contributed by " +"Brett Cannon in :issue:`25791`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2198 +msgid "" +"When a relative import is performed and no parent package is known, then :" +"exc:`ImportError` will be raised. Previously, :exc:`SystemError` could be " +"raised. (Contributed by Brett Cannon in :issue:`18018`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2202 +msgid "" +"Servers based on the :mod:`socketserver` module, including those defined in :" +"mod:`http.server`, :mod:`xmlrpc.server` and :mod:`wsgiref.simple_server`, " +"now only catch exceptions derived from :exc:`Exception`. Therefore if a " +"request handler raises an exception like :exc:`SystemExit` or :exc:" +"`KeyboardInterrupt`, :meth:`~socketserver.BaseServer.handle_error` is no " +"longer called, and the exception will stop a single-threaded server. " +"(Contributed by Martin Panter in :issue:`23430`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2211 +msgid "" +":func:`spwd.getspnam` now raises a :exc:`PermissionError` instead of :exc:" +"`KeyError` if the user doesn't have privileges." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2214 +msgid "" +"The :meth:`socket.socket.close` method now raises an exception if an error " +"(e.g. ``EBADF``) was reported by the underlying system call. (Contributed by " +"Martin Panter in :issue:`26685`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2218 +msgid "" +"The *decode_data* argument for the :class:`smtpd.SMTPChannel` and :class:" +"`smtpd.SMTPServer` constructors is now ``False`` by default. This means that " +"the argument passed to :meth:`~smtpd.SMTPServer.process_message` is now a " +"bytes object by default, and ``process_message()`` will be passed keyword " +"arguments. Code that has already been updated in accordance with the " +"deprecation warning generated by 3.5 will not be affected." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2226 +msgid "" +"All optional arguments of the :func:`~json.dump`, :func:`~json.dumps`, :func:" +"`~json.load` and :func:`~json.loads` functions and :class:`~json." +"JSONEncoder` and :class:`~json.JSONDecoder` class constructors in the :mod:" +"`json` module are now :ref:`keyword-only `. " +"(Contributed by Serhiy Storchaka in :issue:`18726`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2233 +msgid "" +"Subclasses of :class:`type` which don't override ``type.__new__`` may no " +"longer use the one-argument form to get the type of an object." +msgstr "" +"Les sous-classes de :class:`type` qui ne redéfinissent pas ``type.__new__`` " +"ne devraient plus utiliser la forme à un argument pour récupérer le type " +"d'un objet." + +#: ../Doc/whatsnew/3.6.rst:2236 +msgid "" +"As part of :pep:`487`, the handling of keyword arguments passed to :class:" +"`type` (other than the metaclass hint, ``metaclass``) is now consistently " +"delegated to :meth:`object.__init_subclass__`. This means that :meth:`type." +"__new__` and :meth:`type.__init__` both now accept arbitrary keyword " +"arguments, but :meth:`object.__init_subclass__` (which is called from :meth:" +"`type.__new__`) will reject them by default. Custom metaclasses accepting " +"additional keyword arguments will need to adjust their calls to :meth:`type." +"__new__` (whether direct or via :class:`super`) accordingly." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2245 +msgid "" +"In :class:`distutils.command.sdist.sdist`, the ``default_format`` attribute " +"has been removed and is no longer honored. Instead, the gzipped tarfile " +"format is the default on all platforms and no platform-specific selection is " +"made. In environments where distributions are built on Windows and zip " +"distributions are required, configure the project with a ``setup.cfg`` file " +"containing the following:" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2258 +msgid "" +"This behavior has also been backported to earlier Python versions by " +"Setuptools 26.0.0." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2261 +msgid "" +"In the :mod:`urllib.request` module and the :meth:`http.client." +"HTTPConnection.request` method, if no Content-Length header field has been " +"specified and the request body is a file object, it is now sent with HTTP " +"1.1 chunked encoding. If a file object has to be sent to a HTTP 1.0 server, " +"the Content-Length value now has to be specified by the caller. (Contributed " +"by Demian Brecht and Rolf Krahl with tweaks from Martin Panter in :issue:" +"`12319`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2270 +msgid "" +"The :class:`~csv.DictReader` now returns rows of type :class:`~collections." +"OrderedDict`. (Contributed by Steve Holden in :issue:`27842`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2274 +msgid "" +"The :const:`crypt.METHOD_CRYPT` will no longer be added to ``crypt.methods`` " +"if unsupported by the platform. (Contributed by Victor Stinner in :issue:" +"`25287`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2282 +msgid "" +"On Linux, :func:`ctypes.util.find_library` now looks in ``LD_LIBRARY_PATH`` " +"for shared libraries. (Contributed by Vinay Sajip in :issue:`9998`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2286 +msgid "" +"The :class:`imaplib.IMAP4` class now handles flags containing the ``']'`` " +"character in messages sent from the server to improve real-world " +"compatibility. (Contributed by Lita Cho in :issue:`21815`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2291 +msgid "" +"The :func:`mmap.write() ` function now returns the number of " +"bytes written like other write methods. (Contributed by Jakub Stasiak in :" +"issue:`26335`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2295 +msgid "" +"The :func:`pkgutil.iter_modules` and :func:`pkgutil.walk_packages` functions " +"now return :class:`~pkgutil.ModuleInfo` named tuples. (Contributed by " +"Ramchandra Apte in :issue:`17211`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2299 +msgid "" +":func:`re.sub` now raises an error for invalid numerical group references in " +"replacement templates even if the pattern is not found in the string. The " +"error message for invalid group references now includes the group index and " +"the position of the reference. (Contributed by SilentGhost, Serhiy Storchaka " +"in :issue:`25953`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2305 +msgid "" +":class:`zipfile.ZipFile` will now raise :exc:`NotImplementedError` for " +"unrecognized compression values. Previously a plain :exc:`RuntimeError` was " +"raised. Additionally, calling :class:`~zipfile.ZipFile` methods on a closed " +"ZipFile or calling the :meth:`~zipfile.ZipFile.write` method on a ZipFile " +"created with mode ``'r'`` will raise a :exc:`ValueError`. Previously, a :exc:" +"`RuntimeError` was raised in those scenarios." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2312 +msgid "" +"when custom metaclasses are combined with zero-argument :func:`super` or " +"direct references from methods to the implicit ``__class__`` closure " +"variable, the implicit ``__classcell__`` namespace entry must now be passed " +"up to ``type.__new__`` for initialisation. Failing to do so will result in " +"a :exc:`DeprecationWarning` in Python 3.6 and a :exc:`RuntimeError` in " +"Python 3.8." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2319 +msgid "" +"With the introduction of :exc:`ModuleNotFoundError`, import system consumers " +"may start expecting import system replacements to raise that more specific " +"exception when appropriate, rather than the less-specific :exc:" +"`ImportError`. To provide future compatibility with such consumers, " +"implementors of alternative import systems that completely replace :func:" +"`__import__` will need to update their implementations to raise the new " +"subclass when a module can't be found at all. Implementors of compliant " +"plugins to the default import system shouldn't need to make any changes, as " +"the default import system will raise the new subclass when appropriate." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2331 +msgid "Changes in the C API" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2333 +msgid "" +"The :c:func:`PyMem_Malloc` allocator family now uses the :ref:`pymalloc " +"allocator ` rather than the system :c:func:`malloc`. Applications " +"calling :c:func:`PyMem_Malloc` without holding the GIL can now crash. Set " +"the :envvar:`PYTHONMALLOC` environment variable to ``debug`` to validate the " +"usage of memory allocators in your application. See :issue:`26249`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2339 +msgid "" +":c:func:`Py_Exit` (and the main interpreter) now override the exit status " +"with 120 if flushing buffered data failed. See :issue:`5319`." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2344 +msgid "CPython bytecode changes" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2346 +msgid "" +"There have been several major changes to the :term:`bytecode` in Python 3.6." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2348 +msgid "" +"The Python interpreter now uses a 16-bit wordcode instead of bytecode. " +"(Contributed by Demur Rumed with input and reviews from Serhiy Storchaka and " +"Victor Stinner in :issue:`26647` and :issue:`28050`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2352 +msgid "" +"The new :opcode:`FORMAT_VALUE` and :opcode:`BUILD_STRING` opcodes as part of " +"the :ref:`formatted string literal ` implementation. " +"(Contributed by Eric Smith in :issue:`25483` and Serhiy Storchaka in :issue:" +"`27078`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2357 +msgid "" +"The new :opcode:`BUILD_CONST_KEY_MAP` opcode to optimize the creation of " +"dictionaries with constant keys. (Contributed by Serhiy Storchaka in :issue:" +"`27140`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2361 +msgid "" +"The function call opcodes have been heavily reworked for better performance " +"and simpler implementation. The :opcode:`MAKE_FUNCTION`, :opcode:" +"`CALL_FUNCTION`, :opcode:`CALL_FUNCTION_KW` and :opcode:" +"`BUILD_MAP_UNPACK_WITH_CALL` opcodes have been modified, the new :opcode:" +"`CALL_FUNCTION_EX` and :opcode:`BUILD_TUPLE_UNPACK_WITH_CALL` have been " +"added, and ``CALL_FUNCTION_VAR``, ``CALL_FUNCTION_VAR_KW`` and " +"``MAKE_CLOSURE`` opcodes have been removed. (Contributed by Demur Rumed in :" +"issue:`27095`, and Serhiy Storchaka in :issue:`27213`, :issue:`28257`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2372 +msgid "" +"The new :opcode:`SETUP_ANNOTATIONS` and :opcode:`STORE_ANNOTATION` opcodes " +"have been added to support the new :term:`variable annotation` syntax. " +"(Contributed by Ivan Levkivskyi in :issue:`27985`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2378 +msgid "Notable changes in Python 3.6.2" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2381 +msgid "New ``make regen-all`` build target" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2383 +msgid "" +"To simplify cross-compilation, and to ensure that CPython can reliably be " +"compiled without requiring an existing version of Python to already be " +"available, the autotools-based build system no longer attempts to implicitly " +"recompile generated files based on file modification times." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2388 +msgid "" +"Instead, a new ``make regen-all`` command has been added to force " +"regeneration of these files when desired (e.g. after an initial version of " +"Python has already been built based on the pregenerated versions)." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2392 +msgid "" +"More selective regeneration targets are also defined - see :source:`Makefile." +"pre.in` for details." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2395 ../Doc/whatsnew/3.6.rst:2408 +msgid "(Contributed by Victor Stinner in :issue:`23404`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2401 +msgid "Removal of ``make touch`` build target" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2403 +msgid "" +"The ``make touch`` build target previously used to request implicit " +"regeneration of generated files by updating their modification times has " +"been removed." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2406 +msgid "It has been replaced by the new ``make regen-all`` target." +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2414 +msgid "Notable changes in Python 3.6.4" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2416 +msgid "" +"The ``PyExc_RecursionErrorInst`` singleton that was part of the public API " +"has been removed as its members being never cleared may cause a segfault " +"during finalization of the interpreter. (Contributed by Xavier de Gaye in :" +"issue:`22898` and :issue:`30697`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2423 +msgid "Notable changes in Python 3.6.5" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2425 +msgid "" +"The :func:`locale.localeconv` function now sets temporarily the ``LC_CTYPE`` " +"locale to the ``LC_NUMERIC`` locale in some cases. (Contributed by Victor " +"Stinner in :issue:`31900`.)" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2430 +msgid "Notable changes in Python 3.6.7" +msgstr "" + +#: ../Doc/whatsnew/3.6.rst:2432 +msgid "" +"In 3.6.7 the :mod:`tokenize` module now implicitly emits a ``NEWLINE`` token " +"when provided with input that does not have a trailing new line. This " +"behavior now matches what the C tokenizer does internally. (Contributed by " +"Ammar Askar in :issue:`33899`.)" +msgstr "" + +#~ msgid "|today|" +#~ msgstr "|today|" + +#~ msgid "Deprecated features" +#~ msgstr "Fonctionnalités obsolètes" diff --git a/whatsnew/3.7.po b/whatsnew/3.7.po new file mode 100644 index 000000000..b00037c70 --- /dev/null +++ b/whatsnew/3.7.po @@ -0,0 +1,3568 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"PO-Revision-Date: 2018-08-03 23:47+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/whatsnew/3.7.rst:3 +msgid "What's New In Python 3.7" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:0 +msgid "Editor" +msgstr "Rédacteur" + +#: ../Doc/whatsnew/3.7.rst:5 +msgid "Elvis Pranskevichus " +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:47 +msgid "" +"This article explains the new features in Python 3.7, compared to 3.6. " +"Python 3.7 was released on June 27, 2018. For full details, see the :ref:" +"`changelog `." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:53 +msgid "Summary -- Release Highlights" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:58 +msgid "New syntax features:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:60 +msgid "" +":ref:`PEP 563 `, postponed evaluation of type annotations." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:62 +msgid "Backwards incompatible syntax changes:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:64 +msgid ":keyword:`async` and :keyword:`await` are now reserved keywords." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:66 +msgid "New library modules:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:68 +msgid "" +":mod:`contextvars`: :ref:`PEP 567 -- Context Variables `" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:69 +msgid ":mod:`dataclasses`: :ref:`PEP 557 -- Data Classes `" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:70 +msgid ":ref:`whatsnew37_importlib_resources`" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:72 +msgid "New built-in features:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:74 +msgid "" +":ref:`PEP 553 `, the new :func:`breakpoint` function." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:76 +msgid "Python data model improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:78 +msgid "" +":ref:`PEP 562 `, customization of access to module " +"attributes." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:81 +msgid "" +":ref:`PEP 560 `, core support for typing module and " +"generic types." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:84 +msgid "" +"the insertion-order preservation nature of :ref:`dict ` " +"objects `has been declared`_ to be an official part of the Python language " +"spec." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:90 +msgid "Significant improvements in the standard library:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:92 +msgid "" +"The :mod:`asyncio` module has received new features, significant :ref:" +"`usability and performance improvements `." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:95 +msgid "" +"The :mod:`time` module gained support for :ref:`functions with nanosecond " +"resolution `." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:98 +msgid "CPython implementation improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:100 +msgid "Avoiding the use of ASCII as a default text encoding:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:102 +msgid ":ref:`PEP 538 `, legacy C locale coercion" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:103 +msgid ":ref:`PEP 540 `, forced UTF-8 runtime mode" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:104 +msgid ":ref:`PEP 552 `, deterministic .pycs" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:105 +msgid ":ref:`the new development runtime mode `" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:106 +msgid "" +":ref:`PEP 565 `, improved :exc:`DeprecationWarning` " +"handling" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:109 +msgid "C API improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:111 +msgid ":ref:`PEP 539 `, new C API for thread-local storage" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:113 +msgid "Documentation improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:115 +msgid ":ref:`PEP 545 `, Python documentation translations" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:116 +msgid "" +"New documentation translations: `Japanese `_, " +"`French `_, and `Korean `_." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:120 +msgid "" +"This release features notable performance improvements in many areas. The :" +"ref:`whatsnew37-perf` section lists them in detail." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:123 +msgid "" +"For a list of changes that may affect compatibility with previous Python " +"releases please refer to the :ref:`porting-to-python-37` section." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:128 +msgid "New Features" +msgstr "Nouvelles fonctionnalités" + +#: ../Doc/whatsnew/3.7.rst:133 +msgid "PEP 563: Postponed Evaluation of Annotations" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:135 +msgid "" +"The advent of type hints in Python uncovered two glaring usability issues " +"with the functionality of annotations added in :pep:`3107` and refined " +"further in :pep:`526`:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:139 +msgid "" +"annotations could only use names which were already available in the current " +"scope, in other words they didn't support forward references of any kind; and" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:143 +msgid "" +"annotating source code had adverse effects on startup time of Python " +"programs." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:146 +msgid "" +"Both of these issues are fixed by postponing the evaluation of annotations. " +"Instead of compiling code which executes expressions in annotations at their " +"definition time, the compiler stores the annotation in a string form " +"equivalent to the AST of the expression in question. If needed, annotations " +"can be resolved at runtime using :func:`typing.get_type_hints`. In the " +"common case where this is not required, the annotations are cheaper to store " +"(since short strings are interned by the interpreter) and make startup time " +"faster." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:155 +msgid "" +"Usability-wise, annotations now support forward references, making the " +"following syntax valid::" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:169 +msgid "" +"Since this change breaks compatibility, the new behavior needs to be enabled " +"on a per-module basis in Python 3.7 using a :mod:`__future__` import::" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:174 +msgid "It will become the default in Python 4.0." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:178 +msgid ":pep:`563` -- Postponed evaluation of annotations" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:179 +msgid "PEP written and implemented by Łukasz Langa." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:185 +msgid "PEP 538: Legacy C Locale Coercion" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:187 +msgid "" +"An ongoing challenge within the Python 3 series has been determining a " +"sensible default strategy for handling the \"7-bit ASCII\" text encoding " +"assumption currently implied by the use of the default C or POSIX locale on " +"non-Windows platforms." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:192 +msgid "" +":pep:`538` updates the default interpreter command line interface to " +"automatically coerce that locale to an available UTF-8 based locale as " +"described in the documentation of the new :envvar:`PYTHONCOERCECLOCALE` " +"environment variable. Automatically setting ``LC_CTYPE`` this way means that " +"both the core interpreter and locale-aware C extensions (such as :mod:" +"`readline`) will assume the use of UTF-8 as the default text encoding, " +"rather than ASCII." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:200 +msgid "" +"The platform support definition in :pep:`11` has also been updated to limit " +"full text handling support to suitably configured non-ASCII based locales." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:203 +msgid "" +"As part of this change, the default error handler for :data:`~sys.stdin` " +"and :data:`~sys.stdout` is now ``surrogateescape`` (rather than ``strict``) " +"when using any of the defined coercion target locales (currently ``C." +"UTF-8``, ``C.utf8``, and ``UTF-8``). The default error handler for :data:" +"`~sys.stderr` continues to be ``backslashreplace``, regardless of locale." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:209 +msgid "" +"Locale coercion is silent by default, but to assist in debugging potentially " +"locale related integration problems, explicit warnings (emitted directly on :" +"data:`~sys.stderr`) can be requested by setting " +"``PYTHONCOERCECLOCALE=warn``. This setting will also cause the Python " +"runtime to emit a warning if the legacy C locale remains active when the " +"core interpreter is initialized." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:215 +msgid "" +"While :pep:`538`'s locale coercion has the benefit of also affecting " +"extension modules (such as GNU ``readline``), as well as child processes " +"(including those running non-Python applications and older versions of " +"Python), it has the downside of requiring that a suitable target locale be " +"present on the running system. To better handle the case where no suitable " +"target locale is available (as occurs on RHEL/CentOS 7, for example), Python " +"3.7 also implements :ref:`whatsnew37-pep540`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:225 +msgid ":pep:`538` -- Coercing the legacy C locale to a UTF-8 based locale" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:226 +msgid "PEP written and implemented by Nick Coghlan." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:232 +msgid "PEP 540: Forced UTF-8 Runtime Mode" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:234 +msgid "" +"The new :option:`-X` ``utf8`` command line option and :envvar:`PYTHONUTF8` " +"environment variable can be used to enable the CPython *UTF-8 mode*." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:237 +msgid "" +"When in UTF-8 mode, CPython ignores the locale settings, and uses the UTF-8 " +"encoding by default. The error handlers for :data:`sys.stdin` and :data:" +"`sys.stdout` streams are set to ``surrogateescape``." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:241 +msgid "" +"The forced UTF-8 mode can be used to change the text handling behavior in an " +"embedded Python interpreter without changing the locale settings of an " +"embedding application." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:245 +msgid "" +"While :pep:`540`'s UTF-8 mode has the benefit of working regardless of which " +"locales are available on the running system, it has the downside of having " +"no effect on extension modules (such as GNU ``readline``), child processes " +"running non-Python applications, and child processes running older versions " +"of Python. To reduce the risk of corrupting text data when communicating " +"with such components, Python 3.7 also implements :ref:`whatsnew37-pep540`)." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:252 +msgid "" +"The UTF-8 mode is enabled by default when the locale is ``C`` or ``POSIX``, " +"and the :pep:`538` locale coercion feature fails to change it to a UTF-8 " +"based alternative (whether that failure is due to ``PYTHONCOERCECLOCALE=0`` " +"being set, ``LC_ALL`` being set, or the lack of a suitable target locale)." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:259 +msgid ":pep:`540` -- Add a new UTF-8 mode" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:260 ../Doc/whatsnew/3.7.rst:362 +msgid "PEP written and implemented by Victor Stinner" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:266 +msgid "PEP 553: Built-in ``breakpoint()``" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:268 +msgid "" +"Python 3.7 includes the new built-in :func:`breakpoint` function as an easy " +"and consistent way to enter the Python debugger." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:271 +msgid "" +"Built-in ``breakpoint()`` calls :func:`sys.breakpointhook`. By default, the " +"latter imports :mod:`pdb` and then calls ``pdb.set_trace()``, but by binding " +"``sys.breakpointhook()`` to the function of your choosing, ``breakpoint()`` " +"can enter any debugger. Additionally, the environment variable :envvar:" +"`PYTHONBREAKPOINT` can be set to the callable of your debugger of choice. " +"Set ``PYTHONBREAKPOINT=0`` to completely disable built-in ``breakpoint()``." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:281 +msgid ":pep:`553` -- Built-in breakpoint()" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:282 +msgid "PEP written and implemented by Barry Warsaw" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:288 +msgid "PEP 539: New C API for Thread-Local Storage" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:290 +msgid "" +"While Python provides a C API for thread-local storage support; the " +"existing :ref:`Thread Local Storage (TLS) API ` " +"has used :c:type:`int` to represent TLS keys across all platforms. This has " +"not generally been a problem for officially-support platforms, but that is " +"neither POSIX-compliant, nor portable in any practical sense." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:296 +msgid "" +":pep:`539` changes this by providing a new :ref:`Thread Specific Storage " +"(TSS) API ` to CPython which supersedes use of " +"the existing TLS API within the CPython interpreter, while deprecating the " +"existing API. The TSS API uses a new type :c:type:`Py_tss_t` instead of :c:" +"type:`int` to represent TSS keys--an opaque type the definition of which may " +"depend on the underlying TLS implementation. Therefore, this will allow to " +"build CPython on platforms where the native TLS key is defined in a way that " +"cannot be safely cast to :c:type:`int`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:305 +msgid "" +"Note that on platforms where the native TLS key is defined in a way that " +"cannot be safely cast to :c:type:`int`, all functions of the existing TLS " +"API will be no-op and immediately return failure. This indicates clearly " +"that the old API is not supported on platforms where it cannot be used " +"reliably, and that no effort will be made to add such support." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:313 +msgid ":pep:`539` -- A New C-API for Thread-Local Storage in CPython" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:314 +msgid "PEP written by Erik M. Bray; implementation by Masayuki Yamamoto." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:320 +msgid "PEP 562: Customization of Access to Module Attributes" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:322 +msgid "" +"Python 3.7 allows defining :meth:`__getattr__` on modules and will call it " +"whenever a module attribute is otherwise not found. Defining :meth:" +"`__dir__` on modules is now also allowed." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:326 +msgid "" +"A typical example of where this may be useful is module attribute " +"deprecation and lazy loading." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:331 +msgid ":pep:`562` -- Module ``__getattr__`` and ``__dir__``" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:332 ../Doc/whatsnew/3.7.rst:421 +msgid "PEP written and implemented by Ivan Levkivskyi" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:338 +msgid "PEP 564: New Time Functions With Nanosecond Resolution" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:340 +msgid "" +"The resolution of clocks in modern systems can exceed the limited precision " +"of a floating point number returned by the :func:`time.time` function and " +"its variants. To avoid loss of precision, :pep:`564` adds six new " +"\"nanosecond\" variants of the existing timer functions to the :mod:`time` " +"module:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:346 ../Doc/whatsnew/3.7.rst:1429 +msgid ":func:`time.clock_gettime_ns`" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:347 ../Doc/whatsnew/3.7.rst:1430 +msgid ":func:`time.clock_settime_ns`" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:348 ../Doc/whatsnew/3.7.rst:1431 +msgid ":func:`time.monotonic_ns`" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:349 ../Doc/whatsnew/3.7.rst:1432 +msgid ":func:`time.perf_counter_ns`" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:350 ../Doc/whatsnew/3.7.rst:1433 +msgid ":func:`time.process_time_ns`" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:351 ../Doc/whatsnew/3.7.rst:1434 +msgid ":func:`time.time_ns`" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:353 +msgid "The new functions return the number of nanoseconds as an integer value." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:355 +msgid "" +"`Measurements `_ show that on Linux and Windows the resolution of :" +"func:`time.time_ns` is approximately 3 times better than that of :func:`time." +"time`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:361 +msgid ":pep:`564` -- Add new time functions with nanosecond resolution" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:368 +msgid "PEP 565: Show DeprecationWarning in ``__main__``" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:370 +msgid "" +"The default handling of :exc:`DeprecationWarning` has been changed such that " +"these warnings are once more shown by default, but only when the code " +"triggering them is running directly in the :mod:`__main__` module. As a " +"result, developers of single file scripts and those using Python " +"interactively should once again start seeing deprecation warnings for the " +"APIs they use, but deprecation warnings triggered by imported application, " +"library and framework modules will continue to be hidden by default." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:378 +msgid "" +"As a result of this change, the standard library now allows developers to " +"choose between three different deprecation warning behaviours:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:381 +msgid "" +":exc:`FutureWarning`: always displayed by default, recommended for warnings " +"intended to be seen by application end users (e.g. for deprecated " +"application configuration settings)." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:384 +msgid "" +":exc:`DeprecationWarning`: displayed by default only in :mod:`__main__` and " +"when running tests, recommended for warnings intended to be seen by other " +"Python developers where a version upgrade may result in changed behaviour or " +"an error." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:388 +msgid "" +":exc:`PendingDeprecationWarning`: displayed by default only when running " +"tests, intended for cases where a future version upgrade will change the " +"warning category to :exc:`DeprecationWarning` or :exc:`FutureWarning`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:392 +msgid "" +"Previously both :exc:`DeprecationWarning` and :exc:" +"`PendingDeprecationWarning` were only visible when running tests, which " +"meant that developers primarily writing single file scripts or using Python " +"interactively could be surprised by breaking changes in the APIs they used." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:399 +msgid ":pep:`565` -- Show DeprecationWarning in ``__main__``" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:400 +msgid "PEP written and implemented by Nick Coghlan" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:406 +msgid "PEP 560: Core Support for ``typing`` module and Generic Types" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:408 +msgid "" +"Initially :pep:`484` was designed in such way that it would not introduce " +"*any* changes to the core CPython interpreter. Now type hints and the :mod:" +"`typing` module are extensively used by the community, so this restriction " +"is removed. The PEP introduces two special methods :meth:`__class_getitem__` " +"and ``__mro_entries__``, these methods are now used by most classes and " +"special constructs in :mod:`typing`. As a result, the speed of various " +"operations with types increased up to 7 times, the generic types can be used " +"without metaclass conflicts, and several long standing bugs in :mod:`typing` " +"module are fixed." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:420 +msgid ":pep:`560` -- Core support for typing module and generic types" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:427 +msgid "PEP 552: Hash-based .pyc Files" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:429 +msgid "" +"Python has traditionally checked the up-to-dateness of bytecode cache files " +"(i.e., ``.pyc`` files) by comparing the source metadata (last-modified " +"timestamp and size) with source metadata saved in the cache file header when " +"it was generated. While effective, this invalidation method has its " +"drawbacks. When filesystem timestamps are too coarse, Python can miss " +"source updates, leading to user confusion. Additionally, having a timestamp " +"in the cache file is problematic for `build reproducibility `_ and content-based build systems." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:438 +msgid "" +":pep:`552` extends the pyc format to allow the hash of the source file to be " +"used for invalidation instead of the source timestamp. Such ``.pyc`` files " +"are called \"hash-based\". By default, Python still uses timestamp-based " +"invalidation and does not generate hash-based ``.pyc`` files at runtime. " +"Hash-based ``.pyc`` files may be generated with :mod:`py_compile` or :mod:" +"`compileall`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:444 +msgid "" +"Hash-based ``.pyc`` files come in two variants: checked and unchecked. " +"Python validates checked hash-based ``.pyc`` files against the corresponding " +"source files at runtime but doesn't do so for unchecked hash-based pycs. " +"Unchecked hash-based ``.pyc`` files are a useful performance optimization " +"for environments where a system external to Python (e.g., the build system) " +"is responsible for keeping ``.pyc`` files up-to-date." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:451 +msgid "See :ref:`pyc-invalidation` for more information." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:455 +msgid ":pep:`552` -- Deterministic pycs" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:456 +msgid "PEP written and implemented by Benjamin Peterson" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:462 +msgid "PEP 545: Python Documentation Translations" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:464 +msgid "" +":pep:`545` describes the process of creating and maintaining Python " +"documentation translations." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:467 +msgid "Three new translations have been added:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:469 +msgid "Japanese: https://docs.python.org/ja/" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:470 +msgid "French: https://docs.python.org/fr/" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:471 +msgid "Korean: https://docs.python.org/ko/" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:476 +msgid ":pep:`545` -- Python Documentation Translations" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:476 +msgid "" +"PEP written and implemented by Julien Palard, Inada Naoki, and Victor " +"Stinner." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:483 +msgid "Development Runtime Mode: -X dev" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:485 +msgid "" +"The new :option:`-X` ``dev`` command line option or the new :envvar:" +"`PYTHONDEVMODE` environment variable can be used to enable CPython's " +"*development mode*. When in development mode, CPython performs additional " +"runtime checks that are too expensive to be enabled by default. See :option:" +"`-X` ``dev`` documentation for the full description of the effects of this " +"mode." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:494 +msgid "Other Language Changes" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:496 +msgid "" +"More than 255 arguments can now be passed to a function, and a function can " +"now have more than 255 parameters. (Contributed by Serhiy Storchaka in :" +"issue:`12844` and :issue:`18896`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:500 +msgid "" +":meth:`bytes.fromhex` and :meth:`bytearray.fromhex` now ignore all ASCII " +"whitespace, not only spaces. (Contributed by Robert Xiao in :issue:`28927`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:503 +msgid "" +":class:`str`, :class:`bytes`, and :class:`bytearray` gained support for the " +"new :meth:`isascii() ` method, which can be used to test if a " +"string or bytes contain only the ASCII characters. (Contributed by INADA " +"Naoki in :issue:`32677`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:508 +msgid "" +":exc:`ImportError` now displays module name and module ``__file__`` path " +"when ``from ... import ...`` fails. (Contributed by Matthias Bussonnier in :" +"issue:`29546`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:512 +msgid "" +"Circular imports involving absolute imports with binding a submodule to a " +"name are now supported. (Contributed by Serhiy Storchaka in :issue:`30024`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:516 +msgid "" +"``object.__format__(x, '')`` is now equivalent to ``str(x)`` rather than " +"``format(str(self), '')``. (Contributed by Serhiy Storchaka in :issue:" +"`28974`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:520 +msgid "" +"In order to better support dynamic creation of stack traces, :class:`types." +"TracebackType` can now be instantiated from Python code, and the ``tb_next`` " +"attribute on :ref:`tracebacks ` is now writable. " +"(Contributed by Nathaniel J. Smith in :issue:`30579`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:526 +msgid "" +"When using the :option:`-m` switch, ``sys.path[0]`` is now eagerly expanded " +"to the full starting directory path, rather than being left as the empty " +"directory (which allows imports from the *current* working directory at the " +"time when an import occurs) (Contributed by Nick Coghlan in :issue:`33053`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:532 +msgid "" +"The new :option:`-X` ``importtime`` option or the :envvar:" +"`PYTHONPROFILEIMPORTTIME` environment variable can be used to show the " +"timing of each module import. (Contributed by Victor Stinner in :issue:" +"`31415`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:539 +msgid "New Modules" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:544 +msgid "contextvars" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:546 +msgid "" +"The new :mod:`contextvars` module and a set of :ref:`new C APIs " +"` introduce support for *context variables*. Context " +"variables are conceptually similar to thread-local variables. Unlike TLS, " +"context variables support asynchronous code correctly." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:552 +msgid "" +"The :mod:`asyncio` and :mod:`decimal` modules have been updated to use and " +"support context variables out of the box. Particularly the active decimal " +"context is now stored in a context variable, which allows decimal operations " +"to work with the correct context in asynchronous code." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:559 +msgid ":pep:`567` -- Context Variables" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:560 +msgid "PEP written and implemented by Yury Selivanov" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:566 +msgid "dataclasses" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:568 +msgid "" +"The new :func:`~dataclasses.dataclass` decorator provides a way to declare " +"*data classes*. A data class describes its attributes using class variable " +"annotations. Its constructor and other magic methods, such as :meth:" +"`~object.__repr__`, :meth:`~object.__eq__`, and :meth:`~object.__hash__` are " +"generated automatically." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:574 +msgid "Example::" +msgstr "Exemple ::" + +#: ../Doc/whatsnew/3.7.rst:587 +msgid ":pep:`557` -- Data Classes" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:588 +msgid "PEP written and implemented by Eric V. Smith" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:594 +msgid "importlib.resources" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:596 +msgid "" +"The new :mod:`importlib.resources` module provides several new APIs and one " +"new ABC for access to, opening, and reading *resources* inside packages. " +"Resources are roughly similar to files inside packages, but they needn't be " +"actual files on the physical file system. Module loaders can provide a :" +"meth:`get_resource_reader()` function which returns a :class:`importlib.abc." +"ResourceReader` instance to support this new API. Built-in file path " +"loaders and zip file loaders both support this." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:604 +msgid "Contributed by Barry Warsaw and Brett Cannon in :issue:`32248`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:608 +msgid "" +"`importlib_resources `_ -- a PyPI backport for earlier Python versions." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:613 +msgid "Improved Modules" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:617 +msgid "argparse" +msgstr "argparse" + +#: ../Doc/whatsnew/3.7.rst:619 +msgid "" +"The new :meth:`ArgumentParser.parse_intermixed_args() ` method allows intermixing options and " +"positional arguments. (Contributed by paul.j3 in :issue:`14191`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:628 ../Doc/whatsnew/3.7.rst:1942 +msgid "asyncio" +msgstr "asyncio" + +#: ../Doc/whatsnew/3.7.rst:630 +msgid "" +"The :mod:`asyncio` module has received many new features, usability and :ref:" +"`performance improvements `. Notable changes " +"include:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:634 +msgid "" +"The new :term:`provisional ` :func:`asyncio.run` function " +"can be used to run a coroutine from synchronous code by automatically " +"creating and destroying the event loop. (Contributed by Yury Selivanov in :" +"issue:`32314`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:639 +msgid "" +"asyncio gained support for :mod:`contextvars`. :meth:`loop.call_soon() " +"`, :meth:`loop.call_soon_threadsafe() `, :meth:`loop.call_later() `, :meth:`loop.call_at() `, and :meth:" +"`Future.add_done_callback() ` have a new " +"optional keyword-only *context* parameter. :class:`Tasks ` now " +"track their context automatically. See :pep:`567` for more details. " +"(Contributed by Yury Selivanov in :issue:`32436`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:650 +msgid "" +"The new :func:`asyncio.create_task` function has been added as a shortcut to " +"``asyncio.get_event_loop().create_task()``. (Contributed by Andrew Svetlov " +"in :issue:`32311`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:654 +msgid "" +"The new :meth:`loop.start_tls() ` method can be used " +"to upgrade an existing connection to TLS. (Contributed by Yury Selivanov in :" +"issue:`23749`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:658 +msgid "" +"The new :meth:`loop.sock_recv_into() ` method " +"allows reading data from a socket directly into a provided buffer making it " +"possible to reduce data copies. (Contributed by Antoine Pitrou in :issue:" +"`31819`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:663 +msgid "" +"The new :func:`asyncio.current_task` function returns the currently running :" +"class:`~asyncio.Task` instance, and the new :func:`asyncio.all_tasks` " +"function returns a set of all existing ``Task`` instances in a given loop. " +"The :meth:`Task.current_task() ` and :meth:`Task." +"all_tasks() ` methods have been deprecated. " +"(Contributed by Andrew Svetlov in :issue:`32250`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:670 +msgid "" +"The new *provisional* :class:`~asyncio.BufferedProtocol` class allows " +"implementing streaming protocols with manual control over the receive " +"buffer. (Contributed by Yury Selivanov in :issue:`32251`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:674 +msgid "" +"The new :func:`asyncio.get_running_loop` function returns the currently " +"running loop, and raises a :exc:`RuntimeError` if no loop is running. This " +"is in contrast with :func:`asyncio.get_event_loop`, which will *create* a " +"new event loop if none is running. (Contributed by Yury Selivanov in :issue:" +"`32269`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:680 +msgid "" +"The new :meth:`StreamWriter.wait_closed() ` coroutine method allows waiting until the stream writer is " +"closed. The new :meth:`StreamWriter.is_closing() ` method can be used to determine if the writer is closing. " +"(Contributed by Andrew Svetlov in :issue:`32391`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:686 +msgid "" +"The new :meth:`loop.sock_sendfile() ` coroutine " +"method allows sending files using :mod:`os.sendfile` when possible. " +"(Contributed by Andrew Svetlov in :issue:`32410`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:690 +msgid "" +"The new :meth:`Future.get_loop() ` and ``Task." +"get_loop()`` methods return the instance of the loop on which a task or a " +"future were created. :meth:`Server.get_loop() ` " +"allows doing the same for :class:`asyncio.Server` objects. (Contributed by " +"Yury Selivanov in :issue:`32415` and Srinivas Reddy Thatiparthy in :issue:" +"`32418`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:698 +msgid "" +"It is now possible to control how instances of :class:`asyncio.Server` begin " +"serving. Previously, the server would start serving immediately when " +"created. The new *start_serving* keyword argument to :meth:`loop." +"create_server() ` and :meth:`loop." +"create_unix_server() `, as well as :meth:" +"`Server.start_serving() `, and :meth:`Server." +"serve_forever() ` can be used to decouple " +"server instantiation and serving. The new :meth:`Server.is_serving() " +"` method returns ``True`` if the server is " +"serving. :class:`~asyncio.Server` objects are now asynchronous context " +"managers::" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:717 +msgid "(Contributed by Yury Selivanov in :issue:`32662`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:719 +msgid "" +"Callback objects returned by :func:`loop.call_later() ` gained the new :meth:`when() ` method " +"which returns an absolute scheduled callback timestamp. (Contributed by " +"Andrew Svetlov in :issue:`32741`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:725 +msgid "" +"The :meth:`loop.create_datagram_endpoint() \\ ` method gained support for Unix sockets. " +"(Contributed by Quentin Dawans in :issue:`31245`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:730 +msgid "" +"The :func:`asyncio.open_connection`, :func:`asyncio.start_server` " +"functions, :meth:`loop.create_connection() `, :meth:`loop.create_server() `, :meth:`loop.create_accepted_socket() ` methods and their corresponding UNIX socket " +"variants now accept the *ssl_handshake_timeout* keyword argument. " +"(Contributed by Neil Aspinall in :issue:`29970`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:738 +msgid "" +"The new :meth:`Handle.cancelled() ` method returns " +"``True`` if the callback was cancelled. (Contributed by Marat Sharafutdinov " +"in :issue:`31943`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:742 +msgid "" +"The asyncio source has been converted to use the :keyword:`async`/:keyword:" +"`await` syntax. (Contributed by Andrew Svetlov in :issue:`32193`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:746 +msgid "" +"The new :meth:`ReadTransport.is_reading() ` method can be used to determine the reading state of the " +"transport. Additionally, calls to :meth:`ReadTransport.resume_reading() " +"` and :meth:`ReadTransport." +"pause_reading() ` are now idempotent. " +"(Contributed by Yury Selivanov in :issue:`32356`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:754 +msgid "" +"Loop methods which accept socket paths now support passing :term:`path-like " +"objects `. (Contributed by Yury Selivanov in :issue:" +"`32066`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:758 +msgid "" +"In :mod:`asyncio` TCP sockets on Linux are now created with ``TCP_NODELAY`` " +"flag set by default. (Contributed by Yury Selivanov and Victor Stinner in :" +"issue:`27456`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:762 +msgid "" +"Exceptions occurring in cancelled tasks are no longer logged. (Contributed " +"by Yury Selivanov in :issue:`30508`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:765 +msgid "" +"New ``WindowsSelectorEventLoopPolicy`` and " +"``WindowsProactorEventLoopPolicy`` classes. (Contributed by Yury Selivanov " +"in :issue:`33792`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:769 +msgid "" +"Several ``asyncio`` APIs have been :ref:`deprecated `." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:774 +msgid "binascii" +msgstr "binascii" + +#: ../Doc/whatsnew/3.7.rst:776 +msgid "" +"The :func:`~binascii.b2a_uu` function now accepts an optional *backtick* " +"keyword argument. When it's true, zeros are represented by ``'`'`` instead " +"of spaces. (Contributed by Xiang Zhang in :issue:`30103`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:782 +msgid "calendar" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:784 +msgid "" +"The :class:`~calendar.HTMLCalendar` class has new class attributes which " +"ease the customization of CSS classes in the produced HTML calendar. " +"(Contributed by Oz Tiram in :issue:`30095`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:790 ../Doc/whatsnew/3.7.rst:1956 +msgid "collections" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:792 +msgid "" +"``collections.namedtuple()`` now supports default values. (Contributed by " +"Raymond Hettinger in :issue:`32320`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:797 +msgid "compileall" +msgstr "compileall" + +#: ../Doc/whatsnew/3.7.rst:799 +msgid "" +":func:`compileall.compile_dir` learned the new *invalidation_mode* " +"parameter, which can be used to enable :ref:`hash-based .pyc invalidation " +"`. The invalidation mode can also be specified on the " +"command line using the new ``--invalidation-mode`` argument. (Contributed by " +"Benjamin Peterson in :issue:`31650`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:808 +msgid "concurrent.futures" +msgstr "concurrent.futures" + +#: ../Doc/whatsnew/3.7.rst:810 +msgid "" +":class:`ProcessPoolExecutor ` and :" +"class:`ThreadPoolExecutor ` now " +"support the new *initializer* and *initargs* constructor arguments. " +"(Contributed by Antoine Pitrou in :issue:`21423`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:815 +msgid "" +"The :class:`ProcessPoolExecutor ` " +"can now take the multiprocessing context via the new *mp_context* argument. " +"(Contributed by Thomas Moreau in :issue:`31540`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:821 +msgid "contextlib" +msgstr "contextlib" + +#: ../Doc/whatsnew/3.7.rst:823 +msgid "" +"The new :func:`~contextlib.nullcontext` is a simpler and faster no-op " +"context manager than :class:`~contextlib.ExitStack`. (Contributed by Jesse-" +"Bakker in :issue:`10049`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:827 +msgid "" +"The new :func:`~contextlib.asynccontextmanager`, :class:`~contextlib." +"AbstractAsyncContextManager`, and :class:`~contextlib.AsyncExitStack` have " +"been added to complement their synchronous counterparts. (Contributed by " +"Jelle Zijlstra in :issue:`29679` and :issue:`30241`, and by Alexander Mohr " +"and Ilya Kulakov in :issue:`29302`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:836 +msgid "cProfile" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:838 +msgid "" +"The :mod:`cProfile` command line now accepts ``-m module_name`` as an " +"alternative to script path. (Contributed by Sanyam Khurana in :issue:" +"`21862`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:843 +msgid "crypt" +msgstr "crypt" + +#: ../Doc/whatsnew/3.7.rst:845 +msgid "" +"The :mod:`crypt` module now supports the Blowfish hashing method. " +"(Contributed by Serhiy Storchaka in :issue:`31664`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:848 +msgid "" +"The :func:`~crypt.mksalt` function now allows specifying the number of " +"rounds for hashing. (Contributed by Serhiy Storchaka in :issue:`31702`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:853 +msgid "datetime" +msgstr "datetime" + +#: ../Doc/whatsnew/3.7.rst:855 +msgid "" +"The new :meth:`datetime.fromisoformat() ` " +"method constructs a :class:`~datetime.datetime` object from a string in one " +"of the formats output by :meth:`datetime.isoformat() `. (Contributed by Paul Ganssle in :issue:`15873`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:861 +msgid "" +"The :class:`tzinfo ` class now supports sub-minute offsets. " +"(Contributed by Alexander Belopolsky in :issue:`5288`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:866 ../Doc/whatsnew/3.7.rst:1966 +msgid "dbm" +msgstr "dbm" + +#: ../Doc/whatsnew/3.7.rst:868 +msgid "" +":mod:`dbm.dumb` now supports reading read-only files and no longer writes " +"the index file when it is not changed." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:873 +msgid "decimal" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:875 +msgid "" +"The :mod:`decimal` module now uses :ref:`context variables ` to store the decimal context. (Contributed by Yury Selivanov in :" +"issue:`32630`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:881 +msgid "dis" +msgstr "dis" + +#: ../Doc/whatsnew/3.7.rst:883 +msgid "" +"The :func:`~dis.dis` function is now able to disassemble nested code objects " +"(the code of comprehensions, generator expressions and nested functions, and " +"the code used for building nested classes). The maximum depth of " +"disassembly recursion is controlled by the new *depth* parameter. " +"(Contributed by Serhiy Storchaka in :issue:`11822`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:892 +msgid "distutils" +msgstr "distutils" + +#: ../Doc/whatsnew/3.7.rst:894 +msgid "" +"``README.rst`` is now included in the list of distutils standard READMEs and " +"therefore included in source distributions. (Contributed by Ryan Gonzalez " +"in :issue:`11913`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:900 ../Doc/whatsnew/3.7.rst:1976 +msgid "enum" +msgstr "enum" + +#: ../Doc/whatsnew/3.7.rst:902 +msgid "" +"The :class:`Enum ` learned the new ``_ignore_`` class property, " +"which allows listing the names of properties which should not become enum " +"members. (Contributed by Ethan Furman in :issue:`31801`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:907 +msgid "" +"In Python 3.8, attempting to check for non-Enum objects in :class:`Enum` " +"classes will raise a :exc:`TypeError` (e.g. ``1 in Color``); similarly, " +"attempting to check for non-Flag objects in a :class:`Flag` member will " +"raise :exc:`TypeError` (e.g. ``1 in Perm.RW``); currently, both operations " +"return :const:`False` instead and are deprecated. (Contributed by Ethan " +"Furman in :issue:`33217`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:916 +msgid "functools" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:918 +msgid "" +":func:`functools.singledispatch` now supports registering implementations " +"using type annotations. (Contributed by Łukasz Langa in :issue:`32227`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:924 +msgid "gc" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:926 +msgid "" +"The new :func:`gc.freeze` function allows freezing all objects tracked by " +"the garbage collector and excluding them from future collections. This can " +"be used before a POSIX ``fork()`` call to make the GC copy-on-write friendly " +"or to speed up collection. The new :func:`gc.unfreeze` functions reverses " +"this operation. Additionally, :func:`gc.get_freeze_count` can be used to " +"obtain the number of frozen objects. (Contributed by Li Zekun in :issue:" +"`31558`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:936 +msgid "hmac" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:938 +msgid "" +"The :mod:`hmac` module now has an optimized one-shot :func:`~hmac.digest` " +"function, which is up to three times faster than :func:`~hmac.HMAC`. " +"(Contributed by Christian Heimes in :issue:`32433`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:944 +msgid "http.client" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:946 +msgid "" +":class:`~http.client.HTTPConnection` and :class:`~http.client." +"HTTPSConnection` now support the new *blocksize* argument for improved " +"upload throughput. (Contributed by Nir Soffer in :issue:`31945`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:952 +msgid "http.server" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:954 +msgid "" +":class:`~http.server.SimpleHTTPRequestHandler` now supports the HTTP ``If-" +"Modified-Since`` header. The server returns the 304 response status if the " +"target file was not modified after the time specified in the header. " +"(Contributed by Pierre Quentel in :issue:`29654`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:959 +msgid "" +":class:`~http.server.SimpleHTTPRequestHandler` accepts the new *directory* " +"argument, in addition to the new ``--directory`` command line argument. With " +"this parameter, the server serves the specified directory, by default it " +"uses the current working directory. (Contributed by Stéphane Wirtel and " +"Julien Palard in :issue:`28707`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:965 +msgid "" +"The new :class:`ThreadingHTTPServer ` class " +"uses threads to handle requests using :class:`~socketserver.ThreadingMixin`. " +"It is used when ``http.server`` is run with ``-m``. (Contributed by Julien " +"Palard in :issue:`31639`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:972 +msgid "idlelib and IDLE" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:974 +msgid "" +"Multiple fixes for autocompletion. (Contributed by Louie Lu in :issue:" +"`15786`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:976 +msgid "" +"Module Browser (on the File menu, formerly called Class Browser), now " +"displays nested functions and classes in addition to top-level functions and " +"classes. (Contributed by Guilherme Polo, Cheryl Sabella, and Terry Jan Reedy " +"in :issue:`1612262`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:982 +msgid "" +"The Settings dialog (Options, Configure IDLE) has been partly rewritten to " +"improve both appearance and function. (Contributed by Cheryl Sabella and " +"Terry Jan Reedy in multiple issues.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:986 +msgid "" +"The font sample now includes a selection of non-Latin characters so that " +"users can better see the effect of selecting a particular font. (Contributed " +"by Terry Jan Reedy in :issue:`13802`.) The sample can be edited to include " +"other characters. (Contributed by Serhiy Storchaka in :issue:`31860`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:992 +msgid "" +"The IDLE features formerly implemented as extensions have been reimplemented " +"as normal features. Their settings have been moved from the Extensions tab " +"to other dialog tabs. (Contributed by Charles Wohlganger and Terry Jan Reedy " +"in :issue:`27099`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:997 +msgid "" +"Editor code context option revised. Box displays all context lines up to " +"maxlines. Clicking on a context line jumps the editor to that line. " +"Context colors for custom themes is added to Highlights tab of Settings " +"dialog. (Contributed by Cheryl Sabella and Terry Jan Reedy in :issue:" +"`33642`, :issue:`33768`, and :issue:`33679`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1003 +msgid "" +"On Windows, a new API call tells Windows that tk scales for DPI. On Windows " +"8.1+ or 10, with DPI compatibility properties of the Python binary " +"unchanged, and a monitor resolution greater than 96 DPI, this should make " +"text and lines sharper. It should otherwise have no effect. (Contributed by " +"Terry Jan Reedy in :issue:`33656`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1009 +msgid "New in 3.7.1:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1011 +msgid "" +"Output over N lines (50 by default) is squeezed down to a button. N can be " +"changed in the PyShell section of the General page of the Settings dialog. " +"Fewer, but possibly extra long, lines can be squeezed by right clicking on " +"the output. Squeezed output can be expanded in place by double-clicking the " +"button or into the clipboard or a separate window by right-clicking the " +"button. (Contributed by Tal Einat in :issue:`1529353`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1018 +msgid "The changes above have been backported to 3.6 maintenance releases." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1022 ../Doc/whatsnew/3.7.rst:1995 +msgid "importlib" +msgstr "importlib" + +#: ../Doc/whatsnew/3.7.rst:1024 +msgid "" +"The :class:`importlib.abc.ResourceReader` ABC was introduced to support the " +"loading of resources from packages. See also :ref:" +"`whatsnew37_importlib_resources`. (Contributed by Barry Warsaw, Brett Cannon " +"in :issue:`32248`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1029 +msgid "" +":func:`importlib.reload` now raises :exc:`ModuleNotFoundError` if the module " +"lacks a spec. (Contributed by Garvit Khatri in :issue:`29851`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1033 +msgid "" +":func:`importlib.find_spec` now raises :exc:`ModuleNotFoundError` instead " +"of :exc:`AttributeError` if the specified parent module is not a package (i." +"e. lacks a ``__path__`` attribute). (Contributed by Milan Oberkirch in :" +"issue:`30436`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1038 +msgid "" +"The new :func:`importlib.source_hash` can be used to compute the hash of the " +"passed source. A :ref:`hash-based .pyc file ` embeds the " +"value returned by this function." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1044 +msgid "io" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1046 +msgid "" +"The new :meth:`TextIOWrapper.reconfigure() ` " +"method can be used to reconfigure the text stream with the new settings. " +"(Contributed by Antoine Pitrou in :issue:`30526` and INADA Naoki in :issue:" +"`15216`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1053 +msgid "ipaddress" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1055 +msgid "" +"The new ``subnet_of()`` and ``supernet_of()`` methods of :class:`ipaddress." +"IPv6Network` and :class:`ipaddress.IPv4Network` can be used for network " +"containment tests. (Contributed by Michel Albert and Cheryl Sabella in :" +"issue:`20825`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1062 +msgid "itertools" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1064 +msgid "" +":func:`itertools.islice` now accepts :meth:`integer-like objects ` as start, stop, and slice arguments. (Contributed by Will " +"Roberts in :issue:`30537`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1071 ../Doc/whatsnew/3.7.rst:2013 +msgid "locale" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1073 +msgid "" +"The new *monetary* argument to :func:`locale.format_string` can be used to " +"make the conversion use monetary thousands separators and grouping strings. " +"(Contributed by Garvit in :issue:`10379`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1077 +msgid "" +"The :func:`locale.getpreferredencoding` function now always returns " +"``'UTF-8'`` on Android or when in the :ref:`forced UTF-8 mode `." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1082 +msgid "logging" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1084 +msgid "" +":class:`~logging.Logger` instances can now be pickled. (Contributed by Vinay " +"Sajip in :issue:`30520`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1087 +msgid "" +"The new :meth:`StreamHandler.setStream() ` " +"method can be used to replace the logger stream after handler creation. " +"(Contributed by Vinay Sajip in :issue:`30522`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1091 +msgid "" +"It is now possible to specify keyword arguments to handler constructors in " +"configuration passed to :func:`logging.config.fileConfig`. (Contributed by " +"Preston Landers in :issue:`31080`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1097 +msgid "math" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1099 +msgid "" +"The new :func:`math.remainder` function implements the IEEE 754-style " +"remainder operation. (Contributed by Mark Dickinson in :issue:`29962`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1104 +msgid "mimetypes" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1106 +msgid "" +"The MIME type of .bmp has been changed from ``'image/x-ms-bmp'`` to ``'image/" +"bmp'``. (Contributed by Nitish Chandra in :issue:`22589`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1112 +msgid "msilib" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1114 +msgid "" +"The new :meth:`Database.Close() ` method can be used " +"to close the :abbr:`MSI` database. (Contributed by Berker Peksag in :issue:" +"`20486`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1120 +msgid "multiprocessing" +msgstr "multiprocessing" + +#: ../Doc/whatsnew/3.7.rst:1122 +msgid "" +"The new :meth:`Process.close() ` method " +"explicitly closes the process object and releases all resources associated " +"with it. :exc:`ValueError` is raised if the underlying process is still " +"running. (Contributed by Antoine Pitrou in :issue:`30596`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1128 +msgid "" +"The new :meth:`Process.kill() ` method can be " +"used to terminate the process using the :data:`SIGKILL` signal on Unix. " +"(Contributed by Vitor Pereira in :issue:`30794`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1132 +msgid "" +"Non-daemonic threads created by :class:`~multiprocessing.Process` are now " +"joined on process exit. (Contributed by Antoine Pitrou in :issue:`18966`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1138 +msgid "os" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1140 +msgid "" +":func:`os.fwalk` now accepts the *path* argument as :class:`bytes`. " +"(Contributed by Serhiy Storchaka in :issue:`28682`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1143 +msgid "" +":func:`os.scandir` gained support for :ref:`file descriptors `. " +"(Contributed by Serhiy Storchaka in :issue:`25996`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1146 +msgid "" +"The new :func:`~os.register_at_fork` function allows registering Python " +"callbacks to be executed at process fork. (Contributed by Antoine Pitrou in :" +"issue:`16500`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1150 +msgid "" +"Added :func:`os.preadv` (combine the functionality of :func:`os.readv` and :" +"func:`os.pread`) and :func:`os.pwritev` functions (combine the functionality " +"of :func:`os.writev` and :func:`os.pwrite`). (Contributed by Pablo Galindo " +"in :issue:`31368`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1155 +msgid "" +"The mode argument of :func:`os.makedirs` no longer affects the file " +"permission bits of newly-created intermediate-level directories. " +"(Contributed by Serhiy Storchaka in :issue:`19930`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1159 +msgid "" +":func:`os.dup2` now returns the new file descriptor. Previously, ``None`` " +"was always returned. (Contributed by Benjamin Peterson in :issue:`32441`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1163 +msgid "" +"The structure returned by :func:`os.stat` now contains the :attr:`~os." +"stat_result.st_fstype` attribute on Solaris and its derivatives. " +"(Contributed by Jesús Cea Avión in :issue:`32659`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1169 +msgid "pathlib" +msgstr "pathlib" + +#: ../Doc/whatsnew/3.7.rst:1171 +msgid "" +"The new :meth:`Path.is_mount() ` method is now " +"available on POSIX systems and can be used to determine whether a path is a " +"mount point. (Contributed by Cooper Ry Lees in :issue:`30897`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1177 +msgid "pdb" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1179 +msgid "" +":func:`pdb.set_trace` now takes an optional *header* keyword-only argument. " +"If given, it is printed to the console just before debugging begins. " +"(Contributed by Barry Warsaw in :issue:`31389`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1183 +msgid "" +":mod:`pdb` command line now accepts ``-m module_name`` as an alternative to " +"script file. (Contributed by Mario Corchero in :issue:`32206`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1188 +msgid "py_compile" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1190 +msgid "" +":func:`py_compile.compile` -- and by extension, :mod:`compileall` -- now " +"respects the :envvar:`SOURCE_DATE_EPOCH` environment variable by " +"unconditionally creating ``.pyc`` files for hash-based validation. This " +"allows for guaranteeing `reproducible builds `_ of ``.pyc`` files when they are created eagerly. (Contributed by " +"Bernhard M. Wiedemann in :issue:`29708`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1200 +msgid "pydoc" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1202 +msgid "" +"The pydoc server can now bind to an arbitrary hostname specified by the new " +"``-n`` command-line argument. (Contributed by Feanil Patel in :issue:" +"`31128`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1208 +msgid "queue" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1210 +msgid "" +"The new :class:`~queue.SimpleQueue` class is an unbounded :abbr:`FIFO` " +"queue. (Contributed by Antoine Pitrou in :issue:`14976`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1215 +msgid "re" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1217 +msgid "" +"The flags :const:`re.ASCII`, :const:`re.LOCALE` and :const:`re.UNICODE` can " +"be set within the scope of a group. (Contributed by Serhiy Storchaka in :" +"issue:`31690`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1221 +msgid "" +":func:`re.split` now supports splitting on a pattern like ``r'\\b'``, ``'^" +"$'`` or ``(?=-)`` that matches an empty string. (Contributed by Serhiy " +"Storchaka in :issue:`25054`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1225 +msgid "" +"Regular expressions compiled with the :const:`re.LOCALE` flag no longer " +"depend on the locale at compile time. Locale settings are applied only when " +"the compiled regular expression is used. (Contributed by Serhiy Storchaka " +"in :issue:`30215`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1230 +msgid "" +":exc:`FutureWarning` is now emitted if a regular expression contains " +"character set constructs that will change semantically in the future, such " +"as nested sets and set operations. (Contributed by Serhiy Storchaka in :" +"issue:`30349`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1235 +msgid "" +"Compiled regular expression and match objects can now be copied using :func:" +"`copy.copy` and :func:`copy.deepcopy`. (Contributed by Serhiy Storchaka in :" +"issue:`10076`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1241 +msgid "signal" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1243 +msgid "" +"The new *warn_on_full_buffer* argument to the :func:`signal.set_wakeup_fd` " +"function makes it possible to specify whether Python prints a warning on " +"stderr when the wakeup buffer overflows. (Contributed by Nathaniel J. Smith " +"in :issue:`30050`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1250 ../Doc/whatsnew/3.7.rst:2036 +msgid "socket" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1252 +msgid "" +"The new :func:`socket.getblocking() ` method " +"returns ``True`` if the socket is in blocking mode and ``False`` otherwise. " +"(Contributed by Yury Selivanov in :issue:`32373`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1256 +msgid "" +"The new :func:`socket.close` function closes the passed socket file " +"descriptor. This function should be used instead of :func:`os.close` for " +"better compatibility across platforms. (Contributed by Christian Heimes in :" +"issue:`32454`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1261 +msgid "" +"The :mod:`socket` module now exposes the :data:`socket.TCP_CONGESTION` " +"(Linux 2.6.13), :data:`socket.TCP_USER_TIMEOUT` (Linux 2.6.37), and :data:" +"`socket.TCP_NOTSENT_LOWAT` (Linux 3.12) constants. (Contributed by Omar " +"Sandoval in :issue:`26273` and Nathaniel J. Smith in :issue:`29728`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1267 +msgid "" +"Support for :data:`socket.AF_VSOCK` sockets has been added to allow " +"communication between virtual machines and their hosts. (Contributed by " +"Cathy Avery in :issue:`27584`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1271 +msgid "" +"Sockets now auto-detect family, type and protocol from file descriptor by " +"default. (Contributed by Christian Heimes in :issue:`28134`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1277 +msgid "socketserver" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1279 +msgid "" +":meth:`socketserver.ThreadingMixIn.server_close` now waits until all non-" +"daemon threads complete. :meth:`socketserver.ForkingMixIn.server_close` now " +"waits until all child processes complete." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1283 +msgid "" +"Add a new :attr:`socketserver.ForkingMixIn.block_on_close` class attribute " +"to :class:`socketserver.ForkingMixIn` and :class:`socketserver." +"ThreadingMixIn` classes. Set the class attribute to ``False`` to get the " +"pre-3.7 behaviour." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1289 +msgid "sqlite3" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1291 +msgid "" +":class:`sqlite3.Connection` now exposes the :meth:`~sqlite3.Connection." +"backup` method when the underlying SQLite library is at version 3.6.11 or " +"higher. (Contributed by Lele Gaifax in :issue:`27645`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1295 +msgid "" +"The *database* argument of :func:`sqlite3.connect` now accepts any :term:" +"`path-like object`, instead of just a string. (Contributed by Anders " +"Lorentsen in :issue:`31843`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1301 ../Doc/whatsnew/3.7.rst:2045 +msgid "ssl" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1303 +msgid "" +"The :mod:`ssl` module now uses OpenSSL's builtin API instead of :func:`~ssl." +"match_hostname` to check a host name or an IP address. Values are validated " +"during TLS handshake. Any certificate validation error including failing " +"the host name check now raises :exc:`~ssl.SSLCertVerificationError` and " +"aborts the handshake with a proper TLS Alert message. The new exception " +"contains additional information. Host name validation can be customized " +"with :attr:`SSLContext.hostname_checks_common_name `. (Contributed by Christian Heimes in :issue:" +"`31399`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1314 +msgid "" +"The improved host name check requires a *libssl* implementation compatible " +"with OpenSSL 1.0.2 or 1.1. Consequently, OpenSSL 0.9.8 and 1.0.1 are no " +"longer supported (see :ref:`37-platform-support-removals` for more details). " +"The ssl module is mostly compatible with LibreSSL 2.7.2 and newer." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1319 +msgid "" +"The ``ssl`` module no longer sends IP addresses in SNI TLS extension. " +"(Contributed by Christian Heimes in :issue:`32185`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1322 +msgid "" +":func:`~ssl.match_hostname` no longer supports partial wildcards like ``www*." +"example.org``. (Contributed by Mandeep Singh in :issue:`23033` and Christian " +"Heimes in :issue:`31399`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1327 +msgid "" +"The default cipher suite selection of the ``ssl`` module now uses a " +"blacklist approach rather than a hard-coded whitelist. Python no longer re-" +"enables ciphers that have been blocked by OpenSSL security updates. Default " +"cipher suite selection can be configured at compile time. (Contributed by " +"Christian Heimes in :issue:`31429`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1333 +msgid "" +"Validation of server certificates containing internationalized domain names " +"(IDNs) is now supported. As part of this change, the :attr:`SSLSocket." +"server_hostname ` attribute now stores the " +"expected hostname in A-label form (``\"xn--pythn-mua.org\"``), rather than " +"the U-label form (``\"pythön.org\"``). (Contributed by Nathaniel J. Smith " +"and Christian Heimes in :issue:`28414`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1340 +msgid "" +"The ``ssl`` module has preliminary and experimental support for TLS 1.3 and " +"OpenSSL 1.1.1. At the time of Python 3.7.0 release, OpenSSL 1.1.1 is still " +"under development and TLS 1.3 hasn't been finalized yet. The TLS 1.3 " +"handshake and protocol behaves slightly differently than TLS 1.2 and " +"earlier, see :ref:`ssl-tlsv1_3`. (Contributed by Christian Heimes in :issue:" +"`32947`, :issue:`20995`, :issue:`29136`, :issue:`30622` and :issue:`33618`)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1348 +msgid "" +":class:`~ssl.SSLSocket` and :class:`~ssl.SSLObject` no longer have a public " +"constructor. Direct instantiation was never a documented and supported " +"feature. Instances must be created with :class:`~ssl.SSLContext` methods :" +"meth:`~ssl.SSLContext.wrap_socket` and :meth:`~ssl.SSLContext.wrap_bio`. " +"(Contributed by Christian Heimes in :issue:`32951`)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1354 +msgid "" +"OpenSSL 1.1 APIs for setting the minimum and maximum TLS protocol version " +"are available as :attr:`SSLContext.minimum_version ` and :attr:`SSLContext.maximum_version `. Supported protocols are indicated by several new flags, " +"such as :data:`~ssl.HAS_TLSv1_1`. (Contributed by Christian Heimes in :issue:" +"`32609`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1361 +msgid "" +"Added :attr:`SSLContext.post_handshake_auth` to enable and :meth:`ssl." +"SSLSocket.verify_client_post_handshake` to initiate TLS 1.3 post-handshake " +"authentication. (Contributed by Christian Heimes in :issue:`34670`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1367 +msgid "string" +msgstr "*string*" + +#: ../Doc/whatsnew/3.7.rst:1369 +msgid "" +":class:`string.Template` now lets you to optionally modify the regular " +"expression pattern for braced placeholders and non-braced placeholders " +"separately. (Contributed by Barry Warsaw in :issue:`1198569`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1375 +msgid "subprocess" +msgstr "subprocess" + +#: ../Doc/whatsnew/3.7.rst:1377 +msgid "" +"The :func:`subprocess.run` function accepts the new *capture_output* keyword " +"argument. When true, stdout and stderr will be captured. This is equivalent " +"to passing :data:`subprocess.PIPE` as *stdout* and *stderr* arguments. " +"(Contributed by Bo Bayles in :issue:`32102`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1383 +msgid "" +"The ``subprocess.run`` function and the :class:`subprocess.Popen` " +"constructor now accept the *text* keyword argument as an alias to " +"*universal_newlines*. (Contributed by Andrew Clegg in :issue:`31756`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1388 +msgid "" +"On Windows the default for *close_fds* was changed from ``False`` to " +"``True`` when redirecting the standard handles. It's now possible to set " +"*close_fds* to true when redirecting the standard handles. See :class:" +"`subprocess.Popen`. This means that *close_fds* now defaults to ``True`` on " +"all supported platforms. (Contributed by Segev Finer in :issue:`19764`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1395 +msgid "" +"The subprocess module is now more graceful when handling :exc:" +"`KeyboardInterrupt` during :func:`subprocess.call`, :func:`subprocess.run`, " +"or in a :class:`~subprocess.Popen` context manager. It now waits a short " +"amount of time for the child to exit, before continuing the handling of the " +"``KeyboardInterrupt`` exception. (Contributed by Gregory P. Smith in :issue:" +"`25942`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1405 ../Doc/whatsnew/3.7.rst:2061 +msgid "sys" +msgstr "sys" + +#: ../Doc/whatsnew/3.7.rst:1407 +msgid "" +"The new :func:`sys.breakpointhook` hook function is called by the built-in :" +"func:`breakpoint`. (Contributed by Barry Warsaw in :issue:`31353`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1411 +msgid "" +"On Android, the new :func:`sys.getandroidapilevel` returns the build-time " +"Android API version. (Contributed by Victor Stinner in :issue:`28740`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1415 +msgid "" +"The new :func:`sys.get_coroutine_origin_tracking_depth` function returns the " +"current coroutine origin tracking depth, as set by the new :func:`sys." +"set_coroutine_origin_tracking_depth`. :mod:`asyncio` has been converted to " +"use this new API instead of the deprecated :func:`sys." +"set_coroutine_wrapper`. (Contributed by Nathaniel J. Smith in :issue:" +"`32591`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1424 +msgid "time" +msgstr "time" + +#: ../Doc/whatsnew/3.7.rst:1426 +msgid "" +":pep:`564` adds six new functions with nanosecond resolution to the :mod:" +"`time` module:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1436 +msgid "New clock identifiers have been added:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1438 +msgid "" +":data:`time.CLOCK_BOOTTIME` (Linux): Identical to :data:`time." +"CLOCK_MONOTONIC`, except it also includes any time that the system is " +"suspended." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1441 +msgid "" +":data:`time.CLOCK_PROF` (FreeBSD, NetBSD and OpenBSD): High-resolution per-" +"process CPU timer." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1443 +msgid "" +":data:`time.CLOCK_UPTIME` (FreeBSD, OpenBSD): Time whose absolute value is " +"the time the system has been running and not suspended, providing accurate " +"uptime measurement." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1447 +msgid "" +"The new :func:`time.thread_time` and :func:`time.thread_time_ns` functions " +"can be used to get per-thread CPU time measurements. (Contributed by Antoine " +"Pitrou in :issue:`32025`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1451 +msgid "" +"The new :func:`time.pthread_getcpuclockid` function returns the clock ID of " +"the thread-specific CPU-time clock." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1456 +msgid "tkinter" +msgstr "tkinter" + +#: ../Doc/whatsnew/3.7.rst:1458 +msgid "" +"The new :class:`tkinter.ttk.Spinbox` class is now available. (Contributed by " +"Alan Moore in :issue:`32585`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1463 +msgid "tracemalloc" +msgstr "tracemalloc" + +#: ../Doc/whatsnew/3.7.rst:1465 +msgid "" +":class:`tracemalloc.Traceback` behaves more like regular tracebacks, sorting " +"the frames from oldest to most recent. :meth:`Traceback.format() " +"` now accepts negative *limit*, truncating the " +"result to the ``abs(limit)`` oldest frames. To get the old behaviour, use " +"the new *most_recent_first* argument to ``Traceback.format()``. (Contributed " +"by Jesse Bakker in :issue:`32121`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1475 +msgid "types" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1477 +msgid "" +"The new :class:`~types.WrapperDescriptorType`, :class:`~types." +"MethodWrapperType`, :class:`~types.MethodDescriptorType`, and :class:`~types." +"ClassMethodDescriptorType` classes are now available. (Contributed by Manuel " +"Krebber and Guido van Rossum in :issue:`29377`, and Serhiy Storchaka in :" +"issue:`32265`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1483 +msgid "" +"The new :func:`types.resolve_bases` function resolves MRO entries " +"dynamically as specified by :pep:`560`. (Contributed by Ivan Levkivskyi in :" +"issue:`32717`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1489 +msgid "unicodedata" +msgstr "unicodedata" + +#: ../Doc/whatsnew/3.7.rst:1491 +msgid "" +"The internal :mod:`unicodedata` database has been upgraded to use `Unicode " +"11 `_. (Contributed by " +"Benjamin Peterson.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1497 +msgid "unittest" +msgstr "unittest" + +#: ../Doc/whatsnew/3.7.rst:1499 +msgid "" +"The new ``-k`` command-line option allows filtering tests by a name " +"substring or a Unix shell-like pattern. For example, ``python -m unittest -k " +"foo`` runs ``foo_tests.SomeTest.test_something``, ``bar_tests.SomeTest." +"test_foo``, but not ``bar_tests.FooTest.test_something``. (Contributed by " +"Jonas Haag in :issue:`32071`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1508 +msgid "unittest.mock" +msgstr "unittest.mock" + +#: ../Doc/whatsnew/3.7.rst:1510 +msgid "" +"The :const:`~unittest.mock.sentinel` attributes now preserve their identity " +"when they are :mod:`copied ` or :mod:`pickled `. (Contributed " +"by Serhiy Storchaka in :issue:`20804`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1514 +msgid "" +"The new :func:`~unittest.mock.seal` function allows sealing :class:" +"`~unittest.mock.Mock` instances, which will disallow further creation of " +"attribute mocks. The seal is applied recursively to all attributes that are " +"themselves mocks. (Contributed by Mario Corchero in :issue:`30541`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1522 +msgid "urllib.parse" +msgstr "urllib.parse" + +#: ../Doc/whatsnew/3.7.rst:1524 +msgid "" +":func:`urllib.parse.quote` has been updated from :rfc:`2396` to :rfc:`3986`, " +"adding ``~`` to the set of characters that are never quoted by default. " +"(Contributed by Christian Theune and Ratnadeep Debnath in :issue:`16285`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1530 +msgid "uu" +msgstr "uu" + +#: ../Doc/whatsnew/3.7.rst:1532 +msgid "" +"The :func:`uu.encode` function now accepts an optional *backtick* keyword " +"argument. When it's true, zeros are represented by ``'`'`` instead of " +"spaces. (Contributed by Xiang Zhang in :issue:`30103`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1538 +msgid "uuid" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1540 +msgid "" +"The new :attr:`UUID.is_safe ` attribute relays " +"information from the platform about whether generated UUIDs are generated " +"with a multiprocessing-safe method. (Contributed by Barry Warsaw in :issue:" +"`22807`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1545 +msgid "" +":func:`uuid.getnode` now prefers universally administered MAC addresses over " +"locally administered MAC addresses. This makes a better guarantee for global " +"uniqueness of UUIDs returned from :func:`uuid.uuid1`. If only locally " +"administered MAC addresses are available, the first such one found is " +"returned. (Contributed by Barry Warsaw in :issue:`32107`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1554 +msgid "warnings" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1556 +msgid "" +"The initialization of the default warnings filters has changed as follows:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1558 +msgid "" +"warnings enabled via command line options (including those for :option:`-b` " +"and the new CPython-specific :option:`-X` ``dev`` option) are always passed " +"to the warnings machinery via the :data:`sys.warnoptions` attribute." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1562 +msgid "" +"warnings filters enabled via the command line or the environment now have " +"the following order of precedence:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1565 +msgid "the ``BytesWarning`` filter for :option:`-b` (or ``-bb``)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1566 +msgid "any filters specified with the :option:`-W` option" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1567 +msgid "" +"any filters specified with the :envvar:`PYTHONWARNINGS` environment variable" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1569 +msgid "" +"any other CPython specific filters (e.g. the ``default`` filter added for " +"the new ``-X dev`` mode)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1571 +msgid "any implicit filters defined directly by the warnings machinery" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1573 +msgid "" +"in CPython debug builds, all warnings are now displayed by default (the " +"implicit filter list is empty)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1576 +msgid "" +"(Contributed by Nick Coghlan and Victor Stinner in :issue:`20361`, :issue:" +"`32043`, and :issue:`32230`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1579 +msgid "" +"Deprecation warnings are once again shown by default in single-file scripts " +"and at the interactive prompt. See :ref:`whatsnew37-pep565` for details. " +"(Contributed by Nick Coghlan in :issue:`31975`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1585 +msgid "xml" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1587 +msgid "" +"As mitigation against DTD and external entity retrieval, the :mod:`xml.dom." +"minidom` and :mod:`xml.sax` modules no longer process external entities by " +"default. (Contributed by Christian Heimes in :issue:`17239`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1594 +msgid "xml.etree" +msgstr "xml.etree" + +#: ../Doc/whatsnew/3.7.rst:1596 +msgid "" +":ref:`ElementPath ` predicates in the :meth:`find` " +"methods can now compare text of the current node with ``[. = \"text\"]``, " +"not only text in children. Predicates also allow adding spaces for better " +"readability. (Contributed by Stefan Behnel in :issue:`31648`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1603 +msgid "xmlrpc.server" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1605 +msgid "" +":meth:`SimpleXMLRPCDispatcher.register_function ` can now be used as a decorator. (Contributed by " +"Xiang Zhang in :issue:`7769`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1611 +msgid "zipapp" +msgstr "zipapp" + +#: ../Doc/whatsnew/3.7.rst:1613 +msgid "" +"Function :func:`~zipapp.create_archive` now accepts an optional *filter* " +"argument to allow the user to select which files should be included in the " +"archive. (Contributed by Irmen de Jong in :issue:`31072`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1617 +msgid "" +"Function :func:`~zipapp.create_archive` now accepts an optional *compressed* " +"argument to generate a compressed archive. A command line option ``--" +"compress`` has also been added to support compression. (Contributed by " +"Zhiming Wang in :issue:`31638`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1624 +msgid "zipfile" +msgstr "zipfile" + +#: ../Doc/whatsnew/3.7.rst:1626 +msgid "" +":class:`~zipfile.ZipFile` now accepts the new *compresslevel* parameter to " +"control the compression level. (Contributed by Bo Bayles in :issue:`21417`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1630 +msgid "" +"Subdirectories in archives created by ``ZipFile`` are now stored in " +"alphabetical order. (Contributed by Bernhard M. Wiedemann in :issue:`30693`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1636 +msgid "C API Changes" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1638 +msgid "" +"A new API for thread-local storage has been implemented. See :ref:" +"`whatsnew37-pep539` for an overview and :ref:`thread-specific-storage-api` " +"for a complete reference. (Contributed by Masayuki Yamamoto in :issue:" +"`25658`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1643 +msgid "" +"The new :ref:`context variables ` functionality exposes a " +"number of :ref:`new C APIs `." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1646 +msgid "" +"The new :c:func:`PyImport_GetModule` function returns the previously " +"imported module with the given name. (Contributed by Eric Snow in :issue:" +"`28411`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1650 +msgid "" +"The new :c:macro:`Py_RETURN_RICHCOMPARE` macro eases writing rich comparison " +"functions. (Contributed by Petr Victorin in :issue:`23699`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1654 +msgid "" +"The new :c:macro:`Py_UNREACHABLE` macro can be used to mark unreachable code " +"paths. (Contributed by Barry Warsaw in :issue:`31338`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1658 +msgid "" +"The :mod:`tracemalloc` now exposes a C API through the new :c:func:" +"`PyTraceMalloc_Track` and :c:func:`PyTraceMalloc_Untrack` functions. " +"(Contributed by Victor Stinner in :issue:`30054`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1663 +msgid "" +"The new :c:func:`import__find__load__start` and :c:func:" +"`import__find__load__done` static markers can be used to trace module " +"imports. (Contributed by Christian Heimes in :issue:`31574`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1668 +msgid "" +"The fields :c:member:`name` and :c:member:`doc` of structures :c:type:" +"`PyMemberDef`, :c:type:`PyGetSetDef`, :c:type:`PyStructSequence_Field`, :c:" +"type:`PyStructSequence_Desc`, and :c:type:`wrapperbase` are now of type " +"``const char *`` rather of ``char *``. (Contributed by Serhiy Storchaka in :" +"issue:`28761`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1674 +msgid "" +"The result of :c:func:`PyUnicode_AsUTF8AndSize` and :c:func:" +"`PyUnicode_AsUTF8` is now of type ``const char *`` rather of ``char *``. " +"(Contributed by Serhiy Storchaka in :issue:`28769`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1678 +msgid "" +"The result of :c:func:`PyMapping_Keys`, :c:func:`PyMapping_Values` and :c:" +"func:`PyMapping_Items` is now always a list, rather than a list or a tuple. " +"(Contributed by Oren Milman in :issue:`28280`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1682 +msgid "" +"Added functions :c:func:`PySlice_Unpack` and :c:func:" +"`PySlice_AdjustIndices`. (Contributed by Serhiy Storchaka in :issue:`27867`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1685 +msgid "" +":c:func:`PyOS_AfterFork` is deprecated in favour of the new functions :c:" +"func:`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` and :c:func:" +"`PyOS_AfterFork_Child`. (Contributed by Antoine Pitrou in :issue:`16500`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1690 +msgid "" +"The ``PyExc_RecursionErrorInst`` singleton that was part of the public API " +"has been removed as its members being never cleared may cause a segfault " +"during finalization of the interpreter. Contributed by Xavier de Gaye in :" +"issue:`22898` and :issue:`30697`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1695 +msgid "" +"Added C API support for timezones with timezone constructors :c:func:" +"`PyTimeZone_FromOffset` and :c:func:`PyTimeZone_FromOffsetAndName`, and " +"access to the UTC singleton with :c:data:`PyDateTime_TimeZone_UTC`. " +"Contributed by Paul Ganssle in :issue:`10381`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1700 +msgid "" +"The type of results of :c:func:`PyThread_start_new_thread` and :c:func:" +"`PyThread_get_thread_ident`, and the *id* parameter of :c:func:" +"`PyThreadState_SetAsyncExc` changed from :c:type:`long` to :c:type:`unsigned " +"long`. (Contributed by Serhiy Storchaka in :issue:`6532`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1706 +msgid "" +":c:func:`PyUnicode_AsWideCharString` now raises a :exc:`ValueError` if the " +"second argument is *NULL* and the :c:type:`wchar_t*` string contains null " +"characters. (Contributed by Serhiy Storchaka in :issue:`30708`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1710 +msgid "" +"Changes to the startup sequence and the management of dynamic memory " +"allocators mean that the long documented requirement to call :c:func:" +"`Py_Initialize` before calling most C API functions is now relied on more " +"heavily, and failing to abide by it may lead to segfaults in embedding " +"applications. See the :ref:`porting-to-python-37` section in this document " +"and the :ref:`pre-init-safe` section in the C API documentation for more " +"details." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1718 +msgid "" +"The new :c:func:`PyInterpreterState_GetID` returns the unique ID for a given " +"interpreter. (Contributed by Eric Snow in :issue:`29102`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1722 +msgid "" +":c:func:`Py_DecodeLocale`, :c:func:`Py_EncodeLocale` now use the UTF-8 " +"encoding when the :ref:`UTF-8 mode ` is enabled. " +"(Contributed by Victor Stinner in :issue:`29240`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1726 +msgid "" +":c:func:`PyUnicode_DecodeLocaleAndSize` and :c:func:`PyUnicode_EncodeLocale` " +"now use the current locale encoding for ``surrogateescape`` error handler. " +"(Contributed by Victor Stinner in :issue:`29240`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1730 +msgid "" +"The *start* and *end* parameters of :c:func:`PyUnicode_FindChar` are now " +"adjusted to behave like string slices. (Contributed by Xiang Zhang in :issue:" +"`28822`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1736 +msgid "Build Changes" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1738 +msgid "" +"Support for building ``--without-threads`` has been removed. The :mod:" +"`threading` module is now always available. (Contributed by Antoine Pitrou " +"in :issue:`31370`.)." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1742 +msgid "" +"A full copy of libffi is no longer bundled for use when building the :mod:" +"`_ctypes ` module on non-OSX UNIX platforms. An installed copy of " +"libffi is now required when building ``_ctypes`` on such platforms. " +"(Contributed by Zachary Ware in :issue:`27979`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1747 +msgid "" +"The Windows build process no longer depends on Subversion to pull in " +"external sources, a Python script is used to download zipfiles from GitHub " +"instead. If Python 3.6 is not found on the system (via ``py -3.6``), NuGet " +"is used to download a copy of 32-bit Python for this purpose. (Contributed " +"by Zachary Ware in :issue:`30450`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1753 +msgid "" +"The :mod:`ssl` module requires OpenSSL 1.0.2 or 1.1 compatible libssl. " +"OpenSSL 1.0.1 has reached end of lifetime on 2016-12-31 and is no longer " +"supported. LibreSSL is temporarily not supported as well. LibreSSL releases " +"up to version 2.6.4 are missing required OpenSSL 1.0.2 APIs." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1762 +msgid "Optimizations" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1764 +msgid "" +"The overhead of calling many methods of various standard library classes " +"implemented in C has been significantly reduced by porting more code to use " +"the ``METH_FASTCALL`` convention. (Contributed by Victor Stinner in :issue:" +"`29300`, :issue:`29507`, :issue:`29452`, and :issue:`29286`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1770 +msgid "" +"Various optimizations have reduced Python startup time by 10% on Linux and " +"up to 30% on macOS. (Contributed by Victor Stinner, INADA Naoki in :issue:" +"`29585`, and Ivan Levkivskyi in :issue:`31333`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1775 +msgid "" +"Method calls are now up to 20% faster due to the bytecode changes which " +"avoid creating bound method instances. (Contributed by Yury Selivanov and " +"INADA Naoki in :issue:`26110`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1781 +msgid "" +"The :mod:`asyncio` module received a number of notable optimizations for " +"commonly used functions:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1784 +msgid "" +"The :func:`asyncio.get_event_loop` function has been reimplemented in C to " +"make it up to 15 times faster. (Contributed by Yury Selivanov in :issue:" +"`32296`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1788 +msgid "" +":class:`asyncio.Future` callback management has been optimized. (Contributed " +"by Yury Selivanov in :issue:`32348`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1791 +msgid "" +":func:`asyncio.gather` is now up to 15% faster. (Contributed by Yury " +"Selivanov in :issue:`32355`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1794 +msgid "" +":func:`asyncio.sleep` is now up to 2 times faster when the *delay* argument " +"is zero or negative. (Contributed by Andrew Svetlov in :issue:`32351`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1798 +msgid "" +"The performance overhead of asyncio debug mode has been reduced. " +"(Contributed by Antoine Pitrou in :issue:`31970`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1801 +msgid "" +"As a result of :ref:`PEP 560 work `, the import time of :" +"mod:`typing` has been reduced by a factor of 7, and many typing operations " +"are now faster. (Contributed by Ivan Levkivskyi in :issue:`32226`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1806 +msgid "" +":func:`sorted` and :meth:`list.sort` have been optimized for common cases to " +"be up to 40-75% faster. (Contributed by Elliot Gorokhovsky in :issue:" +"`28685`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1810 +msgid "" +":meth:`dict.copy` is now up to 5.5 times faster. (Contributed by Yury " +"Selivanov in :issue:`31179`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1813 +msgid "" +":func:`hasattr` and :func:`getattr` are now about 4 times faster when *name* " +"is not found and *obj* does not override :meth:`object.__getattr__` or :meth:" +"`object.__getattribute__`. (Contributed by INADA Naoki in :issue:`32544`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1818 +msgid "" +"Searching for certain Unicode characters (like Ukrainian capital \"Є\") in a " +"string was up to 25 times slower than searching for other characters. It is " +"now only 3 times slower in the worst case. (Contributed by Serhiy Storchaka " +"in :issue:`24821`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1823 +msgid "" +"The :func:`collections.namedtuple` factory has been reimplemented to make " +"the creation of named tuples 4 to 6 times faster. (Contributed by Jelle " +"Zijlstra with further improvements by INADA Naoki, Serhiy Storchaka, and " +"Raymond Hettinger in :issue:`28638`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1828 +msgid "" +":meth:`date.fromordinal` and :meth:`date.fromtimestamp` are now up to 30% " +"faster in the common case. (Contributed by Paul Ganssle in :issue:`32403`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1832 +msgid "" +"The :func:`os.fwalk` function is now up to 2 times faster thanks to the use " +"of :func:`os.scandir`. (Contributed by Serhiy Storchaka in :issue:`25996`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1836 +msgid "" +"The speed of the :func:`shutil.rmtree` function has been improved by 20--40% " +"thanks to the use of the :func:`os.scandir` function. (Contributed by Serhiy " +"Storchaka in :issue:`28564`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1840 +msgid "" +"Optimized case-insensitive matching and searching of :mod:`regular " +"expressions `. Searching some patterns can now be up to 20 times " +"faster. (Contributed by Serhiy Storchaka in :issue:`30285`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1844 +msgid "" +":func:`re.compile` now converts ``flags`` parameter to int object if it is " +"``RegexFlag``. It is now as fast as Python 3.5, and faster than Python 3.6 " +"by about 10% depending on the pattern. (Contributed by INADA Naoki in :issue:" +"`31671`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1849 +msgid "" +"The :meth:`~selectors.BaseSelector.modify` methods of classes :class:" +"`selectors.EpollSelector`, :class:`selectors.PollSelector` and :class:" +"`selectors.DevpollSelector` may be around 10% faster under heavy loads. " +"(Contributed by Giampaolo Rodola' in :issue:`30014`)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1854 +msgid "" +"Constant folding has been moved from the peephole optimizer to the new AST " +"optimizer, which is able perform optimizations more consistently. " +"(Contributed by Eugene Toder and INADA Naoki in :issue:`29469` and :issue:" +"`11549`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1859 +msgid "" +"Most functions and methods in :mod:`abc` have been rewritten in C. This " +"makes creation of abstract base classes, and calling :func:`isinstance` and :" +"func:`issubclass` on them 1.5x faster. This also reduces Python start-up " +"time by up to 10%. (Contributed by Ivan Levkivskyi and INADA Naoki in :issue:" +"`31333`)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1865 +msgid "" +"Significant speed improvements to alternate constructors for :class:" +"`datetime.date` and :class:`datetime.datetime` by using fast-path " +"constructors when not constructing subclasses. (Contributed by Paul Ganssle " +"in :issue:`32403`)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1870 +msgid "" +"The speed of comparison of :class:`array.array` instances has been improved " +"considerably in certain cases. It is now from 10x to 70x faster when " +"comparing arrays holding values of the same integer type. (Contributed by " +"Adrian Wielgosik in :issue:`24700`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1875 +msgid "" +"The :func:`math.erf` and :func:`math.erfc` functions now use the (faster) C " +"library implementation on most platforms. (Contributed by Serhiy Storchaka " +"in :issue:`26121`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1881 +msgid "Other CPython Implementation Changes" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1883 +msgid "" +"Trace hooks may now opt out of receiving the ``line`` and opt into receiving " +"the ``opcode`` events from the interpreter by setting the corresponding new " +"``f_trace_lines`` and ``f_trace_opcodes`` attributes on the frame being " +"traced. (Contributed by Nick Coghlan in :issue:`31344`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1888 +msgid "" +"Fixed some consistency problems with namespace package module attributes. " +"Namespace module objects now have an ``__file__`` that is set to ``None`` " +"(previously unset), and their ``__spec__.origin`` is also set to ``None`` " +"(previously the string ``\"namespace\"``). See :issue:`32305`. Also, the " +"namespace module object's ``__spec__.loader`` is set to the same value as " +"``__loader__`` (previously, the former was set to ``None``). See :issue:" +"`32303`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1896 +msgid "" +"The :func:`locals` dictionary now displays in the lexical order that " +"variables were defined. Previously, the order was undefined. (Contributed " +"by Raymond Hettinger in :issue:`32690`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1900 +msgid "" +"The :mod:`distutils` ``upload`` command no longer tries to change CR end-of-" +"line characters to CRLF. This fixes a corruption issue with sdists that " +"ended with a byte equivalent to CR. (Contributed by Bo Bayles in :issue:" +"`32304`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1907 +msgid "Deprecated Python Behavior" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1909 +msgid "" +"Yield expressions (both ``yield`` and ``yield from`` clauses) are now " +"deprecated in comprehensions and generator expressions (aside from the " +"iterable expression in the leftmost :keyword:`!for` clause). This ensures " +"that comprehensions always immediately return a container of the appropriate " +"type (rather than potentially returning a :term:`generator iterator` " +"object), while generator expressions won't attempt to interleave their " +"implicit output with the output from any explicit yield expressions. In " +"Python 3.7, such expressions emit :exc:`DeprecationWarning` when compiled, " +"in Python 3.8 this will be a :exc:`SyntaxError`. (Contributed by Serhiy " +"Storchaka in :issue:`10544`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1920 +msgid "" +"Returning a subclass of :class:`complex` from :meth:`object.__complex__` is " +"deprecated and will be an error in future Python versions. This makes " +"``__complex__()`` consistent with :meth:`object.__int__` and :meth:`object." +"__float__`. (Contributed by Serhiy Storchaka in :issue:`28894`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1929 +msgid "Deprecated Python modules, functions and methods" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1932 +msgid "aifc" +msgstr "aifc" + +#: ../Doc/whatsnew/3.7.rst:1934 +msgid "" +":func:`aifc.openfp` has been deprecated and will be removed in Python 3.9. " +"Use :func:`aifc.open` instead. (Contributed by Brian Curtin in :issue:" +"`31985`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1944 +msgid "" +"Support for directly ``await``-ing instances of :class:`asyncio.Lock` and " +"other asyncio synchronization primitives has been deprecated. An " +"asynchronous context manager must be used in order to acquire and release " +"the synchronization resource. (Contributed by Andrew Svetlov in :issue:" +"`32253`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1950 +msgid "" +"The :meth:`asyncio.Task.current_task` and :meth:`asyncio.Task.all_tasks` " +"methods have been deprecated. (Contributed by Andrew Svetlov in :issue:" +"`32250`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1958 +msgid "" +"In Python 3.8, the abstract base classes in :mod:`collections.abc` will no " +"longer be exposed in the regular :mod:`collections` module. This will help " +"create a clearer distinction between the concrete classes and the abstract " +"base classes. (Contributed by Serhiy Storchaka in :issue:`25988`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1968 +msgid "" +":mod:`dbm.dumb` now supports reading read-only files and no longer writes " +"the index file when it is not changed. A deprecation warning is now emitted " +"if the index file is missing and recreated in the ``'r'`` and ``'w'`` modes " +"(this will be an error in future Python releases). (Contributed by Serhiy " +"Storchaka in :issue:`28847`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1978 +msgid "" +"In Python 3.8, attempting to check for non-Enum objects in :class:`Enum` " +"classes will raise a :exc:`TypeError` (e.g. ``1 in Color``); similarly, " +"attempting to check for non-Flag objects in a :class:`Flag` member will " +"raise :exc:`TypeError` (e.g. ``1 in Perm.RW``); currently, both operations " +"return :const:`False` instead. (Contributed by Ethan Furman in :issue:" +"`33217`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1987 +msgid "gettext" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1989 +msgid "" +"Using non-integer value for selecting a plural form in :mod:`gettext` is now " +"deprecated. It never correctly worked. (Contributed by Serhiy Storchaka in :" +"issue:`28692`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:1997 +msgid "" +"Methods :meth:`MetaPathFinder.find_module() ` (replaced by :meth:`MetaPathFinder.find_spec() `) and :meth:`PathEntryFinder.find_loader() " +"` (replaced by :meth:" +"`PathEntryFinder.find_spec() `) " +"both deprecated in Python 3.4 now emit :exc:`DeprecationWarning`. " +"(Contributed by Matthias Bussonnier in :issue:`29576`)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2008 +msgid "" +"The :class:`importlib.abc.ResourceLoader` ABC has been deprecated in favour " +"of :class:`importlib.abc.ResourceReader`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2015 +msgid "" +":func:`locale.format` has been deprecated, use :meth:`locale.format_string` " +"instead. (Contributed by Garvit in :issue:`10379`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2020 +msgid "macpath" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2022 +msgid "" +"The :mod:`macpath` is now deprecated and will be removed in Python 3.8. " +"(Contributed by Chi Hsuan Yen in :issue:`9850`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2027 +msgid "threading" +msgstr "threading" + +#: ../Doc/whatsnew/3.7.rst:2029 +msgid "" +":mod:`dummy_threading` and :mod:`_dummy_thread` have been deprecated. It is " +"no longer possible to build Python with threading disabled. Use :mod:" +"`threading` instead. (Contributed by Antoine Pitrou in :issue:`31370`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2038 +msgid "" +"The silent argument value truncation in :func:`socket.htons` and :func:" +"`socket.ntohs` has been deprecated. In future versions of Python, if the " +"passed argument is larger than 16 bits, an exception will be raised. " +"(Contributed by Oren Milman in :issue:`28332`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2047 +msgid "" +":func:`ssl.wrap_socket` is deprecated. Use :meth:`ssl.SSLContext." +"wrap_socket` instead. (Contributed by Christian Heimes in :issue:`28124`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2053 +msgid "sunau" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2055 +msgid "" +":func:`sunau.openfp` has been deprecated and will be removed in Python 3.9. " +"Use :func:`sunau.open` instead. (Contributed by Brian Curtin in :issue:" +"`31985`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2063 +msgid "" +"Deprecated :func:`sys.set_coroutine_wrapper` and :func:`sys." +"get_coroutine_wrapper`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2066 +msgid "" +"The undocumented ``sys.callstats()`` function has been deprecated and will " +"be removed in a future Python version. (Contributed by Victor Stinner in :" +"issue:`28799`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2072 +msgid "wave" +msgstr "wave" + +#: ../Doc/whatsnew/3.7.rst:2074 +msgid "" +":func:`wave.openfp` has been deprecated and will be removed in Python 3.9. " +"Use :func:`wave.open` instead. (Contributed by Brian Curtin in :issue:" +"`31985`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2080 +msgid "Deprecated functions and types of the C API" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2082 +msgid "" +"Function :c:func:`PySlice_GetIndicesEx` is deprecated and replaced with a " +"macro if ``Py_LIMITED_API`` is not set or set to a value in the range " +"between ``0x03050400`` and ``0x03060000`` (not inclusive), or is " +"``0x03060100`` or higher. (Contributed by Serhiy Storchaka in :issue:" +"`27867`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2087 +msgid "" +":c:func:`PyOS_AfterFork` has been deprecated. Use :c:func:" +"`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` or :c:func:" +"`PyOS_AfterFork_Child()` instead. (Contributed by Antoine Pitrou in :issue:" +"`16500`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2095 +msgid "Platform Support Removals" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2097 +msgid "FreeBSD 9 and older are no longer officially supported." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2098 +msgid "" +"For full Unicode support, including within extension modules, \\*nix " +"platforms are now expected to provide at least one of ``C.UTF-8`` (full " +"locale), ``C.utf8`` (full locale) or ``UTF-8`` (``LC_CTYPE``-only locale) as " +"an alternative to the legacy ``ASCII``-based ``C`` locale." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2102 +msgid "" +"OpenSSL 0.9.8 and 1.0.1 are no longer supported, which means building " +"CPython 3.7 with SSL/TLS support on older platforms still using these " +"versions requires custom build options that link to a more recent version of " +"OpenSSL." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2106 +msgid "" +"Notably, this issue affects the Debian 8 (aka \"jessie\") and Ubuntu 14.04 " +"(aka \"Trusty\") LTS Linux distributions, as they still use OpenSSL 1.0.1 by " +"default." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2110 +msgid "" +"Debian 9 (\"stretch\") and Ubuntu 16.04 (\"xenial\"), as well as recent " +"releases of other LTS Linux releases (e.g. RHEL/CentOS 7.5, SLES 12-SP3), " +"use OpenSSL 1.0.2 or later, and remain supported in the default build " +"configuration." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2114 +msgid "" +"CPython's own :source:`CI configuration file <.travis.yml>` provides an " +"example of using the SSL :source:`compatibility testing infrastructure " +"` in CPython's test suite to build and link " +"against OpenSSL 1.1.0 rather than an outdated system provided OpenSSL." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2122 +msgid "API and Feature Removals" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2124 +msgid "The following features and APIs have been removed from Python 3.7:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2126 +msgid "" +"The ``os.stat_float_times()`` function has been removed. It was introduced " +"in Python 2.3 for backward compatibility with Python 2.2, and was deprecated " +"since Python 3.1." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2130 +msgid "" +"Unknown escapes consisting of ``'\\'`` and an ASCII letter in replacement " +"templates for :func:`re.sub` were deprecated in Python 3.5, and will now " +"cause an error." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2134 +msgid "" +"Removed support of the *exclude* argument in :meth:`tarfile.TarFile.add`. It " +"was deprecated in Python 2.7 and 3.2. Use the *filter* argument instead." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2137 +msgid "" +"The ``splitunc()`` function in the :mod:`ntpath` module was deprecated in " +"Python 3.1, and has now been removed. Use the :func:`~os.path.splitdrive` " +"function instead." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2141 +msgid "" +":func:`collections.namedtuple` no longer supports the *verbose* parameter or " +"``_source`` attribute which showed the generated source code for the named " +"tuple class. This was part of an optimization designed to speed-up class " +"creation. (Contributed by Jelle Zijlstra with further improvements by INADA " +"Naoki, Serhiy Storchaka, and Raymond Hettinger in :issue:`28638`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2147 +msgid "" +"Functions :func:`bool`, :func:`float`, :func:`list` and :func:`tuple` no " +"longer take keyword arguments. The first argument of :func:`int` can now be " +"passed only as positional argument." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2151 +msgid "" +"Removed previously deprecated in Python 2.4 classes ``Plist``, ``Dict`` and " +"``_InternalDict`` in the :mod:`plistlib` module. Dict values in the result " +"of functions :func:`~plistlib.readPlist` and :func:`~plistlib." +"readPlistFromBytes` are now normal dicts. You no longer can use attribute " +"access to access items of these dictionaries." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2157 +msgid "" +"The ``asyncio.windows_utils.socketpair()`` function has been removed. Use " +"the :func:`socket.socketpair` function instead, it is available on all " +"platforms since Python 3.5. ``asyncio.windows_utils.socketpair`` was just an " +"alias to ``socket.socketpair`` on Python 3.5 and newer." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2163 +msgid "" +":mod:`asyncio` no longer exports the :mod:`selectors` and :mod:`_overlapped` " +"modules as ``asyncio.selectors`` and ``asyncio._overlapped``. Replace ``from " +"asyncio import selectors`` with ``import selectors``." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2168 +msgid "" +"Direct instantiation of :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` " +"objects is now prohibited. The constructors were never documented, tested, " +"or designed as public constructors. Users were supposed to use :func:`ssl." +"wrap_socket` or :class:`ssl.SSLContext`. (Contributed by Christian Heimes " +"in :issue:`32951`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2174 +msgid "" +"The unused :mod:`distutils` ``install_misc`` command has been removed. " +"(Contributed by Eric N. Vander Weele in :issue:`29218`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2179 +msgid "Module Removals" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2181 +msgid "" +"The ``fpectl`` module has been removed. It was never enabled by default, " +"never worked correctly on x86-64, and it changed the Python ABI in ways that " +"caused unexpected breakage of C extensions. (Contributed by Nathaniel J. " +"Smith in :issue:`29137`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2188 ../Doc/whatsnew/3.7.rst:2460 +msgid "Windows-only Changes" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2190 +msgid "" +"The python launcher, (py.exe), can accept 32 & 64 bit specifiers **without** " +"having to specify a minor version as well. So ``py -3-32`` and ``py -3-64`` " +"become valid as well as ``py -3.7-32``, also the -*m*-64 and -*m.n*-64 forms " +"are now accepted to force 64 bit python even if 32 bit would have otherwise " +"been used. If the specified version is not available py.exe will error exit. " +"(Contributed by Steve Barnes in :issue:`30291`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2197 +msgid "" +"The launcher can be run as ``py -0`` to produce a list of the installed " +"pythons, *with default marked with an asterisk*. Running ``py -0p`` will " +"include the paths. If py is run with a version specifier that cannot be " +"matched it will also print the *short form* list of available specifiers. " +"(Contributed by Steve Barnes in :issue:`30362`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2207 +msgid "Porting to Python 3.7" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2209 +msgid "" +"This section lists previously described changes and other bugfixes that may " +"require changes to your code." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2214 +msgid "Changes in Python Behavior" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2216 +msgid "" +":keyword:`async` and :keyword:`await` names are now reserved keywords. Code " +"using these names as identifiers will now raise a :exc:`SyntaxError`. " +"(Contributed by Jelle Zijlstra in :issue:`30406`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2220 +msgid "" +":pep:`479` is enabled for all code in Python 3.7, meaning that :exc:" +"`StopIteration` exceptions raised directly or indirectly in coroutines and " +"generators are transformed into :exc:`RuntimeError` exceptions. (Contributed " +"by Yury Selivanov in :issue:`32670`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2226 +msgid "" +":meth:`object.__aiter__` methods can no longer be declared as asynchronous. " +"(Contributed by Yury Selivanov in :issue:`31709`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2229 +msgid "" +"Due to an oversight, earlier Python versions erroneously accepted the " +"following syntax::" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2237 +msgid "" +"Python 3.7 now correctly raises a :exc:`SyntaxError`, as a generator " +"expression always needs to be directly inside a set of parentheses and " +"cannot have a comma on either side, and the duplication of the parentheses " +"can be omitted only on calls. (Contributed by Serhiy Storchaka in :issue:" +"`32012` and :issue:`32023`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2243 +msgid "" +"When using the :option:`-m` switch, the initial working directory is now " +"added to :data:`sys.path`, rather than an empty string (which dynamically " +"denoted the current working directory at the time of each import). Any " +"programs that are checking for the empty string, or otherwise relying on the " +"previous behaviour, will need to be updated accordingly (e.g. by also " +"checking for ``os.getcwd()`` or ``os.path.dirname(__main__.__file__)``, " +"depending on why the code was checking for the empty string in the first " +"place)." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2253 +msgid "Changes in the Python API" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2255 +msgid "" +":meth:`socketserver.ThreadingMixIn.server_close` now waits until all non-" +"daemon threads complete. Set the new :attr:`socketserver.ThreadingMixIn." +"block_on_close` class attribute to ``False`` to get the pre-3.7 behaviour. " +"(Contributed by Victor Stinner in :issue:`31233` and :issue:`33540`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2261 +msgid "" +":meth:`socketserver.ForkingMixIn.server_close` now waits until all child " +"processes complete. Set the new :attr:`socketserver.ForkingMixIn." +"block_on_close` class attribute to ``False`` to get the pre-3.7 behaviour. " +"(Contributed by Victor Stinner in :issue:`31151` and :issue:`33540`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2267 +msgid "" +"The :func:`locale.localeconv` function now temporarily sets the ``LC_CTYPE`` " +"locale to the value of ``LC_NUMERIC`` in some cases. (Contributed by Victor " +"Stinner in :issue:`31900`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2271 +msgid "" +":meth:`pkgutil.walk_packages` now raises a :exc:`ValueError` if *path* is a " +"string. Previously an empty list was returned. (Contributed by Sanyam " +"Khurana in :issue:`24744`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2275 +msgid "" +"A format string argument for :meth:`string.Formatter.format` is now :ref:" +"`positional-only `. Passing it as a keyword " +"argument was deprecated in Python 3.5. (Contributed by Serhiy Storchaka in :" +"issue:`29193`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2280 +msgid "" +"Attributes :attr:`~http.cookies.Morsel.key`, :attr:`~http.cookies.Morsel." +"value` and :attr:`~http.cookies.Morsel.coded_value` of class :class:`http." +"cookies.Morsel` are now read-only. Assigning to them was deprecated in " +"Python 3.5. Use the :meth:`~http.cookies.Morsel.set` method for setting " +"them. (Contributed by Serhiy Storchaka in :issue:`29192`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2288 +msgid "" +"The *mode* argument of :func:`os.makedirs` no longer affects the file " +"permission bits of newly-created intermediate-level directories. To set " +"their file permission bits you can set the umask before invoking " +"``makedirs()``. (Contributed by Serhiy Storchaka in :issue:`19930`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2294 +msgid "" +"The :attr:`struct.Struct.format` type is now :class:`str` instead of :class:" +"`bytes`. (Contributed by Victor Stinner in :issue:`21071`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2297 +msgid "" +":func:`~cgi.parse_multipart` now accepts the *encoding* and *errors* " +"arguments and returns the same results as :class:`~FieldStorage`: for non-" +"file fields, the value associated to a key is a list of strings, not bytes. " +"(Contributed by Pierre Quentel in :issue:`29979`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2303 +msgid "" +"Due to internal changes in :mod:`socket`, calling :func:`socket.fromshare` " +"on a socket created by :func:`socket.share ` in older " +"Python versions is not supported." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2307 +msgid "" +"``repr`` for :exc:`BaseException` has changed to not include the trailing " +"comma. Most exceptions are affected by this change. (Contributed by Serhiy " +"Storchaka in :issue:`30399`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2311 +msgid "" +"``repr`` for :class:`datetime.timedelta` has changed to include the keyword " +"arguments in the output. (Contributed by Utkarsh Upadhyay in :issue:`30302`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2314 +msgid "" +"Because :func:`shutil.rmtree` is now implemented using the :func:`os." +"scandir` function, the user specified handler *onerror* is now called with " +"the first argument ``os.scandir`` instead of ``os.listdir`` when listing the " +"directory is failed." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2319 +msgid "" +"Support for nested sets and set operations in regular expressions as in " +"`Unicode Technical Standard #18`_ might be added in the future. This would " +"change the syntax. To facilitate this future change a :exc:`FutureWarning` " +"will be raised in ambiguous cases for the time being. That include sets " +"starting with a literal ``'['`` or containing literal character sequences " +"``'--'``, ``'&&'``, ``'~~'``, and ``'||'``. To avoid a warning, escape them " +"with a backslash. (Contributed by Serhiy Storchaka in :issue:`30349`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2330 +msgid "" +"The result of splitting a string on a :mod:`regular expression ` that " +"could match an empty string has been changed. For example splitting on " +"``r'\\s*'`` will now split not only on whitespaces as it did previously, but " +"also on empty strings before all non-whitespace characters and just before " +"the end of the string. The previous behavior can be restored by changing the " +"pattern to ``r'\\s+'``. A :exc:`FutureWarning` was emitted for such " +"patterns since Python 3.5." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2339 +msgid "" +"For patterns that match both empty and non-empty strings, the result of " +"searching for all matches may also be changed in other cases. For example " +"in the string ``'a\\n\\n'``, the pattern ``r'(?m)^\\s*?$'`` will not only " +"match empty strings at positions 2 and 3, but also the string ``'\\n'`` at " +"positions 2--3. To match only blank lines, the pattern should be rewritten " +"as ``r'(?m)^[^\\S\\n]*$'``." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2346 +msgid "" +":func:`re.sub()` now replaces empty matches adjacent to a previous non-empty " +"match. For example ``re.sub('x*', '-', 'abxd')`` returns now ``'-a-b--d-'`` " +"instead of ``'-a-b-d-'`` (the first minus between 'b' and 'd' replaces 'x', " +"and the second minus replaces an empty string between 'x' and 'd')." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2352 +msgid "(Contributed by Serhiy Storchaka in :issue:`25054` and :issue:`32308`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2354 +msgid "" +"Change :func:`re.escape` to only escape regex special characters instead of " +"escaping all characters other than ASCII letters, numbers, and ``'_'``. " +"(Contributed by Serhiy Storchaka in :issue:`29995`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2358 +msgid "" +":class:`tracemalloc.Traceback` frames are now sorted from oldest to most " +"recent to be more consistent with :mod:`traceback`. (Contributed by Jesse " +"Bakker in :issue:`32121`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2362 +msgid "" +"On OSes that support :const:`socket.SOCK_NONBLOCK` or :const:`socket." +"SOCK_CLOEXEC` bit flags, the :attr:`socket.type ` no " +"longer has them applied. Therefore, checks like ``if sock.type == socket." +"SOCK_STREAM`` work as expected on all platforms. (Contributed by Yury " +"Selivanov in :issue:`32331`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2369 +msgid "" +"On Windows the default for the *close_fds* argument of :class:`subprocess." +"Popen` was changed from :const:`False` to :const:`True` when redirecting the " +"standard handles. If you previously depended on handles being inherited when " +"using :class:`subprocess.Popen` with standard io redirection, you will have " +"to pass ``close_fds=False`` to preserve the previous behaviour, or use :attr:" +"`STARTUPINFO.lpAttributeList `." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2377 +msgid "" +":meth:`importlib.machinery.PathFinder.invalidate_caches` -- which implicitly " +"affects :func:`importlib.invalidate_caches` -- now deletes entries in :data:" +"`sys.path_importer_cache` which are set to ``None``. (Contributed by Brett " +"Cannon in :issue:`33169`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2382 +msgid "" +"In :mod:`asyncio`, :meth:`loop.sock_recv() `, :meth:" +"`loop.sock_sendall() `, :meth:`loop.sock_accept() " +"`, :meth:`loop.getaddrinfo() `, :meth:`loop.getnameinfo() ` have " +"been changed to be proper coroutine methods to match their documentation. " +"Previously, these methods returned :class:`asyncio.Future` instances. " +"(Contributed by Yury Selivanov in :issue:`32327`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2393 +msgid "" +":attr:`asyncio.Server.sockets` now returns a copy of the internal list of " +"server sockets, instead of returning it directly. (Contributed by Yury " +"Selivanov in :issue:`32662`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2397 +msgid "" +":attr:`Struct.format ` is now a :class:`str` instance " +"instead of a :class:`bytes` instance. (Contributed by Victor Stinner in :" +"issue:`21071`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2401 +msgid "" +":meth:`ast.literal_eval()` is now stricter. Addition and subtraction of " +"arbitrary numbers are no longer allowed. (Contributed by Serhiy Storchaka " +"in :issue:`31778`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2405 +msgid "" +":meth:`Calendar.itermonthdates ` will now " +"consistently raise an exception when a date falls outside of the " +"``0001-01-01`` through ``9999-12-31`` range. To support applications that " +"cannot tolerate such exceptions, the new :meth:`Calendar.itermonthdays3 " +"` and :meth:`Calendar.itermonthdays4 " +"` can be used. The new methods return " +"tuples and are not restricted by the range supported by :class:`datetime." +"date`. (Contributed by Alexander Belopolsky in :issue:`28292`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2415 +msgid "" +":class:`collections.ChainMap` now preserves the order of the underlying " +"mappings. (Contributed by Raymond Hettinger in :issue:`32792`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2418 +msgid "" +"The ``submit()`` method of :class:`concurrent.futures.ThreadPoolExecutor` " +"and :class:`concurrent.futures.ProcessPoolExecutor` now raises a :exc:" +"`RuntimeError` if called during interpreter shutdown. (Contributed by Mark " +"Nemec in :issue:`33097`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2423 +msgid "" +"The :class:`configparser.ConfigParser` constructor now uses ``read_dict()`` " +"to process the default values, making its behavior consistent with the rest " +"of the parser. Non-string keys and values in the defaults dictionary are " +"now being implicitly converted to strings. (Contributed by James Tocknell " +"in :issue:`23835`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2429 +msgid "" +"Several undocumented internal imports were removed. One example is that ``os." +"errno`` is no longer available; use ``import errno`` directly instead. Note " +"that such undocumented internal imports may be removed any time without " +"notice, even in micro version releases." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2437 +msgid "Changes in the C API" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2439 +msgid "" +"The function :c:func:`PySlice_GetIndicesEx` is considered unsafe for " +"resizable sequences. If the slice indices are not instances of :class:" +"`int`, but objects that implement the :meth:`!__index__` method, the " +"sequence can be resized after passing its length to :c:func:`!" +"PySlice_GetIndicesEx`. This can lead to returning indices out of the length " +"of the sequence. For avoiding possible problems use new functions :c:func:" +"`PySlice_Unpack` and :c:func:`PySlice_AdjustIndices`. (Contributed by Serhiy " +"Storchaka in :issue:`27867`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2450 +msgid "CPython bytecode changes" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2452 +msgid "" +"There are two new opcodes: :opcode:`LOAD_METHOD` and :opcode:`CALL_METHOD`. " +"(Contributed by Yury Selivanov and INADA Naoki in :issue:`26110`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2455 +msgid "" +"The :opcode:`STORE_ANNOTATION` opcode has been removed. (Contributed by Mark " +"Shannon in :issue:`32550`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2462 +msgid "" +"The file used to override :data:`sys.path` is now called ``._pth`` instead of ``'sys.path'``. See :ref:`finding_modules` for " +"more information. (Contributed by Steve Dower in :issue:`28137`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2469 +msgid "Other CPython implementation changes" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2471 +msgid "" +"In preparation for potential future changes to the public CPython runtime " +"initialization API (see :pep:`432` for an initial, but somewhat outdated, " +"draft), CPython's internal startup and configuration management logic has " +"been significantly refactored. While these updates are intended to be " +"entirely transparent to both embedding applications and users of the regular " +"CPython CLI, they're being mentioned here as the refactoring changes the " +"internal order of various operations during interpreter startup, and hence " +"may uncover previously latent defects, either in embedding applications, or " +"in CPython itself. (Initially contributed by Nick Coghlan and Eric Snow as " +"part of :issue:`22257`, and further updated by Nick, Eric, and Victor " +"Stinner in a number of other issues). Some known details affected:" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2484 +msgid "" +":c:func:`PySys_AddWarnOptionUnicode` is not currently usable by embedding " +"applications due to the requirement to create a Unicode object prior to " +"calling `Py_Initialize`. Use :c:func:`PySys_AddWarnOption` instead." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2488 +msgid "" +"warnings filters added by an embedding application with :c:func:" +"`PySys_AddWarnOption` should now more consistently take precedence over the " +"default filters set by the interpreter" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2492 +msgid "" +"Due to changes in the way the default warnings filters are configured, " +"setting :c:data:`Py_BytesWarningFlag` to a value greater than one is no " +"longer sufficient to both emit :exc:`BytesWarning` messages and have them " +"converted to exceptions. Instead, the flag must be set (to cause the " +"warnings to be emitted in the first place), and an explicit ``error::" +"BytesWarning`` warnings filter added to convert them to exceptions." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2499 +msgid "" +"Due to a change in the way docstrings are handled by the compiler, the " +"implicit ``return None`` in a function body consisting solely of a docstring " +"is now marked as occurring on the same line as the docstring, not on the " +"function's header line." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2504 +msgid "" +"The current exception state has been moved from the frame object to the co-" +"routine. This simplified the interpreter and fixed a couple of obscure bugs " +"caused by having swap exception state when entering or exiting a generator. " +"(Contributed by Mark Shannon in :issue:`25612`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2510 +msgid "Notable changes in Python 3.7.1" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2512 +msgid "" +"Starting in 3.7.1, :c:func:`Py_Initialize` now consistently reads and " +"respects all of the same environment settings as :c:func:`Py_Main` (in " +"earlier Python versions, it respected an ill-defined subset of those " +"environment variables, while in Python 3.7.0 it didn't read any of them due " +"to :issue:`34247`). If this behavior is unwanted, set :c:data:" +"`Py_IgnoreEnvironmentFlag` to 1 before calling :c:func:`Py_Initialize`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2519 +msgid "" +"In 3.7.1 the C API for Context Variables :ref:`was updated " +"` to use :c:type:`PyObject` " +"pointers. See also :issue:`34762`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2523 +msgid "" +":mod:`xml.dom.minidom` and :mod:`xml.sax` modules no longer process external " +"entities by default. See also :issue:`17239`." +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2526 +msgid "" +"In 3.7.1 the :mod:`tokenize` module now implicitly emits a ``NEWLINE`` token " +"when provided with input that does not have a trailing new line. This " +"behavior now matches what the C tokenizer does internally. (Contributed by " +"Ammar Askar in :issue:`33899`.)" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2532 +msgid "Notable changes in Python 3.7.2" +msgstr "" + +#: ../Doc/whatsnew/3.7.rst:2534 +msgid "" +"In 3.7.2, :mod:`venv` on Windows no longer copies the original binaries, but " +"creates redirector scripts named ``python.exe`` and ``pythonw.exe`` instead. " +"This resolves a long standing issue where all virtual environments would " +"have to be upgraded or recreated with each Python update. However, note that " +"this release will still require recreation of virtual environments in order " +"to get the new scripts." +msgstr "" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po new file mode 100644 index 000000000..3a9ae9839 --- /dev/null +++ b/whatsnew/changelog.po @@ -0,0 +1,20 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-02 00:16+0200\n" +"PO-Revision-Date: 2017-08-29 14:38+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" + +#: ../Doc/whatsnew/changelog.rst:5 +msgid "Changelog" +msgstr "Changements" diff --git a/whatsnew/index.po b/whatsnew/index.po new file mode 100644 index 000000000..6e49f71bc --- /dev/null +++ b/whatsnew/index.po @@ -0,0 +1,42 @@ +# Copyright (C) 2001-2018, Python Software Foundation +# For licence information, see README file. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"PO-Revision-Date: 2017-09-21 09:39+0200\n" +"Last-Translator: Julien Palard \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../Doc/whatsnew/index.rst:5 +msgid "What's New in Python" +msgstr "Nouveautés de Python" + +#: ../Doc/whatsnew/index.rst:7 +msgid "" +"The \"What's New in Python\" series of essays takes tours through the most " +"important changes between major Python versions. They are a \"must read\" " +"for anyone wishing to stay up-to-date after a new release." +msgstr "" +"La série d'essais \"Quoi de neuf dans Python\" reprend les plus importants " +"changements entres les versions majeures de Python. Elles sont à lire pour " +"quiconque souhaitant être à jour suite à une nouvelle sortie." + +#: ../Doc/whatsnew/index.rst:31 +msgid "" +"The \"Changelog\" is an HTML version of the `file built `_ from the contents of the :source:`Misc/NEWS.d` directory " +"tree, which contains *all* nontrivial changes to Python for the current " +"version." +msgstr "" +"Le « Changelog » est une version HTML du fichier `crée depuis `_ le contenu du dossier :source:`Misc/NEWS.d`, qui " +"contient *toutes* les modifications conséquentes de la version actuelle de " +"Python."